summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/acmart/Makefile26
-rw-r--r--macros/latex/contrib/acmart/README3
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx180
-rw-r--r--macros/latex/contrib/acmart/acmart.ins1
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin949483 -> 943219 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin439879 -> 441394 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmcp.pdfbin214844 -> 214844 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmengage.pdfbin399476 -> 399476 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin613884 -> 613884 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdfbin636571 -> 636571 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1059143 -> 1059177 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin626360 -> 626360 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdfbin0 -> 480489 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin623848 -> 623848 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdfbin571812 -> 571812 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin571575 -> 571575 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin625334 -> 625334 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdfbin1051244 -> 1051239 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdfbin624415 -> 624415 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdfbin1062362 -> 1062362 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1047421 -> 1047421 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1053423 -> 1053423 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/samples.dtx20
-rw-r--r--macros/latex/contrib/acmart/samples/samples.ins1
-rw-r--r--macros/latex/contrib/acronym/CHANGES12
-rw-r--r--macros/latex/contrib/acronym/acronym.dtx155
-rw-r--r--macros/latex/contrib/acronym/acronym.ins4
-rw-r--r--macros/latex/contrib/acronym/acronym.pdfbin275707 -> 299705 bytes
-rw-r--r--macros/latex/contrib/algxpar/README.md16
-rw-r--r--macros/latex/contrib/algxpar/algxpar-brazilian.kw.tex6
-rw-r--r--macros/latex/contrib/algxpar/algxpar-doc.pdfbin765435 -> 838611 bytes
-rw-r--r--macros/latex/contrib/algxpar/algxpar-doc.tex299
-rw-r--r--macros/latex/contrib/algxpar/algxpar-english.kw.tex2
-rw-r--r--macros/latex/contrib/algxpar/algxpar-lzw.tex19
-rw-r--r--macros/latex/contrib/algxpar/algxpar-versionchanges.sty404
-rw-r--r--macros/latex/contrib/algxpar/algxpar.sty511
-rw-r--r--macros/latex/contrib/algxpar/license416
-rw-r--r--macros/latex/contrib/animate/ChangeLog23
-rw-r--r--macros/latex/contrib/animate/README.md10
-rw-r--r--macros/latex/contrib/animate/animate.pdfbin3781023 -> 3598923 bytes
-rw-r--r--macros/latex/contrib/animate/animate.sty12
-rw-r--r--macros/latex/contrib/animate/animate.tex55
-rw-r--r--macros/latex/contrib/atveryend/README.md17
-rw-r--r--macros/latex/contrib/atveryend/atveryend.dtx1059
-rw-r--r--macros/latex/contrib/atveryend/atveryend.pdfbin380950 -> 289185 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/italian/README.txt9
-rw-r--r--macros/latex/contrib/babel-contrib/italian/italian.dtx132
-rw-r--r--macros/latex/contrib/babel-contrib/italian/italian.pdfbin504924 -> 505709 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt416
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md5
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty167
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdfbin0 -> 292120 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex231
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.pngbin0 -> 142119 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex82
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib10
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md5
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdfbin0 -> 40807 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdfbin0 -> 47320 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md301
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md127
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann11
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note3
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdfbin0 -> 1355 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdfbin0 -> 656010 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdfbin0 -> 463334 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex1094
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdfbin0 -> 280401 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex65
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdfbin0 -> 282846 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex66
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdfbin0 -> 30349 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdfbin0 -> 7446 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdfbin0 -> 1455 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf70
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdfbin0 -> 229912 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx8842
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins75
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdfbin0 -> 1055055 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex379
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex37
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex398
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE416
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md22
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdfbin0 -> 782406 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex166
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty166
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdfbin0 -> 186164 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex138
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdfbin0 -> 88084 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex136
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdfbin0 -> 280976 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex172
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdfbin0 -> 151425 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex164
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.pngbin0 -> 58719 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib16
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty12
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty7
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdfbin178055 -> 178136 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md16
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx11
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx20
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx6
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdfbin295500 -> 289284 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/README.md4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/bibtex/bib/biblatex-abnt/NBR6023-2018.bib3242
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.bib33
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.tex63
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt-numeric.bbx5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt.bbx1774
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt-ibid.cbx15
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt.cbx70
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/brazilian-abnt.lbx23
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/english-abnt.lbx21
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/french-abnt.lbx202
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/german-abnt.lbx41
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/italian-abnt.lbx41
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/spanish-abnt.lbx22
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018.tex220
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_reference.pdfbin0 -> 288086 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_test.tex23
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/results.tex21
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/test.sh21
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/texlive.sh0
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdfbin465495 -> 465824 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdfbin473027 -> 473527 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdfbin469483 -> 470053 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx1023
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdfbin597953 -> 637441 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdfbin469617 -> 469903 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/README7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdfbin419434 -> 428272 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex116
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx11
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx169
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx4
-rw-r--r--macros/latex/contrib/bmstu-iu8/README.md2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-example.pdfbin177182 -> 177191 bytes
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls10
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty13
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty64
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty9
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty20
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty17
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty26
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty2
-rw-r--r--macros/latex/contrib/bookcover/README4
-rw-r--r--macros/latex/contrib/bookcover/bookcover-example1.pdfbin717536 -> 717518 bytes
-rw-r--r--macros/latex/contrib/bookcover/bookcover-example2.pdfbin82335 -> 81927 bytes
-rw-r--r--macros/latex/contrib/bookcover/bookcover-example2.tex4
-rw-r--r--macros/latex/contrib/bookcover/bookcover.dtx536
-rw-r--r--macros/latex/contrib/bookcover/bookcover.ins4
-rw-r--r--macros/latex/contrib/bookcover/bookcover.pdfbin1594968 -> 1615495 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-barcode.pdfbin12109 -> 12701 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-description.pdfbin43758 -> 46190 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-dustjacket.pdfbin276931 -> 278101 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-foldingmargin.pdfbin33182 -> 35595 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-margins.pdfbin1569 -> 1531 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-newpart.pdfbin68274 -> 45226 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-parts.pdfbin84132 -> 79690 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-pi.pdfbin12568 -> 13591 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-ruler.pdfbin12332 -> 12134 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-scheme-foldingmargin.pdfbin11013 -> 11786 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-scheme-widthflaps.pdfbin0 -> 11465 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-scheme-withoutflaps.pdfbin10332 -> 11103 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-tikz.pdfbin1524 -> 1412 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-tikzclip.pdfbin1568 -> 1490 bytes
-rw-r--r--macros/latex/contrib/bookcover/figures/bookcover-trimming.pdfbin67794 -> 71847 bytes
-rw-r--r--macros/latex/contrib/changelog/README.md13
-rw-r--r--macros/latex/contrib/changelog/changelog.pdfbin54725 -> 55176 bytes
-rw-r--r--macros/latex/contrib/changelog/changelog.sty32
-rw-r--r--macros/latex/contrib/changelog/changelog.tex24
-rw-r--r--macros/latex/contrib/changelog/example.pdfbin17624 -> 17536 bytes
-rw-r--r--macros/latex/contrib/changelog/example.tex35
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/README2
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/diagram.dtx186
-rw-r--r--macros/latex/contrib/chess-problem-diagrams/diagram.pdfbin360083 -> 363776 bytes
-rw-r--r--macros/latex/contrib/circledtext/README.md4
-rw-r--r--macros/latex/contrib/circledtext/circledtext.pdfbin214742 -> 216253 bytes
-rw-r--r--macros/latex/contrib/circledtext/circledtext.sty324
-rw-r--r--macros/latex/contrib/circledtext/circledtext.tex4
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdfbin214341 -> 215171 bytes
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex4
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem.sty10
-rw-r--r--macros/latex/contrib/commalists-tools/README.md6
-rw-r--r--macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdfbin0 -> 73889 bytes
-rw-r--r--macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex488
-rw-r--r--macros/latex/contrib/commalists-tools/tex/commalists-tools.sty269
-rw-r--r--macros/latex/contrib/cora-macs/LICENSE21
-rw-r--r--macros/latex/contrib/cora-macs/README.md91
-rw-r--r--macros/latex/contrib/cora-macs/cora-macs-doc.pdfbin0 -> 183263 bytes
-rw-r--r--macros/latex/contrib/cora-macs/cora-macs-doc.tex119
-rw-r--r--macros/latex/contrib/cora-macs/cora-macs.sty198
-rw-r--r--macros/latex/contrib/cs-techrep/README2
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.dtx277
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.ins2
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.pdfbin187505 -> 189954 bytes
-rw-r--r--macros/latex/contrib/cs-techrep/template/cpn_all_all.bib625
-rw-r--r--macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib397
-rw-r--r--macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdfbin145442 -> 109147 bytes
-rw-r--r--macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex109
-rw-r--r--macros/latex/contrib/cs-techrep/template/selfref.bib10
-rw-r--r--macros/latex/contrib/cs-techrep/template/webdev_commons.bib572
-rw-r--r--macros/latex/contrib/csthm/README.md89
-rw-r--r--macros/latex/contrib/csthm/csthm-example.pdfbin0 -> 410446 bytes
-rw-r--r--macros/latex/contrib/csthm/csthm-example.tex407
-rw-r--r--macros/latex/contrib/csthm/csthm.dtx238
-rw-r--r--macros/latex/contrib/csthm/csthm.ins (renamed from macros/latex/contrib/isosafety/isosafety.ins)57
-rw-r--r--macros/latex/contrib/csvsimple/CHANGES.md14
-rw-r--r--macros/latex/contrib/csvsimple/README.md2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-doc.sty9
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.pdfbin72044 -> 72044 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.pdfbin951198 -> 951769 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.sty36
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.tex9
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.pdfbin690985 -> 691190 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.pdfbin295659 -> 295267 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.tex2
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdfbin191562 -> 213959 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex162
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdfbin1472616 -> 1568902 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex490
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.pdfbin177853 -> 149933 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.tex24
-rw-r--r--macros/latex/contrib/customenvs/tex/customenvs.sty987
-rw-r--r--macros/latex/contrib/dashrulex/README.md2
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.pdfbin57722 -> 55770 bytes
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.sty28
-rw-r--r--macros/latex/contrib/dashrulex/dashrulex.tex81
-rw-r--r--macros/latex/contrib/dccpaper/README.md2
-rw-r--r--macros/latex/contrib/dccpaper/dccpaper.dtx24
-rw-r--r--macros/latex/contrib/dccpaper/dccpaper.pdfbin344973 -> 350338 bytes
-rw-r--r--macros/latex/contrib/easybook/README.md2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx610
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin638352 -> 649454 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex340
-rw-r--r--macros/latex/contrib/easyfloats/README.md1
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/examples.tex355
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/f1_titlepage.tex (renamed from macros/latex/contrib/easyfloats/doc/content/titlepage.tex)1
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/installation.tex8
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s1_examples.tex230
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s2_names.tex (renamed from macros/latex/contrib/easyfloats/doc/content/names.tex)0
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s3_documentation.tex (renamed from macros/latex/contrib/easyfloats/doc/content/documentation.tex)148
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s4_installation.tex16
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s5_bug-reports-and-contributions.tex (renamed from macros/latex/contrib/easyfloats/doc/content/bug-reports-and-contributions.tex)0
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s6_changelog.tex88
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/s7_license.tex (renamed from macros/latex/contrib/easyfloats/doc/content/license.tex)0
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/x1_motivation.tex (renamed from macros/latex/contrib/easyfloats/doc/content/motivation.tex)1
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/x2_used-packages.tex (renamed from macros/latex/contrib/easyfloats/doc/content/used-packages.tex)13
-rw-r--r--macros/latex/contrib/easyfloats/doc/content/x3_other-packages.tex (renamed from macros/latex/contrib/easyfloats/doc/content/other-packages.tex)28
-rw-r--r--macros/latex/contrib/easyfloats/doc/easyfloats.bib20
-rw-r--r--macros/latex/contrib/easyfloats/doc/easyfloats.pdfbin546772 -> 852121 bytes
-rw-r--r--macros/latex/contrib/easyfloats/doc/easyfloats.tex42
-rw-r--r--macros/latex/contrib/easyfloats/doc/links.tex4
-rw-r--r--macros/latex/contrib/easyfloats/doc/my_biblatex_data_model.dbx5
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/bibliography.tex19
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/changelog.tex67
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/description-links.tex27
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/examplecode.tex181
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/geometry.tex12
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/keydoc.tex2
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/macros.tex92
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/markdown.tex4
-rw-r--r--macros/latex/contrib/easyfloats/doc/preamble/todo.tex12
-rw-r--r--macros/latex/contrib/easyfloats/doc/undescribed-keywords.tex85
-rw-r--r--macros/latex/contrib/easyfloats/easyfloats-file-list.txt28
-rw-r--r--macros/latex/contrib/easyfloats/easyfloats.dtx98
-rw-r--r--macros/latex/contrib/easyfloats/license.txt416
-rw-r--r--macros/latex/contrib/edmaths/LICENSE.txt416
-rw-r--r--macros/latex/contrib/edmaths/README.md5
-rw-r--r--macros/latex/contrib/edmaths/docs/edmaths-docs.pdfbin0 -> 146357 bytes
-rw-r--r--macros/latex/contrib/edmaths/docs/edmaths-docs.tex282
-rw-r--r--macros/latex/contrib/edmaths/edmaths.sty258
-rw-r--r--macros/latex/contrib/edmaths/example-references.bib10
-rw-r--r--macros/latex/contrib/edmaths/example-report.tex79
-rw-r--r--macros/latex/contrib/enverb/README.md34
-rw-r--r--macros/latex/contrib/enverb/doc-enverb.tex47
-rw-r--r--macros/latex/contrib/enverb/doc-examples.tex178
-rw-r--r--macros/latex/contrib/enverb/doc-keys.tex111
-rw-r--r--macros/latex/contrib/enverb/doc-using-contents.tex40
-rw-r--r--macros/latex/contrib/enverb/enverb-doc.pdfbin0 -> 346942 bytes
-rw-r--r--macros/latex/contrib/enverb/enverb-doc.tex87
-rw-r--r--macros/latex/contrib/enverb/enverb.dtx720
-rw-r--r--macros/latex/contrib/enverb/preamble-examples.tex199
-rw-r--r--macros/latex/contrib/enverb/preamble-logo.tex25
-rw-r--r--macros/latex/contrib/eolang/DEPENDS.txt1
-rw-r--r--macros/latex/contrib/eolang/README.md11
-rw-r--r--macros/latex/contrib/eolang/eolang.14
-rw-r--r--macros/latex/contrib/eolang/eolang.bib22
-rw-r--r--macros/latex/contrib/eolang/eolang.dtx6
-rw-r--r--macros/latex/contrib/eolang/eolang.pdfbin1940560 -> 1863816 bytes
-rwxr-xr-xmacros/latex/contrib/eolang/eolang.pl48
-rw-r--r--macros/latex/contrib/euromoney/README.md6
-rw-r--r--macros/latex/contrib/euromoney/doc/euromoney-doc.pdfbin0 -> 2409702 bytes
-rw-r--r--macros/latex/contrib/euromoney/doc/euromoney-doc.tex461
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100euro.pdfbin0 -> 955673 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdfbin0 -> 62058 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdfbin0 -> 62345 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10cent.pdfbin0 -> 27497 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdfbin0 -> 11617 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdfbin0 -> 11163 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10euro.pdfbin0 -> 160214 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdfbin0 -> 22792 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdfbin0 -> 22996 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1cent.pdfbin0 -> 46257 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdfbin0 -> 2172 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdfbin0 -> 2164 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1euro.pdfbin0 -> 19980 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdfbin0 -> 5894 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdfbin0 -> 5910 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200euro.pdfbin0 -> 354898 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdfbin0 -> 22825 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdfbin0 -> 23006 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20cent.pdfbin0 -> 26569 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdfbin0 -> 10164 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdfbin0 -> 9960 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20euro.pdfbin0 -> 78801 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdfbin0 -> 22382 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdfbin0 -> 22394 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2cent.pdfbin0 -> 45967 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdfbin0 -> 2130 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdfbin0 -> 2122 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2euro.pdfbin0 -> 23244 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdfbin0 -> 5941 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdfbin0 -> 5897 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500euro.pdfbin0 -> 231203 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdfbin0 -> 22885 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdfbin0 -> 23168 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50cent.pdfbin0 -> 27558 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdfbin0 -> 11748 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdfbin0 -> 11303 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50euro.pdfbin0 -> 235259 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdfbin0 -> 17891 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdfbin0 -> 18128 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5cent.pdfbin0 -> 45981 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdfbin0 -> 2200 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdfbin0 -> 2181 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5euro.pdfbin0 -> 424391 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdfbin0 -> 60083 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdfbin0 -> 60042 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney.sty549
-rw-r--r--macros/latex/contrib/exframe/README.txt10
-rw-r--r--macros/latex/contrib/exframe/exframe.dtx1319
-rw-r--r--macros/latex/contrib/exframe/exframe.ins8
-rw-r--r--macros/latex/contrib/exframe/exframe.pdfbin409753 -> 466522 bytes
-rw-r--r--macros/latex/contrib/ezedits/README.md47
-rw-r--r--macros/latex/contrib/ezedits/ezedits.sty221
-rw-r--r--macros/latex/contrib/ezedits/ezedits_docs.pdfbin0 -> 143133 bytes
-rw-r--r--macros/latex/contrib/ezedits/ezedits_docs.tex171
-rw-r--r--macros/latex/contrib/fmtcount/CHANGES14
-rw-r--r--macros/latex/contrib/fmtcount/README9
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.dtx787
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.ins10
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.pdfbin563008 -> 629727 bytes
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.perl227
-rw-r--r--macros/latex/contrib/fontscale/CHANGELOG.md68
-rw-r--r--macros/latex/contrib/fontscale/beery.cls6
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-classic.tex4
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-font-steps.tex4
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-musical.tex6
-rw-r--r--macros/latex/contrib/fontscale/fontscale.pdfbin104879 -> 106853 bytes
-rw-r--r--macros/latex/contrib/fontscale/fontscale.sty944
-rw-r--r--macros/latex/contrib/fontscale/fontscale.tex163
-rw-r--r--macros/latex/contrib/framedsyntax/FramedSyntax.dtx930
-rw-r--r--macros/latex/contrib/framedsyntax/FramedSyntax.pdfbin0 -> 460751 bytes
-rw-r--r--macros/latex/contrib/framedsyntax/README.txt12
-rw-r--r--macros/latex/contrib/fvextra/CHANGELOG.md53
-rw-r--r--macros/latex/contrib/fvextra/fvextra.dtx785
-rw-r--r--macros/latex/contrib/fvextra/fvextra.pdfbin895911 -> 917058 bytes
-rw-r--r--macros/latex/contrib/gb4e-next/README.md25
-rw-r--r--macros/latex/contrib/gb4e-next/gb4e-next.pdfbin0 -> 43190 bytes
-rw-r--r--macros/latex/contrib/gb4e-next/gb4e-next.sty58
-rw-r--r--macros/latex/contrib/gb4e-next/gb4e-next.tex97
-rw-r--r--macros/latex/contrib/heria/heria-proposal.pdfbin311063 -> 311062 bytes
-rw-r--r--macros/latex/contrib/heria/heria.dtx14
-rw-r--r--macros/latex/contrib/heria/heria.pdfbin305316 -> 305232 bytes
-rw-r--r--macros/latex/contrib/highlightx/doc/highlightx-doc.pdfbin181759 -> 182135 bytes
-rw-r--r--macros/latex/contrib/highlightx/doc/highlightx-doc.tex13
-rw-r--r--macros/latex/contrib/highlightx/tex/highlightx.sty27
-rw-r--r--macros/latex/contrib/homework/README.md30
-rw-r--r--macros/latex/contrib/homework/homework.cls35
-rw-r--r--macros/latex/contrib/huawei/DEPENDS.txt1
-rw-r--r--macros/latex/contrib/huawei/README.md20
-rw-r--r--macros/latex/contrib/huawei/huawei.dtx211
-rw-r--r--macros/latex/contrib/huawei/huawei.pdfbin809033 -> 735500 bytes
-rw-r--r--macros/latex/contrib/hvfloat/Changes3
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.pdfbin11613770 -> 11614944 bytes
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.tex3
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-0.inc26
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-1.inc3
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-2.inc23
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-3.inc20
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-4.inc211
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat.sty51
-rw-r--r--macros/latex/contrib/hvlogos/Changes23
-rw-r--r--macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdfbin86714 -> 89111 bytes
-rw-r--r--macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex22
-rw-r--r--macros/latex/contrib/hvlogos/latex/hvlogos.sty3
-rw-r--r--macros/latex/contrib/hyperref/ChangeLog.txt11
-rw-r--r--macros/latex/contrib/hyperref/README.md4
-rw-r--r--macros/latex/contrib/hyperref/doc/backref.pdfbin206469 -> 206469 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-doc.css2
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-doc.html46
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-doc.pdfbin318416 -> 318394 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-doc.tex22
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdfbin438491 -> 175430 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref-patches.pdfbin0 -> 170928 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/hyperref.pdfbin2341312 -> 2346858 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/nameref.pdfbin172475 -> 172475 bytes
-rw-r--r--macros/latex/contrib/hyperref/doc/xr-hyper.pdfbin303974 -> 94987 bytes
-rw-r--r--macros/latex/contrib/hyperref/hluatex.dtx4
-rw-r--r--macros/latex/contrib/hyperref/hyperref-linktarget.dtx9
-rw-r--r--macros/latex/contrib/hyperref/hyperref-patches.dtx14
-rw-r--r--macros/latex/contrib/hyperref/hyperref.dtx141
-rw-r--r--macros/latex/contrib/hyperref/xr-hyper.dtx2
-rw-r--r--macros/latex/contrib/iaria-lite/README20
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.dtx119
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.ins2
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.pdfbin170730 -> 173923 bytes
-rw-r--r--macros/latex/contrib/iaria-lite/template/cpn_all_all.bib625
-rw-r--r--macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib397
-rw-r--r--macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdfbin132913 -> 87787 bytes
-rw-r--r--macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex101
-rw-r--r--macros/latex/contrib/iaria/README18
-rw-r--r--macros/latex/contrib/iaria/iaria.dtx243
-rw-r--r--macros/latex/contrib/iaria/iaria.ins2
-rw-r--r--macros/latex/contrib/iaria/iaria.pdfbin172223 -> 175772 bytes
-rw-r--r--macros/latex/contrib/iaria/template/cpn_all_all.bib625
-rw-r--r--macros/latex/contrib/iaria/template/cpn_supervised_all.bib397
-rw-r--r--macros/latex/contrib/iaria/template/iaria-example-neumann.pdfbin132891 -> 85908 bytes
-rw-r--r--macros/latex/contrib/iaria/template/iaria-example-neumann.tex88
-rw-r--r--macros/latex/contrib/interlinear/DEPENDS.txt6
-rw-r--r--macros/latex/contrib/interlinear/LICENSE.txt415
-rw-r--r--macros/latex/contrib/interlinear/README.md89
-rw-r--r--macros/latex/contrib/interlinear/VERSION_1_03
-rw-r--r--macros/latex/contrib/interlinear/interlinear-doc.pdfbin0 -> 118771 bytes
-rw-r--r--macros/latex/contrib/interlinear/interlinear-doc.tex215
-rw-r--r--macros/latex/contrib/interlinear/interlinear.sty1176
-rw-r--r--macros/latex/contrib/isosafety/README.md2
-rw-r--r--macros/latex/contrib/isosafety/doc/isosafety-docs.pdfbin0 -> 104036 bytes
-rw-r--r--macros/latex/contrib/isosafety/doc/isosafety-docs.tex178
-rw-r--r--macros/latex/contrib/isosafety/isosafety.dtx143
-rw-r--r--macros/latex/contrib/isosafety/isosafety.pdfbin142768 -> 0 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf)bin1123 -> 1123 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf)bin1861 -> 1861 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf)bin1530 -> 1530 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf)bin1307 -> 1307 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf)bin4364 -> 4364 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf)bin4636 -> 4636 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf)bin1736 -> 1736 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf)bin4901 -> 4901 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf)bin6703 -> 6703 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf)bin9946 -> 9946 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf)bin1729 -> 1729 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf)bin2733 -> 2733 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf)bin1828 -> 1828 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf)bin1824 -> 1824 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf)bin971 -> 972 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf)bin1762 -> 1762 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf)bin2068 -> 2068 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf)bin1657 -> 1657 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf)bin1203 -> 1203 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf)bin4272 -> 4272 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf)bin4612 -> 4612 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf)bin4467 -> 4467 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf)bin2117 -> 2117 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf)bin1897 -> 1897 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf)bin2562 -> 2562 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf)bin1288 -> 1288 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf)bin1281 -> 1281 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf)bin1943 -> 1943 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf)bin2852 -> 2852 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf)bin1177 -> 1177 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf)bin1172 -> 1172 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf)bin1674 -> 1674 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf)bin4345 -> 4345 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf)bin1489 -> 1489 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf)bin4814 -> 4814 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf)bin6617 -> 6617 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf)bin9864 -> 9864 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf)bin1495 -> 1495 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf)bin1721 -> 1721 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf)bin3770 -> 3770 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf)bin3820 -> 3820 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf)bin4287 -> 4287 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf)bin1959 -> 1959 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf)bin4687 -> 4687 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf)bin3955 -> 3955 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf)bin1572 -> 1572 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf)bin3792 -> 3792 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf)bin3390 -> 3390 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf)bin5583 -> 5583 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf)bin3280 -> 3280 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf)bin4814 -> 4814 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf)bin4015 -> 4015 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf)bin2346 -> 2346 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf)bin2534 -> 2534 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf)bin2423 -> 2423 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf)bin4458 -> 4458 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf)bin3907 -> 3907 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf)bin2204 -> 2204 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf)bin1886 -> 1886 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf)bin3880 -> 3880 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf)bin3269 -> 3269 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf)bin2379 -> 2379 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf)bin1169 -> 1169 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf)bin1136 -> 1136 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf)bin2474 -> 2474 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf)bin4273 -> 4273 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf)bin1760 -> 1760 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf)bin1878 -> 1878 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf)bin1605 -> 1605 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf)bin1808 -> 1808 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf)bin2617 -> 2617 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf)bin6730 -> 6730 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf)bin3345 -> 3345 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf)bin1621 -> 1621 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf)bin1567 -> 1567 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf)bin2714 -> 2714 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf)bin1780 -> 1780 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf)bin2131 -> 2131 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf)bin2289 -> 2289 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf)bin2183 -> 2183 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf)bin3380 -> 3380 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf)bin3755 -> 3755 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf)bin2238 -> 2238 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf)bin1862 -> 1862 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf)bin4254 -> 4254 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf)bin1792 -> 1792 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf)bin1813 -> 1813 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf)bin1735 -> 1735 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf)bin1925 -> 1925 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf)bin2653 -> 2653 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf)bin2724 -> 2724 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf)bin1943 -> 1943 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf)bin2100 -> 2100 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf)bin1499 -> 1499 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf)bin1608 -> 1608 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf)bin2358 -> 2358 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf)bin1109 -> 1110 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf)bin2002 -> 2002 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf)bin2092 -> 2092 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf)bin1673 -> 1673 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf)bin2297 -> 2297 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf)bin1301 -> 1301 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf)bin3054 -> 3054 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf)bin1849 -> 1849 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf)bin1271 -> 1271 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf)bin1790 -> 1790 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf)bin3757 -> 3757 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf)bin2225 -> 2225 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf)bin1772 -> 1772 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf)bin1519 -> 1519 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf)bin1351 -> 1351 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf)bin1760 -> 1760 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf)bin1596 -> 1596 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf)bin1498 -> 1498 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf)bin3246 -> 3246 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf)bin1851 -> 1851 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf)bin6227 -> 6227 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf)bin2649 -> 2649 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf)bin1879 -> 1879 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf)bin6119 -> 6119 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf)bin8180 -> 8180 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf)bin5413 -> 5413 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf)bin5446 -> 5446 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf)bin5112 -> 5112 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf)bin4825 -> 4825 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf)bin3857 -> 3857 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf)bin5183 -> 5183 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf)bin11904 -> 11904 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf)bin15091 -> 15091 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf)bin16077 -> 16077 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf)bin7136 -> 7136 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf)bin5538 -> 5538 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf)bin13741 -> 13741 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf)bin3064 -> 3064 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf)bin8883 -> 8883 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf)bin6530 -> 6530 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf)bin7106 -> 7106 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf)bin15525 -> 15525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf)bin6205 -> 6205 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf)bin3548 -> 3548 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf)bin3544 -> 3544 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf)bin4020 -> 4020 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf)bin2284 -> 2284 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf)bin4966 -> 4966 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf)bin2010 -> 2010 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf)bin1607 -> 1607 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf)bin1246 -> 1246 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf)bin2414 -> 2414 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf)bin1469 -> 1469 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf)bin2420 -> 2420 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf)bin1197 -> 1197 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf)bin1698 -> 1698 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf)bin1972 -> 1972 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf)bin1811 -> 1811 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf)bin1768 -> 1768 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf)bin2253 -> 2253 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf)bin1676 -> 1676 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf)bin1869 -> 1869 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf)bin1775 -> 1775 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf)bin4499 -> 4499 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf)bin1497 -> 1497 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf)bin3162 -> 3162 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf)bin2354 -> 2354 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf)bin1812 -> 1812 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf)bin8652 -> 8652 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf)bin1542 -> 1542 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf)bin1772 -> 1772 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf)bin2595 -> 2595 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf)bin1562 -> 1562 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf)bin1576 -> 1576 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf)bin1684 -> 1684 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf)bin2175 -> 2175 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf)bin3995 -> 3995 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf)bin2847 -> 2847 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf)bin2978 -> 2978 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf)bin1582 -> 1582 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf)bin1812 -> 1812 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf)bin15245 -> 15245 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf)bin13872 -> 13872 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf)bin8281 -> 8281 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf)bin2524 -> 2524 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf)bin2542 -> 2542 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf)bin2576 -> 2576 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf)bin6372 -> 6372 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf)bin3697 -> 3697 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf)bin1640 -> 1640 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf)bin1674 -> 1674 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf)bin5266 -> 5266 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf)bin3478 -> 3478 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf)bin1783 -> 1783 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf)bin2063 -> 2063 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf)bin2517 -> 2517 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf)bin1789 -> 1789 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf)bin2190 -> 2190 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf)bin1936 -> 1936 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf)bin2248 -> 2248 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf)bin2184 -> 2184 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf)bin2191 -> 2191 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf)bin2405 -> 2405 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf)bin2247 -> 2247 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf)bin1914 -> 1914 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf)bin2349 -> 2349 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf)bin2302 -> 2302 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf)bin2945 -> 2945 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf)bin1340 -> 1340 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf)bin2408 -> 2408 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf)bin3032 -> 3032 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf)bin2419 -> 2419 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf)bin2879 -> 2879 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf)bin3193 -> 3193 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf)bin2490 -> 2490 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf)bin1517 -> 1517 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf)bin2240 -> 2240 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf)bin1825 -> 1825 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf)bin5310 -> 5310 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf)bin1913 -> 1913 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf)bin1844 -> 1844 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf)bin2703 -> 2703 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf)bin2906 -> 2906 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf)bin1702 -> 1702 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf)bin10194 -> 10194 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf)bin1684 -> 1684 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf)bin2585 -> 2585 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf)bin1768 -> 1768 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf)bin2221 -> 2221 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf)bin2179 -> 2179 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf)bin2430 -> 2430 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf)bin1731 -> 1731 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf)bin1851 -> 1851 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf)bin1064 -> 1064 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf)bin3018 -> 3018 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf)bin2159 -> 2159 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf)bin1933 -> 1933 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf)bin2628 -> 2628 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf)bin1280 -> 1280 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf)bin2619 -> 2619 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf)bin1803 -> 1803 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf)bin1611 -> 1611 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf)bin2127 -> 2127 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf)bin1671 -> 1671 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf)bin2778 -> 2778 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf)bin1398 -> 1398 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf)bin3060 -> 3060 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf)bin1754 -> 1754 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf)bin1525 -> 1525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf)bin2278 -> 2278 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf)bin4426 -> 4426 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf)bin2473 -> 2473 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf)bin2764 -> 2764 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf)bin2952 -> 2952 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf)bin3108 -> 3108 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf)bin3383 -> 3383 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf)bin2962 -> 2962 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf)bin23961 -> 23961 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf)bin8525 -> 8525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf)bin7126 -> 7126 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf)bin1690 -> 1690 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf)bin12232 -> 12232 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf)bin42519 -> 42519 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf)bin1485 -> 1485 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf)bin3520 -> 3520 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf)bin2163 -> 2163 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf)bin4400 -> 4400 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf)bin5475 -> 5475 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf)bin3771 -> 3771 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf)bin3758 -> 3758 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf)bin5523 -> 5523 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf)bin3742 -> 3742 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf)bin2539 -> 2539 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf)bin4373 -> 4373 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf)bin4771 -> 4771 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf)bin2853 -> 2853 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf)bin2162 -> 2162 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf)bin2291 -> 2291 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf)bin3440 -> 3440 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf)bin5427 -> 5427 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf)bin1685 -> 1685 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf)bin4166 -> 4166 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf)bin2533 -> 2533 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf)bin7282 -> 7282 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf)bin5035 -> 5035 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf)bin1691 -> 1691 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf)bin7289 -> 7289 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf)bin6096 -> 6096 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf)bin3205 -> 3205 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf)bin2524 -> 2524 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf)bin2964 -> 2964 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf)bin1961 -> 1961 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf)bin6626 -> 6626 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf)bin1612 -> 1612 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf)bin2727 -> 2727 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf)bin2440 -> 2440 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf)bin3039 -> 3039 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf)bin2006 -> 2006 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf)bin2607 -> 2607 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf)bin1523 -> 1523 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf)bin1778 -> 1778 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf)bin1798 -> 1798 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety.sty47
-rw-r--r--macros/latex/contrib/joinbox/README.md2
-rw-r--r--macros/latex/contrib/joinbox/joinbox.pdfbin411301 -> 411317 bytes
-rw-r--r--macros/latex/contrib/joinbox/joinbox.sty94
-rw-r--r--macros/latex/contrib/joinbox/joinbox.tex2
-rw-r--r--macros/latex/contrib/jsonparse/README.md3
-rw-r--r--macros/latex/contrib/jsonparse/jason/jason.pdfbin3965 -> 3965 bytes
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.pdfbin430804 -> 437147 bytes
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.tex47
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse.sty248
-rw-r--r--macros/latex/contrib/jupynotex/README.md61
-rwxr-xr-xmacros/latex/contrib/jupynotex/example/build5
-rw-r--r--macros/latex/contrib/jupynotex/example/example.tex27
-rw-r--r--macros/latex/contrib/jupynotex/example/notebook.ipynb593
-rw-r--r--macros/latex/contrib/jupynotex/jupynotex.py331
-rw-r--r--macros/latex/contrib/jupynotex/jupynotex.sty18
-rwxr-xr-xmacros/latex/contrib/jupynotex/tests/run3
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_cellparser.py79
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_main.py111
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_notebook.py237
-rw-r--r--macros/latex/contrib/jwjournal/README.md26
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdfbin125619 -> 129845 bytes
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex4
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-de.pdfbin0 -> 201988 bytes
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-de.tex118
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal.cls26
-rw-r--r--macros/latex/contrib/keytheorems/CHANGELOG.md54
-rw-r--r--macros/latex/contrib/keytheorems/README.md649
-rw-r--r--macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdfbin0 -> 152757 bytes
-rw-r--r--macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex1196
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-IEEEtran-support.tex15
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex92
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex22
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex22
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex345
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-jlreq-support.tex34
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex51
-rw-r--r--macros/latex/contrib/keytheorems/tex/keytheorems.sty2578
-rw-r--r--macros/latex/contrib/koma-script/MANIFEST.md29
-rw-r--r--macros/latex/contrib/koma-script/README.md92
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdfbin0 -> 69598 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdfbin0 -> 67156 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdfbin0 -> 70887 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdfbin0 -> 67859 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex74
-rw-r--r--macros/latex/contrib/koma-script/doc/common-options-de.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/common-options-en.tex7
-rw-r--r--macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-00-de.pdfbin14938 -> 14943 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-00-en.pdfbin16140 -> 16128 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-01-de.pdfbin17418 -> 17413 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-01-en.pdfbin18858 -> 19015 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-02-de.pdfbin17666 -> 17659 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-02-en.pdfbin19155 -> 19310 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-03-de.pdfbin17701 -> 17694 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-03-en.pdfbin19188 -> 19343 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-04-de.pdfbin17755 -> 17747 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-04-en.pdfbin19231 -> 19388 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-05-de.pdfbin17846 -> 17842 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-05-en.pdfbin19246 -> 19404 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-06-de.pdfbin17852 -> 17844 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-06-en.pdfbin19247 -> 19403 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-07-de.pdfbin17730 -> 17723 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-07-en.pdfbin19206 -> 19362 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-08-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-08-en.pdfbin30718 -> 30874 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-09-de.pdfbin29039 -> 29034 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-09-en.pdfbin30699 -> 30852 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-10-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-10-en.pdfbin30718 -> 30874 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-11-de.pdfbin29059 -> 29054 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-11-en.pdfbin30719 -> 30876 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-12-de.pdfbin29056 -> 29052 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-12-en.pdfbin30718 -> 30874 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-13-de.pdfbin29801 -> 29930 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-13-en.pdfbin31988 -> 32108 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-14-de.pdfbin29777 -> 29906 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-14-en.pdfbin31957 -> 32078 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-15-de.pdfbin29800 -> 29932 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-15-en.pdfbin31987 -> 32107 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-16-de.pdfbin30793 -> 30980 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-16-en.pdfbin32976 -> 33156 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-17-de.pdfbin30819 -> 31006 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-17-en.pdfbin33010 -> 33190 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-18-de.pdfbin30819 -> 31003 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-18-en.pdfbin33002 -> 33178 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-19-de.pdfbin31314 -> 31493 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-19-en.pdfbin33279 -> 33462 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-20-de.pdfbin31498 -> 31556 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-20-en.pdfbin33285 -> 33342 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-21-de.pdfbin42786 -> 42838 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-21-en.pdfbin44409 -> 44457 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-22-de.pdfbin43094 -> 43145 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-22-en.pdfbin44705 -> 44752 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-23-de.pdfbin43094 -> 43145 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/letter-example-23-en.pdfbin44705 -> 44752 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex26
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex32
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex15
-rw-r--r--macros/latex/contrib/koma-script/doc/scrextend-en.tex4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-body.tex3
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-de.pdfbin3258688 -> 3159974 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide-en.pdfbin3169325 -> 3075571 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.bib52
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.cls3
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack-de.tex313
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack-en.tex285
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack.html57
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-de.tex1279
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-en.tex1143
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-de.pdfbin56780 -> 0 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-de.tex145
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-en.pdfbin57967 -> 0 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrjura-example-en.tex143
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex20
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex16
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdfbin137423 -> 137508 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdfbin135451 -> 135518 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex8
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex2
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer.html4
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex6
-rw-r--r--macros/latex/contrib/koma-script/doc/tocbasic-de.tex331
-rw-r--r--macros/latex/contrib/koma-script/doc/tocbasic-en.tex364
-rw-r--r--macros/latex/contrib/koma-script/scraddr.dtx18
-rw-r--r--macros/latex/contrib/koma-script/scrdoc.cls354
-rw-r--r--macros/latex/contrib/koma-script/scrjura.dtx1960
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-basics.dtx9
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-compatibility.dtx18
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-language.dtx45
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-listsof.dtx47
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx27
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-notepaper.dtx77
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-sections.dtx64
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-typearea.dtx23
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-variables.dtx259
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-version.dtx132
-rw-r--r--macros/latex/contrib/koma-script/scrlayer.dtx41
-rw-r--r--macros/latex/contrib/koma-script/scrmain.ins3
-rw-r--r--macros/latex/contrib/koma-script/scrtime.dtx18
-rw-r--r--macros/latex/contrib/koma-script/tocbasic.dtx238
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md16
-rw-r--r--macros/latex/contrib/l3build/README.md2
-rw-r--r--macros/latex/contrib/l3build/l3build-arguments.lua8
-rw-r--r--macros/latex/contrib/l3build/l3build-aux.lua4
-rw-r--r--macros/latex/contrib/l3build/l3build-check.lua24
-rw-r--r--macros/latex/contrib/l3build/l3build-ctan.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest-setup.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest.lua10
-rw-r--r--macros/latex/contrib/l3build/l3build-stdmain.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-tagging.lua5
-rw-r--r--macros/latex/contrib/l3build/l3build-unpack.lua5
-rw-r--r--macros/latex/contrib/l3build/l3build-upload.lua19
-rw-r--r--macros/latex/contrib/l3build/l3build-zip.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.120
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx88
-rwxr-xr-xmacros/latex/contrib/l3build/l3build.lua12
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin750224 -> 751890 bytes
-rw-r--r--macros/latex/contrib/l3packages/CHANGELOG.md10
-rw-r--r--macros/latex/contrib/l3packages/README.md2
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.dtx4
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.pdfbin412900 -> 412980 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfp.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfp.pdfbin332573 -> 332674 bytes
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx25
-rw-r--r--macros/latex/contrib/l3packages/xparse.pdfbin551837 -> 551942 bytes
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.dtx5
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.pdfbin449003 -> 449112 bytes
-rw-r--r--macros/latex/contrib/latex2pydata/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/latex2pydata/latex2pydata.dtx81
-rw-r--r--macros/latex/contrib/latex2pydata/latex2pydata.pdfbin296929 -> 296848 bytes
-rw-r--r--macros/latex/contrib/letterswitharrows/README.txt2
-rw-r--r--macros/latex/contrib/letterswitharrows/letterswitharrows.dtx150
-rw-r--r--macros/latex/contrib/letterswitharrows/letterswitharrows.pdfbin494439 -> 480750 bytes
-rw-r--r--macros/latex/contrib/listings/listings-devel.pdfbin1454841 -> 1457040 bytes
-rw-r--r--macros/latex/contrib/listings/listings.dtx149
-rw-r--r--macros/latex/contrib/listings/listings.pdfbin1028632 -> 1028426 bytes
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.dtx6
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.pdfbin790575 -> 791320 bytes
-rw-r--r--macros/latex/contrib/litetable/README.md14
-rw-r--r--macros/latex/contrib/litetable/doc/favicon.pngbin17761 -> 0 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-cn.pdfbin304570 -> 172743 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-cn.tex427
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-demo.pdfbin106969 -> 55242 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-demo.tex220
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-en.pdfbin178911 -> 118173 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-en.tex381
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-hk.pdfbin0 -> 189881 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-hk.tex143
-rw-r--r--macros/latex/contrib/litetable/tex/litetable.cls735
-rw-r--r--macros/latex/contrib/llncs/README.md2
-rw-r--r--macros/latex/contrib/llncs/history.txt2
-rw-r--r--macros/latex/contrib/llncs/llncs.cls208
-rw-r--r--macros/latex/contrib/llncs/llncsdoc.pdfbin232527 -> 236903 bytes
-rw-r--r--macros/latex/contrib/llncs/llncsdoc.tex4
-rw-r--r--macros/latex/contrib/mathastext/README.md155
-rw-r--r--macros/latex/contrib/mathastext/mathastext.dtx1022
-rw-r--r--macros/latex/contrib/mathastext/mathastext.pdfbin745164 -> 778378 bytes
-rw-r--r--macros/latex/contrib/mathfixs/README.txt10
-rw-r--r--macros/latex/contrib/mathfixs/mathfixs.dtx1101
-rw-r--r--macros/latex/contrib/mathfixs/mathfixs.ins18
-rw-r--r--macros/latex/contrib/mathfixs/mathfixs.pdfbin302307 -> 383074 bytes
-rw-r--r--macros/latex/contrib/mathtools/empheq.dtx25
-rw-r--r--macros/latex/contrib/mathtools/empheq.ins94
-rw-r--r--macros/latex/contrib/mathtools/empheq.pdfbin330685 -> 423075 bytes
-rw-r--r--macros/latex/contrib/mathtools/mathtools.dtx33
-rw-r--r--macros/latex/contrib/mathtools/mathtools.ins2
-rw-r--r--macros/latex/contrib/mathtools/mathtools.pdfbin506537 -> 506537 bytes
-rw-r--r--macros/latex/contrib/mathtools/mhsetup.pdfbin256933 -> 256933 bytes
-rw-r--r--macros/latex/contrib/media9/ChangeLog22
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3660318 -> 3685924 bytes
-rw-r--r--macros/latex/contrib/media9/media9.sty13
-rw-r--r--macros/latex/contrib/media9/pdfbase.sty144
-rw-r--r--macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md58
-rw-r--r--macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md1006
-rw-r--r--macros/latex/contrib/minted/DEPENDS.txt10
-rw-r--r--macros/latex/contrib/minted/Makefile38
-rw-r--r--macros/latex/contrib/minted/README8
-rw-r--r--macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whlbin0 -> 12888 bytes
-rw-r--r--macros/latex/contrib/minted/latexminted-0.3.0-py3-none-any.whlbin0 -> 33744 bytes
-rw-r--r--macros/latex/contrib/minted/latexminted.py367
-rw-r--r--macros/latex/contrib/minted/latexrestricted-0.6.0-py3-none-any.whlbin0 -> 27081 bytes
-rw-r--r--macros/latex/contrib/minted/minted.dtx5479
-rw-r--r--macros/latex/contrib/minted/minted.ins19
-rw-r--r--macros/latex/contrib/minted/minted.pdfbin872465 -> 508855 bytes
-rw-r--r--macros/latex/contrib/minted/minted1.sty261
-rw-r--r--macros/latex/contrib/minted/minted2.sty1285
-rw-r--r--macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whlbin0 -> 1205513 bytes
-rw-r--r--macros/latex/contrib/mitthesis/MIT-Thesis.pdfbin484200 -> 552860 bytes
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex31
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex4
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex108
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex69
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex4
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex5
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib12
-rw-r--r--macros/latex/contrib/mitthesis/README.md23
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdfbin480892 -> 550995 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdfbin349865 -> 374324 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdfbin152948 -> 169587 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdfbin461124 -> 484379 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdfbin173088 -> 191692 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdfbin278894 -> 294664 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdfbin320084 -> 339125 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdfbin162721 -> 179016 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdfbin164333 -> 181040 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdfbin160667 -> 177446 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex191
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex192
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex191
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex187
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt5
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex187
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex187
-rwxr-xr-xmacros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh89
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdfbin108977 -> 109707 bytes
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex54
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis.cls69
-rw-r--r--macros/latex/contrib/mlacls/mla-example.pdfbin2697255 -> 2683255 bytes
-rw-r--r--macros/latex/contrib/mlacls/mla.dtx76
-rw-r--r--macros/latex/contrib/mlacls/mla.pdfbin393101 -> 351909 bytes
-rw-r--r--macros/latex/contrib/moremath/moremath-doc.pdfbin945345 -> 994870 bytes
-rw-r--r--macros/latex/contrib/moremath/moremath.dtx402
-rw-r--r--macros/latex/contrib/naive-ebnf/LICENSE.txt2
-rw-r--r--macros/latex/contrib/naive-ebnf/README.md17
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.dtx26
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.ins4
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.pdfbin727116 -> 592942 bytes
-rw-r--r--macros/latex/contrib/nfssext-cfr/README26
-rw-r--r--macros/latex/contrib/nfssext-cfr/README.md114
-rw-r--r--macros/latex/contrib/nfssext-cfr/manifest.txt71
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx3341
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins111
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdfbin180398 -> 920135 bytes
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty641
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex196
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.dtx2061
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.pdf59734
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdf10632
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex716
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.ins1
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdf10817
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.tex657
-rw-r--r--macros/latex/contrib/notebeamer/README.md8
-rw-r--r--macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdfbin274146 -> 0 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdfbin2670286 -> 0 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdfbin0 -> 36500 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex18
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdfbin0 -> 23754 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex13
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer.pdfbin907049 -> 112745 bytes
-rw-r--r--macros/latex/contrib/notebeamer/doc/notebeamer.tex186
-rw-r--r--macros/latex/contrib/notebeamer/tex/notebeamer.sty313
-rw-r--r--macros/latex/contrib/numbersets/README.md29
-rw-r--r--macros/latex/contrib/numbersets/numbersets-doc.pdfbin0 -> 60136 bytes
-rw-r--r--macros/latex/contrib/numbersets/numbersets-doc.tex321
-rw-r--r--macros/latex/contrib/numbersets/numbersets.sty120
-rw-r--r--macros/latex/contrib/ocgx2/ChangeLog14
-rw-r--r--macros/latex/contrib/ocgx2/ocgbase.sty275
-rw-r--r--macros/latex/contrib/ocgx2/ocgx2.sty255
-rw-r--r--macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdfbin670553 -> 736292 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex75
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdfbin0 -> 1345 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdfbin0 -> 2775 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdfbin0 -> 1506 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdfbin0 -> 4929 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdfbin0 -> 1761 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdfbin0 -> 3914 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdfbin0 -> 1919 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdfbin0 -> 1957 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdfbin0 -> 4093 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdfbin0 -> 4986 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdfbin0 -> 1642 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdfbin0 -> 3758 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdfbin0 -> 1797 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdfbin0 -> 2031 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdfbin0 -> 3932 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdfbin0 -> 4867 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdfbin0 -> 5184 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdfbin0 -> 5314 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdfbin0 -> 3128 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdfbin0 -> 3255 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdfbin0 -> 2954 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdfbin0 -> 2892 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdfbin0 -> 19271 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdfbin0 -> 11639 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty18
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdfbin0 -> 1651 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdfbin0 -> 1724 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdfbin0 -> 1695 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdfbin0 -> 2921 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdfbin0 -> 1514 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdfbin0 -> 3705 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdfbin0 -> 1903 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdfbin0 -> 1719 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdfbin0 -> 2265 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdfbin0 -> 2191 bytes
-rw-r--r--macros/latex/contrib/paracol/README26
-rw-r--r--macros/latex/contrib/paracol/bgpaint.dtx2
-rw-r--r--macros/latex/contrib/paracol/impl.dtx879
-rw-r--r--macros/latex/contrib/paracol/man.dtx12
-rw-r--r--macros/latex/contrib/paracol/paracol-2018-12-31.sty2894
-rw-r--r--macros/latex/contrib/paracol/paracol-man.pdfbin618897 -> 700703 bytes
-rw-r--r--macros/latex/contrib/paracol/paracol.dtx59
-rw-r--r--macros/latex/contrib/paracol/paracol.pdfbin1590604 -> 1972358 bytes
-rw-r--r--macros/latex/contrib/paracol/probs.dtx8
-rw-r--r--macros/latex/contrib/paracol/pwfnote.dtx16
-rw-r--r--macros/latex/contrib/paracol/ref.dtx37
-rw-r--r--macros/latex/contrib/pas-tableur/README37
-rw-r--r--macros/latex/contrib/pas-tableur/README.txt40
-rw-r--r--macros/latex/contrib/pas-tableur/doc/pas-tableur.pdfbin410165 -> 392763 bytes
-rw-r--r--macros/latex/contrib/pas-tableur/doc/pas-tableur.tex35
-rw-r--r--macros/latex/contrib/pas-tableur/latex/pas-tableur.sty91
-rw-r--r--macros/latex/contrib/passopt/README.md2
-rw-r--r--macros/latex/contrib/passopt/passopt.pdfbin52494 -> 48721 bytes
-rw-r--r--macros/latex/contrib/passopt/passopt.sty2
-rw-r--r--macros/latex/contrib/passopt/passopt.tex51
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md261
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/README.md2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx80
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdfbin988844 -> 970322 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx199
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdfbin711589 -> 689425 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdfbin603025 -> 602789 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdfbin516309 -> 515894 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdfbin558991 -> 558776 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdfbin542144 -> 520848 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx10
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdfbin544112 -> 523027 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx8
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdfbin538574 -> 517529 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdfbin594625 -> 573035 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdfbin516817 -> 516601 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdfbin753951 -> 732905 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdfbin568542 -> 568327 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdfbin686108 -> 685888 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx182
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdfbin850174 -> 834415 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdfbin0 -> 596723 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx57
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdfbin530920 -> 531463 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdfbin428630 -> 427965 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx18
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdfbin588321 -> 588499 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdfbin435158 -> 434711 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdfbin465204 -> 464600 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfpages/pdfpages.dtx39
-rw-r--r--macros/latex/contrib/pdfpages/pdfpages.pdfbin302686 -> 302693 bytes
-rw-r--r--macros/latex/contrib/postnotes/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/postnotes/postnotes-code.pdfbin819243 -> 883243 bytes
-rw-r--r--macros/latex/contrib/postnotes/postnotes-code.tex2
-rw-r--r--macros/latex/contrib/postnotes/postnotes-doc.pdfbin203385 -> 203619 bytes
-rw-r--r--macros/latex/contrib/postnotes/postnotes-doc.tex17
-rw-r--r--macros/latex/contrib/postnotes/postnotes.dtx900
-rw-r--r--macros/latex/contrib/postnotes/postnotes.ins4
-rw-r--r--macros/latex/contrib/ppt-slides/LICENSE.txt4
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex4
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex4
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex4
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex4
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-slides.dtx12
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-slides.ins8
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-slides.pdfbin935953 -> 854214 bytes
-rw-r--r--macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex4
-rw-r--r--macros/latex/contrib/profcollege/doc/profcollege-doc.pdfbin10823654 -> 10841130 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAllumettes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAutonomie.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBillard.tex17
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBonSortie.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBonbon.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCAN.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex147
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalisson.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartographie.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCheque.tex125
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCible.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCColorilude.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCompteBon.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCConversion.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCritere.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecDeci.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex147
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDefiTables.tex5
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDistributivite.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDobble.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDomino.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex54
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEnquete.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEratosthene.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFactorisation.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFrise.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFubuki.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGaram.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGeometrie.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGrades.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGrimuku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCHorloge.tex31
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCJeton.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKakurasu.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKakuro.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKenKen.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLego.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMentalo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMidpoint.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMosaique.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulArt.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulJal.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulJap.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNonogramme.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex36
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNumberHive.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPapiers.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPattern.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPavage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPixelArt.tex208
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPourcentage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProbabilites.tex14
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPropor.tex50
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex82
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex307
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPythagore.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRLE.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRapido.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRecyclage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReperage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex19
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex575
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRose.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCScratch.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSerpent.tex211
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCShikaku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSolides.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSquaro.tex76
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex62
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex11
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTectonic.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCThales.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex163
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTortueBase.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrio.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTriominos.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCUrneProba.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCVueCubes.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCYohaku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty41
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp20
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratch.mp7
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp7
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCSketch.mp195
-rw-r--r--macros/latex/contrib/proflycee/README.md8
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1793092 -> 2296761 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdfbin80800 -> 80865 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee-Light.sty389
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty337
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdfbin0 -> 2781 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdfbin0 -> 1857 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdfbin0 -> 154573 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdfbin0 -> 1480 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdfbin0 -> 1484 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdfbin0 -> 2764 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdfbin0 -> 1713 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdfbin0 -> 119155 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdfbin0 -> 8987 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdfbin0 -> 8987 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdfbin0 -> 8988 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdfbin0 -> 8348 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdfbin0 -> 3347 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdfbin0 -> 3291 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdfbin0 -> 2759 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdfbin0 -> 1763 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdfbin0 -> 98514 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex2
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex152
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex145
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex98
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex1
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex23
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex546
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex118
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex101
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex25
-rw-r--r--macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdfbin298965 -> 0 bytes
-rw-r--r--macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdfbin0 -> 343643 bytes
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty2833
-rw-r--r--macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdfbin547576 -> 555201 bytes
-rw-r--r--macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex34
-rw-r--r--macros/latex/contrib/quizztex/tex/quizztex.sty11
-rw-r--r--macros/latex/contrib/randintlist/README.md6
-rw-r--r--macros/latex/contrib/randintlist/doc/randintlist-doc.pdfbin0 -> 84779 bytes
-rw-r--r--macros/latex/contrib/randintlist/doc/randintlist-doc.tex353
-rw-r--r--macros/latex/contrib/randintlist/tex/randintlist.sty247
-rw-r--r--macros/latex/contrib/regulatory/README.md1
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-en.pdfbin25756 -> 27096 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-nl.pdfbin25600 -> 27052 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-en.pdfbin52555 -> 49921 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-nl.pdfbin52599 -> 50114 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-en.pdfbin227678 -> 229664 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-nl.pdfbin228133 -> 229738 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-preamble.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory.tex12
-rw-r--r--macros/latex/contrib/regulatory/tex/fc-dutch.def327
-rw-r--r--macros/latex/contrib/regulatory/tex/regulatory.sty4
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem-doc.pdf (renamed from macros/latex/contrib/reptheorem/reptheorem.pdf)bin274602 -> 288550 bytes
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.dtx145
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.ins10
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdfbin36684 -> 162167 bytes
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx742
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdfbin232043 -> 346720 bytes
-rw-r--r--macros/latex/contrib/scrhack/LICENSE.md19
-rw-r--r--macros/latex/contrib/scrhack/README.md207
-rw-r--r--macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx (renamed from macros/latex/contrib/koma-script/scrhack.dtx)194
-rw-r--r--macros/latex/contrib/scrhack/scrhack-2023-07-07.pdfbin0 -> 301798 bytes
-rw-r--r--macros/latex/contrib/scrhack/scrhack.dtx991
-rw-r--r--macros/latex/contrib/scrhack/scrhack.pdfbin0 -> 301231 bytes
-rw-r--r--macros/latex/contrib/se2thesis/CHANGELOG.md34
-rw-r--r--macros/latex/contrib/se2thesis/se2colors.dtx2
-rw-r--r--macros/latex/contrib/se2thesis/se2fonts.dtx8
-rw-r--r--macros/latex/contrib/se2thesis/se2packages.dtx2
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdfbin232002 -> 232046 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.dtx28
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.pdfbin366813 -> 368698 bytes
-rw-r--r--macros/latex/contrib/sidenotes/caesar_book.cls44
-rw-r--r--macros/latex/contrib/sidenotes/caesar_example.pdfbin86126 -> 91942 bytes
-rw-r--r--macros/latex/contrib/sidenotes/caesar_example.tex21
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.dtx246
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.ins4
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.pdfbin217903 -> 233107 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdfbin408693 -> 430723 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex136
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdfbin399623 -> 422751 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex228
-rw-r--r--macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty180
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md21
-rw-r--r--macros/latex/contrib/siunitx/siunitx-angle.dtx130
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin645632 -> 645497 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-complex.dtx45
-rw-r--r--macros/latex/contrib/siunitx/siunitx-compound.dtx1
-rw-r--r--macros/latex/contrib/siunitx/siunitx-number.dtx1
-rw-r--r--macros/latex/contrib/siunitx/siunitx-table.dtx50
-rw-r--r--macros/latex/contrib/siunitx/siunitx-unit.dtx5
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin703909 -> 703918 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx.tex8
-rw-r--r--macros/latex/contrib/sjtutex/sjtutex.dtx20
-rw-r--r--macros/latex/contrib/sjtutex/sjtutex.pdfbin724629 -> 725422 bytes
-rw-r--r--macros/latex/contrib/spbmark/README.md2
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin92984 -> 95496 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty67
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex207
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.oggbin39213 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.oggbin9865 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.oggbin12011 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-1.oggbin0 -> 39732 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-2.oggbin0 -> 10787 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-3.oggbin0 -> 13031 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.oggbin14175 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.oggbin0 -> 12973 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.oggbin33072 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.oggbin58385 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.oggbin36458 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.oggbin15489 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-1.oggbin0 -> 36885 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-2.oggbin0 -> 74019 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-3.oggbin0 -> 39646 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.oggbin0 -> 18746 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-1.oggbin0 -> 113548 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-2.oggbin0 -> 57815 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.oggbin0 -> 21105 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0-1.oggbin0 -> 39304 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.oggbin0 -> 15489 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.oggbin0 -> 13775 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.oggbin92122 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.oggbin45754 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.oggbin16077 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-1.oggbin0 -> 37521 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-2.oggbin0 -> 57294 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.oggbin0 -> 16652 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.oggbin0 -> 18708 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.oggbin0 -> 35730 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.oggbin0 -> 21171 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.oggbin0 -> 49487 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.oggbin0 -> 24293 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.oggbin0 -> 15991 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.oggbin38925 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.oggbin53387 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.oggbin13645 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.oggbin15843 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.oggbin33768 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.oggbin18610 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.oggbin41577 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.oggbin8290 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.oggbin19424 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/author.oggbin16874 -> 16529 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/date.oggbin13533 -> 16025 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/star-1.oggbin0 -> 8721 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/title.oggbin14301 -> 15704 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.pdfbin84377 -> 94259 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.tex45
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.oggbin0 -> 47368 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.oggbin0 -> 8041 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u57
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.oggbin11987 -> 12760 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.oggbin110781 -> 133644 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.oggbin119565 -> 110198 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.oggbin133965 -> 120483 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.oggbin16461 -> 16931 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u22
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.oggbin17181 -> 19455 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.oggbin269613 -> 244757 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.oggbin94077 -> 93092 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.oggbin121293 -> 118238 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.oggbin20349 -> 20052 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.oggbin107613 -> 105752 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.oggbin55773 -> 50742 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.oggbin24237 -> 26416 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.oggbin25965 -> 28102 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.oggbin19341 -> 20721 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.oggbin21069 -> 20854 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.oggbin54333 -> 56785 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.oggbin156141 -> 117608 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.oggbin123021 -> 112516 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.oggbin103869 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.oggbin201069 -> 238754 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.oggbin83277 -> 75832 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.oggbin69597 -> 60673 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.oggbin44829 -> 43807 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.oggbin75645 -> 75953 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.oggbin181773 -> 124157 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.oggbin127485 -> 83405 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.oggbin88173 -> 149382 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u25
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.oggbin19341 -> 18983 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u105
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.oggbin14010 -> 14567 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.oggbin34173 -> 33539 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.oggbin13034 -> 13805 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.oggbin12487 -> 13665 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.oggbin40506 -> 47328 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.oggbin49604 -> 56006 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.oggbin86733 -> 88036 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u16
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.oggbin17542 -> 19440 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u66
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.oggbin19955 -> 20866 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.oggbin39501 -> 65448 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.oggbin0 -> 106395 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.oggbin0 -> 148669 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.oggbin20925 -> 151459 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.oggbin21933 -> 110899 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.oggbin28269 -> 106961 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.oggbin0 -> 122975 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.oggbin0 -> 299281 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.oggbin0 -> 85250 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.oggbin0 -> 25048 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.oggbin0 -> 60306 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u18
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.oggbin22720 -> 22528 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.oggbin62109 -> 142297 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.oggbin61965 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.oggbin52461 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.oggbin166509 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.oggbin61764 -> 180352 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.oggbin130653 -> 72978 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.oggbin112797 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.oggbin104013 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.oggbin118845 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.oggbin440685 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.oggbin97101 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.oggbin30717 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u18
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.oggbin19907 -> 24007 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.oggbin153261 -> 238840 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.oggbin186237 -> 36950 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.oggbin0 -> 27987 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.oggbin0 -> 19493 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.oggbin0 -> 185657 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.oggbin0 -> 54375 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.oggbin22940 -> 25043 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.oggbin251757 -> 166124 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.oggbin29567 -> 76717 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.oggbin26498 -> 118189 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.oggbin18524 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.oggbin140974 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.oggbin47150 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.oggbin22754 -> 20386 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.oggbin177309 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.oggbin80829 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.oggbin19849 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.oggbin81405 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.oggbin183645 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.oggbin141597 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.oggbin23853 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.oggbin91773 -> 90454 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.oggbin97677 -> 87506 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.oggbin36303 -> 38837 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.oggbin30646 -> 32271 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.oggbin19292 -> 20889 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.oggbin41229 -> 35444 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.oggbin55341 -> 297720 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.oggbin300141 -> 71704 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.oggbin64604 -> 45809 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.oggbin37835 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.oggbin17518 -> 17487 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u49
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.oggbin14092 -> 14438 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.oggbin29997 -> 33709 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.oggbin183501 -> 98449 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.oggbin106029 -> 106138 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.oggbin21933 -> 22976 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u28
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.oggbin25383 -> 28766 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.oggbin85124 -> 96575 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.oggbin46989 -> 45232 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.oggbin31449 -> 35932 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.oggbin64989 -> 65725 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.oggbin33266 -> 37206 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.oggbin19502 -> 20494 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.oggbin142605 -> 145651 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.oggbin74205 -> 73497 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.oggbin94797 -> 91450 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.oggbin81837 -> 84218 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.oggbin74925 -> 77413 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.oggbin145485 -> 135191 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.oggbin21918 -> 24225 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.oggbin139725 -> 86700 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.oggbin18675 -> 20517 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.oggbin81405 -> 80366 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.oggbin130365 -> 117318 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.oggbin0 -> 70916 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.oggbin18399 -> 19599 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u109
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.oggbin13016 -> 13146 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.oggbin52029 -> 49459 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.oggbin20882 -> 12177 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.oggbin15532 -> 17829 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.oggbin13888 -> 14968 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.oggbin15770 -> 16905 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.oggbin28759 -> 31955 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.oggbin29062 -> 32717 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.oggbin84905 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u95
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.oggbin22299 -> 22463 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.oggbin91917 -> 85473 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.oggbin59984 -> 69409 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.oggbin63693 -> 63694 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.oggbin97379 -> 87004 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.oggbin24669 -> 26567 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.oggbin104589 -> 168156 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.oggbin39789 -> 45627 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.oggbin25389 -> 27721 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.oggbin81166 -> 94364 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.oggbin60545 -> 66772 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.oggbin39789 -> 44273 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.oggbin92093 -> 104843 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.oggbin39789 -> 45802 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.oggbin27981 -> 30360 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.oggbin99435 -> 70606 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.oggbin53793 -> 74100 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.oggbin56626 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.oggbin94077 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.oggbin27772 -> 28771 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.oggbin100656 -> 103962 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.oggbin47203 -> 59942 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.oggbin71665 -> 64185 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.oggbin41316 -> 92521 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.oggbin30051 -> 31552 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.oggbin71887 -> 113818 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.oggbin31328 -> 56585 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.oggbin44852 -> 78350 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.oggbin50015 -> 44705 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.oggbin9840 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.oggbin45999 -> 29964 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.oggbin31747 -> 135360 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.oggbin60813 -> 17439 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.oggbin33885 -> 18231 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.oggbin52605 -> 66745 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.oggbin22597 -> 24223 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.oggbin0 -> 81048 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.oggbin0 -> 36401 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.oggbin0 -> 49408 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.oggbin0 -> 53200 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.oggbin0 -> 9928 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.oggbin0 -> 52258 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.oggbin0 -> 35628 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.oggbin0 -> 59688 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.oggbin0 -> 35666 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.oggbin0 -> 56769 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.oggbin0 -> 25176 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.oggbin46989 -> 41633 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.oggbin58653 -> 61026 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.oggbin46125 -> 44789 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.oggbin74882 -> 82794 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.oggbin84137 -> 93981 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.oggbin18821 -> 19984 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.oggbin43898 -> 50813 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.oggbin13841 -> 14244 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.oggbin102717 -> 103136 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u95
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.oggbin12260 -> 12633 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.oggbin75917 -> 83643 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.oggbin16938 -> 17619 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.oggbin17935 -> 18774 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.oggbin37825 -> 20873 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.oggbin0 -> 42377 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.oggbin0 -> 12567 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.oggbin25563 -> 28099 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.oggbin63840 -> 78802 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.oggbin28873 -> 28749 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u24
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.oggbin20614 -> 21905 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.oggbin58385 -> 73250 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.oggbin22293 -> 24697 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.oggbin12478 -> 12505 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.oggbin47027 -> 55382 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.oggbin10589 -> 11130 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.oggbin31558 -> 34069 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.oggbin10566 -> 11444 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.oggbin23508 -> 24117 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.oggbin24466 -> 27873 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.oggbin45532 -> 55513 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.oggbin25778 -> 28471 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.oggbin32724 -> 36972 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.oggbin64241 -> 73657 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.oggbin16275 -> 17379 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.oggbin11565 -> 13449 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.oggbin115389 -> 104147 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.oggbin18681 -> 19345 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u15
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.oggbin21352 -> 21207 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.oggbin24864 -> 27251 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.oggbin84898 -> 94513 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.oggbin15991 -> 16847 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.oggbin20878 -> 20541 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.oggbin63161 -> 20607 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.oggbin0 -> 70900 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.oggbin18744 -> 20955 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.oggbin92122 -> 113548 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.oggbin106855 -> 131060 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.oggbin61395 -> 69856 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.oggbin45754 -> 57815 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.oggbin37065 -> 41688 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.oggbin44904 -> 56609 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.oggbin55034 -> 62348 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.oggbin94428 -> 123843 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.oggbin27027 -> 28210 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.oggbin24810 -> 30482 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.oggbin22771 -> 23883 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u24
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.oggbin20436 -> 20555 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.oggbin62253 -> 64306 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u53
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.oggbin15114 -> 15080 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.oggbin20646 -> 20095 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.oggbin26219 -> 30441 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.oggbin27910 -> 33980 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.oggbin26519 -> 25990 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.oggbin28484 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.oggbin28780 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.oggbin22365 -> 26438 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.oggbin0 -> 31172 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.oggbin0 -> 29964 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.oggbin0 -> 31297 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.oggbin0 -> 31865 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.oggbin0 -> 28100 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.oggbin0 -> 22712 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.oggbin19694 -> 21437 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.oggbin16575 -> 18369 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.oggbin17551 -> 17710 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.oggbin19804 -> 19920 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.oggbin22080 -> 22306 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.oggbin21182 -> 21099 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.oggbin25282 -> 21720 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.oggbin21077 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.oggbin20091 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.oggbin22221 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.oggbin21213 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.oggbin18621 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.oggbin27261 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.oggbin26916 -> 28374 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.oggbin30677 -> 24118 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.oggbin23949 -> 22681 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.oggbin0 -> 23444 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.oggbin0 -> 24256 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.oggbin0 -> 20629 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.oggbin0 -> 29599 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.oggbin0 -> 23431 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.oggbin22653 -> 23138 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.oggbin46413 -> 48292 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.oggbin16749 -> 18160 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.oggbin6381 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.oggbin7101 -> 8673 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.oggbin5517 -> 9620 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.oggbin0 -> 7220 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.oggbin10701 -> 12564 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/author.oggbin29582 -> 31731 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/date.oggbin26829 -> 27120 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/footnote-1.oggbin53151 -> 59163 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/footnote-2.oggbin27434 -> 32152 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/title.oggbin22509 -> 22432 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex.dtx1208
-rw-r--r--macros/latex/contrib/spelatex/spelatex.pdfbin332348 -> 367674 bytes
-rw-r--r--macros/latex/contrib/sshrc-insight/README.md61
-rw-r--r--macros/latex/contrib/sshrc-insight/insight_proposal.pdfbin0 -> 85443 bytes
-rw-r--r--macros/latex/contrib/sshrc-insight/sshrc-insight.dtx1139
-rw-r--r--macros/latex/contrib/sshrc-insight/sshrc-insight.ins74
-rw-r--r--macros/latex/contrib/sshrc-insight/sshrc-insight.pdfbin0 -> 410970 bytes
-rw-r--r--macros/latex/contrib/suanpan-l3/README.md58
-rwxr-xr-xmacros/latex/contrib/suanpan-l3/build.sh8
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.pdfbin0 -> 446748 bytes
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.sty1412
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.tex1530
-rw-r--r--macros/latex/contrib/tableof/README.md8
-rw-r--r--macros/latex/contrib/tableof/tableof.dtx165
-rw-r--r--macros/latex/contrib/tableof/tableof.pdfbin58824 -> 62790 bytes
-rw-r--r--macros/latex/contrib/tagpdf/README.md4
-rw-r--r--macros/latex/contrib/tagpdf/ex-AF-file.pdf98
-rw-r--r--macros/latex/contrib/tagpdf/ex-alt-actualtext.pdfbin34295 -> 34624 bytes
-rw-r--r--macros/latex/contrib/tagpdf/ex-attribute.pdf86
-rw-r--r--macros/latex/contrib/tagpdf/ex-formula-problem.pdf74
-rw-r--r--macros/latex/contrib/tagpdf/ex-list.pdf158
-rw-r--r--macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf52
-rw-r--r--macros/latex/contrib/tagpdf/ex-softhyphen.pdf74
-rw-r--r--macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf66
-rw-r--r--macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf100
-rw-r--r--macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf94
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-backend.dtx24
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-checks.dtx51
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.pdfbin1737121 -> 1306918 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.tex14
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-data.dtx16
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-docelements.tex2
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-roles.dtx14
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-space.dtx5
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-struct.dtx449
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-tree.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-user.dtx264
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.dtx286
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.pdfbin1124473 -> 1157045 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.tex99
-rw-r--r--macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty2
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md28
-rw-r--r--macros/latex/contrib/tcolorbox/README.md2
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex27
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbmagazine.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbminted.code.tex8
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin137729 -> 137729 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin287734 -> 287728 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin247127 -> 247411 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex8
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex53
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex53
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex12
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex52
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty5
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex13
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin4856594 -> 4868787 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty100
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex6
-rw-r--r--macros/latex/contrib/temporal-logic/README.md29
-rw-r--r--macros/latex/contrib/temporal-logic/temporal-logic-doc.pdfbin0 -> 537322 bytes
-rw-r--r--macros/latex/contrib/temporal-logic/temporal-logic.dtx593
-rw-r--r--macros/latex/contrib/temporal-logic/temporal-logic.ins52
-rw-r--r--macros/latex/contrib/to-be-determined/DEPENDS.txt17
-rw-r--r--macros/latex/contrib/to-be-determined/LICENSE.txt2
-rw-r--r--macros/latex/contrib/to-be-determined/README.md17
-rw-r--r--macros/latex/contrib/to-be-determined/to-be-determined.dtx32
-rw-r--r--macros/latex/contrib/to-be-determined/to-be-determined.ins4
-rw-r--r--macros/latex/contrib/to-be-determined/to-be-determined.pdfbin250268 -> 261545 bytes
-rw-r--r--macros/latex/contrib/tugboat/NEWS28
-rw-r--r--macros/latex/contrib/tugboat/ltubguid.pdfbin328892 -> 331358 bytes
-rw-r--r--macros/latex/contrib/tugboat/tugboat-code.pdfbin523488 -> 523190 bytes
-rw-r--r--macros/latex/contrib/tugboat/tugboat.bst47
-rw-r--r--macros/latex/contrib/tugboat/tugboat.dtx88
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-bw-admonitions.css.cls.sty46
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-bw-listing.css.cls.sty30
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-bw-main.css.cls.sty3
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-bw-showcase.css.cls.sty21
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-bw-version-n-change.css.cls.sty5
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-color-admonitions.css.cls.sty50
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-color-listing.css.cls.sty30
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-color-main.css.cls.sty3
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-color-showcase.css.cls.sty21
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-color-version-n-change.css.cls.sty5
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-dark-admonitions.css.cls.sty50
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-dark-listing.css.cls.sty30
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-dark-main.css.cls.sty9
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-dark-showcase.css.cls.sty21
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-dark-version-n-change.css.cls.sty5
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-draft-admonitions.css.cls.sty18
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-draft-listing.css.cls.sty31
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-draft-main.css.cls.sty3
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-draft-showcase.css.cls.sty21
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-draft-version-n-change.css.cls.sty5
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty17
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty17
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-main-locale-en.cfg.cls.sty18
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-main-locale-es.cfg.cls.sty18
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-main-locale-fr.cfg.cls.sty18
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc.cls1429
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc.sty1063
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-en.pdfbin709681 -> 1098306 bytes
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-en.tex1809
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdfbin746351 -> 1102831 bytes
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex1872
-rw-r--r--macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdfbin3225047 -> 3225047 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdfbin127160 -> 127160 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdfbin81407 -> 81407 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx19
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdfbin505385 -> 505689 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdfbin62547 -> 62547 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdfbin65647 -> 65647 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdfbin27549 -> 27549 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdfbin179332 -> 179397 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdfbin132771 -> 132758 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdfbin175932 -> 175932 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/README.md2
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdfbin268481 -> 270526 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdfbin164864 -> 166576 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdfbin270492 -> 273650 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdfbin169129 -> 171925 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy.dtx78
-rw-r--r--macros/latex/contrib/ufrgscca/README.md5
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.pdfbin594046 -> 593881 bytes
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty10
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca.cls10
-rw-r--r--macros/latex/contrib/unbtex/README.md72
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example.pdfbin592915 -> 808668 bytes
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example.tex94
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex118
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex23
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex31
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex117
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/apendice-c.tex12
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex7
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex74
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex88
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex95
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/codigos/blockdiagram.tex1
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m6
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py8
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.pngbin19971 -> 0 bytes
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdfbin42602 -> 0 bytes
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdfbin1356 -> 0 bytes
-rw-r--r--macros/latex/contrib/unbtex/unbtex-example/referencias.bib46
-rw-r--r--macros/latex/contrib/unbtex/unbtex.cls727
-rw-r--r--macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst55
-rw-r--r--macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-pt.bst42
-rw-r--r--macros/latex/contrib/unbtex/unbtexcite/unbtex-num-en.bst50
-rw-r--r--macros/latex/contrib/unbtex/unbtexcite/unbtex-num-pt.bst48
-rw-r--r--macros/latex/contrib/unbtex/unbtexcover/capa.pdf54
-rw-r--r--macros/latex/contrib/unbtex/unbtexcover/contracapa.pdfbin0 -> 2746 bytes
-rw-r--r--macros/latex/contrib/univie-ling/README31
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx50
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx2
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdfbin132716 -> 132635 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdfbin127947 -> 127866 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdfbin201366 -> 201366 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdfbin200967 -> 200967 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdfbin172712 -> 172484 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdfbin167812 -> 167577 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdfbin227180 -> 227180 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdfbin224983 -> 224983 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdfbin190497 -> 347337 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdfbin186645 -> 343435 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdfbin250474 -> 250470 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdfbin250365 -> 250364 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdfbin0 -> 344951 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex238
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdfbin461588 -> 464581 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex37
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdfbin450553 -> 454292 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex33
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdfbin459207 -> 462306 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex37
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdfbin457851 -> 457853 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex2
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdfbin462143 -> 465942 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex78
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdfbin350542 -> 354003 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex52
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.pdfbin365821 -> 365619 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.tex4
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls19
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls19
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls19
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls2
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls113
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls30
-rw-r--r--macros/latex/contrib/updatemarks/doc/updatemarks.pdfbin511281 -> 511659 bytes
-rw-r--r--macros/latex/contrib/updatemarks/doc/updatemarks.tex5
-rw-r--r--macros/latex/contrib/updatemarks/tex/updatemarks.sty17
-rw-r--r--macros/latex/contrib/useclass/README.md5
-rw-r--r--macros/latex/contrib/useclass/useclass.dtx16
-rw-r--r--macros/latex/contrib/useclass/useclass.pdfbin539822 -> 541385 bytes
-rw-r--r--macros/latex/contrib/verifycommand/README.txt2
-rw-r--r--macros/latex/contrib/verifycommand/verifycommand.dtx711
-rw-r--r--macros/latex/contrib/verifycommand/verifycommand.pdfbin226262 -> 264745 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdfbin0 -> 95898 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex26
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdfbin476435 -> 477237 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex6
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdfbin612911 -> 617253 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex21
-rw-r--r--macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty54
-rw-r--r--macros/latex/contrib/xcolor/ChangeLog9
-rw-r--r--macros/latex/contrib/xcolor/README.md4
-rw-r--r--macros/latex/contrib/xcolor/xcolor.dtx62
-rw-r--r--macros/latex/contrib/xcolor/xcolor.pdfbin864842 -> 865002 bytes
-rw-r--r--macros/latex/contrib/xcolor/xcolor2.pdfbin91845 -> 88550 bytes
-rw-r--r--macros/latex/contrib/xltabular/Changes1
-rw-r--r--macros/latex/contrib/xltabular/xltabular-doc.pdfbin71248 -> 77174 bytes
-rw-r--r--macros/latex/contrib/xltabular/xltabular-doc.tex119
-rw-r--r--macros/latex/contrib/xltabular/xltabular.sty22
-rw-r--r--macros/latex/contrib/xreview/README54
-rw-r--r--macros/latex/contrib/xreview/xreview.pdfbin0 -> 243660 bytes
-rw-r--r--macros/latex/contrib/xreview/xreview.sty135
-rw-r--r--macros/latex/contrib/xreview/xreview.tex591
-rw-r--r--macros/latex/contrib/zref-clever/CHANGELOG.md17
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-code.pdfbin880835 -> 891606 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-doc.pdfbin227507 -> 229279 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-doc.tex107
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever.dtx604
-rw-r--r--macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex95
-rw-r--r--macros/latex/contrib/zugferd/DEPENDS.txt7
-rw-r--r--macros/latex/contrib/zugferd/INSTALL.md31
-rw-r--r--macros/latex/contrib/zugferd/README.md31
-rw-r--r--macros/latex/contrib/zugferd/zugferd-invoice.sty197
-rw-r--r--macros/latex/contrib/zugferd/zugferd.dtx2382
-rw-r--r--macros/latex/contrib/zugferd/zugferd.ins19
-rw-r--r--macros/latex/contrib/zugferd/zugferd.pdfbin0 -> 444398 bytes
2202 files changed, 141936 insertions, 75277 deletions
diff --git a/macros/latex/contrib/acmart/Makefile b/macros/latex/contrib/acmart/Makefile
index 545e505ed5..c81d355446 100644
--- a/macros/latex/contrib/acmart/Makefile
+++ b/macros/latex/contrib/acmart/Makefile
@@ -14,6 +14,7 @@ DEV=-dev # To switch dev on
PDF = $(PACKAGE).pdf acmguide.pdf
BIBLATEXFILES= $(wildcard *.bbx) $(wildcard *.cbx) $(wildcard *.dbx) $(wildcard *.lbx)
+
SAMPLEBIBLATEXFILES=$(patsubst %,samples/%,$(BIBLATEXFILES))
ACMCPSAMPLES= \
@@ -21,7 +22,7 @@ ACMCPSAMPLES= \
samples/sample-acmcp-Invited.pdf \
samples/sample-acmcp-Position.pdf \
samples/sample-acmcp-Research.pdf \
- samples/sample-acmcp-Review.pdf \
+ samples/sample-acmcp-Review.pdf
all: ${PDF} ALLSAMPLES
@@ -46,6 +47,9 @@ acmguide.pdf: $(PACKAGE).dtx $(PACKAGE).cls
%.cls: %.ins %.dtx
pdflatex $<
+%-tagged.cls: %.ins %.dtx
+ pdflatex $<
+
ALLSAMPLES: $(SAMPLEBIBLATEXFILES)
cd samples; pdflatex samples.ins; cd ..
@@ -59,6 +63,7 @@ samples/%: %
samples/$(PACKAGE).cls: $(PACKAGE).cls
+samples/$(PACKAGE)-tagged.cls: $(PACKAGE)-tagged.cls
samples/ACM-Reference-Format.bst: ACM-Reference-Format.bst
samples/abbrev.bib: ACM-Reference-Format.bst
@@ -116,7 +121,18 @@ samples/sample-sigconf-lualatex.pdf: samples/sample-lualatex.tex samples/$(PA
samples/sample-acmcp.pdf: samples/acm-jdslogo.png
-.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls
+
+samples/sample-acmsmall-tagged.pdf: samples/sample-acmsmall-tagged.tex samples/$(PACKAGE)-tagged.cls samples/ACM-Reference-Format.bst
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ - cd $(dir $@) && bibtex $(notdir $(basename $<))
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && lualatex-dev $(notdir $<); done
+
+
+
+.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls $(PACKAGE)-tagged.cls
docclean:
$(RM) *.log *.aux \
@@ -124,7 +140,9 @@ docclean:
*.ilg *.ind *.out *.lof \
*.lot *.bbl *.blg *.gls *.cut *.hd \
*.dvi *.ps *.thm *.tgz *.zip *.rpi \
- samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst \
+ samples/$(PACKAGE).cls \
+ samples/$(PACKAGE)-tagged.cls \
+ samples/ACM-Reference-Format.bst \
samples/*.log samples/*.aux samples/*.out \
samples/*.bbl samples/*.blg samples/*.cut \
samples/acm-jdslogo.png \
@@ -132,7 +150,7 @@ docclean:
clean: docclean
- $(RM) $(PACKAGE).cls \
+ $(RM) $(PACKAGE).cls $(PACKAGE)-tagged.cls \
samples/*.tex
distclean: clean
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 7d79e34935..b46a735447 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -12,6 +12,9 @@ The production version is the one on CTAN and ACM sites.
Changes
+Version 2.09. Experimental tagging code is now in the main branch.
+ Creative Commons license is now allowed for all materials.
+
Version 2.08. Section titles are in lowercase now.
Documentation updates.
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 0ff7a902b7..26e19fdcc6 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -998,13 +998,7 @@
% by IW3C2, when some authors are approved Google employees.\\
% \texttt{cc} & Creative Commons license. If this key is set,
% \textsl{doclicense} images are used to typeset the license. See
-% also \cs{setcctype} command. Note that at present this license
-% can be used only either for \texttt{acmengage} format, or for
-% \texttt{nonacm} publications, or for the authors that meet any
-% of the following requirements: (a)~part of the ACM Open Program;
-% (b)~publishing in a Gold Open Access publication;
-% (c)~paying the Open Access APC;
-% (d)~part of the Google publishing agreement.\\
+% also \cs{setcctype} command. \\
% \texttt{acmcopyright} & The authors transfer the copyright to the
% ACM. This choice is no longer available for the
% non-commissioned authors and will trigger a warning.\\
@@ -2239,6 +2233,24 @@
% \item |figure*|: \cs{fulltextwidth}.
% \end{enumerate}
%
+%\subsection{Experiments with tagging}
+%\label{sec:ug_tagged}
+%
+% ACM is firmly committed to produce fully tagged PDFs compliant with
+% the accessibility standards. We use the developmental version of
+% tagging code by \LaTeX3 team, see the details at
+% \url{https://www.latex-project.org/publications/indexbytopic/pdf/}
+% and \url{https://tug.org/twg/accessibility/overview.html}.
+%
+% At present this work is highly experimental. You may try the
+% experiments by (1)~using the class |acmart-tagged| in the document
+% class line, and (2)~adding the command
+% \cs{DocumentMetadata}\oarg{options} in the preamble, see the file
+% \path{sample-acmsmall-tagged.tex}. If you do this, please \emph{do
+% not ask ACM for support}. On the other hand, bug reports at
+% \url{https://github.com/borisveytsman/acmart/issues} will be
+% appreciated.
+%
%
%
% \StopEventually{
@@ -2263,8 +2275,9 @@
%<*gobble>
\ProvidesFile{acmart.dtx}
%</gobble>
-%<class>\ProvidesClass{acmart}
-[2024/05/27 v2.08 Typesetting articles for the Association for Computing Machinery]
+%<class&!tagged>\ProvidesClass{acmart}
+%<tagged>\ProvidesClass{acmart-tagged}
+[2024/08/25 v2.09 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -2401,7 +2414,8 @@
\end{document}
%</gobble>
%<*class>
-\def\@classname{acmart}
+%<!tagged>\def\@classname{acmart}
+%<tagged>\def\@classname{acmart-tagged}
% \end{macrocode}
%
%
@@ -2442,13 +2456,13 @@
% \changes{1.87}{2022/08/13}{New format: acmcp}
% The possible formats
% \begin{macrocode}
-\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
+\define@choicekey*+{\@classname.cls}{format}[\ACM@format\ACM@format@nr]{%
manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
sigplan, sigchi, sigchi-a, acmengage, acmcp}[manuscript]{}{%
\ClassError{\@classname}{The option format must be manuscript,
acmsmall, acmlarge, acmtog, sigconf, siggraph,
sigplan, sigchi or sigchi-a}}
-\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
+\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{\@classname.cls}{format=#1}}}
\@DeclareACMFormat{manuscript}
\@DeclareACMFormat{acmsmall}
\@DeclareACMFormat{acmlarge}
@@ -2468,7 +2482,7 @@
% \begin{macro}{\if@ACM@screen}
% Whether we use screen mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{screen}[true]{%
\if@ACM@screen
\PackageInfo{\@classname}{Using screen mode}%
\else
@@ -2483,7 +2497,7 @@
% \begin{macro}{\if@ACM@urlbreakonhyphens}
% \changes{1.60}{2019/04/22}{introduced macro}
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{urlbreakonhyphens}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{urlbreakonhyphens}[true]{%
\if@ACM@urlbreakonhyphens
\PackageInfo{\@classname}{Using breaking urls on hyphens}%
\else
@@ -2499,7 +2513,7 @@
% \changes{v1.46}{2017/08/29}{Modified description}
% Whether we define theorem-like environments.
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{acmthm}[true]{%
\if@ACM@acmthm
\PackageInfo{\@classname}{Requiring acmthm}%
\else
@@ -2516,7 +2530,7 @@
% \changes{v1.48}{2017/09/09}{Review mode now switches on folios}
% Whether we use review mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{review}[true]{%
\if@ACM@review
\PackageInfo{\@classname}{Using review mode}%
\AtBeginDocument{\@ACM@printfoliostrue}%
@@ -2533,7 +2547,7 @@
% \changes{v1.03}{2016/04/22}{Added macro}
% Whether we use author's-version mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{authorversion}[true]{%
\if@ACM@authorversion
\PackageInfo{\@classname}{Using authorversion mode}%
\else
@@ -2550,7 +2564,7 @@
% Special option for non-ACM publications
% using the ACM typesetting options.
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{nonacm}[true]{%
\if@ACM@nonacm
\PackageInfo{\@classname}{Using nonacm mode}%
\AtBeginDocument{\@ACM@printacmreffalse}%
@@ -2570,7 +2584,7 @@
% \changes{v1.57}{2018/12/16}{Added macro}
% Whether to balance the last page
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{balance}[true]{}{%
+\define@boolkey+{\@classname.cls}[@ACM@]{balance}[true]{}{%
\PackageError{\@classname}{The option balance can be either true or
false}}
\ExecuteOptionsX{balance}
@@ -2583,7 +2597,7 @@
% \changes{v1.76}{2021/03/16}{Added macro}
% Whether to balance the last page
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{pbalance}[true]{}{%
+\define@boolkey+{\@classname.cls}[@ACM@]{pbalance}[true]{}{%
\PackageError{\@classname}{The option pbalance can be either true or
false}}
\ExecuteOptionsX{pbalance=false}
@@ -2601,7 +2615,7 @@
% \begin{macro}{\if@ACM@natbib}
% Whether we use |natbib| mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{natbib}[true]{%
\if@ACM@natbib
\PackageInfo{\@classname}{Explicitly selecting natbib mode}%
\else
@@ -2617,7 +2631,7 @@
% \begin{macro}{\if@ACM@anonymous}
% Whether we use anonymous mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{anonymous}[true]{%
\if@ACM@anonymous
\PackageInfo{\@classname}{Using anonymous mode}%
\else
@@ -2634,7 +2648,7 @@
% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)}
% Whether we use timestamp mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{timestamp}[true]{%
\if@ACM@timestamp
\PackageInfo{\@classname}{Using timestamp mode}%
\else
@@ -2652,7 +2666,7 @@
% \changes{v1.36}{2017/05/13}{Corrected typo, thanks to bargteil}
% Whether we use author-draft mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{authordraft}[true]{%
\if@ACM@authordraft
\PackageInfo{\@classname}{Using authordraft mode}%
\@ACM@timestamptrue
@@ -2788,13 +2802,13 @@
\ClassWarning{\@classname}{%
The format siggraph is now obsolete.\MessageBreak
I am switching to sigconf.}
- \setkeys{acmart.cls}{format=sigconf}
+ \setkeys{\@classname.cls}{format=sigconf}
\fi
\ifnum\ACM@format@nr=7\relax % sigchi
\ClassWarning{\@classname}{%
The format sigchi is now obsolete.\MessageBreak
I am switching to sigconf.}
- \setkeys{acmart.cls}{format=sigconf}
+ \setkeys{\@classname.cls}{format=sigconf}
\fi
\ifnum\ACM@format@nr=8\relax % sigchi
\ClassWarning{\@classname}{%
@@ -2861,6 +2875,42 @@
% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN}
% \changes{v1.87}{2022/08/27}{Set font sizes for |acmengage| and |acmcp|}
%
+%<*tagged>
+% \changes{v2.09}{2022/08/25}{Saved the old definitions (Ulrike's
+% code}
+% Before we load the base class we want to save the original
+% definitions of sectioning commands since |acmart| redefines them,
+% and we need the vanilla versions.
+% \begin{macro}{\@startsection@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@startsection@kernel\@startsection
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@xsect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@xsect@kernel\@xsect
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@sect@kernel\@sect
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ssect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@ssect@kernel\@ssect
+% \end{macrocode}
+% \end{macro}
+%
+%</tagged>
+%
%
% At this point we either have \cs{ACM@fontsize} or use defaults
% \begin{macrocode}
@@ -3258,6 +3308,14 @@
% We need to do this early since we want |hyperref| to have a chance
% to redefine them again:
% \begin{macrocode}
+%</class>
+%<*tagged>
+\let\@startsection\@startsection@kernel
+\let\@sect\@sect@kernel
+\let\@ssect\@ssect@kernel
+\let\@xsect\@xsect@kernel
+%</tagged>
+%<*class&!tagged>
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
@@ -3337,7 +3395,6 @@
\fi}%
\fi
\ignorespaces}
-\def\@seccntformat#1{\csname the#1\endcsname\quad}
\def\@ssect#1#2#3#4#5{%
\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
@@ -3350,11 +3407,14 @@
\def\@svsechd{#4{\hskip #1\relax #5}}%
\fi
\@xsect{#3}}
+%</class&!tagged>
+%<*class>
+\def\@seccntformat#1{\csname the#1\endcsname\quad}
% \end{macrocode}
%
% \end{macro}
%
-% \begin{macro}{\@startsection}
+% \begin{macro}{\@starttoc}
% \changes{v1.31}{2017/03/04}{Redefined macro}
% \changes{v1.43}{2017/07/09}{Added \cs{makeatletter}}
% The |amsart| package redefines \cs{startsection}. Here we redefine
@@ -3365,7 +3425,9 @@
\par\removelastskip\vskip\z@skip
\@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
{.5\linespacing}{\centering\contentsnamefont}{#2}%
+%<tagged>\@starttoc@cfgpoint@before{#1}%NEW<<<<<<<<<< (name will change)
\@input{\jobname.#1}%
+%<tagged>\@starttoc@cfgpoint@after{#1}%NEW<<<<<<<<<<<< (name will change)
\if@filesw
\@xp\newwrite\csname tf@#1\endcsname
\immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
@@ -5974,29 +6036,9 @@
%
% \begin{macro}{\@ACM@copyright@check@cc}
% \changes{v1.87}{2022/07/30}{Added macro}
-% At present cC licenses can be used only for acmengage format or for
-% non-acm stuff. This macro checks whether the CC license is
-% applicable and generates an error if not.
% \changes{v2.00}{2023/10/22}{Moved to warning}
-% \begin{macrocode}
-\def\@ACM@copyright@check@cc{%
- \if@ACM@nonacm
- \ClassInfo{\@classname}{Using CC license with a non-acm
- material}%
- \else
- \if@ACM@engage
- \ClassInfo{\@classname}{Using CC license with ACM Enage
- material}%
- \else
- \ClassWarning{\@classname}{%
- Sorry, Creative Commons licenses are\MessageBreak
- currently not used with ACM publications\MessageBreak
- typeset by the authors}{Please use nonacm
- option or ACM Engage class to enable CC licenses}%
- \fi
- \fi}
-% \end{macrocode}
-%
+% \changes{v2.09}{2024/08/25}{Deleted macro}
+% This macro is no longer needed due to the change in ACM policy.
% \end{macro}
%
% \begin{macro}{\@copyrightpermission}
@@ -6007,8 +6049,8 @@
% \changes{v1.85}{2022/05/08}{Added CC licenses}
% \changes{v1.87}{2022/07/30}{CC licenses now are allowed only for
% non-acm or ACM engage publications}
-% \changes{v2.00}{2023/10/24}{Rewrote wording}
-% \changes{v2.00}{2023/10/24}{Rewrote wording}
+% \changes{v2.09}{2024/08/25}{Deleted checking whether CC licenses are
+% allowed}
% The canned permission block.
% \begin{macrocode}
\def\@copyrightpermission{%
@@ -6139,7 +6181,6 @@
disseminate the work on their personal and corporate Web sites with
the appropriate attribution.
\or % CC
- \@ACM@copyright@check@cc
\IfEq{\ACM@cc@type}{zero}{%
\def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0/legalcode}}{%
\edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version/legalcode}}%
@@ -6471,7 +6512,7 @@
pdfsubject={\@concepts},
pdfkeywords={\@keywords},
pdfcreator={LaTeX with acmart
- \csname ver@acmart.cls\endcsname\space
+ \csname ver@\@classname.cls\endcsname\space
and hyperref
\csname ver@hyperref.sty\endcsname}}%
\andify\authors
@@ -7588,6 +7629,18 @@
%
% \end{macro}
%
+%<*tagged>
+% We stop tagging inside maketitle for now. Ulrike's code again.
+% \begin{macrocode}
+\ExplSyntaxOn
+\AddToHook{cmd/maketitle/before}
+ {\tagstructbegin{tag=Title}\tagmcbegin{} \tag_stop:}
+\AddToHook{cmd/maketitle/after}
+ {\tag_start:\tagmcend\tagstructend }
+\ExplSyntaxOff
+% \end{macrocode}
+%</tagged>
+%
%\subsection{Headers and Footers}
%\label{sec:head_foot}
%
@@ -8129,28 +8182,33 @@
% \changes{v1.69}{2020/02/02}{No dots for unindented paragraphs}
% Sectioning is different for different levels
% \begin{macrocode}
-\renewcommand\section{\@startsection{section}{1}{\z@}%
+\renewcommand\section{\def\@toclevel{1}%
+ \@startsection{section}{1}{\z@}%
{-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{.25\baselineskip}%
{\ACM@NRadjust\@secfont}}
-\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+\renewcommand\subsection{\def\@toclevel{2}%
+ \@startsection{subsection}{2}{\z@}%
{-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{.25\baselineskip}%
{\ACM@NRadjust\@subsecfont}}
-\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+\renewcommand\subsubsection{\def\@toclevel{3}%
+ \@startsection{subsubsection}{3}{\z@}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@subsubsecfont\@adddotafter}}}
-\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
+\renewcommand\paragraph{\def\@toclevel{4}%
+ \@startsection{paragraph}{4}{\parindent}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@parfont\@adddotafter}}}
-\newcommand\noindentparagraph{\@startsection{paragraph}{4}{\z@}%
+\newcommand\noindentparagraph{\def\@toclevel{4}%
+ \@startsection{paragraph}{4}{\z@}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@parfont}}}
-
-\renewcommand\part{\@startsection{part}{9}{\z@}%
+\renewcommand\part{\def\@toclevel{9}%
+ \@startsection{part}{9}{\z@}%
{-10\p@ \@plus -4\p@ \@minus -2\p@}%
{4\p@}%
{\ACM@NRadjust\@parfont}}
diff --git a/macros/latex/contrib/acmart/acmart.ins b/macros/latex/contrib/acmart/acmart.ins
index d17dc066fd..95c1596220 100644
--- a/macros/latex/contrib/acmart/acmart.ins
+++ b/macros/latex/contrib/acmart/acmart.ins
@@ -13,6 +13,7 @@
\generate{%
\file{acmart.cls}{\from{acmart.dtx}{class}}
+ \file{acmart-tagged.cls}{\from{acmart.dtx}{class,tagged}}
}
\obeyspaces
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index 9a91d07bf7..1bcb0df6ad 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index 927dd7c750..5e90dfb3a5 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
index c57d1898d1..47892feee6 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
index 366843b28e..d4cd824cf2 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index 25a90ec394..65c836673e 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
index d644e32874..4fe535b32c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index 6e1488235e..17cb0fe359 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index e0471c8a27..81006c5a71 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf
new file mode 100644
index 0000000000..87bd3e53d1
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 17c719abda..fa3a710f0f 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
index 71e87b73b1..3518df9fdd 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index 1e39a159d3..681d94fbc7 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index 301caf80cb..2b02e5a7ab 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
index a465c8463e..be82dbf5ab 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
index b4052f9363..e2548408a0 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
index dc0e0fe12e..f89bc4b108 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index ab5954e602..dd0252c1d5 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index 534e00da12..6f0cccd362 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/samples.dtx b/macros/latex/contrib/acmart/samples/samples.dtx
index 37e7a0abfd..b2d75d2a83 100644
--- a/macros/latex/contrib/acmart/samples/samples.dtx
+++ b/macros/latex/contrib/acmart/samples/samples.dtx
@@ -14,7 +14,19 @@
%TC:envir comment 0 0
%TCMACROS
%%
-%%
+%</all>
+%<*tagged>
+%% The tagged file should start with the metadata commands.
+%% We also need currently use lualatex-dev for compilation!
+\ifx\HCode\Undef
+\DocumentMetadata{
+ pdfversion=2.0,pdfstandard=ua-2,
+ testphase={phase-III,firstaid,math,title}}
+\else
+\DocumentMetadata{}
+\fi
+%</tagged>
+%<*all>
%% The first command in your LaTeX source must be the \documentclass
%% command.
%%
@@ -27,7 +39,8 @@
%%
%%
%<manuscript>\documentclass[manuscript,screen,review]{acmart}
-%<acmsmall|acmsmall-conf>\documentclass[acmsmall]{acmart}
+%<acmsmall&!tagged>\documentclass[acmsmall]{acmart}
+%<acmsmall-conf>\documentclass[acmsmall]{acmart}
%<acmsmall-biblatex>\documentclass[acmsmall,natbib=false]{acmart}
%<acmsmall-submission>\documentclass[acmsmall,screen,review]{acmart}
%<acmlarge>\documentclass[acmlarge]{acmart}
@@ -41,7 +54,7 @@
%<sigconf-i13n>\documentclass[sigconf, language=french,
%<sigconf-i13n>language=german, language=spanish, language=english]{acmart}
%<acmcp>\documentclass[acmcp]{acmart}
-
+%<acmsmall&tagged>\documentclass[acmsmall]{acmart-tagged}
%%
%% \BibTeX command to typeset BibTeX logo in the docs
\AtBeginDocument{%
@@ -58,7 +71,6 @@
\copyrightyear{2018}
\acmYear{2018}
\acmDOI{XXXXXXX.XXXXXXX}
-
%</all>
%<*proceedings>
%% These commands are for a PROCEEDINGS abstract or paper.
diff --git a/macros/latex/contrib/acmart/samples/samples.ins b/macros/latex/contrib/acmart/samples/samples.ins
index 2636f5899b..a525d48b55 100644
--- a/macros/latex/contrib/acmart/samples/samples.ins
+++ b/macros/latex/contrib/acmart/samples/samples.ins
@@ -24,5 +24,6 @@
\file{sample-acmtog-conf.tex}{\from{samples.dtx}{all,journal,proceedings,bibtex,acmtog-conf}}
\file{sample-acmcp.tex}{\from{samples.dtx}{all,journal,acmcp}}
\file{sample-acmengage.tex}{\from{acmengage.dtx}{acmengage}}
+ \file{sample-acmsmall-tagged.tex}{\from{samples.dtx}{all,journal,acmsmall,tagged}}
}
diff --git a/macros/latex/contrib/acronym/CHANGES b/macros/latex/contrib/acronym/CHANGES
index 95a9095483..b4a3b73106 100644
--- a/macros/latex/contrib/acronym/CHANGES
+++ b/macros/latex/contrib/acronym/CHANGES
@@ -1,3 +1,15 @@
+Version 1.49 (Mar 2024)
+
+- Adds noforwardlinks option
+-- Chris Landis
+- Fixes targets for forward links to acs/acl/etc.-only use
+-- Chris Landis
+
+Version 1.48 (Oct 2021)
+
+- corrected capitalization of acronyms with a custom plural form
+-- Bruno Le Floch
+
Version 1.47 (Apr 2020)
- Fixed \Iac macro expansion bug
diff --git a/macros/latex/contrib/acronym/acronym.dtx b/macros/latex/contrib/acronym/acronym.dtx
index f7d8e8eabd..b332333810 100644
--- a/macros/latex/contrib/acronym/acronym.dtx
+++ b/macros/latex/contrib/acronym/acronym.dtx
@@ -2,7 +2,7 @@
%
% Doc-Source file to use with LaTeX2e
%
-% Copyright 1994-2020 by Tobias Oetiker (tobi@oetiker.ch) and many Contributors.
+% Copyright 1994-2024 by Tobias Oetiker (tobi@oetiker.ch) and many Contributors.
% All rights reserved.
%
% This work may be distributed and/or modified under the conditions of
@@ -35,7 +35,7 @@
%</driver>
% \fi
%
-% \CheckSum{1526}
+% \CheckSum{1634}
%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -82,6 +82,8 @@
% \DoNotIndex{\textbf, \textsf, \textsmaller, \textsuperscript, \the}
% \DoNotIndex{\usepackage}
%
+% \changes{v1.49}{2024/03/30}{Chris Landis adds noforwardlinks option and fixes targets for forward links to acs/acl/etc.-only use}
+% \changes{v1.48}{2021/10/09}{Bruno Le Floch corrected capitalization of acronyms with a custom plural form.}
% \changes{v1.47}{2020/04/10}{Tobi Oetiker and Marcus Meeßen \cmd{hskip} Fixed several bugs in macros that use capitalisation, a bug were the output depends on the position of the list of acronyms, and a bug were nested hyperlinks could cause errors.}
% \changes{v1.46}{2020/03/13}{Tobi Oetiker \cmd{hskip} Fixed miss merge}
% \changes{v1.45}{2020/03/13}{Marcus Meeßen \cmd{hskip} Fixed hyperref and "missing aux" regressions.}
@@ -265,7 +267,7 @@
%
% \DescribeMacro{\acsp}
% Works in the same way as \cmd{\acs}, but makes the short
-% form into a plural.
+% form into a plural.
%
% \DescribeMacro{\aclp}
% Works in the same way as \cmd{\acl}, but makes the long form
@@ -284,6 +286,14 @@
% Works in the same way as \cmd{\acfi}, but starts the long form with an
% upper case letter.
%
+% \DescribeMacro{\acfip}
+% Works in the same way as \cmd{\acfi}, but makes the short and long
+% forms into plurals.
+%
+% \DescribeMacro{\Acfip}
+% Works in the same way as \cmd{\acfip}, but starts the long form with
+% an upper case letter.
+%
% \DescribeMacro{\acused}
% Marks an acronym as used, as if it had been called with \cmd{\ac},
% but without printing anything. This means that in the future only the
@@ -302,11 +312,11 @@
% Example: |\acl{lox}/\acl{lh2} (\acsu{lox}/\acsu{lh2})|
%
% \DescribeMacro{\iac}
-% Works in the same way as the \cmd{\ac} command but prefixes it with
+% Works in the same way as the \cmd{\ac} command but prefixes it with
% an appropriate indefinite article.
%
% \DescribeMacro{\Iac}
-% Works in the same way as the \cmd{\ac} command but prefixes it with
+% Works in the same way as the \cmd{\ac} command but prefixes it with
% an appropriate upper case indefinite article.
%
% \DescribeMacro{\...*}
@@ -316,8 +326,9 @@
% not show up.\\
% \cmd{\ac*}, \cmd{\Ac*}, \cmd{\acs*}, \cmd{\acl*}, \cmd{\Acl*}, \cmd{\acf*},
% \cmd{\Acf*}, \cmd{\acp*}, \cmd{\Acp*}, \cmd{\acsp*}, \cmd{\aclp*}, \cmd{\Aclp*},
-% \cmd{\acfp*}, \cmd{\Acfp*}, \cmd{\acfi*}, \cmd{\Acfi*}, \cmd{\acsu*},
-% \cmd{\aclu*}, \cmd{\Aclu*}, \cmd{\iac*} and \cmd{\Iac*}.
+% \cmd{\acfp*}, \cmd{\Acfp*}, \cmd{\acfi*}, \cmd{\Acfi*}, \cmd{\acfip*},
+% \cmd{\Acfip*}, \cmd{\acsu*}, \cmd{\aclu*}, \cmd{\Aclu*}, \cmd{\iac*},
+% and \cmd{\Iac*}.
%
% \subsection{Customization}
%
@@ -451,7 +462,7 @@
% that the latter makes the acronym definition stored in the |.aux|
% file. Therefore, the acronym becomes available from start-up in
% the next run.
-%
+%
% Note that all the acronym definitions made by \cmd{\acro} in the
% |acronym| environment are also similarly added to the |.aux|
% file.
@@ -459,8 +470,8 @@
% \subsubsection{Non standard indefinite articles}
%
% Sometimes the indefinite article of an acronym differs between its
-% short form and its long form, for example ``a Federal Bureau of
-% Investigation (FBI) agent'' and ``an FBI agent''. To deal with this,
+% short form and its long form, for example ``a Federal Bureau of
+% Investigation (FBI) agent'' and ``an FBI agent''. To deal with this,
% the package provides the following three commands
% \DescribeMacro{\newacroindefinite}
% \DescribeMacro{\acrodefindefinite}
@@ -479,7 +490,7 @@
% the acronym definition in the |.aux| file, so that the acronym
% exception is available at the next run from start-up.
%
-% When using \cmd{\iac} and \cmd{\Iac} without first defining an
+% When using \cmd{\iac} and \cmd{\Iac} without first defining an
% article, the default article is ``a''.
%
% \subsubsection{Non standard and foreign plural forms}
@@ -538,7 +549,7 @@
% exception is available at the next run from start-up. When the
% optional short form is not provided, the acronym name plus an `s'
% is used.
-%
+%
% Plural exceptions are never reported in tables of acronyms.
%
%
@@ -682,8 +693,8 @@ blocks to be tested separately. The latter are commonly indicated as
% First we test that we got the right format and name the package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{acronym}[2020/04/17
- v1.47
+\ProvidesPackage{acronym}[2024/03/30
+ v1.49
Support for acronyms (Tobias Oetiker)]
\RequirePackage{suffix,xstring}
% \end{macrocode}
@@ -706,7 +717,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
%
% \begin{macro}{\ifAC@nohyperlinks}
-% If hyperref is loaded, all acronyms will link to their glossary entry.
+% If hyperref is loaded, all acronyms will link to their glossary entry and the glossary entries to the first in-text use.
% With the option |nohyperlinks| these links can be suppressed.
% \begin{macrocode}
\newif\ifAC@nohyperlinks
@@ -717,6 +728,18 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ifAC@noforwardlinks}
+% If hyperref is loaded and the |nohyperlinks| option is not selected,
+% the option |noforwardlinks| suppresses the links from the glossary entries to the in-text use.
+% \begin{macrocode}
+\newif\ifAC@noforwardlinks
+\AC@noforwardlinksfalse
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareOption{noforwardlinks}{\AC@noforwardlinkstrue}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ifAC@noacroprefix}
% With the |noacroprefix| option the acronym commands are not prefixed. This
% reproduces the old behavior of version <1.43, but can cause collisions
@@ -852,7 +875,7 @@ blocks to be tested separately. The latter are commonly indicated as
% is being set to the maximum. Otherwise, the default penalty is one level below
% the maximum, meaning that most of the times, by default, the line will not get
% broken.
-%
+%
% \begin{macrocode}
\ifAC@nolinebreak
\def\AC@linebreakpenalty{4}
@@ -889,7 +912,7 @@ blocks to be tested separately. The latter are commonly indicated as
\AtBeginDocument{%
\@ifpackageloaded{hyperref}
{\let\AC@hyperlink=\hyperlink
- \let\AC@hyperref=\hyperref
+ \ifAC@noforwardlinks\else\let\AC@hyperref=\hyperref\fi
\newcommand*\AC@raisedhypertarget[2]{%
\Hy@raisedlink{\hypertarget{#1}{}}#2}%
\let\AC@hypertarget=\AC@raisedhypertarget
@@ -959,6 +982,8 @@ blocks to be tested separately. The latter are commonly indicated as
\def\Acp#1{\AChy@call{#1}\@Acp}%
\def\acfi#1{\AChy@call{#1}\AChy@acf}%
\def\Acfi#1{\AChy@call{#1}\AChy@Acf}%
+ \def\acfip#1{\AChy@call{#1}\AChy@acfp}%
+ \def\Acfip#1{\AChy@call{#1}\AChy@Acfp}%
\let\acsu\acs
\let\aclu\acl
\let\Aclu\Acl
@@ -1078,13 +1103,20 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@firstupper}
+% \begin{macro}{\@firstupper,\@firstupper@maybe}
% Internal commands for making a first letter upper case.
% \begin{macrocode}
\newcommand{\@firstupper}[1]{%
\StrSplit{#1}{1}{\head}{\tail}%
\MakeUppercase\head\tail%
}
+\newcommand{\@firstupper@maybe}{%
+ \ifAC@upper
+ \expandafter\@firstupper
+ \else
+ \expandafter\@firstofone
+ \fi
+}
% \end{macrocode}
% \end{macro}
%
@@ -1153,7 +1185,7 @@ blocks to be tested separately. The latter are commonly indicated as
%
%
% \begin{environment}{AC@deflist}
-% In standard mode, the acronym - list is formatted with a description
+% In standard mode, the acronym list is formatted with a description
% environment. If an optional argument is passed to the acronym
% environment, the list is formatted as a AC@deflist, which needs the
% longest appearing acronym as parameter. If the option 'nolist' is selected
@@ -1198,7 +1230,7 @@ blocks to be tested separately. The latter are commonly indicated as
%
% \begin{macro}{\acro}
% Acronyms can be defined with the user command \cmd{\acro}
-% in side the |acronym| environment.
+% inside the |acronym| environment.
%
% \begin{macrocode}
\newenvironment{acronym}[1][1]{%
@@ -1390,7 +1422,7 @@ blocks to be tested separately. The latter are commonly indicated as
\@bsphack
\protected@write\@auxout{}{\string\newacroplural{#1}{#2}}%
\@esphack
-}
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1419,11 +1451,11 @@ blocks to be tested separately. The latter are commonly indicated as
{\string\newacroplural{#1}[\string\AC@hyperlink{#1}{\AC@acs{#1}}]{#2}}%
\@esphack
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
%
% \begin{macro}{\AC@aclp}
% \begin{macro}{\AC@Aclp}
@@ -1433,7 +1465,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \begin{macrocode}
\newcommand*\AC@aclp[1]{%
\ifcsname fn@#1@PL\endcsname
- \csname fn@#1@PL\endcsname
+ \@firstupper@maybe{\csname fn@#1@PL\endcsname}%
\else
\AC@acl{#1}s%
\fi
@@ -1492,11 +1524,7 @@ blocks to be tested separately. The latter are commonly indicated as
\PackageWarning{acronym}{Acronym `#3' is not defined}%
\textbf{#3!}%
\else
- \ifAC@upper
- \@firstupper{\expandafter#2#1}%
- \else
- \expandafter#2#1%
- \fi
+ \@firstupper@maybe{\expandafter#2#1}%
\fi
}
% \end{macrocode}
@@ -1542,7 +1570,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acs}[1]{%
- \acsfont{\AC@acs{#1}}%
+ \acsfont{\AC@placelabel@part{#1}\AC@acs{#1}}%
%% having a footnote on acs sort of defeats the purpose
%% \ifAC@footnote
%% \footnote{\AC@acl{#1}{}}%
@@ -1569,12 +1597,12 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acl}[1]{%
- \AC@acl{#1}%
+ \AC@placelabel@part{#1}\AC@acl{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@Acl}[1]{%
- \AC@Acl{#1}%
+ \AC@placelabel@part{#1}\AC@Acl{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -1657,6 +1685,12 @@ blocks to be tested separately. The latter are commonly indicated as
\let\AC@undonewlabel\@gobble
\fi
}%
+\newcommand*\AC@placelabel@part[1]{%
+ \expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used
+ \else
+ {\AC@phantomsection\@verridelabel{acro:#1}}%
+ \fi
+}%
\newcommand*\AC@placelabel[1]{%
\expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used
\else
@@ -1802,12 +1836,12 @@ blocks to be tested separately. The latter are commonly indicated as
\newcommand*{\@iaci}[1]{%
\ifcsname fn@#1@IL\endcsname
\ifAC@dua
- \csname fn@#1@IL\endcsname%
+ \@firstupper@maybe{\csname fn@#1@IL\endcsname}%
\else
\expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used%
\csname fn@#1@IS\endcsname%
\else
- \csname fn@#1@IL\endcsname%
+ \@firstupper@maybe{\csname fn@#1@IL\endcsname}%
\fi
\fi
\else
@@ -1846,7 +1880,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acsp}[1]{%
- \acsfont{\AC@acsp{#1}}%
+ \acsfont{\AC@placelabel@part{#1}\AC@acsp{#1}}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -1869,12 +1903,12 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@aclp}[1]{%
- \AC@aclp{#1}%
+ \AC@placelabel@part{#1}\AC@aclp{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@Aclp}[1]{%
- \AC@Aclp{#1}%
+ \AC@placelabel@part{#1}\AC@Aclp{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -2038,6 +2072,53 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
% \end{macro}
%
+%
+% \begin{macro}{\acfip}
+% \begin{macro}{\acfipa}
+% \begin{macro}{\Acfip}
+% \begin{macro}{\Acfipa}
+% The plural of the full name is printed in italics and the plural of
+% the acronym is printed in upshape.
+% The optional variable determines the penalty for a line break.
+% \begin{macrocode}
+\newcommand*{\acfip}{\AC@starredfalse\protect\acfipa}%
+\WithSuffix\newcommand\acfip*{\AC@starredtrue\protect\acfipa}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\Acfip}{\AC@starredfalse\protect\Acfipa}%
+\WithSuffix\newcommand\Acfip*{\AC@starredtrue\protect\Acfipa}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\acfipa}[2][\AC@linebreakpenalty]{%
+ \texorpdfstring{\protect\@acfip[#1]{#2}}{{\AC@aclp{#2}} (#2)}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\Acfipa}[2][\AC@linebreakpenalty]{%
+ \texorpdfstring{\protect\@Acfip[#1]{#2}}{{\AC@Aclp{#2}} (#2)}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@acfip}[2][\AC@linebreakpenalty]{%
+ \acffont{%
+ \AC@placelabel{#2}{\itshape\AC@aclp{#2}}%
+ \nolinebreak[#1] %
+ \acfsfont{(\acsfont{\AC@acsp{#2}})}%
+ }%
+ \ifAC@starred\else\AC@logged{#2}\fi}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@Acfip}[2][\AC@linebreakpenalty]{%
+ \acffont{%
+ \AC@placelabel{#2}{\itshape\AC@Aclp{#2}}%
+ \nolinebreak[#1] %
+ \acfsfont{(\acsfont{\AC@acsp{#2}})}%
+ }%
+ \ifAC@starred\else\AC@logged{#2}\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\acused}
% Marks the acronym as used. Don't confuse this with
% \cmd{\acronymused}!
diff --git a/macros/latex/contrib/acronym/acronym.ins b/macros/latex/contrib/acronym/acronym.ins
index 9dc36c5ac1..960366ec2f 100644
--- a/macros/latex/contrib/acronym/acronym.ins
+++ b/macros/latex/contrib/acronym/acronym.ins
@@ -4,7 +4,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1995--2020 by Tobias Oetiker (tobi@oetiker.ch)
+%% Copyright 1995--2021 by Tobias Oetiker (tobi@oetiker.ch)
%% and individual authors listed elsewhere
%% in this file.
%% All rights reserved.
@@ -31,7 +31,7 @@
\keepsilent
\preamble
- Copyright 1995--2020 by Tobias Oetiker (tobi@oetiker.ch)
+ Copyright 1995--2021 by Tobias Oetiker (tobi@oetiker.ch)
and individual authors listed elsewhere.
All rights reserved.
diff --git a/macros/latex/contrib/acronym/acronym.pdf b/macros/latex/contrib/acronym/acronym.pdf
index b65f18794c..2ab4152571 100644
--- a/macros/latex/contrib/acronym/acronym.pdf
+++ b/macros/latex/contrib/acronym/acronym.pdf
Binary files differ
diff --git a/macros/latex/contrib/algxpar/README.md b/macros/latex/contrib/algxpar/README.md
index 717f316923..6a967b1438 100644
--- a/macros/latex/contrib/algxpar/README.md
+++ b/macros/latex/contrib/algxpar/README.md
@@ -2,12 +2,12 @@
This package extends the algorithmicx package (algpseudocode) to support multiline text.
## How to use
-Copy `algxpar.sty` and `*.kw.tex` from `src` to somewhere in your TeX path.
+Copy `algxpar.sty` and `*.kw.tex` to somewhere in your TeX path.
-**Important**: as `algxpar` is included in the CTAN/Tex Live distribution, make sure this versions comes first in the search path when outdated.
+From CTAN: https://ctan.org/pkg/algxpar (check version!)
## Licence
-Copyright (C) 2019-2023 by Jander Moreira (moreira.jander@gmail.com)
+Copyright (C) 2019-2024 by Jander Moreira (moreira.jander@gmail.com)
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -23,12 +23,8 @@ The Current Maintainer of this work is Jander Moreira.
Files to use the package:
* algxpar.sty
-* algxpar-english.kw.tex
-* algxpar-brazilian.kw.tex
+* algxpar-*.kw.tex (keywords)
-Manual:
-* algxpar-doc.pdf .
-
-Files to compile the manual (requires `pygmentize`)
+Manual (requires `pygmentize`):
* algxpar-doc.tex
-* algxpar-lzw.tex
+* algxpar-versionchanges.sty
diff --git a/macros/latex/contrib/algxpar/algxpar-brazilian.kw.tex b/macros/latex/contrib/algxpar/algxpar-brazilian.kw.tex
index 899c01b903..a697a48be6 100644
--- a/macros/latex/contrib/algxpar/algxpar-brazilian.kw.tex
+++ b/macros/latex/contrib/algxpar/algxpar-brazilian.kw.tex
@@ -4,8 +4,8 @@
description = Descrição,
input = Entrada,
output = Saída,
- require = {Pré-condição},
- ensure = {Pós-condição},
+ require = {Requer},
+ ensure = {Assegura},
end = fim,
if = se,
then = então,
@@ -30,6 +30,8 @@
function = função,
procedure = procedimento,
return = retorne,
+ byref = ref,
+ byvalue = val,
true = Verdadeiro,
false = Falso,
nil = Nil,
diff --git a/macros/latex/contrib/algxpar/algxpar-doc.pdf b/macros/latex/contrib/algxpar/algxpar-doc.pdf
index 04c22e9193..b8270427b7 100644
--- a/macros/latex/contrib/algxpar/algxpar-doc.pdf
+++ b/macros/latex/contrib/algxpar/algxpar-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/algxpar/algxpar-doc.tex b/macros/latex/contrib/algxpar/algxpar-doc.tex
index c864162f1e..ca7c9ba0bb 100644
--- a/macros/latex/contrib/algxpar/algxpar-doc.tex
+++ b/macros/latex/contrib/algxpar/algxpar-doc.tex
@@ -8,7 +8,6 @@
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage[all]{nowidow}
-\usepackage{tikz}
% \usepackage{array}
@@ -44,11 +43,11 @@
\makeindex
% minted
-\usepackage[outputdir = ../out]{minted}
+\usepackage[outputdir = ./out]{minted}
% \usemintedstyle{borland}
\newminted{latex}{autogobble, breaklines, bgcolor = blue!5, fontsize = \footnotesize}
\newmintinline{latex}{}
-%
+
% tcolorbox
\usepackage{tcolorbox}
\usepackage{color}
@@ -69,6 +68,33 @@
listing engine = minted,
}
+% Versions
+\usepackage{algxpar-versionchanges}
+
+
+\begin{filecontents}[overwrite, nosearch, noheader]{algxpar-lzw.tex}
+ \begin{algorithmic}[1]
+ \Description LZW Compression using a table with all known sequences of bytes.
+ \Input A flow of bytes
+ \Output A flow of bits with the compressed representation of the input bytes
+ \Statex
+ \Statep{Initialize a table with all bytes}[each position of the table has a single byte]
+ \Statep{Initilize \Id{sequence} with the first byte in the input flow}
+ \While{there are bytes in the input}[wait until all bytes are processed]
+ \Statep{Get a single byte from input and store it in \Id{byte}}
+ \If{the concatention of \Id{sequence} and \Id{byte} is in the table}
+ \Statep{Set \Id{sequence} to $\Id{sequence} + \Id{byte}$}[concatenate without producing any output]
+ \Else
+ \Statep{Output the code for \Id{sequence}}[i.e., the binary representation of its position in the table]
+ \Statep{Add the concatention of \Id{sequence} and \Id{byte} to the table}[the table learns a longer sequence]
+ \Statep{Set \Id{sequence} to \Id{byte}}[starts a new sequence with the remaining byte]
+ \EndIf
+ \EndWhile
+ \Statep{Output the code for \Id{sequence}}[the remaining sequence of bits]
+ \end{algorithmic}
+\end{filecontents}
+
+
%% Text support
% macro arguments formats
@@ -173,7 +199,9 @@
[
title = {%
\hspace{-2em}\OptionInd{#1}%
- \ifdim\docassignment>0pt\Option{ = #2}\fi%
+ \ifdim
+ \docassignment>0pt\Option{ = #2}
+ \fi%
\IfValueT{#3}{\hfill\textit{Default:} \Option{#3}}
},
description,
@@ -198,6 +226,7 @@
\medskip%
}
+
%% Repetitive text
\NewDocumentCommand{\MacroOptionsText}{}{%
Any \Argument{options} specified uniquely affect this macro.%
@@ -210,10 +239,10 @@
\title{%
The \PackageName{algxpar} package\thanks{This document corresponds to \PackageName{algxpar}~v\AlgVersion, dated \AlgDate.
- This text was last revised \today.}%
+ This text was last compiled \today.}%
}
-\author{Jander Moreira \texttt{moreira.jander@gmail.com}}
-\date{June 26, 2023}
+\author{Jander Moreira -- \texttt{moreira.jander@gmail.com}}
+\date{October 23, 2024}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -228,6 +257,12 @@
\tableofcontents
+\VCRegisterVersion{0.9}{2019-11-12}
+\VCRegisterVersion{0.91}{2020-08-01}
+\VCRegisterVersion{0.99}{2023-06-28}
+\VCRegisterVersion{0.99.1}{2024/05/05}
+\VCRegisterVersion{0.99.2}{2024/10/23}
+
\begin{figure}
\tcbinputlisting{listing file = algxpar-lzw.tex, listing only}
\vspace{3em}
@@ -242,6 +277,8 @@
% \changes{v0.91}{2020/06/14}{New macro for assignments, using $\gets$}
% \changes{v0.91}{2020/06/14}{New macro for assignments (verbose)}
+\VCPrintChanges
+
\section{Introduction}
I teach algorithms and programming and have adopted the \PackageName{algorithmicx} package (\PackageName{algpseudocode}) for writing my algorithms as it provides clear and easy to read pseudocodes with minimal effort to get a visually pleasing code.
@@ -252,6 +289,24 @@ The consequence of more verbose pseudocode leads, however, to longer sentences t
The \PackageName{algorithmx} and \PackageName{algpseudocode} packages do not natively support multi-line statements. This package therefore extends several macros to handle multiple lines correctly. Some new commands and a number of features have also been added.
+This package was first released as V0.9%
+\VCChange[disable]{
+ type = released,
+ version = 0.9,
+ description = Initial version,
+}%
+and almost totally rewritten in v0.99%
+\VCChange[disable]{
+ type = new,
+ version = 0.99,
+ description = The code was reviewd and almost entirely rewritten,
+}.
+\VCChange[disable]{
+ type = new,
+ version = 0.99.2,
+ description = Part of the code was rewritten using \PackageName{etoolbox}.,
+}.
+
\section{Package usage and options}\label{sec:package-usage-and-options}
This package depends on the following packages:
@@ -261,11 +316,12 @@ This package depends on the following packages:
\PackageName{algorithmicx} & (\url{https://ctan.org/pkg/algorithmicx}) \\
\PackageName{algpseudocode} & (\url{https://ctan.org/pkg/algorithmicx}) \\
\PackageName{amssymb} & (\url{https://ctan.org/pkg/amsfonts}) \\
- \PackageName{fancyvrb} & (\url{https://ctan.org/pkg/fancyvrb}) \\
+ \PackageName{etoolbox} & (\url{https://ctan.org/pkg/etoolbox}) \\
+ % \PackageName{fancyvrb} & (\url{https://ctan.org/pkg/fancyvrb}) \\
\PackageName{pgfmath} & (\url{https://ctan.org/pkg/pgf}) \\
\PackageName{pgfopts} & (\url{https://ctan.org/pkg/pgf}) \\
\PackageName{ragged2e} & (\url{https://ctan.org/pkg/ragged2e}) \\
- \PackageName{tcolorbox} & (\url{https://www.ctan.org/pkg/tcolorbox}) \\
+ % \PackageName{tcolorbox} & (\url{https://www.ctan.org/pkg/tcolorbox}) \\
\PackageName{varwidth} & (\url{https://www.ctan.org/pkg/varwidth}) \\
\PackageName{xcolor} & (\url{https://www.ctan.org/pkg/xcolor}) \\
\end{tabular}
@@ -275,7 +331,6 @@ This package depends on the following packages:
To use the package, simply request its use in the preamble of the document.
\begin{macro*}{usepackage}{\OArg{package options list}}[algxpar]
-
Currently, the list of package options includes the following.
\begin{option*}{\Argument{language name}}
@@ -307,11 +362,11 @@ To use the package, simply request its use in the preamble of the document.
\begin{option*}{\Option{noend}}
The \OptionInd{noend} suppresses the line that indicates the end of a block, keeping the indentation.
- See more information in \OptionRef{end} and \OptionInd{noend} options.
+ See more information in \OptionRef{end} and \OptionRef{noend} options.
\end{option*}
\begin{latexcode}
- % Supresses all end-lines that close a block
+ % Suppresses all end-lines that close a block
\usepackage[noend]{algxpar}
\end{latexcode}
\end{macro*}
@@ -338,7 +393,7 @@ An algorithm is composed of instructions and control structures such as conditio
\end{tcblisting}
\subsection{A preamble on comments}\label{sec:a-preamble-on-comments}
-This is the Euclid's algorithm as provided in the \PackageName{algorithmicx} package documentation\footnote{A label was supressed here.}.
+This is the Euclid's algorithm as provided in the \PackageName{algorithmicx} package documentation\footnote{A label was suppressed here.}.
\begingroup
%! formatter = off
@@ -383,8 +438,19 @@ Until \PackageName{algxpar} v0.95, they could be added as an optional parameter
\endgroup
%! formatter = on
-Using the comment before the text always bothered me somewhat, as it seemed more natural to put it after. Thus, as of v0.99, the comment can be placed after the text (as the second parameter of the macro), certainly making writing algorithms more user-friendly. To maintain backward compatibility, the use of comments before text is still supported, although it is discouraged.
-
+Using the comment before the text always bothered me somewhat, as it seemed more natural to put it after.
+\VCChange{
+ type = new,
+ version = 0.99,
+ description = Optional comments may be specified after the command
+}%
+Thus, as of v0.99, the comment can be placed after the text (as the second parameter of the macro), certainly making writing algorithms more user-friendly. To maintain backward compatibility, the use of comments before text is still supported, although it is discouraged.
+
+\VCChange{
+ type = new,
+ version = 0.99,
+ description = Lines that closes blocks can have comments
+}%
In addition to this change, the use of comments in the new format has been extended to most pseudocode macros, such as \MacroRef{EndWhile} for example.
%! formatter = off
@@ -398,7 +464,7 @@ In addition to this change, the use of comments in the new format has been exten
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
- \EndWhile[end loop] % <-- Comment
+ \EndWhile[end of the loop] % <-- Comment
\Statep{\Keyword{return} $b$}[The gcd is b] % <-- Comment
\EndProcedure
\end{algorithmic}
@@ -413,6 +479,11 @@ Throughout this documentation, former style comments are denoted as \Argument{co
See more about comments in \cref{sec:comments}.
\subsection{A preamble on options}\label{sec:a-preamble-on-options}
+\VCChange{
+ type = new,
+ version = 0.99,
+ description = {The ``look and feel'' of the pseudocode can be set in the \Macro{begin}\latexinline{{algorithmic}}}
+}[Preamble options]%
As of version 0.99, a list of options can be added to each command, changing some algorithm presentation settings. These settings are optional and must be entered using angle brackets at the end of the command.
%! formatter = off
@@ -666,7 +737,12 @@ A few macros for well known constants were defined: \MacroDef{True} (\True), \Ma
The macro \Macro{Id} was created to handle ``program-like'' named identifiers, such as \Id{sum}, \Id{word\_counter} and so on.
\begin{macro}{Id}[\MArg{identifier}]
- Identifiers are in italics: \latexinline!\Id{value}! is \Id{value}. Its designed to work in both text and math modes: \latexinline!$\Id{offer}_k$! is $\Id{offer}_k$.
+ \VCChange{
+ type = updated,
+ version = 0.91,
+ description = {\Macro{Id} has been recoded to work in both text and math modes, preventing hyphenation},
+ }[\Macro{Id}]
+ Identifiers are emphasised: \latexinline!\Id{value}! is \Id{value}. Its designed to work in both text and math modes: \latexinline!$\Id{offer}_k$! is $\Id{offer}_k$.
\end{macro}
\subsection{Assignments and I/O}\label{sec:assignments-and-i/o}
@@ -681,23 +757,43 @@ To support teaching-like, basic pseudocode writing, the macros \MacroDef{Read} a
\end{algorithmic}
\end{tcblisting}
-The macro \Macro{Set} can be used for assignments.
+The \Macro{Set} macro, although obsolete, can be used for assignments.
\begin{macro}{Set}[\MArg{lvalue}\MArg{expression} \Deprecated]
+ \VCChange{
+ type = new,
+ version = 0.91,
+ %! parser = off
+ description = {\Macro{Set} can be used for assignments (deprecated in v0.99)},
+ %! parser = on
+ }[\Macro{Set}]%
This macro expands to \MacroRef{Id}\latexinline!{#1} \gets #2!.
- As the handling of text and math modes should be done and its usage brings no evident advantage, this macro will no longer be supported. It will be kept as is for backward compatibility however.
+ this macro will no longer be supported. It will be kept as is for backward compatibility however.
+ \VCChange{
+ type = deprecated,
+ version = 0.99,
+ description = {\Macro{Set} is deprecated and will no longer be supported},
+ }[\Macro{Set}]%
+ As the handling of text and math modes should be done and its usage brings no evident advantage,
+
+ \VCChange{
+ type = removed,
+ version = 0.99,
+ description = {\Macro{Setl} has been removed from the package},
+ }[\Macro{Setl}]%
+ The macro \MacroRefInd{Setl} has been removed.
\end{macro}
\subsection{Procedures and Functions}\label{sec:procedures-and-functions}
Modularization uses \Macro{Procedure} or \Macro{Function}.
+%! formatter = off
\begin{tcblisting}{}
\begin{algorithmic}
- \Procedure{SaveNode}{\Id{node}}
- [saves a B\textsuperscript{+}-tree node to disk]
+ \Procedure{SaveNode}{\Id{node}}[saves a B\textsuperscript{+}-tree node to disk]
\If{\Id{node}.\Id{is\_modified}}
- \If{$\Id{node}.\Id{address} == -1$}
+ \If{$\Id{node}.\Id{address} = -1$}
\Statep{Set file writting position after file's last byte}[creates a new node on disk]
\Else
\Statep{Set file writting position to \Id{node}.\Id{address}}[updates the node]
@@ -720,7 +816,7 @@ Modularization uses \Macro{Procedure} or \Macro{Function}.
\EndFunction
\end{algorithmic}
\end{tcblisting}
-
+%! formatter = on
\begin{macro}{Procedure}[\MArg{name}\MArg{argument list}\OArg{comment}\LArg{options}]
This macro creates a \Keyword{procedure} block that must be ended with \MacroRef{EndProcedure}.
@@ -822,17 +918,17 @@ A series of macros are defined to provide the header documentation for a pseudoc
\end{tcblisting}
\begin{macro}{Description}
- [~\Argument{description text}]
+[~\Argument{description text}]
The \Macro{Description} is intended to hold the general description of the pseudocode.
\end{macro}
\begin{macro}{Require}
- [~\Argument{pre-conditions}]
+[~\Argument{pre-conditions}]
The required initial state that the code relies on. These are \textit{pre-conditions}.
\end{macro}
\begin{macro}{Ensure}
- [~\Argument{post-conditions}]
+[~\Argument{post-conditions}]
The final state produced by the code. These are \textit{post-conditions}.
\end{macro}
@@ -845,11 +941,11 @@ A series of macros are defined to provide the header documentation for a pseudoc
\end{tcblisting}
\begin{macro}{Input}
- [~\Argument{inputs}]
+[~\Argument{inputs}]
This works as an alternative to \MacroRef{Require}, presenting \Keyword{input}.
\end{macro}
\begin{macro}{Output}
- [~\Argument{outputs}]
+[~\Argument{outputs}]
This works as an alternative to \MacroRef{Ensure}, presenting \Keyword{output}.
\end{macro}
@@ -937,9 +1033,77 @@ Sometimes some settings need to be applied exclusively to one command, for examp
%! formatter = on
\subsection{Options}\label{sec:options}
+\VCChange{
+ type = new,
+ version = 0.99,
+ description = {Added support to style the main components of the pseudocode, such as keywords, comments and text and widths}
+}[Options]%
This section presents the options that can be specified for the algorithms, either using \MacroRef{AlgSet} or the \Argument{options} parameter of the various macros.
-\begin{option}{language}{\Argument{language}}[english]
+\begin{option}{indent lines}{\Option{true} | \Option{false}}[true]
+ \VCChange{
+ type = new,
+ version = 0.99.1,
+ description = Added experimental support to show vertical indentantion lines,
+ }[\Option{indent lines}]%
+ With \Option{indent lines} vertical indentation lines are displayed in the pseudocode. This feature only works correctly if the start and end of the block are on the same page and at least two compilation steps are required for the lines to be positioned correctly.
+
+ To change the style for the lines, use \OptionRef{line style}
+
+ \textit{This feature is still experimental and incomplete.}
+\end{option}
+
+%! formatter = off
+\begin{tcblisting}{}
+ \begin{algorithmic}<indent lines>
+ \For{$i \gets 0$ \To $N - 1$}
+ \For{$j \gets$ \To $N - 1$}
+ \If{$m_{ij} < 0$}
+ \Statep{$m_{ij} \gets 0$}
+ \EndIf
+ \EndFor
+ \EndFor
+ \end{algorithmic}
+
+ \begin{algorithmic}<indent lines, noend>
+ \For{$i \gets 0$ \To $N - 1$}
+ \For{$j \gets$ \To $N - 1$}
+ \If{$m_{ij} < 0$}
+ \Statep{$m_{ij} \gets 0$}
+ \EndIf
+ \EndFor
+ \EndFor
+ \end{algorithmic}
+\end{tcblisting}
+%! formatter = on
+
+\begin{option}{line style}{\Argument{style}}
+ \VCChange{
+ suppress,
+ version = 0.99.1,
+ description = SUPRESSED???,
+ }[\Option{line style}]%
+ Almost anything Ti\emph{k}Z can apply to a line can be used to set the indentation lines.
+
+ To show indentation lines in algorithms, \OptionRef{indent lines} must be set to true.
+\end{option}
+
+%! formatter = off
+\begin{tcblisting}{}
+ \begin{algorithmic}<indent lines, line style = {orange, dotted, -latex, ultra thick}>
+ \For{$i \gets 0$ \To $N - 1$}
+ \For{$j \gets$ \To $N - 1$}
+ \If{$m_{ij} < 0$}
+ \Statep{$m_{ij} \gets 0$}
+ \EndIf
+ \EndFor
+ \EndFor
+ \end{algorithmic}
+\end{tcblisting}
+%! formatter = on
+
+
+\begin{option}{language}{\Argument{language}}
This key is used to choose the keyword language set for the current scope. The language keyword set should already have been loaded through the package options (see \cref{sec:package-usage-and-options}).
\end{option}
@@ -950,23 +1114,24 @@ This section presents the options that can be specified for the algorithms, eith
The result is similar to a program written in Python.
\end{option}
+
\begin{option}{end}{}
- This option reverses the behaviour of \OptionRef{end}, and the closing line of a block presented.
+ This option reverses the behaviour of \OptionRef{noend}, and the closing line of a block presented.
\end{option}
+%! formatter = off
\begin{tcblisting}{}
- \begin{algorithmic}
- <noend>
+ \begin{algorithmic}<noend>
\For{$i \gets 0$ \To $N - 1$}
\For{$j \gets$ \To $N - 1$}
- \If{$m_{ij} < 0$}
- <end>
+ \If{$m_{ij} < 0$}<end>
\Statep{$m_{ij} \gets 0$}
\EndIf
\EndFor
\EndFor
\end{algorithmic}
\end{tcblisting}
+%! formatter = on
\begin{option}{keywords}{\Argument{list of keywords assignments}}
This option allows to change a keyword (or define a new one). See \cref{sec:languages-and-translations} for more information on keywords and translations.
@@ -991,19 +1156,19 @@ This section presents the options that can be specified for the algorithms, eith
\end{tcblisting}
%! formatter = on
-\begin{option}{algorithmic indent}{\Argument{width}}[1em]
+\begin{option}{algorithmic indent}{\Argument{width}}
The algorithmic indent is the amount of horizontal space used for indentation inner commands.
This option actually sets the \PackageName{algorithmicx}'s \Macro{algorithmicindent}.
\end{option}
-\begin{option}{comment symbol}{\Argument{symbol}}[\Macro{triangleright}]
+\begin{option}{comment symbol}{\Argument{symbol}}
The default symbol that preceeds the text in comments is \Macro{triangleright} (\CommentSymbol), as used by \PackageName{algorithmicx}, and can be changed with this key.
The current comment symbol is available with \MacroDef{CommentSymbol}. Do not change this symbol by redefining \Macro{CommentSymbol}, as font, shape and color settings will no longer be respected. Always use \Option{comment symbol}.
\end{option}
-\begin{option}{comment symbol right}{\Argument{symbol}}[\Macro{triangleleft}]
+\begin{option}{comment symbol right}{\Argument{symbol}}
This is the symbol that closes a \MacroRef{CommentIn}. This symbol is set to \CommentSymbolRight\ and can be retrieved with the \MacroDef{CommentSymbolRight} macro. Do not attempt to change the symbol by redefining \Macro{CommentSymbolRight}, as font, shape and color settings will no longer be respected. Always use \Option{comment symbol right}.
\end{option}
@@ -1012,25 +1177,25 @@ The options ins this section allows setting font family, shape, weight and size
Notice that color are handled separately (see \cref{sec:colors}) and using \Macro{color} with font options will tend to break the document.
-\begin{option}{text font}{\Argument{font, shape and size}}[\Empty]
+\begin{option}{text font}{\Argument{font, shape and size}}
This setting corresponds to the font family, its shape and size and applies to the \Argument{text} field in each of the commands.
\end{option}
-\begin{option}{comment font}{\Argument{font, shape and size}}[\Macro{slshape}]
+\begin{option}{comment font}{\Argument{font, shape and size}}
This setting corresponds to the font family, its shape and size and applies to all comments.
\end{option}
-\begin{option}{keyword font}{\Argument{font, shape and size}}[\Macro{bfseries}]
+\begin{option}{keyword font}{\Argument{font, shape and size}}
This setting sets the font family, shape, and size, and applies to all keywords, such as \Keyword{function} or \Keyword{end}.
\end{option}
-\begin{option}{constant font}{\Argument{font, shape and size}}[\Macro{scshape}]
+\begin{option}{constant font}{\Argument{font, shape and size}}
This setting sets the font family, shape, and size, and applies to all constants, such as \Nil, \True\ and \False.
This setting also applies when \MacroRef{Constant} is used.
\end{option}
-\begin{option}{module font}{\Argument{font, shape and size}}[\Macro{scshape}]
+\begin{option}{module font}{\Argument{font, shape and size}}
This setting sets the font family, shape, and size, and applies to both procedure and function identifiers, as well as their callings with \MacroRef{Call}.
\end{option}
@@ -1038,31 +1203,32 @@ Notice that color are handled separately (see \cref{sec:colors}) and using \Macr
Colors are defined using the \PackageName{xcolors} package.
\begin{option}{text color}{\Argument{color}}
- [.\mbox{\normalfont\normalcolor\normalsize~(dot)}]
This setting corresponds to the color that applies to the \Argument{text} field in each of the commands.
\end{option}
-\begin{option}{comment color}{\Argument{color}}[.!70]
+\begin{option}{comment color}{\Argument{color}}
This setting corresponds to the color that applies to all comments.
\end{option}
\begin{option}{keyword color}{\Argument{color}}
- [.\mbox{\normalfont\normalcolor\normalsize~(dot)}]
This key is used to set the color for all keywords.
\end{option}
\begin{option}{constant color}{\Argument{color}}
- [.\mbox{\normalfont\normalcolor\normalsize~(dot)}]
This setting corresponds to the color that applies to the defined constant (see \cref{sec:constants-and-identifiers}) and also when macro \MacroRef{Constant} is used.
\end{option}
\begin{option}{module color}{\Argument{color}}
- [.\mbox{\normalfont\normalcolor\normalsize~(dot)}]
This color is applied to the identifier used in both \MacroRef{Procedure} and \MacroRef{Function} definitions, as well as module calls with \MacroRef{Call}. Notice that the arguments use \Option{text color}.
\end{option}
\subsubsection{Paragraphs}
Multi-line support are internally handled by \Macro{parbox}es.
+\VCChange{
+ type = updated,
+ version = 0.99.2,
+ description = {Wrong spacing between parboxes were fixed.}
+}
\medskip
%! formatter = off
@@ -1084,23 +1250,23 @@ Multi-line support are internally handled by \Macro{parbox}es.
\medskip
The options in this section should be used to set how these paragraphs will be presented.
-\begin{option}{text style}{\Argument{style}}[\Macro{RaggedRight}]
+\begin{option}{text style}{\Argument{style}}
This \Argument{style} is applied to the paragraph box that holds the \Argument{text} field in all commands.
\end{option}
-\begin{option}{comment style}{\Argument{style}}[\Macro{RaggedRight}]
+\begin{option}{comment style}{\Argument{style}}
This \Argument{style} is applied to the paragraph box that holds the \Argument{comment} field in all algorithmic commands. This setting will not be used with \MacroRef{Comment}, \MacroRef{Commentl} or \MacroRef{CommentIn}.
\end{option}
-\begin{option}{comment separator width}{\Argument{width}}[1em]
+\begin{option}{comment separator width}{\Argument{width}}
The minimum space between the text box and the \Macro{CommentSymbol}. This affects the available space in a line for keywords, text and comment.
\end{option}
-\begin{option}{statement indent}{\Argument{width}}[1em]
+\begin{option}{statement indent}{\Argument{width}}
This is the \Macro{hangindent} set inside \MacroRef{Statep} statements.
\end{option}
-\begin{option}{comment width}{\Option{auto}|\Option{nice}|\Argument{width}}[auto]
+\begin{option}{comment width}{\Option{auto}|\Option{nice}|\Argument{width}}
There are two ways to balance the lengths of \Argument{text} and \Argument{comments} on a line, each providing different visual experiences.
In automatic mode (\Option{auto}), the balance is chosen considering the widths that the actual text and comment have, trying to reduce the total number of lines, given there is not enough space in a single line for the keywords, text , comment and comment symbol. The consequence is that each line with a comment will have its own balance.
@@ -1116,6 +1282,11 @@ The options in this section should be used to set how these paragraphs will be p
\end{comment}
\subsection{Languages and translations}\label{sec:languages-and-translations}
+\VCChange{
+ type = new,
+ version = 0.99,
+ description = {New mechanism to translation with separate files for each language},
+}[Languages]%
A simple mechanism is employed to allow keywords to be translated into other languages.
%! formatter = off
@@ -1173,11 +1344,17 @@ The mechanism behind \MacroRef{AlgLanguageSet} uses the \Macro{SetKeyword} macro
\begin{tcblisting}{}
\SetKeyword[german]{if}{wenn} % new
- Depending on the language, a keyword can take different forms: \Keyword{if} (English), \Keyword[german]{if} (german) or \Keyword[brazilian]{if} (Brazilian Portuguese).
+ Depending on the language, a keyword can take different forms: \Keyword{if} (English), \Keyword[german]{if} (German) or \Keyword[brazilian]{if} (Brazilian Portuguese).
\end{tcblisting}
\subsection{Other features}
+\VCChange{
+ version = 0.99,
+ description = Added support to style named constants and function/procedures identifiers,
+}[Features]%
+These macros were added to support the styles defined for named constants and function and procedure identifiers.
+
\begin{macro}{Constant}[\OArg{name}]
This macro presents \Argument{name} using font, shape, size and color defined for constants.
\end{macro}
@@ -1187,6 +1364,16 @@ The mechanism behind \MacroRef{AlgLanguageSet} uses the \Macro{SetKeyword} macro
\end{macro}
+\section{``Forgotten'' features}
+
+\VCChange{
+ type = removed,
+ version = 0.99,
+ description = {Macros \Macro{TextString} and \Macro{VisibleSpace} accidentally removed},
+}
+Some features were forgotten from v0.91 to v.99, although it was not intentional. The macros \Macro{TextString} and \Macro{VisibleSpace} simply vanished into thin air.
+
+
\section{To do}
This is a \textit{todo} list:
\begin{itemize}
@@ -1213,7 +1400,7 @@ This is a \textit{todo} list:
comment width = nice,
comment style = \raggedleft,
}
-\input{algxpar-lzw}
+\input{algxpar-lzw.tex}
\endgroup
\subsection{LZW revisited again}
@@ -1225,6 +1412,7 @@ This is a \textit{todo} list:
text font = \itshape,
comment font = \footnotesize,
algorithmic indent = 1.5em,
+ indent lines,
noend,
}
\end{latexcode}
@@ -1235,9 +1423,10 @@ This is a \textit{todo} list:
text font = \itshape,
comment font = \footnotesize,
algorithmic indent = 1.5em,
+ indent lines,
noend,
}
-\input{algxpar-lzw}
+\input{algxpar-lzw.tex}
\endgroup
diff --git a/macros/latex/contrib/algxpar/algxpar-english.kw.tex b/macros/latex/contrib/algxpar/algxpar-english.kw.tex
index 55505ff5e6..58fce1f354 100644
--- a/macros/latex/contrib/algxpar/algxpar-english.kw.tex
+++ b/macros/latex/contrib/algxpar/algxpar-english.kw.tex
@@ -30,6 +30,8 @@
function = function,
procedure = procedure,
return = return,
+ byref = byref,
+ byvalue = byvalue,
true = True,
false = False,
nil = Nil,
diff --git a/macros/latex/contrib/algxpar/algxpar-lzw.tex b/macros/latex/contrib/algxpar/algxpar-lzw.tex
deleted file mode 100644
index 37fd820c5f..0000000000
--- a/macros/latex/contrib/algxpar/algxpar-lzw.tex
+++ /dev/null
@@ -1,19 +0,0 @@
-\begin{algorithmic}[1]
- \Description LZW Compression using a table with all known sequences of bytes.
- \Input A flow of bytes
- \Output A flow of bits with the compressed representation of the input bytes
- \Statex
- \Statep{Initialize a table with all bytes}[each position of the table has a single byte]
- \Statep{Initilize \Id{sequence} with the first byte in the input flow}
- \While{there are bytes in the input}[wait until all bytes are processed]
- \Statep{Get a single byte from input and store it in \Id{byte}}
- \If{the concatention of \Id{sequence} and \Id{byte} is in the table}
- \Statep{Set \Id{sequence} to $\Id{sequence} + \Id{byte}$}[concatenate without producing any output]
- \Else
- \Statep{Output the code for \Id{sequence}}[i.e., the binary representation of its position in the table]\label{alg:lzw:output}
- \Statep{Add the concatention of \Id{sequence} and \Id{byte} to the table}[the table learns a longer sequence]\label{alg:lzw:add-to-table}
- \Statep{Set \Id{sequence} to \Id{byte}}[starts a new sequence with the remaining byte]
- \EndIf
- \EndWhile
- \Statep{Output the code for \Id{sequence}}[the remaining sequence of bits]
-\end{algorithmic} \ No newline at end of file
diff --git a/macros/latex/contrib/algxpar/algxpar-versionchanges.sty b/macros/latex/contrib/algxpar/algxpar-versionchanges.sty
new file mode 100644
index 0000000000..22aa4f21c1
--- /dev/null
+++ b/macros/latex/contrib/algxpar/algxpar-versionchanges.sty
@@ -0,0 +1,404 @@
+%! Package = versionchanges
+%! Author = Jander Moreira
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{versionchanges}[2024/05/03 v0.1 This package provides means to track changes to a document]
+\NewDocumentCommand{\VCVersion}{}{0.1}
+\NewDocumentCommand{\VCDate}{}{2024/05/03}
+
+\RequirePackage{pgfkeys}
+\RequirePackage{multicol}
+\RequirePackage{ragged2e}
+\RequirePackage{todonotes}
+
+\setlength{\marginparwidth}{2cm}
+\RequirePackage{marginnote}
+\let\marginpar\marginnote
+
+%% Options
+\pgfkeys{
+ /version changes/.cd,
+ version prefix/.store in = \vc@VersionPrefix,
+ version style/.store in = \vc@VersionStyle,
+ change style/.store in = \vc@ChangeStyle,
+}
+
+\NewDocumentCommand{\VCSet}{ > { \TrimSpaces } m }{%
+ \pgfkeys{
+ /version changes/.cd,
+ #1,
+ }%
+}
+
+\VCSet{
+ version prefix = {v},
+ version style = \bfseries\footnotesize,
+ change style = \footnotesize\RaggedRight,
+}
+
+% defaults
+
+
+%% Internal commands
+\ExplSyntaxOn
+
+% StepChangeCounter: proceeds to a new change
+\int_zero_new:N \g_vc_change_counter_int
+\NewDocumentCommand{\vc@StepChangeCounter}{}{
+ \int_gadd:Nn \g_vc_change_counter_int { 1 }
+}
+\NewDocumentCommand{\vc@CurrentChangeCounter}{}{
+ \int_use:N \g_vc_change_counter_int
+}
+
+% SetChangeAttribute: sets the an attribute of the current change record
+% #1: attribute
+% #2: value
+\cs_new:Npn \set_change_attribute:nn #1#2 {
+ \tl_clear_new:c { g_vc_change_ \int_use:N \g_vc_change_counter_int _#1_tl }
+ \tl_gset:cn { g_vc_change_ \int_use:N \g_vc_change_counter_int _#1_tl } { #2 }
+}
+\NewDocumentCommand{\vc@SetChangeAttribute}{ m m }{
+ \set_change_attribute:nn { #1 } { #2 }
+}
+
+% SetChangeAttributeExpanded: sets the an attribute of the current change record
+% #1: attribute
+% #2: value
+\NewDocumentCommand{\vc@SetChangeAttributeExpanded}{ m m }{
+ \exp_args:Nnf \set_change_attribute:nn { #1 } { #2 }
+}
+
+% GetChangeInfo: returns the field of a change
+% #1: number of the change
+% #2: field
+% #3: (optional) sets macro instead of returning value
+\NewDocumentCommand{\vc@GetChangeInfo}{ m m o }{
+ \IfValueTF{#3}{
+ \tl_set:Nx #3 { \tl_use:c { g_vc_change_#1_#2_tl } }
+ }{
+ \tl_use:c { g_vc_change_#1_#2_tl }
+ }
+}
+
+% SetMacroChangeInfo: sets a macro with the field of a change
+% #1: macro
+% #2: number of the change
+% #3: field
+\NewDocumentCommand{\vc@SetMacroChangeInfo}{ m m m }{
+ \tl_clear_new:N #1
+ \exp_args:NNc \tl_set:NV #1 { g_vc_change_#2_#3_tl }
+}
+
+% RunChangesList: apply a macro to each change of a version
+% #1: version
+% #2: macro with a single mandatory argument
+\NewDocumentCommand{\vc@RunChangesList}{ m m }{
+ \seq_map_inline:cn { g_version_#1_seq } { #2 { ##1 } }
+}
+
+
+% RegisterVersion: add a version to the list os versions if it doesn't exist
+% #1: version
+\seq_new:N \g_vc_versions_list_seq
+\cs_new:Npn \register_version:nn #1#2 {
+ \seq_if_in:NnTF \g_vc_versions_list_seq { #1 } { } {% else
+ \seq_put_right:Nn \g_vc_versions_list_seq { #1 }
+ \tl_clear_new:c { g_vc_version_#1_date_tl }
+ \tl_gset:cn { g_vc_version_#1_date_tl } { #2 }
+ \seq_new:c { g_version_#1_seq }
+ }
+}
+\NewDocumentCommand{\VCRegisterVersion}{ m m }{
+ \register_version:nn { #1 } { #2 }
+}
+
+% VersionDate: returns the date of a version OR sets a macro
+% with its (expanded) value
+% #1: version
+% #2: (optional) macro to store the value
+\NewDocumentCommand{\vc@VersionDate}{ m o }{
+ \IfValueTF{#2}{
+ \tl_set:Nx #2 { \tl_use:c { g_vc_version_#1_date_tl } }
+ }{
+ \tl_use:c { g_vc_version_#1_date_tl }
+ }
+}
+
+
+% AddChangeToVersion: add a change reference to the list of the version
+% (a new list will be created if necessary)
+% #1: version
+\cs_new:Npn \add_change_to_version:n #1 {
+ % Add a reference (change number) to the list
+ % \tl_clear_new:N \l_change_number_tl
+ % \exp_args:NNe \tl_set:Nn \l_change_number_tl { \int_use:N \g_vc_change_counter_int }
+ \exp_args:Nco \seq_gput_right:Nn { g_version_#1_seq } { \int_use:N \g_vc_change_counter_int }
+}
+\NewDocumentCommand{\vc@AddChangeToVersion}{ }{
+ \add_change_to_version:n {
+ \tl_use:c { g_vc_change_ \int_use:N \g_vc_change_counter_int _version_tl }
+ }
+}
+
+
+% RunVersionList: apply a macro to each version of the list
+% #1: macro with a single mandatory argument
+\NewDocumentCommand{\vc@RunVersionList}{ m }{
+ \seq_map_inline:Nn \g_vc_versions_list_seq { #1 { ##1 } }
+}
+
+\ExplSyntaxOff
+
+%%
+
+\newif\ifvc@SuppressInListing\vc@SuppressInListingfalse
+\pgfkeys{
+ /version changes/changes/.cd,
+ version/.code = {\vc@SetChangeAttribute{version}{#1}},
+% date/.code = {\vc@SetChangeAttribute{date}{#1}},
+ description/.code = {\vc@SetChangeAttribute{description}{#1}},
+ page/.code = {\vc@SetChangeAttributeExpanded{page}{#1}},
+ suppress/.is if = vc@SuppressInListing,
+ type/.is choice,
+ type/released/.code = {\vc@SetChangeAttribute{type}{Released}},
+ type/new/.code = {\vc@SetChangeAttribute{type}{New in}},
+ type/updated/.code = {\vc@SetChangeAttribute{type}{Updated in}},
+ type/removed/.code = {\vc@SetChangeAttribute{type}{Removed in}},
+ type/deprecated/.code = {\vc@SetChangeAttribute{type}{Deprecated in}},
+ .unknown/.code = {\pgfkeysalso{type = \pgfkeyscurrentname}},
+}
+
+% #1: (optional) todonotes options
+% #2: text
+\NewDocumentCommand{\vc@MarginNote}{ O{} > { \TrimSpaces } m }{%
+ \todo[bordercolor = blue!20, backgroundcolor = blue!10,
+ linecolor = blue!20, tickmarkheight = 0.2ex, size = \tiny,
+ noline, #1]{%
+ #2
+ }%
+}
+
+% Change: records a change
+% #1: (optional) todonotes options
+% #2: comma-separated list with change description
+\NewDocumentCommand{\VCChange}{ O{} > { \TrimSpaces } m o }{%
+ \vc@StepChangeCounter%
+ \pgfkeys{
+ /version changes/changes/.cd,
+ suppress = false,
+ type = new,
+ page = \thepage,
+ #2,
+ }%
+ \hspace{0pt}%
+ \vc@AddChangeToVersion%
+ %! formatter = off
+ \ifvc@SuppressInListing% starred VCPrintChange?
+ \vc@SetChangeAttribute{star}{*}%
+ \else
+ \vc@SetChangeAttribute{star}{}%
+ \fi%
+ %! formatter = on
+ \vc@SetChangeAttributeExpanded{label}{\vc@CurrentChangeCounter}%
+ \vc@GetChangeInfo{\vc@CurrentChangeCounter}{label}[\vc@InfoResult]%
+ \expandafter\label\expandafter{\vc@InfoResult:change}%
+ \vc@MarginNote[#1]{%
+ \IfValueT{#3}{\textbf{#3}:\\}%
+ \vc@GetChangeInfo{\vc@CurrentChangeCounter}{type}
+ \vc@VersionPrefix\vc@GetChangeInfo{\vc@CurrentChangeCounter}{version}%
+ }%
+}
+
+%%
+
+% Internal commands
+\ExplSyntaxOn
+
+% Reading from file
+\ior_new:N \g_vc_input_io
+
+% LoadFile: reads a previous compiled version changes
+\cs_new:Nn \load_file: {
+ \tl_clear_new:N \g_vc_file_contents_tl
+ \ior_open:NnTF \g_vc_input_io { \jobname.vcind } {
+ \ior_map_inline:Nn \g_vc_input_io {
+ \tl_gput_right:Nn \g_vc_file_contents_tl { ##1 }
+ }
+ }{}
+}
+\NewDocumentCommand{\vc@LoadChanges}{}{
+ \load_file:
+}
+\NewDocumentCommand{\vc@FileContentsNotEmpty}{ +m }{
+ \tl_if_empty:NTF \g_vc_file_contents_tl {} {
+ #1
+ }
+}
+
+% File contents
+\NewDocumentCommand{\vc@FileContents}{}{
+ \tl_use:N \g_vc_file_contents_tl
+}
+
+% Writing to file
+\iow_new:N \g_vc_output_io
+\tl_new:N \g_vc_output_buffer_tl
+
+% OpenFile: open file for writing
+\NewDocumentCommand{\vc@OpenFile}{ }{
+ \iow_open:Nn \g_vc_output_io { \jobname.vcind }
+}
+
+% CloseFile: close file
+\NewDocumentCommand{\vc@CloseFile}{ }{
+ \iow_close:N \g_vc_output_io
+}
+
+% WriteBuffer: write to file
+\cs_generate_variant:Nn \iow_now:Nn { NV }
+\NewDocumentCommand{\vc@WriteBuffer}{ }{
+ \iow_now:NV \g_vc_output_io \g_vc_output_buffer_tl
+ \tl_clear:N \g_vc_output_buffer_tl
+}
+
+\NewDocumentCommand{\vc@AddToBuffer}{ +m }{
+ \tl_gput_right:Nn \g_vc_output_buffer_tl { #1 }
+}
+
+\cs_generate_variant:Nn \tl_gput_right:Nn { Nx }
+\NewDocumentCommand{\vc@AddCharToBuffer}{ m }{
+ \tl_gput_right:Nx \g_vc_output_buffer_tl { \iow_char:N #1 }
+}
+\ExplSyntaxOff
+
+% WriteVersionChange: write to file a single change
+% #1: change number
+\NewDocumentCommand{\vc@WriteVersionChange}{ m }{%
+ \vc@AddToBuffer{ \VCPrintChange}%
+ \vc@SetMacroChangeInfo{\vc@InfoResult}{#1}{star}%
+ \expandafter\vc@AddToBuffer\expandafter{\vc@InfoResult}%
+ % version number
+ \vc@AddCharToBuffer{\{}%
+ \vc@SetMacroChangeInfo{\vc@InfoResult}{#1}{description}%
+ \expandafter\vc@AddToBuffer\expandafter{\vc@InfoResult}%
+ \vc@AddCharToBuffer{\}}%
+ % date
+ \vc@AddCharToBuffer{\{}%
+ \vc@SetMacroChangeInfo{\vc@InfoResult}{#1}{page}%
+ \expandafter\vc@AddToBuffer\expandafter{\vc@InfoResult}%
+ \vc@AddCharToBuffer{\}}%
+ % label
+ \vc@AddCharToBuffer{\{}%
+ \vc@SetMacroChangeInfo{\vc@InfoResult}{#1}{label}%
+ \expandafter\vc@AddToBuffer\expandafter{\vc@InfoResult}%
+ \vc@AddCharToBuffer{\}}%
+ \vc@WriteBuffer
+}
+
+\NewDocumentCommand{\vc@WriteVersion}{ m }{%
+%! parser = off
+ \vc@AddToBuffer{\begin{vcversionitem}}%
+ %! parser = on
+ \vc@AddCharToBuffer{\{}%
+ \vc@AddToBuffer{#1}%
+ \vc@AddCharToBuffer{\}}%
+ \vc@AddCharToBuffer{\{}%
+ \vc@VersionDate{#1}[\vc@InfoResult]%
+ \expandafter\vc@AddToBuffer\expandafter{\vc@InfoResult}%
+ \vc@AddCharToBuffer{\}}%
+ \vc@WriteBuffer
+ \vc@RunChangesList{#1}{\vc@WriteVersionChange}%
+%! parser = off
+ \vc@AddToBuffer{\end{vcversionitem}}%
+ %! parser = on
+ \vc@WriteBuffer
+}
+
+\NewDocumentCommand{\vc@SaveChanges}{}{%
+ \vc@OpenFile%
+ \vc@RunVersionList{\vc@WriteVersion}%
+ \vc@WriteBuffer
+ \vc@CloseFile%
+}
+
+\NewDocumentCommand{\VCPrintChanges}{ O{} }{%
+ \vc@FileContentsNotEmpty{
+ \VCSet{#1}
+ \section*{Change History}
+ \begin{multicols}{2}
+ \vc@FileContents%
+ \end{multicols}
+ }
+}
+
+%% Printing the list of changes
+\NewDocumentEnvironment{vcversionitem}{ m m }{%
+ \par\noindent%
+ {\vc@VersionStyle\vc@VersionPrefix#1 (#2)}
+ \vspace*{0.2em}\par%
+ \begingroup%
+ \setlength{\tabcolsep}{0pt}%
+ \vc@ChangeStyle%
+ }{%
+ \endgroup%
+ \vspace{0.5em}%
+}
+
+\newlength{\vc@PageNumberWidth}
+\setlength{\vc@PageNumberWidth}{1cm}
+\NewDocumentCommand{\VCPrintChange}{ s m m m }{%
+ \IfBooleanF{#1}{%
+ \hspace{0.25cm}%
+ \parbox[b]{\dimexpr \linewidth - \vc@PageNumberWidth - 0.25cm}{%
+ \setlength{\hangindent}{0.7cm}#2\dotfill%
+ }\hspace{-0.05cm}\dotfill~\hspace{0.05cm}\hyperref[#4:change]{#3}%
+ \par\vspace{0.5em}
+ }
+}
+
+%% Version numbering
+\ExplSyntaxOn
+
+\tl_new:N \g_vc_prefix_text_tl
+\tl_new:N \g_vc_number_tl % todo: turn to int?
+\tl_new:N \g_vc_suffix_text_tl
+\regex_new:N \g_versioning_regex
+\regex_set:Nn \g_versioning_regex { [^\.]+ }
+\regex_new:N \g_subversioning_regex
+\regex_set:Nn \g_subversioning_regex { ([^\d]*)(\d+)(.*) }
+
+\cs_new:Npn \subversioning_check:n #1 {
+ \seq_clear_new:N \l_subparts_seq
+ \regex_extract_all:NnNTF \g_subversioning_regex { #1 } \l_subparts_seq {
+ \tl_gset:Nx \g_vc_prefix_text_tl { \seq_item:Nn \l_subparts_seq {2} }
+ \tl_gset:Nx \g_vc_number_tl { \seq_item:Nn \l_subparts_seq {3} }
+ \tl_gset:Nx \g_vc_suffix_text_tl { \seq_item:Nn \l_subparts_seq {4} }
+ }{
+ \tl_gset:Nx \g_vc_prefix_text_tl { #1 }
+ \tl_gclear:N \g_vc_number_tl
+ \tl_gclear:N \g_vc_suffix_text_tl
+ }
+}
+\cs_new:Npn \versioning_check:n #1 {
+ \seq_clear_new:N \l_parts_seq
+ \regex_extract_all:NnN \g_versioning_regex { #1 } \l_parts_seq
+ \seq_map_inline:Nn \l_parts_seq {
+ \subversioning_check:n { ##1 }
+ <<(\tl_use:N \g_vc_prefix_text_tl)
+ (\tl_use:N \g_vc_number_tl)
+ (\tl_use:N \g_vc_suffix_text_tl)>>
+ }
+}
+\NewDocumentCommand{\VCVersioningCheck}{ m }{
+ \par\noindent[\texttt{#1}:~\versioning_check:n { #1 }]\bigskip\par
+}
+
+\ExplSyntaxOff
+
+% Hooks
+\AtBeginDocument{%
+ \reversemarginpar%
+ \vc@LoadChanges%
+}
+\AtEndDocument{\vc@SaveChanges} \ No newline at end of file
diff --git a/macros/latex/contrib/algxpar/algxpar.sty b/macros/latex/contrib/algxpar/algxpar.sty
index 3da15d9415..e5ffa55b56 100644
--- a/macros/latex/contrib/algxpar/algxpar.sty
+++ b/macros/latex/contrib/algxpar/algxpar.sty
@@ -2,12 +2,14 @@
%! Author: Jander Moreira
%! Email = moreira.jander@gmail.com
+%! suppress = FileNotFound
+
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{algxpar}[2023/06/26 v0.99 Algorithms with multi-line/paragraph support and some enhancements]
+\ProvidesPackage{algxpar}[2024/10/23 v0.99.2 Algorithms with multi-line/paragraph support and some enhancements]
%% Documentation
-\NewDocumentCommand{\AlgVersion}{}{0.99}
-\NewDocumentCommand{\AlgDate}{}{2023/06/26}
+\NewDocumentCommand{\AlgVersion}{}{0.99.2}
+\NewDocumentCommand{\AlgDate}{}{2024/10/23}
%% Required packages
@@ -20,7 +22,10 @@
\RequirePackage{amssymb}
\RequirePackage{pgfmath}
\RequirePackage{varwidth}
-\RequirePackage{ifthen}
+% \RequirePackage{ifthen}
+\RequirePackage{tikz}
+\usetikzlibrary{calc, arrows}
+\RequirePackage{etoolbox}
% \RequirePackage{listings} % to load verbatim with tabs
% \RequirePackage{tcolorbox} % to save verbatim
@@ -90,17 +95,26 @@
}
-% RenewFullyExpandedDocumentCommand: fully expands argument before
+% axp@RenewFullyExpandedDocumentCommand: fully expands argument before
% renewing document command
% #1: macro
% #2: value
-\NewDocumentCommand{\RenewFullyExpandedDocumentCommand} { m m }{
+\NewDocumentCommand{\axp@RenewFullyExpandedDocumentCommand} { m m }{
\exp_args:NNnV \RenewDocumentCommand #1 { } { #2 }
}
\ExplSyntaxOff
+%% Settings
+\newif\ifaxp@NoEnd\axp@NoEndfalse % whether line with 'end' is used or not
+\newif\ifaxp@IsStatement\axp@IsStatementfalse % set in \Statep
+\newif\ifaxp@ShowBoxes\axp@ShowBoxesfalse % show parboxes for debugging
+\newif\ifaxp@LineBalanceAuto % true for 'auto'; false for 'fixed'
+\newif\ifaxp@IndentLines\axp@IndentLinesfalse % draw lines in blocks
+
+
\NewDocumentCommand{\axp@DisableEnds}{}{%
+ \axp@NoEndtrue%
\RenewDocumentCommand{\ALG@noend}{}{t}%
\algtext*{EndWhile}%
\algtext*{EndFor}%
@@ -114,6 +128,7 @@
}
\NewDocumentCommand{\axp@EnableEnds}{}{%
+ \axp@NoEndfalse%
\RenewDocumentCommand{\ALG@noend}{}{f}%
\algrenewtext{EndWhile}{\Keyword{endwhile}}%
\algrenewtext{EndFor}{\Keyword{endfor}}%
@@ -127,19 +142,12 @@
}
\axp@EnableEnds % update end-line texts
-%% Settings
-\newif\ifaxp@NoEnd\axp@NoEndfalse % whether line with 'end' is used or not
-\newif\ifaxp@IsStatement\axp@IsStatementfalse % set in \Statep
-\newif\ifaxp@ShowBoxes\axp@ShowBoxesfalse % show parboxes for debugging
-\newif\ifaxp@LineBalanceAuto % true for 'auto'; false for 'fixed'
-
%% General options
-%! formatter = off
\pgfkeys{
/algxpar/options/.cd,
- % language
+% language
language/.store in = \axp@Language,
- % styles
+% styles
text font/.store in = \axp@TextFont,
text color/.store in = \axp@TextColor,
text style/.store in = \axp@TextStyle,
@@ -152,24 +160,27 @@
constant color/.store in = \axp@ConstantColor,
module font/.store in = \axp@ModuleFont,
module color/.store in = \axp@ModuleColor,
- %
+%
comment symbol/.store in = \axp@CommentSymbol,
comment symbol right/.store in = \axp@CommentSymbolRight,
comment separator width/.store in = \axp@CommentSeparatorWidth,
- %
+%
noend/.code = {\axp@DisableEnds},
no end/.code = {\axp@DisableEnds},
end/.code = {\axp@EnableEnds},
- %
- % keywords/.code = {\pgfkeysalso{/algxpar/languages/.cd, \trim@spaces{#1}}},
+%
+% keywords/.code = {\pgfkeysalso{/algxpar/languages/.cd, \trim@spaces{#1}}},
keywords/.code = {\axp@LanguageSet{#1}},
- %
+%
algorithmic indent/.store in = \algorithmicindent,
statement indent/.store in = \axp@StatementIndent,
parameter indent/.store in = \axp@ParameterIndent,
- %
+%
+ indent lines/.is if = axp@IndentLines,
+ line style/.code = {\tikzset{line style/.style = {#1}}},
+%
show boxes/.is if = axp@ShowBoxes,
- %
+%
comment width/.code = {%
\axp@LineBalanceAutotrue%
\ifthenelse{\equal{auto}{#1}}{%
@@ -183,8 +194,9 @@
}%
}%
},
+%
+% style/.style = {\pgfkeysalso{/algxpar/styles/#}},
}
-%! formatter = on
\NewDocumentCommand{\AlgSet}{ > { \TrimSpaces } m }{%
\pgfkeys{%
@@ -194,6 +206,14 @@
}
+% %% Styles
+% \NewDocumentCommand{\AlgStyle}{ > { \TrimSpaces } m > { \TrimSpaces m }{%
+% \pgfkeys{
+% /algxpar/style/.cd,
+% #1/.style = {#2}
+% }
+% }
+
%% Languages and translations
\pgfkeys{
/algxpar/languages/.cd,
@@ -201,11 +221,11 @@
}
\NewDocumentCommand{\AlgLanguageSet}{ > { \TrimSpaces } m > { \TrimSpaces } m }{%
- \AlgSet{language = #1}
+ \AlgSet{language = #1}%
\pgfkeys{
/algxpar/languages/.cd,
#2
- }
+ }%
}
\NewDocumentCommand{\axp@LanguageSet}{ > { \TrimSpaces } m }{%
\pgfkeys{
@@ -238,6 +258,8 @@
algorithmic indent = 1.5em,
statement indent = 1em,
parameter indent = 0pt,
+ indent lines = false,
+ line style = {lightgray, thick},
show boxes = false,
comment width = auto,
}
@@ -249,9 +271,8 @@
language/.store in = \axp@Language,
noend/.is if = axp@NoEnd,
.unknown/.code = {
- %! suppress = FileNotFound
+ \axp@RenewFullyExpandedDocumentCommand{\axp@Language}{\pgfkeyscurrentname}
\input{algxpar-\pgfkeyscurrentname.kw}
- \RenewFullyExpandedDocumentCommand{\axp@Language}{\pgfkeyscurrentname}
}
}
\pgfkeys{
@@ -295,16 +316,74 @@
% #3: text after token
\newlength{\axp@TokenWidth}
\NewDocumentCommand{\axp@MakeSingleToken}{ m m m }{%
- \settowidth{\axp@TokenWidth}{#2}%
- \ifdim\axp@TokenWidth>0pt\relax#1\fi%
+ \axp@SetToWidth{\axp@TokenWidth}{#2}%
+ \ifdimcomp{\axp@TokenWidth}{>}{0pt}{#1}{}%
#2%
- \ifdim\axp@TokenWidth>0pt\relax#3\fi%
+ \ifdimcomp{\axp@TokenWidth}{>}{0pt}{#3}{}%
}
\newif\ifaxp@NoCommentPresent
\newlength{\axp@TextWidth}
\newlength{\axp@CommentWidth}
+%%%%%%%% LINES
+
+\NewDocumentCommand{\axp@MarkLineBegin}{}{%
+ \ifbool{axp@IndentLines}{%
+ \stepcounter{axp@BlockLevelCounter}%
+ \tikz[remember picture] \coordinate (axp-block-start-\theaxp@BlockLevelCounter) (0, 0);%
+ % \tikz[remember picture, overlay] \draw[<-] (axp-block-start-\theaxp@BlockLevelCounter) -- ++ (-4em, 0.5ex) node[anchor = east] {B:\theaxp@BlockLevelCounter};%
+ }{}%
+}%
+
+\NewDocumentCommand{\axp@MarkLineEndShort}{}{%
+ \ifbool{axp@IndentLines}{%
+ \tikz[remember picture] \coordinate (axp-block-end-\theaxp@BlockLevelCounter) (0, 0);%
+ \begin{tikzpicture}[remember picture, overlay]
+ \draw[line style]
+ ($ (axp-block-start-\theaxp@BlockLevelCounter) + (0.3ex, -1ex) $)
+ --
+ ($ (axp-block-end-\theaxp@BlockLevelCounter) + (0.3ex, 1em) $);
+ \end{tikzpicture}%
+ \addtocounter{axp@BlockLevelCounter}{-1}%
+ }%
+}
+
+\NewDocumentCommand{\axp@MarkLineEndCont}{}{%
+ \ifbool{axp@IndentLines}{%
+ \tikz[remember picture] \coordinate (axp-block-end-\theaxp@BlockLevelCounter) (0, 0);%
+ \begin{tikzpicture}[remember picture, overlay]
+ \draw[line style]
+ ($ (axp-block-start-\theaxp@BlockLevelCounter) + (0.3ex, -1ex) $)
+ --
+ ($ (axp-block-end-\theaxp@BlockLevelCounter) + (0.3ex, 1em) $);
+ \end{tikzpicture}%
+ \addtocounter{axp@BlockLevelCounter}{-1}%
+ }%
+}
+
+\NewDocumentCommand{\axp@MarkLineEndFinal}{}{%
+ \ifbool{axp@IndentLines}{%
+ \tikz[remember picture] \coordinate (axp-block-end-\theaxp@BlockLevelCounter) (0, 0);%
+ \begin{tikzpicture}[remember picture, overlay]
+ \draw[line style]
+ ($ (axp-block-start-\theaxp@BlockLevelCounter) + (0.3ex, -1ex) $)
+ --
+ ($ (axp-block-end-\theaxp@BlockLevelCounter) + (0.3ex, 0) $)
+ |- ++ (1ex, 0);
+ \end{tikzpicture}%
+ \addtocounter{axp@BlockLevelCounter}{-1}%
+ }%
+}
+
+% % ***********************************************
+% % For debugging!
+\NewDocumentCommand{\msg}{ m O{-1} }{%
+ \begin{tikzpicture}[overlay]
+ \draw[black!30] (0, 0.1) -- (#2, 0.3) node[fill=black!5, anchor=east] {\scriptsize\color{darkgray}#1};
+ \end{tikzpicture}%
+}
+
% axp@CalculateDimensions: evaluate space needed for text and comments
% #1: nesting ajustment (1 when openning a block; 0 when closing)
@@ -319,50 +398,62 @@
\newlength{\axp@CurrentLineWidth}
\newlength{\axp@RemainingWidth}
\NewDocumentCommand{\axp@CalculateDimensions}{ m m m }{%
+ \booltrue{axp@NoCommentPresent}%
\axp@SetToWidth{\axp@FullTextWidth}{\axp@TextFont#2}% text
\axp@SetToWidth{\axp@FullCommentWidth}{\axp@CommentFont#3}% comment
- %! formatter = off
- \ifdim\axp@FullCommentWidth=0pt\relax%
- % No comments present
- \axp@NoCommentPresenttrue%
+ \ifdimcomp{\axp@FullCommentWidth}{=}{0pt}{%
+ % No comments present
+ % \msg{no comment!}%
+ \global\booltrue{axp@NoCommentPresent}%
+ % \ifbool{axp@LineBalanceAuto}{%
\setlength{\axp@TextWidth}{
\dimexpr \linewidth - \axp@CurrentTokenWidth - (\algorithmicindent)*(\theALG@nested - #1)
}%
- \else
- % Yep, we have a comment
- \axp@NoCommentPresentfalse%
- \settowidth{\axp@CommentSymbolWidth}{\hspace{\axp@CommentSeparatorWidth}\CommentSymbol~}%
- \setlength{\axp@CurrentLineWidth}{
- \dimexpr \linewidth - \axp@CurrentTokenWidth - (\algorithmicindent)*(\theALG@nested - #1)
+ \ifdimcomp{\axp@FullTextWidth}{<}{\axp@TextWidth}{%
+ \axp@TextWidth\axp@FullTextWidth% makes the parbox fit the actual text width
+ }{}%
+ % }{}
+ }{%
+ % Yep, we have a comment in this line
+ % \msg{got a comment!}%
+ \global\boolfalse{axp@NoCommentPresent}%
+ \axp@SetToWidth{\axp@CommentSymbolWidth}{\hspace{\axp@CommentSeparatorWidth}\CommentSymbol~}%
+ \deflength{\axp@CurrentLineWidth}{
+ \linewidth - \axp@CurrentTokenWidth - (\algorithmicindent)*(\theALG@nested - #1)
}%
- \ifaxp@LineBalanceAuto%
- % 'auto': decide here how to balance text and comment widths
+ \ifbool{axp@LineBalanceAuto}{%
+ % 'auto': decide here how to balance text and comment widths
\setlength{\axp@RemainingWidth}{
\dimexpr \axp@CurrentLineWidth - \axp@FullTextWidth - \axp@FullCommentWidth - \axp@CommentSymbolWidth
}%
- \ifdim\axp@RemainingWidth>0pt\relax%
- % Both text and comment fit the line
+ \null% I don't understand the difference this null makes here!
+ % \msg{\the\axp@RemainingWidth}%
+ \ifdimcomp{\axp@RemainingWidth}{>}{0pt}{%
+ % Both text and comment fit the line
\axp@TextWidth\axp@FullTextWidth%
\axp@CommentWidth\axp@FullCommentWidth%
- \else%
- % Text/comment will go multi-line
+ % \msg{fits \the\axp@RemainingWidth}%
+ }{%
+ % Text/comment will go multi-line
+ % \msg{not fit \the\axp@RemainingWidth}%
\pgfmathsetmacro{\axp@CurrentRatio}{
int(round(\axp@FullTextWidth/(\axp@FullTextWidth + \axp@FullCommentWidth) * 100))
}%
- \ifnum\axp@CurrentRatio<25\relax% never less than 0.25
+ \ifnumcomp{\axp@CurrentRatio}{<}{25}{% never less than 0.25
\edef\axp@CurrentRatio{25}%
- \fi%
- \ifnum\axp@CurrentRatio>75\relax% never more than 0.75
- \edef\axp@CurrentRatio{75}%
- \fi%
+ }{%
+ \ifnumcomp{\axp@CurrentRatio}{>}{75}{% never more than 0.75
+ \edef\axp@CurrentRatio{75}%
+ }{}%
+ }%
\pgfmathparse{
- \axp@CurrentRatio/100 * \axp@CurrentLineWidth - \axp@CommentSymbolWidth/2
+ (100 - \axp@CurrentRatio)/100 * \axp@CurrentLineWidth - \axp@CommentSymbolWidth
}%
- \setlength{\axp@TextWidth}{\pgfmathresult pt}%
- \pgfmathparse{\axp@CurrentLineWidth - \axp@TextWidth - \axp@CommentSymbolWidth}%
\setlength{\axp@CommentWidth}{\pgfmathresult pt}%
+ \pgfmathparse{\axp@CurrentLineWidth - \axp@CommentWidth - \axp@CommentSymbolWidth}%
+ \setlength{\axp@TextWidth}{\pgfmathresult pt}%
% fine tunning the widths
- \settowidth{\axp@CommentWidth}{%
+ \axp@SetToWidth{\axp@CommentWidth}{%
\begin{varwidth}[t]{\axp@CommentWidth}%
\axp@CommentStyle%
\textcolor{\axp@CommentColor}{\axp@CommentFont#3}\strut%
@@ -370,44 +461,51 @@
}%
\pgfmathparse{\axp@CurrentLineWidth - \axp@CommentWidth - \axp@CommentSymbolWidth}%
\setlength{\axp@TextWidth}{\pgfmathresult pt}%
- \fi%
- \else%
- % 'fixed': limit comment width
- % todo: think about using \axp@CurrentLineWidth instead of \linewidth
+ % \msg{\the\axp@TextWidth}%
+ }%
+ }{%
+ % 'fixed': limit comment width
+ % todo: think about using \axp@CurrentLineWidth instead of \linewidth
\setlength{\axp@CommentWidth}{\axp@CommentFixedWidth}%
\setlength{\axp@TextWidth}{
\dimexpr \axp@CurrentLineWidth - \axp@CommentWidth - \axp@CommentSymbolWidth
}%
- \fi%
+ }%
\setlength{\axp@RemainingWidth}{
\dimexpr \linewidth - \axp@CurrentTokenWidth -
(\algorithmicindent)*(\theALG@nested - #1) -
\axp@CommentWidth - \axp@CommentSymbolWidth
}%
- \fi%
- %
- \ifdim\axp@FullTextWidth<\axp@TextWidth\relax%
- \axp@TextWidth\axp@FullTextWidth% makes the parbox fit the actual text width
- \fi%
- %! formatter = on
+ }%
}
+\newcounter{cont}
+\newif\ifaxp@CloseBlock
% axp@MakeCommand: builds the command (see axp@DefineCommand)
% #1 (star): star = end block; no star = begin block
\NewDocumentCommand{\axp@MakeCommand}{ s }{%
- \axp@DoCommand{% ajustment for opening/closing blocks
- \IfBooleanTF{#1}{0}{1}%
- }{% command or module+name
- \axp@MakeSingleToken{}{\axp@CommandKeyword}{\ifaxp@IsModule(\else\ \fi}%
- }{% text or module arguments
- \axp@CommandText\ifaxp@IsModule)\fi%
- }{% command complement
- \axp@MakeSingleToken{ }{\axp@CommandComplementKeyword}{}%
- }{% comment
- \axp@CommentText%
- }{% options
- \axp@CommandOptions%
- }%
+\IfBooleanTF{#1}{%
+ \axp@MarkLineEndShort%
+}{%
+ \ifaxp@CloseBlock%
+ \axp@MarkLineEndCont%
+ \axp@CloseBlockfalse%
+ \fi%
+ \axp@MarkLineBegin%
+}%
+\axp@DoCommand{% ajustment for opening/closing blocks
+ \IfBooleanTF{#1}{0}{1}%
+}{% command or module+name
+\axp@MakeSingleToken{}{\axp@CommandKeyword}{\ifaxp@IsModule(\else\ \fi}%
+}{% text or module arguments
+\axp@CommandText\ifaxp@IsModule)\fi%
+}{% command complement
+\axp@MakeSingleToken{ }{\axp@CommandComplementKeyword}{}%
+}{% comment
+\axp@CommentText%
+}{% options
+\axp@CommandOptions%
+}%
}
%! formatter = off
@@ -426,7 +524,6 @@
\usebox{\axp@SaveBox}%
\fi%
}
-%! formatter = on
% axp@DoCommand: builds the command (see axp@DefineCommand)
@@ -438,16 +535,15 @@
% #6: options
\newlength{\axp@CurrentTokenWidth}
\NewDocumentCommand{\axp@DoCommand}{ m m m m m m }{%
- \AlgSet{#6}%
- % Dimensions
- \settowidth{\axp@CurrentTokenWidth}{#2}%
- \axp@CalculateDimensions{#1}{{\axp@TextStyle\axp@TextFont#3}#4}{#5}%
- %
- % Making the line: body
- #2%
- %! formatter = off
+\AlgSet{#6}%
+% Dimensions
+\axp@SetToWidth{\axp@CurrentTokenWidth}{#2}%
+\axp@CalculateDimensions{#1}{{\axp@TextStyle\axp@TextFont#3}#4}{#5}%
+%
+% Making the line: body
+#2%
\begin{axp@FBox}%
- \ifaxp@IsModule\hspace{\axp@ParameterIndent}\fi%
+ \ifbool{axp@IsModule}{\hspace{\axp@ParameterIndent}}{}%
\parbox[t]{\axp@TextWidth}{%
\ifaxp@IsStatement%
\setlength{\hangindent}{\axp@StatementIndent}%
@@ -457,23 +553,22 @@
}%
\end{axp@FBox}%
% Making the line: comment
- \ifaxp@NoCommentPresent\else%
+ \ifbool{axp@NoCommentPresent}{}{%
\hspace{\axp@CommentSeparatorWidth}\hfill\CommentSymbol~%
\begin{axp@FBox}%
- \ifaxp@LineBalanceAuto
+ \ifbool{axp@LineBalanceAuto}{%
\begin{varwidth}[t]{\axp@CommentWidth}%
\axp@CommentStyle%
\textcolor{\axp@CommentColor}{\axp@CommentFont#5}\strut%
\end{varwidth}%
- \else
+ }{%
\parbox[t]{\axp@CommentWidth}{%
\axp@CommentStyle%
- \textcolor{\axp@CommentColor}{\axp@CommentFont{#5}}\strut%
+ \textcolor{\axp@CommentColor}{\axp@CommentFont#5}\strut%
}%
- \fi%
+ }%
\end{axp@FBox}%
- \fi%
- %! formatter = on
+ }%
}
@@ -485,12 +580,14 @@
\NewDocumentCommand{\Break}{}{\Keyword{break}}
\RenewDocumentCommand{\Return}{}{\axp@MakeSingleToken{}{\Keyword{return}}{ }}
+\NewDocumentCommand{\ByRef}{}{\Constant{byref}}
+\NewDocumentCommand{\ByValue}{}{\Constant{byvalue}}
\NewDocumentCommand{\True}{}{\Constant{true}}
\NewDocumentCommand{\False}{}{\Constant{false}}
\NewDocumentCommand{\Nil}{}{\Constant{nil}}
-\newcommand{\Id}[1]{\ensuremath{\textit{\rmfamily#1}}}
+\newcommand{\Id}[1]{\ensuremath{\emph{\rmfamily#1}}}
% \newcommand{\TextString}[1]{\textrm{\normalfont``{\ttfamily\mbox{#1}}''}}
% \algnewcommand{\VisibleSpace}{\textrm{\color{black!70}\textvisiblespace}}
@@ -503,35 +600,39 @@
% Read, write
\NewDocumentCommand{\Set}{ m m }{%
- \PackageWarning{alxpar}{The macro \string\Set\ is no longer supported.}%
- \Id{#1} \gets #2%
+\PackageWarning{alxpar}{The macro \string\Set\ is no longer supported.}%
+\Id{#1} \gets #2%
}
\NewDocumentCommand{\Read}{}{\Keyword{read} }
\NewDocumentCommand{\Write}{}{\Keyword{write} }
% %% Comments
\algnewcommand{\CommentIn}[1]{%
- \begin{axp@FBox}
- \textcolor{\axp@CommentColor}{\CommentSymbol~\axp@CommentFont#1~\CommentSymbolRight}%
- \end{axp@FBox}%
+\begin{axp@FBox}
+\textcolor{\axp@CommentColor}{\CommentSymbol~\axp@CommentFont#1~\CommentSymbolRight}%
+\end{axp@FBox}%
}
\NewDocumentCommand{\Commentl}{ m D<>{} }{%
- \begingroup%
- \AlgSet{#2}%
- \textcolor{\axp@CommentColor}{\CommentSymbol~\axp@CommentFont#1\strut}%
- \endgroup%
+\begingroup%
+\AlgSet{#2}%
+\textcolor{\axp@CommentColor}{\CommentSymbol~\axp@CommentFont#1\strut}%
+\endgroup%
}
\RenewDocumentCommand{\Comment}{ m D<>{} }{%
- \hfill\Commentl{#1}<#2>%
+\hfill\Commentl{#1}<#2>%
}
\newlength{\axp@CurrentIndent}
-\NewDocumentCommand{\axp@BeginGroup}{}{\begingroup}
+\newcounter{axp@BlockCounter}
+\newcounter{axp@BlockLevelCounter}
+\NewDocumentCommand{\axp@BeginGroup}{}{%
+\begingroup%
+}
\NewDocumentCommand{\axp@EndGroup}{}{%
- \global\edef\axp@SaveIndent{\the\ALG@tlm}%
- \endgroup%
- \setlength{\ALG@tlm}{\axp@SaveIndent}%
+\global\edef\axp@SaveIndent{\the\ALG@tlm}%
+\endgroup%
+\setlength{\ALG@tlm}{\axp@SaveIndent}%
}
@@ -541,12 +642,12 @@
% #3: comments
% #4: options
\NewDocumentCommand{\Statep}{ O{} +m O{} D<>{} }{%
- \axp@IsStatementtrue%
- \State\axp@DoCommand{1}{}{#2}{}{#1#3}{#4}%
- \axp@IsStatementfalse%
+\axp@IsStatementtrue%
+\State\axp@DoCommand{1}{}{#2}{}{#1#3}{#4}%
+\axp@IsStatementfalse%
}
\RenewDocumentCommand{\Statex}{}{%
- \item[]\strut%
+\item[]\strut%
}
@@ -557,16 +658,17 @@
% #3: comment
% #4: options
\RenewDocumentCommand{\While}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{while}}{#2}{\Keyword{do}}{#1#3}{#4}%
- \ALG@makeentity{While}%
+\axp@BeginGroup%
+\axp@DefineCommand{\Keyword{while}}{#2}{\Keyword{do}}{#1#3}{#4}%
+\ALG@makeentity{While}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndWhile}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endwhile}}{}{}{#1}{#2}%
- \ALG@makeentity{EndWhile}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endwhile}}{}{}{#1}{#2}%
+\ALG@makeentity{EndWhile}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup%
}
@@ -575,18 +677,19 @@
% #1: comments
% #2: options
\RenewDocumentCommand{\Repeat}{ O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{repeat}}{}{}{#1}{#2}%
- \ALG@makeentity{Repeat}%
+\axp@BeginGroup%
+\axp@DefineCommand{\Keyword{repeat}}{}{}{#1}{#2}%
+\ALG@makeentity{Repeat}%
}
% #1: old style comment
% #2: text
% #3: comment
% #4: options
\RenewDocumentCommand{\Until}{ O{} m O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{until}}{#2}{}{#1#3}{#4}%
- \ALG@makeentity{Until}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{until}}{#2}{}{#1#3}{#4}%
+\ALG@makeentity{Until}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup%
}
%% Loop
@@ -594,16 +697,17 @@
% #1: comment
% #2: options
\RenewDocumentCommand{\Loop}{ O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{loop}}{}{}{#1}{#2}%
- \ALG@makeentity{Loop}%
+\axp@BeginGroup%
+\axp@DefineCommand{\Keyword{loop}}{}{}{#1}{#2}%
+\ALG@makeentity{Loop}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndLoop}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endloop}}{}{}{#1}{#2}%
- \ALG@makeentity{EndLoop}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endloop}}{}{}{#1}{#2}%
+\ALG@makeentity{EndLoop}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup%
}
@@ -618,30 +722,33 @@
% #3: comment
% #4: options
\RenewDocumentCommand{\If}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{if}}{#2}{\Keyword{then}}{#1#3}{#4}%
- \ALG@makeentity{If}%
+\axp@BeginGroup%
+\axp@DefineCommand{\Keyword{if}}{#2}{\Keyword{then}}{#1#3}{#4}%
+\ALG@makeentity{If}%
}
% #1: old style comment
% #2: text
% #3: comment
% #4: options
\RenewDocumentCommand{\ElsIf}{ O{} m O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{else}~\Keyword{if}}{#2}{\Keyword{then}}{#1#3}{#4}%
- \ALG@makeentity{ElsIf}%
+\axp@DefineCommand{\Keyword{else}~\Keyword{if}}{#2}{\Keyword{then}}{#1#3}{#4}%
+\axp@CloseBlocktrue%
+\ALG@makeentity{ElsIf}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\Else}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{else}}{}{}{#1}{#2}%
- \ALG@makeentity{Else}%
+\axp@DefineCommand{\Keyword{else}}{}{}{#1}{#2}%
+\axp@CloseBlocktrue%
+\ALG@makeentity{Else}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndIf}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endif}}{}{}{#1}{#2}%
- \ALG@makeentity{EndIf}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endif}}{}{}{#1}{#2}%
+\ALG@makeentity{EndIf}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup%
}
@@ -656,46 +763,49 @@
% #3: comment
% #4: options
\RenewDocumentCommand{\Switch}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{switch}}{#2}{}{#1#3}{#4}%
- \ALG@makeentity{Switch}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{switch}}{#2}{}{#1#3}{#4}%
+\ALG@makeentity{Switch}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndSwitch}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endswitch}}{}{}{#1}{#2}%
- \ALG@makeentity{EndSwitch}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endswitch}}{}{}{#1}{#2}%
+\ALG@makeentity{EndSwitch}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup
}
% #1: old style comment
% #2: text
% #3: comment
% #4: options
\RenewDocumentCommand{\Case}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{case}}{#2}{\Keyword{do}}{#1#3}{#4}%
- \ALG@makeentity{Case}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{case}}{#2}{\Keyword{do}}{#1#3}{#4}%
+\ALG@makeentity{Case}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndCase}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endcase}}{}{}{#1}{#2}%
- \ALG@makeentity{EndCase}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endcase}}{}{}{#1}{#2}%
+\ALG@makeentity{EndCase}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup
}
% #1: comment
% #2: options
\RenewDocumentCommand{\Otherwise}{ O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{otherwise}}{}{}{#1}{#2}%
- \ALG@makeentity{Otherwise}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{otherwise}}{}{}{#1}{#2}%
+\ALG@makeentity{Otherwise}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndOtherwise}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endotherwise}}{}{}{#1}{#2}%
- \ALG@makeentity{EndOtherwise}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endotherwise}}{}{}{#1}{#2}%
+\ALG@makeentity{EndOtherwise}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup
}
@@ -718,34 +828,35 @@
% #3: comment
% #4: options
\RenewDocumentCommand{\For}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{for}}{#2}{\Keyword{do}}{#1#3}{#4}%
- \ALG@makeentity{For}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{for}}{#2}{\Keyword{do}}{#1#3}{#4}%
+\ALG@makeentity{For}%
}
% #1: old style comment
% #2: text
% #3: comment
% #4: options
\RenewDocumentCommand{\ForEach}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{foreach}}{#2}{\Keyword{do}}{#1#3}{#4}%
- \ALG@makeentity{ForEach}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{foreach}}{#2}{\Keyword{do}}{#1#3}{#4}%
+\ALG@makeentity{ForEach}%
}
% #1: old style comment
% #2: text
% #3: comment
% #4: options
\RenewDocumentCommand{\ForAll}{ O{} m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@DefineCommand{\Keyword{forall}}{#2}{\Keyword{do}}{#1#3}{#4}%
- \ALG@makeentity{For}%
+\axp@BeginGroup
+\axp@DefineCommand{\Keyword{forall}}{#2}{\Keyword{do}}{#1#3}{#4}%
+\ALG@makeentity{For}%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndFor}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endfor}}{}{}{#1}{#2}%
- \ALG@makeentity{EndFor}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endfor}}{}{}{#1}{#2}%
+\ALG@makeentity{EndFor}%
+\ifaxp@NoEnd\axp@MarkLineEndFinal\fi%
+\axp@EndGroup
}
@@ -758,18 +869,19 @@
% #4: comment
% #5: options
\RenewDocumentCommand{\Procedure}{ O{} m m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@IsModuletrue%
- \axp@DefineCommand{\Keyword{procedure}~\Module{#2}}{#3}{}{#4}{#5}%
- \ALG@makeentity{Procedure}%
- \axp@IsModulefalse%
+\axp@BeginGroup
+\axp@IsModuletrue%
+\axp@DefineCommand{\Keyword{procedure}~\Module{#2}}{#3}{}{#1#4}{#5}%
+\ALG@makeentity{Procedure}%
+\axp@IsModulefalse%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndProcedure}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endprocedure}}{}{}{#1}{#2}%
- \ALG@makeentity{EndProcedure}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endprocedure}}{}{}{#1}{#2}%
+\axp@MarkLineEndFinal%
+\ALG@makeentity{EndProcedure}%
+\axp@EndGroup
}
\algblockdefx[Function]{Function}{EndFunction}{\axp@MakeCommand}{\axp@MakeCommand*}
@@ -779,25 +891,26 @@
% #4: comment
% #5: options
\RenewDocumentCommand{\Function}{ O{} m m O{} D<>{} }{%
- \axp@BeginGroup
- \axp@IsModuletrue%
- \axp@DefineCommand{\Keyword{function}~\Module{#2}}{#3}{}{#4}{#5}%
- \ALG@makeentity{Function}%
- \axp@IsModulefalse%
+\axp@BeginGroup
+\axp@IsModuletrue%
+\axp@DefineCommand{\Keyword{function}~\Module{#2}}{#3}{}{#1#4}{#5}%
+\ALG@makeentity{Function}%
+\axp@IsModulefalse%
}
% #1: comment
% #2: options
\RenewDocumentCommand{\EndFunction}{ O{} D<>{} }{%
- \axp@DefineCommand{\Keyword{endfunction}}{}{}{#1}{#2}%
- \ALG@makeentity{EndFunction}%
- \axp@EndGroup
+\axp@DefineCommand{\Keyword{endfunction}}{}{}{#1}{#2}%
+\axp@MarkLineEndFinal%
+\ALG@makeentity{EndFunction}%
+\axp@EndGroup
}
\RenewDocumentCommand{\Call}{ m m D<>{} }{%
- \begingroup%
- \AlgSet{#3}%
- \Module{#1}\textcolor{\axp@TextColor}{\axp@TextFont(#2)}%
- \endgroup%
+\begingroup%
+\AlgSet{#3}%
+\Module{#1}\textcolor{\axp@TextColor}{\axp@TextFont(#2)}%
+\endgroup%
}
@@ -822,13 +935,13 @@
\NewCommandCopy{\axp@AlgorithmicxAlgorithmic}{\algorithmic}
\NewCommandCopy{\axp@AlgorithmicxEndAlgorithmic}{\endalgorithmic}
\RenewDocumentCommand{\algorithmic}{ O{} D<>{} }{%
- \begingroup%
- \AlgSet{#2}%
- \axp@AlgorithmicxAlgorithmic[#1]%
+\begingroup%
+\AlgSet{#2}%
+\axp@AlgorithmicxAlgorithmic[#1]%
}
\RenewDocumentCommand{\endalgorithmic}{}{%
- \axp@AlgorithmicxEndAlgorithmic%
- \endgroup%
+\axp@AlgorithmicxEndAlgorithmic%
+\endgroup%
}
-\endinput \ No newline at end of file
+\endinput
diff --git a/macros/latex/contrib/algxpar/license b/macros/latex/contrib/algxpar/license
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/algxpar/license
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/animate/ChangeLog b/macros/latex/contrib/animate/ChangeLog
index 237adc19ac..d47f457487 100644
--- a/macros/latex/contrib/animate/ChangeLog
+++ b/macros/latex/contrib/animate/ChangeLog
@@ -1,3 +1,16 @@
+2024-10-14
+ * fix: quoted filenames (issue #23)
+
+2024-09-17
+ * change: `method=widget' now default for extended range of supporting viewers
+ * fix: documentation revised
+
+2024-09-06
+ * fix: documentation PDF re-compiled and minor README additions
+
+2024-09-05
+ * new: animation support in PDF.js, version 4.4.168+
+
2023-06-18
* fix: missing file `pstmetronome.tex' added
@@ -51,10 +64,10 @@
* fix: pausing on the 0th frame
2020-08-29
- * new: \multiframebreak for terminating \multiframe loop
+ * new: \multiframebreak for terminating \multiframe loop
2020-08-04
- * fix: typesetting failure with `latex-dev'
+ * fix: typesetting failure with `latex-dev'
2020-05-29
* fix: `autoplay' option non-functional in combination with `poster=last';
@@ -225,12 +238,12 @@
* fix: bug related to XObject referencing
2016-03-11
- * new: now uses pdfbase.sty for low level PDF operations
+ * new: now uses pdfbase.sty for low level PDF operations
2016-02-28
* Fix: workaround for bug http://tex.stackexchange.com/q/295715 : different
behaviour of AR versions with regard to PageOpen and PageVisible events
- where animation initialisation takes place
+ where animation initialisation takes place
2016-02-15
* Fix: bug http://tex.stackexchange.com/q/292805
@@ -448,7 +461,7 @@
* New: the transparency stack can now be cleared using `c' in the
timeline file
* improved documentation of the timeline option
- * New animateinline example (Lorenz Attractor)
+ * New animateinline example (Lorenz Attractor)
* Fix: animfp.sty: trailing zeros are now removed from the fractional part
of the result of the addition of two reals
diff --git a/macros/latex/contrib/animate/README.md b/macros/latex/contrib/animate/README.md
index 1756bd8cd5..9cdf56ce09 100644
--- a/macros/latex/contrib/animate/README.md
+++ b/macros/latex/contrib/animate/README.md
@@ -10,11 +10,13 @@ This package provides an interface to create portable, JavaScript driven PDF and
It supports the usual PDF making workflows, i. e. pdfLaTeX, LaTeX &rArr; `dvips` &rArr; `ps2pdf` (Ghostscript)/Distiller, (Xe)LaTeX &rArr; `(x)dvipdfmx`, LuaLaTeX, and LaTeX &rArr; `dvisvgm` for SVG.
-The resulting PDF with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange and Foxit Reader. Animated SVG are self-contained files that can be embedded into HTML using the `<object>` tag or opened directly in a Web browser, such as Firefox or Chromium.
+The resulting PDF with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (Firefox' built-in PDF viewer and extension for Chromium-based browsers).
-Note, this file only gives a summary of usage and available package and command options. Please refer to the documentation [`animate.pdf`](animate.pdf) for details and examples.
+Animated SVG are self-contained files that can be embedded into HTML using the `<object>` tag or opened directly in a Web browser, such as Firefox or Chromium.
-*Keywords:* include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader Firefox Chrome Chromium
+Note, this file only gives a summary of usage and available package and command options. Please refer to the documentation [`animate.pdf`](http://mirrors.ctan.org/macros/latex/contrib/animate/animate.pdf) for details and examples.
+
+*Keywords:* include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader PDF.js Firefox Chrome Chromium
## Usage
@@ -97,7 +99,7 @@ Recent versions of
- Ghostscript or Adobe Distiller
- dvipdfmx
- dvisvgm
-- PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader
+- PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader, PDF.js, Firefox
- SVG: Blink-based web browsers (Chromium, Chrome, Opera, ...) or Firefox
## Installation
diff --git a/macros/latex/contrib/animate/animate.pdf b/macros/latex/contrib/animate/animate.pdf
index 518115d6af..6d700e9a5f 100644
--- a/macros/latex/contrib/animate/animate.pdf
+++ b/macros/latex/contrib/animate/animate.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/animate.sty b/macros/latex/contrib/animate/animate.sty
index fc126ce70a..461eb50b50 100644
--- a/macros/latex/contrib/animate/animate.sty
+++ b/macros/latex/contrib/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\def\@anim@version{2023/06/18}
+\def\@anim@version{2024/10/14}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -530,6 +530,7 @@
/Subtype/Widget%
/F 2%
/FT/Btn/Ff 65537%
+ /A <</S/ResetForm>>% to make pdf.js happy
/BS <</W 0>>%
/AP <</N \@anim@framexform>>%
/MK <</TP 1/I \@anim@framexform%
@@ -562,6 +563,7 @@
/Subtype/Widget%
\@anim@annotflag%
/FT/Btn/Ff 65537%
+ /A <</S/ResetForm>>%
/BS <</W 0>>%
/AP <</N \@anim@framexform>>%
/MK <</TP 1/I \@anim@framexform%
@@ -1623,7 +1625,8 @@
\if@anim@controls@stop\setboolean{@anim@controls}{true}\fi%
\if@anim@controls@step\setboolean{@anim@controls}{true}\fi%
\fi%
- \edef\@anim@base{#3}%
+ \Gin@set@curr@file{#3}%
+ \expandafter\edef\expandafter\@anim@base\expandafter{\@curr@file}%
\edef\@anim@first{#4}%
\edef\@anim@last{#5}%
\@anim@checkmultipage{\@anim@base}{\@anim@ftype}%test for multipage file
@@ -2072,6 +2075,8 @@
\@anim@tooltip%
\if@anim@js%
/AA <</D <</S/JavaScript/JS (\@anim@btnJS{#1}{\@anim@arg})>>>>%
+ \else%
+ /A <</S/ResetForm>>%
\fi%
}%
\if@anim@js%
@@ -3347,7 +3352,8 @@
\setboolean{@anim@@draft}{false}%
}
\newboolean{@anim@@nomouse}
-\def\@anim@@method{\z@}%default animation method is `icon'
+%\def\@anim@@method{\z@}%default animation method is `icon'
+\def\@anim@@method{\@ne}%default animation method is `widget'
\def\@anim@@ftype{}% file type (extension) of graphics
\ExplSyntaxOn
diff --git a/macros/latex/contrib/animate/animate.tex b/macros/latex/contrib/animate/animate.tex
index cc952856e7..9cc30bf2eb 100644
--- a/macros/latex/contrib/animate/animate.tex
+++ b/macros/latex/contrib/animate/animate.tex
@@ -62,7 +62,7 @@
{\itshape\normalsize}}
\makeatother
-\def\keywords{include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader Firefox Chrome Chromium}
+\def\keywords{include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht Web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader PDF.js Firefox Chrome Chromium}
\hypersetup{
pdftitle={The animate Package},
pdfsubject={Documentation},
@@ -94,7 +94,7 @@
\def\@anim@sanitizeColon{}\def\@anim@sanitizeJS{}\def\@anim@endsanitize{}
\expandafter\parsedate\animVersion\relax %set current date to package date
\makeatother
-\author{Alexander Grahn \animategraphics[autoplay,loop,height=1.8ex,nomouse]{8}{bye_}{0}{3}\protect\footnote{Animated GIF taken from \href{http://www.phpBB.com}{phpBB} forum software and burst into a set of EPS files using \href{http://www.imagemagick.org}{ImageMagick} before embedding.}%
+\author{Alexander Grahn \animategraphics[autoplay,loop,height=1.8ex,nomouse]{8}{bye_}{0}{3}\protect\footnote{Animated GIF taken from \href{http://www.phpBB.com}{phpBB} forum software and burst into a set of EPS files using \href{http://www.imagemagick.org}{ImageMagick} before embedding.}% \protect\footnote{Animation examples in this document have all been built with the `\texttt{method=widget}' option to make them work in PDF.js, Mozilla's PDF viewer built into the Firefox Web browser.}%
%\space\protect\footnote{Animations may run slowly if viewed in the Acrobat Reader browser plugin.}%
\\[1ex]\url{https://gitlab.com/agrahn/animate}}
\maketitle
@@ -111,12 +111,32 @@
\tableofcontents
%\newpage
-\section{Introduction}
+\section{Introduction}\label{sect:intro}
This package provides an interface for creating PDF and SVG files with animated content from sets of graphics or image files, from inline graphics, such as \LaTeX-picture, PSTricks or pgf/TikZ generated pictures, or just from typeset text. Unlike standard movie/video formats, package `animate' allows for animating vector graphics. The result is roughly similar to the SWF (Flash) format, although not as space-efficient.
Package `animate' supports the usual workflows for making PDF, i.\,e. pdf\LaTeX{}, Lua\-\LaTeX{}, \LaTeX{} $\rightarrow$ \verb+dvips+ $\rightarrow$ \verb+ps2pdf+/Distiller and \pXepLaTeX{} $\rightarrow$ \verb+(x)dvipdfmx+. For animated SVG, it supports the \verb+dvisvgm+ driver. The DVI/XDV used as input for \verb+dvisvgm+ can be generated with \LaTeX{}, Lua\LaTeX{} (in DVI mode with command `\verb+dvilualatex+') and \XeLaTeX{} (with option `\verb+--no-pdf+').
-PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange and Foxit Reader.
+PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (Firefox' built-in PDF viewer and extension for Chromium-based Web browsers). To view a local PDF file in the Web browser, open it by right-click in a file explorer or by starting the Web browser on the command-line, passing the PDF file name as its argument. The full-screen mode, also known as Presentation Mode in PDF.js, can be reached via the \raisebox{0.5\depth}{{\fboxsep=3pt\colorbox{lightgray}{\texttt{\large>>}}}} button at the right end of the toolbar. The PDF.js extension for Chromium/Chrome/Edge can be installed from
+
+\makebox[\linewidth][l]{\href{https://chromewebstore.google.com/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm}{\nolinkurl{https://chromewebstore.google.com/detail/pdf-viewer/}}}\\
+\makebox[\linewidth][r]{\href{https://chromewebstore.google.com/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm}{\nolinkurl{oemmndcbldboiebfnladdacbdfmadadm}}}
+
+For animations to play in the Chromium extension, JavaScript needs to be enabled in the settings:
+
+\makebox[\linewidth][l]{\url{chrome://extensions/?id=oemmndcbldboiebfnladdacbdfmadadm} $\rightarrow$}\\
+\makebox[\linewidth][r]{Extension options $\rightarrow$ Enable active content (JavaScript) in PDFs}
+
+Viewing of local files also needs to be enabled in Chromium-based browsers:
+
+\makebox[\linewidth][l]{\url{chrome://extensions/?id=oemmndcbldboiebfnladdacbdfmadadm} $\rightarrow$}\\
+\makebox[\linewidth][r]{Allow access to file URLs}
+
+%Note that option `\texttt{method=widget}' must be set to produce animations that are compatible with PDF.js.
+%PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (as Firefox built-in PDF viewer, or in other Web browsers via URL). The most recent release of PDF.js can be accessed online in a Web browser (Firefox, Chromium, Chrome, Edge, ...) via the following URL:
+%
+%\url{https://mozilla.github.io/pdf.js/web/viewer.html?file=}
+%
+%Then, to open a local PDF file in PDF.js, click \raisebox{0.5\depth}{{\fboxsep=3pt\colorbox{lightgray}{\texttt{\large>>}}}} at the right end of its tool bar. In the `Tools' menu, click on `Open'. Note that option `\texttt{method=widget}' must be set to produce animations that are compatible with PDF.js.
Animated SVG produced by means of \LaTeX{} and \verb+dvisvgm+ are self-sufficient files that can be embedded into HTML using the \verb+<object>+ tag or opened directly in a Web browser, such as Chromium or Firefox. Also, presentations, such as `beamer'-class documents, with embedded animations can be exported to SVG instead of PDF and viewed in a Web browser. SVG-capable Web browsers are standard on many platforms and operating systems and thus make SVG a very portable file format. A \LaTeX{} package for embedding video and audio into SVG is also available\cite{media4svg}.
@@ -131,16 +151,15 @@ The user interacts with the animation through optional animation controls or usi
\item pdf\TeX{}, version $\ge1.40$, or Lua\TeX{}, version $\ge0.95$, for direct PDF output
\item Ghostscript, version $\ge9.15$, or Adobe Distiller for PS to PDF conversion
\item \verb+dvipdfmx+ for DVI to PDF conversion
-\item dvipdfmx, version $\ge 20190503$, for DVI to PDF conversion
-\item \verb+dvisvgm+ for DVI to SVG conversion (also requires Ghostscript)
-\item PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader
+\item \verb+dvisvgm+ for DVI to SVG conversion (also requires Ghostscript and MuPDF)
+\item PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader, Firefox, version $\ge130$, PDF.js, version $\ge4.4.168$
\item SVG: Chromium-based browsers for best performance
\end{trivlist}
\section{Installation}
Unzip the file \href{http://mirrors.ctan.org/install/macros/latex/contrib/animate.tds.zip}{`animate.tds.zip'} into the local TDS root directory which can be found by running `\verb+kpsewhich -var-value TEXMFLOCAL+' on the command line.
-After installation, update the filename database by running `\verb+texhash+' on the command line.
+After installation, update the file name database by running `\verb+texhash+' on the command line.
\TeX-Live and MiK\TeX{} users should run the package manager of their system for installation.
@@ -388,11 +407,11 @@ With `\verb+draft+' the animation is not embedded. Instead, a box with the exact
\begin{verbatim}
nomouse
\end{verbatim}
-Animation widget will not respond to mouse clicks. Unless the JavaScript interface, Sect.~\ref{sect:api}, p.~\pageref{sect:api}, is used to control the animation, it is recommended to also set at least one of the `\verb+autoplay+' or `\verb+controls+' options.
+Animation widget will not respond to mouse clicks. Unless the JavaScript interface, Section~\ref{sect:api}, p.~\pageref{sect:api}, is used to control the animation, it is recommended to also set at least one of the `\verb+autoplay+' or `\verb+controls+' options.
\begin{verbatim}
method=icon | widget | ocg
-\end{verbatim}
-The package implements three different animation methods. The `\verb+icon+' method is the default method and usually gives the best performance in terms of animation frame rate. `\verb+widget+' and `\verb+ocg+' are alternative animation methods. In rare cases (standalone animations without animation controls) method `\verb+ocg+' may lead to a better animation performance than the other two. Moreover, it allows overlaying animations with other typeset material, that is, playing animations in the page background.
+\end{verbatim}\hypertarget{method}{}%
+The package implements three different animation methods. The `\verb+icon+' method usually gives the best performance in terms of animation frame rate in Acrobat Reader. However, the `\verb+widget+' method is now set by default because it extends the range of supporting viewers. Beginning with version 130, Firefox renders functional animations too. The PDF viewer bundled with Firefox, PDF.js, is also available as an extension for Chrome and releated browsers, see Section~\ref{sect:intro}. In rare cases, such as standalone animations without animation controls, the alternative `\verb+ocg+' method may lead to a better animation performance than the other two. Also, `\verb+ocg+' allows an animation to be overlaid with other typeset material, that is, it can play in the page background. However, support is limited to Acrobat Reader and Okular.
\begin{verbatim}
measure
\end{verbatim}
@@ -468,7 +487,7 @@ frame No. & timeline file & transparency stack\\\hline\hline
\end{tabular}
\end{table}
-Figures~\ref{fig:taylor} and \ref{fig:lorenz} in Sect.~\ref{sect:examples} are animation examples with a single transparency stack.
+Figures~\ref{fig:taylor} and \ref{fig:lorenz} in Section~\ref{sect:examples} are animation examples with a single transparency stack.
\myparagraph*{Grouping objects into layers (= sub-stacks) using `{\tt;}'}
Due to the stack-like nature of the animation, the position of a transparency specification in the timeline file determines its \emph{depth} level in relation to other transparencies. The timeline file is processed line by line and from left to right. In a single-stack animation, the stack is strictly built from the bottom up, such that earlier transparencies are overprinted by more recent ones. This may turn out to be inconvenient in certain situations. For example, it might be desirable to change the background image in the middle of an animation without affecting objects that are located in the foreground. For this purpose, transparency specifications can be grouped into layers (sub-stacks) using the semicolon (\verb+;+) as a separator. New transparencies can now be put on top of the individual sub-stacks. After a line of the timeline file has been processed, the global stack is built by placing the sub-stacks on top of the other. Again, the left-to-right rule applies when determining the height of the sub-stacks in relation to each other within the global stack.
@@ -505,7 +524,7 @@ frame No. & timeline file & transparency stack\\\hline\hline
%
%Note that \emph{without} setting up two layers, that is, by replacing the semicolons with commas, the foreground objects (transparencies 2 through 99) which have been added during the first 49 frames would be overprinted by the new background image, transparency 1, from frame 50 onward.
-See the second animation, Fig.~\ref{fig:scarab}, in Sect.~\ref{sect:examples} for a working example that makes use of the timeline and the layer concept.
+See the second animation, Fig.~\ref{fig:scarab}, in Section~\ref{sect:examples} for a working example that makes use of the timeline and the layer concept.
\myparagraph*{Associate JavaScript actions with animation frames}\label{sect:jsfield}
The optional fourth field \verb+<JavaScript>+ in a frame specification takes JavaScript code to be executed upon display of that frame. This could be used, for instance, to play a sound that was embedded using the `media9' \LaTeX{} package \cite{media9} or to execute JavaScript methods of the animation object. A non-trivial example is looping over a sub-range of frames which can be programmed by setting the `\verb+frameNum+' property of the animation object. See Section~\ref{sect:api} for details of the animation programming interface.
@@ -601,7 +620,7 @@ Also, the programming interface can be used to create custom buttons for playbac
]{\fbox{Goto 6th frame}}
\end{lstlisting}
-\clearpage
+%\clearpage
\section{Examples}
\subsection{Animations from sets of files, using {\tt\textbackslash animategraphics}}\label{sect:examples}
Animations in this section are made from graphics files that were prepared with \MP. Run `\verb+mpost --tex=latex+' on the files ending in `.mp' in the `files' directory to generate the graphics files. Both examples make use of the `\verb+timeline+' option to reduce the resulting PDF file size.
@@ -1375,7 +1394,7 @@ The following code may serve as a template for generating standalone animated SV
%
\end{document}
\end{lstlisting}
-Note that when animating external graphics with \verb+\animategraphics+, only PDF and PostScript (EPS, PS, MPS) files are converted to inline SVG code; files in other formats (SVG, PNG, JPEG) remain external and must be bundled with the final SVG output. Thus, for obtaining self-contained SVG, it is recommended to convert PNG, JPEG and SVG files to PDF or PostScript first. Also note that PostScript files must have all required fonts embedded. This is not always the case for \MP-generated PostScript. Here, embedding of fonts is ensured by putting `\verb+prologues := 3;+' into the header of the \MP{} input.
+Note that when animating external graphics with \verb+\animategraphics+, only PDF and PostScript (EPS, PS, MPS) files are converted to inline SVG code; files in other formats (SVG, PNG, JPEG) remain external and must be bundled with the final SVG output. Thus, for obtaining self-contained SVG, it is recommended to convert PNG, JPEG and SVG files to PostScript or PDF first. Also note that PostScript files must have all required fonts embedded. This is not always the case for \MP-generated PostScript. Here, embedding of fonts is ensured by putting `\verb+prologues := 3;+' into the header of the \MP{} input. If PDF is chosen as file format for input graphics, the conversion utility `\verb+mutool+' must be present on the system. It is installed as part of the MuPDF (\url{https://mupdf.com}) package.
Use one of
\begin{verbatim}
@@ -1469,7 +1488,7 @@ In \TeX4ht documents, the whole \verb+<object>...</object>+ tag can be inserted
\item PDFs with animations cannot be embedded (via {\tt\string\includegraphics},\\ {\tt\string\includepdf}) into other documents as the animation capability gets lost.
- \item Animations should not be placed on \emph{multilayered} slides, also known as overlays, created with presentation making classes such as Beamer or Powerdot. Those document classes turn overlays into separate PDF pages and re-insert the animation on every page thus produced. The animations are independent from each other and do not share the current playing state, such as frame number, playing speed and direction. Therefore, put animations on flat slides only; slides without animations may still have overlays, of course. On \href{https://tex.stackexchange.com/a/385209}{\TeX.SE}~\cite{texsx}, a method is suggested for placing an animation on a slide with overlays. It makes use of the programming interface introduced in Sect.~\ref{sect:api}, p.~\pageref{sect:api}.
+ \item Animations should not be placed on \emph{multilayered} slides, also known as overlays, created with presentation making classes such as Beamer or Powerdot. Those document classes turn overlays into separate PDF pages and re-insert the animation on every page thus produced. The animations are independent from each other and do not share the current playing state, such as frame number, playing speed and direction. Therefore, put animations on flat slides only; slides without animations may still have overlays, of course. On \href{https://tex.stackexchange.com/a/385209}{\TeX.SE}~\cite{texsx}, a method is suggested for placing an animation on a slide with overlays. It makes use of the programming interface introduced in Section~\ref{sect:api}, p.~\pageref{sect:api}.
\end{itemize}
\section{Acknowledgements}
@@ -1477,14 +1496,14 @@ I would like to thank François Lafont who discovered quite a few bugs and made
%\enlargethispage{4ex}
\begin{thebibliography}{8}
-\bibitem{chupin} Chupin, M.: \emph{Syracuse MetaPost/Animations.} URL: \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\texttt{http://melusine.eu.org/}} \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\texttt{syracuse/metapost/animations/chupin/?idsec=scara}}
+\bibitem{chupin} Chupin, M.: \emph{Syracuse MetaPost/Animations.} URL: \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\nolinkurl{http://melusine.eu.org/}} \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\nolinkurl{syracuse/metapost/animations/chupin/?idsec=scara}}
\bibitem{dvisvgm} \emph{dvisvgm: A fast DVI to SVG converter} URL: \url{http://dvisvgm.de}
\bibitem{gilg05} Gilg, J.: PDF-Animationen. In: \emph{Die \TeX nische Kom\"odie}, Issue 4, 2005, pp.~30--37
\bibitem{hol} Holeček, J.; Sojka, P.: Animations in pdf\TeX-generated PDF. In: \emph{\TeX, XML, and Digital Typography}, Springer, 2004, pp.~179--191. doi:10.1007/978-3-540-27773-6\textunderscore14
\bibitem{luque12} Luque, M.: \emph{PSTricks : applications.} URL: \url{http://pstricks.blogspot.com}
\bibitem{media4svg} \emph{The media4svg Package}. URL: \url{http://www.ctan.org/pkg/media4svg}
\bibitem{media9} \emph{The media9 Package}. URL: \url{http://www.ctan.org/pkg/media9}
-\bibitem{texsx} \emph{Beamer: animate package and overlay}. URL: \href{https://tex.stackexchange.com/a/385209}{\texttt{https://tex.stackexchange.com}}\\ \href{https://tex.stackexchange.com/a/385209}{\texttt{/a/385209}}
+\bibitem{texsx} \emph{Beamer: animate package and overlay}. URL: \href{https://tex.stackexchange.com/a/385209}{\nolinkurl{https://tex.stackexchange.com}}\\ \href{https://tex.stackexchange.com/a/385209}{\nolinkurl{/a/385209}}
\end{thebibliography}
\end{document}
diff --git a/macros/latex/contrib/atveryend/README.md b/macros/latex/contrib/atveryend/README.md
index bee5e0cae1..08c31231f8 100644
--- a/macros/latex/contrib/atveryend/README.md
+++ b/macros/latex/contrib/atveryend/README.md
@@ -1,13 +1,14 @@
-# atveryend
+# atveryend package for LaTeX
-atveryend package for LaTeX
+Version: 2024-08-06 v1.12
+This LaTeX package provides some wrapper commands
+around LaTeX end document hooks.
-This LaTeX package provides two hooks for \end{document}
-that are executed after the hook of \AtEndDocument.
-\AfterLastShipout can be used for code that is to be executed
-right after the last \clearpage before the aux file
-is closed. \AtVeryEndDocument is used for code after closing
-and final reading of the aux file.
+## Copyright (C)
+* 2009-2011 Heiko Oberdiek
+* 2016-2024 Oberdiek Package Support Group
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/atveryend/atveryend.dtx b/macros/latex/contrib/atveryend/atveryend.dtx
index 24c67081b3..8e9b3bb74c 100644
--- a/macros/latex/contrib/atveryend/atveryend.dtx
+++ b/macros/latex/contrib/atveryend/atveryend.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: atveryend.dtx
-% Version: 2019-12-11 v1.11
+% Version: 2024-08-06 v1.12
% Info: Hooks at the very end of document
%
% Copyright (C)
% 2009-2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
+% 2016-2024 Oberdiek Package Support Group
% https://github.com/ho-tex/atveryend/issues
%
% This work may be distributed and/or modified under the
@@ -80,7 +80,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO)}
+\Msg{* Package: atveryend 2024-08-06 v1.12 Hooks at the very end of document (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -92,11 +92,11 @@
This is a generated file.
Project: atveryend
-Version: 2019-12-11 v1.11
+Version: 2024-08-06 v1.12
Copyright (C)
2009-2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2024 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -154,7 +154,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{atveryend.drv}%
- [2019-12-11 v1.11 Hooks at the very end of document (HO)]%
+ [2024-08-06 v1.12 Hooks at the very end of document (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -168,103 +168,56 @@ and the derived files
% \GetFileInfo{atveryend.drv}
%
% \title{The \xpackage{atveryend} package}
-% \date{2019-12-11 v1.11}
+% \date{2024-08-06 v1.12}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/atveryend/issues}}}
%
% \maketitle
%
% \begin{abstract}
-% This \LaTeX\ package provides two hooks for \verb|\end{document}|
-% that are executed after the hook of \cs{AtEndDocument}.
-% \cs{AfterLastShipout} can be used for code that is to be executed
-% right after the last \cs{clearpage} before the \xext{aux} file
-% is closed. \cs{AtVeryEndDocument} is used for code after closing
-% and final reading of the \xext{aux} file.
+% This \LaTeX\ package is a small wrapper around standard \LaTeX{} hooks at the end
+% of a document.
+%
% \end{abstract}
%
-% \tableofcontents
%
% \section{Documentation}
-%
-% There are packages (e.g. \xpackage{hyperref} \cite{hyperref},
-% \xpackage{lastpage} \cite{lastpage})
-% that want to call code after the typesetting is done, for example
-% to remember the last page number. \LaTeX\ provides the hook
-% \cs{AtEndDocument} (\xpackage{clsguide} \cite{clsguide}).
-% There are packages that use this hook to do their job for
-% typesetting pages (e.g. \xpackage{endfloat} emits the floats here
-% \cite{endfloat}).
-% Also a user might provide additional code in \cs{AtEndDocument}.
-% Therefore packages have to call \cs{clearpage} in \cs{AtEndDocument}
-% to get after the last shipout page. But this is not too reliable,
-% because the right timing is important between packages that want
-% or have to do things before the last page is output and packages
-% that only work properly if they can reach the point after the
-% last shipout.
-%
-% Therefore the task of this package is to provide additional
-% hooks for |\end{document}|. All hooks are called after
-% the hook of \cs{AtEndDocument}.
-% \begin{declcs}{BeforeClearDocument} \M{code}
-% \end{declcs}
-% The code is called before the final \cs{clearpage} in
-% \cs{enddocument}. However it is unknown, whether the last
-% page is already shipped out or if this will be triggered by the
-% final \cs{clearpage}.
-%
+%
+% In the past this package patched the command \cs{enddocument} to
+% provided two additional hooks for \verb|\end{document}|
+% that were executed after the hook of \cs{AtEndDocument}.
+%
+% Since 2020 this patching is no longer needed as the
+% hooks are provided by \LaTeX{} directly. Since this time the code of the package
+% was no longer used as \LaTeX{} suppressed the loading of the package
+% and replaced the commands by commands based on the new hooks. In version 1.12
+% this new code was moved into \texttt{atveryend} directly.
+%
+% The package defines the following user commands and maps them
+% to \cs{AddToHook} calls. A description of the used
+% hooks can be found in \texttt{lhooks-doc.pdf}.
+%
% \begin{declcs}{AfterLastShipout} \M{code}
% \end{declcs}
-% The code is called after the final \cs{clearpage} of \cs{enddocument}
-% before the main \xext{aux} file is closed. This is the right place
-% to remember the last page in the \xext{aux} file, for instance.
+% This adds the code to the \texttt{enddocument/afterlastpage} hook.
%
% \begin{declcs}{AtVeryEndDocument} \M{code}
% \end{declcs}
-% The code is called after the \xext{aux} file is closed and read in again.
-% It is the place for final checks, rerun hints, final messages.
+% This adds the code to the \texttt{enddocument/afteraux} hook.
%
% \begin{declcs}{AtEndAfterFileList} \M{code}
% \end{declcs}
-% After the \xext{aux} file closing and reading \hologo{LaTeX}
-% prints the file list if requested by \cs{listfiles}.
-% Then this hook is executed.
-%
+% This adds the code to the \texttt{enddocument/info} hook.%
+%
% \begin{declcs}{AtVeryVeryEnd} \M{code}
% \end{declcs}
-% This code is called right before the final \cs{@@end}.
-%
-% \subsection{Related work}
-%
-% \begin{description}
-% \item[Package \xpackage{scrfile}:]
-% Markus Kohm has written package \xpackage{scrlfile}
-% (part of KOMA-Script \cite{koma})
-% that provides
-% hooks \cs{BeforeClosingMainAux} and after \cs{AfterReadingMainAux}.
-% They have the same function as the hooks of this package. In fact
-% this package uses them, if they are available.
-% \item[Class \xclass{revtex4-1}:]
-% This class calls \cs{clear@document} in \cs{enddocument}
-% that wraps the final call of \cs{clearpage}.
-% Thus it can be used as hook to call stuff after that \cs{clearpage}.
-% This is also done by this package.
-% \item[Package \xpackage{etoolbox}:]
-% It provides \cs{AfterEndDocument}, a hook right before
-% \cs{deadcycles} or \cs{@@end} \cite{etoolbox}.
-% \end{description}
-% This package tries to combine as many approaches as possible:
-% \begin{itemize}
-% \item It looks for a known \cs{enddocument} and redefines it.
-% \item Hooks that are provided by others are used (package
-% \xpackage{scrlfile} or class \xclass{revtex4-1}.
-% \item It redefines \cs{@checkend} and \cs{@dofilelist} to insert
-% the hooks similar to package \xpackage{scrlfile}.
-% \item The hook execution is wrapped in a macro that
-% is redefined by its first call to prevent calling the hook
-% more than once.
-% \end{itemize}
+% This adds the code to the \texttt{enddocument/end} hook.
%
+% \begin{declcs}{BeforeClearDocument} \M{code}
+% \end{declcs}
+% This adds the code to the \texttt{enddocument} hook.
+% It is recommended to use \cs{AtEndDocument} instead.
+%
% \StopEventually{
% }
%
@@ -273,899 +226,45 @@ and the derived files
%<*package>
% \end{macrocode}
%
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname AtVeryEnd@AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP@EnsureCode#1#2{%
- \edef\AtVeryEnd@AtEnd{%
- \AtVeryEnd@AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP@EnsureCode{9}{10}% (tab)
-\TMP@EnsureCode{39}{12}% '
-\TMP@EnsureCode{40}{12}% (
-\TMP@EnsureCode{41}{12}% )
-\TMP@EnsureCode{42}{12}% *
-\TMP@EnsureCode{45}{12}% -
-\TMP@EnsureCode{46}{12}% .
-\TMP@EnsureCode{47}{12}% /
-\TMP@EnsureCode{62}{12}% >
-\TMP@EnsureCode{91}{12}% [
-\TMP@EnsureCode{93}{12}% ]
-\TMP@EnsureCode{96}{12}% `
-\edef\AtVeryEnd@AtEnd{\AtVeryEnd@AtEnd\noexpand\endinput}
-% \end{macrocode}
-%
% Package identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{atveryend}%
- [2019-12-11 v1.11 Hooks at the very end of document (HO)]
+ [2024-08-06 v1.12 Hooks at the very end of document (HO)]
% \end{macrocode}
%
% \subsection{Tools}
%
-% \begin{macro}{\AtVeryEnd@ifundefined}
-% \begin{macrocode}
-\def\AtVeryEnd@ifundefined#1{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname #1\endcsname\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Hooks}
-%
-% \begin{macro}{\AtVeryEnd@BeforeClearDocumentHook}
-% \begin{macrocode}
-\let\AtVeryEnd@BeforeClearDocumentHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@AfterLastShipoutHook}
-% \begin{macrocode}
-\let\AtVeryEnd@AfterLastShipoutHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@AtVeryEndDocumentHook}
-% \begin{macrocode}
-\let\AtVeryEnd@AtVeryEndDocumentHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@AtEndAfterFileListHook}
-% \begin{macrocode}
-\let\AtVeryEnd@AtEndAfterFileListHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@AtVeryVeryEndHook}
-% \begin{macrocode}
-\let\AtVeryEnd@AtVeryVeryEndHook\@empty
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\BeforeClearDocument}
-% \begin{macrocode}
-\newcommand*{\BeforeClearDocument}{%
- \g@addto@macro\AtVeryEnd@BeforeClearDocumentHook
-}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\AfterLastShipout}
% \begin{macrocode}
-\newcommand*{\AfterLastShipout}{%
- \g@addto@macro\AtVeryEnd@AfterLastShipoutHook
-}
+\newcommand\AfterLastShipout {\AddToHook{enddocument/afterlastpage}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtVeryEndDocument}
% \begin{macrocode}
-\newcommand*{\AtVeryEndDocument}{%
- \g@addto@macro\AtVeryEnd@AtVeryEndDocumentHook
-}
+\newcommand\AtVeryEndDocument {\AddToHook{enddocument/afteraux}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtEndAfterFileList}
% \begin{macrocode}
-\newcommand*{\AtEndAfterFileList}{%
- \g@addto@macro\AtVeryEnd@AtEndAfterFileListHook
-}
+\newcommand\AtEndAfterFileList{\AddToHook{enddocument/info}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtVeryVeryEnd}
% \begin{macrocode}
-\newcommand*{\AtVeryVeryEnd}{%
- \g@addto@macro\AtVeryEnd@AtVeryVeryEndHook
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Call@BeforeClearDocument}
-% \begin{macrocode}
-\newcommand*{\Call@BeforeClearDocument}{%
- \let\BeforeClearDocument\@firstofone
- \ifx\AtVeryEnd@BeforeClearDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `BeforeClearDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `BeforeClearDocument'}%
- \AtVeryEnd@BeforeClearDocumentHook
- \fi
- \global\let\AtVeryEnd@BeforeClearDocumentHook\@undefined
- \global\let\Call@BeforeClearDocument\relax
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Call@AfterLastShipout}
-% \begin{macrocode}
-\newcommand*{\Call@AfterLastShipout}{%
- \let\AfterLastShipout\@firstofone
- \ifx\AtVeryEnd@AfterLastShipoutHook\@empty
- \PackageInfo{atveryend}{Empty hook `AfterLastShipout'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AfterLastShipout'}%
- \AtVeryEnd@AfterLastShipoutHook
- \fi
- \global\let\AtVeryEnd@AfterLastShipoutHook\@undefined
- \global\let\Call@AfterLastShipout\relax
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Call@AtVeryEndDocument}
-% \begin{macrocode}
-\newcommand*{\Call@AtVeryEndDocument}{%
- \let\AtVeryEndDocument\@firstofone
- \ifx\AtVeryEnd@AtVeryEndDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryEndDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryEndDocument'}%
- \AtVeryEnd@AtVeryEndDocumentHook
- \fi
- \global\let\AtVeryEnd@AtVeryEndDocumentHook\@undefined
- \global\let\Call@AtVeryEndDocument\relax
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Call@AtEndAfterFileList}
-% \begin{macrocode}
-\newcommand*{\Call@AtEndAfterFileList}{%
- \Call@AtVeryEndDocument
- \let\AtEndAfterFileList\@firstofone
- \ifx\AtVeryEnd@AtEndAfterFileListHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtEndAfterFileList'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtEndAfterFileList'}%
- \AtVeryEnd@AtEndAfterFileListHook
- \fi
- \global\let\AtVeryEnd@AtEndAfterFileListHook\@undefined
- \global\let\Call@AtEndAfterFileList\relax
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Call@AtVeryVeryEnd}
-% \begin{macrocode}
-\newcommand*{\Call@AtVeryVeryEnd}{%
- \Call@AtEndAfterFileList
- \let\AtVeryVeryEnd\@firstofone
- \ifx\AtVeryEnd@AtVeryVeryEndHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryVeryEnd'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryVeryEnd'}%
- \AtVeryEnd@AtVeryVeryEndHook
- \fi
- \global\let\AtVeryEnd@AtVeryVeryEndHook\@undefined
- \global\let\Call@AtVeryVeryEnd\relax
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Redefining \cs{enddocument}}
-%
-% This approach looks for known versions of \cs{enddocument}
-% and redefines it. Class \xclass{seminar}
-% and package \xpackage{slidesec} are not checked, because
-% there would be too much combinations to check.
-%
-% \subsubsection{\LaTeX\ kernel}
-%
-% \begin{macro}{\AtVeryEnd@test@standard}
-% \begin{macrocode}
-\def\AtVeryEnd@test@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font@submax >\fontsubfuzz\relax
- \@font@warning{Size substitutions with differences\MessageBreak
- up to \font@submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if@filesw
- \ifx \@multiplelabels \relax
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@standard}
-% \begin{macrocode}
-\def\AtVeryEnd@enddocument@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call@BeforeClearDocument
- \clearpage
- \Call@AfterLastShipout
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \Call@AtVeryEndDocument
- \@dofilelist
- \Call@AtEndAfterFileList
- \ifdim \font@submax >\fontsubfuzz\relax
- \@font@warning{Size substitutions with differences\MessageBreak
- up to \font@submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if@filesw
- \ifx \@multiplelabels \relax
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call@AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{\LaTeX\ kernel 2011/06/27}
-%
-% The \hologo{LaTeX2e} release 2011/06/27 has changed \cs{enddocument}
-% (\cs{input} is replaced by \cs{@@input}).
-% \begin{macro}{\AtVeryEnd@test@standard20110627}
-% \begin{macrocode}
-\expandafter\def\csname AtVeryEnd@test@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font@submax >\fontsubfuzz\relax
- \@font@warning{Size substitutions with differences\MessageBreak
- up to \font@submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if@filesw
- \ifx \@multiplelabels \relax
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@standard20110627}
-% \begin{macrocode}
-\expandafter\def\csname AtVeryEnd@enddocument@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call@BeforeClearDocument
- \clearpage
- \Call@AfterLastShipout
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \Call@AtVeryEndDocument
- \@dofilelist
- \Call@AtEndAfterFileList
- \ifdim \font@submax >\fontsubfuzz\relax
- \@font@warning{Size substitutions with differences\MessageBreak
- up to \font@submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if@filesw
- \ifx \@multiplelabels \relax
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call@AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Package \xpackage{booklet}, file \xpackage{2up.tex}}
-%
-% \begin{macro}{\AtVeryEnd@test@booklet}
-% \begin{macrocode}
-\expandafter\def\expandafter\AtVeryEnd@test@booklet\expandafter{%
- \expandafter\twoupclearpage
- \AtVeryEnd@test@standard
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@booklet}
-% \begin{macrocode}
-\expandafter\def\expandafter\AtVeryEnd@enddocument@booklet\expandafter{%
- \expandafter\twoclearpage
- \AtVeryEnd@enddocument@standard
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xclass{dinbrief}}
-%
-% \begin{macro}{\AtVeryEnd@test@dinbrief}
-% \begin{macrocode}
-\def\AtVeryEnd@test@dinbrief{%
- \@checkend{document} %
- \newpage
- \begingroup
- \if@filesw
- \ifnum\c@labelgen>0 %
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname@lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@dinbrief}
-% \begin{macrocode}
-\def\AtVeryEnd@enddocument@dinbrief{%
- \@checkend{document}%
- \Call@BeforeClearDocument
- \newpage
- \Call@AfterLastShipout
- \begingroup
- \if@filesw
- \ifnum\c@labelgen>\z@
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname@lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \Call@AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call@AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call@AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xclass{combine}}
-%
-% \begin{macro}{\AtVeryEnd@test@combine}
-% \begin{macrocode}
-\def\AtVeryEnd@test@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter \input\c@lmainauxfile %% change here
- \fi
- \c@lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@combine}
-% \begin{macrocode}
-\def\AtVeryEnd@enddocument@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \Call@BeforeClearDocument
- \clearpage
- \Call@AfterLastShipout
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl@bel\@testdef
- \@tempswafalse
- \makeatletter \input\c@lmainauxfile %% change here
- \fi
- \Call@AtVeryEndDocument
- \c@lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \Call@AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\AtVeryEnd@test@c@lenddoca}
-% \begin{macrocode}
-\long\def\AtVeryEnd@test@c@lenddoca{%
- \@dofilelist
- \ifdim\font@submax>\fontsubfuzz\relax
- \@font@warning{%
- Size substitutions with differences\MessageBreak
- up to \font@submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if@filesw
- \ifx\@multiplelabels\relax
- \if@tempswa
- \@latex@warning@no@line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\c@lenddoca}
-% \begin{macrocode}
-\ifx\AtVeryEnd@c@lenddoca\c@lenddoca
- \def\c@lenddoca{%
- \@dofilelist
- \Call@AtEndAfterFileList
- \ifdim\font@submax>\fontsubfuzz\relax
- \@font@warning{%
- Size substitutions with differences\MessageBreak
- up to \font@submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if@filesw
- \ifx\@multiplelabels\relax
- \if@tempswa
- \@latex@warning@no@line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- }%
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xpackage{jpsj2}}
-%
-% \begin{macro}{\AtVeryEnd@test@jpsj}
-% \begin{macrocode}
-\def\AtVeryEnd@test@jpsj{%
- \if@lastpagebalancing
- \global\let\@outputdblcol=\balancing@outputdblcol
- \fi
- \@checkend{document}%
- \clearpage
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if@tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@enddocument@jpsj}
-% \begin{macrocode}
-\def\AtVeryEnd@enddocument@jpsj{%
- \if@lastpagebalancing
- \global\let\@outputdblcol=\balancing@outputdblcol
- \fi
- \@checkend{document}%
- \Call@BeforeClearDocument
- \clearpage
- \Call@AfterLastShipout
- \begingroup
- \if@filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if@tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \Call@AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call@AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call@AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Testing and redefining}
-%
-% \begin{macro}{\AtVeryEnd@Test}
-% \begin{macrocode}
-\def\AtVeryEnd@Test#1#2{%
- \expandafter\ifx\csname AtVeryEnd@test@#2\endcsname#1%
- \expandafter\let\expandafter#1%
- \csname AtVeryEnd@enddocument@#2\endcsname
- \begingroup
- \let\on@line\@empty
- \PackageInfo{atveryend}{%
- \string#1 detected (#2)%
- }%
- \endgroup
- \expandafter\AtVeryEnd@SkipToNil
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd@SkipToNil}
-% \begin{macrocode}
-\def\AtVeryEnd@SkipToNil#1\@nil{}
+\newcommand\AtVeryVeryEnd {\AddToHook{enddocument/end}}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\AtVeryEnd@RedefEndDocument}
+% \begin{macro}{\BeforeClearDocument}
% \begin{macrocode}
-\def\AtVeryEnd@RedefEndDocument#1{%
- \ifx#1\@undefined
- \else
- \AtVeryEnd@Test#1{standard20110627}%
- \AtVeryEnd@Test#1{standard}%
- \AtVeryEnd@Test#1{booklet}%
- \AtVeryEnd@Test#1{dinbrief}%
- \AtVeryEnd@Test#1{combine}%
- \AtVeryEnd@Test#1{jpsj}%
- \AtVeryEnd@SkipToNil
- \@nil
- \fi
-}
+\newcommand\BeforeClearDocument{\AddToHook{enddocument}}
% \end{macrocode}
% \end{macro}
-% \begin{macrocode}
-\AtVeryEnd@RedefEndDocument\enddocument
-\AtVeryEnd@RedefEndDocument\AP@enddocument % afterpage.sty
-\AtVeryEnd@RedefEndDocument\hyper@back@cite@enddocument % htx-bc.sty
-\AtVeryEnd@RedefEndDocument\hyper@enddocument % hyper.sty
-\AtVeryEnd@RedefEndDocument\hyper@fn@enddocument % hyper.sty
-\AtVeryEnd@RedefEndDocument\cweb@save@enddocument % cweb.cls
-\AtVeryEnd@RedefEndDocument\prev@enddocument % flushend.sty
-\AtVeryEnd@RedefEndDocument\endorigdocument % gaceta.cls
-\AtVeryEnd@RedefEndDocument\keependdoc % aguplus.sty
-\AtVeryEnd@RedefEndDocument\EMenddocument % t-angles.sty
-\AtVeryEnd@RedefEndDocument\docmute@enddocument % docmute.sty
-\AtVeryEnd@RedefEndDocument\a@enddocument % alatex.sty
-\AtVeryEnd@RedefEndDocument\enddocumentasusual % frenchle.sty
-\AtVeryEnd@RedefEndDocument\old@enddocument % uwthesis.cls
-% \end{macrocode}
-%
-% \subsection{Hack into \cs{enddocument}}
-%
-% \begin{macrocode}
-\def\AtVeryEnd@document{document}%
-\def\AtVeryEnd@RedefCheckEnd{%
- \expandafter\def\expandafter\@checkend
- \expandafter##\expandafter1\expandafter{%
- \@checkend{##1}%
- \def\AtVeryEnd@temp{##1}%
- \ifx\AtVeryEnd@temp\AtVeryEnd@document
- \let\AtVeryEnd@OrgClearpage\clearpage
- \def\clearpage{%
- \let\clearpage\AtVeryEnd@OrgClearpage
- \Call@BeforeClearDocument
- \clearpage
- \Call@AfterLastShipout
- }%
- \fi
- }%
- \aftergroup\AtVeryEnd@RedefCheckEnd
-}%
-\AtBeginDocument{%
- \AtEndDocument{%
- \AtVeryEnd@RedefCheckEnd
- }%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\AtEndDocument{%
- \@ifundefined{@dofilelist}{%
- \gdef\@dofilelist{%
- \Call@AtVeryEndDocument
- \Call@AtEndAfterFileList
- }%
- }{%
- \begingroup
- \toks@\expandafter{\@dofilelist}%
- \xdef\@dofilelist{%
- \noexpand\Call@AtVeryEndDocument
- \the\toks@
- \noexpand\Call@AtEndAfterFileList
- }%
- \endgroup
- }%
-}
-% \end{macrocode}
-%
-% \subsection{Using hooks of other packages}
-%
-% \subsubsection{Package \xpackage{scrlfile}}
-%
-% \begin{macrocode}
-\AtBeginDocument{%
- \@ifpackageloaded{scrlfile}{%
- \AtVeryEnd@ifundefined{BeforeClosingMainAux}{}{%
- \BeforeClosingMainAux{\Call@AfterLastShipout}%
- }%
- \AtVeryEnd@ifundefined{AfterReadingMainAux}{}{%
- \AfterReadingMainAux{\Call@AtVeryEndDocument}%
- }%
- }{}%
-% \end{macrocode}
-%
-% \subsubsection{Package \xpackage{etoolbox}}
-%
-% \begin{macrocode}
- \@ifpackageloaded{etoolbox}{%
- \AtVeryEnd@ifundefined{AfterEndDocument}{}{%
- \AfterEndDocument{\Call@AtVeryEndDocument}%
- }%
- }{}%
-% \end{macrocode}
-% \begin{macrocode}
-}
-% \end{macrocode}
-%
-% \subsection{Class \xclass{letter}}
-%
-% The class \xclass{letter} and some similar classes
-% insert material (\cs{@startlabels}) at the end of the document.
-% However, this method violates
-% a precondition of this package that the \cs{clearpage} in
-% \cs{enddocument} is the final call with no material at
-% later times. Therefore we move the label making
-% from the \xext{aux} file to \cs{AtEndDocument}.
-% \begin{macrocode}
-\def\AtVeryEnd@temp{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- \if@filesw
- \immediate\write\@mainaux{\string\@startlabels}%
- \fi
- }%
- \AtEndDocument{%
- \if@filesw
- \immediate\write\@mainaux{\string\clearpage}%
- \fi
- }%
-}
-\ifx\makelabels\AtVeryEnd@temp
-\else
- \expandafter\AtVeryEnd@AtEnd
-\fi%
-\let\AtVeryEnd@PatchLetter=N%
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname endletter\endcsname\relax
-\else
- \long\def\AtVeryEnd@TestEndLetter#1\@auxout#2#3\AtVeryEnd@Nil{%
- \def\AtVeryEnd@temp{#2}%
- \ifx\AtVeryEnd@temp\@empty
- \else
- \@onelevel@sanitize\AtVeryEnd@temp
- \edef\AtVeryEnd@StringMlabel{%
- \string\string
- \string\@mlabel
- \expandafter\@gobble\string\{%
- }%
- \def\AtVeryEnd@CatchFirst##1##2##3##4##5##6##7##8{%
- ##1##2##3##4##5##6##7##8\AtVeryEnd@CatchSecond
- }%
- \def\AtVeryEnd@CatchSecond##1##2##3##4##5##6##7##8##9\@nil{%
- ##1##2##3##4##5##6##7##8%
- }%
- \edef\AtVeryEnd@temp{%
- \expandafter\AtVeryEnd@CatchFirst\AtVeryEnd@temp
- {}{}{}{}{}{}{}{}%
- {}{}{}{}{}{}{}{}%
- \@nil
- }%
- \ifx\AtVeryEnd@temp\AtVeryEnd@StringMlabel
- \expandafter\def\expandafter\endletter\expandafter{%
- \endletter
- \begingroup
- \let\\=\relax
- \let\protect\@unexpandable@protect
- \let\@mlabel=\relax
- \edef\x{\endgroup
- \noexpand\AtEndDocument{%
- \@gobble#2%
- }%
- }%
- \x
- }%
- \let\AtVeryEnd@PatchLetter=Y%
- \fi
- \fi
- }%
- \expandafter\AtVeryEnd@TestEndLetter\endletter
- \@auxout{}\AtVeryEnd@Nil
-\fi
-\ifx\AtVeryEnd@PatchLetter Y%
- \begingroup
- \let\on@line\@empty
- \PackageInfo{atveryend}{%
- \@backslashchar makelabels detected. %
- Moving labels\MessageBreak
- from `.aux' file to \@backslashchar AtEndDocument%
- }%
- \endgroup
- \def\makelabels{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- }%
- }%
- \AtEndDocument{%
- \AtVeryEnd@ifundefined{@startlabels}{%
- }{%
- \clearpage
- \@startlabels
- }%
- }%
- \AfterLastShipout{%
- \let\@startlabels\relax
- \let\@mlabel\@gobbletwo
- }%
-\else
- \PackageWarningNoLine{atveryend}{%
- \@backslashchar makelabels detected, but labels cannot\MessageBreak
- be moved to \@backslashchar AtEndDocument, because\MessageBreak
- \@backslashchar endletter is not in expected form%
- }%
-\fi
-% \end{macrocode}
%
% \begin{macrocode}
-\AtVeryEnd@AtEnd%
%</package>
% \end{macrocode}
-%% \section{Installation}
+% \section{Installation}
%
% \subsection{Download}
%
@@ -1175,28 +274,7 @@ and the derived files
% \item[\CTAN{macros/latex/contrib/atveryend/atveryend.dtx}] The source file.
% \item[\CTAN{macros/latex/contrib/atveryend/atveryend.pdf}] Documentation.
% \end{description}
-%
-%
-% \paragraph{Bundle.} All the packages of the bundle `atveryend'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/atveryend.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{atveryend.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip atveryend.tds.zip -d ~/texmf|
-% \end{quote}
-%
+%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -1332,51 +410,6 @@ and the derived files
% suggestions and comments.
% \end{description}
%
-% \begin{thebibliography}{9}
-%
-% \bibitem{clsguide}
-% The \LaTeX3 Project:
-% \textit{\LaTeX2e\ for class and package writers}
-% 2006/02/15;
-% \CTANpkg{clsguide}.
-%
-% \bibitem{endfloat}
-% James Darrell McCauley, Jeff Goldberg:
-% \textit{The \xpackage{endfloat} package};
-% 1995/10/11 v2.4i;
-% \CTANpkg{endfloat}.
-%
-% \bibitem{etoolbox}
-% Philipp Lehmann:
-% \textit{The \xpackage{etoolbox} package};
-% 2009/08/06 v1.8;
-% \CTANpkg{etoolbox}.
-%
-% \bibitem{hyperref}
-% Sebastian Rahtz, Heiko Oberdiek:
-% \textit{The \xpackage{hyperref} package};
-% 2009/12/05 v6.79l;
-% \CTANpkg{hyperref}.
-%
-% \bibitem{koma}
-% Markus Kohm:
-% \textit{KOMA-Script};
-% 2009/07/24 v3.04a;
-% \url{https://www.komascript.de/}.
-%
-% \bibitem{lastpage}
-% Jeff Goldberg:
-% \textit{The \xpackage{lastpage} package};
-% 1994/07/20 v0.1b;
-% \CTANpkg{lastpage}.
-%
-% \bibitem{revtex}
-% APS, AIP, Arthur Orgawa;
-% ReVTeX 4.1;
-% 2009/10/13 v4.1;
-% \url{http://authors.aps.org/revtex4/}.
-%
-% \end{thebibliography}
%
% \begin{History}
% \begin{Version}{2009/12/06 v1.0}
@@ -1434,6 +467,10 @@ and the derived files
% \begin{Version}{2019-12-11 v1.11}
% \item Updated
% \end{Version}
+%
+% \begin{Version}{2024-08-06 v1.12}
+% \item Switch to kernel hooks
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/atveryend/atveryend.pdf b/macros/latex/contrib/atveryend/atveryend.pdf
index 04b0fcc205..ebd947940d 100644
--- a/macros/latex/contrib/atveryend/atveryend.pdf
+++ b/macros/latex/contrib/atveryend/atveryend.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/italian/README.txt b/macros/latex/contrib/babel-contrib/italian/README.txt
index 4f00b6e963..ccb363b3ee 100644
--- a/macros/latex/contrib/babel-contrib/italian/README.txt
+++ b/macros/latex/contrib/babel-contrib/italian/README.txt
@@ -1,5 +1,6 @@
-The italian.dtx file has version number 1.5.00 dated 2024-01-03.
-It is and update of a series fo files starting with the first one in 1990
+The italian.dtx file has version number 1.5.01 dated 2024-10-10.
+It is and update of a series of files starting with the first one
+in 1990
Copyright (C) 1990-2024 Claudio Beccari
Maintainer Claudio Beccari
Contact: claudio.beccari at gmail.com
@@ -10,7 +11,7 @@ you obtain both the documentation italian.pdf and the language
description file italian.ldf.
Description
-This file contain the necessary and supplementary data for
+This file contains the necessary and supplementary data for
typesetting documents in Italian with babel as the language
manager.
It defines the infix words, the date in various formats.
@@ -26,7 +27,7 @@ responsibility to use the decimal point in any fractional
numerical string.
Another user command activates or deactivates some commands
to supply a minimum of the performance that is fully provided
-by the siunitx and similar packages. The file allows using
+by the siunitx package and similar ones. The file allows using
babel also when a document is typeset with XeLaTeX or LuaLaTeX.
The documentation that is provided by running LaTeX on the
diff --git a/macros/latex/contrib/babel-contrib/italian/italian.dtx b/macros/latex/contrib/babel-contrib/italian/italian.dtx
index e21225605b..dceeafa281 100644
--- a/macros/latex/contrib/babel-contrib/italian/italian.dtx
+++ b/macros/latex/contrib/babel-contrib/italian/italian.dtx
@@ -60,7 +60,7 @@ This file is a self unpacking one.
%</driver>
%<code>\ProvidesLanguage{italian}
%<*code>
- [2024/01/03 v.1.5.00 Italian support for the babel system]
+ [2024/10/10 v.1.5.01 Italian support for the babel system]
%</code>
%%
%% Please report errors to: claudio dot beccari at gmail dot com
@@ -99,7 +99,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
%</driver>
%\fi
%
-% \CheckSum{761}
+% \CheckSum{762}
%
% \changes{italian-0.99}{1990/07/11}{First version, from english.doc}
% \changes{italian-1.0}{1991/04/23}{Modified for babel 3.0}
@@ -183,6 +183,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% group}
% \changes{italian 1.4.08}{2024-01-03}{Modified intelligent
% comma}
+% \changes{itlian 1.5.01}{2024-10-10}{Modified intelligent comma so as to eliminate the |\ ?| macro}
%
% \section{The Italian language}
% \textbf{\color{red}Important notice}: This language
@@ -364,7 +365,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% similar functionality, for example |icomma|, |ncccomma|
% and |decimalcomma|; |icomma|, apparently is not in
% conflict with |dcolumn|, but requires a space after the
-% comma all the times it plays the r\^ole of a punctuation
+% comma all the times it plays the rôle of a punctuation
% mark; |ncccomma| and |decimal comma| check if the next
% token is a digit, but they repeat up to ten tests every
% time they meet a comma, irrespective from what it is
@@ -396,7 +397,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% texts contain some math, the |\IntelligentComma| must be
% deactivated; an \texttt{english} environment (not available
% in |babel| but available in |polyglossia|, although without
-% the functionalities connected with the English math
+% the functionalities connected with English math
% typesetting) is defined so that, besides locally setting
% the English language, issues a |\NoIntelligentComma|
% command; nevertheless users are still responsible to use
@@ -1150,8 +1151,8 @@ email: \texttt{claudio.beccari at gmail.com}}}
% document, but they will be possibly defined only at the end of
% the preamble when it will be known if the |dcolumn| package
% has been loaded. We do the same action if packages |icomma|.
-% |ncccomma| or |decimalcomma| have been loaded, since this
-% assumes that the user wants to use their functionality, not
+% |ncccomma| or |decimalcomma| have been loaded, since it is
+% assumed that the user wants to use their functionality, not
% the functionality defined in this file.
%
% We need a command to set the comma as an active character only
@@ -1202,18 +1203,20 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \changes{italian-1.3a}{2013/10/02}{Corrected the bug of the
% intelligent comma when used within the AMS alignment
% environments}
-%
-% Math comma activation is done only after the preamble has been
-% completed, that is after the |\begin{document}| statement has
-% been completely executed. Now we must give a definition to the
-% active comma.
+% \changes{italian 1.5.01}{2014/10/10}{Eliminated the |\ ?| macro}
+
+% Math comma activation may be done only after the preamble has
+% been completed, that is after the |\begin{document}| statement
+% has been completely executed. Now we must give a definition to
+% the active comma.
% \begin{macrocode}
-{\catcode`,\active \gdef,{\futurelet\tempB\?}}
+{\catcode`,\active \protected\gdef,%
+ {\futurelet\tempB\it@tempcomma}}
% \end{macrocode}
% In facts the above macro lets a temporary control sequence
% |\tempB| be an alias of the token that immediately follows
% |\?|; |\tempB| then behaves as an implicit character if that
-% token is a single character, even a space (category cod~10)
+% token is a single token, even a space (category code~10)
% or a closed brace {category code~3}, or an alias of a generic
% control sequence otherwise.
%
@@ -1239,9 +1242,11 @@ email: \texttt{claudio.beccari at gmail.com}}}
% by an implicit digit, by a macro defined to be a digit, by a
% macro that is not defined to be a digit, by a special
% character (for example a closed brace, an alignment command,
-% et cetera); therefore it is necessary to distinguish all these
-% situations; remember that an implicit digit cannot be used as a real digit, and a macro gets expanded when used within any
-% |\if| clause, except |\ifx|, or is prefixed with |\noexpand|.
+% and so on); therefore it is necessary to distinguish all these
+% situations; remember that an implicit digit cannot be used as
+% a real digit, and a macro gets expanded when used within any
+% |\if| clause, except |\ifx|, or if it is prefixed with
+% |\noexpand|.
% The tests that are going to be made hereafter are therefore
% of different kinds, according to this scheme:
% \begin{itemize}
@@ -1258,7 +1263,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \item
% we have to check if the next token is |bar| or |\overline|
% (or a |\periodo|, a new command added by this language
-% description file)); we assume that these commands are used
+% description file); we assume that these commands are used
% to mark the digits of the periodic component of the
% fractional part of a rational number.
% May be this assumption is not always correct, but it should
@@ -1276,9 +1281,9 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \item
% if that |\tempB| is a macro, we have to test its
% nature of a digit by testing if it represents one of the
-% ten digits; of course it we strongly discourage to let
-% some control sequences be an aliase of one or more
-% digits;
+% ten digits; of course we strongly discourage to let
+% some control sequences be an alias of one or more
+% digits;
% \item
% in all other cases, as it has category code~12, it is an
% analphabetic character.
@@ -1287,7 +1292,8 @@ email: \texttt{claudio.beccari at gmail.com}}}
% otherwise the |\tempB| is a special character or a command;
% \item
% a test is made to see if it is a macro; in this case we
-% check if has been defined to be a digit,
+% check if has been defined to be a digit (discouraged, as
+% remarked above);
% \item
% if it is not a macro, it must be some other kind of token
% for example another special character.
@@ -1312,7 +1318,8 @@ email: \texttt{claudio.beccari at gmail.com}}}
% balanced brace comma group |{,}| but we discourage it for
% new documents; in any case such a group works fine if the
% intelligent comma is not active, for example because a
-% stretch of text in a different language is being typeset.
+% stretch of text in a different language (except English)
+% is being typeset.
%
% So first we test if the comma must act intelligently;
% we have to perform delicate tests; as a last resource this
@@ -1328,6 +1335,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% the sense that they don't leave any trace after execution:
% the third argument code is executed if the test is true,
% and the fourth one if it is false.
+%
% Notice that the tests with macros |\periodo|, |\bar|, and
% |\overline| are used to verify if the fractional part after
% the comma sets a line over its periodic component; users
@@ -1343,18 +1351,20 @@ email: \texttt{claudio.beccari at gmail.com}}}
% contain the six digits in the proper order, and use such
% macros instead of the digit string, saving themselves
% possible typos; everybody knows that typos are not allowed
-% in math. But these macros should be used as arguments of
-% |periodo|, otherwise the decimal mark test fails.
+% in math. In any case these macros should be used as
+% arguments of |periodo|, otherwise the decimal mark test
+% fails: i.e., don't enter |$1/7=0,\oneoverseven$| but
+% |$1/7=0,\periodo{\oneoverseven}$|.
%
-% The |ifdigit| macros that is defined hereafter is a test
+% The |\ifdigit| macros that is defined hereafter is a test
% made by using a \LaTeX\ kernel internal procedure that
% compares its only argument with one of the ten digits at a
% time; if the argument is a digit choses the decimal comma,
% otherwise the punctuation one; the test is similar but not
-% identical to the one performed by the |nccomma| package; on
-% the opposite the test against a space is performed with a
-% test similar but not identical to the one done by the
-% |icomma| package; all other tests are specific of this
+% identical to the one performed by the |ncccomma| package;
+% on the opposite the test against a space is performed with
+% a test similar but not identical to the one done by the
+% |icomma| package; all other tests are specific to this
% package.
% \begin{macrocode}
@@ -1365,7 +1375,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
\if\@Cifra #1\relax\def\tempC{\virgoladecimale}%
\@break@tfor\fi}\tempC}
-\DeclareRobustCommand*\?{%
+\DeclareRobustCommand*\it@tempcomma{%
\ifx\tempB\@sptoken
\expandafter\@firstoftwo
\else
@@ -1414,21 +1424,21 @@ email: \texttt{claudio.beccari at gmail.com}}}
%
% In particular this macro starts testing if it is an alias for
% a space token (category 10); then tests if it is an alias
-% of |\periodo|, or |\bar| or |\overline| and if it is the
-% decimal separator should be a decimal comma (see below);
+% of |\periodo|, or |\bar| or |\overline| and if it is, the
+% decimal mark should be a decimal comma (see below);
% otherwise other tests are carried on. This macro then tests if
% the argument has category code~12, i.e.\ “other character”,
% not a letter, nor other special signs, as, for example,~|&|.
% In case the category code is not~12, the comma must act as a
% punctuation mark; but if its category cose is~12, it might be
-% a digit, or another character, for example an asterisk; so we
-% have to test its digit nature; the simplest way that we found
-% to test if a token is a digit, is to test if its ASCII code
-% lays within the range delimited by the ASCII codes
-% of~`0' (zero) and~`9'.
+% a digit, or another character of category code~12, for example
+% an asterisk; so we have to test its digit nature; the simplest
+% way that we found to test if a token is a digit, is to test if
+% its char code lays within the range delimited by the char
+% codes of~`0' (zero) and~`9'.
%
% The typesetting engines give the back tick, |`|, the property
-% that when a number is required, it yields the ASCII code if
+% that when a number is required, it yields the char code if
% the following token is an explicit character or a macro
% argument number; this is why we can't use the temporary
% implicit token we just tested, but we must examine the first
@@ -1455,10 +1465,10 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \end{macrocode}
% The service macros |\ifcsundef|, |\ifnumless|, and
% |\ifnumgreater| are provided by the |etoolbox| package, that
-% shall be read at most at the end of the |babel| package
+% shall be input at most at the end of the |babel| package
% processing; therefore we must delay the code at “end preamble”
% time, since only at that time it will be known if the main
-% language is Italian, or any other one.
+% language is Italian, or another one.
%
% This intelligent comma definition is pretty intelligent, but
% it requires some kind of information from the context; this
@@ -1517,7 +1527,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
%
% In the following sections we describe some features that
% nowadays should be considered totally obsolete. We speak about
-% OT! encoded fonts (who uses them today?); about the
+% OT1 encoded fonts (who uses them today?); about the
% limitations of the Italian keyboard, that with modern
% operating systems may be overridden easily; with French double
% quotes, that are being used also in Italian, although without
@@ -1526,7 +1536,8 @@ email: \texttt{claudio.beccari at gmail.com}}}
% description file initial versions are more than 30 years old,
% and in this long stretch of time many legacy documents were
% created; the following sections describe what had to be done
-% years ago and the information may be useful to upgrade those documents
+% years ago and the information may be useful to upgrade those
+% documents
%
% \subsection*{Accents}\label{s:itkbd}
% Most of the other language description files introduce a
@@ -1543,19 +1554,21 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \`i, \`o, \`u, bot no \emph{uppercase} accented vowels are
% directly available from the keyboard; the keyboard lacks
% also the tie |~| (tilde) key, while the curly braces require
-% pressing three keys simultaneously.
+% pressing three keys simultaneously. On the opposite the
+% Italian keyboard has a key for the ‘ç’ letter that is not used
+% in Italian.
%
% The best solution Italians have found so far is to use a smart
-% editor that accepts shorthand definitions such that, for
+% editor that accepts shorthand definitions such that: for
% example, by striking |"(| one gets directly |{| on the screen
-% and the same sign is saved into the \file{.tex} file; the same
+% and the same sign is saved into the \file{.tex} file. The same
% smart editor should be capable of translating the accented
% characters into the standard \TeX\ sequences when writing a
% file to disk (for the sake of file portability), and to
% transform the standard \TeX\ sequences into the corresponding
-% signs when loading a \file{.tex} file from disk to memory.
-% Such smart editors do exist and can be downloaded from the
-% \textsc{ctan} archives.
+% signs when loading a \file{.tex} file from disk to working
+% memory. Some such smart editors do exist and can be downloaded
+% from the \textsc{ctan} archives.
%
% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of
% \cs{add@acc} since its functionality has been introduced
@@ -1578,10 +1591,10 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \subsection*{\emph{Caporali} or French double quotes}
% Although the T1 font encoding ligatures solve the problem,
% there are some circumstances where even the T1 font encoding
-% cannot be used, either because the authors\slash typesetters
-% want to use the old deprecated OT1 encoding, or because they
-% use a font set that does not comply completely with the T1
-% font encoding; some virtual fonts, for example, are supposed
+% cannot be used, either because users prefer employing the old
+% deprecated OT1 encoding, or because they selected a font set
+% that does not completely comply with the T1 font encoding;
+% some virtual fonts, for example, are supposed
% to implement the double Cork font encoding but actually they
% miss some glyphs; one such virtual font set was given by the
% \texttt{ae} virtual fonts, because they were supposed to
@@ -1589,8 +1602,9 @@ email: \texttt{claudio.beccari at gmail.com}}}
% that mapped the OT1 encoded |CM| fonts to a T1 font scheme;
% Such fonts are not distributed any more with any \TeX\ system
% installation, therefore if some vintage source file uses them
-% the correction is to replace them by the vector Latin Modern
-% ones.
+% the correction is to replace them by the Latin Modern ones,
+% that are vector fonts and cannot be used with the plain
+% |latex| engine.
%
% The type~1 PostScript version of the |CM| fonts do exist,
% therefore one believes to be able of using them with pdfLaTeX;
@@ -1599,9 +1613,9 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \emph{caporali}) do not exist in any OT1 encoded \texttt{cm}
% Latin font, their glyphs must be substituted with something
% else that fakes them. Again the best solution is to correct
-% the preamble of such vintage source file by replacing the call
-% to those old not available fonts with the vector Latin Modern
-% fonts.
+% the preamble of such vintage source files by replacing the
+% call to those old not available fonts with the vector Latin
+% Modern fonts.
%
% \changes{italian-1.2q}{2005/02/05}{Redefined the caporali
% machinery so as to avoid incompatibilities with the slides
@@ -1681,7 +1695,7 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \end{macrocode}
% Such macros make available the internal commands |\it@ocap|
% and |\it@ccap|; they become available when users specify in
-% their preambles either the |\LteSymbCaporali| or in a personal
+% their preambles either the |\LtxSymbCaporali| or in a personal
% \texttt{.sty} file the |\T@unoCaporali| command. The former
% gets the real glyphs from the \texttt{lasy} font and deletes
% any space after the open guillemets and before the closed
@@ -1718,9 +1732,11 @@ email: \texttt{claudio.beccari at gmail.com}}}
% \begin{macrocode}
\def\CaporaliFrom#1#2#3#4{%
\DeclareFontEncoding{#1}{}{}%
+%
\DeclareTextCommand{\it@ocap}{T1}{%
{\fontencoding{#1}\fontfamily{#2}%
\selectfont\char#3\ignorespaces}}%
+%
\DeclareTextCommand{\it@ccap}{T1}{\@kilglue
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
}
diff --git a/macros/latex/contrib/babel-contrib/italian/italian.pdf b/macros/latex/contrib/babel-contrib/italian/italian.pdf
index d9cd207cdd..68e2a125ee 100644
--- a/macros/latex/contrib/babel-contrib/italian/italian.pdf
+++ b/macros/latex/contrib/babel-contrib/italian/italian.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md
new file mode 100644
index 0000000000..c4b213ef28
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md
@@ -0,0 +1,5 @@
+# `beamertheme-edmaths` Beamer Theme
+
+A beamer presentation theme which follows the [university's brand guidelines](https://communications-marketing.ed.ac.uk/marketing/brand). See also the [_documentation_](https://foggalong.github.io/edinburgh-math-latex/beamertheme-edmaths-docs.pdf) and a [_compiled example_](https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf). To use, place the files and store them either with your .tex file(s) or in any directory that's findable by LaTeX (e.g. `$TEXINPUTS`).
+
+For more information on the wider project, including the report and thesis stylesheet, [see GitHub](https://github.com/Foggalong/edinburgh-math-latex). The beamer theme [beamerthemeedmaths.sty](beamerthemeedmaths.sty) is provided under the [LaTeX Project Public License v1.3c](https://choosealicense.com/licenses/lppl-1.3c/) (LPPL) while the example [example-presentation.tex](example-presentation.tex) is provided under the [BSD Zero Clause License](https://choosealicense.com/licenses/0bsd/) (0BSD).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty
new file mode 100644
index 0000000000..ded67b3d59
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty
@@ -0,0 +1,167 @@
+%% Package `edmaths' v0.99
+%% File beamerthemeedmaths.sty
+%% Copyright 2024 Josh Fogg
+%%
+%% beamerthemeedmaths.sty is a LaTeX style file for typesetting presentations
+%% for the School of Mathematics at the University of Edinburgh, part of the
+%% more general `edmaths' package. See README.md for usage instructions.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version.
+%%
+%% The latest version of this license is in http://latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained' and the current
+%% maintainer of this work is Josh Fogg. Originally written by Saturnino Luz
+%% for the Usher Institute and made generic to UoE by Ben Brown.
+%%
+%% This work consists of the files beamerthemeedmaths.sty, but in addition
+%% requires images `white-tied-in' and `edinburgh-logo' to compile. The images
+%% distributed with this work in the `edmaths' package are registered trademarks;
+%% they are not to be used as part of derived or independent works without the
+%% permission of The University of Edinburgh. This does not affect use as part
+%% of compiled LaTeX documents using this style for the university.
+
+\ProvidesPackage{beamerthemeedmaths}[2024-08-30 Edinburgh maths beamer theme v0.99]
+\RequirePackage{amsfonts,graphicx,lmodern,mathptmx}
+
+% Colour definitions to choose between
+\definecolor{UoEblue}{RGB}{0,50,95} % #00325F
+\definecolor{UoEcyan}{RGB}{69, 126, 129} % #457E81
+\definecolor{UoEgreen}{RGB}{156, 154, 0} % #9C9A00
+\definecolor{UoEgray}{RGB}{.392, .329, .329} % VARIES
+\definecolor{UoEorange}{RGB}{204, 89, 17} % #CC5911
+
+% Define colour command for use through rest of theme
+\newcommand{\beamer@UoE@color}{UoEblue}
+\DeclareOptionBeamer{colour}{\def\beamer@UoE@color{#1}}
+
+% Change title height to fit styling
+\newdimen\beamer@UoE@titleheight
+\beamer@UoE@titleheight=10ex
+\DeclareOptionBeamer{theight}{\beamer@UoE@titleheight=#1}
+
+% Resolution is 9:5 (approx), as in ppt template
+\geometry{paperwidth=25.40cm, paperheight=19.05cm}
+
+\ProcessOptionsBeamer
+
+\newcommand\crule[3][\beamer@UoE@color]{\textcolor{#1}{\rule{#2}{#3}}}
+
+\setbeamerfont{title}{series=\bfseries,size=\fontsize{32}{36}}%
+\setbeamerfont{subtitle}{size=\fontsize{24}{28}}
+\setbeamerfont{author}{size={\fontsize{20}{24}}}
+\setbeamerfont{institute}{size=\fontsize{22}{26}}
+\setbeamerfont{pagexofy}{size=\tiny}
+\setbeamerfont{caption}{size=\Large}
+\setbeamerfont{frametitle}{family=\sffamily,series=\bfseries,size={\fontsize{23}{26}}}
+\setbeamerfont{itemize item}{family=\sffamily,size={\fontsize{16}{18}}}
+\setbeamerfont{itemize subitem}{family=\sffamily,size={\fontsize{16}{18}}}
+\setbeamertemplate{itemize/enumerate body begin}{\fontsize{16}{19}\selectfont}
+\setbeamertemplate{itemize/enumerate subbody begin}{\fontsize{16}{19}\selectfont}
+\AtBeginDocument{\fontsize{18}{19}\selectfont}
+
+%\setbeamertemplate{items}[ball]
+\setbeamertemplate{navigation symbols}{}
+\pgfdeclareimage[width=14.69cm]{white-tied-in}{images/white-tied-in}
+\pgfdeclareimage[width=4.65cm]{edinburgh-logo}{images/edinburgh-logo}
+\pgfdeclareimage[width=1.25cm]{little=u}{images/edinburgh-logo}
+\setbeamerfont{alerted text}{series=\bfseries}
+\setbeamercolor{alerted text}{fg=\beamer@UoE@color!80!black}
+\setbeamercolor{title}{fg=black}
+\setbeamercolor{normal text}{fg=black}
+\setbeamertemplate{itemize item}{\color{\beamer@UoE@color}$\bullet$}
+\setbeamertemplate{itemize subitem}{\color{\beamer@UoE@color}$\circ$}
+
+
+\newcommand{\SetUoETitleMargin}[1]{\beamer@UoE@titleheight=#1}
+\newcommand{\SetUoETitleHeight}[1]{\beamer@UoE@titleheight=#1}
+
+
+\newlength\barheight\setlength\barheight{\paperheight}
+\divide\barheight by 12
+
+
+\setbeamertemplate{title page}{
+ \raggedright
+ % TITLE
+ {\usebeamerfont{title}\textcolor{white}\inserttitle\par~}
+ % SUBTITLE
+ \ifx\insertsubtitle\@empty
+ \else%
+ \\[1ex]
+ {\usebeamerfont{subtitle}\textcolor{white}\insertsubtitle}
+ \fi
+ \\[6ex]
+ % AUTHOR
+ {\usebeamerfont{author}\textcolor{white}\insertauthor}
+ \ifx\insertinstitute\@empty
+ \else%
+ \\[3ex]
+ {\\\usebeamerfont{institute}\textcolor{white}\insertinstitute}
+ \fi
+ % DATE
+ \ifx\insertdate\empty
+ \else%
+ \\[1ex]
+ \usebeamerfont{date}\textcolor{white}{\insertdate}
+ \fi
+}
+
+
+\setbeamertemplate{background}{
+ \setlength{\unitlength}{1cm}
+ \begin{picture}(25.4,19.05)(0,0)
+ % on first slide add UoE text logo across bottom left
+ \ifnum\c@framenumber=1%
+ \put(-.1, 0){\crule[\beamer@UoE@color]{25.4cm}{19.05cm}}
+ \put(0.44, 0.1){\pgfuseimage{white-tied-in}}
+ % on ever other slide add UoE logo at top of blue sidebar
+ \else%
+ \put(23.5, 0){\crule[\beamer@UoE@color]{1.80cm}{19.05cm}}
+ \put(23.65, 17.3){\includegraphics[width=1.45cm,height=1.45cm]{images/edinburgh-logo}}
+ \fi%
+ % add slide numbering to bottom right
+ \ifnum\c@framenumber<10%
+ \put(23.7,0.3){\centering\Large\color{white}{\phantom{0}\insertframenumber/\inserttotalframenumber}}
+ \else
+ \put(23.7,0.3){\centering\Large\color{white}{\insertframenumber/\inserttotalframenumber}}
+ \fi%
+ \end{picture}
+}
+
+
+% Default slide formatting
+\setbeamertemplate{frametitle}{
+ % if not the starting fram, add a top margin
+ \ifnum\c@framenumber=1%
+ \empty%
+ \else
+ \vspace*{\beamer@UoE@titleheight}
+ \fi
+ % use the title colour from this class
+ \usebeamercolor[fg]{title}
+ % handle situation where there's no subtitle
+ \ifx\insertframesubtitle\@empty
+ \usebeamerfont{frametitle}{\insertframetitle}
+ \else
+ \usebeamerfont{frametitle}{\insertframetitle:~{\normalfont\insertframesubtitle}}
+ \fi
+ % ensures spacing after the title
+ \vspace*{1em}
+}
+
+%\newcommand{\UoEsettitleheight}[1]{\makeatletter\beamer@UoE@titleheight=#1\makeatother}
+\setbeamersize{text margin left=2cm,text margin right=2.5cm}
+
+% Ensures images are compressed when brought in by PDF
+\pdfcompresslevel=9
+\pdfobjcompresslevel=3
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "sample"
+%%% End:
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf
new file mode 100644
index 0000000000..feed9074f7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex
new file mode 100644
index 0000000000..e14f44e0a0
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex
@@ -0,0 +1,231 @@
+\documentclass[12pt]{article}
+
+% This is documentation for the `edmaths` LaTeX package, maintained by
+% Josh Fogg for the University of Edinburgh. This file closely builds on
+% that provided Alan Munn for the MSU Thesis Class, `msu-thesis`. The
+% original documentation is licensed under LaTeX Project Public License
+% (LPPL) version 1.3 or later, and this documentation is licensed under
+% the LLP version 1.3c. For more information, see the GitHub repository:
+% https://github.com/Foggalong/edinburgh-math-latex
+
+\def\msuversion{0.99}
+\def\msudate{2024-08-30}
+\title{\textbf{Using the \pkg{beamertheme-edmaths} Beamer Theme}}
+\author{\textbf{Josh Fogg}\\School of Mathematics\\The University of Edinburgh\\\texttt{\href{mailto:j.fogg@ed.ac.uk}{j.fogg@ed.ac.uk}}}
+\date{Version \msuversion\\\msudate}
+
+% basic formatting tweaks
+\usepackage[lmargin=2cm,rmargin=2cm,tmargin=3cm,bmargin=2cm]{geometry}
+\usepackage[colorlinks=true]{hyperref}
+\usepackage{enumitem}
+\usepackage{graphicx}
+
+% use same fourier font available through edmaths
+\usepackage{cmap}
+\usepackage{fourier}
+\usepackage[T1]{fontenc}
+\usepackage{microtype}
+
+% setup syntax highlighting
+\usepackage{highlightlatex}
+\definecolor{whiteF0}{HTML}{F0F0F0}
+\lstset{
+ % external padding
+ aboveskip=.4em,
+ belowskip=-.2em,
+ xleftmargin=.03\textwidth,
+ xrightmargin=.03\textwidth,
+ % basic formatting
+ backgroundcolor=\color{whiteF0},
+ showstringspaces=false,
+ columns=fixed,
+ basewidth=.5em,
+ basicstyle={\fontfamily{zlmtt}\selectfont},
+ breaklines=true
+}
+
+
+% change new paragraph behaviour to no-indent and a linebreak
+\usepackage[parfill]{parskip}
+
+
+\newcommand\pkg[1]{\href{https://www.ctan.org/pkg/#1}{\color{teal}\lstinline{#1}}}
+\newcommand\key[1]{{\color{orange}\lstinline|#1|}}
+
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+
+This is theme for \pkg{beamer}, used to creating presentations for the \href{https://www.maths.ed.ac.uk/}{School of Mathematics} at the \href{https://www.ed.ac.uk/}{University of Edinburgh}. It's designed as an accompaniment to \pkg{edmaths} and provides an easy way to generate a presentation in \LaTeX{} which aligns the university brand guidelines. This means you can focus on your actual writing, rather than worrying about font spacing, margins sizes, {\it etc}.
+
+\section{Initial Setup}
+
+This theme is designed to work with \pkg{beamer}, which should be available with any \TeX{} distribution. It can be used with any \LaTeX{} engine, including pdfLaTeX, XeLaTeX, or LuaLaTeX. While it should work with any reasonably up-to-date \TeX{} distribution, it is tested with 2020 and later.
+
+The essential steps to setup are then:
+\begin{enumerate}
+ \item Choose a document class using \lstinline|\documentclass[<options>]{beamer}|, with \key{<options>} being defined in the full \pkg{beamer} documentation.
+ \item Apply the theme using \lstinline|\usetheme{edmaths}|.
+ \item Use \lstinline|\title[Short Title]{Full Title}|| to define the title (the \key{Short Title} is optional).
+ \item Set the optional \lstinline|\subtitle{...}| if desired.
+ \item Set the \lstinline|\author{...}| and \lstinline|\date{...}|.
+\end{enumerate}
+These steps {\bf must} be done in exactly this order or the compiler will throw errors.
+
+Unlike \pkg{edmaths}, this theme does not automatically load the standard suite of \LaTeX{} math packages ({\it e.g.\/} \pkg{amsmath}) so you may wish to load those. Instead it loads \pkg{amsfonts}, \pkg{graphicx}, \pkg{lmodern}, and \pkg{mathptmx} which are necessary for the theme.
+
+The basic package has no other special requirements, but if you have certain additional packages installed then you can use some fancifying options (see below).
+
+\section{Package Options}
+
+When loading \pkg{beamertheme-edmaths} with
+\begin{lstlisting}
+\usetheme[<options>]{edmaths}
+\end{lstlisting}
+we can supply additional \key{<options>} as a comma-separated list of the following keywords.
+
+\subsection{Colour}
+
+The default theme is styled around University of Edinburgh {\bf\color[HTML]{00325F} blue (\lstinline|#00325F|)}. It's also available in three other official brand colour-scheme variations by specifying at most one of:
+\begin{itemize}
+ \item \key{colour=UoEorange} for {\bf\color[HTML]{CC5911} orange (\lstinline|#CC5911|)},
+ \item \key{colour=UoEgreen} for {\bf\color[HTML]{9C9A00} green (\lstinline|#9C9A00|)},
+ \item \key{colour=UoEcyan} for {\bf\color[HTML]{457E81} cyan (\lstinline|#457E81|)}.
+\end{itemize}
+In theory other off-brand colours could be applied using \pkg{xcolor} and the same syntax, but this isn't officially supported so results may vary.
+
+\subsection{Title Height}
+
+By default the title height is \key{10ex}. This can be modified by specifying \key{theight=<x>}, where \key{<x>} is the desired height in a \LaTeX{} compatible unit.
+
+\section{Usage}
+
+Once \pkg{beamertheme-edmaths} is set up, a simple example of how it might be put together in \pkg{beamer} is in the listing below. A more complicated example is packaged with \pkg{beamertheme-edmaths} and \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/example-presentation.tex}{available here}. What this looks like compiled can be \href{https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf}{viewed here}.
+
+\subsection{Overleaf}
+
+As a student or staff member at the University of Edinburgh you have access to \href{https://www.ed.ac.uk/information-services/computing/desktop-personal/software/main-software-deals/other-software/overleaf}{Overleaf Professional}! Do make use of this, it alleviates many of the headaches which come with using \LaTeX{} across multiple computers, which you surely will..
+
+\subsection{Archiving your presentation for the future}
+
+The current version of \pkg{beamertheme-edmaths} satisfies the brand guidelines at any one time. Given these change, you may find that if you need to recompile your presentation later that the formatting changes. To avoid this, save an archived version of the \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/beamerthemeedmaths.sty}{\lstinline|beamerthemeedmaths.sty|} file in the same folder as your slides. You only need to do this once you have completely finished your presentation however; there's no need to do it during the writing process.
+
+\begin{lstlisting}[caption={Example usage of \pkg{beamertheme-edmaths}.}]
+\documentclass{beamer}
+\usetheme{edmaths}
+
+\title[Short Title]{A Long and verbose title}
+\subtitle{and a sub-title} % optional
+\author{Dr Benway}
+\institute{The Mental Institute} % optional
+\date{Feb 1935}
+
+\begin{document}
+
+\maketitle
+
+\begin{frame}{Words of Advice for Young People}\label{sec:Advice}
+ People often ask me if I have any words of \alert{advice} for
+ young people\ldots \\[2ex] \pause
+ \begin{itemize}
+ \item<1-> \alert{Never} interfere in a \alert{boy-and-girl}
+ fight
+ \item<2-> Any \alert{old soul} is worth saving \\
+ \uncover<3->{at \alert{least to} a priest},
+ \begin{itemize}
+ \item<4-> But \alert{not} every soul is \alert{worth
+ buying}.
+ \end{itemize}
+ \item<5-> \ldots
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Conclusions}\label{sec:what?}
+ \begin{itemize}
+ \item<2-> What \alert{are} we doing here?
+ \item<4-> What?
+ \item<2-> Answers:
+ \begin{itemize}
+ \item<3-> We are here \alert{to go}.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\end{document}
+\end{lstlisting}
+
+\section{Speaker Notes}
+
+There are various solutions for writing notes to accompany LaTeX presentations made with \pkg{beamer}. In each of these use the relevant command {\it after} the slide you wish to annotate.
+
+\subsection{Beamer's \texttt{note}}
+
+Core \pkg{beamer} itself actually comes with a command, \lstinline|\note|, which can be used for writing notes that are then included as separate `notes' pages in the complied PDF. Exactly how these are handled is controlled through the document class arguments
+
+\begin{lstlisting}
+\documentclass[notes]{beamer} % print frame + notes
+\documentclass[notes=only]{beamer} % only notes
+\documentclass{beamer} % only frames
+\end{lstlisting}
+
+and then notes are added with
+
+\begin{lstlisting}
+\begin{frame}
+ ...
+\end{frame}
+\note{Some wonderful note.}
+\end{lstlisting}
+
+These have the upside that you have full access to \LaTeX{} formatting when writing your speaker notes, but the downside that they can be cumbersome to work with when presenting. Multiple complications are needed to get notes and presentations in separate PDF files.
+
+\subsection{PDFPC's \texttt{note}}
+
+\href{https://pdfpc.github.io/}{PDFPC} is a presenter console with multi-monitor support for PDF files. There's an official package, \pkg{pdfpc}, for adding meta-data to presentation files which are compatible with their presenter console. The screenshot in Figure~\ref{fig:pdfpc} shows how the console looks when viewing the example presentation.
+
+\begin{figure}
+ \includegraphics[width=\textwidth]{pdfpc-screenshot.png}
+ \caption{Speaker notes in PDFPC.}\label{fig:pdfpc}
+\end{figure}
+
+To use this add
+
+\begin{lstlisting}
+\usepackage[overridenote=true]{pdfpc}
+\end{lstlisting}
+and then it's just \lstinline|\note{Some wonderful note.}| as before.
+
+These will then be included as ``comments'' within the complied PDF which PDFPC displays as notes in the presenter console. These have the upside that they're smoother to work with when presenting, but the downside that the only formatting supported is \lstinline|\\| for newlines.
+
+\subsection{Brandt's \texttt{pnote}}
+
+There are two packages called \pkg{pdfpc-latex-notes}, one by \href{https://github.com/cebe/pdfpc-latex-notes}{Carsten Brandt} and a fork by \href{https://github.com/p4pyru5/pdfpc-latex-notes}{p4pyru5}. These both generate PDFPC compatible notes using \lstinline|\pnote{Some wonderful note.}|. They served as the inspiration for PDFPC's official solution, but each come with their own (varying support for formatting, wider integration, {\it etc\/}).
+
+\subsection{Usher's \texttt{bnote}}
+
+The original version of the University of Edinburgh \pkg{beamer} template by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} at the \href{https://www.ed.ac.uk/usher}{Usher Institute} included its own package, \pkg{beamernotes}, for generating a PDFPC compatible notes file.
+
+To use it save \href{https://github.com/Foggalong/edinburgh-math-latex/blob/4ac2ffb765a7d9dc420396dd10bdafcc0c561398/beamernotes.sty}{\texttt{beamernotes.sty}} either to your \LaTeX{} path or local to your project. Then add
+
+\begin{lstlisting}
+\usepackage{beamernotes}
+\end{lstlisting}
+
+to your document header and use
+
+\begin{lstlisting}
+\bnote{Some wonderful note.}
+\end{lstlisting}
+
+to write your notes. This solution had the upside that your notes were included in a separate file still automatically read by PDFPC, but the downside that all formatting was lost {\it including} the ability to write newlines.
+
+\section{Acknowledgements}
+
+The original \pkg{beamertheme-edmaths} was written by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} for \href{https://www.ed.ac.uk/usher}{Usher}, then modified by \href{https://github.com/bencwbrown}{Ben Brown} with general university branding. Both are freely provided under the terms of the \href{https://choosealicense.com/licenses/lppl-1.3c/}{\LaTeX{} Project Public License v1.3c} and from 2020 onwards have been maintained by \href{https://www.maths.ed.ac.uk/~jfogg/}{Josh Fogg} (me).
+
+If you have any issues using \pkg{beamertheme-edmaths} don't hesitate to get in touch either by \href{mailto:j.fogg@ed.ac.uk}{email} or on \href{https://github.com/Foggalong/edinburgh-math-latex/issues/new?assignees=&labels=pres&projects=&template=beamer-issue.md&title=}{GitHub}. Feel free pop me a message just to say hi too, it always makes my day!
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png
new file mode 100644
index 0000000000..59cc944e2f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex
new file mode 100644
index 0000000000..1f67be3c55
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex
@@ -0,0 +1,82 @@
+%% This file is an example of using beamerthemeedmaths.sty to style a Beamer
+%% presentation. While the style is LPPL 1.3 licensed, this example is given
+%% under a 0BSD license (https://choosealicense.com/licenses/0bsd), meaning
+%% it can be freely used, copied, modified, and/or redistributed with or
+%% without attribution. For instructions on using the style, see the README.md
+%% file or https://github.com/Foggalong/edinburgh-math-latex.
+
+\documentclass[notes]{beamer}
+\usetheme{edmaths}
+\usepackage{lipsum}
+\usepackage[overridenote=true]{pdfpc}
+
+\pdfcompresslevel=9
+\pdfobjcompresslevel=3
+
+\title[Insert Title (short version of title)]{Title of Presentation}
+\subtitle{Insert Subtitle (Optional)} % Optional
+\author{Author Name}
+\date{n\textsuperscript{th} Month YYYY}
+
+\begin{document}
+
+
+\begin{frame}
+ \titlepage{}
+\end{frame}
+\note{
+ This generates notes for pdfpc. \\
+ \\
+ These notes also appear
+ on the handout/article versions.
+}
+
+
+\begin{frame}[t]{Header title bold}\label{sec:Slide1}
+ Main body text Sans. Here is a way to \alert{highlight text}.
+ \begin{itemize}
+ \item Bullet points
+ \item Sub-lists\ldots
+ \begin{itemize}
+ \item subitem
+ \end{itemize}
+ \item \lipsum[2]
+ \end{itemize}
+\end{frame}
+\note{
+ This is a note for the first slide. Mention how something happens.
+}
+
+
+\begin{frame}{Inserting a figure, some maths\ldots}
+ Example of a reference to another part of the presentation (slide~\ref{sec:Slide1}). Also an example of a slide not vertically aligned to top.\newline
+
+ \begin{itemize}
+ \item Here's a figure:
+ \begin{figure}[h]
+ \centering
+ \colorbox{blue}{\includegraphics[width=.13\linewidth]{images/edinburgh-logo}}
+ \caption{The University of Edinburgh's logo}\label{fig:edinburgh-logo}
+ \end{figure}
+ \item And here's a famous equation:
+ \begin{eqnarray}
+ \label{eq:schroedinger}
+ i\hbar {\frac{\partial}{\partial t}}|\psi (t)\rangle ={\hat{H}}|\psi (t)\rangle
+ \end{eqnarray}
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}[t]{References}
+ The stylesheet {\bf\texttt{edmaths.sty}} provides a styling for LaTeX{} documents which satisfies University of Edinburgh requirements~\cite{koeppe2007}. \newline
+
+ \lipsum[4]\newline
+
+ References can be added to the bottom of slides, or on a new slide.
+ \vfill
+ \bibliography{example-references}
+ \bibliographystyle{ieeetr}
+\end{frame}
+
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib
new file mode 100644
index 0000000000..cd65755781
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib
@@ -0,0 +1,10 @@
+ This is an example biblography used in example-presentation.tex and
+ example-report.tex, examples of the edmaths Beamer and report styles
+ respectively. When creating a biblography you might find these bibtex
+ templates useful: https://verbosus.com/bibtex-style-examples.html
+
+@misc{koeppe2007,
+ title = {Package `edmaths'},
+ author = {Thomas Koeppe},
+ year = {2007}
+}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md
new file mode 100644
index 0000000000..ef516053f4
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md
@@ -0,0 +1,5 @@
+# Copyright Notice
+
+The images `edinburgh-logo` and `white-tied-in` are copyright © The University of Edinburgh 2024. They must not be used as part of derived or independent works without the explicit permission of The University of Edinburgh. Please note that this **does not** affect use as part of compiled LaTeX documents using this stylesheet for the university.
+
+The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336, VAT Registration Number GB 592 9507 00, and is acknowledged by the UK authorities as a “Recognised body” which has been granted degree awarding powers.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf
new file mode 100644
index 0000000000..f35a67f63f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg
new file mode 100644
index 0000000000..a4470b6219
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg
@@ -0,0 +1,8 @@
+<svg width="86.7" height="87.2" version="1.1" viewBox="0 0 86.7 87.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+<style type="text/css">
+ .st0{clip-path:url(#SVGID_2_);}
+ .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;}
+ .st2{fill:#FFFFFF;}
+ .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;}
+</style>
+<path class="st2" d="m73.6 41c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m62.9 28.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m46.5 61.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m35.7 48.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m49.8 49.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m37.3 46.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m44.3 31c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m44.9 28.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m43.7 32.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m48.8 35.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m43.2 30.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m50.6 38.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m46.7 56.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m44.1 57.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m40.3 56.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m48.7 57.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m48.7 64.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m56.4 64.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m61.8 38.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m48.2 25.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m46.4 26.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m45.9 30.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m45.7 28.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m45 31.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m46.9 25.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m45.2 26.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m43.7 26.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m43.1 28.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m42.7 30.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m42.3 31.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m41 29.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m41.9 28.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m41.2 31.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m42.1 26c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m41.5 27.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m38.1 24.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m33.1 25.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m40.2 29.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m30 48.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m39.7 62.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m42.2 67.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m44.1 67.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m44.6 67c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m6.3 37.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m8.7 29.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m18.7 20.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m27 15.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m36.7 5.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m41.1 6.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m51.3 5.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m55.3 12.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m61 15.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m66 19.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m69.9 24-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m77.6 26.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m81.2 36.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m10 56.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m13.8 58.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m20.8 67.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m29.3 73.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m35.2 75.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m44.9 76.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m53.6 77.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m64.2 74.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m69.1 68.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m75.8 59.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m79.9 51.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m7 44.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m79.7 44.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></svg>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf
new file mode 100644
index 0000000000..39bb707e73
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg
new file mode 100644
index 0000000000..6089f29ef7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg
@@ -0,0 +1,8 @@
+<svg width="342.4" height="97.2" version="1.1" viewBox="0 0 342.4 97.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+<style type="text/css">
+ .st0{clip-path:url(#SVGID_2_);}
+ .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;}
+ .st2{fill:#FFFFFF;}
+ .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;}
+</style>
+<g transform="translate(10,10)"><path class="st2" d="m107.6 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1-0.5-0.3-1.3-0.5-2.5-0.5"/><path class="st2" d="m128.4 31.2v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.7 0.6v0.5h-6.7v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.7 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.5-1.1 0.5-2.2"/><path class="st2" d="m147 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.4-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.3v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.2-0.2 0.4-0.7 0.5-1.4"/><path class="st2" d="m172.9 30.8v-11c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.4c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.2 0 3.9-1 5.2-3"/><path class="st2" d="m193.7 16.9v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.5 1.9 0.4 0.4 1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3s-0.8-0.7-1.7-0.7"/><path class="st2" d="m208.3 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m228.4 16.4v0.6c-1.3 0-2.4 1.2-3.3 3.5l-5.4 14.3h-0.5l-5.6-14.7c-0.5-1.4-1-2.2-1.4-2.6s-0.9-0.5-1.6-0.6v-0.5h6.6v0.5c-1.1 0-1.6 0.4-1.6 1.2 0 0.3 0.1 0.6 0.2 0.9l4.4 11.7 4.2-11.3c0.2-0.5 0.3-0.9 0.3-1.3 0-0.9-0.5-1.3-1.6-1.3v-0.5h5.3"/><path class="st2" d="m241.7 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.2 0.3-0.7 0.4-1.4"/><path class="st2" d="m252.8 17.1h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9.1h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.7 2 1.7 3.4c0 2.2-1.2 3.7-3.8 4.5 0.5 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c0.9 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.7-0.5-1.4-0.7-2.2-0.7"/><path class="st2" d="m274.5 16.1h0.5v4.3h-0.5c-0.1-1.2-0.6-2.1-1.3-2.8s-1.6-1-2.8-1c-1 0-1.8 0.2-2.4 0.7s-0.9 1.2-0.9 2 0.2 1.5 0.7 2.1 1.6 1.4 3.2 2.4c1.9 1.1 3.2 2.1 3.9 3s1 1.8 1 2.9c0 1.4-0.5 2.6-1.5 3.7-1 1-2.2 1.5-3.7 1.5-0.8 0-1.9-0.2-3.2-0.7-0.5-0.2-0.9-0.3-1-0.3-0.3 0-0.5 0.2-0.7 0.7h-0.5v-4.9h0.5c0 1.4 0.5 2.4 1.3 3.3s1.9 1.2 3.1 1.2c1.1 0 2-0.3 2.7-0.9s1-1.4 1-2.4c0-0.7-0.3-1.4-0.8-2.1s-1.7-1.5-3.4-2.6c-1.4-0.9-2.4-1.6-2.8-2.1-0.5-0.5-0.8-1.1-1.1-1.7s-0.3-1.3-0.3-2c0-1.4 0.5-2.5 1.4-3.4s2.1-1.3 3.6-1.3c0.8 0 1.7 0.2 2.6 0.5 0.4 0.1 0.8 0.2 0.9 0.2s0.2 0 0.3-0.1c0.1 0.2 0.2 0.1 0.2-0.2"/><path class="st2" d="m285.6 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.2 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m300.1 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1s-1.4-0.5-2.5-0.5"/><path class="st2" d="m319.6 19-4.1 6.4v5.7c0 1.1 0.1 1.9 0.4 2.3s0.8 0.6 1.6 0.6v0.5h-6.6v-0.5c0.9 0 1.5-0.2 1.8-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-5.7l-3.9-6c-0.6-1-1.2-1.7-1.6-2s-1-0.5-1.7-0.5v-0.5h7.1v0.5c-1.2 0-1.9 0.3-1.9 0.9 0 0.3 0.1 0.6 0.4 1l3.6 5.5 2.9-4.6c0.4-0.7 0.6-1.3 0.6-1.8 0-0.7-0.4-1-1.2-1v-0.5h5v0.5c-0.7 0-1.2 0.2-1.6 0.4s-0.7 0.9-1.2 1.7"/><path class="st2" d="m99.5 58.8c1 0 1.9-0.6 2.7-1.9s1.2-2.8 1.2-4.6c0-0.8-0.2-1.5-0.6-2s-0.9-0.8-1.6-0.8c-1 0-1.9 0.6-2.7 1.9s-1.2 2.8-1.2 4.5c0 0.9 0.2 1.6 0.6 2.1 0.5 0.5 1 0.8 1.6 0.8zm2.6-10.2c0.8 0 1.6 0.4 2.2 1.1s1 1.6 1 2.5c0 1.7-0.6 3.4-1.9 5s-2.8 2.5-4.5 2.5c-1 0-1.8-0.3-2.4-1s-0.9-1.6-0.9-2.7c0-1.9 0.7-3.6 2-5.1 1.3-1.6 2.8-2.3 4.5-2.3"/><path class="st2" d="m113.1 48.9-0.1 0.9h-2.2l-1.8 9.2c-0.5 2.5-1 4.3-1.5 5.5s-1.4 2-2.4 2.6-2.1 0.9-3.3 0.9c-1.6 0-2.8-0.3-3.7-0.9l0.5-2.2h0.5c0.3 1.6 1.3 2.4 2.8 2.4 1.1 0 2.1-0.4 3-1.2s1.6-2.7 2.1-5.7l2-10.7h-2.2l0.1-0.9h2.2l0.8-3.8c0.4-2 1.1-3.5 2-4.2 0.9-0.8 2.1-1.2 3.3-1.2 0.6 0 1.3 0.1 2.2 0.4l0.1-0.4h0.6l-0.6 2.9h-0.5c-0.1-1.5-0.8-2.3-2-2.3-1.5 0-2.6 1.3-3.1 3.9l-1 4.7h2.2"/><path class="st2" d="m135 48.1h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.3 0.3-0.7 0.4-1.4"/><path class="st2" d="m147.8 41.9h-3.5v13.4c0 1.3 0.2 2.2 0.5 2.6s0.9 0.7 1.9 0.7h1.9c2.2 0 4-0.7 5.3-2.2s1.9-3.4 1.9-5.9c0-2.6-0.7-4.8-2.1-6.3s-3.4-2.3-5.9-2.3zm-7.9 17.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h8.4c3.1 0 5.6 0.9 7.5 2.6 1.9 1.8 2.8 4 2.8 6.7s-0.9 4.8-2.6 6.4-4.2 2.4-7.4 2.4h-8.7"/><path class="st2" d="m167.5 41.2v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m183.7 41.7v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.6 1.9s1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3-0.4-0.5-1-0.7-1.8-0.7"/><path class="st2" d="m197.3 50.3h-1.7v5.3c0 1.2 0.1 2 0.4 2.4s0.8 0.6 1.5 0.6h1.5c1.1 0 1.9-0.4 2.6-1.1s1-1.7 1-2.8c0-1.4-0.5-2.4-1.4-3.3-1-0.7-2.3-1.1-3.9-1.1zm-1.7-8.4v7.7h1.9c1.3 0 2.4-0.3 3.1-1s1.2-1.6 1.2-2.8-0.4-2.2-1.1-2.9c-0.8-0.7-1.8-1-3.2-1zm3.9 17.5h-8.4v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.9c2 0 3.5 0.4 4.6 1.2s1.7 1.9 1.7 3.2c0 2-1.2 3.3-3.7 4.1v0.1c1.4 0.3 2.5 0.9 3.4 1.8s1.3 2 1.3 3.3-0.5 2.4-1.6 3.2c-1 0.8-2.4 1.3-4.2 1.3"/><path class="st2" d="m221.6 55.5v-10.9c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.5c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.1 0.1 3.9-0.9 5.2-3"/><path class="st2" d="m235.1 41.9h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.6 2 1.6 3.4c0 2.2-1.2 3.7-3.8 4.5 0.6 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c1 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.6-0.4-1.3-0.7-2.1-0.7"/><path class="st2" d="m264.1 51.5v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.5 1-0.5 1.9v4.9c-0.4 0.1-1.2 0.2-2.4 0.3s-2.1 0.1-2.7 0.1c-3.4 0-6-0.8-7.8-2.5-1.9-1.7-2.8-3.8-2.8-6.5 0-1.9 0.4-3.6 1.2-5.1s2-2.7 3.4-3.6 3-1.3 4.7-1.3c1 0 2.1 0.2 3.2 0.5 0.7 0.2 1.3 0.3 1.7 0.3 0.5 0 0.9-0.2 1-0.6h0.6v5.4h-0.5c-0.2-1.5-0.9-2.7-2-3.6s-2.5-1.3-4-1.3c-1.9 0-3.5 0.8-4.7 2.3s-1.8 3.5-1.8 5.9c0 2.7 0.7 4.9 2.1 6.6 1.4 1.8 3.2 2.6 5.4 2.6 2 0 3.1-0.6 3.1-1.9v-2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.7-1.6-0.7h-0.7v-0.5h7.2"/><path class="st2" d="m280 55.9v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.6 0.6v0.5h-6.6v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.6 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6 0.2-0.4 0.4-1.2 0.4-2.3"/><path class="st2" d="m68.6 36c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m57.9 23.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m41.5 56.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m30.7 43.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m44.8 44.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m32.3 41.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m39.3 26c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m39.9 23.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m38.7 27.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m43.8 30.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m38.2 25.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m45.6 33.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m41.7 51.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m39.1 52.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m35.3 51.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m43.7 52.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m43.7 59.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m51.4 59.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m56.8 33.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m43.2 20.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m41.4 21.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m40.9 25.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m40.7 23.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m40 26.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m41.9 20.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m40.2 21.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m38.7 21.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m38.1 23.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m37.7 25.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m37.3 26.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m36 24.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m36.9 23.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m36.2 26.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m37.1 21c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m36.5 22.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m33.1 19.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m28.1 20.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m35.2 24.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m25 43.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m34.7 57.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m37.2 62.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m39.1 62.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m39.6 62c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m1.3 32.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m3.7 24.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m13.7 15.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m22 10.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m31.7 0.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m36.1 1.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m46.3 0.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m50.3 7.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m56 10.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m61 14.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m64.9 19-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m72.6 21.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m76.2 31.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m5 51.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m8.8 53.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m15.8 62.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m24.3 68.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m30.2 70.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m39.9 71.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m48.6 72.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m59.2 69.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m64.1 63.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m70.8 54.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m74.9 46.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m2 39.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m74.7 39.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></g></svg>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
new file mode 100644
index 0000000000..a7334244cd
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
@@ -0,0 +1,301 @@
+# Manifest for gotham
+
+This file is a listing of all files considered to be part of this package.
+It is automatically generated with `l3build manifest`.
+
+
+## Repository manifest
+
+The following groups list the files included in the development repository of the package.
+Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed
+with ‘‡’ are included in both.
+
+### Source files
+
+These are source files for a number of purposes, including the `unpack` process which
+generates the installation files of the package. Additional files included here will also
+be installed for processing such as testing.
+
+* gotham.dtx ‡
+* gotham.ins ‡
+* gotham-logo.pdf ‡
+* gotham-layout.pdf ‡
+* gotham-blueprint.pdf ‡
+* gotham-safetybox.pdf ‡
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* MANIFEST.md ‡
+* README.md ‡
+
+### Derived files
+
+The files created by ‘unpacking’ the package sources. This typically includes
+`.sty` and `.cls` files created from DocStrip `.dtx` files.
+
+* beamercolorthemegotham.sty †
+* beamerfontthemegotham.sty †
+* beamerinnerthemegotham.sty †
+* beamerouterthemegotham.sty †
+* beamerthemegotham.sty †
+* gotham-blueprint.pdf ‡
+* gotham-layout.pdf ‡
+* gotham-logo.pdf ‡
+* gotham-safetybox.pdf ‡
+
+### Support files
+
+These files are used for unpacking, typesetting, or checking purposes.
+
+* gotham-example169transp-1.png
+* gotham-example43dark-1.png
+* gotham-exampleSimple-1.png
+* gotham-logo.png
+* gotham-test-035-a.png
+* gotham-test-035-b.png
+
+### Test files
+
+These files form the test suite for the package. `.lvt` or `.lte` files are the individual
+unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
+the same output. These output files are sometimes shared and sometime specific for
+different engines (pdfTeX, XeTeX, LuaTeX, etc.).
+
+* gotham-test-001.lvt
+* gotham-test-035.lvt
+* gotham-test-037.lvt
+* gotham-test-040.lvt
+* gotham-test-043.lvt
+* gotham-test-044.lvt
+* gotham-test-045.lvt
+* gotham-test-1002.lvt
+* gotham-test-1002b.lvt
+* gotham-test-1003.lvt
+* gotham-test-1003b.lvt
+* gotham-test-1004.lvt
+* gotham-test-1005.lvt
+* gotham-test-1006.lvt
+* gotham-test-1007.lvt
+* gotham-test-1007b.lvt
+* gotham-test-1008.lvt
+* gotham-test-1009.lvt
+* gotham-test-1010.lvt
+* gotham-test-1011.lvt
+* gotham-test-1012.lvt
+* gotham-test-1013.lvt
+* gotham-test-1014.lvt
+* gotham-test-1015.lvt
+* gotham-test-1016.lvt
+* gotham-test-1017.lvt
+* gotham-test-1018.lvt
+* gotham-test-1019.lvt
+* gotham-test-1020.lvt
+* gotham-test-1021.lvt
+* gotham-test-1022.lvt
+* gotham-test-1024.lvt
+* gotham-test-1025.lvt
+* gotham-test-1026.lvt
+* gotham-test-1027.lvt
+* gotham-test-1028.lvt
+* gotham-test-1031.lvt
+* gotham-test-1032.lvt
+* gotham-test-1037.lvt
+* gotham-test-001.lve
+* gotham-test-035.luatex.tlg
+* gotham-test-035.tlg
+* gotham-test-035.xetex.tlg
+* gotham-test-037.luatex.tlg
+* gotham-test-037.tlg
+* gotham-test-037.xetex.tlg
+* gotham-test-040.luatex.tlg
+* gotham-test-040.tlg
+* gotham-test-040.xetex.tlg
+* gotham-test-043.luatex.tlg
+* gotham-test-043.tlg
+* gotham-test-043.xetex.tlg
+* gotham-test-044.luatex.tlg
+* gotham-test-044.tlg
+* gotham-test-044.xetex.tlg
+* gotham-test-045.luatex.tlg
+* gotham-test-045.tlg
+* gotham-test-045.xetex.tlg
+* gotham-test-1002.luatex.tlg
+* gotham-test-1002.tlg
+* gotham-test-1002.xetex.tlg
+* gotham-test-1002b.luatex.tlg
+* gotham-test-1002b.tlg
+* gotham-test-1002b.xetex.tlg
+* gotham-test-1003.luatex.tlg
+* gotham-test-1003.tlg
+* gotham-test-1003.xetex.tlg
+* gotham-test-1003b.luatex.tlg
+* gotham-test-1003b.tlg
+* gotham-test-1003b.xetex.tlg
+* gotham-test-1004.luatex.tlg
+* gotham-test-1004.tlg
+* gotham-test-1004.xetex.tlg
+* gotham-test-1005.luatex.tlg
+* gotham-test-1005.tlg
+* gotham-test-1005.xetex.tlg
+* gotham-test-1006.luatex.tlg
+* gotham-test-1006.tlg
+* gotham-test-1006.xetex.tlg
+* gotham-test-1007.luatex.tlg
+* gotham-test-1007.tlg
+* gotham-test-1007.xetex.tlg
+* gotham-test-1007b.luatex.tlg
+* gotham-test-1007b.tlg
+* gotham-test-1007b.xetex.tlg
+* gotham-test-1008.luatex.tlg
+* gotham-test-1008.tlg
+* gotham-test-1008.xetex.tlg
+* gotham-test-1009.luatex.tlg
+* gotham-test-1009.tlg
+* gotham-test-1009.xetex.tlg
+* gotham-test-1010.luatex.tlg
+* gotham-test-1010.tlg
+* gotham-test-1010.xetex.tlg
+* gotham-test-1011.luatex.tlg
+* gotham-test-1011.tlg
+* gotham-test-1011.xetex.tlg
+* gotham-test-1012.luatex.tlg
+* gotham-test-1012.tlg
+* gotham-test-1012.xetex.tlg
+* gotham-test-1013.luatex.tlg
+* gotham-test-1013.tlg
+* gotham-test-1013.xetex.tlg
+* gotham-test-1014.luatex.tlg
+* gotham-test-1014.tlg
+* gotham-test-1014.xetex.tlg
+* gotham-test-1015.luatex.tlg
+* gotham-test-1015.tlg
+* gotham-test-1015.xetex.tlg
+* gotham-test-1016.luatex.tlg
+* gotham-test-1016.tlg
+* gotham-test-1016.xetex.tlg
+* gotham-test-1017.luatex.tlg
+* gotham-test-1017.tlg
+* gotham-test-1017.xetex.tlg
+* gotham-test-1018.luatex.tlg
+* gotham-test-1018.tlg
+* gotham-test-1018.xetex.tlg
+* gotham-test-1019.luatex.tlg
+* gotham-test-1019.tlg
+* gotham-test-1019.xetex.tlg
+* gotham-test-1020.luatex.tlg
+* gotham-test-1020.tlg
+* gotham-test-1020.xetex.tlg
+* gotham-test-1021.luatex.tlg
+* gotham-test-1021.tlg
+* gotham-test-1021.xetex.tlg
+* gotham-test-1022.luatex.tlg
+* gotham-test-1022.tlg
+* gotham-test-1022.xetex.tlg
+* gotham-test-1024.luatex.tlg
+* gotham-test-1024.tlg
+* gotham-test-1024.xetex.tlg
+* gotham-test-1025.luatex.tlg
+* gotham-test-1025.tlg
+* gotham-test-1025.xetex.tlg
+* gotham-test-1026.luatex.tlg
+* gotham-test-1026.tlg
+* gotham-test-1026.xetex.tlg
+* gotham-test-1027.luatex.tlg
+* gotham-test-1027.tlg
+* gotham-test-1027.xetex.tlg
+* gotham-test-1028.luatex.tlg
+* gotham-test-1028.tlg
+* gotham-test-1028.xetex.tlg
+* gotham-test-1031.luatex.tlg
+* gotham-test-1031.tlg
+* gotham-test-1031.xetex.tlg
+* gotham-test-1032.luatex.tlg
+* gotham-test-1032.tlg
+* gotham-test-1032.xetex.tlg
+* gotham-test-1037.luatex.tlg
+* gotham-test-1037.tlg
+* gotham-test-1037.xetex.tlg
+
+
+## TDS manifest
+
+The following groups list the files included in the TeX Directory Structure used to install
+the package into a TeX distribution.
+
+### Source files (TDS)
+
+All files included in the `gotham/source` directory.
+
+* gotham.dtx
+* gotham.ins
+
+### TeX files (TDS)
+
+All files included in the `gotham/tex` directory.
+
+* beamercolorthemegotham.sty
+* beamerfontthemegotham.sty
+* beamerinnerthemegotham.sty
+* beamerouterthemegotham.sty
+* beamerthemegotham.sty
+* gotham-blueprint.pdf
+* gotham-layout.pdf
+* gotham-logo.pdf
+* gotham-safetybox.pdf
+
+### Doc files (TDS)
+
+All files included in the `gotham/doc` directory.
+
+* MANIFEST.md
+* README.md
+* ctan.ann
+* ctan.note
+* gotham-dev-impl.pdf
+* gotham-doc.pdf
+* gotham-doc.tex
+* gotham-example169transp.pdf
+* gotham-example169transp.tex
+* gotham-example43dark.pdf
+* gotham-example43dark.tex
+* gotham-exampleSimple.pdf
+* gotham-exampleSimple.tex
+* gotham-user-cmds.pdf
+* gotham.pdf
+* section-Beamer.tex
+* section-Conclusion.tex
+* section-Gotham.tex
+
+
+## CTAN manifest
+
+The following group lists the files included in the CTAN package.
+
+### CTAN files
+
+* MANIFEST.md
+* README.md
+* ctan.ann
+* ctan.note
+* gotham-blueprint.pdf
+* gotham-dev-impl.pdf
+* gotham-doc.pdf
+* gotham-doc.tex
+* gotham-example169transp.pdf
+* gotham-example169transp.tex
+* gotham-example43dark.pdf
+* gotham-example43dark.tex
+* gotham-exampleSimple.pdf
+* gotham-exampleSimple.tex
+* gotham-layout.pdf
+* gotham-logo.pdf
+* gotham-safetybox.pdf
+* gotham-user-cmds.pdf
+* gotham.dtx
+* gotham.ins
+* gotham.pdf
+* section-Beamer.tex
+* section-Conclusion.tex
+* section-Gotham.tex
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
new file mode 100644
index 0000000000..82fa92e641
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
@@ -0,0 +1,127 @@
+# Gotham Beamer Theme
+
+<!-- Logo -->
+<p align="center">
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham">
+ <img src="support/gotham-logo.png" width="100" alt="Gotham logo">
+ </a>
+</p>
+
+<!-- BADGES -->
+<p align="center">
+ <a href="https://ctan.org/pkg/gotham"><img src="https%3A%2F%2Fctan.org%2Fjson%2F2.0%2Fpkg%2Fgotham&query=%24.version.number&logo=latex&label=CTAN"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/release/"><img src="https://img.shields.io/badge/Latest_Release-%{latest_tag}-blue"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/pipelines?page=1&scope=all&ref=main"><img src="https://gitlab.com/RomainNOEL/beamertheme-gotham/badges/main/pipeline.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-LPPL_1.3c--Clause-blue.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/"><img src="https://img.shields.io/badge/Documentation-PDF_online-green"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/Authors.md"><img src="https://www.repostatus.org/badges/latest/active.svg"/></a>
+</p>
+
+
+## What is Gotham ?
+This `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`.
+
+
+## Table of Contents
+[[_TOC_]]
+
+
+## Why this package ?
+ONCE UPON THE TIME, I was adapting `Metropolis` Beamer theme to get my institutional templates.
+Indeed, `Metropolis` Beamer theme is a great work that is very convenient and well appreciated by many.
+
+BUT, `Metropolis` seems not maintained anymore and is not flexible enough.
+Moreover, `Metropolis` (or its successor initiative Moloch) and Beamer in some extends are not very flexible.
+For example, it requires cumbersome modifications to apply a different background for your section frames.
+
+SO, `Gotham` tries to bring that kind of flexibility and `LaTeX3` implementation on top of the good-looking `Metropolis` theme.
+
+
+## See it in action
+Here are some screenshot of what you can obtain:
+
+<img src="support/gotham-example169transp-1.png" width="700">
+
+<img src="support/gotham-example43dark-1.png" width="700">
+
+An `pdf` example/demo result is available [here](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/), and the `tex` source file to build it is available [here](/examples/section-Gotham.tex).
+
+The following code shows a **minimal example** of a Beamer presentation using Gotham.
+```latex
+\documentclass{beamer}
+\usetheme{gotham}
+\title{A minimal example}
+\date{\today}
+\author{Romain NOEL}
+\institute{Centre for Modern Beamer Themes}
+\begin{document}
+ \maketitle
+ \section{First Section}
+ \begin{frame}{First Frame}
+ Hello, world!
+ \end{frame}
+\end{document}
+```
+is yielding the following:
+
+<img src="support/gotham-exampleSimple-1.png" width="700">
+
+
+## Some of the features included
+- `l3build` a build system for LaTeX that unpack the sources, build the documentation and examples, run unit tests, check tags, prepare for CTAN publishing, etc...
+- `expl3`
+- dark, light and transparent theme
+- can adapt to 16:9 and 4:3 screen format
+- progress bar
+- **can mix** themes
+
+
+## Documentation
+The complete `pdf` documentation can be found through an [artefact](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/).
+
+
+## How to install ?
+Several possibilities are available and tested:
+- download the `.sty` released zip files,
+- build from sources using `l3build`,
+- download or update from [CTAN](https://ctan.org/pkg/beamertheme-gotham),
+- fork a example from [Overleaf](https://overleaf.com) .
+
+### Download from release
+The zip file containing the `.sty` files is downloadable through our latest [release link](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/releases/)
+
+### Build from sources
+You can also install the theme from sources, in which case you need a working LaTeX installation with `l3build` installed.
+Then just follow these steps:
+```bash
+git clone https://gitlab.com/RomainNOEL/beamertheme-gotham.git
+cd beamertheme-gotham
+l3build install
+```
+
+Additionally you can use the other `l3build` target:
+- `l3build unpack` builds the theme style files.
+- `l3build doc` builds this documentation manual and the examples.
+- `l3build check` builds the theme and manual.
+- `l3build install` installs the theme into your local texmf folder.
+- STOP unless you want remove it.
+- `l3build uninstall` removes the theme from your local texmf folder.
+- `l3build clean` removes the files generated by `l3build`.
+
+### Download from CTAN
+The CTAN repository is available through the Gotham [package](https://ctan.org/pkg/beamertheme-gotham), so you can install it using your favorite LaTeX package manager. For example, with `tlmgr`:
+```bash
+tlmgr install beamertheme-gotham
+```
+
+### Fork from Overleaf example
+If you want to play with it before installing, you can fork this [Overleaf project](https://overleaf.com) and have fun.
+
+
+## License
+The LaTeX Project Public License [(LPPL)](/LICENSE.txt)
+
+
+## Project status
+The status of the project is "maintained".
+However, if you have a bit of free time and good will to help the maintenance, it will be very appreciated and welcomed. \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
new file mode 100644
index 0000000000..e34df0a4c6
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
@@ -0,0 +1,11 @@
+# [Gotham](https://gitlab.com/RomainNOEL/beamertheme-gotham) announcement
+
+This `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`.
+`Gotham` tries to bring higher flexibility thanks to `LaTeX3` implementation on top of the good-looking `Metropolis` theme.
+
+## Features
+- 16:9 and 4:3 compatible
+- supports different background color (dark and light)
+- can adapt beamertemplate to declared context
+- extend color set
+- improved progress bars
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
new file mode 100644
index 0000000000..ff43a42640
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
@@ -0,0 +1,3 @@
+Please see the file `gotham-exampleSimple.tex` in:
+doc/latex/gotham/examples/gotham-exampleSimple.tex
+Thanks \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
new file mode 100644
index 0000000000..04975af210
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
new file mode 100644
index 0000000000..1038810b5b
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
new file mode 100644
index 0000000000..3f6105497a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
new file mode 100644
index 0000000000..4072ea2504
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
@@ -0,0 +1,1094 @@
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ % \usepackage{gotham}
+ % \usepackage{readprov}
+ % \ReadPackageInfos{beamerthemegotham}
+ \edef\GothamVersion{v1.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\filedate}
+
+
+ \usepackage{parskip}
+ \usepackage{setspace}
+ \usepackage{xspace}
+ \onehalfspacing
+
+ \usepackage{xcolor}
+ \definecolor{tPrim}{HTML}{00707F} % Green-Blue
+ \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light
+ \definecolor{tAccent}{HTML}{F07F3C} % Orange
+ \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige
+
+ \usepackage{listings}
+ \lstset{%
+ language=[LaTeX]{TeX},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{tPrim}\bfseries,
+ commentstyle=\color{tSec},
+ stringstyle=\color{tSec},
+ backgroundcolor=\color{white},
+ numbers=none,
+ numberstyle=\tiny\ttfamily,
+ stepnumber=2,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ frame=none,
+ framerule=1pt,
+ tabsize=2,
+ rulesep=5em,
+ captionpos=b,
+ breaklines=true,
+ breakatwhitespace=false,
+ framexleftmargin=0em,
+ framexrightmargin=0em,
+ xleftmargin=0em,
+ xrightmargin=0em,
+ aboveskip=1em,
+ belowskip=1em,
+ morekeywords={\usetheme,\institute,\maketitle,\subtitle,
+ \gothamset,
+ \colorlet,\setbeamercolor,
+ plain,\defbeamertemplate
+ },
+ }
+ \lstMakeShortInline|
+
+ \usepackage{hyperref}
+
+ \setlength{\fboxsep}{0pt}%
+ \usepackage{subcaption} % for subfigures
+ \usepackage{cleveref} % for references
+
+ \providecommand{\defopt}[1]{default: #1}%{\underline{#1}}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\par
+ \begingroup
+ \vspace{0.5em}
+ }{
+ \par
+ \endgroup
+ \end{minipage}
+ }
+
+
+%% =====================================================================
+\title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer}
+\author{Romain NOEL \\ \url{romainoel@free.fr}}
+\date{\GothamVersion~---~\GothamDate}
+
+\providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace}
+
+%% =====================================================================
+
+
+\begin{document}
+\maketitle
+\tableofcontents
+
+
+%% ------------------------------------
+\section{Introduction}
+ Beamer is an awesome way to make presentations with \LaTeX, but its theme selection is surprisingly sparse.
+ The stock themes share an aesthetic that can be a little cluttered, while the few distinctive custom themes available are often specialized for a particular corporate or institutional brand.
+
+ The goal of \themename is to provide a simple, modern Beamer theme suitable for anyone to use.
+ It tries to minimize noise and maximize space for content; some visual flourishes are offered as options.
+
+ The final product provides a modern, elegant and versatile theme with a high degree of customization.
+ So it can easily be used to build a particular corporate or institutional brand theme on top of it.
+
+ The implementation of this theme is strongly inspired from the excellent \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, from which it borrows numerous options.
+ \themename's codebase lives on
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham} {Gitlab}.
+ \newline
+ If you have issues, find mistakes in the manual or want to help make the theme even better, please get in touch there.
+ Any feature request, issue report or merge requests are welcome.
+
+
+%% ------------------------------------
+\section{Getting Started}
+\subsection{Installing from CTAN}
+ The latest stable version of \themename is available on
+ \href{https://ctan.org/pkg/beamertheme-gotham}{CTAN} and should now be part of the usual \TeX\ distributions (\TeX\ Live, Mac\TeX\ , Mik\TeX\ ), under the name \textit{beamertheme-gotham}.
+ It means that if your distribution is kept up-to-date, the package should normally be already installed on your system.
+ If this is not the case, consider updating the packages of your Tex distribution.
+
+ For \TeX\ Live and Mac\TeX\ users, this usually means running
+ \begin{lstlisting}
+ tlmgr update --all
+ \end{lstlisting}
+ or if administrative privileges are required
+ \begin{lstlisting}
+ sudo tlmgr update --all
+ \end{lstlisting}
+
+ For Mik\TeX\ users, please refer to \href{https://miktex.org/howto/update-miktex}{the official Mik\TeX\ documentation}.
+
+
+\subsection{Installing from Gitlab}
+ If you want to use the cutting-edge development version of \themename, you can install it manually by following these steps:
+ \begin{description}
+ \item[Download the source] from
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham}{\themename repository}
+ using |git clone| or as a
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham/-/archive/master/beamertheme-gotham-master.zip}{zip archive}
+ of the latest development version.
+ \item[Compile the style files] by running |l3build unpack| inside the downloaded directory.
+ (Or run \LaTeX{} directly on |source/gothamtheme.ins|.)
+ \item[Move the resulting |*.sty| files] to the folder containing your presentation.
+ To use \themename with many presentations, run
+ |l3build install| or move the |*.sty| files to a folder in your \TeX{} path instead.
+ \item[Use the theme] by declaring \lstinline|\usetheme{gotham}| in the preamble of your document.
+ \end{description}
+
+ \themename uses the l3build system to offer the following installation options for advanced users:
+ \begin{description}
+ \item[|l3build unpack|] builds the theme style files.
+ \item[|l3build doc|] builds this documentation manual and the examples.
+ \item[|l3build check|] builds the theme and manual.
+ \item[|l3build clean|] removes the files generated by |l3build|.
+ \item[|l3build install|] installs the theme into your local texmf folder.
+ \item[|l3build uninstall|] removes the theme from your local texmf folder.
+ \end{description}
+
+
+% \subsection{Overleaf}
+% \themename is therefore automatically supported for new documents.
+% If you want to switch older documents to use the \themename theme, you need to \href{https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version}{select
+% TexLive 2021 or higher as your TeX Live version} (this may cause issues with other packages used in your presentation).
+
+% In addition to that, a template project was created and is publicly available in the \href{https://www.overleaf.com/latex/templates/gotham-beamer-theme/wjyyzvdzqkgf}{Overleaf Gallery} to bootstrap your presentation.
+
+
+%% ------------------------------------
+\subsection{A Minimal Example}
+ The following code shows a minimal example of a Beamer presentation using \themename, and the output generated is given on \cref{fig-minimal}.
+
+ \begin{lstlisting}
+ \documentclass{beamer}
+ \usetheme{gotham} % Loads Gotham theme
+ \title{A minimal example}
+ \subtitle{using Gotham theme}
+ \date{\today}
+ \author{John DOE}
+ \institute{Your university or company}
+
+ \begin{document}
+ \maketitle
+ \section{First Section}
+ \begin{frame}{First Frame}
+ Hello world !
+ \end{frame}
+ \end{document}
+ \end{lstlisting}
+
+ \begin{figure}[htp]
+ \centering
+ \fbox{\includegraphics[width=0.7\textwidth]{gotham-exampleSimple.pdf}}
+ \caption{A simple example.}
+ \label{fig-minimal}
+ \end{figure}
+
+
+\subsection{Dependencies}
+ \themename depends on the |beamer| class and the following standard packages:
+ \begin{itemize}
+ \item |tikz|
+ \item |expl3|
+ \item |xfp|
+ \item |etoolbox|
+ \item |ifxetex|
+ \item |ifluatex|
+ \end{itemize}
+
+ For best results, we recommend installing the fonts
+ \href{https://github.com/mozilla/Fira}{|Fira Sans|} and |Fira Mono| and compiling with \themename using XeLaTeX or LuaTeX.
+ These are optional dependencies; \themename is compatible with (e.g.) pdf\LaTeX\ and will fall back to standard fonts if |Fira Sans| or |Fira Mono| is not installed.
+
+ The packaged name of |Fira Sans| is |Fira Sans OT| in some Linux distributions; this case is automatically handled by \themename.
+
+
+%% ------------------------------------
+\section{Customization}
+\subsection{Package options}
+ \themename provides a number of options, which can be set using a key=value interface.
+ The primary way to set options is to provide a comma-separated list of option-value pairs when loading \themename in the preamble:
+ \begin{lstlisting}[gobble=2]
+ \usetheme[option1=value1, option2=value2, ...]{gotham}
+ \end{lstlisting}
+
+ Options can be changed at any time --- even mid-presentation ! --- with the |\gothamset| command.
+ \begin{lstlisting}[gobble=2]
+ \gothamset{option1=newvalue1, option2=newvalue2, ...}
+ \end{lstlisting}
+
+ The list of options is structured as shown in the following example.
+
+ \begin{DescribeGothamOption}{option key}
+ {list of possible values}{default}
+ A short description of the option.
+ \end{DescribeGothamOption}
+
+ As \themename implementation is heavily inspired from the excellent
+ \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, many of \textsc{Metropolis} options are also available in \themename.
+
+
+\subsubsection{Font theme}
+ \DescribeOption{format title}
+ % \begin{DescribeGothamOption}{format title}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format subtitle}
+ % \begin{DescribeGothamOption}{format subtitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format frametitle}
+ % \begin{DescribeGothamOption}{format frametitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format framesubtitle}
+ % \begin{DescribeGothamOption}{format framesubtitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format part}
+ % \begin{DescribeGothamOption}{format part}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format section}
+ % \begin{DescribeGothamOption}{format section}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{format subsection}
+ {regular, lower, upper, titlecase}{regular}
+ Individually controls the format/case of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles.
+ \vspace{6em}
+ \end{DescribeGothamOption}
+
+ \DescribeOption{shape title}
+ % \begin{DescribeGothamOption}{shape title}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{shape subtitle}
+ % \begin{DescribeGothamOption}{shape subtitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape frametitle}
+ % \begin{DescribeGothamOption}{shape frametitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape framesubtitle}
+ % \begin{DescribeGothamOption}{shape framesubtitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape part}
+ % \begin{DescribeGothamOption}{shape part}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape section}
+ % \begin{DescribeGothamOption}{shape section}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{shape subsection}
+ {regular, italic, smallcaps}{regular}{
+ Individually controls the shape/series of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles.
+ \vspace{6em}
+ }\end{DescribeGothamOption}
+
+ \begin{figure}[htb]
+ \centering
+ \begin{subfigure}[b]{0.475\textwidth}
+ \centering
+ \includegraphics[width=\linewidth]{gotham-test-035-a.png}
+ \caption{Example of |format~frametitle=titlecase, shape~frametitle=smallcaps, format~framesubtitle= lower, shape~framesubtitle=regular|.}
+ \label{fig-035-a}
+ \end{subfigure}
+ \begin{subfigure}[b]{0.475\textwidth}
+ \centering
+ \includegraphics[width=\linewidth]{gotham-test-035-b.png}
+ \caption{Example of |format~frametitle=lower, shape~frametitle=italic, format~framesubtitle= regular, shape~framesubtitle=italic|.}
+ \label{fig-035-b}
+ \end{subfigure}
+ \caption{Examples of format and shape settings.}
+ \label{fig-035}
+ \end{figure}
+
+
+\subsubsection{Color theme}
+ The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes.
+ All of the theme's styles are defined in terms of a few main colors:
+ \begin{itemize}
+ \item |colorA| The primary theme color, used for frametitle, standout and text if the appropriate options are selected.
+ \end{itemize}
+
+ An easy way to customize the theme is to redefine these colors using:
+ \begin{lstlisting}
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gDarkTeal} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+ \end{lstlisting}
+
+ \begin{DescribeGothamOption}{background}{light, dark, transparent}{transparent}{
+ Controls weather the color of all headings (title page, frame title, etc.) should be in black (|default|) or in a slightly darker shade of the theme color |theme|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{colorset}
+ {red, anthracite}{anthracite}{% blue, green, orange, teal,
+ Predefined set colors (|colorA, colorB, ...|) leading to different ambiances.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{block}{native, transparent, fill}{native}{
+ Optionally adds a light grey background to block environments like |theorem| and |example|.
+ }\end{DescribeGothamOption}
+
+
+\subsubsection{Inner theme}
+ \begin{DescribeGothamOption}{title page}
+ {gotham~normal, gotham~reversed, gotham~dividedpic, gotham~splitvert, <your-name>}{gotham~normal}{
+ By setting this option you can change the title page according predefined style or even set your own template.
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{title page}{<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{watermark default}
+ {on, off}{off}{
+ Enable or disable the watermark background template by default (ie. without using |\begin{frame}[watermark]|).
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{watermark template}
+ {gotham~draft, <your-name>}{gotham~draft}{
+ Set the watermark background template to use when the |watermark| option is activated (by default or locally).
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{standin template}
+ % \begin{DescribeGothamOption}{standin template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{standout template}
+ {gotham, <your-name>}{default}{
+ Set the standin and stantout background template to use when the |standin| or |stantout| frame option is activated.
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{background}{standin/<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+
+ \DescribeOption{partframe default}
+ % \begin{DescribeGothamOption}{partframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectionframe default}
+ % \begin{DescribeGothamOption}{sectionframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectionframe default}
+ % \begin{DescribeGothamOption}{subsectionframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectionframe default}
+ {on, off}{on}{
+ Enable or disable the display of the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment.
+ \vspace{1em}
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{partframe template}
+ % \begin{DescribeGothamOption}{partframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectionframe template}
+ % \begin{DescribeGothamOption}{sectionframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectionframe~template}
+ % \begin{DescribeGothamOption}{subsectionframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectionframe~template}
+ {gotham progressbar, gotham simple, gotham splitvert progressbar, gotham splitvert simple, gotham progressvert}{gotham progressbar}{
+ Set the frame template to use when the |part| (or |section|, |subsection|, |subsubsection| respectively) frame option is activated (ie. using |\begin{frame}[part]|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|.
+ % \vspace{3em}
+ }\end{DescribeGothamOption}
+
+
+ \begin{DescribeGothamOption}{tocframe template}
+ {gotham simple, gotham bullet, <your-name>}{gotham bullet}{
+ Set the table of contents template to use when the |toc| option is activated.
+ If you want to use your own template, this latter should be previously defined with:
+ % \lstinline|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{part in toc}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{section in toc}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{subsection in toc shaded}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{subsubsection in toc shaded}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{background canvas}{toc/<your-name>}{<your-definition>}
+ \defbeamertemplate{toc page}{<your-name>}{<your-defintion, set them now by exmaple>}
+ \end{lstlisting}
+ % |.
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{parttocframe default}
+ % \begin{DescribeGothamOption}{parttocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectiontocframe default}
+ % \begin{DescribeGothamOption}{sectiontocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectiontocframe default}
+ % \begin{DescribeGothamOption}{subsectiontocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectiontocframe~default}
+ {on, off}{default}{
+ Enable or disable the display of the table of content frame after the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment.
+ \vspace{1em}
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{parttocframe template}
+ % \begin{DescribeGothamOption}{parttocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectiontocframe template}
+ % \begin{DescribeGothamOption}{sectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectiontocframe~template}
+ % \begin{DescribeGothamOption}{subsectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectiontocframe~tem..}
+ {gotham simple, gotham bullet, <your-name>}{gotham bullet}{
+ Set the frame template to use when the table of contents at each new |part| (or |section|, |subsection|, |subsubsection| respectively).
+ This new frame is internally using the |tocpart| frame option to activate the frame template.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|.
+ % \vspace{3em}
+ }\end{DescribeGothamOption}
+
+ % \begin{figure}[h!]
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-04.jpg}}
+ % \caption*{plain (default)}
+ % \end{subfigure}
+ % \hspace{\fill}
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-05.jpg}}
+ % \caption*{style1}
+ % \end{subfigure}
+ % \hspace{\fill}
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-06.jpg}}
+ % \caption*{style2}
+ % \end{subfigure}
+ % \end{figure}
+
+
+\subsubsection{Outer theme}
+ \DescribeOption{sidebar~canvas~right~template}
+ % \begin{DescribeGothamOption}{subsectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{sidebar~canvas~left~template}
+ {~gotham~filigrane, empty, <your-name>}{gotham~filigrane}{
+ Setting templates for left and right sidebar canvas which are activated when giving the frame option |\begin{frame}[edging]|.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{sidebar canvas right}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{edging default}
+ {on, off}{off}{
+ The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |\begin{frame}[noedging]|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{frametitle template}
+ {gotham~subsameline, gotham~subnewline, <your-name>}{gotham~subsameline}{
+ Option to set the frametitle template.
+ \themename{} offers one template that adds the subtitle on the same line (|gotham~subsameline|) and one that adds the subtitle on a new line (|gotham~subnewline|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frametitle}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{framesubtitle template}
+ {gotham~subnewline, <your-name>}{gotham~subnewline}{
+ Setting the template to use when the subtitle is on a new line.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{framesubtitle}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{frametitle continuation template}
+ {gotham, beamer, tot, <your-name>}{gotham}{
+ Setting the template that is used in the frametitle when a frame too long and is continued/broke into several frames (using the frame option |allowframebreaks|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frametitle continuation}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{numbering}{none, framenumber, totalframenumber, appendixframenumber, pagenumber, totalpagenumber, circle}{none}{
+ Setting the template with the frame number at the bottom right of each slide.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{footer template}
+ {gotham, <your-name>}{gotham}{
+ Setting the template that appears in the footer of the frame.
+ |gotham| footer print the |shortdate| at right, the |shorttitle| in the middle and the |shortauthor| at left.
+ Since in 16/9 the height is precious, |gotham| template also offers the possibility to rotate |shortdate| and |shortauthor| so they appear on sides.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frame footer}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{rotateFooter default}
+ {on, off}{off}{
+ Enable or disable the |rotateFooter| frame option by default (ie. without using |\begin{frame}[rotateFooter]| on every frame).
+ If the option is activated, it can be deactivated locally using the frame option |\begin{frame}[noRotateFooter]|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames shape}
+ {default (bullet from beamer), tick, box, gotham minibullet, gotham box, gotham minibox, <your-name>}{gotham~minibullet}{
+ Setting the shape of the mini frames to use, if the mini frame bundle refers to it (which is usually the case).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{mini frame}{<your-name>}{
+ <your-defintion>
+ }[action]{
+ \setbeamersize{mini frame size=.1cm, mini frame offset=.05cm}
+ }
+ \defbeamertemplate{mini frame in current subsection}{<your-name>}{
+ <your-defintion>
+ }
+ \end{lstlisting}
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames bundle}
+ {gotham~mini, beamer, gotham~nano <your-name>}{gotham~mini}{
+ Setting the set of symbols used in the mini frame navigation.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{miniframe~home}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~current~slide}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~done~current~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~todo~current~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~done~other~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~todo~other~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~part}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~current}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~done}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~todo}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~current}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~todo}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~done}{<your-name>}{<your-def>}
+ \end{lstlisting}
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames compress}
+ {on, off}{on}{
+ A shortcut for the beamer option |compress| that affects the mini frames.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav spreading}
+ {spreading, centering, left, right}{spreading}{
+ Controls how the mini frame should spread in the navigation bar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav sectioning}
+ {none, section, secsubsection}{none}{
+ Setting the |section in head/foot| template that is used on top of the mini frame navigation bar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav position}
+ {none, head, foot, left, right}{none}{
+ Setting where the mini frame navigation bar should appear.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar position}
+ {none, head, frametitle, foot, circlehead, left, right}{none}{
+ Setting where the progressbar should appear.
+ The different positions are pretty obvious from their name, except for |circlehead|.
+ This latter option is putting a circular progressbar around the frametitle-logo (from frametitle template defined with gotham theme).
+ It worth noting that by doing so, the frametitle is using the command |\gothamInstituteLogoCircle| instead of |\gothamInstituteLogoSquare| which is used otherwise.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar style}
+ {rectangle, rounded box, moving circle, fixed circle}{rectangle}{
+ Setting how the progressbar should appear.
+ |rectangle| option is using sharp rectangle for the progressbar, while |rounded box| is using rounded box and adds the percentage of progression at its right.
+ |moving circle| and |fixed circle| are concerning the option |progressbar position=circle| only.
+ |moving circle| add the number of the frame in a circle moving (following) the progression of the bar, while |fixed circle| put this framenumber constantly at the right of the circular progressbar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar advancement}
+ {tlbr, brlt}{tlbr}{
+ Defines in which direction the progressbar should evolve.
+ |tlbr| is the shortcut for: starting from the top left corner, it goes bottom then right, ie. anti-clockwise.
+ |brtl| is the shortcut for: starting from the bottom right corner, it goes top then left, ie. clockwise.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar mfn}
+ {on, off}{off}{
+ Enable or disable the display of the mini frame navigation bar within the progressbar.
+ }\end{DescribeGothamOption}
+
+
+\subsection{Setup all the options}
+ \begin{lstlisting}
+ \gothamset{
+ % from font theme
+ format title, shape title,
+ format subtitle, shape subtitle,
+ format frametitle, shape frametitle,
+ format framesubtitle, shape framesubtitle,
+ format part, shape part,
+ format section, shape section,
+ format subsection, shape subsection,
+ % from color theme
+ background,
+ block,
+ colorset,
+ % from inner theme
+ title page,
+ watermark template, watermark default,
+ standout template, standin template,
+ partframe template, partframe default,
+ sectionframe template, sectionframe default,
+ subsectionframe template, subsectionframe default,
+ subsubsectionframe template, subsubsectionframe default,
+ tocframe template,
+ parttocframe template, parttocframe default,
+ sectiontocframe template, sectiontocframe default,
+ subsectiontocframe template, subsectiontocframe default,
+ %subsubsectiontocframe template, subsubsectiontocframe default,
+ % from outer theme
+ sidebar canvas right template, sidebar canvas left template,
+ edging default,
+ frametitle template, framesubtitle template, frametitle continuation template,
+ numbering,
+ rotateFooter default,
+ footer template,
+ mini frames shape, mini frames bundle, mini frames compress, mini frames nav spreading,
+ progressbar position, progressbar style, progressbar advancement, progressbar mfn,
+ }
+ \end{lstlisting}
+
+
+\subsection{Frame options}
+ Frame options are affecting the templates used on the current frame through the following syntax:
+ \begin{lstlisting}
+ \begin{frame}[option] ... \end{frame}
+ \end{lstlisting}
+ Below a description of the different frame options brought by \themename{}.
+
+ \DescribeOption{noBGC}
+ Apply an empty |background canvas| template.
+
+ \DescribeOption{watermark}
+ \DescribeOption{nowatermark}
+ Apply (with |watermark|) or deactivated (|nowatermark| when \lstinline|\gothamset{watermark default=on}| was given) the |background| template, through %\\
+ \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-def>}| and %\\
+ \lstinline|\gothamset{watermark template=<your-name>}|.
+
+ \DescribeOption{standout}
+ \DescribeOption{standin}
+ Apply the |standin| (and |standout| respectively) templates through the definition
+ \lstinline|\defbeamertemplate{standin}{<your-name>}{<your-def>}| and the option \lstinline|\gothamset{standin template=<your-name>}|.
+
+ \DescribeOption{toc}
+ Appy the |toc| template defined by \lstinline|\gothamset{tocframe template=<your-name>}|.
+
+ \DescribeOption{edging}
+ \DescribeOption{noedging}
+ Apply (with |edging|) or deactivated (|noedging| when \lstinline|\gothamset{edging default=on}| was given) the |sidebar canvas left| (and right respectively) template, through
+ \lstinline|\defbeamertemplate{sidebar canvas left}{default/<your-name>}{<your-def>}| (and right)
+ and the option
+ \lstinline|\gothamset{sidebar canvas left template=<your-name>}| (and right).
+
+ \DescribeOption{nologo}
+ \DescribeOption{nofootline}
+ \DescribeOption{nofooter}
+ Apply empty |logo| (and |footline|, |footer| respectively) templates.
+ This can be convenient when extra space is needed.
+ \vspace{1em}
+
+ \DescribeOption{rotateFooter}
+ \DescribeOption{noRotateFooter}
+ Enable or disable the rotation of the elements in the |footer|.
+ This can be convenient when extra space is needed in 16/9 mode especially.
+
+ \DescribeOption{part}
+ \DescribeOption{section}
+ \DescribeOption{subsec}
+ \DescribeOption{subsubsec}
+ Apply \lstinline|\usebeamertemplate{part frame}|, (|section frame|, |subsection frame| and |subsubsection frame| respectively) templates.
+ This makes more sense for internal use, but can be reused everywhere else.
+ \vspace{2em}
+
+ \DescribeOption{tocpart}
+ \DescribeOption{tocsec}
+ \DescribeOption{tocsubsec}
+ \DescribeOption{tocsubsubsec}
+ Apply \lstinline|\usebeamertemplate{toc part frame}|, (|toc section frame|, |toc subsection frame| and |toc subsubsection frame| respectively) templates.
+ This makes more for internal use, but can be reused everywhere else.
+ \vspace{1em}
+
+
+%% ------------------------------------
+\subsection{Commands for Customization}
+ \themename{} defines some commands that can be used as hooks, ie., that can be redefined when needed.
+
+ \begin{function}{\gothamInstituteLogoCircle[1][4ex]}
+ \begin{arguments}
+ \item |height| of the picture.
+ \end{arguments}
+ Command to include the circular logo of your institute in the frametitle when using \lstinline|\gothamset{progressbar position=circlehead}|.
+ For example, you redefine this command through:
+ \begin{lstlisting}[gobble=6]
+ \renewcommand{\gothamInstituteLogoCircle}[1][4ex]{
+ \includegraphics[height=#1]{<your-logo-circular>}
+ }
+ \end{lstlisting}
+ \end{function}
+
+ \begin{function}{\gothamInstituteLogoSquare[1][4ex]}
+ \begin{arguments}
+ \item |height| of the picture.
+ \end{arguments}
+ Command to include the circular logo of your institute in the frametitle.
+ For example, you redefine this command through:
+ \begin{lstlisting}[gobble=6]
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ \includegraphics[height=#1]{<your-logo-square>}
+ }
+ \end{lstlisting}
+ \end{function}
+
+ \begin{function}{\gothamFrameSubtitleSep}
+ Command defining the separator used between the frametitle and the subtitle.
+ \end{function}
+
+ \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane}
+ Commands that are used by default in the |sidebar canvas right| (and left).
+ This avoids the redefinition of the whole templates, especially since the |sidebar canvas right| is containing elements by default in Beamer theme (like the |logo|).
+ \end{function}
+
+
+\subsection{Color Customization}
+ The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes.
+ All of the theme's styles are defined in terms of three Beamer colors:
+ \begin{itemize}
+ \item |normal text| (dark fg, light bg)
+ \item |alerted text| (colored fg, should be visible against dark or light)
+ \item |example text| (colored fg, should be visible against dark or light)
+ \end{itemize}
+
+ An easy way to customize the theme is to redefine these colors using
+ \begin{lstlisting}
+ \setbeamercolor{ ... }{ fg= ... , bg= ... }
+ \end{lstlisting}
+ in your preamble.
+ For greater customization, you can redefine any of the other stock Beamer colors.
+ In addition to the stock colors the theme defines a number of \themename specific colors, which can also be redefined to your liking.
+
+ \begin{lstlisting}
+ \setbeamercolor{progress bar}{ ... }
+ \setbeamercolor{title separator}{ ... }
+ \setbeamercolor{progress bar in head/foot}{ ... }
+ \setbeamercolor{progress bar in section page}{ ... }
+ \end{lstlisting}
+
+
+\subsection{Font Customization}
+ The default font for \themename is |Fira|.
+ This can be easily changed using the standard font selection commands of the \textsf{fontspec} package.
+ So if you prefer, for example, the \href{http://font.ubuntu.com}{|Ubuntu|} font family, just add the following two commands after loading the \themename theme.
+
+ \begin{lstlisting}
+ \setsansfont{Ubuntu}
+ \setmonofont{Ubuntu Mono}
+ \end{lstlisting}
+
+ If you are expecting to present in a large room or with an underpowered projector, you may want to change the font to a heavier weight of Fira to maximize readability.
+
+ \begin{lstlisting}
+ \setsansfont[BoldFont={Fira Sans SemiBold}]{Fira Sans Book}
+ \end{lstlisting}
+
+
+\subsubsection{Old style figures}
+ The regular \textsf{fontspec} mechanism for changing glyph appearance also applies to this theme.
+ If you want to have old style figures in the text but regular lined figures for math, you could add the following to your preamble:
+ \begin{lstlisting}
+ \usefonttheme{professionalfonts} % required for mathspec
+ \usepackage{mathspec}
+ \setsansfont[BoldFont={Fira Sans},
+ Numbers={OldStyle}]{Fira Sans Light}
+ \setmathsfont(Digits)[Numbers={Lining, Proportional}]{Fira Sans Light}
+ \end{lstlisting}
+
+
+% \subsection{Backgrounds available}
+% xx
+
+
+\subsection{Length Customization}
+ \begin{variable}{\sectionhoffset}
+ length controlling the horizontal offset of the (section title + progress bar) block.
+ Can be useful when extra stuff wants to be displayed on sides of the block.
+ The default value is 0pt.
+ \end{variable}
+
+ \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+ Length controling the horizontal and vertical offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from \themename.
+ \end{variable}
+
+ \begin{variable}{\gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+ length controlling the horizontal and vertical positioning of the left and right elements of the rotated footer.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleLeftPadding}
+ length controlling the horizontal space between the left border of the page and the left side of the rule.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleHeight, \gothamFootlineRuleLength}
+ Dimensions controlling the height and the length of the rule used to delimit the footer.
+ \end{variable}
+
+ \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+ Lengths controlling the aspect of |progress circle|.
+ |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter).
+ |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number.
+ |\gothamProgressCircBorderWidth| is controlling width of the progress circle.
+ \end{variable}
+
+ \begin{figure}[htp]
+ \centering
+ \fbox{\includegraphics[width=0.7\textwidth]{gotham-layout.pdf}}
+ \caption{The layout used by \themename.}
+ \end{figure}
+
+
+%% ------------------------------------
+\section{Tips \& Tricks}
+\subsection{Backup Slides}
+ Speakers will often include extra slides at the end of their presentation to refer to during audience questions.
+ One easy way to do this is to include the \verb|appendixnumberbeamer| package in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename will automatically turn off slide numbering for slides in the appendix.
+
+
+\subsection{Sources of inspiration}
+ Many Beamer themes have been used as sources of inspiration to build \themename{}:
+ \begin{itemize}
+ \item \url{https://github.com/matze/mtheme} for dark/light theme and standout page.
+ \item \url{https://github.com/hamaluik/Beamer-Theme-Execushares} and
+ \\ \url{https://github.com/pcafrica/focus-beamertheme} for titlepage and sectionpage.
+ \item \url{https://github.com/LukasPietzschmann/awesome-beamer} for titlepage.
+ \item \url{https://github.com/luistar/unina-beamer/tree/master} and
+ \\ \url{https://github.com/jkjaer/aauLatexTemplates/tree/master/aauBeamer/aausimple} for circlehead progress bar.
+ \item \url{https://github.com/povanberg/flux-beamer} for toc.
+ \item \url{https://github.com/fliptanedo/FlipBeamerTheme} for numbering circled fraction.
+ \item \url{https://gitlab.com/RomainNOEL/latex3_template_pkg} for LateX3 template.
+ \end{itemize}
+
+
+%% ------------------------------------
+\section{Known Issues}
+
+\subsection{Title formats}
+\label{sec:titleformats}
+ Be aware that not every font supports small caps, so the |smallcaps| or |upper| options may not work if you use a font other than |Fira Sans|.
+ In particular, the Computer Modern sans-serif typeface, which is used when \themename is compiled with pdf\LaTeX, does not have a small-caps variant.
+
+ The title format options |upper| and |smallcaps| are quite nice from an aesthetic point of view, but their use of |\MakeLowercase| and
+ |\MakeUppercase| can cause unexpected problems.
+ For example:
+ \begin{itemize}
+ \item Some commands, like |\\|, do not work inside |\MakeLowercase| and |\MakeUppercase|.
+ (See \href{https://github.com/matze/mtheme/issues/125}{\#125})
+ \item Only alphabetic characters are affected by |\MakeLowercase|, so numerals and punctuation remain at full height.
+ This can spoil some of the aesthetic benefits of |upper|.
+ (See \href{https://github.com/matze/mtheme/issues/33}{\#33})
+ \item |\MakeLowercase| and |\MakeUppercase| apply to math mode and |\scshape| does not.
+ This can easily introduce mathematical errors that are hard to catch.
+ \item It is impossible to typeset symbols which are encoded as uppercase letters in a different font.
+ In particular, |\mathbb| and |\mathcal| letters will be replaced by other math glyphs.
+ (See \href{https://github.com/matze/mtheme/issues/153}{\#153})
+ \end{itemize}
+
+ The |smallcaps| and |upper| options are safe to use if your titles contain only alphabetic characters and do not require the expansion of any macros.
+
+
+\subsection{Interactions with other color themes}
+ \themename can be used along with any other Beamer color theme, such as |crane| or |seahorse|.
+ If you wish to do this, it is usually best to include the \themename subpackages individually so the \themename color theme is never loaded.
+ This will prevent conflicts between the \themename color theme and your preferred theme.
+
+ For example, overriding the color theme as follows may not work as expected because |\usetheme{gotham}| loads the \themename color theme, which defines a relationship between the frametitle background and the primary palette of the theme.
+ Since |seahorse| assumes a different relationship between its palettes, the result is a grey, rather than periwinkle, frametitle background.
+
+ \begin{lstlisting}
+ \usetheme{gotham}
+ \usecolortheme{seahorse}
+ \end{lstlisting}
+
+ The correct colors are chosen if the \themename outer, inner, and font themes are loaded seperately:
+ \begin{lstlisting}
+ \useoutertheme{gotham}
+ \useinnertheme{gotham}
+ \usefonttheme{gotham}
+ \usecolortheme{seahorse} % or your preferred color theme
+ \end{lstlisting}
+
+ Please note that \themename may not use all the colors defined in your favourite Beamer color theme.
+ In particular, \themename does not set a background color for the title; this will cause issues when using color themes like |whale| which set a white foreground for the title.
+
+
+\subsection{Notes on second screen}
+ If you use the |[show notes on second screen]| option built into Beamer and compile with XeLaTeX, text on slides following the first section slide may be rendered in white instead of the regular color.
+ This is due to \href{http://tex.stackexchange.com/questions/288408/}{a bug} in Beamer or XeLaTeX itself.
+ You can work around it either by compiling with LuaTeX or by adding the following code to your preamble to reset the text color on each slide.
+
+ \begin{lstlisting}
+ \makeatletter
+ \def\beamer@framenotesbegin{% at beginning of slide
+ \usebeamercolor[fg]{normal text}
+ \gdef\beamer@noteitems{}%
+ \gdef\beamer@notes{}%
+ }
+ \makeatother
+ \end{lstlisting}
+
+
+\subsection{Standout frames with labels}
+ Because the |standout| frame option creates a group to restrict the colour change to a single slide, labels defined after calling |standout| will stay local to the group.
+ In other words, the following may result in a ``label undefined'' error.
+ \begin{lstlisting}
+ \begin{frame}[standout, label=conclusion]{Conclusion}
+ Awesome slide
+ \end{frame}
+ \end{lstlisting}
+
+ To fix this problem, change the order of the keys in the frame.
+ \begin{lstlisting}
+ \begin{frame}[label=conclusion, standout]{Conclusion}
+ Awesome slide
+ \end{frame}
+ \end{lstlisting}
+
+ This error can be unwittingly triggered if you export your slides from Emacs Org mode, which automatically adds labels after frame options.
+ Alex Branham \href{https://github.com/matze/mtheme/issues/203}{offers} the following solution for Org mode users, using |org-set-property|.
+
+ \begin{lstlisting}
+ * Start of a frame
+ :PROPERTIES:
+ :BEAMER_opt: label=conclusion,standout
+ :END:
+ \end{lstlisting}
+
+
+\subsection{Standout frames with Pandoc}
+ With Pandoc versions prior 1.17.2 it was not possible to create standout frames because Pandoc only supported a specific list of frame attributes thus ignoring additional attributes such as |{.standout}|.
+
+
+\subsection{Other issues}
+ \begin{itemize}
+ \item |enumitem| is not working with Beamer.
+ \end{itemize}
+
+
+\subsection*{Todo}
+ List of thing that could be improved (any volunteer welcome):
+ \begin{itemize}
+ \item Reduce the number of @ .
+ \item Rename a lot of length with gotham at the beginning of their name.
+ \item Turn internal length into \_dim.
+ \item Improve documentation.
+ \item Add a hexagonal, wavy and add lengths on the blueprint layout backgrounds.
+ \item Remove calc package (that can be replaced by xfp or just fp).
+ \item Remove colors from tests inner and outer.
+ \item Replace the |\setbeamertemplate{yy}[default/xx]| by |\__gotham_inner_set_template:nn{title~page}| or merge them because the default values in dict/template are interesting but |\__gotham_inner_set_template| are simpler.
+ \item add colorset more "blue-ish", "green-ish" ... from colorA etc.
+ \item add Gotham to lists of Awesome Beamer themes.
+ \end{itemize}
+
+
+\section{License}
+ \themename is licensed under the terms of the
+ \href{https://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons
+ Attribution-ShareAlike 4.0} license.
+
+
+\end{document}
+% EoF
+
+
+% \begin{documentation}
+% \begin{macro|function|variable}{\nameMacro}
+% \begin{syntax}
+% \cs{nameMacro}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{footer template} = \oarg{\defopt{gotham} \textbar ... }
+% \end{syntax}
+% Description of |nameMacro| which xxx.
+% \end{macro|function|variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro|function|variable}{\nameMacro}
+% \begin{arguments}
+% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Description
+% \UnitTested % NOT FOR VARIABLES OF FUNCTIONS
+% \TestFiles{gotham-test-xxx} % NOT FOR VARIABLES
+% \begin{macrocode}
+
+% \end{macrocode}
+% \end{macro|function|variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\nameMacro}
+% Description
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+
+% \end{macrocode}
+% \end{macro}
+% \end{implementation} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
new file mode 100644
index 0000000000..c3056abee7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
new file mode 100644
index 0000000000..71bd8cf1e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
@@ -0,0 +1,65 @@
+\documentclass[aspectratio=169, 10pt]{beamer}
+\usetheme{gotham}
+
+ \gothamset{
+ numbering= framenumber,
+ % tocframe template= gotham simple,
+ parttocframe default=off,
+ sectiontocframe default=off,
+ subsectiontocframe default=off,
+ }
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ % \usepackage{pgfplots}
+ \usepgfplotslibrary{dateplot}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\title[]{Gotham}
+\subtitle{A Modern, versatile and extendable theme for Beamer}
+\date[]{\today}
+\author[]{Romain NOËL}
+\institute{Center for modern beamer themes}
+% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}}
+
+
+\begin{document}
+
+\maketitle
+
+ \begin{frame}[toc]{Table of contents}%
+ \tableofcontents%[hideallsubsections]
+ \end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%% MAINMATTER %%%
+%%%%%%%%%%%%%%%%%%%%
+\input{section-Beamer.tex}
+
+\input{section-Gotham.tex}
+
+\input{section-Conclusion.tex}
+
+
+\appendix
+
+ \begin{frame}[fragile]{Backup slides}
+ Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions.
+
+ The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix.
+ \end{frame}
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
new file mode 100644
index 0000000000..449e20c327
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
new file mode 100644
index 0000000000..af6e53c6ab
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
@@ -0,0 +1,66 @@
+\documentclass[aspectratio=43, 10pt]{beamer}
+\usetheme{gotham}
+
+ \gothamset{
+ background=dark,
+ numbering= framenumber,
+ % tocframe template= gotham simple,
+ parttocframe default=off,
+ sectiontocframe default=off,
+ subsectiontocframe default=off,
+ }
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ % \usepackage{pgfplots}
+ \usepgfplotslibrary{dateplot}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\title[]{Gotham}
+\subtitle{A Modern, versatile and extendable theme for Beamer}
+\date[]{\today}
+\author[]{Romain NOËL}
+\institute{Center for modern beamer themes}
+% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}}
+
+
+\begin{document}
+
+\maketitle
+
+ \begin{frame}[toc]{Table of contents}%
+ \tableofcontents%[hideallsubsections]
+ \end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%% MAINMATTER %%%
+%%%%%%%%%%%%%%%%%%%%
+\input{section-Beamer.tex}
+
+\input{section-Gotham.tex}
+
+\input{section-Conclusion.tex}
+
+
+\appendix
+
+ \begin{frame}[fragile]{Backup slides}
+ Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions.
+
+ The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix.
+ \end{frame}
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
new file mode 100644
index 0000000000..7ba8cef0e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
new file mode 100644
index 0000000000..ae9db4f712
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
@@ -0,0 +1,8 @@
+\documentclass{beamer}
+\usetheme{gotham}
+
+\begin{document}
+ \begin{frame}{Frame With a Title}
+ This is a simple frame.
+ \end{frame}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
new file mode 100644
index 0000000000..1965c272c9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
new file mode 100644
index 0000000000..96d82f5bf3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
new file mode 100644
index 0000000000..acb1efd917
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
@@ -0,0 +1,70 @@
+%PDF-1.5
+%
+4 0 obj
+<< /Length 5 0 R
+ /Filter /FlateDecode
+>>
+stream
+xAJ1 =Ż@cҤ,FBTq3.Le`DB
+Iޗ 8^VYzox٥}қ7ό$dh1#=>E56CV)h|VML { 1]Ɋ7Z ީ\Z 3U!X(OĬ8<NG!Wk鬄adZ{1v8%9> A#K}0g qa$
+endstream
+endobj
+5 0 obj
+ 231
+endobj
+3 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+>>
+endobj
+2 0 obj
+<< /Type /Page % 1
+ /Parent 1 0 R
+ /MediaBox [ 0 0 453.542999 255.117996 ]
+ /Contents 4 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /I true
+ /CS /DeviceRGB
+ >>
+ /Resources 3 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 2 0 R ]
+ /Count 1
+>>
+endobj
+6 0 obj
+<< /Producer (cairo 1.16.0 (https://cairographics.org))
+ /Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
+ /CreationDate (D:20240630140843+02'00)
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000649 00000 n
+0000000417 00000 n
+0000000345 00000 n
+0000000015 00000 n
+0000000323 00000 n
+0000000714 00000 n
+0000000997 00000 n
+trailer
+<< /Size 8
+ /Root 7 0 R
+ /Info 6 0 R
+>>
+startxref
+1049
+%%EOF
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
new file mode 100644
index 0000000000..bbef48867e
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
new file mode 100644
index 0000000000..969a479257
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
@@ -0,0 +1,8842 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023-20** by Romain NOEL <romainoel@free.fr>
+% -----------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2006/05/20 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{gotham.dtx}
+%</driver>
+%<*internal>
+\input expl3-generic \relax
+%</internal>
+%<class>\NeedsTeXFormat{LaTeX3e}
+%<package>\ProvidesExplPackage{beamerthemegotham}{2024/09/20}{1.1.0.b}{A modern, minimal-ish, versatile and extendable yet robust theme for Beamer}
+%<author>Romain NOEL</author>
+%<maintainer>Romain NOEL</maintainer>
+%<url>https://gitlab.com/RomainNOEL/beamertheme-gotham</url>
+%<desc>
+% A modern, minimal-ish, versatile and extendable yet robust theme for Beamer. It uses l3build system to both build and verify (Test-Driven Development) the delivered code.
+% </desc>
+%
+%<*driver>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ % \usepackage{gotham}
+ % \usepackage{readprov}
+ % \ReadPackageInfos{beamerthemegotham}
+ \edef\GothamVersion{v1.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\filedate}
+
+ \usepackage{parskip}
+ \usepackage{setspace}
+ \usepackage{xspace}
+ \onehalfspacing
+
+ \usepackage{xcolor}
+ \definecolor{tPrim}{HTML}{00707F} % Green-Blue
+ \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light
+ \definecolor{tAccent}{HTML}{F07F3C} % Orange
+ \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige
+
+ % \usepackage{fancyvrb}
+ \usepackage{listings}
+ \lstset{%
+ language=[LaTeX]{TeX},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{tPrim}\bfseries,
+ commentstyle=\color{tSec},
+ stringstyle=\color{tSec},
+ backgroundcolor=\color{white},
+ numbers=none,
+ numberstyle=\tiny\ttfamily,
+ stepnumber=2,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ frame=none,
+ framerule=1pt,
+ tabsize=2,
+ rulesep=5em,
+ captionpos=b,
+ breaklines=true,
+ breakatwhitespace=false,
+ framexleftmargin=0em,
+ framexrightmargin=0em,
+ xleftmargin=0em,
+ xrightmargin=0em,
+ aboveskip=1em,
+ belowskip=1em,
+ morekeywords={usetheme,institute,maketitle,@gotham@titleformat,%
+ plain,gothamset,setbeamercolor,defbeamertemplate},
+ }
+ \lstMakeShortInline|
+
+ \usepackage{hyperref}
+
+ \setlength{\fboxsep}{0pt}%
+ \usepackage{subcaption} % For subfigures
+ \usepackage{cleveref} % for references
+
+ \providecommand{\defopt}[1]{default: #1}%{\underline{#1}}
+ % \DescribeGothamOption{optionName}{possible values}{default value}{descrption}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\par
+ \begingroup
+ \vspace{0.5em}
+ }{
+ \par
+ \endgroup
+ \end{minipage}
+ }
+
+
+ %% =====================================================================
+ \title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer}
+ \author{Romain NOEL \\ \url{romainoel@free.fr}}
+ \date{\GothamVersion~---~\GothamDate}
+
+ \providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace}
+
+ %% =====================================================================
+
+
+ %% l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\input{gotham-doc.tex}
+ \clearpage
+%\section{A simple example}
+% \includepdf[pages=-,
+% pagecommand=\section{A simple example},
+% width=0.7\textwidth]
+% {gotham-exampleSimple.pdf}
+\section{Commands description for users}
+ \EnableDocumentation
+ \DisableImplementation
+ \DocInput{\jobname.dtx}
+ \newpage
+\section{Package implementation for developers}
+ \EnableImplementation
+ \DisableDocumentation
+ \GetFileInfo{\jobname.sty}
+ \DocInput{\jobname.dtx}
+ \PrintChanges
+\end{document}
+%</driver>
+%
+%<*devImpl>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ %\usepackage{gotham}
+ \providecommand{\defopt}[1]{\underline{#1}}
+ % l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\section{Commands description for users}
+ \EnableImplementation
+ \DisableDocumentation
+ \DocInput{gotham.dtx}
+\end{document}
+%</devImpl>
+%
+%
+%<*userCmd>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ %\usepackage{gotham}
+ \providecommand{\defopt}[1]{\underline{#1}}
+ % l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\section{Package implementation for developers}
+ \EnableDocumentation
+ \DisableImplementation
+ \DocInput{gotham.dtx}
+\end{document}
+%</userCmd>
+%
+% \fi
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*font>
+\ProvidesExplPackage{beamerfontthemegotham}{2024/09/20}{1.1.0.b}{gotham font theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+\RequirePackage{ifxetex}
+\RequirePackage{ifluatex}
+% \end{macrocode}
+% \end{implementation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% FONT %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{variable}{font messages}
+% Definition of the messages that are used and reused by font theme.
+% \changes{v0.2.0}{2024/01/25}{New}
+% \begin{macrocode}
+\msg_new:nnn { gotham } { font-not-found }
+{
+ Could~not~find~font~'#1'.\c_space_tl
+}
+
+\msg_new:nnn { gotham } { fonts-not-available }
+{
+ No~suitable~fonts~found.~Using~fallback~fonts.
+}
+
+\msg_new:nnn { gotham } { compiler-xe-or-lua }
+{
+ You~need~to~compile~with~XeLaTeX~or~LuaLaTeX~to~use~the~Fira~fonts.
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\g_gotham_fontsnotfound_int:n}
+% Counter for the number of font not found.
+% \begin{macrocode}
+\int_new:N \g_gotham_fontsnotfound_int
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\checkfont:n}
+% \begin{arguments}
+% \item Name of the font.
+% \end{arguments}
+% Command to check if one font exist.
+% \TestFiles{gotham-test-035}
+% \TestMissing{a isolated unit test would be nice.}
+% \begin{macrocode}
+\cs_new_protected:Nn \checkfont:n
+{
+ \fontspec_font_if_exist:nF { #1 }
+ {
+ % false: check with regular postfix.
+ \fontspec_font_if_exist:nF { #1~Regular }
+ {
+ % false: raise a warning and increment the number of font not found.
+ \int_incr:N \g_gotham_fontsnotfound_int
+ \msg_warning:nnn { gotham } { font-not-found } { #1 }
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\iffontsavailable}
+% \begin{syntax}
+% \cs{iffontsavailable} \marg{list of fonts' names} \marg{True code} \marg{False code}
+% \end{syntax}
+% If all fonts in \marg{list of fonts' names} are font then \marg{True code} is executed else \marg{False code}.
+% \end{function}
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\iffontsavailable}
+% Command to check if a list of font is available.
+% \TestFiles{gotham-test-035}
+% \TestMissing{a isolated unit test would be nice.}
+% \begin{macrocode}
+\newcommand{\iffontsavailable}[3]
+{
+ \int_zero:N \g_gotham_fontsnotfound_int
+ \clist_map_function:nN { #1 } \checkfont:n
+ \int_compare:nTF { \g_gotham_fontsnotfound_int = 0 }
+ {% True
+ #2
+ }{% False
+ #3
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Load fonts if available}
+% If fontspec is loadable (ie. if xelatex or lualatex), then load available fonts, otherwise raise a warning and go on.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+\ifboolexpr{bool~{xetex}~or~bool~{luatex}}{
+ % if fontspec loaded pass option otherwise load fontspec.
+ \@ifpackageloaded{fontspec}{
+ \PassOptionsToPackage{no-math}{fontspec}
+ }{
+ \RequirePackage[no-math]{fontspec}
+ }
+ %
+ % We search for regular, italic, light, light italic,fonts under the default |Fira Sans| names.
+ \iffontsavailable{FiraSans-Light.otf,
+ FiraSans-LightItalic.otf,
+ FiraSans-Regular.otf,
+ FiraSans-Italic.otf}
+ {
+ \setsansfont[ItalicFont={FiraSans-LightItalic.otf},
+ BoldFont={FiraSans-Regular.otf},
+ BoldItalicFont={FiraSans-Italic.otf}]
+ {FiraSans-Light.otf}
+ }{
+ % If this fails, the suffix OT --- used by some Linux distributions --- will be tried.
+ \iffontsavailable{FiraSans~Light~OT,
+ FiraSans~LightItalic~OT,
+ FiraSans~Regular~OT,
+ FiraSans~Italic~OT}
+ {
+ \setsansfont[ItalicFont={Fira~Sans~LightItalic~OT},
+ BoldFont={Fira~Sans~Regular~OT},
+ BoldItalicFont={Fira~Sans~Italic~OT}]
+ {Fira~Sans~Light~OT}
+ }{
+ % If this also fails, a warning will be displayed and the standard fonts will be used.
+ \msg_warning:nn { gotham } { fonts-not-available }%
+ }
+ }
+ %
+ % We search for regular, mono, and mono bold fonts under the default |Fira Mono| names.
+ \iffontsavailable{FiraMono-Medium.otf, FiraMono-Bold.otf}{
+ \setmonofont[BoldFont={FiraMono-Medium.otf}]{FiraMono-Bold.otf}
+ }{
+ % If this fails, the suffix OT --- used by some Linux distributions --- will be tried.
+ \iffontsavailable{Fira~Mono~Medium~OT, Fira~Mono~Bold~OT}{
+ \setmonofont[BoldFont={Fira~Mono~Medium~OT}]{Fira~Mono~Bold~OT}
+ }{
+ % If this also fails, a warning will be displayed and the standard fonts will be used.
+ \msg_warning:nn { gotham } { fonts-not-available }
+ }
+ }
+ %
+ % Add a feature for numbers in tables.
+ \AtBeginEnvironment{tabular}{
+ \addfontfeature{Numbers={Monospaced}}
+ }
+}{
+ % If compiled with pdf\LaTeX{}, then apply a dirty patch (that will not do the job but suppress warnings) and raise a warning.
+ \msg_warning:nn { gotham } { compiler-xe-or-lua }
+ \DeclareFontShape{OT1}{cmss}{bx}{sc}{<-> cmbcsc10}{}
+ \DeclareFontShape{OT1}{cmss}{bx}{it}{<->sub*cmss/m/sl}{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\setbeamerfont{title}, general font definitions}
+% Set all needed font environment variables:shape, size, series.
+% Remark: Case is missing.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{block, caption, description, bibio}
+% \begin{macrocode}
+\setbeamerfont{title}{size=\Large, series=\bfseries}
+\setbeamerfont*{subtitle}{size=\large}
+\setbeamerfont{author}{size=\small}
+\setbeamerfont{date}{size=\small}
+
+\setbeamerfont{section~title}{size=\Large, series=\bfseries}
+\setbeamerfont{subsection~title}{size=\large, series=\bfseries}
+\setbeamerfont{subsubsection~title}{size=\normalsize, series=\bfseries}
+
+\setbeamerfont{frametitle}{size=\large, series=\bfseries}
+\setbeamerfont{frametitleToc}{size=\LARGE, series=\bfseries}
+\setbeamerfont{frametitleSection}{size*={60}{1}, series=\bfseries}
+
+\setbeamerfont{block~title}{size=\normalsize, series=\bfseries}
+\setbeamerfont{block~title~alerted}{size=\normalsize, series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{caption~name}{series=\bfseries}
+\setbeamerfont{description~item}{series=\bfseries}
+\setbeamerfont{page~number~in~head/foot}{size=\scriptsize}
+
+\setbeamerfont{bibliography~entry~author}{size=\normalsize, series=\normalfont}
+\setbeamerfont{bibliography~entry~title}{size=\normalsize, series=\bfseries}
+\setbeamerfont{bibliography~entry~location}{size=\normalsize, series=\normalfont}
+\setbeamerfont{bibliography~entry~note}{size=\small, series=\normalfont}
+\setbeamerfont{standout}{size=\Large, series=\bfseries}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_title_format:n, titles formats}
+% Pre-hooks that will be inserted to control case format of titles in addition with the fonts set.
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\def\gotham@titleformat#1{#1}
+\def\gotham@subtitleformat#1{#1}
+\def\gotham@parttitleformat#1{#1}
+\def\gotham@sectiontitleformat#1{#1}
+\def\gotham@subsectiontitleformat#1{#1}
+\def\gotham@frametitleformat#1{#1}
+\def\gotham@framesubtitleformat#1{#1}
+% IF ONE DAY: I can patch beamer with expl3, I will use the following commands instead.
+% %% \cs_new:Npn \__gotham_unchanged:n #1 {#1}
+% %% \cs_new:Npn \__gotham_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_subtitle_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_part_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_section_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_subsection_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_frametitle_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_framesubtitle_format:n #1 {#1}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\beamer@title,\beamer@subtitle,\sectionentry}
+% Since, case feature is not available in |setbeamerfont|; to make the uppercase, lowercase and title-case macros work in the title, subtitle, etc., we have to patch the appropriate |beamer| commands that set their values.
+% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange question}.
+% Remark: patchcmd from etoolbox (or other), is not compatible with expl3.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\ExplSyntaxOff
+\patchcmd{\beamer@title}
+ {\def\inserttitle{#2}}
+ {\def\inserttitle{\gotham@titleformat{#2}}}
+ % {\def\inserttitle{ \__gotham_title_format:n{#2} }}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~title~failed}\@ehc}
+\patchcmd{\beamer@subtitle}
+ {\def\insertsubtitle{#2}}
+ {\def\insertsubtitle{{\gotham@subtitleformat{#2}}}}
+ % {\def\insertsubtitle{ \__gotham_subtitle_format:n{#2} }}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~subtitle~failed}\@ehc}
+\patchcmd{\sectionentry} % beamerbasenavigation.sty l.335
+ {\def\insertsectionhead{#2}}
+ {\def\insertsectionhead{\gotham@sectiontitleformat{#2}}}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc}%
+%
+%% NOT WORKING YET!
+%% \patchcmd{\subsectionentry} % beamerbasenavigation.sty l.384
+%% {\def\insertsubsectionhead{##5}}
+%% {\def\insertsubsectionhead{\gotham@subsectiontitleformat{##5}}}
+%% {}
+%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc}%
+%
+\@tempswafalse
+\patchcmd{\beamer@section} % beamerbasesection.sty l. 209
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\gotham@sectiontitleformat{#1}}}}
+ % \__gotham_section_title_format:n{#2}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section} % beamerbasesection.sty l. 209
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@sectiontitleformat{\unexpanded{#1}}}}}
+ % \exp_not:N \__gotham_section_title_format:n {#1}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc}
+\fi
+\@tempswafalse
+%
+%% NOT WORKING YET !
+%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209
+%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}\gotham@subsectiontitleformat{#1}}}
+%% % \__gotham_subsection_title_format:n{#2}
+%% {\@tempswatrue}
+%% {}
+%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209
+%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@subsectiontitleformat{#1}}}}
+%% % \exp_not:N \__gotham_subsection_title_format:n {#1}
+%% {\@tempswatrue}
+%% {}
+%% \if@tempswa\else
+%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc}
+%% \fi%
+%% \@tempswafalse
+%
+%
+% Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in the frame title we have to patch |\beamer@@frametitle|.
+\providecommand{\beamer@insertframetitlecontinuation}{
+ \usebeamertemplate*{frametitle~continuation}
+}
+\patchcmd{\beamer@@frametitle} % beamerbaselocalstructure.sty l. 32
+ {\gdef\insertframetitle{{%
+ #2%
+ \ifnum\beamer@autobreakcount>0
+ \relax{}\space%
+ \beamer@insertframetitlecontinuation%
+ \fi%
+ }}%
+ }
+ {\gdef\insertframetitle{{%
+ \gotham@frametitleformat{#2}%
+ % \__gotham_frametitle_format:n {#2}
+ \ifnum\beamer@autobreakcount>0
+ \relax{}\space%
+ \beamer@insertframetitlecontinuation%
+ \fi%
+ }}%
+ }
+ {}
+ {\PackageWarning{beamerfontthemegotham}{Patching~frametitle~failed}\@ehc}
+%
+%% NOT WORKING YET !
+%% \patchcmd{\framesubtitle} % beamerbaselocalstructure.sty l.55
+%% {\only#2{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}}
+%% {\only{#2}{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}}
+%% {}
+%% {\PackageWarning{beamerfontthemegotham}{Patching~framesubtitle~failed}\@ehc}
+%
+\ExplSyntaxOn
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\usefonttheme}
+% \begin{syntax}
+% \cs{usefonttheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{title format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{title shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{subtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{subtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{frametitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{frametitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{framesubtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{framesubtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{part format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{part shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{section format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{section shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{subsection format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{subsection shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \end{syntax}
+% The 'package' (usefonttheme) options can control both shape and format of title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{font key -- interface}
+% Controls the format and shape of the title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\keys_define:nn { gotham / font }
+{
+ % format title
+ format~title .choice:,
+ format~title .usage:n = { general },
+ format~title .default:n = { regular },
+ format~title / regular .code:n =
+ {
+ \let\gotham@titleformat\@empty
+ % \cs_set_eq:NN \__gotham_title_format:n \__gotham_unchanged:n
+ },
+ format~title / lower .code:n =
+ {
+ \let\gotham@titleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=lower~can~lead~to~problems. }
+ },
+ format~title / upper .code:n =
+ {
+ \let\gotham@titleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=upper~can~lead~to~problems. }
+ },
+ format~title / titlecase .code:n =
+ {
+ \let\gotham@titleformat \text_titlecase_all:n %\MakeTitlecase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=titlecase~can~lead~to~problems. }
+ },
+ format~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~title / unknown } },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape title
+ shape~title .choice:,
+ shape~title .usage:n = { general },
+ shape~title .default:n = { regular },
+ shape~title / regular .code:n =
+ {
+ \setbeamerfont{title}{shape=\normalfont}
+ },
+ shape~title / smallcaps .code:n =
+ {
+ \setbeamerfont{title}{shape=\scshape}
+ },
+ shape~title / italic .code:n =
+ {
+ \setbeamerfont{title}{shape=\itshape}
+ },
+ shape~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~title / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format subtitle
+ format~subtitle .choice:,
+ format~subtitle .usage:n = { general },
+ format~subtitle .default:n = { regular },
+ format~subtitle / regular .code:n =
+ {
+ \let\gotham@subtitleformat\@empty
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \__gotham_unchanged:n
+ },
+ format~subtitle / lower .code:n =
+ {
+ \let\gotham@subtitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=lower~can~lead~to~problems. }
+ },
+ format~subtitle / upper .code:n =
+ {
+ \let\gotham@subtitleformat \text_uppercase:n %\uppercase
+ \cs_set_eq:NN \__gotham_subtitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=upper~can~lead~to~problems. }
+ },
+ format~subtitle / titlecase .code:n =
+ {
+ \let\gotham@subtitleformat \text_titlecase_all:n %\MakeTitlecase
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \text_titlecase_all:n %\MakeTitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=titlecase~can~lead~to~problems. }
+ },
+ format~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subtitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape subtitle
+ shape~subtitle .choice:,
+ shape~subtitle .usage:n = { general },
+ shape~subtitle .default:n = { regular },
+ shape~subtitle / regular .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\normalfont}
+ },
+ shape~subtitle / smallcaps .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\scshape}
+ },
+ shape~subtitle / italic .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\itshape}
+ },
+ shape~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subtitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format frametitle
+ format~frametitle .choice:,
+ format~frametitle .usage:n = { general },
+ format~frametitle .default:n = { regular },
+ format~frametitle / regular .code:n =
+ {
+ \let\gotham@frametitleformat\@empty
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \__gotham_unchanged:n
+ },
+ format~frametitle / lower .code:n =
+ {
+ \let\gotham@frametitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=lower~can~lead~to~problems. }
+ },
+ format~frametitle / upper .code:n =
+ {
+ \let\gotham@frametitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=upper~can~lead~to~problems. }
+ },
+ format~frametitle / titlecase .code:n =
+ {
+ \let\gotham@frametitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_titlecase_all:n %\MakeTitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=titlecase~can~lead~to~problems. }
+ },
+ format~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~frametitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape frametitle
+ shape~frametitle .choice:,
+ shape~frametitle .usage:n = { general },
+ shape~frametitle .default:n = { regular },
+ shape~frametitle / regular .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\normalfont}
+ },
+ shape~frametitle / smallcaps .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\scshape}
+ },
+ shape~frametitle / italic .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\itshape}
+ },
+ shape~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~frametitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format framesubtitle
+ format~framesubtitle .choice:,
+ format~framesubtitle .usage:n = { general },
+ format~framesubtitle .default:n = { regular },
+ format~framesubtitle / regular .code:n =
+ {
+ \let\gotham@framesubtitleformat\@empty
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \__gotham_unchanged:n
+ },
+ format~framesubtitle / lower .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=lower~can~lead~to~problems. }
+ },
+ format~framesubtitle / upper .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=upper~can~lead~to~problems. }
+ },
+ format~framesubtitle / titlecase .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_titlecase_all:n %\Maketitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=titlecase~can~lead~to~problems. }
+ },
+ format~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~framesubtitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape framesubtitle
+ shape~framesubtitle .choice:,
+ shape~framesubtitle .usage:n = { general },
+ shape~framesubtitle .default:n = { regular },
+ shape~framesubtitle / regular .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\normalfont}
+ },
+ shape~framesubtitle / smallcaps .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\scshape}
+ },
+ shape~framesubtitle / italic .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\itshape}
+ },
+ shape~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~framesubtitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format part
+ format~part .choice:,
+ format~part .usage:n = { general },
+ format~part .default:n = { regular },
+ format~part / regular .code:n =
+ {
+ \let\gotham@parttitleformat\@empty
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n
+ },
+ format~part / lower .code:n =
+ {
+ \let\gotham@parttitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=lower~can~lead~to~problems. }
+ },
+ format~part / upper .code:n =
+ {
+ \let\gotham@parttitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=upper~can~lead~to~problems. }
+ },
+ format~part / titlecase .code:n =
+ {
+ \let\gotham@parttitleformat\text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=titlecase~can~lead~to~problems. }
+ },
+ format~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~part / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape part
+ shape~part .choice:,
+ shape~part .usage:n = { general },
+ shape~part .default:n = { regular },
+ shape~part / regular .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\normalfont}
+ },
+ shape~part / smallcaps .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\scshape}
+ },
+ shape~part / italic .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\itshape}
+ },
+ shape~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~part / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format section
+ format~section .choice:,
+ format~section .usage:n = { general },
+ format~section .default:n = { regular },
+ format~section / regular .code:n =
+ {
+ \let\gotham@sectiontitleformat\@empty
+ % \cs_set_eq:NN \__gotham_section_title_format:n \__gotham_unchanged:n
+ },
+ format~section / lower .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=lower~can~lead~to~problems. }
+ },
+ format~section / upper .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=upper~can~lead~to~problems. }
+ },
+ format~section / titlecase .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=titlecase~can~lead~to~problems. }
+ },
+ format~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~section / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape section
+ shape~section .choice:,
+ shape~section .usage:n = { general },
+ shape~section .default:n = { regular },
+ shape~section / regular .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\normalfont}
+ },
+ shape~section / smallcaps .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\scshape}
+ },
+ shape~section / italic .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\itshape}
+ },
+ shape~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~section / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format subsection
+ format~subsection .choice:,
+ format~subsection .usage:n = { general },
+ format~subsection .default:n = { regular },
+ format~subsection / regular .code:n =
+ {
+ \let\gotham@subsectiontitleformat\@empty
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \__gotham_unchanged:n
+ },
+ format~subsection / lower .code:n =
+ {
+ \let\gotham@subsectiontitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=lower~can~lead~to~problems. }
+ },
+ format~subsection / upper .code:n =
+ {
+ \let\gotham@subsectiontitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=upper~can~lead~to~problems. }
+ },
+ format~subsection / titlecase .code:n =
+ {
+ \let\gotham@subsectiontitleformat\text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=titlecase~can~lead~to~problems. }
+ },
+ format~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subsection / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape subsection
+ shape~subsection .choice:,
+ shape~subsection .usage:n = { general },
+ shape~subsection .default:n = { regular },
+ shape~subsection / regular .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\normalfont}
+ },
+ shape~subsection / smallcaps .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\scshape}
+ },
+ shape~subsection / italic .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\itshape}
+ },
+ shape~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subsection / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default font keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / font } {
+ format~title, shape~title,
+ format~subtitle, shape~subtitle,
+ format~frametitle, shape~frametitle,
+ format~framesubtitle, shape~framesubtitle,
+ format~part, shape~part,
+ format~section, shape~section,
+ format~subsection, shape~subsection,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process font keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / font ]
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</font>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*color>
+\ProvidesExplPackage{beamercolorthemegotham}{2024/09/20}{1.1.0.b}{Gotham color theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{xcolor}
+% \end{macrocode}
+% \end{implementation}
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% COLOR %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% \begin{variable}{\definecolor[named]{gAnthracite}, colors definition}
+% Definition of the Gotham colors.
+% \begin{macrocode}
+\definecolor[named]{gLightOrange}{HTML}{EB811B}
+\definecolor[named]{gLightGreen}{HTML}{14B03D}
+\definecolor[named]{gDeepBlue}{RGB}{42, 42, 255}
+\definecolor[named]{gDeepYellOr}{RGB}{255, 204, 0}
+\definecolor[named]{gAnthracite}{HTML}{2d3e50}
+\definecolor[named]{gLightTeal}{RGB}{172, 195, 210}
+\definecolor[named]{gPaleYell}{RGB}{255, 255, 240}
+\definecolor[named]{gDarkBlack}{gray}{0.1}
+\definecolor[named]{gDarkGrey}{gray}{0.25}
+\definecolor[named]{gMidGrey}{gray}{0.5}
+\definecolor[named]{gLightGrey}{gray}{0.9}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\colorlet{colorPale}, set gotham palette colors}
+% \begin{syntax}
+% \cs{colorlet} \marg{colorPale} \marg{gPaleYell}
+% \cs{colorlet} \marg{colorDark} \marg{gDarkBlack}
+% \cs{colorlet} \marg{colorA} \marg{gAnthracite}
+% \cs{colorlet} \marg{colorAreversed} \marg{gLightTeal}
+% \cs{colorlet} \marg{colorB} \marg{gMidGrey}
+% \cs{colorlet} \marg{colorC} \marg{gDeepYellOr}
+% \cs{colorlet} \marg{colorD} \marg{gLightOrange}
+% \cs{colorlet} \marg{colorE} \marg{gLightGreen}
+% \end{syntax}
+% Setup the colors use for presentations:
+% \begin{itemize}
+% \item |colorPale| is used for BG in light mode
+% \item |colorDark| is used for FG in light mode
+% \item |colorA| is used for frametitle and standout BG in light mode
+% \item |colorAreversed| is used for frametitle and standout BG in dark mode
+% \item |colorB| is used for progress bar and blocks BG
+% \item |colorC| is used for progress bar FG
+% \item |colorD| is used for alert FG/BG depending on the block mode
+% \item |colorE| is used for example FG/BG depending on the block mode
+% \end{itemize}
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\colorlet{colorPale}, set gotham palette colors}
+% A set Gotham palette: a list of color variables easily adapted.
+% \begin{macrocode}
+% Define the color palette
+\@ifundefined{\string\color@colorAreversed}{
+ % default colorset.
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gAnthracite} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}{
+ % else nothing to do, colors are already defined.
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_style_anthracite:}
+% Command to activate anthracite colorset.
+% \TestFiles{gotham-test-1037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_style_anthracite:{
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gAnthracite} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_style_red:}
+% Command to activate red colorset.
+% \TestFiles{gotham-test-1037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_style_red:{
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{red} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors}
+% \begin{syntax}
+% \cs{colorlet} \marg{colorBG} \marg{colorPale}
+% \cs{colorlet} \marg{colorFG} \marg{colorDark}
+% \cs{colorlet} \marg{colorFrametitle} \marg{colorA}
+% \cs{colorlet} \marg{colorStandout} \marg{colorA}
+% \cs{colorlet} \marg{colorStandin} \marg{colorA}
+% \cs{colorlet} \marg{colorTitlepage} \marg{colorA}
+% \cs{colorlet} \marg{colorFiligrane} \marg{colorB}
+% \cs{colorlet} \marg{colorBackElement} \marg{colorB}
+% \cs{colorlet} \marg{colorProgBar} \marg{colorC}
+% \cs{colorlet} \marg{colorAlert} \marg{colorD}
+% \cs{colorlet} \marg{colorExample} \marg{colorE}
+% \end{syntax}
+% Setup the default color aliases used in the presentation theme definitions.
+% These aliases are partly redefined by dark/light/transparent modes.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors}
+% A set of variable easily adapted.
+% \begin{macrocode}
+% Define the color palette
+\colorlet{colorBG}{colorPale}
+\colorlet{colorFG}{colorDark}
+\colorlet{colorFrametitle}{colorA}
+\colorlet{colorStandout}{colorA}
+\colorlet{colorStandin}{colorPale}
+\colorlet{colorTitlepage}{colorA}
+\colorlet{colorFiligrane}{colorB}
+\colorlet{colorBackElement}{colorB}
+\colorlet{colorProgBar}{colorC}
+\colorlet{colorAlert}{colorD}
+\colorlet{colorExample}{colorE}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\providebool{darkBG}, \providebool{transparentBG}}
+% Variable to track color setup.
+% \begin{macrocode}
+% \providebool{reversedColor}
+% \boolfalse{reversedColor}
+\providebool{darkBG}
+\boolfalse{darkBG}
+\providebool{transparentBG}
+\booltrue{transparentBG}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_darkBG:}
+% Command to activate dark mode
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_darkBG:{
+ \setbeamercolor{normal~text}{%
+ fg=colorBG,
+ bg=colorFG,
+ }%
+ \usebeamercolor[fg]{normal~text}%
+ \booltrue{darkBG}%
+ \boolfalse{transparentBG}
+ \colorlet{colorFrametitle}{colorAreversed}
+ \colorlet{colorStandout}{colorAreversed}
+ \colorlet{colorStandin}{colorFG}
+ \colorlet{colorTitlepage}{colorAreversed}
+ % dark
+ \setbeamercolor{palette~primary}{% reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_lightBG:}
+% Command to activate light background.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_lightBG:{
+ \setbeamercolor{normal~text}{
+ fg=colorFG,
+ bg=colorBG
+ }
+ \usebeamercolor[fg]{normal~text}
+ \boolfalse{darkBG}
+ \boolfalse{transparentBG}
+ \colorlet{colorFrametitle}{colorA}
+ \colorlet{colorStandout}{colorA}
+ \colorlet{colorStandin}{colorBG}
+ \colorlet{colorTitlepage}{colorA}
+ % light
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_transparentBG:}
+% Command to activate transparent background.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+% \newcommand{\gotham@colors@transparent}{
+\cs_new_protected:Nn \__gotham_color_set_transparentBG:{
+ \setbeamercolor{normal~text}{
+ fg=colorFG,
+ bg=,
+ }
+ \usebeamercolor[fg]{normal~text}
+ \boolfalse{darkBG}
+ \booltrue{transparentBG}
+ \colorlet{colorFrametitle}{colorA}
+ \colorlet{colorStandout}{colorA}
+ {\usebeamercolor[bg]{normal~text}\colorlet{colorStandin}{bg}}% this is not working because the colorlet is not kept outside of the {} environment...
+ % \usebeamercolor{normal~text} % reset % NOT working neither
+ \colorlet{colorStandin}{colorBG} % since the two previous lines are not working, let define it like light-bg
+ \colorlet{colorTitlepage}{colorA}
+ % like light background.
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=colorBG,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_transparent_block:}
+% Command to activate transparent block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_transparent_block:{
+ \setbeamercolor{block~title}{
+ use=normal~text,
+ fg=normal~text.fg,
+ bg=
+ }
+ \setbeamercolor{block~body}{
+ bg=
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ \setbeamercolor{example~text}{
+ fg=colorExample
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=block~title.bg,
+ fg=example~text.fg
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alerted~text},
+ bg=block~title.bg,
+ fg=alerted~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_fill_block:}
+% Command to activate fill block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_fill_block:{
+ \setbeamercolor{block~title}{
+ fg=colorBackElement!10!normal~text.fg,
+ bg=colorBackElement!135!fg
+ }
+ \setbeamercolor{block~body}{
+ use={block~title, normal~text},
+ bg=block~title.bg!50!normal~text.bg
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ \setbeamercolor{example~text}{
+ fg=colorExample
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=block~title.bg,
+ fg=example~text.fg
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alerted~text},
+ bg=block~title.bg,
+ fg=alerted~text.fg
+ }
+}% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_native_block:}
+% Command to activate native block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_native_block:{
+ \setbeamercolor{block~title}{
+ fg=colorPale,
+ bg=colorBackElement!90!fg
+ }
+ \setbeamercolor{block~body}{
+ use={block~title, normal~text},
+ bg=block~title.bg!50!normal~text.bg
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ % With native block, we have to let alerted text with a visible color (not pale) to keep alert visible (cf test-1005).
+ % So, we have to create an extra color: alertedBlock~text.
+ \setbeamercolor{alertedBlock~text}{
+ fg=colorPale
+ }
+ \setbeamercolor{example~text}{
+ fg=colorPale
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alertedBlock~text},
+ bg=colorAlert,
+ fg=alertedBlock~text.fg
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=colorExample,
+ fg=example~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Gotham color adaptation}
+% Set colors variable from Gotham color setup that needs specific adaptation, i.e. |structure| as mentioned in Beamer documentation and |progress bar| since it is a new feature.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{structure}{use=normal~text, fg=normal~text.fg}
+\setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Usual color env}
+% Set colors variable from Gotham color setup.
+% The titles and structural elements (e.g. |itemize| bullets) are set in the same color as |normal text|.
+% This would ideally done by setting |normal text| as a parent style, which we do to set |titlelike|, but this doesn't work for |structure| as its foreground is set explicitly in |beamercolorthemedefault.sty|.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{titlelike}{use=normal~text, parent=normal~text}
+\setbeamercolor{author}{use=normal~text, parent=normal~text}
+\setbeamercolor{date}{use=normal~text, parent=normal~text}
+\setbeamercolor{institute}{use=normal~text, parent=normal~text}
+\setbeamercolor{frametitle}{
+ use=palette~primary,
+ parent=palette~primary,
+ bg=colorFrametitle
+}
+% The Gotham inner or outer themes optionally display progress bars in various locations.
+% Their color is set by |progress bar| but the two different kinds can be customized separately.
+% The horizontal rule on the title page is also set based on the progress bar color and can be customized with |title separator|.
+\setbeamercolor{title~separator}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+}
+% \setbeamercolor{progress~bar~in~subsection~page}{
+% use=progress~bar,
+% parent=progress~bar
+% }
+% \setbeamercolor{progress~bar~in~subsubsection~page}{
+% use=progress~bar,
+% parent=progress~bar
+% }
+%
+% Blocks
+\setbeamercolor{block~body~alerted}{use=block~body, parent=block~body}
+\setbeamercolor{block~body~example}{use=block~body, parent=block~body}
+%
+% Footnote
+\setbeamercolor{footnote}{fg=normal~text.fg!90}
+\setbeamercolor{footnote~mark}{fg=.}
+%
+% Bibliography
+%
+% We also reset the bibliography colors in order to pick up the surrounding colors at the time of use.
+% This prevents us having to set the correct color in normal and standout mode.
+% \setbeamercolor{bibliography entry author}{fg=, bg=}
+% \setbeamercolor{bibliography entry title}{fg=, bg=}
+% \setbeamercolor{bibliography entry location}{fg=, bg=}
+% \setbeamercolor{bibliography entry note}{fg=, bg=}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{new color environments}
+% Set up colors for the the new beamer environment used by the theme.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+\setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+\setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+
+\setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+\setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+\setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\usecolortheme}
+% \begin{syntax}
+% \cs{usecolortheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{background} = \oarg{\defopt{transparent} \textbar light \textbar dark}
+% \meta{block} = \oarg{\defopt{native} \textbar fill \textbar transparent}
+% \meta{colorset} = \oarg{\defopt{anthracite} \textbar red }
+% \end{syntax}
+% The 'package' (usecolortheme) options can control color mode (dark, ligh or transparent background) and the block (native or fill or transparent).
+% Block environments such as |theorem| and |example| have no background color by default.
+% The option |block=fill| sets a background color based on the background and foreground of |normal text|.
+% The option |block=transparent| reverts the block environments to an empty background, which can be useful if changing colors mid-presentation.
+% The option |colorset=red| changes the colorset used to define a color theme.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{color key -- interface}
+% Controls the background mode (dark, ligh or transparent background) and the block (fill or transparent) and colorset (anthracite, red, blue, green, etc).
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / color }
+{
+ % block
+ block .choice:,
+ block .usage:n = { general },
+ block .default:n = { native },
+ block / native .code:n = { \__gotham_color_set_native_block: },
+ block / transparent .code:n = { \__gotham_color_set_transparent_block: },
+ block / fill .code:n = { \__gotham_color_set_fill_block: },
+ block / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: block / unknown} },
+}
+
+\keys_define:nn { gotham / color }
+{
+ % background
+ background .choice:,
+ background .usage:n = { general },
+ background .default:n = { transparent },
+ background / transparent .code:n = { \__gotham_color_set_transparentBG: },
+ background / light .code:n = { \__gotham_color_set_lightBG: },
+ background / dark .code:n = { \__gotham_color_set_darkBG: },
+ background / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: background / unknown} },
+}
+
+\keys_define:nn { gotham / color }
+{
+ % colorset
+ colorset .choice:,
+ colorset .usage:n = { general },
+ colorset .default:n = { anthracite },
+ colorset / anthracite .code:n = { \__gotham_color_set_style_anthracite: },
+ colorset / red .code:n = { \__gotham_color_set_style_red: },
+ % colorset / blue .code:n = { },
+ % colorset / green .code:n = { },
+ % colorset / orange .code:n = { },
+ % colorset / teal .code:n = { },
+ colorset / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: colorset / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default color keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / color } { background, block, colorset }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process color keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / color ]
+\mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</color>
+% \end{macrocode}
+% \end{implementation}
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*inner>
+\ProvidesExplPackage{beamerinnerthemegotham}{2024/09/20}{1.1.0.b}{gotham inner theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{calc}
+\RequirePackage{tikz}
+% \end{macrocode}
+% \end{implementation}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% INNER %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% A |beamer| inner theme dictates the style of the frame elements traditionally set in the ``body'' of each slide. These include:
+% \begin{itemize}
+% \item title page;
+% \item backgrounds;
+% \item standin/out;
+% \item part, section etc, pages;
+% \item table of content pages (including for sections...);
+% \item environement elements: \begin{itemize}
+% \item itemize, enumerate, and description environments;
+% \item block environments including theorems and proofs;
+% \item figures and tables; and
+% \item footnotes and plain text.
+% \end{itemize}
+% \end{itemize}
+% \end{implementation}
+%
+%
+
+%%% Titlepage %%%
+%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% \begin{macro}{Compitibility mode for colors}
+% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme.
+% \begin{macrocode}
+\@ifundefined{\string\color@colorProgBar}{
+ \providebool{darkBG} \boolfalse{darkBG}
+ \providebool{transparentBG} \booltrue{transparentBG}
+ \colorlet{colorBG}{white}
+ \colorlet{colorFG}{black}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorStandout}{purple}
+ \colorlet{colorStandin}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \colorlet{colorFiligrane}{gray}
+ \colorlet{colorBackElement}{gray}
+ \colorlet{colorProgBar}{orange}
+ \colorlet{colorAlert}{red}
+ \colorlet{colorExample}{green}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+ }
+ \setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+ \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+ \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+ \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+}{
+ % else the colors are defined: this is fine.
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\maketitle,\titlepage}
+% Normal people should use |\maketitle| or |\titlepage| instead of using the |title page| beamer template directly.
+% Beamer already defines these macros, but we patch them here to make the title page |[plain]| by default, remove |\@thanks|, and ensure the title frame number doesn't count.
+% Inserts the title frame, or causes the current frame to use the |title page| template.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\def\maketitle{
+ \ifbeamer@inframe
+ \titlepage
+ \else
+ \frame[plain, noframenumbering]{\titlepage}
+ \fi
+}
+\def\titlepage{
+ \usebeamertemplate{title~page}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~graphic}{gotham}}
+% Definition of elements templates that will be used in titlepage.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate*{title~graphic}{gotham}{
+ % \vbox to 0pt {% %%%%% MODIFIED !
+ \vbox{
+ % \vspace*{2em} %%%%% COMMENT ADDED !
+ \inserttitlegraphic
+ }
+ \nointerlineskip
+}
+\defbeamertemplate*{title}{gotham}{
+ %\raggedright% %%%%% COMMENT ADDED !
+ \linespread{1.0}
+ \inserttitle
+ \par
+ \vspace*{0.5em}
+}
+\defbeamertemplate*{subtitle}{gotham}{
+ %\raggedright% %%%%% COMMENT ADDED !
+ \insertsubtitle
+ \par
+ \vspace*{0.5em}
+}
+\defbeamertemplate*{author}{gotham}{
+ \vspace*{1.em}
+ \insertauthor
+ \par
+ \vspace*{0.25em}
+}
+\defbeamertemplate*{date}{gotham}{
+ \insertdate
+ \par
+}
+\defbeamertemplate*{institute}{gotham}{
+ \vspace*{3mm}
+ \insertinstitute
+ \par
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_titleseparator_width_dim, \l__gotham_titleseparator_height_dim, \l__gotham_title_width_dim, \l__gotham_subtitle_width_dim, \l__gotham_title_max_width_dim}
+% Define the new lengths that will be used for titlepage templates.
+% \begin{macrocode}
+\dim_new:N \l__gotham_titleseparator_width_dim
+\dim_set:Nn \l__gotham_titleseparator_width_dim {\textwidth}
+\dim_new:N \l__gotham_titleseparator_height_dim
+\dim_set:Nn \l__gotham_titleseparator_height_dim {2pt}
+% \newlength{\titlewidth}
+% \newlength{\subtitlewidth}
+% \newlength{\maxwidth}
+\dim_new:N \l__gotham_title_width_dim
+\dim_new:N \l__gotham_subtitle_width_dim
+\dim_new:N \l__gotham_title_max_width_dim
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\defbeamertemplate*{title~separator}{gotham}}
+% Define a new template for ``line'' displayed on some titlepage templates.
+% \begin{macrocode}
+\defbeamertemplate*{title~separator}{gotham}{
+ \begin{tikzpicture}
+ % \fill[fg] (0,0) rectangle (\gotham@titleseparator@linewidth, \gotham@titleseparator@lineheight);
+ \fill[fg] (0,0) rectangle
+ (\dim_use:N \l__gotham_titleseparator_width_dim,
+ \dim_use:N \l__gotham_titleseparator_height_dim);
+ \end{tikzpicture}
+ \par
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamtitlepagelogo}
+% The command to insert the institute logo on title page.
+% This command is left empty by default, to be redefined by users
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamtitlepagelogo}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\providecommand{\gothamtitlepagelogo}{}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamtitlepagebg}
+% The command to insert the background title page
+% This command is left empty by default, to be redefined by users
+% \end{variable}
+% \end{documentation}
+%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamtitlepagebg}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\providecommand{\gothamtitlepagebg}{}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~page}{gotham~normal}}
+% Template for the normal gotham title page.
+% Each element is only typeset if it is defined by the user.
+% If |\subtitle| is empty, for example, it won't leave a blank space on the title slide.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+
+% Beamer's definition of |\insertauthor| is always nonempty, so we have to test another macro initialized by |\author{...}| to see if the user has defined an author.
+% This solution was suggested by Sam Carter in an answer to \href{https://tex.stackexchange.com/questions/241306/}{this Stack Exchange question}.
+
+\defbeamertemplate{title~page}{gotham~normal}{
+ \ifx\insertframetitle\@empty\else\vspace*{-3em}\fi
+ \begin{picture}(0,0)
+ % The text: title, author, institute, etc.
+ \put(-30,-125){\noindent
+ \fcolorbox{normal~text.bg}{normal~text.bg}{
+ \begin{minipage}[b][\paperheight]{\paperwidth}
+ \parbox[c][0pt][c]{0pt}{\gothamtitlepagebg}
+ \centering
+ \vfill
+ \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \usebeamertemplate*{title~separator}
+ % from above patch
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamertemplate*{author}
+ }
+ % \ifx\insertauthor\empty Empty~Author\else TT \fi
+ \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
+ \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi
+ \vfill
+ \vbox{}
+ \end{minipage}
+ }
+ % end third argument of fcolorobx
+ }
+
+ % the institute logo on title page
+ \put(234,-120){
+ \gothamtitlepagelogo
+ }
+
+ % the extra logos on title page (\inserttitlegraphic)
+ \put(-27,-123){
+ \noindent\vbox{
+ \begin{minipage}[b][0.96\paperheight]{0.899\textwidth}
+ \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi
+ \end{minipage}
+ }
+ }
+ \end{picture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~page}{gotham~reversed}}
+% With a similarly layout to gotham normal, but this template inverses the background and foreground colors compared to the color mode chose (dark, light or transparent).
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~reversed}{
+ \begin{picture}(0,0)
+ % The background picture
+ \put(-28,-128){\gothamtitlepagebg}
+
+ % The text: title, author, institute, etc.
+ \put(-4,-125){\noindent
+ % \fcolorbox{declared-color-frame}{declared-color-background}{text}
+ \ifbool{darkBG}{
+ % Dark true
+ \setbeamercolor{normal~text}{fg=colorFG, }
+ \fcolorbox{colorPale}{colorPale}% reversed
+ }{
+ % Light
+ \setbeamercolor{normal~text}{fg=colorBG, }
+ \fcolorbox{colorTitlepage}{colorTitlepage}% reversed
+ }% end if
+ {
+ % begin third argument of fcolorobx
+ %\fcolorbox{normal~text.fg}{normal~text.fg}{
+ \begin{minipage}[b][\paperheight]{\textwidth}
+ \centering
+ \vfill
+ \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \usebeamertemplate*{title~separator}
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamertemplate*{author}
+ }
+ \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
+ \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi
+ \vfill
+ \vbox{}
+ \end{minipage}
+ }
+ % end third argument of fcolorobx
+ }
+
+ % the institute logo on title page
+ \put(234,-120){
+ \gothamtitlepagelogo
+ }
+
+ % the extra logos on title page (\inserttitlegraphic)
+ \put(-27,-123){
+ \noindent\vbox{
+ \begin{minipage}[b][0.96\paperheight]{0.899\textwidth}
+ \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi
+ \end{minipage}
+ }
+ }
+ \end{picture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{defbeamertemplate{title~page}{gotham~dividedpic}}
+% This title page template is inspired from \url{https://github.com/LukasPietzschmann/awesome-beamer}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~dividedpic}{
+ \long\def\tmpEmpty{}
+ \def\titlecontent{\usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle}
+ \def\subtitlecontent{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle}
+ \settowidth\l__gotham_title_width_dim\titlecontent
+ \settowidth\l__gotham_subtitle_width_dim\subtitlecontent
+ \setlength\l__gotham_title_max_width_dim{\ifdim\l__gotham_title_width_dim>\l__gotham_subtitle_width_dim\l__gotham_title_width_dim\else\l__gotham_subtitle_width_dim\fi}
+ % \thispagestyle{navigation@titlepage}
+ \begin{minipage}{.55\textwidth}
+ \raggedright
+ \titlecontent\\
+ \subtitlecontent\\
+ % \textcolor{accent}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\smile@linewidth}}\\[2em]
+ \textcolor{colorProgBar}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\dim_use:N \l__gotham_titleseparator_height_dim}}\\[2em]
+ \usebeamerfont{author}\usebeamercolor[fg]{author}
+ \insertauthor\\
+ % \ifx\insertauthor\empty\else
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamerfont{author}\usebeamercolor[fg]{author}
+ \insertshortauthor
+ \vspace{2em}
+ }
+ % \fi
+ \ifx\insertinstitute\@empty\else{
+ \usebeamertemplate*{institute}\vspace{2em}
+ }\fi
+ \insertdate
+ \end{minipage}
+
+ % \ifdefined\@background
+ \begin{tikzpicture}[remember~picture, overlay]
+ \clip (current~page.south~east)
+ -- (current~page.north~east)
+ -- ++(-5.1, 0)
+ -- ++(-3, -\paperheight)
+ -- cycle;
+
+ \ifx\gothamtitlepagebg\tmpEmpty
+ \fill[
+ % path~fading=title~page~picture~fading,
+ % left~color=\ifbool{darkBG}{colorDark!200}{colorPale!100},
+ right~color=colorTitlepage!100,%\ifbool{darkBG}{colorPale!100}{colorDark!100},
+ % fading~angle=-15,
+ ]
+ (current~page.south~east)
+ rectangle
+ ++(\dimexpr-0.55\paperwidth, \dimexpr\paperheight+1cm);
+ \else
+ \node[
+ anchor=south~east,
+ inner~sep=0,
+ outer~sep=0
+ ] at (current~page.south~east) {
+ % \includegraphics[height=\paperheight]{\@background}
+ \gothamtitlepagebg
+ };
+ \fi
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{defbeamertemplate{title~page}{gotham~splitvert}}
+% This title page template is inspired from \url{https://github.com/pcafrica/focus-beamertheme}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~splitvert}{
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.5\paperheight}
+ \else %}{
+ \vspace*{-0.63\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}%
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ % \vspace*{-1.65\baselineskip}
+ \begin{minipage}[b][0.35\paperheight]{\textwidth}
+ % \vspace{\baselineskip}
+ \usebeamerfont{title}
+ \usebeamercolor[fg]{frametitle}
+ \inserttitle
+ \end{minipage}
+
+ \newline
+ \begin{minipage}[t][0.1\paperheight]{\textwidth}
+ \usebeamerfont{subtitle}
+ \usebeamercolor[fg]{frametitle}
+ \insertsubtitle
+ \end{minipage}
+
+ % Set the title graphic in a zero-height box, so that
+ % the position of other elements is not affected.
+ \ifx\inserttitlegraphic\@empty\else
+ \newline
+ \vspace*{-1.65\baselineskip}
+ % {\vfuzz=9999pt\vbox~to~0pt {
+ {\parbox[c][0pt][c]{\textwidth}{
+ \raggedleft
+ \inserttitlegraphic
+ % \usebeamertemplate*{title~graphic}
+ }}
+ \fi
+
+ % \ifx\insertauthor\empty\else
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \newline
+ \begin{minipage}[t]{\textwidth}
+ % \usebeamercolor{normal~text}
+ % \usebeamerfont{author}
+ % \insertauthor
+ \vspace*{-1.5\baselineskip}
+ \usebeamertemplate*{author}
+ \end{minipage}
+ }
+ % \fi
+
+ \ifx\insertinstitute\@empty\else
+ \newline
+ \vspace*{-1.65\baselineskip}
+ \begin{minipage}[t]{\textwidth}
+ % \usebeamerfont{institute}
+ % \insertinstitute
+ \usebeamertemplate*{institute}
+ \end{minipage}
+ \fi
+
+ \ifx\insertdate\@empty\else
+ \newline
+ \begin{minipage}[t]{\textwidth}
+ \vspace*{2.65\baselineskip}
+ % \usebeamerfont{date}
+ % \insertdate
+ \usebeamertemplate*{date}
+ \end{minipage}
+ \vspace*{-3.15\baselineskip}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{syntax}
+% \cs{__gotham_set_template:nn} \marg{element} \marg{option}
+% \end{syntax}
+% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function to set a beamertemplate with an option if it exists, otherwise an error is raised.
+% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_template:nn {}{
+ % If it doesn't exist, then create it.
+
+ % Define the command to set template if it exists.
+ \cs_new_protected:Nn \__gotham_set_template:nn
+ {
+ \cs_if_exist:cTF {beamer@@tmpop@#1@#2} {
+ \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerinnerthemegotham}
+ {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist}
+ {helping~message unknown setbeamertemplate option}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{title page} = \oarg{\defopt{gotham normal} \textbar gotham splitvert \textbar gotham dividedpic \textbar gotham reversed}
+% \end{syntax}
+% The 'package' (useinnertheme) options can set different title page templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls for the title page templates.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % title~page
+ title~page .usage:n = { general },
+ title~page .default:n = { gotham~normal },
+ title~page .code:n = { \__gotham_set_template:nn{title~page}{#1} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+
+%% Backgrounds %%%
+%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macrocode}
+% Background lengths
+% \newlength{\imageBGoffset}
+% \setlength{\imageBGoffset}{\paperwidth}
+% \addtolength{\imageBGoffset}{-8.5mm}
+% \end{macrocode}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \begin{macrocode}
+\prop_if_exist:NTF \l__gotham_template_name_prop
+{}{
+ % if not defined than define it.
+ \prop_new:N \l__gotham_template_name_prop
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{background}{name}{def}}
+% \begin{syntax}
+% \cs{defbeamertemplate} \marg{background canvas} \marg{chosen name} \marg{definition}
+% \end{syntax}
+% The |background canvas| and the |background| beamer templates can be redifined by users if wanted/needed.
+% By default these templates are empty (except the color in background canvas when it not transparent).
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{empty}{def}}
+% empty background canvas that contains color, that can be used to reset background.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{empty}{% empty background style has a color.
+ % \ifbeamercolorempty[bg]{background}{}{\color{bg}\vrule width\paperwidth height\paperheight}% copied beamer default here
+ \hspace*{28pt}
+ \begin{beamercolorbox}[wd=\paperwidth,
+ ht=\paperheight,
+ ]{background}
+ % nothing to write, only a background color
+ \end{beamercolorbox}
+}%
+\defbeamertemplate{background}{empty}{}%
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background}{watermark/gotham~draft}{def}}
+% Background that contains a watermakr stamp with the word: DRAFT.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{background}{watermark/gotham~draft}{
+ \begin{tikzpicture}[overlay,remember~picture]
+ \node[color=red, opacity=0.3, scale=5, rotate=45] at ([shift={(0,0)}]current~page.center) {DRAFT};
+ \end{tikzpicture}
+}
+% Add the template to the prop (dictionary)
+\prop_put:Nnn \l__gotham_template_name_prop {background/watermark} {gotham~draft}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_add_beamerframe_key:n}
+% \begin{arguments}
+% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Function to add an option of a frame using an environment.
+% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'.
+% So, the environment 'optionA' must have been declared before.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{
+ % Define the sequence of frameoptions environments to close
+ \seq_new:N \l__gotham_frameoption_tmp_seq
+}
+
+\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{
+ % if it doesn't exist, then create it.
+
+ % Define the command to add frameoptions
+ \cs_new_protected:Nn \__gotham_add_beamerframe_key:n {
+ \define@key{beamerframe}{ #1 }[true]{
+ \begin{#1env}
+ \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} }
+ }
+ }
+
+ % At the end of frames close the opened environments.
+ \apptocmd{\beamer@reseteecodes}{
+ % Join elements in the queue without separator then output the result
+ \seq_use:Nn \l__gotham_frameoption_tmp_seq {}
+ % clear working queue
+ \seq_clear:N \l__gotham_frameoption_tmp_seq
+ }{}{}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noBGC]}
+% Add a frame option |noBGC| to display an empty background canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noBCG]}
+% Add a frame option |noBGC| to display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+
+\newenvironment{noBGCenv}{
+ \setbeamertemplate{background~canvas}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {noBGC}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultWatermark}
+% Boolean to triggering if watermark should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultWatermark}
+% Boolean variable to display the watermark by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultWatermark
+\bool_set_false:N \l_gotham_defaultWatermark
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultWatermark {
+ \setbeamertemplate{background}[watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark}]
+ }{% false
+ \setbeamertemplate{background}[empty]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[watermark]}
+% Add a frame option |watermark| to display watermark in background.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[watermark]}
+% Add a frame option |watermark| to display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+% bool to trigger the add of watermark in background
+\newenvironment{watermarkenv}{
+ \setbeamertemplate{background}[
+ watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark}
+ ]
+}{}
+\__gotham_add_beamerframe_key:n {watermark}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nowatermark]}
+% Add a frame option |nowatermark| to do not display nowatermark in background.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nowatermark]}
+% Add a frame option |nowatermark| to do not display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+% bool to trigger the add of nowatermark in background
+\newenvironment{nowatermarkenv}{
+ \setbeamertemplate{background}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nowatermark}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl}
+% tmp variables
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_tmpa_seq
+{}{
+ % sequence
+ \seq_new:N \l__gotham_tmpa_seq
+}
+\tl_if_exist:NTF \l__gotham_tmpa_tl
+{}{
+ % token list A
+ \tl_new:N \l__gotham_tmpa_tl
+}
+\tl_if_exist:NTF \l__gotham_tmpb_tl
+{}{
+ % token list B
+ \tl_new:N \l__gotham_tmpb_tl
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_set_prop_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function that store in a map the name a template use later.
+% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft.
+% The means for example that if a beamer template is defined using
+% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|,
+% then the function has to be call using
+% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|,
+% that will filled internally the map using the l3 command
+% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|.
+% If the template name given as input does not exist, an error is raised.
+% \TestFiles{gotham-test-039}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{
+ % if it doesn't exist, then create it.
+ \cs_new_protected:Nn \__gotham_set_prop_template:nn
+ {
+ % Check if the first argument contains a /
+ \tl_if_in:nnTF { #1 } { / }
+ {
+ % Split the first around the /
+ \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 }
+ \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } }
+ \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } }
+ % Check if template exist
+ \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} {
+ % set the value in the map, so it can be called later.
+ \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2}
+ % \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerthemegotham}
+ {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist}
+ {helping~message}
+ }
+ }{% false -> error
+ \PackageError{beamerthemegotham}
+ {%
+ When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~
+ As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}'
+ }{helping~message}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{watermark default} = \oarg{\defopt{off} \textbar on }
+% \meta{watermark template} = \oarg{\defopt{gotham draft} \textbar ...}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |background| (and |background canvas|) templates according to situations.
+% Block environments such as |theorem| and |example| have no background color by default.
+% The option |watermark default=on| can enable the |watermark template| on every frame; but it can still be turned off for specific frames when using the frame option |nowatermark|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for background and watermark).
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }{
+ % watermark template
+ watermark~template .usage:n = { general },
+ watermark~template .default:n = { gotham~draft },
+ watermark~template .code:n = { \__gotham_set_prop_template:nn{background/watermark}{#1} },
+}
+\keys_define:nn { gotham / inner }{
+ % watermark default
+ watermark~default .choice:,
+ watermark~default .usage:n = { general },
+ watermark~default .default:n = { false },
+
+ watermark~default / true .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+ watermark~default / on .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+ watermark~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+
+ watermark~default / false .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+ watermark~default / off .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+ watermark~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+
+ watermark~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'watermark~default',~so~being~ignored. }{helping~message: watermark~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Stand IN/OUT %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[c]}
+% Add a frame option |c| for enhanced vertically centered text in the frame.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[c]}
+% Add a frame option |c| for improved vertically centered text in the frame.
+% By default, Beamer frames offer the |c| option to \textit{almost} vertically center the text, but the placement is a little too high.
+% To fix this, we redefine the |c| option to equalize |\beamer@frametopskip| and |\beamer@framebottomskip|.
+% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/247826/}{this Stack Exchange question}.
+% \UnitTested
+% \TestFiles{gotham-test-039}
+% \begin{macrocode}
+\define@key{beamerframe}{c}[true]{
+ \beamer@frametopskip=0pt~plus~1fill\relax
+ \beamer@framebottomskip=0pt~plus~1fill\relax
+ \beamer@frametopskipautobreak=0pt~plus~.4\paperheight\relax
+ \beamer@framebottomskipautobreak=0pt~plus~.6\paperheight\relax
+ \def\beamer@initfirstlineunskip{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{standout/gotham}}
+% Definition of the background canvas template used by the standout frame of gotham theme.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{standout/gotham}{
+ % copied from beamer default
+ \ifbeamercolorempty[bg]{standout}{
+ % if the background standout color is transparent, do nothing.
+ }{
+ \usebeamercolor[bg]{standout}\color{bg}
+ \vrule~width\paperwidth~height\paperheight
+ }
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standout} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{standout}{gotham}}
+% Definition of the standout template used by the standout frame of gotham theme.
+% This includes background canvas template, fonts and colors.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate*{standout}{gotham}{%
+ %
+ % \setkeys{beamerframe}{c}
+ % \setkeys{beamerframe}{noframenumbering}
+ % \centering
+
+ \setbeamertemplate{background~canvas}[standout/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standout}]
+ % \usebeamertemplate{background~canvas}%[standout/gotham]
+ \usebeamerfont{standout}
+ % if the background color is switched, then change foreground (font) color.
+ \ifbeamercolorempty[bg]{palette~primary}{
+ %true : empty background (transparent)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.fg
+ }
+ }{
+ %false : background not empty (dark or light)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.bg
+ }
+ }
+ \setbeamercolor{local~structure}{
+ fg=palette~primary.bg
+ }
+ \usebeamercolor[fg]{palette~primary}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[standout]}
+% Add a frame option |standout| to display the standout frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[standout]}
+% Add a frame option |standout| to display the standout frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\newenvironment{standoutenv}{
+ \usebeamertemplate{standout}
+}{}
+\__gotham_add_beamerframe_key:n {standout}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{standin/gotham}}
+% Definition of the background canvas template used by the standin frame of gotham theme.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{standin/gotham}{
+ \ifbeamercolorempty[bg]{standin}{
+ % if the background standin color is transparent, do nothing.
+ }{
+ % Uncomment this if-condition to have a 'light' background in 'transparent' color-mode.
+ \ifbool{transparentBG}{
+ % \color{} is not possible so, it is better to do nothing for transparent bg than creating a transparent vrule.
+ }{
+ \usebeamercolor[bg]{standin}\color{bg}
+ \vrule~width\paperwidth~height\paperheight
+ }
+ }
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standin} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{standout}{gotham}}
+% Definition of the standout template used by the standout frame of gotham theme.
+% This includes background canvas template, fonts and colors.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate*{standin}{gotham}{
+ %
+ % \setkeys{beamerframe}{c}
+ % \setkeys{beamerframe}{noframenumbering}
+ % \centering
+ \setbeamertemplate{background~canvas}[standin/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standin}]
+ % \usebeamertemplate{background~canvas}%[standin/gotham]
+ \usebeamerfont{standin}
+ %
+ % Uncomment this if-condition to have a 'light' frametitle in 'transparent' color-mode.
+ % \ifbeamercolorempty[bg]{normal~text}{
+ % %true : empty background (transparent)
+ % \setbeamercolor{frametitle}{
+ % use=normal~text,
+ % bg=colorBG,
+ % fg=normal~text.fg
+ % }
+ % }{
+ % false
+ \setbeamercolor{frametitle}{
+ use=normal~text,
+ bg=normal~text.bg,
+ fg=normal~text.fg
+ }
+ % }
+ % \setbeamercolor{frametitle}{
+ % use=normal~text,
+ % bg=normal~text.bg,
+ % fg=normal~text.fg
+ % }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[standin]}
+% Add a frame option |standin| to display the standin frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[standin]}
+% Add a frame option |standin| to display the standin frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\newenvironment{standinenv}{
+ \usebeamertemplate{standin}
+}{}
+\__gotham_add_beamerframe_key:n {standin}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{standin template} = \oarg{\defopt{gotham} \textbar ...}
+% \meta{standout template} = \oarg{\defopt{gotham} \textbar ...}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |standout| (and |standin|) templates.
+% These templates are activated when giving the frame option |\begin{frame}[standin]| and |standout|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for standout and standin.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % standout template
+ standout~template .usage:n = { general },
+ standout~template .default:n = { gotham },
+ standout~template .code:n = { \__gotham_set_prop_template:nn{background~canvas/standout}{#1} },
+}
+\keys_define:nn { gotham / inner }
+{
+ % standin template
+ standin~template .usage:n = { general },
+ standin~template .default:n = { gotham },
+ standin~template .code:n = { \__gotham_set_prop_template:nn{background~canvas/standin}{#1} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Sections %%%%
+%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[part]}
+% Add a frame option |part| to display the part frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[part]}
+% Add a frame option |part| to display the part frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_partframe
+\bool_set_false:N \l_gotham_partframe
+\define@key{beamerframe}{part}[true]{
+ \bool_set_true:N \l_gotham_partframe
+ \begingroup
+ \usebeamertemplate{part~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_partframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_partframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{part}[true]{
+% \thispagestyle{navigation@part}
+% }
+% \def\ps@navigation@part{
+% \usebeamertemplate{part~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[section]}
+% Add a frame option |section| to display the section frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[section]}
+% Add a frame option |section| to display the section frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_sectionframe
+\bool_set_false:N \l_gotham_sectionframe
+\define@key{beamerframe}{section}[true]{
+ \bool_set_true:N \l_gotham_sectionframe
+ \begingroup
+ \usebeamertemplate{section~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_sectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_sectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{section}[true]{
+% \thispagestyle{navigation@section}
+% }
+% \def\ps@navigation@section{
+% \usebeamertemplate{section~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[subsection]}
+% Add a frame option |subsection| to display the subsection frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[subsection]}
+% Add a frame option |subsection| to display the subsection frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_subsectionframe
+\bool_set_false:N \l_gotham_subsectionframe
+\define@key{beamerframe}{subsec}[true]{
+ \bool_set_true:N \l_gotham_subsectionframe
+ \begingroup
+ \usebeamertemplate{subsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_subsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_subsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{subsec}[true]{
+% \thispagestyle{navigation@subsec}
+% }
+% \def\ps@navigation@subsec{
+% \usebeamertemplate{subsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[subsubsection]}
+% Add a frame option |subsubsection| to display the subsubsection frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[subsubsection]}
+% Add a frame option |subsubsection| to display the subsubsection frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_subsubsectionframe
+\bool_set_false:N \l_gotham_subsubsectionframe
+\define@key{beamerframe}{subsubsec}[true]{
+ \bool_set_true:N \l_gotham_subsubsectionframe
+ \begingroup
+ \usebeamertemplate{subsubsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_subsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_subsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{subsubsec}[true]{
+% \thispagestyle{navigation@subsubsec}
+% }
+% \def\ps@navigation@subsubsec{
+% \usebeamertemplate{subsubsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\partContentName, \secContentName, \subsecContentName}
+% Commands containing the 'table of contents' title for part, section and subection (if theses ToC frames are enabled).
+% An option for subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\providebool{partContent}, \partContentName}
+% Boolean variable to enable the table of contents of the part, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+% repeated from BeamerExtra
+\providebool{partContent}
+\booltrue{partContent}
+\providecommand{\partContentName}{Part~content}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{implementation}
+% \begin{variable}{\providebool{secContent}, \secContentName}
+% Boolean variable to enable the table of contents of the section, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+\providebool{sectionContent}
+\booltrue{sectionContent}
+\providecommand{\secContentName}{Section~content}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{implementation}
+% \begin{variable}{\providebool{subsectionContent}, \subsecContentName}
+% Boolean variable to enable the table of contents of the subsection, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+\providebool{subsectionContent}
+\booltrue{subsectionContent}
+\providecommand{\subsecContentName}{Subsection~content}
+% Subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with.
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part~title}{gotham}, \defbeamertemplate{section~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}}
+% Definitions of templates controling how will appear the name/title of the parts, sections, subsections and subsubsections.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\def\partname{\translate{Part}}
+\defbeamertemplate*{part~title}{gotham}{
+ \usebeamercolor[fg]{part~title}
+ \usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\[1.75ex]
+ \insertpart
+}
+\defbeamertemplate*{section~title}{gotham}{
+ \usebeamercolor[fg]{section~title}
+ \usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead
+}
+\defbeamertemplate*{subsection~title}{gotham}{
+ \usebeamercolor[fg]{subsection~title}
+ \usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead
+}
+\def\subsubsectionname{\translate{Subsubsection}}
+\def\insertsubsubsectionnumber{\arabic{subsubsection}}
+\def\subsubsectionpage{\usebeamertemplate*{subsubsection~page}}
+\defbeamertemplate*{subsubsection~title}{gotham}{
+ \usebeamercolor[fg]{subsubsection~title}
+ \usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_partpage:, \__gotham_inner_enable_partpage:}
+% Commands to disable or enable the display of a 'part page' frame at the begining of every new part.
+% It replaces the |\newcommand{\gotham@disablepartpage}| and | \newcommand{\gotham@enablepartpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_partpage:
+{
+ \AtBeginPart{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_partpage:
+{
+ \AtBeginPart{
+ \ifbeamer@inframe
+ \partpage
+ \else
+ \frame[c, noframenumbering, part]{\partpage}
+ \fi
+
+ \ifbool{partContent}{
+ % true
+ \begin{frame}[noframenumbering, tocpart]
+ \frametitle{\partContentName}
+ \tableofcontents[part=\thepart]
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_sectionpage:, \__gotham_inner_enable_sectionpage:}
+% Commands to disable or enable the display of a 'section page' frame at the begining of every new section.
+% It replaces the |\newcommand{\gotham@disablesectionpage}| and | \newcommand{\gotham@enablesectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_sectionpage:
+{
+ \AtBeginSection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_sectionpage:
+{
+ \AtBeginSection{
+ \ifbeamer@inframe
+ \sectionpage
+ \else
+ \frame[c, noframenumbering, section]{\sectionpage}
+ \fi
+
+ \ifbool{sectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsec]
+ \frametitle{\secContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsectionpage:, \__gotham_inner_enable_subsectionpage:}
+% Commands to disable or enable the display of a 'subsection page' frame at the begining of every new subsection.
+% It replaces the |\newcommand{\gotham@disablesubsectionpage}| and | \newcommand{\gotham@enablesubsectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_subsectionpage:
+{
+ \AtBeginSubsection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_subsectionpage:
+{
+ \AtBeginSubsection{
+ \ifbeamer@inframe
+ \subsectionpage
+ \else
+ \frame[c, noframenumbering, subsec]{\subsectionpage}
+ \fi
+
+ \ifbool{subsectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsubsec]
+ \frametitle{\subsecContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ %currentsubsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ subsectionstyle=show/shaded/hide,
+ subsubsectionstyle=show/show/hide,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsubsectionpage:, \__gotham_inner_enable_subsubsectionpage:}
+% Commands to disable or enable the display of a 'subsubsection page' frame at the begining of every new subsubsection.
+% It replaces the |\newcommand{\gotham@disablesubsubsectionpage}| and | \newcommand{\gotham@enablesubsubsectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_subsubsectionpage:
+{
+ \AtBeginSubsubsection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_subsubsectionpage:
+{
+ \AtBeginSubsubsection{
+ \ifbeamer@inframe
+ \subsubsectionpage
+ \else
+ \frame[c, noframenumbering, subsubsec]{\subsubsectionpage}
+ \fi
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% Variables used to defined the progress bar in section pages.
+% If the vertical size of the bar want to be changed, the command |\setlength{\gotham@progressonsectionpage@linewidth}{<0.4pt>}| can be used.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% Variables used to defined the progress bar in section pages.
+% \begin{macrocode}
+% horizontal size of the bar (used internally and set to |\textwidth|.
+\newlength{\gotham@progressonsectionpage}
+% vertical size of the bar
+\newlength{\gotham@progressonsectionpage@linewidth}
+\setlength{\gotham@progressonsectionpage@linewidth}{3pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~section~page}{empty}, \defbeamertemplate{progress~bar~in~section~page}{display}}
+% Templates to disable or enable the display of the progress bar in section pages.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~section~page}{empty}{
+ \vspace{\gotham@progressonsectionpage@linewidth+1ex}
+}
+
+\def\inserttotalframenumber{100}
+\defbeamertemplate{progress~bar~in~section~page}{display}{
+ \setlength{\gotham@progressonsectionpage}{
+ \textwidth * \ratio{\insertframenumber~pt}{\inserttotalframenumber~pt}
+ }
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\textwidth, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\sectionhoffset}
+% length controlling the horizontal offset of the (section title + progress bar) block.
+% Can be useful when extra stuff want to be display on sides of the block.
+% The default value is 0.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\sectionhoffset}
+% length controlling the horizontal offset of the (section title + progress bar) block.
+% \begin{macrocode}
+\newlength{\sectionhoffset}
+\setlength{\sectionhoffset}{0pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{part|section|subsection|subsubsection~page}{progressbar/simple}}
+% Template of part \textbar section \textbar subsection \textbar subsubsection pages shared by 'progressbar' and 'simple' style.
+% These pages contain what is inside the part \textbar section \textbar subsection \textbar subsubsection frame (without background and frametitle).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ % \raggedright
+ \centering
+ \usebeamertemplate*{part~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{section~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{subsection~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \usebeamertemplate*{subsection~title}
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{subsubsection~page}{progressbar/simple}{
+ % \frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \usebeamertemplate*{subsection~title}
+ \par
+ \usebeamertemplate*{subsubsection~title}
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{part|section|subsection|subsubsection/gotham}}
+% Background canvas template of part \textbar section \textbar subsection \textbar subsubsection pages.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{part/gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{section/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+\defbeamertemplate{background~canvas}{subsection/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+\defbeamertemplate{background~canvas}{subsubsection/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~simple}}
+% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham simple' style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{part~page}[progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+\defbeamertemplate{section~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{section~page}[progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+\defbeamertemplate{subsection~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{subsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+\defbeamertemplate{subsubsection~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{subsubsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~progressbar}}
+% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham progressbar' style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{part~page}[progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+\defbeamertemplate{section~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{section~page}[progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+\defbeamertemplate{subsection~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{subsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+\defbeamertemplate{subsubsection~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{subsubsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{progress~bar~in~splitvert}{empty|dispay}}
+% Internal template to display or disable (empty) the progressbar used in 'splitvert' (split vertically) style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~splitvert}{empty}{
+ \vspace{-0.5ex}
+}
+
+\defbeamertemplate*{progress~bar~in~splitvert}{display}{
+ % \nointerlineskip
+ \setlength{\gotham@progressonsectionpage}{
+ \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\paperwidth, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham splitvert progressbar/simple}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert progressbar}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert simple}}
+% Templates for part \textbar section \textbar subsection \textbar subsubsection pages that are common for 'gotham splitvert progressbar' and 'gotham splitvert simple' styles (which implies part \textbar section \textbar subsection \textbar subsubsection frames).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+% Part page splitvert.
+\defbeamertemplate{part~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{part!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ % \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \centering
+ \usebeamertemplate*{part~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ % \usebeamerfont{subsection~ttitle}
+ % \usebeamercolor[bg]{frametitle}
+ % empty
+ \end{minipage}
+}
+\defbeamertemplate{part~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ % \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+\defbeamertemplate{part~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ % \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+% Section page splitvert.
+\defbeamertemplate{section~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{section!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsection~title}
+ \usebeamercolor[bg]{frametitle}
+ % empty
+ \end{minipage}
+}
+\defbeamertemplate{section~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+\defbeamertemplate{section~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Subsection page splitvert.
+\defbeamertemplate{subsection~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{subsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsection~title}
+ \usebeamercolor[bg]{frametitle}
+ \usebeamertemplate*{subsection~title}
+ % \par
+ % \vspace{1em}%phantom subsection
+ \end{minipage}
+}
+\defbeamertemplate{subsection~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+\defbeamertemplate{subsection~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+% Subsubection page splitvert.
+\defbeamertemplate{subsubsection~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{subsubsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsubsection~title}
+ \usebeamercolor[bg]{frametitle}
+ \usebeamertemplate*{subsection~title}
+ \par
+ \usebeamertemplate*{subsubsection~title}
+ \end{minipage}
+}
+\defbeamertemplate{subsubsection~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+\defbeamertemplate{subsubsection~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham progressvert}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham progressvert}}
+% Templates for part \textbar section \textbar subsection \textbar subsubsection pages for 'gotham progressvert'.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+
+% Part page progressvert.
+\defbeamertemplate{part~page}{gotham~progressvert}{
+ % \frametitle{part!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\[1.75ex]
+ \insertpart
+ }
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\
+ \insertpart
+ }
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{part~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{part~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{part~page}[gotham~progressvert]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Section page progressvert.
+\defbeamertemplate{section~page}{gotham~progressvert}{
+ % \frametitle{section!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{section~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{section~page}[gotham~progressvert]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Subection page progressvert.
+\defbeamertemplate{subsection~page}{gotham~progressvert}{
+ % \frametitle{subsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{subsection~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsection~page}[gotham~progressvert]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+% Subsubection page progressvert.
+\defbeamertemplate{subsubsection~page}{gotham~progressvert}{
+ % \frametitle{subsubsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ \\
+ {\usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ \\
+ {\usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{subsubsection~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsubsection~page}[gotham~progressvert]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{partframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{partframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{sectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{sectionframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{subsectionframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsubframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{subsubframe default} = \oarg{\defopt{on} \textbar off}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |partframe templates| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively), which define the style of the partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) displayed at every new beginning of sectioning.
+% These templates can be disabled (or re-enabled) by default using the option |partframe default| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) and standin.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }{
+ % partframe template
+ partframe~template .usage:n = { general },
+ partframe~template .default:n = { gotham~progressbar },
+ partframe~template .code:n = { \__gotham_set_template:nn{part~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % partframe default
+ partframe~default .choice:,
+ partframe~default .usage:n = { general },
+ partframe~default .default:n = { true },
+
+ partframe~default / true .code:n = { \__gotham_inner_enable_partpage: },
+ partframe~default / on .code:n = { \__gotham_inner_enable_partpage: },
+ partframe~default / enable .code:n = { \__gotham_inner_enable_partpage: },
+
+ partframe~default / false .code:n = { \__gotham_inner_disable_partpage: },
+ partframe~default / off .code:n = { \__gotham_inner_disable_partpage: },
+ partframe~default / disable .code:n = { \__gotham_inner_disable_partpage: },
+
+ partframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'partframe~default',~so~being~ignored. }{helping~message: partframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % sectionframe template
+ sectionframe~template .usage:n = { general },
+ sectionframe~template .default:n = { gotham~progressbar },
+ sectionframe~template .code:n = { \__gotham_set_template:nn{section~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % sectionframe default
+ sectionframe~default .choice:,
+ sectionframe~default .usage:n = { general },
+ sectionframe~default .default:n = { true },
+
+ sectionframe~default / true .code:n = { \__gotham_inner_enable_sectionpage: },
+ sectionframe~default / on .code:n = { \__gotham_inner_enable_sectionpage: },
+ sectionframe~default / enable .code:n = { \__gotham_inner_enable_sectionpage: },
+
+ sectionframe~default / false .code:n = { \__gotham_inner_disable_sectionpage: },
+ sectionframe~default / off .code:n = { \__gotham_inner_disable_sectionpage: },
+ sectionframe~default / disable .code:n = { \__gotham_inner_disable_sectionpage: },
+
+ sectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectionframe~default',~so~being~ignored. }{helping~message: sectionframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsectionframe template
+ subsectionframe~template .usage:n = { general },
+ subsectionframe~template .default:n = { gotham~progressbar },
+ subsectionframe~template .code:n = { \__gotham_set_template:nn{subsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsectionframe default
+ subsectionframe~default .choice:,
+ subsectionframe~default .usage:n = { general },
+ subsectionframe~default .default:n = { true },
+
+ subsectionframe~default / true .code:n = { \__gotham_inner_enable_subsectionpage: },
+ subsectionframe~default / on .code:n = { \__gotham_inner_enable_subsectionpage: },
+ subsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsectionpage: },
+
+ subsectionframe~default / false .code:n = { \__gotham_inner_disable_subsectionpage: },
+ subsectionframe~default / off .code:n = { \__gotham_inner_disable_subsectionpage: },
+ subsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsectionpage: },
+
+ subsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectionframe~default',~so~being~ignored. }{helping~message: subsectionframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsubsectionframe template
+ subsubsectionframe~template .usage:n = { general },
+ subsubsectionframe~template .default:n = { gotham~progressbar },
+ subsubsectionframe~template .code:n = { \__gotham_set_template:nn{subsubsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsubsectionframe default
+ subsubsectionframe~default .choice:,
+ subsubsectionframe~default .usage:n = { general },
+ subsubsectionframe~default .default:n = { true },
+
+ subsubsectionframe~default / true .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+ subsubsectionframe~default / on .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+ subsubsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+
+ subsubsectionframe~default / false .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+ subsubsectionframe~default / off .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+ subsubsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+
+ subsubsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsubsectionframe~default',~so~being~ignored. }{helping~message: subsubsectionframe~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Table of Content %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{\tikzset{section~number/.style={}} }
+% Definition of how sections, subsections and subsubsections' numbers will appear in 'gotham bullet' style for tables of contents.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\tikzset{section~number/.style={
+ circle,
+ fill=colorAlert,
+ minimum~size=0.4em,
+ text=colorAlert!10,
+ inner~sep=1.5pt,
+ },
+ section/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg,
+ align=left
+ },
+ subsection~number/.style={
+ circle,
+ fill=colorBackElement!50,
+ inner~sep=0pt,
+ minimum~size=0.15cm,
+ },
+ subsection/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg!80,
+ align=left
+ },
+ subsubsection~number/.style={
+ circle,
+ fill=colorBackElement!50,
+ inner~sep=0pt,
+ minimum~size=0.06cm,
+ },
+ subsubsection/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg!80,
+ align=left
+ },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}}
+% Template definitions for |gotham bullet| style of ToC that appear in section \textbar subsection \textbar subsubsection frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{section~in~toc}{gotham~bullet}{
+ \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number]{\textbf{\small\inserttocsectionnumber}};
+ \ \tikz[baseline=-0.5ex]\node[section]{\usebeamerfont*{toc~title} \inserttocsection};\\[-0.35cm]
+ \hspace*{1.13cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}\\\nointerlineskip}
+}
+\defbeamertemplate{subsection~in~toc}{gotham~bullet}{
+ \hspace*{0.53cm}\tikz[baseline=-0.5ex]\node[subsection~number]{};
+ \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsection};\\[-0.2cm]
+}
+\defbeamertemplate{subsubsection~in~toc}{gotham~bullet}{
+ \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number]{};
+ \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection};\\[-0.2cm]
+}
+% Shaded for sections already done in the presentation.
+\defbeamertemplate{section~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number, fill=colorBackElement!40, text=background]{\usebeamerfont*{toc~subtitle}\textbf{\inserttocsectionnumber}};
+ \ \tikz[baseline=-0.5ex]\node[section, text=colorExample!20]{\usebeamerfont*{toc~title} \inserttocsection};\\[-0.35cm]
+ \hspace*{1.3cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}\\\nointerlineskip}
+}
+\defbeamertemplate{subsection~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.55cm}\tikz[baseline=-0.5ex]\node[subsection~number,fill=colorBackElement!20]{};
+ \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection, text=colorBackElement!20]{};\\[-0.2cm]
+}
+\defbeamertemplate{subsubsection~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number,fill=colorBackElement!20]{};
+ \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection,text=colorBackElement!20]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection};\\[-0.2cm]
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}}
+% Template definitions for |gotham simple| style of ToC that appear in section \textbar subsection \textbar subsubsection frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{part~in~toc}{gotham~simple}{
+ {{\inserttocpartnumber}.}~\inserttocpart
+ \\
+}
+\defbeamertemplate{section~in~toc}{gotham~simple}{
+ {{\inserttocsectionnumber}.}~\inserttocsection
+ \\
+}
+\defbeamertemplate{subsection~in~toc}{gotham~simple}{
+ \quad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.}~\inserttocsubsection%
+ \\
+}
+\defbeamertemplate{subsubsection~in~toc}{gotham~simple}{
+ \qquad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.\inserttocsubsubsectionnumber.}~\inserttocsubsubsection
+ \\
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{toc/gotham~simple}, \defbeamertemplate{toc~page}{gotham~simple|bullet}}
+% Definition of toc page style named gotham simple and gotham bullet, used for table of content pages.
+% Both are using a dedicated background canvas.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{toc/gotham~simple}{
+ \ifbeamercolorempty[bg]{standin}{}{
+ \color{bg}\vrule width\paperwidth height\paperheight
+ }
+}
+\defbeamertemplate{toc~page}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc/gotham~simple]
+}
+\defbeamertemplate{toc~page}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc/gotham~simple]
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[toc]}
+% Add a frame option |toc| to display the toc frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[toc]}
+% Add a frame option |toc| to display the toc frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\newenvironment{tocenv}{
+ \usebeamertemplate{toc~page}
+}{}
+\__gotham_add_beamerframe_key:n {toc}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{toc~part|section|subsection~gotham}}
+% Defintion of the background canvas used by the toc in part\,\textbar\,section\,\textbar\,subsection.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{toc~part~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{toc~section~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{toc~subsection~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~simple}}
+% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham simple style.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{toc~part~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~part~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{part~page}% already included
+}
+\defbeamertemplate{toc~section~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~section~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]%
+ % \usebeamertemplate*{section~page}% already included
+}
+\defbeamertemplate{toc~subsection~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~subsection~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{subsection~page}% already included
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~bullet}}
+% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham bullet style.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{toc~part~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~part~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{part~page}% already included
+}
+\defbeamertemplate{toc~section~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~section~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]%
+ % \usebeamertemplate*{section~page}% already included
+}
+\defbeamertemplate{toc~subsection~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~subsection~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{subsection~page}% already included
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocpart]}
+% Add a frame option |tocpart| to display the tocpart frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocpart]}
+% Add a frame option |tocpart| to display the tocpart frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocpartframe
+\bool_set_false:N \l_gotham_tocpartframe
+\define@key{beamerframe}{tocpart}[true]{
+ \bool_set_true:N \l_gotham_tocpartframe
+ \begingroup
+ \usebeamertemplate{toc~part~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocpartframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocpartframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocpart}[true]{
+% \thispagestyle{navigation@tocpart}
+% }
+% \def\ps@navigation@tocpart{
+% \usebeamertemplate{toc~part~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsec]}
+% Add a frame option |tocsec| to display the tocsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsec]}
+% Add a frame option |tocsec| to display the tocsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsectionframe
+\bool_set_false:N \l_gotham_tocsectionframe
+\define@key{beamerframe}{tocsec}[true]{
+ \bool_set_true:N \l_gotham_tocsectionframe
+ \begingroup
+ \usebeamertemplate{toc~section~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsec}[true]{
+% \thispagestyle{navigation@tocsec}
+% }
+% \def\ps@navigation@tocsec{
+% \usebeamertemplate{toc~section~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsubsec]}
+% Add a frame option |tocsubsec| to display the tocsubsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsubsec]}
+% Add a frame option |tocsubsec| to display the tocsubsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsubsectionframe
+\bool_set_false:N \l_gotham_tocsubsectionframe
+\define@key{beamerframe}{tocsubsec}[true]{
+ \bool_set_true:N \l_gotham_tocsubsectionframe
+ \begingroup
+ \usebeamertemplate{toc~subsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsubsec}[true]{
+% \thispagestyle{navigation@tocsubsec}
+% }
+% \def\ps@navigation@tocsubsec{
+% \usebeamertemplate{toc~subsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsubsubsec]}
+% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsubsubsec]}
+% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsubsubsectionframe
+\bool_set_false:N \l_gotham_tocsubsubsectionframe
+\define@key{beamerframe}{tocsubsubsec}[true]{
+ \bool_set_true:N \l_gotham_tocsubsubsectionframe
+ \begingroup
+ \usebeamertemplate{toc~subsubsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsubsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsubsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsubsubsec}[true]{
+% \thispagestyle{navigation@tocsubsubsec}
+% }
+% \def\ps@navigation@tocsubsubsec{
+% \usebeamertemplate{toc~subsubsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{tocframe template} = \oarg{\defopt{gotham bullet} \textbar gotham simple \textbar ...}
+% \meta{parttocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{parttocframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{sectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{sectocframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{subsectocframe default} = \oarg{\defopt{on} \textbar off}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |parttocframe templates| (or |sectocframe| and |subsectocframe| respectively), which define the style of the table of content for partframe (or |sectionframe|, and |subsectionframe| respectively) displayed at every new beginning of sectioning.
+% These templates can be disabled (or re-enabled) by default using the option |parttocframe default| (or |sectocframe| and |subssectocframe| respectively).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for |parttocframe| (or |sectocframe|, |subsectocframe| respectively).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % TOC style
+ tocframe~template .usage:n = { general },
+ tocframe~template .default:n = { gotham~bullet },
+ tocframe~template .code:n = { \__gotham_set_template:nn{toc~page}{#1} }
+}
+
+\keys_define:nn { gotham / inner }{
+ % parttocframe template
+ parttocframe~template .usage:n = { general },
+ parttocframe~template .default:n = { gotham~simple },
+ parttocframe~template .code:n = { \__gotham_set_template:nn{toc~part~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % parttocframe default
+ parttocframe~default .choice:,
+ parttocframe~default .usage:n = { general },
+ parttocframe~default .default:n = { true },
+
+ parttocframe~default / true .code:n = { \booltrue{partContent} },
+ parttocframe~default / on .code:n = { \booltrue{partContent} },
+ parttocframe~default / enable .code:n = { \booltrue{partContent} },
+
+ parttocframe~default / false .code:n = { \boolfalse{partContent} },
+ parttocframe~default / off .code:n = { \boolfalse{partContent} },
+ parttocframe~default / disable .code:n = { \boolfalse{partContent} },
+
+ parttocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'parttocframe~default',~so~being~ignored. }{helping~message: parttocframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % sectiontocframe template
+ sectiontocframe~template .usage:n = { general },
+ sectiontocframe~template .default:n = { gotham~simple },
+ sectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~section~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % sectiontocframe default
+ sectiontocframe~default .choice:,
+ sectiontocframe~default .usage:n = { general },
+ sectiontocframe~default .default:n = { true },
+
+ sectiontocframe~default / true .code:n = { \booltrue{sectionContent} },
+ sectiontocframe~default / on .code:n = { \booltrue{sectionContent} },
+ sectiontocframe~default / enable .code:n = { \booltrue{sectionContent} },
+
+ sectiontocframe~default / false .code:n = { \boolfalse{sectionContent} },
+ sectiontocframe~default / off .code:n = { \boolfalse{sectionContent} },
+ sectiontocframe~default / disable .code:n = { \boolfalse{sectionContent} },
+
+ sectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectiontocframe~default',~so~being~ignored. }{helping~message: sectiontocframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsectiontocframe template
+ subsectiontocframe~template .usage:n = { general },
+ subsectiontocframe~template .default:n = { gotham~simple },
+ subsectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~subsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsectiontocframe default
+ subsectiontocframe~default .choice:,
+ subsectiontocframe~default .usage:n = { general },
+ subsectiontocframe~default .default:n = { true },
+
+ subsectiontocframe~default / true .code:n = { \booltrue{subsectionContent} },
+ subsectiontocframe~default / on .code:n = { \booltrue{subsectionContent} },
+ subsectiontocframe~default / enable .code:n = { \booltrue{subsectionContent} },
+
+ subsectiontocframe~default / false .code:n = { \boolfalse{subsectionContent} },
+ subsectiontocframe~default / off .code:n = { \boolfalse{subsectionContent} },
+ subsectiontocframe~default / disable .code:n = { \boolfalse{subsectionContent} },
+
+ subsectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectiontocframe~default',~so~being~ignored. }{helping~message: subsectiontocframe~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%% Environments styles %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{variable}{\gotham@blocksep, \gotham@blockadjust}
+% |blocksep| and |blockadjust| lengths used in |\gotham@block| definition.
+% While |gotham@strut| is a command to ensure verticale spacing equivalent to a line.
+% \begin{macrocode}
+\newlength{\gotham@blocksep}
+\newlength{\gotham@blockadjust}
+\setlength{\gotham@blocksep}{0.75ex}
+\setlength{\gotham@blockadjust}{0.25ex}
+\providecommand{\gotham@strut}{
+ \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)}
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\gotham@parskip, \linespread}
+% length parskip defined by gotham and the linespread are adjusted.
+% \begin{macrocode}
+ \newlength{\gotham@parskip}
+ \setlength{\gotham@parskip}{0.5em}
+ \setlength{\parskip}{\gotham@parskip}
+ \linespread{1.15}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\newcommand{\gotham@block}[1]}
+% The three different block environments differ only in their colours.
+% Rather than repeat the essentially the same template three times, we use the auxiliary macro |\gotham@block| to define all three templates.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\newcommand{\gotham@block}[1]{
+ \par\vskip\medskipamount
+ \setlength{\parskip}{0pt}
+
+ % If a background color is defined for the block title or body, we need to add a little bit of padding to the corresponding box.
+ % Ideally, this would be accomplished by setting |colsep=0.75ex|, which is intended to add ``color separation space'' only when the box has a colored background.
+ % Unfortunately, |colsep| also adds this separation if the background color is inherited, even if the inherited color is actually empty.
+ % (The technical reason for this boils down to the fact that the |\ifx| directive does not expand macros.)
+ %
+ % To achieve the correct spacing for |alertblock|s and |exampleblock|s as well as for normal blocks, we have to begin the |beamercolorbox| differently based on whether |block title| has an empty background.
+ %
+ % If the |block title| background is empty, or the user has explicitly removed the background from (e.g.) |block title alerted|, we just need to set a rightskip for a nice ragged-right block title.
+ \ifbeamercolorempty[bg]{block~title#1}{%
+ \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1}
+ }{
+ \ifbeamercolorempty[bg]{block~title}{
+ \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1}
+ }
+ % Otherwise, if the |block title| has a background, we set the padding based on |\gotham@blockskip|.
+ % However, we have to visually compensate for the |\gotham@strut| added to the block title (see below) by subtracting |\gotham@blockadjust| from the top and bottom padding.
+ %
+ {
+ \begin{beamercolorbox}[
+ sep=\dimexpr\gotham@blocksep-\gotham@blockadjust\relax,
+ leftskip=\gotham@blockadjust,
+ rightskip=\dimexpr\gotham@blockadjust~plus~4em\relax,
+ ]{block~title#1}
+ }
+ }
+ % We can now set the contents of the |block title|.
+ % The zero-width but positive-height box |\gotham@strut| ensures that the block title box has a consistent height, even if it lacks punctuation, ascenders, or descenders.
+ %
+ \usebeamerfont*{block~title#1}
+ \gotham@strut
+ \insertblocktitle
+ \gotham@strut
+ \end{beamercolorbox}
+ % Next, we typeset the |block body|.
+ % This the code is similar to, but simpler than, the |block title| code since we don't need to adjust for any struts.
+ \nointerlineskip
+ \ifbeamercolorempty[bg]{block~body#1}{
+ \begin{beamercolorbox}[vmode]{block~body#1}
+ }{
+ \ifbeamercolorempty[bg]{block~body}{
+ \begin{beamercolorbox}[vmode]{block~body#1}
+ }{
+ \begin{beamercolorbox}[sep=\gotham@blocksep, vmode]{block~body#1}
+ \vspace{-\gotham@parskip}
+ }
+ }
+ \usebeamerfont{block~body#1}
+ \setlength{\parskip}{\gotham@parskip}
+}
+% This concludes the auxiliary macro |\gotham@block|.
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{block}, \begin{alertblock}, \begin{exampleblock}}
+% Three boxed environment are defined by default: |block|, |alertblock| and |exampleblock|.
+% The style of blocks can be changed using |\setbeamertemplate{blocks}[rounded][shadow=true]|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{block~begin}{gotham}}
+% We could define the block beamer templates using the auxiliary macro |\gotham@block|....
+% Yet, following the precious advice from Sam Carter \url{https://github.com/jolars/moloch/issues/6}, we should keep beamer blocks.
+% But of course, one can go back to metropolis style using the commented lines here.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+% \defbeamertemplate*{block~begin}{gotham}{\gotham@block{}}
+% \defbeamertemplate*{block~alerted~begin}{gotham}{\gotham@block{~alerted}}
+% \defbeamertemplate*{block~example~begin}{gotham}{\gotham@block{~example}}
+% \defbeamertemplate*{block~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \defbeamertemplate*{block~alerted~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \defbeamertemplate*{block~example~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{itemize}}
+% Three level of itemize environment are defined by default with decreasing size: |circle|, |triangle| and |square|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{block~begin}{gotham}}
+% We define the block beamer templates using the auxiliary macro |\gotham@block|.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\defbeamertemplate*{itemize~item}{gotham}{%\textbullet}
+ \Large
+ \setbeamertemplate{itemize~item}[circle]
+ \usebeamertemplate{itemize~item}
+}
+\defbeamertemplate*{itemize~subitem}{gotham}{%$\blacktriangleright$
+ \scriptsize
+ \setbeamertemplate{itemize~subitem}[triangle]
+ \usebeamertemplate{itemize~subitem}
+}
+\defbeamertemplate*{itemize~subsubitem}{gotham}{%square or -
+ \Tiny
+ $\blacksquare$ % \textbf{-}
+ % \setbeamertemplate{itemize~subsubitem}[square]
+ % \usebeamertemplate{itemize~subsubitem} % not working because the size of the square is hardcoded.
+}
+
+%% TRY: enumitem package, enumitem and beamer are incompatible.
+% \setitemize{label=\usebeamerfont*{itemize~item}
+% \usebeamercolor[fg]{itemize~item}
+% \usebeamertemplate{itemize~item}}
+%% I tried to redefine everything to make them compatible, but it breaks the [alert] environment... So, I gave up.
+
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}}
+% Gotham defines float captions with a numbered style and footnotes with traditional style (color can be tuned with |\setbeamercolor{footnote}|).
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}}
+% Templates definitions for caption and footnote.
+% \TestMissing{explanation}
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\defbeamertemplate*{caption~label~separator}{gotham}{:~}
+\setbeamertemplate{caption}[numbered]
+\defbeamertemplate*{footnote}{gotham}{
+ \parindent~0em\noindent
+ \raggedright
+ \usebeamercolor{footnote}\hbox~to~0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default inner keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / inner } {
+ title~page,
+ watermark~template, watermark~default,
+ standout~template, standin~template,
+ partframe~template, partframe~default,
+ sectionframe~template, sectionframe~default,
+ subsectionframe~template, subsectionframe~default,
+ subsubsectionframe~template, subsubsectionframe~default,
+ tocframe~template,
+ parttocframe~template, parttocframe~default,
+ sectiontocframe~template, sectiontocframe~default,
+ subsectiontocframe~template, subsectiontocframe~default,
+ % subsubsectiontocframe~template, subsubsectiontocframe~default,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process inner keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / inner ]
+% \mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</inner>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*outer>
+\ProvidesExplPackage{beamerouterthemegotham}{2024/09/20}{1.1.0.b}{gotham outer theme}
+\RequirePackage{expl3}
+\RequirePackage{xfp}
+\RequirePackage{calc}
+\RequirePackage{tikz}
+% \end{macrocode}
+% \end{implementation}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% OUTER %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% \begin{implementation}
+% \begin{macro}{Compitibility mode for colors}
+% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme.
+% \begin{macrocode}
+\@ifundefined{\string\color@colorProgBar}{
+ \providebool{darkBG} \boolfalse{darkBG}
+ \providebool{transparentBG} \booltrue{transparentBG}
+ \colorlet{colorBG}{white}
+ \colorlet{colorFG}{black}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorStandout}{purple}
+ \colorlet{colorStandin}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \colorlet{colorFiligrane}{gray}
+ \colorlet{colorBackElement}{gray}
+ \colorlet{colorProgBar}{orange}
+ \colorlet{colorAlert}{red}
+ \colorlet{colorExample}{green}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+ }
+ \setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+ \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+ \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+ \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+}{
+ % else the colors are defined: this is fine.
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \begin{macrocode}
+\prop_if_exist:NTF \l__gotham_template_name_prop
+{}{
+ % if not defined than define it.
+ \prop_new:N \l__gotham_template_name_prop
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl}
+% tmp variables
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_tmpa_seq
+{}{
+ % sequence
+ \seq_new:N \l__gotham_tmpa_seq
+}
+\tl_if_exist:NTF \l__gotham_tmpa_tl
+{}{
+ % token list A
+ \tl_new:N \l__gotham_tmpa_tl
+}
+\tl_if_exist:NTF \l__gotham_tmpb_tl
+{}{
+ % token list B
+ \tl_new:N \l__gotham_tmpb_tl
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_set_prop_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function that store in a map the name a template use later.
+% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft.
+% The means for example that if a beamer template is defined using
+% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|,
+% then the function has to be call using
+% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|,
+% that will filled internally the map using the l3 command
+% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|.
+% If the template name given as input does not exist, an error is raised.
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{
+ % if it doesn't exist, then create it.
+ \cs_new_protected:Nn \__gotham_set_prop_template:nn
+ {
+ % Check if the first argument contains a /
+ \tl_if_in:nnTF { #1 } { / }
+ {
+ % Split the first around the /
+ \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 }
+ \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } }
+ \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } }
+ % Check if template exist
+ \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} {
+ % set the value in the map, so it can be called later.
+ \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2}
+ % \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerthemegotham}
+ {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist}
+ {helping~message}
+ }
+ }{% false -> error
+ \PackageError{beamerthemegotham}
+ {
+ When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~
+ As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}'
+ }{helping~message}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_add_beamerframe_key:n}
+% \begin{arguments}
+% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Function to add an option of a frame using an environment.
+% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'.
+% So, the environment 'optionA' must have been declared before.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{
+ % Define the sequence of frameoptions environments to close
+ \seq_new:N \l__gotham_frameoption_tmp_seq
+}
+
+\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{
+ % if it doesn't exist, then create it.
+
+ % Define the command to add frameoptions
+ \cs_new_protected:Nn \__gotham_add_beamerframe_key:n {
+ \define@key{beamerframe}{ #1 }[true]{
+ \begin{#1env}
+ \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} }
+ }
+ }
+
+ % At the end of frames close the opened environments.
+ \apptocmd{\beamer@reseteecodes}{
+ % Join elements in the queue without separator then output the result
+ \seq_use:Nn \l__gotham_frameoption_tmp_seq {}
+ % clear working queue
+ \seq_clear:N \l__gotham_frameoption_tmp_seq
+ }{}{}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{syntax}
+% \cs{__gotham_set_template:nn} \marg{element} \marg{option}
+% \end{syntax}
+% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function to set a beamertemplate with an option if it exists, otherwise an error is raised.
+% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_template:nn {}{
+ % If it doesn't exist, then create it.
+
+ % Define the command to set template if it exists.
+ \cs_new_protected:Nn \__gotham_set_template:nn
+ {
+ \cs_if_exist:cTF {beamer@@tmpop@#1@#2} {
+ \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerinnerthemegotham}
+ {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist}
+ {helping~message unknown setbeamertemplate option}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+
+%%% Sidebars %%%
+%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+% Length controling the horizontal offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from gotham.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+% lengths between borders (right and left) and the commands (|\gothamRightFiligrane| and |\gothamleftFiligrane|) used inside |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively).
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% sidebar lengths
+\newlength{\sidebarRightHOffset}
+\setlength{\sidebarRightHOffset}{-2.5ex}
+\newlength{\sidebarLeftHOffset}
+\setlength{\sidebarLeftHOffset}{+0.5ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane}
+% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default.
+% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\gothamRightFiligrane, \gothamLeftFiligrane}
+% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default.
+% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% Command to add filigrane/edging in sidebar
+\newcommand{\gothamRightFiligrane}{
+ % left empty intentionally
+ % \rotatebox{90}{gotham right filigrane pattern}
+
+}
+\newcommand{\gothamLeftFiligrane}{
+ % left empty intentionally
+ % \rotatebox{-90}{\hspace*{5em} gotham left filigrane pattern}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{sidebar~canvas~right}{}, \defbeamertemplate{sidebar~canvas~left}{}}
+% Definitions of |\defbeamertemplate{sidebar~canvas~right}| (respectively |\defbeamertemplate{sidebar~canvas~left}|) that are used by gotham by default.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\defbeamertemplate{sidebar~right}{default/beamer}{
+ \vfill
+ \llap{\insertlogo\hskip0.1cm}
+ \vskip2pt
+ \llap{\usebeamertemplate***{navigation~symbols}\hskip0.1cm}
+ \vskip2pt
+}
+\defbeamertemplate{sidebar~right}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~right}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~right}{default/gotham~filigrane}{
+ % pull to the left otherwise, the filigrane is outside of the frame.
+ \hspace*{\sidebarRightHOffset}
+ \gothamRightFiligrane
+}
+\defbeamertemplate{sidebar~left}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~left}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~left}{default/gotham~filigrane}{
+ \hspace*{\sidebarLeftHOffset}
+ \gothamLeftFiligrane
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~left/default} {gotham~filigrane}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~right/default} {gotham~filigrane}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~left/default} {empty}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~right/default} {beamer}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultEdging}
+% Boolean to triggering if edging should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultEdging}
+% Boolean variable to display the edging by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultEdging
+\bool_set_false:N \l_gotham_defaultEdging
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultEdging {
+ \setbeamertemplate{sidebar~canvas~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default}]
+ \setbeamertemplate{sidebar~canvas~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default}]
+ }{
+ % false
+ \setbeamertemplate{sidebar~canvas~left}[default/empty]
+ \setbeamertemplate{sidebar~canvas~right}[default/empty]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[edging]}
+% Add a frame option |edging| to display edging in sidebar canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[edging]}
+% Add a frame option |edging| to display an empty sidebar canvas canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% bool to trigger the add of edging in sidebar canvas
+\newenvironment{edgingenv}{
+ \setbeamertemplate{sidebar~canvas~left}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default}
+ ]
+ \setbeamertemplate{sidebar~canvas~right}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default}
+ ]
+}{}
+\__gotham_add_beamerframe_key:n {edging}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noedging]}
+% Add a frame option |noedging| to do not display noedging in sidebar canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noedging]}
+% Add a frame option |noedging| to do not display an empty sidebar canvas canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% bool to trigger the add of noedging in sidebar canvas
+\newenvironment{noedgingenv}{
+ \setbeamertemplate{sidebar~canvas~left}[default/empty]
+ \setbeamertemplate{sidebar~canvas~right}[default/empty]
+}{}
+\__gotham_add_beamerframe_key:n {noedging}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{edging default} = \oarg{\defopt{off} \textbar on }
+% \meta{sidebar canvas left template} = \oarg{\defopt{gotham} \textbar ...}
+% \meta{sidebar canvas right template} = \oarg{\defopt{gotham filigrane} \textbar empty \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |sidebar canvas right| (and |sidebar canvas left|) templates.
+% These templates are activated when giving the frame option |\begin{frame}[edging]|.
+% The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |noedging|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for sidebar canvas right and sidebar canvas left.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }
+{
+ % sidebar~canvas~right template
+ sidebar~canvas~right~template .usage:n = { general },
+ sidebar~canvas~right~template .default:n = { gotham~filigrane },
+ sidebar~canvas~right~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1} },
+}
+\keys_define:nn { gotham / outer }
+{
+ % sidebar~canvas~left template
+ sidebar~canvas~left~template .usage:n = { general },
+ sidebar~canvas~left~template .default:n = { gotham~filigrane },
+ sidebar~canvas~left~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~left/default}{#1} },
+}
+\keys_define:nn { gotham / outer }{
+ % edging default
+ edging~default .choice:,
+ edging~default .usage:n = { general },
+ edging~default .default:n = { false },
+
+ edging~default / true .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+ edging~default / on .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+ edging~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+
+ edging~default / false .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+ edging~default / off .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+ edging~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+
+ edging~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'edging~default',~so~being~ignored. }{helping~message: edging~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Navigation \& Logo %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{navigation~symbols}{empty} }
+% By default the navigation symbols are disable.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{navigation~symbols}{empty} }
+% Apply the empty navigation symbol template by default.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+\defbeamertemplate*{navigation~symbols}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{navigation~symbols}{default} }
+% Navigation symbols can be turned on using |\setbeamertemplate{navigation symbols}[default]|.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{navigation~symbols}{horizontal} }
+% From Beamer default theme.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+% \setbeamertemplate{navigation~symbols}[vertical]
+% \setbeamertemplate{navigation~symbols}[only~frame~symbol]
+% \setbeamertemplate{navigation~symbols}[default]% = horizontal
+% \defbeamertemplate{navigation~symbols}{horizontal}{
+% \usebeamercolor[fg]{navigation~symbols}
+% \insertslidenavigationsymbol
+% \insertframenavigationsymbol
+% \insertsubsectionnavigationsymbol
+% \insertsectionnavigationsymbol
+% \insertdocnavigationsymbol
+% \insertbackfindforwardnavigationsymbol
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{logo}{empty}}
+% Template used sometimes to have no logo on specific frames.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+\defbeamertemplate{logo}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nologo]}
+% Add a frame option |nologo|, if you do not want your logo to be displayed.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nologo]}
+% Add a frame option |nologo|, if you do not want your logo to be displayed.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+% bool to trigger the add of nologo action on frame.
+\newenvironment{nologoenv}{
+ \setbeamertemplate{logo}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nologo}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Headline \& Frametitle %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Headline %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{headline}{default/gotham}}
+% The headline template is empty by default by can be changed when using progress bar or the current section.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{headline}{default/gotham}{}
+\prop_put:Nnn \l__gotham_template_name_prop {headline/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{headline}{default/gotham~section}}
+% The headline template used to print the current section name and subection.
+% This template is used with |circlehead| progress bar
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{headline}{default/gotham~section}{
+ \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot}
+ \usebeamerfont{section~in~head/foot}\hspace*{3.5ex}
+ \usebeamertemplate{section~in~head/foot}
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Frametitle %%%
+
+% \begin{documentation}
+% \begin{variable}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% Dimensions controlling the top, bottom, left and right padding in the frametitle.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% Dimensions of lengths used in the frametitle: top, bottom, left and right padding.
+% All of them are equal to 2.2ex by default.
+% \begin{macrocode}
+\newlength{\gotham@frametitle@toppadding}
+\setlength{\gotham@frametitle@toppadding}{2.2ex}
+\newlength{\gotham@frametitle@bottompadding}
+\setlength{\gotham@frametitle@bottompadding}{2.2ex}
+\newlength{\gotham@frametitle@leftpadding}
+\setlength{\gotham@frametitle@leftpadding}{2.2ex}
+\newlength{\gotham@frametitle@rightpadding}
+\setlength{\gotham@frametitle@rightpadding}{2.2ex}
+% \gotham@strut from inner
+\providecommand{\gotham@strut}{
+ \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)}
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\gotham@frametitlestrut@start, \gotham@frametitlestrut@end}
+% Commands used to control the space over and under the title in frametitle.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gotham@frametitlestrut@start}{
+ \rule{0pt}{\gotham@frametitle@toppadding +
+ \totalheightof{
+ \ifcsdef{gotham@frametitleformat}{\gotham@frametitleformat{X}}{X}
+ }
+ }
+}
+\newcommand{\gotham@frametitlestrut@end}{
+ \rule[-\gotham@frametitle@bottompadding]{0pt}{\gotham@frametitle@bottompadding}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamInstituteLogoSquare[height]}
+% \begin{syntax}
+% \cs{height} \oarg{height of the logo use in inclugraphics (4ex by default)}
+% \end{syntax}
+% Command to set the image logo to include.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamInstituteLogoSquare[height] \defbeamertemplate{includeLogo}{default/gotham~square}}
+% \begin{syntax}
+% \cs{gothamInstituteLogoSquare} \oarg{height}
+% \end{syntax}
+% Command to include the desired logo and a template used to add it to the frametitle.
+% For example your can do |\renewcommand{\gothamInstituteLogoSquare}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|.
+% \TestFiles{gotham-test-046, gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ %\includegraphics[height=#1]{gotham-logo.pdf}
+}
+\defbeamertemplate{includeLogo}{default/gotham~square}{
+ \gothamInstituteLogoSquare
+}
+\prop_put:Nnn \l__gotham_template_name_prop {includeLogo/default} {gotham~square}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}}
+% Template used in frametitle when the option |progress bar= circlehead| is activated.
+% \UnitTested
+% \TestFiles{gotham-test-046b}
+% \begin{macrocode}
+\defbeamertemplate{includeLogo}{default/gotham~circle}{
+ \gothamProgressCircle
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}}
+% Template to make sure the logo will remain centered and to do not change the height of the line when included.
+% This template is used to include logo in frametitle.
+% \UnitTested
+% \TestFiles{gotham-test-046b}
+% \begin{macrocode}
+\defbeamertemplate{instituteLogo}{default/gotham}{
+ % \raisebox{lift}[height][depth]{text}
+ \raisebox{0pt}[0pt][0pt]{
+ \raisebox{.5\fontcharht\font`E-0.5\height}{
+ % \setbeamertemplate{}[]
+ \setbeamertemplate{includeLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {includeLogo/default}]
+ \usebeamertemplate{includeLogo}
+ }
+ }
+}
+\prop_put:Nnn \l__gotham_template_name_prop {instituteLogo/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamFrameSubtitleSep}
+% Command that can be redefined to control the separator between the title of the frame and its subtitle.
+% For example if a default Beamer style is desired, one can use |\renewcommand{\gothamFrameSubtitleSep}{\\[-.42em]}|.
+% By default it is a hyphen.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamFrameSubtitleSep}
+% Hyphen used as separator between title of the frame and its subtitle (within frametitle template).
+% \TestFiles{ gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gothamFrameSubtitleSep}{
+ % \\[-.42em] % if newline (as default Beamer)
+ % or if same line with a -- separator.
+ \ ---~
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFramesubtitleStrutend}
+% Variable vertical length used to adapte the bottom padding when a subtitle is given.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFramesubtitleStrutend}
+% Length used in |vspace| at the end of framesubtitle.
+% \begin{macrocode}
+\newlength{\gothamFramesubtitleStrutend}
+\setlength{\gothamFramesubtitleStrutend}{0pt}
+% \setlength{\gothamFramesubtitleStrutend}{-1.25ex} %% When \newcommand{\gothamFrameSubtitleSep}{\\[-.42em]}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle}{default/gotham~subsameline}}
+% Template for frametitle include subtitle on the same line and a logo a flushed left.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle}{default/gotham~subsameline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ \gotham@frametitlestrut@start
+ \insertframetitle
+ \ifx\insertframesubtitle\@empty
+ %% if subtitle to the frame is empty
+ \else
+ %% if not empty: add subtitle
+ {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\gothamFrameSubtitleSep \insertframesubtitle}
+ \vspace*{\gothamFramesubtitleStrutend}
+ \fi
+ \nolinebreak
+ %% Add logo
+ \hfill{
+ \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}]
+ \usebeamertemplate{instituteLogo}
+ }
+ \gotham@frametitlestrut@end
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frametitle/default} {gotham~subsameline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}}
+% Template for framesubtitle include subtitle on the same line and a logo a flushed left.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\dim_new:N \l__gotham_framesubtitle_subnewline_strutend_dim
+\defbeamertemplate{framesubtitle}{default/gotham~subnewline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ % put the subtitle in a raisebox to have no influence on the result.
+ \raisebox{0pt}[0pt][0pt]{
+ \raisebox{-0.3ex}{
+ { \usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}
+ }
+ }
+ % add 1ex to take into account the subtitle height.
+ \dim_set:Nn \l__gotham_framesubtitle_subnewline_strutend_dim {1.ex+\gothamFramesubtitleStrutend}
+ \vspace{\l__gotham_framesubtitle_subnewline_strutend_dim}
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {framesubtitle/default} {gotham~subnewline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}}
+% Template for frametitle and a logo a flushed left then the subtitle on a new line.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle}{default/gotham~subnewline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ \gotham@frametitlestrut@start
+ \insertframetitle
+ \nolinebreak
+ \hfill{
+ \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}]
+ \usebeamertemplate{instituteLogo}
+ }
+ \gotham@frametitlestrut@end
+ \end{beamercolorbox}
+ %% End of the frametitle box, start then use the subtitle template if needed.
+ \ifx\insertframesubtitle\@empty
+ %% if subtitle to the frame is not empty
+ \else
+ % reduce vertical space to have a 1pt overlap, so no white line appears with vectorial viewers.
+ \vspace*{-1pt}
+ % add the subtitle
+ \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}]
+ % \setbeamertemplate{framesubtitle}%[framesubtitle/default]
+ \usebeamertemplate{framesubtitle}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{frametitle template} = \oarg{\defopt{gotham subsameline} \textbar gotham subnewline \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frametitle| (and |framesubtitle|) templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frametitle and framesubtitle.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ frametitle~template .usage:n = { general },
+ frametitle~template .default:n = { gotham~subsameline },
+ frametitle~template .code:n = {
+ \__gotham_set_prop_template:nn{frametitle/default}{#1}
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ }
+}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ framesubtitle~template .usage:n = { general },
+ framesubtitle~template .default:n = { gotham~subnewline },
+ framesubtitle~template .code:n = {
+ \__gotham_set_prop_template:nn{framesubtitle/default}{#1}
+ \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Continuation %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/beamer}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% Beamer theme (by default) is using roman number with uppercase.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/beamer}{
+ \usebeamerfont{frametitle}
+ {
+ \MakeUppercase{\romannumeral \insertcontinuationcount}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/tot}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% This template is using arabic number slash over the total number of page for this frame.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/tot}{
+ \usebeamerfont{frametitle}
+ {
+ \textmd{%
+ [\insertcontinuationcount
+ \,/\,%
+ \the\numexpr\beamer@endpageofframe+1-\beamer@startpageofframe
+ ]%
+ }%
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/gotham}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% Gotham theme (by default) is using roman number with lowercase.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/gotham}{
+ \usebeamerfont{frametitle}
+ {
+ %\small
+ (\romannumeral \insertcontinuationcount)
+ }
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frametitle~continuation/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{frametitle continuation template} = \oarg{\defopt{gotham} \textbar tot \textbar beamer \textbar ... }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frametitle continuation| templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frametitle continuation.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ frametitle~continuation~template .usage:n = { general },
+ frametitle~continuation~template .default:n = { gotham },
+ frametitle~continuation~template .code:n = {
+ \__gotham_set_prop_template:nn{frametitle~continuation/default}{#1}
+ \setbeamertemplate{frametitle~continuation}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle~continuation/default}]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Footer \& Footline %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Footline %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{footline}{empty}}
+% Empty footline template used when the option nofootline is given.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{footline}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nofootline]}
+% Add a frame option |nofootline| to do not display nofootline.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nofootline]}
+% Add a frame option |nofootline| to do not display an empty footline.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger the add of nofootline in frame.
+\newenvironment{nofootlineenv}{
+ \setbeamertemplate{footline}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nofootline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFootlineOffset, \gothamFootlineHeight, \gothamFootlineDepth}
+% Lengths controlling the position of |footline|.
+% |\gothamFootlineOffset| is controlling space between to bottom of the text (or the footnote) and the footline.
+% |\gothamFootlineOffset| is by default -0.5ex, to have more space in the frame but if the footer is not really used, the space can be even more optimized using |\setlength{\gothamFootlineOffset}{-2.0ex}|.
+% Obviously, it can be back to "normal" setting it to 0pt.
+% |\gothamFootlineHeight| and |\gothamFootlineDepth| are controlling the heigth of the footline and the position of the text within.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFootlineOffset, \gothamFootlineHeight, \gothamFootlineDepth}
+% Lengths used in |footline| template.
+% \begin{macrocode}
+% Footline lengths
+% space between to bottom of the text (or the footnote) and the footline
+\newlength{\gothamFootlineOffset}
+\setlength{\gothamFootlineOffset}{-0.5ex}
+
+\newlength{\gothamFootlineHeight}
+\setlength{\gothamFootlineHeight}{1.5ex}
+\newlength{\gothamFootlineDepth}
+\setlength{\gothamFootlineDepth}{0.1ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{footline}{default/gotham}}
+% Template that is activate by default since this footline is relatively generic.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{footline}{default/gotham}{
+ % new line to adjust the footline position.
+ \vspace*{\gothamFootlineOffset}
+ \begin{beamercolorbox}[
+ wd=\textwidth,
+ sep=0pt,
+ leftskip=3ex,
+ rightskip=3ex,
+ ht={\gothamFootlineHeight},
+ dp={\gothamFootlineDepth},
+ ]{footline}
+ \usebeamerfont{page number in head/foot}
+ \ifbeamertemplateempty{frame~footer}{
+ %executed if empty
+ \hfill \ \gotham@strut
+ }{
+ %⟨executed otherwise⟩
+ \usebeamertemplate*{frame~footer}
+ }
+ \hspace{\gothamRightFooterPadding}
+ {\usebeamertemplate{page~number~in~head/foot}}~
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {footline/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Footer %%%
+
+% \begin{documentation}
+% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset}
+% Lengths controlling the position of |footer|.
+% |\gothamFooterHOffset| is controlling the horizontal space between the footer and the bottom of the page (or the progressbar).
+% |\gothamLeftFooterPadding| and |\gothamLeftFooterPadding| are controlling the space between the left and right side of the footer and the border of the page.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset}
+% Lengths used in |footer| template for positioning left right and bottom.
+% \begin{macrocode}
+\newlength{\gothamLeftFooterPadding}
+\setlength{\gothamLeftFooterPadding}{2.0ex}
+\newlength{\gothamRightFooterPadding}
+\setlength{\gothamRightFooterPadding}{3.5ex}
+\newlength{\gothamFooterHOffset}
+\setlength{\gothamFooterHOffset}{0pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{none}}
+% Footer template used when nothing is put as footer but it will create undesired results.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{none}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{empty}}
+% Footer template used when |nofooter| option is given and it presevers spacing to have nice results.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{empty}{
+ \hspace{\gothamLeftFooterPadding}
+ \hfill \
+ \gotham@strut
+ % decrease space between progress bar and footer
+ \vspace*{\gothamFooterHOffset}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nofooter]}
+% Add a frame option |nofooter| to do not display nofooter.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nofooter]}
+% Add a frame option |nofooter| to do not display an empty footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger the add of nofooter in frame.
+\newenvironment{nofooterenv}{
+ \setbeamertemplate{frame~footer}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nofooter}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultRotateFooter}
+% Boolean to triggering if rotated footer should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultRotateFooter}
+% Boolean variable to display the rotated footer by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultRotateFooter
+\bool_set_false:N \l_gotham_defaultRotateFooter
+\bool_new:N \l_gotham_RotateFooter
+\bool_set_false:N \l_gotham_RotateFooter
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultRotateFooter {
+ \bool_set_true:N \l_gotham_RotateFooter
+ }{% false
+ \bool_set_false:N \l_gotham_RotateFooter
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[rotateFooter]}
+% Add a frame option |rotateFooter| to display rotated footer.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[rotateFooter]}
+% Add a frame option |rotateFooter| to display a rotated footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger
+% Capture new options/keys for frames
+\define@key{beamerframe}{rotateFooter}[true]{
+ \bool_set_true:N \l_gotham_RotateFooter
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noRotateFooter]}
+% Add a frame option |noRotateFooter| to display a none-RotateFooter.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noRotateFooter]}
+% Add a frame option |noRotateFooter| to display a none-rotated footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% Capture new options/keys for frames
+\define@key{beamerframe}{noRotateFooter}[true]{
+ \bool_set_false:N \l_gotham_RotateFooter
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{rotateFooter default} = \oarg{\defopt{off} \textbar on }
+% \end{syntax}
+% The option |rotateFooter default=on| can enable the rotation of the footer on every frame; but it can all be turned on for specific frames when using the frame option |\begin{frame}[rotateFooter]|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for sidebar canvas right and sidebar canvas left.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % rotateFooter default
+ rotateFooter~default .choice:,
+ rotateFooter~default .usage:n = { general },
+ rotateFooter~default .default:n = { false },
+
+ rotateFooter~default / true .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / on .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+
+ rotateFooter~default / false .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / off .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+
+ rotateFooter~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'rotateFooter~default',~so~being~ignored. }{helping~message: rotateFooter~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+% Lengths controlling the position of |footer|.
+% |\gothamFootlineRuleLeftPadding| is controlling the horizontal space between the left border of the page and the left side of the rule.
+% |\gothamFootlineRuleHeight| is controlling the height of the rule use to delimit the footer.
+% |\gothamFootlineRuleLength| is controlling the length of the rule use to delimit the footer.
+% |\gothamHposLeftRotFooter| is controlling the horizontal positioning of the left part of the rotatated footer.
+% |\gothamHposRightRotFooter| is controlling the horizontal positioning of the right part of the rotatated footer.
+% |\gothamVposLeftRotFooter| is controlling the vertical positioning of the left part of the rotatated footer.
+% |\gothamVposRightRotFooter| is controlling the vertical positioning of the right part of the rotatated footer.
+%
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+% Lengths used in |footer| template.
+% \begin{macrocode}
+\newlength{\gothamFootlineRuleLeftPadding}
+\newlength{\gothamFootlineRuleHeight}
+\newlength{\gothamFootlineRuleLength}
+\setlength{\gothamFootlineRuleLeftPadding}{7mm}
+\setlength{\gothamFootlineRuleHeight}{0.0pt}
+% \setlength{\gothamFootlineRuleHeight}{0.5pt} % This is nice also but have a cleaner default, I turned it to 0.
+\setlength{\gothamFootlineRuleLength}{15mm}
+
+\newlength{\gothamHposLeftRotFooter}
+\newlength{\gothamHposRightRotFooter}
+\newlength{\gothamVposLeftRotFooter}
+% horizontal position (in picture env) for the rotated footer.
+\newlength{\gothamVposRightRotFooter}
+
+\setlength{\gothamHposLeftRotFooter}{-7pt}
+\setlength{\gothamHposRightRotFooter}{2pt}
+\setlength{\gothamVposLeftRotFooter}{15pt}
+\setlength{\gothamVposRightRotFooter}{15pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\hlenRightRotFooter, \hlenLeftRotFooter}
+% Temporary variables for the horizontal length of the rotated footer
+% \begin{macrocode}
+% Not used yet because I need to have a latex3 settowidth equivalent.
+% I will maybe take inspiration from https://tex.stackexchange.com/questions/492367/does-expl3-have-alternative-to-settowidth-and-settoheight
+% \dim_new:N \l__gotham_HLen_rightRotFooter_dim
+% \dim_new:N \l__gotham_HLen_leftRotFooter_dim
+\newlength{\hlenRightRotFooter}
+\newlength{\hlenLeftRotFooter}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{default/gotham}}
+% Template for frame footer used by gotham, allowing a rotated footer.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{default/gotham}{
+ % add a ruler but wihtout affecting the dimensions of the footline
+ \vbox to 0pt{
+ % Vertical stretch to ensure proper spacing
+ \vss
+ \hbox to 0pt{
+ \hspace*{\gothamFootlineRuleLeftPadding}
+ \usebeamercolor{frametitle}
+ \color{frametitle.bg}
+ \rule{\gothamFootlineRuleLength}{\gothamFootlineRuleHeight}
+ \vspace*{
+ \dimexpr \gothamFootlineHeight -0.25em\relax
+ }
+ % Horizontal stretch to ensure proper spacing
+ \hss
+ }
+ }
+ \hspace{\gothamLeftFooterPadding}
+ \settowidth{\hlenLeftRotFooter}{\hspace{-\gothamLeftFooterPadding}}
+ \addtolength{\hlenLeftRotFooter}{\gothamHposLeftRotFooter}
+ % \ifbool{rotateFooter}{
+ \bool_if:NTF \l_gotham_RotateFooter {
+ % rotateFooter true
+ \begin{picture}(0,0)(0,0)
+ \put(\hlenLeftRotFooter,\gothamVposLeftRotFooter){\rotatebox{90}{\insertshortdate}}
+ \end{picture}
+ }{
+ % rotateFooter false
+ \insertshortdate
+ }
+ \hfill \
+ \hfill \ \insertshorttitle
+ % make sure that the vertical space is constant: strut.
+ \gotham@strut
+ \hfill \
+ \hfill \
+ % \ifbool{rotateFooter}{
+ \bool_if:NTF \l_gotham_RotateFooter {
+ % rotateFooter true
+ \settowidth{\hlenRightRotFooter}{\hspace{\gothamRightFooterPadding}\usebeamertemplate{page~number~in~head/foot}}
+ \addtolength{\hlenRightRotFooter}{\gothamHposRightRotFooter}
+ \begin{picture}(0,0)(0,0)
+ \put(\hlenRightRotFooter,\gothamVposRightRotFooter){\rotatebox{90}{\insertshortauthor}}
+ \end{picture}
+ }{
+ % rotateFooter false
+ \insertshortauthor
+ %\hspace{-7em}
+ }
+ % decrease space between progress bar and footer
+ \vspace*{\gothamFooterHOffset}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frame~footer/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{footer template} = \oarg{\defopt{gotham} \textbar ... }
+% \end{syntax}
+% The option |footer template| can which template to use as a footer.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for footer template.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % footer template
+ footer~template .usage:n = { general },
+ footer~template .default:n = { gotham },
+ footer~template .code:n = {
+ \__gotham_set_prop_template:nn{frame~footer/default}{#1}
+ \setbeamertemplate{frame~footer}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {frame~footer/default}
+ ]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Numbering %%%
+%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{\inserttotalframenumber}
+% We defined the number of total frame, if not defined or equal to 0 because of the first compilation, we set it to avoid arthimetical errors
+% \UnitTested
+% \TestFiles{gotham-test-046}
+% \begin{macrocode}
+%
+\def\inserttotalframenumber{100}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{none}}
+% Template to do not numbering the current frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{page~number~in~head/foot}{none}{ }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift}
+% Variable lengths controling the vertical and horizontal positioning of the |circle| numbering template.
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift}
+% Length used in |raisebox| and |hspace| in |circle| frame numbering.
+% \begin{macrocode}
+\newlength{\gothamCircleNumberingVshift}
+\setlength{\gothamCircleNumberingVshift}{1.4mm}
+\newlength{\gothamCircleNumberingHshift}
+\setlength{\gothamCircleNumberingHshift}{2.6mm}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{circle}}
+% Template to add, in a circle, the number of the current frame over (slash) the total number of frames.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{page~number~in~head/foot}{circle}{
+ % horizontal space between the circle and the right part of the footer (email).
+ \hspace{+2em}
+ % \raisebox{lift}[height][depth]{text} => lift here = vertical space between the bottom of the page (or the progress bar) and the center of the circle
+ \raisebox{\gothamCircleNumberingVshift}[0pt][0pt]{
+ \begin{tikzpicture}[remember~picture, overlay]
+ \coordinate (circleCenter);
+
+ \usebeamercolor{frametitle}
+
+ \draw[fill, color=frametitle.bg] (circleCenter) circle (6mm);
+ \draw[fill, color=frametitle.fg] (circleCenter) circle (5mm);
+ \node[color=frametitle.bg] at (circleCenter)
+ {\small$^{\insertframenumber}\negmedspace/\negthinspace\sb{\inserttotalframenumber}$}
+ ;
+ \end{tikzpicture}
+ % horizontal space between the right border of the page and the center of the circle.
+ \hspace{\gothamCircleNumberingHshift}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{numbering} = \oarg{\defopt{none} \textbar framenumber \textbar totalframenumber \textbar appendixframenumber \textbar pagenumber \textbar totalpagenumber \textbar circle \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frame numbering.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % numbering
+ numbering .choice:,
+ numbering .usage:n = { general },
+ numbering .default:n = { none },
+
+ % \__gotham_set_template:nn{title~page}{#1}
+ numbering / none .code:n = { \setbeamertemplate{page~number~in~head/foot}[none] },
+ numbering / framenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[framenumber] },
+ numbering / totalframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalframenumber] },
+ numbering / appendixframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[appendixframenumber] },
+ numbering / pagenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[pagenumber] },
+ numbering / totalpagenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalpagenumber] },
+ numbering / circle .code:n = {\setbeamertemplate{page~number~in~head/foot}[circle] },
+
+ numbering / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% MiniFrames \& Progress bar %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% MiniFrames %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/beamer}}
+% Template control how the section appears by default when sections are add to the headline or footline.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/beamer}{
+ \insertsectionhead
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/beamer}{
+ \color{fg!50!bg}\usebeamertemplate{section~in~head/foot}
+}
+
+% \defbeamertemplate{includeLogo}{default/gotham~square}{
+\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot~shaded/default} {beamer}
+% \defbeamertemplate{includeLogo}{default/gotham~square}{
+\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot/default} {beamer}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}}
+% Template for section and subsection in headline.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}{
+ \insertsectionhead
+ \ifx\insertsubsection\empty\else
+ \ifdefempty{\subsecname}{\relax}{
+ \ \textbar\ \insertsubsectionhead
+ }
+ \fi
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/gotham~secSubsec}{
+ \insertsectionhead
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/empty}}
+% Empty template for section in headline, compensating the height of a line.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/empty}{
+ \vspace{3.875ex}
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/empty}{
+ \vspace{3.875ex}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\gotham@temp@heightFrametitle, \gotham@temp@PaperheightFrametitle}
+% Temporary length variables to compute the height of the frametitle and the height of the paper minus the frametitle.
+% \begin{macrocode}
+\newlength{\gotham@temp@heightFrametitle}
+\newlength{\gotham@temp@PaperheightFrametitle}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{mini~nav~progress~head/foot left right}{gotham~miniframes~theme}}
+% Template to insert the navigation bar (using miniframes) that can be added to headline (or footline) left sidebar or righ sidebar.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{mini~nav~progress~head/foot}{gotham~miniframes~theme}
+{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\paperwidth
+ \insertnavigation{\paperwidth}
+ % \dohead
+ \vspace{0.05cm}
+ \end{beamercolorbox}
+}
+\defbeamertemplate*{mini~nav~progress~left}{gotham~miniframes~theme}
+{
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight}
+
+ \vspace{-0.6\paperheight}
+ \rotatebox{90}{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\gotham@temp@PaperheightFrametitle
+ \insertnavigation{\gotham@temp@PaperheightFrametitle}
+ % \dohead
+ % \vspace{0.05cm}
+ \end{beamercolorbox}
+ }
+}
+\defbeamertemplate*{mini~nav~progress~right}{gotham~miniframes~theme}
+{
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight}
+
+ \vspace{\gotham@temp@heightFrametitle}
+ \hspace{-2.3em}
+ \rotatebox{-90}{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\gotham@temp@PaperheightFrametitle
+ \insertnavigation{\gotham@temp@PaperheightFrametitle}
+ % \dohead
+ % \vspace{0.05cm}
+ \end{beamercolorbox}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+%% Select the bullets shape
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~box}}
+% Template to add a new shape for miniframes |gotham box|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~box}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.14cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~box}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibox}}
+% Template to add a new shape for miniframes |gotham minibox|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~minibox}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.08cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibox}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibullet}}
+% Template to add a new shape for miniframes |gotham minibullet|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~minibullet}
+{
+ \beamer@xelatex@fixminiframes
+ \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm}
+ \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.09cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibullet}
+{
+ \beamer@xelatex@fixminiframes
+ \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm}
+ \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames shape} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames shape template.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ %% mini~frames~shape
+ % mini~frames~shape .choice:,
+ mini~frames~shape .usage:n = { general },
+ mini~frames~shape .default:n = { gotham~minibullet },
+ % \__gotham_set_template:nn{title~page}{#1}
+ mini~frames~shape .code:n = {
+ % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal
+ \setbeamertemplate{mini~frames}[#1]
+ },
+ % mini~frames~shape / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{miniframe~home}}
+% Template to adapt Beamer to the internal modification brought by Gotham: differientiation between slide to come and those done, idem for section, subsection...
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{miniframe~home}{beamer}{
+ % $\equiv$
+}
+\defbeamertemplate*{miniframe~current~slide}{beamer}{
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate*{miniframe~done~current~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate*{miniframe~todo~current~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate*{miniframe~done~other~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~other~subsection}
+}
+\defbeamertemplate*{miniframe~todo~other~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~other~subsection}
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate*{miniframe~part}{beamer}{}
+\defbeamertemplate*{miniframe~section~current}{beamer}{}
+\defbeamertemplate*{miniframe~section~done}{beamer}{}
+\defbeamertemplate*{miniframe~section~todo}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~current}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~todo}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~done}{beamer}{}
+% \defbeamertemplate*{miniframe~subsubsection}{beamer}{}
+\defbeamertemplate*{miniframe~section~done~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~section~done}
+}
+\defbeamertemplate*{miniframe~section~todo~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~section~todo}
+}
+\defbeamertemplate*{miniframe~subsection~done~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~done}
+}
+\defbeamertemplate*{miniframe~subsection~todo~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~todo}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~mini}}
+% Templates for miniframes using a Gotham style inspired by a miniaturization than the one from Beamer.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{miniframe~home}{gotham~mini}{
+ \resizebox{0.85\beamer@boxsize}{\beamer@boxsize}{$\equiv$}
+ % \scalebox{0.5}[0.95]{$\equiv$}
+}
+\defbeamertemplate{miniframe~current~slide}{gotham~mini}{
+ \usebeamercolor[fg]{alerted~text}
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~done~current~section}{gotham~mini}{
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~todo~current~section}{gotham~mini}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate{miniframe~done~other~section}{gotham~mini}[1][50]{
+ \color{fg!#1!bg}\usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~todo~other~section}{gotham~mini}[1][50]{
+ \color{fg!#1!bg}\usebeamertemplate{mini~frame~in~other~subsection}
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate{miniframe~part}{gotham~mini}[1][]{
+% p
+% }
+\defbeamertemplate{miniframe~section~current}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{blue}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~section~done}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{green}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~section~todo}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{red}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~subsection~current}{gotham~mini}{
+ \usebeamercolor[fg]{alerted~text}
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$}
+}
+\defbeamertemplate{miniframe~subsection~todo}{gotham~mini}{
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\lozenge$}
+}
+\defbeamertemplate{miniframe~subsection~done}{gotham~mini}{
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$}
+}
+% \defbeamertemplate{miniframe~subsubsection}{gotham~mini}{
+% d
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~nano}}
+% Template for Gotham mini frame style using even less space.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{miniframe~home}{gotham~nano}{
+ % \resizebox{\beamer@boxsize}{!}{$\equiv$}
+ \scalebox{0.5}[0.95]{$\equiv$}
+}
+\defbeamertemplate{miniframe~current~slide}{gotham~nano}{
+ o
+}
+\defbeamertemplate{miniframe~done~current~section}{gotham~nano}{
+ x
+}
+\defbeamertemplate{miniframe~todo~current~section}{gotham~nano}{
+ $\cdot$
+}
+\defbeamertemplate{miniframe~done~other~section}{gotham~nano}{
+ x
+}
+\defbeamertemplate{miniframe~todo~other~section}{gotham~nano}{
+ $\cdot$
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate{miniframe~part}{gotham~nano}[1][]{
+% p
+% }
+\defbeamertemplate{miniframe~section~current}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~section~done}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~section~todo}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~subsection~current}{gotham~nano}{
+ \usebeamercolor[fg]{alerted~text}$\diamond$
+}
+\defbeamertemplate{miniframe~subsection~todo}{gotham~nano}{
+ $\diamond$
+}
+\defbeamertemplate{miniframe~subsection~done}{gotham~nano}{
+ $\diamond$
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplateparent{mini~frames~bundle}}
+% Define a parent template to set the 6 templates at once.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplateparent{mini~frames~bundle}
+{ miniframe~home, miniframe~current~slide,
+ miniframe~done~current~section, miniframe~todo~current~section, miniframe~done~other~section, miniframe~todo~other~section,
+ miniframe~section~current, miniframe~section~done, miniframe~section~todo,
+ miniframe~subsection~current, miniframe~subsection~done, miniframe~subsection~todo,
+}{}
+%\setbeamertemplate{mini~frames~bundle}[gotham~mini]%[beamer]%[gotham~nano]%
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames bundle} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |mini frame| templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames bundle template.
+% \UnitTested
+% \TestFiles{gotham-test-050}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ %% mini~frames~bundle
+ % mini~frames~bundle .choice:,
+ mini~frames~bundle .usage:n = { general },
+ mini~frames~bundle .default:n = { gotham~mini },
+ % \__gotham_set_template:nn{title~page}{#1}
+ mini~frames~bundle .code:n = {
+ % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal
+ \setbeamertemplate{mini~frames~bundle}[#1]
+ },
+ % mini~frames~bundle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% MiniFrames Navigation %%%
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames compress} = \oarg{\defopt{on} \textbar off }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |compress| option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames compress template.
+% \UnitTested
+% \TestFiles{gotham-test-050}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~compress default
+ mini~frames~compress .choice:,
+ mini~frames~compress .usage:n = { general },
+ mini~frames~compress .default:n = { true },
+
+ mini~frames~compress / true .code:n = { \beamer@compresstrue },
+ mini~frames~compress / on .code:n = { \beamer@compresstrue },
+ mini~frames~compress / enable .code:n = { \beamer@compresstrue },
+
+ mini~frames~compress / false .code:n = { \beamer@compressfalse },
+ mini~frames~compress / off .code:n = { \beamer@compressfalse },
+ mini~frames~compress / disable .code:n = { \beamer@compressfalse },
+
+ mini~frames~compress / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~compress',~so~being~ignored. }{helping~message: mini~frames~compress / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_minif_tmpa_tl, \gotham@temp@MiniframeSubsecDim, \gotham@temp@lastSec}
+% Temporary variables used for the store dimension of the miniframe subsection, check if the last section treated and the pass the value of the section to the section template.
+% \begin{macrocode}
+\newlength{\gotham@temp@MiniframeSubsecDim}
+\newlength{\gotham@temp@MiniframeSecDim}
+\def\gotham@temp@lastSec{-1}
+\tl_new:N \l__gotham_minif_tmpa_tl
+\tl_new:N \l__gotham_minif_tmpb_tl
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\renewcommand{\slideentry}}
+% Redefinition of the slideentry command from Beamer in order to add home page symbol, section symbol, subsection symbol to come and done.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% definition from Beamerbasenavigation.sty
+% \def\slideentry#1#2#3#4#5#6{%
+\renewcommand{\slideentry}[6]{%
+ %section number, subsection number, slide number, first/last frame, page number, part number
+ \ifnum#6=\c@part\ifnum#3>0%\ifnum#6=\c@part\ifnum#1>0\ifnum#3>0 MODIF
+ \ifbeamer@compress%
+ \advance\beamer@xpos by1\relax%
+ \else%
+ \ifnum#2=0%
+ \beamer@ypos@offset=1\relax%
+ \fi%
+ \beamer@xpos=#3\relax%
+ \beamer@ypos=#2\relax%
+ \advance\beamer@ypos by \beamer@ypos@offset\relax%
+ \fi%
+ %% Add section number and subsection symbol to miniframes.
+ %% MODIF below, inspired from https://tex.stackexchange.com/questions/722523
+ \ifnum#3=1%\c@subsectionslide=#3 % if =1, so it has been reset => new section or subsection
+ \ifnum#1>0\ifnum#2<2% => there no subsection in this section.
+ \ifnum\gotham@temp@lastSec=#1%
+ % this means, that we already went through: there no subsec, then the first subsec has been defined.
+ \else%
+ \tl_set:Nn \l__gotham_minif_tmpa_tl {#1}
+ \settowidth{\gotham@temp@MiniframeSecDim}{\usebeamertemplate{miniframe~section~current}}%
+ % \addtolength{\gotham@temp@MiniframeSecDim}{1.5pt}
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by -\gotham@temp@MiniframeSecDim% NEW
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim%
+ \global\beamer@section@min@dim\beamer@tempdim%
+ \hbox{\beamer@link(#4){%
+ % \usebeamertemplate{miniframe~section}%
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~section~current}
+ \else%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~section~todo}
+ \else%
+ \usebeamertemplate{miniframe~section~done}
+ \fi%
+ \fi%
+ \else% \ifnum\c@section=#1%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~section~todo~in~other~section}
+ \else%
+ \usebeamertemplate{miniframe~section~done~in~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ }}%
+ }%
+ }%
+ \def\gotham@temp@lastSec{#1}%
+ \fi%
+ \fi\fi%
+ \ifnum#2>0%
+ % Check if the miniframe subsection template is empty
+ \ifbeamertemplateempty{miniframe~subsection~current}{
+ % do nothing
+ }{
+ \tl_set:Nn \l__gotham_minif_tmpb_tl {#2}
+ \settowidth{\gotham@temp@MiniframeSubsecDim}{}%\usebeamertemplate{miniframe~subsection~current}}%
+ \addtolength{\gotham@temp@MiniframeSubsecDim}{+1.\beamer@boxsize}%
+ \advance\beamer@xpos by1\relax%
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by -\gotham@temp@MiniframeSubsecDim% NEW
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim%
+ \global\beamer@section@min@dim\beamer@tempdim%
+ \hbox{\beamer@link(#4){%
+ % \usebeamertemplate{miniframe~subsection~current}%
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current subsection
+ \ifnum\c@subsection=#2%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~subsection~current}
+ \else%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~subsection~todo}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done}
+ \fi%
+ \fi%
+ \else% \ifnum\c@subsection=#2%
+ \ifnum\c@subsection<#2
+ \usebeamertemplate{miniframe~subsection~todo}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done}
+ \fi%
+ \fi% \ifnum\c@subsection=#2%
+ \else% \ifnum\c@section=#1%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~subsection~todo~in~other~section}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done~in~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ }}% \hbox{\beamer@link
+ }% raisebox
+ }% hbox
+ }% end if template empty
+ \fi% \ifnum#2>0
+ \else
+ \ifbeamer@compress%
+ % \advance\beamer@xpos by1\relax%
+ \else%
+ \ifbeamertemplateempty{miniframe~subsection~current}{
+ % NEW
+ % do nothing
+ }{
+ \advance\beamer@xpos by 1\relax%
+ }
+ \fi%
+ \fi% \ifnum#3=1
+
+ %% end of modif to add section number and subsection symbol.
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim
+ \global\beamer@section@min@dim\beamer@tempdim
+ \hbox{\beamer@link(#4){%
+ \usebeamerfont{mini~frame}%
+ % \ifnum\c@section=#1%
+ % \ifnum\c@subsection=#2%
+ % \usebeamercolor[fg]{mini~frame}%
+ % \ifnum\c@subsectionslide=#3%
+ % \usebeamertemplate{mini~frame}%\beamer@minislidehilight%
+ % \else%
+ % \usebeamertemplate{mini~frame~in~current~subsection}%\beamer@minisliderowhilight%
+ % \fi%
+ % \else%
+ % \usebeamercolor{mini~frame}%
+ % %\color{fg!50!bg}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide%
+ % \fi%
+ % \else%
+ % \usebeamercolor{mini~frame}%
+ % %\color{fg!50!bg}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide%
+ % \fi%
+ %%
+ %% CHANGE FROM HERE: I rewrote this part.
+ % If first page (ie. 1/1)
+ \def\gotham@temp@i{1/1}
+ \def\gotham@temp@ii{#4}
+ \ifx\gotham@temp@i\gotham@temp@ii
+ % If first page (ie. title page) then apply a special mini frame
+ \usebeamertemplate{miniframe~home}
+ \else
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current subsection
+ \ifnum\c@subsection=#2%
+ \usebeamercolor[fg]{mini~frame}%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~current~slide}
+ % \usebeamertemplate{mini~frame}% \beamer@minislidehilight%
+ \else%
+ % \usebeamertemplate{mini~frame~in~current~subsection}% \beamer@minisliderowhilight%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~todo~current~section}
+ \else%
+ \usebeamertemplate{miniframe~done~current~section}
+ \fi%
+ \fi%
+ \else% \ifnum\c@subsection=#2%
+ \usebeamercolor{mini~frame}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide%
+ \ifnum\c@subsection<#2
+ \usebeamertemplate{miniframe~todo~other~section}
+ \else%
+ \usebeamertemplate{miniframe~done~other~section}
+ \fi%
+ \fi% \ifnum\c@subsection=#2%
+ \else% \ifnum\c@section=#1%
+ \usebeamercolor{mini~frame}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~todo~other~section}
+ \else%
+ \usebeamertemplate{miniframe~done~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ \fi% \ifx\gotham@temp@i\gotham@temp@ii
+ }}}\hskip-10cm plus 1fil%
+ }\fi% \ifnum#1>0\ifnum#3>0%
+ \else% \ifnum#6=\c@part
+ \fakeslideentry{#1}{#2}{#3}{#4}{#5}{#6}%
+ \fi\ignorespaces%
+ % \def\gotham@temp@lastSec{-1}%
+}%
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{gothamZerosectionframes}
+% Boolean variable to flag if they are frame in a zeroth section.
+% This variable helps to adapt the spreading of |mini frames nav| bar.
+% This variable is automatically set if the spread is set correctly at the beginning of the presention.
+% If the spreading or the mini frame nav is disable at the zeroth section then reactivated latter, it might create unwanted spreading.
+% In such situation the variable has to be set manually to correct the spreading.
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{gothamZerosectionframes}
+% Boolean variable to flag if they are frame in a zeroth section.
+% \begin{macrocode}
+\providebool{gothamZerosectionframes}
+\boolfalse{gothamZerosectionframes}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\insertnavigation,\sectionentry}
+% Patches for |\insertnavigation| and |\sectionentry| to be able to adapt with spreading values.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\providecommand{\gothamInsertNavlength}{
+ % spreading by default
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % spreading
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ \hskip-1.875ex~plus-1fill
+ }%
+}
+\providecommand{\gothamPatchInsertNav}{
+ % Don't patch for now
+ \box\beamer@sectionbox\hfil\hskip.3cm
+}
+\providecommand{\gothamPatchSectionentry}{
+ % Don't patch for now
+ \hskip1.875ex~plus~1fill
+}
+\providecommand{\gothamPatchSectionbox}{
+ % Don't patch for now
+ \ht\beamer@sectionbox=1.875ex
+ \dp\beamer@sectionbox=0.75ex
+}
+\ExplSyntaxOff
+ % To let the 0-th section appear.
+ \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{%
+ \ifnum\value{section}=0%
+ \ifnum\value{framenumber}>0%
+ \hskip-0ex%
+ \global\booltrue{gothamZerosectionframes}%
+ \fi\fi%
+ \gothamInsertNavlength%
+ }{}{}
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\gothamPatchSectionentry}{}{}
+ %% Centering the bullet bar
+ \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{\gothamPatchInsertNav}{}{}
+ % Patch size of sectionbox
+ \patchcmd{\insertnavigation}{\ht\beamer@sectionbox=1.875ex%
+ \dp\beamer@sectionbox=0.75ex%
+ }{
+ \gothamPatchSectionbox
+ }{}{}
+ \patchcmd{\sectionentry}{\ht\beamer@sectionbox=1.875ex%
+ \dp\beamer@sectionbox=0.75ex%
+ }{
+ \gothamPatchSectionbox
+ }{}{}
+\ExplSyntaxOn
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav spreading} = \oarg{\defopt{centering} \textbar spreading \textbar left \textbar right }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control spreading of the mini frames navigation.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation spreading.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~spreading default
+ mini~frames~nav~spreading .choice:,
+ mini~frames~nav~spreading .usage:n = { general },
+ mini~frames~nav~spreading .default:n = { spreading },
+
+ mini~frames~nav~spreading / spreading .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % spreading
+ \hskip-0.5ex
+ }{
+ %false
+ \hskip-1.875ex~plus-1fill
+ }%
+ }
+ % No other patch needed, but renewcommand if it has been modified previously.
+ \renewcommand{\gothamPatchInsertNav}{
+ % Don't patch for now
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ \renewcommand{\gothamPatchSectionentry}{
+ % Don't patch for now
+ \hskip1.875ex~plus~1fill
+ }
+ },
+ mini~frames~nav~spreading / centering .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % centering +patch sectionenty +patch insertnav @sectionbox
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ % \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{\hfill}{}{}
+ \hfill
+ }%
+ }
+ % Centering the bullet bar
+ % \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{ \box\beamer@sectionbox\hfill\hskip.3cm}{}{}
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfill\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / left .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % flush left +patch sectionenty
+ \hskip-0.5ex
+ }{
+ %false
+ % no patch
+ \hskip-1.875ex plus-1fill
+ }%
+ }
+ % Centering the bullet bar : NO
+ % no patch
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / right .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % flush right +patch sectionenty
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ % no patch
+ \hskip-1.875ex plus-1fill
+ }%
+ }
+ % Centering the bullet bar : NO
+ % no patch
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~spreading',~so~being~ignored. }{helping~message: mini~frames~nav~spreading / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav sectioning} = \oarg{\defopt{on} \textbar off }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control navigation sectioning option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation sectioning template.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~sectioning default
+ mini~frames~nav~sectioning .choice:,
+ mini~frames~nav~sectioning .usage:n = { general },
+ mini~frames~nav~sectioning .default:n = { secsubsection },
+
+ mini~frames~nav~sectioning / none .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0pt
+ \dp\beamer@sectionbox=0pt
+ }
+ },
+ mini~frames~nav~sectioning / section .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default} %from Beamer
+ \__gotham_set_template:nn{section~in~head/foot}{default} %from Beamer
+ },
+ mini~frames~nav~sectioning / secsubsection .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec}
+ \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec}
+ },
+
+ mini~frames~nav~sectioning / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~sectioning',~so~being~ignored. }{helping~message: mini~frames~nav~sectioning / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav position} = \oarg{\defopt{none} \textbar head \textbar foot \textbar left \textbar right}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control navigation position option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation position template.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\tl_new:N \l__gotham_out_tmp_mfnposi_tl
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~position default
+ mini~frames~nav~position .choice:,
+ mini~frames~nav~position .usage:n = { general },
+ mini~frames~nav~position .default:n = { none },
+
+ mini~frames~nav~position / none .code:n = {
+ %
+ % reset if it has modified by another progressbar strategy
+ % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1}
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {none}
+
+ % head
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % frametitle
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ % foot
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ % left
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ % right
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+ },
+ mini~frames~nav~position / head .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {head}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ \usebeamertemplate*{mini~nav~progress~head/foot}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / foot .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {foot}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ \addtobeamertemplate{footline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ \usebeamertemplate*{mini~nav~progress~head/foot}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / left .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {left}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~left}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ \usebeamertemplate*{mini~nav~progress~left}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / right .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {right}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~right}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ \usebeamertemplate*{mini~nav~progress~right}
+ }{}
+ }
+ }
+ },
+
+ mini~frames~nav~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~position',~so~being~ignored. }{helping~message: mini~frames~nav~position / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Progress bar %%%
+
+% \begin{documentation}
+% \begin{variable}{\gothamProgressHeadFootLineheight}
+% Variable vertical length defining the height of the progressbar.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamProgressHeadFootLineheight}
+% Lengths used in tikz rectangle.
+% \begin{macrocode}
+\newlength{\gotham@progressinheadfoot}
+\newlength{\gothamProgressHeadFootLineheight}
+\setlength{\gothamProgressHeadFootLineheight}{1.2ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool}
+% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool}
+% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression and if the miniframes navigation should be printed inside the progress bar.
+% \begin{macrocode}
+\bool_new:N \l_gotham_ProgCircleMoving_bool
+\bool_set_true:N \l_gotham_ProgCircleMoving_bool
+
+\bool_new:N \l_gotham_progbar_advancement_tlbr_bool
+\bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+
+\bool_new:N \l_gotham_pmfn_bool
+\bool_set_false:N \l_gotham_pmfn_bool
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_rectangle_box_progressbar:n}
+% \begin{arguments}
+% \item |width| of the progress bar.
+% \end{arguments}
+% Command to draw a rectangular progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% #1: 'linewidth'
+\cs_new_protected:Npn \__gotham_rectangle_box_progressbar:n #1
+{
+ %
+ \setlength{\gotham@progressinheadfoot}{
+ #1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+
+ %
+ \begin{beamercolorbox}[wd=#1]{progress~bar~in~head/foot}
+ \begin{tikzpicture}
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % gray rectangle in the background.
+ \fill[color=progress~bar~in~head/foot.bg]
+ (0pt, 0pt) rectangle ++ (#1, \gothamProgressHeadFootLineheight)
+ ;
+
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ % from left to right
+ % orange rectangle progressing
+ \fill[color=progress~bar~in~head/foot.fg]
+ (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight)
+ ;
+ }{
+ % from right to left
+ % orange rectangle progressing
+ \fill[color=progress~bar~in~head/foot.fg]
+ (#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight)
+ ;
+ }
+
+ \bool_if:NTF \l_gotham_pmfn_bool {
+ % progress miniframes navigation is on.
+ \node at (#1/2, \gothamProgressHeadFootLineheight/2)
+ [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red,
+ {
+ \usebeamercolor[fg]{normal~text}
+ % \fontsize{3.5pt}{0pt}\selectfont
+ \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{
+ %\dohead
+ \hfuzz=#1
+ \insertnavigation{#1}
+ }
+ }
+ ;
+ }{
+ % false
+ % nothing to do since progress miniframes navigation is off.
+ }
+ \end{tikzpicture}
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}}
+% template displaying the progress bar in head, frametitle or footline.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047, gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}{
+ \nointerlineskip
+ \__gotham_rectangle_box_progressbar:n {\paperwidth}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rectangle}}
+% template displaying the progress bar in left or right.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~left}{gotham~rectangle}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \vspace{0.12275\paperheight}
+ \rotatebox{90}{
+ \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle}
+ }
+}
+\defbeamertemplate{progress~bar~in~right}{gotham~rectangle}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \hspace{-\gothamProgressHeadFootLineheight}
+ \vspace{\gotham@temp@heightFrametitle-27.75pt}
+ \rotatebox{-90}{
+ \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_rounded_box_progressbar:nnnn}
+% \begin{arguments}
+% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \item |ratio progressbar/extra command|
+% \item |colorbox name|
+% \item |extra command|
+% \end{arguments}
+% Command to draw a rounded box progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar.
+% The fourth argument is a command to control what to display at the right side of the rounded box.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% #1: 'linewidth'
+% #2: ratio of the progress bar
+% #3: colorbox name
+% #4: command for percent of progress
+\cs_new_protected:Npn \__gotham_rounded_box_progressbar:nnnn #1#2#3#4
+{
+ \setlength{\gotham@progressinheadfoot}{
+ #2#1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+
+ % 1.035\gothamProgressHeadFootLineheight is to include the border inside the box.
+ \begin{beamercolorbox}[wd=#1, ht=1.035\gothamProgressHeadFootLineheight]{#3}
+ \;\hfill
+ %\tikzexternaldisable%
+ \begin{tikzpicture}[rounded~corners=0.5\gothamProgressHeadFootLineheight, very~thin]
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % gray rectangle in the background.
+ \shade[top~color=progress~bar~in~head/foot.bg!65, bottom~color=progress~bar~in~head/foot.bg!65, middle~color=progress~bar~in~head/foot.bg]
+ (0pt, 0pt) rectangle ++ (#2#1, \gothamProgressHeadFootLineheight)
+ ;
+
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ % from left to right
+ % orange rectangle progressing
+ \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg]
+ (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight)
+ ;
+ }{
+ % from right to left
+ % orange rectangle progressing
+ \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg]
+ (#2#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight)
+ ;
+ }
+
+ \bool_if:NTF \l_gotham_pmfn_bool {
+ % progress miniframes navigation is on.
+ \node at (#2#1/2, \gothamProgressHeadFootLineheight/2)
+ [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red,
+ {
+ \usebeamercolor[fg]{normal~text}
+ % \fontsize{3.5pt}{0pt}\selectfont
+ \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{
+ \hfuzz=#2#1
+ %\dohead
+ \insertnavigation{#2#1}
+ }
+ }
+ ;
+ }{
+ % false
+ % nothing to do since progress miniframes navigation is off.
+ }
+ \end{tikzpicture}
+ #4
+ \hfill \;
+ \end{beamercolorbox}
+}
+% \cs_generate_variant:Nn \__gotham_rounded_box_progressbar:nnnn { Nnnn }
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}}
+% template displaying the progress bar in head, frametitle or footline.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}{
+ \nointerlineskip
+ \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.93}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \usebeamercolor[fg]{normal~text}
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ % \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.53}{progress~bar~in~head/foot}{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rounded~box}}
+% template displaying the progress bar in left or right sidebar.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~left}{gotham~rounded~box}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \vspace{0.12275\paperheight}
+ % \hspace{\gothamProgressHeadFootLineheight}
+ \rotatebox{90}{
+ \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ }
+}
+\defbeamertemplate{progress~bar~in~right}{gotham~rounded~box}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \hspace{-\gothamProgressHeadFootLineheight-0.2pt}
+ \vspace{\gotham@temp@heightFrametitle-27.75pt}
+ \rotatebox{-90}{
+ \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+% Lengths controlling the aspect of |progress circle|.
+% |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter).
+% |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number.
+% |\gothamProgressCircBorderWidth| is controlling width of the progress circle.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+% Lengths used in tikz rectangle.
+% \begin{macrocode}
+%the height of the header is 1.8 times the lineheight of the frame title
+\newlength{\gothamProgressCircHeight}
+\setlength{\gothamProgressCircHeight}{1.8\baselineskip}
+%\setlength{\gothamProgressCircHeight}{2\baselineskip}
+\newlength{\gothamCounterCircleRadius}
+\setlength{\gothamCounterCircleRadius}{1.12ex}
+% width of the border
+\newlength{\gothamProgressCircBorderWidth}
+\setlength{\gothamProgressCircBorderWidth}{1.65mm}
+
+%% Induced length used internally, but can still be tuned manually by inspired people.
+% radius of the logo
+\newlength{\gothamProgressCircLogoRadius}
+\setlength{\gothamProgressCircLogoRadius}{1.2\gothamProgressCircHeight/2}
+% inner radius of border of the logo frame
+\newlength{\gothamProgressCircLogoInnerRadius}
+\setlength{\gothamProgressCircLogoInnerRadius}{1.1\gothamProgressCircLogoRadius}
+% radius of the outer border of the logo frame
+\newlength{\gothamProgressCircLogoOuterRadius}
+\setlength{\gothamProgressCircLogoOuterRadius}{\gothamProgressCircLogoInnerRadius+\gothamProgressCircBorderWidth}
+% radius of the counters
+\newlength{\gothamCounterRadius}
+\setlength{\gothamCounterRadius}{\gothamProgressCircLogoInnerRadius/2+\gothamProgressCircLogoOuterRadius/2}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l_gotham_ratio_progresscircle_fp, \l_gotham_angle_counterradius_fp}
+% angle ratio of the progress in degree and angle of the counter circle intercepted by the half of the border.
+% \begin{macrocode}
+% \fp_new:N \l_gotham_ratio_progress_fp
+\fp_new:N \l_gotham_ratio_progresscircle_fp
+% the angle token by the counter radius
+\fp_new:N \l_gotham_angle_counterradius_fp
+% requires xfp for asind
+\fp_set:Nn \l_gotham_angle_counterradius_fp {
+ \fpeval{ 2* asind (\gothamCounterCircleRadius / (2*\gothamCounterRadius)) }
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamInstituteLogoCircle[#1]}
+% \begin{syntax}
+% \cs{gothamInstituteLogoCircle} \oarg{height (4ex)}
+% \end{syntax}
+% Command that have to be redefined in order to include your circular logo.
+% For example your can do |\renewcommand{\gothamInstituteLogoCircle}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamInstituteLogoCircle[#1]}
+% \begin{arguments}
+% \item |height| of the picture
+% \end{arguments}
+% Command to be redefined by users.
+% \TestFiles{ gotham-test-046b}
+% \begin{macrocode}
+\newcommand{\gothamInstituteLogoCircle}[1][4ex]{
+ \includegraphics[height=#1]{gotham-logo.pdf}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\gothamProgressCircle}
+% Internal command plotting the circle progress and that is used internal in the instituteLogo template within the frametitle template.
+% \TestFiles{ gotham-test-046b}
+% \begin{macrocode}
+\newcommand{\gothamProgressCircle}{
+ % \tikzexternaldisable
+ \begin{tikzpicture}[remember~picture,overlay]
+ % Load colors
+ \usebeamercolor{standin}
+ \usebeamercolor{frametitle}
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % Define center
+ \coordinate (localCenter);
+ % draw the outer circle
+ \fill[fill=progress~bar~in~head/foot.bg] (localCenter) circle (\gothamProgressCircLogoOuterRadius);
+ % draw the inner circle
+ \fill[fill=frametitle.bg] (localCenter) circle (\gothamProgressCircLogoInnerRadius);
+ \node at (localCenter) {\gothamInstituteLogoCircle[1.9\gothamProgressCircLogoRadius]};
+
+ %% draw progress circle/bar
+ \bool_if:NTF \l_gotham_ProgCircleMoving_bool {
+ % the circular counter with a moving counter
+
+ %% compute the angle for the progress circle
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360)*\insertframenumber/\inserttotalframenumber }
+ }{
+ %\else% clockwise rotation
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360)*(\insertframenumber/\inserttotalframenumber)}
+ }
+ %\fi
+
+ % draw the arc progress bar
+ \draw[
+ color=progress~bar~in~head/foot.fg,
+ line~width=0.6*\gothamProgressCircBorderWidth
+ ]
+ (localCenter)
+ ++
+ ([
+ xshift=\gothamCounterRadius
+ ]localCenter)
+ arc[
+ radius=\gothamCounterRadius,
+ start~angle=0,
+ end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp}
+ ]
+ ;
+
+ % draw a point at the beginning of the progress circle
+ \fill[fill=frametitle.bg]
+ ([
+ xshift={\gothamCounterRadius}
+ ]localCenter.center)
+ circle (0.3*\gothamProgressCircBorderWidth)
+ ;
+ % place the current frame number
+ \node[
+ % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt}
+ ]
+ (pagenumframe) at (
+ [rotate=
+ {\fp_eval:n {\l_gotham_ratio_progresscircle_fp}},
+ xshift=\gothamCounterRadius
+ ]localCenter) {}
+ ;
+ \filldraw[
+ draw=progress~bar~in~head/foot.bg,
+ fill=standin.bg,
+ thick,
+ ]
+ (pagenumframe) circle (\gothamCounterCircleRadius)
+ ;
+ % place the frame number in another node to avoid unwanted rescaling.
+ \node[at=(pagenumframe.center), anchor=center] {
+ {\usebeamercolor[fg]{standin}\tiny\insertframenumber}
+ };
+ }{
+ %\else gothamProgCircleMoving
+ % the circular counter with a fixed counter
+
+ %% compute the angle for the progress circle
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360-2\l_gotham_angle_counterradius_fp)*\insertframenumber/\inserttotalframenumber -\l_gotham_angle_counterradius_fp}
+ }{
+ %\else% clockwise rotation
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360-2\l_gotham_angle_counterradius_fp)*(\insertframenumber/\inserttotalframenumber) +\l_gotham_angle_counterradius_fp}
+ }
+ %\fi
+
+ % draw the arc progress bar
+ \draw[
+ color=progress~bar~in~head/foot.fg,
+ line~width=0.6*\gothamProgressCircBorderWidth
+ ]
+ (localCenter)
+ ++
+ ([rotate={\fp_eval:n {\l_gotham_angle_counterradius_fp}},
+ xshift=\gothamCounterRadius
+ ]localCenter)
+ arc[
+ radius=\gothamCounterRadius,
+ start~angle={\fp_eval:n \l_gotham_angle_counterradius_fp},
+ end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp}
+ ]
+ ;
+
+ % draw a point at the end of the progress circle
+ \fill[fill=frametitle.bg]
+ ([
+ rotate={\fp_eval:n {\l_gotham_ratio_progresscircle_fp}}, xshift={\gothamCounterRadius}
+ ]localCenter.center)
+ circle (0.3*\gothamProgressCircBorderWidth)
+ ;
+ % place the total number of frames
+ \node[] (leftick)
+ at ([xshift={\gothamProgressCircLogoOuterRadius+1.25ex}]localCenter) {}
+ ;
+ %% draw a line ticks
+ \draw[
+ color=frametitle.fg,
+ fill=frametitle.fg,
+ ]
+ ([xshift=\gothamProgressCircLogoOuterRadius,yshift={-0.05ex}] localCenter)
+ rectangle ([yshift={0.05ex}] leftick)
+ ;
+ \node[ at=(leftick), anchor=west, inner~sep = 1pt,]
+ {\usebeamercolor[fg]{frametitle}\tiny\inserttotalframenumber}
+ ;
+ % place the current frame number
+ \node[
+ % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt}
+ ]
+ (pagenumframe) at ([xshift=\gothamCounterRadius]localCenter) {}
+ ;
+ \filldraw[
+ draw=progress~bar~in~head/foot.bg,
+ fill=standin.bg,
+ thick,
+ ]
+ (pagenumframe) circle (\gothamCounterCircleRadius)
+ ;
+ % place the frame number in another node to avoid unwanted rescaling.
+ \node[at=(pagenumframe.center), anchor=center] {
+ {\usebeamercolor[fg]{standin}\tiny\insertframenumber}
+ };
+ }
+ %\fi gothamProgCircleMoving
+ \end{tikzpicture}
+ \bool_if:NTF \l_gotham_ProgCircleMoving_bool {
+ % nothing
+ \hspace{\gothamProgressCircLogoOuterRadius+0.75ex}
+ }{
+ % else
+ % extra space to compensate the total number of frame
+ \hspace{\gothamProgressCircLogoOuterRadius+3ex}
+ }
+ % \tikzexternalenable
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar~position} = \oarg{\defopt{foot} \textbar none \textbar head \textbar circlehead \textbar ... }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar| templates that be placed in the head (over the frametitle), frametitle (under it), below the footer or the circlehead (around the logo in the frametitle).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% token list to remember what is the current state
+\tl_new:N \l__gotham_out_tmp_pbar_tl
+\keys_define:nn { gotham / outer }{
+ % progressbar~position default
+ progressbar~position .choice:,
+ progressbar~position .usage:n = { general },
+ progressbar~position .default:n = { none },
+
+ progressbar~position / none .code:n = {
+ % reset if it has modified by another progressbar~position strategy
+ % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1}
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {none}
+
+ % head
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % frametitle
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ % foot
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ % left
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ % right
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ % logo
+ \__gotham_set_prop_template:nn{includeLogo/default}{gotham~square}
+ % section in head
+ \setbeamertemplate{section~in~head/foot~shaded}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot~shaded/default}]
+ \setbeamertemplate{section~in~head/foot}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot/default}]
+ },
+ progressbar~position / head .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {head}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / frametitle .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {frametitle}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{frametitle}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / foot .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {footline}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{footline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / circlehead .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {circlehead}
+
+ %
+ %%%\prop_put:Nnn \l__gotham_template_name_SAVE_prop {includeLogo/default} {gotham~square} % not needed after all.
+ \__gotham_set_prop_template:nn{includeLogo/default}{gotham~circle}
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec}
+ \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec}
+ % \__gotham_set_template:nn{headline}{default/gotham~section}
+ % \setbeamertemplate{headline}[default/gotham~section]
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: it is already occupied, so let's emulate the gotham section
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} {
+ \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot}
+ \usebeamerfont{section~in~head/foot}\hspace*{3.5ex}
+ \usebeamertemplate{section~in~head/foot}
+ \end{beamercolorbox}
+ }{}
+ }
+ }{
+ % \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ \__gotham_set_template:nn{headline}{default/gotham~section}
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+ }
+ },
+ progressbar~position / left .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {left}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~left}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ \usebeamertemplate*{progress~bar~in~left}
+ }{}
+ }
+ }
+ },
+ progressbar~position / right .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {right}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~right}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ \usebeamertemplate*{progress~bar~in~right}
+ }{}
+ }
+ }
+ },
+
+ progressbar~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~position',~so~being~ignored. }{helping~message: progressbar~position / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar style} = \oarg{\defopt{rectangle} \textbar rounded box \textbar moving circle \textbar fixed circle }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar style| templates that .
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~style default
+ progressbar~style .choice:,
+ progressbar~style .usage:n = { general },
+ progressbar~style .default:n = { rectangle },
+
+ progressbar~style / rectangle .code:n = {
+ %
+ % \defbeamertemplate*{progress~bar~in~head/foot}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~left}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~right}{gotham~rectangle}
+ },
+
+ progressbar~style / rounded~box .code:n = {
+ %
+ \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rounded~box}
+ \__gotham_set_template:nn{progress~bar~in~left}{gotham~rounded~box}
+ \__gotham_set_template:nn{progress~bar~in~right}{gotham~rounded~box}
+ },
+
+ progressbar~style / moving~circle .code:n = {
+ %
+ \bool_set_true:N \l_gotham_ProgCircleMoving_bool
+ },
+
+ progressbar~style / fixed~circle .code:n = {
+ %
+ \bool_set_false:N \l_gotham_ProgCircleMoving_bool
+ },
+
+ progressbar~style / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~style',~so~being~ignored. }{helping~message: progressbar~style / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar~advancement} = \oarg{\defopt{tlbr} \textbar brlt }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar| advandement: tlbr) from top left corner to the bottom and right or brlt) from the bottom right to the left and top.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~advancement default
+ progressbar~advancement .choice:,
+ progressbar~advancement .usage:n = { general },
+ progressbar~advancement .default:n = { tlbr },
+
+ progressbar~advancement / tlbr .code:n = {
+ %
+ \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+ progressbar~advancement / TLBR .code:n = {
+ %
+ \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+
+ progressbar~advancement / brlt .code:n = {
+ %
+ \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+ progressbar~advancement / BRLT .code:n = {
+ %
+ \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+
+ progressbar~advancement / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~advancement',~so~being~ignored. }{helping~message: progressbar~advancement / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar mfn} = \oarg{\defopt{off} \textbar on }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control if the progress bar includes a miniframe navigation.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~mfn default
+ progressbar~mfn .choice:,
+ progressbar~mfn .usage:n = { general },
+ progressbar~mfn .default:n = { off },
+
+ progressbar~mfn / true .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+ progressbar~mfn / on .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+ progressbar~mfn / enable .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+
+ progressbar~mfn / false .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+ progressbar~mfn / off .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+ progressbar~mfn / disable .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+
+ progressbar~mfn / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~mfn',~so~being~ignored. }{helping~message: progressbar~mfn / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{Default outer keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / outer } {
+ sidebar~canvas~right~template, sidebar~canvas~left~template,
+ edging~default,
+ frametitle~template, framesubtitle~template, frametitle~continuation~template,
+ numbering,
+ rotateFooter~default,
+ footer~template,
+ mini~frames~shape, mini~frames~bundle,
+ mini~frames~compress,
+ mini~frames~nav~spreading,
+ mini~frames~nav~sectioning,
+ mini~frames~nav~position,
+ progressbar~position, progressbar~style, progressbar~advancement, progressbar~mfn,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process outer keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / outer ]
+% \mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+%
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</outer>
+% \end{macrocode}
+% \end{implementation}
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*package>
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+% \RequirePackage{ifxetex}
+% \RequirePackage{ifluatex}
+% \RequirePackage{etoolbox}
+% \RequirePackage{xcolor}
+% \RequirePackage{tikz}
+% \RequirePackage{calc} % I think I can remove it with a bit of work
+% \RequirePackage{xfp}
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% PACKAGE %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+\providecommand\ifratio[3]{%
+ \ifnum#1=169%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \else%
+ \ifnum#1=43%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \fi%
+ \fi%
+}
+\providecommand\ifscreenratio[2]{%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #1%
+ \fi%
+ \fi%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{implementation}
+%
+% Most options are passed off to the component sub-packages.
+% \begin{implementation}
+% \begin{macrocode}
+
+%
+\usefonttheme{gotham}
+\usecolortheme{gotham}
+\useinnertheme{gotham}
+\useoutertheme{gotham}
+%
+%
+%
+
+%%%%% Setting keys %%%%%
+
+% set new counter for how many time the lookup is used
+\int_new:N \l_gotham_lookup_cnt
+\int_set:Nn \l_gotham_lookup_cnt {0}
+
+\seq_const_from_clist:Nn \c__gotham_load_submodules_seq { font, color, inner, outer }
+
+\cs_new_protected:Npn \__gotham_lookup_keymodules:nn #1#2
+{
+ \int_incr:N \l_gotham_lookup_cnt
+ % \int_show:n \l_gotham_lookup_cnt
+
+ % if lookup counter is lower than the number of submodules-1 [before it was +1, not completely clear to me], do nothing (let the other submodules do their job), otherwise lookup in the submodules
+ \if_int_compare:w \l_gotham_lookup_cnt < 2
+ %true : do nothing
+ \else:
+ % \int_show:n \l_gotham_lookup_cnt
+ \seq_map_inline:Nn \c__gotham_load_submodules_seq
+ {
+ \keys_if_exist:nnT { gotham / ##1 } {#1}
+ {
+ % missing feature in l3keys, we have no better way to detect an omitted value, so we have to guess that all empty values are in fact omitted values.
+ \tl_if_empty:nTF {#2}
+ { \keys_set:nn { gotham / ##1 } { #1 } }
+ { \keys_set:nn { gotham / ##1 } { #1 = {#2} } }
+ \prg_break:
+ }
+ }
+ \msg_error:nnn { gotham } { unknown-key } {#1}
+ \prg_break_point:
+ \fi:
+}
+\cs_generate_variant:Nn \__gotham_lookup_keymodules:nn { Vn }
+\msg_new:nnn { gotham } { unknown-key } { Unknown~ key~ #1~ encountered. }
+
+% Property list for all groups.
+\prop_new:N \l__gotham_all_all_user_keys_prop
+\prop_const_from_keyval:Nn \c__gotham_all_pkg_keys_prop {}
+
+\keys_define:nn { gotham / all / all }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+
+% Set default keys/options from keyval
+% \__gotham_set_default_from_keyval: variant, keyval, group command
+\cs_new_protected:Npn \__gotham_set_default_from_keyval:nnn #1 #2 #3
+{ %%
+ % Check if keyvalues have been given.
+ \tl_if_novalue:nTF {#2}
+ { % no user keys given so _user_keys_prop is taking pkg prop
+ \prop_set_eq:cc { l__gotham_#3_#1_user_keys_prop } { c__gotham_#3_pkg_keys_prop }
+ }{ % user key given and put it in prop
+ \prop_put_from_keyval:cn { l__gotham_#3_#1_user_keys_prop } {#2}
+ }% end if
+ %
+ % xx
+ \__gotham_set_default_auxi:cnn { l__gotham_#3_#1_user_keys_prop } {#1} {#3}
+ %
+ % xx
+ \keys_set:nn { gotham/#3/#1 } { default }
+}
+%
+% prop-key-val, variant, group command
+\cs_new_protected:Npn \__gotham_set_default_auxi:Nnn #1 #2 #3
+{
+ \__gotham_set_default_auxii:fnn { \prop_to_keyval:N #1 } {#2} {#3}
+}
+\cs_generate_variant:Nn \__gotham_set_default_auxi:Nnn { c }
+%
+% key-val, variant, group command
+\cs_new_protected:Npn \__gotham_set_default_auxii:nnn #1 #2 #3
+{
+ \keys_define:nn { gotham/#3/#2 } { default .meta:n = {#1} }
+}
+\cs_generate_variant:Nn \__gotham_set_default_auxii:nnn { f }
+%
+%
+% (re)set keys/options by default for a group of commands.
+% \gothamset m:options:#1
+\DeclareDocumentCommand{\gothamset}{ m }
+{
+ \__gotham_set_default_from_keyval:nnn { all } {#1} { all }
+ \keys_set:nn { gotham/all/all } { default }
+}
+
+\def\gotham@plaintitleformat#1{#1}
+\newcommand{\mreducelistspacing}{\vspace{-\topsep}}
+
+\ProcessOptionsBeamer
+\keys_define:nn { gotham / font }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / color }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / inner }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / outer }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+
+\ProcessKeyOptions[ gotham / font ]
+\ProcessKeyOptions[ gotham / color ]
+\ProcessKeyOptions[ gotham / inner ]
+\ProcessKeyOptions[ gotham / outer ]
+
+%
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</package>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+\endinput
+%
+% \Finale
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
new file mode 100644
index 0000000000..6bccc22ba9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
@@ -0,0 +1,75 @@
+%%
+%% Copyright (C) 2008 by Romain NOËL <romainoel@free.fr>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2006/05/20 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+
+Copyright (C) 2023-20** by Romain NOËL <romainoel@free.fr>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Romain NOËL.
+Contributors: Romain NOËL (2023-20**)
+
+\endpreamble
+
+\postamble
+
+Adapted from classic "A model .dtx file" by Joseph Wright
+https://www.texdev.net/2009/10/06/a-model-dtx-file/
+\endpostamble
+
+\usedir{tex/latex/gotham}
+\generate{
+ \file{beamerthemegotham.sty}{\from{gotham.dtx}{package}}%
+ \file{beamerfontthemegotham.sty}{\from{gotham.dtx}{font}}%
+ \file{beamercolorthemegotham.sty}{\from{gotham.dtx}{color}}%
+ \file{beamerinnerthemegotham.sty}{\from{gotham.dtx}{inner}}%
+ \file{beamerouterthemegotham.sty}{\from{gotham.dtx}{outer}}%
+ \nopreamble\nopostamble
+ \file{gotham-user-cmds.tex}{\from{gotham.dtx}{userCmd}}%
+ \file{gotham-dev-impl.tex}{\from{gotham.dtx}{devImpl}}%
+}
+
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* beamercolorthemegotham.sty *}
+\Msg{* beamerfontthemegotham.sty *}
+\Msg{* beamerinnerthemegotham.sty *}
+\Msg{* beamerouterthemegotham.sty *}
+\Msg{* beamerthemegotham.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file gotham.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
new file mode 100644
index 0000000000..83effd4537
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
new file mode 100644
index 0000000000..dd7a5e78fa
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
@@ -0,0 +1,379 @@
+\documentclass[aspectratio=169]{beamer}
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+
+ \usepackage{natbib}
+\begin{filecontents*}[overwrite]{pres.bib}
+
+@article{Knuth92,
+ author = "D.E. Knuth",
+ title = "Two notes on notation",
+ journal = "Amer. Math. Monthly",
+ volume = "99",
+ year = "1992",
+ pages = "403--422",
+}
+
+@book{ConcreteMath,
+ author = "R.L. Graham and D.E. Knuth and O. Patashnik",
+ title = "Concrete mathematics",
+ publisher = "Addison-Wesley",
+ address = "Reading, MA",
+ year = "1989"
+}
+
+@unpublished{Simpson,
+ author = "H. Simpson",
+ title = "Proof of the {R}iemann {H}ypothesis",
+ note = "preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}",
+ year = "2003"
+}
+
+@incollection{Er01,
+ author = "P. Erd{\H o}s",
+ title = "A selection of problems and results in combinatorics",
+ booktitle = "Recent trends in combinatorics (Matrahaza, 1995)",
+ publisher = "Cambridge Univ. Press",
+ address = "Cambridge",
+ pages = "1--6",
+ year = "1995"
+}
+
+@article{greenwade93,
+ author = "George D. Greenwade",
+ title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
+ year = "1993",
+ journal = "TUGBoat",
+ volume = "14",
+ number = "3",
+ pages = "342--351"
+}
+\end{filecontents*}
+
+\begin{document}
+
+\section{Introduction: Beamer}
+
+ % FRAME
+ \begin{frame}[fragile]{Title page}
+ The Title page is printed using the command:
+ \begin{verbatim} \maketitle\end{verbatim}
+
+ The element printed on this page are defined in the preamble by
+ \begin{verbatim}
+ \title[]{Gotham}
+ \subtitle{A Modern, versatile and extendable theme for Beamer}
+ \date[]{\today}
+ \author[]{Romain NOËL}
+ \institute{Center for modern beamer themes}
+ \titlegraphic{\hfill\includegraphics[height=1.5cm, draft]{Title_logo.pdf}}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Plain Slide}
+ The usual page is printed and defined using the command:
+ \begin{verbatim}
+ \begin{frame}{Title on top of the frame}
+ contenu...
+ \end{frame }
+ \end{verbatim}
+
+ Note that the logo printed on this page are defined in the preamble by
+ \begin{verbatim}
+ \logo{\includegraphics[height=1.5cm, draft]{logo.pdf}}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections}
+ Sections group slides of the same topic
+
+ \begin{verbatim} \section{Elements}\end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Typography}
+ \begin{verbatim}
+ The theme provides sensible defaults to
+ \emph{emphasize} text, \alert{accent} parts
+ or show \textbf{bold} results.
+ \end{verbatim}
+
+ \begin{center}becomes\end{center}
+
+ The theme provides sensible defaults to \emph{emphasize} text,
+ \alert{accent} parts or show \textbf{bold} results.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Font feature test}
+ \begin{itemize}
+ \item Regular
+ \item \textit{Italic}
+ \item \textsc{Small Caps}
+ \item \textbf{Bold}
+ \item \textbf{\textit{Bold Italic}}
+ \item \textbf{\textsc{Bold Small Caps}}
+ \item \texttt{Monospace}
+ \item \texttt{\textit{Monospace Italic}}
+ \item \texttt{\textbf{Monospace Bold}}
+ \item \texttt{\textbf{\textit{Monospace Bold Italic}}}
+ \end{itemize}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Lists}
+ \begin{columns}[T,onlytextwidth]
+ \column{0.33\textwidth}
+ Items
+ \begin{itemize}
+ \item Milk \item Eggs \item Potatoes
+ \begin{itemize}
+ \item Milk \item Eggs \item Potatoes
+ \begin{itemize}
+ \item Milk
+ \end{itemize}
+ \end{itemize}
+ \end{itemize}
+
+ \column{0.33\textwidth}
+ Enumerations
+ \begin{enumerate}
+ \item First, \item Second and \item Last.
+ \end{enumerate}
+
+ \column{0.33\textwidth}
+ Descriptions
+ \begin{description}
+ \item[PowerPoint] Meeh. \item[Beamer] Yeeeha.
+ \end{description}
+ \end{columns}
+
+ \vspace{2em}
+ Then, something below the columns, that be long enough to recover all the line-width.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Animation}
+ \begin{itemize}[<+- | alert@+>]
+ \item \alert<4>{This is\only<4>{ really} important}
+ \item Now this
+ \item And now this
+ \end{itemize}
+ \end{frame}
+
+ % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf
+ \begin{frame}[fragile]{Commands controlling overlay}
+ Beamer defines a bunch of commands intended to control overlays:
+ \verb$\only<...>{text}$ Throws away \verb$text$ content on slides not in \verb$<...>$
+ \verb$\onslide<...>{text}$ Same, but when hidden \verb$text$ still takes space.
+ \verb$\visible<...>{text}$ Same.
+ \verb$\uncover<...>{text}$ Same, but also handle transparency.
+ \verb$\invisible<...>{text}$ Opposite of \verb$\visible$
+ \verb$\alt<...>{text1}{text2}$ Alternates between \verb$text1$ and \verb$text2$ for\verb$ <...>$.
+ \verb$\temporal<...>{before}{inside}{after}$ Alternate between three texts depending on slide index before, inside or after the range of \verb$<...>$.
+ For the commands \verb$\only$ and \verb$\alt$ the \verb$<...>$ can also be after the text.
+ Then \verb$\only$ can be used to make commands \verb$<...>$-aware (§9.3) like in:
+ \verb$\newcommand{\myblue}{\only{\color{blue}}}$
+ \verb$\myblue<2> This text is blue only on slide 2.$
+ Finally, \verb$\only$ and \verb$\onslide$ without text argument work as toogles.
+ Much more options, described in §9.4 to 9.6
+ \end{frame}
+
+ % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf
+ \begin{frame}[fragile]{Action specifications}
+ Inside \verb$<...>$ it is possible to add some action specifications
+ Action are specified after the slide range \& a | and followed by @ and the target slide or range.
+ For example one can write:
+ \verb$\item<3-|alert@4> Shown from slide 3 on, alerted on slide 4.$
+ which set the \verb$\alert$ for item 3 only in slide 4.
+ Actions can be defined for \verb$\item$, \verb$\action$, \verb$\begin{actionenv}\verb$
+ and the block environments and the possible actions are by default,
+ alert, uncover, only, visible, invisible, but other can be
+ defined by the user. See manual § 9.6.3
+ Simple example using uncover with specified transparency:
+ \begin{verbatim}
+ \setbeamercovered{transparent=30}
+ \begin{itemize}[<+-|uncover@+>]
+ \item first
+ \item second
+ \item third
+ \end{itemize}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Figures}
+ \begin{figure}
+ \centering
+ \newcounter{density}
+ \setcounter{density}{20}
+ \begin{tikzpicture}
+ \def\couleur{alerted text.fg}
+ \path[coordinate] (0,0) coordinate(A)
+ ++( 90:5cm) coordinate(B)
+ ++(0:5cm) coordinate(C)
+ ++(-90:5cm) coordinate(D);
+ \draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- cycle;
+ \foreach \x in {1,...,40}{%
+ \pgfmathsetcounter{density}{\thedensity+20}
+ \setcounter{density}{\thedensity}
+ \path[coordinate] coordinate(X) at (A){};
+ \path[coordinate] (A) -- (B) coordinate[pos=.10](A)
+ -- (C) coordinate[pos=.10](B)
+ -- (D) coordinate[pos=.10](C)
+ -- (X) coordinate[pos=.10](D);
+ \draw[fill=\couleur!\thedensity] (A)--(B)--(C)-- (D) -- cycle;
+ }
+ \end{tikzpicture}
+ \caption{Rotated square with Tikz package from
+ \href{http://www.texample.net/tikz/examples/rotated-polygons/}{texample.net}.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Tables}
+ \begin{table}
+ \centering
+ \caption{Largest cities in the world (source: Wikipedia)}
+ \begin{tabular}{@{} lr @{}}
+ \toprule
+ City & Population\\
+ \midrule
+ Mexico City & 20,116,842\\
+ Shanghai & 19,210,000\\
+ Peking & 15,796,450\\
+ Istanbul & 14,160,467\\
+ \bottomrule
+ \end{tabular}
+ \end{table}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Blocks}
+ Three different block environments are pre-defined.
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Math}
+ \begin{equation}
+ e = \lim_{n\to \infty} \left(1 + \frac{1}{n}\right)^n
+ \end{equation}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Line plots}
+ \begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[
+ width=0.9\textwidth,
+ height=6cm,
+ ]
+
+ \addplot {sin(deg(x))};
+ \addplot+[samples=100] {sin(deg(2*x))};
+
+ \end{axis}
+ \end{tikzpicture}
+ \caption{A nice sinus plot with Tikz.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Bar charts}
+ \begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[
+ ybar,
+ xlabel={Foo},
+ ylabel={Bar},
+ width=0.9\textwidth,
+ height=6cm,
+ nodes near coords,
+ nodes near coords align={vertical},
+ ]
+
+ \addplot plot coordinates {(1, 20) (2, 25) (3, 22.4) (4, 12.4)};
+ \addplot plot coordinates {(1, 18) (2, 24) (3, 23.5) (4, 13.2)};
+ \addplot plot coordinates {(1, 10) (2, 19) (3, 25) (4, 15.2)};
+
+ \legend{lorem, ipsum, dolor}
+
+ \end{axis}
+ \end{tikzpicture}
+ \caption{A nice bar chart with Tikz.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Quotes}
+ \begin{quote}
+ Veni, Vidi, Vici
+ \end{quote}
+ from Julius Caesar.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{References}
+ Some references to showcase \verb|[allowframebreaks]| on next slide \cite{Knuth92,ConcreteMath,Simpson,Er01,greenwade93}
+ \end{frame}
+
+ % % FRAME
+ % \begin{frame}{References}
+ % \bibliography{pres}
+ % \bibliographystyle{abbrv}
+ % \end{frame}
+
+ % FRAME
+ \begin{frame}[allowframebreaks]{References}
+ \begin{thebibliography}{1}
+
+ \bibitem{Er01}
+ P.~Erd{\H o}s.
+ \newblock A selection of problems and results in combinatorics.
+ \newblock In {\em Recent trends in combinatorics (Matrahaza, 1995)}, pages 1--6. Cambridge Univ. Press, Cambridge, 1995.
+
+ \bibitem{ConcreteMath}
+ R.~Graham, D.~Knuth, and O.~Patashnik.
+ \newblock {\em Concrete mathematics}.
+ \newblock Addison-Wesley, Reading, MA, 1989.
+
+ \bibitem{greenwade93}
+ G.~D. Greenwade.
+ \newblock The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN}).
+ \newblock {\em TUGBoat}, 14(3):342--351, 1993.
+
+ \bibitem{Knuth92}
+ D.~Knuth.
+ \newblock Two notes on notation.
+ \newblock {\em Amer. Math. Monthly}, 99:403--422, 1992.
+
+ \bibitem{Simpson}
+ H.~Simpson.
+ \newblock Proof of the {R}iemann {H}ypothesis.
+ \newblock preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}, 2003.
+
+ \end{thebibliography}
+ \end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
new file mode 100644
index 0000000000..ec4c8a37de
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
@@ -0,0 +1,37 @@
+\documentclass[aspectratio=169]{beamer}
+% \usetheme{gotham}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Conclusion}
+
+ \begin{frame}{Summary}
+ Get the source of this theme and the demo presentation from
+
+ \begin{center}\url{https://gitlab.com/RomainNOEL/beamertheme-gotham}\end{center}
+
+ The theme \emph{itself} is licensed under a \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons Attribution-ShareAlike 4.0 International License}.
+ \begin{center} \ccbysa \end{center}
+ \end{frame}
+
+ \begin{standoutenv}
+ \begin{frame}[fragile]
+ The final slide using the standout style with command:
+ \begin{verbatim}
+ \begin{frame}[standout]{Thank You !}
+ Questions ?
+ \end{frame }
+ \end{verbatim}
+
+ \begin{center}
+ Et voilà !
+ \end{center}
+ \end{frame}
+ \end{standoutenv}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
new file mode 100644
index 0000000000..eb9b4bef0d
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
@@ -0,0 +1,398 @@
+\documentclass[aspectratio=169]{beamer}
+\usetheme{gotham}
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Gotham Theme}
+
+ % FRAME
+ \begin{frame}[fragile]{Gotham}
+
+ The \themename{} theme is a Beamer theme with a minimal-ish visual style largely inspired by the \href{https://github.com/matze/mtheme}{\textsc{Metropolis} Beamer Theme} by Matthias Vogelgesang (and some other Beamer themes).
+
+ Yet, \themename{} is highly extendable and versatile.
+ \bigskip
+
+ First, enable the theme by classically loading it:
+
+ \begin{verbatim}
+ \documentclass{beamer}
+ \usetheme{gotham}
+ \end{verbatim}
+
+ Then, the all customization can be performed at any moment in the presentation using:
+
+ \begin{verbatim}
+ \gothamset{<option>=...}
+ \end{verbatim}
+ \end{frame}
+
+
+\subsection{Fonts}
+
+ % FRAME
+ \begin{frame}[fragile]{Gotham title formats}
+ Note, that you have to have Mozilla's \emph{Fira Sans} font and XeTeX or LuaTeX installed to enjoy this wonderful typography.
+
+ \begin{columns}[T,onlytextwidth]
+ \column{0.49\textwidth}
+ \themename{} supports 4 different title formats \verb|\gothamset{format frametitle=}|
+ \begin{itemize}
+ \item regular
+ \item \MakeLowercase{Lower}
+ \item \MakeUppercase{Upper}
+ \item \MakeTitlecase{Title Case}
+ \end{itemize}
+ \column{0.49\textwidth}
+ \themename{} supports 3 different title shape \verb|\gothamset{shape frametitle=...}|:
+ \begin{itemize}
+ \item regular
+ \item \textsc{Small caps}
+ \item \textit{italic}
+ \end{itemize}
+ \end{columns}
+
+ \vspace{2em}
+ They can either be set at once for every title type or individually.
+ \end{frame}
+
+ {
+ \gothamset{shape frametitle=smallcaps, format frametitle=titlecase}
+ % FRAME
+ \begin{frame}{Titles: Small caps and titlecase}
+ This frame uses the title format options: \texttt{shape frametitle=smallcaps, format frametitle=titlecase}.
+
+ \begin{alertblock}{Potential Problems}
+ Be aware that not every font supports small caps.
+ If for example you typeset your presentation with pdfTeX and the Computer Modern Sans Serif font, every text in small caps will be typeset with the Computer Modern Serif font instead.
+ Please refer to the documentation if you consider using it.
+
+ As a rule of thumb: just use it for plaintext-only titles.
+ \end{alertblock}
+ \end{frame}
+ }
+
+ {
+ \gothamset{format frametitle=upper, shape frametitle=italic}
+ % FRAME
+ \begin{frame}{Titles: Upper and italic}
+ This frame uses the title format options: \texttt{format frametitle=upper, shape frametitle=smallcaps}.
+
+ \begin{alertblock}{Potential problems}
+ As this title format also uses small caps you face the same problems as with the \texttt{smallcaps} title format.
+ Additionally this format can cause some other problems.
+ Please refer to the documentation if you consider using it.
+
+
+ \end{alertblock}
+ \end{frame}
+ }
+
+ {
+ \gothamset{format frametitle=lower}
+ % FRAME
+ \begin{frame}{Titles: LOWER and regular}
+ This frame uses the title format options: \texttt{format frametitle=lower, shape frametitle=regular}.
+ \end{frame}
+ }
+
+
+\subsection{Colors}
+
+ {
+ \gothamset{background=dark}
+ % FRAME
+ \begin{frame}[fragile]{Presentation style via background color}
+ The color mode (a.k.a. background color) can be changed using:
+ \begin{verbatim} \gothamset{background=dark | light | transparent} \end{verbatim}
+ \end{frame}
+ }
+
+ % FRAME
+ \begin{frame}[fragile]{Blocks}
+ Three different block environments are pre-defined and may be styled with an optional background color.
+
+ \begin{columns}[T,onlytextwidth]
+ \column{0.3\textwidth}
+ \begin{verbatim}\gothamset{
+ block=native}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \column{0.3\textwidth}
+
+ \gothamset{block=transparent}
+ \begin{verbatim}\gothamset{
+ block=transparent}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \column{0.3\textwidth}
+
+ \gothamset{block=fill}
+ \begin{verbatim}\gothamset{
+ block=fill}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \end{columns}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Color customization}
+ The colors can be changed using:
+ \begin{verbatim}
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gDarkTeal} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+ \end{verbatim}
+ \end{frame}
+
+
+\subsection{Inner}
+
+ % FRAME
+ \begin{frame}[fragile]{Title page}
+ \themename{} offers the possibility to adapt the title page layout (printed with \verb|\maketitle| or \verb|\titlepage|).
+ This can be achieved using:
+
+ \begin{verbatim} \defbeamertemplate{title page}{your name}{your defintion}
+ \gothamset{title page= your name}\end{verbatim}
+
+ \themename{} also predefined several templates such as:
+ \verb$gotham normal | gotham splitvert | gotham dividedpic$ \verb$| gotham reversed$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Table of contents}
+ \themename{} come with the possibility to apply different style for your table of contents (ToC) page.
+ You can define your own ToC style as it follows:
+ \begin{verbatim}
+ \defbeamertemplate{toc page}{your name}{your def}
+ \gothamset{tocframe template= your name}
+ \end{verbatim}
+ Then, referring to this template using the frame option \verb|[toc]| in your presentation:
+ \begin{verbatim}
+ \begin{frame}[toc]{Table of contents}
+ \tableofcontents%[hideallsubsections]
+ \end{frame }\end{verbatim}
+
+ Or using one of the \themename{} predefined template, such as: \verb$gotham simple | gotham bullet$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections}
+ \themename{} provides a multiple options to tune sections (respectively \verb|part|, \verb|section|, \verb|subsection| and \verb|subsubsection|).
+ Thus, using the setting controls:
+
+ The section command \verb|\section{Elements}| from Beamer will appear very differently.
+ The section page will appear or disappear thanks to: \verb$\gothamset{sectionframe default=<on|off>}$, while its layout (when appearing) is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{part|sub|subsub|section frame}
+ {your name}{your def}
+ \gothamset{sectionframe template= your name}\end{verbatim}
+
+ \themename{} predefined template are: \verb$gotham progressbar | gotham simple |$ \verb$gotham splitvert progressbar |$ \verb$gotham splitvert simple | gotham progressvert$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections contents}
+ After the section page, you can (de)activate a page with table of contents in the section using \verb$\gothamset{sectiontocframe default=<on|off>}$, and its layout is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{toc subsection frame}{your name}{your def}
+ \gothamset{sectionframe template= your name}
+ \end{verbatim}
+
+ \themename{} predefined template are: \verb$gotham simple | gotham bullet$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile, watermark]{Watermark}
+
+ With \themename{} you can locally or globally add watermark to your slides by using:
+ \begin{verbatim} \defbeamertemplate{background}{watermark/your name}{your def}
+ \gothamset{watermark template= your name}\end{verbatim}
+
+ Then, this watermark can be turn on locally using \verb|\begin{frame}[watermark]| or globally with \verb|\gothamset{watermark default= on}| .
+ \end{frame}
+
+ % FRAME
+ \begin{standinenv}
+ \begin{frame}[fragile]{Standin}
+
+ \themename{} comes with 2 environments/specials layouts named \verb|standin| and \verb|standout|.
+ These specials layouts can be used to emphasize some content or last slide\textellipsis
+
+ This layout can be turn on using \verb|\begin{frame}[standin]| or using the dedicated environment (\verb|\begin{standinenv}\begin{frame}...\end{frame}\end{standinenv}|).
+
+ Note that the background can also be tuned using:
+ \begin{verbatim} \defbeamertemplate{background canvas}{standin/name}{your def}
+ \gothamset{standin template= name}\end{verbatim}
+
+ \end{frame}
+ \end{standinenv}
+
+ % FRAME
+ \begin{frame}[fragile, standout, watermark]{Standout}
+ Here is an example of standout (working as standin), that can be combined with a watermark.
+
+ Another difference, apart the obvious color change is the font size and series.
+ \end{frame}
+
+
+\subsection{Outer}
+
+ {%
+ \setbeamertemplate{frame footer}{My custom footer}
+ % FRAME
+ \begin{frame}[fragile]{Frame footer}
+ \themename{} defines a custom Beamer template to add a text to the footer.
+ It can be set via
+ \begin{verbatim}\setbeamertemplate{frame footer}{My custom footer}\end{verbatim}
+
+ Even after redefining (or not) your frame footer template, you can locally remove it with the frame option \verb|\begin{frame}[nofooter]|.
+ \end{frame}
+ }
+
+ \title[your shorttitle]{Gotham}
+ \date[shortdate]{\today}
+ \author[your shortauthor name]{Romain NOËL}
+ % FRAME
+ \begin{frame}[fragile, rotateFooter]{rotateFooter}
+ The default footer from \themename{}, it displays the \verb|shortdate|, \verb|shorttitle| and \verb|shortauthor|.
+ So by filling these fields in your document setup, you will see them appear in your footer:
+ \begin{verbatim} \title[your shorttitle]{Your title}
+ \date[shortdate]{\today}
+ \author[your shortauthor name]{John DOE} \end{verbatim}
+
+ Since, we always need some extra space on some frames that would like to overlay a bit the footer, \themename{}'s footer offers also possibility to be put on side locally using \verb|\begin{frame}[rotateFooter]|, or globally with
+ \begin{verbatim} \gothamset{rotateFooter default=on} \end{verbatim}
+ If it has set globally, it can be deactivated locally with the frame option \verb|\begin{frame}[norotateFooter]|.
+ \end{frame}
+
+ \title[]{Gotham}
+ \date[]{\today}
+ \renewcommand{\gothamRightFiligrane}{%
+ \rotatebox{90}{gotham right filigrane pattern}
+ }
+ % FRAME
+ \begin{frame}[edging, fragile]{Edging}
+ \themename{} has two hook commands, \verb|\gothamRightFiligrane| and \verb|\gothamLeftFiligrane|, that can be redefined to customize what to display in the edgings (a.k.a. filigrane, a.k.a. sidebar).
+ As example, one could do:
+ \begin{verbatim}
+ \renewcommand{\gothamRightFiligrane}{%
+ \rotatebox{90}{gotham right filigrane pattern}
+ }\end{verbatim}
+
+ Then, to set if it should be displayed or not, globally \begin{verbatim} \gothamset{edging default=on} \end{verbatim}
+ or locally with the frame option \verb|\begin{frame}[edging]| or \verb|\begin{frame}[noedging]|.
+ \end{frame}
+
+ % FRAME
+ % \begin{nofootlineenv}
+ \begin{frame}[fragile,noedging,nofooter]{Really wide contents}
+ \begin{adjustwidth}{-2em}{-2em}
+ If you want a really wide content in your frame, you can change the size of your margin (requires \verb|\usepackage{changepage}| in your preamble).
+ You can also suppress the edging (\verb|[noedging]|) and footer (\verb|[nofooter]|) or even more radically footline (\verb|[nofootline]|).
+
+ Here is an example combining them:
+ \begin{verbatim}
+ \begin{frame}[noedging,nofootline]{extended frame}
+ \begin{adjustwidth}{-2em}{-2em}% 2em extra to the left and 2em for right margin.
+ wide content
+ \end{adjustwidth}
+ \end{frame }
+ \end{verbatim}
+ \end{adjustwidth}
+ \end{frame}
+ % \end{nofootlineenv}
+
+ {%
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{%
+ \includegraphics[height=#1]{gotham-logo.pdf}
+ }
+ \logo{extra LOGO}
+ % FRAME
+ \begin{frame}[fragile]{Frametitle}
+ \framesubtitle{with a subtitle}
+ The frametile template brought by \themename{} is relatively classic: it supports \verb|\subframetitle| and frame continuation (with \verb|[allowframebreaks]|) through templates that can be tuned.
+ Nevertheless, it the frametitle template also includes a hook for your institute logo in the top right corner, leaving the command \verb|\logo{}| free for your extra logos.
+
+ So, one can have both logos using:
+ \begin{verbatim}
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ \includegraphics[height=#1]{gotham-logo.pdf}
+ }
+ \logo{extra LOGO}
+ \end{verbatim}
+ \end{frame}
+ }
+
+ \author[]{Romain NOËL}
+ {%
+ \gothamset{progressbar position=foot, numbering= totalframenumber}
+ % FRAME
+ \begin{frame}[fragile]{Numbering and progressbar}
+
+ \themename{} theme can numbering your frames in the bottom right corner using different styles.
+ You can also decide to use a progression bar to indicate how much of your presentation remains.
+
+ The setup of numbering and progression bar can be performed through:
+ \begin{verbatim}
+ \gothamset{numbering= totalframenumber, progressbar position=foot}
+ \end{verbatim}
+
+ Numbering available options are: \verb$none | framenumber | totalframenumber | appendixframenumber | pagenumber | totalpagenumber | circle$
+
+ Progressbar position available options are: \verb$none | head | frametitle | foot | circlehead$
+ \end{frame}
+ }
+
+
+\end{document}
+%EoF \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md
new file mode 100644
index 0000000000..34495c7bab
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md
@@ -0,0 +1,22 @@
+# "Mirage" beamer theme “蜃楼” beamer 主题
+
+A beamer theme inspired by the [album art](https://www.instagram.com/juncenart/p/C5LuwoSrBnW/?img_index=2) of Zhou Shen's song [_Mirage_](https://open.spotify.com/track/1PR9aOkY0dyRRL81YXv9a4).
+
+Two modes are available: the default with a dark look; and a `light` mode is available. Sample .tex files for beamer presentations and posters are provided.
+
+
+基于周深《[反深](https://y.qq.com/n/ryqq/albumDetail/003szpvI3LMhQ7)[代词](https://music.163.com/#/album?id=190605791)》专辑的先行曲[《蜃楼》歌曲封面](http://xhslink.com/a/oF7IHZ0uUYkY)二创的beamer主题。
+
+两种模式可选:默认模式颜色深沉,`light`模式颜色较浅。详细使用方法可参考示范.tex文档。
+
+```latex
+\usetheme{Mirage}
+% or
+\usetheme[light]{Mirage}
+```
+
+## Maintainer 宏包维护
+LianTze Lim 林莲枝 (liantze@gmail.com)
+
+## License 许可协议
+[LaTeX Project Public License (LPPL 1.3c)](https://www.latex-project.org/lppl/lppl-1-3c/) \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf
new file mode 100644
index 0000000000..42a118135e
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex
new file mode 100644
index 0000000000..be933dc0d7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex
@@ -0,0 +1,166 @@
+\documentclass{article}
+\usepackage{xeCJK}
+\usepackage[lining,tabular]{carlito}
+\usepackage{caladea}
+\usepackage{microtype}
+\usepackage{titling}
+\pretitle{\begin{center}\LARGE\bfseries}
+\posttitle{\par\end{center}}
+\usepackage[a4paper,columnsep=3em,margin=0.5in,footskip=2em]{geometry}
+\usepackage{fancyvrb}
+\usepackage{paracol}
+\usepackage{hologo}
+\usepackage{graphicx}
+\usepackage{pgffor}
+\usepackage{enumitem}
+\setlist{leftmargin=*}
+\usepackage[colorlinks]{hyperref}
+
+
+\title{``Mirage'' Beamer Theme “蜃楼”beamer主题}
+\author{LianTze Lim 林莲枝}
+\date{v1.1: 2024-10-24\\\url{https://github.com/liantze/beamerthemeMirage}}
+
+\begin{document}
+\maketitle
+
+\begin{paracol}{2}
+\begin{abstract}
+A beamer theme inspired by the
+\href{https://www.instagram.com/juncenart/p/C5LuwoSrBnW/?img_index=2}{album art} of Zhou Shen's song \href{https://open.spotify.com/track/1PR9aOkY0dyRRL81YXv9a4}{\emph{Mirage}},
+the lead single from his album \href{https://open.spotify.com/album/6IcyslRZfwWzpdhnFML6cd}{\emph{Shenself}}.
+\end{abstract}
+
+\switchcolumn
+
+\renewcommand*{\abstractname}{摘要}
+\begin{abstract}
+基于周深《\href{https://y.qq.com/n/ryqq/albumDetail/003szpvI3LMhQ7}{反深}\href{https://music.163.com/\#/album?id=190605791}{代词}》专辑的先行曲\href{http://xhslink.com/a/oF7IHZ0uUYkY}{《蜃楼》歌曲封面},二创的beamer主题。
+\end{abstract}
+\end{paracol}
+
+\begin{center}
+\includegraphics[page=1,width=.495\hsize]{mirage-beamer-zh.pdf}
+\includegraphics[page=5,width=.495\hsize]{mirage-beamer-zh.pdf}
+\end{center}
+
+\begin{paracol}{2}
+\section{Basic Usage}
+
+Two modes are available: the default has a dark look, while the
+\texttt{light} mode may be more suitable for printouts.
+
+\switchcolumn
+
+\section{基本用法}
+
+两种模式可选:默认模式颜色深沉,\texttt{light}模式颜色较浅,较适合列印。详细使用方法可参考示范 .tex 文档。
+
+\end{paracol}
+
+\begin{center}
+\begin{BVerbatim}
+\usetheme{Mirage} OR \usetheme[light]{Mirage}
+\end{BVerbatim}
+\end{center}
+
+
+\begin{paracol}{2}
+The English sample files \texttt{*-en.tex} can be compiled with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}; but compile the Chinese sample files \texttt{*-zh.tex} with \hologo{XeLaTeX}. Compile twice to get the correct total number of frames in the footer.
+
+\switchcolumn
+
+英文示范文档 \texttt{*-en.tex} 可用 \hologo{pdfLaTeX}, \hologo{XeLaTeX} 或 \hologo{LuaLaTeX}
+编译。中文示范文档 \texttt{*-zh.tex} 请用中文编译。页脚里的幻灯片帧数需多次编译才能正确显示。
+
+\switchcolumn*
+\setlength{\fboxsep}{0pt}
+
+\begin{center}
+\foreach \n in {1,...,6} {\fbox{\includegraphics[page=\n,width=.49\hsize]{mirage-beamer-zh.pdf}} }
+\end{center}
+
+\switchcolumn
+
+\begin{center}
+\foreach \n in {1,...,6} {\fbox{\includegraphics[page=\n,width=.49\hsize]{mirage-beamer-en.pdf}} }
+\end{center}
+
+\switchcolumn*
+
+
+\section{Posters}
+
+With some modificatons, the Mirage theme can be used for creating posters the \texttt{beamerposter} package. See sample files \texttt{mirage-poster-en.tex} and \texttt{mirage-poster-zh.tex} for examples.
+
+\switchcolumn
+
+\section{海报}
+
+“蜃楼”主题也可以和\texttt{beamerposter}搭配使用制作海报(一些设置需些许修改),请参照\texttt{mirage-poster-zh.tex}及\texttt{mirage-poster-en.tex}.
+
+\switchcolumn*
+
+\begin{center}
+\fbox{\includegraphics[width=.8\hsize]{mirage-poster-en.pdf}}
+\end{center}
+
+\switchcolumn
+
+\begin{center}
+\fbox{\includegraphics[width=.8\hsize]{mirage-poster-zh.pdf}}
+\end{center}
+
+\switchcolumn*
+
+\section{Some simple customisationoptions}
+
+\begin{itemize}
+\item The Mirage theme itself doesn't set any body fonts, so you can load your own preferred fonts in your \texttt{.tex} files.
+
+\item The sample \texttt{.tex} files load the font packages \texttt{caladea}, \texttt{carlito}, \texttt{newtxsf} for the English (\hologo{pdfLaTeX}) samples, and \texttt{Fira Math} for the Chinese (\hologo{XeLaTeX}) samples. You can change these as you like.
+
+\item \texttt{pullquote} used in frame 4 is a custom environment. You can change its beamer font and color, or re-define the \verb|\MiragePullquoteOpen| marker (see frame 4).
+
+\item Other markers that can be \verb|\renewcommand|:
+\begin{itemize}[nosep]
+ \item \verb|\MirageFrametitlePrefix|
+ \item \verb|\MirageProofPrefix|
+ \item \verb|\MirageTheoremPrefix|
+\end{itemize}
+for prefix icons of the frame title, \texttt{proof} block title and \texttt{theorem}-like block titles. (See commented code before frame 5.)
+
+\item The Mirage theme loads \texttt{fontawesome5}, so you can use
+icons provided by this package.
+
+\item \verb|\MirageGlowRadius| is a length controlling the size of the glowy circle in the footline; especially useful when creating posters with \texttt{beamerposter}.
+\end{itemize}
+
+\switchcolumn
+
+\section{一些可调整的元素}
+\begin{itemize}
+\item “蜃楼”本身并没有设置任何字体,用户可以自行在\texttt{.tex}导言曲加载自己喜欢的宏包或设置字体。
+
+\item 示范的 \texttt{.tex} 档案导言区加载了\texttt{caladea}、\texttt{carlito}、 \texttt{newtxsf} (仅限英文\hologo{pdfLaTeX}示范文档) 、\texttt{Fira Math} (仅限中文\hologo{XeLaTeX}示范文档)。这些都是可以自行更换的!
+
+\item 第4帧幻灯片里用的\texttt{pullquote}环境是“蜃楼”主题自定义的。它的beamer font、color都是可以更换的, 也可重新定义前缀装饰 \verb|\MiragePullquoteOpen| marker(详见第4帧幻灯片示范代码)。
+
+\item 其它可以 \verb|\renewcommand|的装饰:
+\begin{itemize}[nosep]
+ \item \verb|\MirageFrametitlePrefix|
+ \item \verb|\MirageProofPrefix|
+ \item \verb|\MirageTheoremPrefix|
+\end{itemize}
+这些是frame title、\texttt{proof} block title 以及\texttt{theorem}之类block titles的前缀装饰。(详见第5帧幻灯片之前的注释)
+
+\item “蜃楼”主题已加载\texttt{fontawesome5}宏包,可以尽情使用此宏包提供的符号。
+
+\item \verb|\MirageGlowRadius| 是用来控制页脚的小光球半径的length;制作海报时可以酌量加大。
+\end{itemize}
+
+\end{paracol}
+
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty
new file mode 100644
index 0000000000..262d2e2a5d
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty
@@ -0,0 +1,166 @@
+% beamerthemeMirage.sty v1.1 2024/10/24
+% by LianTze Lim (liantze@gmail.com)
+% A beamer theme inspired by Zhou Shen's `Mirage' song poster
+% 基于周深《反深代词》先行曲《蜃楼》歌曲海报色调的beamer主题
+\ProvidesPackage{beamerthemeMirage}
+
+\newif\ifMirage@light
+\DeclareOptionBeamer{light}{\Mirage@lighttrue}
+\ProcessOptionsBeamer
+
+\RequirePackage{regexpatch}
+\RequirePackage[fixed]{fontawesome5}
+\RequirePackage{relsize}
+
+\definecolor{MirageGray0}{RGB}{30,30,30}
+\definecolor{MirageGray1}{RGB}{48,48,48}
+\definecolor{MirageGray2}{RGB}{140,140,140}
+\definecolor{MirageGray3}{RGB}{60,66,71}
+\definecolor{MiragePink}{RGB}{212,183,183}
+\definecolor{MirageBlue}{RGB}{156,185,220}
+
+\ifMirage@light
+ \setbeamercolor{normal text}{fg=MirageGray3,bg=white}
+ \setbeamercolor{structure}{fg=MirageBlue!80!MirageGray0}
+ \setbeamercolor{item}{fg=MirageBlue!50!MirageGray0}
+\else
+ \setbeamercolor{normal text}{bg=MirageGray3,fg=white}
+ \setbeamercolor{structure}{fg=MirageBlue}
+ \setbeamercolor{item}{fg=MirageBlue!70!MirageGray0}
+\fi
+\setbeamercolor{alerted text}{fg=MiragePink!60!red!80!MirageGray0}
+\setbeamercolor{section in head/foot}{fg=structure!80}
+\setbeamercolor{page number in head/foot}{fg=structure!80}
+
+\xpatchcmd{\beamerboxesrounded}{#2}{\vspace*{0.5ex}#2\vspace*{0.5ex}}{}{}
+\xpatchcmd{\beamerboxesrounded}{\vskip2pt}{\vskip0.5ex}{}{}
+\pretocmd{\endbeamerboxesrounded}{\par\vspace*{0.5ex}}{}{}
+\usetheme[compress]{Singapore}
+\setbeamertemplate{blocks}[rounded]
+
+\setbeamerfont{block title}{family=\rmfamily,series=\bfseries}
+
+\ifMirage@light
+ \setbeamercolor{block body}{bg=MirageBlue!90,fg=MirageBlue!40!black}
+\else
+ \setbeamercolor{block body}{fg=MirageBlue,bg=MirageBlue!40!black}
+\fi
+\setbeamercolor{block title}{fg=MirageBlue!90,bg=MirageBlue!30!black}
+
+\setbeamercolor{block body example}{fg=MirageGray3,bg=MirageBlue!40}
+\setbeamercolor{block title example}{bg=MirageBlue!90,fg=MirageBlue!30!black}
+
+\setbeamercolor{block body alerted}{fg=MirageGray3,bg=MiragePink!30}
+\ifMirage@light
+ \setbeamercolor{block title alerted}{fg=MiragePink!60!red!80!MirageGray0,bg=MiragePink!80}
+\else
+ \setbeamercolor{block title alerted}{fg=MiragePink!60!red!80!MirageGray0,bg=MiragePink}
+\fi
+
+\newcommand{\MirageProofPrefix}{\faEllipsisH}
+\newcommand{\MirageTheoremPrefix}{\faChevronCircleRight}
+
+\addtobeamertemplate{proof begin}{%
+ \let\oldinsertproofname\insertproofname%
+ \def\insertproofname{{\color{block title.fg!50!block title.bg}\relsize{-1}\MirageProofPrefix}\oldinsertproofname}%
+}{}
+
+\addtobeamertemplate{theorem begin}{%
+ \let\oldinserttheoremname\inserttheoremname%
+ \def\inserttheoremname{{\color{block title.fg!50!block title.bg}\relsize{-1}\MirageTheoremPrefix}\oldinserttheoremname}%
+}{}
+
+
+\ifMirage@light
+ \setbeamercolor{pullquote}{fg=MiragePink!90!normal text.fg}
+\else
+ \setbeamercolor{pullquote}{fg=MiragePink}
+\fi
+\setbeamerfont{pullquote}{family=\rmfamily,size=\Large,shape=\itshape}
+\newcommand{\MiragePullquoteOpen}{\faQuoteLeft}
+\newcommand{\MiragePullquoteClose}{\faQuoteRight}
+\newenvironment{pullquote}{%
+ \usebeamercolor{pullquote}%
+ \color{pullquote.fg!15!normal text.bg}\hrule width \hsize height 0.15ex\vskip2ex%
+ \begin{beamercolorbox}[colsep=1ex,leftskip=1em]{pullquote}%
+ \usebeamerfont{pullquote}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt]{\color{pullquote.fg!30!normal text.bg}\hskip-1em\huge\MiragePullquoteOpen}}%
+ \ignorespaces%
+}{%
+ \end{beamercolorbox}%
+ \vskip2ex\hrule width \hsize height 0.15ex%
+}
+
+
+\setbeamertemplate{itemize items}[circle]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{frametitle continuation}[from second]
+\ifMirage@light
+ \pgfdeclareverticalshading{mirage@headfade}{\the\paperwidth}{%
+ color(0ex)=(white);%
+ color(0.2ex)=(MirageBlue);%
+ color(1.3ex)=(MiragePink);%
+ color(1.7ex)=(white)%
+ }
+\else
+ \pgfdeclareverticalshading{mirage@headfade}{\the\paperwidth}{%
+ color(0ex)=(MirageGray0);%
+ color(0.2ex)=(MirageBlue);%
+ color(1.3ex)=(MiragePink);%
+ color(1.7ex)=(MirageGray1)%
+ }
+\fi
+\addtobeamertemplate{headline}{}{%
+ \vskip1ex%
+ \pgfpathrectangle{\pgfpoint{0pt}{0pt}}{\pgfpoint{\paperwidth}{1.7ex}}
+ \pgfuseshading{mirage@headfade}
+ \vskip-2ex%
+}{}
+
+\RequirePackage{tikz}
+\usetikzlibrary{shadows}
+
+\pgfdeclareradialshading{tikz@lib@fade@circle@50}{\pgfpointorigin}{
+ color(0pt)=(pgftransparent!0); color(20bp)=(pgftransparent!0);
+ color(25bp)=(pgftransparent!100); color(80bp)=(pgftransparent!100)}%
+\pgfdeclarefading{circle with fuzzy edge 50 percent}{\pgfuseshading{tikz@lib@fade@circle@50}}%
+
+\newcommand{\MirageFootlineContents}{\insertframenumber{} of \inserttotalframenumber{}}
+\newlength{\MirageGlowRadius}
+\setlength{\MirageGlowRadius}{0.2ex}
+\newbox{\Mirage@smalleclipse}
+\AddToHook{begindocument/before}{
+ \savebox{\Mirage@smalleclipse}{%
+ \usebeamercolor{normal text}%
+ \tikz{\node[anchor=center,circle,circular glow={fill=MiragePink,shadow scale=2.5, path fading={circle with fuzzy edge 50 percent}},draw=normal text.fg,fill=normal text.fg,outer sep=0pt,inner sep=\MirageGlowRadius](O){};%
+ \draw[line width=0.1ex,draw=normal text.fg](0.3ex,0pt) -- ++(0.75\paperwidth,0pt);%
+ }%
+ }%
+}
+
+\setbeamertemplate{footline}{%
+ \begin{beamercolorbox}[ht=2.5ex,dp=1ex,right,sep=0.5ex]{page number in head/foot}%
+ \leavevmode\usebox{\Mirage@smalleclipse}%
+ \vskip-1ex%
+ \MirageFootlineContents\hspace*{1ex}%
+ \end{beamercolorbox}%
+}{}
+
+\setbeamertemplate{frametitle}[default][left]
+\AddToHook{begindocument}{
+\ifdefined\addfontfeatures
+ \setbeamerfont{title}{family=\rmfamily\addfontfeatures{LetterSpace=5}}
+\else
+ \RequirePackage[letterspace=50]{microtype}
+ \setbeamerfont{title}{family=\rmfamily\lsstyle}
+\fi
+}
+\setbeamerfont{title}{size=\LARGE,series=\bfseries}
+\setbeamerfont{frametitle}{family=\rmfamily,size=\Large,series=\bfseries}
+
+\newcommand{\MirageFrametitlePrefix}{\faBorderStyle}
+\addtobeamertemplate{frametitle}{%
+ \let\oldinsertframetitle\insertframetitle%
+ \renewcommand{\insertframetitle}{{\relsize{-1}\color{frametitle.fg!50!frametitle.bg}\MirageFrametitlePrefix}\oldinsertframetitle}%
+}
+
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf
new file mode 100644
index 0000000000..b4d7004b70
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex
new file mode 100644
index 0000000000..91c4fc06fa
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex
@@ -0,0 +1,138 @@
+\documentclass[aspectratio=1610]{beamer}
+% This can be compiled with pdflatex.
+% Load fontspec so that you can load OTF/TTF fonts if you want to; but then you must compile with xelatex or lualatex!
+% \usepackage{fontspec}
+
+% beamerthemeMirage.sty v1.0 2024/04/14
+% by LianTze Lim (liantze@gmail.com)
+% A beamer theme inspired by Zhou Shen's `Mirage' song poster
+% \usetheme{Mirage} % Default = dark mode
+\usetheme[light]{Mirage} % Alternative light mode
+
+% The glowy light in the footnline
+% \setlength{\MirageGlowRadius}{0.25ex}
+
+% Mirage theme loads the fontawesome5 package
+
+\title{Mirage Theme}
+\subtitle{Inspired by the song poster of the lead single, \emph{Mirage}}
+\author{LianTze Lim}
+\institute{The full album \emph{Shenself} now available on all major music platforms}
+\date{2024/10/22}
+
+\usepackage{iftex}
+
+% These fonts will work with pdflatex, xelatex, lualatex
+\usepackage[lining,tabular]{carlito}
+\usepackage{caladea}
+
+\ifboolexpr{bool{xetex} or bool{luatex}}{
+ % Unicode-math and TTF/OTF fonts will only work with xelatex, lualatex
+ \usepackage{unicode-math}
+ % \setmathfont{STIX Two Math}
+ % \setmathfont{Erewhon Math}
+ \setmathfont{Fira Math}
+}{% Sans math font in pdflatex:
+ \usepackage[T1]{fontenc}
+ \usepackage{newtxsf}
+}
+
+
+\begin{document}
+
+\frame{\maketitle}
+
+\section{Intro}
+\begin{frame}
+\frametitle{Introduction}
+
+\begin{itemize}
+ \item Behold the mechanical dove \faDove{} flying through the air
+ \item How might its eyes be lit \faEye[regular] that it appears lifelike
+
+\begin{enumerate}
+ \item Are digital dawns and dusks \faCloudSun{} more colourful? \faCloudMoon
+ \item Are bionic lovers \faGrinHearts{} more faithful? \faGrin*[regular]
+\end{enumerate}
+
+ \item Push this one door open \faDoorOpen{} and there are thousands more \faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed}
+\end{itemize}
+
+\end{frame}
+
+\subsection{Lists}
+\begin{frame}
+\frametitle{The ancient gaze from aeons ago}
+ \begin{enumerate}
+ \item How might it discern if this moment is fantasy or real
+ \begin{enumerate}
+ \item Is man-made talent true inherent wisdom?
+ \begin{enumerate}
+ \item Do cloned bodies have souls?
+ \item Forever questioning, but ever without a conclusion
+ \end{enumerate}
+ \end{enumerate}
+ \item \alert{Can it be real}
+ \end{enumerate}
+
+\end{frame}
+
+\section{Blocks}
+
+\begin{frame}[c]
+\frametitle{The Heavenward Staircase of Wisdom is ever endless}
+\begin{columns}
+\begin{column}[b]{.35\textwidth}
+\begin{pullquote}
+ Can it be real\\
+ The world is a mirage
+\end{pullquote}
+\end{column}
+
+\begin{column}[t]{.65\textwidth}
+\setbeamercolor{pullquote}{fg=MirageBlue}
+\renewcommand{\MiragePullquoteOpen}{«}
+\begin{pullquote}
+Amidst barren hills of electronic fantasies\\
+I search for oases of truth\\
+Though as small as mayflies\\
+I dare gaze at the galaxies
+\end{pullquote}
+\end{column}
+\end{columns}
+\end{frame}
+
+
+% \renewcommand{\MirageFrametitlePrefix}{\faDove}
+% \renewcommand{\MirageProofPrefix}{\faCheckSquare[regular]}
+% \renewcommand{\MirageTheoremPrefix}{\faCogs}
+
+\begin{frame}[allowframebreaks]{Blocks blocks blocks 123}
+
+ \begin{exampleblock}{Gosh I've no idea what I'm writing, do you?}
+ Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. This should be easy, right?
+ \end{exampleblock}
+
+ \begin{alertblock}{Gosh I've no idea what I'm writing, do you?}
+ \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+ \end{alertblock}
+
+ \begin{block}{Gosh I've no idea what I'm writing, do you?}
+ \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+ \end{block}
+
+ \begin{proof}
+ As everyone can clearly see, $1+1=2$.
+ \end{proof}
+
+ \begin{theorem}
+ A wonderful thing is about to happen -- it \emph{will} eventually happen.
+ \end{theorem}
+
+ \begin{definition}
+ A wonderful thing is about to happen -- it \emph{will} eventually happen.
+ \end{definition}
+\end{frame}
+
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf
new file mode 100644
index 0000000000..edd2d751c9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex
new file mode 100644
index 0000000000..08f8aeb104
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex
@@ -0,0 +1,136 @@
+% 中文请用ctexbeamer, 个人觉得行距linespread宽一点看起来比较舒服。XeLaTeX编译。
+\documentclass[aspectratio=1610,linespread=1.4,t]{ctexbeamer}
+
+% If this is an English-only deck, you don't need ctexbeamer nor the wider linespread
+% \documentclass[aspectratio=1610,t]{beamer}
+% But load fontspec so that you can load OTF/TTF fonts if you want to!
+% \usepackage{fontspec}
+
+% beamerthemeMirage.sty v1.0 2024/04/14
+% by LianTze Lim (liantze@gmail.com)
+% A beamer theme inspired by Zhou Shen's `Mirage' song poster
+% 基于周深《反深代词》先行曲《蜃楼》歌曲海报色调的beamer主题
+\usetheme{Mirage} % Default = dark mode
+% \usetheme[light]{Mirage} % Alternative light mode
+
+% The glowy light in the footnline
+% \setlength{\MirageGlowRadius}{0.25ex}
+
+% Mirage theme loads the fontawesome5 package
+
+\title{Mirage Theme 蜃楼}
+\subtitle{此主题为基于《蜃楼》歌曲海报的二创}
+\author{林莲枝}
+\institute{《反深代词》专辑已在各大音乐平台上线}
+\date{2024/10/22}
+
+% These fonts will work with pdflatex, xelatex, lualatex. If you're using ctexbeamer it's best to compile in xelatex.
+\usepackage[lining,tabular]{carlito}
+\usepackage{caladea}
+
+% But unicode-math and TTF/OTF fonts will only work with xelatex, lualatex
+\usepackage{unicode-math}
+% \setmathfont{STIX Two Math}
+% \setmathfont{Erewhon Math}
+\setmathfont{Fira Math}
+
+\begin{document}
+
+\frame{\maketitle}
+
+\section{Intro}
+\begin{frame}
+\frametitle{Introduction}
+
+\begin{itemize}
+ \item 看机械的白鸽\faDove{} 从空中飞过
+ \item 要如何点睛\faEye[regular] 它才堪称鲜活
+
+\begin{enumerate}
+ \item 数字的晨昏\faCloudSun{} 是否更缤纷\faCloudMoon
+ \item 仿生的情人\faGrinHearts{} 是否更忠贞\faGrin*[regular]
+\end{enumerate}
+
+ \item 推开一扇门\faDoorOpen{} 还有万千重门\faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed}
+\end{itemize}
+
+\end{frame}
+
+\subsection{Lists}
+\begin{frame}
+\frametitle{那来自过去 古老的眼神}
+ \begin{enumerate}
+ \item 如何能辨认 此刻是幻是真
+ \begin{enumerate}
+ \item 人造的天分 是否算慧根
+ \begin{enumerate}
+ \item 克隆的肉身 是否有灵魂
+ \item 永远在追问 却从来都没结论
+ \end{enumerate}
+ \end{enumerate}
+ \item \alert{Can it be real}
+ \end{enumerate}
+
+\end{frame}
+
+\section{其它示范}
+
+\begin{frame}[c]
+\frametitle{智慧的天梯从来都没尽头}
+\begin{columns}
+\begin{column}{.4\textwidth}
+\begin{pullquote}
+ Can it be real\\
+ The world is a mirage
+\end{pullquote}
+\end{column}
+
+\begin{column}{.53\textwidth}
+\setbeamercolor{pullquote}{fg=MirageBlue}
+\renewcommand{\MiragePullquoteOpen}{\hskip-.2\ccwd『}
+\begin{pullquote}
+在电幻的荒丘 寻真实的绿洲\\
+渺小得如蜉蝣 也仰望着宇宙
+\end{pullquote}
+\end{column}
+\end{columns}
+\end{frame}
+
+
+% \renewcommand{\MirageFrametitlePrefix}{\faDove}
+% \renewcommand{\MirageProofPrefix}{\faCheckSquare[regular]}
+% \renewcommand{\MirageTheoremPrefix}{\faCogs}
+
+\begin{frame}[allowframebreaks]{各种block 123}
+
+ \begin{exampleblock}{算了我也不知道在写什么,do you?}
+ Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. 对各位同学来说应该挑战不大。
+ \end{exampleblock}
+
+\begin{columns}[T]
+\column{0.48\textwidth}
+ \begin{alertblock}{算了我也不知道在写什么,do you?}
+ \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+ \end{alertblock}
+
+\column{0.48\textwidth}
+ \begin{block}{算了我也不知道在写什么,do you?}
+ \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+ \end{block}
+\end{columns}
+
+ \begin{proof}
+ 显而易见,$1+1=2$.
+ \end{proof}
+
+ \begin{theorem}
+ 有一件很美好的事情将要发生,它终会发生。
+ \end{theorem}
+
+ \begin{definition}
+ 有一件很美好的事情将要发生,它终会发生。
+ \end{definition}
+\end{frame}
+
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf
new file mode 100644
index 0000000000..3efba7d947
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex
new file mode 100644
index 0000000000..ee26690d04
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex
@@ -0,0 +1,172 @@
+\documentclass{beamer}
+
+\usepackage[size=a3,orientation=portrait,scale=1.4]{beamerposter}
+
+% (Mirage theme already loads fontawesome5)
+% \usetheme{Mirage}
+\usetheme[light]{Mirage}
+
+\usepackage{iftex}
+
+% These fonts will work with pdflatex, xelatex, lualatex
+\usepackage[lining,tabular]{carlito}
+\usepackage{caladea}
+
+\ifboolexpr{bool{xetex} or bool{luatex}}{
+ % Unicode-math and TTF/OTF fonts will only work with xelatex, lualatex
+ \usepackage{unicode-math}
+ % \setmathfont{STIX Two Math}
+ % \setmathfont{Erewhon Math}
+ \setmathfont{Fira Math}
+}{% Sans math font in pdflatex:
+ \usepackage[T1]{fontenc}
+ \usepackage{newtxsf}
+}
+
+
+% beamer slides -> poster = some adjustments needed
+\setbeamerfont{headline}{size=\huge}
+\setbeamerfont{footline}{size=\large}
+\setbeamercolor{bibliography item}{fg=block body.fg}
+\setbeamercolor{bibliography entry author}{fg=block body.fg}
+\setbeamercolor{bibliography entry title}{fg=block body.fg}
+\setbeamercolor{bibliography entry location}{fg=block body.fg}
+\setbeamercolor{bibliography entry note}{fg=block body.fg}
+\setlength{\MirageGlowRadius}{0.5ex}
+
+% _slightly_ more prominent colours for the headline... but not so much
+\makeatletter
+\ifMirage@light
+ \setbeamercolor{section in head/foot}{fg=structure!80!MirageGray0}
+ \setbeamercolor{page number in head/foot}{fg=structure!80!MirageGray0}
+\else
+ \setbeamercolor{section in head/foot}{fg=structure!90}
+ \setbeamercolor{page number in head/foot}{fg=structure!90}
+\fi
+\makeatother
+\setbeamerfont{title}{size=\Huge}
+\setbeamerfont{author}{size=\large}
+% might need some extra vertical space when using [t]
+\addtobeamertemplate{headline}{}{\vspace*{1ex}}
+
+% yes I've sinned by abusing and re-defining \insertnavigation to quickly
+% insert the title and author in the headline...
+\renewcommand*{\insertnavigation}[1]{\centering\vspace*{-1ex}%
+ {\usebeamerfont{title}%
+ \insertshorttitle[width=0.95\hsize,respectlinebreaks,center]\par}%
+ \vspace*{0.5ex}%
+ {\usebeamerfont{author}%
+ \insertshortauthor[width=0.95\hsize,respectlinebreaks,center]\par}%
+}
+
+
+% adjust itemize/enumerate list indents if necessary
+\setlength{\leftmarginii}{1.75em}
+\setlength{\leftmarginiii}{2.5em}
+
+\usepackage{graphicx}
+\usepackage[style=numeric,natbib]{biblatex}
+\addbibresource{sample-refs.bib}
+
+
+\title{Using the Mirage theme for posters}
+\author{John Doe, Jane Smith and A.~N.~Other }
+\renewcommand{\MirageFootlineContents}{Dept of XX, Uni of YY, other information as appropriate}
+
+\begin{document}
+
+\begin{frame}
+
+\begin{columns}[T]
+\column{.47\textwidth}
+\begin{block}{Introduction}
+
+\begin{itemize}
+ \item Behold the mechanical dove \faDove{} flying through the air
+ \item How might its eyes be lit \faEye[regular] that it appears lifelike
+
+\begin{enumerate}
+ \item Are digital dawns and dusks \faCloudSun{} more colourful? \faCloudMoon
+ \item Are bionic lovers \faGrinHearts{} more faithful? \faGrin*[regular]
+\end{enumerate}
+
+ \item Push this one door open \faDoorOpen{} and there are thousands more \faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed}
+\end{itemize}
+
+\end{block}
+
+\begin{block}{The ancient gaze from aeons ago}
+ \begin{enumerate}
+ \item How might it discern if this moment is fantasy or real
+ \begin{enumerate}
+ \item Is man-made talent true inherent wisdom?
+ \begin{enumerate}
+ \item Do cloned bodies have souls?
+ \item Forever questioning, but ever without a conclusion
+ \end{enumerate}
+ \end{enumerate}
+ \item \alert{Can it be real}
+ \end{enumerate}
+\end{block}
+
+\begin{pullquote}
+ Can it be real\\
+ The world is a mirage
+\end{pullquote}
+
+\bigskip
+
+\setbeamercolor{pullquote}{fg=MirageBlue}
+\renewcommand{\MiragePullquoteOpen}{«}
+\begin{pullquote}
+Amidst barren hills of electronic fantasies\\
+I search for oases of truth\\
+Though as small as mayflies\\
+I dare gaze at the galaxies
+\end{pullquote}
+
+\column{.47\textwidth}
+\begin{exampleblock}{Gosh I've no idea what I'm writing, do you?}
+Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. This should be easy, right?
+\end{exampleblock}
+
+\begin{alertblock}{Gosh I've no idea what I'm writing, do you?}
+\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+\end{alertblock}
+
+\begin{block}{Gosh I've no idea what I'm writing, do you?}
+\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+\end{block}
+
+\begin{proof}
+As everyone can clearly see, $1+1=2$.
+\end{proof}
+
+\begin{theorem}
+A wonderful thing is about to happen -- it \emph{will} eventually happen.
+\end{theorem}
+
+\begin{definition}
+A wonderful thing is about to happen -- it \emph{will} eventually happen.
+\end{definition}
+
+\end{columns}
+
+\begin{block}{Superior Images and False Horizons \citep{Mirage-Greenler1980,AtmRefrac-Hyperphysics}}
+\begin{center}\includegraphics[width=0.95\hsize]{miragesup.png}\end{center}
+A superior image can be produced when warm air exists over cold water. Again, using the pattern from Greenler, the vertical scale and the curvature are greatly exaggerated to show the effect. Such images are often seen at great distances in the arctic region when the air is significantly warmer than the water. Since the geometry of the mirage images depends on the details of the temperature contour, a great variety of mirage images can be formed.
+
+Source: \url{http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html}
+\end{block}
+
+\vfill
+
+\begin{block}{\refname}
+\renewcommand*{\bibfont}{\small}
+\addtolength{\bibitemsep}{-0.5ex}
+\setlength{\biblabelsep}{0.25em}
+\printbibliography[heading=none]
+\end{block}
+
+\end{frame}
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf
new file mode 100644
index 0000000000..2852ddbfc4
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex
new file mode 100644
index 0000000000..1f34757d1f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex
@@ -0,0 +1,164 @@
+% Just use beamer, not ctexbeamer, if you're not typesetting Chinese
+% \documentclass{beamer}
+\documentclass[linespread=1.4]{ctexbeamer}
+
+\usepackage[size=a3,orientation=portrait,scale=1.4]{beamerposter}
+
+% (Mirage theme already loads fontawesome5)
+\usetheme{Mirage}
+% \usetheme[light]{Mirage}
+
+% fonts
+\usepackage[lining,tabular]{carlito}
+\usepackage{caladea}
+\usepackage{unicode-math}
+\setmathfont{Erewhon Math}
+
+
+% beamer slides -> poster = some adjustments needed
+\setbeamerfont{headline}{size=\huge}
+\setbeamerfont{footline}{size=\large}
+\setbeamercolor{bibliography item}{fg=block body.fg}
+\setbeamercolor{bibliography entry author}{fg=block body.fg}
+\setbeamercolor{bibliography entry title}{fg=block body.fg}
+\setbeamercolor{bibliography entry location}{fg=block body.fg}
+\setbeamercolor{bibliography entry note}{fg=block body.fg}
+\setlength{\MirageGlowRadius}{0.5ex}
+
+% _slightly_ more prominent colours for the headline... but not so much
+\makeatletter
+\ifMirage@light
+ \setbeamercolor{section in head/foot}{fg=structure!80!MirageGray0}
+ \setbeamercolor{page number in head/foot}{fg=structure!80!MirageGray0}
+\else
+ \setbeamercolor{section in head/foot}{fg=structure!90}
+ \setbeamercolor{page number in head/foot}{fg=structure!90}
+\fi
+\makeatother
+\setbeamerfont{title}{size=\Huge}
+\setbeamerfont{author}{size=\large}
+% might need some extra vertical space when using [t]
+\addtobeamertemplate{headline}{}{\vspace*{1ex}}
+
+% yes I've sinned by abusing and re-defining \insertnavigation to quickly
+% insert the title and author in the headline...
+\renewcommand*{\insertnavigation}[1]{\centering\vspace*{-1ex}%
+ {\usebeamerfont{title}%
+ \insertshorttitle[width=0.95\hsize,respectlinebreaks,center]\par}%
+ \vspace*{0.5ex}%
+ {\usebeamerfont{author}%
+ \insertshortauthor[width=0.95\hsize,respectlinebreaks,center]\par}%
+}
+
+
+% adjust itemize/enumerate list indents if necessary
+\setlength{\leftmarginii}{1.75em}
+\setlength{\leftmarginiii}{2.5em}
+
+\usepackage{graphicx}
+\usepackage[style=numeric,natbib]{biblatex}
+\addbibresource{sample-refs.bib}
+
+
+\title{当蜃楼Mirage主题拿来做海报}
+\author{作者甲、作者乙、作者丙}
+\renewcommand{\MirageFootlineContents}{Dept of XX, Uni of YY, 某某大学,其它适合资讯}
+
+\begin{document}
+
+\begin{frame}
+
+\begin{columns}[T]
+\column{.47\textwidth}
+\begin{block}{Introduction}
+
+\begin{itemize}
+ \item 看机械的白鸽\faDove{} 从空中飞过
+ \item 要如何点睛\faEye[regular] 它才堪称鲜活
+
+\begin{enumerate}
+ \item 数字的晨昏\faCloudSun{} 是否更缤纷\faCloudMoon
+ \item 仿生的情人\faGrinHearts{} 是否更忠贞\faGrin*[regular]
+\end{enumerate}
+
+ \item 推开一扇门\faDoorOpen{} 还有万千重门\faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed}
+\end{itemize}
+
+\end{block}
+
+\begin{block}{那来自过去 古老的眼神}
+ \begin{enumerate}
+ \item 如何能辨认 此刻是幻是真
+ \begin{enumerate}
+ \item 人造的天分 是否算慧根
+ \begin{enumerate}
+ \item 克隆的肉身 是否有灵魂
+ \item 永远在追问 却从来都没结论
+ \end{enumerate}
+ \end{enumerate}
+ \item \alert{Can it be real}
+ \end{enumerate}
+\end{block}
+
+\begin{pullquote}
+ Can it be real\\
+ The world is a mirage
+\end{pullquote}
+
+\bigskip
+
+\setbeamercolor{pullquote}{fg=MirageBlue}
+\renewcommand{\MiragePullquoteOpen}{\hskip-.2\ccwd『}
+\begin{pullquote}
+在电幻的荒丘 寻真实的绿洲\\
+渺小得如蜉蝣 也仰望着宇宙
+\end{pullquote}
+
+\column{.47\textwidth}
+\begin{exampleblock}{算了我也不知道在写什么,do you?}
+Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. 对各位同学来说应该挑战不大。
+\end{exampleblock}
+
+\begin{alertblock}{算了我也不知道在写什么,do you?}
+\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+\end{alertblock}
+
+\begin{block}{算了我也不知道在写什么,do you?}
+\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \]
+\end{block}
+
+\begin{proof}
+显而易见,$1+1=2$.
+\end{proof}
+
+\begin{theorem}
+有一件很美好的事情将要发生,它终会发生。
+\end{theorem}
+
+\begin{definition}
+有一件很美好的事情将要发生,它终会发生。
+\end{definition}
+
+\end{columns}
+
+\begin{block}{Superior Images and False Horizons \citep{Mirage-Greenler1980,AtmRefrac-Hyperphysics}}
+\begin{center}\includegraphics[width=0.95\hsize]{miragesup.png}\end{center}
+% locally change the linespread for this English-only paragraph.
+\linespread{1}\selectfont
+A superior image can be produced when warm air exists over cold water. Again, using the pattern from Greenler, the vertical scale and the curvature are greatly exaggerated to show the effect. Such images are often seen at great distances in the arctic region when the air is significantly warmer than the water. Since the geometry of the mirage images depends on the details of the temperature contour, a great variety of mirage images can be formed.
+
+Source: \url{http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html}
+\end{block}
+
+\vfill
+
+\begin{block}{\refname}
+% All English refs, so...
+\renewcommand*{\bibfont}{\small\linespread{1}\selectfont}
+\setlength{\biblabelsep}{0.25em}
+\addtolength{\bibitemsep}{-0.5ex}
+\printbibliography[heading=none]
+\end{block}
+
+\end{frame}
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png
new file mode 100644
index 0000000000..fbab14be92
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib
new file mode 100644
index 0000000000..d4b9f9f524
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib
@@ -0,0 +1,16 @@
+@misc{AtmRefrac-Hyperphysics,
+ author={Carl Rod Nave},
+ year={2000},
+ title={Mirages and other atomospheric optic phenomena},
+ url={http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html},
+ urldate={2024-09-20},
+ organization={HyperPhysics, Department of Physics and Astronomy, Georgia State University}
+}
+@inbook{Mirage-Greenler1980,
+ author={Greenler, Robert},
+ title={Atmospheric refraction :mirages, twinkling stars, and the green flash},
+ booktitle={Rainbows, Halos, and Glories},
+ publisher={Cambridge University Press},
+ year={1980},
+ chapter={7}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
index b8501189d6..0215359b46 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
@@ -1,12 +1,12 @@
# beamertheme-tcolorbox
-[![GitHub](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](http://www.latex-project.org/lppl.txt)
-[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest)
-[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg)](https://ctan.org/pkg/beamertheme-tcolorbox)
+[![License](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](https://www.latex-project.org/lppl.txt)
+[![GitHub tag](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version&color=blue)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest)
+[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg?color=blue)](https://ctan.org/pkg/beamertheme-tcolorbox)
A beamer inner theme which reproduces standard beamer blocks using tcolorboxes.
-This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt .
+This project is licensed under the LaTeX Project Public License v1.3c or later, see https://www.latex-project.org/lppl.txt .
The project repository, including a bug tracker, can be found at https://github.com/samcarter/beamertheme-tcolorbox .
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
index 9469f0591e..1a2af1a6d8 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
@@ -1,4 +1,4 @@
-% !TeX root = test.tex
+% !TeX root = ./testing/test.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The tcolorbox inner theme
@@ -9,10 +9,10 @@
% https://github.com/samcarter/beamertheme-tcolorbox
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{beamerinnerthemetcolorbox}[2024/04/29 version v0.7 Beamer blocks with tcolorboxes]
+\ProvidesPackage{beamerinnerthemetcolorbox}[2024/09/23 version v0.8 Beamer blocks with tcolorboxes]
\RequirePackage{tcolorbox}
\tcbuselibrary{skins,hooks}
@@ -197,11 +197,11 @@
\ifbeamer@tcb@blocks
\setbeamertemplate{block begin}{\begin{beamer@tcb@block}}
- \setbeamertemplate{block end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block end}{\onslide<1->\end{beamer@tcb@block}}
\setbeamertemplate{block alerted begin}{\begin{beamer@tcb@block}[ alerted]}
- \setbeamertemplate{block alerted end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block alerted end}{\onslide<1->\end{beamer@tcb@block}}
\setbeamertemplate{block example begin}{\begin{beamer@tcb@block}[ example]}
- \setbeamertemplate{block example end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block example end}{\onslide<1->\end{beamer@tcb@block}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
index 777cedba6e..cd57229fcf 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
@@ -21,7 +21,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{xcolor}
\definecolor{samyellow}{RGB}{246,193,65}
-\definecolor{samorange}{RGB}{241,147,45}
+\definecolor{samorange}{RGB}{241,147,45}% pgfplotsthemebeamer
\definecolor{samred}{RGB}{191,26,46}% TikZbricks
\definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots
\definecolor{samviolet}{RGB}{136,46,114}% TikZlings
@@ -69,6 +69,7 @@
% \RequirePackage[scale=0.85]{cascadia-code}
% \AddToHook{cmd/ttfamily/before}{\fontseries{sl}}
\RequirePackage{iexec}
+\usepackage{synthslant}% to fake slented comments in inconsolata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -81,7 +82,7 @@
% smuggling custom pygmentize style in cache folder
% (a real pygmentise style would need installtion in some python folder)
-\begin{filecontents*}[noheader]{./sam.pygstyle}
+\begin{filecontents*}[noheader,overwrite]{./sam.pygstyle}
\makeatletter
\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
\let\PYG@ul=\relax \let\PYG@tc=\relax%
@@ -102,7 +103,7 @@
\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}
% comments (italics won't work with the inconsolata font)
-\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{##1}}}
+\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{\textsynthslant{##1}}}}
\def\PYGZbs{\char`\\}
\def\PYGZus{\char`\_}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
index fe64e72639..a7c6c23efb 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
index c17e7fc17e..18c2daacc0 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
@@ -8,7 +8,7 @@
% https://github.com/samcarter/beamertheme-tcolorbox
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% !TeX program = txs:///arara
@@ -31,7 +31,7 @@
\url{https://github.com/samcarter/beamertheme-tcolorbox}\\
\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}
}{samcarter}}
-\date{Version v0.7 \textendash{} 2024/04/29}
+\date{Version v0.8 \textendash{} 2024/09/23}
\usepackage[
themecolor=samteal
@@ -53,10 +53,10 @@ Over the last decade of answering beamer problems and more recently also being o
For all these cases, there is now an alternative to the default beamer blocks: The tcolorbox inner beamer theme will replace the usual beamer mechanism to draw blocks with tcolorboxes. The tcolorboxes will automatically adopt the look and feel (round vs.\ sharp corners and shadows) as well as the colours of the normal beamer blocks.
-The package is included in \TeX{}Live and MiK\TeX\ and available from \textsc{CTAN} (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}).
+The package is included in \texlive and \miktex and available from \CTAN (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}).
The development version of this package is located at \url{https://github.com/samcarter/beamertheme-tcolorbox}. If you have any problems, ideas or other feedback, please make constructive use of the issue tracker.
-Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}.
+Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{https://www.latex-project.org/lppl.txt}.
\section{Usage}
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md
index d1e8bc4d60..bedfb2e75b 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
+## [0.5.0](https://github.com/jolars/moloch/compare/v0.4.0...v0.5.0) (2024-10-30)
+
+
+### Features
+
+* replace `\vfill` with `\vfil` in title frame ([8f2a59e](https://github.com/jolars/moloch/commit/8f2a59e239cf0ae32f1a5c8fbf6ad739fa1cd328))
+* switch from fill to fil ([#21](https://github.com/jolars/moloch/issues/21)) ([873ae15](https://github.com/jolars/moloch/commit/873ae154824ed10d45f05c6efe4c4cc73eca1a22))
+
+
+### Bug Fixes
+
+* remove duplicated footnote color specifications ([#26](https://github.com/jolars/moloch/issues/26)) ([1306af5](https://github.com/jolars/moloch/commit/1306af5a73e0a030ece2ad9825496cc28507ad54))
+* remove extra space below progressbar section pages ([#27](https://github.com/jolars/moloch/issues/27)) ([e5be480](https://github.com/jolars/moloch/commit/e5be4806ab9b975be8e8f67434c80fd2155e30b2))
+* set use=block title in block body for fill ([e8921a6](https://github.com/jolars/moloch/commit/e8921a69642166ef22b9b27cd3633a735c22f153)), closes [#28](https://github.com/jolars/moloch/issues/28)
+* tag files with date ([28003e7](https://github.com/jolars/moloch/commit/28003e7502ce420a0e24b96e27ba3d30b9b0ecbc))
+
## [0.4.0](https://github.com/jolars/moloch/compare/v0.3.0...v0.4.0) (2024-07-09)
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx
index f0f644acbd..fc062ff453 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx
@@ -14,7 +14,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamercolorthememoloch}[2024-07-09 v0.4.0 Moloch color theme] % x-release-please-version
+\ProvidesPackage{beamercolorthememoloch}[2024-10-30 v0.5.0 Moloch color theme] % x-release-please-version
%</package>
% \fi
% \CheckSum{0}
@@ -191,6 +191,7 @@
bg=normal text.bg!80!fg
}
\setbeamercolor{block body}{%
+ use=block title,
bg=block title.bg!50!normal text.bg
}
\setbeamercolor{block title alerted}{%
@@ -223,14 +224,6 @@
\setbeamercolor{footnote mark}{fg=.}
% \end{macrocode}
%
-%
-% Footnotes
-%
-% \begin{macrocode}
-\setbeamercolor{footnote}{fg=normal text.fg!90}
-\setbeamercolor{footnote mark}{fg=.}
-% \end{macrocode}
-%
% We also reset the bibliography colors in order to pick up the surrounding
% colors at the time of use. This prevents us having to set the correct color in
% normal and standout mode.
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx
index cc3396fe47..d2ca10a973 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx
@@ -14,7 +14,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerfontthememoloch}[2024-07-09 v0.4.0 Moloch font theme] % x-release-please-version
+\ProvidesPackage{beamerfontthememoloch}[2024-10-30 v0.5.0 Moloch font theme] % x-release-please-version
%</package>
% \fi
% \CheckSum{0}
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx
index 9815a0995f..384da28ac1 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx
@@ -14,7 +14,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerinnerthememoloch}[2024-07-09 v0.4.0 Moloch inner theme] % x-release-please-version
+\ProvidesPackage{beamerinnerthememoloch}[2024-10-30 v0.5.0 Moloch inner theme] % x-release-please-version
%</package>
% \fi
% \CheckSum{0}
@@ -113,7 +113,7 @@
\setbeamertemplate{title page}{
\begin{minipage}[b][\paperheight]{\textwidth}
\null%
- \vfill%
+ \vfil%
\ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi
\ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
\ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
@@ -123,7 +123,7 @@
}
\ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi
\ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
- \vfill
+ \vfil%
\null
\end{minipage}%
}
@@ -352,7 +352,7 @@
(0,0)
rectangle
(\moloch@progressonsectionpage, \moloch@progressonsectionpage@linewidth);
- \end{tikzpicture}
+ \end{tikzpicture}%
\tikzexternalenable%
}
% \end{macrocode}
@@ -387,11 +387,9 @@
% \subsubsection{Footnotes}
% \begin{macrocode}
\setbeamertemplate{footnote}{%
- \parindent 0em\noindent%
- \raggedright
- \usebeamercolor{footnote}%
- \hbox to 0.8em{\hfil\insertfootnotemark}%
- \insertfootnotetext\par%
+ \parindent 0em\noindent\raggedright \usebeamercolor{footnote}\hbox to
+ 0.8em{\hfil\insertfootnotemark}\insertfootnotetext%%%
+ \par%
}
% \end{macrocode}
%
@@ -409,8 +407,8 @@
%
% \begin{macrocode}
\define@key{beamerframe}{c}[true]{% centered
- \beamer@frametopskip=0pt plus 1fill\relax%
- \beamer@framebottomskip=0pt plus 1fill\relax%
+ \beamer@frametopskip=0pt plus 1fil\relax%
+ \beamer@framebottomskip=0pt plus 1fil\relax%
\beamer@frametopskipautobreak=0pt plus .4\paperheight\relax%
\beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
\def\beamer@initfirstlineunskip{}%
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx
index a0ce0af580..b981d4ca89 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx
@@ -14,7 +14,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerouterthememoloch}[2024-07-09 v0.4.0 Moloch outer theme] % x-release-please-version
+\ProvidesPackage{beamerouterthememoloch}[2024-10-30 v0.5.0 Moloch outer theme] % x-release-please-version
%</package>
% \fi
% \CheckSum{0}
@@ -167,7 +167,7 @@
\totalheightof{%
\ifcsdef{moloch@frametitleformat}{\moloch@frametitleformat X}{X}%
}%
-}%
+ }%
}
\newcommand{\moloch@frametitlestrut@end}{%
@@ -178,7 +178,7 @@
\begin{beamercolorbox}[%
wd=\paperwidth,%
leftskip=1.6ex,%
- rightskip=\the\glueexpr 1.6ex plus 1fill\relax,%
+ rightskip=\the\glueexpr 1.6ex plus 1fil\relax,%
]{frametitle}%
\usebeamerfont{frametitle}%
\moloch@frametitlestrut@start%
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx
index e6447ec791..d4d38fa126 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx
@@ -12,7 +12,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthememoloch}[2024-07-09 v0.4.0 Moloch Beamer theme] % x-release-please-version
+\ProvidesPackage{beamerthememoloch}[2024-10-30 v0.5.0 Moloch Beamer theme] % x-release-please-version
%</package>
% \fi
% \CheckSum{0}
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf
index 15f0652a6a..c9e34d1475 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex
index c8300607be..2951df5927 100644
--- a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex
@@ -82,7 +82,7 @@
\newcommand{\themename}{\textsf{moloch}\xspace}
-\def\molochversion{0.4.0} % x-release-please-version
+\def\molochversion{0.5.0} % x-release-please-version
\usepackage{readprov}
% \ReadPackageInfos{beamerthememoloch}
@@ -114,7 +114,7 @@ slide or to the section slides.
If you have any issues, find mistakes in the manual or want to help make
the theme even better, please get in touch there.
-\themename is a fork of the popular Metroplis theme by Matthias Vogelgesang.
+\themename is a fork of the popular Metropolis theme by Matthias Vogelgesang.
The motivation for the fork was to fix some longstanding bugs in Metropolis
and also simplify the codebase to make it easier to maintain and less
fragile to changes in the underlying Beamer code.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/CHANGELOG.md b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/CHANGELOG.md
index 12b4e2fc39..8cd88da0b3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/CHANGELOG.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/CHANGELOG.md
@@ -2,6 +2,18 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
+## [4.0] 2024-07-04
+
+### Added
+- Compliance with NBR10520:2023
+- Added tests for NBR6023:2018
+
+### Fixed
+- Fix -abnt-abnt suffix warning
+
+### Changed
+- Removed chevron from urls
+- Italicizes "S. l.", "s. n.", "In" and "et al"
## [3.4] - 2018-11-17
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/README.md
index 1a30b5fcba..a88503c139 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/README.md
@@ -7,13 +7,13 @@
BibLaTeX style for Brazil's ABNT (Brazilian Association of Technical Standards)
rules.
-Version 3.4
+Version 4.0
---
Estilo para BibLaTeX compatível com as normas da ABNT.
-Versão 3.4
+Versão 4.0
---
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/bibtex/bib/biblatex-abnt/NBR6023-2018.bib b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/bibtex/bib/biblatex-abnt/NBR6023-2018.bib
new file mode 100644
index 0000000000..d17e1d444c
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/bibtex/bib/biblatex-abnt/NBR6023-2018.bib
@@ -0,0 +1,3242 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+% section 7 >>>1
+
+% Section 7.1 >>>2
+
+@book{gomes1998a,
+ keywords = {7.1},
+ author = {L. G. F. F Gomes},
+ title = {Novela e sociedade no Brasil},
+ location = {Niterói},
+ publisher = {EdUFF},
+ date = {1998},
+}
+
+@book{gomes1998b,
+ keywords = {7.1},
+ author = {L. G. F. F Gomes},
+ title = {Novela e sociedade no Brasil},
+ location = {Niterói},
+ publisher = {EdUFF},
+ date = {1998},
+ pagetotal = {137},
+ dimensions = {21~cm},
+ series = {Coleção Antropologia e Ciência Política},
+ number = {15},
+ note = {Bibliografia: p. 131-132},
+ isbn = {85-228-0268-8},
+}
+
+@book{perfil1994,
+ keywords = {7.1},
+ title = {Perfil da administração pública paulista},
+ edition = {6},
+ location = {São Paulo},
+ publisher = {\mkbibacro{FUNDAP}},
+ date = {1994},
+ pagetotal = {317},
+ note = {Inclui índice},
+ isbn = {85-7285-026-0},
+}
+
+@booklet{ibict1993,
+ keywords = {7.1},
+ author = {\mkbibacro{IBICT}},
+ title = {Manual de normas de editoração do {\mkbibacro{IBICT}}},
+ edition = {2},
+ location = {Brasília, DF},
+ date = {1993},
+ pagetotal = {41},
+}
+
+@book{houaiss1996,
+ keywords = {7.1},
+ editor = {Antonio Houaiss},
+ title = {Novo dicionário {Folha Webster's}},
+ subtitle = {inglês/português, português/inglês},
+ titleaddon = {Co-editor Ismael Cardim},
+ location = {São Paulo},
+ publisher = {Folha da Manhã},
+ date = {1996},
+ note = {Edição exclusiva para o assinante da Folha de S.
+ Paulo},
+ % editora = {Ismael Cardim},
+ % editoratype = {coeditor},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`, mas eles sempre imprimem o verbo no infinitivo seguido de
+ % dois pontos, enquanto a ABNT apresenta esse tipo de informação cada vez
+ % de um jeito (e.g., "Co-editor Fulano de Tal", "Direção artística: Fulano
+ % de Tal", "Ilustrações de Fulano de Tal", "Organização por Fulano de
+ % Tal").
+}
+
+@book{brasil1995,
+ keywords = {7.1},
+ title = {Brasil},
+ subtitle = {roteiros turísticos},
+ location = {São Paulo},
+ publisher = {Folha da Manhã},
+ date = {1995},
+ pagetotal = {319},
+ illustrated = {il.},
+ series = {Roteiros turísticos Fiat},
+ note = {Inclui mapa rodoviário},
+}
+
+@manual{saopaulo1989,
+ keywords = {7.1},
+ author = {{São Paulo}},
+ authortype = {Estado},
+ nameaddon = {Secretaria do Meio Ambiente.
+ Coordenadoria de Planejamento Ambiental.},
+ title = {Estudo de impacto ambiental -- \mkbibacro{EIA},
+ Relatório de Impacto Ambiental -- \mkbibacro{RIMA}},
+ subtitle = {manual de orientação},
+ location = {São Paulo},
+ date = {1989},
+ pagetotal = {48},
+ series = {Série Manuais},
+}
+
+@manual{museu1997,
+ keywords = {7.1},
+ author = {{Museu da Imigração\nopunct}},
+ nameaddon = {(São Paulo, SP)},
+ title = {Museu da Imigração -- S. Paulo},
+ subtitle = {catálogo},
+ location = {São Paulo},
+ date = {1997},
+ pagetotal = {16},
+ % Para que o "(São Paulo, SP)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "São Paulo" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos.
+}
+
+@manual{instituto1997,
+ keywords = {7.1},
+ author = {{Instituto Moreira Salles}},
+ title = {São Paulo de Vincenzo Pastore},
+ subtitle = {fotografias: de 26 de abril a 3 de agosto de 1997,
+ Casa da cultura de Poços de Caldas, Poços de Caldas,
+ MG},
+ date = {1997},
+ note = {1 folder. Apoio Ministério da Cultura:
+ Lei Federal de Incentivo à Cultura},
+}
+
+@book{torelly1991,
+ keywords = {7.1},
+ author = {M. Torelly},
+ title = {Almanaque para 1949},
+ subtitle = {primeiro semestre ou Almanaque d'A Manhã},
+ edition = {Ed. fac-sim},
+ location = {São Paulo},
+ publisher = {Studioma: Arquivo do Estado},
+ date = {1991},
+ series = {Coleção Almanaques do Barão de Itararé},
+ note = {Contém iconografia e depoimentos sobre o autor},
+}
+
+@book{mey1987,
+ keywords = {7.1},
+ author = {Eliane Serrão Alves Mey},
+ title = {Catalogação e descrição bibliográfica},
+ subtitle = {contribuições a uma teoria},
+ date = {1987},
+ publisher = {\mkbibacro{ABDF}},
+ location = {Brasília, DF},
+ note = {Originalmente apresentada como dissertação de mestrado,
+ Universidade de Brasília, 1986},
+}
+
+% <<<
+
+% section 7.2 >>>2
+
+@book{koogan1998,
+ keywords = {7.2},
+ editor = {André Koogan and Antonio Houaiss},
+ title = {Enciclopédia e dicionário digital 98},
+ titleaddon = {Direção geral de André Koogan Breikman},
+ location = {São Paulo},
+ publisher = {Delta: Estadão},
+ date = {1998},
+ note = {5 \mkbibacro{CD-ROM}},
+ % editora = {André Koogan Breikman},
+ % editoratype = {gendir},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+@book{alves2000,
+ keywords = {7.2},
+ author = {Castro Alves},
+ title = {Navio Negreiro},
+ date = {2000},
+ publisher = {Virtual Books},
+ url = {http://www.terra.com.br/virtualbooks/
+ freebook/port/Lport2/navionegreiro.htm},
+ addendum = {Acesso em: 10 jan. 2002, 16:30:30},
+ % urldate = {2002-01-10},
+ % É necessário colocar a data no campo `addendum` pra incluir o horário,
+ % como no manual. O ideal seria usar o campo `urldate`.
+}
+
+% <<<
+
+% section 7.3 >>>2
+
+@incollection{romano1996a,
+ keywords = {7.3},
+ author = {Giovanni Romano},
+ title = {Imagens da juventude na era moderna},
+ editor = {G. Levi and J. Schmidt},
+ editortype = {organizer},
+ booktitle = {História dos jovens 2},
+ location = {São Paulo},
+ publisher = {Companhia das Letras},
+ date = {1996},
+ pages = {7-16},
+}
+
+@inbook{santos1994a,
+ keywords = {7.3},
+ author = {F. R. dos Santos},
+ title = {A colonização da terra do Tucujús},
+ booktitle = {História do Amapá, 1º grau},
+ bookauthor = {F. R. dos Santos},
+ edition = {2},
+ location = {Macapá},
+ publisher = {Valcan},
+ date = {1994},
+ chapter = {3},
+}
+
+@incollection{romano1996b,
+ keywords = {7.3},
+ author = {Giovanni Romano},
+ title = {Imagens da juventude na era moderna},
+ editor = {G. Levi and J. Schmidt},
+ editortype = {organizer},
+ booktitle = {História dos jovens 2},
+ booksubtitle = {a época contemporânea},
+ location = {São Paulo},
+ publisher = {Companhia das Letras},
+ date = {1996},
+ pages = {7-16},
+}
+
+@inbook{santos1994b,
+ keywords = {7.3},
+ author = {F. R. dos Santos},
+ title = {A colonização da terra do Tucujús},
+ booktitle = {História do Amapá, 1º grau},
+ bookauthor = {F. R. dos Santos},
+ edition = {2},
+ location = {Macapá},
+ publisher = {Valcan},
+ date = {1994},
+ chapter = {3},
+ pages = {15-24},
+}
+
+% <<<
+
+% section 7.4 >>>2
+
+@incollection{morfologia1998,
+ keywords = {7.4},
+ title = {Morfologia dos artrópodes},
+ booktitle = {Enciclopédia multimídia dos seres vivos},
+ publisher = {Planeta DeAgostini},
+ year = {c1998},
+ sortyear = {1998},
+ note = {\mkbibacro{CD-ROM} 9},
+}
+
+@inbook{politica1998,
+ keywords = {7.4},
+ title = {Política},
+ booktitle = {Dicionário da língua portuguesa},
+ location = {Lisboa},
+ publisher = {Priberam Informática},
+ date = {1998},
+ url = {http://www.priberam.pt/dlDLPO},
+ urldate = {1999-03-08},
+}
+
+@inbook{saopaulo1999,
+ keywords = {7.4},
+ author = {{São Paulo}},
+ authortype = {Estado},
+ nameaddon = {Secretaria do Meio Ambiente},
+ title = {Tratados e organizações ambientais
+ em matéria de meio ambiente},
+ booktitle = {Entendendo o meio ambiente},
+ bookauthor = {{São Paulo}},
+ location = {São Paulo},
+ date = {1999},
+ volume = {1},
+ url = {http://www.bdt.org.br/sma/entendendo/atual.htm},
+ urldate = {1999-03-08},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.5 >>>2
+
+@periodical{revista1939a,
+ keywords = {7.5.1},
+ title = {Revista Brasileira de Geografia},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{IBGE}},
+ year = {1939-\nopunct},
+ sortyear = {1939},
+}
+
+@periodical{revista1939b,
+ keywords = {7.5.1},
+ title = {Revista Brasileira de Geografia},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{IBGE}},
+ note = {Trimestral. Absorveu Boletim Geográfico, do
+ \mkbibacro{IBGE}. Índice acumulado. 1939-1983},
+ year = {1939-~.},
+ sortyear = {1939},
+ issn = {0034-723X},
+}
+
+@book{boletim1943,
+ keywords = {7.5.1},
+ author = {{Boletim Geográfico}},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{IBGE}},
+ date = {1943/1978},
+ note = {Trimestral},
+}
+
+@periodical{saopaulo1941a,
+ keywords = {7.5.1},
+ title = {São Paulo Medical Journal},
+ location = {São Paulo},
+ publisher = {Associação Paulista de Medicina},
+ year = {1941-~.},
+ sortyear = {1941},
+ note = {Bimensal},
+ issn = {0035-0362},
+}
+
+@periodical{dinheiro2000a,
+ keywords = {7.5.2},
+ title = {Dinheiro},
+ location = {São Paulo},
+ publisher = {Ed. Três},
+ issue = {148},
+ date = {2000-06-28},
+}
+
+@periodical{dinheiro2000b,
+ keywords = {7.5.2},
+ title = {Dinheiro},
+ subtitle = {revista semanal de negócios},
+ location = {São Paulo},
+ publisher = {Ed. Três},
+ issue = {148},
+ date = {2000-06-28},
+ pagetotal = {98},
+}
+
+@article{as5001984,
+ keywords = {7.5.3},
+ title = {As 500 maiores empresas do Brasil},
+ journaltitle = {Conjuntura Econômica},
+ location = {Rio de Janeiro},
+ volume = {38},
+ number = {9},
+ date = {1984-09},
+ note = {Edição Especial},
+}
+
+@article{maodeobra1983,
+ keywords = {7.5.3},
+ title = {Mão-de-obra e previdência},
+ journaltitle = {Pesquisa Nacional por amostra de domicílios},
+ location = {Rio de Janeiro;\nopunct},
+ volume = {7},
+ date = {1983},
+ note = {Suplemento},
+ % Nesta entrada, ao contrário de todas as outras, a ABNT usa um ponto e
+ % vírgula após o local, em vez de uma vírgula.
+}
+
+@article{costa1998a,
+ keywords = {7.5.3},
+ author = {V. R. Costa},
+ title = {À Margem da lei},
+ journaltitle = {Em Pauta},
+ location = {Rio de Janeiro},
+ number = {12},
+ pages = {131-148},
+ date = {1998},
+}
+
+@article{gurgel1997,
+ keywords = {7.5.3},
+ author = {C. Gurgel},
+ title = {Reforma do estado e segurança pública},
+ journaltitle = {Política e administração},
+ location = {Rio de Janeiro},
+ volume = {3},
+ number = {2},
+ pages = {15-21},
+ date = {1997-09},
+}
+
+@article{tourinho1997,
+ keywords = {7.5.3},
+ author = {Tourinho Neto, F. C.},
+ title = {Dano ambiental},
+ journaltitle = {Consulex},
+ location = {Brasília, DF},
+ volume = {ano~1},
+ number = {1},
+ pages = {18-23},
+ date = {1997-02},
+}
+
+@article{mansilla1998a,
+ keywords = {7.5.3},
+ author = {Tourinho Neto, F. C.},
+ author = {H. C. F. Mansilla},
+ title = {La controversia entre universalismo y particularismo
+ en la filosofia de la cultura},
+ journaltitle = {Revista Latinoamericana de Filosofia},
+ location = {Buenos Aires},
+ volume = {24},
+ number = {2},
+ issue = {primavera},
+ year = {1998},
+}
+
+@article{sekeff2002,
+ keywords = {7.5.3},
+ author = {Gisela Sekeff},
+ title = {O emprego dos sonhos},
+ journaltitle = {Domingo},
+ location = {Rio de Janeiro},
+ volume = {ano 26},
+ number = {1344},
+ pages = {30-36},
+ date = {2002-02-03},
+}
+
+@article{costa1998b,
+ keywords = {7.5.3},
+ author = {V. R. Costa},
+ title = {À Margem da lei},
+ subtitle = {o Programa Comunidade Solidária},
+ journaltitle = {Em Pauta},
+ journalsubtitle = {Revista da Faculdade de Serviço Social
+ da \mkbibacro{UERJ}},
+ location = {Rio de Janeiro},
+ number = {12},
+ pages = {131-148},
+ date = {1998},
+}
+
+@article{vieira1994,
+ keywords = {7.5.4},
+ author = {Cássio Leite Vieira and Marcelo Lopes},
+ title = {A queda do cometa},
+ journaltitle = {Neo Interativa},
+ location = {Rio de Janeiro},
+ number = {2},
+ issue = {inverno},
+ year = {1994},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@article{silva1998a,
+ keywords = {7.5.4},
+ author = {M. M. L. Silva},
+ title = {Crimes da era digital},
+ journaltitle = {.Net},
+ location = {Rio de Janeiro},
+ date = {1998-11},
+ note = {Seção Ponto de Vista},
+ url = {http://www.brazilnet.com.br/
+ contexts/brasilrevistas.htm},
+ urldate = {1998-11-28},
+}
+
+@article{ribeiro1998,
+ keywords = {7.5.4},
+ author = {P. S. G. Ribeiro},
+ title = {Adoção à brasileira},
+ subtitle = {uma análise sócio-jurídica},
+ journaltitle = {Dataveni@},
+ location = {São Paulo},
+ volume = {ano 3},
+ number = {18},
+ date = {1998-08},
+ url = {http://www.datavenia.inf.br/frameartig.html},
+ urldate = {1998-09-10},
+}
+
+@article{windows1998,
+ keywords = {7.5.4},
+ title = {Windows 98},
+ subtitle = {o melhor caminho para atualização},
+ journaltitle = {\mkbibacro{PC} World},
+ location = {São Paulo},
+ number = {75},
+ date = {1998-09},
+ url = {http://www.idg.com.br/abre.htm},
+ urldate = {1998-09-10},
+}
+
+@article{costura1997,
+ keywords = {7.5.5},
+ title = {Costura $\times$ \mkbibacro{P.U.R.}},
+ journaltitle = {Aldus},
+ location = {São Paulo},
+ volume = {ano 1},
+ number = {1},
+ date = {1997-11},
+ note = {Encarte técnico, p. 8},
+}
+
+@article{naves1999,
+ keywords = {7.5.5},
+ author = {P. Naves},
+ title = {Lagos andinos dão banho de beleza},
+ journaltitle = {Folha de S. Paulo},
+ location = {São Paulo},
+ date = {1999-06-28},
+ note = {Folha Turismo, Caderno 8, p. 13},
+}
+
+@article{leal1999,
+ keywords = {7.5.5},
+ author = {L. N. Leal},
+ title = {\mkbibacro{MP} fiscaliza com autonomia total},
+ journaltitle = {Jornal do Brasil},
+ location = {Rio de Janeiro},
+ pages = {3},
+ date = {1999-04-25},
+}
+
+@article{paiva2002,
+ keywords = {7.5.5},
+ author = {Anabela Paiva},
+ title = {Trincheira musical},
+ subtitle = {músico dá lições de cidadania em forma de samba
+ para crianças e adolescentes},
+ journaltitle = {Jornal do Brasil},
+ location = {Rio de Janeiro},
+ pages = {2},
+ date = {2002-01-12},
+}
+
+@article{silva1998b,
+ keywords = {7.5.6},
+ author = {Ives Gandra da Silva},
+ title = {Pena de morte para o nasciturno},
+ journaltitle = {O Estado de S. Paulo},
+ location = {São Paulo},
+ date = {1998-09-19},
+ url = {http://www.providafamilia.org/
+ pena_morte_nasciturno.htm},
+ urldate = {1998-09-19},
+}
+
+@article{kelly1996,
+ keywords = {7.5.6},
+ author = {R. Kelly},
+ title = {Electronic publishing at \mkbibacro{APS}},
+ subtitle = {its not just online journalism},
+ journaltitle = {\mkbibacro{APS} News Online},
+ location = {Los Angeles},
+ issue = {{Nov}\adddot},
+ year = {1996},
+ url = {http://www.aps.org/apsnews/1196/11965.html},
+ urldate = {1998-11-25},
+ % Aqui, excepcionalmente, a ABNT coloca o mês com a inicial em maiúscula
+ % ("Nov."), por isso é preciso colocá-lo escrito literalmente. O ideal
+ % seria usar `date = {1996-11}`.
+}
+
+@article{arranjo1998,
+ keywords = {7.5.6},
+ title = {Arranjo tributário},
+ journaltitle = {Diário do Nordeste Online},
+ location = {Fortaleza},
+ date = {1998-11-27},
+ url = {http://www.diariodonordeste.com.br},
+ urldate = {1998-11-28},
+}
+
+% <<<
+
+% section 7.6 >>>2
+
+@proceedings{iufrost1984,
+ keywords = {7.6.1},
+ eventtitle = {IUFROST International Symposium on Chemical Changes
+ During Food Processing},
+ title = {Proceedings [\ldots]},
+ eventdate = {1984},
+ venue = {Valencia},
+ date = {1984},
+ location = {Valencia},
+ publisher = {Instituto de Agroquímica y Tecnología de Alimentos},
+}
+
+@proceedings{reuniao1997,
+ keywords = {7.6.2},
+ eventtitle = {Reunião Anual da Sociedade Brasileira de Química},
+ number = {20},
+ eventdate = {1997},
+ venue = {Poços de Caldas},
+ title = {Química},
+ subtitle = {academia, indústria, sociedade: livro de resumos},
+ location = {São Paulo},
+ publisher = {Sociedade Brasileira de Química},
+ date = {1997},
+}
+
+@proceedings{congresso1996,
+ keywords = {7.6.3},
+ organization = {Congresso de Iniciação Científica da {UFPe}},
+ number = {4},
+ eventdate = {1996},
+ venue = {Recife},
+ title = {Anais eletrônicos [\ldots]},
+ location = {Recife},
+ publisher = {UFPe},
+ date = {1996},
+ url = {http://www.propesq.ufpe.br/anais/anais.htm},
+ urldate = {1997-01-21},
+}
+
+% <<<
+
+% section 7.7 >>>2
+
+@inproceedings{brayner1994,
+ keywords = {7.7.1},
+ author = {A. R. A. Brayner and C. B. Medeiros},
+ title = {Incorporação do tempo em
+ \mkbibacro{SGDB} orientado a objetos},
+ eventtitle = {Simpósio Brasileiro de Banco de Dados},
+ number = {9},
+ eventdate = {1994},
+ venue = {São Paulo},
+ booktitle = {Anais [\ldots]},
+ location = {São Paulo},
+ publisher = {\mkbibacro{USP}},
+ date = {1994},
+ pages = {16-29},
+}
+
+@inproceedings{souza1994,
+ keywords = {7.7.1},
+ author = {L. S. Souza and A. L. Borges and J. O. Rezende},
+ title = {Influência da correção e do preparo do solo sobre
+ algumas propriedades químicas do solo cultivado com
+ bananeiras},
+ eventtitle = {Reunião Brasileira de Fertilidade do Solo
+ e Nutrição de Plantas},
+ number = {21},
+ eventdate = {1994},
+ venue = {Petrolina},
+ booktitle = {Anais [\ldots]},
+ location = {Petrolina},
+ publisher = {\mkbibacro{EMBRAPA}, \mkbibacro{CPATSA}},
+ date = {1994},
+ pages = {3-4},
+}
+
+@inproceedings{martin1997,
+ keywords = {7.7.2},
+ author = {Martin Neto, L. and C. Bayer and J. Mielniczuk},
+ title = {Alterações qualitativas da matéria orgânica
+ e os fatores determinantes da sua estabilidade
+ num solo podzólico vermelho-escuro
+ em diferentes sistemas de manejo},
+ eventtitle = {Congresso Brasileiro de Ciência do Solo},
+ number = {26},
+ eventdate = {1997},
+ venue = {Rio de Janeiro},
+ booktitle = {Resumos [\ldots]},
+ location = {Rio de Janeiro},
+ publisher = {Sociedade Brasileira de Ciência do Solo},
+ date = {1997},
+ note = {p. 443, ref. 6-141},
+ % pages = {443},
+ % As páginas foram acrescentadas ao campo `note` para que fiquem
+ % separadas do restante por uma vírgula, como está no manual
+ % (de modo inconsistente). O ideal seria usar o campo `pages`.
+}
+
+@inproceedings{guncho1998,
+ keywords = {7.7.3},
+ author = {M. R. Guncho},
+ title = {A educação à distância e a biblioteca universitária},
+ eventtitle = {Seminário de Bibliotecas Universitárias},
+ number = {10},
+ eventdate = {1998},
+ venue = {Fortaleza},
+ booktitle = {Anais [\ldots]},
+ location = {Fortaleza},
+ publisher = {Tec Treina},
+ date = {1998},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@inproceedings{silva1996a,
+ keywords = {7.7.3},
+ author = {R. N. Silva and R. Oliveira},
+ title = {Os limites pedagógicos do paradigma
+ da qualidade total na educação},
+ eventtitle = {Congresso de Iniciação Científica da {UFPe}},
+ number = {4},
+ eventdate = {1996},
+ venue = {Recife},
+ booktitle = {Anais eletrônicos [\ldots]},
+ location = {Recife},
+ publisher = {UFPe},
+ date = {1996},
+ url = {http://www.propesq.ufpe.br/anais/anais/educ/ce04.htm},
+ urldate = {1997-01-21},
+}
+
+@inproceedings{sabroza1998,
+ keywords = {7.7.3},
+ author = {P. C. Sabroza},
+ title = {Globalização e saúde},
+ subtitle = {impacto nos perfis epidemiológicos das populações},
+ eventtitle = {Congresso Brasileiro de Epidemiologia},
+ number = {4},
+ eventdate = {1998},
+ venue = {Rio de Janeiro},
+ booktitle = {Anais eletrônicos [\ldots]},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{ABRASCO}},
+ date = {1998},
+ note = {Mesa-redonda},
+ url = {http://www.abrasco.com.br/epirio98/},
+ urldate = {1999-01-17},
+}
+
+@inproceedings{krzyzanowski1996,
+ keywords = {7.7.3},
+ author = {R. F. Krzyzanowski},
+ title = {Valor agregado no mundo da informação},
+ subtitle = {um meio de criar novos espaços competitivos
+ a partir da tecnologia da informação e melhor
+ satisfazer às necessidades dos clientes/usuários},
+ eventtitle = {Congresso Regional de Informação em Ciências da Saúde},
+ number = {3},
+ eventdate = {1996},
+ venue = {Rio de Janeiro},
+ booktitle = {Interligações da tecnologia da informação},
+ booksubtitle = {um elo futuro},
+ url = {http://www.bireme.br/cgi-bin/crics3/
+ texto?titulo=VALOR+AGREGADO+NO+MUNDO},
+ urldate = {1999-01-26},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.8 >>>2
+
+@patent{embrapa1989,
+ keywords = {7.8},
+ holder = {{Embrapa}},
+ nameaddon = {Unidade de Apoio, Pesquisa e Desenvolvimento
+ de Instrumentação Agropecuária (São Carlos, SP)},
+ author = {Paulo Estevão Cruvinel},
+ title = {Medidor digital multisensorial
+ de temperatura para solos},
+ number = {BR n. \mkbibacro{PI} 8903105-9},
+ note = {26 jun. 1989, 30 maio 1995},
+}
+
+% <<<
+
+% section 7.9 >>>2
+
+@legislation{saopaulo1998a,
+ keywords = {7.9.1},
+ author = {{São Paulo}},
+ authortype = {Estado},
+ title = {Decreto nº 42.822, de 20 de janeiro de 1998},
+ journaltitle = {Lex},
+ journalsubtitle = {coletânea de legislação e jurisprudência},
+ location = {São Paulo},
+ volume = {62},
+ number = {3},
+ pages = {217-220},
+ date = {1998},
+}
+
+@legislation{brasil1997a,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Medida provisória nº 1.569-9, de 11 de dezembro de
+ 1997},
+ journaltitle = {Diário Oficial [da] República Federativa do Brasil},
+ publisher = {Poder Executivo},
+ location = {Brasília, DF},
+ date = {1997-12-14},
+ note = {Seção~1, p.~29514},
+}
+
+@legislation{brasil1943a,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Decreto-lei nº 5.452, de 1 de maio de 1943},
+ journaltitle = {Lex},
+ journalsubtitle = {Coletânea de legislação: edição federal},
+ location = {São Paulo},
+ volume = {7},
+ date = {1943},
+ note = {Suplemento},
+}
+
+@book{brasil1995a,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Código civil},
+ edition = {46},
+ location = {São Paulo},
+ publisher = {Saraiva},
+ date = {1995},
+}
+
+@legislation{brasil1991a,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ nameaddon = {Congresso. Senado},
+ title = {Resolução nº 17, de 1991},
+ journaltitle = {Coleção de leis da República Federativa do Brasil},
+ location = {Brasília, DF},
+ volume = {183},
+ pages = {1156-1157},
+ issue = {maio/jun.},
+ year = {1991},
+}
+
+@legislation{brasil1966a,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ nameaddon = {Constituição (1988)},
+ title = {Emenda constitucional nº 9, de 9 de novembro de 1995},
+ location = {São Paulo},
+ volume = {59},
+ pages = {1966},
+ journaltitle = {Lex},
+ journalsubtitle = {legislação federal e marginália},
+ issue = {out./dez.},
+ date = {1995},
+}
+
+@legislation{saopaulo1998b,
+ keywords = {7.9.1},
+ author = {{São Paulo}},
+ authortype = {Estado},
+ title = {Decreto nº 42.822, de 20 de janeiro de 1998.
+ Dispõe sobre a desativação de unidades
+ administrativas de órgãos da administração
+ direta e das autarquias do Estado
+ e dá providências correlatas},
+ journaltitle = {Lex},
+ journalsubtitle = {coletânea de legislação e jurisprudência},
+ location = {São Paulo},
+ volume = {62},
+ number = {3},
+ pages = {217-220},
+ date = {1998},
+}
+
+@legislation{brasil1997b,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Medida provisória nº 1.569-9, de 11 de dezembro de
+ 1997.
+ Estabelece multa em operações de importação,
+ e dá outras providências.},
+ journaltitle = {Diário Oficial [da] República Federativa do Brasil},
+ publisher = {Poder Executivo},
+ location = {Brasília, DF},
+ date = {1997-12-14},
+ note = {Seção~1, p.~29514},
+}
+
+@legislation{brasil1943b,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Decreto-lei nº 5.452, de 1 de maio de 1943.
+ Aprova a consolidação das leis do trabalho},
+ journaltitle = {Lex},
+ journalsubtitle = {coletânea de legislação: edição federal},
+ location = {São Paulo},
+ volume = {7},
+ date = {1943},
+ note = {Suplemento},
+}
+
+@book{brasil1995b,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ title = {Código civil},
+ titleaddon = {Organização dos textos, notas remissivas e índices
+ por Juarez de Oliveira},
+ edition = {46},
+ location = {São Paulo},
+ publisher = {Saraiva},
+ date = {1995},
+}
+
+@legislation{brasil1991b,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ nameaddon = {Congresso. Senado},
+ title = {Resolução nº 17, de 1991. Autoriza o desbloqueio
+ de Letras Financeiras do Tesouro do Estado do Rio
+ Grande do Sul, através de revogação do parágrafo
+ 2º, do artigo 1º da Resolução nº 72, de 1990},
+ journaltitle = {Coleção de leis da República Federativa do Brasil},
+ location = {Brasília, DF},
+ volume = {183},
+ pages = {1156-1157},
+ issue = {maio/jun.},
+ year = {1991},
+}
+
+@legislation{brasil1966b,
+ keywords = {7.9.1},
+ author = {{Brasil}},
+ nameaddon = {Constituição (1988)},
+ title = {Emenda constitucional nº 9, de 9 de novembro de 1995.
+ Dá nova redação ao art. 177 da Constituição Federal,
+ alterando e inserindo parágrafos},
+ location = {São Paulo},
+ volume = {59},
+ pages = {1966},
+ journaltitle = {Lex},
+ journalsubtitle = {legislação federal e marginália},
+ issue = {out./dez.},
+ year = {1995},
+}
+
+@inbook{brasil1994a,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Supremo Tribunal de Justiça},
+ title = {Súmula nº 14},
+ booktitle = {Súmulas},
+ bookauthor = {{Brasil}},
+ location = {São Paulo},
+ publisher = {Associação dos Advogados do Brasil},
+ date = {1994},
+ pages = {16},
+ % options = {repeatfields},
+}
+
+@jurisdiction{brasil1998a,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Superior Tribunal de Justiça},
+ title = {\textit{Habeas-corpus} nº 181.636-1, da 6ª Câmera Cível
+ do Tribunal de Justiça do Estado de São Paulo,
+ Brasília, DF, 6 de dezembro de 1994},
+ journaltitle = {Lex},
+ journalsubtitle = {jurisprudência do \mkbibacro{STJ} e Tribunais Regionais
+ Federais},
+ location = {São Paulo},
+ volume = {10},
+ number = {103},
+ pages = {236-240},
+ date = {1998-03},
+}
+
+@jurisdiction{brasil1998b,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Tribunal Regional Federal (5. região)},
+ title = {Apelação cível nº 42.441-PE (94.05.01629-6).
+ Apelante: Edilemos Mamede dos Santos e outros.
+ Apelada: Escola Técnica Federal de Pernambuco.
+ Relator: Juiz Nereu Santos.
+ Recife, 4 de março de 1997},
+ journaltitle = {Lex},
+ journalsubtitle = {jurisprudência do \mkbibacro{STJ} e Tribunais Regionais
+ Federais},
+ location = {São Paulo},
+ volume = {10},
+ number = {103},
+ pages = {558-562},
+ date = {1998-03},
+}
+
+@inbook{brasil1994b,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Supremo Tribunal de Justiça},
+ title = {Súmula nº 14},
+ titleaddon = {Não é admissível por ato administrativo
+ restringir, em razão de idade, inscrição
+ em concurso para cargo público},
+ booktitle = {Súmulas},
+ bookauthor = {{Brasil}},
+ location = {São Paulo},
+ publisher = {Associação dos Advogados do Brasil},
+ date = {1994},
+ pages = {16},
+}
+
+@jurisdiction{brasil1998c,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Superior Tribunal de Justiça. Processual Penal.
+ \textit{Habeas-corpus}. Constrangimento ilegal.},
+ title = {\textit{Habeas-corpus} nº 181.636-1, da 6ª Câmera Cível
+ do Tribunal de Justiça do Estado de São Paulo,
+ Brasília, DF, 6 de dezembro de 1994},
+ journaltitle = {Lex},
+ journalsubtitle = {jurisprudência do \mkbibacro{STJ} e Tribunais Regionais
+ Federais},
+ location = {São Paulo},
+ volume = {10},
+ number = {103},
+ pages = {236-240},
+ date = {1998-03},
+}
+
+@jurisdiction{brasil1998d,
+ keywords = {7.9.2},
+ author = {{Brasil}},
+ nameaddon = {Tribunal Regional Federal (5. região). Administrativo.
+ Escola Técnica Federal. Pagamento de diferenças
+ referente a enquadramento de servidor decorrente
+ de implantação de Plano Único de Classificação e
+ Distribuição de Cargos e Empregos, instituído pela
+ Lei nº 8.270/91. Predominância da lei sobre
+ a portaria},
+ title = {Apelação cível nº 42.441-PE (94.05.01629-6).
+ Apelante: Edilemos Mamede dos Santos e outros.
+ Apelada: Escola Técnica Federal de Pernambuco.
+ Relator: Juiz Nereu Santos.
+ Recife, 4 de março de 1997},
+ journaltitle = {Lex},
+ journalsubtitle = {jurisprudência do \mkbibacro{STJ} e Tribunais Regionais
+ Federais},
+ location = {São Paulo},
+ volume = {10},
+ number = {103},
+ pages = {558-562},
+ date = {1998-03},
+}
+
+@legal{barros1995,
+ keywords = {7.9.3},
+ author = {Raimundo Gomes de Barros},
+ title = {Ministério Público},
+ subtitle = {sua legitimação frente ao Código do Consumidor},
+ journaltitle = {Revista Trimestral de Jurisprudência dos Estados},
+ location = {São Paulo},
+ volume = {19},
+ number = {139},
+ pages = {53-72},
+ date = {1995-08},
+}
+
+@book{legislacao1999,
+ keywords = {7.9.4},
+ title = {Legislação brasileira},
+ subtitle = {normas jurídicas federais,
+ bibliografia brasileira de Direito},
+ edition = {7},
+ location = {Brasília, DF},
+ publisher = {Senado Federal},
+ date = {1999},
+ note = {1 \mkbibacro{CD-ROM}. Inclui resumos padronizados das
+ normas jurídicas editadas entre janeiro de 1946
+ e agosto de 1999, assim como textos integrais de
+ diversas normas},
+}
+
+@inbook{brasil1999a,
+ keywords = {7.9.4},
+ author = {{Brasil}},
+ title = {Regulamento dos benefícios da previdência social},
+ booktitle = {\mkbibacro{SISLEX}: Sistema de Legislação,
+ Jurisprudência e Pareceres da Previdência e Assistência
+ Social},
+ publisher = {\mkbibacro{DATAPREV}},
+ date = {1999},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@legal{brasil1999b,
+ keywords = {7.9.4},
+ author = {{Brasil}},
+ title = {Lei nº 9.887, de 7 de dezembro de 1999. Altera a
+ legislação tributária federal},
+ journaltitle = {Diário Oficial [da] República Federativa do Brasil},
+ location = {Brasília, DF},
+ date = {1999-12-08},
+ url = {http://www.in.gov.br/mp_leis/
+ leis_texto.aps?Id=Lei%209887},
+ urldate = {1999-12-22},
+}
+
+@book{brasil1998e,
+ keywords = {7.9.4},
+ author = {{Brasil}},
+ nameaddon = {Supremo Tribunal Federal},
+ title = {Súmula nº 14},
+ titleaddon = {Não é admissível por ato administrativo restringir, em
+ razão de idade, inscrição em concurso para cargo
+ público},
+ url = {http://www.truenetm.com.br/jurisnet/sumusSTF.html},
+ urldate = {1998-11-29},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.10 >>>2
+
+@movie{osperigos1983a,
+ keywords = {7.10},
+ title = {Os~perigos do uso de tóxicos},
+ titleaddon = {Produção de Jorge Ramos de Andrade},
+ location = {São Paulo},
+ publisher = {\mkbibacro{CERAVI}},
+ date = {1983},
+ note = {1 videocassete},
+ % editora = {Jorge Ramos de Andrade},
+ % editoratype = {producer},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+@movie{osperigos1983b,
+ keywords = {7.10},
+ title = {Os~perigos do uso de tóxicos},
+ titleaddon = {Produção de Jorge Ramos de Andrade. Coordenação de
+ Maria Izabel Azevedo.},
+ location = {São Paulo},
+ publisher = {\mkbibacro{CERAVI}},
+ date = {1983},
+ note = {1 videocassete (30 min), \mkbibacro{VHS}, son.,
+ color.},
+ % editora = {Jorge Ramos de Andrade},
+ % editoratype = {producer},
+ % editorb = {Maria Izabel Azevedo},
+ % editorbtype = {coordinator},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+@movie{central1998,
+ keywords = {7.10},
+ title = {Central do Brasil},
+ titleaddon = {Direção: Walter Salles Júnior. Produção: Martire
+ de Clermont-Tonnerre e Arthur Cohn. Intérpretes:
+ Fernanda Montenegro; Marília Pera; Vinicius de
+ Oliveira; Sônia Lira; Othon Bastos; Matheus
+ Nachtergaele e outros. Roteiro: Marcos Bernstein,
+ João Emanuel Carneiro e Walter Salles Júnior},
+ publisher = {Le Studio Canal; Riofilme; \mkbibacro{MACT}
+ Productions},
+ date = {1998},
+ addendum = {1 bobina cinematográfica (106 min),
+ son., color., 35 mm},
+ % editora = {Walter Salles Júnior},
+ % editoratype = {director},
+ % editorb = {Martire de Clermont-Tonnerre and Artur Cohn},
+ % editorbtype = {producer},
+ % editorc = {Marcos Bernstein and João Emanuel Carneiro and
+ % Walter Salles Júnior},
+ % editorctype = {screenwriter},
+ % O ideal seria usar os campos `editora`, `editoratype` etc. em vez de
+ % `titleaddon`.
+}
+
+@movie{blade1991,
+ keywords = {7.10},
+ title = {Blade Runner},
+ titleaddon = {Direção: Ridley Scott. Produção: Michael Deeley.
+ Intérpretes: Harrison Ford; Rutger Hauer;
+ Sean Young; Edward James Olmos e outros.
+ Roteiro: Hampton Fancher e David Peoples.
+ Música: Vangelis},
+ location = {Los Angeles},
+ publisher = {Warner Brothers},
+ year = {c1991},
+ sortyear = {1991},
+ addendum = {1 \mkbibacro{DVD} (117 min), widescreen, color.
+ Produzido por Warner Video Home. Baseado na novela ``Do
+ androids dream of electric sheep?'' de Philip K. Dick},
+ % editora = {Ridley Scott},
+ % editoratype = {director},
+ % editorb = {Michael Deeley},
+ % editorbtype = {producer},
+ % editorc = {Hampton Fancher and David Peoples},
+ % editorctype = {screenwriter},
+ % O ideal seria usar os campos `editora`, `editoratype` etc. em vez de
+ % `titleaddon`.
+}
+
+% <<<
+
+% section 7.11 >>>2
+
+@image{kobayashi1998a,
+ keywords = {7.11.1},
+ author = {K. Kobayashi},
+ title = {Doença dos xavantes},
+ date = {1980},
+ note = {1 fototografia},
+ options = {noslsn},
+}
+
+@image{kobayashi1998b,
+ keywords = {7.11.2},
+ author = {K. Kobayashi},
+ title = {Doença dos xavantes},
+ date = {1980},
+ note = {1 fotografia, color., 16 cm $\times$ 56 cm},
+ options = {noslsn},
+}
+
+@article{fraipont1998,
+ keywords = {7.11.2},
+ author = {E. Amiclar II Fraipont},
+ journaltitle = {O Estado de S. Paulo},
+ location = {São Paulo},
+ issue = {30 nov.},
+ date = {1998},
+ note = {Caderno 2, Visuais. p. D2. 1 fotografia, p\&b. Foto
+ apresentada no Projeto \mkbibacro{ABRA}/Coca-cola},
+}
+
+@image{oque1985,
+ keywords = {7.11.2},
+ title = {O~que acreditar em relação à maconha},
+ location = {São Paulo},
+ publisher = {\mkbibacro{CERAVI}},
+ date = {1985},
+ note = {22 transparências, color., 25 cm $\times$ 20 cm},
+}
+
+@image{odescobrimento1985,
+ keywords = {7.11.2},
+ title = {O~descobrimento do Brasil},
+ titleaddon = {Fotografia de Carmem Souza. Gravação de Marcos Lourenço.},
+ location = {São Paulo},
+ publisher = {\mkbibacro{CERAVI}},
+ date = {1985},
+ note = {31 diapositivos, color. + 1
+ cassete sonoro (15 min), mono},
+ % editora = {Carmem Souza},
+ % editoratype = {photographer},
+ % editorb = {Marcos Lourenço},
+ % editorbtype = {recorder},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+@image{samu1977,
+ keywords = {7.11.2},
+ author = {R. Samú},
+ title = {Vitória, 18,35 horas},
+ date = {1977},
+ note = {1 gravura, serigraf., color., 46 cm $\times$ 63 cm.
+ Coleção Particular},
+ options = {noslsn},
+}
+
+@image{mattos1987,
+ keywords = {7.11.2},
+ author = {M. D. Mattos},
+ title = {Paisagem-Quatro Barras},
+ date = {1987},
+ note = {1 original de arte, óleo sobre tela,
+ 40 cm $\times$ 50 cm. Coleção particular.},
+ options = {noslsn},
+}
+
+@image{levi1997a,
+ keywords = {7.11.2},
+ author = {R. Levi},
+ title = {Edifício Columbus de propriedade de Lamberto
+ Ramengoni à Rua da Paz, esquina da Avenida
+ Brigadeiro Luiz Antonio},
+ subtitle = {n. 1930-33},
+ date = {1997},
+ pagetotal = {108},
+ bookpagination = {sheet},
+ note = {Plantas diversas. Originais em papel vegetal},
+ options = {noslsn},
+}
+
+@image{datum1996,
+ keywords = {7.11.2},
+ organization = {Datum Consultoria e Projetos},
+ title = {Hotel Porto do Sol São Paulo},
+ subtitle = {ar condicionado e ventilação mecânica:
+ fluxograma hidráulico, central de água gelada},
+ options = {noslsn},
+ date = {1996-06-15},
+ note = {Projeto final. Desenhista: Pedro. N.
+ da obra: 1744/96/Folha 10},
+}
+
+@image{vaso1999,
+ keywords = {7.11.3},
+ title = {VASO.TIFF},
+ date = {1999},
+ note = {Altura: 1083 pixels. Largura: 827 pixels.
+ 300 dpi. 32 \mkbibacro{BIT} \mkbibacro{CMYK}. 3.5 Mb.
+ Formato \mkbibacro{TIFF} bitmap. Compactado.},
+ url = {C:/Carol/VASO.TIFF},
+ urldate = {1999-10-28},
+ options = {noslsn},
+}
+
+@image{geddes2000,
+ keywords = {7.11.3},
+ author = {Anne Geddes},
+ title = {Geddes135.jpg},
+ date = {2000},
+ note = {Altura: 432 pixels. Largura: 376 pixels.
+ 51 Kb. Formato \mkbibacro{JPEG}. 1 disquete, 5¼ pol.},
+ options = {noslsn},
+}
+
+@inbook{estacao1999,
+ keywords = {7.11.3},
+ title = {Estação da Cia. Paulista com locomotiva elétrica
+ e linhas de bitola larga},
+ titleaddon = {1 fotografia, p\&b},
+ bookauthor = {Eduardo Luiz Veiga Lopes},
+ booktitle = {Memória fotográfica de Araraquara},
+ publisher = {Prefeitura do Município de Araraquara},
+ location = {Araraquara},
+ date = {1999},
+ addendum = {1 \mkbibacro{CD-ROM}},
+}
+
+@image{stockdale2002,
+ keywords = {7.11.3},
+ author = {René Stockdale},
+ title = {When's recess?},
+ year = {[2002?]},
+ sortyear = {2002},
+ note = {1 fotografia, color.},
+ url = {http://www.webshots.com/g/d2002/1-nw/20255.html},
+ urldate = {2001-01-13},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.12 >>>2
+
+@book{atlas1981,
+ keywords = {7.12.1},
+ title = {Atlas Mirador Internacional},
+ location = {Rio de Janeiro},
+ publisher = {Enciclopédia Britânica do Brasil},
+ date = {1981},
+ note = {1 atlas. Escalas variam.},
+}
+
+@manual{instituto1994,
+ keywords = {7.12.1},
+ author = {{Instituto Geográfico e Cartográfico\nopunct}},
+ nameaddon = {(São Paulo, SP)},
+ title = {Regiões de governo do Estado de São Paulo},
+ location = {São Paulo},
+ date = {1994},
+ note = {1 atlas. Escala 1:2.000},
+ % Para que o "(São Paulo, SP)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "São Paulo" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos, mas como a ABNT é inconsistente é
+ % necessário fazer algo assim.
+}
+
+@misc{brasil1981a,
+ keywords = {7.12.1},
+ title = {Brasil e parte da América do Sul},
+ location = {São Paulo},
+ publisher = {Michalany},
+ date = {1981},
+ note = {1 mapa. Escala 1:600.000},
+}
+
+@misc{brasil1981b,
+ keywords = {7.12.2},
+ title = {Brasil e parte da América do Sul},
+ subtitle = {mapa político, escolar, rodoviário,
+ turístico e regional},
+ location = {São Paulo},
+ publisher = {Michalany},
+ date = {1981},
+ note = {1 mapa, color., 79 cm $\times$ 95 cm.
+ Escala 1:600.000},
+}
+
+@image{instituto1986,
+ keywords = {7.12.2},
+ author = {{Instituto Geográfico e Cartográfico\nopunct}},
+ nameaddon = {(São Paulo, SP)},
+ title = {Projeto Lins Tupã},
+ subtitle = {foto aérea},
+ location = {São Paulo},
+ date = {1986},
+ note = {1 fotografia aérea. Escala 1:35.000. Fx 28, n. 15.},
+ options = {noslsn},
+ % Para que o "(São Paulo, SP)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "São Paulo" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos, mas como a ABNT é inconsistente é
+ % necessário fazer algo assim.
+}
+
+@image{landsat1987,
+ keywords = {7.12.2},
+ title = {\mkbibacro{LANDSAT} \mkbibacro{TM} 5},
+ subtitle = {imagem de satélide},
+ location = {São José dos Campos},
+ publisher = {Instituto Nacional de Pesquisas Espaciais},
+ date = {1987/1988},
+ note = {1 fotografia aérea. Escala 1:100.000. Canais 3, 4 e
+ composição colorida 3, 4 e 5},
+}
+
+@image{estados1999,
+ keywords = {7.12.3},
+ author = {{Estados Unidos}},
+ nameaddon = {National Oceanic and Atmospheric Administration},
+ title = {1999071318.GIF},
+ location = {Itajaí},
+ date = {1999},
+ publisher = {\mkbibacro{UNIVALI}},
+ note = {1 imagem de satélite. 557 Kb. \mkbibacro{GOES}-08:
+ \mkbibacro{SE}. 13 jul. 1999, 17:42Z, \mkbibacro{IR04}.
+ 1 disquete, 3½ pol.},
+}
+
+@article{percentagem1994,
+ keywords = {7.12.3},
+ title = {Percentagem de imigrantes em São Paulo, 1920},
+ titleaddon = {1 mapa, color. Escala indeterminável.},
+ journaltitle = {Neo Interativa},
+ location = {Rio de Janeiro},
+ number = {2},
+ issue = {inverno},
+ year = {1994},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@misc{florida2000,
+ keywords = {7.12.3},
+ author = {{Florida Museum of Natural History}},
+ title = {1931-2000 Brazil's confirmed unprovoked shark attacks},
+ location = {Gainesville},
+ year = {[2000?].},
+ sortyear = {2000},
+ note = {1 mapa, color. Escala 1:40.000.000},
+ url = {http://www.flmnh.ufl.edu/fish/Sharks/
+ statistics/Gattack/map/Brazil.jpg},
+ urldate = {2002-01-15},
+ options = {nosn},
+ % É necessário pôr o ponto depois do ano manualmente
+ % porque o biblatex acha que o ponto de interrogação já é suficiente.
+}
+
+@misc{mapa2001,
+ keywords = {7.12.3},
+ title = {Mapa de Ubicación},
+ subtitle = {vista ampliada},
+ publisher = {Dirección de Salud y Acción Social de la Armada},
+ location = {Buenos Aires},
+ year = {c2001},
+ sortyear = {2001},
+ note = {1 mapa, color. Escala indeterminável},
+ url = {http://www.diba.org/turismo/hoteles/
+ ushuaia/ubicacion2.htm},
+ urldate = {2002-01-13},
+}
+
+% <<<
+
+% section 7.13 >>>2
+
+@audio{alcione1988a,
+ keywords = {7.13},
+ author = {Alcione},
+ title = {Ouro e cobre},
+ location = {São Paulo},
+ publisher = {\mkbibacro{RCA} Victor},
+ year = {p1988},
+ sortyear = {1988},
+ note = {1 disco sonoro},
+}
+
+@audio{mpb1995,
+ keywords = {7.13},
+ title = {\mkbibacro{MPB} especial},
+ location = {[Rio de Janeiro]},
+ publisher = {Globo: Movieplay},
+ year = {c1995},
+ sortyear = {1995},
+ note = {1 \mkbibacro{CD}},
+}
+
+@audio{alcione1988b,
+ keywords = {7.13},
+ author = {Alcione},
+ title = {Ouro e cobre},
+ titleaddon = {Direção artística: Miguel Propschi},
+ location = {São Paulo},
+ publisher = {\mkbibacro{RCA} Victor},
+ year = {p1988},
+ sortyear = {1988},
+ note = {1 disco sonoro (45 min),
+ 33 1/3 rpm, estero., 12 pol.},
+ % editor = {Miguel Propschi},
+ % editortype = {artdir},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@audio{silva1991,
+ keywords = {7.13},
+ author = {Luiz Inácio Lula da Silva},
+ title = {Luiz Inácio Lula da Silva},
+ titleaddon = {Entrevistadores: V. Tremel e M. Garcia},
+ subtitle = {depoimento [abr. 1991]},
+ location = {São Paulo},
+ publisher = {\mkbibacro{SENAI-SP}},
+ date = {1991},
+ note = {2 cassetes sonoros. Entrevista concedida
+ ao Projeto Memória do \mkbibacro{SENAI-SP}},
+ % editor = {V. Tremel and M. Garcia},
+ % editortype = {interviewer},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@audio{fagner1988,
+ keywords = {7.13},
+ author = {R. Fagner},
+ title = {Revelação},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{CBS}},
+ date = {1988},
+ note = {1 cassete sonoro (60 min), 3¾ pps, estereo},
+}
+
+@audio{costa1977a,
+ keywords = {7.13},
+ author = {Simone},
+ title = {Face a face},
+ publisher = {Emi-Odeon Brasil},
+ year = {p1977},
+ sortyear = {1977},
+ note = {1 \mkbibacro{CD} (ca. 40 min). Remasterizado em
+ digital},
+}
+
+% <<<
+
+% section 7.14 >>>2
+
+@inbook{costa1977b,
+ keywords = {7.14},
+ author = {S. Costa and A. Silva},
+ title = {Jura secreta},
+ titleaddon = {Intérprete: Simone},
+ bookauthor = {Simone},
+ booktitle = {Face a face},
+ publisher = {Emi-Odeon Brasil},
+ year = {p1977},
+ sortyear = {1977},
+ note = {1 \mkbibacro{CD}. Faixa 7},
+ % editor = {Simone},
+ % editortype = {interpreter},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@inbook{gino1988,
+ keywords = {7.14},
+ author = {A. Gino},
+ title = {Toque macio},
+ titleaddon = {Intérprete: Alcione},
+ bookauthor = {Alcione},
+ booktitle = {Ouro e cobre},
+ location = {São Paulo},
+ publisher = {\mkbibacro{RCA} Victor},
+ year = {p1988},
+ sortyear = {1988},
+ note = {1 disco sonoro. Lado A, faixa 1},
+ % editor = {Alcione},
+ % editortype = {interpreter},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@inbook{alcione1988c,
+ keywords = {7.14},
+ author = {A. Gino},
+ title = {Toque macio},
+ titleaddon = {Intérprete: Alcione},
+ bookauthor = {Alcione},
+ booktitle = {Ouro e cobre},
+ booktitleaddon = {Direção artística: Miguel Propschi},
+ location = {São Paulo},
+ publisher = {\mkbibacro{RCA} Victor},
+ year = {p1988},
+ sortyear = {1988},
+ note = {1 disco sonoro (45 min), 33 1/3 rpm,
+ estereo., 12 pol. Lado A, faixa 1 (4 min 3 s)},
+}
+
+% <<<
+
+% section 7.15 >>>2
+
+@misc{bartok1952a,
+ keywords = {7.15.1},
+ author = {Béla Bartók},
+ title = {O mandarim maravilhoso},
+ location = {Wien},
+ publisher = {Universal},
+ date = {1952},
+ note = {1 partitura. Orquestra},
+}
+
+@misc{gallet1851,
+ keywords = {7.15.1},
+ editor = {Luciano Gallet},
+ editortype = {organizer},
+ title = {Canções populares brasileiras},
+ location = {Rio de Janeiro},
+ publisher = {Carlos Wehns},
+ date = {1851},
+ note = {1 partitura (23 p.). Piano},
+}
+
+@misc{bartok1952b,
+ keywords = {7.15.2},
+ author = {Béla Bartók},
+ title = {O mandarim maravilhoso},
+ subtitle = {op. 19},
+ location = {Wien},
+ publisher = {Universal},
+ date = {1952},
+ note = {1 partitura. Orquestra},
+}
+
+@misc{oliva2002,
+ keywords = {7.15.3},
+ author = {Marcos Oliva and Tiago Mocotó},
+ title = {Fervilhar},
+ subtitle = {frevo},
+ year = {[19-{}-?]},
+ sortyear = {1900},
+ note = {1 partitura. Piano},
+ url = {http://openlink.br.inter.net/picolino/partitur.htm},
+ urldate = {2002-01-05},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.16 >>>2
+
+@artwork{duchamp1918a,
+ keywords = {7.16},
+ author = {Marcel Duchamp},
+ title = {Escultura para viajar},
+ date = {1918},
+ note = {1 escultura variável},
+ options = {noslsn},
+}
+
+@artwork{bule0000a,
+ keywords = {7.16},
+ title = {Bule de porcelana},
+ note = {[China: Companhia das Índias, 18-{}-]. 1 bule},
+ options = {noslsn},
+}
+
+@artwork{duchamp1918b,
+ keywords = {7.16},
+ author = {Marcel Duchamp},
+ title = {Escultura para viajar},
+ date = {1918},
+ note = {1 escultura variável, borracha colorida e cordel.
+ Original destruído. Cópia por Richard Hamilton,
+ feita por ocasião da retrospectiva de Duchamp
+ na Tate Gallery (Londres) em 1966. Coleção de Arturo
+ Schwarz. Tradução de: Sculpture for travelling},
+ options = {noslsn},
+}
+
+@artwork{bule0000b,
+ keywords = {7.16},
+ title = {Bule de porcelana},
+ subtitle = {família rosa, decorado com buquês e guirlandas de
+ flores
+ sobre fundo branco, pegador de tampa em formato de
+ fruto},
+ note = {[China: Companhia das Índias, 18-{}-]. 1 bule},
+ options = {noslsn},
+}
+
+% <<<
+
+% section 7.17 >>>2
+
+@software{microsoft1995a,
+ keywords = {7.17},
+ title = {Microsoft Project for Windows 95},
+ titleaddon = {Version 4.1},
+ publisher = {Microsoft Corporation},
+ date = {1995},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@software{universidade1998a,
+ keywords = {7.17},
+ author = {{Universidade Federal do Paraná}},
+ nameaddon = {Biblioteca Central},
+ title = {Normas.doc},
+ location = {Curitiba},
+ date = {1998},
+ note = {5 disquetes},
+ options = {noslsn},
+}
+
+@software{allie1993a,
+ keywords = {7.17},
+ title = {Allie's play house},
+ location = {Palo Alto, CA\adddot},
+ publisher = {\mkbibacro{MPC}/Opcode Interactive},
+ date = {1993},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@inbook{acaros1998,
+ keywords = {7.17},
+ title = {Ácaros no Estado de São Paulo},
+ bookauthor = {{Fundação Tropical de Pesquisas e Tecnologia ``André Tosello''}},
+ booktitle = {Base de Dados Tropical},
+ date = {1985},
+ url = {http://www.bdt.org/bdt/acarosp},
+ % urldate = {2002-03-30},
+ addendum = {Acesso em: 30 maio 2002},
+ options = {noslsn},
+}
+
+@software{microsoft1995b,
+ keywords = {7.17},
+ title = {Microsoft Project for Windows 95},
+ subtitle = {project planning software},
+ titleaddon = {Version 4.1},
+ publisher = {Microsoft Corporation},
+ date = {1995},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+@software{allie1993b,
+ keywords = {7.17},
+ title = {Allie's play house},
+ location = {Palo Alto, CA\adddot},
+ publisher = {\mkbibacro{MPC}/Opcode Interactive},
+ date = {1993},
+ note = {1 \mkbibacro{CD-ROM}. Windows 3.1},
+}
+
+@software{universidade1998b,
+ keywords = {7.17},
+ author = {{Universidade Federal do Paraná}},
+ nameaddon = {Biblioteca Central},
+ title = {Normas.doc},
+ subtitle = {normas para apresentação de trabalhos},
+ location = {Curitiba},
+ date = {1998},
+ note = {5 disquetes, 3$1/2$ pol. Word for Windows 7.0},
+ options = {noslsn},
+}
+
+@online{aves1998,
+ keywords = {7.17},
+ title = {Aves do Amapá},
+ subtitle = {banco de dados},
+ url = {http://www.bdt.org/bdt/avifauna/aves},
+ % urldate = {2002-05-30},
+ addendum = {Acesso em: 30 maio 2002},
+ options = {noslsn},
+}
+
+@online{bioline1998,
+ keywords = {7.17},
+ title = {Bioline Discussion List. List maintained
+ by the Bases de Dados Tropical, \mkbibacro{BDT} in
+ Brasil},
+ url = {http://lisserv@bdt.org.br},
+ urldate = {1998-11-25},
+ options = {noslsn},
+}
+
+@online{civitas1995,
+ keywords = {7.17},
+ title = {Civitas},
+ titleaddon = {Coordenação de Simão Pedro P. Marinho},
+ date = {1995/1998},
+ note = {Desenvolvido pela Pontifícia Universidade Católica
+ de Minas Gerais 1995-1998. Apresenta textos sobre
+ urbanismo e desenvolvimento de cidades},
+ url = {http://www.gcsnet.com/oamis/civitas},
+ urldate = {1998-11-27},
+ options = {noslsn},
+ % editora = {Simão Pedro P. Marinho},
+ % editoratype = {coordinator},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+@online{galeria1998,
+ keywords = {7.17},
+ title = {Galeria virtual de arte do Vale do Paraíba},
+ location = {São José dos Campos},
+ publisher = {Fundação Cultural Cassiano Ricardo},
+ date = {1998},
+ note = {Apresenta reproduções virtuais de obras
+ de artistas plásticos do Vale do Paraíba},
+ url = {http://www.virtualvale.com.br/galeria},
+ urldate = {1998-11-27},
+}
+
+@online{almeida2002,
+ keywords = {7.17},
+ author = {M. P. S. Almeida},
+ title = {Fichas para \mkbibacro{MARC}\nopunct},
+ titleaddon = {[mensagem pessoal]. Mensagem recebida
+ por <\texttt{mtmendes@uol.com.br}> em 12 jan. 2002.},
+ options = {noslsn},
+}
+
+% <<<
+
+% <<<
+
+% section 8 >>>1
+
+% section 8.1 >>>2
+
+@book{alves1995,
+ keywords = {8.1.1},
+ author = {{Roque de Brito} Alves},
+ title = {Ciência criminal},
+ location = {Rio de Janeiro},
+ publisher = {Forense},
+ date = {1995},
+}
+
+@book{damiao1995,
+ keywords = {8.1.1},
+ author = {Regina Toledo Damião and Antonio Henriques},
+ title = {Curso de direito judrídico},
+ location = {São Paulo},
+ publisher = {Atlas},
+ date = {1995},
+}
+
+@book{passos1995,
+ keywords = {8.1.1},
+ author = {L. M. M. Passos and A. Fonseca and M. Chaves},
+ title = {Alegria de saber},
+ subtitle = {matemática, segunda série, 2,
+ primeiro grau: livro do professor},
+ location = {São Paulo},
+ publisher = {Scipione},
+ date = {1995},
+ pagetotal = {136},
+}
+
+@book{urani1994,
+ keywords = {8.1.1},
+ author = {A. Urani and others},
+ title = {Constituição de uma matriz
+ de contabilidade social para o Brasil},
+ location = {Brasília, DF},
+ publisher = {\mkbibacro{IPEA}},
+ date = {1994},
+}
+
+@collection{ferreira1991,
+ keywords = {8.1.1},
+ editor = {Leslie Piccolotto Ferreira},
+ editortype = {organizer},
+ title = {O fonoaudiólogo e a escola},
+ location = {São Paulo},
+ publisher = {Summus},
+ date = {1991},
+}
+
+@book{marcondes1993,
+ keywords = {8.1.1},
+ editor = {E. Marcondes and I. N. de Lima},
+ editortype = {coordinator},
+ title = {Dietas em pediatria clínica},
+ edition = {4},
+ location = {São Paulo},
+ publisher = {Sarvier},
+ date = {1993},
+}
+
+@book{moore1960a,
+ keywords = {8.1.1},
+ editor = {W. Moore},
+ title = {Construtivismo del movimiento educacional},
+ subtitle = {soluciones},
+ location = {Córdoba, AR.\isdot},
+ date = {1960},
+}
+
+@book{lujan1993,
+ keywords = {8.1.1},
+ editor = {Roger Patrón Lujan},
+ editortype = {compiler},
+ title = {Um presente especial},
+ titleaddon = {Tradução Sonia da Silva},
+ edition = {3},
+ location = {São Paulo},
+ publisher = {Aquariana},
+ date = {1993},
+ pagetotal = {167},
+}
+
+@book{diniz1994,
+ keywords = {8.1.1},
+ author = {Júlio Diniz},
+ title = {As pupilas do senhor reitor},
+ edition = {15},
+ location = {São Paulo},
+ publisher = {Ática},
+ date = {1994},
+ pagetotal = {263},
+ series = {Série Bom Livro},
+}
+
+@book{dante1983,
+ keywords = {8.1.1},
+ author = {{Dante Alighieri}},
+ title = {A divina comédia},
+ titleaddon = {Tradução, prefácio e notas: Hernâni Donato.},
+ location = {São Paulo},
+ publisher = {Círculo do Livro},
+ year = {[1983]},
+ sortyear = {1983},
+ pagetotal = {344},
+ % editor = {Hernâni Donato},
+ % editortype = {translatoranfo},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@book{gomes1995,
+ keywords = {8.1.1},
+ author = {Orlando Gomes},
+ title = {O direito de família},
+ titleaddon = {Atualização e notas de Humberto Theodoro Júnior},
+ edition = {11},
+ date = {1995},
+ publisher = {Forense},
+ location = {Rio de Janeiro},
+ pagetotal = {562},
+ % editor = {Humberto Theodoro Júnior},
+ % editortype = {updateran},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@book{albergaria1994,
+ keywords = {8.1.1},
+ author = {Lino de Albergaria},
+ title = {Cinco anos sem chover},
+ subtitle = {história de Lino Albergaria},
+ titleaddon = {Ilustrações de Paulo Lyra},
+ edition = {12},
+ location = {São Paulo},
+ publisher = {\mkbibacro{FTD}},
+ date = {1994},
+ pagetotal = {63},
+ % editor = {Paulo Lyra},
+ % editortype = {illustrator},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@book{chevalier1990,
+ keywords = {8.1.1},
+ author = {Jean Chevalier and Alain Gheerbrant},
+ title = {Dicionário de símbolos},
+ titleaddon = {Tradução Vera da Costa e Silva et al.},
+ edition = {3. ed. rev. e aum.},
+ date = {1990},
+ publisher = {J. Olympio},
+ location = {Rio de Janeiro},
+ % translator = {Vera da Costa e Silva and others},
+ % O ideal seria usar o campo `translator`.
+}
+
+@standard{associação1988,
+ keywords = {8.1.2},
+ author = {{Associação Brasileira de Normas Técnicas}},
+ title = {\mkbibacro{NBR} 10520},
+ subtitle = {informação e documentação:
+ citações em documentos: apresentação},
+ location = {Rio de Janeiro},
+ date = {2002},
+ options = {noslsn},
+}
+
+@booklet{universidade1993,
+ keywords = {8.1.2},
+ author = {{Universidade de São Paulo}},
+ title = {Catálogo de teses da Universidade de São Paulo, 1992},
+ location = {São Paulo},
+ date = {1993},
+ pagetotal = {467},
+ options = {noslsn},
+}
+
+@proceedings{congresso1979,
+ keywords = {8.1.2},
+ eventtitle = {Congresso Brasileiro de Biblioteconomia e
+ Documentação},
+ number = {10},
+ eventdate = {1979},
+ venue = {Curitiba},
+ title = {Anais [\ldots]},
+ location = {Curitiba},
+ publisher = {Associação Bibliotecária do Paraná},
+ date = {1979},
+ volumes = {3},
+}
+
+@manual{saopaulo1993,
+ keywords = {8.1.2},
+ author = {{São Paulo}},
+ authortype = {Estado},
+ nameaddon = {Secretaria do Meio Ambiente},
+ title = {Diretrizes para a politica ambiental
+ do Estado de São Paulo},
+ location = {São Paulo},
+ date = {1993},
+ pagetotal = {35},
+}
+
+@report{brasil1993,
+ keywords = {8.1.2},
+ author = {{Brasil}},
+ nameaddon = {Ministério da Justiça},
+ title = {Relatório de atividades},
+ location = {Brasília, DF},
+ date = {1993},
+ pagetotal = {28},
+}
+
+@report{biblioteca1985,
+ keywords = {8.1.2},
+ author = {{Biblioteca Nacional\nopunct}},
+ nameaddon = {(Brasil)},
+ title = {Relatório da diretoria-geral},
+ subtitle = {1984},
+ location = {Rio de Janeiro},
+ date = {1985},
+ pagetotal = {40},
+ % Para que o "(Brasil)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "Brasil" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos, mas como a ABNT é inconsistente é
+ % necessário fazer algo assim.
+}
+
+@report{biblioteca1983,
+ keywords = {8.1.2},
+ author = {{Biblioteca Nacional\nopunct}},
+ nameaddon = {(Portugal)},
+ title = {O 24 de julho de 1833 e a guerra civil de 1829-1834},
+ location = {Lisboa},
+ date = {1983},
+ pagetotal = {95},
+ % Para que o "(Portugal)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "Portugal" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos, mas como a ABNT é inconsistente é
+ % necessário fazer algo assim.
+}
+
+@book{diagnostico1993,
+ keywords = {8.1.3},
+ title = {Diagnóstico do setor editorial brasileiro},
+ location = {São Paulo},
+ publisher = {Câmara Brasileira do Livro},
+ date = {1993},
+ pagetotal = {64},
+}
+
+% <<<
+
+% section 8.2 >>>2
+
+@book{pastro1993a,
+ keywords = {8.2},
+ author = {C. Pastro},
+ title = {Arte sacra},
+ location = {São Paulo},
+ publisher = {Loyola},
+ date = {1993},
+}
+
+@book{pastro1993b,
+ keywords = {8.2},
+ author = {C. Pastro},
+ title = {Arte sacra},
+ subtitle = {espaço sagrado hoje},
+ location = {São Paulo},
+ publisher = {Loyola},
+ date = {1993},
+ pagetotal = {343},
+}
+
+@book{arte1992,
+ keywords = {8.2},
+ title = {Arte de furtar\ldots},
+ date = {1992},
+ publisher = {Nova Fronteira},
+ location = {Rio de Janeiro},
+}
+
+@misc{levi1997b,
+ keywords = {8.2},
+ author = {R. Levi},
+ title = {Edifício Columbus\nopunct},
+ titleaddon = {\unspace\ldots: n. 1930-33},
+ date = {1997},
+ pagetotal = {108},
+ bookpagination = {sheet},
+ note = {Plantas diversas. Originais em papel vegetal},
+ options = {noslsn},
+ % Aqui é usado o campo `titleaddon` em vez de `subtitle` para que as
+ % reticências não fiquem enfatizadas com o resto do título, como está no
+ % manual (estranhamente).
+}
+
+@book{golsalves1971,
+ keywords = {8.2},
+ editor = {Paulo Eiró Gonsalves},
+ editortype = {organizer},
+ title = {A criança},
+ subtitle = {perguntas e respostas: médicos, psicólogos,
+ professores, técnicos, dentistas\ldots},
+ foreword = {Carlos da Silva Lacaz},
+ location = {São Paulo},
+ publisher = {Cultrix: Ed. da \mkbibacro{USP}},
+ date = {1971},
+}
+
+@periodical{saopaulo1941b,
+ keywords = {8.2},
+ title = {São Paulo Medical Journal = Revista Paulista de
+ Medicina},
+ location = {São Paulo},
+ publisher = {Associação Paulista de Medicina},
+ year = {1941-~.},
+ sortyear = {1941},
+ note = {Bimensal},
+ issn = {0035-0362},
+}
+
+@periodical{revista1973,
+ keywords = {8.2},
+ title = {Revista brasileira de biblioteconomia e documentação},
+ location = {São Paulo},
+ publisher = {\mkbibacro{FEBAB}},
+ date = {1973/1992},
+}
+
+@periodical{boletim1965a,
+ keywords = {8.2},
+ title = {Boletim Estatístico {[da] Rede Ferroviária Federal}},
+ location = {Rio de Janeiro},
+ year = {1965-~.},
+ sortyear = {1965},
+ note = {Trimestral},
+ options = {noslsn},
+}
+
+@article{leitao1989,
+ keywords = {8.2},
+ author = {D. M. Leitão},
+ title = {A informação como insumo estratégico},
+ journaltitle = {Ci. Inf.},
+ location = {Brasília, DF},
+ volume = {22},
+ number = {2},
+ pages = {118-123},
+ issue = {maio/ago.},
+ year = {1989},
+}
+
+@proceedings{simposio1978,
+ keywords = {8.2},
+ eventtitle = {Simpósio Brasileiro de Aquicultura},
+ number = {1},
+ eventdate = {1978},
+ venue = {Recife},
+ title = {[Trabalhos apresentados]},
+ location = {Rio de Janeiro},
+ publisher = {Academia Brasileira de Ciências},
+ date = {1980},
+ pagetotal = {ii, 412},
+}
+
+% <<<
+
+% section 8.3 >>>2
+
+@book{schaum1956,
+ keywords = {8.3},
+ author = {Daniel Schaum},
+ title = {Schaum's outline of theory and problems},
+ edition = {5th. ed},
+ location = {New York},
+ publisher = {Schaum Publishing},
+ date = {1956},
+ pagetotal = {204},
+}
+
+@book{pedrosa1995,
+ keywords = {8.3},
+ author = {Israel Pedrosa},
+ title = {Da cor à cor inexistente},
+ edition = {6},
+ location = {Rio de Janeiro},
+ publisher = {L. Cristiano},
+ date = {1995},
+ pagetotal = {219},
+}
+
+@standard{francca1996,
+ keywords = {8.3},
+ author = {Júnia Lessa França and others},
+ title = {Manual para normalização
+ de publicações técnico-científicas},
+ edition = {3. ed. rev. e aum.},
+ location = {Belo Horizonte},
+ publisher = {Ed. da \mkbibacro{UFMG}},
+ date = {1996},
+}
+
+@software{astrology1994,
+ keywords = {8.3},
+ title = {Astrology source},
+ titleaddon = {Version 1.0A},
+ location = {Seattle},
+ publisher = {Multicom Publising},
+ year = {c1994},
+ sortyear = {1994},
+ note = {1 \mkbibacro{CD-ROM}},
+}
+
+% <<<
+
+% section 8.4 >>>2
+
+@book{zani1995,
+ keywords = {8.4},
+ author = {R. Zani},
+ title = {Beleza, saúde e bem-estar},
+ location = {São Paulo},
+ publisher = {Saraiva},
+ date = {1995},
+ pagetotal = {173},
+}
+
+@book{swokowski1994,
+ keywords = {8.4},
+ author = {E. W. Swokowski and V. R. L. F. Flores and Q. M.
+ Moreno},
+ title = {Cálculo de geometria analítica},
+ titleaddon = {Tradução de Alfredo Alves de Faria.
+ Revisão técnica Antonio Pertence Júnior},
+ edition = {2},
+ location = {São Paulo},
+ publisher = {Makron Books do Brasil},
+ date = {1994},
+ note = {2 v.},
+ % translator = {Alfredo Alves de Faria},
+ % editor = {Antonio Pertence Júnior},
+ % editortype = {techrev},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@book{lazzarini1994,
+ keywords = {8.4},
+ author = {Lazzarini Neto, Sylvio},
+ title = {Cria e recria},
+ location = {[São Paulo]},
+ publisher = {\mkbibacro{SDF} Editores},
+ date = {1994},
+ pagetotal = {108},
+}
+
+@book{osgrandes1981,
+ keywords = {8.4},
+ title = {Os~grandes clássicos das poesias líricas},
+ publisher = {Ex Libris},
+ date = {1981},
+ pagetotal = {60},
+ bookpagination = {sheet},
+}
+
+@book{krieger1992,
+ keywords = {8.4},
+ author = {Gustavo Krieger and Luís Antonio Novaes and Tales
+ Faria},
+ title = {Todos os sócios do presidente},
+ edition = {3},
+ publisher = {Scritta},
+ date = {1992},
+ pagetotal = {195},
+}
+
+% <<<
+
+% section 8.5 >>>2
+
+@book{daghalian1995,
+ keywords = {8.5},
+ author = {Jacob Daghlian},
+ title = {Lógica e álgebra de Boole},
+ edition = {4},
+ location = {São Paulo},
+ publisher = {Atlas},
+ date = {1995},
+ pagetotal = {167},
+ illustrated = {il.},
+ note = {Bibliografia: p. 166-167},
+ isbn = {85-224-1256-1},
+}
+
+@book{lima1985,
+ keywords = {8.5},
+ author = {M. Lima},
+ title = {Tem encontro com Deus},
+ subtitle = {teologia para leigos},
+ location = {Rio de Janeiro},
+ publisher = {J. Olympio},
+ date = {1985},
+}
+
+@book{goldfarb1995,
+ keywords = {8.5},
+ editor = {Ana Maria Alfonso-Goldfarb and Carlos A. Maia},
+ editortype = {coordinator},
+ title = {História da ciência},
+ subtitle = {o mapa do conhecimento},
+ titleaddon = {Rio de Janeiro: Expressão e Cultura;
+ São Paulo: \mkbibacro{EDUSP}, 1995},
+ pagetotal = {968},
+ series = {América 500 anos},
+ number = {2},
+ options = {noslsn},
+ % O campo `titleaddon` é usado para imprimir dois locais e duas editoras.
+}
+
+@book{franco1993,
+ keywords = {8.5},
+ author = {I. Franco},
+ title = {Discursos},
+ subtitle = {de outubro de 1992 a agosto de 1993},
+ location = {Brasília, DF},
+ date = {1993},
+ pagetotal = {107},
+}
+
+@book{goncalves1993,
+ keywords = {8.5},
+ author = {F. B. Gonçalves},
+ title = {A história de Mirador},
+ date = {1993},
+}
+
+@manual{universidade1994,
+ keywords = {8.5},
+ author = {{Universidade Federal de Viçosa}},
+ title = {Catálogo de graduação, 1994-1995},
+ location = {Viçosa, MG},
+ date = {1994},
+ pagetotal = {385},
+}
+
+@book{ribeiro2001,
+ keywords = {8.5},
+ author = {{Antonia Motta de Castro Memória} Ribeiro},
+ title = {\mkbibacro{AACR2}, Anglo American Cataloguing
+ Rules\nopunct},
+ titleaddon = {\unspace, 2\textsuperscript{nd} edition:
+ descrição e pontos de acesso},
+ date = {2001},
+ edition = {2. ed. rev. e atual.},
+ location = {Brasília, DF},
+ options = {noslsn},
+ % O "de" no nome da autora é colocado desse modo para que apenas o último
+ % nome seja impresso em maiúsculas (em vez de tudo o que tem depois do
+ % "de"). Cf. http://tex.stackexchange.com/a/308659/102699
+ % Para o subtítulo é necessário usar o campo `titleaddon` para que parte
+ % do título apareça em negrito/itálico e parte não.
+}
+
+% <<<
+
+% section 8.6 >>>2
+
+@book{leite1994,
+ keywords = {8.6},
+ author = {C. B. Leite},
+ title = {O século do desempenho},
+ location = {São Paulo},
+ publisher = {LTr},
+ date = {1994},
+ pagetotal = {160},
+}
+
+@book{cipolla1993,
+ keywords = {8.6},
+ author = {Sylvia Cipolla},
+ title = {Eu e a escola, 2ª série},
+ location = {São Paulo},
+ publisher = {Paulinas},
+ year = {c1993},
+ sortyear = {1993},
+ pagetotal = {63},
+}
+
+@book{florenzano1993,
+ keywords = {8.6},
+ author = {Everton Florenzano},
+ title = {Dicionário de idéias semelhantes},
+ location = {Rio de Janeiro},
+ publisher = {Ediouro},
+ year = {[1993]},
+ sortyear = {1993},
+ pagetotal = {383},
+}
+
+@book{ruch1926,
+ keywords = {8.6},
+ author = {G. Ruch},
+ title = {História geral da civilização},
+ subtitle = {da Antigüidade ao XX século},
+ location = {Rio de Janeiro},
+ publisher = {F. Briguiet},
+ date = {1926/1940},
+ note = {4 v.},
+}
+
+@periodical{globo1985,
+ keywords = {8.6},
+ title = {Globo Rural},
+ location = {São Paulo},
+ publisher = {Rio Gráfica},
+ year = {1985-~.},
+ sortyear = {1985},
+ note = {Mensal},
+}
+
+@periodical{desenvolvimento1957,
+ keywords = {8.6},
+ title = {Desenvolvimento \& Conjuntura},
+ location = {Rio de Janeiro},
+ publisher = {Confederação Nacional da Indústria},
+ date = {1957/1968},
+ note = {Mensal},
+}
+
+@article{alcarde1996,
+ keywords = {8.6},
+ author = {J. C. Alcarde and A. A. Rodella},
+ title = {O equivalente em carbonato de cálcio
+ dos corretivos da acidez dos solos},
+ journaltitle = {Scientia Agricola},
+ location = {Piracicaba},
+ volume = {53},
+ number = {2/3},
+ pages = {204-210},
+ issue = {maio/dez.},
+ year = {1996},
+}
+
+@article{bennetton1993,
+ keywords = {8.6},
+ author = {M. J. Bennetton},
+ title = {Terapia ocupacional e reabilitação psicossocial},
+ subtitle = {uma relação possível},
+ journaltitle = {Revista de Terapia Ocupacional
+ da Universidade de São Paulo},
+ location = {São Paulo},
+ volume = {4},
+ number = {3},
+ pages = {11-16},
+ date = {1993-03},
+}
+
+@article{mansilla1998b,
+ keywords = {8.6},
+ author = {H. C. F. Mansilla},
+ title = {La controversia entre universalismo y particularismo
+ en la filosofía de la cultura},
+ journaltitle = {Revista Latinoamericana de Filosofia},
+ location = {Buenos Aires},
+ volume = {24},
+ number = {2},
+ issue = {primavera},
+ year = {1998},
+}
+
+@article{figueirde1996,
+ keywords = {8.6},
+ author = {E. Figueiredo},
+ title = {Canadá e Antilhas},
+ subtitle = {línguas populares, oralidade e literatura},
+ journaltitle = {Gragoatá},
+ location = {Niterói},
+ number = {1},
+ pages = {127-136},
+ issue = {2. sem.},
+ date = {1996},
+}
+
+% <<<
+
+% section 8.7 >>>2
+
+@book{lucci1994,
+ keywords = {8.7},
+ author = {E. A. Lucci},
+ title = {Viver e aprender},
+ subtitle = {estudos sociais, 3: exemplar do professor},
+ edition = {3},
+ location = {São Paulo},
+ publisher = {Saraiva},
+ date = {1994},
+ pagetotal = {96, 7},
+}
+
+@book{felipe1994,
+ keywords = {8.7},
+ author = {Jorge Franklin Alves Felipe},
+ title = {Previdência social na prática forense},
+ edition = {4},
+ location = {Rio de Janeiro},
+ publisher = {Forense},
+ date = {1994},
+ pagetotal = {viii, 236},
+}
+
+@book{lellis1994,
+ keywords = {8.7},
+ author = {J. Jakubovic and M. Lellis},
+ title = {Matemática na medida certa, 8. série},
+ subtitle = {livro do professor},
+ edition = {2},
+ location = {São Paulo},
+ publisher = {Scipione},
+ date = {1994},
+ pagetotal = {208, xxi},
+}
+
+@book{piaget1980,
+ keywords = {8.7},
+ author = {Jean Piaget},
+ title = {Para onde vai a educação},
+ edition = {7},
+ location = {Rio de Janeiro},
+ publisher = {J. Olympio},
+ date = {1980},
+ pagetotal = {500},
+}
+
+@book{tabak1993,
+ keywords = {8.7},
+ author = {F. Tabak},
+ title = {A lei como instrumento de mudança social},
+ location = {Fortaleza},
+ publisher = {Fundação Waldemar Alcântara},
+ date = {1993},
+ pagetotal = {17},
+ bookpagination = {sheet},
+}
+
+@book{tourinho1994,
+ keywords = {8.7},
+ author = {Tourinho Filho, F. C.},
+ title = {Processo penal},
+ edition = {16. ed. rev. e atual.},
+ location = {São Paulo},
+ publisher = {Saraiva},
+ date = {1994},
+ note = {4 v.},
+}
+
+@book{silva1996b,
+ keywords = {8.7},
+ author = {De Plácido e Silva},
+ title = {Vocabulário jurídico},
+ edition = {4},
+ location = {Rio de Janeiro},
+ publisher = {Forense},
+ date = {1996},
+ note = {5 v. em 3},
+}
+
+@incollection{rego1991,
+ keywords = {8.7},
+ author = {L. L. B. Rego},
+ title = {O desenvolvimento cognitivo
+ e a prontidão para alfabetização},
+ editor = {T. N. Carraro},
+ editortype = {organizer},
+ booktitle = {Aprender pensando},
+ edition = {6},
+ location = {Petrópolis},
+ publisher = {Vozes},
+ date = {1991},
+ pages = {31-40},
+}
+
+@inbook{turano1998,
+ keywords = {8.7},
+ author = {J. C. Turano and L. M. Turano},
+ title = {Fatores determinantes da ocusão em prótese total},
+ booktitle = {Fundamentos de prótese total},
+ bookauthor = {J. C. Turano and L. M. Turano},
+ edition = {4},
+ location = {São Paulo},
+ publisher = {Quintessence},
+ date = {1998},
+ chapter = {13},
+}
+
+@book{marques1993,
+ keywords = {8.7},
+ author = {M. P. Marques and R. G. Lanzelotte},
+ title = {Banco de dados e hipermídia},
+ subtitle = {construindo um metamodelo para o Projeto Portinari},
+ location = {Rio de Janeiro},
+ publisher = {\mkbibacro{PUC}, Departamento de Informática},
+ date = {1993},
+ note = {Paginação irregular},
+}
+
+@book{tamandare1993,
+ keywords = {8.7},
+ title = {Sistema de ensino Tamandaré},
+ subtitle = {sargentos do Exército e da Aeronáutica},
+ location = {[Rio de Janeiro]},
+ publisher = {Colégio Curso Tamandaré},
+ date = {1993},
+ note = {Não paginado},
+}
+
+% <<<
+
+% section 8.8 >>>2
+
+@book{cesar1994,
+ keywords = {8.8},
+ author = {A. M. Cesar},
+ title = {A bala e a mitra},
+ location = {Recife},
+ publisher = {Bagaço},
+ date = {1994},
+ pagetotal = {267},
+ illustrated = {il.},
+}
+
+@book{azevedo1994,
+ keywords = {8.8},
+ author = {Marta R. de Azevedo},
+ title = {Viva vida},
+ subtitle = {estudos sociais, 4.},
+ location = {São Paulo},
+ publisher = {\mkbibacro{FTD}},
+ date = {1994},
+ pagetotal = {194},
+ illustrated = {il. color.},
+}
+
+@book{batista1992,
+ keywords = {8.8},
+ author = {Z. Batista and N. Batista},
+ title = {O foguete do Guido},
+ titleaddon = {Ilustrações de Marilda Castanha},
+ location = {São Paulo},
+ publisher = {Ed. do Brasil},
+ date = {1992},
+ pagetotal = {15},
+ illustrated = {principalmente il. color.},
+ % editor = {Marilda Castanha},
+ % editortype = {illustrator},
+}
+
+@book{chueire1994,
+ keywords = {8.8},
+ author = {C. Chueire},
+ title = {Marca angelical},
+ titleaddon = {Ilustração Luciane Fadel},
+ location = {Petrópolis},
+ publisher = {Vozes},
+ date = {1994},
+ pagetotal = {18},
+ illustrated = {somente il.},
+ isbn = {85-326-1087-0},
+ % editora = {Luciane Fadel},
+ % editoratype = {illustrator},
+ % O ideal seria usar os campos `editora` e `editoratype` em vez de
+ % `titleaddon`.
+}
+
+% <<<
+
+% section 8.9 >>>2
+
+@book{duran1993,
+ keywords = {8.9},
+ author = {J. J. Duran},
+ title = {Iluminação para vídeo e cinema},
+ location = {São Paulo},
+ date = {1993},
+ pagetotal = {126},
+ dimensions = {21~cm},
+}
+
+@book{chemello1993,
+ keywords = {8.9},
+ author = {T. Chemello},
+ title = {Lãs, linhas e retalhos},
+ edition = {3},
+ location = {São Paulo},
+ publisher = {Global},
+ date = {1993},
+ pagetotal = {61},
+ illustrated = {il.},
+ dimensions = {16 cm {$\times$} 23 cm},
+}
+
+@misc{taca0000,
+ keywords = {8.9},
+ title = {Taça de vidro à maneira de Veneza,
+ com a imagem de Nossa Senhora e o menino
+ no fuste também decorado com detalhes azuis},
+ year = {[170-{}-?].},
+ sortyear = {1700},
+ note = {1 taça, 10,7 cm de diâmetro $\times$ 24,5 cm de
+ altura},
+ options = {noslsn},
+ % É necessário pôr o ponto depois do ano manualmente
+ % porque o biblatex acha que o ponto de interrogação já é suficiente.
+}
+
+% <<<
+
+% section 8.10 >>>2
+
+@book{arbex1993,
+ keywords = {8.10},
+ author = {Arbex Junior, J.},
+ title = {Nacionalismo},
+ subtitle = {o desafio à nova ordem pós-socialista},
+ location = {São Paulo},
+ publisher = {Scipione},
+ date = {1993},
+ pagetotal = {104},
+ illustrated = {il.},
+ dimensions = {23 cm},
+ series = {História em aberto},
+}
+
+@book{carvalho1994,
+ keywords = {8.10},
+ author = {M. Carvalho},
+ title = {Guia prático do alfabetizador},
+ location = {São Paulo},
+ publisher = {Ática},
+ date = {1994},
+ pagetotal = {95},
+ series = {Princípios},
+ number = {243},
+}
+
+@book{migliori1993,
+ keywords = {8.10},
+ author = {R. Migliori},
+ title = {Paradigmas e educação},
+ location = {São Paulo},
+ publisher = {Aquariana},
+ date = {1993},
+ pagetotal = {20},
+ series = {Visão do futuro},
+ number = {v. 1},
+}
+
+@book{amaral1994,
+ keywords = {8.10},
+ author = {Amaral Sobrinho, J.},
+ title = {Ensino fundamental},
+ subtitle = {gastos da União e do \mkbibacro{MEC} em 1991:
+ tendências},
+ location = {Brasília, DF},
+ publisher = {\mkbibacro{IPEA}},
+ date = {1994},
+ pagetotal = {8},
+ series = {Texto para discussão},
+ number = {n. 31},
+}
+
+@book{rodrigues1994,
+ keywords = {8.10},
+ author = {Nelson Rodrigues},
+ title = {Teatro completo},
+ titleaddon = {Organização geral e prefácio Sábato Magaldi},
+ location = {Rio de Janeiro},
+ publisher = {Nova Aguilar},
+ date = {1994},
+ pagetotal = {1134},
+ series = {Biblioteca luso-brasileira. Série brasileira},
+ % editor = {Sábato Magaldi},
+ % editortype = {genorgfo},
+}
+
+% <<<
+
+% section 8.11 >>>2
+
+@book{laurenti1978,
+ keywords = {8.11},
+ author = {R. Laurenti},
+ title = {Mortalidade pré-natal},
+ location = {São Paulo},
+ publisher = {Centro Brasileiro de Classificação de Doenças},
+ date = {1978},
+ note = {Mimeografado},
+}
+
+@article{marins1991,
+ keywords = {8.11},
+ author = {J. L. C. Marins},
+ title = {Massa calcificada da naso-faringe},
+ journaltitle = {Radiologia Brasileira},
+ location = {São Paulo},
+ number = {23},
+ date = {1991},
+ pubstate = {No prelo},
+}
+
+@misc{malagrino1985,
+ keywords = {8.11},
+ author = {W. Malagrino and others},
+ title = {Estudos preliminares sobre os efeitos de baixas
+ concentrações de detergentes amiônicos na formação
+ do bisso em \textit{Branchidontas solisianus}},
+ date = {1985},
+ note = {Trabalho apresentado ao 13º Congresso Brasileiro
+ de Engenharia Sanitária e Ambiental, Maceió, 1985},
+ options = {noslsn},
+}
+
+@book{zilberman1998,
+ keywords = {8.11},
+ author = {R. Zilberman},
+ title = {A leitura e o ensino da literatura},
+ location = {São Paulo},
+ publisher = {Contexto},
+ date = {1988},
+ pagetotal = {146},
+ relatedtype = {recensionof},
+ related = {silva1988},
+}
+
+@article{silva1988,
+ % keywords = {8.11},
+ author = {E. T. Silva},
+ journaltitle = {Ci. Inf.},
+ location = {Brasília, DF},
+ volume = {17},
+ number = {2},
+ issue = {jul./dez.},
+ year = {1988},
+}
+
+@book{matsuda1986,
+ keywords = {8.11},
+ author = {C. T. Matsuda},
+ title = {Cometas: do mito à ciência},
+ date = {1986},
+ publisher = {Ícone},
+ location = {São Paulo},
+ related = {santos1987},
+ relatedtype = {reviewof},
+}
+
+@article{santos1987,
+ % keywords = {8.11},
+ author = {P. M. Santos},
+ title = {Cometa},
+ subtitle = {divindade momentânea ou bola de gelo sujo?},
+ journaltitle = {Ciência Hoje},
+ location = {São Paulo},
+ volume = {5},
+ number = {30},
+ pages = {20},
+ date = {1987-04},
+}
+
+@misc{resprin1997,
+ keywords = {8.11},
+ title = {Resprin},
+ subtitle = {comprimidos},
+ titleaddon = {Responsável técnico Delosmar R. Bastos},
+ location = {São José dos Campos},
+ publisher = {Johnson \& Johnson},
+ date = {1997},
+ note = {Bula de remédio},
+}
+
+@book{carruth1993,
+ keywords = {8.11},
+ author = {Jane Carruth},
+ title = {A nova casa do Bebeto},
+ titleaddon = {Desenhos de Tony Hutchings. Tradução Ruth Rocha},
+ location = {São Paulo},
+ publisher = {Círculo do Livro},
+ date = {1993},
+ pagetotal = {21},
+ note = {Tradução de: Moving House},
+ % editor = {Tony Hutchings},
+ % editortype = {illustrator},
+ % translator = {Ruth Rocha},
+ % O ideal seria usar os campos `editor` e `editortype` em vez de
+ % `titleaddon`.
+}
+
+@book{saadi1994,
+ keywords = {8.11},
+ author = {Saadi},
+ title = {O jardim das rosas\ldots},
+ titleaddon = {Tradução de Aurélio Buarque de Holanda},
+ location = {Rio de Janeiro},
+ publisher = {J. Olympio},
+ date = {1944},
+ pagetotal = {124},
+ illustrated = {il.},
+ series = {Coleção Rubaiyat},
+ note = {Versão francesa de Franz Toussaint do original árabe},
+ % translator = {Aurélio Buarque de Holanda},
+}
+
+@book{makau1962,
+ keywords = {8.11},
+ author = {A. B. Makau},
+ title = {Esperanza de la educación hoy},
+ location = {Lisboa},
+ publisher = {J.~Piaget},
+ date = {1962},
+ related = {moore1960b},
+ relatedtype = {reprintfrom},
+}
+
+@book{moore1960b,
+ % keywords = {8.11},
+ editor = {W. Moore},
+ title = {Construtivismo del movimiento educacional},
+ subtitle = {soluciones},
+ location = {Córdoba, AR},
+ date = {1960},
+ pages = {309-340},
+}
+
+@article{lion1981,
+ keywords = {8.11},
+ author = {M. F. Lion and J. Andrade},
+ title = {Drogas cardiovasculares e gravidez},
+ titleaddon = {Separata de:},
+ journaltitle = {Arquivos Brasileiros de Cardiologia},
+ location = {São Paulo},
+ volume = {37},
+ number = {2},
+ pages = {125-127},
+ date = {1981},
+}
+
+@thesis{morgado1990,
+ keywords = {8.11},
+ author = {M. L. C. Morgado},
+ title = {Reimplante dentário},
+ date = {1990},
+ pagetotal = {51},
+ bookpagination = {sheet},
+ type = {Trabalho de conclusão de curso (Especialização)},
+ institution = {Faculdade de Odontologia,
+ Universidade Camilo Castelo Branco},
+ location = {São Paulo},
+ eventdate = {1990},
+}
+
+@mastersthesis{araujo1986,
+ keywords = {8.11},
+ author = {U. A. M. Araujo},
+ title = {Máscaras inteiriças Tukúna},
+ subtitle = {possibilidade de estudo de artefatos
+ de museu para o conhecimento do universo indígena},
+ date = {1985},
+ pagetotal = {102},
+ bookpagination = {sheet},
+ type = {Dissertação (Mestrado em Ciências Sociais)},
+ institution = {Fundação Escola de Sociologia Política de São Paulo},
+ location = {São Paulo},
+ eventdate = {1986},
+}
+
+@thesis{alentejo1999,
+ keywords = {8.11},
+ author = {Eduardo Alentejo},
+ title = {Catalogação de postais},
+ titleaddon = {1999. Trabalho apresentado como requisito parcial para
+ aprovação na Disciplina Catalogação III},
+ institution = {Escola de Biblioteconomia, Universidade do Rio de
+ Janeiro},
+ location = {Rio de Janeiro},
+ eventdate = {1999},
+ % date = {1999},
+ % A data foi acrescentada ao campo `titleaddon` para que ficasse antes do
+ % texto desse campo (que deveria ir no campo `note`, sendo impresso no fim
+ % da entrada, mas, pra variar, a ABNT resolveu fazer diferente).
+}
+
+@book{holanda1994,
+ keywords = {8.11},
+ author = {S. B. Holanda},
+ title = {Caminhos e fronteiras},
+ edition = {3},
+ location = {São Paulo},
+ publisher = {Companhia das Letras},
+ date = {1994},
+ pagetotal = {301},
+ illustrated = {il.},
+ note = {Inclui índice},
+ isbn = {85-7164-411-x},
+}
+
+@book{pelosi1993,
+ keywords = {8.11},
+ author = {T. Pelosi},
+ title = {O caminho das cordas},
+ location = {Rio de Janeiro},
+ publisher = {Anais},
+ date = {1993},
+ pagetotal = {158},
+ illustrated = {il.},
+ note = {Bibliografia: p. 115-158},
+}
+
+@book{tringali1994,
+ keywords = {8.11},
+ author = {Dante Tringali},
+ title = {Escolas literárias},
+ location = {São Paulo},
+ publisher = {Musa},
+ date = {1994},
+ pagetotal = {246},
+ note = {Inclui bibliografias},
+}
+
+@book{cardim1984,
+ keywords = {8.11},
+ author = {M. S. Cardim},
+ title = {Constitui o ensino de 2º grau regular noturno
+ uma verdadeira educação de adultos?},
+ location = {Curitiba},
+ publisher = {Universidade Federal do Paraná, Setor de Educação},
+ date = {1984},
+ note = {3 microfichas. Redução de 1:24.000},
+}
+
+% <<<
+
+% <<<
+
+% section 9 >>>1
+
+% section 9.1 >>>2
+
+@book{confederacao1993,
+ keywords = {9.1},
+ author = {{Confederação nacional da indústria\nopunct}},
+ nameaddon = {(Brasil)},
+ title = {Educação básica e formação profissional},
+ date = {1993},
+ location = {Salvador},
+ options = {noslsn},
+ % Para que o "(Brasil)" fique em minúsculas, pode-se usar
+ % `\nopunct` para omitir o ponto depois do autor e então acrescentar
+ % essa informação no campo `nameaddon`. Também é possível usar o campo
+ % `authortype` para essa informação, mas "Brasil" nãe é exatamente um
+ % tipo de autor, embora a ABNT imprima como se fosse.
+ % Nenhuma dessas possibilidades é ideal, e provavelmente causariam
+ % problemas em outros estilos, mas como a ABNT é inconsistente é
+ % necessário fazer algo assim.
+}
+
+@book{dreifuss1996,
+ keywords = {9.1},
+ author = {René Dreifuss},
+ title = {A era das perplexidades},
+ subtitle = {mundialização, globalização e planetarização},
+ date = {1996},
+ publisher = {Vozes},
+ location = {Petrópolis},
+}
+
+@book{gramsci1978,
+ keywords = {9.1},
+ author = {Antonio Gramsci},
+ title = {Concepção dialética da História},
+ edition = {2},
+ date = {1978},
+ publisher = {Civilização Brasileira},
+ location = {Rio de Janeiro},
+}
+
+@mvbook{freyre1943,
+ keywords = {9.1},
+ author = {Gilberto Freyre},
+ title = {Casa grande \& senzala},
+ subtitle = {formação da família brasileira
+ sob regime de economia patriarcal},
+ location = {Rio de Janeiro},
+ publisher = {J. Olympio},
+ date = {1943},
+ volumes = {2},
+}
+
+@book{freyre1936a,
+ keywords = {9.1},
+ author = {Gilberto Freyre},
+ title = {Sobrados e mocambos},
+ subtitle = {decadência do patriarcado rural no Brasil},
+ location = {São Paulo},
+ publisher = {Ed. Nacional},
+ date = {1936},
+ options = {repeatfields=false, repeatfirstfields=false},
+}
+
+@book{freyre1936b,
+ keywords = {9.1},
+ author = {Gilberto Freyre},
+ title = {Sobrados e mocambos},
+ subtitle = {decadência do patriarcado rural no Brasil},
+ location = {São Paulo},
+ publisher = {Ed. Nacional},
+ date = {1936},
+ pagetotal = {405},
+}
+
+@book{freyre1938,
+ keywords = {9.1},
+ author = {Gilberto Freyre},
+ title = {Sobrados e mocambos},
+ subtitle = {decadência do patriarcado rural no Brasil},
+ location = {São Paulo},
+ publisher = {Ed. Nacional},
+ date = {1938},
+ edition = {2},
+ pagetotal = {410},
+ options = {repeatfields=false, repeatfirstfields=false},
+}
+
+% <<<
+
+% section 9.2 >>>2
+
+@book{cretella1992,
+ keywords = {9.2},
+ author = {Cretella Júnior, José},
+ title = {Do impeachment no direito brasileiro},
+ location = {[São Paulo]},
+ publisher = {R. dos Tribunais},
+ date = {1992},
+ pages = {107},
+}
+
+@booklet{boletim1965b,
+ keywords = {9.2},
+ title = {Boletim~estatístico [da] Rede Ferroviária Federal},
+ location = {Rio de Janeiro},
+ date = {1965},
+ pages = {20},
+}
+
+% <<<
+
+% <<<
+
+% vim: set foldmarker=\ >>>,\ <<< :
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.bib b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.bib
index 6b050e17e6..b42235964f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.bib
@@ -128,3 +128,36 @@
location = {Campinas},
year = {2013},
}
+
+@article{lucca2009,
+ keywords = {7.7,7.7.5},
+ author = {Gabriella {De Lucca}},
+ title = {Notas curtas},
+ journaltitle = {Getulio},
+ location = {São Paulo},
+ volume = {ano 3},
+ pages = {9},
+ % Alternativa 1:
+ date = {2009-07/2009-08},
+ % Alternativa 2:
+ % month = {07},
+ % year = {2009},
+ % endmonth = {08},
+ % endyear = {2009},
+ options = {slashdaterange}
+}
+
+@inthesis{rodrigues2009parte,
+ keywords = {7.3},
+ author = {Ana Lúcia Aquilas Rodrigues},
+ title = {Aspectos éticos},
+ booktitle = {Impacto de um programa de exercícios no local de trabalho sobre o nível de atividade física e o estágio de prontidão para a mudança de comportamento},
+ bookauthor = {Ana Lúcia Aquilas Rodrigues},
+ date = {2009},
+ type = {Dissertação (Mestrado em Fisiopatologia Experimental)},
+ institution = {Faculdade de Medicina, Universidade de São Paulo},
+ location = {São Paulo},
+ eventdate = {2009},
+ pages = {19-20},
+ bookpagination = {sheet},
+}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.tex b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.tex
index 9af40abf29..a51b1fc09c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.tex
@@ -148,12 +148,19 @@ daquelas descritas no manual do pacote):
\item [ittitles] Usa itálico para os títulos na bibliografia
\item [justify] Imprime o texto justificado em vez de alinhado à esquerda
\item [indent] Indenta as entradas da bibliografia
+ \item [accite] Imprime os nomes em caixa alta nas citações
\item [sccite] Imprime os nomes em versalete nas citações
\item [scbib] Imprime os nomes em versalete na bibliografia
\item [pretty] Ativa as cinco primeiras opções citadas de uma vez
+ \item [oldspacing] Não realiza as alterações de espaçamento entre
+ referências bibliográficas introduzidas na norma NBR 6023 2018
+ (espaçamento simples entre linhas e uma linha em branco entre
+ entradas)
\item [giveninits] Abrevia os primeiros nomes na bibliografia
\item [extrayear] Diferencia os anos com letras (e.g., 2017a)
também na bibliografia
+ \item [dateyear] Imprime apenas o ano das entradas, descartando todas as outras partes da data. Se utilizada como uma opção global, recomenda-se o uso da opção \texttt{date=year} em seu lugar (menor risco de bugs)
+ \item [datemonth] Imprime apenas o mês e ano das entradas, descartando todas as outras partes da data
\item [nosl] Oculta as abreviações [s.l.] na bibliografia
\item [nosn] Oculta as abreviações [s.n.] na bibliografia
\item [noslsn] Oculta as abreviações [s.l], [s.n] e [s.l.: s.n.]
@@ -165,6 +172,7 @@ daquelas descritas no manual do pacote):
mas substitui os autores por traços sublineares
\item [usedashes] Usa os traços padrão do \texttt{biblatex} nos campos
repetidos
+ \item [slashdaterange] Utiliza uma barra ao invés do caractere padrão para separar períodos de datas. Sua utilização é mais recomendada para apenas entradas específicas
\item [language=brazil] Essa opção é adicionada automaticamente. Para
imprimir a bibliografia em outros idiomas, substitua o termo
\texttt{brazil} pelo código da linguagem desejada
@@ -172,7 +180,7 @@ daquelas descritas no manual do pacote):
\item [citecount] Além das páginas, especifica quantas vezes cada entrada
foi citada.
\item [comp] Abrevia a numeração no estilo numérico, imprimindo, e.g.,
- \enquote{(1--4)} em vez de \enquote{(1, 2, 3, 4)}.
+ \enquote{(1--4)} em vez de \enquote{(1, 2, 3, 4)}. Para funcionar, todas as entradas devem ser adicionadas dentro do mesmo par de chaves, sendo separadas por vírgula, e.g.: \verb|\cite{lucca2009,assis08,assis08:1,assis08:1b}|.
\end{description}% <<<3
\vspace{\baselineskip}
@@ -180,7 +188,7 @@ E.g.: \verb"\usepackage[backend=biber, style=abnt, ittitles]{biblatex}"
\begin{sloppypar}
As opções \texttt{repeatfields}, \texttt{repeattitles}, \texttt{backref},
- \texttt{nosl}, \texttt{nosn}, \texttt{noslsn} e \texttt{extrayear} também
+ \texttt{nosl}, \texttt{nosn}, \texttt{noslsn}, \texttt{extrayear}, \texttt{dateyear}, \texttt{datemonth} e \texttt{slashdaterange} também
podem ser usadas apenas em entradas específicas. E.g.:
\end{sloppypar}
@@ -192,6 +200,31 @@ E.g.: \verb"\usepackage[backend=biber, style=abnt, ittitles]{biblatex}"
options = {repeattitles, noslsn=false},
}
\end{verbatim}
+
+Ou, um exemplo de uso do \texttt{slashdaterange}:
+\begin{verbatim}
+ @article{lucca2009,
+ author = {Gabriella {De Lucca}},
+ title = {Notas curtas},
+ journaltitle = {Getulio},
+ location = {São Paulo},
+ volume = {ano 3},
+ pages = {9},
+ date = {2009-07/2009-08},
+ options = {slashdaterange}
+ }
+\end{verbatim}
+
+ Que resulta em:
+ \singlecite{lucca2009}
+
+As opções \texttt{dateyear} e \texttt{datemonth} também podem ser aplicadas apenas para tipos específicos de entradas, através do comando \verb|\ExecuteBibliographyOptions|. E. g.:
+
+\begin{verbatim}
+ \ExecuteBibliographyOptions[book]{dateyear}
+ \ExecuteBibliographyOptions[article]{datemonth}
+\end{verbatim}
+
% <<<2
@@ -739,6 +772,32 @@ Uma tese de doutorado:
\singlecite{amaral15}
% <<<3
+\subsection{@inthesis}% >>>3
+ Parte de um trabalho acadêmico (e.g.: monografia, tese ou dissertação):
+
+\begin{verbatim}
+ @inthesis{rodrigues2009parte,
+ author = {Ana Lúcia Aquilas Rodrigues},
+ title = {Aspectos éticos},
+ booktitle = {Impacto de um programa de exercícios
+ no local de trabalho sobre o nível de atividade
+ física e o estágio de prontidão para a mudança
+ de comportamento},
+ bookauthor = {Ana Lúcia Aquilas Rodrigues},
+ date = {2009},
+ type = {Dissertação (Mestrado em Fisiopatologia
+ Experimental)},
+ institution = {Faculdade de Medicina, Universidade de São Paulo},
+ location = {São Paulo},
+ eventdate = {2009},
+ pages = {19-20},
+ bookpagination = {sheet},
+ }
+\end{verbatim}
+
+\singlecite{rodrigues2009parte}
+% <<<3
+
\subsection{@inproceedings}% >>>3
Trabalhos publicados em resumos ou anais de eventos:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt-numeric.bbx
index 9e9aba2015..ec0dfccfb5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt-numeric.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt-numeric.bbx
@@ -16,7 +16,10 @@
[2018-11-17\space v3.4\space ABNT BibLaTeX citation style]%
\RequireBibliographyStyle{abnt}
-\ExecuteBibliographyOptions{labelnumber}
+\ExecuteBibliographyOptions{%
+ labelnumber,%
+ sorting=none%
+}
\providebool{bbx:subentry}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt.bbx
index ec95c836c8..ca0240d2f8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/bbx/abnt.bbx
@@ -24,12 +24,21 @@
\RequirePackage{xpatch}%
\RequirePackage{expl3}%
-\DeclareLanguageMappingSuffix{-abnt}
+\DeclareLanguageMapping{american}{american-abnt}
+\DeclareLanguageMapping{australian}{australian-abnt}
+\DeclareLanguageMapping{brazil}{brazil-abnt}
+\DeclareLanguageMapping{brazilian}{brazilian-abnt}
+\DeclareLanguageMapping{british}{british-abnt}
+\DeclareLanguageMapping{canadian}{canadian-abnt}
+\DeclareLanguageMapping{english}{english-abnt}
+\DeclareLanguageMapping{portuges}{portuges-abnt}
+\DeclareLanguageMapping{portuguese}{portuguese-abnt}
+\DeclareLanguageMapping{spanish}{spanish-abnt}
\RequireBibliographyStyle{standard}%
\ExecuteBibliographyOptions{%
- language=brazil,%
+ % language=brazil,%
block=none,%
urldate=long,%
pagetracker,%
@@ -39,9 +48,6 @@
\InitializeBibliographyStyle{\global\undef\bbx@lasthash}%
-\let\origbibsetup\bibsetup%
-\appto{\bibsetup}{\raggedright}%
-
\setcounter{biburlnumpenalty}{3000}%
\setcounter{biburllcpenalty}{6000}%
\setcounter{biburlucpenalty}{9000}%
@@ -49,6 +55,728 @@
% <<<1
+% Macros >>>1
+
+% Dashed option >>>2
+
+\newbool{bbx@inset}%
+
+\newtoggle{isdashed}%
+
+\newcommand*{\bibnameunderscore}{\underline{\hspace*{4em}}}%
+\newcommand*{\nopunctdash}{\bibnameunderscore\addspace}%
+\renewcommand*{\bibnamedash}{\bibnameunderscore\addperiod\addspace}%
+
+\renewbibmacro*{begrelated}{%% >>>3
+ \booltrue{bbx@inset}%
+}%% <<<3
+
+\newbibmacro*{bbx:savehash}{%% >>>3
+ \savefield{fullhash}{\bbx@lasthash}%
+}%% <<<3
+
+\newbibmacro*{bbx:saveorg}{%% >>>3
+ \savelist{organization}{\bbx@lastorg}%
+}%% <<<3
+
+\newbibmacro*{bbx:savetitle}{%% >>>3
+ \savefield{title}{\bbx@lasttitle}%
+}%% <<<3
+
+\newbibmacro*{bbx:savesubtitle}{%% >>>3
+ \savefield{subtitle}{\bbx@lastsubtitle}%
+}%% <<<3
+
+\newbibmacro*{bbx:dashcheck}[2]{%% >>>3
+ \ifboolexpr{%
+ (%
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}%
+ or%
+ test {\iflistequals{organization}{\bbx@lastorg}}%
+ )%
+ and%
+ not test \iffirstonpage%
+ and%
+ not test {\iftoggle{repeatfields}}%
+ and%
+ not test {\iftoggle{repeatfirstfields}}%
+ and%
+ (%
+ not bool {bbx@inset}%
+ or%
+ test {\iffieldequalstr{entrysetcount}{1}}%
+ )%
+ }%
+ {\settoggle{isdashed}{true}#1}%
+ {\settoggle{isdashed}{false}#2}%
+}%% <<<3
+
+\newbibmacro*{bbx:titledashcheck}[2]{%% >>>3
+ \iftoggle{isdashed}{%
+ \ifboolexpr{%
+ test {\iffieldequals{title}{\bbx@lasttitle}}%
+ and%
+ (%
+ test {\iffieldequals{subtitle}{\bbx@lastsubtitle}}%
+ or%
+ test {\iffieldundef{subtitle}}%
+ )%
+ and%
+ not test {\iftoggle{repeattitle}}%
+ }%
+ {#1}%
+ {#2}%
+ }{%
+ #2%
+ }%
+}%% <<<3
+
+\newbibmacro*{bbx:ineditordashcheck}[2]{%% >>>3
+ \ifboolexpr{%
+ test {\ifnamesequal{editor}{author}}%
+ and%
+ not test {\iftoggle{repeatfields}}%
+ and%
+ (%
+ not bool {bbx@inset}%
+ or%
+ test {\iffieldequalstr{entrysetcount}{1}}%
+ )%
+ }%
+ {\settoggle{isdashed}{true}#1}%
+ {\settoggle{isdashed}{false}#2}%
+}%% <<<3
+
+% <<<2
+
+% Titles >>>2
+
+\newbibmacro*{titleiskey}[2]{%% >>>3
+\ifboolexpr{%
+ test {\ifnameundef{author}}%
+ and%
+ test {\ifnameundef{editor}}%
+ and%
+ test {\ifnameundef{holder}}%
+ and%
+ test {\ifcsundef{saveded}}%
+ and%
+ test {\ifcsundef{savedorg}}%
+ and%
+ test {\iffieldundef{eventtitle}}%
+}%
+ {#1}%
+ {#2}%
+}%% <<<3
+
+\renewbibmacro*{title}{%% >>>3
+ \ifboolexpr{%
+ test {\iffieldundef{title}}%
+ and%
+ test {\iffieldundef{subtitle}}%
+ }%
+ {\global\undef\bbx@lasttitle%
+ \global\undef\bbx@lastsubtitle}%
+ {\usebibmacro{bbx:titledashcheck}%
+ {\unspace\bibnamedash}%
+ {\usebibmacro{bbx:savetitle}%
+ \usebibmacro{bbx:savesubtitle}%
+ \printtext[title]{%
+ \usebibmacro{titleiskey}%
+ {\unspace\printfield[upperfirst]{title}}%
+ {\ifboolexpr{%
+ test {\iffieldundef{maintitle}}%
+ and%
+ test {\iffieldundef{related}}%
+ }%
+ {\printfield[titlecase]{title}}%
+ {\printfield[normalfont]{title}}}%
+ \normalfont{%
+ \iffieldendswithpunct{title}{%
+ \setunit*{\addspace}%
+ }{%
+ \setunit*{\subtitlepunct}%
+ }
+ \printfield[normalfont]{subtitle}%
+ \setunit{\addperiod\addspace}%
+ }}%
+ \newunit}}%
+ \printfield{titleaddon}%
+}%% <<<3
+
+\newbibmacro*{booktitleiskey}[2]{%% >>>3
+\ifboolexpr{%
+ test {\ifnameundef{bookauthor}}%
+ and%
+ test {\ifnameundef{editor}}%
+ and%
+ test {\iffieldundef{organization}}%
+ and%
+ test {\ifcsundef{saveded}}%
+ and%
+ test {\ifcsundef{savedorg}}%
+ and%
+ test {\iffieldundef{eventtitle}}%
+}%
+ {#1}%
+ {#2}%
+}%% <<<3
+
+\renewbibmacro*{booktitle}{%% >>>3
+ \ifboolexpr{%
+ test {\iffieldundef{booktitle}}%
+ and%
+ test {\iffieldundef{booksubtitle}}%
+ }%
+ {}%
+ {\printtext[booktitle]{%
+ \usebibmacro{booktitleiskey}{%
+ \printfield[upperfirst]{booktitle}%
+ }{%
+ \printfield[titlecase]{booktitle}%
+ }%
+ \iffieldendswithpunct{booktitle}{%
+ \normalfont{\setunit*{\addspace}}%
+ }{%
+ \normalfont{\setunit*{\subtitlepunct}}%
+ }
+ \printfield[normalfont]{booksubtitle}}%
+ \newunit}%
+ \printfield{booktitleaddon}%
+}%% <<<3
+
+\renewbibmacro*{maintitle}{%% >>>3
+ \ifboolexpr{%
+ test {\iffieldundef{maintitle}}%
+ and%
+ test {\iffieldundef{mainsubtitle}}%
+ }%
+ {}%
+ {\printtext[maintitle]{%
+ \usebibmacro{titleiskey}{%
+ \printfield[upperfirst]{maintitle}%
+ }{%
+ \printfield[titlecase]{maintitle}%
+ }%
+ \iffieldendswithpunct{maintitle}{%
+ \normalfont{\setunit*{\addspace}}%
+ }{%
+ \normalfont{\setunit*{\subtitlepunct}}%
+ }
+ \printfield[normalfont]{mainsubtitle}}%
+ \newunit}%
+ \printfield{maintitleaddon}%
+}%% <<<3
+
+\newbibmacro*{in:maintitle}{%% >>>3
+ \iffieldundef{maintitle}{}{%
+ \usebibmacro{in:}%
+ \iftoggle{repeatfields}%
+ {\addspace\usebibmacro{author/editor+others}}%
+ {\addspace\bibnamedash}%
+ \newunit%
+ \usebibmacro{maintitle}%
+ }%
+}%% <<<3
+
+\renewbibmacro*{maintitle+booktitle}{%% >>>3
+ \iffieldundef{maintitle}%
+ {}%
+ {\usebibmacro{maintitle}%
+ \newunit\newblock%
+ \iffieldundef{volume}%
+ {}%
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\addspace}}}%
+ \usebibmacro{booktitle}%
+ \newunit%
+}%% <<<3
+
+\newbibmacro*{maintitle/booktitle}{%% >>>3
+ \iffieldundef{maintitle}%
+ {\usebibmacro{booktitle}}%
+ {\usebibmacro{maintitle}}%
+}%% <<<3
+
+\renewbibmacro*{journal}{%% >>>3
+ \iffieldundef{journaltitle}%
+ {}%
+ {\printtext[journaltitle]{%
+ \printfield[titlecase]{journaltitle}%
+ \iffieldendswithpunct{journaltitle}{%
+ \setunit{\addspace}%
+ }{%
+ \setunit{\subtitlepunct}%
+ }
+ \printfield[normalfont]{journalsubtitle}}}%
+}%% <<<3
+
+\newbibmacro{journal+section}{%% >>>3
+ \usebibmacro{journal}%
+ \iffieldundef{section}%
+ {}%
+ {\setunit{\addspace\textendash\addspace}%
+ \printfield{section}}%
+}%% <<<3
+
+\renewbibmacro*{journal+issuetitle}{%% >>>3
+ \usebibmacro{journal}%
+ \setunit*{\addcomma\addspace}%
+ \iffieldundef{series}%
+ {}%
+ {\newunit%
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \newunit%
+}%% <<<3
+
+\renewbibmacro*{periodical}{%% >>>3
+ \iffieldundef{title}{}{%
+ \printtext[title]{%
+ \iffieldundef{issue}{%
+ \unspace\printfield[upperfirst]{title}%
+ }{%
+ \printfield[titlecase]{title}%
+ }
+ \normalfont{%
+ \iffieldendswithpunct{title}{%
+ \setunit*{\addspace}%
+ }{%
+ \setunit*{\subtitlepunct}%
+ }
+ \printfield[normalfont]{subtitle}%
+ }%
+ }%
+ }%
+}%% <<<3
+
+% <<<2
+
+% Names >>>2
+
+\renewbibmacro*{author}{%% >>>3
+ \ifboolexpr{%
+ test \ifuseauthor%
+ and%
+ not test {\ifnameundef{author}}%
+ }{%
+ \usebibmacro{bbx:dashcheck}{%
+ \iffieldundef{authortype}{%
+ \bibnamedash%
+ \newunit%
+ \printfield{nameaddon}%
+ }{%
+ \nopunctdash%
+ \usebibmacro{authorstrg}%
+ \newunit%
+ \printfield{nameaddon}%
+ }%
+ }{%
+ \usebibmacro{bbx:savehash}%
+ \printnames{author}%
+ \addspace%
+ \usebibmacro{authorstrg}%
+ \newunit%
+ \printfield{nameaddon}%
+ }%
+ }{%
+ \global\undef\bbx@lasthash%
+ }%
+}%% <<<3
+
+\renewbibmacro*{editor+others}{%% >>>3
+ \ifboolexpr{%
+ test \ifuseeditor%
+ and%
+ not test {\ifnameundef{editor}}%
+ }{%
+ \usebibmacro{bbx:dashcheck}{%
+ \iffieldundef{editortype}{%
+ \bibnamedash%
+ }{%
+ \nopunctdash%
+ \usebibmacro{editor+othersstrg}%
+ }%
+ }{%
+ \usebibmacro{bbx:savehash}%
+ \printnames{editor}%
+ \setunit{\addspace}%
+ \usebibmacro{editor+othersstrg}%
+ }%
+ \savenamecs*{editor}{saveded}%
+ \clearname{editor}%
+ }{%
+ \global\undef\bbx@lasthash%
+ \usebibmacro{organization}%
+ }%
+}%% <<<3
+
+\renewbibmacro*{byeditor+others}{%% >>>3
+ \toggletrue{byeditor+others}%
+ \ifnameundef{editor}{}{% else
+ \usebibmacro{byeditor+othersstrg}%
+ \setunit*{\addspace}%
+ \printnames[byeditor]{editor}%
+ \clearname{editor}%
+ \newunit%
+ }%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}%
+ \togglefalse{byeditor+others}%
+}%% <<<3
+
+\newbibmacro*{organization}{%% >>>3
+ \iflistundef{organization}%
+ {\global\undef\bbx@lastorg}%
+ {\usebibmacro{bbx:dashcheck}%
+ {\bibnamedash}%
+ {\usebibmacro{bbx:saveorg}%
+ \printlist[uppercase]{organization}}%
+ \savelistcs*{organization}{savedorg}%
+ \clearlist{organization}%
+ \newunit%
+ \printfield{nameaddon}}%
+}%% <<<3
+
+\newbibmacro*{author/organization}{%% >>>3
+ \ifnameundef{author}%
+ {\usebibmacro{organization}}%
+ {\usebibmacro{author}}%
+}%% <<<3
+
+\newbibmacro*{editor+others/organization}{%% >>>3
+ \ifnameundef{editor}%
+ {\usebibmacro{organization}}%
+ {\usebibmacro{editor+others}}%
+}%% <<<3
+
+\newbibmacro*{organization/eventtitle}{%% >>>3
+ \iffieldundef{eventtitle}%
+ {\usebibmacro{organization}}%
+ {\printfield[uppercase]{eventtitle}}%
+}%% <<<3
+
+\newbibmacro*{bookauthor/editor+others}{%% >>>3
+ \ifnameundef{bookauthor}{%
+ \usebibmacro{editor+others}}%
+ {\printnames{bookauthor}}%
+}%% <<<3
+
+\newbibmacro*{in:bookauthor+others}{%% >>>3
+ \usebibmacro{in:}%
+ \ifnameundef{bookauthor}{%
+ % do nothing
+ }{% else
+ \ifnamesequal{author}{bookauthor}{%
+ \iftoggle{repeatfields}{%
+ \usebibmacro{author/editor+others}%
+ }{% else
+ \bibnamedash%
+ }%
+ }{% else
+ \printnames{bookauthor}%
+ }%
+ }%
+}%% <<<3
+
+\newbibmacro*{in:editor+others}{%% >>>3
+ \usebibmacro{in:}%
+ \addspace%
+ \ifnameundef{editor}{%
+ \printlist[uppercase]{organization}%
+ }{%
+ \usebibmacro{bbx:ineditordashcheck}{%
+ \iffieldundef{editortype}{%
+ \bibnamedash%
+ }{%
+ \nopunctdash%
+ \usebibmacro{editor+othersstrg}%
+ \savenamecs*{editor}{saveded}%
+ \clearname{editor}%
+ }%
+ }{%
+ \printnames{editor}%
+ \setunit*{\addspace}%
+ \usebibmacro{editor+othersstrg}%
+ \savenamecs*{editor}{saveded}%
+ \clearname{editor}%
+ }%
+ }%
+}%% <<<3
+
+\newbibmacro*{in:eventtitle/organization/editor}{%% >>>3
+ \usebibmacro{in:}%
+ \iffieldundef{eventtitle}{%
+ \ifnameundef{editor}{%
+ \printlist[uppercase]{organization}%
+ \clearlist{organization}%
+ }{%
+ \usebibmacro{editor+others}%
+ }%
+ }{%
+ \printfield[uppercase]{eventtitle}%
+ }%
+}%% <<<3
+
+% <<<2
+
+% Publisher, location, date, issue >>>2
+
+\renewbibmacro*{date}{%
+ \iftoggle{extradate}{%
+ \printdateextra%
+ }{%
+ \printdate%
+ }%
+ \printunit{\addperiod\addspace}%
+}%
+
+\newbibmacro*{publisher}{%% >>>3
+ \iflistundef{publisher}%
+ {\iftoggle{nosn}{}{\printtext[brackets]{\mkbibemph{\bibstring{sinenomine}}}}}%
+ {\printlist{publisher}}%
+}%% <<<3
+
+\newbibmacro*{location}{%% >>>3
+ \iflistundef{location}%
+ {\iftoggle{nosl}{}{\printtext[brackets]{\mkbibemph{\bibstring{sineloco}}}}}%
+ {\printlist{location}}%
+}%% <<<3
+
+\newbibmacro*{venue}{%% >>>3
+ \iffieldundef{venue}%
+ {\iftoggle{nosl}{}{\printtext[brackets]{\mkbibemph{\bibstring{sineloco}}}}}%
+ {\printfield{venue}}%
+}%% <<<3
+
+\renewbibmacro*{location+date}{%% >>>3
+ \usebibmacro{location}%
+ \setunit*{\addcomma\addspace}%
+ \usebibmacro{date}%
+ \newunit%
+}%% <<<3
+
+\renewbibmacro*{publisher+location+date}{%% >>>3
+ \ifboolexpr{%
+ test {\iflistundef{publisher}}%
+ and%
+ test {\iflistundef{location}}%
+ and%
+ not test {\iftoggle{nosl}}%
+ and%
+ not test {\iftoggle{nosn}}%
+ }{%
+ \printtext[brackets]{\mkbibemph{\bibstring{sineloco}}%
+ \setunit{\addcolon\addnbspace}%
+ \mkbibemph{\bibstring{sinenomine}}}%
+ }{%
+ \ifboolexpr{%
+ test {\ifnameundef{author}}%
+ and%
+ test {\ifnameundef{editor}}%
+ and%
+ test {\iflistundef{publisher}}%
+ and%
+ not test {\iflistundef{organization}}%
+ }{%
+ \usebibmacro{location}%
+ }{%
+ \usebibmacro{location}%
+ \setunit*{\addcolon\addspace}%
+ \usebibmacro{publisher}%
+ }%
+ }%
+ \setunit*{\addcomma\addspace}%
+ \usebibmacro{date}%
+ \newunit%
+}%% <<<3
+
+\renewbibmacro*{issue}{%% >>>3
+ \iffieldundef{issuetitle}%
+ {}%
+ {\printtext[issuetitle]{%
+ \printfield[upperfirst]{issuetitle}%
+ \iffieldendswithpunct{issuetitle}{%
+ \setunit*{\addspace}%
+ }{%
+ \setunit*{\subtitlepunct}%
+ }
+ \printfield[normalfont]{issuesubtitle}}}%
+}%% <<<3
+
+\renewbibmacro*{issue+date}{%% >>>3
+ \iffieldundef{issue}%
+ {\usebibmacro{date}}%
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit%
+}%% <<<3
+
+\newbibmacro*{publisher+location+issue+date}{%% >>>3
+ \ifboolexpr{%
+ test {\iflistundef{publisher}}%
+ and%
+ test {\iflistundef{location}}%
+ and%
+ not test {\iftoggle{nosl}}%
+ and%
+ not test {\iftoggle{nosn}}%
+ }{%
+ \printtext[brackets]{\mkbibemph{\bibstring{sineloco}}%
+ \setunit{\addcolon\addnbspace}%
+ \mkbibemph{\bibstring{sinenomine}}}%
+ }{%
+ \ifboolexpr{%
+ test {\ifnameundef{author}}%
+ and%
+ test {\ifnameundef{editor}}%
+ and%
+ test {\iflistundef{publisher}}%
+ and%
+ not test {\iflistundef{organization}}%
+ }{%
+ \usebibmacro{location}%
+ }{%
+ \usebibmacro{location}%
+ \setunit*{\addcolon\addspace}%
+ \usebibmacro{publisher}%
+ }%
+ }%
+ \setunit*{\addcomma\addspace}%
+ \printfield[number]{issue}%
+ \setunit*{\addcomma\addspace}%
+ \usebibmacro{date}%
+ \newunit%
+}%% <<<3
+
+% <<<2
+
+% Misc >>>2
+
+\xpatchbibmacro{name:andothers}{%% >>>3
+ \bibstring{andothers}%
+}{%
+ \mkbibemph{\bibstring{andothers}}%
+}{}{}%% <<<3
+
+\renewbibmacro*{in:}{%% >>>3
+ \mkbibemph{\bibstring{in}\intitlepunct}
+}%% <<<3
+
+\renewbibmacro*{volume+number+eid}{%% >>>3
+ \printfield{volume}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{number}%
+ \setunit{\addcomma\addspace}%
+ \printfield{eid}%
+}%% <<<3
+
+\renewbibmacro*{series+number}{%% >>>3
+ \iffieldundef{series}{}{%
+ \printtext[parens]{%
+ \printfield{series}%
+ \setunit*{\addcomma\addspace}%
+ \printfield[normalfont]{number}%
+ \newunit}%
+ }%
+}%% <<<3
+
+\renewbibmacro*{url+urldate}{%% >>>3
+ \usebibmacro{url}%
+ \iffieldundef{urlyear}%
+ {}%
+ {\setunit*{\addperiod\addspace}%
+ \usebibmacro{urldate}}%
+}%% <<<3
+
+\newbibmacro*{mathesis}{%% >>>3
+ \iffieldundef{type}{%
+ \bibstring{dissertation}\addspace\printtext[parens]{\bibstring{mathesis}}%
+ }{%
+ \bibstring{dissertation}\addspace\printtext[parens]{\printfield{type}}%
+ }%
+}%% <<<3
+
+\newbibmacro*{phdthesis}{%% >>>3
+ \iffieldundef{type}{%
+ \bibstring{thesis}\addspace\printtext[parens]{\bibstring{phdthesis}}%
+ }{%
+ \bibstring{thesis}\addspace\printtext[parens]{\printfield{type}}%
+ }%
+}%% <<<3
+
+\newbibmacro*{language}{%% >>>3
+ \ifboolexpr{%
+ test {\iflistundef{language}}%
+ or%
+ test {\iflistundef{origlanguage}}%
+ }%
+ {}%
+ {%
+ \printtext{\printlist{language}\addspace\printlist{origlanguage}}%
+ }%
+}%% <<<3
+
+\renewbibmacro*{related:reprintfrom}[1]{%% >>>3
+ \entrydata*{#1}{%
+ \usedriver%
+ {\ifnameundef{savedauthor}%
+ {\ifnameundef{savededitor}%
+ {}%
+ {\ifnamesequal{editor}{savededitor}%
+ {\clearname{editor}}%
+ {}}}%
+ {\ifnamesequal{author}{savedauthor}%
+ {\clearname{author}}%
+ {}}%
+ \renewbibmacro*{related:init}{}%
+ \DeclareNameAlias{sortname}{default}%
+ \ifbibmacroundef{date+extradate}%
+ {}%
+ {\renewbibmacro*{date+extradate}{}%
+ \renewbibmacro*{date}{\printdate}}%
+ \renewbibmacro*{pageref}{}}%
+ {\thefield{entrytype}}}%
+}%% <<<3
+
+\renewbibmacro*{pageref}{% >>>3
+ \iftoggle{backref}{%
+ \iftoggle{citecount}{%
+ \iflistundef{pageref}{%
+ \bibstring{citecountnopage}%
+ }{%
+ \printtext{%
+ \ifnumgreater{\value{pageref}}{1}{%
+ \bibstring{citecountpages}\ppspace%
+ }{%
+ \bibstring{citecountpage}\ppspace%
+ }%
+ \printlist[pageref][-\value{listtotal}]{pageref}%
+ }%
+ }%
+ }{%
+ \iflistundef{pageref}{}{%
+ \printtext{%
+ \ifnumgreater{\value{pageref}}{1}{%
+ \bibstring{backrefpages}\ppspace%
+ }{%
+ \bibstring{backrefpage}\ppspace%
+ }%
+ \printlist[pageref][-\value{listtotal}]{pageref}%
+ }%
+ }%
+ }%
+ }{}
+}% <<<3
+
+% <<<2
+
+% <<<1
+
+
% Options >>>1
% Print titles in italics >>>2
@@ -139,6 +867,7 @@
\renewbibmacro*{bbx:savesubtitle}{\savefield{subtitle}{\bbx@lastsubtitle}}%
}%
}%
+\ExecuteBibliographyOptions{repeatfields}
\DeclareEntryOption[boolean]{repeatfields}[true]{%
\settoggle{repeatfields}{#1}%
}%
@@ -169,7 +898,7 @@
% Use hanging indentation >>>2
\setlength{\bibhang}{0pt}%
\DeclareBibliographyOption{indent}[true]{%
- \ifstrequal{#1}{true}{%
+ \ifstrequal{#1}{true}{%
\setlength{\bibhang}{%
\ifnumequal{\parindent}{0}{1em}{\parindent}%
}%
@@ -188,10 +917,27 @@
\settoggle{extradate}{#1}}%
% <<<2
-% Justify text >>>2
+% Commands that append things to \bibsetup >>>2
+% Justify text >>>3
+\newtoggle{justify}
\DeclareBibliographyOption{justify}[true]{%
- % \ExecuteBibliographyOptions{block=space}%
- \renewcommand*{\bibsetup}{\origbibsetup}%
+ \settoggle{justify}{#1}%
+}%
+% <<<3
+
+% don't apply NBR 6023 2018 spacing >>>3
+\newtoggle{oldspacing}
+\DeclareBibliographyOption{oldspacing}[true]{%
+ \settoggle{oldspacing}{#1}%
+}%
+% <<<3
+
+\appto{\bibsetup}{%
+ \nottoggle{justify}{\raggedright}{}%
+ \nottoggle{oldspacing}{%
+ \setlength{\bibitemsep}{\baselineskip}%
+ \linespread{1}%
+ }{}%
}%
% <<<2
@@ -227,6 +973,56 @@
}%
% <<<2
+% Option to use a slash / as the daterangesep >>>2
+\DeclareBibliographyOption[boolean]{slashdaterange}[true]{%
+\renewrobustcmd*{\bibdaterangesep}{\slash}%
+}%
+\DeclareEntryOption[boolean]{slashdaterange}[true]{%
+\renewrobustcmd*{\bibdaterangesep}{\slash}%
+}%
+% <<<2
+
+% Options to define type of date per entrytype >>>2
+% Options to show only years
+\DeclareBiblatexOption{global, type, entry}[boolean]{dateyear}[true]{%
+\renewbibmacro*{date}{\mkdaterangeyear{}}%
+}%
+
+% Options to show years and months
+% O comando abaixo é o \mkdaterangeyear adaptado para não remover o mês
+\newrobustcmd*{\mkdaterangeyearmonth}[1]{%
+\begingroup
+ \clearfield{yeardivision}%
+ % \clearfield{#1month}%
+ \clearfield{day}%
+ \clearfield{hour}%
+ \clearfield{minute}%
+ \clearfield{second}%
+ \clearfield{timezone}%
+ \clearfield{endyeardivision}%
+ % \clearfield{#1endmonth}%
+ \clearfield{endday}%
+ \clearfield{endhour}%
+ \clearfield{endminute}%
+ \clearfield{endsecond}%
+ \clearfield{endtimezone}%
+ \ifdaterangesequal{#1}{#1end}
+ {\clearfield{#1endmonth}
+ \clearfield{#1endyear}}
+ {\ifdateyearsequal{#1}{#1end}
+ {\blx@imc@clearfield{#1endyear}}
+ {}%
+ }%
+ \mkdaterangefull{long}{#1}%
+\endgroup}
+\DeclareBiblatexOption{global, type, entry}[boolean]{datemonth}[true]{%
+\renewbibmacro*{date}{\mkdaterangeyearmonth{}}%
+}%
+% <<<2
+
+\DeclareFieldFormat{url}{\bibstring{urlfrom}\addcolon\addspace\url{#1}}%
+\DeclareFieldFormat{urldate}{\bibstring{urlseen}\addcolon\addspace #1}%
+
% <<<1
@@ -273,7 +1069,7 @@
}%
}% <<<2
-\DeclareSourcemap{%% >>>2
+\DeclareStyleSourcemap{%% >>>2
% This maps some fields used in abntex2cite to biblatex fields.
\maps[datatype=bibtex]{%
\map{%
@@ -287,19 +1083,19 @@
\step[fieldsource=furtherresp,fieldtarget=titleaddon]%
\step[typesource=journalpart,typetarget=supperiodical]%
}%
- \map[overwrite=false]{%
- \step[fieldsource=reprinted-from, final]%
- \step[fieldset=related, origfieldval]%
- }%
- \map[overwrite=false]{%
- \step[fieldsource=reprinted-text, final]%
- \step[fieldset=relatedtype, fieldvalue={reprintfrom}]%
- }%
- \map{%
- \pertype{patent}% Use the organization as sourcekey for patents
- \step[fieldsource=organization, final]%
- \step[fieldset=sortkey, origfieldval]%
- }%
+ \map[overwrite=false]{%
+ \step[fieldsource=reprinted-from, final]%
+ \step[fieldset=related, origfieldval]%
+ }%
+ \map[overwrite=false]{%
+ \step[fieldsource=reprinted-text, final]%
+ \step[fieldset=relatedtype, fieldvalue={reprintfrom}]%
+ }%
+ \map{%
+ \pertype{patent}% Use the organization as sourcekey for patents
+ \step[fieldsource=organization, final]%
+ \step[fieldset=sortkey, origfieldval]%
+ }%
\map[overwrite=false]{%
\pertype{thesis}%
\pertype{phdthesis}%
@@ -311,10 +1107,10 @@
}% <<<2
\DeclareDatamodelFields[type=field,datatype=literal]{%% >>>2
- section,%
- illustrated,%
- dimensions,%
- reprinted-text,%
+ section,%
+ illustrated,%
+ dimensions,%
+ reprinted-text,%
}% <<<2
\DeclareDatamodelEntryfields[monography]{%% >>>2
@@ -533,20 +1329,20 @@
}%
}%
\renewcommand*{\mkbibnamesuffix}[1]{\UpperOrSC{##1}}%
- \ifgiveninits{%
- \usebibmacro{name:family-given}%
+ \ifgiveninits{%
+ \usebibmacro{name:family-given}%
{\namepartfamily}%
- {\namepartgiveni}%
- {\namepartprefix}%
- {\namepartsuffix}%
- }{%
- \usebibmacro{name:family-given}%
+ {\namepartgiveni}%
+ {\namepartprefix}%
+ {\namepartsuffix}%
+ }{%
+ \usebibmacro{name:family-given}%
{\namepartfamily}%
- {\namepartgiven}%
- {\namepartprefix}%
- {\namepartsuffix}%
- }%
- \usebibmacro{name:andothers}%
+ {\namepartgiven}%
+ {\namepartprefix}%
+ {\namepartsuffix}%
+ }%
+ \usebibmacro{name:andothers}%
}% <<<
\DeclareNameAlias{default}{LAST-first}%
@@ -606,15 +1402,15 @@
% Standard entry fields >>>3
-\DeclareFieldFormat{authortype}{\printtext[parens]{\bibsentence#1}}%
-\DeclareFieldFormat{editortype}{\printtext[parens]{\bibsentence#1}}%
+\DeclareFieldFormat{authortype}{\printtext[parens]{\midsentence#1}}%
+\DeclareFieldFormat{editortype}{\printtext[parens]{\midsentence#1}}%
\DeclareFieldFormat{nameaddon}{\addspace #1}%
% titles >>>4
\renewcommand*{\subtitlepunct}{\addcolon\addspace}%
-\renewcommand*{\bibpagerefpunct}{\addcomma\addspace}%
+\renewcommand*{\bibpagerefpunct}{\addperiod\space}%
\DeclareFieldFormat{journaltitle}{%% >>>
\iftoggle{ittitles}{%
@@ -667,6 +1463,7 @@
incollection,%
bookinbook,%
inproceedings,%
+ inthesis,%
unpublished%
]{title}{\addspace #1\isdot}%% <<<
@@ -676,40 +1473,43 @@
\DeclareNumChars*{,-/}%
\newcommand{\abntnum}[1]{\ifrmnum{#1}{\rmntonum{#1}}{#1}}%
\DeclareFieldFormat*{number}{%% >>>
- \ifnumerals{#1}%
- {\addspace \MakeLowercase{\bibstring{number}}~\abntnum{#1}}%
- {\addspace #1\isdot}%
+ \ifnumerals{#1}%
+ {\addspace \MakeLowercase{\bibstring{number}}~\abntnum{#1}}%
+ {\addspace #1\isdot}%
}%% <<<
\DeclareFieldFormat[% number >>>
book,%
collection,%
- proceedings,%
- inproceedings,%
misc%
]{number}{\addcomma\addspace #1}%% <<<
+\DeclareFieldFormat[% number >>>
+ proceedings,%
+ inproceedings,%
+]{number}{\addspace #1}%% <<<
% <<<
\DeclareFieldFormat*{volume}{%% >>>4
- \ifnumerals{#1}%
- {\addspace \MakeLowercase{\bibstring{volume}}~#1}%
- {\addspace #1\isdot}%
+ \ifnumerals{#1}%
+ {\addspace \MakeLowercase{\bibstring{volume}}~#1}%
+ {\addspace #1\isdot}%
}%% <<<
\DeclareFieldFormat*{chapter}{%% >>>4
- \ifnumerals{#1}%
- {\addspace \MakeLowercase{\bibstring{chapter}~#1}}%
- {\addspace #1\isdot}%
+ \ifnumerals{#1}%
+ {\addspace \MakeLowercase{\bibstring{chapter}~#1}}%
+ {\addspace #1\isdot}%
}%% <<<
\DeclareFieldFormat{edition}{%% >>>4
- \ifnumerals{#1}%
- {\addspace #1\adddot\addspace\bibstring{edition}}%
- {\addspace #1\isdot}%
+ \ifnumerals{#1}%
+ {\addspace #1\adddot\addspace\bibstring{edition}}%
+ {\addspace #1\isdot}%
}%% <<<
\DeclareFieldFormat*{pages}{%% >>>4
- \MakeLowercase{\mkpageprefix[bookpagination]{#1}}%
+ \midsentence \MakeLowercase{\mkpageprefix[bookpagination]{#1}}%
}%% <<<
+% \xpretofieldformat{pages}{\midsentence}{}{} % Fix the capitalization of the page label
\DeclareFieldFormat*{pagetotal}{%% >>>4
\MakeLowercase{\mkpagetotal[bookpagination]{#1}}%
@@ -717,8 +1517,9 @@
\DeclareFieldFormat{illustrated}{\addspace #1\isdot}%
-\DeclareFieldFormat{url}{\bibstring{urlfrom}\addcolon\addspace<\url{#1}>}%
-\DeclareFieldFormat{urldate}{\bibstring{urlseen}\addcolon\addspace #1}%
+% remove <> in URLs according to abnt-6023:2018
+\DeclareFieldFormat{url}{\textmainlang{\bibstring{urlfrom}\addcolon\addspace \url{#1}}}
+\DeclareFieldFormat{urldate}{\textmainlang{\bibstring{urlseen}\addcolon\addspace #1}}%
\DeclareFieldFormat*{note}{\addspace #1}%
@@ -779,749 +1580,35 @@
}%% <<<
\DeclareFieldFormat{upperfirst}{%% >>>
- \iftoggle{scbib}{%
- \ifgiveninits{%
- \normalfont\FirstWordSC{#1}%
- }{%
- \normalfont\FirstWordLCSC{#1}%
- }%
- }{%
- \normalfont\FirstWordUpper{#1}%
- }%
-}%% <<<
-
-\DeclareListFormat{upperfirst}{%% >>>
- \usebibmacro{list:delim}{#1}%
- \iftoggle{scbib}{%
- \ifgiveninits{%
- \normalfont\FirstWordSC{#1}%
- }{%
- \normalfont\FirstWordLCSC{#1}%
- }%
- }{%
- \normalfont\FirstWordUpper{#1}%
- }%
- \isdot%
- \usebibmacro{list:andothers}%
-}%% <<<
-
-% <<<
-
-\DeclareFieldFormat{normalfont}{\normalfont{#1}}%
-
-% <<<2
-
-% <<<1
-
-
-% Macros >>>1
-
-% Dashed option >>>2
-
-\newbool{bbx@inset}%
-
-\newtoggle{isdashed}%
-
-\newcommand*{\bibnameunderscore}{\underline{\hspace*{4em}}}%
-\newcommand*{\nopunctdash}{\bibnameunderscore\addspace}%
-\renewcommand*{\bibnamedash}{\bibnameunderscore\addperiod\addspace}%
-
-\renewbibmacro*{begrelated}{%% >>>3
- \booltrue{bbx@inset}%
-}%% <<<3
-
-\newbibmacro*{bbx:savehash}{%% >>>3
- \savefield{fullhash}{\bbx@lasthash}%
-}%% <<<3
-
-\newbibmacro*{bbx:saveorg}{%% >>>3
- \savelist{organization}{\bbx@lastorg}%
-}%% <<<3
-
-\newbibmacro*{bbx:savetitle}{%% >>>3
- \savefield{title}{\bbx@lasttitle}%
-}%% <<<3
-
-\newbibmacro*{bbx:savesubtitle}{%% >>>3
- \savefield{subtitle}{\bbx@lastsubtitle}%
-}%% <<<3
-
-\newbibmacro*{bbx:dashcheck}[2]{%% >>>3
- \ifboolexpr{%
- (%
- test {\iffieldequals{fullhash}{\bbx@lasthash}}%
- or%
- test {\iflistequals{organization}{\bbx@lastorg}}%
- )%
- and%
- not test \iffirstonpage%
- and%
- not test {\iftoggle{repeatfields}}%
- and%
- not test {\iftoggle{repeatfirstfields}}%
- and%
- (%
- not bool {bbx@inset}%
- or%
- test {\iffieldequalstr{entrysetcount}{1}}%
- )%
- }%
- {\settoggle{isdashed}{true}#1}%
- {\settoggle{isdashed}{false}#2}%
-}%% <<<3
-
-\newbibmacro*{bbx:titledashcheck}[2]{%% >>>3
- \iftoggle{isdashed}{%
- \ifboolexpr{%
- test {\iffieldequals{title}{\bbx@lasttitle}}%
- and%
- (%
- test {\iffieldequals{subtitle}{\bbx@lastsubtitle}}%
- or%
- test {\iffieldundef{subtitle}}%
- )%
- and%
- not test {\iftoggle{repeattitle}}%
- }%
- {#1}%
- {#2}%
- }{%
- #2%
- }%
-}%% <<<3
-
-\newbibmacro*{bbx:ineditordashcheck}[2]{%% >>>3
- \ifboolexpr{%
- test {\ifnamesequal{editor}{author}}%
- and%
- not test {\iftoggle{repeatfields}}%
- and%
- (%
- not bool {bbx@inset}%
- or%
- test {\iffieldequalstr{entrysetcount}{1}}%
- )%
- }%
- {\settoggle{isdashed}{true}#1}%
- {\settoggle{isdashed}{false}#2}%
-}%% <<<3
-
-% <<<2
-
-% Titles >>>2
-
-\newbibmacro*{titleiskey}[2]{%% >>>3
-\ifboolexpr{%
- test {\ifnameundef{author}}%
- and%
- test {\ifnameundef{editor}}%
- and%
- test {\ifnameundef{holder}}%
- and%
- test {\ifcsundef{saveded}}%
- and%
- test {\ifcsundef{savedorg}}%
- and%
- test {\iffieldundef{eventtitle}}%
-}%
- {#1}%
- {#2}%
-}%% <<<3
-
-\renewbibmacro*{title}{%% >>>3
- \ifboolexpr{%
- test {\iffieldundef{title}}%
- and%
- test {\iffieldundef{subtitle}}%
- }%
- {\global\undef\bbx@lasttitle%
- \global\undef\bbx@lastsubtitle}%
- {\usebibmacro{bbx:titledashcheck}%
- {\unspace\bibnamedash}%
- {\usebibmacro{bbx:savetitle}%
- \usebibmacro{bbx:savesubtitle}%
- \printtext[title]{%
- \usebibmacro{titleiskey}%
- {\unspace\printfield[upperfirst]{title}}%
- {\ifboolexpr{%
- test {\iffieldundef{maintitle}}%
- and%
- test {\iffieldundef{related}}%
- }%
- {\printfield[titlecase]{title}}%
- {\printfield[normalfont]{title}}}%
- \normalfont{%
- \iffieldendswithpunct{title}{%
- \setunit*{\addspace}%
- }{%
- \setunit*{\subtitlepunct}%
- }
- \printfield[normalfont]{subtitle}%
- \setunit{\addperiod\addspace}%
- }}%
- \newunit}}%
- \printfield{titleaddon}%
-}%% <<<3
-
-\newbibmacro*{booktitleiskey}[2]{%% >>>3
-\ifboolexpr{%
- test {\ifnameundef{bookauthor}}%
- and%
- test {\ifnameundef{editor}}%
- and%
- test {\iffieldundef{organization}}%
- and%
- test {\ifcsundef{saveded}}%
- and%
- test {\ifcsundef{savedorg}}%
- and%
- test {\iffieldundef{eventtitle}}%
-}%
- {#1}%
- {#2}%
-}%% <<<3
-
-\renewbibmacro*{booktitle}{%% >>>3
- \ifboolexpr{%
- test {\iffieldundef{booktitle}}%
- and%
- test {\iffieldundef{booksubtitle}}%
- }%
- {}%
- {\printtext[booktitle]{%
- \usebibmacro{booktitleiskey}{%
- \printfield[upperfirst]{booktitle}%
- }{%
- \printfield[titlecase]{booktitle}%
- }%
- \iffieldendswithpunct{booktitle}{%
- \normalfont{\setunit*{\addspace}}%
- }{%
- \normalfont{\setunit*{\subtitlepunct}}%
- }
- \printfield[normalfont]{booksubtitle}}%
- \newunit}%
- \printfield{booktitleaddon}%
-}%% <<<3
-
-\renewbibmacro*{maintitle}{%% >>>3
- \ifboolexpr{%
- test {\iffieldundef{maintitle}}%
- and%
- test {\iffieldundef{mainsubtitle}}%
- }%
- {}%
- {\printtext[maintitle]{%
- \usebibmacro{titleiskey}{%
- \printfield[upperfirst]{maintitle}%
- }{%
- \printfield[titlecase]{maintitle}%
- }%
- \iffieldendswithpunct{maintitle}{%
- \normalfont{\setunit*{\addspace}}%
- }{%
- \normalfont{\setunit*{\subtitlepunct}}%
- }
- \printfield[normalfont]{mainsubtitle}}%
- \newunit}%
- \printfield{maintitleaddon}%
-}%% <<<3
-
-\newbibmacro*{in:maintitle}{%% >>>3
- \iffieldundef{maintitle}{}{%
- \usebibmacro{in:}%
- \iftoggle{repeatfields}%
- {\addspace\usebibmacro{author/editor+others}}%
- {\addspace\bibnamedash}%
- \newunit%
- \usebibmacro{maintitle}%
- }%
-}%% <<<3
-
-\renewbibmacro*{maintitle+booktitle}{%% >>>3
- \iffieldundef{maintitle}%
- {}%
- {\usebibmacro{maintitle}%
- \newunit\newblock%
- \iffieldundef{volume}%
- {}%
- {\printfield{volume}%
- \printfield{part}%
- \setunit{\addcolon\addspace}}}%
- \usebibmacro{booktitle}%
- \newunit%
-}%% <<<3
-
-\newbibmacro*{maintitle/booktitle}{%% >>>3
- \iffieldundef{maintitle}%
- {\usebibmacro{booktitle}}%
- {\usebibmacro{maintitle}}%
-}%% <<<3
-
-\renewbibmacro*{journal}{%% >>>3
- \iffieldundef{journaltitle}%
- {}%
- {\printtext[journaltitle]{%
- \printfield[titlecase]{journaltitle}%
- \iffieldendswithpunct{journaltitle}{%
- \setunit{\addspace}%
- }{%
- \setunit{\subtitlepunct}%
- }
- \printfield[normalfont]{journalsubtitle}}}%
-}%% <<<3
-
-\newbibmacro{journal+section}{%% >>>3
- \usebibmacro{journal}%
- \iffieldundef{section}%
- {}%
- {\setunit{\addspace\textendash\addspace}%
- \printfield{section}}%
-}%% <<<3
-
-\renewbibmacro*{journal+issuetitle}{%% >>>3
- \usebibmacro{journal}%
- \setunit*{\addcomma\addspace}%
- \iffieldundef{series}%
- {}%
- {\newunit%
- \printfield{series}%
- \setunit{\addspace}}%
- \usebibmacro{volume+number+eid}%
- \newunit%
-}%% <<<3
-
-\renewbibmacro*{periodical}{%% >>>3
- \iffieldundef{title}{}{%
- \printtext[title]{%
- \iffieldundef{issue}{%
- \unspace\printfield[upperfirst]{title}%
- }{%
- \printfield[titlecase]{title}%
- }
- \normalfont{%
- \iffieldendswithpunct{title}{%
- \setunit*{\addspace}%
- }{%
- \setunit*{\subtitlepunct}%
- }
- \printfield[normalfont]{subtitle}%
- }%
- }%
- }%
-}%% <<<3
-
-% <<<2
-
-% Names >>>2
-
-\renewbibmacro*{author}{%% >>>3
- \ifboolexpr{%
- test \ifuseauthor%
- and%
- not test {\ifnameundef{author}}%
- }{%
- \usebibmacro{bbx:dashcheck}{%
- \iffieldundef{authortype}{%
- \bibnamedash%
- \newunit%
- \printfield{nameaddon}%
- }{%
- \nopunctdash%
- \usebibmacro{authorstrg}%
- \newunit%
- \printfield{nameaddon}%
- }%
- }{%
- \usebibmacro{bbx:savehash}%
- \printnames{author}%
- \addspace%
- \usebibmacro{authorstrg}%
- \newunit%
- \printfield{nameaddon}%
- }%
- }{%
- \global\undef\bbx@lasthash%
- }%
-}%% <<<3
-
-\renewbibmacro*{editor+others}{%% >>>3
- \ifboolexpr{%
- test \ifuseeditor%
- and%
- not test {\ifnameundef{editor}}%
- }{%
- \usebibmacro{bbx:dashcheck}{%
- \iffieldundef{editortype}{%
- \bibnamedash%
- }{%
- \nopunctdash%
- \usebibmacro{editor+othersstrg}%
- }%
- }{%
- \usebibmacro{bbx:savehash}%
- \printnames{editor}%
- \setunit{\addspace}%
- \usebibmacro{editor+othersstrg}%
- }%
- \savenamecs*{editor}{saveded}%
- \clearname{editor}%
- }{%
- \global\undef\bbx@lasthash%
- \usebibmacro{organization}%
- }%
-}%% <<<3
-
-\renewbibmacro*{byeditor+others}{%% >>>3
- \toggletrue{byeditor+others}%
- \ifnameundef{editor}{}{% else
- \usebibmacro{byeditor+othersstrg}%
- \setunit*{\addspace}%
- \printnames[byeditor]{editor}%
- \clearname{editor}%
- \newunit%
- }%
- \usebibmacro{byeditorx}%
- \usebibmacro{bytranslator+others}%
- \togglefalse{byeditor+others}%
-}%% <<<3
-
-\newbibmacro*{organization}{%% >>>3
- \iflistundef{organization}%
- {\global\undef\bbx@lastorg}%
- {\usebibmacro{bbx:dashcheck}%
- {\bibnamedash}%
- {\usebibmacro{bbx:saveorg}%
- \printlist[uppercase]{organization}}%
- \savelistcs*{organization}{savedorg}%
- \clearlist{organization}%
- \newunit%
- \printfield{nameaddon}}%
-}%% <<<3
-
-\newbibmacro*{author/organization}{%% >>>3
- \ifnameundef{author}%
- {\usebibmacro{organization}}%
- {\usebibmacro{author}}%
-}%% <<<3
-
-\newbibmacro*{editor+others/organization}{%% >>>3
- \ifnameundef{editor}%
- {\usebibmacro{organization}}%
- {\usebibmacro{editor+others}}%
-}%% <<<3
-
-\newbibmacro*{organization/eventtitle}{%% >>>3
- \iffieldundef{eventtitle}%
- {\usebibmacro{organization}}%
- {\printfield[uppercase]{eventtitle}}%
-}%% <<<3
-
-\newbibmacro*{bookauthor/editor+others}{%% >>>3
- \ifnameundef{bookauthor}{%
- \usebibmacro{editor+others}}%
- {\printnames{bookauthor}}%
-}%% <<<3
-
-\newbibmacro*{in:bookauthor+others}{%% >>>3
- \usebibmacro{in:}%
- \ifnameundef{bookauthor}{%
- % do nothing
- }{% else
- \ifnamesequal{author}{bookauthor}{%
- \iftoggle{repeatfields}{%
- \usebibmacro{author/editor+others}%
- }{% else
- \bibnamedash%
- }%
- }{% else
- \printnames{bookauthor}%
- }%
- }%
-}%% <<<3
-
-\newbibmacro*{in:editor+others}{%% >>>3
- \usebibmacro{in:}%
- \addspace%
- \ifnameundef{editor}{%
- \printlist[uppercase]{organization}%
- }{%
- \usebibmacro{bbx:ineditordashcheck}{%
- \iffieldundef{editortype}{%
- \bibnamedash%
- }{%
- \nopunctdash%
- \usebibmacro{editor+othersstrg}%
- \savenamecs*{editor}{saveded}%
- \clearname{editor}%
- }%
- }{%
- \printnames{editor}%
- \setunit*{\addspace}%
- \usebibmacro{editor+othersstrg}%
- \savenamecs*{editor}{saveded}%
- \clearname{editor}%
- }%
- }%
-}%% <<<3
-
-\newbibmacro*{in:eventtitle/organization/editor}{%% >>>3
- \usebibmacro{in:}%
- \iffieldundef{eventtitle}{%
- \ifnameundef{editor}{%
- \printlist[uppercase]{organization}%
- \clearlist{organization}%
- }{%
- \usebibmacro{editor+others}%
- }%
- }{%
- \printfield[uppercase]{eventtitle}%
- }%
-}%% <<<3
-
-% <<<2
-
-% Publisher, location, date, issue >>>2
-
-\renewbibmacro*{date}{%
- \iftoggle{extradate}{%
- \printdateextra%
- }{%
- \printdate%
- }%
- \printunit{\addperiod\addspace}%
-}%
-
-\newbibmacro*{publisher}{%% >>>3
- \iflistundef{publisher}%
- {\iftoggle{nosn}{}{\printtext[brackets]{\bibstring{sinenomine}}}}%
- {\printlist{publisher}}%
-}%% <<<3
-
-\newbibmacro*{location}{%% >>>3
- \iflistundef{location}%
- {\iftoggle{nosl}{}{\printtext[brackets]{\bibstring{sineloco}}}}%
- {\printlist{location}}%
-}%% <<<3
-
-\newbibmacro*{venue}{%% >>>3
- \iffieldundef{venue}%
- {\iftoggle{nosl}{}{\printtext[brackets]{\bibstring{sineloco}}}}%
- {\printfield{venue}}%
-}%% <<<3
-
-\renewbibmacro*{location+date}{%% >>>3
- \usebibmacro{location}%
- \setunit*{\addcomma\addspace}%
- \usebibmacro{date}%
- \newunit%
-}%% <<<3
-
-\renewbibmacro*{publisher+location+date}{%% >>>3
- \ifboolexpr{%
- test {\iflistundef{publisher}}%
- and%
- test {\iflistundef{location}}%
- and%
- not test {\iftoggle{nosl}}%
- and%
- not test {\iftoggle{nosn}}%
- }{%
- \printtext[brackets]{\bibstring{sineloco}%
- \setunit{\addcolon\addnbspace}%
- \bibstring{sinenomine}}%
- }{%
- \ifboolexpr{%
- test {\ifnameundef{author}}%
- and%
- test {\ifnameundef{editor}}%
- and%
- test {\iflistundef{publisher}}%
- and%
- not test {\iflistundef{organization}}%
- }{%
- \usebibmacro{location}%
+ \iftoggle{scbib}{%
+ \ifgiveninits{%
+ \normalfont\FirstWordSC{#1}%
}{%
- \usebibmacro{location}%
- \setunit*{\addcolon\addspace}%
- \usebibmacro{publisher}%
+ \normalfont\FirstWordLCSC{#1}%
}%
- }%
- \setunit*{\addcomma\addspace}%
- \usebibmacro{date}%
- \newunit%
-}%% <<<3
-
-\renewbibmacro*{issue}{%% >>>3
- \iffieldundef{issuetitle}%
- {}%
- {\printtext[issuetitle]{%
- \printfield[upperfirst]{issuetitle}%
- \iffieldendswithpunct{issuetitle}{%
- \setunit*{\addspace}%
- }{%
- \setunit*{\subtitlepunct}%
- }
- \printfield[normalfont]{issuesubtitle}}}%
-}%% <<<3
-
-\renewbibmacro*{issue+date}{%% >>>3
- \iffieldundef{issue}%
- {\usebibmacro{date}}%
- {\printfield{issue}%
- \setunit*{\addspace}%
- \usebibmacro{date}}%
- \newunit%
-}%% <<<3
-
-\newbibmacro*{publisher+location+issue+date}{%% >>>3
- \ifboolexpr{%
- test {\iflistundef{publisher}}%
- and%
- test {\iflistundef{location}}%
- and%
- not test {\iftoggle{nosl}}%
- and%
- not test {\iftoggle{nosn}}%
- }{%
- \printtext[brackets]{\bibstring{sineloco}%
- \setunit{\addcolon\addnbspace}%
- \bibstring{sinenomine}}%
}{%
- \ifboolexpr{%
- test {\ifnameundef{author}}%
- and%
- test {\ifnameundef{editor}}%
- and%
- test {\iflistundef{publisher}}%
- and%
- not test {\iflistundef{organization}}%
- }{%
- \usebibmacro{location}%
- }{%
- \usebibmacro{location}%
- \setunit*{\addcolon\addspace}%
- \usebibmacro{publisher}%
- }%
+ \normalfont\FirstWordUpper{#1}%
}%
- \setunit*{\addcomma\addspace}%
- \printfield[number]{issue}%
- \setunit*{\addcomma\addspace}%
- \usebibmacro{date}%
- \newunit%
-}%% <<<3
-
-% <<<2
-
-% Misc >>>2
-
-\renewbibmacro*{volume+number+eid}{%% >>>3
- \printfield{volume}%
- \setunit*{\addcomma\addspace}%
- \printfield{number}%
- \setunit{\addcomma\addspace}%
- \printfield{eid}%
-}%% <<<3
-
-\renewbibmacro*{series+number}{%% >>>3
- \iffieldundef{series}{}{%
- \printtext[parens]{%
- \printfield{series}%
- \setunit*{\addcomma\addspace}%
- \printfield[normalfont]{number}%
- \newunit}%
- }%
-}%% <<<3
-
-\renewbibmacro*{url+urldate}{%% >>>3
- \usebibmacro{url}%
- \iffieldundef{urlyear}%
- {}%
- {\setunit*{\addperiod\addspace}%
- \usebibmacro{urldate}}%
-}%% <<<3
-
-\newbibmacro*{mathesis}{%% >>>3
- \iffieldundef{type}{%
- \bibstring{dissertation}\addspace\printtext[parens]{\bibstring{mathesis}}%
- }{%
- \bibstring{dissertation}\addspace\printtext[parens]{\printfield{type}}%
- }%
-}%% <<<3
-
-\newbibmacro*{phdthesis}{%% >>>3
- \iffieldundef{type}{%
- \bibstring{thesis}\addspace\printtext[parens]{\bibstring{phdthesis}}%
- }{%
- \bibstring{thesis}\addspace\printtext[parens]{\printfield{type}}%
- }%
-}%% <<<3
-
-\newbibmacro*{language}{%% >>>3
- \ifboolexpr{%
- test {\iflistundef{language}}%
- or%
- test {\iflistundef{origlanguage}}%
- }%
- {}%
- {%
- \printtext{\printlist{language}\addspace\printlist{origlanguage}}%
- }%
-}%% <<<3
-
-\renewbibmacro*{related:reprintfrom}[1]{%% >>>3
- \entrydata*{#1}{%
- \usedriver%
- {\ifnameundef{savedauthor}%
- {\ifnameundef{savededitor}%
- {}%
- {\ifnamesequal{editor}{savededitor}%
- {\clearname{editor}}%
- {}}}%
- {\ifnamesequal{author}{savedauthor}%
- {\clearname{author}}%
- {}}%
- \renewbibmacro*{related:init}{}%
- \DeclareNameAlias{sortname}{default}%
- \ifbibmacroundef{date+extradate}%
- {}%
- {\renewbibmacro*{date+extradate}{}%
- \renewbibmacro*{date}{\printdate}}%
- \renewbibmacro*{pageref}{}}%
- {\thefield{entrytype}}}%
-}%% <<<3
+}%% <<<
-\renewbibmacro*{pageref}{% >>>3
- \iftoggle{backref}{%
- \iftoggle{citecount}{%
- \printunit{\addperiod\addspace}%
- \iflistundef{pageref}{%
- \bibstring{citecountnopage}%
+\DeclareListFormat{upperfirst}{%% >>>
+ \usebibmacro{list:delim}{#1}%
+ \iftoggle{scbib}{%
+ \ifgiveninits{%
+ \normalfont\FirstWordSC{#1}%
}{%
- \printtext{%
- \ifnumgreater{\value{pageref}}{1}{%
- \bibstring{citecountpages}\ppspace%
- }{%
- \bibstring{citecountpage}\ppspace%
- }%
- \printlist[pageref][-\value{listtotal}]{pageref}%
- }%
+ \normalfont\FirstWordLCSC{#1}%
}%
}{%
- \iflistundef{pageref}{}{%
- \printunit{\addperiod\addspace}%
- \printtext{%
- \ifnumgreater{\value{pageref}}{1}{%
- \bibstring{backrefpages}\ppspace%
- }{%
- \bibstring{backrefpage}\ppspace%
- }%
- \printlist[pageref][-\value{listtotal}]{pageref}%
- }%
- }%
+ \normalfont\FirstWordUpper{#1}%
}%
- }{}
-}% <<<3
+ \isdot%
+ \usebibmacro{list:andothers}%
+}%% <<<
+
+% <<<
+
+\DeclareFieldFormat{normalfont}{\normalfont{#1}}%
% <<<2
@@ -1581,7 +1668,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1651,7 +1738,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1709,7 +1796,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1777,7 +1864,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1839,7 +1926,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1909,7 +1996,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -1965,7 +2052,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2033,7 +2120,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2095,7 +2182,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2147,7 +2234,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2225,7 +2312,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2276,7 +2363,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2344,7 +2431,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2407,7 +2494,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2456,8 +2543,8 @@
and%
test {\iffieldundef{maintitle}}%
}%
- {}%
- {\usebibmacro{publisher+location+date}}%
+ {}%
+ {\usebibmacro{publisher+location+date}}%
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\iffieldundef{maintitle}%
@@ -2492,7 +2579,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2557,7 +2644,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2609,7 +2696,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2622,6 +2709,66 @@
\usebibmacro{finentry}%
}%% <<<2
+\DeclareBibliographyDriver{inthesis}{%% >>>2
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others}%
+ \setunit{\labelnamepunct}%
+ \usebibmacro{title}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{in:bookauthor+others}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{maintitle/booktitle}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{date}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % \usebibmacro{chapter+pages}%
+ % \newunit%
+ \printfield{pagetotal}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printfield{type}%
+ \setunit*{\addspace\textendash\addspace}%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printlist{institution}%
+ \setunit*{\addcomma\addspace}%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printlist{location}%
+ \setunit*{\addcomma\addspace}%
+ \printeventdate%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printfield{pages}%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printfield{note}%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \printunit{\addperiod\addspace}%
+ \iftoggle{bbx:isbn}%
+ {\printfield{isbn}}%
+ {}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{doi+eprint+url}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \usebibmacro{pageref}%
+ \setunit*{\addperiod\addspace}%
+ \newunit%
+ \newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \iftoggle{bbx:related}%
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}%
+ {}%
+ \usebibmacro{finentry}%
+}%% >>>2
+
\DeclareBibliographyDriver{misc}{%% >>>2
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -2680,7 +2827,7 @@
\newunit%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{addendum+pubstate}%
- \setunit*{\bibpagerefpunct}%
+ \setunit{\bibpagerefpunct}%
\newblock%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usebibmacro{pageref}%
\setunit*{\addperiod\addspace}%
@@ -2709,4 +2856,3 @@
% vim: set foldmarker=\ >>>,\ <<< :
-
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt-ibid.cbx
index 97e7cfa2db..caba6a0103 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt-ibid.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt-ibid.cbx
@@ -42,6 +42,17 @@
}%
}% <<<2
+\newcommand*{\NormalOrACCiteOrSCCite}[1]{% >>>2
+ \iftoggle{accite}{%
+ \MakeUppercase{#1}}%
+ }{%
+ \iftoggle{sccite}{%
+ \textsc{\MakeLowercase{#1}}%
+ }{%
+ #1%
+ }%
+}% <<<2
+
% \IfInitial >>>2
\ExplSyntaxOn
@@ -112,7 +123,7 @@
\let\origmkbibnamesuffix\mkbibnamesuffix%
\renewcommand*{\mkbibnamefamily}[1]{% >>>2
- \UpperOrSCCite{#1}%
+ \NormalOrACCiteOrSCCite{#1}%
}% <<<2
\renewcommand*{\mkbibnamegiven}[1]{% >>>2
\ifnumequal{\value{uniquename}}{2}{%
@@ -129,7 +140,7 @@
}
}% <<<2
\renewcommand*{\mkbibnamesuffix}[1]{% >>>2
- \UpperOrSCCite{#1}%
+ \NormalOrACCiteOrSCCite{#1}%
}% <<<2
\DeclareFieldFormat{firstword}{%% >>>2
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt.cbx
index 7deb3e8199..f958454c0e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/cbx/abnt.cbx
@@ -46,6 +46,11 @@
\settoggle{sccite}{#1}%
}% <<<2
+\newtoggle{accite}% >>>2
+\DeclareBibliographyOption{accite}[true]{%
+ \settoggle{accite}{#1}%
+}% <<<2
+
% <<<1
% Format >>>1
@@ -69,6 +74,18 @@
}%
}% <<<3
+\newcommand*{\NormalOrACCiteOrSCCite}[1]{% >>>3
+ \iftoggle{accite}{%
+ \MakeUppercase{#1}%
+ }{%
+ \iftoggle{sccite}{%
+ \textsc{\MakeLowercase{#1}}%
+ }{%
+ \MakeCapital{#1}%
+ }%
+ }%
+}% <<<3
+
% \mkbibname* >>>3
% \IfGivenIsInit >>>4
@@ -90,7 +107,7 @@
\let\origmkbibnamesuffix\mkbibnamesuffix%
\renewcommand*{\mkbibnamefamily}[1]{% >>>4
- \UpperOrSCCite{#1}%
+ \NormalOrACCiteOrSCCite{#1}%
}% <<<4
\renewcommand*{\mkbibnamegiven}[1]{% >>>4
\ifnumequal{\value{uniquename}}{2}{%
@@ -101,13 +118,13 @@
}% <<<4
\renewcommand*{\mkbibnameprefix}[1]{% >>>4
\ifuseprefix{%
- \UpperOrSCCite{#1}%
+ \NormalOrACCiteOrSCCite{#1}%
}{%
\ifnumequal{\value{uniquename}}{2}{#1}{\NormalOrSCCite{#1}}%
}%
}% <<<4
\renewcommand*{\mkbibnamesuffix}[1]{% >>>4
- \UpperOrSCCite{#1}%
+ \NormalOrACCiteOrSCCite{#1}%
}% <<<4
\AtBeginBibliography{%
@@ -518,6 +535,27 @@
}%
}% <<<3
+\newbibmacro*{citetitlestar}{% >>>3
+ \printtext[bibhyperref]{\textit{\printfield[labeltitle]{labeltitle}}}%
+ \setunit{\global\booltrue{cbx:parens}\addspace\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}{\usebibmacro{prenote}}{}%
+ \iffieldundef{shorthand}{%
+ \usebibmacro{cite:labeldate+extradate}%
+ }{%
+ \usebibmacro{cite:shorthand}%
+ }%
+ \stepcounter{textcitecount}%
+ \setunit{%
+ \ifbool{cbx:parens}{\bibcloseparen\global\boolfalse{cbx:parens}}{}%
+ % Use `\bibstring{and}` before the last name and commas before the rest
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}{%
+ \finalnamedelim%
+ }{%
+ \multinamedelim%
+ }%
+ }%
+}% <<<3
+
\DeclareCiteCommand{\cbx@citetitle}% >>>3
{\usebibmacro{cite:init}}%
{\usebibmacro{citeindex}%
@@ -525,6 +563,13 @@
{}%
{\usebibmacro{textcite:postnote}}% <<<3
+\DeclareCiteCommand{\cbx@citetitlestar}% >>>3
+ {\usebibmacro{cite:init}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitlestar}}%
+ {}%
+ {\usebibmacro{textcite:postnote}}% <<<3
+
\DeclareCiteCommand{\citetitle}[\cbx@textcite@init\cbx@citetitle]% >>>3
{\gdef\cbx@savedkeys{}%
\citetrackerfalse%
@@ -544,6 +589,25 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}% <<<3
+\DeclareCiteCommand*{\citetitle}[\cbx@textcite@init\cbx@citetitlestar]% >>>3
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}%
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}%
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}%
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}%
+ {}%
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}%
+ {}%
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}% <<<3
+
% <<<2
% \apud >>>2
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/brazilian-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/brazilian-abnt.lbx
index 8b730ba0d5..7cebd5c212 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/brazilian-abnt.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/brazilian-abnt.lbx
@@ -41,6 +41,25 @@
\thefield{#1}}%
}%
+
+% Months abbreviations >>>2
+
+\DeclareBibliographyStrings{%
+ january = {{janeiro}{jan\adddot}},%
+ february = {{fevereiro}{fev\adddot}},%
+ march = {{mar\c{c}o}{mar\adddot}},%
+ april = {{abril}{abr\adddot}},%
+ may = {{maio}{maio}},%
+ june = {{junho}{jun\adddot}},%
+ july = {{julho}{jul\adddot}},%
+ august = {{agosto}{ago\adddot}},%
+ september = {{setembro}{set\adddot}},%
+ october = {{outubro}{out\adddot}},%
+ november = {{novembro}{nov\adddot}},%
+ december = {{dezembro}{dez\adddot}},%
+}
+% <<<2
+
% <<<
% Publication details >>>1
@@ -69,8 +88,8 @@
involumes = {{in}{in}},%
in = {{in}{in}},%
inseries = {{in}{in}},%
- sineloco = {{sine loco}{s\adddot l\adddot}},%
- sinenomine = {{sine nomine}{s\adddot n\adddot}},%
+ sineloco = {{sine loco}{s\adddot~l\adddot}},%
+ sinenomine = {{sine nomine}{s\adddot~n\adddot}},%
urlfrom = {{dispon\'ivel em}{dispon\'ivel em}},%
urlseen = {{acesso em}{acesso em}},%
sheet = {{folha}{f\adddot}},%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/english-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/english-abnt.lbx
index 41792e3a4e..f12e44f286 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/english-abnt.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/english-abnt.lbx
@@ -43,6 +43,23 @@
\thefield{#1}}%
}%
+% Months abbreviations >>>2
+\DeclareBibliographyStrings{%
+ january = {{January}{Jan\adddot}},
+ february = {{February}{Feb\adddot}},
+ march = {{March}{Mar\adddot}},
+ april = {{April}{Apr\adddot}},
+ may = {{May}{May}},
+ june = {{June}{June}},
+ july = {{July}{July}},
+ august = {{August}{Aug\adddot}},
+ september = {{September}{Sept\adddot}},
+ october = {{October}{Oct\adddot}},
+ november = {{November}{Nov\adddot}},
+ december = {{December}{Dec\adddot}},
+}
+% <<<2
+
% <<<
% Publication details >>>1
@@ -68,8 +85,8 @@
involumes = {{in}{in}},%
in = {{in}{in}},%
inseries = {{in}{in}},%
- sineloco = {{sine loco}{s\adddot l\adddot}},%
- sinenomine = {{sine nomine}{s\adddot n\adddot}},%
+ sineloco = {{sine loco}{s\adddot~l\adddot}},%
+ sinenomine = {{sine nomine}{s\adddot~n\adddot}},%
sheet = {{sheet}{s\adddot}},%
sheets = {{sheets}{s\adddot}},%
illustrated = {{illustrated}{il\adddot}},%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/french-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/french-abnt.lbx
new file mode 100644
index 0000000000..bc6fd096fe
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/french-abnt.lbx
@@ -0,0 +1,202 @@
+%% Copyright 2021 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+%%
+%% Tradução para o espanhol de Leonardo Araujo. Obrigado!
+
+\ProvidesFile{french-abnt.lbx}%
+[2021-02-04\space v3.4\space ABNT BibLaTeX citation style]%
+
+
+% Init >>>
+
+\InheritBibliographyExtras{french}%
+\InheritBibliographyStrings{french}
+\DeclareBibliographyStrings{%
+ inherit = {french},%
+}%
+
+% <<<
+
+% No preposition between month and year >>>1
+
+\DeclareBibliographyExtras{%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}%
+ {}%
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\addspace}}%
+ \iffieldundef{#2}%
+ {}%
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\addspace}}%
+ \thefield{#1}}%
+}%
+
+% Months abbreviations >>>2
+
+\DeclareBibliographyStrings{%
+ january = {{janvier}{janv\adddot}},
+ february = {{f\'evrier}{f\'evr\adddot}},
+ march = {{mars}{mars}},
+ april = {{avril}{avril}},
+ may = {{mai}{mai}},
+ june = {{juin}{juin}},
+ july = {{juillet}{juil\adddot}},
+ august = {{ao\^ut}{ao\^ut}},
+ september = {{septembre}{sept\adddot}},
+ october = {{octobre}{oct\adddot}},
+ november = {{novembre}{nov\adddot}},
+ december = {{d\'ecembre}{d\'ec\adddot}},
+}
+% <<<2
+
+% <<<
+
+% Publication details >>>1
+
+\NewBibliographyString{%
+ apud,%
+ sineloco,%
+ sinenomine,%
+ sheet,%
+ sheets,%
+ illustrated,%
+ monography,%
+ recensionof,%
+}%
+
+\DeclareBibliographyStrings{%
+ apud = {{apud}{apud}},%
+ idem = {{idem}{id\adddot}},%
+ volume = {{volume}{v\adddot}},%
+ volumes = {{volumes}{v\adddot}},%
+ number = {{num\'ero}{n\adddot}},%
+ pages = {{pages}{p\adddot}},%
+ involumes = {{in}{in}},%
+ in = {{in}{in}},%
+ inseries = {{in}{in}},%
+ sineloco = {{sine loco}{s\adddot l\adddot}},%
+ sinenomine = {{sine nomine}{s\adddot n\adddot}},%
+ sheet = {{feuille}{f\adddot}},%
+ sheets = {{feuilles}{f\adddot}},%
+ illustrated = {{illustr\'e}{il\adddot}},%
+ monography = {{monographie}{monographie}},%
+ recensionof = {{recension de}{recension de}},%
+ reviewof = {{revue de}{revue de}},%
+}%
+
+% <<<
+
+% Roles expressed as functions >>>1
+
+\NewBibliographyString{%
+ organizer,%
+ organizers,%
+ coordinator,%
+ coordinators,%
+}%
+
+\DeclareBibliographyStrings{%
+ organizer = {{organisateur}{org\adddot}},%
+ organizers = {{organisateurs}{org\adddot}},%
+ coordinator = {{coordinateur}{coord\adddot}},%
+ coordinators = {{coordinateurs}{coord\adddot}},%
+}%
+
+% <<<
+
+% Roles expressed as objects >>>1
+
+\DeclareBibliographyStrings{%
+ withcommentator = {{commentaire\addcolon}{commentaire\addcolon}},%
+ withannotator = {{notes\addcolon}{notes\addcolon}},%
+ withintroduction = {{introduction\addcolon}{introduction\addcolon}},%
+ withforeword = {{avant-propos\addcolon}{avant-propos\addcolon}},%
+ withafterword = {{postface\addcolon}{postface\addcolon}},%
+}%
+
+% <<<
+
+% Roles expressed as actions >>>1
+
+\NewBibliographyString{% >>>2
+ byorganizer,%
+ byorganizerfo,%
+ bytechrev,%
+ byupdater,%
+ byupdateran,%
+ byphotographer,%
+ byartdir,%
+ byrecorder,%
+ byinterviewer,%
+ bygenorg,%
+ bygenorgfo,%
+ bycoordinator,%
+ bycoeditor,%
+ bydirector,%
+ bygendir,%
+ byproducer,%
+ byscreenwriter,%
+ byinterpreter,%
+ byillustrator,%
+ bytechrev,%
+}% <<<
+
+\DeclareBibliographyStrings{% >>>2
+ byorganizer = {{organis\'e par\addcolon}%
+ {organis\'e par\addcolon}},%
+ byorganizerfo = {{organis\'e, avec un avant-propos, par\addcolon}%
+ {organis\'e, avec un avant-propos, par\addcolon}},%
+ bytechrev = {{r\'evision technique par\addcolon}%
+ {r\'evision technique par\addcolon}},%
+ byupdater = {{mis \`a jour par\addcolon}%
+ {mis \`a jour par\addcolon}},%
+ byupdateran = {{mis \`a jour et annot\'e par\addcolon}%
+ {mis \`a jour et annot\'e par\addcolon}},%
+ byphotographer = {{photographie par\addcolon}%
+ {photographie par\addcolon}},%
+ byartdir = {{direction artistique par\addcolon}%
+ {direction artistique par\addcolon}},%
+ byrecorder = {{enregistr\'e par\addcolon}%
+ {enregistr\'e par\addcolon}},%
+ byinterviewer = {{interview\'e par\addcolon}%
+ {interview\'e par\addcolon}},%
+ bygenorg = {{organisation g\'en\'erale par\addcolon}%
+ {organisation g\'en\'erale par\addcolon}},%
+ bygenorgfo = {{organisation g\'en\'erale et avant-propos par\addcolon}%
+ {organisation g\'en\'erale et avant-propos par\addcolon}},%
+ bycoordinator = {{coordonn\'e par\addcolon}%
+ {coordonn\'e par\addcolon}},%
+ bycoeditor = {{co\'edit\'e par\addcolon}%
+ {co\'edit\'e par\addcolon}},%
+ bydirector = {{dirig\'e par\addcolon}%
+ {dirig\'e par\addcolon}},%
+ bygendir = {{direction g\'en\'erale par\addcolon}%
+ {direction g\'en\'erale par\addcolon}},%
+ byproducer = {{produit par\addcolon}%
+ {produit par\addcolon}},%
+ byscreenwriter = {{script \'ecrit par\addcolon}%
+ {script \'ecrit par\addcolon}},%
+ byinterpreter = {{interpr\'et\'e par\addcolon}%
+ {interpr\'et\'e par\addcolon}},%
+ byillustrator = {{illustr\'e par\addcolon}%
+ {illustr\'e par\addcolon}},%
+}% <<<
+
+% <<<
+
+\endinput%
+
+% vim: set foldmarker=\ >>>,\ <<< :
+
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/german-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/german-abnt.lbx
new file mode 100644
index 0000000000..7dbe930597
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/german-abnt.lbx
@@ -0,0 +1,41 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+\ProvidesFile{german-abnt.lbx}
+[2018-11-17\space v3.4\space ABNT BibLaTeX citation style]%
+
+\InheritBibliographyExtras{german}
+\InheritBibliographyStrings{german}
+\DeclareBibliographyStrings{%
+ inherit = {german},%
+}%
+
+% Months abbreviations >>>1
+\DeclareBibliographyStrings{%
+ january = {{Januar}{Jan\adddot}},
+ february = {{Februar}{Feb\adddot}},
+ march = {{M\"arz}{M\"arz}},
+ april = {{April}{Apr\adddot}},
+ may = {{Mai}{Mai}},
+ june = {{Juni}{Juni}},
+ july = {{Juli}{Juli}},
+ august = {{August}{Aug\adddot}},
+ september = {{September}{Sept\adddot}},
+ october = {{Oktober}{Okt\adddot}},
+ november = {{November}{Nov\adddot}},
+ december = {{Dezember}{Dez\adddot}},
+}
+% <<<1
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/italian-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/italian-abnt.lbx
new file mode 100644
index 0000000000..e1856f8bc6
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/italian-abnt.lbx
@@ -0,0 +1,41 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+\ProvidesFile{italian-abnt.lbx}
+[2018-11-17\space v3.4\space ABNT BibLaTeX citation style]%
+
+\InheritBibliographyExtras{italian}
+\InheritBibliographyStrings{italian}
+\DeclareBibliographyStrings{%
+ inherit = {italian},%
+}%
+
+% Months abbreviations >>>1
+\DeclareBibliographyStrings{%
+ january = {{gennaio}{genn\adddot}},
+ february = {{febbraio}{febbr\adddot}},
+ march = {{marzo}{mar\adddot}},
+ april = {{aprile}{apr\adddot}},
+ may = {{maggio}{magg\adddot}},
+ june = {{giugno}{giugno}},
+ july = {{luglio}{luglio}},
+ august = {{agosto}{ag\adddot}},
+ september = {{settembre}{sett\adddot}},
+ october = {{ottobre}{ott\adddot}},
+ november = {{novembre}{nov\adddot}},
+ december = {{dicembre}{dic\adddot}},
+}
+% <<<1
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/spanish-abnt.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/spanish-abnt.lbx
index a1ff9ed64f..3964a87c8c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/spanish-abnt.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/latex/lbx/spanish-abnt.lbx
@@ -43,6 +43,24 @@
\thefield{#1}}%
}%
+% Months abbreviations >>>2
+
+\DeclareBibliographyStrings{%
+ january = {{enero}{enero}},
+ february = {{febrero}{feb\adddot}},
+ march = {{marzo}{marzo}},
+ april = {{abril}{abr\adddot}},
+ may = {{mayo}{mayo}},
+ june = {{junio}{jun\adddot}},
+ july = {{julio}{jul\adddot}},
+ august = {{agosto}{agosto}},
+ september = {{septiembre}{sept\adddot}},
+ october = {{octubre}{oct\adddot}},
+ november = {{noviembre}{nov\adddot}},
+ december = {{diciembre}{dic\adddot}},
+}
+% <<<2
+
% <<<
% Publication details >>>1
@@ -68,8 +86,8 @@
involumes = {{in}{in}},%
in = {{in}{in}},%
inseries = {{in}{in}},%
- sineloco = {{sine loco}{s\adddot l\adddot}},%
- sinenomine = {{sine nomine}{s\adddot n\adddot}},%
+ sineloco = {{sine loco}{s\adddot~l\adddot}},%
+ sinenomine = {{sine nomine}{s\adddot~n\adddot}},%
urlfrom = {{disponible en}{disponible en}},%
urlseen = {{acceso en}{acceso en}},%
sheet = {{hoja}{h\adddot}},%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018.tex b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018.tex
new file mode 100644
index 0000000000..39b17e750d
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018.tex
@@ -0,0 +1,220 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+\documentclass[a4paper]{article}
+\usepackage[brazil]{babel}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{textcomp}
+\usepackage{microtype}
+\usepackage{etoolbox}
+\usepackage{xcolor}
+
+\usepackage[style=abnt, sorting=none, repeatfirstfields]{biblatex}
+\usepackage[autostyle]{csquotes}
+
+\addbibresource{../bibtex/bib/biblatex-abnt/NBR6023-2018.bib}
+
+\defbibheading{bibliography}[]{\subsection{#1}}
+
+\defbibenvironment{bibliography}
+ {\list{}{%
+ \leftmargin 6em
+ \itemsep\bibitemsep
+ \parsep\bibparsep}}
+ {\endlist}
+ {\item}
+
+\defbibheading{subbib}[]{\subsubsection{#1}}
+
+\let\origsection\section
+\renewcommand\section{\clearpage\origsection}
+
+\makeatletter
+\newcommand{\globalcolor}[1]{%
+ \color{#1}\global\let\default@color\current@color
+}
+\makeatother
+\AtBeginDocument{\iftoggle{reference}{}{\globalcolor{red!50}}}
+
+
+\newtoggle{reference}
+\toggletrue{reference}
+
+\title{NBR 6023:2018 - \iftoggle{reference}{Referência}{Teste}}
+\author{Daniel Ballester Marques}
+
+\begin{document}
+
+\maketitle
+
+Este documento imprime \textit{ipsis litteris} todas as entradas citadas na
+NBR 6023:2018, da ABNT.
+
+Para expor as diferentes maneiras como cada campo pode ser usado, a ABNT
+imprime-os de modo diferente a cada entrada. A vantagem dos sistemas como
+o \texttt{biblatex}, por outro lado, é \emph{uniformizar} a bibliografia,
+imprimindo os campos do mesmo modo em todas as entradas. Para reproduzir
+fielmente o texto do manual, este documento faz \emph{mau uso} dos recursos do
+\texttt{biblatex}, aproveitando-se frequentemente de campos que devem ser
+evitados, como \texttt{note}, \texttt{addendum}, \texttt{nameaddon},
+\texttt{titleaddon} et al. Ele não deve ser usado, portanto, como referência
+para o uso do \texttt{biblatex-abnt}, mas apenas como exemplo de suas
+capacidades, mostrando que é possível (embora não seja recomendado) reproduzir
+todas as entradas do manual e expondo o modo de fazê-lo. Para o uso correto do
+\texttt{biblatex-abnt}, conferir o manual do estilo e o manual do próprio
+\texttt{biblatex}.
+
+\tableofcontents
+
+\nocite{*}
+
+
+\setcounter{section}{6}
+
+\section{Modelos de referências}
+
+
+ \printbibliography[keyword=7.1, title={Monografia no todo}]
+
+ \printbibliography[keyword=7.2,
+ title={Monografia no todo em meio eletrônico}]
+
+ \printbibliography[keyword=7.3, title={Parte de monografia}]
+
+ \printbibliography[keyword=7.4,
+ title={Parte de monografia em meio eletrônico}]
+
+ \subsection{Publicação periódica}
+
+ \printbibliography[heading=subbib, keyword=7.5.1,
+ title={Publicação periódica como um todo}]
+ \printbibliography[heading=subbib, keyword=7.5.2,
+ title={Partes de revista, boletim etc.}]
+ \printbibliography[heading=subbib, keyword=7.5.3,
+ title={Artigo e/ou matéria de revista, boletim etc.}]
+ \printbibliography[heading=subbib, keyword=7.5.4,
+ title={Artigo e/ou matéria de revista,
+ boletim etc.\ em meio eletrônico}]
+ \printbibliography[heading=subbib, keyword=7.5.5,
+ title={Artigo e/ou matéria de jornal}]
+
+ \printbibliography[heading=subbib, keyword=7.5.6,
+ title={Artigo e/ou matéria de jornal em meio eletrônico}]
+
+ \subsection{Evento como um todo}
+
+ \printbibliography[heading=subbib, keyword=7.6.1,
+ title={Elementos essenciais}]
+ \printbibliography[heading=subbib, keyword=7.6.2,
+ title={Elementos complementares}]
+ \printbibliography[heading=subbib, keyword=7.6.3,
+ title={Evento como um todo em meio eletrônico}]
+
+ \subsection{Trabalho apresentado em evento}
+
+ \printbibliography[heading=subbib, keyword=7.7.1,
+ title={Elementos essenciais}]
+ \printbibliography[heading=subbib, keyword=7.7.2,
+ title={Elementos complementares}]
+ \printbibliography[heading=subbib, keyword=7.7.3,
+ title={Trabalho apresentado em evento em meio eletrônico}]
+
+ \printbibliography[keyword=7.8, title={Patente}]
+
+ \subsection{Documento jurídico}
+
+ \printbibliography[heading=subbib, keyword=7.9.1, title={Legislação}]
+ \printbibliography[heading=subbib, keyword=7.9.2,
+ title={Jurisprudência (decisões judiciais)}]
+ \printbibliography[heading=subbib, keyword=7.9.3, title={Doutrina}]
+ \printbibliography[heading=subbib, keyword=7.9.4,
+ title={Documento jurídico em meio eletrônico}]
+
+ \printbibliography[keyword=7.10, title={Imagem em movimento}]
+
+ \subsection{Documento iconográfico}
+
+ \printbibliography[heading=subbib, keyword=7.11.1,
+ title={Elementos essenciais}]
+ \printbibliography[heading=subbib, keyword=7.11.2,
+ title={Elementos complementares}]
+ \printbibliography[heading=subbib, keyword=7.11.3,
+ title={Documento iconográfico em meio eletrônico}]
+
+ \subsection{Documento cartográfico}
+
+ \printbibliography[heading=subbib, keyword=7.12.1,
+ title={Elementos essenciais}]
+ \printbibliography[heading=subbib, keyword=7.12.2,
+ title={Elementos complementares}]
+ \printbibliography[heading=subbib, keyword=7.12.3,
+ title={Documento cartográfico em meio eletrônico}]
+
+ \printbibliography[keyword=7.13, title={Documento sonoro no todo}]
+
+ \printbibliography[keyword=7.14, title={Documento sonoro em parte}]
+
+ \subsection{Partitura}
+
+ \printbibliography[heading=subbib, keyword=7.15.1,
+ title={Elementos essenciais}]
+ \printbibliography[heading=subbib, keyword=7.15.2,
+ title={Elementos complementares}]
+ \printbibliography[heading=subbib, keyword=7.15.3,
+ title={Partitura em meio eletrônico}]
+
+ \printbibliography[keyword=7.16, title={Documento tridimensional}]
+
+ \printbibliography[keyword=7.17,
+ title={Documento de acesso exclusivo em meio eletrônico}]
+
+ \section{Transcrição dos elementos}
+
+ \subsection{Autoria}
+
+ \printbibliography[heading=subbib, keyword=8.1.1, title={Autor pessoal}]
+ \printbibliography[heading=subbib, keyword=8.1.2, title={Autor entidade}]
+ \printbibliography[heading=subbib, keyword=8.1.3,
+ title={Autoria desconhecida}]
+
+ \printbibliography[keyword=8.2, title={Título e subtítulo}]
+
+ \printbibliography[keyword=8.3, title={Edição}]
+
+ \printbibliography[keyword=8.4, title={Local}]
+
+ \printbibliography[keyword=8.5, title={Editora}]
+
+ \printbibliography[keyword=8.6, title={Data}]
+
+ \printbibliography[keyword=8.7, title={Descrição física}]
+
+ \printbibliography[keyword=8.8, title={Ilustrações}]
+
+ \printbibliography[keyword=8.9, title={Dimensões}]
+
+ \printbibliography[keyword=8.10, title={Séries e coleções}]
+
+ \printbibliography[keyword=8.11, title={Notas}]
+
+ \section{Ordenação das referências}
+
+ \printbibliography[keyword=9.1, title={Sistema alfabético}]
+
+ \printbibliography[keyword=9.2, title={Sistema numérico}]
+
+
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_reference.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_reference.pdf
new file mode 100644
index 0000000000..76e9854d7d
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_reference.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_test.tex b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_test.tex
new file mode 100644
index 0000000000..66fd1e1ef0
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/NBR6023-2018_test.tex
@@ -0,0 +1,23 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+\documentclass{article}
+
+\usepackage{pdfpagediff}
+
+\begin{document}
+
+\layerPages{NBR6023-2018.pdf}{NBR6023-2018_reference.pdf}
+
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/results.tex b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/results.tex
new file mode 100644
index 0000000000..bce35c23a9
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/results.tex
@@ -0,0 +1,21 @@
+%% Copyright 2016 Daniel Ballester Marques
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Daniel Ballester Marques.
+
+\documentclass{article}
+\usepackage{pdfpages}
+\begin{document}
+\includepdf[pages=-]{NBR10520-2002_test}
+\includepdf[pages=-]{NBR6023-2002_test}
+
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/test.sh b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/test.sh
index 8b5ff1f4ac..d049460016 100644..100755
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/test.sh
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/test.sh
@@ -41,7 +41,26 @@ while read -r line ; do
if [ "$C" != 0.00000 ] || [ "$Y" != 0.00000 ] || [ "$M" != 0.00000 ] ; then
pass=false
fi
-done < <(gs -q -o - -sDEVICE=inkcov NBR6023-2002_test.pdf | sed -e '1d')
+done < <(gs -q -o - -sDEVICE=inkcov NBR6023-2002_test.pdf | sed -e '1,3d')
+
+
+sed -i.bak 's/\\toggletrue{reference}/% \\toggletrue{reference}/' NBR6023-2018.tex
+pdflatex -draftmode -interaction=batchmode NBR6023-2018.tex
+biber NBR6023-2018
+pdflatex -draftmode -interaction=batchmode NBR6023-2018.tex
+pdflatex -draftmode -interaction=batchmode NBR6023-2018.tex
+pdflatex -interaction=batchmode NBR6023-2018.tex
+pdflatex -interaction=batchmode NBR6023-2018_test.tex
+sed -i.bak 's/% \\toggletrue{reference}/\\toggletrue{reference}/' NBR6023-2018.tex
+
+while read -r line ; do
+ C=$(echo $line | awk '{print $1}')
+ Y=$(echo $line | awk '{print $2}')
+ M=$(echo $line | awk '{print $3}')
+ if [ "$C" != 0.00000 ] || [ "$Y" != 0.00000 ] || [ "$M" != 0.00000 ] ; then
+ pass=false
+ fi
+done < <(gs -q -o - -sDEVICE=inkcov NBR6023-2018_test.pdf | sed -e '1,3d')
if [ "$pass" = true ] ; then
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/texlive.sh b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/texlive.sh
index ec338703a8..ec338703a8 100644..100755
--- a/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/texlive.sh
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-abnt/tests/texlive.sh
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
index c51927feb8..c3e48e3484 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
@@ -3,8 +3,8 @@ PFX = biblatex-
STY1 = oxnotes
STYS = oxnotes oxyear oxnum oxalph
VARS = ibid note inote trad1 trad2 trad3
-LANGS = american british english spanish
-LANGX = spanish
+LANGS = american british english spanish polish
+LANGX = spanish polish
TESTS = $(STYS) $(foreach sty, $(STYS), $(LANGX:%=%-$(sty)))
AUX = aux,bbl,bcf,blg,doc,fdb_latexmk,fls,glo,gls,hd,idx,ilg,ind,listing,log,nav,out,run.xml,snm,synctex.gz,toc,vrb
SHELL = bash
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
index c8b147bc81..a6d358af66 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
@@ -46,7 +46,7 @@ UNIX-like systems:
oxnotes-trad1.cbx, oxnotes-trad2.cbx, oxnotes-trad3.cbx, oxyear.cbx,
oxnum.cbx, oxalph.cbx
- american-oxref.lbx, british-oxref.lbx, english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx, polish.lbx
- oxnotes.dbx, oxnotes-ibid.dbx, oxnotes-note.dbx, oxnotes-inote.dbx,
oxnotes-trad1.dbx, oxnotes-trad2.dbx, oxnotes-trad3.dbx, oxyear.dbx,
oxnum.dbx, oxalph.dbx
@@ -89,7 +89,8 @@ first two steps.
american-oxref.lbx,
british-oxref.lbx,
english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx,
+ polish-oxref.lbx,
oxalph.bbx,
oxalph.cbx,
oxalph.dbx,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
index 0ce372ce9b..464db54ffe 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
index 649083bbef..4ce50328b3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
index 7c8b8360de..cde0ea096b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
index 8c8c94d432..18bf56b898 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
@@ -1,6 +1,6 @@
% \iffalse
%<*internal|bbx|cbx|dbx|lbx|doc>
-\def\Version{2023/11/23 v3.2}
+\def\Version{2024/08/26 v3.3}
%</internal|bbx|cbx|dbx|lbx|doc>
%<*internal>
\iffalse
@@ -87,6 +87,10 @@
\ProvidesFile{spanish-oxref.lbx}
[\Version\space Spanish conventions required by the biblatex-oxref styles]
%</lbx&es>
+%<*lbx&pl>
+\ProvidesFile{polish-oxref.lbx}
+ [\Version\space Polish conventions required by the biblatex-oxref styles]
+%</lbx&pl>
%<*doc&n>
\ProvidesFile{oxnotes-doc.tex}
[\Version\space Footnote-based biblatex style inspired by the Oxford Guide to Style]
@@ -220,6 +224,7 @@ Copyright (C) 2016–2023 Alex Ball
\file{british-\jobname.lbx}{\from{\jobname.dtx}{lbx,gb}}
\file{english-\jobname.lbx}{\from{\jobname.dtx}{lbx,en}}
\file{spanish-\jobname.lbx}{\from{\jobname.dtx}{lbx,es}}
+ \file{polish-\jobname.lbx}{\from{\jobname.dtx}{lbx,pl}}
\file{oxnotes-doc.tex}{\from{\jobname.dtx}{doc,n}}
\file{oxnum-doc.tex}{\from{\jobname.dtx}{doc,m}}
\file{oxalph-doc.tex}{\from{\jobname.dtx}{doc,a}}
@@ -659,18 +664,24 @@ Copyright (C) 2016–2023 Alex Ball
\newcounter{elementcount}
\newcommand{\commaorandlist}[1]{%
+ % Counting up
\renewcommand*{\do}[1]{\stepcounter{elementcount}}%
\dolistloop{#1}%
\ifnumgreater{\value{elementcount}}{2}{%
- \def\finaland{, and }%
+ \def\thisfinaland{,\space and\space}%
}{%
- \def\finaland{ and }%
+ \def\thisfinaland{\space and\space}%
}%
+ % Counting back down
\renewcommand*{\do}[1]{%
- \ifnumequal{\value{elementcount}}{1}{%
- ##1%
+ \ifnumgreater{\value{elementcount}}{2}{% antipenultimate or earlier
+ ##1,\space
}{%
- \ifnumequal{\value{elementcount}}{2}{#1\finaland}{##1, }%
+ \ifnumequal{\value{elementcount}}{2}{% penultimate
+ ##1\thisfinaland
+ }{% last
+ ##1%
+ }%
}%
\addtocounter{elementcount}{-1}%
}%
@@ -678,6 +689,7 @@ Copyright (C) 2016–2023 Alex Ball
\author{Alex Ball}
\listadd\thetranslators{Bruno Maltras}
+\listadd\thetranslators{Sebastian Wasiuta}
\date{\printdateTeX{\filedate}}
\begin{document}
\thispagestyle{empty}
@@ -799,7 +811,7 @@ UNIX-like systems:
oxnotes-trad1.cbx, oxnotes-trad2.cbx, oxnotes-trad3.cbx, oxyear.cbx,
oxnum.cbx, oxalph.cbx
- american-oxref.lbx, british-oxref.lbx, english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx, polish.lbx
- oxnotes.dbx, oxnotes-ibid.dbx, oxnotes-note.dbx, oxnotes-inote.dbx,
oxnotes-trad1.dbx, oxnotes-trad2.dbx, oxnotes-trad3.dbx, oxyear.dbx,
oxnum.dbx, oxalph.dbx
@@ -842,7 +854,8 @@ first two steps.
american-oxref.lbx,
british-oxref.lbx,
english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx,
+ polish-oxref.lbx,
oxalph.bbx,
oxalph.cbx,
oxalph.dbx,
@@ -1663,9 +1676,12 @@ This can be set globally or on a per-type or per-entry basis.
\section{Works in foreign languages}
-If you used a foreign language work, you might want to recommend a good translation.
+If you used a work in a different language from the one in which you are currently writing,
+you might want to recommend a good translation into the latter language.
-\tip{Add the translation in \code{related}, and set \code{relatedtype} to \code{translationas}.}
+\tip{Add the translation in \code{related}, and set \code{relatedtype} to \code{translationas}.
+ The localized bibstring reflects the current localization language:
+ \enquote{English translation}, \enquote{traducido espa\~nol}, and so on.}
\begin{bibexbox}
%<n|m><NHR \S18.2.5*>
@@ -1691,7 +1707,8 @@ If you used a foreign language work, you might want to recommend a good translat
\end{Verbatim}
\end{bibexbox}
-\tip{To specify the translator up front, set the \code{relatedtype} to \code{bytranslator} instead.}
+\tip{To specify the translator up front, or to recommend a translation into a third language,
+ set the \code{relatedtype} to \code{bytranslator} instead.}
\begin{bibexbox}
%<n|m><NHR \S18.2.14>
@@ -7770,6 +7787,7 @@ rather than \pkg[biblatex]{oxref}.}
\newcommand*{\uscasetitlepunct}{\addcomma\space}
\renewcommand*{\relateddelim}{\addsemicolon\space}
\DeclareDelimFormat{revsdnamedelim}{\addcomma}
+\DeclareDelimFormat[pair]{revsdnamedelim}{}
\DeclareDelimFormat{authortypedelim}{\addspace}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareDelimFormat{translatortypedelim}{\addspace}
@@ -7846,7 +7864,7 @@ rather than \pkg[biblatex]{oxref}.}
and
test {\ifdefvoid{#2}}%
}{}{%
- \printdelim{revsdnamedelim}}%
+ \printdelim{revsdnamepunct}}%
\ifdefvoid{#5}{}{\iftoggle{blx@ox@nametitle}{\bibnamedelimd\mkbibnametitle{#5}\isdot}{}}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
}{%
@@ -7861,7 +7879,7 @@ rather than \pkg[biblatex]{oxref}.}
and
test {\ifdefvoid{#3}}%
}{}{%
- \printdelim{revsdnamedelim}}%
+ \printdelim{revsdnamepunct}}%
\ifdefvoid{#5}{}{\iftoggle{blx@ox@nametitle}{\bibnamedelimd\mkbibnametitle{#5}\isdot}{}}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
@@ -7871,9 +7889,22 @@ rather than \pkg[biblatex]{oxref}.}
% the bibliography, but in natural order in citations. We implement this, along
% with the case changing option, in the following name format. We also add a
% second hash for checking if names (e.g.\@ |author| and |authoraddon|) are the
-% same.
+% same. We only need |name:revsdelim| on the first item, and only if it will be
+% followed by something else.
%
% \begin{macrocode}
+\renewbibmacro*{name:revsdelim}{%
+ \ifboolexpr{
+ (
+ test {\ifnumequal{\value{liststop}}{1}}
+ and
+ test \ifmorenames
+ )
+ or
+ test {\ifnumequal{\value{liststop}}{2}}
+ }
+ {\printdelim{revsdnamedelim}}
+ {}}
\def\blx@ox@lasthash{}
\DeclareNameFormat{bib-family-given/cite-given-family}{%
\iffieldannotation{inferred}{\ifnumequal{\value{listcount}}{1}{\bibopenbracket}{}}{}%
@@ -7918,13 +7949,22 @@ rather than \pkg[biblatex]{oxref}.}
\renewcommand*{\mkbibnametitle}[1]{##1}%
}{}%
\ifboolexpe{%
- test {\ifnumgreater{\value{listcount}}{1}}
- or (
+ test {\ifnumequal{\value{listcount}}{\@ne}}
+ and
+ (
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test {\ifnumgreater{\value{listtotal}}{\value{maxnames}}}
+ or
+ test {\ifandothers{\currentname}}
+ )
+ and not
+ (
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}
)
- }{}{\usebibmacro{name:revsdelim}}%
+ }{\usebibmacro{name:revsdelim}}{}%
}{%
% \end{macrocode}
%
@@ -7967,6 +8007,10 @@ rather than \pkg[biblatex]{oxref}.}
\savefield{hash}{\blx@ox@lasthash}%
}%
\ifitemannotation{inferred}{\bibclosebracket}{}%
+ \ifitemannotation{variant}{%
+ \global\settoggle{blx@ox@variantname}{true}%
+ }{%
+ \global\settoggle{blx@ox@variantname}{false}}%
\usebibmacro{name:andothers}%
\iffieldannotation{inferred}{%
\ifboolexpr{
@@ -8012,7 +8056,9 @@ rather than \pkg[biblatex]{oxref}.}
\usebibmacro{name:andothers}}
% \end{macrocode}
%
-% We do likewise for the regular |family-given| format.
+% We do likewise for the regular |family-given| format. Also, we only want to
+% use the |name:revsdelim| on the last name in the list if it will be followed
+% by \enquote{et al.}.
%
% \begin{macrocode}
\DeclareNameFormat{family-given}{%
@@ -8035,13 +8081,20 @@ rather than \pkg[biblatex]{oxref}.}
}{%
\global\settoggle{blx@ox@variantname}{false}}%
\ifboolexpe{%
- test {\ifnumgreater{\value{listcount}}{1}}
- or (
+ (
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test {\ifnumgreater{\value{listtotal}}{\value{maxnames}}}
+ or
+ test {\ifandothers{\currentname}}
+ )
+ and not
+ (
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}
)
- }{}{\usebibmacro{name:revsdelim}}%
+ }{\usebibmacro{name:revsdelim}}{}%
\usebibmacro{name:andothers}}
% \end{macrocode}
%
@@ -8068,21 +8121,46 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{namevariant}{\mkbibparens{\bibstring{equals}\space #1}}
% \end{macrocode}
%
-% We provide an alternative method that uses new name fields |authoraddon| and
-% |editoraddon|. To do this, we define a bibmacro that reimplements the loopcode
-% logic of \cs{printnames}, but operates on two name lists simultaneously; we use
-% saveboxes to extract the hashes, and only print the alternative name if it has
-% a different hash. The same technique is used by \textsf{oxyear} below to pair
-% up names with the short form used in references, so this bibmacro is written
-% to handle both cases.
+% We have two use cases for a bibmacro that reimplements the loopcode logic of
+% \cs{printnames}, but operates on two name lists simultaneously. One is to
+% support the new name fields |authoraddon| and |editoraddon|; the other is to
+% pair up names with the short form used in references, as required by
+% \textsf{oxyear} below.
+%
+% We need to do this in a way that doesn't break the patterns used for
+% configuring and adapting the punctuation that delimits the list items, so the
+% |namepair:delim| macro does the same as |name:delim| but instead of reading
+% the current counters, takes two extra arguments (in addition to the current name):
+% the number of the current name pair and the total number of name pairs.
+% The regular |finallistdelim| delimiter format looks up the value of the
+% |liststop| counter, so we need to give it the right value.
+%
+% \begin{macrocode}
+\newbibmacro*{namepair:delim}[3]{%
+ \ifnumgreater{#2}{\@ne}{%
+ \ifnumless{#2}{#3}{%
+ \printdelim{multinamedelim}%
+ }{%
+ \ifnumgreater{#3}{\c@maxnames}{%
+ \c@liststop\c@minnames
+ }{%
+ \c@liststop#3}%
+ \lbx@finalnamedelim{#1}}%
+ }{}}
+% \end{macrocode}
%
% The |namepairs| bibmacro takes two arguments: the data fields holding the main
-% name and alternative name respectively.
+% name and alternative name respectively. When rendering the names, we use
+% saveboxes to extract the hashes, and only print the alternative name if it has
+% a different hash. In this case, we also switch to the \enquote{pair}
+% delimiter context, where the |revsdnamedelim| (if any) is suppressed.
%
% \begin{macrocode}
+\DeclareFieldFormat{expanded}{\mkbibparens{#1}}
\newcounter{namepairs}
\newsavebox{\blx@ox@namebox}
\newsavebox{\blx@ox@altnamebox}
+\newtoggle{blx@ox@thispairvariant}%
\newbibmacro*{namepairs}[2]{%
\setcounter{namepairs}{0}%
\savebibmacro{name:andothers}%
@@ -8106,21 +8184,19 @@ rather than \pkg[biblatex]{oxref}.}
)
}{%
\stepcounter{namepairs}%
- \ifnumgreater{\value{namepairs}}{1}{%
- \ifnumequal{\value{#1}}{2}{%
- \setunit*{\addspace\bibstring{and}\addspace}%
- }{%
- \ifnumequal{\value{namepairs}}{\value{#1}}{%
- \setunit*{\addcomma\space\bibstring{and}\addspace}%
- }{%
- \setunit*{\addcomma\space}%
- }%
- }%
- }{}%
\savebox{\blx@ox@namebox}{%
\printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
}%
\let\blx@ox@firsthash=\blx@ox@lasthash
+ \savebox{\blx@ox@altnamebox}{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ }%
+ \let\blx@ox@secondhash=\blx@ox@lasthash
+ \iftoggle{blx@ox@variantname}{%
+ \toggletrue{blx@ox@thispairvariant}%
+ }{%
+ \togglefalse{blx@ox@thispairvariant}%
+ }%
% \end{macrocode}
%
% This is the part intended for |authoraddon| and |editoraddon|. Note that it
@@ -8128,20 +8204,28 @@ rather than \pkg[biblatex]{oxref}.}
%
% \begin{macrocode}
\IfEndWith{#2}{addon}{%
- \savebox{\blx@ox@altnamebox}{%
- \printnames[by#1][\value{namepairs}-\value{namepairs}]{#2}%
- }%
- \let\blx@ox@secondhash=\blx@ox@lasthash
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@namebox}{\value{namepairs}}{\value{#1}}%
\ifdefstrequal{\blx@ox@firsthash}{\blx@ox@secondhash}{%
- \unhbox\blx@ox@namebox
+ \hbox{}\unhbox\blx@ox@namebox
}{%
- \unhbox\blx@ox@namebox\addspace
- \iftoggle{blx@ox@variantname}{%
+ \iftoggle{blx@ox@thispairvariant}{%
\ifbibliography{%
- \printtext[namevariant]{\printnames[#1][\value{namepairs}-\value{namepairs}]{#2}}%
- }{}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ \setunit{\addspace}%
+ \printtext[namevariant]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}}%
+ }{%
+ \hbox{}\unhbox\blx@ox@namebox
+ }%
}{%
- \printtext[nameaddon]{\unhbox\blx@ox@altnamebox}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ \setunit{\addspace}%
+ \printtext[nameaddon]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ }%
}%
}%
% \end{macrocode}
@@ -8152,15 +8236,19 @@ rather than \pkg[biblatex]{oxref}.}
%
% \begin{macrocode}
}{%
- \savebox{\blx@ox@altnamebox}{%
- \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
- }%
- \let\blx@ox@secondhash=\blx@ox@lasthash
\ifdefstrequal{\blx@ox@firsthash}{\blx@ox@secondhash}{%
- \unhbox\blx@ox@namebox
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@namebox}{\value{namepairs}}{\value{#1}}%
+ \hbox{}\unhbox\blx@ox@namebox
}{%
- \unhbox\blx@ox@altnamebox
- \addspace\mkbibparens{\unhbox\blx@ox@namebox}%
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@altnamebox}{\value{namepairs}}{\value{#1}}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ \setunit{\addspace}%
+ \printtext[expanded]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ }%
}%
}%
}%
@@ -8725,7 +8813,7 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{pages}{%
\iffieldundef{bookpagination}%
{\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix[bookpagination]}]{#1}}%
+ {\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
}
% \end{macrocode}
%
@@ -8735,7 +8823,7 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{postnote}{%
\iffieldundef{pagination}%
{\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix}]{#1}}%
+ {\mkpageprefix[pagination][\mkcomprange]{#1}}%
}
% \end{macrocode}
@@ -9299,6 +9387,7 @@ rather than \pkg[biblatex]{oxref}.}
% considered on request.
%
% \begin{macrocode}
+\newcommand*{\mkvolroman}[1]{\Rn{#1}}
\DeclareFieldFormat[book,mvbook,bookinbook,inbook,suppbook,%
collection,mvcollection,incollection,suppcollection,%
proceedings,mvproceedings,inproceedings,%
@@ -9306,11 +9395,11 @@ reference,mvreference,inreference]{volume}{%
\IfSubStr{#1}{-}{%
\StrCount{#1}{-}[\blx@ox@dashnum]%
\StrBefore{#1}{-}[\blx@ox@volnum]%
- \expandafter\ifinteger\blx@ox@volnum{\Rn{\blx@ox@volnum}}{\blx@ox@volnum}\bibrangedash
+ \expandafter\ifinteger\blx@ox@volnum{\mkvolroman{\blx@ox@volnum}}{\blx@ox@volnum}\bibrangedash
\StrBehind[\blx@ox@dashnum]{#1}{-}[\blx@ox@volnum]%
- \expandafter\ifinteger\blx@ox@volnum{\Rn{\blx@ox@volnum}}{\blx@ox@volnum}%
+ \expandafter\ifinteger\blx@ox@volnum{\mkvolroman{\blx@ox@volnum}}{\blx@ox@volnum}%
}{%
- \ifinteger{#1}{\Rn{#1}}{#1}}}
+ \ifinteger{#1}{\mkvolroman{#1}}{#1}}}
% \end{macrocode}
%
% Where a multi-volume work is more like a series, the volume number and
@@ -9377,6 +9466,37 @@ reference,mvreference,inreference]{volume}{%
{Valid values are 'in' and 'out'.}}}}
% \end{macrocode}
%
+% If there are the same number of locations and publishers, and there are more
+% than one pair, we print them pairwaise rather than in two separate lists. In
+% order to do this while retaining the normal mechanisms for punctuating the
+% list, we need a |listpair:delim| macro similar to |namepair:delim| (above)
+% that uses the generic list punctuation. Again, the three arguments are the
+% item being printed, the number of the current item pair and the total number
+% of item pairs.
+%
+% \begin{macrocode}
+\newbibmacro*{listpair:delim}[3]{%
+ \ifnumgreater{#2}{\@ne}{%
+ \ifnumless{#2}{#3}{%
+ \printdelim{multilistdelim}%
+ }{%
+ \c@liststop#3%
+ \lbx@finallistdelim{#1}}%
+ }{}}
+% \end{macrocode}
+%
+% We use this as the basis of a list format that will be applied to the location
+% element of a location--publisher pair.
+%
+% \begin{macrocode}
+\newcounter{locpubpairs}
+\DeclareListFormat{locpub}{%
+ \usebibmacro{listpair:delim}%
+ {#1}{\value{locpubpairs}}{\value{location}}%
+ #1\isdot
+}
+% \end{macrocode}
+%
% When citing both the first and a later edition, the first one comes
% first, and the later one comes after a semicolon. As per standard
% \pkg{biblatex}, the elements of a single edition are separated by commas
@@ -9385,7 +9505,7 @@ reference,mvreference,inreference]{volume}{%
% origpublisher is also specified.
%
% \begin{macrocode}
-\newcounter{locpubpairs}
+\newsavebox{\blx@ox@locbox}
\newbibmacro*{edition+publisher+location+date}{%
\printlist{origlocation}%
\iflistundef{origpublisher}%
@@ -9406,10 +9526,11 @@ reference,mvreference,inreference]{volume}{%
\setunit*{\addcomma\space}%
% \end{macrocode}
%
-% If there are the same number of locations and publishers, and there
-% are more than one pair, we print them pairwaise rather than in two
+% As mentioned, if there are the same number of locations and publishers, and
+% there are more than one pair, we print them pairwaise rather than in two
% separate lists. This uses the same principle as the |namepairs| bibmacro,
-% but does not have the list truncation apparatus.
+% but does not have the list truncation apparatus. This time we use a savebox
+% just for efficiency.
%
% \begin{macrocode}
\ifboolexpr{%
@@ -9424,19 +9545,8 @@ reference,mvreference,inreference]{volume}{%
test {\ifnumcomp{\value{locpubpairs}}{<}{\value{publisher}}}
}{%
\stepcounter{locpubpairs}%
- \ifnumcomp{\value{locpubpairs}}{>}{1}{%
- \ifnumequal{\value{publisher}}{2}{%
- \setunit*{\addspace\bibstring{and}\addspace}%
- }{%
- \ifnumequal{\value{locpubpairs}}{\value{publisher}}{%
- \setunit*{\addcomma\space\bibstring{and}\addspace}%
- }{%
- \setunit*{\addcomma\space}%
- }%
- }%
- }{}%
- \printlist[][\value{locpubpairs}-\value{locpubpairs}]{location}%
- \setunit*{\addcolon\space}%
+ \printlist[locpub][\value{locpubpairs}-\value{locpubpairs}]{location}%
+ \setunit{\addcolon\space}%
\printlist[][\value{locpubpairs}-\value{locpubpairs}]{publisher}%
}%
\restorebibmacro{list:andothers}%
@@ -11383,7 +11493,11 @@ reference,mvreference,inreference]{volume}{%
\setcounter{blx@tmpcnt}{\value{listcount}}%
\addtocounter{blx@tmpcnt}{1}%
\ifnumequal{\value{blx@tmpcnt}}{\value{listtotal}}{%
- #1\space\bibstring{and}\addspace
+ \ifnumgreater{\value{listtotal}}{2}{%
+ #1\finalandcomma\space\bibstring{and}\addspace
+ }{%
+ #1\space\bibstring{and}\addspace
+ }
}{%
#1\addcomma\space}}}%
@@ -14256,11 +14370,6 @@ reference,mvreference,inreference]{volume}{%
% \code{authoraddon} has not been provided.
%
% \begin{macrocode}
-\xpatchbibmacro{namepairs}{%
- \printnames[by#1]%
-}{%
- \printnames[#1]%
-}{}{\wlog{WARNING: biblatex-oxref (oxyear) failed to patch namepairs}}
\xpatchbibmacro{author+altauthor}{%
\printnames{author}%
}{%
@@ -15085,7 +15194,7 @@ reference,mvreference,inreference]{volume}{%
\InheritBibliographyExtras{english}
\DeclareBibliographyExtras{%
\def\finalandcomma{\addcomma}%
- \def\blx@ox@langbibstring#1#2{#1\addspace\bibstring{#2}}%
+ \def\blx@ox@langbibstring#1#2{#1\setunit*{\addspace}\bibstring{#2}}%
}
\UndeclareBibliographyExtras{%
\def\blx@ox@langbibstring#1#2{\bibstring{#2}}%
@@ -15296,11 +15405,11 @@ reference,mvreference,inreference]{volume}{%
byreviser = {{revised by}{rev\adddot}},
byreviewer = {{reviewed by}{rev\adddot}},
bycollaborator = {{in collaboration with}{in collab\adddotspace with}},
- bytranslator = {{translated \lbx@lfromlang\ by}{trans\adddot\ \lbx@sfromlang}},
+ bytranslator = {{translated by}{trans\adddot}},
bycommentator = {{commented by}{comm\adddot}},
byannotator = {{annotated by}{annot\adddot}},
- byeditortr = {{edited and translated \lbx@lfromlang\ by}%
- {ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
+ byeditortr = {{edited and translated by}%
+ {ed\adddotspace and trans\adddot}},
byeditorco = {{edited and commented by}%
{ed\adddotspace and comm\adddot}},
byeditoran = {{edited and annotated by}%
@@ -15311,16 +15420,16 @@ reference,mvreference,inreference]{volume}{%
{ed.\adddotspace with foreword}},
byeditoraf = {{edited, with an afterword, by}%
{ed.\adddotspace with afterword}},
- byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}%
- {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}%
- {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}%
- {with introduction, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
- byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}%
- {with foreword, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
- byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}%
- {with afterword, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
+ byeditortrco = {{edited, translated\finalandcomma\ and commented by}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortran = {{edited, translated\finalandcomma\ and annotated by}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortrin = {{edited and translated, with an introduction, by}%
+ {with introduction, ed\adddotspace and trans\adddot}},
+ byeditortrfo = {{edited and translated, with a foreword, by}%
+ {with foreword, ed\adddotspace and trans\adddot}},
+ byeditortraf = {{edited and translated, with an afterword, by}%
+ {with afterword, ed\adddotspace and trans\adddot}},
byeditorcoin = {{edited and commented, with an introduction, by}%
{with introduction, ed\adddotspace and comm\adddot}},
byeditorcofo = {{edited and commented, with a foreword, by}%
@@ -15333,47 +15442,46 @@ reference,mvreference,inreference]{volume}{%
{with foreword, ed\adddotspace and annot\adddot}},
byeditoranaf = {{edited and annotated, with an afterword, by}%
{with afterword, ed\adddotspace and annot\adddot}},
- byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}%
- {with introduction, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}%
- {with foreword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}%
- {with afterword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}%
- {with introduction, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}%
- {with foreword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}%
- {with afterword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- bytranslatorco = {{translated \lbx@lfromlang\ and commented by}%
- {trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}%
- {trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}%
- {trans\adddot\ \lbx@sfromlang\ with introduction}},
- bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}%
- {trans\adddot\ \lbx@sfromlang\ with foreword}},
- bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}%
- {trans\adddot\ \lbx@sfromlang\ with afterword}},
- bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}%
- {with introduction, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}%
- {with foreword, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}%
- {with afterword, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}%
- {with introduction, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}%
- {with foreword, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}%
- {with afterword, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
+ byeditortrcoin = {{edited, translated\finalandcomma\ and commented, with an introduction, by}%
+ {with introduction, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortrcofo = {{edited, translated\finalandcomma\ and commented, with a foreword, by}%
+ {with foreword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortrcoaf = {{edited, translated\finalandcomma\ and commented, with an afterword, by}%
+ {with afterword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortranin = {{edited, translated\finalandcomma\ and annotated, with an introduction, by}%
+ {with introduction, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortranfo = {{edited, translated\finalandcomma\ and annotated, with a foreword, by}%
+ {with foreword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortranaf = {{edited, translated\finalandcomma\ and annotated, with an afterword, by}%
+ {with afterword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ bytranslatorco = {{translated and commented by}%
+ {trans\adddotspace and comm\adddot}},
+ bytranslatoran = {{translated and annotated by}%
+ {trans\adddotspace and annot\adddot}},
+ bytranslatorin = {{translated, with an introduction, by}%
+ {trans\adddotspace with introduction}},
+ bytranslatorfo = {{translated, with a foreword, by}%
+ {trans\adddotspace with foreword}},
+ bytranslatoraf = {{translated, with an afterword, by}%
+ {trans\adddotspace with afterword}},
+ bytranslatorcoin = {{translated and commented, with an introduction, by}%
+ {with introduction, trans\adddotspace and comm\adddot}},
+ bytranslatorcofo = {{translated and commented, with a foreword, by}%
+ {with foreword, trans\adddotspace and comm\adddot}},
+ bytranslatorcoaf = {{translated and commented, with an afterword, by}%
+ {with afterword, trans\adddotspace and comm\adddot}},
+ bytranslatoranin = {{translated and annotated, with an introduction, by}%
+ {with introduction, trans\adddotspace and annot\adddot}},
+ bytranslatoranfo = {{translated and annotated, with a foreword, by}%
+ {with foreword, trans\adddotspace and annot\adddot}},
+ bytranslatoranaf = {{translated and annotated, with an afterword, by}%
+ {with afterword, trans\adddotspace and annot\adddot}},
% \end{macrocode}
%
% The roles expressed as objects and terms for supplementary material
% are not abbreviated.
%
% \begin{macrocode}
- withintroduction = {{with an introduction by}{with an introduction by}},
withcommentator = {{with a commentary by}{with a commentary by}},
withannotator = {{with annotations by}{with annotations by}},
withintroduction = {{with an introduction by}{with an introduction by}},
@@ -15428,8 +15536,10 @@ reference,mvreference,inreference]{volume}{%
% Languages are abbreviated.
%
% \begin{macrocode}
- langamerican = {{English}{Eng\adddot}},
- langbrazilian = {{Brazilian}{Braz\adddot}},
+ langamerican = {{American English}{Amer\adddotspace Eng\adddot}},
+ langbasque = {{Basque}{Basq\adddot}},
+ langbrazilian = {{Brazilian Portuguese}{Braz\adddotspace Port\adddot}},
+ langbulgarian = {{Bulgarian}{Bulg\adddot}},
langcatalan = {{Catalan}{Catal\adddot}},
langcroatian = {{Croatian}{Croat\adddot}},
langczech = {{Czech}{Czech}},
@@ -15439,17 +15549,28 @@ reference,mvreference,inreference]{volume}{%
langestonian = {{Estonian}{Eston\adddot}},
langfinnish = {{Finnish}{Finn\adddot}},
langfrench = {{French}{Fr\adddot}},
+ langgalician = {{Galician}{Galic\adddot}},
langgerman = {{German}{Ger\adddot}},
langgreek = {{Greek}{Gr\adddot}},
+ langhungarian = {{Hungarian}{Hung\adddot}},
langitalian = {{Italian}{It\adddot}},
+ langjapanese = {{Japanese}{Jap\adddot}},
langlatin = {{Latin}{Lat\adddot}},
+ langlatvian = {{Latvian}{Latv\adddot}},
+ langlithuanian = {{Lithuanian}{Lith\adddot}},
+ langmarathi = {{Marathi}{Mar\adddot}},
langnorwegian = {{Norwegian}{Norw\adddot}},
langpolish = {{Polish}{Pol\adddot}},
langportuguese = {{Portuguese}{Port\adddot}},
+ langromanian = {{Romanian}{Rom\adddot}},
langrussian = {{Russian}{Russ\adddot}},
+ langserbian = {{Serbian}{Serb\adddot}},
+ langslovak = {{Slovak}{Slovak}},
langslovene = {{Slovene}{Slov\adddot}},
langspanish = {{Spanish}{Sp\adddot}},
langswedish = {{Swedish}{Swed\adddot}},
+ langturkish = {{Turkish}{Turk\adddot}},
+ langukrainian = {{Ukrainian}{Ukr\adddot}},
}
% \end{macrocode}
%
@@ -15742,11 +15863,11 @@ reference,mvreference,inreference]{volume}{%
byfounder = {{fundado por}{fund\adddotspace}},
bycontinuator = {{continuado por}{cont\adddotspace}},
bycollaborator = {{colaboraci\'on de}{col\adddotspace de}},
- bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddotspace \lbx@sfromlang}},
+ bytranslator = {{traducido por}{trad\adddotspace}},
bycommentator = {{comentado por}{com\adddotspace}},
byannotator = {{anotado por}{anot\adddotspace}},
- byeditortr = {{editado y traducido \lbx@lfromlang\ por}%
- {ed\adddotspace y trad\adddotspace \lbx@sfromlang}},
+ byeditortr = {{editado y traducido por}%
+ {ed\adddotspace y trad\adddotspace}},
byeditorco = {{editado y comentado por}%
{ed\adddotspace y com\adddotspace }},
byeditoran = {{edici\'on y notas de}%
@@ -15757,16 +15878,16 @@ reference,mvreference,inreference]{volume}{%
{ed\adddotspace y pr\'ol\adddotspace}},
byeditoraf = {{edici\'on y ep\'ilogo de}%
{ed\adddotspace y ep\'il\adddotspace}},
- byeditortrco = {{editado, traducido \lbx@lfromlang\ y comentado por}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddotspace}},
- byeditortran = {{edici\'on, traducci\'on \lbx@lfromlang\ y notas de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y not\adddotspace}},
- byeditortrin = {{edici\'on, traducci\'on \lbx@lfromlang\ e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddotspace}},
- byeditortrfo = {{edici\'on, traducci\'on \lbx@lfromlang\ y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace}},
- byeditortraf = {{editado, traducido \lbx@lfromlang\ y epilogado}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'il\adddotspace}},
+ byeditortrco = {{editado, traducido y comentado por}%
+ {ed.,\addabbrvspace trad\adddotspace y com\adddotspace}},
+ byeditortran = {{edici\'on, traducci\'on y notas de}%
+ {ed.,\addabbrvspace trad\adddotspace y not\adddotspace}},
+ byeditortrin = {{edici\'on, traducci\'on e introducci\'on de}%
+ {ed.,\addabbrvspace trad\adddotspace e intr\adddotspace}},
+ byeditortrfo = {{edici\'on, traducci\'on y pr\'ologo de}%
+ {ed.,\addabbrvspace trad\adddotspace y pr\'ol\adddotspace}},
+ byeditortraf = {{editado, traducido y epilogado}%
+ {ed.,\addabbrvspace trad\adddotspace y ep\'il\adddotspace}},
byeditorcoin = {{editado, comentado e introducido}%
{ed.,\addabbrvspace com\adddotspace e intr\adddotspace}},
byeditorcofo = {{edici\'on, comentarios y pr\'ologo de}%
@@ -15779,40 +15900,40 @@ reference,mvreference,inreference]{volume}{%
{ed.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
byeditoranaf = {{edici\'on, notas y ep\'ilogo de}%
{ed.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
- byeditortrcoin = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace}},
- byeditortrcofo = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace}},
- byeditortrcoaf = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios y ep\'ilogo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'il\adddotspace}},
- byeditortranin = {{edici\'on, traducci\'on \lbx@lfromlang, notas e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace}},
- byeditortranfo = {{edici\'on, traducci\'on \lbx@lfromlang, notas y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace}},
- byeditortranaf = {{edici\'on, traducci\'on \lbx@lfromlang, notas y ep\'ilogo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'il\adddotspace}},
- bytranslatorco = {{traducci\'on \lbx@lfromlang\ y comentarios de}%
- {trad\adddotspace \lbx@sfromlang\ y com\adddotspace}},
- bytranslatoran = {{traducci\'on \lbx@lfromlang\ y notas de}%
- {trad\adddotspace \lbx@sfromlang\ y not\adddotspace}},
- bytranslatorin = {{traducci\'on \lbx@lfromlang\ e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang\ e introd\adddotspace}},
- bytranslatorfo = {{traducci\'on \lbx@lfromlang\ y pr\'ologo de}%
- {trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace}},
- bytranslatoraf = {{traducci\'on \lbx@lfromlang\ y ep\'ilogo de}%
- {trad\adddotspace \lbx@sfromlang\ y ep\'il\adddotspace}},
- bytranslatorcoin = {{traducci\'on \lbx@lfromlang, comentarios e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace}},
- bytranslatorcofo = {{traducci\'on \lbx@lfromlang, comentarios y pr\'ologo de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace}},
- bytranslatorcoaf = {{traducci\'on \lbx@lfromlang, comentarios y ep\'ilogo de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'il\adddotspace}},
- bytranslatoranin = {{traducci\'on \lbx@lfromlang, notas e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace}},
- bytranslatoranfo = {{traducci\'on \lbx@lfromlang, notas y pr\'ologo}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace}},
- bytranslatoranaf = {{traducci\'on \lbx@lfromlang, notas y ep\'ilogo}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'il\adddotspace}},
+ byeditortrcoin = {{edici\'on, traducci\'on, comentarios e introducci\'on de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace e intr\adddotspace}},
+ byeditortrcofo = {{edici\'on, traducci\'on, comentarios y pr\'ologo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace}},
+ byeditortrcoaf = {{edici\'on, traducci\'on, comentarios y ep\'ilogo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace y ep\'il\adddotspace}},
+ byeditortranin = {{edici\'on, traducci\'on, notas e introducci\'on de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace e intr\adddotspace}},
+ byeditortranfo = {{edici\'on, traducci\'on, notas y pr\'ologo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
+ byeditortranaf = {{edici\'on, traducci\'on, notas y ep\'ilogo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
+ bytranslatorco = {{traducci\'on y comentarios de}%
+ {trad\adddotspace y com\adddotspace}},
+ bytranslatoran = {{traducci\'on y notas de}%
+ {trad\adddotspace y not\adddotspace}},
+ bytranslatorin = {{traducci\'on e introducci\'on de}%
+ {trad\adddotspace e introd\adddotspace}},
+ bytranslatorfo = {{traducci\'on y pr\'ologo de}%
+ {trad\adddotspace y pr\'ol\adddotspace}},
+ bytranslatoraf = {{traducci\'on y ep\'ilogo de}%
+ {trad\adddotspace y ep\'il\adddotspace}},
+ bytranslatorcoin = {{traducci\'on, comentarios e introducci\'on de}%
+ {trad.,\addabbrvspace com\adddotspace e intr\adddotspace}},
+ bytranslatorcofo = {{traducci\'on, comentarios y pr\'ologo de}%
+ {trad.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace}},
+ bytranslatorcoaf = {{traducci\'on, comentarios y ep\'ilogo de}%
+ {trad.,\addabbrvspace com\adddotspace y ep\'il\adddotspace}},
+ bytranslatoranin = {{traducci\'on, notas e introducci\'on de}%
+ {trad.,\addabbrvspace anot\adddotspace e intr\adddotspace}},
+ bytranslatoranfo = {{traducci\'on, notas y pr\'ologo}%
+ {trad.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
+ bytranslatoranaf = {{traducci\'on, notas y ep\'ilogo}%
+ {trad.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
% \end{macrocode}
%
% The roles expressed as objects and terms for supplementary material
@@ -15848,6 +15969,14 @@ reference,mvreference,inreference]{volume}{%
% for shorthands and \enquote{at} to cite a page within a range.
%
% \begin{macrocode}
+ idem = {{idem}{id\adddot}},
+ idemsm = {{idem}{id\adddot}},
+ idemsf = {{eadem}{ead\adddot}},
+ idemsn = {{idem}{id\adddot}},
+ idempm = {{eidem}{eid\adddot}},
+ idempf = {{eaedem}{eaed\adddot}},
+ idempn = {{eadem}{ead\adddot}},
+ idempp = {{eidem}{eid\adddot}},
citedas = {{en adelante}{en adelante}},
thiscite = {{en}{en}},
% \end{macrocode}
@@ -15855,50 +15984,510 @@ reference,mvreference,inreference]{volume}{%
% Languages are abbreviated.
%
% \begin{macrocode}
- langamerican = {{ingl\'es americano}{ing\adddotspace amer\adddotspace}},
- langbrazilian = {{brasile\~no}{por\adddotspace bras\adddotspace}},
- langbulgarian = {{b\'ulgaro}{bul\adddotspace}},
- langcatalan = {{catal\'an}{cat\adddotspace}},
- langcroatian = {{croata}{hrv\adddotspace}},
- langczech = {{checo}{ces\adddotspace}},
- langdanish = {{dan\'es}{dan\adddotspace}},
- langdutch = {{neerland\'es}{nld\adddotspace}},
- langenglish = {{ingl\'es}{ing\adddotspace}},
- langestonian = {{estonio}{est\adddotspace}},
- langfinnish = {{fin\'es}{fin\adddotspace}},
- langfrench = {{franc\'es}{fra\adddotspace}},
- langgalician = {{gallego}{glg\adddotspace}},
- langgerman = {{alem\'an}{ale\adddotspace}},
- langgreek = {{griego}{gr\adddotspace}},
- langhungarian = {{h\'ungaro}{hun\adddotspace}},
- langitalian = {{italiano}{ita\adddotspace}},
- langjapanese = {{japon\'es}{jap\adddotspace}},
- langlatin = {{lat\'in}{lat\adddotspace}},
- langlatvian = {{lituano}{lit\adddotspace}},
- langnorwegian = {{noruego}{nor\adddotspace}},
- langpolish = {{polaco}{pol\adddotspace}},
- langportuguese = {{portugu\'es}{port\adddotspace}},
- langrussian = {{ruso}{rus\adddotspace}},
- langserbian = {{serbio}{srp\adddotspace}},
- langslovak = {{eslovaco}{slk\adddotspace}},
- langslovene = {{esloveno}{slv\adddotspace}},
- langspanish = {{espa\~nol}{esp\adddotspace}},
+ langamerican = {{ingl\'es americano}{ing\adddotspace amer\adddot}},
+ langbasque = {{vasco}{vasc\adddot}},
+ langbrazilian = {{portugu\'es brasile\~no}{por\adddotspace bras\adddot}},
+ langbulgarian = {{b\'ulgaro}{bul\adddot}},
+ langcatalan = {{catal\'an}{cat\adddot}},
+ langcroatian = {{croata}{hrv\adddot}},
+ langczech = {{checo}{ces\adddot}},
+ langdanish = {{dan\'es}{dan\adddot}},
+ langdutch = {{neerland\'es}{nld\adddot}},
+ langenglish = {{ingl\'es}{ing\adddot}},
+ langestonian = {{estonio}{est\adddot}},
+ langfinnish = {{fin\'es}{fin\adddot}},
+ langfrench = {{franc\'es}{fra\adddot}},
+ langgalician = {{gallego}{glg\adddot}},
+ langgerman = {{alem\'an}{ale\adddot}},
+ langgreek = {{griego}{gr\adddot}},
+ langhungarian = {{h\'ungaro}{hun\adddot}},
+ langitalian = {{italiano}{ita\adddot}},
+ langjapanese = {{japon\'es}{jap\adddot}},
+ langlatin = {{lat\'in}{lat\adddot}},
+ langlatvian = {{let\'on}{let\adddot}},
+ langlithuanian = {{lituano}{lit\adddot}},
+ langmarathi = {{marathi}{mar\adddot}},
+ langnorwegian = {{noruego}{nor\adddot}},
+ langpolish = {{polaco}{pol\adddot}},
+ langportuguese = {{portugu\'es}{port\adddot}},
+ langrussian = {{ruso}{rus\adddot}},
+ langserbian = {{serbio}{srp\adddot}},
+ langslovak = {{eslovaco}{slk\adddot}},
+ langslovene = {{esloveno}{slv\adddot}},
+ langspanish = {{espa\~nol}{esp\adddot}},
langswedish = {{sueco}{sueco}},
- langukrainian = {{ucraniano}{ucr\adddotspace}},
+ langturkish = {{turco}{turco}},
+ langukrainian = {{ucraniano}{ucr\adddot}},
}
% \end{macrocode}
%
% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%</es>
+%<*pl>
+% \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \section{Polish: polish-oxref.lbx}
+%
+% \setcounter{FancyVerbLine}{19}
+%
+% Thanks to Sebastian Wasiuta for contributing these translations and extras.
+%
+% We load the standard language-specific punctuation and date formatting.
+%
+% \begin{macrocode}
+\InheritBibliographyExtras{polish}
+% \end{macrocode}
+%
+% Here are some additional specific settings we need.
+%
+% There is no comma after forenames in the inverted position.
+%
+% \begin{macrocode}
+\DeclareBibliographyExtras{%
+ \DeclareDelimFormat{revsdnamedelim}{}%
+% \end{macrocode}
+%
+% We need to use the right case for month names in treaty execution dates.
+%
+% \begin{macrocode}
+ \savecommand\makebbx@dateii
+ \def\makebbx@dateii#1#2#3{%
+ \blx@imc@stripzeros{#3}~\lbx@pl@mkbibmonth{#2}%
+ \space
+ #1}%
+% \end{macrocode}
+%
+% Volume numbers are expressed in uppercase Roman numerals.
+%
+% \begin{macrocode}
+ \savecommand\mkvolroman
+ \renewcommand*{\mkvolroman}[1]{\RN{#1}}%
+% \end{macrocode}
+%
+% There is no compression of years.
+%
+% \begin{macrocode}
+ \savecommand\blx@ox@compyear
+ \renewcommand*{\blx@ox@compyear}[2]{#2}%
+% \end{macrocode}
+%
+% There is no compression of pagination ranges.
+%
+% \begin{macrocode}
+ \savefieldformat{pages}%
+ \DeclareFieldFormat{pages}{%
+ \iffieldundef{bookpagination}%
+ {\mknormrange{#1}}%
+ {\mkpageprefix[bookpagination][\mknormrange]{#1}}%
+ }%
+ \savefieldformat{postnote}%
+ \DeclareFieldFormat{postnote}{%
+ \iffieldundef{pagination}%
+ {\mknormrange{#1}}%
+ {\mkpageprefix[pagination][\mknormrange]{#1}}%
+ }%
+% \end{macrocode}
+%
+% We flip the word order when specifying the edition.
+%
+% \begin{macrocode}
+ \savefieldformat{edition}%
+ \DeclareFieldFormat{edition}{%
+ \ifinteger{#1}
+ {\bibstring{edition}~\mkbibordedition{#1}}
+ {\ifbibstring{#1}{\bibstring{#1}}{#1\isdot}}}%
+}
+% \end{macrocode}
+%
+% Lastly we add code to undo these changes before switching to another language.
+%
+% \begin{macrocode}
+\UndeclareBibliographyExtras{%
+ \DeclareDelimFormat{revsdnamedelim}{\addcomma}%
+ \restorecommand\makebbx@dateii
+ \restorecommand\mkvolroman
+ \restorecommand\blx@ox@compyear
+ \restorefieldformat{pages}%
+ \restorefieldformat{postnote}%
+ \restorefieldformat{edition}%
+}
+% \end{macrocode}
+%
+% We load the standard set of localization strings, then add our
+% adjustments.
+%
+% \begin{macrocode}
+\DeclareBibliographyStrings{%
+ inherit = {polish},
+% \end{macrocode}
+%
+% These are new strings defined by \pkg[biblatex]{oxref}:
+%
+% \begin{itemize}
+% \item Roles expressed as functions
+% \end{itemize}
+%
+% \begin{macrocode}
+ director = {{re\.{z}yser}{re\.{z}\adddot}},
+ directors = {{re\.{z}yserzy}{re\.{z}\adddot}},
+ performer = {{wykonawca}{wyk\adddot}},
+ performers = {{wykonawcy}{wyk\adddot}},
+ reader = {{czytelnik}{czytelnik}},
+ readers = {{czytelnicy}{czytelnicy}},
+ conductor = {{dyrygent}{dyr\adddot}},
+ conductors = {{dyrygenci}{dyr\adddot}},
+ serieseditor = {{redaktor serii}{red\adddotspace serii}},
+ serieseditors = {{redaktor serii}{red\adddotspace serii}},
+ holder = {{w\l a\'{s}ciciel}{w\l a\'{s}ciciel}},
+ holders = {{w\l a\'{s}ciciele}{w\l a\'{s}ciciele}},
+ editorcm = {{redaktor i~kompilator}{red\adddotspace i~kompilator}},
+ editorcms = {{redaktorzy i~kompilatorzy}{red\adddotspace i~kompilatorzy}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Roles expressed as actions
+% \end{itemize}
+%
+% \begin{macrocode}
+ byperformer = {{wykonawca}{wyk\adddot}},
+ bydirector = {{re\.{z}yseria}{re\.{z}\adddot}},
+ byreader = {{czyta}{czyta}},
+ byconductor = {{kieruje}{kier\adddot}},
+ byserieseditor = {{redakcja}{red\adddot}},
+ byholder = {{w~posiadaniu}{w~posiadaniu}},
+ byeditorcm = {{redakcja i~opracowanie}{red\adddotspace i~oprac\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Publication details
+% \end{itemize}
+%
+% \begin{macrocode}
+ facsimile = {{wydanie faksymile}{wyd\adddotspace faksymile}},
+ revised = {{wydanie poprawione}{wyd\adddotspace popr\adddot}},
+ revisedenlarged = {{wydanie poprawione i~rozszerzone}{wyd\adddotspace popr\addotspace i~rozszerz\adddot}},
+ revisedreprint = {{przedruk poprawiony}{przedr\adddotspace popr\adddot}},
+ suppto = {{dodatek do}{dod\adddotspace do}},
+ equals = {{=}{=}},
+ original = {{oryginalny}{oryg\adddot}},
+ amendedby = {{zmienione przez}{zmien\adddotspace przez}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Publication state
+% \end{itemize}
+%
+% \begin{macrocode}
+ inpressin = {{z\l o\.{z}one do}{z\l o\.{z}one do}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Pagination
+% \end{itemize}
+%
+% \begin{macrocode}
+ book = {{ksi\k{e}ga}{ks\adddot}},
+ books = {{ksi\k{e}gi}{ks\adddot}},
+ canto = {{pie\'{s}\'{n}}{pie\'{s}\'{n}}},
+ cantos = {{pie\'{s}ni}{pie\'{s}ni}},
+ stanza = {{zwrotka}{zwr\adddot}},
+ stanzas = {{zwrotki}{zwr\adddot}},
+ act = {{akt}{a\adddot}},
+ acts = {{akty}{aa\adddot}},
+ scene = {{scena}{sc\adddot}},
+ scenes = {{sceny}{sc\adddot}},
+ folio = {{karta}{k\adddot}},
+ folios = {{karty}{kk\adddot}},
+ article = {{artyku\l }{art\adddot}},
+ articles = {{artyku\l y}{art\adddot}},
+ clause = {{klauzula}{klauz\adddot}},
+ clauses = {{klauzule}{klauz\adddot}},
+ regulation = {{rozporz\k{a}dzenie}{rozp\adddot}},
+ regulations = {{rozporz\k{a}dzenia}{rozp\adddot}},
+ rule = {{przepis}{przep\adddot}},
+ rules = {{przepisy}{przep\adddot}},
+ booktotal = {{ksi\k{e}ga}{ks\adddot}},
+ booktotals = {{ksi\k{e}gi}{ks\adddot}},
+ cantototal = {{pie\'{s}\'{n}}{pie\'{s}\'{n}}},
+ cantototals = {{pie\'{s}ni}{pie\'{s}ni}},
+ stanzatotal = {{zwrotka}{zwr\adddot}},
+ stanzatotals = {{zwrotki}{zwr\adddot}},
+ acttotal = {{akt}{a\adddot}},
+ acttotals = {{akty}{aa\adddot}},
+ scenetotal = {{scena}{sc\adddot}},
+ scenetotals = {{sceny}{sc\adddot}},
+ foliototal = {{karta}{k\adddot}},
+ foliototals = {{karty}{kk\adddot}},
+ articletotal = {{artyku\l }{art\adddot}},
+ articletotals = {{artyku\l y}{art\adddot}},
+ clausetotal = {{klauzula}{klauz\adddot}},
+ clausetotals = {{klauzule}{klauz\adddot}},
+ regulationtotal = {{rozporz\k{a}dzenie}{rozp\adddot}},
+ regulationtotals = {{rozporz\k{a}dzenia}{rozp\adddot}},
+ ruletotal = {{przepis}{przep\adddot}},
+ ruletotals = {{przepisy}{przep\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Types
+% \end{itemize}
+%
+% \begin{macrocode}
+ facebook = {{wpis na Facebooku}{wpis na Facebooku}},
+ tweet = {{wpis na Twitterze}{wpis na Twitterze}},
+ podcast = {{podcast}{podcast}},
+ clip = {{wideo}{wideo}},
+ webcast = {{webcast}{webcast}},
+ poster = {{plakat}{plakat}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Miscellaneous
+% \end{itemize}
+%
+% \begin{macrocode}
+ nolocation = {{bez miejsca}{b\adddot m\adddot}},
+ modified = {{ostatnio zmodyfikowany}{ostatnio zmodyf\adddot}},
+ recorded = {{nagrane}{nagr\adddot}},
+ uploaded = {{za\l adowane}{za\l ad\adddot}},
+ filed = {{wniesione}{wniesione}},
+ issued = {{wydany}{wyd\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Labels
+% \end{itemize}
+%
+% \begin{macrocode}
+ anon = {{Anonim}{Anon\adddot}},
+ pseudo = {{Pseudo-}{Ps\adddot-}},
+ urldown = {{pobrane}{pobrane}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Country names, patents, and patent requests,
+% \end{itemize}
+%
+% \begin{macrocode}
+ countryjp = {{Japonia}{JP}},
+ patentjp = {{japo\'{n}ski patent}{jap\adddotspace pat\adddot}},
+ patreqjp = {{japo\'{n}ski wniosek patentowy}{jap\adddotspace wniosek pat\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item These are borrowed from other styles.
+% \end{itemize}
+%
+% \begin{macrocode}
+ 1column = {{jedna kolumna}{1\addnbspace kol\adddot}},
+ 2column = {{dwie kolumny}{2\addnbspace kol\adddot}},
+ inflayer = {{warstwa ni\.{z}sza}{warstwa ni\.{z}sza}},
+ suplayer = {{warstwa wy\.{z}sza}{warstwa wy\.{z}sza}},
+ paper = {{gazeta}{gazeta}},
+ papyrus = {{papirus}{papirus}},
+ parchment = {{pergamin}{pergamin}},
+ eucase = {{sprawa}{sprawa}},
+ eujoinedcases = {{po\l \k{a}czone sprawy}{po\l \k{a}czone sprawy}},
+ commissiondecision = {{decyzja komisji}{decyzja komisji}},
+ application = {{wniosek}{wniosek}},
+ order = {{polecenie}{polecenie}},
+ bill = {{rachunek}{rachunek}},
+ draft = {{projekt}{proj\adddot}},
+ opened = {{przed\l o\.{z}one do podpisu}{przed\l\adddotspace do podp\adddot}},
+ signed = {{podpisane}{podpisane}},
+ adopted = {{przyj\k{e}te}{przyj\k{e}te}},
+ inforce = {{wesz\l o w~\.{z}ycie}{wesz\l o w~\.{z}ycie}},
+% \end{macrocode}
+%
+% The rest of these strings are overrides for the standard ones.
+%
+% \begin{macrocode}
+ byeditor = {{redakcja}{red\adddot}},
+ bycompiler = {{opracowanie}{oprac\adddot}},
+ byfounder = {{za\l o\.{z}one przez}{za\l o\.{z}\adddotspace przez}},
+ bycontinuator = {{kontynuowane przez}{kont\adddotspace przez}},
+ byredactor = {{redakcja}{red\adddot}},
+ byreviser = {{poprawki}{popr\adddot}},
+ byreviewer = {{recenzja}{rec\adddot}},
+ bycollaborator = {{we wsp\'{o}\l pracy z}{we wsp\'{o}\l pr\adddotspace z}},
+ bytranslator = {{t\l umaczenie}{t\l um\adddot}},
+ bycommentator = {{komentarz}{kom\adddot}},
+ byannotator = {{obja\'{s}nienia}{obja\'{s}n\adddot}},
+ byeditortr = {{redakcja i~t\l umaczenie}%
+ {red\adddotspace i~t\l um\adddot}},
+ byeditorco = {{redakcja i~komentarz}%
+ {red\adddotspace i~kom\adddot}},
+ byeditoran = {{redakcja i~obja\'{s}nienia}%
+ {red\adddotspace i~obja\'{s}n\adddot}},
+ byeditorin = {{redakcja i~wst\k{e}p}%
+ {red\adddotspace i~wst\k{e}p}},
+ byeditorfo = {{redakcja i~przedmowa}%
+ {red\adddotspace i~przedm\adddot}},
+ byeditoraf = {{redakcja i~pos\l owie}%
+ {red\adddotspace i~pos\l \adddot}},
+ byeditortrco = {{redakcja, t\l umaczenie i~komentarz}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom\adddot}},
+ byeditortran = {{redakcja, t\l umaczenie i~obja\'{s}nienia}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n\adddot}},
+ byeditortrin = {{redakcja, t\l umaczenie, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace wst\k{e}p}},
+ byeditortrfo = {{redakcja, t\l umaczenie, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace przedm\adddot}},
+ byeditortraf = {{redakcja, t\l umaczenie, pos\l \adddot}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace pos\l \adddot}},
+ byeditorcoin = {{redakcja, komentarz, wst\k{e}p}%
+ {red.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ byeditorcofo = {{redakcja, komentarz i~przedmowa}%
+ {red.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ byeditorcoaf = {{redakcja, komentarz, pos\l owie}%
+ {red.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ byeditoranin = {{redakcja, obja\'{s}nienia, wst\k{e}p}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ byeditoranfo = {{redakcja, obja\'{s}nienia, przedmowa}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ byeditoranaf = {{redakcja, obja\'{s}nienia, pos\l owie}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+ byeditortrcoin = {{redakcja, t\l umaczenie, komentarz, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ byeditortrcofo = {{redakcja, t\l umaczenie, komentarz, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ byeditortrcoaf = {{redakcja, t\l umaczenie, komentarz, pos\l owie}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ byeditortranin = {{redakcja, t\l umaczenie, obja\'{s}nienia, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ byeditortranfo = {{redakcja, t\l umaczenie, obja\'{s}nienia, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ byeditortranaf = {{redakcja, t\l umaczenie, obja\'{s}nienia, pos\l owie}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+ bytranslatorco = {{t\l umaczenie i~komentarz}%
+ {t\l um\adddotspace i~kom\adddot}},
+ bytranslatoran = {{t\l umaczenie i~obja\'{s}nienia}%
+ {t\l um\adddotspace i~obja\'{s}n\adddot}},
+ bytranslatorin = {{t\l umaczenie i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace wst\k{e}p}},
+ bytranslatorfo = {{t\l umaczenie i~przedmowa}%
+ {t\l um.,\addabbrvspace przedm\adddot}},
+ bytranslatoraf = {{t\l umaczenie i~pos\l owie}%
+ {t\l um.,\addabbrvspace pos\l \adddot}},
+ bytranslatorcoin = {{t\l umaczenie, komentarz i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ bytranslatorcofo = {{t\l umaczenie, komentarz i~przedmowa}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ bytranslatorcoaf = {{t\l umaczenie, komentarz i~pos\l owie}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ bytranslatoranin = {{t\l umaczenie, obja\'{s}nienia i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ bytranslatoranfo = {{t\l umaczenie, obja\'{s}nienia i~przedmowa}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ bytranslatoranaf = {{t\l umaczenie, obja\'{s}nienia i~pos\l owie}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+% \end{macrocode}
+%
+% The roles expressed as objects and terms for supplementary material
+% are not abbreviated.
+%
+% \begin{macrocode}
+ withcommentator = {{komentarz}{komentarz}},
+ withannotator = {{obja\'{s}nienia}{obja\'{s}nienia}},
+ withintroduction = {{wst\k{e}p}{wst\k{e}p}},
+ withforeword = {{przedmowa}{przedmowa}},
+ withafterword = {{pos\l owie}{pos\l owie}},
+ introduction = {{wst\k{e}p}{wst\k{e}p}},
+% \end{macrocode}
+%
+% The translations and abbreviations for some publication details are different.
+%
+% \begin{macrocode}
+ newseries = {{nowa seria}{nowa seria}},
+ oldseries = {{dawna seria}{dawna seria}},
+ edition = {{wydanie}{wyd\adddot}},
+ reviewof = {{recenzja}{rec\adddot}},
+ reprintfrom = {{przedruk z}{przedr\adddotspace z}},
+ translationas = {{t\l umaczenie polskie}{t\l um\adddotspace pol\adddotspace}},
+ origpubin = {{pierwodruk w}{pierwodr\adddotspace w}},
+% \end{macrocode}
+%
+% We use a different translation for \enquote{paragraph}.
+%
+% \begin{macrocode}
+ paragraph = {{ust\k{e}p}{ust\adddot}},
+ paragraphs = {{ust\k{e}py}{ust\adddot}},
+% \end{macrocode}
+%
+% \emph{New Hart's Rules} uses \enquote{accessed} for URL dates.
+%
+% \begin{macrocode}
+ urlseen = {{dost\k{e}p}{dost\k{e}p}},
+% \end{macrocode}
+%
+% Scholarly citation terms are abbreviated. Oxford style is to use \enquote{henceforth}
+% for shorthands and \enquote{at} to cite a page within a range.
+%
+% \begin{macrocode}
+ idem = {{idem}{id\adddot}},
+ idemsm = {{idem}{id\adddot}},
+ idemsf = {{eadem}{ead\adddot}},
+ idemsn = {{idem}{id\adddot}},
+ idempm = {{eidem}{eid\adddot}},
+ idempf = {{eaedem}{eaed\adddot}},
+ idempn = {{eadem}{ead\adddot}},
+ idempp = {{eidem}{eid\adddot}},
+ citedas = {{dalej}{dalej}},
+ thiscite = {{na}{na}},
+% \end{macrocode}
+%
+% Languages are abbreviated.
+%
+% \begin{macrocode}
+ langamerican = {{ameryka\'{n}ski angielski}{amer\adddotspace ang\adddot}},
+ langbasque = {{baskijski}{bask\adddot}},
+ langbrazilian = {{brazylijski portugalski}{braz\adddot port\adddot}},
+ langbulgarian = {{bu\l garski}{bu\l g\adddot}},
+ langcatalan = {{katalo\'{n}ski}{katal\adddot}},
+ langcroatian = {{chorwacki}{chorw\adddot}},
+ langczech = {{czeski}{czeski}},
+ langdanish = {{du\'{n}ski}{du\'{n}\adddot}},
+ langdutch = {{holenderski}{holend\adddot}},
+ langenglish = {{angielski}{ang\adddot}},
+ langestonian = {{esto\'{n}ski}{est\adddot}},
+ langfinnish = {{fi\'{n}ski}{fi\'{n}\adddot}},
+ langfrench = {{francuski}{fr\adddot}},
+ langgalician = {{galicyjski}{galic\adddot}},
+ langgerman = {{niemiecki}{niem\adddot}},
+ langgreek = {{grecki}{gr\adddot}},
+ langhungarian = {{w\k{e}gierski}{w\k{e}g\adddot}},
+ langitalian = {{w\l oski}{w\l \adddot}},
+ langjapanese = {{japo\'{n}ski}{jap\adddot}},
+ langlatin = {{\l aci\'{n}ski}{\l ac\adddot}},
+ langlatvian = {{\l otewski}{\l ot\adddot}},
+ langlithuanian = {{litewski}{lit\adddot}},
+ langmarathi = {{marathi}{mar\adddot}},
+ langnorwegian = {{norweski}{norw\adddot}},
+ langpolish = {{polski}{pol\adddot}},
+ langportuguese = {{portugalski}{port\adddot}},
+ langromanian = {{rumu\'{n}ski}{rum\adddot}},
+ langrussian = {{rosyjski}{ros\adddot}},
+ langserbian = {{serbski}{serb\adddot}},
+ langslovak = {{s\l owacki}{s\l c\adddot}},
+ langslovene = {{s\l owe\'{n}ski}{s\l owe\'{n}\adddot}},
+ langspanish = {{hiszpa\'{n}ski}{hiszp\adddot}},
+ langswedish = {{szwedzki}{szw\adddot}},
+ langturkish = {{turecki}{tur\adddot}},
+ langukrainian = {{ukrai\'{n}ski}{ukr\adddot}},
+}
+% \end{macrocode}
+%
+% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%</pl>
% \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \section{Other languages}
%
-% Currently \pkg[biblatex]{oxref} only supports English (British and American)
-% and Spanish explicitly, but if there is demand more languages may be added. If
-% you would like to contribute support for your language, a list of the
-% non-standard bibliography strings requiring definition may be found in
-% section~\ref{sec:setup}.
+% Currently \pkg[biblatex]{oxref} only supports English (British and American),
+% Spanish, and Polish explicitly,
+% but if there is demand more languages may be added. If you would like to
+% contribute support for your language, a list of the non-standard bibliography
+% strings requiring definition may be found in section~\ref{sec:setup}.
%
% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%</lbx>
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
index 08147694cc..5834fb1590 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
index 89a6515237..61c1abb84e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
index f452a57a9f..11885c9993 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
@@ -46,6 +46,13 @@ instructions.
== CHANGES ==
+* V. 2.13 (2024-08-21):
+ - Add basic support for author annotations.
+ - Add support for information about number of citations.
+ - Add support for \citesecitem and \citesecitem* in
+ descending order.
+ - Fix \citeitem in first refsection.
+
* V. 2.12 (2024-07-16):
- Externalize localization to *.lbx files.
- Add \citeitemrange and \citesecitemrange commands.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
index 1d58e50fd5..fd041e59a8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
index a140ad0133..241bba978e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
@@ -115,7 +115,7 @@
\thanks{Please report issues via \protect\url{https://github.com/jspitz/biblatex-publist}.}%
}
-\date{Version 2.12, 2024/07/16}
+\date{Version 2.13, 2024/08/21}
\maketitle
\begin{abstract}
@@ -162,6 +162,7 @@ The list of features includes:
\begin{itemize}
\setlength\itemsep{0pt}
\item Omit or hide selected author names, with a specific indication of co-authors in the former case
+ \item Indicate author roles
\item Filter publications of specific authors from heterogeneous bibliography databases
\item Date-centric sorting (as typical for publication lists)
\item Number items in ascending or descending order, globally or sectional
@@ -226,7 +227,7 @@ out and the collaborators added in parentheses, as in:
If \joption{plauthorhandling=highlight} is used (see next section), the plauthor(s)
will be printed in bold face instead, as in:
\begin{itemize}
-\item[{[2]}] Doe, John, \textbf{Myself, Me} and Hall, Mary, \textbf{1987}. Are there new trends
+\item[{[2]}] Doe, John, \textbf{Myself, Me}, and Hall, Mary. \textbf{1987}. Are there new trends
in gardening? In: \emph{Gardening Practice} 24, pp.~10--15.
\end{itemize}
%
@@ -258,6 +259,10 @@ By default, the publist author (as defined with \jcsmacro{plauthorname}) is omit
the author or editor list. If you use the option \joption{plauthorhandling=highlight},
it is highlighted instead (set in bold face by default; see sec.~\ref{sec:auxmacros} how to change that).
+\item [{\joption{annotations=\{comma-separated list\}}}]
+
+A list of data annotations that should be handled in output. See sec.~\ref{sec:annotations} for details.
+
\item [{\joption{nameorder{[}=family-given|given-family{]}}}] default: \emph{family-given}.
By default, the author and editor names with \joption{plauthorhandling=highlight} are output in the order \enquote{Lastname, Given Names}.
@@ -329,6 +334,11 @@ with abbreviated and full first name (\textsc{J. Doe} and well as \textsc{John D
works of colleagues with the same surname (maybe your family members), which you will not want to mark as your own's.
Of course, the solution does not help if there is an entry with same surname and same first name initial (such as \textsc{Jane Doe}).
+\item [{\joption{citinfo{[}=true|false{]}}}] default: \emph{false}.
+
+If this option is \joption{true}, the number of citations, as specified via the \texttt{citations} field
+(see section~\ref{sec:citinfo}), will be appended to the entries.
+
\item [{\joption{jifinfo{[}=true|false{]}}}] default: \emph{false}.
If this option is \joption{true}, the journal impact factor, as specified via the \texttt{impactfactor} field
@@ -591,6 +601,85 @@ The omission indicator, \jcsmacro*{plnameomission}, can be redefined. The defaul
\newcommand*\plnameomission{\bibellipsis\addcomma\addspace}
\end{lstlisting}
+
+\subsection{Indicating Author Roles}\label{sec:annotations}
+
+If you want to indicate author roles (e.\,g., signify who is corresponding or main author
+of a paper), you need to add this information to the respective entries,
+but you do not want to clutter the author data.
+With \bibltx, separating such extra information from the actual data is well supported
+via the data annotation feature, as in:
+\begin{lstlisting}[morekeywords={[1]{author}}, otherkeywords={author+an}]
+author = {John Doe and Mary Hall and Me Myself},
+author+an = {1=corresponding; 3=main},
+\end{lstlisting}
+%
+where the number (key) refers to the respective name in the list, and the value to the annotation category
+which you can name as you wish.
+Multiple annotations to a single person are possible if you pass multiple comma-separated categories to
+one key, as in \texttt{1=corresponding,main} (please refer to the \bibltx\ manual \cite{bibltx} for details).
+
+To handle such annotations, however, the style file needs to know what to do with what kind of
+annotation. Otherwise annotations are just ignored.
+
+For basic usage, \bpl\ provides some support for such annotations.
+If you pass the annotation categories you have used in the \texttt{*.bib} file as a comma-separated list
+to the \joption{annotations} option,
+\bpl\ will go through these annotations and for each, it
+will print a superscripted symbol in front of the author family name.
+By default this uses a list similar\footnote{If have moved the single dagger (\textdagger) to a later place,
+ since some people associate this with the \enquote*{deceased} indicator.}
+to the one you know from symbolic (\jfcsmacro{thanks}) footnotes
+(in order of the passed category: \textasteriskcentered, \textdaggerdbl, \textsection, \textparagraph,
+\textbardbl, \textdagger, {\textasteriskcentered\textasteriskcentered}, {\textdaggerdbl\textdaggerdbl},
+or {\textdagger\textdagger}). Nine different annotations are supported this way.
+
+With the example given above and \joption{annotations=\{main,correponding\}}, for instance,
+you would get
+\begin{itemize}
+ \item[{[4]}] \textsuperscript{\textdaggerdbl}Doe, John, Hall, Mary, and
+ \textbf{\textsuperscript{\textasteriskcentered}Myself, Me} \ldots
+\end{itemize}
+%
+Of course, each category always gets the same symbol within a publication list, so you can add a caption
+to explain those. For easy access to the symbols, you can use \jcsmacro*{GetAnnotSymbol}\jmacro{\{category\}}.
+This prints the respective symbol in formatted way (superscripted with default settings).
+A starred version of the command prints it without such formatting.
+
+If you want a different list of symbols, or need more, you can change it by means of the macro
+\jcsmacro*{SetAnnotSymbols}\jmacro{\{comma-separated list of symbols/macros\}}.
+This will overwrite the default list.
+
+You can also change the position of the symbol. The default definition is
+\begin{lstlisting}[morekeywords={[1]{mkbibnamefamily,bplannot}}]
+\renewcommand*{\mkbibnamefamily}[1]{\bplannot #1}
+\end{lstlisting}
+%
+with \jcsmacro{bplannot} being the annotation. You can move it after the name, or to another name
+part (e.g., \jfcsmacro{mkbibnamegiven}).
+
+To change the formatting, you can redefine
+\begin{lstlisting}[morekeywords={[1]{mkbplannot,textsuperscript}}]
+\newcommand*\mkbplannot[1]{\textsuperscript{#1}}
+\end{lstlisting}
+%
+If you need a different markup (such as coloring or underlining) you need to set up
+your own annotation handling as documented in the \bibltx\ manual.
+
+With \joption{plauthorhandling=omit}, the annotations of the omitted publist author(s)
+are appended to the entry (as an annotation and with the specific entry-related information
+discussed in the next section). If a \jfcsmacro{bibstring}
+\texttt{annot:<category>} exists (predefined keys are \texttt{annot:main} and
+\texttt{annot:corresponding}), the respective localized string is output, otherwise
+the verbatim category.
+
+So, again with the example given above, you would get:
+\begin{itemize}
+ \item[{[4]}] \ldots\ (with John \textsuperscript{\textdaggerdbl}Doe and Mary Hall)
+ \ldots\ [Main auth.].
+\end{itemize}
+
+
\subsection{Adding Specific Entry-Related Information}
Publication lists usually contain some information which is not commonly given in normal
@@ -612,6 +701,17 @@ in a specific \texttt{@xdata} subset (please refer to the \bibltx\ documentation
If the option \joption{jifinfo} is true, then \bpl\ will append the respective information to the entries.
A specific localizable bibkey is used for this purpose (see section~\ref{sec:localization}).
+
+\subsubsection{Number of Citations}\label{sec:citinfo}
+
+Another common quantification of \enquote*{impact} is the number of citations of a publication
+(by other publications).
+To track this, \bpl\ provides a specific database field, \texttt{citations}.
+
+If the option \joption{citinfo} is true, then \bpl\ will append the respective information to the entries.
+A specific localizable bibkey is used for this purpose (see section~\ref{sec:localization}).
+
+
\subsubsection{Peer Review}\label{sec:peerreview}
It is common, and sometimes mandatory, to add information to publication list entries indicating if
@@ -780,6 +880,9 @@ on your setting of the \bibltx\ option \joption{abbreviate}):
\begin{description}
\setlength{\itemsep}{0pt}
+\item[annot:corresponding] the expression \enquote{corresponding author} (short form: \enquote{corr. auth.}).
+\item[annot:main] the expression \enquote{main author} (short form: \enquote{main auth.}).
+\item[citations] the expression \enquote{citations} (short form: \enquote{cit.}).
\item[impactfactor] the expression \enquote{impact factor} (short form: \enquote{JIF}).
\item[openaccess:true] the expression \enquote{OpenAccess} (short form: \enquote{OA}).
\item[openaccess:gold] the phrase \enquote{OpenAccess (gold)} (short form: \enquote{OA (gold)}).
@@ -1059,6 +1162,15 @@ until further change).
\section{Revision Log}
\begin{description}
+ \item [{V. 2.13 (2024/08/21):}]~
+ \begin{itemize}
+ \item Add basic support for author annotations (see sec.~\ref{sec:annotations}).
+ \item Add support for information about number of citations (see sec.~\ref{sec:citinfo}).
+ \item Add support for \jcsmacro{citesecitem} and \jcsmacro{citesecitem*} in descending
+ order.
+ \item Fix \jcsmacro{citeitem} in first refsection.
+ \end{itemize}
+
\item [{V. 2.12 (2024/07/16):}]~
\begin{itemize}
\item Externalize localization to \texttt{*.lbx} files.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
index 320c493f40..0b5cce13f5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{UKenglish-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist UK English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
index f20be86b76..cc6526761d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{USenglish-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist US English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
index ae889e0216..5476f022ab 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{american-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist US English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
index ae6d96e932..0df359aa82 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{australian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist AU English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
index 0ad5c4119e..0a82a48b77 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{austrian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Austrian localisation (JSP)]
@@ -35,8 +35,9 @@
% Localizations
\DeclareBibliographyStrings{%
inherit = {austrian},
- parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
+ peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
index dbfe613118..b1dbaea5be 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{british-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist UK English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {british},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
index f92334b5ba..288c694155 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{canadian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist CDN English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
index a51deb5583..a9dc25db89 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{english-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {english},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
index e49a00b8c8..e2f982b03c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{french-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist French localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {french},
parttranslationof = {{traduction partielle de}{trad\adddotspace part\adddotspace de}},
with = {{avec}{avec}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{facteur d'impact}{FI}},
openaccess:true = {{libre acc\`es}{libre acc\`es}},
openaccess:gold = {{libre acc\`es (dorée)}{libre acc\`es (dorée)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{\'{e}valuation par les pairs en cascade}{\'{e}val\adddotspace par les pairs en cascade}},
peerreview:tp = {{\'{e}valuation par des pairs ext\'{e}rieurs}{\'{e}val\adddotspace par des pairs ext\adddot}},
peerreview:pp = {{\'{e}valuation par les pairs apr\`{e}s publication}{\'{e}val\adddotspace par les pairs apr\`{e}s pub\adddot}},
- peerreview:no = {{pas d'\'{e}valuation par les pairs}{pas d'\'{e}val\adddotspace par les pairs}}
+ peerreview:no = {{pas d'\'{e}valuation par les pairs}{pas d'\'{e}val\adddotspace par les pairs}},
+ annot:main = {{auteur principale}{aut\adddotspace princ\adddot}},
+ annot:corresponding = {{auteur correspondant}{aut\adddotspace corr\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
index c7b4570f06..e67d8d44b1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{german-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist German localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {german},
parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
index 85e0c9a92c..3b202fe459 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{naustrian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Austrian localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
index 4f9d872e9d..504410f851 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{newzealand-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist NZ English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {newzealand},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
index 54f65ef383..185cbe903a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{ngerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist German localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
index be8a9d148a..a2f1813b38 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{nswissgerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Swiss German localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
index 5d4be275ab..9bc6f05118 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{swissgerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Swiss German localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {swissgerman},
parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
index 371a06232b..d3f31a7a03 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
@@ -25,8 +25,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space
biblatex bibliography style (JSP)]
@@ -61,13 +61,14 @@
\newtoggle{bpl@linktitleissn}
\newtoggle{bpl@linktitleurl}
\newtoggle{bpl@linktitledoi}
+\newtoggle{bpl@citinfo}
\newtoggle{bpl@jifinfo}
\newtoggle{bpl@prinfo}
\toggletrue{bpl@prinfo}
\newtoggle{bpl@oainfo}
\newtoggle{bpl@oainfosimple}
\newif\if@bpl@reversenum\@bpl@reversenumfalse
-
+\def\bpl@annots{}
% Valid options
%
@@ -188,6 +189,9 @@
},
plnumbering.default:n = { global },
plnumbering.usage:n = preamble,
+ % annotations=<csv>
+ % Store author name prefix
+ annotations.tl_set:N = \bpl@annots,
% linktitles=<all|url|doi|isbn|issn|none>
linktitles .multichoice:,
% Link all titles
@@ -233,6 +237,18 @@
\toggletrue{bpl@linktitle}
},
linktitles.default:n = { all },
+ % citinfo=<true|false>
+ % Information about citation numbers
+ citinfo.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@citinfo}
+ }{
+ \togglefalse{bpl@citinfo}
+ }
+ },
+ citinfo.default:n = { true },
% jifinfo=<true|false>
% Impact factor information
jifinfo.code:n =
@@ -428,6 +444,7 @@
\DeclareBibliographyOption{plauthorhandling}[omit]{\ExecutePublistOptions{plauthorhandling=#1}}
\DeclareBibliographyOption{nameorder}[family-given]{\ExecutePublistOptions{nameorder=#1}}
\DeclareBibliographyOption{plsorting}[ydt]{\ExecutePublistOptions{plsorting=#1}}
+\DeclareBibliographyOption{annotations}{\ExecutePublistOptions{annotations={#1}}}
\DeclareBibliographyOption{plnumbering}[global]{\ExecutePublistOptions{plnumbering=#1}}
\DeclareBibliographyOption{marginyear}[true]{\ExecutePublistOptions{marginyear=#1}}
@@ -437,6 +454,7 @@
\DeclareBibliographyOption{jifinfo}[true]{\ExecutePublistOptions{jifinfo=#1}}
\DeclareBibliographyOption{oainfo}[simple]{\ExecutePublistOptions{oainfo=#1}}
\DeclareBibliographyOption{prinfo}[true]{\ExecutePublistOptions{prinfo=#1}}
+\DeclareBibliographyOption{citinfo}[true]{\ExecutePublistOptions{citinfo=#1}}
\DeclareBibliographyOption{linktitles}[all]{\ExecutePublistOptions{linktitles={#1}}}% Extra braces needed (multichoice)
@@ -986,23 +1004,37 @@
% Print the labelnumber as the total number of entries in the
% current refsection, minus the actual labelnumber, plus one
\ifbool{plnumgroup}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}{%
\ifcsdef{bpl@secitems:\therefsection}{%
- \number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
- +\csuse{bpl@shift@itemtotal}\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
+ +\csuse{bpl@shift@itemtotal}\relax}%
+ \bpl@current@item@no%
}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}%
}%
}{%
% Use decreasing counter
\ifcsdef{bpl@items:\theprevrefsection}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1-\csuse{bpl@items:\theprevrefsection}\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ -\csuse{bpl@items:\theprevrefsection}\relax}%
+ \bpl@current@item@no%
}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}%
}%
+ % Store number in pbx file
+ \if@filesw%
+ \protected@write\bpl@bpxfile{}{%
+ \csedef{bpl@itemnumber:\thefield{entrykey}}{\bpl@current@item@no}%
+ \csedef{bpl@itemsec:\thefield{entrykey}}{\therefsection}%
+ \csedef{bpl@itemtotal}{\csuse{bpl@itemtotal}}%
+ }%
+ \fi%
}%
\renewrobustcmd{\mkbibsecstart}[1]{%
\setcounter{prevrefsection}{\therefsection}%
@@ -1037,6 +1069,64 @@
\fi
}%
+%
+% Data annotation
+%
+
+\newcommand*\mkbplannot[1]{\textsuperscript{#1}}
+
+% Symbol helpers
+\ExplSyntaxOn
+ \clist_new:N \l_bpl_annot_symbols
+ \cs_new_nopar:Npn \SetAnnotSymbols #1
+ {
+ \clist_gset:Nn \l_bpl_annot_symbols { #1 }
+ }
+ \SetAnnotSymbols
+ { \textasteriskcentered, \textdaggerdbl, \textsection, \textparagraph,
+ \textbardbl, \textdagger, {\textasteriskcentered\textasteriskcentered},
+ {\textdaggerdbl\textdaggerdbl}, {\textdagger\textdagger}
+ }
+ % get symbol by position (int)
+ \cs_new_nopar:Npn \bpl@get@annot@symbol #1
+ {
+ \clist_item:Nn \l_bpl_annot_symbols { #1 }
+ }
+\ExplSyntaxOff
+
+% get symbol by category name
+\NewDocumentCommand\GetAnnotSymbol { s m }{
+ \edef\tmpa{}%
+ \setcounter{annotsymb}{1}%
+ \renewcommand*{\do}[1]{%
+ \ifstrequal{#2}{##1}
+ {\edef\tmpa{\bpl@get@annot@symbol{\theannotsymb}}}%
+ {}%
+ \stepcounter{annotsymb}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ \IfBooleanTF{#1}{\tmpa}{\mkbplannot{\tmpa}}%
+}
+
+% handle the annotations as passed by annotations option
+\AtEndOfPackage{%
+\ifx\bpl@annots\empty\else
+ % helper function for annotations
+ \newcounter{annotsymb}
+ \newcommand*\bplannot{%
+ \setcounter{annotsymb}{1}%
+ \renewcommand*{\do}[1]{%
+ \ifitemannotation{##1}
+ {\mkbplannot{\bpl@get@annot@symbol{\theannotsymb}}}%
+ {}%
+ \stepcounter{annotsymb}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ }
+ % do annotation in family names
+ \renewcommand*{\mkbibnamefamily}[1]{\bplannot #1}
+\fi
+}
%
% New environment for (foreign) reviews
@@ -1078,6 +1168,13 @@
}
%
+% Citation info
+%
+\DeclareFieldFormat{citations}{%
+ \bibstring{citations}\addcolon\addspace#1%
+}
+
+%
% Impact factor
%
\DeclareFieldFormat{impactfactor}{%
@@ -1379,6 +1476,26 @@
\iftoggle{isplauthor}%
{% <- TRUE condition
\global\toggletrue{hadplauthor}%
+ \ifx\bpl@annots\empty\else
+ \gdef\bpl@extra@annots{}%
+ \renewcommand*{\do}[1]{%
+ \ifitemannotation{##1}
+ {%
+ \iftoggle{bpl@have@extrainfo}%
+ {\gappto\bpl@extra@annots{\plextrainfosep\ifbibstring{annot:##1}%
+ {\bibstring{annot:##1}}%
+ {##1}}%
+ }%
+ {\gappto\bpl@extra@annots{\ifbibstring{annot:##1}%
+ {\bibstring{annot:##1}}%
+ {##1}}%
+ }%
+ \toggletrue{bpl@have@extrainfo}%
+ }%
+ {}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ \fi%
}% <- end TRUE condition
{% <- FALSE condition
\stepcounter{nonpl#1}%
@@ -1402,7 +1519,7 @@
{\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}%
\ifdefvoid{\namepartprefix}{}{\mkbibnameprefix{\namepartprefix}\addspace}%
\global\togglefalse{plauthorprecedes}%
- \namepartfamily%
+ \mkbibnamefamily{\namepartfamily}%
}%
}% <- end FALSE condition
%
@@ -1741,6 +1858,12 @@
}%
}
+%
+% Extra information
+%
+
+\def\bpl@extra@annots{}
+
\newtoggle{bpl@have@extrainfo}
\renewbibmacro*{addendum+pubstate}{%
@@ -1762,14 +1885,35 @@
not test {\iffieldundef{impactfactor}}
and test {\iftoggle{bpl@jifinfo}}
)
+ or
+ (
+ not test {\iffieldundef{citations}}
+ and test {\iftoggle{bpl@citinfo}}
+ )
+ or
+ (
+ not test {\ifcsvoid{bpl@extra@annots}}
+ )
}{%
\newunit\newblock%
\printtext[plextrainfo]{%
+ \ifx\bpl@extra@annots\empty\else
+ \bpl@extra@annots%
+ \toggletrue{bpl@have@extrainfo}%
+ \fi
\ifboolexpr{ not test {\iffieldundef{peerreview}}
and test {\iftoggle{bpl@prinfo}}
}{%
- \toggletrue{bpl@have@extrainfo}%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
\printfield{peerreview}%
+ \toggletrue{bpl@have@extrainfo}%
+ }{}%
+ \ifboolexpr{ not test {\iffieldundef{citations}}
+ and test {\iftoggle{bpl@citinfo}}
+ }{%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
+ \printfield{citations}%
+ \toggletrue{bpl@have@extrainfo}%
}{}%
\ifboolexpr{ not test {\iffieldundef{openaccess}}
and test {\iftoggle{bpl@oainfo}}
@@ -1795,6 +1939,7 @@
\DeclareLanguageMappingSuffix{-publist}
% publist-specific bibstrings
+\NewBibliographyString{citations}
\NewBibliographyString{with}
\NewBibliographyString{parttranslationof}
\NewBibliographyString{impactfactor}
@@ -1809,6 +1954,8 @@
\NewBibliographyString{peerreview:tp}
\NewBibliographyString{peerreview:pp}
\NewBibliographyString{peerreview:no}
+\NewBibliographyString{annot:main}
+\NewBibliographyString{annot:corresponding}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
index 8176810996..d384445d63 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
@@ -26,8 +26,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space
biblatex citation style (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
index 9e4b798f8c..27cb4068f5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
@@ -1,5 +1,5 @@
% publist.dbx, biblatex data model specification for the biblatex-publist
-% package, version 2.12 (2024/07/16).
+% package, version 2.13 (2024/08/21).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -22,11 +22,13 @@
% Add peerreview and openaccess (literal) field
\DeclareDatamodelFields[type=field, datatype=literal]{
+ citations,
impactfactor,
openaccess,
peerreview}
\DeclareDatamodelEntryfields{
+ citations,
impactfactor,
openaccess,
peerreview}
diff --git a/macros/latex/contrib/bmstu-iu8/README.md b/macros/latex/contrib/bmstu-iu8/README.md
index 485014041c..7b0b628fd2 100644
--- a/macros/latex/contrib/bmstu-iu8/README.md
+++ b/macros/latex/contrib/bmstu-iu8/README.md
@@ -1,6 +1,6 @@
# IU8 package
-Version: v1.3 (released 17.08.2024).
+Version: v1.5 (released 2024/10/28).
This package consist of class file and style files for writing
reports at the IU8 department of IU faculty of BMSTU
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
index b0d4cc2ea7..ac616a01ca 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
index 17c168f9f2..4b9cb5b0bf 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{BMSTU-IU8}[2024/08/17 IU8 class]
+\ProvidesClass{BMSTU-IU8}[2024/10/28 IU8 class]
\LoadClass{article}
@@ -18,6 +18,14 @@
применяют следующие сокращения и обозначения:}
\def\fillTitle{\fillResearchTitle}
}
+\DeclareOption{ordinary}{
+ \def\termsAndDefinitionsLine{В настоящем документе
+ применяют следующие термины с соответствующими определениями:}
+ \def\abbreviationsLine{В настоящем документе
+ применяют следующие сокращения и обозначения:}
+ \def\fillTitle{\fillOrdinaryTitle}
+}
+
\ExecuteOptions{diploma}
\ProcessOptions
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty
index c51f336b7c..80db377148 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-01-base}[2024/08/17 v1.3 Общие требования]
+\ProvidesPackage{IU8-01-base}[2024/10/28 v1.5 Общие требования]
% 6.1.1 Изложение текста и оформление отчета выполняют в соответствии с
% требованиями настоящего стандарта. Страницы текста отчета о НИР и включенные в
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty
index 0c684a5700..a99bad8db7 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-02-construction}[2024/08/17 v1.3 Построение отчета]
+\ProvidesPackage{IU8-02-construction}[2024/10/28 v1.5 Построение отчета]
% 6.2.1 Наименования структурных элементов отчета:
% "СПИСОК ИСПОЛНИТЕЛЕЙ", % у нас не используется
@@ -25,10 +25,11 @@
\renewcommand{\thestructure}{} % Убрать появление счётчика в содержании
\titleclass{\structure}{straight}[\section]
\titleformat{\structure}[hang]{\clearpage\normalfont\bfseries\centering}{}{0em}{}
-\titlespacing*{\structure}{0pt}{0pt}{2\baselineskip}
+\titlespacing*{\structure}{0pt}{0pt}{1em}
\titlecontents{structure}{}{}{}{}
\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}}
+
\newcommand{\structurebreak}{\clearpage}
\newcommand{\sectionbreak}{\clearpage}
@@ -54,6 +55,14 @@
\titlespacing*{\paragraph}{0pt}{2ex}{2ex}[2ex]
\titlespacing*{\subparagraph}{0pt}{2ex}{2ex}[2ex]
+\makeatletter
+\renewcommand*\l@section{\@dottedtocline{0}{12.5mm}{2em}}
+\renewcommand*\l@structure{\@dottedtocline{0}{12.5mm}{0em}}
+\renewcommand*\l@subsection{\@dottedtocline{1}{12.5mm}{3em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{2}{12.5mm}{4em}}
+\renewcommand*\l@paragraph{\@dottedtocline{3}{12.5mm}{5em}}
+\makeatother
+
% 6.2.4 Если заголовок включает несколько предложений, их разделяют точками.
% Переносы слов в заголовках не допускаются.
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty
index 3d0bb94e9f..8624f70dc3 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-03-numbering}[2024/08/17 v1.3 Нумерация страниц отчета]
+\ProvidesPackage{IU8-03-numbering}[2024/10/28 v1.5 Нумерация страниц отчета]
% 6.3.1 Страницы отчета следует нумеровать арабскими цифрами, соблюдая сквозную
% нумерацию по всему тексту отчета, включая приложения. Номер страницы
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty
index af812f5855..a44c787a3f 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-04-section-numbering}[2024/08/17 v1.3 Нумерация разделов, подразделов, пунктов, подпунктов и книг отчета]
+\ProvidesPackage{IU8-04-section-numbering}[2024/10/28 v1.5 Нумерация разделов, подразделов, пунктов, подпунктов и книг отчета]
% 6.4.1 Разделы должны иметь порядковые номера в пределах всего отчета,
% обозначенные арабскими цифрами без точки и расположенные с абзацного отступа.
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty
index 4ccda32cda..e5b92cd6ac 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-05-figures}[2024/08/17 v1.3 Иллюстрации]
+\ProvidesPackage{IU8-05-figures}[2024/10/28 v1.5 Иллюстрации]
% 6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки, диаграммы,
% фотоснимки) следует располагать в отчете непосредственно после текста отчета,
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty
index 705924bd99..bd5b3f046e 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-06-tables}[2024/08/17 v1.3 Таблицы]
+\ProvidesPackage{IU8-06-tables}[2024/10/28 v1.5 Таблицы]
% Пакеты, которые скорее всего пригодятся
\RequirePackage{tabularx}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty
index 9efd173fb0..c6163edaf3 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-07-footnotes}[2024/08/17 v1.3 Примечания и сноски]
+\ProvidesPackage{IU8-07-footnotes}[2024/10/28 v1.5 Примечания и сноски]
% 6.7.1 Примечания приводят в отчете, если необходимы пояснения или справочные
% данные к содержанию текста, таблиц или графического материала.
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty
index cfe0b98dbd..116fff2896 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty
@@ -1,5 +1,5 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-08-formulas}[2024/08/17 v1.3 Формулы]
+\ProvidesPackage{IU8-08-formulas}[2024/10/28 v1.5 Формулы]
% Настройки по умолчанию в целом соответствуют ГОСТ \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty
index 6d070074b3..4c8d2b5635 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-09-cites}[2024/08/17 v1.3 Ссылки]
+\ProvidesPackage{IU8-09-cites}[2024/10/28 v1.5 Ссылки]
% 6.9.1 В отчете о НИР рекомендуется приводить ссылки на использованные
% источники. При нумерации ссылок на документы, использованные при составлении
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty
index 97fc11ecc5..f4c856db33 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty
@@ -1,6 +1,13 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-10-titlepage}[2024/08/17 v1.3 Титульный лист]
+\ProvidesPackage{IU8-10-titlepage}[2024/10/28 v1.5 Титульный лист]
+
+% Команды для задания факультета и кафедры
+\newcommand{\faculty}[2]{\gdef\@faculty{<<#1>> (#2)}}
+\newcommand{\department}[2]{\gdef\@department{<<#1>> (#2)}}
+% Дефолтные значения --- забываем, кому это было надо в первую очередь :)
+\providecommand{\@faculty}{<<Информатика и системы управления>> (ИУ)}
+\providecommand{\@department}{<<Информационная безопасность>> (ИУ8)}
% Поля для заполнения для ВКР
\def\student#1{\gdef\@student{#1}}
@@ -49,6 +56,19 @@
\def\supervisorWithDegree#1{\gdef\@supervisorWithDegree{#1}}
\def\@supervisorWithDegree{\@latex@warning@no@line{No \noexpand\supervisorWithDegree given}}
+% Поля для заполнения "обычных" отчётов
+\def\discipline#1{\gdef\@discipline{#1}}
+\def\@discipline{\@latex@warning@no@line{No \noexpand\discipline given}}
+\newcommand{\noscorefield}{\gdef\enablescore{}} % Выключить поле оценки
+\providecommand{\enablescore}{ % Поле оценки включено по умолчанию
+ \setlength{\tabcolsep}{0pt}
+ \renewcommand{\arraystretch}{1.5}
+ \noindent \begin{tabular}{ll}
+ \noindent Оценка: & \makeUlineStack[6cm]{~}{~} \\
+ \end{tabular}
+}
+\newcommand{\version}[1]{\gdef\@version{Вариант #1}} % Если указан вариант, то определяем команду
+\providecommand{\@version}{~} % Если не указан вариант, то заменяем на пустоту
\RequirePackage{fancyhdr}
\fancypagestyle{year}{
@@ -98,8 +118,8 @@
\end{center}
\begin{flushleft}
\fontsize{12pt}{14pt}\selectfont
- ФАКУЛЬТЕТ \tabto{3cm} <<Информатика и системы управления>> (ИУ)\\
- КАФЕДРА \tabto{3cm} <<Информационная безопасность>> (ИУ8)
+ ФАКУЛЬТЕТ \tabto{3cm} \@faculty \\
+ КАФЕДРА \tabto{3cm} \@department
\end{flushleft}
}
@@ -215,6 +235,44 @@
\clearpage
}
+% Обратный порядок заполнения --- ФИО подпись,дата
+\newcommand\reverseFillingBox[3][\maxlen]{
+ \noindent#2 \hfill \makeUlineStack[#1]{#3}{(И. О. Фамилия)} \hfill
+ \makeUlineStack[3.5cm]{~}{(Подпись, дата)} \hfill\\
+}
+
+\newcommand\fillOrdinaryTitle{
+
+ \vfill
+
+ \noindent\begin{center}
+ \centering
+ {\bfseries\fontsize{20pt}{25pt}\selectfont \@theme} \\
+ {\fontsize{12pt}{25pt}\rmfamily\selectfont по дисциплине <<\@discipline>>} \\
+ {\fontsize{12pt}{25pt}\rmfamily\selectfont \@version} \\
+ \end{center}
+
+
+ \vfill
+
+{\fontsize{12pt}{15pt}\selectfont
+ \reverseFillingBox{Студент \hspace{\widthof{Преподаватель}-\widthof{Студент}}\makeUlineStack[\widthof{\@group}]{\@group}{(Группа)}}{\@student}
+ \reverseFillingBox{Преподаватель\quad\hspace{\widthof{\@group}}}{\@supervisor}
+}
+ \bigskip
+
+ \bigskip
+
+ \bigskip
+
+ \vfill
+ \enablescore
+
+ \vfill
+
+ \clearpage
+}
+
\renewcommand\maketitle{
\begin{titlepage}
\settowidth{\maxlen}{\@student}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty
index e628023df4..7c29e314bb 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty
@@ -1,5 +1,5 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-11-performers}[2024/08/17 v1.3 Список исполниетелей]
+\ProvidesPackage{IU8-11-performers}[2024/10/28 v1.5 Список исполниетелей]
% Т.к. у нас это не используется, я оставляю это пустымы \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty
index c1e1a6dc86..ac71c7472e 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-12-abstract}[2024/08/17 v1.3 Реферат]
+\ProvidesPackage{IU8-12-abstract}[2024/10/28 v1.5 Реферат]
% 6.12.1 Сведения об общем объеме отчета, количестве книг отчета, иллюстраций,
% таблиц, использованных источников, приложений являются первой компонентой
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty
index 3bd4e67716..2f8f4e7dd6 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-13-contents}[2024/08/17 v1.3 Содержание]
+\ProvidesPackage{IU8-13-contents}[2024/10/28 v1.5 Содержание]
% Каждую запись содержания оформляют как отдельный абзац, выровненный влево.
% Номера страниц указывают выровненными по правому краю поля и соединяют
@@ -17,13 +17,16 @@
% ГОСТ 7.32-2017. Пункт 5.4.1:
% Обозначения подразделов приводят после абзацного отступа,
% равного двум знакам, относительно обозначения разделов.
-\renewcommand*\l@subsection{\@dottedtocline{1}{5mm}{3em}}
+\renewcommand*\l@section{\@dottedtocline{1}{5mm}{3em}}
+\renewcommand*\l@subsection{\@dottedtocline{1}{10mm}{3em}}
% ГОСТ 7.32-2017. Пункт 5.4.1:
% Обозначения пунктов приводят после абзацного отступа,
% равного четырем знакам, относительно обозначения разделов.
-\renewcommand*\l@subsubsection{\@dottedtocline{2}{10mm}{4em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{2}{15mm}{4em}}
% Остальное - индуктивно
\renewcommand*\l@paragraph{\@dottedtocline{3}{15mm}{5em}}
+
\setcounter{secnumdepth}{5} % Глубина заголовков - до пятого уровня
\setcounter{tocdepth}{2} % Глубина содержания - до второго уровня
+
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty
index 8378ff2826..5f7a0d5934 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-14-terms-and-definitions}[2024/08/17 v1.3 Содержание]
+\ProvidesPackage{IU8-14-terms-and-definitions}[2024/10/28 v1.5 Содержание]
\RequirePackage[
acronym,
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty
index 49a5aeb8aa..951e61f829 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-15-list-of-abbreviations}[2024/08/17 v1.3 Содержание]
+\ProvidesPackage{IU8-15-list-of-abbreviations}[2024/10/28 v1.5 Содержание]
\RequirePackage[abbreviations]{glossaries-extra}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty
index 7e7fd9d347..af759707e9 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-16-references}[2024/08/17 v1.3 Список использованных источников]
+\ProvidesPackage{IU8-16-references}[2024/10/28 v1.5 Список использованных источников]
% Сведения об источниках следует располагать в порядке появления ссылок на
% источники в тексте отчета и нумеровать арабскими цифрами с точкой и печатать
@@ -12,10 +12,28 @@
% refsection=structure,
% sorting=ynt,
]{biblatex}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{1.25cm}
+ \setlength{\itemindent}{0em}
+ \setlength{\itemsep}{\bibitemsep}
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item\printtext[labelnumberwidth]{\printfield{labelprefix}\printfield{labelnumber}}\addspace}
+
\defbibheading{bibliography}[СПИСОК~ИСПОЛЬЗОВАННЫХ~ИСТОЧНИКОВ]{\structure{#1}}
\addto{\captionsrussian}{%
\renewcommand{\contentsname}{СОДЕРЖАНИЕ}
}
+\DefineBibliographyStrings{russian}{%
+ urlseen = {дата обращения},
+}
+
% Специально изменим шрифт для URL, чтобы он соответсвовал ГОСТ и остальному тексту документа
\renewcommand{\UrlFont}{\normalfont}
+
+% Изменяем шрифт для авторов в списке литературы на обычный
+\renewcommand{\mkgostheading}[1]{\normalfont{#1}} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty
index e89c637ec6..88033132f7 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-17-appendices}[2024/08/17 v1.3 Приложения]
+\ProvidesPackage{IU8-17-appendices}[2024/10/28 v1.5 Приложения]
\newcommand{\appendixsection}[1]{
\stepcounter{apps}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty
index 44e932a3e9..9f84d4b8d8 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{IU8-18-extra}[2024/08/17 v1.3 Разные улучшения]
+\ProvidesPackage{IU8-18-extra}[2024/10/28 v1.5 Разные улучшения]
\RequirePackage{graphicx}
@@ -23,3 +23,18 @@
} % Кликабельные ссылки в pdf
\hbadness=10000
+
+\setlist[enumerate]{
+ leftmargin=\parindent,
+ labelindent=\parindent,
+ align=left,
+ nosep,
+}
+
+\setlist[itemize]{
+ label=\textendash,
+ leftmargin=\parindent,
+ labelindent=\parindent,
+ align=left,
+ nosep,
+}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty
index c5e7d80136..07c7ef9e47 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{IU8-19-counters}[2024/08/17 v1.3 Счётчики]
+\ProvidesPackage{IU8-19-counters}[2024/10/28 v1.5 Счётчики]
\RequirePackage{calc}
\RequirePackage{xassoccnt}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty
index 22dd68b97b..56aa4cb349 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{IU8-20-listing}[2024/08/17 v1.3 Листинги]
+\ProvidesPackage{IU8-20-listing}[2024/10/28 v1.5 Листинги]
\RequirePackage{listings}
\RequirePackage{xcolor}
@@ -10,7 +10,7 @@
\lstdefinestyle{IU8}{
frame=single,
- backgroundcolor=\color{seashell},
+ % backgroundcolor=\color{seashell},
commentstyle=\color{blue},
keywordstyle=\color{magenta},
basicstyle=\ttfamily\footnotesize,
@@ -36,3 +36,25 @@
\newcommand{\listing}[2][]{%
\lstinputlisting[caption={\texttt{\detokenize{#2}}},#1]{#2}%
}
+
+\lstnewenvironment{codelisting}[1][]
+{
+\lstset{
+ frame=single,
+ % backgroundcolor=\color{seashell},
+ commentstyle=\color{blue},
+ keywordstyle=\color{magenta},
+ basicstyle=\ttfamily\footnotesize,
+ breakatwhitespace=false,
+ breaklines=true,
+ captionpos=tl,
+ keepspaces=false,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ extendedchars=\true,
+ tabsize=2,
+ #1
+}
+}
+{} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty
index b72be1370c..91d6c7cdff 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{IU8-21-math}[2024/08/17 v1.3 Математика]
+\ProvidesPackage{IU8-21-math}[2024/10/28 v1.5 Математика]
\RequirePackage{amsthm}
\theoremstyle{definition}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty
index 5cf8831462..9fd0c3c5cb 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{IU8-22-algorithms}[2024/08/17 v1.3 Алгоритмы]
+\ProvidesPackage{IU8-22-algorithms}[2024/10/28 v1.5 Алгоритмы]
\RequirePackage[linesnumbered,boxruled]{algorithm2e}
\SetAlCapSty{}
diff --git a/macros/latex/contrib/bookcover/README b/macros/latex/contrib/bookcover/README
index 2c4bdb2ed9..8f8354f92d 100644
--- a/macros/latex/contrib/bookcover/README
+++ b/macros/latex/contrib/bookcover/README
@@ -1,4 +1,4 @@
-bookcover class, 2015-2024 by Tibor Tomacs
+bookcover class, 2015-2024 by Tibor Tómács
This class helps typesetting book covers and dust jackets.
@@ -17,5 +17,3 @@ Install:
- Run 'pdflatex bookcover-example1.tex' for bookcover-example1.pdf
- Run 'pdflatex bookcover-example2.tex' for bookcover-example2.pdf
- Run twice 'pdflatex bookcover.dtx' for bookcover.pdf
-
-
diff --git a/macros/latex/contrib/bookcover/bookcover-example1.pdf b/macros/latex/contrib/bookcover/bookcover-example1.pdf
index 9a0bf0a0fb..11019bc265 100644
--- a/macros/latex/contrib/bookcover/bookcover-example1.pdf
+++ b/macros/latex/contrib/bookcover/bookcover-example1.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/bookcover-example2.pdf b/macros/latex/contrib/bookcover/bookcover-example2.pdf
index 18f966373c..6756b2720e 100644
--- a/macros/latex/contrib/bookcover/bookcover-example2.pdf
+++ b/macros/latex/contrib/bookcover/bookcover-example2.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/bookcover-example2.tex b/macros/latex/contrib/bookcover/bookcover-example2.tex
index 1d6cbdd74f..62729df6cd 100644
--- a/macros/latex/contrib/bookcover/bookcover-example2.tex
+++ b/macros/latex/contrib/bookcover/bookcover-example2.tex
@@ -32,13 +32,13 @@
% Title on the spine
\bookcovercomponent{center}{spine}{
\rotatebox[origin=c]{-90}{\large\bfseries
- ANNALES MATHEMATICAE 43.~(2020)}}
+ ANNALES MATHEMATICAE 43.~(2024)}}
% Text and picture on the front cover
\bookcovercomponent{normal}{front}[22mm,20mm,22mm,40mm]{
\centering
{\huge\bfseries ANNALES\\ MATHEMATICAE\\[13mm]}
- {\large\bfseries TOMUS 43.~(2020)}
+ {\large\bfseries TOMUS 43.~(2024)}
\vfill
\includegraphics{./figures/bookcover-pi.pdf}
\vfill
diff --git a/macros/latex/contrib/bookcover/bookcover.dtx b/macros/latex/contrib/bookcover/bookcover.dtx
index c33d32f1cd..8c1bf103df 100644
--- a/macros/latex/contrib/bookcover/bookcover.dtx
+++ b/macros/latex/contrib/bookcover/bookcover.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2015-2024 by Tibor Tomacs
+% Copyright (C) 2015-2024 by Tibor Tómács
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.2
@@ -17,86 +17,87 @@
% \iffalse
%<*driver>
\ProvidesFile{bookcover.dtx}
-\newcommand{\eifiledate}{2024/04/06}
-\newcommand{\eifilever}{v3.6}
+\newcommand{\eifiledate}{2024/10/04}
+\newcommand{\eifilever}{v3.7}
%</driver>
%<class>
%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<class>\ProvidesClass{bookcover}[2024/04/06 v3.6 class for book covers and dust jackets]
+%<class>\ProvidesClass{bookcover}[2024/10/04 v3.7 class for book covers and dust jackets]
%
%<*driver>
\documentclass{ltxdoc}
\OnlyDescription
\usepackage[T1]{fontenc}
\AddToHook{begindocument/before}[doc/hyperref]{\hypersetup{pdfstartview=FitH,bookmarksnumbered,colorlinks,allcolors=teal}}
-\usepackage[paperwidth=210mm,paperheight=295mm,textwidth=160mm,top=25mm,bottom=25mm,outer=25mm]{geometry}
+\usepackage[a4paper,margin=1in]{geometry}
\usepackage[english]{babel}
-\usepackage{graphicx,listings,calc,multirow,array,paralist,eso-pic,tikz}
+\usepackage{graphicx,listings,paralist,eso-pic,tikz,calc,lmodern}
\colorlet{command}{blue!80!black}
\colorlet{param}{green!50!black}
+\colorlet{example}{teal}
+\colorlet{bgexample}{black!10}
\lstnewenvironment{examplelst}{\lstset{
gobble=2,
- aboveskip=1.4pt,
basicstyle=\small\ttfamily,
- backgroundcolor=\color{black!10},
+ backgroundcolor=\color{bgexample},
columns=fullflexible,
- comment=[l][\ttfamily\color{purple}]{\%},
- frame=trbl,
+ comment=[l][\ttfamily\color{teal}]{\%},
+ frame=single,
framesep=3pt,
- xleftmargin=3.4pt,
- xrightmargin=3.4pt,
+ framerule=1pt,
+ rulecolor=\color{example},
+ xleftmargin=4pt,
+ xrightmargin=4pt,
keepspaces}}{}
\lstnewenvironment{commandlst}{\lstset{
literate={<}{{$\langle$}}1{>}{{$\rangle$}}1,
delim=[is][\color{param}\normalfont\itshape\small]{!}{!},
gobble=2,
- belowskip=-4pt,
- aboveskip=4pt,
basicstyle=\color{command}\ttfamily,
- backgroundcolor=\color{white},
columns=fullflexible,
- frame=trbl,
- frameround=tttt,
+ frame=single,
framesep=3pt,
- xleftmargin=3.4pt,
- xrightmargin=3.4pt,
+ framerule=1pt,
+ rulecolor=\color{command!80!black},
+ xleftmargin=4pt,
+ xrightmargin=4pt,
keepspaces}}{}
\lstdefinestyle{examplefile}{
- literate={ü}{{\"u}}1{ó}{{\'o}}1{é}{{\'e}}1{á}{{\'a}}1{Á}{{\'A}}1,
basicstyle=\small\ttfamily,
- backgroundcolor=\color{black!10},
+ backgroundcolor=\color{bgexample},
columns=fullflexible,
keepspaces,
- frame=trbl,
+ frame=single,
framesep=3pt,
- xleftmargin=3.4pt,
- xrightmargin=3.4pt,
- comment=[l][\ttfamily\color{purple}]{\%}}
+ framerule=1pt,
+ rulecolor=\color{example},
+ xleftmargin=4pt,
+ xrightmargin=4pt,
+ comment=[l][\ttfamily\color{teal}]{\%}}
-\newcommand{\commandinline}{\lstinline[
+\newcommand*{\commandinline}{\lstinline[
literate={<}{{$\langle$}}1{>}{{$\rangle$}}1,
delim={[is][\color{param}\normalfont\itshape\small]{!}{!}},
basicstyle=\color{command}\ttfamily,
columns=fullflexible,
keepspaces]}
-\def\meta#1{{\color{param}\normalfont\itshape\small$\langle$#1$\rangle$}}
+\renewcommand*{\meta}[1]{{\color{param}\normalfont\itshape\small$\langle$#1$\rangle$}}
-\def\example{{\setlength{\fboxsep}{3pt}\colorbox{command}{\footnotesize\sffamily\bfseries\color{white}EXAMPLE}}}
+\newcommand*{\example}{\par\medskip\hspace*{-2em}{\usefont{T1}{ugq}{b}{n}\color{example}EXAMPLE}}
-\def\BookCover{{\def\sfdefault{ugq}\sffamily\bfseries
+\newcommand*{\BookCover}{{\usefont{T1}{ugq}{b}{n}
\color{black!90}\mbox{}\lower.15ex\hbox{[B}ook%
\color{red!70!black}\lower.15ex\hbox{C}over\lower.15ex\hbox{]}}}
\def\bookcoversizename#1(#2,#3)#4{\texttt{\color{command}#1} ($#2\times#3$\,#4)}
\setlength{\parindent}{0pt}
-\setlength{\parskip}{8pt}
-\renewcommand{\descriptionlabel}[1]{\hspace{0mm}}
+\renewcommand*{\descriptionlabel}[1]{\hspace{0pt}}
\setlength{\fboxsep}{0pt}
\newcounter{partfig}
@@ -128,43 +129,60 @@
% \textsf{Class for book covers and dust jackets}\\[2mm]
% {\large\texttt{bookcover.cls}\\
% \eifilever\ (\eifiledate)}}
-% \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\href{mailto:tomacs.tibor@gmail.com}{\texttt{tomacs.tibor@gmail.com}}}}
+% \author{Tibor Tómács\\{\normalsize\href{mailto:tomacs.tibor@gmail.com}{\texttt{tomacs.tibor@gmail.com}}}}
% \date{}
% \maketitle
%
-% \AddToShipoutPictureBG*{\tikz[overlay]\fill[top color=black!50, bottom color=white] (current page.north west) rectangle +(\paperwidth,-11cm);}
+% \AddToShipoutPictureBG*{\tikz[overlay]\fill[top color=black!50, bottom color=white, middle color=white] (current page.north west) rectangle (current page.south east);}
%
% \section{Introduction}
%
-% The \texttt{bookcover} document class can be used to create dust jackets and book covers of hardcover and paperback books.
+% The \texttt{bookcover} document class can be used to create dust jackets and book covers for hardcover and paperback books.
%
% \paragraph{Dust jacket.}
%
-% In the following picture you can see a typical dust jacket of a hardcover book, which is a detachable outer book cover. Its parts are back flap, back cover, spine, front cover and front flap.
+% The following image shows a typical dust jacket of a hardcover book, which is a detachable outer cover of the book.
+% Its parts are the back flap, the back cover, the spine, the front cover and the front flap.
% \begin{center}
% \includegraphics{figures/bookcover-dustjacket}
% \end{center}
-% When you prepare a dust jacket for printing, some marks are needed to know where to trim or fold the cover. The crop marks determine a special area of the sheet, which is called ``bleed'' (see the gray area in the next figure). The bleed will be trimmed off. The background will be expanded onto the bleed, taking account of slight inaccuracy when trimming. If there is no bleed, the likelihood of having a white strip on the edge of the finished product is high. In the next schematics figure, the red lines are the marks. The marks closest to the corners are the crop marks, and the other ones are the fold marks.
+% When preparing a dust jacket for printing, some marks are needed to know where to trim or fold the cover.
+% The crop marks define a special area of the sheet called the ``bleed'' (see the gray area in the next figure).
+% The bleed will be trimmed off.
+% The background will be extended to the bleed, taking into account the slight inaccuracy of the trim.
+% If there is no bleed, there is a high probability that there will be a white stripe around the edge of the finished product.
+% In the next schematics figure, the red lines are the marks.
+% The marks closest to the corners are the crop marks and the others are the fold marks.
% \begin{center}
% \includegraphics{figures/bookcover-scheme-withflaps}
% \end{center}
-% The back/front ``wraps'' (see the black area in the previous figure) are the areas between the front cover and front flap, and back cover and back flap. The reason this is defined is that if the front and back covers have background colors or images that continue to the foreedge of each cover, they must continue onto the flap. Because putting the edge of color right at the edge of the board would result in an unsightly boundary line when the book is closed.
+% If the book cover is detachable, it is advisable to leave folding areas (called ``wraps'') between the front cover and the front flap, and between the back cover and the back flap (see the black bars in the previous figure).
+% This is important if the book board is thick, because when the book is folded, this area will be visible on the edges of the book board.
+% In this case, the background color or image should not stop at the outer edge of the front or back cover.
+% It should be extended to the wraps, as on the bleed, otherwise, due to minor cutting and folding inaccuracies, a stripe may appear on the cover that is not necessarily parallel to the edges, which would give an aesthetically unacceptable result when the book is folded.
%
% \paragraph{Book cover for paperback book.}
%
-% A book cover of a paperback book is glued to the spine of the book and usually has no flaps. The function of the bleed here is the same as before. The crop marks are closest to the corners, and the other ones are the fold marks.
+% The cover of a paperback book is glued to the spine of the book and usually has no flaps.
+% The function of the bleed here is the same as before.
+% The crop marks are closest to the corners, and the others are the fold marks.
% \begin{center}
% \includegraphics{figures/bookcover-scheme-withoutflaps}
% \end{center}
-% Rarely, a book cover of a paperback book may have flaps. In this case, its scheme is similar to a dust jacket.
+% Rarely, the cover of a paperback book may have flaps.
+% In this case, the scheme is similar to that of a dust jacket.
%
% \paragraph{Book cover for hardcover book.}
%
-% The outside of the cover of a hardcover book is glued to the boards of the book. Of course, this never has flaps.
+% The outside of the cover of a hardcover book is glued to the boards of the book.
+% This, of course, never has flaps.
% \begin{center}
% \includegraphics{figures/bookcover-scheme-foldingmargin}
% \end{center}
-% In this case, the function of the bleed is not to eliminate cutting inaccuracies. It will not be trimmed off, but it will be a margin which is folded back and glued onto the inside of the book boards. This way, it will cover all the edges of the boards. The crop marks are closest to the corners, and the other ones are the fold marks.
+% In this case, the function of the bleed is not to eliminate cutting inaccuracies.
+% It is not trimmed, but is a margin that is folded back and glued to the inside of the book boards.
+% In this way it will cover all the edges of the boards.
+% The crop marks are closest to the corners, and the others are the fold marks.
%
% \section{Loading class and options}\label{sec:class}
%
@@ -175,8 +193,11 @@
%
% \medskip The list of \meta{options}:
%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline|cover=!<size-name>!| It specifies the front/back cover width and height (without bleed) by name (default \texttt{cover=default}). Allowed \meta{size-names} (width${}\times{}$height):
+% \item \commandinline|cover=!<size-name>!|
+% It specifies the front/back cover width and height (without bleed) by name (default \texttt{cover=default}).
+% Allowed \meta{size-names} (width${}\times{}$height):
% \bookcoversizename{default}(170,240){mm}
% \bookcoversizename{a0}(841,1189){mm}
% \bookcoversizename{a1}(594,841){mm}
@@ -214,30 +235,51 @@
% \bookcoversizename{letter}(8.5,11){in}
% \bookcoversizename{legal}(8.5,14){in}
% \bookcoversizename{executive}(7.25,10.5){in}
-% \item[]\commandinline|coverheight=!<length>!| Cover height without bleed. It overrides the height specified by the \texttt{cover} option.
-% \item[]\commandinline|coverwidth=!<length>!| Front/back cover width. It overrides the width specified by the \texttt{cover} option.
-% \item[]\commandinline|spinewidth=!<length>!| Spine width (default \texttt{spinewidth=5mm}).
-% \item[]\commandinline|flapwidth=!<length>!| Flap width (default \texttt{flapwidth=0mm}).
-% \item[]\commandinline|wrapwidth=!<length>!| Wrap width (default \texttt{wrapwidth=0mm}). It has no effect with \texttt{flapwidth=0mm} option.
-% \item[]\commandinline|bleedwidth=!<length>!| Bleed width (default \texttt{bleedwidth=5mm}).
-% \item[]\commandinline|marklength=!<length>!| Mark length (default \texttt{marklength=10mm}).
-% \item[]\commandinline|foldingmargin| or \commandinline|foldingmargin=true| The bleed will not a trimmed area but a folding margin. The crop marks will be placed at the corners of the bleed and the options \texttt{flapwidth} and \texttt{wrapwidth} will be ineffective, meaning there will be no flaps.
-% \item[]\commandinline|foldingmargin=false| (Default.)
-% \item[]\commandinline|10pt| (Default.) Normal font size is 10\,pt.
-% \item[]\commandinline|11pt| Normal font size is 11\,pt.
-% \item[]\commandinline|12pt| Normal font size is 12\,pt.
-% \item[]\commandinline|markthick=!<length>!| Thickness of marks (default \texttt{markthick=0.4pt}).
-% \item[]\commandinline|markcolor=!<color name>!| Color of marks (default \texttt{markcolor=red}).
-% \item[]\commandinline|pagecolor=!<color name>!| Color of page (default \texttt{pagecolor=white}).
-% \item[]\commandinline|trimmed| or \commandinline|trimmed=true| Trimmed version for demonstration.
-% \item[]\commandinline|trimmed=false| (Default.) No trimming. Use this for printing!
-% \item[]\commandinline|trimmingcolor=!<color name>!| Color of trimming (default \texttt{trimmingcolor=white}).
+% \item \commandinline|coverheight=!<length>!|
+% Cover height without bleed.
+% It overrides the height specified by the \texttt{cover} option.
+% \item \commandinline|coverwidth=!<length>!|
+% Front/back cover width.
+% It overrides the width specified by the \texttt{cover} option.
+% \item \commandinline|spinewidth=!<length>!|
+% Spine width (default \texttt{spinewidth=5mm}).
+% \item \commandinline|flapwidth=!<length>!|
+% Flap width (default \texttt{flapwidth=0mm}).
+% \item \commandinline|wrapwidth=!<length>!|
+% Wrap width (default \texttt{wrapwidth=0mm}).
+% It has no effect with \texttt{flapwidth=0mm} option.
+% \item \commandinline|bleedwidth=!<length>!|
+% Bleed width (default \texttt{bleedwidth=5mm}).
+% \item \commandinline|marklength=!<length>!|
+% Mark length (default \texttt{marklength=10mm}).
+% \item \commandinline|foldingmargin=!<boolean>!|
+% If the \meta{boolean} is \commandinline|true|, then the bleed will be not a trimmed area but a fold margin.
+% The crop marks will be placed at the corners of the bleed and the options \texttt{flapwidth} and \texttt{wrapwidth} will be ineffective, i.e.~there will be no flaps.
+% (Default \texttt{foldingmargin=false}.)
+% \item \commandinline|10pt|, \commandinline|11pt|, \commandinline|12pt|
+% Normal font size (default \texttt{10pt}).
+% \item \commandinline|markthick=!<length>!|
+% Thickness of marks (default \texttt{markthick=0.4pt}).
+% \item \commandinline|markcolor=!<color name>!|
+% Color of marks (default \texttt{markcolor=red}).
+% \item \commandinline|pagecolor=!<color name>!|
+% Color of page (default \texttt{pagecolor=white}).
+% \item \commandinline|trimmed=!<boolean>!|
+% If the \meta{boolean} is \commandinline|true|, then the result will be the trimmed version for demonstration.
+% (Default \texttt{trimmed=false} for printing.)
+% \item \commandinline|trimmingcolor=!<color name>!|
+% Color of trimming (default \texttt{trimmingcolor=white}).
% \end{compactdesc}
%
-% The \texttt{bookcover.cls} requires the services of the \texttt{article} class and the following packages: \texttt{kvoptions}, \texttt{geometry}, \texttt{graphicx}, \texttt{calc}, \texttt{tikz}, \texttt{xparse}, \texttt{etoolbox}, \texttt{fgruler}.
+% \medskip
+% The \texttt{bookcover.cls} requires the services of the \texttt{article} class and the following packages:
+% \texttt{kvoptions}, \texttt{geometry}, \texttt{graphicx}, \texttt{calc}, \texttt{tikz}, \texttt{xparse}, \texttt{etoolbox}, \texttt{fgruler}.
%
% \section{Commands and environments}
-% Use \commandinline{bookcover} environment in the document body to make a new book cover. If you need to edit both sides of the cover, you can do it with two \texttt{bookcover} environments (see an example in the Subsection~\ref{subsec-two-sided-example}). You can create a component of the book cover by the following command or environment in the \texttt{bookcover} environment:
+%
+% Use the \commandinline{bookcover} environment in the document body to create a new book cover.
+% If you need to edit both sides of the cover, you can do it with two \texttt{bookcover} environments (see an example in the Subsection~\ref{subsec-two-sided-example}).
+% You can create a book cover component by using the following command or environment in the \texttt{bookcover} environment:
% \begin{commandlst}
% \bookcovercomponent{!<component type>!}{!<part>!}[!<left>!,!<bottom>!,!<right>!,!<top>!]{!<content>!}
% \end{commandlst}
@@ -248,28 +290,56 @@
% \end{bookcoverelement}
% \end{commandlst}
%
-% \begin{description}
-% \item[]\meta{component type} It determines the bookcover component type (see the Section~\ref{sec:componenttypes}). Predefined component types: \commandinline{color}, \commandinline{tikz}, \commandinline{tikz clip}, \commandinline{picture}, \commandinline{normal}, \commandinline{center}, \commandinline{ruler}.
-% \item[]\meta{part} This determines where in the book cover the \meta{content} is located. You can read the description of \meta{part} in the Section~\ref{sec:parts}. Some predefined parts: \commandinline{front} (front cover), \commandinline{bg front} (front cover expanded onto the bleed), \commandinline{back} (back cover), \commandinline{bg back} (back cover expanded onto the bleed), \commandinline{whole} (whole book cover), \commandinline{bg whole} (whole book cover expanded onto the bleed), \commandinline{spine}, etc.
-% \item[]\meta{left},\meta{bottom},\meta{right},\meta{top} These are the margins of the \meta{part}. The default value of every margin is \texttt{0mm}. If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}. If the value of a margin is negative, the part size will increase instead of decrease.
-% \item[]\meta{content} This can be text, image, color, etc., which depends on the \meta{component type} (see the Section~\ref{sec:componenttypes}). This will be located in the \meta{part}.
-% \end{description}
+% \begin{compactdesc}
+% \item \meta{component type}
+% It determines the type of the bookcover component (see the Section~\ref{sec:componenttypes}).
+% Predefined component types:
+% \commandinline{color}, \commandinline{tikz}, \commandinline{tikz clip}, \commandinline{picture}, \commandinline{normal}, \commandinline{center}, \commandinline{ruler}.
+% \item \meta{part}
+% This determines where in the book cover the \meta{content} is located.
+% You can read the description of \meta{part} in the Section~\ref{sec:parts}.
+% Some predefined parts:
+% \commandinline{front} (front cover), \commandinline{bg front} (front cover extended to the bleed), \commandinline{back} (back cover), \commandinline{bg back} (back cover extended to the bleed), \commandinline{whole} (whole book cover), \commandinline{bg whole} (whole book cover extended to the bleed), \commandinline{spine}, etc.
+% \item \meta{left},\meta{bottom},\meta{right},\meta{top}
+% These are the margins of the \meta{part}.
+% The default value of every margin is \texttt{0mm}.
+% If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}.
+% If the value of a margin is negative, the part size will increase instead of decreasing.
+% \item \meta{content}
+% This can be text, image, color, etc., which depends on the \meta{component type} (see the Section~\ref{sec:componenttypes}).
+% This will be located in the \meta{part}.
+% \end{compactdesc}
+%
+% \medskip
% You can use the following length commands in the \meta{content} and to specify the margins of the \meta{part}:
%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline{\partheight} The height of the \meta{part} (reduced by \meta{bottom} and \meta{top} in \meta{content}).
-% \item[]\commandinline{\partwidth} The width of the \meta{part} (reduced by \meta{left} and \meta{right} in \meta{content}).
-% \item[]\commandinline{\coverheight} Cover height.
-% \item[]\commandinline{\coverwidth} Front/back cover width.
-% \item[]\commandinline{\spinewidth} Spine width.
-% \item[]\commandinline{\flapwidth} Flap width.
-% \item[]\commandinline{\wrapwidth} Wrap width.
-% \item[]\commandinline{\bleedwidth} Bleed width.
-% \item[]\commandinline{\marklength} Mark length.
+% \item \commandinline{\partheight}
+% The height of the \meta{part} (reduced by \meta{bottom} and \meta{top} in \meta{content}).
+% \item \commandinline{\partwidth}
+% The width of the \meta{part} (reduced by \meta{left} and \meta{right} in \meta{content}).
+% \item \commandinline{\coverheight}
+% Cover height.
+% \item \commandinline{\coverwidth}
+% Front/back cover width.
+% \item \commandinline{\spinewidth}
+% Spine width.
+% \item \commandinline{\flapwidth}
+% Flap width.
+% \item \commandinline{\wrapwidth}
+% Wrap width.
+% \item \commandinline{\bleedwidth}
+% Bleed width.
+% \item \commandinline{\marklength}
+% Mark length.
% \end{compactdesc}
%
-% Every |\bookcovercomponent| command and |bookcoverelement| environment generates a layer on the sheet. The first one generates the bottom layer and the last one generates the top layer.
+% \medskip
+% Each |\bookcovercomponent| command and |bookcoverelement| environment creates a layer on the sheet.
+% The first one creates the bottom layer and the last one creates the top layer.
%
+% \medskip
% In the following example we use |\bookcovercomponent| commands.
%
% \example
@@ -279,12 +349,13 @@
% \begin{bookcover}
% \bookcovercomponent{color}{bg whole}{orange}
% \bookcovercomponent{normal}{front}[,,,0.4\partheight]{
-% \centering\bfseries\huge Book title\par}
+% \centering\bfseries\huge Book title}
% \end{bookcover}
% \end{document}
% \end{examplelst}
%
-% In the following example we use |bookcoverelement| environments. This example is equivalent to the previous one.
+% In the following example we use |bookcoverelement| environments.
+% This example is equivalent to the previous one.
%
% \example
% \begin{examplelst}
@@ -295,68 +366,101 @@
% orange
% \end{bookcoverelement}
% \begin{bookcoverelement}{normal}{front}[,,,0.4\partheight]
-% \centering\bfseries\huge Book title\par
+% \centering\bfseries\huge Book title
% \end{bookcoverelement}
% \end{bookcover}
% \end{document}
% \end{examplelst}
%
-% Use \commandinline{bookcoverdescription} environment in the document body for adding the description of the book cover and other information. Don't use it in |bookcover| environment! You can set the page geometry of the description by the following command:
+% Use the \commandinline{bookcoverdescription} environment in the document body to add the description of the book cover and other information.
+% Do not use it in |bookcover| environment!
+% You can set the page geometry of the description by using the following command:
% \begin{commandlst}
% \bookcoverdescgeometry{!<geometry parameteres>!}
% \end{commandlst}
-% The possible \meta{geometry parameteres} are the same as for |\newgeometry| in the |geometry| package. Its default value is |margin=1in|. Unlike |\newgeometry|, it can be used in the preamble as well. See an example in the Subsection~\ref{subsec:desc}.
+% The possible \meta{geometry parameters} are the same as for |\newgeometry| in the |geometry| package.
+% Its default value is |margin=1in|.
+% Unlike |\newgeometry|, it can be used in the preamble as well.
+% See an example in the Subsection~\ref{subsec:desc}.
%
-% If you want to check the set dimensions, use the following command in the |bookcoverdescription| environment:
+% \medskip
+% If you want to check the dimensions, use the following command in the |bookcoverdescription| environment:
% \begin{commandlst}
% \showbookcoverparameters
% \end{commandlst}
%
-% If the value of the \texttt{trimmed} option is \texttt{true}, then you can set the trimmed part by the following command before any \texttt{bookcover} environment:
+% If the value of the \texttt{trimmed} option is \texttt{true}, then you can set the trimmed part by using the following command before any \texttt{bookcover} environment:
% \begin{commandlst}
% \bookcovertrimmedpart{!<trimmed part>!}[!<left>!,!<bottom>!,!<right>!,!<top>!]
% \end{commandlst}
%
-% Without this command, or if the \meta{trimmed part} is empty or space, then its value will be \texttt{whole} (see the Section~\ref{sec:parts}). The \meta{left}, \meta{bottom}, \meta{right} and \meta{top} are the margins of the \meta{trimmed part}. The default value of every margin is \texttt{0mm}. If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}. The trimmed area will be the \meta{trimmed part} reduced by the margins. If the value of a margin is negative, the \meta{trimmed part} size will increase instead of decrease.
+% Without this command, or if the \meta{trimmed part} is empty or space, then its value will be \texttt{whole} (see the Section~\ref{sec:parts}).
+% The \meta{left}, \meta{bottom}, \meta{right} and \meta{top} are the margins of the \meta{trimmed part}.
+% The default value of every margin is \texttt{0mm}.
+% If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}.
+% The trimmed area will be the \meta{trimmed part} reduced by the margins.
+% If the value of a margin is negative, the size of the \meta{trimmed part} size will increase instead of decreasing.
%
-% You can change some options before any \texttt{bookcover} environment by the following command:
+% \medskip
+% You can change some options before each \texttt{bookcover} environment by using the following command:
% \begin{commandlst}
% \setbookcover{!<options>!}
% \end{commandlst}
-% The \meta{options} can be as follows: \commandinline|markthick=!<length>!|, \commandinline|markcolor=!<color name>!|, \commandinline|pagecolor=!<color name>!|, \commandinline|trimmed|, \commandinline|trimmed=false|, \commandinline|trimmingcolor=!<color name>!| (see the Section~\ref{sec:class}). See an example in the Subsection~\ref{subsec:trimming}
+% The \meta{options} can be as follows:
+% \commandinline|markthick=!<length>!|, \commandinline|markcolor=!<color name>!|, \commandinline|pagecolor=!<color name>!|, \commandinline|trimmed|, \commandinline|trimmed=false|, \commandinline|trimmingcolor=!<color name>!| (see the Section~\ref{sec:class}).
+% See an example in the Subsection~\ref{subsec:trimming}.
%
% \section{Book cover parts}\label{sec:parts}
%
-% Each predefined \meta{part} is illustrated in this section.
-%
-% The background parts are expanded onto the bleed, taking account of slight inaccuracy when trimming. In contrast, the foreground parts do not extend onto the bleed. The names of the background parts start with \commandinline{bg}.
-%
-% If your book will also have printing on the inside cover, the layout for the inside cover will be the exact opposite of the outside cover. Therefore, these parts also have synonymous names. The synonymous names contain \commandinline{inside front} instead of \commandinline{back} and \commandinline{inside back} instead of \commandinline{front}. For example \commandinline{bg front} is the same as \commandinline{bg inside back}, \commandinline{above back} is the same as \commandinline{above inside front}, etc.
-%
-% You can also use short names to specify foreground and background parts. The elements of the abbreviations are as follows: \commandinline{F} (flap), \commandinline{W} (wrap), \commandinline{C} (cover), \commandinline{S} (spine), \commandinline{l} (a part to the left of the spine), \commandinline{r} (a part to the right of the spine). For example \commandinline{lC} is the abbreviation of the left cover, i.e.\ the back cover of the outside cover, or the inside front cover of the inside cover. It is not extended onto the bleed, i.e.\ it is a foreground part. If you want to extend that part onto the bleed, type \commandinline{bg} and then a space in the front of the name. For example \commandinline{bg lC} is the left cover extended onto the bleed. Use a hyphen to specify multi-piece parts. For example \commandinline{lW-S} is the part from the left wrap to the spine, which is not extended onto the bleed.
-%
-% The following figures also show the normal and abbreviated names of the blue parts.
+% The parts are the rectangular subspaces of the sheet.
+% The foreground parts are the back flap, back wrap, back cover, spine, front cover, front wrap, front flap and various combinations of these.
+% These can be referred to by their names (see later).
+% The foreground parts do not extend to the bleed.
+%
+% \medskip
+% The background parts are extended to the bleed.
+% Their names start with \commandinline{bg} followed by a space before the foreground part name.
+%
+% \medskip
+% If your book also has printing on the inside cover, the layout for the inside cover will be the exact opposite of the layout for the outside cover.
+% This is why these parts have synonymous names.
+% The synonymous names contain \commandinline{inside front} instead of \commandinline{back} and \commandinline{inside back} instead of \commandinline{front}.
+% For example \commandinline{bg front} is the same as \commandinline{bg inside back}, \commandinline{above back} is the same as \commandinline{above inside front}, etc.
+%
+% \medskip
+% You can also use short names to specify parts.
+% The elements of the abbreviations are as follows:
+% \commandinline{F} (flap), \commandinline{W} (wrap), \commandinline{C} (cover), \commandinline{S} (spine), \commandinline{l} (a part to the left of the spine), \commandinline{r} (a part to the right of the spine).
+% For example \commandinline{lC} is the abbreviation for the left cover, i.e.~the back cover of the outside cover, or the inside front cover of the inside cover.
+% It is not extended to the bleed, i.e.~it is a foreground part.
+% If you want to extend a part to the bleed, type \commandinline{bg} followed by a space before the name.
+% For example \commandinline{bg lC} is the left cover extended to the bleed.
+% Use a hyphen to specify multiple parts.
+% For example, \commandinline{lW-S} is the part from the left wrap to the spine that does not extend to the bleed.
+%
+% \medskip
+% The following figures also show the full and abbreviated names of the blue parts.
%
% \subsection{Book cover without flaps, background parts}
%
% \setcounter{partfig}{1}
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<7\repeat
%
% \subsection{Book cover without flaps, foreground parts}
%
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<13\repeat
%
% \subsection{Book cover without flaps, other parts}
%
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<17\repeat
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\stepcounter{partfig}
%
@@ -364,32 +468,34 @@
%
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<46\repeat
%
% \subsection{Book cover with flaps, foreground parts}
%
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<74\repeat
%
% \subsection{Book cover with flaps, other parts}
%
% \loop
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\hfill\stepcounter{partfig}
-% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\smallskip\stepcounter{partfig}
+% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}\par\bigskip\stepcounter{partfig}
% \ifnum\value{partfig}<78\repeat
% \fbox{\includegraphics[page=\thepartfig]{figures/bookcover-parts.pdf}}
%
% \subsection{Defining part}
-% You can define a new rectangular part or redefine a defined part with the following commands:
+%
+% You can define a new rectangular part or redefine a defined part using the following commands:
% \begin{commandlst}
% \newbookcoverpart{!<new part>!}{!<setting>!}
% \renewbookcoverpart{!<defined part>!}{!<setting>!}
% \end{commandlst}
%
-% \medskip In \meta{setting} you have to set the new part sizes, the coordinates of its upper left corner (the origin is the upper left corner of the printed area), and the parameters of the \texttt{trimmed part} rectangle node in \texttt{tikz} and \texttt{tikz clip} component types (see in the Section~\ref{sec:componenttypes}). For this purpose, use the following commands:
+% In \meta{setting} you have to set the new part sizes, the coordinates of its upper left corner (the origin is the upper left corner of the printed area), and the parameters of the \texttt{trimmed part} rectangle node in the \texttt{tikz} and \texttt{tikz clip} component types (see in the Section~\ref{sec:componenttypes}).
+% Use the following commands to do this:
% \begin{commandlst}
% \setpartposx{!<coord x>!}
% \setpartposy{!<coord y>!}
@@ -402,16 +508,17 @@
% \includegraphics{./figures/bookcover-newpart}
% \end{center}
%
-% To give the previous lengths, you can use the following length commands, which are declared by the options of the document class:
+% To specify the previous lengths, you can use the following length commands, which are declared by the options of the document class:
%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline{\coverheight} Cover height.
-% \item[]\commandinline{\coverwidth} Front/back cover width.
-% \item[]\commandinline{\spinewidth} Spine width.
-% \item[]\commandinline{\flapwidth} Flap width.
-% \item[]\commandinline{\wrapwidth} Wrap width.
-% \item[]\commandinline{\bleedwidth} Bleed width.
-% \item[]\commandinline{\marklength} Mark length.
+% \item \commandinline{\coverheight} Cover height.
+% \item \commandinline{\coverwidth} Front/back cover width.
+% \item \commandinline{\spinewidth} Spine width.
+% \item \commandinline{\flapwidth} Flap width.
+% \item \commandinline{\wrapwidth} Wrap width.
+% \item \commandinline{\bleedwidth} Bleed width.
+% \item \commandinline{\marklength} Mark length.
% \end{compactdesc}
%
% \example
@@ -440,26 +547,33 @@
% \end{document}
% \end{examplelst}
%
-% You can rename a defined part with the following commands:
+% You can rename a defined part using the following commands:
% \begin{commandlst}
% \newnamebookcoverpart{!<new part>!}{!<defined part>!}
% \letnamebookcoverpart{!<new part>!}{!<defined part>!}[!<left>!,!<bottom>!,!<right>!,!<top>!]
% \end{commandlst}
%
-% \medskip Using |\newnamebookcoverpart|, the definition of the \meta{new part} and the \meta{defined part} are always the same, even if you redefine the \meta{defined part} later with the |\renewbookcoverpart|.
+% With |\newnamebookcoverpart|, the definition of the \meta{new part} and the \meta{defined part} are always the same, even if you redefine the \meta{defined part} later with the |\renewbookcoverpart|.
%
-% Using |\letnamebookcoverpart|, the definition of the \meta{new part} is the same as the current definition of the \meta{defined part} reduced by the \meta{left}, \meta{bottom}, \meta{right} and \meta{top} margins. If you change the \meta{defined part} later with the |\renewbookcoverpart|, the \meta{new part} doesn't change with it. The default value of every margin is \texttt{0mm}. If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}. If the value of a margin is negative, the part size will increase instead of decrease. You can use the following length commands to specify the margins:
+% \medskip
+% Using |\letnamebookcoverpart|, the definition of the \meta{new part} is the same as the current definition of the \meta{defined part} reduced by the \meta{left}, \meta{bottom}, \meta{right} and \meta{top} margins.
+% If you change the \meta{defined part} later with the |\renewbookcoverpart|, the \meta{new part} will not change with it.
+% The default value of every margin is \texttt{0mm}.
+% If the \meta{left}, \meta{bottom}, \meta{right} or \meta{top} is empty or space, then its value will be \texttt{0mm}.
+% If the value of a margin is negative, the part size will increase instead of decreasing.
+% You can use the following length commands to specify the margins:
%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline{\partheight} The height of the \meta{defined part}.
-% \item[]\commandinline{\partwidth} The width of the \meta{defined part}.
-% \item[]\commandinline{\coverheight} Cover height.
-% \item[]\commandinline{\coverwidth} Front/back cover width.
-% \item[]\commandinline{\spinewidth} Spine width.
-% \item[]\commandinline{\flapwidth} Flap width.
-% \item[]\commandinline{\wrapwidth} Wrap width.
-% \item[]\commandinline{\bleedwidth} Bleed width.
-% \item[]\commandinline{\marklength} Mark length.
+% \item \commandinline{\partheight} The height of the \meta{defined part}.
+% \item \commandinline{\partwidth} The width of the \meta{defined part}.
+% \item \commandinline{\coverheight} Cover height.
+% \item \commandinline{\coverwidth} Front/back cover width.
+% \item \commandinline{\spinewidth} Spine width.
+% \item \commandinline{\flapwidth} Flap width.
+% \item \commandinline{\wrapwidth} Wrap width.
+% \item \commandinline{\bleedwidth} Bleed width.
+% \item \commandinline{\marklength} Mark length.
% \end{compactdesc}
%
% \example
@@ -480,21 +594,31 @@
%
% \section{Book cover component types}\label{sec:componenttypes}
%
-% Predefined \meta{component type}: \commandinline{color}, \commandinline{tikz}, \commandinline{tikz clip}, \commandinline{picture}, \commandinline{normal}, \commandinline{center}, \commandinline{ruler}.
+% The predefined component types:
+% \commandinline{color}, \commandinline{tikz}, \commandinline{tikz clip}, \commandinline{picture}, \commandinline{normal}, \commandinline{center}, \commandinline{ruler}.
%
% \subsection{The color component type}
-% It determines the color of the \meta{part}. The \meta{content} is the options of the |\fill| in the \texttt{tikz} package:
+%
+% It determines the color of the \meta{part}.
+% The \meta{content} is the options of the |\fill| in the \texttt{tikz} package:
+%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline{!<color name>!} (See it in the \texttt{xcolor} package.)
-% \item[]\commandinline{color=!<color name>!} (It is equivalent to the previous one.)
-% \item[]\commandinline{top color=!<color name>!}
-% \item[]\commandinline{bottom color=!<color name>!}
-% \item[]\commandinline{middle color=!<color name>!}
-% \item[]\commandinline{inner color=!<color name>!}
-% \item[]\commandinline{outer color=!<color name>!}
-% \item[]\commandinline{ball color=!<color name>!}
-% \item[]\commandinline{shading angle=!<degree>!} It rotates the shading by the given angle.
-% \item[]\commandinline{opacity=!<value>!} Sets the filling opacity. The \meta{value} is between 0 and 1.
+% \item \commandinline{!<color name>!}
+% (See it in the \texttt{xcolor} package.)
+% \item \commandinline{color=!<color name>!}
+% (It is equivalent to the previous one.)
+% \item \commandinline{top color=!<color name>!}
+% \item \commandinline{bottom color=!<color name>!}
+% \item \commandinline{middle color=!<color name>!}
+% \item \commandinline{inner color=!<color name>!}
+% \item \commandinline{outer color=!<color name>!}
+% \item \commandinline{ball color=!<color name>!}
+% \item \commandinline{shading angle=!<degree>!}
+% It rotates the shading by the given angle.
+% \item \commandinline{opacity=!<value>!}
+% Sets the filling opacity.
+% The \meta{value} is between 0 and 1.
% \end{compactdesc}
%
% \example
@@ -507,9 +631,13 @@
% \end{examplelst}
%
% \subsection{The tikz component type}
-% The \meta{content} is a Ti\emph{k}Z code without |\tikz| command and |tikzpicture| environment. The origin of the Ti\emph{k}Z figure is the lower left corner of the \meta{part}. Two rectangle nodes come into being: \commandinline{part} and \commandinline{trimmed part}. (Thanks to Zunbeltz Izaola for the idea.)
%
-% \begin{minipage}{\textwidth}
+% The \meta{content} is a Ti\emph{k}Z code without |\tikz| command and |tikzpicture| environment.
+% The origin of the Ti\emph{k}Z figure is the lower left corner of the \meta{part}.
+% Two rectangular nodes are created:
+% \commandinline{part} and \commandinline{trimmed part}.
+% (Thanks to Zunbeltz Izaola for the idea.)
+%
% \example
% \begin{examplelst}
% \begin{bookcover}
@@ -520,13 +648,13 @@
% \fill[blue] (part.south west) -- (part.center) -- (part.north west) -- cycle;}
% \end{bookcover}
% \end{examplelst}
-% \end{minipage}
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics{figures/bookcover-tikz}}
% \end{center}
%
% \subsection{The tikz clip component type}
-% It works the same way as the \texttt{tikz} component type, but it clips the \meta{part}.
+%
+% It works in the same way as the \texttt{tikz} component type, but it clips the \meta{part}.
%
% \example
% \begin{examplelst}
@@ -542,7 +670,8 @@
% \end{center}
%
% \subsection{The picture component type}
-% The \meta{content} is a picture file, which will be rescaled according to the sizes of the \meta{part}.
+%
+% The \meta{content} is an image file that is resized according to the size of the \meta{part}.
%
% \example
% \begin{examplelst}
@@ -552,7 +681,9 @@
% \end{examplelst}
%
% \subsection{The normal component type}
-% In this case, the \meta{content} is not specific. You can choose it as text or picture etc.
+%
+% In this case, the \meta{content} is not specific.
+% You can choose it as text or picture etc.
%
% \example
% \begin{examplelst}
@@ -560,12 +691,13 @@
% \bookcovercomponent{normal}{front}[,,,5cm]{
% \centering
% {\bfseries\huge Book title}\\[5mm]
-% \includegraphics[width=0.4\partwidth]{fig.png}\\}
+% \includegraphics[width=0.4\partwidth]{fig.png}}
% \end{bookcover}
% \end{examplelst}
%
% \subsection{The center component type}
-% It works the same way as the \texttt{normal} component type, but the position of the content is the center of the part horizontally and vertically.
+%
+% It works in the same way as the \texttt{normal} component type, but the position of the content is the centre of the part horizontally and vertically.
%
% \example
% \begin{examplelst}
@@ -578,28 +710,49 @@
% \end{examplelst}
%
% \subsection{The ruler component type}
-% Use the \texttt{ruler} component type to check the dimensions of the part. It draws a square ruler at the borders of the part. The \meta{content} is
+%
+% Use the \texttt{ruler} component type to check the dimensions of the part.
+% It draws a square ruler at the borders of the part.
+% The \meta{content} is
% \begin{commandlst}
% !<unit>!,!<origin>!,!<color name>!
% \end{commandlst}
%
-% \begin{description}
-% \item[]\meta{unit} The ruler unit:
% \begin{compactdesc}
-% \item[]\commandinline{cm} Metric ruler (centimeter). If the \meta{unit} is empty or space, then its value will be \texttt{cm}.
-% \item[]\commandinline{in} English ruler (inch).
+% \item \meta{unit}
+% The ruler unit:
+%
+% \begin{compactdesc}
+% \item \commandinline{cm}
+% Metric ruler (centimeter).
+% If the \meta{unit} is empty or space, then its value will be \texttt{cm}.
+% \item \commandinline{in}
+% English ruler (inch).
% \end{compactdesc}
%
-% \item[]\meta{origin} The origin of the square ruler:
+% \item \meta{origin}
+% The origin of the square ruler:
+%
% \begin{compactdesc}
-% \item[]\commandinline{upperleft } The origin is the upper left corner of the part. Directions: down and right. If the \meta{origin} is empty or space, then its value will be \texttt{upperleft}.
-% \item[]\commandinline{upperright} The origin is the upper right corner of the part. Directions: down and left.
-% \item[]\commandinline{lowerleft } The origin is the lower left corner of the part. Directions: up and right.
-% \item[]\commandinline{lowerright} The origin is the lower right corner of the part. Directions: up and left.
+% \item \commandinline{upperleft }
+% The origin is the upper left corner of the part.
+% Directions: down and right.
+% If the \meta{origin} is empty or space, then its value will be \texttt{upperleft}.
+% \item \commandinline{upperright}
+% The origin is the upper right corner of the part.
+% Directions: down and left.
+% \item \commandinline{lowerleft }
+% The origin is the lower left corner of the part.
+% Directions: up and right.
+% \item \commandinline{lowerright}
+% The origin is the lower right corner of the part.
+% Directions: up and left.
% \end{compactdesc}
%
-% \item[]\meta{color name} The color of the ruler. If it is empty or space, then its value will be the color of the marks.
-% \end{description}
+% \item \meta{color name}
+% The color of the ruler.
+% If it is empty or space, then its value will be the color of the marks.
+% \end{compactdesc}
%
% \example
% \begin{examplelst}
@@ -615,7 +768,8 @@
% \end{center}
%
% \subsection{Defining component type}
-% You can define a new component type, redefine or rename a defined component type with the following commands:
+%
+% You can define a new component type, redefine or rename a defined component type using the following commands:
% \begin{commandlst}
% \newbookcovercomponenttype{!<new component type>!}{!<formatting>!}
% \renewbookcovercomponenttype{!<defined component type>!}{!<formatting>!}
@@ -623,18 +777,26 @@
% \letnamebookcovercomponenttype{!<new component type>!}{!<defined component type>!}
% \end{commandlst}
%
-% \medskip Using |\newnamebookcovercomponenttype|, the definition of the \meta{new component type} and the \meta{defined component type} are always the same, even if you redefine the \meta{defined component type} later with the |\renewbookcovercomponenttype|.
+% \medskip
+% With |\newnamebookcovercomponenttype|, the definition of the \meta{new component type} and the \meta{defined component type} are always the same, even if you redefine the \meta{defined component type} later with the |\renewbookcovercomponenttype|.
%
-% Using |\letnamebookcovercomponenttype|, the definition of the \meta{new component type} is the same as the current definition of the \meta{defined component type}. If you change the \meta{defined component type} later with |\renewbookcovercomponenttype|, the \meta{new component type} doesn't change with it.
+% \medskip
+% With |\letnamebookcovercomponenttype|, the definition of the \meta{new component type} is the same as the current definition of the \meta{defined component type}.
+% If you change the \meta{defined component type} later with |\renewbookcovercomponenttype|, the \meta{new component type} doesn't change with it.
%
+% \medskip
% You can use the following length commands in \meta{formatting}:
%
+% \medskip
% \begin{compactdesc}
-% \item[]\commandinline{\partwidth} The width of the part (reduced by the margins) in which you are using the defined component type.
-% \item[]\commandinline{\partheight} The height of the part (reduced by the margins) in which you are using the defined component type.
+% \item \commandinline{\partwidth}
+% The width of the part (reduced by the margins) in which you are using the defined component type.
+% \item \commandinline{\partheight}
+% The height of the part (reduced by the margins) in which you are using the defined component type.
% \end{compactdesc}
%
-% You have to referrence the content as \verb|#1|.
+% \medskip
+% You must refer to the content as \verb|#1|.
%
% \example
% \begin{examplelst}
@@ -651,7 +813,10 @@
% \end{document}
% \end{examplelst}
%
-% \newpage\section{Examples}
+% \newpage
+% \section{Examples}
+%
+% This section provides some examples to help you better understand the use and functionality of the commands and options of the \texttt{bookcover} document class.
%
% \subsection{Barcode and QR code}
%
@@ -682,7 +847,8 @@
% \end{document}
% \end{examplelst}
%
-% \newpage\subsection{Description}\label{subsec:desc}
+% \newpage
+% \subsection{Description}\label{subsec:desc}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[page=1,width=\textwidth-.8pt]{figures/bookcover-description}}\\[5mm]
@@ -718,7 +884,8 @@
% \end{document}
% \end{examplelst}
%
-% \newpage\subsection{Usage of margins}
+% \newpage
+% \subsection{Usage of margins}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[width=\textwidth-.8pt]{figures/bookcover-margins}}
@@ -745,7 +912,6 @@
%
% or its equivalent
%
-% \bigskip
% \begin{examplelst}
% \documentclass[spinewidth=30mm]{bookcover}
%
@@ -771,31 +937,37 @@
% \end{document}
% \end{examplelst}
%
-% \newpage\subsection{A dust jacket}
+% \newpage
+% \subsection{A dust jacket}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[width=\textwidth-.8pt]{bookcover-example1}}
% \end{center}
% \lstinputlisting[style=examplefile]{bookcover-example1.tex}
%
-% \newpage\subsection{A two-sided book cover}\label{subsec-two-sided-example}
+% \newpage
+% \subsection{A two-sided book cover}\label{subsec-two-sided-example}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[page=1,width=\textwidth-.8pt]{bookcover-example2}}\\[5mm]
% \fcolorbox{black!50}{white}{\includegraphics[page=2,width=\textwidth-.8pt]{bookcover-example2}}
% \end{center}
+% \newpage
% \lstinputlisting[style=examplefile]{bookcover-example2.tex}
%
-% \newpage\subsection{Trimming and checking dimensions}\label{subsec:trimming}
+% \newpage
+% \subsection{Trimming and checking dimensions}\label{subsec:trimming}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[page=1,width=\textwidth-.8pt]{figures/bookcover-trimming}}\\[5mm]
% \fcolorbox{black!50}{white}{\includegraphics[page=2,width=\textwidth-.8pt]{figures/bookcover-trimming}}
% \end{center}
%
-% This example shows the usage of the \texttt{trimmed} option and the |\bookcovertrimmedpart| command. These allow you to view the finished product for demonstration purposes. We also check the cover dimensions. Set the value of the \texttt{trimmed} option \texttt{false} and clear \texttt{ruler} component type before printing!
+% This example shows the use of the \texttt{trimmed} option and the |\bookcovertrimmedpart| command.
+% These allow you to see the finished product for demonstration purposes.
+% We also check the dimensions of the book cover.
+% Set the value of the \texttt{trimmed} option to \texttt{false} and clear the \texttt{ruler} component type before printing!
%
-% \bigskip
% \begin{examplelst}
% \documentclass[
% spinewidth=15mm,
@@ -819,7 +991,7 @@
% \centering
% {\huge\bfseries ANNALES\\ INFORMATICAE\par}
% \vfill
-% {\large\bfseries TOMUS 43.~(2020)}
+% {\large\bfseries TOMUS 43.~(2024)}
% \vfill
% {\large COMMISSIO REDACTORIUM}\\[3mm]
% \lipsum[2]}
@@ -830,7 +1002,7 @@
%
% \bookcovercomponent{center}{spine}{
% \rotatebox[origin=c]{-90}{\footnotesize\bfseries
-% ANNALES INFORMATICAE 43.~(2020)}}
+% ANNALES INFORMATICAE 43.~(2024)}}
%
% \bookcovercomponent{ruler}{whole}{,,} % Check dimensions
%
@@ -851,7 +1023,8 @@
% \end{document}
% \end{examplelst}
%
-% \newpage\subsection{A book cover with folding margin for hardcover book}
+% \newpage
+% \subsection{A book cover with folding margin for hardcover book}
%
% \begin{center}
% \fcolorbox{black!50}{white}{\includegraphics[width=\textwidth-.8pt]{figures/bookcover-foldingmargin}}
@@ -1273,7 +1446,7 @@
%% BOOKCOVERELEMENT ENVIRONMENT
-\NewDocumentEnvironment{bookcoverelement}{ m m O{,,,} +b }{\bookcovercomponent{#1}{#2}[#3]{#4}}
+\NewDocumentEnvironment{bookcoverelement}{ m m O{,,,} +b }{\bookcovercomponent{#1}{#2}[#3]{#4}}{}
%% NEW BOOKCOVER PART
@@ -1353,10 +1526,13 @@
\def\bookcover@tikz@content#1{%
\begin{tikzpicture}[overlay,yshift=-\bookcover@partheight@]
\begingroup
- \pgfset{minimum width=\bookcover@partwidth@,minimum height=\bookcover@partheight@}
+ \pgfset{minimum width=\bookcover@partwidth@,
+ minimum height=\bookcover@partheight@,
+ outer sep=0pt}
\pgfnode{rectangle}{south west}{}{part}{\pgfusepath{}}
\pgfset{minimum width=\bookcover@partwidth@-\bookcover@tikz@trimmed@part@width@minus,
- minimum height=\bookcover@partheight@-\bookcover@tikz@trimmed@part@height@minus}
+ minimum height=\bookcover@partheight@-\bookcover@tikz@trimmed@part@height@minus,
+ outer sep=0pt}
\pgftransformshift{\pgfpoint{\bookcover@tikz@trimmed@part@push@right}
{\bookcover@tikz@trimmed@part@push@up}}
\pgfnode{rectangle}{south west}{}{trimmed part}{\pgfusepath{}}
@@ -1875,7 +2051,7 @@
\letnamebookcoverpart{bookcoverpart@whole}{whole} % bookcoverpart@whole is protected part
-%% SYNONYMOUS PART NAMES FOR INSIDE COVER ('INSIDE FRONT' = 'BACK', 'INSIDE BACK' = 'FRONT')
+%% SYNONYMOUS NAMES OF PARTS FOR INSIDE COVER ('INSIDE FRONT' = 'BACK', 'INSIDE BACK' = 'FRONT')
\@for\bookcover@partname@:={%
bg back flap,bg back wrap,bg back,bg front,bg front wrap,bg front flap,%
@@ -1898,7 +2074,7 @@ whole without front flap,whole without back flap}%
\patchcmd{\bookcover@partname@}{fr@nt}{inside back}{}{}%
\letnamebookcoverpart{\bookcover@partname@}{\bookcover@partname@original@}}
-%% SHORT PART NAMES
+%% SHORT NAMES OF PARTS
\def\bookcover@shortpartname@#1=#2.{\letnamebookcoverpart{#1}{#2}\letnamebookcoverpart{bg #1}{bg #2}}
\@for\bookcover@partname@:={%
diff --git a/macros/latex/contrib/bookcover/bookcover.ins b/macros/latex/contrib/bookcover/bookcover.ins
index 5f601760d3..81f51163b6 100644
--- a/macros/latex/contrib/bookcover/bookcover.ins
+++ b/macros/latex/contrib/bookcover/bookcover.ins
@@ -1,5 +1,5 @@
-% Copyright (C) 2015-2024 Tibor Tomacs
+% Copyright (C) 2015-2024 Tibor Tómács
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.2 of this license or (at your option) any later
@@ -15,7 +15,7 @@
\usedir{tex/latex/bookcover}
\preamble
This is a generated file.
-Copyright (C) 2015-2024 Tibor Tomacs
+Copyright (C) 2015-2024 Tibor Tómács
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.2 of this license or (at your option) any later
diff --git a/macros/latex/contrib/bookcover/bookcover.pdf b/macros/latex/contrib/bookcover/bookcover.pdf
index e6d0f8ee65..52a4edb3db 100644
--- a/macros/latex/contrib/bookcover/bookcover.pdf
+++ b/macros/latex/contrib/bookcover/bookcover.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-barcode.pdf b/macros/latex/contrib/bookcover/figures/bookcover-barcode.pdf
index f648d9295c..4b12b9343c 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-barcode.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-barcode.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-description.pdf b/macros/latex/contrib/bookcover/figures/bookcover-description.pdf
index ee8755e38f..618e8f93d7 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-description.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-description.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-dustjacket.pdf b/macros/latex/contrib/bookcover/figures/bookcover-dustjacket.pdf
index c1caae30f7..8b0e19b7b0 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-dustjacket.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-dustjacket.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-foldingmargin.pdf b/macros/latex/contrib/bookcover/figures/bookcover-foldingmargin.pdf
index 1586332ed1..51d1c35135 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-foldingmargin.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-foldingmargin.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-margins.pdf b/macros/latex/contrib/bookcover/figures/bookcover-margins.pdf
index 6386906170..7eff390a55 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-margins.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-margins.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-newpart.pdf b/macros/latex/contrib/bookcover/figures/bookcover-newpart.pdf
index 572224053d..5afed2b9fd 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-newpart.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-newpart.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-parts.pdf b/macros/latex/contrib/bookcover/figures/bookcover-parts.pdf
index 648e6a338a..0ca7458280 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-parts.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-parts.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-pi.pdf b/macros/latex/contrib/bookcover/figures/bookcover-pi.pdf
index 5e1cad7ebc..0ed517ed4b 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-pi.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-pi.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-ruler.pdf b/macros/latex/contrib/bookcover/figures/bookcover-ruler.pdf
index f987d3ee36..0ece76e890 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-ruler.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-ruler.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-scheme-foldingmargin.pdf b/macros/latex/contrib/bookcover/figures/bookcover-scheme-foldingmargin.pdf
index 6eb0784e74..2740e419be 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-scheme-foldingmargin.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-scheme-foldingmargin.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-scheme-widthflaps.pdf b/macros/latex/contrib/bookcover/figures/bookcover-scheme-widthflaps.pdf
new file mode 100644
index 0000000000..24d93301f7
--- /dev/null
+++ b/macros/latex/contrib/bookcover/figures/bookcover-scheme-widthflaps.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-scheme-withoutflaps.pdf b/macros/latex/contrib/bookcover/figures/bookcover-scheme-withoutflaps.pdf
index 411e4f4194..6a83cd7778 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-scheme-withoutflaps.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-scheme-withoutflaps.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-tikz.pdf b/macros/latex/contrib/bookcover/figures/bookcover-tikz.pdf
index b0aef8e737..757d537a91 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-tikz.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-tikz.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-tikzclip.pdf b/macros/latex/contrib/bookcover/figures/bookcover-tikzclip.pdf
index 9c65cdb40a..bbf211c053 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-tikzclip.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-tikzclip.pdf
Binary files differ
diff --git a/macros/latex/contrib/bookcover/figures/bookcover-trimming.pdf b/macros/latex/contrib/bookcover/figures/bookcover-trimming.pdf
index d2df8ec4a3..fd4a9ccd19 100644
--- a/macros/latex/contrib/bookcover/figures/bookcover-trimming.pdf
+++ b/macros/latex/contrib/bookcover/figures/bookcover-trimming.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/README.md b/macros/latex/contrib/changelog/README.md
index ab16196d1e..6b7d251083 100644
--- a/macros/latex/contrib/changelog/README.md
+++ b/macros/latex/contrib/changelog/README.md
@@ -2,12 +2,21 @@
[Available on CTAN as `changelog`][changelog]
-Changelogs are important. Unfortunately, there are few facilities
-for typesetting changelogs in LaTeX. `changelog` defines a `changelog`
+Changelogs are important. The `changelog` package defines a `changelog`
environment to make changelogs simple and intuitive.
Inspired by [keepachangelog.com].
+```latex
+\begin{changelog}[author=Rebecca Turner, simple, sectioncmd=\section*]
+\begin{version}[v=1.0.0, date=2018-12-28]
+ \item Cool features
+ \item Bug fixes
+\end{version}
+\shortversion{v=0.1.0, date=2018-10-25, changes=Initial beta}
+\end{changelog}
+```
+
File | Description
-----------------------------|-------------------------------
changelog.sty | The changelog package
diff --git a/macros/latex/contrib/changelog/changelog.pdf b/macros/latex/contrib/changelog/changelog.pdf
index c80cec01db..f0e2277664 100644
--- a/macros/latex/contrib/changelog/changelog.pdf
+++ b/macros/latex/contrib/changelog/changelog.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/changelog.sty b/macros/latex/contrib/changelog/changelog.sty
index 4c95edd805..b58e33479a 100644
--- a/macros/latex/contrib/changelog/changelog.sty
+++ b/macros/latex/contrib/changelog/changelog.sty
@@ -1,5 +1,5 @@
\RequirePackage{expl3}
-\ProvidesExplPackage{changelog}{2023/02/16}{2.5.0}{Typesetting changelogs}
+\ProvidesExplPackage{changelog}{2024/09/17}{2.5.1}{Typesetting changelogs}
% Description: Provides the changelog environment for typesetting changelogs
% License: LPPL 1.3c
% Homepage: https://github.com/9999years/latex-changelog
@@ -210,24 +210,28 @@
{}
}
-\cs_set:Npn \changelog__short_version_define_date
+% Display the current version, which may be a version number, a date, or "Unreleased".
+\cs_set:Npn \changelog__display_version
{
- \tl_if_empty:NT \g__changelog_version_tl
+ \tl_if_empty:NTF \g__changelog_version_tl
{
\tl_if_empty:NTF \g__changelog_date_tl
{
- \tl_set:Nn \g__changelog_version_tl { \GetTranslation{changelog-Unreleased} }
+ \GetTranslation{changelog-Unreleased}
\tl_set:Nn \g__changelog_date_tl { \today }
}
{
- \tl_set_eq:NN \g__changelog_version_tl \g__changelog_date_tl
+ \tl_use:N \g__changelog_date_tl
}
}
+ {
+ \tl_use:N \g__changelog_version_tl
+ }
}
\cs_set:Npn \changelog__short_version_item
{
- \tl_use:N \g__changelog_version_tl
+ \changelog__display_version
\bool_if:NT \g__changelog_yanked_bool
{
\ \changelogyanked
@@ -247,12 +251,21 @@
\cs_set:Npn \changelog__short_version_author_date
{
+ % This might output nothing if there's no author and the date is being used
+ % as a version number, so make sure to `\leavevmode` to avoid a weird
+ % indent at the start of the item.
+ \mode_leave_vertical:
\tl_use:N \g__changelog_author_tl
\tl_if_empty:NF \g__changelog_date_tl
{
- \tl_if_empty:NF \g__changelog_author_tl
- { ~ }
- (\tl_use:N \g__changelog_date_tl)
+ % If no version number is given, the date is used instead, so we don't
+ % want to show the date twice.
+ \tl_if_empty:NF \g__changelog_version_tl
+ {
+ \tl_if_empty:NF \g__changelog_author_tl
+ { ~ }
+ (\tl_use:N \g__changelog_date_tl)
+ }
}
}
@@ -308,7 +321,6 @@
% environment
\cs_set:Npn \changelog__short_version
{
- \changelog__short_version_define_date
\bool_gset_true:N \g__changelog_seen_version_bool
\item[\changelog__short_version_item]
diff --git a/macros/latex/contrib/changelog/changelog.tex b/macros/latex/contrib/changelog/changelog.tex
index f4d0706350..9c949501fc 100644
--- a/macros/latex/contrib/changelog/changelog.tex
+++ b/macros/latex/contrib/changelog/changelog.tex
@@ -30,14 +30,13 @@
\author{Rebecca Turner\thanks{\email{rbt@sent.as}}}
\title{The \cl\ Package}
-\date{2.5.0 (2023/02/16)}
+\date{2.5.1 (2024/09/17)}
\begin{document}
\maketitle
\begin{abstract}
- Changelogs are important. Unfortunately, there are few facilities
- for typesetting changelogs in \LaTeX. \cl\ defines a |changelog|
- environment to make changelogs simple and intuitive.
+ Changelogs are important. \cl\ defines a |changelog|
+ environment to make writing changelogs declarative and easy.
For rationale, read \keepachangelog.
\end{abstract}
@@ -346,15 +345,27 @@ an email} and I'll incorporate the translation into \cl's next release!
This is this package's actual changelog --- not an example!
\begin{changelog}[author=Rebecca Turner <\email{rbt@sent.as}>, section=false]
+\begin{version}[v=2.5.1, date=2024-09-17]
+\fixed
+ \item Fixed \href{https://github.com/9999years/latex-changelog/issues/13}{a
+ bug where a version with a date and no version number would display the
+ date twice}, like ``\textbf{2024-09-17} (2024-09-17)''. Now, the date will
+ correctly only be shown once.
+
+ \item Fixed a bug where a version with a version number but no date or author
+ would be indented.
+\end{version}
+
\begin{version}[v=2.5.0, date=2023-02-16]
\added
- \item Added the \cs{newchangelogsection} command to support custom
- sections.
+ \item Added the \cs{newchangelogsection} command to support custom
+ sections.
\item Added the |remark| and |remarks| keys to support custom remarks (like
``YANKED'') on versions.
\item Added the |\changelogremark| command, which renders the ``YANKED''
remark and other custom remarks.
\end{version}
+
\begin{version}[v=2.4.1, date=2023-02-14]
\changed
\item Converted the |changelog.sty| implementation to use the \ctan{expl3}
@@ -362,6 +373,7 @@ This is this package's actual changelog --- not an example!
environment. I believe \ctan{expl3} is the future of programming in
\LaTeX, despite its verbosity.
\end{version}
+
\begin{version}[v=2.4.0, date=2020-09-02,
author={cmplstofB <\https{github.com/cmplstofB}>}]
\added
diff --git a/macros/latex/contrib/changelog/example.pdf b/macros/latex/contrib/changelog/example.pdf
index 110ae72c38..d31f6729c8 100644
--- a/macros/latex/contrib/changelog/example.pdf
+++ b/macros/latex/contrib/changelog/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/example.tex b/macros/latex/contrib/changelog/example.tex
index 9db61a2ea7..8b1557ee92 100644
--- a/macros/latex/contrib/changelog/example.tex
+++ b/macros/latex/contrib/changelog/example.tex
@@ -7,17 +7,28 @@
title=Example changelog]
\begin{version}
\critical
- \item A critical new feature
+ \item A critical new feature.
\added
- \item Really cool features
+ \item Really cool feature.
+ \item A second feature.
\end{version}
\begin{version}[date=2019-01-23, short]
- A version with only a date
+ A version with only a date.
+\end{version}
+
+\begin{version}[date=2019-01-23]
+\added
+ \item A ``full'' version with only a date.
\end{version}
\begin{version}[v=1.1.0, simple]
- \item A version with no date
+ \item A version with no date.
+\end{version}
+
+\begin{version}[v=1.1.0, author=]
+\added
+ \item A version with no date or author.
\end{version}
\begin{version}[v=1.0.3, remark=Remark, simple]
@@ -29,24 +40,24 @@
\end{version}
\begin{version}[v=1.0.1, yanked, simple]
- \item A version with a terrible bug
+ \item A version with a terrible bug.
\end{version}
\begin{version}[v=1.0.0, date=2018-10-26]
\added
- \item A cool feature
+ \item A cool feature.
\changed
- \item Some \textsc{api} detail
+ \item Some \textsc{api} detail.
\deprecated
- \item Something that was a bad idea in the first place
+ \item Something that was a bad idea in the first place.
\removed
- \item Something that was deprecated 3 versions ago
+ \item Something that was deprecated 3 versions ago.
\fixed
- \item A bug that would delete files instead of saving them
+ \item A bug that would delete files instead of saving them.
\security
- \item improved with addition of buffer bound checks
+ \item improved with addition of buffer bound checks.
\misc
- \item A change that doesn't fit into any other category
+ \item A change that doesn't fit into any other category.
\end{version}
\shortversion{v=0.1.0, date=2018-10-19,
diff --git a/macros/latex/contrib/chess-problem-diagrams/README b/macros/latex/contrib/chess-problem-diagrams/README
index bc5dc2fecf..f619a919a3 100644
--- a/macros/latex/contrib/chess-problem-diagrams/README
+++ b/macros/latex/contrib/chess-problem-diagrams/README
@@ -1,5 +1,5 @@
diagram --- A package for typesetting chessproblems
-Version v1.21 / Stefan Hoening 1994-2022
+Version v1.22 / Stefan Hoening 1994-2024
CONTENTS
diff --git a/macros/latex/contrib/chess-problem-diagrams/diagram.dtx b/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
index 883588b391..45ffdc5001 100644
--- a/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
+++ b/macros/latex/contrib/chess-problem-diagrams/diagram.dtx
@@ -13,9 +13,9 @@
%%
%%
% \fi
-% \def\fileversion{v1.21}
-% \def\docdate{2022/06/14}
-% \CheckSum{4577}
+% \def\fileversion{v1.22}
+% \def\docdate{2024/06/13}
+% \CheckSum{4611}
% \changes{v0.1}{15 Februar 2004}{First Version}
% \changes{v0.2}{23 Februar 2004}{Added the documentation for the
% {\itshape information collecting} macros which may be used
@@ -91,9 +91,15 @@
% \changes{v1.20}{13 June 2022}{Introduced two booleans to better
% control displaying diagram number globally and locally.\\
% Removed the old boolean 'di@no'.}
-% \changes{v1.21}{14 June 2022}{Impletemted issue: 03f/309:\\
+% \changes{v1.21}{14 June 2022}{Impletented issue: 03f/309:\\
% handle empty arguments in information collecting commands\\
% Fixed typo in @dia@fidealbum command.}
+% \changes{v1.22}{13 June 2024}{Fix empty argument detection.\\
+% Change ra and lra commands to allow for common prefix and suffix.\\
+% Added generic command insidediagram to allow e.g. footnotes inside
+% diagrams.\\
+% Fixed numbering when creating empty diagram numbering via
+% speciadiagram.}
%
% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -237,8 +243,8 @@
% \item \DescribeMacro{\author}
% With the |\author| tag you specify one author or a list of authors.
% If you specify more than one author, you must separate them
-% with ";~". Normally an author is given as \explained{"sirname,
-% givenname"}. You may change the way, how the name is
+% with ``;~''. Normally an author is given as \explained{``sirname,
+% givenname''}. You may change the way, how the name is
% interpreted by \LaTeX\ using |\normalnames| and
% |\reversednames|. This \verb+\author+ command does only
% overwrite the default behaviour when used inside a diagram
@@ -252,7 +258,7 @@
% \item \DescribeMacro{\pieces}
% With |\pieces| you specify the position to be displayed on the
% board. For each kind of piece you may specify a list of fields.
-% Different lists of fields are separated by ",~". So the general
+% Different lists of fields are separated by ``,~''. So the general
% syntax for specifying the position of a specific piece
% is:\newline
% [color][piece]\{rotation of piece\}[list of squares];\newline
@@ -297,12 +303,12 @@
% may be used to specify the city and country, where the author
% or the authors live. I use this inside the original section of
% \Schwalbe. You should separate multiple cities (for multiple
-% authors) with ";~". There is also a boolean switch |showcity|,
+% authors) with ``;~''. There is also a boolean switch |showcity|,
% which contols, whether this information is displayed.
% \item \DescribeMacro{\specialdiagnum}
% May be used to suppress the default diagram numbering (which
% uses a counter) and instead directly providing a diagram
-% "number" which may be an arbritary text. This may also be used to
+% ``number'' which may be an arbritary text. This may also be used to
% suppress displaying a diagram number by providing an empty argument
% \verb+{}+.
% \item \DescribeMacro{\sourcenr}
@@ -334,10 +340,10 @@
% author of the problem.
% \item \DescribeMacro{\condition}\DescribeMacro{\cond}
% May be used to specify the fairy conditions of a problem.
-% Different conditions should be separated with ";~".
+% Different conditions should be separated with ``;~''.
% \item \DescribeMacro{\twins}
% May be used to specify the different twins of a problem.
-% Different twins should be separated with ";~".
+% Different twins should be separated with ``;~''.
% \item \DescribeMacro{\remark}\DescribeMacro{\rem}
% May be used to specify remarks to the problem. I typically use
% this to explain fairy pieces on the board. You may also use the
@@ -357,18 +363,18 @@
% \item \DescribeMacro{\judgement}
% May be used to describe the judgement given for a problem,
% e.\,g. when you are working on an award or when you are
-% selecting problems for a "best of \dots{}" book.
+% selecting problems for a ``best of \dots{}'' book.
% \item \DescribeMacro{\comment}
% May be used to specify some comment on the problem (e.\,g. the
% authors original comment.)
% \item \DescribeMacro{\themes}
% May be used to specify themes displayed in the problem.
-% Different themes should be separated with ",~". When creating a
+% Different themes should be separated with ``,~''. When creating a
% theme index, the themes will automatically be used to create
% the register.
% \item \DescribeMacro{\genre}
% May be used to specify genre of the problem.
-% Different genres should be separated with ",~".
+% Different genres should be separated with ``,~''.
% The values are intended to using \LaTeX\-import within the PDB.
% \end{itemize}
%
@@ -734,7 +740,7 @@
% You may remove single fields by using the |\nofields| or
% |\nosquares| command. Using this command does make sense for
% empty black fields only. This command expects a list of squares
-% separated by "',~"'. You may also use this command within a
+% separated by ``,~''. You may also use this command within a
% stereo- or space-diagram. In this case you must specify the
% fields the same way you do it inside the |\pieces| command.
%
@@ -748,14 +754,14 @@
% A more general form of lines within diagrams is possible by
% using the |\gridlines| command. You may specify a list of
% horizontal or vertical lines within the diagram. Different
-% lines should be separated by "',~"'. A single line must be
+% lines should be separated by ``,~''. A single line must be
% specified as:
%
% [plane](v or h)(x-coordinate)(y-coordinate)(length in squares)
%
% You must specify a plane in case of stereo- or space-chess
% only. For a vertical line starting at the lower left corner of
-% "'c2"' ending at the upper left corner of "'c8"' the command to
+% ``c2'' ending at the upper left corner of ``c8'' the command to
% use is: |\gridlines{v217}|\@. Concerning the coordinates and
% length specifications you should pay attention to put values
% greater 9 in curly braces \{ \}.
@@ -766,7 +772,7 @@
% is: \{Text\}(x-coordinate)(y-coordinate)
%
% Now an example how to use |\gridlines|, |\nofields| and
-% |\fieldtext| to create some "'{\itshape Letter-Board}"' with text
+% |\fieldtext| to create some ``{\itshape Letter-Board}'' with text
% inside.
%
% \bigskip
@@ -865,6 +871,7 @@
% \DescribeMacro{\nX}
% a neutral rotated equihopper
% \end{description}
+%
% \subsubsection{Other often used symbols}
% The style also defines commands for other symbols, which are
% often used within the declaration of twins or when writing a
@@ -887,12 +894,28 @@
% queen side castling
% \item[\x]
% \DescribeMacro{\x}
-% for "'takes"'
+% for ``takes''
% \item[\any]
% \DescribeMacro{\any}
-% for any move (you may not simply use a \any\ within your
+% for an arbitrary move (you must not simply use a \verb+~+ within your
% text because \TeX\ handles this as a protected space)
% \end{description}
+%
+% \DescribeEnv{arrowskip}
+% It is possible, to define a prefix and/or a suffix to use before and
+% after arrows - typically a common separating space. Per default
+% there is no such space. You may use the \verb+arrowskip+ environment
+% have a common prefix and suffix before and after arrows:
+%
+% \begin{verbatim}
+% \begin{arrowskip}{a\,}{\,b}
+% ...
+% \end{arrowskip}
+% \end{verbatim}
+%
+% ... will prefix arrows produced with |\ra| or |\lra| with \verb+a\,+
+% and suffix with \verb+\,b+.
+%
% \subsubsection{Internationalization}
% \DescribeMacro{\DefinePieces}
% This part is relevant for people who do not like the german
@@ -992,6 +1015,20 @@
% \verb+\renewcommand{\solpar}+ to provide another definition of
% \verb+\solpar+ in such situations.
%
+% \DescribeMacro{\insidediagram}
+% The problem information collected by some commands may be used in
+% different places (author names will be shown above the diagram and
+% at the beginning of solutions when output using \verb+\putsol+).
+% Therefore we need some special handling of e.g. footnotes, to avoid
+% creating the footnotemarks multiple times. Such commands should be
+% used within \verb+\insidediagram+ as shown by the following example:
+%
+% \begin{verbatim}
+% \begin{diagram}
+% \author{Else\insidediagram{\footnotemark}, Someone}
+% \end{diagram}
+% \end{verbatim}
+%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \section{The documentation driver}
@@ -1016,7 +1053,7 @@
% Specifies the preamble of our style file.
% \begin{macrocode}
%<*style>
-\ProvidesPackage{diagram}[2022/06/19]
+\ProvidesPackage{diagram}[2024/10/14]
% \end{macrocode}
%
% \begin{macro}{\DefaultDiagramSize}
@@ -1206,6 +1243,7 @@
\newtoks\condition@tk\condition@tk={\relax}
\newtoks\remark@tk\remark@tk={\relax}
\newtoks\piecedefs@tk\piecedefs@tk={\relax}
+\newtoks\@cpd@emptytest
% \end{macrocode}
%
% To remember, which information has been specified, we define
@@ -1264,7 +1302,7 @@
% \begin{macrocode}
\newwrite\s@lfd
\let\below@newline=\relax
-% These are used by the "old" board creating mechanism
+% These are used by the ``old'' board creating mechanism
\newcount\@lines
\newcount\@rows
\newcount\lines@max
@@ -1386,6 +1424,12 @@
\ignorespaces%
}
+
+\newboolean{@cpd@inside@diagram}
+\setboolean{@cpd@inside@diagram}{false}
+\newcommand{\insidediagram}[1]{%
+ \ifthenelse{\boolean{@cpd@inside@diagram}}{#1}{}%
+}
\def\enddiagram{%
\let\author=\orig@author%
\let\day=\orig@day%
@@ -1506,6 +1550,7 @@
}%
%
\global\setbox\dia@box=\hbox{\vbox{%
+ \setboolean{@cpd@inside@diagram}{true}%
\parindent\z@%
\parskip\z@%
\baselineskip11\p@\advance\baselineskip\dia@lineskip%
@@ -1541,6 +1586,7 @@
\dia@below%
}\hss}%
}%
+ \setboolean{@cpd@inside@diagram}{false}%
}}% End of \dia@box
\do@dia@job%
\cpd@enddiagram@hook%
@@ -1728,21 +1774,42 @@
\addtocounter{board@nr}{\m@ne}}
% \end{macrocode}
%
+% Now we define a couple of abbreviations and special symbols
+% often used when setting problem chess documents.
+%
% \begin{macro}{\ra}
% \begin{macro}{\lra}
% \begin{macro}{\rla}
+% \begin{macro}{arrowskip}
+% Arrows and specification of space (or something different)
+% before and after arrows.
+% \begin{macrocode}
+\newcommand{\@cpd@pre@arrow}{}
+\newcommand{\@cpd@post@arrow}{}
+\newcommand{\ra}{\@cpd@pre@arrow\mbox{$\rightarrow$}\@cpd@post@arrow}
+\newcommand{\lra}{\@cpd@pre@arrow\mbox{$\leftrightarrow$}\@cpd@post@arrow}
+\let\rla=\lra
+\newcommand*{\@cpd@prepost@arrow}[2]{%
+ \renewcommand*{\@cpd@pre@arrow}{#1}
+ \renewcommand*{\@cpd@post@arrow}{#2}
+}
+\newenvironment{arrowskip}{%
+ \@cpd@prepost@arrow%
+}{%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\x}
% \begin{macro}{\set}
% \begin{macro}{\OO}
% \begin{macro}{\OOO}
% \begin{macro}{\any}
% \begin{macro}{\further}
-% Now we define a couple of abbreviations and special symbols
-% often used when setting problem chess documents.
% \begin{macrocode}
-\def\ra{\mbox{$\rightarrow$}}
-\def\lra{\mbox{$\leftrightarrow$}}
-\let\rla=\lra
\newcommand{\x}{\mbox{\ifmmode\times\else$\times$\fi}}
\def\set{\kern -.05em\raise .1ex\hbox{*}}
\def\@O{0\raise.25ex\hbox{-}\kern -.1em\relax}
@@ -1757,9 +1824,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
\def\spacelayout#1{\csname space@#1\endcsname}
@@ -1808,10 +1872,10 @@
}{%
\setboolean{@cpd@numbering@local}{true}%
\@specialtrue%
- \number@tk={#1}\@numbertrue%
- \def\thediag{#1}\def\@currentlabel{#1}%
- \ignorespaces%
}
+ \number@tk={#1}\@numbertrue%
+ \def\thediag{#1}\def\@currentlabel{#1}%
+ \ignorespaces%
}
% \end{macrocode}
%
@@ -1848,6 +1912,15 @@
% \end{macro}
%
% \begin{macrocode}
+\def\@cpd@warnIfEmpty#1#2{%
+ \begingroup%
+ \@cpd@emptytest={#1}%
+ \edef\@cpd@param{\the\@cpd@emptytest}%
+ \expandafter\endgroup%
+ \ifx\@cpd@param\@empty\relax%
+ \message{^^JWARNING: empty '#2' argument.^^J}%
+ \fi
+}
\def\city#1{%
\city@tk={#1}\@citytrue%
\ignorespaces%
@@ -1889,44 +1962,29 @@
\ignorespaces%
}
\def\award#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'award' argument.^^J}%
- }{%
- \award@tk={#1}\@awardtrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{award}%
+ \award@tk={#1}\@awardtrue%
+ \ignorespaces%
}
\def\version#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'version' argument.^^J}%
- }{%
- \version@tk={#1}\@versiontrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{version}%
+ \version@tk={#1}\@versiontrue%
+ \ignorespaces%
}
\def\after#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'after' argument.^^J}%
- }{%
- \after@tk={#1}\@aftertrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{after}%
+ \after@tk={#1}\@aftertrue%
+ \ignorespaces%
}
\def\correction#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \correction@tk={#1}\@correctiontrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{correction}%
+ \correction@tk={#1}\@correctiontrue%
+ \ignorespaces%
}
\def\dedication#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \dedic@tk={#1}\@dedicationtrue%
- \ignorespaces%
- }%
+ \@cpd@warnIfEmpty{#1}{dedication}%
+ \dedic@tk={#1}\@dedicationtrue%
+ \ignorespaces%
}
\def\fidealbum#1{%
\fidealbum@tk={#1}\@fidealbumtrue%
@@ -2569,7 +2627,7 @@
\parskip\tw@\p@%
{\bfseries%
\noindent\if@label\showlabel{\the\label@tk}\fi%
- \the\number@tk) %
+ \if@number\the\number@tk) \fi%
\ifauth@r%
\ifnormal@names%
\the\aut@tk%
diff --git a/macros/latex/contrib/chess-problem-diagrams/diagram.pdf b/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
index 9ea04fbd39..843e8de2a3 100644
--- a/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
+++ b/macros/latex/contrib/chess-problem-diagrams/diagram.pdf
Binary files differ
diff --git a/macros/latex/contrib/circledtext/README.md b/macros/latex/contrib/circledtext/README.md
index 6c49b9f7cd..d73cb72047 100644
--- a/macros/latex/contrib/circledtext/README.md
+++ b/macros/latex/contrib/circledtext/README.md
@@ -37,7 +37,7 @@ Contributing
Copyright and Licence
---------------------
- Copyright (C) 2020-2022 by Nan Geng <nangeng@nwafu.edu.cn>
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -56,5 +56,3 @@ Copyright and Licence
This package consists of circledtext.sty, circledtext.tex and README.md(this file),
and the derived files circledtext.pdf.
-
-
diff --git a/macros/latex/contrib/circledtext/circledtext.pdf b/macros/latex/contrib/circledtext/circledtext.pdf
index 63396e64fc..bf721ce710 100644
--- a/macros/latex/contrib/circledtext/circledtext.pdf
+++ b/macros/latex/contrib/circledtext/circledtext.pdf
Binary files differ
diff --git a/macros/latex/contrib/circledtext/circledtext.sty b/macros/latex/contrib/circledtext/circledtext.sty
index f70b716814..47c62817e7 100644
--- a/macros/latex/contrib/circledtext/circledtext.sty
+++ b/macros/latex/contrib/circledtext/circledtext.sty
@@ -19,7 +19,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{expl3}
-\ProvidesExplPackage{circledtext}{2022-04-28}{v1.1.0}
+\ProvidesExplPackage{circledtext}{2024-09-09}{v1.1.1}
{Typeset circled text with l3draw}
\RequirePackage { xtemplate, l3keys2e, l3draw, xparse }
@@ -187,18 +187,18 @@
% 正方形边长
\dim_compare:nNnTF \l_tmpa_dim > \l_tmpb_dim
{
- \dim_gset_eq:NN \l__circledtext_char_box_size_dim \l_tmpa_dim
+ \dim_set_eq:NN \l__circledtext_char_box_size_dim \l_tmpa_dim
}
{
- \dim_gset_eq:NN \l__circledtext_char_box_size_dim \l_tmpb_dim
+ \dim_set_eq:NN \l__circledtext_char_box_size_dim \l_tmpb_dim
}
% 设置基字符盒子正方形宽和高(相等)
- \dim_gset_eq:NN \charboxwd \l__circledtext_char_box_size_dim
- \dim_gset_eq:NN \charboxht \l__circledtext_char_box_size_dim
+ \dim_set_eq:NN \charboxwd \l__circledtext_char_box_size_dim
+ \dim_set_eq:NN \charboxht \l__circledtext_char_box_size_dim
% 外接圆半径
- \dim_gset:Nn \l__circledtext_char_box_radius_dim
+ \dim_set:Nn \l__circledtext_char_box_radius_dim
{
\fp_to_dim:n
{
@@ -244,6 +244,8 @@
% 类似\cs_new:cn __circledtext_char_box_construct_type_none:nnnnnn
\cs_new:cn { \__circledtext_char_box_type:n {#1} }
}
+\cs_generate_variant:Nn \__circledtext_new_char_box_construct:nn { V }
+\cs_generate_variant:Nn \__circledtext_new_char_box_construct:nn { x }
% 定义字符边框盒子类型
@@ -328,6 +330,105 @@
}
}
+% 无反色底层填充正方形
+\__circledtext_new_char_box_construct:nn { __lowerfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2, (#4-#4*#6)/2 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充正方形
+\__circledtext_new_char_box_construct:nn { __upperfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2, (#4-#4*#6)/2 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充正方形
+\__circledtext_new_char_box_construct:nn { __shadowfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2 + \charboxwd * 0.1,
+ (#4-#4*#6)/2 - \charboxht * 0.1 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色底层填充内切圆
+\__circledtext_new_char_box_construct:nn { __innerlowerfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充内切圆
+\__circledtext_new_char_box_construct:nn { __innerupperfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充内切圆
+\__circledtext_new_char_box_construct:nn { __innershadowfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { \charboxwd*0.1, -\charboxht*0.1 }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色底层填充外接圆
+\__circledtext_new_char_box_construct:nn { __outerlowerfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充外接圆
+\__circledtext_new_char_box_construct:nn { __outerupperfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充外接圆
+\__circledtext_new_char_box_construct:nn { __outershadowfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { \charboxwd*0.1, -\charboxht*0.1 }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
% 正方形边框
\__circledtext_new_char_box_construct:nn { __squarebox }
{
@@ -499,35 +600,47 @@
}
% 填充内切圆叠加正方形正十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { o+ }
+\clist_map_variable:nNn {o+,+o} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充内切圆叠加内切圆斜十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { ox }
+\clist_map_variable:nNn {ox,xo} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充内切圆叠加内切圆正斜十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { ox+ }
+\clist_map_variable:nNn {ox+,o+x,xo+,x+o,+ox,+xo} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 内切圆斜十字线叠加正十字线
-\__circledtext_new_char_box_construct:nn { x+ }
+\clist_map_variable:nNn {x+,+x} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形边框
@@ -538,35 +651,47 @@
}
% 填充正方形叠加正方形正十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { O+ }
+\clist_map_variable:nNn {O+,+O} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形斜十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { OX }
+\clist_map_variable:nNn {OX,XO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形斜正十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { OX+ }
+\clist_map_variable:nNn {OX+,O+X,XO+,X+O,+OX,+XO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 正方形斜十字线叠加正十字线
-\__circledtext_new_char_box_construct:nn { X+ }
+\clist_map_variable:nNn {X+,+X} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 内切圆叠加同心82%内切圆边框
@@ -578,11 +703,14 @@
}
% 反色正方形叠加内切填充圆
-\__circledtext_new_char_box_construct:nn { Oo }
+\clist_map_variable:nNn {Oo,oO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __negfilledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __negfilledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 正方形叠加同心82%正方形边框
@@ -592,6 +720,53 @@
\__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
\__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {0.82} {0.82}
}
+
+% 3同心圆叠加(类似中国象棋棋子形状)
+\__circledtext_new_char_box_construct:nn { ooo }
+ {
+ % 绘制填充外接圆阴影
+ \__circledtext_char_box_type_c:n { __outershadowfilledcircle }
+ {#1} {#2} {#3} {#4} {1.0} {1.0}
+ % 绘制填充外接圆外圈背景
+ \__circledtext_char_box_type_c:n { __outerlowerfilledcircle }
+ {#1} {#2} {#3} {#4} {#5} {#6}
+ % 绘制填充外接边环背景
+ \__circledtext_char_box_type_c:n { __outerupperfilledcircle }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ % 绘制填充外接圆内圈背景
+ \__circledtext_char_box_type_c:n { __outerlowerfilledcircle }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+ % 绘制双边刻环线
+ \__circledtext_char_box_type_c:n { __outercirclebox }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ \__circledtext_char_box_type_c:n { __outercirclebox }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+
+ }
+
+% 3同心正方形叠加
+\__circledtext_new_char_box_construct:nn { OOO }
+ {
+ % 绘制填充正方形阴影
+ \__circledtext_char_box_type_c:n { __shadowfilledsquare }
+ {#1} {#2} {#3} {#4} {1.0} {1.0}
+ % 绘制填充正方形外圈背景
+ \__circledtext_char_box_type_c:n { __lowerfilledsquare}
+ {#1} {#2} {#3} {#4} {#5} {#6}
+ % 绘制填充正方形边环背景
+ \__circledtext_char_box_type_c:n { __upperfilledsquare}
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ % 绘制填充正方形内圈背景
+ \__circledtext_char_box_type_c:n { __lowerfilledsquare}
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+ % 绘制双边刻环线
+ \__circledtext_char_box_type_c:n { __squarebox }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ \__circledtext_char_box_type_c:n { __squarebox }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+
+ }
+
\msg_new:nnn { circledtext } { box-exists } { The~ box~ type~ `#1~ not~ exists. }
% 缩放类型名称生成函数
@@ -874,6 +1049,49 @@
\cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
{ \color_fill:nn #1 }
} ,
+
+ % 无反色时底层盒子背景填充颜色
+ lowerbgcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { lowerbgboxfill }
+ { yellow!70!red }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { yellow!70!red } }
+ }{ \__circledtext_color_select:nn { lowerbgboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ lowerbgcolor .initial:n = {} ,
+
+ % 无反色时上层盒子背景填充颜色
+ upperbgcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { upperbgboxfill }
+ { yellow!80!black }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { yellow!80!black } }
+ }{ \__circledtext_color_select:nn { upperbgboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ upperbgcolor .initial:n = {} ,
+
+ % 盒子阴影填充颜色
+ shadowcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { shadowboxfill }
+ { black!35!white }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { black!35!white } }
+ }{ \__circledtext_color_select:nn { shadowboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ shadowcolor .initial:n = {} ,
+
% 笔画参数
charstroke .choice:,
charstroke .value_required:n = true,
@@ -965,17 +1183,17 @@
% 复制盒子准备缩放与输出
\coffin_set_eq:NN \l__circledtext_box_coffin \l__circledtext_char_coffin
- % % 测量盒子容器总高度(用内切圆则不需要)
- % \dim_set:Nn \l_tmpa_dim
- % { \__circledtext_coffin_ht_plus_dp:N \l__circledtext_box_coffin }
- % % 缩放字符盒子容器到字符大小
- % \coffin_scale:Nnn \l__circledtext_box_coffin
- % {
- % \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
- % }
- % {
- % \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
- % }
+ % 测量盒子容器总高度(用内切圆则不需要)
+ \dim_set:Nn \l_tmpa_dim
+ { \__circledtext_coffin_ht_plus_dp:N \l__circledtext_box_coffin }
+ % 缩放字符盒子容器到字符大小
+ \coffin_scale:Nnn \l__circledtext_box_coffin
+ {
+ \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
+ }
+ {
+ \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
+ }
% 根据指定的方式缩放盒子
\__circledtext_resize_c:n { \l__circledtext_resize_method_tl }
diff --git a/macros/latex/contrib/circledtext/circledtext.tex b/macros/latex/contrib/circledtext/circledtext.tex
index 2df0d98782..5c52cc15d4 100644
--- a/macros/latex/contrib/circledtext/circledtext.tex
+++ b/macros/latex/contrib/circledtext/circledtext.tex
@@ -119,7 +119,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.1.0} }
+\def\vers{\texttt{v1.1.1} }
\begin{document}
\title{
@@ -488,7 +488,7 @@ starred macro can create negative ``circled'' text.
a macro \tn{circledtextset} to set the format of ``circled''
text.
-\section{Inerface}
+\section{Interface}
\subsection{\cs{circledtext} macro}
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
index abccef5167..9cf5839b1e 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
index 875851d600..cd5b6691d2 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
@@ -40,9 +40,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% MAIN DOCUMENT
\begin{document}
- \title{The \tcthrm package {\footnotesize(v1.0.2)}}
+ \title{The \tcthrm package {\footnotesize(v1.0.4)}}
\author{João M. Lourenço\\\texttt{\small joao.lourenco@fct.unl.pt}}
- \date{March 31, 2024}
+ \date{September 15, 2024}
\maketitle
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem.sty b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
index 4e128bf80b..4d24f77056 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
@@ -14,7 +14,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/06/01]
\ProvidesPackage{coloredtheorem}
- [2024/04/03 v1.0.2 - A colorful boxed theorem environment]
+ [2024/09/15 v1.0.4 - A colorful boxed theorem environment]
\RequirePackage{tcolorbox}
\tcbuselibrary{breakable}
@@ -27,10 +27,11 @@
\expandafter\gdef\csname\tcbth list#1name\endcsname{List of #2s}%
\expandafter\gdef\csname#1autorefname\endcsname{#2}%
\AtEndPreamble{%
- \ifdefined\crefname\expandafter\crefname\csname\tcbth#1\endcsname{#2}{#2s}\fi}%
+ \ifdefined\crefname\expandafter\crefname\expandafter{\tcbth#1}{#2}{#2s}\fi}%
\expandafter\gdef\csname\tcbth listof#1s\endcsname
{%
- \section*{\csname\tcbth list#1name\endcsname}%
+ \ifdefined\chapter\chapter*{\csname\tcbth list#1name\endcsname}%
+ \else\section*{\csname\tcbth list#1name\endcsname}\fi%
\expandafter\@starttoc\expandafter{lo#1}%
}
\expandafter\NewDocumentEnvironment\expandafter{\tcbth#1} {O{} m O{}}%
@@ -53,6 +54,9 @@
~\csname the\tcbth#1\endcsname\fi}~~##2},
#3, ##3,
]%
+ \let\origpar=\par%
+ \def\par{\origpar\medskip}%
+ \ignorespaces%
}{% \end{tcb<SOMETHING>}
\end{tcolorbox}%
\end{center}%
diff --git a/macros/latex/contrib/commalists-tools/README.md b/macros/latex/contrib/commalists-tools/README.md
new file mode 100644
index 0000000000..2691841bce
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/README.md
@@ -0,0 +1,6 @@
+This package provides some macros for manipulating numeral comma separated lists.
+Available tools are adding, removing, counting, testing, reversing, sorting, etc
+---------------------------------------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \ No newline at end of file
diff --git a/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf
new file mode 100644
index 0000000000..0fdf54dbd4
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex
new file mode 100644
index 0000000000..0e33cdd0a3
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex
@@ -0,0 +1,488 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{bera}
+\usepackage{inconsolata}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{commalists-tools}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [commalists-tools]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.4}
+\def\TPdate{24/10/2024}
+\usepackage{tcolorbox}
+\usepackage{pgffor}
+\tcbuselibrary{breakable,skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={commalists-tools},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\sortasclist,\sortdeslist,\addvalinlist,\removevalinlist,\boolvalinlist,\testifvalinlist,\countvalinlist,\minoflist,\maxoflist,\meanoflist,\sumoflist,\prodoflist,\reverselist,\getvaluefromlist,\lenoflist,\getvaluefromlist,\definemylist,\countvalindeflist,\lenofdeflist,\meanofdeflist,\sumofdeflist,\prodofdeflist,\getvaluefromdeflist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={\usepackage,\includegraphics,xstring,listofitems,\readlist,\showitems,\xintFor,\xintSeq},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\sortasclist,\sortdeslist,\addvalinlist,\removevalinlist,\boolvalinlist,\testifvalinlist,\countvalinlist,\minoflist,\maxoflist,\meanoflist,\sumoflist,\prodoflist,\reverselist,\getvaluefromlist,\lenoflist,\getvaluefromlist,\definemylist,\countvalindeflist,\lenofdeflist,\meanofdeflist,\sumofdeflist,\prodofdeflist,\getvaluefromdeflist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+
+\newtcbinputlisting\DemoCodeFile[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=lightgray!10!white,%
+ colbacklower=lightgray!5!white,%
+ colframe=lightgray!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,
+ basicstyle=\scriptsize\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},%
+ %lastline=148
+ },%
+ breakable,
+ listing only,%
+ listing file={#1}
+}
+
+\NewDocumentCommand\ShowCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{c}
+ {\Huge \texttt{commalists-tools}}\\
+ \\
+ {\LARGE Macros for manipulating numeral} \\
+ {\LARGE comma separated lists:} \\
+ {\LARGE sorting, adding, removing, etc} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/commalists-tools}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only}
+\def\mytestlist{14,10,15,11,9,10}
+\lenoflist*{\mytestlist}
+\minoflist*{\mytestlist}
+\maxoflist*{14,10,15,11,9,10}
+\sortasclist*{\mytestlist}
+\meanoflist*{\mytestlist}
+\removevalinlist*{10}{\mytestlist}
+\testifvalinlist{15}{\mytestlist}{true}{false}
+\getvaluefromlist*{\mytestlist}{3}
+\end{tcblisting}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\def\mytestlist{14,10,15,11,9,10}
+We consider the list: \mytestlist\par\smallskip
+There's \lenoflist*{\mytestlist} values in the list\par\smallskip
+The minimum value is \minoflist*{\mytestlist} and the maximum is \maxoflist*{14,10,15,11,9,10}\par\smallskip
+Ascending sorted list is \sortasclist*{\mytestlist}\par\smallskip
+Meaning value of the list is \meanoflist*{\mytestlist}\par\smallskip
+If we remove the value 10, then the list is \removevalinlist*{10}{\mytestlist}\par\smallskip
+We test if 15 is in the list: \testifvalinlist{15}{\mytestlist}{true}{false}\par\smallskip
+The third value of the list is \getvaluefromlist*{\mytestlist}{3}
+
+\end{tcolorbox}
+
+\vfill~
+
+%\hrule
+%
+%\medskip
+
+%\emph{%
+% The \textsf{luarandom} package do the same things, but with the obligation to compile with \hologo{LuaLaTeX}.
+%}
+%
+%\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Loading, useful packages}
+
+In order to load \texttt{randintlist}, simply use:
+
+\begin{DemoCode}{listing only}
+\usepackage{commalists-tools}
+\end{DemoCode}
+
+Loaded packages are \texttt{listofitems}, \texttt{xintexpr} and \texttt{xstring}.
+
+\smallskip
+
+The idea is to propose "reusage" of lists with \texttt{listofitems} or other commands, for example.
+
+\section{The individual macros}
+
+\subsection{Global usage}
+
+Package \texttt{commalists-tools} supports (basic) manipulations on numeral comma separated lists:
+
+\begin{itemize}
+ \item sorting;
+ \item adding values;
+ \item removing values;
+ \item counting values;
+ \item mean, sum, product;
+ \item get value, get length;
+ \item etc.
+\end{itemize}
+
+Starred versions only print the result, whereas non starred versions store the result into a macro.
+
+\medskip
+
+\hfill\textbf{All engines \TeX\ are compatible with this package.}\hfill~
+
+\subsection{The macros for calculating}
+
+\begin{DemoCode}{listing only}
+%getting length of list, only printing
+\lenoflist*{list}
+%storing length of list into macro (\resmylen by default)
+\lenoflist{list}
+%getting min of list, only printing
+\minoflist*{list}
+%storing min of list into \macro (\resmin by default)
+\minoflist{list}[\macro]
+%getting max of list, only printing
+\maxoflist*{list}
+%storing max of list into \macro (\resmax by default)
+\maxoflist{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\lenoflist*{14,10,15,11,9,10}\\
+%only printing
+\minoflist*{14,10,15,11,9,10} and \maxoflist*{14,10,15,11,9,10}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%storing len/min/max of list
+\def\mytestlist{10,14.5,20,12,8.5}
+\lenoflist{\mytestlist}[\mylen]Length of list is \mylen\ \&
+\minoflist{\mytestlist}[\mymin]Min of list is \mymin\ \&
+\maxoflist{\mytestlist}[\mymax]Max of list is \mymax
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%getting mean of list, only printing
+\meanoflist*{list}
+%storing mean of list into \macro (\resmean by default)
+\meanoflist{list}[\macro]
+%getting sum of list, only printing
+\sumoflist*{list}
+%storing max of list into \macro (\ressum by default)
+\sumoflist{list}[\macro]
+%getting prod of list, only printing
+\prodoflist*{list}
+%storing max of list into \macro (\resprod by default)
+\prodoflist{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\meanoflist*{14,10,15,11,9,10} \\
+%storing
+\meanoflist{14,10,15,11,9,10}[\mymean]\mymean \\
+%only printing
+\sumoflist*{14,10,15,11,9,10} and \prodoflist*{14,10,15,11,9,10} \\
+%storing
+\sumoflist{14,10,15,11,9,10}[\mysum]\prodoflist{14,10,15,11,9,10}[\myprod]
+The sum is \mysum\ and the prod is \myprod
+\end{DemoCode}
+
+\subsection{Macros for manipulating}
+
+\begin{DemoCode}{listing only}
+%sorting (asc), only printing
+\sortasclist*{list}
+%sorting (asc) and storing (overwrite)
+\sortasclist{list}
+%sorting (des), only printing
+\sortdeslist*{list}
+%sorting (des) and storing (overwrite)
+\sortdeslist{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%sorting (asc), only printing
+\sortasclist*{14,10,15,11.5,9,10}\\
+%sorting (asc) and storing (overwrite)
+\def\tmpsortlist{14,10,15,11.5,9,10}
+\sortasclist{\tmpsortlist}\tmpsortlist\\
+%analysing
+\readlist*\tmpSORTlist{\tmpsortlist}
+\showitems{\tmpSORTlist}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%extract value, only printing
+\getvaluefromlist*{list}{index}
+%extract value and storing into macro (\myelt by default)
+\getvaluefromlist{list}{index}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%extract value, only printing
+\def\listtmp{1,2,3,6,3,1,5,7,3}%
+\getvaluefromlist*{\listtmp}{4}\par\smallskip
+%storing
+\getvaluefromlist{\listtmp}{-1}[\mylastelt]The last element is \mylastelt
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%sorting (des), only printing
+\sortdeslist*{14,10,15,11.5,9,10}\\
+%sorting (asc) and storing (overwrite)
+\def\tmpsortlist{14,10,15,11.5,9,10}
+\sortdeslist{\tmpsortlist}\tmpsortlist\\
+%analysing
+\readlist*\tmpSORTlist{\tmpsortlist}
+\showitems{\tmpSORTlist}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%adding, only printing
+\addvalinlist*{values}{list}
+%adding and storing (overwrite)
+\addvalinlist{values}{list}
+%removing, only printing
+\removevalinlist*{value}{list}
+%removing and storing (overwrite)
+\removevalinlist{value}{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\addvalinlist*{3}{1,2,5,6}\\
+%defining and adding
+\def\tmpaddlist{1,2,4,5,6}
+\addvalinlist{3}{\tmpaddlist}\tmpaddlist\\
+%analysing
+\readlist*\tmpADDlist{\tmpaddlist}
+\showitems{\tmpADDlist}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\removevalinlist*{3}{1,2,3,6,3,1,5,7,3}\\
+%defining and removing
+\def\tmpremlist{1,2,3,6,3,1,5,7,3}
+\removevalinlist{3}{\tmpremlist}\tmpremlist\\
+%analysing
+\readlist*\tmpREMlist{\tmpremlist}
+\showitems{\tmpREMlist}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%reversing, only printing
+\reverselist*{list}
+%reversing and storing (overwrite)
+\reverselist{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\reverselist*{14,10,15,11,9,10}\\
+%reversing and storing
+%storing
+\reverselist{14,10,15,11,9,10}[\myreverse]\myreverse\\
+%analysing
+\readlist*\tmpREVERSElist{\myreverse}
+\showitems{\tmpREVERSElist}
+\end{DemoCode}
+
+\subsection{Macros with testing}
+
+\begin{DemoCode}{listing only}
+%testing if value is in list, with boolean result in \macro (\resisinlist by default)
+\boolvalinlist{value}{list}[\macro]
+%conditionnal test if value is in list, according to xint syntax
+\testifvalinlist{3}{0,1,2,3}{true}{false}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%test with xint syntax
+\testifvalinlist{-1}{0,1,2,3}{true}{false}\\
+%test with xint syntax
+\testifvalinlist{3}{0,1,2,3}{true}{false}\\
+%boolean macro
+\def\myteslist{0,5,10,5,6,9,7,8}
+\boolvalinlist{5}{\myteslist}[\resisinlist]\resisinlist
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%counting value, only printing
+\countvalinlist*{value}{list}
+%counting value, with result in \macro (\rescount by default)
+\countvalinlist{value}{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\countvalinlist*{8}{1,2,3,4,5,6,6,7,8,8,8,9}\\
+%storing
+\def\tmpcountlist{1,2,3,4,5,6,6,7,8,8,8,9}
+\countvalinlist{6}{\tmpcountlist}[\rescountsix]\rescountsix\\
+\countvalinlist{10}{\tmpcountlist}[\rescountten]\rescountten
+\end{DemoCode}
+
+\pagebreak
+
+\section{Macros for already processed lists}
+
+In order to speed up the process, it's possible to "define" a list (processed with \texttt{listofitems}) and the to call specific macros.
+
+\begin{DemoCode}{listing only}
+%define a list, to be processed by listofitems
+\definemylist{rawlist}{processed list}
+
+%Specific macros (same specs as above)
+\lenofdeflist(*){processed list, without \ !}[\macro]
+\countvalindeflist(*){val}{processed list, without \ !}[\macro]
+\meanofdeflist(*){processed list, without \ !}[\macro]
+\sumofdeflist(*){processed list, without \ !}[\macro]
+\prodofdeflist(*){processed list, without \ !}[\macro]
+\getvaluefromdeflist(*){processed list, without \ !}{index}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%define a list, to be processed by listofitems
+\definemylist{1,4,5,6,7,8,9,19,9,9,10}{\mydeflist}\showitems{\mydeflist}
+
+%Specific macros
+\lenofdeflist*{mydeflist}\\
+\getvaluefromdeflist*{mydeflist}{5}\\
+\countvalindeflist*{9}{mydeflist}\\
+\meanofdeflist*{mydeflist}\\
+\sumofdeflist*{mydeflist}\\
+\prodofdeflist*{mydeflist}
+\end{DemoCode}
+
+If the list needs to be "modified" (add, remove, reverse) the best is to use individual macros, and after use \textit{define} and specific macros :-)
+
+\pagebreak
+
+\section{History}
+
+\texttt{0.1.3: Changing name of macro}
+
+\texttt{0.1.3: Duplicate macro with ProfMaquette (so new name)}
+
+\texttt{0.1.2: Alternative macros for already treated lists}
+
+\texttt{0.1.1: Compatibility with decimals, len of list, get value}
+
+\texttt{0.1.0: Initial version}
+
+\section{The code}
+
+\DemoCodeFile{commalists-tools.sty}
+
+\end{document}
diff --git a/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty b/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty
new file mode 100644
index 0000000000..42208feaaa
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty
@@ -0,0 +1,269 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{commalists-tools}[2024/10/24 0.1.4 Basic operations for numeral comma separated lists]
+
+%------History
+% 0.1.4 Change name of macro
+% 0.1.3 Duplicate macro with ProfMaquette (so new name)
+% 0.1.2 New versions with already traited lists
+% 0.1.1 Sorting with decimals (!)
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{listofitems}
+\RequirePackage{xintexpr}
+\RequirePackage{xstring}
+
+%-----Macros (LaTeX3...) for sorting
+\ExplSyntaxOn
+\NewDocumentCommand\sortasclist{ s m }
+{
+ \clist_set:Nx \l_foo_clist {#2}
+ \clist_sort:Nn \l_foo_clist{
+ \fp_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ {\l_foo_clist}%
+ }%
+ {%
+ \xdef#2{\l_foo_clist}%
+ }%
+}
+
+\NewDocumentCommand\sortdeslist{ s m }
+{
+ \clist_set:Nx \l_foo_clist {#2}
+ \clist_sort:Nn \l_foo_clist{
+ \fp_compare:nNnTF { ##1 } < { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ {\l_foo_clist}%
+ }%
+ {%
+ \xdef#2{\l_foo_clist}%
+ }%
+}
+\ExplSyntaxOff
+
+%----Macros (LaTeX2)
+\NewDocumentCommand\addvalinlist{ s m m }{%
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ #3,#2%
+ }%
+ {%
+ \xdef#3{#3,#2}%
+ }%
+}
+
+\NewDocumentCommand\definemylist{ m m }{%
+ %1 = raw list
+ %2 = traited list with listofitems
+ \readlist*#2{#1}%
+}
+
+\NewDocumentCommand\removevalinlist{ s m m }{%
+ \readlist*\tmplistread{#3}%
+ \xdef\tmpresremovelist{}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmplistreadlen}}\do{%
+ \xintifboolexpr{ \tmplistread[##1] == #2}%
+ {}%
+ {%
+ \xintifboolexpr{ ##1 == 1 }%
+ {%
+ \xdef\tmpresremovelist{\tmplistread[##1]}%
+ }%
+ {%
+ \xdef\tmpresremovelist{\tmpresremovelist,\tmplistread[##1]}%
+ }%
+ }%
+ }%
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ \tmpresremovelist%
+ }%
+ {%
+ \xdef#3{\tmpresremovelist}%
+ }%
+}
+
+\NewDocumentCommand\boolvalinlist{ m m O{\resisinlist} }{%
+ \IfSubStr{,#2,}{,#1,}{\def#3{1}}{\def#3{0}}%
+}
+
+\NewDocumentCommand\testifvalinlist{ m m m m }{%
+ \IfSubStr{,#2,}{,#1,}{\xdef\RESTMPVALUE{1}}{\xdef\RESTMPVALUE{0}}%
+ \xintifboolexpr{ \RESTMPVALUE == 1}{#3}{#4}%
+}
+
+\NewDocumentCommand\countvalinlist{ s m m O{\rescount} }{%
+ \readlist*\tmplistread{#3}%
+ \xdef#4{0}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmplistreadlen}}\do{%
+ \xintifboolexpr{ \tmplistread[##1] == #2}%
+ {%
+ \xdef#4{\fpeval{#4+1}}%
+ }%
+ {}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #4%
+ }%
+}
+
+\NewDocumentCommand\countvalindeflist{ s m m O{\rescount} }{%
+ %\readlist*\tmplistread{#3}%
+ \xdef#4{0}%
+ \xintFor* ##1 in {\xintSeq{1}{\csname#3len\endcsname}}\do{%
+ \xintifboolexpr{ \csname#3\endcsname[##1] == #2}%
+ {%
+ \xdef#4{\fpeval{#4+1}}%
+ }%
+ {}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #4%
+ }%
+}
+
+\NewDocumentCommand\minoflist{ s m O{\resmin} }{%
+ \IfBooleanTF{#1}%
+ {%
+ \fpeval{min(#2)}%
+ }%
+ {%
+ \xdef#3{\fpeval{min(#2)}}%
+ }%
+}
+
+\NewDocumentCommand\maxoflist{ s m O{\resmax} }{%
+ \IfBooleanTF{#1}%
+ {%
+ \fpeval{max(#2)}%
+ }%
+ {%
+ \xdef#3{\fpeval{max(#2)}}%
+ }%
+}
+
+\NewDocumentCommand\meanoflist{ s m O{\resmean} }{%
+ \xdef#3{0}%
+ \readlist*\tmpmeanlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpmeanlistlen}}\do{%
+ \xdef#3{\fpeval{#3+\tmpmeanlist[##1]}}%
+ }%
+ \xdef#3{\fpeval{(#3)/\tmpmeanlistlen}}%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\meanofdeflist{ s m O{\resmean} }{%
+ \xdef#3{0}%
+ %\readlist*\tmpmeanlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\csname#2len\endcsname}}\do{%
+ \xdef#3{\fpeval{#3+\csname#2\endcsname[##1]}}%
+ }%
+ \xdef#3{\fpeval{(#3)/\csname#2len\endcsname}}%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\sumoflist{ s m O{\ressum} }{%
+ \xdef#3{0}%
+ \readlist*\tmpsumlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpsumlistlen}}\do{%
+ \xdef#3{\fpeval{#3+\tmpsumlist[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\sumofdeflist{ s m O{\ressum} }{%
+ \xdef#3{0}%
+ %\readlist*\tmpsumlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\csname#2len\endcsname}}\do{%
+ \xdef#3{\fpeval{#3+\csname#2\endcsname[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\prodoflist{ s m O{\resprod} }{%
+ \xdef#3{1}%
+ \readlist*\tmpprodlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpprodlistlen}}\do{%
+ \xdef#3{\fpeval{(#3)*\tmpprodlist[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\prodofdeflist{ s m O{\resprod} }{%
+ \xdef#3{1}%
+ \readlist*\tmpprodlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\csname#2len\endcsname}}\do{%
+ \xdef#3{\fpeval{(#3)*\csname#2\endcsname[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\reverselist{ s m O{\resrevlist} }{%
+ \readlist*\tmpreverselist{#2}%
+ \xdef#3{\tmpreverselist[-1]}%
+ \xintFor* ##1 in {\xintSeq{2}{\tmpreverselistlen}}\do{%
+ \xdef#3{#3,\tmpreverselist[-##1]}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\getvaluefromlist{ s m m O{\resmyelt} }{%
+ \readlist*\tmpreadlist{#2}%
+ \xdef#4{\tmpreadlist[#3]}%
+ \IfBooleanT{#1}{#4}%
+}
+
+\NewDocumentCommand\getvaluefromdeflist{ s m m O{\resmyelt} }{%
+ %\readlist*\tmpreadlist{#2}%
+ \xdef#4{\csname#2\endcsname[#3]}%
+ \IfBooleanT{#1}{#4}%
+}
+
+\NewDocumentCommand\lenoflist{ s m O{\resmylen} }{%
+ \readlist*\tmpreadlist{#2}%
+ \xdef#3{\tmpreadlistlen}%
+ \IfBooleanT{#1}{#3}%
+}
+
+\NewDocumentCommand\lenofdeflist{ s m O{\resmylen} }{%
+ %\readlist*\tmpreadlist{#2}%
+ \xdef#3{\csname#2len\endcsname}%
+ \IfBooleanT{#1}{#3}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/cora-macs/LICENSE b/macros/latex/contrib/cora-macs/LICENSE
new file mode 100644
index 0000000000..bbcc4848cc
--- /dev/null
+++ b/macros/latex/contrib/cora-macs/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Tobias Ladner, Lukas Koller
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/cora-macs/README.md b/macros/latex/contrib/cora-macs/README.md
new file mode 100644
index 0000000000..7cf36ee8af
--- /dev/null
+++ b/macros/latex/contrib/cora-macs/README.md
@@ -0,0 +1,91 @@
+# `cora-macs` LaTeX Package
+
+## Overview
+
+The `cora-macs` package is a LaTeX package designed to assist in the representation and manipulation of continuous sets, operations, neural networks, and color schemes tailored for use in the context of cyber-physical systems. It provides a comprehensive set of macros that streamline the process of documenting complex mathematical objects and operations.
+
+## Authors
+
+- **Tobias Ladner**
+- **Lukas Koller**
+
+TUM - Cyber-Physical Systems Group
+
+Visit our website: [TUM CPS Group](https://www.ce.cit.tum.de/cps)
+
+## Features
+
+- **Continuous Sets**: Macros for defining and working with intervals, zonotopes, polynomial zonotopes, and other set-based representations.
+- **Operations**: A collection of macros for common mathematical operations used in cyber-physical systems analysis.
+- **Neural Networks**: Notations for layers, activations, set propagation, and more.
+- **Color Schemes**: Predefined color palettes including TUM-specific colors and custom `cora-macs` colors.
+
+## Installation
+
+To use the `cora-macs` package in your LaTeX documents, follow these steps:
+
+1. **Download the Package**: Download the `cora-macs.sty` file and save it to your project directory or in a directory where LaTeX can find it (e.g., in the local `texmf` tree).
+
+2. **Include the Package**: Add the following line to the preamble of your LaTeX document:
+ ```latex
+ \usepackage[options]{cora-macs}
+ ```
+ Replace `[options]` with the desired options (e.g., `sets`, `operations`, `nn`, `colors`, `tumcolors`).
+
+## Usage
+
+### Basic Example
+
+Here’s a simple example of how to use some of the features provided by the `cora-macs` package:
+
+```latex
+\documentclass{article}
+\usepackage[sets, operations]{cora-macs}
+
+\begin{document}
+
+% Define a set
+\contSet{X} = \shortContSet{a}{b}{X}
+
+% Use an operation
+\diag{A} = \operator{diag}{A}
+
+\end{document}
+```
+
+### Options
+
+- **`sets`**: Enables macros for working with continuous sets.
+- **`operations`**: Enables macros for common operations in mathematical analysis.
+- **`nn`**: Enables macros related to neural networks.
+- **`colors`**: Defines a set of colors specific to the `cora-macs` package.
+- **`tumcolors`**: Defines TUM-specific colors.
+
+You can combine these options as needed when including the package.
+
+## Documentation
+
+For detailed documentation, including a complete list of commands and options, please refer to the [documentation](./documentation.pdf).
+
+## License
+
+This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.
+
+## Acknowledgments
+
+This package was developed as part of the work done by the Cyber-Physical Systems Group at TUM. We would like to thank the contributors and users who provided valuable feedback.
+
+## Contributing
+
+If you wish to contribute to the `cora-macs` package, feel free to submit a pull request or open an issue on the repository.
+
+## Contact
+
+For questions, issues, or suggestions, please contact:
+
+- Tobias Ladner - [tobias.ladner@tum.de](mailto:tobias.ladner@tum.de)
+- Lukas Koller - [lukas.koller@tum.de](mailto:lukas.koller@tum.de)
+
+---
+
+Developed at TUM - Cyber-Physical Systems Group \ No newline at end of file
diff --git a/macros/latex/contrib/cora-macs/cora-macs-doc.pdf b/macros/latex/contrib/cora-macs/cora-macs-doc.pdf
new file mode 100644
index 0000000000..4da722f6c4
--- /dev/null
+++ b/macros/latex/contrib/cora-macs/cora-macs-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/cora-macs/cora-macs-doc.tex b/macros/latex/contrib/cora-macs/cora-macs-doc.tex
new file mode 100644
index 0000000000..825fe50836
--- /dev/null
+++ b/macros/latex/contrib/cora-macs/cora-macs-doc.tex
@@ -0,0 +1,119 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{hyperref}
+\usepackage[sets,operations,nn,colors]{cora-macs}
+
+\title{The \texttt{cora-macs} Package}
+\author{Tobias Ladner, Lukas Koller\\
+ TUM - Cyber-Physical Systems Group\\
+ \texttt{\small tobias.ladner@tum.de, lukas.koller@tum.de}}
+\date{2024-10-25}
+
+\begin{document}
+\maketitle
+
+\begin{abstract}
+The \texttt{cora-macs} package provides tools for working with continuous sets, operations, neural networks, and color schemes tailored for use in the context of cyber-physical systems. This document serves as the official documentation for the package, detailing the available commands and options.
+\end{abstract}
+
+\tableofcontents
+
+\section{Introduction}
+The \texttt{cora-macs} package is designed to assist in the representation and manipulation of various mathematical objects such as sets, intervals, zonotopes, and operations often encountered in cyber-physical systems analysis. It also includes predefined color schemes based on the TUM corporate design and other custom colors.
+
+\section{Installation}
+To install the \texttt{cora-macs} package, follow these steps:
+\begin{enumerate}
+ \item Place the \texttt{cora.sty} file in your working directory or in a directory where LaTeX can find it (e.g., in the local \texttt{texmf} tree).
+ \item Include the package in your LaTeX document with the command:
+ \begin{verbatim}
+ \usepackage{cora}
+ \end{verbatim}
+\end{enumerate}
+
+\section{Package Options}
+The \texttt{cora-macs} package provides several options that can be passed when loading the package. These options control the inclusion of different sets of commands.
+
+\begin{itemize}
+ \item \texttt{sets}: Includes commands for continuous set notation and operations.
+ \item \texttt{operations}: Includes commands for various mathematical operations.
+ \item \texttt{nn}: Includes commands for working with neural networks.
+ \item \texttt{colors}: Defines a set of colors specific to the \texttt{cora-macs} package.
+ \item \texttt{tumcolors}: Defines TUM-specific colors.
+\end{itemize}
+
+Example usage:
+\begin{verbatim}
+\usepackage[sets, operations]{cora}
+\end{verbatim}
+
+\section{Commands and Environments}
+
+\subsection{Sets (\texttt{sets} option)}
+When the \texttt{sets} option is enabled, the package provides several commands for defining and manipulating continuous sets.
+
+\begin{itemize}
+ \item \texttt{\textbackslash contSet\{name\}}: Defines a set in calligraphic font, e.g., $\contSet{A}$.
+ \item \texttt{\textbackslash shortContSet[abbr]\{content\}\{set\}}: Defines a short-hand notation for continuous sets with optional abbreviation.
+ \item \texttt{\textbackslash defContSet\{elements\}\{conditions\}}: Defines a set using the format $\{x \mid \text{conditions}\}$.
+ \item \texttt{\textbackslash defContSetSplit\{elements\}\{conditions\}}: Defines a set with split conditions for better formatting in large equations.
+ \item \texttt{\textbackslash shortI\{a\}\{b\}}: Defines a closed interval $[a, b]$.
+ \item \texttt{\textbackslash defZ}: Defines a zonotope.
+ \item \texttt{\textbackslash defPZ}: Defines a polynomial zonotope.
+\end{itemize}
+
+\subsection{Operations (\texttt{operations} option)}
+Enabling the \texttt{operations} option introduces a variety of operations that are useful in mathematical and cyber-physical systems contexts.
+
+\begin{itemize}
+ \item \texttt{\textbackslash operator\{name\}\{args\}}: Defines a custom operator with the given name and arguments.
+ \item \texttt{\textbackslash opEnclose\{set1\}\{set2\}}: Encapsulates a set within another.
+ \item \texttt{\textbackslash opIntervalEnclosure\{interval\}}: Specifies an interval enclosure.
+ \item \texttt{\textbackslash opProject\{dimension\}}: Projects a set onto a given dimension.
+ \item \texttt{\textbackslash diag\{matrix\}}: Produces the diagonal matrix of the given input.
+\end{itemize}
+
+\subsection{Neural Networks (\texttt{nn} option)}
+The \texttt{nn} option introduces commands related to neural networks, including notation for layers, inputs, outputs, and propagations.
+
+\begin{itemize}
+ \item \texttt{\textbackslash NN}: Represents the symbol for a neural network $\NN$.
+ \item \texttt{\textbackslash nnLayer\{layer\}\{input\}}: Represents a neural network layer with a specified input.
+ \item \texttt{\textbackslash nnInput}, \texttt{\textbackslash nnOutput}: Notation for input and output points in a neural network.
+\end{itemize}
+
+\subsection{Colors (\texttt{colors} and \texttt{tumcolors} options)}
+The \texttt{colors} and \texttt{tumcolors} options define a variety of colors that can be used in your documents.
+
+\begin{itemize}
+ \item \texttt{\textbackslash definecolor\{CORAcolorReachSet\}}: A predefined color for reachability sets (blue).
+ \item \texttt{\textbackslash definecolor\{TUMblue\}}: TUM corporate blue color.
+\end{itemize}
+
+\section{Examples}
+Here are some examples demonstrating how to use the commands from the \texttt{cora-macs} package.
+
+\subsection{Set Notation}
+\begin{verbatim}
+\contSet{X} = \shortContSet{a}{b}{X}
+\end{verbatim}
+This code will produce $\contSet{X} = \left<a, b\right>_X$.
+
+\subsection{Operations}
+\begin{verbatim}
+\diag{A} = \operator{diag}{A}
+\end{verbatim}
+This code will produce $\diag{A} = \text{\normalfont\small diag}(A)$.
+
+\subsection{Neural Networks}
+\begin{verbatim}
+\NN(\nnInput) = \nnLayer{1}{\nnInput}
+\end{verbatim}
+This code will produce $\NN(\nnInput) = L_1(\nnInput)$.
+
+\section{Concluding Remarks}
+The \texttt{cora-macs} package offers a comprehensive set of tools for researchers working in cyber-physical systems. By providing a consistent notation and color scheme, this package simplifies the process of documenting complex mathematical objects and operations.
+
+For more information, visit the \href{https://www.ce.cit.tum.de/cps}{TUM CPS Group website}.
+\end{document}
diff --git a/macros/latex/contrib/cora-macs/cora-macs.sty b/macros/latex/contrib/cora-macs/cora-macs.sty
new file mode 100644
index 0000000000..3fcee03d45
--- /dev/null
+++ b/macros/latex/contrib/cora-macs/cora-macs.sty
@@ -0,0 +1,198 @@
+
+% package information --------------------------------------------------------------------------------------------------
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cora-macs}[2024-10-25]
+
+% Authors: Tobias Ladner, Lukas Koller
+% TUM - Cyber-Physical Systems Group
+% Website: https://www.ce.cit.tum.de/cps
+
+% Based on: https://www.overleaf.com/learn/latex/Writing_your_own_package
+
+% required packages ----------------------------------------------------------------------------------------------------
+
+\RequirePackage{xifthen}
+\RequirePackage{xstring}
+\RequirePackage{amsfonts}
+\RequirePackage{xcolor}
+
+% pre-processing -------------------------------------------------------------------------------------------------------
+
+% for better logging
+\newcommand{\DeclareCORAOption}[2]{
+ \DeclareOption{#1}{
+ % display information
+ \PackageInfo{cora-macs}{Loading '#1' option..}
+ % content
+ #2
+ }
+}
+
+% nice to have
+\providecommand{\R}{\ensuremath{\mathbb{R}}}
+\providecommand{\N}{\ensuremath{\mathbb{N}}}
+
+% all sets should be written in mathcal
+\newcommand{\contSet}[1]{\ensuremath{\mathcal{#1}}}
+
+% process options ------------------------------------------------------------------------------------------------------
+
+\DeclareCORAOption{sets}{ % --- continuous sets
+ % contSet ---
+
+ % formatting
+ \newcommand{\neghphantom}[1]{\settowidth{\dimen0}{#1}\hspace*{-\dimen0}}
+
+ % short-hand notation (including nice punctuation for large sets)
+ \newcommand{\shortContSet}[3][]{\ensuremath{% \defContSet[punctuation]{abbreviation}{cs parameters of set}
+ \left<#2\right>_{#3\,}%
+ \ifthenelse{\isempty{#1}}% add abbreviation
+ {} % none given
+ {\neghphantom{\scriptsize #3}#1\neghphantom{#1}\hphantom{\scriptsize #3}}
+ }}
+ \newcommand{\defContSet}[2]{\left\{ #1 \ \middle|\ #2 \right\}}
+ \newcommand{\defContSetSplit}[2]{\left\{ #1 \vphantom{#2} \ \right| \\ &\qquad \left. \vphantom{#1} #2 \right\}}
+
+ % interval ---
+ \providecommand{\I}{\contSet{I}}
+ \newcommand{\shortI}[2]{\ensuremath{\left[#1,#2\right]}}
+
+ % zonotope ---
+ \providecommand{\Z}{\contSet{Z}}
+ \newcommand{\shortZ}[3][]{\shortContSet[#1]{#2,#3}{Z}}
+ \newcommand{\defZ}{\left\{ c + \sum_{i=1}^{p} \beta_i G_{(\cdot,i)} ~\middle|~ \beta_i \in [-1,1] \right\}}
+
+ % polynomial zonotope ---
+ \providecommand{\PZ}{\contSet{PZ}}
+ \newcommand{\shortPZ}[5][]{\shortContSet[#1]{#2,#3,#4,#5}{PZ}}
+ \newcommand{\defPZmain}{c + \sum_{i=1}^h \left(\prod_{k=1}^p \alpha_k^{E_{(k,i)}}\right) G_{(\cdot, i)} + \sum_{j=1}^{q} \beta_j G_{I(\cdot, j)}}
+ \newcommand{\defPZcond}{\alpha_k, \beta_j \in \left[-1,1\right]}
+ \newcommand{\defPZ}{\defContSet{\defPZmain}{\defPZcond}}
+ \newcommand{\defPZSplit}{\defContSetSplit{\defPZmain}{\defPZcond}}
+}
+
+
+\DeclareCORAOption{operations}{ % --- operations
+
+ % define monospace operator including inline operator
+ \newcommand{\operator}[3][]{%
+ \text{\normalfont\small#2}%
+ \IfSubStr{#1}{inline}% if inline
+ {(#3)}% no \left/\right
+ {\left(#3\right)}}
+ \newcommand{\operatortt}[3][]{\operator[#1]{{\ensuremath{\mathtt{#2}}}}{#3}}
+
+ % enclosure
+ \newcommand{\opEnclose}[3][]{\operatortt[#1]{enclose}{#2,#3}}
+ \newcommand{\opEnclosePrime}[3][]{\operatortt[#1]{enclose}{#2,#3}}
+ \newcommand{\opIntervalEnclosure}[2][]{\operatortt[#1]{interval}{#2}}
+ \newcommand{\opBoxEnclosure}[2][]{\operatortt[#1]{box}{#2}}
+ \newcommand{\opBound}[2][]{\operatortt[#1]{bound}{#1}}
+ \newcommand{\opZonotopeEnclosure}[2][]{\operatortt[#1]{zonotope}{#2}}
+ \newcommand{\opZonoEnclosure}[2][]{\operatortt[#1]{zono}{#2}}
+ \newcommand{\opPolyZonotopeEnclosure}[2][]{\operatortt[#1]{polyZonotope}{#2}}
+ \newcommand{\opPolyZonoEnclosure}[2][]{\operatortt[#1]{polyZono}{#2}}
+
+ % further operations
+ \newcommand{\opProject}[2][]{\operatortt{project}{#2}}
+
+ % operations that should be stantard latex operations
+ \newcommand{\diag}[2][]{\operator[#1]{diag}{#2}}
+ \providecommand{\Diag}[2][]{\operator[#1]{Diag}{#2}}
+ \providecommand{\mod}[3][]{\operator[#1]{mod}{#2,#3}}
+ \newcommand{\dia}[2][]{\operator[#1]{dia}{#2}}
+ \newcommand{\sign}[2][]{\operator[#1]{sign}{#2}}
+}
+
+
+\DeclareCORAOption{nn}{ % ------ neural networks
+
+ % neural network
+ \newcommand{\NN}[0]{\ensuremath{\Phi}}
+ \newcommand{\numLayers}[0]{\ensuremath{\kappa}}
+ \newcommand{\numNeurons}[0]{\ensuremath{n}}
+
+ % layers
+ \newcommand{\nnLayerName}[2]{\ensuremath{L_{#1}^\text{#2}}}
+ \newcommand{\nnLayer}[3]{\ensuremath{\nnLayerName{#1}{#2}\left(#3\right)}}
+ \newcommand{\nnActFun}{\ensuremath{\phi}}
+ \newcommand{\actfun}{\nnActFun} % remove?
+
+ % point propagation
+ \newcommand{\nnInput}[0]{\ensuremath{x}}
+ \newcommand{\nnHidden}[0]{\ensuremath{h}}
+ \newcommand{\nnOutput}[0]{\ensuremath{y}}
+ \newcommand{\nnGrad}{\ensuremath{g}}
+
+ % set propagation
+ \newcommand{\nnInputSet}[0]{\contSet{X}}
+ \newcommand{\nnHiddenSet}[0]{\contSet{H}}
+ \newcommand{\nnHiddenSetExact}[0]{\nnHiddenSet^*}
+ \newcommand{\nnOutputSet}[0]{\contSet{Y}}
+ \newcommand{\nnOutputSetExact}[0]{\nnOutputSet^*}
+ \newcommand{\nnGradSet}{\contSet{G}}
+
+ % set-based training
+ \newcommand{\nnTarget}{\ensuremath{t}}
+
+ % other
+ \newcommand{\nnPertRadius}{\epsilon}
+
+ % specification
+ \newcommand{\unsafeSet}[0]{\contSet{S}}
+
+}
+
+% --- colors
+
+\DeclareCORAOption{colors}{ % --- cora colors
+
+ % cora colors (see CORAcolor in cora)
+ \definecolor{CORAcolorReachSet}{rgb}{0.2706, 0.5882, 1.0000} % blue
+ \definecolor{CORAcolorReachSet2}{rgb}{0.6902, 0.8235, 1.0000} % light-blue
+ \definecolor{CORAcolorOnitialSet}{rgb}{1, 1, 1} % white
+ \definecolor{CORAcolorFinalSet}{rgb}{0.9000, 0.9000, 0.9000} % light-gray
+ \definecolor{CORAcolorSimulations}{rgb}{0.9000, 0.9000, 0.9000} % black
+ \definecolor{CORAcolorUnsafe}{rgb}{0.9451, 0.5529, 0.5686} % red
+ \definecolor{CORAcolorUnsafeLight}{rgb}{0.9059, 0.7373, 0.7373} % light red
+ \definecolor{CORAcolorSafe}{rgb}{0.4706, 0.7725, 0.4980} % light green
+ \colorlet{CORAcolorInvariant}{CORAcolorSafe} % light green
+
+ % default colors (also default matlab colors)
+ \definecolor{CORAcolorBlue}{rgb}{0, 0.4470, 0.7410}
+ \definecolor{CORAcolorRed}{rgb}{0.8500, 0.3250, 0.0980}
+ \definecolor{CORAcolorYellow}{rgb}{0.9290, 0.6940, 0.1250}
+ \definecolor{CORAcolorPurple}{rgb}{0.4940, 0.1840, 0.5560}
+ \definecolor{CORAcolorGreen}{rgb}{0.4660, 0.6740, 0.1880}
+ \definecolor{CORAcolorLightBlue}{rgb}{0.3010, 0.7450, 0.9330}
+ \definecolor{CORAcolorDarkRed}{rgb}{0.6350, 0.0780, 0.1840}
+
+ % define order of colors (see useCORAcolors in cora)
+ \colorlet{CORAcolor1}{CORAcolorBlue}
+ \colorlet{CORAcolor2}{CORAcolorRed}
+ \colorlet{CORAcolor3}{CORAcolorYellow}
+ \colorlet{CORAcolor4}{CORAcolorPurple}
+ \colorlet{CORAcolor5}{CORAcolorGreen}
+ \colorlet{CORAcolor6}{CORAcolorLightBlue}
+ \colorlet{CORAcolor7}{CORAcolorDarkRed}
+
+ \definecolor{CORAcolorHighlight1}{rgb}{1.0000,0.6824,0.2980} % 'CORA:highlight1 (orange)'
+ \definecolor{CORAcolorHighlight2}{rgb}{0.3804,0.6275,1.0000} % 'CORA:highlight2 (lightblue)'
+}
+
+\DeclareCORAOption{tumcolors}{ % ---- tum colors
+
+ \definecolor{TUMblue}{rgb}{0.00, 0.40, 0.74}
+ \definecolor{TUMgray}{rgb}{0.85, 0.85, 0.86}
+ \definecolor{TUMpantone285C}{rgb}{0.00, 0.45, 0.81}
+ \definecolor{TUMpantone300C}{RGB}{27, 94, 170} %uncorrected TUMpantone300C
+ \definecolor{lightblue}{rgb}{0.7529,0.8118,0.9333}
+
+}
+
+
+% process all options
+\ProcessOptions\relax
+
+% post-processing ------------------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/cs-techrep/README b/macros/latex/contrib/cs-techrep/README
index bb3aefdd37..2b65be2d79 100644
--- a/macros/latex/contrib/cs-techrep/README
+++ b/macros/latex/contrib/cs-techrep/README
@@ -1,5 +1,5 @@
-----------------------------
- Version 0.2 of the cs-techrep class
+ Version 0.5 of the cs-techrep class
Christoph P. Neumann
-----------------------------
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.dtx b/macros/latex/contrib/cs-techrep/cs-techrep.dtx
index 35775ca107..220137d1a5 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.dtx
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.dtx
@@ -1,16 +1,16 @@
%\iffalse
% cs-techrep.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
% -setambles ".*=>\nopreamble"
-% -author "Christoph P. Neumann "
+% -date "2023-2024"
% -dir "src"
+% -author "Christoph P. Neumann "
+% -macrocode ".*"
% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|cs-techrep.cls)=>\1"
+% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
% -doc "doc/cs-techrep.tex"
-% -date "2023-2024"
-% -macrocode ".*"
% cs-techrep
-% Created on 2024/4/10 18:14
+% Created on 2024/10/26 6:12
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{cs-techrep}\\
%Technical Reports in Computer Science and Software Engineering}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.5}
%\maketitle
%\PrintChanges
%
@@ -117,14 +117,33 @@
%This package provides the documentclass \texttt{cs-techrep}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with custom style settings
+%\item |subcaption| Loads subcaption package with custom style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in any initial publication and a later arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%The document class provides options to load them for you with some customized style settings.
%
%\section{Requirements}
%
@@ -142,6 +161,7 @@
%\item cleveref
%\item csquotes
%\item diagbox
+%\item doclicense
%\item etoolbox
%\item extdash
%\item flushend
@@ -164,6 +184,7 @@
%\item pdflscape
%\item siunitx
%\item stfloats
+%\item subcaption
%\item subfig
%\item tcolorbox
%\item times
@@ -208,7 +229,7 @@ pause% \end{macrocode}
% \end{macrocode}
%\fi
% \begin{macrocode}
-%# Copyright (c) 2023 Christoph P. Neumann,
+%# Copyright (c) 2023-2024 Christoph P. Neumann,
%# Copyright (c) 2018-2021 Oliver Kopp
%# Reference: https://latextemplates.github.io/
@@ -218,18 +239,30 @@ pause% \end{macrocode}
% !TeX program = pdflatex
% !BIB program = biblatex / biber
-% Declare that this document class file requires at least LaTeX version 2e.
\NeedsTeXFormat{LaTeX2e}
-% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{cs-techrep}[2024/04/10 Technical Reports in Computer Science and Software Engineering v0.2]
+\ProvidesClass{cs-techrep}[2024/10/24 Technical Reports in Computer Science and Software Engineering v0.5]
% Define marker counter for options (counter are global in latex):
+
+\newcounter{cstechrep@subfigtracker}
+\newcounter{cstechrep@subcaptiontracker}
\newcounter{cstechrep@pbalancetracker}
\newcounter{cstechrep@flushendtracker}
% Declare options:
-\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
+
+\DeclareOption{subfig}{
+ \setcounter{cstechrep@subfigtracker}{1}
+ \typeout{cs-techrep class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{cstechrep@subcaptiontracker}{1}
+ \typeout{cs-techrep class: subcaption option is set (use subfigure command).}
+}
+
+% IEEE option onecolumn will be ignored
+\DeclareOption{onecolumn}{\OptionNotUsed}
\DeclareOption{pbalance}{
\setcounter{cstechrep@pbalancetracker}{1}
@@ -241,15 +274,16 @@ pause% \end{macrocode}
}
% We'll pass any document class options along to the underlying class
+% (recommended IEEE options: conference,a4paper)
\DeclareOption*{%
- \PassOptionsToClass{\CurrentOption}{IEEEtran}% recommended IEEE options: conference,a4paper
+ \PassOptionsToClass{\CurrentOption}{IEEEtran}
}
% Now we'll execute any options passed in
\ProcessOptions\relax
-% Instead of defining each and every little detail required to create a new document class,
-% you can base your class on an existing document class.
+% Instead of defining each and every little detail required to create a new
+% document class, you can base your class on an existing document class.
\LoadClass{IEEEtran}
% This template has been tested with IEEEtran of 2015.
@@ -258,21 +292,22 @@ pause% \end{macrocode}
% USER PROVIDED VARIABLES
\makeatletter
-\newcommand*\DefcstechrepVar[1]{\@namedef{cstechrep#1}##1{\global\@namedef{cstechrep#1}{##1}}}
+\newcommand*\DefcstechrepVar[1]{%
+\@namedef{cstechrep#1}##1{\global\@namedef{cstechrep#1}{##1}}}
\makeatother
\DefcstechrepVar{AuthorListTex}
\DefcstechrepVar{AuthorListBib} % Use *and* as author separator!
\DefcstechrepVar{TitleTex}
\DefcstechrepVar{TitleBib}
-\DefcstechrepVar{Department} % e.g., Department of Electrical Engineering, Media and Computer Science
-\DefcstechrepVar{Institution} % e.g., Ostbayerische Technische Hochschule Amberg-Weiden
+\DefcstechrepVar{Department} % e.g., Department of Computer Science
+\DefcstechrepVar{Institution} % e.g., OTH Amberg-Weiden
\DefcstechrepVar{Address} % e.g., Amberg, Germany
-\DefcstechrepVar{Series} % e.g., Technical Reports
-\DefcstechrepVar{Year} % e.g., 2023
+\DefcstechrepVar{Type} % e.g., Technical Report
+\DefcstechrepVar{Year} % e.g., 2024
\DefcstechrepVar{Title}
-\DefcstechrepVar{Month} % e.g., 6 (for June)
-\DefcstechrepVar{Number} % e.g., CL-2023-42
+\DefcstechrepVar{Month} % e.g., 10 (for October)
+\DefcstechrepVar{Number} % e.g., CL-2024-42
\DefcstechrepVar{Lang} % e.g., english = en-US (or: ngerman = DE)
% =======================
@@ -285,18 +320,30 @@ pause% \end{macrocode}
% Set English as language and allow to write hyphenated"=words
%
-% Even though `american`, `english` and `usenglish` are synonyms for babel package (according to https://tex.stackexchange.com/questions/12775/babel-english-american-usenglish), the llncs document class is prepared to avoid the overriding of certain names (such as "Abstract." -> "Abstract" or "Fig." -> "Figure") when using `english`, but not when using the other 2.
+% Even though `american`, `english` and `usenglish` are synonyms
+% for babel package (according to
+% https://tex.stackexchange.com/questions/12775/babel-english-american-usenglish),
+% the llncs document class is prepared to avoid the overriding of certain
+% names (such as "Abstract." -> "Abstract" or "Fig." -> "Figure")
+% when using `english`, but not when using the other 2.
% english has to go last to set it as default language
\RequirePackage[ngerman,main=english]{babel}
%
% Hint by http://tex.stackexchange.com/a/321066/9075 -> enable "= as dashes
\addto\extrasenglish{\languageshorthands{ngerman}\useshorthands{"}}
-\RequirePackage{lmodern} % CM variant with scalable font (to prevent "pdfTeX error (font expansion): auto expansion is only possible with scalable")
-\RequirePackage{times} % Times New Roman, because IEEE is based on Times (and not CM/lmodern), however, package times is not a scalable font, thus, lmodern is required additionally and must be loaded before times
+% CM variant with scalable font
+% (to prevent "pdfTeX error (font expansion):
+% auto expansion is only possible with scalable")
+\RequirePackage{lmodern}
+% Times New Roman, because IEEE is based on Times (and not CM/lmodern),
+% however, package times is not a scalable font, thus, lmodern is required
+% additionally and must be loaded before times.
+\RequirePackage{times}
% Links behave as they should. Enables "\url{...}" for URL typesettings.
-% Allow URL breaks also at a hyphen, even though it might be confusing: Is the "-" part of the address or just a hyphen?
+% Allow URL breaks also at a hyphen, even though it might be confusing:
+% Is the "-" part of the address or just a hyphen?
% See https://tex.stackexchange.com/a/3034/9075.
\RequirePackage[hyphens]{url}
@@ -322,40 +369,42 @@ pause% \end{macrocode}
% inputenc must be loaded before biblatex
\RequirePackage[utf8]{inputenc}
-% Has to be loaded AFTER any font packages. See https://tex.stackexchange.com/a/2869/9075.
+% Has to be loaded AFTER any font packages.
+% See https://tex.stackexchange.com/a/2869/9075.
\RequirePackage[T1]{fontenc}
-% Character protrusion and font expansion. See http://www.ctan.org/tex-archive/macros/latex/contrib/microtype/
+% Character protrusion and font expansion.
+% See http://www.ctan.org/tex-archive/macros/latex/contrib/microtype/
\RequirePackage[
- babel=true, % Enable language-specific kerning. Take language-settings from the languge of the current document (see Section 6 of microtype.pdf)
+ babel=true, % Enable language-specific kerning
expansion=alltext,
- protrusion=alltext-nott, % Ensure that at listings, there is no change at the margin of the listing
+ protrusion=alltext-nott, % Ensure no changes at the edge of the listing.
nopatch=eqnum, % fix unable to apply patch eqnum
- final % Always enable microtype, even if in draft mode. This helps finding bad boxes quickly.
- % In the standard configuration, this template is always in the final mode, so this option only makes a difference if "pros" use the draft mode
+ final % Always enable microtype, even if in draft mode.
+ % This helps finding bad boxes quickly. In the
+ % standard configuration, this template is always in the final mode,
+ % so this option only makes a difference if "pros" use the draft mode.
]{microtype}
-% \texttt{test -- test} keeps the "--" as "--" (and does not convert it to an en dash)
+% \texttt{test -- test} keeps the "--" as "--"
+% (and does not convert it to an en dash)
\DisableLigatures{encoding = T1, family = tt* }
-%\DeclareMicrotypeSet*[tracking]{my}{ font = */*/*/sc/* }%
-%\SetTracking{ encoding = *, shape = sc }{ 45 }
-% Source: http://homepage.ruhr-uni-bochum.de/Georg.Verweyen/pakete.html
-% Deactiviated, because does not look good
-
\RequirePackage{graphicx}
% Creative Commons
\RequirePackage{ccicons}
-% Diagonal lines in a table - http://tex.stackexchange.com/questions/17745/diagonal-lines-in-table-cell
-% Slashbox is not available in texlive (due to licensing) and also gives bad results. Thus, we use diagbox
+% Diagonal lines in a table
+% http://tex.stackexchange.com/questions/17745/diagonal-lines-in-table-cell
+% Slashbox is not available in texlive (due to licensing)
+% and also gives bad results. Thus, we use diagbox
\RequirePackage{diagbox}
\RequirePackage[cmyk, table]{xcolor}
-\RequirePackage[nolist]{acronym}
+\RequirePackage[nolist,smaller]{acronym}
% Code Listings
\RequirePackage{listings}
@@ -368,31 +417,31 @@ pause% \end{macrocode}
% Source: https://tex.stackexchange.com/a/433961/9075
\lstdefinelanguage{json}{
- basicstyle=\normalfont\ttfamily,
- commentstyle=\color{eclipseStrings}, % style of comment
- stringstyle=\color{eclipseKeywords}, % style of strings
- numbers=left,
- numberstyle=\scriptsize,
- stepnumber=1,
- numbersep=8pt,
- showstringspaces=false,
- breaklines=true,
- frame=lines,
- % backgroundcolor=\color{gray}, %only if you like
- string=[s]{"}{"},
- comment=[l]{:\ "},
- morecomment=[l]{:"},
- literate=
- *{0}{{{\color{numb}0}}}{1}
- {1}{{{\color{numb}1}}}{1}
- {2}{{{\color{numb}2}}}{1}
- {3}{{{\color{numb}3}}}{1}
- {4}{{{\color{numb}4}}}{1}
- {5}{{{\color{numb}5}}}{1}
- {6}{{{\color{numb}6}}}{1}
- {7}{{{\color{numb}7}}}{1}
- {8}{{{\color{numb}8}}}{1}
- {9}{{{\color{numb}9}}}{1}
+ basicstyle=\normalfont\ttfamily,
+ commentstyle=\color{eclipseStrings}, % style of comment
+ stringstyle=\color{eclipseKeywords}, % style of strings
+ numbers=left,
+ numberstyle=\scriptsize,
+ stepnumber=1,
+ numbersep=8pt,
+ showstringspaces=false,
+ breaklines=true,
+ frame=lines,
+ % backgroundcolor=\color{gray}, %only if you like
+ string=[s]{"}{"},
+ comment=[l]{:\ "},
+ morecomment=[l]{:"},
+ literate=
+ *{0}{{{\color{numb}0}}}{1}
+ {1}{{{\color{numb}1}}}{1}
+ {2}{{{\color{numb}2}}}{1}
+ {3}{{{\color{numb}3}}}{1}
+ {4}{{{\color{numb}4}}}{1}
+ {5}{{{\color{numb}5}}}{1}
+ {6}{{{\color{numb}6}}}{1}
+ {7}{{{\color{numb}7}}}{1}
+ {8}{{{\color{numb}8}}}{1}
+ {9}{{{\color{numb}9}}}{1}
}
\lstset{
@@ -456,7 +505,7 @@ pause% \end{macrocode}
\RequirePackage{booktabs}
% Extended enumerate, such as \begin{compactenum}
-\RequirePackage{paralist}
+\RequirePackage[alwaysadjust]{paralist}
% Read: Is there a disadvantage to using natbib=true with biblatex?
% https://tex.stackexchange.com/questions/149313/is-there-a-disadvantage-to-using-natbib-true-with-biblatex
@@ -490,13 +539,15 @@ pause% \end{macrocode}
autolang=other
]{biblatex}
+% Due to applied option defernumbers=true:
% Prevent citations in the references are being numbered as '0' in ArXiv
% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
\makeatletter
\let\blx@rerun@biber\relax
\makeatother
-\addbibresource{selfref.bib} % selfref.bib needs to be generated, containing a bibentry with key selfref
+% selfref.bib needs to be generated, containing a bibentry with key selfref
+\addbibresource{selfref.bib}
\DeclareBibliographyCategory{selfref}
\addtocategory{selfref}{selfref}
% How to use: \printbibliography[notcategory=selfref]
@@ -516,7 +567,6 @@ pause% \end{macrocode}
{\usebibmacro{prenote}}
{%
\let\oldabx@bibmonth\abx@bibmonth%
- %\let\abx@bibmonth\blx@imc@biblstring\typeout{CHG: abx@bibmonth \meaning\abx@bibmonth}% false: not abbreviated; but nowork
\setkeys{blx@opt@pre}{dateabbrev=false}% nowork
\mkbibmonth{\thefield{month}}%
\let\abx@bibmonth\oldabx@bibmonth% restore
@@ -528,8 +578,13 @@ pause% \end{macrocode}
% Enable nice comments
\RequirePackage{pdfcomment}
-\newcommand{\commentontext}[2]{\colorbox{yellow!60}{#1}\pdfcomment[color={0.234 0.867 0.211},hoffset=-6pt,voffset=10pt,opacity=0.5]{#2}}
-\newcommand{\commentatside}[1]{\pdfcomment[color={0.045 0.278 0.643},icon=Note]{#1}}
+\newcommand{\commentontext}[2]{%
+\colorbox{yellow!60}{#1}%
+\pdfcomment[color={0.234 0.867 0.211},%
+hoffset=-6pt,voffset=10pt,opacity=0.5]{#2}}
+
+\newcommand{\commentatside}[1]{%
+\pdfcomment[color={0.045 0.278 0.643},icon=Note]{#1}}
% Compatibality with packages todo, easy-todo, todonotes
\newcommand{\todo}[1]{\commentatside{#1}}
@@ -545,7 +600,9 @@ pause% \end{macrocode}
\RequirePackage[group-minimum-digits=4,per-mode=fraction]{siunitx}
\addto\extrasgerman{\sisetup{locale = DE}}
-% Enable that parameters of \cref{}, \ref{}, \cite{}, ... are linked so that a reader can click on the number an jump to the target in the document
+% Enable that parameters of \cref{}, \ref{}, \cite{}, ...
+% are linked so that a reader can click on the number
+% and jump to the target in the document
\RequirePackage{hyperref}
% Enable hyperref without colors and without bookmarks
@@ -563,10 +620,12 @@ pause% \end{macrocode}
\RequirePackage{orcidlink}
% For easy quotations: \enquote{text}
-% This package is very smart when nesting is applied, otherwise textcmds (see below) provides a shorter command
+% This package is very smart when nesting is applied,
+% otherwise textcmds (see below) provides a shorter command
\RequirePackage[autostyle=true]{csquotes}
-% Enable using "`quote"' - see https://tex.stackexchange.com/a/150954/9075
+% Enable using "`quote"'
+% See: https://tex.stackexchange.com/a/150954/9075
\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}
@@ -574,7 +633,8 @@ pause% \end{macrocode}
\usepackage{amsmath,amssymb,amsfonts}
% Extensions for references inside the document (\cref{fig:sample}, ...)
-% Enable usage \cref{...} and \Cref{...} instead of \ref: Type of reference included in the link
+% Enable usage \cref{...} and \Cref{...} instead of \ref:
+% Type of reference included in the link.
% That means, "Figure 5" is a full link instead of just "5".
\RequirePackage[capitalise,nameinlink,noabbrev]{cleveref}
@@ -588,7 +648,8 @@ pause% \end{macrocode}
\RequirePackage{tcolorbox}
\tcbuselibrary{listings}
-%introduce \powerset - hint by http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=136492&post_id=997377
+%introduce \powerset
+% See: http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=136492&post_id=997377
\DeclareFontFamily{U}{MnSymbolC}{}
\DeclareSymbolFont{MnSyC}{U}{MnSymbolC}{m}{n}
\DeclareFontShape{U}{MnSymbolC}{m}{n}{
@@ -612,23 +673,12 @@ pause% \end{macrocode}
% Example: applicaiton\hydash specific
\makeatletter
\newcommand{\hydash}{\penalty\@M-\hskip\z@skip}
-% Definition of "= taken from http://mirror.ctan.org/macros/latex/contrib/babel-contrib/german/ngermanb.dtx
+% Definition of "=
+% See: http://mirror.ctan.org/macros/latex/contrib/babel-contrib/german/ngermanb.dtx
\makeatother
-% Add manual adapted hyphenation of English words
-% See https://ctan.org/pkg/hyphenex and https://tex.stackexchange.com/a/22892/9075 for details
-% Does not work on MiKTeX, therefore disabled - issue reported at https://github.com/MiKTeX/miktex-packaging/issues/271
-% \input{ushyphex}
-
% Enable copy and paste of text from the PDF
% Only required for pdflatex. It "just works" in the case of lualatex.
-% Alternative: cmap or mmap package
-% mmap enables mathematical symbols, but does not work with the newtx font set
-% See: https://tex.stackexchange.com/a/64457/9075
-% Other solutions outlined at http://goemonx.blogspot.de/2012/01/pdflatex-ligaturen-und-copynpaste.html and http://tex.stackexchange.com/questions/4397/make-ligatures-in-linux-libertine-copyable-and-searchable
-% Trouble shooting outlined at https://tex.stackexchange.com/a/100618/9075
-%
-% According to https://tex.stackexchange.com/q/451235/9075 this is the way to go
\input glyphtounicode
\pdfgentounicode=1
@@ -636,11 +686,12 @@ pause% \end{macrocode}
\RequirePackage{pdflscape}
\RequirePackage{afterpage}
-% Allows to hyphenate a word that contains a dash:
-% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
-\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% requires, e.g., \PassOptionsToPackage{
+% type=CC,modifier=by,version=4.0}{doclicense} before \documentclass
+\RequirePackage[hyperxmp=false,lang=English]{doclicense}
-% Improve wrapping of URLs - hint by http://tex.stackexchange.com/a/10419/9075
+% Improve wrapping of URLs
+% See: http://tex.stackexchange.com/a/10419/9075
\makeatletter
\def\ps@IEEEtitlepagestyle{
\def\@oddfoot{\mycopyrightnotice}
@@ -650,8 +701,10 @@ pause% \end{macrocode}
{\footnotesize
\begin{minipage}{0.8\textwidth}
\centering
- % Creative Commons / Open Access:
- \href{https://creativecommons.org/licenses/by/4.0/}{\ccby{} This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) License.}
+ % License based on doclicense package:
+ \href{\doclicenseURL}{\doclicenseIcon{}
+ This work is licensed under a \doclicenseLongNameRef{}
+ (\doclicenseNameRef{}) license.}
% Citation advice:
\\Please cite as: \fullcite{selfref}.
\end{minipage}
@@ -683,7 +736,19 @@ pause% \end{macrocode}
\cstechrepAddress
}}
-\IEEEspecialpapernotice{\cstechrepSeries: \cstechrepNumber, \citemonth{selfref} \cstechrepYear}
+\IEEEspecialpapernotice{\cstechrepType: \cstechrepNumber,
+\citemonth{selfref} \cstechrepYear}
+
+% subfigure captions with parentheses and footnotesize:
+\ifnum\value{cstechrep@subfigtracker}=1
+ \typeout{cs-techrep class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{cstechrep@subcaptiontracker}=1
+ \typeout{cs-techrep class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
@@ -693,13 +758,25 @@ pause% \end{macrocode}
\typeout{cs-techrep class: load pbalance package.}
\RequirePackage{pbalance}
\fi
-% Flushend => works with arxiv, but major incampatibility with lineno (and, thus, also with mindflow et al.)
+% Flushend => works with arxiv, but major incampatibility with lineno
+% (and, thus, also with mindflow et al.)
\ifnum\value{cstechrep@flushendtracker}=1
\typeout{cs-techrep class: load flushend package.}
\RequirePackage{flushend}
\fi
-% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
+% ========================================================
+% Packages that need to be loaded last:
+
+% Allows to hyphenate a word that contains a dash:
+% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
+% Use \-/ for a breakable dash that does not prevent the remainer
+% of the word to be hyphenated.
+\RequirePackage[shortcuts]{extdash}
+% ========================================================
+
+% Finally, we'll use \endinput to indicate that LaTeX can stop reading
+% this file. LaTeX will ignore anything after this line.
\endinput
% \end{macrocode}
%\iffalse
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.ins b/macros/latex/contrib/cs-techrep/cs-techrep.ins
index 0fc5868464..c045c844ca 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.ins
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.ins
@@ -1,4 +1,4 @@
-% cs-techrep.ins generated using makedtx version 1.2 2024/4/10 18:14
+% cs-techrep.ins generated using makedtx version 1.2 2024/10/26 6:12
\input docstrip
\preamble
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.pdf b/macros/latex/contrib/cs-techrep/cs-techrep.pdf
index 766e80d57b..b804ac8bc4 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.pdf
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.pdf
Binary files differ
diff --git a/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib b/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib
deleted file mode 100644
index cc7abaec4a..0000000000
--- a/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib
+++ /dev/null
@@ -1,625 +0,0 @@
-@Thesis{neumann2004sa,
- author = {Neumann, Christoph P.},
- title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2004,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
-}
-@Thesis{neumann2005da,
- author = {Neumann, Christoph P.},
- title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2005,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
-}
-@INPROCEEDINGS{MeNe04testejb,
- author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
- title = {{TestEJB} -- A Measurement Framework for {EJBs}},
- booktitle = {Proc of the 7th Int'l Symposium on Component\-/Based Software Engineering (CBSE'04) in conjunction with the 26th Int'l Conf on Software Engineering (ICSE'04)},
- _editor = {Ivica Crnkovic},
- month = may,
- year = {2004},
- pages = {294--301},
- address = {Edinburgh, UK},
- publisher = {Springer, Berlin, DE},
- series = {Lecture Notes in Computer Science},
- volume = {3054},
- doi = {10.1007/978-3-540-24774-6_26},
- _url = {https://doi.org/10.1007/978-3-540-24774-6_26},
- _isbn = {978\-/3\-/540\-/24774\-/6},
-}
-
-@INPROCEEDINGS{NHSL09oxdbs,
- author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
- title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {271:1--271:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS271},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
-}
-
-
-@INPROCEEDINGS{NeWL09xdsrig,
- author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
- title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {276:1--276:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS276},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
-}
-
-
-@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
- year = {2009},
- _chapter = {14},
- _pages = {1--4},
- pages = {14:1--14:4},
- address = {Nashville, TN, USA},
- month = jul,
- _isbn = {9781605586656},
- _url = {https://doi.org/10.1145/1619258.1619277},
- doi = {10.1145/1619258.1619277},
- _note = {[An extended version is available as Tech.\ Rep.\ CS\-/2012\-/02 at Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg]}
-}
-
-@INPROCEEDINGS{NeLe09alphaflow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {569--580},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_55},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_55},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-
-}
-
-@INPROCEEDINGS{NeLe09dmps,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {557--568},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_54},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_54},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-}
-
-@INPROCEEDINGS{NeLe10alphaUC,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Use\-/Case of Breast Cancer Treatment -- Modeling Inter\-/Institutional Healthcare Workflows by Active Documents}},
- booktitle = {Proc of the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- _extended_booktitle = {Proc of the 8th Int'l Workshop on Agent\-/based Computing for Enterprise Collaboration (ACEC)
- at the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- year = {2010},
- pages = {12--22},
- address = {Larissa, GR},
- month = jun,
- doi = {10.1109/WETICE.2010.8},
- _url = {https://doi.ieeecomputersociety.org/10.1109/WETICE.2010.8},
- _issn = {1524\-/4547},
-}
-
-@INPROCEEDINGS{NeFL10oxdbs,
- author = {Christoph P. Neumann and Thomas Fischer and Richard Lenz},
- title = {{OXDBS -- Extension of a native XML Database System with Validation by Consistency Checking of OWL\-/DL Ontologies}},
- booktitle = {Proc of the 14th International Database Engineering \& Applications Symposium (IDEAS'10)},
- year = {2010},
- pages = {143--148},
- address = {Montreal, QC, CA},
- month = aug,
- _url = {https://doi.org/10.1145/1866480.1866502},
- doi = {10.1145/1866480.1866502},
- _isbn = {978\-/1\-/60558\-/900\-/8},
-}
-@INPROCEEDINGS{NSWL11alphaadaptive,
- author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
- title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
- booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
- year = {2011},
- pages = {225--236},
- address = {Clermont\-/Ferrand, FR},
- month = aug,
- _isbn = {978\-/3\-/642\-/28115\-/0},
- doi = {10.1007/978-3-642-28115-0_22},
- _url = {https://doi.org/10.1007/978-3-642-28115-0_22}
-}
-
-@TECHREPORT{NeRL12deus,
- author = {Christoph P. Neumann and Florian Rampp and Richard Lenz},
- title = {{DEUS: Distributed Electronic Patient File Update System}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- series = {Technical Reports},
- number = {CS\-/2012\-/02},
- year = {2012},
- month = mar,
- issn = {2191\-/5008},
- doi = {10.13140/RG.2.2.18075.23848},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-32089}
-}
-
-@INPROCEEDINGS{NeWL12offsync,
- title={{Adaptive Version Clocks and the OffSync Protocol (Poster)}},
- author={Christoph P. Neumann and Andreas M. Wahl and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- doi = {10.1109/ISPA.2012.123},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.123},
- issn = {2158\-/9178},
- pages = {835--836},
-}
-
-@INPROCEEDINGS{NeHL12hydra,
- title={{Hydra Version Control System (Poster)}},
- author={Christoph P. Neumann and Scott A. Hady and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- issn = {2158\-/9178},
- pages = {837--838},
- doi = {10.1109/ISPA.2012.124},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.124},
-}
-
-@ARTICLE{NeLe12alphaFlow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Approach to Inter\-/Institutional Process Support in Healthcare}},
- journal = {International Journal of Knowledge\-/Based Organizations (IJKBO)},
- publisher = {IGI Global},
- volume = 2,
- number = 4,
- year = {2012},
- pages = {52--68},
- _url = {http://www.igi-global.com/article/alpha-flow-approach-inter-institutional/72340},
- _urlDOI = {https://doi.org/10.4018/ijkbo.2012100104},
- doi = {10.4018/ijkbo.2012100104}
-}
-
-@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@INPROCEEDINGS{NeLe13adhocCoop,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{Distributed Ad Hoc Cooperation in Healthcare}},
- booktitle = {Post\-/Proceedings of the Joint Int'l Workshops on Process\-/oriented Information Systems in Healthcare and Knowledge Representation for Healthcare (ProHealth'12 / KR4HC'12) in conjunction with the 10th Int'l Conf on Business Process Management (BPM'12)},
- _editor = {Richard Lenz and Silvia Miksch and Mor Peleg and Manfred Reichert and David Riano and Annette ten Teije},
- year = {2013},
- pages = {113--125},
- _address = {Tallinn, EE},
- publisher = {Springer},
- note = {Part of the Lecture Notes in Computer Science book series (LNAI, volume 7738)},
- _isbn = {978\-/3\-/642\-/36437\-/2},
- doi = {10.1007/978-3-642-36438-9_8},
- _url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
- author={Christoph P. Neumann},
- editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
- title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
- booktitle={Ausgezeichnete Informatikdissertationen 2012},
- series={{LNI}},
- volume={{D{-}13}},
- pages={241--250},
- publisher={{GI}},
- year={2012},
- url={https://dl.gi.de/20.500.12116/33740}
-}
-@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
-}
-
-@INPROCEEDINGS{IND+09lzatav,
- author = {Florian Irmert and Christoph P. Neumann and Michael Daum and Niko Pollner and Klaus Meyer\-/Wegener},
- title = {{Technische Grundlagen f{\"u}r eine laufzeitadaptierbare Transaktionsverwaltung}},
- booktitle = {Tagungsband der 13.\,Fachtagung Datenbanksysteme f{\"u}r Business, Technologie und Web (BTW'09)},
- month = mar,
- year = {2009},
- pages = {227--236},
- address = {M{\"u}nster, DE},
- publisher = {Gesellschaft f{\"u}r Informatik e.V.\ (GI), K{\"o}ln, Germany},
- doi = {10.1145/1620432.1620442},
- url = {https://dl.gi.de/20.500.12116/20447},
- _isbn = {978-3-88579-238-3},
- _issn = {1617\-/5468},
-}
-
-@INPROCEEDINGS{ILN+09semrttx,
- author = {Florian Irmert and Frank Lauterwald and Christoph P. Neumann and Michael Daum and Richard Lenz and Klaus Meyer{-}Wegener},
- title = {{Semantics of a Runtime Adaptable Transaction Manager}},
- booktitle = {Proc of the 13th Int'l Database Engineering \& Applications Symposium (IDEAS'09)},
- month = sep,
- year = {2009},
- pages = {88--96},
- address = {Cetraro, IT},
- doi = {10.1145/1620432.1620442},
- _isbn = {9781605584027},
- _url = {https://doi.org/10.1145/1620432.1620442},
-}
-
-@ARTICLE{JBN+10fcmdb,
- author = {Holger von Jouanne{-}Diedrich and Juliane Blechinger and Christoph P. Neumann and Stefan Schwarz and Richard Lenz},
- title = {{Integration verteilter und heterogener Configuration\-/Management\-/Datenbanken}},
- journal = {Informatik\-/Spektrum},
- editor = {Arndt Bode},
- publisher = {Springer},
- issn = {0170\-/6012},
- pages = {351--362},
- volume = {33},
- issue = {4},
- year = {2010},
- doi = {10.1007/s00287-009-0398-6},
- _url = {http://www.springerlink.com/content/e8m40805u21881m2/},
-}
-
-@INPROCEEDINGS{FDI+10esmmog,
- author={Thomas Fischer and Michael Daum and Florian Irmert and Christoph P. Neumann and Richard Lenz},
- title={{Exploitation of Event\-/Semantics for Distributed Publish/Subscribe Systems in Massively Multiuser Virtual Environments}},
- booktitle={Proc of the 14th Int'l Database Engineering \& Applications Symposium (IDEAS'10)},
- year={2010},
- pages = {90--97},
- address = {Montreal, QC, CA},
- month = aug,
- doi = {10.1145/1866480.1866494},
- _isbn = {9781605589008},
- _url = {https://doi.org/10.1145/1866480.1866494},
-}
-
-@TECHREPORT{LNR+11egr,
- author = {Frank Lauterwald and Christoph P. Neumann and Richard Lenz and Anselm G. J{\"u}nemann and Christian Y. Mardin and Klaus Meyer{-}Wegener and Folkert K. Horn},
- title = {{The Erlangen Glaucoma Registry: a Scientific Database for Longitudinal Analysis of Glaucoma}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- type = {Technical Reports},
- number = {CS\-/2011\-/02},
- year = {2011},
- month = dec,
- doi = {10.13140/RG.2.2.31497.01128},
- _issn = {2191\-/5008},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39057}
-}
-
-@INPROCEEDINGS{PANP23seccloudfogai,
- title={{Security Challenges for Cloud or Fog Computing-Based AI Applications}},
- author={Amir Pakmehr and Andreas A{\ss}muth and Christoph P. Neumann and Gerald Pirkl},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19459},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_10_28004},
- _url = {https://doi.org/10.48550/arXiv.2310.19459},
- _issn = {2308-4294},
- pages = {21--29},
-}
-
-@INPROCEEDINGS{LeNe24vocattllm,
- title={{Vocabulary Attack to Hijack Large Language Model Applications}},
- author={Patrick Levi and Christoph P. Neumann},
- booktitle={Proc of the 15th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2024)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Venice, Italy},
- month=apr,
- year={2024},
- doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
- _issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
-}
-
-@INPROCEEDINGS{ToNe11alphaprops,
- author = {Aneliya Todorova and Christoph P. Neumann},
- title = {{alpha-Props: A Rule-Based Approach to `Active Properties' for Document-Oriented Process Support in Inter-Institutional Environments (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 10\,/\,Informatiktage 2011},
- year={2011},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2011/giinformatiktage2011_stud-todorova_neumann.pdf}
-}
-
-@INPROCEEDINGS{WaNe12alphaoffsync,
- author = {Andreas M. Wahl and Christoph P. Neumann},
- title = {{alpha-OffSync: An Offline-Capable Synchronization Approach for Distributed Document-Oriented Process Management in Healthcare (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 11\,/\,Informatiktage 2012},
- year={2012},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2012/giinformatiktage2012_stud-wahl_neumann.pdf}
-}
-
-@INPROCEEDINGS{StNe23foodfresh,
- title={{FoodFresh: Multi-Chain Design for an Inter-Institutional Food Supply Chain Network}},
- author={Philipp Stangl and Christoph P. Neumann},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19461},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_30_28006},
- _url = {https://doi.org/10.48550/arXiv.2310.19461},
- _issn = {2308\-/4294},
- pages = {41--46},
-}
-
-@TECHREPORT{SaNe24othfb,
- author = {Patrick Sabau and Christoph P. Neumann},
- title = {{Analyse von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- type = {Forschungsbericht},
- number = {2024},
- year = {2024},
- month = mar,
- _issn = {2365\-/1997},
- doi = {10.13140/RG.2.2.21052.65924},
- _url1 = {https://www.oth-aw.de/hochschule/mediathek/forschungsbericht/},
- _url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
- _url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
- author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
- title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-06},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.33921.84321},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33921.84321},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense,
- author = {Cameron Barbee and Tim Hoffmann and Christian Piffel and Tobias Schotter and Sebastian Schuscha and Philipp Stangl and Thomas Stangl and Christoph P. Neumann},
- title = {{FireForceDefense: Graphisches Tower\-/Defense\-/Spiel mit Kubernetes\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-05},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.20500.07048},
- _url = {https://dx.doi.org/10.13140/RG.2.2.20500.07048},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner,
- author = {Egidia Cenko and Madina Kamalova and Matthias Sch{\"o}n and Christoph Schuster and Andrei Trukhin and Christoph P. Neumann},
- title = {{MedPlanner: Eine Angular- und Django\-/basierte Webanwendung um ärztliche Termine übersichtlich zu verwalten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-04},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.19409.71528},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19409.71528},
-}
-
-@TECHREPORT{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld,
- author = {Alexander Ziebell and Anja Stricker and Annika Stadelmann and Leo Schurrer and Philip Bartmann and Ronja B{\"a}umel and Ulrich Stark and Christoph P. Neumann},
- title = {{Wo ist mein Geld: Eine MERN\-/basierte Webanwendung für gemeinsame Ausgaben mit Freunden oder Kollegen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-11},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.28888.67847},
- _url = {https://dx.doi.org/10.13140/RG.2.2.28888.67847},
-}
-
-
-
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash,
- author = {Bastian Hahn and Martin Kleber and Andreas Klier and Lukas Kreussel and Felix Paris and Andreas Ziegler and Christoph P. Neumann},
- title = {{Twitter-Dash: React- und .NET\-/basierte Trend- und Sentiment\-/Analysen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-07},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.15466.90564},
- _url = {https://dx.doi.org/10.13140/RG.2.2.15466.90564},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamRot-Reddiment,
- author = {Tobias Bauer and Fabian Beer and Daniel Holl and Ardian Imeraj and Konrad Schweiger and Philipp Stangl and Wolfgang Weigl and Christoph P. Neumann},
- title = {{Reddiment: Eine SvelteKit- und ElasticSearch\-/basierte Reddit Sentiment\-/Analyse}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-06},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.32244.12161},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32244.12161},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy,
- author = {Florian B{\"o}sl and Helge Kohl and Anastasia Chernysheva and Patrice Korinth and Philipp Porsch and Christoph P. Neumann},
- title = {{Explosion Guy: Cloud\-/basiertes Matchmaking für einen graphischen Bombenspaß}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-05},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.18822.34882},
- _url = {https://dx.doi.org/10.13140/RG.2.2.18822.34882},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki,
- author = {Dominik Smrekar and Johannes Horst and Patrick Sabau and Saniye Ogul and Tobias Schotter and Christoph P. Neumann},
- title = {{OTH-Wiki: Ein Angular- und FastAPI\-/basiertes Wiki für Studierende}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-04},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.25533.23526},
- _url = {https://dx.doi.org/10.13140/RG.2.2.25533.23526},
-}
-
-
-@TECHREPORT{ModA-TR-2022WS-SWT-TeamGruen-Graphvio,
- author = {Johannes Halbritter and Helge Kohl and Lukas Kreussel and Stephan Prettner and Andreas Ziegler and Christoph P. Neumann},
- title = {{Graphvio: Eine Graphdatenbank\-/Webanwendung für integrierte Datensätze von Streaminganbietern}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-01},
- year = 2022,
- month = 3,
- doi = {10.13140/RG.2.2.12111.46244},
- _url = {https://dx.doi.org/10.13140/RG.2.2.12111.46244},
-}
-
-@TECHREPORT{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln,
- author = {Paul Brandl and Manuel Kalla and Dominik Panzer and Kevin Paulus and Manuel Pickl and Franziska Rubenbauer and Berkay Yurdaguel and Christoph P. Neumann},
- title = {{Neunerln: Eine MEVN\-/basierte Webanwendung zum kompetitiven Kartenspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-11},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.33933.31209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
-}
-
-
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
- author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
- title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-08},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.23866.98248},
- _url = {https://dx.doi.org/10.13140/RG.2.2.23866.98248},
-}
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense,
- author = {Jakob Götz and Uwe Kölbel and Maximilian Schlosser and Oliver Schmidts and Jan Schuster and Philipp Seufert and Fabian Wagner and Christoph P. Neumann},
- title = {{Nautical Nonsense: Eine Phaser3- und FastAPI\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-07},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.17156.09601},
- _url = {https://dx.doi.org/10.13140/RG.2.2.17156.09601},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics,
- author = {Lukas Feil and Stefan Reger and Timon Spichtinger and Manuel Pickl and Gian Piero Cecchetti and Alexander Hammer and Berkay Yurdagül and Christoph P. Neumann},
- title = {{Torpedo Tactics: Eine MEVN\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-06},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.22608.69120},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22608.69120},
-}
-
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamCyan-Stockbird,
- author = {Rebecca Kietzer and Baran Baygin and Carl Küschall and Jonathan Okorafor and Luca Käsmann and Michael Zimmet and Michael Ippisch and Christoph P. Neumann},
- title = {{Stockbird: Eine React\-/basierte Webanwendung mit serverless Cloud\-/Deployment zur Analyse des Einfluss von Tweets auf Aktienkurs\-/Schwankungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-04},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.32675.02083},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32675.02083},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamBlau-FancyChess,
- author = {Christian Rute and Alex Müller and Alexander Rudolf Wittmann and Arthur Zimmermann and David Nestmeyer and Julian Tischlak and Matthias Wolfinger and Christoph P. Neumann},
- title = {{FancyChess: Eine Next.js\-/basierte Cloud-Anwendung zum Schachspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-03},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.19253.24802},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19253.24802},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamRot-SGDb,
- author = {Anastasia Chernysheva and Jakob G{\"o}tz and Ardian Imeraj and Patrice Korinth and Philipp Stangl and Christoph P. Neumann},
- title = {{SGDb Semantic Video Game Database: Svelte- und Ontotext\-/basierte Webanwendung mit einer Graphen\-/Suche für Videospiele}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-02},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.11272.60160},
- _url = {https://dx.doi.org/10.13140/RG.2.2.11272.60160},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk,
- author = {Johannes Horst and Manuel Zimmermann and Patrick Sabau and Saniye Ogul and Stefan Ries and Tobias Schotter and Christoph P. Neumann},
- title = {{OPCUA-Netzwerk: Angular- und FastAPI\-/basierte Entwicklung eines OPC-UA Sensor\-/Netzwerks für den Heimbereich}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-01},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.22177.79209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
-}
-
diff --git a/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib b/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib
deleted file mode 100644
index d4341f790c..0000000000
--- a/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib
+++ /dev/null
@@ -1,397 +0,0 @@
-@Thesis{kampf2012bt,
- author = {Kampf, Marvin},
- title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = nov,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_simakamp/BT_simakamp.pdf},
-}
-@Thesis{hunsen2012mt,
- author = {Hunsen, Christian},
- title = {{alpha\-/Doyen: Ein Verfahren zur Wortf{\"u}hrerschaft\-/{\"U}bertragung als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = jul,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/MT_uj32uvac/MT_uj32uvac.pdf},
-}
-@Thesis{schmidt2012bt,
- author = {Schmidt, Alexander},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Behandlung von Fehlern und Ausnahmen in verteilten Systemen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_siaascmi/BT_siaascmi.pdf},
-}
-@Thesis{tsysin2011bt,
- author = {Tsysin, Konstantin},
- title = {{alpha\-/PrintPut: Ein Windows\-/Druckertreiber zum Einbringen von Dokumenten aus beliebigen Drittanwendungen als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sikotsys/BT_sikotsys.pdf},
-}
-@Thesis{wagner2011da,
- author = {Wagner, Florian},
- title = {{alpha\-/Forms: Selbst\-/editierbare Formulare als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflwagn/DA_siflwagn.pdf},
-}
-@Thesis{hady2011da,
- author = {Hady, Scott},
- title = {{alpha\-/VVS: An integrated Version Control System as a Component of Process Support based on Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = nov,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sischady/DA_sischady.pdf},
-}
-@Thesis{wahl2011bt,
- author = {Wahl, Andreas M.},
- title = {{alpha\-/OffSync: Verteilten Datensynchronisation in Form von IMAP\-/basiertem Mail\-/Transfer als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sianwahl/BT_sianwahl.pdf},
-}
-@Thesis{reischl2011bt,
- author = {Reischl, Patrick},
- title = {{alpha\-/Templates: Import und Export von `Process Templates' als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sipareis/BT_sipareis.pdf},
-}
-@Thesis{lempetzeder2011bt,
- author = {Lempetzeder, Benedikt},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Darstellung von Prozesseigenschaften unter Ber{\"u}cksichtigung von Zeit und Daten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sibelemp/BT_sibelemp.pdf},
-}
-@Thesis{engel2011sa,
- author = {Engel, Igor},
- title = {{Konzeption und Implementierung einer verteilten Institutionsverwaltung als anwendungsspezifische Form eines verteilten Metadaten\-/Repository}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jul,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siigenge/SA_siigenge.pdf},
-}
-@Thesis{schwab2011da,
- author = {Schwab, Peter},
- title = {{alpha\-/Adaptive: Ein adaptives Attributmodell als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sipeschw/DA_sipeschw.pdf},
-}
-@Thesis{kreuter2011da,
- author = {Kreuter, André},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Content\-/oriented Workflows'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = may,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siankreu/DA_siankreu.pdf},
-}
-@Thesis{hady2011sa,
- author = {Hady, Scott},
- title = {{Conception and Implementation of Database Persistence for the .getmore Test Case Generator}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = mar,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sischady/SA_sischady.pdf},
- note = {In Kooperation mit der sepp.med GmbH},
-}
-@Thesis{hanisch2010da,
- author = {Hanisch, Stefan},
- title = {{Konzeption und Implementierung einer Infrastruktur f{\"u}r aktive Dokumente}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = oct,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sisnhani/DA_sisnhani.pdf},
-}
-@Thesis{pehlivanov2010bt,
- author = {Pehlivanov, Hristiyan},
- title = {{Design and Implementation of a Participant Tracker for Distributed Active Documents Based on Peer\-/to\-/Peer\-/Based File Sharing Protocols}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sihrpehl/BT_sihrpehl.pdf},
-}
-@Thesis{idler2010bt,
- author = {Idler, Steffen},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Aktive Dokumente'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sistidle/BT_sistidle.pdf},
-}
-@Thesis{todorova2010da,
- author = {Todorova, Anelyia},
- title = {{Design and Implementation of a Lightweight, Autonomous, Rule\-/Based System Which Realizes `Active Properties' in the Context of Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jul,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siantodo/DA_siantodo.pdf},
-}
-@Thesis{schinn2010sa,
- author = {Schinn, Manuela},
- title = {{Entwurf und Realisierung eines Webportals zum Zugriff auf Patientenleitf{\"a}den mit Hilfe von Ercatons}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_schinnma/SA_schinnma.pdf},
- note = {In Kooperation mit der Living Pages Research GmbH},
-}
-@Thesis{hanisch2009sa,
- author = {Hanisch, Stefan},
- title = {{Erweiterung einer nativen XML\-/Datenbank um die Validierung anhand einer Ontologie}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = dec,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sisnhani/SA_sisnhani.pdf},
- note = {In Kooperation mit Regionales Rechenzentrum Erlangen (RRZE)},
-}
-@Thesis{roth2009da,
- author = {Roth, Gernot},
- title = {{Konzeption und Realisierung eines verteilten Master Patient Index}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sigeroth/DA_sigeroth.pdf},
-}
-@Thesis{kreuter2009sa,
- author = {Kreuter, André},
- title = {{Data Warehouse zur Prognose von Studentenzahlen f{\"u}r Vorlesungen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siankreu/SA_siankreu.pdf},
-}
-@Thesis{rampp2009da,
- author = {Rampp, Florian},
- title = {{Design and Implementation of a Distributed Address Database Following a Publish/Subscribe Architecture to Share Patient Data Among Autonomous Healthcare Information Systems}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = mar,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflramp/DA_siflramp.pdf},
-}
-@Thesis{taralov2009da,
- author = {Taralov, Emil},
- title = {{Erweiterung der HL7 Clinical Document Architecture um Prozessstatusinformation}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = feb,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siemtara/DA_siemtara.pdf},
-}
-@Thesis{wagner2009sa,
- author = {Wagner, Florian},
- title = {{Entwurf und Realisierung eines IHE XDS Komponenten\-/Teststands}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflwagn/SA_siflwagn.pdf},
-}
-@Thesis{rampp2008sa,
- author = {Rampp, Florian},
- title = {{Entwurf und Implementierung einer Bahnplanungsmethode f{\"u}r kooperierende Industrieroboter}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2008,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflramp/SA_siflramp.pdf},
- note = {In Kooperation mit dem FAPS Institut als Teil des SFB396},
-}
-
-@Thesis{schotter_tobias_2023mt,
- author = {Schotter, Tobias},
- title = {{Vorhersage von Jobkündigungen anhand von Lohnabrechnungsdaten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = oct,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Schotter_Tobias_Thesis/MT_2023_Schotter_Tobias_Thesis.pdf},
- note = {In Kooperation mit der DATEV},
-}
-@Thesis{sabau_patrick_2023mt,
- author = {Sabau, Patrick},
- title = {{Analyse und Bewertung von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = sep,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Sabau_Patrick_Thesis/MT_2023_Sabau_Patrick_Thesis.pdf},
-}
-@Thesis{barthelmann_erik_2023bt,
- author = {Barthelmann, Erik},
- title = {{Erstellung eines Datenmodells für die Integration unterschiedlicher Datenquellen in einem Werksstandort mittels Anchor Modeling und der Realisierung in SD}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Barthelmann_Erik_Thesis/BT_2023_Barthelmann_Erik_Thesis.pdf},
- note = {In Kooperation mit der SIEMENS AG},
-}
-@Thesis{klier_andreas_2023mt,
- author = {Klier, Andreas},
- title = {{Prediction of Faults in Cables as a Building Block of Predictive Maintenance for Medical Devices}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = jun,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Klier_Andreas_Thesis/MT_2023_Klier_Andreas_Thesis.pdf},
- note = {In Kooperation mit SIEMENS Healthineers},
-}
-@Thesis{rall_adrian_2023bt,
- author = {Rall, Adrian},
- title = {{Conception and Development of a Dependency Update
-Mechanism for the Automatic Distribution of a New
-Software Version in Special Machinery and Industrial
-Engineering}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Rall_Adrian_Thesis/BT_2023_Rall_Adrian_Thesis.pdf},
- note = {In Kooperation mit der BHS Corrugated Maschinen- und Anlagenbau GmbH},
-}
-@Thesis{weiß_tobias_2023bt,
- author = {Weiß, Tobias},
- title = {{Entwurf und Implementierung einer Daten\-/Pipeline zur Aufbereitung von IoT Daten in der Fertigung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Weiß_Tobias_Thesis/BT_2023_Weiß_Tobias_Thesis.pdf},
-}
-@Thesis{antskaitis_arina_2023bt,
- author = {Antskaitis, Arina},
- title = {{Route optimization for Germany\-/wide services in occupational health management}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Antskaitis_Arina_Thesis/BT_2023_Antskaitis_Arina_Thesis.pdf},
- note = {In Kooperation mit der wellabe GmbH},
-}
-@Thesis{veshi_eni_2023bt,
- author = {Veshi, Eni},
- title = {{Extension of a web\-/based time recording system with the capabilities of a progressive web app and integrated video streaming}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Veshi_Eni_Thesis/BT_2023_Veshi_Eni_Thesis.pdf},
- note = {In Kooperation mit Crew Active, einer Marke von Run4Dev},
-}
-@Thesis{stricker_anja_2022bt,
- author = {Stricker, Anja},
- title = {{Entwurf und Implementierung eines konfigurierbaren Alarmsystems f{\"u}r Monitoring\-/Systeme unter Ber{\"u}cksichtigung von Hochsicherheitsbereichen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stricker_Anja_Thesis/BT_2022_Stricker_Anja_Thesis.pdf},
- note = {In Kooperation mit der M{\"u}hlbauer GmbH \& Co.\ KG},
-}
-@Thesis{schuster_christoph_2022bt,
- author = {Schuster, Christoph},
- title = {{Gegen{\"u}berstellung von Ans{\"a}tzen f{\"u}r Progressive Web Apps zum Entwurf von hybriden Benutzeroberfl{\"a}chen am Beispiel einer Reiseziele\-/Anwendung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schuster_Christoph_Thesis/BT_2022_Schuster_Christoph_Thesis.pdf},
-}
-@Thesis{hoffmann_tim_2022bt,
- author = {Hoffmann, Tim},
- title = {{Entwurf und Implementierung einer Progressiven Web App am Beispiel der technischen Transition einer Cloud\-/L{\"o}sung f{\"u}r webbasierte Datenbearbeitung und Reporting}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hoffmann_Tim_Thesis/BT_2022_Hoffmann_Tim_Thesis.pdf},
- note = {In Kooperation mit der INSIGMA IT Engineering GmbH},
-}
-@Thesis{pohl_patrick_2022bt,
- author = {Pohl, Patrick},
- title = {{Evaluation von Cypress f{\"u}r End\-/To\-/End Testing von Vue\-/basierten Webanwendungen am Beispiel eines Content Management Systems}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Pohl_Patrick_Thesis/BT_2022_Pohl_Patrick_Thesis.pdf},
- note = {In Kooperation mit lilaquadrat},
-}
-@Thesis{hahn_albert_2022bt,
- author = {Hahn, Albert},
- title = {{Konzeption und Implementierung einer Microservice Architektur in einem hybriden Kubernetes\-/Cluster f{\"u}r industrielle KI\-/Anwendungsf{\"a}lle}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hahn_Albert_Thesis/BT_2022_Hahn_Albert_Thesis.pdf},
- note = {In Kooperation mit der Krones AG},
-}
-@Thesis{tacli_harun_2022bt,
- author = {Tacli, Harun},
- title = {{Validierung der Echtzeitf{\"a}higkeit von orchestrierten Software\-/Umgebungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Tacli_Harun_Thesis/BT_2022_Tacli_Harun_Thesis.pdf},
- note = {In Kooperation mit der Audi AG},
-}
-@Thesis{stangl_thomas_2022bt,
- author = {Stangl, Thomas},
- title = {{Entwurf und Implementierung einer Webanwendung zur einfachen Fernsteuerung von Digitalmischpulten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Thomas_Thesis/BT_2022_Stangl_Thomas_Thesis.pdf},
-}
-@Thesis{schotter_tobias_2022bt,
- author = {Schotter, Tobias},
- title = {{Evaluation von Qubes OS f{\"u}r den Einsatz in Klein- und Mittelst{\"a}ndischen SW\-/Entwicklungsunternehmen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = feb,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schotter_Tobias_Thesis/BT_2022_Schotter_Tobias_Thesis.pdf},
-}
-@Thesis{stangl_philipp_2022bt,
- author = {Stangl, Philipp},
- title = {{Entwurf und Implementierung eines heterogenen Blockchain\-/Konsortiums f{\"u}r ein Lebensmittel\-/Lieferketten\-/Netzwerk}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = jan,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Philipp_Thesis/BT_2022_Stangl_Philipp_Thesis.pdf},
-}
diff --git a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
index ca478d3d61..2858ea3aab 100644
--- a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
+++ b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
index 1ae583aed0..9d93c23314 100644
--- a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
+++ b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
@@ -1,7 +1,8 @@
+\PassOptionsToPackage{type=CC,modifier=by,version=4.0}{doclicense}
\documentclass[conference,a4paper,flushend]{cs-techrep}
\pdfoutput=1 % pdflatex hint for arxiv.org (within first 5 lines)
-% Class iaria.cls loads biblatex / biber with predefined options
+% Class cs-techrep.cls loads biblatex / biber with predefined options
\addbibresource{embedded.bib} % its content is declared below, embedded within this tex-file
\addbibresource{webdev_commons.bib} % includes REST, React, Angular, Vue, Svelte, Docker, AWS-*, Socket.IO, and many more!
\addbibresource{cpn_all_all.bib} % includes all previous CyberLytics@OTH-AW technical reports
@@ -17,7 +18,7 @@
%\cstechrepAuthorListBib{Vorname1 Nachname1 and Vorname2 Nachname2 and Vorname3 Nachname3 and Vorname4 Nachname4 and Vorname5 Nachname5 and Vorname6 Nachname6 and Christoph P. Neumann}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\cstechrepTitleTex{The cs-techrep Example of a Technical Report in Computer Science and Software Engineering}
+\cstechrepTitleTex{The cs-techrep Paper Example of a Technical Report in Computer Science or Software Engineering}
% IF you need manual linebreaks in the titel, then clone the title without linebreaks for BibTeX:
\cstechrepTitleBib{{\cstechrepTitleTex}}
%\cstechrepTitleBib{The cs-techrep \LaTeX{} Class Example of a Software Engineering Technical Report}
@@ -27,11 +28,11 @@
\cstechrepInstitution{Ostbayerische Technische Hochschule Amberg\-/Weiden}
\cstechrepAddress{Amberg, Germany}
%\cstechrepAddress{Amberg, Deutschland} % DE
-\cstechrepSeries{Technical Reports}
-%\cstechrepSeries{Technische Berichte} % DE
-\cstechrepYear{2024}
-\cstechrepMonth{3}
-\cstechrepNumber{CL-\cstechrepYear{}-42}
+\cstechrepType{Technical Report}
+%\cstechrepType{Technischer Bericht} % DE
+\cstechrepYear{2024} % CTAN
+\cstechrepMonth{10} % CTAN
+\cstechrepNumber{CL-TR-\cstechrepYear{}-99}
\cstechrepLang{english} % en-US
%\cstechrepLang{ngerman} % DE
@@ -47,7 +48,7 @@
author = {|cstechrepAuthorListBib},
title = {\cstechrepTitleBib},
institution = {\cstechrepInstitution, \cstechrepDepartment},
- series = {\cstechrepSeries},
+ type = {\cstechrepType},
number = {\cstechrepNumber},
year = {|cstechrepYear},
month = {|cstechrepMonth},
@@ -86,7 +87,7 @@
}
@online{languagetool,
author = {{LanguageTooler GmbH}},
- title = {{LangueTool}},
+ title = {{LanguageTool: AI-based grammar checker}},
url = {https://languagetool.org/overleaf}
}
@online{overleaf,
@@ -123,9 +124,16 @@
\maketitle
\begin{abstract}
-\lipsum[1][3-10]
-\{\,\faWarning{}The abstract does neither mention a teaching module nor a team/project,
-it is a summary of the content of the technical report, thus, the objectives and architecture.\}
+This paper demonstrates an example of a technical report in computer science or software engineering, based on the \texttt{cs-techrep} \LaTeX{} class.
+The example is intended for beginners, e.\,g., undergraduate students.
+It contains a basic outline template and usually fills it with dummy text, but some sections are describing the intent of the outline template and its sections.
+Graphic exclamation marks highlight important remarks.
+%
+\{\,\faWarning{}The abstract does neither mention a thesis in which context a technical report is written nor an institution or any other organizational aspects.
+It is a summary of the content of the technical report, thus, usually the objectives and architecture of a piece of software.
+Do NOT remove the abstract, this section is mandatory.
+Do NOT use special characters, symbols, or math in your title or abstract.
+Do NOT use cites in your abstract.\}
\end{abstract}
% A list of IEEE Computer Society appoved keywords can be obtained at
@@ -146,7 +154,7 @@ The pipe symbol \textquote{\textbar{}} in the headings represents alternatives.
The problem statement needs to be written from perspective of a subject-matter expert (\textquote{Fachkonzept}). Like an elevator pitch / mission statement \faWarning{}. NOT from a technical perspective.
\section{Optional: Related Work \textbar{} State of the Art \textbar{} Methods \textbar{} Data Acquisition}
-\lipsum[2]
+\lipsum[12]
\section{Architectural Goals} % \textbar{} \textquote{Architekturziele}}
Provides
@@ -169,13 +177,13 @@ In discussions concerning multi-tier architecture, the term \textquote{layer} is
\subsection{Presentation Tier \textbar{} Frontend}
-\lipsum[3]
+\lipsum[13]
\subsection{Application Tier \textbar{} Backend \textbar{} \textquote{Anwendungskern}}
-\lipsum[4]
+\lipsum[14]
\subsection{Data Tier \textbar{} Persistence}
-\lipsum[5]
+\lipsum[15]
\subsection{Optional: Infrastructure and Deployment \textbar{} Distribution Perspective \textbar{} \textquote{Verteilungssicht}}
Provides (1) information about configuration, exact software versions, SBOM, DevOps, Cloud, AWS, and others.
@@ -184,71 +192,14 @@ Could include (3) a software bill of materials (SBOM), at least for the major li
\section{Discussion \textbar{} Evaluation \textbar{} \\ Lessons Learned \textbar{} Impediments}
-\lipsum[6]
+\lipsum[16]
\section{Conclusion and Future Work \textbar{} \\ \textquote{Fazit und Ausblick}}
-\lipsum[7]
-
-
-%%% Advisor
-\nocite{StNe23foodfresh}
-
-%%% First-Author
-\nocite{NeLe13adhocCoop}
-\nocite{Neumann2012lni}
-\nocite{NeLe12alphaFlow}
-\nocite{NeHL12hydra}
-\nocite{NeWL12offsync}
-\nocite{NSWL11alphaadaptive}
-\nocite{NeFL10oxdbs}
-\nocite{NeLe10alphaUC}
-\nocite{NeLe09alphaflow}
-\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
-\nocite{NeWL09xdsrig} % DE
-\nocite{NRDL09deus}
-
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
-\nocite{Neumann2013dissBook}
-\nocite{Neumann2012dissPreprint}
-\nocite{neumann2005da}
-\nocite{neumann2004sa}
-
-%%% TechRep / Non-Peer-Reviewed
-
-\nocite{SaNe24othfb}
-
-\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
-\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
-\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
-\nocite{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics}
-\nocite{ModA-TR-2023SS-BCN-TeamCyan-Stockbird}
-\nocite{ModA-TR-2023SS-BCN-TeamBlau-FancyChess}
-\nocite{ModA-TR-2023WS-SWT-TeamRot-SGDb}
-\nocite{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk}
-\nocite{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld}
-\nocite{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash}
-\nocite{ModA-TR-2022SS-BDCC-TeamRot-Reddiment}
-\nocite{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy}
-\nocite{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki}
-\nocite{ModA-TR-2022WS-SWT-TeamGruen-Graphvio}
-\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
-\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
-\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
-\nocite{NeRL12deus}
-\nocite{LNR+11egr}
+\lipsum[17]
+
+
+\{\,\faWarning{} You must not leave the bibliography blank. Add appropriate references to your related work.\}
+
% ======== References =========
%\vfill % To end last page and thus get bibliography "behind" subfigure example, only this allows pbalance to level columns at the last page correctly (but no other balance-package can handle this situation better than pbalance, either). % However, pbalance ist not compatible with arxiv.
diff --git a/macros/latex/contrib/cs-techrep/template/selfref.bib b/macros/latex/contrib/cs-techrep/template/selfref.bib
deleted file mode 100644
index f498920efc..0000000000
--- a/macros/latex/contrib/cs-techrep/template/selfref.bib
+++ /dev/null
@@ -1,10 +0,0 @@
- @TECHREPORT{selfref,
- author = {Christoph P. Neumann},
- title = {\cstechrepTitleBib},
- institution = {\cstechrepInstitution, \cstechrepDepartment},
- series = {\cstechrepSeries},
- number = {\cstechrepNumber},
- year = {2024},
- month = {3},
- langid = {english},
- }
diff --git a/macros/latex/contrib/cs-techrep/template/webdev_commons.bib b/macros/latex/contrib/cs-techrep/template/webdev_commons.bib
deleted file mode 100644
index 159bef9d0e..0000000000
--- a/macros/latex/contrib/cs-techrep/template/webdev_commons.bib
+++ /dev/null
@@ -1,572 +0,0 @@
-
-@Online{sqlite,
- author = {Richard Hipp},
- note = {[Online]},
- title = {{SQLite}: {F}eatures},
- url = {https://sqlite.org/features.html}
-}
-
-@Online{django,
- author = {Adrian Holovaty and Simon Willison},
- note = {[Online]},
- title = {Django},
- url = {https://www.djangoproject.com/},
-}
-
-@Online{fastapi,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {FastAPI},
- url = {https://fastapi.tiangolo.com/},
-}
-
-@Online{docker,
- author = {Docker},
- note = {[Online]},
- title = {Docker: Accelerated Container Application Development},
- url = {https://www.docker.com/},
-}
-
-@Online{elasticsearch,
- author = {Elastic},
- note = {[Online]},
- title = {Elasticsearch Platform},
- url = {https://www.elastic.co/de/elasticsearch/},
-}
-
-@Online{react,
- author = {Facebook},
- note = {[Online]},
- title = {React},
- url = {https://react.dev/},
-}
-
-@Online{angular,
- author = {Google},
- note = {[Online]},
- title = {Angular},
- url = {https://angular.io/},
-}
-
-@Online{vue,
- author = {Evan You},
- note = {[Online]},
- title = {Vue.js},
- url = {https://vuejs.org/},
-}
-
-@Online{eslint,
- author = {Nicholas Zakas},
- note = {[Online]},
- title = {ESLint: {P}luggable {J}avaScript linter},
- url = {https://eslint.org/},
-}
-
-@Online{express,
- author = {Douglas Christopher Wilson},
- note = {[Online]},
- title = {Express},
- url = {https://expressjs.com/},
-}
-
-@Online{graphql,
- author = {Facebook},
- note = {[Online]},
- title = {GraphQL: {A} query language for your {API}},
- url = {https://graphql.org/},
-}
-
-@Online{istanbuljs,
- author = {Istanbul},
- note = {[Online]},
- title = {Istanbul: {J}avaScript test coverage made simple},
- url = {https://istanbul.js.org/},
-}
-
-@Online{node,
- author = {Ryan Dahl},
- note = {[Online]},
- title = {Node.js},
- url = {https://www.nodejs.org/},
-}
-
-@Online{npm,
- author = {Isaac Schlueter},
- note = {[Online]},
- title = {npm},
- url = {https://www.npmjs.com/},
-}
-
-@Online{prettier,
- author = {Prettier},
- note = {[Online]},
- title = {Prettier: {O}pinionated {C}ode {F}ormatter},
- url = {https://prettier.io/},
-}
-
-@Online{svelte,
- author = {Rich Harris},
- note = {[Online]},
- title = {Svelte: Cybernetically enhanced web apps},
- url = {https://www.svelte.dev/},
-}
-
-@Online{sveltekit,
- author = {Rich Harris},
- note = {[Online]},
- title = {Svelte Kit: {T}he fastest way to build {S}velte Apps},
- url = {https://kit.svelte.dev/},
-}
-
-@Online{typescript,
- author = {Microsoft},
- note = {[Online]},
- title = {TypeScript: {J}avaScript {W}ith {S}yntax {F}or {T}ypes},
- url = {https://www.typescriptlang.org/},
-}
-
-@Online{jest,
- author = {Facebook},
- note = {[Online]},
- title = {Jest is a delightful JavaScript Testing Framework with a focus on simplicity},
- url = {https://jestjs.io/},
-
-}
-
-@Online{vite,
- author = {Evan You},
- note = {[Online]},
- title = {Vite: {N}ext {G}eneration {F}rontend {T}ooling},
- url = {https://github.com/vitejs/vite},
-}
-
-@Online{vitest,
- author = {Anthony Fu and Matías Capeletto},
- note = {[Online]},
- title = {Vitest: {A} {V}ite-native unit test framework},
- url = {https://vitest.dev/},
-}
-
-@Online{pinia,
- author = {Eduardo San Martin Morote},
- note = {[Online]},
- title = {Pinia},
- url = {https://pinia.vuejs.org/},
-}
-
-@Online{virtuoso,
- author = {OpenLink},
- note = {[Online]},
- title = {Virtuoso Universal Server},
- url = {https://virtuoso.openlinksw.com/},
-}
-
-@Online{ontotext,
- author = {Ontotext},
- note = {[Online]},
- title = {GraphDB},
- url = {https://www.ontotext.com/products/graphdb/},
-}
-
-@Online{mongodb,
- author = {Dwight Merriman and Eliot Horowitz and Kevin Ryan},
- note = {[Online]},
- title = {MongoDB},
- url = {https://www.mongodb.com/},
-}
-
-@Online{dotnet,
- author = {Microsoft},
- note = {[Online]},
- title = {{.NET}: free, open-source, cross-platform framework},
- url = {https://dotnet.microsoft.com/},
-}
-
-@Online{phaser,
- author = {{Photon Storm}},
- note = {[Online]},
- title = {Phaser Game Framework},
- url = {https://phaser.io/},
-}
-
-@Online{kubernetes,
- author = {{CNCF}},
- note = {[Online]},
- title = {Kubernetes/K8s: open-source system for automating deployment, scaling, and management of containerized applications},
- url = {https://kubernetes.io/},
-}
-
-@Online{bootstrap,
- author = {Mark Otto und Jacob Thornton},
- note = {[Online]},
- title = {Bootstrap: Build fast, responsive sites},
- url = {https://getbootstrap.com/},
-}
-
-@Online{docker-compose,
- author = {Docker},
- note = {[Online]},
- title = {Compose: Defining and Running Multi-Container Docker Applications},
- url = {https://docs.docker.com/compose/},
-}
-
-@book{restful,
- title={Architectural styles and the design of network-based software architectures},
- author={Fielding, Roy Thomas},
- year={2000},
- publisher={University of California, Irvine}
-}
-
-@Online{grpc,
- author = {{CNCF}},
- note = {[Online]},
- title = {gRPC: A high performance, open source universal RPC framework},
- url = {https://grpc.io/},
-}
-
-@Online{mysql,
- author = {Michael Widenius und David Axmark},
- note = {[Online]},
- title = {MySQL: high-performance and scalable Online Transaction Processing},
- url = {https://www.mysql.com/},
-}
-
-@Online{mariadb,
- author = {Michael Widenius},
- note = {[Online]},
- title = {MariaDB Community Server},
- url = {https://mariadb.com/},
-}
-
-@Online{postgresql,
- author = {Andrew Yu and Jolly Chen},
- note = {[Online]},
- title = {PostgreSQL: Open Source Relational Database},
- url = {https://www.postgresql.org/},
-}
-
-@Online{opcua,
- author = {{OPC}},
- note = {[Online]},
- title = {OPC Unified Architecture: a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework},
- url = {https://opcfoundation.org/about/opc-technologies/opc-ua/},
-}
-
-@Online{aws,
- author = {Amazon},
- note = {[Online]},
- title = {Amazon Web Services},
- url = {https://aws.amazon.com/}
-}
-
-@Online{aws-cognito,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS Cognito}: Identity Platform},
- url = {https://aws.amazon.com/cognito/}
-}
-
-@Online{aws-apigateway,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS API Gateway}},
- url = {https://aws.amazon.com/api-gateway/}
-}
-
-@Online{mongodb-atlas,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB Atlas}},
- url = {https://www.mongodb.com/atlas},
-}
-
-@Online{mongodb-atlas-serverless,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS} Prescriptive Guidance: {MongoDB Atlas} on {AWS} -- Migrating from a self-managed environment to the {AWS} Cloud},
- url = {https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/serverless.html}
-}
-
-@Online{aws-lambda,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS Lambda}},
- url = {https://aws.amazon.com/lambda/}
-}
-
-@Online{aws-ec2,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS EC2}},
- url = {https://aws.amazon.com/ec2/}
-}
-
-@Online{nextjs,
- author = {Vercel},
- note = {[Online]},
- title = {Next.js},
- url = {https://nextjs.org/}
-}
-
-@Online{aws-lambda-runtime,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS Lambda}: Run-Time Environment},
- url = {https://docs.aws.amazon.com/de_de/lambda/latest/dg/lambda-runtime-environment.html}
-}
-
-@Online{authjs,
- author = {Balázs Orbán},
- note = {[Online]},
- title = {Auth.js},
- url = {https://authjs.dev/}
-}
-
-@Online{mongodb-via-aws,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB Atlas} via {AWS}},
- url = {https://www.mongodb.com/docs/atlas/reference/amazon-aws/}
-}
-
-@Online{mongodb-replication,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB} Replication},
- url = {https://www.mongodb.com/docs/manual/replication/}
-}
-
-@Online{prisma,
- author = {{Prisma Data, Inc.}},
- note = {[Online]},
- title = {Prisma},
- url = {https://www.prisma.io/}
-}
-
-@Online{prisma-schema,
- author = {{Prisma Data, Inc.}},
- note = {[Online]},
- title = {Prisma Schema},
- url = {https://www.prisma.io/docs/concepts/components/prisma-schema}
-}
-
-@Online{aws-s3,
- author = {Amazon},
- note = {[Online]},
- title = {{Amazon S3}},
- url = {https://aws.amazon.com/s3/},
-}
-@Online{aws-sam,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS SAM}},
- url = {https://aws.amazon.com/serverless/sam/},
-}
-
-@Online{aws-cli,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS CLI}},
- url = {https://aws.amazon.com/cli/},
-}
-
-@Online{aws-iam,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS IAM}},
- url = {https://aws.amazon.com/iam/},
-}
-
-@Online{aws-toolkit-intelij,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS Toolkit} for {IntelliJ IDEA}},
- url = {https://aws.amazon.com/intellij/},
-}
-
-@Online{kaggle-elonmusktweets,
- author = {Google},
- note = {[Online]},
- title = {Kaggle Datasets: Elon Musk Tweets},
- url = {https://www.kaggle.com/datasets/gpreda/elon-musk-tweets},
-}
-
-@Online{yfinance,
- author = {Yahoo},
- note = {[Online]},
- title = {Yahoo Finance},
- url = {https://finance.yahoo.com},
-}
-
-@Online{d3js,
- author = {Observable},
- note = {[Online]},
- title = {D3.js},
- url = {https://d3js.org},
-}
-
-@Online{mui,
- author = {{Material UI SAS}},
- note = {[Online]},
- title = {{MUI}: The React component library you always wanted},
- url = {https://mui.com},
-}
-
-
-@Online{pytest,
- author = {Holger Krekel and {pytest Entwicklungteam}},
- note = {[Online]},
- title = {Pytest},
- url = {https://pytest.org/}
-}
-
-@Online{starlette,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {Starlette},
- url = {https://www.starlette.io/},
-}
-
-@Online{pydantic,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {Pydantic Documentation},
- url = {https://docs.pydantic.dev/},
-}
-
-@Online{uvicorn,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {Uvicorn},
- url = {https://www.uvicorn.org/}
-}
-
-@Online{terraform,
- author = {{HashiCorp}},
- note = {[Online]},
- title = {Terraform},
- url = {https://www.terraform.io/}
-}
-
-@Online{cypress,
- author = {Brian Mann},
- note = {[Online]},
- title = {Cypress},
- url = {https://www.cypress.io/}
-}
-
-@Online{pymongo,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {PyMongo},
- url = {https://pypi.org/project/pymongo/}
-}
-
-@Online{websocket-whatwg,
- author = {Ian Hickson and Michael Carter},
- note = {[Online]},
- title = {Origin of {WebSocket} ({IRC} logs: freenode / \#whatwg / 20080618)},
- url = {https://krijnhoetmer.nl/irc-logs/whatwg/20080618#l-1145},
-}
-
-@TechReport{rfc6455,
- type ={{RFC}},
- number = 6455,
- doi = {10.17487/RFC6455},
- url = {https://www.rfc-editor.org/info/rfc6455},
- author = {Alexey Melnikov and Ian Fette},
- title = {{The WebSocket Protocol}},
- year = 2011,
- month = dec,
- issn = {2070-1721},
-}
-
-@Online{socketio,
- author = {Guillermo Rauch},
- note = {[Online]},
- title = {{Socket.IO}},
- url = {https://socket.io/},
-}
-
-@Online{catapi,
- author = {Aden Forshaw},
- note = {[Online]},
- title = {The Cat {API}},
- url = {https://thecatapi.com/},
-}
-
-@Online{boto3,
- author = {Amazon},
- note = {[Online]},
- title = {{Boto3}: {AWS SDK} for Python},
- url = {https://boto3.amazonaws.com/v1/documentation/api/latest/index.html},
-}
-
-@Online{aws-sdk-js,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS SDK} for {JavaScript}},
- url = {https://www.npmjs.com/package/aws-sdk},
-}
-
-@Online{pytest-cov,
- author = {Holger Krekel and {pytest Entwicklungteam}},
- note = {[Online]},
- title = {pytest Coverage Reports},
- url = {https://pypi.org/project/pytest-cov/},
-}
-
-@Online{scratch,
- author = {{MIT Media Lab}},
- note = {[Online]},
- title = {Scratch},
- url = {https://scratch.mit.edu/projects/editor/},
-}
-
-@Online{python,
- author = {Guido van Rossum},
- note = {[Online]},
- title = {Python},
- url = {https://www.python.org},
-}
-
-@Online{opencv,
- author = {Gray Bradsky},
- note = {[Online]},
- title = {{OpenCV}: Open Source Computer Vision Library},
- url = {https://opencv.org},
-}
-
-@article{scikit-image,
- title = {scikit-image: image processing in {P}ython},
- author = {van der Walt, {S}t\'efan and {S}ch\"onberger, {J}ohannes {L}. and
- {Nunez-Iglesias}, {J}uan and {B}oulogne, {F}ran\c{c}ois and {W}arner,
- {J}oshua {D}. and {Y}ager, {N}eil and {G}ouillart, {E}mmanuelle and
- {Y}u, {T}ony and the scikit-image contributors},
- year = {2014},
- month = {6},
- keywords = {Image processing, Reproducible research, Education,
- Visualization, Open source, Python, Scientific programming},
- volume = {2},
- pages = {e453},
- journal = {PeerJ},
- issn = {2167-8359},
- url = {https://doi.org/10.7717/peerj.453},
- doi = {10.7717/peerj.453}
-}
-
-
-@Online{flask,
- author = {Pallets},
- note = {[Online]},
- title = {Flask User's Guide},
- url = {https://flask.palletsprojects.com/},
-}
-
-
-@Online{bibtemplate,
- author = {},
- note = {[Online]},
- title = {},
- url = {},
-} \ No newline at end of file
diff --git a/macros/latex/contrib/csthm/README.md b/macros/latex/contrib/csthm/README.md
new file mode 100644
index 0000000000..6a3186b8a7
--- /dev/null
+++ b/macros/latex/contrib/csthm/README.md
@@ -0,0 +1,89 @@
+---
+title: Theorem Environments for Computer Science (`csthm.sty`)
+linter-yaml-title-alias: Theorem Environments for Computer Science (`csthm.sty`)
+date created: Monday, March 25th 2024, 14:13:16
+date modified: Saturday, August 31st 2024, 11:32:48
+aliases: [Theorem Environments for Computer Science (`csthm.sty`)]
+---
+
+# Theorem Environments for Computer Science (`csthm.sty`)
+
+## Overview
+
+The `csthm` package provides customized theorem-like environments specifically designed for computer science documents. It offers a set of pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+
+## Features
+
+- **Pre-defined theorem styles:** `thmstyle`, `defstyle`, `remarkstyle`, and `hltstyle`
+- **Theorem environments:** theorem, fact, assumption, claim, conjecture, corollary, lemma, property, proposition
+- **Definition environments:** definition, example, exercise, problem, question
+- **Remark environments:** note, remark, solution
+- **Highlight environments:** important, highlight, key-point
+- **Custom environments:** case, axiom
+- **Accent Colour:** Customizable accent colour
+- **Cleveref Support:** Optional integration with `cleveref` package
+
+## Installation
+
+1. Download the `csthm.sty` file.
+2. Place it in the same directory as your LaTeX document or in your local TeX tree.
+
+## Usage
+
+Load the package in your LaTeX document:
+
+```latex
+\usepackage{csthm}
+```
+
+To use the package with `cleveref` support:
+
+```latex
+\usepackage[cleveref]{csthm}
+```
+
+## Examples
+
+```latex
+\begin{theorem}
+ This is a theorem.
+\end{theorem}
+
+\begin{definition}
+ This is a definition.
+\end{definition}
+
+\begin{remark}
+ This is a remark.
+\end{remark}
+
+\begin{case}
+ \item This is case 1.
+ \item This is case 2.
+\end{case}
+
+\begin{axiom}
+ \item This is axiom A.
+ \item This is axiom B.
+\end{axiom}
+```
+
+## Customization
+
+To change the accent colour:
+
+```latex
+\setaccentcolor{blue}
+```
+
+## License
+
+This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008/05/04 or later.
+
+## Author
+
+Agni Datta <agnidatta.org@gmail.com>
+
+## Bug Reports and Feature Requests
+
+Please report any issues or feature requests on the package’s GitHub repository.
diff --git a/macros/latex/contrib/csthm/csthm-example.pdf b/macros/latex/contrib/csthm/csthm-example.pdf
new file mode 100644
index 0000000000..2f33de7d87
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csthm/csthm-example.tex b/macros/latex/contrib/csthm/csthm-example.tex
new file mode 100644
index 0000000000..670f632051
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm-example.tex
@@ -0,0 +1,407 @@
+\documentclass{ltxdoc}
+
+% Encoding and Fonts
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{lmodern}
+
+% Geometry and Layout
+\usepackage{csquotes}
+\usepackage[a4paper, margin=3.5cm]{geometry}
+\usepackage{microtype}
+\usepackage{parskip}
+\usepackage[onehalfspacing]{setspace}
+
+% Code Listings
+\usepackage{listings}
+\lstset{%
+ basicstyle=\scriptsize\ttfamily,
+ breaklines=true,
+ frame=single,
+ columns=fullflexible,
+ numbers=left,
+ numberstyle=\tiny\ttfamily\color{gray},
+ breakindent=0pt
+}
+
+% Colors and Hyperlinks
+\usepackage{xcolor}
+\usepackage[pdfusetitle, colorlinks=true, linkcolor=blue, urlcolor=violet]{hyperref}
+\usepackage{xurl}
+
+% Theorem-like Environments
+\usepackage{csthm}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\newcommand{\pkg}[1]{\textsf{#1}}
+\newcommand{\opt}[1]{\texttt{#1}}
+\newcommand{\env}[1]{\texttt{#1}}
+\newcommand{\cmnd}[1]{\texttt{\textbackslash#1}}
+
+\title{The \pkg{csthm} Package}
+\author{Agni Datta \\ \texttt{agnidatta.org@gmail.com}}
+\date{Version 1.2 (August 31, 2024)}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+The \pkg{csthm} package provides a set of customised theorem-like environments specifically designed for computer science documents. It offers pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+
+\section{Package Options}
+
+The \pkg{csthm} package supports the following option:
+
+\begin{description}
+ \item[\opt{cleveref}] Loads the \pkg{cleveref} package for enhanced cross-referencing capabilities. This option requires the \pkg{hyperref} package to be loaded before \pkg{csthm}.
+\end{description}
+
+\section{Usage}
+
+To use the package with default settings:
+
+\begin{verbatim}
+\usepackage{csthm}
+\end{verbatim}
+
+To use the package with \pkg{cleveref} support:
+
+\begin{verbatim}
+\usepackage{hyperref}
+\usepackage[cleveref]{csthm}
+\end{verbatim}
+
+\section{Theorem Styles}
+
+The package defines four theorem styles:
+
+\begin{description}
+ \item[thmstyle] Used for theorems, lemmas, corollaries, etc.
+ \item[defstyle] Used for definitions, examples, problems, etc.
+ \item[remarkstyle] Used for remarks, notes, solutions, etc.
+ \item[hltstyle] Used for highlighted content like important points.
+\end{description}
+
+\section{Predefined Environments}
+
+\subsection{Theorem-like Environments}
+
+\begin{itemize}
+ \item \env{theorem}
+ \item \env{fact}
+ \item \env{assumption}
+ \item \env{claim}
+ \item \env{conjecture}
+ \item \env{corollary}
+ \item \env{lemma}
+ \item \env{property}
+ \item \env{proposition}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{theorem}[Optional Title]
+ Theorem content...
+\end{theorem}
+\end{verbatim}
+
+\subsection{Definition-like Environments}
+
+\begin{itemize}
+ \item \env{definition}
+ \item \env{example}
+ \item \env{exercise}
+ \item \env{problem}
+ \item \env{question}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{definition}[Optional Title]
+ Definition content...
+\end{definition}
+\end{verbatim}
+
+\subsection{Remark-like Environments}
+
+\begin{itemize}
+ \item \env{note}
+ \item \env{remark}
+ \item \env{solution}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{remark}[Optional Title]
+ Remark content...
+\end{remark}
+\end{verbatim}
+
+\subsection{Highlight Environments}
+
+\begin{itemize}
+ \item \env{important}
+ \item \env{highlight}
+ \item \env{keypoint}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{important}[Optional Title]
+ Important content...
+\end{important}
+\end{verbatim}
+
+\subsection{Special Environments}
+
+\subsubsection{Case Environment}
+
+The \env{case} environment provides an enumerated list for describing different cases in a proof or analysis.
+
+Usage:
+\begin{verbatim}
+\begin{case}[Optional arguments for enumerate]
+ \item Case 1: ...
+ \item Case 2: ...
+\end{case}
+\end{verbatim}
+
+\subsubsection{Axiom Environment}
+
+The \env{axiom} environment provides an enumerated list for stating axioms.
+
+Usage:
+\begin{verbatim}
+\begin{axiom}[Optional arguments for enumerate]
+ \item Axiom 1: ...
+ \item Axiom 2: ...
+\end{axiom}
+\end{verbatim}
+
+\section{Customization}
+
+\subsection{Accent Color}
+
+You can customise the accent colour used in the package by redefining the \cmnd{accentcolor} command:
+
+\begin{verbatim}
+\renewcommand{\accentcolor}{blue}
+\end{verbatim}
+
+Or use the provided command:
+
+\begin{verbatim}
+\setaccentcolor{blue}
+\end{verbatim}
+
+\subsection{QED Symbol}
+
+The package redefines the QED symbol to a filled black square. You can customise this by redefining the \cmnd{qedsymbol} command:
+
+\begin{verbatim}
+\renewcommand\qedsymbol{$\square$}
+\end{verbatim}
+
+\section{Examples}
+
+Here are some examples demonstrating the usage of various environments:
+
+\begin{theorem}[Complexity of Bubble Sort]
+ The time complexity of the Bubble Sort algorithm is $\mathcal{O}(n^2)$ in the worst and average cases, where $n$ is the number of elements to be sorted.
+\end{theorem}
+
+\begin{proof}
+ Bubble Sort uses two nested loops to compare and swap adjacent elements. The outer loop runs $n-1$ times, and the inner loop runs $n-i-1$ times for each iteration $i$ of the outer loop. This results in approximately $n^2/2$ comparisons, leading to a time complexity of $\mathcal{O}(n^2)$.
+\end{proof}
+
+\begin{definition}[Big O Notation]
+ For functions $f(n)$ and $g(n)$, we say $f(n) = \mathcal{O}(g(n))$ if there exist positive constants $c$ and $n_0$ such that $0 \leq f(n) \leq cg(n)$ for all $n \geq n_0$.
+\end{definition}
+
+\begin{remark}
+ While Bubble Sort has a worst-case time complexity of $\mathcal{O}(n^2)$, it can be useful for small datasets or nearly sorted arrays due to its simplicity and in-place sorting nature.
+\end{remark}
+
+\begin{important}
+ Understanding time and space complexity is crucial for designing efficient algorithms and selecting appropriate data structures.
+\end{important}
+
+\begin{case}
+ \item Best Case: The time complexity is $\mathcal{O}(n \log n)$ when the pivot always divides the array into two halves.
+ \item Average Case: The expected time complexity is $\mathcal{O}(n \log n)$ with random pivot selection.
+ \item Worst Case: The time complexity is $\mathcal{O}(n^2)$ when the pivot is always the smallest or largest element.
+\end{case}
+
+\begin{axiom}
+ \item Axiom of Extensionality: Two sets are equal if and only if they have the same elements.
+ \item Axiom of Pairing: For any two sets $a$ and $b$, there exists a set $\{a, b\}$ that contains exactly $a$ and $b$ as its elements.
+\end{axiom}
+
+\section{Requirements}
+
+The \pkg{csthm} package requires the following packages:
+
+\begin{itemize}
+ \item \pkg{amsmath}
+ \item \pkg{amssymb}
+ \item \pkg{amsthm}
+ \item \pkg{enumitem}
+ \item \pkg{thmtools}
+\end{itemize}
+
+If the \opt{cleveref} option is used, the \pkg{hyperref} package must be loaded before \pkg{csthm}.
+
+\section{Version History}
+
+\begin{description}
+ \item[v1.0 (2024/08/31)] Initial version
+ \item[v1.1 (2024/08/31)] Added \opt{cleveref} support
+ \item[v1.2 (2024/08/31)] Improved documentation, code structure, and added to CTAN
+\end{description}
+
+\section{License}
+
+This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in:
+
+\url{http://www.latex-project.org/lppl.txt}
+
+and version 1.3c or later is part of all distributions of LaTeX version 2008/05/04 or later.
+
+\section{Feedback and Contributions}
+
+For bug reports, feature requests, or general feedback, please contact the package maintainer, Agni Datta, at \texttt{\hyperlink{mailto:agnidatta.org@gmail.com}{agnidatta.org@gmail.com}}.
+
+Contributions to the package are welcome. Please submit pull requests or issues to the package's GitHub repository.
+
+\section{Package Source Code}
+
+The following listing shows the source code of the \texttt{csthm.sty} file:
+
+\lstinputlisting{csthm.sty}
+
+\appendix
+
+\section{Real-Life Usage Examples}
+
+\subsection{Theorem Environments}
+
+The \pkg{csthm} package provides several theorem-like environments commonly used in computer science literature:
+
+\begin{theorem}[Graph Colouring]
+ For any graph $G$, the chromatic number $\chi(G)$ is the minimum number of colours needed to colour the vertices of $G$ such that no two adjacent vertices share the same colour.
+\end{theorem}
+
+\begin{lemma}[Sum of Odd Numbers]
+ For every positive integer $n$, the sum of the first $n$ odd numbers is equal to $n^2$.
+\end{lemma}
+
+\begin{proof}
+ We can prove this by induction on $n$:
+
+ \begin{case}
+ \item \textbf{Base case:} For $n=1$, the first odd number is 1, and $1^2 = 1$. The statement holds.
+
+ \item \textbf{Inductive step:} Assume the statement holds for some $k \geq 1$. We need to prove it for $k+1$.
+
+ The $(k+1)$-th odd number is $2k+1$. So, we have:
+
+ $\sum_{i=1}^{k+1} (2i-1) = \sum_{i=1}^k (2i-1) + (2k+1)$
+
+ $= k^2 + (2k+1)$ (by induction hypothesis)
+
+ $= k^2 + 2k + 1$
+
+ $= (k+1)^2$
+
+ Thus, the statement holds for $k+1$, completing the proof.
+ \end{case}
+\end{proof}
+
+\begin{corollary}[Sum of Integers]
+ The sum of the first $n$ positive integers is given by $\frac{n(n+1)}{2}$.
+\end{corollary}
+
+\begin{proposition}[Even Sum Property]
+ The sum of two even integers is always even.
+\end{proposition}
+
+\begin{conjecture}[Goldbach's Conjecture]
+ Every even integer greater than 2 can be expressed as the sum of two prime numbers.
+\end{conjecture}
+
+\subsection{Definition and Example Environments}
+
+To introduce key definitions and illustrative examples:
+
+\begin{definition}[Tree]
+ A \emph{tree} is a connected, undirected graph with no cycles.
+\end{definition}
+
+\begin{example}[Binary Tree]
+ Consider a binary tree with 7 nodes labelled from 1 to 7:
+ \begin{verbatim}
+ 1
+ / \
+ 2 3
+ / \ / \
+ 4 5 6 7
+ \end{verbatim}
+ This tree has 3 levels, and each parent node has at most 2 children.
+\end{example}
+
+\subsection{Remark Environments}
+
+To include remarks and notes that highlight important observations:
+
+\begin{remark}
+ While all trees are graphs, not all graphs are trees. A graph must be acyclic and connected to be classified as a tree.
+\end{remark}
+
+\begin{note}
+ Many conjectures, like Goldbach's Conjecture, remain unproven for centuries despite numerous verified instances. This highlights the complexity of certain mathematical problems.
+\end{note}
+
+\subsection{Highlight Environments}
+
+To emphasise crucial points within the document:
+
+\begin{important}
+ Algorithm efficiency is critical in computer science. Always consider time and space complexity when designing and analysing algorithms.
+\end{important}
+
+\begin{keypoint}
+ Understanding the P vs NP problem is fundamental in computational complexity theory and has significant implications for algorithm design and cryptography.
+\end{keypoint}
+
+\subsection{Case Environment}
+
+Used to present distinct cases in an argument or proof:
+
+\begin{theorem}[Factorial Definition]
+ The factorial of a non-negative integer $n$, denoted as $n!$, is defined as follows:
+\end{theorem}
+
+\begin{case}
+ \item When $n = 0$, $0! = 1$ (by definition).
+ \item When $n > 0$, $n! = n \times (n-1) \times \cdots \times 2 \times 1$.
+\end{case}
+
+\subsection{Axiom Environment}
+
+To enumerate foundational axioms in formal proofs:
+
+\begin{axiom}
+ \item For any sets $A$ and $B$, $A \cup B = B \cup A$ (Commutative Law of Union).
+ \item For any sets $A$, $B$, and $C$, $A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$ (Distributive Law).
+ \item For any set $A$, $A \cup \emptyset = A$ (Identity Law of Union).
+\end{axiom}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/csthm/csthm.dtx b/macros/latex/contrib/csthm/csthm.dtx
new file mode 100644
index 0000000000..5c059b3523
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm.dtx
@@ -0,0 +1,238 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Agni Datta.
+%
+% This work consists of the files csthm.dtx and csthm.ins
+% and the derived file csthm.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{csthm.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{csthm}
+%<*package>
+ [2024/08/31 v1.2 Theorem Environments for Computer Science]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{csthm}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{csthm.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2024/08/31}{Initial version}
+% \changes{v1.1}{2024/08/31}{Added cleveref support}
+% \changes{v1.2}{2024/08/31}{Improved documentation and code structure}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{csthm.dtx}
+% \title{The \textsf{csthm} package}
+% \author{Agni Datta \\ \url{agnidatta.org@gmail.com}}
+% \date{\filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% This package provides customized theorem-like environments specifically designed for computer science documents. It offers a set of pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+%
+% \section{Usage}
+%
+% Load the package with:
+% \begin{verbatim}
+% \usepackage{csthm}
+% \end{verbatim}
+%
+% To use the package with cleveref support:
+% \begin{verbatim}
+% \usepackage[cleveref]{csthm}
+% \end{verbatim}
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% Package options
+\newif\if@csthm@loadcleveref
+\DeclareOption{cleveref}{\@csthm@loadclevereftrue}
+\ProcessOptions\relax
+
+% Required packages
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{amsthm}
+\RequirePackage{enumitem}
+\RequirePackage{thmtools}
+
+% Conditionally load cleveref if the option is set and hyperref is loaded
+\if@csthm@loadcleveref
+\AtBeginDocument{%
+ \@ifpackageloaded{hyperref}{%
+ \RequirePackage{cleveref}
+ }{%
+ \PackageWarning{csthm}{The 'cleveref' option was set, but 'hyperref' is not loaded. Skipping 'cleveref' loading.}
+ }%
+}
+\fi
+
+% Define theorem styles
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\scshape,
+ notefont=\scshape,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\star$,
+ headpunct={.}
+]{thmstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\bfseries,
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{defstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\itshape,
+ notefont=\itshape,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{remarkstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\sffamily\scshape,
+ notefont=\sffamily\scshape,
+ bodyfont=\normalfont\sffamily,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{hltstyle}
+
+% Define theorem environments
+\declaretheorem[style=thmstyle,name=Theorem]{theorem}
+\declaretheorem[style=defstyle,sibling=theorem]{fact}
+\declaretheorem[style=thmstyle,sibling=theorem]{assumption}
+\declaretheorem[style=thmstyle,sibling=theorem]{claim}
+\declaretheorem[style=thmstyle,sibling=theorem]{conjecture}
+\declaretheorem[style=thmstyle,sibling=theorem]{corollary}
+\declaretheorem[style=thmstyle,sibling=theorem]{lemma}
+\declaretheorem[style=thmstyle,sibling=theorem]{property}
+\declaretheorem[style=thmstyle,sibling=theorem]{proposition}
+
+% Define definition environments
+\declaretheorem[style=defstyle,sibling=theorem]{definition}
+\declaretheorem[style=defstyle,sibling=theorem]{example}
+\declaretheorem[style=defstyle,sibling=theorem]{exercise}
+\declaretheorem[style=defstyle,sibling=theorem]{problem}
+\declaretheorem[style=defstyle,sibling=theorem]{question}
+
+% Define remark environments
+\declaretheorem[style=remarkstyle,sibling=theorem]{note}
+\declaretheorem[style=remarkstyle,sibling=theorem]{remark}
+\declaretheorem[style=remarkstyle,sibling=theorem]{solution}
+
+% Define highlight environments
+\declaretheorem[style=hltstyle,name=Important]{important}
+\declaretheorem[style=hltstyle]{highlight}
+\declaretheorem[style=hltstyle]{keypoint}
+
+% Define case environment
+\newlist{caseList}{enumerate}{1}
+\setlist[caseList]{label=\textbf{Case~\arabic*:},leftmargin=*}
+
+\NewDocumentEnvironment{case}{O{}}{%
+ \begin{caseList}[#1]%
+ }{%
+ \end{caseList}%
+}
+
+% Define axiom environment
+\newlist{axiomList}{enumerate}{1}
+\setlist[axiomList]{label=\textbf{Axiom~\Alph*:}, leftmargin=*}
+
+\NewDocumentEnvironment{axiom}{O{}}{%
+ \begin{axiomList}[#1]%
+ }{%
+ \end{axiomList}%
+}
+
+% Custom QED symbol
+\renewcommand\qedsymbol{$\scriptstyle\blacksquare$}
+
+% Define accent color (customizable by the user)
+\providecommand{\accentcolor}{black}
+
+% Package documentation commands
+\providecommand{\csthmpkg}{\textsf{csthm}}
+\providecommand{\email}[1]{\href{mailto:#1}{\texttt{#1}}}
+
+% User-level commands for customization
+\newcommand{\setaccentcolor}[1]{\renewcommand{\accentcolor}{#1}}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.ins b/macros/latex/contrib/csthm/csthm.ins
index f7563b4ab1..02d0c9ea13 100644
--- a/macros/latex/contrib/isosafety/isosafety.ins
+++ b/macros/latex/contrib/csthm/csthm.ins
@@ -1,56 +1,55 @@
%%
-%% Copyright (C) 2023 by BenSt099
+%% Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
%%
%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3 of this license
-%% or (at your option) any later version. The latest version of this
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
%% license is in:
-%%
+%%
%% http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3 or later is part of all distributions of LaTeX version
-%% 2005/12/01 or later.
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
%%
\input docstrip.tex
\keepsilent
-\usedir{tex/latex/isosafety}
+\usedir{tex/latex/csthm}
\preamble
This is a generated file.
-Copyright (C) 2023 by BenSt099
+Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
This file may be distributed and/or modified under the conditions of
-the LaTeX Project Public License, either version 1.3 of this license
+the LaTeX Project Public License, either version 1.3c of this license
or (at your option) any later version. The latest version of this
license is in:
http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX version
-2005/12/01 or later.
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
\endpreamble
-\generate{\file{isosafety.sty}{\from{isosafety.dtx}{package}}}
+\generate{\file{csthm.sty}{\from{csthm.dtx}{package}}}
\obeyspaces
-\Msg{*************************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the following *}
-\Msg{* file into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* isosafety.sty *}
-\Msg{* isosafety-pdfs/* *}
-\Msg{* *}
-\Msg{* To produce the documentation run the file isosafety.dtx *}
-\Msg{* through LaTeX. *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{* *}
-\Msg{*************************************************************}
-
-\endbatchfile
+\Msg{************************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* csthm.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file csthm.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{************************************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/csvsimple/CHANGES.md b/macros/latex/contrib/csvsimple/CHANGES.md
index 3178395f76..e2ccf7af24 100644
--- a/macros/latex/contrib/csvsimple/CHANGES.md
+++ b/macros/latex/contrib/csvsimple/CHANGES.md
@@ -17,6 +17,20 @@ and this project adheres to
+## [2.7.0] - 2024-09-27
+
+### Added
+- Warning, if the CSV file does not contain (accepted) data lines
+
+### Changed
+- Comment lines or empty line before header line are now supported (issue #41)
+- If there is no data line, `late after head` and `late after last line` are applied nonetheless
+ (loosely connected to issue #41). Note: You should not use files without data!
+- Technical information: The package documentation is now produced with lualatex instead of pdflatex
+- Technical information: The documentation loads `minted2`, if it exists, to avoid encoding errors and latexmk problems with minted v3
+
+
+
## [2.6.1] - 2024-05-16
### Changed
diff --git a/macros/latex/contrib/csvsimple/README.md b/macros/latex/contrib/csvsimple/README.md
index 29196c03e9..47c07daf07 100644
--- a/macros/latex/contrib/csvsimple/README.md
+++ b/macros/latex/contrib/csvsimple/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+# The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
> Copyright (c) 2008-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/csvsimple/csvsimple-doc.sty b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
index c8d933c684..12141768f5 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-doc.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
@@ -1,5 +1,5 @@
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-doc.sty: style file for the documentation
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%%
%% This work consists of all files listed in README.md
%%
-\def\version{2.6.1}%
-\def\datum{2024/05/16}%
+\def\version{2.7.0}%
+\def\datum{2024/09/27}%
\IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}\providecommand\csvpkgprefix{}
@@ -55,6 +55,7 @@
\RequirePackage{longtable,booktabs,ifthen,etoolbox}
+\IfFileExists{minted2.sty}{\RequirePackage{minted2}}{}
\RequirePackage{tcolorbox}
\tcbuselibrary{skins,xparse,minted,breakable,documentation,raster}
@@ -112,4 +113,4 @@
\makeindex
-\pdfsuppresswarningpagegroup=1
+%\pdfsuppresswarningpagegroup=1
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.pdf b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
index f85684f6d1..b916830089 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.tex b/macros/latex/contrib/csvsimple/csvsimple-example.tex
index 0baf2183c7..73b321be2b 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
index f17b9183c3..66d770fefe 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.sty b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
index 849aa79aec..3d8d1484b6 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-l3.sty: Simple LaTeX CSV file processing (LaTeX3)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesExplPackage{csvsimple-l3}{2024/05/16}{2.6.1}
+\ProvidesExplPackage{csvsimple-l3}{2024/09/27}{2.7.0}
{LaTeX3 CSV file processing}
@@ -148,9 +148,6 @@
Therefore,~the~macro~#2 is~not~defined.
}
-\msg_new:nnn { csvsimple }{ empty-head }
- { File~'#1'~starts~with~an~empty~line~(empty~head)!.}
-
\msg_new:nnn { csvsimple }{ file-error }
{ File~'#1'~not~existent,~not~readable,~or~empty!}
@@ -167,6 +164,8 @@
{ Call~of~CSV-Sorter~failed! }
{ See~log~file~'\l__csvsim_csvsorter_log_str'. }
+\msg_new:nnn { csvsimple }{ data-missing }
+ { File~'#1'~does~not~contain~(accepted)~data~lines!~The~result~may~be~unpleasant.}
%---- core loop processing
@@ -227,18 +226,18 @@
\cs_new_protected_nopar:Npn \__csvsim_read_head:
{
- \__csvsim_read_line:
- \tl_if_eq:NNTF \csvline \c__csvsim_par_tl
+ \bool_do_while:nn
{
- \msg_error:nne { csvsimple }{ empty-head }{ \g__csvsim_filename_str }
+ \bool_lazy_or_p:nn { \tl_if_eq_p:NN \csvline \c__csvsim_par_tl }{ \tl_if_blank_p:o \csvline }
}
{
- \int_gzero:N \g_csvsim_columncount_int
- \__csvsim_scan_line:
- \bool_if:NT \g__csvsim_colnames_detection_bool
- {
- \int_step_function:nN \g_csvsim_columncount_int \__csvsim_process_head_name:n
- }
+ \__csvsim_read_line:
+ }
+ \int_gzero:N \g_csvsim_columncount_int
+ \__csvsim_scan_line:
+ \bool_if:NT \g__csvsim_colnames_detection_bool
+ {
+ \int_step_function:nN \g_csvsim_columncount_int \__csvsim_process_head_name:n
}
}
@@ -395,10 +394,15 @@
}
\__csvsim_set_colnames:
\seq_gclear:N \g__csvsim_colname_seq
- \bool_if:NF \g__csvsim_line_firstline_bool
+ \bool_if:NT \g__csvsim_line_firstline_bool
{
- \g__csvsim_hook_late_after_last_line_tl
+ \msg_warning:nne { csvsimple }{ data-missing }{ \g__csvsim_filename_str }
+ \bool_if:NT \g__csvsim_head_bool
+ {
+ \g__csvsim_hook_late_after_head_tl
+ }
}
+ \g__csvsim_hook_late_after_last_line_tl
\g__csvsim_hook_table_end_tl
\g__csvsim_hook_after_reading_tl
\bool_if:NT \g__csvsim_collect_data_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.tex b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
index 6c70fa3003..fba06f6660 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
@@ -1,7 +1,7 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
% !TeX spellcheck=en_US
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -1027,14 +1027,14 @@ see Section~\ref{subsec:tabsupport} from page~\pageref{subsec:tabsupport}.
\clearpage
\subsection{Header Processing and Column Name Assignment}%
-\begin{docCsvKey}{head}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
- If this key is set, the first line of the CSV file is treated as a header
+\begin{docCsvKey}[doc updated=2024-09-18]{head}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
+ If this key is set, the first non-empty line of the CSV file is treated as a header
line which can be used for column name assignments.
\end{docCsvKey}
\begin{docCsvKey}{no head}{}{no value}
- Abbreviation for |head=false|, i.\,e. the first line of the CSV file is
+ Abbreviation for |head=false|, i.\,e. the first non-empty line of the CSV file is
treated as data line.
Note that this option cannot be used in combination with
the |\csvauto...| commands like \refCom{csvautotabular}, etc.
@@ -1842,6 +1842,7 @@ completeness, but are unlikely to be used directly.
\subsection{Special Characters}\label{subsec:specchar}
Be default, the CSV content is treated like normal \LaTeX\ text, see
Subsection~\ref{macrocodexample} on page~\pageref{macrocodexample}.
+For example, \%~can be used to start an in-line comment.
But, \TeX\ special characters of the CSV content may also be interpreted
as normal characters (|\catcode| 12, other), if one or more of the following options are used.
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
index 6138c507e3..25285b6379 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
index ecaba4a7b0..7db0c82117 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-legacy.sty: Simple LaTeX CSV file processing (LaTeX2e)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{csvsimple-legacy}[2024/05/16 version 2.6.1 LaTeX2e CSV file processing]
+\ProvidesPackage{csvsimple-legacy}[2024/09/27 version 2.7.0 LaTeX2e CSV file processing]
%---- check package
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
index ae40e8563d..2161afddb2 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple.pdf b/macros/latex/contrib/csvsimple/csvsimple.pdf
index 8d148b5a6f..a5cb3da2e5 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple.sty b/macros/latex/contrib/csvsimple/csvsimple.sty
index 01ccbb3f72..a9d549f76d 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.sty: Simple LaTeX CSV file processing
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage{csvsimple}{2024/05/16}{2.6.1}
+\ProvidesExplPackage{csvsimple}{2024/09/27}{2.7.0}
{LaTeX CSV file processing}
\cs_if_exist:NT \c__csvsim_package_expl_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple.tex b/macros/latex/contrib/csvsimple/csvsimple.tex
index 73d34f4c34..f3a5d66953 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
index fe5aeba297..212a2da0c9 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
index 321723f025..abfa9021a9 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13/07/2024}
+\def\TPversion{0.2.3}
+\def\TPdate{09/14/2024}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -59,7 +59,7 @@
{\Huge \texttt{customenvs [en]}}\\
\\
{\Large Some custom environments,} \\
- {\Large with spacing enhancements.} \\
+ {\Large or small patches.} \\
\end{tabular}
\renewcommand\arraystretch{1}
@@ -111,7 +111,18 @@
\section{History}
+\verb|v0.2.3|~:~~~Highway signs + sold banners (see \textsf{[fr]} doc)
+
+\verb|v0.2.2|~:~~~Flared arrow, with \TikZ
+
+\verb|v0.2.1|~:~~~Enhancements for \textit{stars skills} + AutoGrid for \TikZ\ (see \textsf{[fr]} doc)
+
+\verb|v0.2.0|~:~~~~Skills with stars (\textsf{fontawesome5} or \TikZ)
+
+\verb|v0.1.9|~:~~~~Title banner
+
\verb|v0.1.8|~:~~~~Score banner
+
\verb|v0.1.7|~:~~~~Small patch for \textsf{Vignette} macro (see \texttt{[fr]} documentation)
\verb|v0.1.6|~:~~~~Small patchs for \textsf{displayskip} + \textsf{pas-tableur} (see \texttt{[fr]} documentation)
@@ -558,4 +569,149 @@ Regarding the bubble creation commands, \MontreCode{\textbackslash InSMS} and \M
\end{ChatSMS}
\end{demohigh}
+\pagebreak
+
+\section{Title banner}
+
+\subsection{Global usage}
+
+The idea is to propose a banner, made with \TikZ, to present for example a title.
+
+The global style is fixed, but few customizations are possible.
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri[keys]{number}{title}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri{01}{Titre du document}
+\end{demohigh}
+
+Available \MontreCode{keys} are :
+
+\begin{itemize}
+ \item \MontreCode{height} (\MontreCode{2.5em} by default)
+ \item \MontreCode{width} (\MontreCode{\textbackslash linewidth} by default)
+ \item \MontreCode{blockwidth} (\MontreCode{2.75em} by default, but can be set to \MontreCode{auto})
+ \item \MontreCode{coltxt} (\MontreCode{white} by default)
+ \item \MontreCode{fonttxt}
+ \item \MontreCode{swap} (\MontreCode{false} by default, for an other style )
+ \item \MontreCode{maincolor} (\MontreCode{darkgray} by default)
+ \item \MontreCode{collight} (\MontreCode{darkgray!25} by default)
+ \item \MontreCode{colmedium} (\MontreCode{darkgray!50} by default)
+ \item \MontreCode{coldark} (\MontreCode{darkgray} by default)
+ \item \MontreCode{logo}
+ \item \MontreCode{type}
+ \item \MontreCode{dispblock} (\MontreCode{true} by default)
+ \item \MontreCode{num} (\MontreCode{true} by default)
+ \item \MontreCode{customtype}
+\end{itemize}
+
+\subsection{Examples}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=5em,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{My doc}
+\end{demohigh}
+
+It's possible to redefine \MontreCode{\textbackslash part} (for example).
+
+\pagebreak
+
+\section{Various commands}
+
+\subsection{Difficulty levels with stars (fontawesome5)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars[max level (3)]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars{0}\par
+\DiffLevelStars{2.5}\par
+\textcolor{teal}{\LARGE\DiffLevelStars[5]{4}}\par
+\DiffLevelStars[5]{1.5}\par
+\end{demohigh}
+
+\subsection{Difficulty levels with stars (tikz)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars[colframe=...,colback=...,offset=...,maxlevel=...,valign=...]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars{2.5}\par
+{\LARGE We ty inline \tkzLevelStars{2.25} with score 2.25}\par
+{\LARGE We ty inline \tkzLevelStars[valign=false]{1.75} with score 1.75}\par
+\tkzLevelStars[colframe=red,colback=yellow,maxlevel=5]{3}
+\end{demohigh}
+
+\subsection{Flared arrow}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzFlaredArrow[%
+ color=..., %color of arrow
+ arrowsize=..., %size (auto or H/W )
+ bend=..., %empty for straigth or left/... or right/...
+ thickness=..., %size for the beginning
+ factor=..., %factor for calculing size for ending
+ arrowstyle=..., %style (arrows.meta)
+ move=... %boolean for moving instead coordinates
+ ]%
+ {begin}{end or move}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+%arrow 0.5mm -> 1.25mm
+\begin{tikzpicture}
+\tkzFlaredArrow%
+ [thickness=0.5mm,factor=2.5,bend=left/30,color=red,arrowstyle=Triangle]%
+ {0,0}{5,1.5}
+\end{tikzpicture}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\begin{tikzpicture}
+ \draw[thin,lightgray] (-3,-1) grid (5,5) ;
+ \coordinate (A) at (0,0) ; \coordinate (B) at (4,1) ;
+ \coordinate (C) at (1,1) ; \coordinate (D) at (5,4) ;
+ \coordinate (E) at (0,1) ; \coordinate (F) at (0,5) ;
+ \coordinate (G) at (-2,0) ;
+ \tkzFlaredArrow[color=green,arrowstyle=Triangle]{A}{B}
+ \tkzFlaredArrow[color=blue,bend=right/10]{D}{C}
+ \tkzFlaredArrow%
+ [color=red,bend=left/45,arrowstyle=Stealth,thickness=0.1mm,factor=10]%
+ {-2,1}{0,4}
+ \tkzFlaredArrow%
+ [color=red,bend=right/45,thickness=0.1mm,factor=10,arrowstyle=Stealth]%
+ {-2,1}{0,4}
+ \tkzFlaredArrow[color=teal,move,bend=left/10]{-3,-1}{5,1}
+ \end{tikzpicture}
+\end{demohigh}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
index 47dce47918..4c5cd3cd2f 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
index 7a7293ec6e..5f319afb89 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
@@ -39,10 +39,11 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13 juillet 2024}
+\def\TPversion{0.2.3}
+\def\TPdate{14 septembre 2024}
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8}
+%\usepackage{eurosym}
\newtcblisting{DemoCode}[1]{%
enhanced,width=0.95\linewidth,center,%
bicolor,size=title,%
@@ -50,6 +51,8 @@
colbacklower=cyan!1!white,%
colframe=cyan!75!black,%
listing options={%
+ inputencoding=utf8,
+ %literate={`E}{{€}}{1},
breaklines=true,%
breakatwhitespace=true,%
style=tcblatex,basicstyle=\small\ttfamily,%
@@ -62,14 +65,14 @@
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
- morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon},%
+ morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon,part,RenewDocumentCommand,IfBooleanTF,\VilleDist},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore,\InsererImage,\tkzBannerTri,\NiveauDiffExos,\tkzEtoiles,\tkzGrilleAuto,\tkzAutoGridLocal,\tkzAutoGridActivate,\tkzFlecheEvasee,PanneauAutoroute,\AfficheSoldes},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles},%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype,Couleur,AlignV,Offset,NiveauMax,pasX,pasY,grilleauto,TailleFleche,Direction,Coeff,TypeFleche,Deplacement,LineCap,Epaisseur,CouleurCartouche,Fleches,CouleurFond,CouleurTitre,PoliceCartouche,TypeFleche,EspacementV,OffsetFleches,Dernier,PoliceEntete,PolicePrix,PoliceReduc,OffsetReduc,AgrandirReduc},%
keywordstyle={\color{orange}}
},%
#1
@@ -149,6 +152,18 @@
\section{Historique}
+\verb|v0.2.3|~:~~~Panneaux autoroutiers + Affichettes de soldes
+
+\verb|v0.2.2|~:~~~Ajout d'une commande pour des flèches évasées, en \TikZ\
+
+\verb|v0.2.1|~:~~~Amélioration de la gestion des étoiles pour des niveaux de difficultés + Grille auto pour \TikZ\
+
+\verb|v0.2.0|~:~~~Étoiles pour des niveaux de difficultés (compatible avec \texttt{EnvtExo})
+
+\verb|v0.1.9|~:~~~Bannière de titre + Insertion d'images en remplissage vertical
+
+\verb|v0.1.8|~:~~~Nutriscore
+
\verb|v0.1.7|~:~~~~Possibilité de créer des vignettes \textsf{perso}
\verb|v0.1.6|~:~~~~Patch \textsf{displayskip} + Patches \textsf{pas-tableur}
@@ -210,7 +225,10 @@ Les packages chargés sont :
\item \MontreCode{tabularray} ;
\item \MontreCode{xcolor} ;
\item \MontreCode{fontawesome5} ;
- \item \MontreCode{tikz} avec les librairies \MontreCode{decorations.pathmorphing,positioning,shapes.misc,calc}.
+ \item \MontreCode{tikz} avec les librairies :
+ \begin{itemize}
+ \item \MontreCode{decorations.pathmorphing,positioning,shapes.misc,calc,arrows,arrows.meta}.
+ \end{itemize}
\end{itemize}
À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{fontawesome5} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
@@ -952,6 +970,8 @@ Les éléments personnalisables sont :
\begin{itemize}
\item le libellé via la clé \MontreCode{[Libelle]}, qui vaut \MontreCode{Exercice~} par défaut ;
\item la couleur via la clé \MontreCode{[Couleur]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+ \item la couleur de la décoration (si textuelle) via la clé \MontreCode{[CouleurDeco]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+ \item la couleur de fond la décoration (si il existe) via la clé \MontreCode{[CouleurFondDeco]}, qui vaut 50\,\% de \MontreCode{blue!50!black} par défaut ;
\item la police via la clé \MontreCode{[Police]}, qui vaut \MontreCode{\textbackslash bfseries\textbackslash LARGE\textbackslash sffamily} par défaut ;
\item l'épaisseur du trait (éventuel) via la clé \MontreCode{[EpTrait]}, qui vaut \MontreCode{1.1pt} par défaut.
\end{itemize}
@@ -999,14 +1019,13 @@ Hormis le style global, il est possible de modifier/ajouter certains éléments
\item des points, sous la forme \texttt{(xx points)} ;
\item une image, via \texttt{graphicx}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item une icône, via \texttt{fontawesome5}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \item des étoiles, via \texttt{fontawesome5} ou \TikZ, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item un petit chronomètre, via \texttt{pictochrono}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item une ceinture colorée, via \texttt{coloredbelts}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\end{itemize}
\item le compteur (nommé \MontreCode{numeroexo}) peut être désactivé et \textit{adpaté} via les commandes classiques de compteurs.
\end{itemize}
-\pagebreak
-
Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\begin{itemize}
@@ -1022,6 +1041,8 @@ Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\item \MontreCode{Ceinture/...} := afficher la ceinture couleur \MontreCode{...} à la fin de la ligne ;
\item \MontreCode{Chrono/...} := afficher le chrono de durée \MontreCode{...} à la fin de la ligne ;
\item \MontreCode{Points/...} := afficher les points \MontreCode{(... points)} à la fin de la ligne ;
+ \item \MontreCode{faEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
+ \item \MontreCode{tkzEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
\end{itemize}
\item \MontreCode{Trait} : choix du trait parmi :
\begin{itemize}
@@ -1032,6 +1053,34 @@ Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\end{itemize}
\end{itemize}
+La commande d'affichage des étoiles de difficultés est indépendante de l'environnement \MontreCode{EnvtExo}, la clé \MontreCode{Decoration=xxxEtoiles/niv} ou \MontreCode{Decoration=xxxEtoiles/niv§max} permet de l'y intégrer.
+
+\begin{DemoCode}{listing only}
+%commande d'étoiles (max=3 par défaut) avec fontawesome5
+\NiveauDiffExos[max]{nb}
+
+%commande d'étoiles (max=3 par défaut) avec tikz
+\tkzEtoiles[Couleur=...,CouleurFond=...,Offset=...,NiveauMax=...,AlignV=...]{nb}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des demies étoiles sont possibles
+\NiveauDiffExos{0}\par
+\NiveauDiffExos{2.5}\par
+\textcolor{teal}{\LARGE\NiveauDiffExos[5]{4}}\par
+\NiveauDiffExos[5]{1.5}\par
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des portions d'étoiles sont possibles
+%Offset=... permet de gérer l'espacement horizontal
+%AlignV est un booléen pour décaler verticalement les étoiles (inline)
+\tkzEtoiles{2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles{2.5} avec une note de 2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles[AlignV=false]{2.5} avec une note de 2.5}\par
+\tkzEtoiles[Couleur=red,CouleurFond=yellow,NiveauMax=5]{3.5}
+\end{DemoCode}
+
\subsection{Exemples}
Les exemples suivants ont été obtenus via un document externe (fourni avec le package), du fait du chargement de packages spécifiques.
@@ -1059,65 +1108,46 @@ Le code proposé utilise l'environnement, mais la commande simple est complètem
\pagebreak
\begin{DemoCode}{listing only}
-\begin{EnvtExo}%exo1
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo1
-\begin{EnvtExo}[Trait=pointilles]%exo2
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=pointilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo2
-\begin{EnvtExo}[Trait=dashilles]%exo3
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=dashilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo3
-\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Icone/\faPython]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo4
-\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Ceinture/rouge]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo5
-\begin{EnvtExo}[Decoration=Chrono/20]%exo6
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Chrono/20]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo6
-\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Image/goku_ssj4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo7
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
-\begin{EnvtExo}[Decoration=Points/7]%exo9
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
-\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Points/7]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo9
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\begin{EnvtExo}[Type=Perso/{Titre perso }]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo10
-\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\StyleEnvtExo[Couleur=red,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt, Libelle={Exercice n°}]
+
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]
\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\end{EnvtExo}%exo11
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles]%exo12
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\StyleEnvtExoDefaut
-
\begin{EnvtExo}%
[Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
-
\ipsum<Lang=FR,Type=sent>
\end{DemoCode}
@@ -1306,6 +1336,204 @@ On se place dans la plage \VignetteTableur{A3:B5} pour...
On lance le logiciel \BoiteArrondie[Fond=cyan!33,Texte=violet,EspH=2mm,Style=rect]{situé sur le bureau} en cliquant \BoiteArrondie[Fond=lightgray!25,Texte=darkgray]{droit}.
\end{DemoCode}
+\subsection{Bannière de titre}
+
+L'idée est de proposer une bannière, réalisée en \TikZ, pour présenter par exemple un titre.
+
+Il sera ensuite possible de redéfinir un sectionnement du document (\MontreCode{part/section/subsection/...}).
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles (des calculs en interne sont effectués pour adapter la taille des textes).
+
+\begin{DemoCode}{listing only}
+\tkzBannerTri[clés]{numéro}{titre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri{01}{Titre du document}
+\end{DemoCode}
+
+Les principales \MontreCode{clés} (anglicisées) sont :
+
+\begin{itemize}
+ \item \MontreCode{height} : hauteur de la bannière (\MontreCode{2.5em} par défaut)
+ \item \MontreCode{width} : largeur de la bannière (\MontreCode{\textbackslash linewidth} par défaut)
+ \item \MontreCode{blockwidth} : largeur du bloc gauche (\MontreCode{2.75em} par défaut, mais si \MontreCode{auto}, la largeur s'adaptera à son contenu)
+ \item \MontreCode{coltxt} : couleur des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{fonttxt} : police globale des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{swap} : booléen pour changer le style de la partie droite (\MontreCode{false} par défaut)
+ \item \MontreCode{maincolor} : couleur principale, les dégradés étant calculés automatiquement (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{collight} : couleur la plus claire (\MontreCode{darkgray!25} par défaut)
+ \item \MontreCode{colmedium} : couleur du milieu (\MontreCode{darkgray!50} par défaut)
+ \item \MontreCode{coldark} : couleur la plus foncée (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{logo} : logo éventuel, placé tout à droite
+ \item \MontreCode{type} : type éventuel du document, qui est dans le bloc gauche
+ \item \MontreCode{dispblock} : booléen pour afficher le bloc de gauche (actif par défaut)
+ \item \MontreCode{num} : booléen pour afficher le numéro (actif par défaut)
+ \item \MontreCode{customtype} : texte personnalisé éventuel du bloc gauche
+\end{itemize}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=5em,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri[%
+ maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{Mon document}
+\end{DemoCode}
+
+Il est de ce fait \textit{normalement} possible (à vérifier quand même\ldots) de modifier le comportement de la commande \MontreCode{\textbackslash part}, dans l'optique de l'utilisation avec une table des matières notamment.
+
+\begin{DemoCode}{}
+%redéfinition de \part avec gestion de la version étoilée
+\RenewDocumentCommand\part{ s m D<>{} }{%
+ \addtocounter{part}{1}%
+ \IfBooleanTF{#1}%
+ {%
+ \tkzBannerTri[#3,num=false]{\thepart}{#2}%
+ }%
+ {%
+ \tkzBannerTri[#3]{\thepart}{#2}%
+ %\addcontentsline{toc}{part}{#2}%éventuellement
+ }%
+}
+%modification de la numérotation, avec forçage du 0
+\renewcommand\thepart{\ifnum\value{part}<10\relax0\fi\arabic{part}}
+
+\part{Éléments de logique}<type=TP,logo=\faAirbnb>
+\end{DemoCode}
+
+\pagebreak
+
+\subsection{Panneaux autoroutiers}
+
+L'idée est de proposer des panneaux type \textit{autoroutes}, réalisés via \MontreCode{tcolorbox}.
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles..
+
+\begin{DemoCode}{listing only}
+\begin{PanneauAutoroute}[clés]{titre}
+%contenu
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{PanneauAutoroute}{A4}
+REIMS\hfill~145\\
+PARIS\hfill~250
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+Les clés, optionnelles et entre \MontreCode{[...]} sont :
+
+\begin{itemize}
+ \item \MontreCode{Fleches} : nombre de flèches à afficher (\MontreCode{0} par défaut)
+ \item \MontreCode{CouleurFond} : couleur de fond (\MontreCode{blue} par défaut)
+ \item \MontreCode{CouleurTitre} : couleur de la boîte \textit{titre} (\MontreCode{red} par défaut)
+ \item \MontreCode{Largeur} : largeur du panneau (\MontreCode{10cm} par défaut)
+ \item \MontreCode{Police} : police du panneau
+ \item \MontreCode{PoliceCartouche} : police du titre
+ \item \MontreCode{TypeFleche} : flèche(s) à afficher
+ \item \MontreCode{EspacementV} : interligne (\MontreCode{2.5mm} par défaut)
+ \item \MontreCode{Dernier} : booléen pour préciser que la boîte sera la dernière de la série (pour l'espace après).
+\end{itemize}
+
+\begin{DemoCode}{}
+\begin{PanneauAutoroute}[Largeur=\linewidth,Dernier=false]{TD01}
+ \VilleDist{COMPETENCE 1}{\faCheck} %macro interne pour afficher une ligne
+ \VilleDist*{COMPETENCE 2}{\faCheck} %macro pour afficher la dernière ligne
+\end{PanneauAutoroute}
+
+\begin{PanneauAutoroute}%
+ [CouleurFond=olive,Fleches=2,Police=\bfseries\huge\fontfamily{phv}\selectfont]{}
+ LILLE\hfill~301\\
+ AMIENS\hfill~213
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+\pagebreak
+
+\subsection{Affichettes de soldes}
+
+L'idée est de proposer des petites affichettes pour des réductions, réalisées via \MontreCode{tcolorbox} (sur une idée de \textit{Sébastien Lozano}).
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles..
+
+\begin{DemoCode}{listing only}
+\AfficheSoldes[clés]{prix avant}{prix après}{réduction}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes{99\texteuro}{79\texteuro}{-20\%}
+\end{DemoCode}
+
+Les clés, optionnelles et entre \MontreCode{[...]} sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleur} : couleur principale (\MontreCode{gray} par défaut)
+ \item \MontreCode{Largeur} : largeur (\MontreCode{auto} ou par défaut) à définir
+ \item \MontreCode{PoliceEntete} : police du titre
+ \item \MontreCode{PolicePrix} : police des prix
+ \item \MontreCode{PoliceReduc} : police de la réduction
+ \item \MontreCode{Titre} : titre de l'affiche (\MontreCode{GRANDE DÉMARQUE} par défaut)
+ \item \MontreCode{OffsetReduc} : \textit{pente} pour le bandeau de réduction (\MontreCode{1.25cm} par défaut)
+ \item \MontreCode{AgrandirReduc} : augmenter la hauteur de la partie réduction
+\end{itemize}
+
+Donc la hauteur est fixée par \textit{calculs}, et également la largeur si \MontreCode{Largeur=auto}.
+
+La largeur \MontreCode{auto} permet de faire \textit{marcher} des prix jusque \MontreCode{99\,999\,€}.
+
+\begin{DemoCode}{}
+\AfficheSoldes{99\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=red]{99\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=blue]{\ldots\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=teal]{\ldots}{\ldots}{\ldots}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes[%
+ Couleur=magenta,%
+ Largeur=6cm,%
+ PoliceEntete=\huge\sffamily\bfseries,%
+ PolicePrix=\ttfamily,%
+ PoliceReduc=\bfseries\Huge\sffamily,%
+ AgrandirReduc=8mm
+ ]%
+ {1\,500\texteuro}{1\,299\texteuro}{-\ldots\,\%}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes[%
+ Couleur=cyan,%
+ PoliceEntete=\bfseries\huge\fontfamily{qhv}\selectfont,%
+ PolicePrix=\fontfamily{qhv}\selectfont,%
+ PoliceReduc=\bfseries\Huge\fontfamily{qhv}\selectfont,%
+ AgrandirReduc=1cm
+ ]%
+ {\makebox[1cm]{\dotfill}\texteuro}{1\,299\texteuro}{-30\,\%}
+\end{DemoCode}
+
\pagebreak
\section{Patchs divers}
@@ -1395,4 +1623,178 @@ L'exemple suivant illustre les différentes commandes proposées dans ce package
\end{tikzpicture}
\end{DemoCode}
+\subsection{Insertion d'images avec remplissage de l'espace vertical}
+
+L'idée est de proposer une commande pour adapter la hauteur d'une image à la hauteur restante en base de page.
+
+Cela repose en fait simplement sur l'utilisation de \MontreCode{[height=\textbackslash dimexpr\textbackslash pagegoal-\textbackslash pagetotal\textbackslash relax]}.
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir=true/false,vOffset=...,vCentrer=...>[clés includegraphics]<image>
+\end{DemoCode}
+
+La clé \MontreCode{vOffset} permet de spécifier une longueur à retirer au calcul automatique (par défaut elle est fixée à \MontreCode{0pt})..
+
+La clé \MontreCode{vCentrer} (parmi \MontreCode{m/h/b/n} permet de spécifier un type de centrage vertical, si besoin, parmi \MontreCode{milieu/haut/bas/non} (\MontreCode{n} par défaut).
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+\end{DemoCode}
+
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+
+\subsection{Grille automatique pour les environnements tikzpicture}
+
+L'idée est de proposer de quoi afficher, en \textit{surimpression}, une grille automatique sur une figure \MontreCode{tikzpicture}.
+
+Cela peut-être utile dans la construction de graphes ou de figures géométriques pour placer plus facilement des objets.
+
+\smallskip
+
+Il est possible de :
+
+\begin{itemize}
+ \item demander ponctuellement l'affichage avec une macro à placer en fin d'environnement ;
+ \item automatiser l'affichage pour une figure avec une \MontreCode{clé} et une macro locale ;
+ \item automatiser l'affichage pour toutes les figures avec une macro globale et une \MontreCode{clé}.
+\end{itemize}
+
+\textbf{\large Version manuelle}
+
+\begin{DemoCode}{listing only}
+%macro locale, utilisation ponctuelle
+\begin{tikzpicture}
+ %codes
+ \tkzGrilleAuto(*){pasX§pasY}
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marque également l'origine $(0;0)$.
+
+L'argument obligatoire permet de spécifier les pas (\texttt{H§V}) pour la grille.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ %population
+ \draw[very thick,purple] (0,0) circle[x radius=3cm,y radius=2cm] ;
+ \draw[purple] (0.5,1.25) node[font=\small] {Population E} ;
+ %ss population
+ \draw[very thick,teal] (-0.75,-0.25) circle[x radius=1.75cm,y radius=1cm] ;
+ \draw[teal] (-0.75,-0.25) node[font=\small] {Sous-population A} ;
+ %grille auto manuelle, avec origine
+ \tkzGrilleAuto*{0.5§0.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+\textbf{\large Version automatique locale, avec clé}
+
+\begin{DemoCode}{listing only}
+%clé locale, utilisation ponctuelle
+\begin{tikzpicture}[grilleauto=pasX§pasY]
+ \tkzAutoGridLocal(*)
+ %codes
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marque également l'origine $(0;0)$.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}[x=0.5cm,y=0.5cm,grilleauto=0.25§0.25]
+ %grille (qui sera affichée en dernier)
+ \tkzAutoGridLocal*
+ %triangle
+ \draw[very thick,red] (-4,-2)--(0,7)--(6,1)--cycle ;
+ %cercle
+ \draw[very thick,blue] (0,0) circle[radius=5] ;
+ %segment
+ \draw[very thick,orange] (-1.75,1.25)--(1,-7);
+\end{tikzpicture}
+\end{DemoCode}
+
+\textbf{\large Version automatique globale, avec clé}
+
+\begin{DemoCode}{listing only}
+%préambule, la commande sera active pour tous les environnements tikz
+\tkzAutoGridActivate(*)
+
+%document
+\begin{tikzpicture}[grilleauto=pasX§pasY]
+ %codes
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marquera également l'origine $(0;0)$.
+
+\pagebreak
+
+\subsection{Flèche évasée, en \TikZ}
+
+L'idée est de proposer une commande, en \TikZ, pour représenter une flèche évasée, avec des paramètres optionnels.
+
+\begin{DemoCode}{listing only}
+\tkzFlecheEvasee[clés]{départ}{arrivée ou déplacement}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ \tkzFlecheEvasee{0,0}{5,1.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleur=...} : couleur de la flèche ;
+ \item \MontreCode{Epaisseur=...} : taille initiale du trait (\MontreCode{0.5mm} par défaut) ;
+ \item \MontreCode{Direction=...} : direction de la flèche, avec angle éventuel ;
+ \item \MontreCode{Coeff=...} : coefficient pour la taille finale du trait (\MontreCode{4} par défaut) ;
+ \item \MontreCode{TypeFleche=...} : type de la flèche, issue de \MontreCode{arrows.meta} ;
+ \item \MontreCode{TailleFleche=...} : booléen pour la taille de la partie flèche (\MontreCode{auto} par défaut), en langage \MontreCode{arrows.meta} ;
+ \item \MontreCode{Deplacement} : booléen pour spécifier qu'on travaille avec un déplacement pour l'arrivée.
+\end{itemize}
+
+Le premier argument obligatoire, permet de spécifier le nœud de départ ou les coordonnées du point de départ.
+
+Le second argument obligatoire, permet de spécifier le nœud d'arrivée ou les coordonnées du point d'arrivée, mais également le déplacement dans le cas ou \MontreCode{Deplacement=true}.
+
+\medskip
+
+Par défaut, et en mode \MontreCode{auto} :
+
+\begin{itemize}
+ \item le début du trait mesure \MontreCode{Epaisseur=0.5mm} ;
+ \item la fin du trait mesure \MontreCode{4*Epaisseur=2mm} ;
+ \item les dimensions de la flèche sont \MontreCode{H=2*4*Epaisseur=4mm} et \MontreCode{L=2.1*4*Epaisseur=4.2mm}.
+\end{itemize}
+
+À noter que pour les flèches type \MontreCode{Stealth}, un ajustement est sans doute à prévoir pour compenser le \textit{creux}.
+
+\begin{DemoCode}{}
+%flèche 0.5mm -> 1.25mm
+\begin{tikzpicture}
+ \tkzFlecheEvasee%
+ [Epaisseur=0.5mm,Coeff=2.5,Direction=left/30,Couleur=red,TypeFleche=Triangle]%
+ {0,0}{5,1.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ \draw[thin,lightgray] (-3,-1) grid (5,5) ;
+ \coordinate (A) at (0,0) ; \coordinate (B) at (4,1) ;
+ \coordinate (C) at (1,1) ; \coordinate (D) at (5,4) ;
+ \coordinate (E) at (0,1) ; \coordinate (F) at (0,5) ;
+ \coordinate (G) at (-2,0) ;
+ \tkzFlecheEvasee[Couleur=green,TypeFleche=Triangle]{A}{B}
+ \tkzFlecheEvasee[Couleur=blue,Direction=right/10]{D}{C}
+ \tkzFlecheEvasee%
+ [Couleur=red,Direction=left/45,TypeFleche=Stealth,Epaisseur=0.1mm,Coeff=10]%
+ {-2,1}{0,4}
+ \tkzFlecheEvasee%
+ [Couleur=red,Direction=right/45,Epaisseur=0.1mm,Coeff=10,TypeFleche=Stealth]%
+ {-2,1}{0,4}
+ \tkzFlecheEvasee[Couleur=teal,Deplacement,Direction=left/10]{-3,-1}{5,1}
+\end{tikzpicture}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
index 717f3a12c9..aed4fe853c 100644
--- a/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
index 2daa195179..d32d06230a 100644
--- a/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
@@ -16,6 +16,8 @@
\begin{document}
+\pagestyle{empty}
+
\begin{EnvtExo}%exo1
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
@@ -40,40 +42,44 @@
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
+\begin{EnvtExo}[Etoiles=2,Decoration=Image/goku_ssj4]%exo7
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]%exo8
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]%exo9
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Points/7]%exo9
+\begin{EnvtExo}[Decoration=Points/7]%exo10
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
+\begin{EnvtExo}[Type=Perso/{Titre perso },Etoiles={2.5§5}]%exo11
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\StyleEnvtExo[Couleur=red,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
-\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo12
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles,Etoiles=0.5]%exo13
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\StyleEnvtExoDefaut
\begin{EnvtExo}%
- [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
+ [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo14
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
+\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo15
\ipsum<Lang=FR,Type=sent>
diff --git a/macros/latex/contrib/customenvs/tex/customenvs.sty b/macros/latex/contrib/customenvs/tex/customenvs.sty
index af81d0b88d..a54da462ab 100644
--- a/macros/latex/contrib/customenvs/tex/customenvs.sty
+++ b/macros/latex/contrib/customenvs/tex/customenvs.sty
@@ -3,9 +3,14 @@
% source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs}[2024/07/13 0.1.8 Custom classic environments]
+\ProvidesPackage{customenvs}[2024/09/14 0.2.3 Custom classic environments]
%====HISTORIQUE
+% v 0.2.3 Panneau autoroutier + Panneau Soldes
+% v 0.2.2 Flèche évasée, en TikZ
+% v 0.2.1 Modification mineure de la gestion des étoiles tikz (baseline) + grille auto tikzpicture
+% v 0.2.0 Ajout d'étoiles pour les difficultés d'exercices (2 versions)
+% v 0.1.9 tkzBanner + tkzBannerTri + includegraphicsfill
% v 0.1.8 Nutriscore
% v 0.1.7 Style perso pour les vignettes
% v 0.1.6 DisplaySkip patch + Patchs pas-tableur
@@ -677,7 +682,155 @@
}
%====EXERCICE PERSO
+\newlength{\largstarsempty}
+\newlength{\largstarsmid}
+\newlength{\largstarfull}
+\newlength{\largmaxstars}
+
+%commande annexe tkzlevelstars [en] + [fr]
+\usetikzlibrary{shapes.geometric}
+
+\newlength{\tmphauteuretoiles}
+\newlength{\tmpprofondeuretoiles}
+\newlength{\tmpoffsetetoiles}\setlength{\tmpoffsetetoiles}{0.25pt}
+
+\defKV[levelstars]{%
+ colframe=\def\tkzLevelStarsColor{#1},
+ colback=\def\tkzLevelStarsColorBg{#1},
+ offset=\setlength{\tmpoffsetetoiles}{#1},
+ maxlevel=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[levelstars]{%
+ colframe=black,
+ colback=gray,
+ offset={0.025em},
+ maxlevel=3,
+ valign=true
+}
+
+\NewDocumentCommand{\tkzLevelStars}{ O{} m }{%
+ %lectures des clés
+ \restoreKV[levelstars]%
+ \setKV[levelstars]{#1}%
+ %dimensions
+ \settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \setlength{\tmphauteuretoiles}{0.95\tmphauteuretoiles}%
+ \ifboolKV[levelstars]{valign}%
+ {%
+ \settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \begin{tikzpicture}[baseline={-1.25\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ {%
+ \begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ \foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+ \xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+ %\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+ \path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+ }
+ \end{tikzpicture}%
+}
+
+\defKV[tkznivetoiles]{%
+ Couleur=\def\tkzLevelStarsColor{#1},
+ CouleurFond=\def\tkzLevelStarsColorBg{#1},
+ Offset=\setlength{\tmpoffsetetoiles}{#1},
+ NiveauMax=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[tkznivetoiles]{%
+ Couleur=black,
+ CouleurFond=gray,
+ Offset={0.025em},
+ NiveauMax=3,
+ AlignV=true
+}
+
+\NewDocumentCommand{\tkzEtoiles}{ O{} m }{%
+ %lectures des clés
+ \restoreKV[tkznivetoiles]%
+ \setKV[tkznivetoiles]{#1}%
+ %dimensions
+ \settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \setlength{\tmphauteuretoiles}{0.95\tmphauteuretoiles}%
+ \ifboolKV[tkznivetoiles]{AlignV}%
+ {%
+ \settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \begin{tikzpicture}[baseline={-1.25\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ {%
+ \begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ \foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+ \xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+ %\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+ \path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+ }
+ \end{tikzpicture}%
+}
+%commande annexe ;-)
+\NewDocumentCommand\NiveauDiffExos{ O{3} m }{%avec des demis ??
+ %les tailles de boîtes
+ \settowidth{\largstarsempty}{{\faStar[regular]}}%
+ \settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+ \settowidth{\largstarfull}{{\faStar}}%
+ \pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+ %les calculs intermédiaires
+ \xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+ \xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+ %
+ \xintifboolexpr{isint(\tmpstars) == 1}%
+ {%
+ \xdef\tmpstarsexosfull{\tmpstars}%
+ \xdef\tmpstarsexosmid{0}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+ }%
+ {%
+ \xdef\tmpstarsexosmid{1}%
+ \xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+ }%
+ %affichage des full
+ \xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+ %affichage des mid
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+ %affichage des vides
+ \xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%commande annexe [en] ;-)
+\NewDocumentCommand\DiffLevelStars{ O{3} m }{%avec des demis ??
+ %les tailles de boîtes
+ \settowidth{\largstarsempty}{{\faStar[regular]}}%
+ \settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+ \settowidth{\largstarfull}{{\faStar}}%
+ \pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+ %les calculs intermédiaires
+ \xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+ \xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+ %
+ \xintifboolexpr{isint(\tmpstars) == 1}%
+ {%
+ \xdef\tmpstarsexosfull{\tmpstars}%
+ \xdef\tmpstarsexosmid{0}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+ }%
+ {%
+ \xdef\tmpstarsexosmid{1}%
+ \xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+ }%
+ %affichage des full
+ \xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+ %affichage des mid
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+ %affichage des vides
+ \xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%code ppal
\newcounter{numeroexo}
\setcounter{numeroexo}{0}
\newlength{\eptraitexo}
@@ -688,6 +841,8 @@
\newlength{\tmp@image@profondeur}
\colorlet{macouleurexo}{blue!50!black}
+\colorlet{macouleurexodeco}{blue!50!black}
+\colorlet{macouleurexodecofond}{blue!50!black}
\newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}%
\newcommand\tmplabelexo{Exercice~}%
@@ -695,15 +850,21 @@
\defKV[globalstyleexo]{%
Libelle=\renewcommand\tmplabelexo{#1},%
Couleur=\colorlet{macouleurexo}{#1},%
+ CouleurDeco=\colorlet{macouleurexodeco}{#1},%
+ CouleurFondDeco=\colorlet{macouleurexodecofond}{#1},%
Police=\renewcommand\tmpstyleexo{#1},%
- EpTrait=\setlength{\eptraitexo}{#1}
+ EpTrait=\setlength{\eptraitexo}{#1},%
+ EchelleEtoiles=\def\tmpscalestarsexos{#1}
}
\setKVdefault[globalstyleexo]{%
Libelle={Exercice~},%
Couleur={blue!50!black},%
+ CouleurDeco={blue!50!black},%
+ CouleurFondDeco={macouleurexodeco!50},%
Police={\bfseries\LARGE\sffamily},%
- EpTrait={1.1pt}
+ EpTrait={1.1pt},%
+ EchelleEtoiles=0.85
}
\NewDocumentCommand\StyleEnvtExo{ O{} }{%
@@ -718,20 +879,20 @@
Type=\def\EnvtExoType{#1},%
ComplementTitre=\def\EnvtExoCpltTitre{#1},%
CodeDebut=\def\EnvtExoCodeAvant{#1},%
- %Couleur=\def\EnvtExoCouleur{#1},%
EchelleImage=\def\EnvtExoScaleImg{#1},%
Decoration=\def\EnvtExoDeco{#1},%
- Trait=\def\EnvtExoTrait{#1}
+ Trait=\def\EnvtExoTrait{#1},%
+ Etoiles=\def\EnvtExoEtoiles{#1}
}
\setKVdefault[EnvtExercice]{
Type=Classique,%
ComplementTitre={},%
CodeDebut={},%
- %Couleur=macouleurexo,%
EchelleImage=1.15,%
Compteur=true,%
Decoration={},%
- Trait=plein
+ Trait=plein,%
+ Etoiles={}
}
\NewDocumentEnvironment{EnvtExo}{ !O{} }%
@@ -746,18 +907,32 @@
{%
%label avec numéro et complément
\tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
{pointilles}{\,\dotfill}%
{dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
{non}{\hfill}%
+ {aucun}{~}%
}%
%décoration éventuelle
\IfSubStr{\EnvtExoDeco}{Icone}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
- \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ \,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
}{}%
\IfSubStr{\EnvtExoDeco}{Ceinture}%
{%
@@ -767,13 +942,13 @@
\IfSubStr{\EnvtExoDeco}{Chrono}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
- \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ \,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
}{}%
\IfSubStr{\EnvtExoDeco}{Points}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
- \,(\EnvtExoPts\ \pts)%
+ \,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -781,12 +956,49 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
{%
\StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
%label avec numéro et complément
\tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -798,7 +1010,7 @@
\IfSubStr{\EnvtExoDeco}{Icone}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
- \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ \,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
}{}%
\IfSubStr{\EnvtExoDeco}{Ceinture}%
{%
@@ -808,13 +1020,13 @@
\IfSubStr{\EnvtExoDeco}{Chrono}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
- \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ \,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
}{}%
\IfSubStr{\EnvtExoDeco}{Points}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
- \,(\EnvtExoPts\ \pts)%
+ \,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -822,6 +1034,30 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\endgroup%
\def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
@@ -841,6 +1077,19 @@
{%
%label avec numéro et complément
\tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -876,12 +1125,49 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
{%
\StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
%label avec numéro et complément
\tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -917,6 +1203,30 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\endgroup%
\def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
@@ -2107,4 +2417,655 @@
\end{tikzpicture}%
}
+%====vincludegraphics [fr]
+\newlength{\tmp@includegraphics@vfill@offset}
+
+\defKV[vfillincludegphcs]{vOffset=\setlength\tmp@includegraphics@vfill@offset{#1},vCentrer=\def\tmpincludegpvcenter{#1}}
+\setKVdefault[vfillincludegphcs]{vRemplir=false,vOffset=0pt,vCentrer=n}
+
+\NewDocumentCommand\InsererImage{ D<>{} O{} m }{%
+ \restoreKV[vfillincludegphcs]%
+ \setKV[vfillincludegphcs]{#1}%
+ \ifboolKV[vfillincludegphcs]{vRemplir}%
+ {%
+ \IfStrEqCase{\tmpincludegpvcenter}{%
+ {m}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {h}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {b}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ {n}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ }[{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}]%
+ }%
+ {%
+ \includegraphics[#2]{#3}%
+ }%
+}
+
+%===tkzBanner mixte
+\defKV[tkzBannerKeys]{%
+ maincolor=\def\tkzBannermaincol{#1}
+}
+
+\setKVdefault[tkzBannerKeys]{%
+ height=2.1cm,%
+ width=\linewidth,%
+ collight=teal!25,%
+ colmedium=teal!75,%
+ coldark=teal,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ num=true
+}
+
+\NewDocumentCommand\tkzBanner{ O{} m m }{%
+ \noindent%
+ \restoreKV[tkzBannerKeys]%
+ \setKV[tkzBannerKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannerscale}{\useKV[tkzBannerKeys]{width}/\linewidth}%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaincol}{}%
+ {%
+ \tikzset{tkzbannerdark/.style={\useKV[tkzBannerKeys]{coldark}}}
+ \tikzset{tkzbannermedium/.style={\useKV[tkzBannerKeys]{colmedium}}}
+ \tikzset{tkzbannerlight/.style={\useKV[tkzBannerKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannerdark/.style={\tkzBannermaincol}}
+ \tikzset{tkzbannermedium/.style={\tkzBannermaincol!75}}
+ \tikzset{tkzbannerlight/.style={\tkzBannermaincol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBanner-NW) at (0,{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SW) at (0,0) ;
+ \coordinate (tkzBanner-NE) at ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SE) at ({\useKV[tkzBannerKeys]{width}},0) ;%
+ %swap or note
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SE)!0.57!(tkzBanner-SW)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NE)!0.91!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NE)!0.92!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SE)!0.63!(tkzBanner-SW)$) ;
+ }%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SW)!0.57!(tkzBanner-SE)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NW)!0.91!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NW)!0.92!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SW)!0.63!(tkzBanner-SE)$) ;
+ }%
+ %drawing
+ \fill[tkzbannerdark] (0,0) rectangle ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}});
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend left=8] (tkzBanner-B) -- (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- (tkzBanner-SW) |- cycle ;
+ }%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend right=8] (tkzBanner-B) -- (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- (tkzBanner-SE) |- cycle ;
+ }%
+ %nodes
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NE) {\vphantom{qÉ}#2};
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SW) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ }%
+ {%
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SE) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NW) {\vphantom{qÉ}#2};
+ }%
+ \end{tikzpicture}%
+}
+
+%====titre stylisé [fr], à voir avec part ??
+\newlength{\tmp@tkzbanner@autowidthtype}
+\setlength\tmp@tkzbanner@autowidthtype{2.5em}
+\newlength{\tmp@tkzbanner@autowidthnum}
+\setlength\tmp@tkzbanner@autowidthnum{2em}
+\newlength{\tmp@tkzbanner@marginoffsetbanner}
+\setlength\tmp@tkzbanner@marginoffsetbanner{2pt}
+\newlength{\tmp@tkzbanner@autowidth}
+\setlength\tmp@tkzbanner@autowidth{2.5em}
+
+\defKV[tkzBannerpartKeys]{%
+ maincolor=\def\tkzBannermaintricol{#1},%
+ logo=\def\tkzBannermaintrilogo{#1},%
+ type=\def\tkzBannermaintritype{#1},%
+ blockwidth=\def\tkzBannermaintriblockwidth{#1},%
+ customtype=\def\tkzBannermaintritypelibre{#1}
+}
+
+\setKVdefault[tkzBannerpartKeys]{%
+ height=2.5em,%
+ width={\linewidth-0.5pt},%
+ blockwidth=2.75em,%
+ collight=darkgray!25,%
+ colmedium=darkgray!50,%
+ coldark=darkgray,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ logo={},%
+ type={},%
+ num=true,
+ dispblock=true,%
+ customtype={}
+}
+
+\NewDocumentCommand\tkzBannerTri{ O{} m m }{%
+ %#1 := clés
+ %#2 := numéro
+ %#3 := titre
+ \noindent%
+ \restoreKV[tkzBannerpartKeys]%
+ \setKV[tkzBannerpartKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannertriscale}{0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribanner}{1.05*0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribannernum}{2.5*0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\tkzBannertriangle}{0.10*(\useKV[tkzBannerpartKeys]{height})/(\useKV[tkzBannerpartKeys]{width})}%
+ \IfEq{\tkzBannermaintriblockwidth}{auto}%
+ {%
+ \settowidth{\tmp@tkzbanner@autowidthtype}{\scalebox{\scaletypedoctribanner}[\scaletypedoctribanner]{\sffamily\bfseries\vphantom{qÉ}\tkzBannermaintritype}}%
+ \addtolength{\tmp@tkzbanner@autowidthtype}{4pt}%
+ \settowidth{\tmp@tkzbanner@autowidthnum}{\scalebox{\scaletypedoctribannernum}[\scaletypedoctribannernum]{\sffamily\bfseries\vphantom{qÉ}00}}%
+ \addtolength{\tmp@tkzbanner@autowidthnum}{4pt}%
+ \pgfmathsetlength{\tmp@tkzbanner@autowidth}{max(\tmp@tkzbanner@autowidthtype,\tmp@tkzbanner@autowidthnum)}%
+ }%
+ {%
+ \setlength\tmp@tkzbanner@autowidth{\tkzBannermaintriblockwidth}%
+ }%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaintricol}{}%
+ {%
+ \tikzset{tkzbannertridark/.style={\useKV[tkzBannerpartKeys]{coldark}}}
+ \tikzset{tkzbannertrimedium/.style={\useKV[tkzBannerpartKeys]{colmedium}}}
+ \tikzset{tkzbannertrilight/.style={\useKV[tkzBannerpartKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannertridark/.style={\tkzBannermaintricol}}
+ \tikzset{tkzbannertrimedium/.style={\tkzBannermaintricol!50}}
+ \tikzset{tkzbannertrilight/.style={\tkzBannermaintricol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBannerTri-NW) at (0,{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SW) at (0,0) ;
+ \coordinate (tkzBannerTri-NE) at ({\useKV[tkzBannerpartKeys]{width}},{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SE) at ({\useKV[tkzBannerpartKeys]{width}},0) ;%
+ \coordinate (tkzBannerTri-SWd) at ($(tkzBannerTri-SW)!0.05!(tkzBannerTri-NW)$) ;%
+ \coordinate (tkzBannerTri-SEd) at ($(tkzBannerTri-SE)!0.15!(tkzBannerTri-NE)$) ;%
+ %drawing & shadow
+ \fill[lightgray!75] ([yshift=-1pt]tkzBannerTri-SWd) -- ([yshift=-1pt]tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \fill[white] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \draw[line width=1pt,tkzbannertridark] ([shift={(0.5pt,-0.5pt)}]tkzBannerTri-NW) -| ([shift={(-0.5pt,0)}]tkzBannerTri-SEd) -- (tkzBannerTri-SWd) ;
+ }%
+ {%
+ \fill[tkzbannertrimedium] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ }%
+ \ifboolKV[tkzBannerpartKeys]{dispblock}%
+ {%
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0375!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1375!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %light
+ \fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.025!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %medium
+ \fill[tkzbannertrimedium] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0125!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %dark
+ \fill[tkzbannertridark] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth},0) -- ({\tmp@tkzbanner@autowidth+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ;
+ \IfEq{\tkzBannermaintritypelibre}{}%
+ {%
+ \ifboolKV[tkzBannerpartKeys]{num}%
+ {%
+ \IfEq{\tkzBannermaintritype}{}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#2};
+ }%
+ {%
+ \node[inner sep=2pt,below=1pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={1.05*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritype};
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.425*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#2};
+ }%
+ }%
+ {}%
+ }%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintritypelibre};
+ }%
+ \end{scope}
+ }%
+ {}%
+ %nodes
+ \begin{scope}
+ \clip (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \node[inner sep=2pt,right,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ {%
+ \node[inner sep=2pt,right,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ \end{scope}
+ \end{tikzpicture}%
+}
+
+%====grille automatique tikz ?
+\NewDocumentCommand\tkzGrilleAuto{ s O{thin,lightgray} m }{%
+ \IfBooleanT{#1}{\filldraw (0,0) circle[radius=2pt] ;}
+ \StrCut{#3}{§}{\tkzautogridx}{\tkzautogridy}%
+ \draw[xstep=\tkzautogridx,ystep=\tkzautogridy,#2] (current bounding box.south west) grid (current bounding box.north east) ;
+}
+\NewDocumentCommand\tkzAutoGrid{ s O{thin,lightgray} m }{%
+ \IfBooleanT{#1}{\filldraw (0,0) circle[radius=2pt] ;}
+ \StrCut{#3}{§}{\tkzautogridx}{\tkzautogridy}%
+ \draw[xstep=\tkzautogridx,ystep=\tkzautogridy,#2] (current bounding box.south west) grid (current bounding box.north east) ;
+}
+
+\tikzset{grilleauto/.store in=\tkzautogrid,grilleauto/.default={},grilleauto={}}
+\tikzset{autogrid/.store in=\tkzautogrid,autogrid/.default={},autogrid={}}
+
+\NewDocumentCommand\tkzAutoGridActivate{ s }{%
+ \@ifundefined{tkzautogrid}%
+ {}%
+ {%
+ \tikzset{every picture/.style={%
+ execute at end picture={%
+ \IfEq{\tkzautogrid}{}{}{\IfBooleanTF{#1}{\tkzGrilleAuto*{\tkzautogrid}}{\tkzGrilleAuto{\tkzautogrid}}}%
+ },
+ },
+ }%
+ }%
+}
+
+\NewDocumentCommand\tkzAutoGridLocal{ s }{%
+ \@ifundefined{tkzautogrid}%
+ {}%
+ {%
+ \tikzset{execute at end picture={%
+ \IfEq{\tkzautogrid}{}{}{\IfBooleanTF{#1}{\tkzGrilleAuto*{\tkzautogrid}}{\tkzGrilleAuto{\tkzautogrid}}}%
+ },
+ },
+ }%
+}
+
+%====FLÈCHE ÉVASÉE [FR]
+\usetikzlibrary{arrows,arrows.meta}
+
+\defKV[FlecheEvasee]{%
+ Couleur=\def\FlecheEvaseeCouleur{#1},%
+ TailleFleche=\def\FlecheEvaseeFleche{#1},%
+ Direction=\def\FlecheEvaseeDirectionAngle{#1},%
+ Coeff=\def\FlecheEvaseeCoeff{#1},%
+ TypeFleche=\def\FlecheEvaseeType{#1},%
+ Epaisseur=\def\FlecheEvaseeEpaisseur{#1},%
+ LineCap=\def\FlecheEvaseeLineCap{#1}
+}
+\setKVdefault[FlecheEvasee]{%
+ Couleur=black,%
+ TailleFleche=auto,%
+ Direction={},%
+ Coeff=4,%
+ TypeFleche=Latex,%
+ Deplacement=false,%
+ Epaisseur=0.5mm,%
+ LineCap=butt
+}
+
+\NewDocumentCommand\tkzFlecheEvasee{ O{} m m }{%1=options,2=début,3=fin
+ \restoreKV[FlecheEvasee]%
+ \setKV[FlecheEvasee]{#1}%
+ \begin{scope}[line width=0.05mm]
+ \IfStrEq{\FlecheEvaseeFleche}{auto}%
+ {%
+ \xdef\FlecheEvaseeH{2*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ \xdef\FlecheEvaseeW{2.1*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeFleche}{/}{\FlecheEvaseeH}{\FlecheEvaseeW}%
+ }%
+ \IfEq{\FlecheEvaseeDirectionAngle}{}%
+ {%
+ \xdef\FlecheEvaseeDirection{}\xdef\FlecheEvaseeAngle{0}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeDirectionAngle}{/}{\FlecheEvaseeDirection}{\FlecheEvaseeAngle}%
+ }%
+ %coordonnées
+ \coordinate (TMPDEPART) at (#2) ;
+ \ifboolKV[FlecheEvasee]{Deplacement}%
+ {%
+ \coordinate (TMPARRIVEE) at ($(TMPDEPART)+(#3)$) ;
+ }%
+ {%
+ \coordinate (TMPARRIVEE) at (#3) ;
+ }
+ \pgfmathanglebetweenpoints{\pgfpointanchor{TMPDEPART}{center}}{\pgfpointanchor{TMPARRIVEE}{center}}%
+ \edef\tmpangle{\pgfmathresult}%
+ %nœuds
+ \IfEq{\FlecheEvaseeDirection}{right}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend right=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend left=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{left}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend left=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend right=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{}%
+ {%
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{-0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDG) to (TMPFG) -- (TMPFD) to (TMPDD) --cycle ;
+ }%
+ {}%
+ \end{scope}
+}
+
+%====FLÈCHE ÉVASÉE [EN]
+\defKV[flaredarrow]{%
+ color=\def\FlecheEvaseeCouleur{#1},%
+ arrowsize=\def\FlecheEvaseeFleche{#1},%
+ bend=\def\FlecheEvaseeDirectionAngle{#1},%
+ factor=\def\FlecheEvaseeCoeff{#1},%
+ arrowstyle=\def\FlecheEvaseeType{#1},%
+ thickness=\def\FlecheEvaseeEpaisseur{#1},%
+ linecap=\def\FlecheEvaseeLineCap{#1}
+}
+\setKVdefault[flaredarrow]{%
+ color=black,%
+ arrowsize=auto,%
+ bend={},%
+ factor=4,%
+ arrowstyle=Latex,%
+ move=false,%
+ thickness=0.5mm,%
+ linecap=butt
+}
+
+\NewDocumentCommand\tkzFlaredArrow{ O{} m m }{%1=options,2=début,3=fin
+ \restoreKV[flaredarrow]%
+ \setKV[flaredarrow]{#1}%
+ \begin{scope}[line width=0.05mm]
+ \IfStrEq{\FlecheEvaseeFleche}{auto}%
+ {%
+ \xdef\FlecheEvaseeH{2*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ \xdef\FlecheEvaseeW{2.1*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeFleche}{/}{\FlecheEvaseeH}{\FlecheEvaseeW}%
+ }%
+ \IfEq{\FlecheEvaseeDirectionAngle}{}%
+ {%
+ \xdef\FlecheEvaseeDirection{}\xdef\FlecheEvaseeAngle{0}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeDirectionAngle}{/}{\FlecheEvaseeDirection}{\FlecheEvaseeAngle}%
+ }%
+ %coordonnées
+ \coordinate (TMPDEPART) at (#2) ;
+ \ifboolKV[flaredarrow]{move}%
+ {%
+ \coordinate (TMPARRIVEE) at ($(TMPDEPART)+(#3)$) ;
+ }%
+ {%
+ \coordinate (TMPARRIVEE) at (#3) ;
+ }
+ \pgfmathanglebetweenpoints{\pgfpointanchor{TMPDEPART}{center}}{\pgfpointanchor{TMPARRIVEE}{center}}%
+ \edef\tmpangle{\pgfmathresult}%
+ %nœuds
+ \IfEq{\FlecheEvaseeDirection}{right}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend right=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend left=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{left}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend left=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend right=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{}%
+ {%
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{-0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDG) to (TMPFG) -- (TMPFD) to (TMPDD) --cycle ;
+ }%
+ {}%
+ \end{scope}
+}
+
+%====PANO AUTOROUTE
+\newlength{\PanoTorouteStretch}
+\newlength{\PanoTorouteOffsetArrow}
+
+\defKV[PanoAutoroute]{%
+ Fleches=\def\PanoTorouteArrow{#1},%
+ CouleurFond=\def\PanoTorouteCoul{#1},%
+ CouleurTitre=\def\PanoTorouteCoulTitre{#1},%
+ Police=\def\PanoTorouteFonte{#1},%
+ PoliceCartouche=\def\PanoTorouteFonteTitre{#1},%
+ TypeFleche=\def\PanoTorouteStyleArrow{#1},%
+ EspacementV=\setlength{\PanoTorouteStretch}{#1},%
+ OffsetFleches=\setlength{\PanoTorouteOffsetArrow}{#1}
+}
+
+\setKVdefault[PanoAutoroute]{%
+ Fleches=0,%
+ CouleurFond=blue,%
+ CouleurTitre=red,%
+ Largeur=10cm,%
+ Police=\LARGE\bfseries\sffamily,%
+ PoliceCartouche=\Large\bfseries\sffamily,%
+ TypeFleche={\scalebox{1.33}[1.25]{\faArrowDown}},%
+ EspacementV={2.5mm},%
+ OffsetFleches={5mm},%
+ Dernier=true
+}
+
+\NewDocumentEnvironment{PanneauAutoroute}{ O{} D<>{} m }%
+{%
+ \restoreKV[PanoAutoroute]%
+ \setKV[PanoAutoroute]{#1}
+ \IfEq{#3}{}%
+ {%
+ \tcolorbox[enhanced,width={\useKV[PanoAutoroute]{Largeur}},fontupper=\PanoTorouteFonte,colback=\PanoTorouteCoul,colframe=\PanoTorouteCoul!5!white,coltext=white,sharp corners,boxsep=1mm,left=1mm,right=1mm,top=1mm,bottom=1mm,#2]
+ }%
+ {%
+ \tcolorbox[enhanced,width={\useKV[PanoAutoroute]{Largeur}},fontupper=\PanoTorouteFonte,colback=\PanoTorouteCoul,colframe=\PanoTorouteCoul!5!white,coltext=white,sharp corners,boxsep=1mm,left=1mm,right=1mm,top=1mm,bottom=1mm,attach boxed title to top center,fonttitle=\PanoTorouteFonteTitre,coltitle=white,boxed title style={colback=\PanoTorouteCoulTitre,size=small,sharp corners,left=0mm,right=0mm,colframe=\PanoTorouteCoulTitre!5!white},title={#3},#2]
+ }%
+ \baselineskip=-1000pt\lineskip=\PanoTorouteStretch\lineskiplimit=\maxdimen%
+}%
+{%
+ \ifnum\PanoTorouteArrow>0
+
+ \medskip
+ \hspace*{\PanoTorouteOffsetArrow}\foreach \i in {1,...,\PanoTorouteArrow}{\hfill\PanoTorouteStyleArrow}\hfill\hspace*{\PanoTorouteOffsetArrow}
+ \fi%
+ \endtcolorbox%
+ %
+ \ifboolKV[PanoAutoroute]{Dernier}{}{\vspace*{\dimexpr-\baselineskip-0.5mm\relax}}%
+}
+
+\NewDocumentCommand\VilleDist{ s m m }{%
+ \IfBooleanTF{#1}%
+ {%
+ #2\hfill~#3
+ }%
+ {%
+ #2\hfill~#3\\
+ }%
+}
+
+%====PANOSOLDES
+\newlength{\tmphautbannsold}
+\newlength{\tmphautbannsoldextra}
+\newlength{\tmplargbannsold}
+\newlength{\tmplargasold}
+\newlength{\tmplargbsold}
+\newlength{\tmplargtotsold}
+\newlength{\tmpoffsetbannsold}
+\newlength{\tmphautlignesol}
+\newlength{\tmphautsoles}
+
+\def\labelancienprix{Ancien Prix~:~}
+\def\labelnouveauprix{Nouveau Prix~:~}
+\def\labelreduction{SOLDES~:~}
+
+\defKV[PanoSoldes]{%
+ Couleur=\def\panosoldescolor{#1},%
+ Largeur=\def\panosoldeswidth{#1},%
+ PoliceEntete=\def\panosoldesfonthaut{#1},%
+ PolicePrix=\def\panosoldesfontprix{#1},%
+ PoliceReduc=\def\panosoldesfontreduc{#1},%
+ OffsetReduc=\setlength{\tmpoffsetbannsold}{#1},%
+ Titre=\def\panosoldestitre{#1},%
+ AgrandirReduc=\setlength{\tmphautbannsoldextra}{#1}
+}
+
+\setKVdefault[PanoSoldes]{%
+ Couleur=gray,
+ Largeur=auto,
+ PoliceEntete=\large\bfseries,%
+ PolicePrix=\footnotesize,%
+ PoliceReduc=\large\bfseries,%
+ Titre=GRANDE DÉMARQUE,%
+ OffsetReduc=1.25cm,%
+ AgrandirReduc=0mm
+}
+
+\NewDocumentCommand\AfficheSoldes{ O{} m m m }{%
+ \restoreKV[PanoSoldes]%
+ \setKV[PanoSoldes]{#1}%
+ %calcul de la largeur
+ \IfEq{\panosoldeswidth}{auto}%
+ {%
+ \settowidth{\tmplargbannsold}{{\panosoldesfontreduc\labelreduction-999X}}%largeur avec un peu de marge dûe à la rotation
+ \settowidth{\tmplargasold}{{\panosoldesfontprix\labelancienprix99999X}}%largeur avec un peu de marge dûe au prix "élastique"
+ \settowidth{\tmplargbsold}{{\panosoldesfontprix\labelnouveauprix99999X}}%largeur avec un peu de marge dûe au prix "élastique"
+ \pgfmathsetlength{\tmplargtotsold}{max(\tmplargbannsold,\tmplargasold,\tmplargbsold)+1mm}%on rajoute encore un peu de marge pour être sûr
+ }%
+ {%
+ \setlength{\tmplargtotsold}{\panosoldeswidth}%
+ }%
+ %calcul de la hauteur
+ \settototalheight{\tmphautlignesol}{\panosoldesfontprix\labelancienprix\labelnouveauprix0,123456789X}%
+ \settototalheight{\tmphautbannsold}{\panosoldesfontreduc\labelreduction-0,123456789X}%
+ \addtolength{\tmphautbannsold}{6mm+\tmphautbannsoldextra}%
+ \setlength{\tmphautsoles}{2\tmphautlignesol}%
+ \addtolength{\tmphautsoles}{\tmpoffsetbannsold+2mm}%
+ \addtolength{\tmphautsoles}{\tmphautbannsold}%
+ %boîte
+ \tcolorbox[%
+ enhanced,nobeforeafter,width=\tmplargtotsold,text height=\tmphautsoles,boxrule=0.5mm,boxsep=0.5mm,title={\panosoldestitre},halign title=flush center,colframe=\panosoldescolor,colback=white,top=1.25mm,bottom=1.25mm,left=1.25mm,right=1.25mm,fonttitle=\panosoldesfonthaut,%
+ overlay={%
+ \begin{tcbclipframe}
+ \draw ([shift={(1.25mm,-2mm)}]interior.north west) node[anchor=north west,font=\panosoldesfontprix,inner sep=0pt] {Ancien prix : {#2}} ;
+ \draw ([shift={(-1.25mm,2.5mm)}]interior.south east) node[anchor=south east,left,font=\panosoldesfontprix,inner sep=0pt] {Nouveau prix : {#3}} ;
+ %bannière (cf Séb Lozano)
+ \fill[line cap=rect,\panosoldescolor] ([shift={(0,2.5mm+\tmphautlignesol)}]interior.south west)--([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold)}]interior.south east)--++(0,\tmphautbannsold)--([shift={(0,2.5mm+\tmphautlignesol+\tmphautbannsold)}]interior.south west) ;
+ %petit filet
+ \draw[white,semithick] ([shift={(0,2.5mm+\tmphautlignesol+1pt)}]interior.south west)--([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold+1pt)}]interior.south east)--++(0,\tmphautbannsold-2pt)--([shift={(0,2.5mm+\tmphautlignesol+\tmphautbannsold-1pt)}]interior.south west)--cycle ;
+ %label
+ \draw[draw=none] ([shift={(0,2.5mm+\tmphautlignesol+0.5\tmphautbannsold)}]interior.south west) -- ([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold+0.5\tmphautbannsold)}]interior.south east) node[midway,sloped,font=\panosoldesfontreduc,text=white] {SOLDES : {#4}} ;
+ \end{tcbclipframe}%
+ }%
+ ]%
+ \endtcolorbox%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/dashrulex/README.md b/macros/latex/contrib/dashrulex/README.md
index 3e81605ffc..7772e6b492 100644
--- a/macros/latex/contrib/dashrulex/README.md
+++ b/macros/latex/contrib/dashrulex/README.md
@@ -1,5 +1,5 @@
# The `dashrulex` package
-Draw dashed rules (v1.01a)
+Draw dashed rules (v1.01d)
## Abstract
The `dashrulex` package provides a flexible solution for drawing dashed rules in the body, and currently provides two commands `\hdashrule` and `\hanyrule`. It's written in LaTeX3 and can be used as an alternative to the `dashrule` package.
diff --git a/macros/latex/contrib/dashrulex/dashrulex.pdf b/macros/latex/contrib/dashrulex/dashrulex.pdf
index f97a5ef302..3122447bde 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.pdf
+++ b/macros/latex/contrib/dashrulex/dashrulex.pdf
Binary files differ
diff --git a/macros/latex/contrib/dashrulex/dashrulex.sty b/macros/latex/contrib/dashrulex/dashrulex.sty
index 090cfe2931..db7a7b8918 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.sty
+++ b/macros/latex/contrib/dashrulex/dashrulex.sty
@@ -9,22 +9,23 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2012/02/12]
\RequirePackage{xparse}
-\ProvidesExplPackage{dashrulex}{2024/07/18}{1.01a}
+\ProvidesExplPackage{dashrulex}{2024/10/22}{1.01d}
{Draw dashed rules}
\DeclareDocumentCommand{\hdashrule}{O{0pt}O{x}mmm}
{
\tl_if_blank:nTF {#5}
{ \rule[#1]{#3}{#4} }
{
- \mbox{}
- \use:c { #2leaders }
- \hbox:n
+ \mbox
{
- \clist_map_inline:nn {#5}
- { \drx@parse@dash{#1}{#4}{##1} }
+ \use:c { #2leaders }
+ \hbox:n
+ {
+ \clist_map_inline:nn {#5}
+ { \drx@parse@dash{#1}{#4}{##1} }
+ }
+ \skip_horizontal:n {#3}
}
- \skip_horizontal:n {#3}
- \mbox{}
}
}
\NewDocumentCommand{\drx@parse@dash}
@@ -38,11 +39,12 @@
}
\NewDocumentCommand{\hanyrule}{O{x}mm}
{
- \mbox{}
- \use:c { #1leaders }
- \hbox:n { \clist_map_inline:nn {#3} {##1} }
- \skip_horizontal:n {#2}
- \mbox{}
+ \mbox
+ {
+ \use:c { #1leaders }
+ \hbox:n { \clist_map_inline:nn {#3} {##1} }
+ \skip_horizontal:n {#2}
+ }
}
\int_new:N \l__drx_vrule_counter_int
diff --git a/macros/latex/contrib/dashrulex/dashrulex.tex b/macros/latex/contrib/dashrulex/dashrulex.tex
index 5469fc0c37..01579bbc91 100644
--- a/macros/latex/contrib/dashrulex/dashrulex.tex
+++ b/macros/latex/contrib/dashrulex/dashrulex.tex
@@ -1,14 +1,16 @@
+\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{setspace,hologo,enumitem,dashrulex,tikz}
+\usepackage{hologo,enumitem,dashrulex,tikz,codehigh}
\usepackage[noto]{newtxmath}
\setcnltx
{
package = dashrulex,
title = dashrulex,
- version = v1.01a,
- date = 2024/07/18,
+ version = v1.01d,
+ date = 2024/10/22,
authors = Qu Yi,
+ title = \dashrulex{} package,
info = Draw dashed rules,
email = toquyi@163.com,
url = https://github.com/texno3/dashrulex,
@@ -17,10 +19,7 @@
The \pkg*{dashrulex} package provides a flexible solution for drawing dashed rules in the body, and currently provides two commands \cs{hdashrule} and \cs{hanyrule}. It's written in \hologo{LaTeX3} and can be used as an alternative to the \pkg*{dashrule} package.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[3][\code{,}]{\meta{#2}#1\meta{#3}}
@@ -40,9 +39,12 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
+\colorlet{link}{DeepPink}
\makeatother
\begin{document}
@@ -52,42 +54,42 @@ Sometimes it is necessary to draw dashed rules when writing documents, such as g
\section{User commands}
\begin{commands}
\command{hdashrule}[\oarg{raise}\oarg{leader}\marg{width}\marg{thickness list}\marg{dash rules}]
- The command to draw horizontal dashed rules, based on the \cs{rule} command, and the same as the \cs{rule} command when the \meta{dash rules} are empty. \meta{raise} is the vertical offset of the rule. \meta{leader} is the alignment of the dashed line fill, which can be empty, \code{c}, or \code{x} (the \textcolor{red}{default}), corresponding to the \cs{leaders}, \cs{cleaders}, and \cs{xleaders} commands, respectively. \meta{width} is the length of the dashed line, which can be set to \cs{fill} when used to fill the remaining part of the current text line. \meta{thickness list} is a rule for the height of \textcolor{red}{vertical} lines, separated by \textcolor{red}{commas} and written as \splitmeta{height 1}{height a}\code{,...}, where \meta{height 1} denotes the height of a solid line and \meta{height a} denotes the height of a blank space. \meta{dash rules} stands for \textcolor{red}{horizontal} dashed line rules, which expressed as \splitmeta[\code{|}]{length 1}{length a}\code{,}\splitmeta[\code{|}]{length 2}{length b}\code{,...}, where \meta{length 1} represents the length of the solid line and \meta{length a} represents the length of the blank space, such as \code{5pt|2pt,3pt}, if the blank space is empty, then it is equal to the solid line length.
- \begin{example}
- 1X\rule{2cm}{1pt}x \\
- 2X\hdashrule{2cm}{1pt}{}x \\
- 3X\hdashrule{2cm}{1pt}{1pt}x \\
- 4X\hdashrule{4cm}{1pt}{1pt}x \\
- 5X\hdashrule[0.5ex]{4cm}{1pt}{1pt}x \\
- 6X\hdashrule[0.5ex]{4cm}{1pt}{3mm}x \\
- 7X\hdashrule[0.5ex]{4cm}{1mm}{3mm}x \\
- 8X\hdashrule[0.5ex]{4cm-3mm}{1mm}{3mm}\vrulemod[0.5ex]{3mm}{1mm}x \\
- 9X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt}x \\
- 10X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt,1mm|2pt}x \\
- 11X\hdashrule[0.5ex]{4cm}{2pt,1pt,1pt}{3mm|3pt,1mm|2pt}x
- \end{example}
+ The command to draw horizontal dashed rules, based on the \cs{rule} command, and the same as the \cs{rule} command when the \meta{dash rules} are empty. \meta{raise} is the vertical offset of the rule. \meta{leader} is the alignment of the dashed line fill, which can be empty, \code{c}, or \code{x} (the \textcolor{red}{default}), corresponding to the \cs{leaders}, \cs{cleaders}, and \cs{xleaders} commands, respectively. \meta{width} is the length of the dashed line, which can be set to \cs{fill} when used to fill the remaining part of the current text line. \meta{thickness list} is a rule for the height of \textcolor{red}{vertical} lines, separated by \textcolor{red}{commas} and written as \fbox{\splitmeta{height 1}{height a}\code{,...}}, where \meta{height 1} denotes the height of a solid line and \meta{height a} denotes the height of a blank space. \meta{dash rules} stands for \textcolor{red}{horizontal} dashed line rules, which expressed as \fbox{\splitmeta[\code{|}]{length 1}{length a}\code{,}\splitmeta[\code{|}]{length 2}{length b}\code{,...}}, where \meta{length 1} represents the length of the solid line and \meta{length a} represents the length of the blank space, such as \fbox{\code{5pt|2pt,3pt}}, if the blank space is empty, then it is equal to the solid line length.
+\begin{demohigh}
+1X\rule{2cm}{1pt}x \\
+2X\hdashrule{2cm}{1pt}{}x \\
+3X\hdashrule{2cm}{1pt}{1pt}x \\
+4X\hdashrule{4cm}{1pt}{1pt}x \\
+5X\hdashrule[0.5ex]{4cm}{1pt}{1pt}x \\
+6X\hdashrule[0.5ex]{4cm}{1pt}{3mm}x \\
+7X\hdashrule[0.5ex]{4cm}{1mm}{3mm}x \\
+8X\hdashrule[0.5ex]{4cm-3mm}{1mm}{3mm}\vrulemod[0.5ex]{3mm}{1mm}x \\
+9X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt}x \\
+10X\hdashrule[0.5ex]{4cm}{1mm}{3mm|3pt,1mm|2pt}x \\
+11X\hdashrule[0.5ex]{4cm}{2pt,1pt,1pt}{3mm|3pt,1mm|2pt}x
+\end{demohigh}
\command{vrulemod}[\oarg{raise}\oarg{height}\oarg{depth}\marg{width}\marg{thickness list}]
The vertical model used to fill the dashed line. \meta{thickness list} is consistent with the \cs{hdashrule} command, \meta{width} represents the length of the component, and the three optional parameters are consistent with those of the \cs{raisebox} command.
\command{hanyrule}[\oarg{leader}\marg{width}\marg{symbol list}]
This command sets the length of the dotted rule and fills it with arbitrary symbols. \meta{symbol list} can be more than one symbol and they are separated by \textcolor{red}{commas}. Symbols are best packed in boxes of a certain length, as spacing between symbols is not provided.
- \begin{example}
- \newcommand{\dblblock}
- {%
- \tikz[color=teal]
- {
- \draw[line width=0.8mm](0mm,1.1mm)--(3mm,1.1mm);
- \draw[line width=0.3mm](0mm,0mm)--(3mm,0mm);
- }%
- }
- 1X\hanyrule[]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 2X\hanyrule[c]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 3X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$}}x \\
- 4X\hanyrule[x]{5cm}{\makebox[8pt][l]{$\cdot$}}x \\
- 5X\hanyrule[x]{5cm}{\makebox[8pt][r]{$\cdot$}}x \\
- 6X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$},\makebox[8pt]{$\circ$}}x \\
- 7X\hanyrule[x]{5cm}{\makebox[5mm]{\vrulemod{3mm}{2pt,1pt,1pt}}}x \\
- 8X\hanyrule[x]{5cm}{\makebox[5mm]{\dblblock}}x
- \end{example}
+\begin{demohigh}
+\newcommand{\dblblock}
+ {%
+ \tikz[color=teal]
+ {
+ \draw[line width=0.8mm](0mm,1.1mm)--(3mm,1.1mm);
+ \draw[line width=0.3mm](0mm,0mm)--(3mm,0mm);
+ }%
+ }
+1X\hanyrule[]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+2X\hanyrule[c]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+3X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$}}x \\
+4X\hanyrule[x]{5cm}{\makebox[8pt][l]{$\cdot$}}x \\
+5X\hanyrule[x]{5cm}{\makebox[8pt][r]{$\cdot$}}x \\
+6X\hanyrule[x]{5cm}{\makebox[8pt]{$\cdot$},\makebox[8pt]{$\circ$}}x \\
+7X\hanyrule[x]{5cm}{\makebox[5mm]{\vrulemod{3mm}{2pt,1pt,1pt}}}x \\
+8X\hanyrule[x]{5cm}{\makebox[5mm]{\dblblock}}x
+\end{demohigh}
\end{commands}
\section{Known issues}
@@ -95,5 +97,6 @@ Currently only horizontal dashed line drawing is supported, with future plans to
\appendix
\nocite{*}
+\AddToHook{cmd/printindex/before}{\clearpage}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/dccpaper/README.md b/macros/latex/contrib/dccpaper/README.md
index 0d52a8434a..b1181bc202 100644
--- a/macros/latex/contrib/dccpaper/README.md
+++ b/macros/latex/contrib/dccpaper/README.md
@@ -73,7 +73,7 @@ A makefile is provided which you can use with the Make utility:
## Licence
-Copyright 2023 Digital Curation Centre, University of Edinburgh.
+Copyright 2024 Digital Curation Centre, University of Edinburgh.
This work consists of the image files dccpaper-by.eps and
dccpaper-by.pdf, the documented LaTeX file dccpaper.dtx and a Makefile.
diff --git a/macros/latex/contrib/dccpaper/dccpaper.dtx b/macros/latex/contrib/dccpaper/dccpaper.dtx
index de8e3b88cc..7218660813 100644
--- a/macros/latex/contrib/dccpaper/dccpaper.dtx
+++ b/macros/latex/contrib/dccpaper/dccpaper.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%<*internal|ijdc9|ijdc14|idcc|base>
-\def\Version{2023/08/11 v2.4}
+\def\Version{2024/08/23 v2.5}
%</internal|ijdc9|ijdc14|idcc|base>
%<*internal>
\iffalse
@@ -246,7 +246,7 @@ See: http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
-Copyright (C) 2023 Digital Curation Centre, University of Edinburgh
+Copyright (C) 2024 Digital Curation Centre, University of Edinburgh
<info@dcc.ac.uk>
\endpostamble
@@ -546,16 +546,16 @@ Use this for a conference preprint.
\subsection{International Digital Curation Conference}
\begin{framed}\noindent
-To emulate a 2024 conference paper/extended abstract, use the \textsf{ijdc-v14}
-class with the \key{conference} option.
+To emulate a conference paper/extended abstract from 2024 onwards, use the
+\textsf{ijdc-v14} class with the \key{conference} option.
\end{framed}
The class is loaded in the usual way with
\lstinline|\documentclass[$\meta{options}$]{idcc}|.
Two types of option are available. The first relates to the conference to which the submission will be made:
\begin{description}[font=\normalfont]
- \item[\key{15}, \key{16}, .~.~.~, \key{22}, \key{24}]
- Use this to select the year of the conference, e.g.\@ \key{24} for 2024.
+ \item[\key{15}, \key{16}, .~.~.~, \key{24}, \key{25}]
+ Use this to select the year of the conference, e.g.\@ \key{25} for 2025.
\end{description}
The second relates to the type of submission:
@@ -871,6 +871,8 @@ Any acknowledgements should be placed in a section immediately before the refere
\section{Appendix A: Change History}
\begin{description}
+\item[v2.5] 2024-08-23\\
+Added details of IDCC 2025.
\item[v2.4] 2023-08-11\\
Added details of and update documentation for IDCC 2024.
\item[v2.3] 2022-01-27\\
@@ -1097,7 +1099,7 @@ Fully funded, part funded (subsidised) or delegate fee.
%<readme>## Licence
%<readme>
%<*driver|readme>
-Copyright 2023 Digital Curation Centre, University of Edinburgh.
+Copyright 2024 Digital Curation Centre, University of Edinburgh.
This work consists of the image files dccpaper-by.eps and
dccpaper-by.pdf, the documented LaTeX file dccpaper.dtx and a Makefile.
@@ -1520,9 +1522,15 @@ the University of Edinburgh on behalf of the Digital Curation Centre. ISSN:
\DeclareOption{24}{%
\def\dccp@publ@short{IDCC}
\def\dccp@publ@msg{The 18th \dccp@publ@long\ takes place on 19--21 February
- 2024 in Edinburgh, Scotland.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/18th-international-digital-curation-conference}}
+ 2024 in Edinburgh, Scotland.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/idcc24}}
\def\dccp@subject{18th \dccp@publ@long, 2024}
}
+\DeclareOption{25}{%
+ \def\dccp@publ@short{IDCC25}
+ \def\dccp@publ@msg{The 19th \dccp@publ@long\ takes place on 17--19 February
+ 2025 in The Hague, Netherlands.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/idcc25}}
+ \def\dccp@subject{19th \dccp@publ@long, 2025}
+}
\ProcessOptions\relax
% \end{macrocode}
diff --git a/macros/latex/contrib/dccpaper/dccpaper.pdf b/macros/latex/contrib/dccpaper/dccpaper.pdf
index 3cd33ff6fa..310af05b12 100644
--- a/macros/latex/contrib/dccpaper/dccpaper.pdf
+++ b/macros/latex/contrib/dccpaper/dccpaper.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/README.md b/macros/latex/contrib/easybook/README.md
index a04be06f54..9793140a0c 100644
--- a/macros/latex/contrib/easybook/README.md
+++ b/macros/latex/contrib/easybook/README.md
@@ -1,5 +1,5 @@
# The `easybook` document class
-Easily typesetting Chinese theses or books (v2024dj)
+Easily typesetting Chinese theses or books (v2024ex)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 30f7860795..527731744b 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\ProvidesExplClass{easybook}{2024/08/14}{2024dj}
+\ProvidesExplClass{easybook}{2024/10/31}{2024ex}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -43,6 +43,7 @@
class.code:n = { },
floatpage.code:n = { },
theorem .code:n = { },
+ chem .code:n = { },
unknown .code:n = \clist_gput_right:NV \g__eb_doc_options_clist \CurrentOption
}
@@ -301,19 +302,16 @@
%</class>
%<*package>
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/08/14}{2024dj}
+\ProvidesExplPackage{easybase}{2024/10/31}{2024ex}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
\cs_generate_variant:Nn \dim_sign:n { V }
\cs_generate_variant:Nn \int_to_arabic:n { v }
\cs_generate_variant:Nn \msg_warning:nnn { nnV }
-\cs_generate_variant:Nn \prop_set_from_keyval:Nn { NV }
\cs_generate_variant:Nn \skip_set:Nn { NV }
-\cs_generate_variant:Nn \seq_set_from_clist:Nn { No }
\cs_generate_variant:Nn \ctex_define:nn { nx }
\cs_generate_variant:Nn \eb_set_hyperref:n { x }
-\cs_generate_variant:Nn \eb_at_begin_environment:nn { o }
\cs_generate_variant:Nn \tl_if_novalue:nF { V }
\cs_set_protected:Npn \ctex_define:nn #1
@@ -327,11 +325,6 @@
{ \AddToHook{cmd/#1/before}{#2} }
\cs_new_protected:Npn \eb_appto_cmd:nn #1#2
{ \AddToHook{cmd/#1/after}{#2} }
-\cs_new_protected:Npn \eb_at_begin_environment:nn #1#2
- {
- \clist_map_inline:nn {#1}
- { \AtBeginEnvironment{##1}{#2} }
- }
\cs_set_protected:Npn \ctex_before_end_preamble:n
{ \BeforeBeginEnvironment{document} }
\cs_new_protected:Npn \eb_if_package_loaded:nnF #1#2#3
@@ -394,6 +387,7 @@
\clist_new:N \g__eb_ctex_options_clist
\cs_new_protected:Npn \eb_put_geometry:n #1
{ \PassOptionsToPackage{#1}{geometry} }
+\providebool{@openright}
\keys_define:nn { easybase }
{
@@ -405,9 +399,18 @@
floatpage .bool_set:N = \l__eb_float_page_bool,
floatpage .default:n = true,
floatpage .initial:n = false,
- theorem .bool_set:N = \l__eb_theorem_support_bool,
- theorem .default:n = true,
- theorem .initial:n = true,
+ theorem .choices:nn =
+ { thmtools,keytheorems,false }
+ { \tl_set:Nn \l__eb_theorem_support_tl {#1} },
+ theorem/true .meta:n = { theorem = thmtools },
+ theorem .default:n = thmtools,
+ theorem .initial:n = thmtools,
+ chem .choices:nn =
+ { chemformula,mhchem,false }
+ { \tl_set:Nn \l__eb_chem_support_tl {#1} },
+ chem/true .meta:n = { chem = chemformula },
+ chem .default:n = chemformula,
+ chem .initial:n = chemformula,
paper .code:n = \eb_put_geometry:n {#1},
paper .initial:n = a4paper,
class .choice:,
@@ -416,15 +419,24 @@
{
\bool_set_true:N \l__eb_class_mode_book_bool
\eb_put_geometry:n { twoside }
+ \booltrue{@titlepage}
+ \booltrue{@openright}
},
class/article .code:n =
{
\bool_set_false:N \l__eb_class_mode_book_bool
\eb_put_geometry:n { twoside = false }
+ \boolfalse{@titlepage}
},
- class .initial:n = book,
+ class .initial:x = \cs_if_exist:NTF \chapter { book } { article },
book .meta:n = { class = book },
article .meta:n = { class = article },
+ twoside .code:n = \eb_put_geometry:n { twoside },
+ oneside .code:n = \eb_put_geometry:n { twoside = false },
+ titlepage .code:n = \booltrue{@titlepage},
+ notitlepage .code:n = \boolfalse{@titlepage},
+ openright .code:n = \booltrue{@openright},
+ openany .code:n = \boolfalse{@openright},
unknown .code:n = \clist_gput_right:NV \g__eb_ctex_options_clist \CurrentOption
}
@@ -510,11 +522,10 @@
{
[text]{spbmark},
[{shortlabels,inline}]{enumitem},
- chemformula,siunitx,pifont,
- geometry,marginnote,
- pdfpages,multicol,
+ siunitx,pifont,
+ geometry,marginnote,multicol,
fancyhdr,titletoc,caption,
- tabularray,
+ tabularray,graphicx,xcolor,
listings
}
\cs_new_protected:Npn \eb_package_date_check:nn #1#2
@@ -530,50 +541,8 @@
Please~update~your~macro~package~from~CTAN.
}
-\NewDocumentCommand{\eb_assign_tagform:n}
- {>{\SplitArgument{1}{,}}m}
- {\eb_assign_tagform_pos:nn #1}
-\cs_new_protected:Npn \eb_assign_tagform_pos:nn #1#2
- {
- \tl_set:Nn \eb@tag@brackets@left {#1}
- \tl_set:Nn \eb@tag@brackets@right {#2}
- }
-\cs_gset:Npn \tagform@ #1
- {
- \maketag@@@
- {
- \color{ctex@emph}
- \ignorespaces
- \eb@tag@brackets@left{#1}
- \unskip\@@italiccorr
- \eb@tag@brackets@right
- }
- }
-\ctex_define:nn { tools }
- {
- multoc .int_set:N = \l__eb_toc_columns_int,
- multoc .default:n = 2,
- withpart .bool_set:N = \l__eb_chap_counter_withpart_bool,
- withpart .default:n = true,
- withpart .initial:n = false,
- uppercase .tl_set:N = \l__eb_mark_uppercase_value_tl,
- uppercase .default:n = all,
- uppercase .initial:n = all,
- tagform .code:n = \eb_assign_tagform:n {#1},
- tagform .initial:n = { (,) },
- brackets .meta:n = { tagform = {#1} },
- figurepath .code:n =
- {
- \tl_if_blank:nF {#1}
- {
- \regex_match:nnTF { \cB. } {#1}
- { \graphicspath{#1} }
- { \graphicspath{{#1}} }
- }
- }
- }
-
-\includepdfset{fitpaper = true}
+\ctex_at_end_package:nn { pdfpages }
+ { \includepdfset{fitpaper = true} }
\geometry
{
vmargin = 2.54cm,
@@ -648,10 +617,10 @@
}
\cs_new_protected:Npn \eb@register@hdr@mark #1
{
- \exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
+ \exp_args:Nc \DeclareDocumentCommand { eb@mark@#1@label@layout }
{O{\use:c { CTEXthe#1 }}m}
{\tl_set:cn { eb@mark@#1@label } {##1##2}}
- \cs_new_protected:cpn { eb_mark_#1_name_parse:n } ##1
+ \cs_set_protected:cpn { eb_mark_#1_name_parse:n } ##1
{
\regex_match:nnTF { ^\[.*\] } {##1}
{ \use:c { eb@mark@#1@label@layout }##1 }
@@ -666,6 +635,7 @@
\eb_mark_uppercase_case_init:n {##1}
},
#1-label .code:n = \use:c { eb_mark_#1_name_parse:n } {##1},
+ #1-label .initial:n = \hspace{0.5em}
}
}
\cs_new_protected:Npn \RegisterHdrMark #1
@@ -674,13 +644,7 @@
\eb@register@hdr@mark
}
\RegisterHdrMark{chapter,section,subsection}
-
-\ctex_set:nn { hdr }
- {
- chapter-label = \hspace{1em},
- section-label = \hspace{0.5em},
- subsection-label = \hspace{0.5em}
- }
+\ctex_set:nn { hdr } { chapter-label = \hspace{1em} }
\ctex_define:nn { hdr }
{
chap-mark .meta:n = { chapter-mark = {#1} },
@@ -702,18 +666,18 @@
}
\cs_set:Npn \markdouble #1 { \markboth{#1}{\ifbool{@twoside}{#1}{}} }
-\cs_new:Npn \eb@level@markdouble #1#2
+\cs_new_protected:Npn \eb@level@markdouble #1#2
{ \markdouble{\use:c { eb@mark@#1@whole }{#2}} }
-\cs_new:Npn \eb@level@markright #1#2
+\cs_new_protected:Npn \eb@level@markright #1#2
{ \markright{\use:c { eb@mark@#1@whole }{#2}} }
\cs_gset:Npn \chaptermark #1 { \eb@level@markdouble{chapter}{#1} }
-\cs_gset:Npn \sectionmark #1
+\cs_gset:Npx \sectionmark #1
{
\bool_if:NTF \l__eb_class_mode_book_bool
{ \eb@level@markright{section}{#1} }
{ \eb@level@markdouble{section}{#1} }
}
-\cs_gset:Npn \subsectionmark #1
+\cs_gset:Npx \subsectionmark #1
{
\bool_if:NF \l__eb_class_mode_book_bool
{ \eb@level@markright{subsection}{#1} }
@@ -805,25 +769,14 @@
\UseFntSymbsList{empty}
\cs_set_eq:NN \DefineFntSymbols \SetFntSymbsList
\cs_set_eq:NN \setfntsymbol \UseFntSymbsList
-\cs_new:Npn \eb_int_type_trans:NN #1
- {
- \str_case:nn {#1}
- {
- { A } { \int_to_Alph:n }
- { a } { \int_to_alph:n }
- { 1 } { \int_to_arabic:n }
- { I } { \int_to_Roman:n }
- { i } { \int_to_roman:n }
- { c } { \exp_args:NV \zhnumber }
- { s } { \eb_int_to_symbols:n }
- }
- }
+\tl_new:N \l__eb_fnmarktext_tmpa_tl
+\tl_new:N \l__eb_fnmarktext_tmpb_tl
\cs_new_protected:Npn \eb_fnmarktext_normal_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmarktext_number_type_tl {#2}
+ \tl_set:Nn \l__eb_fnmarktext_tmpa_tl {#2}
\cs_set:Npx #1
{
- \str_case:VnT \l__eb_fnmarktext_number_type_tl
+ \str_case:VnT \l__eb_fnmarktext_tmpa_tl
{
{ plain }
{ \exp_not:N \int_use:N }
@@ -841,18 +794,33 @@
\cs_set_eq:NN \thedownfootnote \thefootnote
}
\cs_generate_variant:Nn \msg_warning:nnnn { nnnV }
+\cs_new:Npn \eb_footnote_int_trans:n #1
+ {
+ \prop_item:Nn \l__eb_int_trans_cmds_prop {#1}
+ \exp_not:N \c@footnote
+ }
+\prop_set_from_keyval:Nn \l__eb_int_trans_cmds_prop
+ {
+ A = \int_to_Alph:n,
+ a = \int_to_alph:n,
+ 1 = \int_to_arabic:n,
+ I = \int_to_Roman:n,
+ i = \int_to_roman:n,
+ c = \exp_args:NV \zhnumber,
+ s = \eb_int_to_symbols:n
+ }
\cs_new_protected:Npn \eb_fnmarktext_short_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmarktext_short_tokens_tl {#2}
+ \tl_set:Nn \l__eb_fnmarktext_tmpb_tl {#2}
\clist_map_inline:nn
{ A,a,1,I,i,c,s }
{
\regex_match:nnTF {##1} {#2}
{
\regex_replace_once:nnN {##1}
- { \c{eb_int_type_trans:NN} ##1 \c{c@footnote} }
- \l__eb_fnmarktext_short_tokens_tl
- \cs_set_eq:NN #1 \l__eb_fnmarktext_short_tokens_tl
+ { \c{eb_footnote_int_trans:n}\0 }
+ \l__eb_fnmarktext_tmpb_tl
+ \cs_set:Npx #1 { \l__eb_fnmarktext_tmpb_tl }
\clist_map_break:
}
{
@@ -964,7 +932,11 @@
\str_case:VnT \l__eb_fnt_parent_counter_tl
{
{ part } { \counterwithin*{footnote}{part} }
- { page } { \counterwithin*{footnote}{page} }
+ { page }
+ {
+ \RequirePackage{zref-perpage}
+ \zmakeperpage{footnote}
+ }
}
{ \counterwithout*{footnote}{chapter} }
}
@@ -1107,13 +1079,12 @@
\l__eb_fnpara_format_tl{#1}
\tl_if_eq:NnT \l__eb_footnote_value_tl { hang } { \par }
}
-\cs_new_protected:Npn \setspread #1 { \linespread{#1}\selectfont }
\clist_map_inline:nn { \@footnotetext,\@mpfootnotetext }
{
\eb_patch_cmd:Nnn #1
{ \reset@font }
{
- \setspread{\eb@spread@footnote}
+ \usestretch{\eb@spread@footnote}
\eb@font@footnote
}
}
@@ -1151,6 +1122,7 @@
\cs_set_protected:Npn \footref #1
{
\group_begin:
+ \unrestored@protected@xdef\@thefnmark{\ref{#1}}
\unrestored@protected@xdef\@the@up@fnmark{\ref{#1}}
\group_end:
\H@@footnotemark
@@ -1192,6 +1164,7 @@
{ \@xfootnotemark }
{
\stepcounter{footnote}
+ \protected@xdef\@thefnmark{\thefootnote}
\protected@xdef\@the@up@fnmark{\theupfootnote}
\@footnotemark
}
@@ -1201,7 +1174,8 @@
\cs_set:Npn \@xfootnotemark [#1]
{
\group_begin:
- \setcounter{footnote}{#1}
+ \int_set:Nn \c@footnote {#1}
+ \protected@xdef\@thefnmark{\thefootnote}
\unrestored@protected@xdef\@the@up@fnmark{\theupfootnote}
\group_end:
\H@@footnotemark
@@ -1224,6 +1198,8 @@
\bool_set_true:N \l__eb_normal_footnote_bool
\bool_new:N \l__eb_fnmarktext_format_match_bool
\bool_new:N \l__eb_fncustom_format_match_bool
+\cs_new_protected:Npn \ifnormalfnt #1#2
+ { \bool_if:NTF \l__eb_normal_footnote_bool {#1} {#2} }
\cs_new:Npn \eb_fnmarktext_format_clear:n #1
{
\bool_if:cTF { l__eb_fn#1_format_match_bool }
@@ -1268,8 +1244,8 @@
\tl_if_empty:oF {#2}
{
\group_begin:
- \unrestored@protected@xdef\@the@up@fnmark{#1}
\unrestored@protected@xdef\@thefnmark{#2}
+ \unrestored@protected@xdef\@the@up@fnmark{#1}
\group_end:
}
}
@@ -1331,6 +1307,31 @@
}
}
}
+\cs_new_protected:Npn \undefinecounter #1
+ {
+ \cs_undefine:c { c@#1 }
+ \cs_undefine:c { the#1 }
+ \group_begin:
+ \exp_args:Nc \providecommand { c@@ckpt }{}
+ \@removefromreset{#1}{@ckpt}
+ \group_end:
+ }
+\ProvideDocumentCommand{\declarecounter}{mo}
+ {
+ \undefinecounter{#1}
+ \IfValueTF{#2}{\newcounter{#1}[#2]}{\newcounter{#1}}
+ }
+\ProvideDocumentCommand{\renewcounter}{mo}
+ {
+ \cs_if_exist:cTF { c@#1 }
+ { \IfValueTF{#2}{\declarecounter{#1}[#2]}{\declarecounter{#1}} }
+ { \exp_args:Nc \renewcommand { c@#1 }{} }
+ }
+\ProvideDocumentCommand{\providecounter}{mo}
+ {
+ \cs_if_exist:cF { c@#1 }
+ { \IfValueTF{#2}{\newcounter{#1}[#2]}{\newcounter{#1}} }
+ }
\cs_new:Npn \eb_section_counter_prefix:n #1
{
\int_compare:nNnT { \c@chapter } > { 0 } { \use:c { the#1chapter }. }
@@ -1340,12 +1341,12 @@
\cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } }
\cs_set:Npn \thebisubsection { \thebisection.\@arabic\c@bisubsection }
\cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-\tl_new:N \eb@before@bitocline@hook
+\NewHook{bitocline/before}
+\DeclareHookRule{bitocline/before}{chapter}{<}{code}
\NewDocumentCommand{\BeforeAddtoBitoc}{sm}
{
- \IfBooleanTF{#1}
- {\tl_gset:Nn \eb@before@bitocline@hook {#2}}
- {\tl_gput_right:Nn \eb@before@bitocline@hook {#2}}
+ \IfBooleanT{#1}{\RemoveFromHook{bitocline/before}[code]}
+ \AddToHook{bitocline/before}[code]{#2}
}
\cs_set_eq:NN \BeforeAddBitoc \BeforeAddtoBitoc
\cs_new_protected:Npn \CTEX@addbitocline #1#2
@@ -1354,7 +1355,7 @@
\def\CTEX@prechapter{\CTEX@prebichapter}
\def\CTEX@thechapter{\CTEX@bichapter@number}
\def\CTEX@postchapter{\CTEX@postbichapter}
- \eb@before@bitocline@hook
+ \UseHook{bitocline/before}
\tl_if_eq:NnTF \g__eb_bilist_permute_value_tl { mix }
{ \addcontentsline{toc}{#1} }
{ \addcontentsline{tec}{#1} }
@@ -1363,7 +1364,8 @@
}
\cs_new_protected:Npn \eb@register@bititle #1
{
- \exp_args:Nc \NewDocumentCommand { bi#1 }{sO{##3}mm}
+ \providecounter{bi#1}
+ \exp_args:Nc \DeclareDocumentCommand { bi#1 }{sO{##3}mm}
{
\IfBooleanTF{##1}
{
@@ -1471,8 +1473,16 @@
}
}
-\cs_new_protected:Npn \SetTocOuter #1
- { \keys_set:nn { eb/tocouter } {#1} }
+\NewDocumentCommand{\SetTocOuter}{om}
+ {
+ \IfNoValueTF{#1}
+ {\keys_set:nn { eb/tocouter } {#2}}
+ {
+ \clist_if_exist:cF { l__eb_toc_outer_kv_#1_clist }
+ { \clist_clear_new:c { l__eb_toc_outer_kv_#1_clist } }
+ \clist_put_right:cn { l__eb_toc_outer_kv_#1_clist } {#2}
+ }
+ }
\tl_new:N \eb@bitoc@title
\bool_new:N \l__eb_toc_notitle_bool
\newbool{bitoc}
@@ -1606,10 +1616,17 @@
{ \par }
}
}
+\cs_generate_variant:Nn \keys_set:nn { nv }
+\cs_new_protected:Npn \eb_toc_outer_kv_initial:n #1
+ {
+ \clist_if_exist:cT { l__eb_toc_outer_kv_#1_clist }
+ { \keys_set:nv { eb/tocouter } { l__eb_toc_outer_kv_#1_clist } }
+ }
\cs_new_protected:Npn \eb_toc_list_struct_parse:nnnnn #1#2#3#4#5
{
\group_begin:
\tl_set_eq:Nc \eb@toc@title { list#4name }
+ \eb_toc_outer_kv_initial:n {#5}
\IfValueT{#3}{\keys_set:nn { eb/tocouter } {#3}}
\eb_toc_title_level_cmd:n {#1}
\eb_toc_if_title_between_hook:nn {#1} {#4}
@@ -1650,6 +1667,11 @@
}
}
\cs_new_protected:Npn \AssignCaptionExt #1#2
+ {
+ \clist_map_inline:nn {#1}
+ { \eb@assign@caption@ext{##1}{#2} }
+ }
+\cs_new_protected:Npn \eb@assign@caption@ext #1#2
{ \tl_set:cn { ext@#1 } {#2} }
\cs_set_eq:NN \AllotCaptionExt \AssignCaptionExt
\ctex_define:n
@@ -1671,6 +1693,7 @@
{ \section* }
}
}
+ \eb_toc_outer_kv_initial:n { toc }
\IfValueT{#3}{\keys_set:nn { eb/tocouter } {#3}}
\bool_if:NT \l__eb_toc_plan_cn_bool
{
@@ -1690,13 +1713,29 @@
\group_end:
}
-\cs_set_eq:NN \eb@contentsuse@save \contentsuse
\RenewDocumentCommand{\contentsuse}{O{-1000}mm}
{
- \eb@contentsuse@save{#2}{#3}
+ \clist_map_inline:nn {#2}
+ { \eb@contents@use{#1}{##1}{#3} }
+ }
+\cs_new_protected:Npn \eb@contents@use #1#2#3
+ {
+ \tl_set:cn { ttlx@#2 } {#3}
\tl_set:cn { ttll@#2 } {#1}
+ \tl_if_exist:cF { l__eb_contents_use_#2_#3_tl }
+ {
+ \tl_put_right:Nn \ttl@finishall
+ { \@writefile{#3}{\contentsfinish} }
+ }
+ \tl_set:cn { l__eb_contents_use_#2_#3_tl } { used }
}
\contentsuse{lstlisting}{lol}
+\ctex_at_end_package:nn { hyperref }
+ {
+ \cs_if_exist:NTF \Hy@toclinkstart
+ { \cs_set:Npn \hytoclink #1 { \Hy@toclinkstart #1\Hy@toclinkend } }
+ { \cs_set_eq:NN \hytoclink \use:n }
+ }
\seq_put_left:Nn \c__ctex_headings_seq { chapter }
\seq_put_right:Nn \c__ctex_headings_seq { table }
\seq_put_right:Nn \c__ctex_headings_seq { figure }
@@ -1713,7 +1752,7 @@
#1/tocformat* .tl_set:c = l__eb_toc_#1_entry_nolabel_tl,
#1/tocindent .tl_set:c = l__eb_toc_#1_indent_tl,
#1/toclabel .cs_set:cp = { eb_toc_entry_#1:nnn } ##1##2##3,
- #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
+ #1/tocrule .cs_set:cp = { eb_toc_rule_#1:n } ##1,
#1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
#1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl,
#1/tocbegin .meta:n = { #1/tocbelow = {##1} },
@@ -1735,7 +1774,7 @@
{\tl_use:c { l__eb_toc_#2_format_tl }}
{\use:c { eb_toc_entry_#2:nnn } { \thecontentslabel } {#2} {#1}}
{\tl_use:c { l__eb_toc_#2_entry_nolabel_tl }}
- {\tl_use:c { l__eb_toc_#2_rule_tl }}
+ {\use:c { eb_toc_rule_#2:n } { \thecontentspage }}
[\tl_use:c { l__eb_toc_#2_below_tl }]
}
\exp_not:o { \l__eb_toc_tmpb_tl }
@@ -1744,13 +1783,20 @@
{
tocformat = \IfBooleanT{#1}{\contentsmargin{0pt}},
tocindent = 0pt,
- tocrule = \IfBooleanTF{#1}{,~\thecontentspage}{\cdottocrule},
+ tocrule = \IfBooleanTF{#1}{,~##1}{\cdottocrule},
toclabel =
{
\bool_if:NTF \l__eb_toc_entry_hang_bool
{ \IfBooleanTF{##3}{\use:n}{\contentspush} }
{ \use:n }
- { ##1\tl_use:c { l__eb_toc_##2_after_tl } }
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:Vn \Hy@linktoc { 1 } }
+ { \str_if_eq_p:Vn \Hy@linktoc { 3 } }
+ { \hytoclink{##1} }
+ {##1}
+ \tl_use:c { l__eb_toc_##2_after_tl }
+ }
},
tocafter = \hspace{1em},
tocsep = .—,
@@ -1849,8 +1895,6 @@
hang .initial:n = true,
pagenumwd .code:n = \contentsmargin{#1},
pagenumwd .initial:n = 1.55em,
- fileopen .tl_set:N = \l__eb_fileopen_type_tl,
- fileopen .initial:n = once,
unknown .code:n = \eb_msg_deprecated_option:n { toc }
}
@@ -1871,21 +1915,13 @@
\group_begin:
\makeatletter
\file_if_exist_input:n { \jobname.#1 }
- \UseHookWithArguments{starttoc/after}{1}{#1}
+ \AddToHook{enddocument/afterlastpage}
+ {\UseHookWithArguments{starttoc/after}{1}{#1}}
\boolfalse{@nobreak}
\group_end:
}
{ \eb@starttoc{#1} }
}
-\AddToHook{enddocument/afterlastpage}
- {
- \tl_if_eq:NnTF \l__eb_fileopen_type_tl { once }
- { \iow_now:Nn \@mainaux { \RemoveFromHook{starttoc/after}[*] } }
- {
- \IfHookEmptyTF{starttoc/after}{}
- {\iow_now:Nn \@mainaux { \RemoveFromHook{starttoc/after}[aux] }}
- }
- }
\cs_set_protected:Npn \AssignPartialExt #1#2
{
\tl_if_exist:cTF { ttl@partial#1 }
@@ -1928,11 +1964,21 @@
\cs_new_protected:Npn \SetTocStyle #1#2#3
{
+ \clist_map_inline:nn {#1}
+ { \eb@set@toc@style{##1}{#2}{#3} }
+ }
+\cs_new_protected:Npn \eb@set@toc@style #1#2#3
+ {
\cs_set_protected:cpn { eb@toc@style@set@#1@#2 }
{ \ctex_set:nn {#1} {#3} }
}
\cs_new_protected:Npn \UseTocStyle #1#2#3
{
+ \clist_map_inline:nn {#1}
+ { \eb@use@toc@style{##1}{#2}{#3} }
+ }
+\cs_new_protected:Npn \eb@use@toc@style #1#2#3
+ {
\cs_if_exist:cTF { eb@toc@style@set@#1@#2 }
{ \addtocontents{#3}{\string\csuse{eb@toc@style@set@#1@#2}} }
{ \msg_warning:nnnn { easybase } { undefined-toc-style } {#2} {#1} }
@@ -2003,7 +2049,7 @@
\ctex_assign_heading_name:nn { biappendix } {#1}
\bool_if:NTF \l__eb_class_mode_book_bool
{
- \eb_preto_cmd:nn { eb@before@bitocline@hook }
+ \AddToHook{bitocline/before}[chapter]
{
\def\CTEX@prechapter{\CTEX@prebiappendix}
\def\CTEX@thechapter{#2}
@@ -2069,19 +2115,46 @@
}
\cs_set_eq:NN \addtosubfont \ebaddtofont
+\cs_new_protected:Npn \usestretch #1
+ {
+ \edef\baselinestretch{#1}
+ \@currsize
+ }
+\cs_set_eq:NN \setspread \usestretch
+\cs_new_protected:Npn \restore@usespace
+ {
+ \par
+ \vskip\parskip
+ \vskip\baselineskip
+ \endgroup
+ \vskip -\parskip
+ \vskip -\baselineskip
+ }
+\NewDocumentEnvironment{usespace}{m+b}
+ {
+ \par
+ \begingroup
+ \usestretch{#1}#2
+ \restore@usespace
+ }{}
+\msg_new:nnn { easybase } { invalid-spread }
+ {
+ The~line~spacing~factor~option~'#1'~is~invalid. \\
+ Please~use~the~'usespace'~environment~to~set~the~line~spacing.
+ }
+\cs_new_protected:Npn \eb_invalid_spread_warning:
+ { \msg_warning:nnV { easybase } { invalid-spread } \l_keys_key_str }
\ctex_define:nn { space }
{
- linespread .code:n = \setspread{#1},
- tabspread .fp_set:N = \l__eb_spread_table_fp,
- tabspread .initial:n = 1.2,
- mathspread .tl_set:N = \eb@spread@math,
- mathspread .initial:n = 1.2,
+ linespread .code:n = \usestretch{#1},
+ tabspread .code:n = \eb_invalid_spread_warning:,
+ mathspread .code:n = \eb_invalid_spread_warning:,
fntspread .code:n =
{
\tl_set:Nn \eb@spread@footnote {#1}
\group_begin:
\footnotesize
- \setspread{\eb@spread@footnote}
+ \usestretch{\eb@spread@footnote}
\exp_args:NNNo \group_end:
\dim_set:Nn \footnotesep { \dim_use:N \box_ht:N \strutbox }
},
@@ -2097,8 +2170,8 @@
caption-spread .initial:n = 1.2,
everyspread .meta:n =
{
- linespread = {#1},tabspread = {#1},mathspread = {#1},
- caption-spread = {#1},fntspread = {#1}
+ linespread = {#1},caption-spread = {#1},
+ fntspread = {#1}
},
abovedisplayskip .code:n =
{ \AfterPreamble{\skip_set:Nn \abovedisplayskip {#1}} },
@@ -2117,14 +2190,8 @@
\tl_if_eq:NnT \l__ctex_scheme_tl { chinese }
{
\fp_compare:nNnTF { \l__ctex_line_spread_fp } = { 1.3 }
- {
- \ctex_set:nn { space }
- { linespread = 1.354,tabspread = 1.354 }
- }
- {
- \ctex_set:nn { space }
- { linespread = \fp_use:N \l__ctex_line_spread_fp }
- }
+ { \usestretch{1.354} }
+ { \usestretch{\fp_use:N \l__ctex_line_spread_fp} }
}
\AfterPreamble{\skip_set:Nn \abovedisplayshortskip { 0ex plus .1ex }}
@@ -2155,7 +2222,7 @@
{
\DeclareCaptionFont{eb@#1@font}
{
- \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }}
+ \usestretch{\fp_use:c { l__eb_spread_caption_#1_fp }}
\tl_use:c { l__eb_font_caption_#1_tl }
}
}
@@ -2175,11 +2242,7 @@
\captionsetup[figure][bi-second]{name = Figure}
\captionsetup[table][bi-second]{name = Table}
}
-\eb_at_begin_environment:nn
- { tabular,tabularx,longtable }
- { \setspread{\fp_use:N \l__eb_spread_table_fp} }
\UseTblrLibrary{booktabs}
-
\bool_if:NF \l__eb_float_page_bool
{
\tl_gset:Nn \textfraction { 0.1 }
@@ -2195,11 +2258,6 @@
\setcounter{topnumber}{4}
\setcounter{bottomnumber}{4}
\setcounter{totalnumber}{8}
-\tl_set:Nn \fontsubfuzz { 0.5pt }
-\dim_zero_new:N \mathindent
-\allowdisplaybreaks[4]
-\everymath{\displaystyle}
-\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif}
\dim_new:N \hangwd
\cs_set_protected:Npn \hangpara #1#2
@@ -2256,7 +2314,7 @@
width .dim_set:N = \l__eb_eqsymb_width_dim,
width .initial:n = 10pt,
delim .tl_set:N = \l__eb_eqsymb_delim_tl,
- delim .initial:n = \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } { —— } { --- },
+ delim .initial:n = \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } { —— } { --- },
space .dim_set:N = \l__eb_eqsymb_space_dim,
space .initial:n = 0.25em,
item-align .tl_set:N = \l__eb_eqsymb_item_align_tl,
@@ -2328,24 +2386,35 @@
\tl_clear:N \l__eb_eqsymb_intro_tl
\ignorespaces
}
-\bool_if:NT \l__eb_theorem_support_bool
+
+\cs_new:Npn \eb_tl_exist_noempty:cT #1#2
+ { \tl_if_exist:cT {#1} { \tl_if_empty:cF {#1} {#2} } }
+\cs_new_protected:Npn \eb_theorem_load_thmtools:
{
\RequirePackage{amsthm,thmtools}
\cs_set_eq:NN \eb@declaretheoremstyle@save \declaretheoremstyle
\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem
\RenewDocumentCommand{\declaretheoremstyle}{+O{}m+O{}}
- {\eb@declaretheoremstyle@save[#1,#3]{#2}}
+ {\eb@declaretheoremstyle@save[##1,##3]{##2}}
\RenewDocumentCommand{\declaretheorem}{+O{}m+O{}}
{
- \eb@declaretheorem@save[style = default,#1,#3]{#2}
- \settheoremtocline{#2}
+ \cs_undefine:c {##2}
+ \undefinecounter{##2}
+ \eb_tl_exist_noempty:cT { g__eb_thmt_##2_parent_tl }
+ {
+ \exp_args:Nnv \@removefromreset {##2}
+ { g__eb_thmt_##2_parent_tl }
+ }
+ \eb@declaretheorem@save[style = default,##1,##3]{##2}
+ \tl_gset:cV { g__eb_thmt_##2_parent_tl } \thmt@parent
+ \settheoremtocline{##2}
{
- \listnumberline{#2}
+ \listnumberline{##2}
\thmtname\thmtifnote{~(\thmtnote)}{}
}
- \cs_gset:cpn { thmt@contentsline@#2 }
+ \cs_gset:cpn { thmt@contentsline@##2 }
{ \thmt@contentslineIfNamed }
- \exp_args:Nc \providecommand { p@#2 }[1]{##1}
+ \exp_args:Nc \providecommand { p@##2 }[1]{####1}
}
\ctex_define:nn { thmt }
{
@@ -2363,14 +2432,13 @@
bodyfont = \normalfont,
postheadspace = 1em
]
- \theoremstyle{default}
- \cs_undefine:N \proof
\DeclareFloatList{theorem}{loe}
\AssignPartialExt{loe}{ple}
\eb_preto_cmd:nn { listoftheorems }
{
\group_begin:
- \def\contentsline #1 {\use:c { thmt@contentsline@#1 }{#1}}
+ \let\thmt@contentsline\contentsline
+ \def\contentsline ##1 {\use:c { thmt@contentsline@##1 }{##1}}
}
\eb_appto_cmd:nn { listoftheorems } { \group_end: }
\eb_preto_cmd:nn { @chapter }
@@ -2382,68 +2450,120 @@
\def\thmtname{\thmt@thmname}
\def\thmtenvname{\thmt@envname}
\def\thmtnote{\thmt@shortoptarg}
- \def\thmtformatoptarg #1 {#1}
- \def\thmtifname #1#2 {\ifbool{thmt@isstarred}{#2}{#1}}
- \def\thmtifnote #1#2
+ \def\thmtformatoptarg ##1 {##1}
+ \def\thmtifname ##1##2 {\ifbool{thmt@isstarred}{##2}{##1}}
+ \def\thmtifnote ##1##2
{
\tl_if_empty:NTF \thmt@shortoptarg
- {#2}
- { \protect\thmtformatoptarg{#1} }
+ {##2}
+ { \protect\thmtformatoptarg{##1} }
}
\NewDocumentCommand{\settheoremtocline}{smm}
{
- \IfBooleanT{#1}{\def\thmt@contentslineIgnore{\thmt@contentsline}}
- \cs_set:cpn { ll@#2 } { \@bsphack #3\@esphack }
+ \IfBooleanT{##1}{\def\thmt@contentslineIgnore{\thmt@contentsline}}
+ \cs_set:cpn { ll@##2 } { \@bsphack ##3\@esphack }
}
}
-
-\setchemformula
+\cs_new_protected:Npn \eb_theorem_load_keytheorems:
+ {
+ \RequirePackage{keytheorems}
+ \DeclareFloatList{theorem}{thlist}
+ \AssignPartialExt{thlist}{ple}
+ }
+\str_case:VnT \l__eb_theorem_support_tl
{
- math-scripts = false,
- charge-hshift = 0.25em,
- subscript-vshift = -0.2ex
+ { thmtools }
+ { \eb_theorem_load_thmtools: }
+ { keytheorems }
+ { \eb_theorem_load_keytheorems: }
}
-\IfPackageAtLeastTF{siunitx}{2021/06/22}
+ { \cs_undefine:N \proof }
+\cs_new_protected:Npn \eb_chem_load_chemformula:
{
- \sisetup
+ \RequirePackage{chemformula}
+ \setchemformula
{
- number-mode = match,
- range-phrase = \ensuremath{\sim},
- range-units = single,
- print-unity-mantissa = false,
- table-alignment-mode = none,
- group-digits = none
+ charge-hshift = 0pt,
+ subscript-vshift = -0.2ex
}
- }{}
-\eb_at_begin_environment:nn
+ }
+\cs_new_protected:Npn \eb_chem_load_mhchem:
{
- array,matrix,pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix,
- matrix*,pmatrix*,bmatrix*,Bmatrix*,vmatrix*,Vmatrix*,
- cases,cases*,dcases,dcases*,rcases,rcases*,drcases,drcases*,
- aligned,alignedat,gathered,multlined,lgathered,rgathered
+ \RequirePackage[version = 4]{mhchem}
+ \mhchemoptions{layout = stacked}
}
- { \setspread{\eb@spread@math} }
-\clist_map_inline:nn
- { \start@gather,\start@align,\start@multline }
+\str_case:VnF \l__eb_chem_support_tl
{
- \eb_patch_cmd:Nnn #1
- { \collect@body }
- {
- \setspread{\eb@spread@math}
- \collect@body
- }
+ { chemformula }
+ { \eb_chem_load_chemformula: }
+ { mhchem }
+ { \eb_chem_load_mhchem: }
}
-\eb_patch_cmd:Nnn \gather@split
- { \spread@equation }
+ { \RequirePackage{amsmath} }
+\tl_set:Nn \fontsubfuzz { 0.5pt }
+\everymath{\displaystyle}
+\dim_zero_new:N \mathindent
+\allowdisplaybreaks[4]
+\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif}
+\sisetup
{
- \setspread{\eb@spread@math}
- \spread@equation
+ number-mode = match,
+ range-phrase = \ensuremath{\sim},
+ range-units = single,
+ print-unity-mantissa = false,
+ table-alignment-mode = none,
+ group-digits = none
}
\ctex_at_end_package:nn { unicode-math }
{ \msg_redirect_module:nnn { unicode-math } { warning } { info } }
\ctex_at_end_package:nn { tcolorbox }
{ \file_if_exist_input:n { eb-tcolorbox.cfg } }
+\NewDocumentCommand{\eb_assign_tagform:n}
+ {>{\SplitArgument{1}{,}}m}
+ {
+ \eb_assign_tagform_pos:nn #1
+ \cs_gset:Npn \tagform@ ##1
+ {
+ \maketag@@@
+ {
+ \color{ctex@emph}
+ \ignorespaces
+ \eb@tag@brackets@left{##1}
+ \unskip\@@italiccorr
+ \eb@tag@brackets@right
+ }
+ }
+ }
+\cs_new_protected:Npn \eb_assign_tagform_pos:nn #1#2
+ {
+ \tl_set:Nn \eb@tag@brackets@left {#1}
+ \tl_set:Nn \eb@tag@brackets@right {#2}
+ }
+\ctex_define:nn { tools }
+ {
+ multoc .int_set:N = \l__eb_toc_columns_int,
+ multoc .default:n = 2,
+ withpart .bool_set:N = \l__eb_chap_counter_withpart_bool,
+ withpart .default:n = true,
+ withpart .initial:n = false,
+ uppercase .tl_set:N = \l__eb_mark_uppercase_value_tl,
+ uppercase .default:n = all,
+ uppercase .initial:n = all,
+ tagform .code:n = \eb_assign_tagform:n {#1},
+ tagform .initial:n = { (,) },
+ brackets .meta:n = { tagform = {#1} },
+ figurepath .code:n =
+ {
+ \tl_if_blank:nF {#1}
+ {
+ \regex_match:nnTF { \cB. } {#1}
+ { \graphicspath{#1} }
+ { \graphicspath{{#1}} }
+ }
+ }
+ }
+
\bool_set_true:N \l__eb_backend_bibtex_bool
\ctex_define:nn { bib }
{
@@ -2459,7 +2579,6 @@
bititle .initial:n = Bibliography,
unknown .code:n = \eb_msg_deprecated_option:n { bib }
}
-
\cs_new_protected:Npn \eb_bibtex_natbib_set:
{
\RequirePackage[sort&compress]{natbib}
@@ -2588,21 +2707,21 @@
{ \definecolorset{HTML}{ctex@}{}{link,#1;url,#1;cite,#1} }
\cs_new_protected:Npn \eb_define_theme_color:n #1
{ \definecolorset{HTML}{ctex@}{}{frame,#1;emph,#1;verb,#1} }
-\cs_new_protected:Npn \DeclareLinkColor #1
- { \ctex_define:nx { ref } { \eb_link_color_set:n {#1} } }
-\cs_new_protected:Npn \DeclareThemeColor #1
- { \ctex_define:nx { tools } { \eb_theme_color_set:n {#1} } }
+\cs_new_protected:Npn \DeclareLinkColor #1#2
+ { \ctex_define:nx { ref } { \eb_link_color_set:nn {#1} {#2} } }
+\cs_new_protected:Npn \DeclareThemeColor #1#2
+ { \ctex_define:nx { tools } { \eb_theme_color_set:nn {#1} {#2} } }
\cs_new_protected:Npn \eb_color_assign_cmd_set:nn #1#2
{
- \cs_new:cpn { eb_#2_color_set:n } ##1
+ \cs_new:cpn { eb_#2_color_set:nn } ##1##2
{
- #1/\clist_item:nn {##1} { 1 } .code:n =
+ #1/##1 .code:n =
{
\use:c { eb_define_#2_color:nnn }
- { \clist_item:nn {##1} { 2 } }
- { \clist_item:nn {##1} { 3 } }
- { \clist_item:nn {##1} { 4 } }
- },
+ { \clist_item:nn {##2} { 1 } }
+ { \clist_item:nn {##2} { 2 } }
+ { \clist_item:nn {##2} { 3 } }
+ }
}
}
\clist_map_inline:nn
@@ -2611,35 +2730,35 @@
{ color } { theme }
}
{ \eb_color_assign_cmd_set:nn #1 }
-\ctex_define:nx { ref }
+\clist_map_inline:nn
+ {
+ { fresh } { 62d71f,0000b2,005752 },
+ { cutepink } { ea4492,ad3ccc,57b5e5 },
+ { navyblue } { 000080,4ec9ea,eb6877 },
+ { crimson } { dc143c,00c1c9,afcd20 }
+ }
+ { \DeclareLinkColor #1 }
+\ctex_define:nn { ref }
{
linkcolor .choice:,
linkcolor .value_required:n = true,
- \clist_map_function:nN
- {
- { fresh, 62d71f,0000b2,005752 },
- { cutepink, ea4492,ad3ccc,57b5e5 },
- { navyblue, 000080,4ec9ea,eb6877 },
- { crimson, dc143c,00c1c9,afcd20 }
- }
- \eb_link_color_set:n
linkcolor .initial:n = navyblue,
- linkcolor-every .code:n = \eb_define_link_color:n { \exp_not:n {#1} }
+ linkcolor-every .code:n = \eb_define_link_color:n {#1}
}
-\ctex_define:nx { tools }
+\clist_map_inline:nn
+ {
+ { none } { 000000,000000,000000 },
+ { seaside } { 333fb2,9932cc,09cc00 },
+ { energy } { f39800,00a0e9,893895 },
+ { cyberpunk } { 601986,eb6877,a4005b }
+ }
+ { \DeclareThemeColor #1 }
+\ctex_define:nn { tools }
{
color .choice:,
color .value_required:n = true,
- \clist_map_function:nN
- {
- { none, 000000,000000,000000 },
- { seaside, 333fb2,9932cc,09cc00 },
- { energy, f39800,00a0e9,893895 },
- { cyberpunk, 601986,eb6877,a4005b }
- }
- \eb_theme_color_set:n
color .initial:n = none,
- color-every .code:n = \eb_define_theme_color:n { \exp_not:n {#1} }
+ color-every .code:n = \eb_define_theme_color:n {#1}
}
\cs_new_protected:Npn \eb_link_border_set:n #1
@@ -2727,7 +2846,7 @@
}
\ctex_define:n
{
- lstlistlistingname .tl_set:N = \listlstlistingname,
+ listlstlistingname .tl_set:N = \listlstlistingname,
lstlistingname .tl_set:N = \lstlistingname,
listtheoremname .tl_set:N = \listtheoremname
}
@@ -2738,15 +2857,17 @@
contentsname = 目\hspace{1em}录,
listfigurename = 插图清单,
listtablename = 附表清单,
- lstlistlistingname = 代码清单,
+ listlstlistingname = 代码清单,
lstlistingname = 代码,
listtheoremname = 定理清单
}
+ \ctex_at_end_package:nn { keytheorems }
+ { \keytheoremlistset{title = 定理清单} }
}
{
\keys_set_known:nn { ctex }
{
- lstlistlistingname = List~of~Codes,
+ listlstlistingname = List~of~Codes,
lstlistingname = Code
}
}
@@ -2794,15 +2915,18 @@
{
\renewcommand{\theupfootnote}{\@fnsymbol\c@footnote}
\renewcommand{\thefootnote}{\@fnsymbol\c@footnote}
+ \let\footnote\thanks
}
{}
- \LARGE\@title\par\vskip 3em
- \large
+ \bgroup\LARGE\@title\par\egroup
+ \notbool{@titlepage}{\vskip 1.5em}{\vskip 3em}
+ \bgroup\large
\begin{tabular}[t]{c}
\@author
- \end{tabular}\par\vskip 1.5em
- \@date
- \notbool{@titlepage}{\par\vskip 1.5em}{}
+ \end{tabular}\par\egroup
+ \notbool{@titlepage}{\vskip 0.75em}{\vskip 1.5em}
+ \bgroup\large\@date\par\egroup
+ \notbool{@titlepage}{\vskip 1.5em}{}
\@thanks
},
beforecode =
@@ -2843,15 +2967,13 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/08/14}{2024dj}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/10/31}{2024ex}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
{ \tcbset{#1/.append~style = {#2}} }
\cs_set_protected:Npn \deftcbstyle #1#2
{ \tcbset{#1/.style = {#2}} }
-\cs_new_protected:Npn \tcbappstyle
- { \@ifstar{\deftcbstyle}{\addtotcbstyle} }
\deftcbstyle{tc-easyboxi}
{
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 54a5f7024c..f96776ddf1 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 02adc43f5f..4b33570c0e 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024dj,
- date = 2024/08/14,
+ version = v2024ex,
+ date = 2024/10/31,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -147,6 +147,7 @@
\newcommand{\smodule}[1]{{\normalsize\cnltx@module@text*{#1}}}
\renewcommand{\cnltx@package@abstract@width}{0.85\linewidth}
\renewcommand{\cnltx@write@lastname}{}
+\newcommand{\cstext}[1]{\code{\textcolor{cs}{#1}}}
\newcounter{ctexexam}
\define@key{FV}{labelref}{\def\ctexexamlabelref{\label{#1}}}
\let\ctexexamlabelref\empty
@@ -253,13 +254,14 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
cell{5}{2} = PaleTurquoise,
cell{5}{1} = GreenYellow,
cell{1}{2} = GreenYellow,
- cell{3}{1,4} = GreenYellow
+ cell{3}{1} = GreenYellow,
+ cell{4}{2} = GreenYellow
}
amsthm & bicaption & ctex & caption & chemformula \\
enumitem & etoolbox & fancyhdr & geometry & hyperref \\
imakeidx & listings & marginnote & mathtools & multicol \\
pifont & pdfpages & siunitx & spbmark & thmtools \\
- tcolorbox & titletoc & tabularray & &
+ tcolorbox & titletoc & tabularray & xcolor & graphicx
\end{longtblr}
\section{全局选项}
@@ -282,8 +284,16 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
载入用户配置的文件名列表,文件列表以花括号包裹并以英文逗号分隔。文件名应包含如 \code{tex}、\code{def} 或 \code{cfg} 等扩展名。若配置文件不在当前文件夹则文件名需要包含路径,即 \code{path/file.cfg}。
\keychoice{floatpage}{true,\fbox{false}}
开启这个选项后浮动环境 \env{table} 和 \env{figure} 的比例参数会使用默认值。关闭它则尽可能避免出现浮动页,使图表环境与正文段落更加紧凑,减少多余的空白版面。
- \keychoice{theorem}{\fbox{true},false}
- 是否提供定理功能支持。选项开启时定理模块生效,此时会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包。
+ \keychoice{theorem}{\fbox{thmtools},keytheorems,false}\newtagv[Changed]{2024ea}%
+ 是否提供定理功能支持,定理模块的介绍可见\ref{subsec:theorem}。选项 \code{thmtools} 会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包,选项 \code{keytheorems} 会载入 \pkg*{keytheorems} 宏包,选项 \code{false} 不载入定理功能宏包。
+ \keychoice{chem}{\fbox{chemformula},mhchem,false}\newtagv{2024ef}%
+ 是否提供化学式功能支持。选项 \code{chemformula} 会载入 \pkg*{chemformula} 宏包,选项 \code{mhchem} 会载入 \pkg*{mhchem} 宏包,选项 \code{false} 不载入化学式功能宏包。\pkg*{chemformula} 的工作原理与 \pkg*{mhchem} 非常相似,但对化合物、化学计量数和箭头的输入方式控制更为严格。
+ \command{ch}[\oarg{键值列表}\marg{化学式}]
+ \pkg*{chemformula} 的无机化学式书写命令。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
+ \begin{ctexexam}
+ \ch{[Cu(NH3)4]^2+}
+ \ch{Cu2S + 2 O2 - 2 e^- == 2 Cu^2+ + SO4^2-}
+ \end{ctexexam}
\end{cnltxlist}
\subsection{配置字体}
@@ -333,7 +343,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection{\textsf{article} 模式}
\begin{cnltxlist}
\keychoice{class}{\fbox{book},article}
- 使用 \easybook{} 文档类可以有两种模式,默认为 \cls*{book} 模式。选用 \code{article} 会变为 \code{oneside} 单面排版,同时使文档编号、结构等与标准 \cls*{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \cs*{chapter} 命令。此时\ref{subsec:directory command} 中目录命令的 \option{chapter} 选项会失效,将以 \code{section} 标题级别输出目录。如果使用 \cls*{ctexart} 配合 \pkg*{easybase} 宏包,则选项值 \code{book} 会失效。
+ 使用 \easybook{} 文档类可以有两种模式,默认为 \cls*{book} 模式。选用 \code{article} 可用于短篇幅的文章,文档会变为 \option{oneside} 单面排版,同时标题编号和封面等与标准 \cls*{article} 文档类相似,若使用 \cs{chapter} 命令会报错。如果使用 \cls*{ctexart} 配合 \pkg*{easybase} 宏包,则选项值 \code{book} 会失效。
\opt{book}
开启 \cls*{book} 书籍模式,与 \keyis*{class}{book} 等效。
\opt{article}
@@ -358,7 +368,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
thmt & geo & hdr & toc & cap
\end{longtblr}
- \ref{exam:kv setting} 使用\ref{subsec:tools} 介绍的工具模块 \module*{tools} 举例三种键值列表设置方式:1. 各 \meta{模块名} 是统一接口 \cs{ctexset} 的键路径。2. 不同模块还具有单独的接口命令 \cs*{eb}\meta{模块名}\code{\textcolor{cs}{set}}。3. \meta{模块名} 也可以使用 \cs{ctexset} 命令的可选参数设置。路径名与所属下级选项之间可以 \code{/} 或 \code{=} 号分开,斜线 \code{/} 后不能有空格或者换行。
+ \ref{exam:kv setting} 使用\ref{subsec:tools} 介绍的工具模块 \module*{tools} 举例三种键值列表设置方式:1. 各 \meta{模块名} 是统一接口 \cs{ctexset} 的键路径。2. 不同模块还具有单独的接口命令 \cs*{eb}\meta{模块名}\cstext{set}。3. \meta{模块名} 也可以使用 \cs{ctexset} 命令的可选参数设置。路径名与所属下级选项之间可以 \code{/} 或 \code{=} 号分开,斜线 \code{/} 后不能有空格或者换行。
\begin{ctexexam}[labelref = exam:kv setting]
\ctexset
{
@@ -382,10 +392,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\begin{cnltxlist}
\keychoice{color}{\fbox{none},seaside,energy,cyberpunk}
\easybook{} 预置了四种颜色主题,默认主题 \code{none} 为黑白页面,颜色主题不包括超链接。
- \command{DeclareThemeColor}[\splitmarg{风格名称,颜色1,颜色2,颜色3}]
- 声明新的颜色主题命令。它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 \code{HTML} 颜色代码,构成主题颜色列表。其中 \meta{颜色1} 为标题标签,\meta{颜色2} 为列表编号、定理标签和公式编号括号,\meta{颜色3} 为代码抄录。类似地更改超链接颜色见\ref{subsec:hyperlinks}。
+ \command{DeclareThemeColor}[\marg{风格名称}\splitmarg{颜色1,颜色2,颜色3}]\newtagv[Changed]{202eu}%
+ 声明新的颜色主题命令。颜色参数的三个部分为 \code{HTML} 颜色代码,构成主题颜色列表,其中 \meta{颜色1} 为标题标签,\meta{颜色2} 为列表编号、定理标签和公式编号括号,\meta{颜色3} 为代码抄录。类似地更改超链接颜色见\ref{subsec:hyperlinks}。
\begin{ctexexam}
- \DeclareThemeColor{fancy,2acb25,60aacc,ebc01c}
+ \DeclareThemeColor{fancy}{2acb25,60aacc,ebc01c}
\ctexset{tools/color = fancy}
\end{ctexexam}
\keyval{color-every}{HTML颜色代码}
@@ -395,7 +405,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keychoice{withpart}{true,\fbox{false}}
使章标题跟随部分计数器编号,仅在导言区有效。当开启新的部分标题时章编号从1开始。
\keychoice{fntnumwith}{part,\fbox{chapter},page}
- 设置脚注跟随编号的计数器,仅在导言区有效。默认跟随章计数器,即开启新的章标题时脚注编号从1开始。
+ 设置脚注重置编号的方式,仅在导言区有效。默认跟随章计数器,即开启新的章标题时脚注编号从1开始。选项 \code{page} 代表的是换页而不是页计数器,这是由于在一些排版情况下换页后页计数器仍为上页的值。
\keychoice{uppercase}{\fbox{all},first,none,none*}
使用 \cs{rightmark} 和 \cs{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
\kvsplit{tagform}{左括号,右括号}\Default{\Marg{(,)}}
@@ -432,8 +442,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
超链接类型。\code{edge} 使超链接形式为边框,\code{colors} 使超链接字体为彩色,\code{none} 关闭超链接边框与颜色,此时 \option{linkcolor} 选项无效。
\keychoice{linkcolor}{fresh,cutepink,\fbox{navyblue},crimson}
当超链接类型为 \code{colors} 时文本的颜色样式。预置了四种超链接颜色风格,默认为海军蓝 \code{navyblue}。
- \command{DeclareLinkColor}[\splitmarg{风格名称,颜色1,颜色2,颜色3}]
- 声明新的超链接颜色样式命令。它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 \code{HTML} 颜色代码,构成超链接颜色列表。其中 \meta{颜色1} 为普通链接,\meta{颜色2} 为网址,\meta{颜色3} 为参考文献引用。
+ \command{DeclareLinkColor}[\marg{风格名称}\splitmarg{颜色1,颜色2,颜色3}]\newtagv[Changed]{202eu}%
+ 声明新的超链接颜色样式命令。颜色参数的三个部分为 \code{HTML} 颜色代码,构成超链接颜色列表,其中 \meta{颜色1} 为普通链接,\meta{颜色2} 为网址,\meta{颜色3} 为参考文献引用。
\keyval{linkcolor-every}{HTML颜色代码}
统一设置超链接的各部分颜色。参数是6个十六进制数字组成的 \code{HTML} 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
\keychoice{linktoc}{none,section,page,\fbox{all}}
@@ -446,10 +456,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\begin{cnltxlist}
\keyval{linespread}{数值}\Default{1.354}
正文行距因子。中文主题下行距因子初始值为 \code{1.354}(相当于 \textsf{Word} 的1.25倍行距),如果设置了文类或 \pkg*{ctex} 宏包的全局行距选项 \option{linespread} 则初始值设为它的值。
- \keyval{tabspread}{数值}\Default{1.354}
- 表格内容行距因子,对传统表格 \env{tabular} 和 \env{tabularx} 等环境生效。\pkg*{tabularray} 宏包的 \env{tblr} 环境自带 \option*{stretch} 和 \option*{rowsep} 等行间距选项,这里不做调整。
- \keyval{mathspread}{数值}\Default{1.2}
- 数学环境的行距因子,包含了 \pkg*{amsmath} 和 \pkg*{mathtools} 宏包提供的公式环境。
\keyval{capfig-spread}{数值}\Default{1.2}
图片题注的行距因子。
\keyval{captab-spread}{数值}\Default{1.2}
@@ -462,7 +468,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
脚注内容整体的行距因子。可以使用 \module*{hdr} 模块 \option{fnpara-format} 选项的代码单独覆盖每个脚注的行距,从而使脚注间和内容文本自身的行距不同。
\begin{ctexexam}
\ebspaceset{fntspread = 1.3}
- \ebhdrset{fnpara-format = \linespread{1.2}\selectfont}
+ \ebhdrset{fnpara-format = \usestretch{1.2}}
\end{ctexexam}
\keyval{everyspread}{数值}
统一设置上述所有的行距因子。
@@ -470,6 +476,21 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
行间公式与上面正文间的额外距离。
\keyval{belowdisplayskip}{弹性长度}\Default{0.5ex plus .1ex minus .1ex}
行间公式与下面正文间的额外距离。
+ \begin{cnltxlist}
+ \command{usestretch}[\marg{数值}]\newtagv{2024dt}%
+ 设置之后文本的行距。可在任意地方使用,作用范围为局部。
+ \environment{usespace}[\marg{数值}]\newtagv{2024dt}%
+ 设置环境内文本的行距。可包含行间公式和表格等环境。
+ \begin{ctexexam}
+ \begin{usespace}{1.5}\nointerlineskip
+ \ebspaceset{belowdisplayskip = 6pt}
+ \begin{align}
+ \cos 2x &= \cos^2 x - \sin^2 x \\
+ &= 2\cos^2 x - 1
+ \end{align}
+ \end{usespace}
+ \end{ctexexam}
+ \end{cnltxlist}
\end{cnltxlist}
\subsection[部件字体]{部件字体\smodule{font}}
@@ -491,7 +512,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{ebaddtofont}[\marg{字体类型}\marg{字体命令}]
用于在上述各种字体原有的格式上附加代码。其中 \meta{字体命令} 也可以包括行距命令且相对于 \module*{space} 模块具有优先性,不同题注的 \meta{字体类型} 则为相应选项的后缀名。
\begin{ctexexam}
- \ebaddtofont{every}{\linespread{1.5}\selectfont}
+ \ebaddtofont{every}{\usestretch{1.5}}
\ebaddtofont{footnote}{\sffamily}
\end{ctexexam}
\end{cnltxlist}
@@ -535,10 +556,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection[定理]{定理\smodule{thmt}}
\label{subsec:theorem}
-定理模块 \module*{thmt} 由 \pkg*{thmtools} 宏包提供支持,主要提供了定理环境和样式声明两个命令。定理环境声明命令 \cs{declaretheorem} 使用的定理样式由样式声明命令 \cs{declaretheoremstyle} 提供。文档类未预声明任何定理环境,如果声明定理环境时不指定样式,则使用默认定理样式 \code{default},可以对它重新定义。
+定理模块 \module*{thmt} 根据全局选项 \option{theorem} 的设置可以由 \pkg*{thmtools} 或 \pkg*{keytheorems} 宏包提供支持。\pkg*{keytheorems} 宏包使用 \hologo{LaTeX3} 编写,它的定理功能更完善并且提供了 \pkg*{thmtools} 宏包大部分的功能,但发布日期较新(2024年9月)还未被广泛使用,下面主要介绍传统的 \pkg*{thmtools} 宏包的功能。\pkg*{thmtools} 提供了定理环境和样式声明两个命令,文档类未预声明任何定理环境,如果声明定理环境时不指定样式,则使用默认定理样式 \code{default},可以对它重新定义。
\begin{cnltxlist}
- \command{declaretheorem}[\oarg{键值列表1}\marg{环境名}\oarg{键值列表2}]
- 定理环境声明命令。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中常用的选项如下:
+ \command{declaretheorem}[\oarg{键值列表1}\marg{环境名列表}\oarg{键值列表2}]
+ \pkg*{thmtools} 的定理环境声明命令。\pkg*{thmtools} 宏包中此命令实际相当于 \cs{newtheorem},无法强制创建定理环境,这里修复了这个问题。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,常用的选项如下:
\keyval{name}{定理名}
定理环境的标题名称,默认为英文首字母大写的环境名。
\keychoice{numbered}{no,\fbox{yes},unless unique}
@@ -559,7 +580,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\tcolorboxenvironment{lemma}{tc-easyboxi}
\end{ctexexam}
\command{declaretheoremstyle}[\oarg{键值列表1}\marg{定理样式}\oarg{键值列表2}]
- 定理样式声明命令,键值列表支持自身以及定理声明命令 \cs{declaretheorem} 的所有选项。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中支持的选项如下:
+ \pkg*{thmtools} 的定理样式声明命令,键值列表支持自身以及定理声明命令 \cs{declaretheorem} 的所有选项。为命令增加了可选参数 \meta{键值列表2},与 \meta{键值列表1} 等效,常用的选项如下:
\keyval{headfont}{字体命令}\Default{\cs*{sffamily}}
定理标题部分(包括题注)的字体,包括字体族、字体系列、字体尺寸和字体形状命令。
\keyval{notefont}{字体命令}\Default{\cs*{sffamily}}
@@ -579,9 +600,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\kvsplit-{notebraces}{\marg{左括号}\marg{右括号}}\Default{\Marg{(}\Marg{)}}
设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。
\keyval{headformat}{标题排列}
- 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。
- \command{theoremstyle}[\marg{定理样式}]
- 设置其后由 \cs{declaretheorem} 命令声明的定理环境的样式。
+ 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。也可以设置值为 \code{margin} 或 \code{swapnumber},它们的编号均在定理名前方,其中 \code{margin} 的编号在左页边距中。
下面定义一个名为 \code{fancy} 的定理样式用于 \cs{declaretheorem} 的 \option*{style} 选项:
\begin{ctexexam}[labelref = exam:new theorem sty]
@@ -596,10 +615,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
]
\end{ctexexam}
\begin{cnltxlist}[itemsep = 0ex]
- \command{listoftheorems}[\sarg\oarg{键值列表}]\default{}
- \item\key{listoftheorems}{定理目录标题名}
+ \command{listoftheorems}[\sarg\oarg{键值列表}]\nonl
+ \keyval{listtheoremname}{定理目录标题名}\nonl
\command{settheoremtocline}[\sarg\marg{环境名}\marg{标题定义}]\newtagv{2024bb}%
- 对 \pkg*{thmtools} 宏包的定理环境目录命令 \cs{listoftheorems} 进行了适配调整,\ref{subsec:directory command} 和\ref{subsec:contents} 中的选项机制均可用,但标题定义选项 \option{tocline} 较为特殊,需用 \cs{settheoremtocline} 命令单独设置。在 \meta{标题定义} 中有三个命令 \cs{thmtname}、\cs{thmtenvname} 和 \cs{thmtnote} 分别代表定理名、定理环境名和题注用于排版目录条目。
+ 对 \pkg*{thmtools} 宏包的定理环境目录命令 \cs{listoftheorems} 进行了适配调整\footnote{也对 \pkg*{keytheorems} 宏包作为兼容提供的这个命令进行了适配。},\ref{subsec:directory command} 和\ref{subsec:contents} 中的选项机制均可用,但标题定义选项 \option{tocline} 较为特殊,需用 \cs{settheoremtocline} 命令单独设置。在 \meta{标题定义} 中有三个命令 \cs{thmtname}、\cs{thmtenvname} 和 \cs{thmtnote} 分别代表定理名、定理环境名和题注用于排版目录条目。
\end{cnltxlist}
\optpath{thmt/}\key{loeskip}{弹性长度}\Default{10pt}
定理目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
@@ -617,18 +636,28 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\thmtname\thmtifnote{[\thmtnote]}{}
}
\end{ctexexam}
+
+ 如果使用 \pkg*{keytheorems} 宏包创建定理环境,它的目录样式同样可以用 \module*{toc} 模块的命令注册后定制,其中 \option{tocline} 可用目录命令自带的 \option{format-code} 选项设置:
+ \begin{ctexexam}
+ \newkeytheorem{corollary}[name = 推论]
+ \contentsuse{corollary}{thlist}
+ \RegisterTocName{corollary}
+ \begin{document}
+ \keytheoremlistset{format-code = \numberline{#2}#1#3}
+ \listofkeytheorems % 在正文中输出定理目录
+ \end{ctexexam}
\end{cnltxlist}
\subsection[页面尺寸]{页面尺寸\smodule{geo}}
\label{subsec:page margins}
-页面尺寸模块 \module*{geo} 用于设置纸张大小和各种页面边距,它将选项交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种 \pkg*{geometry} 的代表性选项,前面有\hface 符号的选项为额外附加,其它选项可查阅宏包帮助文档。当用此模块设置纸张规格时,会覆盖全局选项 \option{paper} 的设置。
+页面尺寸模块 \module*{geo} 用于设置纸张大小和各种页面边距,它将选项交给页面尺寸宏包 \pkg*{geometry} 处理,支持通用接口 \cs{geometry} 的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种 \pkg*{geometry} 不同键值输入方式的选项,前面有\hface 符号的选项为额外附加,其它选项可查阅宏包帮助文档。当用此模块设置纸张规格时,会覆盖全局选项 \option{paper} 的设置。模块 \module*{geo} 的通用接口命令只能在导言区中使用。
\begin{cnltxlist}[itemsep = 0ex]
\keyval{headruleskip}{页眉线间距}\dtag\Default*{0pt}
\keyval{footruleskip}{页脚线间距}\dtag\Default*{3.5pt}
- \kvsplit{hdivide}{左边距,版心宽度,右边距}\default{}
- \kvsplit{hmargin}{左边距,右边距}\default{}
- \keyval{textheight}{版心高度}\default{}
- \keychoice{nofoot}{true,\fbox{false}}\default{}
+ \kvsplit{hdivide}{左边距,版心宽度,右边距}\nonl
+ \kvsplit{hmargin}{左边距,右边距}\nonl
+ \keyval{textheight}{版心高度}\nonl
+ \keychoice{nofoot}{true,\fbox{false}}\nonl
\begin{ctexexam}
\ctexset[geo]
{
@@ -638,15 +667,40 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
vcentering
}
\end{ctexexam}
+
+ \pkg*{geometry} 宏包支持在文档中部改变页面尺寸,提供了新建和保存页面布局的命令。需要注意的是,\pkg*{fancyhdr} 宏包配置页面标记是以文档开始的页面尺寸为参考,若中途更改页面布局后需用标记偏移命令 \cs{fancyhfoffset} 重置参考的尺寸,以确保标记位置正确。
+ \begin{cnltxlist}
+ \command{newgeometry}[\marg{键值列表}]
+ 在正文中更改页面布局,\meta{键值列表} 为 \pkg*{geometry} 宏包通用接口的各种页面尺寸选项。
+ \command{restoregeometry}
+ 恢复正文开始时的页面布局。
+ \command{savegeometry}[\marg{布局名}]
+ 保存当前页面布局名为 \meta{布局名}。
+ \command{loadgeometry}[\marg{布局名}]
+ 载入保存的名为 \meta{布局名} 的页面布局。
+ \begin{ctexexam}
+ L1
+ \newgeometry{left = 3cm,right = 1cm,bottom = 0.1cm}
+ \savegeometry{L2}
+ L2 (new, saved)
+ \restoregeometry
+ L1 (restored)
+ \newgeometry{margin = 1cm,includefoot}
+ L3 (new)
+ \loadgeometry{L2}
+ \fancyhfoffset{0pt}
+ L2 (loaded)
+ \end{ctexexam}
+ \end{cnltxlist}
\end{cnltxlist}
\subsection[图表题注]{图表题注\smodule{cap}}
\label{subsec:caption}
模块 \module*{cap} 用于设置图表等浮动体的题注格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。模块 \module*{cap} 由 \pkg*{caption} 宏包提供支持,接口选项与 \pkg*{caption} 宏包完全一致,但写法为 \meta{条目名}\code{/}\meta{选项}。\pkg*{caption} 宏包提供了多种方法来定制浮动环境(例如 \env{figure} 和 \env{table})中的题注,并可与许多其它宏包配合使用。功能包括旋转题注、侧向题注和连续题注等。下面列举几个题注选项的用法,\ref{exam:caption set} 中两种设置题注的方法是等效的,更多选项和创建方法可查看宏包文档:
\begin{cnltxlist}[itemsep = 0ex]
- \keyval{table/labelsep}{标签分隔符}\default{}
- \keyval{figure/format}{题注格式}\default{}
- \keyval{lstlisting/font}{题注字体}\default{}
+ \keyval{table/labelsep}{标签分隔符}\nonl
+ \keyval{figure/format}{题注格式}\nonl
+ \keyval{lstlisting/font}{题注字体}\nonl
\begin{ctexexam}[labelref = exam:caption set]
\ctexset[cap]
{
@@ -660,8 +714,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{RegisterCapOptions}[\marg{条目名列表}]
给模块 \module*{cap} 注册题注类型为 \meta{条目名} 的 \pkg*{caption} 接口选项。已预注册 \module*{figure}、\module*{table} 和 \module*{lstlisting} 三种类型的题注选项。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。
\end{cnltxlist}
- \command{caption}[\sarg\oarg{目录标题}\marg{标题}]\default{}
- \command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\default{}
+ \command{caption}[\sarg\oarg{目录标题}\marg{标题}]\nonl
+ \command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\nonl
\command{bicaption}[\sarg\oarg{目录中文标题}\marg{中文标题}\oarg{目录英文标题}\marg{英文标题}]
题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见宏包文档。
\end{cnltxlist}
@@ -699,7 +753,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
页眉横线默认的粗细,使用 \option{headrule} 选项绘制横线后失效。
\keyval{footnoterulewd}{刚性长度}\Default{0.5pt}
脚注横线默认的粗细,使用 \option{footnoterule} 选项绘制横线后失效。
- \begin{cnltxlist}[itemsep = 0ex]
\command{fancypagestyle}[\marg{风格名}\oarg{基础风格}\marg{风格定义}]
定义名为 \meta{风格名} 的页面风格。\meta{风格定义} 中可包含设置页眉页脚不同位置格式的命令,如果为空则等于 \code{fancy} 风格。如果存在 \meta{基础风格},则在它的基础上进行定义。
\begin{ctexexam}
@@ -710,13 +763,18 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\ebhdrset{headrule = {}}
}
\end{ctexexam}
- \command{fancyhead}[\oarg{位置}\marg{内容}]\default{}
+ \command{pagestyle}[\marg{风格名}]\Default{fancy}
+ 设置 \meta{风格名} 为当前及之后页的页面风格。
+ \begin{cnltxlist}[itemsep = 0ex]
+ \command{fancyhead}[\oarg{位置}\marg{内容}]\nonl
\command{fancyfoot}[\oarg{位置}\marg{内容}]
- 为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
- \command{markboth}[\marg{左页标题标记}\marg{右页标题标记}]\default{}
- \command{markright}[\marg{右页标题标记}]\default{}
+ 为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面排版时,含有偶数位置的命令无效。
+ \end{cnltxlist}
+ \begin{cnltxlist}[itemsep = 0ex]
+ \command{markboth}[\marg{左页标题标记}\marg{右页标题标记}]\nonl
+ \command{markright}[\marg{右页标题标记}]\nonl
\command{markdouble}[\marg{双页标题标记}]
- 这三个命令用于手动设置当前页标题标记,特殊情况下可以使用它们定义与标题不同的页眉页脚标记。其中 \cs{markdouble} 根据是否是双面打印设置相应标记。如果是单面打印,则 \meta{左页标题标记} 无效。标题标记选项 \meta{级别}\option*{-mark} 定义的是它们的参数,左右页标记规则已经进行了优化调整,若需更改可以重定义 \code{\textbackslash}\meta{级别}\code{\textcolor{cs}{mark}} 命令。
+ 这三个命令用于手动设置当前页标题标记,特殊情况下可以使用它们定义与标题不同的页眉页脚标记。其中 \cs{markdouble} 根据是否是双面排版设置相应标记。如果是单面排版,则 \meta{左页标题标记} 无效。标题标记选项 \meta{级别}\option*{-mark} 定义的是它们的参数,左右页标记规则已经进行了优化调整,若需更改可以重定义 \code{\textbackslash}\meta{级别}\cstext{mark} 命令。
\begin{ctexexam}
\makeatletter
\renewcommand{\sectionmark}[1]{\markright{\eb@mark@section@whole{#1}}}
@@ -734,7 +792,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection[脚注]{脚注\smodule{hdr}}
-模块 \module*{hdr} 还可以灵活调整脚注编号和内容的格式。格式主要包括脚注标记的编号类型、字体、附加符号和对齐方式等,以及脚注内容的首行缩进、行距和字体等。基本思想是提供常规和自定义标记(\code{fncustom})两种脚注,常规脚注的标记分为正文(\code{fnmark})和内容(\code{fntext})标记两种,且两者编号类型分离,自定义脚注的标记与其共享格式。目前脚注模块基本兼容 \pkg*{footmisc} 宏包。
+模块 \module*{hdr} 还可以灵活调整脚注编号和内容的格式。格式主要包括脚注标记的编号类型、字体、附加符号和对齐方式等,以及脚注内容的首行缩进、行距和字体等。基本思想是提供常规和自定义(\code{fncustom})两种脚注标记,常规脚注的标记分为正文(\code{fnmark})和内容(\code{fntext})标记两种,且两者编号类型分离,自定义脚注的标记默认与其共享格式。目前脚注模块基本兼容 \pkg*{footmisc} 宏包。
\begin{cnltxlist}
\keychoice{footnotetype}{plain,\fbox{hang},flush,bottom}
脚注的类型。悬挂缩进 \code{hang} 是默认值,\code{plain} 是原始的类型,\code{flush} 使脚注内容标记位于脚注首行边缘外侧并右对齐。当存在浮动环境排版时,脚注可能位于页面中间,\code{bottom} 使脚注始终位于页面底端。其中 \code{bottom} 是复合选项,可以与前三种类型重复或复合使用:
@@ -765,7 +823,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\ebhdrset{fnmark-num = (a)}
\end{ctexexam}
\begin{cnltxlist}[itemsep = 0ex]
- \command{SetFntSymbsList}[\marg{符号表名}\marg{符号数量}\marg{符号列表}]\default{}
+ \command{SetFntSymbsList}[\marg{符号表名}\marg{符号数量}\marg{符号列表}]\nonl
\command{UseFntSymbsList}[\marg{符号表名}]
这两个命令用于在脚注短编号标记为 \code{s} 自定义符号型时设置符号列表。\cs{SetFntSymbsList} 命令用于定义名为 \meta{符号表名} 的符号列表,\cs{UseFntSymbsList} 命令用于启用已定义的符号列表。默认的脚注符号列表是空的,注意使用符号型标记的脚注时计数器 \code{footnote} 的值仍然递增,以及定义新列表时 \meta{符号列表} 的写法和命令顺序:
\begin{ctexexam}
@@ -803,6 +861,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
定义脚注段落文本的格式的命令。脚注段落文本由脚注内容标记和文本两部分组成,段落格式定义中参数 \code{\#1} 代表内容文本。
\command{notminipage}[\marg{普通页内容}\marg{迷你页内容}]
用于在定义脚注标记的命令中判断当前脚注是否处于迷你页而输出不同的内容。
+ \command{ifnormalfnt}[\marg{常规标记内容}\marg{自定义标记内容}]\newtagv{2024eo}%
+ 用于在定义脚注标记的命令中判断当前是否为常规标记而输出不同的内容。
\command{theupfootnote}
保存正文标记编号类型选项 \option{fnmark-num} 指定的正文标记。
\command{thedownfootnote}
@@ -815,8 +875,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keychoice{fncustom-format}{\optpath*{format code},match}
单独设定自定义脚注标记的格式,选项 \code{match} 可以匹配 \option{spcmd} 全局的值。自定义脚注内容和正文标记的命令与用法可以见下方和\ref{exam:custom footnote markers} 的介绍。
\begin{cnltxlist}[itemsep = 0ex]
- \command{Footnote}[\oarg{内容标记}\marg{正文标记}\marg{脚注文本}]\default{}
- \command{Footnotetext}[\marg{内容标记}\marg{脚注文本}]\default{}
+ \command{Footnote}[\oarg{内容标记}\marg{正文标记}\marg{脚注文本}]\nonl
+ \command{Footnotetext}[\marg{内容标记}\marg{脚注文本}]\nonl
\command{Footnotemark}[\marg{正文标记}]
这些是自定义标记且不影响正常编号的脚注命令,用法与它们对应首字母小写的命令类似。\meta{内容标记} 默认与 \meta{正文标记} 一致,这也是最常见的情况,也可以定义为不同符号或格式。如果当前标记为空,那么将会使用上一个脚注标记。
\begin{ctexexam}[labelref = exam:custom footnote markers]
@@ -850,21 +910,23 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
没有编号/名字标题的附加格式代码。目录中判断标题是否有编号/名字的依据为:如果在 \option{tocline} 选项中使用了 \cs{numberline} 命令输出标签,则判定为有编号/名字。格式最后的命令可带有一个参数,用于接受标题内容。
\keyval{tocindent}{刚性长度}\dtag
目录条目左边的缩进距离,通常标题级别越低缩进越大。如果是段落型目录,仅在当前条目级别为段落中最高时有效。
- \keyval{tocrule}{引导线命令}\dtag
- 目录条目的引导线和页码。引导线可以使用基于 \cs*{xleaders} 命令的 \cs{tocrule} 绘制(同时输出页码),如果是一般不需要引导线的段落型目录,可以使用 \cs{thecontentspage} 命令输出页码。
+ \keyval{tocrule}{引导线定义}\dtag\newtagv[Changed]{2024et}%
+ 目录条目引导线和页码的定义。其中引导线可以使用基于 \cs*{xleaders} 命令的 \cs{tocrule} 绘制(同时输出页码),参数 \code{\#1} 代表页码 \cs{thecontentspage}。如果是一般不需要引导线的段落型目录,则可以使用参数 \code{\#1} 输出页码。
\command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}]
- 生成目录引导线的命令,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令与 \keyis{dotalign}{false} 效果相同。命令带 \harg{} 号参数不输出目录页码,此时无格式的页码被保存在 \cs{thecontentspage} 命令中,可以配合盒子命令设置不同的页码左右间距和对齐方式。\meta{放大因子} 为 \meta{引导点} 的放大倍数。\meta{页码格式} 中最后一个命令可以带有一个参数用于接受页码。
+ 生成目录引导线的命令,需要在 \option{tocrule} 选项中使用。带有星号的命令与 \keyis{dotalign}{false} 效果相同。命令带 \harg{} 号参数不输出目录页码,此时无格式的页码被保存在 \option{tocrule} 选项的参数 \code{\#1} 中,可以配合盒子命令设置不同的页码左右间距和对齐方式。\meta{放大因子} 为 \meta{引导点} 的放大倍数。\meta{页码格式} 中最后一个命令可以带有一个参数用于接受页码。
\keyval{toclabel}{标题标签定义}\dtag\newtagv{2024as}%
- 目录中各类型条目标题标签的定义,可与 \option{tocline} 选项联用设置标题。其中参数 \code{\#1} 代表标签的编号 \cs{thecontentslabel},参数 \code{\#2} 代表 \meta{条目名}。定义最后的命令可带有一个参数,用于接受标题内容,一些特殊情况例如需要将标题内容放在标签后,可以通过定义命令实现:
+ 目录中各类型条目标题标签的定义,可与 \option{tocline} 选项联用设置标题。其中参数 \code{\#1} 代表标签的编号 \cs{thecontentslabel},参数 \code{\#2} 代表 \meta{条目名}。定义最后的命令可带有一个参数,用于接受标题内容,一些特殊情况例如需要将标题内容放在标签前,可以通过定义命令实现:
\begin{ctexexam}
\newcommand{\seqentry}[2]{#2-#1} % #2为标题内容
\ctexset{chapter/toclabel = \seqentry{#1}}
\end{ctexexam}
+ \command{hytoclink}[\marg{目录条目元素}]\newtagv{2024eb}%
+ 给目录条目元素增加超链接,主要用于 \option{toclabel} 选项中的标签。使用 \pkg*{titletoc} 宏包时条目标题的标签超链接会缺失,这个命令可修复此问题。
\keyval{tocafter}{距离命令}\dtag\Default{\cs*{hspace}\Marg{1em}}
目录条目标签与标题间的代码,默认为插入 \code{1em} 横向距离。
\keyval{tocbelow}{距离命令}\dtag
在目录条目下方执行的代码,可以插入垂直距离等命令。
- \keyval{tocline}{标题定义}\dtag[\textcolor{red}{\sface}]
+ \keyval{tocline}{标题定义}\dtag[\sface]
这个选项在章节标题基础上扩展了浮动环境的题注标题在目录文件中的定义。章节和题注标题选项中参数 \code{\#1} 代表标题编号 \cs*{the}\meta{计数器} 对应的计数器名称,参数 \code{\#2} 则代表相应标题内容。
\begin{ctexexam}
\ctexset
@@ -876,8 +938,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
tocrule = \tocrule[0.6pc](1.1){.}[\zihao{5}],
tocline = \CTEXnumberline{#1}#2
},
- section/toclabel = \contentspush{#1\hspace{0.5em}},
- section/tocrule = \tocrule-{}\makebox[1cm]{\rlap{\thecontentspage}},
+ section/toclabel = \contentspush{\hytoclink{#1}\hspace{0.5em}},
+ section/tocrule = \tocrule-{}\makebox[1cm]{\rlap{#1}},
toc/pagenumwd = 0pt
}
\end{ctexexam}
@@ -889,10 +951,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
当前级别目录条目每个标题之间的代码。
\keyval{tocend}{结束代码}\dtag\Default{\Marg{.}}\newtagv{2024as}%
当前级别目录条目最后一个标题后的代码。
- \command{contentsuse}[\oarg{目录层次}\marg{条目名}\marg{扩展名}]\newtagv[Changed]{2024ce}%
+ \command{contentsuse}[\oarg{目录层次}\marg{条目名列表}\marg{扩展名}]\newtagv[Changed]{2024et}%
激活条目类型为 \meta{条目名} 的目录定制功能,目录文件后缀为 \meta{扩展名},若 \meta{扩展名} 为 \code{toc} 则条目会自动激活。可选参数 \meta{目录层次} 为条目在目录中的层次深度,默认值为 \code{-1000},当它大于目录深度计数器 \code{tocdepth} 时不显示。图表等标题的目录条目无深度因此为默认值,章节标题 \module*{part}$\longrightarrow$\module*{subparagraph} 的深度则从 \code{-1} 到 \code{5} 依次递增。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
\command{DeclareFloatList}[\marg{条目名}\marg{扩展名}]
- 声明一种条目类型的目录命令 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}},并且支持\ref{subsec:directory command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,例如搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有实心符号 \textcolor{red}{\sface}(仍包含空心符号\hface 选项的性质)表示在声明后可用。下面举一个声明算法环境和对应题注目录的例子:
+ 声明一种条目类型的目录命令 \cs*{listof}\meta{条目名}\cstext{s},并且支持\ref{subsec:directory command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,例如搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有实心符号\sface(仍包含空心符号\hface 选项的性质)表示在声明后可用。下面举一个声明算法环境和对应题注目录的例子:
\begin{ctexexam}
\usepackage{newfloat}
\DeclareFloatingEnvironment[
@@ -901,9 +963,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
name = 算法
]{algorithm}
\DeclareFloatList{algorithm}{loa}
+ \begin{document}
\listofalgorithms[multoc] % 在正文中输出双栏算法目录
\end{ctexexam}
- \command{AssignCaptionExt}[\marg{条目名}\marg{扩展名}]
+ \command{AssignCaptionExt}[\marg{条目名列表}\marg{扩展名}]
给条目类型名称为 \meta{条目名} 的标题分配目录文件 \meta{扩展名},注意 \meta{扩展名} 需要被定义在 \cs*{ext@}\meta{条目名} 命令中才有效(\pkg*{caption} 宏包的默认定义形式)。可以使不同的 \meta{条目名} 共享一个目录:
\begin{ctexexam}
\AssignCaptionExt{table}{lof}
@@ -918,9 +981,9 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\stoplist[fancy]{loa}
\printlist[fancy]{loa}{}{}
\end{ctexexam}
- \command{SetTocStyle}[\marg{条目名}\marg{风格名}\marg{键值列表}]
+ \command{SetTocStyle}[\marg{条目名列表}\marg{风格名}\marg{键值列表}]
定义条目类型名称为 \meta{风格名} 的目录风格。使用 \cs{ctexset} 命令设置目录样式时,除了条目标题定义选项 \option{tocline},其它选项只有在目录输出命令前设置才有效,定义完目录风格后用 \cs{UseTocStyle} 命令可以在正文中任意位置生效。如果是没有\hface 符号的选项,\meta{条目名} 设置为 \module*{toc}。
- \command{UseTocStyle}[\marg{条目名}\marg{风格名}\marg{扩展名}]
+ \command{UseTocStyle}[\marg{条目名列表}\marg{风格名}\marg{扩展名}]
使用对应条目类型名称为 \meta{风格名} 的目录风格,随后标题在目录中的格式会改变。本命令导言区和正文区均可使用,第三个必选参数还需要指定条目标题加入目录文件的 \meta{扩展名}。
\begin{ctexexam}
\SetTocStyle{chapter}{fancy}{tocformat = \color{red}\zihao{3}}
@@ -941,7 +1004,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
悬挂缩进选项 \option{hang} 使目录条目为悬挂缩进形式。缩进距离为条目标签及其与标题内容间距的长度和。通常情况下会统一设置条目标题是否悬挂缩进,因此这个选项被设计为对所有类型条目生效。
\keyval{lolskip}{弹性长度}\Default{10pt}
代码目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
- \keyval{between}{格式代码}\dtag[\textcolor{red}{\sface}]
+ \keyval{between}{格式代码}\dtag[\sface]
目录标题与条目内容间的局部钩子(作用于标题下方间距之后),如果是 \cls*{book} 模式则默认插入 \code{-10pt} 垂直距离抵消首行目录的额外垂直间距,这是由于图表和 由 \pkg*{newfloat} 宏包所创建环境的目录默认每使用一次章标题在题注目录中插入 \code{10pt} 距离。除了条目名的键路径外,此选项也可用于 \module*{toc} 路径中,表示章节标题目录标题代码钩子,如果是 \cls*{book} 模式则默认插入 \code{-1pc} 垂直距离。
\keyval{bibetween}{格式代码}
与选项 \option{between} 类似,是英文章节标题目录(如果启用)标题代码钩子。
@@ -949,8 +1012,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
将目录页码装进一个右对齐的水平盒子里。这样可以使目录引导线右端对齐并与页码保持一定间距,否则会与页码相连。
\keyval{pagenumwd}{刚性长度}\Default{1.55em}
设置开启 \option{dotalign} 选项时页码水平盒子的宽度。
- \keychoice{fileopen}{\fbox{once},odd}
- 编译文档时打开目录文件进行写入操作的方式,这个选项影响重复使用目录命令时的输出行为。默认只在第一次编译时打开文件,选择 \code{odd} 将仅在奇数次编译时打开文件。
\keyval{tocafter-every}{距离命令}\Default{\cs*{hspace}\Marg{1em}}
统一设置所有类型条目编号与标题间的代码。
\keyval{tocindent-every}{刚性长度}
@@ -976,7 +1037,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{DeclareInstance}[\Marg{easybook}\marg{位置}\Marg{cover}\marg{键值列表}]
封面模板可用 \pkg*{xtemplate} 提供的实例声明命令进行自由定制,\ref{exam:cover instance} 举例说明了定制页面中部的内容。模板由页面上、中和下三个位置的实例组成,它们的 \meta{位置} 名字分别为 \code{top}、\code{middle} 和 \code{bottom}。每个实例的属性可用 \meta{键值列表} 修改,包含的选项如下:
\keyval{content}{实例内容}
- 设置实例内容,可以包含任何记号列表。通常为格式和排版内容的命令,在局部生效。
+ 设置实例内容,可以包含任何记号列表。通常为格式和排版内容的命令,作用范围为局部。
\keyval{beforecode}{实例前代码}
设置实例内容前的代码,可以包含任何记号列表。通常为换页和垂直距离的命令。
\keyval{aftercode}{实例后代码}
@@ -1005,13 +1066,13 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
}
\end{ctexexam}
\command{frontmatter}[\sarg\oarg{编号格式}]\Default{Roman}
- 前言区命令。使部分和章标题不编号,带有星号的变体命令不使用 \cs{cleardoublepage} 命令。页码 \meta{编号格式} 可设置为 \code{arabic}、\code{Alph}、\code{alph}、\code{Roman}、\code{roman} 和 \code{chinese} 形式。
+ 前言区命令。使部分和章标题不编号。带有星号参数不使用清双页命令 \cs{cleardoublepage},但在双面排版时可能产生连续的奇数页。页码 \meta{编号格式} 可设置为 \code{arabic}、\code{Alph}、\code{alph}、\code{Roman}、\code{roman} 和 \code{chinese} 形式。
\command{mainmatter}[\sarg]
- 主文区命令。章标题正常编号且页码为从1开始计数的阿拉伯数字,带有星号的变体命令不使用 \cs{cleardoublepage} 清双页命令。
+ 主文区命令。章标题正常编号且页码为从1开始计数的阿拉伯数字。带有星号参数不使用清双页命令 \cs{cleardoublepage},但在双面排版时可能产生连续的奇数页。
\command{backmatter}
后记区命令。页码格式与编号保持不变,章标题不编号。
\command{cleardoublepage}[\oarg{页面风格}]\Default{empty}
- 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。
+ 在 \option{twoside} 双面排版时,清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。
\command{blankpagestyle}[\marg{页面风格}]
多出空白页的 \meta{页面风格} 用空白页面风格命令 \cs{blankpagestyle} 全局指定,或使用清双页命令的可选参数局部指定。空白页默认的风格为 \code{empty},即空的页眉页脚。
\end{cnltxlist}
@@ -1023,7 +1084,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{tableofcontents}[\sarg\oarg{键值列表}\darg{代码钩子}]
章节标题目录命令,支持中英文双语标题目录输出。带有星号参数不输出目录条目上方的标题。\meta{代码钩子} 是当输出方案 \keyis{plan}{both} 时中文与英文目录之间执行的代码,可以插入设置目录样式和换页等命令。
\keychoice{plan}{\fbox{cn},bi,both}
- 章节标题目录的输出方案。\code{cn} 只输出中文目录,\code{bi} 只输出英文目录。\code{both} 同时连续输出中文和英文目录,需要与双语目录标题命令 \cs{bichapter} 等或双语标题选项 \option{title} 配合使用。
+ 章节标题目录的输出方案。\code{cn} 只输出中文目录,\code{bi} 只输出英文目录。\code{both} 同时连续输出中文和英文目录,可以与标题命令选项 \option{level} 和双语标题选项 \option{title} 配合使用。
\keyval{bicontentsname}{英文目录标题}\Default{Contents}
英文目录的标题,为通用接口命令 \cs{ctexset} 的选项。
\command{listoffigures}[\sarg\oarg{键值列表}]
@@ -1033,9 +1094,9 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{listoflstlistings}[\sarg\oarg{键值列表}]
输出代码目录命令。带有星号参数的命令不输出目录标题。
- 如果需要部分而不是全文的目录或其它类型的目录,可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,也提供了配置命令 \cs{SetTocOuter} 在目录命令外设置选项默认值。
- \command{SetTocOuter}[\marg{键值列表}]
- 统一设置上述所有目录可选参数的默认值\footnote{由于目录命令通常只在文中使用一次,因此不设计为可以分别指定不同目录的参数。},其中 \meta{键值列表} 的选项如下:
+ 如果需要局部而不是全文范围的目录或其它类型的目录,可以查看\ref{subsec:contents} 和 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,也提供了配置命令 \cs{SetTocOuter} 在目录命令外设置选项默认值。
+ \command{SetTocOuter}[\oarg{扩展名}\marg{键值列表}]\newtagv[Changed]{2024es}%
+ 设置上述不同类型目录可选参数的默认值。若不指定目录文件的 \meta{扩展名},则除了 \option{title} 和章节标题目录的 \option{level} 选项外对所有目录生效。其中 \meta{键值列表} 的选项如下:
\keyval{level}{标题命令}
设定输出目录标题的命令。如果使用 \option{title} 选项设置了双语标题则需要配合双语标题命令。
\begin{ctexexam}
@@ -1051,7 +1112,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keyval{multoc}{整数}\Default{2}
设置目录的排版栏数。\meta{整数} 代表目录栏数,不指定栏数的值则默认为双栏。
\kvsplit{title}{中文目录标题,英文目录标题}
- 用于更改目录的双语标题。标题之间用一个英文逗号分开,对主目录来说前部分为中文目录标题,后部分为英文目录标题,对图表和代码目录来说后部分则是加入英文目录的条目。也可以只有一部分,表示中文目录的标题。
+ 用于更改目录的双语标题。标题之间用一个英文逗号分开,对章节标题目录来说前部分为中文目录标题,后部分为英文目录标题,对图表和代码目录来说后部分则是加入英文目录的条目。也可以只有一部分,表示中文目录的标题。
\keychoice{bilist}{mix,\fbox{new}}
确定章节标题目录中双语标题条目的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出,\code{new} 则在新建的英文目录中输出英文标题,此新目录的扩展名为 \code{tec}。这是个全局选项,在所有目录的可选参数中使用均可生效,但推荐在章节标题目录中使用。
\command{ebifbitoc}[\marg{英文目录代码}\marg{中文目录代码}]
@@ -1066,7 +1127,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\tableofcontents[bilist = mix]
\end{ctexexam}
- 除了上述选项还支持 \CTeX 键值列表所有路径的章节标题样式选项,下面仅列举几个选项例子。需要注意的是标题样式选项根据 \option{level} 选项中的\textbf{最后}一个标题命令判断键路径,所以这个标题命令名必须存在于 \CTeX 键值列表路径中,或带有 \code{\textcolor{cs}{bi}} 前缀表示双语标题。
+ 除了上述选项还支持 \CTeX 键值列表所有路径的章节标题样式选项,下面仅列举几个选项例子。需要注意的是标题样式选项根据 \option{level} 选项中的\textbf{最后}一个标题命令判断键路径,所以这个标题命令名必须存在于 \CTeX 键值列表路径中,或带有 \cstext{bi} 前缀表示双语标题。
\keyval{format}{目录标题格式}
设置目录标题的格式。
\begin{ctexexam}
@@ -1086,7 +1147,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{双语章节标题和新建标题}
-双语目录标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{number} 选项更改英文目录中标题的编号格式。这个功能是为国内一些高校的学位论文模板的要求设计,在一般情况和英文模式下\textbf{不需要使用}。
+双语目录标题命令将中文标题正常输出,并使中英文标题加入双语目录。目前设置了常用的三个级别,这个功能是为国内一些高校的学位论文模板的要求设计。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{number} 选项更改英文目录中标题的编号格式。
\begin{cnltxlist}
\command{bichapter}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}]
\code{chapter} 章级别的双语目录标题命令,具有独立的 \code{bichapter} 计数器。
@@ -1095,7 +1156,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{bisubsection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}]
\code{subsection} 小节级别的双语目录标题命令,具有独立的 \code{bisubsection} 计数器。
- 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文条目,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录条目的格式是一致的,共享使用 \module*{toc} 模块的设置。提供了两个选项 \option{biname} 和 \option{binumber} 修改英文目录章标题条目的名字及编号:
+ 命令的星号参数使正文中的标题不编号,但是仍然加入双语目录,若英文标题为空那么仅加入中文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文条目,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录条目的格式是一致的,共享使用 \module*{toc} 模块的设置。提供了两个选项 \option{biname} 和 \option{binumber} 修改英文目录章标题条目的名字及编号:
\optpath{chapter/}\kvsplit+{biname}{英文目录前名字,英文目录后名字}\Default{Chapter\cs*{space}}
更改英文目录 \code{chapter} 级别的标题条目编号前后名字,类似于 \CTeX 的 \option*{name} 选项。
\optpath{chapter/}\key{binumber}{英文目录编号输出命令}\Default{\cs*{arabic}\Marg{chapter}}
@@ -1112,10 +1173,12 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\BeforeAddtoBitoc{\ctexset{section/name = Section\space}}
\bisection{中文标题}{English title}
\end{ctexexam}
+ \command{RegisterBititle}[\marg{条目名列表}]
+ 根据已有章节标题命令注册一个双语标题命令 \cs*{bi}\meta{条目名}。\meta{条目名} 应当是 \module*{part}$\longrightarrow$\module*{subparagraph} 等已经存在的标题命令名,或是用 \cs{NewTitleCommand} 创建的标题命令名。
\command{NewTitleCommand}[\oarg{基础标题}\marg{条目名}\marg{章节层次}]\newtagv{2024aw}%
- 创建一个命令名为 \meta{条目名} 新章节标题,并且支持 \CTeX 中的标题样式选项机制。指定可选参数后标题格式除了编号/名字会与 \meta{基础标题} 相同,否则默认为空。同时创建一个名为 \meta{条目名} 的计数器和标记命令 \code{\textbackslash}\meta{条目名}\code{\textcolor{cs}{mark}}。同时还需指定标题的 \meta{章节层次},例如标准文档类中 \code{chapter} 级别为 \code{0}。
+ 创建一个命令名为 \meta{条目名} 新章节标题,并且支持 \CTeX 中的标题样式选项机制。指定可选参数后标题格式除了编号/名字会与 \meta{基础标题} 相同,否则默认为空。同时创建一个名为 \meta{条目名} 的计数器和标记命令 \code{\textbackslash}\meta{条目名}\cstext{mark}。同时还需指定标题的 \meta{章节层次},例如标准文档类中 \code{chapter} 级别为 \code{0}。
\command{NewTitleEntryCommand}[\oarg{扩展名}\marg{条目名}]\newtagv{2024aw}%
- 创建一个命令 \code{\textbackslash}\meta{条目名}\code{\textcolor{cs}{entry}}\marg{标题},仅将 \meta{标题} 加入文件扩展名为 \meta{扩展名} 的目录中,而不在正文中输出标题,默认扩展名为 \code{toc}。
+ 创建一个命令 \code{\textbackslash}\meta{条目名}\cstext{entry}\marg{标题},仅将 \meta{标题} 加入文件扩展名为 \meta{扩展名} 的目录中,而不在正文中输出标题,默认扩展名为 \code{toc}。
\begin{ctexexam}
\NewTitleCommand[chapter]{lchapter}{0}
\NewTitleEntryCommand{lchapter}
@@ -1170,16 +1233,16 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection{公式}
\begin{cnltxlist}[itemsep = 0ex]
- \environment{equation}\default{}
- \environment{multline}\default{}
- \environment{gather}\default{}
+ \environment{equation}\nonl
+ \environment{multline}\nonl
+ \environment{gather}\nonl
\environment{align}
\pkg*{amsmath} 宏包提供了一系列行间数学环境,它们可以排布各种对齐或不对齐的公式组。\env{multline} 环境用于一行无法放下的长公式,\env{gather} 环境用于每行居中的公式组,\env{align} 环境用于多列对齐的公式组。还有例如 \pkg*{mathtools} 等对数学功能进行扩展的宏包,提供了更全面的数学命令与环境。
\end{cnltxlist}
\subsection{表格}
\begin{cnltxlist}[itemsep = 0ex]
- \environment{tabular}[\marg{列格式}]\default{}
+ \environment{tabular}[\marg{列格式}]\nonl
\environment{tblr}[\marg{键值列表}]
\pkg*{tabularray} 是一个强大且全面的表格宏包,不依赖其它表格宏包所以同时使用不会产生冲突。不仅提供了各种传统表格宏包的功能,还实现了用键值列表方式简便地设置表格样式。具体用法可见宏包的说明文档,下面演示一个 \env{tblr} 表格的用法:
\begin{ctexexam}
@@ -1203,9 +1266,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{列表}
+列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制。
\begin{cnltxlist}
\command{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
- 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
+ 设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
\command{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
克隆基本的 \meta{列表类型} 在其基础上新建一个名为 \meta{列表名} 的列表环境。不要将 \meta{最大级别} 设置过大以避免创建过多的计数器和相关宏。
\begin{ctexexam}
@@ -1219,8 +1283,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\begin{cnltxlist}[itemsep = 0ex]
- \environment{enumerate}[\oarg{键值列表}]\default{}
- \environment{itemize}[\oarg{键值列表}]\default{}
+ \environment{enumerate}[\oarg{键值列表}]\nonl
+ \environment{itemize}[\oarg{键值列表}]\nonl
\environment{description}[\oarg{键值列表}]
已为三种列表各自预置了三个级别。同种列表或不同种列表间的不同级别可相互嵌套,可以使用短编号的形式,带有星号的环境为行内列表。默认列表标签与标准文档类一致,下面举几个更改列表标签以及其它格式的例子:
\begin{ctexexam}
@@ -1246,33 +1310,30 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
悬挂缩进环境 \env{hangparas} 有两个必选参数,使其中的段落均保持悬挂缩进。每个段落的缩进将以 \meta{缩进长度} 从 \meta{缩进开始行数} 开始。
\end{cnltxlist}
-\subsection{代码}
+\subsection{计数器}
+\begin{cnltxlist}[itemsep = 0ex]
+ \command{newcounter}[\marg{计数器}\oarg{父计数器}]\nonl
+ \command{renewcounter}[\marg{计数器}\oarg{父计数器}]\nonl
+ \command{providecounter}[\marg{计数器}\oarg{父计数器}]\nonl
+ \command{declarecounter}[\marg{计数器}\oarg{父计数器}]\newtagv[Changed]{2024eu}%
+ 创建一个初始值为0的计数器,若指定 \meta{父计数器} 则将它加入 \meta{父计数器} 的递增归零清单。不同命令前缀之间的区别是若计数器已存在 \cstext{new} 会报错,若计数器不存在 \cstext{renew} 会报错,若计数器不存在 \cstext{provide} 才会创建计数器,无论计数器是否存在 \cstext{declare} 均会强制创建。需要注意的是,重复创建计数器时已存在的计数器绑定关系并不会重置。
+\end{cnltxlist}
\begin{cnltxlist}
- \command{lstdefinestyle}[\marg{代码风格}\marg{键值列表}]
- 代码抄录宏包 \pkg*{listings} 提供了完善的排版功能,不需要前端处理器。这是它的代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言定义多种风格,默认使用的 \meta{代码风格} 为适用于\TeX 语言的 \code{lst-latex}。
- \command{lstinline}[\oarg{键值列表}\marg{行内代码}]
- 行内代码抄录命令。较原生的 \cs*{verb} 命令有较大改进,具有代码语言和样式支持。
- \environment{lstlisting}[\oarg{键值列表}]
- 行间代码抄录环境。支持多种语言库,默认使用 \code{LaTeX} 代码语言,可使用 \meta{键值列表} 局部修改代码样式。另外还提供了 \cs{lstnewenvironment} 命令包装自定义名称的代码环境。
+ \command{setcounter}[\marg{计数器}\marg{整数}]
+ 将计数器的值设定为指定值。
+ \command{stepcounter}[\marg{计数器}]
+ 使计数器的值递增1,同时它的递增归零清单中的子计数器值归零。
+ \command{counterwithin}[\sarg\oarg{格式}\marg{计数器}\oarg{连字符}\marg{父计数器}]
+ 对计数器进行绑定的命令。将 \meta{计数器} 绑定于 \meta{父计数器},即 \meta{父计数器} 的值递增时 \meta{计数器} 的值会归零。输出格式 \cs*{the}\meta{计数器} 被定义为 \cs*{the}\meta{父计数器}\meta{连字符}\meta{格式}\marg{计数器}。\meta{格式} 一般为更改计数器编号形式的命令,默认为 \cs*{arabic}。带有星号参数的命令仅进行绑定不更改输出格式。
+ \command{counterwithout}[\sarg\oarg{格式}\marg{计数器}\marg{父计数器}]
+ 对计数器关系进行解绑的命令。将 \meta{计数器} 解绑于 \meta{父计数器},同时输出格式被改为 \meta{格式}\marg{计数器}。带有星号参数的命令仅进行解绑不更改输出格式。
\begin{ctexexam}
- \lstdefinestyle{lst-pascal}
- {
- language = Pascal,
- numbers = left,
- firstnumber = last,
- frame = shadowbox,
- backgroundcolor = \color{MistyRose},
- rulesepcolor = \color{DarkGray}
- }
- \lstnewenvironment{mypascal}[1][]{\lstset{style = lst-pascal,#1}}{}
+ \counterwithin[\Roman]{child}[-]{parent}
+ \counterwithout*{child}{parent}
\end{ctexexam}
\end{cnltxlist}
-\begin{cnltxlist}[itemsep = 0ex]
- \keyval{lstlistlistingname}{代码目录标题名}\default{}
- \keyval{lstlistingname}{代码题注标题名}
- 代码目录名与代码环境题注名选项 \option{lstlistlistingname} 和 \option{lstlistingname} 用法与 \CTeX 使用手册标题汉化一节类似,可以看作对这节的扩展。
-\end{cnltxlist}
+\section{扩展功能}
\subsection{盒子}
\label{subsec:box}
@@ -1316,7 +1377,33 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
行内盒子命令 \cs{eboxii} 则有直角边缘和四周框线,效果类似带背景色的 \cs*{fbox} 盒子。
\end{cnltxlist}
-\section{扩展功能}
+\subsection{代码}
+代码抄录宏包 \pkg*{listings} 提供了完善的代码排版功能,并且不需要前端处理器。
+\begin{cnltxlist}
+ \command{lstdefinestyle}[\marg{代码风格}\marg{键值列表}]
+ 代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言定义多种风格,默认使用的 \meta{代码风格} 为适用于\TeX 语言的 \code{lst-latex}。
+ \command{lstinline}[\oarg{键值列表}\marg{行内代码}]
+ 行内代码抄录命令。较原生的 \cs*{verb} 命令有较大改进,具有代码语言和样式支持。
+ \environment{lstlisting}[\oarg{键值列表}]
+ 行间代码抄录环境。支持多种语言库,默认使用 \code{LaTeX} 代码语言,可使用 \meta{键值列表} 局部修改代码样式。另外还提供了 \cs{lstnewenvironment} 命令包装自定义名称的代码环境。
+ \begin{ctexexam}
+ \lstdefinestyle{lst-pascal}
+ {
+ language = Pascal,
+ numbers = left,
+ firstnumber = last,
+ frame = shadowbox,
+ backgroundcolor = \color{MistyRose},
+ rulesepcolor = \color{DarkGray}
+ }
+ \lstnewenvironment{mypascal}[1][]{\lstset{style = lst-pascal,#1}}{}
+ \end{ctexexam}
+ \begin{cnltxlist}[itemsep = 0ex]
+ \keyval{listlstlistingname}{代码目录标题名}\nonl
+ \keyval{lstlistingname}{代码题注标题名}
+ 代码目录名与代码环境题注名选项 \option{listlstlistingname} 和 \option{lstlistingname} 用法与 \CTeX 使用手册标题汉化一节类似,可以看作对这节的扩展。
+ \end{cnltxlist}
+\end{cnltxlist}
\subsection{物理量}
使用 \pkg*{siunitx} 宏包提供国际单位制的物理量支持。\pkg*{siunitx} 宏包旨在为 \hologo{LaTeX} 用户提供一种统一的方法,以便正确、轻松地排版数字和单位。\pkg*{siunitx} 的设计理念是默认遵循约定的规则,但允许通过选项设置进行更改。
@@ -1337,37 +1424,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{ctexexam}
\end{cnltxlist}
-\subsection{化学式}
-除了以普通公式的方式,化学式的输出还可用 \pkg*{chemformula} 宏包实现。\pkg*{chemformula} 的工作原理与 \pkg*{mhchem} 非常相似,但对化合物、化学计量数和箭头的输入方式更为严格。同时 \pkg*{chemformula} 提供了多种自定义输出的可能性。
-\begin{cnltxlist}
- \command{ch}[\oarg{键值列表}\marg{化学式}]
- 无机化学式使用 \cs{ch} 命令书写。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
- \begin{ctexexam}
- \ch{[Cu(NH3)4]^2+}
- \ch{Cu2S + 2 O2 - 2 e^- == 2 Cu^2+ + SO4^2-}
- \end{ctexexam}
-\end{cnltxlist}
-
-\subsection{计数器}
-\begin{cnltxlist}[itemsep = 0ex]
- \command{newcounter}[\marg{计数器}\oarg{父计数器}]\default{}
- \command{setcounter}[\marg{计数器}\marg{整数}]\default{}
- \command{stepcounter}[\marg{计数器}]
- 常用的计数器设置命令。命令 \cs{newcounter} 创建一个初始值为0的新计数器。命令 \cs{setcounter} 将计数器的值设定为指定值。命令 \cs{stepcounter} 使计数器的值递增1。
- \command{counterwithin}[\sarg\oarg{格式}\marg{计数器}\oarg{连字符}\marg{父计数器}]
- 对计数器进行绑定的命令。将 \meta{计数器} 绑定于 \meta{父计数器},即 \meta{父计数器} 的值递增时 \meta{计数器} 的值会归零。输出格式 \cs*{the}\meta{计数器} 被定义为 \cs*{the}\meta{父计数器}\meta{连字符}\meta{格式}\marg{计数器}。\meta{格式} 一般为更改计数器编号形式的命令,默认为 \cs*{arabic}。带有星号参数的命令仅进行绑定不更改输出格式。
- \command{counterwithout}[\sarg\oarg{格式}\marg{计数器}\marg{父计数器}]
- 对计数器关系进行解绑的命令。将 \meta{计数器} 解绑于 \meta{父计数器},同时输出格式被改为 \meta{格式}\marg{计数器}。带有星号参数的命令仅进行解绑不更改输出格式。
- \begin{ctexexam}
- \counterwithin[\Roman]{child}[-]{parent}
- \counterwithout*{child}{parent}
- \end{ctexexam}
-\end{cnltxlist}
-
\subsection{标签引用}
\begin{cnltxlist}
\command{labelformat}[\marg{计数器}\marg{标签引用格式}]
- 标签格式命令 \cs{labelformat} 可以设置标签引用格式。\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包提供更强大的标签功能。
+ 标签格式命令 \cs{labelformat} 可以设置标签引用格式。\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包或 \code{ltproperties} 机制,它们充分扩展了 \cs{label} 和 \cs{ref} 命令,提供了更强的标签功能。
\command{AtEndPreamble}[\marg{格式代码}]
导言区末尾的钩子命令。为了保证兼容性 \pkg*{hyperref} 宏包被设计在导言区末尾载入,一些情况下需要钩子命令在 \pkg*{hyperref} 宏包后方执行 \meta{格式代码},例如载入 \pkg*{cleveref} 宏包。
\begin{ctexexam}
@@ -1378,9 +1438,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{索引}
+\pkg*{imakeidx} 宏包增强了索引的功能,可使用户在制作和排版文档的同时制作一个或多个索引。
\begin{cnltxlist}
\command{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能,可使用户在制作和排版文档的同时制作一个或多个索引。这是 \pkg*{imakeidx} 宏包的接口命令,用于设置索引表的整体格式,它的 \option{level} 和 \option{headers} 选项失效。
+ 设置索引表整体格式的通用接口命令,它的 \option{level} 和 \option{headers} 选项失效。
\command{index}[\oarg{索引名}\marg{标签}]
索引标签命令的可选参数可以用不同的 \meta{索引名} 给多个索引表设置标签。
\command{makeindex}[\oarg{键值列表}]
@@ -1522,6 +1583,9 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\item 使用 \pkg*{xtemplate} 宏包将封面标题命令 \cs{maketitle} 抽象为由实例组成的模板。
\item 新增图表题注模块 \module*{cap}。
\end{version}
+ \shortversion{v = 2024dq,date = 2024/09/16,changes = 修复脚注重置编号的方式为 \code{page} 时在一些换页情况下失败的问题。}
+ \shortversion{v = 2024dt,date = 2024/09/22,changes = 新增用于设置行距的命令 \cs{usestretch} 和环境 \env{usespace}。}
+ \shortversion{v = 2024ea,date = 2024/09/28,changes = 定理模块 \module*{thmt} 支持使用 \pkg*{keytheorems} 宏包。}
\end{changelog}
\nocite{*}
% \AddToHook{cmd/printindex/before}{\clearpage}
diff --git a/macros/latex/contrib/easyfloats/README.md b/macros/latex/contrib/easyfloats/README.md
index 58cca59837..ba9c1ba5b3 100644
--- a/macros/latex/contrib/easyfloats/README.md
+++ b/macros/latex/contrib/easyfloats/README.md
@@ -3,6 +3,7 @@
In standard LaTeX inserting objects like figures or tables requires too much knowledge for beginners and too much typing effort and hardcoding for people like me.
This package aims to make insertion of figures and tables easier for both beginners and experts.
Despite the term *floats* in it's name it also allows to disable floating of such objects.
+It also defines a new placement `I` similar to `H` which respects the indentation in an `itemize`.
# Documentation
diff --git a/macros/latex/contrib/easyfloats/doc/content/examples.tex b/macros/latex/contrib/easyfloats/doc/content/examples.tex
deleted file mode 100644
index b712740b9b..0000000000
--- a/macros/latex/contrib/easyfloats/doc/content/examples.tex
+++ /dev/null
@@ -1,355 +0,0 @@
-% !TeX root = ../easyfloats.tex
-
-\section{Examples}
-\label{examples}
-
-Let's start with a few examples.
-Environments, commands and keys defined by this package are links (both in the code and in the text).
-Klicking on them will get you to their explanation in \cref{documentation}.
-
-\Cref{motivation} gives a motivation why this package is useful.
-There is a list of related packages in \cref{used-packages,other-packages}.
-Package names link to the rather short description in that list.
-
-
-\subsection{Table}
-\label{table}
-Use the \env{tableobject} environment for inserting tables.
-Pass caption and label as keyword arguments.
-You can't mess up the order of caption and label and you get a warning if you forget to specify them.
-You don't need two environments (one for the float, one for the table---`tableobject` can do both).
-\pkg{booktabs} (and \pkg{array}) are loaded automatically (if not disabled, see \cref{package-options}).
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage{easyfloats}
-\objectset{warn no label=false}
-
-\begin{document}
-\begin{tableobject}{caption=Some catcodes, env=tabular}{cl}
- \toprule
- Catcode & Meaning \\
- \midrule
- 0 & Escape Character \\
- 1 & Begin Group \\
- 2 & End Group \\
- \vdots & \quad \vdots \\
- \bottomrule
-\end{tableobject}
-\end{document}
-\end{examplecode}
-
-You can reduce typing effort even further by using the `table head` key, see \cref{longtable}.
-
-
-\subsection{Graphic}
-\label{graphic}
-Use the \cmd{\includegraphicobject} command to insert a graphic.
-It is a wrapper around \pkg{graphicx}' `\includegraphics` command taking the same arguments.
-No need for a surrounding `figure` environment.
-I have extended the allowed optional keyword argument to also accept caption, label and more.
-`details` are appended to the caption below the figure but not in the list of figures.
-Select with the \pkgoptn{graphicx} or \pkgoptn{graphbox} package options whether you want to use the commonly used \pkg{graphicx} package or it's extension \pkg{graphbox}.
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage{easyfloats}
-\usepackage{hyperref}
-\objectset[figure]{graphic width=.8\linewidth}
-
-\begin{document}
-\includegraphicobject[%
- label = lion,
- caption = CTAN lion drawing by Duane Bibby,
- details = Thanks to \href{https://ctan.org/lion/files}{www.ctan.org}.,
-]{graphics/ctan_lion}
-
-\listoffigures
-\end{document}
-\end{examplecode}
-
-If you omit \key{caption} or `label` the file name is used.
-See `auto label`, `auto caption`, `auto label strip path` and `auto caption strip path`.
-
-
-\subsection{Subobjects}
-\label{subobjects-2}
-Use the \env{subobject} environment to combine two (or more) subobjects to one big object.
-The `contains subobjects` option causes the `env` option to be applied to the subobjects instead of the containing object.
-Changing the `subobject linewidth` is usually not necessary but in this example the tables fill only a small part of the width
-so they are too far apart from each other if each is centered on `.5\linewidth`.
-Pay attention to *not* insert an empty line between the subobjects, otherwise they will be placed below each other instead of side by side.
-If you want them to be placed below each other you can use the `ver` option.
-
-`\captionsetup` is explained in the \pkg{caption} package documentation~\autocite{caption}.
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage{easyfloats}
-
-\objectset[table]{env=tabular}
-\captionsetup[sub]{list=true}
-
-\begin{document}
-\begin{tableobject}{contains subobjects,
- caption = Two test tables,
- label = tabs abc 123,
- subobject linewidth = .25\linewidth,
- }
- \begin{subobject}{caption=Abc \& 123}{rl}
- \toprule
- abc & 123 \\
- de & 45 \\
- f & 6 \\
- \bottomrule
- \end{subobject}
- \begin{subobject}{caption=123 \& abc}{lr}
- \toprule
- 123 & abc \\
- 45 & de \\
- 6 & f \\
- \bottomrule
- \end{subobject}
-\end{tableobject}
-\end{document}
-\end{examplecode}
-
-\subsection{Longtable}
-\label{longtable}
-If you are undecided whether to use floating `tabular`s or \env{longtable}s which can break across pages you can use the following approach.
-Changing between them is as easy as changing `env=longtable` to `env=tabular` once.
-The table head and foot are set by the key `table head` and are by default formatted with the \pkg{booktabs} package.
-(If you don't like this you can change the definition of `table head` with `table head style`.)
-The column specification cannot be given as a separate argument (like in the example above) but must be set with the `arg` key
-because otherwise the column specification would be after the table head.
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage[longtable]{easyfloats}
-\usepackage{siunitx}
-
-\newcommand\pminfty{\multicolumn1r{$\pm\infty$}}
-
-\objectset[table]{env=longtable}
-
-\begin{document}
-\begin{tableobject}{%
- caption = Trigonometric functions,
- label = trifun,
- arg = {
- S[table-format=2.0, table-space-text-post=\si{\degree}] <{\si{\degree}} !\quad
- *2{S[table-format=+1.2]}
- S[table-format=+4.2]
- },
- table head = \multicolumn1{c!\quad}{$x$} & $\sin x$ & $\cos x$ & $\tan x$,
-}
-
- 0 & 0.00 & 1.00 & 0.00 \\
- 5 & 0.09 & 1.00 & 0.09 \\
- 10 & 0.17 & 0.98 & 0.18 \\
- 15 & 0.26 & 0.97 & 0.27 \\
- 20 & 0.34 & 0.94 & 0.36 \\
- 25 & 0.42 & 0.91 & 0.47 \\
- 30 & 0.50 & 0.87 & 0.58 \\
- 35 & 0.57 & 0.82 & 0.70 \\
- 40 & 0.64 & 0.77 & 0.84 \\
- 45 & 0.71 & 0.71 & 1.00 \\
- 50 & 0.77 & 0.64 & 1.19 \\
- 55 & 0.82 & 0.57 & 1.43 \\
- 60 & 0.87 & 0.50 & 1.73 \\
- 65 & 0.91 & 0.42 & 2.14 \\
- 70 & 0.94 & 0.34 & 2.75 \\
- 75 & 0.97 & 0.26 & 3.73 \\
- 80 & 0.98 & 0.17 & 5.67 \\
- 85 & 1.00 & 0.09 & 11.43 \\
- 90 & 1.00 & 0.00 & \pminfty \\
-\end{tableobject}
-\begin{tableobject}{%
- caption = Squared trigonometric functions,
- label = trifun2,
- arg = {
- S[table-format=2.0, table-space-text-post=\si{\degree}] <{\si{\degree}} !\quad
- *2{S[table-format=+1.2]}
- S[table-format=+4.2]
- },
- table head = \multicolumn1{c!\quad}{$x$} & {$\sin^2 x$} & {$\cos^2 x$} & {$\tan^2 x$},
-}
-
- 0 & 0.00 & 1.00 & 0.00 \\
- 5 & 0.01 & 0.99 & 0.01 \\
- 10 & 0.03 & 0.97 & 0.03 \\
- 15 & 0.07 & 0.93 & 0.07 \\
- 20 & 0.12 & 0.88 & 0.13 \\
- 25 & 0.18 & 0.82 & 0.22 \\
- 30 & 0.25 & 0.75 & 0.33 \\
- 35 & 0.33 & 0.67 & 0.49 \\
- 40 & 0.41 & 0.59 & 0.70 \\
- 45 & 0.50 & 0.50 & 1.00 \\
- 50 & 0.59 & 0.41 & 1.42 \\
- 55 & 0.67 & 0.33 & 2.04 \\
- 60 & 0.75 & 0.25 & 3.00 \\
- 65 & 0.82 & 0.18 & 4.60 \\
- 70 & 0.88 & 0.12 & 7.55 \\
- 75 & 0.93 & 0.07 & 13.93 \\
- 80 & 0.97 & 0.03 & 32.16 \\
- 85 & 0.99 & 0.01 & 130.65 \\
- 90 & 1.00 & 0.00 & \pminfty \\
-\end{tableobject}
-\begin{tableobject}{%
- caption = Cubed trigonometric functions,
- label = trifun3,
- arg = {
- S[table-format=2.0, table-space-text-post=\si{\degree}] <{\si{\degree}} !\quad
- *2{S[table-format=+1.2]}
- S[table-format=+4.2]
- },
- table head = \multicolumn1{c!\quad}{$x$} & {$\sin^3 x$} & {$\cos^3 x$} & {$\tan^3 x$},
-}
-
- 0 & 0.00 & 1.00 & 0.00 \\
- 5 & 0.00 & 0.99 & 0.00 \\
- 10 & 0.01 & 0.96 & 0.01 \\
- 15 & 0.02 & 0.90 & 0.02 \\
- 20 & 0.04 & 0.83 & 0.05 \\
- 25 & 0.08 & 0.74 & 0.10 \\
- 30 & 0.12 & 0.65 & 0.19 \\
- 35 & 0.19 & 0.55 & 0.34 \\
- 40 & 0.27 & 0.45 & 0.59 \\
- 45 & 0.35 & 0.35 & 1.00 \\
- 50 & 0.45 & 0.27 & 1.69 \\
- 55 & 0.55 & 0.19 & 2.91 \\
- 60 & 0.65 & 0.13 & 5.20 \\
- 65 & 0.74 & 0.08 & 9.86 \\
- 70 & 0.83 & 0.04 & 20.74 \\
- 75 & 0.90 & 0.02 & 51.98 \\
- 80 & 0.96 & 0.01 & 182.41 \\
- 85 & 0.99 & 0.00 & 1493.29 \\
- 90 & 1.00 & 0.00 & \pminfty \\
-\end{tableobject}
-\end{document}
-\end{examplecode}
-
-\subsection{Local definitions in tables}
-\label{local-definitions-in-tables}
-
-If you want to define a command locally for one table you cannot put it's definition in the first cell because each cell is a separate group
-(meaning that the definition will be forgotten at the end of the cell).
-Instead I provide the `exec` key whose value is executed inside of the object but before `env`.
-If you want to tinker around with catcodes keep in mind that arguments are always read entirely before expansion and execution.
-The \eTeX\ primitive `\scantokens` can be useful to define active characters.
-If you are unfamiliar with how \TeX\ processes a file you can read up on it in \mycite[section~1]{texbytopic}.
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage{easyfloats}
-\usepackage[table]{xcolor}
-
-% avoid Warning: Font shape `OMS/cmtt/m/n' undefined
-\usepackage[T1]{fontenc}
-% fontenc T1 causes unclean/pixelated font on some systems
-% and trouble with copying ligatures from pdf => change font
-% lmodern is relatively close to the default font but unmaintained
-\usepackage{lmodern}
-
-\colorlet{rowbg}{gray!50}
-
-\newcommand\charsym[1]{\texttt{#1}}
-\newcommand\charname[1]{$\langle$#1$\rangle$}
-
-\begin{document}
-\begin{tableobject}{%
- caption = Category Codes,
- details = Highlighted catcodes have no tokens.,
- label = catcodes,
- env = tabular,
- arg = cll,
- table head = Catcode & Meaning & Characters,
- exec = {%
- \catcode`* = \active
- \scantokens{\def*{\rowcolor{rowbg}}}%
- \catcode`= = \the\catcode`&%
- \catcode`, = \the\catcode`&%
- },
-}
- * 0 = Escape character, \charsym\textbackslash \\
- 1 = Begin grouping, \charsym\{ \\
- 2 = End grouping, \charsym\} \\
- 3 = Math shift, \charsym\$ \\
- 4 = Alignment tab, \charsym\& \\
- * 5 = End of line, \charname{return} \\
- 6 = Parameter, \charsym\# \\
- 7 = Superscript, \charsym\^ \\
- 8 = Subscript, \charsym\_ \\
- * 9 = Ignored character, \charname{null} \\
- 10 = Space, \charname{space} and
- \charname{tab} \\
- 11 = Letter, \charsym{a}--\charsym{z} and
- \charsym{A}--\charsym{Z} \\
- 12 = Other, other characters \\
- % "In plain TeX this is only the tie character ~"
- % TeX by Topic, page 30
- 13 = Active character, \charsym{\string~} \\
- * 14 = Comment character, \charsym\% \\
- * 15 = Invalid character, \charname{delete} \\
-\end{tableobject}
-\end{document}
-\end{examplecode}
-
-\subsection{New object style~\slash\ `tikzobject`}
-\label{new-object-style-tikzobject}
-
-You can easily define new object environments.
-For more information see \cref{new-object-styles-and-types}.
-
-\begin{examplecode}
-\documentclass{article}
-\usepackage{easyfloats}
-\usepackage{tikz}
-
-\NewObjectStyle{tikz}{type=figure, env=tikzpicture}
-% I am not using `arg=[3D]` so that I can still pass an optional argument to tikz3dobject
-\NewObjectStyle{tikz3d}{type=figure, env=tikzpicture, exec=\tikzset{3D}}
-
-\tikzset{
- 3D/.style = {
- x = {(-3.85mm, -3.85mm)},
- y = {(1cm, 0cm)},
- z = {(0cm, 1cm)},
- },
-}
-\objectset{warn no label=false}
-
-\begin{document}
-\begin{tikzobject}{caption=2D coordinate system}
- \newcommand\n{5}
- \newcommand\w{.075}
- \draw[->] (0,0) -- ++(\n,0);
- \draw[->] (0,0) -- ++(0,\n);
- \foreach \i in {1,...,\n-1} {
- \draw (\i,0) +(0,\w) -- +(0,-\w);
- \draw (0,\i) +(\w,0) -- +(-\w,0);
- }
-\end{tikzobject}
-\begin{tikz3dobject}{caption=3D coordinate system}
- \newcommand\n{5}
- \newcommand\w{.075}
- \draw[->] (0,0,0) -- ++(\n,0,0);
- \draw[->] (0,0,0) -- ++(0,\n,0);
- \draw[->] (0,0,0) -- ++(0,0,\n);
- \foreach \i in {1,...,\n-1} {
- \draw (\i,0,0) +(0,\w,0) -- +(0,-\w,0);
- \draw (0,\i,0) +(\w,0,0) -- +(-\w,0,0);
- \draw (0,0,\i) +(0,\w,0) -- +(0,-\w,0);
- }
-\end{tikz3dobject}
-\end{document}
-\end{examplecode}
-
-\subsection{Nonfloating objects}
-\label{nonfloating-objects}
-If your professor absolutely won't allow floating objects you can easily disable them globally
-(for all objects based on the \env{object} environment defined by this package which is internally used by \env{tableobject} and \cmd{\includegraphicobject}).
-
-\begin{examplecode}
-\objectset{placement=H}
-\end{examplecode}
diff --git a/macros/latex/contrib/easyfloats/doc/content/titlepage.tex b/macros/latex/contrib/easyfloats/doc/content/f1_titlepage.tex
index 2dd36aa6c8..86cacb7628 100644
--- a/macros/latex/contrib/easyfloats/doc/content/titlepage.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/f1_titlepage.tex
@@ -7,6 +7,7 @@
In standard \LaTeX\ inserting objects like figures or tables requires too much knowledge for beginners and too much typing effort and hardcoding for people like me.
This package aims to make insertion of figures and tables easier for both beginners and experts.
Despite the term *floats* in it's name it also allows to disable floating of such objects.
+It also defines a new placement `I` similar to `H` which respects the indentation in an `itemize`.
\end{abstract}
\vfill
\vspace{20em}
diff --git a/macros/latex/contrib/easyfloats/doc/content/installation.tex b/macros/latex/contrib/easyfloats/doc/content/installation.tex
deleted file mode 100644
index a8dbe09394..0000000000
--- a/macros/latex/contrib/easyfloats/doc/content/installation.tex
+++ /dev/null
@@ -1,8 +0,0 @@
-% !TeX root = ../easyfloats.tex
-
-\section{Installation}
-\label{installation}
-
-This package is still very new.
-If it is not yet contained in your \TeX\ distribution
-just download the \filename{sty-file} and put it next to your main document.
diff --git a/macros/latex/contrib/easyfloats/doc/content/s1_examples.tex b/macros/latex/contrib/easyfloats/doc/content/s1_examples.tex
new file mode 100644
index 0000000000..2c471c7088
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/content/s1_examples.tex
@@ -0,0 +1,230 @@
+% !TeX root = ../easyfloats.tex
+
+\section{Examples}
+\label{examples}
+
+Let's start with a few examples.
+Environments, commands and keys defined by this package are links (both in the code and in the text).
+Clicking on them will get you to their explanation in \cref{documentation}.
+
+\Cref{motivation} gives a motivation why this package is useful.
+There is a list of related packages in \cref{used-packages,other-packages}.
+Package names link to the rather short description in that list.
+
+The examples have been tested with \input{../test/generated/latex_version}\unskip.
+
+
+\subsection{Table}
+\label{table}
+Use the \env{tableobject} environment for inserting tables.
+Pass caption and label as keyword arguments.
+You can't mess up the order of caption and label and you get a warning if you forget to specify them.
+You don't need two environments (one for the float, one for the table---`tableobject` can do both).
+\pkg{booktabs} (and \pkg{array}) are loaded automatically (if not disabled, see \cref{package-options}).
+
+The last argument, `cl`, is not an argument of the `tableobject` environment but of the standard \LaTeX\ `tabular` environment which is started by the `tableobject` environment because it is specified with `env`.
+It specifies the columns of the table: The `l` stands for one left aligned column and the `c` for one centered column.
+An `r` would stand for a right aligned column and a \xc.p{<width>}. for a column which breaks the cell contents to a specified width.
+The \pkg{siunitx} package defines `S` for a column which aligns numbers and in the `tabularx` environment defined by the \pkg{tabularx} package `X` is available for a `p` column which automatically takes as much space as there is available.
+You can use the `\newcolumntype` command (defined by the \pkg{array} package) to define your own column types, e.g.\ `\newcolumntype{M}{>{$}c<{$}}` to define a column type `M` for centered math content.
+See the \pkg{array} package documentation~\autocite[chapter~1]{array} for more column specification options.
+
+`&` is the column separator and `\\` specifies the end of a row.
+
+The table is formatted with `\toprule`, `\midrule` and `\bottomrule` as explained in the \pkg{booktabs} documentation~\autocite[chapter~2]{booktabs}.
+
+\inputexamplecode{../test/exp-table}
+
+You can reduce typing effort even further by using the `table head` key, see \cref{longtable}.
+
+If you are not familiar with how to reference a label, see \cref{vref}.
+
+
+\subsection{Graphic}
+\label{graphic}
+Use the \cmd{\includegraphicobject} command to insert a graphic.
+It is a wrapper around \pkg{graphicx}' `\includegraphics` command taking the same arguments.
+No need for a surrounding `figure` environment.
+I have extended the allowed optional keyword argument to also accept caption, label and more, see \cref{includegraphicobject-command}.
+`details` are appended to the caption below the figure but not in the list of figures.
+Select with the \pkgoptn{graphicx} or \pkgoptn{graphbox} package options whether you want to use the commonly used \pkg{graphicx} package or it's extension \pkg{graphbox}.
+
+\inputexamplecode{../test/exp-graphic}
+
+The graphic automatically gets the label \formatlabel{fig:graphics/ctan_lion}, based on the file name and the specified prefix.
+You can override the automatically generated label by passing the key `label` to the optional argument.
+If you omit \key{caption} the file name \formatcaption{graphics/ctan_lion} is used.
+See `auto label`, `auto caption`, `auto label strip path`, `auto caption strip path` and `auto label prefix`.
+
+If you are not familiar with how to reference a label, see \cref{vref}.
+
+
+\subsection{Subfigures}
+\label{exp:subfigures}
+The following example shows a figure consisting of two graphics displayed side by side, each having their own caption and label.
+The graphics have a distance of one quad, i.e. 1\,em, and fill the entire width of the line.
+(em is a unit of distance relative to the font.
+If you are unfamiliar with the units supported by \TeX\ you can read up on them in \mycite[pages 57 and~60]{texbook} or \mycite[chapters 8.2.1 and~4.3.1]{texbytopic}.
+
+I am loading the \pkg{calc} package in order to use an expression as `subobject linewidth`.
+(Alternatively you could use the \eTeX\ primitive `\dimexpr`.)
+As I want to put two graphics next to each other, each of them should be half of the available line width minus half of the distance between them wide.
+Additionally I need to subtract a tiny bit more in order to compensate for rounding errors in the division which would cause an uninteded line break with the initial setting `align = \centering`.
+(The rounding errors would not need to be compensated if you set the value of `align` to an empty string).
+
+Pay attention to *not* insert an empty line between the subobjects, otherwise they will be placed below each other instead of side by side.
+If you want them to be placed below each other you can use the `ver` option.
+
+By default subobjects do not show up in the list of figures.
+You can change that with `\captionsetup[sub]{list=true}`.
+`\captionsetup` is explained in the \pkg{caption} package documentation~\autocite{caption}.
+
+\inputexamplecode{../test/exp-subgraphic}
+
+Each of the subfigures gets it's own label, generated based on the given prefix and the file name: \formatlabel{fig:ctan_lion} and \formatlabel{fig:tex_engines}.
+You can override the automatically generated labels with the \key[/subobject]{label} key if needed.
+How to reference the labels is shown in \cref{vref}.
+
+If you want to use the full width for graphics in subobjects but less than the full width for graphics in main objects you can achieve that with
+%If you want a different width for `\includegraphicsubobject` and `\includegraphicobject` you could achieve that with
+\begin{examplecode}
+\objectset[figure]{graphic width = .8\linewidth}
+\AtBeginSubobject{\AtBeginGraphicObject{%
+ \objectset{graphic width = \linewidth}%
+}}
+\end{examplecode}
+
+
+\subsection{Other subobjects}
+\label{subobjects-2}
+
+Use the \env{subobject} environment to combine two (or more) subobjects to one big object.
+The `contains subobjects` option causes the `env` option to be applied to the subobjects instead of the containing object.
+I am decreasing the `subobject linewidth` because the tables fill only a small part of the width
+so the distance between them would be too big if each was centered on `.5\linewidth`.
+(If you don't want to set the `subobject linewidth` to an explicit value take a look at the `subcaptionbox` option and the example provided there.
+ Setting `subobject sep` to the desired distance and aligning the subojects with `subpage align=\raggedleft` and `subpage align=\raggedright` does not work well because `\raggedleft` and `\raggedright` do not affect the caption. The alignment of the caption could be changed with `\captionsetup{justification=raggedleft,singlelinecheck=false}` but then the caption would not be centered relative to the tabular.)
+
+Pay attention to *not* insert an empty line between the subobjects, otherwise they will be placed below each other instead of side by side.
+If you want them to be placed below each other you can use the `ver` option.
+
+By default subobjects do not show up in the list of tables.
+You can change that with `\captionsetup[sub]{list=true}`.
+`\captionsetup` is explained in the \pkg{caption} package documentation~\autocite{caption}.
+
+\inputexamplecode{../test/exp-subobject}
+
+
+\subsection{Longtable}
+\label{longtable}
+If you are undecided whether to use floating `tabular`s or \env{longtable}s which can break across pages you can use the following approach.
+Changing between them is as easy as changing `env=longtable` to `env=tabular` once.
+The table head and foot are set by the key `table head` and are by default formatted with the \pkg{booktabs} package.
+(If you don't like this you can change the definition of `table head` with `table head style`.)
+The column specification cannot be given as a separate argument (like in the example above) but must be set with the `arg` key
+because otherwise the column specification would be after the table head.
+
+\inputexamplecode{../test/exp-longtable}
+
+
+\subsection{Local definitions in tables}
+\label{local-definitions-in-tables}
+
+If you want to define a command locally for one table you cannot put it's definition in the first cell because each cell is a separate group
+(meaning that the definition will be forgotten at the end of the cell).
+Instead I provide the `exec` key whose value is executed inside of the object but before `env`.
+If you want to tinker around with catcodes keep in mind that arguments are always read entirely before expansion and execution.
+The \eTeX\ primitive `\scantokens` can be useful to define active characters.
+If you are unfamiliar with how \TeX\ processes a file you can read up on it in \mycite[section~1]{texbytopic}.
+
+\inputexamplecode{../test/exp-exec}
+
+
+\subsection{New object style~\slash\ `tikzobject`}
+\label{new-object-style-tikzobject}
+
+You can easily define new object environments.
+For more information see \cref{new-object-styles-and-types}.
+
+\inputexamplecode{../test/exp-tikzobject}
+
+If you are interested in three dimensional drawing see also the \TikZ\ library \tikzlibrary{perspective} \autocite[section~63 Three Point Perspective Drawing Library]{tikz}.
+
+
+\subsection{New float type `diagram`}
+\label{exp:new-object-type}
+
+I am using `\AtEndPreamble` defined by the \pkg{etoolbox} package to defer loading of \pkg{cleveref} after \pkg{hyperref}.
+For more information about \pkg{cleveref} and \pkg{varioref} see \cref{vref}.
+
+I am defining `\listofdiagrams` analogous to `\listoffigures` and `\listoftables` with the help of the `\listof` command defined by the \pkg{float} package (which is loaded automatically by \pkg{easyfloats}).
+
+For more information see \cref{new-object-styles-and-types}.
+
+\inputexamplecode{../test/exp-new-object-style}
+
+
+\subsection{Split object}
+\label{split-object-example}
+
+If a float gets too big you can split it up with the `\splitobject` command so that the object can be broken across a page break.
+I am using `\DeclareCaptionLabelFormat` and `\captionsetup` to add the prefix \enquote{Continued} to the caption of the continuation as shown in the package \pkg{caption} documentation~\autocite[section~3.3
+Continued floats]{caption}.
+
+\inputexamplecode{../test/exp-splitobject}
+
+
+\subsection{Custom options}
+\label{custom-options}
+This package uses the \pkg{pgfkeys} package to define the options which can be passed to the environments and commands defined by this package.
+Therefore you can use the usual pgfkeys handlers to add custom options.
+The following example defines a new key `center subcaptions` which centers the captions of all subobjects.
+For more information see \cref{options} and the \mycite[Utilities/Key Management]{tikz}.
+
+\inputexamplecode{../test/exp-custom-option}
+
+
+\subsection{Nonfloating objects}
+\label{nonfloating-objects}
+If your professor absolutely won't allow floating objects you can easily disable them globally
+(for all objects based on the \env{object} environment defined by this package which is internally used by \env{tableobject} and \cmd{\includegraphicobject}).
+
+\begin{examplecode}
+\objectset{placement=H}
+\end{examplecode}
+
+
+\subsection{How to reference objects}
+\label{vref}
+When you insert floating objects you probably want to reference them in the text.
+Although this package does not change anything about referencing I have added an example for the sake of completeness.
+
+The standard \LaTeX\ commands are `\ref{<label>}` (to insert the number of a figure/table/whatever) and `\pageref{<label>}` (to insert the page number).
+The \pkg{hyperref} package automatically turns them into links.
+The \pkg{varioref} package defines new commands `\vref{<label>}` and `\Vref{<label>}` which automatically add a reference to the page if the label is on a different page.
+The \pkg{cleveref} package redefines `\vref{<label>}` and `\Vref{<label>}` to automatically insert the type of object in front of the reference so that you don't need to write out \enquote{figure\string~}.
+
+`\Vref{<label>}` is to be used at the beginning of the sentence and `\vref{<label>}` is to be used inside of a sentence.
+The distinction is important for capitalization and whether to use an abbreviation.
+You can disable abbreviations by loading the \pkg{cleveref} package with the `noabbrev` option.
+
+Note that \pkg{cleveref} must be loaded last, even after \pkg{hyperref} which should usually be loaded last.
+
+\inputexamplecode{../test/exp-vref}
+
+Warning: Using \pkg{varioref} can lead to not converging behavior.
+For example: You use `\vref{sec:foo}` in section~1 to reference `\label{sec:foo}` at the beginning of section~2.
+In the first run it prints \enquote{??} as reference because it does not know the referenced object yet. The reference is on page~1 and section~2 begins at the end of page~2.
+In the second run it therefore prints \enquote{section~2 on the following page}. Section~2 moves to the beginning of page~3 because the reference text is now longer.
+In the third run it therefore prints \enquote{section~2 on page~3}. Section~2 moves back to page~2 because the reference text is now shorter.
+In the fourth run it therefore prints \enquote{section~2 on the following page} again. And section~2 moves to the beginning of page~3 again.
+Every time you compile the document the beginning of section~2 will be somewhere else and the reference will never be correct.
+This may cause other references (e.g. `\pageref{LastPage}` (defined by the \pkg{lastpage} package) to jump as well.
+The same can happen when referencing an earlier label.
+
+You don't need to worry about this until the very end because this behavior may get resolved while inserting, deleting or rewriting contents or formatting the document.
+But if this still happens when you have finished everything else you can solve this by inserting a `\clearpage` or replacing the `\vref` with a `\fullref`.
+`\fullref{<label>}` is defined by the \pkg{varioref} package and is by default equivalent to `\cref{<label>} on \cpageref{<label>}` (if \pkg{cleveref} is loaded---if not it's default is equivalent to `\ref{<label>} on page~\pageref{<label>}`).
+Using `\clearpage` may be preferable in order to keep the referencing manner consistent.
+
+See also the \pkg{varioref} documentation, section~7 \sectionname{A few warnings}.
diff --git a/macros/latex/contrib/easyfloats/doc/content/names.tex b/macros/latex/contrib/easyfloats/doc/content/s2_names.tex
index e8f6708072..e8f6708072 100644
--- a/macros/latex/contrib/easyfloats/doc/content/names.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/s2_names.tex
diff --git a/macros/latex/contrib/easyfloats/doc/content/documentation.tex b/macros/latex/contrib/easyfloats/doc/content/s3_documentation.tex
index 6dd1d9b62d..a9c5d8205a 100644
--- a/macros/latex/contrib/easyfloats/doc/content/documentation.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/s3_documentation.tex
@@ -218,6 +218,7 @@ This environment takes the following options:
The appearance of the caption can be configured using `\captionsetup` defined by the \pkg{caption} package.
The \pkg{caption} package is loaded automatically by this package.
+ If you want to change the horizontal alignment of the caption take a look at the options `justification` and `singlelinecheck`.
\keydoc{list caption = <text>}{storing key}
The caption to place in the list of `<type>`s.
If this is not given, the value of \key{caption} is used instead.
@@ -239,11 +240,11 @@ This environment takes the following options:
\keydoc{add label = <label>}{storing key}
Defines an additional label which can be used synonymously to label.
If this key is given several times, only the last one will have an effect.
-\keydoc[initial value=empty]{placement = [htbp]+!? | H | <empty>}{storing key}
+\keydoc[initial value=empty]{placement = [htbp]+!? | H | I | <empty>}{storing key}
The optional argument passed to the floating environment.
Allowed values:
\begin{itemize}
- \item any combination of the letters `htbp` (where no letter is occuring more than once), optionally combined with an exclamation mark.
+ \item any combination of the letters `htbp` (where no letter is occurring more than once), optionally combined with an exclamation mark.
This means that the object will be a floating object.
The order of the letters makes no difference.
They have the following meanings:
@@ -254,10 +255,15 @@ This environment takes the following options:
\item `p`: \LaTeX\ is allowed to place the object on a separate `p`age only for floats.
\item `!`: \textcquote[page~27]{latex2e}{\LaTeX\ ignores the restrictions on both the number of floats that can appear and the relative amounts of float and non-float text on the page.}
\end{itemize}
- \item `H`: \LaTeX\ places the object exactly here, no matter how unfitting that may be.
+ \item \valdoc{H}: \LaTeX\ places the object exactly here, no matter how unfitting that may be.
In contrast to a single `h` or `h!` where the object is still a floating object which may float somewhere else if it does not fit here,
`H` means here and nowhere else.
`H` is defined by the \pkg{float} package which is loaded by this package automatically.
+ \item \valdoc{I}: \LaTeX\ places the object exactly here, considering the current line width and indentation.
+ `H` uses the full `\columnwidth`, just like a real float which floats here.
+ `I` respects the indentation of an `itemize`, shrinking the max used width to `\linewidth`.
+ This is a new placement defined by this package, using the code of `H` with two small changes.
+ `I` can only be used with the environments and commands defined by this package, it cannot be passed to a normal floating environment directly.
\item empty: do *not* pass the optional argument.
In this case the placement of the float can be changed using the `\floatplacement` command of the \pkg{float} package.
I have defined this key instead of advertising `\floatplacement` because `\floatplacement` does not allow the value~`H`.
@@ -271,6 +277,7 @@ This environment takes the following options:
Can be used to define a command for this object, see \cref{local-definitions-in-tables}.
\keydoc{graphic <option> = <value>}{unknown key handler}
\keylinktarget{graphic width}
+\keylinktarget{graphic keepaspectratio}
Is applied to \cmd{\includegraphicobject} and \cmd{\includegraphicsubobject}.
Is ignored for other objects.
@@ -398,7 +405,7 @@ This environment takes the following options:
\keydoc{table head = <code>}{executed key}
This is a convenience key which sets `first head`, `last foot`, `head` and `foot`.
The value is the column headers without rules\slash lines and without the trailing `\\`.
-\keydoc{table break text = <text>}{storing key}
+\keydoc[initial value=`(to be continued)`]{table break text = <text>}{executed key}
A text put in the `foot` by `table head`.
\keydoc{table head style = <code>}{executed key}
Defines how `table head` fills out `first head`, `last foot`, `head` and `foot`.
@@ -491,7 +498,7 @@ See \env{subobject} environment.
\forwardingkeydoc[target=/subobject/subcaptionbox]{subcaptionbox}
\forwardingkeydoc[target=/subobject/subcaptionbox inner pos]{subcaptionbox inner pos = c | l | r | s | <empty>}
\forwardingkeydoc[target=/subobject/subpage]{subpage}
-\forwardingkeydoc[target=/subobject/subpage outer pos]{subpage outer pos = c | t | b | T | B | auto | Auto | <empty>}
+\forwardingkeydoc[target=/subobject/subpage outer pos]{subpage outer pos = c | t | b | T | B | auto | Auto | auto-inverted | Auto-inverted | <empty>}
\forwardingkeydoc[target=/subobject/subpage height]{subpage height = <dimen>}
\forwardingkeydoc[target=/subobject/subpage inner pos]{subpage inner pos = c | t | b | s | <empty>}
\forwardingkeydoc[target=/subobject/subpage align]{subpage align = <code>}
@@ -501,6 +508,8 @@ See \env{subobject} environment.
\endkeydoc
\endgroup
+You can also define your own options as shown in \cref{custom-options}.
+
\subsubsection{`figureobject` environment}
\label{figureobject-environment}
@@ -643,48 +652,28 @@ The following options are unique for the `subobject` environment:
so that you don't need to try different `subobject linewidth`s.
The example in \cref{subobjects-2} could be rewritten as following:
- \begin{examplecode}
- \documentclass{article}
- \usepackage{easyfloats}
-
- \objectset[table]{%
- env = tabular,
- subcaptionbox,
- subobject linewidth =,
- subobject hor = \qquad,
- }
- \captionsetup[sub]{list=true}
-
- \begin{document}
- \begin{tableobject}{contains subobjects,
- caption = Two test tables,
- label = tabs abc 123,
- }
- \begin{subobject}{caption=Abc \& 123, arg=rl}
- \toprule
- abc & 123 \\
- de & 45 \\
- f & 6 \\
- \bottomrule
- \end{subobject}
- \begin{subobject}{caption=123 \& abc, arg=lr}
- \toprule
- 123 & abc \\
- 45 & de \\
- 6 & f \\
- \bottomrule
- \end{subobject}
- \end{tableobject}
- \end{document}
- \end{examplecode}
+ \inputexamplecode{../test/exp-subcaptionbox}
Note that this works only if the subobject captions are very short.
- If they are wider than the subobjects the line breaks which looks ugly.
+ If they are wider than the content the line breaks which looks ugly.
If you want to use this option with `env=tabular` (or similar) you must pass the column specification with the option `arg=lr` (instead of as a separate argument).
Otherwise you will get the error message \errormessage{Package array Error: Illegal pream-token (\BODY): `c' used.}
- This option is *not* compatible with `env=tabularx` and does not allow verbatim content inside of the subobject.
+ This option is *not* compatible with `env=tabularx` and does *not* allow verbatim content inside of the subobject.
+ You can try to work around the verbatim limitation
+ (1)~by saving the problematic content in a macro before hand using commands such as `\urldef` from the \pkg{url} package,
+ (2)~by using commands which replace tokens such as `\mintinline` from the \pkg{minted} package (does not work with catcodes which do not produce tokens -- most importantly the comment character \formatchar\%),
+ (3)~by changing the problematic catcodes before the `subobject` (but you still need \emph{some} escape, begin group and end group characters in order to start and end the subobject -- but which do not need to be the default characters \formatchar\\, \formatchar\{ and \formatchar\}),
+ (4)~by defining a macro before hand under what ever catcode regime you want, you can even append contents from yet another catcode regime using the `\gappto` command from the \pkg{etoolbox} if you want.
+ If you want to learn more about catcodes (category codes) see \mycite[chapter~7]{texbook} or \mycite[chapter~2]{texbytopic}.
+ But the easier way is probably to use `subpage` instead -- that's why it's the initial backend.
+
+ \MakeLinkTarget{}
+ \label{exp:subcaptionbox-limitations}
+ \inputexamplecode{../test/exp-subcaptionbox-defverb}
+
+ `\NewDocumentCommand` is documented in~\autocite{usrguide}.
\keydoc{subcaptionbox inner pos = c | l | r | s | <empty>}{storing key}
The horizontal position of the content in the box.
@@ -699,19 +688,25 @@ The following options are unique for the `subobject` environment:
\bigpar
\keydoc{subpage}{executed key}
- This is (after `subcaptionbox`) the second and nowadays initial backend for the `subobject` environment.
+ This is (after `subcaptionbox`) the second and initial backend for the `subobject` environment.
It uses the `subfigure`\slash `subtable` environment defined by the \pkg{subcaption} package.
+ (Since version 1.5 the \pkg{subcaption} package also provides the more generic `subcaptionblock` environment but this package still uses the old `subfigure` and `subtable` environments.
+ `subfigure` and `subtable` are nowadays specialized versions of `subcaptionblock` which have no other difference than that they produce if a warning if they are used with a different main object type.)
(This key does *not* take a value.)
The `subfigure` and `subtable` environments are minipages and take the same arguments
which can be set with `linewidth`, `subpage outer pos`, `subpage height` and `subpage inner pos`.
+ Both the content and the caption go inside of the minipage.
+
+ If the subobjects are placed next to each other this option requires that either the contents or the captions of the subobjects have the same height and that `subpage outer pos` is set accordingly.
+ Otherwise the captions will not be aligned.
-\keydoc[initial value=`auto`]{subpage outer pos = c | t | b | T | B | auto | Auto | <empty>}{storing key}
- The vertical position of the minipage on the baseline.
+\keydoc[initial value=`auto`]{subpage outer pos = c | t | b | T | B | auto | Auto | auto-inverted | Auto-inverted | <empty>}{storing key}
+ The vertical position of the minipage (containing both content and caption) on the baseline.
Additionally to the values `t`, `c` and `b` supported by the minipage environment
the \pkg{subcaption} package v1.2 adds the allowed values `T` and `B`
- and this key also allows the values `auto`, `Auto` and empty.
+ and this key also allows the values `auto`, `Auto`, `auto-inverted`, `Auto-inverted` and empty.
While `t` and `b` align the top\slash bottom *baseline* of the content
`T` and `B` align the very top\slash bottom of the content.
@@ -720,8 +715,18 @@ The following options are unique for the `subobject` environment:
`auto` means `t` if the caption is displayed at the top
or `b` if the caption is displayed at the bottom
- so that the captions are aligned
- (same behavior like `subcaptionbox`).
+ so that the captions are aligned if the \emph{captions} have the same height.
+
+ `auto-inverted` means `b` if the caption is displayed at the top
+ or `t` if the caption is displayed at the bottom
+ so that the captions are aligned if the \emph{contents} have the same height
+ (although the height of the top most row does not count in this regard so `auto-inverted` is also good for graphics with different heights).
+
+ `Auto` and `Auto-inverted` behave like their lower case versions but use `T`/`B` instead of `t`/`b`.
+
+ If content and captions have different heights `auto-inverted` gives good results for `\includegraphicsubobject`.
+ For tables `subcaptionbox` is required to align the caption (but note the limitations regarding verbatim content).
+ If `subcaptionbox` does not work for you you can try `subpage outer pos = c` or giving the shorter caption the same height with `\\~` and then using `subpage outer pos = auto`.
If a subobject has neither caption nor label `auto` may not work as expected.
Instead `Auto` can be used which is based on `T` and `B` instead of `t` and `b`.
@@ -729,7 +734,8 @@ The following options are unique for the `subobject` environment:
Empty is equivalent to `c`.
- Invalid values are silently ignored and are equivalent to `c`.
+ Except for the values which are added by this package (e.g.\ `auto` and `auto-inverted`)
+ all other values are passed through to the `subfigure`/`subtable` environment which silently ignores invalid values.
\keydoc[initial value=empty]{subpage height = <dimen>}{storing key}
@@ -787,17 +793,26 @@ Additionally there are the following unique options:
a possibly leading path is stripped (everything before and including the last slash in `<filename>`).
This is initially false because I am assuming that in most cases where the path should not be displayed `\graphicspath{{path/}}` would be used.
\keydoc[initial value=`true`, default value=`true`]{auto label =? true | false}{boolean key}
+\keylinktarget{/object/graphic auto label}
If no `label` is given the file name is used as label.
This option is intended to be used on a global level but works in the optional argument of this command as well.
\keydoc[initial value=`false`, default value=`true`]{auto label strip path =? true | false}{boolean key}
If `auto label` is true and the file name is used as label
a possibly leading path is stripped (everything before and including the last slash in `<filename>`).
This is initially false because I am assuming that in most cases where the filename without path is unique `\graphicspath{{path/}}` would be used.
+\keydoc[initial value=`<empty>`]{auto label prefix = <prefix>}{storing key}
+\keylinktarget{/object/graphic auto label prefix}
+ If `auto label` is true and the file name is used as label
+ prepend `<prefix>` to the label.
\keydoc[initial value=`true`, default value=`true`]{warn env =? true | false}{boolean key}
Give a warning if `env` is not empty.
\keydoc[initial value=`true`, default value=`true`]{no env =? true | false}{boolean key}
Reset `env` to an empty value.
This happens after evaluating `warn env`.
+\keydoc[initial value=`<empty>`]{before graphic = <code>}{storing key}
+ Arbitrary \TeX\ code to be inserted before the `\includegraphics`.
+\keydoc[initial value=`<empty>`]{after graphic = <code>}{storing key}
+ Arbitrary \TeX\ code to be inserted after the `\includegraphics`.
\endkeydoc
You may not use this command inside of an `*object` environment.
@@ -821,6 +836,22 @@ Otherwise you will get a \errormessage{subobject environment may not be used out
See also \cmd{\includegraphicobject}.
+\subsubsection{`\splitobject` command}
+\label{splitobject-command}
+\DescribeMacro{\splitobject}
+`\splitobject`
+
+This can be used inside of an `object` environment which is too big to fit on one page.
+It splits an object so that it can be broken across pages.
+This command must be used directly inside of the object,
+it cannot be used inside of subgroups/environments inside of the object.
+It uses the `\ContinuedFloat` command defined by the \pkg{caption} package.
+See the example in \cref{split-object-example}.
+
+The `label` is placed on the first part of the object.
+If you want to specify the second part of the object you can use the `\label{<second-label>}` command after `\splitobject`.
+
+
\subsubsection{Setting options globally}
\label{setting-options-globally}
@@ -871,6 +902,7 @@ Alternatively, you can use the optional `<style>` argument.
This section explains how to define a new object `<style>` in the sense of \cref{styles}.
It is *not* about how to define a new `<floatstyle>` which can be used as value for the `float style` key.
+Examples are given in \cref{new-object-style-tikzobject} and \cref{exp:new-object-type}.
\DescribeMacro{\NewObjectStyle}
`\NewObjectStyle{<style>}{<options>}`
@@ -904,6 +936,11 @@ The \pkg{float} package (which is automatically loaded by this package) defines
Alternatively you can specify the float style using the `float style` key in the `<options>` of `\NewObjectStyle`.
\end{itemize}
+\DescribeMacro{\crefname}
+\DescribeMacro{\Crefname}
+If you are using the \pkg{cleveref} package (which I recommend you do) you also need to tell it how to reference the new float type with `\crefname{<type>}{<singular>}{<plural>}`.
+If you want an abbreviation in the middle of a sentence but the full word at the beginning of the sentence you specify the beginning of the sentence with `\Crefname` and the middle of the sentence with `\crefname`.
+
`\NewObjectStyle` automatically defines the corresponding environment needed for `subobject` if possible, i.e.\ if the \pkg{caption} package is new enough.
If the \pkg{caption} package is older than August~30, 2020 and you want to use subobjects you need to define the subtype manually by putting the following line *before* loading this package \autocite{texexchange_subtype_workaround}:
\begin{examplecode}
@@ -968,6 +1005,14 @@ which take one argument, \TeX\ code which is executed at a later point in time.
runs `<code>` every time in \cmd{\includegraphicobject} and \cmd{\includegraphicsubobject}.
This hook is after the object\slash subobject hook but before any options are processed.
+\DescribeMacro{\AtEndObject}
+`\AtEndObject{<code>}`
+ runs `<code>` every time at the end of an \env{object} environment
+ (including \env{figureobject}, \env{tableobject} and \cmd{\includegraphicobject}).
+ This hook is after a potential `env` has been closed but before the caption and label are processed.
+ (Yes, caption and label are always processed in `\end` even if the caption is displayed above the float.
+ The \pkg{float} package is responsible for putting the caption where it belongs.)
+
\subsection{Initialization}
\label{initialization}
@@ -986,7 +1031,7 @@ otherwise this package cannot help you.
Unless this package is loaded with the \pkgoptn{nographic} option
it loads the \pkg{graphicx} package in order to include graphics.
-It also guarantees that the paper size of the generated pdf matches \LaTeX' point of view (instead of depending on the system settings).
+This also guarantees that the paper size of the generated pdf matches \LaTeX' point of view (instead of depending on the system settings).~\autocite{texexchange_papersize}
Unless this package is loaded with the \pkgoptn{noarray} option
it loads the \pkg{array} package which defines additional column specification features like `>{<prefix>}`, `<{<suffix>}` and `!{<addcolsep>}`
@@ -1013,7 +1058,7 @@ The keys with a~\radioon\ are active by default and the keys with a~\radiooff\ a
\pkgoptndoc*{graphicx} use the \pkg{graphicx} package as backend for \cmd{\includegraphicobject}.
\pkgoptndoc{graphbox} use the \pkg{graphbox} package as backend for \cmd{\includegraphicobject}.
\pkgoptndoc{nographic} do not load \pkg{graphicx} or \pkg{graphbox}.
- If you use this option \cmd{\includegraphicobject} and \cmd{\includegraphicsubobject} are not defined.
+ If you use this option the commands \cmd{\includegraphicobject} and \cmd{\includegraphicsubobject} are not defined.
Warning: Without driver specific packages like \pkg{graphicx}, \pkg{geometry} or \pkg{hyperref} the paper size of the resulting pdf depends on the system settings, independent of what you set in \LaTeX. \autocite{texexchange_papersize}
@@ -1026,6 +1071,7 @@ The keys with a~\radioon\ are active by default and the keys with a~\radiooff\ a
\pkgoptndoc{nobooktabs} do *not* load the \pkg{booktabs} package.
Please note that the `table head` key initially relies on the booktabs package.
If you want to use it with this package option you need to redefine it with `table head style`.
+ Please read sections 1 and~2 of the \pkg{booktabs} documentation~\autocite{booktabs} before deciding against \pkg{booktabs}.
\pkgoptndoc{longtable} load the \pkg{longtable} package.
There is no difference between using this package option or a separate `\usepackage{longtable}`.
@@ -1034,7 +1080,7 @@ The keys with a~\radioon\ are active by default and the keys with a~\radiooff\ a
\pkgoptndoc{allowstandardfloats} do not redefine the \env{table} and `figure` environments.
Without this option they are redefined to issue a warning if they are used directly.
This warning should not influence their usual behavior.
- Instead of \env{table}\slash `figure` you should use \env{tableobject}\slash \env{figureobject} or \cmd{\includegraphicobject},
+ Instead of \env{table}\slash `figure` you should use \env{tableobject}\slash \env{figureobject} or the command \cmd{\includegraphicobject},
otherwise this package cannot help you.
\endpkgoptndoc
diff --git a/macros/latex/contrib/easyfloats/doc/content/s4_installation.tex b/macros/latex/contrib/easyfloats/doc/content/s4_installation.tex
new file mode 100644
index 0000000000..d53e72945b
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/content/s4_installation.tex
@@ -0,0 +1,16 @@
+% !TeX root = ../easyfloats.tex
+
+\section{Installation}
+\label{installation}
+
+This package is contained in \TeX~Live (latex-extra) and MiK\TeX.
+Therefore it is probably already installed on your system if you have a full \LaTeX\ installation.
+In case it is not you can install it
+on Arch-Linux with \formatcode{pacman -S texlive-latexextra}
+or on Debian with \formatcode{apt install texlive-latex-extra}.
+
+If your \TeX\ distribution is old and you want to use the newest version of this package
+download the sty-file from \url{https://gitlab.com/erzo/latex-easyfloats/-/blob/master/easyfloats.sty?ref_type=heads}
+and put it next to your main document.
+(Or, if you care about readability of the source code, download the dtx-file instead and change it's extension to sty.
+ The dtx-file contains indentations and more comments and is therefore easier to read for humans but slower to parse for \TeX.)
diff --git a/macros/latex/contrib/easyfloats/doc/content/bug-reports-and-contributions.tex b/macros/latex/contrib/easyfloats/doc/content/s5_bug-reports-and-contributions.tex
index ccfb7dce9a..ccfb7dce9a 100644
--- a/macros/latex/contrib/easyfloats/doc/content/bug-reports-and-contributions.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/s5_bug-reports-and-contributions.tex
diff --git a/macros/latex/contrib/easyfloats/doc/content/s6_changelog.tex b/macros/latex/contrib/easyfloats/doc/content/s6_changelog.tex
new file mode 100644
index 0000000000..d8285591a9
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/content/s6_changelog.tex
@@ -0,0 +1,88 @@
+% !TeX root = ../easyfloats.tex
+
+\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
+
+\section{Change log}
+The Gitlab symbols are links to the corresponding commit/tag on Gitlab.
+
+\begin{changelog}
+\changesinversion{v1.1.0}
+
+New features:
+- `placement = I`
+ \commit 05d13be6b7a6c79eb6fc2c7625372a8068d6dab9
+- `\splitobject`
+ \commit 19df2f6ba1565b7b8d1685410937c6d3cd7d22a8
+- `subpage outer pos = auto-inverted|Auto-inverted`
+ \commit 79ccf8d6b9e66f4629059fab4b93ff32f49ddfba
+- `auto label prefix`
+ \commit 0e59759ba22e26a081f5c943efdab4325593896e
+- `\AtEndObject`
+ \commit 2a38c33717406d620eb79b51f35873e50acd220c
+
+Bugfixes:
+- close all groups which `\includegraphicobject` opens
+ \commit 52783c7ca6a7ed89f4c2610e18996c5737a81274
+- don't indent subobjects on 2nd/3rd/xth line
+ \commit 1793809c2430b1c35c5b51b5bdd5ecdc23202075
+
+Documentation additions:
+- new example: custom options, \cref{custom-options}
+ \commit d6a2818d0405a5dd8e5fd581a2ae9f7588289064
+- new example: \pkg{varioref}, \cref{vref}
+ \commit f6754fe70e90aa81c201ec58fe31bf416a47efa9
+- new example: subfigures, \cref{exp:subfigures}
+ \commit ce6e49151630f74815da161e1df718092dfce9b9
+- new example: how to create new float type, \cref{exp:new-object-type}
+ \commit 73942fff3a4c3cf385c300e25efc0275083b68f5
+- new example: how to circumvent subcaptionbox limitations, \cref{exp:subcaptionbox-limitations}
+ \commit 96ae47cbab2d1d3185f2acb8ae9ca91f012d8e5e
+- added more background information to the first example
+ \commit 573f5116795fa9e2211da54ed909a04055b8ccc2
+- how to achieve a different graphics width for subfigures
+ \commit b2d1d65696675056fa35aaf8a83827b99fa2d7f3
+- revised subobjects example
+ \commit b5d368f11141e7c35cded3c10be8836d58073012
+- added note which LaTeX version has been used for testing
+ \commit d1d412bf29f3f30229c4c3b6bab38865bf39421f
+- added more info to examples
+ \commit b3b2de787075ef87da431f91c5a6f0dfb7eee8f1
+- mention TikZ library perspective
+ \commit 7b7dcda1656af9d5467e5d179ba367066890d51c
+- `\crefname`
+ \commit 9b6c609349235bf5e0779beb1eceea5f9067a7cb
+- `\Crefname`
+ \commit e0f7c551313e606e94b8b969386fb197f90a5683
+- show texdoc command to open the corresponding document in \cref{references}
+ \commit 193e5bf28b9d5fb747a74f9c049698fdabfadb27
+
+Documentation updates:
+- updated section regarding the installation
+ \commit 463f9c01ce17d45e64fe0f028216b1cace7a7ab5
+- `\floatplacement{figure}{H}` works nowadays
+ \commit 5a76cc9cccec893ccab651bcc3f263906d237120
+
+Documentation fixes:
+- fixed wrong example, \cref{new-object-style-tikzobject}
+ \commit bd9c60e89b8d2bf4b4c80e3d855261e1a53e9624
+- added initial value of `table break text` to documentation
+ \commit 4e9f3eb8e843e9826111882d1c30096652f36c40
+- table break text is an executed key, not a storing key
+ \commit c0eb27b32d1bae315a1d8c921fba1a0233411f8e
+- fixed typos
+ \commit 63d9bdcf40487a61e666045f449ff5cd8daeedd6
+ \commit 1b22b422b8a9b816f8ce67050b28e3ccd9121260
+- cleveref noabbrev: reworded to make it a neutral statement
+ \commit 556fb4888a52b5b53885a8e353d29fc5d3e152ab
+- show correct tilde symbols
+ \commit b4ba76f1d5144c6d9c4002abcd2640a1077259d7
+- updated comment on \pkg{lmodern}
+ \commit 6d62a4b0768bc16df1deeccb4c2423fff7528459
+- set label in first two examples instead of suppressing the warning
+ \commit 5b84ceed5afba69081569a460b726091ebd28fae
+- added prefixes to labels in examples
+ \commit 54a1459d8c73acaf24464411341197a914198a5f
+
+\changesinversion{v1.0.0}
+The first release.
+\end{changelog}
diff --git a/macros/latex/contrib/easyfloats/doc/content/license.tex b/macros/latex/contrib/easyfloats/doc/content/s7_license.tex
index 5babf2b965..5babf2b965 100644
--- a/macros/latex/contrib/easyfloats/doc/content/license.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/s7_license.tex
diff --git a/macros/latex/contrib/easyfloats/doc/content/motivation.tex b/macros/latex/contrib/easyfloats/doc/content/x1_motivation.tex
index 8de941b839..551defd66d 100644
--- a/macros/latex/contrib/easyfloats/doc/content/motivation.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/x1_motivation.tex
@@ -96,7 +96,6 @@ Inserting a graphic without using this package requires 6 lines of code (\pkg{gr
`\caption` can be used inside of a floating environment only.
If you need a caption for a non-floating object you can either use `\captionof{<type>}{<caption>}` defined by the \pkg{capt-of} or \pkg{caption} package
or use a floating environment with the placement `H` defined by the \pkg{float} package.
- Although the placement can usually be set globally with `\floatplacement` that does *not* work with `H`.
\item[Line 5]
defines a label.
diff --git a/macros/latex/contrib/easyfloats/doc/content/used-packages.tex b/macros/latex/contrib/easyfloats/doc/content/x2_used-packages.tex
index 90efa04688..fe17ca3071 100644
--- a/macros/latex/contrib/easyfloats/doc/content/used-packages.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/x2_used-packages.tex
@@ -3,7 +3,10 @@
\section{Used packages}
\label{used-packages}
-This package uses the following packages (but depending on the package options it may load more or less packages, see \cref{package-options}):
+This section lists the packages which are loaded by this package in order to provide it's functionality.
+This list may be interesting for further customization or a deeper understanding how this package works.
+This list does *not* list all packages which are loaded by default, other packages which may be useful when dealing with floats are listed in \cref{other-packages}.
+
\pkgdoc{float}
for `placement=H` and `float style`.
It also gives you the possibility to define new float types.
@@ -17,12 +20,12 @@ This package uses the following packages (but depending on the package options i
\pkgdoc{subcaption}
for \hyperref[subobject-environment]{subobjects}
\pkgdoc{graphicx}/\pkgdoc{graphbox}
- for inserting graphics
- (see \cmd{\includegraphicobject})
+ for inserting graphics with \cmd{\includegraphicobject} %or \cmd{\includegraphicsubobject}
+ (see package options \pkgoptn{graphicx}, \pkgoptn{graphbox} and \pkgoptn{nographic})
\pkgdoc{pgfkeys}
for parsing key=value lists
-\pkgdoc{etoolbox}
- is a collection of small helpers for programming.
+\pkgdoc{etoolbox},
+ a collection of small helpers for programming
\pkgdoc{environ}
to define environments which save their content in a macro.
I am using this for the `subcaptionbox` backend of the \env{subobject} environment.
diff --git a/macros/latex/contrib/easyfloats/doc/content/other-packages.tex b/macros/latex/contrib/easyfloats/doc/content/x3_other-packages.tex
index 609e5fb33b..7fa336e620 100644
--- a/macros/latex/contrib/easyfloats/doc/content/other-packages.tex
+++ b/macros/latex/contrib/easyfloats/doc/content/x3_other-packages.tex
@@ -3,7 +3,8 @@
\section{Other packages}
\label{other-packages}
-Other useful packages for dealing with figures or tables:
+This section lists other packages which may be useful in combination with this package.
+
\pkgdoc{placeins}
When loaded with the `section` package option it prevents floats from floating to another section.
It provides the `\FloatBarrier` command which prevents floats from floating past a certain point.
@@ -11,7 +12,9 @@ Other useful packages for dealing with figures or tables:
ensures that floats are not placed before their inclusion in the source code.
(With the placement=t it is possible that they are placed on the top of the same page.)
\pkgdoc{booktabs}
- for formatting tables
+ for formatting tables.
+ This is loaded by default unless you use the package option \pkgoptn{nobooktabs}.
+ Please read sections 1 and~2 of the \pkg{booktabs} documentation~\autocite{booktabs}.
\pkgdoc{xcolor}
When loaded with the package option \pkgoptn{table} it provides commands for coloring tables.
@@ -21,7 +24,8 @@ Other useful packages for dealing with figures or tables:
\pkgdoc{array}
extends the column specification syntax and defines the `\newcolumntype` command to define custom column types.
- Also changes the approach how rules are drawn but that is irrelevant if you apply \pkg{booktabs}' guidelines~\autocite[section~2 \sectionname{The layout of formal tables}]{booktabs}.
+ It also changes the approach how rules are drawn but that is irrelevant if you apply \pkg{booktabs}' guidelines~\autocite[section~2 \sectionname{The layout of formal tables}]{booktabs}.
+ This is loaded by default unless you use the package option \pkgoptn{noarray}.
\pkgdoc{siunitx}
for typesetting numbers and units.
It provides the `S` column to align numbers at their decimal separator.
@@ -30,21 +34,29 @@ Other useful packages for dealing with figures or tables:
Unlike `tabular*` the space goes into the columns, not between the columns.
\pkgdoc{longtable}
provides tables where a pagebreak is allowed,
- see \cref{longtable}
+ see \cref{longtable}.
+ This can be loaded automatically with the package option \pkgoptn{longtable}.
\pkgdoc{hyperref}
automatically creates links in the pdf document for example from references to floating objects.
+ By default links are set in a red box, you can disable the red box with the package option `hidelinks`.
With the package option `pdfusetitle` it automatically sets the pdf title and author based on `\title` and `\author`.
+ \pkg{hyperref} should usually be loaded last.
+\pkgdoc{varioref}
+ automatically inserts a page reference (e.g. \enquote{on the following page} or \enquote{on page~42}) after the reference if the reference is on a different page than the label when using `\vref{<label>}`/`\Vref{<label>}`, see the example in \cref{vref}.
\pkgdoc{cleveref}
- to reference an object.
- In contrast to the standard `\ref` and `\pageref`, `\cref` and `\cpageref` automatically detect the type of object and can handle multiple references at once.
- With the `nameinlink` package option the object type in front of the number becomes part of the link created by hyperref (i.e.\ the link is \enquote{figure 1} instead of \enquote{1} and \enquote{figure } being before the link.)
- With the `noabbrev` option references are not abbreviated (by default references are abbreviated but only the lower case variants, not the upper case variants which seems inconsistent to me. Abbreviating at the beginning of a sentence is considered bad style~\autocite{texexchange_abbrev_bad_style}.)
+ automatically inserts the type of reference (e.g. \enquote{figure} or \enquote{section}) in front of the reference when using `\cref{<label>}`/`\Cref{<label>}` (defined by \pkg{cleveref}) or `\vref{<label>}`/`\Vref{<label>}` (defined by \pkg{varioref}).
+ With the `nameinlink` package option the type in front of the number becomes part of the link created by hyperref.
+ By default `\cref`/`\vref` (to be used inside of a sentence) use abbreviations but `\Cref`/`\Vref` (to be used at the beginning of a sentence) do not because abbreviating at the beginning of a sentence is considered bad style~\autocite{texexchange_abbrev_bad_style}.
+ Abbreviations can be disabled with the `noabbrev` option.
+ \pkg{cleveref} must be loaded last, even after \pkg{hyperref}.
+ See the example in \cref{vref}.
\pkgdoc{biblatex}
If you input graphics you need to specify the source.
Biblatex creates an entire bibliography for you.
\pkgdoc{tikz}
is an amazingly powerful package to create your own graphics in \LaTeX.
\pkgdoc{newfloat} provides a more modern command to define new floating environments than the \pkg{float} package.
+\pkgdoc{minted} provides syntax highlighting for source code.
\endpkgdoc
diff --git a/macros/latex/contrib/easyfloats/doc/easyfloats.bib b/macros/latex/contrib/easyfloats/doc/easyfloats.bib
index 4a850db306..9c0ff78d5e 100644
--- a/macros/latex/contrib/easyfloats/doc/easyfloats.bib
+++ b/macros/latex/contrib/easyfloats/doc/easyfloats.bib
@@ -11,6 +11,7 @@
author = {Victor Eijkhout},
year = {2007},
url = {https://ctan.org/pkg/texbytopic},
+ texdoc = {texbytopic},
}
@manual{latex2e,
@@ -18,6 +19,7 @@
url = {https://ctan.org/pkg/latex2e-help-texinfo},
date = {2018-10},
language = {english},
+ texdoc = {latex2e},
}
@manual{clsguide,
@@ -25,6 +27,7 @@
author = {The \LaTeX3 Project},
url = {https://ctan.org/pkg/clsguide},
date = {2006-02-15},
+ texdoc = {clsguide},
}
@manual{source2e,
@@ -39,6 +42,7 @@
url = {https://ctan.org/pkg/source2e},
date = {2020-10-01},
language = {english},
+ texdoc = {source2e},
}
@manual{l2tabu,
@@ -48,6 +52,15 @@
date = {2016-02-03},
language = {german},
addendum = {An English translation of an older version is available at \url{https://ctan.org/pkg/l2tabu-english}},
+ texdoc = {l2tabu},
+}
+
+@manual{usrguide,
+ title = {\LaTeX\ for authors},
+ author = {\LaTeX\ Project Team},
+ date = {2023-05-23},
+ url = {https://ctan.org/pkg/usrguide},
+ texdoc = {usrguide},
}
% ------- Joseph Wright's blog -------
@@ -98,6 +111,7 @@
author = {Frank Mittelbach and David Carlisle},
date = {2020-10-01},
url = {https://ctan.org/pkg/array},
+ texdoc = {array},
}
@manual{booktabs,
@@ -105,6 +119,7 @@
author = {Simon Fear},
date = {2016-04-29},
url = {https://ctan.org/pkg/booktabs},
+ texdoc = {booktabs},
}
@manual{tikz,
@@ -112,6 +127,7 @@
author = {Till Tantau},
date = {2019-05-09},
url = {https://ctan.org/pkg/pgf},
+ texdoc = {tikz},
}
@manual{graphicx,
@@ -119,6 +135,7 @@
author = {D. P. Carlisle},
date = {2017-06-01},
url = {https://ctan.org/pkg/graphicx},
+ texdoc = {graphicx},
}
@manual{float,
@@ -126,16 +143,19 @@
author = {Anselm Lingnau},
date = {2001-11-08},
url = {https://ctan.org/pkg/float},
+ texdoc = {float},
}
@manual{caption,
title = {Customizing captions of floating environments},
author = {Axel Sommerfeldt},
date = {2020-09-12},
url = {https://ctan.org/pkg/caption},
+ texdoc = {caption},
}
@manual{subcaption,
title = {The subcaption package},
author = {Axel Sommerfeldt},
date = {2020-08-24},
url = {https://ctan.org/pkg/subcaption},
+ texdoc = {subcaption},
}
diff --git a/macros/latex/contrib/easyfloats/doc/easyfloats.pdf b/macros/latex/contrib/easyfloats/doc/easyfloats.pdf
index 56ea0de9aa..d586de81da 100644
--- a/macros/latex/contrib/easyfloats/doc/easyfloats.pdf
+++ b/macros/latex/contrib/easyfloats/doc/easyfloats.pdf
Binary files differ
diff --git a/macros/latex/contrib/easyfloats/doc/easyfloats.tex b/macros/latex/contrib/easyfloats/doc/easyfloats.tex
index 6e77baccc4..f4bc507aeb 100644
--- a/macros/latex/contrib/easyfloats/doc/easyfloats.tex
+++ b/macros/latex/contrib/easyfloats/doc/easyfloats.tex
@@ -6,12 +6,12 @@
\newif\ifunderlinelinks
\underlinelinkstrue
-\documentclass[a4paper]{ltxdoc}
+\documentclass[a4paper]{article}
-\usepackage{dtxdescribe}
-\usepackage{parskip}
+\input{preamble/geometry}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
\usepackage{csquotes}
-
\input{preamble/bibliography}
\input{preamble/macros}
\input{preamble/examplecode}
@@ -20,9 +20,15 @@
\input{preamble/keydoc}
\input{preamble/description-links}
\input{preamble/pdfstring}
+\input{preamble/todo}
+\input{preamble/changelog}
\usepackage[hidelinks, pdfusetitle]{hyperref}
\usepackage[nameinlink, noabbrev]{cleveref}
+\usepackage{microtype}
+
+\usepackage{silence}
+\WarningFilter{latex}{Marginpar on page 38 moved} % caused by \DescribeMacro{\Crefname}
\newlicense{lppl}{\LaTeX\ Project Public License}{https://www.latex-project.org/lppl/}
\newlicense{wtfpl}{WTFPL}{http://www.wtfpl.net/}
@@ -31,30 +37,34 @@
\title{An easier interface to insert figures, tables and other objects in \LaTeX}
\author{Erik Zöllner}
-\date{December~20, 2020}
+\date{October~28, 2024}
\package{\jobname}
-\version{v1.0.0}
+\version{v1.1.0}
\newcommand{\myinput}[1]{\input{#1}\unskip}
\input{links}
\begin{document}
\myinput{undescribed-keywords}
- \myinput{content/titlepage}
- \myinput{content/examples}
- \myinput{content/names}
- \myinput{content/documentation}
- \myinput{content/installation}
- \myinput{content/bug-reports-and-contributions}
- \myinput{content/license}
+ \myinput{content/f1_titlepage}
+
+ \myinput{content/s1_examples}
+ \myinput{content/s2_names}
+ \myinput{content/s3_documentation}
+
+ \myinput{content/s4_installation}\notocspace
+ \myinput{content/s5_bug-reports-and-contributions}\notocspace
+ \myinput{content/s6_changelog}\notocspace
+ \myinput{content/s7_license}
\appendix
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
- \myinput{content/motivation}
- \myinput{content/used-packages}
- \myinput{content/other-packages}
+ \myinput{content/x1_motivation}\notocspace
+ \myinput{content/x2_used-packages}\notocspace
+ \myinput{content/x3_other-packages}\notocspace
\section{\refname}
+ \label{references}
Works cited in this documentation (ordered by appearance in this document,
if there are several versions on CTAN I am referring to the English pdf):
\printbibliography[heading=none]
diff --git a/macros/latex/contrib/easyfloats/doc/links.tex b/macros/latex/contrib/easyfloats/doc/links.tex
index d304bf308b..a38c77c4ed 100644
--- a/macros/latex/contrib/easyfloats/doc/links.tex
+++ b/macros/latex/contrib/easyfloats/doc/links.tex
@@ -1,3 +1,5 @@
+% !TeX root = easyfloats.tex
+
\newurllink{etoolbox}{https://ctan.org/pkg/etoolbox}
\newurllink{environ}{https://ctan.org/pkg/environ}
\newurllink{placeins}{https://ctan.org/pkg/placeins}
@@ -5,6 +7,7 @@
\newurllink{siunitx}{https://ctan.org/pkg/siunitx}
\newurllink{tabularx}{https://ctan.org/pkg/tabularx}
\newurllink{cleveref}{https://ctan.org/pkg/cleveref}
+\newurllink{varioref}{https://ctan.org/pkg/varioref}
\newurllink{biblatex}{https://ctan.org/pkg/biblatex}
\newlabellink{storing key}{key-types}
\newlabellink{executed key}{key-types}
@@ -16,6 +19,7 @@
\newurllink{graphics}{https://ctan.org/pkg/graphicx}
\newurllink{graphbox}{https://ctan.org/pkg/graphbox}
\newurllink{tikz}{https://www.ctan.org/pkg/pgf}
+\newurllink{minted}{https://ctan.org/pkg/minted}
\newurllink{array}{https://ctan.org/pkg/array}
\newurllink{booktabs}{https://ctan.org/pkg/booktabs}
\newurllink{xcolor}{https://ctan.org/pkg/xcolor}
diff --git a/macros/latex/contrib/easyfloats/doc/my_biblatex_data_model.dbx b/macros/latex/contrib/easyfloats/doc/my_biblatex_data_model.dbx
new file mode 100644
index 0000000000..34b68a7821
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/my_biblatex_data_model.dbx
@@ -0,0 +1,5 @@
+% default data model is included automatically
+% if undesired it would need to be cleared with
+% \ResetDatamodelEntrytypes \ResetDatamodelFields \ResetDatamodelEntryfields \ResetDatamodelConstraints
+
+\DeclareDatamodelFields[type=field, datatype=literal]{texdoc}
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/bibliography.tex b/macros/latex/contrib/easyfloats/doc/preamble/bibliography.tex
index ad24a2b445..139e4ae9fa 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/bibliography.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/bibliography.tex
@@ -8,6 +8,7 @@
\usepackage[%
sorting=none, % none=citation order
+ datamodel=my_biblatex_data_model,
]{biblatex}
\setcounter{biburllcpenalty}{8000}
@@ -33,3 +34,21 @@
\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\multicitedelim}
{\usebibmacro{postnote}}
+
+
+\DeclareFieldFormat{texdoc}{\texttt{texdoc #1}}
+
+\renewbibmacro*{doi+eprint+url}{%
+ \printfield{texdoc}%
+ \newunit\newblock
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:url}
+ {\usebibmacro{url+urldate}}
+ {}}
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/changelog.tex b/macros/latex/contrib/easyfloats/doc/preamble/changelog.tex
new file mode 100644
index 0000000000..05d994ea38
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/preamble/changelog.tex
@@ -0,0 +1,67 @@
+% !TeX root = ../easyfloats.tex
+
+\usepackage{fontawesome}
+\usepackage{amsmath}
+
+
+% ------- version -------
+
+\newcommand\changesinversion[1]{\CheckVersion#1\relax\subsection[#1]{\FormatTag{#1}}}
+
+\newcommand\GitlabUrl{https://gitlab.com/erzo/latex-easyfloats/-}
+\newcommand\FormatTag[1]{#1\href{\GitlabUrl/tags/#1}{\,$^\text{\normalfont\faGitlab}$}}
+\def\CheckVersion#1#2\relax{%
+ \ifx #1v%
+ % ok
+ \else
+ \PackageWarning{change log}{Version number #1#2 is missing the v in front}{}%
+ \fi
+}
+
+
+% ------- changelog environment -------
+
+\ExplSyntaxOn
+\bool_new:N \l_changelog_in_list_bool
+
+\cs_new:Nn \changelog_item: {
+ \bool_if:NF \l_changelog_in_list_bool {
+ \bool_set_true:N \l_changelog_in_list_bool
+ \begin{itemize}
+ }
+ \item
+}
+
+\cs_new:Nn \changelog_end: {
+ \bool_if:NT \l_changelog_in_list_bool {
+ \end{itemize}
+ \bool_set_false:N \l_changelog_in_list_bool
+ }
+}
+
+\cctab_begin:N \c_code_cctab
+\char_set_catcode_active:N \^^M%
+\newenvironment{changelog}{%
+ \catcode`\^^M=\active%
+ \def^^M##1{%
+ \ifx ##1-%
+ \exp_after:wN \use_i:nn%
+ \else
+ \exp_after:wN \use_ii:nn%
+ \fi%
+ {\changelog_item:}%
+ {\ifx ##1^^M%
+ \exp_after:wN \use_i:nn%
+ \else
+ \exp_after:wN \use_ii:nn%
+ \fi%
+ {\changelog_end:}%
+ {~##1}%
+ }
+ }%
+ \cs_new:Npn\commit##1^^M{\unskip\href{\GitlabUrl/commit/##1}{\,$^\text{\faGitlab}$}^^M}%
+}{%
+ \changelog_end:
+}%
+\cctab_end:%
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/description-links.tex b/macros/latex/contrib/easyfloats/doc/preamble/description-links.tex
index 6eac79bc1c..f7969da6d3 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/description-links.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/description-links.tex
@@ -8,6 +8,7 @@
% Links all \cmd, \env and \handler to the corresponding \Describe*.
% Links all \pkg to a reference defined with \newurllink (see link.tex)
+% Links all \tikzlibrary to the TikZ manual.
% Defines \pkgoptndoc to document package otions and links all \pkgoptn to it.
%
% \pkgoptndoc{<packageoption>}
@@ -41,14 +42,17 @@
\newcommand{\Cmd}[1]{\expandafter{\detokenize{#1}\unskip}}
\newcommand{\CmdBg}{\formatcode}
\let\DlOriginalDescribeMacro=\DescribeMacro
+\newcommand\MacroLinkTarget[1]{%
+ \NewKeyword[\unexpanded]{cs}{\DlCmdLabelName{#1}}{\CmdBg}{\Cmd}{}%
+ \AbbrevKeyword[\unexpanded]{}{\DlCmdLabelName{#1}} {cs}{\DlCmdLabelName{#1}}%
+ \ignorespaces
+}
\renewcommand{\DescribeMacro}[1]{%
\begingroup
\def\cmd##1{\formatcodeinmarginpar{\Cmd{##1}}}%
\DlOriginalDescribeMacro{#1}%
\endgroup
- \NewKeyword[\unexpanded]{cs}{\DlCmdLabelName{#1}}{\CmdBg}{\Cmd}{}%
- \AbbrevKeyword[\unexpanded]{}{\DlCmdLabelName{#1}} {cs}{\DlCmdLabelName{#1}}%
- \ignorespaces
+ \MacroLinkTarget{#1}%
}
\newcommand{\NoDescribeMacro}[1]{%
\NoKeyword[\unexpanded]{cs}{\DlCmdLabelName{#1}}{\CmdBg}{\Cmd}%
@@ -99,7 +103,7 @@
}
-% --------- \NoDescribeKey, \NoDescribeVal ----------
+% --------- \NoDescribeKey, \NoDescribeVal, \valdoc ----------
\newcommand{\NoDescribeKey}[1]{%
\NoKeyword{key}{#1}{\keydoc@key@bg}{\keydoc@original@key}%
@@ -110,6 +114,9 @@
\NoKeyword{}{#1}{\formatcode}{\val}%
\ignorespaces
}
+\newcommand{\valdoc}[1]{%
+ \NewKeyword{}{#1}{\formatcode}{\val}{#1}%
+}
% --------- \DescribeMeta ----------
@@ -199,11 +206,14 @@
\else\ifx \pkgdoc@nexttoken \pkgdoc
\let\pkgdoc@lookahead@do=\relax
\let\pkgdoc@lookahead@gobble=\@empty
+ \else\ifx \pkgdoc@nexttoken ,%
+ \let\pkgdoc@lookahead@do=\relax
+ \let\pkgdoc@lookahead@gobble=\@empty
\else
\pkgdoc@descriptionsep
\let\pkgdoc@lookahead@do=\relax
\let\pkgdoc@lookahead@gobble=\@empty
- \fi \fi \fi
+ \fi \fi \fi \fi
\expandafter \pkgdoc@lookahead@do \pkgdoc@lookahead@gobble
}
@@ -221,4 +231,11 @@
\ignorespaces
}
+
+% --------- \tikzlibrary ----------
+
+\let\DlOriginalTikzLibrary=\tikzlibrary
+\newcommand{\DlTikzLibraryBg}[1]{#1}
+\renewcommand{\tikzlibrary}[1]{\LinkKeyword{pkg}{tikz}\DlTikzLibraryBg\DlOriginalTikzLibrary{#1}}
+
\makeatother
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/examplecode.tex b/macros/latex/contrib/easyfloats/doc/preamble/examplecode.tex
index 79d3c7f424..5c96e1d736 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/examplecode.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/examplecode.tex
@@ -28,6 +28,14 @@
% \ExamplecodeLinenumbers
% enables line numbers
%
+% \ExamplecodeVerbDelimiter|
+% code between | is treated as verbatim
+% \ExamplecodeVerbDelimiterOff
+% no code is treated as verbatim
+%
+% \ExampleCodeEscapeInside{...}
+% can be used to set \ExamplecodeVerbDelimiter in the example code
+%
% \\ is redefined to cause a linebreak marked with \ExamplecodePostBreakText.
@@ -51,6 +59,7 @@
\colorlet{brace}{aligntab}
\colorlet{controlsequence}{aligntab}
\definecolor{comment}{RGB}{"40,"80,"80}
+\colorlet{verb}{black}
\definecolor{codebackground}{rgb}{0.9,0.9,1}
\colorlet{codeborder}{codebackground!50!black}
\colorlet{codelinkcolor}{white}
@@ -103,7 +112,19 @@
\newcommand{\ExamplecodeAllowLinebreakBeforeNext}{\@examplecode@allowlinebreakbeforenexttrue}
\newcommand{\ExamplecodeLinebreak}{\newline\ExamplecodePostBreakText}
-\newcommand{\ExamplecodeFormatCmd}[1]{{\leavevmode\color{controlsequence}\LinkUnformattedKeyword{cs}{\detokenize{#1}}{\string#1}}\ExamplecodeAllowLinebreakBeforeNext} % catcode 0/16
+\ExplSyntaxOn
+\newcommand{\ExamplecodeFormatCmd}[1]{
+ {
+ \leavevmode
+ \color{controlsequence}
+ % do not try to link macros in expl syntax
+ \tl_if_in:nnTF {#1}{\textunderscore}
+ {\string#1}
+ {\LinkUnformattedKeyword{cs}{\detokenize{#1}}{\string#1}}
+ }
+ \ExamplecodeAllowLinebreakBeforeNext
+} % catcode 0/16
+\ExplSyntaxOff
\newcommand{\ExamplecodeFormatEnv}[1]{\LinkUnformattedKeyword{env}{#1}{#1}}
\newcommand{\ExamplecodeFormatPkg}[1]{\LinkUnformattedKeyword{pkg}{#1}{#1}}
@@ -167,15 +188,39 @@
\ExamplecodeAllowLinebreakAfter]
+\newcommand\ExampleCodeEscapeInside{\PackageError{examplecode}{\string\ExampleCodeEscapeInside\ should not be called outside of examplecode}{}}
+\newcommand{\ExamplecodeVerbDelimiter}[1]{%
+ \let\@examplecode@verb@delimiter=#1%
+}
+\newcommand{\ExamplecodeVerbDelimiterOff}{%
+ \let\@examplecode@verb@delimiter=\relax
+}
+\ExamplecodeVerbDelimiterOff
+
+\newcommand{\ExamplecodeFormatVerbDelimiter}[1]{\textcolor{brace}{#1}}
+\newcommand{\ExamplecodeFormatVerb}{\color{verb}}
+
+
% ---------- process ---------
\newif\ifExamplecodeInAlign
+\newcounter{@examplecode@grouplevel}
+\gdef\@examplecode@grouplevel@mathenter{-1}
\newcommand{\ExamplecodeProcessCmd}[1]{\ExamplecodePrint{\ExamplecodeFormatCmd{#1}}} % catcode 0/16
\newcommand{\ExamplecodeProcessEnv}[1]{\ExamplecodePrint{\ExamplecodeFormatEnv{#1}}}
\newcommand{\ExamplecodeProcessPkg}[1]{\ExamplecodePrint{\ExamplecodeFormatPkg{#1}}}
-\newcommand{\ExamplecodeProcessBeginGroup}[1]{\ExamplecodePrint{\ExamplecodeFormatBeginGroup{#1}}} % catcode 1
-\newcommand{\ExamplecodeProcessEndGroup}[1]{\ExamplecodePrint{\ExamplecodeFormatEndGroup{#1}}} % catcode 2
+\newcommand{\ExamplecodeProcessBeginGroup}[1]{%
+ \stepcounter{@examplecode@grouplevel}%
+ \ExamplecodePrint{\ExamplecodeFormatBeginGroup{#1}}%
+} % catcode 1
+\newcommand{\ExamplecodeProcessEndGroup}[1]{%
+ \ifnum \value{@examplecode@grouplevel} = \@examplecode@grouplevel@mathenter \relax
+ \@examplecode@math@end
+ \fi
+ \addtocounter{@examplecode@grouplevel}{-1}%
+ \ExamplecodePrint{\ExamplecodeFormatEndGroup{#1}}%
+} % catcode 2
\newcommand{\ExamplecodeProcessMathShift}[1]{\ExamplecodePrint{\ExamplecodeFormatMathShift{#1}}} % catcode 3
\newcommand{\ExamplecodeProcessBeginMath}{\ExamplecodePrint{\begingroup\ExamplecodeFormatMath}} % catcode 3
\newcommand{\ExamplecodeProcessEndMath}{\ExamplecodePrint{\endgroup}}
@@ -435,6 +480,7 @@
\parskip=0pt
\parindent=0pt\relax
\let\\=\ExamplecodeLinebreak
+ \setcounter{@examplecode@grouplevel}{0}%
\@examplecode@state@firstindent
\@examplecode@gobblefirsteol
}{%
@@ -548,10 +594,59 @@
\ExamplecodeAllowLinebreak
\@examplecode@allowlinebreakbeforenextfalse
\fi
- \expandafter \@examplecode@check@ii
+ \expandafter \@examplecode@check@i
\fi
}
+\newcommand{\@examplecode@check@i}{%
+ \ifx \@examplecode@nexttoken \ExampleCodeEscapeInside
+ \def\@examplecode@do##1##2{##2\@examplecode@loop}%
+ \expandafter \@gobble
+ \else
+ \expandafter \@firstofone
+ \fi
+ {\ifx \@examplecode@verb@delimiter \relax
+ \def\@examplecode@do{\@examplecode@check@ii}%
+ \expandafter \@gobble
+ \else
+ \expandafter \@firstofone
+ \fi
+ % I cannot nest the if statments because \@examplecode@nexttoken can be an if
+ {\ifx \@examplecode@nexttoken \@examplecode@verb@delimiter
+ \def\@examplecode@do{\@examplecode@handle@verb}%
+ \else
+ \def\@examplecode@do{\@examplecode@check@ii}%
+ \fi}}%
+ \@examplecode@do
+}
+\newcommand{\@examplecode@handle@verb}[1]{%
+ \ExamplecodeFormatVerbDelimiter{\string#1}%
+ \begingroup
+ \ExamplecodeFormatVerb
+ \@examplecode@handle@verb@loop
+}
+\newcommand{\@examplecode@handle@verb@loop}{%
+ \futurelet \@examplecode@nexttoken \@examplecode@handle@verb@check
+}
+\newcommand{\@examplecode@handle@verb@check}{%
+ \ifx \@examplecode@nexttoken \@examplecode@verb@delimiter
+ \def\@examplecode@do{\@examplecode@handle@verb@end}%
+ \else \ifx \@examplecode@nexttoken \bgroup
+ \def\@examplecode@do{\{\afterassignment\@examplecode@handle@verb@loop\let\@examplecode@trash=}%
+ \else \ifx \@examplecode@nexttoken \egroup
+ \def\@examplecode@do{\}\afterassignment\@examplecode@handle@verb@loop\let\@examplecode@trash=}%
+ \else
+ \def\@examplecode@do##1{\string##1\@examplecode@handle@verb@loop}%
+ \fi \fi \fi
+ \@examplecode@do
+}
+\newcommand{\@examplecode@handle@verb@end}[1]{%
+ \ExamplecodeFormatVerbDelimiter{\string#1}%
+ \endgroup
+ \@examplecode@loop
+}
+
+
\newcommand{\@examplecode@check@ii}{%
\ifcat \noexpand\@examplecode@nexttoken \relax
\def\@examplecode@do{\@examplecode@handle@cs}%
@@ -561,11 +656,46 @@
\@examplecode@do
}
\newcommand{\@examplecode@handle@cs}[1]{%
+ \ifx\ExplSyntaxOn#1
+ \@examplecode@explsyntaxon
+ \fi
+ \ifx\ExplSyntaxOff#1
+ \@examplecode@explsyntaxoff
+ \fi
\ExamplecodeSetCmd{#1}%
\@examplecode@state@normal
\ExamplecodeProcessCmd{#1}%
\@examplecode@loop
}
+\let \@examplecode@handle@cs@normal = \@examplecode@handle@cs
+
+\newcommand{\@examplecode@explsyntaxon}{%
+ \let \@examplecode@handle@cs = \@examplecode@handle@cs@expl
+}
+\newcommand{\@examplecode@explsyntaxoff}{%
+ \let \@examplecode@handle@cs = \@examplecode@handle@cs@normal
+}
+
+\newcommand{\@examplecode@handle@cs@expl}[1]{%
+ \def\@examplecode@tmp@csname{#1}%
+ \@examplecode@handle@cs@expl@loop
+}
+\newcommand{\@examplecode@handle@cs@expl@loop}{%
+ \futurelet \@examplecode@nexttoken \@examplecode@handle@cs@expl@check
+}
+\newcommand{\@examplecode@handle@cs@expl@check}{%
+ \ifx \@examplecode@nexttoken _%
+ \def\@examplecode@do##1{\appto\@examplecode@tmp@csname{\textunderscore}\@examplecode@handle@cs@expl@loop}%
+ \else\ifx \@examplecode@nexttoken :%
+ \def\@examplecode@do##1{\appto\@examplecode@tmp@csname{##1}\@examplecode@handle@cs@expl@loop}%
+ \else\ifcat \noexpand\@examplecode@nexttoken a%
+ \def\@examplecode@do##1{\appto\@examplecode@tmp@csname{##1}\@examplecode@handle@cs@expl@loop}%
+ \else
+ \def\@examplecode@do{\expandafter\@examplecode@handle@cs@normal\expandafter{\@examplecode@tmp@csname}}%
+ \fi\fi\fi
+ \@examplecode@do
+}
+
\newcommand{\ExamplecodeSetCmd}[1]{\edef\@examplecode@cs{\detokenize{#1}}}
\newcommand{\ExamplecodeNoCmd}{\def\@examplecode@cs{}}
\ExamplecodeNoCmd
@@ -705,12 +835,13 @@
\@examplecode@loop
}
\newcommand{\@examplecode@math@begin}{%
+ \xdef\@examplecode@grouplevel@mathenter{\the@examplecode@grouplevel}%
\@examplecode@state@normal
\begingroup
\let\@examplecode@handlemeta=\@examplecode@handlenormaltoken
\ExamplecodeProcessBeginMath
\let\@examplecode@math@begin=\relax
- \def\@examplecode@math@end{\def\@examplecode@math@end{\ExamplecodeProcessEndMath\endgroup}}%
+ \def\@examplecode@math@end{\def\@examplecode@math@end{\ExamplecodeProcessEndMath\endgroup\gdef\@examplecode@grouplevel@mathenter{-1}}}%
}
\newcommand{\@examplecode@handleparameter}[1]{%
@@ -775,4 +906,44 @@
\@examplecode@loop
}%
}%
+
+
+% ---------- input command ---------
+
+\begingroup\@examplecode@setcatcodes\gdef\@examplecode@magic@comment@prefix{% !}\gdef\@examplecode@empty@line{
+}\gdef\@examplecode@input@testmarkup{\input{preamble/testmarkup}
+}\endgroup
+
+\ExplSyntaxOn
+\newcommand\inputexamplecode[1]{%
+ \group_begin:
+ \@examplecode@setcatcodes
+ \ior_open:Nn \g_tmpa_ior {#1}
+ \tl_clear:N \l_file_contents_tl
+ \bool_set_false:N \l_tmpa_bool
+ \ior_map_inline:Nn \g_tmpa_ior {
+ \bool_if:NF \l_tmpa_bool {
+ \tl_set:Nx\l_tmpa_tl{\tl_range:nnn{##1}{1}{3}}
+ \tl_if_eq:NNTF \@examplecode@magic@comment@prefix \l_tmpa_tl {
+ % do nothing
+ }{\tl_if_eq:NNTF \@examplecode@empty@line \l_tmpa_tl {
+ % do nothing
+ }{\tl_if_eq:NNTF \@examplecode@input@testmarkup \l_tmpa_tl {
+ % do nothing
+ }{
+ \bool_set_true:N \l_tmpa_bool
+ }}}
+ }
+ \bool_if:NT \l_tmpa_bool {
+ \tl_put_right:Nn \l_file_contents_tl {##1}
+ }
+ }
+ \ior_close:N \g_tmpa_ior
+ \def\l_tmpa_tl{\begin{examplecode}\EolOther}
+ \expandafter \l_tmpa_tl \l_file_contents_tl
+ \end{examplecode}
+ \group_end:
+}
+\ExplSyntaxOff
+
\makeatother
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/geometry.tex b/macros/latex/contrib/easyfloats/doc/preamble/geometry.tex
new file mode 100644
index 0000000000..9a554db2f2
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/preamble/geometry.tex
@@ -0,0 +1,12 @@
+% !TeX root = ../easyfloats.tex
+
+\reversemarginpar
+\marginparpush=0pt
+
+% copied from ltxdoc.cls
+\setlength{\textwidth}{355pt}
+\addtolength\marginparwidth{30pt}
+\addtolength\oddsidemargin{20pt}
+\addtolength\evensidemargin{20pt}
+
+\usepackage{parskip}
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/keydoc.tex b/macros/latex/contrib/easyfloats/doc/preamble/keydoc.tex
index 3116266bef..ee63b52d4c 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/keydoc.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/keydoc.tex
@@ -602,7 +602,7 @@
\let\keydoc@lookahead@gobble=\@empty
\else
\ifkeydoc@isrelated
- \PackageError{keydoc}{expexcted another keydoc command after /}{}%
+ \PackageError{keydoc}{expected another keydoc command after /}{}%
\fi
\keydoc@printvalues
\keydoc@descriptionsep
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/macros.tex b/macros/latex/contrib/easyfloats/doc/preamble/macros.tex
index 2be2bc74cb..419cb804ec 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/macros.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/macros.tex
@@ -28,10 +28,18 @@
% \radiooff
% draws a deactivated radio button
%
-% \DescribeHandler[<class>]{<name>}
-% Typesets the handler name as a \marginpar.
-% The same like all other \Describe* macros defined by dtxdescribe
-% just for handlers.
+% \DescribeMacro{<name>}
+% \DescribeEnv{<name>}
+% \DescribeKey{<name>}
+% \DescribeHandler{<name>}
+% Prints the name in the margin, similar to the dtxdescribe package.
+% A link target and \ignorespaces are added in description-links.tex.
+%
+% \cmd{<name>}
+% To reference a command described with \DescribeMacro.
+%
+% \env{<name>}
+% To reference an environment described with \DescribeEnv.
%
% \handler{<name>}
% To reference a handler described with \DescribeHandler.
@@ -39,11 +47,20 @@
% \filename{<filename>}
% Typesets a file name in the pdf.
%
+% \pkg{<name>}
+% To reference a package.
+%
+% \tikzlibrary{<name>}
+% To reference a TikZ library.
+%
+% \meta{<name>}
+% Similar to the dtxdescribe package.
+%
% \pkgoptn{<option>}
% Typesets a package option in the pdf.
% \key{<option>}
% Typesets a macro/environment option in the pdf.
-% Usually \optn is used for both macro options and package options.
+% When using the dtxdescribe package \optn is used for both macro options and package options.
% However, I am using pgfkeys for macro options and standard LaTeX
% for package options making the two types of options quite different.
% Unlike some other packages the easyfloats package does not allow to
@@ -55,7 +72,7 @@
% \DescribeKey for macro/environment options.
% So it is only consistent to have two different macros for typesetting
% macro/environment and package/class options.
-% I have redefined \optn to print an error in order to avoid ambiguity.
+% I have defined \optn to print an error in order to avoid confusion.
% \val{<value>}
% typesets the value of a key. Package options don't have values.
%
@@ -79,6 +96,16 @@
% Formats inline code.
% It does not change catcodes or performs any other kind of magic.
% <texcode> is executed as TeX code.
+%
+% \formatlabel{<label>}
+% How to format the name of a label used in an example.
+%
+% \formatcaption{<label>}
+% How to format the caption used in an example.
+%
+% \notocspace
+% inserts a negative vertical space in the table of contents
+% in order to cancel out an undesired space after a section
\usepackage{relsize}
@@ -126,6 +153,14 @@
\newcommand{\filename}{\emph}
+% links are added in description-links.tex
+\newcommand\cmd[1]{\texttt{\string#1}}
+\newcommand\env[1]{\texttt{#1}}
+\newcommand\optn[1]{\texttt{#1}}
+\newcommand\meta[1]{\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}}
+\newcommand\pkg[1]{\textsf{#1}}
+\newcommand\tikzlibrary[1]{\textsf{#1}}
+
\newcommand{\pkgoptn}{\optn}
\newcommand{\key}{\optn}
\let\pkgoptn=\optn
@@ -138,7 +173,33 @@
\newcommand{\val}[1]{#1}
\makeatletter
-\newcommand*{\DescribeHandler}[2][]{\DTXD@margintagindex{#1}{#2}{Handler}{handler}{usage}}
+\newcommand\MacroFont{%
+ % copied from dtxdescribe.sty
+ \fontencoding\encodingdefault
+ \fontfamily\ttdefault
+ \fontseries\mddefault
+ \fontshape\updefault
+ \small
+}
+\DeclareDocumentCommand{\MarginParForDescribe}{om}{%
+ \leavevmode
+ \marginpar{%
+ \raggedleft
+ \makebox[0pt][r]{%
+ \strut
+ \IfValueT{#1}{{\scriptsize\sffamily#1}\quad}%
+ \MacroFont
+ #2%
+ }%
+ }%
+}
+% link target and \ignorespaces are added in description-links.tex
+\NewDocumentCommand{\DescribeMacro}{m}{\MarginParForDescribe{\string#1}}
+\NewDocumentCommand{\DescribeEnv}{m}{\MarginParForDescribe[Env]{#1}}
+\NewDocumentCommand{\DescribeKey}{m}{\MarginParForDescribe[Key]{#1}}
+\NewDocumentCommand{\DescribeHandler}{m}{\MarginParForDescribe[Handler]{#1}}
+% \valdoc (defined in description-links.tex) is used for values to keys
+% \pkgoptndoc (defined in description-links.tex) is used for package options
\newcommand{\errormessage}{%
\begingroup
@@ -186,9 +247,26 @@
}
+\newcommand\notocspace{\addtocontents{toc}{\vspace*{-.8em}}}
+
+
+\newcommand\UnderscoreSubscript{_}
+\ExplSyntaxOn
+\NewDocumentCommand\formatlabel{m}{%
+ \group_begin:
+ \def\l_format_label_name_tl{#1}
+ \exp_args:NNo \tl_replace_all:Nnn \l_format_label_name_tl {\UnderscoreSubscript}{\textunderscore}
+ \texttt{\l_format_label_name_tl}
+ \group_end:
+}
+\ExplSyntaxOff
+\let\formatcaption=\formatlabel
+
+
% ---------- \formatcode ---------
\newcommand{\formatcode}[1]{{\ttfamily\smaller[.5]\fboxsep=.5pt\colorbox{codebackground!50}{\vphantom\}\colorlet{linkcolor}{codelinkcolor}#1}}}
+\newcommand{\formatchar}[1]{\formatcode{\char`#1}}
\newcommand{\formatcodeinsection}[1]{{\ttfamily#1}}
\newcommand{\formatcodeinmarginpar}[1]{\formatcodeinsection{\small#1}}
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/markdown.tex b/macros/latex/contrib/easyfloats/doc/preamble/markdown.tex
index 44662c79aa..d87e76b845 100644
--- a/macros/latex/contrib/easyfloats/doc/preamble/markdown.tex
+++ b/macros/latex/contrib/easyfloats/doc/preamble/markdown.tex
@@ -150,4 +150,8 @@
}%
}
+\AtEndDocument{%
+ \@makeother*
+}
+
\makeatother
diff --git a/macros/latex/contrib/easyfloats/doc/preamble/todo.tex b/macros/latex/contrib/easyfloats/doc/preamble/todo.tex
new file mode 100644
index 0000000000..b20d1902f3
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/doc/preamble/todo.tex
@@ -0,0 +1,12 @@
+% !TeX root = ../easyfloats.tex
+
+\newcommand{\TODO}[1]{%
+ \par
+ \fcolorbox{red}{white}{%
+ \begin{minipage}{\dimexpr\linewidth - 2\fboxsep - 2\fboxrule}%
+ \textcolor{red}{\textbf{TODO}}
+ #1%
+ \end{minipage}%
+ }%
+ \par
+}
diff --git a/macros/latex/contrib/easyfloats/doc/undescribed-keywords.tex b/macros/latex/contrib/easyfloats/doc/undescribed-keywords.tex
index 166f92423e..3e028c9073 100644
--- a/macros/latex/contrib/easyfloats/doc/undescribed-keywords.tex
+++ b/macros/latex/contrib/easyfloats/doc/undescribed-keywords.tex
@@ -12,6 +12,9 @@
\NoDescribePkg{geometry}
\NoDescribePkg{fontenc}
\NoDescribePkg{lmodern}
+\NoDescribePkg{calc}
+\NoDescribePkg{url}
+\NoDescribePkg{lastpage}
% standard preamble
\NoDescribeMacro\documentclass
@@ -26,6 +29,7 @@
\NoDescribeMacro\typeout
\NoDescribeMacro\@empty
\NoDescribeMacro\@tfor
+\NoDescribeMacro\NewDocumentCommand
% standard document
\NoDescribeEnv{document}
@@ -33,10 +37,12 @@
\NoDescribeMacro\begin
\NoDescribeMacro\end
\NoDescribeEnv{center}
+\NoDescribeEnv{itemize}
\NoDescribeMacro\centering
\NoDescribeMacro\caption
\NoDescribeMacro\label
\NoDescribeMacro\texttt
+\NoDescribeMacro\emph
\NoDescribeMacro\small
\NoDescribeMacro\href
\NoDescribeMacro\vdots
@@ -45,10 +51,16 @@
\NoDescribeMacro\ref
\NoDescribeMacro\pageref
\NoDescribeMacro\raggedleft
+\NoDescribeMacro\raggedright
\NoDescribeMacro\bigskip
\NoDescribeMacro\verb
\NoDescribeMacro\hspace
\NoDescribeMacro\phantom
+\NoDescribeMacro\rule
+\NoDescribeMacro\columnwidth
+\NoDescribeMacro\clearpage
+\NoDescribeMacro\TeX
+\NoDescribeMacro\ %
% escape sequences
\NoDescribeMacro\textbackslash
@@ -70,16 +82,16 @@
\NoDescribeVal{t}
\NoDescribeVal{b}
\NoDescribeVal{p}
-\NoDescribeVal{H}
\NoDescribeVal{h!}
\NoDescribeVal{c}
\NoDescribeVal{T}
\NoDescribeVal{B}
\NoDescribeVal{auto}
\NoDescribeVal{Auto}
+\NoDescribeVal{auto-inverted}
+\NoDescribeVal{Auto-inverted}
\NoDescribeVal{l}
\NoDescribeVal{r}
-\NoDescribeVal{s}
\NoDescribeVal{tbp}
\NoDescribeVal{lof}
\NoDescribeVal{lot}
@@ -92,8 +104,21 @@
\NoDescribeVal{boxed}
% plain TeX
+\NoDescribeMacro\let
\NoDescribeMacro\csname
\NoDescribeMacro\number
+\NoDescribeMacro\leavevmode
+% eTeX
+\NoDescribeMacro\dimexpr
+
+% expl
+\NoDescribeMacro\ExplSyntaxOn
+\NoDescribeMacro\ExplSyntaxOff
+
+% etoolbox
+\NoDescribeMacro\appto
+\NoDescribeMacro\gappto
+\NoDescribeMacro\AtEndPreamble
% units
\NoDescribeVal{cm}
@@ -109,11 +134,15 @@
\NoDescribeKey{/object/<options>}
\NoDescribeMacro\object@tableBreakText
+% float
+\NoDescribeMacro\listof
+
% tables
\NoDescribeEnv{table}
\NoDescribeEnv{tabular}
\NoDescribeEnv{tabular*}
\NoDescribeEnv{tabularx}
+\NoDescribeVal{X}
\NoDescribeMacro\\
\NoDescribeMacro\multicolumn
\NoDescribeMacro\hline
@@ -136,6 +165,7 @@
\NoDescribeMacro\includegraphics
\NoDescribeMacro\linewidth
\NoDescribeMacro\listoffigures
+\NoDescribeMacro\listoftables
\NoDescribeMacro\resizebox
% float
@@ -146,13 +176,19 @@
% (sub)caption
\NoDescribeMacro\captionsetup
+\NoDescribeMacro\subcaptionsetup
\NoDescribeMacro\DeclareCaptionJustification
\NoDescribeMacro\DeclareCaptionSubType
+\NoDescribeMacro\DeclareCaptionLabelFormat
\NoDescribeMacro\phantomcaption
\NoDescribeEnv{subfigure}
\NoDescribeEnv{subtable}
+\NoDescribeEnv{subcaptionblock}
\NoDescribeMacro\subcaptionbox
\NoDescribeMacro\captionof
+\NoDescribeMacro\ContinuedFloat
+\NoDescribeKey{justification}
+\NoDescribeKey{singlelinecheck}
% placeins
\NoDescribePkgoptn{section}
@@ -165,8 +201,10 @@
\NoDescribePkgoptn{table}
% siunitx
+\NoDescribeMacro\qty
\NoDescribeMacro\si
\NoDescribeMacro\degree
+\NoDescribeMacro\percent
\NoDescribeVal{S}
% plain
@@ -174,6 +212,7 @@
\NoDescribeMacro\catcode
\NoDescribeMacro\active
\NoDescribeMacro\the
+\NoDescribeMacro\numexpr
\NoDescribeMacro\string
\NoDescribeMacro\par
\NoDescribeMacro\ifx
@@ -195,26 +234,45 @@
% tikz
\NoDescribeEnv{tikzpicture}
+\NoDescribeMacro\tikz
\NoDescribeMacro\tikzset
\NoDescribeMacro\draw
\NoDescribeMacro\node
\NoDescribeMacro\foreach
+\NoDescribeMacro\pgfmathparse
+\NoDescribeMacro\pgfmathresult
+
+% minted
+\NoDescribeMacro\mintinline
% cleveref
-\NoDescribeMacro\cref
-\NoDescribeMacro\cpageref
\NoDescribePkgoptn{nameinlink}
\NoDescribePkgoptn{noabbrev}
+\NoDescribeMacro\cref
+\NoDescribeMacro\Cref
+\NoDescribeMacro\cpageref
+
+% varioref
+\NoDescribeMacro\vref
+\NoDescribeMacro\Vref
+\NoDescribeMacro\fullref
% hyperref
\NoDescribeMacro\url
\NoDescribePkgoptn{pdfusetitle}
+\NoDescribePkgoptn{hidelinks}
% pgfkeys
\NoDescribeMacro\pgfkeys
+\NoDescribeMacro\pgfqkeys
\NoDescribeVal{true}
\NoDescribeVal{false}
\NoDescribeHandler{.expand once}
+\NoDescribeHandler{.code}
+\NoDescribeHandler{.value forbidden}
+
+% url
+\NoDescribeMacro\urldef
% keyval
\NoDescribeMacro\setkeys
@@ -227,8 +285,27 @@
\NoDescribeMacro\n
\NoDescribeMacro\i
\NoDescribeMacro\w
+\NoDescribeMacro\includediagramobject
+\NoDescribeMacro\listofdiagrams
+\NoDescribeMacro\composition
+\NoDescribeMacro\element
+\NoDescribeMacro\percentage
+\NoDescribeMacro\col
+\NoDescribeMacro\angle
+\NoDescribeMacro\nextangle
+\NoDescribeMacro\radius
+\NoDescribeMacro\trimspaces
+\NoDescribeMacro\defcalc
+\NoDescribeMacro\verbdef
+\NoDescribeMacro\leftcontent
+\NoDescribeMacro\rightcontent
\NoDescribeEnv{tikzobject}
\NoDescribeEnv{tikz3dobject}
+\NoDescribeEnv{diagramobject}
+\NoDescribeKey{center subcaptions}
+\NoDescribeKey{/object/center subcaptions}
+\NoDescribeKey{diagram}
+\NoDescribeVal{M}
% not used directly
\NoDescribeMacro\center
diff --git a/macros/latex/contrib/easyfloats/easyfloats-file-list.txt b/macros/latex/contrib/easyfloats/easyfloats-file-list.txt
index 44c333bcb5..bf87860152 100644
--- a/macros/latex/contrib/easyfloats/easyfloats-file-list.txt
+++ b/macros/latex/contrib/easyfloats/easyfloats-file-list.txt
@@ -6,35 +6,41 @@ easyfloats-file-list.txt
easyfloats.ins
easyfloats.dtx
-easyfloats.sty
README.md
DEPENDS.txt
doc/easyfloats.tex
doc/easyfloats.pdf
doc/easyfloats.bib
+doc/my_biblatex_data_model.dbx
doc/links.tex
doc/undescribed-keywords.tex
-doc/content/bug-reports-and-contributions.tex
-doc/content/documentation.tex
-doc/content/examples.tex
-doc/content/installation.tex
-doc/content/license.tex
-doc/content/motivation.tex
-doc/content/other-packages.tex
-doc/content/names.tex
-doc/content/titlepage.tex
-doc/content/used-packages.tex
+doc/content/f1_titlepage.tex
+doc/content/s1_examples.tex
+doc/content/s2_names.tex
+doc/content/s3_documentation.tex
+doc/content/s4_installation.tex
+doc/content/s5_bug-reports-and-contributions.tex
+doc/content/s6_changelog.tex
+doc/content/s7_license.tex
+doc/content/x1_motivation.tex
+doc/content/x2_used-packages.tex
+doc/content/x3_other-packages.tex
doc/preamble/bibliography.tex
+doc/preamble/changelog.tex
doc/preamble/description-links.tex
doc/preamble/examplecode.tex
+doc/preamble/geometry.tex
doc/preamble/keydoc.tex
doc/preamble/link.tex
doc/preamble/macros.tex
doc/preamble/markdown.tex
doc/preamble/pdfstring.tex
+doc/preamble/todo.tex
doc/lexer/latex_atletter.py
+You can generate the sty file by running `tex easyfloats.ins`.
+
There are automated tests to test this work at
https://gitlab.com/erzo/latex-easyfloats/-/tree/master/test
These tests are licensed under the WTFPL http://www.wtfpl.net/about/.
diff --git a/macros/latex/contrib/easyfloats/easyfloats.dtx b/macros/latex/contrib/easyfloats/easyfloats.dtx
index eea9932e40..b04e45db67 100644
--- a/macros/latex/contrib/easyfloats/easyfloats.dtx
+++ b/macros/latex/contrib/easyfloats/easyfloats.dtx
@@ -29,9 +29,11 @@
% easyfloats.ins reads this file, strips comments and indentation using docstrip
% and writes the result to the sty file in order to make it faster.
+%TODO: \footnotetext
+
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{easyfloats}[2020/12/20 v1.0.0]
+\ProvidesPackage{easyfloats}[2024/10/28 v1.1.0]
% ========== options ==========
@@ -186,10 +188,12 @@
\newif\ifobject@isgraphic
\newcommand{\object@hook}{}
+\newcommand{\object@endhook}{}
\newcommand{\subobject@hook}{}
\newcommand{\object@graphic@hook}{}
\newrobustcmd{\AtBeginObject}[1]{\appto\object@hook{#1}}
+\newrobustcmd{\AtEndObject}[1]{\appto\object@endhook{#1}}
\newrobustcmd{\AtBeginSubobject}[1]{\appto\subobject@hook{#1}}
\newrobustcmd{\AtBeginGraphicObject}[1]{\appto\object@graphic@hook{#1}}
@@ -926,11 +930,13 @@
\def\object@longtable@caption@sep{\ObjectDefineEnvargs{longtable}{\\}}%
}
+\newtoks\object@last@arg
\newenvironment{object}[1]{% #1: options
\if@inobject
\PackageError{easyfloats}{object environment may not be nested}{Did you mean to use the subobject environment instead?}%
\fi
\@inobjecttrue
+ \object@last@arg={#1}%
%
\object@restorestandardfloats
%
@@ -992,12 +998,23 @@
\fi
\edef\object@floatenv@begin{\expandonce{\csname\esf@tmp@type\endcsname}}%
\edef\object@floatenv@end{\expandonce{\csname end\esf@tmp@type\endcsname}}%
+ \def\esf@text@I{I}%
\pgfkeysgetvalue{/object/placement}{\esf@tmp@placement}%
\ifx \esf@tmp@placement \@empty
% do nothing
+ \else\ifx \esf@tmp@placement \esf@text@I
+ % I am using placement H with two changes:
+ % - redefined \columnwidth to \linewidth
+ % - added \leavevmode before setting the float in order to get correct indentation
+ % see texdoc float
+ \preto\object@floatenv@begin{%
+ \columnwidth = \linewidth
+ \let \float@endH = \esf@float@endI
+ }%
+ \appto\object@floatenv@begin{[H]}%
\else
\eappto\object@floatenv@begin{[\esf@tmp@placement]}%
- \fi
+ \fi \fi
\fi
%
\pgfkeysgetvalue{/object/details}{\object@details}%
@@ -1030,6 +1047,7 @@
% ---------- execute ---------
%
\object@floatenv@begin
+ \preto\par{\global\@firstsubobjecttrue}%
\let\esf@original@label=\label
\let\esf@original@caption=\caption
\let\label=\object@label
@@ -1044,19 +1062,36 @@
\PackageWarning{easyfloats}{'contains subobjects' is true but the object does not contain any subobjects.}%
\fi
\fi
+ \object@endhook
\let\label=\esf@original@label
\let\caption=\esf@original@caption
\object@processCaptionAndLabel
\object@floatenv@end
}
+% copied from texdoc float, page 8, the definition of \float@endH
+\newcommand\esf@float@endI{%
+ \@endfloatbox
+ \vskip\intextsep
+ \if@flstyle
+ \setbox\@currbox\float@makebox\columnwidth
+ \fi
+ \leavevmode% added by me
+ \box\@currbox
+ \vskip\intextsep\relax
+}
+
\newcommand{\object@processCaptionAndLabel}{%
% position of caption (above/below) is handled by float package (see float style)
\esf@ifpgfkeyhasvalue{/object/caption}{%
\esf@ifpgfkeyhasvalue{/object/list caption}%
{\pgfkeysgetvalue{/object/list caption}{\esf@tmp@caption@short}}%
{\pgfkeysgetvalue{/object/caption}{\esf@tmp@caption@short}}%
- \caption[\esf@tmp@caption@short]{\pgfkeysvalueof{/object/caption}\object@details}%
+ \ifx \esf@tmp@caption@short \@empty
+ \else
+ \edef \esf@tmp@caption@short {{\expandonce{\esf@tmp@caption@short}}}%
+ \fi
+ \expandafter\caption\expandafter[\esf@tmp@caption@short]{\pgfkeysvalueof{/object/caption}\object@details}%
}{%
\ifobject@warnnocaption
\PackageWarning{easyfloats}{%
@@ -1137,6 +1172,21 @@
}
+% ---------- split object environment ----------
+
+\newcommand{\splitobject}{%
+ % does not work inside of \begingroup ... \endgroup
+ % I cannot use anything not expandable here in case a table foot needs to be inserted
+ \expanded{%
+ \noexpand\end{\@currenvir}%
+ \noexpand\begin{\@currenvir}{\the\object@last@arg, warn no label=false, list caption=, exec+={\unexpanded{%
+ \pgfkeyssetvalue{/object/label}{\pgfkeysnovalue}%
+ \ContinuedFloat
+ }}}%
+ }%
+}
+
+
% ---------- lookahead for subobjects ----------
\newcommand{\object@lookahead@nosubobject}{%
@@ -1417,25 +1467,31 @@
auto label strip path/.is if=graphicobject@autolabel@strippath,
auto label strip path=false,
%
+ auto label prefix/.initial=,
+ auto label prefix/.value required,
+ %
warn env/.is if=graphicobject@warnenv,
warn env=true,
%
no env/.is if=graphicobject@noenv,
no env=true,
+ %
+ before graphic/.initial=,
+ before graphic/.value required,
+ %
+ after graphic/.initial=,
+ after graphic/.value required,
}
\newrobustcmd{\includegraphicobject}{% [#1: graphicstyle], [#2: options], #3: graphic filename without extension
- \let\includegraphicobject@after=\@empty
+ \begingroup
\@ifnextchar [%
\includegraphicobject@firstarg
\includegraphicobject@parseoptions
}
\def\includegraphicobject@firstarg[#1]{%
- \begingroup
\@ifnextchar [%
{%
- \begingroup
- \let\includegraphicobject@after=\endgroup
\graphicobjectstyle{#1}%
\includegraphicobject@parseoptions
}%
@@ -1489,6 +1545,7 @@
\ifgraphicobject@autolabel@strippath
\protected@edef\graphicobject@label{\strippath\graphicobject@label}%
\fi
+ \epreto\graphicobject@label{\pgfkeysvalueof{/graphicobject/auto label prefix}}%
\pgfkeyslet{\object@graphic@path/label}{\graphicobject@label}%
}%
\fi
@@ -1511,17 +1568,20 @@
\fi
,
}
+ \pgfkeysvalueof{/graphicobject/before graphic}%
\expandafter\includegraphics\expandafter[\object@graphic@options@tmp]{#3}%
+ \pgfkeysvalueof{/graphicobject/after graphic}%
\end{#1}%
- % if this is \@empty it should not interfere with \ignorespacesafterend (\ignorespaces) or \@endparenv (\@doendpe)
- \includegraphicobject@after
+ % This command is supposed to insert a floating object which can float somewhere else.
+ % Therefore it should not influence the paragraph indentation of the next paragraph (\@endparenv/\@doendpe).
+ \endgroup
+ \ignorespaces
}
\newrobustcmd{\includegraphicsubobject}{%
\begingroup
\def\object@graphic@env{subobject}%
\def\object@graphic@path{/subobject}%
- \def\includegraphicobject@after{\endgroup\ignorespaces}%
\includegraphicobject@parseoptions
}
@@ -1607,10 +1667,14 @@
% http://tug.org/texinfohtml/latex2e.html#minipage
%
% The vertical position of the minipage on the baseline.
- % Allowed values: c, t, b, auto, <empty>.
+ % Allowed values: c, t, b, auto, auto-inverted, <empty>.
% auto means t if the caption is displayed at the top
% or b if the caption is displayed at the bottom
- % so that the captions are aligned if the minipages
+ % so that the captions are aligned if the captions
+ % have the same height.
+ % auto-inverted means b if the caption is displayed at the top
+ % or t if the caption is displayed at the bottom
+ % so that the captions are aligned if the bodies
% have the same height.
% <empty> is equivalent to c.
subpage outer pos/.initial=auto,
@@ -1849,9 +1913,17 @@
\caption@iftop
{\eappto\subobject@subpage@begin{[T]}}%
{\eappto\subobject@subpage@begin{[B]}}%
+ }{\ifdefstring \subobject@outerpos {auto-inverted}{%
+ \caption@iftop
+ {\eappto\subobject@subpage@begin{[b]}}%
+ {\eappto\subobject@subpage@begin{[t]}}%
+ }{\ifdefstring \subobject@outerpos {Auto-inverted}{%
+ \caption@iftop
+ {\eappto\subobject@subpage@begin{[B]}}%
+ {\eappto\subobject@subpage@begin{[T]}}%
}{%
\eappto\subobject@subpage@begin{[\subobject@outerpos]}%
- }}\fi
+ }}}}\fi
\pgfkeysgetvalue{/subobject/subpage height}{\subobject@height}%
\ifx \subobject@height \@empty
\else
diff --git a/macros/latex/contrib/easyfloats/license.txt b/macros/latex/contrib/easyfloats/license.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/easyfloats/license.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/edmaths/LICENSE.txt b/macros/latex/contrib/edmaths/LICENSE.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/edmaths/LICENSE.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/edmaths/README.md b/macros/latex/contrib/edmaths/README.md
new file mode 100644
index 0000000000..4647d361eb
--- /dev/null
+++ b/macros/latex/contrib/edmaths/README.md
@@ -0,0 +1,5 @@
+# `edmaths` Report & Thesis Class
+
+A report and thesis stylesheet for easier compliance with the [university's typesetting rules](https://www.ed.ac.uk/academic-services/students/thesis-submission). See also the [_documentation_](https://foggalong.github.io/edinburgh-math-latex/edmaths-docs.pdf) and a [_compiled example_](https://foggalong.github.io/edinburgh-math-latex/example-report.pdf). To use, place the files and store them either with your .tex file(s) or in any directory that's findable by LaTeX (e.g. `$TEXINPUTS`).
+
+For more information on the wider project, including the beamer theme, [see GitHub](https://github.com/Foggalong/edinburgh-math-latex). The stylesheet [edmaths.sty](edmaths.sty) is provided under the [LaTeX Project Public License v1.3c](https://choosealicense.com/licenses/lppl-1.3c/) (LPPL) while the example [example-report.tex](example-report.tex) is provided under the [BSD Zero Clause License](https://choosealicense.com/licenses/0bsd/) (0BSD).
diff --git a/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf b/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf
new file mode 100644
index 0000000000..b0839ecd16
--- /dev/null
+++ b/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/edmaths/docs/edmaths-docs.tex b/macros/latex/contrib/edmaths/docs/edmaths-docs.tex
new file mode 100644
index 0000000000..d4a86affb4
--- /dev/null
+++ b/macros/latex/contrib/edmaths/docs/edmaths-docs.tex
@@ -0,0 +1,282 @@
+\documentclass[12pt]{article}
+
+% This is documentation for the `edmaths` LaTeX package, maintained by
+% Josh Fogg for the University of Edinburgh. This file closely builds on
+% that provided Alan Munn for the MSU Thesis Class, `msu-thesis`. The
+% original documentation is licensed under LaTeX Project Public License
+% (LPPL) version 1.3 or later, and this documentation is licensed under
+% the LLP version 1.3c. For more information, see the GitHub repository:
+% https://github.com/Foggalong/edinburgh-math-latex
+
+\def\msuversion{0.99}
+\def\msudate{2024-08-30}
+\title{\textbf{Using the \pkg{edmaths} Report \& Thesis Class}}
+\author{\textbf{Josh Fogg}\\School of Mathematics\\The University of Edinburgh\\\texttt{\href{mailto:j.fogg@ed.ac.uk}{j.fogg@ed.ac.uk}}}
+\date{Version \msuversion\\\msudate}
+
+% basic formatting tweaks
+\usepackage[lmargin=2cm,rmargin=2cm,tmargin=3cm,bmargin=2cm]{geometry}
+\usepackage[colorlinks=true]{hyperref}
+\usepackage{enumitem}
+
+% use same fourier font available through edmaths
+\usepackage{cmap}
+\usepackage{fourier}
+\usepackage[T1]{fontenc}
+\usepackage{microtype}
+
+% setup syntax highlighting
+\usepackage{highlightlatex}
+\definecolor{whiteF0}{HTML}{F0F0F0}
+\lstset{
+ % external padding
+ aboveskip=.4em,
+ belowskip=-.2em,
+ xleftmargin=.03\textwidth,
+ xrightmargin=.03\textwidth,
+ % basic formatting
+ backgroundcolor=\color{whiteF0},
+ showstringspaces=false,
+ columns=fixed,
+ basewidth=.5em,
+ basicstyle={\fontfamily{zlmtt}\selectfont},
+ breaklines=true
+}
+
+
+% change new paragraph behaviour to no-indent and a linebreak
+\usepackage[parfill]{parskip}
+
+
+\newcommand\pkg[1]{\href{https://www.ctan.org/pkg/#1}{\color{teal}\lstinline{#1}}}
+\newcommand\key[1]{{\color{orange}\lstinline|#1|}}
+
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+
+This is a package for use when writing reports or thesis for the \href{https://www.maths.ed.ac.uk/}{School of Mathematics} at the \href{https://www.ed.ac.uk/}{University of Edinburgh}. It provides an easy way to generate a document in \LaTeX{} which meets all the basic formatting requirements laid out by the \href{https://www.ed.ac.uk/academic-services/students/thesis-submission}{University's typesetting rules}. This means you can focus on your actual writing, rather than worrying about font spacing, margins sizes, {\it etc}.
+
+\section{Initial Setup}
+
+While this package can in theory work with many different document classes, it is designed to best work with the \pkg{report} class which should be available with any \TeX{} distribution. It can be used with any \LaTeX{} engine, including pdfLaTeX, XeTeX, or LuaTeX. While it should work with any reasonably up-to-date TeX distribution, it is tested with 2020 and later.
+
+The essential steps to setup are then:
+\begin{enumerate}
+ \item Choose a document class using \lstinline|\documentclass[<options>]{report}|, with \key{<options>}
+ \begin{enumerate}
+ \item for font size, one of \key{10pt} (default), \key{11pt}, and \key{12pt};
+ \item for sidedness, one of \key{oneside} (default) and \key{twoside}.
+ \end{enumerate}
+ \item Define information for the title page using \lstinline|\title{...}|, \lstinline|\author{...}|, and \lstinline|\date{...}|.
+ \item Load the \pkg{edmaths} package using \lstinline|\usepackage[<options>]{edmaths}|.
+\end{enumerate}
+These steps {\bf must} be done in exactly this order or the compiler will throw errors.
+
+The loading \pkg{edmaths} also loads the packages \pkg{amsmath}, \pkg{amsthm}, \pkg{amscd}, and \pkg{amssymb}, which are required by almost all mathematical publications. Through \pkg{setspace}, line spacing settings are available that only affect the body text and not footnotes and captions.
+
+The basic package has no other special requirements, but if you have certain additional packages installed then you can use some fancifying options (see below).
+
+\section{Package Options}
+
+When loading \pkg{edmaths} with
+\begin{lstlisting}
+\usepackage[<options>]{edmaths}
+\end{lstlisting}
+we can supply additional \key{<options>} as a comma-separated list of the following keywords.
+
+\subsection{Report Type}
+
+Exactly one of \key{firstyear}, \key{secondyear}, \key{thirdyear}, \key{fourthyear}, \key{phd}, \key{masterph}, or \key{mastersc} for postgrad projects, or exactly one of \key{mmath} or \key{y4project} for undergraduate projects.
+
+This prints the correct degree name or report type on the cover page. If you do not specify any of these, for example if your desired type is not listed, set \lstinline|\degreetext| manually before including this package. For example
+\begin{lstlisting}
+\newcommand{\degreetext}{Internal Report}
+\end{lstlisting}
+will produce a document labelled as an `Internal Report'.
+
+\subsection{Line Spacing}
+
+At most one of \key{single} (default), \key{onehalf}, or \key{double}. This sets the line spacing of the body text to single, one-half and double spaced, respectively. Check out \pkg{setspace} for custom spacing options.
+
+\subsection{Fonts}
+
+For better or worse, by default it uses \LaTeX's default font, \href{https://en.wikipedia.org/wiki/Computer_Modern}{Computer Modern}. However by specifying at most one of the font options it's to change this.
+
+Using \key{fourier} provides much improved typography by activating the \pkg{fourier} font package (based on Adobe's Utopia family) along with the \pkg{cmap} and \pkg{microtype} packages. All these dependencies must be met to use this option.
+
+Strictly speaking the thesis guidelines require a sans serif font, though it's not typically enforced for mathematics. However, if you do want to use one, \key{cmbright} sets the font to \href{https://tug.org/FontCatalogue/computermodernbright/}{Computer Modern Bright}. This requires the \pkg{cmbright}, \pkg{cmap}, \pkg{microtype}, and \pkg{fontenc} packages.
+
+\subsection{Links}
+
+Using \key{hyperref} creates a PDF output with clickable, all-black links. This depends on \pkg{hyperref} and \pkg{xcolor}. The packages are set up with sane default options, but to modify the behaviour, simply use the \lstinline|\hypersetup| command; see the \pkg{hyperref} documentation for details.
+
+If in addition \key{colour} is used, this sets clickable links to have a sane default colour (sepia for internal links, blue for external URLs).
+
+\subsection{Headers}
+
+If the \pkg{fancyhdr} package is installed, using \key{fancyhdr} creates nice page headers and footers (with sane default settings); to modify this behaviour, simply use the commands described in the \pkg{fancyhdr} documentation.
+
+\section{Usage}
+
+Once \pkg{edmaths} is set up, the following additional formatting commands and environments become available:
+
+\begin{itemize}
+ \item \lstinline|\maketitle| to create the cover page,
+ \item \lstinline|\declaration{...}| to create the declaration,
+ \item \lstinline|\dedication{...}| for a dedication page ({\it e.g.\/} `For Alex', not acknowledgements),
+ \item \lstinline|\begin{abstract}...\end{abstract}| for the abstract,
+ \item \lstinline|\begin{laysummary}...\end{laysummary}| for the \href{https://www.ed.ac.uk/sites/default/files/atoms/files/lay_summary_in_theses.pdf}{lay summary},
+ \item \lstinline|\begin{acknowledgements}...\end{acknowledgements}| for any acknowledgements,
+ \item \lstinline|\tableofcontents| for the table of contents.
+\end{itemize}
+
+\subsection{Declarations}
+
+While using \lstinline|\declaration{}| will give you a stock declaration page, in most cases this will need tailoring to the specific of your thesis \href{https://www.ed.ac.uk/sites/default/files/atoms/files/thesis_signed_declaration.pdf}{per university requirements}. For example, if your thesis includes previously-published work, it should be declared on this page.
+
+This can be done by for example,
+\begin{lstlisting}
+\declaration{
+ I declare that this thesis has been composed solely by myself
+ and that it has not been submitted, in whole or in part, in any
+ previous application for a degree. Except where stated otherwise
+ by reference or acknowledgement, the work presented is entirely
+ my own.
+}
+\end{lstlisting}
+
+\subsection{Abstracts}
+
+If you wish to redefine the title of the abstract, this can be done by including
+\begin{lstlisting}
+\renewcommand{\abstractname}{My New Title}
+\end{lstlisting}
+anywhere before \lstinline|\begin{document}|.
+
+\subsection{Long Titles}
+
+If your \lstinline|\title| is quite long and you're using \pkg{fancyhdr}, you may also wish to define a \lstinline|\shorttitle{...}| to prevent wrapping within the header. This {\bf must} be done after loading \pkg{edmaths} else the compiler will throw an error.
+
+\subsection{Year 4 Projects}
+
+When using the \key{y4project} option, the command \lstinline|\yfourdeclaration{...}| can be used right after the abstract to print a declaration at the bottom of that page; the argument of this command is the name of the particular degree.
+
+\subsection{Basic Example}
+
+Below is a simple example of how this might be put together in a year one PhD report.
+
+\begin{lstlisting}
+\documentclass[10pt]{report}
+
+\title{The title of my first year report}
+\author{My name}
+\date{YYYY}
+
+\usepackage[firstyear]{edmaths}
+
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+ My abstract.
+\end{abstract}
+
+\tableofcontents
+
+\chapter{First Chapter}
+
+\section{Section Name}
+
+\chapter{Second Chapter}
+
+\appendix
+
+\chapter{First Appendix}
+
+\end{document}
+\end{lstlisting}
+
+A more complicated example for a PhD thesis is packaged with \pkg{edmaths} and \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/example-report.tex}{available here}. What this looks like compiled can be \href{https://foggalong.github.io/edinburgh-math-latex/example-report.pdf}{viewed here}.
+
+\section{Additional Tips}
+
+Below is an assortment of additional advice that may be useful when formatting a thesis or report. If you've got additional tips which you think would be useful to share, do share on the \href{https://github.com/Foggalong/edinburgh-math-latex}{GitHub}.
+
+\subsection{Spacing}
+
+When using larger line spacing than single spaced, you might want to single-space your table of contents, {\it etc}. For details, see the documentation for \pkg{setspace}, but to achieve this you could use \lstinline|{\singlespacing\tableofcontents}| and similar for \lstinline|\listoffigures| and \lstinline|\listoftables|.
+
+If you like custom line spacing, place \lstinline|\newcommand{\stretchfactor}{<x>}| before calling this package, where \key{<x>} is the line spacing factor (\key{1} gives single spacing).
+
+Put \lstinline|\flushbottom| right after \lstinline|\begin{document}| to obtain vertically justified pages.
+
+The very ``brave'' can also add \lstinline|\setlength{\parskip}{0pt}| in the preamble to remove any vertical rubber space between paragraphs, thus enforcing a strict grid layout. If you encounter underful boxes, add \lstinline|\vfill| as needed, most likely after headings ({\it e.g.\/} use \lstinline|\chapter{Introduction}\vfill|.).
+
+\subsection{Front Matter}
+
+Use \lstinline|\listoftables| and \lstinline|\listoffigures| to create a reference of all table and figure environments. Some may tell you that this is actually a requirement for a PhD thesis.
+
+Use \lstinline|\pagenumbering{roman}| and \lstinline|\pagenumbering{arabic}| to get different styles of page numbers for the front matter and make it all fancy like.
+
+If desired, use \lstinline|\addcontentsline| to add otherwise unreferenced chapters ({\it e.g.\/} the table of contents itself, the list of figures, the list of tables or the index) to the table of contents.
+
+\subsection{Fonts}
+
+If you don't want to use any of the fonts available by default simply do not specify \key{fourier} or \key{cmbright} option, and instead load \pkg{fontenc}, \pkg{cmap}, \pkg{microtype} and your font package as described in the font package's documentation.
+
+Use the \pkg{ccaption} package to customise the way that captions under figures and tables appear ({\it e.g.\/} if you prefer them to use a sans-serif font).
+
+\subsection{Subtitles}
+
+You may also wish to give your document a subtitle. Be aware that it is ambiguous whether this is allowable in the thesis guidelines, but it may be done by adding formatting commands within the title command, as below.
+
+\begin{lstlisting}
+\title{Underwater Basket Weaving \\
+ \large Analysing the optimal depth for willow rods}
+\author{Author Name}
+\date{YYYY}
+
+\usepackage[phd]{edmaths}
+\end{lstlisting}
+
+If also using \key{fancyhdr}, remember to also add \lstinline|\shorttitle{Underwater Basket Weaving}| after loading \pkg{edmaths} also for consistency with your headers.
+
+\subsection{Overleaf}
+
+As a student or staff member at the University of Edinburgh you have access to \href{https://www.ed.ac.uk/information-services/computing/desktop-personal/software/main-software-deals/other-software/overleaf}{Overleaf Professional}! Do make use of this, it alleviates many of the headaches which come with using \LaTeX{} across multiple computers, which you surely will..
+
+\subsection{Archiving your thesis for the future}
+
+The current version of \pkg{edmaths} class satisfies the typesetting requirements at any one time. Given these requirements change, you may find that if you need to recompile your thesis after you have graduated that the formatting changes. To avoid this, I'd recommend saving an archived version of the \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/edmaths.sty}{\lstinline|edmaths.sty|} file in the same folder as your thesis file. You only need to do this once you have completely finished your thesis however; there's no need to do it during the writing process.
+
+\section{Troubleshooting}
+
+I'm happy to \href{mailto:j.fogg@ed.ac.uk}{answer emails} or \href{https://github.com/Foggalong/edinburgh-math-latex/issues/new?assignees=&labels=report&projects=&template=report-issue.md&title=}{GitHub issues} about formatting issues with the class, {\bf especially} when you are in the final stages of formatting your dissertation or thesis. God knows that time is already stressful enough as it is. However, please keep in mind:
+
+\begin{itemize}
+ \item I do this as a volunteer on the side of all my other work. This is not something the university pay me for, just something I did because I identified the need.
+
+ \item If you have general \LaTeX{} questions that are not specifically related to \pkg{edmaths}, please try to find answers elsewhere. Both \href{https://tex.stackexchange.com/}{tex.stackexchange.com} and \href{https://www.overleaf.com/learn}{Overleaf} are excellent resources.
+
+ \item Please make sure you have the latest version of \pkg{edmaths}, it may be your issue has already been fixed. If in doubt, check the log file and compare it with \href{https://ctan.org/pkg/msu-thesis?lang=en}{CTAN} and \href{https://github.com/Foggalong/edinburgh-math-latex}{GitHub}.
+
+ \item If you are using \href{https://www.overleaf.com}{Overleaf} , {\bf please} check the log file for errors, and fix them {\it before} you send me a sample document. By default Overleaf produces an output even when the document has lots of errors, so it could be that other errors you haven't noticed are obscuring the problem you're actually trying to fix.
+\end{itemize}
+
+
+
+If you are using the class, please take a moment to fill out my \href{https://forms.gle/bm2AUzthFxW2naK36}{anonymous usage survey}. Thanks! You should be signed into your MSU Google account to access the form, but the form itself is anonymous.
+
+\section{Acknowledgements}
+
+The original \pkg{edmaths} was written by \href{https://github.com/tkoeppe}{Thomas K\"oppe} in 2007 and freely provided under the terms of the \href{https://choosealicense.com/licenses/lppl-1.3c/}{\LaTeX{} Project Public License v1.3c}. From 2020 onwards it has been maintained by \href{https://www.maths.ed.ac.uk/~jfogg/}{Josh Fogg} (me). Thanks also to \href{https://www.linkedin.com/in/adkbeckett}{Andrew Beckett} for his contribution in improving compliance, particularly around declarations which I'd missed entirely.
+
+Thanks to you too for using \pkg{edmaths}! I'd love to hear how you got on working with it, even if there weren't any specific issues. Just \href{mailto:j.fogg@ed.ac.uk}{shoot me an email}, it always makes my day!
+
+\end{document}
diff --git a/macros/latex/contrib/edmaths/edmaths.sty b/macros/latex/contrib/edmaths/edmaths.sty
new file mode 100644
index 0000000000..cbfd89a5be
--- /dev/null
+++ b/macros/latex/contrib/edmaths/edmaths.sty
@@ -0,0 +1,258 @@
+%% Package `edmaths' v0.99
+%% File edmaths.sty
+%% Copyright 2024 Josh Fogg
+%%
+%% edmaths.sty is a LaTeX style file for typesetting reports and theses in the
+%% School of Mathematics at the University of Edinburgh. Suitable for use for
+%% theses, yearly reports, and undergraduate projects. Part of the more general
+%% `edmaths' package. See README.md for usage instructions.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version.
+%%
+%% The latest version of this license is in http://latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained' and the current
+%% maintainer of this work is Josh Fogg. Originally written by Thomas Koeppe in
+%% 2007/07, it has since been updated by Josh Fogg from 2020 onwards.
+%%
+%% This work consists of the file edmaths.sty.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{edmaths}[2024-08-30 Edinburgh maths thesis/report style v0.99]
+\RequirePackage{calc,ifthen,setspace,amsmath,amsthm,amscd,amssymb}
+
+
+
+% PAGE SIZE AND MARGINS
+% These settings control the size of the page and its margins. All measurements are
+% compliant wih the school's typesetting requirements.
+
+\setlength{\paperheight}{297mm} % A4 Paper
+\setlength{\paperwidth}{210mm} %
+\setlength{\oddsidemargin}{14.6mm} % Left/Inside: 4.0cm (rel. -1in)
+\setlength{\evensidemargin}{-.4mm} % Right/Outside: 2.5cm (rel. -1in)
+\setlength{\topmargin}{-17.4mm} % \
+\setlength{\headheight}{6mm} % | Top: 2.0cm (rel. -1in), out of which 6mm for the header
+\setlength{\headsep}{6mm} % /
+\setlength{\textwidth}{145mm} % Margins: 2.5cm + 4cm
+% Textheight delayed until we know the line spacing.
+
+% The following is removed in favour of the `report' class options "oneside/twoside".
+% \@twosidefalse \@mparswitchfalse % Single-sided by default
+
+
+
+% PACKAGE OPTIONS
+% These options can be selected wihin \usepackage[...]{edmaths} to modify the
+% appearance of different parts of the document.
+
+% Options relating to external packages
+\newboolean{with-fourier} % Use the `fourier' package for Adobe Utopia font
+\newboolean{with-cmbright} % Use the `cmbright' package for Computer Modern Bright (sans serif) font
+\newboolean{with-comicsans} % :)
+\newboolean{with-hyperref} % Use the `hyperref' package for hyperlinks and bookmarks, all black
+\newboolean{with-colour} % Add sane colours to the hyperref links
+\newboolean{with-fancyhdr} % Use the `fancyhdr' package to provide header and footer
+\DeclareOption{fourier}{\setboolean{with-fourier}{true}}
+\DeclareOption{cmbright}{\setboolean{with-cmbright}{true}}
+\DeclareOption{comicsans}{\setboolean{with-comicsans}{true}}
+\DeclareOption{hyperref}{\setboolean{with-hyperref}{true}}
+\DeclareOption{colour}{\setboolean{with-colour}{true}}
+\DeclareOption{fancyhdr}{\setboolean{with-fancyhdr}{true}}
+
+% Options relating to document type (thesis, report, etc)
+\ifthenelse{\isundefined{\degreetext}}{\newcommand{\degreetext}{Specify a degree option!}}{}
+\DeclareOption{phd}{\renewcommand{\degreetext}{Doctor of Philosophy}}
+\DeclareOption{firstyear}{\renewcommand{\degreetext}{First-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{secondyear}{\renewcommand{\degreetext}{Second-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{thirdyear}{\renewcommand{\degreetext}{Third-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{y4project}{\renewcommand{\degreetext}{Year 4 Project\\School of Mathematics}}
+\DeclareOption{mmath}{\renewcommand{\degreetext}{Master of Mathematics with Honours \\ School of Mathematics}}
+\DeclareOption{masterph}{\renewcommand{\degreetext}{Master of Philosophy}}
+\DeclareOption{mastersc}{\renewcommand{\degreetext}{Master of Science by Research}}
+
+% Options relating to stretchfactor (used for margin spacing)
+\ifthenelse{\isundefined{\stretchfactor}}{\newcommand{\stretchfactor}{1}}{}
+\DeclareOption{single}{\renewcommand{\stretchfactor}{1}}
+\DeclareOption{onehalf}{\renewcommand{\stretchfactor}{1.5}}
+\DeclareOption{double}{\renewcommand{\stretchfactor}{2}}
+
+% Options relating to having single or double sided documents
+% \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} % Single-sided by default
+% \DeclareOption{twosides}{\@twosidetrue \@mparswitchtrue}
+
+
+\ProcessOptions
+
+% If with-fourier selected, use the Adobe Utopia font.
+\ifthenelse{\boolean{with-fourier}}{
+ \RequirePackage{cmap}
+ \RequirePackage{fourier}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{microtype}
+} {}
+
+% If with-cmbright selected, use the (sans-serif) Computer Modern Bright font.
+\ifthenelse{\boolean{with-cmbright}}{
+ % NOTE if it doesn't compile, make sure you have CM Bright installed!
+ \RequirePackage{cmap}
+ \RequirePackage{cmbright}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{microtype}
+} {}
+
+% :)
+\ifthenelse{\boolean{with-comicsans}}{
+ % NOTE must be compiled with xelatex or luatex
+ \usepackage{fontspec}
+ \setmainfont{Comic Sans MS}
+} {}
+
+% If with-hyperref selected, configure its default settings
+\ifthenelse{\boolean{with-hyperref}}{
+ \RequirePackage[dvipsnames]{xcolor}
+ \RequirePackage[pdftitle={\@title}, pdfauthor={\@author}, pdfcreator={PDFLaTeX with edmaths}, pdfpagelayout=OneColumn, colorlinks=true, linkcolor=black, urlcolor=black, citecolor=black]{hyperref}
+ % If with-colour selected, use it to make hyperlinks blue not black
+ \ifthenelse{\boolean{with-colour}}{
+ \hypersetup{linkcolor=Sepia, urlcolor=NavyBlue, citecolor=Sepia}
+ } {}
+} {}
+
+% If with-fancyhdr selected, use it to provide fancier headers and footers
+\ifthenelse{\boolean{with-fancyhdr}}{
+ \RequirePackage{fancyhdr}
+ % Define a short title for use in headers if title is too long. Default is the same as title. Usage: use command \shortitle{<your short title here>} *after* calling edmaths.
+ \newcommand\@shorttitle{\@title}
+ \newcommand\shorttitle[1]{\renewcommand\@shorttitle{#1}}
+ \pagestyle{fancy}
+ \fancyhf{}
+ % if \fancyhead or \fancyfoot are used without `twoside` in \documentclass{...} then
+ % fancyhdr will complain that the 'E' used here is useless, so need to condition.
+ \if@twoside%
+ %%% put the stuff for true here (twoside=true)
+ \fancyhead[RO,LE]{\thepage}
+ \fancyfoot[RO,LE]{\thepage}
+ \fancyhead[LO]{\it\@shorttitle}
+ \fancyhead[RE]{\@author}
+ \fancyfoot[RE,LO]{}
+ \else%
+ %%% put the stuff for false here (twoside=false)
+ \fancyhead[LO]{\it\@shorttitle~~$\cdot$~~\@author}
+ \fancyhead[R]{\thepage}
+ \fancyfoot[R,LO]{}
+ \fi%
+} {}
+
+
+
+% BODY HEIGHT
+% Set up the text body height. For the text height, we calculate the largest number of
+% lines that gives us no more than 4cm bottom margin. This depends on the line spacing,
+% which we need first.
+
+\setstretch{\stretchfactor}
+
+% Debug only: In the next line, \XXXfactor contains the number of lines on a text-only page.
+% \newlength{\XXXunit}\setlength{\XXXunit}{1pt}\newlength{\XXXfactor}\setlength{\XXXfactor}{1pt + ((672pt - \topskip) / \baselineskip) * \XXXunit}
+\newlength{\scratchlength}\setlength{\scratchlength}{\topskip + ((672pt - \topskip) / \baselineskip) * \baselineskip + \baselineskip}
+\setlength{\textheight}{\scratchlength}
+
+
+
+% DOCUMENT COMPONENTS
+% Provides the formatting for the required document components. Specifically, these are
+% the titlepage, declaration, dedication, abstract, and undergraduate project fulfilment.
+
+\renewcommand{\maketitle}{%
+ \begin{titlepage}
+ \singlespacing
+ \addtolength{\oddsidemargin}{-0.75cm}
+ \begin{center}
+ \null\vskip 4.1cm
+ \begin{minipage}[t][7.6cm]{10.5cm}
+ \begin{center}
+ {\LARGE\textbf{\@title}\par}
+ {\Large\textit{\@author}\par}
+ \end{center}
+ \end{minipage}
+ \vfill
+ {\Large\degreetext \par The University of Edinburgh \par\@date \par}
+ \end{center}
+ \end{titlepage}
+ % For two-sided documents it's required that a blank page follow the title page. For
+ % one-sided documents it's required that the title page contribute to the page count.
+ \if@twoside
+ \thispagestyle{empty}
+ \cleardoublepage
+ \else
+ \addtocounter{page}{1}
+ \fi
+}
+
+
+% Declaration style for everything except year 4 projects
+\newcommand{\declaration}[1]{
+ % Doesn't need a chapter number or adding to the contents page
+ \chapter*{Declaration}
+ % Must always be single spaced
+ \begin{singlespace}
+ \def\param{#1}
+ \ifx\param\empty
+ I declare that this thesis was composed by myself
+ and that the work contained therein is my own,
+ except where explicitly stated otherwise in the text.
+ \else
+ {#1}
+ \fi
+ \end{singlespace}
+ {\raggedleft\vspace{2cm}(\textit{\@author})}
+}
+
+
+% Declaration style for year 4 project, argument is degree programme (e.g. MMath)
+\newcommand{\yfourdeclaration}[1]{
+ \vfill
+ \noindent
+ This project report is submitted in partial fulfilment
+ of the requirements for the degree of \textit{#1}.
+}
+
+
+\renewenvironment{abstract}{
+ % Abstracts don't need a chapter number...
+ \chapter*{\abstractname}
+}{
+ % ...but do need adding to the contents page.
+ \addcontentsline{toc}{chapter}{\abstractname}
+}
+
+
+\newenvironment{laysummary}{
+ % A lay summary is required for PhD theses and is not included in the page count. We treat it in a similar way to the abstract here.
+ \chapter*{Lay Summary}
+}{
+ \addcontentsline{toc}{chapter}{Lay Summary}
+}
+
+
+\newenvironment{acknowledgements}{
+ % Acknowledgements environment similar to abtract and lay summary.
+ \chapter*{Acknowledgements}
+}{
+ \addcontentsline{toc}{chapter}{Acknowledgements}
+}
+
+
+\newcommand{\dedication}[1]{%
+ % Handled dedications (e.g. 'For Alex', not acknowledgements)
+ \clearpage
+ \thispagestyle{plain}
+ \vspace*{7cm}
+ \begin{center}
+ \Large\it #1
+ \end{center}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/edmaths/example-references.bib b/macros/latex/contrib/edmaths/example-references.bib
new file mode 100644
index 0000000000..cd65755781
--- /dev/null
+++ b/macros/latex/contrib/edmaths/example-references.bib
@@ -0,0 +1,10 @@
+ This is an example biblography used in example-presentation.tex and
+ example-report.tex, examples of the edmaths Beamer and report styles
+ respectively. When creating a biblography you might find these bibtex
+ templates useful: https://verbosus.com/bibtex-style-examples.html
+
+@misc{koeppe2007,
+ title = {Package `edmaths'},
+ author = {Thomas Koeppe},
+ year = {2007}
+}
diff --git a/macros/latex/contrib/edmaths/example-report.tex b/macros/latex/contrib/edmaths/example-report.tex
new file mode 100644
index 0000000000..2dae5e22a7
--- /dev/null
+++ b/macros/latex/contrib/edmaths/example-report.tex
@@ -0,0 +1,79 @@
+%% This file is an example of using edmaths.sty to style a PhD thesis that
+%% complies with University of Edinburgh typesetting rules. While the
+%% style is LPPL 1.3 licensed, this example is given under a 0BSD license
+%% (https://choosealicense.com/licenses/0bsd), meaning it can be freely
+%% used, copied, modified, and/or redistributed with or without attribution.
+%% See README.md or https://github.com/Foggalong/edinburgh-math-latex for
+%% instructions on using the style.
+
+\documentclass[12pt,twoside]{report}
+
+\title{Thesis Title}
+\author{Author Name}
+\date{YYYY}
+
+\usepackage[phd,fourier,hyperref,colour,fancyhdr]{edmaths}
+
+%\shorttitle{Short title} % You can optionally define a shorter version of your title for the headers if you use the fancyhdr option.
+
+
+\begin{document}
+
+\flushbottom
+\pagenumbering{roman}
+
+\maketitle
+
+\begin{declaration}
+ {I declare that this thesis has been composed solely by myself and that it has not been
+ submitted, in whole or in part, in any previous application for a degree. Except where
+ stated otherwise by reference or acknowledgement, the work presented is entirely my
+ own.}
+ % Required for PhD theses. This declaration should be tailored to your thesis. If your thesis includes previously-published work, it should be declared on this page. See https://www.ed.ac.uk/sites/default/files/atoms/files/thesis_signed_declaration.pdf.
+\end{declaration}
+
+\begin{abstract}
+ The abstract goes here.
+\end{abstract}
+
+\begin{laysummary}
+ A lay summary is required for PhD theses. See \href{https://www.ed.ac.uk/sites/default/files/atoms/files/lay_summary_in_theses.pdf}{this page on the University website}.
+\end{laysummary}
+
+\dedication{In memory of my sanity.}
+
+\begin{acknowledgements}
+ I'd like to thank my supervisor for putting up with me for four years.
+\end{acknowledgements}
+
+
+\tableofcontents
+% Uncomment to add 'Contents' entry to contents page
+% \addcontentsline{toc}{chapter}{Contents}
+
+\newpage
+\pagenumbering{arabic}
+
+\chapter{First Chapter}
+
+This is an example of a report made using the \texttt{edmaths} stylesheet~\cite{koeppe2007}, which is designed to ensure compliance with the University of Edinburgh's typesetting requirements for reports and theses.
+
+\section{First section}
+
+\section{Second section}
+
+
+\chapter{Second Chapter}
+
+\appendix
+
+\chapter{First Appendix}
+
+
+\bibliography{example-references}
+\addcontentsline{toc}{chapter}{Bibliography}
+% Choose a reference style from https://verbosus.com/bibtex-style-examples.html
+\bibliographystyle{ieeetr}
+% Or use the `amsrefs' package, https://ams.org/tex/amsrefs.html
+
+\end{document}
diff --git a/macros/latex/contrib/enverb/README.md b/macros/latex/contrib/enverb/README.md
new file mode 100644
index 0000000000..2c035b8eb6
--- /dev/null
+++ b/macros/latex/contrib/enverb/README.md
@@ -0,0 +1,34 @@
+-------------------------------------------------------------------------------
+# `enverb` -- read an environment verbatim
+
+Version 2024-08-28 v1.0
+
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+
+Hosted on the Island of TeX at https://gitlab.com/islandoftex/texmf/enverb
+
+-------------------------------------------------------------------------------
+
+Copyright (C) 2023-2024 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License (LPPL), either version 1.3c of this license or (at your
+option) any later version. The latest version of this license is in the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte
+
+-------------------------------------------------------------------------------
+
+## Summary of Contents
+
+`enverb` provides means to read the contents of a user-defined environment
+verbatim. It also provides facilities to then typeset them inside a
+listing-environment provided by LaTeX or another package or to evaluate them as
+normal LaTeX code. This gives one the full flexibility of LaTeX to customise the
+looks of documentation and examples without the need of any temporary files.
+Additionally you can define your own processing of the contents, either line
+oriented or processing the entire contents at once, however you see fit.
diff --git a/macros/latex/contrib/enverb/doc-enverb.tex b/macros/latex/contrib/enverb/doc-enverb.tex
new file mode 100644
index 0000000000..c0c578f0ef
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-enverb.tex
@@ -0,0 +1,47 @@
+\subsection{Grabbing an Environment Verbatim}
+\begin{function}{\enverb}
+ \begin{syntax}
+ \cs{enverb}\marg{key=value}\oarg{key=value}
+ \cs{enverb}\meta{*}\marg{key=value}
+ \end{syntax}
+ This function will store the contents of the enclosing environment verbatim
+ inside of \cs{enverbBody}. It should be the last thing you invoke inside the
+ |\begin| code of your environment and mustn't be enclosed in any nested
+ environment. Both the mandatory and the optional \meta{key=value} argument are
+ parsed by \cs{enverb} -- see \autoref{sec:keys} about the specifics of this.
+ The mandatory argument is meant for a package/code developer to assign the
+ sensible default values for the envisioned functionality and always parsed
+ inside the keyset of \cs{enverb}, while the optional one is meant to be used
+ by the user and as such should be the first thing inside the enclosing
+ environment (if the user wants to use an optional argument).\par
+ \cs{enverb} sets the special characters
+ \begingroup
+ \def\do#1%
+ {%
+ \ifx\ #1\else
+ , \texttt{\csname @gobble\expandafter\endcsname\string#1}%
+ \fi
+ }%
+ \csname @secondoftwo\expandafter\endcsname\romannumeral`\^^@\dospecials
+ \endgroup
+ \ to the category code 12 (other), and makes both spaces and tabulators active
+ tokens. By default each line break will be a category code 12 carriage return
+ (character code 13), but see the |eol| option in \autoref{sec:keys}.\par
+ A line that contains only whitespace on input will be output as an empty
+ line.\par
+ The \cs{enverb} syntax of the optional argument has a few peculiarities. It is
+ scanned for the opening bracket either on the same line as the |\begin|
+ statement of the enclosing environment, or on any subsequent line until a
+ non-whitespace character is found. The optional argument is read using the
+ \enquote{normal} (so surrounding) category code regime, but it is scanned for
+ it in a way that the first token is still read verbatim if no optional
+ argument was given.\par
+ The first non-whitespace token that's not an opening bracket must not be found
+ on the same line as the |\begin| statement, and if there was an optional
+ argument there shouldn't be any non-whitespace token trailing it in that line.
+ Additionally there should be no non-whitespace material following the |\end|
+ statement (anything preceding it in the same line is for the most part
+ ignored; |\begin| and |\end| are not balanced, the first |\end| with the
+ correct environment as argument terminates scanning).\par
+ The starred version of \cs{enverb} doesn't search for an optional argument.
+\end{function}
diff --git a/macros/latex/contrib/enverb/doc-examples.tex b/macros/latex/contrib/enverb/doc-examples.tex
new file mode 100644
index 0000000000..043890dc10
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-examples.tex
@@ -0,0 +1,178 @@
+\subsection{Examples}
+
+The following preamble should work for all of the examples in this section
+(except for the last one, which can be placed as is in the preamble since it
+loads all the packages it needs).
+\begin{ex}[no-tcb]
+ \documentclass{article}
+
+ \usepackage{enverb}
+ \usepackage{color}
+ \usepackage{multicol}
+ \usepackage{listings}
+\end{ex}
+
+\subsubsection{A Boxed Verbatim Display}
+Defining a boxed verbatim macro is pretty simple, we just need to set up the
+|bol| and |eol| hooks such that line breaks are respected, the rest of the setup
+already works with \LaTeX's default definition for active spaces (and tabs).
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {\enverb{bol=\strut, eol=\strut\par}}
+ {%
+ \par
+ \medskip
+ \noindent
+ \fbox
+ {%
+ \parbox
+ {\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ {%
+ \raggedright\frenchspacing\ttfamily
+ \enverbBody
+ }%
+ }%
+ \par
+ \medskip
+ }
+\end{ex}
+The probably most complicated part there is the calculation of the |\parbox|'s
+width, which is just a line width compensated by the space taken up by |\fbox|.
+
+If we now use this environment we get a nice display of our verbatim contents
+(you might want to play with this and see what happens if your input lines are
+longer than a |\linewidth|; also note that the spaces after |\begin| and |\end|
+are optional just like within the normal category code regime, \envlogo\ will
+still find the end of its scope).
+\begin{ex}[restore]
+ \begin {myenv}
+ \This is a%
+ \begin{environment}
+ that looks \good
+ \end {myenv}
+\end{ex}
+
+\subsubsection{A Page-Breakable Boxed Verbatim Display}
+The previous example was boxed, lets put that to the next level. We can also
+achieve page- (and column-)breakable boxed verbatim environments. The simple
+minded trick here is to draw only line segments at the start and end of each
+line using the |\vrule| primitive. As a result this will look horribly wrong for
+lines longer than a single output line, but that would require too much hassle
+(we just pay attention on our input formatting).
+
+As an added bonus this should have line counters at the start of each line. For
+that we first define a little helper.
+\begin{ex}[store,no-tcb]
+ \newcount\myline
+ \newcommand\linecounting
+ {%
+ \advance\myline1
+ \textcolor[gray]{.7}{\footnotesize\the\myline}%
+ \quad
+ }
+\end{ex}
+Next we can define our environment. The |bol| and |eol| hooks look similar to
+the previous example, but this time they got some added contents for the
+additional formatting. Also, we borrow some code from \LaTeX's starred
+\env{verbatim} to make spaces visible (since they are active in |\enverb| this
+is also pretty straight forward).
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {%
+ \enverb
+ {
+ bol=\noindent\strut\vrule\hskip\fboxsep\linecounting
+ ,eol=\hfill\hskip\fboxsep\vrule\strut\par
+ }%
+ }
+ {%
+ \medskip
+ \hrule
+ \ttfamily\frenchspacing
+ \UseName{@setupverbvisiblespace}\UseName{@vobeyspaces}%
+ \enverbBody
+ \hrule
+ \medskip
+ }
+\end{ex}
+The entire result can then be used with ease.
+\begin{ex}[restore,same-line=.38]
+ \begin{multicols}{2}
+ Text above
+ \begin{myenv}
+ This \is
+ {an} $example$
+ ^of verbatim_
+ input\, being
+ displayed boxed.
+ \end{myenv}
+ Text below
+ \end{multicols}
+\end{ex}
+
+\subsubsection{The Real Deal -- Using the Body Twice}
+All of the above is just pretty playthings that are easily possible with
+\envlogo\ (and with relative few lines of code) though most likely better done
+by more full fledged packages like \pkg{listings} or similar. The original
+reason for all this was to gain control over both the listing and typeset result
+for code documentation. A simple example could be the following:
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {\enverb{}}
+ {%
+ \par\noindent
+ \begin{minipage}{0.48\linewidth}
+ \enverbListing{lstlisting}{}
+ \end{minipage}%
+ \hfill
+ \colorbox{yellow}
+ {%
+ \begin{minipage}{\dimexpr0.48\linewidth-2\fboxsep\relax}
+ \enverbExecute
+ \end{minipage}%
+ }%
+ \par
+ }
+\end{ex}
+Which if used looks like the following (admittedly not that pretty):
+\begin{ex}[restore]
+ \begin{myenv}
+ This%
+ is%
+ great.%
+ \end{myenv}
+\end{ex}
+
+\subsubsection{\envlogo's Style}
+And if you wondered, you guessed it, all examples in this documentation are
+typeset using an \envlogo\ derived environment with a few bells and whistles
+more (for instance collecting material, typesetting the verbatim listing, but
+executing it together with a later code block).
+
+The following is a complete listing of everything that sets up the looks of this
+documentation's example blocks. Note that the macros starting with |\enverb@ex@|
+are not internals of \envlogo\ but exclusive to the code formatting the
+examples.
+\begin{exwrap}{breakable}
+ \footnotesize
+ \lstinputlisting{preamble-examples.tex}
+\end{exwrap}
+
+And if we use that we can do all sorts of interesting things:
+\begingroup
+ \NewEnvironmentCopy{ex2}{ex}
+ \begin{ex2}[same-line=.4]
+ We define a helper:
+ \begin{ex}[store,no-tcb]
+ \newcommand\foo{bar}
+ \end{ex}
+ And then can use it:
+ \begin{ex}[restore]
+ This is \foo
+ \end{ex}
+ A wider example:
+ \begin{ex}[below]
+ This is a wider example.
+ \end{ex}
+ \end{ex2}
+\endgroup
diff --git a/macros/latex/contrib/enverb/doc-keys.tex b/macros/latex/contrib/enverb/doc-keys.tex
new file mode 100644
index 0000000000..6d36075d26
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-keys.tex
@@ -0,0 +1,111 @@
+\subsection{Available Keys\label{sec:keys}}
+\begin{function}{\enverbsetup}
+ \begin{syntax}
+ \cs{enverbsetup} \marg{key=value}
+ \end{syntax}
+ This macro can be used to (locally) change the settings of \envlogo\ outside
+ of the |\enverb| macro.
+\end{function}
+
+The available keys are:
+\begin{function}{ignore}
+ \begin{syntax}
+ ignore = \meta{int}\keydefault{\emph{unused}}
+ \end{syntax}
+ Set up the number of tokens to ignore at the start of each line. This is only
+ applied after the matching |\end| was found, hence doesn't affect the
+ |\end|-line. A line containing any non-whitespace tokens but in total
+ fewer tokens (counting whitespace) than \meta{int} will lead to undefined
+ behaviour.\par
+ |ignore| and |auto-ignore| are mutually exclusive.
+\end{function}
+
+\begin{function}{auto-ignore}
+ \begin{syntax}
+ auto-ignore\keydefault{true}
+ auto-ignore = \meta{bool}
+ \end{syntax}
+ If this is true (or no value is given) the number of leading tokens is
+ determined by the number of leading tokens found in the line with the matching
+ |\end|. This allows for nice nesting of indentation levels in your \LaTeX\
+ sources without affecting functionality. A line containing any non-whitespace
+ tokens but in total fewer tokens (counting whitespace) than the leading tokens
+ in the |\end|-line will lead to undefined behaviour.\par
+ |ignore| and |auto-ignore| are mutually exclusive.
+\end{function}
+
+\begin{function}{more-ignore}
+ \begin{syntax}
+ more-ignore = \meta{int}\keydefault{2}
+ \end{syntax}
+ If |auto-ignore| is true this specifies how many tokens in addition to the
+ number of leading tokens shall be ignored at the start of each line. This
+ allows for even the contents of the |\enverb|-environment to be further
+ indented than the |\begin| and |\end| statement.
+\end{function}
+
+\begin{function}{bol}
+ \begin{syntax}
+ bol = \meta{tokens}\keydefault{\emph{empty}}
+ bol+ = \meta{tokens}
+ +bol = \meta{tokens}
+ \end{syntax}
+ Defines which \meta{tokens} are placed at the \textbf{b}egin \textbf{o}f
+ \textbf{l}ines. Your \meta{tokens} can be arbitrary contents and are placed as
+ is (so can contain macros which work as you intend when using
+ \cs{enverbBody}). Keep in mind that if you want to use this with
+ \cs{enverbExecute} or \cs{enverbListing} your tokens should be rescanned to
+ the same code after they got |\detokenize|d.\par
+ The |bol+| variant adds your \meta{tokens} after the current contents of
+ |bol|, while |+bol| adds them in front of the contents.
+\end{function}
+
+\begin{function}{eol}
+ \begin{syntax}
+ eol = \meta{tokens}\keydefault{\emph{\string^\string^M\textsubscript{12}}}
+ eol+ = \meta{tokens}
+ +eol = \meta{tokens}
+ \end{syntax}
+ Defines which \meta{tokens} are placed at the \textbf{e}nd \textbf{o}f
+ \textbf{l}ines. Your \meta{tokens} can be arbitrary contents and are placed as
+ is (so can contain macros which work as you intend when using
+ \cs{enverbBody}). Keep in mind that if you want to use this with
+ \cs{enverbExecute} or \cs{enverbListing} your tokens should be rescanned to
+ the same code after they got |\detokenize|d.\par
+ The |eol+| variant adds your \meta{tokens} after the current contents of
+ |eol|, while |+eol| adds them in front of the contents.
+\end{function}
+
+\begin{function}{key-handler}
+ \begin{syntax}
+ key-handler = \meta{code}\keydefault{\emph{throw an error}}
+ \end{syntax}
+ If used any undefined keys encountered while parsing the mandatory and
+ optional arguments of \cs{enverb} is parsed via \meta{code}. Inside your
+ \meta{code} use |#1| to specify where to input the list of unknown keys. This
+ can be used to specify additional keys to provide an interface to control your
+ wrapping code. This includes the handling of any unknown keys encountered
+ while parsing the mandatory \meta{key=value} argument of \cs{enverb}.
+\end{function}
+
+\begin{function}{key-set}
+ \begin{syntax}
+ key-set = \meta{set}
+ \end{syntax}
+ \envlogo\ uses \pkg{expkv} for its key-parsing. This key is a special form of
+ |key-handler| defining a handler that parses the unknown keys as part of
+ \meta{set} in \pkg{expkv} (so basically a shorthand for
+ |key-handler = \ekvset{|\meta{set}|}{#1}|).
+\end{function}
+
+\begin{function}{oarg-not-enverb}
+ \begin{syntax}
+ oarg-not-enverb\keydefault{false}
+ oarg-not-enverb = \meta{bool}
+ \end{syntax}
+ If this is true (or no value is given) the \meta{key=value} list in the
+ optional argument to \cs{enverb} is not parsed as keys of \envlogo\ but only
+ inside your defined |key-handler|. Obviously this key doesn't have any effect
+ if only used as part of the optional argument of \cs{enverb}.
+\end{function}
+
diff --git a/macros/latex/contrib/enverb/doc-using-contents.tex b/macros/latex/contrib/enverb/doc-using-contents.tex
new file mode 100644
index 0000000000..c3a147ab97
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-using-contents.tex
@@ -0,0 +1,40 @@
+\subsection{Using Verbatim Environment Contents}
+\begin{function}{\enverbBody}
+ \begin{syntax}
+ \cs{enverbBody}
+ \end{syntax}
+ This macro holds the contents of the last scanned \cs{enverb}-body,
+ assignments to it by the package are all local.
+\end{function}
+
+\begin{function}{\enverbExecute}
+ \begin{syntax}
+ \cs{enverbExecute}
+ \end{syntax}
+ This function executes the current contents of \cs{enverbBody} as though they
+ would be part of your input at this place (using |\scantokens|, it is tried as
+ good as possible to tackle |\scantokens|'s shortcomings; also it is assumed
+ that you didn't change the |eol| key, or else the newlines aren't carried over
+ but whatever your |eol| value set is used). The entire contents are
+ |\detokenize|d once before |\scantokens| does its magic (shouldn't affect the
+ verbatimly read material, but is deemed a sensible safety measure if something
+ unexpected happens; this also assumes that anything you placed inside |bol| or
+ |eol| is rescanned into the same stuff once |\detokenize|d).\par
+ The function isn't fully expandable, the contents are executed at the current
+ group level.
+\end{function}
+
+\begin{function}{\enverbListing}
+ \begin{syntax}
+ \cs{enverbListing} \marg{env} \marg{args}
+ \end{syntax}
+ This function is meant to reuse the current contents of \cs{enverbBody} inside
+ another verbatim environment. The used mechanism is tested to work with
+ \env{verbatim}, and environments defined by \pkg{fancyvrb}, \pkg{listings} and
+ \pkg{minted} (provided you use the default |eol| setting). \meta{env} is the
+ environment name in which the contents should be nested, and \meta{args} is
+ material to be placed after the |\begin| statement (just as you input them,
+ with the outer braces from this argument removed).\par
+ Just like |\enverbExecute| this |\detokenize|s the current content of
+ \cs{enverbBody} as well as your \meta{args} and uses |\scantokens|.
+\end{function}
diff --git a/macros/latex/contrib/enverb/enverb-doc.pdf b/macros/latex/contrib/enverb/enverb-doc.pdf
new file mode 100644
index 0000000000..fc5c35311e
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/enverb/enverb-doc.tex b/macros/latex/contrib/enverb/enverb-doc.tex
new file mode 100644
index 0000000000..985e9e03b8
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb-doc.tex
@@ -0,0 +1,87 @@
+\IfFileExists{enverb.sty}{\RequirePackage{enverb}}{}
+
+\PassOptionsToPackage{full}{textcomp}
+\documentclass{l3doc}
+
+\usepackage[oldstylenums,nott]{kpfonts}
+\usepackage{randtext,xcolor,array}
+\usepackage{xistercian}
+\usepackage{accsupp}
+\usepackage{csquotes}
+\usepackage{multicol}
+%\usepackage{microtype}
+
+\input{preamble-logo}
+\input{preamble-examples}
+
+\newcommand\keydefault[1]{\hfill\textcolor{enverbgrey}{default: #1}}
+
+\let\metaORIG\meta
+\protected\def\meta #1{\texttt{\metaORIG{#1}}}
+\renewcommand*\thefootnote{\cistercian{footnote}}
+\hypersetup{linkcolor=red!80!black,urlcolor=purple!80!black}
+\makeatletter
+\@ifdefinable\gobbledocstriptag{\def\gobbledocstriptag#1>{}}
+\protected\def\savefootnotestuff
+ {%
+ \let\mysavethefootnote\thefootnote
+ \let\mysave@makefnmark\@makefnmark
+ \let\mysave@makefntext\@makefntext
+ }
+\def\restorefootnotestuff{\texorpdfstring\restorefootnotestuff@{}}
+\def\restorefootnotestuff@
+ {%
+ \global\let\thefootnote\mysavethefootnote
+ \global\let\@makefnmark\mysave@makefnmark
+ \global\let\@makefntext\mysave@makefntext
+ }
+\makeatother
+
+\begin{document}
+\savefootnotestuff
+\title
+ {%
+ \restorefootnotestuff
+ The \envlogo\ package\\[\medskipamount]
+ \Large read an environment verbatim%
+ }
+\GetFileInfo{enverb.sty}
+\date{\filedate\space\fileversion}
+\author{Jonathan P. Spratte\thanks{\protect\randomize{jspratte@yahoo.de}}}
+
+\maketitle
+
+\begin{abstract}
+ \noindent\parfillskip=0pt
+ The \envlogo\ package provides a simple yet effective way to collect the
+ verbatim contents of an environment into a macro, which the user can then pick
+ up to implement additional functionality, for instance a simple output routine
+ or rescanning the contents into code listings or for typesetting alike.
+ Arbitrary contents can be placed on either end of each line allowing flexible
+ line-oriented processing.
+\end{abstract}
+
+\tableofcontents
+
+\begin{documentation}
+\section{Documentation}
+Originally I was unsatisfied by the degree of freedom and customisation present
+in the available verbatim-environment providing packages like \pkg{listings},
+\pkg{minted}, \emph{etc.}, when one wants to document \TeX\ code and show the
+results next to it (or I didn't bother to dig through their manuals). Also I
+didn't like them producing temporary files so long as that's not necessary. As a
+result I implemented what was basically the first version of \envlogo\ for one
+of my other packages.
+
+\input{doc-enverb}
+\input{doc-using-contents}
+\input{doc-keys}
+\input{doc-examples}
+\end{documentation}
+
+\clearpage
+\begin{implementation}
+ \section{Implementation}
+ \DocInput{enverb.dtx}
+\end{implementation}
+\end{document}
diff --git a/macros/latex/contrib/enverb/enverb.dtx b/macros/latex/contrib/enverb/enverb.dtx
new file mode 100644
index 0000000000..a33dc713d7
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb.dtx
@@ -0,0 +1,720 @@
+% \iffalse meta-comment
+%
+% File: enverb.dtx Copyright (C) 2023-2024 Jonathan P. Spratte
+%
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this license or
+% (at your option) any later version. The latest version of this license is in
+% the file:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% ------------------------------------------------------------------------------
+%
+%<*driver>^^A>>=
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+\input l3docstrip.tex
+\askforoverwritefalse
+\preamble
+
+--------------------------------------------------------------
+enverb -- read an environment verbatim
+E-mail: jspratte@yahoo.de
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+--------------------------------------------------------------
+
+Copyright (C) 2023-2024 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this license or
+(at your option) any later version. The latest version of this license is in
+the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte.
+
+This work consists of the files enverb.dtx
+ enverb-doc.tex
+and the derived files enverb-doc.pdf
+ enverb.sty
+
+\endpreamble
+\postamble
+\endpostamble
+\generate{\file{enverb.sty}{\from{enverb.dtx}{pkg}}}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</driver>^^A=<<
+% \fi
+%
+% \gobbledocstriptag
+%<*pkg>
+%
+% \subsection{Who we are}
+%
+% \begin{macro}[internal]{\enverb@date,\enverb@version}
+% We store the package version and date inside macros.
+% \begin{macrocode}
+\newcommand*\enverb@date{2024-08-28}
+\newcommand*\enverb@version{1.0}
+% \end{macrocode}
+% \end{macro}
+%
+% And the package identification:
+% \begin{macrocode}
+\ProvidesPackage{enverb}
+ [\enverb@date\space v\enverb@version\space read an environment verbatim]
+% \end{macrocode}
+%
+% \subsection{Some required \LaTeXe\ style argument grabbers}
+% \begin{macro}[internal]{\@thirdofthree,\@firstofnine}
+% This here are just two argument grabbers that aren't defined in all versions
+% of \LaTeXe.
+% \begin{macrocode}
+\providecommand\@thirdofthree[3]{#3}
+\providecommand\@firstofnine[9]{#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Borrow some code}
+% \begin{macro}[internal]
+% {\enverb@count,\enverb@ifxTF,\enverb@chargen,\enverb@othercr}
+% We'll make use of the following two \pkg{expl3} functions, but since the
+% remainder of this package is coded in \LaTeXe\ style we stick to that.
+% \begin{macrocode}
+\ExplSyntaxOn
+\cs_new_eq:NN \enverb@count \tl_count:n
+\cs_new_eq:NN \enverb@ifxTF \token_if_eq_meaning:NNTF
+\cs_new_eq:NN \enverb@chargen \char_generate:nn
+\cs_set:Npx \enverb@othercr { \char_generate:nn {13} {12} }
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Key-value Setup}
+% First we need to load a package to allow us defining our keys, then we define
+% a bunch of keys:
+% \begin{macrocode}
+\RequirePackage{expkv-def}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ekvdefinekeys{enverb}
+ {
+ protect code ignore = \let\enverb@ifautoignore\@secondoftwo
+ ,also eint ignore = \enverb@ignore
+ ,boolTF auto-ignore = \enverb@ifautoignore
+ ,initial auto-ignore
+ ,eint more-ignore = \enverb@moreignore
+ ,initial more-ignore = 2
+ ,long store bol = \enverb@bol@content
+ ,long code bol+ = \enverb@add\enverb@bol@content{#1}
+ ,long code +bol = \enverb@pre\enverb@bol@content{#1}
+ ,long store eol = \enverb@eol@content
+ ,einitial eol = \enverb@othercr
+ ,long code eol+ = \enverb@add\enverb@eol@content{#1}
+ ,long code +eol = \enverb@pre\enverb@eol@content{#1}
+ ,protect code key-handler = \protected\long\def\enverb@keyhandler##1{#1}
+ ,protect code key-set = \protected\long\ekvsetdef\enverb@keyhandler{#1}
+ ,unknown code = \enverb@add\enverb@unknown@kv{, {#3} = {#2} }
+ ,unknown noval = \enverb@add\enverb@unknown@kv{, {#2} }
+ ,boolTF oarg-not-enverb = \enverb@ifoargtokeyhandler
+ }
+% \end{macrocode}
+% \begin{macro}{\enverbsetup}
+% We need a user facing macro to set our keys.
+% \begin{macrocode}
+\protected\long\ekvsetdef\enverbsetup{enverb}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@unknown@kv}
+% This is a storage for all unknown keys encountered.
+% \begin{macrocode}
+\let\enverb@unknown@kv\@empty
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Miscellaneous Auxiliary Functions}
+%
+% \begin{macro}[internal]{\enverb@stop}
+% A very simple minded stop-macro, just gobble up to the eponymous mark.
+% \begin{macrocode}
+\long\def\enverb@stop#1\enverb@stop{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@error}
+% \begin{macrocode}
+\protected\def\enverb@error{\PackageError{enverb}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@misused}
+% This is an error message that'd be used inside a |\lowercase| environment if
+% put where it originally should've been. Hence we define it now to get
+% correct formatting.
+% \begin{macrocode}
+\protected\def\enverb@misused
+ {%
+ \enverb@error
+ {Misused \string\enverb. Input already tokenised}%
+ {%
+ It seems you used the \string\enverb\space based environment
+ {\@currenvir} inside another\MessageBreak
+ macro's or a primitive's argument; that doesn't work.%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@keyhandler, \enverb@keyhandler@}
+% This is the initial definition of the handler for unknown keys, namely throw
+% an error containing the list of unknown keys.
+% \begin{macrocode}
+\protected\long\def\enverb@keyhandler#1%
+ {%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@gobbletwo
+ \fi
+ \@firstofone
+ {%
+ \enverb@error
+ {%
+ Unknown keys encountered:
+ \expanded
+ {%
+ \ekvparse
+ {\MessageBreak\@spaces\unexpanded}%
+ {\MessageBreak\@spaces\enverb@keyhandler@}%
+ {#1}%
+ }%
+ \@gobble
+ }%
+ {%
+ Perhaps you misspelled some key names? Or you forgot to set up
+ custom key\MessageBreak
+ parsing.%
+ }%
+ }%
+ }
+\long\def\enverb@keyhandler@#1{\unexpanded{#1} = \unexpanded}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Collector}
+%
+% Much of the code in this package works under a weird category code regime,
+% which the following sets up. After this |~| will be an active newline
+% character, |:| will be an active space, and |;| will be an active tab.
+% \begin{macrocode}
+\begingroup
+\lccode`\~=`\^^M
+\catcode`\:=13
+\lccode`\:=`\ % <- space
+\catcode`\;=13
+\lccode`\;=`\^^I % <- tab
+\lowercase{\endgroup
+% \end{macrocode}
+%
+% \begin{macro}[internal]
+% {\enverb@body@space,\enverb@body@tab,\enverb@body@newline,\enverb@collect}
+% To quickly check whether a line contains only spaces or tabs we define them
+% as empty, that way we can remove them simply by one step of |\romannumeral|
+% expansion. The newlines on the other hand grab the entire next line, check
+% whether the matching |\end| is encountered, and if not leave the contents
+% in |\unexpanded|. This grabbing is not done by the newline characters
+% directly, but instead via |\enverb@collect| so that low level errors are
+% easier to understand.
+% \begin{macrocode}
+\def\enverb@body@space{}
+\def\enverb@body@tab{}
+\def\enverb@body@newline{\enverb@collect}
+\def\enverb@collect#1~%
+ {\enverb@ifnotend{#1}{\enverb@bol\unexpanded{#1}\enverb@eol\enverb@collect}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbBody}
+% \begin{macro}[internal]{\enverb@body@setup}
+% This function sets up the entire category code regime and initial
+% assignments of special tokens.
+% \begin{macrocode}
+\protected\def\enverb@body@setup
+ {%
+ \let\enverbBody\@empty
+ \let\do\@makeother\dospecials
+ \endlinechar=`\^^M
+ \catcode`\^^M=13 \let~\enverb@body@newline
+ \catcode`\ =13 \let:\enverb@body@space
+ \catcode`\^^I=13 \let;\enverb@body@tab
+ \let\enverb@bol\relax
+ \let\enverb@eol\relax
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \enverb@ifxanyTF, \enverb@ifxanyTF@, \enverb@ifxanyTF@ifdone,
+% \enverb@ifxanyTF@F, \enverb@ifxanyTF@T
+% }
+% This function provides a loop to check a list of symbols whether any of them
+% matches the meaning of the first argument.
+% \begin{macrocode}
+\long\def\enverb@ifxanyTF#1#2%
+ {\enverb@ifxanyTF@#1#2\enverb@ifxanyTF@}
+\long\def\enverb@ifxanyTF@#1#2%
+ {%
+ \enverb@ifxanyTF@ifdone#2\enverb@ifxanyTF@F\enverb@ifxanyTF@
+ \enverb@ifxTF#1#2\enverb@ifxanyTF@T{\enverb@ifxanyTF@#1}%
+ }
+\long\def\enverb@ifxanyTF@ifdone#1\enverb@ifxanyTF@{}
+\long\def\enverb@ifxanyTF@F
+ \enverb@ifxanyTF@\enverb@ifxTF#1\enverb@ifxanyTF@T#2#3#4%
+ {#4}
+\long\def\enverb@ifxanyTF@T#1\enverb@ifxanyTF@#2#3{#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@search@oarg@a, \enverb@search@oarg@ifx}
+% This function shall search for the optional argument. The first case is
+% rather easy, namely we check for a space (remember that |:| is an active
+% space character in the current context). If this isn't the first line (so
+% the line containing the |\begin| statement) that space is added to the body
+% and searching continues.\par
+% Next repeat the same logic but for an active tab (|;|). Afterwards we check
+% for an active newline (|~|) which if found sets the conditional for the
+% first line to false, still applying the same logic otherwise.\par
+% Lastly we check for the open bracket. If it's found we collect our optional
+% argument, otherwise the body starts, which is either an illegal character
+% immediately following the |\begin| line, or we normally collect the body.
+%
+% \begin{macrocode}
+\def\enverb@search@oarg@ifx#1#2%
+ {%
+ \enverb@ifxTF#1\@let@token
+ {%
+ \ifenverb@firsteol#2\else\enverb@body@add{#1}\fi
+ \enverb@search@oarg@b
+ }%
+ }
+\protected\def\enverb@search@oarg@a
+ {%
+ \enverb@search@oarg@ifx:{}%
+ {%
+ \enverb@search@oarg@ifx;{}%
+ {%
+ \enverb@search@oarg@ifx~\enverb@firsteolfalse
+ {%
+ \enverb@ifxTF{[}\@let@token
+ {\enverb@oarg}%
+ {%
+ \enverb@ifxanyTF\@let@token
+ {%
+ \@sptoken\par\bgroup\egroup$&##^_% $
+ }
+ {%
+ \enverb@misused
+ \endgroup
+ }%
+ {%
+ \ifenverb@firsteol
+ \expandafter\enverb@body@after@begin
+ \else
+ \expandafter\enverb@body
+ \fi
+ }%
+ }%
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\enverb@body, \enverb@body@after@oarg, \enverb@body@after@begin}
+% The body collection works by collecting everything inside a macro in one
+% sweep, and a second pass over the collected material to strip leading spaces
+% if the |ignore| or |auto-ignore| feature is used. This macro starts the
+% first sweep. Since during the collection of the optional argument we might
+% already have collected a few tokens we place those at the start by expanding
+% the current definition of |\enverbBody| once.
+% \begin{macrocode}
+\protected\def\enverb@body
+ {\edef\enverbBody{\iffalse}\fi\expandafter\enverb@collect\enverbBody}
+% \end{macrocode}
+% The other two macros also start collecting the body, but are only called
+% after either an optional argument was found, or if the first non-ignored
+% character of the optional argument search was encountered before the first
+% newline. In both cases we check whether the remainder of that line can be
+% considered blank, and if so collect the body.
+% \begin{macrocode}
+\def\enverb@body@after@oarg#1~%
+ {\enverb@ensure@blank{#1}{closing bracket}\enverb@body}
+\def\enverb@body@after@begin#1~%
+ {\enverb@ensure@blank{#1}{\string\begin}\enverb@body}
+% \end{macrocode}
+% This is also the last place we need the strange category setup in, so we
+% close the delimiting brace of the |\lowercase| above here.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ensure@blank}
+% We actually need to define the check for an empty line. This check here
+% works for our specifically set up regime of spaces and tabs (which both
+% expand to nothing, the same trick is basically used twice, though we once
+% fully expand and once use romannumeral-expansion).
+% \begin{macrocode}
+\newcommand\enverb@ensure@blank[2]
+ {%
+ \expandafter\enverb@ifempty\expanded{{#1}}{}%
+ {%
+ \expanded
+ {%
+ \noexpand\enverb@error
+ {%
+ Line after #2 not empty.\noexpand\MessageBreak
+ Contains: \detokenize\expandafter{\romannumeral`\^^@#1}%
+ }%
+ {%
+ \noexpand\enverb will try to ignore this. You should clean up
+ your input.%
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\enverb@ifempty,\enverb@ifempty@,\enverb@ifempty@true}
+% This is just a quick argument-grabbing based test for an empty argument.
+% \begin{macrocode}
+\newcommand\enverb@ifempty[1]
+ {%
+ \enverb@ifempty@\enverb@ifempty@A#1\enverb@ifempty@B.\enverb@ifempty@true
+ \enverb@ifempty@A\enverb@ifempty@B
+ }
+\def\enverb@ifempty@#1\enverb@ifempty@A\enverb@ifempty@B#2#3{#3}
+\def\enverb@ifempty@true\enverb@ifempty@A\enverb@ifempty@B#1#2{#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@add,\enverb@pre,\enverb@body@add}
+% These are just two functions to add things to a token list storing macro,
+% one is available for arbitrary contents, the other is used for the |body|.
+% \begin{macrocode}
+\protected\long\def\enverb@add#1#2{\edef#1{\unexpanded\expandafter{#1#2}}}
+\protected\long\def\enverb@pre#1#2%
+ {\edef#1{\unexpanded{#2}\unexpanded\expandafter{#1}}}
+\protected\def\enverb@body@add{\enverb@add\enverbBody}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverb}
+% This macro is the front facing command that starts the entire grabbing
+% logic. The first thing we need to do is define the auxiliary we use to check
+% whether we're done collecting the body, which is dependent on the current
+% environment's name. Next we store the mandatory argument in |marg| and
+% initialise the |oarg|-storage, category regime, and |firsteol|-boolean.
+% Finally we start searching for the optional argument.
+% \begin{macrocode}
+\NewDocumentCommand \enverb { s +m }
+ {%
+ \expandafter\enverb@ifnotend@setup@perhaps\expanded
+ {{\string{\@currenvir\string}}}%
+ \let\enverb@collected@oarg\@empty
+ \edef\enverb@collected@marg{\unexpanded{#2}}%
+ \begingroup
+ \enverb@body@setup
+ \IfBooleanTF{#1}%
+ {\enverb@body@after@begin}%
+ {%
+ \enverb@firsteoltrue
+ \enverb@search@oarg
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ifenverb@firsteol,\enverb@firsteoltrue,\enverb@firsteolfalse}
+% A simple \TeX-style boolean to keep track whether we're in front of the
+% first newline.
+% \begin{macrocode}
+\newif\ifenverb@firsteol
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@search@oarg, \enverb@search@oarg@b}
+% The core function to search for an optional argument was already defined
+% above, these are the first and third step of that functionality (starting
+% and resuming to search).
+% \begin{macrocode}
+\protected\def\enverb@search@oarg{\futurelet\@let@token\enverb@search@oarg@a}
+\protected\def\enverb@search@oarg@b{\expandafter\enverb@search@oarg\@gobble}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@oarg, \enverb@oarg@}
+% This is used once the opening brace of the optional argument is found. First
+% we close the group in which the body's category code regime is active, then
+% we actually collect the optional argument with the normal category codes,
+% restore the body's regime and collect it.
+% \begin{macrocode}
+\protected\def\enverb@oarg{\endgroup\enverb@oarg@}
+\NewDocumentCommand\enverb@oarg@{+O{}}
+ {%
+ \enverb@add\enverb@collected@oarg{#1}%
+ \begingroup
+ \enverb@body@setup
+ \enverb@body@after@oarg
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend, \enverb@ifnotend}
+% These functions check whether the input contains the string representation
+% |\end|. If it does they invoke \cs[no-index]{enverb@ifnotend@maybe} with the
+% tokens in front of |\end| and after it as two arguments. Otherwise the third
+% argument after \cs{enverb@ifnotend@}'s expansion is directly used, which is
+% the second (curried) argument to \cs{enverb@ifnotend}.
+% \begin{macrocode}
+\newcommand\enverb@ifnotend[1]%
+ {%
+ \def\enverb@ifnotend##1%
+ {%
+ \enverb@ifnotend@
+ ##1\enverb@mark\enverb@ifnotend@maybe
+ #1\enverb@mark\@thirdofthree
+ \enverb@stop
+ }%
+ \def\enverb@ifnotend@##1#1##2\enverb@mark##3##4\enverb@stop{##3{##1}{##2}}%
+ }
+\expandafter\enverb@ifnotend\expanded{{\expandafter\@gobble\string\\end}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend@maybe}
+% This function will be used if an |\end| was encountered and should check
+% whether that is indeed the end of our environment, it uses a second stage
+% \cs[no-index]{enverb@ifnotend@perhaps} for that check. The |\romannumeral|
+% expansion it employs will strip any leading spaces or tabs from |#2|.
+% \begin{macrocode}
+\newcommand\enverb@ifnotend@maybe[2]
+ {\expandafter\enverb@ifnotend@perhaps\expandafter{\romannumeral`\^^@#2}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \enverb@ifnotend@setup@perhaps,
+% \enverb@ifnotend@perhaps, \enverb@ifnotend@perhaps@,
+% \@thirdofthree
+% }
+% We need an expandable and fast check to see whether some input really
+% contains the |\end| of our environment. Checking for |\end| itself is
+% already done above, we need to check for the correct argument to it. The
+% following does so by argument grabbing logic.
+% \begin{macrocode}
+\protected\def\enverb@ifnotend@setup@perhaps#1%
+ {%
+ \def\enverb@ifnotend@perhaps##1%
+ {%
+ \enverb@ifnotend@perhaps@\enverb@mark##1\enverb@mark\enverb@ifnotend@end
+ \enverb@mark#1\enverb@mark\@thirdofthree
+ \enverb@stop
+ }%
+ \def\enverb@ifnotend@perhaps@
+ ##1\enverb@mark#1##2\enverb@mark##3##4\enverb@stop
+ {##3{##2}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend@end}
+% If the correct |\end| statement was found this function will be called by
+% \cs[no-index]{enverb@ifnotend@perhaps}. It's first argument will be anything
+% in that line following the |\end| statement, the second argument will be the
+% material in front of it. And |#3| will be whatever the argument to
+% \cs[no-index]{enverb@ifnotend} was.
+%
+% The first thing we need to do is end the body collection by placing the
+% matching closing brace. After that we throw an error on lost content after
+% the |\end| if it's non-blank. And finally we need to smuggle the collected
+% body outside the current group's scope.
+% \begin{macrocode}
+\def\enverb@ifnotend@end#1#2#3%
+ {%
+ \iffalse{\fi}%
+ \enverb@ensure@blank{#1}{\string\end}%
+ \expandafter\enverb@finalise\expandafter{\enverbBody}{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@finalise}
+% The finalising function closes the group containing the body's catcode
+% regime. The already tokenised body is |#1|, and |#2| is the contents found
+% in front of the |\end| statement, which we might use for the auto-ignore
+% feature.
+%
+% It then does the key=val parsing, sets up the aftertreatment and assigns the
+% final meaning to \cs{enverbBody}. Eventually it calls the end code of the
+% enclosing environment.
+% \begin{macrocode}
+\protected\def\enverb@finalise#1#2%
+ {%
+ \endgroup
+ \expandafter\enverbsetup\expandafter{\enverb@collected@marg}%
+ \enverb@ifoargtokeyhandler
+ {%
+ \expandafter\enverb@keyhandler\expanded
+ {{%
+ \unexpanded\expandafter{\enverb@unknown@kv},%
+ \unexpanded\expandafter{\enverb@collected@oarg}%
+ }}%
+ }%
+ {%
+ \expandafter\enverbsetup\expandafter{\enverb@collected@oarg}%
+ \expandafter\enverb@keyhandler\expandafter{\enverb@unknown@kv}%
+ }%
+ \enverb@ifautoignore
+ {\enverb@setup@ignore{\enverb@count{#2}+\enverb@moreignore}}%
+ {\enverb@setup@ignore\enverb@ignore}%
+ \edef\enverb@line##1\enverb@eol
+ {%
+ \noexpand\unexpanded{##1}%
+ %\noexpand\detokenize{##1}% % TODO
+ \noexpand\unexpanded{\unexpanded\expandafter{\enverb@eol@content}}%
+ }%
+ \edef\enverbBody{#1}%
+ \expandafter\end\expandafter{\@currenvir}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@setup@ignore, \enverb@setup@ignore@}
+% \begin{macrocode}
+\protected\def\enverb@setup@ignore#1%
+ {\expandafter\enverb@setup@ignore@\the\numexpr#1\relax;\enverb@line}
+\protected\def\enverb@setup@ignore@#1;#2%
+ {%
+ \ifnum#1>9
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\enverb@setup@ignore@\the\numexpr#1-8;{\@firstofnine{#2}}}%
+% \end{macrocode}
+% Just to make sure that |\renewcommand| works correctly, we ensure the macro
+% exists.
+% \begin{macrocode}
+ {%
+ \let\enverb@bol@gobble\@empty
+ \expanded
+ {%
+ \unexpanded{\renewcommand\enverb@bol@gobble}\ifnum#1>\z@[#1]\fi
+ {\unexpanded{#2}}%
+ \unexpanded{\def\enverb@bol##1\enverb@eol}%
+ {%
+ \noexpand\unexpanded
+ {\unexpanded\expandafter{\enverb@bol@content}}%
+ \unexpanded{\expandafter\enverb@ifempty\expanded}{{##1}}%
+ {\noexpand\enverb@line}%
+ {\noexpand\enverb@bol@gobble}%
+ ##1\noexpand\enverb@eol
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Output Oriented Macros}
+%
+% \begin{macro}[internal]{\enverb@rmeol, \enverb@rmeol@}
+% Many of our output routines require the |\scantokens| primitive. Since that
+% one places an additional end of line at the end of its argument we need a
+% way to remove it (this usually results in an additional space in the output
+% otherwise). For that we place a comment character at the end of the input
+% (if it's possible), if that's not available we hope that a stringified
+% |\relax| will do. The code here will use \pkg{expl3} for ease of coding.
+% \begin{macrocode}
+\def\enverb@rmeol
+ {%
+ \ifnum\catcode`\%=14
+ \enverb@chargen{`\%}{12}%
+ \expandafter\enverb@stop
+ \fi
+ \enverb@rmeol@0;%
+ \enverb@stop
+ }
+\def\enverb@rmeol@#1;%
+ {%
+ \ifnum#1=128
+ \string\relax
+ \expandafter\enverb@stop
+ \fi
+ \@firstofone
+ {%
+ \ifnum\catcode`\%=14
+ \enverb@chargen{#1}{12}%
+ \expandafter\enverb@stop
+ \fi
+ \expandafter\enverb@rmeol@\the\numexpr#1+1;%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbExecute}
+% \begin{macrocode}
+\NewDocumentCommand\enverbExecute{}
+ {%
+ \begingroup
+ \newlinechar=`\^^M
+ \expandafter
+ \endgroup
+ \scantokens\expanded
+ {{%
+ \detokenize\expandafter{\enverbBody}%
+ \enverb@rmeol
+ }}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbListing}
+% \begin{macro}[internal]{\enverbListing@}
+% \begin{macrocode}
+\NewDocumentCommand \enverbListing { m m }
+ {%
+ \scantokens\expanded
+ {{%
+ \string\begin{#1}\detokenize{#2}\enverb@othercr
+ \detokenize\expandafter{\enverbBody}%
+ \string\end{#1}\enverb@othercr
+ \enverb@rmeol
+ }}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \gobbledocstriptag
+%</pkg>
diff --git a/macros/latex/contrib/enverb/preamble-examples.tex b/macros/latex/contrib/enverb/preamble-examples.tex
new file mode 100644
index 0000000000..da18ed38a6
--- /dev/null
+++ b/macros/latex/contrib/enverb/preamble-examples.tex
@@ -0,0 +1,199 @@
+\makeatletter
+\RequirePackage{enverb}
+\global\let\enverb@ex@stored\@empty
+\ekvdefinekeys{enverb/ex}
+ {
+ boolTF store = \enverb@ex@ifstore
+ ,invboolTF no-store = \enverb@ex@ifstore
+ ,boolTF restore = \enverb@ex@ifrestore
+ ,boolTF no-lst = \enverb@ex@ifnolst
+ ,also nmeta no-lst = below
+ ,nmeta undo-no-lst = {no-lst=false, undo-below}
+ ,boolTF no-tcb = \enverb@ex@ifnotcb
+ ,also nmeta no-tcb = below
+ ,nmeta undo-no-tcb = {no-tcb=false, undo-below}
+ ,boolTF same-line = \enverb@ex@ifsameline
+ ,unknown-choice same-line =
+ \let\enverb@ex@ifsameline\@firstoftwo\def\enverb@ex@codeshare{#1}
+ ,initial same-line = 0.6
+ ,invboolTF other-line = \enverb@ex@ifsameline
+ ,nmeta below = {other-line}
+ ,nmeta undo-below = {same-line}
+ ,store inter = \enverb@ex@inter
+ ,code aboveskip = \def\enverb@ex@above{\vskip#1\relax}
+ ,code belowskip = \def\enverb@ex@below{\vskip#1\relax}
+ ,default aboveskip = \medskipamount
+ ,default belowskip = \medskipamount
+ ,initial aboveskip
+ ,initial belowskip
+ ,noval no-aboveskip = \let\enverb@ex@above\@empty
+ ,noval no-belowskip = \let\enverb@ex@below\@empty
+ % listings
+ ,store lst = \enverb@ex@options@lst
+ ,initial lst = {aboveskip=0pt, belowskip=0pt}
+ ,store same-line-lst = \enverb@ex@options@lst@same
+ ,meta slst = same-line-lst={#1}
+ ,store other-line-lst = \enverb@ex@options@lst@other
+ ,meta olst = other-line-lst={#1}
+ % tcolorbox
+ ,store tcb = \enverb@ex@options@tcb
+ ,initial tcb = {nobeforeafter}
+ ,store same-line-tcb = \enverb@ex@options@tcb@same
+ ,initial same-line-tcb = {box align=center}
+ ,meta stcb = same-line-tcb={#1}
+ ,store other-line-tcb = \enverb@ex@options@tcb@other
+ ,meta otcb = other-line-tcb={#1}
+ }
+\newenvironment{ex}
+ {\enverb{key-set=enverb/ex}}
+ {%
+ \par
+ \enverb@ex@above
+ \noindent
+ \expanded{\noexpand\begin{exwrap}{\enverb@ex@ifsameline{}{breakable}}}
+ \enverb@ex@ifnolst
+ {}%
+ {%
+ \enverb@ex@ifsameline
+ {\noindent\begin{minipage}[c]{\enverb@ex@codeshare\linewidth}}%
+ {}%
+ \ExpandArgs{ne}\enverbListing{lstlisting}%
+ {%
+ [{%
+ \unexpanded\expandafter{\enverb@ex@options@lst},%
+ \enverb@ex@ifsameline
+ {\unexpanded\expandafter{\enverb@ex@options@lst@same}}%
+ {\unexpanded\expandafter{\enverb@ex@options@lst@other}}%
+ }]%
+ }%
+ \enverb@ex@ifsameline
+ {\end{minipage}}%
+ {}%
+ }%
+ \enverb@ex@ifstore
+ {%
+ \xdef\enverb@ex@stored
+ {%
+ \unexpanded\expandafter{\enverb@ex@stored}%
+ \unexpanded\expandafter{\enverbBody}%
+ }%
+ }%
+ {}%
+ \enverb@ex@ifrestore
+ {%
+ \edef\enverbBody
+ {%
+ \unexpanded\expandafter{\enverb@ex@stored}%
+ \unexpanded\expandafter{\enverbBody}%
+ }%
+ \global\let\enverb@ex@stored\@empty
+ }%
+ {}%
+ \enverb@ex@ifnotcb
+ {}%
+ {%
+ \enverb@ex@ifsameline{}{\medskip}%
+ \expanded{\noexpand\begin{exbox}%
+ {%
+ \unexpanded\expandafter{\enverb@ex@options@tcb},%
+ \enverb@ex@ifsameline
+ {\unexpanded\expandafter{\enverb@ex@options@tcb@same}}%
+ {\unexpanded\expandafter{\enverb@ex@options@tcb@other}}%
+ }}%
+ {\linewidth\enverb@ex@ifsameline{-\enverb@ex@codeshare\linewidth}{}}%
+ \enverbExecute
+ \end{exbox}%
+ }%
+ \end{exwrap}%
+ \par
+ \enverb@ex@below
+ \@endpetrue
+ }
+
+\RequirePackage{listings}% >>=
+\newcommand\extexcsstyle{\exbasestyle\color{green!50!black}\bfseries}
+\newcommand\exbasestyle{\ttfamily}
+\lstset
+ {
+ language=[LaTeX]TeX
+ ,flexiblecolumns=true
+ ,basicstyle=\exbasestyle
+ ,texcsstyle=*\extexcsstyle
+ ,moretexcs=%
+ {%
+ UseName,ExpandArgs,textcolor,color,colorbox,expanded,unexpanded,@empty,%
+ @firstoftwo,@endpetrue,RequirePackage,lstset,usetikzlibrary,%
+ pgfmathsetseed,newtcolorbox,tcbsubskin,tikzset,dimexpr%
+ }
+ ,moretexcs=[2]{enverb,enverbBody,enverbExecute,enverbListing}
+ ,texcsstyle=*[2]\exbasestyle\color{enverbred}\bfseries
+ ,literate={\{}{{\extexcsstyle\string{\iffalse}\fi}}{1}
+ {\}}{{\extexcsstyle\iffalse{\fi\string}}}{1}
+ }% =<<
+\RequirePackage[most]{tcolorbox}%>>=
+\RequirePackage{tikz}
+\usetikzlibrary{decorations.pathmorphing,calc}
+\pgfmathsetseed{1} % To have predictable results
+% Define paper style
+\tikzset{
+ % based on https://tex.stackexchange.com/questions/580671
+ ragged border/.style={%
+ decoration={random steps, segment length=2mm, amplitude=0.5mm},
+ decorate,
+ }
+}
+\tcbsubskin{exwrap}{standard}
+ {%
+ width=\linewidth
+ ,colframe=enverbgrey
+ ,colback=enverbred!15!white
+ ,title=Example
+ ,nobeforeafter
+ ,arc=5mm
+ ,sharp corners=northwest
+ ,toprule at break=-1sp
+ ,bottomrule at break=-1sp
+ }
+\tcbsubskin{exwrap-first}{exwrap}{sharp corners=south}
+\tcbsubskin{exwrap-mid}{exwrap}{sharp corners=all}
+\tcbsubskin{exwrap-last}{exwrap}{sharp corners=north}
+\newtcolorbox{exbox}[2]
+ {%
+ colback=white%
+ ,colframe=white%
+ ,geometry nodes=true
+ ,interior code=
+ {%
+ \fill[white]
+ decorate[ragged border]{
+ ($(frame.south east) - (0, 1mm)$) --
+ ($(frame.south west) - (0, 1mm)$)
+ }
+ -- (frame.south west) -- ++(0, 1pt) -| (frame.south east) -- cycle;
+ \fill[white]
+ decorate[ragged border]{
+ ($(frame.north east) + (0, 1mm)$) --
+ ($(frame.north west) + (0, 1mm)$)
+ }
+ -- (frame.north west) -- ++(0, -1pt) -| (frame.north east) -- cycle;
+ }
+ ,fontupper=\small
+ ,width={\dimexpr#2\relax}%
+ ,sharp corners=all
+ ,boxsep=0pt
+ ,top=\fboxsep
+ ,bottom=\fboxsep
+ ,left=\fboxsep
+ ,right=\fboxsep
+ ,#1%
+ }
+\newtcolorbox{exwrap}[1]
+ {%
+ skin=exwrap
+ ,skin first=exwrap-first
+ ,skin middle=exwrap-mid
+ ,skin last=exwrap-last
+ ,#1%
+ }
+%=<<
+\makeatother
diff --git a/macros/latex/contrib/enverb/preamble-logo.tex b/macros/latex/contrib/enverb/preamble-logo.tex
new file mode 100644
index 0000000000..177f8f3e26
--- /dev/null
+++ b/macros/latex/contrib/enverb/preamble-logo.tex
@@ -0,0 +1,25 @@
+\definecolor{enverbred}{HTML}{9F393D}
+\colorlet{enverbgrey}{black!75}
+\newcommand\envlogo% >>=
+ {%
+ \texorpdfstring
+ {\envLogo}%
+ {enverb}%
+ }% =<<
+\protected\def\envLogo% >>=
+ {%
+ \mbox
+ {%
+ \BeginAccSupp{ActualText=enverb}%
+ \href{https://gitlab.com/islandoftex/texmf/enverb}{\envLogoFormat}%
+ \EndAccSupp{}%
+ }%
+ }% =<<
+\protected\def\envLogoFormat% >>=
+ {%
+ \begingroup
+ \normalfont\rmfamily\bfseries
+ \textcolor{enverbgrey}{en\kern-0.045em v}\kern-.485em
+ \textcolor{enverbred}{v\kern-0.045em erb}%
+ \endgroup
+ }% =<<
diff --git a/macros/latex/contrib/eolang/DEPENDS.txt b/macros/latex/contrib/eolang/DEPENDS.txt
index d4273d3323..d10a65d74f 100644
--- a/macros/latex/contrib/eolang/DEPENDS.txt
+++ b/macros/latex/contrib/eolang/DEPENDS.txt
@@ -1,6 +1,7 @@
hard adjustbox
hard amsfonts
hard amsmath
+hard everyshi
hard fancyvrb
hard hyperref
hard iexec
diff --git a/macros/latex/contrib/eolang/README.md b/macros/latex/contrib/eolang/README.md
index 2214b74e38..1d71ee7817 100644
--- a/macros/latex/contrib/eolang/README.md
+++ b/macros/latex/contrib/eolang/README.md
@@ -1,3 +1,5 @@
+# LaTeX package for 𝜑-calculus
+
[![l3build](https://github.com/objectionary/eolang.sty/actions/workflows/l3build.yml/badge.svg)](https://github.com/objectionary/eolang.sty/actions/workflows/l3build.yml)
[![CTAN](https://img.shields.io/ctan/v/eolang)](https://ctan.org/pkg/eolang)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/objectionary/eolang.sty/blob/master/LICENSE.txt)
@@ -6,7 +8,7 @@ This LaTeX package helps you write 𝜑-calculus formulas and
draw [SODG](https://github.com/objectionary/sodg) graphs
for [EO](https://www.eolang.org) programming language.
-First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+First, [install it][install]
from [CTAN](https://ctan.org/pkg/eolang)
and then use in the preamble:
@@ -22,10 +24,13 @@ x -> [
\end{document}
```
-Otherwise, you can download [`eolang.sty`](https://objectionary.github.io/eolang.sty/eolang.sty) and add to your project.
+Otherwise, you can download [`eolang.sty`][sty] and add to your project.
-If you want to contribute yourself, make a fork, then create a branch,
+If you want to contribute yourself, make a fork, then create a branch,
then run `l3build ctan` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
Otherwise, make your changes and then run `l3build ctan` again. If the build is
still clean, submit a pull request.
+
+[install]: https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages
+[sty]: https://objectionary.github.io/eolang.sty/eolang.sty
diff --git a/macros/latex/contrib/eolang/eolang.1 b/macros/latex/contrib/eolang/eolang.1
index 8ab1954d87..d14e5fb8c2 100644
--- a/macros/latex/contrib/eolang/eolang.1
+++ b/macros/latex/contrib/eolang/eolang.1
@@ -1,4 +1,4 @@
-.TH eolang 1 "2024-02-14"
+.TH eolang 1 "0000-00-00"
.SH NAME
eolang \- Automated Editor of TeX Files that Use "eolang" Package
.SH SYNOPSIS
@@ -21,4 +21,4 @@ Yegor Bugayenko (yegor256@gmail.com)
Please log issues on the GitHub homepage:
https://github.com/objectionary/eolang.sty/issues.
.SH SEE ALSO
-See eolang.pdf for more details.
+See eolang.pdf for more details. \ No newline at end of file
diff --git a/macros/latex/contrib/eolang/eolang.bib b/macros/latex/contrib/eolang/eolang.bib
index 34ca47a8f2..71e181fa5c 100644
--- a/macros/latex/contrib/eolang/eolang.bib
+++ b/macros/latex/contrib/eolang/eolang.bib
@@ -1,3 +1,25 @@
+% (The MIT License)
+%
+% Copyright (c) 2021-2024 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
@misc{bugayenko2021eolang,
title={EOLANG and $\varphi$-calculus},
author={Yegor Bugayenko},
diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx
index 97d558ccaa..23df252323 100644
--- a/macros/latex/contrib/eolang/eolang.dtx
+++ b/macros/latex/contrib/eolang/eolang.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{eolang}
%<*package>
-[2024-02-14 0.18.1 Formulas and Graphs for EO Programming Language]
+[2024/10/31 0.18.2 Formulas and Graphs for EO Programming Language]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -877,7 +877,7 @@
$macro = $ARGV[0];
open(my $fh, '<', $ARGV[1]);
my $tex; { local $/; $tex = <$fh>; }
-print "% This file is auto-generated by 0.18.1\n";
+print "% This file is auto-generated by eolang.sty 0.18.2\n";
print '% There are ', length($tex),
' chars in the input: ', $ARGV[1], "\n";
print '% ---', "\n";
@@ -1149,7 +1149,7 @@ print '\endinput';
{\eolang@tmpdir/\jobname/\hash-phiq-post.tex}
{%
\iexec[log,trace,quiet,stdout=\eolang@tmpdir/\jobname/phiq.tex]{
- /bin/echo '\clean'}%
+ printf '\%s' '\clean'}%
\iexec[quiet,null]{cp "\eolang@tmpdir/\jobname/phiq.tex"
"\eolang@tmpdir/\jobname/\hash-phiq.tex"}%
\iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-phiq-post.tex]{
diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf
index 2bf8e39de4..47d3f5bcda 100644
--- a/macros/latex/contrib/eolang/eolang.pdf
+++ b/macros/latex/contrib/eolang/eolang.pdf
Binary files differ
diff --git a/macros/latex/contrib/eolang/eolang.pl b/macros/latex/contrib/eolang/eolang.pl
index 48ba53dc5b..6018cd5251 100755
--- a/macros/latex/contrib/eolang/eolang.pl
+++ b/macros/latex/contrib/eolang/eolang.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# (The MIT License)
#
-# Copyright (c) 2022-2024 Yegor Bugayenko
+# Copyright (c) 2021-2024 Yegor Bugayenko
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the 'Software'), to deal
@@ -21,58 +21,22 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-# 2024-02-14 0.18.1
+# 0000-00-00 0.18.2
package eolang;
use warnings;
use strict;
+use lib('.');
+use tools;
use File::Basename;
# Hash of incoming command line arguments.
my %args = map { $_ => 1 } @ARGV;
-# Read file content.
-sub readfile {
- my ($path) = @_;
- open(my $h, '<', $path) or die('Cannot open file: ' . $path);
- my $content; { local $/; $content = <$h>; }
- return $content;
-}
-
-# Save content to file.
-sub savefile {
- my ($path, $content) = @_;
- open(my $f, '>', $path) or error('Cannot open file for writing: ' . $path);
- print $f $content;
- close($f);
- my $size = -s $path;
- info("File saved to '$path' ($size bytes)");
-}
-
-# Print INFO message to the console.
-sub info {
- my ($txt) = @_;
- print $txt . "\n";
-}
-
-# Print DEBUG message to the console.
-sub debug {
- my ($txt) = @_;
- if (exists $args{'--verbose'}) {
- print $txt . "\n";
- }
-}
-
-# Print ERROR message to the console.
-sub error {
- my ($txt) = @_;
- print STDERR $txt . "\n";
-}
-
if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) {
info("This script helps embedding \\phiquation and \\phiq into .tex document\n\n" .
"Usage:\n" .
- " eolang [<options>] <.tex file path>\n\n" .
+ " eolang [<options>] <.tex input file path> <.tex output file path>\n\n" .
"Options:\n" .
" -v, --version Print the current version of the tool and exit\n" .
" -?, --help Print this help screen\n" .
@@ -80,7 +44,7 @@ if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) {
" --tmpdir=path Temp directory with .tex files ('_eolang' by default)\n\n" .
"If any issues, report to GitHub: https://github.com/yegor256/bibcop");
} elsif (exists $args{'--version'} or exists $args{'-v'}) {
- info('0.18.1 2024-02-14');
+ info('0.18.2 0000-00-00');
} else {
my ($src, $target) = grep { not($_ =~ /^-.*$/) } @ARGV;
if (not $src) {
diff --git a/macros/latex/contrib/euromoney/README.md b/macros/latex/contrib/euromoney/README.md
new file mode 100644
index 0000000000..601e822cc7
--- /dev/null
+++ b/macros/latex/contrib/euromoney/README.md
@@ -0,0 +1,6 @@
+euromoney is a package with euro coins and banknotes.
+-----------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+........: pdf converted from domain public svg (user frankes in openclipart), see https://openclipart.org/artist/frankes \ No newline at end of file
diff --git a/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf b/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf
new file mode 100644
index 0000000000..93668899bf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/doc/euromoney-doc.tex b/macros/latex/contrib/euromoney/doc/euromoney-doc.tex
new file mode 100644
index 0000000000..f502604a0b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/doc/euromoney-doc.tex
@@ -0,0 +1,461 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
+
+\documentclass[11pt,a4paper]{ltxdoc}
+%\usepackage{crimson}
+\usepackage{bera}
+\usepackage{inconsolata}
+%\renewcommand*\ttdefault{cmvtt}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{euromoney}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [euromoney]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{07/09/2024}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\BilletsEuro,\PiecesEuro,\EuroBanknotes,\EuroCoins},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={RefHeight,Style,AutoHeight,OffsetH,OffsetV,Stack,Angle,HauteurRef,HauteurAuto,DecalH,DecalV,Empilage},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\BilletsEuro,\PiecesEuro,\EuroBanknotes,\EuroCoins},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={RefHeight,Style,AutoHeight,OffsetH,OffsetV,Stack,Angle,HauteurRef,HauteurAuto,DecalH,DecalV,Empilage,height},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+\NewDocumentCommand\MontreCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \begin{tabular}{c}
+ {\Huge \texttt{euromoney}}\\
+ \\
+ {\LARGE Insert 'vectorial' coins or} \\
+ {\LARGE banknotes in euro.} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/euromoney}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+ \begin{center}
+ \PiecesEuro[HauteurRef=1cm,Style=full,HauteurAuto]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+
+ \vspace*{2.5mm}
+
+ \PiecesEuro[Empilage=V,HauteurRef=3cm,HauteurAuto]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+
+ \vspace*{2.5mm}
+
+ \BilletsEuro[Style=nb,HauteurRef=1.75cm,DecalV=0.5cm,HauteurAuto]{4*100+2*50+20+4*10+3*5}
+
+ \vspace*{2.5mm}
+
+ \BilletsEuro[Style=full,HauteurAuto]{100+50+20+5}
+ \end{center}
+\end{tcolorbox}
+
+\vfill~
+
+\hrule
+
+\medskip
+
+\emph{%
+ The pdf files were obtained by converting vector \texttt{svg} (public domain) files from the \href{https://openclipart.org/artist/frankes?p=3}{\texttt{openclipart}} database, and in particular from files supplied by \href{https://openclipart.org/artist/frankes?p=3}{\texttt{frankes}}.
+}
+
+\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Introduction}
+
+\subsection{Description, loading}
+
+The idea is to propose macros to insert coins and banknotes in euro.
+
+\begin{DemoCode}{listing only}
+\usepackage{euromoney}
+\end{DemoCode}
+
+The \MontreCode{euromoney} package loads :
+
+\begin{itemize}
+ \item \lstinline{xstring} ;
+ \item \lstinline{simplekv} ;
+ \item \lstinline{graphicx} ;
+ \item \lstinline{tikz} with \MontreCode{calc} library ;
+ \item \lstinline{listofitems}.
+\end{itemize}
+
+\subsection{Features}
+
+It's possible to present multiple coins or multiples banknotes :
+
+\begin{itemize}
+ \item with global height ;
+ \item with height automatically adjusted (compared to 2€ coin and 500€ banknote) ;
+ \item with stacking.
+\end{itemize}
+
+\section{Global names, samples}
+
+\subsection{Global names}
+
+Each coin or bill is a vectorial pdf, name \texttt{euromoney-<amount><suffix>} and there's three styles :
+
+\begin{itemize}
+ \item \MontreCode{full} colored version ;
+ \item \MontreCode{simple} colored version with \MontreCode{simple} suffix ;
+ \item \MontreCode{bw} version with \MontreCode{simplebw} suffix .
+\end{itemize}
+
+Available basenames are :
+
+\begin{itemize}
+ \item \texttt{500euro} ; \texttt{200euro} ; \texttt{100euro} ; \texttt{50euro} ; \texttt{20euro} ; \texttt{10euro} and \texttt{5euro} ;
+ \item \texttt{2euro} ; \texttt{1euro} ; \texttt{50cent} ; \texttt{20cent} ; \texttt{10cent} ; \texttt{5cent} ; \texttt{2cent} and \texttt{1cent}.
+\end{itemize}
+
+\begin{DemoCode}{}
+%manual insertion
+\includegraphics[height=25.75mm]{euromoney-2euro}% w/o suffix
+\includegraphics[height=25.75mm]{euromoney-2eurosimple}% with simple suffix
+\includegraphics[height=25.75mm]{euromoney-2eurosimplebw}% with simplebw suffix
+\end{DemoCode}
+
+\subsection{Size of graphics}
+
+Banknotes of \MontreCode{Style=full} are bigger than other styles, so the output doc can be bigger size.
+
+For example, 100€ banknote's size is 933~Ko.
+
+\section{Macro for coins}
+
+\subsection{Usage}
+
+The coins macro is :
+
+\begin{DemoCode}{listing only}
+\EuroCoins[keys]{list of coins}
+\end{DemoCode}
+
+Available keys are :
+
+\begin{itemize}
+ \item \MontreCode{RefHeight} := height (default \MontreCode{2cm}) for the coins (relative to 2€ if \MontreCode{AutoHeight=true}) ;
+ \item \MontreCode{Style} := style for coins (default \MontreCode{simple}), within \MontreCode{full/simple/bw} ;
+ \item \MontreCode{AutoHeight} := boolean (default \MontreCode{false}) for adjusting heights of coins ;
+ \item \MontreCode{OffsetH} := horizontal offset (default \MontreCode{0pt}) for multiple coins (side by side if \MontreCode{0pt}) ;
+ \item \MontreCode{OffsetV} := vertical offset (default \MontreCode{5mm}) for multiple coins vertically stacked ;
+ \item \MontreCode{Stack} := sens of stacking (default \MontreCode{H}) for mutiple coins.
+\end{itemize}
+
+List of coins can be given within \MontreCode{3*2+4*1+2*0.2+4*0.1} for example.
+
+\subsection{Examples}
+
+\begin{DemoCode}{}
+%sample with one coin
+\EuroCoins{2}\EuroCoins{1}\EuroCoins{0.5}\EuroCoins{0.2}%
+\EuroCoins{0.1}\EuroCoins{0.05}\EuroCoins{0.02}\EuroCoins{0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, simple style
+\EuroCoins{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, full style
+\EuroCoins[Style=full]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, simplebw style
+\EuroCoins[Style=bw]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked coins (b&w), horizontally with correct scaling
+\EuroCoins[RefHeight=3cm,AutoHeight,OffsetH=7.5mm,Style=bw]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked coins (full resolution), vertically with correct scaling
+\EuroCoins[Stack=V,RefHeight=3cm,AutoHeight,Style=full]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\section{Macro for banknotes}
+
+\subsection{Usage}
+
+The banknotes macro is :
+
+\begin{DemoCode}{listing only}
+\EuroBanknotes[keys]{list of banknotes}
+\end{DemoCode}
+
+Stacking is globally set, and available keys are :
+
+\begin{itemize}
+ \item \MontreCode{RefHeight} := height (default \MontreCode{2cm}) for the banknotes (relative to 500€ if \MontreCode{AutoHeight=true}) ;
+ \item \MontreCode{Style} := style for banknotes (default \MontreCode{simple}), within \MontreCode{full/simple/bw} ;
+ \item \MontreCode{AutoHeight} := boolean (default \MontreCode{false}) for adjusting heights of banknotes ;
+ \item \MontreCode{OffsetH} := horizontal offset (default \MontreCode{0pt}) for multiple banknotes (side by side if \MontreCode{0pt}) ;
+ \item \MontreCode{OffsetV} := vertical offset (default \MontreCode{5mm}) for multiple banknotes vertically stacked ;
+ \item \MontreCode{Stack} := type of stacking (default \MontreCode{H}) within \MontreCode{H/fan} ;
+ \item \MontreCode{Angle} := rotation (default \MontreCode{10}) for \texttt{fan} stacking.
+\end{itemize}
+
+List of banknotes, for \texttt{H} stacking, can be given within \MontreCode{2*100+3*50+10+5} for example.
+
+List of banknotes, for \texttt{fan} stacking, can be given within \MontreCode{5+5+10+10+20+50+100+200+200} for example.
+
+\subsection{Examples}
+
+\begin{DemoCode}{}
+%sample with one banknote
+\EuroBanknotes{500}\EuroBanknotes{200}\EuroBanknotes{100}\EuroBanknotes{50}\\
+\EuroBanknotes{20}\EuroBanknotes{10}\EuroBanknotes{5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple banknotes, side by side, global height
+\EuroBanknotes{50+20+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple banknotes, side by side, with correct scaling
+\EuroBanknotes[RefHeight=3cm,Style=full,AutoHeight]{100+10+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked banknotes (b&w), with correct scaling
+\EuroBanknotes[OffsetH=7.5mm,Style=bw,AutoHeight]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%syde by side banknotes, with correct scaling
+\EuroBanknotes[RefHeight=1.75cm,AutoHeight]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%fan stacking, with adjusted offsets
+\EuroBanknotes%
+ [Stack=fan,RefHeight=2.05cm,AutoHeight,Angle=17.5,%
+ OffsetH=0.1mm,OffsetV=0mm]%
+ {5+5+10+10+20+50+100+200+200}
+\end{DemoCode}
+
+\pagebreak
+
+\section{French version}
+
+Il est possible d'utiliser les commandes en version francisée :
+
+\begin{DemoCode}{listing only}
+\PiecesEuro[clés]{liste de pièces}
+\BilletsEuro[clés]{liste de billets}
+\end{DemoCode}
+
+Les clés disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{HauteurRef} := hauteur (défaut \MontreCode{2cm}) pour les pièces/billets (relativement à celle de 2€ et celui de 500€ si \MontreCode{HauteurAuto=true}) ;
+ \item \MontreCode{Style} := style pour les pièces/billets (défaut \MontreCode{simple}), parmi \MontreCode{full/simple/nb} ;
+ \item \MontreCode{HauteurAuto} := booléen (défaut \MontreCode{false}) pour adapter les hauteurs ;
+ \item \MontreCode{DecalH} := décalage horizontal (défaut \MontreCode{0pt}) pour des empilages (côte à côte si \MontreCode{0pt}) ;
+ \item \MontreCode{DecalV} := décalage vertical (défaut \MontreCode{5mm}) pour les empilages verticaux ;
+ \item \MontreCode{Empilage} := sens de l'empilage (défaut \MontreCode{H}) éventuel, parmi \MontreCode{H/eventail} suivant le type d'objets.
+\end{itemize}
+
+La liste peut être donnée sous la forme \MontreCode{3*2+4*1+2*0.2+4*0.1} pour des affichages \textit{classiques} par exemple.
+
+Pour le cas de billets en éventail, la liste pourra être donnée sous la forme \MontreCode{5+5+10+10+20+50+100+200+200} par exemple.
+
+\begin{DemoCode}{}
+%exemple avec une pièce
+\PiecesEuro{2}\PiecesEuro{1}\PiecesEuro{0.5}\PiecesEuro{0.2}%
+\PiecesEuro{0.1}\PiecesEuro{0.05}\PiecesEuro{0.02}\PiecesEuro{0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style simple
+\PiecesEuro{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style full
+\PiecesEuro[Style=full]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style simplenb
+\PiecesEuro[Style=nb]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces empilées (n&b) horizontalement et tailles ajustées
+\PiecesEuro%
+ [HauteurRef=3cm,HauteurAuto,DecalH=7.5mm,Style=nb]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces empilées (full résolution) verticalement et tailles ajustées
+\PiecesEuro%
+ [Empilage=V,HauteurRef=3cm,HauteurAuto,Style=full]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%exemple avec un billet
+\BilletsEuro{500}\BilletsEuro{200}\BilletsEuro{100}\BilletsEuro{50}\\
+\BilletsEuro{20}\BilletsEuro{10}\BilletsEuro{5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%plusieurs billets, côte à côte, taille uniforme
+\BilletsEuro{50+20+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%plusieurs billets (full résolution), côte à côte, tailles adaptées
+\BilletsEuro[HauteurRef=3cm,Style=full,HauteurAuto]{100+10+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets empilés (n&b), tailles adaptées
+\BilletsEuro[DecalH=7.5mm,Style=nb]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets côte à côte, tailles adaptées
+\BilletsEuro[HauteurRef=1.75cm,HauteurAuto]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets en éventail, hauteur et décalages ajustés
+\BilletsEuro%
+ [Empilage=eventail,HauteurRef=2.05cm,HauteurAuto,Angle=17.5,%
+ DecalH=0.1mm,DecalV=0mm]%
+ {5+5+10+10+20+50+100+200+200}
+\end{DemoCode}
+
+\pagebreak
+
+
+\section{History}
+
+\begin{quote}
+\begin{verbatim}
+0.1.1 : New filenames, according to TL rules
+0.1.0 : Initial version
+\end{verbatim}
+\end{quote}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf
new file mode 100644
index 0000000000..6899f2b2d3
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf
new file mode 100644
index 0000000000..b021e90c2b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf
new file mode 100644
index 0000000000..e3777a5c9d
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf
new file mode 100644
index 0000000000..ddeac2a07f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf
new file mode 100644
index 0000000000..8fad414db2
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf
new file mode 100644
index 0000000000..46bfac9dbc
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf
new file mode 100644
index 0000000000..0c67ef4982
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf
new file mode 100644
index 0000000000..b07568d6fb
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf
new file mode 100644
index 0000000000..24928b831b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf
new file mode 100644
index 0000000000..bb9d01c1d4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf
new file mode 100644
index 0000000000..1b32b89783
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf
new file mode 100644
index 0000000000..5db25de626
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf
new file mode 100644
index 0000000000..48f184fa19
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf
new file mode 100644
index 0000000000..8c34a15535
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf
new file mode 100644
index 0000000000..d5346534b4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf
new file mode 100644
index 0000000000..dc2c56bfb0
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf
new file mode 100644
index 0000000000..dde3d6f2bb
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf
new file mode 100644
index 0000000000..78f052bd57
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf
new file mode 100644
index 0000000000..28f5f255a4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf
new file mode 100644
index 0000000000..c101540707
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf
new file mode 100644
index 0000000000..38b77e3671
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf
new file mode 100644
index 0000000000..2e3f409943
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf
new file mode 100644
index 0000000000..4aadb8a293
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf
new file mode 100644
index 0000000000..a855a3128c
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf
new file mode 100644
index 0000000000..cee0ca1ffa
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf
new file mode 100644
index 0000000000..e68cc46560
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf
new file mode 100644
index 0000000000..2857426e69
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf
new file mode 100644
index 0000000000..02ad7cd0e5
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf
new file mode 100644
index 0000000000..85ee0ccdba
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf
new file mode 100644
index 0000000000..bc3d2d8447
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf
new file mode 100644
index 0000000000..7c2c721a4e
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf
new file mode 100644
index 0000000000..719d51c8e7
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf
new file mode 100644
index 0000000000..0d1bba9565
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf
new file mode 100644
index 0000000000..12d3a85bd9
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf
new file mode 100644
index 0000000000..6fee6a828a
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf
new file mode 100644
index 0000000000..65776d5d24
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf
new file mode 100644
index 0000000000..9d26259287
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf
new file mode 100644
index 0000000000..08b128d03f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf
new file mode 100644
index 0000000000..dc2c5acbcf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf
new file mode 100644
index 0000000000..dfd4c98914
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf
new file mode 100644
index 0000000000..c8c4fa6daf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf
new file mode 100644
index 0000000000..f108cf065f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf
new file mode 100644
index 0000000000..9fdb0301b2
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf
new file mode 100644
index 0000000000..5608fd3085
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf
new file mode 100644
index 0000000000..a670f2ac2f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney.sty b/macros/latex/contrib/euromoney/tex/euromoney.sty
new file mode 100644
index 0000000000..b49337f412
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney.sty
@@ -0,0 +1,549 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+% pdf from domain public svg (user frankes in openclipart), see https://openclipart.org/artist/frankes
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{euromoney}[2024/09/07 0.1.1 Insert Euro coins and banknotes]
+
+%------History
+% 0.1.1 New filenames, according to TL rules
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{xstring}
+\RequirePackage{simplekv}
+\RequirePackage{graphicx}
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\RequirePackage{listofitems}
+
+%------Lengths
+\newlength{\tmphautmonnaies}
+\setlength{\tmphautmonnaies}{1em}
+\newlength{\tmpoffsethmonnaies}
+\setlength{\tmpoffsethmonnaies}{0pt}
+\newlength{\tmpoffsetvmonnaies}
+\setlength{\tmpoffsetvmonnaies}{5mm}
+
+%------Keys [fr]
+\defKV[Monnaies]{%
+ HauteurRef=\setlength{\tmphautmonnaies}{#1},%
+ Style=\def\piecebilletstyle{#1},%
+ DecalH=\setlength{\tmpoffsethmonnaies}{#1},%
+ DecalV=\setlength{\tmpoffsetvmonnaies}{#1},%
+ Empilage=\def\piecebilletempilage{#1},%
+ Angle=\def\piecebilletrotation{#1}
+}
+
+\setKVdefault[Monnaies]{%
+ HauteurRef=2cm,%
+ Style=simple,%
+ HauteurAuto=false,%
+ DecalH=0pt,%
+ DecalV=5mm,%
+ Empilage=H,%
+ Angle=10
+}
+
+%------Keys [en]
+\defKV[Moneys]{%
+ RefHeight=\setlength{\tmphautmonnaies}{#1},%
+ Style=\def\piecebilletstyle{#1},%
+ OffsetH=\setlength{\tmpoffsethmonnaies}{#1},%
+ OffsetV=\setlength{\tmpoffsetvmonnaies}{#1},%
+ Stack=\def\piecebilletempilage{#1},%
+ Angle=\def\piecebilletrotation{#1}
+}
+
+\setKVdefault[Moneys]{%
+ RefHeight=2cm,%
+ Style=simple,%
+ AutoHeight=false,%
+ OffsetH=0pt,%
+ OffsetV=5mm,%
+ Stack=H,%
+ Angle=10
+}
+
+%-----Macros billet(s) [fr]
+\NewDocumentCommand\BilletEuro{ D<>{} O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ \includegraphics[#2]{euromoney-#3euro\monnaiessuffixe}%
+}
+
+\NewDocumentCommand\BilletsEuro{ O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%empilage vertical
+ {%
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \ifdim\tmpoffsethmonnaies=0pt\relax%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ \else%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}\xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \foreach \ii in {1,...,\tmpnbpieces}{%
+ \draw ({(\i-1)*\tmpoffsethmonnaies},{(\ii-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ }%
+ \end{tikzpicture}%
+ \fi%
+ }%
+ {}%
+ \IfStrEq{\piecebilletempilage}{eventail}%empilage eventail
+ {%
+ \setsepchar{+}%
+ \readlist*\listbilletseventail{#2}%
+ \xdef\nbeventailbillets{\listbilletseventaillen}%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\nbeventailbillets}{%
+ \itemtomacro\listbilletseventail[\i]{\tmpempilpieces}%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \draw ({-\i*\tmpoffsethmonnaies},{-\i*\tmpoffsetvmonnaies}) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate={\fpeval{90-0.5*\piecebilletrotation*\nbeventailbillets+(\i-1)*\piecebilletrotation}}] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ {}%
+}
+
+%-----Macros billet(s) [en]
+\NewDocumentCommand\EuroBanknote{ D<>{} O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ \includegraphics[#2]{#3euro\monnaiessuffixe}%
+}
+
+\NewDocumentCommand\EuroBanknotes{ O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%empilage vertical
+ {%
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \ifdim\tmpoffsethmonnaies=0pt\relax%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ \else%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}\xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \foreach \ii in {1,...,\tmpnbpieces}{%
+ \draw ({(\i-1)*\tmpoffsethmonnaies},{(\ii-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ }%
+ \end{tikzpicture}%
+ \fi%
+ }%
+ {}%
+ \IfStrEq{\piecebilletempilage}{fan}%empilage eventail
+ {%
+ \setsepchar{+}%
+ \readlist*\listbilletseventail{#2}%
+ \xdef\nbeventailbillets{\listbilletseventaillen}%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\nbeventailbillets}{%
+ \itemtomacro\listbilletseventail[\i]{\tmpempilpieces}%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \draw ({-\i*\tmpoffsethmonnaies},{-\i*\tmpoffsetvmonnaies}) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate={\fpeval{90-0.5*\piecebilletrotation*\nbeventailbillets+(\i-1)*\piecebilletrotation}}] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ {}%
+}
+
+%-----Macro pièces [fr]
+\NewDocumentCommand\PiecesEuro{ O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %boucle
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiessomme{2euro}}%
+ {1}{\def\monnaiessomme{1euro}}%
+ {0.5}{\def\monnaiessomme{50cent}}%
+ {0.2}{\def\monnaiessomme{20cent}}%
+ {0.1}{\def\monnaiessomme{10cent}}%
+ {0.05}{\def\monnaiessomme{5cent}}%
+ {0.02}{\def\monnaiessomme{2cent}}%
+ {0.01}{\def\monnaiessomme{1cent}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiesechellerelative{1}}%
+ {1}{\def\monnaiesechellerelative{0.9029}}%
+ {0.5}{\def\monnaiesechellerelative{0.9417}}%
+ {0.2}{\def\monnaiesechellerelative{0.8641}}%
+ {0.1}{\def\monnaiesechellerelative{0.7670}}%
+ {0.05}{\def\monnaiesechellerelative{0.8252}}%
+ {0.02}{\def\monnaiesechellerelative{0.7282}}%
+ {0.01}{\def\monnaiesechellerelative{0.6311}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%
+ {%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ \ifnum\tmpnbpieces=1\else%
+ \foreach \i in {1,...,\inteval{\tmpnbpieces-1}}{%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}\fi%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \fi%
+ }%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \ifnum\i<\listetmppieceslen%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}%
+ \fi%
+ \fi%
+ }%
+ {%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ }%
+}
+
+%-----Macro pièces [en]
+\NewDocumentCommand\EuroCoins{ O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %boucle
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiessomme{2euro}}%
+ {1}{\def\monnaiessomme{1euro}}%
+ {0.5}{\def\monnaiessomme{50cent}}%
+ {0.2}{\def\monnaiessomme{20cent}}%
+ {0.1}{\def\monnaiessomme{10cent}}%
+ {0.05}{\def\monnaiessomme{5cent}}%
+ {0.02}{\def\monnaiessomme{2cent}}%
+ {0.01}{\def\monnaiessomme{1cent}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiesechellerelative{1}}%
+ {1}{\def\monnaiesechellerelative{0.9029}}%
+ {0.5}{\def\monnaiesechellerelative{0.9417}}%
+ {0.2}{\def\monnaiesechellerelative{0.8641}}%
+ {0.1}{\def\monnaiesechellerelative{0.7670}}%
+ {0.05}{\def\monnaiesechellerelative{0.8252}}%
+ {0.02}{\def\monnaiesechellerelative{0.7282}}%
+ {0.01}{\def\monnaiesechellerelative{0.6311}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%
+ {%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ \ifnum\tmpnbpieces=1\else%
+ \foreach \i in {1,...,\inteval{\tmpnbpieces-1}}{%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}\fi%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \fi%
+ }%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \ifnum\i<\listetmppieceslen%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}%
+ \fi%
+ \fi%
+ }%
+ {%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ }%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/exframe/README.txt b/macros/latex/contrib/exframe/README.txt
index c2c506613e..d7ff1f717c 100644
--- a/macros/latex/contrib/exframe/README.txt
+++ b/macros/latex/contrib/exframe/README.txt
@@ -1,5 +1,5 @@
-exframe v3.4
-Copyright 2011-2020 Niklas Beisert
+exframe v3.5
+Copyright 2011-2024 Niklas Beisert
exframe is a LaTeX2e package which provides a general purpose
framework to describe and typeset exercises and exam questions
@@ -44,6 +44,6 @@ This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
diff --git a/macros/latex/contrib/exframe/exframe.dtx b/macros/latex/contrib/exframe/exframe.dtx
index 726a6afd8b..30f6ce757d 100644
--- a/macros/latex/contrib/exframe/exframe.dtx
+++ b/macros/latex/contrib/exframe/exframe.dtx
@@ -1,14 +1,14 @@
% \iffalse
%
-% exframe.dtx Copyright (C) 2011-2020 Niklas Beisert
+% exframe.dtx Copyright (C) 2011-2024 Niklas Beisert
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
@@ -20,11 +20,11 @@
% exfserpe.tex, exfserpf.tex, exfsermk.sh, exfsermk.mak.
%
%<package|samplesingle|samplemultimain>\NeedsTeXFormat{LaTeX2e}[1996/12/01]
-%<package>\ProvidesPackage{exframe}[2020/02/24 v3.4 Framework for Exercise Problems]
-%<samplesingle>\ProvidesFile{exfsamp.tex}[2020/02/24 v3.4 standalone sample for exframe]
-%<samplemultimain>\ProvidesFile{exfserm.tex}[2020/02/24 v3.4 multipart sample for exframe]
+%<package>\ProvidesPackage{exframe}[2024/10/18 v3.5 Framework for Exercise Problems]
+%<samplesingle>\ProvidesFile{exfsamp.tex}[2024/10/18 v3.5 standalone sample for exframe]
+%<samplemultimain>\ProvidesFile{exfserm.tex}[2024/10/18 v3.5 multipart sample for exframe]
%<*driver>
-\def\thedate#1{2020/02/24}\def\theversion#1{v3.4}
+\def\thedate#1{2024/10/18}\def\theversion#1{v3.5}
\ProvidesFile{exframe.dtx}[\thedate{} \theversion{} exframe reference manual file]
\PassOptionsToClass{10pt,a4paper}{article}
\documentclass{ltxdoc}
@@ -40,20 +40,22 @@
\hypersetup{keeppdfinfo=true}
\hypersetup{pdfsource={}}
\hypersetup{pdflang={en-UK}}
-\hypersetup{pdfcopyright={Copyright 2010-2020 Niklas Beisert.
+\hypersetup{pdfcopyright={Copyright 2010-2024 Niklas Beisert.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.}}
-\hypersetup{pdflicenseurl={http://www.latex-project.org/lppl.txt}}
+\hypersetup{pdflicenseurl={https://www.latex-project.org/lppl.txt}}
\hypersetup{pdfcontactaddress={ETH Zurich, ITP, HIT K,
Wolfgang-Pauli-Strasse 27}}
\hypersetup{pdfcontactpostcode={8093}}
\hypersetup{pdfcontactcity={Zurich}}
\hypersetup{pdfcontactcountry={Switzerland}}
\hypersetup{pdfcontactemail={nbeisert@itp.phys.ethz.ch}}
-\hypersetup{pdfcontacturl={http://people.phys.ethz.ch/\xmptilde nbeisert/}}
+\hypersetup{pdfcontacturl={https://people.phys.ethz.ch/\xmptilde nbeisert/}}
\newcommand{\secref}[1]{\hyperref[#1]{section \ref*{#1}}}
+\newcommand{\ctanref}[2]{\href{https://ctan.org/#1}{#2}}
+\newcommand{\ctanpkg}[1]{\ctanref{pkg/#1}{\textsf{#1}}}
\parskip1ex
\parindent0pt
@@ -139,8 +141,8 @@ The package can handle exercise sheets which combine several exercise problems:
A \LaTeX{} document can consist of an individual sheet
or of a collection of sheets (e.g.\ spanning a lecture course).
In the latter case, the document files can be set up
-such that single sheets as well as a collection of all sheets
-can be compiled; the package \textsf{childdoc} may be of assistance.
+such that single sheets as well as a collection of all sheets can be compiled;
+the package \ctanpkg{childdoc} may be of assistance.
\item
The package can handle points to be credited:
@@ -235,7 +237,10 @@ the solution to a problem or a subproblem:
A |solution| environment should be
at the end of a |subproblem| or |problem| environment
(it is not mandatory to provide a |solution|).
-It can be contained within the corresponding environment or it can follow it.
+It can be contained within the corresponding environment or it can follow it
+(where needed, the option |forproblem| associates a |solution|
+following a |subproblem| to the encompassing |problem|
+rather than the preceding |subproblem|).
Depending on the choice of solution display, see \secref{sec:solutions},
the output may have a slightly different layout.
In terms of logic, it is preferred
@@ -401,24 +406,27 @@ and reads the file via |\input{|\textit{filename}|.sol}|.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DescribeMacro{solutionbuf}
\DescribeMacro{problembuf}
+\DescribeMacro{subproblembuf}
The package offers similar functionality to control the display of problems.
-In order to have any control over the content of |problem| environments,
-the latter needs to be read into an internal buffer.
+In order to have any control over the content of |problem| and |subproblem|
+environments, the latter need to be read into an internal buffer.
Reading of solutions and problems to internal buffers is activated
or deactivated by:
%
\begin{center}
\begin{tabular}{l}
|\exercisesetup{solutionbuf|[|=true|\textbar|false|]|}|\\
-|\exercisesetup{problembuf|[|=true|\textbar|false|]|}|
+|\exercisesetup{problembuf|[|=true|\textbar|false|]|}|\\
+|\exercisesetup{subproblembuf|[|=true|\textbar|false|]|}|
\end{tabular}
\end{center}
%
By default, |solution| environments are read to an internal buffer,
-while the content of |problem| environments is processed directly
+while the content of [|sub|]|problem| environments is processed directly
by the \TeX\ engine.
-Therefore, the following options to control the display
-of |problem| environments require the statement |\exercisesetup{problembuf}|.
+Therefore, the below options to control the display
+of [|sub|]|problem| environments
+require the statement |\exercisesetup{|[|sub|]|problembuf}|.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DescribeMacro{problemmanual}
@@ -462,25 +470,26 @@ the extension |.prb| can be customised by the configuration |extproblems|.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DescribeMacro{disable}
\DescribeMacro{insertproblemselect}
-The display of a particular |problem|
+\DescribeMacro{insertsubproblemselect}
+The display of a particular [|sub|]|problem|
can be suppressed altogether by an optional argument:
%
\begin{center}
-|\begin{problem}[disable]|
+|\begin{|[|sub|]|problem}[disable]|
\end{center}
%
This option can be exploited to automatically
suppress certain classes of problems as follows:
-A hook function |insertproblemselect| declared by:
+A hook function |insert|[|sub|]|problemselect| declared by:
%
\begin{center}
-|\exerciseconfig{insertproblemselect}[1]{|\textit{code}|}|
+|\exerciseconfig{insert|[|sub|]|problemselect}[1]{|\textit{code}|}|
\end{center}
%
can call
-|\setproblemdata{disable}| whenever a problem is to be suppressed.
-In order to decide, the optional argument of the |problem| environment
+|\set|[|sub|]|problemdata{disable}| whenever a problem is to be suppressed.
+In order to decide, the optional argument of the [|sub|]|problem| environment
is passed on to the hook function as the single argument.
Note that the argument needs to be processed manually.
@@ -669,7 +678,7 @@ The following directives are analogous to |\defexercisedata|,
\DescribeMacro{\writeexercisedata}
The most relevant metadata can be written to
the metadata section of pdf files
-(using pdf\LaTeX{} and the package \textsf{hyperref}
+(using pdf\LaTeX{} and the package \ctanpkg{hyperref}
whenever loaded).
This feature is configured by:
%
@@ -1181,12 +1190,14 @@ Otherwise the \textit{filled code} is executed.
The package defines numerous layout configuration options.
They are listed along with their original definition
and a brief description in \secref{sec:imp-config}.
-They include options to:
+Some particular aspects are described in more detail
+in \secref{sec:guides}.
+The configuration includes options to:
%
\begin{itemize}
\item
adjust the language for the principal entities of this package
-like `sheet(s)', `problem(s)', `solution(s)', `points(s)';
+like ``sheet(s)'', ``problem(s)'', ``solution(s)'', ``points(s)'';
\item
adjust the fonts styles of various parts of the text;
\item
@@ -1201,84 +1212,7 @@ adjust the appearance of counters;
adjust some other behaviour of the package.
\end{itemize}
%
-The following will highlight only few examples.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\DescribeMacro{insertsheettitle}
-An important setting is:
-%
-\begin{center}
-|\exerciseconfig{insertsheettitle}{|\textit{code}|}|
-\end{center}
-%
-The code \textit{code} is meant to print the title
-or header of an exercise sheet.
-The minimalistic default code |\centerline{\getsheetdata{title}}|
-merely prints the sheet title ``Sheet \#'' at the centre of a line.
-Commonly, one would replace this by a more elaborate header
-(potentially with some more information,
-appealing layout, logos, \ldots).
-In order to design a header template,
-it makes sense to retrieve data
-via |\getexercisedata| and |\getsheetdata|
-described in \secref{sec:metadata}.
-Likewise |\exercisedataempty| and |\sheetdataempty|
-can be used to display default values or alternative data
-if some particular data is not provided.
-An example is given by the |plainheader| extended style option
-defined in \secref{sec:imp-styles}.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\DescribeMacro{composetitleproblem}
-Another noteworthy example is |composetitleproblem|
-to compose the title for a problem. It takes two parameters,
-the number and the title.
-The (somewhat simplified) default declaration is:
-%
-\begin{center}
-\begin{tabular}{l}
-|\exerciseconfig{composetitleproblem}[2]{\exerciseifempty{#2}|\\
-| {\getexerciseconfig{termproblem}|\\
-| \getexerciseconfig{composeitemproblem}{#1}}|\\
-| {\getexerciseconfig{composeitemproblem}{#1} #2}}|
-\end{tabular}
-\end{center}
-%
-This checks whether the title is empty.
-If no title is given use ``Problem \#.'',
-otherwise use ``\#. \textit{title}''.
-Here the term ``Problem'' is made abstract
-by the configuration |termproblem|
-(e.g.\ to support internationalisation)
-and the problem number is further composed obtained by
-the configuration |composeitemproblem|
-which takes the bare number as argument
-and returns it followed by a dot.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\DescribeMacro{\exerciseifempty}
-\DescribeMacro{\exerciseifnotempty}
-Handy conditionals command to check
-whether an expression \textit{expr} is empty are:
-%
-\begin{center}
-\begin{tabular}{l}
-|\exerciseifempty{|\textit{expr}|}|%
- |{|\textit{empty code}|}{|\textit{filled code}|}|\\
-|\exerciseifnotempty{|\textit{expr}|}|%
- |{|\textit{filled code}|}|
-\end{tabular}
-\end{center}
-%
-Their main purpose is to test
-whether some provided expression \textit{expt} is empty.
-They expand to the common \TeX{} constructs
-|\if&#1&#2\else#3\fi| and |\if&#1&\else#2\fi|
-which work assuming that \textit{expr} is not too exotic
-(e.g.\ it should not start with the character `|&|'
-and other special \TeX{} characters or macros are potentially dangerous;
-also using this within tables can be troublesome;
-the character `|&|' can be reconfigured by the package option |emptytestchar|).
+We will highlight a few examples in \secref{sec:examples}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Exercise Styles}
@@ -1373,6 +1307,13 @@ in two-sided layout, sheets will start on odd pages
and empty pages are added at the end of sheets
to produce an even number of pages.
+\item |subproblemdelimitem| --
+shift subproblem number delimiter `)' from subproblem label
+to subproblem item composition;
+needed if |\ref| to a subproblem |\label| should produce a bare identifier
+without a trailing `)';
+assumes (and restores) numbering |\alph| and delimiter `)'.
+
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1464,7 +1405,7 @@ define some more advanced styles.
\item |metastr|[|=true|\textbar|false|]
(no value implies |true|, initially set to |false|) --
-load \textsf{metastr} package and use to handle PDF metadata
+load \ctanpkg{metastr} package and use to handle pdf metadata
and basic internationalisation,
see \secref{sec:imp-metastr} for details.
@@ -1514,7 +1455,7 @@ Sets the conditional |\ifsolutions| accordingly.
\item |pdfdata|[|=auto|\textbar|manual|\textbar|sheet|\textbar|off|]
(no value implies |auto|, initially set to |auto|) --
control writing most relevant metadata to pdf files;
-has no effect without package \textsf{hyperref}.
+has no effect without package \ctanpkg{hyperref}.
\item |lineno|[|=true|\textbar|false|]
(no value implies |true|, initially set to |false|) --
@@ -1530,7 +1471,7 @@ see \secref{sec:styles} for details.
(no value implies |true|, initially set to |false|) --
enable/disable use of hyper-references from solutions
to the corresponding problems;
-has no effect without package \textsf{hyperref}.
+has no effect without package \ctanpkg{hyperref}.
\item |warntext|[|=true|\textbar|false|]
(no value implies |true|, initially set to |false|) --
@@ -1565,6 +1506,11 @@ with |\exercisesetup{solutions=false}| when buffering if disabled.
enable/disable buffering for |problem| environments
in order to control their display.
+\item |subproblembuf|[|=true|\textbar|false|]
+(no value implies |true|, initially set to |false|) --
+enable/disable buffering for |subproblem| environments
+in order to control their display.
+
\item |emptytestchar=|\textit{char}
(initially set to `|&|') --
character to use for testing whether an argument |#1|
@@ -1575,29 +1521,443 @@ if `|&|' causes trouble within tables, could try `|@|' instead.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Customisations}
+\label{sec:customisation}
+
+This section attempts to shed some light on the rich array of options
+for layout customisations.
+It is not at all complete, but it provides an overview and
+illustrates selected aspects by means of guidance and examples.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Guidance}
+\label{sec:guides}
+
+The following provides some guidance on customisation options
+which might otherwise be hard to follow.
+Suggestions for topics to be expanded are welcome.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Package Philosophy.}
+
+The philosophy of the present package is to
+define a low-level framework to describe exercises with solutions
+to be used in various situations.
+The aim is to provide the means to describe the content
+(problems, solutions, sheets) in a simple fashion
+and separate it from the various layout definitions and choices
+which will define the appearance of the content.
+The package itself provides a functional basic layout
+rather than an elaborate or particularly appealing one.
+However, it provides means to adjust the basic layout in many ways and
+to predefine custom layout schemes.
+The package is meant to collaborate with other packages
+which provide solutions for particular applications
+in order to produce an appealing layout for the given content.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Framework for Layout Customisation.}
+
+The framework for defining the layout
+consists of an internal and a public component
+which allow for minor adjustments and major changes
+both with reasonable efforts.
+
+The internal component implements some very coarse
+choices for the presentation of the content.
+It is hard-coded in the package
+(using internal macros starting with |exf@|)
+and its operation can be adjusted mainly through the available package options,
+see \secref{sec:options}, and through configuration switches
+for individual blocks.
+
+The public framework uses a hierarchy of configuration macros
+defined by |\exerciseconfig|, see \secref{sec:layout}.
+The internal component interfaces with the public framework
+through a set of higher-level interface macros.
+These include macros which produce the desired text in a
+well-prescribed situation
+as well as macros which perform some \LaTeX\ operations
+such as adjusting presentation styles or modifying some variables.
+In many cases the structural higher-level macros have been set up to
+branch out to further lower-level macros prescribing presentation details.
+
+The hierarchy has the following structure:
+High-level macros compose certain abstract elements
+into readable text, e.g.\ an intro/outro for some block of text
+made from space, decorations and abstract text elements.
+Medium-level macros compose elementary objects into abstract text elements,
+e.g.\ a header for some block of text
+composed from a label and a title with some space and delimiters in between.
+Low-level macros define elementary objects,
+such as delimiter characters, spaces, widths and words (translations).
+
+The public framework has been set up such that
+elements at high, medium and low levels can be adjusted independently
+to arrive at a specific effect.
+For example, the composition of problem titles can be adjusted abstractly,
+but also the representation of a specific delimiter
+can be tweaked from `.' to `:';
+either change can be obtained by adjusting a single definition.
+This flexibility comes along with an unfortunate complexity
+to allow for adjustments to be implemented individually but also universally.
+Nevertheless, the implementation of the public configuration macros
+for a particular setup can be rather simple because the particular setup
+will neither use all of the available coarse layout choices
+nor all of the customisation options.
+For example, a higher-level macro for a problem title
+may directly produce the desired text without branching into
+further lower-level definitions.
+Also, only those higher-level macros which actually come to use
+in a particular setup will need to be implemented.
+
+The following paragraphs provide guidance on aspects of the
+public framework. There is no complete manual for the framework,
+but a skilled \LaTeX\ tinkerer can find further information
+and pieces of code ready for tweaking in the implementation notes
+in \secref{sec:imp-config} and \secref{sec:imp-styles}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Labels for Problems and Sheets.}
+
+The package provides many methods with various names
+to customise labels for problem and solution blocks.
+These names follow certain patterns
+(but are sometimes stuck with odd assignments due to backward compatibility).
+The following guide describes which methods come to use
+in which situations.
+
+The labels can be grouped into two categories,
+items and titles, and the corresponding methods are
+typically called |...item...| and |...title...|.
+Items are enumerative identifiers for the [sub]problems
+such as `1.', `b)' or `3iv)'.
+Titles serve as headers for [sub]problem or solution blocks
+which usually take the form ``Problem 1'', ``2.\ Fermat's Last''
+or simply ``c)'' for a subproblem.
+Titles may use the corresponding item, and display it together with
+the type, name or using a different punctuation
+depending on the situation.
+
+\DescribeMacro{composetitleproblem}
+\DescribeMacro{composenamedproblem}
+\DescribeMacro{composebareproblem}
+The composition of problem titles through |composetitleproblem|
+depends mainly on whether an individual name is provided
+(|title| option to |problem| environment).
+The method passes on to |composenamedproblem| if a name is provided
+(second argument non-empty), otherwise to |composebareproblem|.
+It might also produce a plain name if no item is provided
+(first argument empty).
+
+\DescribeMacro{composenamedproblemdelim}
+\DescribeMacro{composenamedproblemsep}
+\DescribeMacro{composebareproblemdelim}
+\DescribeMacro{composebareproblemsep}
+\DescribeMacro{composeitemproblemdelim}
+\DescribeMacro{composeitemproblemsep}
+Titles and items are separated by some space (|...sep|)
+and/or delimiting characters (|...delim|).
+The item within a named title is separated from the following name by
+|composenamedproblemdelim| and |composenamedproblemsep|.
+In an unnamed title, the type is separated from the following item by
+|composebareproblemsep|, and the item is followed by |composebareproblemdelim|.
+A plain item not used within a title is delimited by |composeitemproblemdelim|.
+The presentation of all titles and items
+is followed by |composeitemproblemsep|.
+
+\DescribeMacro{composetocproblem}
+Problem titles can also be made to appear in the table of contents,
+their display is governed by |composetocproblem|
+which distinguishes between named and unnamed problems.
+The method uses the above delimiter |composenamedproblemdelim|
+but no other customisations because detailed layout
+will be less welcome in the table of contents.
+
+\DescribeMacro{composetitlesheet}
+\DescribeMacro{composetocsheet}
+\DescribeMacro{composemetasheet}
+Sheet titles generated by |composetitlesheet| are similar
+to problem titles but simpler.
+They may or may not have a name, but there are no pre-defined delimiters.
+The two similar methods |composetocsheet| and |composemetasheet|
+govern the display of sheet titles in the table of contents
+and in pdf metadata, respectively.
+
+\DescribeMacro{composeitemsubproblem}
+\DescribeMacro{composetitlesubproblem}
+\DescribeMacro{composeitemsubproblemdelim}
+\DescribeMacro{composeitemsubproblemsep}
+\DescribeMacro{countersubproblem}
+\DescribeMacro{subproblemdelimitem}
+Subproblem items and titles are simple as well because
+subproblems have no names.
+They are generated by |composeitemsubproblem| and |composetitlesubproblem|,
+respectively. The subproblem delimiter and separator
+are determined by |composeitemsubproblemdelim|
+and |composeitemsubproblemsep|, respectively.
+Note that the delimiter `)' within `b)' may be declared as either
+|composeitemsubproblemdelim| or as part of the subproblem counter
+defined in |countersubproblem|.
+This behaviour is governed by the style |subproblemdelimitem|.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Labels for Solutions.}
+
+The display of appropriate solution items and titles is very complex
+as it depends on four factors:
+(i) The first factor is whether solutions are displayed as an itemised list
+or as a plain list.
+(ii) The second factor is whether solutions are
+displayed individually, grouped by problem
+or assembled as a list for multiple problems.
+(iii) The third factor is whether the solution corresponds
+to a problem or subproblem.
+(iv) A fourth factor is whether a solution is the first one within a problem.
+In addition, the list of solutions may have a title (v) and sections (vi).
+Let us discuss the relevant combinations.
+
+\DescribeMacro{composetitlesolutions}
+\DescribeMacro{...solutionsproblemsingle}
+\DescribeMacro{...solutionsproblemmulti}
+The solution list title (``Solutions'') (v)
+generated by |composetitlesolutions| only applies to
+lists of (potentially) multiple problems (ii).
+The solution section title (vi) generated by |composetitlesolutionsproblem...|
+indicates the corresponding problem.
+It comes in two variants |...single| and |...multi|
+which distinguish a single problem (``Solution'')
+from a list of (potentially) multiple problems (``Problem 2'') (ii).
+
+\DescribeMacro{skipsolutionitem}
+\DescribeMacro{skipsolutionitemsub}
+\DescribeMacro{composeitemsolution}
+\DescribeMacro{composeitemsolutionsub}
+\DescribeMacro{composeitemsolutionfirst}
+\DescribeMacro{...itemsolutionfirstsub}
+An itemised list of solutions (i) is invoked by a non-zero
+width |skipsolutionitem|[|sub|] (iii) for horizontal alignment
+of the solution text. In this case, solution items are displayed
+to the left of the line of horizontal alignment.
+These are generated by the configuration |composeitemsolution|[|sub|] (iii)
+irrespectively of the display mode (ii).
+By default, the current problem item is displayed as a section title (vi),
+therefore the solution items will only display
+the corresponding subproblem item
+leaving blank the solution items for problems.
+However, in an adjusted scheme without section titles (vi),
+the very first solution within a problem (iv)
+might additionally indicate the corresponding problem item
+|composeitemsolutionfirst|[|sub|] (iii).
+
+\DescribeMacro{composetitlesolutionsingle}
+\DescribeMacro{composeitemsolutiondelim}
+An individual solution (ii) formally part of a plain list (i)
+starts with the title ``Solution:''
+which is generated by the method |composetitlesolutionsingle|.
+The delimiter `:' is defined by |composeitemsolutiondelim|.
+
+\DescribeMacro{composetitlesolutionmulti}
+\DescribeMacro{...titlesolutionproblem}
+\DescribeMacro{...titlesolutionsubproblem}
+The title for a grouped solution (ii) within a plain list (i)
+is generated by the method |composetitlesolutionmulti|
+which forwards to |composetitlesolution|[|sub|]|problem| (iii).
+Again, by default, these methods only display the subproblem item
+because the problem item is provided as a section title (vi) instead.
+
+\DescribeMacro{composetocsolution}
+\DescribeMacro{composetocsolutions}
+Items for the table of contents corresponding to
+solution lists and problem solutions
+are generated by |composetocsolution|[|s|].
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Examples}
+\label{sec:examples}
+
+This section contains some sample customisations of the default (plain) layout
+which can be realised with moderate effort
+using the various tools provided by the package.
+Additional applications are shown in the sample files
+|exfsamp.tex| and |exfserm.tex|.
+Suggestions for further applications are welcome.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Sheet Title.}
+
+\DescribeMacro{insertsheettitle}
+An important setting is:
+%
+\begin{center}
+|\exerciseconfig{insertsheettitle}{|\textit{code}|}|
+\end{center}
+%
+The code \textit{code} is meant to print the title
+or header of an exercise sheet.
+The minimalistic default code |\centerline{\getsheetdata{title}}|
+merely prints the sheet title ``Sheet \#'' at the centre of a line.
+Commonly, one would replace this by a more elaborate header
+(potentially with some more information,
+appealing layout, logos, \ldots).
+In order to design a header template,
+it makes sense to retrieve data
+via |\getexercisedata| and |\getsheetdata|
+described in \secref{sec:metadata}.
+Likewise |\exercisedataempty| and |\sheetdataempty|
+can be used to display default values or alternative data
+if some particular data is not provided.
+An example is given by the |plainheader| extended style option
+defined in \secref{sec:imp-styles}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Problem Title.}
+
+\DescribeMacro{composetitleproblem}
+\DescribeMacro{composenamedproblem}
+\DescribeMacro{composebareproblem}
+Another noteworthy example is |composetitleproblem|
+to compose the title for a problem. It takes two parameters,
+the number and the title.
+The (somewhat simplified) default declarations are:
+%
+\begin{center}
+\begin{tabular}{l}
+|\exerciseconfig{composetitleproblem}[2]{\exerciseifempty{#2}|\\
+| {\getexerciseconfig{composebareproblem}{#1}}|\\
+| {\getexerciseconfig{composenamedproblem}{#1}{#2}}}|\\
+|\exerciseconfig{composebareproblem}[1]{\getexerciseconfig{termproblem}|\\
+| #1\getexerciseconfig{composebareproblemdelim}}|\\
+|\exerciseconfig{composenamedproblem}[2]|\\
+| {#1\getexerciseconfig{composenamedproblemdelim} #2}|
+\end{tabular}
+\end{center}
+%
+This checks whether the title is empty.
+If no title is given use the configuration |composebareproblem|
+to compose ``Problem \#'',
+where the term ``Problem'' is made abstract
+by the configuration |termproblem|
+(e.g.\ to support internationalisation).
+If a title is given use the configuration |composenamedproblem|
+to compose ``\#. \textit{title}''.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Conditionals.}
+
+\DescribeMacro{\exerciseifempty}
+\DescribeMacro{\exerciseifnotempty}
+Handy conditional commands to check
+whether an expression \textit{expr} is empty are:
+%
+\begin{center}
+\begin{tabular}{l}
+|\exerciseifempty{|\textit{expr}|}|%
+ |{|\textit{empty code}|}{|\textit{filled code}|}|\\
+|\exerciseifnotempty{|\textit{expr}|}|%
+ |{|\textit{filled code}|}|
+\end{tabular}
+\end{center}
+%
+Their main purpose is to test
+whether some provided expression \textit{expt} is empty.
+They expand to the common \TeX{} constructs
+|\if&#1&#2\else#3\fi| and |\if&#1&\else#2\fi|
+which work assuming that \textit{expr} is not too exotic
+(e.g.\ it should not start with the character `|&|'
+and other special \TeX{} characters or macros are potentially dangerous;
+also using this within tables can be troublesome;
+the character `|&|' can be reconfigured by the package option |emptytestchar|).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Decorate Solutions with Boxes.}
+
+\DescribeMacro{insertsolutionsbefore}
+\DescribeMacro{insertsolutionsafter}
+\DescribeMacro{composetitlesolution...}
+The following adjustment changes the
+presentation of solutions to be surrounded by boxes with background colour
+(thanks to Till Bargheer for the example).
+This yields an alternative presentation
+that visually distinguishes problem from solution content.
+
+The adjustment uses the package \ctanpkg{tcolorbox}
+to supply such boxes. The coloured box environment |tcolorbox| is invoked
+by the customisations |insertsolutionsbefore| and |...after|
+which are called just before and after a block of solutions is:
+%
+\begin{center}
+\begin{tabular}{l}
+|\RequirePackage{tcolorbox}|\\
+|\tcbuselibrary{breakable}|\\
+|\exerciseconfig{insertsolutionsbefore}{%|\\
+| \begin{tcolorbox}[breakable,boxrule=0.25pt]}|\\
+|\exerciseconfig{insertsolutionsafter}{\end{tcolorbox}}|\\
+|\exerciseconfig{composetitlesolutionsingle}[2]{}|
+\end{tabular}
+\end{center}
+%
+With the highlighting of solutions by boxes,
+the default introductory statement ``Solution:''
+(when |solutionbelow| is |here| or |subproblem|)
+of a solution block becomes obsolete.
+This is achieved by removing the content of |composetitlesolutionsingle|
+(or similar composition definitions if |solutionbelow| is set otherwise).
+
+\DescribeMacro{solutionpointsat}
+\DescribeMacro{insertpointsmargin}
+Note that displaying points in the margin would have to be adjusted
+because the plain \LaTeX\ command |\marginpar| does not work
+inside a |tcolorbox| (due to nested floats).
+If this combination is desired,
+one should adjust the placement of margin paragraphs
+to the package \ctanpkg{marginnote}:
+%
+\begin{center}
+\begin{tabular}{l}
+|\exercisestyle{solutionpointsat=margin}|\\
+|\RequirePackage{marginnote}|\\
+|\exerciseconfig{insertpointsmargin}[1]{\marginnote{\footnotesize#1}}|
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse
+\paragraph{Further Ideas.}
+
+\begin{itemize}
+\item Optional Starred
+\item Collections
+\item Keep list of tags per sheet. Code to loop through list. Manuel Benz
+\end{itemize}
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Information}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Copyright}
-Copyright \copyright{} 2011--2020 Niklas Beisert
+Copyright \copyright{} 2011--2024 Niklas Beisert
This work may be distributed and/or modified under the
conditions of the \LaTeX{} Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- \url{http://www.latex-project.org/lppl.txt}
-and version 1.3 or later is part of all distributions of \LaTeX{}
-version 2005/12/01 or later.
+ \url{https://www.latex-project.org/lppl.txt}
+and version 1.3c or later is part of all distributions of \LaTeX{}
+version 2008 or later.
This work has the LPPL maintenance status `maintained'.
The Current Maintainer of this work is Niklas Beisert.
This work consists of the files |README.txt|, |exframe.ins| and |exframe.dtx|
-as well as the derived files |exframe.sty|, |exfsamp.tex|, |exfserm.tex|,
-|exfser|\textit{nn}|.tex| (\textit{nn}=|01|, |02|, |03|, |aa|),
-|exfserpe.tex|, |exfserpf.tex|, |exfsermk.sh|, |exfsermk.mak|
+as well as the derived files |exframe.sty|, |exfsamp.tex|,
+|exfser|\textit{x}|.tex| (\textit{x}=|m|, |e|, |f|, |01|, |02|, |03|, |aa|),
+|exfsermk.sh|, |exfsermk.mak|
and |exframe.pdf|.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1613,12 +1973,10 @@ The package consists of the files:
|exframe.sty| & package file \\
|exfsamp.tex| & sample file \\
|exfserm.tex| & multipart sample main file \\
- |exfser01.tex| & multipart sample sheet 1 \\
- |exfser02.tex| & multipart sample sheet 2 \\
- |exfser03.tex| & multipart sample sheet 3 \\
+ |exfser0|\textit{n}|.tex| & multipart sample sheet
+ \textit{n}=|1|, |2|, |3| \\
|exfseraa.tex| & multipart sample unused problems \\
- |exfserpe.tex| & multipart sample problem E \\
- |exfserpf.tex| & multipart sample problem F \\
+ |exfserp|\textit{x}|.tex| & multipart sample problem \textit{x}=|e|, |f| \\
|exfsermk.sh| & multipart sample compile script \\
|exfsermk.mak| & multipart sample makefile \\
|exframe.pdf| & manual
@@ -1634,9 +1992,9 @@ Run (pdf)\LaTeX{} on |exframe.dtx|
to compile the manual |exframe.pdf| (this file).
\item
Run \LaTeX{} on |exframe.ins| to create the package |exframe.sty|
-and the samples consisting of |exfsamp.tex|, |exfserm.tex|,
-|exfser01.tex|, |exfser02.tex|, |exfser03.tex|, |exfseraa.tex|,
-|exfserpe.tex|, |exfserpf.tex|, |exfsermk.sh|, |exfsermk.mak|.
+and the samples consisting of |exfsamp.tex|,
+|exfser|\textit{x}|.tex| (\textit{x}=|m|, |e|, |f|, |01|, |02|, |03|, |aa|),
+|exfsermk.sh|, |exfsermk.mak|.
Copy the file |exframe.sty| to an appropriate directory of your \LaTeX{}
distribution, e.g.\ \textit{texmf-root}|/tex/latex/exframe|.
\end{itemize}
@@ -1647,40 +2005,36 @@ distribution, e.g.\ \textit{texmf-root}|/tex/latex/exframe|.
The package makes use of other packages available at CTAN:
\begin{itemize}
\item
-This package relies on some functionality of the package \textsf{verbatim}
+This package relies on some functionality of the package \ctanpkg{verbatim}
to read verbatim code from the \LaTeX{} source without expansion of macros.
-Compatibility with the \textsf{verbatim} package
+Compatibility with the \ctanpkg{verbatim} package
has been tested with v1.5q (2014/10/28).
\item
-This package uses the package
-\href{http://ctan.org/pkg/xkeyval}{\textsf{xkeyval}}
+This package uses the package \ctanpkg{xkeyval}
to process the options for the package, environments and macros.
-Compatibility with the \textsf{xkeyval} package
+Compatibility with the \ctanpkg{xkeyval} package
has been tested with v2.7a (2014/12/03).
\item
-This package can use the package
-\href{http://ctan.org/pkg/hyperref}{\textsf{hyperref}}
+This package can use the package \ctanpkg{hyperref}
to include hyperlinks between problems and solutions.
-Compatibility with the \textsf{hyperref} package
+Compatibility with the \ctanpkg{hyperref} package
has been tested with v6.88e (2018/11/30).
\item
-This package can use the package
-\href{http://ctan.org/pkg/amstext}{\textsf{amstext}}
-(which is automatically loaded by \textsf{amsmath})
+This package can use the package \ctanpkg{amstext}
+(which is automatically loaded by \ctanpkg{amsmath})
to display text within equations.
-Compatibility with the \textsf{amstext} package
+Compatibility with the \ctanpkg{amstext} package
has been tested with v2.01 (2000/06/29).
\item
This package uses the command |\currfilename|
-provided by the package \textsf{currfile} (if available and loaded)
+provided by the package \ctanpkg{currfile} (if available and loaded)
to indicate the \LaTeX{} source file in the generated metapost file.
-Compatibility with the \textsf{currfile} package
+Compatibility with the \ctanpkg{currfile} package
has been tested with v0.7c (2015/04/23).
\item
-This package can use the package
-\href{http://ctan.org/pkg/metastr}{\textsf{metastr}}
-to write PDF metadata and to handle basic translations.
-Compatibility with the \textsf{metastr} package
+This package can use the package \ctanpkg{metastr}
+to write pdf metadata and to handle basic translations.
+Compatibility with the \ctanpkg{metastr} package
has been tested with v1.0 (2020/02/06).
\end{itemize}
@@ -1690,8 +2044,8 @@ varying largely in scope and sophistication:
%
\begin{itemize}
\item
-The package \href{http://ctan.org/pkg/exsheets}{\textsf{exsheets}}
-and its successor \href{http://ctan.org/pkg/xsim}{\textsf{xsim}}
+The package \ctanpkg{exsheets}
+and its successor \ctanpkg{xsim}
provide a \LaTeX{} 3 style for typesetting exercises with solutions.
They offer options to
hide or delay solutions,
@@ -1702,7 +2056,7 @@ handle exercise collections,
as well as some more specific options.
They allow to adjust the layout and choose among predefined ones.
\item
-The package \href{http://ctan.org/pkg/exercise}{\textsf{exercise}}
+The package \ctanpkg{exercise}
provides a style for typesetting exercises with solutions.
It offers many options to
hide or delay solutions,
@@ -1711,18 +2065,18 @@ specify some metadata
as well as some more specific options.
It allows to customise the layout.
\item
-The package \href{http://ctan.org/pkg/exercises}{\textsf{exercises}}
+The package \ctanpkg{exercises}
provides a style for typesetting exercises with solutions.
It offers options to hide solutions and deal with points.
It allows basic customisation of the layout.
\item
-The package \href{http://ctan.org/pkg/exam}{\textsf{exam}}
+The package \ctanpkg{exam}
provides a document class for typesetting exams conveniently.
It offers many options to hide solutions, deal with points
and deal with other exam-specific tasks.
It allows to adjust the layout and choose among predefined ones.
\item
-The package \href{http://ctan.org/pkg/probsoln}{\textsf{probsoln}}
+The package \ctanpkg{probsoln}
provides a style for typesetting exercises with solutions
which are stored in a collection.
It offers options to
@@ -1730,18 +2084,17 @@ hide solutions
and to assemble problems from an external collection.
\item
The packages
-\href{http://ctan.org/pkg/uebungsblatt}{\textsf{uebungsblatt}},
-\href{http://ctan.org/pkg/uassign}{\textsf{uassign}},
-\href{http://ctan.org/pkg/mathexam}{\textsf{mathexam}},
-\href{http://ctan.org/pkg/exsol}{\textsf{exsol}},
+\ctanpkg{uebungsblatt},
+\ctanpkg{uassign},
+\ctanpkg{mathexam},
+\ctanpkg{exsol},
\href{https://github.com/mbauman/homework}{\textsf{homework}},
\href{https://gist.github.com/jhwilson/1278588}{\textsf{jhwhw}}
provide basic functionality for somewhat more particular situations.
\end{itemize}
%
-See CTAN categories
-\href{http://ctan.org/topic/exercise}{\textsf{exercise}}
-and \href{http://ctan.org/topic/exam}{\textsf{exam}}
+See CTAN categories \ctanref{topic/exercise}{exercise}
+and \ctanref{topic/exam}{exam}
for further up-to-date packages.
The philosophy of the present package is to
@@ -1753,51 +2106,14 @@ and separate it from the various layout definitions and choices
which will define the appearance of the content.
The interface was designed to reduce potential conflict
with other packages and definitions.
-The package itself does not define an elaborate layout,
-but it provides means to adjust it in many ways and
+The package itself provides a functional basic layout
+rather than an elaborate or particularly appealing one.
+However, it provides means to adjust the basic layout in many ways and
to predefine custom layout schemes.
The package offers most of the functionality of the above packages,
-but (presently) misses out on some more advanced features,
-see \secref{sec:suggestions}.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\iffalse
-\subsection{Suggested Customisations}
-\label{sec:customisations}
-
-\textbf{philosophy:}
-this is fundamental, relies on few other basic packages.
-can improve by combining with other packages which provide solutions
-for particular applications. some suggestions:
-
-\textbf{Optional Starred}
-
-\textbf{Till's Boxen}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Realize background color for solutions with tcolorbox:
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\RequirePackage{tcolorbox}
-%\tcbuselibrary{breakable}
-%\exercisestyle{solutionsep}
-%\exerciseconfig{insertsolutionsbefore}{%
-% \begin{tcolorbox}[breakable,boxrule=0.2pt,sharp corners=all]}
-%\exerciseconfig{insertsolutionsafter}{%
-% \end{tcolorbox}}
-%% cannot use marginpar inside tcolorbox (nested floats), use marginnote instead:
-%\exercisestyle{solutionpointsat=margin}
-%\RequirePackage{marginnote}
-%\exerciseconfig{insertpointsmargin}[1]{\marginnote{\footnotesize #1}}
-%% Don't indent solutions:
-%\exerciseconfig{skipsolutionitemsub}{0ex}
-%% remove initial "Solution:" because the colorbox is highlight enough:
-%\exerciseconfig{composetitlesolutionsingle}[2]{}
-
-\textbf{Collections}
-
-\textbf{keep list of tags per sheet. code to loop through list. Manuel Benz}
-
-\fi
+but (presently) misses out on some more advanced features.
+See \secref{sec:customisation} on customisation assistance and examples
+and \secref{sec:suggestions} for feature suggestions.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Feature Suggestions}
@@ -1808,8 +2124,13 @@ versions of this package:
%
\begin{itemize}
\item
-Add a section on useful combinations of customisation settings
-to achieve specific goals. Please send suggestions.
+Define structures for multiple-choice questions.
+\item
+Add more guidance to \secref{sec:guides} on customisation settings.
+\item
+Add more examples of customisation settings to achieve specific goals
+to \secref{sec:examples}.
+Please send suggestions.
\item
Option to hide problem text while maintaining access to embedded solutions
(for a version containing only solutions):
@@ -1818,24 +2139,43 @@ cannot simply be discarded, but would have to be scanned very carefully
for the embedded solution;
instead process problems to some document and save solutions to file,
then read solutions from different document.
-\item
-Define structures for multiple-choice questions.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Revision History}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\iffalse
-\paragraph{v3.4+:} 2020/02/25
+\paragraph{v3.5:} 2024/10/18
\begin{itemize}
\item
-section on extensions
+more convenient delimiter configuration |compose...delim| for various items
+\item
+composition of problem titles in |composetitleproblem|
+split up further into the configurations |composebareproblem|
+and |composenamedproblem|;
+to enable delimiter `.' for problems without a name, use
+%
+\begin{center}
+|\exerciseconfig{composebareproblemdelim}{.}|
+\end{center}
+%
+\item
+style |subproblemdelimitem| added
+to shift delimiter `)' from subproblem reference labels
+to subproblem item composition.
\item
-\ldots
+|composetitlesolutionsproblemmulti| improved
+(thanks to Daniel Wegmann for pointing out insufficient behaviour)
+\item
+option |forproblem| for |solution|
+to release association to previous subproblem
+\item
+option to |disable| particular subproblems and solutions
+including following |solution| block
+\item
+handling of first solutions within a problem block
\end{itemize}
-\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{v3.4:} 2020/02/24
@@ -1847,7 +2187,7 @@ list iterators
\item
tags for subproblems, tag customisation
\item
-interaction with package \textsf{metastr}
+interaction with package \ctanpkg{metastr}
\item
minor fixes
\end{itemize}
@@ -1913,7 +2253,7 @@ multipart sample added
\begin{itemize}
\item
fix interaction with
-package \href{http://ctan.org/pkg/calc}{\textsf{calc}}
+package \ctanpkg{calc}
(thanks to Johannes Hahn for bug report)
\item
fix style |fracpoints| in combination
@@ -1957,7 +2297,7 @@ generalised sectioning layout
\item
changed layout specification model
\item
-insert hyperlinks using \textsf{hyperref}
+insert hyperlinks using \ctanpkg{hyperref}
\item
manual, example and installation package added
\end{itemize}
@@ -2044,7 +2384,7 @@ dedicated layout and macros for author's exercise sheets
\documentclass[12pt]{article}
% \end{macrocode}
-% Use package \textsf{geometry} to set the page layout;
+% Use package \ctanpkg{geometry} to set the page layout;
% adjust the paragraph shape:
% \begin{macrocode}
\usepackage{geometry}
@@ -2055,13 +2395,13 @@ dedicated layout and macros for author's exercise sheets
\parskip0.5ex
% \end{macrocode}
-% Include \textsf{amsmath}, \textsf{hyperref} packages:
+% Include \ctanpkg{amsmath}, \ctanpkg{hyperref} packages:
% \begin{macrocode}
\usepackage{amsmath}
\usepackage{hyperref}
% \end{macrocode}
-% May include \textsf{metastr} package;
+% May include \ctanpkg{metastr} package;
% below code adjusts to whether or not present:
% \begin{macrocode}
\PassOptionsToPackage{loadlang=en|de}{metastr}
@@ -2082,8 +2422,8 @@ dedicated layout and macros for author's exercise sheets
% the display of solutions near the top
% of the source file, potentially with the opposite setting commented out:
% \begin{macrocode}
-%%\exercisesetup{solutions=true}
\exercisesetup{solutions=false}
+%%\exercisesetup{solutions=true}
% \end{macrocode}
% Automatically put labels for (sub)problems:
@@ -2105,14 +2445,20 @@ dedicated layout and macros for author's exercise sheets
\exerciseconfig{composeheaderbelowright}{\getsheetdata{points}}%
% \end{macrocode}
+% Make the delimiter `)' part of the subproblem item
+% rather than the subproblem label:
+% \begin{macrocode}
+\exercisestyle{subproblemdelimitem}
+% \end{macrocode}
+
% Redefine the appearance of some counters;
% sheets should be labelled by capital roman numerals,
% subproblems by lowercase roman numerals;
% declare the widest subproblem item to be expected:
% \begin{macrocode}
\exerciseconfig{countersheet}{\Roman{sheet}}
-\exerciseconfig{countersubproblem}{\roman{subproblem})}
-\exerciseconfig{countersubproblemmax}{vii)}
+\exerciseconfig{countersubproblem}{\roman{subproblem}}
+\exerciseconfig{countersubproblemmax}{vii}
% \end{macrocode}
% Automatically display an asterisk for all
@@ -2172,6 +2518,10 @@ dedicated layout and macros for author's exercise sheets
% \begin{macrocode}
\exercisestyle{solutionbelow=problem}
% \end{macrocode}
+% Indent solutions for subproblems:
+% \begin{macrocode}
+\exerciseconfig{skipsolutionitemsub}{-1pt}
+% \end{macrocode}
% Separate solutions by horizontal lines (extended style):
% \begin{macrocode}
\exercisestyle{solutionsep}
@@ -2311,7 +2661,7 @@ Keep calm and calculate!
% declare author:
% \begin{macrocode}
\begin{solution}[author={C.\ F.\ Gau\ss}]
-We use the result $1+2+3=6$ from part \ref{\problemtag-simplesum}
+We use the result $1+2+3=6$ from part \ref{\problemtag-simplesum})
to jumpstart the calculation. The remaining sums yield
\awardpoints*[1 for each remaining sum]{97}
\begin{equation}
@@ -2516,13 +2866,12 @@ value
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{childdoc Mechanism.}
%
-% The setup uses the package \textsf{childdoc} to allow compilation
+% The setup uses the package \ctanpkg{childdoc} to allow compilation
% of the series as a whole or in parts and with various sets of options:
% \begin{macrocode}
\input{childdoc.def}
-\childdocmain{exfserm}
+\childdocmain{}
% \end{macrocode}
-% The parameter of |\childdocmain| must match the main file name |exfserm|.
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Compilation Switches.}
@@ -2553,14 +2902,14 @@ value
% \end{macrocode}
% \begin{macrocode}
-% \textsf{graphicx} package to display license logo:
+% \ctanpkg{graphicx} package to display license logo:
\RequirePackage{graphicx}
% \end{macrocode}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{hyperref Package.}
%
-% Use the \textsf{hyperref} package.
+% Use the \ctanpkg{hyperref} package.
% Declare some options, e.g.\ use bookmarks only for complete document:
% \begin{macrocode}
\PassOptionsToPackage{bookmarks=\ifchilddoc false\else true\fi}{hyperref}
@@ -2571,10 +2920,10 @@ value
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{metastr Package.}
%
-% Use the \textsf{metastr} package to handle
+% Use the \ctanpkg{metastr} package to handle
% metadata and copyright information;
-% disable usage of \textsf{hyperxmp} package if not installed;
-% write auxiliary PDF metadata and rights information:
+% disable usage of \ctanpkg{hyperxmp} package if not installed;
+% write auxiliary pdf metadata and rights information:
% \begin{macrocode}
\ifdraft
\PassOptionsToPackage{draft}{metastr}
@@ -2703,14 +3052,14 @@ value
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{metapost Setup.}
%
-% Use package \textsf{mpostinl} (if available)
+% Use package \ctanpkg{mpostinl} (if available)
% to include some metapost figures within the source of the problems:
% \begin{macrocode}
\IfFileExists{mpostinl.sty}{\RequirePackage{mpostinl}}{}
\ifdefined\mpostsetup
% \end{macrocode}
-% Setup \textsf{mpostinl}.
+% Setup \ctanpkg{mpostinl}.
% Use checksums to invoke metapost only when figures change.
% Process all figures individually and immediately when in
% draft mode for child documents (avoids a second compilation pass).
@@ -2750,7 +3099,7 @@ enddef;
\mpostsetup{globaldef=false}
% \end{macrocode}
-% Close optional \textsf{mpostinl} processing:
+% Close optional \ctanpkg{mpostinl} processing:
% \begin{macrocode}
\fi
% \end{macrocode}
@@ -2765,16 +3114,7 @@ enddef;
\metaset{author}{Niklas Beisert, \metapick[#1]{institution}}
\metaset{institution}{exframe academy}
\metaset{period}{spring 2019}
-\metaset{copyrightdate}{2019--2020}
-% \end{macrocode}
-
-% Assemble some entries from given data:
-% \begin{macrocode}
-\metaset{material}{\metatranslate[#1]{sheets}}
-\exerciseconfig{composetitlesheet}[2]{\exerciseifempty{#2}%
- {\ifsolutions\metaterm{solutions}\else%
- \metaterm{sheet}\fi\ #1}%
- {\ifsolutions\metaterm{solutions} \fi #2}}
+\metaset{copyrightdate}{2019--2024}
% \end{macrocode}
% For child documents declare part of:
@@ -2784,12 +3124,19 @@ enddef;
\fi
% \end{macrocode}
-% Set general purpose metadata:
+% Assemble some entries from given data:
% \begin{macrocode}
\metaset[sep]{draft}{ -- }
\metaset[sep]{subtitle}{, }
-\metaset{subtitle}{\ifsolutions\metatranslate[#1]{solutions} \fi%
- \metaif[use]{sheettitle}{\metapick[#1]{sheettitle}}{\metapick[#1]{material}}}
+\metaset{material}{\ifsolutions\metatranslate[#1]{solutions} \fi%
+ \metatranslate[#1]{sheets}}
+\exerciseconfig{composetitlesheet}[2]{\exerciseifempty{#2}%
+ {\ifsolutions\metaterm{solutions}\else\metaterm{sheet}\fi\ #1}%
+ {\ifsolutions\metaterm{solutions} \fi #2}}
+\metaset{sheettitle}{\ifsolutions\metatranslate[#1]{solutions} \fi%
+ \exerciseifempty{\getsheetdata{rawtitle}}%
+ {\metatranslate[#1]{sheet} \thesheet}%
+ {\getsheetdata{rawtitle}}}
\metaset{subject}{Lecture Series,
\metapick[#1]{institution}, \metapick[#1]{period}}
% \end{macrocode}
@@ -2933,7 +3280,7 @@ enddef;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{childdoc Mechanism.}
%
-% Instruct the package \textsf{childdoc} to compile
+% Instruct the package \ctanpkg{childdoc} to compile
% only the present sheet if source is compiled by latex:
% \begin{macrocode}
%%\providecommand{\printsol}{n}
@@ -2963,7 +3310,7 @@ enddef;
%\iffalse
%</samplemultisheet1>
%<samplemultisheet2>\begin{sheet}[due={2019-05-06}]
-%<samplemultisheet3>\begin{sheet}[due={2019-05-13}]
+%<samplemultisheet3>\begin{sheet}[due={2019-05-13}, title={last sheet}]
%<samplemultisheeta>\begin{sheet}[title={unused problems}]
%<*samplemultisheet1>
%\fi
@@ -2985,7 +3332,7 @@ enddef;
%<*samplemultisheet1|samplemultisheet2|samplemultisheeta|samplemultiprobleme>
%\fi
-% Let us declare a figure using \textsf{mpostinl} (if available).
+% Let us declare a figure using \ctanpkg{mpostinl} (if available).
% Denote it by the label \textit{tag}|-fig|,
% where \textit{tag} is the tag of the problem
% (in order to avoid potential conflicts with other problems;
@@ -3072,7 +3419,7 @@ fillshape(paths[3], 0.7white) pensize(1pt);
%\fi
% Write a second problem to accompany the first one:
% \begin{macrocode}
-\begin{problem}[title={Sample B}]
+\begin{problem}
% \end{macrocode}
%
%\iffalse
@@ -3136,7 +3483,7 @@ fillshape(paths[3], 0.7white) pensize(1pt);
% It may be more convenient to define each problem in an individual file,
% so that a sheet can be composed by including the appropriate
% problem files.
-% In such a setup, the \textsf{childdoc} mechanism
+% In such a setup, the \ctanpkg{childdoc} mechanism
% allows to compile each problem individually.
%
% To that end, prepare a file |exfserp|\textit{nn}|.tex|
@@ -3274,7 +3621,7 @@ if [[ "$make" == ".pdf" ]]; then nl=""; fi
%\iffalse$\fi
% Function to compile a component.
-% Set up \textsf{childdoc} mechanism according to desired component.
+% Set up \ctanpkg{childdoc} mechanism according to desired component.
% Compile two passes, first in |-draftmode|.
% Suppress messages by |mpost|.
% Display warning messages in log file:
@@ -3307,7 +3654,7 @@ function docompile
% \end{macrocode}
%\iffalse$\fi
-% Function to generate a \textsf{childdoc} compile file with specific options:
+% Function to generate a \ctanpkg{childdoc} compile file with specific options:
% \begin{macrocode}
function writesource
{
@@ -3469,10 +3816,10 @@ clean-all: clean
% \paragraph{Required Packages.}
%
% The package loads the package
-% \textsf{verbatim} and \textsf{xkeyval}
+% \ctanpkg{verbatim} and \ctanpkg{xkeyval}
% if not yet present.
-% \textsf{verbatim} is used for solution environment reading
-% and \textsf{xkeyval} is used for extended options processing:
+% \ctanpkg{verbatim} is used for solution environment reading
+% and \ctanpkg{xkeyval} is used for extended options processing:
% \begin{macrocode}
\RequirePackage{verbatim}
\RequirePackage{xkeyval}
@@ -3529,7 +3876,7 @@ clean-all: clean
% \end{macrocode}
% \macro{\exf@expsetkeys}
-% A version of |\setkeys| from \textsf{xkeyval} which expands first:
+% A version of |\setkeys| from \ctanpkg{xkeyval} which expands first:
% \begin{macrocode}
\newcommand{\exf@expsetkeys}[2]{\edef\exf@tmp{#2}%
\exf@exparg{\setkeys{#1}}{\exf@tmp}}
@@ -3544,7 +3891,7 @@ clean-all: clean
% \macro{\exf@href}
% Display text with hyperreference passed by macro |#1|
-% (in case \textsf{hyperref} is loaded
+% (in case \ctanpkg{hyperref} is loaded
% and the reference is defined and not empty):
% \begin{macrocode}
\newcommand{\exf@href}[2]{%
@@ -3555,7 +3902,7 @@ clean-all: clean
% \macro{\exf@text}
% \macro{\exf@ensuretext}
% Two macros to display text in math mode.
-% |exf@text| is a wrapper for |\text| of \textsf{amstext}
+% |exf@text| is a wrapper for |\text| of \ctanpkg{amstext}
% in case the latter package is loaded.
% |exf@ensuretext| makes sure the text is set in text mode
% or within an |\mbox| in math math:
@@ -3620,15 +3967,13 @@ clean-all: clean
\define@key{exframe.sty}{solutioncounter}{\def\exf@solutioncounter{#1}}
\define@key{exframe.sty}{sheetcounter}{\def\exf@sheetcounter{#1}}
% \end{macrocode}
-
% Whether to provide some extended configuration options
% (available while loading only):
% \begin{macrocode}
\define@boolkey{exframe.sty}[exf@]{extdata}[true]{}
\define@boolkey{exframe.sty}[exf@]{extstyle}[true]{}
% \end{macrocode}
-
-% Whether to load package \textsf{metastr}
+% Whether to load package \ctanpkg{metastr}
% (available while loading only):
% \begin{macrocode}
\define@boolkey{exframe.sty}[exf@]{metastr}[true]{}
@@ -3682,6 +4027,10 @@ clean-all: clean
% \begin{macrocode}
\define@boolkey{exf@setup}[exf@]{problembuf}[true]{}
% \end{macrocode}
+% Activate buffering of subproblems:
+% \begin{macrocode}
+\define@boolkey{exf@setup}[exf@]{subproblembuf}[true]{}
+% \end{macrocode}
% \macro{\exf@emptytestchar}
% Redefine character for testing emptyness:
% \begin{macrocode}
@@ -3706,7 +4055,7 @@ clean-all: clean
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Additional Packages.}
%
-% Load \textsf{metastr} package if desired:
+% Load \ctanpkg{metastr} package if desired:
% \begin{macrocode}
\ifexf@metastr
\PassOptionsToPackage{course=true}{metastr}
@@ -4014,6 +4363,7 @@ clean-all: clean
\exerciseconfig{insertsubproblemafter}{}
\exerciseconfig{insertsubprobleminfo}{}
\exerciseconfig{insertsubproblemsolution}{}
+\exerciseconfig{insertsubproblemselect}[1]{}
% \end{macrocode}
% Analogous definitions for solutions:
% \begin{macrocode}
@@ -4052,68 +4402,116 @@ clean-all: clean
% arguments are sheet number and raw title:
% \begin{macrocode}
\exerciseconfig{composetocsheet}[2]%
- {\exerciseifempty{#2}{\getexerciseconfig{termsheet} #1}{#1. #2}}
+ {\exerciseifempty{#2}{\getexerciseconfig{termsheet} #1}{#2}}
+% \end{macrocode}
+% Problem item separator, delimiter:
+% \begin{macrocode}
+\exerciseconfig{composeitemproblemsep}{\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composeitemproblemdelim}{.}
% \end{macrocode}
% Compose problem item; argument is problem number:
% \begin{macrocode}
-\exerciseconfig{composeitemproblem}[1]{#1.}
+\exerciseconfig{composeitemproblem}[1]%
+ {#1\getexerciseconfig{composeitemproblemdelim}}
+% \end{macrocode}
+% Unnamed problem separator, delimiter:
+% \begin{macrocode}
+\exerciseconfig{composebareproblemsep}{ }
+\exerciseconfig{composebareproblemdelim}{}
+% \end{macrocode}
+% Compose unnamed problem title; arguments are problem number and name;
+% includes exception for legacy behaviour:
+% \begin{macrocode}
+\exerciseconfig{composebareproblem}[1]%
+ {\getexerciseconfig{termproblem}\getexerciseconfig{composebareproblemsep}%
+ \ifx\exf@config@composebareproblemdelim\exf@config@composeitemproblemdelim%
+ \getexerciseconfig{composeitemproblem}{#1}\else%
+ #1\getexerciseconfig{composebareproblemdelim}\fi}
% \end{macrocode}
-% Problem item separator:
+% Named problem separator, delimiter:
% \begin{macrocode}
-\exerciseconfig{composeitemproblemsep}%
- {\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composenamedproblemsep}{ }
+\exerciseconfig{composenamedproblemdelim}{.}
+% \end{macrocode}
+% Compose named problem title; arguments are problem number and name;
+% includes exception for legacy behaviour:
+% \begin{macrocode}
+\exerciseconfig{composenamedproblem}[2]%
+ {\ifx\exf@config@composenamedproblemdelim\exf@config@composeitemproblemdelim%
+ \getexerciseconfig{composeitemproblem}{#1}\else%
+ #1\getexerciseconfig{composenamedproblemdelim}\fi%
+ \getexerciseconfig{composenamedproblemsep}#2}
% \end{macrocode}
% Compose problem title;
% arguments are problem number (empty if item is split off)
% and raw title (empty if not specified);
-% default is ``Problem |#1|.'' or ``|#1|. |#2|'':
+% default is ``Problem |#1|'' or ``|#1|. |#2|'':
% \begin{macrocode}
\exerciseconfig{composetitleproblem}[2]{\exerciseifempty{#1}%
{\exerciseifempty{#2}{}{#2}}%
- {\exerciseifempty{#2}{\getexerciseconfig{termproblem}\ %
- \getexerciseconfig{composeitemproblem}{#1}}%
- {\getexerciseconfig{composeitemproblem}{#1} #2}}}
+ {\exerciseifempty{#2}{\getexerciseconfig{composebareproblem}{#1}}%
+ {\getexerciseconfig{composenamedproblem}{#1}{#2}}}}
% \end{macrocode}
% Compose problem title for table of contents;
% arguments are problem number and raw title:
% \begin{macrocode}
\exerciseconfig{composetocproblem}[2]%
- {\exerciseifempty{#2}{\getexerciseconfig{termproblem} #1}{#1. #2}}
+ {\exerciseifempty{#2}{\getexerciseconfig{termproblem} #1}%
+ {#1\getexerciseconfig{composenamedproblemdelim} #2}}
% \end{macrocode}
-% Compose subproblem item; argument is subproblem number:
+% Subproblem item separator, delimiter:
% \begin{macrocode}
-\exerciseconfig{composeitemsubproblem}[1]{#1}
+\exerciseconfig{composeitemsubproblemsep}{\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composeitemsubproblemdelim}{}
% \end{macrocode}
-% Subproblem item separator:
+% Compose subproblem item; argument is subproblem number:
% \begin{macrocode}
-\exerciseconfig{composeitemsubproblemsep}%
- {\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composeitemsubproblem}[1]%
+ {#1\getexerciseconfig{composeitemsubproblemdelim}}
% \end{macrocode}
% Compose subproblem title;
% argument is subproblem number:
% \begin{macrocode}
-\exerciseconfig{composetitlesubproblem}[1]{#1}
+\exerciseconfig{composetitlesubproblem}[1]%
+ {\getexerciseconfig{composeitemsubproblem}{#1}}
+% \end{macrocode}
+% Solution item separator, delimiter:
+% \begin{macrocode}
+\exerciseconfig{composeitemsolutionsep}{\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composeitemsolutiondelim}{:}
% \end{macrocode}
% Compose solution item; arguments are problem and subproblem number:
% \begin{macrocode}
-\exerciseconfig{composeitemsolution}[2]{#1.}
-\exerciseconfig{composeitemsolutionsub}[2]{#2}
+\exerciseconfig{composeitemsolution}[2]{}
+\exerciseconfig{composeitemsolutionsub}[2]%
+ {\getexerciseconfig{composeitemsubproblem}{#2}}
% \end{macrocode}
-% Solution item separator:
+% Compose solution item for first solution in a problem section;
+% arguments are problem and subproblem number:
% \begin{macrocode}
-\exerciseconfig{composeitemsolutionsep}%
- {\getexerciseconfig{composeitemsep}}
+\exerciseconfig{composeitemsolutionfirst}[2]%
+ {\getexerciseconfig{composeitemsolution}{#1}{#2}}
+\exerciseconfig{composeitemsolutionfirstsub}[2]%
+ {\getexerciseconfig{composeitemsolutionsub}{#1}{#2}}
% \end{macrocode}
-% Compose title for single solution;
+% Compose title for single solution
+% (solution intro if |solutionbelow| is |here| or |subproblem|);
% arguments are corresponding problem and subproblem number:
% \begin{macrocode}
\exerciseconfig{composetitlesolutionsingle}[2]%
- {\getexerciseconfig{termsolution}:}
+ {\getexerciseconfig{termsolution}%
+ \getexerciseconfig{composeitemsolutiondelim}}
% \end{macrocode}
-% Compose title for one out of several solutions;
+% Compose title for one out of several solutions
+% (solution intro if |solutionbelow| is |problem|, |sheet| or |manual|);
% arguments are corresponding problem and subproblem number:
% \begin{macrocode}
-\exerciseconfig{composetitlesolutionmulti}[2]{#2}
+\exerciseconfig{composetitlesolutionproblem}[1]{}
+\exerciseconfig{composetitlesolutionsubproblem}[2]%
+ {\getexerciseconfig{composeitemsubproblem}{#2}}
+\exerciseconfig{composetitlesolutionmulti}[2]{\exerciseifempty{#2}%
+ {\getexerciseconfig{composetitlesolutionproblem}{#1}}%
+ {\getexerciseconfig{composetitlesolutionsubproblem}{#1}{#2}}}
% \end{macrocode}
% Compose table of contents line for solution;
% arguments are problem number and raw title:
@@ -4141,17 +4539,20 @@ clean-all: clean
\exerciseconfig{composetocproblems}%
{\getexerciseconfig{composetitleproblems}}
% \end{macrocode}
-% Compose sectional title for solution following a single problem;
+% Compose sectional title for solution following a single problem
+% (problem section intro if |solutionbelow| is |problem|);
% arguments are problem number and raw title:
% \begin{macrocode}
\exerciseconfig{composetitlesolutionsproblemsingle}[2]%
{\getexerciseconfig{termsolution}}
% \end{macrocode}
-% Compose sectional title for solution of one problem within a solution block;
+% Compose sectional title for solution of one problem within a solution block
+% (problem section intro if |solutionbelow| is |sheet| or |manual|);
% arguments are problem number and raw title:
% \begin{macrocode}
\exerciseconfig{composetitlesolutionsproblemmulti}[2]%
- {\exerciseifempty{#2}{\getexerciseconfig{termproblem} #1}{#1. #2}}
+ {\exerciseifempty{#2}{\getexerciseconfig{composebareproblem}{#1}}%
+ {\getexerciseconfig{composenamedproblem}{#1}{#2}}}
% \end{macrocode}
% Compose label:
% \begin{macrocode}
@@ -4260,12 +4661,12 @@ clean-all: clean
% Display warning about points mismatch:
% \begin{macrocode}
-\exerciseconfig{insertwarnpoints}[3]
+\exerciseconfig{insertwarnpoints}[3]%
{\textbf{points mismatch for #1 (#2 determined vs.\ #3 given)}}
% \end{macrocode}
% Display warning about points changed:
% \begin{macrocode}
-\exerciseconfig{insertwarnpointsrerun}[1]
+\exerciseconfig{insertwarnpointsrerun}[1]%
{\textbf{points changed for #1 (please recompile)}}
% \end{macrocode}
@@ -4452,6 +4853,16 @@ clean-all: clean
% \begin{macrocode}
\defexercisestylearg[true]{twoside}{\exercisesetup{twoside={#1}}}
% \end{macrocode}
+%
+% \macro{subproblemdelimitem}
+% to append delimiter `)' to subproblem reference labels
+% Use two-sided layout for sheets:
+% \begin{macrocode}
+\defexercisestyle{subproblemdelimitem}%
+ {\exerciseconfig{composeitemsubproblemdelim}{)}%
+ \exerciseconfig{countersubproblem}{\alph{\exf@subproblemcounter}}%
+ \exerciseconfig{countersubproblemmax}{m}}
+% \end{macrocode}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Extended Exercise Styles.}
@@ -4669,6 +5080,12 @@ clean-all: clean
% \begin{macrocode}
\newcommand{\setproblemdata}[1]{\setkeys{exf@problem,exf@scanproblem}{#1}}
% \end{macrocode}
+% \macro{\setsubproblemdata}
+% Set subproblem metadata:
+% \begin{macrocode}
+\newcommand{\setsubproblemdata}[1]{%
+ \setkeys{exf@subproblem,exf@scansubproblem}{#1}}
+% \end{macrocode}
% \macro{\getproblemdata}
% Read problem metadata:
% \begin{macrocode}
@@ -4819,7 +5236,7 @@ clean-all: clean
% \paragraph{Write Metadata to PDF Files.}
%
% \macro{\exf@writemetadata}
-% Write Metadata to PDF Files in case \textsf{hyperref} is available:
+% Write Metadata to PDF Files in case \ctanpkg{hyperref} is available:
% \begin{macrocode}
\newcommand{\exf@writemetadata}{%
\ifdefined\hypersetup%
@@ -4872,7 +5289,7 @@ clean-all: clean
% \end{macrocode}
% Implement counter display;
-% take care of corresponding \textsf{hyperref} labels:
+% take care of corresponding \ctanpkg{hyperref} labels:
% \begin{macrocode}
\exf@csdo\def{the\exf@sheetcounter}{\exf@config@countersheet}
\exf@csdo\def{the\exf@problemcounter}{\exf@config@counterproblem}
@@ -4904,7 +5321,7 @@ clean-all: clean
% \macro{\exf@numberequationwithin}
% Declare various new equation counters as subcounter of |#1|;
-% take care of corresponding \textsf{hyperref} labels:
+% take care of corresponding \ctanpkg{hyperref} labels:
% \begin{macrocode}
\newcommand{\exf@numberequationwithin}[1]{%
\@addtoreset{exf@sheetequation}{#1}%
@@ -4959,7 +5376,7 @@ clean-all: clean
% \macro{\exf@lineno}
% Return current position in source file;
% display line number and source file name
-% (if available via package \textsf{currfile}):
+% (if available via package \ctanpkg{currfile}):
% \begin{macrocode}
\newcommand{\exf@lineno}{\@percentchar%
\ifdefined\currfilename\currfilename\space\fi%
@@ -5037,6 +5454,7 @@ clean-all: clean
%
% \macro{\exf@solbuf}
% \macro{\exf@probbuf}
+% \macro{\exf@subprobbuf}
% \macro{\ifexf@solbuf@clean}
% \macro{\ifexf@probbuf@clean}
% Declare token buffers for storing problems and solutions
@@ -5044,15 +5462,18 @@ clean-all: clean
% \begin{macrocode}
\newtoks\exf@solbuf
\newtoks\exf@probbuf
+\newtoks\exf@subprobbuf
\newif\ifexf@solbuf@clean\exf@solbuf@cleantrue
\newif\ifexf@probbuf@clean\exf@probbuf@cleantrue
% \end{macrocode}
% \macro{\exf@clear@solbuf}
% \macro{\exf@clear@probbuf}
+% \macro{\exf@clear@subprobbuf}
% Clear a buffer and mark clean:
% \begin{macrocode}
\def\exf@clear@solbuf{\global\exf@solbuf@cleantrue\global\exf@solbuf={}}
\def\exf@clear@probbuf{\global\exf@probbuf@cleantrue\global\exf@probbuf={}}
+\def\exf@clear@subprobbuf{\global\exf@subprobbuf={}}
% \end{macrocode}
% \macro{\exf@append@buf}
@@ -5290,8 +5711,7 @@ clean-all: clean
\ifnum\exf@splitdec=375\def\exf@tmp{\exf@config@frac{\exf@splitint}{3}{8}}\fi%
\ifnum\exf@splitdec=625\def\exf@tmp{\exf@config@frac{\exf@splitint}{5}{8}}\fi%
\ifnum\exf@splitdec=875\def\exf@tmp{\exf@config@frac{\exf@splitint}{7}{8}}\fi%
- \ifx\exf@splitminus\exf@empty\else$\exf@splitminus$\fi\exf@tmp%
-}
+ \ifx\exf@splitminus\exf@empty\else$\exf@splitminus$\fi\exf@tmp}
% \end{macrocode}
% \macro{\exf@config@frac}
@@ -5730,7 +6150,7 @@ clean-all: clean
% \end{macrocode}
% Mark for new solution section; remember problem counter, title:
% \begin{macrocode}
- \gdef\exf@problem@solnewsec{}%
+ \global\let\exf@problem@solfirst\exf@empty%
\xdef\exf@prevprob{\csname the\exf@problemcounter\endcsname}%
\ifcsname theH\exf@problemcounter\endcsname%
\xdef\exf@prevprobhref{\exf@problemcounter.%
@@ -5741,8 +6161,7 @@ clean-all: clean
\else%
\protected@xdef\exf@prevprobtitle{\exf@data@problem@rawtitle}%
\fi%
- \global\let\exf@prevsubprob\@undefined%
- \global\let\exf@prevsubprobhref\@undefined%
+ \exf@clear@prevsubprob%
% \end{macrocode}
% Set points from explicit input or from |.aux| storage:
% \begin{macrocode}
@@ -5869,8 +6288,7 @@ clean-all: clean
% \end{macrocode}
% Solutions to subproblems must be declared within problem environment:
% \begin{macrocode}
- \global\let\exf@prevsubprob\@undefined%
- \global\let\exf@prevsubprobhref\@undefined%
+ \exf@clear@prevsubprob%
% \end{macrocode}
% End paragraph and environment:
% \begin{macrocode}
@@ -5912,7 +6330,7 @@ clean-all: clean
% \paragraph{Read Problem Environment.}
%
% \macro{exf@scanproblem}
-% Define options for |problem| environment:
+% Define options for scanning |problem| environment:
% \begin{macrocode}
\define@boolkey{exf@scanproblem}[exf@scanproblem@]{disable}[true]{}
% \end{macrocode}
@@ -5937,24 +6355,28 @@ clean-all: clean
% \end{macrocode}
% Determine problem display:
% \begin{macrocode}
- \exf@scanproblem@disablefalse%
+ \global\exf@scanproblem@disablefalse%
\setkeys*{exf@scanproblem}{#1}%
\exf@config@insertproblemselect{#1}%
+ \ifexf@scanproblem@disable\global\exf@scanproblem@disabletrue\fi%
% \end{macrocode}
-% Write separator and |printproblem| environment to buffer:
+% Circumvent problem display:
% \begin{macrocode}
\ifexf@scanproblem@disable%
\def\exf@verbatim@process{\@gobble}%
\else%
+% \end{macrocode}
+% Write separator and |printproblem| environment to buffer:
+% \begin{macrocode}
\ifexf@lineno\exf@addline\exf@probbuf{\exf@linesep}%
\exf@addline\exf@probbuf{\exf@lineno}\fi%
\exf@addline\exf@probbuf%
{\@backslashchar begin{printproblem}{#1}}%
- \def\exf@verbatim@process{\exf@append@buf\exf@probbuf}%
- \fi%
% \end{macrocode}
% Start verbatim processing:
% \begin{macrocode}
+ \def\exf@verbatim@process{\exf@append@buf\exf@probbuf}%
+ \fi%
\exf@verbatim#2}%
% \end{macrocode}
% End verbatim processing; close |printproblem| environment:
@@ -5985,8 +6407,7 @@ clean-all: clean
% \end{macrocode}
% \macro{problem}
-% Define |problem| environment
-% (potentially using custom name)
+% Define |problem| environment (potentially using custom name)
% to choose between direct and buffered version:
% \begin{macrocode}
\newenvironment{\exf@problemname}%
@@ -6112,6 +6533,9 @@ clean-all: clean
% \subsection{Subproblem Environment}
% \label{sec:imp-subproblem}
%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Print Subproblems.}
+%
% \macro{exf@subproblem}
% Define options for |subproblem| environment:
% \begin{macrocode}
@@ -6120,10 +6544,10 @@ clean-all: clean
\define@key{exf@subproblem}{tag}{\def\subproblemtag{#1}}
% \end{macrocode}
-% \macro{subproblem}
-% Define |subproblem| environment (potentially using custom name):
+% \macro{printsubproblem}
+% Define |printsubproblem| environment:
% \begin{macrocode}
-\newenvironment{\exf@subproblemname}[1][]{%
+\newenvironment{printsubproblem}[1]{%
% \end{macrocode}
% Start with new paragraph, set text style, add vspace and step counter:
% \begin{macrocode}
@@ -6145,7 +6569,7 @@ clean-all: clean
\def\subproblemtag{\getexerciseconfig{tagsubproblem}}%
\let\exf@subproblem@points\@undefined%
\let\exf@label\@undefined%
- \setkeys{exf@subproblem,exf@probleminfo}{#1}%
+ \setkeys{exf@subproblem,exf@probleminfo,exf@scansubproblem}{#1}%
% \end{macrocode}
% Process automatic and manual labels:
% \begin{macrocode}
@@ -6272,6 +6696,88 @@ clean-all: clean
\ignorespacesafterend}
% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Read Subproblem Environment.}
+%
+% \macro{exf@scansubproblem}
+% Define options for scanning |subproblem| environment:
+% \begin{macrocode}
+\define@boolkey{exf@scansubproblem}[exf@scansubproblem@]{disable}[true]{}
+% \end{macrocode}
+
+% \macro{exf@subproblem@direct}
+% Define direct output version of |subproblem| environment;
+% pass on to |printsubproblem| environment:
+% \begin{macrocode}
+\newenvironment{exf@subproblem@direct}[1][]%
+ {\printsubproblem{#1}}{\endprintsubproblem\ignorespacesafterend}
+% \end{macrocode}
+
+% \macro{exf@subproblem@scan}
+% \macro{exf@scansubproblem}
+% Define scan version of |subproblem| environment;
+% use |\exf@scanblock| to properly parse optional argument
+% and pass on to |exf@scansubproblem|:
+% \begin{macrocode}
+\newenvironment{exf@subproblem@scan}%
+ {\exf@scanblock{\exf@scansubproblem}}{\endexf@scansubproblem}%
+\newenvironment{exf@scansubproblem}[2]{%
+% \end{macrocode}
+% Determine subproblem display:
+% \begin{macrocode}
+ \global\exf@scansubproblem@disablefalse%
+ \setkeys*{exf@scansubproblem}{#1}%
+ \exf@config@insertsubproblemselect{#1}%
+ \ifexf@scansubproblem@disable\global\exf@scansubproblem@disabletrue\fi%
+% \end{macrocode}
+% Circumvent subproblem display:
+% \begin{macrocode}
+ \exf@clear@subprobbuf%
+ \ifexf@scansubproblem@disable%
+ \global\let\exf@prevsubprob\exf@empty%
+ \def\exf@verbatim@process{\@gobble}%
+ \else%
+% \end{macrocode}
+% Write |printsubproblem| environment to buffer:
+% \begin{macrocode}
+ \exf@addline\exf@subprobbuf%
+ {\@backslashchar begin{printsubproblem}{#1}}%
+% \end{macrocode}
+% Start verbatim processing:
+% \begin{macrocode}
+ \def\exf@verbatim@process{\exf@append@buf\exf@subprobbuf}%
+ \fi%
+ \exf@verbatim#2}%
+% \end{macrocode}
+% End verbatim processing; close |printsubproblem| environment:
+% \begin{macrocode}
+ {\exf@endverbatim%
+ \ifexf@scansubproblem@disable\else%
+ \exf@addline\exf@subprobbuf{\@backslashchar end{printsubproblem}}%
+ \fi%
+% \end{macrocode}
+% Output buffer immediately:
+% \begin{macrocode}
+ \exf@source@buf\exf@subprobbuf%
+% \end{macrocode}
+% Done:
+% \begin{macrocode}
+ \ignorespacesafterend}
+% \end{macrocode}
+
+% \macro{subproblem}
+% Define |subproblem| environment (potentially using custom name)
+% to choose between direct and buffered version:
+% \begin{macrocode}
+\newenvironment{\exf@subproblemname}%
+ {\ifexf@subproblembuf\let\exf@tmp\exf@subproblem@scan%
+ \else\let\exf@tmp\exf@subproblem@direct\fi%
+ \exf@tmp}%
+ {\ifexf@subproblembuf\let\exf@tmp\endexf@subproblem@scan%
+ \else\let\exf@tmp\endexf@subproblem@direct\fi%
+ \exf@tmp}
+% \end{macrocode}
+
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Solution Environment}
% \label{sec:imp-solution}
@@ -6290,6 +6796,7 @@ clean-all: clean
\define@key{exf@solution}{label}{\def\exf@label{#1}}
\define@key{exf@solution}{points}{\exf@scanpoints\exf@solution@points#1++@}
\define@key{exf@solution}{probtitle}{\def\exf@solprobtitle{#1}}
+\define@key{exf@solution}{firstsol}[]{\let\exf@solfirst\exf@empty}
% \end{macrocode}
% \macro{printsolution}
@@ -6322,12 +6829,13 @@ clean-all: clean
\def\exf@in@solution{}%
\def\exf@solprob{}%
\def\exf@solsubprob{}%
+ \let\exf@solfirst\@undefined%
\let\exf@label\@undefined%
\let\exf@solution@points\@undefined%
\let\exf@solution@points@total\@undefined%
\def\exf@solhref{}%
\exf@init@block{\exf@config@skipsolutioninfo}%
- \setkeys{exf@solution,exf@probleminfo}{#1}%
+ \setkeys{exf@solution,exf@probleminfo,exf@scansolution}{#1}%
% \end{macrocode}
% Set solution counter to reflect associated problem:
% \begin{macrocode}
@@ -6373,6 +6881,8 @@ clean-all: clean
\ifdim\exf@tmp=0pt%
\protected@edef\exf@solution@title{%
\exf@composetitle{\exf@solprob}{\exf@solsubprob}}%
+ \ifx\exf@solsubprob\exf@empty\ifdefined\exf@solfirst\else%
+ \let\exf@solution@title\exf@empty\fi\fi%
\ifx\exf@solution@title\exf@empty\else%
\exf@prepend@intro{{%
\exf@config@styletitle\exf@config@styletitlesolution%
@@ -6389,31 +6899,31 @@ clean-all: clean
\settowidth\exf@addmargin{%
\exf@config@styletitle\exf@config@styletitlesolution%
\ifx\exf@solsubprob\exf@empty%
- \exf@config@composeitemsolution{\exf@config@counterproblemmax}%
- {\exf@config@countersubproblemmax}%
- \else%
- \exf@config@composeitemsolutionsub{\exf@config@counterproblemmax}%
- {\exf@config@countersubproblemmax}%
- \fi\exf@config@composeitemsolutionsep}%
+ \let\exf@tmp\exf@config@composeitemsolutionfirst\else%
+ \let\exf@tmp\exf@config@composeitemsolutionfirstsub\fi%
+ \protected@edef\exf@solution@item{\exf@tmp%
+ {\exf@config@counterproblemmax}{\exf@config@countersubproblemmax}}%
+ \ifx\exf@solution@item\exf@empty\else%
+ \exf@solution@item\exf@config@composeitemsolutionsep\fi}%
\fi%
% \end{macrocode}
% Set item label depending on problem or subproblem:
% \begin{macrocode}
- \ifx\exf@solsubprob\exf@empty%
- \protected@edef\exf@solution@item%
- {\exf@config@composeitemsolution{\exf@solprob}{\exf@empty}}%
- \else%
- \protected@edef\exf@solution@item%
- {\exf@config@composeitemsolutionsub{\exf@solprob}{\exf@solsubprob}}%
- \fi%
+ \ifx\exf@solsubprob\exf@empty\ifdefined\exf@solfirst%
+ \let\exf@tmp\exf@config@composeitemsolutionfirst\else%
+ \let\exf@tmp\exf@config@composeitemsolution\fi%
+ \else\ifdefined\exf@solfirst%
+ \let\exf@tmp\exf@config@composeitemsolutionfirstsub\else%
+ \let\exf@tmp\exf@config@composeitemsolutionsub\fi\fi%
+ \protected@edef\exf@solution@item{\exf@tmp{\exf@solprob}{\exf@solsubprob}}%
% \end{macrocode}
% Define item label:
% \begin{macrocode}
- \def\exf@introitem{\makebox[0cm][r]{%
+ \def\exf@introitem{\ifx\exf@solution@item\exf@empty\else\makebox[0cm][r]{%
\exf@config@styletitle\exf@config@styletitlesubproblem%
\ifexf@solutionhref\exf@href{\exf@solhref}{\exf@solution@item}%
\else\exf@solution@item\fi%
- \exf@config@composeitemproblemsep}}%
+ \exf@config@composeitemproblemsep}\fi}%
\fi%
% \end{macrocode}
% Write points into margin if desired;
@@ -6474,15 +6984,15 @@ clean-all: clean
\def\exf@solprobtitle{}%
\let\exf@label\@undefined%
\let\exf@solhref\@undefined%
- \setkeys{exf@solution}{#1}%
+ \setkeys{exf@solution,exf@scansolution}{#1}%
% \end{macrocode}
% Select title (and table of contents entry)
% corresponding to multiple problems vs.\ single problem:
% \begin{macrocode}
- \let\exf@composetitle\exf@config@composetitlesolutionsproblemmulti%
- \exf@ifis\exf@solutionbelow{problem}{\let\exf@composetitle%
+ \let\exf@composesectitle\exf@config@composetitlesolutionsproblemmulti%
+ \exf@ifis\exf@solutionbelow{problem}{\let\exf@composesectitle%
\exf@config@composetitlesolutionsproblemsingle}%
- \exf@ifis\exf@solutionbelow{problem*}{\let\exf@composetitle%
+ \exf@ifis\exf@solutionbelow{problem*}{\let\exf@composesectitle%
\exf@config@composetitlesolutionsproblemsingle}%
\def\exf@solutionstoc{\exf@addcontentsline{\exf@config@toclevelsolution}%
{\exf@config@composetocsolution{\exf@solprob}{\exf@solprobtitle}}}%
@@ -6491,7 +7001,7 @@ clean-all: clean
% \begin{macrocode}
\addvspace{\exf@config@skipsolutionsproblemabove}%
\exf@solutionssection{\exf@config@styletitlesolutionsproblem}%
- {\exf@composetitle{\exf@solprob}{\exf@solprobtitle}}%
+ {\exf@composesectitle{\exf@solprob}{\exf@solprobtitle}}%
{\exf@config@skipsolutionsproblemtitle}%
{\exf@solutionstoc}{\exf@label}{\exf@solhref}%
\endgroup}
@@ -6500,35 +7010,50 @@ clean-all: clean
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Read Solution Environment.}
%
-% \macro{\exf@process@solnewsec}
-% If this is the first solution within a new section,
+% \macro{exf@scansolution}
+% Define options for scanning |solution| environment:
+% \begin{macrocode}
+\define@key{exf@scansolution}{forproblem}[]{\exf@clear@prevsubprob}
+\define@boolkey{exf@scansolution}[exf@scansolution@]{disable}[true]{}
+% \end{macrocode}
+
+% \macro{\exf@clear@prevsubprob}
+% Clear previous subproblem register:
+% \begin{macrocode}
+\newcommand{\exf@clear@prevsubprob}{%
+ \global\let\exf@prevsubprob\@undefined%
+ \global\let\exf@prevsubprobhref\@undefined%
+ \global\let\exf@prevpoints\@undefined%
+ \global\exf@scansubproblem@disablefalse}
+% \end{macrocode}
+
+% \macro{\exf@process@solsec}
+% If this is the first solution within a problem section,
% write section heading to buffer:
% \begin{macrocode}
-\newcommand{\exf@process@solnewsec}{%
- \ifdefined\exf@problem@solnewsec%
- \def\exf@probarg{\ifdefined\exf@prevprob prob={\exf@prevprob}\fi%
- \ifdefined\exf@prevprobtitle,probtitle={\exf@prevprobtitle}\fi%
- \ifdefined\exf@prevprobhref,href={\exf@prevprobhref}\fi%
- \ifdefined\exf@sollabel,label={\exf@sollabel}\fi}%
- \exf@ifis\exf@solutionbelow{here}{\let\exf@probarg\@undefined}%
- \exf@ifis\exf@solutionbelow{subproblem}{\let\exf@probarg\@undefined}%
- \exf@ifis\exf@solutionbelow{subproblem*}{\let\exf@probarg\@undefined}%
- \ifdefined\exf@probarg%
- \ifexf@lineno\exf@addline\exf@solbuf{\exf@linesep}%
- \exf@addline\exf@solbuf{\exf@lineno}\fi%
- \exf@addline\exf@solbuf{\@backslashchar solutionssection{\exf@probarg}}%
- \exf@addline\exf@solbuf{}%
- \fi%
- \global\let\exf@problem@solnewsec\@undefined%
- \fi}%
+\newcommand{\exf@process@solsec}{%
+ \def\exf@probarg{\ifdefined\exf@prevprob prob={\exf@prevprob}\fi%
+ \ifdefined\exf@prevprobtitle,probtitle={\exf@prevprobtitle}\fi%
+ \ifdefined\exf@prevprobhref,href={\exf@prevprobhref}\fi%
+ \ifdefined\exf@sollabel,label={\exf@sollabel}\fi}%
+ \exf@ifis\exf@solutionbelow{here}{\let\exf@probarg\@undefined}%
+ \exf@ifis\exf@solutionbelow{subproblem}{\let\exf@probarg\@undefined}%
+ \exf@ifis\exf@solutionbelow{subproblem*}{\let\exf@probarg\@undefined}%
+ \ifdefined\exf@probarg%
+ \ifexf@lineno\exf@addline\exf@solbuf{\exf@linesep}%
+ \exf@addline\exf@solbuf{\exf@lineno}\fi%
+ \exf@addline\exf@solbuf{\@backslashchar solutionssection{\exf@probarg}}%
+ \exf@addline\exf@solbuf{}%
+ \fi}
% \end{macrocode}
-% \macro{\exf@process@solnewsec}
+% \macro{\exf@generate@solprobarg}
% Declare additional arguments to |printsolution|
% to describe corresponding problem and tags:
% \begin{macrocode}
\newcommand{\exf@generate@solprobarg}{%
\edef\exf@solprobarg{%
+ \ifdefined\exf@problem@solfirst firstsol,\fi%
\ifdefined\exf@prevprob prob={\exf@prevprob},\fi%
\ifdefined\exf@prevsubprob subprob={\exf@prevsubprob},%
\ifdefined\exf@prevsubprobhref href={\exf@prevsubprobhref},\fi%
@@ -6538,13 +7063,7 @@ clean-all: clean
\ifdefined\exf@prevpoints points=%
{\expandafter\exf@formatpoints\exf@prevpoints},\fi%
\ifdefined\sheettag sheettag={\sheettag},\fi%
- \ifdefined\problemtag problemtag={\problemtag},\fi}%
-% \end{macrocode}
-% Clean up:
-% \begin{macrocode}
- \global\let\exf@prevsubprob\@undefined%
- \global\let\exf@prevsubprobhref\@undefined%
- \global\let\exf@prevpoints\@undefined}%
+ \ifdefined\problemtag problemtag={\problemtag},\fi}}
% \end{macrocode}
% \macro{exf@solution@direct}
@@ -6553,14 +7072,15 @@ clean-all: clean
% \begin{macrocode}
\newenvironment{exf@solution@direct}[1][]%
{\showpoints%
- \global\let\exf@problem@solnewsec\@undefined%
\exf@generate@solprobarg%
+ \global\let\exf@problem@solfirst\@undefined%
+ \exf@clear@prevsubprob%
\exf@showsolutionsin%
\let\exf@composetitle\exf@config@composetitlesolutionsingle%
\exf@exptwo\printsolution{\exf@solprobarg#1}}%
{\endprintsolution%
\exf@showsolutionsout%
- \ignorespacesafterend}%
+ \ignorespacesafterend}
% \end{macrocode}
% \macro{exf@solution@scan}
@@ -6573,32 +7093,54 @@ clean-all: clean
{\exf@scanblock{\exf@scansolution}}{\endexf@scansolution}%
\newenvironment{exf@scansolution}[2]{%
% \end{macrocode}
+% Determine solution association and display:
+% \begin{macrocode}
+ \exf@scansolution@disablefalse%
+ \setkeys*{exf@scansolution}{#1}%
+ \ifdefined\exf@prevsubprob%
+ \ifexf@scansubproblem@disable\exf@scansolution@disabletrue\fi%
+ \else%
+ \ifexf@scanproblem@disable\exf@scansolution@disabletrue\fi%
+ \fi%
+% \end{macrocode}
+% Circumvent solution display:
+% \begin{macrocode}
+ \ifexf@scansolution@disable%
+ \exf@clear@prevsubprob%
+ \def\exf@verbatim@process{\@gobble}%
+ \else%
+% \end{macrocode}
% If solution is to be displayed immediately,
% make sure to display points first;
% insert solution section heading in buffer;
% compose additional arguments to |printsolution|:
% \begin{macrocode}
- \exf@ifis\exf@solutionbelow{here}{\showpoints}%
- \exf@process@solnewsec%
- \exf@generate@solprobarg%
+ \exf@ifis\exf@solutionbelow{here}{\showpoints}%
+ \exf@generate@solprobarg%
+ \ifdefined\exf@problem@solfirst\exf@process@solsec\fi%
+ \global\let\exf@problem@solfirst\@undefined%
+ \exf@clear@prevsubprob%
% \end{macrocode}
% Write separator and |printsolution| environment to buffer:
% \begin{macrocode}
- \ifexf@lineno\exf@addline\exf@solbuf{\exf@linesep}%
- \exf@addline\exf@solbuf{\exf@lineno}\fi%
- \exf@addline\exf@solbuf%
- {\@backslashchar begin{printsolution}{\exf@solprobarg#1}}%
+ \ifexf@lineno\exf@addline\exf@solbuf{\exf@linesep}%
+ \exf@addline\exf@solbuf{\exf@lineno}\fi%
+ \exf@addline\exf@solbuf%
+ {\@backslashchar begin{printsolution}{\exf@solprobarg#1}}%
% \end{macrocode}
% Start verbatim processing:
% \begin{macrocode}
- \def\exf@verbatim@process{\exf@append@buf\exf@solbuf}%
+ \def\exf@verbatim@process{\exf@append@buf\exf@solbuf}%
+ \fi%
\exf@verbatim#2}%
% \end{macrocode}
% End verbatim processing; close |printsolution| environment:
% \begin{macrocode}
{\exf@endverbatim%
- \exf@addline\exf@solbuf{\@backslashchar end{printsolution}}%
- \global\exf@solbuf@cleanfalse%
+ \ifexf@scansolution@disable\else%
+ \exf@addline\exf@solbuf{\@backslashchar end{printsolution}}%
+ \global\exf@solbuf@cleanfalse%
+ \fi%
% \end{macrocode}
% Write buffer to file if output file open:
% \begin{macrocode}
@@ -6613,8 +7155,8 @@ clean-all: clean
% \end{macrocode}
% Display solution immediately in various cases:
% \begin{macrocode}
- \exf@ifis\exf@solutionbelow{here}{\exf@showsolutions%
- {\exf@config@composetitlesolutionsingle}{}}%
+ \exf@ifis\exf@solutionbelow{here}{%
+ \exf@showsolutions{\exf@config@composetitlesolutionsingle}{}}%
\ifdefined\exf@in@subproblem\else%
\exf@ifis\exf@solutionbelow{subproblem}{%
\exf@showsolutions{\exf@config@composetitlesolutionsingle}{}}%
@@ -6632,8 +7174,7 @@ clean-all: clean
% \end{macrocode}
% \macro{solution}
-% Define |solution| environment
-% (potentially using custom name)
+% Define |solution| environment (potentially using custom name)
% to choose between direct and buffered version:
% \begin{macrocode}
\newenvironment{\exf@solutionname}%
@@ -6780,7 +7321,7 @@ clean-all: clean
% \label{sec:imp-metastr}
%
% This package transfers some functionality
-% to the package \textsf{metastr} when loaded
+% to the package \ctanpkg{metastr} when loaded
% previously (preferably with package option |course|)
% by the package option |metastr|.
% The following changes apply:
@@ -6789,26 +7330,26 @@ clean-all: clean
% The terms specified by the configuration options |term...|,
% see \secref{sec:imp-config},
% are transferred to the corresponding term registers
-% |\metaterm{...}| in \textsf{metastr}.
+% |\metaterm{...}| in \ctanpkg{metastr}.
% This can facilitate internationalisation,
% and suitable words for English, German, French and Spanish are provided.
% \item
% Metadata as described in \secref{sec:metadata}
% should be filled via |\metaset| rather than |\exercisedata|.
-% The present package will read it from the \textsf{metastr} registers.
+% The present package will read it from the \ctanpkg{metastr} registers.
% \item
-% Basic PDF metadata is written automatically or manually
+% Basic pdf metadata is written automatically or manually
% as described in \secref{sec:metadata}.
% This is done via |\metawritepdfinfo|,
% consequently, automatic writing of these basic metadata
-% is disabled in \textsf{metastr}.
+% is disabled in \ctanpkg{metastr}.
% \item
% Sheet-specific metadata (package option |pdfdata=sheet|)
-% is handled via the \textsf{metastr} registers |sheettitle| and |sheetdata|
+% is handled via the \ctanpkg{metastr} registers |sheettitle| and |sheetdata|
% rather than |composemetasheet|.
% \end{itemize}
%
-% Apply modifications only when package \textsf{metastr} is loaded:
+% Apply modifications only when package \ctanpkg{metastr} is loaded:
% \begin{macrocode}
\ifdefined\metaset
% \end{macrocode}
@@ -6816,7 +7357,7 @@ clean-all: clean
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Transfer Metadata.}
%
-% Import basic data from \textsf{metastr}:
+% Import basic data from \ctanpkg{metastr}:
% \begin{macrocode}
\exercisedata{author={\metapick[]{author}}}
\exercisedata{title={\metapick[]{title}}}
@@ -6824,7 +7365,7 @@ clean-all: clean
\exercisedata{keyword={\metapick[]{keyword}}}
\exercisedata{date={\metapick[]{date}}}
% \end{macrocode}
-% Import course data from \textsf{metastr}:
+% Import course data from \ctanpkg{metastr}:
% \begin{macrocode}
\ifdefined\mstr@def@course
\exercisedata{course={\metapick[]{course}}}
@@ -6847,7 +7388,7 @@ clean-all: clean
% \end{macrocode}
% \macro{\exf@writemetadata}
-% Write PDF metadata via \textsf{metastr} package,
+% Write pdf metadata via \ctanpkg{metastr} package,
% let \textsf{exframe} initiate process (especially for sheet):
% \begin{macrocode}
\metaunset[info]{writepdf}
@@ -6867,8 +7408,8 @@ clean-all: clean
\metaset{author}{\exerciseifempty{\getsheetdata{author}}%
{\metapick[#1]{instructor}}{\metapick[#1]{sheetauthor}}}
\metaset{subtitle}{%
- \metaif[use]{sheettitle}
- {\metapick[#1]{sheettitle}}
+ \metaif[use]{sheettitle}%
+ {\metapick[#1]{sheettitle}}%
{\metapick[#1]{material}}}
% \end{macrocode}
@@ -6876,7 +7417,7 @@ clean-all: clean
% \paragraph{Terms.}
%
% \macro{term...}
-% Transfer term definitions to \textsf{metastr}:
+% Transfer term definitions to \ctanpkg{metastr}:
% \begin{macrocode}
\exerciseconfig{termsheet}{\metaterm{sheet}}
\exerciseconfig{termsheets}{\metaterm{sheets}}
@@ -6947,7 +7488,7 @@ clean-all: clean
\fi
% \end{macrocode}
-% Close \textsf{metastr} conditional:
+% Close \ctanpkg{metastr} conditional:
% \begin{macrocode}
\fi
% \end{macrocode}
diff --git a/macros/latex/contrib/exframe/exframe.ins b/macros/latex/contrib/exframe/exframe.ins
index 3e3845b443..115b87b51b 100644
--- a/macros/latex/contrib/exframe/exframe.ins
+++ b/macros/latex/contrib/exframe/exframe.ins
@@ -4,15 +4,15 @@
\keepsilent
\preamble
-Copyright (C) 2011-2020 Niklas Beisert
+Copyright (C) 2011-2024 Niklas Beisert
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
\endpreamble
diff --git a/macros/latex/contrib/exframe/exframe.pdf b/macros/latex/contrib/exframe/exframe.pdf
index fe95c96fec..bf210453f1 100644
--- a/macros/latex/contrib/exframe/exframe.pdf
+++ b/macros/latex/contrib/exframe/exframe.pdf
Binary files differ
diff --git a/macros/latex/contrib/ezedits/README.md b/macros/latex/contrib/ezedits/README.md
new file mode 100644
index 0000000000..49624cd593
--- /dev/null
+++ b/macros/latex/contrib/ezedits/README.md
@@ -0,0 +1,47 @@
+# Package `ezedits` by Joey Smiga
+
+Version 2024-09-12 v1.0
+
+Maintained by Joseph "Joey" A. Smiga \<joseph.smiga@rochester.edu\>
+
+`ezedits` is a package built for collaboratively editing LaTeX documents and tracking changes. Through highly customizable commands, the user can choose how their and their collaborators modifications appear in the document. Additional tools are provided to help keep track of where the edits are made within the pdf.
+
+Originally developed ca. 2018, this has been refined over the years.
+
+## Copyright (C)
+&copy;2024 Joseph A. Smiga
+
+## Usage tips
+
+All edits will raise a warning, making it easier to find where changes occured and clean up the document.
+
+### Package options
+
+- `arrows` add arrows $\Longleftarrow$ pointing to edits in margins (in captions, a pair of arrows are added, instead; $\Longrightarrow$ Like this $\Longleftarrow$). These arrows are styled based on the edit.
+- `accept` accept all edits (arrows still appear if `arrows` option is used).
+- `pdfcomment` write edits as pdf annotations (arrows still appear if `arrows` option is used).
+- `nosout` do not strikeout delete text (by default). If this option is set, the `ulem` package is not used.
+
+### Commands
+
+General comments can be added with `\draftnote{...}`. These comments will appear in-text as `[...]` with some default styling. When also using the `xcolor` package, the notes will be colored red. The command `\setnotestyle{<style>}` can be used to customize the note style.
+
+`\defineEdit{ABC}{<styleA>}{<styleB>}` will generate a set of commands with the prefix `ABC` for editing where `<styleA>` is used for omitted text and `<styleB>` is used for added text. The following commands are generated:
+- `\ABCEdit{del}{ins}` Used to replace `del` with `ins`.
+- `\ABCIns{ins}` Used to insert `ins`.
+- `\ABCDel{del}` Used to delete `del`.
+
+Running the above command for each collaborator (especially with different style arguments) can make it easy to keep track of who made what comment.
+
+`\makeeditreport` generates a `tabular` environment that summarizes where/how many edits were made.
+
+## Possible issues
+
+- Exact page numbers for `\makeeditreport` may be slightly off due to how LaTeX updates `\thepage`.
+- Problems can arise when editing across several paragraphs. It is recommended to use new commands between paragraphs.
+- `pdfcomment` option can be a bit rough at times, though it generally works.
+
+
+## License
+LaTeX Project Public License, version 1.3c or later.
+
diff --git a/macros/latex/contrib/ezedits/ezedits.sty b/macros/latex/contrib/ezedits/ezedits.sty
new file mode 100644
index 0000000000..94a7b3bd5c
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits.sty
@@ -0,0 +1,221 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ezedits.sty
+%% Copyright 2024 J. A. Smiga
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is J. A. Smiga.
+%
+% This work consists of the file ezedits.sty
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% This package was written by Joseph A. Smiga <joseph.smiga@rochester.edu>
+%% Originally developed ca. 2018, this has been refined over the years.
+%%
+%% Some useful commands: (not up to date, see documentation)
+%% Included are a set of commands to generate comments for a LaTeX file.
+%%
+%% This package requires the following standard packages:
+%% ulem: for \sout
+%% xcolor: for coloring text.
+%% pdfcomment: if pdfcomment option is used
+%%
+%% Options are:
+%% arrows: add arrows pointing to edits in margins (in captions, a pair of arrows are added, instead).
+%% accept: accept all edits (arrows still appear).
+%% pdfcomments: write edits as pdf annotations (arrows still appear).
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ezedits}[2024/09/12]
+
+% \RequirePackage{xcolor}
+
+\newif\if@accept\@acceptfalse % accept all comments (does not suppress package warnings)
+\newif\if@pdfcomm\@pdfcommfalse % write pdf comments
+\newif\if@showarrows\@showarrowsfalse
+\newif\if@importulem\@importulemtrue
+
+\DeclareOption{accept}{
+ \@accepttrue
+}
+\DeclareOption{pdfcomment}{ % add pdf comments
+ \@pdfcommtrue
+ \AtEndOfPackage{\RequirePackage{pdfcomment}}
+}
+\DeclareOption{arrows}{ % point to edits with arrows in the margin
+ \@showarrowstrue
+ \AtEndOfPackage{\RequirePackage{marginnote}}
+}
+\DeclareOption{nosout}{ % do not crossout deleted text
+ \@importulemfalse
+}
+
+\ProcessOptions\relax
+
+\if@importulem
+ \RequirePackage[normalem]{ulem}% import ulem (for sout)
+ % update \sout to work better with \cite
+ \let\old@cite\cite% remember original
+ \def\new@cite#1{\mbox{\old@cite{#1}}}% put cite in mbox
+ \def\new@sout#1{\let\cite\new@cite\sout{#1}\let\cite\old@cite}% redefine sout
+\else
+ \def\new@sout{}% do nothing
+\fi
+
+%% edit record
+\newcounter{ez@editcount}
+\newcounter{ez@totalcount}
+\gdef\ez@editrecord{}
+\newcommand{\ez@addeditpage}{%
+ \ifx\ez@lastpage\undefined% first edit
+ \xdef\ez@lastpage{\thepage}% initialize "last page" variable
+ % counter starts at 0, so it does not need to be updated
+ \else% 2nd+ edit
+ \if\ez@lastpage\thepage% same page as last edit
+ \relax% handled after if
+ \else% new page
+ % add record
+ \xdef\ez@editrecord{\ez@editrecord \ez@lastpage & \arabic{ez@editcount} \\}%
+ % reset counter/page number
+ \setcounter{ez@editcount}{0}%
+ \xdef\ez@lastpage{\thepage}%
+ \fi%
+ \fi%
+ % Note stepping needs to be "protected" (counters do not always like being changed, since this can mess up, e.g., TOC)
+ \protect\stepcounter{ez@editcount}% update counter
+ \protect\stepcounter{ez@totalcount}%
+}
+%TODO there is an issue with \thepage not always being accurate
+% Possible solution: use \label{} (with generated unique labels) and \pageref{} instead of \thepage.
+% -> This solution may cause out-of-order problems with floating images.
+
+\newcommand{\makeeditreport}{%
+ \begin{tabular}{l|r}
+ %\hline\hline
+ Page & \# edits/notes \\
+ \hline
+ \ifx\ez@lastpage\undefined
+ \relax% no edits
+ \else%
+ \ez@editrecord
+ \ez@lastpage & \arabic{ez@editcount}% current state
+ \fi \\
+ \hline
+ Total & \arabic{ez@totalcount}
+ %\hline\hline
+ \end{tabular}
+}
+
+% Style of \draftnote (may be a better way to write this)
+\newcommand{\@draftstyle}[1]{
+ {\ttfamily%
+ \ifx\textcolor\undefined%
+ #1%
+ \else%
+ \textcolor{red}{#1}%
+ \fi}%
+}
+% let user change the style
+\newcommand{\setnotestyle}[1]{\let\@draftstyle#1}
+
+%% Editing commands
+\newcommand{\draftnote}[1]{%
+ \PackageWarning{ezedits}{Unresolved note: #1}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{\@draftstyle{$\Longleftarrow$}}}%
+ {\@draftstyle{$\Longrightarrow$}}%
+ \fi%
+ \if@accept{}\relax\else%
+ \if@pdfcomm%
+ \pdfmargincomment{#1}%
+ \else%
+ \@draftstyle{[#1]}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{\@draftstyle{$\Longleftarrow$}}%
+ \fi%
+}
+
+\newcommand{\defineEdit}[3]{%
+ % "\###Edit" for removing and adding text
+ \expandafter\newcommand\csname #1Edit\endcsname[2]{%
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" ---> "##2"}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ ##2%
+ \else%
+ \if@pdfcomm%
+ \pdfmarkupcomment[author=#1,markup=StrikeOut]{##1{$_\wedge$}}{##2}%
+ \else%
+ {#2{\new@sout{##1}}}{#3{##2}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+ % "\###Ins" for adding text
+ \expandafter\newcommand\csname #1Ins\endcsname[1]{%
+ \ez@addeditpage{}% update record
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" inserted.}%
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ ##1%
+ \else%
+ \if@pdfcomm%
+ % \pdfcomment[author=#1,icon=Insert]{##1}%
+ \pdfmarkupcomment[author=#1,markup=Underline]{$_\wedge$}{##1}%
+ \else%
+ {#3{##1}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+ % "\###Del" for removing text
+ \expandafter\newcommand\csname #1Del\endcsname[1]{%
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" removed.}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ {}%
+ \else%
+ \if@pdfcomm%
+ \pdfmarkupcomment[author=#1,markup=StrikeOut,color=red]{##1}{}%
+ \else%
+ {#2{\new@sout{##1}}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/ezedits/ezedits_docs.pdf b/macros/latex/contrib/ezedits/ezedits_docs.pdf
new file mode 100644
index 0000000000..d4e759bfd7
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits_docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/ezedits/ezedits_docs.tex b/macros/latex/contrib/ezedits/ezedits_docs.tex
new file mode 100644
index 0000000000..f7852ab880
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits_docs.tex
@@ -0,0 +1,171 @@
+\documentclass{article}
+
+\usepackage[arrows]{ezedits}
+
+\usepackage{xcolor}
+\usepackage{hyperref}
+
+\newcommand{\macroexample}[1]{\begin{center}
+ \fcolorbox{black}{black!6}{\parbox{.9\linewidth}{\ttfamily #1}}
+\end{center}}
+
+
+\title{\texttt{ezedits.sty} documentation}
+\author{Joseph A. Smiga $\langle$\href{mailto:joseph.smiga@rochester.edu?subject=[ezedits]\%20}{joseph.smiga@rochester.edu}$\rangle$}
+\date{Package: September 12, 2024 (v1.0)\\
+Documentation: September 12, 2024
+}
+
+\defineEdit{ABC}{\color{red}}{\color{blue}}
+\defineEdit{XYZ}{\color{gray}\textit}{\textbf}
+
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+The \texttt{ezedits} package is designed to make it easier to edit \LaTeX{} documents with multiple people, while keeping track of what changed.
+
+Changes signified with this package with raise warnings. This makes it easier to keep track of changes and keep the document clean.
+
+Note that, in this document, the package is included as:
+\macroexample{\textbackslash{}usepackage[arrows]\{ezedits\}}
+with the \texttt{xcolor} package included.
+
+\section{Dependencies}
+The following packages may be required:
+\begin{itemize}
+ \item \href{https://ctan.org/pkg/ulem}{\texttt{ulem}}: used for strikethrough (\texttt{\textbackslash{sout}}). This is required by default, unless the \hyperlink{opt_nosout}{\texttt{nosout}} option is used.
+
+ \item \href{https://ctan.org/pkg/xcolor}{\texttt{xcolor}}: used for coloring text. If included (i.e., \texttt{\textbackslash{textcolor}} is defined), \hyperlink{cmd_draftnote}{\texttt{\textbackslash{draftnote}}} is colored red by default.
+
+ \item \href{https://ctan.org/pkg/pdfcomment}{\texttt{pdfcomment}}: needed when \hyperlink{opt_pdfcomment}{\texttt{pdfcomment}} option is used.
+\end{itemize}
+
+
+\section{Package options}
+The following options can be used with \verb+\usepackage[...]{ezedits}+:
+\begin{itemize}
+ \item \hypertarget{opt_arrows}{\texttt{arrows}} add arrows ``$\Longleftarrow$'' pointing to edits in margins (in captions, a pair of arrows are added, instead; $\Longrightarrow$Like this$\Longleftarrow$). These arrows are styled based on the edit.
+
+ \item \hypertarget{opt_accept}{\texttt{accept}} accept all edits (arrows still appear if \texttt{arrows} option is used).
+
+ \item \hypertarget{opt_pdfcomment}{\texttt{pdfcomment}} write edits as pdf annotations (arrows still appear if \texttt{arrows} option is used).
+
+ \item \hypertarget{opt_nosout}{\texttt{nosout}} do not strikeout delete text (by default). If this option is set, the \texttt{ulem} package is not required.
+\end{itemize}
+
+
+\section{Commands}
+
+\noindent\hypertarget{cmd_draftnote}{\texttt{\textbackslash{draftnote}\{...\}}}
+
+This will generate a note in the text. Text is placed in square brackets and stylized to make it distinct from the rest of the text.
+
+\draftnote{Here is an example note}
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_defineEdit}{\texttt{\textbackslash{defineEdit}\{ABC\}\{$\langle$styleA$\rangle$\}\{$\langle$styleB$\rangle$\}}}
+
+This will generate a set of commands with the prefix \texttt{ABC} for editing where \texttt{$\langle$styleA$\rangle$} is used for omitted text and \texttt{$\langle$styleB$\rangle$} is used for added text.
+
+The following commands are generated:
+\begin{itemize}
+ \item \verb+\ABCEdit{del}{ins}+ Used to replace \verb+del+ with \verb+ins+.
+
+ For example: \ABCEdit{old}{new}.
+
+ \item \verb+\ABCIns{ins}+ Used to insert \verb+ins+.
+
+ For example: \ABCIns{new}.
+
+ \item \verb+\ABCDel{del}+ Used to delete \verb+del+.
+
+ For example: \ABCDel{old}.
+\end{itemize}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_setnotestyle}{\texttt{\textbackslash{setnotestyle}}\{$\langle$style$\rangle$\}}
+
+Redefine how \hyperlink{cmd_draftnote}{\texttt{\textbackslash{draftnote}}} appears. Here, $\langle$style$\rangle$ is a macro that takes one argument and returns a styled version of that text.
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}}
+
+Creates a summary of which page edits appear on (at the point that the command is called). The output is a \texttt{tabular} environment.
+
+
+\section{Examples}
+Here, we use the following command to define the edit commands:
+
+\macroexample{\textbackslash{}defineEdit\{ABC\}\{\textbackslash{}color\{red\}\}\{\textbackslash{}color\{blue\}\}}
+
+Here, the first argument \verb+{ABC}+ is the prefix for the edit commands. The second argument \verb+{\color{red}}+ describes how to style deleted text (the text is always crossed-out). Finally, the third argument \verb+{\color{blue}}+ describes what to do with added text. Note that, if the \hyperlink{opt_arrows}{\texttt{arrows}} option is used, it will be styled according to the latter argument.
+
+A simple example of editing a sentence:
+\macroexample{This \textbackslash{}ABCIns\{sentence\} contains some \textbackslash{}ABCDel\{major\} errors, but that is \textbackslash{}ABCEdit\{ok\}\{not a big deal\}. \textbackslash{}drafNote\{Remember to clean up the document\}}
+
+\begin{center}
+ \fbox{\parbox{.9\linewidth}{This \ABCIns{sentence} contains some \ABCDel{major} errors, but that is \ABCEdit{ok}{not a big deal}. \draftnote{Remember to clean up the document}}}
+\end{center}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+The styling options are fairly flexible. For example, one can define their own macro \verb+\style{...}+ that takes one argument and stylizes it.
+For example, an alternative styling:
+\macroexample{\textbackslash{}defineEdit\{XYZ\}\{\textbackslash{}color\{gray\}\textbackslash{}textit\}\}\{\textbackslash{}textbf\}}
+So deleted text \XYZDel{will look like this} while added text \XYZIns{will look like this}.
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+One can also include edits in (floating) figures. However, if \hyperlink{opt_arrows}{\texttt{arrows}} package option is used, the arrows will appear around the edit, instead of in the margin.
+\begin{figure}[h]
+ \centering
+ {\rule{1cm}{1cm}}
+ \caption{This is just a \ABCIns{black} box.}
+ \label{fig:blackbox}
+\end{figure}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+After making edits, one can generate a summary of edits using \verb+\makeeditreport+ (only includes edits/notes from before this command is called):
+
+\macroexample{
+\textbackslash{}begin\{table\}[h]\par
+~~~~\textbackslash{}centering\par
+~~~~\textbackslash{}makeeditreport\par
+\textbackslash{}end\{table\}
+}
+
+\begin{table}[h]
+ \centering
+ \makeeditreport
+\end{table}
+
+Note that warnings will also be raised for each edit/note at their location.
+
+\section{Possible issues}
+There are times where the page number used in \hyperlink{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}} may not be exactly correct. This has to do with how \LaTeX{} updates \verb+\thepage+. Namely, it tends to wait until new paragraphs. Also, floating environments can be pushed to a different page.
+
+There are certain cases in which the ``strikeout'' styling does not play nicely. For example, there may be issues when crossing-out citations (c.f., \href{https://tex.stackexchange.com/q/98222}{this Stack Exchange}). To resolve this, \texttt{ezedits} modifies the \verb+\sout+ command to put \verb+\cite{...}+ within an \verb+\mbox+. This results in the minor inconvenience of not letting citations cross multiple lines.
+
+Also, issues can arise when command covers many paragraphs --- the simple resolution to this would be to repeat the command per paragraph.
+
+
+\section{Acknowledgements}
+JAS would like to thank Abhay Hegde for suggesting the \hyperlink{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}} macro.
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/fmtcount/CHANGES b/macros/latex/contrib/fmtcount/CHANGES
index ce54ab42c8..92cf5a2cdf 100644
--- a/macros/latex/contrib/fmtcount/CHANGES
+++ b/macros/latex/contrib/fmtcount/CHANGES
@@ -1,5 +1,19 @@
fmtcount package versions:
+Version 3.09
+
+* Remove redundant \"u occurences in Portuguese
+
+* Fix \andname conjunction for Portuguese
+
+Version 3.08
+
+* Add Dutch language support
+
+* Update special characters for German and Spanish
+
+* Fix test suite
+
Version 3.07:
* Make french definition robust against cleveref 0.21.4 dirty handling
diff --git a/macros/latex/contrib/fmtcount/README b/macros/latex/contrib/fmtcount/README
index 8a4fa7e918..ab03fbfec7 100644
--- a/macros/latex/contrib/fmtcount/README
+++ b/macros/latex/contrib/fmtcount/README
@@ -1,11 +1,6 @@
-LaTeX Package : fmtcount v3.07
+LaTeX Package : fmtcount v3.09
-
-(c) Copyright 2000-2013 Nicola LC Talbot
-(c) Copyright 2013-2020 Nicola LC Talbot and Vincent Bela\"iche
-
-
-Last Modified : 2020-02-24
+Last Modified : 2024-10-18
Author : Nicola Talbot and Vincent Belaïche
diff --git a/macros/latex/contrib/fmtcount/fmtcount.dtx b/macros/latex/contrib/fmtcount/fmtcount.dtx
index 0525133f83..d4037a0294 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.dtx
+++ b/macros/latex/contrib/fmtcount/fmtcount.dtx
@@ -1,11 +1,11 @@
%\iffalse
% fmtcount.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -src "(.+)\.(sty|def)$=>\1.\2"
% -doc "fmtcount-manual.tex"
-% -author "Nicola Talbot and Vincent Belache"
+% -src "(.+)\.(sty|def)$=>\1.\2"
+% -author "Nicola Talbot and Vincent Belaïche"
% fmtcount
-% Created on 2020/2/24 20:03
+% Created on 2024/10/18 15:41
%\fi
%\iffalse
%<*package>
@@ -28,7 +28,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2020 Nicola Talbot and Vincent Belache, all rights reserved.
+% Copyright (C) 2024 Nicola Talbot and Vincent Belaïche, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -77,7 +77,7 @@
pdftitle={fmtcount.sty: Displaying the Values of LaTeX Counters},
pdfkeywords={LaTeX,counter}]{hyperref}
-\CheckSum{10315}
+\CheckSum{10802}
\doxitem{Option}{option}{options}
@@ -104,7 +104,7 @@
% \url{www.dickimaw-books.com}
% \and
% Vincent Bela\"iche}
-% \date{2020-02-24 (version 3.07)\relax
+% \date{2024-10-18 (version 3.09)\relax
%}
% \maketitle
% \tableofcontents
@@ -1184,6 +1184,414 @@
%\fi
%\iffalse
% \begin{macrocode}
+%<*fc-dutch.def>
+% \end{macrocode}
+%\fi
+% \subsubsection{fc-dutch.def}
+% Dutch definitions, initially added by Erik Nijenhuis.
+% \begin{macrocode}
+\ProvidesFCLanguage{dutch}[2024/01/27]%
+% \end{macrocode}
+% Define macro that converts a number or count register (first
+% argument) to an ordinal, and stores the result in the
+% second argument, which should be a control sequence.
+% \begin{macrocode}
+\newcommand{\@ordinalMdutch}[2]{\edef#2{\number#1\relax.}}%
+\global\let\@ordinalMdutch\@ordinalMdutch
+% \end{macrocode}
+% Like English, there is no gender difference in Dutch,
+% so make feminine and neuter the same as the masculine.
+% \begin{macrocode}
+\global\let\@ordinalFdutch\@ordinalMdutch
+\global\let\@ordinalNdutch\@ordinalMdutch
+% \end{macrocode}
+% Define the macro that prints the value of a \TeX\ count register
+% as text. To make it easier, break it up into units, teens and
+% tens. First, the units: the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\newcommand*\@@unitstringdutch[1]{%
+ \ifcase#1%
+ nul%
+ \or een% één and \'e\'en not working atm
+ \or twee%
+ \or drie%
+ \or vier%
+ \or vijf%
+ \or zes%
+ \or zeven%
+ \or acht%
+ \or negen%
+ \fi
+}%
+\global\let\@@unitstringdutch\@@unitstringdutch
+% \end{macrocode}
+% Next the tens, again the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\global\let\@@unitstringdutch\@@unitstringdutch
+\newcommand*\@@tenstringdutch[1]{%
+ \ifcase#1%
+ \or tien%
+ \or twintig%
+ \or dertig%
+ \or veertig%
+ \or vijftig%
+ \or zestig%
+ \or zeventig%
+ \or tachtig%
+ \or negentig%
+ \or honderd%
+ \fi
+}%
+\global\let\@@tenstringdutch\@@tenstringdutch
+% \end{macrocode}
+% Finally the teens, again the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\newcommand*\@@teenstringdutch[1]{%
+ \ifcase#1%
+ tien%
+ \or elf%
+ \or twaalf%
+ \or dertien%
+ \or veertien%
+ \or vijftien%
+ \or zestien%
+ \or zeventien%
+ \or achttien%
+ \or negentien%
+ \fi
+}%
+\global\let\@@teenstringdutch\@@teenstringdutch
+% \end{macrocode}
+% Hunderd and thousand:
+% \begin{macrocode}
+\providecommand*{\honderd}{honderd}%
+\providecommand*{\duizend}{duizend}%
+\global\let\honderd\honderd
+\global\let\duizend\duizend
+% \end{macrocode}
+% The numberstring implementation:
+% \begin{macrocode}
+\newcommand*\@@numberstringdutch[2]{%
+ \ifnum#1>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+ \else
+ \ifnum#1<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+ \fi
+ \def#2{}%
+ \@strctr=#1\relax \divide\@strctr by 1000\relax
+ \ifnum\@strctr>1\relax
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \appto#2{duizend}%
+ \else
+ \ifnum\@strctr=1\relax
+ \eappto#2{\duizend}%
+ \fi
+ \fi
+ \@strctr=#1\relax
+ \@FCmodulo{\@strctr}{1000}%
+ \divide\@strctr by 100\relax
+ \ifnum\@strctr>1\relax
+ \eappto#2{\@unitstring{\@strctr}honderd}%
+ \else
+ \ifnum\@strctr=1\relax
+ \ifnum#1>1000\relax
+ \appto#2{honderd}%
+ \else
+ \eappto#2{\honderd}%
+ \fi
+ \fi
+ \fi
+ \@strctr=#1\relax
+ \@FCmodulo{\@strctr}{100}%
+ \ifnum#1=0\relax
+ \def#2{null}%
+ \else
+ \ifnum\@strctr=1\relax
+ \appto#2{een}% één and \'e\'en not working atm
+ \else
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \fi
+ \fi
+}%
+\global\let\@@numberstringdutch\@@numberstringdutch
+% \end{macrocode}
+% All lower case version, the second argument must be a control
+% sequence.
+% \begin{macrocode}
+\newcommand*{\@numberstringMdutch}[2]{%
+ \let\@unitstring=\@@unitstringdutch%
+ \let\@teenstring=\@@teenstringdutch%
+ \let\@tenstring=\@@tenstringdutch%
+ \def\@hundred{honderd}\def\@thousand{duizend}%
+ \@@numberstringdutch{#1}{#2}%
+}%
+\global\let\@numberstringMdutch\@numberstringMdutch
+% \end{macrocode}
+% There is no gender in Dutch, so make feminine and neuter the
+% same
+% as the masculine.
+% \begin{macrocode}
+\global\let\@numberstringFdutch=\@numberstringMdutch
+\global\let\@numberstringNdutch=\@numberstringMdutch
+% \end{macrocode}
+% This version makes the first letter of each word an uppercase
+% character (except ``and''). The second argument must be a control
+% sequence.
+% \begin{macrocode}
+\newcommand*{\@NumberstringMdutch}[2]{%
+ \@numberstringMdutch{#1}{\@@num@str}%
+ \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
+}%
+\global\let\@NumberstringMdutch\@NumberstringMdutch
+% \end{macrocode}
+% There is no gender in Dutch, so make feminine and neuter the
+% same
+% as the masculine.
+% \begin{macrocode}
+\global\let\@NumberstringFdutch=\@NumberstringMdutch
+\global\let\@NumberstringNdutch=\@NumberstringMdutch
+% \end{macrocode}
+% Define a macro that produces an ordinal as a string. Again, break
+% it up into units, teens and tens. First the units:
+% \begin{macrocode}
+\newcommand*\@@unitthstringdutch[1]{%
+ \ifcase#1%
+ nulde%
+ \or eerste% éérste and \'e\'erste not working atm
+ \or tweede%
+ \or derde%
+ \or vierde%
+ \or vijfde%
+ \or zesde%
+ \or zevende%
+ \or achtste%
+ \or negende%
+ \fi
+}%
+\global\let\@@unitthstringdutch\@@unitthstringdutch
+% \end{macrocode}
+% Next the tens:
+% \begin{macrocode}
+\newcommand*\@@tenthstringdutch[1]{%
+ \ifcase#1%
+ \or tiende%
+ \or twintigste%
+ \or dertigste%
+ \or veertigste%
+ \or vijftigste%
+ \or zestigste%
+ \or zeventigste%
+ \or tachtigste%
+ \or negentigste%
+ \fi
+}%
+\global\let\@@tenthstringdutch\@@tenthstringdutch
+% \end{macrocode}
+% The teens:
+% \begin{macrocode}
+\newcommand*\@@teenthstringdutch[1]{%
+ \ifcase#1%
+ tiende%
+ \or elfde%
+ \or twaalfde%
+ \or dertiende%
+ \or veertiende%
+ \or vijftiende%
+ \or zestiende%
+ \or zeventiende%
+ \or achttiende%
+ \or negentiende%
+ \fi
+}%
+\global\let\@@teenthstringdutch\@@teenthstringdutch
+% \end{macrocode}
+% The ordinalstring implementation:
+% \begin{macrocode}
+\newcommand*\@@ordinalstringdutch[2]{%
+ \@orgargctr=#1\relax
+ \ifnum\@orgargctr>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+ \else
+ \ifnum\@orgargctr<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+ \fi
+ \def#2{}%
+ \@strctr=\@orgargctr\divide\@strctr by 1000\relax
+ \ifnum\@strctr>1\relax
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \@tmpstrctr=\@orgargctr\@FCmodulo{\@tmpstrctr}{1000}%
+ \ifnum\@tmpstrctr=0\relax
+ \eappto#2{\@thousandth}%
+ \else
+ \appto#2{duizend}%
+ \fi
+ \else
+ \ifnum\@strctr=1\relax
+ \ifnum\@orgargctr=1000\relax
+ \eappto#2{\@thousandth}%
+ \else
+ \eappto#2{\duizend}%
+ \fi
+ \fi
+ \fi
+ \@strctr=\@orgargctr%
+ \@FCmodulo{\@strctr}{1000}%
+ \divide\@strctr by 100\relax
+ \ifnum\@strctr>1\relax
+ \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
+ \ifnum\@tmpstrctr=0\relax
+ \ifnum\@strctr=1\relax
+ \eappto#2{\@hundredth}%
+ \else
+ \eappto#2{\@unitstring{\@strctr}\@hundredth}%
+ \fi
+ \else
+ \eappto#2{\@unitstring{\@strctr}honderd}%
+ \fi
+ \else
+ \ifnum\@strctr=1\relax
+ \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
+ \ifnum\@tmpstrctr=0\relax
+ \eappto#2{\@hundredth}%
+ \else
+ \ifnum\@orgargctr>1000\relax
+ \appto#2{honderd}%
+ \else
+ \eappto#2{\honderd}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \@strctr=\@orgargctr%
+ \@FCmodulo{\@strctr}{100}%
+ \ifthenelse{\@strctr=0 \and \@orgargctr>0 }{}{%
+ \@@numberunderhundredthdutch{\@strctr}{#2}%
+ }%
+}%
+\global\let\@@ordinalstringdutch\@@ordinalstringdutch
+% \end{macrocode}
+% All lower case version. Again, the second argument must be a
+% control sequence in which the resulting text is stored.
+% \begin{macrocode}
+\newcommand*{\@ordinalstringMdutch}[2]{%
+ \let\@unitthstring=\@@unitthstringdutch%
+ \let\@teenthstring=\@@teenthstringdutch%
+ \let\@tenthstring=\@@tenthstringdutch%
+ \let\@unitstring=\@@unitstringdutch%
+ \let\@teenstring=\@@teenstringdutch%
+ \let\@tenstring=\@@tenstringdutch%
+ \def\@thousandth{duizendste}%
+ \def\@hundredth{honderdste}%
+ \@@ordinalstringdutch{#1}{#2}%
+}%
+\global\let\@ordinalstringMdutch\@ordinalstringMdutch
+% \end{macrocode}
+% No gender in Dutch, so make feminine and neuter same as
+% masculine:
+% \begin{macrocode}
+\global\let\@ordinalstringFdutch=\@ordinalstringMdutch
+\global\let\@ordinalstringNdutch=\@ordinalstringMdutch
+% \end{macrocode}
+% First letter of each word in upper case:
+% \begin{macrocode}
+\newcommand*{\@OrdinalstringMdutch}[2]{%
+ \@ordinalstringMdutch{#1}{\@@num@str}%
+ \def\@hundred{Honderd}\def\@thousand{Duizend}%
+ \def\@hundredth{Honderdste}\def\@thousandth{Duizendste}%
+ \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
+}%
+\global\let\@OrdinalstringMdutch\@OrdinalstringMdutch
+% \end{macrocode}
+% No gender in Dutch, so make feminine and neuter same as
+% masculine:
+% \begin{macrocode}
+\global\let\@OrdinalstringFdutch=\@OrdinalstringMdutch
+\global\let\@OrdinalstringNdutch=\@OrdinalstringMdutch
+% \end{macrocode}
+% For numbers under hunderd:
+% \begin{macrocode}
+\newcommand*{\@@numberunderhundreddutch}[2]{%
+ \ifnum#1<10\relax
+ \ifnum#1>0\relax
+ \eappto#2{\@unitstring{#1}}%
+ \fi
+ \else
+ \@tmpstrctr=#1\relax
+ \@FCmodulo{\@tmpstrctr}{10}%
+ \ifnum#1<20\relax
+ \eappto#2{\@teenstring{\@tmpstrctr}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+% \end{macrocode}
+% For digits ending with an `e', a trema gets added for \cs{@andname}.
+% Take for example drieëntwintig or tweeënveertig.
+% \begin{macrocode}
+ \ifnum\@tmpstrctr=2\relax\def\@andname{ën}%
+ \else\ifnum\@tmpstrctr=3\relax\def\@andname{ën}%
+ \else\def\@andname{en}%
+ \fi\fi%
+ \eappto#2{\@unitstring{\@tmpstrctr}\@andname}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \eappto#2{\@tenstring{\@tmpstrctr}}%
+ \fi
+ \fi
+}%
+\global\let\@@numberunderhundreddutch\@@numberunderhundreddutch
+\newcommand*{\@@numberunderhundredthdutch}[2]{%
+ \ifnum#1<10\relax
+ \eappto#2{\@unitthstring{#1}}%
+ \else
+ \@tmpstrctr=#1\relax
+ \@FCmodulo{\@tmpstrctr}{10}%
+ \ifnum#1<20\relax
+ \eappto#2{\@teenthstring{\@tmpstrctr}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+% \end{macrocode}
+% Again, for digits ending with an `e', a trema gets added for \cs{@andname} (drieëntwintig or tweeënveertig).
+% \begin{macrocode}
+ \ifnum\@tmpstrctr=2\relax\def\@andname{ën}%
+ \else\ifnum\@tmpstrctr=3\relax\def\@andname{ën}%
+ \else\def\@andname{en}%
+ \fi\fi%
+ \eappto#2{\@unitstring{\@tmpstrctr}\@andname}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \eappto#2{\@tenthstring{\@tmpstrctr}}%
+ \fi
+ \fi
+}%
+\global\let\@@numberunderhundredthdutch\@@numberunderhundredthdutch
+% \end{macrocode}
+\iffalse Local variables: \fi
+\iffalse mode: docTeX \fi
+\iffalse End: \fi
+%\iffalse
+% \begin{macrocode}
+%</fc-dutch.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*fc-english.def>
% \end{macrocode}
%\fi
@@ -1804,7 +2212,7 @@ this number}%
% \subsubsection{fc-french.def}
% Definitions for French.
% \begin{macrocode}
-\ProvidesFCLanguage{french}[2020/02/24]%
+\ProvidesFCLanguage{french}[2017/06/15]%
% \end{macrocode}
% Package \styfmt{fcprefix} is needed to format the prefix \meta{$n$}
% in \meta{$n$}illion or \meta{$n$}illiard. Big numbers were
@@ -3659,7 +4067,7 @@ z\'ero%
\or zwei%
\or drei%
\or vier%
- \or f\"unf%
+ \or fünf%
\or sechs%
\or sieben%
\or acht%
@@ -3674,9 +4082,9 @@ z\'ero%
\ifcase#1%
\or zehn%
\or zwanzig%
- \or drei{\ss}ig%
+ \or dreißig%
\or vierzig%
- \or f\"unfzig%
+ \or fünfzig%
\or sechzig%
\or siebzig%
\or achtzig%
@@ -3686,9 +4094,9 @@ z\'ero%
}%
\global\let\@@tenstringgerman\@@tenstringgerman
% \end{macrocode}
-% |\einhundert| is set to |einhundert| by default, user can
+% \cs{einhundert} is set to |einhundert| by default, user can
% redefine this command to just |hundert| if required, similarly
-% for |\eintausend|.
+% for \cs{eintausend}.
% \begin{macrocode}
\providecommand*{\einhundert}{einhundert}%
\providecommand*{\eintausend}{eintausend}%
@@ -3701,10 +4109,10 @@ z\'ero%
\ifcase#1%
zehn%
\or elf%
- \or zw\"olf%
+ \or zwölf%
\or dreizehn%
\or vierzehn%
- \or f\"unfzehn%
+ \or fünfzehn%
\or sechzehn%
\or siebzehn%
\or achtzehn%
@@ -3822,7 +4230,7 @@ z\'ero%
% it is easier to split it into units, tens and teens.
% Units:
%\changes{2.0}{2012-09-25}{fixed spelling mistake (correction
-%provided by Dominik Wa\ss enhoven)}
+%provided by Dominik Waß enhoven)}
% \begin{macrocode}
\newcommand*\@@unitthstringMgerman[1]{%
\ifcase#1%
@@ -3831,7 +4239,7 @@ z\'ero%
\or zweiter%
\or dritter%
\or vierter%
- \or f\"unfter%
+ \or fünfter%
\or sechster%
\or siebter%
\or achter%
@@ -3846,9 +4254,9 @@ z\'ero%
\ifcase#1%
\or zehnter%
\or zwanzigster%
- \or drei{\ss}igster%
+ \or dreißigster%
\or vierzigster%
- \or f\"unfzigster%
+ \or fünfzigster%
\or sechzigster%
\or siebzigster%
\or achtzigster%
@@ -3863,10 +4271,10 @@ z\'ero%
\ifcase#1%
zehnter%
\or elfter%
- \or zw\"olfter%
+ \or zwölfter%
\or dreizehnter%
\or vierzehnter%
- \or f\"unfzehnter%
+ \or fünfzehnter%
\or sechzehnter%
\or siebzehnter%
\or achtzehnter%
@@ -3884,7 +4292,7 @@ z\'ero%
\or zweite%
\or dritte%
\or vierte%
- \or f\"unfte%
+ \or fünfte%
\or sechste%
\or siebte%
\or achte%
@@ -3899,9 +4307,9 @@ z\'ero%
\ifcase#1%
\or zehnte%
\or zwanzigste%
- \or drei{\ss}igste%
+ \or dreißigste%
\or vierzigste%
- \or f\"unfzigste%
+ \or fünfzigste%
\or sechzigste%
\or siebzigste%
\or achtzigste%
@@ -3916,10 +4324,10 @@ z\'ero%
\ifcase#1%
zehnte%
\or elfte%
- \or zw\"olfte%
+ \or zwölfte%
\or dreizehnte%
\or vierzehnte%
- \or f\"unfzehnte%
+ \or fünfzehnte%
\or sechzehnte%
\or siebzehnte%
\or achtzehnte%
@@ -3939,7 +4347,7 @@ z\'ero%
\or zweites%
\or drittes%
\or viertes%
- \or f\"unftes%
+ \or fünftes%
\or sechstes%
\or siebtes%
\or achtes%
@@ -3954,9 +4362,9 @@ z\'ero%
\ifcase#1%
\or zehntes%
\or zwanzigstes%
- \or drei{\ss}igstes%
+ \or dreißigstes%
\or vierzigstes%
- \or f\"unfzigstes%
+ \or fünfzigstes%
\or sechzigstes%
\or siebzigstes%
\or achtzigstes%
@@ -3971,10 +4379,10 @@ z\'ero%
\ifcase#1%
zehntes%
\or elftes%
- \or zw\"olftes%
+ \or zwölftes%
\or dreizehntes%
\or vierzehntes%
- \or f\"unfzehntes%
+ \or fünfzehntes%
\or sechzehntes%
\or siebzehntes%
\or achtzehntes%
@@ -4257,42 +4665,79 @@ z\'ero%
\RequirePackage{itnumpar}
\newcommand{\@numberstringMitalian}[2]{%
- \edef#2{\noexpand\printnumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{o}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@numberstringMitalian\@numberstringMitalian
\newcommand{\@numberstringFitalian}[2]{%
- \edef#2{\noexpand\printnumeroinparole{#1}}}
+ \begingroup
+ \def\np@oa{a}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
+}
\global\let\@numberstringFitalian\@numberstringFitalian
\newcommand{\@NumberstringMitalian}[2]{%
- \edef#2{\noexpand\printNumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{o}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@NumberstringMitalian\@NumberstringMitalian
\newcommand{\@NumberstringFitalian}[2]{%
- \edef#2{\noexpand\printNumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{a}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@NumberstringFitalian\@NumberstringFitalian
\newcommand{\@ordinalstringMitalian}[2]{%
- \edef#2{\noexpand\printordinalem{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@ordinalem{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@ordinalstringMitalian\@ordinalstringMitalian
\newcommand{\@ordinalstringFitalian}[2]{%
- \edef#2{\noexpand\printordinalef{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@ordinalef{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@ordinalstringFitalian\@ordinalstringFitalian
\newcommand{\@OrdinalstringMitalian}[2]{%
- \edef#2{\noexpand\printOrdinalem{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Ordinalem{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@OrdinalstringMitalian\@OrdinalstringMitalian
\newcommand{\@OrdinalstringFitalian}[2]{%
- \edef#2{\noexpand\printOrdinalef{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Ordinalef{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@OrdinalstringFitalian\@OrdinalstringFitalian
@@ -4473,7 +4918,7 @@ z\'ero%
\or vinte%
\or trinta%
\or quarenta%
- \or cinq\"uenta%
+ \or cinquenta%
\or sessenta%
\or setenta%
\or oitenta%
@@ -4581,7 +5026,7 @@ z\'ero%
\or Vinte%
\or Trinta%
\or Quarenta%
- \or Cinq\"uenta%
+ \or Cinquenta%
\or Sessenta%
\or Setenta%
\or Oitenta%
@@ -4805,7 +5250,7 @@ z\'ero%
\or vig\'esimo%
\or trig\'esimo%
\or quadrag\'esimo%
- \or q\"uinquag\'esimo%
+ \or quinquag\'esimo%
\or sexag\'esimo%
\or setuag\'esimo%
\or octog\'esimo%
@@ -4832,7 +5277,7 @@ z\'ero%
\or ducent\'esimo%
\or trecent\'esimo%
\or quadringent\'esimo%
- \or q\"uingent\'esimo%
+ \or quingent\'esimo%
\or seiscent\'esimo%
\or setingent\'esimo%
\or octingent\'esimo%
@@ -4867,7 +5312,7 @@ z\'ero%
\or vig\'esima%
\or trig\'esima%
\or quadrag\'esima%
- \or q\"uinquag\'esima%
+ \or quinquag\'esima%
\or sexag\'esima%
\or setuag\'esima%
\or octog\'esima%
@@ -4884,7 +5329,7 @@ z\'ero%
\or ducent\'esima%
\or trecent\'esima%
\or quadringent\'esima%
- \or q\"uingent\'esima%
+ \or quingent\'esima%
\or seiscent\'esima%
\or setingent\'esima%
\or octingent\'esima%
@@ -4919,7 +5364,7 @@ z\'ero%
\or Vig\'esimo%
\or Trig\'esimo%
\or Quadrag\'esimo%
- \or Q\"uinquag\'esimo%
+ \or Quinquag\'esimo%
\or Sexag\'esimo%
\or Setuag\'esimo%
\or Octog\'esimo%
@@ -4936,7 +5381,7 @@ z\'ero%
\or Ducent\'esimo%
\or Trecent\'esimo%
\or Quadringent\'esimo%
- \or Q\"uingent\'esimo%
+ \or Quingent\'esimo%
\or Seiscent\'esimo%
\or Setingent\'esimo%
\or Octingent\'esimo%
@@ -4971,7 +5416,7 @@ z\'ero%
\or Vig\'esima%
\or Trig\'esima%
\or Quadrag\'esima%
- \or Q\"uinquag\'esima%
+ \or Quinquag\'esima%
\or Sexag\'esima%
\or Setuag\'esima%
\or Octog\'esima%
@@ -4988,7 +5433,7 @@ z\'ero%
\or Ducent\'esima%
\or Trecent\'esima%
\or Quadringent\'esima%
- \or Q\"uingent\'esima%
+ \or Quingent\'esima%
\or Seiscent\'esima%
\or Setingent\'esima%
\or Octingent\'esima%
@@ -5028,12 +5473,8 @@ z\'ero%
\@strctr=#1 \divide\@strctr by 1000\relax
\@FCmodulo{\@strctr}{10}%
\ifnum\@strctr>0
- \ifnum\@strctr=1\relax
- \let\@@fc@numstr#2\relax
- \protected@edef#2{\@@fc@numstr\ \@andname}%
- \fi
\let\@@fc@numstr#2\relax
- \protected@edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}%
+ \protected@edef#2{\@@fc@numstr\ \@andname\ \@unitstring{\@strctr}}%
\fi
\else
\@strctr=#1\relax
@@ -5059,7 +5500,7 @@ z\'ero%
\ifnum\@strctr>0\relax
\ifnum#1>1000 \relax
\let\@@fc@numstr#2\relax
- \protected@edef#2{\@@fc@numstr\ }%
+ \protected@edef#2{\@@fc@numstr\ \@andname\ }%
\fi
\@tmpstrctr=#1\relax
\@FCmodulo{\@tmpstrctr}{1000}%
@@ -5083,15 +5524,8 @@ z\'ero%
\protected@edef#2{\@@fc@numstr\@tenstring{\@strctr}}%
\@strctr=#1\relax \@FCmodulo{\@strctr}{10}%
\ifnum\@strctr>0
- \ifnum\@strctr=1\relax
- \let\@@fc@numstr#2\relax
- \protected@edef#2{\@@fc@numstr\ \@andname}%
- \else
- \ifnum#1>100\relax
- \let\@@fc@numstr#2\relax
- \protected@edef#2{\@@fc@numstr\ \@andname}%
- \fi
- \fi
+ \let\@@fc@numstr#2\relax
+ \protected@edef#2{\@@fc@numstr\ \@andname}%
\let\@@fc@numstr#2\relax
\protected@edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}%
\fi
@@ -5348,7 +5782,7 @@ this number}%
\or trece%
\or catorce%
\or quince%
- \or diecis\'eis%
+ \or dieciséis%
\or diecisiete%
\or dieciocho%
\or diecinueve%
@@ -5362,11 +5796,11 @@ this number}%
\ifcase#1\relax
veinte%
\or veintiuno%
- \or veintid\'os%
- \or veintitr\'es%
+ \or veintidós%
+ \or veintitrés%
\or veinticuatro%
\or veinticinco%
- \or veintis\'eis%
+ \or veintiséis%
\or veintisiete%
\or veintiocho%
\or veintinueve%
@@ -5380,11 +5814,11 @@ this number}%
\ifcase#1\relax
veinte%
\or veintiuna%
- \or veintid\'os%
- \or veintitr\'es%
+ \or veintidós%
+ \or veintitrés%
\or veinticuatro%
\or veinticinco%
- \or veintis\'eis%
+ \or veintiséis%
\or veintisiete%
\or veintiocho%
\or veintinueve%
@@ -5492,7 +5926,7 @@ this number}%
\or Trece%
\or Catorce%
\or Quince%
- \or Diecis\'eis%
+ \or Dieciséis%
\or Diecisiete%
\or Dieciocho%
\or Diecinueve%
@@ -5506,11 +5940,11 @@ this number}%
\ifcase#1\relax
Veinte%
\or Veintiuno%
- \or Veintid\'os%
- \or Veintitr\'es%
+ \or Veintidós%
+ \or Veintitrés%
\or Veinticuatro%
\or Veinticinco%
- \or Veintis\'eis%
+ \or Veintiséis%
\or Veintisiete%
\or Veintiocho%
\or Veintinueve%
@@ -5524,11 +5958,11 @@ this number}%
\ifcase#1\relax
Veinte%
\or Veintiuna%
- \or Veintid\'os%
- \or Veintitr\'es%
+ \or Veintidós%
+ \or Veintitrés%
\or Veinticuatro%
\or Veinticinco%
- \or Veintis\'eis%
+ \or Veintiséis%
\or Veintisiete%
\or Veintiocho%
\or Veintinueve%
@@ -5657,7 +6091,7 @@ this number}%
\let\@teenthstring=\@@teenthstringspanish
\let\@tenthstring=\@@tenthstringspanish
\let\@hundredthstring=\@@hundredthstringspanish
- \def\@thousandth{mil\'esimo}%
+ \def\@thousandth{milésimo}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@ordinalstringMspanish\@ordinalstringMspanish
@@ -5670,7 +6104,7 @@ this number}%
\let\@teenthstring=\@@teenthstringFspanish
\let\@tenthstring=\@@tenthstringFspanish
\let\@hundredthstring=\@@hundredthstringFspanish
- \def\@thousandth{mil\'esima}%
+ \def\@thousandth{milésima}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@ordinalstringFspanish\@ordinalstringFspanish
@@ -5687,7 +6121,7 @@ this number}%
\let\@teenthstring=\@@Teenthstringspanish
\let\@tenthstring=\@@Tenthstringspanish
\let\@hundredthstring=\@@Hundredthstringspanish
- \def\@thousandth{Mil\'esimo}%
+ \def\@thousandth{Milésimo}%
\@@ordinalstringspanish{#1}{#2}%
}
\global\let\@OrdinalstringMspanish\@OrdinalstringMspanish
@@ -5700,7 +6134,7 @@ this number}%
\let\@teenthstring=\@@TeenthstringFspanish
\let\@tenthstring=\@@TenthstringFspanish
\let\@hundredthstring=\@@HundredthstringFspanish
- \def\@thousandth{Mil\'esima}%
+ \def\@thousandth{Milésima}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@OrdinalstringFspanish\@OrdinalstringFspanish
@@ -5722,7 +6156,7 @@ this number}%
\or cuarto%
\or quinto%
\or sexto%
- \or s\'eptimo%
+ \or séptimo%
\or octavo%
\or noveno%
\fi
@@ -5733,15 +6167,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@tenthstringspanish[1]{%
\ifcase#1\relax
- \or d\'ecimo%
- \or vig\'esimo%
- \or trig\'esimo%
- \or cuadrag\'esimo%
- \or quincuag\'esimo%
- \or sexag\'esimo%
- \or septuag\'esimo%
- \or octog\'esimo%
- \or nonag\'esimo%
+ \or décimo%
+ \or vigésimo%
+ \or trigésimo%
+ \or cuadragésimo%
+ \or quincuagésimo%
+ \or sexagésimo%
+ \or septuagésimo%
+ \or octogésimo%
+ \or nonagésimo%
\fi
}%
\global\let\@@tenthstringspanish\@@tenthstringspanish
@@ -5750,14 +6184,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@teenthstringspanish[1]{%
\ifcase#1\relax
- d\'ecimo%
- \or und\'ecimo%
- \or duod\'ecimo%
+ décimo%
+ \or undécimo%
+ \or duodécimo%
\or decimotercero%
\or decimocuarto%
\or decimoquinto%
\or decimosexto%
- \or decimos\'eptimo%
+ \or decimoséptimo%
\or decimoctavo%
\or decimonoveno%
\fi
@@ -5768,15 +6202,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@hundredthstringspanish[1]{%
\ifcase#1\relax
- \or cent\'esimo%
- \or ducent\'esimo%
- \or tricent\'esimo%
- \or cuadringent\'esimo%
- \or quingent\'esimo%
- \or sexcent\'esimo%
- \or septing\'esimo%
- \or octingent\'esimo%
- \or noningent\'esimo%
+ \or centésimo%
+ \or ducentésimo%
+ \or tricentésimo%
+ \or cuadringentésimo%
+ \or quingentésimo%
+ \or sexcentésimo%
+ \or septingésimo%
+ \or octingentésimo%
+ \or noningentésimo%
\fi
}%
\global\let\@@hundredthstringspanish\@@hundredthstringspanish
@@ -5792,7 +6226,7 @@ this number}%
\or cuarta%
\or quinta%
\or sexta%
- \or s\'eptima%
+ \or séptima%
\or octava%
\or novena%
\fi
@@ -5803,15 +6237,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@tenthstringFspanish[1]{%
\ifcase#1\relax
- \or d\'ecima%
- \or vig\'esima%
- \or trig\'esima%
- \or cuadrag\'esima%
- \or quincuag\'esima%
- \or sexag\'esima%
- \or septuag\'esima%
- \or octog\'esima%
- \or nonag\'esima%
+ \or décima%
+ \or vigésima%
+ \or trigésima%
+ \or cuadragésima%
+ \or quincuagésima%
+ \or sexagésima%
+ \or septuagésima%
+ \or octogésima%
+ \or nonagésima%
\fi
}%
\global\let\@@tenthstringFspanish\@@tenthstringFspanish
@@ -5820,14 +6254,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@teenthstringFspanish[1]{%
\ifcase#1\relax
- d\'ecima%
- \or und\'ecima%
- \or duod\'ecima%
+ décima%
+ \or undécima%
+ \or duodécima%
\or decimotercera%
\or decimocuarta%
\or decimoquinta%
\or decimosexta%
- \or decimos\'eptima%
+ \or decimoséptima%
\or decimoctava%
\or decimonovena%
\fi
@@ -5838,15 +6272,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@hundredthstringFspanish[1]{%
\ifcase#1\relax
- \or cent\'esima%
- \or ducent\'esima%
- \or tricent\'esima%
- \or cuadringent\'esima%
- \or quingent\'esima%
- \or sexcent\'esima%
- \or septing\'esima%
- \or octingent\'esima%
- \or noningent\'esima%
+ \or centésima%
+ \or ducentésima%
+ \or tricentésima%
+ \or cuadringentésima%
+ \or quingentésima%
+ \or sexcentésima%
+ \or septingésima%
+ \or octingentésima%
+ \or noningentésima%
\fi
}%
\global\let\@@hundredthstringFspanish\@@hundredthstringFspanish
@@ -5862,7 +6296,7 @@ this number}%
\or Cuarto%
\or Quinto%
\or Sexto%
- \or S\'eptimo%
+ \or Séptimo%
\or Octavo%
\or Noveno%
\fi
@@ -5873,15 +6307,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Tenthstringspanish[1]{%
\ifcase#1\relax
- \or D\'ecimo%
- \or Vig\'esimo%
- \or Trig\'esimo%
- \or Cuadrag\'esimo%
- \or Quincuag\'esimo%
- \or Sexag\'esimo%
- \or Septuag\'esimo%
- \or Octog\'esimo%
- \or Nonag\'esimo%
+ \or Décimo%
+ \or Vigésimo%
+ \or Trigésimo%
+ \or Cuadragésimo%
+ \or Quincuagésimo%
+ \or Sexagésimo%
+ \or Septuagésimo%
+ \or Octogésimo%
+ \or Nonagésimo%
\fi
}%
\global\let\@@Tenthstringspanish\@@Tenthstringspanish
@@ -5890,14 +6324,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Teenthstringspanish[1]{%
\ifcase#1\relax
- D\'ecimo%
- \or Und\'ecimo%
- \or Duod\'ecimo%
+ Décimo%
+ \or Undécimo%
+ \or Duodécimo%
\or Decimotercero%
\or Decimocuarto%
\or Decimoquinto%
\or Decimosexto%
- \or Decimos\'eptimo%
+ \or Decimoséptimo%
\or Decimoctavo%
\or Decimonoveno%
\fi
@@ -5908,15 +6342,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Hundredthstringspanish[1]{%
\ifcase#1\relax
- \or Cent\'esimo%
- \or Ducent\'esimo%
- \or Tricent\'esimo%
- \or Cuadringent\'esimo%
- \or Quingent\'esimo%
- \or Sexcent\'esimo%
- \or Septing\'esimo%
- \or Octingent\'esimo%
- \or Noningent\'esimo%
+ \or Centésimo%
+ \or Ducentésimo%
+ \or Tricentésimo%
+ \or Cuadringentésimo%
+ \or Quingentésimo%
+ \or Sexcentésimo%
+ \or Septingésimo%
+ \or Octingentésimo%
+ \or Noningentésimo%
\fi
}%
\global\let\@@Hundredthstringspanish\@@Hundredthstringspanish
@@ -5932,7 +6366,7 @@ this number}%
\or Cuarta%
\or Quinta%
\or Sexta%
- \or S\'eptima%
+ \or Séptima%
\or Octava%
\or Novena%
\fi
@@ -5943,15 +6377,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@TenthstringFspanish[1]{%
\ifcase#1\relax
- \or D\'ecima%
- \or Vig\'esima%
- \or Trig\'esima%
- \or Cuadrag\'esima%
- \or Quincuag\'esima%
- \or Sexag\'esima%
- \or Septuag\'esima%
- \or Octog\'esima%
- \or Nonag\'esima%
+ \or Décima%
+ \or Vigésima%
+ \or Trigésima%
+ \or Cuadragésima%
+ \or Quincuagésima%
+ \or Sexagésima%
+ \or Septuagésima%
+ \or Octogésima%
+ \or Nonagésima%
\fi
}%
\global\let\@@TenthstringFspanish\@@TenthstringFspanish
@@ -5960,14 +6394,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@TeenthstringFspanish[1]{%
\ifcase#1\relax
- D\'ecima%
- \or Und\'ecima%
- \or Duod\'ecima%
+ Décima%
+ \or Undécima%
+ \or Duodécima%
\or Decimotercera%
\or Decimocuarta%
\or Decimoquinta%
\or Decimosexta%
- \or Decimos\'eptima%
+ \or Decimoséptima%
\or Decimoctava%
\or Decimonovena%
\fi
@@ -5978,15 +6412,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@HundredthstringFspanish[1]{%
\ifcase#1\relax
- \or Cent\'esima%
- \or Ducent\'esima%
- \or Tricent\'esima%
- \or Cuadringent\'esima%
- \or Quingent\'esima%
- \or Sexcent\'esima%
- \or Septing\'esima%
- \or Octingent\'esima%
- \or Noningent\'esima%
+ \or Centésima%
+ \or Ducentésima%
+ \or Tricentésima%
+ \or Cuadringentésima%
+ \or Quingentésima%
+ \or Sexcentésima%
+ \or Septingésima%
+ \or Octingentésima%
+ \or Noningentésima%
\fi
}%
\global\let\@@HundredthstringFspanish\@@HundredthstringFspanish
@@ -7486,7 +7920,7 @@ this number}%
% This section deals with the code for |fmtcount.sty|
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fmtcount}[2020/01/30 v3.07]
+\ProvidesPackage{fmtcount}[2024/10/18 v3.09]
\RequirePackage{ifthen}
% \end{macrocode}
% \changes{3.01}{2014/12/03}{Use \styfmt{xkeyval} instead of \styfmt{keyval}, so that we do not get in trouble
@@ -7660,7 +8094,8 @@ german,%
germanb,%
ngerman,%
ngermanb,%
-italian}
+italian,%
+dutch}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\fc@iterate@on@languages}
@@ -9102,7 +9537,7 @@ italian}
\protect\@numberstringM{#1}{\@fc@numstr}%
}%
}%
- \MakeUppercase{\@fc@numstr}%
+ \protect\MakeUppercase{\@fc@numstr}%
}%
}
% \end{macrocode}
diff --git a/macros/latex/contrib/fmtcount/fmtcount.ins b/macros/latex/contrib/fmtcount/fmtcount.ins
index 1c31d8f0aa..38775af54a 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.ins
+++ b/macros/latex/contrib/fmtcount/fmtcount.ins
@@ -1,10 +1,10 @@
-% fmtcount.ins generated using makedtx version 1.2 2020/2/24 20:03
+% fmtcount.ins generated using makedtx version 1.2 2024/10/18 15:41
\input docstrip
\preamble
fmtcount.dtx
- Copyright 2020 Nicola Talbot and Vincent Belache
+ Copyright 2024 Nicola Talbot and Vincent Belaïche
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -16,9 +16,9 @@
This work has the LPPL maintenance status `maintained'.
- The Current Maintainer of this work is Nicola Talbot and Vincent Belache.
+ The Current Maintainer of this work is Nicola Talbot and Vincent Belaïche.
- This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fc-american.def, fc-brazilian.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-portuguese.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fcnumparser.sty, fcprefix.sty, fmtcount.sty.
+ This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fc-american.def, fc-brazilian.def, fc-british.def, fc-dutch.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-portuguese.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fcnumparser.sty, fcprefix.sty, fmtcount.sty.
\endpreamble
@@ -30,6 +30,8 @@
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-brazilian.def,package}}
\file{fc-british.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-british.def,package}}
+\file{fc-dutch.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-dutch.def,package}}
\file{fc-english.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-english.def,package}}
\file{fc-francais.def}{\usepreamble\defaultpreamble
diff --git a/macros/latex/contrib/fmtcount/fmtcount.pdf b/macros/latex/contrib/fmtcount/fmtcount.pdf
index 98673a2b81..3a4445d3d7 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.pdf
+++ b/macros/latex/contrib/fmtcount/fmtcount.pdf
Binary files differ
diff --git a/macros/latex/contrib/fmtcount/fmtcount.perl b/macros/latex/contrib/fmtcount/fmtcount.perl
index b8a1fde0df..c7fdfe3303 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.perl
+++ b/macros/latex/contrib/fmtcount/fmtcount.perl
@@ -355,6 +355,149 @@ sub get_numberstringenglish{
$name;
}
+@unitthstringdutch = ('nulste',
+ 'eerste',
+ 'tweede',
+ 'derde',
+ 'vierde',
+ 'vijfde',
+ 'zesde',
+ 'zevende',
+ 'achtste',
+ 'negende');
+
+@tenthstringdutch = ('',
+ 'tiende',
+ 'twintigste',
+ 'dertigste',
+ 'veertigste',
+ 'vijftigste',
+ 'zestigste',
+ 'zeventigste',
+ 'tachtigste',
+ 'negentigste');
+
+@teenthstringdutch = ('tiende',
+ 'elfde',
+ 'twaalfde',
+ 'dertien',
+ 'veertiende',
+ 'vijftiende',
+ 'zestiende',
+ 'zeventiende',
+ 'achttiende',
+ 'negentiende');
+
+@unitstringdutch = ('nul',
+ 'één',
+ 'twee',
+ 'drie',
+ 'vier',
+ 'vijf',
+ 'zes',
+ 'zeven',
+ 'acht',
+ 'negen');
+
+@teenstringdutch = ('tien',
+ 'elf',
+ 'twaalf',
+ 'dertien',
+ 'veertien',
+ 'vijftien',
+ 'zestien',
+ 'zeventien',
+ 'achttien',
+ 'negentien');
+
+@tenstringdutch = ('',
+ 'tien',
+ 'twintig',
+ 'dertig',
+ 'veertig',
+ 'vijftig',
+ 'zestig',
+ 'zeventig',
+ 'tachtig',
+ 'negentig');
+
+$hundrednamedutch = "honderd";
+$hundredthnamedutch = "honderdste";
+$thousandnamedutch = "duizend";
+$thousandthnamedutch = "duizendste";
+
+sub get_numberstringdutch {
+ local($num) = @_;
+ local($name) = "";
+
+ unless (($num >= 1000000) || ($num < 0)) {
+ if ($num >= 1000) {
+ local($thousandsdutch) = &get_numberstringdutch(int($num / 1000));
+ $name .= $thousandsdutch;
+
+ if ($num % 1000 > 0) {
+ $name .= " $thousandnamedutch";
+ } else {
+ $name .= " $thousandthnamedutch";
+ }
+
+ $num = $num % 1000;
+ }
+
+ if ($num >= 100) {
+ if ($_[0] >= 1000) { $name .= " "; }
+
+ local($hundredsdutch) = &get_numberstringdutch(int($num / 100));
+ $name .= $hundredsdutch;
+
+ if ($num % 100 > 0) {
+ $name .= " $hundrednamedutch";
+ } else {
+ $name .= " $hundredthnamedutch";
+ }
+
+ $num = $num % 100;
+ }
+
+ if (($_[0] > 100) && ($_[0] % 100 > 0)) { $name .= " en "; }
+
+ if ($num >= 20) {
+ local($tens) = int($num / 10);
+ local($units) = $num % 10;
+
+ # Handle special "ën" for 2 and 3 in numbers like 22, 23, etc.
+ if ($units == 2 || $units == 3) {
+ $name .= $unitstringdutch[$units] . "ën" . $tenstringdutch[$tens];
+ } else {
+ if ($units > 0) {
+ $name .= $tenstringdutch[$tens] . 'en' . $unitstringdutch[$units];
+ } else {
+ $name .= $tenthstringdutch[$tens];
+ }
+ }
+
+ # Handle "ste" or "de" suffix
+ if ($units > 0) {
+ $name .= ($units == 2 || $units == 3) ? 'ste' : 'e';
+ } else {
+ $name .= 'ste';
+ }
+ }
+
+ if (($num >= 10) && ($num < 20)) {
+ $name .= $teenthstringdutch[$num % 10] . 'de';
+ } elsif (($num % 10 > 0) || ($_[0] == 0)) {
+ if ($num > 20 && ($num % 10 == 2 || $num % 10 == 3)) {
+ $name .= $unitstringdutch[$num % 10] . 'e';
+ } else {
+ $name .= $unitthstringdutch[$num % 10];
+ }
+ }
+ }
+
+ $name;
+}
+
@unitthstringfrench = ('zeroi\`eme',
'uni\`eme',
'deuxi\`eme',
@@ -1092,7 +1235,11 @@ sub get_numberstringgerman{
sub get_numberstring{
local($val,$gender) = @_;
- if ($default_language eq 'french')
+ if ($default_language eq 'dutch')
+ {
+ &get_numberstringdutch($val,$gender);
+ }
+ elsif ($default_language eq 'french')
{
&get_numberstringfrench($val,$gender);
}
@@ -1424,6 +1571,78 @@ sub do_cmd_storeNUMBERstringnum{
$_;
}
+sub get_ordinalstringdutch {
+ local($num) = @_;
+ local($name) = "";
+
+ unless (($num >= 1000000) || ($num < 0)) {
+ if ($num >= 1000) {
+ local($thousandsdutch) = &get_numberstringdutch(int($num / 1000));
+ $name .= $thousandsdutch;
+
+ if ($num % 1000 > 0) {
+ $name .= " $thousandnamedutch";
+ } else {
+ $name .= " $thousandthnamedutch";
+ }
+
+ $num = $num % 1000;
+ }
+
+ if ($num >= 100) {
+ if ($_[0] >= 1000) { $name .= " "; }
+
+ local($hundredsdutch) = &get_numberstringdutch(int($num / 100));
+ $name .= $hundredsdutch;
+
+ if ($num % 100 > 0) {
+ $name .= " $hundrednamedutch";
+ } else {
+ $name .= " $hundredthnamedutch";
+ }
+
+ $num = $num % 100;
+ }
+
+ if (($_[0] > 100) && ($_[0] % 100 > 0)) { $name .= " en "; }
+
+ if ($num >= 20) {
+ local($tens) = int($num / 10);
+ local($units) = $num % 10;
+
+ # Handle special "ën" for 2 and 3 in numbers like 22, 23, etc.
+ if ($units == 2 || $units == 3) {
+ $name .= $unitstringdutch[$units] . "ën" . $tenstringdutch[$tens];
+ } else {
+ if ($units > 0) {
+ $name .= $tenstringdutch[$tens] . 'en' . $unitstringdutch[$units];
+ } else {
+ $name .= $tenthstringdutch[$tens];
+ }
+ }
+
+ # Handle "ste" or "de" suffix
+ if ($units > 0) {
+ $name .= ($units == 2 || $units == 3) ? 'ste' : 'e';
+ } else {
+ $name .= 'ste';
+ }
+ }
+
+ if (($num >= 10) && ($num < 20)) {
+ $name .= $teenthstringdutch[$num % 10] . 'de';
+ } elsif (($num % 10 > 0) || ($_[0] == 0)) {
+ if ($num > 20 && ($num % 10 == 2 || $num % 10 == 3)) {
+ $name .= $unitstringdutch[$num % 10] . 'e';
+ } else {
+ $name .= $unitthstringdutch[$num % 10];
+ }
+ }
+ }
+
+ $name;
+}
+
sub get_ordinalstringenglish{
local($num) = @_;
local($name)="";
@@ -1959,7 +2178,11 @@ sub get_ordinalstringgerman{
sub get_ordinalstring{
local($val,$gender) = @_;
- if ($default_language eq 'french')
+ if ($default_language eq 'dutch')
+ {
+ &get_ordinalstringdutch($val,$gender);
+ }
+ elsif ($default_language eq 'french')
{
&get_ordinalstringfrench($val,$gender);
}
diff --git a/macros/latex/contrib/fontscale/CHANGELOG.md b/macros/latex/contrib/fontscale/CHANGELOG.md
index 46a32e8fc9..98a1d81be1 100644
--- a/macros/latex/contrib/fontscale/CHANGELOG.md
+++ b/macros/latex/contrib/fontscale/CHANGELOG.md
@@ -7,6 +7,74 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.0.1] - 2024-10-20
+
+### Changed
+- Improved the error message when the font size is not a positive length.
+- Documentation improvements.
+
+## [v3.0.0] - 2024-10-05
+
+### Added
+- Added new `expl3` public variables that store the current font step, font
+ scale, font size, and font baselineskip. They are set in the `selectfont`
+ hook.
+ - `\l_fontscale_step_fp`
+ - `\l_fontscale_scale_fp`
+ - `\l_fontscale_size_dim`
+ - `\l_fontscale_baselineskip_skip`
+
+### Changed
+- This update includes some changes that are backwards incompatible.
+- The package commands now use the above variables instead of `\f@size` and
+ `\f@baselineskip`. This changes the behavior of `\CurrentFontStep`,
+ `\CurrentFontScale`, and `\CurrentFontSize` within the second argument of
+ `\fontsize` because `\fontsize` sets `\f@size` to the new font size before
+ expanding its second argument.
+- `\PrintFontSizeCommand` no longer tests if the current font baselineskip
+ equals the font baselineskip of any font size command from `\tiny` to
+ `\Huge`.
+- `\SetFontStep` now rounds the new font step to 5 decimal places. This is
+ important when checking if it equals the font step of any font size command
+ from `\tiny` to `\Huge`.
+- A default `pt` is now appended only in user-level commands, not in internal
+ `expl3` functions.
+- `\fontscalesetup` now processes the keys slightly faster when the key
+ `<font size command>/baselineskip` is not set.
+- Documentation improvements.
+
+### Removed
+- `\CurrentFontSizeCommand` (redundant with `\CurrentFontSize` and
+ `\CurrentFontBaselineskip`)
+
+### Fixed
+- The error message for `\SetFontStep*` when the current font step is undefined
+ no longer writes `\SetFontStep*`. This would be incorrect if its
+ corresponding internal function was used instead of `\SetFontStep*`.
+- The internal functions of `\PrintSampleText` now correctly enclose their
+ contents within a group.
+
+## [v2.4.0] - 2024-09-10
+
+### Changed
+- `\fontscalesetup` no longer issues a warning if the lengths of the font
+ baselineskips are not ordered from `\tiny` to `\Huge`.
+- Code improvements.
+
+## [v2.3.0] - 2024-09-06
+
+### Changed
+- The package commands no longer check if the font baselineskip is less than
+ the font size.
+
+## [v2.2.0] - 2024-08-29
+
+### Changed
+- Improved the messages issued by this package.
+
+### Added
+- `\SetFontBaselineskip`
+
## [v2.1.0] - 2024-08-12
### Changed
diff --git a/macros/latex/contrib/fontscale/beery.cls b/macros/latex/contrib/fontscale/beery.cls
index f2fd7fd2c5..7ba1baf129 100644
--- a/macros/latex/contrib/fontscale/beery.cls
+++ b/macros/latex/contrib/fontscale/beery.cls
@@ -4,7 +4,7 @@
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\ProvidesExplClass
{beery}
- {2024-08-12}
+ {2024-10-20}
{}
{}
@@ -93,7 +93,7 @@
\skip_set_eq:NN \medskipamount \c_beery_medium_skip
\skip_set_eq:NN \smallskipamount \c_beery_small_skip
-\flushbottom
+\raggedbottom
\int_set:Nn \vbadness { 100 }
\skip_set:Nn \topskip { \l_fontscale_normalsize_size_dim }
@@ -239,7 +239,7 @@
\RequirePackage [ bottom ] { footmisc }
\renewcommand \footnoterule { }
-\setlength { \skip \footins } { \c_beery_big_skip }
+% \setlength { \skip \footins } { \c_beery_big_skip }
\dim_set:Nn \footnotesep { \f@linespread \footnotesep }
\coffin_new:N \l__beery_footnote_coffin
% 1.2 = baselineskip-size-ratio
diff --git a/macros/latex/contrib/fontscale/fontscale-table-classic.tex b/macros/latex/contrib/fontscale/fontscale-table-classic.tex
index 50ff413e36..e087ba0e20 100644
--- a/macros/latex/contrib/fontscale/fontscale-table-classic.tex
+++ b/macros/latex/contrib/fontscale/fontscale-table-classic.tex
@@ -1,6 +1,4 @@
-\ProvidesFile
- {fontscale-table-classic.tex}
- [2024-08-12]
+\ProvidesFile{fontscale-table-classic.tex}[2024-10-20]
\begin{table}
\centering
diff --git a/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex
index 5b20f18681..687736625e 100644
--- a/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex
+++ b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex
@@ -1,6 +1,4 @@
-\ProvidesFile
- {fontscale-table-font-steps.tex}
- [2024-08-12]
+\ProvidesFile{fontscale-table-font-steps.tex}[2024-10-20]
\begin{table}
\centering
diff --git a/macros/latex/contrib/fontscale/fontscale-table-musical.tex b/macros/latex/contrib/fontscale/fontscale-table-musical.tex
index e6a6ca5ce0..9944e9fd7a 100644
--- a/macros/latex/contrib/fontscale/fontscale-table-musical.tex
+++ b/macros/latex/contrib/fontscale/fontscale-table-musical.tex
@@ -1,13 +1,11 @@
-\ProvidesFile
- {fontscale-table-musical.tex}
- [2024-08-12]
+\ProvidesFile{fontscale-table-musical.tex}[2024-10-20]
\begin{table}
\centering
\caption
{%
The font size of each font size command from \cs{tiny} to \cs{Huge} when using a musical typographic scale with the initial values.
- The font sizes are in units of \unit{pt} and rounded to two decimal places.%
+ The font sizes are in units of \unit{pt} and rounded to \num{2} decimal places.%
\label{table:musical}%
}
\bigskip
diff --git a/macros/latex/contrib/fontscale/fontscale.pdf b/macros/latex/contrib/fontscale/fontscale.pdf
index adcd809134..30f6c7f9f4 100644
--- a/macros/latex/contrib/fontscale/fontscale.pdf
+++ b/macros/latex/contrib/fontscale/fontscale.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty
index 70bfae6026..276d1b6caa 100644
--- a/macros/latex/contrib/fontscale/fontscale.sty
+++ b/macros/latex/contrib/fontscale/fontscale.sty
@@ -8,8 +8,8 @@
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\ProvidesExplPackage
{fontscale}
- {2024-08-12}
- {2.1.0}
+ {2024-10-20}
+ {3.0.1}
{A flexible interface for setting font sizes}
% l3kernel version 2023-10-10 added many 'e'-variants.
@@ -26,7 +26,10 @@
% This package does not require any other packages!
-% DECLARE FONT SIZE PARAMETER VARIABLES
+% SOME VARIABLES
+
+% Declares and initializes the font step, font scale, font size, and font
+% baselineskip of each font size command from \tiny to \Huge.
\fp_const:Nn \c_fontscale_tiny_step_fp { -4 }
\fp_const:Nn \c_fontscale_scriptsize_step_fp { -3 }
@@ -73,8 +76,6 @@
\skip_new:N \l_fontscale_huge_baselineskip_skip
\skip_new:N \l_fontscale_Huge_baselineskip_skip
-% INITIALIZE FONT SIZE PARAMETER VARIABLES
-
\fp_set:Nn \l_fontscale_tiny_scale_fp { 0.6 }
\fp_set:Nn \l_fontscale_scriptsize_scale_fp { 0.7 }
\fp_set:Nn \l_fontscale_footnotesize_scale_fp { 0.8 }
@@ -107,194 +108,264 @@
\skip_set:Nn \l_fontscale_huge_baselineskip_skip { 19.2pt }
\skip_set:Nn \l_fontscale_Huge_baselineskip_skip { 21.6pt }
-% SOME VARIABLES
+% Stores the current font step, font scale, font size, and font baselineskip.
+% They are set in the selectfont hook.
+\fp_new:N \l_fontscale_step_fp
+\fp_new:N \l_fontscale_scale_fp
+\dim_new:N \l_fontscale_size_dim
+\skip_new:N \l_fontscale_baselineskip_skip
+
+% For speed, \__fontscale_hook_selectfont: tries to avoid computing a floating
+% point expression by using \fp_set_eq:NN when the font size equals the font
+% size of any font size command from \tiny to \Huge. The case when the font
+% size equals that of \normalsize is optimized further because it is by far
+% the most common case.
+\hook_gput_code:nnn { selectfont } { fontscale }
+ { \__fontscale_hook_selectfont: }
+\cs_new_protected:Npn \__fontscale_hook_selectfont:
+ {
+ \dim_set:Nn \l_fontscale_size_dim { \f@size pt }
+ \skip_set:Nn \l_fontscale_baselineskip_skip { \f@baselineskip }
+ \dim_compare:nNnTF \l_fontscale_size_dim = \l_fontscale_normalsize_size_dim
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_normalsize_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \c_fontscale_normalsize_scale_fp
+ }
+ { \__fontscale_hook_selectfont_auxi: }
+ }
+\cs_new_protected:Npn \__fontscale_hook_selectfont_auxi:
+ {
+ \dim_case:nnF { \l_fontscale_size_dim }
+ {
+ { \l_fontscale_small_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_small_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_small_scale_fp
+ }
+ { \l_fontscale_large_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_large_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_large_scale_fp
+ }
+ { \l_fontscale_footnotesize_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_footnotesize_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp
+ \l_fontscale_footnotesize_scale_fp
+ }
+ { \l_fontscale_Large_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_Large_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_Large_scale_fp
+ }
+ { \l_fontscale_scriptsize_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_scriptsize_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_scriptsize_scale_fp
+ }
+ { \l_fontscale_LARGE_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_LARGE_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_LARGE_scale_fp
+ }
+ { \l_fontscale_tiny_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_tiny_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_tiny_scale_fp
+ }
+ { \l_fontscale_huge_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_huge_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_huge_scale_fp
+ }
+ { \l_fontscale_Huge_size_dim }
+ {
+ \fp_set_eq:NN \l_fontscale_step_fp \c_fontscale_Huge_step_fp
+ \fp_set_eq:NN \l_fontscale_scale_fp \l_fontscale_Huge_scale_fp
+ }
+ }
+ { \__fontscale_hook_selectfont_auxii: }
+ }
+% For speed, \__fontscale_hook_selectfont_auxii: uses \f@size instead of
+% \l_fontscale_size_dim. The case where the base font size of the musical
+% typographic scale equals the font size of \normalsize is optimized further.
+\cs_new_protected:Npn \__fontscale_hook_selectfont_auxii:
+ {
+ \fp_set:Nn \l_fontscale_scale_fp
+ { \f@size / \l__fontscale_normalsize_size_fp }
+ \str_if_eq:VnTF \l__fontscale_typographic_scale_str { musical }
+ {
+ \dim_compare:nNnTF \l__fontscale_musical_base_dim =
+ \l_fontscale_normalsize_size_dim
+ {
+ \fp_set:Nn \l_fontscale_step_fp
+ {
+ \l__fontscale_musical_selectfont_fp
+ * ln ( \l_fontscale_scale_fp )
+ }
+ }
+ {
+ \fp_set:Nn \l_fontscale_step_fp
+ {
+ \l__fontscale_musical_selectfont_fp
+ * ln ( \f@size / \l__fontscale_musical_base_fp )
+ }
+ }
+ }
+ { \fp_set_eq:NN \l_fontscale_step_fp \c_nan_fp }
+ }
-% Used to speed up floating point calculations.
+% Used only to speed up floating point calculations.
\fp_new:N \l__fontscale_normalsize_size_fp
\fp_set:Nn \l__fontscale_normalsize_size_fp { 10 }
\fp_new:N \l__fontscale_musical_base_fp
\fp_new:N \l__fontscale_musical_notes_fp
+\fp_new:N \l__fontscale_musical_selectfont_fp
% Scratch variables
-\tl_new:N \l__fontscale_tmp_tl
-\str_new:N \l__fontscale_tmp_str
-\dim_new:N \l__fontscale_tmp_dim
-\fp_new:N \l__fontscale_tmp_fp
+\dim_new:N \l__fontscale_tmp_dim
+\skip_new:N \l__fontscale_tmp_skip
+\fp_new:N \l__fontscale_tmp_fp
-% SOME HELPER FUNCTIONS
+% SOME FUNCTIONS
+% Variants of l3kernel functions
+\cs_generate_variant:Nn \msg_error:nnnn { nnv , nne }
% Sets a dimen/skip variable from a dimen/skip expression, appending a default
-% unit of pt.
+% unit of pt. This also removes any extra tokens.
\cs_new_protected:Npn \__fontscale_dim_set_default_pt:Nn #1#2
- { \@defaultunits #1 = \dimexpr #2 pt \relax \relax \@nnil }
+ {
+ \afterassignment \use_none_delimit_by_q_stop:w
+ #1 = \dimexpr #2 pt \relax \relax
+ \q_stop
+ }
\cs_generate_variant:Nn \__fontscale_dim_set_default_pt:Nn { c }
\cs_new_protected:Npn \__fontscale_skip_set_default_pt:Nn #1#2
- { \@defaultunits #1 = \glueexpr #2 pt \relax \@nnil }
+ {
+ \afterassignment \use_none_delimit_by_q_stop:w
+ #1 = \glueexpr #2 pt \relax
+ \q_stop
+ }
\cs_generate_variant:Nn \__fontscale_skip_set_default_pt:Nn { c }
-% Similar to \@setfontsize. Used to define \tiny to \Huge. Need \dim_use:N for
-% compatibility with the microtype package.
-\cs_new_protected:Npn \__fontscale_fontsize:NNN #1#2#3
+% Argument processors. A default 'pt' is appended only in user-level commands,
+% not in internal programming functions.
+\cs_new_protected:Npn \__fontscale_arg_to_dim_default_pt:n #1
{
- \mode_if_math:TF
- {
- \msg_warning:nne { fontscale } { math-mode-warning }
- { \token_to_str:N #1 }
- }
- {
- \cs_set_eq:NN \@currsize #1
- \fontsize { \dim_use:N #2 } #3 \selectfont
- }
+ \__fontscale_dim_set_default_pt:Nn \l__fontscale_tmp_dim {#1}
+ \tl_set:NV \ProcessedArgument \l__fontscale_tmp_dim
+ }
+\cs_new_protected:Npn \__fontscale_arg_to_skip_default_pt:n #1
+ {
+ \__fontscale_skip_set_default_pt:Nn \l__fontscale_tmp_skip {#1}
+ \tl_set:NV \ProcessedArgument \l__fontscale_tmp_skip
+ }
+% Used to define \tiny to \Huge. Sets \@currsize only for compatibility. Need
+% \dim_use:N only for compatibility with the microtype package.
+\cs_new_protected:Npn \__fontscale_name:NNN #1#2#3
+ {
+ \cs_set_eq:NN \@currsize #1
+ \fontsize { \dim_use:N #2 } #3 \selectfont
}
% Similar to \fontsize + \selectfont, except that it:
-% (1) Takes dimen and skip expressions as arguments.
+% (1) Takes dimen and skip expressions as arguments without appending a default
+% unit of pt.
% (2) Avoids the issue where \f@size is set to the new font size before the
% second argument is expanded.
-% (3) Provides error checking for the font size and font baselineskip.
-\dim_new:N \l__fontscale_fontsize_dim
-\skip_new:N \l__fontscale_fontsize_skip
-\cs_new_protected:Npn \__fontscale_fontsize:nn #1#2
- {
- \__fontscale_dim_set_default_pt:Nn \l__fontscale_fontsize_dim {#1}
- \__fontscale_skip_set_default_pt:Nn \l__fontscale_fontsize_skip {#2}
- \dim_compare:nNnTF \l__fontscale_fontsize_dim > \c_zero_dim
+% (3) Issues a user-friendly error message if the font size is not a positive
+% length.
+\cs_new_protected:Npn \__fontscale_set_font_size:nn #1#2
+ {
+ \use:e
{
- \dim_compare:nNnTF \l__fontscale_fontsize_skip <
- \l__fontscale_fontsize_dim
- { \msg_error:nn { fontscale } { font-baselineskip-out-of-bounds } }
- {
- \fontsize \l__fontscale_fontsize_dim \l__fontscale_fontsize_skip
- \selectfont
- }
+ \__fontscale_set_font_size_aux:nn { \dim_eval:n {#1} }
+ { \skip_eval:n {#2} }
}
- { \msg_error:nn { fontscale } { font-size-out-of-bounds } }
}
-% Similar to the above function, except that it sets the font baselineskip
-% equal to the new font size times the baselineskip-size-ratio.
-\cs_new_protected:Npn \__fontscale_fontsize:n #1
+\cs_new_protected:Npn \__fontscale_set_font_size_aux:nn #1#2
+ {
+ \dim_compare:nNnTF {#1} > \c_zero_dim
+ { \fontsize {#1} {#2} \selectfont }
+ { \msg_error:nnn { fontscale } { font-size-out-of-bounds } {#1} }
+ }
+% Similar to \__fontscale_set_font_size:nn, except that it sets the font
+% baselineskip equal to the new font size times the baselineskip-size-ratio.
+\cs_new_protected:Npn \__fontscale_set_font_size:n #1
+ { \use:e { \__fontscale_set_font_size_aux:n { \dim_to_decimal:n {#1} } } }
+\cs_new_protected:Npn \__fontscale_set_font_size_aux:n #1
{
- \__fontscale_dim_set_default_pt:Nn \l__fontscale_fontsize_dim {#1}
- \dim_compare:nNnTF \l__fontscale_fontsize_dim > \c_zero_dim
+ \dim_compare:nNnTF { #1 pt } > \c_zero_dim
{
- \fontsize \l__fontscale_fontsize_dim
- {
- \fp_to_dim:n
- {
- \l__fontscale_fontsize_dim
- * \l__fontscale_baselineskip_size_ratio_fp
- }
- }
+ \fontsize { #1 pt }
+ { \fp_to_dim:n { #1 * \l__fontscale_baselineskip_size_ratio_fp } }
\selectfont
}
- { \msg_error:nn { fontscale } { font-size-out-of-bounds } }
+ { \msg_error:nnn { fontscale } { font-size-out-of-bounds } { #1 pt } }
}
% MESSAGES
-\msg_new:nnn { fontscale } { key-baselineskip-size-ratio-out-of-bounds }
- {
- The~ value~ of~ the~ key~ 'baselineskip-size-ratio'~
- \msg_line_context: \c_space_tl
- must~ be~ at~ least~ 1.
- }
\msg_new:nnn { fontscale } { key-musical-base-out-of-bounds }
{
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
The~ value~ of~ the~ key~ 'musical / base'~
- \msg_line_context: \c_space_tl
must~ be~ a~ positive~ length.
}
\msg_new:nnn { fontscale } { key-musical-ratio-out-of-bounds }
{
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
The~ value~ of~ the~ key~ 'musical / ratio'~
- \msg_line_context: \c_space_tl
must~ be~ greater~ than~ 1.
}
\msg_new:nnn { fontscale } { key-musical-notes-out-of-bounds }
{
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
The~ value~ of~ the~ key~ 'musical / notes'~
- \msg_line_context: \c_space_tl
must~ be~ a~ positive~ integer.
}
\msg_new:nnn { fontscale } { key-font-scale-out-of-bounds }
{
- The~ value~ of~ the~ key~ '#1 / scale'~
- \msg_line_context: \c_space_tl
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ '#2 / scale'~
must~ be~ positive.
}
\msg_new:nnn { fontscale } { key-font-size-out-of-bounds }
{
- The~ value~ of~ the~ key~ '#1 / size'~
- \msg_line_context: \c_space_tl
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ '#2 / size'~
must~ be~ a~ positive~ length.
}
\msg_new:nnn { fontscale } { key-font-scale-overwritten }
{
The~ font~ size~ set~ by~ the~ key~ '#1 / scale'~
- has~ been~ overwritten~ by~ the~ key~ '#1 / size'~
- \msg_line_context:.
- }
-\msg_new:nnn { fontscale } { key-font-baselineskip-out-of-bounds }
- {
- The~ value~ of~ the~ key~ '#1 / baselineskip'~
- \msg_line_context: \c_space_tl
- must~ be~ greater~ than~ or~ equal~ to~
- the~ font~ size~ of~ '\iow_char:N \\#1'.
+ has~ been~ overwritten~ by~ the~ key~ '#1 / size'~ \msg_line_context:.
}
\msg_new:nnn { fontscale } { font-sizes-out-of-order }
{
- The~ font~ sizes~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
+ The~ font~ sizes~ are~ not~ in~ the~ correct~ order~ \msg_line_context:. \\
The~ lengths~ of~ the~ font~ sizes~ should~ be~ ordered~ from~
- '\iow_char:N \\tiny'~ to~ '\iow_char:N \\Huge'.
- }
-\msg_new:nnn { fontscale } { font-baselineskips-out-of-order }
- {
- The~ font~ baselineskips~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
- The~ lengths~ of~ the~ font~ baselineskips~ should~ be~ ordered~ from~
- '\iow_char:N \\tiny'~ to~ '\iow_char:N \\Huge'.
+ \iow_char:N \\tiny~ to~ \iow_char:N \\Huge.
}
\msg_new:nnn { fontscale } { math-mode-warning }
- {
- '#1'~
- \msg_line_context: \c_space_tl
- does~ nothing~ if~ used~ in~ math~ mode.
- }
+ { '#1'~ does~ nothing~ if~ used~ in~ math~ mode~ \msg_line_context:. }
\msg_new:nnn { fontscale } { math-mode-error }
- {
- '#1'~
- \msg_line_context: \c_space_tl
- cannot~ be~ used~ in~ math~ mode.
- }
+ { '#1'~ cannot~ be~ used~ in~ math~ mode~ \msg_line_context:. }
\msg_new:nnn { fontscale } { font-size-out-of-bounds }
{
- The~ font~ size~
- \msg_line_context: \c_space_tl
- must~ be~ a~ positive~ length.
- }
-\msg_new:nnn { fontscale } { font-baselineskip-out-of-bounds }
- {
- The~ font~ baselineskip~
- \msg_line_context: \c_space_tl
- must~ be~ greater~ than~ or~ equal~ to~ the~ font~ size.
+ Invalid~ font~ size~ '#1'~ \msg_line_context:. \\
+ The~ font~ size~ must~ be~ a~ positive~ length.
}
\msg_new:nnn { fontscale } { font-step-out-of-bounds }
{
- The~ font~ step~
- \msg_line_context: \c_space_tl
- must~ equal~ an~ integer~ from~ -4~ to~ 5,~
- unless~ the~ value~ of~ the~ key~ 'typographic-scale'~ is~ 'musical'.~
- \msg_see_documentation_text:n { fontscale }
+ Invalid~ font~ step~ '#1'~ \msg_line_context:. \\
+ The~ font~ step~ must~ equal~ the~ font~ step~ of~
+ any~ font~ size~ command~ from~ \iow_char:N \\tiny~ to~ \iow_char:N \\Huge~
+ unless~ the~ value~ of~ the~ key~ 'typographic-scale'~ is~ 'musical'.
}
\msg_new:nnn { fontscale } { current-font-step-out-of-bounds }
{
- '\iow_char:N \\SetFontStep*'~
- \msg_line_context: \c_space_tl
- could~ not~ calculate~ the~ new~ font~ step~ because~
- the~ current~ font~ step~ is~ undefined.~
- \msg_see_documentation_text:n { fontscale }
+ The~ new~ font~ step~ could~ not~ be~ calculated~
+ because~ the~ current~ font~ step~ is~ undefined~ \msg_line_context:.
}
% DEFINE KEYS
@@ -349,6 +420,14 @@
, notes .int_set:N = \l__fontscale_musical_notes_int
, notes .value_required:n = true
}
+\keys_define:nn { fontscale / normalsize }
+ {
+ size .tl_set:N = \l__fontscale_normalsize_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
\keys_define:nn { fontscale / tiny }
{
scale .tl_set:N = \l__fontscale_tiny_scale_tl
@@ -393,14 +472,6 @@
, baselineskip .tl_set:N = \l__fontscale_small_baselineskip_tl
, baselineskip .value_required:n = true
}
-\keys_define:nn { fontscale / normalsize }
- {
- size .tl_set:N = \l__fontscale_normalsize_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
- , baselineskip .value_required:n = true
- }
\keys_define:nn { fontscale / large }
{
scale .tl_set:N = \l__fontscale_large_scale_tl
@@ -489,10 +560,9 @@
, Huge .value_required:n = true
}
-% INITIALIZE AND PRE-COMPILE KEYS
-
% Pre-compiles the keys with their initial values and then sets the keys to
-% their initial values. This is done by hand for speed.
+% their initial values. This is significantly faster than using .initial:n and
+% \keys_precompile:nnN.
\cs_new_protected:Npn \__fontscale_keys_set_initial:
{
\fp_set:Nn \l__fontscale_baselineskip_size_ratio_fp { 1.2 }
@@ -501,37 +571,41 @@
\fp_set:Nn \l__fontscale_musical_ratio_fp { 2 }
\int_set:Nn \l__fontscale_musical_notes_int { 5 }
- \tl_set:Nn \l__fontscale_tiny_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_scale_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_size_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_baselineskip_tl { \q_no_value }
+ \tl_map_inline:nn
+ {
+ \l__fontscale_tiny_scale_tl
+ \l__fontscale_scriptsize_scale_tl
+ \l__fontscale_footnotesize_scale_tl
+ \l__fontscale_small_scale_tl
+ \l__fontscale_large_scale_tl
+ \l__fontscale_Large_scale_tl
+ \l__fontscale_LARGE_scale_tl
+ \l__fontscale_huge_scale_tl
+ \l__fontscale_Huge_scale_tl
+
+ \l__fontscale_tiny_size_tl
+ \l__fontscale_scriptsize_size_tl
+ \l__fontscale_footnotesize_size_tl
+ \l__fontscale_small_size_tl
+ \l__fontscale_normalsize_size_tl
+ \l__fontscale_large_size_tl
+ \l__fontscale_Large_size_tl
+ \l__fontscale_LARGE_size_tl
+ \l__fontscale_huge_size_tl
+ \l__fontscale_Huge_size_tl
+
+ \l__fontscale_tiny_baselineskip_tl
+ \l__fontscale_scriptsize_baselineskip_tl
+ \l__fontscale_footnotesize_baselineskip_tl
+ \l__fontscale_small_baselineskip_tl
+ \l__fontscale_normalsize_baselineskip_tl
+ \l__fontscale_large_baselineskip_tl
+ \l__fontscale_Large_baselineskip_tl
+ \l__fontscale_LARGE_baselineskip_tl
+ \l__fontscale_huge_baselineskip_tl
+ \l__fontscale_Huge_baselineskip_tl
+ }
+ { \tl_set:Nn ##1 { \q_no_value } }
}
\__fontscale_keys_set_initial:
@@ -550,6 +624,8 @@
{ \__fontscale_keys_set:n {#2} }
}
}
+\cs_new_protected:Npn \__fontscale_keys_reset:n
+ { \__fontscale_keys_set_initial: \__fontscale_keys_set:n }
\cs_new_protected:Npn \__fontscale_keys_set:n #1
{
\keys_set:nn { fontscale } {#1}
@@ -558,8 +634,6 @@
\prg_break:
\prg_break_point:
}
-\cs_new_protected:Npn \__fontscale_keys_reset:n
- { \__fontscale_keys_set_initial: \__fontscale_keys_set:n }
\cs_new_protected:Npn \__fontscale_keys_process:
{
\__fontscale_keys_process_start:
@@ -569,29 +643,27 @@
}
\cs_new_protected:Npn \__fontscale_keys_process_start:
{
- \fp_compare:nNnT \l__fontscale_baselineskip_size_ratio_fp < \c_one_fp
- {
- \msg_error:nn { fontscale }
- { key-baselineskip-size-ratio-out-of-bounds }
- \prg_break:
- }
\dim_compare:nNnF \l__fontscale_musical_base_dim > \c_zero_dim
{
- \msg_error:nn { fontscale } { key-musical-base-out-of-bounds }
+ \msg_error:nnV { fontscale } { key-musical-base-out-of-bounds }
+ \l__fontscale_musical_base_dim
\prg_break:
}
\fp_compare:nNnF \l__fontscale_musical_ratio_fp > \c_one_fp
{
- \msg_error:nn { fontscale } { key-musical-ratio-out-of-bounds }
+ \msg_error:nne { fontscale } { key-musical-ratio-out-of-bounds }
+ { \fp_use:N \l__fontscale_musical_ratio_fp }
\prg_break:
}
\int_compare:nNnF \l__fontscale_musical_notes_int > 0
{
- \msg_error:nn { fontscale } { key-musical-notes-out-of-bounds }
+ \msg_error:nnV { fontscale } { key-musical-notes-out-of-bounds }
+ \l__fontscale_musical_notes_int
\prg_break:
}
}
-% Sets the font size and font baselineskip of \normalsize.
+% Sets the font size and font baselineskip of \normalsize. Its font size must
+% be set before doing any processing involving the font scale.
\cs_new_protected:Npn \__fontscale_keys_process_normalsize:
{
\quark_if_no_value:NTF \l__fontscale_normalsize_size_tl
@@ -612,8 +684,8 @@
{ \l__fontscale_normalsize_size_tl }
\dim_compare:nNnF \l_fontscale_normalsize_size_dim > \c_zero_dim
{
- \msg_error:nnn { fontscale } { key-font-size-out-of-bounds }
- { normalsize }
+ \msg_error:nnVn { fontscale } { key-font-size-out-of-bounds }
+ \l_fontscale_normalsize_size_dim { normalsize }
\prg_break:
}
}
@@ -634,13 +706,6 @@
\__fontscale_skip_set_default_pt:Nn
\l_fontscale_normalsize_baselineskip_skip
{ \l__fontscale_normalsize_baselineskip_tl }
- \dim_compare:nNnT \l_fontscale_normalsize_baselineskip_skip <
- \l_fontscale_normalsize_size_dim
- {
- \msg_error:nnn { fontscale }
- { key-font-baselineskip-out-of-bounds } { normalsize }
- \prg_break:
- }
}
}
% Auxiliary functions that expand to the font size depending on the name of the
@@ -728,6 +793,11 @@
{ \l__fontscale_musical_base_dim }
\fp_set:Nn \l__fontscale_musical_notes_fp
{ \l__fontscale_musical_notes_int }
+ \fp_set:Nn \l__fontscale_musical_selectfont_fp
+ {
+ \l__fontscale_musical_notes_fp
+ / ln ( \l__fontscale_musical_ratio_fp )
+ }
}
}
\tl_map_function:nN
@@ -753,8 +823,8 @@
{
\tl_map_break:n
{
- \msg_error:nnn { fontscale } { key-font-scale-out-of-bounds }
- {#1}
+ \msg_error:nnen { fontscale } { key-font-scale-out-of-bounds }
+ { \fp_eval:n { \use:c { l__fontscale_#1_scale_tl } } } {#1}
\prg_break:
}
}
@@ -768,8 +838,8 @@
{
\tl_map_break:n
{
- \msg_error:nnn { fontscale } { key-font-size-out-of-bounds }
- {#1}
+ \msg_error:nnvn { fontscale } { key-font-size-out-of-bounds }
+ { l_fontscale_#1_size_dim } {#1}
\prg_break:
}
}
@@ -783,37 +853,31 @@
{ \__fontscale_keys_process_other_fn_aux:n {#1} }
\prg_break:
\prg_break_point:
- \fp_set:cn { l_fontscale_#1_scale_fp }
- { \use:c { l_fontscale_#1_size_dim } / \l__fontscale_normalsize_size_fp }
\quark_if_no_value:cTF { l__fontscale_#1_baselineskip_tl }
{
+ \fp_set:Nn \l__fontscale_tmp_fp { \use:c { l_fontscale_#1_size_dim } }
+ \fp_set:cn { l_fontscale_#1_scale_fp }
+ { \l__fontscale_tmp_fp / \l__fontscale_normalsize_size_fp }
\skip_set:cn { l_fontscale_#1_baselineskip_skip }
{
\fp_to_dim:n
{
- \use:c { l_fontscale_#1_size_dim }
- * \l__fontscale_baselineskip_size_ratio_fp
+ \l__fontscale_tmp_fp * \l__fontscale_baselineskip_size_ratio_fp
}
}
}
{
+ \fp_set:cn { l_fontscale_#1_scale_fp }
+ {
+ \use:c { l_fontscale_#1_size_dim }
+ / \l__fontscale_normalsize_size_fp
+ }
\__fontscale_skip_set_default_pt:cn
{ l_fontscale_#1_baselineskip_skip }
{ \use:c { l__fontscale_#1_baselineskip_tl } }
- \dim_compare:nNnT { \use:c { l_fontscale_#1_baselineskip_skip } } <
- { \use:c { l_fontscale_#1_size_dim } }
- {
- \tl_map_break:n
- {
- \msg_error:nnn { fontscale }
- { key-font-baselineskip-out-of-bounds } {#1}
- \prg_break:
- }
- }
}
}
-% Issues a warning if the font sizes or font baselineskips (ignoring the
-% stretch and shrink components) are not in the correct order.
+% Issues a warning if the font sizes are not in the correct order.
\cs_new_protected:Npn \__fontscale_keys_process_check_order:
{
\dim_compare:nF
@@ -830,176 +894,170 @@
< \l_fontscale_Huge_size_dim
}
{ \msg_warning:nn { fontscale } { font-sizes-out-of-order } }
- \dim_compare:nF
- {
- \l_fontscale_tiny_baselineskip_skip
- < \l_fontscale_scriptsize_baselineskip_skip
- < \l_fontscale_footnotesize_baselineskip_skip
- < \l_fontscale_small_baselineskip_skip
- < \l_fontscale_normalsize_baselineskip_skip
- < \l_fontscale_large_baselineskip_skip
- < \l_fontscale_Large_baselineskip_skip
- < \l_fontscale_LARGE_baselineskip_skip
- < \l_fontscale_huge_baselineskip_skip
- < \l_fontscale_Huge_baselineskip_skip
- }
- { \msg_warning:nn { fontscale } { font-baselineskips-out-of-order } }
}
% DOCUMENT COMMANDS
% Defines the standard LaTeX font size commands from \tiny to \Huge and
-% initializes to \normalsize.
+% initializes to \normalsize. Their internal functions are not used elsewhere
+% in the code for compatibility with hooks such as
+% \AddToHook{cmd/<font size command>/after}{<code>}.
\DeclareDocumentCommand \tiny { }
{
- \__fontscale_fontsize:NNN \tiny \l_fontscale_tiny_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \tiny }
+ }
+ { \__fontscale_tiny: }
+ }
+\cs_new_protected:Npn \__fontscale_tiny:
+ {
+ \__fontscale_name:NNN \tiny \l_fontscale_tiny_size_dim
\l_fontscale_tiny_baselineskip_skip
}
\DeclareDocumentCommand \scriptsize { }
{
- \__fontscale_fontsize:NNN \scriptsize \l_fontscale_scriptsize_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \scriptsize }
+ }
+ { \__fontscale_scriptsize: }
+ }
+\cs_new_protected:Npn \__fontscale_scriptsize:
+ {
+ \__fontscale_name:NNN \scriptsize \l_fontscale_scriptsize_size_dim
\l_fontscale_scriptsize_baselineskip_skip
}
\DeclareDocumentCommand \footnotesize { }
{
- \__fontscale_fontsize:NNN \footnotesize \l_fontscale_footnotesize_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \footnotesize }
+ }
+ { \__fontscale_footnotesize: }
+ }
+\cs_new_protected:Npn \__fontscale_footnotesize:
+ {
+ \__fontscale_name:NNN \footnotesize \l_fontscale_footnotesize_size_dim
\l_fontscale_footnotesize_baselineskip_skip
}
\DeclareDocumentCommand \small { }
{
- \__fontscale_fontsize:NNN \small \l_fontscale_small_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \small }
+ }
+ { \__fontscale_small: }
+ }
+\cs_new_protected:Npn \__fontscale_small:
+ {
+ \__fontscale_name:NNN \small \l_fontscale_small_size_dim
\l_fontscale_small_baselineskip_skip
}
\DeclareDocumentCommand \normalsize { }
{
- \__fontscale_fontsize:NNN \normalsize \l_fontscale_normalsize_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \normalsize }
+ }
+ { \__fontscale_normalsize: }
+ }
+\cs_new_protected:Npn \__fontscale_normalsize:
+ {
+ \__fontscale_name:NNN \normalsize \l_fontscale_normalsize_size_dim
\l_fontscale_normalsize_baselineskip_skip
}
\DeclareDocumentCommand \large { }
{
- \__fontscale_fontsize:NNN \large \l_fontscale_large_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \large }
+ }
+ { \__fontscale_large: }
+ }
+\cs_new_protected:Npn \__fontscale_large:
+ {
+ \__fontscale_name:NNN \large \l_fontscale_large_size_dim
\l_fontscale_large_baselineskip_skip
}
\DeclareDocumentCommand \Large { }
{
- \__fontscale_fontsize:NNN \Large \l_fontscale_Large_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \Large }
+ }
+ { \__fontscale_Large: }
+ }
+\cs_new_protected:Npn \__fontscale_Large:
+ {
+ \__fontscale_name:NNN \Large \l_fontscale_Large_size_dim
\l_fontscale_Large_baselineskip_skip
}
\DeclareDocumentCommand \LARGE { }
{
- \__fontscale_fontsize:NNN \LARGE \l_fontscale_LARGE_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \LARGE }
+ }
+ { \__fontscale_LARGE: }
+ }
+\cs_new_protected:Npn \__fontscale_LARGE:
+ {
+ \__fontscale_name:NNN \LARGE \l_fontscale_LARGE_size_dim
\l_fontscale_LARGE_baselineskip_skip
}
\DeclareDocumentCommand \huge { }
{
- \__fontscale_fontsize:NNN \huge \l_fontscale_huge_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \huge }
+ }
+ { \__fontscale_huge: }
+ }
+\cs_new_protected:Npn \__fontscale_huge:
+ {
+ \__fontscale_name:NNN \huge \l_fontscale_huge_size_dim
\l_fontscale_huge_baselineskip_skip
}
\DeclareDocumentCommand \Huge { }
{
- \__fontscale_fontsize:NNN \Huge \l_fontscale_Huge_size_dim
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \Huge }
+ }
+ { \__fontscale_Huge: }
+ }
+\cs_new_protected:Npn \__fontscale_Huge:
+ {
+ \__fontscale_name:NNN \Huge \l_fontscale_Huge_size_dim
\l_fontscale_Huge_baselineskip_skip
}
\normalsize
\NewExpandableDocumentCommand \CurrentFontStep { } { \__fontscale_step: }
\cs_new:Npn \__fontscale_step:
- {
- \dim_case:nnF { \f@size pt }
- {
- { \l_fontscale_tiny_size_dim } { -4 }
- { \l_fontscale_scriptsize_size_dim } { -3 }
- { \l_fontscale_footnotesize_size_dim } { -2 }
- { \l_fontscale_small_size_dim } { -1 }
- { \l_fontscale_normalsize_size_dim } { 0 }
- { \l_fontscale_large_size_dim } { 1 }
- { \l_fontscale_Large_size_dim } { 2 }
- { \l_fontscale_LARGE_size_dim } { 3 }
- { \l_fontscale_huge_size_dim } { 4 }
- { \l_fontscale_Huge_size_dim } { 5 }
- }
- {
- \str_if_eq:VnT \l__fontscale_typographic_scale_str { musical }
- {
- \fp_eval:n
- {
- \l__fontscale_musical_notes_fp
- * ln ( \f@size / \l__fontscale_musical_base_fp )
- / ln ( \l__fontscale_musical_ratio_fp )
- }
- }
- }
- }
+ { \fp_if_nan:nF { \l_fontscale_step_fp } { \fp_use:N \l_fontscale_step_fp } }
\NewExpandableDocumentCommand \CurrentFontScale { } { \__fontscale_scale: }
-\cs_new:Npn \__fontscale_scale:
- { \fp_eval:n { \f@size / \l__fontscale_normalsize_size_fp } }
+\cs_new:Npn \__fontscale_scale: { \fp_use:N \l_fontscale_scale_fp }
\NewExpandableDocumentCommand \CurrentFontSize { } { \__fontscale_size: }
-\cs_new:Npn \__fontscale_size: { \f@size pt }
+\cs_new:Npn \__fontscale_size: { \dim_use:N \l_fontscale_size_dim }
\NewExpandableDocumentCommand \CurrentFontBaselineskip { }
{ \__fontscale_baselineskip: }
-\cs_new:Npn \__fontscale_baselineskip: { \f@baselineskip }
-
-\NewExpandableDocumentCommand \CurrentFontSizeCommand { }
- { \__fontscale_name: }
-\cs_new:Npn \__fontscale_name:
- {
- \dim_case:nn { \f@size pt }
- {
- { \l_fontscale_tiny_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_tiny_baselineskip_skip }
- { \f@baselineskip } { tiny }
- }
- { \l_fontscale_scriptsize_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_scriptsize_baselineskip_skip }
- { \f@baselineskip } { scriptsize }
- }
- { \l_fontscale_footnotesize_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_footnotesize_baselineskip_skip }
- { \f@baselineskip } { footnotesize }
- }
- { \l_fontscale_small_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_small_baselineskip_skip }
- { \f@baselineskip } { small }
- }
- { \l_fontscale_normalsize_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_normalsize_baselineskip_skip }
- { \f@baselineskip } { normalsize }
- }
- { \l_fontscale_large_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_large_baselineskip_skip }
- { \f@baselineskip } { large }
- }
- { \l_fontscale_Large_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_Large_baselineskip_skip }
- { \f@baselineskip } { Large }
- }
- { \l_fontscale_LARGE_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_LARGE_baselineskip_skip }
- { \f@baselineskip } { LARGE }
- }
- { \l_fontscale_huge_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_huge_baselineskip_skip }
- { \f@baselineskip } { huge }
- }
- { \l_fontscale_Huge_size_dim }
- {
- \skip_if_eq:nnT { \l_fontscale_Huge_baselineskip_skip }
- { \f@baselineskip } { Huge }
- }
- }
- }
+\cs_new:Npn \__fontscale_baselineskip:
+ { \skip_use:N \l_fontscale_baselineskip_skip }
\NewDocumentCommand \SetFontStep { s m }
{
@@ -1014,11 +1072,18 @@
{ \__fontscale_set_font_step:n {#2} }
}
}
+\cs_new_protected:Npn \__fontscale_add_font_step:n #1
+ {
+ \fp_if_nan:nTF { \l_fontscale_step_fp }
+ { \msg_error:nn { fontscale } { current-font-step-out-of-bounds } }
+ { \__fontscale_set_font_step:n { (#1) + \l_fontscale_step_fp } }
+ }
% Using \str_case: here is significantly faster (and easier to write) than
% repeatedly testing \fp_compare:.
\cs_new_protected:Npn \__fontscale_set_font_step:n #1
{
- \str_case:enF { \fp_eval:n {#1} }
+ \fp_set:Nn \l__fontscale_tmp_fp { round ( #1 , 5 ) }
+ \str_case:enF { \fp_use:N \l__fontscale_tmp_fp }
{
{ -4 } { \tiny }
{ -3 } { \scriptsize }
@@ -1034,27 +1099,22 @@
{
\str_if_eq:VnTF \l__fontscale_typographic_scale_str { musical }
{
- \__fontscale_fontsize:n
+ \__fontscale_set_font_size:n
{
\fp_to_dim:n
{
\l__fontscale_musical_base_fp
* \l__fontscale_musical_ratio_fp
- ^ ( (#1) / \l__fontscale_musical_notes_fp )
+ ^ ( \l__fontscale_tmp_fp / \l__fontscale_musical_notes_fp )
}
}
}
- { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
+ {
+ \msg_error:nne { fontscale } { font-step-out-of-bounds }
+ { \fp_use:N \l__fontscale_tmp_fp }
+ }
}
}
-\cs_new_protected:Npn \__fontscale_add_font_step:n #1
- {
- \tl_set:Ne \l__fontscale_tmp_tl { \__fontscale_step: }
- \tl_if_empty:NTF \l__fontscale_tmp_tl
- { \msg_error:nn { fontscale } { current-font-step-out-of-bounds } }
- { \__fontscale_add_font_step_aux:n { (#1) + \l__fontscale_tmp_tl } }
- }
-\cs_new_eq:NN \__fontscale_add_font_step_aux:n \__fontscale_set_font_step:n
\NewDocumentCommand \SetFontScale { s m }
{
@@ -1069,18 +1129,16 @@
{ \__fontscale_set_font_scale:n {#2} }
}
}
-\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
- {
- \__fontscale_fontsize:n
- { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) } }
- }
\cs_new_protected:Npn \__fontscale_add_font_scale:n #1
+ { \__fontscale_set_font_scale:n { (#1) + \l_fontscale_scale_fp } }
+\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
{
- \__fontscale_fontsize:n
- { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) + \f@size } }
+ \__fontscale_set_font_size:n
+ { \fp_to_dim:n { (#1) * \l__fontscale_normalsize_size_fp } }
}
-\NewDocumentCommand \SetFontSize { s m }
+\NewDocumentCommand \SetFontSize
+ { s >{ \__fontscale_arg_to_dim_default_pt:n } m }
{
\mode_if_math:TF
{
@@ -1093,12 +1151,8 @@
{ \__fontscale_set_font_size:n {#2} }
}
}
-\cs_new_eq:NN \__fontscale_set_font_size:n \__fontscale_fontsize:n
\cs_new_protected:Npn \__fontscale_add_font_size:n #1
- {
- \__fontscale_dim_set_default_pt:Nn \l__fontscale_tmp_dim {#1}
- \__fontscale_fontsize:n { \l__fontscale_tmp_dim + \f@size pt }
- }
+ { \__fontscale_set_font_size:n { (#1) + \l_fontscale_size_dim } }
\NewDocumentCommand \ScaleFont { m }
{
@@ -1112,25 +1166,48 @@
\cs_new_protected:Npn \__fontscale_scale_font:n #1
{
\fp_set:Nn \l__fontscale_tmp_fp {#1}
- \__fontscale_fontsize:nn
- { \fp_to_dim:n { \f@size * \l__fontscale_tmp_fp } }
+ \__fontscale_set_font_size:nn
+ { \fp_to_dim:n { \l__fontscale_tmp_fp * \l_fontscale_size_dim } }
{
- \fp_to_dim:n
- { \dim_to_fp:n { \f@baselineskip } * \l__fontscale_tmp_fp }
+ \fp_to_dim:n { \l__fontscale_tmp_fp * \l_fontscale_baselineskip_skip }
}
}
-\NewDocumentCommand \SetFontSizeBaselineskip { m m }
+\NewDocumentCommand \SetFontSizeBaselineskip
+ {
+ >{ \__fontscale_arg_to_dim_default_pt:n } m
+ >{ \__fontscale_arg_to_skip_default_pt:n } m
+ }
{
\mode_if_math:TF
{
\msg_warning:nne { fontscale } { math-mode-warning }
{ \token_to_str:N \SetFontSizeBaselineskip }
}
- { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
+ { \__fontscale_set_font_size:nn {#1} {#2} }
+ }
+
+\NewDocumentCommand \SetFontBaselineskip
+ { s >{ \__fontscale_arg_to_skip_default_pt:n } m }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontBaselineskip }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_baselineskip:n {#2} }
+ { \__fontscale_set_font_baselineskip:n {#2} }
+ }
}
-\cs_new_eq:NN \__fontscale_set_font_size_baselineskip:nn
- \__fontscale_fontsize:nn
+\cs_new_protected:Npn \__fontscale_add_font_baselineskip:n #1
+ {
+ \__fontscale_set_font_baselineskip:n
+ { (#1) + \l_fontscale_baselineskip_skip }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_baselineskip:n
+ { \__fontscale_set_font_size:nn { \l_fontscale_size_dim } }
\NewDocumentCommand \PrintFontSizeParameters { }
{ \__fontscale_print_font_size_parameters: }
@@ -1153,68 +1230,23 @@
}
\cs_new_protected:Npn \__fontscale_print_all_font_size_parameters:
{
- \token_to_str:N \tiny \c_colon_str \c_space_tl
- step ~=~ -4 ,~
- scale ~=~ \fp_use:N \l_fontscale_tiny_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_tiny_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_tiny_baselineskip_skip
- \newline
- \token_to_str:N \scriptsize \c_colon_str \c_space_tl
- step ~=~ -3 ,~
- scale ~=~ \fp_use:N \l_fontscale_scriptsize_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_scriptsize_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_scriptsize_baselineskip_skip
- \newline
- \token_to_str:N \footnotesize \c_colon_str \c_space_tl
- step ~=~ -2 ,~
- scale ~=~ \fp_use:N \l_fontscale_footnotesize_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_footnotesize_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_footnotesize_baselineskip_skip
- \newline
- \token_to_str:N \small \c_colon_str \c_space_tl
- step ~=~ -1 ,~
- scale ~=~ \fp_use:N \l_fontscale_small_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_small_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_small_baselineskip_skip
- \newline
- \token_to_str:N \normalsize \c_colon_str \c_space_tl
- step ~=~ 0 ,~
- scale ~=~ 1 ,~
- size ~=~ \dim_use:N \l_fontscale_normalsize_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_normalsize_baselineskip_skip
- \newline
- \token_to_str:N \large \c_colon_str \c_space_tl
- step ~=~ 1 ,~
- scale ~=~ \fp_use:N \l_fontscale_large_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_large_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_large_baselineskip_skip
- \newline
- \token_to_str:N \Large \c_colon_str \c_space_tl
- step ~=~ 2 ,~
- scale ~=~ \fp_use:N \l_fontscale_Large_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_Large_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_Large_baselineskip_skip
- \newline
- \token_to_str:N \LARGE \@ \c_colon_str \c_space_tl
- step ~=~ 3 ,~
- scale ~=~ \fp_use:N \l_fontscale_LARGE_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_LARGE_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_LARGE_baselineskip_skip
- \newline
- \token_to_str:N \huge \c_colon_str \c_space_tl
- step ~=~ 4 ,~
- scale ~=~ \fp_use:N \l_fontscale_huge_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_huge_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_huge_baselineskip_skip
- \newline
- \token_to_str:N \Huge \c_colon_str \c_space_tl
- step ~=~ 5 ,~
- scale ~=~ \fp_use:N \l_fontscale_Huge_scale_fp ,~
- size ~=~ \dim_use:N \l_fontscale_Huge_size_dim ,~
- baselineskip ~=~ \skip_use:N \l_fontscale_Huge_baselineskip_skip
- }
-
-\NewDocumentCommand \PrintSampleText { s +m }
+ \tl_map_inline:nn
+ {
+ {tiny} {scriptsize} {footnotesize} {small} {normalsize}
+ {large} {Large} {LARGE} {huge} {Huge}
+ }
+ {
+ \token_to_str:c {##1} \@ \c_colon_str \c_space_tl
+ step~ =~ \fp_use:c { c_fontscale_##1_step_fp } ,~
+ scale~ =~ \str_if_eq:nnTF {##1} { normalsize }
+ { 1 } { \fp_use:c { l_fontscale_##1_scale_fp } } ,~
+ size~ =~ \dim_use:c { l_fontscale_##1_size_dim } ,~
+ baselineskip~ =~ \skip_use:c { l_fontscale_##1_baselineskip_skip }
+ \str_if_eq:nnF {##1} { Huge } { \newline }
+ }
+ }
+
+\NewDocumentCommand \PrintSampleText { >{ \ReverseBoolean } s +m }
{
\mode_if_math:TF
{
@@ -1223,35 +1255,31 @@
}
{
\IfBooleanTF #1
- { \__fontscale_print_sample_text_descending_order:n {#2} }
{ \__fontscale_print_sample_text_ascending_order:n {#2} }
+ { \__fontscale_print_sample_text_descending_order:n {#2} }
}
}
\cs_new_protected:Npn \__fontscale_print_sample_text_ascending_order:n #1
{
- { \tiny #1 \par }
- { \scriptsize #1 \par }
- { \footnotesize #1 \par }
- { \small #1 \par }
- { \normalsize #1 \par }
- { \large #1 \par }
- { \Large #1 \par }
- { \LARGE #1 \par }
- { \huge #1 \par }
- { \Huge #1 \par }
+ \group_begin:
+ \tl_map_inline:nn
+ {
+ \tiny \scriptsize \footnotesize \small \normalsize
+ \large \Large \LARGE \huge \Huge
+ }
+ { ##1 #1 \par }
+ \group_end:
}
\cs_new_protected:Npn \__fontscale_print_sample_text_descending_order:n #1
{
- { \Huge #1 \par }
- { \huge #1 \par }
- { \LARGE #1 \par }
- { \Large #1 \par }
- { \large #1 \par }
- { \normalsize #1 \par }
- { \small #1 \par }
- { \footnotesize #1 \par }
- { \scriptsize #1 \par }
- { \tiny #1 \par }
+ \group_begin:
+ \tl_map_inline:nn
+ {
+ \Huge \huge \LARGE \Large \large
+ \normalsize \small \footnotesize \scriptsize \tiny
+ }
+ { ##1 #1 \par }
+ \group_end:
}
\NewDocumentCommand \PrintFontSizeCommand { }
@@ -1265,31 +1293,37 @@
}
\cs_new_protected:Npn \__fontscale_print_name:
{
- \str_set:Ne \l__fontscale_tmp_str { \__fontscale_name: }
- \str_if_empty:NTF \l__fontscale_tmp_str
- { \token_to_str:N \undefined }
- { \c_backslash_str \l__fontscale_tmp_str \@ }
+ \token_to_str:c
+ {
+ \dim_case:nnF { \l_fontscale_size_dim }
+ {
+ { \l_fontscale_tiny_size_dim } { tiny }
+ { \l_fontscale_scriptsize_size_dim } { scriptsize }
+ { \l_fontscale_footnotesize_size_dim } { footnotesize }
+ { \l_fontscale_small_size_dim } { small }
+ { \l_fontscale_normalsize_size_dim } { normalsize }
+ { \l_fontscale_large_size_dim } { large }
+ { \l_fontscale_Large_size_dim } { Large }
+ { \l_fontscale_LARGE_size_dim } { LARGE }
+ { \l_fontscale_huge_size_dim } { huge }
+ { \l_fontscale_Huge_size_dim } { Huge }
+ }
+ { undefined }
+ }
+ \@
}
% TEXT PURIFY
-\cs_new:Npn \__fontscale_remove_arg_spec_sm:n #1
+\NewExpandableDocumentCommand \__fontscale_use_none_sm:w { s m } { }
+\tl_map_inline:nn
{
- \bool_lazy_all:nT
- {
- { \tl_if_single_p:n {#1} }
- { \tl_if_single_token_p:n #1 }
- { \token_if_eq_meaning_p:NN #1 * }
- }
- { \use_none:n }
- }
-\text_declare_purify_equivalent:Nn \fontscalesetup
- { \__fontscale_remove_arg_spec_sm:n }
-\text_declare_purify_equivalent:Nn \SetFontStep
- { \__fontscale_remove_arg_spec_sm:n }
-\text_declare_purify_equivalent:Nn \SetFontScale
- { \__fontscale_remove_arg_spec_sm:n }
-\text_declare_purify_equivalent:Nn \SetFontSize
- { \__fontscale_remove_arg_spec_sm:n }
+ \fontscalesetup
+ \SetFontStep
+ \SetFontScale
+ \SetFontSize
+ \SetFontBaselineskip
+ }
+ { \text_declare_purify_equivalent:Nn #1 { \__fontscale_use_none_sm:w } }
\text_declare_purify_equivalent:Nn \ScaleFont { \use_none:n }
\text_declare_purify_equivalent:Nn \SetFontSizeBaselineskip { \use_none:nn } \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale.tex b/macros/latex/contrib/fontscale/fontscale.tex
index 3737afe5b6..3c755467cf 100644
--- a/macros/latex/contrib/fontscale/fontscale.tex
+++ b/macros/latex/contrib/fontscale/fontscale.tex
@@ -14,7 +14,7 @@ A flexible interface for setting font sizes
Oliver Beery
-Version 2.1.0\quad{}12 August 2024
+Version 3.0.1\quad{}20 October 2024
\section{Introduction}
@@ -32,11 +32,11 @@ Version 2.1.0\quad{}12 August 2024
\item
Set the font sizes and font baselineskips of the standard \LaTeX{} font size commands mid\-/document or within a local group (\S\ref{subsec:fontscalesetup}).
\item
- Provides expandable commands that expand to the current font step, font scale, font size, font baselineskip, or font size command (\S\ref{subsec:expandable}).
+ Provides expandable commands that expand to the current font step, font scale, font size, or font baselineskip (\S\ref{subsec:expandable}).
\item
Provides additional font size commands, including setting the font size by setting the font step or font scale and setting the font size relative to the current font size using more powerful tools than the \pkg{scalefnt} and \pkg{relsize} packages (\S\ref{subsec:fontsize}).
\item
- For \LaTeX3 programmers, this package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge} (\S\ref{sec:programming}).
+ For \LaTeX3 programmers, this package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge} and the current font step, font scale, font size, and font baselineskip (\S\ref{subsec:publicvariables}).
\end{itemize}
\subsection{Loading the package}
@@ -60,10 +60,10 @@ Instead, this package provides the command \cs{fontscalesetup}\marg{key\-/value
When loaded, this package uses \cs{normalsize} after defining and initializing the font size commands from \cs{tiny} to \cs{Huge}.
-Many \LaTeX{} document classes have a font size option (e.g.\@ \Key{10pt}, \Key{11pt}, \Key{12pt}) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
+Many \LaTeX{} document classes have a font size option (e.g.\ \Key{10pt}, \Key{11pt}, \Key{12pt}) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
For this reason, you may want to set the document class font size option close to the font size of \cs{normalsize} set by this package.
-\listheading{Internally, this package defines each font size command from \cs{tiny} to \cs{Huge} using the low\-/level font commands \cs{fontsize} and \cs{selectfont}\---they have no additional functionality beyond that of \cs{fontsize} and \cs{selectfont}, except that they:}
+\listheading{This package defines each font size command from \cs{tiny} to \cs{Huge} using the low\-/level font commands \cs{fontsize} and \cs{selectfont}\---they have no additional functionality beyond that of \cs{fontsize} and \cs{selectfont}, except that they:}
\begin{itemize}
\item
Set the kernel command \cs{@currsize} equal to the font size command.
@@ -101,12 +101,18 @@ This syntax has the same representation as the arguments to \cs{fpeval}, \cs{int
This section documents the keys provided by the \pkg{fontscale} package.
This package has no package options.
-Set the package keys using \cs{fontscalesetup}\marg{key-value list} (\S\ref{subsec:fontscalesetup}).
+Set the package keys using \cs{fontscalesetup}\marg{key\-/value list} (\S\ref{subsec:fontscalesetup}).
-\subsection{The typographic scale}
+\subsection
+ {%
+ The key
+ \texorpdfstring
+ {\texttt{typographic-scale}}
+ {typographic-scale}%
+ }
\label{subsec:typographicscale}
-The font sizes of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{typographic\-/scale}.
+The font sizes of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{typographic-scale}.
\Key{typographic-scale}
[%
@@ -125,30 +131,30 @@ The font sizes of the font size commands from \cs{tiny} to \cs{Huge} are initial
\nopagebreak\newline
\Key{musical}
-The value of the key \Key{typographic\-/scale} must be \Value{classic\-/10pt}, \Value{classic\-/11pt}, \Value{classic\-/12pt}, or \Value{musical}.
-The initial value is \Value{classic\-/10pt}.
+The value of the key \Key{typographic-scale} must be \Value{classic-10pt}, \Value{classic-11pt}, \Value{classic-12pt}, or \Value{musical}.
+The initial value is \Value{classic-10pt}.
Sets the font size of each font size command from \cs{tiny} to \cs{Huge} using a classic or musical typographic scale.
These are common methods of choosing a set of document font sizes.
-The keys \Key{classic\-/10pt}, \Key{classic\-/11pt}, \Key{classic\-/12pt}, and \Key{musical} set the key \Key{typographic\-/scale} to the corresponding value.
-
-\input{./fontscale-table-classic.tex}
+The keys \Key{classic-10pt}, \Key{classic-11pt}, \Key{classic-12pt}, and \Key{musical} set the key \Key{typographic-scale} to the corresponding value.
The classic typographic scale consists of the traditional font sizes
\numlist{6;7;8;9;10;11;12;14;16;18;21;24;36;48;60;72}.%
\footnote{See \S3.1 of \textit{The Elements of Typographic Style} by Robert Bringhurst.}
They have been used since the sixteenth century and are the default font sizes on most computer software.
-Setting the value of the key \Key{typographic\-/scale} to \Key{classic\-/10pt}, \Key{classic\-/11pt}, or \Key{classic\-/12pt} sets the font size of each font size command from \cs{tiny} to \cs{Huge} to values based on their position in the classic typographic scale.
+Setting the value of the key \Key{typographic-scale} to \Key{classic-10pt}, \Key{classic-11pt}, or \Key{classic-12pt} sets the font size of each font size command from \cs{tiny} to \cs{Huge} to values based on their position in the classic typographic scale.
The named point size\---\qtylist[list-final-separator={, or }]{10;11;12}{pt}\---is the font size of \cs{normalsize}.
The font sizes of the other font size commands are the adjacent font sizes in the classic typographic scale.
Table~\ref{table:classic} displays the font size of each font size command when using a classic typographic scale.
+\input{./fontscale-table-classic.tex}
+
\Key{musical/base}[\meta{dimen expression}][10pt]%
\nopagebreak\newline
\Key{musical/ratio}[\meta{floating point expression}][2]%
\nopagebreak\newline
\Key{musical/notes}[\meta{integer expression}][5]
-The key \Key{typographic\-/scale}[musical] sets the font size of each font size command from \cs{tiny} to \cs{Huge} using a musical typographic scale.
+The key \Key{typographic-scale}[musical] sets the font size of each font size command from \cs{tiny} to \cs{Huge} using a musical typographic scale.
The font sizes are calculated using the formula:%
\footnote
{%
@@ -172,54 +178,63 @@ Table~\ref{table:musical} displays the font size of each font size command when
\input{./fontscale-table-musical.tex}
-\subsection{The baselineskip-size-ratio}
+\subsection
+ {%
+ The key
+ \texorpdfstring
+ {\texttt{baselineskip-size-ratio}}
+ {baselineskip-size-ratio}%
+ }
\label{subsec:baselineskipsizeratio}
-The font baselineskips of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{baselineskip\-/size\-/ratio}.
+The font baselineskips of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{baselineskip-size-ratio}.
\Key{baselineskip-size-ratio}[\meta{floating point expression}][1.2]
\KeepNextPar*
Sets the font baselineskip of each font size command from \cs{tiny} to \cs{Huge} equal to its font size \texttimes{} the result of computing the \meta{floating point expression}.
-Sets the font baselineskip set by \cs{SetFontStep}, \cs{SetFontScale}, and \cs{SetFontSize} (\S\ref{subsec:fontsize}) equal to the new font size \texttimes{} the result of computing the \meta{floating point expression}.
-The font baselineskip must be greater than or equal to the font size.
+Sets the font baselineskip set by \cs{SetFontStep}, \cs{SetFontScale}, and \cs{SetFontSize} equal to the new font size \texttimes{} the result of computing the \meta{floating point expression} (\S\ref{subsec:fontsize}).
\subsection{Overwriting the previous keys}
\label{subsec:overwriting}
This subsection documents keys for directly setting the font scales, font sizes, and font baselineskips of the font size commands from \cs{tiny} to \cs{Huge}.
-When doing so, the user should take care to ensure that the lengths of the font sizes and font baselineskips remain correctly ordered from \cs{tiny} to \cs{Huge}.
+
+The user should take care to ensure that the lengths of the font sizes remain correctly ordered from \cs{tiny} to \cs{Huge}.
This is important for typographic and syntactic consistency.
-If the font size commands are in the wrong order, this package will issue a warning and some package features may not work correctly.
+If the font sizes are in the wrong order, \cs{fontscalesetup} will issue a warning and some package features may not work correctly.
\Key{\meta{font size command}/scale}[\meta{floating point expression}][\meta{not set}]
\KeepNextPar*
Sets the font size of \meta{font size command} by setting its font scale to the result of computing the \meta{floating point expression}.
-Overwrites the font size set by the key \Key{typographic\-/scale}.
+Overwrites the font size set by the key \Key{typographic-scale}.
The key \Key{normalsize\slash{}scale} is not defined.
\Key{\meta{font size command}/size}[\meta{dimen expression}][\meta{not set}]
\KeepNextPar*
Sets the font size of \meta{font size command} to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
-Overwrites the font size set by the keys \Key{typographic\-/scale} and \Key{\meta{font size command}\slash{}scale}.
+Overwrites the font size set by the keys \Key{typographic-scale} and \Key{\meta{font size command}\slash{}scale}.
\Key{\meta{font size command}/baselineskip}[\meta{skip expression}][\meta{not set}]
\KeepNextPar*
Sets the font baselineskip of \meta{font size command} to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
-The font baselineskip must be greater than or equal to the font size.
-Overwrites the font baselineskip set by the key \Key{baselineskip\-/size\-/ratio}.
+Overwrites the font baselineskip set by the key \Key{baselineskip-size-ratio}.
\Key{\meta{font size command}}[\meta{dimen expression}]
\nopagebreak\newline
\Key{\meta{font size command}}[\meta{dimen expression}/\meta{skip expression}]
-Sets the keys \Key{\meta{font size command}\slash{}size}[\meta{dimen expression}] or \Key{\meta{font size command}\slash{}baselineskip}[\meta{skip expression}] in a condensed format.
-The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, \num{10}/\num{12} or \num{11}/\num{13}.
-The number before\slash{}after the slash is the size\slash{}leading in units of \unit{pt}.
+Sets the keys \Key{\meta{font size command}\slash{}size}[\meta{dimen expression}] or \Key{\meta{font size command}\slash{}baselineskip}[\meta{skip expression}] in a condensed format.%
+\footnote
+ {%
+ The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, \num{10}/\num{12} or \num{11}/\num{13}.
+ The number before\slash{}after the slash is the size\slash{}leading in units of \unit{pt}.%
+ }
+A \enquote{\texttt{/}} contained within a brace group will not be treated as the delimiter.
\section{Commands}
@@ -235,13 +250,13 @@ This section documents the commands provided by the \pkg{fontscale} package.
Sets and processes the \pkg{fontscale} package keys (\S\ref{sec:keys}) in \meta{key\-/value list} and then uses \cs{normalsize}.
Adding the optional star first resets all the \pkg{fontscale} package keys to their initial values.
-The order of the keys in \meta{key\-/value list} does not matter.
+The order of the keys in \meta{key\-/value list} does not affect how the keys are processed (unless a key is set more than once).
Can be used mid\-/document.
The effect is local to the current group.
Does nothing, except issue a warning, if used in math mode.
\cs{fontscalesetup} should typically be used only once in the preamble or omitted if the user is satisfied with the initial font sizes and font baselineskips.
-\subsection{Expandable commands}
+\subsection{Expandable font size parameters}
\label{subsec:expandable}
\cs{CurrentFontStep}
@@ -254,28 +269,13 @@ Does nothing, except issue a warning, if used in math mode.
This package provides expandable commands that expand to the current font step, font scale, font size, or font baselineskip.
They can be used for printing or within calculations.
+These commands do not rely on the current definition of the kernel commands \cs{f@size} and \cs{f@baselineskip}; instead, they rely on public \pkg{expl3} variables that are set in the \texttt{selectfont} hook (\S\ref{subsec:publicvariables}).
For clarity, \cs{CurrentFontStep} will be explained in detail.
-\cs{CurrentFontStep} initially tests if the current font size equals the font size of any font size command from \cs{tiny} to \cs{Huge}.
-If so, it expands to the font step of that font size command (Table~\ref{table:fontsteps}).
-If not and if the value of the key \Key{typographic\-/scale} is \Value{musical}, \cs{CurrentFontStep} expands to the current font step calculated from the musical typographic scale (Equation~\ref{eq:musical}).
+If the current font size equals the font size of any font size command from \cs{tiny} to \cs{Huge}, then \cs{CurrentFontStep} expands to the font step of that font size command (Table~\ref{table:fontsteps}).
+If not and if the value of the key \Key{typographic-scale} is \Value{musical}, \cs{CurrentFontStep} expands to the font step calculated from the musical typographic scale (Equation~\ref{eq:musical}).
Otherwise, the current font step is undefined and \cs{CurrentFontStep} expands to nothing.
-Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} rely on the kernel command \cs{f@size}.
-(\cs{f@size} stores the current font size in units of \unit{pt}, omitting the unit.)
-The low\-/level font command \cs{fontsize}\marg{dimen}\marg{skip} sets \cs{f@size} to the new font size before expanding its second argument.
-This means that, if used in \meta{skip}, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} will expand to the new value\---unless they are first expanded.
-This package provides \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}).
-
-\cs{CurrentFontSizeCommand}
-\KeepNextPar*
-
-Tests if the current font size and current font baselineskip equal the font size and font baselineskip, respectively, of any font size command from \cs{tiny} to \cs{Huge}.
-If so, expands to the name of that font size command.
-This omits the backslash character and leaves only letters with catcode \num{11}.
-If not, expands to nothing.
-This package also provides a similar command \cs{PrintFontSizeCommand} (\S\ref{subsec:debug}), which is not expandable and includes the backslash character.
-
\subsection{More font size commands}
\label{subsec:fontsize}
@@ -286,16 +286,18 @@ Users should prefer the standard \LaTeX{} font size commands from \cs{tiny} to \
\KeepNextPar*
Sets the font size by setting the font step to the result of computing the \meta{floating point expression}.
-Adding the optional star instead increases the current font step by the result of computing the \meta{floating point expression} or issues an error if the current font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
-Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+Adding the optional star instead sets the font step equal to the current font step + the result of computing the \meta{floating point expression}.
+The font step is rounded to \num{5} decimal places.
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip-size-ratio}.
\listheading{Three exceptions:}
\begin{itemize}
\item
- The font step must equal the font step of any font size command from \cs{tiny} to \cs{Huge} (Table~\ref{table:fontsteps}) unless the value of the key \Key{typographic\-/scale} is \Value{musical}.
- \cs{SetFontStep} will issue an error if the font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+ If the font step equals the font step of any font size command from \cs{tiny} to \cs{Huge} (Table~\ref{table:fontsteps}), then that font size command will be used directly.
\item
- If the font step equals the font step of any font size command from \cs{tiny} to \cs{Huge}, then that font size command will be used directly.
+ \cs{SetFontStep} will issue an error if the font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+ The font step must equal the font step of any font size command from \cs{tiny} to \cs{Huge} unless the value of the key \Key{typographic-scale} is \Value{musical}.
+ \cs{SetFontStep*} will always issue an error if the current font step is undefined.
\item
Does nothing, except issue a warning, if used in math mode.
\end{itemize}
@@ -304,16 +306,16 @@ Sets the font baselineskip equal to the new font size \texttimes{} the value of
\KeepNextPar*
Sets the font size by setting the font scale to the result of computing the \meta{floating point expression}.
-Adding the optional star instead increases the current font scale by the result of computing the \meta{floating point expression}.
-Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+Adding the optional star instead sets the font scale equal to the current font scale + the result of computing the \meta{floating point expression}.
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip-size-ratio}.
Does nothing, except issue a warning, if used in math mode.
\cs{SetFontSize} \sarg{} \marg{dimen expression}
\KeepNextPar*
Sets the font size to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
-Adding the optional star instead increases the current font size by the result of \meta{dimen expression}, appending a default unit of \unit{pt}.
-Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+Adding the optional star instead sets the font size equal to the current font size + the result of \meta{dimen expression}, appending a default unit of \unit{pt}.
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip-size-ratio}.
Does nothing, except issue a warning, if used in math mode.
\cs{ScaleFont} \marg{floating point expression}
@@ -328,9 +330,18 @@ Does nothing, except issue a warning, if used in math mode.
Sets the font size to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
Sets the font baselineskip to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
-The font baselineskip must be greater than or equal to the font size.
Does nothing, except issue a warning, if used in math mode.
-Can be used as an alternative to \cs{fontsize} + \cs{selectfont} as discussed in \S\ref{subsec:expandable}.
+
+\subsection{Setting only the font baselineskip}
+\label{subsec:setfontbaselineskip}
+
+\cs{SetFontBaselineskip} \sarg{} \marg{skip expression}
+\KeepNextPar*
+
+Sets the font baselineskip to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
+Adding the optional star instead sets the font baselineskip equal to the current font baselineskip + the result of \meta{skip expression}, appending a default unit of \unit{pt}.
+Does not change the font size.
+Does nothing, except issue a warning, if used in math mode.
\subsection{Testing and debugging}
\label{subsec:debug}
@@ -355,15 +366,14 @@ Prints the font step, font scale, font size, and font baselineskip of each font
Prints \meta{text} in each font size ordered from \cs{tiny} to \cs{Huge} each followed by a paragraph break.
\meta{text} can contain \cs{par} tokens.
Adding the optional star reverses the order of the font sizes.
-One useful way of printing example text is \cs{PrintSampleText}\allowbreak\texttt{\{\cs{PrintFontSizeCommand}:\allowbreak\textvisiblespace\allowbreak\cs{PrintFontSizeParameters}\}}.
+One useful way of printing sample text is \cs{PrintSampleText}\allowbreak\texttt{\{\cs{PrintFontSizeCommand}:\allowbreak\textvisiblespace\allowbreak\cs{PrintFontSizeParameters}\}}.
\cs{PrintFontSizeCommand}
\KeepNextPar*
-Tests if the current font size and current font baselineskip equal the font size and font baselineskip, respectively, of any font size command from \cs{tiny} to \cs{Huge}.
+Tests if the current font size equals the font size of any font size command from \cs{tiny} to \cs{Huge}.
If so, prints the name of that font size command, including the backslash character.
If not, prints \enquote{\string\undefined}.
-This package also provides a similar command \cs{CurrentFontSizeCommand} (\S\ref{subsec:expandable}), which is expandable and omits the backslash character.
\section{Programming}
@@ -380,18 +390,15 @@ This section documents the \pkg{expl3} programming support provided by the \pkg{
}
\label{subsec:textpurify}
-\cs{text_purify:n} will correctly remove the formatting commands defined by this package, including \cs{fontscalesetup} and the commands documented in \S\ref{subsec:fontsize}.
+\cs{text_purify:n} will correctly remove the formatting commands defined by this package, including the commands documented in \S\ref{subsec:fontscalesetup}, \S\ref{subsec:fontsize}, and \S\ref{subsec:setfontbaselineskip}.
-\subsection{Public functions and variables}
-\label{subsec:publicexpl3}
+\subsection{Public functions}
+\label{subsec:publicfunctions}
This package does not define any public \pkg{expl3} functions.
-This package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}.
-These variables should never be modified directly.
-Their values should be changed only by \cs{fontscalesetup}.
-
-Each takes the form:
+\subsection{Public variables}
+\label{subsec:publicvariables}
\verb|\c_fontscale_|\meta{font size command}\verb|_step_fp|
\nopagebreak\newline
@@ -401,9 +408,25 @@ Each takes the form:
\nopagebreak\newline
\verb|\l_fontscale_|\meta{font size command}\verb|_baselineskip_skip|
+Stores the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}.
Exception:
\cs{l_fontscale_normalsize_scale_fp} is not defined.
The font scale of \cs{normalsize} is stored in \cs{c_fontscale_normalsize_scale_fp}.
+These variables, excluding the constants, are set by \cs{fontscalesetup}.
+They should never be modified directly.
+
+\cs{l_fontscale_step_fp}
+\nopagebreak\newline
+\cs{l_fontscale_scale_fp}
+\newline
+\cs{l_fontscale_size_dim}
+\nopagebreak\newline
+\cs{l_fontscale_baselineskip_skip}
+
+Stores the current font step, font scale, font size, and font baselineskip.
+\cs{l_fontscale_step_fp} equals \texttt{nan} (not a number) if the current font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+These variables are set in the \texttt{selectfont} hook.
+They should never be modified directly.
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/framedsyntax/FramedSyntax.dtx b/macros/latex/contrib/framedsyntax/FramedSyntax.dtx
new file mode 100644
index 0000000000..7a7fba17b3
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/FramedSyntax.dtx
@@ -0,0 +1,930 @@
+% \iffalse
+% !TEX encoding = UTF-8 Unicode
+%<*internal>
+\begingroup
+\input docstrip.tex
+\keepsilent
+\preamble
+
+ Copyright (C) 2024 Claudio Beccari all rights reserved.
+
+ Distributable under the LaTeX Project Public License,
+ version 1.3c or higher (your choice). The latest version of
+ this license is at: http://www.latex-project.org/lppl.txt
+
+\endpreamble
+\postamble
+This Work has the status of `maintained'
+
+The Current Maintainer is Claudio Beccari
+
+This work consists of this file FramedSyntax.dtx,
+and the derived files FramedSyntax.sty and FramedSyntax.pdf.
+\endpostamble
+
+\askforoverwritefalse
+
+\generate{\file{FramedSyntax.sty}{\from{FramedSyntax.dtx}{package}}}
+
+\def\tmpa{plain}
+\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
+\endgroup
+%</internal>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{FramedSyntax.dtx}%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2019/01/01]
+%<package>\ProvidesPackage{FramedSyntax}%
+ [2024-09-04 v.0.2.8 Typeset command syntax within a special frame]
+%<*driver>
+\documentclass{ltxdoc}\errorcontextlines=100
+\hfuzz 10pt
+\usepackage[utf8]{inputenc}% not really necessary
+\usepackage{lmodern}% scalable fonts
+\usepackage{mflogo}
+\usepackage{multicol, amsmath, fancyvrb, graphicx, verbatim}
+\usepackage{etoolbox, enumitem, xspace, xcolor, FramedSyntax
+}
+%
+\providecommand*\diff{\mathop{}\!\mathrm{d}}
+\providecommand\file{}
+\renewcommand*\file[1]{{\normalfont\texttt{#1}}}
+\providecommand\prog{}
+\renewcommand*\prog[1]{{\normalfont\texttt{#1}}}
+\providecommand\conta{}
+\renewcommand*\conta[1]{\texttt{\slshape#1}}
+\providecommand\cs{}
+\renewcommand\cs[1]{{\normalfont\texttt{\char92#1}}}
+\renewcommand\meta[1]{{\normalfont\textlangle\textit{#1}\textrangle}}
+\renewcommand\marg[1]{\texttt{\{\meta{#1}\}}}
+\providecommand\Marg{}
+\renewcommand*\Marg[1]{\texttt{\{#1\}}}
+\providecommand\oarg{}
+\renewcommand*\oarg[1]{\texttt{[\meta{#1}]}}
+\providecommand\Oarg{}
+\renewcommand*\Oarg[1]{\texttt{[#1]}}
+\providecommand\aarg{}
+\renewcommand*\aarg[1]{\texttt{<\meta{#1}>}}
+\providecommand\Aarg{}
+\renewcommand*\Aarg[1]{\texttt{<#1>}}
+\providecommand\parg{}
+\renewcommand*\parg[1]{\texttt{(\meta{#1})}}
+\providecommand\Parg{}
+\renewcommand*\Parg[1]{\texttt{(#1)}}
+\providecommand\pack{}
+\renewcommand*\pack[1]{{\textsf{#1}}}
+\let\class\pack
+\providecommand\opt{}
+\renewcommand*\opt[1]{{\normalfont\textsl{#1}}}\let\opz\opt
+\providecommand\env{}
+\renewcommand*\env[1]{{\normalfont\textit{\bfseries#1}}}\let\amb\env
+
+\providecommand\TB{\mbox{\normalfont\slshape TUGboat}\xspace}
+
+\definecolor{verdeguit}{rgb}{0, 0.40, 0}
+\def\GuIT{\mbox{\color{verdeguit}\def\I{\textcolor{black}{I}}%
+ \fontfamily{lmr}\fontseries{m}\fontshape{sc}\selectfont
+g\raisebox{-0.715ex}{\kern-0.26em u}\kern-0.13em\I\kern-0.14em t}\xspace}
+\RequirePackage{etoolbox}
+
+\makeatletter
+
+\AfterEndPreamble{%
+\DeclareRobustCommand{\TeX}{T\kern-.1667em
+ \lower.5ex\hbox{E}\kern-.125emX\@\xspace}% \TeX
+\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em\TeX
+ }%
+\DeclareRobustCommand{\LaTeXe}{L\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em\TeX\kern-0.3em$_{\textstyle\mathrm{2e}}$
+ }%
+}
+\makeatother
+
+\DeclareRobustCommand*\TeXLive{\TeX\ Live\xspace}
+\DeclareRobustCommand*\MikTeX{Mik\TeX}
+\DeclareRobustCommand*\MacTeX{Mac\TeX}
+\DeclareRobustCommand*\pdfLaTeX{pdf\/\LaTeX}
+\DeclareRobustCommand*\LuaLaTeX{Lua\LaTeX}
+\DeclareRobustCommand*\XeLaTeX{X\ifdim\fontdimen1\font=0pt
+ \kern-0.15em\fi\lower.5ex\hbox{\rotatebox[origin=c]{180}{E}}%
+ \ifdim\fontdimen1\font=0pt\kern-0.15em\else\kern-0.275em\fi
+ \LaTeX}
+\DeclareRobustCommand*\TikZ{Ti\emph{k}Z\xspace}
+
+%\unless\ifcsname Gr@phGrid\endcsname
+%\let\originalGraphGrid\GraphGrid
+%\RenewDocumentCommand\GraphGrid{r() d()}{%
+%\IfValueTF{#1}{\put(#1){\originalGraphGrid(#2)}}%
+% {\put(0,0){\originalGraphGrid(#2)}}}\fi
+
+\begin{document}\errorcontextlines=100
+\GetFileInfo{FramedSyntax.dtx}
+\title{The \textsf{FramedSyntax} package}
+\author{Claudio Beccari\\[1ex]\texttt{claudio.beccari(at)gmail.com}}
+\date{Version \fileversion~--~Last revised \filedate.}
+\maketitle
+\columnseprule=0.4pt
+\begin{multicols}{2}
+ \tableofcontents
+ \end{multicols}
+ \DocInput{FramedSyntax.dtx}
+\end{document}
+%</driver>
+% \fi
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section*{Preface}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The \pack{FramedSyntax} package contains the necessary code to
+% implement a framed block of text that is emphasised compared to
+% the normal text. I found this technique very handy for writing
+% the documented \TeX files that describe the new packages that
+% I create, and the user manuals of those packages. As a member
+% of the Italian Tug I also wrote a number of thematic guides for
+% the Italian users; they seem to appreciate that the syntax of
+% \LaTeX, classes and packages are written with these framed
+% emphasised blocks, clearly emerging form the surrounding text.
+%
+% This is why I would like to share my package with the other
+% \TeX users. May be they would like to use the same approach.
+% I perfectly know that there are other packages and classes to
+% write down documented \TeX files, such as those that
+% traditionally have a \file{.dtx} file extension. Some of them
+% are really powerful; I wonder why I keep using the
+% \pack{docstrip.tex} file and the \class{ltxdoc} class to write
+% down my documented \TeX files. The first simplest answer is
+% “Because I am used to it”. The second is “Because I don't like
+% to use too powerful packages, such as, for example,
+% \pack{tikz}”; this package is a beautiful one, extremely
+% powerful, but it is memory consuming, and computer blocking
+% due to exhausted \TeX working memory occurred to me more often
+% than I could stand.
+%
+% Dear User: if you do not like the name \pack{FramedSyntax}
+% downloaded with a full and updated TeX System installation,
+% copy this file to your local \texttt{texmf} directory, and
+% change the file name to another name that fits your
+% preferences. Never change the names of the \TeX System files
+% even if you have the administrator privileges. In any case,
+% since this work was inspired by a style file of mine written
+% in Italian, this package already contains an alias
+% \amb{Sintassi} environment with the Italian name.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{What the \pack{FramedSyntax.sty} package can do}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The user can use this package and can specify the package
+% options; these include the colours
+% of the frame, the text, the background; the frame thickness and
+% colour; the frame-text gap; the text font family, series,
+% shape, and size. These settings can be global or local,
+% therefore you can select some of these settings for specific
+% syntax instances.
+%
+% Most often than not, you'll be using the default text fonts for
+% the whole document. Please do not use the old Computer Modern
+% fonts; they are not scalable, but may be chosen at a discrete
+% set of sizes. The Latin Modern ones are stepwise continuously
+% scalable, thanks to the scalable optical sizes they are built
+% with. Other fonts, such as the Times, the Palatino, the
+% Libertinus ones, and many others are continuously scalable
+% over wide ranges.
+%
+% While describing and commenting the code, you will read more
+% detailed comments on such font issues.
+%
+% In general the syntax frame fills up the whole \cs{textwidth};
+% in reality it should fill up the current \cs{linewidth};
+% within a list this frame will be shorter and indented as the
+% list text.
+%
+% This framed syntax box will not split across a page break;
+% matter of facts, the next section example height is too large
+% to fit in the page, and a large white vertical space filled
+% this page, in order to have the framed box completely in within
+% the next section. If you need long framed texts, you should
+% preferably use the \pack{tcolorbox} package (which relies on
+% the extremely powerful \pack{tikz} one) and performs much
+% better than my simple package, in particular it can split its
+% boxes across page breaks.
+%
+% Warning: This small package does similar things as the
+% \pack{wrapfig2} package, but such packages are not supposed
+% to interfere with each other.
+%
+% \begin{FramedSyntax}
+% \texttt{\% !TEX TS-program = } \meta{LaTeX based compiler}
+% \texttt{\% !TEX encoding = UTF-8 Unicode}
+% ~
+% \cs{documentclass}\oarg{options}\marg{class}
+% \dots\ \meta{Packages}
+% \cs{usepackage}\oarg{key=value options}\Marg{FramedSyntax}
+% \dots\ \meta{Other packages}
+% ~
+% \cs{begin}\Marg{document}
+% \dots\ \meta{A part of document body}
+% \cs{begin}\Marg{FramedSyntax}
+% \dots\ \meta{Some syntax lines}
+% \cs{end}\Marg{FramedSyntax}
+% \dots\ \meta{Further document body}
+% ~
+% \cs{end}\Marg{document}
+% \end{FramedSyntax}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{Usage example}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The above framed syntax box contains a sample for using
+% this package.\footnote{You may notice that the framed box width
+% is a little shorter than the \cs{linewidth}, exactly 10\,pt
+% shorter. This happens with this particular documentation class
+% \class{ltxdoc}: I was not able to find the cause, but
+% several tests with other classes proved to perform as
+% expected.}
+%
+% In order to use this package a user should use this syntax.
+% The above elementary example was done with the following
+% source code.
+%\begin{Verbatim}[gobble=1]
+% \begin{FramedSyntax}
+% \texttt{\% !TEX TS-program = } \meta{LaTeX based compiler}
+% \texttt{\% !TEX encoding = UTF-8 Unicode}
+% ~
+% \cs{documentclass}\oarg{options}\marg{class}
+% \dots\ \meta{Packages}
+% \cs{usepackage}\oarg{key=value options}\Marg{FramedSyntax}
+% \dots\ \meta{Other packages}
+% ~
+% \cs{begin}\Marg{document}
+% \dots\ \meta{A part of document body}
+% \cs{begin}\Marg{FramedSyntax}
+% \dots\ \meta{Some syntax lines}
+% \cs{end}\Marg{FramedSyntax}
+% \dots\ \meta{Further document body}
+% ~
+% \cs{end}\Marg{document}
+% \end{FramedSyntax}
+%\end{Verbatim}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{Indexing}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The syntax macros can send their arguments to an \file{.idx}
+% file. If package \pack{imakeidx} is loaded in the preamble
+% and the \cs{makeindex} macro (with its own options) is used
+% to activate the indexing process, the index is created
+% without the need of manually running the necessary programs
+% to transform the information collected into the \file{.idx}
+% to the proper code into the \file{.ind} file.
+%
+% For example the following source code
+%\begin{Verbatim}[gobble=1]
+% % !TEX TS-program = pdflatex
+% % !TEX encoding = UTF-8 Unicode
+% \documentclass[12pt]{article}
+% \usepackage{imakeidx}\makeindex
+% \usepackage{FramedSyntax}
+% \usepackage{kantlipsum}
+%
+% \begin{document}
+% \kant[1]
+% \begin{FramedSyntax}
+% \cs{Large}
+% \end{FramedSyntax}
+%
+% \kant[2-3]
+% \begin{FramedSyntax}
+% \cs{small}
+% \end{FramedSyntax}
+%
+% \kant[4]
+%
+% \printindex
+%
+% \end{document}
+%\end{Verbatim}
+% produces a three page article containing dummy test,
+% with a framed syntax box in each page. Both framed commands,
+% introduced by means of the \cs{cs} command, are listed in the
+% third page, correctly pointung to page~1 end page~2.
+% Users are suggested to copy the above short code, save it in a
+% testing \file{.tex} file, and compile it with \prog{pdfLaTeX};
+% with just one run the file gets compiled together with its
+% index.
+%
+% \CheckSum{650}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\StopEventually{}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{The documented code}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Here the package code is defined and commented.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{The necessary packages}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%\pack{FramedSyntax} relies on a number of other packages;
+% they are the following:
+% \begin{macrocode}
+\IfPackageLoadedF{pict2e}{\RequirePackage{pict2e}}
+\IfPackageLoadedF{etoolbox}{\RequirePackage{etoolbox}}
+\IfPackageLoadedF{xkeyval}{\RequirePackage{xkeyval}}
+\IfPackageLoadedF{xcolor}{\RequirePackage{xcolor}}
+%
+% \end{macrocode}
+% The last three packages are loadeed for obvious reasons, since
+% they are connected to \LaTeX programming and the package
+% specific functionalities.
+% May be the most puzzling one is \pack{pict2e}; it is loaded in
+% order to use its low level commands used to draw the frame
+% with rounded corners, i.e. the lines and the corner arcs;
+% they can be coloured and their thickness may be specified;
+% they form closed paths that can be stroked in a specific
+% colour or filled with another specific colour.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{The syntax macros}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% These numerous commands are used to typeset in a specific
+% style the command arguments, the files, classes, packages,
+% options names; commands, and so on. If in any source file
+% indexing is active, each command sends the relevant information
+% to the \file{.idx} file.
+%
+% All package internal commands have names that are prefixed with
+% the string \texttt{FS}, so as to avoid conflicts with similar
+% named commands defined by other classes or packages. These are
+% not user commands, they are only for internal use. At the
+% beginning of the \amb{FramedSyntax} environment all user
+% commands (that users input without this prefix) will be let to
+% the internal commands, so that no interference exists and
+% no clash errors take place.
+%
+% Notice the non prefixed names: \cs{marg} and \cs{Marg} (and
+% its siblings): with the lower case initial letter the
+% syntax \emph{mandatory} argument is printed in italics
+% surrounded by angle brackets; with an uppercase initial letter
+% the syntax \emph{mandatory} argument is printed in teletype
+% and is not surrounded by angle brackets.
+% Similarly syntax \emph{optional} arguments are typeset within
+% square brackets but the initial letter case specifies the
+% difference between an argument to be entered by the user,
+% and an argument with a specific value.
+%
+% Since initially I wrote the package for myself, some unusual
+% object names are spelled in mixed languages: for example it is
+% evident that \texttt{marg} stands for \emph{mandatory
+% argument} without any language mixture; the Italian word
+% \texttt{stile} evidently stands for the English word
+% \emph{style}; similarly \texttt{allineamento} stands for
+% \emph{alignement}; \texttt{numeristyle} is in mixed languages
+% but obviously it stands for \emph{numbers style}; possibly the
+% only one, that may puzzle a non Italian user, is the word
+% \texttt{chiave} that stands for \emph{key}.
+%
+% Entries for a possible index are already created in such a way
+% as to use the correct language for the index in Italian or the
+% index in English. Should another user prefer to create the
+% index in a different language, such a user is free to redefine
+% in his/her document the indexing macros defined in this
+% package>
+% \begin{macrocode}
+\providecommand*\FSmeta[1]{\textnormal{$\langle$\textit{#1}$\rangle$}}
+\providecommand*\FSmarg[1]%
+ {\textnormal{\texttt{\char123}\FSmeta{#1}\texttt{\char125}}}
+\providecommand*\FSoarg[1]{\textnormal{\texttt{[}\FSmeta{#1}\texttt{]}}}
+\providecommand*\FSArg[1]{\textnormal{\texttt{\{#1\}}}}
+\let\FSMarg\FSArg
+\providecommand*\FSOarg[1]{\textnormal{\texttt{[#1]}}}
+\def\GT@splitargs#1,#2!{\def\@tempA{#1}\def\@tempB{#2}}
+\providecommand\FSgarg[1]{\textnormal{\GT@splitargs#1!\%
+ \texttt{(}\FSmeta{\@tempA}\texttt{,}\FSmeta{\@tempB}\texttt{)}}}
+\providecommand*\FScomando[1]{\textnormal{\texttt{\string#1}}}
+\providecommand*{\FScs}[1]%
+{\textnormal{\texttt{\char92#1}\index{#1@\texttt{\char92#1}|textsc}}}
+\let\FScsindex\FScs
+%
+\providecommand*\SFSambiente[2]{%
+\FScomando{\begin}\FSmarg{#1}\FSoarg{#2}\,\dots
+ \FScomando{\end}\FSmarg{#1}}
+\providecommand*\DFSambiente[3]{%
+ \FScomando{\begin}\FSmarg{#1}\FSoarg{#2}\FSoarg{#3}\,\dots
+ \FScomando{\end}\FSmarg{#1}}
+\providecommand*\BFSambiente[1]{\FScomando{\begin}\FSmarg{#1}}
+\providecommand*\EFSambiente[1]{\FScomando{\end}\FSmarg{#1}}
+\IfPackageLoadedF{cfr-lm}{\let\texttm\texttt \let\texttv\texttt}
+%
+\DeclareRobustCommand*\FSambstyle[1]{%
+ {\normalfont\textsf{\slshape#1}}}
+\DeclareRobustCommand*\FSclassstyle[1]{%
+ {\normalfont\texttv{\itshape#1}}}
+\DeclareRobustCommand*\FSfilestyle[1]{%
+ {\normalfont\texttm{\texttt{#1}}}}
+\DeclareRobustCommand*\FSpackstyle[1]{%
+ {\normalfont\texttm{\ifbool{PDFTeX}{\textit}{\itshape}{#1}}}}%
+\DeclareRobustCommand*\FSprogstyle[1]{{\normalfont\textsf{#1}}}
+\DeclareRobustCommand*\FSprog[1]{\FSprogstyle{#1}%
+\iflanguage{english}{\index{program!#1@\FSprogstyle{#1}|textsc}}%
+ {\index{programma!#1@\FSprogstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSpack[1]{\FSpackstyle{#1}%
+\iflanguage{english}{\index{package!#1@\FSpackstyle{#1}|textsc}}%
+ {\index{pacchetto!#1@\FSpackstyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSclass[1]{\FSclassstyle{#1}%
+ \iflanguage{english}{\index{class!#1@\FSclassstyle{#1}|textsc}}%
+ {\index{classe!#1@\FSclassstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\file[1]{\FSfilestyle{#1}%
+ \index{file!#1@\FSfilestyle{#1}|textsc}}%
+\DeclareRobustCommand*\FSamb[1]{\FSambstyle{#1}%
+ \iflanguage{english}%
+ {\index{environment!#1@\FSambstyle{#1}|textsc}}%
+ {\index{ambiente!#1@\FSambstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSopzstyle[1]{%
+ {\normalfont\textsf{\slshape{#1}}}}%
+\DeclareRobustCommand*\FScontastyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSstilestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSnumeristyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSumisurastyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSchiavestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSdescrittorestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSposizionestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSallineamentostyle[1]{{\normalfont\texttm{#1}}}
+%
+\DeclareRobustCommand*\FSopz[1]{\opzstyle{#1}%
+ \iflanguage{english}{\index{option!#1@\FSopzstyle{#1}|textsc}}%
+ {\index{opzione!#1@\opzstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSconta[1]{\Fcontastyle{#1}%
+ \iflanguage{english}{\index{counter!#1@\FScontastyle{#1}|textsc}}%
+ {\index{contatore!#1@\FScontastyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSstile[1]{\FSstilestyle{#1}%
+ \iflanguage{english}{\index{page style!#1@\FSstilestyle{#1}|textsc}}%
+ {\index{stile della pagina!#1@\FSstilestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSnumeri[1]{\FSnumeristyle{#1}%
+ \iflanguage{english}{\index{numbering!#1@\FSnumeristyle{#1}|textsc}}%
+ {\index{numerazione!#1@\FSnumeristyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSumisura[1]{\FSumisurastyle{#1}%
+ \iflanguage{english}{measuring unit!#1@\FSumisurastyle{#1}|textsc}%
+ {\index{unità di misura!#1@\FSumisurastyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSchiave[1]{\FSchiavestyle{#1}%
+ \iflanguage{english}{\index{key!#1@\FSchiavestyle{#1}|textsc}}%
+ {\index{chiave!#1@\chiavestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSdescrittore[1]{\FSdescrittorestyle{#1}%
+ \iflanguage{english}%
+ {\index{column descriptor!#1@\FSdescrittorestyle{#1}|textsc}}%
+ {\index{descrittore di colonna!#1@\FSdescrittorestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSposizione[1]{\FSposizionestyle{#1}%
+ \iflanguage{english}%
+ {\index{floating object position!#1@\FSposizionestyle{#1}|textsc}}%
+ {\index{posizione degli oggetti flottanti!#1@\FSposizionestyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSallineamento[1]{FS\allineamentostyle{#1}%
+ \iflanguage{english}%
+ {\index{allignment code!#1@\FSallineamentostyle{#1}|textsc}}%
+ {\index{codice di allineamento!#1@\FSallineamentostyle{#1}|textsc}}}
+%
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Register and colour definitions}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Here we define some length and dimension registers.
+% They will be used by the local commands and environments.
+% Length \cs{insertwidth} might be already defined, therefore we
+% test this possibility.
+% \begin{macrocode}
+\newlength\SIfrthick
+\newlength\SIfrgap
+\newlength\SIfrwidth
+\newlength\SIfrheight
+\ifcsdef{insertwidth}{}{\newlength\insertwidth}
+\newlength\SIXR \newlength\SIYD
+\newlength\SIXL \newlength\SIYU
+\newdimen\radius
+\newdimen\framewidth
+
+\definecolor{SIbackground}{rgb}{0.95,0.95,0.95}
+\definecolor{SIframe}{rgb}{0.1,0.1,0.1}
+\definecolor{SItext}{rgb}{0,0,0}
+
+% \end{macrocode}
+% The default background color is a very light gray; the default
+% frame colour is a very dark gray; the default text colour is
+% just black. Such colours are deemed suitable for the
+% application of the framed syntax box, but when necessary users
+% can use the \cs{textcolor} command to emphasise specific
+% phrases.
+%
+% As it can be seen, these colours are defined by means of the
+% colour defining macros of the \pack{xcolor} package.
+% They define some default colours; but the next commands
+% redefine them at the user choice; actually the user shall
+% specify some \textit{key = value} options to the main syntax
+% environment.
+% \begin{macrocode}
+\def\SetSIbgd#1{\colorlet{SIbackground}{#1}}
+\def\SetSIfrm#1{\colorlet{SIframe}{#1}}
+\def\SetSItxt#1{\colorlet{SItext}{#1}}
+
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Option settings}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The next code is the strength of the package; the definition
+% of the option settings. They form an option family defined by
+% the angle brackets delimited string \texttt{sintassi}.
+% Therefore they cannot be redefined by any other class or
+% package unless the above family name is used.
+% \begin{macrocode}
+\DeclareOptionX<sintassi>{fboxrule}[1pt]{\fboxrule=#1}
+\DeclareOptionX<sintassi>{fboxsep}[1ex]{\fboxsep=#1}
+\DeclareOptionX<sintassi>{framecolor}[SIframe]{\SetSIfrm{#1}}
+\DeclareOptionX<sintassi>{backgroundcolor}[SIbackground]{\SetSIbgd{#1}}
+\DeclareOptionX<sintassi>{fontstyle}[\normalfont]{#1}
+\DeclareOptionX<sintassi>{radius}[\fboxsep]{\radius=#1}
+\DeclareOptionX<sintassi>{insertionwidth}[\linewidth]{\insertwidth=#1}
+
+\DeclareOptionX*{%
+ \packageWarning{FramedSyntax}{`\CurrentOption' ignored}%
+}
+
+% \end{macrocode}
+% Notice that the option defining macro \cs{DeclareOptionX}
+% is created by the \pack{keyvalue} package in a simplified way,
+% so as to imitate the \LaTeXe syntax.
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Activate all options}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% With just two macros we activate all options of family
+% \texttt{sintassi}
+% \begin{macrocode}
+\ExecuteOptionsX<sintassi>{%
+ fboxrule,
+ fboxsep,
+ framecolor,
+ backgroundcolor,
+ fontstyle,
+ radius,
+ insertionwidth
+}
+\ProcessOptionsX*\relax
+
+% \end{macrocode}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{A couple of useful local macros}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following macros are generally useful for the end users;
+% the first one provides a simple means to scale the font size
+% to any specified integer or fractional value. It comes useful
+% when a line contained in a framed syntax box is too long and
+% gets broken at the end of the box measure. According where the
+% line is broken there are two ways to correct the source file:
+%\begin{itemize}
+%\item
+% the user choses the best point where to break the line,
+% inserts an explicit comment character (|\%|)
+% at the end of the broken line and inserts a horizontal space
+% at the beginning of the remaining part of the broken line.
+%\item
+% At the beginning of the environment body the user may insert a
+% \cs{setfontsize} selecting the specific font size at a smaller
+% integer or fractional value than the normal text size.
+%\end{itemize}
+% This \cs{setfontsize} macro accepts two different syntaxes in
+% order to reach the same result: For example:
+%
+%\verb|\setfontsize{9.5}[1.1]|\par
+%\verb|\setfontsize[1.1]{9.5}|
+%
+% In any case the base line skip value is optional and its
+% default value is 1.2 times the font size. Actually the
+% optional value is not the base line skip value, but it is
+% the \cs{linestretch} value, i.e. the ratio between the desired
+% base line skip and the font size.
+%
+% The second macro exploits the \pack{etoolbox} functionalities
+% to define a user macro that activates an internal native \TeX
+% macro protected by a |%| character.
+% \begin{macrocode}
+\providecommand\setfontsize{}
+\RenewDocumentCommand\setfontsize{O{1.2} m O{#1}}{%
+ \fontsize{#2}{\fpeval{#1*#2}}\selectfont}
+
+\providecommand\strippt{}
+\renewcommand\strippt[1]{\csuse{strip@pt}#1}
+
+% \end{macrocode}
+%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The framed box requires several settings}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following macro \cs{framedbox} in a certain sense is the
+% heart of the whole construction of the \amb{FramedSyntax}
+% environment. It requires 5 arguments, four mandatory ones and
+% one optional. In order they are as follows
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% mandatory: the width of the box/
+%
+% \item[\texttt{\#2}]
+% mandatory: the thickness of the frame.
+%
+% \item[\texttt{\#3}]
+% mandatory: the gap width between the frame and the contents
+% of the box.
+%
+% \item[\texttt{\#4}]
+% optional: the radius of curvature of the box corners.
+%
+% \item[\texttt{\#5}]
+% mandatory: the text to be included within the framed box
+% \end{enumerate}
+% Although the corner radius may be chosen, it is suggested to
+% avoid specifying this optional parameter; its default value
+% equals the gap width; if the frame thickness is zero, macro
+% avoids tracing a frame with an invisible line.
+% \begin{macrocode}
+\providecommand\framedbox{}
+\RenewDocumentCommand\framedbox{m m m O{#3} m}{%
+\bgroup
+ \dimen2=#1\relax
+ \dimen0=\dimexpr#1-(#2+#3)*2\relax
+ \setbox0\hbox{\parbox{\dimen0}{#5}}%
+ \SIfrthick=#2\relax
+ \SIXR=\dimexpr\wd0/2\relax \SIXL=-\SIXR\relax
+ \SIYU=\dimexpr(\ht0+\dp0)/2\relax \SIYD=-\SIYU\relax
+ \dimen4=#1\relax % box total width
+ \dimen6=\dimexpr\ht0+\dp0+(#2+#3)*2\relax% box total height
+ \dimen8=#4\relax % corner arc radius
+ \edef\SIbase{\strippt{\dimen4}}
+ \edef\SIalt{\strippt{\dimen6}}
+ \edef\SIxoff{\strippt{\dimexpr0.5\dimen4}}
+ \edef\SIyoff{\strippt{\dimexpr0.5\dimen6}}
+ \unitlength=1pt
+ \begin{picture}(\SIbase,\SIalt)(-\SIxoff,-\SIyoff)
+ \Frame*{\dimen4}{\dimen6}{\dimen8}%
+ \ifdim\SIfrthick>0pt\Frame{\dimen4}{\dimen6}{\dimen8}\fi
+ \put(0,0){\makebox(0,0){\box0}}%
+ \end{picture}
+\egroup
+\ignorespaces}
+
+% \end{macrocode}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The frame}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The actual frame path may be filled with colour; the frame
+% border may be coloured with its own specified colour; such
+% colours are established by the FramedSyntax environment
+% options or by the global options.
+%
+% The \cs{Frame} command requires four parameters already
+% computed by the \cs{framedbox} command; in any case they are
+% the following:
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: a boolean asterisk; if the asterisk is missing the
+% frame contour is drawn with its colour \texttt{SIframe}; if
+% the asterisk is present the contour is not drawn, but the
+% framed box is filled with the \texttt{SIbackground} colour.
+% \item[\texttt{\#2}]
+% mandatory: overall box width.
+% \item[\texttt{\#3}]
+% mandatory: total box height.
+% \item[\texttt{\#4}]
+% mandatory: the corner arc radius.
+% \end{enumerate}
+%
+% The following code contains the low level \pack{pict2e}
+% commands to draw lines to form a closed path to be stroked or
+% colour filled. They do not form a \pack{pict2e} \cs{oval},
+% although the contour is similar, because the default \cs{oval}
+% cannot be filled.
+% \begin{macrocode}
+ \providecommand\Frame{}
+ \RenewDocumentCommand\Frame{s m m m}{%
+ \bgroup
+ \SIXR=\dimexpr#2/2\relax \SIXL=-\SIXR%
+ \SIYU=\dimexpr#3/2\relax \SIYD=-\SIYU%
+ \IfBooleanTF{#1}{\linethickness{0pt}\color{SIbackground}}%
+ {\linethickness{\SIfrthick}\color{SIframe}}%
+ \moveto(\SIXR,\SIYD+#4)%
+ \circlearc{\SIXR-#4}{\SIYU-#4}{#4}{0}{90}%
+ \circlearc{\SIXL+#4}{\SIYU-#4}{#4}{90}{180}%
+ \circlearc{\SIXL+#4}{\SIYD+#4}{#4}{180}{270}%
+ \circlearc{\SIXR-#4}{\SIYD+#4}{#4}{270}{360}%
+ \closepath
+ \IfBooleanTF{#1}{\fillpath}{\strokepath}%
+ \egroup\ignorespaces}
+
+% \end{macrocode}
+
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Filling the frame with the syntax text}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% We are almost at the end. Here we define another macro to put
+% the syntax text inside the frame over the background
+% colour. The next command \cs{includeframedtext} provides the
+% necessary arguments to be passed to the lower level command
+% \cs{framedbox}; the arguments are the following:
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: box width; default value \cs{insertwidth}, which is
+% the actual boxed text width; if it is larger than
+% \cs{linewidth} it is reduced to this value; in this case
+% users should revise they source code in order to fix this
+% little problem.
+% \item[\texttt{\#2}]
+% mandatory: the syntax text to be framed.
+% \item[\texttt{\#3}]
+% optional: the local \textit{key = value} options.
+% \end{enumerate}
+%
+% The code is the following.
+% \begin{macrocode}
+\providecommand\includeframedtext{}
+\RenewDocumentCommand\includeframedtext{O{\insertwidth} m O{}}%
+{\bgroup
+ \ExecuteOptionsX<sintassi>{#3}%
+ \ifdimgreater{\insertwidth}{\linewidth}{\insertwidth=\linewidth}{}%
+ \framedbox{\insertwidth}{\fboxrule}{\fboxsep}[\radius]{#2}%
+\egroup}
+
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The user environment}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Originally this environmente was named \amb{Sintassi}, but in
+% this package we name it \amb{FramedSintax}. The opening
+% statement is very long, because it must contain all the
+% \cs{let} commands that allow the user to use the command names
+% without the \texttt{FS} prefix; such \cs{let} equivalences are
+% local because the \texttt{FS} prefixes were introduced only to
+% avoid clashes with possible definitions of the same names with
+% other purposes.
+%
+% But besides these numerous equivalences, this environment
+% \amb{FramedSyntax} determines the necessary parameters to pass
+% to the service macros
+%
+% The environment requires just two optional arguments.
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: the font size. The default value is the current
+% font size. This size should be specified only when the syntax
+% lines are marginally longer than the available measure and
+% they get broken close to their natural length. Please,
+% remember that in order to have this size specification work
+% properly, it is necessary to use continuously scalable fonts.
+% This command will not have any useful effect with the original
+% \TeX default Computer Modern fonts; Latin Modern fonts, on
+% the contrary, work very well.
+% \item[\texttt{\#2}]
+% optional: \textit{key = value} options that locally override
+% the global default ones or those that possibly were
+% specified by the user when loading this package.
+% \end{enumerate}
+% \begin{macrocode}
+\ProvideDocumentEnvironment{FramedSyntax}{}{}{}
+\RenewDocumentEnvironment{FramedSyntax}{o D(){}}
+{% environment opening commands
+\IfValueT{#1}{\setfontsize{#1}}% font size setting
+\ExecuteOptionsX<sintassi>{#2}% key = value options
+ \ifdimgreater{\insertwidth}{\linewidth}% width corrrection
+ {\insertwidth=\linewidth}{}%
+\framewidth=\insertwidth
+%
+\let\meta\FSmeta \let\marg\FSmarg \let\oarg\FSoarg
+\let\Arg\FSArg \let\Marg\FSMarg \let\Oarg\FSOarg
+\let\garg\FSgarg \let\comando\FScomando \let\cs\FScs
+\let\csindex\FScs \let\Sambiente\SFSambiente
+\let\Dambiente\DFSambiente
+\let\Bambiente\BFSambiente \let\Eambiente\EFSambiente
+\let\amb\FSamb \let\ambstyle\FSambstyle
+\let\class\FSclass \let\classstyle\FSclassstyle
+\let\file\FSfile \let\filestyle\FSfilestyle
+\let\pack\FSpack \let\packstyle\FSpackstyle
+\let\prog\FSprog \let\progstyle\FSprogstyle
+\let\opz\FSopz \let\opzstyle\FSopzstyle
+\let\conta\FSconta \let\contastyle\FScontastyle
+\let\stile\FSstile \let\stilestyle\FSstilestyle
+\let\numeri\FSnumeri \let\numerystyle\FSnumeristyle
+\let\umisura\FSumisura \let\umisurastyle\FSumisurastyle
+\let\chiave\FSchiave \let\chiavestyle\FSchiavestyle
+\let\descrittore\FSdescrittore
+ \let\descrittorestyle\FSDescrittorestyle
+\let\posizione\FSposizione \let\posizionestyle\FSposizionestyle
+\let\allineamento\FSallineamento
+ \let\allineamentostyle\FSallineamentostyle
+
+%
+\begin{lrbox}{2}% open the necessary boxes
+\begin{minipage}{%
+ \dimexpr\framewidth-2\fboxrule-2\fboxsep}\obeylines
+}{% environment closing commands
+\end{minipage}\end{lrbox}% close the above boxes
+\begin{flushleft}% set the syntax thext flush left
+\includeframedtext{\box2}[#2]
+\end{flushleft}}%
+
+% \end{macrocode}
+%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection%{Backwards compatibility environment \amb{Sintassi}}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% As said in the Preface, this package was inspired by a
+% \file{.sty} file of mine written in Italian; I might conserve
+% my older file but, since it is not so safe against macro
+% definition clashes, in the several document source files I
+% wrote with the previous implementation. I am going to change
+% the name of the imported file, but I will conserve the
+% multitude of instances of the old environment name, by an
+% alias defined in this package.
+% \begin{macrocode}
+\NewDocumentEnvironment{Sintassi}{o D(){}}%
+ {\begin{FramedSyntax}[#1](#2)}{\end{FramedSyntax}}
+% \end{macrocode}
+%.
+%
+%\iffalse
+%<*package>
+%\fi
+%
+% \begin{center}\color{red}\fontsize{50}{50}\selectfont
+% Enjoy \LaTeX
+%\end{center}
+%\iffalse
+%</package>
+%\fi
+% \Finale
+
+\endinput
+
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/framedsyntax/FramedSyntax.pdf b/macros/latex/contrib/framedsyntax/FramedSyntax.pdf
new file mode 100644
index 0000000000..ac6862130b
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/FramedSyntax.pdf
Binary files differ
diff --git a/macros/latex/contrib/framedsyntax/README.txt b/macros/latex/contrib/framedsyntax/README.txt
new file mode 100644
index 0000000000..29ed193569
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/README.txt
@@ -0,0 +1,12 @@
+ README.txt file for FramedSyntax.sty 2024-09-04 v.0.2.8
+
+
+ Distributable under the LaTeX Project Public License,
+ version 1.3c or higher (your choice). The latest version of
+ this license is at: http://www.latex-project.org/lppl.txt
+
+ This work is "maintained"
+
+ This work consists of this file FramedSyntax.dtx, a README.txt
+ file and the derived files: FramedSyntax.sty, FramedSyntax.pdf.
+
diff --git a/macros/latex/contrib/fvextra/CHANGELOG.md b/macros/latex/contrib/fvextra/CHANGELOG.md
index 7556c74a2d..6a0e674eba 100644
--- a/macros/latex/contrib/fvextra/CHANGELOG.md
+++ b/macros/latex/contrib/fvextra/CHANGELOG.md
@@ -1,6 +1,57 @@
# Changelog
+## v1.9.0 (2024/10/16)
+
+* Replaced buffer length counters with macros to prevent issues with
+ `\includeonly` resetting counters.
+
+
+
+## v1.8.0 (2024/09/14)
+
+* Added new option `backgroundcolor` (alias `bgcolor`). This provides a
+ basic, `\colorbox`-based implementation of background colors for commands
+ and environments. Added new option `backgroundcolorvphantom` (alias
+ `bgcolorvphantom`) for customizing background height. Added new option
+ `backgroundcolorpadding` (alias `bgcolorpadding`) for customizing padding
+ between text and the edge of the region with background color.
+
+* Added option `insertenvname`. This customizes the verbatim environment
+ used by `\VerbatimInsertBuffer`.
+
+* When `numberblanklines=false`, `highlightlines` no longer highlights blank
+ lines at the end of a highlighted range (#25, gpoore/minted#226).
+
+* An unnecessary line break is no longer inserted before the last "word" of a
+ line when it is preceded by a long "word" that is broken internally as a
+ result of `breakbefore`, `breakafter`, or `breakanywhere` (#26).
+
+* Added option `breakpreferspaces` (default `true`). This determines whether
+ line breaks are preferentially inserted at normal spaces rather than at
+ other locations allowed by `breakbefore`, `breakafter`, or `breakanywhere`
+ (#26).
+
+* Added option `breakanywhereinlinestretch` (gpoore/minted#387).
+
+* `\FVExtraReadVArg` now takes a multi-line (but not multi-paragraph)
+ verbatim argument. The new `\FVExtraReadVArgSingleLine` provides the old
+ functionality of taking an argument restricted to a single line
+ (gpoore/minted#376).
+
+* By default, `\Verb` and `\SaveVerb` now take multi-line (but not
+ multi-paragraph) verbatim arguments. The old behavior of requiring
+ verbatim arguments to be on a single line can be restored by setting the
+ new option `vargsingleline` to `true`.
+
+* Added documentation for undocumented `fancyvrb` option `listparameters`
+ (gpoore/minted#256).
+
+* Expanded `breaklines` documentation with discussion of limitations and
+ alternatives (gpoore/minted#400).
+
+
+
## v1.7.0 (2024/05/16)
* Added new command `\VerbatimClearBuffer`.
@@ -209,7 +260,7 @@
* Added `highlightlines` option that takes a line number or range of line
numbers and highlights the corresponding lines. Added `highlightcolor`
- option that controls hightlighting color.
+ option that controls highlighting color.
* `obeytabs` no longer causes lines to vanish when tabs are inside macro
arguments. Tabs and spaces inside a macro argument but otherwise at the
diff --git a/macros/latex/contrib/fvextra/fvextra.dtx b/macros/latex/contrib/fvextra/fvextra.dtx
index e4182b6f88..f5b8aca429 100644
--- a/macros/latex/contrib/fvextra/fvextra.dtx
+++ b/macros/latex/contrib/fvextra/fvextra.dtx
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{fvextra}
%<*package>
- [2024/05/16 v1.7.0 fvextra - extensions and patches for fancyvrb]
+ [2024/10/16 v1.9.0 fvextra - extensions and patches for fancyvrb]
%</package>
%
%<*driver>
@@ -111,6 +111,10 @@
\AtBeginDocument{\let|\pipe@active@verbatim}
\endgroup
+\renewenvironment{verbatim}%
+ {\VerbatimEnvironment\begin{Verbatim}[gobble=1]}%
+ {\end{Verbatim}}
+
\newcommand{\todo}[1]{}
%\newcommand{\todo}[1]{\textcolor{red}{TO~DO: \scantokens{#1}}}
@@ -134,6 +138,48 @@
\def\theCodelineNo{\textcolor{DarkGreen}{\sffamily\scriptsize{\arabic{CodelineNo}}}}
+\renewenvironment{macro}{\macro@custom@arg}{}
+\def\macro@custom@arg{%
+ \begingroup\makeatletter\macro@custom@arg@i}
+\def\macro@custom@arg@i#1{%
+ \makeatother
+ \par\noindent
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{DarkGreen}\hspace*{-0.5in}%
+ \macro@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\macro@custom@arg@spacegobble#1{#1}
+\def\macro@custom@arg@split#1,#2\FV@Sentinel{%
+ \expandafter\string\macro@custom@arg@spacegobble#1%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\macro@custom@arg@split#2\FV@Sentinel}}
+
+\renewenvironment{environment}{\env@custom@arg}{}
+\def\env@custom@arg{%
+ \begingroup\makeatletter\env@custom@arg@i}
+\def\env@custom@arg@i#1{%
+ \makeatother
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{DarkGreen}\hspace*{-0.5in}%
+ \env@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\env@custom@arg@spacegobble#1{#1}
+\def\env@custom@arg@split#1,#2\FV@Sentinel{%
+ \env@custom@arg@spacegobble#1{\textrm{ \textit{(env.)}}}%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\env@custom@arg@split#2\FV@Sentinel}}
+
+
\let\orig@footnote\footnote
\renewcommand{\footnote}{%
\begingroup
@@ -147,25 +193,28 @@
\orig@footnote{\scantokens{#1}}}
-\def\fvextraprintopt#1(#2) (#3){%
+\def\fvextra@optionlist@printopt#1(#2) (#3){%
\vspace{0.1in}%
\leavevmode%
- \marginpar{\raggedleft\texttt{\small\textcolor{DarkGreen}{#1}}\ }%
+ \marginpar{\raggedleft\texttt{\textcolor{DarkGreen}{\small #1}}\ }%
\kern-\parindent\textsf{(#2)}\hfill(default: \texttt{#3})\\}
\newenvironment{optionlist}%
- {%
- ~\par\vspace{-14pt}%
+ {~\par\vspace{-14pt}%
\def\pipechar{|}
\let\|\pipechar
- \newcommand*\fvextranext{}%
+ \newcommand*\fvextra@optionlist@next{}%
+ \let\item@orig\item
\renewcommand*\item[1][]{%
- \fvextranext%
- \renewcommand*\fvextranext{\par}%
- \fvextraprintopt##1%
- \ignorespaces}}
- {%
- \par}
+ \ifdefstring{\@currenvir}{optionlist}%
+ {\fvextra@optionlist@next%
+ \renewcommand*\fvextra@optionlist@next{\par}%
+ \fvextra@optionlist@printopt##1%
+ \ignorespaces}%
+ {\ifstrempty{##1}%
+ {\vspace{-4pt}\item@orig}
+ {\vspace{-4pt}\item@orig[##1]}}}}
+ {\par}
\newenvironment{example}
@@ -290,7 +339,7 @@
%\hrule
%\vspace{2ex}
%\noindent\begin{minipage}{\linewidth}
-%\begin{Verbatim}[gobble=1]
+%\begin{verbatim}
%---
%header-includes:
% - |
@@ -301,7 +350,7 @@
% breaklines, breaknonspaceingroup, breakanywhere}
% ```
%---
-%\end{Verbatim}
+%\end{verbatim}
%\end{minipage}
%\vspace{2ex}
%\hrule
@@ -317,6 +366,50 @@
%
% \begin{optionlist}
%
+% \item[backgroundcolor (string) (none)]
+% Background color behind commands and environments. This is only a basic, lightweight implementation of background colors using |\colorbox|. For more control of background colors, consider \href{https://ctan.org/pkg/tcolorbox}{\pkg{tcolorbox}} or a similar package, or a custom background color implementation.
+%
+% Background colors are implemented with |\colorbox|, which prevents line breaking for |\Verb|, |\UseVerb|, and |\EscVerb|. Background colors are only compatible with \fvextra's reimplemented |\Verb| and |\UseVerb| (|extra=true|).
+%
+% See |backgroundcolorvphantom| to customize the height of the background for each line of text, especially for |\Verb|, |\EscVerb|, and |BVerbatim|.
+%
+% When |backgroundcolor| is used with |Verbatim| with a |frame|, it may be necessary to adjust |framesep| and |fillcolor| depending on the desired result. |backgroundcolorpadding| provides a shortcut for this.
+%
+%
+% \item[backgroundcolorpadding (length) (none)]
+% Padding when |backgroundcolor| is set. For |\Verb|, |\UseVerb|, |\EscVerb|, and |BVerbatim|, this sets |\fboxsep| for the |\colorbox| that is used to create the background color. For |Verbatim|, \fancyvrb's frame options are used instead, particularly |framesep| and |fillcolor|.
+%
+% For |Verbatim|, this amounts to a shortcut for a combination of frame-related settings that provide padding when there is a background color. This is only intended for cases with |frame=none| or |frame=single|. In other cases, it may be better to modify the \fancyvrb\ frame settings directly, and it may be necessary to modify the \fancyvrb\ internals to obtain padding on all sides.
+%
+% For |Verbatim|, if |frame=single|, then this is equivalent to the following settings:
+% \begin{itemize}
+% \item |framesep=|\meta{\texttt{backgroundcolorpadding}}
+% \item |fillcolor=\FancyVerbBackgroundColor|
+% \end{itemize}
+%
+% For |Verbatim|, if |frame| has any value other than |single|, then this is equivalent to the following settings:
+% \begin{itemize}
+% \item |frame=single|
+% \item |framerule=0pt|
+% \item |rulecolor=\FancyVerbBackgroundColor|
+% \item |framesep=|\meta{\texttt{backgroundcolorpadding}}
+% \item |fillcolor=\FancyVerbBackgroundColor|
+% \end{itemize}
+%
+%
+% \item[backgroundcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% |\vphantom| or similar macro such as |\strut| that is inserted at the beginning of each line of text using |backgroundcolor|. This allows the height of the background for each line of text to be customized, especially for |\Verb|, |\EscVerb|, and |BVerbatim|. |backgroundcolorvphantom| will typically have no effect on |Verbatim|-based environments unless it is set to a size larger than |\strut|.
+%
+% \item[bgcolor (string) (none)]
+% Alias for |backgroundcolor|.
+%
+% \item[bgcolorpadding (length) (none)]
+% Alias for |backgroundcolorpadding|.
+%
+% \item[bgcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% Alias for |backgroundcolorvphantom|.
+%
+%
% \item[beameroverlays (boolean) (false)]
% Give the |<| and |>| characters their normal text meanings, so that \pkg{beamer} overlays of the form |\only<1>{...}| will work. Note that something like |commandchars=\\\{\}| is required separately to enable macros. This is not incorporated in the |beameroverlays| option because essentially arbitrary command characters could be used; only the |<| and |>| characters are hard-coded for overlays.
%
@@ -522,6 +615,10 @@
% Set the color of visible tabs. By default (|none|), they take the color of their surroundings.
%
%
+% \item[vargsingleline (boolean) (false)]
+% This determines whether \fvextra's |\Verb| and |\SaveVerb| take multi-line (but not multi-paragraph) verbatim arguments, or if they instead require arguments to be on a single line like the original \fancyvrb\ commands.
+%
+%
% \end{optionlist}
%
%
@@ -585,6 +682,8 @@
%
% The new \cmd{\Verb} works as expected (with a few limitations) inside other commands. It even works in movable arguments (for example, in \cmd{\section}), and is compatible with \pkg{hyperref} for generating PDF strings (for example, PDF bookmarks). The \fancyvrb\ definition did work inside some other commands, but essentially functioned as \cmd{\texttt} in that context.
%
+% By default, \cmd{\Verb} takes a multi-line (but not multi-paragraph) verbatim argument. To restore the \fancyvrb\ behavior of requiring a single-line argument, set |vargsingleline=true|.
+%
% \cmd{\Verb} is compatible with |breaklines| and the relevant line-breaking options.
%
% Like the original \fancyvrb\ implementation, the new \cmd{\Verb} can be starred (|\Verb*|) and accepts optional arguments. While \fancyvrb's starred command |\Verb*| is a shortcut for |showspaces|, \fvextra's |\Verb*| is a shortcut for both |showspaces| and |showtabs|. This is more similar to the current behavior of \LaTeX's \Verb{\verb*}, except that \Verb{\verb*} converts tabs into visible spaces instead of displaying them as visible tabs.
@@ -611,6 +710,8 @@
%
% \cmd{\SaveVerb} is reimplemented so that it is equivalent to the reimplemented \cmd{\Verb}. Like the new \cmd{\Verb}, it accepts \meta{text} delimited by a pair of curly braces |{...}|. It supports \cmd{\fvinlineset}. It also adds support for the new |retokenize| option for \cmd{\UseVerb}.
%
+% By default, \cmd{\SaveVerb} takes a multi-line (but not multi-paragraph) verbatim argument. To restore the \fancyvrb\ behavior of requiring a single-line argument, set |vargsingleline=true|.
+%
%
% \subsection{\cmd{\UseVerb}}
%
@@ -718,7 +819,7 @@
%
% Below is an extended example that demonstrates what is possible with |VerbatimBuffer| combined with |\VerbatimInsertBuffer|. This uses |\ifdefstring| from the \pkg{etoolbox} package.
% \begin{itemize}
-% \item |\setformatter| defines an empty |\formatter| macro. Then it loops over the lines in a buffer looking for a line containing only the text ``red''. If this is found, it redefines |\formatter| to |\color{red}|. |FancyVerbBufferIndex| is a counter that is always available for buffer looping. |FancyVerbBufferLength| is the default counter containing the buffer length (number of lines). |\FancyVerbBufferLineName| contains the base name for buffer line macros (default |FancyVerbBufferLine|).
+% \item |\setformatter| defines an empty |\formatter| macro. Then it loops over the lines in a buffer looking for a line containing only the text ``red''. If this is found, it redefines |\formatter| to |\color{red}|. |FancyVerbBufferIndex| is a counter that is always available for buffer looping. |\FancyVerbBufferLength| is the default macro containing the buffer length (number of lines). |\FancyVerbBufferLineName| contains the base name for buffer line macros (default |FancyVerbBufferLine|).
% \item |afterbuffer| involves two steps: (1) |\setformatter| loops through the buffer and defines |\formatter| based on the buffer contents, and (2) |\VerbatimInsertBuffer| typesets the buffer, using |formatcom=\formatter| to format the text based on whether any line contains only the text ``red''.
% \end{itemize}
%
@@ -726,7 +827,7 @@
%\def\setformatter{%
% \def\formatter{}%
% \setcounter{FancyVerbBufferIndex}{1}%
-% \loop\unless\ifnum\value{FancyVerbBufferIndex}>\value{FancyVerbBufferLength}\relax
+% \loop\unless\ifnum\value{FancyVerbBufferIndex}>\FancyVerbBufferLength\relax
% \expandafter\let\expandafter\bufferline
% \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
% \ifdefstring{\bufferline}{red}{\def\formatter{\color{red}}}{}%
@@ -745,7 +846,7 @@
% Here is the same example, but rewritten to use a global buffer with custom buffer names instead.
%
%\begin{tcblisting}{oversize=5em}
-%\begin{VerbatimBuffer}[globalbuffer, bufferlinename=exbuff, bufferlengthname=exbuff]
+%\begin{VerbatimBuffer}[globalbuffer, bufferlinename=exbuff, bufferlengthname=exbufflen]
%first
%second
%red
@@ -753,7 +854,7 @@
%
%\def\formatter{}
%\setcounter{FancyVerbBufferIndex}{1}
-%\loop\unless\ifnum\value{FancyVerbBufferIndex}>\value{exbuff}\relax
+%\loop\unless\ifnum\value{FancyVerbBufferIndex}>\exbufflen\relax
% \expandafter\let\expandafter\bufferline
% \csname exbuff\arabic{FancyVerbBufferIndex}\endcsname
% \ifdefstring{\bufferline}{red}{\def\formatter{\color{red}}}{}
@@ -763,7 +864,7 @@
%\VerbatimInsertBuffer[
% formatcom=\formatter,
% bufferlinename=exbuff,
-% bufferlengthname=exbuff
+% bufferlengthname=exbufflen
%]
%\end{tcblisting}
%
@@ -773,7 +874,7 @@
%
% \begin{optionlist}
% \item[afterbuffer (macro) (\meta{none})]
-% Macro or macros invoked at the end of the environment, after all lines of the environment have been buffered. This is outside the |\begingroup...\endgroup| that wraps verbatim processing, so \fancyvrb\ settings are no longer active. However, the buffer line macros and the buffer length counter are still accessible.
+% Macro or macros invoked at the end of the environment, after all lines of the environment have been buffered. This is outside the |\begingroup...\endgroup| that wraps verbatim processing, so \fancyvrb\ settings are no longer active. However, the buffer line macros and the buffer length macro are still accessible.
%
% \item[bufferer (macro) (\Verb{\FancyVerbDefaultBufferer})]
% This is the macro that adds lines to the buffer. The default is designed to create a truly verbatim buffer via |\detokenize|. This can be customized if you wish to use \fancyvrb\ options related to catcodes to create a buffer that is only partially verbatim (that contains macros).
@@ -789,7 +890,7 @@
% This macro must be defined globally, so |\xdef| or |\gdef| is necessary (this does not interfere with scoping from |globalbuffer|). Otherwise, there are no restrictions. The |\xdef| and |\detokenize| in the default definition guarantee that the buffer consists only of the literal text from the environment, but this is not required for a custom |bufferer|.
%
% \item[bufferlengthname (string) (FancyVerbBufferLength)]
-% Name of the counter (|\newcounter|) storing the length of the buffer. This is the number of lines stored.
+% Name of the macro storing the length of the buffer. This is the number of lines stored.
%
% \item[bufferlinename (string) (FancyVerbBufferLine)]
% The base name of the buffer line macros. The default is |FancyVerbBufferLine|, which will result in buffer macros |\FancyVerbBufferLine<n>| with integer |n| greater than or equal to one and less than or equal to the number of lines (one-based indexing). Since buffer macro names contain a number, they must be accessed differently than typical macros:
@@ -803,28 +904,36 @@
% Shortcut for setting |bufferlengthname| and |bufferlinename| simultaneously, using the same root name. This sets |bufferlengthname| to |<buffername>length| and |bufferlinename| to |<buffername>line|.
%
% \item[globalbuffer (bool) (false)]
-% This determines whether buffer line macros are defined globally, that is, whether they are accessible after the end of the |VerbatimBuffer| environment. If the line macros are defined globally, then the buffer length counter is also increased appropriately outside the environment. |globalbuffer| does not affect any |afterbuffer| macro, since that is invoked inside the environment.
+% This determines whether buffer line macros are defined globally, that is, whether they are accessible after the end of the |VerbatimBuffer| environment. If the line macros are defined globally, then the buffer length macro is also increased appropriately outside the environment. |globalbuffer| does not affect any |afterbuffer| macro, since that is invoked inside the environment.
%
% When buffered lines are used immediately, consider using |afterbuffer| instead of |globalbuffer|. When buffered lines must be used later in a document, consider using |globalbuffer| with custom (and perhaps unique) |bufferlinename| and |bufferlengthname|.
%
-% When |globalbuffer=true|, |VerbatimBuffer| environments with the same buffer name will append to a single buffer, so that it ultimately contains the concatenated contents of all environments. A |VerbatimBuffer| environment with |globalbuffer=false| will append to the buffer created by any previous |VerbatimBuffer| that had |globalbuffer=true| and shared the same buffer name. Any |afterbuffer| macro will have access to a buffer containing the concatenated data. At the very end of the environment with |globalbuffer=false|, after any |afterbuffer|, this appended content will be removed. All buffer line macros (from |bufferlinename|) that were created by that environment are ``deleted'' (|\let| to an undefined macro), and the buffer length counter (from |bufferlengthname|) is reduced proportionally.
+% When |globalbuffer=true|, |VerbatimBuffer| environments with the same buffer name will append to a single buffer, so that it ultimately contains the concatenated contents of all environments. A |VerbatimBuffer| environment with |globalbuffer=false| will append to the buffer created by any previous |VerbatimBuffer| that had |globalbuffer=true| and shared the same buffer name. Any |afterbuffer| macro will have access to a buffer containing the concatenated data. At the very end of the environment with |globalbuffer=false|, after any |afterbuffer|, this appended content will be removed. All buffer line macros (from |bufferlinename|) that were created by that environment are ``deleted'' (|\let| to an undefined macro), and the buffer length macro (from |bufferlengthname|) is reduced proportionally.
% \end{optionlist}
%
%
% \subsection{\cmd{\VerbatimInsertBuffer}}
% \DescribeMacro{\VerbatimInsertBuffer\oarg{options}}
%
-% This inserts an existing buffer created by |VerbatimBuffer| as a |Verbatim| environment. It customizes |Verbatim| internals to function with a buffer in a command context. See the |VerbatimBuffer| documentation for an example of usage.
+% This inserts an existing buffer created by |VerbatimBuffer| as a verbatim environment. The |Verbatim| environment is used by default, but this can be customized by setting |insertenvname|. |\VerbatimInsertBuffer| modifies |Verbatim| and |BVerbatim| internals to function with a buffer in a command context. See the |VerbatimBuffer| documentation for an example of usage.
%
% Options related to catcodes cause the buffer to be retokenized during typesetting. That is, the \fancyvrb\ options used for |\VerbatimInsertBuffer| are not restricted by those that were in effect when |VerbatimBuffer| originally created the buffer, so long as the buffer contains a complete representation of the original |VerbatimBuffer| environment contents.
%
% |\VerbatimInsertBuffer| is not implemented using the typical \fancyvrb\ command and environment implementation styles, so it is not compatible with |\RecustomVerbatimCommand| or |\RecustomVerbatimEnvironment|.
%
+% ~\par
+% \noindent Options defined specifically for \cmd{\VerbatimInsertBuffer}:
+%
+% \begin{optionlist}
+% \item[insertenvname (string) (Verbatim)]
+% This is the name of the verbatim environment used for inserting the buffer. |insertenvname| can be any |Verbatim|- or |BVerbatim|-based environment. Environments defined with |\CustomVerbatimEnvironment| and |\RecustomVerbatimEnvironment| are supported. User-implemented environments that serve as wrappers around |Verbatim| or |BVerbatim| should typically be compatible so long as they accept \pkg{fancyvrb}/\pkg{fvextra} optional arguments in the same way as |Verbatim| and |BVerbatim|.
+% \end{optionlist}
+%
%
% \subsection{\cmd{\VerbatimClearBuffer}}
% \DescribeMacro{\VerbatimClearBuffer\oarg{options}}
%
-% Clear an existing buffer created with \cmd{VerbatimBuffer}. |\global\let| all buffer line macros to an undefined macro and set the buffer length counter to zero.
+% Clear an existing buffer created with \cmd{VerbatimBuffer}. |\global\let| all buffer line macros to an undefined macro and set the buffer length macro to zero.
%
%
%
@@ -885,6 +994,17 @@
% The symbol inserted pre-break for breaks inserted by |breakanywhere|. This does not apply to breaks inserted next to spaces; see |spacebreak|.
%
%
+% \item[breakanywhereinlinestretch (length) (\meta{none})]
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|. This allows the spacing between adjacent non-space characters to stretch, so it should not be used when column alignment is important. For typical line lengths, values between |0.01em| and |0.02em| should be sufficient to provide a cumulative stretch per line that is equal to or greater than the width of one character.
+%
+% This is typically not needed in cases where an overfull |\hbox| only overflows by tiny amount, perhaps a fraction of a pt. In those cases, the overfull |\hbox| could be ignored, |\hfuzz| could be set to 1pt or 2pt to suppress tiny overfull |\hbox| warnings, or |breakanywheresymbolpre| might be redefined to adjust spacing.
+%
+% Implementation: Before each |breakanywhere| break location, this inserts the following sequence of macros:
+%\begin{verbatim}
+%\nobreak\hspace{0pt plus \FV@breaknonspaceinlinestretch}
+%\end{verbatim}
+%
+%
% \item[breakanywheresymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by |breakanywhere|. This does not apply to breaks inserted next to spaces; see |spacebreak|.
%
@@ -931,7 +1051,11 @@
%
%
% \item[breaklines (boolean) (false)]
-% Automatically break long lines. When a line is broken, the result must fit on a single page. There is no support for breaking a line across multiple pages.\footnote{Following the implementation in \pkg{fancyvrb}, each line is typeset within an |\hbox|, so page breaks are not possible.}
+% Automatically break long lines.
+%
+% \textbf{Limitations for verbatim environments/block text}, such as |Verbatim|: When a line is broken, the result must fit on a single page. There is no support for breaking a line across multiple pages.\footnote{Following the implementation in \pkg{fancyvrb}, each line is typeset within an |\hbox|, so page breaks are not possible.}
+%
+% \textbf{Limitations for verbatim commands/inline text}, such as |\Verb|: When a line break is inserted, the text may still overflow into the margin or cause an overfull |\hbox|, depending on hyphenation settings and various penalties related to line breaks. It may be possible to avoid this by allowing additional break locations with |breakbefore|, |breakafter|, or |breakanywhere|. Small overfull |\hbox| warnings can be suppressed by setting |\hfuzz| to a larger value, for example setting it to |2pt| instead of the default |0.1pt|. It is also possible to combine |breakanywhere| with |breakanywhereinlinestretch| to allow flexible spacing between adjacent non-space characters. In cases where it is better to break before the margin rather than overflowing into the margin, consider setting |\emergencystretch|.
%
% By default, automatic breaks occur at spaces (even when |showspaces=true|). Use |breakanywhere| to enable breaking anywhere; use |breakbefore| and |breakafter| for more fine-tuned breaking.
%
@@ -980,6 +1104,12 @@
% |breaknonspaceingroup| allows non-space breaks to be inserted within groups. This option should only be used when |commandchars| is including \LaTeX\ commands that do not take optional arguments and only take mandatory arguments that are typeset. Something like |\textit{text}| is fine, but |\textcolor{red}{text}| is not because one of the mandatory arguments is not typeset but rather provides a setting. For more complex commands, it is typically better to redefine them to insert breaks in appropriate locations using |\FancyVerbBreakStart...\FancyVerbBreakStop|.
%
%
+% \item[breakpreferspaces (boolean) (true)]
+% This determines whether line breaks are preferentially inserted at normal spaces (|breakcollapsespaces=true|, |showspaces=false|) rather than at other locations allowed by |breakbefore|, |breakafter|, or |breakanywhere|.
+%
+% Using |breakpreferspaces=false| with |breakanywhere=true| will typically result in all broken segments of a line going all the way to the right margin.
+%
+%
% \item[breaksymbol (string) (breaksymbolleft)]
% Alias for |breaksymbolleft|.
%
@@ -1369,6 +1499,9 @@
% \item[formatcom* (macro) (\meta{empty})]
% \fancyvrb's |formatcom| is used to execute commands before verbatim text. It overwrites any existing |formatcom|. |formatcom*| appends changes to existing settings.
%
+% \item[listparameters (macro) (\meta{empty})]
+% Set list-related lengths to modify spacing around lines of code. For example, |listparameters=\setlength{\topsep}{0pt}| will remove space before and after a |Verbatim| environment.
+%
% \end{optionlist}
%
%
@@ -1506,7 +1639,7 @@
%
% There are two contexts in which sentinels may be needed. In delimited macro arguments, such as |\def\macro#1\sentinel{...}|, a sentinel is needed as the delimiter. Because the delimiting macro need not be defined, special delimiting macros need not be created for this case. The important thing is to ensure that the macro name is sufficiently unique to avoid collisions. Typically, using \cmd{\makeatletter} to allow something like \cmd{\@sentinel} will be sufficient. For added security, additional characters can be given catcode 11, to allow things like \cmd{\@sent!nel}.
%
-% The other context for sentinels is in scanning through a sequence of tokens that is delimited by a sentinel, and using \cmd{\ifx} comparisons to identify the sentinel and stop scanning. In this case, using an undefined macro is risky. Under normal conditions, the sequence of tokens could contain an undefined macro due to mistyping. In some \fvextra\ applications, the tokens will have been incorrectly tokenized under a normal catcode regime, and need to be retokenized as verbatim, in which case undefined macros must be expected. Thus, a sentinel macro whose expansion is resistent to collisions is needed.
+% The other context for sentinels is in scanning through a sequence of tokens that is delimited by a sentinel, and using \cmd{\ifx} comparisons to identify the sentinel and stop scanning. In this case, using an undefined macro is risky. Under normal conditions, the sequence of tokens could contain an undefined macro due to mistyping. In some \fvextra\ applications, the tokens will have been incorrectly tokenized under a normal catcode regime, and need to be retokenized as verbatim, in which case undefined macros must be expected. Thus, a sentinel macro whose expansion is resistant to collisions is needed.
%
% \begin{macro}{\FV@<Sentinel>}
% This is the standard default \fvextra\ delimited-macro sentinel. It is used with \cmd{\makeatletter} by changing |<| and |>| to catcode 11. The |<| and |>| add an extra level of collision resistance. Because it is undefined, it is \emph{only} appropriate for use in delimited macro arguments.
@@ -1820,12 +1953,14 @@
% \end{macro}
%
%
-% \begin{macro}{\FVExtraReadVArg}
-% Read a verbatim argument that is bounded by two identical characters or by paired curly braces. This uses the \cmd{\outer} |^^M| with \cmd{\FV@EOL} trick from \fancyvrb\ to prevent runaway arguments. An \cmd{\outer} |^^C| is used to prevent |^^C| from being part of arguments, so that it can be used later as a sentinel if retokenization is needed. |^^B| is handled in the same manner for symmetry with later usage, though technically it is not used as a sentinel so this is not strictly necessary. Alternate |UTF| macros, defined later, are invoked when under pdfTeX with \pkg{inputenc} using UTF-8.
+% \begin{macro}{\FVExtraReadVArg,\FVExtraReadVArgSingleLine}
+% Read a verbatim argument that is bounded by two identical characters or by paired curly braces. There are two variants: one reads a multi-line (but not multi-paragraph) argument, while the other restricts the argument to a single line via the \cmd{\outer} |^^M| trick from \fancyvrb. An \cmd{\outer} |^^C| is used to prevent |^^C| from being part of arguments, so that it can be used later as a sentinel if retokenization is needed. |^^B| is handled in the same manner for symmetry with later usage, though technically it is not used as a sentinel so this is not strictly necessary. Alternate |UTF| macros, defined later, are invoked when under pdfTeX with \pkg{inputenc} using UTF-8.
%
% The lookahead for the type of delimiting character is done under a verbatim catcode regime, except that the space catcode is preserved and curly braces are given their normal catcodes. This provides consistency with any \cmd{\FVExtra@ifnextcharVArg} or \cmd{\FVExtra@ifstarVArg} that may have been used previously, allows characters like |#| and |%| to be used as delimiters when the verbatim argument is read outside any other commands (untokenized), and allows paired curly braces to serve as delimiters. Any additional command-specific catcode modifications should only be applied to the argument after it has been read, since they do not apply to the delimiters.
%
% Once the delimiter lookahead is complete, catcodes revert to full verbatim, and are then modified appropriately given the type of delimiter. The space and tab must be \cmd{\active} to be preserved correctly when the verbatim argument is not inside any other commands (otherwise, they collapse into single spaces).
+%
+% Note that |\FVExtraReadVArg| will interpret a line break as a catcode 10 space, not as an |\active| space. Depending on usage, the argument may need to be processed with |\FVExtraDetokenizeVArg| and |\FVExtraRetokenizeVArg| to fix this.
% \begin{macrocode}
\def\FVExtraReadVArg#1{%
\begingroup
@@ -1840,6 +1975,34 @@
\FV@OuterDefSTXEmpty
\catcode`\^^C=\active
\FV@OuterDefETXEmpty
+ \begingroup
+ \catcode`\ =\FV@TmpSpaceCat\relax
+ \catcode`\{=1
+ \catcode`\}=2
+ \@ifnextchar\bgroup
+ {\endgroup
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\ =\active
+ \catcode`\^^I=\active
+ \FV@ReadVArg@Group{#1}}%
+ {\endgroup
+ \catcode`\ =\active
+ \catcode`\^^I=\active
+ \FV@ReadVArg@Char{#1}}}
+\def\FVExtraReadVArgSingleLine#1{%
+ \begingroup
+ \ifFV@pdfTeXinputenc
+ \ifdefstring{\inputencodingname}{utf8}%
+ {\let\FV@ReadVArg@Char\FV@ReadVArg@Char@UTF}%
+ {}%
+ \fi
+ \edef\FV@TmpSpaceCat{\the\catcode` }%
+ \let\do\@makeother\FVExtraDoSpecials
+ \catcode`\^^B=\active
+ \FV@OuterDefSTXEmpty
+ \catcode`\^^C=\active
+ \FV@OuterDefETXEmpty
\catcode`\^^M=\active
\FV@OuterDefEOLEmpty
\begingroup
@@ -1852,20 +2015,20 @@
\catcode`\}=2
\catcode`\ =\active
\catcode`\^^I=\active
- \FV@ReadVArg@Group{#1}\FV@EOL}%
+ \FV@ReadVArg@Group{#1}}%
{\endgroup
\catcode`\ =\active
\catcode`\^^I=\active
- \FV@ReadVArg@Char{#1}\FV@EOL}}
+ \FV@ReadVArg@Char{#1}}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\FV@ReadVArg@Group}
% The argument is read under the verbatim catcode regime already in place from \cmd{\FVExtraReadVArg}. The \cmd{\endgroup} returns to prior catcodes. Any command-specific catcodes can be applied later via \cmd{\scantokens}. Using them here in reading the argument would have no effect as far as later processing with \cmd{\scantokens} is concerned, unless the argument were read outside any other commands and additional characters were given catcodes 1 or 2 (like the curly braces). That scenario is not allowed because it makes reading the argument overly dependent on the argument content. (Technically, reading the argument is already dependent on the argument content in the sense that the argument cannot contain unescaped unpaired curly braces, given that it is delimited by curly braces.)
% \begin{macrocode}
-\def\FV@ReadVArg@Group#1#2#3{%
+\def\FV@ReadVArg@Group#1#2{%
\endgroup
- #1{#3}}
+ #1{#2}}
% \end{macrocode}
% \end{macro}
%
@@ -1874,9 +2037,9 @@
%
% It would be possible to read the argument using any command-specific catcode settings, but that would result in different behavior depending on whether the argument is already tokenized, and would make reading the argument overly dependent on the argument content.
% \begin{macrocode}
-\def\FV@ReadVArg@Char#1#2#3{%
+\def\FV@ReadVArg@Char#1#2{%
\expandafter\expandafter\expandafter
- \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#3}\relax
+ \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#2}\relax
\expandafter\@gobble
\else
\expandafter\@firstofone
@@ -1884,10 +2047,10 @@
{\PackageError{fvextra}%
{Verbatim delimiters must be single characters, not commands}%
{Try a different delimiter}}%
- \def\FV@ReadVArg@Char@i##1##2##3#3{%
+ \def\FV@ReadVArg@Char@i##1##2#2{%
\endgroup
- ##1{##3}}%
- \FV@ReadVArg@Char@i{#1}\FV@EOL}%
+ ##1{##2}}%
+ \FV@ReadVArg@Char@i{#1}}%
% \end{macrocode}
% \end{macro}
%
@@ -1902,9 +2065,9 @@
% \begin{macro}{\FV@ReadVArg@Char@UTF}
% This is a variant of \cmd{\FV@ReadVArg@Char} that allows non-ASCII codepoints as delimiters under the pdfTeX engine with \pkg{inputenc} using UTF-8. Under pdfTeX, non-ASCII codepoints must be handled as a sequence of bytes rather than as a single entity. \cmd{\FV@ReadVArg@Char} is automatically \cmd{\let} to this version when appropriate. This uses the \cmd{\FV@U8:<byte>} macros for working with \pkg{inputenc}'s UTF-8.
% \begin{macrocode}
-\def\FV@ReadVArg@Char@UTF#1#2#3{%
+\def\FV@ReadVArg@Char@UTF#1#2{%
\expandafter\expandafter\expandafter
- \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#3}\relax
+ \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#2}\relax
\expandafter\@gobble
\else
\expandafter\@firstofone
@@ -1912,23 +2075,23 @@
{\PackageError{fvextra}%
{Verbatim delimiters must be single characters, not commands}%
{Try a different delimiter}}%
- \ifcsname FV@U8:\detokenize{#3}\endcsname
+ \ifcsname FV@U8:\detokenize{#2}\endcsname
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\def\FV@UTF@octets@after##1{\FV@ReadVArg@Char@UTF@i{#1}{##1}}%
- \csname FV@U8:\detokenize{#3}\endcsname#3}%
- {\FV@ReadVArg@Char@UTF@i{#1}{#3}}}
+ \csname FV@U8:\detokenize{#2}\endcsname#2}%
+ {\FV@ReadVArg@Char@UTF@i{#1}{#2}}}
% \end{macrocode}
%
% \begin{macro}{\FV@ReadVArg@Char@UTF@i}
% \begin{macrocode}
\def\FV@ReadVArg@Char@UTF@i#1#2{%
- \def\FV@ReadVArg@Char@i##1##2##3#2{%
+ \def\FV@ReadVArg@Char@i##1##2#2{%
\endgroup
- ##1{##3}}%
- \FV@ReadVArg@Char@i{#1}\FV@EOL}%
+ ##1{##2}}%
+ \FV@ReadVArg@Char@i{#1}}%
% \end{macrocode}
% \end{macro}
%
@@ -1939,6 +2102,18 @@
% \end{macro}
%
%
+% \begin{macro}{vargsingleline}
+% This determines whether |\Verb| and |\SaveVerb| use |\FVExtraReadVArg| or |\FVExtraReadVArgSingleLine| to read their arguments. It has no effect on |\EscVerb|, since that does not use special tokenization.
+% \begin{macrocode}
+\newbool{FV@vargsingleline}
+\define@booleankey{FV}{vargsingleline}%
+ {\booltrue{FV@vargsingleline}}
+ {\boolfalse{FV@vargsingleline}}
+\fvset{vargsingleline=false}
+% \end{macrocode}
+% \end{macro}
+%
+%
%
%
% \subsubsection{Reading and protecting arguments in expansion-only contexts}
@@ -2926,7 +3101,7 @@
% \end{macro}
%
%
-% \paragraph{Detokenize as if the original source were tokenized verbatim, except for backslash escapes of non-catcode 11 characters, then convert to PDF string}
+% \paragraph{Detokenize as if the original source were tokenized verbatim, except for backslash escapes of non-catcode 11 characters, then convert to PDF string}\hfill\\
%
% \begin{macro}{\FVExtraPDFStringEscapedVerbatimDetokenize}
% This is identical to \cmd{\FVExtraEscapedVerbatimDetokenize}, except that the output is converted to a valid PDF string. All spaces are represented with the octal escape \cmd{\040} to prevent adjacent spaces from being merged. There is no alternate implementation for restricting escapes to ASCII symbols and punctuation. Typically, this would be used in an expansion-only context to create something like bookmarks, while \cmd{\FVExtraEscapedVerbatimDetokenize} (potentially with escape restrictions) would be used in parallel to generate whatever is actually typeset. Escape errors can be handled in generating what is typeset.
@@ -2962,7 +3137,7 @@
% \end{macro}
%
% \begin{macro}{\FV@PDFStrEscVDetok@ScanCont}
-% This is modified to use |\040| for the space. In the unescaped case, using a normal space here is fine, but in the escaped case, the preceeding or following token could be an escaped space.
+% This is modified to use |\040| for the space. In the unescaped case, using a normal space here is fine, but in the escaped case, the preceding or following token could be an escaped space.
% \begin{macrocode}
\begingroup
\catcode`\!=0\relax
@@ -3058,7 +3233,7 @@
% \end{macro}
%
% \begin{macro}{\FV@PDFStrEscVDetok@ScanTokenNoSpace}
-% This was modifed to add \cmd{\FVExtraPDFStringEscapeChar}
+% This was modified to add \cmd{\FVExtraPDFStringEscapeChar}
% \begin{macrocode}
\gdef\FV@PDFStrEscVDetok@ScanTokenNoSpace#1#2^^C{%
\if\relax\detokenize{#2}\relax
@@ -3250,8 +3425,7 @@
% \subsection{Hooks}
%
%
-% \begin{macro}{\FV@FormattingPrep@PreHook}
-% \begin{macro}{\FV@FormattingPrep@PostHook}
+% \begin{macro}{\FV@FormattingPrep@PreHook,\FV@FormattingPrep@PostHook}
% These are hooks for extending |\FV@FormattingPrep|. |\FV@FormattingPrep| is inside a group, before the beginning of processing, so it is a good place to add extension code. These hooks are used for such things as tweaking math mode behavior and preparing for |breakbefore| and |breakafter|. The |PreHook| should typically be used, unless \pkg{fancyvrb}'s font settings, whitespace setup, and active character definitions are needed for extension code.
% \begin{macrocode}
\let\FV@FormattingPrep@PreHook\@empty
@@ -3260,7 +3434,6 @@
\expandafter\FV@FormattingPrep@PreHook\FV@FormattingPrep\FV@FormattingPrep@PostHook}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\FV@PygmentsHook}
@@ -3326,7 +3499,8 @@
% \begin{macro}{\FV@UseInlineKeyValues}
% \begin{macrocode}
\def\FV@UseInlineKeyValues{%
- \expandafter\fvset\expandafter{\FV@InlineKeyValues}}
+ \expandafter\fvset\expandafter{\FV@InlineKeyValues}%
+ \FV@ApplyBreakAnywhereInlineStretch}
% \end{macrocode}
% \end{macro}
%
@@ -3432,7 +3606,10 @@
% \begin{macrocode}
\def\FVC@Verb@Extra@i{%
\begingroup
- \FVExtraReadVArg{%
+ \ifbool{FV@vargsingleline}%
+ {\let\FV@Reader\FVExtraReadVArgSingleLine}%
+ {\let\FV@Reader\FVExtraReadVArg}%
+ \FV@Reader{%
\FV@UseInlineKeyValues\FV@UseKeyValues\FV@FormattingPrep
\FVExtraDetokenizeVArg{%
\FVExtraRetokenizeVArg{\FVC@Verb@Extra@ii}{\FV@CatCodes}}}}
@@ -3440,15 +3617,26 @@
% \end{macro}
%
% \begin{macro}{\FVC@Verb@Extra@ii}
+% |breaklines| is only applied when there is no background color, since |\colorbox| prevents line breaks.
% \begin{macrocode}
\def\FVC@Verb@Extra@ii#1{%
- \ifFV@breaklines
+ \ifx\FancyVerbBackgroundColor\relax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
+ {\ifbool{FV@breaklines}%
+ {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
+ {\mbox{\FancyVerbFormatInline{#1}}}}%
+ {\setlength{\FV@TmpLength}{\fboxsep}%
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \setlength{\fboxsep}{0pt}%
+ \else
+ \setlength{\fboxsep}{\FancyVerbBackgroundColorPadding}%
+ \fi
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \FancyVerbBackgroundColorVPhantom\FancyVerbFormatInline{#1}}}%
\endgroup}
% \end{macrocode}
% \end{macro}
@@ -3488,7 +3676,10 @@
\@namedef{FV@SV@#1}{}%
\@namedef{FV@SVRaw@#1}{}%
\begingroup
- \FVExtraReadVArg{%
+ \ifbool{FV@vargsingleline}%
+ {\let\FV@Reader\FVExtraReadVArgSingleLine}%
+ {\let\FV@Reader\FVExtraReadVArg}%
+ \FV@Reader{%
\FVC@SaveVerb@Extra@i{#1}}}
% \end{macrocode}
% \end{macro}
@@ -3591,15 +3782,7 @@
%
% \begin{macro}{\FV@UseVerb@Extra}
% \begin{macrocode}
-\def\FV@UseVerb@Extra#1{%
- \ifFV@breaklines
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
- \endgroup}
+\let\FV@UseVerb@Extra\FVC@Verb@Extra@ii
% \end{macrocode}
% \end{macro}
%
@@ -3654,15 +3837,7 @@
%
% \begin{macro}{\FVC@EscVerb@ii}
% \begin{macrocode}
-\def\FVC@EscVerb@ii#1{%
- \ifFV@breaklines
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
- \endgroup}
+\let\FVC@EscVerb@ii\FVC@Verb@Extra@ii
% \end{macrocode}
% \end{macro}
%
@@ -3805,7 +3980,7 @@
% \end{macro}
%
%
-% \begin{macro}{writer, \FV@Writer}
+% \begin{macro}{writer,\FV@Writer}
% Define writer macro that processes each line before writing.
% \begin{macrocode}
\define@key{FV}{writer}{%
@@ -3820,7 +3995,7 @@
% \begin{macro}{VerbatimWrite}
% The environment implementation follows standard \fancyvrb\ environment style.
%
-% A special write counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |writer|, but are needed to enable \fancyvrb\ options when a custom |writer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive|, |\FancyVerbFormatCom|, and |\FV@DefineTabOut|.
+% A special write counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |writer|, but are needed to enable \fancyvrb\ options when a custom |writer| is used in conjunction with optional environment arguments. These include |\FancyVerbDefineActive|, |\FancyVerbFormatCom|, and |\FV@DefineTabOut|.
% \begin{macrocode}
\newcounter{FancyVerbWriteLine}
\def\VerbatimWrite{%
@@ -3858,7 +4033,7 @@
%
% By default, all \fancyvrb\ options except for |VerbatimBuffer|-specific options are ignored. This can be customized on a per-environment basis via environment optional arguments.
%
-% \begin{macro}{afterbuffer, \FV@afterbuffer}
+% \begin{macro}{afterbuffer,\FV@afterbuffer}
% Macro that is inserted after the last line of the environment is buffered, immediately before the environment ends.
% \begin{macrocode}
\define@key{FV}{afterbuffer}{%
@@ -3868,13 +4043,13 @@
% \end{macro}
%
% \begin{macro}{FancyVerbBufferIndex}
-% Current index in buffer during buffering. This is given a |\FancyVerb*| macro name since it may be accessed by the user in defining custom |bufferer|.
+% Current index in buffer during buffering. This is given a |FancyVerb*| macro name since it may be accessed by the user in defining custom |bufferer|.
% \begin{macrocode}
\newcounter{FancyVerbBufferIndex}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{bufferer, \FV@Bufferer, \FancyVerbDefaultBufferer}
+% \begin{macro}{bufferer,\FV@Bufferer,\FancyVerbDefaultBufferer}
% This is the macro that adds lines to the buffer. The default is designed to create a truly verbatim buffer via |\detokenize|.
% \begin{macrocode}
\define@key{FV}{bufferer}{%
@@ -3887,14 +4062,16 @@
% \end{macro}
%
% \begin{macro}{bufferlengthname, \FV@bufferlengthname}
-% Name of counter storing the length of the buffer.
+% Name of macro storing the length of the buffer.
% \begin{macrocode}
\define@key{FV}{bufferlengthname}{%
- \ifcsname c@#1\endcsname
+ \ifcsname#1\endcsname
\else
- \newcounter{#1}%
+ \expandafter\xdef\csname#1\endcsname{0}%
\fi
- \def\FV@bufferlengthname{#1}}
+ \def\FV@bufferlengthname{#1}%
+ \expandafter\def\expandafter\FV@bufferlengthmacro\expandafter{%
+ \csname#1\endcsname}}
\fvset{bufferlengthname=FancyVerbBufferLength}
% \end{macrocode}
% \end{macro}
@@ -3917,7 +4094,7 @@
% \end{macro}
%
% \begin{macro}{globalbuffer, FV@globalbuffer}
-% Whether buffer macros and the buffer length counter are defined globally.
+% Whether buffer line macros and the buffer length macro are defined globally.
% \begin{macrocode}
\newbool{FV@globalbuffer}
\define@booleankey{FV}{globalbuffer}%
@@ -3931,12 +4108,12 @@
% \begin{macro}{VerbatimBuffer}
% The environment implementation follows standard \fancyvrb\ environment style.
%
-% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the exact location of the |\setcounter| commands at the end of the environment relative to |\begingroup...\endgroup| is not important.
+% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjunction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the exact location of the |\setcounter| commands at the end of the environment relative to |\begingroup...\endgroup| is not important.
% \begin{macrocode}
\newcounter{FancyVerbBufferLine}
-\newcounter{FV@oldbufferlength}
\newbool{FV@globalbuffer@tmp}
-\let\FV@bufferlengthname@tmp\relax
+\let\FV@oldbufferlength\relax
+\let\FV@bufferlengthmacro@tmp\relax
\let\FancyVerbBufferLineName@tmp\relax
\let\FV@afterbuffer@tmp\relax
\def\VerbatimBuffer{%
@@ -3948,17 +4125,14 @@
\@bsphack
\begingroup
\FV@UseKeyValues
- \setcounter{FancyVerbBufferLine}%
- {\expandafter\value\expandafter{\FV@bufferlengthname}}%
+ \setcounter{FancyVerbBufferLine}{\FV@bufferlengthmacro}%
\let\c@FancyVerbLine\c@FancyVerbBufferLine
- \setcounter{FancyVerbBufferIndex}%
- {\expandafter\value\expandafter{\FV@bufferlengthname}}%
+ \setcounter{FancyVerbBufferIndex}{\FV@bufferlengthmacro}%
\ifbool{FV@globalbuffer}%
{\global\booltrue{FV@globalbuffer@tmp}}%
{\global\boolfalse{FV@globalbuffer@tmp}%
- \setcounter{FV@oldbufferlength}%
- {\expandafter\value\expandafter{\FV@bufferlengthname}}%
- \global\let\FV@bufferlengthname@tmp\FV@bufferlengthname
+ \expandafter\global\expandafter\let\expandafter\FV@oldbufferlength\FV@bufferlengthmacro
+ \global\let\FV@bufferlengthmacro@tmp\FV@bufferlengthmacro
\global\let\FancyVerbBufferLineName@tmp\FancyVerbBufferLineName}%
\global\let\FV@afterbuffer@tmp\FV@afterbuffer
\FV@DefineWhiteSpace
@@ -3969,8 +4143,7 @@
\FancyVerbFormatCom
\FV@Scan}
\def\FVE@VerbatimBuffer{%
- \expandafter\setcounter\expandafter{\FV@bufferlengthname}%
- {\value{FancyVerbBufferIndex}}%
+ \expandafter\xdef\FV@bufferlengthmacro{\theFancyVerbBufferIndex}%
\setcounter{FancyVerbBufferIndex}{0}%
\endgroup
\@esphack
@@ -3980,16 +4153,16 @@
\endgroup
\ifbool{FV@globalbuffer@tmp}%
{}%
- {\loop\unless\ifnum\expandafter\value\expandafter{\FV@bufferlengthname@tmp}=
- \value{FV@oldbufferlength}\relax
+ {\loop\unless\ifnum\FV@bufferlengthmacro@tmp=\FV@oldbufferlength\relax
\expandafter\global\expandafter\let\csname
- \FancyVerbBufferLineName@tmp
- \expandafter\arabic\expandafter{\FV@bufferlengthname@tmp}%
+ \FancyVerbBufferLineName@tmp\FV@bufferlengthmacro@tmp
\endcsname\FV@Undefined
- \expandafter\addtocounter\expandafter{\FV@bufferlengthname@tmp}{-1}%
+ \expandafter\xdef\FV@bufferlengthmacro@tmp{%
+ \the\numexpr\FV@bufferlengthmacro@tmp-1\relax}%
\repeat
- \global\let\FV@bufferlengthname@tmp\relax
- \global\let\FancyVerbBufferLineName@tmp\relax}}
+ \global\let\FV@bufferlengthmacro@tmp\relax
+ \global\let\FancyVerbBufferLineName@tmp\relax}%
+ \global\let\FV@oldbufferlength\relax}
\def\endVerbatimBuffer{\FVE@VerbatimBuffer}
% \end{macrocode}
% \end{macro}
@@ -3997,53 +4170,76 @@
%
%
% \subsubsection{\cmd{\VerbatimInsertBuffer}}
-% \begin{macro}{\VerbatimInsertBuffer}
-% This inserts an existing buffer created by |VerbatimBuffer| as a |Verbatim| environment. It customizes |Verbatim| internals to function with a buffer in a command context.
+% \begin{macro}{\VerbatimInsertBuffer, insertenvname}
+% This inserts an existing buffer created with |VerbatimBuffer| as a verbatim environment. By default, the inserted environment is |Verbatim|; this can be modified with the option |insertenvname| to any |Verbatim|- or |BVerbatim|-based environment, or any environment with a compatible implementation. The |Verbatim| and |BVerbatim| internals are customized to function with a buffer in a command context.
+%
+% Notes on the implementation of |\VerbatimInsertBuffer@i|:
+% \begin{itemize}
+% \item The active |^^M| allows a verbatim environment to read optional arguments in the usual way, without requiring modifications to argument-reading macros.
+% \item The |\begingroup\fvset{#1}\global\let\FV@CurrentVerbatimInsertEnvName...| is used to extract any |insertenvname| setting from optional arguments. Most optional arguments apply to the verbatim environment or to the customized verbatim internals that are invoked within it. However, |insertenvname| is needed earlier to determine which verbatim environment is in use. It is not possible simply to use |\fvset{#1}| before the verbatim environment to apply all settings, because that would conflict with the precedence of option processing in |\FV@Environment|.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\VerbatimInsertBuffer}[1][]{%
- \begingroup
+\define@key{FV}{insertenvname}{%
+ \def\FV@VerbatimInsertEnvName{#1}}
+\fvset{insertenvname=Verbatim}
+\def\FV@Environment@InsertBuffer#1#2{%
\def\FV@KeyValues{#1}%
- \def\FV@Scan{%
- \FV@CatCodes
- \xdef\FV@EnvironName{Verbatim}%
- \ifnum\expandafter\value\expandafter{\FV@bufferlengthname}=\z@\relax
- \PackageError{fvextra}%
- {Buffer length counter \FV@bufferlengthname\space is invalid or zero}%
- {}%
- \let\FV@GetLine\relax
+ \FV@GetKeyValues{\@nameuse{FVB@#2}}}
+\def\FV@Scan@InsertBuffer{%
+ \FV@CatCodes
+ \xdef\FV@EnvironName{\FV@VerbatimInsertEnvName}%
+ \ifnum\FV@bufferlengthmacro=\z@\relax
+ \PackageError{fvextra}%
+ {Buffer length macro \expandafter\string\FV@bufferlengthmacro\space is invalid or zero}%
+ {}%
+ \let\FV@GetLine\relax
+ \fi
+ \FV@BeginScanning}%
+\def\VerbatimInsertBuffer@def@FV@Line#1{%
+ \FVExtraRetokenizeVArg{\def\FV@Line}{}{#1}}
+\def\FancyVerbGetLine@VerbatimInsertBuffer{%
+ \ifnum\value{FancyVerbBufferIndex}>\FV@bufferlengthmacro\relax
+ \global\let\FV@EnvironName\relax
+ \let\next\relax
+ \else
+ \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \expandafter\let\expandafter\FV@Line@Buffer
+ \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \expandafter\VerbatimInsertBuffer@def@FV@Line\expandafter{\FV@Line@Buffer}%
+ \def\next{\FV@PreProcessLine\FV@GetLine}%
+ \stepcounter{FancyVerbBufferIndex}%
+ \else
+ \def\next{%
+ \PackageError{fvextra}%
+ {Buffer with line macro named
+ "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
+ {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
+ }%
\fi
- \FV@GetLine}%
+ \fi
+ \next}
+\newcommand{\VerbatimInsertBuffer}[1][]{%
+ \begingroup
+ \let\FV@Scan\FV@Scan@InsertBuffer
\let\FV@CheckScan\relax
+ \let\FV@Environment\FV@Environment@InsertBuffer
+ \let\FancyVerbGetLine\FancyVerbGetLine@VerbatimInsertBuffer
\setcounter{FancyVerbBufferIndex}{1}%
- \def\VerbatimInsertBuffer@def@FV@Line##1{%
- \FVExtraRetokenizeVArg{\def\FV@Line}{}{##1}}
- \def\FancyVerbGetLine{%
- \ifnum\value{FancyVerbBufferIndex}>%
- \expandafter\value\expandafter{\FV@bufferlengthname}\relax
- \global\let\FV@EnvironName\relax
- \let\next\relax
- \else
- \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
- \expandafter\let\expandafter\FV@Line@Buffer
- \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
- \expandafter\VerbatimInsertBuffer@def@FV@Line\expandafter{\FV@Line@Buffer}%
- \def\next{\FV@PreProcessLine\FV@GetLine}%
- \stepcounter{FancyVerbBufferIndex}%
- \else
- \def\next{%
- \PackageError{fvextra}%
- {Buffer with line macro named
- "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
- {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
- }%
- \fi
- \fi
- \next}%
- \FVB@Verbatim
- \FVE@Verbatim
+ \VerbatimInsertBuffer@i{#1}%
\setcounter{FancyVerbBufferIndex}{0}%
\endgroup
\@doendpe}
+\begingroup
+\catcode`\^^M=\active
+\gdef\VerbatimInsertBuffer@i#1{%
+ \begingroup%
+ \fvset{#1}%
+ \global\let\FV@CurrentVerbatimInsertEnvName\FV@VerbatimInsertEnvName%
+ \endgroup%
+ \csname \FV@CurrentVerbatimInsertEnvName\endcsname[#1]^^M%
+ \csname end\FV@CurrentVerbatimInsertEnvName\endcsname%
+ \global\let\FV@CurrentVerbatimInsertEnvName\FV@Undefined}%
+\endgroup
% \end{macrocode}
% \end{macro}
%
@@ -4056,9 +4252,8 @@
\begingroup
\def\FV@KeyValues{#1}%
\FV@UseKeyValues
- \setcounter{FancyVerbBufferIndex}%
- {\expandafter\value\expandafter{\FV@bufferlengthname}}%
- \expandafter\setcounter\expandafter{\FV@bufferlengthname}{0}%
+ \setcounter{FancyVerbBufferIndex}{\FV@bufferlengthmacro}%
+ \expandafter\xdef\FV@bufferlengthmacro{0}%
\loop\unless\ifnum\value{FancyVerbBufferIndex}<1\relax
\expandafter\global\expandafter\let
\csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
@@ -4714,7 +4909,7 @@
%
%
% \begin{macro}{\FV@ListProcessLine@NoBreak}
-% Redefined |\FV@ListProcessLine| in which |\FancyVerbFormatText| is added and tab handling is explicit. The |@NoBreak| suffix is added because |\FV@ListProcessLine| will be |\let| to either this macro or to |\FV@ListProcessLine@Break| depending on whether line breaking is enabled.
+% Redefined |\FV@ListProcessLine| in which |bgcolor| support is added, |\FancyVerbFormatText| is added, and tab handling is explicit. The |@NoBreak| suffix is added because |\FV@ListProcessLine| will be |\let| to either this macro or to |\FV@ListProcessLine@Break| depending on whether line breaking is enabled.
% \begin{macrocode}
\def\FV@ListProcessLine@NoBreak#1{%
\hbox to \hsize{%
@@ -4722,9 +4917,10 @@
\hbox to \linewidth{%
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{%
- \FV@ObeyTabs{\FancyVerbFormatText{#1}}}}\hss
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{%
+ \FV@ObeyTabs{\FancyVerbFormatText{#1}}}}}\hss
\FV@RightListFrame
\FV@RightListNumber}%
\hss}}
@@ -4737,6 +4933,10 @@
% \begin{macrocode}
\def\FV@BProcessLine#1{%
\hbox{\FancyVerbFormatLine{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \else
+ \expandafter\FancyVerbBackgroundColorVPhantom
+ \fi
\FancyVerbHighlightLine{%
\FV@ObeyTabs{\FancyVerbFormatText{#1}}}}}}
% \end{macrocode}
@@ -4964,6 +5164,194 @@
%
%
%
+% \subsubsection{Background color}
+% \label{sec:impl:extensions:bgcolor}
+%
+% Define an option |backgroundcolor| that provides a basic implementation of a background color behind commands and environments. \pkg{tcolorbox} or a similar package should be used for more sophisticated background colors.
+% \begin{macro}{backgroundcolor,bgcolor,\FancyVerbBackgroundColor}
+% \begin{macrocode}
+\define@key{FV}{backgroundcolor}{%
+ \def\FancyVerbBackgroundColor{#1}%
+ \ifx\FancyVerbBackgroundColor\FV@None
+ \let\FancyVerbBackgroundColor\relax
+ \else\ifx\FancyVerbBackgroundColor\@empty
+ \let\FancyVerbBackgroundColor\relax
+ \fi\fi}%
+\fvset{backgroundcolor=none}
+\define@key{FV}{bgcolor}{%
+ \fvset{backgroundcolor=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{backgroundcolorvphantom,bgcolorvphantom,\FancyVerbBackgroundColorVPhantom}
+% \begin{macrocode}
+\define@key{FV}{backgroundcolorvphantom}{%
+ \def\FancyVerbBackgroundColorVPhantom{#1}%
+ \ifx\FancyVerbBackgroundColorVPhantom\FV@None
+ \let\FancyVerbBackgroundColorVPhantom\relax
+ \else\ifx\FancyVerbBackgroundColorVPhantom\@empty
+ \let\FancyVerbBackgroundColorVPhantom\relax
+ \fi\fi}
+\fvset{backgroundcolorvphantom=\vphantom{\"Apgjy}}
+\define@key{FV}{bgcolorvphantom}{%
+ \fvset{backgroundcolorvphantom=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{backgroundcolorpadding, bgcolorpadding, \FancyVerbBackgroundColorPadding}
+% \begin{macrocode}
+\let\FancyVerbBackgroundColorPadding\relax
+\def\FV@backgroundcolorpadding@none@framenotsingle{%
+ \fvset{frame=none,framerule,rulecolor=none}}
+\def\FV@backgroundcolorpadding@dim@framenotsingle{%
+ \fvset{frame=single,framerule=0pt,rulecolor=\FancyVerbBackgroundColor}}
+\define@key{FV}{backgroundcolorpadding}{%
+ \def\FancyVerbBackgroundColorPadding{#1}%
+ \ifx\FancyVerbBackgroundColorPadding\FV@None
+ \let\FancyVerbBackgroundColorPadding\relax
+ \else\ifx\FancyVerbBackgroundColorPadding\@empty
+ \let\FancyVerbBackgroundColorPadding\relax
+ \fi\fi
+ \let\FV@Next\relax
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \ifx\FV@BeginListFrame\FV@BeginListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@LeftListFrame\FV@LeftListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@RightListFrame\FV@RightListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@EndListFrame\FV@EndListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \FV@Next
+ \fvset{framesep,fillcolor=none}%
+ \else
+ \ifx\FV@BeginListFrame\FV@BeginListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@LeftListFrame\FV@LeftListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@RightListFrame\FV@RightListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@EndListFrame\FV@EndListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \FV@Next
+ \fvset{framesep=#1,fillcolor=\FancyVerbBackgroundColor}%
+ \fi}
+\define@key{FV}{bgcolorpadding}{\fvset{backgroundcolorpadding=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\FV@BGColor@List}
+% Background color for environments based on |Verbatim|. Puts each line in a colorbox. The |\FancyVerbBackgroundColorVPhantom| will not have any effect in this case, unless it is larger than |\strut|.
+% \begin{macrocode}
+\def\FV@BGColor@List#1{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1}%
+ {\setlength{\FV@TmpLength}{\fboxsep}%
+ \setlength{\fboxsep}{0pt}%
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \rlap{\FancyVerbBackgroundColorVPhantom\strut#1}%
+ \hspace{\linewidth}%
+ \ifx\FV@RightListFrame\relax\else
+ \hspace{-\FV@FrameSep}%
+ \hspace{-\FV@FrameRule}%
+ \fi
+ \ifx\FV@LeftListFrame\relax\else
+ \hspace{-\FV@FrameSep}%
+ \hspace{-\FV@FrameRule}%
+ \fi}%
+ \hss}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\FV@BVerbatimBegin,\FV@BVerbatimEnd}
+% Reimplementation of |BVerbatim| macros to support |bgcolor|. Much of this follows the implementation of |SaveVerbatim| and |\BUseVerbatim|.
+%
+% Key values, formatting, and tabs must be configured immediately in the |bgcolor| case, so that the background color and other settings are available. |\FV@UseKeyValues| can be invoked multiple times, but that doesn't cause any issues since |\FV@UseKeyValues| applies keys and then redefines |\FV@KeyValues| to empty.
+%
+% The definition of |\FV@BProcessLine| already accounts for |\FancyVerbBackgroundColorVPhantom|.
+% \begin{macrocode}
+\let\FV@BVerbatimBegin@NoBGColor\FV@BVerbatimBegin
+\let\FV@BVerbatimEnd@NoBGColor\FV@BVerbatimEnd
+\def\FV@BVerbatimBegin{%
+ \begingroup
+ \FV@UseKeyValues
+ \FV@FormattingPrep
+ \let\FV@FormattingPrep\relax
+ \FV@ObeyTabsInit
+ \let\FV@ObeyTabsInit\relax
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\FV@BVerbatimBegin@NoBGColor
+ \else
+ \expandafter\FV@BVerbatimBegin@BGColor
+ \fi}
+\def\FV@BVerbatimEnd{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\FV@BVerbatimEnd@NoBGColor
+ \else
+ \expandafter\FV@BVerbatimEnd@BGColor
+ \fi
+ \endgroup}
+\def\FV@BVerbatimBegin@BGColor{%
+ \gdef\FV@TheVerbatim{}%
+ \ifx\FV@boxwidth\relax
+ \gdef\FV@boxwidth@tmp{0pt}%
+ \def\FV@ProcessLine##1{%
+ \sbox{\FV@LineBox}{\FV@BProcessLine{##1}}%
+ \ifdim\wd\FV@LineBox>\FV@boxwidth@tmp\relax
+ \xdef\FV@boxwidth@tmp{\the\wd\FV@LineBox}%
+ \fi
+ \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
+ \FV@TheVerbatim\FV@ProcessLine{##1}}}%
+ \else
+ \def\FV@ProcessLine##1{%
+ \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
+ \FV@TheVerbatim\FV@ProcessLine{##1}}}%
+ \fi}
+\def\FV@BVerbatimEnd@BGColor{%
+ \ifx\FV@boxwidth\relax
+ \let\FV@boxwidth\FV@boxwidth@tmp
+ \global\let\FV@boxwidth@tmp\FV@Undefined
+ \fi
+ \setlength{\FV@TmpLength}{\fboxsep}%
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \setlength{\fboxsep}{0pt}%
+ \else
+ \setlength{\fboxsep}{\FancyVerbBackgroundColorPadding}%
+ \fi
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \FV@BVerbatimBegin@NoBGColor\FV@TheVerbatim\FV@BVerbatimEnd@NoBGColor}%
+ \gdef\FV@TheVerbatim{}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \subsubsection{Line highlighting or emphasis}
% \label{sec:impl:extensions:highlighting}
%
@@ -5139,6 +5527,32 @@
% \end{macro}
%
%
+% \begin{macro}{\FV@StepLineNo@Patch@HighlightLine}
+% Patch |\FV@StepLineNo| so that when |numberblanklines=false|, blank lines won't be highlighted. If the previous line is at the end of a highlighted range, then |\let| |\FV@HighlightLine:<n>| to |\FV@Undefined| to prevent further highlighting. Otherwise, leave everything as-is since the blank line(s) are within a highlighted range.
+% \begin{macrocode}
+\def\FV@StepLineNo@Patch@HighlightLine{%
+ \ifcsname FV@HighlightLine:\number\c@FancyVerbLine\endcsname
+ \@tempcnta=\c@FancyVerbLine
+ \advance\@tempcnta\@ne
+ \ifcsname FV@HighlightLine:\number\@tempcnta\endcsname
+ \else
+ \expandafter\let
+ \csname FV@HighlightLine:\number\c@FancyVerbLine\endcsname\FV@Undefined
+ \fi
+ \fi}
+\patchcmd{\FV@StepLineNo}%
+ {\ifx\FV@Line\empty}%
+ {\ifx\FV@Line\empty\FV@StepLineNo@Patch@HighlightLine}%
+ {}%
+ {\PackageError{fvextra}%
+ {Failed to patch \string\FV@StepLineNo\ to make highlightlines
+ compatible with numberblanklines}%
+ {Failed to patch \string\FV@StepLineNo\ to make highlightlines
+ compatible with numberblanklines}}
+% \end{macrocode}
+% \end{macro}
+%
+%
%
%
% \subsection{Line breaking}
@@ -5350,6 +5764,7 @@
%
%
% We need macros that contain the logic for typesetting the break symbols. By default, the symbol macros contain everything regarding the symbol and its typesetting, while these macros contain pure logic. The symbols should be wrapped in braces so that formatting commands (for example, |\tiny|) don't escape.
+%
% \begin{macro}{\FancyVerbBreakSymbolLeftLogic}
% The left break symbol should only appear with continuation lines. Note that |linenumber| here refers to local line numbering for the broken line, \emph{not} line numbering for all lines in the environment being typeset.
% \begin{macrocode}
@@ -5421,6 +5836,30 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{breakanywhereinlinestretch,\FV@breakanywhereinlinestretch,\FV@ApplyBreakAnywhereInlineStretch}
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|.
+%
+% |\FV@UseInlineKeyValues| invokes |\FV@ApplyBreakAnywhereInlineStretch| to redefine |\FancyVerbBreakAnywhereBreak| locally.
+% \begin{macrocode}
+\define@key{FV}{breakanywhereinlinestretch}{%
+ \def\FV@breakanywhereinlinestretch{#1}%
+ \ifx\FV@breakanywhereinlinestretch\FV@None
+ \let\FV@breakanywhereinlinestretch\relax
+ \else\ifx\FV@breakanywhereinlinestretch\@empty
+ \let\FV@breakanywhereinlinestretch\relax
+ \fi\fi}
+\fvset{breakanywhereinlinestretch=none}
+\def\FV@ApplyBreakAnywhereInlineStretch{%
+ \ifx\FV@breakanywhereinlinestretch\relax
+ \else
+ \let\FancyVerbBreakAnywhereBreak@Orig\FancyVerbBreakAnywhereBreak
+ \def\FancyVerbBreakAnywhereBreak{%
+ \nobreak\hspace{0pt plus \FV@breakanywhereinlinestretch}%
+ \FancyVerbBreakAnywhereBreak@Orig}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
%
% \begin{macro}{\FV@BreakBefore}
% Allow line breaking (almost) anywhere, but only before specified characters.
@@ -5452,7 +5891,7 @@
% \end{macro}
%
% \begin{macro}{\FV@BreakBeforePrep}
-% We need a way to break before characters if and only if they have been specified as breaking characters. It would be possible to do that via a nested conditional, but that would be messy. It is much simpler to create an empty macro whose name contains the character, and test for the existence of this macro. This needs to be done inside a |\begingroup...\endgroup| so that the macros do not have to be cleaned up manually. A good place to do this is in |\FV@FormattingPrep|, which is inside a group and before processing starts. The macro is added to |\FV@FormattingPrep@PreHook|, which contains \fvextra\ exntensions to |\FV@FormattingPrep|, after |\FV@BreakAfterPrep| is defined below.
+% We need a way to break before characters if and only if they have been specified as breaking characters. It would be possible to do that via a nested conditional, but that would be messy. It is much simpler to create an empty macro whose name contains the character, and test for the existence of this macro. This needs to be done inside a |\begingroup...\endgroup| so that the macros do not have to be cleaned up manually. A good place to do this is in |\FV@FormattingPrep|, which is inside a group and before processing starts. The macro is added to |\FV@FormattingPrep@PreHook|, which contains \fvextra\ extensions to |\FV@FormattingPrep|, after |\FV@BreakAfterPrep| is defined below.
%
% The procedure here is a bit roundabout. We need to use |\FV@EscChars| to handle character escapes, but the character redefinitions need to be kept local, requiring that we work within a |\begingroup...\endgroup|. So we loop through the breaking tokens and assemble a macro that will itself define character macros. Only this defining macro is declared global, and it contains \emph{expanded} characters so that there is no longer any dependence on |\FV@EscChars|.
%
@@ -5683,9 +6122,29 @@
% \end{macro}
%
%
+% \begin{macro}{breakpreferspaces,\FV@BreakHyphenation}
+% Adjust hyphenation settings for |breaklines|.
+%
+% When |breakbefore|, |breakafter|, or |breakanywhere| are in use, |\finalhyphendemerits=0| prevents the final ``word'' on a line from being put into a line segment by itself after line breaking. Otherwise, \TeX\ tries to avoid a line break (hyphenation) within a ``word'' on the penultimate line segment, and may accomplish this by introducing an unnecessary line break at the space before the last ``word.''
+%
+% |breakpreferspaces| (|\linepenalty|) determines whether line breaks are preferentially inserted at normal spaces (|breakcollapsespaces=true|, |showspaces=false|) rather than at other locations allowed by |breakbefore|, |breakafter|, or |breakanywhere|.
+% \begin{macrocode}
+\newbool{FV@breakpreferspaces}
+\booltrue{FV@breakpreferspaces}
+\define@booleankey{FV}{breakpreferspaces}%
+ {\booltrue{FV@breakpreferspaces}}%
+ {\boolfalse{FV@breakpreferspaces}}
+\def\FV@BreakHyphenation{%
+ \finalhyphendemerits=0\relax
+ \ifbool{FV@breakpreferspaces}{}{\linepenalty=\@M\relax}}
+\g@addto@macro\FV@FormattingPrep@PreHook{\FV@BreakHyphenation}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsubsection{Line breaking implementation}
%
-% \paragraph{Helper macros}
+% \paragraph{Helper macros}\hfill\\
%
% \begin{macro}{\FV@LineBox}
% A box for saving a line of text, so that its dimensions may be determined and thus we may figure out if it needs line breaking.
@@ -5791,7 +6250,7 @@
% \begin{macro}{\FV@BreakBufferStart}
% Create a new buffer, either at the beginning of scanning or during recursion. The single mandatory argument is the macro for handling tokens, which is |\let| to |\FV@Break@Token|. An intermediate |\FV@BreakBufferStart@i| is used to optimize |\ifx| comparisons for |\FV@BreakBufferStart| during scanning.
%
-% For recursion, |\FV@BreakBuffer<n>| and |\FV@Break@Token<n>| store the state (buffer and token handling macro) immediately prior to recusion with depth |<n>|.
+% For recursion, |\FV@BreakBuffer<n>| and |\FV@Break@Token<n>| store the state (buffer and token handling macro) immediately prior to recursion with depth |<n>|.
% \begin{macrocode}
\def\FV@BreakBufferStart{%
\FV@BreakBufferStart@i}
@@ -6461,7 +6920,7 @@
%
%
%
-% \paragraph{Line processing before scanning}
+% \paragraph{Line processing before scanning}\hfill\\
%
% \begin{macro}{\FV@makeLineNumber}
% The \pkg{lineno} package is used for formatting wrapped lines and inserting break symbols. We need a version of \pkg{lineno}'s |\makeLineNumber| that is adapted for our purposes. This is adapted directly from the example |\makeLineNumber| that is given in the \pkg{lineno} documentation under the discussion of internal line numbers. The |\FV@SetLineBreakLast| is needed to determine the internal line number of the last segment of the broken line, so that we can disable the right-hand break symbol on this segment. When a right-hand break symbol is in use, a line of code will be processed twice: once to determine the last internal line number, and once to use this information only to insert right-hand break symbols on the appropriate lines. During the second run, |\FV@SetLineBreakLast| is disabled by |\let|ting it to |\relax|.
@@ -6588,8 +7047,9 @@
\FV@SaveLineBox{#1}}%
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{\usebox{\FV@LineBox}}}%
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{\usebox{\FV@LineBox}}}}%
\FV@RightListFrame
\FV@RightListNumber
\ifx\FV@Tab\FV@TrueTab@UseWidth
@@ -6600,10 +7060,11 @@
\let\FancyVerbBreakStop\relax
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{%
- \parbox[t]{\FV@LineWidth}{%
- \noindent\strut\FV@ObeyTabs{\FancyVerbFormatText{#1}}\strut}}}%
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{%
+ \parbox[t]{\FV@LineWidth}{%
+ \noindent\strut\FV@ObeyTabs{\FancyVerbFormatText{#1}}\strut}}}}%
\FV@RightListFrame
\FV@RightListNumber
\fi}%
@@ -6791,7 +7252,7 @@
%
% In the |breakbytoken| cases, an |\hbox| is used to prevent breaks within the macro (breaks could occur at spaces even without |\FancyVerbBreakStart|). The |breakbytokenanywhere| case is similar but a little tricky. |\FV@BreakByTokenAnywhereHook|, which is inside |\FV@SaveLineBox| where line breaking occurs, is used to define |\FV@BreakByTokenAnywhereBreak| so that it will ``do nothing'' the first time it is used and on subsequent invocations become |\FancyVerbBreakByTokenAnywhereBreak|. Because the hook is within the |internallinenumbers*| environment, the redefinition doesn't escape, and the default global definition of |\FV@BreakByTokenAnywhereBreak| as |\relax| is not affected. We don't want the actual break to appear before the first Pygments macro in case it might cause a spurious break after leading whitespace. But we must have breaks \emph{before} Pygments macros because otherwise lookahead would be necessary.
%
-% An intermediate variable |\FV@PYG| is defined to avoid problems in case |#1|$=$|#2|. There is also a check for a non-existant |#2| (|\PYG|\meta{style\_name} may not be created until a later compile in the \pkg{pythontex} case); if |#2| does not exist, fall back to |#1|. For the existance check, |\ifx...\relax| must be used instead of |\ifcsname|, because |#2| will be a macro, and will typically be created with |\csname...\endcsname| which will |\let| the macro to |\relax| if it doesn't already exist.
+% An intermediate variable |\FV@PYG| is defined to avoid problems in case |#1|$=$|#2|. There is also a check for a non-existent |#2| (|\PYG|\meta{style\_name} may not be created until a later compile in the \pkg{pythontex} case); if |#2| does not exist, fall back to |#1|. For the existence check, |\ifx...\relax| must be used instead of |\ifcsname|, because |#2| will be a macro, and will typically be created with |\csname...\endcsname| which will |\let| the macro to |\relax| if it doesn't already exist.
%
% |\FV@PYG@Redefed| is |\let| to the Pygments macro that appears literally (after redefinition), so that it can be detected elsewhere to allow for special processing, such as in |breakautoindent|.
% \begin{macrocode}
diff --git a/macros/latex/contrib/fvextra/fvextra.pdf b/macros/latex/contrib/fvextra/fvextra.pdf
index b38e213561..3145e95809 100644
--- a/macros/latex/contrib/fvextra/fvextra.pdf
+++ b/macros/latex/contrib/fvextra/fvextra.pdf
Binary files differ
diff --git a/macros/latex/contrib/gb4e-next/README.md b/macros/latex/contrib/gb4e-next/README.md
new file mode 100644
index 0000000000..84166b7b8c
--- /dev/null
+++ b/macros/latex/contrib/gb4e-next/README.md
@@ -0,0 +1,25 @@
+ # The `gb4e-next` package
+
+ The `gb4e-next` package provides `gb4e` users two relative example reference commands. `\Next` refers to the next
+ example in the document and `\Prev` refers to the previous example. No explicit label command is required.
+
+ Version 0.5 2024-10-27
+ Copyright 2024 by Alan Munn
+
+ This package may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either version 1.3
+ of this license or any later version.
+ The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of LaTeX
+ version 2005/12/01 or later.
+
+ This package has the LPPL maintenance status `maintained'.
+
+ The Current Maintainer of this package is Alan Munn.
+
+ This package consists of the file gb4e-next.sty and documentation files
+ gb4e-next.tex and gb4e-next.pdf.
+
+ This package is currently experimental. Use at your own risk.
+
diff --git a/macros/latex/contrib/gb4e-next/gb4e-next.pdf b/macros/latex/contrib/gb4e-next/gb4e-next.pdf
new file mode 100644
index 0000000000..51077fe548
--- /dev/null
+++ b/macros/latex/contrib/gb4e-next/gb4e-next.pdf
Binary files differ
diff --git a/macros/latex/contrib/gb4e-next/gb4e-next.sty b/macros/latex/contrib/gb4e-next/gb4e-next.sty
new file mode 100644
index 0000000000..5974f21feb
--- /dev/null
+++ b/macros/latex/contrib/gb4e-next/gb4e-next.sty
@@ -0,0 +1,58 @@
+\def\gbnext@version{0.5}
+\def\gbnext@date{2024-10-27}
+% The gb4e-next package provides gb4e users two relative example reference commands. \Next refers to the next
+% example in the document and \Prev refers to the previous example. No explicit label command is required.
+%
+% Copyright 2024 by Alan Munn
+%
+% This package may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This package has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this package is Alan Munn.
+%
+% This package consists of the file gb4e-next.sty and documentation files
+% gb4e-next.tex and gb4e-next.pdf.
+%
+% This package is currently experimental. Use at your own risk.
+%
+\ProvidesPackage{gb4e-next}[\gbnext@date\ Provides relative example reference to gb4e v. \gbnext@version ]
+\RequirePackage{gb4e}
+\DeclareKeys[gb4e-next]{
+fn.store = \gbnext@fnformat
+}
+\SetKeys[gb4e-next]{fn=roman}
+\ProcessKeyOptions[gb4e-next]
+\newcounter{gbnext@tmpcnt}
+\NewDocumentCommand{\Next}{o}{%
+\IfNoValueTF{#1}%
+{\save@exx}%
+{\save@exx[#1]}%
+\stepcounter{gbnext@tmpcnt}\printExNo}
+\NewDocumentCommand{\Prev}{o}{%
+\IfNoValueTF{#1}%
+{\save@exx}%
+{\save@exx[#1]}%
+\printExNo}
+\NewDocumentCommand{\save@exx}{o}{%
+\if@noftnote%
+\setcounter{gbnext@tmpcnt}{\value{exx}}%
+\IfNoValueTF{#1}%
+{\def\thegbnext@tmpcnt{\arabic{gbnext@tmpcnt}}}% default format of printed number
+{\def\thegbnext@tmpcnt{\csname#1\endcsname{gbnext@tmpcnt}}}%
+\else%
+\setcounter{gbnext@tmpcnt}{\value{fnx}}%
+\IfNoValueTF{#1}%
+{\def\thegbnext@tmpcnt{\csname\gbnext@fnformat\endcsname{gbnext@tmpcnt}}}% default format of printed number
+{\def\thegbnext@tmpcnt{\csname#1\endcsname{gbnext@tmpcnt}}}%
+\fi}
+\newcommand\printExNo{(\thegbnext@tmpcnt)}
+\endinput
+
+
diff --git a/macros/latex/contrib/gb4e-next/gb4e-next.tex b/macros/latex/contrib/gb4e-next/gb4e-next.tex
new file mode 100644
index 0000000000..356856e8c6
--- /dev/null
+++ b/macros/latex/contrib/gb4e-next/gb4e-next.tex
@@ -0,0 +1,97 @@
+% !TEX TS-program = lualatexmk
+\def\gbnextversion{0.5}
+\def\gbnextdate{October 27, 2024}
+\documentclass[11pt]{article}
+\title{\textbf{The \textsf{gb4e-next} package}}
+\author{\textbf{Alan Munn}\\Department of Linguistics, Languages, and Cultures\\Michigan State University\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}}
+\date{Version \gbnextversion\\\gbnextdate}
+\usepackage[margin=.5in,includefoot]{geometry}
+\usepackage{fontspec}
+\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
+\usepackage{titling}
+\usepackage{array, booktabs, multicol, fancyhdr, xspace,tabularx}
+\usepackage{enumitem}
+\usepackage{fancyvrb,listings,url}
+\usepackage[sf,compact]{titlesec}
+\usepackage[colorlinks=true]{hyperref}
+
+
+\DefineShortVerb{\|}
+\newcommand*\bs{\textbackslash}
+
+
+\lstset{%
+ basicstyle=\ttfamily\small,
+ commentstyle=\itshape\ttfamily\small,
+ keywordstyle={},
+ showspaces=false,
+ showstringspaces=false,
+ breaklines=true,
+ breakautoindent=true,
+ breakindent=1em,
+ xrightmargin=2.5em,
+ captionpos=t,
+ frame=tl,
+ language=TeX,
+}
+
+\newcommand*{\pkg}[1]{\texttt{#1}\xspace}
+\setitemize[1]{label={}}
+\setitemize[2]{label={}}
+\setdescription{font={\normalfont}}
+\setlength{\droptitle}{-1in}
+
+\lhead{}
+\chead{}
+\rhead{}
+\lfoot{\emph{}}
+\cfoot{\thepage}
+\rfoot{}
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\pagestyle{fancy}
+
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\renewcommand{\abstractname}{\sffamily Abstract}
+\abstract{\noindent\begin{quote}This package provides relative example referencing commands |\Next| and |\Prev| to \pkg{gb4e} users.\end{quote}}
+
+\section{Package usage}
+Usage of the package is simple: simply load it alongside \pkg{gb4e}. The commands |\Next| which refers to the next example in the text and |\Prev| which refers to the previous example in the text, will then be made available.
+\subsection{Package options}
+The package has a single key-value option |fn| to specify the default format for the commands when used inside a footnote. The \pkg{gb4e} package defaults to arabic numbering of examples in footnotes unless the |{xlisti}| environment is explicitly used. Since the package can’t know this, you need to specify the default format for relative reference inside a footnote. Possible values are |arabic| (default), |roman|, |Roman|, |alph|, and |Alph|. The most likely choice in most cases will be either the default or |roman|.
+\subsection{Package commands}
+The package provides two commands: |\Next[<format>]| which refers to the next example and |\Prev[<format>]| which refers to the previous example. The optional |[<format>]| argument allows you to specify a specific format for the number. Possible values are |arabic|, |roman|, |Roman|, |alph|, and |Alph|. The most likely choice in most cases will be either the default or |roman|. If you have specified a format for the |fn| option, this will be used automatically, so there will usually be no need for the optional argument.
+\section{Example}
+Here’s an example of how to use the package:
+
+\begin{quote}
+\begin{lstlisting}
+\documentclass{article}
+\usepackage{gb4e}
+\usepackage[fn=roman]{gb4e-next}
+\begin{document}
+This is the reference to example \Next.
+\begin{exe}
+\ex An example
+\end{exe}
+
+This is reference to example \Next.
+
+\begin{exe}
+\ex Another example
+\end{exe}
+This contains a footnote\footnote{This is a footnote with an example. We can refer to it as \Next. \begin{xlisti}\ex A footnote example\end{xlisti}} And this is a reference to the previous example: \Prev
+\end{document}
+\end{lstlisting}
+\end{quote}
+
+
+\section{Bugs and support}
+This is \emph{experimental} and has not been extensively tested. Use at your own risk. You're welcome to raise issues at the \href{https://github.com/amunn/gb4e-next}{GitHub repository}, however.
+\section{Version history}
+This is the initial version of the package (0.5).
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/heria/heria-proposal.pdf b/macros/latex/contrib/heria/heria-proposal.pdf
index 79892c24d2..297edc7764 100644
--- a/macros/latex/contrib/heria/heria-proposal.pdf
+++ b/macros/latex/contrib/heria/heria-proposal.pdf
Binary files differ
diff --git a/macros/latex/contrib/heria/heria.dtx b/macros/latex/contrib/heria/heria.dtx
index 7da06a879d..a37fc04520 100644
--- a/macros/latex/contrib/heria/heria.dtx
+++ b/macros/latex/contrib/heria/heria.dtx
@@ -33,7 +33,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{heria}
%<*class>
-[2024-08-14 v3.4.1.1 Class for Horizon Europe (R)IA proposals]
+[2024-09-03 v3.4.1.3 Class for Horizon Europe (R)IA proposals]
%</class>
%
%<*driver>
@@ -50,7 +50,7 @@
%</driver>
% \fi
%
-% \CheckSum{1520}
+% \CheckSum{1521}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -526,6 +526,10 @@
% \subsection{Version history}
%
% \begin{description}
+% \item[v3.4.1.3 (2024-09-03)] Fixed a bug where the person-months in
+% Table 3.1a were doubled.
+% \item[v3.4.1.2 (2024-09-03)] Fixed a bug where the column totals in
+% Table 3.1f were doubled.
% \item[v3.4.1.1 (2024-08-14)] Update documentation with a reference
% to the \emph{TUGboat} paper on \textsf{heria}.
% \item[v3.4.1.0 (2024-07-14)] Add support for version 3.4 of the
@@ -728,7 +732,7 @@
& #2 & \getPnum{#3} & #3 & %
\@ifundefined{@wpTotalPersonMonths\arabic{@wp#1num}}%
{\textbf{??}}%
- {\disptoken{@wpTotalPersonMonths\arabic{@wp#1num}}}%
+ {\fpeval{\disptoken{@wpTotalPersonMonths\arabic{@wp#1num}}/2}}%
& #4 & #5}}%
\@esphack
\ifthenelse{\arabic{@wp#1num}=1}{}{\bigskip}
@@ -1108,7 +1112,7 @@
\whiledo{\value{@secolumn}<\value{@wpcount}}{%
\stepcounter{@secolumn}%
\edef\serowtemp{\serowtemp&\fpeval{round(\csname %
- @wpPersonMonths\arabic{@secolumn}\endcsname,0)}}%
+ @wpPersonMonths\arabic{@secolumn}\endcsname/2,0)}}%
\@bsphack
\protected@write\@auxout{}%
{\string\expandafter\string\expandafter\string\expandafter%
@@ -1117,7 +1121,7 @@
\arabic{@secolumn}},0)}}}%
\@esphack
}
- \serowtemp & \fpeval{round(\setotalpm,0)} \\
+ \serowtemp & \fpeval{round(\setotalpm/2,0)} \\
\hline
\end{xltabular}
\end{center}
diff --git a/macros/latex/contrib/heria/heria.pdf b/macros/latex/contrib/heria/heria.pdf
index 3295f000a9..8a70466fe0 100644
--- a/macros/latex/contrib/heria/heria.pdf
+++ b/macros/latex/contrib/heria/heria.pdf
Binary files differ
diff --git a/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf
index c842d6c893..948b3145bd 100644
--- a/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf
+++ b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex
index 71df6851a0..7be9e6295e 100644
--- a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex
+++ b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex
@@ -33,8 +33,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.5}
-\def\TPdate{9 novembre 2023}
+\def\TPversion{0.1.6}
+\def\TPdate{22 octobre 2024}
\usepackage{tcolorbox}
\tcbuselibrary{skins,hooks}
\sethlcolor{lightgray!25}
@@ -258,6 +258,7 @@ Concernant cette commande :
\item \MontreCode{Fond} pour la couleur de fond (\MontreCode{yellow!35} par défaut) ;
\item \MontreCode{Bord} pour une éventuelle bordure, \MontreCode{none} ou \MontreCode{couleur} (\MontreCode{none} par défaut) ;
\item \MontreCode{Texte} pour une couleur de texte (\MontreCode{black} par défaut) ;
+ \item \MontreCode{OpaciteTexte} pour l'opacité de la couleur de texte (\MontreCode{1} par défaut) ;
\item \MontreCode{Offset} pour \textit{élargir} le surlignage, sous la forme \MontreCode{Offset} ou \MontreCode{OffsetH/OffsetV} (\MontreCode{1pt/2pt} par défaut) ;
\end{itemize}
\item la formule est insérée dans un groupe \MontreCode{\textbackslash ensuremath} ;
@@ -266,7 +267,7 @@ Concernant cette commande :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
$\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$.\\
-$\SurlignerFormule*{f(x)=\displaystyle\frac{1}{1+x}}$.\\
+$\SurlignerFormule*[OpaciteTexte=0.75]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\SurlignerFormule[Fond=teal!35]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\SurlignerFormule[Fond=teal!35,Bord=red]{f(x)=\displaystyle\frac{1}{1+x}}<thick>$.\\
$\SurlignerFormule[Offset=5mm/2mm]{f(x)=\displaystyle\frac{1}{1+x}}$\\
@@ -275,7 +276,7 @@ $\SurlignerFormule*[Texte=red]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
-$\SurlignerFormule*{f(x)=\displaystyle\frac{1}{1+x}}$
+$\SurlignerFormule*[OpaciteTexte=0.75]{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
$\SurlignerFormule[Fond=teal!35]{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
@@ -437,7 +438,7 @@ There's also english versions of the commands and keys :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
$\HighlightFormula{f(x)=\displaystyle\frac{1}{1+x}}$.\\
-$\HighlightFormula*{f(x)=\displaystyle\frac{1}{1+x}}$.\\
+$\HighlightFormula*[textopacity=0.75]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\HighlightFormula[bg=teal!35]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\HighlightFormula[bg=teal!35,border=red]{f(x)=\displaystyle\frac{1}{1+x}}<thick>$.\\
$\HighlightFormula[offset=5mm/2mm]{f(x)=\displaystyle\frac{1}{1+x}}$\\
@@ -446,7 +447,7 @@ $\HighlightFormula*[text=red]{f(x)=\displaystyle\frac{1}{1+x}}$.\\
$\HighlightFormula{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
-$\HighlightFormula*{f(x)=\displaystyle\frac{1}{1+x}}$
+$\HighlightFormula*[textopacity=0.75]{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
$\HighlightFormula[bg=teal!35]{f(x)=\displaystyle\frac{1}{1+x}}$
\qquad
diff --git a/macros/latex/contrib/highlightx/tex/highlightx.sty b/macros/latex/contrib/highlightx/tex/highlightx.sty
index d9af8868c2..1d2387a585 100644
--- a/macros/latex/contrib/highlightx/tex/highlightx.sty
+++ b/macros/latex/contrib/highlightx/tex/highlightx.sty
@@ -3,9 +3,10 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{highlightx}[2023/11/09 0.1.5 Macros pour surligner du texte, meme en mode paragraphe]
+\ProvidesPackage{highlightx}[2024/10/22 0.1.6 Macros pour surligner du texte, meme en mode paragraphe]
%====HISTORIQUE
+% v 0.1.6 Ajout d'une clé pour l'opacité du texte d'une formule
% v 0.1.5 Mise à jour de la doc
% v 0.1.4 Passage \tikzstyle vers \tikzset (merci à Sam C.)
% v 0.1.3 Correction d'un bug avec le caractère ; (merci à Denis B.)
@@ -38,16 +39,18 @@
Fond=\def\surlignformulefond{#1},%
Bord=\def\surlignformulebord{#1},%
Texte=\def\surlignformuletexte{#1},%
- Offset=\def\surlignformuleoffset{#1}
+ Offset=\def\surlignformuleoffset{#1},%
+ OpaciteTexte=\def\surlignformuleopac{#1}
}
\setKVdefault[surlignformule]{%
Fond=hlcolback,%
Bord=none,%
Texte=black,%
- Offset=1pt/2pt
+ Offset=1pt/2pt,%
+ OpaciteTexte=1
}
-\NewDocumentCommand\SurlignerFormule{ s O{\surlignformulefond} m D<>{} }{%
+\NewDocumentCommand\SurlignerFormule{ s O{} m D<>{} }{%
\useKVdefault[surlignformule]%
\setKV[surlignformule]{#2}%
\IfSubStr{\surlignformuleoffset}{/}%
@@ -61,11 +64,11 @@
\begin{tikzpicture}[remember picture,overlay]
\IfBooleanTF{#1}%
{%
- \fill[\surlignformulefond,draw=\surlignformulebord,#4] ([xshift=-\surlignformuleoffsetH,yshift=-\surlignformuleoffsetV]formule.south west) rectangle ([xshift=\surlignformuleoffsetH,yshift=\surlignformuleoffsetV]formule.north east) node[text=\surlignformuletexte,midway] {\ensuremath{#3}} ;
+ \fill[\surlignformulefond,draw=\surlignformulebord,#4] ([xshift=-\surlignformuleoffsetH,yshift=-\surlignformuleoffsetV]formule.south west) rectangle ([xshift=\surlignformuleoffsetH,yshift=\surlignformuleoffsetV]formule.north east) node[text=\surlignformuletexte,midway,text opacity=\surlignformuleopac] {\ensuremath{#3}} ;
}%
{%
- \fill[\surlignformulefond,draw=\surlignformulebord,encadreformule,#4] ([xshift=-\surlignformuleoffsetH,yshift=-\surlignformuleoffsetV]formule.south west) rectangle ([xshift=\surlignformuleoffsetH,yshift=\surlignformuleoffsetV]formule.north east) node[text=\surlignformuletexte,midway] {\ensuremath{#3}} ;
- }
+ \fill[\surlignformulefond,draw=\surlignformulebord,encadreformule,#4] ([xshift=-\surlignformuleoffsetH,yshift=-\surlignformuleoffsetV]formule.south west) rectangle ([xshift=\surlignformuleoffsetH,yshift=\surlignformuleoffsetV]formule.north east) node[text=\surlignformuletexte,midway,text opacity=\surlignformuleopac] {\ensuremath{#3}} ;
+ }%
\end{tikzpicture}%
}
@@ -73,13 +76,15 @@
bg=\def\hlformulabg{#1},%
border=\def\hlformulaborder{#1},%
text=\def\surlignformulatext{#1},%
- offset=\def\hlformulaoffset{#1}
+ offset=\def\hlformulaoffset{#1},%
+ textopacity=\def\hlformulaopac{#1}
}
\setKVdefault[hlformula]{%
bg=hlcolback,%
border=none,%
text=black,%
- offset=1pt/2pt
+ offset=1pt/2pt,%
+ textopacity=1
}
\NewDocumentCommand\HighlightFormula{ s O{\surlignformulefond} m D<>{} }{%
@@ -96,10 +101,10 @@
\begin{tikzpicture}[remember picture,overlay]
\IfBooleanTF{#1}%
{%
- \fill[\hlformulabg,draw=\hlformulaborder,#4] ([xshift=-\hlformulaoffsetH,yshift=-\hlformulaoffsetV]formula.south west) rectangle ([xshift=\hlformulaoffsetH,yshift=\hlformulaoffsetV]formula.north east) node[text=\surlignformulatext,midway] {\ensuremath{#3}} ;
+ \fill[\hlformulabg,draw=\hlformulaborder,#4] ([xshift=-\hlformulaoffsetH,yshift=-\hlformulaoffsetV]formula.south west) rectangle ([xshift=\hlformulaoffsetH,yshift=\hlformulaoffsetV]formula.north east) node[text=\surlignformulatext,midway,text opacity=\hlformulaopac] {\ensuremath{#3}} ;
}%
{%
- \fill[\hlformulabg,draw=\hlformulaborder,borderformula,#4] ([xshift=-\hlformulaoffsetH,yshift=-\hlformulaoffsetV]formula.south west) rectangle ([xshift=\hlformulaoffsetH,yshift=\hlformulaoffsetV]formula.north east) node[text=\surlignformulatext,midway] {\ensuremath{#3}} ;
+ \fill[\hlformulabg,draw=\hlformulaborder,borderformula,#4] ([xshift=-\hlformulaoffsetH,yshift=-\hlformulaoffsetV]formula.south west) rectangle ([xshift=\hlformulaoffsetH,yshift=\hlformulaoffsetV]formula.north east) node[text=\surlignformulatext,midway,text opacity=\hlformulaopac] {\ensuremath{#3}} ;
}
\end{tikzpicture}%
}
diff --git a/macros/latex/contrib/homework/README.md b/macros/latex/contrib/homework/README.md
index 4014e4ef49..ba58bb840f 100644
--- a/macros/latex/contrib/homework/README.md
+++ b/macros/latex/contrib/homework/README.md
@@ -13,6 +13,8 @@ The current document class is for writing homework or assignment. It has the fol
- Every statement and solution has its own Q.E.D. symbol, in hollow or solid shape, respectively.
- You may mark unfinished parts with `\DNF` or `\DNF<⟨remark⟩>` (meaning "did not finish") for reminding — this will give you a clickable report on the unfinished parts at the end of your document.
+> Package dependencies: [*`einfart`*](https://ctan.org/pkg/minimalist), [`lastpage`](https://ctan.org/pkg/lastpage), [`minimalist`](https://ctan.org/pkg/minimalist), [`projlib`](https://ctan.org/pkg/projlib), [`verbatim`](https://ctan.org/pkg/verbatim).
+
## Installation and preparation
### How to install this package
@@ -39,22 +41,24 @@ Also, without these fonts installed, the compilation speed might be much slower
> It is recommended that you start by looking at one of the [demo documents](https://github.com/Jinwen-XU/homework/tree/main/demo) that suits your need and edit the code there to get your own template.
-> If you don't find what you were expecting, or if you would like some elements to be changed or improved, feel free to post a feature request via [the GitHub issue](https://github.com/Jinwen-XU/homework/issues).
+> If you cannot find what you are expecting, or if you would like some elements to be changed or improved, feel free to post a feature request via [the GitHub issue](https://github.com/Jinwen-XU/homework/issues).
A typical homework document looks like this:
```latex
\documentclass[a4paper, 11pt,
- % twoside, % Use this option if you wish to use double-sided printing
+ % twoside, % Use this option if you wish to use double-sided printing.
logo = {image-of-university-logo}, % Remove this line if you don't want logo presented.
% logo height = 1cm, % In case you are not satisfied with the default logo size.
title in boldface,
title in sffamily,
- theorem in new line,
- % remove qed, % Remove the Q.E.D. symbol for problems/questions/lemmas/...
- colored solution, % Show solution/answer with color, default is blue
- % You may specify this as "colored solution = ⟨color⟩"
- % hide solution, % Use this option to hide the solutions/answers
+ theorem in new line, % Print the theorem title in a separate line.
+ % remove qed, % Remove the Q.E.D. symbols,
+ % or only remove part of the Q.E.D. symbols,
+ % via "remove problem qed" or "remove solution qed".
+ colored solution, % Show solution/answer with color, default is blue.
+ % You may specify this as "colored solution = ⟨color⟩".
+ % hide solution, % Use this option to hide the solutions/answers.
]{homework}
\UseLanguage{...} % If you wish to write your homework in languages other than English.
@@ -62,7 +66,7 @@ A typical homework document looks like this:
\title{The Subject, Week 1}
\author{Author NAME}
-\date{\TheDate{2023-12-25}, Location} % or: \date{\today[only-year-month], Location}
+\date{\TheDate{2024-01-01}, Location} % or: \date{\today[only-year-month], Location}
\begin{document}
@@ -173,7 +177,7 @@ Alternatively, if you are making an exercise sheet and prefer a more formal titl
\\
Course ID \& Course Name
\hfill
- Year 2023--24
+ Year 2024--25
}
\title{%
@@ -181,7 +185,7 @@ Alternatively, if you are making an exercise sheet and prefer a more formal titl
}
\author{}
\date{%
- % \TheDate{2023-12-25}
+ % \TheDate{2024-01-01}
}
@@ -197,7 +201,9 @@ Regarding some of the class options:
1) The logo image can be included via the class option `logo = {⟨image file name⟩}`, and if you are not satisfied with its default size, then you may manually specify the size via the option `logo height = {⟨height⟩}` or `logo width = {⟨width⟩}`. If you do not want to show any logo in the title bar, you may simply remove the option `logo = {⟨image file name⟩}`.
1) The options `title in boldface`, `title in sffamily` or even `title in scshape` are for configuring the text effect of the title line, the sectional titles and theorem names.
1) The option `theorem in new line` is for showing the problem / theorem name, numbering and description in a separate line, for the sake of clarity.
-1) The option `remove qed` is for removing the Q.E.D. symbol for theorem-type environment.
+1) The option `remove qed` is for removing all the Q.E.D. symbol.
+ - If you only wish to remove the Q.E.D. symbol for problems/questions/lemmas/..., use `remove problem qed` or `remove question qed` (they are the same).
+ - If you only wish to remove the Q.E.D. symbol for solutions/answers, use `remove solution qed` or `remove answer qed` (they are the same).
1) The option `formal title` is for enabling the formal title style. There would be no logo and no separation lines, and the title would be centered.
1) The option `colored solution` or `colored solution = ⟨color⟩` is for setting the text color of the solution/answer.
1) The option `hide solution` (or `hide answer`) is for hiding the `solution` and `answer` environments.
@@ -249,6 +255,8 @@ and then write this in your preamble:
The author would like to thank David García-Zelada for his valuable help with the Spanish language. He kindly demonstrated to me the difference between the "Tutoyer" and "Vouvoyer" version, patiently corrected many inaccuracies in the demo documents, and also pointed out a few improper translations in some of my other packages.
+The author would also like to thank his friend Junzhuo Zhao for his valuable help with the German language. Danke schön!
+
## License
diff --git a/macros/latex/contrib/homework/homework.cls b/macros/latex/contrib/homework/homework.cls
index 576cd35453..7bc5adcf85 100644
--- a/macros/latex/contrib/homework/homework.cls
+++ b/macros/latex/contrib/homework/homework.cls
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{homework}
- {2024/02/21} {}
+ {2024/09/30} {}
{Document class for writing homework}
\keys_define:nn { homework }
@@ -58,6 +58,22 @@
, remove~qed .bool_set:N = \l__homework_no_qed_bool
, remove qed .bool_set:N = \l__homework_no_qed_bool
+ , remove-problem-qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove-problem-qed .initial:n = { false }
+ , remove~problem~qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove problem qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove-question-qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove~question~qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove question qed .bool_set:N = \l__homework_no_qed_problem_bool
+
+ , remove-solution-qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove-solution-qed .initial:n = { false }
+ , remove~solution~qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove solution qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove-answer-qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove~answer~qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove answer qed .bool_set:N = \l__homework_no_qed_solution_bool
+
, unknown .code:n = {
\PassOptionsToClass { \CurrentOption } { minimart }
\PassOptionsToClass { \CurrentOption } { einfart }
@@ -70,9 +86,15 @@
%% Load the base class
%%================================
+\bool_if:NT \l__homework_no_qed_bool
+ {
+ \bool_set_true:N \l__homework_no_qed_problem_bool
+ \bool_set_true:N \l__homework_no_qed_solution_bool
+ }
+
\sys_if_engine_pdftex:TF
{
- \bool_if:NF \l__homework_no_qed_bool
+ \bool_if:NF \l__homework_no_qed_problem_bool
{
\PassOptionsToClass { theorem with qed } { minimart }
}
@@ -80,7 +102,7 @@
\LoadClass { minimart }
}
{
- \bool_if:NF \l__homework_no_qed_bool
+ \bool_if:NF \l__homework_no_qed_problem_bool
{
\PassOptionsToClass { theorem with qed } { einfart }
}
@@ -271,8 +293,11 @@
\ignorespaces
}
{
- \pushQED{\qed}
- \popQED\endtrivlist\@endpefalse
+ \bool_if:NF \l__homework_no_qed_solution_bool
+ {
+ \pushQED{\qed}
+ \popQED\endtrivlist\@endpefalse
+ }
}
\NewDocumentEnvironment { answer } { O{ \l__homework_answer_tl } }
diff --git a/macros/latex/contrib/huawei/DEPENDS.txt b/macros/latex/contrib/huawei/DEPENDS.txt
index 4ce226b22d..5275c3fb46 100644
--- a/macros/latex/contrib/huawei/DEPENDS.txt
+++ b/macros/latex/contrib/huawei/DEPENDS.txt
@@ -33,6 +33,7 @@ hard svg
hard tcolorbox
hard textpos
hard tikzfill
+hard titlesec
hard titling
hard transparent
hard trimspaces
diff --git a/macros/latex/contrib/huawei/README.md b/macros/latex/contrib/huawei/README.md
index e2f585d214..64ded9b802 100644
--- a/macros/latex/contrib/huawei/README.md
+++ b/macros/latex/contrib/huawei/README.md
@@ -1,3 +1,5 @@
+# LaTeX Document Class
+
[![make](https://github.com/yegor256/huawei.cls/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/huawei.cls/actions/workflows/l3build.yml)
[![CTAN](https://img.shields.io/ctan/v/huawei)](https://ctan.org/pkg/huawei)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/huawei.cls/blob/master/LICENSE.txt)
@@ -7,8 +9,9 @@ This package is created in order to help some people working
with Huawei or inside Huawei to render some documents in LaTeX format.
You are welcome to use it at your own risk.
-First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
-from [CTAN](https://ctan.org/pkg/huawei)
+First,
+[install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+from [CTAN](https://ctan.org/pkg/huawei)
and then use in the preamble:
```tex
@@ -21,15 +24,18 @@ Hello, world!
\end{document}
```
-Otherwise, you can download [`huawei.cls`](https://yegor256.github.io/huawei.cls/huawei.sty) and add to your project.
+Otherwise, you can download
+[`huawei.cls`](https://yegor256.github.io/huawei.cls/huawei.cls)
+and add to your project.
-Read the detailed documentation [in PDF](http://mirrors.ctan.org/macros/latex/contrib/huawei/huawei.pdf).
+Read the detailed documentation
+[in PDF](http://mirrors.ctan.org/macros/latex/contrib/huawei/huawei.pdf).
-If you need more formatting options,
-[submit an issue](https://github.com/yegor256/huawei.cls/issues),
+If you need more formatting options,
+[submit an issue](https://github.com/yegor256/huawei.cls/issues),
I'll implement them.
-If you want to contribute yourself, make a fork, then create a branch,
+If you want to contribute yourself, make a fork, then create a branch,
then run `make` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
Otherwise, make your changes and then run `make` again. If the build is
diff --git a/macros/latex/contrib/huawei/huawei.dtx b/macros/latex/contrib/huawei/huawei.dtx
index 1140958502..266de33387 100644
--- a/macros/latex/contrib/huawei/huawei.dtx
+++ b/macros/latex/contrib/huawei/huawei.dtx
@@ -50,7 +50,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{huawei}
%<*class>
-[2024-02-14 0.18.3 Template for Huawei Documents]
+[2024-10-25 0.19.0 Template for Huawei Documents]
%</class>
%<*driver>
\documentclass{ltxdoc}
@@ -354,10 +354,12 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
% Then, we parse class options:
% \changes{v0.15.0}{2022/12/13}{A new package option \texttt{breaks} introduced, which forces all sections to start from a new page.}
% \changes{v0.18.0}{2023/08/09}{Now we use \texttt{pfgopts} for parsing class options.}
+% \changes{v0.19.0}{2024/10/25}{New option \texttt{boring} added, making the layout of the document more compliant with the expectations of Huawei.}
% \begin{macrocode}
\RequirePackage{pgfopts}
\pgfkeys{
/huawei/.cd,
+ boring/.store in=\huawei@boring,
breaks/.store in=\huawei@breaks,
slides/.store in=\huawei@slides,
nosecurity/.store in=\huawei@nosecurity,
@@ -372,20 +374,41 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
\ProcessPgfPackageOptions{/huawei}
% \end{macrocode}
-% Then, we redefine |\section| command in order to break pages for each section:
+% Then, we set Helvetica as the default font for the entire document, if the |boring| document option is used:
% \begin{macrocode}
-\makeatletter\ifdefined\huawei@breaks
-\let\huawei@oldsection\section
-\renewcommand\section{\clearpage\huawei@oldsection}
-\fi\makeatother
+\ifdefined\huawei@boring
+ \usepackage[scaled]{helvet}
+ \renewcommand\familydefault{\sfdefault}
+\fi
+% \end{macrocode}
+
+% Then, we redefine |\section| command in order to break pages for each section, with the help of |titlesec| package:
+% \begin{macrocode}
+\RequirePackage{titlesec}
+\ifdefined\huawei@boring
+ \def\huawei@sectioncolor{red}
+\else
+ \def\huawei@sectioncolor{black}
+\fi
+\makeatletter
+\titleformat
+ {\section}
+ {\color{\huawei@sectioncolor}\ifdefined\huawei@breaks\clearpage\fi\normalfont\Large\bfseries}
+ {\color{\huawei@sectioncolor}\thesection}{1em}{}
+\makeatother
% \end{macrocode}
% Then, we set the size of the page:
% \begin{macrocode}
\RequirePackage{geometry}
\makeatletter\ifdefined\huawei@landscape
- \geometry{paperwidth=16in, paperheight=9in,
- left=4in, right=2in, top=1.5in, bottom=1.5in}
+ \ifdefined\huawei@boring
+ \geometry{paperwidth=16in, paperheight=9in,
+ left=3in, right=2.5in, top=1in, bottom=1.8in}
+ \else
+ \geometry{paperwidth=16in, paperheight=9in,
+ left=4in, right=2in, top=1.5in, bottom=1.5in}
+ \fi
\else
\geometry{a4paper, left=1.5in, right=1in,
top=1.2in, bottom=1.2in}
@@ -513,13 +536,27 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
% \begin{macrocode}
\PassOptionsToPackage{table}{xcolor}
\RequirePackage{xcolor}
-\definecolor{red}{HTML}{CF0A2C}
-\definecolor{black}{HTML}{232527}
-\definecolor{gray}{HTML}{878C8F}
-\definecolor{yellow}{HTML}{F2DC5D}
-\definecolor{blue}{HTML}{2274A5}
-\definecolor{green}{HTML}{499167}
-\definecolor{orange}{HTML}{F06543}
+\makeatletter
+\ifdefined\huawei@boring
+ \definecolor{red}{HTML}{8C1A11}
+ \definecolor{black}{HTML}{000000}
+ \definecolor{gray}{HTML}{878C8F}
+ \definecolor{lightgray}{HTML}{DCDDDF}
+ \definecolor{yellow}{HTML}{F6C342}
+ \definecolor{blue}{HTML}{2B62BA}
+ \definecolor{green}{HTML}{499167}
+ \definecolor{orange}{HTML}{F7CEA1}
+\else
+ \definecolor{red}{HTML}{CF0A2C}
+ \definecolor{black}{HTML}{232527}
+ \definecolor{gray}{HTML}{878C8F}
+ \definecolor{lightgray}{HTML}{DCDDDF}
+ \definecolor{yellow}{HTML}{F2DC5D}
+ \definecolor{blue}{HTML}{2274A5}
+ \definecolor{green}{HTML}{499167}
+ \definecolor{orange}{HTML}{F06543}
+\fi
+\makeatother
% \end{macrocode}
% \begin{macro}{\huawei@header}
@@ -542,10 +579,39 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
% Then, we define |\huawei@bar|:
% \begin{macrocode}
\makeatletter\newcommand\huawei@bar{%
- \begin{textblock}{1}[0,0](0,0)%
- \tikz \node[fill=red,minimum width=\TPHorizModule,
- minimum height=16\TPVertModule] {};%
- \end{textblock}%
+ \ifdefined\huawei@boring%
+ \begin{textblock}{16}[0,1](0,16)%
+ \tikz \node[fill=lightgray,minimum width=16\TPHorizModule,
+ minimum height=1.5\TPVertModule] {};%
+ \end{textblock}%
+ \begin{textblock}{8}[1,0.5](15,15.25)%
+ \raggedleft\huawei@logo{1.4}
+ \end{textblock}%
+ \ifdefined\huawei@nobrand\else%
+ \begin{textblock}{8}[0,0.5](1,15.25)%
+ \large\textcolor{gray}{\thecompany{}}%
+ \end{textblock}%
+ \fi%
+ \ifdefined\huawei@nosecurity\else%
+ \begin{textblock}{8}[0.5,0.5](7,15.25)%
+ \large\centering\textcolor{gray}{\thesecurity}%
+ \end{textblock}%
+ \fi%
+ \ifdefined\huawei@nopaging\else%
+ \begin{textblock}{8}[1,0.5](12,15.25)%
+ \raggedleft\large%
+ \textcolor{gray}{Page \#\thepage{} of \pageref*{LastPage}}%
+ \end{textblock}%
+ \fi%
+ \begin{textblock}{2}[1,0.5](14,15.25)%
+ \tikz \path[scale=0.3, draw=none, rotate=40, fill=white] (0,0) .. controls (3,1) .. (16,0) -- (16,3) .. controls (8, 2) .. (0, 3) -- (0,0);
+ \end{textblock}%
+ \else%
+ \begin{textblock}{1}[0,0](0,0)%
+ \tikz \node[fill=red,minimum width=\TPHorizModule,
+ minimum height=16\TPVertModule] {};%
+ \end{textblock}%
+ \fi%
}\makeatother
% \end{macrocode}
% \end{macro}
@@ -556,6 +622,7 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
\makeatletter\newcommand\huawei@logo[1]{
\def\BLACK{\ifdefined\huawei@dark white\else black\fi}
\def\BLANK{\ifdefined\huawei@dark black\else white\fi}
+\definecolor{logo-red}{HTML}{CF0A2C}
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-#1,
xscale=#1, inner sep=0pt, outer sep=0pt]
\begin{scope}[even odd rule,line width=0.800pt]
@@ -594,7 +661,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
\path[fill=\BLANK] (15.8594,31.7207) -- (16.7149,33.7008) --
(16.7119,33.7008) -- (16.7701,33.8374) -- (14.9552,33.8374) --
(15.0127,33.7008) -- (15.0117,33.7008) -- cycle;
-\path[fill=red] (15.2113,0.0001) .. controls (14.7353,0.0422) and
+\path[fill=logo-red] (15.2113,0.0001) .. controls (14.7353,0.0422) and
(13.4491,0.3349) .. (13.4491,0.3349) -- (13.4486,0.3349) .. controls
(10.5495,1.0843) and (9.8643,3.7151) .. (9.8643,3.7151) .. controls
(9.7227,4.1575) and (9.6584,4.6109) .. (9.6395,5.0380) --
@@ -606,7 +673,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(16.8633,19.9296) .. (16.8633,19.9296) --
(16.8654,19.9301) .. controls (18.4416,4.1760) and
(15.2113,0.0001) .. (15.2113,0.0001) -- (15.2113,0.0001) -- cycle;
-\path[fill=red] (20.4192,0.0000) .. controls (20.4192,0.0000) and
+\path[fill=logo-red] (20.4192,0.0000) .. controls (20.4192,0.0000) and
(17.1748,4.1782) .. (18.7521,19.9415) --
(18.7542,19.9415) .. controls (18.7664,20.0416) and
(18.8374,20.0624) ..(18.8374,20.0624) .. controls
@@ -617,7 +684,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(25.7636,3.7150) and (25.0470,1.0434) ..(22.1442,0.3375) .. controls
(22.1442,0.3375) and (21.3077,0.1251) .. (20.4193,0.0000) --
(20.4192,0.0000) -- cycle;
-\path[fill=red] (5.4542,4.7294) .. controls (5.4542,4.7294) and
+\path[fill=logo-red] (5.4542,4.7294) .. controls (5.4542,4.7294) and
(2.6920,7.3513) .. (2.5547,10.1307) -- (2.5558,10.1307) --
(2.5558,10.5519) .. controls (2.5579,10.5836) and
(2.5595,10.6157) .. (2.5615,10.6480) .. controls
@@ -631,7 +698,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(15.3683,20.8109) .. (15.3663,20.8065) --
(15.3669,20.8065) .. controls (11.1809,11.6620) and
(5.4543,4.7294) .. (5.4543,4.7294) -- (5.4542,4.7294) -- cycle;
-\path[fill=red] (30.1695,4.7294) .. controls (30.1695,4.7294) and
+\path[fill=logo-red] (30.1695,4.7294) .. controls (30.1695,4.7294) and
(24.4602,11.6403) .. (20.2761,20.7662) --
(20.2777,20.7657) .. controls (20.2777,20.7657) and
(20.2283,20.8715) .. (20.3082,20.9399) .. controls
@@ -643,7 +710,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(31.2563,14.2162) and (32.9686,12.8412) ..
(33.0583,10.6334) .. controls (33.2560,7.5672) and
(30.1696,4.7294) .. (30.1696,4.7294) -- (30.1695,4.7294) -- cycle;
-\path[fill=red] (35.3082,13.8080) .. controls (35.3082,13.8080) and
+\path[fill=logo-red] (35.3082,13.8080) .. controls (35.3082,13.8080) and
(26.0003,18.8031) .. (21.1876,22.0494) -- (21.1882,22.0499) --
(21.1893,22.0509) .. controls (21.1893,22.0509) and
(21.1019,22.1081) .. (21.1324,22.2106) .. controls
@@ -657,7 +724,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(35.6246,15.7531) .. controls (35.6206,15.1563) and
(35.5365,14.4957) .. (35.3083,13.8080) --
(35.3082,13.8080) -- cycle;
-\path[fill=red] (0.3129,13.8313) .. controls (-0.5339,16.4531) and
+\path[fill=logo-red] (0.3129,13.8313) .. controls (-0.5339,16.4531) and
(0.6062,18.5656) .. (0.6080,18.5690) .. controls
(1.7962,21.0795) and (4.0641,21.8401) ..
(4.0641,21.8401) .. controls (5.1112,22.2703) and
@@ -670,7 +737,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(14.4439,22.0584) .. (14.4439,22.0584) --
(14.4450,22.0578) .. controls (9.6347,18.8126) and
(0.3130,13.8315) .. (0.3130,13.8315) -- (0.3129,13.8313) -- cycle;
-\path[fill=red] (14.1782,23.1010) -- (3.2285,23.4850) .. controls
+\path[fill=logo-red] (14.1782,23.1010) -- (3.2285,23.4850) .. controls
(4.4160,25.6018) and (6.4158,27.2469) ..
(8.4990,26.7416) .. controls (9.9366,26.3822) and
(13.1935,24.1105) .. (14.2687,23.3429) --
@@ -678,7 +745,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
(14.3188,23.2045) .. (14.3188,23.2045) .. controls
(14.2913,23.1062) and (14.1783,23.1063) .. (14.1783,23.1063) --
(14.1782,23.1010) -- cycle;
-\path[fill=red] (21.4305,23.1090) -- (21.4294,23.1130) .. controls
+\path[fill=logo-red] (21.4305,23.1090) -- (21.4294,23.1130) .. controls
(21.4294,23.1130) and (21.3333,23.1252) ..
(21.3064,23.1972) .. controls (21.3064,23.1972) and
(21.2831,23.2956) .. (21.3478,23.3445) --
@@ -715,55 +782,61 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
\makeatletter\fancyhead[L]{
\ifnum\value{page}=1\else%
\ifdefined\huawei@nobrand\else%
- \begin{textblock}{8}[0,0](1.2,0.2)%
- \huawei@logo{\ifdefined\huawei@slides 1.8\else 1\fi}%
- \end{textblock}%
+ \ifdefined\huawei@boring\else%
+ \begin{textblock}{8}[0,0](1.2,0.2)%
+ \huawei@logo{\ifdefined\huawei@slides 1.8\else 1\fi}%
+ \end{textblock}%
+ \fi
\fi%
\fi%
}\makeatother
\makeatletter\fancyhead[R]{
- \begin{textblock}{8}[1,0](15.8,0.2)%
- \raggedleft\huawei@header{%
- \ifdefined\huawei@nosecurity\else%
- \thesecurity%
- \fi%
- }%
- \end{textblock}%
+ \ifdefined\huawei@boring\else%
+ \begin{textblock}{8}[1,0](15.8,0.2)%
+ \raggedleft\huawei@header{%
+ \ifdefined\huawei@nosecurity\else%
+ \thesecurity%
+ \fi%
+ }%
+ \end{textblock}%
+ \fi%
}\makeatother
\makeatletter\fancyfoot[R]{
- \begin{textblock}{8}[0,1](1.2,15.8)%
- \ifnum\value{page}=1\else%
- \huawei@header{\raggedright%
- \ifdefined\huawei@anonymous\else%
- \theauthor%
- \ifdefined\huawei@nosecurity\else%
- \ifx\theid\empty\else, \theid\fi%
+ \ifdefined\huawei@boring\else%
+ \begin{textblock}{8}[0,1](1.2,15.8)%
+ \ifnum\value{page}=1\else%
+ \huawei@header{\raggedright%
+ \ifdefined\huawei@anonymous\else%
+ \theauthor%
+ \ifdefined\huawei@nosecurity\else%
+ \ifx\theid\empty\else, \theid\fi%
+ \fi%
+ \ifdefined\huawei@nobrand\else%
+ \newline
+ \fi%
\fi%
\ifdefined\huawei@nobrand\else%
- \newline
+ \thecompany{}%
+ \fi%
+ }%
+ \fi%
+ \end{textblock}%
+ \begin{textblock}{8}[1,1](15.8,15.8)%
+ \raggedleft\huawei@header{%
+ \ifnum\value{page}=1\else%
+ \ifdefined\huawei@nopaging\else%
+ Page \#\thepage{} of \pageref*{LastPage}%
+ \ifdefined\huawei@nodate\else%
+ \\
+ \fi%
\fi%
\fi%
- \ifdefined\huawei@nobrand\else%
- \thecompany{}%
+ \ifdefined\huawei@nodate\else%
+ \today{} \settimeformat{daytime}\currenttime{}%
\fi%
}%
- \fi%
- \end{textblock}%
- \begin{textblock}{8}[1,1](15.8,15.8)%
- \raggedleft\huawei@header{%
- \ifnum\value{page}=1\else%
- \ifdefined\huawei@nopaging\else%
- Page \#\thepage{} of \pageref*{LastPage}%
- \ifdefined\huawei@nodate\else%
- \\
- \fi%
- \fi%
- \fi%
- \ifdefined\huawei@nodate\else%
- \today{} \settimeformat{daytime}\currenttime{}%
- \fi%
- }%
- \end{textblock}%
+ \end{textblock}%
+ \fi%
}\makeatother
% \end{macrocode}
@@ -782,7 +855,13 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
% \begin{macrocode}
\makeatletter\renewcommand\maketitle{%
\vspace*{18pt}%
- {\bfseries{\begin{spacing}{.9}\Huge\raggedright\thetitle\par\end{spacing}}}%
+ {%
+ \bfseries{\begin{spacing}{.9}\Huge\raggedright%
+ \ifdefined\huawei@boring%
+ \color{red}%
+ \fi%
+ \thetitle\par\end{spacing}}%
+ }%
\ifx\thesubtitle\empty\else%
{\color{gray!50!black}\large\raggedright\thesubtitle\par}%
\fi%
@@ -916,7 +995,7 @@ xscale=#1, inner sep=0pt, outer sep=0pt]
\newpage%
\vspace*{1in}%
\begin{center}%
- \begin{minipage}{0.6\columnwidth}\raggedright%
+ \begin{minipage}{0.8\columnwidth}\raggedright%
\normalsize%
\setlength{\parskip}{6pt}%
{\Huge\color{red}\textbf{Thank you!}}%
diff --git a/macros/latex/contrib/huawei/huawei.pdf b/macros/latex/contrib/huawei/huawei.pdf
index c0c742fa02..2fa35a673f 100644
--- a/macros/latex/contrib/huawei/huawei.pdf
+++ b/macros/latex/contrib/huawei/huawei.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes
index ac9450c444..a44bbdc787 100644
--- a/macros/latex/contrib/hvfloat/Changes
+++ b/macros/latex/contrib/hvfloat/Changes
@@ -1,4 +1,7 @@
hvfloat.sty:
+2.51 2024-10-02 - added option nonFloatTopSkip, preset to 2pt like \interlineskip
+ only valid for nonFloats and caption not on top
+2.50 2024-04-06 - first try for a check on page beginning
2.49 2024-03-17 - bugfix for checkoddpage and FULLPAGE option
2.48 2024-03-03 - added option fboxLines to get patial lines of \fbox
(package fbox)
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
index eb14a418f5..df6892daae 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.tex b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
index 169270c2d4..846f363bc1 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.tex
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.tex 878 2024-03-16 20:49:50Z herbert $
+%% $Id: hvfloat.tex 1014 2024-10-03 08:22:14Z herbert $
%\listfiles
\errorcontextlines=100
\documentclass[twoside,paper=a4,usegeometry,index=totoc]{scrartcl}
@@ -401,6 +401,7 @@ There are the following keywords:
\Lkeyword{nonFloat} & false & \rowvsp The object isn't put in a floating
environment, but printed as standard text with an additional caption.
\rownl The float counter is increased as usual and can be referenced.\\
+\Lkeyword{nonFloatTopSkip} & 2pt & Skip between text and object with caption below for nonFloat objects.\\
\Lkeyword{wide} & false & \rowvsp The float can use
\Ldim{textwidth}$\,+\,$\Ldim{marginparwidth} as horizontal width.\\
\Lkeyword{inMargin} & false & \rowvsp Put object and frame into the margin.\\
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
index e4d8b07cf0..74bddea179 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
@@ -1,10 +1,11 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\paperwidth, height=variable
%%
%% ||1in+evenside --- |1in+oddside ---|| Image is 2\paperwidth wide, height is variable or user set
%
@@ -26,6 +27,7 @@
\let\c@hv@tempCNTtabA\c@table
\checkoddpage
\ifoddpage
+ \test@typeout{>>>>Befehl auf ungerader Seite, kein Test auf Anfang für Doppelseite!}%
\if@twocolumn
\if@firstcolumn
\afterpage{afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% 2nd Col and newpage
@@ -37,21 +39,27 @@
\fi % end \if@twocolumn
\else% evenpage
%---------
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ %\typeout{Boxmaße: \the\wd\hvObjectBox;\the\ht\hvObjectBox}%
%\typeout{>>>>Setze hv@atPageBeginfalse}%
\global\hv@atPageBeginfalse
+ \hv@float@head=\the\dimexpr+1in+\topmargin+\headheight+\headsep
+ \hv@float@foot=\the\dimexpr\paperheight-\hv@float@head-\textheight
+ %\typeout{Kopf: \the\hv@float@head}%
+ %\typeout{Fuß: \the\hv@float@foot}%
\stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
- \@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
+ \@tempy=\dimexpr\paperheight-\zposy{\thehvfloat@ref} sp-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
- \ifdim\@tempy > \dimexpr\f@size pt + 2pt
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \ifdim\@tempy > \dimexpr\f@size pt + 2pt % Test, ob Abbildung oben
+ \expandafter\ifdefined\csname HV@float@ref@\thehvfloat@ref\endcsname % already on top from last run?
+ \global\hv@atPageBegintrue
+ \immediate\write\@auxout{\expandafter\gdef\csname HV@float@ref@\thehvfloat@ref\endcsname{1}}%
+ \fi
\else
- \ifdim\@tempx = \z@
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \ifdim\@tempx = \z@%
\global\hv@atPageBegintrue
- \else
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
+ \immediate\write\@auxout{\expandafter\gdef\csname HV@float@ref@\thehvfloat@ref\endcsname{1}}%
\fi
\fi
%---------
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
index effd6aec61..3eda3db0f1 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
@@ -1,10 +1,11 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\paperwidth, height=\paperheight
%%
%% ||1in+evenside --- |1in+oddside ---||
%
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
index a6c498e2b3..dc4879f4e1 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
@@ -1,11 +1,14 @@
%%
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\textwidth+\leftmargin+\rightmargin height=variable
+%% _Without_ additional text on the doublepage
+%%
%% ||1in+evenside --- |1in+oddside ---||
%
@@ -34,24 +37,28 @@
\hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}%
%---------
\hv@atPageBeginfalse
- \stepcounter{hvfloat@ref}%
+% \stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
\@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
+ \ifhv@test\marginnote{>>\the\@tempx >>\the\@tempy >>\f@size}\fi
\ifdim\@tempy > \z@
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
\ifdim\@tempx < \z@
- %\typeout{>>>>Case 0-1, Text oben auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0-1, Text oben auf der Seite \thehvfloat@ref}%
+ \typeout{>>>>>-2.inc NEUER TEST: \the\@tempy; \the\ht\hvObjectBox}%
+ \ifdim\@tempy=\ht\hvObjectBox % Annnahme, dass nur die Abbildung oben ist
+ \hv@atPageBegintrue
+ \fi
\else
- %\typeout{>>>>Case 0-2, Absolut oben links auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0-2, Absolut oben links auf der Seite \thehvfloat@ref}%
\hv@atPageBegintrue
\fi
\else
\ifdim\@tempx > \z@
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
+ \test@typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
\else
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \test@typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
\hv@atPageBegintrue
\fi
\fi
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
index d3544cbe3e..f48ecab1ec 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
@@ -1,10 +1,12 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\textwidth+\leftmargin+\rightmargin height=variable
+%% _With_ additional text on the doublepage
%%
%% ------------------------------------- the doublepage obejcts ---------------------------
%% ||1in+evenside --- |1in+oddside ---||
@@ -96,21 +98,23 @@
\fi
\else% we have an even page
\hvfloat@typeout{do@hvFloat@doublePage:evenpage -> (\thepage)}%
- %\typeout{>>>>Setze hv@atPageBeginfalse}%
+ \test@typeout{>>>>Setze hv@atPageBeginfalse}%
\global\hv@atPageBeginfalse
- \stepcounter{hvfloat@ref}%
+% \stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
\@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
+ \ifhv@test\marginnote{>>\the\@tempx >>\the\@tempy >>\f@size}\fi
\ifdim\@tempy > \dimexpr\f@size pt + 2pt % Interlinespace
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \typeout{>>>>>-3.inc NEUER TEST Y:\the\@tempy; BOX:\the\ht\hvObjectBox}%
+ \ifdim\dimexpr\ht\hvObjectBox-\@tempy < \f@size pt % Annnahme, dass nur die Abbildung oben ist
+ \hv@atPageBegintrue
+ \fi
\else
\ifdim\@tempx = \z@
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \test@typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
\global\hv@atPageBegintrue
- \else
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
\fi
\fi
%---------
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc
new file mode 100644
index 0000000000..fe1aa2f20e
--- /dev/null
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc
@@ -0,0 +1,211 @@
+%% Herbert Voss <hvoss@tug.org>
+%% Copyright (C) 2024
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% Option FULLPAGE, complete paperarea on _one_ page even/odd
+%%
+%% width=\textwidth+\leftmargin+\rightmargin height=variable --> FULLPAGE
+%% _With_ no additional text on the doublepage
+%%
+%% ------------------------------------- the fullpage obejcts ---------------------------
+%% ||1in+evenside --- |1in+oddside ---||
+%
+%\def\do@@@@hvFloat{% special float page: caption <-> FULLPAGE images
+ \hvfloat@typeout{>>>do@@@@hvFloat: special float page}%
+ \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1
+ \else
+ \ifx\hvSet@capPos\hv@Even \global\hv@@capPos=2
+ \else
+ \ifx\hvSet@capPos\hv@Odd \global\hv@@capPos=3
+ \else
+ \ifx\hvSet@capPos\hv@Inner \global\hv@@capPos=4
+ \else
+ \ifx\hvSet@capPos\hv@Outer \global\hv@@capPos=5
+ \else
+ \ifx\hvSet@capPos\hv@Right \global\hv@@capPos=6% only for twocolumn mode
+ \else
+ \ifx\hvSet@capPos\hv@Left \global\hv@@capPos=7% only for twocolumn mode
+ \else
+ \global\hv@@capPos=0
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \hvfloat@typeout{>>>do@@@@hvFloat: hv@capPos is \the\hv@@capPos}%
+% \checkoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: set floattype}%
+ \set@caption@object{\hv@floatType}% set caption and object into a box
+%
+ \ifcase\hv@@capPos% caption before object 0-> _always_ left
+ \hvfloat@typeout{>>>do@@@@hvFloat: setBottomCaption and setPageObject (0)}%
+ \setBottomCaption\setPageObject
+ \or% caption after object 1-> _always_ right
+ \hvfloat@typeout{>>>do@@@@hvFloat: setPageObject and setBottomCaption (1)}%
+ \setPageObject\setBottomCaption
+ \or% caption on even page 2-> left page
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage-> oddpage/setBottomCaption and setPageObject (2)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \else% we are on an even page
+ \hvfloat@typeout{>>>do@@@@hvFloat: evenpage/setBottomCaption and setPageObject (2)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption on odd page 3->right page
+ \if@twoside
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside and caption on oddpage (3)}%
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage and caption on oddpage (3)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage/firstcolumn and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/twocolumn/oddpage/secondcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}% start next column
+ \fi
+ \else% left (even) page
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage and caption on evenpage (3)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/twocolumn/evenpage/firstcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}% start next column
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/evenage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \fi
+ \else% onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/onecolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/onecolumn/oddpage and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \else% even page
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/onecolumn/evenpage and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \fi
+ \fi
+ \else% oneside
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside and caption on oddpage (3)}%
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage and caption on oddpage (3)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage/firstcolumn and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/evenpage and caption on oddpage (3)}%
+ \if@firstcolumn% on left side
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->oneside/twocolumn/evenpage/firstcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/evenpage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \fi
+ \else % onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/onecolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/onecolumn/oddpage and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->oneside/onecolumn/evenpage and caption on oddpage (3)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \fi
+ \fi
+ \or% caption on the inner column 4->inner
+% \set@caption@object
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption on inner column (4)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage and caption on inner column (4)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage/firstcolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject
+ \else % right column on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage/secondcolumn and caption on inner column (4)}%
+ \setPageObject\setBottomCaption% start next firstcolumn next page
+ \fi
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/evenpage and caption on inner column (4)}%
+ \if@firstcolumn% on left side
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage^2 -> twoside/evenpage/firstcolumn and caption on inner column (4)}%
+ \afterpage{\afterpage{\setBottomCaption\setPageObject}}% start next page/first column
+ \else% left page/column
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/evenpage/secondcolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject% start on same page/column
+ \fi
+ \fi
+ \else% onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption on the outer column 5->outer
+% \set@caption@object
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption on outer column (5)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/oddpage and caption on outer column (5)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage^2 -> firstcolumn/oddpage/twocolumn and caption on outer column (5)}%
+ \afterpage{\afterpage{\setBottomCaption\setPageObject}}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/oddpage/secondcolumn and caption on outer column (5)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \else% even page (left)
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage and caption on outer column (5)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage/firstcolumn and caption on outer column (5)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage/secondolumn and caption on outer column (5)}%
+%%% !!!! to-do: !!!!
+ \fi
+ \fi
+ \else% onecolumn
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption after object on same page 6->right for twocolumn
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption after object (6)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/firstcolumn and caption after object (6)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/secondcolumn and caption after object (6)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \else% always caption _after_ object for onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption after object (6)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \or% caption before object on same page 7->left for twocolumn
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption before object (7)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/firstcolumn and caption before object (7)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/secondcolumn and caption before object (7)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \else% onecolumn -> same as before
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption before object (7)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \fi
+ \endgroup% startet at main \hvFloat
+%}
+%
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
index 5c4539a9b2..e7cf47c483 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.sty 879 2024-03-17 10:44:09Z herbert $
+%% $Id: hvfloat.sty 1014 2024-10-03 08:22:14Z herbert $
%%
%%
%% IMPORTANT NOTICE:
@@ -16,8 +16,8 @@
%% `hvfloat' offers rotating of captions and objects for floats
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{2.49}
-\def\filedate{2024/03/17}
+\def\fileversion{2.51}
+\def\filedate{2024/10/02}
\ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)]
\let\hvFloatFileVersion\fileversion
%
@@ -60,6 +60,8 @@
\newdimen\@tempy
\newcounter{hvfloat@testCtr}
\newcounter{hvfloat@ref}
+\newdimen\hv@float@head
+\newdimen\hv@float@foot
\renewcommand\thehvfloat@ref{tmp@\arabic{hvfloat@ref}}
\setcounter{hvfloat@ref}{0}
\newif\ifhv@atPageBegin
@@ -86,6 +88,7 @@
\newlength\hvCapWidth
\newlength\hvWideWidth
\newlength\hvMultiFloatSkip
+\newlength\hvNonFloatTopSkip
\newlength\hvMaxCapWidth
\newlength\hvFloatFullWidth % only for user purpose
\AtBeginDocument{\hvFloatFullWidth=\the\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}
@@ -188,10 +191,14 @@
\define@key{hvSet}{multiFloatSkip}[\normalbaselineskip]{% a width with the unit pt
\setlength\hvMultiFloatSkip{#1}%
}
+\define@key{hvSet}{nonFloatTopSkip}[\medskipamount]{% a topskip for nonfloats with the unit pt
+ \setlength\hvNonFloatTopSkip{#1}%
+}
\define@boolkey{hvSet}[hv@]{useOBox}[true]{}% use of the hvOBox contents
\define@boolkey{hvSet}[hv@]{nonFloat}[true]{}% Do not use float environment
\define@boolkey{hvSet}[hv@]{inMargin}[true]{}% use of the hvOBox contents
\define@boolkey{hvSet}[hv@]{onlyText}[true]{}% Write the caption only as text
+\define@boolkey{hvSet}[hv@]{onlyTextInTOC}[true]{}% caption without number into TOC
\define@boolkey{hvSet}[hv@]{wide}[true]{}% Write the caption only as text
\define@boolkey{hvSet}[hv@]{forceLeft}[true]{}% use only one \afterpage instead of \afterpage{\afterpage{..
\define@boolkey{hvSet}[hv@]{twoColumnCaption}[true]\global\@nameuse{hv@twoColumnCaption#1}{}% Write the caption only as text
@@ -304,7 +311,7 @@
floatPos=, rotAngle=0, capWidth=n, capAngle=0, objectAngle=0,
capPos=bottom, capVPos=center, objectPos=center, capHPos=center,
floatCapSep=5pt, useOBox=false, forceLeft=false,
- onlyText=false, wide=false, fullpage=false, FULLPAGE=false,
+ onlyText=false, onlyTextInTOC=false, wide=false, fullpage=false, FULLPAGE=false,
doubleFULLPAGE=false, doublePage=false, doublePAGE=false,
multiFloat=false,subFloat=false,inMargin=false,
separatorLine,objectFrame=false, fboxLines={ltrb}, fboxSep=0pt,
@@ -312,6 +319,7 @@
capFormat={}, subcapFormat={}, twoColumnCaption=false,
sameHeight=false,
bindCorr=\z@,sepLineskip=0pt,
+ nonFloatTopSkip=\medskipamount,
vFill=false, minTextlines=2,
forceOutput=false, nonFloat=false,
}%
@@ -541,7 +549,6 @@
\def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}}
\def\do@hvFloat[#1]{%
- \ifhv@Debug\marginnote{\textbf{hvFloat}}\fi%
%\marginnote{\textbf{hvFloat}}%
\savebox\hvObjectBox{}%
\begingroup
@@ -568,6 +575,7 @@
{\hv@subcaption@format}%
\fi
\gdef\hv@floatType{figure}% presetting
+ \ifhv@Debug\marginnote{\textbf{hvFloat}}\fi%
\@ifnextchar+{\do@multiFloat}{\hvFloat@ii[#1]}%
}
@@ -642,7 +650,7 @@
\ifhv@capbeside\def\@@temp{1}\else\def\@@temp{0}\fi
\ifhv@sameHeight\global\hv@global@sameHeighttrue\else\global\hv@global@sameHeightfalse\fi
\global\hvSet@bindCorrection=\hvSet@bindCorr% for doublepage objects
- \global\hv@floatCapSep=\hvSet@floatCapSep%
+ \global\hv@floatCapSep=\hvSet@floatCapSep
%
\ifhv@fullpage
\hvfloat@typeout{>>>> do@@hvFloat: fullpage true}%
@@ -662,11 +670,11 @@
\ifhv@doubleFullPage
\hvfloat@typeout{>>>> do@@hvFloat: doubleFullPage true}%
\setlength\hvCapWidth{\textwidth}%
- \expandafter\do@hvFloat@doubleFullPage\@@temp% fullpage with caption under an odd page
+ \expandafter\do@hvFloat@doubleFullPage\@@temp % fullpage with caption under an odd page
\else
\ifhv@doublePAGE
\hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}%
- \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page
+ \expandafter\do@hvFloat@doublePAGE\@@temp % fullpage with caption rotated or under on an odd page
\else
\ifhv@doublePage
\hvfloat@typeout{>>>> do@@hvFloat: doublePage true}%
@@ -689,11 +697,15 @@
%
\def\do@@@hvFloat{% no special float page, caption and image on top of each other or side by side
\def\@tempa{90}%
+ \setlength\hvWideWidth{\dimexpr\textwidth+\marginparsep+\marginparwidth-10pt}% Mehr Platz rechts
\ifx\hvSet@rotAngle\@tempa
\setlength\hvMaxCapWidth{\textheight}%
\else
\setlength\hvMaxCapWidth{\hvWideWidth}%
\fi
+ \ifhv@nonFloat
+ \ifx\hvSet@capPos\hv@Top\else\vspace{\hvNonFloatTopSkip}\fi
+ \fi
%
% First we save the object in \hvObjectBox
%
@@ -742,14 +754,12 @@
\ifhv@capbeside
\ifhv@wide
\setlength\hvCapWidth{\hvSet@capWidth\hvWideWidth}%
- \@tempdima=\the\dimexpr\hvWideWidth-\hvObjectWidth-\hv@floatCapSep\relax
+ \@tempdima=\the\dimexpr\hvWideWidth-\hvObjectWidth-\hv@floatCapSep\relax % 2, damit nicht zu dicht am Rand
\else
\setlength\hvCapWidth{\hvSet@capWidth\columnwidth}%
\@tempdima=\the\dimexpr\columnwidth-\hvObjectWidth-\hv@floatCapSep\relax
\fi
- \ifdim\hvCapWidth>\@tempdima
- \hvCapWidth=\@tempdima
- \fi
+ \ifdim\hvCapWidth>\@tempdima \hvCapWidth=\@tempdima\fi
\else
\ifhv@wide
\setlength\hvCapWidth{\hvSet@capWidth\hvWideWidth}%
@@ -768,7 +778,8 @@
% \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
\ifhv@nonFloat
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\ifx\hv@floatType\hv@figure
\ifx\relax\hv@shortCap\relax
@@ -786,9 +797,10 @@
\fi
\else
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
- \expandafter\ifx\hv@longCap\@empty \else
+ \expandafter\ifx\hv@longCap\@empty \else
\let\@captype\hv@floatType
\ifx\hv@shortCap\@empty\caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}\fi
\ifx\hv@label\@empty\else\label{\hv@label}\fi
@@ -804,7 +816,8 @@
% \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
\ifhv@nonFloat
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\ifx\hv@floatType\hv@figure
\ifx\hv@shortCap\@empty \figcaption{\hv@longCap}\else\figcaption[\hv@shortCap]{\hv@longCap}\fi
@@ -815,7 +828,8 @@
\else
\expandafter\ifx\hv@longCap\@empty \else
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\let\@captype\hv@floatType
\ifx\hv@shortCap\@empty \caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}%
@@ -1647,7 +1661,8 @@
\setlength\belowcaptionskip{5pt}%
\setlength\abovecaptionskip{0pt}%
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\edef\@captype{\hv@floatType}%
\expandafter\ifx\expandafter\relax\hv@shortCap\relax
diff --git a/macros/latex/contrib/hvlogos/Changes b/macros/latex/contrib/hvlogos/Changes
index 8435c80248..6ce3c32f03 100644
--- a/macros/latex/contrib/hvlogos/Changes
+++ b/macros/latex/contrib/hvlogos/Changes
@@ -1,16 +1,17 @@
hvlogos.sty:
-0.12 2024-01-24 - fix for introduced bug
-0.11 2024-01-23 - do not load a mathfont
-0.10 2023-10-16 - changed \MetaPost to \MP
-0.09 2022-05-06 - changed almost all \def to \providecommand
-0.08 2022-04-25 - added \mkII, \mkIV
-0.07 2022-02-28 - fix for \dante and \eV
-0.06 2022-01-23 - added \BibLaTeXML
-0.05 2022-01-08 - added \LuaMetaTeX and \LMTX with alias in lowercase letters
-0.04 2021-10-02 - added \tex4ht
-0.03 2021-09-25 - \tikz in regular font
+0.12a 2024-10-13 - added a section for problems with other packages
+0.12 2024-01-24 - fix for introduced bug
+0.11 2024-01-23 - do not load a mathfont
+0.10 2023-10-16 - changed \MetaPost to \MP
+0.09 2022-05-06 - changed almost all \def to \providecommand
+0.08 2022-04-25 - added \mkII, \mkIV
+0.07 2022-02-28 - fix for \dante and \eV
+0.06 2022-01-23 - added \BibLaTeXML
+0.05 2022-01-08 - added \LuaMetaTeX and \LMTX with alias in lowercase letters
+0.04 2021-10-02 - added \tex4ht
+0.03 2021-09-25 - \tikz in regular font
- \CTAN is sf font
-0.02 2021-08-13 - fix for \tikz which is reserved by package tikz
+0.02 2021-08-13 - fix for \tikz which is reserved by package tikz
renamed to \tikzlogo
- added logos for Purdue University
0.01 2021-07-30 - first CTAN version
diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
index 4fa98b55c7..839fe10cbb 100644
--- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
+++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
index 75c7cfbea2..43f560731b 100644
--- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
+++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
@@ -136,7 +136,7 @@ The package \LPack{hvlogos} loads by default the packages
-\section*{Experimental}
+\section*{Experimental -- no support}
The logos for \LaTeX\ and \LaTeXTeX\ can be modified with the following commands:
@@ -160,6 +160,22 @@ A missing optional argument will be set by its default. Remember that you have t
want to change only the 2nd, 3rd or 4th.
+\section{Problems with other packages}
+In general it should be no problem to load \LPack{hvlogos} with other packages. But with
+
+\begin{description}
+\item[mathastext] you have to define a math font if you are using \LuaLaTeX\ or \XeLaTeX:
+
+\begin{verbatim}
+\documentclass{article}
+\usepackage{mathastext}
+\usepackage{hvlogos}
+\setmathfont{LatinModernMath}% or any other one
+[...]
+\end{verbatim}
+\end{description}
+
+
%\NewDocumentCommand\hvLaTeXTeX{ O{-0.1em} O{-0.25em} O{-0.15em} O{-0.1em} }
% {\def\LaTeXTeX{(\kern#1\hologo{La}[#2]\kern#3)\kern#4\hologo{TeX}}}
@@ -168,6 +184,10 @@ want to change only the 2nd, 3rd or 4th.
%\hvLaTeXTeX
+
+
+
+
\printindex
\end{document}
diff --git a/macros/latex/contrib/hvlogos/latex/hvlogos.sty b/macros/latex/contrib/hvlogos/latex/hvlogos.sty
index bfdf9332b0..444e4e05e4 100644
--- a/macros/latex/contrib/hvlogos/latex/hvlogos.sty
+++ b/macros/latex/contrib/hvlogos/latex/hvlogos.sty
@@ -10,7 +10,7 @@
%
%
% -------------------------------------
-\ProvidesPackage{hvlogos}[2024/01/24 v. 0.12 Logos (hv)]
+\ProvidesPackage{hvlogos}[2024/10/13 v. 0.12a Logos (hv)]
%
\newif\if@dtk@newengine \@dtk@newenginetrue
%
@@ -22,6 +22,7 @@
\RequirePackage{unicode-math}
\setmathfont[version=LM]{LatinModernMath-Regular}
\setmathfont[version=XITS]{XITSMath-Regular.otf}
+ \setmathfont[version=STIX]{STIX Two Math}
\fi
%
\iffalse
diff --git a/macros/latex/contrib/hyperref/ChangeLog.txt b/macros/latex/contrib/hyperref/ChangeLog.txt
index 0ff7510869..c2833e5c27 100644
--- a/macros/latex/contrib/hyperref/ChangeLog.txt
+++ b/macros/latex/contrib/hyperref/ChangeLog.txt
@@ -1,3 +1,14 @@
+Version: 2024-10-30 v7.01k
+
+2024-10-14 Ulrike Fischer
+ * hyperref.dtx: adapt to new format (predefined \theHcounter, sockets)
+
+2024-10-12 Ulrike Fischer
+ * hyperref.dtx: avoid warning if theHfootnote is predefined.
+
+2024-08-31 Ulrike Fischer
+ * hyperref-linktarget.dtx: correct a test, see test missing-theH
+
Version: 2024-07-10 v7.01j
2024-07-10 Ulrike Fischer
* hyperref.dtx: define \HyOrg@addtoreset always for cleveref
diff --git a/macros/latex/contrib/hyperref/README.md b/macros/latex/contrib/hyperref/README.md
index 335fb1f62b..01a75681ed 100644
--- a/macros/latex/contrib/hyperref/README.md
+++ b/macros/latex/contrib/hyperref/README.md
@@ -1,6 +1,6 @@
# README for hyperref bundle
-Version 2024-07-10 v7.01j
+Version 2024-10-30 v7.01k
## INTRODUCTION
@@ -137,5 +137,3 @@ Responsible for the additions to PU encoding for Arabi is
\endgroup
```
* ...
-
-
diff --git a/macros/latex/contrib/hyperref/doc/backref.pdf b/macros/latex/contrib/hyperref/doc/backref.pdf
index 5ec3d8b07f..234c63b51b 100644
--- a/macros/latex/contrib/hyperref/doc/backref.pdf
+++ b/macros/latex/contrib/hyperref/doc/backref.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.css b/macros/latex/contrib/hyperref/doc/hyperref-doc.css
index 71d181adf7..913a445f4a 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref-doc.css
+++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.css
@@ -236,7 +236,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline hr, .cline hr{border:none;border-top:1px solid black;}
.hline {border-top: 1px solid black;}
.hline + .vspace:last-child{display:none;}
-.hline:first-child{border-bottom:1px solid black;border-top:none;}
.tabbing-right {text-align:right;}
div.float, div.figure {margin-left: auto; margin-right: auto;}
div.float img {text-align:center;}
@@ -304,7 +303,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline hr, .cline hr{border:none;border-top:1px solid black;}
.hline {border-top: 1px solid black;}
.hline + .vspace:last-child{display:none;}
-.hline:first-child{border-bottom:1px solid black;border-top:none;}
div.array {text-align:center;}
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
table.longtable{border-collapse: collapse; border-spacing: 0;}
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.html b/macros/latex/contrib/hyperref/doc/hyperref-doc.html
index 0b918b602d..8b915a7d46 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref-doc.html
+++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.html
@@ -25,7 +25,7 @@ href="https://github.com/latex3/hyperref/issues" class="url" ><span
class="ec-lmvtt-10x-x-120">https://github.com/latex3/hyperref/issues</span></a><span
class="ec-lmr-12">)</span></div><br />
<div class="date" ><span
-class="ec-lmr-12">2024-07-10 v7.01j</span></div>
+class="ec-lmr-12">2024-10-30 v7.01k</span></div>
</div>
<h3 class="likesectionHead"><a
id="x1-1000"></a>Contents</h3>
@@ -1040,7 +1040,7 @@ class="td11"> <!--l. 601--><p class="noindent" >no-op
standard
in
<span
-class="ec-lmvtt-10">\DeclareDocumentMetadata</span>. </td>
+class="ec-lmvtt-10">\DocumentMetadata</span>. </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-1"
class="td11"> <span
@@ -1063,7 +1063,7 @@ class="td11"> <!--l. 603--><p class="noindent" >no-op
version
in
<span
-class="ec-lmvtt-10">\DeclareDocumentMetadata</span>. </td>
+class="ec-lmvtt-10">\DocumentMetadata</span>. </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-7-1"
class="td11"> <span
@@ -2188,7 +2188,7 @@ id="TBL-9-4"></colgroup>
style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-1"
class="td01"><span
class="ec-lmvtt-10">bookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2"
-class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-3"
+class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-3"
class="td11"> <span
class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-1-4"
class="td10">
@@ -2207,7 +2207,7 @@ class="ec-lmvtt-10">.out </span>file is not rewritten
style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1"
class="td01"><span
class="ec-lmvtt-10">bookmarksopen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2"
-class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-3"
+class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-3"
class="td11"> <span
class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-2-4"
class="td10">
@@ -2228,7 +2228,7 @@ class="ec-lmvtt-10">\maxdimen</span>) to which bookmarks are open</td>
style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-1"
class="td01"><span
class="ec-lmvtt-10">bookmarksnumbered </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2"
-class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-3"
+class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-3"
class="td11"> <span
class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-4-4"
class="td10">
@@ -2247,7 +2247,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-1"
class="td01"><span
class="ec-lmvtt-10">CJKbookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-2"
-class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-3"
+class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-3"
class="td11"> <span
class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-6-4"
class="td10">
@@ -2275,7 +2275,7 @@ class="ec-lmss-10">hyperref </span>you get PDF files which
style="vertical-align:baseline;" id="TBL-9-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-1"
class="td01"><span
class="ec-lmvtt-10">pdfhighlight </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-2"
-class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-3"
+class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-3"
class="td11"> <span
class="ec-lmri-10">/I </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-7-4"
class="td10">
@@ -2287,7 +2287,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-1"
class="td01"><span
class="ec-lmvtt-10">citebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-3"
class="td11"> <span
class="ec-lmri-10">0 1 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-8-4"
class="td10">
@@ -2296,7 +2296,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-9-1"
class="td01"><span
class="ec-lmvtt-10">filebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-9-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-9-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-9-3"
class="td11"> <span
class="ec-lmri-10">0 .5 .5 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-9-4"
class="td10">
@@ -2305,7 +2305,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-10-1"
class="td01"><span
class="ec-lmvtt-10">linkbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-10-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-10-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-10-3"
class="td11"> <span
class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-10-4"
class="td10">
@@ -2314,7 +2314,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-11-1"
class="td01"><span
class="ec-lmvtt-10">menubordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-11-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-11-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-11-3"
class="td11"> <span
class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-11-4"
class="td10">
@@ -2323,7 +2323,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-12-1"
class="td01"><span
class="ec-lmvtt-10">urlbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-12-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-12-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-12-3"
class="td11"> <span
class="ec-lmri-10">0 1 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-12-4"
class="td10">
@@ -2332,7 +2332,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-1"
class="td01"><span
class="ec-lmvtt-10">runbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-2"
-class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-3"
+class="td11"> rgb color </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-3"
class="td11"> <span
class="ec-lmri-10">0 .7 .7 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-13-4"
class="td10">
@@ -2341,7 +2341,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-14-1"
class="td01"><span
class="ec-lmvtt-10">allbordercolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-14-2"
-class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-14-3"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-14-3"
class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-9-14-4"
class="td10">
<!--l. 1015--><p class="noindent" >Set all border color options </td>
@@ -2349,7 +2349,7 @@ class="td10">
style="vertical-align:baseline;" id="TBL-9-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-15-1"
class="td01"><span
class="ec-lmvtt-10">pdfborder </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-15-2"
-class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-15-3"
+class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-15-3"
class="td11"> <span
class="ec-lmri-10">0 0 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-15-4"
class="td10">
@@ -2373,7 +2373,7 @@ class="td11"> </td><td style="white-space:normal; text-align:left;" id="
class="td10"></td></tr>
</table></div>
<!--l. 1020--><p class="noindent" >The color of link borders used to be specified <span
-class="ec-lmri-10">only </span>as 3 numbers in the range 0..1, giving an RGB color.
+class="ec-lmri-10">only </span>as 3 numbers in the range 0..1, giving an rgb color.
Since version 6.76a, the usual color specifications of package <span
class="ec-lmss-10">(x)color </span>can be used if <span
class="ec-lmss-10">xcolor </span>has been
@@ -6269,10 +6269,8 @@ class="td10"></td></tr>
<!--l. 2753--><p class="noindent" >
<h4 class="subsectionHead"><span class="titlemark">9.2 </span> <a
id="x1-620009.2"></a>Forms optional parameters</h4>
-<!--l. 2754--><p class="noindent" >Note that all colors must be expressed as RGB triples, in the range 0..1 (i.e.&#x00A0;<span
-class="ec-lmvtt-10">color=0 0</span>
-<span
-class="ec-lmvtt-10">0.5</span>)
+<!--l. 2754--><p class="noindent" >Note that all colors must be expressed as rgb triples, in the range 0..1 (i.e.&#x00A0;<span
+class="ec-lmvtt-10">color=0 0 0.5</span>)
<!--l. 2758--><p class="indent" >
<a
id="x1-62001r15"></a> <!--l. 2759--><div class="longtable"> <table id="TBL-61" class="longtable"
@@ -6345,13 +6343,13 @@ class="td11"> char </td><td style="white-space:nowrap; text-align:left;"
class="td11"> <span
class="ec-lmri-10">S </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-61-9-4"
class="td10"> box border style; S (Solid) is default, B is Beveled,</td>
-
</tr><tr
style="vertical-align:baseline;" id="TBL-61-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-10-1"
class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-10-2"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-10-3"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-61-10-4"
class="td10"> D is Dashed, I is Inset and U is Underline </td>
+
</tr><tr
style="vertical-align:baseline;" id="TBL-61-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-61-11-1"
class="td01"><span
@@ -6740,9 +6738,9 @@ class="ec-lmss-10">hyperref </span>driver has to provide definitions for eight m
<!--l. 2826--><p class="noindent" >2. <span class="obeylines-h"><code class="verb">\hyper@link</code></span>
<!--l. 2828--><p class="noindent" >3. <span class="obeylines-h"><code class="verb">\hyper@linkfile</code></span>
<!--l. 2830--><p class="noindent" >4. <span class="obeylines-h"><code class="verb">\hyper@linkurl</code></span>
-<!--l. 2832--><p class="noindent" >5. <span class="obeylines-h"><code class="verb">\hyper@anchorstart</code></span>
+<!--l. 2832--><p class="noindent" >5. <span class="obeylines-h"><code class="verb">\hyper@anchorstart</code></span>
+<!--l. 2834--><p class="noindent" >6. <span class="obeylines-h"><code class="verb">\hyper@anchorend</code></span>
-<!--l. 2834--><p class="noindent" >6. <span class="obeylines-h"><code class="verb">\hyper@anchorend</code></span>
<!--l. 2836--><p class="noindent" >7. <span class="obeylines-h"><code class="verb">\hyper@linkstart</code></span>
<!--l. 2838--><p class="noindent" >8. <span class="obeylines-h"><code class="verb">\hyper@linkend</code></span>
<!--l. 2841--><p class="indent" > The draft option defines the macros as follows
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf b/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf
index 1637285c01..857da1f3b6 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf
+++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.tex b/macros/latex/contrib/hyperref/doc/hyperref-doc.tex
index 2f4ff93f80..f61f87362d 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref-doc.tex
+++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.tex
@@ -166,7 +166,7 @@
}
\makeatother
\title{Hypertext marks in \hologo{LaTeX}: a manual for \xpackage{hyperref}}
-\date{2024-07-10 v7.01j}
+\date{2024-10-30 v7.01k}
\begin{document}
@@ -598,9 +598,9 @@ changed behaviour if the new pdfmanagement and so the new generic \xpackage{hype
option & remark \\\hline
all driver options, e.g. \texttt{pdftex} & often not needed, as detected automatically\\
implicit \\
-pdfa & no-op with new pdfmanagement, set the standard in \cs{DeclareDocumentMetadata}.\\
+pdfa & no-op with new pdfmanagement, set the standard in \cs{DocumentMetadata}.\\
unicode & is the default now anyway\\
-pdfversion & no-op with new pdfmanagement, set the version in \cs{DeclareDocumentMetadata}.\\
+pdfversion & no-op with new pdfmanagement, set the version in \cs{DocumentMetadata}.\\
bookmarks & this will probably change at some time. \\
backref &\\
pagebackref & \\
@@ -1006,19 +1006,19 @@ CJKbookmarks & boolean & false &
pdfhighlight & name & /I & How link buttons behave when selected; /I is for inverse (the default);
the other possibilities are /N (no effect), /O (outline), and /P (inset
highlighting). \\
-citebordercolor & RGB color & 0 1 0 & The color of the box around citations \\
-filebordercolor & RGB color & 0 .5 .5 & The color of the box around links to files \\
-linkbordercolor & RGB color & 1 0 0 & The color of the box around normal links \\
-menubordercolor & RGB color & 1 0 0 & The color of the box around Acrobat menu links \\
-urlbordercolor & RGB color & 0 1 1 & The color of the box around links to URLs \\
-runbordercolor & RGB color & 0 .7 .7 & Color of border around `run' links \\
+citebordercolor & rgb color & 0 1 0 & The color of the box around citations \\
+filebordercolor & rgb color & 0 .5 .5 & The color of the box around links to files \\
+linkbordercolor & rgb color & 1 0 0 & The color of the box around normal links \\
+menubordercolor & rgb color & 1 0 0 & The color of the box around Acrobat menu links \\
+urlbordercolor & rgb color & 0 1 1 & The color of the box around links to URLs \\
+runbordercolor & rgb color & 0 .7 .7 & Color of border around `run' links \\
allbordercolors & & & Set all border color options \\
pdfborder & & 0 0 1 & The style of box around links; defaults to a box with lines of 1pt thickness,
but the colorlinks option resets it to produce no border.
\end{longtable}
The color of link borders used to be specified \emph{only} as 3
-numbers in the range 0..1, giving an RGB color. Since version 6.76a, the usual
+numbers in the range 0..1, giving an rgb color. Since version 6.76a, the usual
color specifications of package \xpackage{(x)color} can be used if \xpackage{xcolor}
has been loaded.
For further information see description of package \xpackage{hycolor}.
@@ -2751,7 +2751,7 @@ method & name & Used only when generating HTML; values can be \texttt{post} or
\end{longtable}
\subsection{Forms optional parameters}
-Note that all colors must be expressed as RGB triples, in the range 0..1 (i.e.\ \texttt{color=0 0
+Note that all colors must be expressed as rgb triples, in the range 0..1 (i.e.\ \texttt{color=0 0
0.5})
\smallskip
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdf b/macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdf
index 3e29950cf1..fa4c168ca2 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdf
+++ b/macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/hyperref-patches.pdf b/macros/latex/contrib/hyperref/doc/hyperref-patches.pdf
new file mode 100644
index 0000000000..a41b53d3c4
--- /dev/null
+++ b/macros/latex/contrib/hyperref/doc/hyperref-patches.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/hyperref.pdf b/macros/latex/contrib/hyperref/doc/hyperref.pdf
index bb0f2a46aa..5699563a3a 100644
--- a/macros/latex/contrib/hyperref/doc/hyperref.pdf
+++ b/macros/latex/contrib/hyperref/doc/hyperref.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/nameref.pdf b/macros/latex/contrib/hyperref/doc/nameref.pdf
index 4c4ea6606b..301feec274 100644
--- a/macros/latex/contrib/hyperref/doc/nameref.pdf
+++ b/macros/latex/contrib/hyperref/doc/nameref.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/doc/xr-hyper.pdf b/macros/latex/contrib/hyperref/doc/xr-hyper.pdf
index a5d0e690fc..f3d297ae8d 100644
--- a/macros/latex/contrib/hyperref/doc/xr-hyper.pdf
+++ b/macros/latex/contrib/hyperref/doc/xr-hyper.pdf
Binary files differ
diff --git a/macros/latex/contrib/hyperref/hluatex.dtx b/macros/latex/contrib/hyperref/hluatex.dtx
index 20a2f3a4a3..5569871dbf 100644
--- a/macros/latex/contrib/hyperref/hluatex.dtx
+++ b/macros/latex/contrib/hyperref/hluatex.dtx
@@ -1,6 +1,6 @@
% \iffalse
% Source File: hluatex.dtx
-% 2024-07-10 v7.01j
+% 2024-10-30 v7.01k
%
% Copyright
% 2016-2019 Oberdiek Package Support Group
@@ -31,7 +31,7 @@
%
% \begin{macrocode}
%<*luatex>
-%% 2024-07-10 v7.01j
+%% 2024-10-30 v7.01k
%% force unicode encoding, see issue #101
%% code mostly copied from hxetex.def
\HyPsd@LoadUnicode
diff --git a/macros/latex/contrib/hyperref/hyperref-linktarget.dtx b/macros/latex/contrib/hyperref/hyperref-linktarget.dtx
index 874a492736..46b45c2428 100644
--- a/macros/latex/contrib/hyperref/hyperref-linktarget.dtx
+++ b/macros/latex/contrib/hyperref/hyperref-linktarget.dtx
@@ -23,10 +23,9 @@
% for those people who are interested.
%
%<*driver>
-\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
\documentclass[full]{l3doc}
-\usepackage{array,booktabs,hyperxmp}
+\usepackage{array,booktabs}
\hypersetup{pdfauthor=The LaTeX Project,
pdftitle=Make link targets (hyperref bundle)}
\usepackage[skins]{tcolorbox}
@@ -53,7 +52,7 @@
% }^^A
% }
%
-% \date{Version 2024-07-10 v7.01j}
+% \date{Version 2024-10-30 v7.01k}
%
% \maketitle
% \begin{documentation}
@@ -217,7 +216,7 @@
% \texttt{\cs{MakeLinkTarget}*\{destname\}} is roughly equivalent to
% \texttt{\cs{hypertarget}\{destname\}\{\}} but unlike the
% latter it also raises the destination in a PDF, there is no text argument,
-% and---most importantly--it updates \cs{@currentHref}, that means the target
+% and---most importantly---it updates \cs{@currentHref}, that means the target
% name is stored by the next \cs{label}, something that \cs{hypertarget} doesn't do).
% The target name is expanded, see the remarks about prefixes above regarding
% the allowed chars.
@@ -535,7 +534,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_target_counter_doc:nn #1 #2
{
- \bool_lazy_and:nnTF { \cs_if_free_p:c {c@#2} } { \cs_if_free_p:c {theH#2} }
+ \bool_lazy_or:nnTF { \cs_if_free_p:c {c@#2} } { \cs_if_free_p:c {theH#2} }
{
\PackageWarning {hyperref}{Counter~'#2'~or~the~representation~'\string\theH#2`\MessageBreak
don't~exist.~No~target~created.}{}
diff --git a/macros/latex/contrib/hyperref/hyperref-patches.dtx b/macros/latex/contrib/hyperref/hyperref-patches.dtx
index ac4bac4f8c..2fe0e4cda1 100644
--- a/macros/latex/contrib/hyperref/hyperref-patches.dtx
+++ b/macros/latex/contrib/hyperref/hyperref-patches.dtx
@@ -1,5 +1,4 @@
% \iffalse meta-comment
-% \iffalse
%% File: hyperref-patches.dtx
%% Copyright
%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek,
@@ -27,13 +26,9 @@
%% given in the file `manifest.txt'.
%
%<*driver>
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
+\DocumentMetadata{pdfstandard=A-2b}
\documentclass[full]{l3doc}
-\usepackage{array,booktabs,hyperxmp}
+\usepackage{array,booktabs}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=hyperref patches}
\usepackage{caption}
\begin{document}
@@ -55,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 2024-07-10 v7.01j}
+% \date{Version 2024-10-30 v7.01k}
%
% \maketitle
% \begin{documentation}
@@ -79,7 +74,7 @@
% \texttt{nofoiltex}, \texttt{nolisting}, \texttt{nolistings}, \texttt{norevtex}.
%
% \end{documentation}
-
+%
% \begin{implementation}
%
% \section{\pkg{hyperref-patches} documentation}
@@ -141,6 +136,7 @@
}{}
\fi
% \end{macrocode}
+%
% \section{listings}
% --Moved 2021-06-30--
%
diff --git a/macros/latex/contrib/hyperref/hyperref.dtx b/macros/latex/contrib/hyperref/hyperref.dtx
index 80cef9b890..d9e99cda73 100644
--- a/macros/latex/contrib/hyperref/hyperref.dtx
+++ b/macros/latex/contrib/hyperref/hyperref.dtx
@@ -51,7 +51,7 @@
%<puvnenc>\ProvidesFile{puvnenc.def}
%<puarenc>\ProvidesFile{puarenc.def}
%<psdextra>\ProvidesFile{psdextra.def}
-%<!none&!packageEnd> [2024-07-10 v7.01j %
+%<!none&!packageEnd> [2024-10-30 v7.01k %
%<package> Hypertext links for LaTeX]
%<nohyperref> Dummy hyperref (SR)]
%<driver> Hyperref documentation driver file]
@@ -10293,29 +10293,35 @@
\fi
\fi
}
-\Hy@CounterExists{section}{%
- \providecommand\theHequation{\theHsection.\arabic{equation}}%
-}
-\providecommand\theHequation{\arabic{equation}}%
-\Hy@CounterExists{part}{%
- \providecommand\theHpart{\arabic{part}}%
-}
-\@ifundefined{thechapter}{%
- \providecommand\theHsection {\arabic{section}}%
- \providecommand\theHfigure {\arabic{figure}}%
- \providecommand\theHtable {\arabic{table}}%
-}{%
- \providecommand\theHchapter {\arabic{chapter}}%
- \providecommand\theHfigure {\theHchapter.\arabic{figure}}%
- \providecommand\theHtable {\theHchapter.\arabic{table}}%
- \providecommand\theHsection {\theHchapter.\arabic{section}}%
-}
-\providecommand\theHsubsection {\theHsection.\arabic{subsection}}
-\providecommand\theHsubsubsection{\theHsubsection.\arabic{subsubsection}}
-\providecommand\theHparagraph {\theHsubsubsection.\arabic{paragraph}}
-\providecommand\theHsubparagraph {\theHparagraph.\arabic{subparagraph}}
-\providecommand\theHtheorem {\theHsection.\arabic{theorem}}
-\providecommand\theHthm {\theHsection.\arabic{thm}}
+% \end{macrocode}
+% change 2024-10-13: do not define if format is new enough.
+% \begin{macrocode}
+\IfFormatAtLeastTF{2024-11-01}{}
+ {
+ \Hy@CounterExists{section}{%
+ \providecommand\theHequation{\theHsection.\arabic{equation}}%
+ }
+ \providecommand\theHequation{\arabic{equation}}%
+ \Hy@CounterExists{part}{%
+ \providecommand\theHpart{\arabic{part}}%
+ }
+ \@ifundefined{thechapter}{%
+ \providecommand\theHsection {\arabic{section}}%
+ \providecommand\theHfigure {\arabic{figure}}%
+ \providecommand\theHtable {\arabic{table}}%
+ }{%
+ \providecommand\theHchapter {\arabic{chapter}}%
+ \providecommand\theHfigure {\theHchapter.\arabic{figure}}%
+ \providecommand\theHtable {\theHchapter.\arabic{table}}%
+ \providecommand\theHsection {\theHchapter.\arabic{section}}%
+ }
+ \providecommand\theHsubsection {\theHsection.\arabic{subsection}}
+ \providecommand\theHsubsubsection{\theHsubsection.\arabic{subsubsection}}
+ \providecommand\theHparagraph {\theHsubsubsection.\arabic{paragraph}}
+ \providecommand\theHsubparagraph {\theHparagraph.\arabic{subparagraph}}
+ \providecommand\theHtheorem {\theHsection.\arabic{theorem}}
+ \providecommand\theHthm {\theHsection.\arabic{thm}}
+ }
% \end{macrocode}
% Thanks to Greta Meyer (gbd@pop.cwru.edu) for making me realize
% that enumeration starts at 0 for every list! But |\item|
@@ -10324,7 +10330,8 @@
% \begin{macrocode}
\let\H@item\item
\newcounter{Item}
-\def\theHItem{\arabic{Item}}
+\IfFormatAtLeastTF{2024-11-01}{}
+ {\def\theHItem{\arabic{Item}}}
\def\item{%
\@hyper@itemfalse
\if@nmbrlist\@hyper@itemtrue\fi
@@ -10333,15 +10340,15 @@
% \end{macrocode}
%
% \begin{macrocode}
-\providecommand\theHenumi {\theHItem}
-\providecommand\theHenumii {\theHItem}
-\providecommand\theHenumiii {\theHItem}
-\providecommand\theHenumiv {\theHItem}
-\providecommand\theHHfootnote {\arabic{Hfootnote}}
-\providecommand\theHmpfootnote{\arabic{mpfootnote}}
-\@ifundefined{theHHmpfootnote}{%
- \let\theHHmpfootnote\theHHfootnote
-}{}
+\IfFormatAtLeastTF{2024-11-01}{}
+ {
+ \providecommand\theHenumi {\theHItem}
+ \providecommand\theHenumii {\theHItem}
+ \providecommand\theHenumiii {\theHItem}
+ \providecommand\theHenumiv {\theHItem}
+ \providecommand\theHHfootnote {\arabic{Hfootnote}}
+ \providecommand\theHmpfootnote{\arabic{mpfootnote}}
+ }
% \end{macrocode}
% Tanmoy asked for this default handling of undefined |\theH<name>|
% situations. It really isn't clear what would be ideal, whether to
@@ -10349,7 +10356,7 @@
% definition of the counter, or to default it to something like
% |\arabic{name}|. We take the latter course, slightly worriedly.
% \begin{macrocode}
-\let\H@refstepcounter\refstepcounter
+\let\H@refstepcounter\@kernel@refstepcounter
\edef\name@of@eq{equation}%
% \end{macrocode}
% We do not want the handler for |\refstepcounter| to cut in
@@ -10366,11 +10373,13 @@
\@hyper@itemfalse
\@skiphyperreffalse
\ExplSyntaxOn
-\def\refstepcounter#1{%
- \legacy_if:nF {Hy@pdfstring}
- {
- \H@refstepcounter{#1}%
- \bool_lazy_and:nnT
+\IfFormatAtLeastTF{2024-11-01}
+ {
+ \NewSocketPlug{refstepcounter}{hyperref}{\ifHy@pdfstring\else#1\fi}
+ \AssignSocketPlug{refstepcounter}{hyperref}
+ \NewSocketPlug{refstepcounter/target}{hyperref}
+ {
+ \bool_lazy_and:nnT
{ \l__hyp_target_create_bool }
{ ! \legacy_if_p:n{@skiphyperref} }
{
@@ -10381,11 +10390,34 @@
\@hyper@itemfalse
}
{
- \hyper@refstepcounter{#1}%
+ \hyper@refstepcounter{\@currentcounter}%
}
- }
- }
-}
+ }
+ }
+ \AssignSocketPlug{refstepcounter/target}{hyperref}
+ }
+ {
+ \def\refstepcounter#1{%
+ \legacy_if:nF {Hy@pdfstring}
+ {
+ \H@refstepcounter{#1}%
+ \bool_lazy_and:nnT
+ { \l__hyp_target_create_bool }
+ { ! \legacy_if_p:n{@skiphyperref} }
+ {
+ \legacy_if:nTF {@hyper@item}
+ {
+ \stepcounter{Item}%
+ \hyper@refstepcounter{Item}%
+ \@hyper@itemfalse
+ }
+ {
+ \hyper@refstepcounter{#1}%
+ }
+ }
+ }
+ }
+ }
\ExplSyntaxOff
\let\Hy@saved@refstepcounter\refstepcounter
% \end{macrocode}
@@ -11031,7 +11063,19 @@
% \begin{macrocode}
\@ifundefined{hyper@nopatch@footnote}{%
\ifHy@hyperfootnotes
- \newcounter{Hfootnote}%
+ \@ifundefined{theHfootnote}
+ {\newcounter{Hfootnote}}
+ {\let\H@@theHfootnote\theHfootnote
+ \let\theHfootnote\undefined
+ \newcounter{Hfootnote}
+ \let\theHfootnote\H@@theHfootnote
+ }%
+% \end{macrocode}
+% where is this used?
+% \begin{macrocode}
+ \@ifundefined{theHHmpfootnote}{%
+ \let\theHHmpfootnote\theHHfootnote
+ }{}
\let\H@@footnotetext\@footnotetext
\let\H@@footnotemark\@footnotemark
\def\@xfootnotenext[#1]{%
@@ -11383,6 +11427,11 @@
}%
#3%
\fi
+% \end{macrocode}
+% as the anchor are set manually here, we have to update the tagging info.
+% For now we test for the format but this should go again in 2025.
+% \begin{macrocode}
+ \IfFormatAtLeastTF{2024-11-01}{\UseTaggingSocket{recordtarget}}{}%
}%
\fi
\par
@@ -12017,7 +12066,9 @@
% new counters are defined.
% change 2024-02-14: use a csname to handle counter names with commands,
% see issue \#330
+% change 2024-10-13: disable patches in new format 2024-11-01.
% \begin{macrocode}
+\IfFormatAtLeastTF{2024-11-01}{\def\hyper@nopatch@counter{}}{}
\@ifundefined{hyper@nopatch@counter}
{
\let\H@definecounter\@definecounter
diff --git a/macros/latex/contrib/hyperref/xr-hyper.dtx b/macros/latex/contrib/hyperref/xr-hyper.dtx
index f7b39072f5..bfb06783f4 100644
--- a/macros/latex/contrib/hyperref/xr-hyper.dtx
+++ b/macros/latex/contrib/hyperref/xr-hyper.dtx
@@ -26,7 +26,7 @@
%
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{xr-hyper}
-%<package> [2024-07-10 v7.01j eXternal References (DPC)]
+%<package> [2024-10-30 v7.01k eXternal References (DPC)]
%
%<*driver>
\documentclass{l3doc}
diff --git a/macros/latex/contrib/iaria-lite/README b/macros/latex/contrib/iaria-lite/README
index 018e09ba46..9a4afb6b7a 100644
--- a/macros/latex/contrib/iaria-lite/README
+++ b/macros/latex/contrib/iaria-lite/README
@@ -1,17 +1,21 @@
-----------------------------
- Version 0.2 of the iaria-lite class
+ Version 0.5 of the iaria-lite class
Christoph P. Neumann
-----------------------------
-This LaTeX provides a simple environment for
-technical reports as scholary publication.
+This package contains templates for the creation of documents for
+IARIA publications (International Academy, Research, and Industry Association)
+and implements the specifications for the IARIA citation style.
-NEU = Neumann
-TR = Technical Report
+This class does not contain evil low-level TeX magic
+but instead uses many other fancy LaTeX packages
+that we hope you have already installed.
-As this class is created mainly for ourselves it does not
-contain evil low-level TeX magic but instead uses many other
-fancy LaTeX packages that we hope you have already installed.
+It does not implement the specifications for the IARIA citation style,
+for which you have to use the iaria class.
+
+DISCLAIMER: If your are using pdflatex/biblatex/biber,
+it is recommended to use CTAN package iaria.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.dtx b/macros/latex/contrib/iaria-lite/iaria-lite.dtx
index 3bc6f34d28..7ef8036a9e 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.dtx
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.dtx
@@ -1,16 +1,16 @@
%\iffalse
% iaria-lite.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -dir "src"
+% -date "2024-2024"
+% -doc "doc/iaria-lite.tex"
% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
-% -macrocode ".*"
+% -dir "src"
% -setambles ".*=>\nopreamble"
-% -doc "doc/iaria-lite.tex"
-% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|iaria-lite.cls)=>\1"
% -author "Christoph P. Neumann "
-% -date "2024-2024"
+% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|iaria-lite.cls)=>\1"
+% -macrocode ".*"
% iaria-lite
-% Created on 2024/4/10 18:20
+% Created on 2024/10/26 14:47
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{iaria-lite}\\
% An Unofficial IARIA LaTeX Class (Lite Version)}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.5}
%\maketitle
%\PrintChanges
%
@@ -122,14 +122,34 @@
%This package provides the documentclass \texttt{iaria-lite}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with IARIA style settings
+%\item |subcaption| Loads subcaption package with IARIA style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in IARIA submission and arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%Both require dedicated style settings to be compatible with IARIA formatting rules.
+%Thus, the document class provides options to load them for you with correct settings.
%
%\section{Requirements}
%
@@ -144,6 +164,8 @@
%\item hyperref
%\item orcidlink
%\item pbalance
+%\item subcaption
+%\item subfig
%\item times
%\item url
%\item xcolor
@@ -184,28 +206,41 @@ pause% \end{macrocode}
% \end{macrocode}
%\fi
% \begin{macrocode}
-%# Copyright (c) 2023 Christoph P. Neumann,
+%# Copyright (c) 2023-2024 Christoph P. Neumann
-%# DISCLAIMER:
-%# I had to decide whether to hardcode required usage of IEEEtran "conference" option into my class.
-%# I decided against it.
-%# Thus, it is required to use IARIA class like this: \documentclass[conference]{iaria}.
-%# The iaria class passes all class options (like "conference") to IEEEtran.
-%# The reasoning: There might be a future use case (speculatively) to pass IEEEtran options like "a4paper", for IARIA purposes (?)
-%# For now, IARIA requires IEEE "conference" option, only.
+% DISCLAIMER:
+% I had to decide whether to hardcode required usage of IEEEtran "conference"
+% option into my class. I decided against it.
+% Thus, it is required to use IARIA class like this:
+% \documentclass[conference]{iaria}.
+% The iaria class passes all class options (like "conference") to IEEEtran.
+% The reasoning: There might be a future use case (speculatively) to pass
+% IEEEtran options like "a4paper", for IARIA purposes (?)
+% For now, IARIA requires IEEE "conference" option, only.
-% Declare that this document class file requires at least LaTeX version 2e.
\NeedsTeXFormat{LaTeX2e}
-% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{iaria-lite}[2024/04/10 unofficial IARIA-lite conference template v0.2]
+\ProvidesClass{iaria-lite}[2024/10/24 unofficial IARIA-lite conference template v0.5]
% Define marker counter for options (counter are global in latex):
+\newcounter{iaria@subfigtracker}
+\newcounter{iaria@subcaptiontracker}
\newcounter{iaria@pbalancetracker}
\newcounter{iaria@flushendtracker}
% Declare options:
-\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
+
+\DeclareOption{subfig}{
+ \setcounter{iaria@subfigtracker}{1}
+ \typeout{iaria class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{iaria@subcaptiontracker}{1}
+ \typeout{iaria class: subcaption option is set (use subfigure command).}
+}
+
+% IEEE option onecolumn will be ignored
+\DeclareOption{onecolumn}{\OptionNotUsed}
\DeclareOption{pbalance}{
\setcounter{iaria@pbalancetracker}{1}
@@ -217,14 +252,16 @@ pause% \end{macrocode}
}
% We'll pass any document class options along to the underlying class
+% required IEEE options: conference! For IARIA purposes.
\DeclareOption*{%
- \PassOptionsToClass{\CurrentOption}{IEEEtran}% required IEEE options: conference (for IARIA purposes)
+ \PassOptionsToClass{\CurrentOption}{IEEEtran}
}
% Now we'll execute any options passed in
\ProcessOptions\relax
-% Instead of defining each and every little detail required to create a new document class,
+% Instead of defining each and every little detail
+% required to create a new document class,
% you can base your class on an existing document class.
\LoadClass{IEEEtran}
@@ -241,17 +278,19 @@ pause% \end{macrocode}
\makeatletter
% Diferring from IEEE, IARIA requires non-abbreviated references:
\renewcommand{\fnum@figure}{Figure~\thefigure}
-% Diferring from IEEE, IARIA requires 14 point bold Times New Roman for the title
+% Diferring from IEEE, IARIA requires 14 point bold Times for the title
\renewcommand{\title}[1]{\renewcommand{\@title}{\bfseries\Large #1}}
% Diferring from IEEE, IARIA requires "Keywords" instead of "Index Terms":
\renewcommand\IEEEkeywordsname{Keywords}
\makeatother
\RequirePackage{xpatch}
-% Diferring from IEEE, IARIA requires a hyphen after "Keywords" instead of an emdash:
+% Diferring from IEEE, IARIA requires a hyphen
+% after "Keywords" instead of an emdash:
\xpatchcmd\IEEEkeywords{---}{-}{}{}
-% Diferring from IEEE, IARIA requires also the keywords in Italic (and Bold)(and lower case!):
+% Diferring from IEEE, IARIA requires also the keywords in Italic
+% (and Bold)(and lower case!):
\let\oldIEEEkeywords\IEEEkeywords
\def\IEEEkeywords{\oldIEEEkeywords\itshape\ignorespaces}
@@ -260,23 +299,14 @@ pause% \end{macrocode}
% copied from IEEEtran.cls:
\relax\@IEEEauthorblockNstyle% set the default text style
\gdef\@IEEEauthorblockXinterlinespace{0pt}% disable strut for spacer row
- % the \expandafter hides the \cr in conditional tex, see the array.sty docs
- % for details, probably not needed here as the \cr is in a macro
- % do a spacer row if needed
\if@IEEEprevauthorblockincol\expandafter\@IEEEauthorblockNtopspaceline\fi
\global\@IEEEprevauthorblockincoltrue% we now have a block in this column
- %restore the correct strut value
\gdef\@IEEEauthorblockXinterlinespace{\@IEEEauthorblockNinterlinespace}%
- % input the author names
\large
#1%
- % end the row if the user did not already
\crcr}
\makeatother
-% IARIA subfigure captions require this:
-\RequirePackage[caption=false,font=footnotesize]{subfig}
-
% IARIA requires to bring the table caption in the same line of "Table I"
\usepackage{etoolbox}
\makeatletter
@@ -287,6 +317,17 @@ pause% \end{macrocode}
{}
\makeatother
+% IARIA subfigure captions require parentheses and footnotesize:
+\ifnum\value{iaria@subfigtracker}=1
+ \typeout{iaria class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{iaria@subcaptiontracker}=1
+ \typeout{iaria class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
+
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
% Mainstream option: pbalance (see https://ctan.org/pkg/pbalance)
@@ -295,13 +336,15 @@ pause% \end{macrocode}
\typeout{iaria class: load pbalance package.}
\RequirePackage{pbalance}
\fi
-% Flushend => works with arxiv, but major incampatibility with lineno (and, thus, also with mindflow et al.)
+% Flushend => works with arxiv, but major incampatibility with lineno
+% (and, thus, also with mindflow et al.)
\ifnum\value{iaria@flushendtracker}=1
\typeout{iaria class: load flushend package.}
\RequirePackage{flushend}
\fi
-% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
+% Finally, we'll use \endinput to indicate that LaTeX can stop
+% reading this file. LaTeX will ignore anything after this line.
\endinput
% \end{macrocode}
%\iffalse
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.ins b/macros/latex/contrib/iaria-lite/iaria-lite.ins
index 5f61f6cac0..b02f8a7a83 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.ins
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.ins
@@ -1,4 +1,4 @@
-% iaria-lite.ins generated using makedtx version 1.2 2024/4/10 18:20
+% iaria-lite.ins generated using makedtx version 1.2 2024/10/26 14:47
\input docstrip
\preamble
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.pdf b/macros/latex/contrib/iaria-lite/iaria-lite.pdf
index a004deb1be..baa6984151 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.pdf
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib b/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
deleted file mode 100644
index cc7abaec4a..0000000000
--- a/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
+++ /dev/null
@@ -1,625 +0,0 @@
-@Thesis{neumann2004sa,
- author = {Neumann, Christoph P.},
- title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2004,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
-}
-@Thesis{neumann2005da,
- author = {Neumann, Christoph P.},
- title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2005,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
-}
-@INPROCEEDINGS{MeNe04testejb,
- author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
- title = {{TestEJB} -- A Measurement Framework for {EJBs}},
- booktitle = {Proc of the 7th Int'l Symposium on Component\-/Based Software Engineering (CBSE'04) in conjunction with the 26th Int'l Conf on Software Engineering (ICSE'04)},
- _editor = {Ivica Crnkovic},
- month = may,
- year = {2004},
- pages = {294--301},
- address = {Edinburgh, UK},
- publisher = {Springer, Berlin, DE},
- series = {Lecture Notes in Computer Science},
- volume = {3054},
- doi = {10.1007/978-3-540-24774-6_26},
- _url = {https://doi.org/10.1007/978-3-540-24774-6_26},
- _isbn = {978\-/3\-/540\-/24774\-/6},
-}
-
-@INPROCEEDINGS{NHSL09oxdbs,
- author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
- title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {271:1--271:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS271},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
-}
-
-
-@INPROCEEDINGS{NeWL09xdsrig,
- author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
- title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {276:1--276:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS276},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
-}
-
-
-@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
- year = {2009},
- _chapter = {14},
- _pages = {1--4},
- pages = {14:1--14:4},
- address = {Nashville, TN, USA},
- month = jul,
- _isbn = {9781605586656},
- _url = {https://doi.org/10.1145/1619258.1619277},
- doi = {10.1145/1619258.1619277},
- _note = {[An extended version is available as Tech.\ Rep.\ CS\-/2012\-/02 at Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg]}
-}
-
-@INPROCEEDINGS{NeLe09alphaflow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {569--580},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_55},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_55},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-
-}
-
-@INPROCEEDINGS{NeLe09dmps,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {557--568},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_54},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_54},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-}
-
-@INPROCEEDINGS{NeLe10alphaUC,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Use\-/Case of Breast Cancer Treatment -- Modeling Inter\-/Institutional Healthcare Workflows by Active Documents}},
- booktitle = {Proc of the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- _extended_booktitle = {Proc of the 8th Int'l Workshop on Agent\-/based Computing for Enterprise Collaboration (ACEC)
- at the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- year = {2010},
- pages = {12--22},
- address = {Larissa, GR},
- month = jun,
- doi = {10.1109/WETICE.2010.8},
- _url = {https://doi.ieeecomputersociety.org/10.1109/WETICE.2010.8},
- _issn = {1524\-/4547},
-}
-
-@INPROCEEDINGS{NeFL10oxdbs,
- author = {Christoph P. Neumann and Thomas Fischer and Richard Lenz},
- title = {{OXDBS -- Extension of a native XML Database System with Validation by Consistency Checking of OWL\-/DL Ontologies}},
- booktitle = {Proc of the 14th International Database Engineering \& Applications Symposium (IDEAS'10)},
- year = {2010},
- pages = {143--148},
- address = {Montreal, QC, CA},
- month = aug,
- _url = {https://doi.org/10.1145/1866480.1866502},
- doi = {10.1145/1866480.1866502},
- _isbn = {978\-/1\-/60558\-/900\-/8},
-}
-@INPROCEEDINGS{NSWL11alphaadaptive,
- author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
- title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
- booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
- year = {2011},
- pages = {225--236},
- address = {Clermont\-/Ferrand, FR},
- month = aug,
- _isbn = {978\-/3\-/642\-/28115\-/0},
- doi = {10.1007/978-3-642-28115-0_22},
- _url = {https://doi.org/10.1007/978-3-642-28115-0_22}
-}
-
-@TECHREPORT{NeRL12deus,
- author = {Christoph P. Neumann and Florian Rampp and Richard Lenz},
- title = {{DEUS: Distributed Electronic Patient File Update System}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- series = {Technical Reports},
- number = {CS\-/2012\-/02},
- year = {2012},
- month = mar,
- issn = {2191\-/5008},
- doi = {10.13140/RG.2.2.18075.23848},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-32089}
-}
-
-@INPROCEEDINGS{NeWL12offsync,
- title={{Adaptive Version Clocks and the OffSync Protocol (Poster)}},
- author={Christoph P. Neumann and Andreas M. Wahl and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- doi = {10.1109/ISPA.2012.123},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.123},
- issn = {2158\-/9178},
- pages = {835--836},
-}
-
-@INPROCEEDINGS{NeHL12hydra,
- title={{Hydra Version Control System (Poster)}},
- author={Christoph P. Neumann and Scott A. Hady and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- issn = {2158\-/9178},
- pages = {837--838},
- doi = {10.1109/ISPA.2012.124},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.124},
-}
-
-@ARTICLE{NeLe12alphaFlow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Approach to Inter\-/Institutional Process Support in Healthcare}},
- journal = {International Journal of Knowledge\-/Based Organizations (IJKBO)},
- publisher = {IGI Global},
- volume = 2,
- number = 4,
- year = {2012},
- pages = {52--68},
- _url = {http://www.igi-global.com/article/alpha-flow-approach-inter-institutional/72340},
- _urlDOI = {https://doi.org/10.4018/ijkbo.2012100104},
- doi = {10.4018/ijkbo.2012100104}
-}
-
-@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@INPROCEEDINGS{NeLe13adhocCoop,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{Distributed Ad Hoc Cooperation in Healthcare}},
- booktitle = {Post\-/Proceedings of the Joint Int'l Workshops on Process\-/oriented Information Systems in Healthcare and Knowledge Representation for Healthcare (ProHealth'12 / KR4HC'12) in conjunction with the 10th Int'l Conf on Business Process Management (BPM'12)},
- _editor = {Richard Lenz and Silvia Miksch and Mor Peleg and Manfred Reichert and David Riano and Annette ten Teije},
- year = {2013},
- pages = {113--125},
- _address = {Tallinn, EE},
- publisher = {Springer},
- note = {Part of the Lecture Notes in Computer Science book series (LNAI, volume 7738)},
- _isbn = {978\-/3\-/642\-/36437\-/2},
- doi = {10.1007/978-3-642-36438-9_8},
- _url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
- author={Christoph P. Neumann},
- editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
- title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
- booktitle={Ausgezeichnete Informatikdissertationen 2012},
- series={{LNI}},
- volume={{D{-}13}},
- pages={241--250},
- publisher={{GI}},
- year={2012},
- url={https://dl.gi.de/20.500.12116/33740}
-}
-@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
-}
-
-@INPROCEEDINGS{IND+09lzatav,
- author = {Florian Irmert and Christoph P. Neumann and Michael Daum and Niko Pollner and Klaus Meyer\-/Wegener},
- title = {{Technische Grundlagen f{\"u}r eine laufzeitadaptierbare Transaktionsverwaltung}},
- booktitle = {Tagungsband der 13.\,Fachtagung Datenbanksysteme f{\"u}r Business, Technologie und Web (BTW'09)},
- month = mar,
- year = {2009},
- pages = {227--236},
- address = {M{\"u}nster, DE},
- publisher = {Gesellschaft f{\"u}r Informatik e.V.\ (GI), K{\"o}ln, Germany},
- doi = {10.1145/1620432.1620442},
- url = {https://dl.gi.de/20.500.12116/20447},
- _isbn = {978-3-88579-238-3},
- _issn = {1617\-/5468},
-}
-
-@INPROCEEDINGS{ILN+09semrttx,
- author = {Florian Irmert and Frank Lauterwald and Christoph P. Neumann and Michael Daum and Richard Lenz and Klaus Meyer{-}Wegener},
- title = {{Semantics of a Runtime Adaptable Transaction Manager}},
- booktitle = {Proc of the 13th Int'l Database Engineering \& Applications Symposium (IDEAS'09)},
- month = sep,
- year = {2009},
- pages = {88--96},
- address = {Cetraro, IT},
- doi = {10.1145/1620432.1620442},
- _isbn = {9781605584027},
- _url = {https://doi.org/10.1145/1620432.1620442},
-}
-
-@ARTICLE{JBN+10fcmdb,
- author = {Holger von Jouanne{-}Diedrich and Juliane Blechinger and Christoph P. Neumann and Stefan Schwarz and Richard Lenz},
- title = {{Integration verteilter und heterogener Configuration\-/Management\-/Datenbanken}},
- journal = {Informatik\-/Spektrum},
- editor = {Arndt Bode},
- publisher = {Springer},
- issn = {0170\-/6012},
- pages = {351--362},
- volume = {33},
- issue = {4},
- year = {2010},
- doi = {10.1007/s00287-009-0398-6},
- _url = {http://www.springerlink.com/content/e8m40805u21881m2/},
-}
-
-@INPROCEEDINGS{FDI+10esmmog,
- author={Thomas Fischer and Michael Daum and Florian Irmert and Christoph P. Neumann and Richard Lenz},
- title={{Exploitation of Event\-/Semantics for Distributed Publish/Subscribe Systems in Massively Multiuser Virtual Environments}},
- booktitle={Proc of the 14th Int'l Database Engineering \& Applications Symposium (IDEAS'10)},
- year={2010},
- pages = {90--97},
- address = {Montreal, QC, CA},
- month = aug,
- doi = {10.1145/1866480.1866494},
- _isbn = {9781605589008},
- _url = {https://doi.org/10.1145/1866480.1866494},
-}
-
-@TECHREPORT{LNR+11egr,
- author = {Frank Lauterwald and Christoph P. Neumann and Richard Lenz and Anselm G. J{\"u}nemann and Christian Y. Mardin and Klaus Meyer{-}Wegener and Folkert K. Horn},
- title = {{The Erlangen Glaucoma Registry: a Scientific Database for Longitudinal Analysis of Glaucoma}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- type = {Technical Reports},
- number = {CS\-/2011\-/02},
- year = {2011},
- month = dec,
- doi = {10.13140/RG.2.2.31497.01128},
- _issn = {2191\-/5008},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39057}
-}
-
-@INPROCEEDINGS{PANP23seccloudfogai,
- title={{Security Challenges for Cloud or Fog Computing-Based AI Applications}},
- author={Amir Pakmehr and Andreas A{\ss}muth and Christoph P. Neumann and Gerald Pirkl},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19459},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_10_28004},
- _url = {https://doi.org/10.48550/arXiv.2310.19459},
- _issn = {2308-4294},
- pages = {21--29},
-}
-
-@INPROCEEDINGS{LeNe24vocattllm,
- title={{Vocabulary Attack to Hijack Large Language Model Applications}},
- author={Patrick Levi and Christoph P. Neumann},
- booktitle={Proc of the 15th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2024)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Venice, Italy},
- month=apr,
- year={2024},
- doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
- _issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
-}
-
-@INPROCEEDINGS{ToNe11alphaprops,
- author = {Aneliya Todorova and Christoph P. Neumann},
- title = {{alpha-Props: A Rule-Based Approach to `Active Properties' for Document-Oriented Process Support in Inter-Institutional Environments (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 10\,/\,Informatiktage 2011},
- year={2011},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2011/giinformatiktage2011_stud-todorova_neumann.pdf}
-}
-
-@INPROCEEDINGS{WaNe12alphaoffsync,
- author = {Andreas M. Wahl and Christoph P. Neumann},
- title = {{alpha-OffSync: An Offline-Capable Synchronization Approach for Distributed Document-Oriented Process Management in Healthcare (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 11\,/\,Informatiktage 2012},
- year={2012},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2012/giinformatiktage2012_stud-wahl_neumann.pdf}
-}
-
-@INPROCEEDINGS{StNe23foodfresh,
- title={{FoodFresh: Multi-Chain Design for an Inter-Institutional Food Supply Chain Network}},
- author={Philipp Stangl and Christoph P. Neumann},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19461},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_30_28006},
- _url = {https://doi.org/10.48550/arXiv.2310.19461},
- _issn = {2308\-/4294},
- pages = {41--46},
-}
-
-@TECHREPORT{SaNe24othfb,
- author = {Patrick Sabau and Christoph P. Neumann},
- title = {{Analyse von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- type = {Forschungsbericht},
- number = {2024},
- year = {2024},
- month = mar,
- _issn = {2365\-/1997},
- doi = {10.13140/RG.2.2.21052.65924},
- _url1 = {https://www.oth-aw.de/hochschule/mediathek/forschungsbericht/},
- _url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
- _url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
- author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
- title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-06},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.33921.84321},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33921.84321},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense,
- author = {Cameron Barbee and Tim Hoffmann and Christian Piffel and Tobias Schotter and Sebastian Schuscha and Philipp Stangl and Thomas Stangl and Christoph P. Neumann},
- title = {{FireForceDefense: Graphisches Tower\-/Defense\-/Spiel mit Kubernetes\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-05},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.20500.07048},
- _url = {https://dx.doi.org/10.13140/RG.2.2.20500.07048},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner,
- author = {Egidia Cenko and Madina Kamalova and Matthias Sch{\"o}n and Christoph Schuster and Andrei Trukhin and Christoph P. Neumann},
- title = {{MedPlanner: Eine Angular- und Django\-/basierte Webanwendung um ärztliche Termine übersichtlich zu verwalten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-04},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.19409.71528},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19409.71528},
-}
-
-@TECHREPORT{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld,
- author = {Alexander Ziebell and Anja Stricker and Annika Stadelmann and Leo Schurrer and Philip Bartmann and Ronja B{\"a}umel and Ulrich Stark and Christoph P. Neumann},
- title = {{Wo ist mein Geld: Eine MERN\-/basierte Webanwendung für gemeinsame Ausgaben mit Freunden oder Kollegen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-11},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.28888.67847},
- _url = {https://dx.doi.org/10.13140/RG.2.2.28888.67847},
-}
-
-
-
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash,
- author = {Bastian Hahn and Martin Kleber and Andreas Klier and Lukas Kreussel and Felix Paris and Andreas Ziegler and Christoph P. Neumann},
- title = {{Twitter-Dash: React- und .NET\-/basierte Trend- und Sentiment\-/Analysen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-07},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.15466.90564},
- _url = {https://dx.doi.org/10.13140/RG.2.2.15466.90564},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamRot-Reddiment,
- author = {Tobias Bauer and Fabian Beer and Daniel Holl and Ardian Imeraj and Konrad Schweiger and Philipp Stangl and Wolfgang Weigl and Christoph P. Neumann},
- title = {{Reddiment: Eine SvelteKit- und ElasticSearch\-/basierte Reddit Sentiment\-/Analyse}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-06},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.32244.12161},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32244.12161},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy,
- author = {Florian B{\"o}sl and Helge Kohl and Anastasia Chernysheva and Patrice Korinth and Philipp Porsch and Christoph P. Neumann},
- title = {{Explosion Guy: Cloud\-/basiertes Matchmaking für einen graphischen Bombenspaß}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-05},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.18822.34882},
- _url = {https://dx.doi.org/10.13140/RG.2.2.18822.34882},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki,
- author = {Dominik Smrekar and Johannes Horst and Patrick Sabau and Saniye Ogul and Tobias Schotter and Christoph P. Neumann},
- title = {{OTH-Wiki: Ein Angular- und FastAPI\-/basiertes Wiki für Studierende}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-04},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.25533.23526},
- _url = {https://dx.doi.org/10.13140/RG.2.2.25533.23526},
-}
-
-
-@TECHREPORT{ModA-TR-2022WS-SWT-TeamGruen-Graphvio,
- author = {Johannes Halbritter and Helge Kohl and Lukas Kreussel and Stephan Prettner and Andreas Ziegler and Christoph P. Neumann},
- title = {{Graphvio: Eine Graphdatenbank\-/Webanwendung für integrierte Datensätze von Streaminganbietern}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-01},
- year = 2022,
- month = 3,
- doi = {10.13140/RG.2.2.12111.46244},
- _url = {https://dx.doi.org/10.13140/RG.2.2.12111.46244},
-}
-
-@TECHREPORT{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln,
- author = {Paul Brandl and Manuel Kalla and Dominik Panzer and Kevin Paulus and Manuel Pickl and Franziska Rubenbauer and Berkay Yurdaguel and Christoph P. Neumann},
- title = {{Neunerln: Eine MEVN\-/basierte Webanwendung zum kompetitiven Kartenspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-11},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.33933.31209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
-}
-
-
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
- author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
- title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-08},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.23866.98248},
- _url = {https://dx.doi.org/10.13140/RG.2.2.23866.98248},
-}
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense,
- author = {Jakob Götz and Uwe Kölbel and Maximilian Schlosser and Oliver Schmidts and Jan Schuster and Philipp Seufert and Fabian Wagner and Christoph P. Neumann},
- title = {{Nautical Nonsense: Eine Phaser3- und FastAPI\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-07},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.17156.09601},
- _url = {https://dx.doi.org/10.13140/RG.2.2.17156.09601},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics,
- author = {Lukas Feil and Stefan Reger and Timon Spichtinger and Manuel Pickl and Gian Piero Cecchetti and Alexander Hammer and Berkay Yurdagül and Christoph P. Neumann},
- title = {{Torpedo Tactics: Eine MEVN\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-06},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.22608.69120},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22608.69120},
-}
-
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamCyan-Stockbird,
- author = {Rebecca Kietzer and Baran Baygin and Carl Küschall and Jonathan Okorafor and Luca Käsmann and Michael Zimmet and Michael Ippisch and Christoph P. Neumann},
- title = {{Stockbird: Eine React\-/basierte Webanwendung mit serverless Cloud\-/Deployment zur Analyse des Einfluss von Tweets auf Aktienkurs\-/Schwankungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-04},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.32675.02083},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32675.02083},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamBlau-FancyChess,
- author = {Christian Rute and Alex Müller and Alexander Rudolf Wittmann and Arthur Zimmermann and David Nestmeyer and Julian Tischlak and Matthias Wolfinger and Christoph P. Neumann},
- title = {{FancyChess: Eine Next.js\-/basierte Cloud-Anwendung zum Schachspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-03},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.19253.24802},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19253.24802},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamRot-SGDb,
- author = {Anastasia Chernysheva and Jakob G{\"o}tz and Ardian Imeraj and Patrice Korinth and Philipp Stangl and Christoph P. Neumann},
- title = {{SGDb Semantic Video Game Database: Svelte- und Ontotext\-/basierte Webanwendung mit einer Graphen\-/Suche für Videospiele}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-02},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.11272.60160},
- _url = {https://dx.doi.org/10.13140/RG.2.2.11272.60160},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk,
- author = {Johannes Horst and Manuel Zimmermann and Patrick Sabau and Saniye Ogul and Stefan Ries and Tobias Schotter and Christoph P. Neumann},
- title = {{OPCUA-Netzwerk: Angular- und FastAPI\-/basierte Entwicklung eines OPC-UA Sensor\-/Netzwerks für den Heimbereich}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-01},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.22177.79209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
-}
-
diff --git a/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib b/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
deleted file mode 100644
index d4341f790c..0000000000
--- a/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
+++ /dev/null
@@ -1,397 +0,0 @@
-@Thesis{kampf2012bt,
- author = {Kampf, Marvin},
- title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = nov,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_simakamp/BT_simakamp.pdf},
-}
-@Thesis{hunsen2012mt,
- author = {Hunsen, Christian},
- title = {{alpha\-/Doyen: Ein Verfahren zur Wortf{\"u}hrerschaft\-/{\"U}bertragung als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = jul,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/MT_uj32uvac/MT_uj32uvac.pdf},
-}
-@Thesis{schmidt2012bt,
- author = {Schmidt, Alexander},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Behandlung von Fehlern und Ausnahmen in verteilten Systemen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_siaascmi/BT_siaascmi.pdf},
-}
-@Thesis{tsysin2011bt,
- author = {Tsysin, Konstantin},
- title = {{alpha\-/PrintPut: Ein Windows\-/Druckertreiber zum Einbringen von Dokumenten aus beliebigen Drittanwendungen als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sikotsys/BT_sikotsys.pdf},
-}
-@Thesis{wagner2011da,
- author = {Wagner, Florian},
- title = {{alpha\-/Forms: Selbst\-/editierbare Formulare als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflwagn/DA_siflwagn.pdf},
-}
-@Thesis{hady2011da,
- author = {Hady, Scott},
- title = {{alpha\-/VVS: An integrated Version Control System as a Component of Process Support based on Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = nov,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sischady/DA_sischady.pdf},
-}
-@Thesis{wahl2011bt,
- author = {Wahl, Andreas M.},
- title = {{alpha\-/OffSync: Verteilten Datensynchronisation in Form von IMAP\-/basiertem Mail\-/Transfer als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sianwahl/BT_sianwahl.pdf},
-}
-@Thesis{reischl2011bt,
- author = {Reischl, Patrick},
- title = {{alpha\-/Templates: Import und Export von `Process Templates' als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sipareis/BT_sipareis.pdf},
-}
-@Thesis{lempetzeder2011bt,
- author = {Lempetzeder, Benedikt},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Darstellung von Prozesseigenschaften unter Ber{\"u}cksichtigung von Zeit und Daten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sibelemp/BT_sibelemp.pdf},
-}
-@Thesis{engel2011sa,
- author = {Engel, Igor},
- title = {{Konzeption und Implementierung einer verteilten Institutionsverwaltung als anwendungsspezifische Form eines verteilten Metadaten\-/Repository}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jul,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siigenge/SA_siigenge.pdf},
-}
-@Thesis{schwab2011da,
- author = {Schwab, Peter},
- title = {{alpha\-/Adaptive: Ein adaptives Attributmodell als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sipeschw/DA_sipeschw.pdf},
-}
-@Thesis{kreuter2011da,
- author = {Kreuter, André},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Content\-/oriented Workflows'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = may,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siankreu/DA_siankreu.pdf},
-}
-@Thesis{hady2011sa,
- author = {Hady, Scott},
- title = {{Conception and Implementation of Database Persistence for the .getmore Test Case Generator}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = mar,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sischady/SA_sischady.pdf},
- note = {In Kooperation mit der sepp.med GmbH},
-}
-@Thesis{hanisch2010da,
- author = {Hanisch, Stefan},
- title = {{Konzeption und Implementierung einer Infrastruktur f{\"u}r aktive Dokumente}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = oct,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sisnhani/DA_sisnhani.pdf},
-}
-@Thesis{pehlivanov2010bt,
- author = {Pehlivanov, Hristiyan},
- title = {{Design and Implementation of a Participant Tracker for Distributed Active Documents Based on Peer\-/to\-/Peer\-/Based File Sharing Protocols}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sihrpehl/BT_sihrpehl.pdf},
-}
-@Thesis{idler2010bt,
- author = {Idler, Steffen},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Aktive Dokumente'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sistidle/BT_sistidle.pdf},
-}
-@Thesis{todorova2010da,
- author = {Todorova, Anelyia},
- title = {{Design and Implementation of a Lightweight, Autonomous, Rule\-/Based System Which Realizes `Active Properties' in the Context of Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jul,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siantodo/DA_siantodo.pdf},
-}
-@Thesis{schinn2010sa,
- author = {Schinn, Manuela},
- title = {{Entwurf und Realisierung eines Webportals zum Zugriff auf Patientenleitf{\"a}den mit Hilfe von Ercatons}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_schinnma/SA_schinnma.pdf},
- note = {In Kooperation mit der Living Pages Research GmbH},
-}
-@Thesis{hanisch2009sa,
- author = {Hanisch, Stefan},
- title = {{Erweiterung einer nativen XML\-/Datenbank um die Validierung anhand einer Ontologie}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = dec,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sisnhani/SA_sisnhani.pdf},
- note = {In Kooperation mit Regionales Rechenzentrum Erlangen (RRZE)},
-}
-@Thesis{roth2009da,
- author = {Roth, Gernot},
- title = {{Konzeption und Realisierung eines verteilten Master Patient Index}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sigeroth/DA_sigeroth.pdf},
-}
-@Thesis{kreuter2009sa,
- author = {Kreuter, André},
- title = {{Data Warehouse zur Prognose von Studentenzahlen f{\"u}r Vorlesungen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siankreu/SA_siankreu.pdf},
-}
-@Thesis{rampp2009da,
- author = {Rampp, Florian},
- title = {{Design and Implementation of a Distributed Address Database Following a Publish/Subscribe Architecture to Share Patient Data Among Autonomous Healthcare Information Systems}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = mar,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflramp/DA_siflramp.pdf},
-}
-@Thesis{taralov2009da,
- author = {Taralov, Emil},
- title = {{Erweiterung der HL7 Clinical Document Architecture um Prozessstatusinformation}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = feb,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siemtara/DA_siemtara.pdf},
-}
-@Thesis{wagner2009sa,
- author = {Wagner, Florian},
- title = {{Entwurf und Realisierung eines IHE XDS Komponenten\-/Teststands}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflwagn/SA_siflwagn.pdf},
-}
-@Thesis{rampp2008sa,
- author = {Rampp, Florian},
- title = {{Entwurf und Implementierung einer Bahnplanungsmethode f{\"u}r kooperierende Industrieroboter}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2008,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflramp/SA_siflramp.pdf},
- note = {In Kooperation mit dem FAPS Institut als Teil des SFB396},
-}
-
-@Thesis{schotter_tobias_2023mt,
- author = {Schotter, Tobias},
- title = {{Vorhersage von Jobkündigungen anhand von Lohnabrechnungsdaten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = oct,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Schotter_Tobias_Thesis/MT_2023_Schotter_Tobias_Thesis.pdf},
- note = {In Kooperation mit der DATEV},
-}
-@Thesis{sabau_patrick_2023mt,
- author = {Sabau, Patrick},
- title = {{Analyse und Bewertung von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = sep,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Sabau_Patrick_Thesis/MT_2023_Sabau_Patrick_Thesis.pdf},
-}
-@Thesis{barthelmann_erik_2023bt,
- author = {Barthelmann, Erik},
- title = {{Erstellung eines Datenmodells für die Integration unterschiedlicher Datenquellen in einem Werksstandort mittels Anchor Modeling und der Realisierung in SD}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Barthelmann_Erik_Thesis/BT_2023_Barthelmann_Erik_Thesis.pdf},
- note = {In Kooperation mit der SIEMENS AG},
-}
-@Thesis{klier_andreas_2023mt,
- author = {Klier, Andreas},
- title = {{Prediction of Faults in Cables as a Building Block of Predictive Maintenance for Medical Devices}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = jun,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Klier_Andreas_Thesis/MT_2023_Klier_Andreas_Thesis.pdf},
- note = {In Kooperation mit SIEMENS Healthineers},
-}
-@Thesis{rall_adrian_2023bt,
- author = {Rall, Adrian},
- title = {{Conception and Development of a Dependency Update
-Mechanism for the Automatic Distribution of a New
-Software Version in Special Machinery and Industrial
-Engineering}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Rall_Adrian_Thesis/BT_2023_Rall_Adrian_Thesis.pdf},
- note = {In Kooperation mit der BHS Corrugated Maschinen- und Anlagenbau GmbH},
-}
-@Thesis{weiß_tobias_2023bt,
- author = {Weiß, Tobias},
- title = {{Entwurf und Implementierung einer Daten\-/Pipeline zur Aufbereitung von IoT Daten in der Fertigung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Weiß_Tobias_Thesis/BT_2023_Weiß_Tobias_Thesis.pdf},
-}
-@Thesis{antskaitis_arina_2023bt,
- author = {Antskaitis, Arina},
- title = {{Route optimization for Germany\-/wide services in occupational health management}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Antskaitis_Arina_Thesis/BT_2023_Antskaitis_Arina_Thesis.pdf},
- note = {In Kooperation mit der wellabe GmbH},
-}
-@Thesis{veshi_eni_2023bt,
- author = {Veshi, Eni},
- title = {{Extension of a web\-/based time recording system with the capabilities of a progressive web app and integrated video streaming}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Veshi_Eni_Thesis/BT_2023_Veshi_Eni_Thesis.pdf},
- note = {In Kooperation mit Crew Active, einer Marke von Run4Dev},
-}
-@Thesis{stricker_anja_2022bt,
- author = {Stricker, Anja},
- title = {{Entwurf und Implementierung eines konfigurierbaren Alarmsystems f{\"u}r Monitoring\-/Systeme unter Ber{\"u}cksichtigung von Hochsicherheitsbereichen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stricker_Anja_Thesis/BT_2022_Stricker_Anja_Thesis.pdf},
- note = {In Kooperation mit der M{\"u}hlbauer GmbH \& Co.\ KG},
-}
-@Thesis{schuster_christoph_2022bt,
- author = {Schuster, Christoph},
- title = {{Gegen{\"u}berstellung von Ans{\"a}tzen f{\"u}r Progressive Web Apps zum Entwurf von hybriden Benutzeroberfl{\"a}chen am Beispiel einer Reiseziele\-/Anwendung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schuster_Christoph_Thesis/BT_2022_Schuster_Christoph_Thesis.pdf},
-}
-@Thesis{hoffmann_tim_2022bt,
- author = {Hoffmann, Tim},
- title = {{Entwurf und Implementierung einer Progressiven Web App am Beispiel der technischen Transition einer Cloud\-/L{\"o}sung f{\"u}r webbasierte Datenbearbeitung und Reporting}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hoffmann_Tim_Thesis/BT_2022_Hoffmann_Tim_Thesis.pdf},
- note = {In Kooperation mit der INSIGMA IT Engineering GmbH},
-}
-@Thesis{pohl_patrick_2022bt,
- author = {Pohl, Patrick},
- title = {{Evaluation von Cypress f{\"u}r End\-/To\-/End Testing von Vue\-/basierten Webanwendungen am Beispiel eines Content Management Systems}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Pohl_Patrick_Thesis/BT_2022_Pohl_Patrick_Thesis.pdf},
- note = {In Kooperation mit lilaquadrat},
-}
-@Thesis{hahn_albert_2022bt,
- author = {Hahn, Albert},
- title = {{Konzeption und Implementierung einer Microservice Architektur in einem hybriden Kubernetes\-/Cluster f{\"u}r industrielle KI\-/Anwendungsf{\"a}lle}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hahn_Albert_Thesis/BT_2022_Hahn_Albert_Thesis.pdf},
- note = {In Kooperation mit der Krones AG},
-}
-@Thesis{tacli_harun_2022bt,
- author = {Tacli, Harun},
- title = {{Validierung der Echtzeitf{\"a}higkeit von orchestrierten Software\-/Umgebungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Tacli_Harun_Thesis/BT_2022_Tacli_Harun_Thesis.pdf},
- note = {In Kooperation mit der Audi AG},
-}
-@Thesis{stangl_thomas_2022bt,
- author = {Stangl, Thomas},
- title = {{Entwurf und Implementierung einer Webanwendung zur einfachen Fernsteuerung von Digitalmischpulten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Thomas_Thesis/BT_2022_Stangl_Thomas_Thesis.pdf},
-}
-@Thesis{schotter_tobias_2022bt,
- author = {Schotter, Tobias},
- title = {{Evaluation von Qubes OS f{\"u}r den Einsatz in Klein- und Mittelst{\"a}ndischen SW\-/Entwicklungsunternehmen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = feb,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schotter_Tobias_Thesis/BT_2022_Schotter_Tobias_Thesis.pdf},
-}
-@Thesis{stangl_philipp_2022bt,
- author = {Stangl, Philipp},
- title = {{Entwurf und Implementierung eines heterogenen Blockchain\-/Konsortiums f{\"u}r ein Lebensmittel\-/Lieferketten\-/Netzwerk}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = jan,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Philipp_Thesis/BT_2022_Stangl_Philipp_Thesis.pdf},
-}
diff --git a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
index a7d0a9b52f..e4ff13333e 100644
--- a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
+++ b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
index e4a4a45462..7bd0e4de4b 100644
--- a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
+++ b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
@@ -25,7 +25,15 @@
% Diferring from IEEE, IARIA requires
% in bibliography: 6+ authors as first author et al.
% in \citeauthor: any case of et al. with just first author et al.
-\usepackage[style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+\usepackage[defernumbers=true,style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+
+% Due to applied option defernumbers=true:
+% Prevent citations in the references are being numbered as '0' in ArXiv
+% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
+\makeatletter
+\let\blx@rerun@biber\relax
+\makeatother
+
% Diferring fro IEEE, IARIA requires the bibliography in 9 point font
% (Command \bibfont depends on biblatex)
\renewcommand*{\bibfont}{\small}
@@ -68,7 +76,7 @@
% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
\usepackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
-\usepackage{paralist}
+\usepackage[alwaysadjust]{paralist}
\usepackage[caption=false,font=footnotesize]{subfig}
\addbibresource{embedded.bib}
@@ -132,7 +140,8 @@
\hyphenation{block-chain block-chains Ethe-re-um}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\title{The Unofficial \textsmaller{IARIA}-lite \LaTeX{} Class Paper Example (v2024-03)}
+%\title{The Unofficial \textsmaller{IARIA}-lite \LaTeX{} Class Paper Example (v2024-09)}
+\title{The \textsmaller{IARIA}-lite \LaTeX{} Class: Compatible With All \LaTeX{} Distributions,\\but without \textsmaller{IARIA} specifications for citation style}
\author{
\IEEEauthorblockN{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
@@ -152,7 +161,17 @@
\maketitle
\begin{abstract}
- \lipsum[1][3-12]
+This paper demonstrates an example of a paper, based on the \texttt{iaria-lite} \LaTeX{} class.
+The \texttt{iaria-lite} class is compatible with all \LaTeX{} distributions, in contrast to \texttt{iaria} class. To achieve this compatibility, the lite variant dispenses with implementing the \textsmaller{IARIA} specifications for citation style.
+However, this example paper includes the necessary citation style adoptions for a pdflatex/biblatex/biber technology stack in its source code, you need to adopt them for any other \LaTeX{} distributions.
+The example is intended for beginners, e.\,g., undergraduate students.
+It contains a basic outline template and usually fills it with dummy text.
+Graphic exclamation marks highlight important remarks.
+%
+\{\,\faWarning{} For beginners:
+Do NOT remove the abstract, this section is mandatory.
+Do NOT use special characters, symbols, or math in your title or abstract.
+Do NOT use cites in your abstract.\}
\end{abstract}
% A list of IEEE Computer Society appoved keywords can be obtained at
@@ -169,85 +188,25 @@ The \textsmaller{IARIA} formatting rules \cite{iaria2014formattingrules} are ado
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.
-\lipsum[2]
+\lipsum[12]
\{\faWarning{} \textsmaller{IARIA} editorial rules: Introduction must end with a paragraph describing the structure of the paper!\}
The remainder of the paper is organized as follows: In Section~II, …
\section{Related work \textbar{} Methods}
-\lipsum[3]
+\lipsum[13]
\section{Results}
-\lipsum[4]
+\lipsum[14]
\section{Discussion \textbar{} Evalution}
-\lipsum[5]
+\lipsum[15]
\section{Conclusion and Future Work}
\{\faWarning{} \textsmaller{IARIA} editorial rules: Last section must be \textquote{Conclusion and Future Work}!\}
-\lipsum[6]
-
-
-
-%%% Advisor
-\nocite{StNe23foodfresh}
-
-%%% First-Author
-\nocite{NeLe13adhocCoop}
-\nocite{Neumann2012lni}
-\nocite{NeLe12alphaFlow}
-\nocite{NeHL12hydra}
-\nocite{NeWL12offsync}
-\nocite{NSWL11alphaadaptive}
-\nocite{NeFL10oxdbs}
-\nocite{NeLe10alphaUC}
-\nocite{NeLe09alphaflow}
-\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
-\nocite{NeWL09xdsrig} % DE
-\nocite{NRDL09deus}
-
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
-\nocite{Neumann2013dissBook}
-\nocite{Neumann2012dissPreprint}
-\nocite{neumann2005da}
-\nocite{neumann2004sa}
-
-%%% TechRep / Non-Peer-Reviewed
-
-\nocite{SaNe24othfb}
-
-\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
-\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
-\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
-\nocite{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics}
-\nocite{ModA-TR-2023SS-BCN-TeamCyan-Stockbird}
-\nocite{ModA-TR-2023SS-BCN-TeamBlau-FancyChess}
-\nocite{ModA-TR-2023WS-SWT-TeamRot-SGDb}
-\nocite{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk}
-\nocite{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld}
-\nocite{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash}
-\nocite{ModA-TR-2022SS-BDCC-TeamRot-Reddiment}
-\nocite{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy}
-\nocite{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki}
-\nocite{ModA-TR-2022WS-SWT-TeamGruen-Graphvio}
-\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
-\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
-\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
-\nocite{NeRL12deus}
-\nocite{LNR+11egr}
+\lipsum[16]
+
+\{\,\faWarning{} For beginners: you must not leave the bibliography blank. Add appropriate references to your related work.\}
% ======== References =========
\begingroup
diff --git a/macros/latex/contrib/iaria/README b/macros/latex/contrib/iaria/README
index 73edb8b502..280f3613c4 100644
--- a/macros/latex/contrib/iaria/README
+++ b/macros/latex/contrib/iaria/README
@@ -1,17 +1,19 @@
-----------------------------
- Version 0.2 of the iaria class
+ Version 0.5 of the iaria class
Christoph P. Neumann
-----------------------------
-This LaTeX provides a simple environment for
-technical reports as scholary publication.
+This package contains templates for the creation of documents for
+IARIA publications (International Academy, Research, and Industry Association)
+and implements the specifications for the IARIA citation style.
-NEU = Neumann
-TR = Technical Report
+This class does not contain evil low-level TeX magic
+but instead uses many other fancy LaTeX packages
+that we hope you have already installed.
-As this class is created mainly for ourselves it does not
-contain evil low-level TeX magic but instead uses many other
-fancy LaTeX packages that we hope you have already installed.
+DISCLAIMER: This class is neither for XeLaTeX or LuaTeX
+nor for legacy bibtex or natbib. For these have a look
+at CTAN package iaria-lite.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/contrib/iaria/iaria.dtx b/macros/latex/contrib/iaria/iaria.dtx
index bc091c3b83..299a34c894 100644
--- a/macros/latex/contrib/iaria/iaria.dtx
+++ b/macros/latex/contrib/iaria/iaria.dtx
@@ -1,16 +1,16 @@
%\iffalse
% iaria.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -author "Christoph P. Neumann "
% -dir "src"
+% -setambles ".*=>\nopreamble"
% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|iaria.cls)=>\1"
-% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
% -date "2023-2024"
-% -doc "doc/iaria.tex"
% -macrocode ".*"
-% -setambles ".*=>\nopreamble"
+% -author "Christoph P. Neumann "
+% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
+% -doc "doc/iaria.tex"
% iaria
-% Created on 2024/4/10 18:20
+% Created on 2024/10/26 14:47
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{iaria}\\
%An Unofficial IARIA LaTeX Class}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.5}
%\maketitle
%\PrintChanges
%
@@ -104,7 +104,7 @@
%
%\section{Templates}
%
-%For a quick start the \textsf{iaria-lite} distribution contains document
+%For a quick start the \textsf{iaria} distribution contains document
%templates.
%The templates can be found in the \texttt{iaria-example-neumann.zip} file.
%
@@ -114,14 +114,35 @@
%This package provides the documentclass \texttt{iaria}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with IARIA style settings
+%\item |subcaption| Loads subcaption package with IARIA style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in IARIA submission and arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%Both require dedicated style settings to be compatible with IARIA formatting rules.
+%Thus, the document class provides options to load them for you with correct settings.
+%
%\section{Requirements}
%
%We instrument several other \LaTeX\ packages for different purposes,
@@ -138,6 +159,8 @@
%\item inputenc
%\item orcidlink
%\item pbalance
+%\item subcaption
+%\item subfig
%\item times
%\item url
%\item xcolor
@@ -178,7 +201,7 @@ pause% \end{macrocode}
% \end{macrocode}
%\fi
% \begin{macrocode}
-%# Copyright (c) 2023 Christoph P. Neumann,
+%# Copyright (c) 2023-2024 Christoph P. Neumann
% !TeX spellcheck = en-US
% LTeX: language=en-US
@@ -186,34 +209,51 @@ pause% \end{macrocode}
% !TeX program = pdflatex
% !BIB program = biblatex / biber
-%# DISCLAIMER: Only for latex/pdflatex in combination with biblatex using a biber backend.
-%# (And neither for XeLaTeX or LuaTeX nor for bibtex or natbib.)
-%# Because to set the required bibliography configuration, the biblatex package needs to be loaded.
-%# I also need to adjust formatting of ONLINE entries, thus, I have to make some assumptions to rely on.
-%# And inputenc must be loaded before biblatex.
-%# Thus, inputenc, fontenc and biblatex with backend=biber are hard coded part of this template.
-%# I could remove these from the cls and make this part of the example.tex, but then it would be less foolproof in my opinion.
-%# I apologize for this opinionated design decission to anyone who is jeopardised by it.
-%#
-%# I also had to decide whether to hardcode required usage of IEEEtran "conference" option into my class.
-%# I decided against it.
-%# Thus, it is required to use IARIA class like this: \documentclass[conference]{iaria}.
-%# The iaria class passes all class options (like "conference") to IEEEtran.
-%# The reasoning: There might be a future use case (speculatively) to pass IEEEtran options like "a4paper", for IARIA purposes (?)
-%# For now, IARIA requires IEEE "conference" option, only.
-
-% Declare that this document class file requires at least LaTeX version 2e.
+% DISCLAIMER: Only for latex/pdflatex in combination with biblatex using a
+% biber backend. (And neither for XeLaTeX or LuaTeX nor for bibtex or natbib.)
+% Because to set the required bibliography configuration, the biblatex
+% package needs to be loaded.
+% I also need to adjust formatting of ONLINE entries, thus, I have to make
+% some assumptions to rely on. And inputenc must be loaded before biblatex.
+% Thus, inputenc, fontenc and biblatex with backend=biber are hard coded part
+% of this template.
+% I could remove these from the cls and make this part of the example.tex,
+% but then it would be less foolproof in my opinion.
+% I apologize for this opinionated design decission to anyone who is
+% jeopardised by it.
+%
+% I also had to decide whether to hardcode required usage of IEEEtran
+% "conference" option into my class. I decided against it.
+% Thus, it is required to use IARIA class like this:
+% \documentclass[conference]{iaria}.
+% The iaria class passes all class options (like "conference") to IEEEtran.
+% The reasoning: There might be a future use case (speculatively) to pass
+% IEEEtran options like "a4paper", for IARIA purposes (?)
+% For now, IARIA requires IEEE "conference" option, only.
+
\NeedsTeXFormat{LaTeX2e}
-% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{iaria}[2024/04/10 unofficial IARIA conference template v0.2]
+\ProvidesClass{iaria}[2024/10/24 unofficial IARIA conference template v0.5]
% Define marker counter for options (counter are global in latex):
+\newcounter{iaria@subfigtracker}
+\newcounter{iaria@subcaptiontracker}
\newcounter{iaria@pbalancetracker}
\newcounter{iaria@flushendtracker}
% Declare options:
-\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
+
+\DeclareOption{subfig}{
+ \setcounter{iaria@subfigtracker}{1}
+ \typeout{iaria class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{iaria@subcaptiontracker}{1}
+ \typeout{iaria class: subcaption option is set (use subfigure command).}
+}
+
+% IEEE option onecolumn will be ignored
+\DeclareOption{onecolumn}{\OptionNotUsed}
\DeclareOption{pbalance}{
\setcounter{iaria@pbalancetracker}{1}
@@ -225,19 +265,22 @@ pause% \end{macrocode}
}
% We'll pass any document class options along to the underlying class
+% (required IEEE options: conference! For IARIA purposes.)
\DeclareOption*{%
- \PassOptionsToClass{\CurrentOption}{IEEEtran}% required IEEE options: conference (for IARIA purposes)
+ \PassOptionsToClass{\CurrentOption}{IEEEtran}
}
% Now we'll execute any options passed in
\ProcessOptions\relax
-% Instead of defining each and every little detail required to create a new document class,
+% Instead of defining each and every little detail
+% required to create a new document class,
% you can base your class on an existing document class.
\LoadClass{IEEEtran}
% Now paste your code from the preamble here.
-% Replace \usepackage with \RequirePackage. (The syntax for both commands is the same.)
+% Replace \usepackage with \RequirePackage.
+% (The syntax for both commands is the same.)
\RequirePackage{times} % Times New Roman
@@ -245,7 +288,8 @@ pause% \end{macrocode}
\RequirePackage[utf8]{inputenc}
% https://tex.stackexchange.com/questions/664/why-should-i-use-RequirePackaget1fontenc
-% Has to be loaded AFTER any font packages. See https://tex.stackexchange.com/a/2869/9075.
+% Has to be loaded AFTER any font packages.
+% See https://tex.stackexchange.com/a/2869/9075.
\RequirePackage[T1]{fontenc}
\RequirePackage{graphicx}
@@ -259,57 +303,78 @@ pause% \end{macrocode}
% Diferring from IEEE, IARIA requires
% in bibliography: 6+ authors as first author et al.
% in \citeauthor: any case of et al. with just first author et al.
-\RequirePackage[style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+\RequirePackage[
+ defernumbers=true,
+ style=ieee,
+ backend=biber,
+ url=false,
+ hyperref,
+ maxnames=5,
+ minnames=1,
+ maxcitenames=2,
+ mincitenames=1
+]{biblatex}
+
+% Due to applied option defernumbers=true:
+% Prevent citations in the references are being numbered as '0' in ArXiv
+% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
+\makeatletter
+\let\blx@rerun@biber\relax
+\makeatother
+
\renewcommand*{\bibfont}{\small}
-% Diferring from IEEE, IARIA requires, for ONLINE entries, no point but a comma between author and title:
+% Diferring from IEEE, IARIA requires, for ONLINE entries,
+% no point but a comma between author and title:
% For style=ieee
\DeclareBibliographyDriver{online}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor+others/translator+others}
- \setunit{\labelnamepunct}\newblock
- \usebibmacro{title}%
- \newunit
- \printlist{language}%
- \newunit\newblock
- \usebibmacro{byauthor}%
- \newunit\newblock
- \usebibmacro{byeditor+others}%
- \newunit\newblock
- \printfield{version}%
- \newunit
- \printfield{note}%
- \newunit\newblock
- \printlist{organization}
- \newunit\newblock
- \usebibmacro{date}%
- \newunit\newblock
- \iftoggle{bbx:eprint}
- {\usebibmacro{eprint}}
- {}%
- \newunit\newblock
- \usebibmacro{url+urldate}%
- \newunit\newblock
- \usebibmacro{addendum+pubstate}%
- \setunit{\bibpagerefpunct}\newblock
- \usebibmacro{pageref}%
- \usebibmacro{finentry}}
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \usebibmacro{finentry}}
\makeatletter
% Diferring from IEEE, IARIA requires non-abbreviated references:
\renewcommand{\fnum@figure}{Figure~\thefigure}
-% Diferring from IEEE, IARIA requires 14 point bold Times New Roman for the title
+% Diferring from IEEE, IARIA requires 14 point bold Times for the title
\renewcommand{\title}[1]{\renewcommand{\@title}{\bfseries\Large #1}}
% Diferring from IEEE, IARIA requires "Keywords" instead of "Index Terms":
\renewcommand\IEEEkeywordsname{Keywords}
\makeatother
\RequirePackage{xpatch}
-% Diferring from IEEE, IARIA requires a hyphen after "Keywords" instead of an emdash:
+% Diferring from IEEE, IARIA requires a hyphen after "Keywords"
+% instead of an emdash:
\xpatchcmd\IEEEkeywords{---}{-}{}{}
-% Diferring from IEEE, IARIA requires also the keywords in Italic (and Bold)(and lower case!):
+% Diferring from IEEE, IARIA requires also the keywords in Italic
+% (and Bold)(and lower case!):
\let\oldIEEEkeywords\IEEEkeywords
\def\IEEEkeywords{\oldIEEEkeywords\itshape\ignorespaces}
@@ -318,23 +383,14 @@ pause% \end{macrocode}
% copied from IEEEtran.cls:
\relax\@IEEEauthorblockNstyle% set the default text style
\gdef\@IEEEauthorblockXinterlinespace{0pt}% disable strut for spacer row
- % the \expandafter hides the \cr in conditional tex, see the array.sty docs
- % for details, probably not needed here as the \cr is in a macro
- % do a spacer row if needed
\if@IEEEprevauthorblockincol\expandafter\@IEEEauthorblockNtopspaceline\fi
\global\@IEEEprevauthorblockincoltrue% we now have a block in this column
- %restore the correct strut value
\gdef\@IEEEauthorblockXinterlinespace{\@IEEEauthorblockNinterlinespace}%
- % input the author names
\large
#1%
- % end the row if the user did not already
\crcr}
\makeatother
-% IARIA subfigure captions require this:
-\RequirePackage[caption=false,font=footnotesize]{subfig}
-
% IARIA requires to bring the table caption in the same line of "Table I"
\usepackage{etoolbox}
\makeatletter
@@ -345,9 +401,16 @@ pause% \end{macrocode}
{}
\makeatother
-% Allows to hyphenate a word that contains a dash:
-% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
-\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% IARIA subfigure captions require parentheses and footnotesize:
+\ifnum\value{iaria@subfigtracker}=1
+ \typeout{iaria class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{iaria@subcaptiontracker}=1
+ \typeout{iaria class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
@@ -357,13 +420,25 @@ pause% \end{macrocode}
\typeout{iaria class: load pbalance package.}
\RequirePackage{pbalance}
\fi
-% Flushend => works with arxiv, but major incampatibility with lineno (and, thus, also with mindflow et al.)
+% Flushend => works with arxiv, but major incampatibility with lineno
+% (and, thus, also with mindflow et al.)
\ifnum\value{iaria@flushendtracker}=1
\typeout{iaria class: load flushend package.}
\RequirePackage{flushend}
\fi
-% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
+% ========================================================
+% Packages with recommendation to load them last:
+
+% Allows to hyphenate a word that contains a dash:
+% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
+% Use \-/ for a breakable dash that does not prevent the
+% remainer of the word to be hyphenated.
+\RequirePackage[shortcuts]{extdash}
+% ========================================================
+
+% Finally, we'll use \endinput to indicate that LaTeX can stop reading
+% this file. LaTeX will ignore anything after this line.
\endinput
% \end{macrocode}
%\iffalse
diff --git a/macros/latex/contrib/iaria/iaria.ins b/macros/latex/contrib/iaria/iaria.ins
index 846e42400d..900e8f5251 100644
--- a/macros/latex/contrib/iaria/iaria.ins
+++ b/macros/latex/contrib/iaria/iaria.ins
@@ -1,4 +1,4 @@
-% iaria.ins generated using makedtx version 1.2 2024/4/10 18:20
+% iaria.ins generated using makedtx version 1.2 2024/10/26 14:47
\input docstrip
\preamble
diff --git a/macros/latex/contrib/iaria/iaria.pdf b/macros/latex/contrib/iaria/iaria.pdf
index f7665d3d4b..40f4fb1e33 100644
--- a/macros/latex/contrib/iaria/iaria.pdf
+++ b/macros/latex/contrib/iaria/iaria.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria/template/cpn_all_all.bib b/macros/latex/contrib/iaria/template/cpn_all_all.bib
deleted file mode 100644
index cc7abaec4a..0000000000
--- a/macros/latex/contrib/iaria/template/cpn_all_all.bib
+++ /dev/null
@@ -1,625 +0,0 @@
-@Thesis{neumann2004sa,
- author = {Neumann, Christoph P.},
- title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2004,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
-}
-@Thesis{neumann2005da,
- author = {Neumann, Christoph P.},
- title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2005,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
-}
-@INPROCEEDINGS{MeNe04testejb,
- author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
- title = {{TestEJB} -- A Measurement Framework for {EJBs}},
- booktitle = {Proc of the 7th Int'l Symposium on Component\-/Based Software Engineering (CBSE'04) in conjunction with the 26th Int'l Conf on Software Engineering (ICSE'04)},
- _editor = {Ivica Crnkovic},
- month = may,
- year = {2004},
- pages = {294--301},
- address = {Edinburgh, UK},
- publisher = {Springer, Berlin, DE},
- series = {Lecture Notes in Computer Science},
- volume = {3054},
- doi = {10.1007/978-3-540-24774-6_26},
- _url = {https://doi.org/10.1007/978-3-540-24774-6_26},
- _isbn = {978\-/3\-/540\-/24774\-/6},
-}
-
-@INPROCEEDINGS{NHSL09oxdbs,
- author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
- title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {271:1--271:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS271},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
-}
-
-
-@INPROCEEDINGS{NeWL09xdsrig,
- author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
- title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
- booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
- year = {2009},
- _pages = {276:1--276:2},
- address = {Essen, DE},
- month = sep,
- organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
- doi = {10.3205/09GMDS276},
- _url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
-}
-
-
-@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
- year = {2009},
- _chapter = {14},
- _pages = {1--4},
- pages = {14:1--14:4},
- address = {Nashville, TN, USA},
- month = jul,
- _isbn = {9781605586656},
- _url = {https://doi.org/10.1145/1619258.1619277},
- doi = {10.1145/1619258.1619277},
- _note = {[An extended version is available as Tech.\ Rep.\ CS\-/2012\-/02 at Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg]}
-}
-
-@INPROCEEDINGS{NeLe09alphaflow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {569--580},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_55},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_55},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-
-}
-
-@INPROCEEDINGS{NeLe09dmps,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
- booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
- year = {2009},
- pages = {557--568},
- address = {Ulm, DE},
- month = sep,
- doi = {10.1007/978-3-642-12186-9_54},
- _url = {https://doi.org/10.1007/978-3-642-12186-9_54},
- _isbn = {978\-/3\-/642\-/12186\-/9},
-}
-
-@INPROCEEDINGS{NeLe10alphaUC,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Use\-/Case of Breast Cancer Treatment -- Modeling Inter\-/Institutional Healthcare Workflows by Active Documents}},
- booktitle = {Proc of the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- _extended_booktitle = {Proc of the 8th Int'l Workshop on Agent\-/based Computing for Enterprise Collaboration (ACEC)
- at the 19th Int'l Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE 2010)},
- year = {2010},
- pages = {12--22},
- address = {Larissa, GR},
- month = jun,
- doi = {10.1109/WETICE.2010.8},
- _url = {https://doi.ieeecomputersociety.org/10.1109/WETICE.2010.8},
- _issn = {1524\-/4547},
-}
-
-@INPROCEEDINGS{NeFL10oxdbs,
- author = {Christoph P. Neumann and Thomas Fischer and Richard Lenz},
- title = {{OXDBS -- Extension of a native XML Database System with Validation by Consistency Checking of OWL\-/DL Ontologies}},
- booktitle = {Proc of the 14th International Database Engineering \& Applications Symposium (IDEAS'10)},
- year = {2010},
- pages = {143--148},
- address = {Montreal, QC, CA},
- month = aug,
- _url = {https://doi.org/10.1145/1866480.1866502},
- doi = {10.1145/1866480.1866502},
- _isbn = {978\-/1\-/60558\-/900\-/8},
-}
-@INPROCEEDINGS{NSWL11alphaadaptive,
- author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
- title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
- booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
- year = {2011},
- pages = {225--236},
- address = {Clermont\-/Ferrand, FR},
- month = aug,
- _isbn = {978\-/3\-/642\-/28115\-/0},
- doi = {10.1007/978-3-642-28115-0_22},
- _url = {https://doi.org/10.1007/978-3-642-28115-0_22}
-}
-
-@TECHREPORT{NeRL12deus,
- author = {Christoph P. Neumann and Florian Rampp and Richard Lenz},
- title = {{DEUS: Distributed Electronic Patient File Update System}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- series = {Technical Reports},
- number = {CS\-/2012\-/02},
- year = {2012},
- month = mar,
- issn = {2191\-/5008},
- doi = {10.13140/RG.2.2.18075.23848},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-32089}
-}
-
-@INPROCEEDINGS{NeWL12offsync,
- title={{Adaptive Version Clocks and the OffSync Protocol (Poster)}},
- author={Christoph P. Neumann and Andreas M. Wahl and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- doi = {10.1109/ISPA.2012.123},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.123},
- issn = {2158\-/9178},
- pages = {835--836},
-}
-
-@INPROCEEDINGS{NeHL12hydra,
- title={{Hydra Version Control System (Poster)}},
- author={Christoph P. Neumann and Scott A. Hady and Richard Lenz},
- booktitle={Proc of the 10th IEEE Int'l Symposium on Parallel and Distributed Processing with Applications (ISPA{-}12)},
- address = {Madrid, Spain},
- month=jul,
- year={2012},
- issn = {2158\-/9178},
- pages = {837--838},
- doi = {10.1109/ISPA.2012.124},
- _url = {https://doi.ieeecomputersociety.org/10.1109/ISPA.2012.124},
-}
-
-@ARTICLE{NeLe12alphaFlow,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{The alpha\-/Flow Approach to Inter\-/Institutional Process Support in Healthcare}},
- journal = {International Journal of Knowledge\-/Based Organizations (IJKBO)},
- publisher = {IGI Global},
- volume = 2,
- number = 4,
- year = {2012},
- pages = {52--68},
- _url = {http://www.igi-global.com/article/alpha-flow-approach-inter-institutional/72340},
- _urlDOI = {https://doi.org/10.4018/ijkbo.2012100104},
- doi = {10.4018/ijkbo.2012100104}
-}
-
-@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
-}
-
-@INPROCEEDINGS{NeLe13adhocCoop,
- author = {Christoph P. Neumann and Richard Lenz},
- title = {{Distributed Ad Hoc Cooperation in Healthcare}},
- booktitle = {Post\-/Proceedings of the Joint Int'l Workshops on Process\-/oriented Information Systems in Healthcare and Knowledge Representation for Healthcare (ProHealth'12 / KR4HC'12) in conjunction with the 10th Int'l Conf on Business Process Management (BPM'12)},
- _editor = {Richard Lenz and Silvia Miksch and Mor Peleg and Manfred Reichert and David Riano and Annette ten Teije},
- year = {2013},
- pages = {113--125},
- _address = {Tallinn, EE},
- publisher = {Springer},
- note = {Part of the Lecture Notes in Computer Science book series (LNAI, volume 7738)},
- _isbn = {978\-/3\-/642\-/36437\-/2},
- doi = {10.1007/978-3-642-36438-9_8},
- _url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
- author={Christoph P. Neumann},
- editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
- title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
- booktitle={Ausgezeichnete Informatikdissertationen 2012},
- series={{LNI}},
- volume={{D{-}13}},
- pages={241--250},
- publisher={{GI}},
- year={2012},
- url={https://dl.gi.de/20.500.12116/33740}
-}
-@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
-}
-
-@INPROCEEDINGS{IND+09lzatav,
- author = {Florian Irmert and Christoph P. Neumann and Michael Daum and Niko Pollner and Klaus Meyer\-/Wegener},
- title = {{Technische Grundlagen f{\"u}r eine laufzeitadaptierbare Transaktionsverwaltung}},
- booktitle = {Tagungsband der 13.\,Fachtagung Datenbanksysteme f{\"u}r Business, Technologie und Web (BTW'09)},
- month = mar,
- year = {2009},
- pages = {227--236},
- address = {M{\"u}nster, DE},
- publisher = {Gesellschaft f{\"u}r Informatik e.V.\ (GI), K{\"o}ln, Germany},
- doi = {10.1145/1620432.1620442},
- url = {https://dl.gi.de/20.500.12116/20447},
- _isbn = {978-3-88579-238-3},
- _issn = {1617\-/5468},
-}
-
-@INPROCEEDINGS{ILN+09semrttx,
- author = {Florian Irmert and Frank Lauterwald and Christoph P. Neumann and Michael Daum and Richard Lenz and Klaus Meyer{-}Wegener},
- title = {{Semantics of a Runtime Adaptable Transaction Manager}},
- booktitle = {Proc of the 13th Int'l Database Engineering \& Applications Symposium (IDEAS'09)},
- month = sep,
- year = {2009},
- pages = {88--96},
- address = {Cetraro, IT},
- doi = {10.1145/1620432.1620442},
- _isbn = {9781605584027},
- _url = {https://doi.org/10.1145/1620432.1620442},
-}
-
-@ARTICLE{JBN+10fcmdb,
- author = {Holger von Jouanne{-}Diedrich and Juliane Blechinger and Christoph P. Neumann and Stefan Schwarz and Richard Lenz},
- title = {{Integration verteilter und heterogener Configuration\-/Management\-/Datenbanken}},
- journal = {Informatik\-/Spektrum},
- editor = {Arndt Bode},
- publisher = {Springer},
- issn = {0170\-/6012},
- pages = {351--362},
- volume = {33},
- issue = {4},
- year = {2010},
- doi = {10.1007/s00287-009-0398-6},
- _url = {http://www.springerlink.com/content/e8m40805u21881m2/},
-}
-
-@INPROCEEDINGS{FDI+10esmmog,
- author={Thomas Fischer and Michael Daum and Florian Irmert and Christoph P. Neumann and Richard Lenz},
- title={{Exploitation of Event\-/Semantics for Distributed Publish/Subscribe Systems in Massively Multiuser Virtual Environments}},
- booktitle={Proc of the 14th Int'l Database Engineering \& Applications Symposium (IDEAS'10)},
- year={2010},
- pages = {90--97},
- address = {Montreal, QC, CA},
- month = aug,
- doi = {10.1145/1866480.1866494},
- _isbn = {9781605589008},
- _url = {https://doi.org/10.1145/1866480.1866494},
-}
-
-@TECHREPORT{LNR+11egr,
- author = {Frank Lauterwald and Christoph P. Neumann and Richard Lenz and Anselm G. J{\"u}nemann and Christian Y. Mardin and Klaus Meyer{-}Wegener and Folkert K. Horn},
- title = {{The Erlangen Glaucoma Registry: a Scientific Database for Longitudinal Analysis of Glaucoma}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg, Dept.\ of Computer Science},
- type = {Technical Reports},
- number = {CS\-/2011\-/02},
- year = {2011},
- month = dec,
- doi = {10.13140/RG.2.2.31497.01128},
- _issn = {2191\-/5008},
- _url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39057}
-}
-
-@INPROCEEDINGS{PANP23seccloudfogai,
- title={{Security Challenges for Cloud or Fog Computing-Based AI Applications}},
- author={Amir Pakmehr and Andreas A{\ss}muth and Christoph P. Neumann and Gerald Pirkl},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19459},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_10_28004},
- _url = {https://doi.org/10.48550/arXiv.2310.19459},
- _issn = {2308-4294},
- pages = {21--29},
-}
-
-@INPROCEEDINGS{LeNe24vocattllm,
- title={{Vocabulary Attack to Hijack Large Language Model Applications}},
- author={Patrick Levi and Christoph P. Neumann},
- booktitle={Proc of the 15th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2024)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Venice, Italy},
- month=apr,
- year={2024},
- doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
- _issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
-}
-
-@INPROCEEDINGS{ToNe11alphaprops,
- author = {Aneliya Todorova and Christoph P. Neumann},
- title = {{alpha-Props: A Rule-Based Approach to `Active Properties' for Document-Oriented Process Support in Inter-Institutional Environments (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 10\,/\,Informatiktage 2011},
- year={2011},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2011/giinformatiktage2011_stud-todorova_neumann.pdf}
-}
-
-@INPROCEEDINGS{WaNe12alphaoffsync,
- author = {Andreas M. Wahl and Christoph P. Neumann},
- title = {{alpha-OffSync: An Offline-Capable Synchronization Approach for Distributed Document-Oriented Process Management in Healthcare (Poster)}},
- booktitle = {Lecture Notes in Informatics (LNI) Seminars 11\,/\,Informatiktage 2012},
- year={2012},
- month=mar,
- pages={131--134},
- editor={Ludger Porada},
- organization={Gesellschaft f{\"u}r Informatik e.V.\ (GI)},
- isbn={978-3-88579-444-8},
- _url={http://www6.informatik.uni-erlangen.de/publications/public/2012/giinformatiktage2012_stud-wahl_neumann.pdf}
-}
-
-@INPROCEEDINGS{StNe23foodfresh,
- title={{FoodFresh: Multi-Chain Design for an Inter-Institutional Food Supply Chain Network}},
- author={Philipp Stangl and Christoph P. Neumann},
- booktitle={Proc of the 14th International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2023)},
- _organization={International Academy, Research, and Industry Association (IARIA)},
- address = {Nice, France},
- month=jun,
- year={2023},
- doi = {10.48550/arXiv.2310.19461},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2023_2_30_28006},
- _url = {https://doi.org/10.48550/arXiv.2310.19461},
- _issn = {2308\-/4294},
- pages = {41--46},
-}
-
-@TECHREPORT{SaNe24othfb,
- author = {Patrick Sabau and Christoph P. Neumann},
- title = {{Analyse von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- type = {Forschungsbericht},
- number = {2024},
- year = {2024},
- month = mar,
- _issn = {2365\-/1997},
- doi = {10.13140/RG.2.2.21052.65924},
- _url1 = {https://www.oth-aw.de/hochschule/mediathek/forschungsbericht/},
- _url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
- _url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
- author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
- title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-06},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.33921.84321},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33921.84321},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense,
- author = {Cameron Barbee and Tim Hoffmann and Christian Piffel and Tobias Schotter and Sebastian Schuscha and Philipp Stangl and Thomas Stangl and Christoph P. Neumann},
- title = {{FireForceDefense: Graphisches Tower\-/Defense\-/Spiel mit Kubernetes\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-05},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.20500.07048},
- _url = {https://dx.doi.org/10.13140/RG.2.2.20500.07048},
-}
-@TECHREPORT{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner,
- author = {Egidia Cenko and Madina Kamalova and Matthias Sch{\"o}n and Christoph Schuster and Andrei Trukhin and Christoph P. Neumann},
- title = {{MedPlanner: Eine Angular- und Django\-/basierte Webanwendung um ärztliche Termine übersichtlich zu verwalten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2021-04},
- year = 2021,
- month = 7,
- doi = {10.13140/RG.2.2.19409.71528},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19409.71528},
-}
-
-@TECHREPORT{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld,
- author = {Alexander Ziebell and Anja Stricker and Annika Stadelmann and Leo Schurrer and Philip Bartmann and Ronja B{\"a}umel and Ulrich Stark and Christoph P. Neumann},
- title = {{Wo ist mein Geld: Eine MERN\-/basierte Webanwendung für gemeinsame Ausgaben mit Freunden oder Kollegen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-11},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.28888.67847},
- _url = {https://dx.doi.org/10.13140/RG.2.2.28888.67847},
-}
-
-
-
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash,
- author = {Bastian Hahn and Martin Kleber and Andreas Klier and Lukas Kreussel and Felix Paris and Andreas Ziegler and Christoph P. Neumann},
- title = {{Twitter-Dash: React- und .NET\-/basierte Trend- und Sentiment\-/Analysen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-07},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.15466.90564},
- _url = {https://dx.doi.org/10.13140/RG.2.2.15466.90564},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamRot-Reddiment,
- author = {Tobias Bauer and Fabian Beer and Daniel Holl and Ardian Imeraj and Konrad Schweiger and Philipp Stangl and Wolfgang Weigl and Christoph P. Neumann},
- title = {{Reddiment: Eine SvelteKit- und ElasticSearch\-/basierte Reddit Sentiment\-/Analyse}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-06},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.32244.12161},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32244.12161},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy,
- author = {Florian B{\"o}sl and Helge Kohl and Anastasia Chernysheva and Patrice Korinth and Philipp Porsch and Christoph P. Neumann},
- title = {{Explosion Guy: Cloud\-/basiertes Matchmaking für einen graphischen Bombenspaß}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-05},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.18822.34882},
- _url = {https://dx.doi.org/10.13140/RG.2.2.18822.34882},
-}
-@TECHREPORT{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki,
- author = {Dominik Smrekar and Johannes Horst and Patrick Sabau and Saniye Ogul and Tobias Schotter and Christoph P. Neumann},
- title = {{OTH-Wiki: Ein Angular- und FastAPI\-/basiertes Wiki für Studierende}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-04},
- year = 2022,
- month = 7,
- doi = {10.13140/RG.2.2.25533.23526},
- _url = {https://dx.doi.org/10.13140/RG.2.2.25533.23526},
-}
-
-
-@TECHREPORT{ModA-TR-2022WS-SWT-TeamGruen-Graphvio,
- author = {Johannes Halbritter and Helge Kohl and Lukas Kreussel and Stephan Prettner and Andreas Ziegler and Christoph P. Neumann},
- title = {{Graphvio: Eine Graphdatenbank\-/Webanwendung für integrierte Datensätze von Streaminganbietern}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2022-01},
- year = 2022,
- month = 3,
- doi = {10.13140/RG.2.2.12111.46244},
- _url = {https://dx.doi.org/10.13140/RG.2.2.12111.46244},
-}
-
-@TECHREPORT{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln,
- author = {Paul Brandl and Manuel Kalla and Dominik Panzer and Kevin Paulus and Manuel Pickl and Franziska Rubenbauer and Berkay Yurdaguel and Christoph P. Neumann},
- title = {{Neunerln: Eine MEVN\-/basierte Webanwendung zum kompetitiven Kartenspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-11},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.33933.31209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
-}
-
-
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
- author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
- title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-08},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.23866.98248},
- _url = {https://dx.doi.org/10.13140/RG.2.2.23866.98248},
-}
-@TECHREPORT{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense,
- author = {Jakob Götz and Uwe Kölbel and Maximilian Schlosser and Oliver Schmidts and Jan Schuster and Philipp Seufert and Fabian Wagner and Christoph P. Neumann},
- title = {{Nautical Nonsense: Eine Phaser3- und FastAPI\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-07},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.17156.09601},
- _url = {https://dx.doi.org/10.13140/RG.2.2.17156.09601},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics,
- author = {Lukas Feil and Stefan Reger and Timon Spichtinger and Manuel Pickl and Gian Piero Cecchetti and Alexander Hammer and Berkay Yurdagül and Christoph P. Neumann},
- title = {{Torpedo Tactics: Eine MEVN\-/basierte Webanwendung für Schiffe\-/Versenken mit Cloud\-/Deployment}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-06},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.22608.69120},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22608.69120},
-}
-
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamCyan-Stockbird,
- author = {Rebecca Kietzer and Baran Baygin and Carl Küschall and Jonathan Okorafor and Luca Käsmann and Michael Zimmet and Michael Ippisch and Christoph P. Neumann},
- title = {{Stockbird: Eine React\-/basierte Webanwendung mit serverless Cloud\-/Deployment zur Analyse des Einfluss von Tweets auf Aktienkurs\-/Schwankungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-04},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.32675.02083},
- _url = {https://dx.doi.org/10.13140/RG.2.2.32675.02083},
-}
-@TECHREPORT{ModA-TR-2023SS-BCN-TeamBlau-FancyChess,
- author = {Christian Rute and Alex Müller and Alexander Rudolf Wittmann and Arthur Zimmermann and David Nestmeyer and Julian Tischlak and Matthias Wolfinger and Christoph P. Neumann},
- title = {{FancyChess: Eine Next.js\-/basierte Cloud-Anwendung zum Schachspielen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-03},
- year = 2023,
- month = 7,
- doi = {10.13140/RG.2.2.19253.24802},
- _url = {https://dx.doi.org/10.13140/RG.2.2.19253.24802},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamRot-SGDb,
- author = {Anastasia Chernysheva and Jakob G{\"o}tz and Ardian Imeraj and Patrice Korinth and Philipp Stangl and Christoph P. Neumann},
- title = {{SGDb Semantic Video Game Database: Svelte- und Ontotext\-/basierte Webanwendung mit einer Graphen\-/Suche für Videospiele}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-02},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.11272.60160},
- _url = {https://dx.doi.org/10.13140/RG.2.2.11272.60160},
-}
-@TECHREPORT{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk,
- author = {Johannes Horst and Manuel Zimmermann and Patrick Sabau and Saniye Ogul and Stefan Ries and Tobias Schotter and Christoph P. Neumann},
- title = {{OPCUA-Netzwerk: Angular- und FastAPI\-/basierte Entwicklung eines OPC-UA Sensor\-/Netzwerks für den Heimbereich}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
- series = {Technischer Bericht},
- number = {CL-2023-01},
- year = 2023,
- month = 3,
- doi = {10.13140/RG.2.2.22177.79209},
- _url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
-}
-
diff --git a/macros/latex/contrib/iaria/template/cpn_supervised_all.bib b/macros/latex/contrib/iaria/template/cpn_supervised_all.bib
deleted file mode 100644
index d4341f790c..0000000000
--- a/macros/latex/contrib/iaria/template/cpn_supervised_all.bib
+++ /dev/null
@@ -1,397 +0,0 @@
-@Thesis{kampf2012bt,
- author = {Kampf, Marvin},
- title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = nov,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_simakamp/BT_simakamp.pdf},
-}
-@Thesis{hunsen2012mt,
- author = {Hunsen, Christian},
- title = {{alpha\-/Doyen: Ein Verfahren zur Wortf{\"u}hrerschaft\-/{\"U}bertragung als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = jul,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/MT_uj32uvac/MT_uj32uvac.pdf},
-}
-@Thesis{schmidt2012bt,
- author = {Schmidt, Alexander},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Behandlung von Fehlern und Ausnahmen in verteilten Systemen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2012,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_siaascmi/BT_siaascmi.pdf},
-}
-@Thesis{tsysin2011bt,
- author = {Tsysin, Konstantin},
- title = {{alpha\-/PrintPut: Ein Windows\-/Druckertreiber zum Einbringen von Dokumenten aus beliebigen Drittanwendungen als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sikotsys/BT_sikotsys.pdf},
-}
-@Thesis{wagner2011da,
- author = {Wagner, Florian},
- title = {{alpha\-/Forms: Selbst\-/editierbare Formulare als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = dec,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflwagn/DA_siflwagn.pdf},
-}
-@Thesis{hady2011da,
- author = {Hady, Scott},
- title = {{alpha\-/VVS: An integrated Version Control System as a Component of Process Support based on Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = nov,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sischady/DA_sischady.pdf},
-}
-@Thesis{wahl2011bt,
- author = {Wahl, Andreas M.},
- title = {{alpha\-/OffSync: Verteilten Datensynchronisation in Form von IMAP\-/basiertem Mail\-/Transfer als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sianwahl/BT_sianwahl.pdf},
-}
-@Thesis{reischl2011bt,
- author = {Reischl, Patrick},
- title = {{alpha\-/Templates: Import und Export von `Process Templates' als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = oct,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sipareis/BT_sipareis.pdf},
-}
-@Thesis{lempetzeder2011bt,
- author = {Lempetzeder, Benedikt},
- title = {{Gegen{\"u}berstellung verschiedener Paradigmen zur Darstellung von Prozesseigenschaften unter Ber{\"u}cksichtigung von Zeit und Daten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sibelemp/BT_sibelemp.pdf},
-}
-@Thesis{engel2011sa,
- author = {Engel, Igor},
- title = {{Konzeption und Implementierung einer verteilten Institutionsverwaltung als anwendungsspezifische Form eines verteilten Metadaten\-/Repository}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jul,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siigenge/SA_siigenge.pdf},
-}
-@Thesis{schwab2011da,
- author = {Schwab, Peter},
- title = {{alpha\-/Adaptive: Ein adaptives Attributmodell als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sipeschw/DA_sipeschw.pdf},
-}
-@Thesis{kreuter2011da,
- author = {Kreuter, André},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Content\-/oriented Workflows'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = may,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siankreu/DA_siankreu.pdf},
-}
-@Thesis{hady2011sa,
- author = {Hady, Scott},
- title = {{Conception and Implementation of Database Persistence for the .getmore Test Case Generator}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2011,
- month = mar,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sischady/SA_sischady.pdf},
- note = {In Kooperation mit der sepp.med GmbH},
-}
-@Thesis{hanisch2010da,
- author = {Hanisch, Stefan},
- title = {{Konzeption und Implementierung einer Infrastruktur f{\"u}r aktive Dokumente}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = oct,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sisnhani/DA_sisnhani.pdf},
-}
-@Thesis{pehlivanov2010bt,
- author = {Pehlivanov, Hristiyan},
- title = {{Design and Implementation of a Participant Tracker for Distributed Active Documents Based on Peer\-/to\-/Peer\-/Based File Sharing Protocols}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sihrpehl/BT_sihrpehl.pdf},
-}
-@Thesis{idler2010bt,
- author = {Idler, Steffen},
- title = {{Recherche und vergleichende Evaluation von verf{\"u}gbaren Ans{\"a}tzen f{\"u}r `Aktive Dokumente'}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = sep,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/BT_sistidle/BT_sistidle.pdf},
-}
-@Thesis{todorova2010da,
- author = {Todorova, Anelyia},
- title = {{Design and Implementation of a Lightweight, Autonomous, Rule\-/Based System Which Realizes `Active Properties' in the Context of Active Documents}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jul,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siantodo/DA_siantodo.pdf},
-}
-@Thesis{schinn2010sa,
- author = {Schinn, Manuela},
- title = {{Entwurf und Realisierung eines Webportals zum Zugriff auf Patientenleitf{\"a}den mit Hilfe von Ercatons}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2010,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_schinnma/SA_schinnma.pdf},
- note = {In Kooperation mit der Living Pages Research GmbH},
-}
-@Thesis{hanisch2009sa,
- author = {Hanisch, Stefan},
- title = {{Erweiterung einer nativen XML\-/Datenbank um die Validierung anhand einer Ontologie}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = dec,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_sisnhani/SA_sisnhani.pdf},
- note = {In Kooperation mit Regionales Rechenzentrum Erlangen (RRZE)},
-}
-@Thesis{roth2009da,
- author = {Roth, Gernot},
- title = {{Konzeption und Realisierung eines verteilten Master Patient Index}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_sigeroth/DA_sigeroth.pdf},
-}
-@Thesis{kreuter2009sa,
- author = {Kreuter, André},
- title = {{Data Warehouse zur Prognose von Studentenzahlen f{\"u}r Vorlesungen}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jun,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siankreu/SA_siankreu.pdf},
-}
-@Thesis{rampp2009da,
- author = {Rampp, Florian},
- title = {{Design and Implementation of a Distributed Address Database Following a Publish/Subscribe Architecture to Share Patient Data Among Autonomous Healthcare Information Systems}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = mar,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siflramp/DA_siflramp.pdf},
-}
-@Thesis{taralov2009da,
- author = {Taralov, Emil},
- title = {{Erweiterung der HL7 Clinical Document Architecture um Prozessstatusinformation}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = feb,
- type = {Diplomarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/DA_siemtara/DA_siemtara.pdf},
-}
-@Thesis{wagner2009sa,
- author = {Wagner, Florian},
- title = {{Entwurf und Realisierung eines IHE XDS Komponenten\-/Teststands}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2009,
- month = jan,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflwagn/SA_siflwagn.pdf},
-}
-@Thesis{rampp2008sa,
- author = {Rampp, Florian},
- title = {{Entwurf und Implementierung einer Bahnplanungsmethode f{\"u}r kooperierende Industrieroboter}},
- institution = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- year = 2008,
- month = feb,
- type = {Studienarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/FAU/SA_siflramp/SA_siflramp.pdf},
- note = {In Kooperation mit dem FAPS Institut als Teil des SFB396},
-}
-
-@Thesis{schotter_tobias_2023mt,
- author = {Schotter, Tobias},
- title = {{Vorhersage von Jobkündigungen anhand von Lohnabrechnungsdaten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = oct,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Schotter_Tobias_Thesis/MT_2023_Schotter_Tobias_Thesis.pdf},
- note = {In Kooperation mit der DATEV},
-}
-@Thesis{sabau_patrick_2023mt,
- author = {Sabau, Patrick},
- title = {{Analyse und Bewertung von Methoden zur Sicherung der Vertraulichkeit in Neuronalen Netzen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = sep,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Sabau_Patrick_Thesis/MT_2023_Sabau_Patrick_Thesis.pdf},
-}
-@Thesis{barthelmann_erik_2023bt,
- author = {Barthelmann, Erik},
- title = {{Erstellung eines Datenmodells für die Integration unterschiedlicher Datenquellen in einem Werksstandort mittels Anchor Modeling und der Realisierung in SD}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Barthelmann_Erik_Thesis/BT_2023_Barthelmann_Erik_Thesis.pdf},
- note = {In Kooperation mit der SIEMENS AG},
-}
-@Thesis{klier_andreas_2023mt,
- author = {Klier, Andreas},
- title = {{Prediction of Faults in Cables as a Building Block of Predictive Maintenance for Medical Devices}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = jun,
- type = {Masterarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/MT_2023_Klier_Andreas_Thesis/MT_2023_Klier_Andreas_Thesis.pdf},
- note = {In Kooperation mit SIEMENS Healthineers},
-}
-@Thesis{rall_adrian_2023bt,
- author = {Rall, Adrian},
- title = {{Conception and Development of a Dependency Update
-Mechanism for the Automatic Distribution of a New
-Software Version in Special Machinery and Industrial
-Engineering}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Rall_Adrian_Thesis/BT_2023_Rall_Adrian_Thesis.pdf},
- note = {In Kooperation mit der BHS Corrugated Maschinen- und Anlagenbau GmbH},
-}
-@Thesis{weiß_tobias_2023bt,
- author = {Weiß, Tobias},
- title = {{Entwurf und Implementierung einer Daten\-/Pipeline zur Aufbereitung von IoT Daten in der Fertigung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Weiß_Tobias_Thesis/BT_2023_Weiß_Tobias_Thesis.pdf},
-}
-@Thesis{antskaitis_arina_2023bt,
- author = {Antskaitis, Arina},
- title = {{Route optimization for Germany\-/wide services in occupational health management}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Antskaitis_Arina_Thesis/BT_2023_Antskaitis_Arina_Thesis.pdf},
- note = {In Kooperation mit der wellabe GmbH},
-}
-@Thesis{veshi_eni_2023bt,
- author = {Veshi, Eni},
- title = {{Extension of a web\-/based time recording system with the capabilities of a progressive web app and integrated video streaming}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2023,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2023_Veshi_Eni_Thesis/BT_2023_Veshi_Eni_Thesis.pdf},
- note = {In Kooperation mit Crew Active, einer Marke von Run4Dev},
-}
-@Thesis{stricker_anja_2022bt,
- author = {Stricker, Anja},
- title = {{Entwurf und Implementierung eines konfigurierbaren Alarmsystems f{\"u}r Monitoring\-/Systeme unter Ber{\"u}cksichtigung von Hochsicherheitsbereichen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = dec,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stricker_Anja_Thesis/BT_2022_Stricker_Anja_Thesis.pdf},
- note = {In Kooperation mit der M{\"u}hlbauer GmbH \& Co.\ KG},
-}
-@Thesis{schuster_christoph_2022bt,
- author = {Schuster, Christoph},
- title = {{Gegen{\"u}berstellung von Ans{\"a}tzen f{\"u}r Progressive Web Apps zum Entwurf von hybriden Benutzeroberfl{\"a}chen am Beispiel einer Reiseziele\-/Anwendung}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = aug,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schuster_Christoph_Thesis/BT_2022_Schuster_Christoph_Thesis.pdf},
-}
-@Thesis{hoffmann_tim_2022bt,
- author = {Hoffmann, Tim},
- title = {{Entwurf und Implementierung einer Progressiven Web App am Beispiel der technischen Transition einer Cloud\-/L{\"o}sung f{\"u}r webbasierte Datenbearbeitung und Reporting}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hoffmann_Tim_Thesis/BT_2022_Hoffmann_Tim_Thesis.pdf},
- note = {In Kooperation mit der INSIGMA IT Engineering GmbH},
-}
-@Thesis{pohl_patrick_2022bt,
- author = {Pohl, Patrick},
- title = {{Evaluation von Cypress f{\"u}r End\-/To\-/End Testing von Vue\-/basierten Webanwendungen am Beispiel eines Content Management Systems}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = apr,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Pohl_Patrick_Thesis/BT_2022_Pohl_Patrick_Thesis.pdf},
- note = {In Kooperation mit lilaquadrat},
-}
-@Thesis{hahn_albert_2022bt,
- author = {Hahn, Albert},
- title = {{Konzeption und Implementierung einer Microservice Architektur in einem hybriden Kubernetes\-/Cluster f{\"u}r industrielle KI\-/Anwendungsf{\"a}lle}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Hahn_Albert_Thesis/BT_2022_Hahn_Albert_Thesis.pdf},
- note = {In Kooperation mit der Krones AG},
-}
-@Thesis{tacli_harun_2022bt,
- author = {Tacli, Harun},
- title = {{Validierung der Echtzeitf{\"a}higkeit von orchestrierten Software\-/Umgebungen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Tacli_Harun_Thesis/BT_2022_Tacli_Harun_Thesis.pdf},
- note = {In Kooperation mit der Audi AG},
-}
-@Thesis{stangl_thomas_2022bt,
- author = {Stangl, Thomas},
- title = {{Entwurf und Implementierung einer Webanwendung zur einfachen Fernsteuerung von Digitalmischpulten}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = mar,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Thomas_Thesis/BT_2022_Stangl_Thomas_Thesis.pdf},
-}
-@Thesis{schotter_tobias_2022bt,
- author = {Schotter, Tobias},
- title = {{Evaluation von Qubes OS f{\"u}r den Einsatz in Klein- und Mittelst{\"a}ndischen SW\-/Entwicklungsunternehmen}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = feb,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Schotter_Tobias_Thesis/BT_2022_Schotter_Tobias_Thesis.pdf},
-}
-@Thesis{stangl_philipp_2022bt,
- author = {Stangl, Philipp},
- title = {{Entwurf und Implementierung eines heterogenen Blockchain\-/Konsortiums f{\"u}r ein Lebensmittel\-/Lieferketten\-/Netzwerk}},
- institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden},
- year = 2022,
- month = jan,
- type = {Bachelorarbeit},
- _url = {https://www.cyberlytics.eu/theses/all/OTH-AW/BT_2022_Stangl_Philipp_Thesis/BT_2022_Stangl_Philipp_Thesis.pdf},
-}
diff --git a/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf b/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
index 7c5d190398..3b4c4cd5bd 100644
--- a/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
+++ b/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria/template/iaria-example-neumann.tex b/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
index eda28b0f0c..2c46e89090 100644
--- a/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
+++ b/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
@@ -17,7 +17,7 @@
% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
\usepackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
-\usepackage{paralist}
+\usepackage[alwaysadjust]{paralist}
\usepackage[caption=false,font=footnotesize]{subfig}
% Class iaria.cls loads biblatex / biber with predefined options
@@ -83,7 +83,7 @@ final % Always enable microtype, even if in draft mode. This helps finding bad b
\hyphenation{block-chain block-chains Ethe-re-um}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\title{The Unofficial \textsmaller{IARIA} \LaTeX{} Class Paper Example (v2024-03)}
+\title{The \textsmaller{IARIA} \LaTeX{} Class Paper Example}
\author{
\IEEEauthorblockN{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
@@ -103,7 +103,15 @@ final % Always enable microtype, even if in draft mode. This helps finding bad b
\maketitle
\begin{abstract}
- \lipsum[1][3-12]
+This paper demonstrates an example of a paper, based on the \texttt{iaria} \LaTeX{} class.
+The example is intended for beginners, e.\,g., undergraduate students.
+It contains a basic outline template and usually fills it with dummy text.
+Graphic exclamation marks highlight important remarks.
+%
+\{\,\faWarning{} For beginners:
+Do NOT remove the abstract, this section is mandatory.
+Do NOT use special characters, symbols, or math in your title or abstract.
+Do NOT use cites in your abstract.\}
\end{abstract}
% A list of IEEE Computer Society appoved keywords can be obtained at
@@ -121,85 +129,25 @@ The \textsmaller{IARIA} formatting rules \cite{iaria2014formattingrules} are ado
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.
-\lipsum[2]
+\lipsum[22]
\{\faWarning{} \textsmaller{IARIA} editorial rules: Introduction must end with a paragraph describing the structure of the paper!\}
The remainder of the paper is organized as follows: In Section~II, …
\section{Related work \textbar{} Methods}
-\lipsum[3]
+\lipsum[23]
\section{Results}
-\lipsum[4]
+\lipsum[24]
\section{Discussion \textbar{} Evalution}
-\lipsum[5]
+\lipsum[25]
\section{Conclusion and Future Work}
\{\faWarning{} \textsmaller{IARIA} editorial rules: Last section must be \textquote{Conclusion and Future Work}!\}
-\lipsum[6]
-
-
-
-%%% Advisor
-\nocite{StNe23foodfresh}
-
-%%% First-Author
-\nocite{NeLe13adhocCoop}
-\nocite{Neumann2012lni}
-\nocite{NeLe12alphaFlow}
-\nocite{NeHL12hydra}
-\nocite{NeWL12offsync}
-\nocite{NSWL11alphaadaptive}
-\nocite{NeFL10oxdbs}
-\nocite{NeLe10alphaUC}
-\nocite{NeLe09alphaflow}
-\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
-\nocite{NeWL09xdsrig} % DE
-\nocite{NRDL09deus}
-
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
-\nocite{Neumann2013dissBook}
-\nocite{Neumann2012dissPreprint}
-\nocite{neumann2005da}
-\nocite{neumann2004sa}
-
-%%% TechRep / Non-Peer-Reviewed
-
-\nocite{SaNe24othfb}
-
-\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
-\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
-\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
-\nocite{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics}
-\nocite{ModA-TR-2023SS-BCN-TeamCyan-Stockbird}
-\nocite{ModA-TR-2023SS-BCN-TeamBlau-FancyChess}
-\nocite{ModA-TR-2023WS-SWT-TeamRot-SGDb}
-\nocite{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk}
-\nocite{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld}
-\nocite{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash}
-\nocite{ModA-TR-2022SS-BDCC-TeamRot-Reddiment}
-\nocite{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy}
-\nocite{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki}
-\nocite{ModA-TR-2022WS-SWT-TeamGruen-Graphvio}
-\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
-\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
-\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
-\nocite{NeRL12deus}
-\nocite{LNR+11egr}
+\lipsum[26]
+
+\{\,\faWarning{} For beginners: you must not leave the bibliography blank. Add appropriate references to your related work.\}
% ======== References =========
\begingroup
diff --git a/macros/latex/contrib/interlinear/DEPENDS.txt b/macros/latex/contrib/interlinear/DEPENDS.txt
new file mode 100644
index 0000000000..e06d77ce7c
--- /dev/null
+++ b/macros/latex/contrib/interlinear/DEPENDS.txt
@@ -0,0 +1,6 @@
+hard marginnote # for marginnotes
+hard xifthen
+hard xkeyval # For key=val options
+hard xparse
+hard etoolbox
+hard enumitem
diff --git a/macros/latex/contrib/interlinear/LICENSE.txt b/macros/latex/contrib/interlinear/LICENSE.txt
new file mode 100644
index 0000000000..842cf85e3c
--- /dev/null
+++ b/macros/latex/contrib/interlinear/LICENSE.txt
@@ -0,0 +1,415 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2008 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % https://www.latex-project.org/lppl.txt
+ % and version 1.3c or later is part of all distributions of LaTeX
+ % version 2008 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
diff --git a/macros/latex/contrib/interlinear/README.md b/macros/latex/contrib/interlinear/README.md
new file mode 100644
index 0000000000..1a13cca806
--- /dev/null
+++ b/macros/latex/contrib/interlinear/README.md
@@ -0,0 +1,89 @@
+# Interlinear
+
+## Overview
+
+**Interlinear** is a LaTeX package designed to facilitate the typesetting of interlinear glossed text, commonly used in linguistic examples. This package provides customizable formatting for interlinear text, allows for the specification of multiple lines with different formatting, and includes options for managing the presentation of context and language information.
+
+The package also supports predefined styles for common use cases, such as glossing text in italics or setting up non-interlinear modes, making it versatile for a variety of linguistic documentation needs.
+
+## Installation
+
+To install this package, follow these steps:
+
+1. **Manual Installation:**
+ - Download the package files.
+ - Place the `interlinear.sty` file in your LaTeX working directory or a directory that is part of your LaTeX path.
+
+2. **Required Packages:**
+ - marginnote : for marginnotes
+ - xifthen
+ - xkeyval : For key=val options
+ - xparse
+ - etoolbox
+ - enumitem
+
+3. **Using a LaTeX Distribution:**
+ - If the package is included in a LaTeX distribution like TeX Live or MikTeX, you can install it using the distribution's package manager.
+ - Example (for TeX Live users on Linux):
+ ```bash
+ sudo tlmgr install interlinear
+ ```
+ - Example (for MikTeX users on Windows):
+ ```bash
+ miktex-console
+ ```
+
+## Usage
+
+After installation, you can use **Interlinear** in your LaTeX documents by adding the following line in the preamble of your document:
+
+```latex
+\usepackage{interlinear}
+```
+
+## Basic Example
+
+Here’s a basic usage example:
+
+```latex
+\documentclass{article}
+\usepackage{interlinear}
+
+\begin{document}
+
+\begin{interlinear}[linesnumber=3,linefourformat=\itshape]
+% Interlinear content here
+\end{interlinear}
+
+\end{document}
+```
+
+## License
+
+This work (this version and later ones) may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), version 1.3c or later.
+
+The latest version of this license is available at: [LaTeX Project Public License](https://www.latex-project.org/lppl/)
+
+This package is maintained (as per LPPL maintenance status) by **Kouamé Josué Akpoué**.
+
+## Contributing
+
+If you would like to contribute to the development of this package, you can do so by:
+
+- Reporting bugs or suggesting features via the issue tracker.
+- Submitting pull requests with improvements or bug fixes.
+
+## Contact Information
+
+For any inquiries or support requests, please contact:
+
+**Kouamé Josué Akpoué**
+**Email:** [josueakpoue@gmail.com](mailto: josueakpoue@gmail.com)
+**GitHub:** [https://github.com/dbjoshua](https://github.com/dbjoshua)
+
+## Changelog
+
+### Version 1.0.0 (2024-08-22)
+
+- Initial release.
+- Key features include customizable formatting for interlinear text, predefined styles, and margin note customization.
diff --git a/macros/latex/contrib/interlinear/VERSION_1_0 b/macros/latex/contrib/interlinear/VERSION_1_0
new file mode 100644
index 0000000000..f27673edf3
--- /dev/null
+++ b/macros/latex/contrib/interlinear/VERSION_1_0
@@ -0,0 +1,3 @@
+version 1.0
+- initial release
+- main functionalities: interlinear environnement supporting SIL Field's Linguists Toolbox's markers; supporting optional customization and defined styles. Also supports four-lines interlinear gloss texts.
diff --git a/macros/latex/contrib/interlinear/interlinear-doc.pdf b/macros/latex/contrib/interlinear/interlinear-doc.pdf
new file mode 100644
index 0000000000..ab72182639
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/interlinear/interlinear-doc.tex b/macros/latex/contrib/interlinear/interlinear-doc.tex
new file mode 100644
index 0000000000..f16f120754
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear-doc.tex
@@ -0,0 +1,215 @@
+\documentclass{article}
+%\usepackage{interlinear}
+\usepackage{xparse}
+\usepackage{verbatim}
+
+% Commande pour afficher du code (sans les délimiteurs `d```)
+\NewDocumentCommand{\code}{m}{\texttt{#1}}
+\def\interlinearstyle{$\backslash$interlinearstyle}
+
+% Commande pour du texte en gras
+\NewDocumentCommand{\bftext}{m}{\textbf{#1}}
+
+% Commande pour liste avec itemize
+\NewDocumentCommand{\itm}{m}{\begin{itemize}\item #1\end{itemize}}
+
+% Metadata
+\title{interlinear Package Documentation}
+\author{Akpoué Kouamé Josué}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Package Description}
+\subsection{Purpose}
+The \code{interlinear} package provides a new interface for typesetting interlinear texts. It is based on \code{cgloss4e.sty} and is designed to avoid conflicts with other packages, such as \code{linguex}. This package allows for the simultaneous use of \code{linguex} and \code{interlinear} by renaming commands from \code{cgloss4e.sty} for better clarity and maintenance. The package is part of a larger set of tools to facilitate linguistic document preparation using LaTeX.
+
+\subsection{What's New}
+
+\itm{\bftext{Toolbox Integration:} Support for SIL Linguists Field's Toolbox input (with some modifications). You can copy-paste the interlinear text from Toolbox directly into LaTeX.}
+\itm{\bftext{Four-Line Option:} Adds support for a fourth line (Part of speech) in interlinear texts.}
+\itm{\bftext{Markers:} New markers are provided for various parts of the example, including \code{\textbackslash ct} (context), \code{\textbackslash li} (language information), \code{\textbackslash lt} (literal translation), and \code{\textbackslash gj} (grammaticality judgments).}
+\itm{\bftext{Environment:} Defines an \code{interlinear} environment with options for fine-grained control over element appearance.}
+
+\section{Installation and Loading}
+To install, place \code{interlinear.sty} in a directory where LaTeX can find it. Load the package using:
+\begin{verbatim}
+\usepackage{interlinear}
+\end{verbatim}
+Alternatively, use:
+\begin{verbatim}
+\input{path/to/interlinear.sty}
+\end{verbatim}
+
+%\subsection{Required Packages}
+
+To ensure the proper functioning of the \texttt{interlinear} package, the following LaTeX packages are required:
+
+\begin{itemize}
+ \item \texttt{marginnote}: This package is used for creating margin notes in your document.
+ \item \texttt{xifthen}: Provides conditional commands for handling various logic in the package.
+ \item \texttt{xkeyval}: Used to implement key=value options for customizing the behavior of the \texttt{interlinear} environment.
+ \item \texttt{xparse}: Facilitates the definition of commands and environments with a more flexible interface.
+ \item \texttt{etoolbox}: Supplies advanced tools for programming within LaTeX, such as patching and extending existing commands.
+ \item \texttt{enumitem}: Allows customization of list environments (like \texttt{itemize}, \texttt{enumerate}, etc.), which may be used within \texttt{interlinear}.
+\end{itemize}
+
+Ensure that these packages are included in your LaTeX distribution.
+
+\section{Basic Usage}
+The main feature of \code{interlinear} is the \code{interlinear} environment. This environment allows you to structure interlinear texts using markers. Below is a comparison between \code{cgloss4e} and \code{interlinear} syntax.
+
+\subsection{Example 1: Two-Line Interlinear}
+\textbf{cgloss4e} code:
+\begin{verbatim}
+\gll lorem ipsum dolor\\
+ sit amet consegur\\
+\glt `Lorem ipsum dolor'
+\end{verbatim}
+
+\textbf{interlinear} code:
+\begin{verbatim}
+\begin{interlinear}
+\tx lorem ipsum dolor\\
+\gl sit amet consegur\\
+\ft `Lorem ipsum dolor'\\
+\end{interlinear}
+\end{verbatim}
+
+\subsection{Example 2: Three-Line Interlinear}
+\textbf{cgloss4e} code:
+\begin{verbatim}
+\glll lorem ipsum\\
+ dolor sit\\
+ amet consegur\\
+\glt `Lorem ipsum dolor'
+\end{verbatim}
+
+\textbf{interlinear} code:
+\begin{verbatim}
+\begin{interlinear}
+\tx lorem ipsum\\
+\mb dolor sit\\
+\gl amet consegur\\
+\ft `Lorem ipsum dolor'\\
+\end{interlinear}
+\end{verbatim}
+
+\subsection{Complete Example}
+\begin{verbatim}
+\begin{interlinear}
+\li Language\\
+\rf Identifier of the data in the corpus/corpora\\
+\ct Context\\
+\gj Grammaticality judgment\\
+\tx Object language text\\
+\mb Morpheme breaks\\
+\gl Glosses\\
+\ps Part-of-speech\\
+\ft Free translation\\
+\lt Literal translation\\
+\nt Extra note\\
+\end{interlinear}
+\end{verbatim}
+
+\section{Setting Options}
+The \code{interlinear} environment can be customized using the options described below.
+
+\subsection{Interlinear Lines Number}
+The number of interlinear lines is controlled by the \code{linesnumber} option. Possible values are 0, 2, 3, 4 (default is 2).
+
+\subsection{Markers and Customization}
+You can define custom markers for each part of the interlinear text:
+\begin{verbatim}
+\li languageinfomarker
+\rf referencemarker
+\ct contextmarker
+\gj gramjudgmarker
+\tx textmarker
+\mb morphbreakmarker
+\gl glossmarker
+\ps partofspeechmarker
+\ft freetranslationmarker
+\lt literaltranslationmarker
+\nt extranotemarker
+\end{verbatim}
+
+\subsection{Appearance Customization}
+You can modify the appearance of different elements using the following options:
+\begin{verbatim}
+lineoneformat % First line format
+linetwoformat % Second line format
+linethreeformat % Third line format
+linefourformat % Fourth line format
+exformat % Example text format (no-interlinear mode)
+extranoteformat % Extra note format
+contextnameformat % Context label format
+\end{verbatim}
+
+These options can control the font family, shape, series, size, and color. To specify multiple formatting options, enclose them in a group. For example, the command \code{lineoneformat=\{$\backslash$itshape$\backslash$bfseries$\backslash$small\}} will set the text on the first interlinear or gloss line to boldface italics in a small size. By default, all formats are set to \code{$\backslash$normalfont}.
+
+\subsection{Other Settings}
+Various other elements can be customized:
+
+\itm{The label indicating the context of the example can be changed using the \code{contextname} option. For instance, to change \code{Context:} to \code{Situation:}, use \code{contextname={Situation:}}.}
+
+\itm{The space between the context and the body of the example can be specified via the \code{contextvoffset} option.}
+
+\itm{By default, marginal notes are enclosed in parentheses \code{()}. To change this behavior, use the \code{extranoteleftpunct} and \code{extranoterightpunct} options. For example, to change the parentheses to square brackets \code{[]}, set \code{extranoteleftpunct={[}} and \code{extranoterightpunct={]}}. If you prefer no punctuation marks around your notes, set \code{extranoteleftpunct={}} and \code{extranoterightpunct={}}.}
+
+\itm{The placement of language information for the linguistic example is controlled by the \code{languageinfopos} option, which accepts two values: \code{head} and \code{margin}. The default value, \code{margin}, places this information in parentheses in the margin of the first line of the example. The \code{head} value places it in a separate line at the very beginning of the example, even before the context. When the no-interlinear mode is enabled, \code{languageinfopos} should be set to \code{head} to avoid positioning conflicts with marginal notes.}
+
+\subsection{Applying Options Outside the Environment}
+Options can also be specified outside the \code{interlinear} environment using the \code{\interlinearstyle} command, which takes one mandatory argument. This argument should contain the list of chosen options, and \code{\interlinearstyle} must be called before the environment.
+
+For example:
+\begin{verbatim}
+\begin{interlinear}[linesnumber=3,linefourformat=\itshape]
+(content)
+\end{interlinear}
+\end{verbatim}
+
+is equivalent to:
+\begin{verbatim}
+\interlinearstyle{linesnumber=3,linefourformat=\itshape}
+\begin{interlinear}
+(content)
+\end{interlinear}
+\end{verbatim}
+
+The \code{$\backslash$interlinearstyle} command redefines the default values for the specified options. Therefore, each time this command is used, it updates the default values for the specified options.
+
+\subsection{Using Predefined and Custom Styles}
+One of the features of the \code{interlinear} package is the ability to define multiple styles and use them throughout the document without having to call \code{$\backslash$interlinearstyle} each time. There are four predefined styles:
+
+\begin{itemize}
+ \item \code{default}: Standard settings.
+ \item \code{gsr}: Sets the first interlinear line in italics.
+ \item \code{nointerlinear}: Configures the no-interlinear mode, changes the \code{$\backslash$ft} marker to \code{$\backslash$ot}, and sets \code{languageinfopos} to \code{head}. This style provides a safe way to configure the no-interlinear mode without worrying about the various parameters.
+ \item \code{gsrnointerlinear}: Similar to \code{nointerlinear}, but the text of the example is italicized.
+\end{itemize}
+
+There are two ways to apply a style:
+\begin{enumerate}
+\item Using the \code{$\backslash$UseInterlinearStyle\{\}} command before the \code{interlinear} environment, at the beginning of the document, or in the preamble.
+\item Using the dedicated \code{style} option in the optional argument of the \code{interlinear} environment.
+\end{enumerate}
+
+Example: \code{$\backslash$begin\{interlinear\}[style=gsr]}.
+
+It is recommended to specify the \code{style} option first when combining it with other options.
+
+You can also specify additional options alongside the style to customize it as needed (e.g., if you want to temporarily modify a style parameter).
+
+For example, the \code{gsr} style was declared using the following code:
+\begin{verbatim}
+\DeclareInterlinearStyle{gsr}{%
+ linesnumber=2,%
+ lineoneformat=\itshape,%
+ linetwoformat=\normalfont%
+}
+\end{verbatim}
+
+\end{document}
diff --git a/macros/latex/contrib/interlinear/interlinear.sty b/macros/latex/contrib/interlinear/interlinear.sty
new file mode 100644
index 0000000000..dd881b83db
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear.sty
@@ -0,0 +1,1176 @@
+% ^package_name="lingwrit-interlinear"_version="1.0"_container="lingwrit"
+% ^markup-language="WRIML"
+% ^purpose
+% This package processes interlinear gloss text, providing tools for handling and formatting glosses in linguistic documents.
+% It is based on the cgloss4e.sty package, but with significant modifications to avoid conflicts with other packages and to extend functionality.
+% As part of the lingwrit package, lingwrit-interlinear should not be loaded alongside it.
+% _purpose
+% ^base-program cgloss4e.sty _base-program
+
+% ^rem General Information
+% ^- lingwrit-interlinear is a modified version of cgloss4e.sty _-
+% ^- It primarily renames commands according to a customized syntax to prevent conflicts with other similar packages. _-
+% ^- Additional modifications include new commands and a new interlinear environment. _-
+% ^- Code added to the original has been marked with % ^added and % _added _-
+% _rem
+
+% ^module_name="interlinear"_container="lingwrit"
+% ^desc
+% This module is a modified version of the cgloss4e.sty.
+%
+% Modifications include:
+% - Command renaming: Commands have been renamed to avoid potential conflicts with other packages using similar names.
+% - Commands for processing four-lines interlinearization
+% - interlinear environment with its options
+% - markup commands and other functionalities
+%
+% Below is the list of new command names and their counterparts in cgloss:
+
+% ^list
+% ^cat Functions _cat
+
+% \more ^_becomes \lw_iln_process:words_queue
+% \lastword ^_becomes \lw_iln_fun_get:last_word
+% \testdone ^_becomes \lw_iln_check:queue_emptyness
+% \getwords ^_becomes \lw_iln_fun_get:line_words
+% \donewords ^_becomes \lw_iln_fun_exit:word_extraction
+% \twosent ^_becomes \lw_iln_fun_align:two_lines_words
+% \threesent ^_becomes \lw_iln_fun_align:three_lines_words
+% \glossglue ^_becomes \lw_iln_glue:inter_word_space
+% \gll ^_becomes \lw_iln_fun_enter:two_lines_interlinearization
+% \glll ^_becomes \lw_iln_fun_enter:three_lines_interlinearization
+% \glt ^_becomes \lw_iln_fun_insert:free_translation
+% \glend ^_becomes \lw_iln_fun_exit:interlinearization
+% \gl@stop ^_becomes \lw_iln_fun_exit:words_alignment
+
+% ^cat Boxes variables _cat
+
+% \lineone ^_becomes \lw_iln_var_box:line_one
+% \linetwo ^_becomes \lw_iln_var_box:line_two
+% \linethree ^_becomes \lw_iln_var_box:line_three
+% \linefour ^_becomes \lw_iln_var_box:line_four
+% \wordone ^_becomes \lw_iln_var_box:word_one
+% \wordtwo ^_becomes \lw_iln_var_box:word_two
+% \wordthree ^_becomes \lw_iln_var_box:word_three
+% \wordfour ^_becomes \lw_iln_var_box:word_four
+% \gline ^_becomes \lw_iln_var_box:iln_text_lines
+
+% ^cat Setting Appearence _cat
+
+% \eachwordone ^_becomes \lw_iln_fun_set:line_one_words_format
+% \eachwordtwo ^_becomes \lw_iln_fun_set:line_two_words_format
+% \eachwordthree ^_becomes \lw_iln_fun_set:line_three_words_format
+% \eachwordfour ^_becomes \lw_iln_fun_set:line_four_words_format
+% _list
+
+% The naming of the commands follows the following schema:
+
+% \<container>_<package>_<type>_<subtype>:<name/description>
+
+% <container> code is: lw (for lingwrit)
+% <package> code is: iln (for interlinear)
+% <type> code includes: "var" (for variables) and "fun" (for functions)
+
+% Variable Subtypes
+% box: for boxes
+
+% Function Subtypes
+% enter: initialize a process
+% exit: terminates a process
+% get: extract information
+% check: test if some condition is met
+% insert: inserts some stuff (i.e. the translation)
+% process: process given elements
+% calc: calculates the value of some variable
+% set: sets (manually) the values of some variable
+% _desc
+
+% ^code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{lingwrit-interlinear}[2024/08/22 v1.0 (Linguistic Writing) Interlinear gloss text processing]
+
+% todo Required Packages
+\RequirePackage{marginnote} % ^rem for marginnotes _rem
+\RequirePackage{xifthen}
+\RequirePackage{xkeyval} % ^rem For key=val options
+\RequirePackage{xparse,etoolbox,enumitem}
+
+% todo 0. Utilities
+
+% todo a. LW Syntax Related Commands
+% Shortcut for some conditional statements
+\DeclareDocumentCommand{\IfValueArgTF}{mmmm}{\ifthenelse{\equal{#1}{#2}}{#3}{#4}}
+% Enabling the package syntax
+\providecommand{\switchlwsyntaxon}{\makeatletter\catcode `:=11 \catcode `_=11}
+\providecommand{\switchlwsyntaxoff}{\makeatother \catcode `:=12 \catcode `_=8}
+% if you want to modify some internal commands, check if your code is
+% surrounded by \switchlwsyntaxon and \switchlwsyntaxoff (LW Syntax enables "@", ":" and "_" to be used in csnames. So you need not using \makeatletter and \makeatother when you are using lwsyntax))
+
+
+% ^action_name="Enabling LingWrit Syntax"
+\switchlwsyntaxon
+% _action
+
+% todo b. Renaming of some TeX primitives
+\let\enter:group\bgroup\relax
+\let\exit:group\egroup\relax
+
+% todo c. Defining some helpers
+\def\lw_fun_helper:store#1{\expandafter\let\csname call:stored_#1\endcsname\expandafter\csname #1\endcsname}
+\def\lw_fun_helper:call#1{#1}
+\def\lw_fun_helper:clear#1{\RenewDocumentCommand{#1}{}{\relax}}%
+
+% todo d. Usefull Commands That are not used
+% The following commands are not used actually but may be usefull in some contexts
+% Fixing bugs with setspace package
+% If you encounter an error message using \singlespacing, \onehalfspacing or \doublespacing, use either of the following commands, according to your needs.
+
+\def\usedoublespacing{\lw_fun_helper:store{doublespacing}
+ \renewcommand\doublespacing{%
+ \call:stored_doublespacing%
+ \def\baselinestretch{1.69}}%
+}
+%
+\def\useonehalfspacing{%
+ \lw_fun_helper:store{onehalfspacing}
+ \renewcommand\onehalfspacing{%
+ \call:stored_onehalfspacing%
+ \def\baselinestretch{1.24}}%
+ }
+\def\usesinglespacing{%
+ \lw_fun_helper:store{singlespacing}
+ \renewcommand\singlespacing{%
+ \call:stored_singlespacing%
+ \def\baselinestretch{1}}%
+ }
+
+% Line Stretch Size Calculator
+
+% Enable LW Syntax
+%\switchlwsyntaxon
+%\newcounter{currentsize}
+%\setcounter{currentsize}{10}
+%\addtocounter{currentsize}{\@ptsize}
+%\newlength{\lw_iln_length:line_stretch_size}
+%\setlength{\lw_iln_length:line_stretch_size}{\dimexpr\baselinestretch pt * \thecurrentsize}
+%Current size: \thecurrentsize
+%Current interline size:
+%\the\lw_iln_length:line_stretch_size
+% Disable LW Syntax
+% \switchlwsyntaxoff
+
+% todo enter:cgloss4e modifications *
+
+% todo 1. Borrowings from covington
+
+% Forcing and disabling single spacing
+\let\@gsingle=1
+\def\lw_iln_fun_enable:force_single_spacing{\let\@gsingle=1}
+\def\lw_iln_fun_disable:force_single_spacing{\let\@gsingle=0}
+\@ifundefined{new@fontshape}%
+{\def\@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}}
+{\def\@selfnt{\selectfont}}
+
+% todo a. 2-lines global interlinearization processing commands
+% ^modif_action="\begin{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+
+\def\lw_iln_fun_enter:two_lines_interlinearization% % Introduces 2-line text-and-gloss.
+{%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group%
+ \lw_iln_fun_align:two_lines_words%
+ }
+% _modif
+
+% todo b. 3-lines global interlinearization processing commands
+% ^modif_action="\begin{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_enter:three_lines_interlinearization% % Introduces 3-line text-and-gloss.
+ {%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group
+ \lw_iln_fun_align:three_lines_words
+ }
+% _modif
+
+% todo c. 4-lines global interlinearization processing commands
+% ^added_action="\lw_iln_fun_enter:four_lines_interlinearization defined for initiating 4-lines interlinearization"
+ % ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_enter:four_lines_interlinearization% % Introduces 3-line text-and-gloss.
+ {%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group
+ \lw_iln_fun_align:four_lines_words
+ }
+ % _modif
+
+% todo d. Translation and interlinear end
+% ^modif_action="Is now obsolete"
+% \def\lw_iln_fun_insert:free_translation{} ^rem obsolete _rem
+% _modif
+% ^modif_action="Definition modified"
+ % Introduces a translation
+ \let\trans\relax% ^rem obsolete _rem
+% _modif
+
+ \def\lw_iln_fun_exit:interlinearization{%
+ \lw_iln_fun_insert:interlinear_bottom_skip%
+ }
+ % Ends the gloss environment.
+% _modif
+
+% todo 2. Adaptation of gloss.tex
+
+ % The following TeX code is adapted, with permission, from:
+ % gloss.tex: Macros for vertically aligning words in consecutive sentences.
+ % Version: 1.0 release: 26 November 1990
+ % Copyright (c) 1991 Marcel R. van der Goot (marcel@cs.caltech.edu).
+ % Original Midnight/gloss.tex and Midnight/gloss.doc are available from
+ % csvax.cs.caltech.edu [131.215.131.131] in pub/tex
+ % and many other anonymous ftp archives.
+
+% todo a. Box Variables Declaration
+ \newbox\lw_iln_var_box:line_one% boxes with words from first line
+ \newbox\lw_iln_var_box:line_two%
+ \newbox\lw_iln_var_box:line_three%
+ \newbox\lw_iln_var_box:line_four% ^rem ADDED _rem
+ \newbox\lw_iln_var_box:word_one% a word from the first line (hbox)
+ \newbox\lw_iln_var_box:word_two%
+ \newbox\lw_iln_var_box:word_three%
+ \newbox\lw_iln_var_box:word_four% ^rem ADDED _rem
+ \newbox\lw_iln_var_box:iln_text_lines% the constructed double line (hbox)
+
+% todo b. Skip Variable Declaration and setting
+ \newskip\lw_iln_glue:inter_word_space% extra glue between glossed pairs or triples
+ \lw_iln_glue:inter_word_space = 0pt plus 2pt minus 1pt % allow stretch/shrink between words
+ %\lw_iln_glue:inter_word_space = 5pt plus 2pt minus 1pt % allow stretch/shrink between words
+ \newlength{\lw_iln_length:base_line_stretch}
+ \setlength{\lw_iln_length:base_line_stretch}{.61ex}
+
+ \AtBeginDocument{%
+ \def\lw_iln_fun_calc:line_stretch_factor{%
+ \ifdim\baselinestretch\p@=1\p@%
+ \def\lw_iln_multiplier:line_stretch_factor{.5}
+ \else%
+ \ifdim\baselinestretch\p@<1.26\p@%
+ \def\lw_iln_multiplier:line_stretch_factor{.5}
+ \else%
+ \ifdim\baselinestretch\p@<1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{1.6}
+ \else%
+ \ifdim\baselinestretch\p@>1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{2.23}
+ \else%
+ \ifdim\baselinestretch\p@=1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{2.23}
+ \else%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ }
+ \lw_iln_fun_calc:line_stretch_factor%
+ %
+ \newlength{\lw_iln_length:line_spread}
+ \setlength{\lw_iln_length:line_spread}{0ex}
+ \addtolength{\lw_iln_length:line_spread}{\lw_iln_multiplier:line_stretch_factor\lw_iln_length:base_line_stretch}
+ \addtolength{\lw_iln_length:line_spread}{.16\lw_iln_length:base_line_stretch}
+ }
+ %\addtolength{\lw_iln_length:line_spread}{\lw_iln_multiplier:line_stretch_factor\lw_iln_length:base_line_stretch}
+
+
+% todo c. Boolean Declaration
+ \newif\ifnotdone
+
+% todo d. \rmfamily font declaraton (for backward compatibility)
+ % For any REALLY old distributions without \rmfamily
+ \@ifundefined{rmfamily}{\let\rmfamily=\rm}
+
+% todo e. Définition functions controlling the appearance of words in each line of the interlinearized text
+% ^modified_action="Adding low level commands to format different aspects of the appearence of words"
+\@ifundefined{lw_iln_fun_set:line_one_words_format}%
+ {\newcommand\lw_iln_fun_set:line_one_words_format{%
+ \lw_iln_fun_set:line_one_words_font_size%
+ \lw_iln_fun_set:line_one_words_font_series%
+ \lw_iln_fun_set:line_one_words_font_shape%
+ \lw_iln_fun_set:line_one_words_font_color%
+ }
+ }{\relax}
+ % ^added
+ \let\lw_iln_fun_set:line_one_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_one_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_one_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_one_words_font_color=\normalcolor%
+ % _added
+ %
+\@ifundefined{lw_iln_fun_set:line_two_words_format}%
+ {\newcommand\lw_iln_fun_set:line_two_words_format{%
+ \lw_iln_fun_set:line_two_words_font_size%
+ \lw_iln_fun_set:line_two_words_font_series%
+ \lw_iln_fun_set:line_two_words_font_shape%
+ \lw_iln_fun_set:line_two_words_font_color}
+ }%
+ {\relax}
+%
+ % ^added
+ \let\lw_iln_fun_set:line_two_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_two_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_two_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_two_words_font_color=\normalcolor%
+ % _added
+ %
+\@ifundefined{lw_iln_fun_set:line_three_words_format}{%
+ \newcommand\lw_iln_fun_set:line_three_words_format{%
+ \lw_iln_fun_set:line_three_words_font_size%
+ \lw_iln_fun_set:line_three_words_font_series%
+ \lw_iln_fun_set:line_three_words_font_shape%
+ \lw_iln_fun_set:line_three_words_font_color}
+ }{\relax}
+ % ^added
+ \let\lw_iln_fun_set:line_three_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_three_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_three_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_three_words_font_color=\normalcolor%
+ % _added
+ %
+%
+\@ifundefined{lw_iln_fun_set:line_four_words_format}{%
+ \newcommand\lw_iln_fun_set:line_four_words_format{%
+ \lw_iln_fun_set:line_four_words_font_size%
+ \lw_iln_fun_set:line_four_words_font_series%
+ \lw_iln_fun_set:line_four_words_font_shape%
+ \lw_iln_fun_set:line_four_words_font_color}
+ }{\relax}% ^rem ADDED _rem
+ % ^added
+ \let\lw_iln_fun_set:line_four_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_four_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_four_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_four_words_font_color=\normalcolor%
+ % _added
+ %
+% _modified
+% todo f. General Interlinearization Functions Definition
+ \def\lw_iln_fun_get:last_word#1#2#3% #1 = \each, #2 = line box, #3 = word box
+ {\setbox#2=\vbox{\unvbox#2%
+ \global\setbox#3=\lastbox%
+ }%
+ \ifvoid#3\global\setbox#3=\hbox{#1\strut{} }\fi
+ % extra space following \strut in case #1 needs a space
+ }
+
+ \def\lw_iln_check:words_queue_emptyness
+ {\ifdim\ht\lw_iln_var_box:line_one=0pt
+ \ifdim\ht\lw_iln_var_box:line_two=0pt \notdonefalse % tricky space after pt
+ \else\notdonetrue
+ \fi
+ \else\notdonetrue
+ \fi
+ }
+
+ \gdef\lw_iln_fun_get:line_words(#1,#2)#3 #4\\% #1=linebox, #2=\each, #3=1st word, #4=remainder
+ {\setbox#1=\vbox{\hbox{#2{\strut#3} }% adds space
+ \unvbox#1%
+ }%
+ \def\lw_iln_process:words_queue{#4}%
+ \ifx\lw_iln_process:words_queue\empty\let\lw_iln_process:words_queue=\lw_iln_fun_exit:word_extraction
+ \else\let\lw_iln_process:words_queue=\lw_iln_fun_get:line_words
+ \fi
+ \lw_iln_process:words_queue(#1,#2)#4\\%
+ }
+
+ \gdef\lw_iln_fun_exit:word_extraction(#1,#2)\\{}%
+
+% todo g. Processing of 2-lines interlinear texts
+% ^modif_action"Rename \twosent into original twosent"
+ \gdef\lw_iln_fun_align:two_lines_words#1\\ #2\\{% #1 = first line, #2 = second line
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+% _modif
+
+
+% todo h. Processing of 3-lines interlinear texts
+ \gdef\lw_iln_fun_align:three_lines_words#1\\ #2\\ #3\\{% #1 = first line, #2 = second line, #3 = third
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_three,\lw_iln_fun_set:line_three_words_format)#3 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_three_words_format}{\lw_iln_var_box:line_three}{\lw_iln_var_box:word_three}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ \nointerlineskip
+ \box\lw_iln_var_box:word_three
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+
+
+% todo i. Processing of 4-lines interlinear texts
+% ^added_action"Four lines interlinear processor, equivalent to an hypothetic \foursent for gloss.tex based interlinearization packages"
+\gdef\lw_iln_fun_align:four_lines_words#1\\ #2\\ #3\\ #4\\{% #1 = first line, #2 = second line, #3 = third
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_three,\lw_iln_fun_set:line_three_words_format)#3 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_four,\lw_iln_fun_set:line_four_words_format)#4 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_three_words_format}{\lw_iln_var_box:line_three}{\lw_iln_var_box:word_three}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_four_words_format}{\lw_iln_var_box:line_four}{\lw_iln_var_box:word_four}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ \nointerlineskip
+ \box\lw_iln_var_box:word_three
+ \nointerlineskip
+ \box\lw_iln_var_box:word_four
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+
+% _added
+
+
+% todo j. Ending interlinearization
+% ^modif_action="\end{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_exit:words_alignment{{\hskip -\lw_iln_glue:inter_word_space}\unhbox\lw_iln_var_box:iln_text_lines}
+% _modif
+% todo * exit:cgloss4e modifications
+
+% todo 1. Other added features
+% todo a. Managing line spacing after interlinearization
+\def\baselinestretch{1}
+\def\lw_iln_fun_insert:interlinear_bottom_skip{\vskip \lw_iln_length:line_spread}%
+
+% todo b. Configuring ex-parts boxes
+
+% ^rem Examples will now be placed within boxes, alongside glosses lines (old genericx.tex's \mb and \gl lines), and hanging bracketed language informations (like LangSci jamboxes) _rem
+% todo i. Setting Lengths
+% ===============
+% Setting Lengths
+% ===============
+%
+
+\newlength{\lw_iln_var_dim:ex_box_width}
+\newlength{\lw_iln_var_dim:ex_box_right_margin}
+%\newlength{\lw_iln_var_dim:ex_box_bottom_sep}
+%\newlength{\lw_iln_var_dim:ex_box_top_sep}
+\newlength{\lw_iln_var_dim:iln_box_width}
+\newlength{\lw_iln_var_dim:iln_box_right_margin}
+%\newlength{\lw_iln_var_dim:iln_box_bottom_sep}
+%\newlength{\lw_iln_var_dim:iln_box_top_sep}
+\newlength{\lw_iln_var_dim:trans_box_width}
+\newlength{\lw_iln_var_dim:trans_box_right_margin}
+\newlength{\lw_iln_var_dim:gramjudg_len}
+\newlength{\lw_iln_var_dim:gramjudg_reserved_space}
+\newlength{\lw_iln_var_dim:langinfo_box_width}
+\newlength{\lw_iln_var_dim:langinfo_box_left_sep}
+\newlength{\lw_iln_var_dim:langinfo_box_right_sep}
+\newlength{\lw_iln_var_dim:langinfo_reserved_space}
+%\newlength{\lw_iln_var_dim:langinfo_left_margin}
+\newlength{\lw_iln_var_dim:extranote_box_width}
+\newlength{\lw_iln_var_dim:extranote_box_left_sep}
+\newlength{\lw_iln_var_dim:extranote_box_right_sep}
+\newlength{\lw_iln_var_dim:extranote_reserved_space}
+%\newlength{\lw_iln_var_dim:extranote_left_margin}
+
+% Initializing lengths
+\setlength{\lw_iln_var_dim:ex_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:ex_box_right_margin}{0ex}
+\setlength{\lw_iln_var_dim:iln_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:iln_box_right_margin}{0ex}
+\setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:trans_box_right_margin}{0ex}
+\addtolength{\lw_iln_var_dim:trans_box_width}{-\lw_iln_var_dim:trans_box_right_margin}
+\setlength{\lw_iln_var_dim:gramjudg_len}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:langinfo_box_width}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:langinfo_reserved_space}{0ex}
+\setlength{\lw_iln_var_dim:langinfo_box_left_sep}{3.4ex}
+\setlength{\lw_iln_var_dim:langinfo_box_right_sep}{3.4ex}
+\setlength{\lw_iln_var_dim:extranote_box_width}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:extranote_reserved_space}{0ex}
+\setlength{\lw_iln_var_dim:extranote_box_left_sep}{0pt}
+\setlength{\lw_iln_var_dim:extranote_box_right_sep}{0pt}
+
+% ===========================
+% Defining Booleans for Boxes
+% Opennings
+% ===========================
+\newif\ifnoglosslines%
+\noglosslinestrue
+% todo ii. Defining Opening CS for Boxes
+% =============================
+% Defining Opening CS for Boxes
+% =============================
+\NewDocumentCommand{\lw_iln_fun_open:ex_box}{}{%
+ % ^rem example box opening code _rem
+ % ^rem \lw_iln_fun_open:ex_box should be called after \label{key} to avoid linebreak _rem
+ % ^rem no_op command _rem
+ }
+\NewDocumentCommand{\lw_iln_fun_open:iln_box}{}{%
+ % ^rem interlinear text box opening code _rem
+ \addtolength{\lw_iln_var_dim:iln_box_width}{-1.15\lw_iln_var_dim:langinfo_reserved_space}%
+ \begin{itemize}[%
+ align=left,%
+ labelwidth=\lw_iln_var_dim:gramjudg_len,%
+ leftmargin=\lw_iln_var_dim:gramjudg_reserved_space]%
+ \item[\lw_iln_fun_print:gramjudg]%
+ \begin{minipage}[t]{\lw_iln_var_dim:iln_box_width}%
+}
+\NewDocumentCommand{\lw_iln_fun_open:langinfo_box}{}{%
+ % ^rem language info box opening code _rem
+ \begin{minipage}[t]{\lw_iln_var_dim:langinfo_box_width}
+}
+\NewDocumentCommand{\lw_iln_fun_open:trans_box}{}{%
+ \setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-1.069\lw_iln_var_dim:extranote_reserved_space}%
+ \trans \begin{minipage}[b]{\lw_iln_var_dim:trans_box_width}
+}
+\NewDocumentCommand{\lw_iln_fun_open:extra_note_box}{}{%
+ \begin{minipage}[t]{\lw_iln_var_dim:extranote_box_width}%
+ \raggedright%
+ }
+
+% todo iii. Defining Closing CS for Boxes
+% =============================
+% Defining Closing CS for Boxes
+% =============================
+\def\lw_iln_fun_format:ex_text{\normalfont}%
+\NewDocumentCommand{\lw_iln_fun_close:ex_box}{}{%
+ % ^rem example box closing code _rem
+ \setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-\lw_iln_var_dim:gramjudg_reserved_space}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-1.0618\lw_iln_var_dim:extranote_reserved_space}%
+ \IfValueArgTF{\lw_iln_var_stored:gramjudg_text}{}{\relax}%
+ {\begin{minipage}[t]{\lw_iln_var_dim:gramjudg_len}
+ \lw_iln_fun_print:gramjudg%
+ \end{minipage}}
+ \begin{minipage}[t]{\lw_iln_var_dim:trans_box_width}
+ \lw_iln_fun_format:ex_text%
+ \lw_iln_var_stored:free_trans_text\space%
+ \normalfont%
+ \IfValueArgTF{\lw_iln_var_stored:reference_text}{}{\relax}{\lw_iln_fun_print:reference}%
+ \end{minipage}
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}{\relax}%
+ {\vskip -2.6ex
+ \hfill%
+ \begin{minipage}[t]{\lw_iln_var_dim:extranote_box_width}
+ (\lw_iln_var_stored:extranote_text)%
+ \end{minipage}}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:iln_box}{}{%
+ % ^rem interlinear text box closing code _rem
+ \lw_iln_fun_exit:interlinearization
+ \end{minipage}\lw_iln_fun_print:langinfo%
+ \end{itemize}
+}
+\NewDocumentCommand{\lw_iln_fun_close:langinfo_box}{}{%
+ % ^rem language info box closing code _rem
+ \end{minipage}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:extranote_box}{}{%
+ \end{minipage}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:trans_box}{}{%
+ \end{minipage}\hfill%
+}
+
+% todo iv. Defining CS for setting or inserting example parts or metadata
+\def\lw_iln_var_stored:langinfo_text{}
+% the * and : versions print the language name as a title.
+% If \lw_iln_fun_set:langinfo if followed by an ex_box, use the * version
+% If there is some text -- e.g. specifying the context for the data -- before the ex_box, use the : version
+% To print the language information as a margin note, use the "bear" version
+\NewDocumentCommand{\langinfo}{s t/ m }{%
+ \IfBooleanTF{#1}%
+ {{\normalfont #3}}%
+ {%
+ \IfBooleanTF{#2}%
+ {{\normalfont #3}\\}%
+ {\def\lw_iln_var_stored:langinfo_text{#3}
+ \settowidth{\lw_iln_var_dim:langinfo_box_width}{#3}
+ \setlength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_width}
+ \addtolength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_left_sep}
+ \addtolength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_right_sep}
+ }%
+ }%
+}%
+
+\NewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo{#1}}
+\NewDocumentCommand{\lw_iln_fun_make:langinfo_box}{}{%
+ \ifthenelse{\equal{\lw_iln_var_stored:langinfo_text}{}}{}{%
+ \marginnote{\hskip -\lw_iln_var_dim:langinfo_reserved_space\lw_iln_fun_open:langinfo_box%
+ {\normalfont(\lw_iln_var_stored:langinfo_text)}%
+ \lw_iln_fun_close:langinfo_box}[0cm]%
+ }%
+}
+\NewCommandCopy{\lw_iln_fun_print:langinfo}{\lw_iln_fun_make:langinfo_box}
+
+\def\lw_iln_var_stored:gramjudg_text{}
+\NewDocumentCommand{\lw_iln_fun_set:gramjudg}{m}{%
+ \def\lw_iln_var_stored:gramjudg_text{#1}%
+ \settowidth{\lw_iln_var_dim:gramjudg_len}{#1}%
+ \setlength{\lw_iln_var_dim:gramjudg_reserved_space}{\lw_iln_var_dim:gramjudg_len}%
+ \addtolength{\lw_iln_var_dim:gramjudg_reserved_space}{1ex}%
+}
+\NewDocumentCommand{\lw_iln_fun_print:gramjudg}{}{%
+ \ifthenelse{\equal{\lw_iln_var_stored:gramjudg_text}{}}{}{%
+ {\normalfont\lw_iln_var_stored:gramjudg_text}%
+ }%
+}
+\def\lw_iln_var_stored:extranote_text{}
+\def\lw_iln_var_token:extranote_left_punct{{(}}%
+\def\lw_iln_fun_format:extranote{\normalfont}
+\def\lw_iln_var_token:extranote_right_punct{{)}}%
+\NewDocumentCommand{\lw_iln_fun_add:extranote}{m}{%
+ \def\lw_iln_var_stored:extranote_text{#1}%
+ \settowidth{\lw_iln_var_dim:extranote_box_width}{#1}
+ \ifdimgreater{\lw_iln_var_dim:extranote_box_width}{113.2pt}%
+ {\setlength{\lw_iln_var_dim:extranote_box_width}{113.2pt}}%
+ {\settowidth{\lw_iln_var_dim:extranote_box_width}{#1}}%
+ \setlength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_width}%
+ \addtolength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_left_sep}
+ \addtolength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_right_sep}%
+}
+\NewDocumentCommand{\lw_iln_fun_make:extranote_box}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}%
+ {}%
+ {\lw_iln_fun_open:extra_note_box%
+ \lw_iln_var_token:extranote_left_punct%
+ \lw_iln_fun_format:extranote%
+ \lw_iln_var_stored:extranote_text%
+ \normalfont%
+ \lw_iln_var_token:extranote_right_punct%
+ \lw_iln_fun_close:extranote_box}
+}
+
+\def\lw_iln_var_stored:free_trans_text{}
+\NewDocumentCommand{\lw_iln_fun_set:free_translation}{m}{%
+ \def\lw_iln_var_stored:free_trans_text{#1}
+}
+\def\lw_iln_var_stored:literal_trans_text{}
+\NewDocumentCommand{\lw_iln_fun_set:literal_trans_text}{m}{%
+ \def\lw_iln_var_stored:literal_trans_text{#1}
+}
+\def\lw_iln_var_stored:reference_text{}
+\NewDocumentCommand{\lw_iln_fun_set:reference}{m}{%
+ \def\lw_iln_var_stored:reference_text{#1}
+}
+\NewDocumentCommand{\lw_iln_fun_print:free_trans}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:free_trans_text}{}{}%
+ {`\lw_iln_var_stored:free_trans_text'}}
+\NewDocumentCommand{\lw_iln_fun_print:literal_trans}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:literal_trans_text}{}{}%
+ {(Lit.: `\lw_iln_var_stored:literal_trans_text')}}
+\NewDocumentCommand{\lw_iln_fun_print:reference}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:reference_text}{}{}%
+ {{[}\lw_iln_var_stored:reference_text{]}}}
+%
+\NewDocumentCommand{\lw_iln_fun_make:trans_box}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}%
+ {\lw_iln_fun_open:trans_box%
+ \lw_iln_fun_print:free_trans\space %
+ \lw_iln_fun_print:literal_trans\space %
+ \lw_iln_fun_print:reference\space %
+ \lw_iln_fun_close:trans_box}%
+ {\lw_iln_fun_open:trans_box%
+ \raggedright
+ \lw_iln_fun_print:free_trans\space %
+ \lw_iln_fun_print:literal_trans\space %
+ \lw_iln_fun_print:reference\space %
+ \lw_iln_fun_close:trans_box}
+}
+
+\def\lw_iln_fun_format:context_label{\normalfont}
+\def\lw_iln_var_name:context{Context:}
+\def\lw_iln_fun_insert:context#1{%
+ \IfValueArgTF{#1}{}{}%
+ {\lw_iln_fun_format:context_label\lw_iln_var_name:context\normalfont~#1\\[-1.3\baselineskip]}
+}
+
+\def\lw_iln_fun_reinitialize:markers_value{%
+ \def\lw_iln_var_stored:extranote_text{}
+ \def\lw_iln_var_stored:free_trans_text{}
+ \def\lw_iln_var_stored:gramjudg_text{}
+ \def\lw_iln_var_stored:langinfo_text{}
+ \def\lw_iln_var_stored:literal_trans_text{}
+ \def\lw_iln_var_stored:reference_text{}
+}
+
+% todo v. Defining long (internal commands)
+\def\lw_iln_var_num:interlinear_lines{2}
+
+\def\lw_iln_tag:line_one_marker{% LEV version
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{2}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:two_lines_interlinearization}{}%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{3}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:three_lines_interlinearization}{}%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{4}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:four_lines_interlinearization}{}%
+}%
+
+\let\lw_iln_tag:Text_marker\lw_iln_tag:line_one_marker% ^rem is typeset in italics by default. The starred version introduces a two-line interlinear gloss text. ^caution Do not use it together with \lw_iln_MorphBreak_marker : they mean the same thing. So you will get error messages. _caution _rem
+%
+\def\lw_iln_tag:Morpheme_Break_marker% ^rem typeset in roman -- by default -- (intended to host API translations). Introduces a 2-line interlinear gloss text. _rem
+{\IfValueArgTF{\lw_iln_var_num:interlinear_lines}{2}%
+ {\lw_iln_tag:line_one_marker}%
+ {\relax}%
+}%
+
+\def\lw_iln_tag:Gloss_marker% ^rem \ge is already defined in LaTeX. \lw_iln_tag:Gloss_marker introduces a two-line interlinear gloss text. _rem
+{\relax}%
+%
+\def\lw_iln_tag:Part_of_speech_marker{\relax}
+
+% LEV Syntax sensitive CS
+\def\lw_iln_tag:Free_translation_marker#1\\%
+ {\IfValueArgTF{\lw_iln_var_num:interlinear_lines}{0}
+ {\lw_iln_fun_set:free_translation{#1}}
+ {\lw_iln_fun_close:iln_box%
+ \lw_iln_fun_set:free_translation{#1}}}% ^rem CAUTION: The Free Translation marker should be present even if there is actually no free translation provided. _rem
+%
+\def\lw_iln_tag:Literal_translation_marker#1\\%
+{\lw_iln_fun_set:literal_trans_text{#1}}
+\def\lw_iln_tag:Reference_marker#1\\%
+{\lw_iln_fun_set:reference{#1}}
+\def\lw_iln_tag:Language_information_marker#1\\%
+{\lw_iln_fun_set:langinfo{#1}}
+\def\lw_iln_tag:Grammaticality_Judgment_marker#1\\%
+{\lw_iln_fun_set:gramjudg{#1}}
+\newlength{\lw_iln_var_dim:context_voffset}
+\setlength{\lw_iln_var_dim:context_voffset}{-1em}
+\def\lw_iln_tag:Context_marker#1\\%
+{\lw_iln_fun_insert:context{#1}\\[\lw_iln_var_dim:context_voffset]}
+\def\lw_iln_tag:Extra_note_marker#1\\%
+ {\lw_iln_fun_add:extranote{#1}}
+
+
+% _cs-definitions
+
+% todo vi. Low-level commands
+
+% ^section_title="User Commands and Envs to Typeset Interlinear Gloss Texts"
+% DEFINE: interlinear environment
+% DEFINE: Text tagging cs
+% The cs are named after the standard tags used in Linguist's Field's Toolbox by SIL (see Interlinear macro in ToolboxInterlinearMacroText.docm)
+% ^important Please use the short versions (in brackets). The long versions are internal commands to be use for later eventual modifications _important
+% \lw_iln_tag:Text_marker (\tx) ^rem is typeset in italic either in tri-gloss or in di-gloss envs. In di-gloss env, \tx and \mb mean the same thing. _rem
+%\lw_iln_tag:MorphBreak_marker (\mb) ^rem typeset in roman -- by default -- (intended to host API translations) _rem
+%\lw_iln_tag:Gloss_marker (\gl) % \ge is already defined in LaTeX
+%\lw_iln_tag:FreeTranslation_marker (\ft)
+% \lw_iln_tag:Reference_marker (\rf) ^rem \ref is a primitive _rem
+% --------------------------------
+% Markers not present in Toolbox defaults
+% --------------------------------
+% \lw_iln_tag:Language_information_marker (\li)
+% \lw_iln_tag:Grammaticality_Judgment_marker (\gj)
+% \lw_iln_tag:Context_marker (\ct)
+%
+% \lw_iln_tag:Literal_translation_marker (\lt)
+% \lw_iln_tag:Extra_note_marker (\nt)
+%
+% ^cs-definitions
+%\let\tx\lw_iln_tag:Text_marker% ^rem is typeset in italic either in tri-gloss or in di-gloss envs. In di-gloss env, \tx and \mb mean the same thing. _rem
+\let\mb\lw_iln_tag:Morpheme_Break_marker% ^rem typeset in roman -- by default -- (intended to host API translations) _rem
+\let\gl\lw_iln_tag:Gloss_marker% ^rem \ge is already defined in LaTeX _rem
+%\let\ft\lw_iln_tag:Free_translation_marker%
+\let\ps\lw_iln_tag:Part_of_speech_marker
+%
+\NewCommandCopy{\li}%
+{\lw_iln_tag:Language_information_marker}%
+\NewCommandCopy{\rf}%
+{\lw_iln_tag:Reference_marker}%
+\NewCommandCopy{\gj}%
+{\lw_iln_tag:Grammaticality_Judgment_marker}
+\NewCommandCopy{\ct}%
+{\lw_iln_tag:Context_marker}
+\NewCommandCopy{\lt}%
+{\lw_iln_tag:Literal_translation_marker}%
+\NewCommandCopy{\nt}%
+ {\lw_iln_tag:Extra_note_marker}
+
+% todo c. Defining Interlinear Env. Options
+% ----------------------
+% | Describing options |
+% ----------------------
+
+% # Options:
+
+% - argendchar: (not available for the moment) return, par, lineend
+% return : takes the current line as argument, do not put anything else (e.g. {}, or \\)
+% lineend : idem
+% par : argument is ended by "\\" like e.g. in cgloss4e
+% (NOTE: this option scopes over all the markers, not only interlinear text markers \tx, \mb, \gl, \ps)
+
+% - linesnumber: full, 2, 3
+% full : 4-lines (By default it is disabled in the main text)
+% 2 : Only one gloss line is printed (\gl); \mb and \tx are then treated are incompatible to each other so
+% that only of them should be used. If this option is used, you should specifiy the first-line of the
+% interlinear text via first-line option
+% 3 : only \ps is not printedand all the other lines \tx, \mb and \gl should be non-empty
+
+% * Setting markers *
+
+% Sets the marker used for the different parts. Actually tells lingwrit-interlinear to define the corresponding command so as to fit the definition of the
+% default marker (e.g. text_marker=\ot tells lingwrit-interlinear to add the following: \let\ot\tx)
+% - textmarker=
+% - morphbreakmarker=
+% - glossmarker= (You shouldn't set it to \ge. But if this happens, note that lingwrit-interlinear will redefine \ge to equal to \gl, define a new
+% command \gteq to replace \ge and issue a warning message)
+% - partofspeechmarker=
+% - freetranslationmarker=
+% - literaltranslationmarker=
+% - grammaticalityjudgmentmarker=
+% - contextmarker=
+% - extranotemarker=
+% - languageinfomarker=
+% - referencemarker=
+
+% * Format specifications *
+
+% (May include font size, shape, series and color. If color command is used (e.g. \color{blue}), then make sure to have xcolor loaded)
+% - lineoneformat={}
+% - linetwoformat={}
+% - linethreeformat={}
+% - linefourformat={}
+% - extranoteformat={}
+% - contextnameformat={}
+
+% * Other specifications *
+
+% - contextname={} ^rem The displayed label for context. default value is "Context:" _rem
+% - extranoteleftpunct= ^rem the punctuation preceding the extra note. Default value: ( _rem
+% - extranoterightpunct= ^rem the punctuation following the extra note. Default value: ) _rem
+
+% todo i. Declaring Options
+\NewCommandCopy{\lw_iln_var_opt:textmarker}{\lw_iln_tag:Text_marker}
+\NewCommandCopy{\lw_iln_var_opt:morphbreakmarker}{\lw_iln_tag:Morpheme_Break_marker}
+\NewCommandCopy{\lw_iln_var_opt:glossmarker}{\lw_iln_tag:Gloss_marker}
+\NewCommandCopy{\lw_iln_var_opt:partofspeechmarker}{\lw_iln_tag:Part_of_speech_marker}
+\NewCommandCopy{\lw_iln_var_opt:freetranslationmarker}{\lw_iln_tag:Free_translation_marker}
+\NewCommandCopy{\lw_iln_var_opt:literaltranslationmarker}{\lw_iln_tag:Literal_translation_marker}
+\NewCommandCopy{\lw_iln_var_opt:extranotemarker}{\lw_iln_tag:Extra_note_marker}
+\NewCommandCopy{\lw_iln_var_opt:languageinfomarker}{\lw_iln_tag:Language_information_marker}
+\NewCommandCopy{\lw_iln_var_opt:gramjudgmarker}{\lw_iln_tag:Grammaticality_Judgment_marker}
+\NewCommandCopy{\lw_iln_var_opt:referencemarker}{\lw_iln_tag:Reference_marker}
+\NewCommandCopy{\lw_iln_var_opt:contextmarker}{\lw_iln_tag:Context_marker}
+
+\NewDocumentCommand{\lw_iln_var_opt:languageinfopos}{m}{%
+ \IfValueArgTF{#1}{head}{\RenewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo/{##1}}}{}
+ \IfValueArgTF{#1}{margin}{\RenewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo{##1}}}{}
+}
+
+\NewDocumentCommand{\lw_iln_var_opt:nointerlinear}{m}{%
+ \IfValueArgTF{#1}{true}%
+ {\def\lw_iln_var_num:interlinear_lines{0}}%
+ {\IfValueArgTF{#1}{false}%
+ {\relax}%
+ {\PackageWarning{interlinear}{nointerlinear option possible values: true, false}}%
+ }
+}
+\NewDocumentCommand{\lw_iln_var_opt:contextvoffset}{m}{\setlength{\lw_iln_var_dim:context_voffset}{#1}}
+
+% todo ii. Defining Default values
+
+%\def\lw_iln_var_opt:endchar{par}% possible values: par, lineend, return
+\def\lw_iln_var_opt:linesnumber{2}% possible values: 2, 3, full
+\def\lw_iln_var_num:interlinear_lines{\lw_iln_var_opt:linesnumber}
+% Setting markers
+\let\li\lw_iln_var_opt:languageinfomarker
+\let\rf\lw_iln_var_opt:referencemarker
+\let\gj\lw_iln_var_opt:gramjudgmarker
+\let\tx\lw_iln_var_opt:textmarker
+\let\mb\lw_iln_var_opt:morphbreakmarker
+\let\gl\lw_iln_var_opt:glossmarker
+\let\ps\lw_iln_var_opt:partofspeechmarker
+\let\ft\lw_iln_var_opt:freetranslationmarker
+\let\lt\lw_iln_var_opt:literaltranslationmarker
+\let\nt\lw_iln_var_opt:extranotemarker
+\def\lw_iln_var_opt:extranoteleftpunct#1{\def\lw_iln_var_token:extranote_left_punct{#1}}
+\def\lw_iln_var_opt:extranoterightpunct#1{\def\lw_iln_var_token:extranote_right_punct{#1}}
+
+% Setting formats (only available for interlinear/gloss lines, context name and extra notes)
+\def\lw_iln_var_opt:lineoneformat#1{\renewcommand{\lw_iln_fun_set:line_one_words_format}{#1}}
+\def\lw_iln_var_opt:linetwoformat#1{\renewcommand{\lw_iln_fun_set:line_two_words_format}{#1}}
+\def\lw_iln_var_opt:linethreeformat#1{\renewcommand{\lw_iln_fun_set:line_three_words_format}{#1}}
+\def\lw_iln_var_opt:linefourformat#1{\renewcommand{\lw_iln_fun_set:line_four_words_format}{#1}}
+\def\lw_iln_var_opt:exformat#1{\renewcommand{\lw_iln_fun_format:ex_text}{#1}}
+\def\lw_iln_var_opt:extranoteformat#1{\def\lw_iln_fun_format:extranote{#1}}
+\def\lw_iln_var_opt:contextnameformat#1{\def\lw_iln_fun_format:context_label{#1}}
+% Context label/name
+\def\lw_iln_var_opt:contextname#1{\def\lw_iln_var_name:context{#1}}
+
+% Defining CS for resetting default options (to be called at the begining of interlinear env)% ^rem the \setinterlinearstyle is meant to set globally the options for interlinear env. So don't use optional argument of interlinear env anymore since it will overwrite the values set up with this commands and the new values be considered the default ones. _rem
+\def\lw_iln_fun_reinitialize:interlinear_options{%
+ %\def\lw_iln_var_opt:endchar{par}% possible values: par, lineend, return
+ \def\lw_iln_var_opt:linesnumber{2}% possible values: 2, 3, full
+ % Setting markers
+ \let\li\lw_iln_var_opt:languageinfomarker%
+ \let\rf\lw_iln_var_opt:referencemarker%
+ \let\gj\lw_iln_var_opt:gramjudgmarker%
+ \let\tx\lw_iln_var_opt:textmarker
+ \let\mb\lw_iln_var_opt:morphbreakmarker%
+ \let\gl\lw_iln_var_opt:glossmarker%
+ \let\ps\lw_iln_var_opt:partofspeechmarker%
+ \let\ft\lw_iln_var_opt:freetranslationmarker%
+ \let\lt\lw_iln_var_opt:literaltranslationmarker%
+ \let\nt\lw_iln_var_opt:extranotemarker%
+ % Setting formats (only available for interlinear/gloss lines, context name and extra notes)
+ \lw_iln_var_opt:lineoneformat{\normalfont}%
+ \lw_iln_var_opt:linetwoformat{\normalfont}%
+ \lw_iln_var_opt:linethreeformat{\normalfont}%
+ \lw_iln_var_opt:linefourformat{\normalfont}%
+ \lw_iln_var_opt:exformat{\normalfont}
+ \lw_iln_var_opt:extranoteformat{\normalfont}%
+ \lw_iln_var_opt:contextnameformat{\normalfont}%
+ % Context label/name
+ \lw_iln_var_opt:contextname{Context:}%
+ \lw_iln_var_opt:extranoteleftpunct{{(}}%
+ \lw_iln_var_opt:extranoterightpunct{{)}}%
+ \lw_iln_var_opt:languageinfopos{margin}%
+ \lw_iln_var_opt:nointerlinear{false}%
+ \lw_iln_var_opt:contextvoffset{-1em}
+}
+
+% todo iii. Setting Options
+
+% Setting Ending Character for arguments (not yet available)
+%\define@key{interlinear}{endchar}{%
+ % ^action_name="Setting the value"
+% \def\lw_iln_var_opt:endchar{#1}
+ % _action
+ % ^action_name="Processing the option"
+ %
+ % _action
+%}
+
+% Setting the numbers of interlinear/gloss lines
+\define@key{interlinear}{linesnumber}{%
+ % ^action_name="Setting the value"
+ \def\lw_iln_var_opt:linesnumber{#1}
+ % _action
+}
+\define@key{interlinear}{nointerlinear}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:nointerlinear{#1}
+ % _action
+}
+
+% Setting the markers
+\define@key{interlinear}{textmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:textmarker}}
+\define@key{interlinear}{morphbreakmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:morphbreakmarker}}
+\define@key{interlinear}{glossmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:glossmarker}}
+
+\define@key{interlinear}{partofspeechmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:partofspeechmarker}}
+
+\define@key{interlinear}{freetranslationmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:freetranslationmarker}}
+
+\define@key{interlinear}{literaltranslationmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:literaltranslationmarker}}
+
+\define@key{interlinear}{extranotemarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:extranotemarker}}
+
+\define@key{interlinear}{languageinfomarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:languageinfomarker}}
+
+\define@key{interlinear}{gramjudgmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:gramjudgmarker}}
+
+\define@key{interlinear}{referencemarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:referencemarker}}
+
+\define@key{interlinear}{contextmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:contextmarker}}
+
+
+% Setting formats
+\define@key{interlinear}{lineoneformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:lineoneformat{#1}
+ % _action
+}
+\define@key{interlinear}{linetwoformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linetwoformat{#1}
+ % _action
+}
+\define@key{interlinear}{linethreeformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linethreeformat{#1}
+ % _action
+}
+\define@key{interlinear}{linefourformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linefourformat{#1}
+ % _action
+}
+\define@key{interlinear}{exformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:exformat{#1}
+ % _action
+}
+\define@key{interlinear}{extranoteformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoteformat{#1}
+ % _action
+}
+\define@key{interlinear}{contextnameformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextnameformat{#1}
+ % _action
+}
+
+% Other specifications
+\define@key{interlinear}{contextname}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextname{#1}
+ % _action
+}
+\define@key{interlinear}{contextvoffset}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextvoffset{#1}
+ % _action
+}
+\define@key{interlinear}{extranoteleftpunct}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoteleftpunct{#1}
+ % _action
+}
+\define@key{interlinear}{extranoterightpunct}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoterightpunct{#1}
+ % _action
+}
+\define@key{interlinear}{languageinfopos}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:languageinfopos{#1}
+ % _action
+}
+
+\newcommand{\interlinearstyle}[1]{%
+ \setkeys{interlinear}{#1}%
+ \lw_fun_helper:clear{\lw_iln_fun_reinitialize:interlinear_options}
+}
+\def\DeclareInterlinearStyle#1#2{%
+ \expandafter\def\csname lw_iln_var_sty:#1\endcsname{\interlinearstyle{#2}}}
+\def\UseInterlinearStyle#1{%
+ \expandafter\csname lw_iln_var_sty:#1\endcsname}
+\DeclareInterlinearStyle{default}{%
+ linesnumber=2,%
+ lineoneformat=\upshape,%
+ linetwoformat=\normalfont,%
+ linethreeformat=\normalfont,%
+ linefourformat=\normalfont,%
+ contextnameformat=\normalfont,%
+ extranoteformat=\normalfont,%
+ contextname={Context:},%
+ extranoteleftpunct={(},%
+ extranoterightpunct={)}%
+}
+\DeclareInterlinearStyle{nointerlinear}{%
+ nointerlinear=true,%
+ languageinfopos=head,%
+ freetranslationmarker=\ot,%
+ contextvoffset=.5em%
+}
+\DeclareInterlinearStyle{gsr}{%
+ linesnumber=2,%
+ lineoneformat=\itshape,%
+ linetwoformat=\normalfont,%
+ linethreeformat=\normalfont%
+}
+\DeclareInterlinearStyle{gsrnointerlinear}{%
+ nointerlinear=true,%
+ exformat=\itshape,%
+ languageinfopos=head,%
+ freetranslationmarker=\ot,%
+ contextvoffset=.5em%
+}
+
+\UseInterlinearStyle{gsr}% ^rem setting the default style to fit the GSR _rem
+
+\define@key{interlinear}{style}{%
+ % ^action_name="Setting the value"
+ \UseInterlinearStyle{#1}
+ % _action
+}
+
+
+% todo d. Defining Interlinear Env.
+\NewDocumentCommand{\lw_iln_fun_enter:interlinear}{}{\relax}% ^rem no_op command _rem
+\NewDocumentCommand{\lw_iln_fun_exit:interlinear}{}{%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{0}%
+ {\lw_iln_fun_close:ex_box}%
+ {\lw_iln_fun_make:trans_box%
+ \lw_iln_fun_make:extranote_box%
+ \lw_iln_fun_reinitialize:markers_value}%
+ }
+
+\NewDocumentEnvironment{interlinear}{O{}}%
+ {% ^rem Beginning of the internlinear env _rem
+ \lw_iln_fun_enter:interlinear%
+ \lw_iln_fun_reinitialize:interlinear_options%
+ \setkeys{interlinear}{#1}
+ }%
+ {% ^rem End of the interlinear env _rem
+ \lw_iln_fun_exit:interlinear%
+ }
+
+\makeatother%
+
+% ^action_name="Disabling LingWrit Syntax"
+\switchlwsyntaxoff
+% _action
+% ^action_name="Ending the code"
+\endinput%
+% _action
+
+% _code
+
+% ^_*
+
+% _package
diff --git a/macros/latex/contrib/isosafety/README.md b/macros/latex/contrib/isosafety/README.md
index 5cedddab81..575df1f210 100644
--- a/macros/latex/contrib/isosafety/README.md
+++ b/macros/latex/contrib/isosafety/README.md
@@ -4,6 +4,8 @@ isosafety is a LaTeX package that contains safety colors (ISO 3864) and safety s
Maintainer: BenSt099 (https://github.com/BenSt099/isosafety)
+Version 1.4
+
License: LPPL 1.3c
Note: This is **not** an **official** package from ISO. \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf b/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf
new file mode 100644
index 0000000000..0a5d219a95
--- /dev/null
+++ b/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/doc/isosafety-docs.tex b/macros/latex/contrib/isosafety/doc/isosafety-docs.tex
new file mode 100644
index 0000000000..ea2599aa3d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/doc/isosafety-docs.tex
@@ -0,0 +1,178 @@
+\documentclass{article}
+
+\usepackage{xcolor}
+\definecolor{Caution}{HTML}{F9A800}
+\definecolor{Warning}{HTML}{D05D29}
+\definecolor{Prohibition}{HTML}{9B2423}
+\definecolor{Mandatory}{HTML}{005387}
+\definecolor{Rescue}{HTML}{237F52}
+\definecolor{Backgrounds}{HTML}{ECECE7}
+\definecolor{Symbol}{HTML}{2B2B2C}
+\usepackage{array}
+\usepackage{hyperref}
+\usepackage{verbatim}
+\makeatletter
+\newcommand{\verbatimfontfamily}[1]{\def\verbatim@font{#1}}%
+\makeatother
+\usepackage{colortbl}
+\usepackage{geometry}
+\geometry{
+ left=2cm,
+ right=2cm,
+ top=3cm,
+ bottom=3cm
+}
+\usepackage{tcolorbox}
+
+\begin{document}
+
+\begin{center}
+ {\Huge isosafety} \vspace{5mm}
+
+ {\Large Version 1.4}\vspace{5mm}
+
+ {\Large August 31, 2024}\vspace{5mm}
+
+ \href{https://github.com/BenSt099/isosafety}{github.com/BenSt099/isosafety}
+\end{center}\vspace{5mm}
+
+\section{General information}
+
+This is the official documentation of the package \textbf{isosafety}. It provides ISO colors and signs according to the ISO standards
+3864 and 7010. It can be used to create instructions for chemical or physical experiments.\vspace{5mm}
+
+\noindent{\large \textbf{NOTE}}
+
+\noindent This is not an official package from the ISO. All signs are taken from Wikipedia.
+
+\section{Dependencies}
+
+This package has the following dependencies: \texttt{graphicx}, \texttt{xcolor}, \texttt{ifthen}, \texttt{xkeyval}
+
+\section{ISO Colors}
+
+Seven colors are defined which are also used to create the signs: \vspace{5mm}
+
+\renewcommand{\arraystretch}{1.2}
+ \begin{tabular}{|l|l|}
+ \hline
+ \textbf{Name} & \textbf{Colors} \\
+ \hline
+ Caution & \cellcolor{Caution} \\
+ Warning & \cellcolor{Warning} \\
+ Prohibition & \cellcolor{Prohibition} \\
+ Mandatory & \cellcolor{Mandatory} \\
+ Rescue & \cellcolor{Rescue} \\
+ Backgrounds & \cellcolor{Backgrounds} \\
+ Smybol & \cellcolor{Symbol} \\
+ \hline
+\end{tabular}\vspace{5mm}
+
+\noindent How to use: \vspace{3mm}
+
+\verbatimfontfamily{\ttfamily}
+
+\begin{verbatim}
+{\color{Mandatory} \textbf{Text with Mandatory color.}}
+\end{verbatim}\vspace{2mm}
+
+\noindent{\color{Mandatory} \textbf{Text with Mandatory color.}}
+
+\newpage
+
+\section{ISO Signs}
+
+\noindent This section deals with the construction of signs. To begin with, each sign is placed in a category, has a letter and a number: \vspace{5mm}
+
+\renewcommand{\arraystretch}{1.2}
+ \begin{tabular}{lll}
+ \hline
+ Category & Letter(s) & Numbers \\
+ \hline
+ Safe condition & E & (001 - 004, 007 - 070) \\
+ Crescent variant & CV & (003, 004, 009, 010, 011, 012, 013, 027, 028, 029, 064, 067) \\
+ Fire Protection & F & (001 - 019) \\
+ Mandatory & M & (001 - 060) \\
+ Prohibition & P & (001 - 074) \\
+ Warning & W & (001 - 080) \\
+ \hline
+\end{tabular}\vspace{5mm}
+
+\noindent The command to access a sign is:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ \Isosign{<Letter><Number>}
+ \end{verbatim}
+\end{tcolorbox}
+\vspace{5mm}
+
+\noindent This command constructs a path to a sign in your \TeX Live / Mik\TeX / \ldots $\;$ installation.
+To display a sign, use the following code:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ %%% Example file
+ \documentclass{article}
+
+ \usepackage{isosafety}
+
+ \usepackage{graphicx}
+
+ \begin{document}
+
+ \includegraphics{\Isosign{F001}}
+
+ \includegraphics[scale=2]{\Isosign{P074}}
+
+ \end{document}
+ \end{verbatim}
+\end{tcolorbox}
+
+\newpage
+
+\section{Known Issue}
+
+\noindent On some systems (mostly Windows), \TeX \hspace{1mm} is not able to find the pdfs properly. Since this is an issue that seems to exist only on certain systems and not all, please use the following
+workaround by providing the fullpath that leads to the installation directory
+of isosafety. This can be done by supplying it through the \textbf{fullpath}-option:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ %%% Example file
+ \documentclass{article}
+
+ % example path
+ \usepackage[ fullpath = /texlive/2024/texmf-dist/tex/latex/isosafety ]{isosafety}
+
+ \usepackage{graphicx}
+
+ \begin{document}
+
+ \includegraphics{\Isosign{F001}}
+
+ \includegraphics[scale=2]{\Isosign{P074}}
+
+ \end{document}
+ \end{verbatim}
+\end{tcolorbox}
+\vspace{5mm}
+
+\noindent If you are unsure about the path, simply execute
+\begin{verbatim}
+ kpsewhich isosafety.sty
+\end{verbatim}\vspace{3mm}
+
+\noindent in a terminal and a path will be returned. The path that is given in the example is the typical path on most systems.
+\vspace{5mm}
+
+\noindent\textbf{NOTE}: On Windows, the path should also be given with foreslashes (just like in the example). \\
+
+\noindent\textbf{NOTE}: The last directory in the path \textit{does not} end with a foreslash (just like in the example). \\
+
+\noindent\textbf{NOTE}: For a complete overview of the available signs, take a look at \href{https://en.wikipedia.org/wiki/ISO_7010}{Wikipedia}.
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.dtx b/macros/latex/contrib/isosafety/isosafety.dtx
deleted file mode 100644
index da754c4932..0000000000
--- a/macros/latex/contrib/isosafety/isosafety.dtx
+++ /dev/null
@@ -1,143 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2023 by BenSt099
-% -------------------------------------------------------
-%
-% This file may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% \fi
-%
-% \iffalse
-%<*driver>
-\ProvidesFile{isosafety.dtx}
-%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-%<package>\ProvidesPackage{isosafety}
-%<*package>
- [2023/11/09 v1.1 ISO Safety Colors And Safety Signs]
-
-\RequirePackage{graphicx}
-\RequirePackage{xcolor}
-%</package>
-%
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{isosafety}[2023/11/09]
-\usepackage{hyperref}
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\begin{document}
- \DocInput{isosafety.dtx}
- \PrintChanges
- \PrintIndex
-\end{document}
-%</driver>
-% \fi
-%
-%
-% \changes{v1.1}{2023/11/09}{Beta version}
-%
-% \GetFileInfo{isosafety.sty}
-%
-% \DoNotIndex{\newcommand,\newenvironment}
-%
-%
-% \title{The \textsf{isosafety} package\thanks{This document
-% corresponds to \textsf{isosafety}~\fileversion, dated \filedate.}}
-% \author{BenSt099 \\ \texttt{github.com/BenSt099}}
-%
-% \maketitle
-%
-% \section{Introduction}
-%
-% This package provides ISO colors and ISO signs according to the ISO standards 3864 and 7010.
-% It can be useful when creating instructions for chemical or physical experiments.
-%
-% \section{Dependencies}
-%
-% The package has the following dependencies: \texttt{graphicx}, \texttt{xcolor}.
-%
-%
-% \section{Usage}
-%
-% \subsection{ISO colors}
-%
-% There are 6 colors that are also used in the signs: \vspace*{5mm}
-%
-% \begin{tabular}{cc}
-% Warning & {\color{Warning} Warning Color} \\
-% Prohibition & {\color{Prohibition} Prohibition Color} \\
-% Mandatory & {\color{Mandatory} Mandatory Color} \\
-% Rescue & {\color{Rescue} Rescue Color} \\
-% Backgrounds & {\color{Backgrounds} Backgrounds Color} \\
-% Symbol & {\color{Symbol} Symbol Color} \\
-% \end{tabular}
-%
-% \subsection{Colors - Example}
-%
-% \begin{verbatim}
-% {\color{Mandatory} Text with mandatory color}
-% \end{verbatim}
-%
-% \subsection{ISO signs}
-%
-% The signs from ISO are placed in a category, have a letter and a number
-%
-% \begin{itemize}
-% \item Safe condition - Letter E (001 - 070)
-% \item Crescent variant - CV (003, 004, 009, 010, 011, 012, 013, 027, 028, 029, 064, 067)
-% \item Fire Protection - Letter F (001 - 019)
-% \item Mandatory - Letter M (001 - 060)
-% \item Prohibition - Letter P (001 - 074)
-% \item Warning - Letter W (001 - 080)
-% \end{itemize}
-%
-% The command to access these signs has the following syntax:
-%
-% \begin{verbatim}
-% \Isosign{{Letter}{Number}}
-% \end{verbatim}
-%
-% \subsection{Signs - Example}
-%
-% Imagine you want to put the sign of a fire extinguisher in your document.
-% Use the following command:
-%
-% \begin{verbatim}
-% \includegraphics{\Isosign{F001}}
-% \end{verbatim}
-%
-% \includegraphics{\Isosign{F001}}
-% \vspace*{5mm}
-%
-% \noindent For an overview, take a look at \href{https://en.wikipedia.org/wiki/ISO_7010}{Wikipedia}
-%
-% \StopEventually{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\definecolor{Warning}{HTML}{F9A800}
-\definecolor{Prohibition}{HTML}{9B2423}
-\definecolor{Mandatory}{HTML}{005387}
-\definecolor{Rescue}{HTML}{237F52}
-\definecolor{Backgrounds}{HTML}{ECECE7}
-\definecolor{Symbol}{HTML}{2B2B2C}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\Isosign}[1]{isosafety-pdfs/ISO_7010_#1.pdf}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \Finale
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.pdf b/macros/latex/contrib/isosafety/isosafety.pdf
deleted file mode 100644
index 09d630c77a..0000000000
--- a/macros/latex/contrib/isosafety/isosafety.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf
index c3671853cc..c3671853cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf
index 426766af28..426766af28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf
index 4371233c53..4371233c53 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf
index 4f7c7b0c4e..4f7c7b0c4e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf
index b53137946c..b53137946c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf
index ee3d79d2fe..ee3d79d2fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf
index 54a7ef44db..54a7ef44db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf
index c2c5f6e332..c2c5f6e332 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf
index 005109c5c8..005109c5c8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf
index 070e7a2743..070e7a2743 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf
index 9ef30ac6e6..9ef30ac6e6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf
index d0e6340114..d0e6340114 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf
index abc60c2691..abc60c2691 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf
index fbe80ce3f8..fbe80ce3f8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf
index 21dfafc605..4863d6ec07 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf
index 3663147e2e..3663147e2e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf
index cd21e70dc4..cd21e70dc4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf
index 9d651b8d9e..9d651b8d9e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf
index 93822c975e..93822c975e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf
index ef0b21d588..ef0b21d588 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf
index 127667563d..127667563d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf
index 98cb2bd8b4..98cb2bd8b4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf
index 0d89ed3065..0d89ed3065 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf
index 0a9e382903..0a9e382903 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf
index d8e8f0e401..d8e8f0e401 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf
index 06065e969e..06065e969e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf
index fc1ca1bdf0..fc1ca1bdf0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf
index 4b05b96f89..4b05b96f89 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf
index 45fe98dcd7..45fe98dcd7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf
index 7b85394d63..7b85394d63 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf
index 187694547c..187694547c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf
index 2e772aa41a..2e772aa41a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf
index 9a14e4d901..9a14e4d901 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf
index 3fefa8edfd..3fefa8edfd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf
index 026668d438..026668d438 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf
index 3c9979f590..3c9979f590 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf
index fb532c645c..fb532c645c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf
index affca9c7f5..affca9c7f5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf
index 7faeee6464..7faeee6464 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf
index cf1a93fe95..cf1a93fe95 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf
index 1b8b8f3b7c..1b8b8f3b7c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf
index b70eefa505..b70eefa505 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf
index a49b3fe4bf..a49b3fe4bf 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf
index 44341bd96b..44341bd96b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf
index c79abaa600..c79abaa600 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf
index 0bdad717ba..0bdad717ba 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf
index 65d6a6f2f2..65d6a6f2f2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf
index a99e0485f3..a99e0485f3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf
index b8247de081..b8247de081 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf
index f49aabdf1e..f49aabdf1e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf
index 9cfa31db6c..9cfa31db6c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf
index 917e764de5..917e764de5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf
index 7b126756d4..7b126756d4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf
index 8049c34a95..8049c34a95 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf
index 7f57b529fe..7f57b529fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf
index 3af4a0a9b9..3af4a0a9b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf
index 823f7704fe..823f7704fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf
index 2cd85b1273..2cd85b1273 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf
index 67ae74aeb9..67ae74aeb9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf
index 1c0120948d..1c0120948d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf
index 9ac16abe7e..9ac16abe7e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf
index 057a6590ad..057a6590ad 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf
index b050874db9..b050874db9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf
index f4de9c9b1f..f4de9c9b1f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf
index a05639bfd2..a05639bfd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf
index 015f18e06d..015f18e06d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf
index c3da1ac56b..c3da1ac56b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf
index fac59cd693..fac59cd693 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf
index 45a8ae2bd2..45a8ae2bd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf
index 7a0e488172..7a0e488172 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf
index 2e3b5992b3..2e3b5992b3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf
index 69fb85f956..69fb85f956 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf
index 5eea8873cc..5eea8873cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf
index ad4fdc7034..ad4fdc7034 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf
index 60400eaa5e..60400eaa5e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf
index 2784052b1b..2784052b1b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf
index 0d74c205c8..0d74c205c8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf
index b5e6b2c220..b5e6b2c220 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf
index 7554106d64..7554106d64 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf
index 349878fd5f..349878fd5f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf
index 2ba7a82fbc..2ba7a82fbc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf
index 54b6f5da2c..54b6f5da2c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf
index ed273764db..ed273764db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf
index 1e8a6103e0..1e8a6103e0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf
index c9f1f7bccb..c9f1f7bccb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf
index b0e5f32cbe..b0e5f32cbe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf
index ba9cfa7c4b..ba9cfa7c4b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf
index cc4b7f52b0..cc4b7f52b0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf
index 785c5f9122..785c5f9122 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf
index 12ff257deb..12ff257deb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf
index ddd5706419..ddd5706419 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf
index 2772821d84..2772821d84 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf
index 2aaf0826af..2aaf0826af 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf
index cf3ae1c46f..cf3ae1c46f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf
index 06ff3352a3..06ff3352a3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf
index c9a67b8129..c9a67b8129 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf
index 57aa49d669..57aa49d669 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf
index a331b56a36..a331b56a36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf
index bf8ac9665d..bf8ac9665d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf
index 6fe904c927..6fe904c927 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf
index caaddd06b5..caaddd06b5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf
index 28795830dc..28795830dc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf
index 56aaa82124..d3f23bd662 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf
index 5da66c41a2..5da66c41a2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf
index 5cc9f1a019..5cc9f1a019 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf
index e8de5ffce9..e8de5ffce9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf
index c915a508c2..c915a508c2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf
index 90334f320f..90334f320f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf
index 795558d1b5..795558d1b5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf
index 33f20feb1a..33f20feb1a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf
index a9133b9fbe..a9133b9fbe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf
index 8731ca26ff..8731ca26ff 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf
index 1e0e1991ba..1e0e1991ba 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf
index c301799f8c..c301799f8c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf
index 403e4af957..403e4af957 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf
index c1684c5612..c1684c5612 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf
index 899dc343f7..899dc343f7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf
index a05f2f9c28..a05f2f9c28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf
index e8e9b4444b..e8e9b4444b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf
index e8c5b7be31..e8c5b7be31 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf
index 422ada6ac3..422ada6ac3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf
index 48cf114099..48cf114099 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf
index 95cacc24f2..95cacc24f2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf
index 96d5a96820..96d5a96820 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf
index 57ff5fc421..57ff5fc421 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf
index 24fb157422..24fb157422 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf
index 8c0888c998..8c0888c998 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf
index b23dff04e0..b23dff04e0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf
index 58ecb0cda8..58ecb0cda8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf
index 7fd3c279dc..7fd3c279dc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf
index 5800fc4b44..5800fc4b44 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf
index aed2ce3967..aed2ce3967 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf
index d419f6aeeb..d419f6aeeb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf
index b3c84ef022..b3c84ef022 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf
index a8088da27f..a8088da27f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf
index 32f5f03eab..32f5f03eab 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf
index bbe60d2b2c..bbe60d2b2c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf
index c5be6a8394..c5be6a8394 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf
index 7f6c9cac5b..7f6c9cac5b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf
index 240f54561f..240f54561f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf
index 3cec333117..3cec333117 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf
index c4e9b90c42..c4e9b90c42 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf
index e18044d5f1..e18044d5f1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf
index 1c7dc014f0..1c7dc014f0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf
index 96c4433dcb..96c4433dcb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf
index a738ce3b0c..a738ce3b0c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf
index 913fe8388a..913fe8388a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf
index c2e3ba295e..c2e3ba295e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf
index 841dcfc799..841dcfc799 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf
index 5d9fb414b9..5d9fb414b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf
index 3124ec47c6..3124ec47c6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf
index e146dadce7..e146dadce7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf
index b744fbd6bd..b744fbd6bd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf
index 42b1a3d475..42b1a3d475 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf
index 8a0fa9e817..8a0fa9e817 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf
index d16a09083f..d16a09083f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf
index f97c260b8a..f97c260b8a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf
index 373633588c..373633588c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf
index 4204639a36..4204639a36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf
index cbff0bd974..cbff0bd974 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf
index 3d70a21875..3d70a21875 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf
index 7557ddb6b3..7557ddb6b3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf
index 47f4f06543..47f4f06543 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf
index d81b6c5e1a..d81b6c5e1a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf
index 7ef93afe83..7ef93afe83 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf
index 16b5b94fbb..16b5b94fbb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf
index 8aedd6064b..8aedd6064b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf
index 494c68d1df..494c68d1df 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf
index 42d5f63dde..42d5f63dde 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf
index b196406cb8..b196406cb8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf
index 6f94e89b1f..6f94e89b1f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf
index 40f30b66a3..40f30b66a3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf
index 7de907b497..7de907b497 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf
index 26f222085e..26f222085e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf
index 07dc17d10e..07dc17d10e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf
index 1649aaaed1..1649aaaed1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf
index 567db7aa6f..567db7aa6f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf
index 1a93bf6a57..1a93bf6a57 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf
index 52a3486198..52a3486198 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf
index b3221c84d7..b3221c84d7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf
index bc61ff3957..bc61ff3957 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf
index cfdcc65602..cfdcc65602 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf
index 0f63052829..0f63052829 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf
index 14622fd474..14622fd474 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf
index 287fa92485..287fa92485 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf
index fbc0e109ac..fbc0e109ac 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf
index cb3e49f544..cb3e49f544 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf
index 021c0b9795..021c0b9795 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf
index 421ee50f92..421ee50f92 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf
index 584f20d8e7..584f20d8e7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf
index f7d6e8f944..f7d6e8f944 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf
index d8ee13c5fd..d8ee13c5fd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf
index d42d57242c..d42d57242c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf
index 555a6afe24..555a6afe24 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf
index 6a6563ca97..6a6563ca97 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf
index ddaf05f9ed..ddaf05f9ed 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf
index 0a41c0d8b6..0a41c0d8b6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf
index bfeec12e1e..bfeec12e1e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf
index 6da07255e5..6da07255e5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf
index 8a77221585..8a77221585 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf
index a4e069ba9a..a4e069ba9a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf
index 81cf8f7189..81cf8f7189 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf
index 16726e7cf2..16726e7cf2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf
index 320c0f6c5d..320c0f6c5d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf
index de38a973bd..de38a973bd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf
index 30b9137f54..30b9137f54 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf
index e7ebbd1202..e7ebbd1202 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf
index c0cb30329d..c0cb30329d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf
index c4f9032953..c4f9032953 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf
index 1aa30711be..1aa30711be 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf
index 5e75ac56a2..5e75ac56a2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf
index 39fbd4b6af..39fbd4b6af 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf
index 561d15386b..561d15386b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf
index 2c984d0b7e..2c984d0b7e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf
index 886365621e..886365621e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf
index e82cdecead..e82cdecead 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf
index 46a6dc0b1c..46a6dc0b1c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf
index b152234d17..b152234d17 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf
index 04327846dd..04327846dd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf
index a3a86b1252..a3a86b1252 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf
index bc4e823a18..bc4e823a18 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf
index feaf4db700..feaf4db700 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf
index f0a3cf25b6..f0a3cf25b6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf
index ca0ad4180a..ca0ad4180a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf
index f8de06dbd8..f8de06dbd8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf
index 9de356ab4d..9de356ab4d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf
index 93c6e07dd2..93c6e07dd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf
index 34b973fa36..34b973fa36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf
index 882eec6982..882eec6982 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf
index 85c8329f27..85c8329f27 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf
index a70fc01368..a70fc01368 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf
index b0dcdbdd31..b0dcdbdd31 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf
index dbd0eece86..dbd0eece86 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf
index 93e4ff1096..93e4ff1096 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf
index cd4e5efe71..cd4e5efe71 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf
index e9718ec0b9..e9718ec0b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf
index 52821d3ee2..52821d3ee2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf
index e0af280633..e0af280633 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf
index 5a8cd08340..5a8cd08340 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf
index 5aee6b6eeb..5aee6b6eeb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf
index 2279b4802e..2279b4802e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf
index 9dda0f4ee9..9dda0f4ee9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf
index 8a70dd40fc..8a70dd40fc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf
index 5feeebec8d..5feeebec8d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf
index fed0023c08..6edd5cce7c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf
index 22e6c03d15..22e6c03d15 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf
index 0ffc581a81..0ffc581a81 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf
index 0a8f3c6a98..0a8f3c6a98 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf
index 1635032be1..1635032be1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf
index e7f3eaa7e3..e7f3eaa7e3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf
index f56cfa12f4..f56cfa12f4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf
index 37445e7a28..37445e7a28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf
index 1e06b95eab..1e06b95eab 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf
index d60016dc80..d60016dc80 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf
index bf13211210..bf13211210 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf
index d7b080a243..d7b080a243 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf
index c1148bf3e6..c1148bf3e6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf
index 1f94d88dde..1f94d88dde 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf
index b51f591e19..b51f591e19 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf
index 299c473c61..299c473c61 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf
index 06a2a1730e..06a2a1730e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf
index b26c8d242e..b26c8d242e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf
index 6991d20397..6991d20397 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf
index 3b04fca386..3b04fca386 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf
index 874d5d1856..874d5d1856 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf
index 954c565b07..954c565b07 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf
index e05340bf57..e05340bf57 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf
index b519520de2..b519520de2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf
index 8b3c75efa4..8b3c75efa4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf
index 82fdb9e25a..82fdb9e25a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf
index 20d7fecebf..20d7fecebf 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf
index 1c99515ed9..1c99515ed9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf
index 3941b25097..3941b25097 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf
index c6416f08ea..c6416f08ea 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf
index 9321af66db..9321af66db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf
index 55ead51620..55ead51620 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf
index e262f16d1d..e262f16d1d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf
index e6d68cba29..e6d68cba29 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf
index d1d0f0b781..d1d0f0b781 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf
index 10b71d56d7..10b71d56d7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf
index ed0b84886f..ed0b84886f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf
index 814955db23..814955db23 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf
index c2f4bcb9b8..c2f4bcb9b8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf
index b0e7c09dc4..b0e7c09dc4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf
index 9ad59817a5..9ad59817a5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf
index 8013e0e966..8013e0e966 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf
index 2b3f5323d9..2b3f5323d9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf
index c61a359de6..c61a359de6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf
index 6f3b502881..6f3b502881 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf
index a4e2e379cc..a4e2e379cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf
index a6cc2f357e..a6cc2f357e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf
index 03037b8f9d..03037b8f9d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf
index 4947b7f529..4947b7f529 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf
index fa0dbad4ee..fa0dbad4ee 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf
index 38168b8b90..38168b8b90 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf
index 0bc81af20e..0bc81af20e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf
index 75f8625838..75f8625838 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf
index f13b05c99f..f13b05c99f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf
index 92afceab2f..92afceab2f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf
index d891a4bdc7..d891a4bdc7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf
index 0da984a06f..0da984a06f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf
index 494ab14531..494ab14531 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf
index 4cd988cba7..4cd988cba7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf
index 0e55001c94..0e55001c94 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf
index 7b8a9c0839..7b8a9c0839 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf
index 0f6f5fcd9b..0f6f5fcd9b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf
index b6ec9d92f3..b6ec9d92f3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf
index 6e8b28d276..6e8b28d276 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf
index 32709b9144..32709b9144 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf
index db62ce47be..db62ce47be 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf
index 867eb1b6c1..867eb1b6c1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf
index 78e325ce3d..78e325ce3d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf
index b0b0b76b90..b0b0b76b90 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/tex/isosafety.sty b/macros/latex/contrib/isosafety/tex/isosafety.sty
new file mode 100644
index 0000000000..40cf307628
--- /dev/null
+++ b/macros/latex/contrib/isosafety/tex/isosafety.sty
@@ -0,0 +1,47 @@
+%% Copyright (C) 2024 by BenSt099
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{isosafety}
+[2024/08/31 v1.4 ISO Safety Colors And Safety Signs]
+
+\RequirePackage{graphicx}
+\RequirePackage{xcolor}
+\RequirePackage{ifthen}
+\RequirePackage{xkeyval}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\definecolor{Caution}{HTML}{F9A800}
+\definecolor{Warning}{HTML}{D05D29}
+\definecolor{Prohibition}{HTML}{9B2423}
+\definecolor{Mandatory}{HTML}{005387}
+\definecolor{Rescue}{HTML}{237F52}
+\definecolor{Backgrounds}{HTML}{ECECE7}
+\definecolor{Symbol}{HTML}{2B2B2C}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\isosafetypath}{false}
+\DeclareOptionX{fullpath}{\renewcommand{\isosafetypath}{#1}}
+\ProcessOptionsX\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifthenelse{\equal{\isosafetypath}{false}}
+{\newcommand{\Isosign}[1]{/isosafety-pdfs/ISO_7010_#1.pdf}}
+{\newcommand{\Isosign}[1]{\isosafetypath /isosafety-pdfs/ISO_7010_#1.pdf}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `isosafety.sty'. \ No newline at end of file
diff --git a/macros/latex/contrib/joinbox/README.md b/macros/latex/contrib/joinbox/README.md
index 4b3b04cae9..e0bbb25ce0 100644
--- a/macros/latex/contrib/joinbox/README.md
+++ b/macros/latex/contrib/joinbox/README.md
@@ -35,7 +35,7 @@ joinbox 盒子拼接宏包
Copyright and Licence
---------------------
- Copyright (C) 2020-2023 by Nan Geng <nangeng@nwafu.edu.cn>
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/joinbox/joinbox.pdf b/macros/latex/contrib/joinbox/joinbox.pdf
index 0e1fd27006..cbdbcacb81 100644
--- a/macros/latex/contrib/joinbox/joinbox.pdf
+++ b/macros/latex/contrib/joinbox/joinbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/joinbox/joinbox.sty b/macros/latex/contrib/joinbox/joinbox.sty
index 06077c23f1..68e54c3a20 100644
--- a/macros/latex/contrib/joinbox/joinbox.sty
+++ b/macros/latex/contrib/joinbox/joinbox.sty
@@ -7,7 +7,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\ProvidesExplPackage{joinbox}{2023-08-21}{v1.0.2}
+\ProvidesExplPackage{joinbox}{2024-09-09}{v1.0.3}
{Join figures to same height or width with LaTeX3}
\RequirePackage{xparse}
@@ -42,7 +42,6 @@
% 函数变体
\cs_generate_variant:Nn \hcoffin_set:Nn { Nx }
-
% 定义变量
\bool_new:N \l__joinbox_vertical_bool
\bool_new:N \l__joinbox_out_scale_bool
@@ -77,7 +76,8 @@
baseline .value_required:n = true,
baseline .choices:nn = { t, vc, H, b }
{
- \int_set_eq:NN \l__joinbox_baseline_int \l_keys_choice_int
+ \int_set_eq:NN \l__joinbox_baseline_int
+ \l_keys_choice_int
},
baseline .default:n = vc,
baseline .initial:n = b,
@@ -92,19 +92,19 @@
\bool_set_false:N \l__joinbox_out_scale_bool
}{
\bool_set_true:N \l__joinbox_out_scale_bool
- \dim_set:Nn \l__joinbox_out_length_dim { \dim_eval:n{ #1 } }
+ \dim_set:Nn \l__joinbox_out_length_dim
+ { \dim_eval:n{ #1 } }
}
}
},
outlen .default:n = 0pt,
outlen .initial:n = 0pt,
- % 拼音间距
+ % 拼接间距
sep .dim_set:N = \l__joinbox_sep_dim,
sep .default:n = 0pt,
sep .initial:n = 0pt,
- % unknown .code:n = { \__joinbox_error:n { unknown-option } }
unknown .code:n = \__joinbox_unknown_key:V \l_keys_key_str,
}
@@ -116,8 +116,7 @@
{ vc } { \int_set:Nn \l__joinbox_baseline_int { 2 } }
{ H } { \int_set:Nn \l__joinbox_baseline_int { 3 } }
{ b } { \int_set:Nn \l__joinbox_baseline_int { 4 } }
- }
- {
+ }{
% 转换为token
\tl_set_rescan:Nnn \l_tmpa_tl {} {#1}
% 计算尺寸
@@ -138,12 +137,9 @@
}
\cs_generate_variant:Nn \__joinbox_unknown_key:n { V }
-% \msg_new:nnn { joinbox } { unknown-option }
-% { package~ option~ "\l_keys_key_tl"~ is~ unknown. }
-
%% 参数设置用户接口
\NewDocumentCommand \joinset { m }
- { \keys_set:nn { joinset } {#1} }
+ { \keys_set:nn { joinbox } {#1} }
% 计算box盒子的总高度
% #1---盒子变量
@@ -208,7 +204,8 @@
\dim_set_eq:NN \l__joinbox_min_height_dim \l_tmpb_dim
}
- \bool_if:nT { !(\l__joinbox_only_first_bool) && !(\l__joinbox_only_second_bool) }
+ \bool_if:nT { !(\l__joinbox_only_first_bool) &&
+ !(\l__joinbox_only_second_bool) }
{
% 比较并记录最小宽度
\dim_set:Nn \l__joinbox_min_width_dim
@@ -274,10 +271,12 @@
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_out_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_out_coffin }
}
}
@@ -286,10 +285,12 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
@@ -298,11 +299,13 @@
\coffin_set_eq:NN \l__joinbox_out_coffin \l__joinbox_tmpa_coffin
}
- \bool_if:nT { !(\l__joinbox_only_first_bool) && !(\l__joinbox_only_second_bool) }
+ \bool_if:nT { !(\l__joinbox_only_first_bool) &&
+ !(\l__joinbox_only_second_bool) }
{
% 将第2个盒子拼接到第一个盒子
\coffin_join:NnnNnnnn \l__joinbox_out_coffin
- { hc } { b } \l__joinbox_tmpa_coffin { hc } { t } { 0pt } { -\l__joinbox_sep_dim }
+ { hc } { b } \l__joinbox_tmpa_coffin { hc } { t }
+ { 0pt } { -\l__joinbox_sep_dim }
}
% 按指定输出宽度缩放输出盒子
@@ -310,10 +313,12 @@
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_width_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_width_dim }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_width_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_width_dim }
}
}
@@ -329,10 +334,12 @@
% 按最小高度缩放第1个盒子
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
}
% 处理第2个盒子
@@ -344,25 +351,30 @@
% 按最小高度缩放第2个盒子
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
% 将第2个盒子拼接到第1个盒子
\coffin_join:NnnNnnnn \l__joinbox_out_coffin
- { vc } { r } \l__joinbox_tmpa_coffin { vc } { l } { \l__joinbox_sep_dim } { 0pt }
+ { vc } { r } \l__joinbox_tmpa_coffin { vc } { l }
+ { \l__joinbox_sep_dim } { 0pt }
% 按指定输出高度缩放输出盒子
\bool_if:NT \l__joinbox_out_scale_bool
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_height_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_height_dim }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_height_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_height_dim }
}
}
@@ -425,19 +437,23 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
}
}
@@ -491,19 +507,23 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
}
}
@@ -595,7 +615,7 @@
% 被拼接对象同时为空,无需拼接
\msg_new:nnn { joinbox } { empty-objs }
- { The~two~objects~which~was~joined~are~empty. }
+ { The~two~objects~which~were~joined~are~empty. }
% 图像拼接用户接口
% 将指定文件名列表中的图像拼接成一个盒子
diff --git a/macros/latex/contrib/joinbox/joinbox.tex b/macros/latex/contrib/joinbox/joinbox.tex
index 3c021e196d..3f6b64d4bc 100644
--- a/macros/latex/contrib/joinbox/joinbox.tex
+++ b/macros/latex/contrib/joinbox/joinbox.tex
@@ -119,7 +119,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.0.2}
+\def\vers{\texttt{v1.0.3}
\thanks{\url{https://gitee.com/nwafu_nan/joinbox}}
}
diff --git a/macros/latex/contrib/jsonparse/README.md b/macros/latex/contrib/jsonparse/README.md
index c4df9ad419..193df70511 100644
--- a/macros/latex/contrib/jsonparse/README.md
+++ b/macros/latex/contrib/jsonparse/README.md
@@ -1,4 +1,4 @@
-![Version 0.8.7](https://img.shields.io/badge/version-0.8.7-blue)
+![Version 0.9.5](https://img.shields.io/badge/version-0.9.5-blue)
![Jason, the JSON parsing horse](https://github.com/jasperhabicht/jsonparse/assets/6378801/ddfddc70-bf5f-4121-ba45-4b9128875d85)
@@ -47,4 +47,3 @@ We can store it in the token variable `\myJSONdata` using the command `\JSONPars
This package including all files is subject to the LPPL 1.3c license. Copyright 2024 Jasper Habicht (mail(at)jasperhabicht.de).
Jason, the JSON parsing horse: Copyright 2024 Hannah Klöber.
-
diff --git a/macros/latex/contrib/jsonparse/jason/jason.pdf b/macros/latex/contrib/jsonparse/jason/jason.pdf
index 44ff3db133..2f9a8bfc7f 100644
--- a/macros/latex/contrib/jsonparse/jason/jason.pdf
+++ b/macros/latex/contrib/jsonparse/jason/jason.pdf
Binary files differ
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
index e52f8631a0..02477b4217 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.tex b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
index 7e775f7499..279ea209a6 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.tex
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
@@ -11,8 +11,8 @@
% This work has the LPPL maintenance status `maintained'.
%
\documentclass[a4paper]{article}
-\def\jsonparsefileversion{0.8.7}
-\def\jsonparsefiledate{8 August 2024}
+\def\jsonparsefileversion{0.9.5}
+\def\jsonparsefiledate{27 October 2024}
\usepackage[T1]{fontenc}
\usepackage{Alegreya}
@@ -200,6 +200,10 @@
\changes{v0.8.5}{2024/05/05}{Enhanced key management.}
\changes{v0.8.6}{2024/05/09}{Bug fix in nesting function.}
\changes{v0.8.7}{2024/08/08}{Corrections in documentation, error messages.}
+\changes{v0.9.0}{2024/08/27}{Adaption to updated verbatim tokenization.}
+\changes{v0.9.1}{2024/09/21}{Added functions to test for valid JSON numbers.}
+\changes{v0.9.3}{2024/10/24}{Fixed a bug that prevented tabs in source from being parsed properly.}
+\changes{v0.9.5}{2024/10/27}{Streamlining of code, clarification of explanations in documentation.}
\begin{document}
\vspace*{-1cm}
@@ -230,15 +234,17 @@ The package can be loaded with the option \macro{debug}. It will then output to
This key can be set either as package option or using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
-\section{Escaping and special treatment of the input}\label{sec:escaping}
+\section{General remarks of the parsing procedure}
+
+In general, the package will read and store the JSON source and data as string, which means that all characters have category code 12 (``other''), except for spaces and (horizontal) tabs which have category code 10 (``space''). The \macro{\endlinechar} value is set to $-1$ which means that linefeeds and carriage returns are ignored by TeX. These settings are in line with the JSON specification of handling whitespace. Furthermore, if PDFLaTeX is used, the upper-half of the 8-bit range is set to ``active''. Additionally, JSON defines a small set of escape sequences and in order to be able to process these, the category code of the backslash is set to 0 (``escape'').
-In general, the package reads the JSON source as string, which means that all characters have category code 12 (other), except for spaces which have category code 10 (space). The \macro{\endlinechar} value is set to $-1$. Furthermore, if PDFLaTeX is used, the upper-half of the 8-bit range is set to ``active''. JSON, however, defines a small set of escape sequences and in order to be able to process these, the category code of the backslash is set to 0 (escpape).
+\section{Escaping and special treatment of the input}\label{sec:escaping}
-JSON strings cannot contain the two characters \macro{"} and \macro{\}. These two characters need to be escaped with a preceding backslash (\macro{\}). This package therefore redefines locally the TeX control symbols \macro{\"}, \macro{\/}, \macro{\\}, \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} and \macro{\u}. These control symbols are prevented from expanding during parsing. For example, \macro{\"} is first defined as \macro{\exp_not:N \"} and only hen typeset, \macro{\"} is expanded to \macro{"}, which ensures that strings are parsed properly.
+JSON strings cannot contain the two characters \macro{"} and \macro{\}. These two characters need to be escaped with a preceding backslash (\macro{\}). This package therefore redefines locally the TeX control symbols \macro{\"}, \macro{\/}, \macro{\\}, \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} and \macro{\u}. These control symbols are prevented from expanding during parsing. For example, \macro{\"} is first defined as \macro{\exp_not:N \"} and only when typeset, \macro{\"} is expanded to \macro{"}, which ensures that strings are parsed properly.
-Similarly, the control symbol \macro{\/} expands eventually to \macro{/} and \macro{\\} to \macro{\c_backslash_str} (i.\,e. a backslash with category code 12). The escape sequence \macro{\u} followed by a hex value consisting of four digits eventually eventually expands to \macro{\char"} followed by the relevant four hex digits. The JSON escape sequences \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} or \macro{\u} (followed by a hex value) eventually expand to token variables of which the contents can be set using the relevant \macro{replacement} key. See more on setting options below in section \ref{sec:options}.
+Similarly, the control symbol \macro{\/} expands eventually to \macro{/} and \macro{\\} to \macro{\c_backslash_str} (i.\,e. a backslash with category code 12). The escape sequence \macro{\u} followed by a hex value consisting of four digits eventually expands to \macro{\char"} followed by the relevant four hex digits. The JSON escape sequences \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r} and \macro{\t} eventually expand to token variables of which the contents can be set using the relevant \macro{replacement} key. See more on setting options below in section \ref{sec:options}.
-It is possible to insert TeX macros to the JSON source that will eventually be parsed when typesetting. Backslashes of TeX macros need to be escaped by another backslash. The TeX macros \macro{\"} and \macro{\\} must be escaped twice in the JSON source, so that they become \macro{\\\"} and \macro{\\\\} respectively.
+It is possible to insert TeX macros to the JSON source that will eventually be parsed when typesetting. Backslashes of TeX macros need to be escaped by another backslash. The TeX macros \macro{\"} and \macro{\\} must be escaped twice in the JSON source so that they become \macro{\\\"} and \macro{\\\\} respectively.
\begin{macrodef}
|\x|{<token variable name>}{<key>}
@@ -257,7 +263,7 @@ Using the control sequence \macro{\x}, it is possible to nest JSON strings into
\JSONParseValue{\myJSONdataB}{d.b}
\end{codeexamplecolumns}
-Note that the control sequence \macro{\x} is replaced by the value exactly. Therefore, if the value happens to be a string, the control sequence \macro{\x} should be placed between quotation marks (\macro{"}) in order for the resulting string to be valid JSON.
+Note that the control sequence \macro{\x} is replaced by the value exactly. Therefore, if the value happens to be a string, the control sequence \macro{\x} should be placed between quotation marks (\macro{"}) in order for the resulting string to be valid JSON. The control sequence \macro{\x} is only available inside the \macro{\JSONParse} command, but not inside the \macro{\JSONParseFromFile} command.
\begin{macrodef}
|escape|={all}
@@ -307,7 +313,6 @@ The command \macro{\JSONParseKeys} is used to store all top-level keys of a pars
\begin{macrodef}
|\JSONParseValue|[<options>]{<token variable>}{<key>}
-|\JSONParseExpandableValue|{<token variable>}{<key>}
\end{macrodef}
The command \macro{\JSONParseValue} is used to select values from the token variable (property list) that has been created using the commands \macro{\JSONParse} or \macro{\JSONParseFromFile}. The first argument takes the token variable that holds the parsed JSON data. The second argument takes the key to select the relevant entry from the parsed JSON data using JavaScript syntax.
@@ -319,7 +324,14 @@ The first optional argument can be used to pass options to the command, such as
When a key is associated with an object or array, the whole object or array is output as JSON string. The special key \macro{.} (or the string defined using the key \macro{child sep}) returns the whole JSON object as string.
-Whole objects or arrays can also be output as JSON string for further use in other macros using the expandable command \macro{\JSONParseExpandableValue}.
+The command \macro{\JSONParseValue} is not expandable and can therefore not be used as argument of certain other arguments where expansion is needed. In such cases, the expandable command \macro{\JSONParseExpandableValue} should be used.
+
+\begin{macrodef}
+|\JSONParseExpandableValue|{<token variable>}{<key>}
+\end{macrodef}
+Whole objects or arrays can be output as JSON string for further use in other macros using the expandable command \macro{\JSONParseExpandableValue}. The value that is returned by this command is typically a string variable where all characters have category code 12 (``other''), except for spaces and (horizontal) tabs that have category code 10 (``space''). This should be kept in mind if string comparisons should be made. A comparison against a token list with the default category codes used by TeX won't work, since letters will have category code 11 (``letter''), but it is possible to use \macro{\detokenize} to set the category codes of the token list in such a way that the comparison works.
+
+For example, if the JSON string \macro{{ "key" : "value" }} has been parsed into the token variable \macro{\myJSONdata}, the command \macro{\JSONParseExpandableValue{\myJSONdata}{key}} will expand to the exact same token list as \macro{\detokenize{value}} with all characters having category code 12 (``other'').
\begin{macrodef}
|\JSONParseArrayValues|[<options>]{<token variable>}{<key>}[<subkey>]{<string>}
@@ -460,7 +472,14 @@ replace/|horizontal tab|={<string>}
These keys can be used to set the replacement text for the JSON escape sequences \macro{\b} (backspace), \macro{\f} (formfeed), \macro{\n} (linefeed), \macro{\r} (carriage return) and \macro{\t} (horizontal tab). The default replacement string is a space. Only strings can be used as replacement. These replacements take place only during typesetting.
These keys can be set using \macro{\JSONParseSet}. They can also be set locally as option to the commands \macro{\JSONParseValue}, \macro{\JSONParseArrayValues} and \macro{\JSONParseArrayValuesMap}.
+\begin{macrodef}
+|check num|
+|check num|={<boolean>}
+\end{macrodef}
+If set to \macro{false}, the key \macro{check num} omits an internal check of numerical expressions against the JSON specification for numbers. Turning off this feature can increase the parsing speed.
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
\subsection{L3 commands}
\begin{macrodef}
@@ -478,6 +497,14 @@ The command \macro{\jsonparse_parse_to_prop:Nn} creates the token variable given
\end{macrodef}
The command \macro{\jsonparse_parse_to_prop:Nn} processes the token variable given as the first arguments as property list and filters it according to the key given as second argument. Filtering means that for every entry in the property list, the key of this entry is compared against the key given to the command. If the key in the property list starts with the given key, the matching part is removed from the key in the property list. If the keys do not match, the entry is completely removed from the property list.
+\begin{macrodef}
+|\jsonparse_if_num:nTF| {<string>} {<true code>} {<false code>}
+|\jsonparse_if_num:nT| {<string>} {<true code>}
+|\jsonparse_if_num:nF| {<string>} {<false code>}
+|\jsonparse_if_num_p:n| {<string>}
+\end{macrodef}
+The command \macro{\jsonparse_if_num:nTF} checks whether a string is a valid JSON number according the relevant specification. It executes the true code if the string is a valid JSON number and the false code if not. The variants \macro{\jsonparse_if_num:nT} and \macro{\jsonparse_if_num:nF} work accordingly. The command \macro{\jsonparse_if_num_p:n} returns a boolean true or false.
+
% =====
\printchanges
diff --git a/macros/latex/contrib/jsonparse/jsonparse.sty b/macros/latex/contrib/jsonparse/jsonparse.sty
index 514064d92a..6d545f5486 100644
--- a/macros/latex/contrib/jsonparse/jsonparse.sty
+++ b/macros/latex/contrib/jsonparse/jsonparse.sty
@@ -10,8 +10,8 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-\ProvidesExplPackage {jsonparse} {2024-08-08} {0.8.7}
- {JSON Parse}
+\ProvidesExplPackage {jsonparse} {2024-10-27} {0.9.5}
+ {A handy way to parse, store and access JSON data from files or strings in LaTeX documents}
\bool_new:N \l__jsonparse_debug_mode_bool
\keys_define:nn { jsonparse / global } {
@@ -64,7 +64,7 @@
\msg_new:nnn { jsonparse } { saving-external } {
\msg_info_text:n { jsonparse } \iow_newline:
- Saving ~ external ~ file: ~ #1.
+ Saving ~ to ~ external ~ file: ~ #1.
}
\msg_new:nnn { jsonparse } { loading-external } {
@@ -86,6 +86,7 @@
\str_new:N \l__jsonparse_false_str
\str_new:N \l__jsonparse_null_str
\bool_new:N \l__jsonparse_zero_based_bool
+\bool_new:N \l__jsonparse_check_num_bool
\bool_new:N \l__jsonparse_rescan_bool
\bool_new:N \l__jsonparse_externalize_bool
@@ -97,8 +98,7 @@
\clist_new:N \l__jsonparse_unused_keys_clist
-\clist_new:N \l__jsonparse_escape_tex_chars_clist
-\clist_set:Nn \l__jsonparse_escape_tex_chars_clist {
+\clist_const:Nn \c__jsonparse_escape_tex_chars_clist {
number_sign ,
dollar_sign ,
percent_sign ,
@@ -109,7 +109,7 @@
}
\str_new:N \l__jsonparse_escape_temp_str
-\clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+\clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_new:c { l__jsonparse_escape_ #1 _bool }
}
@@ -133,6 +133,9 @@
zero-based .bool_set:N = \l__jsonparse_zero_based_bool ,
zero-based .default:n = { true } ,
zero-based .initial:n = { true } ,
+ check ~ num .bool_set:N = \l__jsonparse_check_num_bool ,
+ check ~ num .default:n = { true } ,
+ check ~ num .initial:n = { true } ,
replace .code:n = { \keys_set:nn { jsonparse / parse / replace } {#1} } ,
replace / true .str_set:N = \l__jsonparse_true_str ,
replace / true .initial:n = { true } ,
@@ -157,12 +160,12 @@
escape .code:n = {
\str_case:nnF {#1} {
{ all } {
- \clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+ \clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_set_true:c { l__jsonparse_escape_ ##1 _bool }
}
}
{ none } {
- \clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+ \clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_set_false:c { l__jsonparse_escape_ ##1 _bool }
}
}
@@ -277,13 +280,13 @@
\bool_new:N \l__jsonparse_prop_map_first_bool
\bool_new:N \l__jsonparse_externalize_load_bool
-\ior_new:N \l__jsonparse_json_ior
\iow_new:N \g__jsonparse_externalize_iow
% ===
\cctab_const:Nn \c__jsonparse_json_escape_cctab {
\cctab_select:N \c_str_cctab
+ \char_set_catcode_space:n { 9 }
\char_set_catcode_escape:n { 92 }
\bool_lazy_or:nnF
{ \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
@@ -292,6 +295,192 @@
% ===
+\tl_new:N \l__jsonparse_num_input_tl
+\tl_new:N \l__jsonparse_num_remainder_tl
+\tl_new:N \l__jsonparse_num_input_last_tl
+\bool_new:N \l__jsonparse_num_bool
+\bool_new:N \l__jsonparse_num_zero_seen_bool
+\bool_new:N \l__jsonparse_num_plus_minus_seen_bool
+\bool_new:N \l__jsonparse_num_fraction_seen_bool
+\bool_new:N \l__jsonparse_num_exponent_seen_bool
+
+\clist_const:Nn \c__jsonparse_num_digits_clist {
+ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
+}
+
+\clist_const:Ne \c__jsonparse_num_others_clist {
+ \tl_to_str:n { + } ,
+ \tl_to_str:n { - } ,
+ \tl_to_str:n { . } ,
+ \tl_to_str:n { e } ,
+ \tl_to_str:n { E }
+}
+
+\prg_new_conditional:Npnn \jsonparse_if_num:n #1 { p , T , F , TF } {
+ \bool_set_true:N \l__jsonparse_num_bool
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_false:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_false:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { #1 }
+ \tl_if_empty:NTF \l__jsonparse_num_remainder_tl {
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \__jsonparse_parse_num:n {#1}
+ }
+ \clist_if_in:NVT \c__jsonparse_num_others_clist \l__jsonparse_num_input_last_tl {
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ \bool_if:NTF \l__jsonparse_num_bool {
+ \prg_return_true:
+ } {
+ \prg_return_false:
+ }
+}
+
+\cs_new:Npn \__jsonparse_parse_num:n #1 {
+ \tl_set:Ne \l__jsonparse_num_input_tl { \tl_trim_spaces:e {#1} }
+ \tl_if_empty:NF \l__jsonparse_num_input_tl {
+ \cs_if_exist_use:cTF { __jsonparse_parse_num_ \str_head_ignore_spaces:o { \l__jsonparse_num_input_tl } :w } {
+ \l__jsonparse_num_input_tl \q_stop
+ } {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_other:w \l__jsonparse_num_input_tl \q_stop
+ }
+ }
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ + :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ - :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ . :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_fraction:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ e :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ E :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+}
+
+\clist_map_inline:Nn \c__jsonparse_num_digits_clist {
+ \cs_new:cpn { __jsonparse_parse_num_ #1 :w } ##1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_digit:w ##1 \q_stop
+ }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_plus_minus:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_plus_minus_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \str_if_eq:enT { \tl_head:n {#1} } { + } {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ } {
+ \clist_if_in:NVT \c__jsonparse_num_others_clist \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_fraction:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_fraction_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \clist_if_in:NVT \c__jsonparse_num_others_clist \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_exponent:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_exponent_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \clist_if_in:NVT \c__jsonparse_num_others_clist \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_true:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_digit:w #1 \q_stop {
+ \bool_lazy_any:nTF {
+ { \tl_if_empty_p:N \l__jsonparse_num_input_last_tl }
+ { \bool_lazy_and_p:nn
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \bool_not_p:n { \l__jsonparse_num_exponent_seen_bool } }
+ }
+ } {
+ \str_if_eq:enT { \tl_head:n {#1} } { 0 } {
+ \bool_set_true:N \l__jsonparse_num_zero_seen_bool
+ }
+ } {
+ \bool_if:NT \l__jsonparse_num_zero_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_other:w #1 \q_stop {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+}
+
+% ===
+
\cs_new_protected:Npn \jsonparse_parse_to_prop:Nn #1#2 {
\bool_if:NT \l__jsonparse_debug_mode_bool {
\msg_log:nne { jsonparse } { debug-info } {
@@ -491,11 +680,24 @@
\cs_new:Npn \__jsonparse_parse_other_aux:w #1 , #2 \q_stop {
\tl_set:Ne \l__jsonparse_temp_tl { \tl_trim_spaces:n {#1} }
\cs_if_exist_use:cF { __jsonparse_parse_ \str_casefold:o { \l__jsonparse_temp_tl } : } {
- \fp_if_nan:nTF {#1} {
- % nan
- \msg_error:nnoo { jsonparse } { parsing-error }
- { \l__jsonparse_key_tl } {#1}
- } {
+ \bool_if:NTF \l__jsonparse_check_num_bool {
+ \jsonparse_if_num:nTF {#1} {
+ \tl_set:Nn \l__jsonparse_val_tl {#1}
+ \prop_gput:Nee \g_jsonparse_entries_prop
+ { \l__jsonparse_key_tl } { \l__jsonparse_val_tl }
+ % number
+ \bool_if:NT \l__jsonparse_debug_mode_bool {
+ \msg_log:nne { jsonparse } { debug-info } {
+ (key) ~ \str_use:N \l__jsonparse_key_tl : \iow_newline:
+ \iow_char:N \ \iow_char:N \ (num) ~ \str_use:N \l__jsonparse_val_tl
+ }
+ }
+ } {
+ % not a valid JSON fp
+ \msg_error:nnoo { jsonparse } { parsing-error }
+ { \l__jsonparse_key_tl } {#1}
+ }
+ } {
\tl_set:Nn \l__jsonparse_val_tl {#1}
\prop_gput:Nee \g_jsonparse_entries_prop
{ \l__jsonparse_key_tl } { \l__jsonparse_val_tl }
@@ -615,7 +817,7 @@
% ===
-\cs_new:Npn \__json_nested_construct_cs:Nnn #1 #2 #3 {
+\cs_new:Npn \__json_nested_construct_cs:Nnn #1#2#3 {
\cs_set:Npn #1 #2 ##1 #3 #2 ##2 #3 {
\prop_item:ce {##1} {##2}
}
@@ -652,6 +854,7 @@
\cs_set:Npn \t { \exp_not:N \t }
\cs_set:Npn \u { \exp_not:N \u }
\__json_nested_construct_cs:Noo \x \c_left_brace_str \c_right_brace_str
+ \tl_set:Nn \obeyedline { ~ }
\tl_gset_rescan:Nne \g__jsonparse_json_tl { \cctab_select:N \c__jsonparse_json_escape_cctab } {#3}
\exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
\group_end:
@@ -695,7 +898,6 @@
\cs_set:Npn \r { \exp_not:N \r }
\cs_set:Npn \t { \exp_not:N \t }
\cs_set:Npn \u { \exp_not:N \u }
- \cs_set:Npn \x [ ##1 ] [ ##2 ] { \prop_item:ce {##1} {##2} }
\file_get:nnN {#3} { \cctab_select:N \c__jsonparse_json_escape_cctab } \g__jsonparse_json_tl
\exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
\group_end:
@@ -710,8 +912,12 @@
\prop_item:Ne #1 {#2}
}
-\cs_set_eq:NN \__jsonparse_tex_quote \"
-\cs_set_eq:NN \__jsonparse_tex_backslash \\
+\cs_set_eq:NN \__jsonparse_tex_quote: \"
+\cs_set_eq:NN \__jsonparse_tex_backslash: \\
+
+\cs_new:Npn \__jsonparse_unicode_char:NNNN #1#2#3#4 {
+ \symbol{ " \str_uppercase:n { #1 #2 #3 #4 } } { }
+}
\cs_new:Npn \__jsonparse_rescan:n #1 {
\group_begin:
@@ -723,10 +929,10 @@
\cs_set:Npn \n { \l__jsonparse_linefeed_str }
\cs_set:Npn \r { \l__jsonparse_carriage_return_str }
\cs_set:Npn \t { \l__jsonparse_horizontal_tab_str }
- \cs_set:Npn \u { \char" }
+ \cs_set_eq:NN \u \__jsonparse_unicode_char:NNNN
\tl_set:Ne \l__jsonparse_temp_tl {#1}
- \cs_set_eq:NN \" \__jsonparse_tex_quote
- \cs_set_eq:NN \\ \__jsonparse_tex_backslash
+ \cs_set_eq:NN \" \__jsonparse_tex_quote:
+ \cs_set_eq:NN \\ \__jsonparse_tex_backslash:
\bool_if:NT \l__jsonparse_escape_number_sign_bool {
\tl_replace_all:Noe \l__jsonparse_temp_tl { \c_hash_str } { \c_backslash_str \c_hash_str }
}
diff --git a/macros/latex/contrib/jupynotex/README.md b/macros/latex/contrib/jupynotex/README.md
index d19b75542c..1a26ad22e4 100644
--- a/macros/latex/contrib/jupynotex/README.md
+++ b/macros/latex/contrib/jupynotex/README.md
@@ -13,15 +13,15 @@ It will convert the Jupyter Notebook format to proper LaTeX so it gets included
All you need to do is include the `jupynotex.py` and `jupynotex.sty` files in your LaTeX project, and use the package from your any of your `.tex` files:
- \usepackage{jupynotex}
+ `\usepackage{jupynotex}`
After that, you can include a whole Jupyter Notebook in your file just specifying it's file name:
- \jupynotex{file_name_for_your_notebook.ipynb}
+ `\jupynotex{file_name_for_your_notebook.ipynb}`
If you do not want to include it completely, you can optionally specify which cells:
- \jupynotex[<which cells>]{sample.ipynb}
+ `\jupynotex[<which cells>]{sample.ipynb}`
The cells specification can be numbers separated by comma, or ranges using dashes (defaulting to first and last if any side is not included).
@@ -48,18 +48,69 @@ Examples:
`\jupynotex[3,12-]{somenote.ipynb}`
+## Configurations available
+
+The whole package can be configured when included in your project:
+
+ \usepackage[OPTIONS]{jupynotex}
+
+Global options available:
+
+- `output-text-limit=N` where N is a number; it will wrap all outputs that exceed that quantity of columns
+
+Also, each cell(s) can be configured when included in your .tex files:
+
+ `\jupynotex[3, OPTIONS]{yournotebook.ipynb}`
+
+Cell options available:
+
+- `output-image-size=SIZE` where SIZE is a valid .tex size (a number with an unit, e.g. `70mm`); it will set any image in the output of those cells to the indicated size
+
+
## Full Example
Check the `example` directory in this project.
-There you will find an example `notebook.ipynb`, an `example.tex` file that includes cells from that notebook in different ways, and a `build` script.
+There you will find different notebook examples and `.tex` files using them. Also there's a build script to easily run on any of the examples, like:
+
+ ./build cell_ranges.tex
Play with it. Enjoy.
+# Supported cell types
+
+Jupyter has several types of cells, `jupynotex` supports most of those. If you find one that is not supported, please open an issue with an example.
+
+In any case, only the "code" cells are included when processing a notebook (no markdown titles, for example, to make it easy for the developer to find the numbers of cells to include).
+
+Supported cell types in the output:
+
+- `execute_result`: this may have multiple types of information inside; if an image is present, it will be included, otherwise if a latex output is present it will included (directly, so the latex is really parsed later by the LaTeX system, else the plain text will be included (verbatim).
+
+- `stream`: the different text lines will be included (verbatim)
+ result.extend(_verbatimize(x.rstrip() for x in item["text"]))
+
+- `display_data`: the image will be included
+
+- `error`: in this case the Traceback will be parsed, sanitized and included in the output keeping its structure (verbatim)
+
+Two type of images are currently supported (for the case in `execute_result` or `display_data` cell type:
+
+- PNG: used directly
+
+- SVG: converted to PDF (need to have `inkscape` present in the system) and included that
+
+
# Dependencies
-You need Python 3 in your system, and the [tcolorbox](https://ctan.org/pkg/tcolorbox) module in your LaTeX toolbox.
+You need Python 3 in your system, and the following modules in your LaTeX toolbox:
+
+- [tcolorbox](https://ctan.org/pkg/tcolorbox)
+
+- [minted](https://www.ctan.org/pkg/minted)
+
+To support SVG images in the notebook, [inkscape](https://inkscape.org/) needs to be installed and in the system's PATH.
# Feedback & Development
diff --git a/macros/latex/contrib/jupynotex/example/build b/macros/latex/contrib/jupynotex/example/build
deleted file mode 100755
index 51598c0450..0000000000
--- a/macros/latex/contrib/jupynotex/example/build
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-ln -s ../jupynotex.py .
-ln -s ../jupynotex.sty .
-xelatex -shell-escape example.tex
diff --git a/macros/latex/contrib/jupynotex/example/example.tex b/macros/latex/contrib/jupynotex/example/example.tex
deleted file mode 100644
index 5251586b63..0000000000
--- a/macros/latex/contrib/jupynotex/example/example.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-\documentclass{article}
-
-\usepackage{jupynotex}
-
-\begin{document}
-
-One cell:
-
-\jupynotex[1]{notebook.ipynb}
-
-
-A range of cells:
-
-\jupynotex[4-6]{notebook.ipynb}
-
-
-Some specific cells:
-
-\jupynotex[12,17]{notebook.ipynb}
-
-
-The whole notebook:
-
-\jupynotex{notebook.ipynb}
-
-
-\end{document}
diff --git a/macros/latex/contrib/jupynotex/example/notebook.ipynb b/macros/latex/contrib/jupynotex/example/notebook.ipynb
deleted file mode 100644
index a423e9a11f..0000000000
--- a/macros/latex/contrib/jupynotex/example/notebook.ipynb
+++ /dev/null
@@ -1,593 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Non alphanums {'>', '\\t', '[', '\\r', '\\x13', '\\x1d', '<', '^', '\\x04', '\\x08', '\\x17', '\\x1b', '\\\\', '\\x19', '`', '\\x1f', '$', '\\x0b', '\\x14', '\\x12', '\\x18', ')', '=', '?', ' ', \"'\", '\\x1c', '|', ';', '/', '\\x1e', '\\n', '\\x07', '\\x10', '\\x03', '\\x02', '#', '\\x0c', '@', '\\x16', '_', '}', '.', '-', '(', '!', '+', '\\x06', ']', '{', ':', '\\x01', '\\x11', '\\x0f', '\\x05', ',', '~', '\\x15', '\\x00', '\"', '%', '\\x0e', '*', '&', '\\x1a'}\n",
- "Separators b'([\\\\>\\\\\\t\\\\[\\\\\\r\\\\\\x13\\\\\\x1d\\\\<\\\\^\\\\\\x04\\\\\\x08\\\\\\x17\\\\\\x1b\\\\\\\\\\\\\\x19\\\\`\\\\\\x1f\\\\$\\\\\\x0b\\\\\\x14\\\\\\x12\\\\\\x18\\\\)\\\\=\\\\?\\\\ \\\\\\'\\\\\\x1c\\\\|\\\\;\\\\/\\\\\\x1e\\\\\\n\\\\\\x07\\\\\\x10\\\\\\x03\\\\\\x02\\\\#\\\\\\x0c\\\\@\\\\\\x16\\\\_\\\\}\\\\.\\\\-\\\\(\\\\!\\\\+\\\\\\x06\\\\]\\\\{\\\\:\\\\\\x01\\\\\\x11\\\\\\x0f\\\\\\x05\\\\,\\\\~\\\\\\x15\\\\\\x00\\\\\"\\\\%\\\\\\x0e\\\\*\\\\&\\\\\\x1a])'\n"
- ]
- }
- ],
- "source": [
- "import string\n",
- "\n",
- "non_alphanums = set(chr(x) for x in range(127)) - set(string.ascii_letters) - set(string.digits)\n",
- "print(\"Non alphanums\", non_alphanums)\n",
- "separators = '([' + ''.join('\\\\' + x for x in non_alphanums) + '])'\n",
- "separators = separators.encode('ascii')\n",
- "print(\"Separators\", separators)\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[b'dlg',\n",
- " b'=',\n",
- " b'Resource',\n",
- " b'.',\n",
- " b'loadfromresfile',\n",
- " b'(',\n",
- " b'filename',\n",
- " b',',\n",
- " b'win',\n",
- " b',',\n",
- " b'QuoteDialog',\n",
- " b'.',\n",
- " b'MyQuoteDialog',\n",
- " b',',\n",
- " b\"'\",\n",
- " b'QuoteDialog',\n",
- " b\"'\",\n",
- " b',',\n",
- " b'win',\n",
- " b')']"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "import re\n",
- "program_line = b\"\"\"dlg = Resource.loadfromresfile(filename, win, QuoteDialog.MyQuoteDialog, 'QuoteDialog', win)\"\"\"\n",
- "tokens = [t for x in re.split(separators, program_line) if (t := x.strip())]\n",
- "tokens"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Checking base dir: HTML document\n",
- "Checking base dir: C source\n",
- "Checking base dir: C++ source\n",
- "Checking base dir: PHP script\n",
- "Checking base dir: ReStructuredText file\n",
- "Checking base dir: Python script\n",
- "Checking base dir: Ruby script\n",
- "Checking base dir: Java source\n",
- "Checking base dir: Objective-C source\n",
- "Checking base dir: Perl5 module source\n",
- "Checking base dir: XML 1.0 document\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "from collections import Counter\n",
- "\n",
- "DUMP_BASE = '/home/facundo/devel/ml/dump'\n",
- "\n",
- "# directories with 1000 files of each code type, excluding \"just text\" (ascii, utf8, etc)\n",
- "CODE_TYPES = [\n",
- " 'HTML document',\n",
- " 'C source',\n",
- " 'C++ source',\n",
- " 'PHP script',\n",
- " 'ReStructuredText file',\n",
- " 'Python script',\n",
- " 'Ruby script',\n",
- " 'Java source',\n",
- " 'Objective-C source',\n",
- " 'Perl5 module source',\n",
- " 'XML 1.0 document',\n",
- "]\n",
- "\n",
- "# let's collect ALL tokens present in all the program files\n",
- "tokens = Counter()\n",
- "for basedir in CODE_TYPES:\n",
- " print(\"Checking base dir:\", basedir)\n",
- " for dirpath, dirnames, filenames in os.walk(os.path.join(DUMP_BASE, basedir)):\n",
- " for fname in filenames:\n",
- " fpath = os.path.join(dirpath, fname)\n",
- " with open(fpath, 'rb') as fh:\n",
- " tokens.update(t for x in re.split(separators, fh.read()) if (t := x.strip()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Total different tokens 213400\n",
- " 870525 b'.'\n",
- " 756849 b'_'\n",
- " 730609 b'('\n",
- " 717433 b'='\n",
- " 699725 b')'\n",
- " 688556 b'/'\n",
- " 661461 b'\"'\n",
- " 640989 b','\n",
- " 625121 b'-'\n",
- " 594091 b'>'\n"
- ]
- }
- ],
- "source": [
- "different_tokens = len(tokens)\n",
- "print(\"Total different tokens\", different_tokens)\n",
- "for name, quant in tokens.most_common(10):\n",
- " print(\"{:8d} {}\".format(quant, name))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Total tokens found: 20101050\n",
- "Total representative: 3324\n",
- "Last ten...\n",
- " 289 b'enables'\n",
- " 289 b'smaller'\n",
- " 289 b'Creates'\n",
- " 289 b'cross'\n",
- " 289 b'GLFW'\n",
- " 289 b'Os'\n",
- " 289 b'usb'\n",
- " 288 b'stylesheets'\n",
- " 288 b'ad'\n",
- " 288 b'WIDTH'\n"
- ]
- }
- ],
- "source": [
- "import numpy as np\n",
- "\n",
- "total_tokens = sum(tokens.values())\n",
- "print(\"Total tokens found:\", total_tokens)\n",
- "\n",
- "most = total_tokens * 0.9\n",
- "tot = 0\n",
- "representative_data = []\n",
- "for name, quant in tokens.most_common():\n",
- " representative_data.append((name, quant))\n",
- " tot += quant\n",
- " if tot > most:\n",
- " break\n",
- "\n",
- "print(\"Total representative:\", len(representative_data))\n",
- "print(\"Last ten...\")\n",
- "for name, quant in representative_data[-10:]:\n",
- " print(\"{:8d} {}\".format(quant, name))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Collecting data from base dir HTML document\n",
- "Collecting data from base dir C source\n",
- "Collecting data from base dir C++ source\n",
- "Collecting data from base dir PHP script\n",
- "Collecting data from base dir ReStructuredText file\n",
- "Collecting data from base dir Python script\n",
- "Collecting data from base dir Ruby script\n",
- "Collecting data from base dir Java source\n",
- "Collecting data from base dir Objective-C source\n",
- "Collecting data from base dir Perl5 module source\n",
- "Collecting data from base dir XML 1.0 document\n",
- "Src data samples: 11000\n"
- ]
- }
- ],
- "source": [
- "import random\n",
- "\n",
- "# real \"ML data\": a list of (code_type, features) (one pair for each file)\n",
- "# code_type: the *position* of the code type corresponding to the file (needs to be an int)\n",
- "# features: a list of values, each value corresponds to how many of the tokens of that position the file has\n",
- "\n",
- "representative_tokens = [name for name, _ in representative_data]\n",
- "\n",
- "all_src_data = []\n",
- "for idx, basedir in enumerate(CODE_TYPES):\n",
- " print(\"Collecting data from base dir\", basedir)\n",
- " for dirpath, dirnames, filenames in os.walk(os.path.join(DUMP_BASE, basedir)):\n",
- " for fname in filenames:\n",
- " fpath = os.path.join(dirpath, fname)\n",
- " with open(fpath, 'rb') as fh:\n",
- " fcontent = fh.read()\n",
- " \n",
- " file_tokens = Counter(t for x in re.split(separators, fcontent) if (t := x.strip()))\n",
- " token_quantities = [file_tokens.get(t, 0) for t in representative_tokens]\n",
- "\n",
- " all_src_data.append((idx, token_quantities))\n",
- "\n",
- "print(\"Src data samples:\", len(all_src_data))\n",
- "\n",
- "# shuffle, as currently is too much \"per directory\"\n",
- "random.shuffle(all_src_data)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow.keras import Model, layers\n",
- "import numpy as np\n",
- "\n",
- "# representation of our model\n",
- "num_classes = len(CODE_TYPES)\n",
- "num_features = len(representative_tokens)\n",
- "\n",
- "# 1st and 2nd layer number of neurons (these numbers are just chamuyo)\n",
- "n_hidden_1 = 128 \n",
- "n_hidden_2 = 256\n",
- "\n",
- "# training parameters (more chamuyo)\n",
- "learning_rate = 0.1\n",
- "\n",
- "batch_size = 256\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Example code types: (2, 0, 4, 4, 5)\n",
- "Example token quants: [246, 786, 246, 61, 246] [32, 32, 5, 22, 5]\n",
- "Token quants shape: (11000, 3324)\n",
- "Example normalized quants: [0.3129771 1. 0.3129771 0.07760815 0.3129771 ] [0.9411765 0.9411765 0.14705883 0.64705884 0.14705883]\n"
- ]
- }
- ],
- "source": [
- "# separate the source data and into two pairing lists\n",
- "code_types, token_quantities = zip(*all_src_data)\n",
- "print(\"Example code types:\", code_types[:5])\n",
- "print(\"Example token quants:\", token_quantities[0][:5], token_quantities[117][:5])\n",
- "\n",
- "# convert features to float\n",
- "float_quantities = np.array(token_quantities, np.float32)\n",
- "print(\"Token quants shape:\", float_quantities.shape)\n",
- "\n",
- "# normalize EACH ONE to [0, 1]\n",
- "for quants in float_quantities:\n",
- " quants /= max(quants)\n",
- "print(\"Example normalized quants:\", float_quantities[0][:5], float_quantities[117][:5])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Real training set: 89.70%\n"
- ]
- }
- ],
- "source": [
- "# let's prepare the teching sets, input and output for training first (90% of cases) and\n",
- "# then testing what's learned (the remaining 10%); \n",
- "input_training = []\n",
- "output_training = []\n",
- "input_testing = []\n",
- "output_testing = []\n",
- "for token_distribution, code_type in zip(float_quantities, code_types):\n",
- " if random.random() < .1:\n",
- " input_testing.append(token_distribution)\n",
- " output_testing.append(code_type)\n",
- " else:\n",
- " input_training.append(token_distribution)\n",
- " output_training.append(code_type)\n",
- "print(\"Real training set: {:.2f}%\".format(100 * len(input_training) / len(float_quantities))) "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow.keras import Model\n",
- "\n",
- "class NeuralNet(Model):\n",
- " \"\"\"Chamuyo al cuadrado.\"\"\"\n",
- " \n",
- " def __init__(self):\n",
- " super(NeuralNet, self).__init__()\n",
- " self.fc1 = layers.Dense(n_hidden_1, activation=tf.nn.sigmoid) # se puede cambiar a relu\n",
- " self.fc2 = layers.Dense(n_hidden_2, activation=tf.nn.sigmoid) # se puede cambiar a relu\n",
- " self.out = layers.Dense(num_classes)\n",
- "\n",
- " def call(self, x, is_training=False):\n",
- " x = self.fc1(x)\n",
- " x = self.fc2(x)\n",
- " x = self.out(x)\n",
- " if not is_training:\n",
- " # tf cross entropy expect logits without softmax, so only\n",
- " # apply softmax when not training.\n",
- " x = tf.nn.softmax(x)\n",
- " return x\n",
- "\n",
- "neural_net = NeuralNet()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Note that this will apply 'softmax' to the logits.\n",
- "def cross_entropy_loss(x, y):\n",
- " # Convert labels to int 64 for tf cross-entropy function.\n",
- " y = tf.cast(y, tf.int64)\n",
- " # Apply softmax to logits and compute cross-entropy.\n",
- " loss = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=x)\n",
- " # Average loss across the batch.\n",
- " return tf.reduce_mean(loss)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Stochastic gradient descent optimizer.\n",
- "optimizer = tf.optimizers.SGD(learning_rate)\n",
- "\n",
- "# Optimización. \n",
- "def run_optimization(x, y):\n",
- " # Funciones para calcular el gradiente\n",
- " with tf.GradientTape() as g:\n",
- " # Algoritmo de forward\n",
- " pred = neural_net(x, is_training=True)\n",
- " # Computa la función de costo o pérdida utilizando entropía cruzada\n",
- " loss = cross_entropy_loss(pred, y)\n",
- " \n",
- " # Actualiza las variables de entrenamiento.\n",
- " trainable_variables = neural_net.trainable_variables\n",
- "\n",
- " # Computa los gradientes\n",
- " gradients = g.gradient(loss, trainable_variables)\n",
- " \n",
- " # Actualiza los nuevos parámetros W (pesos) y b (bias).\n",
- " optimizer.apply_gradients(zip(gradients, trainable_variables))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Accuracy metric.\n",
- "def accuracy(y_pred, y_true):\n",
- " # Predicted class is the index of highest score in prediction vector (i.e. argmax).\n",
- " correct_prediction = tf.equal(tf.argmax(y_pred, 1), tf.cast(y_true, tf.int64))\n",
- " return tf.reduce_mean(tf.cast(correct_prediction, tf.float32), axis=-1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Step 100: loss=2.379924, accuracy=0.125000\n",
- "Step 200: loss=2.372284, accuracy=0.128906\n",
- "Step 300: loss=2.366430, accuracy=0.140625\n",
- "Step 400: loss=2.360768, accuracy=0.121094\n",
- "Step 500: loss=2.347394, accuracy=0.109375\n",
- "Step 600: loss=2.349795, accuracy=0.199219\n",
- "Step 700: loss=2.312950, accuracy=0.218750\n",
- "Step 800: loss=2.284508, accuracy=0.289062\n",
- "Step 900: loss=2.173395, accuracy=0.335938\n",
- "Step 1000: loss=2.115966, accuracy=0.300781\n",
- "Step 1100: loss=1.977837, accuracy=0.441406\n",
- "Step 1200: loss=1.860783, accuracy=0.425781\n",
- "Step 1300: loss=1.866206, accuracy=0.425781\n",
- "Step 1400: loss=1.773057, accuracy=0.402344\n",
- "Step 1500: loss=1.736271, accuracy=0.546875\n",
- "Step 1600: loss=1.626320, accuracy=0.578125\n",
- "Step 1700: loss=1.537970, accuracy=0.539062\n",
- "Step 1800: loss=1.369012, accuracy=0.609375\n",
- "Step 1900: loss=1.286771, accuracy=0.625000\n",
- "Step 2000: loss=1.270916, accuracy=0.640625\n"
- ]
- }
- ],
- "source": [
- "train_data = tf.data.Dataset.from_tensor_slices((input_training, output_training))\n",
- "\n",
- "# NOTE: this doesn't only selectes, it completely transform the structures\n",
- "# from <TensorSliceDataset shapes: ((3324,), ()), types: (tf.float32, tf.int32)>\n",
- "# to <PrefetchDataset shapes: ((None, 3324), (None,)), types: (tf.float32, tf.int32)>\n",
- "train_data = train_data.repeat().shuffle(5000).batch(batch_size).prefetch(1)\n",
- "\n",
- "display_step = 100\n",
- "training_steps = 2000\n",
- "\n",
- "# Run training for the given number of steps.\n",
- "for step, (input_batch, output_batch) in enumerate(train_data.take(training_steps), 1):\n",
- " # Run the optimization to update W and b values.\n",
- " run_optimization(input_batch, output_batch)\n",
- " \n",
- " if step % display_step == 0:\n",
- " pred = neural_net(input_batch, is_training=True)\n",
- " loss = cross_entropy_loss(pred, output_batch)\n",
- " acc = accuracy(pred, output_batch)\n",
- " print(\"Step {}: loss={:f}, accuracy={:f}\".format(step, loss, acc))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Test Accuracy: 0.578994\n"
- ]
- }
- ],
- "source": [
- "# Test model on validation set\n",
- "input_testing = np.array(input_testing)\n",
- "pred = neural_net(input_testing, is_training=False)\n",
- "print(\"Test Accuracy: {:f}\".format(accuracy(pred, output_testing)))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [],
- "source": [
- "# If we consider the \"more probable\" prediction on each item, how well it goes?\n",
- "all_guesses = neural_net(input_testing, is_training=False)\n",
- "guesses_ok = [0] * len(CODE_TYPES)\n",
- "guesses_bad = [0] * len(CODE_TYPES)\n",
- "\n",
- "for guess, real in zip(all_guesses, output_testing):\n",
- " # guess is an array of len(CODE_TYPES) with a float in each position showing\n",
- " # which one is the most probable to be real, so we need to get position \n",
- " # for the max one and check if it matches with the real real :)\n",
- " position_for_max = np.where(guess == np.amax(guess))[0][0]\n",
- " if position_for_max == real:\n",
- " guesses_ok[real] += 1\n",
- " else:\n",
- " guesses_bad[real] += 1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAFmCAYAAACC84ZkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABBB0lEQVR4nO3debyc4/3/8dc7mwSJWPJNEZHUEiUbkqC2iLWqltb6pYKiliLftrZuWt+26LdVxY9GLaGUoLbqYkkT+5KECEFsDUIQscUSJD6/P65r5txnMnPOnGSue87yeT4e8zhz3/fM/bnuOTNzzbXLzHDOOecAOtU7Ac4551oPzxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCq4RSQdLurPe6XCBpG0lzc4p1hxJOyU6dw9JD0jarYnHjJY0N7M9S9LoFOlxlXmm0M5JmiLpXUkrVPN4M7vGzHZZjngTJP1yWZ/f0UkySesXts3sPjMbVM801ch44Hdm9q9qn2Bmm5jZlHRJcuV4ptCOSRoAbAsYsGcO8TqnjtFeSOpS7zTkycwONbOb6p0O1zzPFNq3Q4GHgQnA2OwBSetIuknSfEkLJF0Y9x8m6f7M4zaSdJekdyTNlrR/5tgESRdL+oekj4DvAAcDp0j6UNLf4uO+Ekss78UqgT0z59hd0tOSFkp6TdIPy12IpE6SfiLpZUlvSbpK0ioVHjta0lxJP4iPnSfp8MzxVeLz58fz/URSVZ+FeB1nSXpU0geSbpW0Wub4nvEa34uP/Urm2BxJp0qaCXxUmjFIujfefSK+fgeUqVKZI+n0+Jq9K+kKSd0zx4+S9EL8f90maa0mruXb8foXSPpxybFOkk6T9GI8fn32Osucay9JM+Jr8mKhmkjSWjEd78R0HZV5To/4HnpX0tPAyJJzFquz4mOvjI99RtIpJa9LxfeYayEz81s7vQEvAMcBmwOfA33j/s7AE8DvgZWA7sA28dhhwP3x/krAq8DhQBdgU+BtYON4fALwPrA14QdG97jvl5k0dI3p+BHQDRgDLAQGxePzgG3j/VWBzSpcyxHxPF8GVgZuAv5c4bGjgcXAmTH+7sDHwKrx+FXArUBPYADwHPCdKl/TKcBrwOD4+vwVuDoe2xD4CNg5xj0lprlbPD4HmAGsA/SocH4D1i+5lrmZ7TnAU/EcqwEPFF7v+Nq+DWwGrABcANxbIc7GwIfAdvGx58bXbKd4/CTCD4p+8fh44NoK5xoV3wc7x/fB2sBG8di9wEXxvTEcmA+MicfOBu6L17FOvK7Sa90p89h74nukHzCz8FiaeY/5rYXfG/VOgN8S/WNhG0JGsEbcfhb4n3h/q/jh7FLmeYfRkCkcANxXcnw8cEa8PwG4quT4BBpnCtsCbwCdMvuuBX4e778CfBfo1cz1TAKOy2wPitdX7hpGA59kjwFvAVsSMsTPiBlbPPZdYEqVr+sU4OzM9sbxfJ2BnwLXZ451ImQgo+P2HOCIZs5fTaZwTGZ7d+DFeP8y4DeZYyvH12hAmTg/A67LbK8Ur6PwJfwMsGPm+JpNvN7jgd+X2b8OsATomdl3FjAh3n8J2C1z7Ogy17pT5rG7Zo4dSUOm0OR7zG8tu3n1Ufs1FrjTzN6O23+hoQppHeBlM1vczDnWBbaIRfL3JL1HqB76UuYxrzZzjrWAV83si8y+lwm/JgG+Rfhie1nSPZK2auI8L5ecowvQt8LjF5Rc38eEL8k1CL8sS8+1NtXLXvPL8XxrlKYxXvOrJedu7vValviFKqLS+B8CCyh/bWtlz2NmH8XHFqwL3Jz5vz9D+IIv93qvA7xYIcY7ZrawJL1rZ46XXkslpY99tfRYE+8x1wIdqrGro5DUA9gf6Czpjbh7BaC3pGGED1R/SV2ayRheBe4xs52beEzpNLul268D60jqlPnQ9idU2WBmU4G9JHUFvgdcT/iSKfU64YuqoD+huuPNJtJWztuEX7zrAk9nzvVaC86RTV//eL63YxqHFA5IUnxs9ty1mJa4NP7r8X6j10jSSsDqlL+2eUC2vWPF+NiCVwmlmgeqSM+rwHpl9r8OrCapZyZjyL7W8+K1zMocq2Qeodqo8D/LvgZNvsdcy3hJoX3am/CrbmNCPe5wwhfAfYTG50cJH7KzJa0kqbukrcuc53Zgw9gg2TXeRmYbT8t4k1DvX/AI4Vf6KfH5o4FvANdJ6qYwLmIVM/sc+AD4ovSE0bXA/0gaKGll4NfAxCpKO42Y2RJCxvMrST0lrQt8H7gaQo8thW6hA5o4zSGSNo5fpGcCN2bO+3VJO8ZM7gfAp8CDLUhi6etXzvGS+sWG3x8DE+P+a4HDJQ1X6IL8a+ARM5tT5hw3AntI2kZSt3gd2e+DPxJeo3UBJPWRtFeF9FwW4+4YG6jXlrSRmb1KuPaz4ntsKKEzwtXxedcDp0taVVI/4IQmrjn72LUJPyAKKr7Hmjifq6Te9Vd+q/0N+BehT3jp/v0Jda9dCL+kbiFUGbwNnB8fcxixTSFuDwL+TmiDWAD8Gxgej00g034Q921AaEx9D7gl7tuE0Ej4PuGX3j5xf7eY1ncJGcJUYoN3mbR3ItSDvxrTcjWx4bjMY0eTqZuO++bQUD+9anz+/Hi+nxHrown103OArhXOPYVQL/5oTPPfiO028fg+8Rrfj9e8Sbk0NPG/O4aQYb8X/1+NriWe4/QY4z3gSmDFkue/CLxDyNT7NRFrLKFNZwEhc8m+Rp0ImeVsQqPti8CvmzjXPoTG34WERt9d4/5+MR3vxHNk20NWJDT6vxev5+Qy11pIz0rAn+NjnwF+QmxLaeo95reW3xRfUOccIOknwHwzG1/h+BRCb6NLc01YQ/w5wJFmdnc94rcWko4FDjSz7eudlvbG2xScyzAzH43dCklak1Ct9hChNPoD4MK6Jqqd8kzBOdcWdCN0fR1IqEK6jjD+wdWYVx8555wr8t5Hzjnnitp89dEaa6xhAwYMqHcynHOuTZk+ffrbZtandH+bzxQGDBjAtGnT6p0M55xrUySVHUHu1UfOOeeKPFNwzjlX5JmCc865ojbfpuA6ls8//5y5c+eyaNGieiel3ejevTv9+vWja9eu9U6KawU8U3Btyty5c+nZsycDBgwgTELqloeZsWDBAubOncvAgQPrnRzXCnj1kWtTFi1axOqrr+4ZQo1IYvXVV/eSlytKmilIulxhjdynMvv+T9KzkmZKullS78yx0+M6rrMl7Zoyba7t8gyhtvz1dFmpSwoTgN1K9t0FDDazoYRFME4HkLQxcCBhCtzdgIskdU6cPueccxlJ2xTM7N7SxUrM7M7M5sPAvvH+XoQ1Yz8F/iPpBcKC4A+lTKNr2wac9veanm/O2V+v6nFvvPEG48aNY+rUqfTu3Zu+ffty3nnnseGGG9Y0PeVMmDCBXXbZhbXWWqv5BzvXQvVuaD6ChlWj1iZkEgVzqbDGqqSjCYt8079/Uyv4OVd7ZsY+++zD2LFjue66sLjXE088wZtvvtlsprB48WK6dOlScbsaEyZMYPDgwe0jU/j5KgnP/X66c7djdWtolvRjwhq717T0uWZ2iZmNMLMRffosNXWHc0lNnjyZrl27cswxxxT3DRs2jG222YaTTz6ZwYMHM2TIECZODL93pkyZwrbbbsuee+7JxhtvvNT2kiVLOPnkkxk5ciRDhw5l/PiG9X3OOecchgwZwrBhwzjttNO48cYbmTZtGgcffDDDhw/nk08+YdKkSWy66aYMGTKEI444gk8//TT318S1H3UpKUg6DNgD2NEa5u5+jcaLcfejZYupO5eLp556is0333yp/TfddBMzZszgiSee4O2332bkyJFst912ADz22GM89dRTDBw4kClTpjTavuSSS1hllVWYOnUqn376KVtvvTW77LILzz77LLfeeiuPPPIIK664Iu+88w6rrbYaF154Ib/97W8ZMWIEixYt4rDDDmPSpElsuOGGHHrooVx88cWMGzcu51fFtRe5lxQk7QacAuxpZh9nDt0GHChpBUkDCasrPZp3+pxbVvfffz8HHXQQnTt3pm/fvmy//fZMnToVgFGjRjUaB5DdvvPOO7nqqqsYPnw4W2yxBQsWLOD555/n7rvv5vDDD2fFFVcEYLXVVlsq5uzZsxk4cGCx2mrs2LHce++9qS/VtWNJSwqSriUsPL6GpLnAGYTeRisAd8WucA+b2TFmNkvS9YRFtxcDx5vZkpTpc25ZbLLJJtx4440tes5KK61UcdvMuOCCC9h118a9sO+4445lT6RzyyhpScHMDjKzNc2sq5n1M7PLzGx9M1vHzIbH2zGZx//KzNYzs0Fm9s+UaXNuWY0ZM4ZPP/2USy65pLhv5syZ9O7dm4kTJ7JkyRLmz5/Pvffey6hRo5o936677srFF1/M559/DsBzzz3HRx99xM4778wVV1zBxx+HAvU777wDQM+ePVm4cCEAgwYNYs6cObzwwgsA/PnPf2b77X0te7fs6t37yLnlUm0X0lqSxM0338y4ceM455xz6N69OwMGDOC8887jww8/ZNiwYUjiN7/5DV/60pd49tlnmzzfkUceyZw5c9hss80wM/r06cMtt9zCbrvtxowZMxgxYgTdunVj991359e//jWHHXYYxxxzDD169OChhx7iiiuuYL/99mPx4sWMHDmyUQO4cy3V5tdoHjFihPkiOx3HM888w1e+8pV6J6Pdqdvr6l1S60bSdDMbUbq/Y5cUUr0h/c3onGujfEI855xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfUsXsfubav1j3Iqug5tvLKK/Phhx/WNm4NnXfeeRx99NHF6TGcawkvKTjXiixevLjJ7Wqcd955xVHQzrWUZwrOLaMpU6YwevRo9t13XzbaaCMOPvhgCoNBp06dyle/+lWGDRvGqFGjWLhwIYsWLeLwww9nyJAhbLrppkyePBkI6yPsueeejBkzhh133HGp7Y8++ogjjjiCUaNGsemmm3LrrbcCsGTJEn74wx8yePBghg4dygUXXMD555/P66+/zg477MAOO+wAwLXXXsuQIUMYPHgwp556an1eLNdmePWRc8vh8ccfZ9asWay11lpsvfXWPPDAA4waNYoDDjiAiRMnMnLkSD744AN69OjBH/7wByTx5JNP8uyzz7LLLrvw3HPPAWFq7ZkzZ7LaaqsxYcKERts/+tGPGDNmDJdffjnvvfceo0aNYqedduKqq65izpw5zJgxgy5duhSn1j733HOZPHkya6yxBq+//jqnnnoq06dPZ9VVV2WXXXbhlltuYe+9967vC+daLS8pOLccRo0aRb9+/ejUqRPDhw9nzpw5zJ49mzXXXJORI0cC0KtXL7p06cL999/PIYccAsBGG23EuuuuW8wUdt5550ZTY2e377zzTs4++2yGDx/O6NGjWbRoEa+88gp333033/3ud4srt5WbWnvq1KmMHj2aPn360KVLFw4++GCfWts1yUsKzi2HFVZYoXi/c+fOy9QGAM1Prf3Xv/6VQYMGLVsinWsBLyk4V2ODBg1i3rx5xQV2Fi5cyOLFi9l222255pqw+uxzzz3HK6+8UtUX/a677soFF1xQbK94/PHHgVCaGD9+fDEjKje19qhRo7jnnnt4++23WbJkCddee61Pre2a5CUF17a1wskHu3XrxsSJEznhhBP45JNP6NGjB3fffTfHHXccxx57LEOGDKFLly5MmDChUUmjkp/+9KeMGzeOoUOH8sUXXzBw4EBuv/12jjzySJ577jmGDh1K165dOeqoo/je977H0UcfzW677cZaa63F5MmTOfvss9lhhx0wM77+9a+z11575fAquLaqY0+d7bOktjk+dXYaPnV2x1Np6myvPnLOOVfk1UeudvxXn3NtnpcUXJvT1qs8Wxt/PV2WZwquTenevTsLFizwL7IaMTMWLFhA9+7d650U10p49ZFrU/r168fcuXOZP39+vZPSbnTv3p1+/frVOxntVxvr0OKZgmtTunbtysCBA+udDOfaLa8+cs45V+SZgnPOuaKk1UeSLgf2AN4ys8Fx32rARGAAMAfY38zelSTgD8DuwMfAYWb2WMr05c67bLrWzt+jHV7qksIEYLeSfacBk8xsA2BS3Ab4GrBBvB0NXJw4bc4550okzRTM7F7gnZLdewFXxvtXAntn9l9lwcNAb0lrpkyfc865xurR+6ivmc2L998A+sb7awOvZh43N+6bRwlJRxNKE/Tv3z9dSl3r18a6+znX2tW1odnCCKQWj0Iys0vMbISZjejTp0+ClDnnXMdUj5LCm5LWNLN5sXrorbj/NWCdzOP6xX3OdVze8Ft7XrpsUj1KCrcBY+P9scCtmf2HKtgSeD9TzeSccy4HqbukXguMBtaQNBc4AzgbuF7Sd4CXgf3jw/9B6I76AqFL6uEp0+acc25pSTMFMzuowqEdyzzWgONTpsc551zTfESzc865Is8UnHPOFXmm4Jxzrsinzm7PvDujc66FvKTgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJE3NDvnXEIDFv0lyXnnJDmrlxScc85leEnBuZbwGTZdO+clBeecc0WeKTjnnCvy6iNXM6ka1CBdo5pzrjEvKTjnnCvykoJzrshLe85LCs4554o8U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK6p6nIKkbsCGcXO2mX2eJknOOefqpapMQdJo4ErC+BMB60gaa2b3JkuZc8653FVbUvgdsIuZzQaQtCFwLbB5qoQ555zLX7VtCl0LGQKAmT0HdF2ewJL+R9IsSU9JulZSd0kDJT0i6QVJE2OVlXPOuZxUmylMk3SppNHx9idg2rIGlbQ2cCIwwswGA52BA4FzgN+b2frAu8B3ljWGc865lqs2UzgWeJrwRX5ivH/scsbuAvSQ1AVYEZgHjAFujMevBPZezhjOOedaoKo2BTP7FDg33pabmb0m6bfAK8AnwJ3AdOA9M1scHzYXWLvc8yUdDRwN0L9//1okyTnXQaSaCXZOkrPmr9reR08CVrL7fUIV0i/NbEFLgkpaFdgLGAi8B9wA7Fbt883sEuASgBEjRpSmyznn3DKqtvfRP4ElQCGLPZBQ5fMGMAH4Rgvj7gT8x8zmA0i6Cdga6C2pSywt9ANea+F5nXPOLYdqM4WdzGyzzPaTkh4zs80kHbIMcV8BtpS0IqH6aEdCqWMysC9wHTAWuHUZzu2cc24ZVdvQ3FnSqMKGpJGEHkMAi8s/pTIze4TQoPwY8GRMxyXAqcD3Jb0ArA5c1tJzO+ecW3bVlhSOBC6XtDJhRPMHwJGSVgLOWpbAZnYGcEbJ7peAUWUe7pxzLgfV9j6aCgyRtErcfj9z+PoUCXPOOZe/JjMFSYeY2dWSvl+yHwAzq0kXVeecc61DcyWFleLfnqkT4pxzrv6azBTMbHz8+4t8kuOcc66emqs+Or+p42Z2Ym2T41zr5qNhXXvXXJfU6fHWHdgMeD7ehgM+g6lzzrUzzVUfXQkg6Vhgm8K8RJL+CNyXPnnOOefyVO3gtVWBXpntleM+55xz7Ui1g9fOBh6XNJkweG074OepEuWcc64+qh28doWkfwJbEGZLPdXM3kiaMuecc7mrtqQAYfqJbeN9A/5W++Q455yrp4qZgqTtgIfM7HNJZwMjgWvi4RMlbWVmP8ojkc5V4l1EnautphqaFwF/jPd3B3Y2s8vN7HLCgjh7pE6cc865fFUsKZjZo5I+yuzqDbwT76+SMlHOOefqo7lxCrPi3bNYuvfRaYnT5pxzLmfV9j66VtIUQrsCeO8j55xrl6oavCZpH+BjM7vNzG4DFknaO2nKnHPO5a7aEc1nZBfWMbP3WHrVNOecc21cteMUymUeLRnj4JxzS0nVpRi8W/GyqrakME3SuZLWi7dzCbOnOueca0eqzRROAD4DJgLXEcYwHJ8qUc455+qj2t5HH+FdUJ1zrt2rtqTgnHOuA/BMwTnnXJFnCs4554qqHby2oaRJkp6K20Ml/WR5AkvqLelGSc9KekbSVpJWk3SXpOfjX1/dzTnnclRtSeFPwOnA5wBmNhM4cDlj/wH4l5ltBAwDniE0Zk8ysw2ASXjjtnPO5araTGFFM3u0ZN/iZQ0qaRXCpHqXAZjZZ3GU9F7AlfFhVwJ7L2sM55xzLVdtpvC2pPUIK64haV9g3nLEHQjMB66Q9LikSyWtBPQ1s8J53wD6lnuypKMlTZM0bf78+cuRDOecc1nVZgrHA+OBjSS9BowDjl2OuF2AzYCLzWxTYKlxEGZmxEyolJldYmYjzGxEnz59liMZzjnnsqodvPYSsFP8Nd/JzBYuZ9y5wFwzeyRu30jIFN6UtKaZzZO0JvDWcsZxzjnXAk1mCpK+X2E/AGZ27rIENbM3JL0qaZCZzQZ2BJ6Ot7HA2fHvrctyfuecc8umuZJCz/h3EGGBndvi9jeA0obnljoBuEZSN+Al4HBCddb1kr4DvAzsv5wxnHPOtUBzy3H+AkDSvcBmhWojST8H/r48gc1sBjCizKEdl+e8zjnnll21Dc19CbOkFnxGhZ5Bzjnn2q5qF8q5CnhU0s1xe29gQooEOeca+CI0Lm/V9j76laR/AtvGXYeb2ePpkuWcc64eql5S08weAx5LmBbnnHN15rOkOuecK/JMwTnnXFHV1UeS+hLGKgA8amY+2tg559qZatdT2J8wWG0/woCyR+KkeM4559qRaksKPwZGFkoHkvoAdxPmLHLOOddOVNum0KmkumhBC57rnHOujai2pPAvSXcA18btA4B/pEmSc865eql28NrJkr4JbBN3XWJmNzf1HOecc21P1b2PgAeBJcAXwNQ0yXHOOVdP1fY+OpLQ+2gfYF/gYUlHpEyYc865/FVbUjgZ2NTMFgBIWp1Qcrg8VcKcc87lr9oeRAuA7BKcC+M+55xz7Ui1JYUXCAPWbgUM2AuYWViuc1mX5XTOOde6VJspvBhvBYW1k3uWeaxzzrk2qtouqb9InRDnnHP112SmIOlCM/uepL8Rqo0aMbM9k6XMOedc7porKRwKfA/4bQ5pcc45V2fNZQovApjZPTmkxTnnXJ01lyn0KfQwKsd7HTnnXPvSXKbQGVgZUA5pcc45V2fNZQrzzOzMXFLinHOu7pob0ewlBOec60CayxR2TBlcUmdJj0u6PW4PlPSIpBckTZTULWV855xzjTWZKZjZO4njnwQ8k9k+B/i9ma0PvAt8J3F855xzGXVbUlNSP+DrwKVxW8AYGtZ9vhLYuy6Jc865Dqqe6yyfB5xCWLQHYHXgPTNbHLfnAmuXe6KkoyVNkzRt/vz5yRPqnHMdRV0yBUl7AG+Z2fRleb6ZXWJmI8xsRJ8+fWqcOuec67hashxnLW0N7Clpd6A70Av4A9BbUpdYWugHvFan9DnnXIdUl5KCmZ1uZv3MbABwIPBvMzsYmExY7hNgLA1TdDvnnMtBPdsUyjkV+L6kFwhtDJfVOT3OOdeh1Kv6qMjMpgBT4v2XgFH1TI9zznVkra2k4Jxzro48U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfkmYJzzrkizxScc84Vdal3AjqSAYv+kuzcc5Kd2TnXkXhJwTnnXJFnCs4554o8U3DOOVfkmYJzzrmiumQKktaRNFnS05JmSTop7l9N0l2Sno9/V61H+pxzrqOqV0lhMfADM9sY2BI4XtLGwGnAJDPbAJgUt51zzuWkLpmCmc0zs8fi/YXAM8DawF7AlfFhVwJ71yN9zjnXUdW9TUHSAGBT4BGgr5nNi4feAPpWeM7RkqZJmjZ//vx8Euqccx1AXTMFSSsDfwXGmdkH2WNmZoCVe56ZXWJmI8xsRJ8+fXJIqXPOdQx1yxQkdSVkCNeY2U1x95uS1ozH1wTeqlf6nHOuI6pX7yMBlwHPmNm5mUO3AWPj/bHArXmnzTnnOrJ6zX20NfBt4ElJM+K+HwFnA9dL+g7wMrB/fZLnnHMdU10yBTO7H1CFwzvmmRbnnHMN6t77yDnnXOvRoafOTjWV9ZwkZ3XOufS8pOCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhV5puCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhV5puCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhW1ukxB0m6SZkt6QdJp9U6Pc851JK0qU5DUGfh/wNeAjYGDJG1c31Q551zH0aoyBWAU8IKZvWRmnwHXAXvVOU3OOddhyMzqnYYiSfsCu5nZkXH728AWZva9kscdDRwdNwcBs3NI3hrA2znEqVe8esT0eB6vtcdsz/HWNbM+pTu75BS8pszsEuCSPGNKmmZmI9prvHrE9Hger7XHbO/xymlt1UevAetktvvFfc4553LQ2jKFqcAGkgZK6gYcCNxW5zQ551yH0aqqj8xssaTvAXcAnYHLzWxWnZNVkGt1VR3i1SOmx/N4rT1me4+3lFbV0Oycc66+Wlv1kXPOuTryTME551yRZwouN5K2rmZfW9Xer8/VnqSB1ezLk2cKFUj6czX7ahhPkg6R9LO43V/SqFTxMnHXlbRTvN9DUs+E4S6ocl/NtOfrk3RONftqGG9FST+V9Ke4vYGkPVLFy8TdRtLh8X6f1F+aOb9n/lpm340J4zWrVfU+amU2yW7EeZk2TxjvIuALYAxwJrCQ8IYZmSqgpKMII8NXA9YjjAv5I7BjjeNsBXwV6CPp+5lDvQi9zJJo79cH7AycWrLva2X21coVwHRgq7j9GnADcHuieEg6AxhBmLngCqArcDWQpASW43tmI8J3zCqSvpk51AvoXstYLeWZQglJpwM/AnpI+qCwG/iMtN3FtjCzzSQ9DmBm78axGikdT5hv6pEY83lJ/5UgTjdgZcL7Lfur6wNg3wTxCtrl9Uk6FjgO+LKkmZlDPYEHah0vYz0zO0DSQQBm9rEkJYwHsA+wKfBYjPl64l/ueb1nBgF7AL2Bb2T2LwSOShCvap4plDCzs4CzJJ1lZqfnGPrzWBoxCMVkQskhpU/N7LPC51pSl0L8WjKze4B7JE0ws5cl9Qq7bWGtY5Vor9f3F+CfwFlAdnr5hWb2TqKYAJ9J6kHDe3Q94NOE8QA+MzOTVIi5UuJ4eb1nbgVulbSVmT1U6/MvD88UKjCz0yWtDaxL5nUys3sThTwfuBn4L0m/IvzC/EmiWAX3SCqUinYm/Pr8W8J4fSTdTvw1Lel94Agzm54oXru8PjN7H3ifMLX8ZsA2hC+uB4CUmcIZwL+AdSRdQ6jCOSxhPIDrJY0HeseqnSOAPyWMl/d75oUYbwCNv2eOSBizST54rQJJZxOm2XgaWBJ3m5ntmTDmRoS6SwGTzOyZVLFivE7Ad4BdYsw7gEst0ZsiVnUcb2b3xe1tgIvMbGiieO39+n4K7A/cFHftDdxgZr9MES/GXB3YkvB6PmxmyWf0jF/Oxf+hmd2VMFbe75kHgfsIbTWF7xnMrFwDdC48U6hA0mxgqJmlLh4X4m0JzCpUOcQqiK+Y2SMJY64ELDKzJXG7M7CCmX2cKN7jZrZpyb7HzGyzFPHylvf1xffoMDNbFLd7ADPMbFCiePsA/44lFST1Bkab2S0p4sUYA4F5JdfY18zmJIqX92dihpkNT3HuZeVdUit7idDTIS8XAx9mtj+M+1KaBPTIbPcA7k4Y7x5J4yWNlrS9pIuAKZI2i9UgNSHpSUkzK91qFaeMXK4v43Ua91RZgbSzCp9RyBAAzOw9QpVSSjfQuG1tSdyXSt6fidsl7Z7w/C3mbQqVfQzMkDSJTGOamZ2YKJ6yRVQz+yI2cqXU3cyKGZGZfShpxYTxhsW/pV8kmxLqxMfUKE7yvvMV5HV9Be8DsyTdFc+/M/CopPMhyXu13I/I1O/RLnEVRgBiI3DKXnl5fyZOAn4k6TNCD0eFsNYrYcwmeaZQ2W3kO233S5JOpKF0cByhtJLSR5I2M7PHACRtDnySKpiZ7ZDq3CVxXs4jTpm4uVxfxs3xVjAlcbxpks4lrKMOoftmqk4CBfMl7WlmtwFI2ou0K5Pl/ZlI2b12mXibQhNi/WV/M0u+3GfsC30+4dekEYqx48zsrYQxRwATCdUQAr4EHFDr3jKSDjGzq9V4YFeRmZ1b43j3m9k2khbSuDthkl9heV9fvcT69p8COxFe17uAX5nZRwljrgdcA6wVd80Fvm1mLyaKl8tnIhNPwMHAQDP7X0nrAGua2aMp4lXDSwoVSPoG8FvCwKSBkoYDZ6bofRQbs35vZgfW+tzNxNwW2IgwkAZgtpl9niBcoW95Xr+KDoVcf4Xlen2Srjez/SU9SZk+9Cl6O8X3y+15loZizGPNbEtJK0OozkkcL6/PREF2JoP/JbQl/j8SzmTQHC8pVCBpOuEfNaXQo0TSU2Y2OFG8+4Ex2frT1CQ9ambJ51eKsToDJ5rZ73OINd3MNpc0ycxqOj1BEzHzvL41zWyepHXLHU9VfRbb176ZbWxOTdLDZrZljvFy+0zEeI9ZnMkg8z3zhJkNa+65qXhJobLPzex9NR7Fn3KE8UvAA5JuA4rF8cRVDw9IupBQXM7GfKzWgcxsicL0CMm/NIFOcUDQhuWqdFK8pnleX8wQOgMTcm7H+BB4MjZsZ98vqTpfADwePxM3lMS8qfJTlktun4moHjMZNMkzhcpmSfpvoLOkDYATgQcTxnsx3jqRXzXL8Pj3zMy+FL1kCvL6wB1IGMhVOhdRanlnsl9IWiXHX+430TBQLi/dgQU0fk9awnQMj3/z+kzUYyaDJnn1UQWxG9qPaTyy8X8Lg2hcy0maXGa3mVmSD5ykr5nZP1Ocu0K8vK/vVkJ31zx/ubsaU84zGTSbHs8UWof4hVKu0TDVLxQU124oE/PMcvtd6yJpbLn9ZnZlonj/ofx79Msp4sWYV1SImWRuoHp8JiStCqxD47mPUlVXNcurjyqIXdPKTVSVZB4b4IeZ+92BbwGLE8UqyHYl7E4Y9JXsV4qkXwO/iSNhCx+GH5hZXYvLtVKH67uRMlMyJIoFYV2Dgu7AfoR1B1LKrtXQnTCV9usJ4+X9mfhfwqSCL9KQ+aWsrmo+TV5SKE9hXpmTgSfJNPzkOTCqDj0hViBMODY60fnznhtoBSuZu6rcvhrGy/v6HgZ2KnTTjN027zSzr6aIVyEN080s5eJTpfE6AffndY05fCZmA0Py7HXYHC8pVDa/MIoyD5Kyv7g6EVZ5WyWv+NGKhJWmUumc/VKOgwNT/rJ9CCj9Qi63r1byvr5cp2Qomb+pE6HkkPd3yAZAikVvKkn9mXiKsNBOskGqLeWZQmVnSLqUMLI4O/dRql4P0wnFRhGqjf5DmMI3mZLBT52BPjTudVFr1wCTYj0xwOFAzeu/JX0JWJswJ/6mhNcUwlKHKeexyeX6MnKdkgH4Xeb+YmAOYeruZDKj0hX/vkG65Ubr8Zk4i9Dt9ikaf88km6K/OV59VIGkqwkjG2fRUH1kqRq46qFk8NNi4E0zS9qOIWk3wjQJAHeZ2R0JYowl1NOOAKbSkCl8AFyZMGPP5foysUYC15HTlAwdQd6fCUmzgPEsXU19T6qYzabJM4XyJM22RPPSV4jXFTgW2C7umgKMTzzEHknDCEP7Ae41s2RTS8e5cz6xMAPsIMJUAv9MdY2SvmU5LlaS9/XFmF3JaUoGSasQZoAtvEfvIUz9knSchKQ9MzGnmNntTT2+BvHy/ExMNbO6TWlRjq+nUNmDkjbOMd7FhHaEi+JtcxKvpyDpJEKVx3/F2zWSTkgY8l6gu8Iyp/8Cvg1MSBhv7/hFBoRfgXGqhlRyvT5J+xHaFZ4iDNabqDTrNhRcTlhYfv94+wC4oslnLCeFFRBPIqyA+DRwUuzllSpe3p+J+ySdJWkrxXU3Ev8Pm2dmfitzI3RD+wyYDcwkFO9mJoz3RDX7ahxzJrBSZnulxNf4WPx7AnBKvD8jYbzvAs8CuwNHAc8B32hH1zcz/t0GmAx8HXgkYbylriXl9RWuEeiU2e6c+D2a92dicpnbv1O+ps3dvKG5st1yjrdE0noWpwSW9GUya7YmopIYS2iof08ST9JWhKmCC43onVMFM7Pxsc52MmEO/k3N7I1U8cj5+mj4330d+JOZ/V1SsvWZgU8kbWNm9wNI2pq0DdsFvYF34v3UPfJy/UxY/mtwNMszhcrybmw5GZgs6SXCm3BdQu+VlK4AHpF0c4y5F3BZwngnAacDN5vZrJjxlZsaoiYkfZsw//+hwFDgH5ION7MnEoXM9fqA1ySNJ6y4dk7sU5+ySvhY4MpYJSfCF/VhCeNBQ++cyTHmdsBpCePl+plojbMKeENzBZmuaSKMbBxIaMjbJGHMFWjcaJhkkFVJzM0I1Q8A95nZ46lj5kXSLcDRFhcqkjQKuMRa2ULpyyqOSdgNeNLMnpe0JmEg1J2J4/YCMLMPUsbJxFuThvUFHk1c2sv1MyHpB5nN4ghqq2MvR88UqhTfKMeZ2ZGJzr8f8C8zWyjpJ4QBVr+0hHOgKKxqNdfMPpW0AzAEuMriNA3thaQVzezjeL+btaLRo21JbIS9gtDY/CfCe/S0lJlQrKKaYWYfSTokxvyDpVszoq6fidQjqKvhvY+qFL+ct0gY4qcxQ9iGMGPiZSTufQT8ldCWsT7wR8KkXH9JHDM3sUfH04TG5kJXw/Pqmqi27YhYOtgFWJ3Qu+rsxDEvBj6O/7vvE+YIuiphvHp/JlKPoG6WtylUoMaLs3Qi/EJJORFX3o2GAF+Y2WJJ3wQuNLMLJKUsKq9hZikXXS91HrArcBuAmT0habsmn+GaUmhw3Z3w63mWpJQdEwAWm5lJ2gv4f2Z2maSUI/3z/kzkPYK6WZ4pVJZdnGUx8HfCr4hU8m40hLDq00GEhthvxH1dax1EYb3ry4HFkpYA+5tZygWLiszs1ZLvrWQ9uhRWzTqKpWfWTTXN8wnA1Wb2borzlzFd0p2E9rXTJfUk/SphCyWdDhwCbKcwIV7N36MZuXwmMvbI3M9lVoHmeKZQgZn9IueQ+xMaDX9rZu/FxrWTE8c8HDgG+JWZ/UfSQODPCeL8CtjWzJ6VtAXwG2D7BHEAkLSlmT0MvCrpq4DFkb8nkXAaZOBW4D7gbtJ3JwboC0yV9Bgh073D0jYSfoewMtlLZvaxpNVJ30PuAOC/ge+Y2RuS+gP/lzBeXp+JgjWBWWa2EEBST0kbm9kjCWM2yRuaK1BYh3Y/azw3/nVmtmtdE9YGqWT66NLtVPEkrQH8gTAXkYA7gZPMbEGiuDPy7tkUq292IXyZjQCuBy4rjHdxrVusmtqskJnHktC0lJ+P5nhJobI+2R4HZvaupDyn7G1P/qukjabRtpmdmyJobL84OMW5K7hd0u5m9o+8Asb69jcIs4cuBlYFbpR0l5mdklc63DJTtnRnYd6sun4ve6ZQ2RJJ/c3sFSjOnujFqmXzJxq30ZRu19qXJVVcC8PSTUt8EvAjSZ8BhYnpzMx6pQgWu4geShitfSlwspl9Hn9tPg94ptD6vSTpRBp6Gh4HvFTH9Him0IQfA/dLuodQ9bAtcHStg8Sub33N7IGS/VsDb7SHaoA6tM/Mp/Hc/7kws5QZXTmrAd8s7bMff23uUeE5yy2WmLtn4r2SIEYfQmn96ZL9GxMWwJpf65glcYpjWxI7BjgfKCzZejcJvmdawtsUmhDrpLeMmw+n6E4p6XbgdDN7smT/EODXZvaN8s+saRpON7OzEp7//KaOm9mJNY73uJUsi5kX5T/Nc2H0rQEPJB7suCchs12LsFLYuoTRtzUf5S/pOuAiM7u3ZP+2wLFm9t+1jhnP/1VCqWtlM+sfx0d818yOSxGvNfLBa037KjA63rZs8pHLrm9phgAQ9w1IFLPUfonPPz1z27NkO8WCMP9JcM5mqfw0zykz258SVnZbHVgDuCKOhk/lfwmfg+fMbCBhkOXDiWKtX5ohAJjZfYR5rFL5PWFsy4IY7wkaMvmak9RP0s2S3oq3v0qq6+A1LylUED/gIwlzqwMcBEw1sx/VOM7zZrZBhWMvmNn6tYxXIU7S3kAlsZL/ipf0LZpo/7FEK69JmgkMN7Mv4nZn4HEzS/IlprDo+zAzWxS3exCmhEiyOJSkaWY2QtIThBlnv5D0hJkNSxCr4iJXTR2rQdxHzGyL7Ps01TXGc99FGDFd6PZ6CHCwme2cIl41vE2hst1p/AG/EngcqGmmAEyTdJSZ/Sm7U9KRpPkVXTj/f2iY8G9NNczOamb25VRxyaexvlCf/l+E0t6/4/YOwINAsuU4yXea59cJdfuL4vYKwGsJ470naWXCYkLXSHoL+ChRrBfK9eSS9DXSNsTmPbalj5llFyqaIGlcwnjN8kyhab1J/wEfB9ws6WAaMoERQDdgn0QxicV/oL518CmY2eEAcfTtxmY2L26vSdqV3nKZ5lnSBYTM9X1gVvy1aYTR8I/WOl7GXoT1E/6H0NV3FdJNyTAO+Luk/Wn8udiKxqOAa+0YwtiWtQkZ7J3A8QnjLVCY6O/auH0QseqqXrz6qII41P1swnz4xQ+4mU1MFG8HYHDcnGVm/27q8TWOnTRTkLSQhlJJD6DQq6NQMknVZfMZM/tKZrsT4bX9ShNPW96Yyad5ljS2qeNmdmWtY8a43wcmmlnK0kg23gqE0czFzwXwl0J1WXsQu7pfQMjsjFCSPTFFj66q0+SZQmV5fMBbA0kXmtn36p2OWpN0IbABDb/CDgBeMLNka+4qrM+8Lo3nPlqqwbQtknQGYTqWd4CJwA1m9maO8fdI1ZsrU/oqq9Y95FozzxRKqJlFs1N2+WuvJHUnFMvXJ6yBe7nlNOmXpH1o6D1yr5ndnDDWOYSMZxYNE8VZqsFymXahRhK3CSFpKOE6v0VYe2CnlPEycZN1iMi79NWaMyFvU1haYdBTd0Id5hOEao6hwDRCMa9dkbSJmc1KGOJKwgjf+wgN+JsQGvDy8Biw0MzulrSipJ4WJx9LYG9gkOWwYl40InO/O6Fr8Wo5xH2LMK3GAkJjfl5SrpWcpMqtCdPi362BjQklLwj/w6fLPiMnXlKoQNJNwBmFMQSSBgM/N7N965uy2sthgronzWxIvN+FUBWXvAuspKMIo0NXM7P1JG0A/NHMdkwU75+ESRQ/THH+KtMw3cw2T3Tu4wjVR32AG4DrS0ccpyRplJmlbEgndhIoV/oakyjew8A2hZJz7PF0n5mlGhfVLC8pVDYoO6jMzJ6SlKyBss5SL5RSmAcICwuYJA5XdDwwCngkxn5eCSY1zFQFfAzMkDQJKJYWUlUFlFR1diKUHFJ+ptcBxpnZjIQxGlFYh/oHQH8zOypm7IMSjhT/YeZ+d0IVWcqqzlWBXjT0clw57qsbzxQqmynpUuDquH0woT68XYiNhoUeQX0l/axwzMxq3c1wmKTCIu8CesTtpL2PgE/N7LNCJhRLKSmKxoWqgOnEVd4yUhbFs/M7LQbmkHB0upmdDvnMfZRxBeF1LVTbvkYopSTJFMysdGzQA5JSlk7OZuluzD9PGK9ZnilUdjhwLA113/eSfs3kPM3J3P8cSLIQOoCZdU517mbcI+lHhExoZ8IMlH+rdZBCfbSkk8zsD9ljCjOZJmFmO5TE6gwcCDyXIp7CCnrnUjL3EaGNKJX1zOyA2EUcC4v7JCtqSsq2yXQCNifhIEQzuyJWOxbWfz+13r0cvU3B5TrNRZ7il8eRhEVoBNwBXGqJ3vTlXscUY0Ak9SJUja1NWO3t7rj9A2Cmme1Vy3iZuE8AY4C7zWzTOLbmEDNLtmaypAcJcyw9YGHhpPWAa81sVKJ42ZH+iwnzaJ1pZveniNcaeUnBQfo2hdzFX82zzGwjwvoNKWMdRBhkNVCN13HoSUNdcS39GXgXeIiwJvSPCf/DfRLX939uZgskdZLUycwmSzovYTwIVSn/AtaRdA2ht85hqYJlR/p3VJ4pOAi/xNoVM1siabYyCyUl9CAwjzBTabaefyFp2qG+nOnNdWmM3T+Hkb6FuY/uI/3cRwCY2Z2SphNmZxVhOdUUU9h/s5l0pJwvq1XxTKEFJP3WzH7Y/CNbN5Us7GNm78T97WZhn2hVwtxAj5L58qr1YDILi9y8LOlaQvXNu7U8fxnZ3lxLJM3NaeqHPQmT751EmM2zF5B0ASVJfyPMInqbmaXMgArrluQ2iWKs3hxFqAaE0Ij+aKrqzWp5m0ILSHrFzPrXOx3LS61gYZ88SNq+3H4zuydRvF8SGnofAy4H7kjxAZe0hIZMLjufVJLeXJm5qxrtjn8XAS8CPzazSbWMG2NvTxg9/XVgKnAdcHuqTDBOojjWSiZRNLNdaxxnF+AiwrKphbmk+hFG/R9nZnfWMl6L0uaZQvUkvWpm69Q7HctL0lQzG1nhWHGgmWu5+OtvF0LvtRHA9cBl7aj01UhsuxkMXGNmg5t7/HLGGUNoQ9ktVTfmvCZRlPQM8DUzm1OyfyDwj1rHawmvPipR0iWt0SHaT4Ns7yaO9cgrEamV/MLtBnQFPko4LgIzM0lvEKaBWEyowrpR0l1mdkqquPViZkuAJ+IAviQUFg/6BqHEsBlh2pRUJkm6g8aTKN6dIE4XYG6Z/a8R3qd145nC0qbT0CWt1Odl9rVFdVnYJ29m1rNwP/6C34t0y6oWxiQcCrxNWOf3ZDP7PP7afB5od5lCgZmNT3FeSdcT6t3/BVwI3GNx4asUzOx7JZMoXpJoEsXLgakKa1G/GvetQ6h+vCxBvKp59VEHJKkvcDPwGWUW9qn34JmUUowbyJz7F4QZYJcaCCjpK2aWcgWvdknSroRxEUtyjNmXkBEZoeH3rURxvkL4oZJtaL4tz/mkyvFMoYQ60NTZquPCPnko6WZYmBtoezOr6Uy3ajw1+JOENoRcpgZvrySNMbN/V+oqmqqLqMJKb/8HTCHUFmxLKPHdmCJea+SZQglJXwBPEaoAoHE1kqWaLdHVnqTs2reFuYH+VOtffpIm0jA1+NeAl80sr6nB2yVJvzCzM0r+hwVmZkckivsEsHPhPSKpD6GkMixFvApp+LmZ/TyveKW8TWFp3wf2JaxFex1ws9VxKmS3XC4tjMUoiGMxal0dsHFmMNllpF0nuUMwszPi3TPN7D/ZY7GHTiqdSn40LCCUMvNU13a9vC+21TOz88xsG+AEQsPPJEnXSxpe35S5ZVCuR0yKXjKNpgZPcP6O7K9l9qWsyvmXpDskHSbpMODvwD8TxluKmdV80saW8JJCBWb2kqRbCV00vw1sCMyoa6JcVSRtRRiV2kdhsfmCXkCKGVvrNTV4uyVpI8Lsq6uUtCv0IjNtd62Z2cmSvkWYYwnS9T6qSNLPrPbT11fNM4USkr5M6Ba2F6Gr2HWEUb6f1DVhriW6ERYr6UKYlK7gA0LVYE1Z/aYGb88GAXsQxtRkR9gvJAxgS8bM/irpLuL3o6TVClPB5ORIoG6Zgjc0l4gNzTMJUxJ/QMnwfjM7tx7pci0nad1y3UNd2yFpKzN7KMd43yXM57QI+IKG0t6Xaxzng0qHgB5mVrcf7N6msLRfEPrwf0H4tdmz5Obajksl9S5sSFo1jlZ1bccxZf6HlyeM90NgsJkNMLMvm9nAWmcI0XvABmbWq+TWkzDrbd149dHSFpjZhfVOhKuJNczsvcKGmb2rBGs0u6SGlvkfJhl8GL1ImFwwtasIK9e9WebYX3KIX5FnCks7gjCc3rV9X2TXU5C0LmnXTHa110nSqoXpyOPcZCm/t04HHpT0CPBpYaeZnVjLIGb2kyaOnVrLWC3lmYJrz34M3C/pHhpGpx5d3yS5Fvod8JCkG+L2fsCvEsYbT1hL4UlCFXKH4w3NJSQtpnzx0bsXtkGS1qBhEryHLcGqXS4tSRsTps0G+HfKuYFSzo3VVnimUMLfFO2HpO3K7Teze/NOi1t2krYhNMpeEaedWLl0lHMNY/2aMB3K32hcfZRnl9S68kyhhGcK7UdcyrGgO2Hmy+k+f1XbIekMwkSGg8xsQ0lrATeY2dbNPHVZ45XLbGreJbWZNNR1hUdvU1jaDc0/xLUFVrKsqKR1gPPqkxq3jPYBNiUscYqZvS4pWddwM0s5r1K16rqYl2cKS1tT0vmVDta6F4LL1VygbsscumXyWVzNzgAkrVTvBOWgrtU3niksbVrm/i+AMyo90LVucYnIwgesEzCc+IvTtRnXSxoP9JZ0FKHL+J+aeU6rVzInV6NDhEGzdeNtCk3w9oW2TdLYzOZiYE7pVNqu9ZO0M7AL4QvzDjO7q85JWm6xraQiM/tFXmkp5ZlCEyQ9ZmZNrsTmWidJnYGrzOzgeqfFtT2SVibMjPxSdkR1R+DVR65dMrMlktaV1M3MPqt3elzLSLrfzLaRtJDydewLgP8zs4tqFO8iMzsu3t+GMNXEi8D6kr5rZv+oRZxMvIrtllDftksvKZQoeROuSMNANh+81sZIuorQsHwb8FFhv8902/ZJWh140MwG1eh8xVoBSZOBH5jZY3Eq/evNbEQt4mTifUZY9vd64HVKehyZ2ZW1jNcSXlIoEWcpdO3Di/HWiYYZbv1XUBsjaTNgG8L/7n4ze9zMFkganShkLzMrdIF9SVKK2aTXJEzZcQChvWsicGNrqKrykoJrtyTtZ2Y3NLfPtV6Sfkb48rwp7tqbMHjtlzWO8zHwAuEX+wCgf5yRtRMw08wG1zJeSex+hIW9vg+camZ/ThWrqvR4puDaq3IdBbzzQNsiaTYwzMwWxe0ewIxaVRtl4qxbsmuemX0W587azsxuKve8GsTdDDgI2BmYDvwu5dxO1fDqI9fuSPoasDuwdkmDXi9CUd21Ha8TpihZFLdXAF6rdZBKK/TFCRRrniFIOhP4OvAMYcnf082sVbw3vaTg2h1JwwgD1c4EfpY5tBCYXJib37VemYGH/YGRwF1xe2fgUTP7Zo3jPUn59qZCB5OhNY73BfAfGjqyFGInidcSnim4dktSVzP7XFJXYDDwmpm9Ve90ueaVDDxcSq1755SpPiqNV9O1vvOO1xKeKbh2R9IfgQvMbJakVYCHgCXAasAPzezauibQVU1Sd2D9uPlCoW0hUazOwN1mtkOqGJlYxRUByxzb1szuS52GSlJ0tXKu3rY1s1nx/uHAc2Y2BNgcOKV+yXLVktRF0m8IkxheSVjT+FVJv4klv5ozsyWEJVxXSXH+ElMknRIzIgAk9ZV0NfD7HOJX5JmCa4+yI5h3Bm4BMLM36pIatyz+j1CyG2hmm8ceY+sBvYHfJoz7IfCkpMsknV+4JYizOeF6ZkgaI+kk4FFCqXZUgnhV8+oj1+7EEam/I/RSmQxsZGZvSOoCPGVmG9U1ga5Zkp4HNrSSL6j4y/pZM9sgUdyybRmpRhjHzOD3hF5WW5rZ3BRxWsK7pLr26LvA+cCXgHGZEsKOwN/rlirXElaaIcSdSwprKyQKemUcC9HfzGaniiOpN3AOsAWwG6EL9T8lnWRm/04Vt6q0eUnBOdfaSLoFuMnMrirZfwiwv5ntmSjuNwjVU93MbKCk4cCZtY4n6SXgIuC8wviEGOsi4GUzO6iW8VqUNs8UXHslaUPgYqCvmQ2WNBTYs9ZTJLjak7Q2YdDYJ4SRvhDWau4B7GNmNR/AFuNOB8YAUwprqUh6qtbTXEjqV6mqSNJRZla3hYQ8U3DtlqR7gJOB8Sk/4C4dSWOATeLm02Y2KXG8h81sy+wCW5Jm1nMwWd68TcG1Zyua2aNSo1mJW8VUAq46sX49zzr2WZL+G+gsaQPgRODBHOPXnXdJde3Z25LWI04hIGlfYF59k+RauRMIJZNPCQvtvA+Mq2eC8uYlBdeeHQ9cAmwk6TXCXDO+PKdbShw5fQxh9PSTwFatZYK6vHmbgmv3JK1EKBV/DBxoZtfUOUmulZE0EfgcuA/4GjDHzMbVNVF14pmCa3ck9SKUEtYGbgXujts/ICyYslcdk+daIUlPxqlQiIMcH+2o62549ZFrj/4MvEuYMuAo4MeEKYn3MbMZdUyXa70+L9wxs8UlnRM6FC8puHan5FdfZ0Ljcv+UM2y6tk3SEuCjwiZhPMTHNKxv0KteacublxRce5T91bdE0lzPEFxTzKxz84/qGLyk4Nod/9Xn3LLzTME551yRD15zzjlX5JmCc865Is8UnHPOFXmm4JxzrsgzBeecc0X/H9sRjZFUhN64AAAAAElFTkSuQmCC\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "values_ok = [guesses_ok[i] for i in range(len(CODE_TYPES))]\n",
- "values_bad = [guesses_bad[i] for i in range(len(CODE_TYPES))]\n",
- "x_positions = np.arange(len(CODE_TYPES))\n",
- "\n",
- "p1 = plt.bar(x_positions, guesses_ok)\n",
- "p2 = plt.bar(x_positions, guesses_bad, bottom=guesses_ok)\n",
- "\n",
- "plt.ylabel('Tipo de código')\n",
- "plt.title('Aciertos o no, por tipo de código')\n",
- "plt.xticks(x_positions, CODE_TYPES, rotation=90)\n",
- "#plt.yticks(np.arange(0, 81, 10))\n",
- "plt.legend((p1[0], p2[0]), ('Correcto', 'Incorrecto'))\n",
- "\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.2"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/macros/latex/contrib/jupynotex/jupynotex.py b/macros/latex/contrib/jupynotex/jupynotex.py
index 036be088ce..53f27dec91 100644
--- a/macros/latex/contrib/jupynotex/jupynotex.py
+++ b/macros/latex/contrib/jupynotex/jupynotex.py
@@ -1,64 +1,202 @@
-# Copyright 2020 Facundo Batista
+# Copyright 2020-2024 Facundo Batista
# All Rights Reserved
# Licensed under Apache 2.0
-"""USAGE: jupynote.py notebook.ipynb cells
-
- cells is a string with which cells to include, separate groups
- with comma, ranges with dash (with defaults to start and end.
-"""
+"""Convert a jupyter notebook into latex for inclusion in documents."""
+import argparse
import base64
import json
+import pathlib
+import re
+import subprocess
import sys
import tempfile
+import textwrap
import traceback
+# message to help people to report potential problems
+REPORT_MSG = """
+
+Please report the issue in
+https://github.com/facundobatista/jupynotex/issues/new
+including the latex log. Thanks!
+"""
+
+# basic verbatim start/end
+VERBATIM_BEGIN = [r"\begin{footnotesize}", r"\begin{verbatim}"]
+VERBATIM_END = [r"\end{verbatim}", r"\end{footnotesize}"]
+
+# highlighers for different languages (block beginning and ending)
+HIGHLIGHTERS = {
+ 'python': ([r'\begin{minted}[fontsize=\footnotesize]{python}'], [r'\end{minted}']),
+ None: (VERBATIM_BEGIN, VERBATIM_END),
+}
+
+# the different formats to be used when error or all ok
+FORMAT_ERROR = r"colback=red!5!white,colframe=red!75!"
+FORMAT_OK = (
+ r"coltitle=red!75!black, colbacktitle=black!10!white, "
+ r"halign title=right, fonttitle=\sffamily\mdseries\scshape\footnotesize")
+
+# a little mark to put in the continuation line(s) when text is wrapped
+WRAP_MARK = "↳"
+
+# the options available for command line
+CMDLINE_OPTION_NAMES = {
+ "output-text-limit": "The column limit for the output text of a cell",
+}
+
+
+def _validator_positive_int(value):
+ """Validate value is a positive integer."""
+ value = value.strip()
+ if not value:
+ return
-def _verbatimize(lines):
+ value = int(value)
+ if value <= 0:
+ raise ValueError("Value must be greater than zero.")
+ return value
+
+
+def _process_plain_text(lines, config_options=None):
"""Wrap a series of lines around a verbatim indication."""
- result = [r"\begin{verbatim}"]
+ if config_options is None:
+ config_options = {}
+
+ result = []
+ result.extend(VERBATIM_BEGIN)
for line in lines:
- result.append(line.rstrip())
- result.append(r"\end{verbatim}")
+ line = line.rstrip()
+
+ # clean color escape codes (\u001b plus \[Nm where N are one or more digits)
+ line = re.sub(r"\x1b\[[\d;]+m", "", line)
+
+ # split too long lines
+ limit = config_options.get("output-text-limit")
+ if limit and line:
+ firstline, *restlines = textwrap.wrap(line, limit)
+ lines = [firstline]
+ for line in restlines:
+ lines.append(f" {WRAP_MARK} {line}")
+ else:
+ lines = [line]
+
+ result.extend(lines)
+ result.extend(VERBATIM_END)
return result
-def _save_content(data):
- """Save the received b64encoded data to a temp file."""
- _, fname = tempfile.mkstemp(suffix='.png')
- with open(fname, 'wb') as fh:
- fh.write(base64.b64decode(data))
- return fname
+class ItemProcessor:
+ """Process each item according to its type with a (series of) function(s)."""
+
+ def __init__(self, cell_options, config_options):
+ self.cell_options = cell_options
+ self.config_options = config_options
+
+ def get_item_data(self, item):
+ """Extract item information using different processors."""
+
+ data = item['data']
+ for mimetype, *functions in self.PROCESSORS:
+ if mimetype in data:
+ content = data[mimetype]
+ break
+ else:
+ raise ValueError("Image type not supported: {}".format(data.keys()))
+
+ for func in functions:
+ content = func(self, content)
+
+ return content
+
+ def process_plain_text(self, lines):
+ """Process plain text."""
+ return _process_plain_text(lines, self.config_options)
+
+ def process_png(self, image_data):
+ """Process a PNG: just save the received b64encoded data to a temp file."""
+ _, fname = tempfile.mkstemp(suffix='.png')
+ with open(fname, 'wb') as fh:
+ fh.write(base64.b64decode(image_data))
+ return fname
+
+ def process_svg(self, image_data):
+ """Process a SVG: save the data, transform to PDF, and then use that."""
+ _, svg_fname = tempfile.mkstemp(suffix='.svg')
+ _, pdf_fname = tempfile.mkstemp(suffix='.pdf')
+ raw_svg = ''.join(image_data).encode('utf8')
+ with open(svg_fname, 'wb') as fh:
+ fh.write(raw_svg)
+
+ cmd = ['inkscape', '--export-text-to-path', '--export-pdf={}'.format(pdf_fname), svg_fname]
+ subprocess.run(cmd)
+
+ return pdf_fname
+
+ def include_graphics(self, fname):
+ """Wrap a filename in an includegraphics structure."""
+ fname_no_backslashes = fname.replace("\\", "/") # do not leave backslashes in Windows
+ width = self.cell_options.get("output-image-size", r"1\textwidth")
+ return r"\includegraphics[width={}]{{{}}}".format(width, fname_no_backslashes)
+
+ def listwrap(self, item):
+ """Wrap an item in a list for processors that return that single item."""
+ return [item]
+
+ # mimetype and list of functions to apply; order is important here as we want to
+ # prioritize getting some mimetypes over others when multiple are present
+ PROCESSORS = [
+ ('text/latex',),
+ ('image/svg+xml', process_svg, include_graphics, listwrap),
+ ('image/png', process_png, include_graphics, listwrap),
+ ('text/plain', process_plain_text),
+ ]
class Notebook:
"""The notebook converter to latex."""
- def __init__(self, path):
- with open(path, 'rt', encoding='utf8') as fh:
- nb_data = json.load(fh)
+ GLOBAL_CONFIGS = {
+ "output-text-limit": _validator_positive_int,
+ }
+
+ def __init__(self, notebook_path, config_options):
+ self.config_options = self._validate_config(config_options)
+ self.cell_options = {}
+ nb_data = json.loads(notebook_path.read_text())
- self._cells = nb_data['cells']
+ # get the languaje, to highlight
+ lang = nb_data['metadata']['language_info']['name']
+ self._highlight_delimiters = HIGHLIGHTERS.get(lang, HIGHLIGHTERS[None])
- def __len__(self):
- return len(self._cells)
+ # get all cells excluding markdown ones
+ self._cells = [x for x in nb_data['cells'] if x['cell_type'] != 'markdown']
+
+ def _validate_config(self, config):
+ """Validate received configuration."""
+ for key, value in list(config.items()):
+ validator = self.GLOBAL_CONFIGS[key]
+ new_value = validator(value)
+ config[key] = new_value
+ return config
def _proc_src(self, content):
"""Process the source of a cell."""
source = content['source']
result = []
if content['cell_type'] == 'code':
- result.extend(_verbatimize(source))
- elif content['cell_type'] == 'markdown':
- # XXX: maybe we could parse this?
- result.extend(_verbatimize(source))
+ begin, end = self._highlight_delimiters
+ result.extend(begin)
+ result.extend(line.rstrip() for line in source)
+ result.extend(end)
else:
raise ValueError(
"Cell type not supported when processing source: {!r}".format(
content['cell_type']))
- return '\n'.join(result) + '\n'
+ return '\n'.join(result)
def _proc_out(self, content):
"""Process the output of a cell."""
@@ -67,27 +205,30 @@ class Notebook:
return
result = []
+ processor = ItemProcessor(self.cell_options, self.config_options)
for item in outputs:
output_type = item['output_type']
- if output_type == 'execute_result':
- data = item['data']
- if 'image/png' in data:
- fname = _save_content(data['image/png'])
- result.append(r"\includegraphics{{{}}}".format(fname))
- elif 'text/latex' in data:
- result.extend(data["text/latex"])
- else:
- result.extend(_verbatimize(data["text/plain"]))
+ if output_type in ('execute_result', 'display_data'):
+ more_content = processor.get_item_data(item)
elif output_type == 'stream':
- result.extend(_verbatimize(x.rstrip() for x in item["text"]))
- elif output_type == 'display_data':
- data = item['data']
- fname = _save_content(data['image/png'])
- result.append(r"\includegraphics{{{}}}".format(fname))
+ more_content = processor.process_plain_text(item["text"])
+ elif output_type == 'error':
+ raw_traceback = item['traceback']
+ tback_lines = []
+ for raw_line in raw_traceback:
+ internal_lines = raw_line.split('\n')
+ for line in internal_lines:
+ line = re.sub(r"\x1b\[\d.*?m", "", line) # sanitize
+ if set(line) == {'-'}:
+ # ignore separator, as our graphical box already has one
+ continue
+ tback_lines.append(line)
+ more_content = processor.process_plain_text(tback_lines)
else:
raise ValueError("Output type not supported in item {!r}".format(item))
+ result.extend(more_content)
- return '\n'.join(result) + '\n'
+ return '\n'.join(result)
def get(self, cell_idx):
"""Return the content from a specific cell in the notebook.
@@ -99,58 +240,71 @@ class Notebook:
output = self._proc_out(content)
return source, output
+ def parse_cells(self, spec):
+ """Convert the cells spec to a range of ints."""
+ if not spec:
+ raise ValueError("Empty cells spec not allowed")
+
+ maxlen = len(self._cells)
+
+ cells = set()
+ options = {}
+ groups = [x.strip() for x in spec.split(',')]
+ valid_chars = set('0123456789-,')
+ for group in groups:
+ if '=' in group:
+ k, v = group.split("=", maxsplit=1)
+ options[k] = v
+ continue
-def _parse_cells(spec, maxlen):
- """Convert the cells spec to a range of ints."""
- if not spec:
- raise ValueError("Empty cells spec not allowed")
- if set(spec) - set('0123456789-,'):
- raise ValueError(
- "Found forbidden characters in cells definition (allowed digits, '-' and ',')")
-
- cells = set()
- groups = spec.split(',')
- for group in groups:
- if '-' in group:
- cfrom, cto = group.split('-')
- cfrom = 1 if cfrom == '' else int(cfrom)
- cto = maxlen if cto == '' else int(cto)
- if cfrom >= cto:
+ if set(group) - valid_chars:
raise ValueError(
- "Range 'from' need to be smaller than 'to' (got {!r})".format(group))
- cells.update(range(cfrom, cto + 1))
- else:
- cells.add(int(group))
- cells = sorted(cells)
+ "Found forbidden characters in cells definition (allowed digits, '-' and ',')")
+
+ if '-' in group:
+ cfrom, cto = group.split('-')
+ cfrom = 1 if cfrom == '' else int(cfrom)
+ cto = maxlen if cto == '' else int(cto)
+ if cfrom >= cto:
+ raise ValueError(
+ "Range 'from' need to be smaller than 'to' (got {!r})".format(group))
+ cells.update(range(cfrom, cto + 1))
+ else:
+ cells.add(int(group))
+ cells = sorted(cells)
- if any(x < 1 for x in cells):
- raise ValueError("Cells need to be >=1")
- if maxlen < cells[-1]:
- raise ValueError(
- "Notebook loaded of len {}, smaller than requested cells: {}".format(maxlen, cells))
+ if any(x < 1 for x in cells):
+ raise ValueError("Cells need to be >=1")
+ if maxlen < cells[-1]:
+ raise ValueError(
+ f"Notebook loaded of len {maxlen}, smaller than requested cells: {cells}")
- return cells
+ self.cell_options = options
+ return cells
-def main(notebook_path, cells_spec):
+def main(notebook_path, cells_spec, config_options):
"""Main entry point."""
- nb = Notebook(notebook_path)
- cells = _parse_cells(cells_spec, len(nb))
+ nb = Notebook(notebook_path, config_options)
+ cells = nb.parse_cells(cells_spec)
for cell in cells:
try:
src, out = nb.get(cell)
- except Exception:
+ except Exception as exc:
title = "ERROR when parsing cell {}".format(cell)
- print(
- r"\begin{{tcolorbox}}"
- r"[colback=red!5!white,colframe=red!75!,title={{{}}}]".format(title))
- tb = traceback.format_exc()
- print('\n'.join(_verbatimize(tb.split('\n'))))
+ print(r"\begin{{tcolorbox}}[{}, title={{{}}}]".format(FORMAT_ERROR, title))
+ print(exc)
+ _parts = _process_plain_text(REPORT_MSG.split('\n'))
+ print('\n'.join(_parts))
print(r"\end{tcolorbox}")
+
+ # send title and traceback to stderr, which will appear in compilation log
+ tb = traceback.format_exc()
+ print(tb, file=sys.stderr)
continue
- print(r"\begin{{tcolorbox}}[title=Cell {{{:02d}}}]".format(cell))
+ print(r"\begin{{tcolorbox}}[{}, title=Cell {{{:02d}}}]".format(FORMAT_OK, cell))
print(src)
if out:
print(r"\tcblower")
@@ -159,8 +313,19 @@ def main(notebook_path, cells_spec):
if __name__ == "__main__":
- if len(sys.argv) != 3:
- print(__doc__)
- exit()
+ parser = argparse.ArgumentParser()
+ parser.add_argument("notebook_path", type=pathlib.Path, help="The path to the notebook.")
+ parser.add_argument(
+ "cells_spec",
+ type=str,
+ help=(
+ "A string specifying which cells to include; use comma to separate groups, "
+ "dash for ranges (with defaults to start and end)"
+ )
+ )
+ for option, explanation in CMDLINE_OPTION_NAMES.items():
+ parser.add_argument(option, type=str, help=explanation)
+ args = parser.parse_args()
- main(*sys.argv[1:3])
+ config_options = {option: getattr(args, option) for option in CMDLINE_OPTION_NAMES}
+ main(args.notebook_path, args.cells_spec, config_options)
diff --git a/macros/latex/contrib/jupynotex/jupynotex.sty b/macros/latex/contrib/jupynotex/jupynotex.sty
index 205343d097..b79f622af6 100644
--- a/macros/latex/contrib/jupynotex/jupynotex.sty
+++ b/macros/latex/contrib/jupynotex/jupynotex.sty
@@ -1,7 +1,21 @@
-\ProvidesPackage{jupynotex}[0.1]
+\ProvidesPackage{jupynotex}[1.0]
\usepackage{tcolorbox}
+\usepackage{pgfopts}
+
+\newcommand*\jupynotex@outputtextlimit@value{}
+
+
+\pgfkeys{
+ /jupynotex/.cd ,
+ output-text-limit/.store in=\jupynotex@outputtextlimit@value
+}
+
+\ProcessPgfPackageOptions{/jupynotex}
\newcommand{\jupynotex}[2][-]{
- \input|"python3 jupynotex.py #2 #1"
+ \input|"python3 jupynotex.py '#2' '#1' '\jupynotex@outputtextlimit@value'"
}
+
+\endinput
+
diff --git a/macros/latex/contrib/jupynotex/tests/run b/macros/latex/contrib/jupynotex/tests/run
deleted file mode 100755
index a5fa69f44d..0000000000
--- a/macros/latex/contrib/jupynotex/tests/run
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-PYTHONPATH=. fades -d pytest -x pytest -sv "$@"
diff --git a/macros/latex/contrib/jupynotex/tests/test_cellparser.py b/macros/latex/contrib/jupynotex/tests/test_cellparser.py
deleted file mode 100644
index f9108f4bb8..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_cellparser.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import pytest
-import re
-
-from jupynotex import _parse_cells
-
-
-def test_empty():
- msg = "Empty cells spec not allowed"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('', 100)
-
-
-def test_simple():
- r = _parse_cells('1', 100)
- assert r == [1]
-
-
-def test_several_comma():
- r = _parse_cells('1,3,5,9,7', 100)
- assert r == [1, 3, 5, 7, 9]
-
-
-def test_several_range():
- r = _parse_cells('1-9', 100)
- assert r == [1, 2, 3, 4, 5, 6, 7, 8, 9]
-
-
-def test_several_limited():
- msg = "Notebook loaded of len 3, smaller than requested cells: [1, 2, 3, 4]"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('1-4', 3)
-
-
-def test_range_default_start():
- r = _parse_cells('-3', 8)
- assert r == [1, 2, 3]
-
-
-def test_range_default_end():
- r = _parse_cells('5-', 8)
- assert r == [5, 6, 7, 8]
-
-
-def test_not_int():
- msg = "Found forbidden characters in cells definition (allowed digits, '-' and ',')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('1,a', 3)
-
-
-def test_not_positive():
- msg = "Cells need to be >=1"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('3,0', 3)
-
-
-def test_several_mixed():
- r = _parse_cells('1,3,5-7,2,9,11-13', 80)
- assert r == [1, 2, 3, 5, 6, 7, 9, 11, 12, 13]
-
-
-def test_overlapped():
- r = _parse_cells('3,5-7,6-9,8', 80)
- assert r == [3, 5, 6, 7, 8, 9]
-
-
-def test_bad_range_equal():
- msg = "Range 'from' need to be smaller than 'to' (got '12-12')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('12-12', 80)
-
-
-def test_bad_range_smaller():
- msg = "Range 'from' need to be smaller than 'to' (got '3-2')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('3-2', 80)
diff --git a/macros/latex/contrib/jupynotex/tests/test_main.py b/macros/latex/contrib/jupynotex/tests/test_main.py
deleted file mode 100644
index fabfa4e01e..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_main.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import textwrap
-
-import jupynotex
-from jupynotex import main
-
-
-class FakeNotebook:
- """Fake notebook.
-
- The instance supports calling (as it if were instantiated). The .get will return the
- value in a dict for received key; raise it if exception.
- """
-
- def __init__(self, side_effects):
- self.side_effects = side_effects
-
- def __call__(self, path):
- return self
-
- def __len__(self):
- return len(self.side_effects)
-
- def get(self, key):
- """Return or raise the stored side effect."""
- value = self.side_effects[key]
- if isinstance(value, Exception):
- raise value
- else:
- return value
-
-
-def test_simple_ok(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", "test cell content down"),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\tcblower
- test cell content down
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
-
-
-def test_simple_only_first(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", ""),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
-
-
-def test_simple_error(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ValueError("test problem"),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
-
- # verify the beginning and the end, as the middle part is specific to the environment
- # where the test runs
- expected_ini = [
- r"\begin{tcolorbox}[colback=red!5!white,colframe=red!75!,title={ERROR when parsing cell 1}]", # NOQA
- r"\begin{verbatim}",
- r"Traceback (most recent call last):",
- ]
- expected_end = [
- r"ValueError: test problem",
- r"\end{verbatim}",
- r"\end{tcolorbox}",
- ]
- out = [line for line in capsys.readouterr().out.split('\n') if line]
- assert expected_ini == out[:3]
- assert expected_end == out[-3:]
-
-
-def test_multiple(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", "test cell content down"),
- 2: ("test cell content ONLY up", ""),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1-2')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\tcblower
- test cell content down
- \\end{tcolorbox}
- \\begin{tcolorbox}[title=Cell {02}]
- test cell content ONLY up
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
diff --git a/macros/latex/contrib/jupynotex/tests/test_notebook.py b/macros/latex/contrib/jupynotex/tests/test_notebook.py
deleted file mode 100644
index bf6511cbd3..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_notebook.py
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import base64
-import json
-import os
-import pathlib
-import re
-import tempfile
-import textwrap
-
-import pytest
-
-from jupynotex import Notebook
-
-
-@pytest.fixture
-def notebook():
- _, name = tempfile.mkstemp()
-
- def _f(cells):
- with open(name, 'wt', encoding='utf8') as fh:
- json.dump({'cells': cells}, fh)
-
- return Notebook(name)
-
- yield _f
- os.unlink(name)
-
-
-def test_empty(notebook):
- nb = notebook([])
- assert len(nb) == 0
-
-
-def test_source_code(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': ['line1\n', ' line2\n'],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- src, _ = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- line1
- line2
- \\end{verbatim}
- """)
- assert src == expected
-
-
-def test_source_markdown(notebook):
- rawcell = {
- 'cell_type': 'markdown',
- 'source': ['line1\n', ' line2\n'],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- src, _ = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- line1
- line2
- \\end{verbatim}
- """)
- assert src == expected
-
-
-def test_output_missing(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- assert out is None
-
-
-def test_output_simple_executeresult_plain(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/plain': ['default always present', 'line2'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- default always present
- line2
- \\end{verbatim}
- """)
- assert out == expected
-
-
-def test_output_simple_executeresult_latex(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/latex': ['some latex line', 'latex 2'],
- 'text/plain': ['default always present'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- some latex line
- latex 2
- """)
- assert out == expected
-
-
-def test_output_simple_executeresult_image(notebook):
- raw_content = b"\x01\x02 asdlklda3wudghlaskgdlask"
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'image/png': base64.b64encode(raw_content).decode('ascii'),
- 'text/plain': ['default always present'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- m = re.match(r'\\includegraphics\{(.+)\}\n', out)
- assert m
- (fpath,) = m.groups()
- assert pathlib.Path(fpath).read_bytes() == raw_content
-
-
-def test_output_simple_stream(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'stream',
- 'text': ['some text line', 'text 2'],
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- some text line
- text 2
- \\end{verbatim}
- """)
- assert out == expected
-
-
-def test_output_simple_display_data(notebook):
- raw_content = b"\x01\x02 asdlklda3wudghlaskgdlask"
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'display_data',
- 'data': {
- 'image/png': base64.b64encode(raw_content).decode('ascii'),
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- m = re.match(r'\\includegraphics\{(.+)\}\n', out)
- assert m
- (fpath,) = m.groups()
- assert pathlib.Path(fpath).read_bytes() == raw_content
-
-
-def test_output_multiple(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/latex': ['some latex line', 'latex 2'],
- },
- }, {
- 'output_type': 'stream',
- 'text': ['some text line', 'text 2'],
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- some latex line
- latex 2
- \\begin{verbatim}
- some text line
- text 2
- \\end{verbatim}
- """)
- assert out == expected
diff --git a/macros/latex/contrib/jwjournal/README.md b/macros/latex/contrib/jwjournal/README.md
index 6185459348..f48c6a8745 100644
--- a/macros/latex/contrib/jwjournal/README.md
+++ b/macros/latex/contrib/jwjournal/README.md
@@ -1,7 +1,9 @@
-<!-- Copyright (C) 2023 by Jinwen XU -->
+<!-- Copyright (C) 2023-2024 by Jinwen XU -->
# `jwjournal`, a personal LaTeX class for writing journals
+> Package dependencies: [`enumitem`](https://ctan.org/pkg/enumitem), [*`einfart`*](https://ctan.org/pkg/minimalist), [`minimalist`](https://ctan.org/pkg/minimalist), [`needspace`](https://ctan.org/pkg/needspace), [`projlib`](https://ctan.org/pkg/projlib), [`tcolorbox`](https://ctan.org/pkg/tcolorbox).
+
## Introduction
A typical journal entry produced by `jwjournal` looks like this:
@@ -25,9 +27,9 @@ Codewise, it is as simple as below:
(( <0.45> {example-image-c}
```
-> It is also possible to write the date as `2023/01/01`.
+> It is also possible to write the date with other separators, such as `2023/01/01` or `2023.01.01`.
-> With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English and French demo documents for examples.
+> With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English, French and German demo documents for examples.
Every day of the week has its unique color, like this:
![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo2.png)
@@ -44,7 +46,7 @@ By the way, the conversion from plain date string like `2023-01-01` to natural l
The structure of the document is very simple:
```latex
-\documentclass[11pt, paperstyle = light yellow, color entry]{jwjournal}
+\documentclass[11pt, paperstyle = light yellow, color entry, use indent = false]{jwjournal}
\UseLanguage{⟨language⟩} % For English this line can be omitted.
\begin{document}
@@ -62,6 +64,12 @@ The available class options include:
- `color entry` adds more color to the title of each entry;
- `scroll` turns the scroll mode on, which generates a single-page pdf similar to a long screenshot.
+> There are also some relevant options provided by the base class of `jwjournal`:
+> - `use indent = false`: disable the paragraph indentation and add some space between each paragraph instead.
+> - `use style = ⟨provided style⟩`: select the designing style of the current article; for our purpose here, it is recommended to use the style `classical` (with this the option `use indent = false` is added by default), together with the options `title in boldface` and `title in sffamily`, see the comment below regarding the usage of "Section".
+>
+> You may refer to the demo documents to see their actual usage.
+
Here are the major syntaxes for your main text:
1) Title
- Any line begins with date like `2023-01-01` or `2023/01/01` would be regard as the *Title* line.
@@ -70,7 +78,7 @@ Here are the major syntaxes for your main text:
```
2023-01-01 Sunny | Apartment
```
- > With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English and French demo documents for examples.
+ > With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English, French and German demo documents for examples.
1) Note
- Any line begins with something like `[Note]` would be regard as the *Note* line.
- Example:
@@ -241,6 +249,12 @@ Language and date format can both be set in two ways: as class option or with co
### Scroll mode
The scroll mode is achieved by directly accessing `\pdfpageheight` (pdfTeX and XeTeX) or `\pageheight` (LuaTeX). The minimal page height is set to be `10in`. It is worth noting that in order to calculate the height needed, the entire content are put into a single box, which puts a limitation on the length of your document (but this usually wouldn't be a problem).
-# License
+
+## Acknowledgement
+
+The author would like to thank his friend Junzhuo Zhao for his valuable help with the German language. Danke schön!
+
+
+## License
This work is released under the LaTeX Project Public License, v1.3c or later.
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
index 010d83d024..ba83bdf73e 100644
--- a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
index 213bf34d51..639fabf903 100644
--- a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
@@ -14,9 +14,9 @@
在文中出现的日期和标注不会被识别: 2023-12-25、[标注]、【标注】,放心使用!
[文本]
- 你可以使用*斜体*、**粗体**或者***两者结合***。
+ 你可以使用*斜体*、**粗体**或者***两者结合***(具体效果取决于字体设置)。
\\
- 数学模式下的星号不会被识别:
+ 数学模式下的星号不会被识别:$a^* b^*$。
【说明】 % 【...】与 [...] 效果相同
在一些特殊情况需要把星号用 \texttt{\{\}} 隔开:**像**{}***这***{}*样*。
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf
new file mode 100644
index 0000000000..4f4efc58cc
--- /dev/null
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex
new file mode 100644
index 0000000000..ac4ff8b96f
--- /dev/null
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex
@@ -0,0 +1,118 @@
+\documentclass[11pt, paperstyle=light yellow, color entry, day-month-year,
+ title in boldface, title in sffamily, use style = classical]{jwjournal}
+% "paperstyle = ..." passt die Papierfarbe an, Optionen sind: lightyellow、yellow、parchment、green、lightgray、gray、nord、dark
+% "color entry" fügt dem Titel jedes Eintrags mehr Farbe hinzu
+% "scroll" schaltet den Scroll-Modus ein und kann ein einseitiges PDF ähnlich einem langen Screenshot generieren
+
+\UseLanguage { German }
+
+\begin{document}
+
+
+01.01.2024 Sonnig | Ort
+
+ Im Text erscheinende Daten und Anmerkungen werden nicht erkannt: 25.12.2023, [Anmerkung], können Sie diese ruhig schreiben.
+
+ [Text]
+ Sie können Text in *kursiv*, **fett** oder ***beides*** schreiben.
+ \\
+ Sternchen im Mathematikmodus werden nicht erkannt: $a^* b^*$.
+
+ [Anmerkung] In einigen Sonderfällen kann es notwendig sein, die Sternchen mit~\texttt{\{\}} zu trennen: **genau**{}***wie***{}*dieses*.
+
+ >>> Sie können Text in einen farbigen Block wie diesen einfügen.
+
+ Bilder können eingefügt über:
+
+ || <.4> {example-image} % oder || {example-image} <.4>
+ >> (Anmerkung zum Bild)
+ >> (Weitere Bemerkung...)
+
+ +++
+ Sie können das Bild auch links oder rechts anzeigen:
+ (( <.4> {example-image-a} % oder (( {example-image-a} <.4>
+ -> <.3> % fügen Sie etwas vertikalen Abstand hinzu, hier ist „0.3\baselineskip“
+ )) <.4> {example-image-b} % oder )) {example-image-b} <.4>
+
+
+## {\textsc{Ein neuer Abschnitt}}
+
+02.01.2024
+Unbekannt (das Wetter kann je nach Wunsch auch in die zweite Zeile geschrieben werden)
+
+ Die Farbe der Beschriftungen ändert sich je nach Datum und langer Text wird automatisch umbrochen und eingerückt:
+
+ [Hinweis] Ich habe heute nicht gelernt, aber ich habe sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr viel Code geschrieben: `Inline-Code`.
+
+ [Achtung] Sonderzeichen im Inline-Code müssen maskiert werden. Beispielsweise sollte `\textbackslash` als `\textbackslash textbackslash` geschrieben werden, `\{` sollte als `\textbackslash\{` geschrieben werden, `\%` sollte als `\textbackslash\%` geschrieben werden usw.
+
+ -----
+
+ Drei oder mehr \textquote{\texttt{-}} in einem separaten Absatz ergeben eine Trennlinie ---
+
+ ---
+
+ --- aber die aktuelle Zeile wird nicht abgeglichen, da sich hinter \texttt{-}\texttt{-}\texttt{-} zusätzlicher Text befindet.
+
+ -----
+
+ Wenn auf die Beschriftung mehrere Absätze folgen, können Sie \texttt{\textbackslash\textbackslash} und \texttt{\slash\slash} verwenden, um sie zu verketten, sodass alle Texte richtig eingerückt werden:
+
+ [Beschriftung] Etwas Text.
+ //
+ Mehr Text (mit \texttt{\slash\slash}, also mit etwas vertikalem Abstand zum obigen Text).
+ //
+ Mehr Text (dasselbe, mit etwas vertikalem Abstand zum obigen Text).
+ //
+ (Einige Anmerkungen)
+ \\
+ (Eine weitere Anmerkung, die aufgrund der Verwendung von \texttt{\textbackslash\textbackslash} direkt neben der obigen Anmerkung)
+ \\
+ (Weitere Anmerkungen --- ähnlich, direkt neben der obigen Anmerkung)
+
+
+
+03.01.2024
+
+ [Anmerkung] Wenn nur das Datum geschrieben wird, dann gäbe es kein zweites Trennzeichen danach.
+
+
++++
+04.01.2024 Bewölkt
+
+ Drei Pluszeichen \texttt{+++} können die aktuelle Seite um etwa eine Zeile vergrößern. Manchmal fallen ein einzelner Satz oder ein paar Wörter auf die nächste Seite --- in solchen Fällen können Sie es verwenden, um den Anzeigeeffekt zu verbessern.
+
+
+
+05.01.2024 Bewölkt --- Arbeit zu Hause
+===============================================
+
+Sie können Ihren Code auch so organisieren.
+
+
+==========
+06.01.2024 Sonnig --- Arbeit zu Hause
+==========
+
+Oder so...
+
+
+
+07.01.2024 Bewölkt
+
+ ...
+
+
+
+08.01.2024 Bewölkt
+
+ Eine Woche später wird die Farbe wieder auf die vorherige zurückgesetzt.
+
+
+
+09.01.2024 Bewölkt
+
+ ...
+
+
+\end{document}
diff --git a/macros/latex/contrib/jwjournal/jwjournal.cls b/macros/latex/contrib/jwjournal/jwjournal.cls
index 3b968ce12e..3e84c935ba 100644
--- a/macros/latex/contrib/jwjournal/jwjournal.cls
+++ b/macros/latex/contrib/jwjournal/jwjournal.cls
@@ -1,6 +1,6 @@
%%
-%% Copyright (C) 2023 by Jinwen XU
-%% -------------------------------
+%% Copyright (C) 2023-2024 by Jinwen XU
+%% ------------------------------------
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3c of this license
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{jwjournal}
- {2023/12/19} {}
+ {2024/09/01} {}
{JW's journal class}
\keys_define:nn { jwjournal }
@@ -33,11 +33,11 @@
\sys_if_engine_pdftex:TF
{
- \PassOptionsToClass { use indent = false } { minimart }
+ % \PassOptionsToClass { use indent = false } { minimart }
\LoadClass { minimart }
}
{
- \PassOptionsToClass { use indent = false } { einfart }
+ % \PassOptionsToClass { use indent = false } { einfart }
\LoadClass { einfart }
}
@@ -554,14 +554,14 @@
}
\regex_replace_once:nnN { ❄️ (.*) ❄️ } { ❄️ \1 } \l_jwjournal_tmp_tl
- \regex_replace_once:nnN
- { ❄️ (\ *)? (\d{4}-\d{1,2}-\d{1,2}) (\ *)? (.*) }
- { \c{JWJournalEntry} {\2} {\4} }
- \l_jwjournal_tmp_tl
- \regex_replace_once:nnN
- { ❄️ (\ *)? (\d{1,2}-\d{1,2}-\d{4}) (\ *)? (.*) }
- { \c{JWJournalEntry} {\2} {\4} }
- \l_jwjournal_tmp_tl
+ % \regex_replace_once:nnN
+ % { ❄️ (\ *)? (\d{4}-\d{1,2}-\d{1,2}) (\ *)? (.*) }
+ % { \c{JWJournalEntry} {\2} {\4} }
+ % \l_jwjournal_tmp_tl
+ % \regex_replace_once:nnN
+ % { ❄️ (\ *)? (\d{1,2}-\d{1,2}-\d{4}) (\ *)? (.*) }
+ % { \c{JWJournalEntry} {\2} {\4} }
+ % \l_jwjournal_tmp_tl
\regex_replace_once:nnN
{ ❄️ (\ *)? (\d{4} \D \d{1,2} \D \d{1,2}) (\ *)? (.*) }
{ \c{JWJournalEntry} {\2} {\4} }
diff --git a/macros/latex/contrib/keytheorems/CHANGELOG.md b/macros/latex/contrib/keytheorems/CHANGELOG.md
new file mode 100644
index 0000000000..de5d3ac354
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/CHANGELOG.md
@@ -0,0 +1,54 @@
+# Changelog for keytheorems package
+
+## [v0.1.8]
+- add support for tagged PDF ([\#4](https://github.com/mbertucci47/keytheorems/issues/4))
+- add tagged example file tagged-keytheorems-amsthmtest.tex
+
+## [v0.1.7]
+- add support for aomart class
+- add support for Michael Sharpe's font packages that change plain style
+
+## [v0.1.6]
+- add `\renewkeytheorem`, `\providekeytheorem`, and `\declarekeytheorem` ([\#5](https://github.com/mbertucci47/keytheorems/issues/5))
+- tcolorbox theorems no longer error with beamer
+- add support for beamer action spec
+
+## [v0.1.5]
+- add `format-code` list key
+- can now use `\thmname`, `\thmnumber`, `\thmnote` in `headformat`
+
+## [v0.1.4]
+- add `store-sets-label` option
+- add `restatable*` environment for `thmtools-compat`
+- add `numberfont` style key
+- add `restate-keys` key
+- styles defined with `\newkeytheoremstyle` now work as expected with `\theoremstyle`
+
+## [v0.1.3]
+- add `noteseparator` key
+- add `\IfRestatingT`, `\IfRestatingF`
+- add `store*` key
+- add Portuguese translations
+
+## [v0.1.2]
+- Move support for memoir and AMS classes to dedicated files
+- document `headformat` key
+- add Italian translations
+- add `indent` list key
+- add `no-toc` list key
+- documentation improvements
+
+## [v0.1.1] - 2024-09-09
+- First CTAN release
+
+## 0.1.0 - 2024-09-04
+- First release
+
+[v0.1.8]: https://github.com/mbertucci47/keytheorems/compare/v0.1.7...v0.1.8
+[v0.1.7]: https://github.com/mbertucci47/keytheorems/compare/v0.1.6...v0.1.7
+[v0.1.6]: https://github.com/mbertucci47/keytheorems/compare/v0.1.5...v0.1.6
+[v0.1.5]: https://github.com/mbertucci47/keytheorems/compare/v0.1.4...v0.1.5
+[v0.1.4]: https://github.com/mbertucci47/keytheorems/compare/v0.1.3...v0.1.4
+[v0.1.3]: https://github.com/mbertucci47/keytheorems/compare/v0.1.2...v0.1.3
+[v0.1.2]: https://github.com/mbertucci47/keytheorems/compare/v0.1.1...v0.1.2
+[v0.1.1]: https://github.com/mbertucci47/keytheorems/compare/v0.1.0...v0.1.1 \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/README.md b/macros/latex/contrib/keytheorems/README.md
new file mode 100644
index 0000000000..a28247e596
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/README.md
@@ -0,0 +1,649 @@
+# keytheorems
+
+A LaTeX package to use [`amsthm`](https://www.ctan.org/pkg/amsthm)
+with a key-value interface.
+Provides most of the functionality of [`thmtools`](https://www.ctan.org/pkg/thmtools) (and a bit more!) but written in expl3.
+If you find a bug please open an issue or pull request.
+
+The package is maintained by Matthew Bertucci.
+
+## Sample document
+```tex
+\documentclass{article}
+\usepackage{amssymb,amsmath}
+\usepackage{keytheorems}
+\usepackage{hyperref}
+
+\newkeytheoremstyle{mystyle}{
+ % <insert options>
+ }
+\newkeytheorem{theorem}[
+ style=mystyle,
+ parent=section
+ ]
+\newkeytheorem{remark}[
+ style=remark,
+ numbered=no
+ ]
+
+\begin{document}
+
+\section{Some theorems}
+
+\begin{theorem}[
+ note=Strong Bertini over $\mathbb{C}$,
+ label=strongbertini
+ ]
+Let $X$ be a smooth complex variety and let $\mathfrak{D}$ be a positive
+dimensional linear system on $X$. Then the general element of $\mathfrak{D}$ is
+smooth away from the base locus $B_{\mathfrak{D}}$. That is, the set
+ \[\{H\in\mathfrak{D}\mid D_H \text{ is smooth away from } B_{\mathfrak{D}}\}\]
+is a Zariski dense open subset of $\mathfrak{D}$.
+\end{theorem}
+
+\begin{remark}
+In fact, \autoref{strongbertini} holds over any algebraically closed field of
+characteristic zero.
+\end{remark}
+
+\begin{theorem}[Bertini over any field]
+Let $X\subset\mathbb{P}_k^n$ be a smooth projective variety over a field $k$.
+Then the set of hyperplanes $H\subseteq\mathbb{P}_k^n$ such that $X\cap H$ is
+smooth is a Zariski dense open subset of $(\mathbb{P}_k^n)^*$.
+\end{theorem}
+
+\listofkeytheorems
+
+%%% compare with
+%\listofkeytheorems[ignoreall,show=theorem]
+%\listofkeytheorems[swapnumber]
+%\listofkeytheorems[title=BLUB]
+%\listofkeytheorems[print-body] % needs 'store-all' package option
+
+\end{document}
+```
+
+## Documentation
+There is a list of commands and keys offered by the package
+[here](https://github.com/mbertucci47/keytheorems/blob/main/doc/keytheorems-doc.pdf).
+More of a reference document than documentation.
+
+## Differences with thmtools
+
+Some of the code is a direct translation from thmtools but a few things are changed:
+- The only backend supported is amsthm, and it is loaded by the package. As I understand it,
+ [`ntheorem`](https://www.ctan.org/pkg/ntheorem) has quite a few bugs and no active development, and
+ if you're just using the kernel `\newtheorem` then you don't need a package like this.
+- Theorem hooks use the kernel hooks. Thus unlike the `prefoot` and `postfoot` hooks of
+ thmtools, all code chunks are added to hooks in the order declared (unless given a
+ distinct label; then the chunks are reversed). The order of generic/specific hooks
+ remains the same. Furthermore, the command for adding to theorem hooks is `\addtotheoremhook{<hook name>}{<theorem name>}`.
+- thmtools changes some style settings to be default that are different from
+ amsthm defaults, but only if a custom style is called. Example:
+ ```tex
+ \declaretheoremstyle[spaceabove=20pt]{mythmsty}
+ \declaretheorem[style=mythmsty]{mythm}
+ ```
+
+ is different from just
+
+ ```tex
+ \declaretheorem{mythm}
+ ```
+
+ as in the former, `bodyfont` is `\normalfont`, not the default `\itshape`.
+ This package keeps the defaults unless a key is specifically given.
+- There is no `restatable(*)` environment except with package option `thmtools-compat`. Use the
+ `store` (alias `restate`) key. For counters and labels pointing to the restated theorem,
+ use `store*` (alias `restate*`).
+- Rather than `restate=foo` defining a command `\foo*`, theorems are retrieved with `\getkeytheorem{foo}`.
+ For just the theorem body, use `\getkeytheorem[body]{foo}`. Also, this retrieval
+ can happen even before the theorem is stated since keytheorems writes the contents
+ to a file.
+- The `shaded` and `thmbox` keys are only available with the package option `thmtools-compat`,
+ and they are emulated with [`tcolorbox`](https://www.ctan.org/pkg/tcolorbox). Instead there's
+ an interface to tcolorbox with the `tcolorbox={<options>}` and `tcolorbox-no-titlebar={<options>}` key.
+ The `mdframed` key is not implemented.
+- You can reuse styles with the `inherit-style` key.
+- With thmtools, the command `\newtheorem{<envname>}{<heading>}` is changed to behave like
+ `\declaretheorem[name=<heading>]{<envname>}`. This is not the default here. Instead either
+ only use the new interface or load the package with option `overload`.
+- Adds several new keys (see doc for details).
+
+## thmtools issues resolved by keytheorems
+Issues from the thmtools [github page](https://github.com/muzimuzhi/thmtools),
+with corresponding keytheorems code that shows the issue resolved.
+### [\listoftheorems: filter out restated ones #7](https://github.com/muzimuzhi/thmtools/issues/7)
+keytheorems does not list restated theorems in the `\listofkeytheorems`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[store=foo]
+text
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\listofkeytheorems
+
+\end{document}
+```
+
+### [\listoftheorems: hide title #8](https://github.com/muzimuzhi/thmtools/issues/8)
+keytheorems provides the `no-title` key.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{axiom}
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\listofkeytheorems[ignoreall,show=axiom]
+\listofkeytheorems[ignoreall,show=theorem,no-title]
+
+\begin{axiom}
+some axiom
+\end{axiom}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{axiom}
+another axiom
+\end{axiom}
+
+\begin{theorem}
+another theorem
+\end{theorem}
+
+\end{document}
+```
+
+### [Case in point: the tcolorbox key #9](https://github.com/muzimuzhi/thmtools/issues/9)
+keytheorems provides the `tcolorbox` and `tcolorbox-no-titlebar` keys.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}[
+ tcolorbox={
+ colback=blue!10,
+ colframe=blue!75
+ }
+ ]
+\newkeytheorem{corollary}[
+ tcolorbox-no-titlebar={colback=red!10}
+ ]
+
+\begin{document}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{corollary}
+some corollary
+\end{corollary}
+
+\end{document}
+```
+
+### [thm-listof: document \thmtformatoptarg, new list option? #14](https://github.com/muzimuzhi/thmtools/issues/14)
+keytheorems provides the `note-code` key for `\listofkeytheorems` and
+`\keytheoremlistset`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[my heading]
+some theorem
+\end{theorem}
+
+\listofkeytheorems[note-code={ [\textit{#1}]}]
+
+\end{document}
+```
+
+### [Style inheritance in thmtools #15](https://github.com/muzimuzhi/thmtools/issues/15)
+keytheorems provides the `inherit-style` key.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheoremstyle{mysty1}{notefont=\itshape}
+\newkeytheoremstyle{mysty2}{inherit-style=mysty1,bodyfont=\normalfont}
+\newkeytheorem{theorem}[style=mysty1]
+\newkeytheorem{corollary}[style=mysty2]
+
+\begin{document}
+
+\begin{theorem}[my heading]
+some theorem
+\end{theorem}
+
+\begin{corollary}[my heading]
+some corollary
+\end{corollary}
+
+\end{document}
+```
+
+### [Restate without theorem headings (head + note) #19](https://github.com/muzimuzhi/thmtools/issues/19)
+Use `\getkeytheorem[body]{foo}`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[store=hello]
+Hello!
+\end{theorem}
+
+\getkeytheorem{hello}
+
+\section{\getkeytheorem[body]{hello}}
+
+\end{document}
+```
+
+### [Option clash: numbered=no and thmbox #25](https://github.com/muzimuzhi/thmtools/issues/25)
+Fixed with keytheorem's implementation of the `thmbox` key with `thmtools-compat`.
+```tex
+\documentclass{article}
+\usepackage[thmtools-compat]{keytheorems}
+
+\declaretheorem[numbered=no, name=TheoremA, ]{mytheo1}
+\declaretheorem[ name=TheoremB, thmbox=M]{mytheo2}
+\declaretheorem[numbered=no, name=TheoremC, thmbox=M]{mytheo3}
+
+\begin{document}
+
+\begin{mytheo1}
+ test1
+\end{mytheo1}
+
+\begin{mytheo2}
+ test2
+\end{mytheo2}
+
+\begin{mytheo3}
+ test3
+\end{mytheo3}
+
+\end{document}
+```
+
+### [Skip the title of the theorem but leave the []. #30](https://github.com/muzimuzhi/thmtools/issues/30)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{Teorema}[name=Theorem]
+
+\begin{document}
+
+\begin{Teorema}
+ body
+\end{Teorema}
+
+\begin{Teorema}[]
+ body
+\end{Teorema}
+
+\begin{Teorema}[title]
+ body
+\end{Teorema}
+
+\end{document}
+```
+
+### [too much space with restatable #40](https://github.com/muzimuzhi/thmtools/issues/40)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+\usepackage{kantlipsum}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}
+\kant[2][1]
+\end{theorem}
+
+\begin{theorem}[store=foo]
+\kant[1][2]
+\end{theorem}
+
+\begin{theorem}
+\kant[2][1]
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\end{document}
+```
+
+### [restate key with no name leads to (,) in restated title #41](https://github.com/muzimuzhi/thmtools/issues/41)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+\usepackage{kantlipsum}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[restate=foo]
+\kant[1][2]
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\begin{theorem}[restate=foobar,name=Heading]
+\kant[2][1]
+\end{theorem}
+
+\getkeytheorem{foobar}
+
+\end{document}
+```
+### [[Help Wanted] Print all Theorems? #43](https://github.com/muzimuzhi/thmtools/issues/43)
+Use the `store-all` load-time option with `\listofkeytheorems[print-body]`.
+```tex
+\documentclass{article}
+\usepackage[store-all]{keytheorems}
+
+\newkeytheorem{theorem}
+\newkeytheorem{lemma}
+
+\begin{document}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{lemma}
+some lemma
+\end{lemma}
+
+\listofkeytheorems[print-body]
+
+\end{document}
+```
+
+### [qed option without value fails in \declaretheoremstyle #47](https://github.com/muzimuzhi/thmtools/issues/47)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheoremstyle{mythmsty}{qed}
+\newkeytheorem{theorem}[style=mythmsty]
+
+\begin{document}
+
+\begin{theorem}
+Text
+\end{theorem}
+
+\end{document}
+```
+
+### [prefoot and postfoot hooks called twice with restate key #54](https://github.com/muzimuzhi/thmtools/issues/54)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\addtotheoremhook{prehead}{PREHEAD}
+\addtotheoremhook{posthead}{POSTHEAD}
+\addtotheoremhook{prefoot}{PREFOOT}
+\addtotheoremhook{postfoot}{POSTFOOT}
+
+\begin{document}
+
+\begin{theorem}
+body text
+\end{theorem}
+
+\begin{theorem}[store=foo]
+body text
+\end{theorem}
+
+\end{document}
+```
+
+### [beamer theorem syntax not fully supported #57](https://github.com/muzimuzhi/thmtools/issues/57)
+Fixed in keytheorems.
+```tex
+\documentclass{beamer}
+\setbeamertemplate{theorems}[numbered]
+\usepackage{keytheorems}
+
+\newkeytheorem{MyTheorem}
+
+\begin{document}
+
+\begin{frame}
+\begin{MyTheorem}[name=bla]
+first text
+\end{MyTheorem}
+\begin{MyTheorem}<2->[name=bla]
+second text
+\end{MyTheorem}
+\begin{MyTheorem}[name=bla]<3->
+third text
+\end{MyTheorem}
+\end{frame}
+
+% Compare:
+
+\begin{frame}
+\begin{theorem}[bla]
+first text
+\end{theorem}
+\begin{theorem}<2->[bla]
+second text
+\end{theorem}
+\begin{theorem}[bla]<3->
+third text
+\end{theorem}
+\end{frame}
+
+\end{document}
+```
+
+### [restate key incompatible with beamer #58](https://github.com/muzimuzhi/thmtools/issues/58)
+```tex
+\documentclass{beamer}
+\setbeamertemplate{theorems}[numbered]
+\usepackage{keytheorems}
+
+\newkeytheorem{MyTheorem}
+
+\begin{document}
+
+\begin{frame}
+\begin{MyTheorem}[restate=foo]
+text
+\end{MyTheorem}
+
+\getkeytheorem{foo}
+\end{frame}
+
+\end{document}
+```
+
+## Notes/issues on thmtools, not on Github
+
+### continues with unless unique and restate
+Should this be numbered or not?
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique]{theorem}
+
+\begin{document}
+
+\begin{theorem}[label=foo]
+bla
+\end{theorem}
+
+\begin{theorem}[continues=foo]
+bla
+\end{theorem}
+
+\end{document}
+```
+It does the correct thing when a parent counter is given and is split across that counter.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique,parent=section]{theorem}
+
+\begin{document}
+
+\begin{theorem}[label=foo]
+bla
+\end{theorem}
+
+\section{bla}
+
+\begin{theorem}[continues=foo]
+bla
+\end{theorem}
+
+\end{document}
+```
+Also adds a number if restated, which seems wrong.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique]{theorem}
+
+\begin{document}
+
+\begin{restatable}{theorem}{foo}
+bla
+\end{restatable}
+
+\foo*
+
+\end{document}
+```
+
+### qed in both `\declaretheoremstyle` and `\declaretheorem`
+One would expect the one in `\declaretheorem` to overwrite, but because the code just adds to the hooks without checking,
+it's additive.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheoremstyle[qed=$\clubsuit$]{mysty}
+\declaretheorem[style=mysty,qed]{theorem}
+
+\begin{document}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\end{document}
+```
+
+### restate incompatible with thmbox
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[thmbox]{theorem}
+
+\begin{document}
+
+\begin{theorem}[restate=foo]
+bla
+\end{theorem}
+
+\foo*
+
+\end{document}
+```
+
+### adding to listoftheorems doesn't work as expected
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\addcontentsline{loe}{section}{some text}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\listoftheorems
+
+\end{document}
+```
+
+### new theorem styles do not preserve "plain" keys
+With keytheorems, this is handled only for the AMS classes, acmart, aomart, and jlreq.
+```tex
+\documentclass{amsbook}
+\usepackage{thmtools}
+
+\declaretheoremstyle[bodyfont=\upshape]{upsty}
+\declaretheorem{theorem}
+\declaretheorem[style=upsty]{lemma}
+
+\begin{document}
+
+\begin{theorem}
+blub
+\end{theorem}
+
+\begin{lemma}
+blub
+\end{lemma}
+
+\end{document}
+```
+
+## Things to do
+
+- Clean up the code. Things are out of order, poorly named, etc.
+- For a complete list, see [`keytheorems-ideas.md`](https://github.com/mbertucci47/keytheorems/blob/main/keytheorems-ideas.md)
+
+## License
+Released under the LaTeX Project Public License v1.3c or later. See https://www.latex-project.org/lppl.txt. \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf
new file mode 100644
index 0000000000..59baedc317
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex
new file mode 100644
index 0000000000..2af490c35e
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex
@@ -0,0 +1,1196 @@
+% !TeX program = txs:///lualatex | txs:///makeindex | txs:///lualatex | txs:///view-pdf
+\PassOptionsToPackage{hyperindex}{hyperref}
+\PassOptionsToPackage{dvipsnames}{xcolor}
+\documentclass{ltxdoc}
+\usepackage{geometry}
+\geometry{margin=1.5in}
+\usepackage{tcolorbox}
+\tcbuselibrary{documentation,minted,breakable,hooks}
+\tcbset{
+ listing engine=minted,
+ minted language=latex,
+ }
+\ifTUTeX
+\usepackage{newcomputermodern}
+\else
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{amssymb}
+\fi
+\usetikzlibrary{cd}
+\usepackage{booktabs}
+\usepackage{keytheorems}
+\usepackage{cleveref}
+
+\makeatletter
+\newcommand\keythmsversion{\@keythms@version}
+\makeatother
+
+\title{%
+ \pkg{keytheorems} package \\[1ex]
+ \large version \keythmsversion \\[1ex]
+ \href{https://github.com/mbertucci47/keytheorems}
+ {\texttt{github.com/mbertucci47/keytheorems}}
+ }
+\author{Matthew Bertucci}
+
+\newkeytheoremstyle{breaksty}{break}
+\newkeytheorem{theorem}
+\newkeytheorem{mythm}[name=Some Name]
+\newkeytheorem{theorem*}[name=Theorem,numbered=false]
+\newkeytheorem{conjecture}[parent=section]
+\newkeytheorem{lemma}[sibling=theorem]
+\newkeytheorem{test}[
+ preheadhook=PREHEAD,
+ postheadhook=POSTHEAD,
+ prefoothook=PREFOOT,
+ postfoothook=POSTFOOT
+]
+\newkeytheorem{prop}[
+ name=Proposition,
+ refname={proposition,propositions},
+ Refname={Proposition,Propositions}
+ ]
+\newkeytheorem{example}[qed]
+\newkeytheorem{solution}[qed=$\clubsuit$]
+\newkeytheorem{remark}[style=remark]
+\tcbset{
+ defstyle/.style={arc=0mm,colback=blue!5!white,colframe=blue!75!black},
+ thmstyle/.style={colback=green!5,colframe=green!35!black},
+ }
+\newkeytheoremstyle{tcb-standard}{
+ tcolorbox=thmstyle,
+ headpunct={},
+ notebraces={}{},
+ noteseparator={: },
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ }
+\newkeytheorem{mytheo}[name=My Theorem,style=tcb-standard]
+\newkeytheorem{corollary}[tcolorbox]
+\newkeytheorem{definition}[
+ style=definition,
+ tcolorbox={defstyle}
+ ]
+\newkeytheorem{boxcor}[
+ tcolorbox-no-titlebar={colback=red!10},
+ name=Corollary,
+ sibling=corollary,
+ ]
+\newkeytheorem{observation}[style=breaksty]
+
+\MakeShortVerb{\|}
+\newcommand{\env}{\texttt}
+\newcommand{\hook}{\texttt}
+\NewCommandCopy{\braces}{\brackets}
+\newcommand{\bracks}[1]{\texttt{[#1]}}
+\newcommand{\ttbraces}[1]{\braces{\texttt{#1}}}
+%\tcbset{index gather commands=false}
+\colorlet{ExampleBack}{yellow!10}
+\tcbset{
+ color command=BrickRed,
+ color key=Fuchsia,
+ color value=teal,
+ before doc body={%
+ \setlength{\parindent}{15pt}
+ \noindent
+ },
+ docexample/.append style={boxrule=0pt,arc=0pt,after app={\noindent}}
+ }
+\tcbset{
+ withpreamble/.style = {
+ before upper = {%
+ {\ttfamily\itshape \% preamble}%
+ \vspace{-0.7\baselineskip}%
+ \tcbusetemplisting%
+ {\ttfamily\itshape \% document}%
+ \vspace{-0.7\baselineskip}%
+ }
+ }
+ }
+
+\NewTCBListing{keythmscode}{ O{} }
+ {
+ colback=ExampleBack,
+ arc=0pt,
+ boxrule=0pt,
+% listing side text,
+% lower separated=false,
+ skin=bicolor,
+ colbacklower=yellow!25,
+ breakable,
+% enhanced,
+% segmentation engine=path,
+% segmentation style={solid,gray},
+ #1
+ }
+\newtcolorbox{notebox}[1][]{enhanced,
+ before skip balanced=2mm,after skip balanced=4mm,
+ boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,
+ colback=red!20,
+ colframe=red!40!black,
+ sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
+ underlay={%
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[fill=red!40!black,draw=none] (interior.south west) rectangle node[white]{\LARGE\bfseries !} ([xshift=4mm]interior.north west);
+ },
+ drop fuzzy shadow,#1}
+\makeatletter
+% allow for optional argument specifying printed text, mostly for starred keys
+\RenewDocumentCommand\tcb@ref@doc{msom}{%
+ \hyperref[{#1:#4}]{%
+ \IfValueTF{#3}{\texttt{#3}}{\texttt{\ref*{#1:#4}}}%
+ \IfBooleanTF{#2}{}{%
+ \ifnum\getpagerefnumber{#1:#4}=\thepage\relax%
+ \else%
+ \kvtcb@doc@format@page{{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char213}%
+ \,\kvtcb@text@pageshort\,\pageref*{#1:#4}}%
+ \fi}}%
+}
+\makeatother
+\makeindex
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+An \pkg{expl3}-implementation of a key-value interface to \pkg{amsthm}, implementing most of the functionality provided by \pkg{thmtools}.
+Several issues encountered with \pkg{thmtools} are avoided (see the README for a list) and a few new features are added.
+\end{abstract}
+
+\tableofcontents
+
+\section{Dependencies}
+
+The package depends on the \pkg{aliascnt}, \pkg{amsthm}, \pkg{refcount}, \pkg{translations} packages.
+The \refKey{tcolorbox} and \refKey{tcolorbox-no-titlebar} keys require \pkg{tcolorbox}, and the \refKey[numbered=unless-unique]{numbered} key requires the \pkg{unique} package.
+A \LaTeX{} kernel no older than 2023-06-01 is required; if older than 2024-06-01, \pkg{nameref} is required.
+
+\section{Global options}
+
+\begin{docCommand}{keytheoremset}
+ {\marg{options}}
+Every key in this section can be given as an option to \cs{usepackage} or in \cs{keytheoremset}, with the exception that \refKey{continues-code} can only be used in the latter.
+\end{docCommand}
+
+\subsection{Compatibility options}
+
+\begin{docKey}{overload}
+ {}
+ {initially unset}
+Redefines \cs{newtheorem} to internally use the \pkg{keytheorems} machinery. The syntax remains the same.
+This is automatically set by \refKey{thmtools-compat}.
+\end{docKey}
+
+\begin{docKey}{thmtools-compat}
+ {}
+ {initially unset}
+For compatibility with \pkg{thmtools} syntax.
+For most documents,
+\begin{dispListing}
+\usepackage[thmtools-compat]{keytheorems}
+\end{dispListing}
+should be a drop-in replacement for \cs{usepackage}\ttbraces{amsthm,thmtools}.
+The option defines the commands in the left column below.
+The right column lists the corresponding \pkg{keytheorems} replacement that should be used in new documents.
+\begin{center}
+\begin{tabular}{rcl}
+\multicolumn{1}{c}{\pkg{thmtools} command} & & \multicolumn{1}{c}{\pkg{keytheorems} replacement} \\
+\toprule
+\docAuxCommand*{declaretheorem} & $\rightarrow$ & \refCom{newkeytheorem} \\
+\docAuxCommand*{declaretheoremstyle} & $\rightarrow$ & \refCom{newkeytheoremstyle} \\
+\docAuxCommand*{listoftheorems} & $\rightarrow$ & \refCom{listofkeytheorems} \\
+\docAuxCommand*{listtheoremname} & $\rightarrow$ & \refKey{title} key \\
+\begin{tabular}{r@{}}
+\docAuxCommand*{addtotheorempreheadhook}\\
+\docAuxCommand*{addtotheorempostheadhook}\\
+\docAuxCommand*{addtotheoremprefoothook}\\
+\docAuxCommand*{addtotheorempostfoothook}\\
+\end{tabular} & $\rightarrow$ & \refCom{addtotheoremhook} \\
+\docAuxEnvironment*{restatable} environment & $\rightarrow$ & \refKey{store} key \\
+\docAuxEnvironment*{restatable*} environment & $\rightarrow$ & \refKey[store*]{store} key
+\end{tabular}
+\end{center}
+Also defined are the \docAuxKey*{shaded} and \docAuxKey*{thmbox} keys, implemented internally with \pkg{tcolorbox} rather than the \pkg{shadethm} and \pkg{thmbox} packages, respectively.
+\end{docKey}
+
+\subsection{Other global options}
+
+\begin{docKey}{auto-translate}
+ {\colOpt{=true\textbar false}}
+ {default |true|, initially |true|}
+If |false|, \pkg{keytheorems} does not automatically translate the title text used for \refCom{listofkeytheorems} and the note produced by the \refKey{continues} key.
+These texts can be manually customized with the \refKey{title} and \refKey{continues-code} keys, respectively.
+\end{docKey}
+
+\begin{docKey}{continues-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially\\ \cs{GetTranslation}\ttbraces{keythms\string_continues}\cs{pageref}\ttbraces{\#1}}
+The code used to typeset the note produced by the \refKey{continues} key.
+If English or an unknown language is used, defaults to \texttt{continuing from p.}\cs{,}\cs{pageref}\ttbraces{\#1}.
+Currently (likely inaccurate!) translations exist for French, German, Italian, Portuguese, and Spanish.
+\end{docKey}
+
+\begin{docKey}{qed-symbol}
+ {=\meta{symbol}}
+ {initially \cs{openbox}}
+Redefines \cs{qedsymbol} to be \meta{symbol}.
+\end{docKey}
+
+\begin{docKey}{restate-counters}
+ {=\marg{comma-list of counters}}
+ {initially \ttbraces{equation}}
+Additional counters whose values are preserved when a theorem is restated.
+This key does not reset the list, so you don't need to include |equation| in \meta{comma-list}.
+\end{docKey}
+
+\begin{docKey}{store-all}
+ {}
+ {initially unset}
+Tells \pkg{keytheorems} to grab the body of each theorem so it can later be printed with the \refKey{print-body} option of \refCom{listofkeytheorems}.
+Note that this means a theorem body \emph{cannot} contain verbatim material.
+\end{docKey}
+
+\begin{docKey}{store-sets-label}
+ {}
+ {initially unset}
+Defines the \refKey{store} key to also set \refKey{label}, i.e. it makes |store=|\meta{tag} equivalent to |store=|\meta{tag}|,label=|\meta{tag}. Similarly for \refKey[store*]{store}.
+\end{docKey}
+
+\section{Defining theorems}
+
+\begin{docCommand}{newkeytheorem}
+ {\marg{env name}\oarg{options}}
+Defines a theorem environment \meta{env name} which itself takes a few options (see \autoref{in-doc-keys}).
+You can also declare multiple theorems at once by replacing \meta{env name} with a comma-list of names, e.g.
+\begin{center}
+\cs{newkeytheorem}\ttbraces{theorem,lemma,proposition}\bracks{\meta{options}}.
+\end{center}
+
+By default, the theorem's printed name is a title-cased \meta{env name}.
+This can be changed with the \refKey{thm/name} key.
+All \meta{options} are described in subsections \ref{thm-thmtools-keys} and \ref{thm-added-keys}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{theorem}
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{theorem}
+Some text
+\end{theorem}
+\end{keythmscode}
+
+\end{docCommand}
+
+\begin{docCommands}[
+ doc parameter=\marg{env name}\oarg{options}
+ ]
+ {
+ {doc name = renewkeytheorem},
+ {doc name = providekeytheorem},
+ {doc name = declarekeytheorem},
+ }
+Sometimes a package or class defines theorems that need to be overwritten by the user. For this case, \pkg{keytheorems} provides \cs{renewkeytheorem} which redefines \meta{env name} or errors if it is not defined. For completeness, also provided are \cs{providekeytheorem} and \cs{declarekeytheorem}. The former only defines \meta{env name} if it is not already defined; the latter always overwrites \meta{env name}.
+\end{docCommands}
+
+\subsection{Keys available to theorem environments} \label{in-doc-keys}
+
+As in \pkg{amsthm}, theorems can take an optional argument that contains a note or heading.
+
+\begin{keythmscode}[]
+\begin{theorem}[some heading]
+Some text
+\end{theorem}
+\end{keythmscode}
+
+Alternatively, the optional argument may contain any of the following keys.
+
+\begin{docKey}{note}
+ {=\meta{text}}
+ {initially unset}
+Alias \docAuxKey[][doc label=thmuse/name]{name}.
+This is the key-value equivalent of the optional argument described above.
+This syntax, however, allows the argument to contain other keys.
+
+\begin{keythmscode}[]
+\begin{theorem}[note=another heading]
+Some more text
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{short-note}
+ {=\meta{text}}
+ {initially unset}
+Alias \docAuxKey{short-name}.
+This replaces the value of \refKey{note} when displayed in the list of theorems (\refCom{listofkeytheorems}).
+\end{docKey}
+
+\begin{docKey}{label}
+ {=\meta{label name}}
+ {initially unset}
+This is the key-value equivalent of |\begin{theorem}| \cs{label}\marg{label name}.
+
+\begin{keythmscode}[]
+\begin{theorem}[label=foo]
+Some text
+\end{theorem}
+\ref{foo}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{continues}
+ {\sarg=\meta{label name}}
+ {initially unset}
+Pick up a theorem where you left off.
+The theorem number remains the same.
+The printed text can be customized with the \refKey{continues-code} option.
+The starred version also copies the theorem note, if it exists.
+
+\begin{keythmscode}[]
+\begin{theorem}[continues=foo]
+\dots and some more text.
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{store}
+ {\sarg=\meta{tag}}
+ {initially unset}
+Alias \docAuxKey{restate}\sarg.
+Stores the the theorem to be restated at any point in the document with \refCom{getkeytheorem}.
+With the starred version, counters and labels are taken from the copy called with \cs{getkeytheorem}, so in this case can only be restated once.
+This allows you, for example, to write all theorems and proofs in the appendix and call \cs{getkeytheorem} at the appropriate time mid-document.
+For the numbering to be correct, the unstarred key will need at most two runs and the starred key at most three runs.
+
+\begin{keythmscode}[]
+\begin{theorem}[store=blub]
+A theorem worth restating.
+\end{theorem}
+More brilliant mathematics.
+\getkeytheorem{blub}
+\end{keythmscode}
+
+A theorem given this key \emph{cannot} contain verbatim material or other unexpected catcodes, such as a \pkg{tikz-cd} diagram.
+The latter issue can be averted with the \texttt{ampersand-replacement} key.
+
+\begin{tcbwritetemp}
+\usepackage{tikz}
+\usetikzlibrary{cd}
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{lemma}[store=diagram]
+Some commutative diagram:
+\[\begin{tikzcd}[ampersand replacement=\&]
+X\times_S Y \ar[r] \ar[d] \& X \ar[d] \\
+Y \ar[r] \& S
+\end{tikzcd}\]
+\end{lemma}
+\dots
+\getkeytheorem{diagram}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{restate-keys}
+ {=\marg{list of keys}}
+ {initially unset}
+Allows passing different keys to the restated theorem.
+At the moment this is only useful with the \refKey{note} key.
+
+\begin{keythmscode}[]
+\begin{theorem}[
+ store=rktest,
+ note=ORIGINAL,
+ restate-keys={note=RESTATED}]
+Wow, yet another theorem.
+\end{theorem}
+\getkeytheorem{rktest}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{listhack}
+ {=\docValue*{true}\textbar\docValue*{false}}
+ {initially |false|}
+Meant only to be used with the \refKey{break} style key for a theorem starting with a list.
+Compare:
+
+\begin{tcbwritetemp}
+\newkeytheoremstyle{breaksty}{break}
+\newkeytheorem{observation}[style=breaksty]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{observation}
+\begin{enumerate}
+\item First item
+\end{enumerate}
+\end{observation}
+
+\begin{observation}[listhack=true]
+\begin{enumerate}
+\item First item
+\end{enumerate}
+\end{observation}
+\end{keythmscode}
+
+Note that the value |true| must be explicitly set so that |listhack| is not interpreted as the note text.
+\end{docKey}
+
+\begin{docKey}[][doc label=thm/seq]{seq}
+ {=\meta{name}}
+ {initially unset}
+Adds the theorem to a custom sequence \meta{name} that can then be listed with \cs{listofkeytheorems}\bracks{seq=\meta{name}}.
+See \refKey{listof/seq} for more details.
+\end{docKey}
+
+\subsection{Keys also defined in \pkg{thmtools}} \label{thm-thmtools-keys}
+
+These are the \oarg{options} available to \cs{newkeytheorem}.
+Except for \refKey{thm/name} and \refKey{style}, each key below can also be used in \refCom{newkeytheoremstyle}.
+For more description, see the \href{https://ctan.org/pkg/thmtools}{\pkg{thmtools}} package.
+
+\begin{docKey}[][doc label=thm/name]{name}
+ {=\meta{display name}}
+ {initially title-cased \meta{env name}}
+Aliases \docAuxKey{heading} and \docAuxKey{title}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{mythm}[name=Some Name]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{mythm}
+Some text
+\end{mythm}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{numbered}
+ {=\docValue*{true}\textbar\docValue*{false}\textbar \docValue{unless-unique}}
+ {default |true|, initially |true|}
+For compatibility with \pkg{thmtools}, also accepts the values \docValue*{yes}, \docValue*{no}, and \docValue*{unless unique}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{theorem*}[name=Theorem, numbered=false]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{theorem*}
+An unnumbered theorem.
+\end{theorem*}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{parent}
+ {=\meta{counter}}
+ {initially unset}
+Aliases \docAuxKey{numberwithin} and \docAuxKey{within}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{conjecture}[parent=section]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{conjecture}
+The first number is the section.
+\end{conjecture}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{sibling}{=\meta{counter}}{initially unset}
+Aliases \docAuxKey{numberlike} and \docAuxKey{sharenumber}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{lemma}[sibling=theorem]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{lemma}
+This shares its counter with \texttt{theorem}.
+\end{lemma}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{style}
+ {=\meta{style name}}
+ {initially unset}
+Accepts any \meta{style name} defined by \refCom{newkeytheoremstyle}, as well as any of the predefined \pkg{amsthm} styles: \docValue{plain}, \docValue{definition}, and \docValue{remark}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{remark}[style=remark]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{remark}
+Some text
+\end{remark}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKeys}[
+ doc parameter = {=\meta{code}},
+ doc description = initially unset,
+ ]
+ {
+ { doc name = preheadhook },
+ { doc name = postheadhook },
+ { doc name = prefoothook },
+ { doc name = postfoothook },
+ }
+Details in \autoref{keythms-hooks}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{test}[
+ preheadhook=PREHEAD,
+ postheadhook=POSTHEAD,
+ prefoothook=PREFOOT,
+ postfoothook=POSTFOOT
+]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{test}
+Some text
+\end{test}
+\end{keythmscode}
+
+\end{docKeys}
+
+\begin{docKey}{qed}
+ {\colOpt{=\meta{symbol}}}
+ {default \cs{qedsymbol}, initially unset}
+Adds \colOpt{\meta{symbol}} to the end of the theorem body.
+If no value is given, the symbol \qedsymbol{} is used.
+
+\begin{tcbwritetemp}
+\newkeytheorem{example}[qed]
+\newkeytheorem{solution}[qed=$\clubsuit$]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{example}
+Some text
+\end{example}
+\begin{solution}
+Some more text
+\end{solution}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{refname}
+ {=\meta{ref name} \textrm{or} \brackets{\meta{singular name},\meta{plural name}}}
+ {initially \meta{display name}}
+If a single string, then the name used by \pkg{hyperref}'s \cs{autoref} and \pkg{cleveref}'s \cs{cref}.
+If two strings separated by a comma, then the second string is the plural form used by \cs{cref}.
+\end{docKey}
+
+\begin{docKey}{Refname}
+ {=\meta{ref name} \textrm{or} \brackets{\meta{singular name},\meta{plural name}}}
+ {initially \meta{display name}}
+Same as \refKey{refname} but for \docAuxCommand{Autoref} and \cs{Cref}.
+Note that \cs{Autoref} is defined by \pkg{keytheorems}, but requires \pkg{hyperref} to work.
+As with \cs{autoref}, there is also a starred version \docAuxCommand{Autoref*} that suppresses the hyperlink.
+
+\begin{tcbwritetemp}
+\newkeytheorem{prop}[
+ name=Proposition,
+ refname={proposition,propositions},
+ Refname={Proposition,Propositions}
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{prop}[label=abc]
+Some text
+\end{prop}
+\begin{prop}[label=def]
+Some more text
+\end{prop}
+\begin{theorem}
+Consider \cref{abc,def}. \Autoref{abc} \dots
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}} \label{thm-added-keys}
+
+\begin{docKey}{tcolorbox}
+ {\colOpt{=\marg{tcolorbox options}}}
+ {initially unset}
+This key specifies that the theorem be placed inside a tcolorbox environment with \colOpt{\meta{options}}.
+The theorem head is typeset as a tcolorbox title; to avoid this see \refKey{tcolorbox-no-titlebar}.
+
+\begin{tcbwritetemp}
+\tcbset{
+ defstyle/.style={
+ arc=0mm,
+ colback=blue!5!white,
+ colframe=blue!75!black
+ },
+ }
+\newkeytheorem{corollary}[tcolorbox]
+\newkeytheorem{definition}[style=definition, tcolorbox={defstyle}]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{corollary}
+Some text
+\end{corollary}
+\begin{definition}[A nice definition]
+Some more text
+\end{definition}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{tcolorbox-no-titlebar}
+ {\colOpt{=\marg{tcolorbox options}}}
+ {initially unset}
+Same usage as \refKey{tcolorbox} but the theorem head is typeset as usual, not as a tcolorbox title.
+
+\begin{tcbwritetemp}
+\newkeytheorem{boxcor}[
+ tcolorbox-no-titlebar={colback=red!10},
+ name=Corollary, sibling=corollary
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{boxcor}
+Some text
+\end{boxcor}
+\end{keythmscode}
+
+\end{docKey}
+
+\pkg{tcolorbox} offers its own comprehensive \texttt{theorems} library. If all of your theorems are to be tcolorboxes, I highly recommend using it instead of this package! However, if only some of your theorems will use a tcolorbox, you may want to replicate the styles of \cs{NewTcbTheorem}. Here is an example that emulates \pkg{tcolorbox}'s \texttt{standard} theorem style.
+
+\begin{tcbwritetemp}
+\tcbset{
+ thmstyle/.style={
+ colback=green!5,
+ colframe=green!35!black},
+ }
+\newkeytheoremstyle{tcb-standard}{
+ tcolorbox=thmstyle,
+ headpunct={},
+ notebraces={}{},
+ noteseparator={: },
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ }
+\newkeytheorem{mytheo}[
+ name=My Theorem,
+ style=tcb-standard]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{mytheo}[This is my title]
+Some theorem text
+\end{mytheo}
+\end{keythmscode}
+
+\section{Theorem styles}
+\label{thmstyles}
+
+\begin{docCommand}{newkeytheoremstyle}
+ {\marg{name}\marg{options}}
+This is \pkg{keytheorems}' version of \pkg{thmtools}' \cs{declaretheoremstyle}.
+Since it makes little sense to define a style with no keys, we've made the \meta{options} argument mandatory.
+Note that unlike \pkg{amsthm}'s \cs{newtheoremstyle}, this command will error if a style has already been defined.
+To overwrite an existing style, there is the analogous \docAuxCommand{renewkeytheoremstyle}.
+For completeness, there are also \docAuxCommand{providekeytheoremstyle} and \docAuxCommand{declarekeytheoremstyle}.
+
+The defined style can be used with either the \refKey{style} key or the traditional \cs{theoremstyle}.
+\end{docCommand}
+
+\begin{notebox}
+For the AMS classes \cls{amsart}, \cls{amsbook}, and \cls{amsproc}, as well as the \cls{amsart}-based \cls{acmart} and \cls{aomart}, the initial key values are slightly different than what's below in order to match those class's defaults. See \autoref{class-support} for details.
+\end{notebox}
+
+\subsection{Keys also defined in \pkg{thmtools}}
+
+The following keys have the same meaning and syntax as the corresponding \pkg{thmtools} keys.
+In addition to the list below, most of the keys available to \refCom{newkeytheorem} can be used in \cs{newkeytheoremstyle}.
+
+\begin{docKey}{bodyfont}
+ {=\meta{font declarations}}
+ {initially \cs{itshape}}
+
+\end{docKey}
+
+\begin{docKey}{break}
+ {}
+ {initially unset}
+Do not use this with the \refKey{postheadspace} key.
+\end{docKey}
+
+\begin{docKey}{headfont}
+ {=\meta{font declarations}}
+ {initially \cs{bfseries}}
+
+\end{docKey}
+
+\begin{docKey}{headformat}
+ {=\docValue{margin}\textbar\docValue{swapnumber}\textbar\meta{code using \cs{NAME}, \cs{NUMBER}, and \cs{NOTE}\,}}
+ {}
+Alias \docAuxKey{headstyle}. Within \meta{code}, the commands \docAuxCommand{NAME}, \docAuxCommand{NUMBER}, and \docAuxCommand{NOTE} correspond to the formatted parts of the theorem head.
+\end{docKey}
+
+\begin{notebox}
+In \refKey{headformat}, you may also use the traditional \pkg{amsthm} commands \cs{thmname}, \cs{thmnumber}, and \cs{thmnote}, where |#1| is the theorem name, |#2| the number, and |#3| the note. \pkg{keytheorems} expands the head spec inside |\text_expand:n| so for these commands to work properly, the package adds them to |\l_text_expand_exclude_tl|. Note also that if you use these lower-level commands, the style keys \refKey{notebraces}, \refKey{notefont}, \refKey{noteseparator}, and \refKey{numberfont} will have no effect (of course, you can manually control these things inside the commands' arguments).
+\end{notebox}
+
+\begin{docKey}{headindent}
+ {=\meta{length}}
+ {initially |0pt|}
+
+\end{docKey}
+
+\begin{docKey}{headpunct}
+ {=\meta{code}}
+ {initially \ttbraces{.}}
+
+\end{docKey}
+
+\begin{docKey}{notebraces}
+ {=\marg{left brace}\marg{right brace}}
+ {initially \ttbraces{(}\ttbraces{)}}
+
+\end{docKey}
+
+\begin{docKey}{notefont}
+ {=\meta{font declarations}}
+ {initially \cs{fontseries}\cs{mddefault}\cs{upshape}}
+
+\end{docKey}
+
+\begin{docKey}{postheadspace}
+ {=\meta{length}}
+ {initially |5pt plus 1pt minus 1pt|}
+Do not use this with the \refKey{break} key.
+\end{docKey}
+
+\begin{docKey}{spaceabove}
+ {=\meta{length}}
+ {initially \cs{topsep}}
+
+\end{docKey}
+
+\begin{docKey}{spacebelow}
+ {=\meta{length}}
+ {initially \cs{topsep}}
+
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}}
+
+\begin{docKey}{inherit-style}
+ {=\meta{style name}}
+ {initially unset}
+Inherit the keys of any style declared with \refCom{newkeytheoremstyle}.
+Additionally, the three styles predefined by \pkg{amsthm} are possible values: \docValue{plain}, \docValue{definition}, and \docValue{remark}.
+\end{docKey}
+
+\begin{docKey}{noteseparator}
+ {=\meta{code}}
+ {initially \textvisiblespace}
+The code inserted before the note, and printed only if there is a note. This is executed \emph{before} the font commands set by \refKey{notefont} take effect.
+\end{docKey}
+
+\begin{docKey}{numberfont}
+ {=\meta{font declarations}}
+ {initially |\upshape|}
+For almost all theorem styles, it is recommended that you \emph{do not} change this setting.
+\end{docKey}
+
+\section{Restating theorems}
+
+When a theorem is given the \refKey{store} key, the contents of the theorem are saved and written to a |.thlist| file.
+At the start of the next run, this file is input at the beginning of the document and allows you to retrieve the stored theorems at any point, before or after the original theorem.
+
+\begin{docCommand}{getkeytheorem}
+ {\oarg{property}\marg{tag}}
+Retrieves the theorem given the key |store=|\meta{tag} or |store*=|\meta{tag}.
+An optional \meta{property} can be given to retrieve only the corresponding part of the theorem.
+Currently only the property |body| is implemented, which retrieves the (unformatted) body of the theorem.
+
+\begin{keythmscode}[]
+\getkeytheorem{mytag}
+
+\begin{example}[store=mytag]
+Fascinating example.
+\end{example}
+
+\getkeytheorem[body]{mytag}
+\end{keythmscode}
+
+\end{docCommand}
+
+\begin{docCommands}
+ {
+ {
+ doc name = IfRestatingTF,
+ doc parameter=\marg{true code}\marg{false code}
+ },
+ {
+ doc name = IfRestatingT,
+ doc parameter=\marg{true code}
+ },
+ {
+ doc name = IfRestatingF,
+ doc parameter=\marg{false code}
+ }
+ }
+Executes \meta{true code} if being retrieved with \refCom{getkeytheorem} and \meta{false code} if in the original theorem. This is reversed if \texttt{store*} is used.
+
+\begin{keythmscode}[]
+\begin{example}[store=hmm]
+I am the
+\IfRestatingTF{restated}{original}
+example!
+\end{example}
+
+\getkeytheorem{hmm}
+\end{keythmscode}
+
+\end{docCommands}
+
+\section{Listing theorems}
+\label{listingthms}
+
+\begin{docCommand}{listofkeytheorems}
+ {\oarg{options}}
+Similar to \cs{listoffigures} or \cs{listoftables} but for theorems.
+For \cls{memoir} and the AMS classes, \pkg{keytheorems} tries to copy the formatting of these commands as defined by the class.
+For other classes, manual adjustments to \refKey{numwidth} and \refKey{indent} may be necessary.
+\end{docCommand}
+
+\begin{docCommand}{keytheoremlistset}
+ {\marg{options}}
+
+\end{docCommand}
+
+\begin{keythmscode}[]
+\listofkeytheorems
+\end{keythmscode}
+
+\subsection{Keys also defined in \pkg{thmtools}}
+
+\begin{docKey}{ignore}
+ {=\marg{comma-list of env names}}
+ {initially unset}
+
+\end{docKey}
+
+\begin{docKey}{ignoreall}
+ {}
+ {initially unset}
+
+\begin{keythmscode}[]
+\listofkeytheorems[ignoreall,show=theorem]
+\listofkeytheorems[
+ ignoreall, show=conjecture,
+ title=List of Conjectures
+ ]
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{numwidth}
+ {=\meta{length}}
+ {initially |2.3em|}
+For the AMS classes, this is initially |1.5pc|.
+\end{docKey}
+
+\begin{docKey}{onlynamed}
+ {\colOpt{=\marg{comma-list of env names}}}
+ {initially unset}
+
+\end{docKey}
+
+\begin{docKey}{show}
+ {=\marg{comma-list of env names}}
+ {initially all theorems}
+
+\end{docKey}
+
+\begin{docKey}{showall}
+ {}
+ {initially set}
+
+\end{docKey}
+
+\begin{docKey}{swapnumber}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+
+\end{docKey}
+
+\begin{docKey}{title}
+ {=\meta{text}}
+ {initially \cs{GetTranslation}\ttbraces{keythms\string_listof\string_title}}
+Defaults to ``List of Theorems'' if English or an unknown language is used.
+Currently French, German, Italian, Portuguese, and Spanish have (likely inaccurate!) translations.
+A translation can be added with a GitHub pull request or manually with
+\begin{center}
+\cs{DeclareTranslation}\marg{lang}\ttbraces{keythms\string_listof\string_title}\marg{text}.
+\end{center}
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}}
+
+\begin{docKey}{format-code}
+ {=\meta{code with \textup{\texttt{\#1}}, \textup{\texttt{\#2}}, and \textup{\texttt{\#3}}}}
+ {initially \cs{numberline}\texttt{\{\#2\}\#1\#3}}
+Allows full control over the format for list entries. The theorem name is |#1|, the number is |#2|, and the (formatted) note is |#3|. The note formatting is still controlled by \refKey{note-code}.
+\end{docKey}
+
+\begin{docKey}{indent}
+ {=\meta{length}}
+ {initially |1.5em|}
+Sets the left indent of items in the list of theorems.
+For \cls{memoir} and the AMS classes, the indent is initially |0pt|.
+It is not recommended to change this unless your class has different defaults not already covered.
+\end{docKey}
+
+\begin{docKey}{no-chapter-skip}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+By default a small vertical space is inserted between each chapter's chunk of theorems.
+Setting this key to |true| removes this space.
+\end{docKey}
+
+\begin{docKey}{chapter-skip-length}
+ {=\meta{dimension}}
+ {initially |10pt|}
+Controls the amount of space inserted between chunks.
+\end{docKey}
+
+\begin{docKey}{no-continues}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+Suppresses the printing of theorems given the \refKey{continues} key in the list of theorems.
+\end{docKey}
+
+\begin{docKey}{no-title}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+Suppresses the title of the list of theorems.
+Useful for custom ordering of the list.
+
+\begin{keythmscode}[]
+\keytheoremlistset{ignoreall}
+\listofkeytheorems[show=example]
+\listofkeytheorems[show=solution, no-title]
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{no-toc}
+ {\colOpt{=true\textbar false}}
+ {initially false}
+With the standard classes, lists of figures/tables are not added to the table of contents by default. The same is true for \cs{listofkeytheorems}, and with those classes this key does nothing. However some classes, notably \cls{memoir} and the AMS classes, do add lists to the table of contents. With these classes, this key suppresses the addition of the list of theorems to the table of contents.
+\end{docKey}
+
+\begin{docKey}{note-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially \ttbraces{ (\#1)}}
+Formats the optional note in the list of theorems.
+\end{docKey}
+
+\begin{docKey}{onlynumbered}
+ {\colOpt{=\marg{comma-list of env names}}}
+ {initially unset}
+Similar to \refKey{onlynamed}, but lists only those theorems which are numbered.
+This is useful if you'd like to exclude things like unnumbered definitions and remarks from the list of theorems.
+\end{docKey}
+
+\begin{docKey}{print-body}
+ {}
+ {initially unset}
+Instead of listing the theorem headings, the theorems are restated with their body text.
+Not very useful without the \refKey{store-all} load-time option.
+\end{docKey}
+
+\begin{docKey}[][doc label=listof/seq]{seq}
+ {=\meta{name}}
+ {initially unset}
+Used to list only the theorems added to the custom sequence \meta{name} with the \refKey{thm/seq} theorem key.
+This is the only way to fully customize which theorems appear in the list of theorems.
+Unlike with \refKey{show}, you do not need to use \refKey{ignoreall} to prevent theorems not in \meta{name} from being printed.
+\end{docKey}
+
+\begin{docKey}{title-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially \cs{section*}\ttbraces{\#1}}
+If \cs{chapter} is defined, then initially this is instead \cs{chapter*}\ttbraces{\#1}. This key has no effect if used with an AMS class because these classes hard-code the section heading into \cs{@starttoc}.
+\end{docKey}
+
+\subsection{Adding code to list of theorems}
+
+There are analogous commands to \cs{addcontentsline} and \cs{addtocontents} for adding entries or arbitrary code to the list of theorems.
+
+\begin{notebox}
+You \emph{must} use these commands rather than the aforementioned because the |.thlist| file is also used to define restated theorems and cannot contain unexpected code.
+\end{notebox}
+
+\begin{docCommand}{addtheoremcontentsline}
+ {\marg{level}\marg{text}}
+
+\end{docCommand}
+
+\begin{docCommand}{addtotheoremcontents}
+ {\marg{code}}
+
+\end{docCommand}
+
+\section{Theorem hooks} \label{keythms-hooks}
+
+\begin{docCommand}{addtotheoremhook}
+ {\oarg{env name}\marg{hook name}\marg{code}}
+The \meta{hook name} can be \hook{prehead}, \hook{posthead}, \hook{prefoot}, \hook{postfoot}, or \hook{restated}.
+If no \meta{env name} is given, the \meta{code} is added to the ``generic'' hook, i.e. applied to all theorems.
+As in \pkg{thmtools}, the order of hooks is as follows:
+
+\begin{center}
+ \small
+ \tcbset{
+ nobeforeafter,
+ tikznode,
+ tcbox width=forced center,
+ width=1.85cm,
+ tcbox raise=-0.4cm,
+ size=fbox,
+ after=\;$\rightarrow$
+ }
+ \tcbox{\meta{env name}\\ \hook{prehead}}
+ \tcbox{generic\\ \hook{prehead}}
+ \tcbox[width=3.25cm,tcbox raise=-0.2cm]{\cs{begin}\brackets{\meta{env name}}}
+ \tcbox{\meta{env name}\\ \hook{posthead}}
+ \tcbox[after={}]{generic\\ \hook{posthead}}
+ \\[2ex]
+ \tcbset{before=$\rightarrow$\;}
+ \tcbox[width=2.25cm,tcbox raise=-0.2cm]{\meta{theorem body}}
+ \\[2ex]
+ \tcbset{after={}}
+ \tcbox[before={}]{generic\\ \hook{prefoot}}
+ \tcbox{\meta{env name}\\ \hook{prefoot}}
+ \tcbox[width=3.25cm,tcbox raise=-0.2cm]{\cs{end}\brackets{\meta{env name}}}
+ \tcbox{generic\\ \hook{postfoot}}
+ \tcbox{\meta{env name}\\ \hook{postfoot}}
+\end{center}
+The \hook{restated} hook is applied at the start of theorems retrieved with the command \cs{getkeytheorem}, after the \hook{prehead} hook.
+This can be useful for disabling commands such as \cs{footnote} in the restated theorems, e.g.
+\begin{dispListing}
+\addtotheoremhook{restated}{\renewcommand\footnote[2][]{}}
+\end{dispListing}
+
+By default, \pkg{keytheorems} disables the \cs{label} and \cs{RecordProperties} commands in restated theorems.
+
+In \pkg{thmtools}, the \hook{prefoot} and \hook{postfoot} hooks always prepend code, i.e. the code
+\begin{dispListing}
+\addtotheorempostfoothook{A}
+\addtotheorempostfoothook{B}
+\end{dispListing}
+results in |BA| after the theorem.
+With \pkg{keytheorems}, code is added in the order declared, meaning
+\begin{dispListing}
+\addtotheoremhook{postfoot}{A}
+\addtotheoremhook{postfoot}{B}
+\end{dispListing}
+results in |AB| after the theorem.
+This is the behavior of the \LaTeX{} kernel hooks that \pkg{keytheorems} uses under the hood.
+
+Code added using the hook keys \refKey{preheadhook}, etc. is outermost, meaning executed first in \hook{prehead} and \hook{posthead} and last in \hook{prefoot} and \hook{postfoot}.
+\end{docCommand}
+
+\section{Miscellaneous notes}
+
+\subsection{\cls{beamer} support}
+
+The package contains some \emph{highly experimental} code to support theorems with \cls{beamer}, including overlays.
+Most style keys are disabled by the |default| \cls{beamer} theorem template.
+More become functional by setting
+\begin{dispListing}
+\setbeamertemplate{theorems}[ams style]
+\end{dispListing}
+in the preamble.
+Alternatively, you have full control of theorems by setting the class option |noamsthm|.
+
+Note that by default \cls{beamer} defines a set of theorems when the class is loaded.
+These can be overwritten with \refCom{renewkeytheorem} or disabled entirely with the |notheorems| class option.
+
+Due to complications with overlays, writing contents of theorems to the |thlist| file is disabled. This means theorems can only be restated \emph{after} their original statement. Furthermore, \refCom{listofkeytheorems} is disabled and a warning issued if used.
+
+User feedback is necessary to make this code fully compatible. Please report issues on the \href{https://github.com/mbertucci47/keytheorems/issues}{Github page}!
+
+\subsection{Support for other classes}
+\label{class-support}
+
+As mentioned in \autoref{thmstyles}, the initial style key values set by \pkg{keytheorems} are adjusted for the AMS classes \cls{amsart}, \cls{amsbook}, and \cls{amsproc}, the \cls{amsart}-based \cls{acmart} and \cls{aomart}, and \cls{jlreq}. You can find the exact changed values in the support files \texttt{keythms-\meta{class}-support.tex}.
+
+These class support files also contain code to adapt to class' formatting of lists-of as mentioned in \autoref{listingthms}; changes are made for the AMS classes, \cls{memoir}, \cls{IEEEtran}, and \cls{jlreq}.
+
+\subsection{Support for font packages}
+
+Some font packages, all by Michael Sharpe, offer a |theoremfont| option that redefines the |plain| style body font to have italic text with upright figures, punctuation, and delimiters. \pkg{keytheorems} detects this option and sets its initial style values accordingly. The supported packages are \pkg{baskervillef}, \pkg{cochineal}, \pkg{libertinust1math}, \pkg{newpxtext}, \pkg{newtxtext}, \pkg{scholax}, and \pkg{XCharter}.
+
+\subsection{Support for tagged PDF}
+
+The \LaTeX{} team has been working hard to support the creation of tagged PDFs (see \url{https://latex3.github.io/tagging-project/}).
+The current |dev| formats make \pkg{amsthm} compatible with the kernel tagging code.
+Most of \pkg{keytheorems} is supported too, and anything that doesn't work should be reported.
+The only things explicitly not supported are the \refKey{tcolorbox} and \refKey{tcolorbox-no-titlebar} keys.
+
+To produce a tagged PDF, add \cs{DocumentMetadata} in the first line of your document (additional instructions are found on the Tagging Project \href{https://latex3.github.io/tagging-project/documentation/prototype-usage-instructions.html}{website}).
+An example invocation might look like
+
+\begin{dispListing}
+\DocumentMetadata
+ {
+ lang=en-US,
+ pdfversion=2.0,
+ pdfstandard=ua-2,
+ testphase={phase-III,math,table,title,firstaid}
+ }
+\end{dispListing}
+
+At a minimum, the |testphase| modules |phase-III| and |firstaid| are required.
+The GitHub tests folder contains an example of a tagged PDF using \pkg{keytheorems}: \href{https://github.com/mbertucci47/keytheorems/blob/main/tests/tagged-keytheorems-amsthmtest.tex}{\texttt{tagged-keytheorems-amsthmtest.tex}}.
+
+\subsection{Public coding interfaces}
+
+\begin{itemize}
+ \item |\l_keythms_thmuse_envname_tl|
+
+ Inside theorem environments and in all theorem hooks, you have access to the theorem's environment and counter name in this token list variable.
+\end{itemize}
+
+\section{Further examples}
+
+More examples will be added soon -- rather, eventually\dots{}
+For now, you can find a \pkg{keytheorems} adaptation of \pkg{amsthm}'s classic file \href{https://mirrors.ctan.org/macros/latex/required/amscls/doc/thmtest.tex}{\texttt{thmtest.tex}} in the Github \texttt{tests} folder: \href{https://github.com/mbertucci47/keytheorems/blob/main/tests/keytheorems-amsthmtest.tex}{\texttt{keytheorems-amsthmtest.tex}}.
+
+%\section{Implementation}
+%\inputminted[linenos,style=bw]{latex}{../keytheorems.sty}
+
+\printindex
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-IEEEtran-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-IEEEtran-support.tex
new file mode 100644
index 0000000000..503850bef7
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-IEEEtran-support.tex
@@ -0,0 +1,15 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-IEEEtran-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~IEEEtran~class}
+
+\keys_define:nn { keytheorems/listof }
+ {
+ indent .initial:n = 0pt,
+ numwidth .initial:n = 2.75em,
+ }
+
+% IEEEtran has it's own way of doing theorems that amsthm overwrites.
+% Not sure if we should attempt to copy its style.
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex
new file mode 100644
index 0000000000..69d70e3149
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex
@@ -0,0 +1,92 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsart-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~amsart~class}
+
+\__keythms_support_AMSshared_code:
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ headfont = \itshape,
+ }
+ }
+
+\bool_case:nF
+ {
+ { \__keythms_if_classloaded_p:n { acmart } }
+ {
+ \keytheoremset{overload} % since acmart predefines several theorems at begindocument
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ bodyfont = \@acmplainbodyfont,
+ headfont = \@acmplainheadfont,
+ headindent = \@acmplainindent,
+ notefont = \@acmplainnotefont,
+ postheadspace = .5em,
+ spaceabove =
+ .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow =
+ .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+ \keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / acmplain .meta:n = {},
+ inherit-style / acmdefinition .meta:n =
+ {
+ bodyfont = \@acmdefinitionbodyfont,
+ headindent = \@acmdefinitionindent,
+ headfont = \@acmdefinitionheadfont,
+ notefont = \@acmdefinitionnotefont,
+ },
+ }
+ }
+ { \__keythms_if_classloaded_p:n { aomart } }
+ {
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ bodyfont = \sishape,
+ headfont = \scshape,
+ headindent = \parindent,
+ notefont = \normalfont,
+ postheadspace = 0.5em,
+ spaceabove = 0.5\linespacing,
+ spacebelow = 0.5\linespacing,
+ }
+ \keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / definition .meta:n =
+ {
+ bodyfont = \upshape,
+ headfont = \sishape,
+ headindent = \parindent,
+ notefont = \normalfont,
+ postheadspace = 0.5em,
+ spaceabove = 0.5\linespacing,
+ spacebelow = 0.5\linespacing,
+ },
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \upshape,
+ headfont = \sishape,
+ headindent = \parindent,
+ notefont = \normalfont,
+ postheadspace = 0.5em,
+ spaceabove = 0.5\linespacing,
+ spacebelow = 0.5\linespacing,
+ },
+ }
+ }
+ }
+ { % the amsart defaults
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex
new file mode 100644
index 0000000000..262e41db1b
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex
@@ -0,0 +1,22 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsbook-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~amsbook~class}
+
+\__keythms_support_AMSshared_code:
+
+\prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ headfont = \scshape,
+ headindent = \parindent,
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n = { bodyfont = \normalfont },
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex
new file mode 100644
index 0000000000..e941bf6c08
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex
@@ -0,0 +1,22 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsproc-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~amsproc~class}
+
+\__keythms_support_AMSshared_code:
+
+\prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ headfont = \scshape,
+ headindent = \parindent,
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n = { bodyfont = \normalfont },
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex
new file mode 100644
index 0000000000..7500327148
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex
@@ -0,0 +1,345 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-beamer-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~beamer~class}
+
+% disable \listofkeytheorems, add warning
+\msg_new:nnn { keytheorems } { beamer-listof }
+ {
+ \protect\listofkeytheorems\space not~supported~with~beamer
+ }
+\RenewDocumentCommand \listofkeytheorems { o }
+ {
+ \msg_warning:nn { keytheorems } { beamer-listof }
+ }
+
+% besides above, do nothing if noamsthm loaded
+\IfClassLoadedWithOptionsT{ beamer }{ noamsthm }{ \file_input_stop: }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / example .meta:n =
+ {
+ bodyfont = \normalfont,
+ preheadhook = \def\inserttheoremblockenv{exampleblock},
+ }
+ }
+\keys_define:nn { keytheorems/thm }
+ { % redefine key to include \thm@headsep
+ tcolorbox-no-titlebar .meta:n =
+ {
+ tcolorbox={
+ notitle,
+ before~upper={
+ \group_begin:
+ \usebeamerfont*{block title}
+ \__keythms_thm_tcboxtemphead:
+ \hskip\thm@headsep
+ \group_end:
+ },
+ #1
+ }
+ },
+ }
+\cs_set_protected:Npn \__keythms_thm_tcboxcode:nn #1#2
+ { % #1 = name, #2 = tcolorbox keys
+ \RequirePackage{tcolorbox}
+ \tcbset
+ {
+ keythms_tcbox_#1/.style =
+ {
+ savedelimiter=#1,
+ #2
+ }
+ }
+ \tl_gput_left:cn { g__keythms_thm_preheadfromkeys_#1_tl }
+ {
+ \cs_set_protected:Npn \thm@space@setup { \thm@preskip=0pt \thm@postskip=0pt }
+ \cs_set:Npn \inserttheoremblockenv { keythms_beamer_tcbox }
+ }
+ }
+\NewDocumentEnvironment{ keythms_beamer_tcbox }{ m d<> }
+ {
+ \cs_set:Npn \__keythms_thm_tcboxtemphead: { #1 } % for tcolorbox-no-titlebar
+ \tl_if_novalue:nF { #2 } { \begin{onlyenv}<#2> }
+ \begin{tcolorbox}[
+ title={\usebeamerfont*{block title} #1},
+ keythms_tcbox_\l_keythms_thmuse_envname_tl
+ ]
+ }
+ {
+ \end{tcolorbox}
+ \tl_if_novalue:nF { #2 } { \end{onlyenv} }
+ }
+
+\cs_set_protected:Npn \keythms_keyify_theorem:n #1
+ { % #1 = theorem name
+ \DeclareEnvironmentCopy { keythms_orig_#1 } { #1 }
+ \DeclareDocumentEnvironment { keythms_beamer_grab_#1 } { m m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = action spec, ##4 = theorem body
+ \tl_if_empty:nTF { ##3 }
+ { \begin{keythms_orig_#1}[{##2}] }
+ { \begin{keythms_orig_#1}[{##2}]<##3> }
+ \clist_map_inline:Nn \g__keythms_restatecounters_clist
+ {
+ \prop_gput:Nne \g__keythms_thmuse_othercounters_prop { ####1 }
+ { \the\value{####1} }
+ }
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addcontentsdata:nnnn { #1 }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { ##1 } { ##4 }
+ \__keythms_thm_tempstorerestatedata:nnn { #1 } { ##1 } { ##4 }
+ ##4
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ }
+ {}
+ \DeclareDocumentEnvironment { keythms_beamer_grabreversed_#1 } { m m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = action spec, ##4 = theorem body
+ \tl_if_exist:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl }
+ {
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Ne \l__keythms_restate_counters_prop
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_####1_tl }
+ { \the\value{####1} }
+ \setcounter { ####1 } { ####2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ####1 }
+ { \use:c { the ####1 } . \theHkeythms_restate_dummyctr }
+ }
+ \tl_if_empty:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl }
+ { \refstepcounter{keythms_restate_dummyctr} } % for unnumbered theorems
+ {
+ \cs_set:cpn { the #1 }
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl } }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_restate_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_restate_dummyctr
+ % ^ why are the last two lines here? We shouldn't be referencing
+ % restated theorems. Think it's a remnant of thmtools
+ % WRONG: needed to make numbering correct after restated theorem.
+ % not sure about theH. <- this is needed to prevent duplicate anchors
+ }
+ }
+ {
+ \msg_warning:nnV { keytheorems } { store-reversed-not-got }
+ \l__keythms_thmuse_storereversed_tl
+ }
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ \tl_if_empty:nTF { ##3 }
+ { \begin{keythms_orig_#1}[{##2}] }
+ { \begin{keythms_orig_#1}[{##2}]<##3> }
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addstoredreverseddata:nnn { #1 } { ##1 } { ##4 }
+ \__keythms_thm_tempstorerestatedatareversed:nnn { #1 } { ##1 } { ##4 }
+ ##4
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ####1 }
+ { l_keythms_restate_current_####1_tl }
+ }
+ }
+ { }
+ % NOTE: have to do a lot of shenanigans to make sure the begin/end of grabbed
+ % theorem env captures only the body and no package code.
+ % This is the price of on-the-fly redefining the env to grab body
+ \RenewDocumentEnvironment { #1 } { D<>{} ={note} O{} D<>{} }
+ {
+ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 }
+ \keys_set:nn { keytheorems/thmuse } { ##2 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ % \bool_gset_true:N \g__keythms_listof_writefile_bool % disable writing to file
+ \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnnn \__keythms_beamer_grab_begin:nnnn
+ \cs_set_eq:NN \__keythms_beamer_withhooks_end:n \__keythms_beamer_grab_end:n
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ % \bool_gset_true:N \g__keythms_listof_writefile_bool % disable writing to file
+ \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnnn \__keythms_beamer_grabreversed_begin:nnnn
+ \cs_set_eq:NN \__keythms_beamer_withhooks_end:n \__keythms_beamer_grabreversed_end:n
+ }
+ \__keythms_thm_prehead_code:n { #1 }
+ \tl_if_empty:nTF { ##3 }
+ { % if ##3 empty, just pass ##1 and withhooks_begin will check if empty
+ \__keythms_beamer_withhooks_begin:nnVn { #1 } { ##2 }
+ \l__keythms_thmuse_note_tl { ##1 }
+ }
+ { % if ##3 nonempty, always use it (beamer defaults to second <> if both given)
+ \__keythms_beamer_withhooks_begin:nnVn { #1 } { ##2 }
+ \l__keythms_thmuse_note_tl { ##3 }
+ }
+ }
+ {
+ \__keythms_beamer_withhooks_end:n { #1 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthm_theorem:nnnnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedata_tl }
+ }
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _body }
+ {
+ \exp_not:N \__keythms_getthm_body:nn
+ \exp_args:No \exp_not:o
+ {
+ \exp_after:wN \__keythms_use_iii_v_braced:nnnnn
+ \g__keythms_thmuse_temprestatedata_tl
+ }
+ }
+ }
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthmreversed_theorem:nnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedatareversed_tl }
+ }
+ \cs_new:cpn
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \textbf{??}
+ \msg_warning:nnn { keytheorems } { restate-body-never-got }
+ { #1 }
+ }
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_beamer_withhooks_begin:nnnn #1#2#3#4
+ { % #1 = theorem name, #2 = keys, #3 = note, #4 = action spec
+ \tl_if_empty:nTF { #4 }
+ { \begin{keythms_orig_#1}[{#3}] }
+ { \begin{keythms_orig_#1}[{#3}]<#4> }
+ \__keythms_thm_posthead_code:n { #1 }
+ \__keythms_thm_addcontentsdata:nnnn { #1 } { } { #2 } { }
+ \ignorespaces % I hope this is alright
+ }
+\cs_generate_variant:Nn \__keythms_beamer_withhooks_begin:nnnn { nnV }
+\cs_new_eq:NN \__keythms_beamer_withhooks_end:n \__keythms_withhooks_end:n
+
+\cs_new_protected:Npn \__keythms_beamer_grab_begin:nnnn #1#2#3#4
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_beamer_grab_#1}{#2}{#3}{#4}
+ }
+\cs_generate_variant:Nn \__keythms_beamer_grab_begin:nnnn { nnV }
+\cs_new_protected:Npn \__keythms_beamer_grab_end:n #1 { \end{keythms_beamer_grab_#1} }
+
+\cs_new_protected:Npn \__keythms_beamer_grabreversed_begin:nnnn #1#2#3#4
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_beamer_grabreversed_#1}{#2}{#3}{#4}
+ }
+\cs_generate_variant:Nn \__keythms_beamer_grabreversed_begin:nnnn { nnV }
+\cs_new_protected:Npn \__keythms_beamer_grabreversed_end:n #1
+ { \end{keythms_beamer_grabreversed_#1} }
+
+% for now, just disable writing to file
+\cs_set_eq:NN \__keythms_thm_addcontentsdata:nnnn \use_none:nnnn
+\cs_set_eq:NN \__keythms_thm_addstoredreverseddata:nnn \use_none:nnn
+
+\cs_new_protected:Npn \__keythms_beamer_reversedauxdata:nnnn #1#2#3#4
+ {
+ \iow_shipout:Ne \@auxout
+ {
+ \KeyThmsBeamerReversedData { \l__keythms_thmuse_storereversed_tl }
+ { \@currentlabel }
+ { #2 }
+ }
+ }
+\cs_new_protected:Npn \KeyThmsBeamerReversedData #1#2#3
+ {
+ \tl_if_exist:cF { c__keythms_storeatbegin_#1_label_tl }
+ {
+ \tl_const:cn { c__keythms_storeatbegin_#1_label_tl } { #2 }
+ }
+ \tl_if_exist:cF { c__keythms_storeatbegin_#1_restatecounters_tl }
+ {
+ \tl_const:cn { c__keythms_storeatbegin_#1_restatecounters_tl } { #3 }
+ }
+ \bool_if_exist:cF { g__keythms_restate_#1_called_bool }
+ { \bool_new:c { g__keythms_restate_#1_called_bool } }
+ }
+\cs_new_eq:NN \__keythms_ORIGgetthmreversed_theorem:nnn
+ \__keythms_getthmreversed_theorem:nnn
+\cs_set_protected:Npn \__keythms_getthmreversed_theorem:nnn #1#2#3
+ {
+ \group_begin:
+ \cs_set_eq:NN \__keythms_thm_addcontentsdata:nnnn \__keythms_beamer_reversedauxdata:nnnn
+ \__keythms_ORIGgetthmreversed_theorem:nnn { #1 } { #2 } { #3 }
+ \group_end:
+ }
+
+% restatable and restatable* environments need redefinition
+\bool_if:NT \g__keythms_thmtoolscompat_bool
+ {
+ \RenewDocumentEnvironment { restatable } { O{} m m }
+ {
+ % set store outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store=#3 }
+ \begin{#2}[#1]
+ }
+ {
+ \end{#2}
+ \cs_gset_protected:cpn { #3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ #3 } }
+ { \getkeytheorem{ #3 } }
+ }
+ }
+ \RenewDocumentEnvironment { restatable* } { O{} m m }
+ {
+ \cs_set_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn ##1##2##3
+ {
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env
+ {
+ { ##1 }
+ { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ##2 } }
+ { \exp_not:n { ##3 } }
+ }
+ }
+ % set store* outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store*=#3 }
+ \begin{#2}[#1]
+ }
+ {
+ \end{#2}
+ \cs_gset_protected:cpn { #3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ #3 } }
+ { \getkeytheorem{ #3 } }
+ }
+ }
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-jlreq-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-jlreq-support.tex
new file mode 100644
index 0000000000..9c887e00d3
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-jlreq-support.tex
@@ -0,0 +1,34 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-jlreq-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~jlreq~class}
+
+\prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ bodyfont = \prop_item:Nn \g__jlreq_complements_theorem_prop { font },
+ headfont =
+ \prop_item:Nn \g__jlreq_complements_theorem_prop { label_font },
+ headindent =
+ \dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { indent },
+ headpunct = {},
+ postheadspace = 1\jlreq@zw,
+ notebraces = {(}{)},
+ notefont =
+ \prop_item:Nn \g__jlreq_complements_theorem_prop { label_font },
+ noteseparator = {},
+ spaceabove =
+ \dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space } \relax,
+ spacebelow =
+ \dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space } \relax,
+ }
+
+\keys_define:nn { keytheorems/thmstyle } { inherit-style / jlreq .meta:n = {} }
+
+\keys_define:nn { keytheorems/listof }
+ {
+ indent .initial:n = 0\jlreq@gol,
+ numwidth .initial:n = 2\jlreq@gol,
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex
new file mode 100644
index 0000000000..27992798e4
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex
@@ -0,0 +1,51 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-memoir-support}{\@keythms@date}{\@keythms@version}
+ {keytheorems~support~for~the~memoir~class}
+
+\bool_new:N \l__keythms_support_titlecode_bool
+
+\keys_define:nn { keytheorems/listof }
+ {
+ indent .initial:n = 0pt,
+ title-code .code:n =
+ {
+ \bool_set_true:N \l__keythms_support_titlecode_bool
+ \cs_set:Npn \__keythms_listof_titlecmd:n ##1 { #1 }
+ },
+ }
+
+% use memoir's list function; not using \newlistentry, though
+\newlistof{ keythms_support_memoir_listof:w }{ thlist }
+ { \l__keythms_listof_title_tl }
+
+\RenewDocumentCommand \listofkeytheorems { O{} }
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { #1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ##1 { ##1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_eq:NN \KeyThmsAddvspace \addvspace
+ }
+ \bool_if:NTF \l__keythms_listof_notitle_bool
+ {
+ \cs_set:Npn \@thlistmaketitle {}
+ \keythms_support_memoir_listof:w*
+ }
+ {
+ \bool_if:NT \l__keythms_support_titlecode_bool
+ {
+ \cs_set:Npn \@thlistmaketitle
+ { \__keythms_listof_titlecmd:n { \l__keythms_listof_title_tl } }
+ }
+ \bool_if:NTF \l__keythms_listof_notoc_bool
+ { \keythms_support_memoir_listof:w* }
+ { \keythms_support_memoir_listof:w }
+ }
+ \group_end:
+ }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/keytheorems.sty b/macros/latex/contrib/keytheorems/tex/keytheorems.sty
new file mode 100644
index 0000000000..e1483782d9
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/keytheorems.sty
@@ -0,0 +1,2578 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\NeedsTeXFormat{LaTeX2e}[2023-06-01]
+\def\@keythms@date{2024-10-21}
+\def\@keythms@version{0.1.8}
+\ProvidesExplPackage{keytheorems}{\@keythms@date}{\@keythms@version}
+ {l3keys interface to amsthm}
+
+\IfFormatAtLeastTF { 2024-06-01 } { }
+ {
+ \RequirePackage{nameref} % to avoid ltproperties in code below
+ \cs_generate_variant:Nn \cs_set:Npn { Npe }
+ \cs_generate_variant:Nn \iow_shipout:Nn { Ne }
+ \cs_generate_variant:Nn \keys_set:nn { ne }
+ \cs_generate_variant:Nn \msg_warning:nnn { nne }
+ \cs_generate_variant:Nn \tl_put_right:Nn { Ne }
+ \ProvideDocumentCommand \IfPackageLoadedT { m m }
+ { \IfPackageLoadedTF{#1}{#2}{ } }
+ \ProvideDocumentCommand \IfPackageLoadedF { m m }
+ { \IfPackageLoadedTF{#1}{ }{#2} }
+ \ProvideDocumentCommand \IfClassLoadedT { m m }
+ { \IfClassLoadedTF{#1}{#2}{ } }
+ \ProvideDocumentCommand \IfClassLoadedWithOptionsT { m m m }
+ { \IfClassLoadedWithOptionsTF{#1}{#2}{#3}{ } }
+ \ProvideDocumentCommand \IfPackageLoadedWithOptionsT { m m m }
+ { \IfPackageLoadedWithOptionsTF{#1}{#2}{#3}{ } }
+ }
+\RequirePackage{aliascnt}
+\RequirePackage{amsthm} % ams classes have way of ignoring this
+\RequirePackage{refcount}
+\RequirePackage{translations}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%%% Error Messages %%%
+%%%%%%%%%%%%%%%%%%%%%%
+
+\msg_new:nnn { keytheorems } { thmtools-before }
+ {
+ keytheorems~is~not~compatible~with~thmtools.~
+ Try~replacing~\protect\usepackage{thmtools}~with~
+ \protect\usepackage[thmtools-compat]{keytheorems}.
+ }
+\msg_new:nnn { keytheorems } { thmtools-after }
+ {
+ keytheorems~is~not~compatible~with~thmtools.~
+ This~will~not~work~as~you~think!~
+ Try~replacing~\protect\usepackage{thmtools}~with~
+ \protect\usepackage[thmtools-compat]{keytheorems}.
+ }
+\msg_new:nnn { keytheorems } { no-stored-theorem }
+ {
+ No~stored~theorem~'#1'~found!~
+ Try~compiling~again.~If~that~doesn't~work,~
+ check~the~spelling~of~'#1'.
+ }
+\msg_new:nnn { keytheorems } { no-prop-for-stored-theorem }
+ {
+ No~property~'#1'~found~for~stored~theorem~'#2'.
+ }
+\msg_new:nnn { keytheorems } { store-reversed-not-got }
+ {
+ 'store*=#1'~only~makes~sense~if~you've~called~\protect\getkeytheorem{#1}.~
+ Check~that~\protect\getkeytheorem{#1}~is~called~and~compile~again.
+ }
+\msg_new:nnn { keytheorems } { restate-body-never-got }
+ {
+ With~'store*=#1',~\protect\getkeytheorem[body]{#1}~only~makes~sense~if~
+ \protect\getkeytheorem{#1}~has~been~called.~
+ Check~that~\protect\getkeytheorem{#1}~is~called~and~compile~again.
+ }
+\msg_new:nnn { keytheorems } { store-reversed-called-twice }
+ {
+ With~'store*=#1',~\protect\getkeytheorem{#1}~can~be~called~only~once.
+ }
+\msg_new:nnn { keytheorems } { undefined-thm-hook }
+ {
+ No~theorem~hook~'#1'.~Check~the~spelling.~
+ Should~be~one~of~'prehead',~'posthead',~'prefoot',~'postfoot',~or'restated'.
+ }
+\msg_new:nnn { keytheorems } { hyperref-Autoref }
+ {
+ You~have~not~loaded~hyperref.~The~\protect\Autoref\space command~needs~
+ hyperref~to~work.
+ }
+\msg_new:nnn { keytheorems } { no-Autorefname }
+ {
+ No~Autoref~name~for~'#1'.~
+ Please~define~\c_backslash_str #1Autorefname.
+ }
+\msg_new:nnn { keytheorems } { thmstyle-undefined }
+ {
+ Theorem~style~'#1'~undefined.~
+ Use~\protect\newkeytheoremstyle\space instead.
+ }
+\msg_new:nnn { keytheorems } { thmstyle-defined }
+ {
+ Theorem~style~'#1'~already~defined.~
+ Use~\protect\renewkeytheoremstyle\space instead.
+ }
+\msg_new:nnn { keytheorems } { thm-undefined }
+ {
+ Command~\c_backslash_str #1~undefined.~
+ Use~\protect\newkeytheorem\space instead.
+ }
+\msg_new:nnn { keytheorems } { title-code-with-AMS }
+ {
+ The~'title-code'~key~has~no~effect~with~an~AMS~class.
+ }
+
+% Error if thmtools loaded since compilation hangs.
+% If thmtools loaded after, produce warning.
+\IfPackageLoadedTF { thmtools }
+ {
+ \msg_fatal:nn { keytheorems } { thmtools-before }
+ }
+ {
+ \hook_gput_code:nnn { package/thmtools/before } { . }
+ {
+ \msg_warning:nn { keytheorems } { thmtools-after }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Declare Variables %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iow_new:N \g__keythms_tmpa_iow
+\tl_new:N \l__keythms_tmpa_tl
+
+\bool_new:N \g__keythms_listof_writefile_bool
+\bool_gset_false:N \g__keythms_listof_writefile_bool
+\bool_new:N \g__keythms_thmtoolscompat_bool
+\bool_gset_false:N \g__keythms_thmtoolscompat_bool
+\bool_new:N \l__keythms_listofheading_storereversed_bool
+\bool_new:N \l__keythms_thm_numbered_bool
+\bool_new:N \l__keythms_thm_unlessunique_bool
+\bool_new:N \l__keythms_thmuse_listhack_bool
+\bool_new:N \l__keythms_thmuse_restating_bool
+\clist_new:N \g__keythms_restatecounters_clist
+\clist_new:N \l__keythms_thmstyle_savedkeys_clist
+\prop_new:N \g__keythms_thmnames_prop
+\prop_new:N \g__keythms_thmstyle_defaultkeys_prop
+\prop_new:N \g__keythms_thmuse_othercounters_prop
+\prop_new:N \l__keythms_restate_counters_prop
+\tl_new:N \l__keythms_thm_currentthmstyle_tl
+\tl_new:N \l__keythms_thm_defaultkeys_tl
+\tl_new:N \l__keythms_thm_envname_tl
+\tl_new:N \l__keythms_thmstyle_defaultkeys_tl
+\tl_new:N \l__keythms_thmstyle_lnotebrace_tl
+\tl_new:N \l__keythms_thmstyle_rnotebrace_tl
+\tl_new:N \l_keythms_thmuse_envname_tl
+\tl_new:N \g__keythms_thmuse_temprestatedata_tl
+\tl_new:N \g__keythms_thmuse_temprestatedatareversed_tl
+
+\newcounter{keythms_restate_dummyctr}
+\cs_gset:Npn \theHkeythms_restate_dummyctr
+ { restate.\arabic{keythms_restate_dummyctr} }
+\cs_gset:Npn \thekeythms_restate_dummyctr { }
+\newcounter{keythms_continues_dummyctr}
+\cs_gset:Npn \theHkeythms_continues_dummyctr
+ { continues.\arabic{keythms_continues_dummyctr} }
+\cs_gset:Npn \thekeythms_continues_dummyctr { }
+\newcounter{keythms_unnumbered_dummyctr}
+\cs_gset:Npn \theHkeythms_unnumbered_dummyctr
+ { unnumbered.\arabic{keythms_unnumbered_dummyctr} }
+\cs_gset:Npn \thekeythms_unnumbered_dummyctr { }
+
+\cs_generate_variant:Nn \hook_gput_code:nnn { nnv }
+\cs_generate_variant:Nn \keys_precompile:nnN { nv, nVc, nnc, ne }
+\cs_generate_variant:Nn \prop_set_from_keyval:Nn { Ne }
+\prg_generate_conditional_variant:Nnn \tl_if_novalue:n { o } { T, F, TF }
+
+%%%%%%%%%%%%%%
+%%% Styles %%%
+%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \__keythms_thmstyle_setbraces:nn #1#2
+ { % #1 = left brace, #2 = right brace
+ \tl_set:Nn \l__keythms_thmstyle_lnotebrace_tl { #1 }
+ \tl_set:Nn \l__keythms_thmstyle_rnotebrace_tl { #2 }
+ }
+\cs_new_protected:Npn \keythms_thmstyle_savethmkey_reqval:n #1
+ { % #1 = key value
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str = { #1 } }
+ }
+\cs_new_protected:Npn \keythms_thmstyle_savethmkey_optval:n #1
+ { % #1 = key value
+ \tl_if_empty:NTF \l_keys_value_tl
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str }
+ }
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str = { #1 } }
+ }
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ bodyfont .tl_set:N = \l__keythms_thmstyle_bodyfont_tl,
+ break .meta:n = { postheadspace = \newline }, % add error if postheadspace set
+ break .value_forbidden:n = true,
+ headfont .tl_set:N = \l__keythms_thmstyle_headfont_tl,
+ headformat .meta:n = { headstyle = {#1} }, % extra braces are necessary! Otherwise breaks if #1 contains comma
+ headindent .tl_set:N = \l__keythms_thmstyle_headindent_tl,
+ headpunct .tl_set:N = \l__keythms_thmstyle_headpunct_tl,
+ headstyle .choice:,
+ headstyle / margin .code:n =
+ {
+ \cs_set:Nn \keythms_thmstyle_headcmd:nnn
+ {
+ \makebox[0pt][r]{
+ \keythms_thmstyle_thmnumber:n {
+ \group_begin: \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ ##2 ~ \group_end: }
+ }
+ \NAME\NOTE
+ }
+ },
+ headstyle / swapnumber .code:n =
+ {
+ \cs_set:Nn \keythms_thmstyle_headcmd:nnn
+ {
+ \keythms_thmstyle_thmnumber:n {
+ \group_begin: \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ ##2 ~ \group_end: }
+ \NAME\NOTE
+ }
+ },
+ headstyle / unknown .cs_set:Np = \keythms_thmstyle_headcmd:nnn #1#2#3,
+ inherit-style .choice:,
+ inherit-style / plain .meta:n = {},
+ inherit-style / definition .meta:n = { bodyfont = \normalfont },
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ headfont = \itshape,
+ spaceabove = 0.5\topsep,
+ spacebelow = 0.5\topsep,
+ },
+ notebraces .code:n = \exp_after:wN \__keythms_thmstyle_setbraces:nn #1,
+ notefont .tl_set:N = \l__keythms_thmstyle_notefont_tl,
+ noteseparator .tl_set:N = \l__keythms_thmstyle_noteseparator_tl,
+ numberfont .tl_set:N = \l__keythms_thmstyle_numberfont_tl,
+ postheadspace .tl_set:N = \l__keythms_thmstyle_postheadspace_tl,
+ spaceabove .tl_set:N = \l__keythms_thmstyle_spaceabove_tl,
+ spacebelow .tl_set:N = \l__keythms_thmstyle_spacebelow_tl,
+ % thm keys that are saved for later
+ numbered .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ numberlike .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ numberwithin .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ parent .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ postfoothook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ postheadhook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ prefoothook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ preheadhook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ qed .code:n =
+ { % qed needs special treatment to distinguish qed from qed={}
+ \tl_if_novalue:oTF { #1 }
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str }
+ }
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str = { #1 } }
+ }
+ },
+ qed .default:n = \c_novalue_tl,
+ sharenumber .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ sibling .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ tcolorbox .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ tcolorbox-no-titlebar .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ within .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ }
+
+\cs_new_protected:Nn \keythms_thmstyle_thmname:n { \thmname{#1} }
+\cs_new_protected:Nn \keythms_thmstyle_thmnumber:n { \thmnumber{#1} }
+\cs_new_protected:Nn \keythms_thmstyle_thmnote:n { \thmnote{#1} }
+
+\cs_new:Npn \keythms_thmstyle_headcmd_default:nnn #1#2#3
+ {
+ \keythms_thmstyle_thmname:n { #1 }
+ \keythms_thmstyle_thmnumber:n
+ { ~
+ \group_begin:
+ \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ #2
+ \group_end:
+ }
+ \keythms_thmstyle_thmnote:n
+ { \exp_not:V \l__keythms_thmstyle_noteseparator_tl
+ \group_begin: % group so notefont doesn't affect headpunct
+ \exp_not:V \l__keythms_thmstyle_notefont_tl
+ \l__keythms_thmstyle_lnotebrace_tl #3 \l__keythms_thmstyle_rnotebrace_tl
+ \group_end:
+ }
+ }
+
+\prop_gset_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ { % support files may overwrite these defaults
+ bodyfont = \itshape,
+ headfont = \bfseries,
+ headindent = 0pt,
+ headpunct = {.},
+ headstyle = \keythms_thmstyle_headcmd_default:nnn{#1}{#2}{#3},
+ notebraces = {(}{)},
+ notefont = \fontseries\mddefault\upshape,
+ noteseparator = {~},
+ numberfont = \upshape,
+ postheadspace = 5pt plus 1pt minus 1pt,
+ spaceabove = \topsep,
+ spacebelow = \topsep,
+ }
+\hook_gput_code:nnn { package/keytheorems/after } { . }
+ { % need to defer to wait for support files
+ \keys_precompile:neN { keytheorems/thmstyle }
+ { \prop_to_keyval:N \g__keythms_thmstyle_defaultkeys_prop }
+ \l__keythms_thmstyle_defaultkeys_tl
+ }
+
+\NewDocumentCommand \newkeytheoremstyle { m m }
+ {
+ \cs_if_free:cTF { th@ #1 }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ { \msg_error:nnn { keytheorems } { thmstyle-defined } { #1 } }
+ }
+\NewDocumentCommand \renewkeytheoremstyle { m m }
+ {
+ \cs_if_free:cTF { th@ #1 }
+ { \msg_error:nnn { keytheorems } { thmstyle-undefined } { #1 } }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ }
+\NewDocumentCommand \providekeytheoremstyle { m m }
+ {
+ \cs_if_free:cT { th@ #1 }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ }
+\NewDocumentCommand \declarekeytheoremstyle { m m }
+ {
+ \keythms_thmstyle_declarestyle:nn { #1 } { #2 }
+ }
+
+\@onlypreamble \newkeytheoremstyle
+\@onlypreamble \renewkeytheoremstyle
+\@onlypreamble \providekeytheoremstyle
+\@onlypreamble \declarekeytheoremstyle
+
+\cs_new_eq:NN \keythms_thmstyle_new:nnnnnnnnn \newtheoremstyle
+\cs_generate_variant:Nn \keythms_thmstyle_new:nnnnnnnnn { nVVVVVVVe }
+
+\tl_put_right:Nn \l_text_expand_exclude_tl { \thmnote \thmnumber \thmname }
+% ^ allows \thmnote, etc. to work in headstyle; hope no bad side effects!
+\cs_new_protected:Npn \keythms_thmstyle_declarestyle:nn #1#2
+ { % user is in charge of spacing with \NAME and \NUMBER (thmtools compat...)
+ \cs_set:Npn \NAME { \keythms_thmstyle_thmname:n { ####1 } }
+ \cs_set:Npn \NUMBER
+ {
+ \keythms_thmstyle_thmnumber:n
+ {
+ \group_begin:
+ \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ ####2
+ \group_end:
+ }
+ }
+ \cs_set:Npn \NOTE
+ {
+ \keythms_thmstyle_thmnote:n
+ { \exp_not:V \l__keythms_thmstyle_noteseparator_tl
+ \group_begin: % group so notefont doesn't affect headpunct
+ \exp_not:V \l__keythms_thmstyle_notefont_tl
+ \l__keythms_thmstyle_lnotebrace_tl ####3 \l__keythms_thmstyle_rnotebrace_tl
+ \group_end:
+ }
+ }
+ \clist_clear:N \l__keythms_thmstyle_savedkeys_clist
+ \tl_use:N \l__keythms_thmstyle_defaultkeys_tl
+ \keys_set:nn { keytheorems/thmstyle } { #2 }
+ \keythms_thmstyle_new:nVVVVVVVe { #1 }
+ \l__keythms_thmstyle_spaceabove_tl
+ \l__keythms_thmstyle_spacebelow_tl
+ \l__keythms_thmstyle_bodyfont_tl
+ \l__keythms_thmstyle_headindent_tl
+ \l__keythms_thmstyle_headfont_tl
+ \l__keythms_thmstyle_headpunct_tl
+ \l__keythms_thmstyle_postheadspace_tl
+ { \text_expand:n { \keythms_thmstyle_headcmd:nnn{##1}{##2}{##3} } }
+ % Define inherit-style key
+ \tl_if_exist:cF { l__keythms_thmstyle_#1_metakeys_tl }
+ { \tl_new:c { l__keythms_thmstyle_#1_metakeys_tl } }
+ \keys_precompile:nnc { keytheorems/thmstyle } { #2 } % use precompile instead of meta key
+ { l__keythms_thmstyle_#1_metakeys_tl } % because that's sensitive to hashes
+ \keys_define:nn { keytheorems/thmstyle } % and we want to allow both # and ##
+ { inherit-style / #1 .code:n = \tl_use:c { l__keythms_thmstyle_#1_metakeys_tl } }
+ \tl_if_exist:cF { l__keythms_thmstyle_#1_savedthmkeys_tl }
+ { \tl_new:c { l__keythms_thmstyle_#1_savedthmkeys_tl } }
+ \keys_precompile:nVc { keytheorems/thm }
+ \l__keythms_thmstyle_savedkeys_clist
+ { l__keythms_thmstyle_#1_savedthmkeys_tl }
+ \cs_undefine:N \NAME % undefine to prevent conflicts
+ \cs_undefine:N \NUMBER
+ \cs_undefine:N \NOTE
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Defining Theorems %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% FIX: reimplement these without \NewDocumentCommand and \SplitArgument
+\NewDocumentCommand \keythms_thm_setrefnames:nn
+ { m >{\SplitArgument{1}{,}} m } % #1 = envname, #2 = <refname> or <sing,plural>
+ { \__keythms_thm_setrefnames_aux:nnn{#1}#2 }
+\cs_new_protected:Npn \__keythms_thm_setrefnames_aux:nnn #1#2#3
+ {
+ \cs_set:cpn { #1 autorefname } { #2 }
+ \IfPackageLoadedT { cleveref }
+ {
+ \tl_if_novalue:nTF { #3 }
+ { \crefname{#1}{#2}{\textbf{??~(pl.~#2)}} }
+ { \crefname{#1}{#2}{#3} }
+ }
+ }
+\cs_generate_variant:Nn \keythms_thm_setrefnames:nn { nV }
+
+\NewDocumentCommand \keythms_thm_setRefnames:nn
+ { m >{\SplitArgument{1}{,}} m } % #1 = envname, #2 = <refname> or <sing,plural>
+ { \__keythms_thm_setRefnames_aux:nnn{#1}#2 }
+\cs_new_protected:Npn \__keythms_thm_setRefnames_aux:nnn #1#2#3
+ {
+ \cs_set:cpn { #1 Autorefname } { #2 }
+ \IfPackageLoadedT { cleveref }
+ {
+ \tl_if_novalue:nTF { #3 }
+ { \Crefname{#1}{#2}{\textbf{??~(pl.~#2)}} }
+ { \Crefname{#1}{#2}{#3} }
+ }
+ }
+\cs_generate_variant:Nn \keythms_thm_setRefnames:nn { nV }
+
+\keys_define:nn { keytheorems/thm }
+ {
+ heading .meta:n = { name = {#1} },
+ name .tl_set:N = \l__keythms_thm_name_tl,
+ numbered .choice:,
+ numbered .default:n = true,
+ numbered / false .code:n = \bool_set_false:N \l__keythms_thm_numbered_bool,
+ numbered / no .meta:n = { numbered = false },
+ numbered / true .code:n = \bool_set_true:N \l__keythms_thm_numbered_bool,
+ numbered / unless-unique .code:n =
+ {
+ \bool_set_true:N \l__keythms_thm_unlessunique_bool
+ },
+ numbered / unless~unique .meta:n = { numbered = unless-unique },
+ numbered / yes .meta:n = { numbered = true },
+ numberlike .meta:n = { sibling = {#1} },
+ numberwithin .meta:n = { parent = {#1} },
+ parent .tl_set:N = \l__keythms_thm_parent_tl,
+ postfoothook .tl_set:N = \l__keythms_thm_postfoothook_tl,
+ postheadhook .tl_set:N = \l__keythms_thm_postheadhook_tl,
+ prefoothook .tl_set:N = \l__keythms_thm_prefoothook_tl,
+ preheadhook .tl_set:N = \l__keythms_thm_preheadhook_tl,
+ qed .tl_set:N = \l__keythms_thm_qed_tl,
+ qed .default:n = \c_novalue_tl,
+ % ^ distinguish between 'qed' and 'qed={}'
+ refname .tl_set:N = \l__keythms_thm_refname_tl,
+ Refname .tl_set:N = \l__keythms_thm_Refname_tl,
+ sharenumber .meta:n = { sibling = {#1} },
+ sibling .tl_set:N = \l__keythms_thm_sibling_tl,
+ style .tl_set:N = \l__keythms_thm_style_tl,
+ style .groups:n = { style-comes-first },
+ tcolorbox .tl_set:N = \l__keythms_thm_tcbkeys_tl,
+ tcolorbox .default:n = {},
+ tcolorbox-no-titlebar .meta:n =
+ {
+ tcolorbox={
+ notitle,
+ before~upper={
+ \group_begin:
+ \__keythms_thm_tcboxtemphead:
+ \group_end:
+ },
+ #1
+ }
+ },
+ tcolorbox-no-titlebar .default:n = {},
+ title .meta:n = { name = {#1} },
+ within .meta:n = { parent = {#1} },
+ }
+
+% what below is unnecessary? I really don't understand this code.
+\cs_new_protected:Npn \__keythms_thm_storedeferredthmhead:n #1
+ {
+ \if@inlabel \indent \par \fi % eject a section head if one is pending
+ \if@nobreak
+ \adjust@parskip@nobreak
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}
+ \fi
+ % \global\@inlabeltrue % MB: if this is uncommented then spacing after sections is wrong
+ \everypar\dth@everypar
+ \cs_set:Npn \__keythms_thm_tcboxtemphead: { \normalfont #1 }
+ \ignorespaces
+ }
+
+\keys_precompile:nnN { keytheorems/thm }
+ {
+ name = \q_no_value,
+ numbered = true,
+ parent = {},
+ postfoothook = {},
+ postheadhook = {},
+ prefoothook = {},
+ preheadhook = {},
+ qed = \q_no_value,
+ refname = \q_no_value,
+ Refname = \q_no_value,
+ sibling = {},
+ style = {},
+ tcolorbox = \q_no_value,
+ }
+ \l__keythms_thm_defaultkeys_tl
+
+\cs_new_protected:Npn \__keythms_thm_makethmhooks:n #1
+ {
+ \hook_new:n { keytheorems/#1/prehead }
+ \hook_new:n { keytheorems/#1/posthead }
+ \hook_new_reversed:n { keytheorems/#1/prefoot }
+ \hook_new_reversed:n { keytheorems/#1/postfoot }
+ \hook_new:n { keytheorems/#1/restated }
+ }
+
+% Make generic theorem hooks
+\__keythms_thm_makethmhooks:n { allthms }
+
+\NewDocumentCommand \newkeytheorem { m O{} }
+ { % #1 = name, #2 = keys
+ \clist_map_inline:nn { #1 } % define multiple theorems at once
+ { \keythms_thm_newkeythm:nn { ##1 } { #2 } }
+ }
+\NewDocumentCommand \renewkeytheorem { m O{} }
+ { % #1 = name, #2 = keys
+ \clist_map_inline:nn { #1 }
+ { \keythms_thm_renewkeythm:nn { ##1 } { #2 } }
+ }
+\NewDocumentCommand \providekeytheorem { m O{} }
+ { % #1 = name, #2 = keys
+ \clist_map_inline:nn { #1 }
+ { \keythms_thm_providekeythm:nn { ##1 } { #2 } }
+ }
+\NewDocumentCommand \declarekeytheorem { m O{} }
+ { % #1 = name, #2 = keys
+ \clist_map_inline:nn { #1 }
+ { \keythms_thm_declarekeythm:nn { ##1 } { #2 } }
+ }
+\@onlypreamble \newkeytheorem
+\@onlypreamble \renewkeytheorem
+\@onlypreamble \providekeytheorem
+\@onlypreamble \declarekeytheorem
+
+% to prevent error when plain, remark, or definition style used
+\tl_new:N \l__keythms_thmstyle_plain_savedthmkeys_tl
+\tl_new:N \l__keythms_thmstyle_remark_savedthmkeys_tl
+\tl_new:N \l__keythms_thmstyle_definition_savedthmkeys_tl
+
+\cs_new_protected:Npn \keythms_thm_newkeythm:nn #1#2
+ { % #1 = name, #2 = keys
+ % Store envname
+ \tl_set:Nn \l__keythms_thm_envname_tl { #1 }
+ % Set up tl's for hooks; hooks will be created and added to at begindocument
+ \tl_gclear_new:c { g__keythms_thm_preheadfromkeys_#1_tl }
+ \tl_gclear_new:c { g__keythms_thm_postheadfromkeys_#1_tl }
+ \tl_gclear_new:c { g__keythms_thm_prefootfromkeys_#1_tl }
+ \tl_gclear_new:c { g__keythms_thm_postfootfromkeys_#1_tl }
+ \tl_gclear_new:c { g__keythms_thm_tcbpatch_#1_tl }
+ % Make unless-unique false by default (can't precompile this)
+ \bool_set_false:N \l__keythms_thm_unlessunique_bool
+ % Set default keys
+ \tl_use:N \l__keythms_thm_defaultkeys_tl
+ % First set style so we can pick up additional thm keys, then overwrite if necessary
+ \keys_set_groups:nnn { keytheorems/thm } { style-comes-first } { #2 }
+ % Store theorem style
+ \tl_set:Ne \l__keythms_thm_currentthmstyle_tl { \the\thm@style }
+ \tl_if_empty:NTF \l__keythms_thm_style_tl
+ { % if \theoremstyle set, also use saved thm keys
+ \tl_if_exist:cT {l__keythms_thmstyle_ \l__keythms_thm_currentthmstyle_tl _savedthmkeys_tl}
+ { \tl_use:c {l__keythms_thmstyle_ \l__keythms_thm_currentthmstyle_tl _savedthmkeys_tl} }
+ }
+ {
+ % Temporarily set theorem style
+ \__keythms_theoremstyle:n { \l__keythms_thm_style_tl }
+ % If thm keys given in style, call now (possibly overwritten in next step)
+ % but don't error if user uses a style defined with just \newtheoremstyle
+ \tl_if_exist:cT { l__keythms_thmstyle_ \l__keythms_thm_style_tl _savedthmkeys_tl }
+ { \tl_use:c { l__keythms_thmstyle_ \l__keythms_thm_style_tl _savedthmkeys_tl } }
+ }
+ % Set env-specific keys
+ \keys_set:nn { keytheorems/thm } { #2 }
+ % Build tl for env-specific hooks; will be added to hooks at begindocument
+ \tl_gput_right:cV { g__keythms_thm_preheadfromkeys_#1_tl } \l__keythms_thm_preheadhook_tl
+ \tl_gput_right:cV { g__keythms_thm_postheadfromkeys_#1_tl } \l__keythms_thm_postheadhook_tl
+ \tl_gput_right:cV { g__keythms_thm_prefootfromkeys_#1_tl } \l__keythms_thm_prefoothook_tl
+ \tl_gput_right:cV { g__keythms_thm_postfootfromkeys_#1_tl } \l__keythms_thm_postfoothook_tl
+ % Set name if none given
+ \quark_if_no_value:NT \l__keythms_thm_name_tl % use quark so name={} is valid
+ {
+ % use e so \text_titlecase called only once per theorem definition,
+ % not each time the theorem is used
+ \tl_set:Ne \l__keythms_thm_name_tl
+ { \text_titlecase_first:n { #1 } }
+ }
+ % associate formatted name with envname in prop list
+ \prop_gput:NnV \g__keythms_thmnames_prop { #1 } \l__keythms_thm_name_tl
+ % Call correct \newtheorem variant
+ \bool_if:NTF \l__keythms_thm_unlessunique_bool
+ {
+ % [unq] is required since aux is read at begindocument
+ % (technically right before) which is after theorem is defined
+ \RequirePackage[unq]{unique}
+ \tl_if_empty:NTF \l__keythms_thm_parent_tl
+ {
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_#1_tl }
+ { \setuniqmark { #1 } }
+ \ifuniq{ #1 }
+ { \bool_set_false:N \l__keythms_thm_numbered_bool }
+ { \bool_set_true:N \l__keythms_thm_numbered_bool }
+ \bool_if:NTF \l__keythms_thm_numbered_bool
+ {
+ \tl_if_empty:NTF \l__keythms_thm_sibling_tl
+ {
+ \__keythms_thm_new_numbered:nV { #1 } \l__keythms_thm_name_tl
+ }
+ {
+ \exp_args:NnV \newaliascnt { #1 } \l__keythms_thm_sibling_tl
+ \__keythms_thm_new_sibling:nVn { #1 }
+ \l__keythms_thm_name_tl { #1 }
+ \aliascntresetthe { #1 }
+ }
+ }
+ {
+ \__keythms_thm_new_unnumbered:nV { #1 } \l__keythms_thm_name_tl
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_#1_tl }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ }
+ }
+ }
+ {
+ \__keythms_thm_new_uuwithparent:nVV { #1 }
+ \l__keythms_thm_name_tl \l__keythms_thm_parent_tl
+ }
+ }
+ {
+ \bool_if:NTF \l__keythms_thm_numbered_bool
+ {
+ \tl_if_empty:NTF \l__keythms_thm_parent_tl
+ {
+ \tl_if_empty:NTF \l__keythms_thm_sibling_tl
+ {
+ \__keythms_thm_new_numbered:nV { #1 } \l__keythms_thm_name_tl
+ }
+ {
+ \exp_args:NnV \newaliascnt { #1 } \l__keythms_thm_sibling_tl
+ \__keythms_thm_new_sibling:nVn { #1 }
+ \l__keythms_thm_name_tl { #1 }
+ \aliascntresetthe { #1 }
+ }
+ }
+ {
+ \__keythms_thm_new_parent:nVV { #1 }
+ \l__keythms_thm_name_tl \l__keythms_thm_parent_tl
+ }
+ }
+ {
+ \__keythms_thm_new_unnumbered:nV { #1 } \l__keythms_thm_name_tl
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_#1_tl }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ }
+ }
+ }
+ % Store theorem def and redefine it with keys
+ \keythms_keyify_theorem:n { #1 }
+ % define \<env>autorefname and \<env>Autorefname, might be redefined next
+ \exp_args:NnV \cs_set:cpn { #1 autorefname } \l__keythms_thm_name_tl
+ \exp_args:NnV \cs_set:cpn { #1 Autorefname } \l__keythms_thm_name_tl
+ % Set ref names
+ \quark_if_no_value:NF \l__keythms_thm_refname_tl
+ { \keythms_thm_setrefnames:nV { #1 } \l__keythms_thm_refname_tl }
+ \quark_if_no_value:NF \l__keythms_thm_Refname_tl
+ { \keythms_thm_setRefnames:nV { #1 } \l__keythms_thm_Refname_tl }
+ % Set up qed if needed
+ \quark_if_no_value:NF \l__keythms_thm_qed_tl
+ {
+ \exp_args:Nno \__keythms_thm_qedcode:nn { #1 } { \l__keythms_thm_qed_tl }
+ }
+ % Set up tcolorbox if needed
+ \quark_if_no_value:NF \l__keythms_thm_tcbkeys_tl
+ {
+ \exp_args:Nno \__keythms_thm_tcboxcode:nn { #1 }
+ { \l__keythms_thm_tcbkeys_tl }
+ }
+ % Set up list-of definition
+ \cs_set_eq:cN { l@ #1 } \keythms_listof_tocline:
+ % Set default list-of display command
+ \__keythms_listof_show_aux:n { #1 }
+ % Set theorem style back to original state if needed
+ \tl_if_empty:NF \l__keythms_thm_style_tl
+ { \__keythms_theoremstyle:V \l__keythms_thm_currentthmstyle_tl }
+ }
+
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ {
+ \__keythms_thm_makethmhooks:n { #1 }
+ \clist_map_inline:nn { prehead, posthead, prefoot, postfoot }
+ {
+ \tl_if_empty:cF { g__keythms_thm_##1fromkeys_#1_tl }
+ {
+ \hook_gput_code:nnv { keytheorems/#1/##1 } { keythms_hook_keys }
+ { g__keythms_thm_##1fromkeys_#1_tl }
+ }
+ }
+ \tl_use:c { g__keythms_thm_tcbpatch_#1_tl }
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_thm_tcboxcode:nn #1#2
+ { % #1 = name, #2 = tcolorbox keys
+ \RequirePackage{tcolorbox}
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_#1_tl }
+ {
+ \cs_set_eq:NN \deferred@thm@head \__keythms_thm_storedeferredthmhead:n
+ \cs_set_eq:NN \Hy@theorem@makelinktarget \use_none:n
+ % ^ don't like playing with hyperref internals... but don't see around
+ % it because hyperref tries to add to para hook which doesn't work
+ % when title set up the way we do it
+ \cs_set_protected:Npn \thm@space@setup { \thm@preskip=0pt \thm@postskip=0pt }
+ % ^ to match tcolorbox defaults; shouldn't interfere with user styles
+ }
+ \tcbset
+ {
+ keythms_tcbox_#1/.style =
+ {
+ savedelimiter=#1,
+ title={ \__keythms_thm_tcboxtemphead: },
+ #2
+ }
+ }
+ \bool_if:NT \l__keythms_thm_numbered_bool
+ {
+ \tl_gset:cn { g__keythms_thm_tcbpatch_#1_tl }
+ {
+ \IfPackageLoadedF{cleveref}
+ { % hyperref doesn't patch \@thm if cleveref loaded
+ \tcbset
+ {
+ keythms_tcbox_#1/.append~style = % fix hyperlinking
+ { phantom={ \MakeLinkTarget*{\@currentHref} } }
+ }
+ }
+ }
+ }
+ \tl_gput_left:cn { g__keythms_thm_postheadfromkeys_#1_tl }
+ { \begin{tcolorbox}[keythms_tcbox_#1] }
+ \tl_gput_right:cn { g__keythms_thm_prefootfromkeys_#1_tl }
+ { \end{tcolorbox} }
+ }
+\cs_new_protected:Npn \__keythms_thm_qedcode:nn #1#2
+ { % #1 = name, #2 = symbol
+ \tl_gput_right:cn { g__keythms_thm_postheadfromkeys_#1_tl }
+ {
+ \tl_if_novalue:oF { #2 } { \protected@edef\qedsymbol{#2} }
+ \pushQED{\qed}
+ }
+ \tl_gput_left:cn { g__keythms_thm_prefootfromkeys_#1_tl }
+ {
+ \tl_if_novalue:oF { #2 } { \protected@edef\qedsymbol{#2} }
+ \popQED
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_nocheck_removefromreset:nn #1#2
+ { % need to fake @ckpt counter
+ \group_begin:
+ \cs_if_exist:cF { c@#2 } { \cs_set:cpn { c@#2 } { } }
+ \@removefromreset{#1}{#2}
+ \group_end:
+ }
+
+\cs_new_protected:Npn \keythms_thm_renewkeythm:nn #1#2
+ { % #1 = name, #2 = keys
+ \cs_if_exist:cTF { #1 }
+ {
+ \cs_undefine:c { #1 }
+ \cs_undefine:c { c@ #1 }
+ \cs_undefine:c { the #1 }
+ \tl_if_exist:cT { g__keythms_thm_#1_parent_tl }
+ { % remove parent counter binding
+ \exp_args:Nnv \@removefromreset { #1 } { g__keythms_thm_#1_parent_tl }
+ }
+ \__keythms_nocheck_removefromreset:nn { #1 } { @ckpt }
+ \keythms_thm_newkeythm:nn { #1 } { #2 }
+ }
+ { \msg_error:nnn { keytheorems } { thm-undefined} { #1 } }
+ }
+\cs_new_protected:Npn \keythms_thm_providekeythm:nn #1#2
+ { % #1 = name, #2 = keys
+ \cs_if_free:cT { #1 }
+ {
+ \keythms_thm_newkeythm:nn { #1 } { #2 }
+ }
+ }
+\cs_new_protected:Npn \keythms_thm_declarekeythm:nn #1#2
+ { % #1 = name, #2 = keys
+ \cs_undefine:c { #1 }
+ \cs_undefine:c { c@ #1 }
+ \cs_undefine:c { the #1 }
+ \tl_if_exist:cT { g__keythms_thm_#1_parent_tl }
+ { % remove parent counter binding
+ \exp_args:Nnv \@removefromreset { #1 } { g__keythms_thm_#1_parent_tl }
+ }
+ \__keythms_nocheck_removefromreset:nn { #1 } { @ckpt }
+ \keythms_thm_newkeythm:nn { #1 } { #2 }
+ }
+
+\cs_new_eq:NN \__keythms_theoremstyle:n \theoremstyle
+\cs_generate_variant:Nn \__keythms_theoremstyle:n { V }
+
+\cs_new_eq:NN \__keythms_thm_new:w \newtheorem
+
+\cs_new_protected:Npn \__keythms_thm_new_numbered:nn #1#2
+ { \__keythms_thm_new:w { #1 } { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_numbered:nn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_unnumbered:nn #1#2
+ { \__keythms_thm_new:w* { #1 } { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_unnumbered:nn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_parent:nnn #1#2#3
+ {
+ % for \renewkeytheorem need to know parent key if set
+ \tl_gclear_new:c { g__keythms_thm_#1_parent_tl }
+ \tl_gset:cn { g__keythms_thm_#1_parent_tl } { #3 }
+ \__keythms_thm_new:w { #1 } { #2 } [ #3 ]
+ }
+\cs_generate_variant:Nn \__keythms_thm_new_parent:nnn { nVV }
+
+\cs_new_protected:Npn \__keythms_thm_new_sibling:nnn #1#2#3
+ { \__keythms_thm_new:w { #1 } [ #3 ] { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_sibling:nnn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_uuwithparent:nnn #1#2#3
+ {
+ \cs_undefine:c { keythms_orig_nonumber_#1 } % for renew, declare
+ \__keythms_thm_new_unnumbered:nn { keythms_orig_nonumber_#1 } { #2 }
+ \__keythms_thm_new_parent:nnn { #1 } { #2 } { #3 }
+ \DeclareEnvironmentCopy { keythms_orig_withparent_#1 } { #1 }
+ \renewenvironment { #1 } % opt arg is implicit
+ {
+ \setuniqmark{ #1. \use:c {the #3} }
+ \ifuniq{ #1. \use:c {the #3} }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ \IfPackageLoadedT { tcolorbox }
+ { \tcbset{keythms_tcbox_#1/.append~style=nophantom} }
+ % ^ otherwise we try to set two identical anchors
+ \begin{keythms_orig_nonumber_#1}
+ }
+ {
+ \begin{keythms_orig_withparent_#1}
+ }
+ }
+ {
+ \ifuniq{ #1. \use:c {the #3} }
+ { \end{keythms_orig_nonumber_#1} }
+ { \end{keythms_orig_withparent_#1} }
+ }
+ }
+\cs_generate_variant:Nn \__keythms_thm_new_uuwithparent:nnn { nVV }
+
+% for getting notes with continues*, use nameref if available, otherwise ltproperties
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \IfPackageLoadedTF { nameref }
+ {
+ \cs_new:Npn \__keythms_thmuse_recordnote: { } % nameref takes care of this
+ \cs_new:Npn \__keythms_getrecordednote:n #1
+ {
+ \getrefbykeydefault{ #1 }{ name }{ }
+ }
+ }
+ {
+ \property_new:nnnn { keytheorems/recordednote } { now } { }
+ { \l__keythms_thmuse_note_tl }
+ \cs_new:Npn \__keythms_getrecordednote:n #1
+ {
+ \property_ref:nn { keythms_recordednote_#1 }
+ { keytheorems/recordednote }
+ }
+ \cs_new:Npn \__keythms_thmuse_recordnote:
+ {
+ \tl_if_empty:NF \l__keythms_thmuse_note_tl
+ {
+ \RecordProperties
+ { keythms_recordednote_\l__keythms_thmuse_label_tl }
+ { keytheorems/recordednote }
+ }
+ }
+ }
+ }
+
+\keys_define:nn { keytheorems/thmuse }
+ {
+ continues .tl_set:N = \l__keythms_thmuse_contlabel_tl,
+ continues* .code:n =
+ {
+ \keys_set:nn { keytheorems/thmuse } { continues = #1 }
+ \protected@edef \l__keythms_tmpa_tl { \__keythms_getrecordednote:n{#1} }
+ \tl_if_empty:NF \l__keythms_tmpa_tl
+ {
+ \keys_set:nn { keytheorems/thmuse }
+ { note = \l__keythms_tmpa_tl }
+ }
+ },
+ label .tl_set:N = \l__keythms_thmuse_label_tl,
+ listhack .choice:, % needs equals sign
+ listhack / true .code:n = \bool_set_true:N \l__keythms_thmuse_listhack_bool,
+ listhack / false .code:n = \bool_set_false:N \l__keythms_thmuse_listhack_bool,
+ listhack .initial:n = false,
+ name .meta:n = { note = {#1} },
+ % ^ for compatibility. "name" is ambiguous and doesn't match amsthm language
+ note .tl_set:N = \l__keythms_thmuse_note_tl,
+ note .initial:n = {},
+ restate .meta:n = { store = {#1} }, % thmtools compatibility
+ restate* .meta:n = { store* = {#1} },
+ restate-keys .clist_set:N = \l__keythms_thmuse_restatekeys_clist,
+ seq .code:n = {},
+ short-note .code:n = {}, % these do nothing at point of use
+ short-name .code:n = {},
+ store .tl_set:N = \l__keythms_thmuse_store_tl, % should this be .tl_set_e:N ?
+ store* .tl_set:N = \l__keythms_thmuse_storereversed_tl,
+ }
+
+\cs_new_protected:Npn \keythms_keyify_theorem:n #1
+ { % #1 = theorem name
+ \DeclareEnvironmentCopy { keythms_orig_#1 } { #1 }
+ \DeclareDocumentEnvironment { keythms_grab_#1 } { m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = theorem body
+ \begin{keythms_orig_#1}[{##2}]
+ \clist_map_inline:Nn \g__keythms_restatecounters_clist
+ {
+ \prop_gput:Nne \g__keythms_thmuse_othercounters_prop { ####1 }
+ { \the\value{####1} }
+ }
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addcontentsdata:nnnn { #1 }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { ##1 } { ##3 }
+ \__keythms_thm_tempstorerestatedata:nnn { #1 } { ##1 } { ##3 }
+ ##3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ }
+ {}
+ \DeclareDocumentEnvironment { keythms_grabreversed_#1 } { m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = theorem body
+ \tl_if_exist:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl }
+ {
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Ne \l__keythms_restate_counters_prop
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_####1_tl }
+ { \the\value{####1} }
+ \setcounter { ####1 } { ####2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ####1 }
+ { \use:c { the ####1 } . \theHkeythms_restate_dummyctr }
+ }
+ \tl_if_empty:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl }
+ { \refstepcounter{keythms_restate_dummyctr} } % for unnumbered theorems
+ {
+ \cs_set:cpn { the #1 }
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl } }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_restate_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_restate_dummyctr
+ % ^ why are the last two lines here? We shouldn't be referencing
+ % restated theorems. Think it's a remnant of thmtools
+ % WRONG: needed to make numbering correct after restated theorem.
+ % not sure about theH. <- this is needed to prevent duplicate anchors
+ }
+ }
+ {
+ \msg_warning:nnV { keytheorems } { store-reversed-not-got }
+ \l__keythms_thmuse_storereversed_tl
+ }
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ \begin{keythms_orig_#1}[{##2}]
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addstoredreverseddata:nnn { #1 } { ##1 } { ##3 }
+ \__keythms_thm_tempstorerestatedatareversed:nnn { #1 } { ##1 } { ##3 }
+ ##3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ####1 }
+ { l_keythms_restate_current_####1_tl }
+ }
+ }
+ { }
+ % NOTE: have to do a lot of shenanigans to make sure the begin/end of grabbed
+ % theorem env captures only the body and no package code.
+ % This is the price of on-the-fly redefining the env to grab body
+ \RenewDocumentEnvironment { #1 } { ={note} O{} }
+ {
+ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 }
+ \keys_set:nn { keytheorems/thmuse } { ##1 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grabreversed_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grabreversed_end:n
+ }
+ \__keythms_thm_prehead_code:n { #1 }
+ \__keythms_withhooks_begin:nnV { #1 } { ##1 } \l__keythms_thmuse_note_tl
+ }
+ {
+ \__keythms_withhooks_end:n { #1 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthm_theorem:nnnnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedata_tl }
+ }
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _body }
+ {
+ \exp_not:N \__keythms_getthm_body:nn
+ \exp_args:No \exp_not:o
+ {
+ \exp_after:wN \__keythms_use_iii_v_braced:nnnnn
+ \g__keythms_thmuse_temprestatedata_tl
+ }
+ }
+ }
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthmreversed_theorem:nnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedatareversed_tl }
+ }
+ \cs_new:cpn
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \textbf{??}
+ \msg_warning:nnn { keytheorems } { restate-body-never-got }
+ { #1 }
+ }
+ }
+ }
+ }
+ }
+\cs_new:Npn \__keythms_use_iii_v_braced:nnnnn #1#2#3#4#5 { {#3}{#5} }
+
+% withhooks_begin does not include prehead hook because we want to be able to access note
+\cs_new_protected:Npn \__keythms_withhooks_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_orig_#1}[{#3}]
+ \__keythms_thm_posthead_code:n { #1 }
+ \__keythms_thm_addcontentsdata:nnnn { #1 } { } { #2 } { }
+ \ignorespaces % I hope this is alright
+ }
+\cs_generate_variant:Nn \__keythms_withhooks_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_withhooks_end:n #1
+ {
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ }
+\cs_new_protected:Npn \__keythms_grab_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_grab_#1}{#2}{#3}
+ }
+\cs_generate_variant:Nn \__keythms_grab_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_grab_end:n #1 { \end{keythms_grab_#1} }
+
+\cs_new_protected:Npn \__keythms_grabreversed_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_grabreversed_#1}{#2}{#3}
+ }
+\cs_generate_variant:Nn \__keythms_grabreversed_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_grabreversed_end:n #1
+ { \end{keythms_grabreversed_#1} }
+
+\cs_new_protected:Npn \__keythms_orig_begin:nn #1#2
+ { \begin{keythms_orig_#1}[{#2}] }
+\cs_generate_variant:Nn \__keythms_orig_begin:nn { nV }
+\cs_new_protected:Npn \__keythms_orig_end:n #1 { \end{keythms_orig_#1} }
+
+%% this below has to be separate from withhooks_begin above since we need to add
+%% continues-code to note before retrieving it in \__keythms_withhooks_begin:nnV
+\cs_new_protected:Npn \__keythms_thm_prehead_code:n #1
+ { % #1 = theorem name
+ \tl_if_empty:NF \l__keythms_thmuse_contlabel_tl
+ {
+ \tl_if_empty:NF \l__keythms_thmuse_note_tl
+ { \tl_put_right:Nn \l__keythms_thmuse_note_tl { , ~ } }
+ \tl_put_right:Ne \l__keythms_thmuse_note_tl
+ { \__keythms_thmuse_continues:V \l__keythms_thmuse_contlabel_tl }
+ \cs_set:cpn { the #1 }
+ {
+ \getrefnumber { \l__keythms_thmuse_contlabel_tl }
+ }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_continues_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_continues_dummyctr
+ %\cs_set_eq:NN \setuniqmark \use_none:n % not the right fix
+ }
+ \hook_use:n { keytheorems/#1/prehead }
+ \hook_use:n { keytheorems/allthms/prehead }
+ }
+\cs_new_protected:Npn \__keythms_thm_posthead_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/#1/posthead }
+ \hook_use:n { keytheorems/allthms/posthead }
+ \tl_if_empty:NF \l__keythms_thmuse_label_tl
+ {
+ \label{ \l__keythms_thmuse_label_tl }
+ \__keythms_thmuse_recordnote:
+ }
+ \bool_if:NT \l__keythms_thmuse_listhack_bool
+ { % straight from thm-amsthm.sty
+ \leavevmode
+ \vspace{-\baselineskip}%
+ \par
+ \everypar{\setbox\z@\lastbox\everypar{}}%
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_prefoot_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/allthms/prefoot }
+ \hook_use:n { keytheorems/#1/prefoot }
+ }
+\cs_new_protected:Npn \__keythms_thm_postfoot_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/allthms/postfoot }
+ \hook_use:n { keytheorems/#1/postfoot }
+ }
+\cs_new_protected:Npn \__keythms_thm_addcontentsdata:nnnn #1#2#3#4
+ { % #1 = theorem name, #2 = stored counters, #3 = keys, #4 = body
+ \keythms_listof_chaptervspacehack:
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheorem{ #1 }
+ { \@currentlabel }
+ { \@currentHref }
+ { \thepage }
+ { #2 }
+ { \exp_not:n { #3 } } % do we want any expansion here, perhaps
+ { \exp_not:n { #4 } } % with \text_expand:n ?
+ }
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_addstoredreverseddata:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = body
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheoremReversed { \l__keythms_thmuse_storereversed_tl }
+ { #1 }
+ { \exp_not:n { #2 } }
+ { \exp_not:n { #3 } }
+ }
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_tempstorerestatedata:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = body
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedata_tl % needs to be global to get out of env
+ {
+ { #1 }
+ { \@currentlabel }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { \exp_not:n { #2 } } % do we want any expansion here, perhaps
+ { \exp_not:n { #3 } } % with \text_expand:n ?
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn #1#2#3
+ {
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env
+ {
+ { #1 }
+ { \exp_not:n { #2 } }
+ { \exp_not:n { #3 } }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Retrieving Theorem Data %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \KeyThmsSavedTheorem #1#2#3#4#5#6#7 % 7th arg is body
+ { \use:c { __keythms_thmitem_#1:nnnnnn } {#2}{#3}{#4}{#5}{#6}{#7} }
+\cs_new_protected:Npn \KeyThmsSavedTheoremReversed #1#2#3#4 { } % gobble by default
+
+\keys_define:nn { keytheorems/storeatbegin }
+ {
+ restate .meta:n = { store = {#1} },
+ restate* .meta:n = { store* = {#1} },
+ store .tl_set:N = \l__keythms_storeatbegin_store_tl,
+ store* .tl_set:N = \l__keythms_storeatbegin_storereversed_tl,
+ unknown .code:n = { } % do nothing with unknown keys
+ }
+
+\cs_new_protected:Npn \KeyThmsContentsLine #1 { }
+% ^ initially a no-op, redefined where needed; important it's protected!
+\NewDocumentCommand \addtheoremcontentsline { m m }
+ {
+ \addtocontents { thlist }
+ {
+ \KeyThmsContentsLine
+ { % copied from def of \addcontentsline
+ \protect\contentsline{#1}{#2}{\thepage}{}
+ \protected@file@percent
+ }
+ }
+ }
+\NewDocumentCommand \addtotheoremcontents { m }
+ {
+ \addtocontents { thlist }
+ {
+ \KeyThmsContentsLine { #1 }
+ }
+ }
+
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \group_begin:
+ \cs_set_protected:Npn \KeyThmsSavedTheorem #1#2#3#4#5#6#7
+ {
+ \group_begin:
+ \keys_set:nn { keytheorems/storeatbegin } { #6 }
+ \tl_if_empty:NF \l__keythms_storeatbegin_store_tl
+ {
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_store_tl _theorem }
+ {
+ \__keythms_getthm_theorem:nnnnn
+ {#1}{#2}{#5}{#6}{#7}
+ }
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_store_tl _body }
+ {
+ \__keythms_getthm_body:nn {#5}{#7}
+ }
+ }
+ \tl_if_empty:NF \l__keythms_storeatbegin_storereversed_tl
+ {
+ \tl_const:cn
+ { c__keythms_storeatbegin_ \l__keythms_storeatbegin_storereversed_tl _label_tl }
+ { #2 }
+ \tl_const:cn
+ { c__keythms_storeatbegin_ \l__keythms_storeatbegin_storereversed_tl _restatecounters_tl }
+ { #5 }
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_storereversed_tl _body }
+ {
+ \__keythms_getthm_body:nn {#5}{#7}
+ }
+ }
+ \group_end:
+ }
+ \cs_set_protected:Npn \KeyThmsSavedTheoremReversed #1#2#3#4
+ {
+ \bool_new:c { g__keythms_restate_#1_called_bool }
+ \cs_gset:cpn { __keythms_getthm_#1_theorem }
+ { \__keythms_getthmreversed_theorem:nnn { #2 } { #3 } { #4 } }
+ \hook_gput_code:nnn { begindocument/end } { . }
+ {
+ \cs_if_exist:cF { __keythms_getthm_#1_body }
+ {
+ \cs_new_protected:cpn { __keythms_getthm_#1_body }
+ {
+ \textbf{??}
+ \msg_warning:nnn { keytheorems } { restate-body-never-got } { #1 }
+ }
+ }
+ }
+ }
+ \file_if_exist_input:n { \c_sys_jobname_str.thlist }
+ \group_end:
+ }
+
+\prg_new_conditional:Npnn \keythms_if_restating: { T, F, TF }
+ {
+ \bool_if:NTF \l__keythms_thmuse_restating_bool
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\NewDocumentCommand \IfRestatingTF { } { \keythms_if_restating:TF }
+\NewDocumentCommand \IfRestatingT { } { \keythms_if_restating:T }
+\NewDocumentCommand \IfRestatingF { } { \keythms_if_restating:F }
+
+\hook_gput_code:nnn { keytheorems/allthms/restated } { . }
+ { % code to disable things in restated theorems
+ \renewcommand\label[2][]{} % opt arg in case cleveref loaded
+ \cs_set_eq:NN \ltx@label \use_none:n % thmtools does this; why?
+ \cs_set_eq:NN \property_record:nn \use_none:nn
+ \cs_set_eq:NN \setuniqmark \use_none:n % work with numbered=unless-unique
+ % QUESTION: also disable \hyper@@anchor? \MakeLinkTarget?
+ }
+
+\cs_new_protected:Npn \__keythms_getthm_theorem:nnnnn #1#2#3#4#5
+ { % #1 = name, #2 = number, #3 = restate counters, #4 = keys, #5 = theorem body
+ \group_begin:
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop { #3 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_##1_tl } { \the\value{##1} }
+ \setcounter { ##1 } { ##2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ##1 }
+ { \use:c { the ##1 } . \theHkeythms_restate_dummyctr }
+ }
+ \tl_if_empty:nTF { #2 }
+ { \refstepcounter{keythms_restate_dummyctr} } % for unnumbered theorems
+ {
+ \cs_set:cpn { the #1 } { #2 }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_restate_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_restate_dummyctr
+ % ^ why are the last two lines here? We shouldn't be referencing
+ % restated theorems. Think it's a remnant of thmtools
+ % WRONG: needed to make numbering correct after restated theorem.
+ % not sure about theH. <- this is needed to prevent duplicate anchors
+ }
+ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 }
+ \keys_set:nn { keytheorems/thmuse } { #4 }
+ \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist }
+ \__keythms_thm_prehead_code:n { #1 }
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl
+ \__keythms_thm_posthead_code:n { #1 }
+ #5
+ \__keythms_thm_prefoot_code:n { #1 }
+ \__keythms_orig_end:n { #1 }
+ \__keythms_thm_postfoot_code:n { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ##1 }
+ { l_keythms_restate_current_##1_tl }
+ }
+ \group_end:
+ }
+
+\cs_new_protected:Npn \__keythms_getthm_body:nn #1#2
+ { % #1 = restate counters, #2 = theorem body
+ \group_begin:
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_##1_tl } { \the\value{##1} }
+ \setcounter { ##1 } { ##2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ##1 }
+ { \use:c { the ##1 } . \theHkeythms_restate_dummyctr }
+ }
+ \refstepcounter{keythms_restate_dummyctr}
+ % \hook_use:n { keytheorems/#1/restated } % FIX!
+ \hook_use:n { keytheorems/allthms/restated }
+ #2
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ##1 }
+ { l_keythms_restate_current_##1_tl }
+ }
+ \group_end:
+ }
+
+\cs_new_protected:Npn \__keythms_getthmreversed_theorem:nnn #1#2#3
+ { % #1 = envname, #2 = keys, #3 = theorem body
+ \group_begin:
+ \bool_set_false:N \l__keythms_thmuse_restating_bool
+ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 }
+ \keys_set:nn { keytheorems/thmuse } { #2 }
+ \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist }
+ \__keythms_thm_prehead_code:n { #1 }
+ \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl
+ \clist_map_inline:Nn \g__keythms_restatecounters_clist
+ {
+ \prop_gput:Nne \g__keythms_thmuse_othercounters_prop { ##1 }
+ { \the\value{##1} }
+ }
+ \__keythms_thm_posthead_code:n { #1 }
+ \__keythms_thm_addcontentsdata:nnnn { #1 }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { #2 } { #3 }
+ \__keythms_thm_tempstorerestatedata:nnn { #1 } { #2 } { #3 } % for defining getthm_body
+ #3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \__keythms_orig_end:n { #1 }
+ \__keythms_thm_postfoot_code:n { #1 }
+ % While we're here, define getthm_body
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \exp_not:N \__keythms_getthm_body:nn
+ \exp_args:No \exp_not:o
+ {
+ \exp_after:wN \__keythms_use_iii_v_braced:nnnnn
+ \g__keythms_thmuse_temprestatedata_tl
+ }
+ }
+ }
+ \bool_gset_true:c
+ { g__keythms_restate_ \l__keythms_thmuse_storereversed_tl _called_bool }
+ \group_end:
+ }
+
+\NewDocumentCommand \getkeytheorem { O{theorem} m }
+ { % #1 = property, #2 = tag
+ \cs_if_exist:cTF { __keythms_getthm_#2_#1 }
+ {
+ \bool_if_exist:cTF { g__keythms_restate_#2_called_bool }
+ {
+ \str_if_eq:nnTF { #1 } { theorem }
+ {
+ \bool_if:cTF
+ { g__keythms_restate_#2_called_bool }
+ {
+ \msg_error:nnn { keytheorems }
+ { store-reversed-called-twice } { #2 }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ {
+ \textbf{??}
+ \cs_if_exist:cTF { __keythms_getthm_#2_theorem }
+ {
+ \msg_warning:nnnn { keytheorems } { no-prop-for-stored-theorem }
+ { #1 } { #2 } % should this be an error?
+ }
+ { \msg_warning:nnn { keytheorems } { no-stored-theorem } { #2 } }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%
+%%% Theorem Hooks %%%
+%%%%%%%%%%%%%%%%%%%%%
+
+\NewDocumentCommand \addtotheoremhook { O{allthms} m +m }
+ { % #1 = envname, #2 = hook, #3 = code
+ \__hook_if_declared:nTF { keytheorems/allthms/#2 }
+ {
+ \hook_gput_code:nnn { keytheorems/#1/#2 } { . } { #3 }
+ }
+ {
+ \msg_error:nnn { keytheorems } { undefined-thm-hook } { #2 }
+ }
+ }
+% NOTE: I think it's OK we use the internal \__hook_if_declared:nTF above
+% since we don't need to worry about the user creating new theorem hooks
+% so, as we're only checking the existence of hooks created by us, it's OK.
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%%% List of Theorems %%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\keys_define:nn { keytheorems/listof }
+ {
+ chapter-skip-length .dim_set:N = \keythms@listof@chaptervspace@dim,
+ chapter-skip-length .initial:n = 10pt,
+ format-code .cs_set:Np = \__keythms_listof_misdirect:nnn #1#2#3,
+ format-code .initial:n = \numberline{#2}#1#3,
+ ignore .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_ignore:n { #1 } }
+ },
+ ignoreall .code:n =
+ { % in case called before theorem defined
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_ignore_aux:n { ##1 } }
+ }
+ },
+ indent .dim_set:N = \l__keythms_listof_indent_dim,
+ indent .initial:n = 1.5em,
+ no-chapter-skip .bool_set:N = \l__keythms_listof_nochapskip_bool,
+ no-chapter-skip .initial:n = false,
+ no-continues .bool_set:N = \l__keythms_listof_nocont_bool,
+ no-continues .initial:n = false,
+ no-title .bool_set:N = \l__keythms_listof_notitle_bool,
+ no-title .initial:n = false,
+ no-toc .bool_set:N = \l__keythms_listof_notoc_bool,
+ no-toc .initial:n = false, % false does not mean "to-toc" for standard classes
+ note-code .cs_set:Np = \__keythms_listof_notecmd:n #1,
+ note-code .initial:n = { ~ (#1) },
+ numwidth .dim_set:N = \l__keythms_listof_numwidth_dim,
+ numwidth .initial:n = 2.3em,
+ onlynamed .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_onlynamed:n { #1 } }
+ },
+ onlynamed .default:n = \q_no_value,
+ onlynumbered .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_onlynumbered:n { #1 } }
+ },
+ onlynumbered .default:n = \q_no_value,
+ print-body .code:n =
+ {
+ \cs_set_protected:Nn \keythms_listof_listcmd:nnnnnnn
+ {
+ \tl_if_empty:nF { ##7 }
+ {
+ \__keythms_getthm_theorem:nnnnn
+ {##1}{##2}{##5}{##6}{##7}
+ }
+ }
+ },
+ seq .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_showseq:n { #1 } }
+ },
+ show .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_show:n { #1 } }
+ },
+ showall .code:n =
+ { % in case called before theorem defined
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_show_aux:n { ##1 } }
+ }
+ },
+ swapnumber .bool_set:N = \l__keythms_listof_swapnumber_bool,
+ swapnumber .initial:n = false,
+ title .tl_set:N = \l__keythms_listof_title_tl,
+ title .initial:n = \GetTranslation{keythms_listof_title},
+ title-code .cs_set:Np = \__keythms_listof_titlecmd:n #1,
+ }
+
+\hook_gput_code:nnn { begindocument } { . }
+ { % redefine these keys at begindocument
+ \keys_define:nn { keytheorems/listof }
+ {
+ ignore .code:n = \keythms_listof_ignore:n { #1 },
+ ignoreall .code:n =
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_ignore_aux:n { ##1 } }
+ },
+ onlynamed .code:n = \keythms_listof_onlynamed:n { #1 },
+ onlynamed .default:n = \q_no_value,
+ onlynumbered .code:n = \keythms_listof_onlynumbered:n { #1 },
+ onlynumbered .default:n = \q_no_value,
+ seq .code:n = \keythms_listof_showseq:n { #1 },
+ show .code:n = \keythms_listof_show:n { #1 },
+ showall .code:n =
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_show_aux:n { ##1 } }
+ },
+ }
+ }
+
+\NewDocumentCommand \keytheoremlistset { m }
+ {
+ \keys_set:nn { keytheorems/listof } { #1 }
+ }
+
+\cs_new_protected:Npn \keythms_listof_ignore:n #1
+ {
+ \clist_map_inline:nn { #1 } { \__keythms_listof_ignore_aux:n { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_ignore_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ { }
+ }
+
+\cs_new_protected:Npn \keythms_listof_show:n #1
+ {
+ \clist_map_inline:nn { #1 } { \__keythms_listof_show_aux:n { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_show_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_onlynamed:n #1
+ {
+ \quark_if_no_value:nTF { #1 }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_onlynamed_aux:n { ##1 } }
+ }
+ {
+ \clist_map_inline:nn { #1 }
+ { \__keythms_listof_onlynamed_aux:n { ##1 } }
+ }
+ }
+\cs_new_protected:Npn \__keythms_listof_onlynamed_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_onlynumbered:n #1
+ {
+ \quark_if_no_value:nTF { #1 }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_onlynumbered_aux:n { ##1 } }
+ }
+ {
+ \clist_map_inline:nn { #1 }
+ { \__keythms_listof_onlynumbered_aux:n { ##1 } }
+ }
+ }
+\cs_new_protected:Npn \__keythms_listof_onlynumbered_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_empty:nF { ##1 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_showseq:n #1
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_showseq_aux:nn { #1 } { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_showseq_aux:nn #1#2
+ { % #1 = seq name, #2 = theorem name
+ \cs_set_protected:cpn { __keythms_thmitem_#2:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_eq:NnT \l__keythms_listofheading_seq_tl { #1 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#2}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+% Seems unnecessary to repeat all this for reading the keyvals from file.
+% In thmtools they just hook the "thmitem" definition into the theorem declaration.
+%% NOTE ON ABOVE: this gives more flexibility to define different kinds of lists.
+%% See acro.sty for template idea.
+\keys_define:nn { keytheorems/listofheading }
+ {
+ continues .tl_set:N = \l__keythms_listofheading_contlabel_tl,
+ continues* .code:n =
+ {
+ \keys_set:nn { keytheorems/listofheading } { continues = #1 }
+ \protected@edef \l__keythms_tmpa_tl { \__keythms_getrecordednote:n{#1} }
+ \tl_if_empty:NF \l__keythms_tmpa_tl
+ {
+ \keys_set:nn { keytheorems/listofheading }
+ { note = \l__keythms_tmpa_tl }
+ }
+ },
+ name .meta:n = { note = {#1} },
+ note .tl_set:N = \l__keythms_listofheading_note_tl,
+ restate* .meta:n = { store* = {#1} },
+ restate-keys .clist_set:N = \l__keythms_listofheading_restatekeys_clist,
+ seq .tl_set:N = \l__keythms_listofheading_seq_tl,
+ short-note .tl_set:N = \l__keythms_listofheading_shortnote_tl,
+ short-name .meta:n = { short-note = {#1} },
+ store* .code:n =
+ {
+ \bool_set_true:N \l__keythms_listofheading_storereversed_bool
+ },
+ unknown .code:n = { } % do nothing with unknown keys
+ }
+
+\cs_new:Npn \__keythms_listof_printnote:
+ {
+ \tl_if_empty:NTF \l__keythms_listofheading_shortnote_tl
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ { \__keythms_listof_notecmd:n { \l__keythms_listofheading_note_tl } }
+ }
+ {
+ \__keythms_listof_notecmd:n { \l__keythms_listofheading_shortnote_tl }
+ }
+ }
+
+\cs_new:Npn \keythms_listof_listcmd:nnnnnnn #1#2#3#4#5#6#7
+ { % #1=name, #2=number, #3=Href, #4=page, #5=restate counters, #6=keys, #7=body
+ \contentsline{ #1 }
+ {
+ \__keythms_listof_misdirect:nnn
+ { \prop_item:Nn \g__keythms_thmnames_prop { #1 } }
+ { #2 }
+ { \__keythms_listof_printnote: }
+ }
+ { #4 }{ #3 }
+ }
+
+\NewDocumentCommand \__keythms_listof_pagerefnolink:w { s m }
+ { \getpagerefnumber{#2} } % tagging does not like links within link
+
+% NOTE: We still need to do this setup for [print-body] so that onlynamed works
+\cs_new_protected:Npn \__keythms_listof_listcmd_setup:nn #1#2
+ { % #1 = keys, #2 = list command
+ \group_begin:
+ \keys_set:nn { keytheorems/listofheading } { #1 }
+ \bool_if:NT \l__keythms_listofheading_storereversed_bool
+ {
+ \keys_set:no { keytheorems/listofheading }
+ { \l__keythms_listofheading_restatekeys_clist }
+ }
+ \tl_if_empty:NTF \l__keythms_listofheading_contlabel_tl
+ { #2 }
+ {
+ \bool_if:NF \l__keythms_listof_nocont_bool
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ {
+ \tl_put_right:Nn \l__keythms_listofheading_note_tl { , ~ }
+ }
+ \tl_put_right:Nn \l__keythms_listofheading_note_tl
+ {
+ \__keythms_thmuse_continues:V \l__keythms_listofheading_contlabel_tl
+ }
+ \cs_set_eq:NN \pageref \__keythms_listof_pagerefnolink:w % always no link
+ #2
+ }
+ }
+ \group_end:
+ }
+
+\cs_if_exist:NTF \chapter
+ { \cs_set_protected:Npn \__keythms_listof_titlecmd:n #1 { \chapter*{#1} } }
+ { \cs_set_protected:Npn \__keythms_listof_titlecmd:n #1 { \section*{#1} } }
+
+\cs_new_protected:Npn \__keythms_listof_default_tocline:
+ {
+ \@dottedtocline{ 1 }{ \l__keythms_listof_indent_dim }
+ { \l__keythms_listof_numwidth_dim }
+ }
+\cs_new_eq:NN \keythms_listof_tocline: \__keythms_listof_default_tocline:
+
+\NewDocumentCommand \listofkeytheorems { O{} }
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { #1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ##1 { ##1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_protected:Npn \KeyThmsAddvspace { \addvspace }
+ }
+ \bool_if:NF \l__keythms_listof_notitle_bool
+ {
+ \__keythms_listof_titlecmd:n { \l__keythms_listof_title_tl }
+ \@mkboth % QUESTION: should this go in titlecmd ?
+ { \MakeUppercase \l__keythms_listof_title_tl }
+ { \MakeUppercase \l__keythms_listof_title_tl }
+ }
+ \bool_if:NT \l__keythms_listof_swapnumber_bool
+ {
+ \cs_set:Npn \__keythms_listof_misdirect:nnn ##1##2##3 { ##1 ~ ##2##3 }
+ }
+ \legacy_if_set_false:n { @filesw }
+ \@starttoc{ thlist }
+ \group_end:
+ }
+% ^ unlike thmtools we don't use the class's style of \listoffigures because
+% we want control over title-code, no-title, etc. But this means we have to guess
+% things like marks, sectioning command, etc.
+
+\hook_gput_code:nnn { enddocument } { . }
+ {
+ \bool_if:NTF \g__keythms_listof_writefile_bool
+ {
+ \legacy_if:nT { @filesw }
+ {
+ \iow_new:N \tf@thlist
+ \iow_open:Nn \tf@thlist { \c_sys_jobname_str.thlist }
+ }
+ }
+ { % if .thlist file left over from previous run but not needed, clear it
+ \file_if_exist:nT { \c_sys_jobname_str.thlist }
+ {
+ \iow_open:Nn \g__keythms_tmpa_iow { \c_sys_jobname_str.thlist }
+ \iow_close:N \g__keythms_tmpa_iow
+ }
+ }
+ }
+
+% chaptervspacehack (code translated from thmtools)
+\cs_new_protected:Npn \KeyThmsAddvspace #1 { } % initially no-op, redefined where needed
+\int_new:N \g_keythms_listof_prevchapter_int
+\int_gset:Nn \g_keythms_listof_prevchapter_int { 1 }
+% ^ if this is zero, bad things happen if title-code is changed;
+% anyways don't need addvspace at top
+\cs_new_protected:Npn \keythms_listof_chaptervspacehack: { }
+\cs_if_exist:cT { c@chapter }
+ {
+ \cs_set_protected:Npn \keythms_listof_chaptervspacehack:
+ {
+ \int_compare:nNnF
+ { \value{chapter} } = { \g_keythms_listof_prevchapter_int }
+ {
+ \addtocontents{ thlist }
+ {
+ \KeyThmsAddvspace
+ { \keythms@listof@chaptervspace@dim }
+ }
+ \int_gset:Nn \g_keythms_listof_prevchapter_int { \value{chapter} }
+ }
+ }
+ }
+
+%%%%%%%%%%%%%%%%
+%%% \Autoref %%%
+%%%%%%%%%%%%%%%%
+
+\ProvideDocumentCommand { \Autoref } { s m }
+ {
+ \IfPackageLoadedTF { hyperref }
+ {
+ \group_begin:
+ \cs_set_eq:NN \HyRef@testreftype \__keythms_Autoref_testreftype:w
+ \IfBooleanTF { #1 } { \autoref*{#2} } { \autoref{#2} }
+ \group_end:
+ }
+ { \msg_error:nn { keytheorems } { hyperref-Autoref } }
+ }
+
+\cs_new_protected:Npn \__keythms_Autoref_testreftype:w #1.#2\\
+ {
+ \cs_if_exist:cTF { #1 Autorefname }
+ {
+ \cs_set:Npe \HyRef@currentHtag
+ {
+ \exp_not:N \use:c { #1 Autorefname }
+ \exp_not:N \c_space_token
+ }
+ }
+ { \msg_warning:nnn { keytheorems } { no-Autorefname } { #1 } }
+ }
+
+%%%%%%%%%%%%%%%%%%%
+%%% Global Keys %%%
+%%%%%%%%%%%%%%%%%%%
+
+\keys_define:nn { keytheorems }
+ {
+ auto-translate .bool_gset:N = \g__keythms_autotranslate_bool,
+ auto-translate .initial:n = true,
+ continues-code .cs_set:Np = \__keythms_thmuse_continues:n #1,
+ continues-code .initial:n =
+ { % not sure how best to handle this translation
+ \GetTranslation{keythms_continues}\pageref{#1}
+ },
+ overload .code:n = \__keythms_overload_code:,
+ overload .value_forbidden:n = true,
+ overload .usage:n = preamble,
+ qed-symbol .cs_set_protected:Np = \qedsymbol,
+ restate-counters .code:n =
+ {
+ \clist_map_inline:nn { #1 }
+ { \tl_new:c { l_keythms_restate_current_##1_tl } }
+ \clist_gput_right:Nn \g__keythms_restatecounters_clist { #1 }
+ },
+ restate-counters .initial:n = equation,
+ store-all .code:n = \__keythms_storeall_code:,
+ store-all .value_forbidden:n = true,
+ store-all .usage:n = preamble,
+ store-sets-label .code:n =
+ {
+ \keys_define:nn { keytheorems/thmuse }
+ {
+ store .code:n =
+ {
+ \tl_set:Nn \l__keythms_thmuse_label_tl { ##1 }
+ \tl_set:Nn \l__keythms_thmuse_store_tl { ##1 }
+ },
+ store* .code:n =
+ {
+ \tl_set:Nn \l__keythms_thmuse_label_tl { ##1 }
+ \tl_set:Nn \l__keythms_thmuse_storereversed_tl { ##1 }
+ },
+ }
+ },
+ thmtools-compat .code:n =
+ { % prevent loading the code again if key called twice
+ \bool_if:NF \g__keythms_thmtoolscompat_bool
+ { \__keythms_thmtoolscompat_code: }
+ },
+ thmtools-compat .value_forbidden:n = true,
+ thmtools-compat .usage:n = preamble,
+ }
+
+\cs_generate_variant:Nn \__keythms_thmuse_continues:n { V }
+
+\NewDocumentCommand \keytheoremset { m }
+ { % #1 = keys
+ \keys_set:nn { keytheorems } { #1 }
+ }
+
+\cs_new_protected:Npn \__keythms_overload_code:
+ {
+ \RenewDocumentCommand { \newtheorem } { s m o m o }
+ {
+ \IfBooleanTF { ##1 }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, numbered=no } }
+ {
+ \IfNoValueTF { ##3 }
+ {
+ \IfNoValueTF { ##5 }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4 } }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, parent=##5 } }
+ }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, sibling=##3 } }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_thmtoolscompat_code:
+ {
+ \bool_gset_true:N \g__keythms_thmtoolscompat_bool
+ \__keythms_overload_code: % since thmtools overwrites \newtheorem
+ \ProvideDocumentCommand { \declaretheoremstyle } { O{} m }
+ {
+ \declarekeytheoremstyle { ##2 } { ##1 }
+ }
+ \ProvideDocumentCommand { \declaretheorem } { O{} m }
+ {
+ \newkeytheorem { ##2 } [ ##1 ]
+ }
+ \ProvideDocumentEnvironment { restatable } { O{} m m }
+ { % need to redefine this to add store to thlist since we set it outside env
+ \cs_set_protected:Npn \__keythms_thm_addcontentsdata:nnnn ####1####2####3####4
+ { % ####1 = theorem name, ####2 = stored counters, ####3 = keys, ####4 = body
+ \keythms_listof_chaptervspacehack:
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheorem{ ####1 }
+ { \@currentlabel }
+ { \@currentHref }
+ { \thepage }
+ { ####2 }
+ { store=\l__keythms_thmuse_store_tl,\exp_not:n { ####3 } } % this line is changed
+ { \exp_not:n { ####4 } }
+ }
+ }
+ }
+ % set store outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store=##3 }
+ \begin{##2}[##1]
+ }
+ {
+ \end{##2}
+ \cs_new_protected:cpn { ##3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ ##3 } }
+ { \getkeytheorem{ ##3 } }
+ }
+ }
+ \ProvideDocumentEnvironment { restatable* } { O{} m m }
+ { % need to redefine this to add store* to thlist since we set it outside env
+ \cs_set_protected:Npn \__keythms_thm_addstoredreverseddata:nnn ####1####2####3
+ { % ####1 = theorem name, ####2 = keys, ####3 = body
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheoremReversed { \l__keythms_thmuse_storereversed_tl }
+ { ####1 }
+ { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ####2 } } % this line is changed
+ { \exp_not:n { ####3 } }
+ }
+ }
+ } % and this because otherwise adds an extra run; not needed for unstarred
+ \cs_set_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn ####1####2####3
+ {
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env
+ {
+ { ####1 }
+ { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ####2 } }
+ { \exp_not:n { ####3 } }
+ }
+ }
+ % set store* outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store*=##3 }
+ \begin{##2}[##1]
+ }
+ {
+ \end{##2}
+ \cs_new_protected:cpn { ##3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ ##3 } }
+ { \getkeytheorem{ ##3 } }
+ }
+ }
+ \ProvideDocumentCommand { \listoftheorems } { } { \listofkeytheorems }
+ \ProvideDocumentCommand { \listtheoremname } { }
+ { \GetTranslation{keythms_listof_title} }
+ \keys_define:nn { keytheorems/listof }
+ { % redefine since thmtools way is \renewcommand\listtheoremname{...}
+ title .initial:n = \listtheoremname
+ }
+ \ProvideDocumentCommand { \addtotheorempreheadhook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { prehead } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheorempostheadhook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { posthead } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheoremprefoothook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { prefoot } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheorempostfoothook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { postfoot } { ##2 }
+ }
+ \clist_new:N \l__keythms_tcbshaded_keys_clist
+ \clist_new:N \l__keythms_tcbthmbox_keys_clist
+ \keys_define:nn { keytheorems/thm/shaded }
+ {
+ textwidth .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { width=##1 },
+ bgcolor .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { colback=##1 },
+ rulewidth .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { boxrule=##1 },
+ rulecolor .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { colframe=##1 },
+ margin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { boxsep=##1 },
+ padding .meta:n = { margin=##1 },
+ leftmargin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { left~skip=##1 },
+ rightmargin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { right~skip=##1 },
+ }
+ \keys_define:nn { keytheorems/thm/thmbox }
+ {
+ L .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_L }
+ },
+ M .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_M }
+ },
+ S .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_S }
+ },
+ underline .choice:,
+ underline / true .code:n = {},
+ underline / false .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { boxed~title~style={bottomrule=0pt} }
+ },
+ underline .default:n = true,
+ nounderline .meta:n = { underline=false },
+ cut .choice:,
+ cut / true .code:n = {},
+ cut / false .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist { unbreakable }
+ },
+ cut .default:n = true,
+ nocut .meta:n = { cut=false },
+ thickness .code:n =
+ { % could also add keys to clist with changed dimens; which is better?
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_ \l__keythms_thm_envname_tl _tl }
+ { \dim_set:Nn \l_keythms_tcbthmbox_thickness_dim { ##1 } }
+ },
+ leftmargin .code:n =
+ {
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_ \l__keythms_thm_envname_tl _tl }
+ { \dim_set:Nn \l_keythms_tcbthmbox_leftmargin_dim { ##1 } }
+ },
+ rightmargin .code:n =
+ {
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_ \l__keythms_thm_envname_tl _tl }
+ { \dim_set:Nn \l_keythms_tcbthmbox_rightmargin_dim { ##1 } }
+ },
+ hskip .code:n =
+ {
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_ \l__keythms_thm_envname_tl _tl }
+ { \dim_set:Nn \l_keythms_tcbthmbox_hskip_dim { ##1 } }
+ },
+ vskip .code:n =
+ {
+ \tl_gput_right:cn { g__keythms_thm_preheadfromkeys_ \l__keythms_thm_envname_tl _tl }
+ { \dim_set:Nn \l_keythms_tcbthmbox_vskip_dim { ##1 } }
+ },
+ }
+ \dim_new:N \l_keythms_tcbthmbox_thickness_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_thickness_dim { 0.6pt }
+ \dim_new:N \l_keythms_tcbthmbox_leftmargin_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_leftmargin_dim { 0.7\parindent } % use \parindent? thmbox does
+ \dim_new:N \l_keythms_tcbthmbox_rightmargin_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_rightmargin_dim { 0pt }
+ \dim_new:N \l_keythms_tcbthmbox_hskip_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_hskip_dim { 0.2em }
+ \dim_new:N \l_keythms_tcbthmbox_vskip_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_vskip_dim { 0.2em }
+ \msg_new:nnn { keytheorems } { mdframed-undefined }
+ {
+ keytheorems~does~not~define~the~'mdframed'~key.~
+ Consider~using~the~'tcolorbox'~key~instead.
+ }
+ \keys_define:nn { keytheorems/thm }
+ {
+ shaded .code:n =
+ {
+ \clist_clear:N \l__keythms_tcbshaded_keys_clist
+ \keys_set:nn { keytheorems/thm/shaded } { ##1 }
+ % FIX: surely a better way to do this
+ \RequirePackage{tcolorbox}
+ \pgfkeysifdefined{/tcb/keythms_tcbshaded_default/.@cmd} % even worth it?
+ {}
+ {
+ \tcbset % wish I could do this outside of key but can't assume tcb loaded
+ {
+ keythms_tcbshaded_default/.style=
+ {
+ sharp~corners = all,
+ boxrule = 0pt,
+ left = 0pt, right = 0pt,
+ top = 0pt, bottom = 0pt,
+ parbox = false,
+ }
+ }
+ }
+ \keys_set:ne { keytheorems/thm }
+ {
+ tcolorbox-no-titlebar =
+ {
+ keythms_tcbshaded_default,
+ \l__keythms_tcbshaded_keys_clist
+ }
+ }
+ },
+ thmbox .code:n = % adapted from https://tex.stackexchange.com/a/236230/208544
+ {
+ \clist_clear:N \l__keythms_tcbthmbox_keys_clist
+ \keys_set:nn { keytheorems/thm/thmbox } { ##1 }
+ % FIX: surely a better way to do this
+ \RequirePackage{tcolorbox}
+ \tcbuselibrary{skins,breakable}
+ \pgfkeysifdefined{/tcb/keythms_tcbthmbox_default/.@cmd} % even worth it?
+ {}
+ {
+ \tcbset{
+ keythms_tcbthmbox_default/.style={
+ enhanced,
+ breakable,
+ sharp~corners=all,
+ right=\l_keythms_tcbthmbox_hskip_dim,
+ left=\l_keythms_tcbthmbox_hskip_dim,
+ top=\l_keythms_tcbthmbox_vskip_dim,
+ bottom=\l_keythms_tcbthmbox_vskip_dim,
+ coltitle=black,
+ frame~engine=empty,
+ interior~titled~engine=empty,
+ interior~engine=empty,
+ extras~broken={
+ frame~engine=empty,
+ interior~titled~engine=empty,
+ interior~engine=empty
+ },
+ parbox=false,
+ % even though frame isn't drawn, makes spacing correct
+ boxrule=0.5\l_keythms_tcbthmbox_thickness_dim,
+ attach~boxed~title~to~top~left={
+ xshift=-\l_keythms_tcbthmbox_leftmargin_dim,
+ },
+ boxed~title~style={
+ empty,
+ size=minimal,
+ bottom=0.3ex,
+ top=0ex,
+ % ditto
+ bottomrule=0.5\l_keythms_tcbthmbox_thickness_dim,
+ },
+ left~skip=\l_keythms_tcbthmbox_leftmargin_dim,
+ right~skip=\l_keythms_tcbthmbox_rightmargin_dim,
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ ([xshift=10mm]frame.south~west);
+ },
+ overlay~first={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~middle={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ ([xshift=10mm]frame.south~west);
+ }
+ },
+ keythms_tcbthmbox_L/.style={
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ (frame.south~east)
+ -|
+ (frame.north~east);
+ },
+ overlay~first={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~east)
+ --
+ (frame.south~east);
+ },
+ overlay~middle={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~east)
+ --
+ (frame.south~east);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ (frame.south~east)
+ -|
+ (frame.north~east);
+ }
+ },
+ keythms_tcbthmbox_M/.style={},
+ keythms_tcbthmbox_S/.style={ % first and middle same as M
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ }
+ },
+ }
+ }
+ \keys_set:ne { keytheorems/thm }
+ {
+ tcolorbox =
+ {
+ keythms_tcbthmbox_default,
+ \l__keythms_tcbthmbox_keys_clist
+ }
+ }
+ },
+ thmbox .default:n = M,
+ mdframed .code:n = \msg_error:nn { keytheorems } { mdframed-undefined },
+ }
+ \keys_define:nn { keytheorems/thmstyle }
+ {
+ shaded .code:n = \keythms_thmstyle_savethmkey_optval:n { ##1 },
+ thmbox .code:n = \keythms_thmstyle_savethmkey_optval:n { ##1 },
+ mdframed .code:n = \msg_error:nn { keytheorems } { mdframed-undefined },
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_storeall_code:
+ {
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n
+ }
+
+\hook_gput_code:nnn { begindocument/before } { . }
+ { % use 'provide' in case user defines their own translation in preamble
+ \ProvideTranslationFallback { keythms_listof_title } { List~of~Theorems }
+ \ProvideTranslationFallback { keythms_continues } { continuing~from~p.\, }
+ \bool_if:NT \g__keythms_autotranslate_bool
+ {
+ \ProvideTranslation { English } { keythms_listof_title } { List~of~Theorems }
+ \ProvideTranslation { English } { keythms_continues } { continuing~from~p.\, }
+ % from DeepL; I don't know these languages!
+ \ProvideTranslation { French } { keythms_listof_title } { Liste~des~théorèmes }
+ \ProvideTranslation { French } { keythms_continues } { suite~de~la~p.\, }
+ \ProvideTranslation { German } { keythms_listof_title } { Liste~der~Theoreme }
+ \ProvideTranslation { German } { keythms_continues } { weiter~von~Seite~ }
+ \ProvideTranslation { Italian } { keythms_listof_title } { Elenco~dei~teoremi }
+ \ProvideTranslation { Italian } { keythms_continues } { continua~da~p.\, }
+ \ProvideTranslation { Spanish } { keythms_listof_title } { Lista~de~teoremas }
+ \ProvideTranslation { Spanish } { keythms_continues } { continúa~de~la~p.\, }
+ \ProvideTranslation { Portuguese } { keythms_listof_title } { Lista~de~teoremas }
+ \ProvideTranslation { Portuguese } { keythms_continues } { continua~da~p.\, }
+ }
+ }
+
+\ProcessKeyOptions[keytheorems]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Support for non-default classes %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \__keythms_support_AMSshared_code:
+ {
+ \keys_define:nn { keytheorems/listof } % adjust to AMS classes
+ {
+ indent .initial:n = 0pt,
+ numwidth .initial:n = 1.5pc,
+ title-code .code:n =
+ { % warn but set titlecmd just in case
+ \msg_warning:nn { keytheorems } { title-code-with-AMS }
+ \cs_set_protected:Npn \__keythms_listof_titlecmd:n ####1 { ##1 }
+ },
+ }
+ \RenewDocumentCommand \listofkeytheorems { O{} }
+ { % title command not customizable here
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { ##1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ####1 { ####1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_protected:Npn \KeyThmsAddvspace { \addvspace }
+ }
+ \legacy_if_set_false:n { @filesw }
+ \bool_if:NTF \l__keythms_listof_notitle_bool
+ { % hacky!
+ \cs_set_eq:NN \@startsection \use_none:nnnnnnn
+ \@starttoc{ thlist }{ }
+ }
+ { % ams classes don't expand title enough
+ \protected@edef \l__keythms_tmpa_tl { \l__keythms_listof_title_tl }
+ \bool_if:NT \l__keythms_listof_notoc_bool
+ { \cs_set_eq:NN \addcontentsline \use_none:nnn } % hacky!
+ \@starttoc{ thlist }{ \l__keythms_tmpa_tl }
+ }
+ \group_end:
+ }
+ \cs_new:Npn \__keythms_listof_ams_tocline:
+ {
+ \@tocline{ 0 }{ 3pt plus 2pt }{ \l__keythms_listof_indent_dim }
+ { \l__keythms_listof_numwidth_dim }{ }
+ }
+ \cs_set_eq:NN \keythms_listof_tocline: \__keythms_listof_ams_tocline:
+ }
+
+\prg_new_conditional:Npnn \__keythms_if_classloaded:n #1 { p }
+ {
+ \IfClassLoadedTF { #1 } { \prg_return_true: } { \prg_return_false: }
+ }
+
+\cs_new_protected:Npn \__keythms_support_input:n #1
+ {
+ \file_input:n { class-support/keythms-#1-support }
+ }
+
+% acmart and aomart defaults also handled in amsart support file
+\bool_case:n
+ {
+ { \__keythms_if_classloaded_p:n { amsart } }
+ { \__keythms_support_input:n { amsart } }
+ { \__keythms_if_classloaded_p:n { amsbook } }
+ { \__keythms_support_input:n { amsbook } }
+ { \__keythms_if_classloaded_p:n { amsproc } }
+ { \__keythms_support_input:n { amsproc } }
+ { \__keythms_if_classloaded_p:n { beamer } }
+ { \__keythms_support_input:n { beamer } }
+ { \__keythms_if_classloaded_p:n { IEEEtran } }
+ { \__keythms_support_input:n { IEEEtran } }
+ { \__keythms_if_classloaded_p:n { jlreq } }
+ { \__keythms_support_input:n { jlreq } }
+ { \__keythms_if_classloaded_p:n { memoir } }
+ { \__keythms_support_input:n { memoir } }
+ }
+
+% now deal with font packages that change plain style
+\cs_new_protected:Npn \__keythms_support_fontpkg:nn #1#2
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \hook_gput_code:nnn { package/##1/after } { . }
+ {
+ \IfPackageLoadedWithOptionsT { ##1 } { theoremfont }
+ {
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop { #2 }
+ \keys_precompile:neN { keytheorems/thmstyle }
+ { \prop_to_keyval:N \g__keythms_thmstyle_defaultkeys_prop }
+ \l__keythms_thmstyle_defaultkeys_tl
+ }
+ }
+ }
+ }
+
+\__keythms_support_fontpkg:nn { baskervillef,cochineal } { bodyfont = \slshape }
+\__keythms_support_fontpkg:nn { libertinust1math,newpxtext,newtxtext,XCharter }
+ {
+ bodyfont = \thfamily,
+ spaceabove = \medskipamount,
+ spacebelow = \medskipamount,
+ }
+\__keythms_support_fontpkg:nn { scholax } { bodyfont = \thfamily }
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%%% Tagging Support %%%
+%%%%%%%%%%%%%%%%%%%%%%%
+
+\IfDocumentMetadataTF
+ {
+ \tag_if_active:T
+ {
+ \msg_new:nnn { keytheorems } { tcolorbox-tagging }
+ {
+ The~key~'tcolorbox'~does~not~currently~work~with~
+ tagging.~Ignoring~this~key.
+ }
+ \keys_define:nn { keytheorems/thm }
+ {
+ tcolorbox .code:n =
+ \msg_warning:nn { keytheorems } { tcolorbox-tagging },
+ }
+ \keys_define:nn { keytheorems/listof }
+ {
+ print-body .code:n =
+ {
+ \cs_set_protected:Nn \keythms_listof_listcmd:nnnnnnn
+ {
+ \tl_if_empty:nF { ##7 }
+ {
+ \__keythms_getthm_theorem:nnnnn
+ {##1}{##2}{##5}{##6}{##7}
+ }
+ }
+ % with tagging, make \@starttoc same as input
+ \cs_set_protected:Npn \@starttoc ##1
+ { \makeatletter \@input { \jobname.##1 } }
+ },
+ }
+ }
+ }
+ { }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/MANIFEST.md b/macros/latex/contrib/koma-script/MANIFEST.md
index 7089f6be08..6390118add 100644
--- a/macros/latex/contrib/koma-script/MANIFEST.md
+++ b/macros/latex/contrib/koma-script/MANIFEST.md
@@ -20,7 +20,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `koma-script-source-doc.dtx`
* `scraddr.dtx`
* `scrextend.dtx`
-* `scrhack.dtx`
* `scrjura.dtx`
* `scrkernel-addressfiles.dtx`
* `scrkernel-basics.dtx`
@@ -58,7 +57,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `scrstrip.inc`
* `scrstrop.inc`
* `scrdocstrip.tex`
-* `scrdoc.cls` (deprecated)
## Typeset documentation source files
@@ -84,8 +82,9 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
manual. All other files are part of both, the English and the German user
manual.
-* `scrlttr2-examples.dtx` (has to unpacked using “`tex scrlttr2-examples.dtx`”
- before using LaTeX to produce the user manuals)
+* `scrlttr2-examples.dtx` (has to be unpacked using
+ “`tex scrlttr2-examples.dtx`” before using LaTeX to produce the user
+ manuals)
* `scrguide.cls`
* `scrguide.ist`
* `scrguide.gst`
@@ -105,7 +104,8 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrtime-en.tex`
* `scraddr-en.tex`
* `scrextend-en.tex`
-* `scrjura-en.tex`
+* `scrjura-en.tex`
+* `scrjura-example-en.tex`
* `scrlogo-en.tex`
* `common-options-en.tex`
* `common-compatibility-en.tex`
@@ -128,10 +128,12 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrlfile-en.tex`
* `scrwfile-en.tex`
* `tocbasic-en.tex`
-* `scrhack-en.tex`
+* `book-remarkbox-nopatch-en.tex`
+* `book-remarkbox-patch-en.tex`
* `scrlayer-en.tex`
* `scrlayer-scrpage-experts-en.tex`
-* `scrlayer-notecolumn-en.tex`
+* `scrlayer-notecolumn-en.tex`
+* `scrlayer-notecolumn-example-en.tex`
* `typearea-experts-en.tex`
* `scrbookreportarticle-experts-en.tex`
* `scrlttr2-experts-en.tex`
@@ -150,6 +152,7 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scraddr-de.tex`
* `scrextend-de.tex`
* `scrjura-de.tex`
+* `scrjura-example-de.tex`
* `scrlogo-de.tex`
* `common-options-de.tex`
* `common-compatibility-de.tex`
@@ -172,10 +175,12 @@ distributions of the KOMA-Script bundle of LaTeX classes and packages.
* `scrlfile-de.tex`
* `scrwfile-de.tex`
* `tocbasic-de.tex`
-* `scrhack-de.tex`
+* `book-remarkbox-nopatch-de.tex`
+* `book-remarkbox-patch-de.tex`
* `scrlayer-de.tex`
-* `scrlayer-scrpage-experts-de.tex`
-* `scrlayer-notecolumn-de.tex`
+* `scrlayer-scrpage-experts-de.tex`
+* `scrlayer-notecolumn-de.tex`
+* `scrlayer-notecolumn-example-de.tex`
* `typearea-experts-de.tex`
* `scrbookreportarticle-experts-de.tex`
* `scrlttr2-experts-de.tex`
@@ -199,10 +204,8 @@ of the KOMA-Script bundle of LaTeX classes and packages.
* `README.scrbase.sty`
* `README.scrbook.cls`
* `README.scrdate.sty`
-* `README.scrdoc.cls`
* `README.scrextend.sty`
* `README.scrfontsizes.sty`
-* `README.scrhack.sty`
* `README.scrjura.sty`
* `README.scrkbase.sty`
* `README.scrlayer-notecolumn.sty`
@@ -235,7 +238,6 @@ of LaTeX classes and packages.
* `scrdate.sty`
* `scrextend.sty`
* `scrfontsizes.sty`
-* `scrhack.sty`
* `scrjura.sty`
* `scrkbase.sty`
* `scrlayer-notecolumn.sty`
@@ -321,7 +323,6 @@ KOMA-Script bundle of LaTeX classes and packages.
* `scrarticle.html`
* `scrlayer-notecolumn.html`
* `scraddr.html`
-* `scrhack.html`
* `scrlfile-hook-3.34.html`
* `scrtime.html`
* `scrlttr2.html`
diff --git a/macros/latex/contrib/koma-script/README.md b/macros/latex/contrib/koma-script/README.md
index fd359a2572..a6c4b164c1 100644
--- a/macros/latex/contrib/koma-script/README.md
+++ b/macros/latex/contrib/koma-script/README.md
@@ -1,5 +1,5 @@
-# KOMA-Script 2023/07/07 v3.41
-Copyright [Markus Kohm](mailto:komascript@gmx.info) 1994–2023
+# KOMA-Script 2024/10/24 v3.43
+Copyright [Markus Kohm](mailto:komascript@gmx.info) 1994–2024
This material is subject to the LaTeX Project Public License Version 1.3c. See [`lppl.txt`](lppl.txt) (English) or [`lppl-de.txt`](lppl-de.txt) (German) for the details of that license.
@@ -68,7 +68,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: scrlayer-scrpage - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -76,7 +76,7 @@ Version: 2023/07/07 v3.41
<pre>
Maintainer: Markus Kohm
E-Mail: komascript@gmx.info
-Abstract: scrreport is a very simple wrapper class to scrartcl. It has
+Abstract: scrarticle is a very simple wrapper class to scrartcl. It has
been made, because several younger KOMA-Script users do not
understand the 8.3 name scheme.
@@ -85,7 +85,7 @@ Abstract: scrreport is a very simple wrapper class to scrartcl. It has
Requires: scrartcl.cls - KOMA-Script class
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -126,7 +126,7 @@ Requires: keyval - key=value package from the graphics bundle
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -148,7 +148,7 @@ Requires: scrkbase - internal KOMA-Script package
typearea - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -169,23 +169,7 @@ Requires: scrkbase - KOMA-Script package for some basic features.
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
-</pre>
-***
-
-### `scrdoc` — deprecated internal source documentation class of KOMA-Script
-<pre>
-Maintainer: Markus Kohm
-E-Mail: komascript@gmx.info
-Abstract: scrdoc is an internal LaTeX class of the KOMA-Script bundle.
- It is an extension of ltxdoc with version 2 of the doc
- package. KOMA-Script has used scrdoc for the implementation
- documentation before KOMA-Script 3.36.
-Requires: ltxdoc - the LaTeX2e source documentation class
- scrartcl - the KOMA-Script article class
-License: LPPL 1.3c or later
-State: deprecated, will be removed soon
-Version: 2022/06/24 v0.1j
+Version: 2024/10/24 v3.43
</pre>
***
@@ -200,7 +184,7 @@ Requires: scrkbase - internal package with some basics of KOMA-Script
etoolbox - tool-box for LaTeX programming using e-TeX
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -214,27 +198,7 @@ Abstract: scrfontsizes is a LaTeX package of the KOMA-Script bundle.
Requires: scrextend - some KOMA-Script features for other classes
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
-</pre>
-***
-
-### `scrhack` — patch some isues with other packages
-<pre>
-Maintainer: Markus Kohm
-E-Mail: komascript@gmx.info
-Abstract: scrhack is a LaTeX package of the KOMA-Script bundle. It
- patches other packages to make them work better and adds new
- features to improve their interaction with KOMA-Script. One
- main feature is to make them work with tocbasic instead of
- KOMA-Script's deprecated float list interface. Currently,
- patches for float.sty, floatrow.sty, (old versions of)
- hyperref, listings, and setspace are available.
-Requires: scrkbase - internal KOMA-Script package with basics
- tocbasic - features for helper files and float environments
- xpatch - extending etoolbox patching commands
-License: LPPL 1.3c or later
-State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -252,7 +216,7 @@ Requires: scrkbase - internal KOMA-Script package with basics
tocbasic - features for helper files and float environments
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -269,7 +233,7 @@ Requires: scrbase - KOMA-Script package for some basic features.
manipulation
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -314,7 +278,7 @@ Abstract: scrlayer-scrpage is a LaTeX package of the KOMA-Script
Requires: scrlayer.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -341,7 +305,7 @@ Abstract: scrlayer is a LaTeX package of the KOMA-Script bundle.
Requires: scrkbase.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -356,11 +320,11 @@ Requires: scrartcl.cls – KOMA-Script class
scrletter.sty – KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
-### `scrletter` — letter extention to KOMA-Script classes
+### `scrletter` — letter extension to KOMA-Script classes
<pre>
Maintainer: Markus Kohm
E-Mail: komascript@gmx.info
@@ -373,7 +337,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: marvosym - package by Martin Vogel providing symbols
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -387,7 +351,7 @@ Abstract: scrlfile-hook-3.34 is an internal subpackage of scrlfile to
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -400,7 +364,7 @@ Abstract: scrlfile-hook is an internal subpackage of scrlfile to be
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -413,7 +377,7 @@ Abstract: scrlfile-patcholdlatex is an internal subpackage of scrlfile
Requires: scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -433,7 +397,7 @@ Abstract: scrlfile is a LaTeX package of the KOMA-Script bundle. It
Requires: scrlfile-hook.sty, scrlfile-patcholdlatex.sty, scrlogo.sty
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -447,7 +411,7 @@ Abstract: scrlogo is a LaTeX package of the KOMA-Script bundle. It
Requires:
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -482,7 +446,7 @@ Requires: scrkbase - internal KOMA-Script package
Recommended: marvosym - package by Martin Vogel providing symbols
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -499,7 +463,7 @@ Abstract: scrreport is a very simple wrapper class to scrreprt. It has
Requires: scrreprt.cls - KOMA-Script class
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -521,7 +485,7 @@ Requires: scrkbase - internal KOMA-Script package
typearea - KOMA-Script package
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -535,7 +499,7 @@ Abstract: scrtime is a LaTeX package of the KOMA-Script bundle. It
Requires: scrkbase - internal package with some basics of KOMA-Script
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -562,7 +526,7 @@ Abstract: tocbasic is a LaTeX package of the KOMA-Script bundle. The
Requires: scrbase - KOMA-Script package for some basic features.
License: LPPL 1.3c or later
State: Author maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
@@ -585,7 +549,7 @@ Abstract: Many LaTeX classes, including the standard classes, present
Requires: scrkbase - internal basic features for KOMA-Script packages
License: LPPL 1.3c or later
State: Autor maintained
-Version: 2023/07/07 v3.41
+Version: 2024/10/24 v3.43
</pre>
***
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf
new file mode 100644
index 0000000000..a759484dc3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex
new file mode 100644
index 0000000000..574b8a1aa1
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-de.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+\usepackage[ngerman]{babel}
+\usepackage{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% Gleitumgebungen sollen definiert werden.
+ counterwithin=chapter,% Zähler von Kapitel abhängig.
+ floattype=4,%
+ name=Merksatz,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={Verzeichnis der Merksätze}%
+]{lor}
+
+% Einträge im Inhaltsverzeichnis:
+\setuptoc{lof}{totoc}% für das Abbildungsverzeichnis
+\setuptoc{lor}{totoc}% für das Verzeichnis der Merksätze
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{Erstes Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Erste Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Erster Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Zweite Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Zweiter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Zweites Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Dritte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Dritter Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Vierte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Vierter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf
new file mode 100644
index 0000000000..f8c6ac2e1b
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex
new file mode 100644
index 0000000000..99a62c128a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-nopatch-en.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+
+\usepackage{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% definiere floating environment
+ counterwithin=chapter,% counter depends on chapter
+ floattype=4,%
+ name=Remark,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={List of Remarks}%
+]{lor}
+
+% add entries to the table of contents
+\setuptoc{lof}{totoc}% list of figures
+\setuptoc{lor}{totoc}% list of remarks
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{First Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{First Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{First Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Second Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Second Remark}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Second Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Third Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Third Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Fourth Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Fourth Remark}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf
new file mode 100644
index 0000000000..69586b4085
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex
new file mode 100644
index 0000000000..05d18a6b6e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-de.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+\usepackage[ngerman]{babel}
+\usepackage[enablepatch={chapter,listoffigures}]{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% Gleitumgebungen sollen definiert werden.
+ counterwithin=chapter,% Zähler von Kapitel abhängig.
+ floattype=4,%
+ name=Merksatz,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={Verzeichnis der Merksätze}%
+]{lor}
+
+% Einträge im Inhaltsverzeichnis:
+\setuptoc{lof}{totoc}% für das Abbildungsverzeichnis
+\setuptoc{lor}{totoc}% für das Verzeichnis der Merksätze
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{Erstes Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Erste Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Erster Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Zweite Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Zweiter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Zweites Beispielkapitel}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Dritte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Dritter Merksatz}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Vierte Abbildung}
+\end{figure}
+\begin{remarkbox}
+ \caption{Vierter Merksatz}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf
new file mode 100644
index 0000000000..95485506a0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex
new file mode 100644
index 0000000000..31a70c35df
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/book-remarkbox-patch-en.tex
@@ -0,0 +1,74 @@
+\documentclass{book}
+
+\usepackage[enablepatch={chapter,listoffigures}]{tocbasic}
+
+\DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% definiere floating environment
+ counterwithin=chapter,% counter depends on chapter
+ floattype=4,%
+ name=Remark,%
+ tocentryindent=1.5em,%
+ tocentrynumwidth=2.3em,%
+ listname={List of Remarks}%
+]{lor}
+
+% add entries to the table of contents
+\setuptoc{lof}{totoc}% list of figures
+\setuptoc{lor}{totoc}% list of remarks
+
+\usepackage{mwe}
+
+\begin{document}
+\tableofcontents
+\listoffigures
+\listofremarkboxes
+
+\chapter{First Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{First Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{First Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Second Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Second Remark}
+\end{remarkbox}
+
+\blindtext
+
+\chapter{Second Example Chapter}
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Third Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Third Remark}
+\end{remarkbox}
+
+\blindtext
+\begin{figure}
+ \centering
+ \rule{1cm}{1cm}
+ \caption{Fourth Figure}
+\end{figure}
+\begin{remarkbox}
+ \caption{Fourth Remark}
+\end{remarkbox}
+
+\blindtext
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/common-options-de.tex b/macros/latex/contrib/koma-script/doc/common-options-de.tex
index 37110f487c..f455a270d0 100644
--- a/macros/latex/contrib/koma-script/doc/common-options-de.tex
+++ b/macros/latex/contrib/koma-script/doc/common-options-de.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-options-de.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (common paragraphs)]
\section{Frühe oder späte Optionenwahl}
@@ -44,8 +44,6 @@
\KOMAScript-Klassen und "~Pakete }{%
\IfThisCommonLabelBase{scrextend}{den Klassen und \Package{scrextend}
auch einige andere \KOMAScript-Pakete }{%
- \IfThisCommonLabelBase{scrhack}{\Package{scrhack} auch andere
- \KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrjura}{\Package{scrjura} auch andere
\KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrlayer}{\Package{scrlayer} auch andere
@@ -56,7 +54,7 @@
\IfThisCommonLabelBase{scrlayer-notecolumn}{%
\Package{scrlayer-notecolumn} auch andere \KOMAScript-Pakete
und "-Klassen }{%
- \InternalCommonFileUsageError}}}}}}}}}%%
+ \InternalCommonFileUsageError}}}}}}}}%%
betrifft. %
% Umbruchvarianten:
\IfThisCommonLabelBase{typearea}{Im Sinne der
@@ -109,7 +107,7 @@ Unterschied arbeiten \Macro{documentclass} und \Macro{usepackage} bei
beispielsweise \cite{l2kurz}, beschrieben.
\IfThisCommonLabelBaseNotOneOf{%
- scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+ scrjura,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
}{%
Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten
\IfThisCommonLabelBase{typearea}{beim dann ohnehin überflüssigen}{im Übrigen
diff --git a/macros/latex/contrib/koma-script/doc/common-options-en.tex b/macros/latex/contrib/koma-script/doc/common-options-en.tex
index 638ea2a5d7..a443086e58 100644
--- a/macros/latex/contrib/koma-script/doc/common-options-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-options-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-options-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (common paragraphs)]
\translator{Gernot Hassenpflug\and Krickette Murabayashi\and Karl Hagen}
@@ -41,14 +41,13 @@
\IfThisCommonLabelBase{scrlttr2}{the \Class{scrlttr2} class}{%
\IfThisCommonLabelBase{scrextend}{the classes and
\Package{scrextend}}{%
- \IfThisCommonLabelBase{scrhack}{\Package{scrhack}}{%
\IfThisCommonLabelBase{scrjura}{\Package{scrjura}}{%
\IfThisCommonLabelBase{scrlayer}{\Package{scrlayer}}{%
\IfThisCommonLabelBase{scrlayer-scrpage}{%
\Package{scrlayer-scrpage}}{%
\IfThisCommonLabelBase{scrlayer-notecolumn}{%
\Package{scrlayer-notecolumn}}{%
- \InternalCommonFileUsageError}}}}}}}}}%
+ \InternalCommonFileUsageError}}}}}}}}%
, is also relevant to other \KOMAScript{} packages and classes. %
\IfThisCommonLabelBase{scrlttr2}{So that each chapter may stand on its own,
this section appears in nearly identical form in several chapters, but if
@@ -97,7 +96,7 @@ described in \cite{latex:usrguide} or any introduction to \LaTeX, for example
\cite{lshort}.
\IfThisCommonLabelBaseNotOneOf{%
- scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+ scrjura,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
}{%
When using a \KOMAScript{} class\textnote{Attention!}, you should not
specify options when loading the \Package{typearea} or \Package{scrbase}
diff --git a/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex b/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
index f1c8c71a48..4532f81c72 100644
--- a/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{common-pagestylemanipulation-en.tex}
- [$Date: 2023-06-16 10:32:27 +0200 (Fr, 16. Jun 2023) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script guide (common paragraph:
Setting up defined page styles)]
\translator{Markus Kohm\and Jana Schubert\and Karl Hagen}
@@ -374,7 +374,7 @@
routine (see the explanation of \DescRef{scrlayer-scrpage.option.markcase}
in \autoref{sec:scrlayer-scrpage.pagestyle.content},
\autopageref{expl:scrlayer-scrpage.MakeUppercase}) the author of
- \KOMAScript recommends that you avoid upper-case typesetting for running
+ \KOMAScript{} recommends that you avoid upper-case typesetting for running
heads.%
}{%
Unfortunately,\phantomsection\label{expl:\ThisCommonLabelBase.MakeUppercase}
diff --git a/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex b/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
index b2874ed8be..4079f8969f 100644
--- a/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
+++ b/macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{common-textmarkup-en.tex}
- [$Date: 2023-04-20 10:04:17 +0200 (Do, 20. Apr 2023) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script guide (common paragraphs)]
\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
Karl Hagen}
@@ -259,7 +259,7 @@ refer to the sections for the respective element.%
\IfThisCommonLabelBase{scrlayer-scrpage}{ %
The specified defaults apply only if the corresponding element has not
already been defined before loading \Package{scrlayer-scrpage}. For
- example, the \KOMAScript classes define
+ example, the \KOMAScript{} classes define
\DescRef{maincls.fontelement.pageheadfoot}, and then
\Package{scrlayer-scrpage} uses the setting it finds.%
}{%
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
index c2d973a700..2c030d434a 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
index 87cdef7ed8..4ee68f7e8e 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
index e5ec6edd20..ced1acc17e 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
index 361de55235..1253b62937 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
index 98f260a1cb..2b21d93e8e 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
index 7accd7ab6a..43f0bc99bc 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
index 5db63e674c..4bd1918cbc 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
index eb066c03d6..2f2053650b 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
index e6c05f6be3..1ec6a343b0 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
index f1a8f16425..b2be8f760d 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
index d2f3a71754..8b3ad96d4b 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
index 1a12133008..8c2e91aa30 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
index fa3155fe9e..f186625628 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
index 5e37dbeda0..4bba8734c6 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
index 7db808574a..c1a8c990a7 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
index b29a8acdb0..9b4f04e6c5 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
index 885558256b..0526d60a3d 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
index 983861242f..e6bd71e087 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
index 5bf6c3d38f..6d03b00af5 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
index 13354547b2..ff157f875d 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
index 651a68e857..a346829c81 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
index 448b02e3a5..275140e0cb 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
index 7d84f64d04..f6572774c1 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
index 163ac5e9f4..dc59115a57 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
index 3761a12d4e..6c93c5f5df 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
index f761f88764..9ffb0140a4 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
index 6980d43210..16e54f95c7 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
index f1249dd0e9..058d894f66 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
index 92532de29a..8b0c3b6d3a 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
index 41f0d98ca0..c2bb0d66bd 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
index 83e7e295f6..ad2a5cb772 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
index c4b6e7ebea..59ca5bec98 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
index ca02b64c97..3419820bba 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
index 87f6d28f47..916e320db8 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
index 6a81c2f4b3..1759bec025 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
index 776194b0f0..dfcaea1261 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
index c00aadfba7..e09a78c222 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
index 3c7cc05e35..0264f1189f 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
index 6c897cebbe..b0f8d3d7db 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
index fc7f007162..551471ceff 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
index b02e3989c1..5dba6cb551 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
index 490d506142..33862d9f48 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
index 871fc4ec89..9e6c540d3b 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
index a0f19e31b1..12df0980c3 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
index 74b377140b..4cac53249a 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
index 24fdd5545a..8225663d48 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf b/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
index e171320149..8a8e8df7a8 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf b/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
index 5a178001b9..ebfd7267f7 100644
--- a/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
index c60aacda95..57df923b49 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-de.tex}
- [$Date: 2023-05-10 17:45:46 +0200 (Mi, 10. Mai 2023) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}}
@@ -86,13 +86,13 @@ beim ersten \LaTeX-Lauf nach der Umstellung durchaus zu Fehlermeldungen oder
zusäzlichen Warnungen kommen. Meist lassen sich diese auf einfache Weise
beheben. Oftmals können dazu die erweiterten Möglichkeiten von \KOMAScript{}
genutzt werden, wodurch das problematische Paket dann vollständig
-entfällt. Manchmal kann auch das in \autoref{cha:scrhack} ab Seite
-\autopageref{cha:scrhack} dokumentierte \hyperref[cha:scrhack]{Paket
- \Package{scrhack}}\IndexPackage{scrhack} Abhilfe schaffen. Auch der Ersatz
-von veralteten Paketen durch aktuelle Nachfolger kann zur Beseitigung
-derartiger Probleme beitragen. Teilweise geben sogar die \KOMAScript-Klassen
-durch entsprechende Warnungen Hilfestellung bei der Lösung von
-Inkompatibilitäten.
+entfällt. Manchmal kann auch das in \iffree{\cite{pkg:scrhack:manual}}{%
+ \autoref{cha:scrhack} ab Seite \autopageref{cha:scrhack}} dokumentierte
+Paket \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack} Abhilfe schaffen. Auch der Ersatz von veralteten
+Paketen durch aktuelle Nachfolger kann zur Beseitigung derartiger Probleme
+beitragen. Teilweise geben sogar die \KOMAScript-Klassen durch entsprechende
+Warnungen Hilfestellung bei der Lösung von Inkompatibilitäten.
Lassen Sie mich der Erläuterung der Klassen noch eine Bemerkung
vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, welche
@@ -3372,10 +3372,12 @@ Alternative zu \Package{float} sei auch die Verwendung von
\DescRef{tocbasic.cmd.DeclareNewTOC} (siehe
\DescPageRef{tocbasic.cmd.DeclareNewTOC}) erwähnt. Darüber hinaus sei bei
Verwendung von \Package{float} ausdrücklich Paket
-\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} (siehe
-\autoref{cha:scrhack} ab \autopageref{cha:scrhack} in
-\autoref{part:forExperts}) empfohlen.
+\href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}%
+\IndexPackage{floatbytocbasic}%
+\important{%
+ \href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}}
+(siehe \iffree{\cite{pkg:floatbytocbasic}}{\autoref{cha:floabytocbasic} ab
+ \autopageref{cha:floatbytocbasic} in \autoref{part:friends}}) empfohlen.
\leavevmode\LabelOptionValue{captions}{nooneline}\nobreak
Bei\important{\OptionValue{captions}{nooneline}} \KOMAScript{} besteht darüber
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
index b595999763..1ef27e440c 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-en.tex}
- [$Date: 2023-05-10 17:45:46 +0200 (Mi, 10. Mai 2023) $
+ [$Date: 2023-09-06 10:22:04 +0200 (Mi, 06. Sep 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
\translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and
@@ -88,12 +88,11 @@ classes, without regard to completely independent developments like the
may well result in error messages or additional warnings. These can usually be
corrected in a simple way. Often the extended capabilities of \KOMAScript{}
can be used for this purpose, which completely eliminates the problematic
-package. Sometimes the \hyperref[cha:scrhack]{package
- \Package{scrhack}}\IndexPackage{scrhack} documented in \autoref{cha:scrhack}
-starting on \autopageref{cha:scrhack} can also help. Replacing obsolete
-packages with current successors can also help to eliminate such
-problems. Sometimes even the \KOMAScript{} classes provide warnings to help
-solve incompatibilities.
+package. Sometimes the package
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}} documented in
+\cite{pkg:scrhack:manual} can also help. Replacing obsolete packages with
+current successors can also help to eliminate such problems. Sometimes even
+the \KOMAScript{} classes provide warnings to help solve incompatibilities.
% :ODOT
Let me say something before describing the classes. When beginning to write a
@@ -2763,8 +2762,6 @@ level is unnumbered, the \PName{else code} is executed. The
the \PName{then code} if the current level is unnumbered and the \PName{else
code} if it is. The \PName{section level} parameter is simply the \LaTeX{}
name of a section like \PValue{part}, \PValue{chapter}, \PValue{section},
-\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph} oder
-\PValue{subparagraph}.\PValue{part}, \PValue{chapter}, \PValue{section},
\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph}, or
\PValue{subparagraph}.
@@ -3079,10 +3076,11 @@ alternative to \Package{float}, you can also consult
\DescRef{tocbasic.cmd.DeclareNewTOC} (see
\DescPageRef{tocbasic.cmd.DeclareNewTOC}). Additionally, when using
\Package{float}, the
-\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package is
-expressly recommended (see \autoref{cha:scrhack} from
-\autopageref{cha:scrhack} in \autoref{part:forExperts}).
+\href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}%
+\IndexPackage{floatbytocbasic}%
+\important{%
+ \href{https://www.ctan.org/pkg/floatbytocbasic}{\Package{floatbytocbasic}}}
+package is expressly recommended (see \cite{pkg:floatbytocbasic:manual}).
\leavevmode
\LabelOptionValue{captions}{nooneline}\nobreak
@@ -3401,7 +3399,7 @@ option. But this feature may be lost if you load the
\captionaboveof{table}
[Measure of the rectangle in
figure~\ref{fig:rechteck}]%
- {Measure of the rectangle}
+ {Rectangle measure}
\label{tab:rechteck}
\begin{tabular}{ll}
Width: & 4\,cm\\
@@ -3449,7 +3447,7 @@ option. But this feature may be lost if you load the
\begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
\centering
\captionaboveof{table}[Example: Measure of the rectangle in
- figure~\ref{fig:\LabelBase.rechteck}]{Rectangle size}
+ figure~\ref{fig:\LabelBase.rechteck}]{Rectangle measure}
\label{tab:\LabelBase.rechteck}
\begin{tabular}{ll}
Width: & 4\,cm\\
@@ -4013,8 +4011,8 @@ corresponding options without \Package{ragged2e}. For safety reasons, a
warning is issued in this case.
When using this command without\textnote{without optional parameter} the
-optional parameter, the result depends on whether the call occurs inside our
-outside of a floating environment. Within a floating environment, the
+optional parameter, the result depends on whether the call occurs inside or
+outside of a floating environment. Inside a floating environment, the
alignment is then set for this floating environment. Outside, on the other
hand, the optional parameter is assumed to be empty.
diff --git a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
index e3807a114c..9ea6e55de9 100644
--- a/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
@@ -25,7 +25,7 @@
% ============================================================================
\KOMAProvidesFile{scrbookreportarticle-experts-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-09-06 10:22:04 +0200 (Mi, 06. Sep 2023) $
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for
experts)]
@@ -1597,7 +1597,7 @@ the group used to process the heading. This is also the last opportunity to
intervene before the heading is printed.
Similarly\textnote{\DoHook{\dots/begingroup/\dots}}, the hook
-\DoHook{heading/begingroup/\PName{name}} will be executed at the end of the
+\DoHook{heading/endgroup/\PName{name}} will be executed at the end of the
group used to process the heading. Currently this is the last hook inside
a section command.
@@ -1717,11 +1717,10 @@ offers the hooks described previously.%
\end{Declaration}%
The \KOMAScript{} classes have an unusual feature within the
\DescRef{maincls.cmd.appendix} command. If the \Macro{appendixmore} command
-is defined, \DescRef{maincls.cmd.appendix} will also execute this
-it. Internally, the \KOMAScript{} classes
-\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} and
-\Class{scrreprt} take advantage of this behaviour to implement the
-\DescRef{maincls.option.appendixprefix} layout option (see
+is defined, \DescRef{maincls.cmd.appendix} will also execute it. Internally,
+the \KOMAScript{} classes \Class{scrbook}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} and \Class{scrreprt} take advantage of this behaviour to
+implement the \DescRef{maincls.option.appendixprefix} layout option (see
\autoref{sec:maincls.structure},
\DescPageRef{maincls.option.appendixprefix}). You\textnote{Attention!} should
take note of this in case you decide to define or redefine the
@@ -1737,7 +1736,7 @@ realising it.
\autoref{sec:maincls.structure},
\DescPageRef{maincls.option.chapterprefix}). For consistency, you also do
not want such a line in the appendix either. Instead, you would like to see
- the word ``Chapter'' in the language of your choice written in front of the
+ the word ``Appendix'' in the language of your choice written in front of the
chapter letter and, simultaneously, in the page headings. Instead of using
the \DescRef{maincls.option.appendixprefix} layout option, you define the
following in the document preamble:
diff --git a/macros/latex/contrib/koma-script/doc/scrextend-en.tex b/macros/latex/contrib/koma-script/doc/scrextend-en.tex
index 5027c949a0..4e0041f4f0 100644
--- a/macros/latex/contrib/koma-script/doc/scrextend-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrextend-en.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{scrextend-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-09-18 09:02:03 +0200 (Mo, 18. Sep 2023) $
KOMA-Script package scrextend]
\translator{Markus Kohm\and Karl Hagen}
@@ -52,7 +52,7 @@ The fact that \hyperref[cha:scrlttr2]{\Package{scrletter}}%
\IndexPackage{scrletter} can be used not only with \KOMAScript{} classes but
also with the standard classes is partly due to \Package{scrextend}. If
\hyperref[cha:scrlttr2]{\Package{scrletter}} detects that it is not being used
-with a \KOMAScript class, it automatically loads \Package{scrextend}. Doing
+with a \KOMAScript{} class, it automatically loads \Package{scrextend}. Doing
so makes all required \KOMAScript{} classes available.
Of course, there is no guarantee that \Package{scrextend} will work with all
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-body.tex b/macros/latex/contrib/koma-script/doc/scrguide-body.tex
index 6349871f23..5ea5fd2186 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-body.tex
+++ b/macros/latex/contrib/koma-script/doc/scrguide-body.tex
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{scrguide-body.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-07-31 15:38:10 +0200 (Mo, 31. Jul 2023) $
KOMA-Script (guide body file)]
\csname ListTypeArea\endcsname
@@ -82,7 +82,6 @@
\linclude{scrlfile}
\linclude{scrwfile}
\linclude{tocbasic}
-\linclude{scrhack}
\linclude{scrlayer}
\linclude{scrlayer-scrpage-experts}
\linclude{scrlayer-notecolumn}
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-de.pdf b/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
index 99d9c00607..8cf723d7bf 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrguide-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrguide-en.pdf b/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
index dd99f78b82..dca4512ff1 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrguide-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.bib b/macros/latex/contrib/koma-script/doc/scrguide.bib
index d93e74044a..5ea27cb408 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide.bib
+++ b/macros/latex/contrib/koma-script/doc/scrguide.bib
@@ -1,6 +1,6 @@
% ======================================================================
% scrguide.bib
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -339,6 +339,16 @@ Schlegl},
url = {CTAN://macros/latex/contrib/caption/}
}
+@Misc{ package:contract,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Typeset formalized legal documents such as contracts, statutes, etc},
+ year = 2024,
+ month = feb,
+ edition = {0.91},
+ url = {CTAN://macros/latex/contrib/contract}
+}
+
@Misc{ package:CJK,
language= {english},
author = {Werner Lemberg},
@@ -439,6 +449,26 @@ Schlegl},
url = {CTAN://macros/latex/contrib/float/}
}
+@Misc{ pkg:floatbytocbasic,
+ language = {english},
+ author = {Markus Kohm},
+ title = {{\Package{scrhack}} --- an enhancement to package {\Package{float}} using package {\Package{tocbasic}}},
+ year = 2023,
+ month = aug,
+ edition = {1.0},
+ url = {CTAN://macros/latex/contrib/floatbytocbasic}
+}
+
+@Manual{ pkg:floatbytocbasic:manual,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Improving Package {\Package{float}} Using {\KOMAScript} Package {\Package{tocbasic}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/floatbytocbasic/floatbytocbasic.pdf}
+}
+
@Misc{ package:floatrow,
language = {english},
author = {Olga Lapko},
@@ -699,6 +729,26 @@ Schlegl},
url = {CTAN://macros/latex/contrib/oberdiek/}
}
+@Misc{ pkg:scrhack,
+ language = {english},
+ author = {Markus Kohm},
+ title = {{\Package{scrhack}} --- compatibility package to emulate the former KOMA-Script package \Package{scrhack}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/scrhack/}
+}
+
+@Manual{ pkg:scrhack:manual,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Emulating Former {\KOMAScript} Package {\Package{scrhack}}},
+ year = 2023,
+ month = aug,
+ edition = {3.42},
+ url = {CTAN://macros/latex/contrib/scrhack/scrhack.pdf}
+}
+
@Misc{ package:setspace,
language= {english},
author = {Geoffrey Tobin and Robin Fairbairns},
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.cls b/macros/latex/contrib/koma-script/doc/scrguide.cls
index 7c0a63bdc1..017bcea829 100644
--- a/macros/latex/contrib/koma-script/doc/scrguide.cls
+++ b/macros/latex/contrib/koma-script/doc/scrguide.cls
@@ -216,7 +216,6 @@
\RequirePackage{multicol}
\RequirePackage{marginnote}
\RequirePackage{tabularx}
-\RequirePackage{scrhack}%
\RequirePackage{mparhack}%
% \end{macrocode}
%
@@ -1928,7 +1927,7 @@
\setbox\desccaptionb@xfirst\vbox{%
\tabular{p{\labelwidth}}%
\multicolumn{1}{@{}p{\dimexpr\labelwidth+2\tabcolsep}@{}}{%
- \captionaboveof{table}[##1]{##2\unskip\strut}%
+ \captionaboveof{table}[{##1}]{##2\unskip\strut}%
}\tabularnewline[%
\dimexpr \abovecaptionskip-\normalbaselineskip\relax
% \dimexpr \abovecaptionskip-\abovecaptionskipcorrection\relax
diff --git a/macros/latex/contrib/koma-script/doc/scrhack-de.tex b/macros/latex/contrib/koma-script/doc/scrhack-de.tex
deleted file mode 100644
index a426a28a6f..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack-de.tex
+++ /dev/null
@@ -1,313 +0,0 @@
-% ======================================================================
-% scrhack-de.tex
-% Copyright (c) Markus Kohm, 2001-2022
-%
-% This file is part of the LaTeX2e KOMA-Script bundle.
-%
-% This work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, version 1.3c of the license.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% This work consists of all files listed in MANIFEST.md.
-% ======================================================================
-%
-% Chapter about scrhack of the KOMA-Script guide
-% Maintained by Markus Kohm
-%
-% ============================================================================
-
-\KOMAProvidesFile{scrhack-de.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
- KOMA-Script guide (chapter: scrhack)]
-
-\chapter{Fremdpakete verbessern mit \Package{scrhack}}
-\labelbase{scrhack}
-
-\BeginIndexGroup
-\BeginIndex{Package}{scrhack}
-Einige Pakete außerhalb von \KOMAScript{} arbeiten nicht sehr gut mit
-\KOMAScript{} zusammen. Für den \KOMAScript-Autor ist es dabei oftmals sehr
-mühsam, die Autoren der jeweiligen Pakete von einer Verbesserung zu
-überzeugen. Das betrifft auch Pakete, deren Entwicklung eingestellt
-wurde. Deshalb wurde das Paket \Package{scrhack} begonnen. Dieses Paket ändert
-Anweisungen und Definitionen anderer Pakete, damit sie besser mit
-\KOMAScript{} zusammenarbeiten. Einige Änderungen sind auch bei
-Verwendung anderer Klassen nützlich.
-
-Es wird empfohlen, das Paket \Package{scrhack} so früh wie möglich zu
-laden. Insbesondere sollte das Laden vor den betroffenen Paketen erfolgen.
-
-\section{Entwicklungsstand}
-\seclabel{draft}
-
-Obwohl das Paket bereits seit längerer Zeit Teil von \KOMAScript{} ist und
-von vielen Anwendern genutzt wird, hat es auch ein Problem: Bei
-der Umdefinierung von Makros fremder Pakete ist es von der genauen Definition
-und Verwendung dieser Makros abhängig. Damit ist es gleichzeitig auch von
-bestimmten Versionen dieser Pakete abhängig. Wird eine unbekannte Version
-eines der entsprechenden Pakete verwendet, kann \Package{scrhack} den
-notwendigen Patch eventuell nicht ausführen. Im Extremfall kann aber umgekehrt
-der Patch einer unbekannten Version auch zu einem Fehler führen.
-
-Da also \Package{scrhack} immer wieder an neue Versionen fremder Pakete
-angepasst werden muss, kann es niemals als fertig angesehen werden. Daher
-existiert von \Package{scrhack} dauerhaft nur eine Beta-Version. Obwohl die
-Benutzung in der Regel einige Vorteile mit sich bringt, kann die Funktion
-nicht dauerhaft garantiert werden.
-
-\LoadCommonFile{options}
-
-\section{Verwendung von \Package{tocbasic}}
-\seclabel{improvement}
-
-In den Anfängen von \KOMAScript{} gab es von Anwenderseite den Wunsch, dass
-Verzeichnisse von Gleitumgebungen, die mit dem Paket
-\Package{float}\IndexPackage{float}\important{\Package{float}} erzeugt werden,
-genauso behandelt werden wie das Abbildungsverzeichnis oder das
-Tabellenverzeichnis, das von den \KOMAScript-Klassen selbst angelegt
-wird. Damals setzte sich der \KOMAScript-Autor mit dem Autor von
-\Package{float} in Verbindung, um diesem eine Schnittstelle für entsprechende
-Erweiterungen zu unterbreiten. In etwas abgewandelter Form wurde diese in
-Gestalt der beiden Anweisungen
-\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} und
-\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} realisiert.
-
-Später zeigte sich, dass diese beiden Anweisungen nicht genug Flexibilität für
-eine umfangreiche Unterstützung aller \KOMAScript-Möglichkeiten boten. Leider
-hatte der Autor von \Package{float} die Entwicklung aber bereits eingestellt,
-so dass hier keine Änderungen mehr zu erwarten sind.
-
-Andere Paketautoren haben die beiden Anweisungen ebenfalls übernommen. Dabei
-zeigte sich, dass die Implementierung in einigen Paketen, darunter auch
-\Package{float}, dazu führt, dass all diese Pakete nur in einer bestimmten
-Reihenfolge geladen werden können, obwohl sie ansonsten in keinerlei Beziehung
-zueinander stehen.
-
-Um all diese Nachteile und Probleme zu beseitigen, unterstützt \KOMAScript{}
-diese alte Schnittstelle offiziell nicht mehr. Stattdessen wird bei Verwendung
-dieser Schnittstelle von \KOMAScript{} gewarnt. Gleichzeitig wurde in
-\KOMAScript{} das Paket
-\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}} (siehe
-\autoref{cha:tocbasic}) als zentrale Schnittstelle für die Verwaltung von
-Verzeichnissen entworfen und realisiert. Die Verwendung dieses Pakets bietet
-\iffalse weit \fi % Umbruchkorrektur
-mehr Vorteile und Möglichkeiten als die
-\iffalse beiden \fi % Umbruchkorrektur
-alten Anweisungen.
-
-Obwohl der Aufwand zur Verwendung dieses Pakets gering ist, haben bisher
-die Autoren der Pakete, die auf die veralteten Anweisungen gesetzt haben,
-keine Anpassung vorgenommen. Daher bietet \Package{scrhack}
-entsprechende Anpassungen für die Pakete
-\Package{float}\IndexPackage{float}\important{\Package{float},
- \Package{floatrow}, \Package{listings}},
-\Package{floatrow}\IndexPackage{floatrow} und
-\Package{listings}\IndexPackage{listings}. Allein durch das Laden von
-\Package{scrhack} reagieren diese Pakete dann nicht nur auf die Einstellungen
-von Option
-\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{Einstellung}},
-sondern beachten auch Sprachumschaltungen durch
-\Package{babel}\IndexPackage{babel}. Näheres zu den Möglichkeiten, die
-durch die Umstellung der Pakete auf \Package{tocbasic} zur Verfügung
-stehen, ist \autoref{sec:tocbasic.toc} zu entnehmen.
-
-Sollte diese Änderung für eines der Pakete nicht erwünscht sein oder zu
-Problemen führen, so kann sie selektiv mit den Einstellungen
-\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
-\OptionValue{floatrow}{false}%
-\IndexOption[indexmain]{floatrow~=\textKValue{false}} und
-\OptionValue{listings}{false}%
-\IndexOption[indexmain]{listings~=\textKValue{false}} abgeschaltet
-werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung der Optionen
-nach dem Laden des zugehörigen Pakets keinen Einfluss mehr hat!
-
-
-\section{Falsche Erwartungen an \Macro{@ptsize}}
-\seclabel{ptsize}
-
-Einige Pakete gehen \iffalse grundsätzlich \fi % Umbruchkorrektur
-davon aus, dass das klasseninterne Makro \Macro{@ptsize}\IndexCmd{@ptsize}
-sowohl definiert ist als auch zu einer ganzen Zahl expandiert. Aus
-Kompatibilitätsgründen definiert \KOMAScript{} \Macro{@ptsize} auch bei
-anderen Grundschriftgrößen als 10\Unit{pt}, 11\Unit{pt} oder 12\Unit{pt}. Da
-\KOMAScript{} außerdem auch gebrochene Schriftgrößen erlaubt, kann
-\iffalse dabei \fi % Umbruchkorrektur
-\Macro{@ptsize} natürlich auch zu einem Dezimalbruch expandieren.
-
-Eines\ChangedAt{v3.17}{\Package{scrhack}} der Pakete, die damit nicht zurecht
-kommen, ist das Paket \Package{setspace}\IndexPackage[indexmain]{setspace}%
-\important{\Package{setspace}}. Darüber hinaus sind die von diesem Paket
-eingestellten Werte immer von der Grundschriftgröße abhängig, auch wenn die
-Einstellung im Kontext einer anderen Schriftgröße erfolgt. Paket
-\Package{scrhack} löst beide Probleme, indem es die Einstellungen von
-\Macro{onehalfspacing} und \Macro{doublespacing} immer relativ zur aktuellen,
-tatsächlichen Schriftgröße vornimmt.
-
-Sollte diese Änderung nicht erwünscht sein oder zu Problemen führen, so kann
-sie selektiv mit der Einstellung
-\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
-abgeschaltet werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung
-der Option nach dem Laden von \Package{setspace} keinen Einfluss mehr hat!
-Ebenso muss \Package{scrhack} vor \Package{setspace} geladen werden, falls
-\Package{setspace} mit einer der Optionen \Option{onehalfspacing} oder
-\Option{doublespacing} geladen wird und dieser Hack sich bereits darauf
-auswirken soll.
-
-
-\section{Sonderfall \Package{hyperref}}
-\seclabel{hyperref}
-
-Ältere Versionen von
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}} vor
-6.79h haben bei den Sternformen der Gliederungsbefehle hinter statt vor oder
-auf die Gliederungsüberschriften verlinkt. Inzwischen ist dieses Problem auf
-Vorschlag des \KOMAScript-Autors beseitigt. Da die entsprechende Änderung aber
-über ein Jahr auf sich warten ließ, wurde in \Package{scrhack} ein
-entsprechender Patch aufgenommen. Zwar kann dieser ebenfalls durch
-\OptionValue{hyperref}{false} deaktiviert werden, empfohlen wird jedoch
-stattdessen die aktuelle Version von \Package{hyperref} zu verwenden. In
-diesem Fall wird die Änderung durch \Package{scrhack} automatisch verhindert.
-
-
-\section{Inkonsistente Behandlung von \Length{textwidth} und \Length{textheight}}
-\seclabel{lscape}
-
-Das\ChangedAt{v3.18}{\Package{scrhack}} Paket
-\Package{lscape}\IndexPackage[indexmain]{lscape}%
-\important{\Package{lscape}} definiert eine Umgebung
-\Environment{landscape}\IndexEnv{landscape}, um den Inhalt einer Seite aber
-nicht deren Kopf und Fuß quer zu setzen. Innerhalb dieser Umgebung wird
-\Length{textheight}\IndexLength{textheight} auf den Wert von
-\Length{textwidth} gesetzt. Umgekehrt wird jedoch \Length{textwidth} nicht auf
-den vorherigen Wert von \Length{textheight} gesetzt. Das ist
-inkonsistent. Meines Wissens wird \Length{textwidth} nicht entsprechend
-geändert, weil andere Pakete oder Anwenderanweisungen gestört werden
-könnten. Jedoch hat auch die Änderung von \Length{textheight} dieses Potential
-und in der Tat beschädigt sie die Funktion beispielsweise der Pakete
-\Package{showframe}\IndexPackage{showframe} und
-\Package{scrlayer}\IndexPackage{scrlayer}. Daher wäre es am besten, wenn
-\Length{textheight} ebenfalls unverändert bliebe. \Package{scrhack} verwendet
-Paket \Package{xpatch} (siehe \cite{package:xpatch}), um die Startanweisung
-\Macro{landscape} der gleichnamigen Umgebung entsprechend zu ändern.
-
-Falls diese Änderung nicht gewünscht wird oder Probleme verursacht, kann sie
-mit Option
-\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
-deaktiviert werden. Es ist zu beachten\textnote{Achtung!}, dass eine
-nachträgliche Zuweisung an Option \Option{lscape} mit
-\DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} oder
-\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} nur eine Wirkung
-hat, wenn sie während des Ladens von \Package{lscape} nicht \PValue{false}
-war.
-
-Im übrigens wird \Package{lscape} auch von dem Paket
-\Package{pdflscape}\IndexPackage[indexmain]{pdflscape}%
-\important{\Package{pdflscape}} verwendet, so dass \Package{scrhack} sich auch
-auf die Funktion dieses Pakets auswirkt.%
-
-
-\section{Sonderfall \Package{nomencl}}
-\seclabel{nomencl}
-
-Eine\ChangedAt{v3.23}{\Package{scrhack}} Besonderheit stellt der Hack für das
-Paket
-\Package{nomencl}\IndexPackage[indexmain]{nomencl}\important{\Package{nomencl}}
-dar. Dieser rüstet einerseits nach, dass der optionale
-Inhaltsverzeichniseintrag für die Nomenklatur Option
-\OptionValueRef{maincls}{toc}{indentunnumbered} beachtet. Quasi nebenbei
-werden über das Paket \Package{tocbasic} auch gleich die Endungen \File{nlo}
-und \File{nls} für den Besitzer \PValue{nomencl} reserviert (siehe
-\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
-\DescPageRef{tocbasic.cmd.addtotoclist}).
-
-Außerdem wird die Umgebung
-\Environment{thenomenclature}\IndexEnv{thenomenclature} so geändert,
-dass \DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} für
-die Überschrift verwendet wird (siehe \autoref{sec:tocbasic.internals},
-\DescPageRef{tocbasic.cmd.tocbasic@listhead}). Dadurch können mit dem Hack
-diverse Attribute für die Endung \File{nls} über
-\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
-\important{\DescRef{tocbasic.cmd.setuptoc}} gesetzt werden. So ist es
-beispielsweise möglich, mit
-\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered} die
-Nomenklatur nicht nur ins Inhaltsverzeichnis einzutragen, sondern auch gleich
-zu nummerieren. Näheres zu \DescRef{tocbasic.cmd.setuptoc} und den damit
-möglichen Einstellungen ist in \autoref{sec:tocbasic.toc}, ab
-\DescPageRef{tocbasic.cmd.setuptoc} zu finden. Als kleiner aber wichtiger
-Nebeneffekt erhält die Nomenklatur mit diesem Patch außerdem einen passenden
-Kolumnentitel, falls lebende Kolumnentitel beispielsweise durch Verwendung von
-Seitenstil \DescRef{maincls.pagestyle.headings} aktiviert wurden.
-
-Dieser eher simple Patch ist damit ein Beispiel dafür, wie auch Pakete, die
-keine Gleitumgebungen definieren, Nutzen aus der Verwendung von
-\Package{tocbasic} ziehen könnten. Falls diese Änderung jedoch nicht
-gewünscht wird oder Probleme verursacht, kann sie mit Option
-\OptionValue{nomencl}{false}\IndexOption[indexmain]{nomencl~=\textKValue{false}}
-deaktiviert werden. Entscheidend\textnote{Achtung!} ist dabei die Einstellung
-der Option zum Zeitpunkt, zu dem \Package{nomencl} geladen wird! Spätere
-Änderungen der Option mit \DescRef{\LabelBase.cmd.KOMAoption} oder
-\DescRef{\LabelBase.cmd.KOMAoptions} haben also keinen Einfluss und führen zu
-einer entsprechenden Warnung.%
-
-
-\section{Sonderfall Überschriften}
-\seclabel{sections}
-
-Diverse\ChangedAt{v3.27}{\Package{scrhack}} Pakete gehen davon aus, dass
-Überschriften auf eine ganz bestimmte Weise definiert sind, die weitgehend den
-Definitionen der Standardklassen entsprechen. Dies ist jedoch nicht bei allen
-Klassen der Fall. Beispielsweise sind bei den \KOMAScript-Klassen die
-Überschriften komplett anders definiert, um viele zusätzliche Möglichkeiten zu
-bieten. Das kann einige wenige Pakete aus dem Tritt bringen. Ab Version~3.27
-bietet \Package{scrhack} daher die Möglichkeit, zwangsweise die
-Überschriftenbefehle \DescRef{maincls.cmd.part}\IndexCmd{part},
-\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
-\DescRef{maincls.cmd.section}\IndexCmd{section},
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
-\DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection},
-\DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph} und
-\DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} kompatibel zu den
-Standardklassen zu definieren. Dabei werden im Fall, dass
-\DescRef{maincls.cmd.chapter} definiert ist, die Definitionen von \Class{book}
-zugrunde gelegt. Ist \DescRef{maincls.cmd.chapter} nicht definiert, so werden
-die Definitionen von \Class{article} herangezogen.
-
-Bei Verwendung einer \KOMAScript-Klasse werden als Seiteneffekt zusätzlich
-diverse Möglichkeiten dieser Klassen deaktviert. Beispielsweise stehen dann
-die Befehle zur Neudefinition oder Änderung der Gliederungsbefehle aus
-\autoref{sec:maincls-experts.sections} oder Option
-\DescRef{maincls.option.headings} nicht mehr zur Verfügung und Befehle wie
-\DescRef{maincls.cmd.partformat} erhalten eine neue Voreinstellung.
-
-Da dieser Hack häufig mehr Schaden als Nutzen bringt, erzeugt er eine größere
-Anzahl an Warnungen. Außerdem ist er nicht bereits durch das Laden von Paket
-\Package{scrhack} aktiv, sondern muss beim Laden des Pakets mit Option
-\Option{standardsections}\IndexOption[indexmain]{standardsections} explizit
-aktiviert werden. Eine nachträgliche Aktivierung oder Deaktivierung ist nicht
-möglich.
-
-Da es für die eingangs erwähnten Probleme oft weniger invasive Lösungen gibt,
-wird die Verwendung des Hacks ausdrücklich nicht empfohlen, sondern lediglich
-als letzte Rettungschance für Notfälle angeboten.%
-\EndIndexGroup
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "scrguide-en.tex"
-%%% coding: utf-8
-%%% ispell-local-dictionary: "en_GB"
-%%% eval: (flyspell-mode 1)
-%%% End:
-
-% LocalWords: Eindateiensystem Schreibdatei Zieldatei Zielendung Quellendung
-% LocalWords: Verzeichnisüberschrift Dateiendung Zielendungen Verzeichnisdatei
-% LocalWords: Benutzeranweisungen Dokumentpräambel Kapitelebene Sternformen
-% LocalWords: Sprachumschaltungen Gliederungsüberschriften Gliederungsbefehle
-% LocalWords: Paketautoren
diff --git a/macros/latex/contrib/koma-script/doc/scrhack-en.tex b/macros/latex/contrib/koma-script/doc/scrhack-en.tex
deleted file mode 100644
index 74b1999c00..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack-en.tex
+++ /dev/null
@@ -1,285 +0,0 @@
-% ======================================================================
-% scrhack-en.tex
-% Copyright (c) Markus Kohm, 2001-2022
-%
-% This file is part of the LaTeX2e KOMA-Script bundle.
-%
-% This work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, version 1.3c of the license.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% This work consists of all files listed in MANIFEST.md.
-% ======================================================================
-%
-% Chapter about scrhack of the KOMA-Script guide
-% Maintained by Markus Kohm
-%
-% ============================================================================
-
-\KOMAProvidesFile{scrhack-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
- KOMA-Script guide (chapter: scrhack)]
-\translator{Markus Kohm\and Karl Hagen}
-
-\chapter{Improving Third-Party Packages with \Package{scrhack}}
-\labelbase{scrhack}
-
-\BeginIndexGroup
-\BeginIndex{Package}{scrhack}
-Some packages from other authors do not work well with \KOMAScript{}. It is
-often very tedious for the author of \KOMAScript{} to convince the authors of
-these packages to make specific improvements. This also applies to packages
-whose development has been discontinued. That's why the \Package{scrhack} was
-created. This package alters the commands and definitions of other to work
-better with \KOMAScript{}. Some changes are also useful when using other
-classes.
-
-It is recommended to load the \Package{scrhack} package as early as
-possible. In particular, loading should be done before the affected packages.
-
-\section{Development Status}
-\label{scr:scrhack.draft}
-
-Although this package has been part of \KOMAScript{} for long time and is used
-by many users, there's one problem with it. Redefining macros from third-party
-packages depends on knowing the exact definition and use of those macros. This
-also means that it depends on specific versions of those packages. If you use
-a unknown version of such a package, \Package{scrhack} may not be able to
-execute the required patch. In extreme cases, patching an unknown version can
-lead to an error.
-
-Because \Package{scrhack} must be continuously modified to accommodate new
-releases of third-party packages, it can never be considered complete.
-Therefore \Package{scrhack} will remain permanently in a beta version.
-Although its use will generally be a benefit, its correct functioning cannot
-be permanently guaranteed.
-
-\LoadCommonFile{options}% \section{Early or late Selection of Options}
-
-\section{Using \Package{tocbasic}}
-\seclabel{improvement}
-
-In the early days of \KOMAScript{}, users wanted to handle lists of floating
-environments created with the
-\Package{float}\IndexPackage{float}\important{\Package{float}} package in the
-same way as the list of figures and list of tables created by \KOMAScript{}
-itself. At that time the author of \KOMAScript{} contacted the author of
-\Package{float} to propose an interface to support such an extension. A
-somewhat modified form of that interface was implemented with the
-\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} and
-\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} commands.
-
-Later it became apparent that these two commands were not flexible enough to
-fully support all of \KOMAScript's capabilities. Unfortunately, the author of
-\Package{float} had already ceased development by that point, so further
-changes to this package cannot be expected.
-
-Other package authors have also adopted these two commands, and it became
-apparent that the implementation in some packages, including \Package{float},
-means that all these packages can only be loaded in a specific order, even
-though they are otherwise unrelated to each other.
-
-To overcome all these disadvantages and problems, \KOMAScript{} no longer
-officially supports this old interface. Instead, \KOMAScript{} warns if the
-old interface is used. At the same time, the
-\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}}
-package (see \autoref{cha:tocbasic}) has been designed and implemented as a
-central interface for managing of table of contents and similar content lists.
-This package provides many more advantages and features than the two old
-commands.
-
-Although the effort to use this package is very small, so far the authors of
-most of the packages that use the old interface have not made any adjustments.
-Therefore \Package{scrhack} contains appropriate modifications of the
-\Package{float}\IndexPackage{float}\important{\Package{float},
-\Package{floatrow}, \Package{listings}},
-\Package{floatrow}\IndexPackage{floatrow}, and
-\Package{listings}\IndexPackage{listings} packages. Merely loading
-\Package{scrhack} is sufficient to make these packages recognize not only the
-setting of the \KOMAScript{} option
-\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{setting}}, but also
-to react to the language switching features of the
-\Package{babel}\IndexPackage{babel} package. You can find more information
-about the features available by switching packages to \Package{tocbasic} in
-\autoref{sec:tocbasic.toc}.
-
-If you do not want this modification for any of the packages, or if it causes
-problems, you can deactivate it selectively with the
-\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
-\OptionValue{floatrow}{false}\IndexOption[indexmain]{floatrow~=\textKValue{false}},
-or
-\OptionValue{listings}{false}\IndexOption[indexmain]{listings~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing these options after loading
-the associated package has no effect!
-
-
-\section{Incorrect Assumptions about \Macro{@ptsize}}
-\seclabel{ptsize}
-
-Some packages assume that the class-internal macro
-\Macro{@ptsize}\IndexCmd{@ptsize} both is defined and expands to an integer.
-For compatibility, \KOMAScript{} defines \Macro{@ptsize} even if the basic
-font size is something other than 10\Unit{pt}, 11\Unit{pt}, or 12\Unit{pt}.
-\KOMAScript{} also allows non-integer font sizes. So \Macro{@ptsize} can, of
-course, also expand to a non-integer number.
-
-One\ChangedAt{v3.17}{\Package{scrhack}} of the packages that cannot cope with
-a non-integer \Macro{@ptsize} is
-\Package{setspace}\IndexPackage[indexmain]{setspace}. Additionally, the values
-set by this package are always dependent on the basic font size, even if the
-setting is made in the context of another font size. The \Package{scrhack}
-package solves both problems by redefining \Macro{onehalfspacing} and
-\Macro{doublespacing} to set the spacing relative to the actual font size.
-
-If you do not want this modification for the package, or if it causes
-problems, you can deactivate it selectively with the
-\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing this option after loading
-\Package{setspace} has no effect! Likewise, if you use \Package{setspace} with
-either the \Option{onehalfspacing} or \Option{doublespacing} option, you must
-load \Package{scrhack} first.
-
-
-\section{Older Versions of \Package{hyperref}}
-\seclabel{hyperref}
-
-Versions of \Package{hyperref} before 6.79h set the link
-anchors after the heading of the starred versions of commands like
-\DescRef{maincls.cmd.part*}, \DescRef{maincls.cmd.chapter*}, etc. instead of
-before them. Since then, this problem has been resolved at the suggestion of
-\KOMAScript{}'s author. But because the change took more than a year, a patch
-was added to \Package{scrhack}. Although this can also be deactivated with
-\OptionValue{hyperref}{false}, you should instead use the current
-\Package{hyperref} release. In this case \Package{scrhack} automatically
-deactivates this unnecessary patch.%
-
-
-\section{Inconsistent Handling of \Length{textwidth} and \Length{textheight}}
-\seclabel{lscape}
-
-The\ChangedAt{v3.18}{\Package{scrhack}}
-\Package{lscape}\IndexPackage[indexmain]{lscape} package defines a
-\Environment{landscape}\IndexEnv{landscape} environment to set the page
-contents, but not the header or footer in landscape mode. Inside this
-environment, \Length{textheight}\IndexLength{textheight} is set to the value
-of \Length{textwidth}, but \Length{textwidth} is not set to the former value
-of \Length{textheight}. This is inconsistent. As far as I know,
-\Length{textwidth} is left unchanged because setting it to \Length{textheight}
-could interfere with other packages or user commands. But changing
-\Length{textheight} also has this potential, and indeed it breaks, for
-example, \Package{showframe}\IndexPackage{showframe} and
-\Package{scrlayer}\IndexPackage{scrlayer}. Thus it would be best if
-\Length{textheight} too remained unchanged. \Package{scrhack} uses the
-\Package{xpatch} package (see \cite{package:xpatch}) to modify the
-\Macro{landscape} environment's start macro appropriately.
-
-If you do not want this modification, or if it causes problems, you can
-deactivate it with the
-\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
-option. Note\textnote{Attention!} that changing \Option{lscape} subsequently
-with \DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} or
-\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} has an effect only
-if it was not \PValue{false} while loading \Package{lscape}.
-
-Incidentally, the \Package{pdflscape}\IndexPackage[indexmain]{pdflscape}
-package also uses \Package{lscape}, so \Package{scrhack} affects the
-functioning of this package too.%
-
-
-\section{Special Case for \Package{nomencl}}
-\label{sec:nomencl}
-
-The\ChangedAt{v3.23}{\Package{scrhack}} hack for the
-\Package{nomencl}\IndexPackage[indexmain]{nomencl} represents a somewhat
-special case. First, it ensures that the optional table of contents entry for
-the nomenclature observes the \OptionValueRef{maincls}{toc}{indentunnumbered}
-option. Somewhat incidentally, it also reserves the file extensions \File{nlo}
-and \File{nls} for the owner \PValue{nomencl} (see
-\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
-\DescPageRef{tocbasic.cmd.addtotoclist}).
-
-It also changes the \Environment{thenomenclature}\IndexEnv{thenomenclature}
-environment to use
-\DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} for the
-heading (see \autoref{sec:tocbasic.internals},
-\DescPageRef{tocbasic.cmd.tocbasic@listhead}). In this way, the hack lets you
-set various attribute for the \File{nls} extension using
-\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
-\important{\DescRef{tocbasic.cmd.setuptoc}}. For example, not only can you
-enter the nomenclature in the table of contents with
-\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered}, but you
-can also number it immediately. You can find more about
-\DescRef{tocbasic.cmd.setuptoc} and its available settings in
-\autoref{sec:tocbasic.toc}, starting on \DescPageRef{tocbasic.cmd.setuptoc}.
-As a small but important side effect, this patch also gives the nomenclature
-also matching running head, if automatic running heads are activated, for
-example by using the \DescRef{maincls.pagestyle.headings} page style.
-
-This rather simple patch is an example of how packages that do not define
-floating environments can still benefit from \Package{tocbasic}. However, you
-do not want this change, or if it causes problems, you can deactivate it with
-the \OptionValue{nomencl}{false}%
-\IndexOption[indexmain]{nomencl~=\textKValue{false}} option.
-The\textnote{Achtung!} setting of the option when \Package{nomencl} is loaded
-is crucial! Later changes to the option with
-\DescRef{\LabelBase.cmd.KOMAoption} or \DescRef{\LabelBase.cmd.KOMAoptions}
-have no influence and will lead to a corresponding warning.%
-
-
-\section{Special Case for Section Headings}
-\seclabel{sections}
-
-Various\ChangedAt{v3.27}{\Package{scrhack}} packages assume that the
-sectioning commands are defined in a specific way, corresponding to the
-definitions in the standard classes. But for some classes this is not the
-case. For example, the \KOMAScript{} classes use a completely different
-implementation to provide many additional features. But this can cause
-problems for packages that depend on the definition of the standard classes.
-As of version~3.27, \Package{scrhack} offers the option to force the
-sectioning commands \DescRef{maincls.cmd.part}\IndexCmd{part},
-\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
-\DescRef{maincls.cmd.section}\IndexCmd{section},
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
-\DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection},
-\DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph}, and
-\DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} to be compatible
-with those in the standard classes. When \DescRef{maincls.cmd.chapter} is
-defined, the definitions are based on those in \Class{book}. When
-\DescRef{maincls.cmd.chapter} is undefined, the definitions of
-\Class{article} are used.
-
-If you are using a \KOMAScript{} class, several features of these classes are
-also deactivated as side effect. For example, the commands to define or
-modify sectioning commands described in
-\autoref{sec:maincls-experts.sections} or option
-\DescRef{maincls.option.headings} are no longer available, and commands like
-\DescRef{maincls.cmd.partformat} have different defaults.
-
-Because this hack has the potential to do more harm than good, it issues
-several warnings. Also it is not activated simply by loading the
-\Package{scrhack} package. If you want to use it, you must explicitly activate
-it with the \Option{standardsections}\IndexOption[indexmain]{standardsections}
-option when you load the package. Late activation or deactivation is not
-supported.
-
-Since there are often less invasive solutions to fix the problem of package
-incompatibilities, using this hack is not recommended. It is provided only as
-a last resort for emergencies.%
-\EndIndexGroup
-
-\endinput
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "scrguide-en.tex"
-%%% coding: utf-8
-%%% ispell-local-dictionary: "en_GB"
-%%% eval: (flyspell-mode 1)
-%%% End:
diff --git a/macros/latex/contrib/koma-script/doc/scrhack.html b/macros/latex/contrib/koma-script/doc/scrhack.html
deleted file mode 100644
index 7c0bdd13d4..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrhack.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <meta name="keywords" content="KOMA-Script, scrhack
- <meta name="DC.Title" content="Improving Third-Party Packages with scrhack" />
- <meta name="DC.Creator" content="l3build" />
- <meta name="DC.Subject" content="KOMA-Script Documentation" />
- <meta name="DC.Description" content="Where to find the KOMA-Script
- documentation of scrhack" />
- <meta name="DC.Publisher" content="Markus kohm" />
- <meta name="DC.Date" content="2022-06-03" />
- <meta name="DC.Type" content="Text" />
- <meta name="DC.Format" content="text/html" />
- <meta name="DC.Identifier" content="scrhack.html" />
- <meta name="DC.Language" content="en,de" />
- <meta name="DC.Relation" content="Link to documentation" />
- <meta name="DC.Coverage" content="Version since 3.00" />
- <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
- <title>Improving Third-Party Packages with scrhack</title>
- <style type="text/css">
- <!--
- body {}
- #en { position:absolute; left:10px; width:45%; }
- #de { position:absolute; right:10px; width:45%; }
- #fn { position:absolute; bottom:0px; width:50%;
- border-top-width:1px; border-top-style:solid;
- font-size:x-small; }
- h1.right { text-align:right; }
- -->
- </style>
- </head>
- <body>
- <h1>Improving Third-Party Packages with <tt>scrhack</tt></h1>
- <h1 class="right">Fremdpakete verbessern mit <tt>scrhack</tt></h1>
- <div id="en">
- I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.16">“Improving Third-Party Packages with <tt>scrhack</tt>”</a> in the
- KOMA-Script documentation.
- </div>
- <div id="de">
- Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.16">„Fremdpakete verbessern mit <tt>scrhack</tt>”</a> in der
- KOMA-Script-Anleitung.
- </div>
- <div id="fn">
- Markus Kohm, 2022-06-03
- <p><a
- href="http://validator.w3.org/check?uri=referer"><img
- src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
- height="31" width="88" /></a></p>
- </div>
- </body>
-</html>
-
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-de.tex b/macros/latex/contrib/koma-script/doc/scrjura-de.tex
index aa8dc88922..f2da6d3998 100644
--- a/macros/latex/contrib/koma-script/doc/scrjura-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrjura-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrjura-de.tex
-% Copyright (c) Markus Kohm, 2011-2023
+% Copyright (c) Markus Kohm, 2011-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,1247 +24,51 @@
% ======================================================================
\KOMAProvidesFile{scrjura-de.tex}%
- [$Date: 2023-04-16 13:50:16 +0200 (So, 16. Apr 2023) $
+ [$Date: 2024-10-15 10:33:25 +0200 (Di, 15. Okt 2024) $
KOMA-Script guide (chapter: scrjura)]
\chapter{Unterstützung für die Anwaltspraxis durch \Package{scrjura}}
\labelbase{scrjura}
\BeginIndexGroup
\BeginIndex{Package}{scrjura}
-
-Will man einen Vertrag\Index{Vertraege=Verträge}, die Satzung einer
-Gesellschaft oder eines Vereins, ein Gesetz oder gleich einen
-Gesetzeskommentar schreiben, so übernimmt das Paket \Package{scrjura} den
-typografischen Teil der Unterstützung für diese Tätigkeit. Obwohl
-\Package{scrjura} als allgemeine Hilfe für anwaltliche Schriftstücke angedacht
-ist, hat sich gezeigt, dass der Vertrag dabei ein ganz zentrales Element
-ist. Besonderes Augenmerk gilt hier dem
-Paragraphen\Index{Paragraphen>juristische} mit Nummer, Titel, nummerierten
-Absätzen -- falls es mehrere davon in einem Paragraphen gibt --, bedarfsweise
-nummerierten Sätzen, Einträgen in das Inhaltsverzeichnis und Querverweisen in
-den deutschen Gepflogenheiten entsprechenden Formen.
-
-Das Paket ist in Zusammenarbeit mit Rechtsanwalt Dr.\,Alexander Willand,
-Karlsruhe, entstanden. Viele der Möglichkeiten gehen außerdem auf konstruktive
-Nachfragen von Prof.\,Heiner Richter von der Hochschule Stalsund zurück.
-
-\iffalse % Umbruchkorrektur
-Es ist zu beachten, dass das Paket mit
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
-zusammenarbeitet. %
-\else%
-Das Paket arbeitet auch mit
-\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
-zusammen. %
-\fi%
-Es ist dabei jedoch wichtig, dass \Package{hyperref} wie üblich nach
-\Package{scrjura} geladen wird!
-
-\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl}
-
-\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
-
-\section{Verzeichnisse}
-\seclabel{toc}
-
-Die Überschriften juristischer Paragraphen können auf Wunsch automatisch
-ins Inhaltsverzeichnis eingetragen
-werden. Dazu\ChangedAt{v3.27}{\Package{scrjura}} definiert das Paket mit Hilfe
-von \DescRef{tocbasic.cmd.DeclareTOCStyleEntry} (siehe
-\autoref{sec:tocbasic.tocstyle} ab
-\DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry})\IndexCmd{DeclareTOCStyleEntry}
-die Verzeichnisebene \PValue{cpar}.
-
-\begin{Declaration}
- \OptionVName{juratotoc}{Ein-Aus-Wert}
- \OptionVName{juratotoc}{Ebenennummer}
-\end{Declaration}
-Im Inhaltsverzeichnis angezeigt werden
-Paragraphen\Index{Paragraphen>juristische} nur, wenn ihre \PName{Ebenennummer}
-kleiner oder gleich dem Zähler \DescRef{maincls.counter.tocdepth}%
-\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} ist
-(siehe \autoref{sec:maincls.toc},
-\DescPageRef{maincls.counter.tocdepth}). Voreingestellt\textnote{Voreinstellung}
-ist für \PName{Ebenennummer} der Wert \Length{maxdimen}, der auch verwendet
-wird, wenn die Option über einen
-\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{false}} (siehe
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
-ausgeschaltet wird. Da der Zähler \DescRef{maincls.counter.tocdepth}
-üblicherweise einen kleinen, einstelligen Wert besitzt, werden die
-Paragraphen-Einträge im Inhaltsverzeichnis daher normalerweise nicht
-angezeigt.
-
-Wird die Option hingegen über einen
-\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{true}} eingeschaltet,
-so wird als \PName{Ebenennummer} 2 voreingestellt. Damit werden sie in
-Inhaltsverzeichnissen bei allen \KOMAScript-Klassen auf derselben Ebene wie
-\DescRef{maincls.cmd.subsection}\IndexCmd{subsection}%
-\important{\DescRef{maincls.cmd.subsection}} eingeordnet. In der
-Voreinstellung von \DescRef{maincls.counter.tocdepth} werden sie dann auch bei
-allen \KOMAScript-Klassen im Inhaltsverzeichnis angezeigt.
-
-Intern\ChangedAt{v3.27}{\Package{scrjura}} führt die Verwendung der Option zu
-einem erneuten Aufruf von
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-mit dem \PName{Stil} \PValue{default} und entsprechender Einstellung für
-\Option{level} in der \PName{Optionenlist}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratocindent}{Einzug}
- \OptionVName{juratocnumberwidth}{Nummernbreite}
-\end{Declaration}
-Mit diesen beiden Optionen kann für die Einträge der Paragraphen ins
-Inhaltsverzeichnis sowohl der Einzug als auch die Breite, die für Nummern
-reserviert wird, festgelegt werden. Voreingestellt\textnote{Voreinstellung}
-sind dieselben Werte wie für
-\DescRef{maincls.cmd.subsection}-Einträge\IndexCmd{subsection}%
-\important{\DescRef{maincls.cmd.subsection}} bei \Class{scrartcl}, also
-\OptionValue{juratocindent}{1.5em} und \OptionValue{juratocnumberwidth}{2em}.
-
-Intern\ChangedAt{v3.27}{\Package{scrjura}} führt die Verwendung der Optionen
-zu einem erneuten Aufruf von
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry} mit
-dem \PName{Stil} \PValue{default} und \OptionVName{indent}{Einzug}
-beziehungsweise \OptionVName{numwidth}{Nummernbreite} in der
-\PName{Optionenlist}.%
-\EndIndexGroup
-
-
-\section{Umgebung für Verträge}
-\seclabel{contract}
-
-\BeginIndexGroup
-\BeginIndex{}{Vertraege=Verträge}
-Die wesentlichen Mechanismen von \Package{scrjura} stehen ausschließlich
-innerhalb von Verträgen der zugehörigen Umgebung zur Verfügung.
-
-\begin{Declaration}
- \begin{Environment}{contract}\end{Environment}
-\end{Declaration}
-Dies ist die erste und bisher einzige Umgebung für Juristen, die
-\Package{scrjura} bereitstellt. Durch ihre Verwendung wird die automatische
-Absatznummerierung aktiviert und die Anweisungen
-\DescRef{\LabelBase.cmd.Clause} und \DescRef{\LabelBase.cmd.SubClause} mit
-einer konkreten Form versehen, die später näher dokumentiert wird.
-
-Die\textnote{Achtung!} Umgebung \Environment{contract} darf nicht in sich
-selbst geschachtelt werden. Innerhalb eines Dokuments dürfen jedoch mehrere
-dieser Umgebungen verwendet werden. Dabei werden die Paragraphen innerhalb
-dieser Umgebungen so behandelt, als stünden sie innerhalb einer einzigen
-Umgebung. Durch das Beenden der Umgebung wird diese also quasi
-unterbrochen und durch den Beginn einer neuen Umgebung wird sozusagen die alte
-Umgebung fortgesetzt. Dabei sind allerdings keine Unterbrechungen innerhalb
-eines Paragraphen möglich.
-
-Sollten Sie stattdessen Umgebungen für voneinander unabhängige Verträgen
-innerhalb desselben Dokuments benötigen, so sei auf die Möglichkeit der
-Definition weiterer Vertragsumgebungen mit
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} in
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}) verwiesen.%
-\EndIndexGroup
-
-\begin{Declaration}
- \Option{contract}
-\end{Declaration}
-Durch Angabe dieser Option beim Laden des Pakets, beispielsweise mit
-\DescRef{\LabelBase.cmd.usepackage}%
-\important{\DescRef{\LabelBase.cmd.usepackage}} oder als globale Option bei
-\DescRef{\LabelBase.cmd.documentclass}%
-\important{\DescRef{\LabelBase.cmd.documentclass}}, wird das gesamte Dokument
-zu einem Vertrag. Das Dokument verhält sich dann also genauso, als würde es
-genau eine \DescRef{\LabelBase.env.contract}-Umgebung enthalten.
-
-Es\textnote{Achtung!} wird darauf hingewiesen, dass Option \Option{contract}
-weder mit \DescRef{\LabelBase.cmd.KOMAoption} noch
-\DescRef{\LabelBase.cmd.KOMAoptions} gesetzt werden kann! Damit ist es auch
-nicht möglich die Option wieder abzuschalten. Außerdem würde mit der Option
-beispielsweise ein Dokumenttitel innerhalb der Vertragsumgebung
-gesetzt werden, was zu vermeiden ist. Verwenden Sie in solchen Fällen
-besser eine explizite \DescRef{\LabelBase.env.contract}-Umgebung.%
-\EndIndexGroup
-
-
-\subsection{Juristische Paragraphen}
-\label{sec:scrjura.clause}
-\BeginIndexGroup
-\BeginIndex{}{Paragraphen>juristische}
-
-Paragraphen im juristischen Sinn sind bei \Package{scrjura} nur innerhalb von
-Verträgen, also innerhalb der Umgebung \DescRef{\LabelBase.env.contract} oder
-weiteren mit \DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (siehe
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}) erstellten Umgebungen,
-definiert. Um Verwechslungen\textnote{Hinweis!} von juristischen Paragraphen
-mit Gliederungsbefehlen für typografische Paragraphen oder Abschnitte zu
-vermeiden, leiten sich die Bezeichnungen von \Package{scrjura} nicht vom dem
-eigentlich korrekten englischen Begriff »\emph{section}«, sondern von
-»\emph{clause}« ab.
-
-\begin{Declaration}
- \phantomsection\label{desc:scrjura.contract.macro.Clause}%
- \Macro{Clause}\Parameter{Einstellungen}
- \phantomsection\label{desc:scrjura.contract.macro.SubClause}%
- \Macro{SubClause}\Parameter{Einstellungen}
-\end{Declaration}
-Dies sind die wichtigsten Anweisungen innerhalb eines Vertrags. Ohne
-zusätzliche \PName{Einstellungen} erzeugt \Macro{Clause} eine
-Paragraphenüberschrift, die nur aus dem Paragraphenzeichen, gefolgt von einer
-fortlaufenden Nummer besteht. Dagegen erzeugt \Macro{SubClause} eine
-Paragraphenüberschrift, bei der an die zuletzt mit \Macro{Clause} gesetzte
-Nummer noch ein fortlaufender Kleinbuchstabe angehängt wird. Gedacht ist
-\Macro{SubClause} vor allem für den Fall, dass bei der Novellierung von
-Gesetzen oder Verträgen nicht nur Paragraphen umformuliert oder gestrichen
-werden, sondern zwischen existierenden Paragraphen neue eingefügt werden, ohne
-dass eine komplett neue Nummerierung erfolgt. Bezüglich der generellen
-Formatierung oder beispielsweise der Erzeugung von Inhaltsverzeichniseinträgen
-wird jedoch nicht zwischen \Macro{Clause} und \Macro{SubClause} unterschieden.
-
-Als \PName{Einstellungen} kann bei beiden Anweisungen eine durch Komma
-separierte Liste von Eigenschaften angegeben werden. Eine Übersicht über die
-möglichen Eigenschaften bietet \autoref{tab:scrjura.Clause.options}. Auf die
-wichtigsten soll noch näher eingegangen werden.%
-\begin{table}
- \caption{Mögliche Eigenschaften für die optionalen Argumente der Anweisungen
- \Macro{Clause} und \Macro{SubClause}}
- \label{tab:scrjura.Clause.options}
- \begin{desctabular}
- \entry{\Option{dummy}}{%
- Die Überschrift wird nicht gesetzt, aber gezählt.%
- }\\[-1.7ex]
- \entry{\OptionVName{head}{Kolumnentitel}}{%
- Sind Kolumnentitel aktiviert, wird unabhängig von einem Titel für den
- Paragraphen dieser Kolumnentitel verwendet.%
- }\\[-1.7ex]
- \entry{\Option{nohead}}{%
- Es wird kein neuer Kolumnentitel gesetzt.%
- }\\[-1.7ex]
- \entry{\Option{notocentry}}{%
- Es wird kein Eintrag ins Inhaltsverzeichnis vorgenommen.%
- }\\[-1.7ex]
- \entry{\OptionVName{number}{Nummer}}{%
- Die Nummer für den Paragraphen wird direkt angegeben.%
- }\\[-1.7ex]
- \entry{\OptionVName{preskip}{Abstand}}{%
- Neuer Abstand vor den Überschriften der Paragraphen.%
- }\\[-1.7ex]
- \entry{\OptionVName{postskip}{Abstand}}{%
- Neuer Abstand nach den Überschrift der Paragraphen.%
- }\\[-1.7ex]
- \entry{\OptionVName{title}{Überschrift}}{%
- Der Paragraph wird zusätzlich zur Nummer mit einem Titel versehen. Dies
- ist gleichzeitig die Grundeinstellung für die Einträge in den
- Kolumnentitel und das Inhaltsverzeichnis.%
- }\\[-1.7ex]
- \entry{\OptionVName{tocentry}{Inhaltsverzeichniseintrag}}{%
- Unabhängig von einem Titel für den Paragraphen wird dieser Eintrag ins
- Inhaltsverzeichnis vorgenommen.%
- }%
- \end{desctabular}
-\end{table}
-
-In der Voreinstellung\textnote{Voreinstellung} wird vor der Überschrift ein
-Abstand von zwei Zeilen und danach ein Abstand von einer Zeile eingefügt. Über
-die Eigenschaften \Option{preskip}\important[i]{\Option{preskip},
- \Option{postskip}} und \Option{postskip} kann dieser Abstand verändert
-werden. Die neue Einstellung gilt dann aber nicht nur für den aktuellen
-Paragraphen, sondern ab dem aktuellen Paragraphen bis zum Ende der aktuellen
-Umgebung. Es ist auch möglich, die entsprechende Einstellung bereits vorab mit
-Hilfe von
-\begin{lstcode}[escapeinside=><]
- \setkeys{contract}{preskip=>\PName{Abstand}<,postskip=>\PName{Abstand}<}
-\end{lstcode}
-unabhängig von einem konkreten Paragraphen, außerhalb einer
-\DescRef{\LabelBase.env.contract}-Umgebung vorzunehmen. Auch das Setzen
-innerhalb der Präambel nach dem Laden von \Package{scrjura} ist so
-möglich. Dagegen ist es nicht möglich, diese beiden Optionen bereits beim
-Laden des Pakets anzugeben oder sie per \DescRef{\LabelBase.cmd.KOMAoptions}
-oder \DescRef{\LabelBase.cmd.KOMAoption} zu setzen.
-
-\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
-\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
-In der Voreinstellung\textnote{Voreinstellung} wird für die Überschrift des
-Paragraphen als Schrift \Macro{sffamily}\Macro{bfseries}\Macro{large}
-verwendet. Über das Element
-\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} kann
-diese Schrift jederzeit mit Hilfe der Anweisungen
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden. Innerhalb der \DescRef{\LabelBase.env.contract}-Umgebung kann
-statt \FontElement{contract.Clause} auch
-\FontElement{Clause}\important{\FontElement{Clause}} verwendet werden.%
-\EndIndex{FontElement}{Clause}%
-\EndIndex{FontElement}{contract.Clause}
-
-Mit Hilfe der Einstellungen \Option{title}\important[i]{\Option{title},
- \Option{head}, \Option{tocentry}}, \Option{head} und \Option{tocentry}
-können Paragraphen zusätzlich zur Nummer mit einem Titel versehen
-werden. Dabei\textnote{Achtung!} wird empfohlen, den Wert der jeweiligen
-Eigenschaft in geschweifte Klammern zu setzen. Anderenfalls führen
-beispielsweise Kommata zu Verwechslungen mit den Trennzeichen zwischen
-unterschiedlichen Eigenschaften. Leere Werte für \Option{head} und
-\Option{tocentry} führen zu leeren Einträgen. Will man hingegen keine Einträge
-vornehmen, so sind \Option{nohead}\important[i]{\Option{nohead},
- \Option{notocentry}} und \Option{notocentry} zu verwenden.
-
-Statt der fortlaufenden Nummer kann mit Hilfe der Eigenschaft
-\Option{number}\important{\Option{number}} auch manuell eine Nummer vergeben
-werden. Dies hat jedoch keinen Einfluss auf die Nummern der nachfolgenden
-Paragraphen. Die Angabe einer leeren Nummer ist nicht
-vorgesehen. Zerbrechliche Anweisungen in \PName{Nummer} sollten mit
-\Macro{protect} geschützt werden. Es\textnote{Achtung!} wird empfohlen als
-\PName{Nummer} nur Ziffern und Buchstaben anzugeben.
-
-Mit der Eigenschaft \Option{dummy}\important{\Option{dummy}} kann man die
-Ausgabe der kompletten Überschrift des Paragraphen unterdrücken. In der
-automatischen Zählung wird der Paragraph aber dennoch berücksichtigt. Auf
-diese Weise kann man beispielsweise\textnote{Beispiel} mit
-\begin{lstcode}
- \Clause{dummy}
-\end{lstcode}
-einen Paragraphen in der automatischen Zählung überspringen, falls der
-entsprechende Paragraph in einer späteren Fassung eines Vertrags gestrichen
-wurde.
-
-Es\textnote{Achtung!} ist zu beachten, dass die Eigenschaft \Option{dummy} als
-Wert allenfalls \PValue{true} und \PValue{false} versteht. Andere Werte
-können zu einer Fehlermeldung führen.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{Clauseformat}\Parameter{Nummer}
-\end{Declaration}
-Wie bereits in der vorausgehenden Erklärung erwähnt, werden juristische
-Paragraphen und Unterparagraphen normalerweise nummeriert. Die Formatierung
-der Nummer erfolgt dabei mit Hilfe der Anweisung \Macro{Clauseformat}, die als
-einziges Argument die Nummer erwartet. Bei der
-Vordefinierung\textnote{Voreinstellung} als
-\begin{lstcode}
- \newcommand*{\Clauseformat}[1]{\S~#1}
-\end{lstcode}
-wird der Nummer mit \Macro{S}\IndexCmd{S} lediglich das Paragraphensymbol,
-gefolgt von einem nicht trennbaren Leerzeichen
-vorangestellt. Bei\textnote{Achtung!} Umdefinierungen ist auf die
-Expandierbarkeit zu achten!%
+\BeginIndex{Package}{contract}
+
+Bis einschließlich Version~3.41 enthielt \KOMAScript{} offiziell das Paket
+\Package{scrjura} zur Unterstützung anwaltlicher Dokumente. Dabei ging es vor
+allem um Satzungen, Gesetze, Kommentare dazu oder im weitesten Sinn um
+Verträge alle Art. Im Zuge der Restrukturierung von \KOMAScript{} wurde das
+Paket ausgelagert. Da der Vertrag das zentrale Element des Pakets ist, bekam
+es dabei den neuen Namen \Package{contract}. Unter diesem Namen ist es nicht
+nur auf CTAN zu finden (siehe \cite{package:contract}). Es wurde auch bereits
+in gängige \TeX-Distributionen aufgenommen und kann daher über deren
+Paketmanager installiert werden.
+
+Aus Kompatibilitätsgründen wird es für eine begrenzte Zeit in \KOMAScript{}
+weiterhin ein Paket \Package{scrjura} geben. Dabei handelt es sich aber
+lediglich um eine andere Verpackung des neuen Pakets \Package{contract}, bei
+dem ein Teil der Inkompatibilitäten zwischen dem neuen Paket und dem früheren
+\Package{scrjura} bereinigt wurden. Damit sollte es in der Regel möglich sein,
+bisherige Dokumente auf Basis von \Package{scrjura} weiterhin zu
+verarbeiten. Für neue Dokumente wird unbedingt empfohlen, stattdessen zu
+\Package{contract} zu wechseln. Bei der Überarbeitung alter Dokumente ist eine
+Umstellung ebenfalls zu empfehlen. Für die dabei zu berücksichtigenden
+Änderungen sind die Angaben in der Anleitung zum Paket \Package{contract}
+maßgeblich.
+
+\begin{Declaration}
+ \Macro{Clause}\Parameter{Optionen}%
+ \Macro{SubClause}\Parameter{Optionen}
+\end{Declaration}
+Der wichtigste Unterschied bei Verwendung von \Package{scrjura} gegenüber
+\Package{contract} ist, dass die \PName{Optionen} zu den beiden Anweisungen
+\Macro{Clause} und \Macro{SubClause} innerhalb einer
+\Environment{contract}-Umgebung bei \Package{contract} ein optionales Argument
+darstellen, also in eckigen Klammern anzugeben sind. Beim Paket
+\Package{scrjura} waren die \PName{Optionen} hingegen immer ein erforderliches
+Argument also in geschweiften Klammern anzugeben. Das ist mit
+\Package{scrjura} auch weiterhin der Fall.%
\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratitlepagebreak}{Ein-Aus-Wert}
-\end{Declaration}%
-Normalerweise sind Seitenumbrüche innerhalb von Überschriften aller Art
-verboten. Einige Juristen benötigen jedoch Seitenumbrüche innerhalb von
-Paragraphentiteln. Daher kann ein solcher Umbruch mit
-\Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}} erlaubt
-werden. Die möglichen Einstellungen für \PName{Ein-Aus-Wert} sind
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu
-entnehmen.
-
-Bitte beachten Sie\textnote{Achtung!}, dass es sich hier nicht um eine Option
-für \DescRef{\LabelBase.cmd.Clause} oder \DescRef{\LabelBase.cmd.SubClause},
-sondern um eine \KOMAScript-Option handelt. Außer beim Laden des Pakets kann
-sie auch jederzeit mit \DescRef{\LabelBase.cmd.KOMAoptions} oder
-\DescRef{\LabelBase.cmd.KOMAoption} geändert werden und gilt dann bis zum Ende
-der aktuellen Umgebung.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{clausemark}{Einstellung}
-\end{Declaration}%
-Da Paragraphen eine untergeordnete Gliederung mit unabhängiger Nummerierung
-sind, erzeugen sie in der Voreinstellung\textnote{Voreinstellung} keine
-Kolumnentitel. Über alternative Einstellungen können jedoch auch Kolumnentitel
-erzeugt werden. Die möglichen Werte und ihre Bedeutung sind
-\autoref{tab:scrjura.clausemark} zu entnehmen.%
%
-\begin{table}
- \caption{Mögliche Werte für Option \Option{clausemark} zur Erzeugung von
- Kolumnentiteln durch Paragraphen}
- \label{tab:scrjura.clausemark}%
- \begin{desctabular}
- \entry{\PValue{both}}{%
- Paragraphen erzeugen linke und rechte Marken für Kolumnentitel, wenn das
- Dokument die Verwendung von lebenden Kolumnentiteln vorsieht.%
- \IndexOption{clausemark~=\textKValue{both}}%
- }\\[-1.7ex]
- \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
- Paragraphen erzeugen keine Kolumnentitel.%
- \IndexOption{clausemark~=\textKValue{false}}%
- }\\[-1.7ex]
- \entry{\PValue{forceboth}}{%
- Paragraphen erzeugen mit \DescRef{maincls.cmd.markboth} linke und rechte
- Marken für Kolumnentitel unabhängig davon, ob das Dokument
- beispielsweise über den Seitenstil überhaupt lebende Kolumnentitel
- verwendet.%
- \IndexOption{clausemark~=\textKValue{forceboth}}%
- }\\[-1.7ex]
- \entry{\PValue{forceright}}{%
- Paragraphen erzeugen mit \DescRef{maincls.cmd.markright} rechte Marken
- für Kolumnentitel unabhängig davon, ob das Dokument beispielsweise über
- den Seitenstil überhaupt lebende Kolumnentitel verwendet.%
- \IndexOption{clausemark~=\textKValue{forceright}}%
- }\\[-1.7ex]
- \entry{\PValue{right}}{%
- Paragraphen erzeugen rechte Marken für Kolumnentitel, wenn das Dokument
- die Verwendung von lebenden Kolumnentiteln vorsieht.%
- \IndexOption{clausemark~=\textKValue{right}}%
- }%
- \end{desctabular}
-\end{table}
-
-Bitte beachten Sie\textnote{Achtung!}, dass es sich hier nicht um eine Option
-für \DescRef{\LabelBase.cmd.Clause} oder \DescRef{\LabelBase.cmd.SubClause},
-sondern um eine \KOMAScript-Option handelt. Außer beim Laden des Pakets kann
-sie auch jederzeit mit \DescRef{\LabelBase.cmd.KOMAoptions} oder
-\DescRef{\LabelBase.cmd.KOMAoption} geändert werden und gilt dann bis zum Ende
-der aktuellen Umgebung.%
-\EndIndexGroup \EndIndexGroup
-
-\subsection{Absätze}
-\label{sec:scrjura.par}
-\BeginIndexGroup
-\BeginIndex{}{Absatz>Nummerierung}%
-Innerhalb von Paragraphen werden Absätze von \Package{scrjura} normalerweise
-automatisch nummeriert. Sie sind damit ein stark gliederndes Element, ähnlich
-\DescRef{maincls.cmd.paragraph} oder \DescRef{maincls.cmd.subparagraph} in
-normalen Texten. Innerhalb von Verträgen wird deshalb häufig auch gerne mit
-Abstand zwischen den Absätzen gearbeitet. Das Paket \Package{scrjura} bietet
-keinen eigenen Mechanismus hierfür. Stattdessen sei auf die Option
-\DescRef{maincls.option.parskip}%
-\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} der
-\KOMAScript-Klassen verwiesen (siehe \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-\begin{Declaration}
- \OptionVName{parnumber}{Einstellung}
-\end{Declaration}
-Die automatische\textnote{Voreinstellung} Nummerierung der Absätze entspricht
-den beiden Einstellungen \OptionValue{parnumber}{auto} und
-\OptionValue{parnumber}{true}. Manchmal ist es notwendig, die automatische
-Nummerierung abzuschalten. Das ist mit \OptionValue{parnumber}{false}%
-\important{\OptionValue{parnumber}{false}}%
-\IndexOption{parnumber~=\textKValue{false}} möglich. In diesem Fall wird nur die
-Satznummer automatisch zurückgesetzt.
-
-Zur Realisierung dieser Option war es notwendig, in den Absatzmechanismus von
-\LaTeX{} einzugreifen. In einigen seltenen Fällen kann sich das negativ
-auswirken. Dann bleibt nur, diese Änderung mit
-\OptionValue{parnumber}{manual}%
-\important{\OptionValue{parnumber}{manual}}%
-\IndexOption{parnumber~=\textKValue{manual}} zurückzunehmen. Umgekehrt hebt
-\LaTeX{} selbst den Eingriff manchmal auf. In diesem Fällen kann er mit
-\OptionValue{parnumber}{auto}%
-\important{\OptionValue{parnumber}{auto}}%
-\IndexOption{parnumber~=\textKValue{auto}} erneut aktiviert werden.
-
-Paragraphen, die nur aus einem einzigen Absatz bestehen, werden normalerweise
-nicht automatisch nummeriert. Damit dies funktioniert, dürfen sich keine zwei
-Paragraphen mit identischer Nummer in einem Dokument befinden. Sollten Sie
-dies dennoch einmal benötigen, weichen Sie bitte auf eine weitere
-Vertragsumgebung aus (siehe
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}). Da\textnote{Achtung!}
-die Information erst am Ende eines Paragraphen zur Verfügung steht, werden in
-der Regel zwei \LaTeX-Läufe benötigt, bis die automatische Absatznummerierung
-korrekt erfolgt.%
-\EndIndexGroup
-
-\begin{Declaration}
- \Counter{par}
- \Macro{thepar}
- \Macro{parformat}
- \Macro{parformatseparation}
-\end{Declaration}%
-Für die Nummerierung der Absätze wird der Zähler \Counter{par}
-verwendet. Seine Darstellung \Macro{thepar} ist mit
-\Macro{arabic}\PParameter{par} als arabische Zahl
-voreingestellt. Die\textnote{Voreinstellung} Ausgabe als automatische
-Absatznummer erfolgt mit \Macro{parformat}. Dabei wird \Macro{thepar} in runde
-Klammern gesetzt. Will man einem Absatz manuell eine Absatznummer
-voranstellen, so sollte das ebenfalls mit \Macro{parformat} geschehen. Dabei
-ist es sinnvoll, auf \Macro{parformat} noch \Macro{parformatseparation} oder
-zumindest ein nicht trennbares Leerzeichen mit
-\Macro{nobreakspace}\IndexCmd{nobreakspace} oder der Tilde folgen zu lassen.
-
-Bei\ChangedAt{v0.7}{\Package{scrjura}} der automatischen Nummerierung wird
-\Macro{parformat} ebenfalls noch \Macro{parformatseparation} als Trennzeichen
-angehängt. Voreinstellt\textnote{Voreinstellung} ist derzeit mit
-\Macro{nobreakspace}\IndexCmd{nobreakspace} ein nicht umbrechbarer
-Wortabstand.
-
-\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
-Die Absatznummer wird normalerweise\textnote{Voreinstellung} in der
-aktuellen Schrift gesetzt. Diese Voreinstellung für das Element
-\FontElement{parnumber} kann jederzeit mit Hilfe der Anweisungen
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden.%
-\EndIndex{FontElement}{parnumber}%
-
-Es\textnote{Achtung!} wird darauf hingewiesen, dass \Package{scrjura} intern
-davon ausgeht, dass \Macro{thepar} eine arabische Zahl ist. Daher sollte
-diese Anweisung keinesfalls umdefiniert werden!%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{withoutparnumber}
-\end{Declaration}
-Wird keine Absatznummer ausgegeben, wird am Anfang des Absatzes ersatzweise
-die Anweisung \Macro{withoutparnumber} lokal
-ausgeführt. Diese\textnote{Voreinstellung} ist in der Voreinstellung leer, tut
-also weiter nichts. Sie wurde auf speziellen Wunsch in \Package{scrjura}
-eingebaut, ist für den normalen Anwender aber ohne Belang.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{ellipsispar}\OParameter{Anzahl}
- \Macro{parellipsis}
-\end{Declaration}
-Manchmal\ChangedAt{v0.7}{\Package{scrjura}} -- insbesondere in vergleichenden
-Kommentaren -- ist es wünschenswert, wenn man Absätze in Gesetzen auslassen,
-aber gleichzeitig die Auslassung\Index{Absatz>Auslassung} markieren kann. Die
-Absätze sollen dann auch in der Zählung der übrigen Absätze berücksichtigt
-werden. Das Paket \Package{scrjura} stellt dafür die Anweisung
-\Macro{ellipsispar} bereit.
-
-In der Voreinstellung\textnote{Voreinstellung} lässt \Macro{ellipsispar} genau
-einen Absatz aus. Über das optionale Argument \PName{Anzahl} können jedoch
-auch mehrere Absätze ausgelassen werden. In jedem Fall erscheint in der
-Ausgabe stattdessen genau ein nicht nummerierter Absatz, der nur die
-Auslassungszeichen \Macro{parellipsis} enthält. Bei der Entscheidung für eine
-automatische Nummerierung der übrigen Absätze eines juristischen Paragraphen
-werden die ausgelassenen Absätze jedoch mitgezählt. Dies gilt ebenso für die
-Nummern etwaiger nachfolgender Absätze.
-\begin{Example}
- Angenommen, Sie kommentieren das Strafgesetzbuch, wollen aber in \S~2 nur
- Absatz~3 kommentieren. Dennoch soll auf die übrigen Absätze indirekt
- hingewiesen werden. Sie erreichen das beispielsweise mit:
-\begin{lstcode}
- \documentclass[parskip=half]{scrartcl}
- \usepackage{scrjura}
- \begin{document}
- \begin{contract}
- \Clause{title={Zeitliche Geltung},number=2}
- \ellipsispar[2]
-
- Wird das Gesetz, das bei Beendigung der Tat
- gilt, vor der Entscheidung geändert, so ist
- das mildeste Gesetz anzuwenden.
-
- \ellipsispar[3]
- \end{contract}
- \end{document}
-\end{lstcode}
- Wenn\textnote{Achtung!} Sie dieses Beispiel ausprobieren wollen, verwenden
- Sie bitte eine \LaTeX-Version ab 2018-04-01 und einen Editor mit der
- Codierungseinstellung UTF-8. Dies ist bei aktuellen \TeX-Distributionen und
- aktuellen \LaTeX-Editoren die Voreinstellung. Bei Verwendung einer
- veralteten \TeX-Distribution oder einer anderen Einstellung des Editor,
- müssen Sie die verwendete Codierung mit Hilfe des Pakets
- \Package{inputenc}\IndexPackage{inputenc} deklarieren.%
-\end{Example}
-
-Die Auslassungszeichen sind so vordefiniert\textnote{Voreinstellung}, dass
-\Macro{textellipsis}\IndexCmd{textellipsis} verwendet wird, falls eine solche
-Anweisung definiert ist. Anderenfalls wird \Macro{dots}\IndexCmd{dots}
-verwendet. Eine Umdefinierung von \Macro{parellipsis} ist mit
-\Macro{renewcommand} jederzeit möglich.%
-\EndIndexGroup
-
-
-\subsection{Sätze}
-\label{sec:scrjura.sentence}
-
-\BeginIndexGroup%
-\BeginIndex{}{Satz>Nummerierung}%
-Absätze in Verträgen bestehen aus einem oder mehreren Sätzen, die teilweise
-ebenfalls nummeriert werden. Da eine automatische Nummerierung problematisch
-und fehleranfällig ist, wird nur eine halbautomatische Nummerierung
-unterstützt.
-
-\begin{Declaration}
- \Counter{sentence}
- \Macro{thesentence}
- \Macro{sentencenumberformat}
- \Macro{Sentence}
-\end{Declaration}
-Die Nummerierung von Sätzen erfolgt manuell mit der Anweisung
-\Macro{Sentence}. Dabei wird der Zähler \Counter{sentence} automatisch erhöht
-und in der Voreinstellung von
-\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} die arabische
-Zahl von \Macro{thesentence} hochgestellt ausgegeben.
-
-\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
-Die\ChangedAt{v3.26}{\Package{scrjura}} Satznummer wird
-normalerweise\textnote{Voreinstellung} in der aktuellen Schrift gesetzt. Diese
-Voreinstellung für das Element \FontElement{sentencenumber} kann mit
-Hilfe der Anweisungen \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} und
-\DescRef{\LabelBase.cmd.addtokomafont} (siehe
-\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
-geändert werden.%
-\EndIndex{FontElement}{sentencenumber}
-
-Bei\textnote{Tipp!} Verwendung von Paket
-\Package{babel}\IndexPackage{babel}\important{\Package{babel}} ist es einfach
-möglich, eine Abkürzung für \Macro{Sentence} zu definieren:%
-\phantomsection\label{sec:scrjura.shorthandexample}%
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \useshorthands{'}
- \defineshorthand{'S}{\Sentence\ignorespaces}
-\end{lstcode}
-Dabei werden Leerzeichen nach
-\lstinline|'S| ignoriert. Auch eine
-Abkürzung für einen Punkt, gefolgt von einer neuen Satznummer ist möglich:
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \defineshorthand{'.}{. \Sentence\ignorespaces}
-\end{lstcode}
-Näheres zu \Macro{useshorthands}\IndexCmd{useshorthands} und
-\Macro{defineshorthand}\IndexCmd{defineshorthands} ist der Anleitung zum Paket
-\Package{babel} zu entnehmen (siehe \cite{package:babel}). Ein
-Anwendungsbeispiel finden Sie in \autoref{sec:scrjura.example} ab
-\autopageref{sec:scrjura.example}.%
-\EndIndexGroup
-%
-\EndIndexGroup
-%
-\EndIndexGroup
-%
-\EndIndexGroup
-
-
-\section{Querverweise}
-\seclabel{ref}
-
-Für Paragraphen, Absätze und Sätze reicht der normale Mechanismus für
-Querverweise mit \Macro{label}\IndexCmd{label}\important{\Macro{label}},
-\Macro{ref} und \Macro{pageref} nicht mehr aus. Daher wird dieser von
-\Package{scrjura} um weitere Anweisungen ergänzt.
-
-\begin{Declaration}
- \Macro{ref}\Parameter{Label}
- \Macro{refL}\Parameter{Label}
- \Macro{refS}\Parameter{Label}
- \Macro{refN}\Parameter{Label}
-\end{Declaration}
-Die Anweisungen \Macro{refL}, \Macro{refS} und \Macro{refN}
-referenzieren Paragraph, Absatz und Satz immer vollständig. \Macro{refL}
-verwendet dabei eine textuelle Langform, während \Macro{refS} eine textuelle
-Kurzform bietet. \Macro{refN} ist eine rein numerische Kurzform. \Macro{ref}
-entspricht in der Voreinstellung\textnote{Voreinstellung} \Macro{refL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refSentence}\Parameter{Label}
- \Macro{refSentenceL}\Parameter{Label}
- \Macro{refSentenceS}\Parameter{Label}
- \Macro{refSentenceN}\Parameter{Label}
-\end{Declaration}
-Der Satz ohne Paragraph und Absatz kann mit \Macro{refSentenceL},
-\Macro{refSentenceS} oder \Macro{refSentenceN} referenziert werden. Auch hier
-gibt es wieder eine textuelle Langform, eine textuelle Kurzform und eine rein
-numerische Form. \Macro{refSentence} entspricht in der
-Voreinstellung\textnote{Voreinstellung} \Macro{refSentenceL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refPar}\Parameter{Label}
- \Macro{refParL}\Parameter{Label}
- \Macro{refParS}\Parameter{Label}
- \Macro{refParN}\OParameter{Zahlenformat}\Parameter{Label}
-\end{Declaration}
-Nur den Absatz kann man mit \Macro{refParL}, \Macro{refParS} und
-\Macro{refParN} referenzieren. Die Formen unterscheiden sich dabei wie bereits
-für \DescRef{\LabelBase.cmd.refL}, \DescRef{\LabelBase.cmd.refN} und
-\DescRef{\LabelBase.cmd.refS} angegeben. Eine Besonderheit stellt das
-optionale Argument von \Macro{refParN} dar. Normalerweise werden Absätze in
-rein numerischer Form als römische Zahlen referenziert. Über das optionale
-Argument kann jedoch auch ein anderes Format vorgegeben werden. Sinnvoll ist
-hier in erster Linie das \PValue{Zahlenformat} \PValue{arabic} für eine
-arabische Absatznummer. \Macro{refPar} entspricht in der
-Voreinstellung\textnote{Voreinstellung} \Macro{refParL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refClause}\Parameter{Label}
- \Macro{refClauseN}\Parameter{Label}
-\end{Declaration}
-Für die Referenzierung von Paragraphen ohne Absatz und Satz, unterscheiden
-sich \Macro{refClause} und \Macro{refClauseN} nur darin, dass ersteres
-automatisch ein Paragraphenzeichen voran stellt.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{ref}{Einstellung}
-\end{Declaration}
-Die Ergebnisse von \DescRef{\LabelBase.cmd.ref},
-\DescRef{\LabelBase.cmd.refPar} und \DescRef{\LabelBase.cmd.refSentence} sind
-von der \PName{Einstellung} für Option \Option{ref} abhängig. In der
-Voreinstellung\textnote{Voreinstellung} entsprechen diese
-\DescRef{\LabelBase.cmd.refL}, \DescRef{\LabelBase.cmd.refParL} und
-\DescRef{\LabelBase.cmd.refSentenceL}. Mögliche Werte und ihre Bedeutung sind
-\autoref{tab:scrjura.ref} zu entnehmen.%
-%
-\begin{table}
-%\begin{desclist}
-% \desccaption
- \caption[{%
- Mögliche Werte für Option \Option{ref} zur Einstellung der
- Referenzierungsformate%
- }]{%
- Mögliche Werte für Option \Option{ref} zur Einstellung des Formats von
- \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar} und
- \DescRef{\LabelBase.cmd.refSentence}%
- \label{tab:scrjura.ref}%
- }%
-% {%
-% Mögliche Werte für Option \Option{ref} \emph{(Fortsetzung)}%
-% }%
- \begin{desctabular}
- \entry{\PValue{long}}{%
- Die Einstellungen \PValue{parlong} und \PValue{sentencelong} werden
- kombiniert.%
- \IndexOption{ref~=\textKValue{long}}%
- }\\[-1.7ex]
- \entry{\PValue{numeric}}{%
- Die Einstellungen \PValue{parnumeric} und \PValue{sentencenumeric}
- werden kombiniert.%
- \IndexOption{ref~=\textKValue{numeric}}%
- }\\[-1.7ex]
- \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
- \PValue{OnlyClause}}{%
- Die Einstellungen \PValue{paroff} und \PValue{sentenceoff} werden
- kombiniert. Es ist zu beachten, dass dadurch sowohl
- \DescRef{\LabelBase.cmd.refPar} als auch
- \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugen!%
- \IndexOption{ref~=\textKValue{long}}%
- }\\[-1.7ex]
- \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
- Der Absatz wird in der textuellen Langform referenziert.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }\\[-1.7ex]
- \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
- Der Absatz wird in der rein numerischen Form referenziert.%
- \IndexOption{ref~=\textKValue{parnumeric}}%
- }\\[-1.7ex]
- \entry{\PValue{paroff}, \PValue{nopar}}{%
- Der Absatz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
- \DescRef{\LabelBase.cmd.refPar} ein leeres Ergebnis erzeugt!%
- \IndexOption{ref~=\textKValue{paroff}}%
- }\\[-1.7ex]
- \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
- Der Absatz wird in der textuellen Kurzform referenziert.%
- \IndexOption{ref~=\textKValue{parshort}}%
- }\\[-1.7ex]
- \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
- Der Satz wird in der textuellen Langform referenziert.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }\\[-1.7ex]
- \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
- \PValue{SentenceN}}{%
- Der Satz wird in der rein numerischen Form referenziert.%
- \IndexOption{ref~=\textKValue{sentencenumeric}}%
- }\\[-1.7ex]
- \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
- Der Satz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
- von \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugt
- wird!%
- \IndexOption{ref~=\textKValue{sentenceoff}}%
- }\\[-1.7ex]
- \entry{\PValue{sentenceshort}, \PValue{shortsentence},
- \PValue{SentenceS}}{%
- Der Satz wird in der textuellen Kurzform referenziert.%
- \IndexOption{ref~=\textKValue{sentenceshort}}%
- }\\[-1.7ex]
- \entry{\PValue{short}}{%
- Die Einstellungen \PValue{parshort} und \PValue{sentenceshort} werden
- kombiniert.%
- \IndexOption{ref~=\textKValue{short}}%
- }%
-\end{desctabular}
-\end{table}
-
-\begin{Example}
- Angenommen, Sie wollen, dass auf Absätze immer in der Form »Absatz 1 in
- Paragraph 1« verwiesen wird. Da es hierfür keine vordefinierte Anweisung
- gibt, müssen Sie sich Ihre eigene Definition aus den vorhanden Möglichkeiten
- zusammenbauen. Dies können Sie mit%
-\begin{lstcode}
- \newcommand*{\refParM}[1]{%
- Absatz~\refParN[arabic]{#1}
- in Paragraph~\refClauseN{#1}%
- }
-\end{lstcode}
- sehr einfach erreichen. Die so neu definierte Anweisung ist genau wie
- \DescRef{\LabelBase.cmd.refParL} zu verwenden.%
-\end{Example}%
-
-Beispiele für die Ergebnisse der nicht konfigurierbaren, grundlegenden
-Anweisungen finden sich in \autoref{tab:scrjura.refexamples}.
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}{Beispielausgaben der von Option \Option{ref}
- unabhängigen Anweisungen für Querverweise}[l]
- \begin{tabular}[t]{ll}
- \toprule
- Anweisung & Beispielausgabe \\
- \midrule
- \DescRef{\LabelBase.cmd.refL}\Parameter{Label} & § 1 Absatz 1 Satz 1 \\
- \DescRef{\LabelBase.cmd.refS}\Parameter{Label} & § 1 Abs. 1 S. 1 \\
- \DescRef{\LabelBase.cmd.refN}\Parameter{Label} & § 1 I 1. \\
- \DescRef{\LabelBase.cmd.refClause}\Parameter{Label} & § 1 \\
- \DescRef{\LabelBase.cmd.refClauseN}\Parameter{Label} & 1 \\
- \DescRef{\LabelBase.cmd.refParL}\Parameter{Label} & Absatz 1 \\
- \DescRef{\LabelBase.cmd.refParS}\Parameter{Label} & Abs. 1 \\
- \DescRef{\LabelBase.cmd.refParN}\Parameter{Label} & I \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{Label} & 1 \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{Label} & i \\
- \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{Label} & Satz 1 \\
- \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{Label} & S. 1 \\
- \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{Label} & 1. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.refexamples}
-\end{table}
-\EndIndexGroup
-
-
-\section{Zusätzliche Vertragsumgebungen}
-\seclabel{newenv}
-
-Einige Anwender setzen mit \Package{scrjura} keine Verträge oder Kommentare
-zu einzelnen Gesetzen, sondern Werke, in denen unterschiedliche Arten von
-Gesetzen behandelt werden. Es ist daher erforderlich, dass ein Paragraph
-nicht immer mit demselben Präfix »\S« versehen wird, sondern beispielsweise
-als »Art.« oder »IAS« oder was auch immer bezeichnet wird. Darüber hinaus wird
-eine unabhängige Zählung der unterschiedlichen Paragraphen benötigt.
-
-\begin{Declaration}
- \Macro{DeclareNewJuraEnvironment}\Parameter{Name}\OParameter{Optionen}
- \Parameter{Start-Anweisungen}
- \Parameter{End-Anweisungen}
-\end{Declaration}
-Über\ChangedAt{v0.9}{\Package{scrjura}} diese Anweisung können weitere,
-voneinander unabhängige Umgebungen für Vertrags- oder Gesetzestexte deklariert
-werden. Das Argument \PName{Name} ist dabei der Name der neuen
-Umgebung. \PName{Start-Anweisungen} sind Anweisungen, die immer am Anfang der
-Umgebung ausgeführt werden, ganz als ob man sie jedes Mal unmittelbar hinter
-\Macro{begin}\Parameter{Name} einfügen würde. Entsprechend werden
-\PName{End-Anweisungen} immer am Ende der Umgebung ausgeführt, ganz als ob man
-sie jedes Mal unmittelbar vor \Macro{end}\Parameter{Name} einfügen würde. Ohne
-\PName{Optionen} entspricht die neue Umgebung \PName{Name} einer
-\DescRef{\LabelBase.env.contract}-Umgebung mit eigenen Zählern. Es besteht
-jedoch die Möglichkeit über eine mit Komma separierte Liste an
-\PName{Optionen} darauf Einfluss zu
-nehmen. \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} führt die derzeit
-unterstützen \PName{Optionen} auf.%
-\begin{Example}
- Um beispielsweise die in der Einleitung zu diesem Abschnitt erwähnte
- Umgebung für Artikel zu definieren, genügt:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Artikel}
- [ClauseNumberFormat=Art.~]{}{}
-\end{lstcode}
- Sollen die Artikel unter Verwendung einer \KOMAScript-Klasse mit
- Absatzabstand statt Absatzeinzug gesetzt werden, kann
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Artikel}
- [ClauseNumberFormat=Art.~]
- {\KOMAoptions{parskip}}{}
-\end{lstcode}
- verwendet werden. Natürlich wird dann auch bei der Referenzierung
- automatisch »Art.« anstelle von »\S« vorangestellt.%
-
- Angewendet wird die neue Umgebung wie
- \DescRef{\LabelBase.env.contract}:
-\begin{lstcode}
- \begin{Artikel}
- \Clause{}
- Die Würde des Menschen ist unantastbar. Sie zu
- achten und zu schützen ist Verpflichtung aller
- staatlichen Gewalt.
- \end{Artikel}
-\end{lstcode}
-\end{Example}%
-%
-\begin{desclist}
- \desccaption{Von \Macro{DeclareNewJuraEnvironment} unterstützte Optionen zur
- Konfigurierung neuer
- Vertragsumgebungen\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
- {Optionen für \Macro{DeclareNewJuraEnvironment} (\emph{Fortsetzung})}%
- \entry{\OptionVName{Clause}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.Clause} wird innerhalb der neuen Umgebung auf
- \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
- \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
- Argument erwarten. Für eine korrekte Anwendung dieser Option sind
- erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
- notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
- von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
- Option nicht zu verwenden!%
- }%
- \entry{\OptionVName{ClauseFont}{Anweisungen}}{%
- \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
- \LabelFontElement{\PName{Name}.Clause}%
- Ist diese Option angegeben, so wird eine neues Element
- \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
- mit \DescRef{maincls-experts.cmd.newkomafont} definiert und
- \PName{Anweisungen} für dessen Voreinstellung verwendet. Sollte das
- Element bisher als Alias definiert gewesen sein (siehe
- \DescRef{maincls-experts.cmd.aliaskomafont} in
- \autoref{sec:maincls-experts.fonts},
- \DescPageRef{maincls-experts.cmd.aliaskomafont}), so wird es stattdessen
- zu einem selbstständigen Element. Sollte das Element bereits definiert
- gewesen sein, so werden lediglich die \PName{Anweisungen} mit
- \DescRef{\LabelBase.cmd.setkomafont} als neue Einstellung gesetzt. Bitte
- beachten Sie die in \autoref{sec:\LabelBase.textmarkup},
- \DescPageRef{\LabelBase.cmd.setkomafont} erklärten Einschränkungen
- bezüglich der erlaubten \PName{Anweisungen}!%
- \EndIndex{FontElement}{\PName{Name}.Clause}%
- }%
- \entry{\OptionVName{SubClause}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.SubClause} wird innerhalb der Umgebung auf
- \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
- \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
- Argument erwarten. Für eine korrekte Anwendung dieser Option sind
- erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
- notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
- von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
- Option nicht zu verwenden!%
- }%
- \entry{\OptionVName{Sentence}{Anweisung}}{%
- \DescRef{\LabelBase.cmd.Sentence} wird innerhalb der Umgebung auf
- \PName{Anweisung} abgebildet. Die \Macro{Anweisung} sollte kein Argument
- besitzen. Normalerweise sollte sie den Zähler
- \Counter{sentence}\IndexCounter{sentence} mit
- \Macro{refstepcounter}\IndexCmd{refstepcounter} erhöhen und dann in
- geeigneter Form ausgeben. Dabei ist besonders darauf zu achten, dass keine
- unerwünschten Leerzeichen eingebaut werden!%
- }%
- \entry{\OptionVName{ClauseNumberFormat}{Anweisung}}{%
- \PName{Anweisung} legt die Formatierung für Paragraphen-Nummern innerhalb
- der Umgebung fest. Es wird eine \PName{Anweisung} mit genau einem Argument
- erwartet, der Nummer des Paragraphen. Falls diese Nummer das letzte
- Argument einer Kette von Anweisungen ist, so kann diese Kette an
- Anweisungen auch direkt angegeben werden.%
- }%
-\end{desclist}
-\EndIndexGroup
-
-
-\section{Unterstützung verschiedener Sprachen}
-\seclabel{babel}
-
-Das Paket \Package{scrjura} wurde in Zusammenarbeit mit einem Anwalt für
-Deutsches Recht entwickelt. Daher unterstützte es zunächst auch nur die
-Sprachen \PValue{german}, \PValue{ngerman}, \PValue{austrian} und
-\PValue{naustrian}. Das Paket wurde aber so entworfen, dass es mit üblichen
-Sprachpaketen wie
-\Package{babel}\important{\Package{babel}}\IndexPackage{babel}
-zusammenarbeitet. Anwender können solche Anpassungen einfach mit
-\DescRef{scrbase.cmd.providecaptionname} (siehe
-\autoref{sec:scrbase.languageSupport},
-\DescPageRef{scrbase.cmd.providecaptionname}) vornehmen. Sollten Sie über
-gesicherte Informationen zu den im juristischen Umfeld gebräuchlichen
-Begriffen in anderen Sprachen verfügen, würde sich der Autor über
-entsprechende Rückmeldungen freuen. Auf diesem Weg ist inzwischen auch
-Unterstützung für \PValue{english}, \PValue{american}, \PValue{british},
-\PValue{canadian}, \PValue{USenglish} und \PValue{UKenglish} hinzugekommen.
-
-\begin{Declaration}
- \Macro{parname}
- \Macro{parshortname}
- \Macro{sentencename}
- \Macro{sentenceshortname}
-\end{Declaration}
-Dies sind die sprachabhängigen Bezeichnungen, die von \Package{scrjura}
-verwendet werden. Die Bedeutung und die im Deutschen vordefinierten Werte sind
-\autoref{tab:scrjura.captionnames} zu entnehmen. Dabei nimmt \Package{scrjura}
-die entsprechenden Definitionen innerhalb von
-\Macro{begin}\PParameter{document} nur vor, wenn nicht bereits andere Vorgaben
-getroffen wurden. Wird \Package{scrjura} mit einer nicht unterstützten Sprache
-verwendet, so wird eine entsprechende Fehlermeldung ausgegeben.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}
- [{%
- Bedeutungen und Voreinstellungen sprachabhängiger Begriffe%
- }]{%
- Bedeutungen und Voreinstellungen für die sprachabhängigen Begriffe
- soweit nicht bereits definiert%
- }
- [l]
- \begin{tabular}[t]{lll}
- \toprule
- Anweisung & Bedeutung & Voreinstellung \\
- \midrule
- \Macro{parname} & Langform »Absatz« & Absatz \\
- \Macro{parshortname} & Kurzform »Absatz« & Abs. \\
- \Macro{sentencename} & Langform »Satz« & Satz \\
- \Macro{sentenceshortname} & Kurzform »Satz« & S. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.captionnames}
-\end{table}
-%
-\EndIndexGroup
-
-
-\section{Ein ausführliches Beispiel}
-\seclabel{example}
-
-Erinnern wir uns an den Brief aus \autoref{cha:scrlttr2}, in dem ein
-Vereinsmitglied die überfällige Mitgliederversammlung in Erinnerung bringen
-wollte. Damit so etwas möglich ist, muss es auch einen Verein mit einer
-Satzung geben, die das vorschreibt. Eine Vereinssatzung ist letztlich eine Art
-Vertrag und kann mit \Package{scrjura} gesetzt werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=1-2}]{scrjura-example-de.tex}%
-Als Klasse wird \Class{scrartcl} verwendet. Da es bei Satzungen eher üblich
-ist, die Absätze mit einem Abstand zu setzen, wird Option
-\OptionValueRef{maincls}{parskip}{half} verwendet (siehe
-\autoref{sec:maincls.parmarkup}, \DescPageRef{maincls.option.parskip}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=4-4}]{scrjura-example-de.tex}%
-Die Satzung soll in Deutsch verfasst werden. Daher wird das Paket
-\Package{babel} mit Option \Option{ngerman} geladen.
-
-\iffree{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,8-8}}]{scrjura-example-de.tex}%
-}{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,9-9}}]{scrjura-example-de.tex}%
-}%
-Es werden einige Standardeinstellungen für die Schrift vorgenommen. In
-früheren Versionen wurde im Beispiel außerdem das Paket \Package{textcomp}
-geladen, um für einige Schriften ein verbessertes Paragraphenzeichen zu
-erhalten. Diese Funktionalität ist seit \LaTeX{} 2020/02/01 jedoch in den
-\LaTeX-Kern integriert.
-
-Wie Sie am Laden von \Package{fontenc} erkennen können, wird für das Beispiel
-PDF\LaTeX{} verwendet. Soll stattdessen \LuaLaTeX{} oder \XeLaTeX{} verwendet
-werden, entfallen die beiden Zeilen. Wahlweise kann dann \Package{fontspec}
-geladen oder einfach mit den Voreinstellungen gearbeitet werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=11-11}]{scrjura-example-de.tex}%
-Später sollen Listen nicht mit arabischen Zahlen, sondern mit Kleinbuchstaben
-nummeriert werden. Dies ist beispielsweise mit dem Paket \Package{enumerate}
-möglich.
-
-\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
- xleftmargin=2em,%
- linerange=13-20}]{scrjura-example-de.tex}%
-Nun ist es Zeit für \Package{scrjura}. Mit Option
-\OptionValueRef{\LabelBase}{clausemark}{forceboth} wird für Paragraphen das
-Setzen von linken und rechten Marken für Kolumnentitel erzwungen. Da
-andererseits nicht erwünscht ist, dass \DescRef{maincls.cmd.section}
-Kolumnentitel erzeugen, wird Seitenstil \PageStyle{myheadings} verwendet, der
-normalerweise keine lebenden Kolumnentitel aktiviert.
-
-Es soll später auch ein Inhaltsverzeichnis erstellt werden, in das die
-Paragraphen ebenfalls aufgenommen werden. Das wird mit
-\DescRef{\LabelBase.option.juratotoc} erreicht. Später werden wir feststellen,
-dass die voreingestellte Breite für die Paragraphennummern im
-Inhaltsverzeichnis nicht genügt. Daher wird mit
-\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em} für etwas mehr Platz
-gesorgt.
-
-Die Definition der Abkürzungen wurde bereits in
-\autoref{sec:scrjura.shorthandexample} erklärt. Im Beispiel wurde sie
-übernommen, um später die Eingabe zu vereinfachen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=22-22}]{scrjura-example-de.tex}%
-Es ist Zeit, das eigentliche Dokument zu beginnen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=24-28}]{scrjura-example-de.tex}%
-Wie jedes Dokument hat auch eine Satzung einen Titel. Dieser wird mit den
-gewohnten \KOMAScript-Mitteln (siehe \autoref{sec:maincls.titlepage}, ab
-\autopageref{sec:maincls.titlepage}) erstellt.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=30-30}]{scrjura-example-de.tex}%
-Wie bereits erwähnt, soll ein Inhaltsverzeichnis erstellt werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=32-36}]{scrjura-example-de.tex}%
-Präambeln sind in Satzungen nicht ungewöhnlich. Hier wird sie mit
-\DescRef{maincls.cmd.addsec} gesetzt, damit sie auch einen Eintrag ins
-Inhaltsverzeichnis erhält.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=38-38}]{scrjura-example-de.tex}%
-Hier wird ein kleiner Trick angewendet. Die einzelnen Artikel der Satzung
-sollen nicht mit arabischen Zahlen, sondern mit Großbuchstaben nummeriert
-werden -- genau wie dies auch im Anhang eines Artikels mit \Class{scrartcl}
-der Fall ist.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=40-42}]{scrjura-example-de.tex}%
-Mit dem ersten Artikel beginnt auch der Vertrag.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=43-52}]{scrjura-example-de.tex}%
-Der erste Paragraph erhält neben der Nummer auch einen Titel. Dies wird auch
-bei den nachfolgenden Paragraphen so sein.
-
-Der erste Absatz des Vertrags enthält nichts Ungewöhnliches. Da es nicht der
-einzige Absatz ist, werden bei der Ausgabe jedem Absatz automatisch
-Absatznummern voran gestellt werden. Damit dies auch beim ersten Absatz
-geschieht, sind allerdings zwei \LaTeX-Läufe notwendig. Da dies für das
-Inhaltsverzeichnis ohnehin der Fall sein wird, stört das aber auch nicht
-weiter.
-
-Im zweiten Absatz stehen zwei Sätze. Hier finden zum ersten Mal die
-Abkürzungen \texttt{'S} und
-\texttt{'.} Anwendung. Mit der ersten wird lediglich eine Satznummer
-erzeugt. Mit der zweiten wird nicht nur ein Punkt, sondern nachfolgend
-auch eine Satznummer erzeugt. Beide Sätze des Absatzes sind somit nummeriert.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=53-68}]{scrjura-example-de.tex}%
-Der zweite Paragraph: Auch dieser enthält wieder mehrere Absätze, die
-teilweise auch mehrere Sätze umfassen. Im zweiten Absatz ist darüber hinaus
-eine Aufzählung zu finden. Beim letzten Absatz wurde ein Label gesetzt, da auf
-diesen später noch verwiesen werden soll.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=70-77}]{scrjura-example-de.tex}%
-Der dritte Paragraph enthält als Besonderheit einen Querverweis. In diesem
-Fall wird in der Langform mit Paragraph, Absatz und Satz referenziert. Soll
-der Satz später doch entfallen, so kann dies global durch Setzen der Option
-\OptionValueRef{\LabelBase}{ref}{nosentence} erreicht werden.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=79-80}]{scrjura-example-de.tex}%
-Hier gibt es nun einen ersten Spezialfall eines Paragraphen. Dieser Paragraph
-war in einer früheren Fassung der Satzung noch enthalten, wurde dann aber
-entfernt. Dabei sollen jedoch die nachfolgenden Paragraphen nicht neu
-nummeriert werden, sondern ihre alte Nummer behalten. Deshalb wurde die
-\DescRef{\LabelBase.cmd.Clause}-Anweisung nicht entfernt, sondern lediglich um
-die Eigenschaft \Option{dummy} erweitert. Außerdem kann so auch weiterhin ein
-Label für diesen Paragraphen gesetzt werden, obwohl der Paragraph selbst nicht
-angezeigt wird.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=81-85}]{scrjura-example-de.tex}%
-Es wird ein weiterer Artikel begonnen. Damit Probleme mit der
-Absatznummerierung ausgeschlossen sind, wird dazu kurzzeitig die
-\DescRef{\LabelBase.env.contract}-Umgebung unterbrochen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=86-86}]{scrjura-example-de.tex}%
-Auch der erste Paragraph im nächsten Artikel wurde gestrichen.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=88-98}]{scrjura-example-de.tex}%
-Hier haben wir wieder einen echten Paragraphen. Darin wird zum einen auf einen
-der gestrichenen Paragraphen verwiesen. Zum anderen wird auch wieder ein Label
-gesetzt.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=100-105}]{scrjura-example-de.tex}%
-Hier haben wir den zweiten Spezialfall eines Paragraphen. In diesem Fall wurde
-kein Paragraph gestrichen, sondern ein neuer Paragraph eingefügt, ohne dass
-nachfolgend Paragraphen neu nummeriert werden. Dazu wurde
-\DescRef{\LabelBase.cmd.SubClause} verwendet. Somit erhält dieser Paragraph
-die Nummer des vorherigen Paragraphen, die zur Unterscheidung um ein kleines
-»a« erweitert wurde.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=107-127}]{scrjura-example-de.tex}%
-Die übrigen Paragraphen dieses Artikels enthalten nur bereits bekannte
-Anweisungen und keine neuen Besonderheiten.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=129-143}]{scrjura-example-de.tex}%
-Es folgt noch ein weiterer Artikel ohne Besonderheiten.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=145-145}]{scrjura-example-de.tex}%
-Danach endet das \LaTeX-Dokument, dessen vordere drei Seiten
-\autoref{fig:scrjura.example} zeigt.%
-%
-\begin{figure}
- \setcapindent{0pt}%
- \iffree{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\enskip
- \frame{\includegraphics[page=2,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Beispiel: Drei Seiten einer Beispielsatzung%
- }]{%
- Die ersten drei Seiten der Beispielsatzung aus
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-de}}\enskip
- \end{captionbeside}
- }{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth]{scrjura-example-de}}%
- \enskip
- \frame{\includegraphics[page=2,width=.482\textwidth]{scrjura-example-de}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Beispiel: Drei Seiten einer Beispielsatzung%
- }]{%
- Die ersten drei Seiten der Beispielsatzung aus
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth]{scrjura-example-de}}%
- \enskip
- \end{captionbeside}
- }%
- \label{fig:scrjura.example}
-\end{figure}
-
-
-\section{Entwicklungsstand}
-\seclabel{draft}
-
-Seit \KOMAScript~3.24 teilt \Package{scrjura} die Versionsnummer der Klassen
-und anderer wichtiger Pakete. Dennoch sei auf einen wichtigen Punkt
-hingewiesen: Bisher ist weder das Zusammenspiel mit vielen anderen Paketen
-noch die Funktion der \DescRef{\LabelBase.env.contract}-Umgebung mit allen
-möglichen \LaTeX-Umgebungen und Einstellungen verschiedener Klassen und Pakete
-getestet. Dies liegt nicht zuletzt daran, dass es sich bei \Package{scrjura}
-um ein sehr spezielles Paket handelt, das weit außerhalb der täglichen Praxis
-des Autors liegt. Damit ist der Autor diesbezüglich in hohem Maße auf
-ausführliche Rückmeldungen durch die Anwender angewiesen.%
\EndIndexGroup
%%% Local Variables:
@@ -1275,8 +79,5 @@ ausführliche Rückmeldungen durch die Anwender angewiesen.%
%%% eval: (flyspell-mode 1)
%%% End:
-% LocalWords: Seitenstil bedarfsweise Ebenennummer Absatznummerierung
-% LocalWords: Paragraphenüberschrift Präambeln renewcommand Gesetzestexte
-% LocalWords: Grundgesetzartikel Absatzabstand umbrechbaren Wortabstand
-% LocalWords: Beispielsatzung Paragraphensymbol Vordefinierung Absatznummer
-% LocalWords: Expandierbarkeit umbrechbarer Satznummer Paragraphenzeichen
+% LocalWords: anwaltlicher Paketmanager Kompatibilitätspaket
+% LocalWords: Originaldefinition
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-en.tex b/macros/latex/contrib/koma-script/doc/scrjura-en.tex
index a918873861..bda4771e05 100644
--- a/macros/latex/contrib/koma-script/doc/scrjura-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrjura-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrjura-en.tex
-% Copyright (c) Markus Kohm, 2011-2022
+% Copyright (c) Markus Kohm, 2011-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,1135 +24,52 @@
% ======================================================================
\KOMAProvidesFile{scrjura-en.tex}%
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2024-10-15 10:33:25 +0200 (Di, 15. Okt 2024) $
KOMA-Script guide (chapter: scrjura)]
-\translator{Alexander Willand\and Markus Kohm\and Karl Hagen}
+\translator{Markus Kohm}
\chapter{Support for the Law Office with \Package{scrjura}}
\labelbase{scrjura}
\BeginIndexGroup
\BeginIndex{Package}{scrjura}
+\BeginIndex{Package}{contract}
-If you want to write a contract\Index{contract}, the articles of association
-for a company or an association, a law, or a legal commentary, the package
-\Package{scrjura} will provide typographical support. Although
-\Package{scrjura} is intended to provide general help for legal documents, the
-contract is the central element of the package. Particular attention is paid
-to clauses, titles, and numbered provisions\,---\,if there are several of
-them in a clause\,---, numbered sentences, entries in the table of
-contents, and cross references according to German standards.
+Up to and including version~3.41, \KOMAScript{} officially provided the
+package \Package{scrjura} to support legal documents. These were mainly
+statutes, laws, commentaries on them or, in the broadest sense, contracts of
+all kinds. In the course of the restructuring of \KOMAScript{}, the package
+was spun off. Since the contract is the central element of the package, it was
+given the new name \Package{contract}. Under this name it can not only be
+found on CTAN (see \cite{package:contract}). It has also been integrated into
+common \TeX{} distributions and can be installed via their package manager.
-The package has been developed in cooperation with Dr Alexander Willand of
-Karlsruhe. Many of its features go back to constructive inquiries from Prof
-Heiner Richter of the Hochschule Stralsund University of Applied Sciences.
-
-Note\textnote{Attention!} that the package works with
-\Package{hyperref}\IndexPackage{hyperref}. Nevertheless, \Package{hyperref}
-has to be loaded after \Package{scrjura} as usual.
-
-\LoadCommonFile{options}% \section{Early or late Selection of Options}
-
-\LoadCommonFile{textmarkup}% \section{Text Markup}
-
-\section{Table of Contents}
-\seclabel{toc}
-
-The headings of clauses can also be added automatically to the table of
-contents, if desired.
-% TODO: Fix new translation
-Therefore\ChangedAt{v3.27}{\Package{scrjura}} the package uses
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-(see \autoref{sec:tocbasic.tocstyle},
-\DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry}) to define an \PName{entry
- level} named \PValue{cpar}.
-% :ODOT
-
-
-\begin{Declaration}
- \OptionVName{juratotoc}{simple switch}%
- \OptionVName{juratotoc}{level number}
-\end{Declaration}
-Clauses\Index{clause} are shown in the table of contents only if their
-\PName{level number} is less than or equal to the
-\DescRef{maincls.counter.tocdepth}%
-\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} counter
-(see \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). By
-default, the \PName{level number} is \Length{maxdimen}, which is also used if
-the option is switched off with the \PName{simple
- switch}\important{\OptionValue{juratotoc}{false}} (see
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}). Because the
-\DescRef{maincls.counter.tocdepth} counter usually has a one-digit value,
-clause entries are therefore not normally displayed in the table of contents.
-
-If you switch on the option using the \PName{simple switch}%
-\important{\OptionValue{juratotoc}{true}}, the \PName{level number} 2 is used
-so that clauses are shown in the table of contents on the same level as
-subsections. For the default setting of \DescRef{maincls.counter.tocdepth},
-clauses are then shown in all \KOMAScript{} classes.
-
-% TODO: Fix new translation
-Internally\ChangedAt{v3.27}{\Package{scrjura}} usage of this option results in
-a call of
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-with the \PName{style} \PValue{default} and a corresponding value of
-\Option{level} in the \PName{option list}.%
-% :ODOT
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratocindent}{indent}%
- \OptionVName{juratocnumberwidth}{number width}
-\end{Declaration}
-These two options can be used to determine the indentation for the clause
-entries in the table of contents as well as the space reserved for the numbers
-there. The defaults are the same as for subsection entries in
-\Class{scrartcl}.
-
-% TODO: Fix new translation
-Internally\ChangedAt{v3.27}{\Package{scrjura}} usage of these options results
-in calls of
-\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}
-with the \PName{style} \PValue{default} and \OptionVName{indent}{indent}
-respectively \OptionVName{numwidth}{number width} in the \PName{option list}.%
-% :ODOT
-\EndIndexGroup
-
-
-\section{Environment for Contracts}
-\seclabel{contract}
-
-\BeginIndexGroup
-\BeginIndex{}{contract}
-The essential mechanisms of \Package{scrjura} are available only inside the
-contract environment.
-
-\begin{Declaration}
- \begin{Environment}{contract}\end{Environment}
-\end{Declaration}
-Currently, this is the one and only environment for \Package{scrjura}. Using
-it activates automatic numbering of paragraphs and the
-\DescRef{\LabelBase.cmd.Clause} and \DescRef{\LabelBase.cmd.SubClause}
-commands, which will be documented below, are given concrete form.
-
-The\textnote{Attention!} \DescRef{\LabelBase.env.contract} environment must
-not be nested within itself. Within a document, however, you can use the
-environment several times. The clauses within these environments are treated
-as if they were within a single environment. As a result, ending the
-environment really only temporarily interrupts it, and the old environment is
-continued by the beginning of a new environment. However, you cannot end the
-environment within a clause.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Option{contract}
-\end{Declaration}
-The whole document becomes a contract if you use this option while loading the
-package with \DescRef{\LabelBase.cmd.usepackage}%
-\important{\DescRef{\LabelBase.cmd.usepackage}} or as a global option with
-\DescRef{\LabelBase.cmd.documentclass}%
-\important{\DescRef{\LabelBase.cmd.documentclass}}. The document then behaves
-exactly as if it contained one \DescRef{\LabelBase.env.contract} environment.
-
-Note\textnote{Attention!} that you cannot set the \Option{contract} option
-with \DescRef{\LabelBase.cmd.KOMAoption} or
-\DescRef{\LabelBase.cmd.KOMAoptions}. Thus you cannot switch the option off
-again. Instead, you should use a \DescRef{\LabelBase.env.contract} environment
-directly.%
-\EndIndexGroup
-
-
-\subsection{Clauses}
-\label{sec:scrjura.clause}
-\index{section|seealso{clause}}
-
-Clauses\footnote{%
- In English, a ``clause'' in a legal document is a section, paragraph, or
- phrase that relates to a particular point. Although it is common in English
- to also use the terms ``article'' or ``section'' for what we here call a
- ``clause'', we use the latter term throughout to avoid confusion with the
- \Class{article} class and the \DescRef{maincls.cmd.section} and
- \DescRef{maincls.cmd.paragraph} sectioning divisions of most document
- classes.} in a legal sense are defined in \Package{scrjura} only within
-contracts, that is inside the \DescRef{\LabelBase.env.contract} environment or
-other environments declared with
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (see
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
-
-\begin{Declaration}
- \Macro{Clause}\OParameter{options}%
- \Macro{SubClause}\OParameter{options}
-\end{Declaration}
-These are the most important commands inside of a contract. Without using any
-additional \PName{options}, \Macro{Clause} creates the heading of a clause,
-which consists of the sign ``\S'', followed by its number. In contrast,
-\Macro{SubClause} creates the heading of a clause with the last number used by
-\Macro{Clause} and adds a lower-case letter. \Macro{SubClause} is mainly
-intended for cases where an act or a contract is amended and not only are
-clauses changed or deleted but new clauses are inserted between existing ones
-without completely changing the numbering.
-
-Both commands accept a a comma-separated list of \PName{options}. An overview
-of the available properties is shown in \autoref{tab:scrjura.Clause.options}.
-The most important of them will be discussed in more detail.
-
-\begin{table}
- \caption{Available properties for the optional argument of \Macro{Clause} and
- \Macro{SubClause}}
- \label{tab:scrjura.Clause.options}
- \begin{desctabular}
- \entry{\Option{dummy}}{%
- The heading will not be printed but is counted in the automatic
- numbering.%
- }%
- \entry{\OptionVName{head}{running head}}{%
- If running heads are active, this \PName{running head} is used instead of
- the clause \PName{title}.%
- }%
- \entry{\Option{nohead}}{%
- The running head stays unchanged.%
- }%
- \entry{\Option{notocentry}}{%
- Does not make an entry into the table of contents.%
- }%
- \entry{\OptionVName{number}{number}}{%
- Uses \PName{number} for the output of the clause number.%
- }%
- \entry{\OptionVName{preskip}{skip}}{%
- Changes the vertical \PName{skip} before the clause heading.%
- }%
- \entry{\OptionVName{postskip}{skip}}{%
- Changes the vertical \PName{skip} after the clause heading.%
- }%
- \entry{\OptionVName{title}{title}}{%
- The clause \PName{title} will be printed in addition to the clause
- number. This is also used as the default for the \PName{running head}
- and the \PName{entry} in the table of contents.%
- }%
- \entry{\OptionVName{tocentry}{entry}}{%
- Regardless of the clause \PName{title}, an \PName{entry} into the
- table of contents will be made, if such entries are activated.%
- }%
- \end{desctabular}
-\end{table}
-
-By default, a skip of two lines is inserted before the heading and a skip of
-one line afterwards. You can change the size of these skips with the
-\Option{preskip}\important[i]{\Option{preskip}, \Option{postskip}} and
-\Option{postskip} options. The new values apply not only to the current
-clause but from the current clause until the end of the current contract
-environment. You can also make the appropriate settings in advance with
-\begin{flushleft}\quad\small
- \textbf{\Macro{setkeys}}\PParameter{contract}%
- \PParameter{preskip=\PName{skip},\\
- \normalsize\quad\small
- \hspace{11.5em}postskip=\PName{skip}}
-\end{flushleft}
-regardless of the specific clause and outside of a contract environment. You
-can also set these options inside the preamble after loading
-\Package{scrjura}, but you cannot set them while loading the package or by
-using \DescRef{\LabelBase.cmd.KOMAoptions} or
-\DescRef{\LabelBase.cmd.KOMAoption}.
-
-\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
-\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
-By default, clause headings use the font style
-\Macro{sffamily}\Macro{bfseries}\Macro{large}. You can change this font style
-at any time using the
-\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} element
-with \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
-\DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see \autoref{sec:maincls.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}). Inside the
-\DescRef{\LabelBase.env.contract} environment, you can also use
-\FontElement{Clause}\important{\FontElement{Clause}} instead of
-\FontElement{contract.Clause}.%
-\EndIndex{FontElement}{Clause}%
-\EndIndex{FontElement}{contract.Clause}
-
-With the \Option{title}\important[i]{\Option{title}, \Option{head},
- \Option{tocentry}}, \Option{head}, and \Option{tocentry} options, you can
-title a clause in addition to the number. You\textnote{Attention!} should put
-the value of each options inside curly brackets. Otherwise, for example,
-commas which are meant to be part of the value will be confused with the
-delimiters between different options. Empty values for \Option{head} and
-\Option{tocentry} cause empty entries. If you want to avoid an entry, use the
-\Option{nohead}\important[i]{\Option{nohead}, \Option{notocentry}} and
-\Option{notocentry} options.
-
-Instead of consecutive numbers, you can also set a clause number manually with
-the \Option{number}\important{\Option{number}} option. However, this does not
-affect the numbers of the subsequent clauses. Empty numbers are not possible.
-Fragile commands inside \PName{number} have to be protected with
-\Macro{protect}. You\textnote{Attention!} should use only numbers and letters
-as a \Option{number}.
-
-With the \Option{dummy}\important{\Option{dummy}} option, you can suppress the
-output of the whole heading of a clause. The automatic numbering, however,
-will still count this clause. In this way, you can skip an automatically
-numbered clause with\textnote{Example}
-\begin{lstcode}
- \Clause{dummy}
-\end{lstcode}
-in case the clause corresponding clause has been deleted in a later version of
-a contract.
-
-Note\textnote{Attention!} that the \Option{dummy} option only accepts the
-values \PValue{true} and \PValue{false}. All other values are usually ignored,
-but can lead to an error message in the worst case scenario.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{Clauseformat}\Parameter{number}
-\end{Declaration}
-As already mentioned, clauses and subclauses are normally numbered. The number
-is formatted with the help of the \Macro{Clauseformat} command, which expects
-the number as the only argument. The default is the following:
-\begin{lstcode}
- \newcommand*{\Clauseformat}[1]{\S~#1}
-\end{lstcode}
-This produces the section mark, \Macro{S}\IndexCmd{S} (\S), followed by a
-non-breaking space and the number. If you redefine this command, be sure it
-remains expandable.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{juratitlepagebreak}{simple switch}
-\end{Declaration}%
-Usually, page breaks are prohibited within heading of all kinds. However, some
-lawyers require page breaks within clause headings. You can allow such a break
-by using \Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}}.
-You can find the available values for \PName{simple switch} in
-\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.%
-\EndIndexGroup
-
-\begin{Declaration}
- \OptionVName{clausemark}{value}
-\end{Declaration}%
-Since clauses are a subordinate structure with independent numbering, they do
-not produce running heads by default. You can, however, create running heads
-with various settings. You can find the available \PName{values} and their
-meanings in \autoref{tab:scrjura.clausemark}.%
-%
-\begin{table}
- \caption{Available values for the \Option{clausemark} option to activate
- running heads}%
- \label{tab:scrjura.clausemark}%
- \begin{desctabular}
- \entry{\PValue{both}}{%
- Clauses generate left and right marks for running heads, if the document
- provides automatic running heads.%
- \IndexOption{clausemark~=\textKValue{both}}%
- }%
- \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
- Clauses do not generate marks for running heads and therefore do not
- change running heads.%
- \IndexOption{clausemark~=\textKValue{false}}%
- }%
- \entry{\PValue{forceboth}}{%
- Clauses use \DescRef{maincls.cmd.markboth} to generate left and right
- marks for running heads even if the document does not provide automatic
- running heads for the current page style.%
- \IndexOption{clausemark~=\textKValue{forceboth}}%
- }%
- \entry{\PValue{forceright}}{%
- Clauses use \DescRef{maincls.cmd.markright} to generate right marks for
- running heads even if the document does not provide automatic running
- heads for the current page style.%
- \IndexOption{clausemark~=\textKValue{forceright}}%
- }%
- \entry{\PValue{right}}{%
- Clauses generate right marks for running heads, if the document provides
- automatic running heads.%
- \IndexOption{clausemark~=\textKValue{right}}%
- }%
- \end{desctabular}
-\end{table}
-%
-\EndIndexGroup
-
-
-\subsection{Paragraphs}
-\label{sec:scrjura.par}
-\BeginIndexGroup
-\BeginIndex{}{paragraph>numbering}%
-Within clauses, \Package{scrjura} usually numbers paragraphs automatically.
-With this, the paragraphs provide a powerful structuring element, similar to
-\DescRef{maincls.cmd.paragraph} or \DescRef{maincls.cmd.subparagraph} in
-normal documents. For this reason, contracts usually use a vertical skip
-between paragraphs. The \Package{scrjura} package does not provide its own
-mechanism for this. Instead, it uses the \DescRef{maincls.option.parskip}%
-\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} option of
-the \KOMAScript{} classes (see \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-
-\begin{Declaration}
- \OptionVName{parnumber}{value}
-\end{Declaration}
-The default numbering of paragraphs is \OptionValue{parnumber}{auto} and
-\OptionValue{parnumber}{true}. Sometimes you may need to disable the automatic
-numbering. You can do this with \OptionValue{parnumber}{false}%
-\important{\OptionValue{parnumber}{false}}%
-\IndexOption{parnumber~=\textKValue{false}}. In this case, only the sentence
-numbering is reset.
-
-To implement this option, it has been necessary to hook into the
-paragraph-building mechanism of \LaTeX. In some rare cases, this can have a
-negative effect. If so, you can undo the change with
-\OptionValue{parnumber}{manual}%
-\important{\OptionValue{parnumber}{manual}}%
-\IndexOption{parnumber~=\textKValue{manual}}. On the other hand, \LaTeX{}
-itself sometimes undoes the change. In those cases you can activate it again
-with \OptionValue{parnumber}{auto}%
-\important{\OptionValue{parnumber}{auto}}%
-\IndexOption{parnumber~=\textKValue{auto}}.
-
-Clauses that consist of a single paragraph do not automatically receive a
-paragraph number. For this to work, there must not be two clauses with an
-identical number in a document. However should you ever need such numbering,
-you should switch to another contract environment (see
-\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
-\autoref{sec:\LabelBase.newenv},
-\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
-Note\textnote{Attention!} that the number of paragraphs in a clause is not
-available before the end of the clause. Therefore you need a least two
-\LaTeX{} runs before the automatic paragraph numbering is correct.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Counter{par}%
- \Macro{thepar}%
- \Macro{parformat}%
- \Macro{parformatseparation}
-\end{Declaration}%
-For numbering the paragraphs inside a clause we use the \Counter{par} counter.
-The output of \Macro{thepar} will display an Arabic number, because the
-default is \Macro{arabic}\PParameter{par}. \Macro{parformat} provides the
-format, which is \Macro{thepar} in rounded brackets. When numbering a
-paragraph manually, you should also use \Macro{parformat}. It makes sense to
-call \Macro{parformat} with a subsequent \Macro{parformatseparation}, or at
-least a \Macro{nobreakspace} or tilde.
-
-With\ChangedAt{v0.7}{\Package{scrjura}} automatic numbering, \Macro{parformat}
-is followed by \Macro{parformatseparation}, which currently consists of
-\Macro{nonbreakspace}, the non-breakable space.
-
-\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
-The paragraph number is usually printed using the currently active font.
-However, you can change this default for the \FontElement{parnumber} element
-at any time with \DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
-\DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see
-\autoref{sec:\LabelBase.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}).%
-\EndIndex{FontElement}{parnumber}%
-
-Note\textnote{Attention!} that \Package{scrjura} assumes internally that
-\Macro{thepar} is an Arabic number. Therefore you should definitely not
-redefine it!%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{withoutparnumber}
-\end{Declaration}
-If the paragraph number is not printed, \Package{scrjura} executes the
-\Macro{withoutparnumber} command at the beginning of the new paragraph. The
-initial definition of this command is empty. This means it is a kind of dummy
-command that does nothing. It has been implemented because of a user request.
-Most users can ignore this command.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{ellipsispar}\OParameter{number}%
- \Macro{parellipsis}
-\end{Declaration}
-Sometimes\ChangedAt{v0.7}{\Package{scrjura}}\,---\,particularly in comparative
-commentaries\,---\,it is desirable to omit paragraphs but to mark the
-omission. Those omitted paragraphs\Index{paragraph>omission} should be taken
-into account by the paragraph counter. The package \Package{scrjura} provides
-the command \Macro{ellipsispar} to do this.
-
-By default, \Macro{ellipsispar} omits precisely one paragraph. Using the
-optional argument, you can omit multiple paragraphs. In any case, the output
-shows just one unnumbered paragraph, which consists only of the ellipsis
-defined by \Macro{parellipsis}. The automatic numbering of paragraphs takes
-the \PName{number} of omitted paragraphs into account.
-\begin{Example}
- Suppose you are writing a comment on the German\footnote{Please remember,
- this translation does not refer to an existing law but is only an example
- of how you might realise such a commentary with \Package{scrjura}.} penal
- code, but only on paragraph 3 of \S~2. Nevertheless, you'd like to indicate
- the omission indirectly. You can do this with:
-\begin{lstcode}
- \documentclass[parskip=half]{scrartcl}
- \usepackage{scrjura}
- \begin{document}
- \begin{contract}
- \Clause{title={Temporal application},number=2}
- \ellipsispar[2]
-
- If the law that applies at the time the criminal act is
- committed is changed before the verdict, then the most
- lenient law shall be applicable.
-
- \ellipsispar[3]
- \end{contract}
- \end{document}
-\end{lstcode}
- To see the result, just give it a try.
-\end{Example}
-
-The ellipsis is by default \Macro{textellipsis}\IndexCmd{textellipsis}, if
-such a command is defined. If not, \Macro{dots} is used. You can redefine
-\Macro{parellipsis} at any time with \Macro{renewcommand}.%
-\EndIndexGroup
-%
-\EndIndexGroup
-
-
-\subsection{Sentences}
-\label{sec:scrjura.sentence}
-
-\BeginIndexGroup%
-\BeginIndex{}{sentence>number}%
-Paragraphs in contracts consist of one or more sentences, some of which may
-also be numbered. However, as automatic numbering is cumbersome and
-error-prone, it has not yet been implemented in
-\Package{scrjura}. Semi-automatic numbering, however, is supported.
+For compatibility reasons, there will still be a package \Package{scrjura} in
+\KOMAScript{} for the time being. However, this is merely a different
+packaging of the new \Package{contract}, in which some of the
+incompatibilities between the new package and the previous \Package{scrjura}
+have been fixed. Therefore, it should generally be possible to continue
+editing existing documents based on \Package{scrjura}. For new documents, it
+is strongly recommended to switch to \Package{contract} instead. Switching is
+also recommended when revising old documents. Please refer to the
+\Package{contract} user manual for the changes to be taken into account.
\begin{Declaration}
- \Counter{sentence}
- \Macro{thesentence}
- \Macro{sentencenumberformat}
- \Macro{Sentence}
+ \Macro{Clause}\Parameter{options}%
+ \Macro{SubClause}\Parameter{options}
\end{Declaration}
-Manual numbering of sentences is done with the \Macro{Sentence} command. It
-adds one to the \Counter{sentence} counter. By default,
-\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} prints
-\Macro{thesentence} as an Arabic number in superscript.
-
-\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
-The\ChangedAt{v3.26}{\Package{scrjura}} sentence number is usually printed
-using the currently active font. However, you can change this default for the
-\FontElement{parnumber} element at any time with
-\DescRef{\LabelBase.cmd.setkomafont}%
-\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
- \DescRef{\LabelBase.cmd.addtokomafont}} and
-\DescRef{\LabelBase.cmd.addtokomafont} (see
-\autoref{sec:\LabelBase.textmarkup},
-\DescPageRef{\LabelBase.cmd.setkomafont}).%
-\EndIndex{FontElement}{sentencenumber}%
-
-Using\textnote{Hint!} \Package{babel}\IndexPackage{babel} offers an easy way
-to define a shorthand for \Macro{Sentence}:%
-\phantomsection\label{sec:scrjura.shorthandexample}%
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \useshorthands{'}
- \defineshorthand{'S}{\Sentence\ignorespaces}
-\end{lstcode}
-With this definition, any space after \lstinline|'S| will be ignored. You can
-even use the dot as an abbreviation for a dot and a new sentence number:
-\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
- \defineshorthand{'.}{. \Sentence\ignorespaces}
-\end{lstcode}
-For details regarding \Macro{useshorthands} and \Macro{defineshorthands},
-please consult the manual of the \Package{babel} package (see
-\cite{package:babel}). You can find an example of their application in
-\autoref{sec:scrjura.example}, \autopageref{sec:scrjura.example}.%
-\EndIndexGroup
+The most important difference when using \Package{scrjura} compared to
+\Package{contract} is that the \PName{options} for the two instructions
+\Macro{Clause} and \Macro{SubClause} within a \Environment{contract}
+environment with package \Package{contract} represent an optional argument,
+i.e. must be specified in square brackets. In the \Package{scrjura} package,
+however, the \PName{options} were always a required argument, i.e. to be
+specified in braces. This is still the case with \Package{scrjura}.%
%
\EndIndexGroup
%
\EndIndexGroup
-
-\section{Cross-References}
-\seclabel{ref}
-
-The conventional mechanism to set cross-references using
-\Macro{label}\IndexCmd{label}\important{\Macro{label}}, \Macro{ref}, and
-\Macro{pageref} does not suffice for clauses, paragraphs, and sentences.
-Therefore \Package{scrjura} provides additional commands.
-
-\begin{Declaration}
- \Macro{ref}\Parameter{label}%
- \Macro{refL}\Parameter{label}%
- \Macro{refS}\Parameter{label}%
- \Macro{refN}\Parameter{label}
-\end{Declaration}
-The commands \Macro{refL}, \Macro{refS}, and \Macro{refN} give a full
-reference to clause, paragraph and sentence. \Macro{refL} is a long text,
-\Macro{refS} a short text, and \Macro{refN} an abbreviated, numeric form.
-\Macro{ref} defaults to \Macro{refL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refClause}\Parameter{label}%
- \Macro{refClauseN}\Parameter{label}
-\end{Declaration}
-These commands reference a clause without displaying the paragraph or
-sentences. \Macro{refClause} puts a section mark (\S) in front of the
-reference, while \Macro{refClauseN} does not.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refPar}\Parameter{label}%
- \Macro{refParL}\Parameter{label}%
- \Macro{refParS}\Parameter{label}%
- \Macro{refParN}\OParameter{number format}\Parameter{label}
-\end{Declaration}
-You can reference just a paragraph with \Macro{refParL}, \Macro{refParS} and
-\Macro{refParN}. The differences between the forms correspond to the
-differences between \DescRef{\LabelBase.cmd.refL},
-\DescRef{\LabelBase.cmd.refN} and \DescRef{\LabelBase.cmd.refS}. A feature
-worth noting is the optional argument of \Macro{refParN}. Usually the numeric
-reference to a paragraph uses a Roman number. You can, however, specify a
-different \PName{number format} in the optional argument. This option
-primarily makes sense to use Arabic numbers. By default, \Macro{refPar} is
-\Macro{refParL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \Macro{refSentence}\Parameter{label}%
- \Macro{refSentenceL}\Parameter{label}%
- \Macro{refSentenceS}\Parameter{label}%
- \Macro{refSentenceN}\Parameter{label}
-\end{Declaration}
-You can reference a sentence with \Macro{refSentenceL}, \Macro{refSentenceS},
-or \Macro{refSentenceN}. Again, there is a long text form, a short text form,
-and a numerical form. By default, \Macro{refSentence} is
-\Macro{refSentenceL}.%
-\EndIndexGroup
-
-
-\begin{Declaration}
- \OptionVName{ref}{value}
-\end{Declaration}
-The results of \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar},
-and \DescRef{\LabelBase.cmd.refSentence} depend on the \PName{value} of the
-\Option{ref} option. The defaults are \DescRef{\LabelBase.cmd.refL},
-\DescRef{\LabelBase.cmd.refParL} and \DescRef{\LabelBase.cmd.refSentenceL}.
-You can find the available values and their meaning in
-\autoref{tab:scrjura.ref}.%
-%
-\begin{table}
-%\begin{desclist}
-% \desccaption
- \caption[{%
- Available values for the \Option{ref} option to configure the
- cross-reference format%
- }]{%
- Available values for the \Option{ref} option to configure the
- cross-reference format of \DescRef{\LabelBase.cmd.ref},
- \DescRef{\LabelBase.cmd.refPar}, and \DescRef{\LabelBase.cmd.refSentence}%
- \label{tab:scrjura.ref}%
- }%
- \begin{desctabular}
- \entry{\PValue{long}}{%
- A combination of \PValue{parlong} and \PValue{sentencelong}.%
- \IndexOption{ref~=\textKValue{long}}%
- }%
- \entry{\PValue{numeric}}{%
- A combination of \PValue{parnumeric} and \PValue{sentencenumeric}.%
- \IndexOption{ref~=\textKValue{numeric}}%
- }%
- \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
- \PValue{OnlyClause}}{%
- A combination of \PValue{paroff} and \PValue{sentenceoff}. Note that
- \DescRef{\LabelBase.cmd.refPar} and \DescRef{\LabelBase.cmd.refSentence}
- produce empty results!%
- \IndexOption{ref~=\textKValue{long}}%
- }%
- \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
- Paragraphs are referenced in long textual form.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }%
- \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
- Paragraphs are referenced in simple numerical form.%
- \IndexOption{ref~=\textKValue{parnumeric}}%
- }%
- \entry{\PValue{paroff}, \PValue{nopar}}{%
- Paragraphs have no reference. Note that \DescRef{\LabelBase.cmd.refPar}
- produces an empty result!%
- \IndexOption{ref~=\textKValue{paroff}}%
- }%
- \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
- Paragraphs are referenced in short textual form.%
- \IndexOption{ref~=\textKValue{parshort}}%
- }%
- \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
- Sentences are referenced in long textual form.%
- \IndexOption{ref~=\textKValue{parlong}}%
- }%
- \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
- \PValue{SentenceN}}{%
- Sentences are referenced in simple numeric form.%
- \IndexOption{ref~=\textKValue{sentencenumeric}}%
- }%
- \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
- Sentences have no reference. Note that
- \DescRef{\LabelBase.cmd.refSentence} produces an empty result!%
- \IndexOption{ref~=\textKValue{sentenceoff}}%
- }%
- \entry{\PValue{sentenceshort}, \PValue{shortsentence},
- \PValue{SentenceS}}{%
- Sentences are referenced in short textual form.%
- \IndexOption{ref~=\textKValue{sentenceshort}}%
- }%
- \entry{\PValue{short}}{%
- A combination of \PValue{parshort} and \PValue{sentenceshort}.%
- \IndexOption{ref~=\textKValue{value}}%
- }%
-\end{desctabular}
-\end{table}
-
-\begin{Example}
- Suppose you always want to reference paragraphs in the form ``paragraph 1
- in clause 1''. As there is no predefined command for this, you have
- to create your own definition from the available options. You can achieve
- this easily with:%
-\begin{lstcode}
- \newcommand*{\refParM}[1]{%
- paragraph~\refParN[arabic]{#1}
- in clause~\refClauseN{#1}%
- }
-\end{lstcode}
- This new command can be used in the same way as
- \DescRef{\LabelBase.cmd.refParL}.%
-\end{Example}%
-
-You can find examples of results of the basic commands in
-\autoref{tab:scrjura.refexamples}.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}{Example outputs of the \Option{ref}-independent
- cross-reference commands}[l]
- \begin{tabular}[t]{ll}
- \toprule
- Command & Example output \\
- \midrule
- \DescRef{\LabelBase.cmd.refL}\Parameter{label} & \S{} 1 paragraph 1 sentence 1 \\
- \DescRef{\LabelBase.cmd.refS}\Parameter{label} & \S{} 1 par. 1 sent. 1 \\
- \DescRef{\LabelBase.cmd.refN}\Parameter{label} & \S{} 1 I 1. \\
- \DescRef{\LabelBase.cmd.refClause}\Parameter{label} & \S{} 1 \\
- \DescRef{\LabelBase.cmd.refClauseN}\Parameter{label} & 1 \\
- \DescRef{\LabelBase.cmd.refParL}\Parameter{label} & paragraph 1 \\
- \DescRef{\LabelBase.cmd.refParS}\Parameter{label} & par. 1 \\
- \DescRef{\LabelBase.cmd.refParN}\Parameter{label} & I \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{label} & 1 \\
- \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{label} & i \\
- \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{label} & sentence 1 \\
- \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{label} & sent. 1 \\
- \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{label} & 1. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.refexamples}
-\end{table}
-\EndIndexGroup
-
-
-\section{Additional Environments}
-\seclabel{newenv}
-
-Some users do not use \Package{scrjura} to draft contracts or commentaries on
-individual laws but to examine different types of laws, which may not
-necessarily use the section prefix (\S) before the title of each clause but
-perhaps something like ``Art.'' or ``IAS'', and so forth. An independent
-counter is also required for each of these different clause types.
-
-\begin{Declaration}
- \Macro{DeclareNewJuraEnvironment}\Parameter{name}\OParameter{options}%
- \Parameter{start commands}\Parameter{end commands}
-\end{Declaration}
-You\ChangedAt{v0.9}{\Package{scrjura}} can use this command to define new and
-independent environments for contracts or other legal texts. The argument
-\PName{name} is the name of the new environment, of course. The \PName{start
-commands} are commands which will be executed at the beginning of the
-environment, as if they were added directly after
-\Macro{begin}\Parameter{name}. Correspondingly \PName{end commands} will be
-executed at the end of the environment, as if added directly before
-\Macro{end}\Parameter{name}. Without any \PName{options} the new environment
-behaves like the \DescRef{\LabelBase.env.contract} environment, but with its
-own counters. It is possible to set \PName{options} in a comma-separated list.
-See \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} for the currently
-supported \PName{options}.
-
-\begin{desclist}
- \desccaption{Options provided by \Macro{DeclareNewJuraEnvironment} for new
- contract environments\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
- {Options of \Macro{DeclareNewJuraEnvironment} (\emph{continued})}%
- \entry{\OptionVName{Clause}{command}}{%
- Defines the \PName{command} to which the \DescRef{\LabelBase.cmd.Clause}
- command is mapped within the environment. This \PName{command}, like the
- one documented for \DescRef{\LabelBase.env.contract}, expects exactly one
- argument. To use it correctly requires advanced knowledge of the
- \Package{scrjura}'s internal functioning. Furthermore, the requirements
- for the \PName{command} may change in future versions. Therefore it is
- recommended not to use this option!%
- }%
- \entry{\OptionVName{ClauseFont}{commands}}{%
- \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
- \LabelFontElement{\PName{Name}.Clause}%
- If this option is used, a new
- \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
- element is defined using
- \DescRef{maincls-experts.cmd.newkomafont}\IndexCmd{newkomafont}, with the
- \PName{commands} used as its default setting. If the element was
- previously defined as an alias (see
- \DescRef{maincls-experts.cmd.aliaskomafont} in
- \autoref{sec:maincls-experts.fonts},
- \DescPageRef{maincls-experts.cmd.aliaskomafont}), it will become an
- independent element instead. If it has already been defined as an
- independent element, \DescRef{\LabelBase.cmd.setkomafont} is used to set
- the \PName{commands} a new font settings. Please note the limitations for
- font settings in \autoref{sec:\LabelBase.textmarkup},
- \DescPageRef{\LabelBase.cmd.setkomafont}.
- \EndIndex{FontElement}{\PName{Name}.Clause}%
- }%
- \entry{\OptionVName{SubClause}{command}}{%
- Defines the \PName{command} to which the
- \DescRef{\LabelBase.cmd.SubClause} command is mapped within the
- environment. This \PName{command}, like the one documented for
- \DescRef{\LabelBase.env.contract}, expects exactly one argument. To use it
- correctly requires advanced knowledge of the \Package{scrjura}'s internal
- functioning. Furthermore, the requirements for the \PName{command} may
- change in future versions. Therefore it is recommended not to use this
- option!%
- }%
- \entry{\OptionVName{Sentence}{command}}{%
- Defines the \PName{command} to which the
- \DescRef{\LabelBase.cmd.Sentence} is mapped within the environment. This
- \PName{command} must not have an argument. Typically it should add one to
- the \Counter{sentence}\IndexCounter{sentence} (using
- \Macro{refstepcounter}\IndexCmd{refstepcounter}) counter and display it
- appropriately. It is particularly important to avoid adding unwanted
- spaces.%
- }%
- \entry{\OptionVName{ClauseNumberFormat}{command}}{%
- Formats the numbers of clauses within the environment. The \PName{command}
- should expect exactly one argument: the number of the clause. If the
- \PName{command} implements a series of commands and the number is the last
- argument of a that series, you can directly use the series of commands as
- \PName{command}.%
- }
-\end{desclist}
-\begin{Example}
- To define the environment for articles we mentioned in the preface of this
- section, it is sufficient to write:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]{}{}
-\end{lstcode}
- If we are using a \KOMAScript{} class and want to separate the paragraphs in
- this environment with space instead of using paragraph indentation, we can
- use:
-\begin{lstcode}
- \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]
- {\KOMAoptions{parskip}}{}
-\end{lstcode}
- In cross-references, ``Art.'' will of course be used instead of ``\S''.%
-
- The new environment is used like \DescRef{\LabelBase.env.contract}:
-\begin{lstcode}
- \begin{Article}
- \Clause{}
- Human dignity is inviolable. To respect and protect people is a
- duty of all state authority.
- \end{Article}
-\end{lstcode}
-\end{Example}%
-\EndIndexGroup
-
-
-\section{Support for Different Languages}
-\seclabel{babel}
-
-The \Package{scrjura} package has been developed in cooperation with a German
-lawyer. Therefore it initially supported only the languages \PValue{german},
-\PValue{ngerman}, \PValue{austrian}, and \PValue{naustrian}. Nevertheless, it
-has been designed to support common language packages like
-\Package{babel}\important{\Package{babel}}\IndexPackage{babel}. Users can
-easily make changes by using \DescRef{scrbase.cmd.providecaptionname} (see
-\autoref{sec:scrbase.languageSupport},
-\DescPageRef{scrbase.cmd.providecaptionname}). If you have definitive
-information about the correct legal terms and conventions of a language,
-please contact the \KOMAScript{} author. Support for English has been added in
-this way, and so \Package{scrjura} now also provides terms for the languages
-\PValue{english}, \PValue{american}, \PValue{british}, \PValue{canadian},
-\PValue{USenglish}, and \PValue{UKenglish}.
-
-\begin{Declaration}
- \Macro{parname}%
- \Macro{parshortname}%
- \Macro{sentencename}%
- \Macro{sentenceshortname}
-\end{Declaration}
-These are the language-dependent terms used by \Package{scrjura}. The meaning
-of the terms and their English defaults are shown in
-\autoref{tab:scrjura.captionnames}. The package itself defines them by using
-\DescRef{scrbase.cmd.providecaptionname} inside
-\Macro{begin}\PParameter{document} only if other requirements have not already
-been met. If you use \Package{scrjura} with an unsupported language, the
-package will throw an error.%
-%
-\begin{table}
- \KOMAoptions{captions=topbeside}%
- \setcapindent{0pt}%
- \begin{captionbeside}
- [{%
- Meanings and English defaults of language-dependent terms%
- }]{%
- Meanings and English defaults of language-dependent terms, if not
- already defined%
- } [l]
- \begin{tabular}[t]{lll}
- \toprule
- Command & Meaning & Default \\
- \midrule
- \Macro{parname} & long form ``paragraph'' & paragraph \\
- \Macro{parshortname} & short form ``paragraph'' & par. \\
- \Macro{sentencename} & long form ``sentence'' & sentence \\
- \Macro{sentenceshortname} & short form ``sentence'' & sent. \\
- \bottomrule
- \end{tabular}
- \end{captionbeside}
- \label{tab:scrjura.captionnames}
-\end{table}
-%
-\EndIndexGroup
-
-
-\section{A Detailed Example}
-\seclabel{example}
-
-You may remember the letter from \autoref{cha:scrlttr2}, in which a club
-member wanted to remind the board about an overdue meeting that was prescribed
-by the club's by-laws. Such club by-laws are a kind of contract, and you can
-create them using \Package{scrjura}.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=1-2}]{scrjura-example-en.tex}%
-We use class \Class{scrartcl}. Because paragraph distance instead of paragraph
-indentation is usual in club by-laws, we load the class with option
-\OptionValueRef{maincls}{parskip}{half} (see \autoref{sec:maincls.parmarkup},
-\DescPageRef{maincls.option.parskip}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=4-4}]{scrjura-example-en.tex}%
-The club rules are in British English. Therefore we load the \Package{babel}
-package with the \Option{british} option too.
-
-\iffree{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,8-8}}]{scrjura-example-en.tex}%
-}{%
-\lstinputcode[{xleftmargin=2em,%
- linerange={6-6,9-9}}]{scrjura-example-en.tex}%
-}%
-We make some default font settings. Earlier versions of the example also
-loaded the \Package{textcomp} package here for an improved section mark
-(\S). Since \LaTeX{} 2020/02/01, however, the desired functionality is directly
-integrated in the \LaTeX{} kernel.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=11-11}]{scrjura-example-en.tex}%
-Later in the document, we want lists numbered not with Arabic numbers but with
-lower-case letters. We can do this easily with the \Package{enumerate}
-package. Alternatively, we could have used the \Package{enumitem} package.
-
-\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
- xleftmargin=2em,%
- linerange=13-21}]{scrjura-example-en.tex}%
-Now it is time for \Package{scrjura}. The
-\OptionValueRef{\LabelBase}{clausemark}{forceboth} option forces clauses to
-create left and right marks for the running head. On the other hand, we do not
-want \DescRef{maincls.cmd.section} to change the marks for the running head.
-Therefore we use the \PageStyle{myheadings} page style. This page style
-generally does not provide automatic running heads.
-
-Later, we also want a table of contents with the clauses. This can be achieved
-with the \DescRef{\LabelBase.option.juratotoc} option. Doing so we will see
-that the default width for these numbers is insufficient for the clause
-numbers in the table of contents. With
-\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em}, we reserve more space.
-
-The definition of shorthands has already been explained in
-\autoref{sec:scrjura.shorthandexample}. In this example we do the same thing
-to simplify the input.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=23-23}]{scrjura-example-en.tex}%
-It is time to begin the actual document.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=25-29}]{scrjura-example-en.tex}%
-Like other documents, the by-laws have a title. We created it with the usual
-\KOMAScript{} commands (see \autoref{sec:maincls.titlepage}, starting on
-\autopageref{sec:maincls.titlepage}).
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=31-31}]{scrjura-example-en.tex}%
-As already mentioned, we want to create a table of contents.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=33-37}]{scrjura-example-en.tex}%
-Preambles are not unusual in club by-laws. Here we use
-\DescRef{maincls.cmd.addsec} to create one because we want it to have an entry
-in the table of contents.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=39-39}]{scrjura-example-en.tex}%
-Here we use a small trick. The articles of the club by-laws should be numbered
-with upper-case letters instead of Arabic numbers, just as
-the appendix sections of an article using \Class{scrartcl} are.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=41-43}]{scrjura-example-en.tex}%
-We begin the contract with the first article.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=44-54}]{scrjura-example-en.tex}%
-The first clause has a number and a title. We will do the same with all
-following clauses.
-
-The first paragraph of the clause contains nothing unusual. Because it is not
-the only paragraph, every paragraph will be automatically preceded by a
-paragraph number. Note that the numbering the first paragraph requires at
-least two \LaTeX{} runs. Since this is the case for the table of contents as
-well, this does not create any additional problems.
-
-In the second paragraph we have two sentences. Here we can see the shorthands
-\texttt{'S} and \texttt{'.} in action. The first one only generates the
-sentence number. The second one generates not only the full stop but also the
-sentence number. With this, both sentences are numbered.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=55-70}]{scrjura-example-en.tex}%
-The second clause: again this contains several paragraphs, some of which
-include several sentences. The second paragraph also has a numbered list. In
-the last paragraph, we set a label, because we want to reference it later.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=72-78}]{scrjura-example-en.tex}%
-The third clause contains something special: a cross-reference. Here we use
-the long form with clause, paragraph, and sentence. If we decided later that
-sentences should not be included in the reference, we could use the
-\OptionValueRef{\LabelBase}{ref}{nosentence} option to set this globally.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=80-81}]{scrjura-example-en.tex}%
-Here we have a special kind of clause. In earlier versions of the club by-laws,
-this was a real clause, but it was later removed. However, the
-numbering of the following clauses should not be changed by removing this
-one. Therefore the \DescRef{\LabelBase.cmd.Clause} statement has not been
-removed but supplemented by option \Option{dummy}. With this, we also can set
-a label even though the clause will not be printed.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=82-86}]{scrjura-example-en.tex}%
-Another article begins. To avoid problems with the paragraph numbering, we
-interrupt the \DescRef{\LabelBase.env.contract} environment.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=87-87}]{scrjura-example-en.tex}%
-The first clause of the next article also has been deleted.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=89-98}]{scrjura-example-en.tex}%
-Here we have a real clause again. We cross-reference one of the deleted
-clauses and also set a label.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=100-104}]{scrjura-example-en.tex}%
-Once more, this is a special kind of clause. This time we have not removed a
-clause but added one without renumbering the following clauses. To do so,
-we use \DescRef{\LabelBase.cmd.SubClause}. Therefore the clause number is the
-same like the previous one but with an appended ``a''.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=106-126}]{scrjura-example-en.tex}%
-The other clauses of this article are very usual. You already know all the
-features used for them.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=128-141}]{scrjura-example-en.tex}%
-There follows another article no special features.
-
-\lstinputcode[{xleftmargin=2em,%
- linerange=143-143}]{scrjura-example-en.tex}%
-Then the \LaTeX{} document ends. You can see first three pages in
-\autoref{fig:scrjura.example}.%
-%
-\begin{figure}
- \setcapindent{0pt}%
- \iffree{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\enskip
- \frame{\includegraphics[page=2,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Example: First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }]{%
- First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth,%
- height=.49\textheight,keepaspectratio]{scrjura-example-en}}\enskip
- \end{captionbeside}
- }{%
- {\hfill
- \frame{\includegraphics[page=1,width=.482\textwidth]{scrjura-example-en}}%
- \enskip
- \frame{\includegraphics[page=2,width=.482\textwidth]{scrjura-example-en}}\par
- \smallskip}
- \begin{captionbeside}[{%
- Example: First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }]{%
- First three pages of the example club by-laws of
- \protect\autoref{sec:scrjura.example}%
- }%
- [l]
- \frame{\includegraphics[page=3,width=.482\textwidth]{scrjura-example-en}}%
- \enskip
- \end{captionbeside}
- }%
- \label{fig:scrjura.example}
-\end{figure}
-
-\section{State of Development}
-\seclabel{draft}
-
-Since \KOMAScript~3.24, the \Package{scrjura} package has shared the version
-number of the classes and other important packages of \KOMAScript.
-Nevertheless, you should note that so far, the interaction of the
-\DescRef{\LabelBase.env.contract} environment with the many different settings
-possible with other \LaTeX{} environments, packages, or classes has not been
-tested. The main reason for this is that \Package{scrjura} is very specialised
-and far beyond the author's ordinary practice. So the author mostly relies on
-detailed user feedback.%
-\EndIndexGroup
-
\endinput
%%% Local Variables:
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf b/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf
deleted file mode 100644
index 57d2efce69..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex b/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex
deleted file mode 100644
index 602422b0f2..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-de.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-\documentclass[fontsize=12pt,parskip=half]
- {scrartcl}
-
-\usepackage[ngerman]{babel}
-
-\usepackage[T1]{fontenc}
-% Hinweis: Nur einer der beiden folgenden Zeilen wird benötigt.
-\usepackage{lmodern}
-\usepackage{charter,helvet}
-
-\usepackage{enumerate}
-
-\usepackage[clausemark=forceboth,
- juratotoc, juratocnumberwidth=2.5em]
- {scrjura}
-\useshorthands{'}
-\defineshorthand{'S}{\Sentence\ignorespaces}
-\defineshorthand{'.}{. \Sentence\ignorespaces}
-
-\pagestyle{myheadings}
-
-\begin{document}
-
-\subject{Satzung}
-\title{VfVmai}
-\subtitle{Verein für Vereinsmaierei mit ai n.\,e.\,V.}
-\date{11.\,11.\,2011}
-\maketitle
-
-\tableofcontents
-
-\addsec{Präambel}
-
-Die Vereinslandschaft in Deutschland ist vielfältig.
-Doch leider mussten wir feststellen, dass es dabei oft
-am ernsthaften Umgang mit der Ernsthaftigkeit krankt.
-
-\appendix
-
-\section{Allgemeines}
-
-\begin{contract}
-\Clause{title={Name, Rechtsform, Sitz des Vereins}}
-
-Der Verein führt den Namen »Verein für Vereinsmaierei mit
-ai n.e.V.« und ist in keinem Vereinsregister eingetragen.
-
-'S Der Verein ist ein nichtwirtschaftlicher, unnützer
-Verein'. Er hat keinen Sitz und muss daher stehen.
-
-Geschäftsjahr ist vom 31.~März bis zum 1.~April.
-
-\Clause{title={Zweck des Vereins}}
-
-'S Der Verein ist zwar sinnlos, aber nicht zwecklos'.
-Vielmehr soll er den ernsthaften Umgang mit der
-Ernsthaftigkeit auf eine gesunde Basis stellen.
-
-Zu diesem Zweck kann der Verein
-\begin{enumerate}[\qquad a)]
-\item in der Nase bohren,
-\item Nüsse knacken,
-\item am Daumen lutschen.
-\end{enumerate}
-
-Der Verein ist selbstsüchtig und steht dazu.
-
-Der Verein verfügt über keinerlei Mittel.\label{a:mittel}
-
-\Clause{title={Vereinsämter}}
-
-Die Vereinsämter sind Ehrenämter.
-
-'S Würde der Verein über Mittel verfügen
-(siehe \ref{a:mittel}), so könnte er einen
-hauptamtlichen Geschäftsführer bestellen'. Ohne
-die notwendigen Mittel ist dies nicht möglich.
-
-\Clause{title={Vereinsmaier},dummy}
-\label{p.maier}
-\end{contract}
-
-\section{Mitgliedschaft}
-
-\begin{contract}
-\Clause{title={Mitgliedsarten},dummy}
-
-\Clause{title={Erwerb der Mitgliedschaft}}
-
-Die Mitgliedschaft kann jeder zu einem angemessenen
-Preis von einem der in \refClause{p.maier}
-genannten Vereinsmaier erwerben.\label{a.preis}
-
-'S Zum Erwerb der Mitgliedschaft ist ein formloser
-Antrag erforderlich'. Dieser Antrag ist in grüner
-Tinte auf rosa Papier einzureichen.
-
-Die Mitgliedschaft kann nicht abgelehnt werden.
-
-\SubClause{title={Ergänzung zu vorstehendem
- Paragraphen}}
-
-'S Mit Abschaffung von \refClause{p.maier} verliert
-\ref{a.preis} seine Umsetzbarkeit'. Mitgliedschaften
-können ersatzweise vererbt werden.
-
-\Clause{title={Ende der Mitgliedschaft}}
-
-'S Die Mitgliedschaft endet mit dem Leben'. Bei nicht
-lebenden Mitgliedern endet die Mitgliedschaft nicht.
-
-\Clause{title={Mitgliederversammlung}}
-
-Zweimal jährlich findet eine Mitgliederversammlung statt.
-
-Der Abstand zwischen zwei Mitgliederversammlungen
-beträgt höchstens 6~Monate, 1~Woche und 2~Tage.
-
-Frühestens 6~Monate nach der letzten Mitgliederversammlung
-hat die Einladung zur nächsten Mitgliederversammlung zu
-erfolgen.
-
-\SubClause{title={Ergänzung zur Mitgliederversammlung}}
-
-Die Mitgliederversammlung darf frühstens 2~Wochen nach
-letztem Eingang der Einladung abgehalten werden.
-\end{contract}
-
-\section{Gültigkeit}
-
-\begin{contract}
-\Clause{title={In Kraft treten}}
-
-Diese Satzung tritt am 11.\,11.\,2011 um 11:11~Uhr
-in Kraft.
-
-'S Sollten irgendwelche Bestimmungen dieser Satzung im
-Widerspruch zueinander stehen, tritt die Satzung am
-11.\,11.\,2011 um 11:11~Uhr und 11~Sekunden wieder
-außer Kraft'. Der Verein ist in diesem Fall als
-aufgelöst zu betrachten.
-
-\end{contract}
-
-\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf b/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf
deleted file mode 100644
index 6fc41cf650..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex b/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex
deleted file mode 100644
index fbc009ca8a..0000000000
--- a/macros/latex/contrib/koma-script/doc/scrjura-example-en.tex
+++ /dev/null
@@ -1,143 +0,0 @@
-\documentclass[fontsize=12pt,parskip=half]
- {scrartcl}
-
-\usepackage[british]{babel}
-
-\usepackage[T1]{fontenc}
-% Note: Only one of the following two lines is needed.
-\usepackage{lmodern}
-\usepackage{charter,helvet}
-
-\usepackage{enumerate}
-
-\usepackage[clausemark=forceboth,
- juratotoc,
- juratocnumberwidth=2.5em]
- {scrjura}
-\useshorthands{'}
-\defineshorthand{'S}{\Sentence\ignorespaces}
-\defineshorthand{'.}{. \Sentence\ignorespaces}
-
-\pagestyle{myheadings}
-
-\begin{document}
-
-\subject{By-Laws}
-\title{CfCH}
-\subtitle{Club for Club Hoppers}
-\date{11.\,11.\,2011}
-\maketitle
-
-\tableofcontents
-
-\addsec{Preamble}
-
-The club landscape in England is diverse. But we have
-unfortunately been forced to conclude that it often
-suffers seriously when dealing with seriousness.
-
-\appendix
-
-\section{Overview}
-
-\begin{contract}
-\Clause{title={Name, Legal Form, Headquarters}}
-
-The name of this club shall be the ``Club for Club
-Hoppers'' and is not registered in any club register.
-
-'S The club is a non-economic, useless club'. It has no
-headquarters because its members heads are in their
-hindquarters.
-
-The fiscal year is from March 31st through April 1st.
-
-\Clause{title={Purpose of the Club}}
-
-'S The club is pointless but not useless'. Rather,
-it should put the serious handling of seriousness on a
-sound footing.
-
-For this purpose, the club members can
-\begin{enumerate}[\qquad a)]
-\item pick their noses,
-\item crack nuts,
-\item such their thumbs.
-\end{enumerate}
-
-The club is selfish and stands by it.
-
-The club has no financial means.\label{a:mittel}
-
-\Clause{title={Club Officers}}
-
-The club officers hold honorary positions.
-
-'S If the club had resources (see \ref{a:mittel}), it
-could afford a full-time manager'. Without the necessary
-funds, this is not possible.
-
-\Clause{title={Club Hopper},dummy}
-\label{p.maier}
-\end{contract}
-
-\section{Membership}
-
-\begin{contract}
-\Clause{title={Types of Members},dummy}
-
-\Clause{title={Becoming a Member}}
-
-Everyone can purchase a membership from one of the
-associations listed in \refClause{p.maier}.\label{a.preis}
-
-'S To become a member, an informal application is
-required'. This application should be submitted in green
-ink on pink paper.
-
-Membership applications cannot be rejected.
-
-\SubClause{title={Amendment to the Previous Clause}}
-
-'S With the repeal of \refClause{p.maier},
-\ref{a.preis} has become impractical'. In its place,
-memberships can be inherited.
-
-\Clause{title={Termination of Membership}}
-
-'S Membership ends with one's life'. For non-living
-members, membership does not end.
-
-\Clause{title={General Meeting}}
-
-A general meeting shall take place twice per year.
-
-The interval between two general meetings shall be
-no more than 6~months, 1~week, and 2~days.
-
-The invitation to the next general meeting shall be sent
-no earlier than 6~months from the previous general
-meeting.
-
-\SubClause{title={Amendment to the General Meeting}}
-
-The general meeting may be held at the earliest 2~weeks after
-the invitation is received.
-\end{contract}
-
-\section{Validity}
-
-\begin{contract}
-\Clause{title={Effective Date}}
-
-These articles will enter into force on 11.\,11.\,2011 at
-11:11~am.
-
-'S If any provision of these by-laws is in conflict with
-any other, the by-laws will be repealed on
-11.\,11.\,2011 at 11:11~am and 11~seconds'. The club is
-considered to be dissolved in this case.
-
-\end{contract}
-
-\end{document}
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
index 8d924561fd..a9eb9524f1 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-de.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -29,7 +29,7 @@
% ============================================================================
\KOMAProvidesFile{scrlayer-notecolumn.tex}
- [$Date: 2022-07-17 12:36:46 +0200 (So, 17. Jul 2022) $
+ [$Date: 2024-02-13 16:06:28 +0100 (Di, 13. Feb 2024) $
KOMA-Script guide (chapter:scrlayer-notecolumn)]
\chapter{Notizspalten mit \Package{scrlayer-notecolumn}}
@@ -296,7 +296,7 @@ entnehmen.
\usepackage{lmodern}
\usepackage{xcolor}
- \usepackage{scrjura}
+ \usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -330,9 +330,9 @@ entnehmen.
genutzt.}{}
Bezüglich des Setzens von Gesetzestexten\textnote{Gesetz mit
- \hyperref[cha:scrjura]{\Package{scrjura}}} mit
- \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} sei auf
- \iffree{dessen Anleitung}{\autoref{cha:scrjura}} verwiesen.
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}} mit
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}\IndexPackage{contract}
+ sei auf dessen Anleitung verwiesen.
Da ein Seitenstil\textnote{Seitenstil mit
\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} mit
@@ -471,9 +471,9 @@ verwendet.%
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{%
+ \protect\Clause[%
title={Kein Witz ohne Publikum}%
- }
+ ]
Ein Witz kann nur dort witzig sein, wo er
auf ein Publikum trifft.
\protect\end{contract}%
@@ -605,7 +605,7 @@ wird nachfolgend beschrieben.%
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Komik der Kultur}}
+ \protect\Clause[title={Komik der Kultur}]
\setcounter{par}{0}%
Die Komik eines Witzes kann durch das
kulturelle Umfeld, in dem er erzählt wird,
@@ -798,5 +798,5 @@ Das Ergebnis des Beispiels ist übrigens in
% LocalWords: Neukonfigurierung Synchronisierungspunkt marginpar marginline
% LocalWords: Haupttext Demonstrationszwecken Längenausdruck Gesetzestexten
% LocalWords: Längenausdrücken Satzspiegels typearea scrlayer notecolumn
-% LocalWords: AfterCalculatingTypearea scrjura scrpage Farbeinstellung
+% LocalWords: AfterCalculatingTypearea scrpage Farbeinstellung
% LocalWords: Sternvariante
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
index 709f68fb8f..9063803bc7 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-en.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -209,7 +209,7 @@ layers see \autoref{sec:scrlayer.layers}, starting on
\usepackage{lmodern}
\usepackage{xcolor}
- \usepackage{scrjura}
+ \usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -237,9 +237,9 @@ layers see \autoref{sec:scrlayer.layers}, starting on
the colour selection uses the \Package{xcolor}\IndexPackage{xcolor} package.
For formatting legal texts\textnote{legal texts with
- \hyperref[cha:scrjura]{\Package{scrjura}}} with the
- \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} package, see
- \autoref{cha:scrjura}.
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}} with the
+ \href{https://www.ctan.org/pkg/contract}{\Package{contract}}\IndexPackage{contract}
+ package, see the user manual of the package.
Since this document uses a page style\textnote{page style with
\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} with a
@@ -415,9 +415,9 @@ default note column \PValue{marginpar} is used.%
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{%
+ \protect\Clause[%
title={No Joke without an Audience}%
- }
+ ]
A joke can only be funny if is has an
audience.
\protect\end{contract}%
@@ -534,7 +534,7 @@ The recommended command for this is described below.%
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Humor of a Culture}}
+ \protect\Clause[title={Humor of a Culture}]
\setcounter{par}{0}%
The humour of a joke can be determined by the
cultural environment in which it is told.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
index 5c8d7a10d8..23e1383fb8 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
index 263fba4598..817d7e6217 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-example-de.tex
-% Copyright (c) Markus Kohm, 2013-2022
+% Copyright (c) Markus Kohm, 2013-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -29,7 +29,7 @@
\usepackage{lmodern}
\usepackage{xcolor}
-\usepackage{scrjura}
+\usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -73,7 +73,7 @@ urkomischen, am 9.\,9.\,1999 war der Weg für dieses Gesetz endlich frei.
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Kein Witz ohne Publikum}}
+ \protect\Clause[title={Kein Witz ohne Publikum}]
Ein Witz kann nur dort witzig sein, wo er auf ein Publikum trifft.
\protect\end{contract}
}
@@ -84,7 +84,7 @@ urkomischen, am 9.\,9.\,1999 war der Weg für dieses Gesetz endlich frei.
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Komik der Kultur}}
+ \protect\Clause[title={Komik der Kultur}]
\setcounter{par}{0}Die Komik eines Witzes kann durch das kulturelle
Umfeld, in dem er erzählt wird, bestimmt sein.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
index 540cc82230..1c09cdba71 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
index c624244cf7..d13b17faa2 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% scrlayer-notecolumn-example-en.tex
-% Copyright (c) Markus Kohm, 2018-2022
+% Copyright (c) Markus Kohm, 2018-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -27,7 +27,7 @@
\usepackage{lmodern}
\usepackage{xcolor}
-\usepackage{scrjura}
+\usepackage{contract}
\setkomafont{contract.Clause}{\bfseries}
\setkeys{contract}{preskip=-\dp\strutbox}
@@ -70,7 +70,7 @@ was the way finally clear for this law.
\begin{addmargin}[0pt]{.333\textwidth}
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={No Joke without an Audience}}
+ \protect\Clause[title={No Joke without an Audience}]
A joke can only be funny if is has an audience.
\protect\end{contract}
}
@@ -80,7 +80,7 @@ was the way finally clear for this law.
\syncwithnotecolumn[paragraphs]\bigskip
\makenote[paragraphs]{%
\protect\begin{contract}
- \protect\Clause{title={Humor of a Culture}}
+ \protect\Clause[title={Humor of a Culture}]
\setcounter{par}{0}The humour of a joke can be determined by the
cultural environment in which it is told.
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
index d5a722b766..f6e6791be6 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
@@ -37,12 +37,12 @@
<h1 class="right">Notizspalten mit <tt>scrlayer-notecolumn</tt></h1>
<div id="en">
I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.19">“Note Columns with <tt>scrlayer-notecolumn</tt>”</a> in the
+ <a href="scrguide-en.pdf#chapter.18">“Note Columns with <tt>scrlayer-notecolumn</tt>”</a> in the
KOMA-Script documentation.
</div>
<div id="de">
Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.19">„Notizspalten mit <tt>scrlayer-notecolumn</tt>”</a> in der
+ <a href="scrguide-de.pdf#chapter.18">„Notizspalten mit <tt>scrlayer-notecolumn</tt>”</a> in der
KOMA-Script-Anleitung.
</div>
<div id="fn">
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
index 80673ca33c..27f3f663e3 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
@@ -23,7 +23,7 @@
% ============================================================================
\KOMAProvidesFile{scrlayer-scrpage-de.tex}%
- [$Date: 2023-04-06 10:35:02 +0200 (Do, 06. Apr 2023) $
+ [$Date: 2023-04-06 10:35:02 +0200 (Do, 06 Apr 2023) $
KOMA-Script guide (chapter:scrlayer-scrpage)]
\chapter[{Kopf- und Fußzeilen mit \Package{scrlayer-scrpage}}]
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer.html b/macros/latex/contrib/koma-script/doc/scrlayer.html
index 318e212638..d9e5ed4cc2 100644
--- a/macros/latex/contrib/koma-script/doc/scrlayer.html
+++ b/macros/latex/contrib/koma-script/doc/scrlayer.html
@@ -37,12 +37,12 @@
<h1 class="right">Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt></h1>
<div id="en">
I think you are searching for the chapter
- <a href="scrguide-en.pdf#chapter.17">“Defining Layers and Page Styles with <tt>scrlayer</tt>”</a> in the
+ <a href="scrguide-en.pdf#chapter.16">“Defining Layers and Page Styles with <tt>scrlayer</tt>”</a> in the
KOMA-Script documentation.
</div>
<div id="de">
Ich nehme an, Sie suchen nach dem Kapitel
- <a href="scrguide-de.pdf#chapter.17">„Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt>”</a> in der
+ <a href="scrguide-de.pdf#chapter.16">„Definition von Ebenen und Seitenstilen mit <tt>scrlayer</tt>”</a> in der
KOMA-Script-Anleitung.
</div>
<div id="fn">
diff --git a/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex b/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
index a0f0b8e1e4..00cec703b9 100644
--- a/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
+++ b/macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
@@ -24,7 +24,7 @@
% ============================================================================
\KOMAProvidesFile{scrlttr2-experts-en.tex}
- [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ [$Date: 2023-08-10 10:46:50 +0200 (Do, 10 Aug 2023) $
KOMA-Script guide (chapter: scrlttr2 for experts)]
\translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe
@@ -496,15 +496,13 @@ limitations of \TeX.
\BeginIndexGroup
\BeginIndex{}{languages}%
-% TODO: New translation of the shorter into in German manual should be used.
-% :ODOT
The \Class{scrlttr2} class and the \Package{scrletter} package support many
languages. These include German\Index{language>German} (\PValue{german} for
the old German orthography, \PValue{ngerman} for the new orthography;
\PValue{austrian} for Austrian with the old German orthography,
\PValue{naustrian}\ChangedAt{v3.09}{\Class{scrlttr2}} for Austrian with the
new orthography; and \PValue{nswissgerman}\ChangedAt{v3.13}{\Class{scrlttr2}}
-for Swiss German with the new orthogrphy, \PValue{swissgerman} for Swiss
+for Swiss German with the new orthography, \PValue{swissgerman} for Swiss
German with the old orthography), English\Index{language>English} (among
others, \PValue{english} without specification as to whether American or
British should be used, \PValue{american} and \PValue{USenglish} for American
diff --git a/macros/latex/contrib/koma-script/doc/tocbasic-de.tex b/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
index 6f1a6de96e..ef5fd955ee 100644
--- a/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
+++ b/macros/latex/contrib/koma-script/doc/tocbasic-de.tex
@@ -1,6 +1,6 @@
% ======================================================================
% tocbasic-de.tex
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{tocbasic-de.tex}
- [$Date: 2023-04-04 10:50:12 +0200 (Di, 04. Apr 2023) $
+ [$Date: 2024-06-30 20:35:47 +0200 (So, 30. Jun 2024) $
KOMA-Script guide (package tocbasic)]
\chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}}
@@ -50,8 +50,8 @@ Als kleiner Nebeneffekt kann das Paket auch verwendet werden, um neue
Gleitumgebungen oder den Gleitumgebungen ähnliche nicht gleitende Umgebungen
für Konsultationsobjekte zu definieren. Näheres dazu wird nach der Erklärung
der grundlegenden Anweisungen in den folgenden vier Abschnitten durch ein
-Beispiel in \autoref{sec:tocbasic.example} verdeutlicht, das in kompakter Form
-noch einmal in \autoref{sec:tocbasic.declarenewtoc} aufgegriffen wird.
+Beispiel in \autoref{sec:\LabelBase.example} verdeutlicht, das in kompakter Form
+noch einmal in \autoref{sec:\LabelBase.declarenewtoc} aufgegriffen wird.
\KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis
als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen.
@@ -194,16 +194,20 @@ Abbildungsverzeichnis und »\PValue{lot}« für das Tabellenverzeichnis mit der
Kategorie »\PValue{float}« als \PName{Besitzer} anmeldet und die Optionen für
diesen Besitzer setzt.
-Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
-Patches für mehrere Pakete wie \Package{float}\IndexPackage{float} oder
-\Package{listings}\IndexPackage{listings}, die eigene Verzeichnisse
-bereitstellen. Bei Verwendung von \hyperref[cha:scrhack]{\Package{scrhack}}
-wird unter anderem die jeweilige Dateierweiterung der Liste der bekannten
-Dateierweiterungen hinzugefügt. Dabei wird als \PName{Besitzer}
-»\PValue{float}« verwendet. Dies ist sozusagen der grundlegende Baustein, um
-die Möglichkeiten von \Package{tocbasic} und der \KOMAScript-Klassen auch für
-diese Verzeichnisse automatisch nutzen zu können.%
+Das Paket
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} enthält
+übrigens Patches für mehrere Pakete wie \Package{float}\IndexPackage{float}
+oder \Package{floatrow}\IndexPackage{floatrow}, die eigene Verzeichnisse
+bereitstellen. Bei Verwendung von
+\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}} wird unter anderem
+die jeweilige Dateierweiterung der Liste der bekannten Dateierweiterungen
+hinzugefügt. Dabei wird als \PName{Besitzer} »\PValue{float}« verwendet. Dies
+ist sozusagen der grundlegende Baustein, um die Möglichkeiten von
+\Package{tocbasic} und der \KOMAScript-Klassen auch für diese Verzeichnisse
+automatisch nutzen zu können. Siehe \cite{pkg:scrhack:manual} für weitere
+Informationen.%
\EndIndexGroup
@@ -238,7 +242,7 @@ Beispiel erforderlich, weil das Argument von
\DescRef{\LabelBase.cmd.tocbasic@extend@babel} zwingend bereits expandiert
sein muss. Siehe dazu auch die Erklärung zu
\DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel}.
%
\EndIndexGroup
@@ -287,7 +291,7 @@ Die \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} verwenden die
Anweisung, um für Verzeichnisse, für die Eigenschaft \PValue{chapteratlist}
gesetzt ist, optional einen vertikalen Abstand oder die Kapitelüberschrift in
das Verzeichnis einzutragen. Wie Sie diese Eigenschaft setzen können, ist
-in \autoref{sec:tocbasic.toc} ab \DescPageRef{\LabelBase.cmd.setuptoc} zu
+in \autoref{sec:\LabelBase.toc} ab \DescPageRef{\LabelBase.cmd.setuptoc} zu
finden.%
\EndIndexGroup
@@ -303,7 +307,7 @@ Dateierweiterung in die Liste der bekannten Dateierweiterungen eingefügt wird,
soweit sie dort noch nicht vorhanden ist. Außerdem wird dann
\DescRef{\LabelBase.cmd.tocbasic@starttoc} anstelle von \Macro{@starttoc}
verwendet. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@starttoc} und
-\Macro{@starttoc} ist \autoref{sec:tocbasic.internals},
+\Macro{@starttoc} ist \autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} zu entnehmen.
Mit Hilfe von \Macro{tocbasicautomode} wird also jedes Verzeichnis, das mit
@@ -394,7 +398,7 @@ Anweisung nicht definiert, wird stattdessen die interne Anweisung
alle vier Argumente als obligatorische Argumente und verwendet dann
ihrerseits \Macro{addcontentsline}, um den gewünschten Eintrag
vorzunehmen. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} ist
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@addxcontentsline} zu entnehmen.
Ein Vorteil der Verwendung von \Macro{addxcontentsline} gegenüber
@@ -537,13 +541,14 @@ diesem Fall das Laden von Paket
\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
\cite{package:scrwfile} oder die Verwendung von \LuaLaTeX{} bieten.
-Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
-Patches für mehrere Pakete wie \Package{float}\IndexPackage{float} oder
-\Package{listings}\IndexPackage{listings}, damit deren Verzeichnisbefehle
+Das Paket \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} enthält
+übrigens Patches für mehrere Pakete wie \Package{float}\IndexPackage{float}
+oder \Package{floatrow}\IndexPackage{floatrow}, damit deren Verzeichnisbefehle
\Macro{listoftoc} verwenden. Dadurch stehen viele Möglichkeiten von
\Package{tocbasic} und den \KOMAScript-Klassen auch für deren Verzeichnisse
-zur Verfügung.%
+zur Verfügung. Für weitere Informationen siehe
+\cite{pkg:scrhack:manual}.%
\EndIndexGroup
@@ -692,8 +697,8 @@ Komma getrennte Folge von \PName{Eigenschaften}. Das Paket
Dateierweiterungen gesetzt sein muss, damit sie eine Wirkung hat.
\item[\PValue{noindent}]\ChangedAt{v3.27}{\Package{tocbasic}} veranlasst alle
von \KOMAScript{} bereitgestellten Verzeichniseintragsstile ihre Eigenschaft
- \PValue{indent} (siehe \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes.indent}) zu ignorieren und
+ \PValue{indent} (siehe \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes.indent}) zu ignorieren und
stattdessen den Einzug zu deaktivieren.
\item[\PValue{noparskipfake}] verhindert\ChangedAt{v3.17}{\Package{tocbasic}},
dass vor dem Abschalten des Absatzabstandes für die Verzeichnisse ein
@@ -740,8 +745,8 @@ Komma getrennte Folge von \PName{Eigenschaften}. Das Paket
Verzeichniseintragsstils \PValue{tocline} kann die Eigenschaft weitere
Auswirkungen haben. Siehe dazu die Stil-Eigenschaften
\Option{breakafternumber} und \Option{entrynumberformat} in
- \autoref{tab:tocbasic.tocstyle.attributes} ab
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung der Option
\OptionValueRef{maincls}{listof}{numberline}%
@@ -965,7 +970,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
Einträgen wird der Einzug ab der zweiten Zeile um \PValue{numwidth}
erhöht. Die Seitenzahl wird mit \Macro{normalfont} ausgegeben. Eintragstext
und Seitenzahl werden durch eine punktierte Linie
- verbunden. \autoref{fig:tocbasic.dottedtocline} illustriert die
+ verbunden. \autoref{fig:\LabelBase.dottedtocline} illustriert die
Eigenschaften des Stils.
\begin{figure}
\centering
@@ -1012,7 +1017,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{dottedtocline}}
- \label{fig:tocbasic.dottedtocline}
+ \labelofbase[fig]{dottedtocline}
\end{figure}
\item[\PValue{gobble}] ist der denkbar einfachste Stil. Einträge in diesem
Stil werden unabhängig von allen Einstellungen für
@@ -1037,7 +1042,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
\DescRef{\LabelBase.cmd.numberline}. Der Wert hat bei mehrzeiligen Einträgen
auch keine Auswirkung auf den Einzug ab der zweiten Zeile.
- \autoref{fig:tocbasic.largetocline} illustriert die
+ \autoref{fig:\LabelBase.largetocline} illustriert die
Eigenschaften
des Stils. Dabei wird auch auf"|fällig, dass der Stil einige Ungereimtheiten
der Standardklassen übernommen hat, beispielsweise den fehlenden Einzug ab
@@ -1082,7 +1087,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{largetocline}}
- \label{fig:tocbasic.largetocline}
+ \labelofbase[fig]{largetocline}
\end{figure}
\item[\PValue{tocline}] ist ein flexibler Stil, der in der Voreinstellung für
alle Einträge der \KOMAScript-Klassen verwendet wird. Entsprechend
@@ -1117,9 +1122,9 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
ersetzen, bedarf dann jedoch teilweise eines höheren Aufwands bei der
Konfiguration.
- \autoref{fig:tocbasic.tocline} illustriert einige Längen-Eigenschaften des
- Stils. Die weiteren sind in \autoref{tab:tocbasic.tocstyle.attributes}, ab
- \autopageref{tab:tocbasic.tocstyle.attributes} erklärt.
+ \autoref{fig:\LabelBase.tocline} illustriert einige Längen-Eigenschaften des
+ Stils. Die weiteren sind in \autoref{tab:\LabelBase.tocstyle.attributes}, ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes} erklärt.
\begin{figure}
\centering
\resizebox{.8\linewidth}{!}{\hspace{-2em}% Leicht nach links schieben
@@ -1262,7 +1267,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{tocline}}
- \label{fig:tocbasic.tocline}
+ \labelofbase[fig]{tocline}
\end{figure}
\item[\PValue{toctext}]\ChangedAt{v3.27}{\Package{tocbasic}}%
stellt eine Besonderheit dar. Während alle anderen Stile je Eintrag einen
@@ -1293,7 +1298,7 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
der genannten Ebenen bieten. \DescRef{\LabelBase.cmd.numberline} wird nicht
umdefiniert. Die Breite der Nummer wird von \PValue{numwidth} bestimmt. Bei
mehrzeiligen Einträgen wird der Einzug ab der zweiten Zeile um
- \PValue{numwidth} erhöht. \autoref{fig:tocbasic.undottedtocline} illustriert
+ \PValue{numwidth} erhöht. \autoref{fig:\LabelBase.undottedtocline} illustriert
die Eigenschaften des Stils.
\begin{figure}
\centering
@@ -1331,11 +1336,11 @@ Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
}
\caption{Illustration einiger Attribute des Verzeichniseintragsstils
\PValue{undottedtocline} am Beispiel einer Kapitelüberschrift}
- \label{fig:tocbasic.undottedtocline}
+ \labelofbase[fig]{undottedtocline}
\end{figure}
\end{description}
Eine Erklärung zu den Eigenschaften der von \Package{tocbasic} definierten
-Stile findet sich in \autoref{tab:tocbasic.tocstyle.attributes}.
+Stile findet sich in \autoref{tab:\LabelBase.tocstyle.attributes}.
Neben\ChangedAt{v3.27}{\Package{tocbasic}} der normalen Zuweisung eines Wertes
in der Form \Option{\PName{Schlüssel}=\PName{Wert}} verstehen beide Befehle
für alle Optionen der durch \KOMAScript{} definierten Stile auch die
@@ -1387,7 +1392,7 @@ angegebenen Einstellungen definiert.%
\desccaption{%
Attribute für die vordefinierten Verzeichniseintragsstile von
\Package{tocbasic}%
- \label{tab:tocbasic.tocstyle.attributes}%
+ \labelofbase[tab]{tocstyle.attributes}%
}{%
Attribute der Verzeichniseintragsstile (\emph{Fortsetzung})%
}%
@@ -1401,7 +1406,7 @@ angegebenen Einstellungen definiert.%
\entry{\OptionVName{beforeskip}{Länge}}{%
Vertikaler Abstand, der vor einem Eintrag dieser Ebene im Stil
\PValue{tocline} eingefügt wird (siehe
- \autoref{fig:tocbasic.tocline}). Der Abstand wird je nach Ebene mit
+ \autoref{fig:\LabelBase.tocline}). Der Abstand wird je nach Ebene mit
\Macro{vskip} oder \Macro{addvspace} eingefügt, so dass diesbezüglich
möglichst Kompatibilität zu den Standardklassen und früheren Versionen von
\KOMAScript{} besteht.
@@ -1432,7 +1437,7 @@ angegebenen Einstellungen definiert.%
Ist %\textnote{Achtung!}
für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
- \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \Option{numberline} gesetzt (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}), wie das bei den
\KOMAScript-Klassen und Verwendung deren Option
\OptionValueRef{maincls}{toc}{numberline}%
@@ -1491,7 +1496,7 @@ angegebenen Einstellungen definiert.%
Ist %\textnote{Achtung!}
für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
- \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \Option{numberline} gesetzt (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}), wie dies bei den
\KOMAScript-Klassen und Verwendung deren Option
\OptionValueRef{maincls}{toc}{numberline}%
@@ -1501,15 +1506,15 @@ angegebenen Einstellungen definiert.%
}%
\entry{%
\OptionVName{indent}{Länge}%
- {\phantomsection\label{tab:tocbasic.tocstyle.attributes.indent}}%
+ {\phantomsection\labelofbase[tab]{tocstyle.attributes.indent}}%
}{%
Beim\ChangedAt{v3.27}{\Package{tocbasic}} Stil \PValue{toctext} ist
\PName{Länge} der horizontale Abstand des Absatzes vom linken Rand. Haben
die unterschiedlichen Einträge des Absatzes unterschiedliche
Einstellungen, so gewinnt der letzte Eintrag. Bei den übrigen Stilen ist
\PValue{Länge} entsprechend der horizontale Abstand des Eintrags vom
- linken Rand (siehe \autoref{fig:tocbasic.dottedtocline} und
- \autoref{fig:tocbasic.tocline}).
+ linken Rand (siehe \autoref{fig:\LabelBase.dottedtocline} und
+ \autoref{fig:\LabelBase.tocline}).
Bei den Stilen \PValue{tocline} und \PValue{toctext} wird für alle
Eintragsebenen, deren Name mit »\texttt{sub}« beginnt, eine
@@ -1600,8 +1605,8 @@ angegebenen Einstellungen definiert.%
}%
\entry{\OptionVName{numwidth}{Länge}}{%
Für die Nummer eines Eintrags reservierte Breite (siehe
- \autoref{fig:tocbasic.dottedtocline} bis
- \autoref{fig:tocbasic.undottedtocline}). Dieser Wert wird bei den
+ \autoref{fig:\LabelBase.dottedtocline} bis
+ \autoref{fig:\LabelBase.undottedtocline}). Dieser Wert wird bei den
Stilen \PValue{dottedtocline}, \PValue{tocline} und
\PValue{undottedtocline} ab der zweiten Zeile eines Eintrags zum linken
Einzug hinzugerechnet.
@@ -1828,7 +1833,7 @@ definieren. Üblicherweise werden Verzeichniseinträge mit
\Macro{addcontentsline}\IndexCmd{addcontentsline} oder bei Verwendung von
\Package{tocbasic} vorzugsweise mit
\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (siehe
-\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline})
+\autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline})
erzeugt. Dabei schreibt \LaTeX{} eine zugehörige Anweisung
\Macro{contentsline}\IndexCmd{contentsline} in die jeweilige Hilfsdatei. Beim
Einlesen dieser Hilfsdatei führt \LaTeX{} dann für jedes \Macro{contentsline}
@@ -2086,7 +2091,7 @@ In der Voreinstellung wird diese Anweisung normalerweise für alle
\PName{Dateierweiterungen}, die mit \DescRef{\LabelBase.cmd.addtotoclist} zur
Liste der bekannten Dateierweiterungen hinzugefügt werden, aufgerufen. Über
die Eigenschaft \PValue{nobabel}\important{\PValue{nobabel}} (siehe
-\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}) kann das unterdrückt werden. Für die
Dateinamenerweiterungen \File{toc}, \File{lof} und \File{lot} unterdrückt
\Package{tocbasic} dies bereits selbst, %
@@ -2114,7 +2119,7 @@ dies für jede Dateierweiterung nur einmal geschieht!%
Diese Anweisung ist der eigentliche Ersatz der Anweisung
\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} aus dem
\LaTeX-Kern. Es ist die Anweisung, die sich hinter
-\DescRef{\LabelBase.cmd.listoftoc*} (siehe \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc*} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc*}) verbirgt. Klassen- oder Paketautoren,
die Vorteile von \Package{tocbasic} nutzen wollen, sollten zumindest diese
Anweisung, besser jedoch \DescRef{\LabelBase.cmd.listoftoc} verwenden. Die
@@ -2243,9 +2248,9 @@ gewohnt \DescRef{\LabelBase.cmd.numberline} mit \PName{Gliederungsnummer} als
Argument verwendet.
Die Anweisung \Macro{nonumberline} wird innerhalb
-\DescRef{\LabelBase.cmd.listoftoc} (siehe \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc}) entsprechend der Eigenschaft
-\PValue{numberline} (siehe \autoref{sec:tocbasic.toc},
+\PValue{numberline} (siehe \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}) umdefiniert. Dadurch wirkt sich das
Setzen oder Löschen dieser Eigenschaft \iffree{bereits beim nächsten
\LaTeX-Lauf}{unmittelbar} % Umbruchvarianten
@@ -2259,7 +2264,7 @@ aus.%
\Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{Eintragsebene}
\end{Declaration}
Der\ChangedAt{v3.20}{\Package{tocbasic}} Verzeichniseintragsstil
-\PValue{tocline} (siehe \autoref{sec:tocbasic.tocstyle}) setzt am Ende jedes
+\PValue{tocline} (siehe \autoref{sec:\LabelBase.tocstyle}) setzt am Ende jedes
Eintrags über \Macro{tocbasic@SetPenaltyByTOCLevel} \Macro{penalty} so, dass
nach einem Eintrag kein Seitenumbruch erfolgen darf. Der genaue Wert wird
dabei abhängig von der \PName{Eintragsebene} gewählt.
@@ -2490,8 +2495,8 @@ dieses neue Verzeichnis erzeugt. Auch die Erweiterungen
können dann verwendet werden.
\PName{Dateierweiterung} definiert dabei die Dateiendung der Hilfsdatei, die
-das Verzeichnis repräsentiert, wie dies in \autoref{sec:tocbasic.basics}, ab
-\autopageref{sec:tocbasic.basics} bereits erläutert
+das Verzeichnis repräsentiert, wie dies in \autoref{sec:\LabelBase.basics}, ab
+\autopageref{sec:\LabelBase.basics} bereits erläutert
wurde. Dieser\textnote{Achtung!} Parameter muss angegeben werden und darf
nicht leer sein!
@@ -2501,13 +2506,13 @@ nicht leer sein!
Optionen\textnote{Achtung!} können jedoch \emph{nicht} mit
\DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions} gesetzt werden! Eine
Übersicht über die möglichen Optionen bietet
-\autoref{tab:tocbasic.DeclareNewTOC-options}\iffalse ab
-\autopageref{tab:tocbasic.DeclareNewTOC-options}\fi.
+\autoref{tab:\LabelBase.DeclareNewTOC-options}\iffalse ab
+\autopageref{tab:\LabelBase.DeclareNewTOC-options}\fi.
Wird\ChangedAt{v3.20}{\Package{tocbasic}} Option
\Option{tocentrystyle} nicht gesetzt, so wird bei Bedarf der Stil
\PValue{default} verwendet. Näheres zu diesem Stil ist
-\autoref{sec:tocbasic.tocstyle} zu entnehmen. Soll kein Befehl für
+\autoref{sec:\LabelBase.tocstyle} zu entnehmen. Soll kein Befehl für
Verzeichniseinträge definiert werden, so kann ein leeres Argument, also
wahlweise \OptionValue{tocentrystyle}{}\iffree{}{\unskip} oder
\OptionValue{tocentrystyle}{\PParameter{}} verwendet werden.
@@ -2515,14 +2520,14 @@ wahlweise \OptionValue{tocentrystyle}{}\iffree{}{\unskip} oder
Abhängig\ChangedAt{v3.21}{\Package{tocbasic}} vom Stil der
Verzeichniseinträge können auch alle für diesen Stil gültigen Eigenschaften
gesetzt werden, indem die entsprechenden in
-\autoref{tab:tocbasic.tocstyle.attributes} ab
-\autopageref{tab:tocbasic.tocstyle.attributes} aufgeführten Namen, mit dem
+\autoref{tab:\LabelBase.tocstyle.attributes} ab
+\autopageref{tab:\LabelBase.tocstyle.attributes} aufgeführten Namen, mit dem
Präfix \PValue{tocentry} versehen, in der \PName{Optionenliste} angegeben
werden. Nachträgliche Änderungen am Stil sind mit
\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
\IndexCmd{DeclareTOCStyleEntry}%
\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}} jederzeit
-möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
+möglich. Siehe dazu \autoref{sec:\LabelBase.tocstyle},
\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry}.
% Umbruchoptimierung: Tabelle verschoben.
@@ -2533,7 +2538,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
}]{%
Optionen für die Anweisung
\Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}}%
- \label{tab:tocbasic.DeclareNewTOC-options}%
+ \labelofbase[tab]{DeclareNewTOC-options}%
}{%
Optionen für die Anweisung \Macro{DeclareNewTOC} (\emph{Fortsetzung})%
}%
@@ -2663,7 +2668,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
sie verwendet wird, durchbricht.}%
\entry{\OptionVName{owner}{Besitzer}}{%
Jedes neue Verzeichnis hat bei \Package{tocbasic} einen Besitzer (siehe
- \autoref{sec:tocbasic.basics}). Dieser kann hier angegeben werden. Ist
+ \autoref{sec:\LabelBase.basics}). Dieser kann hier angegeben werden. Ist
kein \PName{Besitzer} angegeben, so wird als \PName{Besitzer} die
Kategorie »\PValue{float}« verwendet, die auch von den \KOMAScript-Klassen
für das Abbildungs- und das Tabellenverzeichnis verwendet wird.}%
@@ -2684,18 +2689,18 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
indem die Namen der Eigenschaften mit dem Präfix \PValue{tocentry} ergänzt
werden. So kann der numerische Wert der Ebene beispielsweise als
\Option{tocentrylevel} angegeben werden. Näheres zu den Stilen ist
- \autoref{sec:tocbasic.tocstyle} ab \autopageref{sec:tocbasic.tocstyle} zu
+ \autoref{sec:\LabelBase.tocstyle} ab \autopageref{sec:\LabelBase.tocstyle} zu
entnehmen.%
}%
\entry{\OptionVName{tocentry\PName{Stiloption}}{Wert}}{%
\ChangedAt{v3.20}{\Package{tocbasic}}%
Weitere Optionen in Abhängigkeit vom via \Option{tocentrystyle} gewählten
- \PName{Eintragsstil}. Siehe dazu \autoref{sec:tocbasic.tocstyle} ab
- \autopageref{sec:tocbasic.tocstyle}. Für die von \Package{tocbasic}
+ \PName{Eintragsstil}. Siehe dazu \autoref{sec:\LabelBase.tocstyle} ab
+ \autopageref{sec:\LabelBase.tocstyle}. Für die von \Package{tocbasic}
vordefinierten Verzeichniseintragsstile finden sich die als
\PName{Stiloption} verwendbaren Attribute in
- \autoref{tab:tocbasic.tocstyle.attributes}, ab
- \autopageref{tab:tocbasic.tocstyle.attributes}.%
+ \autoref{tab:\LabelBase.tocstyle.attributes}, ab
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.%
}%
\entry{\OptionVName{type}{Eintragstyp}}{%
\PName{Eintragstyp} gibt den Typ der Einträge in das entsprechende
@@ -2721,7 +2726,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
\end{desclist}
\begin{Example}
- Das Beispiel aus \autoref{sec:tocbasic.example} kann mit Hilfe der neuen
+ Das Beispiel aus \autoref{sec:\LabelBase.example} kann mit Hilfe der neuen
Anweisung deutlich verkürzt werden:
\begin{lstcode}
\DeclareNewTOC[%
@@ -2751,7 +2756,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
in der ebenfalls \DescRef{maincls.cmd.caption}\IndexCmd{caption} verwendet
werden kann.
- Zum besseren Verständnis zeigt \autoref{tab:tocbasic.comparison} eine
+ Zum besseren Verständnis zeigt \autoref{tab:\LabelBase.comparison} eine
Gegenüberstellung der Anweisungen und Umgebungen für die neu erstellte
Beispielumgebung \Environment{remarkbox} mit den entsprechenden Befehlen und
Umgebungen für Abbildungen.%
@@ -2759,7 +2764,7 @@ möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
\centering
\caption{Gegenüberstellung von Beispielumgebung \Environment{remarkbox}
und Umgebung \Environment{figure}}
- \label{tab:tocbasic.comparison}
+ \labelofbase[tab]{comparison}
\begin{tabularx}{\textwidth}{l@{\hskip\tabcolsep}l@{\hskip\tabcolsep}>{\raggedright}p{7em}@{\hskip\tabcolsep}X}
\toprule
\begin{tabular}[t]{@{}l@{}}
@@ -2850,6 +2855,190 @@ zurecht kommt, das benötigt wird, um den ersten Buchstaben des Wertes von
Verwendung eines aktuellen \Package{hyperref} mit einem aktuellen \LaTeX.%
\EndIndexGroup%
+\section{Nutzung von \Package{tocbasic} mit Fremdklassen}
+\seclabel{standardclasses}
+
+Das Paket \Package{tocbasic} kann natürlich auch mit anderen Klassen als den
+\KOMAScript-Klassen verwendet werden. Ab Version
+3.42\ChangedAt{v3.42}{\Package{tocbasic}} verfügt das Paket sogar über
+zusätzliche Möglichkeiten, um die Integration in solche Fremdklassen zu
+verbessern. Getestet sind diese Möglichkeiten ausschließlich mit den
+Standardklassen. Da diese neuen Möglichkeiten Eingriffe in die Fremdklasse
+benötigen, sind sie als invasiv zu betrachten. Aus diesem Grund ist keine der
+Möglichkeiten in der Voreinstellung aktiv. Stattdessen müssen sie über
+Optionen -- in einem Fall alternativ per Befehl -- aktiviert werden.
+
+Diese neuen Optionen können \emph{nicht} mit
+\DescRef{maincls.cmd.KOMAoptions} oder \DescRef{maincls.cmd.KOMAoption}
+gesetzt werden. Stattdessen sind sie beim Laden von \Package{tocbasic} als
+optionales Argument von \Macro{usepackage} -- bzw. \Macro{RequirePackage} für
+Klassen- und Paketautoren -- anzugeben. Zum Ausgleich ist es möglich, das
+Paket mehrfach mit unterschiedlichen Optionen zu laden.\textnote{Achtung!}
+Allerdings benötigen die Optionen zwingen eine
+\LaTeX-Version\textnote{\LaTeX{} 2022/06/01} ab
+2022/06/01. Mit älteren \LaTeX-Versionen sind die neuen Möglichkeiten daher
+\emph{nicht} verfügbar.
+
+\begin{Declaration}
+ \OptionVName{enablepatch}{Patchliste}
+ \OptionVName{disablepatch}{Patchliste}
+\end{Declaration}
+Option\ChangedAt{v3.42}{\Package{tocbasic}} \Option{enablepatch} aktiviert die
+in der \PName{Patchliste} angegebenen Patches. Dagegen deaktiviert
+\Option{disablepatch} die in der \PName{Patchliste} angegebenen Patches. In
+beiden Fällen ist \PName{Patchliste} eine in einfache geschweifte Klammern
+eingeschlossene, durch Komma separierte Liste von einzelnen Patches. Eine
+Liste der verfügbaren Patches ist in \autoref{tab:\LabelBase.patches} zu
+finden. Beide Optionen können mehrfach verwendet werden. Dabei wäre
+beispielsweise
+\begin{lstcode}
+ \usepackage[enablepatch=chapter,enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+gleichbedeutend mit
+\begin{lstcode}
+ \usepackage[enablepatch={chapter,listoffigure}]{tocbasic}
+\end{lstcode}
+Man beachte, dass im zweiten Fall genau eine geschweiftes Klammernpaar für den
+Wert zu setzen ist. Das Vergessen dieser Klammern führt unweigerlich zu einer
+Fehlermeldung!
+
+Die Patches selbst werden erst bei \verb|\begin{document}| ausgeführt. Daher
+wäre ebenfalls
+\begin{lstcode}
+ \usepackage[enablepatch=chapter]{tocbasic}
+ \usepackage[enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+möglich und würde zu demselben Ergebnis führen.
+
+\begin{table}
+ \centering
+ \caption{für \Package{tocbasic} verfügbare Patches}
+ \labelofbase[tab]{patches}
+ \begin{desctabular}
+ \pventry{all}{%
+ \IndexOption{enablepatch~=all}\IndexOption{disablepatch~=all}%
+ Bei Aktivierung werden alle anderen Patches unabhängig von der
+ individuellen Einstellung ausgeführt. Falls eine \KOMAScript-Klasse
+ geladen ist, gilt dies nicht für \PValue{chapter}.%
+ }%
+ \pventry{chapter}{%
+ \IndexOption{enablepatch~=chapter}\IndexOption{disablepatch~=chapter}%
+ \IndexCmd{chapter}%
+ Über einen generischen Hook wird die Anweisung
+ \Macro{@makechapterhead}\IndexCmd{@makechapterhead} so erweitert,
+ dass bei einem neuen Kapitel ähnlich dem Abbildungsverzeichnis und dem
+ Tabellenverzeichnis ein vertikaler Abstand in alle Verzeichnisse der
+ Kategorie bzw. des Besitzers \PValue{float} eingefügt
+ wird. \important{Achtung!}Nicht nummerierte Kapitel, die mit
+ \Macro{chapter*} oder \Macro{@makeschapterhead} realisiert werden,
+ sind davon nicht betroffen.%
+ }%
+ \pventry{listoffigures}{%
+ \IndexOption{enablepatch~=listoffigures}%
+ \IndexOption{disablepatch~=listoffigures}%
+ Die Anweisung \Macro{listoffigures}\IndexCmd{listoffigures} wird so
+ umdefiniert, dass sie durch \Package{tocbasic} realisiert wird. Damit
+ stehen all von \Package{tocbasic} via \DescRef{\LabelBase.cmd.setuptoc}
+ bereitgestellten und in \autoref{sec:\LabelBase.toc} ab
+ \DescPageRef{\LabelBase.cmd.setuptoc} dokumentierten Möglichkeiten zur
+ Verfügung.%
+ }%
+ \pventry{listoftables}{%
+ \IndexOption{enablepatch~=listoftables}%
+ \IndexOption{disablepatch~=listoftables}%
+ Die Anweisung \Macro{listoftables}\IndexCmd{listoftables} wird so
+ umdefiniert, dass sie durch \Package{tocbasic} realisiert wird. Damit
+ stehen all von \Package{tocbasic} via \DescRef{\LabelBase.cmd.setuptoc}
+ bereitgestellten und in \autoref{sec:\LabelBase.toc} ab
+ \DescPageRef{\LabelBase.cmd.setuptoc} dokumentierten Möglichkeiten zur
+ Verfügung.%
+ }%
+ \pventry{starttoc}{%
+ \IndexOption{enablepatch~=starttoc}%
+ \IndexOption{disablepatch~=starttoc}%
+ \IndexCmd{@starttoc}%
+ Es wird die in \autoref{sec:\LabelBase.basics},
+ \DescPageRef{\LabelBase.cmd.tocbasicautomode} dokumentierte Anweisung
+ \DescRef{\LabelBase.cmd.tocbasicautomode} ausgeführt.%
+ }%
+ \end{desctabular}
+\end{table}
+
+Eine erste Besonderheit stellt
+\OptionValue{enablepatch}{all}\important{\OptionValue{enablepatch}{all}}%
+\IndexOption{enablepatch~=all} dar. Dies ist kein Patch im eigentlichen
+Sinn. Stattdessen sorgt die Einstellung dafür, dass alle Patches unabhängig
+von ihrer individuellen Einstellung ausgeführt werden. Dies kann mit
+\OptionValue{disablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} wieder aufgehoben
+werden. \textnote{Achtung!}Mit \OptionValue{disablepatch}{all} werden also
+nicht sämtliche Patches deaktiviert, sondern es werden wieder die
+Einstellungen für die einzelnen Patches beachtet.
+
+Eine zweite Besonderheit stellt \OptionValue{enablepatch}{chapter}%
+\important{\OptionValue{enablepatch}{chapter}}%
+\IndexOption{enablepatch~=chapter} dar. Da dieser Patch auch Schaden
+anrichten kann, wird seine Verwendung immer in der Terminalausgabe und der
+\File{log}-Datei gemeldet. Bei Verwendung einer \KOMAScript-Klasse kann der
+Patch sogar echten Schaden anrichten. Daher wird in diesem Fall sogar eine
+Warnung ausgegeben.
+
+Da der \PValue{chapter}-Patch mit den \KOMAScript-Klassen normalerweise keinen
+Sinn ergibt, wird er von
+\OptionValue{enablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} bei Verwendung einer \KOMAScript-Klasse zur
+Vermeidung eines eventuellen Schadens auch nicht aktiviert. Bei Verwendung
+einer \KOMAScript-Klasse müsste zur Aktivierung dieses Patches also explizit
+\OptionValue{enablepatch}{chapter} verwendet werden. In der Regel ist in
+diesem Fall davon abzusehen.
+
+\begin{Example}
+ Den Unterschied zwischen Verwendung von \Package{tocbasic} mit und ohne
+ Patch ist rasch zu erkennen, wenn wir das \Environment{remarkbox}-Beispiel
+ aus \autoref{sec:\LabelBase.declarenewtoc} einmal mit der Standardklasse
+ \Class{book} betrachten. Laden wir \Package{tocbasic} zunächst ohne
+ Optionen:%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-nopatch-de.tex}%
+ Wie in den oberen Reihe von \autoref{fig:remarkbox} zu sehen, wird das
+ Abbildungsverzeichnis nicht ins Inhaltsverzeichnis aufgenommen. Die
+ Anweisung \verb|\setuptoc{lof}{totoc}| hat also keine Auswirkungen. Dagegen
+ erscheint das Verzeichnis der Merksätze in Folge von
+ \verb|\setuptoc{lor}{totoc}| sehr wohl im Inhaltsverzeichnis.
+ Zwar erscheint im Abbildungsverzeichnis selbst ein vertikaler Abstand
+ zwischen den Abbildungen von Kapitel~1 und Kapitel~2, nicht jedoch im
+ Verzeichnis der Merksätze.
+
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-nopatch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-nopatch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-nopatch-de.pdf}}\\
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-patch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-patch-de.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-patch-de.pdf}}
+ \caption[{Beispiel für \Package{tocbasic} ohne und mit Patch bei Verwendung
+ von Klasse \Class{book}}]{Beispiel für \Package{tocbasic} ohne (oben)
+ und mit (unten) Patch bei Verwendung von Klasse \Class{book}}
+ \label{fig:remarkbox}
+ \end{figure}
+
+ Die zweite Reihe von \autoref{fig:remarkbox} zeigt dagegen wie es sein soll,
+ nämlich mit einem Eintrag sowohl für das Abbildungsverzeichnis als auch das
+ Verzeichnis der Merksätze im Inhaltsverzeichhnis und außerdem mit einem
+ vertikalen Abstand beim Kapitelwechsel in beiden dieser Verzeichnisse. Der
+ Eintrag für das Abbildungsverzeichnis wurde in nachfolgendem Code durch den
+ \PValue{listoffigures}-Patch erreicht. Dieser sogt dafür, dass
+ \verb|\setuptoc{lof}{totoc}| tatsächlich beachtet wird. Gleichzeitig sorgt
+ der \PValue{chapter}-Patch dafür, dass der Abstand wir gewünscht ins
+ Verzeichnis der Merksätze eingefügt wird.%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-patch-de.tex}%
+ Ja, in der Tat, der einzige Unterschied zwischen den beiden Beispielen ist
+ das Laden von Paket \Package{tocbasic} ohne oder mit Option
+ \OptionValue{enablepatch}{\{chapter,listoffigures\}}.%
+\end{Example}%
+\EndIndexGroup
+\ExampleEndFix
+
\section{Obsolete Befehle}
\seclabel{obsolete}
diff --git a/macros/latex/contrib/koma-script/doc/tocbasic-en.tex b/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
index 768c933207..cb264196b4 100644
--- a/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
+++ b/macros/latex/contrib/koma-script/doc/tocbasic-en.tex
@@ -1,6 +1,6 @@
% ======================================================================
% tocbasic-en.tex
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -24,7 +24,7 @@
% ======================================================================
\KOMAProvidesFile{tocbasic-en.tex}
- [$Date: 2023-04-04 10:50:12 +0200 (Di, 04. Apr 2023) $
+ [$Date: 2024-06-30 20:35:47 +0200 (So, 30. Jun 2024) $
KOMA-Script guide (package tocbasic)]
\translator{Markus Kohm\and Arndt Schubert\and Karl Hagen}
@@ -49,14 +49,14 @@ implementing such features themselves.
As a minor side effect, the package can also be used to define new floating
environments, or floating environments like non-floating environments for
reference objects. For more details, after you read about the basic commands
-in the next four sections, see the example in \autoref{sec:tocbasic.example},
-which is compactly summarized in \autoref{sec:tocbasic.declarenewtoc}.
+in the next four sections, see the example in \autoref{sec:\LabelBase.example},
+which is compactly summarized in \autoref{sec:\LabelBase.declarenewtoc}.
\KOMAScript{} itself uses \Package{tocbasic} not only for the table of
contents but also for the already mentioned lists of figures and tables.
\section{Basic Commands}
-\label{sec:tocbasic.basics}
+\seclabel{basics}
The basic commands are primarily used to handle a list of all known file
extensions\textnote{file extension, content lists} that represent a table or
@@ -182,17 +182,18 @@ the file extensions ``\PValue{lof}'' for the list of figures and
``\PValue{lot}'' for the list of tables with the owner ``\PValue{float}'' and
sets the options for this owner.
-By the way, the \hyperref[cha:scrhack]{\Package{scrhack}}%
-\IndexPackage{scrhack}\important{\hyperref[cha:scrhack]{\Package{scrhack}}}
-package contains patches for several packages, such as
+By the way, the \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} package
+contains patches for several packages, such as
\Package{float}\IndexPackage{float} or
-\Package{listings}\IndexPackage{listings}, which provide their own content
-lists. If you use \hyperref[cha:scrhack]{\Package{scrhack}}, among other
-things, the respective file extensions will be added to the list of known file
-extensions. Their \PName{owner} is also ``\PValue{float}''. This is the basic
-building block, so to speak, allowing you to use the features of
+\Package{floatrow}\IndexPackage{floatrow}, which provide their own content
+lists. If you use \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}},
+among other things, the respective file extensions will be added to the list
+of known file extensions. Their \PName{owner} is also ``\PValue{float}''. This
+is the basic building block, so to speak, allowing you to use the features of
\Package{tocbasic} and the \KOMAScript{} classes with these content lists as
-well.%
+well. See \cite{pkg:scrhack:manual} for more information.%
\EndIndexGroup
@@ -224,7 +225,7 @@ extension of the extension currently being added.
The two \Macro{expandafter} commands in the example are needed because the
argument of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} has to be expanded.
See the description of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel} for more information.%
\EndIndexGroup
@@ -271,7 +272,7 @@ owner will be processed.
The \KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} use this
command to optionally put a vertical skip or the chapter heading in content
lists using the \PValue{chapteratlist} feature. You can learn how to set this
-feature in \autoref{sec:tocbasic.toc} on
+feature in \autoref{sec:\LabelBase.toc} on
\DescPageRef{\LabelBase.cmd.setuptoc}.%
\EndIndexGroup
@@ -283,7 +284,7 @@ This command redefines \LaTeX{} kernel macro \Macro{@starttoc} for class and
package authors so that every time \Macro{@starttoc} is called, the specified
file extension is added to the list of known extensions, if it has not already
been added. It also uses \DescRef{\LabelBase.cmd.tocbasic@starttoc} instead of
-\Macro{@starttoc}. See \autoref{sec:tocbasic.internals},
+\Macro{@starttoc}. See \autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} for more information about
\DescRef{\LabelBase.cmd.tocbasic@starttoc} and \Macro{@starttoc}.
@@ -299,7 +300,7 @@ explicitly. That way they can also take advantage of the other features of
\section{Creating a Content List}
-\label{sec:tocbasic.toc}
+\seclabel{toc}
In the previous section, you learned how to maintain a list of known file
extensions and how to automatically execute commands when adding new
@@ -368,7 +369,7 @@ command is undefined, the internal command
all four arguments as mandatory arguments and then uses
\Macro{addcontentsline} to create the desired entry. You can find more about
\DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} in
-\autoref{sec:tocbasic.internals},
+\autoref{sec:\LabelBase.internals},
\DescPageRef{\LabelBase.cmd.tocbasic@addxcontentsline}.
One advantage of using \Macro{addxcontentsline} rather than
@@ -500,12 +501,15 @@ if there are no more write handles left. Loading the
\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
package \cite{package:scrwfile} can solve this problem.
-Also, the \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
-\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package contains patches
-for several packages, such as \Package{float}\IndexPackage{float} or
-\Package{listings}\IndexPackage{listings}, so that their content-list commands
+Also, the \href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}%
+\IndexPackage{scrhack}%
+\important{\href{https://www.ctan.org/pkg/scrhack}{\Package{scrhack}}} package
+contains patches for several packages, such as
+\Package{float}\IndexPackage{float} or
+\Package{floatrow}\IndexPackage{floatrow}, so that their content-list commands
can use \Macro{listoftoc}. As a result, many features of \Package{tocbasic}
-and the \KOMAScript{} classes are also available for their content lists.%
+and the \KOMAScript{} classes are also available for their content lists. See
+\cite{pkg:scrhack:manual} for more information.%
\EndIndexGroup
@@ -642,8 +646,8 @@ recognizes following features:
\item[\PValue{noindent}]\ChangedAt{v3.27}{\Package{tocbasic}}%
causes all content-list entry styles provided by \KOMAScript{} to ignore
the \PValue{indent} attribute (see
- \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes.indent}) and instead to
+ \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes.indent}) and instead to
deactivate the indentation.%
\item[\PValue{noparskipfake}] prevents\ChangedAt{v3.17}{\Package{tocbasic}}
the insertion of a final \Length{parskip} before switched off paragraph
@@ -681,8 +685,8 @@ recognizes following features:
Using\ChangedAt{v3.20}{\Package{tocbasic}} the \PValue{tocline} entry style
can have additional side effects. See the style attribute
\Option{breakafternumber} and \Option{entrynumberformat} in
- \autoref{tab:tocbasic.tocstyle.attributes} starting on
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} starting on
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
\KOMAScript{} classes set this feature for the file extensions with the
owner \PValue{float} if you use the
@@ -706,7 +710,7 @@ recognizes following features:
not use the \PValue{leveldown}\important{\PValue{leveldown}} feature. The
\KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} activate this
feature with \DescRef{\LabelBase.cmd.AtAddToTocList} (see
- \autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.AtAddToTocList})
+ \autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.AtAddToTocList})
for all content lists with the owner \PValue{float} or with themselves as
owner. Thus, for example, the table of contents, the list of figures, and
the list of tables are automatically printed in a single column for both
@@ -879,8 +883,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
entries, the indent will be increased by the value of \PValue{numwidth} for
the second and following lines. The page number is printed using
\Macro{normalfont}\IndexCmd{normalfont}. The entry text and the page number
- are connected by a dotted line. \hyperref[fig:tocbasic.dottedtocline]%
- {Figure~\ref*{fig:tocbasic.dottedtocline}} illustrates the attributes of
+ are connected by a dotted line. \hyperref[fig:\LabelBase.dottedtocline]%
+ {Figure~\ref*{fig:\LabelBase.dottedtocline}} illustrates the attributes of
this style.
\begin{figure}
\centering
@@ -927,7 +931,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with the
\PValue{dottedtocline} style}
- \label{fig:tocbasic.dottedtocline}
+ \labelofbase[fig]{dottedtocline}
\end{figure}
\item[\PValue{gobble}] is the simplest possible style. Entries in this style,
regardless of the setting of \DescRef{\LabelBase.counter.tocdepth}%
@@ -949,8 +953,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
value of \PName{indent} also has no effect on the indentation from the
second line and after in a multi-line entry.
- \hyperref[fig:tocbasic.largetocline]%
- {Figure~\ref*{fig:tocbasic.largetocline}} illustrates the characteristics of
+ \hyperref[fig:\LabelBase.largetocline]%
+ {Figure~\ref*{fig:\LabelBase.largetocline}} illustrates the characteristics of
this style. You will also notice that the style has adopted some
inconsistencies present in the standard classes, e.\,g. the missing indent
of the second and following lines of an entry or the different values of
@@ -993,7 +997,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with style
\PValue{largetocline}}
- \label{fig:tocbasic.largetocline}
+ \labelofbase[fig]{largetocline}
\end{figure}
\item[\PValue{tocline}] is a flexible style. The \KOMAScript{} classes use
this style by default for all kinds of entries. Likewise, these classes
@@ -1025,11 +1029,11 @@ Currently, \Package{tocbasic} defines the following entry styles:
\PValue{dottedtocline}, \PValue{undottedtocline}, and \PValue{largetocline}
styles, but this requires more effort to configure.
- \hyperref[fig:tocbasic.tocline]%
- {Figure~\ref*{fig:tocbasic.tocline}} illustrates some of the length
+ \hyperref[fig:\LabelBase.tocline]%
+ {Figure~\ref*{fig:\LabelBase.tocline}} illustrates some of the length
attributes of this style. The others are explained in
- \autoref{tab:tocbasic.tocstyle.attributes} starting on
- \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \autoref{tab:\LabelBase.tocstyle.attributes} starting on
+ \autopageref{tab:\LabelBase.tocstyle.attributes}.
\begin{figure}
\centering
\resizebox{.8\linewidth}{!}{%
@@ -1175,7 +1179,7 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustrations of some attributes of a TOC entry with the
\PValue{tocline} style}
- \label{fig:tocbasic.tocline}
+ \labelofbase[fig]{tocline}
\end{figure}
\item[\PValue{toctext}]\ChangedAt{v3.27}{\Package{tocbasic}}%
is a special feature. While all other styles produce one paragraph per
@@ -1204,8 +1208,8 @@ Currently, \Package{tocbasic} defines the following entry styles:
\DescRef{\LabelBase.cmd.numberline} is used unchanged. The width of the
entry number is determined by \PValue{numwidth}. For multi-line entries the
indent will be increased by the value of \PValue{numwidth} for the second
- and following lines. \hyperref[fig:tocbasic.undottedtocline]%
- {Figure~\ref*{fig:tocbasic.undottedtocline}} illustrates the attributes of
+ and following lines. \hyperref[fig:\LabelBase.undottedtocline]%
+ {Figure~\ref*{fig:\LabelBase.undottedtocline}} illustrates the attributes of
this style.
\begin{figure}
\centering
@@ -1243,11 +1247,11 @@ Currently, \Package{tocbasic} defines the following entry styles:
}
\caption{Illustration of some attributes of the \PValue{undottedtocline}
style with the example of a chapter title}%
- \label{fig:tocbasic.undottedtocline}
+ \labelofbase[fig]{undottedtocline}
\end{figure}
\end{description}
You can find an explanation of the attributes of all styles that
-\Package{tocbasic} defines in \autoref{tab:tocbasic.tocstyle.attributes}.
+\Package{tocbasic} defines in \autoref{tab:\LabelBase.tocstyle.attributes}.
In\ChangedAt{v3.27}{\Package{tocbasic}} addition to the usual assignment with
\Option{\PName{key}=\PName{value}}, both commands understand an assignment in
the form \Option{\PName{key}:=\PName{entry level}} for all options of the
@@ -1287,7 +1291,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
\begin{desclist}
\desccaption{%
Attributes of the predefined TOC-entry styles of \Package{tocbasic}%
- \label{tab:tocbasic.tocstyle.attributes}%
+ \labelofbase[tab]{tocstyle.attributes}%
}{%
Attributes of the TOC-entry styles (\emph{continued})%
}%
@@ -1300,7 +1304,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{\OptionVName{beforeskip}{length}}{%
The vertical distance inserted before an entry of this level in the
- \PValue{tocline} style (see \autoref{fig:tocbasic.tocline}). The distance
+ \PValue{tocline} style (see \autoref{fig:\LabelBase.tocline}). The distance
is made using either \Macro{vskip} or \Macro{addvspace} depending on the
\PName{entry level}, to maintain compatibility as far as possible with the
standard classes and earlier versions of \KOMAScript.
@@ -1329,7 +1333,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
If\textnote{Attention!} the \Option{numberline} feature has been activated
for a content list (see \DescRef{\LabelBase.cmd.setuptoc},
- \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ \autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
the case with the \KOMAScript{} classes when the
\OptionValueRef{maincls}{toc}{numberline}%
\IndexOption{toc~=\textKValue{numberline}} option is used, then the
@@ -1380,7 +1384,7 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
If\textnote{Attention!} the \Option{numberline} feature for a content list
has been activated (see \DescRef{\LabelBase.cmd.setuptoc},
- \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ \autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
the case with the \KOMAScript{} classes using the
\OptionValueRef{maincls}{toc}{numberline}%
\IndexOption{toc~=\textKValue{numberline}} option, the unnumbered entries
@@ -1388,14 +1392,14 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{%
\OptionVName{indent}{length}%
- {\phantomsection\label{tab:tocbasic.tocstyle.attributes.indent}}%
+ {\phantomsection\labelofbase[tab]{tocstyle.attributes.indent}}%
}{%
For\ChangedAt{v3.27}{\Package{tocbasic}} the \PValue{toctext} style, the
\PName{length} is the horizontal distance of the paragraph from the left
margin. If different entries within the paragraph have different settings,
the last one is used. For the remaining styles, the \PName{length} is the
horizontal distance of the entry from the left margin (see
- \autoref{fig:tocbasic.dottedtocline} and \autoref{fig:tocbasic.tocline}).
+ \autoref{fig:\LabelBase.dottedtocline} and \autoref{fig:\LabelBase.tocline}).
For the styles \PValue{tocline} and \PValue{toctext}, all entry levels
whose names start with ``\texttt{sub}'' are initialised with the
@@ -1476,8 +1480,8 @@ Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
}%
\entry{\OptionVName{numwidth}{length}}{%
The width reserved for the entry number (see
- \autoref{fig:tocbasic.dottedtocline} to
- \autoref{fig:tocbasic.undottedtocline}). With the \PValue{dottedtocline},
+ \autoref{fig:\LabelBase.dottedtocline} to
+ \autoref{fig:\LabelBase.undottedtocline}). With the \PValue{dottedtocline},
\PValue{tocline}, and \PValue{undottedtocline} styles, this \PName{length}
is added to the \PName{length} of attribute \PValue{indent} for the second
and following lines of the entry text.
@@ -1702,7 +1706,7 @@ content lists are made using
\Macro{addcontentsline}\IndexCmd{addcontentsline}, or preferably, if you use
\Package{tocbasic}, with
\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (see
-\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline}).
+\autoref{sec:\LabelBase.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline}).
In both cases \LaTeX{} writes a corresponding
\Macro{contentsline}\IndexCmd{contentsline} to the appropriate auxiliary file.
When reading this auxiliary file, \LaTeX{} then executes a
@@ -1927,7 +1931,7 @@ This command is typically invoked by default for every file \PName{extension}
added to the list of known extensions with
\DescRef{\LabelBase.cmd.addtotoclist}. You can suppress this with the
\PValue{nobabel}\important{\PValue{nobabel}} feature (see
-\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}). \Package{tocbasic} does this
automatically for the extensions \File{toc}, \File{lof}, and \File{lot} to
avoid switching languages twice in the corresponding files.
@@ -1948,7 +1952,7 @@ file extension!%
This command is the actual replacement for the
\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} command
from the \LaTeX{} kernel. It is the command behind
-\DescRef{\LabelBase.cmd.listoftoc*} (see \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc*} (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc*}). Class or package authors who want to
take advantage of \Package{tocbasic} should at least use this command, or even
better, \DescRef{\LabelBase.cmd.listoftoc}. The command uses
@@ -2063,9 +2067,9 @@ be prefixed by \Macro{nonumberline} without any argument. Otherwise,
as usual.
The \Macro{nonumberline} command is redefined inside
-\DescRef{\LabelBase.cmd.listoftoc} (see \autoref{sec:tocbasic.toc},
+\DescRef{\LabelBase.cmd.listoftoc} (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.listoftoc}) depending on the \PValue{numberline}
-feature (see \autoref{sec:tocbasic.toc},
+feature (see \autoref{sec:\LabelBase.toc},
\DescPageRef{\LabelBase.cmd.setuptoc}). As a result, changing this feature
results in changes of the corresponding TOC immediately at the next \LaTeX{}
run.%
@@ -2077,7 +2081,7 @@ run.%
\Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{entry level}
\end{Declaration}
The\ChangedAt{v3.20}{\Package{tocbasic}} \PValue{tocline}
-content-list style (see \autoref{sec:tocbasic.tocstyle}) sets a
+content-list style (see \autoref{sec:\LabelBase.tocstyle}) sets a
\Macro{penalty} at the end of each entry via
\Macro{tocbasic@SetPenaltyByTOCLevel} so that no page break can occur after an
entry. The exact value chosen depends on the \PName{entry level}.
@@ -2245,7 +2249,7 @@ is sufficient to set a list of features passed as an argument to
\File{lor}.
\section{Everything with Only One Command}
-\label{sec:tocbasic.declarenewtoc}
+\seclabel{declarenewtoc}
The example in the previous section has shows that \Package{tocbasic} makes it
easy to define your own floating environments with their own content lists.
@@ -2267,7 +2271,7 @@ for this new content list. You can also use the \KOMAScript{} extensions
\DescRef{maincls.env.captionbeside} (see \autoref{sec:maincls.floats}).
The \PName{extension} argument is the file extension of the TOC file that
-represents the content list, as explained in \autoref{sec:tocbasic.basics}.
+represents the content list, as explained in \autoref{sec:\LabelBase.basics}.
This argument is mandatory and must not be empty!
The \PName{options} argument is a comma-separated list, of the same type as,
@@ -2275,11 +2279,11 @@ for example, \DescRef{maincls.cmd.KOMAoptions} (see
\autoref{sec:typearea.options}). However\textnote{Attention!}, those options
cannot be set using \DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions}!
You can find an overview of all available options in
-\autoref{tab:tocbasic.DeclareNewTOC-options}.
+\autoref{tab:\LabelBase.DeclareNewTOC-options}.
If\ChangedAt{v3.20}{\Package{tocbasic}} the \Option{tocentrystyle}
option is not used, the \PValue{default} style will be used if required. For
-information about this style, see \autoref{sec:tocbasic.tocstyle}. If you do
+information about this style, see \autoref{sec:\LabelBase.tocstyle}. If you do
not want to define a command for entries to the content list, you can use an
empty argument, i.\,e. \OptionValue{tocentrystyle}{} or
\OptionValue{tocentrystyle}{\PParameter{}}.
@@ -2289,13 +2293,13 @@ Depending\ChangedAt{v3.20}{\Package{tocbasic}}%
the content list, you can set all valid attributes of the selected style as
part of the \PName{options}. To do so, you must add the prefix
\PValue{tocentry} to the names of the attributes given in
-\autoref{tab:tocbasic.tocstyle.attributes}, starting on
-\autopageref{tab:tocbasic.tocstyle.attributes}. You can make later changes to
+\autoref{tab:\LabelBase.tocstyle.attributes}, starting on
+\autopageref{tab:\LabelBase.tocstyle.attributes}. You can make later changes to
the style of the entries at any time using
\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
\IndexCmd{DeclareTOCStyleEntry}%
\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}}. See
-\autoref{sec:tocbasic.tocstyle},
+\autoref{sec:\LabelBase.tocstyle},
\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry} for more information about
the styles.%
%
@@ -2304,7 +2308,7 @@ the styles.%
\desccaption[{Options for command \Macro{DeclareNewTOC}}]{%
Options for the
\Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}} command%
- \label{tab:tocbasic.DeclareNewTOC-options}%
+ \labelofbase[tab]{DeclareNewTOC-options}%
}{%
Options for the \Macro{DeclareNewTOC} command (\emph{continued})%
}%
@@ -2431,7 +2435,7 @@ the styles.%
}%
\entry{\OptionVName{owner}{string}}{%
Every new content list has an owner in \Package{tocbasic} (see
- \autoref{sec:tocbasic.basics}). You can specify this here. If no owner is
+ \autoref{sec:\LabelBase.basics}). You can specify this here. If no owner is
specified, the owner ``\PValue{float}'' is used. The \KOMAScript{} classes
use this owner for the list of figures and the list of tables.%
}%
@@ -2452,16 +2456,16 @@ the styles.%
such an attribute with \PValue{tocentry}. For example, you can change the
numerical level of the entries using the \Option{tocentrylevel} option.
For more information about the styles and their attributes see
- \autoref{sec:tocbasic.tocstyle}, starting on
- \autopageref{sec:tocbasic.tocstyle}.%
+ \autoref{sec:\LabelBase.tocstyle}, starting on
+ \autopageref{sec:\LabelBase.tocstyle}.%
}%
\entry{\OptionVName{tocentry\PName{style-option}}{value}}{%
\ChangedAt{v3.20}{\Package{tocbasic}}%
Additional options depending on the \PName{TOC-entry style} given by
- \Option{tocentrystyle}. See \autoref{sec:tocbasic.tocstyle},
- \autopageref{sec:tocbasic.tocstyle} for additional information about
- TOC-entry styles. See \autoref{tab:tocbasic.tocstyle.attributes},
- \autopageref{tab:tocbasic.tocstyle.attributes} for information about the
+ \Option{tocentrystyle}. See \autoref{sec:\LabelBase.tocstyle},
+ \autopageref{sec:\LabelBase.tocstyle} for additional information about
+ TOC-entry styles. See \autoref{tab:\LabelBase.tocstyle.attributes},
+ \autopageref{tab:\LabelBase.tocstyle.attributes} for information about the
attributes of the predefined TOC-entry styles of package
\Package{tocbasic} that can be used as \PName{style-option}.%
}%
@@ -2487,7 +2491,7 @@ the styles.%
\begin{Example}
Using \Macro{DeclareNewTOC} significantly shortens the example from
- \autoref{sec:tocbasic.example}:
+ \autoref{sec:\LabelBase.example}:
\begin{lstcode}
\DeclareNewTOC[%
type=remarkbox,%
@@ -2499,25 +2503,26 @@ the styles.%
]{lor}
\setuptoc{lor}{chapteratlist}
\end{lstcode}
- In addition to the \Environment{remarkbox} and \Environment{remarkbox*} environments,
- this also defines the \Counter{remarkbox} counter; the commands \Macro{theremarkbox},
- \Macro{remarkboxname}, and \Macro{remarkboxformat} that are used for
- captions; the commands \Macro{listremarkboxnames} and
- \Macro{listofremarkboxes} that are used in the list of remarks; and some
- internal commands that depend on the file name extension \File{lor}.
- If the package should use a default for the floating type, the
- Option{floattype} option can be omitted. If the \Option{nonfloat} option is specified,
- a non-floating environment, \Environment{remarkbox-}, will
- also be defined, inside which you can use \DescRef{maincls.cmd.caption}\IndexCmd{caption}.
- \hyperref[tab:tocbasic.comparison]{Figure~\ref*{tab:tocbasic.comparison}}
- compares the commands, counters, and environments of the
- example \Environment{remarkbox} environment to the commands, counters,
- and environments of figures.%
+ In addition to the \Environment{remarkbox} and \Environment{remarkbox*}
+ environments, this also defines the \Counter{remarkbox} counter; the
+ commands \Macro{theremarkbox}, \Macro{remarkboxname}, and
+ \Macro{remarkboxformat} that are used for captions; the commands
+ \Macro{listremarkboxnames} and \Macro{listofremarkboxes} that are used in
+ the list of remarks; and some internal commands that depend on the file name
+ extension \File{lor}. If the package should use a default for the floating
+ type, the \Option{floattype} option can be omitted. If the \Option{nonfloat}
+ option is specified, a non-floating environment, \Environment{remarkbox-},
+ will also be defined, inside which you can use
+ \DescRef{maincls.cmd.caption}\IndexCmd{caption}.
+ \hyperref[tab:\LabelBase.comparison]{Figure~\ref*{tab:\LabelBase.comparison}}
+ compares the commands, counters, and environments of the example
+ \Environment{remarkbox} environment to the commands, counters, and
+ environments of figures.%
\begin{table}
\centering
\caption{Comparing the example \Environment{remarkbox} environment
with the \Environment{figure} environment}
- \label{tab:tocbasic.comparison}
+ \labelofbase[tab]{comparison}
\begin{tabularx}{\textwidth}{ll>{\raggedright}p{6em}X}
\toprule
\Environment{remarkbox} & \Environment{figure}
@@ -2592,15 +2597,182 @@ convert the first letter of \Option{types} to upper case. Better is of course
to use an up-to-date \Package{hyperref} with an up-to-date \LaTeX.%
\EndIndexGroup
-
-\section{Obsolete Befehle}
+
+\section{Using \Package{tocbasic} with Third-Party Classes}
+\seclabel{standardclasses}
+
+The \Package{tocbasic} package can be utilized with classes beyond the
+\KOMAScript{} ones. Starting from version
+3.42\ChangedAt{v3.42}{\Package{tocbasic}}, the package also provides
+additional functionality to ensure seamless integration with other
+classes. However, note that these new features have been thoroughly tested
+only with standard classes and require invasive adjustments to foreign
+classes. For this reason, none of the features are active in the default
+setting. Instead, they must be activated through options\,---\,in one
+instance, alternatively by command\,---\,to be enabled.
+
+These new options \emph{cannot} be set with \DescRef{maincls.cmd.KOMAoptions}
+or \DescRef{maincls.cmd.KOMAoption}. Instead, when loading \Package{tocbasic}
+they are optional arguments of \Macro{usepackage} --
+resp. \Macro{RequirePackage} for class and package authors. To compensate, it
+is possible to load the package multiple times with different
+options. \textnote{Attention!}However, the options require a \LaTeX{} version
+2022/06/01\textnote{\LaTeX{} 2022/06/01} onwards, so with older \LaTeX{}
+versions the new features are \emph{not} available.
+
+\begin{Declaration}
+ \OptionVName{enablepatch}{list of patches}
+ \OptionVName{disablepatch}{list of patches}
+\end{Declaration}
+Option\ChangedAt{v3.42}{\Package{tocbasic}} enables the patches listed, while
+\Option{disablepatch} disables them. In both cases, the \PName{list of
+ patches} is a comma-separated list of individual patches enclosed in single
+curly braces. A list of available patches can be found in
+\autoref{tab:\LabelBase.patches}. Both options can be used several times. For
+example:
+\begin{lstcode}
+ \usepackage[enablepatch=chapter,enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+is equivalent to
+\begin{lstcode}
+ \usepackage[enablepatch={chapter,listoffigure}]{tocbasic}
+\end{lstcode}
+Note that in the second case, exactly one pair of curly braces must be set for
+the value. Forgetting these brackets will inevitably lead to an error message!
+
+The patches themselves are executed at \verb|\begin{document}|. Therefore
+\begin{lstcode}
+ \usepackage[enablepatch=chapter]{tocbasic}
+ \usepackage[enablepatch=listoffigures]{tocbasic}
+\end{lstcode}
+is also possible and would lead to the same result.
+
+\begin{table}
+ \centering
+ \caption{with \Package{tocbasic} available patches}
+ \labelofbase[tab]{patches}
+ \begin{desctabular}
+ \pventry{all}{%
+ \IndexOption{enablepatch~=all}\IndexOption{disablepatch~=all}%
+ When activated, all other patches are executed regardless of the
+ individual setting. If a \KOMAScript{} class is loaded, this does not
+ apply to \PValue{chapter}.%
+ }%
+ \pventry{chapter}{%
+ \IndexOption{enablepatch~=chapter}\IndexOption{disablepatch~=chapter}%
+ \IndexCmd{chapter}%
+ Via a generic hook, the \Macro{@makechapterhead} command is extended to
+ insert a vertical spacing in all lists of the category or owner
+ \PValue{float} in case of a new chapter similar to the list of figures
+ and the list of tables. Non-numbered chapters created with
+ \Macro{chapter*} or \Macro{@makeschapterhead} are not impacted by this
+ modification.%
+ }%
+ \pventry{listoffigures}{%
+ \IndexOption{enablepatch~=listoffigures}%
+ \IndexOption{disablepatch~=listoffigures}%
+ The \Macro{listoffigures}\IndexCmd{listoffigures} command is now
+ redefined to be implemented by \Package{tocbasic}, allowing for all the
+ features provided by \Package{tocbasic} to be accessed through
+ \DescRef{\LabelBase.cmd.setuptoc}. These features are documented in
+ \autoref{sec:\LabelBase.toc} on \DescPageRef{\LabelBase.cmd.setuptoc}.%
+ }%
+ \pventry{listoftables}{%
+ \IndexOption{enablepatch~=listoftables}%
+ \IndexOption{disablepatch~=listoftables}%
+ The \Macro{listoftables}\IndexCmd{listoftables} command is now redefined
+ to be implemented by \Package{tocbasic}, allowing for all the features
+ provided by \Package{tocbasic} to be accessed through
+ \DescRef{\LabelBase.cmd.setuptoc}. These features are documented in
+ \autoref{sec:\LabelBase.toc} on \DescPageRef{\LabelBase.cmd.setuptoc}.%
+ }%
+ \pventry{starttoc}{%
+ \IndexOption{enablepatch~=starttoc}%
+ \IndexOption{disablepatch~=starttoc}%
+ \IndexCmd{@starttoc}%
+ The \DescPageRef{\LabelBase.cmd.tocbasicautomode} command, which is
+ explained in \autoref{sec:\LabelBase.basics},
+ \DescPageRef{\LabelBase.cmd.tocbasicautomode}, is invoked.%
+ }%
+ \end{desctabular}
+\end{table}
+
+A first noteworthy feature is
+\OptionValue{enablepatch}{all}\important{\OptionValue{enablepatch}{all}}%
+\IndexOption{enablepatch~=all}. While not a true patch, this setting
+guarantees that all patches are executed, irrespective of their individual
+settings. However, this can be overridden by
+\OptionValue{disablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all}. \textnote{Attention!}With
+\OptionValue{disablepatch}{all} not all patches are deactivated, but rather
+the individual settings for each patch are respected.
+
+A second noteworthy feature is
+\OptionValue{enablepatch}{chapter}\important{\OptionValue{enablepatch}{chapter}}%
+\IndexOption{enablepatch~=chapter}. Its usage may result in damage, hence a
+notification is displayed in the terminal output and add to the \File{log}
+file. Utilizing the patch with a \KOMAScript{} class can lead to actual
+damage, and therefore is triggering a warning.
+
+Since the \PValue{chapter} patch has no useful function with the \KOMAScript{}
+classes, it will not be employed by
+\OptionValue{enablepatch}{all}\important{\OptionValue{disablepatch}{all}}%
+\IndexOption{disablepatch~=all} when using a \KOMAScript{} class to prevent
+potential harm. Hence, when using a \KOMAScript{} class,
+\OptionValue{enablepatch}{chapter} would be needed explicitly to enable this
+patch. But you usually should not enable it in this case.
+
+\begin{Example}
+ The contrast between employing \Package{tocbasic} with and without patching
+ is readily apparent when examining the \Environment{remarkbox} example from
+ \autoref{sec:\LabelBase.declarenewtoc} using the class
+ \Class{book}. Initially, let us load \Package{tocbasic} sans options:
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-nopatch-en.tex}%
+
+ As you can see from the upper row of \autoref{fig:remarkbox}, the table of
+ figures is not included in the table of contents. The statement
+ \verb|\setuptoc{lof}{totoc}| has no effect. On the other hand, the list of
+ remarks appears in the table of contents as a result of
+ \verb|\setuptoc{lor}{totoc}|. Although a vertical space appears in the list
+ of figures itself between the figures of chapter~1 and chapter~2, it does
+ not appear in the list of remarks.
+
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-nopatch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-nopatch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-nopatch-en.pdf}}\\
+ \frame{\includegraphics[width=.3\textwidth,page=1]{book-remarkbox-patch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=3]{book-remarkbox-patch-en.pdf}}
+ \frame{\includegraphics[width=.3\textwidth,page=5]{book-remarkbox-patch-en.pdf}}
+ \caption[{Example for \Package{tocbasic} without and with patch when using
+ class \Class{book}}]{Example for \Package{tocbasic} without (above) and
+ with (below) patch when using class \Class{book}}
+ \label{fig:remarkbox}
+ \end{figure}
+
+ The second row of \autoref{fig:remarkbox} demonstrates the proper listing
+ format: including entries for both the list of figures and the list of
+ remarks in the table of contents, as well as vertical spacing when changing
+ chapters in both lists. The code has been updated with the
+ \PValue{listoffigures} patch, replacing the entry for the list of
+ figures. This guarantees that \verb|\setuptoc{lof}{totoc}| will be correctly
+ applied. At the same time, the \PValue{chapter} patch ensures that the
+ offset is inserted into the list of remarks as intended.%
+ \lstinputcode[xleftmargin=2em]{book-remarkbox-patch-en.tex}%
+ Yes, indeed, the only difference of both examples is loading
+ the package \Package{tocbasic} without or with option
+ \OptionValue{enablepatch}{\{chapter,listoffigures\}}.%
+\end{Example}%
+\EndIndexGroup
+\ExampleEndFix
+
+\section{Deprecated Commands}
\seclabel{obsolete}
-% TODO: new translation
-Prior releases of \Package{tocbasic} provide some commands that has been
-renamed, because of a statement of The \LaTeX{} Project Team. Those deprecated
-commands should not be used any longer.
-% :ODOT
+Earlier versions of \Package{tocbasic} had commands that were renamed in
+response to feedback from members of the \LaTeX{} Project Team. These deprecated
+commands should not be used anymore.
\LoadNonFree{tocbasic}{0}%
%
diff --git a/macros/latex/contrib/koma-script/scraddr.dtx b/macros/latex/contrib/koma-script/scraddr.dtx
index 78027dfaf3..9eb34a3693 100644
--- a/macros/latex/contrib/koma-script/scraddr.dtx
+++ b/macros/latex/contrib/koma-script/scraddr.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scraddr.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scraddr.dtx 4104 2024-02-01 09:52:39Z kohm $
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{scraddr.dtx}
@@ -201,13 +201,19 @@
\fi}
% \end{macrocode}
% Not existing files result in an error message. Found files are only noted.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\InputIfFileExists{#1.adr}
- {\typeout{Load addressfile: #1.adr.}}
- {\PackageError{scraddr}
- {File #1.adr not found}
- {The addressfile you wanted is not
- available}}
+ {%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {scraddr}{Address file `#1.adr' loaded}%
+ }%
+ {%
+ \PackageError{scraddr}
+ {File `#1.adr' not found}
+ {The address file you wanted is not available}%
+ }
\endgroup}
% \end{macrocode}
% \end{command}
diff --git a/macros/latex/contrib/koma-script/scrdoc.cls b/macros/latex/contrib/koma-script/scrdoc.cls
deleted file mode 100644
index c80ada6078..0000000000
--- a/macros/latex/contrib/koma-script/scrdoc.cls
+++ /dev/null
@@ -1,354 +0,0 @@
-% ======================================================================
-% scrdoc.cls
-% Copyright (c) Markus Kohm, 2002-2022
-%
-% This file is part of the LaTeX2e KOMA-Script bundle.
-%
-% This work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, version 1.3c of the license.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% This work consists of all files listed in MANIFEST.md.
-% ======================================================================
-% Note: This class was made to shrink size of dtx files.
-% Do not use this class for anything because it may change
-% incompatible from distribution to distribution
-% ======================================================================
-% $Id: scrdoc.cls 3900 2022-06-24 08:00:42Z kohm $
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{scrdoc}[%
- 2022/06/24 v0.1j KOMA-Script source documentation class (deprecated)]
-
-\ClassWarningNoLine{scrdoc}{%
- This class is depreacted since KOMA-Script 3.36!\MessageBreak
- The internal KOMA-Script source documentation class\MessageBreak
- scrdoc is not used any longer for the implementation\MessageBreak
- documentation of KOMA-Script.\MessageBreak
- It is also not compatible with version 3 of the\MessageBreak
- doc package and currently only a workaround is used to\MessageBreak
- force using doc version 2 and to ignore ltxdoc.cfg.\MessageBreak
- You should replace this class urgently, because it will\MessageBreak
- be removed from KOMA-Script soon%
-}
-
-% scrdoc is incompatible with doc v3. Several changes would be needed
-% to improve this. However, currently a kind of emergency workaround can be
-% used.
-\PassOptionsToClass{nocfg,doc2}{scrdoc}
-
-% Replace article class by scrartcl class.
-\newcommand*{\sd@saved@LoadClass}{}
-\let\sd@saved@LoadClass=\LoadClass
-\renewcommand*{\LoadClass}[2][]{%
- \begingroup
- \edef\@tempc{#2}\def\@tempb{article}%
- \ifx\@tempc\@tempb
- \let\LoadClass\sd@saved@LoadClass
- \def\@tempc{scrartcl}%
- \fi
- \edef\@tempc{%
- \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}%
- \@tempc
-}
-\newcommand*{\sd@saved@PassOptionsToClass}{}
-\let\sd@saved@PassOptionsToClass=\PassOptionsToClass
-\renewcommand*{\PassOptionsToClass}[2]{%
- \begingroup
- \edef\@tempc{#2}\def\@tempb{article}%
- \ifx\@tempc\@tempb
- \def\@tempc{scrartcl}%
- \fi
- \edef\@tempc{%
- \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{%
- \@tempc}}%
- \@tempc
-}
-\LoadClassWithOptions{ltxdoc}[2022/06/14]
-\@ifundefined{cs}{\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}}{}
-
-% Use two columns at index
-\setcounter{IndexColumns}{2}
-
-% If \EnableCrossrefs is used, we don't want following macros to be
-% indexed:
-
-\DoNotIndex{\.,\\,\ ,\@Alph,\@M}
-\DoNotIndex{\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading}
-\DoNotIndex{\@afterindentfalse,\@alph,\@arabic}
-\DoNotIndex{\@beginparpenalty}
-\DoNotIndex{\@car,\@cdr,\@centercr}
-\DoNotIndex{\@dblfloat,\@dotsep}
-\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty}
-\DoNotIndex{\@float,\@fontswitch}
-\DoNotIndex{\@gobbletwo}
-\DoNotIndex{\@hangfrom,\@highpenalty}
-\DoNotIndex{\@ifnextchar,\@ifundefined,\@itempenalty}
-\DoNotIndex{\@latex@warning}
-\DoNotIndex{\@m,\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse}
-\DoNotIndex{\@mparswitchtrue}
-\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@nomath}
-\DoNotIndex{\@plus}
-\DoNotIndex{\@tempa,\@tempcnta,\@tempdima,\@tempskipka}
-\DoNotIndex{\@tempswafalse,\@tempswatrue}
-\DoNotIndex{\@tempb,\@tempcntb,\@tempdimb,\@tempskipkb}
-\DoNotIndex{\@tempswbfalse,\@tempswbtrue}
-\DoNotIndex{\@tempc,\@tempcntc,\@tempdimc,\@tempskipkc}
-\DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum,\@twocolumnfalse}
-\DoNotIndex{\@twocolumntrue,\@twosidefalse,\@twosidetrue}
-\DoNotIndex{\@whiledim,\@whilenum}
-\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
-\DoNotIndex{\addvspace,\advance}
-\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
-\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
-\DoNotIndex{\cdot,\centering,\changes,\cleardoublepage,\clearpage}
-\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\cs}
-\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction}
-\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
-\DoNotIndex{\divide,\DoNotIndex}
-\DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end}
-\DoNotIndex{\end@dblfloat}
-\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
-\DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
-\DoNotIndex{\fboxrule,\fboxsep}
-\DoNotIndex{\gdef,\global}
-\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
-\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
-\DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi}
-\DoNotIndex{\include,\input,\InputIfFileExists,\item,\itshape}
-\DoNotIndex{\kern,\kernel@ifnextchar}
-\DoNotIndex{\leavevmode,\leftmark,\leftskip,\let,\lineskip}
-\DoNotIndex{\list,\long}
-\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal}
-\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak}
-\DoNotIndex{\month}
-\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
-\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
-\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
-\DoNotIndex{\numberline,\normalcolor}
-\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
-\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
-\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
-\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
-\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
-\DoNotIndex{\ProvidesClass}
-\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
-\DoNotIndex{\renewcommand,\RequirePackage,\reset@font}
-\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\@Roman,\@roman}
-\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength}
-\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
-\DoNotIndex{\string}
-\DoNotIndex{\the,\thispagestyle,\triangleright,\ttfamily}
-\DoNotIndex{\twocolumn,\typeout}
-\DoNotIndex{\undefined,\usecounter}
-\DoNotIndex{\vfil,\vfill,\vspace}
-\DoNotIndex{\wd,\xdef,\year,\z@}
-% More may be set by the source files.
-
-% Redefine some defaults to handle not only macros and environments
-% but also options, Length, Counters, KOMAvars. Also define some new.
-\def\macro{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{0}}
-\def\environment{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{1}}
-\def\option{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{2}}
-\def\Length{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{3}}
-\def\Counter{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{4}}
-\def\KOMAvar{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{5}}
-\def\KOMAfont{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@{6}}
-\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
- \edef\saved@macroname{\string#2}%
- \ifcase #1
- \edef\saved@indexname{\expandafter\@gobble\string#2}%
- \else
- \let\saved@indexname\saved@macroname
- \fi
- \def\makelabel##1{\llap{##1}}%
- \if@inlabel
- \let\@tempa\@empty \count@\macro@cnt
- \loop \ifnum\count@>\z@
- \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
- \repeat
- \edef\makelabel##1{\llap{\vtop to\baselineskip
- {\@tempa\hbox{##1}\vss}}}%
- \advance \macro@cnt \@ne
- \else \macro@cnt\@ne \fi
- \edef\@tempa{\noexpand\item[%
- \ifcase #1
- \noexpand\PrintMacroName
- \or
- \noexpand\PrintEnvName
- \or
- \noexpand\PrintOptionName
- \or
- \noexpand\PrintLengthName
- \or
- \noexpand\PrintCounterName
- \or
- \noexpand\PrintKOMAvarName
- \or
- \noexpand\PrintKOMAfontName
- \fi
- {\string#2}]}%
- \@tempa
- \global\advance\c@CodelineNo\@ne
- \ifcase #1
- \SpecialMainIndex{#2}\nobreak
- \DoNotIndex{#2}%
- \or
- \SpecialMainEnvIndex{#2}\nobreak
- \or
- \SpecialMainOptionIndex{#2}\nobreak
- \or
- \SpecialMainLengthIndex{#2}\nobreak
- \DoNotIndex{#2}%
- \or
- \SpecialMainCounterIndex{#2}\nobreak
- \or
- \SpecialMainKOMAvarIndex{#2}\nobreak
- \or
- \SpecialMainKOMAfontIndex{#2}\nobreak
- \fi
- \global\advance\c@CodelineNo\m@ne
- \ignorespaces}
-\let\endoption\endmacro
-\let\endLength\endmacro
-\let\endCounter\endmacro
-\let\endKOMAvar\endmacro
-
-% Some new command
-\newcommand*{\File}[1]{\texttt{\mbox{#1}}}
-\newcommand*{\Class}{\File}
-\newcommand*{\Package}{\File}
-\newcommand*{\Macro}{\cs}
-\newcommand*{\Option}{\File}
-
-% The new names we need
-\providecommand*{\EnvName}{Umgebung}% This is german
-\providecommand*{\EnvsName}{Umgebungen}% This is german
-\providecommand*{\OptionName}{Option}% This is german
-\providecommand*{\OptionsName}{Optionen}% This is german
-\providecommand*{\PrintOptionName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeOption}[1]{\strut \MacroFont #1\ }
-\providecommand*{\LengthName}{L\"ange}% This is german
-\providecommand*{\LengthsName}{L\"angen}% This is german
-\providecommand*{\PrintLengthName}[1]{\strut \MacroFont \string #1\ }
-\providecommand*{\PrintDescribeLength}[1]{\strut \MacroFont \string #1\ }
-\providecommand*{\CounterName}{Z\"ahler}% This is german
-\providecommand*{\CountersName}{Z\"ahler}% This is german
-\providecommand*{\PrintCounterName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeCounter}[1]{\strut \MacroFont #1\ }
-\providecommand*{\KOMAvarName}{Variable}% This is german
-\providecommand*{\KOMAvarsName}{Variablen}% This is german
-\providecommand*{\PrintKOMAvarName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeKOMAvar}[1]{\strut \MacroFont #1\ }
-\providecommand*{\KOMAfontName}{Element mit Schrift}% This is german
-\providecommand*{\KOMAfontsName}{Elemente mit Schrift}% This is german
-\providecommand*{\PrintKOMAfontName}[1]{\strut \MacroFont #1\ }
-\providecommand*{\PrintDescribeKOMAfont}[1]{\strut \MacroFont #1\ }
-
-% Defining new main index commands
-\newcommand*{\SpecialMainIndex@Type}[3]{%
- \@bsphack\special@index{%
- #1\actualchar
- {\string\ttfamily\space#1}
- (\string #2)%
- \encapchar main}%
- \special@index{%
- #3:\levelchar{%
- \string\ttfamily\space#1}\encapchar
- main}\@esphack}
-\renewcommand*{\SpecialMainEnvIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\EnvName}{\EnvsName}}
-\newcommand*{\SpecialMainOptionIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
-\newcommand*{\SpecialMainLengthIndex}[1]{%
- \@bsphack\SpecialIndex@{#1}{(\string\LengthName )\encapchar main}%
- \@esphack}
-\newcommand*{\SpecialMainCounterIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
-\newcommand*{\SpecialMainKOMAvarIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
-\newcommand*{\SpecialMainKOMAfontIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAfontName}{\KOMAfontsName}}
-
-% Defining new usage index commands
-\newcommand*{\SpecialIndex@Type}[3]{%
- \@bsphack
- \index{#1\actualchar{\protect\ttfamily#1}
- (#2)\encapchar usage}%
- \index{#3:\levelchar{\protect\ttfamily#1}\encapchar
- usage}\@esphack}
-\renewcommand{\SpecialEnvIndex}[1]{%
- \SpecialIndex@Type{#1}{\EnvName}{\EnvsName}}
-\newcommand*{\SpecialOptionIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
-\newcommand*{\SpecialLengthIndex}[1]{\@bsphack%
- {\let\special@index\index
- \SpecialIndex@{#1}{(\string\LengthName )\encapchar usage}}%
- \@esphack}
-\newcommand*{\SpecialCounterIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
-\newcommand*{\SpecialKOMAvarIndex}[1]{%
- \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
-
-% Define new describe commands
-\newcommand*{\newDescribe}[1]{%
- \expandafter\newcommand\expandafter*\csname Describe#1\endcsname{%
- \leavevmode\@bsphack\begingroup\MakePrivateLetters
- \csname Describe@#1\endcsname}%
- \expandafter\newcommand\expandafter*\csname Describe@#1\endcsname[1]{%
- \endgroup
- \marginpar{\raggedleft\csname PrintDescribe#1\endcsname{##1}}%
- \csname Special#1Index\endcsname{##1}\@esphack\ignorespaces}%
-}
-\newDescribe{Option}
-
-% We use left margin very much, so shift everything to the right
-\if@twoside
-\else
-\addtolength{\oddsidemargin}{1in}
-\setlength{\oddsidemargin}{1.5\oddsidemargin}
-\addtolength{\oddsidemargin}{-1in}
-\fi
-
-% We need some logos:
-\providecommand*{\eTeX}{$\m@th\varepsilon$-\TeX}
-
-% Terms for other languages:
-\AtBeginDocument{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname addto\endcsname\relax
- \ClassWarning{scrdoc}{Package babel not loaded}%
- \else
- \addto\captionsenglish{%
- \def\partname{File}%
- }%
- \addto\captionsngerman{%
- \def\partname{Datei}%
- }%
- \ClassInfo{scrdoc}{Select language \languagename}%
- \expandafter\selectlanguage\expandafter{\languagename}%
- \fi
-}
-
-\endinput
-% end of ``scrdoc.cls''
diff --git a/macros/latex/contrib/koma-script/scrjura.dtx b/macros/latex/contrib/koma-script/scrjura.dtx
index ee0f36a24c..14d96e6ea1 100644
--- a/macros/latex/contrib/koma-script/scrjura.dtx
+++ b/macros/latex/contrib/koma-script/scrjura.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrjura.dtx
-% Copyright (c) Markus Kohm, 2007-2023
+% Copyright (c) Markus Kohm, 2007-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% The KOMA-Script bundle consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrjura.dtx 4062 2023-06-24 15:55:11Z kohm $
+%%% From File: $Id: scrjura.dtx 4106 2024-02-13 15:06:28Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -28,16 +28,16 @@
%<*dtx>
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-24 17:55:11 +0200 (Sa, 24. Jun 2023) $
+ \filedate$Date: 2024-02-13 16:06:28 +0100 (Di, 13. Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4062 $
+ \filerevision$Revision: 4106 $
\endgroup
\expandafter\ifx\csname ProvidesFile\endcsname\relax
\def\ProvidesFile#1[#2]{}
\fi
\ProvidesFile{scrjura.dtx}[\filedate\space\filerevision\space
%</dtx>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package&identify>\ProvidesPackage{scrjura}[%
%<*dtx|(package&identify)>
%!KOMAScriptVersion
@@ -62,11 +62,7 @@
}%
\file{scrjura.sty}{%
\from{scrjura.dtx}{package,identify}%
- \from{scrjura.dtx}{package,init}%
- \from{scrjura.dtx}{package,options}%
- \from{scrjura.dtx}{package,postoptions}%
\from{scrjura.dtx}{package,body}%
- \from{scrjura.dtx}{package,final}%
\from{scrlogo.dtx}{logo}%
}%
}%
@@ -93,6 +89,7 @@
% \changes{v3.36}{2022/01/25}{switch over from \cls*{scrdoc} to
% \cls*{koma-script-source-doc}}
% \changes{v3.40}{2023/04/17}{guide names changed}
+% \changes{v3.42}{2024/02/13}{compatibility wrapper to \pkg*{contract}}
%
% \GetFileInfo{scrjura.dtx}
% \title{\KOMAScript{} in the Law Office\\
@@ -101,11 +98,8 @@
% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
% \maketitle
% \begin{abstract}
-% The \pkg*{scrjura} package is intended for cautelar jurisprudence. It is
-% intended to provide flexible help for lawyers and notaries in drafting
-% contracts, statutes and legal commentaries. It has been developed in
-% cooperation with Dr.\,Alexander Willand, and is still in the process of
-% development.
+% From \KOMAScript{} version~3.42, the \pkg*{scrjura} package is deprecated
+% and only a compatibility wrapper to package \pkg{contract}.
% \end{abstract}
%
% \tableofcontents
@@ -121,1941 +115,23 @@
% \section{Implementation}
%
% \begin{macrocode}
-%<*package>
+%<*package&body>
+\RequirePackageWithOptions{contract}[=v0.9]
% \end{macrocode}
%
-% \changes{v0.7b}{2014/11/11}{General renaming of ``Paragraph'' into
-% ``Clause''}
-%
-% \subsection{Cooperation with \pkg*{hyperref}}
-%
-% If \pkg{hyperref} has already loaded before \pkg*{scrjura} the package cannot
-% work correctly. So we throw an error. Maybe it would be a good idea to make
-% this error fatal. But currently it is only an error.
-% \begin{macrocode}
-%<*init>
-\@ifpackageloaded{hyperref}{%
- \PackageError{scrjura}{Package hyperref already loaded}{%
- If you want to use package scrjura with package hyperref, you have
- to\MessageBreak
- load package scrjura before package hyperref.\MessageBreak
- To solve the problem, you just should move the loading of package
- hyperref\MessageBreak
- behind the loading of package scrjura.}%
-}
-%</init>
-% \end{macrocode}
-%
-% \subsection{Prerequisites}
-%
-% We need package \pkg*{scrkbase}. We could load this also together with
-% \pkg*{tocbasic}, which is loaded later. But loading it on its own, we can
-% require a minimum version.
-% \begin{macrocode}
-%<*init>
-\RequirePackage{scrkbase}[2013/03/26]
-%</init>
-% \end{macrocode}
-%
-% And now, \pkg*{tocbasic}.
-% \begin{macrocode}
-%<*init>
-\RequirePackage{tocbasic}
-%</init>
-% \end{macrocode}
-%
-% \subsection{Options}
-%
-% \begin{option}{contract}
-% \begin{macro}{\if@documentcontract,
-% \@documentcontractfalse,\@documentcontracttrue}
-% \changes{v3.36}{2022/01/25}{switched to a \KOMAScript{} option}
-% Option \opt{contract} can be used to make the whole document to be a
-% contract. But in this case you are not allowed to reuse the \env{contract}
-% environment in the document. Now it is allowed to stop or restart the
-% contract. With older \LaTeX{} this is done by adding \cs{contract} to the
-% end of \cs{document}. With an up to date \LaTeX{} we us a hook.
-% \begin{macrocode}
-%<*options>
-\KOMA@ifkey{contract}{@documentcontract}
-\IfLTXAtLeastTF{2020/10/01}{%
- \AddToHook{begindocument/end}{%
- \RelaxFamilyKey[.scrjura.sty]{KOMA}{contract}%
- \if@documentcontract\expandafter\contract\fi
- }%
-}{%
- \g@addto@macro\document{%
- \RelaxFamilyKey[.scrjura.sty]{KOMA}{contract}%
- \if@documentcontract\expandafter\contract\fi
- }%
-}
-%</options>
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-%
-% \begin{option}{juratotoc}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% Allow to set the toc level of the entries. Value \optvalue{true} is the same
-% like \optvalue{2}, value \optvalue{false} is the same like \cs{maxdimen}.
-% \changes{v0.7}{2013/11/04}{usage of renewed interface with
-% \cs{FamilyKeyState}}
-% \changes{v0.9a}{2015/03/09}{internal value storage}
-% \begin{macro}{\if@juratotoc}
-% \changes{v0.6}{2011/09/29}{replaced by counter}
-% \begin{counter}{juratoclevel}
-% \changes{v0.6}{2011/09/29}{definition moved}
-% \changes{v3.27}{2019/02/25}{removed}
-% \begin{macro}{\toclevel@cpar}
-% \changes{v0.7}{2013/06/09}{new, because of \pkg{hyperref}}
-% \changes{v3.27}{2019/02/25}{handled by \pkg*{tocbasic}}
-% \begin{macrocode}
-%<*options>
-\KOMA@key{juratotoc}[true]{%
- \KOMA@set@ifkey{juratotoc}{@tempswa}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \if@tempswa
- \DeclareTOCStyleEntry[level=2]{default}{cpar}%
- \else
- \DeclareTOCStyleEntry[level=\maxdimen]{default}{cpar}%
- \fi
- \else
- \DeclareTOCStyleEntry[level=#1]{default}{cpar}%
- \fi
- \KOMA@kav@xreplacevalue{scrjura.sty}{juratotoc}{\cpartocdepth}%
-}
-\KOMA@kav@xadd{scrjura.sty}{juratotoc}{\cpartocdepth}%
-%</options>
-% \end{macrocode}
-% \end{macro}
-% \end{counter}
-% \end{macro}
-% \end{option}
-%
-% \begin{option}{juratocnumberwidth,juratocindent}
-% \changes{v0.6}{2011/09/29}{new}
-% \changes{v0.7}{2013/11/04}{usage of renewed interface with
-% \cs{FamilyKeyState}}
-% \changes{v0.9a}{2015/03/09}{internal value storage}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \begin{ilength}{\cpar@numberwidth,\cpar@indent}
-% \changes{v0.6}{2011/09/29}{new}
-% \changes{v3.27}{2019/02/25}{replaced by usage of \cs{DeclareTOCStyleEntry}}
-% Indent and number width of the toc entries.
-% \begin{macrocode}
-%<*options>
-\KOMA@key{juratocnumberwidth}{%
- \DeclareTOCStyleEntry[numwidth=#1]{default}{cpar}%
- \FamilyKeyStateProcessed
- \KOMA@kav@replacevalue{scrjura.sty}{juratocnumberwidth}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{juratocnumberwidth}{2em}
-\KOMA@key{juratocindent}{%
- \DeclareTOCStyleEntry[indent=#1]{default}{cpar}%
- \FamilyKeyStateProcessed
- \KOMA@kav@replacevalue{scrjura.sty}{juratocindent}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{juratocindent}{1.5em}%
-%</options>
-% \end{macrocode}
-% \end{ilength}
-% \end{option}
-%
-% \begin{option}{juratitlepagebreak}
-% \changes{v0.5b}{2010/04/05}{new}
-% The options sets the boolean \cs{if@juratitlepagebreak}.
-% \begin{macro}{\if@juratitlepagebreak,
-% \@juratitlepagebreaktrue,\@juratitlepagebreakfalse}
-% If the boolean is \cs{iftrue} page breaks inside clause headings are
-% allowed (which is not recommended).
-% \begin{macrocode}
-%<*options>
-\KOMA@ifkey{juratitlepagebreak}{@juratitlepagebreak}
-%</options>
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-%
-% \begin{option}{parnumber}
-% \changes{v0.6}{2011/09/29}{new}
-% \changes{v0.6a}{2012/10/15}{value mistake message changed}
-% \changes{v0.7}{2013/11/04}{usage of renewed interface with
-% \cs{FamilyKeyState}}
-% \changes{v0.9a}{2015/03/09}{internal value storage}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% The options switches the (automatic) paragraph numbering.
-% \begin{macrocode}
-%<*options>
-\newif\ifparnumber
-\KOMA@key{parnumber}[true]{%
- \Ifstr{#1}{auto}{%
- \AutoPar
- \FamilyKeyStateProcessed
- \KOMA@kav@remove{scrjura.sty}{parnumber}{manual}%
- \KOMA@kav@remove{scrjura.sty}{parnumber}{auto}%
- \KOMA@kav@add{scrjura.sty}{parnumber}{auto}%
- }{%
- \Ifstr{#1}{manual}{%
- \ManualPar
- \FamilyKeyStateProcessed
- \KOMA@kav@remove{scrjura.sty}{parnumber}{manual}%
- \KOMA@kav@remove{scrjura.sty}{parnumber}{auto}%
- \KOMA@kav@add{scrjura.sty}{parnumber}{manual}%
- }{%
- \KOMA@set@ifkey{parnumber}{parnumber}{#1}%
- \KOMA@kav@replacebool{scrjura.sty}{parnumber}{parnumber}%
- }%
- }%
-}
-\KOMA@kav@add{scrjura.sty}{parnumber}{true}
-\KOMA@kav@add{scrjura.sty}{parnumber}{auto}
-%</options>
-% \end{macrocode}
-% \end{option}
-%
-% \begin{option}{paragraphmark,clausemark}
-% \changes{v0.9h}{2016/04/11}{\opt{paragraphmark} renamed to \opt{clausemark}}
-% \changes{v0.7}{2013/11/04}{usage of renewed interface with
-% \cs{FamilyKeyState}}
-% \changes{v0.9a}{2015/03/09}{internal value storage}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \begin{option}{markright,markboth}
-% \changes{v0.7}{2013/11/04}{deprecated}
-% \changes{v3.39}{2022/11/16}{only with \KOMAScript~3}
-% \begin{command}{\Clausemark}
-% \changes{v0.5e}{2011/08/31}{support for \cs{MakeMarkcase}}
-% The options are used to activate either \cs{markright} or \cs{markboth} for
-% clauses. \cs{Clausemark} expects not only the title but also the
-% number. So it differs from, e.g., \cs{chaptermark}, which uses the counter
-% automatically. But maybe I will change this some time.
-% \begin{macrocode}
-%<*options>
-\newcommand*{\Clausemark}[1]{}
-\KOMA@key{clausemark}{%
- \begingroup
- \KOMA@set@ncmdkey{clausemark}{@tempa}{%
- {false}{0},{off}{0},{no}{0},%
- {forceright}{1},%
- {forceboth}{2},%
- {right}{3},%
- {both}{4}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \ifcase\number\@tempa
- \endgroup
- \let\Clausemark\@gobble
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \markright{\csname MakeMarkcase\endcsname{##1}}}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \markboth{\csname MakeMarkcase\endcsname{##1}}%
- {\csname MakeMarkcase\endcsname{##1}}}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \ifx
- \@mkboth\@gobbletwo
- \else
- \markright{\csname MakeMarkcase\endcsname{##1}}%
- \fi}%
- \or
- \endgroup
- \renewcommand*{\Clausemark}[1]{%
- \@mkboth{\csname MakeMarkcase\endcsname{##1}}%
- {\csname MakeMarkcase\endcsname{##1}}}%
- \else
- \endgroup
- \fi
- \FamilyKeyStateProcessed
- \else
- \endgroup
- \FamilyKeyStateUnknownValue
- \fi
- \KOMA@kav@xreplacevalue{scrjura.sty}{clausemark}{#1}%
-}
-\KOMA@kav@add{scrjura.sty}{clausemark}{false}
-\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
- \KOMA@DeclareDeprecatedOption[scrjura]{markright}{clausemark=forceright}%
- \KOMA@DeclareDeprecatedOption[scrjura]{markboth}{clausemark=forceboth}%
-}
-\KOMA@key{paragraphmark}{%
- \PackageWarningNoLine{scrjura}{%
- You've used obsolete option `paragraphmark'.\MessageBreak
- Usage of this option is deprecated.\MessageBreak
- You should simply replace `paragraphmark'\MessageBreak
- by `clausemark'%
- }%
- \KOMAExecuteOptions[.scrjura.sty]{clausemark=#1}%
-}
-%</options>
-% \end{macrocode}
-% \end{command}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{ref}
-% \changes{v0.5d}{2010/06/07}{new values \optvalue{nopar},
-% \optvalue{nosentence}, \optvalue{OnlyParagraph}}
-% \changes{v0.7}{2013/11/04}{usage of renewed interface with
-% \cs{FamilyKeyState}}
-% \changes{v0.9a}{2015/03/09}{internal value storage}
-% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
-% commands removed}
-% \begin{option}{parcitename,sentencecitename}
-% \changes{v0.5d}{2010/06/07}{deprecated}
-% \changes{v3.39}{2022/11/16}{only with \KOMAScript~3}
-% The formatting of the references of paragraphs and sentences. There are a
-% long a short and a numeric form.
-% \begin{macro}{\parcite@format,\sentencecite@format}
-% Default is the long form. Corresponding values of the two helper macros are:
-% 0 = long, 1 = short, 2 = numerical, -1 = nothing.
-% \begin{macrocode}
-%<*options>
-\newcommand*{\parcite@format}{0}
-\newcommand*{\sentencecite@format}{0}
-% \end{macrocode}
-% \end{macro}
-% The options can be used to change the default.
-% \begin{macrocode}
-\KOMA@key{ref}{%
- \begingroup
- \KOMA@set@ncmdkey{ref}{@tempa}{%
- {parlong}{1},{longpar}{1},{ParL}{1},%
- {parshort}{2},{shortpar}{2},{ParS}{2},%
- {parnumeric}{3},{numericpar}{3},{ParN}{3},%
- {paroff}{4},{nopar}{4},%
- {sentencelong}{10},{longsentence}{10},{SentenceL}{10},%
- {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},%
- {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},%
- {sentenceoff}{40},{nosentence}{40},%
- {long}{11},%
- {short}{22},%
- {numeric}{33},%
- {paragraphonly}{44},{onlyparagraph}{44},%
- {ParagraphOnly}{44},{OnlyParagraph}{44}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \aftergroup\FamilyKeyStateProcessed
- \@tempcnta=\@tempa\relax
- \@tempcntb=\z@
- \@whilenum \@tempcnta>9 \do{%
- \advance\@tempcnta -10\relax
- \advance\@tempcntb \@ne\relax
- }%
- \ifcase \@tempcnta
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup0\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup1\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup2\aftergroup}%
- \or
- \aftergroup\def\aftergroup\parcite@format
- \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
- \fi
- \ifcase \@tempcntb
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup0\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup1\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup2\aftergroup}%
- \or
- \aftergroup\def\aftergroup\sentencecite@format
- \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
- \fi
- \else
- \aftergroup\FamilyKeyStateUnknownValue
- \fi
- \endgroup
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \KOMA@kav@removekey{scrjura.sty}{ref}%
- \ifcase\parcite@format
- \KOMA@kav@add{scrjura.sty}{ref}{parlong}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{parshort}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{parnumeric}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{paroff}%
- \fi
- \ifcase\sentencecite@format
- \KOMA@kav@add{scrjura.sty}{ref}{sentencelong}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentenceshort}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentencenumeric}%
- \or
- \KOMA@kav@add{scrjura.sty}{ref}{sentenceoff}%
- \fi
- \fi
-}
-\KOMA@kav@add{scrjura.sty}{ref}{parlong}%
-\KOMA@kav@add{scrjura.sty}{ref}{sentencelong}%
-\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
- \KOMA@DeclareDeprecatedOption[scrjura]{parcitename}{ref=parlong}
- \KOMA@DeclareDeprecatedOption[scrjura]{sentencecitename}{ref=sentencelong}
-}
-%</options>
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% Execute the options.
-% \begin{macrocode}
-%<*postoptions>
-\KOMAProcessOptions\relax
-%</postoptions>
-% \end{macrocode}
-%
-% \subsection{Deprecated paragraph commands}
-%
-% All these commands are deprecated and now generate error messages instead of
-% code.
-%
-% \begin{command}{\Paragraph,\SubParagraph,\refParagraph,\refParagraphN,
-% \DeprecatedParagraph,\ParagraphCompatibilityHacks}
-% \changes{1.0}{2014/11/22}{throw error for deprecated commands but only once}
-% \begin{macrocode}
-%<*body>
-\providecommand*{\DeprecatedParagraph}{%
- \PackageError{scrjura}{modification of old document needed}{%
- It seem that this document was made for scrjura up to version
- 0.7a.\MessageBreak
- Since scrjura version 0.9 \string\Paragraph, \string\SubParagraph, and all
- depending\MessageBreak
- commands, options, and counters have been renamed.\MessageBreak
- You should replace the terms `Paragraph' and `paragraph` by `Clause`
- and\MessageBreak
- `clause` if they are part of the name of a scrjura feature, otherwise
- this\MessageBreak
- document may produce severall additional error messages and maybe the
- wrong\MessageBreak
- result. Sorry for the inconvenience.%
- }%
- \ParagraphCompatibilityHacks
-}
-\newcommand*{\ParagraphCompatibilityHacks}{%
- \PackageWarning{scrjura}{compatibility hacks for `\string\Paragraph'
- executed.\MessageBreak
- There is no support for documents using these hacks!\MessageBreak
- There is no warranty for real compatibility!\MessageBreak
- Even if the LaTeX run of the document doesn't report\MessageBreak
- any error, the result may be completely wrong.\MessageBreak
- Therefore it is recommended to solve the problem,\MessageBreak
- instead of trying to work around using the\MessageBreak
- compatibility hacks%
- }%
- \gdef\Paragraph{\Clause}%
- \gdef\SubParagraph{\SubClause}%
- \gdef\c@Paragraph{\c@Clause}%
- \gdef\cl@Paragraph{\cl@Clause}%
- \gdef\c@SubParagraph{\c@SubClause}%
- \gdef\cl@SubParagraph{\cl@SubClause}%
- \gdef\theParagraph{\theClause}%
- \gdef\theSubParagraph{\theSubClause}%
- \gdef\refParagraph{\refClause}%
- \gdef\refParagraphN{\refClauseN}%
- \aliaskomafont{Paragraph}{Clause}%
- \scr@ifundefinedorrelax{Paragraphmark}{}{%
- \global\let\Clausemark\Paragraphmark
- }%
-}
-\providecommand*{\Paragraph}{\DeprecatedParagraph\Paragraph}
-\providecommand*{\SubParagraph}{\DeprecatedParagraph\SubParagraph}
-\providecommand*{\refParagraph}{\DeprecatedParagraph\refParagraph}
-\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-%
-% \subsection{Contracts, clauses, paragraphs and sentences}
-%
-%
-% \begin{macro}{\scrjura@env@type}
-% \changes{v0.5d}{2010/04/28}{new}
-% \changes{v0.7b}{2014/11/03}{renamed}
-% This macro shows the currently active \pkg*{scrjura} environment.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\scrjura@env@type}{}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{command}{\ellipsispar}
-% \changes{v0.7}{2013/05/02}{new}
-% \changes{v0.7b}{2014/11/03}{\cs{thecontractAbsoluteClause} made more
-% flexible}
-% \changes{v0.9g}{2016/03/25}{write to \file{aux}-file only \cs{if@filesw}}
-% \begin{command}{\parellipsis}
-% \changes{v0.7}{2013/05/02}{new}
-% Count one or more paragraphs given by the optional argument but print
-% \cs{parellipsis} instead of a real paragraph. The default is either
-% \cs{dots} or \cs{textellipsis} if available.
-% \changes{v0.7}{2013/05/02}{new}
-% \begin{macrocode}
-%<*body>
-\newcommand*{\ellipsispar}[1][1]{%
- \begingroup
- \KOMAoptions{parnumber=manual}\parellipsis\par
- \addtocounter{par}{#1}%
- \if@filesw
- \protected@write\@auxout{}{%
- \string\newmaxpar{\scrjura@env@type}%
- {\csname the\scrjura@env@type
- AbsoluteClause\endcsname}%
- {\thepar}%
- }%
- \fi
- \endgroup
- \addtocounter{par}{-1}\refstepcounter{par}%
- \ignorespaces
-}
-\newcommand*{\parellipsis}{%
- \scr@ifundefinedorrelax{textellipsis}{\dots}{\textellipsis}%
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{command}
-%
-% \begin{environment}{contract}
-% \changes{v0.5d}{2010/04/28}{missing error message added}
-% \changes{v0.5d}{2010/04/28}{not self-redefining any more}
-% \changes{v0.5d}{2010/04/28}{defining \cs{jura@env@type}}
-% \changes{v3.36}{2022/01/25}{defining an environment (because of hooks)}
-% \begin{counter}{contractClause}
-% \begin{command}{\thecontractClause}
-% \changes{v0.9b}{2015/05/01}{must use counter \cnt{Clause} instead of
-% \cnt{contractClause}}
-% \begin{macro}{\contract@Clauseformat}
-% \begin{command}{\Clauseformat,\paragraphformat}
-% \changes{v0.6b}{2013/04/16}{redefinition of \cs{paragraphformat}}
-% \begin{counter}{contractSubClause}
-% \changes{v0.9b}{2015/05/01}{must use counter \cnt{SubClause} instead of
-% \cnt{contractSubClause}}
-% \begin{command}{\thecontractSubClause}
-% \begin{counter}{contractAbsoluteClause}
-% \changes{v0.7}{2013/04/18}{new (internal) counter for all clauses to make
-% it possible to reset the users clause counter}
-% It is not allowed to nest the \env{contract} environments, but you can end
-% them and start them new. But this would not end the contract and start a new
-% contract but only delay it for some other code.
-% \begin{macrocode}
-%<*body>
-\newenvironment{contract}{%
- \ifx\scrjura@env@type\@empty
- \let\@doendpe\scrjura@doendpe
- \let\Clause\contract@paragraph
- \let\c@Clause\c@contractClause
- \edef\cl@Clause{\cl@Clause\cl@contractClause}%
- \let\SubClause\contract@subparagraph
- \let\c@SubClause\c@contractSubClause
- \edef\cl@SubClause{\cl@SubClause\cl@contractSubClause}%
- \let\Sentence\contract@sentence
- \renewcommand*{\scrjura@env@type}{contract}%
- \aliaskomafont{Clause}{contract.Clause}%
- \else
- \PackageError{scrjura}{nested `contract` detected}{%
- You may not use a `contract' environment inside\MessageBreak
- a `\scrjura@env@type' environment or after loading\MessageBreak
- package `scrjura' with option `\scrjura@env@type'!}%
- \fi
-}{}
-\let\if@scrjura@skiphyperref\iftrue
-\let\cl@Clause\@empty
-\let\cl@SubClause\@empty
-\newcounter{contractClause}
-\renewcommand*{\thecontractClause}{%
- {\contract@Clauseformat{\arabic{Clause}}}}
-\DeclareRobustCommand*{\contract@Clauseformat}[1]{\Clauseformat{#1}}
-\newcommand*{\Clauseformat}[1]{\S~#1}
-\newcounter{contractSubClause}
-\@addtoreset{SubClause}{Clause}
-\renewcommand*{\thecontractSubClause}{%
- {\theClause\alph{SubClause}}}
-\newcounter{contractAbsoluteClause}
-%</body>
-% \end{macrocode}
-% \end{counter}
-% \end{command}
-% \end{counter}
-% \end{command}
-% \end{macro}
-% \end{command}
-% \end{counter}
-% \end{environment}
-%
-% \begin{command}{\DeclareNewJuraEnvironment}
-% \changes{v0.9}{2014/11/12}{new}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}
-% Using \cs{@defjuraenvironment} to define a new juristic environment. This
-% can be done only in document preamble.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\DeclareNewJuraEnvironment}[1]{%
- \@ifundefined{#1}{\expandafter\let\csname #1\expandafter\endcsname
- \csname end#1\endcsname}{}%
- \@ifundefined{#1}{\let\reserved@defjuraenvironment\@defjuraenvironment}{%
- \PackageError{scrjura}{ignorring declaration of `#1'}{%
- You've tried to declare jura environment `#1', but
- environment\MessageBreak
- `#1' or command
- \expandafter\string\csname #1\endcsname\space or
- \expandafter\string\csname end#1\endcsname\MessageBreak
- already exists.\MessageBreak
- Declaration will be ignored}%
- \long\def\reserved@defjuraenvironment##1[##2]##3##4{}%
- }%
- \kernel@ifnextchar [%]
- {\reserved@defjuraenvironment{#1}}{\reserved@defjuraenvironment{#1}[]}%
-}
-\@onlypreamble\DeclareNewJuraEnvironment
-% \end{macrocode}
-% \begin{macro}{\@defjuraenvironment}
-% \changes{v0.9}{2014/11/04}{new}
-% \changes{v3.25}{2017/12/08}{new command options \opt{ClauseFont}}
-% \changes{v3.25}{2017/12/08}{\cs{reserved@defjuraenvironment} set back to
-% \cs{relax}}
-% \changes{v3.25}{2017/12/08}{using local instead of global command options}
-% This command is used to define a new \pkg*{scrjura} environment like
-% \env{contract}. Several options are provided (see the user manual for
-% details).
-% \begin{macrocode}
-\DefineFamily{KOMAarg}
-\DefineFamilyMember{KOMAarg}
-\newcommand{\@defjuraenvironment}{}
-\long\def\@defjuraenvironment#1[#2]#3#4{%
- \let\reserved@defjuraenvironment\relax
-% \end{macrocode}
-% The counters:
-% \begin{macrocode}
- \newcounter{#1Clause}%
- \newcounter{#1AbsoluteClause}%
- \newcounter{#1SubClause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{Clause}{#1@Clause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{SubClause}{#1@SubClause}%
- \FamilyCSKey[.scrjura.sty]{KOMAarg}{Sentence}{#1@Sentence}%
- \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}{%
- \expandafter\def\csname #1@Clauseformat \endcsname####1{##1{####1}}%
- \expandafter\edef\csname #1@Clauseformat\endcsname{%
- \noexpand\protect\expandafter\noexpand\csname #1@Clauseformat \endcsname
- }%
- \FamilyKeyStateProcessed
- }
- \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}{%
- \IfExistskomafont{#1.Clause}{%
- \IfIsAliaskomafont{#1.Clause}{%
- \expandafter\let\csname scr@fnt@instead@#1.Clause\endcsname\relax
- \newkomafont{#1.Clause}{##1}%
- }{\setkomafont{#1.Clause}{##1}}%
- }{%
- \newkomafont{#1.Clause}{##1}%
- }%
- }
- \FamilyExecuteOptions[.scrjura.sty]{KOMAarg}{#2}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Sentence}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{SubClause}%
- \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Clause}%
- \@ifundefined{#1@Clauseformat}{%
- \expandafter\DeclareRobustCommand\expandafter*%
- \csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}%
- }{}%
-% \end{macrocode}
-% \changes{v0.9c}{2015/05/13}{defining \cs{the\dots Clause}}
-% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} instead of
-% \cs{csname}\dots\cs{endcsname}}
-% \begin{macrocode}
- \expandafter\renewcommand\expandafter*\csname the#1Clause\endcsname{%
- \protect\@nameuse{#1@Clauseformat}{\arabic{#1Clause}}}%
-% \end{macrocode}
-% Environment:
-% \begin{macrocode}
- \newenvironment{#1}{%
- \par
- \ifx\scrjura@env@type\@empty
- \edef\scrjura@env@type{#1}%
- \let\@doendpe\scrjura@doendpe
- \expandafter\let\expandafter\c@Clause\csname c@#1Clause\endcsname
- \edef\cl@Clause{\cl@Clause\csname cl@#1Clause\endcsname}%
- \expandafter\let\expandafter\c@SubClause
- \csname c@#1SubClause\endcsname
- \edef\cl@SubClause{\cl@SubClause
- \csname cl@#1SubClause\endcsname}%
- \@ifundefined{#1@Clause}{%
- \let\Clause\contract@paragraph
- }{%
- \expandafter\let\expandafter\Clause
- \csname #1@Clause\endcsname
- }%
- \@ifundefined{#1@SubClause}{%
- \let\SubClause\contract@subparagraph
- }{%
- \expandafter\let\expandafter\SubClause
- \csname #1@SubClause\endcsname
- }%
- \@ifundefined{#1@Sentence}{%
- \let\Sentence\contract@sentence
- }{%
- \expandafter\let\expandafter\Sentence\csname #1@Sentence\endcsname
- }%
- \@ifundefined{\scrjura@env@type @everypar}{%
- \expandafter\let
- \csname \scrjura@env@type @everypar\endcsname
- \contract@everypar
- }{}%
-% \end{macrocode}
-% Font alias for \fnt{Clause}. If neither a font not an alias is defined for
-% the new environment \fnt{contract.Clause} is used.
-% \changes{v3.25}{2017/12/08}{Font alias fixed}
-% \begin{macrocode}
- \IfExistskomafont{#1.Clause}{%
- \IfIsAliaskomafont{#1.Clause}{%
- \aliaskomafont{Clause}{\csname scr@fnt@instead@#1.Clause\endcsname}%
- }{%
- \aliaskomafont{Clause}{#1.Clause}%
- }%
- }{%
- \aliaskomafont{Clause}{contract.Clause}%
- }%
- #3%
- \else
- \PackageError{scrjura}{nested scrjura environments detected}{%
- You must not use a `#1' environment inside\MessageBreak
- a `\scrjura@env@type' environment or after loading\MessageBreak
- package `scrjura' with option `\scrjura@env@type'!}%
- \fi
- }{%
- #4%
- \par
- }%
-}
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \@dewjuraenvironment
-% \end{command}%^^A \DeclareNewJuraEnvironment
-%
-% \begin{macro}{\contract@paragraph}
-% This is the \cs{Clause} used by contracts. A contract consists (usually) of
-% several clauses. Each clause has optional elements managed by
-% \meta{key}=\meta{value} pairs handled by \pkg*{scrkbase} and last but not
-% least by \pkg{keyval}.
-% \begin{option}{title,head,nohead}
-% \begin{option}{entry,noentry}
-% \changes{v0.6}{2011/09/30}{deprecated}
-% \begin{option}{tocentry,notocentry}
-% \changes{v0.6}{2011/09/30}{new}
-% Title, running head and toc entry of the clause. The title is the default
-% for running head and toc entry. But you can also use an empty value for
-% each of them or use the \opt{no\dots} options to switch them off.
-% \begin{macrocode}
-%<*body>
-\define@key{contract}{title}{%
- \def\contract@title{#1}%
- \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi
- \ifx\contract@head\relax\def\contract@head{\contract@title}\fi
-}
-\define@key{contract}{entry}{%
- \PackageWarning{scrjura}{deprecated option `entry'.\MessageBreak
- You should use option `tocentry' instead of\MessageBreak
- option `entry'%
- }%
- \def\contract@entry{#1}}
-\define@key{contract}{tocentry}{\def\contract@entry{#1}}
-\define@key{contract}{noentry}[]{%
- \PackageWarning{scrjura}{deprecated option `noentry'.\MessageBreak
- You should use option `notocentry' instead of\MessageBreak
- option `noentry'%
- }%
- \let\contract@entry\relax}
-\define@key{contract}{notocentry}[]{\let\contract@entry\relax}
-\define@key{contract}{head}{\def\contract@head{#1}}
-\define@key{contract}{nohead}[]{\let\contract@head\relax}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-% \begin{option}{number}
-% The number can be changed manually. But clauses without numbers are not
-% allowed. So if you use an empty value, the number is automatically set.
-% \begin{macrocode}
-\define@key{contract}{number}{\def\contract@number{#1}}
-% \end{macrocode}
-% \end{option}
-% \begin{macro}{\contract@preskip,\contract@postskip}
-% \begin{option}{preskip,postskip}
-% The options are used to specify the distance before and after the
-% clause. The preset value of these options are the global settings done by
-% |\setkeys{contract}{…}|.
-% \begin{macrocode}
-\newcommand*{\contract@preskip}{2\baselineskip}
-\newcommand*{\contract@postskip}{\baselineskip}
-\define@key{contract}{preskip}{\def\contract@preskip{#1}}
-\define@key{contract}{postskip}{\def\contract@postskip{#1}}
-% \end{macrocode}
-% \end{option}
-% \end{macro}
-% \begin{option}{dummy}
-% The option switches the boolean \cs{ifcontract@dummy}.
-% \begin{macro}{\ifcontract@dummy}
-% If the boolean is \cs{iftrue} the clause will not be printed. But note: you
-% cannot use this to remove the paragraphs or sentences of the clause. But you
-% can use this option to generate holes in the numbering without manually
-% manipulating the counters.
-% \begin{macrocode}
-\newif\ifcontract@dummy
-\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname}
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-% \begin{fontelement}{contract.Clause}
-% \begin{macro}{\contract@paragraph@font}
-% \changes{v3.25}{2017/12/08}{using element \fnt{Clause} instead of
-% \fnt{contract.Clause}}
-% Correctly this macro should be named \cs{contract@paragraph@format}. But it
-% is already used by some users for ugly tricks. So I will not rename it to
-% avoid problems for existing documents. Additionally it would be better to
-% use a new macro per environment. However the same reason not to change this.
-% \begin{macrocode}
-\newkomafont{contract.Clause}{\sffamily\bfseries\large}
-\newcommand*{\contract@paragraph@font}{\usekomafont{Clause}%
- \@hangfrom}
-% \end{macrocode}
-% \end{macro}
-% \end{fontelement}
-% \begin{counter}{@AbsClause}
-% \begin{macro}{\theH@AbsClause}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{command}{\theHClause,\theHSubClause}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{macrocode}
-% Here we have some not good tested code for \pkg{hyperref}.
-\newcounter{@AbsClause}
-\def\theH@AbsClause{P-\arabic{@AbsClause}}
-\def\theHClause{\theH@AbsClause}
-\def\theHSubClause{\theH@AbsClause}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-% \end{counter}
-% For the headings we use manual paragraph numbering, because we don't want
-% any paragraph numbering inside the heading. After initializing the options
-% they are processed.
-% \changes{v0.7}{2013/04/18}{increase counter \cnt{contractAbsoluteClause}}
-% \changes{v0.7b}{2014/11/03}{more flexible
-% \cnt{\meta{environment}AbsoluteClause}}
-% \begin{macrocode}
-\newcommand*{\contract@paragraph}[1]{%
- \stepcounter{\scrjura@env@type AbsoluteClause}%
- \ManualPar\parnumbertrue
- \let\contract@title\relax
- \let\contract@entry\relax
- \let\contract@head\relax
- \let\contract@number\relax
- \contract@dummyfalse
- \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
-% \end{macrocode}
-% Unless this is a dummy clause, the headings will be initialized and vertical
-% skips will be done.
-% \changes{v0.6a}{2012/10/08}{missing \cs{par} added}
-% \begin{macrocode}
- \ifcontract@dummy\else
- \par
- \@afterindentfalse
- \addvspace{\contract@preskip}%
- \fi
-% \end{macrocode}
-% If there isn't a manual number, we use the next number. If there is a manual
-% number, this number is printed and we take care that labels and
-% \pkg{hyperref} also use the manual number.
-% \changes{v0.6b}{2013/04/16}{using \cs{contract@Clauseformat} for manual
-% numbers too}
-% \changes{v0.9c}{2015/05/13}{\cs{thecontractClause} replaced by
-% environment-dependent macro}
-% \begin{macrocode}
- \ifx\contract@number\relax
- \let\p@Clause\@empty
- \expandafter\let\expandafter\theClause
- \csname the\scrjura@env@type Clause\endcsname
- \refstepcounter{Clause}%
- \else
- \begingroup
- \let\@elt\@stpelt
- \cl@Clause
- \endgroup
-% \end{macrocode}
-% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} instead of
-% \cs{csname}\dots\cs{endcsname}}
-% \changes{v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
-% \begin{macrocode}
- \protected@edef\theClause{%
- \protect\@nameuse{\scrjura@env@type @Clauseformat}{\contract@number}%
- }%
- \protected@edef\@currentlabel{\theClause}%
- \def\@currentcounter{Clause}%
- \fi
- \stepcounter{@AbsClause}%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname if@skiphyperref\endcsname\relax
- \else
- \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
- \csname if@skiphyperref\endcsname
- \fi
- \if@scrjura@skiphyperref\else
- \hyper@refstepcounter{@AbsClause}%
- \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
- \fi
-% \end{macrocode}
-% For simplification we use the code of clauses for sub-clauses.
-% \begin{macrocode}
- \let\theSubClause\theClause
-% \end{macrocode}
-% Unless for dummy clauses, the heading is printed, the toc entry is done
-% and also the running head.
-% \changes{v0.7}{2013/04/28}{distance behind the number is part of the number}
-% \changes{v0.9i}{2017/02/23}{usage of \cs{ext@toc}}
-% \begin{macrocode}
- \ifcontract@dummy\else
- \begingroup
- \if@juratitlepagebreak\else\interlinepenalty\@M\fi
- \contract@paragraph@font{\theClause
- \ifx\contract@title\relax\else\enskip\fi}%
- \contract@title
- \ifx\contract@entry\relax\else
- \expandafter\addxcontentsline\expandafter{\ext@toc}%
- {cpar}[\theClause]\contract@entry
- \addxcontentsline{cpa}{cpar}[\theClause]\contract@entry
- \fi
- \ifx\contract@head\relax\else
- \expandafter\Clausemark\expandafter{%
- \expandafter\theSubClause\expandafter\enskip\contract@head}%
- \fi
- \par
- \endgroup\nobreak\vskip\contract@postskip
-% \end{macrocode}
-% Last but not least paragraph numbering is initialized.
-% \begin{macrocode}
- \scrjura@afterheading
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\contract@subparagraph}
-% \changes{v0.6a}{2012/10/08}{fehlendes \cs{par} ergänzt}
-% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteClause} wird
-% erhöht}
-% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der
-% Nummer setzen}
-% \changes{v0.9i}{2017/02/23}{Verwendung von \cs{ext@toc}}
-% \changes{v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
-% Das entspricht bis auf wenige Kleinigkeiten, die Unterparagraphen betreffen,
-% |\contract@paragraph|
-% \begin{macrocode}
-%<*body>
-\newcommand*{\contract@subparagraph}[1]{%
- \stepcounter{\scrjura@env@type AbsoluteClause}%
- \ManualPar\parnumbertrue
- \let\contract@title\relax
- \let\contract@entry\relax
- \let\contract@head\relax
- \let\contract@number\relax
- \contract@dummyfalse
- \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
- \ifcontract@dummy\else
- \par
- \@afterindentfalse
- \vskip\contract@preskip
- \fi
- \ifx\contract@number\relax
- \let\p@SubClause\@empty
- \let\theSubClause\thecontractSubClause
- \refstepcounter{SubClause}%
- \else
- \begingroup
- \let\@elt\@stpelt
- \cl@SubClause
- \endgroup
- \protected@edef\theSubClause{\theClause\contract@number}%
- \protected@edef\@currentlabel{\theSubClause}%
- \def\@currentcounter{SubClause}%
- \fi
- \stepcounter{@AbsClause}%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname if@skiphyperref\endcsname\relax
- \else
- \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
- \csname if@skiphyperref\endcsname
- \fi
- \if@scrjura@skiphyperref\else
- \hyper@refstepcounter{@AbsClause}%
- \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
- \fi
- \ifcontract@dummy\else
- \begingroup
- \if@juratitlepagebreak\else\interlinepenalty\@M\fi
- \contract@paragraph@font{\theSubClause
- \ifx\contract@title\relax\else\enskip\fi}%
- \contract@title
- \ifx\contract@entry\relax\else
- \expandafter\addxcontentsline\expandafter{\ext@toc}%
- {cpar}[\theSubClause]\contract@entry
- \addxcontentsline{cpa}{cpar}[\theSubClause]\contract@entry
- \fi
- \ifx\contract@head\relax\else
- \expandafter\Clausemark\expandafter{%
- \expandafter\theSubClause\expandafter\enskip\contract@head}%
- \fi
- \par
- \endgroup
- \nobreak\vskip\contract@postskip
- \scrjura@afterheading
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{command}{\AutoPar,\ManualPar}
-% Switching between automatic or manual paragraph numbers for all
-% \pkg*{scrjura} environments.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\AutoPar}{%
- \expandafter\let\expandafter\scrjura@everypar
- \csname \scrjura@env@type @everypar\endcsname
-}
-\newcommand*{\ManualPar}{%
- \let\scrjura@everypar\relax
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-% \begin{macro}{\scrjura@afterheading,\jura@afterheading}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@afterheading} renamed}
-% \changes{v0.7b}{2014/11/03}{no argument}
-% \changes{v3.27}{2019/02/25}{\cs{CheckCommand} for \cs{@afterheading}}
-% Similar to \cs{afterheading} but with automatic paragraph numbers.
-% \begin{description}
-% \item[ToDo:] Test if this can be done using \LaTeX{} hooks, depending on the
-% \LaTeX{} release.
-% \end{description}
-% \begin{macrocode}
-%<*body>
-\CheckCommand*{\@afterheading}{%
- \@nobreaktrue
- \everypar{%
- \if@nobreak
- \@nobreakfalse
- \clubpenalty \@M
- \if@afterindent \else
- {\setbox\z@\lastbox}%
- \fi
- \else
- \clubpenalty \@clubpenalty
- \everypar{}%
- \fi}%
-}
-\newcommand*{\scrjura@afterheading}{%
- \@nobreaktrue
- \everypar{%
- \if@nobreak
- \@nobreakfalse
- \clubpenalty \@M
- \if@afterindent \else
- {\setbox\z@\lastbox}%
- \fi
- \else
- \clubpenalty \@clubpenalty
- \everypar{%
- \scrjura@everypar
- }%
- \fi
- \scrjura@everypar
- }%
- \AutoPar
-}
-% \end{macrocode}
-% \begin{macro}{\scrjura@everypar,\jura@everypar}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@everypar} renamed}
-% The macro to be used at the very beginning of every paragraph to add the
-% number. To be used only inside \pkg*{scrjura} environments, so empty outside.
-% \begin{macrocode}
-\newcommand*{\scrjura@everypar}{}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@doendpe}
-% \LaTeX{} used this macro, to reset all paragraph actions at the end of
-% environments. To avoid unwanted switching-off of the paragraph number it
-% will be reinitialized.
-% \begin{macro}{\scrjura@doendpe}
-% \begin{macro}{\IncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{used temporary}
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
-% \begin{macro}{\@gobble@IncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{used temporary}
-% \begin{macro}{\EndIncludeInRelease}
-% \changes{v0.9e}{2015/11/03}{used temporary}
-% From \LaTeX{} 2015/01/01 a different definition of \cs{@doendpe} is used. So
-% we also have to use different versions depending on the release. We do so
-% with some tricks. Maybe this should be replaced by usage of
-% \cs{IfLTXAtLeastTF} from already loaded \pkg*{scrbase}.
+% \begin{macro}{\contract@paragraph,\contract@subparagraph}
+% Both macros of \pkg{contract} support an optional argument, but
+% \pkg*{scrjura} expects a mandatory argument instead.
% \begin{macrocode}
-\providecommand*{\IncludeInRelease}[3]{%
- \PackageInfo{scrjura}{temporary definition of \string\IncludeInRelease}%
- \Ifstr{#1}{0000/00/00}{%
- \let\IncludeInRelease\@undefined
- \def\EndIncludeInRelease{\let\EndIncludeInRelease\@undefined}%
- }{%
- \let\EndIncludeInRelease\relax
- \long\def\@gobble@IncludeInRelease##1\EndIncludeInRelease{%
- \let\@gobble@IncludeInRelease\@undefined
- }%
- \expandafter\@gobble@IncludeInRelease
- }%
-}
-\IncludeInRelease{2015/01/01}{\@doendpe}{clubpenalty fix}
-\CheckCommand*\@doendpe{\@endpetrue
- \def\par{\@restorepar
- \clubpenalty\@clubpenalty
- \everypar{}\par\@endpefalse}\everypar
- {{\setbox\z@\lastbox}%
- \everypar{}\@endpefalse}}
-\newcommand*{\scrjura@doendpe}{%
- \@endpetrue
- \def\par{%
- \@restorepar
- \clubpenalty\@clubpenalty
- \everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \par\@endpefalse
- }%
- \everypar{%
- {\setbox\z@\lastbox}\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \@endpefalse
- }%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix}
-\CheckCommand*\@doendpe{\@endpetrue
- \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
- {{\setbox\z@\lastbox}\everypar{}\@endpefalse}}
-\newcommand*{\scrjura@doendpe}{%
- \@endpetrue
- \def\par{%
- \@restorepar\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \par\@endpefalse
- }%
- \everypar{%
- {\setbox\z@\lastbox}\everypar{%
- \csname scrjura@everypar\endcsname
- }%
- \@endpefalse
- }%
-}
-\EndIncludeInRelease
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \EndIncludeInRelease
-% \end{macro}%^^A \@gobble@IncludeInRelease
-% \end{macro}%^^A \IncludeInRelease
-% \end{macro}%^^A \scrjura@doendpe
-% \end{macro}%^^A \@doendpe
-% \end{macro}%^^A \scrjura@everypar
-%
-% \subsection{Entry to table of contents}
-% \begin{macro}{\l@cpar}
-% Toc entry of contract clauses.
-% \changes{v3.27}{2019/02/25}{usage of \pkg*{tocbasic}}
-% This is done using \pkg*{tocbasic}. The definition has to be part of the
-% initialization of the package, otherwise package options wouldn't be able to
-% change the setting.
-% \begin{macrocode}
-%<*init>
-\DeclareTOCStyleEntry[%
- indent=1.5em,
- numwidth=2em,
- level=\maxdimen
-]{default}{cpar}
-%</init>
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Numbering of paragraphs and sentences}
-%
-% \begin{macro}{\scrjura@separator,\jura@separator}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@separator} renamed}
-% Used to make it possible to remove white spaces at the beginning or end.
-% \begin{macrocode}
-%<*body>
-\DeclareRobustCommand*{\scrjura@separator}[1]{#1}
-%</body>
+\NewCommandCopy{\scrjura@paragraph}{\contract@paragraph}
+\NewCommandCopy{\scrjura@subparagraph}{\contract@subparagraph}
+\RenewDocumentCommand\contract@paragraph{m}{\scrjura@paragraph[{#1}]}
+\RenewDocumentCommand\contract@subparagraph{m}{\scrjura@subparagraph[{#1}]}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\scrjura@usetype,\jura@usetype}
-% \changes{v0.5d}{2010/04/28}{new}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@usetype} renamed}
-% By default it is robust but does only call \cs{scrjura@@usetype} with the
-% only argument.
-% \begin{macro}{\scrjura@@usetype,\jura@@usetype}
-% \changes{v0.5d}{2010/04/28}{new}
-% \changes{v0.7b}{2014/11/03}{\cs{jura@@usetype} renamed}
-% This second command is not robust and can easily be redefined. But by
-% default it also does nothing but eating the argument.
-% \begin{macrocode}
-%<*body>
-\DeclareRobustCommand*{\scrjura@usetype}[1]{\scrjura@@usetype{#1}}
-\newcommand*{\scrjura@@usetype}[1]{}
-%</body>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\contract@everypar}
-% The \cs{scrjura@everpar} used by contracts.
-% \begin{macro}{\ifparnumber,\parnumbertrue,\parnumberfalse}
-% \changes{v0.6}{2011/09/29}{moved the definition into the definition of the
-% option}
-% \begin{counter}{par}
-% \begin{command}{\thepar,\theHpar}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{command}{\parformat}
-% \changes{v0.7}{2013/06/07}{new font element \fnt{parnumber}}
-% \begin{command}{\parformatseparation}
-% \changes{v0.9f}{2016/02/06}{new}
-% \begin{macro}{\p@par}
-% \changes{v0.5d}{2010/04/28}{added \cs{jura@usetype} with argument
-% \cs{jura@env@type}}
-% \begin{command}{\withoutparnumber}
-% \changes{v3.25}{2017/12/19}{new}
-% The boolean defines if paragraph numbers have to be used. If they are
-% deactivated also manual paragraph numbers are deactivated and the paragraphs
-% are not counted. Otherwise the paragraphs are numbered using \cs{thepar}. It
-% is important to reset the paragraph counter with every clause and
-% sub-clause. And for labels the parent object the clause has to be used.
-% \begin{macrocode}
-%<*body>
-\newcounter{par}
-\renewcommand*{\thepar}{\arabic{par}}
-\def\theHpar{\theH@AbsClause-\Roman{par}}
-\newcommand*{\parformat}{(\thepar)}
-\newcommand*{\parformatseparation}{\nobreakspace}
-\newkomafont{parnumber}{}
-\renewcommand*\p@par{{\scrjura@usetype{\scrjura@env@type}\theSubClause\scrjura@separator{\nobreakspace}}}
-\@addtoreset{par}{Clause}
-\@addtoreset{par}{SubClause}
-\newcommand*{\withoutparnumber}{}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-% \end{command}
-% \end{command}
-% \end{command}
-% \end{counter}
-% \end{macro}
-% \changes{v0.5c}{2010/04/26}{first argument of \cs{newmaxpar} and second
-% argument of \cs{getmaxpar} is \meta{contract} not \meta{contractpars}}
-% \changes{v0.5c}{2010/04/26}{\cs{contract@Clauseformat} expands while writing
-% to its own argument}
-% \changes{v0.7}{2013/04/18}{using counter \cnt{contractAbsoluteClause}}
-% \changes{v0.7}{2013/05/23}{initializing sentence number for manually
-% numbered paragraphs to 0 instead of 1, because first action of
-% \cs{Sentence} is increasing the number}
-% \changes{v0.7}{2013/05/23}{recognize paragraph number of \cs{thisparnumber}}
-% \changes{v0.7}{2013/06/06}{if paragraph numbers are not completely numerical
-% always set the number}
-% \changes{v0.7b}{2014/11/03}{more flexible replacement of
-% \cnt{contractAbsoluteClause}}
-% \changes{v0.9f}{2016/02/06}{\cs{nobreakspace} replaced by
-% \cs{parformatseparation}}
-% \changes{v0.9g}{2016/03/25}{writing to \file{aux}-file \cs{if@filesw}}
-% \begin{macrocode}
-%<*body>
-\newcommand*{\contract@everypar}{%
- \ifparnumber
- \ifx\scrjura@special@par\relax
- \ifx\scrjura@special@reset@par\relax\else
- \global\let\thepar\scrjura@special@reset@par
- \global\let\scrjura@special@reset@par\relax
- \fi
- \refstepcounter{par}%
- \refstepcounter{sentence}%
- \else
- \ifx\scrjura@special@reset@par\relax
- \global\let\scrjura@special@reset@par\thepar
- \fi
- \global\let\thepar\scrjura@special@par
- \global\let\scrjura@special@par\relax
- \setcounter{sentence}{0}\refstepcounter{sentence}%
- \fi
- \begingroup
- \if@filesw
- \protected@write\@auxout{%
- \expandafter\let\csname \scrjura@env@type @Clauseformat\endcsname
- \@firstofone
- }{%
- \string\newmaxpar{\scrjura@env@type}%
- {\csname the\scrjura@env@type
- AbsoluteClause\endcsname}%
- {\thepar}%
- }%
- \fi
- \getmaxpar\@tempa{\scrjura@env@type}%
- {\csname the\scrjura@env@type AbsoluteClause\endcsname}%
- \typeout{Stored max is \@tempa}%
- \def\reserved@a##1\@nnil{\def\@tempa{##1}}%
- \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil
- \ifnum \@tempcnta>\@ne
- {\usekomafont{parnumber}{\parformat\parformatseparation}}%
- \else
- \def\reserved@a{\relax}%
- \ifx\@tempa\reserved@a
- \withoutparnumber
- \else
- {\usekomafont{parnumber}{\parformat\parformatseparation}}%
- \fi
- \fi
- \endgroup
- \else
- \begingroup\withoutparnumber\endgroup
- \setcounter{sentence}{-1}\refstepcounter{sentence}%
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{command}{\thisparnumber}
-% \changes{v0.7}{2013/05/23}{new}
-% \begin{macro}{\scrjura@special@par,\scrjura@special@reset@par}
-% \changes{v0.7}{2013/05/23}{new}
-% You can use this for manual paragraph numbering. But the number has to be
-% fully expandable!
-% \begin{macrocode}
-%<*body>
-\newcommand*{\thisparnumber}[1]{%
- \def\scrjura@special@par{#1}%
-}
-\newcommand*{\scrjura@special@par}{}
-\let\scrjura@special@par\relax
-\newcommand*{\scrjura@special@reset@par}{}
-\let\scrjura@special@reset@par\relax
-%</body>
-% \end{macrocode}
-% \end{macro}%^^A \scrjura@special@par
-% \end{command}%^^A\thisparnumber
-%
-%
-% \subsection{Referencing}
-%
-% \begin{command}{\refL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@L}
-% Similar to \cs{ref} but always the long form.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}}
-\newcommand*{\ref@L}[2]{%
- \begingroup
- \def\parcite@format{0}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@S}
-% Similar to \cs{ref} but always the short form.
-% \begin{macrocode}
-\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}}
-\newcommand*{\ref@S}[2]{%
- \begingroup
- \def\parcite@format{1}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@N}
-% Similar to \cs{ref} but always the numerical form.
-% \begin{macrocode}
-\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}}
-\newcommand*{\ref@N}[2]{%
- \begingroup
- \def\parcite@format{2}%
- \let\sentencecite@format\parcite@format
- \ref#1{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refClause}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Clause}
-% Reference only the clause of a clause, paragraph or sentence. For better
-% compatibility with \pkg{hyperref} there is also a star version if
-% \pkg{hyperref} is used. Without \pkg{hyperref} the star version is nonsense.
-% \begin{macrocode}
-\newcommand*{\refClause}{%
- \kernel@ifstar {\ref@Clause*}{\ref@Clause{}}
-}
-\newcommand*{\ref@Clause}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference but the first one to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% Copy the first part of the reference to \cs{@tempa}.
-% \begin{macrocode}
- \def\@tempc##1##2\@nil{##1}%
- \let\scrjura@separator\@gobble
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \csname r@#2\endcsname\noexpand\@nil}%
-% \end{macrocode}
-% Copy the first part of \cs{@tempa} to \cs{@tempb}.
-% \begin{macrocode}
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \@tempa\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refClauseN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@ClauseN}
-% Reference only the clause number of a clause, a paragraph or a sentence.
-% For improved compatibility with \pkg{hyperref} there is also a star version
-% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
-% nonsense.
-% \begin{macrocode}
-\newcommand*{\refClauseN}{%
- \kernel@ifstar {\ref@ClauseN*}{\ref@ClauseN{}}
-}
-\newcommand*{\ref@ClauseN}[2]{%
- \begingroup
- \let\Clauseformat\relax
- \ref@Clause{#1}{#2}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refPar}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Par}
-% References only the paragraph of a paragraph or sentence.
-% For improved compatibility with \pkg{hyperref} there is also a star version
-% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
-% nonsense.
-% \begin{macrocode}
-\newcommand*{\refPar}{%
- \kernel@ifstar {\ref@Par*}{\ref@Par{}}
-}
-\newcommand*{\ref@Par}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference but the first one to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% Copy the first part of the reference to \cs{@tempa}.
-% \begin{macrocode}
- \def\@tempc##1##2\@nil{##1}%
- \let\scrjura@separator\@gobble
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \csname r@#2\endcsname\noexpand\@nil}%
-% \end{macrocode}
-% Copy the second part of \cs{@tempa} to \cs{@tempa} ablegen.
-% \begin{macrocode}
- \def\@tempc##1##2##3\@nil{##2}%
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \@tempa{%
- \protect\G@refundefinedtrue
- \nfss@text{\reset@font\bfseries ??}%
- \@latex@warning{Reference `#2' on page \thepage \space
- with undefined par number}%
- }\noexpand\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refParL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@ParX}
-% The same but long.
-% \begin{macrocode}
-\newcommand*{\refParL}{%
- \kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}}
-}
-\newcommand*{\ref@ParX}[3]{%
- \begingroup
- \def\parcite@format{#1}%
- \let\sentencecite@format\parcite@format
- \ref@Par{#2}{#3}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refParS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% The same but short.
-% \begin{macrocode}
-\newcommand*{\refParS}{%
- \kernel@ifstar {\ref@ParX1*}{\ref@ParX1{}}
-}
-% \end{macrocode}
-% \end{command}
-%
-% \begin{command}{\refParN}
-% \begin{macro}{\ref@ParN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@@ParN}
-% The same but numerical.
-% \begin{macrocode}
-\newcommand*{\refParN}{%
- \kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}}
-}
-\newcommand*{\ref@ParN}[2]{%
- \kernel@ifnextchar [%]
- {\ref@@ParN{#1}{#2}}%
- {\ref@ParX{#1}{#2}}%
-}
-\newcommand*{\ref@@ParN}{}
-\def\ref@@ParN#1#2[#3]#4{%
- \begingroup
- \renewcommand*{\parnumericformat}[1]{%
- \csname @#3\endcsname{\number ##1\relax}%
- }%
- \ref@ParX{#1}{#2}{#4}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refSentence}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@Sentence}
-% Reference only the sentence of a sentence.
-% For improved compatibility with \pkg{hyperref} there is also a star version
-% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
-% nonsense.
-% \begin{macrocode}
-\newcommand*{\refSentence}{%
- \kernel@ifstar {\ref@Sentence*}{\ref@Sentence{}}
-}
-\newcommand*{\ref@Sentence}[2]{%
- \expandafter\ifx\csname r@#2\endcsname\relax
- \ref#1{#2}%
- \else
- \begingroup
-% \end{macrocode}
-% Copy all parts of the reference to \cs{@tempb}.
-% \begin{macrocode}
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter\@tempb
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter{%
- \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
-% \end{macrocode}
-% Copy the first part of the reference to \cs{@tempa}.
-% \begin{macrocode}
- \def\@tempc##1##2\@nil{##1}%
- \let\scrjura@separator\@gobble
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \csname r@#2\endcsname\noexpand\@nil}%
-% \end{macrocode}
-% Copy the third part of \cs{@tempa} to \cs{@tempa}.
-% \begin{macrocode}
- \def\@tempc##1##2##3##4\@nil{##3}%
- \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
- \@tempa{}{%
- \protect\G@refundefinedtrue
- \nfss@text{\reset@font\bfseries ??}%
- \@latex@warning{Reference `#2' on page \thepage \space
- with undefined sentence number}%
- }\noexpand\@nil}%
- \let\@@protect\protect
- \let\protect\noexpand
- \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
- \let\protect\@@protect
- \ref#1{#2}%
- \endgroup
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refSentenceL}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% \begin{macro}{\ref@SentenceX}
-% The same but long.
-% \begin{macrocode}
-\newcommand*{\refSentenceL}{%
- \kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}}
-}
-\newcommand*{\ref@SentenceX}[3]{%
- \begingroup
- \def\parcite@format{#1}%
- \let\sentencecite@format\parcite@format
- \ref@Sentence{#2}{#3}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \begin{command}{\refSentenceS}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% The same but short.
-% \begin{macrocode}
-\newcommand*{\refSentenceS}{%
- \kernel@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}}
-}
-% \end{macrocode}
-% \end{command}
-%
-% \begin{command}{\refSentenceN}
-% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% The same but numeric.
-% \begin{macrocode}
-\newcommand*{\refSentenceN}{%
- \kernel@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}}
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-% \begin{macro}{\contract@sentence}
-% \changes{v0.7a}{2014/01/28}{using \cs{textsuperscript}}
-% \changes{v0.7a}{2014/01/28}{\cs{nobreak}\cs{hskip}\cs{z@} added to allow
-% hyphenation of the first word after the sentence mark}
-% Numbering of sentences.
-% \begin{counter}{sentence}
-% \begin{command}{\thesentence,\theHsentence}
-% \changes{v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
-% of \cs{newcommand*}}
-% \begin{macro}{\p@sentence}
-% \changes{v3.27}{2019/10/09}{adaption for \LaTeX{} 2019-10-01}
-% The counter is used for numbering the sentences. It is important to add the
-% paragraph as parent object to labels. The original method to make it
-% possible to use \cs{thesentence} as an argument of \cs{p@sentence} does not
-% work any longer using \LaTeX{} 2019-10-01 or newer. It would result in an
-% error message. So the code has to be adapted to the new definition of
-% \cs{refstepcounter} in \LaTeX{} 2019-10-01. From this version it uses
-% \cs{labelformat}. Don't ask me, what I think about the fact, that every new
-% versions of \LaTeX{} can break existing packages and package authors have to
-% find out such incompatibilities on their own.
-% \begin{macrocode}
-%<*body>
-\newcounter{sentence}[par]
-\renewcommand*{\thesentence}{\arabic{sentence}}
-\def\theHsentence{\theHpar-\arabic{sentence}}
-\scr@ifundefinedorrelax{labelformat}{%
- \renewcommand*{\p@sentence}{\expandafter\p@@sentence}
- \newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}%
- \scrjura@separator{\nobreakspace}}{\sentence@cite{#1}}}%
-}{%
- \labelformat{sentence}{\p@par{{\par@cite{\thepar}}%
- \scrjura@separator{\nobreakspace}}{\sentence@cite{#1}}}%
-}
-\newcommand*{\contract@sentence}{%
-% \end{macrocode}
-% \changes{v0.9e}{2015/11/04}{first start the paragraph then print the number}
-% \changes{v3.26}{2018/07/20}{new font element \fnt{sentencenumber}}
-% \changes{v3.26}{2018/07/20}{new formatting \cs{sentencenumberformat}}
-% For the numbering it is important not to increase the paragraph number at
-% the very beginning, because the paragraph already does so. To make this
-% work, the paragraph has to start before we print the number. But immediately
-% after a \env{minipage}, a list or a \cs{parbox} we should behave as not
-% being at the beginning of a paragraph.
-% \begin{macrocode}
- \ifvmode
- \if@endpe
- \refstepcounter{sentence}%
- \else
- \leavevmode
- \fi
- \else
- \refstepcounter{sentence}%
- \fi
- {\usekomafont{sentencenumber}{\sentencenumberformat}}%
- \nobreak\hskip\z@
-}
-% \end{macrocode}
-% \begin{fontelement}{sentencenumber}
-% \begin{command}{\sentencenumberformat}
-% \changes{v3.26}{2018/07/20}{new}
-% Formatting an font can be changed using font element \fnt{sentencenumber}
-% and command \cs{sentencenumberformat}. The last has the preset
-% \cs{textsuperscript}.
-% \begin{macrocode}
-\newkomafont{sentencenumber}{}
-\newcommand*{\sentencenumberformat}{\textsuperscript{\thesentence}}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{fontelement}
-% \end{macro}
-% \end{command}
-% \end{counter}
-% \end{macro}
-%
-% \begin{macro}{\par@cite}
-% \begin{command}{\parciteformat}
-% \changes{v0.5d}{2010/04/28}{argument moved}
-% Reference style for paragraphs.
-% \begin{macrocode}
-%<*body>
-\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}}
-\newcommand*{\parciteformat}[1]{%
- \ifcase \parcite@format
- \expandafter\parlongformat
- \or
- \expandafter\parshortformat
- \or
- \expandafter\parnumericformat
- \else
- \unskip\expandafter\@gobble
- \fi
- {#1}%
-}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-%
-% \begin{macro}{\sentence@cite}
-% \begin{command}{\sentenceciteformat}
-% \changes{v0.5d}{2010/04/28}{argument moved}
-% Reference style for sentences. Preset is \cs{@arabic}.
-% \begin{macrocode}
-\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}}
-\newcommand*{\sentenceciteformat}[1]{%
- \ifcase \sentencecite@format
- \expandafter\sentencelongformat
- \or
- \expandafter\sentenceshortformat
- \or
- \expandafter\sentencenumericformat
- \else
- \unskip\expandafter\@gobble
- \fi
- {#1}%
-}
-% \end{macrocode}
-% \end{command}
-% \end{macro}
-%
-% \begin{command}{\parlongformat,\parshortformat,\parnumericformat,
-% \sentencelongformat,\sentenceshortformat,
-% \sentencenumericformat}
-% The six formattings.
-% \begin{macrocode}
-\newcommand*{\parlongformat}[1]{\parname~#1}
-\newcommand*{\parshortformat}[1]{\parshortname~#1}
-\newcommand*{\parnumericformat}[1]{\@Roman{\number #1\relax}}
-\newcommand*{\sentencelongformat}[1]{\sentencename~#1}
-\newcommand*{\sentenceshortformat}[1]{\sentenceshortname~#1}
-\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.}
-%</body>
-% \end{macrocode}
-% \end{command}
-%
-% \subsection{Language dependent names}
-%
-% \begin{command}{\parname,\parshortname,\sentencename,\sentenceshortname}
-% \begin{macro}{\scrjura@lang@error}
-% \changes{v0.7}{2013/09/19}{Usage of \cs{PackageError} instead of
-% \cs{PackageErrorNoLine}}
-% \changes{v3.24}{2017/05/29}{adaption for language name bug in
-% \pkg{babel}~3.10}
-% The names of paragraphs and sentences and their short versions. The English
-% names are donated by ``m.eik''.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\parname}{Paragraph}
-\AtBeginDocument{%
- \providecaptionname{german,ngerman,austrian,naustrian}\parname{Absatz}%
- \providecaptionname{german,ngerman,austrian,naustrian}\parshortname{Abs.}%
- \providecaptionname{german,ngerman,austrian,naustrian}\sentencename{Satz}%
- \providecaptionname{german,ngerman,austrian,naustrian}\sentenceshortname{S.}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\parname{paragraph}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\parshortname{par.}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\sentencename{sentence}%
- \providecaptionname{english,american,british,canadian,%
- USenglish,UKenglish,usenglish,ukenglish}\sentenceshortname{sent.}%
-}
-\providecommand*{\parname}{\scrjura@lang@error{\parname}}
-\providecommand*{\parshortname}{\scrjura@lang@error{\parshortname}}
-\providecommand*{\sentencename}{\scrjura@lang@error{\sentencename}}
-\providecommand*{\sentenceshortname}{\scrjura@lang@error{\sentenceshortname}}
-\newcommand*{\scrjura@lang@error}[1]{%
- \PackageError{scrjura}{%
- current language not supported%
- }{%
- Currently scrjura only supports languages `german', `ngerman',
- `austrian',\MessageBreak
- `naustrian', `english', `american', `british', `canadian',
- `USenglish',\MessageBreak
- `UKenglish', `usenglish`, and `ukenglish'.\MessageBreak
- It seems, that you are using another language (maybe `\languagename') or
- that\MessageBreak
- your language selection isn't compatible to package `babel'.\MessageBreak
- Because of this you have to define `\string#1' by yourself!\MessageBreak
- It would be nice if you'll send your definitions to the author.%
- }%
- \textbf{??}%
-}
-%</body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-% \subsection{Using values from last \LaTeX{} run}
-%
-% \begin{command}{\newmaxpar}
-% \changes{v0.6b}{2013/04/16}{\cs{\#1@Clauseformat} expands to its argument}
-% \begin{command}{\getmaxpar}
-% \changes{v0.6}{2011/09/30}{argument no 3 is expanded using
-% \cs{protected@edef}}
-% \changes{v0.5c}{2010/04/26}{\cs{protected@edef} replaced by \cs{edef}}
-% \changes{v0.5c}{2010/04/26}{\cs{\#2@Clauseformat} expands to its argument}
-% Two helper macros, to save a counter in a \file{aux}-file and get the value
-% back or another value of it is not in the \file{aux}-file.
-% \begin{macrocode}
-%<*body>
-\newcommand*{\newmaxpar}[3]{%
- \begingroup
- \expandafter\let\csname #1@Clauseformat\endcsname\@firstofone
- \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa
- \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}%
- \endgroup
-}
-\newcommand*{\getmaxpar}[3]{%
- \begingroup
- \expandafter\let\csname #2@Clauseformat\endcsname\@firstofone
- \protected@edef\@tempa{#3}%
- \@onelevel@sanitize\@tempa
- \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax
- \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}%
- \else
- \edef\@tempa{\endgroup
- \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}%
- \fi
- \@tempa
-}
-% \end{macrocode}
-% \changes{v0.7b}{2014/11/10}{added fallback code to \file{aux}-file}
-% \changes{v0.9g}{2015/03/25}{write to \file{aux}-file \cs{if@filesw}}
-% Because some users remove \pkg*{scrjura} from their documents without
-% deleting the \file{aux}-file, we add a fallback definition of \cs{newmaxpar}
-% to the \file{aux}-file. This avoids error messages because of undefined
-% \cs{newmaxpar}.
-% \begin{macrocode}
-\AtBeginDocument{%
- \if@filesw
- \immediate\write\@auxout{%
- \string\providecommand*\string\newmaxpar[3]{}
- }%
- \fi
-}
-%</body>
-% \end{macrocode}
-% \end{command}
-% \end{command}
-%
% \iffalse
-%</package>
+%</package&body>
% \fi
%
% \Finale
diff --git a/macros/latex/contrib/koma-script/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/scrkernel-basics.dtx
index 63264a8d3f..3c1075688e 100644
--- a/macros/latex/contrib/koma-script/scrkernel-basics.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-basics.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-basics.dtx 4051 2023-04-26 16:01:28Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 4074 2023-07-14 15:56:59Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -28,9 +28,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-26 18:01:28 +0200 (Mi, 26. Apr 2023) $
+ \filedate$Date: 2023-07-14 17:56:59 +0200 (Fr, 14 Jul 2023) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4051 $
+ \filerevision$Revision: 4074 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-basics.dtx}%
@@ -1105,9 +1105,10 @@
\fi
% \end{macrocode}
% Continue the adaption of code from \cs{ProcessOptions}.
+% \changes{v3.42}{2023/07/14}{\cs{edef} replaced by \cs{protected@edef}}
% \begin{macrocode}
\let\ds@\@empty
- \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
+ \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
\ifx\@currext\@clsextension\else
% \end{macrocode}
% Within classes the current option list is same like the global option
diff --git a/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx b/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
index ab2fed77c5..eab2f595d1 100644
--- a/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-compatibility.dtx 4054 2023-05-10 14:35:36Z kohm $
+%%% From File: $Id: scrkernel-compatibility.dtx 4133 2024-10-24 09:54:28Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<option>%%% (run: option)
@@ -27,9 +27,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-05-10 16:35:36 +0200 (Mi, 10. Mai 2023) $
+ \filedate$Date: 2024-10-24 11:54:28 +0200 (Do, 24. Okt 2024) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4054 $
+ \filerevision$Revision: 4133 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-compatibility.dtx}%
@@ -249,7 +249,7 @@
old KOMA-Script release. However, in that case you\MessageBreak
could also need old releases of other packages and\MessageBreak
even of the LaTeX kernel.\MessageBreak
- You should also note, that the KOMA-Script developers\MessageBreak
+ Please also note, that the KOMA-Script developers\MessageBreak
refuse support for documents using `version=#1'.\MessageBreak
We recommend to eliminate all deprecated options\MessageBreak
and commands. We also recommend to not use option\MessageBreak
@@ -460,6 +460,10 @@
% \changes{v3.40}{2023/04/17}{added}
% \begin{macro}{\scr@v@3.41}
% \changes{v3.41}{2023/04/24}{added}
+% \begin{macro}{\scr@v@3.42}
+% \changes{v3.42}{2023/07/13}{added}
+% \begin{macro}{\scr@v@3.43}
+% \changes{v3.43}{2024/10/22}{added}
% \begin{macro}{\scr@v@last}
% \changes{v2.9u}{2005/03/05}{added}
% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die
@@ -550,7 +554,9 @@
\@namedef{scr@v@3.39}{20}
\@namedef{scr@v@3.40}{20}
\@namedef{scr@v@3.41}{21}
-\@namedef{scr@v@last}{21}
+\@namedef{scr@v@3.42}{21}
+\@namedef{scr@v@3.43}{3430}
+\@namedef{scr@v@last}{3430}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -639,6 +645,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
% \end{option}
% \begin{macrocode}
%</init>
diff --git a/macros/latex/contrib/koma-script/scrkernel-language.dtx b/macros/latex/contrib/koma-script/scrkernel-language.dtx
index 75060afa91..d34c70c0f5 100644
--- a/macros/latex/contrib/koma-script/scrkernel-language.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-language.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-language.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-language.dtx 4107 2024-04-10 17:24:53Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-04-10 19:24:53 +0200 (Mi, 10 Apr 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4107 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-language.dtx}
@@ -169,7 +169,6 @@
\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{%
\@onelevel@sanitize\languagename
\@tempswafalse
-%<trace> \typeout{comparing `\languagename' and `\scr@reserved@a'}%
\ifx\languagename\scr@reserved@a
\@tempswatrue
\else
@@ -194,7 +193,6 @@
\expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
\csname iftrue\endcsname swiss\else german\fi\fi
}%
-%<trace> \typeout{comparing also `\scr@reserved@a' and `\scr@reserved@b'}%
\@onelevel@sanitize\scr@reserved@b
\ifx\scr@reserved@a\scr@reserved@b \@tempswatrue\fi
\fi
@@ -1032,8 +1030,12 @@
%
%
% \begin{macro}{\g@addnumerical@date}
+% \changes{v3.42}{2024/04/10}{recognize and use \pkg{datetime2}}
% We need to redefine the already existing textual date of a language package
-% by a numerical one.
+% by a numerical one. The code also supports \pkg{datetime2} and should even
+% work with obsolete package \pkg{datetime}. However, usage of \pkg{datetime}
+% is not recommended. And it even works, if someone defines \cs{DTMtoday}
+% using \cs{today}, which should not be done!
% \begin{macrocode}
%<*letter&body>
\newcommand*{\g@addnumerical@date}[2]{%
@@ -1046,15 +1048,42 @@
}%
}{%
\expandafter\g@addto@macro\csname date#1\endcsname{%
- \let\sym@date=\today%
\def\num@date{#2}%
- \def\today{\if@orgdate\sym@date\else\num@date\fi}%
+ \ifx\today\sym@num@date
+ \@ifundefined{DTMtoday}{%
+%<class> \ClassWarning{scrlttr2}
+%<package> \PackageWarning{scrletter}
+ {%
+ no original date found for language `#1'\MessageBreak
+ --> using numerical date%
+ }%
+ \let\sym@date\num@date
+ }{%
+ \begingroup
+ \gdef\scr@global@tempa{\let\sym@date\DTMtoday}%
+ \def\today{\gdef\scr@global@tempa{\let\sym@date\num@date}}%
+ \sbox\@tempboxa{\sym@date}%
+ \endgroup
+ \scr@global@tempa
+ }%
+ \else
+ \DeclareCommandCopy{\sym@date}{\today}%
+ \let\today=\sym@num@date
+ \fi
}%
}%
}
+% \end{macrocode}
+% \begin{macro}{\sym@num@date}
+% \changes{v3.42}{2024/04/10}{added}
+% Used inside \cs{date\meta{language name}} to define \cs{today} respecting
+% option \opt{numericaldate}.
+% \begin{macrocode}
+\newcommand*{\sym@num@date}{\if@orgdate\sym@date\else\num@date\fi}
%</letter&body>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \subsection{Language dependent terms and dates in letters}
diff --git a/macros/latex/contrib/koma-script/scrkernel-listsof.dtx b/macros/latex/contrib/koma-script/scrkernel-listsof.dtx
index 9c8b7d2171..85831a2ad8 100644
--- a/macros/latex/contrib/koma-script/scrkernel-listsof.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-listsof.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-listsof.dtx
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-listsof.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-listsof.dtx 4130 2024-10-24 08:14:37Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -26,9 +26,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-10-24 10:14:37 +0200 (Do, 24. Okt 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4130 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-listsof.dtx}%
@@ -1134,21 +1134,39 @@
% \changes{v3.12a}{2014/03/05}{text corrected}
% \changes{v3.30}{2020/02/25}{spurious space at end of warning message
% removed}
+% \changes{v3.43}{2024/10/24}{warning changed}
% Here the warning messages, that are used for using the deprecated interface.
% \begin{macrocode}
\newcommand*{\scr@float@listhead@warning}{%
\ClassWarning{\KOMAClassName}{%
- \string\float@listhead\space detected!\MessageBreak
+ Usage of \string\float@listhead\space detected!\MessageBreak
+ This could be, because you are using\MessageBreak
+ \@ifpackageloaded{floatrow}{%
+ \@ifpackageloaded{floatrowbytocbasic}{%
+ a package that does not support the KOMA-Script\MessageBreak
+ interface of KOMA-Script package `tocbasic`.\MessageBreak
+ }{%
+ package `floatrow` without `floatrowbytocbasic`.\MessageBreak
+ }%
+ }{%
+ \@ifpackageloaded{float}{%
+ \@ifpackageloaded{floatbytocbasic}{%
+ a package that does not support the KOMA-Script\MessageBreak
+ interface of KOMA-Script package `tocbasic`.\MessageBreak
+ }{%
+ package `float` without `floatbytocbasic`.\MessageBreak
+ }%
+ }{%
+ a package that does not support the KOMA-Script\MessageBreak
+ interface of KOMA-Script package `tocbasic`.\MessageBreak
+ }%
+ }%
Implementation of \string\float@listhead\space became\MessageBreak
deprecated in KOMA-Script v3.01 2008/11/14 and\MessageBreak
has been replaced by several more flexible\MessageBreak
features of package `tocbasic`.\MessageBreak
- Maybe implementation of \string\float@listhead\space will\MessageBreak
- be removed from KOMA-Script soon.\MessageBreak
- Loading of package `scrhack' may help to\MessageBreak
- avoid this warning, if you are using a\MessageBreak
- a package that still implements the\MessageBreak
- deprecated \string\float@listhead\space interface%
+ Implementation of \string\float@listhead\space will\MessageBreak
+ be removed from KOMA-Script soon%
}%
}
\newcommand*{\scr@float@addtolists@warning}{%
@@ -1162,10 +1180,9 @@
\string\float@addtolist\space interface has been\MessageBreak
restricted to only some of the KOMA-Script\MessageBreak
features and been removed from others.\MessageBreak
- Loading of package `scrhack' may help to\MessageBreak
- avoid this warning, if you are using a\MessageBreak
- a package that still implements the\MessageBreak
- deprecated \string\float@addtolist\space interface%
+ Since Version 3.43 support for deprecated\MessageBreak
+ \string\float@addtolist\space interface has been\MessageBreak
+ removed from all KOMA-Script classes%
}%
\global\let\scr@float@addtolists@warning\relax
}
diff --git a/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx b/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
index aa68d0175f..6893689cbc 100644
--- a/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-miscellaneous.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-miscellaneous.dtx 4094 2023-12-05 16:17:40Z kohm $
%<init>%%% (run: init)
%<option>%%% (run: option)
%<execoption>%%% (run: execoption)
@@ -27,9 +27,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2023-12-05 17:17:40 +0100 (Di, 05 Dez 2023) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4094 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-miscellaneous.dtx}%
@@ -522,6 +522,8 @@
% \changes{v3.17}{2015/03/23}{added}
% \changes{v3.20}{2016/03/25}{write to \file{aux} file only \cs{if@filesw}}
% \changes{v3.23}{2017/02/23}{empty macro after usage}
+% \changes{v3.42}{2023/12/05}{using \cs{number} instead of \cs{arabic} to fix
+% \href{https://sourceforge.net/p/koma-script/tickets/58/}{issue 58}}
% The main workers of \cs{Ifthispageodd}. It is used to set
% \cs{ifthispagewasodd} depending on the information it adds to the \file{aux}
% file.
@@ -529,6 +531,8 @@
% \item[ToDo:] Why do we use an optional argument here? Are there any
% circumstances, when the optional argument is not the default
% \cs{is@thispageodd@setlabel}?
+% \item[ToDo:] From \LaTeX~2023-11-01 use the page property instead of
+% \cs{new@tpo@label}.
% \end{description}
% \begin{macrocode}
\newcommand*{\is@thispageodd}[1][\is@thispageodd@setlabel]{%
@@ -554,9 +558,9 @@
\endgroup
\edef\is@thispageodd@setlabel{%
\if@filesw
- \unexpanded{\protected@write\@auxout{\let\arabic\relax}}{%
+ \unexpanded{\protected@write\@auxout{\let\number\relax}}{%
\noexpand\string
- \noexpand\new@tpo@label{\scr@tpo}{\noexpand\arabic{page}}}%
+ \noexpand\new@tpo@label{\scr@tpo}{\noexpand\number\c@page}}%
\fi
\noexpand\def\noexpand\is@thispageodd@setlabel
{\unexpanded\expandafter{\is@thispageodd@setlabel}}%
@@ -714,6 +718,8 @@
% \changes{v3.12}{2013/07/08}{added}
% \begin{macro}{\class@shoulddisablepackagewarning@list}
% \changes{v3.24}{2017/06/25}{added}
+% \changes{v3.42}{2023/07/26}{indirect warnings can be redefined after loading
+% the class}
% Loading of several incompatible packages should result in warnings using:
% \begin{quote}
% \cs{scr@package@not@recommended}\marg{package}\marg{alternatives}
@@ -721,9 +727,11 @@
% Usually the warning contains information about \meta{alternatives}, but this
% argument can also be empty. Authors of classes can deactivate the warning,
% by adding a \meta{package} to the comma separated list
-% \cs{class@shoulddisablepackagewarning@lis}. This has to be done, before
+% \cs{class@shoulddisablepackagewarning@list}. This has to be done, before
% loading the \KOMAScript{} class. However doing so is not recommended and the
-% class author is responsible for the drawbacks.
+% class author is responsible for the drawbacks. Similar the indirect warning
+% messages \cs{scr@class@\meta{package}@warning} could be redefined after
+% loading the class, but this is also not recommended.
% \begin{macrocode}
%<*class&body>
\newcommand*{\scr@package@not@recommended}[2]{%
@@ -735,7 +743,7 @@
\reserved@a
\ifin@\expandafter\@gobble\else\expandafter\@firstofone\fi
}{%
- \BeforePackage{#1}{%
+ \expandafter\providecommand\csname scr@class@#1@warning\endcsname{%
\ClassWarning{\KOMAClassName}{%
Usage of package `#1' together\MessageBreak
with a KOMA-Script class is not recommended.\MessageBreak
@@ -746,6 +754,9 @@
package `#1'%
}%
}%
+ \BeforePackage{#1}{%
+ \csname scr@class@#1@warning\endcsname
+ }%
}%
}%
% \end{macrocode}
diff --git a/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx b/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
index bb47ebe2a6..fe44c3092c 100644
--- a/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-notepaper.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-notepaper.dtx 4113 2024-06-07 08:20:20Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-06-07 10:20:20 +0200 (Fr, 07 Jun 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4113 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-notepaper.dtx}
@@ -452,6 +452,8 @@
% \changes{v3.17}{2015/03/16}{using internal value storage}
% \changes{v3.39}{2022/11/11}{initial dot removed from member argument of
% option storage commands}
+% \changes{v3.42}{2024/06/07}{missing \cs{FamilyKeyStateProcessed} after end
+% of group added}
% \begin{macro}{\@biglocfalse,\@bigloctrue,\if@bigloc}
% We allow two different automatic settings for the location field right
% beside the addressee's address field:
@@ -471,6 +473,7 @@
\begingroup
\KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \aftergroup\FamilyKeyStateProcessed
\ifcase\@tempa
\endgroup
\@bigloctrue
@@ -2961,7 +2964,7 @@
%<*class|!willbe>
\newcommand*{\@foldmarks}{%
\if@fold%
- \typeout{Foldmarks: yes}%
+%<trace> \typeout{Foldmarks: yes}%
\move@topt
\ifdim \useplength{pfoldmarklength}=\z@
\setplength{pfoldmarklength}{4mm}%
@@ -2989,8 +2992,7 @@
\@hfoldmark{B}%
\@vfoldmark{L}%
\move@frompt
- \else
- \typeout{Foldmarks: no}%
+%<trace> \else \typeout{Foldmarks: no}%
\fi%
}
%</class|!willbe>
@@ -3066,7 +3068,7 @@
\newcommand*{\@firstheadfootfield}{%
%<*class|!willbe>
\if@firsthead
- \typeout{Head of first page}%
+%<trace> \typeout{Head of first page}%
\move@topt\vskip\useplength{firstheadvpos}%
\vb@t@z{%
\rlap{\move@topl
@@ -3121,11 +3123,11 @@
}%
\vskip-\useplength{firstheadvpos}\move@frompt
\else
- \typeout{No head at first page}%
+%<trace> \typeout{No head at first page}%
\fi
\move@topt
\if@firstfoot
- \typeout{Foot of first page}%
+%<trace> \typeout{Foot of first page}%
\vb@t@z{%
\rlap{\move@topl
% \end{macrocode}
@@ -3170,8 +3172,7 @@
}%
}%
}%
- \else
- \typeout{No foot at first page}%
+%<trace> \else \typeout{No foot at first page}%
\fi
\move@frompt%
%</class|!willbe>
@@ -3222,7 +3223,7 @@
%<*class|!willbe>
\newcommand*{\@addrfield}{%
\ifcase \ifnum\@afieldmode=5 \@ne\else\@afieldmode\fi\relax
- \typeout{Address: No}%
+%<trace> \typeout{Address: No}%
\or
\begingroup%
\if@baddr
@@ -3243,7 +3244,7 @@
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
- \typeout{Address (\@tempa\@tempb addressee)}%
+%<trace> \typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
@@ -3335,7 +3336,7 @@
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
- \typeout{Address (\@tempa\@tempb addressee)}%
+%<trace> \typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{%
@@ -3537,9 +3538,9 @@
% Report if the location is empty or calculate the position and width.
% \begin{macrocode}
\Ifkomavarempty{location}{%
- \typeout{Location field: empty}%
+%<trace> \typeout{Location field: empty}%
}{%
- \typeout{Location field: yes}%
+%<trace> \typeout{Location field: yes}%
\ifdim \useplength{lochpos}=\z@%
\setplength{lochpos}{\useplength{toaddrhpos}}%
\fi
@@ -3917,9 +3918,9 @@
% \begin{macrocode}
\newcommand*{\@makelettertitle}{%
\Ifkomavarempty{title}{%
- \typeout{Title: no}%
+%<trace> \typeout{Title: no}%
}{%
- \typeout{Title: yes}%
+%<trace> \typeout{Title: yes}%
{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\centering\LARGE\usekomafont{lettertitle}\usekomavar{title}\par}%
\vskip\baselineskip%
@@ -3942,19 +3943,19 @@
\newcommand*{\@subjfield}{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\Ifkomavarempty{subject}{%
- \typeout{Subject: no}%
+%<trace> \typeout{Subject: no}%
}{%
\ifx\raggedsubject\@empty
\ifdim\useplength{subjectvpos}=\z@
\if@subjafter%
- \typeout{Subject: after opening}%
+%<trace> \typeout{Subject: after opening}%
\let\raggedsubject\centering%
\else
- \typeout{Subject: before opening}%
+%<trace> \typeout{Subject: before opening}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\else
- \typeout{Subject: at absolute vertical position}%
+%<trace> \typeout{Subject: at absolute vertical position}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\fi
@@ -4792,7 +4793,7 @@
\def\scr@symbol@fax{\FAX}%
\def\scr@symbol@email{\Email}%
\def\scr@symbol@mobilephone{\Mobilefone}%
- \def\scr@symbol@www{\@empty}%
+ \let\scr@symbol@www\@empty
}{%
\def\scr@symbol@phone{\faPhone}%
\def\scr@symbol@fax{\faFax}%
@@ -4894,14 +4895,16 @@
% \end{macro}^^A \if@scrsymbols
% \end{option}^^A symbolicnames
%
-% \begin{variable}{placeseparator,subjectseparator,ccseparator,enclseparator,
-% backaddressseparator}
+% \begin{variable}{backaddressseparator,ccseparator,enclseparator,
+% placeseparator,subjectseparator}
% \changes{v2.8q}{2002/01/22}{added}
-% \begin{variable}{phoneseparator,faxseparator,emailseparator,urlseparator,
-% mobilephoneseparator}
+% \begin{variable}{emailseparator,faxseparator,mobilephoneseparator,
+% phoneseparator,urlseparator}
% \changes{v2.8q}{2002/03/25}{added}
% \changes{v3.12}{2013/05/29}{support for option \opt{symbolicnames}}
% \changes{v3.27}{2019/03/21}{indirect saving of symbols}
+% \changes{v3.42}{2023/08/25}{defaults changed to fix
+% \href{https://sourceforge.net/p/koma-script/tickets/56/}{issue \#56}}
% \begin{variable}{zipcodeseparator}
% \changes{v3.03}{2009/03/04}{added}
% We also have variables with (predefined) output names and predefined
@@ -4919,23 +4922,31 @@
\newkomavar{backaddressseparator}
\setkomavar{backaddressseparator}{,\nobreakspace}
\newkomavar[\if@scrsymbols\scr@symbol@phone\else\phonename\fi]{phoneseparator}
-\setkomavar{phoneseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{phoneseparator}{%
+ \Ifkomavarxempty*{phoneseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[%
\if@scrsymbols\scr@symbol@mobilephone\else\mobilephonename\fi
]{mobilephoneseparator}
\setkomavar{mobilephoneseparator}{\usekomavar{phoneseparator}}
\newkomavar[\if@scrsymbols\scr@symbol@fax\else\faxname\fi]{faxseparator}
-\setkomavar{faxseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{faxseparator}{%
+ \Ifkomavarxempty*{faxseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[\if@scrsymbols\scr@symbol@email\else\emailname\fi]{emailseparator}
-\setkomavar{emailseparator}{\if@scrsymbols\else:\fi\nobreakspace}
+\setkomavar{emailseparator}{%
+ \Ifkomavarxempty*{emailseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar[\if@scrsymbols\scr@symbol@www\else\wwwname\fi]{urlseparator}
-\setkomavar{urlseparator}{\if@scrsymbols\else:\nobreakspace\fi}
+\setkomavar{urlseparator}{%
+ \Ifkomavarxempty*{urlseparator}{}{\if@scrsymbols\else:\fi\nobreakspace}%
+}
\newkomavar{zipcodeseparator}
\setkomavar{zipcodeseparator}{\,--\,}
% \end{macrocode}
% \end{variable}^^A zipcodeseparator
-% \end{variable}^^A phoneseparator … mobilephoneseparator
-% \end{variable}^^A placeseparator … backaddressseparator
+% \end{variable}^^A emailseparator … urlseparator
+% \end{variable}^^A backaddressseparator .. subjectseparator
%
% \begin{variable}{addressee}
% \changes{v3.27}{2019/03/24}{new variable}
diff --git a/macros/latex/contrib/koma-script/scrkernel-sections.dtx b/macros/latex/contrib/koma-script/scrkernel-sections.dtx
index edfbd4d459..aaefb2d2e6 100644
--- a/macros/latex/contrib/koma-script/scrkernel-sections.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-sections.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-sections.dtx
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-sections.dtx 4069 2023-06-29 08:55:54Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 4130 2024-10-24 08:14:37Z kohm $
% The runs of run-time file generation:
%<preidentify>%%% (run: preidentify)
% - everything that is needed before selfidentification of resulting files
@@ -40,9 +40,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-29 10:55:54 +0200 (Do, 29. Jun 2023) $
+ \filedate$Date: 2024-10-24 10:14:37 +0200 (Do, 24. Okt 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4069 $
+ \filerevision$Revision: 4130 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-sections.dtx}%
@@ -2427,13 +2427,9 @@
\relax
\FamilyKeyStateProcessed
}{%
-%<trace> \typeout{TRACE: option tocstyle=##1}%
-%<trace> \typeout{TRACE: command=\scr@dsc@current}%
\scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
-%<trace> \typeout{TRACE: style not defined}%
\FamilyKeyStateUnknownValue
}{%
-%<trace> \typeout{TRACE: style defined}%
\@namedef{scr@dte@\scr@dsc@current @style}{##1}%
\@namedef{scr@tso@\scr@dsc@current @style}{##1}%
\FamilyKeyStateProcessed
@@ -2480,13 +2476,10 @@
% \changes{v3.20}{2015/11/12}{dummy options for main pass removed}
% Now, we know the style and can activate all the options of the style.
% \begin{macrocode}
-%<trace> \typeout{TRACE: style=\@nameuse{scr@\scr@dsc@current @style}}%
\@nameuse{scr@dsc@style@\@nameuse{scr@\scr@dsc@current @style}@options}%
% \end{macrocode}
% And initialize the ToC style.
% \begin{macrocode}
-%<trace> \typeout{TRACE: tocstyle=%
-%<trace> \@nameuse{scr@tso@\scr@dsc@current @style}}%
\scr@ifundefinedorrelax{scr@tso@\scr@dsc@current @style}{%
\scr@ifundefinedorrelax{l@\scr@dsc@current}{%
\@namedef{scr@tso@\scr@dsc@current @style}{default}%
@@ -3304,6 +3297,31 @@
\@ifpackageloaded{bookmark}{}{%
\if@scr@autoloadbookmarkpackage
% \end{macrocode}
+% \changes{v3.42}{2024/06/04}{load \pkg{bookmark} only if available}
+% Now we test for existing package file \file{bookmark.sty}. If it does not
+% exist, we show a warning an deactivate option \opt{bookmarkpackage}.
+% \begin{macrocode}
+ \IfFileExists{bookmark.sty}{}{%
+ \ClassWarningNoLine{\KOMAClassName}{%
+ Using `bookmark' together with `hyperref' is
+ recommended,\MessageBreak
+ because of handling of possible bookmark level gaps.\MessageBreak
+ However, the package seems not to be installed and\MessageBreak
+ therefore cannot be loaded automatically.\MessageBreak
+ It is recommended to install package `bookmark'!\MessageBreak
+ However, you can avoid this warning without\MessageBreak
+ installation of package `bookmark', if you'd
+ deactivate\MessageBreak
+ automatically loading of `bookmark' using KOMA-Script\MessageBreak
+ option `bookmarkpackage=false' before
+ \string\begin{document}%
+ }%
+ \@scr@autoloadbookmarkpackagefalse
+ \KOMA@kav@replacevalue{\KOMAClassFileName}{bookmarkpackage}{false}%
+ }%
+ \fi
+ \if@scr@autoloadbookmarkpackage
+% \end{macrocode}
% \changes{v3.27}{2019/06/26}{try to translate \pkg{hyperref} driver to
% \pkg{bookmark} driver option}
% The name of the \pkg{hyperref} driver is in \cs{Hy@driver}. But
@@ -3385,18 +3403,22 @@
}%
% \end{macrocode}
% \changes{v3.26b}{2019/01/17}{workaround for \cs{@beginmainauxhook} added}
-% \changes{v3.38}{2022/10/04}{\pkg{auxhook} not needed with newer \pkg{hyperref}}
+% \changes{v3.38}{2022/10/04}{\pkg{auxhook} not needed with newer
+% \pkg{hyperref}}
+% \changes{v3.99}{2024/02/10}{no workaround for old \pkg{hyperref}}
% Sometimes \pkg{auxhook} is not able to recognize that it cannot use a
% patch of \cs{document} to execute \cs{@beginmainauxhook} if it is loaded via
% \cs{AtBeginDocument}. In this case we do it here.
% \begin{macrocode}
+%<*!v4>
\@ifpackagelater{hyperref}{2022/09/22}{}{%
\ifx\@beginmainauxhook\relax
\else
\if@filesw
\ClassWarning{\KOMAClassName}{%
seems someone has broken package `auxhook'.\MessageBreak
- Usually this happens, if `auxhook' is loaded or used\MessageBreak
+ Usually this happens, if `auxhook' is loaded or
+ used\MessageBreak
implicitly or explicitly by patching
\string\document%
\scr@ifundefinedorrelax{AtEndPreamble}{}{%
@@ -3412,6 +3434,7 @@
\fi
\fi
}%
+%</!v4>
\fi
}%
}%
@@ -4932,12 +4955,13 @@
\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
% \end{macrocode}
% \changes{v2.8g}{2001/07/18}{support for \cs{float@addtolists}}
+% \changes{v3.43}{2024/10/24}{support for \cs{float@addtolists} removed}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by \cs{Iftocfeature}}
% Depending on feature \texttt{chapteratlist} we have to add a vertical space
% to other directories. And for compatibility we also support the deprecated
% \cs{float@addtolists} but not without warning.
% \begin{description}
-% \item[ToDo:] Why do we add the gap here but also use \cs{addctontentsline}
+% \item[ToDo:] Why do we add the gap here but also use \cs{addcontentsline}
% in \cs{addchaptertocentry}? Is this a bug? Should this be standardized?
% \end{description}
% \begin{macrocode}
@@ -4947,10 +4971,12 @@
\addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}%
}{}%
}%
- \@ifundefined{float@addtolists}{}{%
- \scr@float@addtolists@warning
- \float@addtolists{\protect\addvspace{\@chapterlistsgap}}%
- }%
+ \expandafter\ifnum \scr@v@is@lt{3.43}\relax
+ \@ifundefined{float@addtolists}{}{%
+ \scr@float@addtolists@warning
+ \float@addtolists{\protect\addvspace{\@chapterlistsgap}}%
+ }%
+ \fi
\fi
% \end{macrocode}
% \changes{v3.18}{2015/05/22}{\cs{@makechapterhead} replaced by
@@ -5427,6 +5453,7 @@
% \changes{v3.12}{2013/09/24}{using\cs{addxcontentsline}}
% \changes{v3.28}{2019/11/19}{\cs{iftocfeature} replaced by
% \cs{Iftocfeature}}
+% \changes{v3.43}{2024/10/24}{\cs{float@addtolists} warning removed}
% We do not use \cs{addcontentsline} directly for the entries to the table of
% contents. Using
% \begin{quote}
@@ -5453,7 +5480,6 @@
\addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}%
}{}%
}%
- \@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}%
\fi
}
% \end{macrocode}
diff --git a/macros/latex/contrib/koma-script/scrkernel-typearea.dtx b/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
index 42a1934b49..ae07e952df 100644
--- a/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-typearea.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-typearea.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-typearea.dtx 4100 2024-02-01 09:40:30Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -29,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-02-01 10:40:30 +0100 (Do, 01 Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4100 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-typearea.dtx}[%
@@ -2281,9 +2281,12 @@
% divisor near to the \emph{klassischer Buchseitenkanon}. This means we try to
% have the height of the typing area is as near as possible the width of the
% paper. For classic paper size this should be a harmonious result.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\ifnum\ta@div=3
- \typeout{DIV calculation for classic typearea.}%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{DIV calculation for classic typearea.}%
\setlength{\ta@temp}{\paperwidth}%
\addtolength{\ta@temp}{-\ta@bcor}%
% \end{macrocode}
@@ -2336,7 +2339,8 @@
% \changes{v2.4n}{1997/05/28}{improved optimal divisor calculation}
% \begin{macrocode}
\ifnum\ta@div <4
- \typeout{DIV calculation for typearea with good linewidth.}%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{DIV calculation for classic typearea.}%
% \end{macrocode}
% The width of the typing area could at most be the width of the paper without
% the binding correction.
@@ -3300,14 +3304,13 @@
% |\BeforeFamilyProcessOptions[.typearea.sty]{KOMA}{...}|.
%
% \changes{v2.0e}{1994/10/28}{configuration file \file{typearea.cfg}}
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
%<*package&typearea&options>
\InputIfFileExists{typearea.cfg}{%
- \typeout{%
- ***************************************^^J%
- * Local config file typearea.cfg used^^J%
- ***************************************%
- }
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {typearea}{Local configuration file typearea.cfg loaded}%
}{}
%</package&typearea&options>
% \end{macrocode}
diff --git a/macros/latex/contrib/koma-script/scrkernel-variables.dtx b/macros/latex/contrib/koma-script/scrkernel-variables.dtx
index 8896055ebc..bcaa015852 100644
--- a/macros/latex/contrib/koma-script/scrkernel-variables.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-variables.dtx
@@ -18,16 +18,16 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-variables.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrkernel-variables.dtx 4129 2024-10-23 19:02:04Z texhackse $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-10-23 21:02:04 +0200 (Mi, 23. Okt 2024) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4129 $
\xdef\fileinfo{\filedate\space\filerevision\space}
\edef\reserved@a{%
\noexpand\endgroup
@@ -72,6 +72,10 @@
% You can find the user documentation the commands implemented here in the
% \KOMAScript{} manual, either the German \file{scrguide-de.pdf} or the
% English \file{scrguide-en.pdf}.
+%
+% \DescribeCommand{\Ifkomavarxempty}
+% Similar to \cs{Ifkomavarempty} but the variable or description will be
+% expanded before testing.
%
% \MaybeStop{\PrintIndex}
%
@@ -87,50 +91,40 @@
%
% \subsection{Commands and macros for variables}
%
-% \begin{command}{\newkomavar*,\newkomavar}
+% \begin{command}{newkomavar}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced \cs{kernel@ifstar} by}
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
% We have two kinds of fields and so variables:
% \begin{itemize}
% \item to be printed in the reference line,
% \item for other purpose, but not printed in the reference line.
% \end{itemize}
-% But it is also possible to add variables later to (or
-% even remove them from the reference line. But the star variant
-% \cs{newkomavar*} automatically adds a variable to (the end of) the reference
-% line.
-% \begin{macro}{\@newkomavar}
-% Because of the star variant (and because we currently do not use
-% \pkg{xparse}), we need an internal command.
-% Both \cs{newkomavar} and \cs{newkomavar*} have one optional argument
-% (\texttt{\#1}), the \meta{output name}. It is intended to be printed. In
-% opposite to this the first mandatory argument (\texttt{\#2}) is the
-% \meta{name} of the variable. It is not indented to be printed but used for access
-% only. Only \emph{command sequence} characters are allowed here. It is
-% recommended to use only letters for the \meta{name}. Internally
+% But it is also possible to add variables later to (or even remove them from
+% the reference line. But the star variant \cs{newkomavar*} automatically adds
+% a variable to (the end of) the reference line. Both \cs{newkomavar} and
+% \cs{newkomavar*} have one optional argument, the \meta{description}. It is
+% intended to be printed. In opposite to this the first mandatory argument is
+% the \meta{name} of the variable. It is not indented to be printed but used
+% for access only. Only \emph{command sequence} characters are allowed
+% here. It is recommended to use only letters for the \meta{name}. Internally
% macro \cs{scr@\meta{name}@name} and \cs{scr@\meta{name}@var} are
% defined. The second one is initialized to be empty.
% \begin{macrocode}
%<*body>
-\newcommand*{\newkomavar}{%
- \kernel@ifstar {\@tempswatrue\@newkomavar}{\@tempswafalse\@newkomavar}}
-\newcommand*{\@newkomavar}[2][\relax]{%
- \@ifundefined{scr@#2@name}{%
- \@ifundefined{scr@#2@var}{%
- \begingroup
- \def\@tempa{#1}\def\@tempb{\relax}%
- \ifx\@tempa\@tempb\endgroup\else
- \endgroup\@namedef{scr@#2@name}{#1}%
- \fi%
- \expandafter\let\csname scr@#2@var\endcsname=\@empty
- \if@tempswa\addtoreffields{#2}\fi
+\NewDocumentCommand{\newkomavar}{som}{%
+ \@ifundefined{scr@#3@name}{%
+ \@ifundefined{scr@#3@var}{%
+ \IfValueT{#2}{\@namedef{scr@#3@name}{#2}}%
+ \@namedef{scr@#3@var}{}%
+ \IfBooleanT{#1}{\addtoreffields{#3}}%
}{%
%<class> \ClassError{scrlttr2}
%<package> \PackageError{scrletter}
{%
This should never happen%
}{%
- The contents of the KOMA-Script variable `#2'\MessageBreak
+ The description of the KOMA-Script variable `#3'\MessageBreak
is undefined, but the name of the variable is
defined.\MessageBreak
This should never happen. So someone crashs me!%
@@ -140,75 +134,55 @@
%<class> \ClassError{scrlttr2}
%<package> \PackageError{scrletter}
{%
- Variable `#2' already defined%
+ Variable `#3' already defined%
}{%
I'll ignore this command, if you'll continue.%
}%
}%
}
% \end{macrocode}
+% \begin{macro}{\@newkomavar}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}
% \end{command}
%
-% \begin{command}{\setkomavar*,\setkomavar}
+% \begin{command}{\setkomavar}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} and
% \cs{scr@\emph{Name}@postsetvar} added}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% \changes{v3.42}{2024/04/24}{new implementation using
+% \cs{NewDocumentCommand}}
+% \changes{v3.43}{2024/10/23}{add missing call of \cs{scr@\emph{name}@postsetname}
+% and \cs{scr@\meta{name}@postsetvar}}
% After defining a new variable we also need a command to set the
% \meta{value}. This is the second mandatory argument (\texttt{\#3}) of
% \cs{setkomavar}. The first mandatory argument (\texttt{\#2}) once again is
-% the \meta{name}. The \meta{output name} can be set with the
-% optional first argument (\texttt{\#1}). But for the case only the
-% \meta{output name} should be changed but not the \meta{value} there is an
-% additional star variant \cs{setkomavar*}. This has only two mandatory argument:
-% \meta{name} (\texttt{\#1}) and \meta{output name} (\texttt{\#2}). Both also
-% executes two hooks \cs{scr@\meta{name}@postsetname} and
-% \cs{scr@\meta{name}@postsetvar} after setting the \meta{output name}
-% resp. the \meta{value}. So package authors can define additional actions for
-% the case a variable changes.
-% \begin{macro}{\@setkomavar}
-% \changes{v2.8q}{2002/01/14}{added}
-% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
-% \begin{macro}{\@@setkomavar}
-% \changes{v2.8q}{2002/01/14}{added}
-% \begin{macro}{\@setkomaname}
-% \changes{v2.8q}{2002/01/14}{added}
-% Because of the star variant and the optional argument additional helper
-% macros are needed.
+% the \meta{name}. The \meta{description} can be set with the optional first
+% argument (\texttt{\#1}). But for the case only the \meta{description}
+% should be changed but not the \meta{value} there is an additional star
+% variant \cs{setkomavar*}. This has only two mandatory argument: \meta{name}
+% (\texttt{\#1}) and \meta{description} (\texttt{\#2}). Both also executes two
+% hooks \cs{scr@\meta{name}@postsetname} and \cs{scr@\meta{name}@postsetvar}
+% after setting the \meta{description} resp. the \meta{value}. So package
+% authors can define additional actions for the case a variable changes.
% \begin{macrocode}
-\newcommand*{\setkomavar}{%
- \kernel@ifstar {\@setkomaname}{\@setkomavar}}
-\newcommand*{\@setkomavar}[1]{%
- \kernel@ifnextchar [%]
- {\@@setkomavar{#1}}{\@@setkomavar{#1}[\relax]}}
-\newcommand*{\@setkomaname}[2]{%
- \@ifundefined{scr@#1@var}{%
- \@komavar@err{set}{#1}%
- }{%
- \@namedef{scr@#1@name}{#2}%
- \csname scr@#1@postsetname\endcsname
- }%
-}
-\newcommand*{\@@setkomavar}{}
-\long\def\@@setkomavar#1[#2]#3{%
- \@ifundefined{scr@#1@var}{%
- \@komavar@err{set}{#1}%
+\NewDocumentCommand{\setkomavar}{smo+m}{%
+ \Ifkomavar{#2}{%
+ \IfValueT{#3}{\@namedef{scr@#2@name}{#3}}%
+ \@namedef{scr@#2@\IfBooleanTF{#1}{name}{var}}{#4}%
+ \csname scr@#2@postset\IfBooleanTF{#1}{name}{var}\endcsname
}{%
- \@namedef{scr@#1@var}{#3}%
- \csname scr@#1@postsetvar\endcsname
- \begingroup
- \def\@tempa{#2}\def\@tempb{\relax}%
- \ifx\@tempa\@tempb\endgroup\else
- \endgroup\@namedef{scr@#1@name}{#2}%
- \csname scr@#1@postsetname\endcsname
- \fi
+ \@koma@var@err{set}{#2}%
}%
}
% \end{macrocode}
-% \end{macro}^^A \@setkomaname
-% \end{macro}^^A \@@setkomavar
-% \end{macro}^^A \@setkomavar
+% \begin{macro}{\@setkomavar,\@@setkomavar,\@setkomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
+% \end{macro}^^A \@setkomavar, \@@setkomavar, \@setkomaname
% \end{command}^^A \setkomavar*,\setkomavar
%
% \begin{macro}{\@komavar@err}
@@ -232,39 +206,37 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{command}{\usekomavar*,\usekomavar}
+% \begin{command}{\usekomavar}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v2.9i}{2002/09/04}{robust}
+% \changes{v2.9i}{2002/09/04}{optional argument}
+% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} as default for the optional
+% argument}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
-% User command to get either the \meta{output name} (star variant) or the
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
+% User command to get either the \meta{description} (star variant) or the
% \meta{value} (non-star variant) of a variable. Once again the first
% mandatory argument (\texttt{\#2}) is the \meta{name} of the value. Both also
% have an optional first argument (\texttt{\#1}) \meta{code}. The \meta{code}
-% is added before the \meta{output name} or \meta{value} in the output
-% stream and these are used as argument. You use it, e.g., to define a command
-% with the content of \meta{output name} or \meta{value} or change the formatting.
-% \begin{macro}{\@usekomavar,\@usekomaname}
-% \changes{v2.8q}{2002/01/14}{added}
-% \changes{v2.9i}{2002/09/04}{optional argument}
-% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} as default for the optional argument}
+% is added before the \meta{description} or \meta{value} in the output stream
+% and these are used as argument. You use it, e.g., to define a command with
+% the content of \meta{description} or \meta{value} or change the formatting.
% \begin{macrocode}
-\DeclareRobustCommand*{\usekomavar}{%
- \kernel@ifstar {\@usekomaname}{\@usekomavar}}
-\newcommand*{\@usekomavar}[2][\@firstofone]{%
- \@ifundefined{scr@#2@var}{%
- \@komavar@err{use}{#2}%
- }{%
- #1{\@nameuse{scr@#2@var}}%
- }%
-}
-\newcommand*{\@usekomaname}[2][\@firstofone]{%
- \@ifundefined{scr@#2@var}{%
- \@komavar@err{use}{#2}%
+\NewDocumentCommand{\usekomavar}{sO{\@firstofone}m}{%
+ \Ifkomavar{#3}{%
+ \IfBooleanTF{#1}{%
+ #2{\@nameuse{scr@#3@name}}%
+ }{%
+ #2{\@nameuse{scr@#3@var}}%
+ }%
}{%
- #1{\@nameuse{scr@#2@name}}%
+ \@koma@var@err{use}{#3}%
}%
}
% \end{macrocode}
+% \begin{macro}{\@usekomavar,\@usekomaname}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}^^A \@usekomavar,\@usekomaname
% \end{command}
%
@@ -299,28 +271,25 @@
% \end{command}
%
%
-% \begin{command}{\ifkomavarempty*,\ifkomavarempty,\Ifkomavarempty*,\Ifkomavarempty}
+% \begin{command}{\ifkomavarempty,\Ifkomavarempty}
% \changes{v2.8q}{2002/01/14}{added}
% \changes{v2.9i}{2002/09/04}{spurious spaced removed}
% \changes{v2.9i}{2002/09/04}{robust}
+% \changes{v3.03}{2009/03/04}{using \cs{ifkomavar}}
+% \changes{v3.03}{2009/03/04}{don't read the arguments but delegate them}
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
% \changes{v3.28}{2019/11/15}{\cs{ifkomavarempty} renamed to \cs{Ifkomavar}}
+% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} replaced by \cs{Ifkomavar}}
+% \changes{v3.42}{2023/08/25}{new implementation using \cs{NewDocumentCommand}}
% \cs{Ifkomavarempty} tests if the variable with the \meta{name} of
% \texttt{\#1} is defined and the \meta{value} (non-star variant)
-% resp. \meta{output name} (star variant) is empty. If it is undefined or
+% resp. \meta{description} (star variant) is empty. If it is undefined or
% empty the \meta{code} of \texttt{\#2} is executed. If is defined and not
% empty the \meta{code} of \texttt{\#3} is executed.
% The old command \cs{ifkomavarempty} resp. \cs{ifkomavarempty*} is deprecated
% and should not be used any longer. This incompatible change has been done,
% because of a new recommendation of The \LaTeX{} Team (who does break its own
% recommendation, e.g., with \cs{ifToplevel}, \cs{ifthenelse} \dots).
-% \begin{macro}{\if@komavarempty}
-% \changes{v2.8q}{2002/01/14}{added}
-% \changes{v3.03}{2009/03/04}{using \cs{ifkomavar}}
-% \changes{v3.03}{2009/03/04}{don't read the arguments but delegate them}
-% \changes{v3.28}{2019/11/15}{\cs{ifkomavar} replaced by \cs{Ifkomavar}}
-% Because of the star variant (and because we are currently not using
-% \pkg{xparse}) we need an internal helper macro.
% \begin{macrocode}
\newcommand*{\ifkomavarempty}{%
%<package> \PackageWarning{scrletter}{%
@@ -332,39 +301,57 @@
}%
\Ifkomavarempty
}
-\DeclareRobustCommand*{\Ifkomavarempty}{%
- \begingroup
- \kernel@ifstar {\@tempswatrue\@ifkomavarempty}%
- {\@tempswafalse\@ifkomavarempty}%
-}
-\newcommand{\@ifkomavarempty}[1]{%
- \Ifkomavar{#1}{%
- \if@tempswa
- \@ifundefined{scr@#1@name}{%
- \aftergroup\@firstoftwo
- }{%
- \expandafter\ifx\csname scr@#1@name\endcsname\@empty
- \aftergroup\@firstoftwo
- \else
- \aftergroup\@secondoftwo
- \fi
- }%
- \else
- \expandafter\ifx\csname scr@#1@var\endcsname\@empty
- \aftergroup\@firstoftwo
+\NewDocumentCommand{\Ifkomavarempty}{sm}{%
+ \Ifkomavar{#2}{%
+ \IfBooleanTF{#1}{%
+ \@ifundefined{scr@#2@name}\@firstoftwo{%
+ \expandafter\ifx\csname scr@#2@name\endcsname\@empty
+ \expandafter\@firstoftwo
\else
- \aftergroup\@secondoftwo
+ \expandafter\@secondoftwo
\fi
- \fi
+ }%
}{%
- \@komavar@err{use}{#1}%
- \aftergroup\@gobbletwo
- }%
- \endgroup
+ \expandafter\ifx\csname scr@#2@var\endcsname\@empty
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }
+ }{%
+ \@komavar@err{use}{#2}%
+ \@gobbletwo
+ }%
}
% \end{macrocode}
+% \begin{macro}{\if@komavarempty}
+% \changes{v2.8q}{2002/01/14}{added}
+% \changes{v3.42}{2023/08/25}{removed}
% \end{macro}%^^A \@ifkomavarempty
-% \end{command}%^^A \ifkomavarempty* … \Ifkomavarempty
+% \end{command}%^^A \ifkomavarempty, \Ifkomavarempty
+%
+% \begin{command}{\Ifkomavarxempty}
+% \changes{v3.42}{2023/08/25}{added}
+% This command is similar to the \cs{Ifkomavarempty} but uses \cs{Ifstr} for
+% the comparison and therefore does a full expansion of the variable
+% or output name.
+% \begin{macrocode}
+\NewDocumentCommand{\Ifkomavarxempty}{sm}{%
+ \Ifkomavar{#2}{%
+ \IfBooleanTF{#1}{%
+ \@ifundefined{scr@#2@name}\@firstoftwo{%
+ \Ifstr{\@nameuse{scr@#2@name}}{}%
+ }%
+ }{%
+ \Ifstr{\@nameuse{scr@#2@var}}{}%
+ }%
+ }{%
+ \@komavar@err{use}{#2}%
+ \@gobbletwo
+ }%
+}
+% \end{macrocode}
+% \end{command}
%
%
% \begin{command}{\foreachkomavar}
diff --git a/macros/latex/contrib/koma-script/scrkernel-version.dtx b/macros/latex/contrib/koma-script/scrkernel-version.dtx
index 7fc1e7c784..cbd3c36b25 100644
--- a/macros/latex/contrib/koma-script/scrkernel-version.dtx
+++ b/macros/latex/contrib/koma-script/scrkernel-version.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ======================================================================
% scrkernel-version.dtx
-% Copyright (c) Markus Kohm, 2002-2023
+% Copyright (c) Markus Kohm, 2002-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-version.dtx 4070 2023-07-07 07:08:40Z kohm $
+%%% From File: $Id: scrkernel-version.dtx 4133 2024-10-24 09:54:28Z kohm $
%
% ATTENTION: In this file parts of the code and documentation are before the
% driver. This must be, because this part of the code is needed by the driver
@@ -63,94 +63,112 @@
%
% \begin{command}{\KOMAScriptVersion}
% \changes{v2.95}{2002/06/25}{added}
-% This is the \KOMAScript{} version the file is related to. It is also added
-% to the classes and most of the packages by the installation drivers. This is
-% done using \file{scrdocstrip.tex} and additionally loading this file.
+% The main purpose of this command it to prevent mixture of files of
+% different \KOMAScript{} versions. But users can also use this command to
+% detect \KOMAScript{}. It is added to the classes and most of the packages
+% by the installation drivers. This is done using \file{scrdocstrip.tex} and
+% additionally loading this file.
% \begin{macro}{\@CheckKOMAScriptVersion}
% \changes{v2.95}{2002/06/25}{added}
+% \changes{v3.42}{2024/04/17}{command is defined only once but \pkg{expl3}
+% hard}
+% \changes{v3.42}{2024/04/17}{command is no longer defined in \file{clo}
+% or \file{lco} files}
% Depending on \cs{KOMAScriptVersion} already defined or not, the existing
% definition is compared with the version here or \cs{KOMAScriptVersion} is
% newly and globally defined. This has to work not only in class or package
% files, but also in document files. So \cs{makeatletter} inside a group is
% needed for the internal macros. Additionally a guard \texttt{ignorethis} is
% used, to avoid adding code, that is needed only for the installation driver,
-% also to classes or packages.
+% also to classes or packages. Note, the version check is also done in
+% \file{clo} or \file{lco} files, but the macros \cs{@CheckKOMAScriptVersion}
+% and \cs{@@CheckKOMAScriptVersion} are not defined in those, because those
+% files should not always be loaded by \KOMAScript{} classes or packages,
+% which would already define the command.
% \begin{macrocode}
-\begingroup
- \catcode`\@11\relax
%<*ignorethis>
- \ifx\newcommand\undefined
- \gdef\@CheckKOMAScriptVersion#1{%
- \global\KOMAdefVariable{KOMAScriptVersion}{\space\space#1}%
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \def\@defbeta##1 ##2 ##3KOMA-Script{%
- \def\@cmpstrA{##3}\def\@cmpstrB{BETA }%
- \ifx\@cmpstrA\@cmpstrB
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iftrue\endcsname
- \fi
- }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion
- \fi
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \def\@defbeta##1 ##2.##3.##4 KOMA-Script\@nil{%
- \def\@cmpstrA{##4}\def\@cmpstrB{}%
- \ifx\@cmpstrA\@cmpstrB\else
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iftrue\endcsname
- \fi
- }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion. KOMA-Script\@nil
- \fi
- \expandafter\ifx\csname ifbeta\endcsname\relax
- \expandafter\expandafter\expandafter\global
- \expandafter\expandafter\expandafter\let
- \expandafter\csname ifbeta\expandafter\endcsname
- \csname iffalse\endcsname
- \fi
- \aftergroup\endinput
- }%
- \else
+\ifx\newcommand\undefined
+ \catcode`\@11\relax
+ \def\@CheckKOMAScriptVersion#1{%
+ \global\KOMAdefVariable{KOMAScriptVersion}{\space\space#1}%
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \def\@defbeta##1 ##2 ##3KOMA-Script{%
+ \def\@cmpstrA{##3}\def\@cmpstrB{BETA }%
+ \ifx\@cmpstrA\@cmpstrB
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iftrue\endcsname
+ \fi
+ }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion
+ \fi
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \def\@defbeta##1 ##2.##3.##4 KOMA-Script\@nil{%
+ \def\@cmpstrA{##4}\def\@cmpstrB{}%
+ \ifx\@cmpstrA\@cmpstrB\else
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iftrue\endcsname
+ \fi
+ }\expandafter\@defbeta\KOMAvar@KOMAScriptVersion. KOMA-Script\@nil
+ \fi
+ \expandafter\ifx\csname ifbeta\endcsname\relax
+ \expandafter\expandafter\expandafter\global
+ \expandafter\expandafter\expandafter\let
+ \expandafter\csname ifbeta\expandafter\endcsname
+ \csname iffalse\endcsname
+ \fi
+ \let\@CheckKOMAScriptVersion\undefined
+ \endinput
+ }%
+\else
+ \makeatletter
%</ignorethis>
- \ifx\KOMAScriptVersion\undefined
- \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+%<*class|package>
+\providecommand*{\@CheckKOMAScriptVersion}{%
+ \begingroup
+ \ExplSyntaxOff
+ \@@CheckKOMAScriptVersion
+}
+\providecommand*{\@@CheckKOMAScriptVersion}[1]{%
+ \@ifundefined{KOMAScriptVersion}{%
\gdef\KOMAScriptVersion{#1}%
- }%
- \else
- \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ }{%
\def\@tempa{#1}%
\ifx\KOMAScriptVersion\@tempa\else
- \@latex@warning@no@line{%
- \noexpand\KOMAScriptVersion\space is
- `\KOMAScriptVersion',\MessageBreak
+ \GenericWarning{\space\@spaces\@spaces\@spaces\@spaces}{%
+ Version warning:
+ \noexpand\KOMAScriptVersion is
+ `\csname KOMAScriptVersion\endcsname',\MessageBreak
but `#1' was expected!\MessageBreak
You should not use classes, packages or files
from\MessageBreak
- different KOMA-Script versions%
+ different KOMA-Script versions\@gobble
}%
\fi
- }
+ }%
+ \endgroup
+}
+%</class|package>
%<*ignorethis>
- \fi
+\fi
%</ignorethis>
- \fi
% \end{macrocode}
% Note: Following line will be patched by \file{makebetaorrelase.sh} and
% therefore the syntax or general structure of the line must not be changed!
% \begin{macrocode}
%<*!v4>
- \@CheckKOMAScriptVersion{2023/07/07 v3.41 KOMA-Script}%
+\@CheckKOMAScriptVersion{2024/10/24 v3.43 KOMA-Script}%
%</!v4>
-%<v4> \@nameuse{@CheckKOMAScriptVersion}{2023/07/07 v3.41 KOMA-Script}%
-\endgroup
+%<v4> \@nameuse{@CheckKOMAScriptVersion}{2022/10/25 v3.99 ALPHA KOMA-Script}%
% \end{macrocode}
% \end{macro}
% \end{command}
%
% \iffalse
%<*dtx>
+\makeatother
\ProvidesFile{scrkernel-version.dtx}[\KOMAScriptVersion (versions)]
\documentclass[USenglish]{koma-script-source-doc}
\usepackage{babel}
diff --git a/macros/latex/contrib/koma-script/scrlayer.dtx b/macros/latex/contrib/koma-script/scrlayer.dtx
index 338cdc4403..2abe55bc40 100644
--- a/macros/latex/contrib/koma-script/scrlayer.dtx
+++ b/macros/latex/contrib/koma-script/scrlayer.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2023
+% Copyright (c) Markus Kohm, 2012-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrlayer.dtx 4058 2023-06-16 08:32:27Z kohm $
+%%% From File: $Id: scrlayer.dtx 4118 2024-09-02 12:05:30Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -28,9 +28,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-16 10:32:27 +0200 (Fr, 16. Jun 2023) $
+ \filedate$Date: 2024-09-02 14:05:30 +0200 (Mo, 02 Sep 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4058 $
+ \filerevision$Revision: 4118 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer.dtx}%
@@ -169,7 +169,6 @@
}%
}
\newcommand*{\scrlayer@inherit@option}[2]{%
-%<trace> \typeout{TRACE: Define key `#2' of member `#1'}%
\DefineFamilyMember[#1]{KOMA}%
\expandafter\let\csname KV@KOMA#1@#2\expandafter\endcsname
\csname KV@KOMA.scrlayer.sty@#2\endcsname
@@ -900,9 +899,21 @@
\else
% \end{macrocode}
% Level of left mark is less than level of right mark. This is
-% usual.
+% unusual, nevertheless it should work:
+% \changes{v3.42}{2024/09/02}{argument reversal corrected
+% (\href{https://sourceforge.net/p/koma-script/tickets/74/}{issue 74})}
% \begin{macrocode}
\expandafter\def\csname #1mark\endcsname##1{%
+ \@mkboth{}{%
+ \ifnum \c@secnumdepth
+ < \numexpr \csname #1numdepth\endcsname +0\relax
+ \else
+ \if@mainmatter \MakeMarkcase{\csname #1markformat\endcsname}\fi
+ \fi
+ \MakeMarkcase{##1}%
+ }%
+ }%
+ \expandafter\def\csname #2mark\endcsname##1{%
\begingroup
\@tempswafalse
\if@twoside\@tempswatrue
@@ -911,24 +922,14 @@
\if@tempswa
\@mkleft{%
\ifnum \c@secnumdepth
- < \numexpr\csname #1numdepth\endcsname +0\relax
+ < \numexpr\csname #2numdepth\endcsname +0\relax
\else
- \if@mainmatter \MakeMarkcase{\csname #1markformat\endcsname}\fi
+ \if@mainmatter \MakeMarkcase{\csname #2markformat\endcsname}\fi
\fi
\MakeMarkcase{##1}%
}%
\fi
}%
- \expandafter\def\csname #2mark\endcsname##1{%
- \@mkboth{}{%
- \ifnum \c@secnumdepth
- < \numexpr \csname #2numdepth\endcsname +0\relax
- \else
- \if@mainmatter \MakeMarkcase{\csname #2markformat\endcsname}\fi
- \fi
- \MakeMarkcase{##1}%
- }%
- }%
\fi
\fi
}{}%
@@ -936,10 +937,10 @@
}
% \end{macrocode}
% \begin{macro}{\ifscrlayer@level@prepared}
-% Test, whether or not this level has been prepared.
+% Test, whether or not this level has been prepared.
+% \changes{v3.42}{2024/02/01}{removed overlooked debug message}
% \begin{macrocode}
\newcommand*{\ifscrlayer@level@prepared}[1]{%
- \typeout{1: \detokenize{#1}}%
\scr@ifundefinedorrelax{#1numdepth}{%
\PackageError{scrlayer}{numbering depth of `#1' unknown}{%
Someone told me to use a section mark for level `#1',\MessageBreak
diff --git a/macros/latex/contrib/koma-script/scrmain.ins b/macros/latex/contrib/koma-script/scrmain.ins
index 9b2edae840..593b49c4ba 100644
--- a/macros/latex/contrib/koma-script/scrmain.ins
+++ b/macros/latex/contrib/koma-script/scrmain.ins
@@ -18,7 +18,7 @@
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-% $Id: scrmain.ins 4019 2023-03-31 14:23:35Z kohm $
+% $Id: scrmain.ins 4076 2023-07-31 13:38:10Z kohm $
% ---------- KOMA-Script default docstrip declarations -----------------
@@ -434,7 +434,6 @@
\batchinput{scrlogo.dtx}% scrlogo.sty
\batchinput{scrkernel-typearea.dtx}% typearea.sty
\batchinput{scrkernel-basics.dtx}% scrbase.sty
-\batchinput{scrhack.dtx}% scrhack.sty and the hak files
\batchinput{scrtime.dtx}% scrtime.sty, scrdate.sty
\batchinput{scrlfile.dtx}% scrlfile.sty
\batchinput{scraddr.dtx}% scraddr.sty
diff --git a/macros/latex/contrib/koma-script/scrtime.dtx b/macros/latex/contrib/koma-script/scrtime.dtx
index f5fdcb4919..1cb57a604c 100644
--- a/macros/latex/contrib/koma-script/scrtime.dtx
+++ b/macros/latex/contrib/koma-script/scrtime.dtx
@@ -1,7 +1,7 @@
% \iffalse
% ======================================================================
% scrtime.dtx
-% Copyright (c) Markus Kohm, 1995-2023
+% Copyright (c) Markus Kohm, 1995-2024
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,15 +18,15 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrtime.dtx 4032 2023-04-17 09:45:11Z kohm $
+%%% From File: $Id: scrtime.dtx 4099 2024-02-01 09:36:51Z kohm $
%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-04-17 11:45:11 +0200 (Mo, 17. Apr 2023) $
+ \filedate$Date: 2024-02-01 10:36:51 +0100 (Do, 01 Feb 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4032 $
+ \filerevision$Revision: 4099 $
\endgroup
\ProvidesFile{scrtime.dtx}[\filedate\space\filerevision\space
%</driver>
@@ -739,12 +739,14 @@
%
% Last but not least file \file{scrdate.cfg} has to be included,
% if it exists.
+% \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either
+% \cs{PackageNote} or \cs{PackageInfo}}
% \begin{macrocode}
\InputIfFileExists{scrdate.cfg}
- {\typeout{*************************************^^J%
- * Local config file scrdate.cfg used^^J%
- *************************************}}
- {}
+ {%
+ \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}%
+ {scrdate}{Local configuration file scrdate.cfg loaded}%
+ }{}
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/contrib/koma-script/tocbasic.dtx b/macros/latex/contrib/koma-script/tocbasic.dtx
index b9b75070af..a0999fc8ed 100644
--- a/macros/latex/contrib/koma-script/tocbasic.dtx
+++ b/macros/latex/contrib/koma-script/tocbasic.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: tocbasic.dtx 4067 2023-06-28 14:37:03Z kohm $
+%%% From File: $Id: tocbasic.dtx 4132 2024-10-24 09:32:44Z kohm $
%<identify>%%% (run: identify)
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
@@ -29,9 +29,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-28 16:37:03 +0200 (Mi, 28. Jun 2023) $
+ \filedate$Date: 2024-10-24 11:32:44 +0200 (Do, 24 Okt 2024) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 4067 $
+ \filerevision$Revision: 4132 $
\endgroup
\ProvidesFile{tocbasic.dtx}[\filedate\space\filerevision\space
%</dtx>
@@ -124,6 +124,7 @@
% manual, either the German \file{scrguide-de.pdf} or the English
% \file{scrguide-en.pdf}.
%
+%
% \MaybeStop{\PrintIndex}
%
%
@@ -144,9 +145,32 @@
% out-sourced into file \file{scrkernel-tocbasic.dtx}.
%
%
-% \subsection{Required packages}
+% \subsection{Requirements}
% \label{sec:packages}
%
+% \changes{v3.42}{2023/09/08}{We need at least \LaTeX{} 2022-06-01}
+% For full functionality at least \LaTeX{} 2022-06-01 is needed.
+% \begin{macrocode}
+%<*prepare>
+\newif\if@tocbasic@old@latex@found
+\ifnum 0=\ifcsname IfFormatAtLeastTF\endcsname
+ \IfFormatAtLeastTF{2022-06-01}{1}{0}
+ \else
+ 0
+ \fi\relax
+ \PackageWarningNoLine{tocbasic}{%
+ LaTeX kernel too old!\MessageBreak
+ For full functionality the package needs at least\MessageBreak
+ LaTeX 2022-06-01.\MessageBreak
+ You are using an older LaTeX version.\MessageBreak
+ So the functionality will be limited.\MessageBreak
+ Note that this also can result in error messages,\MessageBreak
+ that would not raise with an up-to-date LaTeX%
+ }
+ \@tocbasic@old@latex@foundtrue
+\fi
+%</prepare>
+% \end{macrocode}
% \changes{v3.41}{2023/06/28}{required packages moved to \texttt{prepare} run}
% \changes{v3.41}{2023/06/28}{\pkg{expl3} and \pkg{xparse} are required}
% Package \pkg*{scrbase} is needed to process all macro options.
@@ -169,14 +193,208 @@
% \subsection{Options}
% \label{sec:options}
%
-% There are no options because the package should be used by class and package
-% authors not by users. So the package will be loaded using
-% \cs{RequirePackage}. Using different options by different packages would
-% result in an option clash. Nevertheless, the not existing options are
-% processed.
+% \changes{v3.42}{2023/09/08}{with old \LaTeX{} all options are unknown}
+%
+% \begin{option}{enablepatch,disablepatch}
+% \changes{v3.42}{2023/09/08}{new}
+% From version 3.42 there a several optional patches executed while
+% |\begin{document}|. Every one of that patch can be enabled or disabled.
+% \ExplSyntaxOn
+% \begin{macro}{\@@_patch_all_bool,\@@_patch_starttoc_bool,\@@_patch_chapter_bool,
+% \@@_patch_listoffigures_bool,\@@_patch_listoftables_bool}
+% \ExplSyntaxOff
+% \changes{v3.42}{2023/09/08}{new}
+% Enabling and disabling will be done using a boolean variable with default
+% |false| (disabled). The |all| patch is somehow different. In enables or
+% disables doing all patches. So |disablepatch=all| does not disable all
+% patches but disables to ignore the single patches.
+% \begin{macrocode}
+%<@@=tocbasic>
+%<*option>
+\if@tocbasic@old@latex@found\else
+ \ExplSyntaxOn
+
+ \bool_new:N \@@_patch_all_bool
+ \bool_new:N \@@_patch_starttoc_bool
+ \bool_new:N \@@_patch_chapter_bool
+ \bool_new:N \@@_patch_listoffigures_bool
+ \bool_new:N \@@_patch_listoftables_bool
+
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+% The most simple part of the story is the definition of the two
+% options. Both allow a comma separated list of patches to set the
+% corresponding boolean value to |true| or |false|.
+% \begin{macrocode}
+ \DeclareKeys
+ {
+ enablepatch .code = \@@_endisable_patch:nn {#1} \c_true_bool,
+ enablepatch .usage = preamble,
+ enablepatch .value_required:n = true,
+ disablepatch .code = \@@_endisable_patch:nn {#1} \c_false_bool,
+ disablepatch .usage = preamble,
+ disablepatch .value_required:n = true,
+ }
+
+% \end{macrocode}
+% \ExplSyntaxOn
+% \begin{macro}{\@@_endisable_patch:nn}
+% \ExplSyntaxOff
+% \changes{v3.42}{2023/09/08}{new}
+% \changes{v3.43}{2024/10/22}{deprecated \cs{char\_uppercase:N} replaced by
+% \cs{text\_uppercase:n}}
+% Switch the patch \#1 depending on argument \#2 or raise a warning for
+% unknown patches.
+% \begin{macrocode}
+ \msg_new:nnnn { tocbasic } { unknown-patch }
+ {
+ \text_uppercase:n #1bling~of~unknown~patch~#2~ignored.
+ }
+ {
+ You've~tried~to~#1able~patch~#2,~
+ but~this~is~not~a~known~patch.~
+ Because~of~this~your~attempt~is~ignored.~
+ See~the~KOMA-Script~user~manual~for~more~information~about~known~patches.
+ }
+
+ \cs_new:Nn \@@_endisable_patch:nn
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \cs_if_exist:cTF { @@_patch_##1_bool }
+ {
+ \bool_set_eq:cN { @@_patch_##1_bool } #2
+ }
+ {
+ \exp_args:Nnnx \msg_warning:nnnn { tocbasic } { unknown-patch }
+ { \bool_if:NTF #2 { en } { dis } } { ##1 }
+ }
+ }
+ }
+
+ \ExplSyntaxOff
+\fi
+%</option>
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+% The patch codes are executed while |\begin{document}|. Some patches may be
+% dangerous, in which case message |dangerous-patch| is used.
+% \begin{description}
+% \item[ToDo:] We are using the old \cs{AtBeginDocument} here. Maybe a new
+% hook would be cleaner.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\if@tocbasic@old@latex@found\else
+ \ExplSyntaxOn
+ \msg_new:nnnn { tocbasic } { dangerous-patch }
+ {
+ Dangerous~#2~patch~enabled \str_if_empty:nF { #1 } { ~using~#1 } .
+ }
+ {
+ \str_if_empty:nF { #1 } { Class~#1~does~not~need~the~#2~patch.~ }
+ Using~this~patch~can~even~result~in~harm.~
+ If~you~are~not~sure~that~this~patch~is~needed,~
+ you~should~not~enable~it.~
+ Please,~see~the~KOMA-Script~user~manual~for~more~information~about~
+ the~#2~patch.
+ }
+
+ \AtBeginDocument
+ {
+
+% \end{macrocode}
+% The patches are:
+% \begin{description}
+% \item[\texttt{all}:] activate all other patches. The \texttt{chapter} patch
+% is not enabled for \KOMAScript{} classes. So if you want to use this patch
+% with a \KOMAScript{} class\,---\,which usually will not make sense\,---\,,
+% you have to use an explicit |enabelpatch=chapter|.
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_all_bool
+ {
+ \bool_set_true:N \@@_patch_starttoc_bool
+ \cs_if_exist:NF \KOMAClassName
+ { \bool_set_true:N \@@_patch_chapter_bool }
+ \bool_set_true:N \@@_patch_listoffigures_bool
+ \bool_set_true:N \@@_patch_listoftables_bool
+ }
+
+% \end{macrocode}
+% \item[\texttt{chapter}:] patches \cs{@makechapterhead} to add \cs{addvspace}
+% to every float list. It does \emph{not} patch \cs{@makeschapterhead}. Note
+% that this patch should not be activated using a \KOMAScript{} class unless
+% you are using an incompatible \cs{chapter} definition. This patch is
+% potentially dangerous. So we raise at least a note and maybe a warning.
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_chapter_bool
+ {
+ \cs_if_exist:NTF \KOMAClassName
+ {
+ \exp_args:Nnnx \msg_warn:nnnn { tocbasic } { dangerous-patch }
+ { \KOMAClassName } { chapter }
+ }
+ {
+ \exp_args:Nnnx \msg_note:nnnn { tocbasic } { dangerous-patch }
+ { } { chapter }
+ }
+ \hook_gput_code:nnn { cmd/@makechapterhead/before } { tocbasic }
+ {
+ \doforeachtocfile[float]{
+ \addtocontents{\@currext}{\protect\addvspace{10\p@}}
+ }
+ }
+ }
+
+% \end{macrocode}
+% \item[\texttt{starttoc}:] executes \cs{tocbasicautomode}
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_starttoc_bool \tocbasicautomode
+
+% \end{macrocode}
+% \item[\texttt{listoffigures}] redefines \cs{listoffigures} to use
+% \pkg*{tocbasic} (but without changing \cs{l@figure}, because
+% \cs{DeclareTOCSTyleEntry} already has defaults for \texttt{figure}).
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_listoffigures_bool
+ {
+ \renewcommand*{\listoffigures}{\listoftoc{\ext@figure}}%
+ \providecommand*{\listoflofname}{\listfigurename}%
+ }
+
+% \end{macrocode}
+% \item[\texttt{listoftables}] redefines \cs{listoftables} to use
+% \pkg*{tocbasic} (but without changing \cs{l@table}, because
+% \cs{DeclareTOCSTyleEntry} already has defaults for \texttt{table}).
+% \begin{macrocode}
+ \bool_if:NT \@@_patch_listoftables_bool
+ {
+ \renewcommand*{\listoftables}{\listoftoc{\ext@table}}%
+ \providecommand*{\listoflotname}{\listtablename}%
+ }
+
+% \end{macrocode}
+% \end{description}
+% \begin{macrocode}
+ }
+
+ \ExplSyntaxOff
+\fi
+%</body>
+%<@@=>
+% \end{macrocode}
+% \end{option}
+% \ExplSyntaxOff
+%
% \begin{macrocode}
%<*execoption>
-\ProcessOptions\relax
+\if@tocbasic@old@latex@found
+ \ProcessOptions
+\else
+ \ProcessKeyOptions
+\fi
%</execoption>
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index f2231144d8..2e84b11d1e 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,18 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-10-16]
+
+### Added
+- `--dev` switch to run tests using development format
+
+## [2024-10-08]
+
+### Fixed
+- Test for uncompleted conditionals in tests (may require `.tlg` update)
+- Global `typesetopts` no longer ignored for `luatex` and `lualatex` (issue \#351)
+- Handling of spaces in options
+
## [2024-05-27]
### Changed
@@ -785,7 +797,9 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2024-05-27...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2024-10-16...HEAD
+[2024-10-16]: https://github.com/latex3/l3build/compare/2024-10-08...2024-10-16
+[2024-10-08]: https://github.com/latex3/l3build/compare/2024-05-27...2024-10-08
[2024-05-27]: https://github.com/latex3/l3build/compare/2024-02-08...2024-05-27
[2024-02-08]: https://github.com/latex3/l3build/compare/2024-01-18...2024-02-08
[2024-01-18]: https://github.com/latex3/l3build/compare/2024-01-09...2024-01-18
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index 1b49dc0b0c..3c3c68a53d 100644
--- a/macros/latex/contrib/l3build/README.md
+++ b/macros/latex/contrib/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2024-05-27
+Release 2024-10-16
Overview
--------
diff --git a/macros/latex/contrib/l3build/l3build-arguments.lua b/macros/latex/contrib/l3build/l3build-arguments.lua
index b7687a71a9..e1c189db29 100644
--- a/macros/latex/contrib/l3build/l3build-arguments.lua
+++ b/macros/latex/contrib/l3build/l3build-arguments.lua
@@ -45,6 +45,7 @@ option_list =
date =
{
desc = "Sets the date to insert into sources",
+ short = "d",
type = "string"
},
debug =
@@ -52,6 +53,11 @@ option_list =
desc = "Runs target in debug mode",
type = "boolean"
},
+ dev =
+ {
+ desc = "Use the development LaTeX format",
+ type = "boolean"
+ },
dirty =
{
desc = "Skips cleaning up the test area",
@@ -267,7 +273,7 @@ local function argparse()
result[optname] = optarg
else
local opts = result[optname] or { }
- for hit in gmatch(optarg, "([^,%s]+)") do
+ for hit in gmatch(optarg, "([^,]+)") do
insert(opts, hit)
end
result[optname] = opts
diff --git a/macros/latex/contrib/l3build/l3build-aux.lua b/macros/latex/contrib/l3build/l3build-aux.lua
index bf0b85c698..eea2625e90 100644
--- a/macros/latex/contrib/l3build/l3build-aux.lua
+++ b/macros/latex/contrib/l3build/l3build-aux.lua
@@ -102,7 +102,7 @@ end
---@param modules table List of modules.
---@param target string
---@param opts table
----@return number 0 on proper termination, a non 0 error code otherwise.
+---@return number 0 on a successful completion, a non 0 error code otherwise.
---@see many places, including latex2e/build.lua
---@usage Public
function call(modules, target, opts)
@@ -155,7 +155,7 @@ end
---Unpack the given dependencies.
---A dependency is the path of a directory relative to the main one.
---@param deps table regular array of dependencies.
----@return number 0 on proper termination, a non 0 error code otherwise.
+---@return number 0 on a successful completion, a non 0 error code otherwise.
---@see stdmain, check, unpack, typesetting
---@usage Private?
function dep_install(deps)
diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua
index d6d30e3e2a..a0c1ba7c7e 100644
--- a/macros/latex/contrib/l3build/l3build-check.lua
+++ b/macros/latex/contrib/l3build/l3build-check.lua
@@ -95,10 +95,10 @@ function checkinit_hook() return 0 end
local function rewrite(source,result,processor,...)
local file = assert(open(source,"rb"))
- local content = gsub(file:read("*all") .. "\n","\r\n","\n")
+ local content = gsub(file:read("a") .. "\n","\r\n","\n")
close(file)
local new_content = processor(content,...)
- local newfile = open(result,"w")
+ local newfile = assert(open(result,"w"))
output(newfile)
write(new_content)
close(newfile)
@@ -828,9 +828,9 @@ function runtest(name, engine, hide, ext, test_type, breakout)
)
-- On Windows, concatenating here will suppress any non-zero errorlevel
-- from the main run, so we split into two parts.
- if runtest_tasks(jobname(lvtfile),i) ~= "" then
- local errorlevel =
- runcmd(preamble .. runtest_tasks(jobname(lvtfile),i),testdir)
+ local tasks = runtest_tasks(jobname(lvtfile),i)
+ if tasks ~= "" then
+ local errorlevel = runcmd(preamble .. tasks,testdir)
if errorlevel ~= 0 then errlevels[i] = errorlevel end
end
-- Break the loop if the result is stable
@@ -919,7 +919,7 @@ local function showsavecommands(failurelist)
end
end
print(" To regenerate the test files, run\n")
- local f = open(testdir .. "/.savecommands", "w")
+ local f = assert(open(testdir .. "/.savecommands", "w"))
for _, cmds in pairs(savecmds) do
print(" " .. cmds)
f:write(cmds, "\n")
@@ -1089,9 +1089,9 @@ function showfailedlog(name)
for _,i in ipairs(ordered_filelist(testdir, name..".log")) do
print(" - " .. testdir .. "/" .. i)
print("")
- local f = open(testdir .. "/" .. i,"r")
- local content = f:read("*all")
- close(f)
+ local f = assert(open(testdir .. "/" .. i,"r"))
+ local content = f:read("a")
+ f:close()
print("-----------------------------------------------------------------------------------")
print(content)
print("-----------------------------------------------------------------------------------")
@@ -1103,9 +1103,9 @@ function showfaileddiff()
for _,i in ipairs(ordered_filelist(testdir, "*" .. os_diffext)) do
print(" - " .. testdir .. "/" .. i)
print("")
- local f = open(testdir .. "/" .. i,"r")
- local content = f:read("*all")
- close(f)
+ local f = assert(open(testdir .. "/" .. i,"r"))
+ local content = f:read("a")
+ f:close()
print("-----------------------------------------------------------------------------------")
print(content)
print("-----------------------------------------------------------------------------------")
diff --git a/macros/latex/contrib/l3build/l3build-ctan.lua b/macros/latex/contrib/l3build/l3build-ctan.lua
index c1feb2564a..167cd33541 100644
--- a/macros/latex/contrib/l3build/l3build-ctan.lua
+++ b/macros/latex/contrib/l3build/l3build-ctan.lua
@@ -85,7 +85,7 @@ function ctan()
options["engine"] = nil
local function dirzip(dir, zipname)
zipname = zipname .. ".zip"
- local zip = newzip(dir .. '/' .. zipname)
+ local zip = assert(newzip(dir .. '/' .. zipname))
local function tab_to_check(table)
local patterns = {}
for n,i in ipairs(table) do
diff --git a/macros/latex/contrib/l3build/l3build-manifest-setup.lua b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
index 8654b3deb5..55c568828e 100644
--- a/macros/latex/contrib/l3build/l3build-manifest-setup.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
@@ -335,7 +335,7 @@ end
-- From the first match of a pattern in a file:
manifest_extract_filedesc = function(filehandle)
- local all_file = filehandle:read("*all")
+ local all_file = filehandle:read("a")
local matchstr = "\\section{(.-)}"
filedesc = string.match(all_file,matchstr)
diff --git a/macros/latex/contrib/l3build/l3build-manifest.lua b/macros/latex/contrib/l3build/l3build-manifest.lua
index aa5a061bd3..b8202bc0cb 100644
--- a/macros/latex/contrib/l3build/l3build-manifest.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest.lua
@@ -33,6 +33,9 @@ for those people who are interested.
`l3build-manifest-setup.lua`.
--]]
+local ctanfiles
+local tdsfiles
+
function manifest()
-- build list of ctan files
@@ -55,7 +58,7 @@ function manifest()
manifest_write(manifest_entries)
- printline = "Manifest written to " .. manifestfile
+ local printline = "Manifest written to " .. manifestfile
print((printline:gsub(".","*"))) print(printline) print((printline:gsub(".","*")))
return 0
@@ -153,6 +156,7 @@ manifest_build_init = function(entry)
end
+local open = io.open
manifest_build_file = function(entry,this_file)
@@ -173,7 +177,7 @@ manifest_build_file = function(entry,this_file)
if not(entry.skipfiledescription) then
- local ff = assert(io.open(entry.dir .. "/" .. this_file, "r"))
+ local ff = assert(open(entry.dir .. "/" .. this_file, "r"))
this_descr = manifest_extract_filedesc(ff,this_file)
ff:close()
@@ -197,7 +201,7 @@ end
manifest_write = function(manifest_entries)
- local f = assert(io.open(manifestfile, "w"))
+ local f = assert(open(manifestfile, "w"))
manifest_write_opening(f)
for ii,vv in ipairs(manifest_entries) do
diff --git a/macros/latex/contrib/l3build/l3build-stdmain.lua b/macros/latex/contrib/l3build/l3build-stdmain.lua
index 70d7560f20..e66ba1d3f5 100644
--- a/macros/latex/contrib/l3build/l3build-stdmain.lua
+++ b/macros/latex/contrib/l3build/l3build-stdmain.lua
@@ -35,7 +35,7 @@ function listmodules()
if entry ~= "." and entry ~= ".." then
local attr = lfs.attributes(entry)
assert(type(attr) == "table")
- if attr.mode == "directory" then
+ if attr.mode == "directory" and fileexists(entry .."/" .."build.lua") then
if not exclmodules[entry] then
insert(modules, entry)
end
diff --git a/macros/latex/contrib/l3build/l3build-tagging.lua b/macros/latex/contrib/l3build/l3build-tagging.lua
index 0753123f99..225ba23874 100644
--- a/macros/latex/contrib/l3build/l3build-tagging.lua
+++ b/macros/latex/contrib/l3build/l3build-tagging.lua
@@ -39,9 +39,12 @@ end
local function update_file_tag(file,tagname,tagdate)
local filename = basename(file)
print("Tagging ".. filename)
+ ---@type file*?
local f = assert(open(file,"rb"))
- local content = f:read("*all")
+ ---@cast f file*
+ local content = f:read("a")
f:close()
+ f = nil
-- Deal with Unix/Windows line endings
content = gsub(content .. (match(content,"\n$") and "" or "\n"),
"\r\n", "\n")
diff --git a/macros/latex/contrib/l3build/l3build-unpack.lua b/macros/latex/contrib/l3build/l3build-unpack.lua
index 3c73dc8d14..ba8a5b5934 100644
--- a/macros/latex/contrib/l3build/l3build-unpack.lua
+++ b/macros/latex/contrib/l3build/l3build-unpack.lua
@@ -69,11 +69,12 @@ function bundleunpack(sourcedirs, sources)
return errorlevel
end
end
+ local popen = io.popen
for _,i in ipairs(unpackfiles) do
for _,p in ipairs(tree(unpackdir, i)) do
local path, name = splitpath(p.src)
local localdir = abspath(localdir)
- local success = io.popen(
+ local success = assert(popen(
"cd " .. unpackdir .. "/" .. path .. os_concat ..
os_setenv .. " TEXINPUTS=." .. os_pathsep
.. localdir .. (unpacksearch and os_pathsep or "") ..
@@ -84,7 +85,7 @@ function bundleunpack(sourcedirs, sources)
unpackexe .. " " .. unpackopts .. " " .. name
.. (options["quiet"] and (" > " .. os_null) or ""),
"w"
- ):write(string.rep("y\n", 300)):close()
+ ):write(string.rep("y\n", 300))):close()
if not success then
return 1
end
diff --git a/macros/latex/contrib/l3build/l3build-upload.lua b/macros/latex/contrib/l3build/l3build-upload.lua
index 87158d1b01..645445feb4 100644
--- a/macros/latex/contrib/l3build/l3build-upload.lua
+++ b/macros/latex/contrib/l3build/l3build-upload.lua
@@ -94,9 +94,9 @@ function upload(tagnames)
-- Get data from command line if appropriate
if options["file"] then
- local f = open(options["file"],"r")
- uploadconfig.announcement = assert(f:read('*a'))
- close(f)
+ local f = assert(open(options["file"],"r"))
+ uploadconfig.announcement = assert(f:read('a'))
+ f:close()
end
uploadconfig.announcement = options["message"] or uploadconfig.announcement or file_contents(uploadconfig.announcement_file)
uploadconfig.email = options["email"] or uploadconfig.email
@@ -139,10 +139,13 @@ function upload(tagnames)
-- curl file version
local curloptfile = uploadconfig.curlopt_file or (ctanzip .. ".curlopt")
- local curlopt=open(curloptfile,"w")
+ ---@type file*?
+ local curlopt=assert(open(curloptfile,"w"))
+ ---@cast curlopt file*
output(curlopt)
write(ctan_post)
- close(curlopt)
+ curlopt:close()
+ curlopt = nil
ctan_post=curlexe .. " --config " .. curloptfile
@@ -376,12 +379,12 @@ end
-- if filename is non nil and file readable return contents otherwise nil
function file_contents (filename)
if filename ~= nil then
- local f= open(filename,"r")
+ local f= assert(open(filename,"r"))
if f==nil then
return nil
else
- local s = f:read("*all")
- close(f)
+ local s = f:read("a")
+ f:close()
return s
end
else
diff --git a/macros/latex/contrib/l3build/l3build-zip.lua b/macros/latex/contrib/l3build/l3build-zip.lua
index 5107415173..0c326b7236 100644
--- a/macros/latex/contrib/l3build/l3build-zip.lua
+++ b/macros/latex/contrib/l3build/l3build-zip.lua
@@ -132,7 +132,7 @@ local meta = {__index = {
}}
return function(filename)
- local f, msg = open(filename, 'wb')
+ local f, msg = open(filename, 'wb') -- closed just above
if not f then return f, msg end
return setmetatable({
f = f,
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index d42e486f3c..cefd4849a1 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH L3BUILD 1 "2024-05-27" "LaTeX"
+.TH L3BUILD 1 "2024-10-16" "LaTeX"
.SH NAME
l3build
@@ -7,16 +7,19 @@ l3build
Usage l3build <target> [<options>] [<names>]
.SH DESCRIPTION
-------
-The l3build module is designed to support the development of
+
+The "l3build" module is designed to support the development of
high-quality LaTeX code by providing:
-* A unit testing system
-* Automated typesetting of code sources
-* A reliable packaging system for CTAN releases
+
+ * A unit testing system
+
+ * Automated typesetting of code sources
+
+ * A reliable packaging system for CTAN releases
The bundle consists of a Lua script to run the tasks and a
-.tex file which provides the testing environment. These were
+".tex" file which provides the testing environment. These were
originally developed for supporting LaTeX development but
are designed such that they can be readily used by others. Full
documentation is provided.
@@ -38,8 +41,9 @@ Valid targets are:
.SH OPTIONS
Valid options are:
--config|-c Sets the config(s) used for running tests
- --date Sets the date to insert into sources
+ --date|-d Sets the date to insert into sources
--debug Runs target in debug mode
+ --dev Use the development LaTeX format
--dirty Skips cleaning up the test area
--dry-run Dry run for install or upload
--email Email address of CTAN uploader
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index 2433c7a311..16fc10055d 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -251,7 +251,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-10-16}
%
% \maketitle
% \tableofcontents
@@ -369,8 +369,9 @@
% As well as these targets, the system recognises the options
% \begin{itemize}
% \item |--config| (|-c|) Configuration(s) to use for testing
-% \item |--date| Date to use when tagging data
+% \item |--date| (|-d|) Date to use when tagging data
% \item |--debug| Runs the target in debug mode (not supported by all targets)
+% \item |--dev| Runs \LaTeX{} checks using the development format
% \item |--dirty| Skips cleaning up of the test area
% \item |--dry-run| Runs the \texttt{install} target but does not copy
% any files: simply lists those that would be installed
@@ -388,7 +389,7 @@
% \item |--message| (|-m|) Text for upload announcement
% \item |--quiet| (|-q|) Suppresses output from unpacking
% \item |--rerun| Runs tests without unpacking/set up
-% \item |--show-log-on-error| To be used in addition to \texttt{--halt-on-error} and results
+% \item |--show-log-on-error| To be used in addition to |--halt-on-error| and results
% in the full \texttt{.log} file of a failed test to be shown on the console
% \item |--show-saves| (|-S|) When tests fail, prints the \texttt{l3build save} commands needed
% to regenerate the tests assuming that the failures were false negatives.
@@ -432,7 +433,7 @@
% configurations are used and need adjustment to the standard engine, this does
% need to be given explicitly using \var{stdengine}.
% The format used for tests can be altered by setting \var{checkformat}: the default setting \texttt{latex} means that tests are run using \emph{e.g.}~\texttt{pdflatex}, whereas setting to \texttt{tex} will run tests using \emph{e.g.}~\texttt{pdftex}.
-% (Currently, this should be one of \texttt{latex}, \texttt{tex}, or
+% (Currently, this should be one of \texttt{latex}, \texttt{latex-dev}, \texttt{tex}, or
% \texttt{context}.)
% To perform the check, the engine typesets each test up to \var{checkruns} times.
% More detail on this in the documentation on |save|.
@@ -460,9 +461,19 @@
% \end{buildcmd}
%
% \begin{buildcmd}{clean}
-% This command removes all temporary files used for package bundling and regression testing.
-% In the standard layout, these are all files within the directories defined by \var{localdir}, \var{testdir}, \var{typesetdir} and \var{unpackdir}, as well as all files defined in the \var{cleanfiles} variable in the same directory as the script.
-% The defaults are |.pdf| files from typesetting (|doc|) and |.zip| files from bundling (|ctan|).
+% This target is meant as preparation for other targets, for example |ctan|.
+% It removes the contents of \var{distribdir} and all temporary files used for package bundling and regression testing.
+% These are all files within the directories \var{unpackdir}, \var{testdir}, \var{typesetdir} and \var{localdir}.
+% In addition, all the files in \var{maindir} (the directory of |build.lua| in the standard layout),
+% \var{sourcefiledir} and \var{docfiledir} are removed when matched by \var{cleanfiles}
+% but not by \var{sourcefiles}.
+% In a standard way are removed |.log| and |.pdf| files from the |doc| target and
+% |.zip| files from the |ctan| target.
+%
+% When applied to a bundle, the |clean| target is first applied to each
+% embedded modules (listed in |modules|).
+% In addition, all the files in the directory of |build.lua| are removed
+% when matched by \var{cleanfiles}, while ignoring \var{sourcefiles}. Finally |ctandir| and |tdsdir| are removed.
% \end{buildcmd}
%
%
@@ -667,7 +678,7 @@
% \end{floating-listing}
%
% A collection of full examples (source files in various layouts) are available
-% at \url{https://github.com/latex3/l3build/tree/master/examples}.
+% at \url{https://github.com/latex3/l3build/tree/main/examples}.
%
% \subsection{Variables}
%
@@ -791,7 +802,7 @@
% files are in a sub-directory.
%
% A series of example layouts and matching |build.lua| files are available from
-% \url{https://github.com/latex3/l3build/tree/master/examples}.
+% \url{https://github.com/latex3/l3build/tree/main/examples}.
%
% For more complex layouts in which sources are laid out in TDS format and
% should be used directly, the table \var{tdsdirs} is available. Each entry
@@ -1662,35 +1673,42 @@
%
% \begin{variable}{options}
% The |options| table holds the values passed to \pkg{l3build} at the
-% command line. The possible entries in the table are given in the table
-% below.
+% command line. Each possible \meta{entry} given below corresponds to
+% |--|\meta{entry} given at the command line, except the |target| entry
+% which is self explanatory and the |names| entry which corresponds to \meta{name(s)}
+% for |check|, |doc|, |save| and |tag| targets.
% \begin{center}
% \begin{tabular}{ll}
% \toprule
-% Entry & Type \\
+% Entry & Lua type \\
% \midrule
-% \var{config} & Table \\
-% \var{date} & String \\
-% \var{dirty} & Boolean \\
-% \var{dry-run} & Boolean \\
-% \var{email} & String \\
-% \var{engine} & Table \\
-% \var{epoch} & String \\
-% \var{file} & string \\
-% \var{first} & Boolean \\
-% \var{full} & Boolean \\
-% \var{halt-on-error} & Boolean \\
-% \var{help} & Boolean \\
-% \var{message} & string \\
-% \var{names} & Table \\
-% \var{quiet} & Boolean \\
-% \var{rerun} & Boolean \\
-% \var{shuffle} & Boolean \\
-% \var{stdengine} & Boolean \\
-% \var{texmfhome} & String \\
+% \var{config} & |table| \\
+% \var{date} & |string| \\
+% \var{dirty} & |boolean| \\
+% \var{dry-run} & |boolean| \\
+% \var{email} & |string| \\
+% \var{engine} & |table| \\
+% \var{epoch} & |string| \\
+% \var{file} & |string| \\
+% \var{first} & |boolean| \\
+% \var{full} & |boolean| \\
+% \var{halt-on-error} & |boolean| \\
+% \var{help} & |boolean| \\
+% \var{message} & |string| \\
+% \var{names} & |table| \\
+% \var{quiet} & |boolean| \\
+% \var{rerun} & |boolean| \\
+% \var{shuffle} & |boolean| \\
+% \var{stdengine} & |boolean| \\
+% \var{target} & |string| \\
+% \var{texmfhome} & |string| \\
% \bottomrule
% \end{tabular}
% \end{center}
+% The Lua tables mentionned here are in fact arrays of strings.
+% From the |build.lua| file, one can modify the string and boolean values,
+% add or remove entries in arrays. But it is not recommended to affect a
+% whole new Lua table to |options| nor to its array entries.
% \end{variable}
%
% \subsection{Utility functions}
@@ -1946,7 +1964,7 @@
% |tex(|\meta{file},\meta{dir},\meta{cmd}|)|
% \end{syntax}
% Runs \meta{cmd} (by default \luavar{typesetexe} \luavar{typesetopts}) on the
-% \meta{name} inside the \meta{dir}.
+% \meta{file} inside the \meta{dir}.
% \end{function}
%
% \begin{function}{runcmd()}
@@ -2127,7 +2145,7 @@
% \begin{verbatim}
% manifest_extract_filedesc = function(filehandle,filename)
%
-% local all_file = filehandle:read("*all")
+% local all_file = filehandle:read("a")
% local matchstr = "\\section{(.-)}"
%
% filedesc = string.match(all_file,matchstr)
@@ -2288,8 +2306,8 @@
\ifnum\currentgrouplevel>0 %
\LONGTYPEOUT{Bad grouping: \the\currentgrouplevel!}%
\fi
- \ifnum\currentiflevel>2 %
- \LONGTYPEOUT{Bad conditionals: \the\numexpr\currentiflevel-2!}%
+ \ifnum\currentiflevel>1 %
+ \LONGTYPEOUT{Bad conditionals: \the\numexpr\currentiflevel-1!}%
\fi
\LONGTYPEOUT{^^JEND-TEST-LOG^^J}%
\@@@end
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index bb53a2ce55..1342f4ace6 100755
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2024-05-27"
+release_date = "2024-10-16"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -128,7 +128,15 @@ if forcecheckepoch then
end
if forcedocepoch then
if match(typesetexe,"luatex") or match(typesetexe,"lualatex") then
- typesetopts = typsetopts .. " -utc"
+ typesetopts = typesetopts .. " -utc"
+ end
+end
+-- Allow for LaTeX "dev" release
+if options["dev"] then
+ if checkformat == "latex" then
+ checkformat = "latex-dev"
+ elseif checkformat ~= "latex-dev" then
+ print("Ignoring --dev option with non-LaTeX format")
end
end
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index 93f4b8f3ab..94997e144d 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md
index cd9143da08..a49c43396d 100644
--- a/macros/latex/contrib/l3packages/CHANGELOG.md
+++ b/macros/latex/contrib/l3packages/CHANGELOG.md
@@ -7,6 +7,13 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-08-16]
+
+### Fixed
+- Support for optimised commands using `\GetDocumentCommandArgSpec` (issue
+ [\#1550](https://github.com/latex3/latex3/issues/1550))
+- Unmatched `macrocode` environment in `xtemplate`
+
## [2024-05-08]
### Changed
@@ -259,7 +266,8 @@ this project uses date-based 'snapshot' version identifiers.
- Switch to ISO date format
- Improve cross-module use of internal functions
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-08...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-08-16...HEAD
+[2024-08-16]: https://github.com/latex3/latex3/compare/2024-05-08...2024-08-16
[2024-05-08]: https://github.com/latex3/latex3/compare/2024-03-14...2024-05-08
[2024-03-14]: https://github.com/latex3/latex3/compare/2024-02-18...2024-03-14
[2024-02-18]: https://github.com/latex3/latex3/compare/2024-02-13...2024-02-18
diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md
index 10899672d6..dfdc1135ba 100644
--- a/macros/latex/contrib/l3packages/README.md
+++ b/macros/latex/contrib/l3packages/README.md
@@ -1,6 +1,6 @@
# `l3packages`: Higher-level LaTeX3 Concepts (Deprecated)
-Release 2024-05-08
+Release 2024-08-16
## Overview
diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx
index 2e5c419165..e8f6416012 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.dtx
+++ b/macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -62,7 +62,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -154,7 +154,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2024-05-08}{}
+\ProvidesExplPackage{l3keys2e}{2024-08-16}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf
index df3821afb8..90c356f225 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.pdf
+++ b/macros/latex/contrib/l3packages/l3keys2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx
index fe8dcd51b1..6e95e42901 100644
--- a/macros/latex/contrib/l3packages/xfp.dtx
+++ b/macros/latex/contrib/l3packages/xfp.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -171,7 +171,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2024-05-08}{}
+\ProvidesExplPackage{xfp}{2024-08-16}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf
index 2097c2b079..8640b3600d 100644
--- a/macros/latex/contrib/l3packages/xfp.pdf
+++ b/macros/latex/contrib/l3packages/xfp.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx
index 62ac19ff25..ac0ee03d3f 100644
--- a/macros/latex/contrib/l3packages/xparse.dtx
+++ b/macros/latex/contrib/l3packages/xparse.dtx
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -1079,7 +1079,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2024-05-08}{}
+\ProvidesExplPackage{xparse}{2024-08-16}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
@@ -1436,13 +1436,30 @@
%
% \begin{macro}{\@@_get_arg_spec:NTF}
% If the command is not an \pkg{xparse} command, complain. If it is,
-% its second \enquote{item} is the argument specification.
+% its second \enquote{item} is the argument specification unless the
+% command is optimised: in the latter case, we can reconstruct the
+% spec.
% \begin{macrocode}
\cs_gset_protected:Npn \@@_get_arg_spec:NTF #1#2#3
{
\__kernel_cmd_if_xparse:NTF #1
{
- \tl_set:Ne \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
+ \tl_set:Ne \ArgumentSpecification
+ {
+ \exp_args:No \tl_if_head_eq_meaning:nNTF {#1} \@@_start_optimized:
+ {
+ \prg_replicate:nn
+ {
+ \str_count:e
+ {
+ \exp_args:Nc \cs_parameter_spec:N
+ { \cs_to_str:N #1 \c_space_tl code }
+ } / 2
+ }
+ { m }
+ }
+ { \tl_item:Nn #1 { 2 } }
+ }
#2
}
{#3}
diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf
index bb31c0a5e6..b9c39f43c3 100644
--- a/macros/latex/contrib/l3packages/xparse.pdf
+++ b/macros/latex/contrib/l3packages/xparse.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx
index 7d20c6142f..17715905ad 100644
--- a/macros/latex/contrib/l3packages/xtemplate.dtx
+++ b/macros/latex/contrib/l3packages/xtemplate.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -704,7 +704,7 @@
\endinput
}
{%
- \ProvidesExplPackage{xtemplate}{2024-05-08}{}
+ \ProvidesExplPackage{xtemplate}{2024-08-16}{}
{L3 Experimental prototype document functions}
\long\protected\def\DeclareRestrictedTemplate#1#2#3#4{%
\DeclareTemplateCopy{#1}{#3}{#2}%
@@ -722,6 +722,7 @@
% \end{macro}
% \end{macro}
%
+% \begin{macrocode}
%</package>
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf
index b70bd7c991..44e90a9163 100644
--- a/macros/latex/contrib/l3packages/xtemplate.pdf
+++ b/macros/latex/contrib/l3packages/xtemplate.pdf
Binary files differ
diff --git a/macros/latex/contrib/latex2pydata/CHANGELOG.md b/macros/latex/contrib/latex2pydata/CHANGELOG.md
index f079e3c167..65f9c3bfd9 100644
--- a/macros/latex/contrib/latex2pydata/CHANGELOG.md
+++ b/macros/latex/contrib/latex2pydata/CHANGELOG.md
@@ -1,6 +1,13 @@
# Changelog — latex2pydata LaTeX package
+## v0.3.0 (2024/10/16)
+
+* Replaced buffer length counters with macros to prevent issues with
+ `\includeonly` resetting counters.
+
+
+
## v0.2.0 (2024-05-16)
* Operations on file handles, file names, and buffers are now global.
@@ -34,6 +41,7 @@
`tcolorbox`.
+
## v0.1.0 (2023-11-19)
* Initial release.
diff --git a/macros/latex/contrib/latex2pydata/latex2pydata.dtx b/macros/latex/contrib/latex2pydata/latex2pydata.dtx
index a9d1751557..43cacc7674 100644
--- a/macros/latex/contrib/latex2pydata/latex2pydata.dtx
+++ b/macros/latex/contrib/latex2pydata/latex2pydata.dtx
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{latex2pydata}
%<*package>
- [2024/05/16 v0.2.0 latex2pydata - write data to file in Python literal format]
+ [2024/10/16 v0.3.0 latex2pydata - write data to file in Python literal format]
%</package>
%
%<*driver>
@@ -482,7 +482,7 @@
%
% Key-value data can be written to file once a dict is opened with |\pydatawritedictopen|. It is also possible to accumulate key-value data in a ``buffer.'' This is convenient when the data serves as input to an external program that generates cached content. Buffered data can be hashed in memory without being written to file, so the existence of cached content can be checked efficiently.
%
-% A buffer consists of a sequence of macros of the form |\|\meta{buffername}|line|\meta{n}, where each line of data corresponds to a macro and \meta{n} is an integer greater than or equal to one (one-based indexing). The length of the buffer is stored in the counter \meta{buffername}|length|. Buffers are limited to containing comma-separated key-value data, without any opening or closing dict delimiters |{}|.
+% A buffer consists of a sequence of macros of the form |\|\meta{buffername}|line|\meta{n}, where each line of data corresponds to a macro and \meta{n} is an integer greater than or equal to one (one-based indexing). The length of the buffer is stored in the macro |\|\meta{buffername}|length|. Buffers are limited to containing comma-separated key-value data, without any opening or closing dict delimiters |{}|.
%
% All buffer commands that set the buffer or modify the buffer operate globally (|\global|, |\gdef|, etc.).
%
@@ -492,10 +492,10 @@
% \DescMacro{\pydatasetbuffername\marg{buffername}}
% Initialize a new buffer if \meta{buffername} has not been used previously, and configure all buffer operations to use \meta{buffername}.
%
-% \meta{buffername} is used as a base name for creating the buffer line macros of the form |\|\meta{buffername}|line|\meta{n} and the buffer length counter \meta{buffername}|length|.
+% \meta{buffername} is used as a base name for creating the buffer line macros of the form |\|\meta{buffername}|line|\meta{n} and the buffer length macro |\|\meta{buffername}|length|.
%
% \DescMacro{\pydataclearbuffername\marg{buffername}}
-% Delete the specified buffer. |\let| all line macros |\|\meta{buffername}|line|\meta{n} to an undefined macro, and set the length counter \meta{buffername}|length| to zero.
+% Delete the specified buffer. |\let| all line macros |\|\meta{buffername}|line|\meta{n} to an undefined macro, and set the length macro |\|\meta{buffername}|length| to zero.
%
%
% \subsubsection{Special buffer operations}
@@ -814,7 +814,7 @@
%
% Key-value data can be written directly to file once a dict is opened. It is also possible to accumulate key-value data in a ``buffer.'' This is convenient when the data serves as input to an external program that generates cached content. Buffered data can be hashed in memory without being written to file, so the existence of cached content can be checked efficiently.
%
-% The buffer consists of a sequence of macros of the form |\<buffer_name>line<n>|, where each line of data corresponds to a macro and |<n>| is an integer greater than or equal to one. The length of the buffer is stored in the counter |<buffer_name>length|. The buffer includes comma-separated key-value data, without any opening or closing dict delimiters |{}|.
+% The buffer consists of a sequence of macros of the form |\<buffer_name>line<n>|, where each line of data corresponds to a macro and |<n>| is an integer greater than or equal to one. The length of the buffer is stored in the macro |\<buffer_name>length|. The buffer includes comma-separated key-value data, without any opening or closing dict delimiters |{}|.
%
% \begin{macro}{pydata@bufferindex}
% Counter for looping through buffers.
@@ -824,8 +824,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\pydatasetbuffername, \pydata@buffername, \pydata@bufferlinename, \pydata@bufferlengthname}
-% Set the buffer base name and create a corresponding length counter if it does not exist.
+% \begin{macro}{\pydatasetbuffername, \pydata@buffername, \pydata@bufferlinename, \pydata@bufferlengthname, \pydata@bufferlengthmacro}
+% Set the buffer base name and create a corresponding length macro if it does not exist.
% \begin{macrocode}
\def\pydatasetbuffername#1{%
\ifbool{pydata@bufferhaskey}%
@@ -834,10 +834,12 @@
\gdef\pydata@buffername{#1}%
\gdef\pydata@bufferlinename{#1line}%
\gdef\pydata@bufferlengthname{#1length}%
- \ifcsname c@\pydata@bufferlengthname\endcsname
+ \ifcsname\pydata@bufferlengthname\endcsname
\else
- \expandafter\newcounter\expandafter{\pydata@bufferlengthname}%
- \fi}
+ \expandafter\gdef\csname\pydata@bufferlengthname\endcsname{0}%
+ \fi
+ \expandafter\gdef\expandafter\pydata@bufferlengthmacro\expandafter{%
+ \csname\pydata@bufferlengthname\endcsname}}
\pydatasetbuffername{pydata@defaultbuffer}
% \end{macrocode}
% \end{macro}
@@ -846,7 +848,7 @@
% Write existing buffer macros to file handle.
% \begin{macrocode}
\def\pydatawritebuffer{%
- \ifnum\expandafter\value\expandafter{\pydata@bufferlengthname}<1\relax
+ \ifnum\pydata@bufferlengthmacro<1\relax
\pydata@error{Cannot write empty buffer}%
\fi
\pydata@checkfilehandle
@@ -856,8 +858,7 @@
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot write buffer when a buffered key is waiting for a value}}{}%
\setcounter{pydata@bufferindex}{1}%
- \loop\unless\ifnum\value{pydata@bufferindex}>%
- \expandafter\value\expandafter{\pydata@bufferlengthname}\relax
+ \loop\unless\ifnum\value{pydata@bufferindex}>\pydata@bufferlengthmacro\relax
\immediate\write\pydata@filehandle{%
\csname\pydata@bufferlinename\arabic{pydata@bufferindex}\endcsname}%
\stepcounter{pydata@bufferindex}%
@@ -872,17 +873,17 @@
% \begin{macrocode}
\def\pydataclearbuffername#1{%
\def\pydata@clearbuffername{#1}%
- \ifcsname c@#1length\endcsname
+ \ifcsname#1length\endcsname
\else
\pydata@error{Buffer #1 does not exist}%
\fi
\setcounter{pydata@bufferindex}{1}%
- \loop\unless\ifnum\value{pydata@bufferindex}>\value{#1length}\relax
+ \loop\unless\ifnum\value{pydata@bufferindex}>\csname#1length\endcsname\relax
\expandafter\global\expandafter\let
\csname#1line\arabic{pydata@bufferindex}\endcsname\pydata@undefined
\stepcounter{pydata@bufferindex}%
\repeat
- \setcounter{#1length}{0}%
+ \expandafter\gdef\csname#1length\endcsname{0}%
\setcounter{pydata@bufferindex}{0}%
\ifx\pydata@clearbuffername\pydata@buffername
\boolfalse{pydata@bufferhaskey}%
@@ -896,7 +897,7 @@
% \begin{macrocode}
\def\pydatabuffermdfivesum{%
\pdf@mdfivesum{%
- \ifnum\expandafter\value\expandafter{\pydata@bufferlengthname}<1
+ \ifnum\pydata@bufferlengthmacro<1
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
@@ -904,12 +905,12 @@
{}{\pydatabuffermdfivesum@i{1}}}}
\def\pydatabuffermdfivesum@i#1{%
\csname\pydata@bufferlinename#1\endcsname^^J%
- \ifnum\expandafter\value\expandafter{\pydata@bufferlengthname}=#1
+ \ifnum\pydata@bufferlengthmacro=#1
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
- {\expandafter\pydatabuffermdfivesum@i\expandafter{\the\numexpr#1+1 }}}
+ {\expandafter\pydatabuffermdfivesum@i\expandafter{\the\numexpr#1+1\relax}}}
% \end{macrocode}
% \end{macro}
%
@@ -1164,10 +1165,9 @@
\gdef\pydatabufferkey@i#1{%
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot buffer a key when waiting for a value}}{}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@quotestr{#1}:%
}%
\booltrue{pydata@bufferhaskey}}
@@ -1193,10 +1193,9 @@
\gdef\pydatabuffervalue@i#1{%
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@quotestr{#1},%
}%
\boolfalse{pydata@bufferhaskey}}
@@ -1234,10 +1233,9 @@
\gdef\pydatabufferkeyvalue@ii#1#2{%
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot buffer a key when waiting for a value}}{}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@quotestr{#1}: \pydata@quotestr{#2},%
}}
\gdef\pydatabufferkeyedefvalue{%
@@ -1276,28 +1274,25 @@
\gdef\pydatabuffermlvaluestart{%
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@mlstropen
}}
\gdef\pydatabuffermlvalueline#1{%
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@escstrtext{#1}%
}}
\gdef\pydatabuffermlvalueend{%
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
- \expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\xdef\csname
- \pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
- \endcsname{%
+ \expandafter\xdef\pydata@bufferlengthmacro{%
+ \the\numexpr\pydata@bufferlengthmacro+1\relax}%
+ \expandafter\xdef\csname\pydata@bufferlinename\pydata@bufferlengthmacro\endcsname{%
\pydata@mlstrclose,%
}%
\boolfalse{pydata@bufferhaskey}}
diff --git a/macros/latex/contrib/latex2pydata/latex2pydata.pdf b/macros/latex/contrib/latex2pydata/latex2pydata.pdf
index 815d40d7be..21ad974ff9 100644
--- a/macros/latex/contrib/latex2pydata/latex2pydata.pdf
+++ b/macros/latex/contrib/latex2pydata/latex2pydata.pdf
Binary files differ
diff --git a/macros/latex/contrib/letterswitharrows/README.txt b/macros/latex/contrib/letterswitharrows/README.txt
index 1a4d4d98fc..5a6a95a81c 100644
--- a/macros/latex/contrib/letterswitharrows/README.txt
+++ b/macros/latex/contrib/letterswitharrows/README.txt
@@ -1,5 +1,5 @@
The letterswitharrows package
-Copyright 2019-2021 J. M. Teegen
+Copyright 2019-2024 J. M. Teegen
The letterswitharrows package provides LaTeX math-mode commands for setting left and right arrows over mathematical symbols, so that the arrows dynamically scale with the symbols.
While it is possible to set arrows over longer strings of symbols, the focus lies on single characters.
diff --git a/macros/latex/contrib/letterswitharrows/letterswitharrows.dtx b/macros/latex/contrib/letterswitharrows/letterswitharrows.dtx
index 1b2820bd82..15ff5152c6 100644
--- a/macros/latex/contrib/letterswitharrows/letterswitharrows.dtx
+++ b/macros/latex/contrib/letterswitharrows/letterswitharrows.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: letterswitharrows.dtx
-%% Copyright 2019-2020 J. Maximilian Teegen
+%% Copyright 2019-2024 J. Maximilian Teegen
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -54,14 +54,14 @@
% \title{The \pkg{letterswitharrows} package}
% \author{Max Teegen\\ \href{mailto:tex@jmteegen.eu}{tex@jmteegen.eu}}
-% \date{Released 2021-07-19}
+% \date{Released 2024-10-31}
% \maketitle
% \begin{documentation}
% This package provides math-mode commands for setting left and right arrows over mathematical symbols, so that the arrows dynamically scale with the symbols.
% Here is a sample: {\large\[
-% \vs \le \tv \in \vec{U_{\mathrlap\vr}} \qquad \left\vert \vec{AB} \right\vert = \left\vert \cev{AB} \right\vert \qquad A \mathrel{\arrowoverset*[-2mu]{\between}} B
+% \vs \le \tv \in \vec{U_{\mathrlap\vrv}} \qquad \left\vert \vec{AB} \right\vert = \left\vert \cev{AB} \right\vert \qquad A \mathrel{\arrowoverset*[-2mu]{\between}} B
% \]}
% \iffalse Somehow embellishments don't work in the documentation!? \fi
% While it is possible to set arrows over longer strings of symbols, the focus lies on single characters.
@@ -81,40 +81,40 @@
% By default, the \verb|abc|, \verb|ABC| and \verb|cAcBcC| presets are loaded.
% \DescribeOption{abc}
-% Passing \verb|abc| to the \verb|presets| option allows you to use the \tn{v\meta{char}} and \tn{\meta{char}v} commands for all the lower-case letters \verb|a| through \verb|z| except for \verb|v|.
-% \begin{function}{\v<char>,\<char>v,\vleft,\vright}
+% Passing \verb|abc| to the \verb|presets| option allows you to use the \tn{v\meta{char}}, \tn{\meta{char}v}, and \tn{v\meta{char}v} commands for all the lower-case letters \verb|a| through \verb|z| except for \verb|v|.
+% \begin{function}{\v<char>,\<char>v,\vleft,\vright,\v<char>v}
% For the letter \verb|v| the commands \tn{vleft} and \tn{vright} are provided.
-% \[ \va, \vb, \vc, \dv, \mv, F_\tv \]
+% \[ \va, \vb, \vc, \dv, \vmv, F_\tv \]
% \begin{verbatim}
-% \[ \va, \vb, \vc, \dv, \mv, F_\tv \]
+% \[ \va, \vb, \vc, \dv, \vmv, F_\tv \]
% \end{verbatim}
% \end{function}
% \DescribeOption{ABC}
-% Passing \verb|ABC| to the \verb|presets| option allows you to use the \tn{v\meta{CHAR}} and \tn{\meta{CHAR}v} commands for all the upper-case letters \verb|A| through \verb|Z|.
+% Passing \verb|ABC| to the \verb|presets| option allows you to use the \tn{v\meta{CHAR}}, \tn{\meta{CHAR}v}, and \tn{v\meta{CHAR}v} commands for all the upper-case letters \verb|A| through \verb|Z|.
% \begin{function}{\v<CHAR>,\<CHAR>v}
-% \[ \vA, \vB, \vC, \Dv, \Ev, F_\Gv \]
+% \[ \vA, \vB, \vC, \Dv, \vEv, F_\Gv \]
% \begin{verbatim}
-% \[ \vA, \vB, \vC, \Dv, \Ev, F_\Gv \]
+% \[ \vA, \vB, \vC, \Dv, \vEv, F_\Gv \]
% \end{verbatim}
% \end{function}
% \DescribeOption{cAcBcC}
-% Passing \verb|cAcBcC| to the \verb|presets| option allows you to use the \tn{vc\meta{CHAR}} and \tn{c\meta{CHAR}v} commands for all the upper-case letters \verb|A| through \verb|Z| to set arrows over \tn{mathcal}-letters.
+% Passing \verb|cAcBcC| to the \verb|presets| option allows you to use the \tn{vc\meta{CHAR}}, \tn{c\meta{CHAR}v}, and \tn{vc\meta{CHAR}v} commands for all the upper-case letters \verb|A| through \verb|Z| to set arrows over \tn{mathcal}-letters.
% \begin{function}{\vc<CHAR>,\c<CHAR>v}
-% \[ \vcA, \vcB, \vcC, \cDv, \cEv, F_\cGv \]
+% \[ \vcA, \vcB, \vcC, \cDv, \vcEv, F_\cGv \]
% \begin{verbatim}
-% \[ \vcA, \vcB, \vcC, \cDv, \cEv, F_\cGv \]
+% \[ \vcA, \vcB, \vcC, \cDv, \vcEv, F_\cGv \]
% \end{verbatim}
% \end{function}
% \DescribeOption{vec-cev}
-% Passing \verb|vec-cev| to the \verb|presets| option (re)defines the \tn{vec} and \tn{cev} commands.
+% Passing \verb|vec-cev| to the \verb|presets| option (re)defines the \tn{vec}, \tn{cev}, and \tn{vecev} commands.
% \begin{function}{\vec,\cev}
% Unlike the other commands these do not automatically consume subsequent subscripts or \verb|'| tokens.
-% \[ \vec{\mathbf{x}} := \cev{AB} \qquad \langle \vw, \vright \rangle = 42 \]
+% \[ \vec{\mathbf{x}} := \cev{AB}\]
% \begin{verbatim}
-% \[ \vec{\mathbf{x}} := \cev{AB} \qquad \langle \vw, \vright \rangle = 42 \]
+% \[ \vec{\mathbf{x}} := \cev{AB}\]
% \end{verbatim}
% \end{function}
@@ -134,6 +134,7 @@
% \subsection{Other package options}
% \DescribeOption{pgf}
% If you specify the \verb|pgf| option, every arrow is drawn as a \verb|pgfpicture|. This requires the \pkg{pgf} package.
+% Double arrows are not implemented in pgf mode.
% \begin{texnote}
% You can set up custom arrow drawing code by redefining \cs{__jmt_lwa_arrow_draw:nnn}.
% The command is expected to draw an arrow with its head at the current position. Its length should be \verb|#1| and it should be drawn at a font size of \verb|#2|pt.
@@ -158,7 +159,7 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\ProvidesExplPackage {letterswitharrows} {2021/07/19} {} {Draw arrows over math letters.}
+\ProvidesExplPackage {letterswitharrows} {2024/10/31} {} {Draw arrows over math letters.}
\RequirePackage{xparse,l3keys2e,mathtools}
% TODO: I just use mathtools for mathrlap; replace.
@@ -172,7 +173,8 @@
% \end{macrocode}
% The drawing code.
% \changes{2021/07/10}{2021/07/19}{Implement adjustable linewidth.}
-% \begin{macro}{\__@@_arrow_draw_special:nnn,\__@@_arrow_draw_pgf:nnn,\__@@_arrow_left:nn,\__@@_arrow_right:nn}
+% \changes{2024/10/31}{2023/03/11}{Add double arrows.}
+% \begin{macro}{\__@@_arrow_draw_special:nnn,\__@@_arrow_draw_double:nn,\__@@_arrow_draw_pgf:nnn,\__@@_arrow_left:nn,\__@@_arrow_right:nn,\__@@_arrow_double:nn}
% \begin{macrocode}
\cs_new:Nn \__@@_arrow_draw_special:nnn % length, font size, sign
{
@@ -218,6 +220,7 @@
}
}
+
% TODO
% \tl_new:N \g_@@_pgf_arrow_style_tl
% \tl_set:Nn \g_@@_pgf_arrow_style_tl
@@ -238,17 +241,51 @@
\cs_new_eq:NN \__@@_arrow_draw:nnn \use_none:nnn
+
+\cs_new:Nn \__@@_arrow_draw_double:nn
+{
+ \tex_special:D {pdf:~
+ q~
+ 1~J~1~j~
+ 1~0~0~\dim_to_decimal:n{#2pt/10}~0~0~cm~
+ \fp_use:c{g__@@_line_width}~w~
+ q~
+ \dim_to_decimal:n{#2pt/10}~0~0~1~0~0~cm~
+ 1~0~0~1~-1~0~cm~
+ 0~1~m~
+ .25~0~1~0~1~0~c~
+ 1~0~.25~0~0~-1~c~
+ S~
+ Q~
+ 0~0~m~
+ -1~0~0~1~0~0~cm~
+ \dim_to_decimal:n{#1}~0~l~S~
+ \dim_to_decimal:n{#2pt/10}~0~0~1~\dim_to_decimal:n{#1}~0~cm~
+ 1~0~0~1~-1~0~cm~
+ 0~1~m~
+ .25~0~1~0~1~0~c~
+ 1~0~.25~0~0~-1~c~
+ S~
+ Q
+ }
+}
+
+
\cs_new:Nn \__@@_arrow_right:nn {
\skip_horizontal:n {#1}
- % \rule[\dimexpr -#2pt/6\relax]{#1}{\dimexpr #2pt/3\relax}
\__@@_arrow_draw:nnn {#1} {#2} {}
}
\cs_new:Nn \__@@_arrow_left:nn {
\__@@_arrow_draw:nnn {#1} {#2} {-}
\skip_horizontal:n {#1}
- % \rule[\dimexpr -#2pt/6\relax]{#1}{\dimexpr #2pt/3\relax}
}
+
+\cs_new:Nn \__@@_arrow_double:nn {
+ \skip_horizontal:n {#1}
+ \__@@_arrow_draw_double:nn {#1} {#2}
+}
+
% \end{macrocode}
% \end{macro}
@@ -305,33 +342,33 @@
\__@@_arrow_overset_aux:w
}
-\cs_new:Nn \__jmt_lwa_bool_convert:n {
+\cs_new:Nn \__@@_bool_convert:n {
\IfBooleanTF {#1} {\c_true_bool} {\c_false_bool}
}
% This exp_args is necessary because _ generates the wrong token in expl3 syntax
\exp_args:NNx \NewDocumentCommand \__@@_arrow_overset_aux:w
- {s O{0mu} O{1} O{0ex} m t' e{\char_generate:nn {95}{8}} t'} {
+ {s s O{0mu} O{1} O{0ex} m t' e{\char_generate:nn {95}{8}} t'} {
\__@@_arrow_overset:nnnnn
{
- #5
- \exp_args:Nf\bool_if:nT{\__jmt_lwa_bool_convert:n{#6} || \__jmt_lwa_bool_convert:n{#8}} {
+ #6
+ \exp_args:Nf\bool_if:nT{\__@@_bool_convert:n{#7} || \__@@_bool_convert:n{#9}} {
\c_math_superscript_token {
- \scriptscriptstyle\IfBooleanT{#6}{\prime}\IfBooleanT{#8}{\prime}
+ \scriptscriptstyle\IfBooleanT{#7}{\prime}\IfBooleanT{#9}{\prime}
}
} % TODO: Better positioning etc?
- \exp_args:Nf\IfValueT{\use:n#7} {
+ \exp_args:Nf\IfValueT{\use:n#8} {
\c_math_subscript_token {
- \mathrlap{#7}
+ \mathrlap{#8}
}
}
}
- {\IfBooleanTF{#1}{left}{right}}
- {#2} {#3} {#4}
+ {\IfBooleanTF{#1}{\IfBooleanTF{#2}{double}{left}}{right}}
+ {#3} {#4} {#5}
- \exp_args:Nf\IfValueTF{\use:n#7}{
+ \exp_args:Nf\IfValueTF{\use:n#8}{
% TODO: Better way to do this? This is all kinds of wrong.
- \hphantom{\c_math_subscript_token{#7}}
+ \hphantom{\c_math_subscript_token{#8}}
} {}
\c_group_end_token
}
@@ -389,7 +426,7 @@
% \end{macro}
% \end{variable}
-% \begin{macro}{\v<char>,\<char>v,\vleft,\vright}
+% \begin{macro}{\v<char>,\<char>v,\vleft,\vright,\v<char>v}
% \begin{macrocode}
\prop_if_in:NnTF \g_@@_selected_presets_prop {abc} {
\int_step_inline:nnn {1} {26} {
@@ -400,6 +437,9 @@
\cs_new:cpx {vleft} {
\exp_not:N\@@_arrow_overset:w*{v}
}
+ \cs_new:cpx {vvv} {
+ \exp_not:N\@@_arrow_overset:w**{v}
+ }
} {
\cs_new:cpx {v\int_to_alph:n{#1}} {
\exp_not:N\@@_arrow_overset:w{\int_to_alph:n{#1}}
@@ -407,12 +447,15 @@
\cs_new:cpx {\int_to_alph:n{#1}v} {
\exp_not:N\@@_arrow_overset:w*{\int_to_alph:n{#1}}
}
+ \cs_new:cpx {v\int_to_alph:n{#1}v} {
+ \exp_not:N\@@_arrow_overset:w**{\int_to_alph:n{#1}}
+ }
}
}
} {}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\v<CHAR>,\<CHAR>v}
+% \begin{macro}{\v<CHAR>,\<CHAR>v,\v<CHAR>v}
% \begin{macrocode}
\prop_if_in:NnTF \g_@@_selected_presets_prop {ABC} {
\int_step_inline:nnn {1} {26} {
@@ -422,11 +465,14 @@
\cs_new:cpx {\int_to_Alph:n{#1}v} {
\exp_not:N\@@_arrow_overset:w*{\int_to_Alph:n{#1}}
}
+ \cs_new:cpx {v\int_to_Alph:n{#1}v} {
+ \exp_not:N\@@_arrow_overset:w**{\int_to_Alph:n{#1}}
+ }
}
} {}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\vc<CHAR>,\c<CHAR>v}
+% \begin{macro}{\vc<CHAR>,\c<CHAR>v,\vc<CHAR>v}
% \begin{macrocode}
\prop_if_in:NnTF \g_@@_selected_presets_prop {cAcBcC} {
\int_step_inline:nnn {1} {26} {
@@ -436,11 +482,14 @@
\cs_new:cpx {c\int_to_Alph:n{#1}v} {
\exp_not:N\@@_arrow_overset:w*{\exp_not:N\mathcal{\int_to_Alph:n{#1}}}
}
+ \cs_new:cpx {vc\int_to_Alph:n{#1}v} {
+ \exp_not:N\@@_arrow_overset:w**{\exp_not:N\mathcal{\int_to_Alph:n{#1}}}
+ }
}
} {}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\vec,\cev}
+% \begin{macro}{\vec,\cev,\vecev}
% \begin{macrocode}
\prop_if_in:NnTF \g_@@_selected_presets_prop {vec-cev} {
\RenewDocumentCommand \vec {m} {
@@ -449,6 +498,9 @@
\DeclareDocumentCommand \cev {m} {
\@@_arrow_overset:w* {#1} \scan_stop:
}
+ \DeclareDocumentCommand \vecev {m} {
+ \@@_arrow_overset:w** {#1} \scan_stop:
+ }
} {}
% \end{macrocode}
% \end{macro}
@@ -464,27 +516,36 @@
\cs_set:cpx {\int_to_Alph:n{#1}v} {
\exp_not:N\@@_arrow_overset:w*[2.5mu][7/10]{\int_to_Alph:n{#1}}
}
+ \cs_set:cpx {v\int_to_Alph:n{#1}v} {
+ \exp_not:N\@@_arrow_overset:w**[1.5mu][9/10]{\int_to_Alph:n{#1}}
+ }
}
\cs_set:cpn {vS} {
\@@_arrow_overset:w[3mu][7/10]{S}
}
+ \cs_set:cpn {vSv} {
+ \@@_arrow_overset:w**[2mu][9/10]{S}
+ }
\cs_set:cpn {vT} {
- \__jmt_lwa_arrow_overset:w[2mu][8/10]{T}
+ \@@_arrow_overset:w[2mu][8/10]{T}
}
\cs_set:cpn {Tv} {
- \__jmt_lwa_arrow_overset:w*[1mu][8/10]{T}
+ \@@_arrow_overset:w*[1mu][8/10]{T}
}
\cs_set:cpn {vU} {
- \__jmt_lwa_arrow_overset:w[2mu][7/10]{U}
+ \@@_arrow_overset:w[2mu][7/10]{U}
}
\cs_set:cpn {Uv} {
- \__jmt_lwa_arrow_overset:w*[2mu][7/10]{U}
+ \@@_arrow_overset:w*[2mu][7/10]{U}
+ }
+ \cs_set:cpn {vUv} {
+ \@@_arrow_overset:w**[1.5mu][8/10]{U}
}
\cs_set:cpn {vV} {
- \__jmt_lwa_arrow_overset:w[2.5mu][7/10]{V}
+ \@@_arrow_overset:w[2.5mu][7/10]{V}
}
\cs_set:cpn {Vv} {
- \__jmt_lwa_arrow_overset:w*[2mu][7/10]{V}
+ \@@_arrow_overset:w*[2mu][7/10]{V}
}
\cs_set:cpn {vX} {
\@@_arrow_overset:w[3mu][7/10]{X}
@@ -493,7 +554,7 @@
\@@_arrow_overset:w[2mu][8/10]{Y}
}
\cs_set:cpn {Yv} {
- \__jmt_lwa_arrow_overset:w*[2mu][7/10]{Y}
+ \@@_arrow_overset:w*[2mu][7/10]{Y}
}
} {}
\prop_if_in:NnTF \g_@@_selected_presets_prop {cAcBcC} {
@@ -511,7 +572,10 @@
\@@_arrow_overset:w{\ell}
}
\cs_new:cpn {ellv} {
- \@@_arrow_overset:w{\ell}
+ \@@_arrow_overset:w*{\ell}
+ }
+ \cs_new:cpn {vellv} {
+ \@@_arrow_overset:w**{\ell}
}
} {}
} {}
diff --git a/macros/latex/contrib/letterswitharrows/letterswitharrows.pdf b/macros/latex/contrib/letterswitharrows/letterswitharrows.pdf
index ae959a886f..a9439e5989 100644
--- a/macros/latex/contrib/letterswitharrows/letterswitharrows.pdf
+++ b/macros/latex/contrib/letterswitharrows/letterswitharrows.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings-devel.pdf b/macros/latex/contrib/listings/listings-devel.pdf
index da1506f1df..a04038050f 100644
--- a/macros/latex/contrib/listings/listings-devel.pdf
+++ b/macros/latex/contrib/listings/listings-devel.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings.dtx b/macros/latex/contrib/listings/listings.dtx
index 525ba1a4ae..bd1e84342b 100644
--- a/macros/latex/contrib/listings/listings.dtx
+++ b/macros/latex/contrib/listings/listings.dtx
@@ -46,6 +46,7 @@
\usepackage{mdframed} % frames for external files
\usepackage{moreverb} % writing external files
\usepackage{xcolor} % because of coloring the background
+\usepackage{tablefootnote} % because of \tablefootnote
\makeindex
@@ -135,7 +136,7 @@
% Hoffmann became the maintainer of the \packagename{listings}
% package in 2013; see the Preface for details.}~ %
% \textless\lstemail\textgreater}
-% \date{2024/05/25\enspace\enspace Version 1.10b\ \box\abstractbox}
+% \date{2024/09/23\enspace\enspace Version 1.10c\ \box\abstractbox}
% \def\lstemail{\href{mailto:j.hoffmann@fh-aachen.de}{\texttt{j.hoffmann(at)fh-aachen.de}}}
% \ifhyper
% \hypersetup{pdftitle=The Listings Package,
@@ -2723,7 +2724,7 @@
% \texttt{last} continues the numbering of the most recent listing and
% \meta{number} sets it to the (logical) number.
%
-% \item[1.0] \rkeyname{name}|=|\meta{name}
+% \item[1.0,{{}}] \rkeyname{name}|=|\meta{name}
%
% names a listing. Displayed environment-listings with the same name
% share a line counter if |firstnumber=auto| is in effect.
@@ -4825,22 +4826,29 @@
% Usually you will use |#1| as \meta{value}.
%
% \item[1.0] \cs{lstKV@SwitchCases}\marg{value}\\
-% |{|\meta{string 1}|&|\meta{execute 1}|\\|\\
-% | |\meta{string 2}|&|\meta{execute 2}|\\|\\
+% |{|\meta{string 1}|:|\meta{execute 1}|\\|\\
+% | |\meta{string 2}|:|\meta{execute 2}|\\|\\
% \hbox to 3em{\hfill\vdots}\\
-% | |\meta{string $n$}|&|\meta{execute $n$}|}|\marg{else}
+% | |\meta{string $n$}|;|\meta{execute $n$}|}|\marg{else}
%
% Either execute \meta{else} or the \meta{value} matching part.
%
-% This implementation of C. Heinz has a problem\label{gAmpersand}, if
-% the listing is part of a tabular environment as found out by
-% \lsthelper{Nasser~M.~Abbasi}{2016/05/25}{possible bug in listings
-% package}. \lsthelper{David~Carlisle}{2016/05/25}{%
+% This implementation is based on a hint of \lsthelper{David~Carlisle}{2016/05/25}{%
% http://tex.stackexchange.com/questions/311383/^^A
% adding-frame-none-to-lstlisting-options-in-lstdefinestyle^^A
-% -gives-error-with-tabu}
-% gave a hint how to avoid this problem and so the separator |&| is
-% replaced by |:|.
+% -gives-error-with-tabu} to avoid the problem of the original
+% implementation of C. Heinz\label{gAmpersand}:
+% \begin{quote}
+% \cs{lstKV@SwitchCases}\marg{value}\\
+% |{|\meta{string 1}|&|\meta{execute 1}|\\|\\
+% | |\meta{string 2}|&|\meta{execute 2}|\\|\\
+% \hbox to 3em{\hfill\vdots}\\
+% | |\meta{string $n$}|&|\meta{execute $n$}|}|\marg{else}
+% \end{quote}
+% The problem arose when the listing was part of a tabular
+% environment, as found out by
+% \lsthelper{Nasser~M.~Abbasi}{2016/05/25}{possible bug in listings
+% package}.
%
% \item[0.20] |\lstKV@TwoArg|\marg{value}\marg{subdefinition}
% \item[0.20] |\lstKV@ThreeArg|\marg{value}\marg{subdefinition}
@@ -4967,8 +4975,13 @@
% \lsttabspace |\lst@KCSmode| &
% \ldots~a keyword comment which can be terminated by a semicolon only.
% \\
-% \aspectname{html}\lsttabspace |\lst@insidemode| &
+% \aspectname{html}\lsttabspace |\lst@htmlmode| &
% Active if we are between \texttt{<} and \texttt{>}.
+%
+% Previous documentations used the mode name |\lst@insidemode| at this
+% place, but the name |\lst@insidemode| isn't referenced in any documentation
+% and so it is now (from v1.10c on) assumed as an overseen
+% documentation error.
% \\
% \aspectname{make}\lsttabspace |\lst@makemode| &
% Used to indicate a keyword.
@@ -5986,7 +5999,7 @@
% \part{Implementation}
%
%
-% \CheckSum{12435}
+% \CheckSum{12443}
%^^A
%^^A Don't index TeX-primitives.
%^^A
@@ -6130,8 +6143,8 @@
% All files will have same date and version.
% \begin{macrocode}
%<*kernel|misc|doc>
-\def\filedate{2024/05/25}
-\def\fileversion{1.10b}
+\def\filedate{2024/09/23}
+\def\fileversion{1.10c}
%</kernel|misc|doc>
% \end{macrocode}
% What we need and who we are.
@@ -8918,9 +8931,16 @@
% \begin{macrocode}
\def\lst@UM#1{\csname\@lst @um#1@\endcsname}
% \end{macrocode}
-% And all remaining standard characters.
+% And all remaining standard characters. \lsthelper{Peter
+% Cock}{2024/09/18}{Upright double-quotes in LaTeX listings}
+% pointed to the discussion in
+% \url{https://tex.stackexchange.com/questions/166790/how-can-i-get-straight-double-quotes-in-listings}
+% about the lack of support for upright double quotes which are now
+% implemented by the lines below.
% \begin{macrocode}
\lst@CCPutMacro
+ \lst@ProcessOther {"22}{\lst@ifupquote \textquotedbl
+ \else \char34\relax \fi}
\lst@ProcessOther {"23}\#
\lst@ProcessLetter{"24}\textdollar
\lst@ProcessOther {"25}\%
@@ -12654,7 +12674,9 @@
% \subsection{Line numbers}
%
% \begin{aspect}{labels}
-% \lsthelper{Rolf~Niepraschk}{1997/04/24}{line numbers} asked for line numbers.
+% \lsthelper{Rolf~Niepraschk}{1997/04/24}{line numbers} asked for line
+% number, the relevant keys and `\textit{data}' commands are described in
+% section \ref{rLineNumbers}, here is their implementation.
% \begin{macrocode}
%<*misc>
\lst@BeginAspect{labels}
@@ -12673,26 +12695,31 @@
right:\def\lst@PlaceNumber{\rlap{\normalfont
\kern\linewidth \kern\lst@numbersep
\lst@numberstyle{\thelstnumber}}}%
- }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
+ }{\PackageError{Listings}{value `#1' for keyword `numbers' not supported}\@ehc}}
% \end{macrocode}
% \end{lstkey}
%
+% \begin{lstkey}{stepnumber}
+% \begin{lstkey}{numberfirstline}
% \begin{lstkey}{numberstyle}
% \begin{lstkey}{numbersep}
-% \begin{lstkey}{stepnumber}
% \begin{lstkey}{numberblanklines}
-% \begin{lstkey}{numberfirstline}
% Definition of the keys.
% \begin{macrocode}
+\lst@Key{stepnumber}{1}{\def\lst@stepnumber{#1\relax}}
+\lst@Key{numberfirstline}{f}[t]{\lstKV@SetIf{#1}\lst@ifnumberfirstline}
\lst@Key{numberstyle}{}{\def\lst@numberstyle{#1}}
\lst@Key{numbersep}{10pt}{\def\lst@numbersep{#1}}
-\lst@Key{stepnumber}{1}{\def\lst@stepnumber{#1\relax}}
+\lst@Key{numberblanklines}{true}[t]
+ {\lstKV@SetIf{#1}\lst@ifnumberblanklines}
+% \end{macrocode}
+% If we use the `empty' style, the listing must start at line 1, so:
+% \begin{macrocode}
\lst@AddToHook{EmptyStyle}{\let\lst@stepnumber\@ne}
% \end{macrocode}
+% Later on we use this to prevent numbering of the first line for a second
+% time.
% \begin{macrocode}
-\lst@Key{numberblanklines}{true}[t]
- {\lstKV@SetIf{#1}\lst@ifnumberblanklines}
-\lst@Key{numberfirstline}{f}[t]{\lstKV@SetIf{#1}\lst@ifnumberfirstline}
\gdef\lst@numberfirstlinefalse{\let\lst@ifnumberfirstline\iffalse}
% \end{macrocode}
% \end{lstkey}
@@ -12721,6 +12748,9 @@
% \end{macrocode}
% \end{lstkey}
%
+% The key |name| is defined in section \ref{sec:list-listings}, the data
+% command |\thelstnumber| below on page \pageref{iTheLstNumber}.
+%
% \begin{macro}{\lst@SetFirstNumber}
% \begin{macro}{\lst@SaveFirstNumber}
% \lsthelper{Boris~Veytsman}{1998/03/25}{continue line numbering: a.c b.c a.c}
@@ -12749,7 +12779,9 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\thelstnumber}
% \begin{macro}{\c@lstnumber}
+% \label{iTheLstNumber}%
% This counter keeps the current label number. We use it as current label to
% make line numbers referenced by |\ref|. This was proposed by
% \lsthelper{Boris~Veytsman}{1998/03/25}{make line numbers referenced via
@@ -12805,6 +12837,7 @@
.\thelstnumber}}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\lst@skipnumbers}
% There are more things to do. We calculate how many lines must skip their
@@ -13879,12 +13912,21 @@
% \end{macrocode}
% Further parsing is done by |lst@GLI@|, the argument is |#1--\@nil| that
% is the first element of the list augmented by a sentinel. This
-% argument is parsed with the template |#1-#2-#3\@nil|. A linerange given
-% as e.\,g. `|12-21|' leads to the argument |12-21--\@nil|, so it is parsed
-% as \#1\(\leftarrow\) |12|, \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+% argument is parsed with the template |#1-#2-#3\@nil|.
+%
% \begin{macrocode}
\def\lst@GLI@#1-#2-#3\@nil{%
% \end{macrocode}
+% A linerange given as e.\,g. `|12-21|' leads to the argument
+% |12-21--\@nil|, so it is parsed as \#1\(\leftarrow\) |12|,
+% \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+%
+% Otherwise it is possible to define a range by arbitrary linerange markers
+% like `|start-end|' which leads to the argument
+% |12-21--\@nil|, so it is parsed as \#1\(\leftarrow\) |12|,
+% \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+
+
% First we test, if the linerange starts with a number (consisting of -, 1,
% 2, 3, \ldots) or an arbitrary linerange marker. If a linerange starts
% erroneously with a `|-|' character, the argument \#1 isn't set and so the
@@ -13897,23 +13939,23 @@
\ifx\@empty#1\@empty
\let\lst@firstline\@ne
\else
- \def\lst@firstline{#1\relax}%
+ \def\lst@firstline{#1\relax}
\fi
% \end{macrocode}
% Now we know the starting number of the linerange. \#3 isn't set with a
% linerange consisting of a single number, in all other cases \#2 defines
% the last line (explicitly or implicitly).
% \begin{macrocode}
- \ifx\@empty#3\@empty%
- \def\lst@lastline{9999999\relax}%
+ \ifx\@empty#3\@empty
+ \def\lst@lastline{9999999\relax}
\ifx\@empty#2\@empty
- \let\lst@lastline\lst@firstline%
+ \let\lst@lastline\lst@firstline
\fi
\else%
\ifx\@empty#2\@empty
\def\lst@lastline{9999999\relax}
\else % doesn't happen(?)
- \def\lst@lastline{#2\relax}%
+ \def\lst@lastline{#2\relax}
\fi
\fi
}%
@@ -13922,7 +13964,7 @@
% 9999999. This prevents (almost) anything from being printed for now.
% \begin{macrocode}
{%
- \def\lst@firstline{9999999\relax}%
+ \def\lst@firstline{9999999\relax}
\let\lst@lastline\lst@firstline
% \end{macrocode}
% We add the prefixes and suffixes to the markers.
@@ -14017,10 +14059,10 @@
\ifnum\@tempcnta=\z@ \else
\lst@nololtrue
\advance\@tempcnta\lst@advancenumber
- \edef\lst@firstnumber{\the\@tempcnta\relax}%
- \fi%
- \fi%
- }%
+ \edef\lst@firstnumber{\the\@tempcnta\relax}
+ \fi
+ \fi
+ }
}
\def\lst@InitLstNumber{%
\global\c@lstnumber\lst@firstnumber
@@ -14366,7 +14408,8 @@
% \begin{macro}{\lst@HRefStepCounter}
% This macro sets the listing number to a negative value since the user
% shouldn't refer to such a listing. If the \packagename{hyperref} package
-% is present, we use `lstlisting' (argument from above) to hyperref to.
+% is present, we use `lstlisting.' (argument from above) concatenated with
+% the current (negative) number to hyperref to.
% The groups have been added to prevent other packages (namely
% \packagename{tabularx}) from reading the locally changed counter
% and writing it back globally. Thanks to \lsthelper{Michael~Niedermair}
@@ -14374,14 +14417,17 @@
% this localization led to another bug, see |\theHlstnumber|.
% \begin{macrocode}
\def\lst@HRefStepCounter#1{%
- \begingroup
- \c@lstlisting\lst@neglisting
- \advance\c@lstlisting\m@ne \xdef\lst@neglisting{\the\c@lstlisting}%
- \ifx\hyper@refstepcounter\@undefined\else
- \hyper@refstepcounter{#1}%
- \fi
- \endgroup}
-\gdef\lst@neglisting{\z@}% init
+ \begingroup
+ \c@lstlisting\lst@neglisting
+ \advance\c@lstlisting\m@ne \xdef\lst@neglisting{\the\c@lstlisting}%
+ \ifx\hyper@refstepcounter\@undefined\else
+ \hyper@refstepcounter{#1}%
+ \fi
+ \endgroup
+}
+\gdef\lst@neglisting{\z@}% init, \z@ can be used both for 0pt and 0,
+ % remember: _neg_ative number, but no
+ % counter!
% \end{macrocode}
% \end{macro}
%
@@ -14776,7 +14822,8 @@
% \end{macro}
%
%
-% \subsection{List of listings}
+% \subsection{List of listings}%
+% \label{sec:list-listings}
%
% \begin{lstkey}{name}
% \begin{macro}{\lstname}
@@ -15781,7 +15828,7 @@
\ifalgorithmicpkg \RequirePackage{algorithmic}\fi
\iflgrind \RequirePackage{lgrind}\fi
\RequirePackage{nameref}
-\RequirePackage{url}
+\RequirePackage{xurl} % allow URL breaks
\renewcommand\ref{\protect\T@ref}
\renewcommand\pageref{\protect\T@pageref}
% \end{macrocode}
@@ -17336,6 +17383,10 @@
% \item[1.10] from 2024/02/15 on
% \item usage of |tocbasic| if loaded to improve compatibility with
% KOMA-Script and also enhance functionality.
+% \item differentiate between Python 2 and Python 3
+% \item add initial support for Scala 3.0
+% \item made |\lstinline{...}| work in tabular cells
+% \item implemented upright double-quotes
% \end{itemize}
% \endgroup
%
diff --git a/macros/latex/contrib/listings/listings.pdf b/macros/latex/contrib/listings/listings.pdf
index b4bfc0d79e..8e2038ce2d 100644
--- a/macros/latex/contrib/listings/listings.pdf
+++ b/macros/latex/contrib/listings/listings.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/lstdrvrs.dtx b/macros/latex/contrib/listings/lstdrvrs.dtx
index 8541b7a0b9..25c197c9d5 100644
--- a/macros/latex/contrib/listings/lstdrvrs.dtx
+++ b/macros/latex/contrib/listings/lstdrvrs.dtx
@@ -33,7 +33,7 @@
% \title{Language, Style and Format drivers\\ for \textsf{Listings}\\
% {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
-% \date{2024/05/25\enspace\enspace Version 1.10b\ \box\abstractbox}
+% \date{2024/09/23\enspace\enspace Version 1.10c\ \box\abstractbox}
%
% \ifhyper
% \hypersetup{pdftitle={Language, Style and Format drivers for the
@@ -138,7 +138,7 @@
% \endgroup
% We mainly define default dialects.
% \begin{macrocode}
-\ProvidesFile{listings.cfg}[2024/05/25 1.10b listings configuration]
+\ProvidesFile{listings.cfg}[2024/09/23 1.10c listings configuration]
\def\lstlanguagefiles
{lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
@@ -187,7 +187,7 @@
%<+lua-prf>\ProvidesFile{listings-lua.prf}
%<+python-prf>\ProvidesFile{listings-python.prf}
%<+rexx-prf>\ProvidesFile{listings-rexx.prf}
-%<-config> [2024/05/25 1.10b listings language file]
+%<-config> [2024/09/23 1.10c listings language file]
% \end{macrocode}
%
%
diff --git a/macros/latex/contrib/listings/lstdrvrs.pdf b/macros/latex/contrib/listings/lstdrvrs.pdf
index 0315d2cad2..51d045113b 100644
--- a/macros/latex/contrib/listings/lstdrvrs.pdf
+++ b/macros/latex/contrib/listings/lstdrvrs.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/README.md b/macros/latex/contrib/litetable/README.md
index 146ccaf19b..f09ce486fb 100644
--- a/macros/latex/contrib/litetable/README.md
+++ b/macros/latex/contrib/litetable/README.md
@@ -1,17 +1,13 @@
-# The `LiteTable` document
+# The `litetable` class
-This template provides a beautiful design of class schedule with colorful course blocks.
+This class provides a beautiful design of timetable with colorful course blocks.
-**Welcome to pull requests
-[here](https://github.com/xiamyphys/LiteTable).**
+**Welcome to pull requests [here](https://github.com/xiamyphys/litetable).**
## License
-This work may be distributed and/or modified under the conditions of the
-[LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-either version 1.3c of this license or (at your option) any later version.
+This work may be distributed and/or modified under the conditions of the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), either version 1.3c of this license or (at your option) any later version.
This work has the LPPL maintenance status `maintained`.
-The Current Maintainer of this work is
-[Mingyu Xia](https://www.ctan.org/author/xia-my). \ No newline at end of file
+The Current Maintainers of this work are [Mingyu Xia](https://www.ctan.org/author/xia-my) and [Lijun Guo](https://ctan.org/author/guo). \ No newline at end of file
diff --git a/macros/latex/contrib/litetable/doc/favicon.png b/macros/latex/contrib/litetable/doc/favicon.png
deleted file mode 100644
index 4e105b2ce0..0000000000
--- a/macros/latex/contrib/litetable/doc/favicon.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-cn.pdf b/macros/latex/contrib/litetable/doc/litetable-cn.pdf
index 6e91dd6280..7fa923a02b 100644
--- a/macros/latex/contrib/litetable/doc/litetable-cn.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-cn.tex b/macros/latex/contrib/litetable/doc/litetable-cn.tex
index cf2cc129ad..a9b0cba7a9 100644
--- a/macros/latex/contrib/litetable/doc/litetable-cn.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-cn.tex
@@ -1,302 +1,143 @@
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * http://www.latex-project.org/lppl.txt *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-\PassOptionsToPackage{quiet}{xeCJK}
-\PassOptionsToPackage{quiet, no-math}{fontspec}
-\documentclass[11pt]{article}
-\usepackage{geometry,pdfpages,caption,indentfirst,setspace,xeCJK}
-\captionsetup[table]{name={\textsc{Table}},labelsep=period}
-\usepackage[level]{datetime}
-\usepackage{authblk,xltxtra,bigfoot,enumitem}
-\usepackage{booktabs,diagbox,ragged2e,tabularx}
-\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
-\usepackage[toc]{multitoc}
-\usepackage[mono=false]{libertine}
-\setstretch{1.15}
-\setCJKmainfont{Chiron Sung HK}
-[BoldFont=Chiron Sung HK Bold,
- ItalicFont=Kaiti SC]
-\usepackage{hyperref,xcolor,tikz}
-\hypersetup{colorlinks,urlcolor=H6,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
-\definecolor{pkgcolor}{Hsb}{103,.8,.5}
-\definecolor{moducolor}{Hsb}{290,.8,.5}
-\definecolor{cmdcolor}{Hsb}{188,.8,.5}
-\definecolor{filecolor}{Hsb}{207,.6,.7}
-\definecolor{H1}{Hsb}{349,.8,.8} % 海棠紅 (Hangzhou MTR L 1 )
-\definecolor{H2}{Hsb}{23, .8,.8} % 丹桂橙 (Hangzhou Metro 2 )
-\definecolor{H3}{Hsb}{48, .8,.8} % 柠檬黄 (Hangzhou Metro 3 )
-\definecolor{H4}{Hsb}{103,.8,.8} % 香樟绿 (Hangzhou Metro 4 )
-\definecolor{H5}{Hsb}{188,.8,.8} % 青藍色 (Hangzhou MTR L 5 )
-\definecolor{H6}{Hsb}{207,.8,.8} % 海洋蓝 (Hangzhou Metro 6 )
-\definecolor{H7}{Hsb}{290,.8,.8} % 浪漫紫 (Hangzhou Metro 7 )
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
-\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
-\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
-\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1”}}
-\def\datechange#1#2{%
- \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}}
- \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}}
-
-\title{\bfseries\pkg{LiteTable} -- 多彩的课程表\textsf{\LaTeX} 模板}
-\author{\href{https://www.hdu.edu.cn}{杭州电子科技大学}, 夏明宇}
-\yyyymmdddate
-\date{\today}
-\affil{\href{mailto:xiamyphys@gmail.com}{\texttt{xiamyphys@gmail.com}}}
-\date{\today\quad Version 2.4c\thanks{%
- \url{https://github.com/xiamyphys/litetable}}}
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\usepackage[fontset = none]{ctex}
+\setCJKmainfont[BoldFont = *-Medium]{LXGW WenKai}
+\setCJKsansfont[BoldFont = *-Medium]{LXGW WenKai}
+\setCJKmonofont[BoldFont = *-Medium]{LXGW WenKai Mono}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries\cls{litetable} 文档类:多彩的课程表
+ \thanks{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ 夏明宇 \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{郭李军}开发了读取 \meta{left} -> \meta{right} 型数据结构模块和低版本 \hologo{TeX} Live 兼容模块.}
+}
+\date{Version 3.1D, \today}
+
\begin{document}
+
\maketitle
-\vspace{-2em}
-\begin{abstract}
-\pkg{LiteTable} 模板提供了一个多彩的课程表设计,本文档为 \pkg{LiteTable} 模板的说明文档.
-\end{abstract}
+\section{介绍}
-\tableofcontents
+\cls{litetable} 文档类提供了一个多彩的课程表设计,基于 \cls{article} 文档类,由 \pkg{expl3} 和 \pkg{tikz} 构建. 兼容发行版 \hologo{TeX} Live 2019 及更高版本,在 \hologo{pdfLaTeX} 和 \hologo{XeLaTeX} 编译器下均可正常运行. 本文档为 \cls{litetable} 文档类的中文用户手册,手册同时有 \href{./litetable-en.pdf}{英文} 和 \href{./litetable-hk.pdf}{粤语} 版本\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
-\clearpage
+\section{载入 \cls{litetable} 并生成课程表框架}
-\section{Introduction}
+同加载其他文档类一样,只需写下
-\subsection{本模板的目的}
-本模板提供了一个多彩的课程表设计. 如果在使用本模板时遇到问题或有更好的建议,或者你想参与本模板或本人其他模板的开发,欢迎通过邮件 \href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com} 联络我.
-
-同样,你也可以加入我的\textsf\LaTeX{} 技術交流群 \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} 与我交流,来获取模板的内测版本.
-
-\subsection{所需宏集}
-本模板基于 \pkg{standalone} 文档类开发. 其需要 \pkg{tikz} 宏集去绘制图形,\pkg{kvoptions} 和 \pkg{etoolbox} 宏集用于提供全局模式,\pkg{expl3}\footnote{请使用 2023/10/10 及以后版本的 \pkg{expl3} 宏集以支持 e-type 变量展开: \verb|\clist_count:e|} 宏集用于支持数组,\pkg{ctex}宏集用于支持中文语言,\pkg{fontawesome5} 宏集提供一系列精美的图标.
-
-\subsection{安装并载入 \pkg{LiteTable} 模板}
-免安装使用方法如下,从 \href{https://github.com/xiamyphys/LiteTable}{GitHub} 或 \href{https://ctan.org/pkg/litetable}{CTAN} 下载最新的 \verb|litetable.cls| 文件并将它保存至你的项目根目录. 这种安装方式是最便捷的,但是当模板更新后,你需要手动替换 \verb|.cls| 文件.
-
-然而我强烈建议您使用终端机去执行以下命令,以将所有宏集更新到最新版本,并安装此模板
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
-
-如果您所在的地区存在网路封锁(如 GFW 干扰),你可以选择合适的镜像网站或其他方法\footnote{请遵守当地的网路条例.}. 欲详细了解,请前往 \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \textsf{\TeX} distribution?}
-
-本模板提供了两个选项:\mode{direction} 和 \mode{font}. 将你要使用的选项模式添加在 \verb|.tex| 文件中命令 \verb|\documentclass[ ]{litetable}| 的方括号中即可.
-
-\subsection{兼容性}
-所使用的测试环境为 macOS + MacTeX 2023 / Overleaf,都可在 \XeLaTeX{} 编译方式下顺利运行, Windows, Linux 和 Unix 平台兼容性未知.
-
-此模板在 macOS 平台开发,使用 ``Heiti SC'' 字体. 如果你未安装此字体,请在命令 \verb|\documentclass{litetable}| 后使用命令 \verb|\setCJKfamilyfont{zhhei}{ }| 将 ``Heiti SC'' 替换为电脑中存在的字体.
-
-\section{\pkg{LiteTable} 的全局选项}
-\begin{verbatim}
- \documentclass[options]{litetable}
-\end{verbatim}
-
-\subsection{\mode{direction} 选项}
-此选项有两个模式,\mode{portrait} 和 \mode{landscape}, 可使课程表纵向或横向显示,默认为纵向.
-
-\subsection{\mode{font} 选项}
-此选项有两个模式,\mode{times} 和 \mode{libertinus},可使字体为 ``Times New Roman'' 或 ``Libertinus'',默认为 ``Times New Roman''\footnote{使用 \mode{libertinus} 模式时请确保已安装该字体.}.
-
-\section{\pkg{LiteTable} 的命令}
-
-\subsection{\cmd{makeframe} 命令}
-\begin{verbatim}
- \makeframe[Sem 6]{Axia's Timetable}
-\end{verbatim}
-
-此命令有两个参数,用于建立空白课程表. 第二个参数用于设置标题,第一个可选参数用于在标题右侧添加可跳转至第二页的学期按钮.
-
-\subsection{\cmd{weeklist} 命令}
-\begin{verbatim}
- \weeklist{
- \textcolor{W1}{星期一}, \textcolor{W2}{星期二},
- \textcolor{W3}{星期三}, \textcolor{W4}{星期四},
- \textcolor{W5}{星期五}, \textcolor{W6}{星期六};
- 0,.175,.35,.525,.7,.875,1
- }
-\end{verbatim}
-
-\begin{figure}[!ht]
- \centering
- \tikz
- {
- \tikzset{every node/.style={font=\footnotesize}}
- \draw [thick,->,>=stealth] ({-1/16*5.1 in},0) -- (5.1 in,0);
- \draw ({-5.10 in/16},-.1) --++ (0,.2) node [above] {\verb|-1/15|};
- \draw ({0.00*5.1 in},-.1) --++ (0,.2) node [above] {\verb|0|};
- \draw ({.175*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.175|};
- \draw ({.350*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.35|};
- \draw ({.525*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.525|};
- \draw ({.700*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.7|};
- \draw ({.875*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.875|};
- \draw ({1.00*5.1 in},-.1) --++ (0,.2) node [above] {\verb|1|};
- \node [above] at ({.0875*5.1 in},0) {\textcolor{W1}{星期一}};
- \node [above] at ({.2625*5.1 in},0) {\textcolor{W2}{星期二}};
- \node [above] at ({.4375*5.1 in},0) {\textcolor{W3}{星期三}};
- \node [above] at ({.6125*5.1 in},0) {\textcolor{W4}{星期四}};
- \node [above] at ({.7875*5.1 in},0) {\textcolor{W5}{星期五}};
- \node [above] at ({.9375*5.1 in},0) {\textcolor{W6}{星期六}};
- }
- \caption*{命令 \cmd{weeklist} 中的第二行数组与坐标相对应.}
-\end{figure}
-
-此命令可在课程表顶部添加工作日,你可以自由决定显示样式,甚至是前面的 logo. 你可以自定义课程表中每一列的宽度,如图所示. 课程表可根据你输入的时间组数自动生成相应的列数. 如上方代码共有 5 个工作日,就会生成 5 列的课程表.
-
-\subsection{\cmd{timelist} 命令}
-\begin{verbatim}
- \timelist [13] {%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
- }
- \timelist [13] {}
-\end{verbatim}
-
-命令 \cmd{timelist} 有两个参数,第二个参数 \cmd{\ttfamily\{\#2\}} 可将时间添加至课程表的左侧,内容的第一行是每节课程开始时间,第二行是每节课程的结束时间,时间之间用逗号(\verb|,|)分隔,行之间用分号(\verb|;|)分隔.
-
-课程表可根据你输入的时间组数自动生成相应的行数. 如上方代码共有 12 组时间,就会生成 12 行的课程表.
-
-第一个可选参数 \cmd{\ttfamily[\#1]} 可直接指定课程表上你想要生成的行数并不会在课程表左侧添加时间,左侧只会有一列\emph{在每行竖直居中}的序号.
-
-\begin{table}[!ht]
-\centering
-\caption{两个参数的使用情况.}
-
-\begin{tabularx}{\textwidth}{c >{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}X}
- \toprule
- \diagbox{\cmd{\ttfamily[\#1]}}{\cmd{\ttfamily\{\#2\}}} & \multicolumn{1}{c}{使用} & \multicolumn{1}{c}{不使用}\\
- \midrule
- 使用 &
- 效果和 \cmd{\ttfamily\{\#2\}} 描述相同,但生成行数由 \cmd{\ttfamily[\#1]} 决定 &
- 效果和命令 \cmd{\ttfamily[\#1]} 描述相同\\
- \midrule
- 不使用 &
- 效果和命令 \cmd{\ttfamily\{\#2\}} 描述相同 &
- 效果和命令 \cmd{\ttfamily[\#1]} 描述相同\newline\emph{并默认生成 12 行}.\\
- \bottomrule
-\end{tabularx}
-\end{table}
-
-如果你要只使用第一个参数 \cmd{\ttfamily[\#1]},那么请不要在第二个参数 \cmd{\ttfamily\{\#2\}} 中添加任何东西.
-
-\begin{itemize}
- \item 若参数 \cmd{\ttfamily\{\#2\}} 中有 12 组时间,参数 \cmd{\ttfamily[\#1]} 传递的数值为 14,那么课程表的左侧会只有 1 -- 12 行有时间标注,最后两行没有时间标注但最后两行的标号仍然偏上方,并不会竖直对齐.
- \item 若命令 \cmd{\ttfamily\{\#2\}} 中有 14 组时间,参数 \cmd{\ttfamily[\#1]} 传递的数值为 12,那么只会生成 12 行的课程表并且左侧均有时间标注,也就是在参数 \cmd{\ttfamily\{\#2\}} 中输入的最后两组时间无效.
-\end{itemize}
-
-\subsection{\cmd{weeks} 命令}
-\begin{verbatim}
- \weeks{Week 1 -- 16}
-\end{verbatim}
-
-此命令可指定命令 \cmd{course} 第 7 个参数的默认值.
-
-\subsection{\cmd{course} 命令}
-\begin{verbatim}
- \course[H1]{8}{9}{群论}{第6教研楼 · 中211}{Li Ge}[Week 1 -- 16]
-\end{verbatim}
-
-此命令共有7个参数.
-\begin{itemize}
- \item 第 1 个为课程块的颜色,从 ``H1'' 到 ``H9'' 供选择,此参数是可选参数,默认为 ``H1''.
- \item 第 2 -- 6 个为课程的起始节数和结束节数、名称,地址和教师的名字.
- \item 第 7 个为课程的首末周,此参数是可选参数,默认值由命令 \cmd{weeks} 指定,若未指定则默认值为 ``Week 1 -- 12''.
-\end{itemize}
-
-\subsection{\cmd{corner} 命令}
-\begin{verbatim}
- \corner{6 pt}
-\end{verbatim}
-
-此命令可决定课程块的圆角半径.
-
-\subsection{\cmd{newday} 命令}
-此命令可切换当前日到第二天,此时课程块会右移一格.
-
-\subsection{\cmd{more} 命令}
-\begin{verbatim}
- \more{· School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
-\end{verbatim}
-
-此命令可在课程表末尾添加备注信息.
-
-\subsection{\cmd{sticker} 命令}
-\begin{verbatim}
- \sticker{favicon}
-\end{verbatim}
-
-在使用此命令后页面的右下方会添加一张贴纸.
-
-\section{版本历史}
-
-课程表的设计源于\href{https://www.hdu.edu.cn}{杭州电子科技大学}杭电助手学生课表页面(仅本校师生可访问). 页面排版十分精美,于是本人使用 \textsf{\LaTeX{}} 复刻出了课程表样式,并制作成模板分享给大家.
-
-\textsf{\bfseries Version 1.0} 于01/09/2023完成开发,并发布在 \href{https://www.latexstudio.net/index/details/index/mid/3625.html}{\textsf{\LaTeX}工作室} (杭州萧山)上,赢得了许多人的喜爱.
-\clearpage
-\setlist[itemize]{noitemsep, topsep=0pt}
-\datechange{2023/11/01}{Version 2.0a}
-\begin{itemize}
- \item 支持课程块显示为圆角或直角.
- \item 支持一个 \verb|.tex| 文件中生成多张课表.
-\end{itemize}
-
-\datechange{2023/11/05}{Version 2.1a}
-\begin{itemize}
- \item 支持 libertinus 字体.
-\end{itemize}
-
-\datechange{2024/01/31}{Version 2.2a}
-\begin{itemize}
- \item 修复了分辨率超出的 bug.
- \item 更改纸张类型为美国信纸.
- \item 支持自定义课程起始和结束时间.
- \item 支持在页面右下角添加一个你喜欢的小贴纸.
- \item 提供简体中文说明文档.
-\end{itemize}
-\setstretch{1}
-\datechange{2024/02/02}{Version 2.3a}
-\begin{itemize}
- \item 支持根据所输入的时间组数自动生成相应的行数.
- \item 课程表可纵向或横向显示.
-\end{itemize}
-
-\datechange{2024/02/03}{Version 2.3b}
-\begin{itemize}
- \item 优化坐标计算,提升编译速度.
-\end{itemize}
-
-\datechange{2024/02/24}{Version 2.4a}
-\begin{itemize}
- \item 支持自定义工作日显示样式.
- \item 支持隐藏时间,仅显示竖直对齐课程序号.
- \item 支持设置默认首末周.
-\end{itemize}
-
-\datechange{2024/03/01}{Version 2.4b}
-\begin{itemize}
- \item 修复了在 \mode{landscape} 模式中添加超过 7 个工作日时 \emph{分辨率溢出}的错误.
- \item 支持自定义课程表中每一列的宽度.
- \item 优化圆角设计,支持自定义圆角半径.
- \item 感谢 @egreg 在 \TeX{} Exchange 上提供的 \href{https://tex.stackexchange.com/a/711657/299948}{输出数组中每一列元素个数} 的代码方案.
-\end{itemize}
-
-\datechange{\today}{Version 2.4c}
-\begin{itemize}
- \item 支持在标题右侧添加学期按钮.
-\end{itemize}
+\begin{framed}
+ \begin{verbatim}
+ \documentclass {litetable}
+ \end{verbatim}
+\end{framed}
+
+如需输入中文,可自行载入 \pkg{ctex} 宏包并设置字体.
+
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist} \oarg{rows} \marg{list} \cs{timelist} \marg{list} \oarg{rows}
+ \cs{weeklist} \oarg{default weeks} \marg{list} \cs{weeklist} \marg{list} \oarg{default weeks}
+ \end{syntax}
+
+ 命令 \cs{timelist} 的可选参数可强制设定课程表的行数,命令 \cs{weeklist} 的可选参数可设定默认的星期数目并会在每个课程盒子的右下角显示. 两个命令的强制参数均接收数组,可分别在课程表的左侧添加时间列表、在课程表的顶部添加对应宽度比例的工作日. 输入数组的用例见Appendix \ref{mwe}.
+
+ 若命令 \cs{timelist} 中时间数组数大于强制设定的行数,则多余的时间数组将被忽略,并返回一个警告. 如果只需在课程表左侧添加一列序号,使强制参数为空即可.
+\end{function}
+
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more} \marg{comment}
+ \end{syntax}
+
+ 此命令可在页面的右下角添加备注.
+\end{function}
+
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable} \oarg{keyvals} \marg{title} \oarg{keyvals}
+ \end{syntax}
+
+ 此命令可生成一个空白的课程表框架,需在命令 \cs{timelist},\cs{weeklist} 和 \cs{more} 后,并在带有 \cmd{[remember picture, overaly]} 选项的 \env{tikz} 环境中执行. 可选参数接收键 \keys{\cmdmac~color} \keys{\cmdmac~sem},可分别在设置课程表框架的背景色和在页面的右上角添加学期,键 \keys{\cmdmac~color} 的默认值为 \cmd{gray}. 强制参数可设定标题.
+\end{function}
+
+\section{添加课程盒子}
+
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course} \oarg{keyvals} \marg{start number} \oarg{keyvals} \marg{end number} \oarg{keyvals}
+ \end{syntax}
+ \cs{course} 命令可在当前工作日添加课程盒子,需在命令 \cs{maketable} 后,并在带有 \cmd{[remember picture, overaly]} 选项的 \env{tikz} 环境中执行.
+
+ 此命令的可选参数接收下列键:\keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. 键 \keys{\cmdmac~color} 默认值为 \cmd{teal},键 \keys{\cmdmac~weeks} 默认值由命令 \cs{weeklist} 的可选参数设定. 第一个和第二个强制参数分别为课程的开始和结束序号. 命令的用例见Appendix \ref{mwe}.
+
+ \begin{itemize}
+ \item 若课程盒子的高度只有一格,即$\meta{start number} = \meta{end number}$,则键 \keys{\cmdmac~location} 和 \keys{\cmdmac~teacher} 的值将输出在同一行并以逗号 (,) 间隔,键 \keys{\cmdmac~weeks} 的值将会隐藏.
+ \item 若键 \keys{\cmdmac~location} 和 \keys{\cmdmac~teacher} 均未赋值,则键 \keys{\cmdmac~subject} 的值将输出在课程盒子中心.
+ \item 超出课程表工作日范围的课程盒子将不会显示,并返回一条警告.
+ \end{itemize}
+\end{function}
+
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday} \oarg{integral value}
+ \end{syntax}
+
+ 此命令可使其后面添加的课程盒子后移 \meta{intergal value} 个工作日. 可选参数的默认值为 \cmd{1},即后移 \cmd{1} 个工作日.
+\end{function}
+
+\clearpage
\appendix
-\includepdf[pages={1,3}]{litetable-demo.pdf}
-\includepdf[pages={2,4},nup=1x2,pagecommand={
- \tikz[remember picture, overlay]
- \node [rotate=90,below,yshift=-1em] at (current page.west) {\bfseries\LARGE Document Example: \texttt{litetable-demo.tex}};
- }
-]{litetable-demo.pdf}
-
-\end{document} \ No newline at end of file
+
+\section{最小工作示例}\label{mwe}
+
+此MWE生成的课程表有13行但是只有前12行标注时间,课程表顶部共有5个工作日,工作日之间的宽度比例为$4:5:4:6:5$,键 \keys{\cmdmac~weeks} 的默认值被赋为 \cmd{Weeks 1 - 16}. 添加了注释和两个课程盒子.
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+
+ \begin{document}
+
+ \timelist [ 13 ]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist [ Weeks 1 - 16 ]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more { Author: Mingyu Xia \& Lijun Guo }
+
+ \begin{tikzpicture} [ remember picture, overlay ]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
+
+ \end{document}
+ \end{verbatim}
+\end{framed}
+
+\includepdf[pages = 1]{litetable-demo.pdf}
+
+\end{document}
+
+% End of file litetable-cn.tex
diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.pdf b/macros/latex/contrib/litetable/doc/litetable-demo.pdf
index 136369231a..13e9fea8a8 100644
--- a/macros/latex/contrib/litetable/doc/litetable-demo.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.tex b/macros/latex/contrib/litetable/doc/litetable-demo.tex
index f2210298bf..c20b1275a8 100644
--- a/macros/latex/contrib/litetable/doc/litetable-demo.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-demo.tex
@@ -1,175 +1,67 @@
-\documentclass[times]{litetable}
+\documentclass[letterpaper, svgnames]{litetable}
-% \setCJKfamilyfont{zhhei}{Chiron Sung HK}
-
-\corner{6 pt}
-\sticker{favicon}
+\usepackage{twemojis,newtxtext}
+\usepackage[scaled = .9]{helvet}
+\renewcommand*\familydefault{\sfdefault}
\begin{document}
-\timelist[12]{%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05
-}
-\weeklist{
- \heiti\bfseries\textcolor{W1}{\faIcon{moon}~星期一},
- \heiti\bfseries\textcolor{W2}{\faIcon{fire}~星期二},
- \heiti\bfseries\textcolor{W3}{\faIcon{water}~星期三},
- \heiti\bfseries\textcolor{W4}{\faIcon{tree}~星期四},
- \heiti\bfseries\textcolor{W5}{\faIcon{coins}~星期五};
- 0,.17,.34,.56,.78,1
-}
-\weeks{Week 1 -- 16}
-
-\begin{tikzpicture}
- \makeframe[SEM 6]{Axia\!\texttt{'}\!s Timetable}
-
- % Mon.
- \course[H5]{7}{8}{凝聚态物理}{第6教研楼 · 中225}{Mn Chen}
-
- \newday % Tue.
- \course[H1]{8}{9}{群论}{第6教研楼 · 中211}{Li Ge}
- \course[H5]{10}{11}{介观物理}{第6教研楼 · 中211}{Yuan Li \& Mn Chen}
-
- \newday % Wed.
- \course[H6]{1}{2}{工程制图}{第7教研楼 · 中3012}{Hc Wang}
- \course[H9]{8}{9}{形势与政策6}{第6教研楼 · 北302}{Xr Qi}[Double Week 10 -- 16]
- \course[H9]{10}{11}{高级创业运营仿真}{第4教研楼 · 411 -- 413}{Li Zhang}[Week 1 -- 8]
-
- \newday % Thu.
- \course[H4]{1}{2}{跨文化交际}{第3教研楼 · 422}{Cl Zuo}
- \course[H2]{3}{4}{无线电测向}{东边田径场}{Ys Yu}
- \course[H5]{6}{8}{固体物理}{第6教研楼 · 北408}{Kw Sun}
-
- \newday % Fri.
- \course[H8]{1}{2}{光电显示技术}{第7教研楼 · 中3012}{Wt Su}
- \course[H3]{6}{8}{研究生组会}{第6教研楼 · 中}{Yuan Li}
-
- \more{ · School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
+\timelist [ 13 ]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45,
+ 10:50 -> 11:35, 11:40 -> 12:25, 13:30 -> 14:15,
+ 14:20 -> 15:05, 15:15 -> 16:00, 16:05 -> 16:50,
+ 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+\weeklist [ Weeks 1 - 16 ]
+ {
+ \scshape\texttwemoji{1f312} Mon -> 1,
+ \scshape\texttwemoji{1f525} Tue -> 1,
+ \scshape\texttwemoji{1f30a} Wed -> 1,
+ \scshape\texttwemoji{1f332} Thu -> 1,
+ \scshape\texttwemoji{1fa99} Fri -> 1
+ }
+\more
+ {
+ School Starts: 06 / 09 / 2024\quad Summer Vacation: 26 / 01 / 2025
+ }
+
+\begin{tikzpicture} [ remember picture, overlay ]
+ \maketable [ color = MidnightBlue,
+ sem = SEM 6
+ ] { Skyrmion's Course Schedule }
+ \course [ color = DarkBlue, subject = interface3,
+ teacher = The \LaTeX{} Project
+ ] {4} {5}
+ \newday
+ \course [ color = Purple, subject = expl3,
+ teacher = The \LaTeX{} Project
+ ] {8} {8}
+ \course [ color = FireBrick, subject = usrguide,
+ teacher = \LaTeX{} Project Team, weeks = Weeks 7 - 14
+ ] {1} {2}
+ \newday
+ \course [ subject = Keep on \TeX{}ing ] {10} {11}
+ \newday
+ \course [ color = Crimson, subject = \textup{Ti\textit{k\/}Z},
+ teacher = The PGF/\textup{Ti\textit{k\/}Z} Team
+ ] {3} {5}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
\end{tikzpicture}
-\rotatepage
-
-\weeklist{
- \bfseries\sffamily\textcolor{W1}{\faIcon{moon}~Monday},
- \bfseries\sffamily\textcolor{W2}{\faIcon{fire}~Tuesday},
- \bfseries\sffamily\textcolor{W3}{\faIcon{water}~Wednesday},
- \bfseries\sffamily\textcolor{W4}{\faIcon{tree}~Thursday},
- \bfseries\sffamily\textcolor{W5}{\faIcon{coins}~Friday},
- \bfseries\sffamily\textcolor{W6}{\faIcon{mountain}~Saturday},
- \bfseries\sffamily\textcolor{W7}{\faIcon{sun}~Sunday};
- 0,.16,.32,.48,.64,.8,.9,1
-}
-
-\begin{tikzpicture}
- \makeframe[SEM 6]{Axia\!\texttt{'}\!s Timetable}
-
- % Mon.
- \course[H5]{7}{8}{Introduction to Cond.}{Building 6 · Middle 225}{Mn Chen}
-
- \newday % Tue.
- \course[H1]{8}{9}{Group Theory}{Building 6 · Middle 211}{Li Ge}
- \course[H5]{10}{11}{Mesoscopic Physics}{Building 6 · Middle 211}{Yuan Li \& Mn Chen}
+\clearpage
- \newday % Wed.
- \course[H6]{1}{2}{Engineering Drawing}{Building 7 · North 3012}{Hc Wang}
- \course[H9]{8}{9}{Situation \& Policy 6}{Building 6 · North 302}{Xr Qi}[Double Week 10 -- 16]
- \course[H9]{10}{11}{Operational Simu.}{Building 4 · 411 -- 413}{Li Zhang}[Week 1 -- 8]
+\timelist [ 12 ] { }
+\weeklist [ Weeks 1 - 16 ] { Mon -> 1, Tue -> 1, Wed -> 1, Thu -> 1, Fri -> 1 }
- \newday % Thu.
- \course[H4]{1}{2}{Intercultural Comm.}{Building 3 · 422}{Cl Zuo}
- \course[H2]{3}{4}{Radio Direction}{Athletic Field}{Ys Yu}
- \course[H5]{6}{8}{Solid State Physics}{Building 6 · North 408}{Kw Sun}
-
- \newday % Fri.
- \course[H8]{1}{2}{OE. Display}{Building 7 · North 3012}{Wt Su}
- \course[H3]{6}{8}{Group Meeting}{Building 6 · Middle}{Yuan Li}
-
- \more{ · School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
+\begin{tikzpicture} [ remember picture, overlay ]
+ \maketable { Skyrmion's Course Schedule }
+ %
\end{tikzpicture}
-\rerotatepage
-
-\timelist{
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
-}
-\weeklist
-{
- \heiti\bfseries\textcolor{W1}{\faIcon{moon}~星期一},
- \heiti\bfseries\textcolor{W2}{\faIcon{fire}~星期二},
- \heiti\bfseries\textcolor{W3}{\faIcon{water}~星期三},
- \heiti\bfseries\textcolor{W4}{\faIcon{tree}~星期四},
- \heiti\bfseries\textcolor{W5}{\faIcon{coins}~星期五},
- \heiti\bfseries\textcolor{W6}{\faIcon{mountain}~星期六};
- 0,.175,.35,.525,.7,.875,1
-}
-\weeks{Week 1 -- 18}
-
-\begin{tikzpicture}
- \makeframe[SEM 5]{Axia\!\texttt{'}\!s Timetable} % make title & background
- % Mon.
- \course[H1]{1}{2}{羽毛球}{羽毛球场}{Ys Yu}
- \course[H7]{3}{5}{光学镜头设计实验}{第6教研楼 · 南402}{Hao Ying}[Week 5 -- 15]
- \newday % Tue.
- \course[H9]{3}{5}{马克思主义原理}{第6教研楼 · 北320}{Yang Wang}
- \course[H8]{6}{8}{光电检测技术}{第6教研楼 · 北320}{Xf Huang}
- \newday % Wed.
- \course[H7]{3}{4}{激光原理}{第6教研楼 · 中301}{Hd Mao}
- \course[H9]{6}{7}{就业3 | 形策5}{6教中301 | 6教北208}{MJH | QXR}[Week 5 -- 14]
- \course[H5]{8}{9}{计算物理}{第6教研楼 · 中215}{Wj Rao}
- \course[H1]{10}{11}{论文写作指导}{第6教研楼 · 北416}{Yq Shi}
- \newday % Thu.
- \course[H6]{1}{2}{智能传感系统}{第6教研楼 · 北110}{Bx Cai}
- \course[H5]{3}{5}{高等量子力学}{第6教研楼 · 中225}{Mn Chen \& Yuan Li}
- \course[H3]{6}{8}{近代物理实验2}{第6教研楼 · 南}{Xx Chen}[Week 5 -- 16]
- \course[H8]{10}{12}{光电信息技术实验}{第6教研楼 · 南302}{Yu Zhou}[Week 5 -- 15]
- \newday % Fri.
- \course[H7]{1}{2}{光学镜头设计}{第6教研楼 · 北422}{Hao Ying}
- \course[H5]{3}{5}{光电子学}{第6教研楼 · 北202}{Rx Li \& Yuan Li}
- \course[H8]{6}{7}{光电创新实践4}{第6教研楼 · 南302}{Ql Huang}[Week 5 -- 16]
- \course[H5]{8}{9}{研究生组会}{第6教研楼 · 中}{Yuan Li}
- \more{ · Hangzhou Asian Games: 23 / 09 / 2023 -- 08 / 10 / 2023 · School Starts: 11 / 09 / 2023
- · Winter Vacation: 26 / 01 / 2024}
-\end{tikzpicture}
-
-\rotatepage
-
-\weeklist{
- \bfseries\sffamily\textcolor{W1}{\faIcon{moon}~Monday},
- \bfseries\sffamily\textcolor{W2}{\faIcon{fire}~Tuesday},
- \bfseries\sffamily\textcolor{W3}{\faIcon{water}~Wednesday},
- \bfseries\sffamily\textcolor{W4}{\faIcon{tree}~Thursday},
- \bfseries\sffamily\textcolor{W5}{\faIcon{coins}~Friday},
- \bfseries\sffamily\textcolor{W6}{\faIcon{mountain}~Saturday};
- 0,.175,.35,.525,.7,.875,1
-}
-
-\begin{tikzpicture}
- \makeframe[SEM 5]{Axia\!\texttt{'}\!s Timetable} % make title
- % Mon.
- \course[H1]{1}{2}{Badminton}{Badminton Court}{Ys Yu}
- \course[H7]{3}{5}{Lens Design Expt.}{Building 6 · South 402}{Hao Ying}[Week 5 -- 15]
- \newday % Tue.
- \course[H9]{3}{5}{Marx's Principles}{Building 6 · North 320}{Yang Wang}
- \course[H8]{6}{8}{OE Detection Tech.}{Building 6 · North 320}{Xf Huang}
- \newday % Wed.
- \course[H7]{3}{4}{Laster Principle}{Building 6 Middle · 301}{Hd Mao}
- \course[H9]{6}{7}{Empl Guide | Situ Policy}{Build 6 · 301 | Build 6 · 208}{MJH | QXR}[Week 5 -- 14]
- \course[H5]{8}{9}{Computational Phys}{Building 6 · Middle 215}{Wj Rao}
- \course[H1]{10}{11}{Essay Writing}{Building 6 · North 416}{Yq Shi}
- \newday % Thu.
- \course[H6]{1}{2}{Sensing System}{Building 6 · North 110}{Bx Cai}
- \course[H5]{3}{5}{Quantum Mechanics$^\dagger$}{Building 6 · Middle 225}{Mn Chen \& Yuan Li}
- \course[H3]{6}{8}{Modern Phys Expt. 2}{Building 6 · South}{Xx Chen}[Week 5 -- 16]
- \course[H8]{10}{12}{OE Info Experiment}{Building 6 · South 302}{Yu Zhou}[Week 5 -- 15]
- \newday % Fri.
- \course[H7]{1}{2}{Optical Lens Design}{Building 6 · North 422}{Hao Ying}
- \course[H5]{3}{5}{Optoelectronics}{Building 6 · North 202}{Rx Li \& Yuan Li}
- \course[H8]{6}{7}{Innovative Practice 4}{Building 6 · South 302}{Ql Huang}[Week 5 -- 16]
- \course[H5]{8}{9}{Group Meeting}{Building 6 · Middle}{Yuan Li}
- \more{ · Hangzhou Asian Games: 23 / 09 / 2023 -- 08 / 10 / 2023
- · School Starts: 11 / 09 / 2023 · Winter Vacation: 26 / 01 / 2024 }
-\end{tikzpicture}
+\end{document}
-\end{document} \ No newline at end of file
+%% \ No newline at end of file
diff --git a/macros/latex/contrib/litetable/doc/litetable-en.pdf b/macros/latex/contrib/litetable/doc/litetable-en.pdf
index 33f8659677..8526c940ab 100644
--- a/macros/latex/contrib/litetable/doc/litetable-en.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-en.tex b/macros/latex/contrib/litetable/doc/litetable-en.tex
index 267f0f8346..013acaae85 100644
--- a/macros/latex/contrib/litetable/doc/litetable-en.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-en.tex
@@ -1,304 +1,143 @@
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * http://www.latex-project.org/lppl.txt *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-% \PassOptionsToPackage{quiet}{xeCJK}
-% \PassOptionsToPackage{quiet, no-math}{fontspec}
-\documentclass[11pt]{article}
-\usepackage{geometry,pdfpages,caption,indentfirst,setspace}
-\captionsetup[table]{name={\textsc{Table}},labelsep=period}
-\usepackage[level]{datetime}
-\usepackage{authblk,xltxtra,bigfoot,enumitem}
-\usepackage{booktabs,diagbox,ragged2e,tabularx}
-\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
-\usepackage[toc]{multitoc}
-\usepackage[mono=false]{libertine}
-% \setstretch{1.15}
-% \setCJKmainfont{Chiron Sung HK}
-% [BoldFont=Chiron Sung HK Bold,
-% ItalicFont=Kaiti SC]
-\usepackage{hyperref,xcolor,tikz}
-\hypersetup{colorlinks,urlcolor=H6,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
-\definecolor{pkgcolor}{Hsb}{103,.8,.5}
-\definecolor{moducolor}{Hsb}{290,.8,.5}
-\definecolor{cmdcolor}{Hsb}{188,.8,.5}
-\definecolor{filecolor}{Hsb}{207,.6,.7}
-\definecolor{H1}{Hsb}{349,.8,.8} % 海棠紅 (Hangzhou MTR L 1 )
-\definecolor{H2}{Hsb}{23, .8,.8} % 丹桂橙 (Hangzhou Metro 2 )
-\definecolor{H3}{Hsb}{48, .8,.8} % 柠檬黄 (Hangzhou Metro 3 )
-\definecolor{H4}{Hsb}{103,.8,.8} % 香樟绿 (Hangzhou Metro 4 )
-\definecolor{H5}{Hsb}{188,.8,.8} % 青藍色 (Hangzhou MTR L 5 )
-\definecolor{H6}{Hsb}{207,.8,.8} % 海洋蓝 (Hangzhou Metro 6 )
-\definecolor{H7}{Hsb}{290,.8,.8} % 浪漫紫 (Hangzhou Metro 7 )
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
-\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
-\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
-\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1”}}
-\def\datechange#1#2{%
- \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}}
- \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}}
-
-\title{\bfseries The \pkg{LiteTable} Template: Colorful Timetable}
-\author{Xia Mingyu, \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}}
-\yyyymmdddate
-\date{\today}
-\affil{\href{mailto:xiamyphys@gmail.com}{\ttfamily xiamyphys@gmail.com}}
-\date{\today\quad Version 2.4c\thanks{%
- \url{https://github.com/xiamyphys/litetable}}}
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\linespread{1.12}
+\usepackage{indentfirst}
+\setlength{\parindent}{2em}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries
+ The \cls{litetable} Class: Colorful Timetable
+ \thanks{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ Mingyu Xia \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{Lijun Guo} developed modules for reading \meta{left} -> \meta{right} data structure and supporting low version \hologo {TeX} Live.}
+}
+\date{Version 3.1D, \today}
+
\begin{document}
+
\maketitle
-\vspace{-2em}
-\begin{abstract}
-This is the document for \pkg{LiteTable} template, which provides a beautiful design of class schedule with colorful course blocks.
-\end{abstract}
+\section{Introduction}
-\tableofcontents
+The \cls{litetable} class provides a timetable design with colorful course boxes, based on the \pkg{article} class and conducted on \pkg{expl3} and \pkg{tikz}. It is compatible with \hologo{TeX}Live 2019 or later distributions, they all work fine for \hologo{pdfLaTeX} and \hologo{XeLaTeX} compilers. This is the Chinese manual for the \cls{litetable} class, manuals in \href{./litetable-cn.pdf}{Chinese} and \href{./litetable-hk.pdf}{Cantonese} versions are also provided\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
-\clearpage
+\section{Loading \cls{litetable} and generate the timetable frame}
-\section{Introduction}
+Just like loading any class, write
-\subsection{The purpose of this template}
-This template provides a beautiful design of class schedule with colorful course blocks.
+\begin{framed}
+ \begin{verbatim}
+ \documentclass {litetable}
+ \end{verbatim}
+\end{framed}
-If you meet bugs when using this template, or you have better suggestions or ideas, or you want to participate in the development of the template or other templates by me, welcome to contact via email \href{mailto:xiamyphys@gmail.com}{\ttfamily xiamyphys@gmail.com}.
+One can load the \pkg{ctex} package and set the font to input the CJK characters, if necessary.
-Also, you can join my \textsf\LaTeX{} Template Discussion \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} to communicate with me and get the insider preview edition of the template.
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist} \oarg{rows} \marg{list} \cs{timelist} \marg{list} \oarg{rows}
+ \cs{weeklist} \oarg{default weeks} \marg{list} \cs{weeklist} \marg{list} \oarg{default weeks}
+ \end{syntax}
-\subsection{Packages required}
-This template is based on the template \pkg{standalone}. And it requires \pkg{tikz} package to plot some graphics, \pkg{kvoptions} and \pkg{etoolbox} packages to provide global options, \pkg{expl3}\footnote{Please use the \pkg{expl3} version after 2023/10/10 to support the e-type variants for expand: \verb|\clist_count:e|.} package to support \cmd{timelist} array, \pkg{xeCJK} package to support the \textbf{Chinese, Simplified} language and \pkg{fontawesome5} package to provide a set of beautiful icons.
+ The optional argument of the command \cs{timelist} can force the number of rows on the timetable, and that of the command \cs{weeklist} can set the default number of weeks and print it at every course box's southeast corner. Each mandatory argument of the two commands accepts an array that can add a time list to the left side of the timetable and add workdays with corresponding width ratios at the top of the timetable, respectively. The example for inputting the arrays is shown in Appendix \ref{mwe}.
-\subsection{Installing \pkg{LiteTable} and loading it}
-For portable version, simply download latest \verb|litetable.cls| file from \href{https://github.com/xiamyphys/LiteTable}{GitHub} or \href{https://ctan.org/pkg/litetable}{CTAN} and save it under your working directory. This way of installation is simple and convenient, but you have to manually update \verb|.cls| now and then.
-
-However, I strongly suggest that you should use terminal/cmd to implement the commands to update all the packages (and install this package) to the latest version or switch to portable version instead
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
-
-If you are in some areas with awful Internet environment (such as GFW), you can choose proper mirror source or use other means\footnote{Please comply with local network regulations.}. To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \textsf{\TeX} distribution?}
-
-The template provides two options, \mode{direction} and \mode{font}. Add the modes of the options you want in the square bracket of the command \verb|\documentclass[ ]{litetable}| in \verb|.tex| file.
-
-\subsection{Compatibility}
-The test environments are macOS + Mac\TeX{} 2023 / Overleaf and they all work fine for \XeLaTeX{} compiler, Windows, Linux and Unix platforms compatibility unknown.
-
-This template is developed on macOS platform and using the font ``Heiti SC''. If this font is not installed on your computer, please use the command \verb|\setCJKfamilyfont{zhhei}{ }| after \verb|\documentclass{litetable}| to replace ``Heiti SC'' to the font exists in your computer.
-
-\section{Global Options of \pkg{LiteTable}}
-\begin{verbatim}
- \documentclass[options]{litetable}
-\end{verbatim}
-
-\subsection{The \mode{direction} option}
-This option has two modes, \mode{portrait} and \mode{landscape}, which can make the timetable displayed portrait or horizontally.
-
-\subsection{The \mode{font} option}
-This option has two modes, \mode{times} and \mode{libertinus}, which can make the font to be ``Times New Roman'' or ``Libertinus'', and the default mode is ``Times New Roman''\footnote{Please ensure that your computer has been already installed the font when using this option.}.
-
-\section{Commands of \pkg{LiteTable}}
-
-\subsection{The \cmd{makeframe} command}
-\begin{verbatim}
- \makeframe[Sem 6]{Timetable}
-\end{verbatim}
-
-This command has two variables can create an empty class schedule. The second variable can assign the title while the first optional one can add a button that forward to the next page on the right.
-
-\subsection{The \cmd{weeklist} command}
-\begin{verbatim}
- \weeklist{
- \textcolor{W1}{Monday}, \textcolor{W2}{Tuesday},
- \textcolor{W3}{Wednesday}, \textcolor{W4}{Thursday},
- \textcolor{W5}{Friday};
- 0,.17,.34,.56,.78,1
- }
-\end{verbatim}
-
-
-\begin{figure}[!ht]
- \centering
- \tikz
- {
- \tikzset{every node/.style={font=\small}}
- \draw [thick,->,>=stealth] ({-1/16*5.1 in},0) -- (5.1 in,0);
- \draw ({-5.1 in/16},-.1) --++ (0,.2) node [above] {\verb|-1/15|};
- \draw ({0.0*5.1 in},-.1) --++ (0,.2) node [above] {\verb|0|};
- \draw ({.17*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.17|};
- \draw ({.34*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.34|};
- \draw ({.56*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.56|};
- \draw ({.78*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.78|};
- \draw ({1.0*5.1 in},-.1) --++ (0,.2) node [above] {\verb|1|};
- \node [above] at ({.085*5.1 in},0) {\sffamily\textcolor{W1}{Monday}};
- \node [above] at ({.255*5.1 in},0) {\sffamily\textcolor{W2}{Tuesday}};
- \node [above] at ({.45*5.1 in},0) {\sffamily\textcolor{W3}{Wednesday}};
- \node [above] at ({.67*5.1 in},0) {\sffamily\textcolor{W4}{Thursday}};
- \node [above] at ({.89*5.1 in},0) {\sffamily\textcolor{W5}{Friday}};
- }
- \caption*{The second line of array in the \cmd{weeklist} command corresponds to the axis coordinates.}
-\end{figure}
-
-
-This command can add workdays to the top side of the timetable, you can adjust the format (the icon before it), every width of the columns in the timetable like the figure. The timetable can automatically generate the corresponding number of columns based on the number of workdays you enter. For example, the code above has 5 workdays, a 5-column timetable will be generated.
-
-\subsection{The \cmd{timelist} command}
-\begin{verbatim}
- \timelist [13] {%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
- }
- \timelist [13] {}
-\end{verbatim}
-
-The command \cmd{timelist} has two variables while the second one \cmd{\ttfamily\{\#2\}} can add time to the left side of the timetable, and the first line of the content is the start time of the classes while the second line of the content is the end time of the classes, each time separates with a comma (\verb|,|), the first line and the second line separates with a semicolon (\verb|;|).
-
-The timetable can automatically generate the corresponding number of rows based on the number of time groups you enter. For example, the code above has 12 groups of times, a 12-row timetable will be generated.
-
-The first optional variable \cmd{\ttfamily[\#1]} can directly assign the number of rows on the timetable you want without adding time to the left side of the timetable, and there will only be a series of numbers that \emph{aligned vertically to the center of every line}.
-
-\begin{table}[!ht]
-\centering
-\caption{Usage of the two variables.}
-
-\begin{tabularx}{\textwidth}{c >{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}X}
- \toprule
- \diagbox{\cmd{\ttfamily[\#1]}}{\cmd{\ttfamily\{\#2\}}} & \multicolumn{1}{c}{To use} & \multicolumn{1}{c}{Not to use}\\
- \midrule
- To use &
- The effect is the description of \cmd{\ttfamily\{\#2\}}, but number of rows assign by \cmd{\ttfamily[\#1]} &
- The effect is the description of \cmd{\ttfamily[\#1]}\\
- \midrule
- Not to use &
- The effect is the description of \cmd{\ttfamily\{\#2\}} &
- The effect is the description of \cmd{\ttfamily[\#1]} before with \emph{default format of 12 lines}\\
- \bottomrule
-\end{tabularx}
-\end{table}
-
-If you want to use the first variable \cmd{\ttfamily[\#1]} only, not to add anything in the second variable.
+ If the number of time arrays received by the command \cs{timelist} is greater than the forced number of rows, then the extra time sets are ignored, and it will return a warning. If one wants to add a series of numbers to the left side of the timetable without time, just leave the mandatory argument blank.
+\end{function}
-\begin{itemize}
- \item Assume that \cmd{\ttfamily\{\#2\}} has 12 groups of times, and \cmd{\ttfamily[\#1]} passed a value of 14, then the left side of the timetable will have only 1 -- 12 rows with time while the last two rows without time the label of them is still upward, not vertically aligned in the center.
- \item Assume that \cmd{\ttfamily\{\#2\}} has 14 sets of times, and \cmd{\ttfamily[\#1]} passes a value of 12, then only 12 rows of timetables will be generated with time on the left side of each row, that is, the last two sets of data in \cmd{\ttfamily\{\#2\}} will be invalid.
-\end{itemize}
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more} \marg{comment}
+ \end{syntax}
-\subsection{The \cmd{weeks} command}
-\begin{verbatim}
- \weeks{Week 1 -- 16}
-\end{verbatim}
+ This command can add a comment at the southwest corner of the page.
+\end{function}
-This command can assign the default value of the 7th variable of the command \cmd{course}.
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable} \oarg{keyvals} \marg{title} \oarg{keyvals}
+ \end{syntax}
-\subsection{The \cmd{course} command}
-\begin{verbatim}
- \course[H1]{8}{9}{Group Theory}{Building 6 · 211}{Li Ge}[Week 1 -- 16]
-\end{verbatim}
+ This command can create a blank timetable frame, and it should execute after commands \cs{timelist} and \cs{weeklist} in the \env{tikzpicture} environment with the option of \cmd{[remember picture, overaly]}. The optional argument accepts keys, it can set the background color of the timetable, and add the semester at the northeast corner of the page, the default value of the key \keys{\cmdmac~color} is \cmd{gray}. The mandatory argument can set the title.
+\end{function}
-There are 7 variables in this command.
-\begin{itemize}
- \item The 1st one is the color of the class, from ``H1'' to ``H9'', it's optional and the default is ``H1''.
- \item The 2nd -- 6th ones is the starting number and ending number, name, address, teacher(s) of the class.
- \item The last one is the start week and end week of the timetable, it's optional and the default value is the value that you've adjusted in the command \cmd{weeks} or it will be ``Week 1 -- 12''.
-\end{itemize}
+\section{Add course boxes}
-\subsection{The \cmd{corner} command}
-\begin{verbatim}
- \corner{6 pt}
-\end{verbatim}
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course} \oarg{keyvals} \marg{start number} \oarg{keyvals} \marg{end number} \oarg{keyvals}
+ \end{syntax}
+\end{function}
-This command determines the corner radius of the course block.
+The \cs{course} command can add course boxes on the current workday, it should execute after command \cs{maketable} in the \env{tikzpicture} environment with the option of \cmd{[remember picture, overaly]}.
-\subsection{The \cmd{newday} command}
-This command can switch the current weekday to the next day, then the course will move right one grid.
+The optional argument accepts the following keys: \keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. The default value of the key \keys{\cmdmac~color} is \cmd{teal}, and the default value of the key \keys{\cmdmac~weeks} is determined by the argument of the command \cs{weeklist}. The first and second mandatory arguments are the start and end numbers of the course, respectively. The example of this command is shown in Appendix \ref{mwe}.
-\subsection{The \cmd{more} command}
-\begin{verbatim}
- \more{· School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
-\end{verbatim}
+\begin{itemize}
+ \item If the course box's height is only one unit, that is $\meta{start number} = \meta{end number}$, the values of keys \keys{\cmdmac~location} and \keys{\cmdmac~teacher} will print on the same line with a comma (,) separated, and the value of the key \keys{\cmdmac~weeks} will be hidden.
+ \item If neither the key \keys{\cmdmac~location} nor the key \keys{\cmdmac~teacher} is assigned value, then the value of the key \keys{\cmdmac~subject} will print at the center of the course box.
+ \item course boxes that are out of the timetable will not display, and it will return a warning.
+\end{itemize}
-This command can add remark at the end of the class schedule.
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday} \oarg{intergal value}
+ \end{syntax}
-\subsection{The \cmd{sticker} command}
-\begin{verbatim}
- \sticker{favicon}
-\end{verbatim}
+ This command has an optional argument that can move the course boxes right \meta{intergal value} working days. The default value of the optional argument is \cmd{1} to move right \cmd{1} workday.
+\end{function}
-There will be a sticker on the southeast of the page after you add, otherwise it won't.
+\clearpage\linespread{1.375}
+\appendix
-\section{Version History}
+\section{Minimal Working Example}\label{mwe}
-The design of this course schedule originated from the student course schedule web page (only personnel of this school can access) of the \href{https://www.hduhelp.cn/}{HDUHelp} in \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}. The layout is very beautiful and I used \textsf{\LaTeX} to imitate that style and made a template to share with everyone.
+The following MWE could generate a timetable of 13 lines but only the top 12 lines have been marked with time, and there are 5 workdays at the top of the timetable, ratios between them are $4:5:4:6:5$. The default value of the key \keys{\cmdmac~weeks} will be set to \cmd{Weeks 1 - 16}. A comment and two course boxes are added.
-\textsf{\bfseries Version 1.0} was finished on 2023/09/01 and released on \href{https://www.latexstudio.net}{\textsf{\LaTeX} Studio} (Hsiaoshan, Hangzhou), where has won the favor of many people.
-\clearpage
-\setlist[itemize]{noitemsep, topsep=0pt}
-\datechange{2023/11/01}{Version 2.0a}
-\begin{itemize}
- \item Supports to set the course block's corners be round or sharp.
- \item Supports to add multiply class schedules in one \verb|.tex| file.
-\end{itemize}
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
-\datechange{2023/11/05}{Version 2.1a}
-\begin{itemize}
- \item Supports to use the libertinus font.
-\end{itemize}
+ \begin{document}
-\datechange{2024/01/31}{Version 2.2a}
-\begin{itemize}
- \item Fixed the bug of resolution exceeded.
- \item Changed paper type to US letter.
- \item Support to custom course start time and end time.
- \item Support to add sticker as you like at the southeast of the page.
- \item Provide simplified Chinese documentation.
-\end{itemize}
+ \timelist [ 13 ]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist [ Weeks 1 - 16 ]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more { Author: Mingyu Xia \& Lijun Guo }
-\datechange{2024/02/02}{Version 2.3a}
-\begin{itemize}
- \item Supports to generate the corresponding number of rows based on the number of time groups you enter automatically.
- \item Timetable can be displayed portrait or horizontally as you like.
-\end{itemize}
-
-\datechange{2024/02/03}{Version 2.3b}
-\begin{itemize}
- \item Optimized coordinate calculation and improved compilation speed.
-\end{itemize}
+ \begin{tikzpicture} [ remember picture, overlay ]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
-\datechange{2024/02/24}{Version 2.4a}
-\begin{itemize}
- \item Supports to custom workday display style.
- \item Supports to hide time and only showing course program number vertically aligned.
- \item Supports to set default first and last week.
-\end{itemize}
+ \end{document}
+ \end{verbatim}
+\end{framed}
-\datechange{2024/03/01}{Version 2.4b}
-\begin{itemize}
- \item Fixed the error of \emph{resolution exceed} in the \mode{landscape} mode and added over 7 workdays.
- \item Supports to custom every width of the columns in the timetable.
- \item Optimized the design of round corners, supports custom the radius of corners.
- \item Thanks for @egreg's code solution on \TeX{} StackExchange for \href{https://tex.stackexchange.com/a/711657/299948}{Printing the number of each rows' elements in an array respectively}.
-\end{itemize}
+\includepdf[pages = 1]{litetable-demo.pdf}
-\datechange{\today}{Version 2.4c}
-\begin{itemize}
- \item Supports to add the `Semester' button on the right side of the title.
-\end{itemize}
+\end{document}
-\appendix
-\includepdf[pages={2,4},nup=1x2,pagecommand={
- \tikz[remember picture, overlay]
- \node [rotate=90,below,yshift=-1em] at (current page.west) {\bfseries\LARGE Document Example: \texttt{litetable-demo.tex}};
- }
-]{litetable-demo.pdf}
-\includepdf[pages={1,3}]{litetable-demo.pdf}
-
-\end{document} \ No newline at end of file
+% End of file litetable-en.tex
diff --git a/macros/latex/contrib/litetable/doc/litetable-hk.pdf b/macros/latex/contrib/litetable/doc/litetable-hk.pdf
new file mode 100644
index 0000000000..8a3f9d087d
--- /dev/null
+++ b/macros/latex/contrib/litetable/doc/litetable-hk.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-hk.tex b/macros/latex/contrib/litetable/doc/litetable-hk.tex
new file mode 100644
index 0000000000..bd3cd70b09
--- /dev/null
+++ b/macros/latex/contrib/litetable/doc/litetable-hk.tex
@@ -0,0 +1,143 @@
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\usepackage[fontset = none]{ctex}
+\setCJKmainfont[BoldFont = *-Medium]{LXGW WenKai}
+\setCJKsansfont[BoldFont = *-Medium]{LXGW WenKai}
+\setCJKmonofont[BoldFont = *-Medium]{LXGW WenKai Mono}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries\cls{litetable} 文檔類:多彩嘅課程表
+ \footnote{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ 夏明宇 \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{郭李軍}開發咗讀取 \meta{left} -> \meta{right} 型資料結構糢塊同低版本 \hologo{TeX} Live 相容糢塊.}
+}
+\date{Version 3.1D, \today}
+
+\begin{document}
+
+\maketitle
+
+\section{介紹}
+
+\cls{litetable} 文檔類提供咗個多彩嘅課程表設計,基於 \cls{article} 文檔類,由 \pkg{expl3} 和 \pkg{tikz} 構建. 相容發行版 \hologo{TeX} Live 2019 同更高版本,喺 \hologo{pdfLaTeX} 同 \hologo{XeLaTeX} 編譯器下均可正常運行. 本文檔系 \cls{litetable} 文檔類嘅用户手冊放,手冊放同時有 \href{./litetable-en.pdf}{英文} 同 \href{./litetable-cn.pdf}{官話} 版本\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
+
+\section{載入 \cls{litetable} 並建置課程表框架}
+
+同載入其他文檔類一樣,只令寫下
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass {litetable}
+ \end{verbatim}
+\end{framed}
+
+如需輸入中文,可自行載入 \pkg{ctex} 宏包並設置字型.
+
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist} \oarg{rows} \marg{list} \cs{timelist} \marg{list} \oarg{rows}
+ \cs{weeklist} \oarg{default weeks} \marg{list} \cs{weeklist} \marg{list} \oarg{default weeks}
+ \end{syntax}
+
+ 命令 \cs{timelist} 嘅可選參數可強制設定課程表嘅行數,命令 \cs{weeklist} 嘅可選參數可設定預設嘅星期數目並會喺每個課程盒子嘅右下角顯示. 兩個命令嘅強制參數均接受數組,可分別就系課程表嘅左側添加時間表、喺課程表嘅頂部添加對應寬度比例嘅工作日. 輸入數組嘅用例見Appendix \ref{mwe}.
+
+ 若命令 \cs{timelist} 中時間數組數字大於可選參數接受值,就多餘嘅時間數組將畀忽略,並返回一個警告. 如果只系課程表左側添加一部序號,令強制參數為空即可.
+\end{function}
+
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more} \marg{comment}
+ \end{syntax}
+
+ 此命令可喺頁面嘅嘅右下角添加備注.
+\end{function}
+
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable} \oarg{keyvals} \marg{title} \oarg{keyvals}
+ \end{syntax}
+
+ 此命令可建置一個空白嘅課程表框架,使喺命令 \cs{timelist},\cs{weeklist} 同 \cs{more} 後,並喺帶有 \cmd{[remember picture, overaly]} 選項嘅 \env{tikz} 環境中執行. 可選引數接受鍵 \keys{\cmdmac~color} \keys{\cmdmac~sem},可分別就喺設置課程表框架嘅背景色同喺頁面嘅嘅右度角添加學期,鍵 \keys{\cmdmac~color} 嘅默認值為 \cmd{gray}. 強制參數可設定標題.
+\end{function}
+
+\section{添加課程盒子}
+
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course} \oarg{keyvals} \marg{start number} \oarg{keyvals} \marg{end number} \oarg{keyvals}
+ \end{syntax}
+
+ \cs{course} 命令可喺當前工作日添加課程盒子,要喺命令 \cs{maketable} 後,並喺帶有 \cmd{remember picture,overaly} 選項嘅 \env{tikzpicture} 環境中執行.
+
+ 此命令嘅可選參數接受下列鍵:\keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. 鍵 \keys{\cmdmac~color} 默認值為 \cmd{teal},鍵 \keys{\cmdmac~weeks} 默認值由命令 \cs{weeklist} 嘅可選參數決定. 第一個同第二個強制參數勒分別為課程嘅開始同結束序號. 命令嘅用例見Appendix \ref{mwe}.
+
+ \begin{itemize}
+ \item 若課程盒子高度得一格,即$\marg{start number} = \marg{end number}$,就鍵 \keys{\cmdmac~location} 同 \keys{\cmdmac~teacher} 嘅值將輸出喺同一行並以逗號 (,) 隔,鍵 \keys{\cmdmac~weeks} 嘅值將會隱藏.
+ \item 若鍵 \keys{\cmdmac~location} 同 \keys{\cmdmac~teacher} 均未賦值,就鍵 \keys{\cmdmac~subject} 嘅值將輸出喺課程盒子中心.
+ \item 超出課程表工作日範圍嘅課程盒子將唔會顯示,只會返回一條警告.
+ \end{itemize}
+\end{function}
+
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday} \oarg{integral value}
+ \end{syntax}
+
+ 此命令有一個可選參數,可令其後面添加嘅課程盒子後移 \meta{intergal value} 個工作日. 可選參數嘅默認值為\cmd{1},即後移\cmd{1}個工作日.
+\end{function}
+
+\clearpage
+\appendix
+
+\section{最小工作範例}\label{mwe}
+
+此MWE建置嘅課程表有13行但系得前12行标注时间,課程表顶部共有五个工作日,工作日之间嘅宽度比例为$4:5:4:6:5$,键 \keys{\cmdmac~weeks} 嘅默认值畀赋为 \cmd{Weeks 1 - 16}. 添加咗註解同兩個課程盒子.
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+
+ \begin{document}
+
+ \timelist [ 13 ]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist [ Weeks 1 - 16 ]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more { Author: Mingyu Xia \& Lijun Guo }
+
+ \begin{tikzpicture} [ remember picture, overlay ]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
+
+ \end{document}
+ \end{verbatim}
+\end{framed}
+
+\includepdf[pages = 1]{litetable-demo.pdf}
+
+\end{document}
+
+% End of file litetable-hk.tex
diff --git a/macros/latex/contrib/litetable/tex/litetable.cls b/macros/latex/contrib/litetable/tex/litetable.cls
index a52c0d5abd..e880e33b7d 100644
--- a/macros/latex/contrib/litetable/tex/litetable.cls
+++ b/macros/latex/contrib/litetable/tex/litetable.cls
@@ -1,314 +1,459 @@
-%% ************************************************************************************************************
-%% ****************************************************** *
-%% * This work may be distributed and/or modified under * * ***** * * *
-%% * the conditions of the LaTeX Project Public License * * ** * * *** * * *
-%% * http://www.latex-project.org/lppl.txt * * * ** * ***** * *
-%% * either version 1.3c of this license or any later * * * ** * ***** * *
-%% * version. * * * ** * * * * *
-%% ****************************************************** ***** ** * * *** * * *
-%% start of file `litetable.cls'. *
-%% Copyright 2023-2024 LiteLaTeX (xiamyphys@gmail.com) *
-%% available at https://github.com/xiamyphys/LiteTable *
-% !Mode:: "TeX:UTF-8" *
-%% ************************************************************************************************************
-\NeedsTeXFormat{LaTeX2e}
-\PassOptionsToPackage{quiet}{xeCJK}
-\PassOptionsToPackage{no-math}{fontspec}
-\ProvidesClass{litetable}[2024/03/03/ v2.4c LiteTable document class]
+%% *********************************************************************
+%% Copyright 2024 by M.Y. XIA <xiamyphys@gmail.com> *
+%% *
+%% This work may be distributed and/or modified under the *
+%% conditions of the LaTeX Project Public License *
+%% *
+%% http://www.latex-project.org/lppl.txt *
+%% *
+%% either version 1.3c of this license or any later version. *
+%% *
+%% This work has the LPPL maintenance status `maintained'. *
+%% *
+%% The Current Maintainers of this work are M.Y. XIA & L.J. Guo *
+%% *
+%% This work consists of the files litetable.cls, *
+%% and README.md. *
+%% available at https://github.com/xiamyphys/litetable *
+%% *********************************************************************
+\RequirePackage{xparse}% For TeX Live 2019 - 2020 Compatibility
+\ProvidesExplClass {litetable} {2024/10/13} {3.1D} {Course Schedule}
-% ---------- 全局选项 ---------- %
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{family=LITE, prefix=LITE@, setkeys=\kvsetkeys}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions\relax
+\LoadClass{article}
-\DeclareStringOption[portiait]{direction}
-\DeclareVoidOption{portiait}{\kvsetkeys{LITE}{direction=portiait}}
-\DeclareVoidOption{landscape}{\kvsetkeys{LITE}{direction=landscape}}
+\pagestyle{empty}
+\RequirePackage{tikz}
-\DeclareStringOption[times]{font}
-\DeclareVoidOption{times}{\kvsetkeys{LITE}{font=times}}
-\DeclareVoidOption{libertinus}{\kvsetkeys{LITE}{font=libertinus}}
-
-\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{standalone}}
-\ProcessKeyvalOptions*\relax
-
-\LoadClass[tikz]{standalone}
-
-% ---- 文本中的数字 & 字母设置 ---- %
-\RequirePackage{xeCJK}
-\setCJKfamilyfont{zhhei}{Heiti SC}
-\newcommand*\heiti{\CJKfamily{zhhei}}
-\ifdefstring{\LITE@font}{libertinus}{
-\RequirePackage{libertine}
-}{\relax}
-\ifdefstring{\LITE@font}{times}{
-\ifXeTeX
- \RequirePackage[no-math]{fontspec}
- \setmainfont{texgyretermes}[
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- Extension = .otf ,
- Scale = 1.0]
- \setsansfont{texgyreheros}[
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- Extension = .otf ,
- Scale = 0.9]
-\else
- \RequirePackage{newtxtext}
- \RequirePackage[scaled=.90]{helvet}
-\fi
-}{\relax}
-
-% ---------- 色彩组合 ---------- %
-\definecolor{darkgray}{HTML}{727477} % 时间颜色
-\definecolor{darkergray}{HTML}{F1F3F5} % 深色块
-\definecolor{lightergray}{HTML}{FCFDFE} % 浅色块
-\definecolor{blackgray}{HTML}{1A1D21} % 序号颜色
-\definecolor{SEM}{HTML}{DEEAF8} % 学期按钮
-\definecolor{SEM*}{HTML}{3085F3}
-\definecolor{SEM**}{HTML}{007DC3}
-\pagecolor{lightergray}
-\definecolor{H1}{HTML}{74A7A2} % 深绿
-\definecolor{H1*}{HTML}{E9EEED}
-\definecolor{H1**}{HTML}{009787}
-\definecolor{H2}{HTML}{50C9BD} % 浅绿
-\definecolor{H2*}{HTML}{E1F3F2}
-\definecolor{H2**}{HTML}{009D8F}
-\definecolor{H3}{HTML}{86AFFE} % 深蓝
-\definecolor{H3*}{HTML}{DBE7FF}
-\definecolor{H3**}{HTML}{1663F5}
-\definecolor{H4}{HTML}{6BC0EB} % 浅蓝
-\definecolor{H4*}{HTML}{D8EFFA}
-\definecolor{H4**}{HTML}{0072B1}
-\definecolor{H5}{HTML}{D58DFB} % 深紫
-\definecolor{H5*}{HTML}{F2E3FB}
-\definecolor{H5**}{HTML}{A83FDF}
-\definecolor{H6}{HTML}{FF9393} % 浅紫
-\definecolor{H6*}{HTML}{FFDEDE}
-\definecolor{H6**}{HTML}{E73030}
-\definecolor{H7}{HTML}{FFA17D} % 深橙
-\definecolor{H7*}{HTML}{F5E1DA}
-\definecolor{H7**}{HTML}{E2612F}
-\definecolor{H8}{HTML}{F3C06A} % 浅橙
-\definecolor{H8*}{HTML}{F3EADB}
-\definecolor{H8**}{HTML}{E09B14}
-\definecolor{H9}{HTML}{D09966} % 棕色
-\definecolor{H9*}{HTML}{F2E0D0}
-\definecolor{H9**}{HTML}{C96F1C}
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
-
-\usetikzlibrary{calc}
-\ifdefstring{\LITE@direction}{portiait}{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
- \def\rotatepage{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
- }
- \def\rerotatepage{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
+% Module for texlive 2021 and later (by @ljguo)
+\cs_if_exist:NF \clist_put_right:Ne
+ { \cs_generate_variant:Nn \clist_put_right:Nn { Ne } }
+\cs_if_exist:NF \clist_set:Ne
+ { \cs_generate_variant:Nn \clist_set:Nn { Ne } }
+\cs_if_exist:NT \clist_count:e
+ { \cs_generate_variant:Nn \clist_count:n { e } }
+\cs_if_exist:NF \exp_args:NNNe
+ {
+ \cs_new:Npn \exp_args:NNNe #1#2#3#4
+ {
+ \exp_after:wN #1
+ \exp_after:wN #2
+ \exp_after:wN #3
+ \tex_expanded:D { {#4} }
+ }
}
-}{\relax}
-\ifdefstring{\LITE@direction}{landscape}{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
- \def\rotatepage{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
+% Module for left -> right data structure (by @ljguo)
+\cs_new_protected_nopar:Npn \__litetable_get_left:nN #1#2
+ {
+ \group_begin:
+ \seq_set_split:Nnn \l__litetable_tmpa_seq { -> } {#1}
+ \exp_args:NNNe \group_end: \tl_set:Nn #2
+ { \seq_item:Nn \l__litetable_tmpa_seq { 1 } }
}
- \def\rerotatepage{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
+\cs_new_protected_nopar:Npn \__litetable_get_right:nN #1#2
+ {
+ \group_begin:
+ \seq_set_split:Nnn \l__litetable_tmpa_seq { -> } {#1}
+ \exp_args:NNNe \group_end: \tl_set:Nn #2
+ { \seq_item:Nn \l__litetable_tmpa_seq { 2 } }
}
-}{\relax}
-
-\ExplSyntaxOn % 数组
-% 1. Set up arrays
-\def\definearray#1#2
- {
- \seq_clear_new:c { l__litetable_array_#1_seq }
- \seq_set_split:cnn { l__litetable_array_#1_seq } { ; } { #2 }
- }
-
-\cs_generate_variant:Nn \seq_set_split:Nnn { c }
+\cs_generate_variant:Nn \__litetable_get_left:nN { e }
+\cs_generate_variant:Nn \__litetable_get_right:nN { e }
-% 2. Define commands to work with arrays
-\NewExpandableDocumentCommand{\arraycount}{ o m }
- {
- \IfNoValueTF { #1 }
- {
- \litetable_array_count_full:n { #2 }
- }
- {
- \litetable_array_count_item:nn { #2 } { #1 }
- }
- }
-
-\cs_new:Nn \litetable_array_count_item:nn
- {
- \clist_count:e { \seq_item:cn { l__litetable_array_#1_seq } { #2 } }
- }
+\int_new:N \l__time_num_int
+\dim_new:N \l__time_vunit_dim
+\cs_new_protected:Npn \litetable_msg_new:nn #1#2
+ { \msg_new:nnn { litetable } {#1} {#2} }
+\cs_new_protected:Npn \litetable_msg_warning:n #1
+ { \msg_warning:nn { litetable } {#1} }
+\litetable_msg_new:nn { timelist }
+ { \exp_not:N \timelist~extra~time~group(s)~were~ignored }
+\cs_new_protected_nopar:Npn \litetable_timelist:nn #1#2
+ {
+ \clist_set:Nn \l__litetable_timelist_clist {#2}
+ \tl_if_empty:nTF {#1}
+ {
+ \int_set:Nn \l__time_num_int
+ { \clist_count:N \l__litetable_timelist_clist }
+ }
+ {
+ \int_set:Nn \l__time_num_int {#1}
+ \int_compare:nNnTF {#1} <
+ { \clist_count:N \l__litetable_timelist_clist }
+ {
+ \int_set:Nn \l__time_num_int
+ { \clist_count:N \l__litetable_timelist_clist }
+ \litetable_msg_warning:n { timelist }
+ }
+ { \int_set:Nn \l__time_num_int {#1} }
+ }
+ \dim_set:Nn \l__time_vunit_dim
+ { \fp_eval:n { 1/( 2\l__time_num_int + 3.5 ) } \paperheight }
+ }
+\NewDocumentCommand \timelist { O{} m O{} }
+ { \litetable_timelist:nn { #1 #3 } {#2} }
-\NewExpandableDocumentCommand{\arrayitem}{ m m m }
- {
- \clist_item:en { \seq_item:cn { l__litetable_array_#1_seq } { #2 } } { #3 }
- }
+\clist_new:N \l__week_ratio_clist
+\clist_new:N \l__week_accum_clist
+\int_new:N \l__week_num_int
+\dim_new:N \l__week_hunit_dim
+\cs_new_protected_nopar:Npn \litetable_weeklist:nn #1#2
+ {
+ \tl_set:Nn \l__default_weeks_tl {#1}
+ \clist_set:Nn \l__litetable_weeklist_clist {#2}
+ \int_step_inline:nn
+ { \clist_count:N \l__litetable_weeklist_clist }
+ {
+ \__litetable_get_right:eN
+ {
+ \clist_item:Nn \l__litetable_weeklist_clist {##1}
+ } \l__litetable_tmpb_tl
+ \clist_put_right:Ne \l__week_ratio_clist
+ { \l__litetable_tmpb_tl }
+ }
+ \int_step_inline:nn
+ { \clist_count:N \l__litetable_weeklist_clist }
+ {
+ \clist_clear:N \l__week_accumtmp_clist
+ \int_step_inline:nn {##1}
+ {
+ \clist_put_right:Ne \l__week_accumtmp_clist
+ { \clist_item:Nn \l__week_ratio_clist {####1} }
+ }
+ \clist_put_right:Ne \l__week_accum_clist
+ { \int_eval:n { \clist_use:Nn \l__week_accumtmp_clist { + } } }
+ }
+ \int_set:Nn \l__week_num_int
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \clist_count:N \l__litetable_weeklist_clist }
+ }
+ \dim_set:Nn \l__week_hunit_dim
+ { \fp_eval:n { 1/\l__week_num_int * 14/15 } \paperwidth }
+ }
+\NewDocumentCommand \weeklist { O{} m O{} }
+ { \litetable_weeklist:nn { #1 #3 } {#2} }
-\ExplSyntaxOff
+\NewDocumentCommand \more { m }
+ { \tl_set:Nn \l__litetable_comment_tl {#1} }
-\NewDocumentCommand{\timelist}{ o m }
-{
- \gdef\@timelist{#2}
- \definearray{timelist}{#2}
- \IfNoValueTF{#1}{
- \ifnum \arraycount[2]{timelist}<\arraycount[1]{timelist}
- \def\@classnum{\arraycount[1]{timelist}}
- \else
- \def\@classnum{\arraycount[2]{timelist}}
- \fi
- }{\def\@classnum{#1}}
-}
-\ifcsname @timelist\endcsname
- \relax
- \else
- \def\@classnum{12}
-\fi
-\def\weeklist#1{
- \gdef\@weeklist{#1}
- \definearray{weeklist}{#1}
-}
-\gdef\@weeknum{\arraycount[1]{weeklist}}
+\int_new:N \l__litetable_week_day_int
+\int_set:Nn \l__litetable_week_day_int { 1 }
+\NewDocumentCommand \newday { O{1} }
+ { \int_add:Nn \l__litetable_week_day_int {#1} }
-\RequirePackage{fontawesome5}
-\RequirePackage[hidelinks]{hyperref}
-\newcounter{number}
-\tikzset{
- hyperlink node/.style={
- alias=sourcenode,
- append after command={
- let \p1 = (sourcenode.north west),
- \p2 = (sourcenode.south east),
- \n1 = {\x2-\x1}, \n2 = {\y1-\y2} in
- node [inner sep=0pt, outer sep=auto, anchor=north west,at=(\p1)]
- {\Acrobatmenu{#1}{\XeTeXLinkBox{\phantom{\rule{\n1}{\n2}}}}}
- }
+\keys_define:nn { litetable / frame }
+ {
+ sem.tl_set:N = \l__bg_sem_tl,
+ color.tl_set:N = \l__bg_color_tl,
+ color.initial:n = gray
}
-}
-\NewDocumentCommand{\makeframe}{ o m }{
- \draw [lightergray] (0,0) rectangle (\pagewidth,\pageheight);
- \fill [fill=darkergray] (0,0) rectangle (\pagewidth,{1.5*\pageheight/(2*\@classnum+3.5)});% 顶部深灰色块
- \node at (.5*\pagewidth,{.75*\pageheight/(2*\@classnum+3.5)}) {\huge\bfseries\sffamily #2}; % 标题
- \IfNoValueF{#1}{
- \node [outer sep=auto,hyperlink node=NextPage,left,rectangle,fill=SEM,text=SEM*,draw=none,inner sep=1.75ex,rounded corners=6pt] at (.98*\pagewidth,{.75*\pageheight/(2*\@classnum+3.5)}) {\large\sffamily\;$\rightleftharpoons$~#1\;}; % 学期
+\cs_new_protected_nopar:Npn \litetable_maketable:nn #1
+ {
+ \fill [ \l__bg_color_tl!5 ]
+ (current~page.north~west) rectangle +
+ (\paperwidth, -1.5\l__time_vunit_dim)
+ node [ midway, black, font = \huge\bfseries ] {#1};
+ \tl_if_empty:NF { \l__bg_sem_tl }
+ {
+ \node [ shift = {(-.02\paperwidth, -.75\l__time_vunit_dim)},
+ left, rectangle, fill = DarkBlue!10, text = DarkBlue!60,
+ inner~sep = 2ex, rounded~corners = 8pt, font = \large
+ ] at (current~page.north~east)
+ { \ensuremath\rightleftharpoons\ \l__bg_sem_tl };
+ }
+ % Darker Blocks
+ \int_step_inline:nnnn { 0 } { 2 } { \l__time_num_int }
+ {
+ \filldraw
+ [ fill = \l__bg_color_tl!5, draw = gray,
+ thick, densely~dashed, line~cap = round
+ ]
+ ([shift = {(-.4pt, \fp_eval:n { - 2 * ##1 - 2.5 } \l__time_vunit_dim)}]
+ current~page.north~west
+ ) rectangle + (\paperwidth + .8pt, -2\l__time_vunit_dim);
+ }
+ % Classes numbering
+ \clist_if_empty:NTF { \l__litetable_timelist_clist }
+ {
+ \int_step_inline:nn { \l__time_num_int }
+ {
+ \node
+ [ shift =
+ {(
+ \paperwidth/30,
+ \fp_eval:n { - 2 * ##1 - 1.5 } \l__time_vunit_dim
+ )}, darkgray!80, font = \large\ttfamily\bfseries
+ ] at (current~page.north~west) {##1};
+ }
+ }
+ {
+ \int_step_inline:nn { \l__time_num_int }
+ {
+ \node
+ [ shift =
+ {(
+ \paperwidth/30,
+ \fp_eval:n { - 2 * ##1 - 1 } \l__time_vunit_dim
+ )}, darkgray!80, font = \large\ttfamily\bfseries
+ ] at (current~page.north~west) {##1};
+ }
+ % Classes time
+ \int_step_inline:nn
+ { \clist_count:N \l__litetable_timelist_clist }
+ {
+ \__litetable_get_left:eN
+ {
+ \clist_item:Nn \l__litetable_timelist_clist {##1}
+ } \l__litetable_tmpa_tl
+ \__litetable_get_right:eN
+ {
+ \clist_item:Nn \l__litetable_timelist_clist {##1}
+ } \l__litetable_tmpb_tl
+ \node
+ [ shift =
+ {(
+ \paperwidth/30,
+ \fp_eval:n { - 1.9 - 2 * ##1 } \l__time_vunit_dim
+ )}, gray, font = \ttfamily, align = center
+ ] at (current~page.north~west)
+ { \l__litetable_tmpa_tl\\\l__litetable_tmpb_tl };
+ }
+ }
+ % Weekdays
+ \int_step_inline:nn
+ { \clist_count:N \l__litetable_weeklist_clist }
+ {
+ \__litetable_get_left:eN
+ {
+ \clist_item:Nn \l__litetable_weeklist_clist {##1}
+ } \l__litetable_tmpa_tl
+ \node
+ [ shift =
+ {(\fp_eval:n
+ {(
+ \clist_item:Nn \l__week_accum_clist {##1} -
+ \clist_item:Nn \l__week_ratio_clist {##1}/2
+ )/\l__week_num_int * 14/15 + 1/15
+ } \paperwidth, -2\l__time_vunit_dim
+ )},
+ font = \large\bfseries
+ ] at (current~page.north~west) { \l__litetable_tmpa_tl };
+ }
+ % Comment
+ \tl_if_empty:NF \l__litetable_comment_tl
+ {
+ \node [ yshift = .5\l__time_vunit_dim, left = 1ex,
+ darkgray, font = \small\bfseries
+ ] at (current~page.south~east)
+ { \l__litetable_comment_tl };
+ }
+ \tl_gclear:N \l__litetable_comment_tl
+ }
+\NewDocumentCommand \maketable { O{} m O{} }
+ {
+ \group_begin:
+ \keys_set:nn { litetable / frame } { #1 #3 }
+ \litetable_maketable:nn {#2}
+ \group_end:
}
- \ifodd\@classnum
- \foreach \a in {2,4,...,\@classnum,\@classnum+2}
- \fill [fill=darkergray,yshift=(2*\a-1.5)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{2*\pageheight/(2*\@classnum+3.5)}); % 中间深灰色块(循环)
- \else
- \foreach \a in {2,4,...,\@classnum}
- \fill [fill=darkergray,yshift=(2*\a-1.5)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{2*\pageheight/(2*\@classnum+3.5)}); % 中间深灰色块(循环)
- \fill [fill=darkergray,yshift=(2.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{\pageheight/(2*\@classnum+3.5)}); % 底部深灰色块
- \fi
- \foreach \a in {0,1,2,...,\@classnum}
- \draw [densely dashed,gray!75,yshift=(2.5+2*\a)*\pageheight/(2*\@classnum+3.5)] (0,0)--(\pagewidth,0); % 分割虚线
-
- % 时间标注
- \setcounter{number}{0}
- \ifcsempty{@timelist}{
- \foreach \a in {1,2,...,\@classnum}
- {
- \node [yshift=(1.5+2*\a)*\pageheight/(2*\@classnum+3.5)] at(\pagewidth/32,0)
- {\bfseries\large\color{blackgray}\texttt{\refstepcounter{number}\thenumber}};
- }
- }{
- \foreach \x in {1,2,...,\@classnum}
+\keys_define:nn { litetable / course }
+ {
+ color.tl_set:N = \l__course_color_tl,
+ color.initial:n = teal,
+ subject.tl_set:N = \l__course_subject_tl,
+ teacher.tl_set:N = \l__course_teacher_tl,
+ location.tl_set:N = \l__course_location_tl,
+ weeks.tl_set:N = \l__default_weeks_tl,
+ weeks.initial:n = \l__default_weeks_tl,
+ }
+\dim_new:N \l__course_infoshift_dim
+\cs_new_protected_nopar:Npn \__litetable_course_box_aux:nn #1#2
+ {
+ % Course box fg
+ \begin{scope}
+ \clip [ preaction = { draw, ultra~thick, \l__course_color_tl!60 },
+ preaction = { fill, \l__course_color_tl!10 },
+ rounded~corners = 8pt
+ ] ([shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }
+ } \l__week_hunit_dim + \paperwidth/15 + 1.2pt,
+ \fp_eval:n { - .5 - 2 * #1 } \l__time_vunit_dim - 1.2pt
+ )}
+ ]current~page.north~west) rectangle +
+ (
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int } \l__week_hunit_dim - 2.4pt,
+ \fp_eval:n { 2 * ( #1 - #2 - 1 ) } \l__time_vunit_dim + 2.4pt
+ );
+ % Course box bg
+ \fill [ \l__course_color_tl!60 ]
+ ([shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }
+ } \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - .5 - 2 * #1 } \l__time_vunit_dim
+ )}
+ ]current~page.north~west) rectangle +
+ (
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int } \l__week_hunit_dim,
+ -\l__time_vunit_dim/2
+ );
+ \end{scope}
+ % Course info
+ \tl_if_eq:NNTF {#1} {#2}% Single-unit height course box
{
- \node [yshift=(2*\x+.9)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\bfseries\color{blackgray}\texttt{\refstepcounter{number}\thenumber}};
- \node[yshift=(2*\x+1.55)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\color{darkgray}\texttt{\arrayitem{timelist}{1}{\x}}};
- \node[yshift=(2*\x+2.1)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\color{darkgray}\texttt{\arrayitem{timelist}{2}{\x}}};
- }
+ \bool_if:nTF
+ {
+ \tl_if_empty_p:N \l__course_location_tl &&
+ \tl_if_empty_p:N \l__course_teacher_tl
+ }
+ { \tl_set:Nn \l_shortcourse_anchor_tl { } }
+ { \tl_set:Nn \l_shortcourse_anchor_tl { above } }
+ \cs_if_exist:NT { \l__course_subject_tl }
+ {
+ \node
+ [ shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }/2
+ } \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - 1.75 - #1 - #2 } \l__time_vunit_dim
+ )}, align = center, font = \large\bfseries,
+ \l_shortcourse_anchor_tl, \l__course_color_tl!60
+ ] at (current~page.north~west) { \l__course_subject_tl };
+ }
+ \bool_if:nTF
+ {
+ !\tl_if_empty_p:N \l__course_location_tl &&
+ !\tl_if_empty_p:N \l__course_teacher_tl
+ }
+ { \tl_set:Nn \l_shortcourse_sep_tl { ,~ } }
+ { \tl_set:Nn \l_shortcourse_sep_tl { } }
+ \node
+ [ shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }/2
+ } \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - 1.75 - #1 - #2 } \l__time_vunit_dim
+ )}, below, \l__course_color_tl!60, align = center
+ ] at (current~page.north~west)
+ {
+ \tl_if_exist:NT { \l__course_location_tl }
+ { \l__course_location_tl }
+ \l_shortcourse_sep_tl
+ \tl_if_exist:NT { \l__course_teacher_tl }
+ { \l__course_teacher_tl }
+ };
+ }
+ {
+ \bool_if:nTF% Multiply-unit height course box
+ {
+ \tl_if_empty_p:N \l__course_location_tl &&
+ \tl_if_empty_p:N \l__course_teacher_tl
+ }
+ {
+ \tl_set:Nn \l_course_anchor_tl { }
+ \dim_set:Nn \l__course_infoshift_dim { 0pt }
+ }
+ {
+ \tl_set:Nn \l_course_anchor_tl { above }
+ \dim_set:Nn \l__course_infoshift_dim { \l__time_vunit_dim/8 }
+ }
+ \cs_if_exist:NT { \l__course_subject_tl }
+ {
+ \node
+ [ shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }/2
+ } \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - 1.5 - #1 - #2 } \l__time_vunit_dim +
+ \l__course_infoshift_dim
+ )}, font = \large\bfseries, \l_course_anchor_tl,
+ \l__course_color_tl!60, align = center
+ ] at (current~page.north~west) { \l__course_subject_tl };
+ }
+ \bool_if:nTF
+ {
+ !\tl_if_empty_p:N \l__course_location_tl &&
+ !\tl_if_empty_p:N \l__course_teacher_tl
+ }
+ { \tl_set:Nn \l_courseinfo_sep_tl { \\ } }
+ { \tl_set:Nn \l_courseinfo_sep_tl { } }
+ \node
+ [ shift =
+ {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int } -
+ \clist_item:Nn \l__week_ratio_clist
+ { \l__litetable_week_day_int }/2
+ } \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - 1.625 - #1 - #2 } \l__time_vunit_dim
+ )}, below, \l__course_color_tl!60, align = center
+ ] at (current~page.north~west)
+ {
+ \tl_if_exist:NT { \l__course_location_tl }
+ { \l__course_location_tl }
+ \l_courseinfo_sep_tl
+ \tl_if_exist:NT { \l__course_teacher_tl }
+ { \l__course_teacher_tl }
+ };
+ \node
+ [ shift =
+ {(\clist_item:Nn \l__week_accum_clist
+ { \l__litetable_week_day_int }
+ \l__week_hunit_dim + \paperwidth/15,
+ \fp_eval:n { - 2.5 - 2 * #2 } \l__time_vunit_dim
+ )}, above~left, \l__course_color_tl!60, outer~sep = .5ex
+ ] at (current~page.north~west) { \l__default_weeks_tl };
+ }
+ }
+\litetable_msg_new:nn { course }
+ { \exp_not:N \course~box(s)~exceed~workdays~were~ignored }
+\NewDocumentCommand \course { O{} m O{} m O{} }
+ {
+ \group_begin:
+ \int_compare:nNnTF { \l__litetable_week_day_int - 1 } <
+ { \clist_count:N \l__litetable_weeklist_clist }
+ {
+ \keys_set:nn { litetable / course } { #1 #3 #5 }
+ \__litetable_course_box_aux:nn {#2} {#4}
+ }
+ { \litetable_msg_warning:n { course } }
+ \group_end:
}
- % 星期标注
- \foreach \a in {1,2,...,\@weeknum}
- \node [xshift=\pagewidth/16] at ({.5*(\arrayitem{weeklist}{2}{\a}+\arrayitem{weeklist}{2}{\a+1})*15*\pagewidth/16},{2*\pageheight/(2*\@classnum+3.5)})
- {\arrayitem{weeklist}{1}{\a}};
-
- \ifcsname @sticker\endcsname
- \node [opacity=.3,above left,yshift=(1.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5),inner sep=0pt,outer sep=auto,scale=15] at (\pagewidth,{\pageheight/(2*\@classnum+3.5)}) {\includegraphics[width=\dimeval{\pagewidth/16/\@weeknum}]{\@sticker}};\fi
-}
-
-\newcounter{weekday}
-\def\newday{\addtocounter{weekday}{1}}
-\AtEndEnvironment{tikzpicture}{\setcounter{weekday}{0}}
-\def\sticker#1{\gdef\@sticker{#1}}
-\def\corner#1{\gdef\@corner{#1}}
-\def\weeks#1{\gdef\@weeks{#1}}
-
-\NewDocumentCommand{\course}{O{H1} m m m m m O{\@weeks}}
-{
- \ifcsname @corner\endcsname
- \tikzset{corner/.style={rounded corners=\@corner}}
- \else
- \tikzset{corner/.style={}}
- \fi
- \fill [#1,corner,
- yshift=(2*(#2-1))*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16]
- ({\arrayitem{weeklist}{2}{\theweekday+1}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)}) rectangle ++
- ({(\arrayitem{weeklist}{2}{\theweekday+2}-\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},{(2+2*(#3-#2))*\pageheight/(2*\@classnum+3.5)}); % frame
-
- \fill [#1*,
- yshift=(2*(#2-1)+.5)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16]
- ({\arrayitem{weeklist}{2}{\theweekday+1}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)}) --++
- ({(\arrayitem{weeklist}{2}{\theweekday+2}-\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},0)
- { [corner] --++ (0,{(1.5+2*(#3-#2))*\pageheight/(2*\@classnum+3.5)}) --++
- ({(-\arrayitem{weeklist}{2}{\theweekday+2}+\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},0)} -- cycle; % content
-
- \node [#1**,yshift=(#2+#3-1.25)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\large\bfseries #4}; % course
-
- \node [#1**,above,
- yshift=(#2+#3-.2)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\bfseries\small #5}; % location
-
- \node [#1**,below,
- yshift=(#2+#3-.2)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\bfseries\small #6}; % teacher
-
- \ifcsname @weeks\endcsname
- \node [#1**,above left,
- yshift=2*#3*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({\arrayitem{weeklist}{2}{\theweekday+2}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\footnotesize #7};
- \fi % weeks
-}
+\endinput
-\def\more#1{
- \node [xshift=-1em,yshift=(2.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5),left] at (\pagewidth,{.5*\pageheight/(2*\@classnum+3.5)}){\small\bfseries\color{darkgray}#1};
-} \ No newline at end of file
+% End of file litetable.cls
diff --git a/macros/latex/contrib/llncs/README.md b/macros/latex/contrib/llncs/README.md
index 6725e4cb19..23f2d39967 100644
--- a/macros/latex/contrib/llncs/README.md
+++ b/macros/latex/contrib/llncs/README.md
@@ -1,6 +1,6 @@
# llncs
-_2024/01/29 v2.24_
+_2024/10/21 v2.25_
Copyright (c) 1996-2024 Springer
diff --git a/macros/latex/contrib/llncs/history.txt b/macros/latex/contrib/llncs/history.txt
index c58f6f446b..b7d0f90d46 100644
--- a/macros/latex/contrib/llncs/history.txt
+++ b/macros/latex/contrib/llncs/history.txt
@@ -2,6 +2,8 @@ Version history for the LLNCS LaTeX2e class
date filename version action/reason/acknowledgements
----------------------------------------------------------------------------
+21.10.24 llncs.cls 2.25 more bugfixes for the babel language switches
+
29.01.24 llncs.cls 2.24 bugfixes for options envcountsame and envcountsect
02.11.23 llncs.cls 2.23 \ackname changed from "Acknowledgements" (BE) to
diff --git a/macros/latex/contrib/llncs/llncs.cls b/macros/latex/contrib/llncs/llncs.cls
index ea17bb35f5..e2e2225282 100644
--- a/macros/latex/contrib/llncs/llncs.cls
+++ b/macros/latex/contrib/llncs/llncs.cls
@@ -1,4 +1,4 @@
-% LLNCS DOCUMENT CLASS -- version 2.24 (29-Jan-2024)
+% LLNCS DOCUMENT CLASS -- version 2.25 (21-Oct-2024)
% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
%
%%
@@ -19,7 +19,7 @@
%% Right brace \} Tilde \~}
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{llncs}[2024/01/29 v2.24
+\ProvidesClass{llncs}[2024/10/21 v2.25
^^J LaTeX document class for Lecture Notes in Computer Science]
% Options
\let\if@envcntreset\iffalse
@@ -77,123 +77,123 @@
\fi}
%
\def\switcht@albion{%
-\def\abstractname{Abstract.}
-\def\ackname{Acknowledgments.}
-\def\andname{and}
-\def\lastandname{\unskip, and}
-\def\appendixname{Appendix}
-\def\chaptername{Chapter}
-\def\claimname{Claim}
-\def\conjecturename{Conjecture}
-\def\contentsname{Table of Contents}
-\def\corollaryname{Corollary}
-\def\definitionname{Definition}
-\def\discintname{Disclosure of Interests.}
-\def\examplename{Example}
-\def\exercisename{Exercise}
-\def\figurename{Fig.}
-\def\keywordname{{\bf Keywords:}}
-\def\indexname{Index}
-\def\lemmaname{Lemma}
-\def\contriblistname{List of Contributors}
-\def\listfigurename{List of Figures}
-\def\listtablename{List of Tables}
-\def\mailname{{\it Correspondence to\/}:}
-\def\noteaddname{Note added in proof}
-\def\notename{Note}
-\def\partname{Part}
-\def\problemname{Problem}
-\def\proofname{Proof}
-\def\propertyname{Property}
-\def\propositionname{Proposition}
-\def\questionname{Question}
-\def\remarkname{Remark}
-\def\seename{see}
-\def\solutionname{Solution}
-\def\subclassname{{\it Subject Classifications\/}:}
-\def\tablename{Table}
-\def\theoremname{Theorem}}
+\def\abstractname{Abstract.}%
+\def\ackname{Acknowledgments.}%
+\def\andname{and}%
+\def\lastandname{\unskip, and}%
+\def\appendixname{Appendix}%
+\def\chaptername{Chapter}%
+\def\claimname{Claim}%
+\def\conjecturename{Conjecture}%
+\def\contentsname{Table of Contents}%
+\def\corollaryname{Corollary}%
+\def\definitionname{Definition}%
+\def\discintname{Disclosure of Interests.}%
+\def\examplename{Example}%
+\def\exercisename{Exercise}%
+\def\figurename{Fig.}%
+\def\keywordname{{\bf Keywords:}}%
+\def\indexname{Index}%
+\def\lemmaname{Lemma}%
+\def\contriblistname{List of Contributors}%
+\def\listfigurename{List of Figures}%
+\def\listtablename{List of Tables}%
+\def\mailname{{\it Correspondence to\/}:}%
+\def\noteaddname{Note added in proof}%
+\def\notename{Note}%
+\def\partname{Part}%
+\def\problemname{Problem}%
+\def\proofname{Proof}%
+\def\propertyname{Property}%
+\def\propositionname{Proposition}%
+\def\questionname{Question}%
+\def\remarkname{Remark}%
+\def\seename{see}%
+\def\solutionname{Solution}%
+\def\subclassname{{\it Subject Classifications\/}:}%
+\def\tablename{Table}%
+\def\theoremname{Theorem}}%
\switcht@albion
% Names of theorem like environments are already defined
% but must be translated if another language is chosen
%
% French section
\def\switcht@francais{%\typeout{On parle francais.}%
- \def\abstractname{R\'esum\'e.}%
- \def\ackname{Remerciements.}%
- \def\andname{et}%
- \def\lastandname{ et}%
- \def\appendixname{Appendice}%
- \def\chaptername{Chapitre}%
- \def\claimname{Pr\'etention}%
- \def\conjecturename{Hypoth\`ese}%
- \def\contentsname{Table des mati\`eres}%
- \def\corollaryname{Corollaire}%
- \def\definitionname{D\'efinition}%
- \def\discintname{Mention des Int\'{e}r\^{e}ts.}
- \def\examplename{Exemple}%
- \def\exercisename{Exercice}%
- \def\figurename{Fig.}%
- \def\keywordname{{\bf Mots-cl\'e:}}%
- \def\indexname{Index}%
- \def\lemmaname{Lemme}%
- \def\contriblistname{Liste des contributeurs}%
- \def\listfigurename{Liste des figures}%
- \def\listtablename{Liste des tables}%
- \def\mailname{{\it Correspondence to\/}:}%
- \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
- \def\notename{Remarque}%
- \def\partname{Partie}%
- \def\problemname{Probl\`eme}%
- \def\proofname{Preuve}%
- \def\propertyname{Caract\'eristique}%
+\def\abstractname{R\'esum\'e.}%
+\def\ackname{Remerciements.}%
+\def\andname{et}%
+\def\lastandname{ et}%
+\def\appendixname{Appendice}%
+\def\chaptername{Chapitre}%
+\def\claimname{Pr\'etention}%
+\def\conjecturename{Hypoth\`ese}%
+\def\contentsname{Table des mati\`eres}%
+\def\corollaryname{Corollaire}%
+\def\definitionname{D\'efinition}%
+\def\discintname{Mention des Int\'{e}r\^{e}ts.}%
+\def\examplename{Exemple}%
+\def\exercisename{Exercice}%
+\def\figurename{Fig.}%
+\def\keywordname{{\bf Mots-cl\'e:}}%
+\def\indexname{Index}%
+\def\lemmaname{Lemme}%
+\def\contriblistname{Liste des contributeurs}%
+\def\listfigurename{Liste des figures}%
+\def\listtablename{Liste des tables}%
+\def\mailname{{\it Correspondence to\/}:}%
+\def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
+\def\notename{Remarque}%
+\def\partname{Partie}%
+\def\problemname{Probl\`eme}%
+\def\proofname{Preuve}%
+\def\propertyname{Caract\'eristique}%
%\def\propositionname{Proposition}%
- \def\questionname{Question}%
- \def\remarkname{Remarque}%
- \def\seename{voir}%
- \def\solutionname{Solution}%
- \def\subclassname{{\it Subject Classifications\/}:}%
- \def\tablename{Tableau}%
- \def\theoremname{Th\'eor\`eme}%
+\def\questionname{Question}%
+\def\remarkname{Remarque}%
+\def\seename{voir}%
+\def\solutionname{Solution}%
+\def\subclassname{{\it Subject Classifications\/}:}%
+\def\tablename{Tableau}%
+\def\theoremname{Th\'eor\`eme}%
}
%
% German section
\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%
- \def\abstractname{Zusammenfassung.}%
- \def\ackname{Danksagung.}%
- \def\andname{und}%
- \def\lastandname{ und}%
- \def\appendixname{Anhang}%
- \def\chaptername{Kapitel}%
- \def\claimname{Behauptung}%
- \def\conjecturename{Hypothese}%
- \def\contentsname{Inhaltsverzeichnis}%
- \def\corollaryname{Korollar}%
+\def\abstractname{Zusammenfassung.}%
+\def\ackname{Danksagung.}%
+\def\andname{und}%
+\def\lastandname{ und}%
+\def\appendixname{Anhang}%
+\def\chaptername{Kapitel}%
+\def\claimname{Behauptung}%
+\def\conjecturename{Hypothese}%
+\def\contentsname{Inhaltsverzeichnis}%
+\def\corollaryname{Korollar}%
%\def\definitionname{Definition}%
- \def\discintname{Offenlegung von Interessen.}
- \def\examplename{Beispiel}%
- \def\exercisename{\"Ubung}%
- \def\figurename{Abb.}%
- \def\keywordname{{\bf Schl\"usselw\"orter:}}%
- \def\indexname{Index}%
+\def\discintname{Offenlegung von Interessen.}%
+\def\examplename{Beispiel}%
+\def\exercisename{\"Ubung}%
+\def\figurename{Abb.}%
+\def\keywordname{{\bf Schl\"usselw\"orter:}}%
+\def\indexname{Index}%
%\def\lemmaname{Lemma}%
- \def\contriblistname{Mitarbeiter}%
- \def\listfigurename{Abbildungsverzeichnis}%
- \def\listtablename{Tabellenverzeichnis}%
- \def\mailname{{\it Correspondence to\/}:}%
- \def\noteaddname{Nachtrag}%
- \def\notename{Anmerkung}%
- \def\partname{Teil}%
+\def\contriblistname{Mitarbeiter}%
+\def\listfigurename{Abbildungsverzeichnis}%
+\def\listtablename{Tabellenverzeichnis}%
+\def\mailname{{\it Correspondence to\/}:}%
+\def\noteaddname{Nachtrag}%
+\def\notename{Anmerkung}%
+\def\partname{Teil}%
%\def\problemname{Problem}%
- \def\proofname{Beweis}%
- \def\propertyname{Eigenschaft}%
+\def\proofname{Beweis}%
+\def\propertyname{Eigenschaft}%
%\def\propositionname{Proposition}%
- \def\questionname{Frage}%
- \def\remarkname{Anmerkung}%
- \def\seename{siehe}%
- \def\solutionname{L\"osung}%
- \def\subclassname{{\it Subject Classifications\/}:}%
- \def\tablename{Tabelle}%
+\def\questionname{Frage}%
+\def\remarkname{Anmerkung}%
+\def\seename{siehe}%
+\def\solutionname{L\"osung}%
+\def\subclassname{{\it Subject Classifications\/}:}%
+\def\tablename{Tabelle}%
%\def\theoremname{Theorem}%
}
diff --git a/macros/latex/contrib/llncs/llncsdoc.pdf b/macros/latex/contrib/llncs/llncsdoc.pdf
index 58f260083a..964621fd36 100644
--- a/macros/latex/contrib/llncs/llncsdoc.pdf
+++ b/macros/latex/contrib/llncs/llncsdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/llncs/llncsdoc.tex b/macros/latex/contrib/llncs/llncsdoc.tex
index 0c3784e74c..6d47a307d5 100644
--- a/macros/latex/contrib/llncs/llncsdoc.tex
+++ b/macros/latex/contrib/llncs/llncsdoc.tex
@@ -1,6 +1,6 @@
% This is LLNCSDOC.TEX the documentation file of
% the LaTeX2e class from Springer-Verlag
-% for Lecture Notes in Computer Science, version 2.24
+% for Lecture Notes in Computer Science, version 2.25
\documentclass{llncs}
\usepackage{llncsdoc}
\usepackage{graphicx}
@@ -13,7 +13,7 @@
\title{Instructions for Using Springer's \texttt{llncs} Class for
Computer Science Proceedings Papers}
%
-\subtitle{\texttt{llncs}, Version 2.24, Jan 29, 2024}
+\subtitle{\texttt{llncs}, Version 2.25, Oct 21, 2024}
%
\author{}
\institute{}
diff --git a/macros/latex/contrib/mathastext/README.md b/macros/latex/contrib/mathastext/README.md
index f2c55cf149..12a4864c38 100644
--- a/macros/latex/contrib/mathastext/README.md
+++ b/macros/latex/contrib/mathastext/README.md
@@ -14,7 +14,7 @@ The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
- Source: mathastext.dtx 1.4b 2024/07/27
+ Source: mathastext.dtx 1.4e 2024/10/26
DESCRIPTION
@@ -82,13 +82,85 @@ Main options: `italic`, `frenchmath`, `subdued`, `LGRgreek`.
RECENT CHANGES
==============
+1.4e \[2024/10/26\]
+----
+
+* Fix a bug dating back to `1.3y` which caused under `LGRgreek` or
+ `LGRgreeks` options an `\MTversion{normal}` to raise an `Extra
+ \else` error (not if `subdued`). The unit test which could have
+ shown this had been left aside at `1.4d` because it was so old
+ that some matters unrelated to the package prevented its
+ immediate use... alas...
+
+* Fix one more `1.4` regression: the (not really recommended)
+ option `unimathaccents` was broken. Again a test file existed
+ but it had been left apart from those automatically built, for
+ some unknown reason...
+
+1.4d \[2024/10/26\]
+----
+
+* Fix one more `1.4` regression (the worst one by far): `$f''$`
+ caused a crash. Fortunately, the `everymath` option which
+ re-enacts legacy code could be used as a *temporary emergency
+ work-around*. Thanks to Enrico Gregorio for report.
+
+* The `1.4b` option `noletters` did not prevent the package from
+ defining math mode symbols `\inodot` and `\jnodot`. It now does.
+
+* Fix a longstanding legacy bug which would have caused a crash if
+ `\MTnonlettersobeymathxx` had been used with `XeLaTeX` in a
+ document with the character `-` being a Babel shorthand.
+
+* Usage of `\Mathastext` or `\MTDeclareVersion` to declare a
+ math version associated with an exotic non-text font encoding
+ such as `OML` is theoretically possible (although of dubious
+ practical use except for stress tests) but was broken
+ since `1.3u` due to internals
+ relying on `LaTeX` commands associated with text font encodings
+ (for example to define `\inodot`
+ using `\i`,
+ or the `\hbar` with the help of the accent command `\=`)
+ and which are not available in such context. This release
+ handles such situation gracefully via warnings, rather than
+ causing low level errors.
+
+* Improve looks in the PDF of this Change log.
+
+1.4c \[2024/10/21\]
+----
+
+* Fix a regression at `1.4`: under `XeLaTeX`, loading `mathastext`
+ caused an error if `unicode-math` and its `\setmathfont` had been
+ used prior ("*Extended mathchar used as mathchar*" in relation to the
+ minus sign character). Thanks to Michael Roland for report.
+
+ Keep in mind though that the documentation (see 1.4.15 Unicode engines) has
+ always said that the package "*is expected to be most definitely
+ incompatible with unicode-math*".
+
+* Fix another regression at `1.4`, related to the same code and also avoided
+ with `everymath` option, but showing with
+ all engines. It caused `\MTnonlettersdonotobeymathxx`, if used, to reset
+ the minus sign to its status as prior to the loading of `mathastext`,
+ whereas it should have used the (by default) mathversion dependent one
+ (which defaults to the en-dash in the font encoding as stored by `mathastext` in
+ the extended math version).
+
+* `\Relbar` and `\relbar` redeclarations (needed as they are used by `LaTeX`
+ for arrows, and the equal and minus signs if picked from the text font may not
+ work well in-there) are now done via `\DeclareRobustCommand` also with
+ package `amsmath` to match the current behavior of the latter. Note though
+ that they will use the equal and minus signs as in place at package loading
+ time, the documentation does say that `mathastext` should be loaded last.
+
1.4b \[2024/07/27\]
----
* Fix a regression at `1.4` regarding option `nodigits`.
-* New option: `noletters`. I am in old age now so I can provide an option
- completely antithetical to my life work.
+* New option: `noletters`. *I am in old age now so I can provide an option
+ completely antithetical to my life work*.
* Option `everymath` which is destined to be removed at next major
release warns user about it. As major releases tend to happen once
@@ -106,20 +178,20 @@ RECENT CHANGES
1.4 \[2024/07/20\]
---
-* Since 1.2 of 2012/12/20, mathastext has used mathematically active
+* Since 1.2 of 2012/12/20, mathastext has used *mathematically active*
characters to propose certain advanced functionalities. For reasons half
lost in the mists of time but whose main one was surely to keep the
meaning of the active shape of characters unchanged outside of math mode,
this mathematical activation, and (in most cases) the definitions of what
active characters do, were done again at *each* entrance into math mode.
- At this 1.4 release, mathastext does not inject *any* code whatsoever into
- the `\everymath` and `\everydisplay` toks registers anymore (except for
- one font-related hack needed under LuaLaTeX, see below). Your documents
+ At this 1.4 release, mathastext does *not inject any code whatsoever* into
+ the `\everymath` and `\everydisplay` toks registers anymore (*except* for
+ one font-related hack needed under `LuaLaTeX`, see below). Your documents
will compile a tiny bit faster.
-* In (unsual) documents where users play with catcodes and mathcodes it is
- impossible to keep exact backward compatibility, because documented user
- commands which acted formerly a toggles with delayed action now will enact
+* In (*unsual*) documents where users play with catcodes and mathcodes it is
+ *impossible* to keep exact backward compatibility, because documented user
+ commands which acted formerly as toggles with delayed action now will enact
changes immediately if in the document body. In practice consequences are
expected to be few, because catcode active characters are (as was already
the case with earlier releases) hacked only when they are Babel shorthands
@@ -133,9 +205,9 @@ RECENT CHANGES
* New option: `everymath`. It instructs mathastext to revert (partially)
to its legacy code which uses `\everymath/\everydisplay`. This reversal
is partial, the handling of ascii letters not being included into it. The
- `everymath` option is there only to try as a quick fix in case transition
+ `everymath` option is there *only to try as a quick fix* in case transition
to this release causes a major problem in a user document and time is
- lacking to investigate. Please report to the author such issues. Option
+ lacking to investigate. *Please report to the author such issues*. Option
`everymath` is destined to be removed at next major release.
* New option: `activedigits`. Enjoy.
@@ -147,19 +219,19 @@ RECENT CHANGES
* Bugfix: do not override special behavior of the math mode dot in
babel-spanish.
-* Bugfix: A desperate hack related to LuaLaTeX font matters and dating
+* Bugfix: A *desperate* hack related to `LuaLaTeX` font matters and dating
back to 1.3o 2016/05/03 had been for some years in dire need of an update
regarding fonts using `Renderer=HarfBuzz`. This is done now. Thanks to
tex.sx `user691586` for report. This is currently the sole remaining
usage of `\everymath/\everydisplay`.
-* Bugfix: an optional feature related to `\{` and `\}` was broken since an
- upstream LaTeX change at its 2020-02-02 release.
+* Bugfix: `\MTexplicitbracesobeymathxx` (which is related to `\{` and `\}`)
+ was without effect since an upstream `LaTeX` change at its 2020-02-02 release.
* With option symbolmisc, those math symbol macros formerly defined via
`\DeclareRobustCommand` are now declared via `\protected\def`.
-* Removal of legacy branches previously kept to support LaTeX earlier than
+* Removal of legacy branches previously kept to support `LaTeX` earlier than
2020-02-02.
* Removal of support for EU1 and EU2 font encodings.
@@ -174,54 +246,3 @@ RECENT CHANGES
extent improved. But there may be some occasions where obsolete statements will
be found having the legacy `\everymath/\everydisplay` situation as background.
-1.3zb \[2023/12/29\]
------
-
-* Update to the `frenchmath*` option to maintain compatibility
- with the [frenchmath](https://ctan.org/pkg/frenchmath)
- package whose release 2.7 (2023/12/23) has replaced
- the ncccomma package by the decimalcomma package.
-
-* The `frenchmath+` option holds the former meaning of `frenchmath*`.
-
-* Option `decimalcomma` to load the eponymous package by Antoine
- Missier. This is tacitly done by `frenchmath*`.
-
-* No more messages sent to the console output during loading,
- only info messages going into the log, and using (more or less)
- the official LaTeX interface: after close to 13 years of development
- of this package it was perhaps finally the time to do it.
-
-* Documentation improvements. Close to 13 years after the
- birth of the package, and as it nowadays rarely wakes up from
- dormancy, this was almost last chance to try to improve a few
- things.
-
-1.3za \[2023/12/20\]
------
-
-* Under `LGRgreek` and `LGRgreeks` options, new math alphabets
- `\mathgreekupbold` and `\mathgreekitbold`.
-
-* New options `LGRgreek+` and `LGRgreeks+`.
-
- Thanks to Holger Gerhardt for feature request and code ideas.
- Please find and read the relevant documentation in the PDF.
-
-* The meaning of `defaultalphabets` and related individual
- options such as `defaultbf` has been modified (reverted to pre
- `1.15f` release): even under these options, the package always
- creates `\mathnormalbold`, `\Mathnormal`, `\Mathrm`, `\Mathbf`
- etc..., commands. This may break documents which used these
- options in order to reserve these command names. This was done
- with some hesitancy, but for the sake of internal logical
- coherence.
-
-* Fix an obscure bug with no real consequences regarding
- interaction of `subdued` with `LGRgreek` and `\MTgreekfont`.
- See the `LGRgreek` documentation in the complete list of
- options for details.
-
-* Fix long-standing hyperlink problems in the documentation:
- blue color words should now all be functioning hyperlinks.
-
diff --git a/macros/latex/contrib/mathastext/mathastext.dtx b/macros/latex/contrib/mathastext/mathastext.dtx
index 7857f9b70a..08d5a225e6 100644
--- a/macros/latex/contrib/mathastext/mathastext.dtx
+++ b/macros/latex/contrib/mathastext/mathastext.dtx
@@ -2,8 +2,8 @@
% N.B.: this dtx file does NOT use \DocInput, it only uses docstrip.
% The LaTeX source of the documentation is NOT prefixed with %'s.
%<*dtx>
-\def\dtxtimestamp {Time-stamp: <26-07-2024 at 11:21:35 CEST>}
-\def\docdate{2024/07/27}
+\def\dtxtimestamp {Time-stamp: <26-10-2024 at 17:38:46 CEST>}
+\def\docdate{2024/10/26}
% To extract run etex on this file, then to build documentation run
% latexmk on mathastext.tex then dvipdfmx on the dvi.
% For more information see http://jf.burnol.free.fr/v13/INSTALL.txt
@@ -11,8 +11,8 @@
% due to usage of (<A7>) as an active character.
%</dtx>
%<*drv>
-\def\MSTpkgdate {2024/07/27}
-\def\MSTpkgversion {1.4b}
+\def\MSTpkgdate {2024/10/26}
+\def\MSTpkgversion {1.4e}
%</drv>
%<*dtx>
\iffalse % meta-comment
@@ -34,7 +34,7 @@ The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
- Source: mathastext.dtx 1.4b 2024/07/27
+ Source: mathastext.dtx 1.4e 2024/10/26
%</readme>
%<*dtx>
@@ -44,7 +44,7 @@ Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
%%----------------------------------------------------------------
%% Package: mathastext
%% Info: Use the text font in math mode (JFB)
-%% Version: 1.4b 2024/07/27
+%% Version: 1.4e 2024/10/26
%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
%% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
%% <jfbu at free dot fr>
@@ -193,13 +193,85 @@ MATHASTEXT CHANGE LOG
%</changelog>
%<*readme|changelog>
+1.4e \[2024/10/26\]
+----
+
+* Fix a bug dating back to `1.3y` which caused under `LGRgreek` or
+ `LGRgreeks` options an `\MTversion{normal}` to raise an `Extra
+ \else` error (not if `subdued`). The unit test which could have
+ shown this had been left aside at `1.4d` because it was so old
+ that some matters unrelated to the package prevented its
+ immediate use... alas...
+
+* Fix one more `1.4` regression: the (not really recommended)
+ option `unimathaccents` was broken. Again a test file existed
+ but it had been left apart from those automatically built, for
+ some unknown reason...
+
+1.4d \[2024/10/26\]
+----
+
+* Fix one more `1.4` regression (the worst one by far): `$f''$`
+ caused a crash. Fortunately, the `everymath` option which
+ re-enacts legacy code could be used as a *temporary emergency
+ work-around*. Thanks to Enrico Gregorio for report.
+
+* The `1.4b` option `noletters` did not prevent the package from
+ defining math mode symbols `\inodot` and `\jnodot`. It now does.
+
+* Fix a longstanding legacy bug which would have caused a crash if
+ `\MTnonlettersobeymathxx` had been used with `XeLaTeX` in a
+ document with the character `-` being a Babel shorthand.
+
+* Usage of `\Mathastext` or `\MTDeclareVersion` to declare a
+ math version associated with an exotic non-text font encoding
+ such as `OML` is theoretically possible (although of dubious
+ practical use except for stress tests) but was broken
+ since `1.3u` due to internals
+ relying on `LaTeX` commands associated with text font encodings
+ (for example to define `\inodot`
+ using `\i`,
+ or the `\hbar` with the help of the accent command `\=`)
+ and which are not available in such context. This release
+ handles such situation gracefully via warnings, rather than
+ causing low level errors.
+
+* Improve looks in the PDF of this Change log.
+
+1.4c \[2024/10/21\]
+----
+
+* Fix a regression at `1.4`: under `XeLaTeX`, loading `mathastext`
+ caused an error if `unicode-math` and its `\setmathfont` had been
+ used prior ("*Extended mathchar used as mathchar*" in relation to the
+ minus sign character). Thanks to Michael Roland for report.
+
+ Keep in mind though that the documentation (see 1.4.15 Unicode engines) has
+ always said that the package "*is expected to be most definitely
+ incompatible with unicode-math*".
+
+* Fix another regression at `1.4`, related to the same code and also avoided
+ with `everymath` option, but showing with
+ all engines. It caused `\MTnonlettersdonotobeymathxx`, if used, to reset
+ the minus sign to its status as prior to the loading of `mathastext`,
+ whereas it should have used the (by default) mathversion dependent one
+ (which defaults to the en-dash in the font encoding as stored by `mathastext` in
+ the extended math version).
+
+* `\Relbar` and `\relbar` redeclarations (needed as they are used by `LaTeX`
+ for arrows, and the equal and minus signs if picked from the text font may not
+ work well in-there) are now done via `\DeclareRobustCommand` also with
+ package `amsmath` to match the current behavior of the latter. Note though
+ that they will use the equal and minus signs as in place at package loading
+ time, the documentation does say that `mathastext` should be loaded last.
+
1.4b \[2024/07/27\]
----
* Fix a regression at `1.4` regarding option `nodigits`.
-* New option: `noletters`. I am in old age now so I can provide an option
- completely antithetical to my life work.
+* New option: `noletters`. *I am in old age now so I can provide an option
+ completely antithetical to my life work*.
* Option `everymath` which is destined to be removed at next major
release warns user about it. As major releases tend to happen once
@@ -217,20 +289,20 @@ MATHASTEXT CHANGE LOG
1.4 \[2024/07/20\]
---
-* Since 1.2 of 2012/12/20, mathastext has used mathematically active
+* Since 1.2 of 2012/12/20, mathastext has used *mathematically active*
characters to propose certain advanced functionalities. For reasons half
lost in the mists of time but whose main one was surely to keep the
meaning of the active shape of characters unchanged outside of math mode,
this mathematical activation, and (in most cases) the definitions of what
active characters do, were done again at *each* entrance into math mode.
- At this 1.4 release, mathastext does not inject *any* code whatsoever into
- the `\everymath` and `\everydisplay` toks registers anymore (except for
- one font-related hack needed under LuaLaTeX, see below). Your documents
+ At this 1.4 release, mathastext does *not inject any code whatsoever* into
+ the `\everymath` and `\everydisplay` toks registers anymore (*except* for
+ one font-related hack needed under `LuaLaTeX`, see below). Your documents
will compile a tiny bit faster.
-* In (unsual) documents where users play with catcodes and mathcodes it is
- impossible to keep exact backward compatibility, because documented user
- commands which acted formerly a toggles with delayed action now will enact
+* In (*unsual*) documents where users play with catcodes and mathcodes it is
+ *impossible* to keep exact backward compatibility, because documented user
+ commands which acted formerly as toggles with delayed action now will enact
changes immediately if in the document body. In practice consequences are
expected to be few, because catcode active characters are (as was already
the case with earlier releases) hacked only when they are Babel shorthands
@@ -244,9 +316,9 @@ MATHASTEXT CHANGE LOG
* New option: `everymath`. It instructs mathastext to revert (partially)
to its legacy code which uses `\everymath/\everydisplay`. This reversal
is partial, the handling of ascii letters not being included into it. The
- `everymath` option is there only to try as a quick fix in case transition
+ `everymath` option is there *only to try as a quick fix* in case transition
to this release causes a major problem in a user document and time is
- lacking to investigate. Please report to the author such issues. Option
+ lacking to investigate. *Please report to the author such issues*. Option
`everymath` is destined to be removed at next major release.
* New option: `activedigits`. Enjoy.
@@ -258,19 +330,19 @@ MATHASTEXT CHANGE LOG
* Bugfix: do not override special behavior of the math mode dot in
babel-spanish.
-* Bugfix: A desperate hack related to LuaLaTeX font matters and dating
+* Bugfix: A *desperate* hack related to `LuaLaTeX` font matters and dating
back to 1.3o 2016/05/03 had been for some years in dire need of an update
regarding fonts using `Renderer=HarfBuzz`. This is done now. Thanks to
tex.sx `user691586` for report. This is currently the sole remaining
usage of `\everymath/\everydisplay`.
-* Bugfix: an optional feature related to `\{` and `\}` was broken since an
- upstream LaTeX change at its 2020-02-02 release.
+* Bugfix: `\MTexplicitbracesobeymathxx` (which is related to `\{` and `\}`)
+ was without effect since an upstream `LaTeX` change at its 2020-02-02 release.
* With option symbolmisc, those math symbol macros formerly defined via
`\DeclareRobustCommand` are now declared via `\protected\def`.
-* Removal of legacy branches previously kept to support LaTeX earlier than
+* Removal of legacy branches previously kept to support `LaTeX` earlier than
2020-02-02.
* Removal of support for EU1 and EU2 font encodings.
@@ -285,6 +357,8 @@ MATHASTEXT CHANGE LOG
extent improved. But there may be some occasions where obsolete statements will
be found having the legacy `\everymath/\everydisplay` situation as background.
+%</readme|changelog>
+%<*changelog>
1.3zb \[2023/12/29\]
-----
@@ -300,7 +374,7 @@ MATHASTEXT CHANGE LOG
* No more messages sent to the console output during loading,
only info messages going into the log, and using (more or less)
- the official LaTeX interface: after close to 13 years of development
+ the official `LaTeX` interface: after close to 13 years of development
of this package it was perhaps finally the time to do it.
* Documentation improvements. Close to 13 years after the
@@ -336,8 +410,6 @@ MATHASTEXT CHANGE LOG
* Fix long-standing hyperlink problems in the documentation:
blue color words should now all be functioning hyperlinks.
-%</readme|changelog>
-%<*changelog>
1.3z \[2023/09/01\]
----
@@ -379,7 +451,7 @@ been pushed to CTAN, hence the version increase to 1.3y)
- add `\MTgreekupdefault` and `\MTgreekitdefault`. The former
replaces `\updefault` which was used in some places and since
- LaTeX 2020-02-02 caused systematic Font Warnings about the
+ `LaTeX` `2020-02-02` caused systematic Font Warnings about the
substitution of `up` by `n`.
These new features required an extensive internal refactoring
@@ -401,16 +473,16 @@ been pushed to CTAN, hence the version increase to 1.3y)
1.3w \[2019/11/16\]
----
-* LaTeX 2019-10-01 release (up to patch level 3 inclusive)
+* `LaTeX` `2019-10-01` release (up to patch level 3 inclusive)
together with `amsmath` conspired `:-)` to break `mathastext`,
in connexion with math accents. This has been fixed upstream,
but I am releasing nevertheless a hot fix to this
https://github.com/latex3/latex2e/issues/216 issue
- (this is compatible with future LaTeX releases).
+ (this is compatible with future `LaTeX` releases).
* Fix: the `\hbar` is originally a robust command but
becomes a `\mathchardef` token if (e.g.) `amsfonts` is
- loaded and then with recent LaTeX `\hbar<space>` is
+ loaded and then with recent `LaTeX` `\hbar<space>` is
made undefined and `mathastext` definition of it
remained without effect. The `\mathastext` own `\hbar`
is now defined `\protected`.
@@ -428,15 +500,15 @@ been pushed to CTAN, hence the version increase to 1.3y)
1.3v \[2019/09/19\]
----
-* LaTeX 2019-10-01 release has made more math macros robust.
+* `LaTeX` 2019-10-01 release has made more math macros robust.
This applies in particular to the math accents and to the
`\hbar`. This required for mathastext to adapt. Also
`\leftarrowfill` and `\rightarrowfill` are now defined
robust by the kernel, hence mathastext does the same. These
- changes are dropped if mathastext detects an older LaTeX
+ changes are dropped if mathastext detects an older `LaTeX`
format.
-* These LaTeX kernel changes motivated an examination of some
+* These `LaTeX` kernel changes motivated an examination of some
redefinitions done (optionally) by mathastext:
- The user math alphabet macros got redefined as expanding
@@ -447,7 +519,7 @@ been pushed to CTAN, hence the version increase to 1.3y)
alphabet commands (they redefine themselves and other macros
on first use) makes is somewhat problematic for mathastext
to keep them updated across math versions and at the same
- time strictly LaTeX2e robust. Thus mathastext now requires
+ time strictly `LaTeX2e` robust. Thus mathastext now requires
the e-TeX primitive `\protected` and uses it for the
definitions of the user level math alphabet macros.
@@ -461,18 +533,18 @@ been pushed to CTAN, hence the version increase to 1.3y)
`\mid`, `\prod`, `\sum`, `\imath`, `\jmath`.
- The macro `\vert` (which expands to a `\delimiter`) is now
- defined robust by LaTeX. Its mathastext redefinition is a
+ defined robust by `LaTeX`. Its mathastext redefinition is a
`\protected` one rather.
- The `\{` and `\}` (which get redefined only under
`\MTexplicitbracesobeymathxx` regime) are now strictly
- robust in the LaTeX2e sense (formerly they were `\let` to
+ robust in the `LaTeX2e` sense (formerly they were `\let` to
some robust macros, and this did not make them strictly
- LaTeX2e-robust entities).
+ `LaTeX2e`-robust entities).
* The various changes in mathastext described in the previous item
- apply independently of the LaTeX release version. The
- LaTeX format itself requires the e-TeX extensions since 2015.
+ apply independently of the `LaTeX` release version. The
+ `LaTeX` format itself requires the e-TeX extensions since 2015.
1.3u \[2019/08/20\]
@@ -488,7 +560,7 @@ been pushed to CTAN, hence the version increase to 1.3y)
using fonts with varying encodings.
This reinforces importance of using `\MTversion` and not the
- LaTeX `\mathversion` when switching to a new math version (which
+ `LaTeX` `\mathversion` when switching to a new math version (which
got declared via the package interface). The implementation is
compatible with Unicode engines and mixed usage of `TU` encoding
(OpenType fonts) with traditional 8bits TeX font encodings. For
@@ -500,8 +572,8 @@ been pushed to CTAN, hence the version increase to 1.3y)
* new option `unimathaccents`: this adds to option `mathaccents`
the demand to use the text font accents for OpenType fonts in math
mode via the `\Umathaccent` primitive. Indeed, as my testing
- showed that this gave non-satisfactory results both with XeTeX
- and LuaTeX regarding the horizontal placement of the accents,
+ showed that this gave non-satisfactory results both with `XeTeX`
+ and `LuaTeX` regarding the horizontal placement of the accents,
the main option `mathaccents` acts only on 8bits encoded fonts.
* bugfix: the `\Mathastext` without optional argument forgot to
@@ -619,7 +691,7 @@ been pushed to CTAN, hence the version increase to 1.3y)
* typos fixed in the documentation. In particular, the README link to
the package homepage had remained broken from day one of the package
releases: `mathastext.html` therein was misspelled as
- `mathsastext.html` ! (but the pdf documentation had the correct link;
+ `mathsastext.html`! (but the pdf documentation had the correct link;
as well as the CTAN catalogue).
@@ -682,9 +754,9 @@ been pushed to CTAN, hence the version increase to 1.3y)
1.3g \[2015/10/15\]
----
-* following `2015/10/01` LaTeX release, removal of the `"luatex"`
- prefix from the names of the LuaLaTeX math primitives. Compatibility
- maintained with older LaTeX formats.
+* following `2015/10/01` `LaTeX` release, removal of the `"luatex"`
+ prefix from the names of the `LuaLaTeX` math primitives. Compatibility
+ maintained with older `LaTeX` formats.
1.3f \[2015/09/12\]
@@ -774,8 +846,8 @@ been pushed to CTAN, hence the version increase to 1.3y)
`\MTnoicinmath` correspondingly modified).
* the new `\luatexUmathcodenum` as available since TL2013 allows
- identical treatment by mathastext of = and - under both LuaTeX
- and XeTeX.
+ identical treatment by mathastext of = and - under both `LuaTeX`
+ and `XeTeX`.
* `\newmcodes@` of amsmath is left untouched in case of option basic.
@@ -1019,7 +1091,7 @@ use of mathematically active characters in versions 1.2 and 1.2b.
* the `\Mathastext` command has been improved to
facilitate the mechanism of math versions also when
- using XeTeX or LuaTeX (with package fontspec.)
+ using `XeTeX` or `LuaTeX` (with package fontspec.)
* the en-dash and dotless i and j now work with all
encodings, Unicode inclusive.
@@ -1423,7 +1495,7 @@ pdfpagemode=UseOutlines,%
{\normalfont\LARGE The \mst package}\\
\textsc{\small Jean-Franois Burnol}\par
\footnotesize \ttfamily \frenchspacing
- jfbu (at) free (dot) fr\par
+ \fbox{contact: jfbu (at) free (dot) fr}\par
\let\thefootnote\empty
Package version: \MSTpkgversion\ (\MSTpkgdate)%
\footnote{Documentation generated from the
@@ -4267,7 +4339,7 @@ option).
\mstcmd{MTlettershape}\marg{sh}.%
%
\footnote{These commands exist also with
- long names: \csb{Mathastextencoding},
+ long names: \cs{Mathastextencoding},
etc\dots{} The same applies to the other commands
mentioned in this section.}
%
@@ -4488,10 +4560,13 @@ size in subscripts and exponents.
information on what happens with subdued option
in the ``normal'' (or ``bold'') math version.\par
\end{footnotesize}
-\item \mstcmd{inodot}, \mstcmd{jnodot}: the corresponding glyphs in the \mst-ified
- font for use in math mode. By default, |\imath| and |\jmath| are redefined to use
- them. Since \texttt{1.3t}, these macros obey the \texttt{subdued}
- regime.
+\item \mstcmd{inodot}, \mstcmd{jnodot}: the corresponding glyphs
+ in the \mst-ified font for use in math mode. By default,
+ |\imath| and |\jmath| are redefined to use them. The
+ defaultimath option prevents that, but |\inodot| and
+ |\jnodot| are always defined (although they may not render correctly if
+ the used text font is missing the glyphs). Since \texttt{1.3t},
+ these macros obey the \texttt{subdued} regime.
\item \mstcmd{MathEuler}, \mstcmd{MathEulerBold}: math alphabets to access
all the glyphs of the Euler font, if option |eulergreek| (or
|eulerdigits| was passed to the package.
@@ -4789,7 +4864,7 @@ configuration, not for the legacy one as re-enacted by everymath.
(even in the preamble).
At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} \mst checks at
- |\begin{document}| (or each time \MTaciveasterisk is made use of) if
+ |\begin{document}| (or each time \MTactiveasterisk is made use of) if
* is a Babel shorthand (which I far as I know is the case of no
language) or is already mathematically active. In the latter case the
* is not modified in math mode; and it is not modified either if
@@ -4988,10 +5063,22 @@ configuration, not for the legacy one as re-enacted by everymath.
it will have to be coded |$a^{!}$|. Hence, by default, the package does
\MTnonlettersdonotobeymathxx.
-\item \mstcmd{MTexplicitbracesobeymathxx}: extends an earlier \MTnonlettersobeymathxx
- to also treat \verb|\{| and \verb|\}|. But then |\left\{|, |\right\}| must
- be coded |\left\lbrace|, |\right\rbrace| rather. There is also
- \mstcmd{MTexplicitbracesdonotobeymathxx}.
+\item \mstcmd{MTexplicitbracesobeymathxx}: does \MTnonlettersobeymathxx and
+ extends it to also apply to \verb|\{| and \verb|\}|. Note that then |\left\{|,
+ |\right\}| must be coded |\left\lbrace|, |\right\rbrace| rather. There is
+ also \mstcmd{MTexplicitbracesdonotobeymathxx}.
+
+ {\footnotesize
+ If under the everymath option, it is needed to issue explicitly
+ \MTnonlettersobeymathxx in addition to \MTexplicitbracesobeymathxx.
+
+ Whether or not with everymath, if the command is issued while in
+ subdued normal or bold, it has no effect immediately, but if switching
+ later to a non-subdued math version via \MTversion, a
+ \MTnonlettersobeymathxx issued then will automatically apply also to
+ \verb|\{| and \verb|\}|.
+ \par
+ }
\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTeverymathdefault}: this hook is executed by
\csb{MTversion}\marg{version\_name} (but if under option |subdued|
@@ -5586,7 +5673,7 @@ changing commands.
\item \mstopt{unimathaccents}:\RightNote{\mstrelease{1.3u}} extends |mathaccents| to
OpenType fonts. Gave bad results in my brief testing.
\item \mstopt{defaultimath}: do not overwrite \cs{imath} and
- \cs{jmath} to use \cs{inodot} and \cs{jnodot}.
+ \cs{jmath} to use \inodot and \jnodot.
\item \mstopt{defaultmathsizes}: do not change the \LaTeX{} defaults for the sizes
of exponents and subscripts.
\item \mstopt{fouriervec}: provides a \cs{fouriervec} command. The user can then
@@ -5668,9 +5755,19 @@ Numerous examples will be found there:\\
% Il faut aussi grer les `.
\catcode`*=\active
+
+% 1.4d utilise \texttt pour les `foo...bar` et s'il y a un * l-dedans il ne
+% faut pas le baisser car il est dj hauteur. Et par ailleurs il n'y a pas
+% de raison pour un * en dehors de ce contexte sauf pour faire les
+% mock-itemize. Cependant je n'ai pas tout vrifi. Oups, si il
+% y en a quelques un utiliss dans le style *foo*.
\def*{\ifvmode\smallskip
\leavevmode\kern.5em\smash{\raisebox{-.3\height}{\char42}}\kern1em
- \else\smash{\raisebox{-.3\height}{\char42}}\fi }%
+ \else\ifdim\fontcharwd\font`i=\fontcharwd\font`m \char42\relax
+ \else\mstdochackstar\fi
+ \fi }%
+
+\def\mstdochackstar#1#2#3*{#1#2\emph{#3}}
\begingroup
\lccode`\~`1
@@ -5704,10 +5801,23 @@ Numerous examples will be found there:\\
\lccode`\-`M % MATHASTEXT CHANGE LOG est la premire ligne...
\lowercase{\endgroup\long\def-}##1\par{\catcode`\M=12 \catcode`\-=12 }%
\catcode`1=\active
- \catcode`\` 9 % lgrement ennuyeux mais bon, c'est le plus simple.
+ \catcode`\`\active
+ \begingroup
+ \lccode`\~`\`
+ \lowercase{\endgroup\def~##1~}{\mstdochacklogo##1TeX-\empty\relax}%
+ \catcode`'=\active
+ \begingroup
+ \lccode`\~`'
+ \lowercase{\endgroup\let~}\textquotesingle
\nonfrenchspacing
\input ChangeLog.md
}
+\def\mstdochacklogo#1TeX#2#3#4\relax{\ifx#2-\texttt{\hyphenchar\font45\relax#1}%
+ \else\ifx#22\ifx#3e\msthologo{#1TeX2e}\else
+ \@nameuse{#1TeX}\fi
+ \else
+ \@nameuse{#1TeX}\fi
+ \fi}
\makeatother
@@ -5789,7 +5899,7 @@ Numerous examples will be found there:\\
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2020/02/02]
\ProvidesPackage {mathastext}
- [2024/07/27 v1.4b Use the text font in math mode (JFB)]
+ [2024/10/26 v1.4e Use the text font in math mode (JFB)]
% \end{macrocode}
% \mstrelease{1.3zb} avoids writing \mst info messages also to console output, only log file.
% Make prefix occupy 20 not 25 characters for alignment with \texttt{LaTeX Font Info},
@@ -5850,29 +5960,27 @@ Numerous examples will be found there:\\
% \mstrelease{1.4}. I only checked this is correct with TL2024.
% The macro will be used with |#1| a catcode 11 or 12 token or a one character
% control sequence such as |\#|.
+%
+% \mstrelease{1.4c} adds some definitions to avoid separate branches for
+% non-Unicode vs Unicode.
% \begin{macrocode}
\ifmst@XeTeX
- \def\mst@OnlyIfNotMathActive#1{%
- \ifnum\mst@Umathcodenum`#1="1FFFFF
- \expandafter\@gobble
- \else\expandafter\@firstofone
- \fi
- }
-\else\ifmst@LuaTeX
- \def\mst@OnlyIfNotMathActive#1{%
- \ifnum\mst@Umathcodenum`#1="1000000
- \expandafter\@gobble
- \else\expandafter\@firstofone
- \fi
- }
+ \def\mst@activemathcodenum@space{"1FFFFF }%
+ \let\mst@mathcodenum\mst@Umathcodenum
\else
- \def\mst@OnlyIfNotMathActive#1{%
- \ifnum\mathcode`#1="8000
- \expandafter\@gobble
- \else\expandafter\@firstofone
- \fi
- }
+\ifmst@LuaTeX
+ \def\mst@activemathcodenum@space{"1000000 }%
+ \let\mst@mathcodenum\mst@Umathcodenum
+\else
+ \def\mst@activemathcodenum@space{"8000 }%
+ \let\mst@mathcodenum\mathcode
\fi\fi
+\def\mst@OnlyIfNotMathActive#1{%
+ \ifnum\mst@mathcodenum`#1=\mst@activemathcodenum@space
+ \expandafter\@gobble
+ \else\expandafter\@firstofone
+ \fi
+}
% \end{macrocode}
% \mstrelease{1.2}: all inner macros of \mst now starts with |\mst@| for a cleaner
% name-space.
@@ -6311,6 +6419,10 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% The \cs{MTprimedoesskip} is not a |no-op| in |subdued| math version.
% This is legacy situation, not changed at \mstrelease{1.4}.
%
+% \mstrelease{1.4d} fixes a (very) bad bug introduced at \mstrelease{1.4}
+% which caused |$f''$| to error. The fix is to be found in the definition of
+% \cs{mst@@mathactivate} (done later in the package) used for the
+% non-\texttt{everymath} branch.
% \begin{macrocode}
\newmuskip\mst@prime@muskip
\def\mst@prime@skip{.5mu}
@@ -6349,8 +6461,10 @@ defaultbf,defaultit,defaultsf,defaulttt}}
}%
% \end{macrocode}
% The ``undo'' is needed at \mstrelease{1.4} (but not if |everymath|).
+% The \mstrelease{1.4c} (with Unicode engines) uses \cs{Umathcodenum} in
+% \cs{mst@mathdeactivate} and not \cs{mathcode} hence no |"8000| here.
% \begin{macrocode}
-\def\mst@undo@mathactivateprime{\mst@mathdeactivate#1{"8000}}%
+\def\mst@undo@mathactivateprime{\mst@mathdeactivate#1{\mst@activemathcodenum@space}}%
}\expandafter\mst@tmp\string'
\def\mst@active@math@prime{\sp\bgroup\mskip\mst@prime@muskip\prim@s}
\ifmst@everymath
@@ -6470,7 +6584,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\let\mst@savedresetMathstrut@\resetMathstrut@
% \end{macrocode}
% The |\ifx\mst@the\the| is true iff \cs{MTnonlettersobeymathxx} was used in preamble
-% (last compared to \cs{MTnonlettersdonotobeymathxx}).
+% (and after possibly some \cs{MTnonlettersdonotobeymathxx}).
% Setting \cs{mst@the} to \cs{@gobble} here wiil cause \cs{MTnonlettersobeymathxx}
% to indeed modify \cs{resetMathstrut@} (and it resets \cs{mst@the} to \cs{the} for
% its behavior in \cs{everymath}).
@@ -6620,18 +6734,25 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \mstrelease{1.4} has significantly refactored the coding, there were
% simplication from a changed way to use \cs{mst@mathactivate} for letters
% and added branches to accomodate the renouncement to \cs{everymath}.
-% \begin{macro}{\mst@do@activecase}
-% Called by \cs{mst@mathactivate} if |#1| is catcode active.
%
-% Check if token activation originates apparently into \ctanpkg{babel}:
-% \begin{itemize}[nosep]
-% \item if NO, nothing is done. The active meaning of |#1| is not modified.
-% \item if YES, we hook into \ctanpkg{babel} associated macros so
-% that in math mode the catcode active token does what \mst expects it to
-% do. Its \cs{mathcode} is set to the
-% one of the associated \cs{mathalpha} symbol as declared by \mst, except
-% for asterisk and right tick which simply use their ascii number as mathcode.
-% \end{itemize}
+% Some auxiliaries. The last two (which use the first two) are injected
+% inside the redefinitions of active Babel shorthands done by
+% \cs{mst@do@activecase}.
+% \begin{macrocode}
+\def\mst@magic@v #1#2#3#4#5{#1#3#4}
+\def\mst@magic@vi #1#2#3#4#5#6{#1#2#4#5}
+\def\mst@fork{\ifmmode\mst@magic@v\fi\@thirdofthree}
+\def\mst@safefork{\ifmmode\if@safe@actives\else\mst@magic@vi\fi\fi\@thirdofthree}
+% \end{macrocode}
+% \begin{macro}{\mst@do@activecase}
+% Called by \cs{mst@mathactivate} if |#1| is catcode active. At
+% \mstrelease{1.4} it is also required that the token activation originated
+% from\ctanpkg{babel}. Else this \cs{mst@do@activecase} is not executed. If
+% executed, it hooks into \ctanpkg{babel} associated macros so that in math
+% mode the catcode active token does what \mst expects it to do. Its
+% \cs{mathcode} is set to the one of the associated \cs{mathalpha} symbol as
+% declared by \mst, except for asterisk and right tick which simply use their
+% ascii number as mathcode.
%
% In the case of \ctanpkg{babel}-spanish which has a catcode active right
% tick, resetting its mathcode has the advantage to reveal in output the case
@@ -6640,18 +6761,10 @@ defaultbf,defaultit,defaultsf,defaulttt}}
%
% And in general it is dangerous to have a character both catcode active and
% mathcode active.
-%
-% Some auxiliaries.
-% \begin{macrocode}
-\def\mst@magic@v #1#2#3#4#5{#1#3#4}
-\def\mst@magic@vi #1#2#3#4#5#6{#1#2#4#5}
-\def\mst@fork{\ifmmode\mst@magic@v\fi\@thirdofthree}
-\def\mst@safefork{\ifmmode\if@safe@actives\else\mst@magic@vi\fi\fi\@thirdofthree}
-% \end{macrocode}
% Some refactoring (and streamlining) at \mstrelease{1.4} here.
% \begin{footnotesize}
% There was at some point in the case of a Babel-active token a special
-% hanlding for |#1| to use \cs{MTmathcharletter}|#1| (and event for
+% hanlding for |#1| to use \cs{MTmathcharletter}|#1| (and also for
% digits!). But this is almost impossible to arise in practice:
% \begin{itemize}[nosep]
% \item Babel commands to set up a shorthand are preamble only (they use
@@ -6689,7 +6802,8 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \end{macrocode}
% As letters and digits are impossible here, |#2| is either empty (which
% happens only now for asterisk and right tick) or a single token (\cs{mathclose},
-% \cs{mathopen},... ). When |#2| is not empty, |#3| is always a mathchar
+% \cs{mathopen},... ). When |#2| is not empty, |#3| is always (not quite see
+% below) a mathchar
% token. For safety we make sure then the mathcode is not active.
%
% The rationale is
@@ -6701,11 +6815,26 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% Arguably I probably mainly wanted to do this if the character was found
% catcode active but not a Babel shorthand. But it ended into the Babel
% branch and the non-Babel branch for active catcode is to do nothing.
-%
-% |#2| is empty exactly for the case of the right tick and the asterisk.
-% In all other cases, then |#3| is a mathchar token.
-% \begin{macrocode}
- \ifx\relax #2\relax\mathcode`#1=`#1\relax\else\mathcode`#1=#3\relax\fi
+% As it is now to time-intensive to re-check the whole logic I am keeping
+% this.
+%
+% |#2| is empty exactly for the case of the right tick and the asterisk. In
+% all other cases, then |#3| is a mathchar token, except in the exceptional
+% case of |#1| being |-| (necessarily of catcode 12 here), |#3| with Unicode
+% engines is \cs{mst@varfam@minus} which is a macro expanding to a
+% math-version dependent \cs{Umathchardef} token. Then the \cs{mathcode}
+% assignment breaks under \XeLaTeX. It appears unlikely for |-| to be a Babel
+% shorthand. But to be extra safe, and at same time avoid undue complications
+% of needed separate branches for non-Unicode and Unicode engines, we simply
+% drop the assignment in that case (done at \mstrelease{1.4c}).
+%
+% The matter with the |\string-| is inherited stupid paranoia from early times
+% regarding catcodes at package loading, as I do it elsewhere in the package
+% code, also here.
+% \begin{macrocode}
+ \expandafter\if\string-#1\else
+ \ifx\relax #2\relax\mathcode`#1=`#1\relax\else\mathcode`#1=#3\relax\fi
+ \fi
% \end{macrocode}
% Less \cs{expandafter}'s at \mstrelease{1.4}. Also, it is now required
% to make sure:
@@ -6794,7 +6923,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% here using an \cs{ifmmode}. And we store the original meaning of the
% active variant of the token to reset it when ``undoing''.
%
-% Careful not to do it twice in a row... (but this means \cs{mst@deactivate}
+% Careful not to do it twice in a row... (but this means \cs{mst@mathdeactivate}
% might not revert to a user custom redefinition done in-between but to a
% prior one; although if the character is made active the second
% \cs{mst@mathactivate} would not have been done).
@@ -6803,7 +6932,13 @@ defaultbf,defaultit,defaultsf,defaulttt}}
{\expandafter\let
\csname mst@prioractivemeaning@##1\endcsname ~}
{}%
- \def~{\ifmmode##2##3\else##1\fi}%
+% \end{macrocode}
+% The \mstrelease{1.4} added this \cs{ifmmode} test but overlooked
+% the case of the right tick \texttt{'} which requires to be moved to
+% after the conditional. Let's do this in a safer way.
+% \begin{macrocode}
+ \def~{\ifmmode\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {##2##3}{##1}}%
}%
}%
\fi
@@ -6813,7 +6948,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% character which is encountered is currently with active catcode.
%
% At \mstrelease{1.4} the non-catcode active branch is entered only if the
-% character isn't mathematically active at time of use..
+% character isn't mathematically active at time of use.
%
% Careful that |#2| and |#3| may each be empty. The test for being a Babel
% shorthand is done here and not as prior to \mst@release{1.4} inside
@@ -6836,11 +6971,21 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% The \cs{mst@mathdeactivate} is active (sic) only in the non |everymath|
% situation. It will restore a previously existing active meaning if it has
% been changed.
+%
+% The \mstrelease{1.4c} uses \cs{Umathcodenum} here with Unicode engines (the
+% actual conditions why this became necessary were related to the minus
+% character which however does not use \cs{mst@mathdeactivate} anyway at time
+% of finishing the \mstrelease{1.4c} updates). The \cs{string} thing with
+% \texttt{-} is due to some old paranoia for which I see no underlying reason
+% (why on earth would \texttt{-} be catcode active here?), but maintaining it.
+% For |#1=-| the |#2| is empty and unused as the mathcode reassignment is then
+% skipped (because \cs{mst@subduedminus} and \cs{mst@nonsubduedminus} take
+% care of such things in an engine dependent manner; see them).
% \begin{macrocode}
\ifmst@everymath
\else
\def\mst@mathdeactivate#1#2{%
- \mathcode`#1=#2\relax
+ \if#1\string-\else\mst@mathcodenum`#1=#2\relax\fi
\@ifundefined{active@char#1}
{\@ifundefined{mst@prioractivemeaning@#1}
{}%
@@ -6927,10 +7072,21 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \end{macrocode}
% We need to automatize some safeguards related to \cs{mst@do@activecase} when
% deactivating.
+%
+% \mstrelease{1.4c} fixes two problems of \mstrelease{1.4} code. First a bug
+% due to \XeLaTeX\ diverging implementation of \cs{mathcode} compared to
+% \LuaLaTeX (or rather vice versa), second the fact that the mathcode here is
+% the one at package loading time, which for most non-letter characters was
+% fine because it had been set by \mst, but for the minus character it was too
+% early.
+%
+% The generic \cs{mst@addtodo@nonletters} can not be used with \texttt{-},
+% some specific code is used, see \cs{mst@nonsubduedminus}.
% \begin{macrocode}
- \def\mst@addtodo@nonletters#1#2#3{\mst@do@nonletters\expandafter
+ \def\mst@addtodo@nonletters#1#2#3{%
+ \mst@do@nonletters\expandafter
{\the\mst@do@nonletters\mst@mathactivate#1#2#3}%
- \edef\mst@tmp{\noexpand\mst@mathdeactivate#1{\the\mathcode`#1}}%
+ \edef\mst@tmp{\noexpand\mst@mathdeactivate#1{\the\mst@mathcodenum`#1}}%
\mst@undo@nonletters\expandafter\expandafter\expandafter
{\expandafter\mst@tmp\the\mst@undo@nonletters}%
}%
@@ -7004,6 +7160,19 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\let\mst@the\the
}%
}%
+% \end{macrocode}
+% The next one gets executed (even if not used by user) via
+% \cs{MTeverymathoff}, which itself is done automatically at begin document if
+% in \texttt{subdued} mode. The mechanism of \texttt{subdued} mode is to
+% reassign the \texttt{mtoperatorfont} and \texttt{mtletterfont} to the fonts
+% used by default in the normal math version. The reassignment of mathcodes
+% is needed in case a priori \cs{MTnonlettersobeymathxx} made some characters math
+% active. Normally the slots as defined by \mst match default slots. The
+% case of minus character is special as it by default with legacy \TeX\ fonts
+% and encodings will try to be the EN DASH, whose slot depends on the
+% encoding. The used mathcode's for the minus sign are thus stored by \mst,
+% but under the shape of \cs{(U)mathchar} control sequences.
+% \begin{macrocode}
\renewcommand*\MTnonlettersdonotobeymathxx{%
\the\mst@undo@nonletters
\ifx\mst@the\@gobble
@@ -7154,7 +7323,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \item seems I simply don't understand what the amsmath code does with
% \cs{std@minus}. It is used in \cs{relbar} and it escapes me why
% \cs{newmcodes@} would ever want to redefine it, and more importantly why
-% on earth it tests the mathcode of |-| for that ? yes, \cs{std@minus} is
+% on earth it tests the mathcode of |-| for that? yes, \cs{std@minus} is
% defined (at begin document) using the mathcode of |-|, but what's the
% connexion to \cs{newmcodes@} ?? Any way \mst defines \cs{relbar} with
% \cs{mst@minus@sign}. Thus I just drop this conditional.
@@ -7603,28 +7772,32 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% |@lgr@| in macro names in place of |@greek@|) which were not everywhere
% followed up, and this broke the |selfGreek| option. Fixed at \mstrelease{1.3z}.
%
+% Prior to \mstrelease{1.4e}, the code of \cs{mst@update@greeksh}, which
+% starts with a definition
+% \cs{mst@greek@lsh} also updated it, depending on branches. But,
+% contrarily to \cs{mst@greek@ush} it is used nowhere else. Also the code
+% now has two parameters |#1#2| for it to be sharable with
+% \cs{MTDeclareVersion@@} needs.
% \begin{macrocode}
\providecommand*\MTgreekupdefault{n}
\providecommand*\MTgreekitdefault{it}
\newif\ifmst@greek@lower@up
\newif\ifmst@greek@upper@up
-\def\mst@update@greeksh{
- \def\mst@greek@lsh{\mst@ltsh}
- \def\mst@greek@ush{\mst@opsh}
- \mst@greek@lower@uptrue
- \expandafter\in@\expanded{{\mst@ltsh.}}{it.,sl.}%
+\def\mst@update@greeksh#1#2{
+ \def\mst@greek@lsh{#1}
+ \def\mst@greek@ush{#2}
+ \mst@greek@lower@uptrue
+ \expandafter\in@\expanded{{\mst@greek@lsh.}}{it.,sl.}%
\ifin@\mst@greek@lower@upfalse\fi
- \mst@greek@upper@uptrue
- \expandafter\in@\expanded{{\mst@opsh.}}{it.,sl.}%
+ \mst@greek@upper@uptrue
+ \expandafter\in@\expanded{{\mst@greek@ush.}}{it.,sl.}%
\ifin@\mst@greek@upper@upfalse\fi
\ifmst@itgreek
- \def\mst@greek@lsh{\MTgreekitdefault}
\def\mst@greek@ush{\MTgreekitdefault}
\mst@greek@lower@upfalse
\mst@greek@upper@upfalse
\fi
\ifmst@upgreek
- \def\mst@greek@lsh{\MTgreekupdefault}
\def\mst@greek@ush{\MTgreekupdefault}
\mst@greek@lower@uptrue
\mst@greek@upper@uptrue
@@ -7632,8 +7805,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\ifmst@frenchmath
\ifmst@itgreek\else
\ifmst@upgreek\else
- \def\mst@greek@lsh{\mst@opsh}
- \def\mst@greek@ush{\mst@opsh}
+ \def\mst@greek@ush{#2}
\mst@greek@lower@uptrue
\mst@greek@upper@uptrue
\fi\fi
@@ -7647,7 +7819,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\mst@greek@upper@uptrue
\fi
}
-\mst@update@greeksh
+\mst@update@greeksh{\mst@ltsh}{\mst@opsh}
% \end{macrocode}
% \begin{macro}{mtgreekup}
% \begin{macro}{mtgreekit}
@@ -8349,7 +8521,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \begin{macrocode}
\AtBeginDocument{%
\let\mst@orig@abd@ast\ast
- \edef\MTnormalasterisk{\noexpand\mst@mathdeactivate*{\the\mathcode`\*}%
+ \edef\MTnormalasterisk{\noexpand\mst@mathdeactivate*{\the\mst@mathcodenum`\*}%
\let\noexpand\ast\noexpand\mst@orig@abd@ast}%
\def\MTactiveasterisk{\def\ast{\mst@ast}%
\mst@mathactivate*{}\mst@ast
@@ -8585,12 +8757,23 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \mstrelease{1.3v} |2019/09/19|: \LaTeX{} of |2019-10-01| defines \cs{leftarrowfill}
% and \cs{rightarrowfill} as robust macros, so we do the same.
%
-% I need to put amsmath under surveillance to check if it decides to
+% I need to put \ctanpkg{amsmath} under surveillance to check if it decides to
% robustify \cs{relbar} at some point, now that the \LaTeX\ team has
% taken over maintenance.
%
% |2019/09/16| Use \cs{protected} for \cs{right\textbar{}leftarrowfill} in the non
% \cs{DeclareRobustCommand} branch?
+%
+% \mstrelease{1.4c} |2024/10/20|: I didn't actually put
+% \ctanpkg{amsmath} under surveillance because I had other things to do with
+% my life. But it appears indeed that \cs{relbar} (and \cs{Relbar}) are now
+% robust also if \ctanpkg{amsmath} is loaded, so I follow suit here.
+%
+% MEMO: the minus character used in \cs{relbar} has its mathcode from the
+% \mst loading time. This is not the same as the minus in subdued mode
+% which fetches its mathcode only at begin document. But anyhow the \mst
+% documentation insists the package should be loaded last among packages
+% modifying math mode rendering.
% \begin{macrocode}
\ifmst@nominus
\else
@@ -8605,7 +8788,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\mathchardef\mst@minus@sign=\mathcode`\-\relax
\fi
\@ifpackageloaded{amsmath}
- {\def\relbar{\mathrel{\mathpalette\mathsm@sh\mst@minus@sign}}}
+ {\DeclareRobustCommand\relbar{\mathrel{\mathpalette\mathsm@sh\mst@minus@sign}}}
{\DeclareRobustCommand\relbar{\mathrel{\smash\mst@minus@sign}}}
\DeclareRobustCommand\rightarrowfill{$\m@th\mathord{\relbar}\mkern-7mu%
\cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
@@ -8648,11 +8831,11 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% change. This means also that |\MTversion| and not |\mathversion|
% must be used for good functioning.
%
-% \mstrelease{1.3u} improves the handling of the minus sign by letting it be compatible
-% with math versions (and not only with the with subdued mechanism but all
-% math versions) having varying font encodings, even possibly classic 8bit
-% font encoding mixed with TU encoding for Unicode engines. For this it is
-% needed to work around a feature of XeTeX/LuaLaTeX, here is original comment:
+% \mstrelease{1.3u} improves the handling of the minus sign by letting it be
+% compatible with math versions (and not only follow the subdued mechanism)
+% having varying font encodings, even possibly classic 8bit font encoding
+% mixed with TU encoding for Unicode engines. For this it is needed to work
+% around a feature (read: bug) of \XeTeX/\LuaLaTeX, here is original comment:
%
% \begin{quotation}
% afaict it is
@@ -8661,69 +8844,190 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% This is counter-intuitive and breaks expectations.
% \end{quotation}
%
-% But the \mstrelease{1.3u} mechanism with \cs{mst@UmathchardefWorkAround@i} introduced a
-% bug which showed under option |noendash| (hence also |symboldelimiters|) with
-% Unicode engines. Fixed at \mstrelease{1.3w}.
+% A \mstrelease{1.3u} mechanism used a \cs{mst@UmathchardefWorkAround@i} (a
+% bug which showed under option |noendash|, hence also |symboldelimiters|, with
+% Unicode engines was fixed at \mstrelease{1.3w}). Unfortunately at
+% \mstrelease{1.4c} we still have to use it because a core deficiency with
+% math primitives in \XeTeX/\LuaTeX\ is still there (breakage of natural
+% expectations based on \TeX\ original syntax paradigm; search for
+% words such as "painful" in the text next or prior to this location).
+% The macro was renamed \cs{mst@ParseUmathchardef}.
+%
+% The next macros are used by \cs{Mathastext} and \cs{MTDeclareVersion} to
+% define \cs{mathchar} or \cs{Umathchar} control sequences which are named
+% \cs{mst@minus@mv}\meta{mathversion} and
+% \cs{mst@varfam@minus@mv}\meta{mathversion} which are math version dependent.
+% The \cs{mst@minus} was added to complement \cs{mst@varfam@minus} at
+% \mstrelease{1.4c}.
+%
+% As far as the author can tell now (at \mstrelease{1.4c}) this naming scheme
+% is due to the need to recover the \cs{textendash} or \cs{textemdash} slots
+% in the math version dependent text font (``legacy \TeX'', i.e. non Unicode)
+% encoding, and each math version can have its own font encoding.
+%
+% Sadly, due to blatant deficiencies of the Unicode engines math primitives,
+% it is only via a detour that we can fetch the extended math code defined by a
+% \cs{Umathchardef} and we have to know it was not via a \cs{mathchardef}.
+% Real pain.
+%
+% The \cs{mst@subduedminus} is defined only at begin document and fetches
+% there what will be the subdued mathcode of \texttt{-}.
+%
+% \mstrelease{1.4d} avoids here low-level \TeX\ error when
+% attempting to use the en-dash slot in a \TeX-legacy non-text
+% encoding such as \texttt{OML} (\LaTeX\ has defines no
+% \cs{textendash} in such encodings). The error was present since
+% changes at \mstrelease{1.3u} which used code adapting to the required
+% font encoding rather than test for it being \texttt{T1} or \texttt{LY1} etc...
% \begin{macrocode}
\let\mst@subduedminus\empty
\let\mst@nonsubduedminus\empty
-\def\mst@dothe@endashstuff#1#2#3{%
+\def\mst@dothe@endashstuff#1#2#3#4{%
\edef\mst@tmp@enc{#3}%
\if1\mst@OneifUniEnc
\mst@Umathchardef#1=2 \symmtoperatorfont "\mst@unicodeminus\relax
\mst@Umathchardef#2=7 \symmtoperatorfont "\mst@unicodeminus\relax
\else
- \DeclareMathSymbol{#1}{\mathbin}{mtoperatorfont}
- {\csname\mst@tmp@enc\string\textendash\endcsname}
- \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
- {\csname\mst@tmp@enc\string\textendash\endcsname}
+ \@ifundefined{\mst@tmp@enc\string\textendash}%
+ {%
+ \PackageWarningNoLine{mathastext}
+ {Impossible to let the \string- use an EN-DASH in a math\MessageBreak
+ version with \mst@tmp@enc\space encoding, as there is none there.\MessageBreak
+ Reverting to default in math version #4}%
+ \let#1\relax\let#2\relax
+ }%
+ {%
+ \DeclareMathSymbol{#1}{\mathbin}{mtoperatorfont}
+ {\csname\mst@tmp@enc\string\textendash\endcsname}%
+ \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
+ {\csname\mst@tmp@enc\string\textendash\endcsname}%
+ }%
\fi
}%
-\def\mst@dothe@emdashstuff#1#2#3{%
+\def\mst@dothe@emdashstuff#1#2#3#4{%
\edef\mst@tmp@enc{#3}%
\if1\mst@OneifUniEnc
\mst@Umathchardef#1=2 \symmtoperatorfont "2014\relax
\mst@Umathchardef#2=7 \symmtoperatorfont "2014\relax
\else
- \DeclareMathSymbol{#1}{\mathbin}{mtoperatorfont}
- {\csname\mst@tmp@enc\string\textemdash\endcsname}
- \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
- {\csname\mst@tmp@enc\string\textemdash\endcsname}
+ \@ifundefined{\mst@tmp@enc\string\textendash}%
+ {%
+ \PackageWarningNoLine{mathastext}
+ {Impossible to let the \string- use an EM-DASH in a math\MessageBreak
+ version with \mst@tmp@enc\space encoding, as there is none there.\MessageBreak
+ Reverting to default in math version #4}%
+ \let#1\relax\let#2\relax
+ }%
+ {%
+ \DeclareMathSymbol{#1}{\mathbin}{mtoperatorfont}
+ {\csname\mst@tmp@enc\string\textemdash\endcsname}%
+ \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
+ {\csname\mst@tmp@enc\string\textemdash\endcsname}%
+ }%
\fi
}%
\def\mst@dothe@hyphenstuff#1#2{%
\DeclareMathSymbol{#1}{\mathbin}{\mst@font@tbu}{"2D}%
\DeclareMathSymbol{#2}{\mathalpha}{\mst@font@tbu}{"2D}%
}%
-\def\mst@varfam@minus{\@nameuse{mst@varfam@minus@mv\math@version}}%
+\def\mst@varfam@minus{\csname mst@varfam@minus@mv\math@version\endcsname}%
+\def\mst@minus{\csname mst@minus@mv\math@version\endcsname}%
+% \end{macrocode}
+% \mstrelease{1.4c} fixes a \mstrelease{1.4} bug:
+% \cs{MTnonlettersdonotobeymathxx} (i.e.\@ not with \texttt{everymath} option)
+% restored the minus to have the mathcode in place at package loading time,
+% which was wrong.
+%
+% The correct mathcode, which is possibly math version dependent, is stored in
+% some \cs{mathchar} or \cs{Umathchar} and can be set via
+% \cs{mst@nonsubduedminus} execution. We can not use
+% \cs{mst@addtodo@nonletters} with \texttt{-} here (except under
+% \texttt{everymath}). We need special coding to use \cs{mst@nonsubduedminus}
+% or \cs{mst@subduedminus}.
+%
+% It is very painful troubles with \XeTeX/\LuaTeX\ once we have a
+% \cs{Umathchardef} to re-assign its extended mathcode to a character token;
+% we can't have syntax common with non-Unicode engine or cases where the
+% control sequence was actually defined via \cs{mathchardef}. Hence there are
+% some unnatural complications. What a pain.
+% \begin{macrocode}
\ifmst@nominus\else
- \expandafter\mst@addtodo@nonletters\string-\mathbin\mst@varfam@minus
+ \ifmst@everymath
+ \expandafter\mst@addtodo@nonletters\string-\mathbin\mst@varfam@minus
+ \else
+% \end{macrocode}
+% I have absolutely no idea why I was paranoid about \texttt{-} catcode (as for
+% other characters) but I feel even at \mstrelease{1.4c} I have to maintain
+% the tradition.
+%
+% \mstrelease{1.4d} takes extra precautions relative to \mst math versions
+% associated with a font encoding not having an EN-DASH slot.
+% \begin{macrocode}
+ \def\mst@tmp#1{%
+ \mst@do@nonletters\expandafter{\the\mst@do@nonletters
+ \@ifundefined{mst@minus@mv\math@version}
+ {\mst@nonmathmathactiveminus}
+ {\mst@mathactivate#1\mathbin\mst@varfam@minus}%
+ }%
+% \end{macrocode}
+% At \mstrelease{1.4c}, \cs{mst@mathdeactivate} adds a check to whether
+% its first argument is \texttt{-} and then does not do itself the
+% mathcode things (which are the matter of
+% either \cs{mst@nonsubduedminus} or \cs{mst@subduedminus}) but only
+% the other stuffs relative to restoration of a previous meaning for
+% the catcode active character.
+% \begin{macrocode}
+ \mst@undo@nonletters\expandafter{\the\mst@undo@nonletters
+ \mst@mathdeactivate#1{}%
+ \mst@nonmathactiveminus}%
+ }\expandafter\mst@tmp\string-%
+% \end{macrocode}
+% We have to go through these things because \cs{MTnonlettersdonotobeymathxx}
+% which executes \cs{mst@undo@nonletters} is done via \cs{MTeverymathoff}
+% which is part of the handling of \texttt{subdued} normal and bold math.
+% \begin{macrocode}
+ \def\mst@nonmathactiveminus{%
+ \ifmst@subdued
+ \ifx\math@version\mst@normalversionname\mst@subduedminus\else
+ \ifx\math@version\mst@boldversionname \mst@subduedminus\else
+ \mst@nonsubduedminus\fi\fi
+ \else
+ \mst@nonsubduedminus
+ \fi}%
+ \fi
+% \end{macrocode}
+% I have no time to test extensively but it seems in 2024 that we still have
+% this blatant deficiency of \LuaTeX/\XeTeX\ with regards to
+% \cs{Umathchardef}: we can't use \cs{Umathcode} or \cs{Umathcodenum} with
+% them. This is obviously a strong disappointment upon which I lamented
+% already here in 2019 and much earlier certainly as it has plagued my life
+% eversince I added support for Unicode engines to \mst.
+%
+% ATTENTION: Defining \cs{mst@tmp@enc} is mandatory for
+% \cs{mst@OneifUniEnc} to work correctly...
+%
+% If neither \texttt{endash} nor \texttt{emdash} is true we will have
+% to redefine this macro next.
+% \begin{macrocode}
\def\mst@nonsubduedminus{%
\edef\mst@tmp@enc{\csname mst@encoding@\math@version\endcsname}%
\if1\mst@OneifUniEnc
\mst@Umathcode`\-=\expandafter
- \mst@UmathchardefWorkAround@i
+ \mst@ParseUmathchardef
\csname mst@minus@mv\math@version\endcsname
\relax
\else
- \mathcode`\-=\@nameuse{mst@minus@mv\math@version}%
+ \@ifundefined{mst@minus@mv\mst@tmp@enc}
+ {\mst@subduedminus}
+ {\mathcode`\-=\mst@minus}%
\fi
- }%
-% \end{macrocode}
-% The above works only if the \cs{mst@minus@mv<name>} was really
-% defined via \cs{Umathchardef}. If it was defined via \cs{DeclareMathSymbol}
-% then it is a \cs{mathchar}, not a \cs{Umathchar}. At least currently (2019).
-% So we need to correct the definition of \cs{mst@nonsubduedminus}.
-% \begin{macrocode}
+ }%
+ \def\mst@ParseUmathchardef{\expandafter\mst@ParseUmathchardef@i\meaning}%
+ \def\mst@ParseUmathchardef@i#1"{"}%
\ifmst@endash\else\ifmst@emdash\else
- \def\mst@nonsubduedminus{%
- \mathcode`\-=\@nameuse{mst@minus@mv\math@version}%
- }%
+ \def\mst@nonsubduedminus{\mathcode`\-=\mst@minus}%
\fi\fi
\fi
-\def\mst@UmathchardefWorkAround@i
- {\expandafter\mst@UmathchardefWorkAround@ii\meaning}%
-\def\mst@UmathchardefWorkAround@ii#1"{"}%
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}
% \begin{macro}{\mst@hbar@mvnormal}
@@ -8771,22 +9075,43 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\ifmst@nohbar\else
\def\mst@subduedhbar{\let\hbar\mst@original@hbar}%
\def\mst@nonsubduedhbar{\expandafter
- \let\expandafter\hbar\csname mst@hbar@mv\math@version\endcsname}%
+ \let\expandafter\hbar\csname mst@hbar@mv\math@version\endcsname
+ \ifx\hbar\relax\let\hbar\mst@original@hbar\fi}%
\fi
\def\mst@mathrlap{\mathpalette\mst@mathrlapinternal}
\def\mst@mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}}
-\def\mst@dothe@hbarstuff#1#2#3{%
+% \end{macrocode}
+% ATTENTION! The definition of \cs{mst@tmp@enc} is mandatory for
+% \cs{mst@OneifUniEnc} to work correctly...
+%
+% The \mstrelease{1.3u} method which was backported from the one for math
+% accents causes a build crash when attempting to create a \mst math
+% version with \texttt{OML} encoding, as there is no |\OML\=| control
+% sequence. Fixed at \mstrelease{1.4d}, see also tne definition of
+% \cs{mst@nonsubduedhbar}.
+% \begin{macrocode}
+\def\mst@dothe@hbarstuff#1#2#3#4{%
\edef\mst@tmp@enc{#3}%
\if1\mst@OneifUniEnc
\mst@Umathchardef#1="7 \symmtletterfont "0127 \relax %% or 210F?
\else
- \begingroup
- \def\@text@composite##1\@text@composite##2{##2}%
- \let\add@accent\@firstoftwo
- \mst@DeclareMathAccent{#2}{\mathalpha}{mtletterfont}%
- {\csname\mst@tmp@enc\string\=\endcsname{}}%
- \endgroup
- \protected\def#1{\mst@mathrlap{#2{\ }}\MTmathcharletterh}%
+ \@ifundefined{\mst@tmp@enc\string\=}%
+ {%
+ \PackageWarningNoLine{mathastext}
+ {Impossible to define the \string\hbar\space using a font with\MessageBreak
+ \mst@tmp@enc\space encoding, as there is no \string\= accent.\MessageBreak
+ Reverting to default \string\hbar\space in math version #4}%
+ \let#1\relax
+ }%
+ {%
+ \begingroup
+ \def\@text@composite##1\@text@composite##2{##2}%
+ \let\add@accent\@firstoftwo
+ \mst@DeclareMathAccent{#2}{\mathalpha}{mtletterfont}%
+ {\csname\mst@tmp@enc\string\=\endcsname{}}%
+ \endgroup
+ \protected\def#1{\mst@mathrlap{#2{\ }}\MTmathcharletterh}%
+ }%
\fi
}%
% \end{macrocode}
@@ -8807,9 +9132,15 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\else
\mathchardef\mst@equal@sign=\mathcode`\=\relax
\fi
-\@ifpackageloaded{amsmath}
-{\def\Relbar{\mathrel\mst@equal@sign}}
-{\DeclareRobustCommand\Relbar{\mathrel{\mst@equal@sign}}}
+% \end{macrocode}
+% \mstrelease{1.4c} makes \cs{Relbar} robust also with \ctanpkg{amsmath} (the original
+% wasn't robust in the past). We can now use same definition whether or not
+% \ctanpkg{amsmath} is loaded.
+%
+% MEMO: the character ``equal'' used in \cs{Relbar} has its mathcode frozen at
+% \mst loading time.
+% \begin{macrocode}
+\DeclareRobustCommand\Relbar{\mathrel\mst@equal@sign}
\DeclareMathSymbol{=}{\mathrel}{\mst@font@tbu}{"3D}
\DeclareMathSymbol{\mst@varfam@equal}{\mathalpha}{\mst@font@tbu}{"3D}
% \end{macrocode}
@@ -9062,7 +9393,23 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\newcommand*{\MTexplicitbracesobeymathxx}{\let\mst@dobraces\@firstofone}
\newcommand*{\MTexplicitbracesdonotobeymathxx}{\let\mst@dobraces\@gobble}
% \end{macrocode}
-% Extras for \mstrelease{1.4} are needed:
+% Extras for \mstrelease{1.4} are needed.
+%
+% MEMO: The coding for \cs{MTexplicitbracesobeymathxx} in this non
+% \texttt{everymath} (default) branch is lazy, as it causes execution
+% of full \cs{MTnonlettersobeymathxx}, but it logically maintains the
+% pre-\mstrelease{1.4} situation, which activates the braces only
+% as part of the global \cs{mst@do@nonletters}. Advantage also is
+% that in \texttt{subdued} it is a no-op because \cs{MTnonlettersobeymathxx}
+% is. But, if issued while in the \texttt{subdued} normal math version, if
+% after switching to another math version user employs
+% \cs{MTnonlettersobeymathxx}, then the effect of
+% \cs{MTexplicitbracesobeymathxx} will be seen. This is the same behavior
+% as under \texttt{everymath} option.
+%
+% But contrarily to \texttt{everymath} situation, in a non-\texttt{subdued}
+% math version, it is not needed to explicitly use \cs{MTnonlettersobeymathxx}
+% prior to \cs{MTexplicitbracesobeymathxx}, the latter implies the former.
% \begin{macrocode}
\ifmst@everymath
\else
@@ -10059,7 +10406,18 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% math version.
%
% \mstrelease{1.3v} lets the redefined \cs{imath} and \cs{jmath} be \cs{protected}.
+%
+% The \mstrelease{1.3u} change is the cause a crash when attempting to define
+% math version in some encodings such as \texttt{OML}. This is same problem
+% as with \cs{hbar} and minus as endash. Fixed at \mstrelease{1.4d}.
+%
+% \mstrelease{1.4d} lets the option \texttt{noletters} prevent definition of
+% \cs{inodot} and \cs{jnodot}.
% \begin{macrocode}
+\let\mst@subduedinodot\@empty
+\let\mst@nonsubduedinodot\@empty
+\ifmst@noletters
+\else
\def\mst@subduedinodot{%
\let\inodot\mst@original@imath
\let\jnodot\mst@original@jmath
@@ -10069,18 +10427,42 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\csname mst@inodot@mv\math@version\endcsname
\expandafter\let\expandafter\jnodot
\csname mst@jnodot@mv\math@version\endcsname
+ \ifx\inodot\relax\let\inodot\mst@original@imath\fi
+ \ifx\jnodot\relax\let\jnodot\mst@original@jmath\fi
}%
-\def\mst@dothe@inodotstuff#1#2#3{%
+\fi
+\def\mst@dothe@inodotstuff#1#2#3#4{%
\edef\mst@tmp@enc{#3}%
\if1\mst@OneifUniEnc
\mst@Umathchardef#1="7 \symmtletterfont "0131 \relax
\mst@Umathchardef#2="7 \symmtletterfont "0237 \relax
\else
- \DeclareMathSymbol{#1}{\mathalpha}{mtletterfont}
- {\csname\mst@tmp@enc\string\i\endcsname}
- \DeclareMathSymbol{#2}{\mathalpha}{mtletterfont}
- {\csname\mst@tmp@enc\string\j\endcsname}
- \fi}%
+ \@ifundefined{\mst@tmp@enc\string\i}%
+ {%
+ \PackageWarningNoLine{mathastext}
+ {Impossible to define the \string\inodot\space using a font with\MessageBreak
+ \mst@tmp@enc\space encoding, as there is no \string\i.\MessageBreak
+ Reverting to default \string\imath\space in math version #4}%
+ \let#1\relax
+ }%
+ {%
+ \DeclareMathSymbol{#1}{\mathalpha}{mtletterfont}
+ {\csname\mst@tmp@enc\string\i\endcsname}%
+ }%
+ \@ifundefined{\mst@tmp@enc\string\j}%
+ {%
+ \PackageWarningNoLine{mathastext}
+ {Impossible to define the \string\jnodot\space using a font with\MessageBreak
+ \mst@tmp@enc\space encoding, as there is no \string\j.\MessageBreak
+ Reverting to default \string\jmath\space in math version #4}%
+ \let#2\relax
+ }%
+ {%
+ \DeclareMathSymbol{#2}{\mathalpha}{mtletterfont}
+ {\csname\mst@tmp@enc\string\j\endcsname}%
+ }%
+ \fi
+}%
\ifmst@defaultimath\else\mst@infoline{\string\imath\space and \string\jmath\space}
\AtEndOfPackage{\AtBeginDocument{%
\protected\def\imath{\inodot}%
@@ -10112,6 +10494,18 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% this whole thing is conditional on the |mathaccents| option anyway, which
% per default is not executed.
%
+% Added note at \mstrelease{1.4d} |2024/10/26|: the above
+% mentioned breakage definitely occurs with non-text encoding
+% such as \texttt{OML}, if an attempt is made via
+% \cs{Mathastext} or \cs{MTDeclareVersion} to set it up for use
+% in a \mst math version. This happens only with
+% \texttt{mathaccents} option, and was shadowed by a
+% similar breakage occurring without any option due to similar
+% code added at \mstrelease{1.3u} for the \cs{hbar}, \cs{imath},
+% \cs{jmath} and even the \texttt{-} which tries to use the
+% EN-DASH slot in an 8bit \TeX\ font encoding. Fixed at \mstrelease{1.4}
+% which emits warnings in such exotic contexts.
+%
% The |\vec| accent is not considered here because it has no suitable
% available glyph in a standard 8bits text font encodings.
%
@@ -10157,9 +10551,16 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\csname mst@original@\@tempa\endcsname
\expandafter\let\csname\@tempa\space\expandafter\endcsname
\csname mst@original@\@tempa\space\endcsname
- }%
+ }%
}%
+% \end{macrocode}
+% Modified at \mstrelease{1.4d} to catch math versions trying to use a
+% non-text encoding such as \texttt{OML}.
+% \begin{macrocode}
\def\mst@nonsubduedmathaccents{%
+ \@ifundefined{mst@grave@mv\math@version}
+ {\mst@subduedmathaccents}
+ {%
\@tfor\@tempa:={grave}{acute}{check}{breve}{bar}%
{dot}{ddot}{mathring}{hat}{tilde}%
\do
@@ -10167,7 +10568,8 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\csname mst@\@tempa @mv\math@version\endcsname
\expandafter\let\csname\@tempa\space\expandafter\endcsname
\csname mst@\@tempa @mv\math@version\space\endcsname
-}%
+ }%
+ }%
}%
\def\mst@dothe@mathaccentsstuff#1#2{%
\begingroup
@@ -10176,53 +10578,60 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\let\add@accent\@firstoftwo
\let\add@unicode@accent\@firstoftwo
\if1\mst@OneifUniEnc
+% \end{macrocode}
+% Incredibly \mstrelease{1.4} removed the definition of a certain
+% \cs{mst@robustifyingspace} but kept on using it here. The author
+% add probably searched for a related conditional, but not for the
+% macro itself... and there was a test file which would have shown
+% the regression but it was not compiled.
+% \begin{macrocode}
\ifmst@unimathaccents
- \expandafter\xdef\csname mst@grave@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@grave@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\`\endcsname{}\relax}%
- \expandafter\xdef\csname mst@acute@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@acute@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\'\endcsname{}\relax}%
- \expandafter\xdef\csname mst@check@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@check@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\v\endcsname{}\relax}%
- \expandafter\xdef\csname mst@breve@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@breve@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\u\endcsname{}\relax}%
- \expandafter\xdef\csname mst@bar@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@bar@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\=\endcsname{}\relax}%
- \expandafter\xdef\csname mst@dot@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@dot@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\.\endcsname{}\relax}%
- \expandafter\xdef\csname mst@ddot@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@ddot@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\"\endcsname{}\relax}%
- \expandafter\xdef\csname mst@mathring@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@mathring@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\r\endcsname{}\relax}%
- \expandafter\xdef\csname mst@hat@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@hat@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
\csname#2\string\^\endcsname{}\relax}%
- \expandafter\xdef\csname mst@tilde@mv#1\mst@robustifyingspace\endcsname
+ \expandafter\xdef\csname mst@tilde@mv#1 \endcsname
{\mst@Umathaccent
7
\number\symmtoperatorfont\space
@@ -10285,7 +10694,19 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% or later it creates robust macros.
%
% \cs{mst@DeclareMathAccent} to work around \url{https://github.com/latex3/latex2e/issues/216}
-% \begin{macrocode}
+%
+% \mstrelease{1.4d} adds steps to avoid a crash if user is trying
+% to set up a \mst math version with an encoding such as
+% \texttt{OML}.
+% \begin{macrocode}
+ \@ifundefined{#2\string\`}
+ {\PackageWarningNoLine{mathastext}
+ {Impossible to pick up text accents from an #2\MessageBreak
+ encoded font. The mathaccent option will be\MessageBreak
+ ignored for the math version #1}%
+ \let\mst@tempa0}
+ {\let\mst@tempa1}%
+ \if\mst@tempa1%
\expandafter\mst@DeclareMathAccent\expandafter
{\csname mst@grave@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
{\csname#2\string\`\endcsname{}}
@@ -10316,6 +10737,13 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\expandafter\mst@DeclareMathAccent\expandafter
{\csname mst@tilde@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
{\csname#2\string\~\endcsname{}}
+ \else
+% \end{macrocode}
+% The math version can be declared multiple times we can not simply
+% do some \cs{@nameuse} here.
+% \begin{macrocode}
+ \global\expandafter\let\csname mst@grave@mv#1\endcsname\relax
+ \fi
\fi
\endgroup
}%
@@ -10496,44 +10924,17 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% thus things are done here under |selfGreek| or other Greek options
% which ultimately serve nothing and conversely things are done here
% for |LGRgreek| which are superfluous.
+%
+% At \mstrelease{1.4e}, the code previously used here was replaced with a
+% call to a slightly modified \cs{mst@update@greeksh} to share code.
+% Formerly some \cs{mst@greek@ush@loc} and \cs{mst@greek@lsh@loc} were
+% defined here but this appears to have been due only to extra cautious
+% coding to avoid overwriting something else. On closer
+% examination (after a great many years) this swas not needed at all.
% \begin{macrocode}
- \def\mst@greek@lsh@loc{\csname mst@ltshape@\mst@version\endcsname}%
- \def\mst@greek@ush@loc{\csname mst@shape@\mst@version\endcsname}%
- \mst@greek@lower@uptrue
- \expandafter\in@\expanded{{\mst@greek@lsh@loc.}}{it.,sl.}%
- \ifin@\mst@greek@lower@upfalse\fi
- \mst@greek@upper@uptrue
- \expandafter\in@\expanded{{\mst@greek@ush@loc.}}{it.,sl.}%
- \ifin@\mst@greek@upper@upfalse\fi
- \ifmst@itgreek
- \def\mst@greek@lsh@loc{\MTgreekitdefault}%
- \def\mst@greek@ush@loc{\MTgreekitdefault}%
- \mst@greek@lower@upfalse
- \mst@greek@upper@upfalse
- \fi
- \ifmst@upgreek
- \def\mst@greek@lsh@loc{\MTgreekupdefault}%
- \def\mst@greek@ush@loc{\MTgreekupdefault}%
- \mst@greek@lower@uptrue
- \mst@greek@upper@uptrue
- \fi
- \ifmst@frenchmath
- \ifmst@itgreek\else
- \ifmst@upgreek\else
- \def\mst@greek@lsh@loc{\csname mst@shape@\mst@version\endcsname}%
- \def\mst@greek@ush@loc{\csname mst@shape@\mst@version\endcsname}%
- \mst@greek@lower@uptrue
- \mst@greek@upper@uptrue
- \fi\fi
- \fi
- \ifcase\mst@greek@select
- \or
- \def\mst@greek@ush@loc{\MTgreekitdefault}%
- \mst@greek@upper@upfalse
- \or
- \def\mst@greek@ush@loc{\MTgreekupdefault}%
- \mst@greek@upper@uptrue
- \fi
+ \mst@update@greeksh
+ {\csname mst@ltshape@\mst@version\endcsname}%
+ {\csname mst@shape@\mst@version\endcsname}%
% \end{macrocode}
% \mstrelease{1.3za} refactoring to reduce code duplication; I briefly considered
% trying to enhance \cs{MTgreekfont} to work also with |LGRgreeks| and
@@ -10568,31 +10969,46 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\immediate\write\m@ne{}%
\else
\ifmst@selfGreek
- \SetSymbolFont{mtselfGreekfont}{#2}{OT1}{\mst@greekfont}{#5}{\mst@greek@ush@loc}%
+ \SetSymbolFont{mtselfGreekfont}{#2}{OT1}{\mst@greekfont}{#5}{\mst@greek@ush}%
\immediate\write\m@ne{}%
-\PackageInfo{mathastext}{Capital Greek letters (shape `\mst@greek@ush@loc\string'
+\PackageInfo{mathastext}{Capital Greek letters (shape `\mst@greek@ush\string'
will use the font\MessageBreak
family `\mst@greekfont\string' (OT1) in mathastext\MessageBreak
math version `\mst@version\string' declared}%
\immediate\write\m@ne{}%
\fi
\fi
- \edef\mst@tmp{\expandafter\noexpand\csname mst@hbar@mv#2\endcsname
- \expandafter\noexpand\csname mst@ltbar@mv#2\endcsname}%
- \expandafter\mst@dothe@hbarstuff\mst@tmp{#3}%
+% \end{macrocode}
+% \mstrelease{1.4d} adds here a check for the \texttt{nohbar} option.
+% Presumably this was not done before because anyhow the package does
+% \centeredline{|\let\mst@subduedhbar\@empty\let\mst@nonsubduedhbar\@empty|}
+% But it is done in \cs{Mathastext@}. And besides,
+% for the \texttt{-} the code does check the \texttt{endash} et al.\@ options.
+% \begin{macrocode}
+ \ifmst@nohbar\else
+ \edef\mst@tmp{\expandafter\noexpand\csname mst@hbar@mv#2\endcsname
+ \expandafter\noexpand\csname mst@ltbar@mv#2\endcsname}%
+ \expandafter\mst@dothe@hbarstuff\mst@tmp{#3}{#3}%
+ \fi
\edef\mst@tmp{\expandafter\noexpand\csname mst@inodot@mv#2\endcsname
\expandafter\noexpand\csname mst@jnodot@mv#2\endcsname}%
- \expandafter\mst@dothe@inodotstuff\mst@tmp{#3}%
+% \end{macrocode}
+% \mstrelease{1.4d} lets the option \texttt{noletters} prevent definition of
+% \cs{inodot} and \cs{jnodot}.
+% \begin{macrocode}
+ \ifmst@noletters\else
+ \expandafter\mst@dothe@inodotstuff\mst@tmp{#3}{#2}%
+ \fi
\ifmst@mathaccents
\mst@dothe@mathaccentsstuff{#2}{#3}%
\fi
\edef\mst@tmp{\expandafter\noexpand\csname mst@minus@mv#2\endcsname
\expandafter\noexpand\csname mst@varfam@minus@mv#2\endcsname}%
\ifmst@endash
- \expandafter\mst@dothe@endashstuff\mst@tmp{#3}%
+ \expandafter\mst@dothe@endashstuff\mst@tmp{#3}{#2}%
\else
\ifmst@emdash
- \expandafter\mst@dothe@emdashstuff\mst@tmp{#3}%
+ \expandafter\mst@dothe@emdashstuff\mst@tmp{#3}{#2}%
\else
\expandafter\mst@dothe@hyphenstuff\mst@tmp
\fi
@@ -10729,7 +11145,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% but there is a \cs{MTeverymathoff} done next in the \emph{normal} and
% \emph{bold} version. It does \cs{MTicinmath} and \cs{MTmathactivedigits}
% which however are no-ops (only partly for the former, and for the latter
-% always anyhow if no option |activedigits|) in subdude mode.
+% always anyhow if no option |activedigits|) in subdued mode.
% \begin{macrocode}
\MTmathoperatorsobeymathxx
\MTeverymathdefault
@@ -10771,11 +11187,17 @@ defaultbf,defaultit,defaultsf,defaulttt}}
%
% \mstrelease{1.3u} extends this further to allow per-math-version meanings
% for them.
+%
+% \mstrelease{1.4c} removes usage here of \cs{mst@subduedminus} (which anyhow is empty
+% under \texttt{everymath}) because \cs{MTeverymathoff} does
+% \cs{MTnonlettersdonotobeymathxx} which executes the \cs{mst@undo@nonletters}
+% \cs{toks} hence ends up executing \cs{mst@subduedminus}. On second thoughts
+% not so sure good idea to have removed it because documentation mentions
+% \cs{MTeverymathoff} and sadly suggests redefining it for some effects.
% \begin{macrocode}
\mst@subduedhbar
\mst@subduedinodot
\mst@subduedmathaccents
- \mst@subduedminus
\else
\ifx\math@version\mst@boldversionname
\mst@restorealphabets
@@ -10788,7 +11210,6 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\mst@subduedhbar
\mst@subduedinodot
\mst@subduedmathaccents
- \mst@subduedminus
\else
\mst@setalphabets
% \end{macrocode}
@@ -10818,6 +11239,12 @@ defaultbf,defaultit,defaultsf,defaulttt}}
%
% MEMO: the mathematical activation of letters happened above from
% \cs{MTeverymathdefault}. Idem if |activedigits| for digits.
+%
+% Sadly the \mstrelease{1.3y} addition broke usage of (non-\texttt{subdued}
+% |\MTversion{normal}| under option |LGRgreek|, as the
+% \cs{ifmst@greek@normal@upper@up} used here never got any definition, hence
+% \cs{ifmst@greek@upper@up} got set to \cs{relax} which caused down the road
+% an |Extra \else| error in \cs{MTcustomgreek}.
% \begin{macrocode}
\expandafter\let\csname ifmst@greek@upper@up\expandafter\endcsname
\csname ifmst@greek@\math@version @upper@up\endcsname
@@ -10903,8 +11330,31 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\Mathastext@
{\MTDeclareVersion[\mst@ltsh]{#1}{\mst@enc}{\mst@fam}{\mst@ser}{\mst@opsh}}%
}%
+% \end{macrocode}
+% This is thus the macro which is triggered by usage of \cs{Mathastext} in the
+% preamble without optional argument. The package will execute it once after
+% its definition.
+% \begin{macrocode}
\def\Mathastext@ {%
- \mst@update@greeksh
+% \end{macrocode}
+% This \cs{mst@update@greeksh} redefines \cs{mst@greek@ush} (used below in a
+% \cs{SetSymbolFont} executed if option \texttt{selfGreek}) and sets the
+% \cs{ifmst@greek@upper@up} and \cs{ifmst@greek@lower@up} conditionals.
+% \begin{macrocode}
+ \mst@update@greeksh {\mst@ltsh}{\mst@opsh}%
+% \end{macrocode}
+% \mstrelease{1.4e} fixes belatedly a bug introduced at \mstrelease{1.3y},
+% which had broken usage of |\MTversion{normal}| in documents using
+% \texttt{LGRgreek} or \texttt{LGRgreeks} (but not if \texttt{subdued}).
+% \begin{macrocode}
+ \expandafter\let\csname ifmst@greek@normal@upper@up\expandafter\endcsname
+ \csname ifmst@greek@upper@up\endcsname
+ \expandafter\let\csname ifmst@greek@normal@lower@up\expandafter\endcsname
+ \csname ifmst@greek@lower@up\endcsname
+ \expandafter\let\csname ifmst@greek@bold@upper@up\expandafter\endcsname
+ \csname ifmst@greek@upper@up\endcsname
+ \expandafter\let\csname ifmst@greek@bold@lower@up\expandafter\endcsname
+ \csname ifmst@greek@lower@up\endcsname
\edef\mst@encoding@normal{\mst@enc}%
\edef\mst@family@normal{\mst@fam}%
\edef\mst@series@normal{\mst@ser}%
@@ -11126,42 +11576,72 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\mst@infoline{Other characters (digits, ...) and \string\log-like names will be}%
\mst@infoline{typeset with the \mst@shape@normal\space shape.}%
\fi
- \fi
+ \fi % not subdued
\ifmst@nohbar\else
\mst@infoline{\string\hbar}%
\mst@dothe@hbarstuff
- \mst@hbar@mvnormal\mst@ltbar@mvnormal\mst@encoding@normal
+ \mst@hbar@mvnormal\mst@ltbar@mvnormal\mst@encoding@normal{normal}%
\let\mst@hbar@mvbold\mst@hbar@mvnormal
\fi
- \mst@dothe@inodotstuff\inodot\jnodot\mst@encoding@normal
- \let\mst@inodot@mvnormal\inodot
- \let\mst@inodot@mvbold\inodot
- \let\mst@jnodot@mvnormal\jnodot
- \let\mst@jnodot@mvbold\jnodot
+% \end{macrocode}
+% \mstrelease{1.4d} lets the option \texttt{noletters} prevent definition of
+% \cs{inodot} and \cs{jnodot}.
+% \begin{macrocode}
+ \ifmst@noletters\else
+ \mst@dothe@inodotstuff\inodot\jnodot\mst@encoding@normal{normal}%
+ \let\mst@inodot@mvnormal\inodot
+ \let\mst@inodot@mvbold\inodot
+ \let\mst@jnodot@mvnormal\jnodot
+ \let\mst@jnodot@mvbold\jnodot
+ \fi
\ifmst@mathaccents
\mst@infoline{math accents}%
\mst@dothe@mathaccentsstuff{normal}\mst@encoding@normal
\fi
\ifmst@nominus\else
- \mst@infoline{minus as endash}%
+ \ifmst@subdued
+ \mst@infoline{minus is kept as is in subdued normal and bold math versions}%
+ \else
+ \mst@infoline{minus either as endash, Unicode minus, emdash or hyphen}%
+% \end{macrocode}
+% If \texttt{subdued} the \cs{mst@minus@mvnormal} etc... as defined via the
+% \cs{mst@dothe@endashstuff} et al.\@ would never end up being used in their
+% respective \emph{normal} and \emph{bold} versions, because the actual
+% mathcode assignment to \texttt{-} will proceed via \cs{mst@subduedminus}
+% which simply uses the mathcode in place at |\begin{document}|. And
+% \cs{MTnonlettersobeymathxx} is a no-op in \texttt{subdued} math versions.
+% And (at \mstrelease{1.4c}) \cs{MTnonlettersdonotobeymathxx} (which is
+% executed via \cs{MTeverymathoff}) will do (via \cs{mst@undo@nonletters})
+% \cs{mst@subduedminus} in these math versions (see \cs{mst@nonmathactiveminus}).
+%
+% With \texttt{everymath} option the mathcode assignment is done similarly on
+% entering the math version (either \cs{mst@subduedminus} or
+% \cs{mst@nonsubduedminus}) or when using mathematically active character via
+% \cs{mst@the}\cs{mst@do@nonletters} done at \cs{everymath}. And \cs{mst@the}
+% is set to \cs{@gobble} in subdued math versions.
+%
+% So at \mstrelease{1.4c} the execution of this code was made conditional on
+% not being in \texttt{subdued} mode.
+% \begin{macrocode}
\ifmst@endash
\mst@dothe@endashstuff\mst@minus@mvnormal\mst@varfam@minus@mvnormal
- \mst@encoding@normal
+ \mst@encoding@normal {normal}%
\mst@dothe@endashstuff\mst@minus@mvbold\mst@varfam@minus@mvbold
- \mst@encoding@normal
+ \mst@encoding@normal {bold}%
\else
\ifmst@emdash
\mst@dothe@emdashstuff\mst@minus@mvnormal\mst@varfam@minus@mvnormal
- \mst@encoding@normal
+ \mst@encoding@normal {normal}%
\mst@dothe@emdashstuff\mst@minus@mvbold\mst@varfam@minus@mvbold
- \mst@encoding@normal
+ \mst@encoding@normal {bold}%
\else
\mst@dothe@hyphenstuff\mst@minus@mvnormal\mst@varfam@minus@mvnormal
\let\mst@minus@mvbold\mst@minus@mvnormal
\let\mst@varfam@minus@mvbold\mst@varfam@minus@mvnormal
\fi
\fi
- \fi
+ \fi % not subdued
+ \fi % not nominus
% \end{macrocode}
% \mstrelease{1.3zb} moves this info line last and also explicitly mentions |italic| or
% |frenchmath| (here and at some other locations above).
@@ -11311,7 +11791,8 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \end{macro}
% \let\temp~
% \def~{\rlap}
-% \begin{macro}{Things to do last ~{``at begin document''}}
+% \begin{macro}{Things to do last}
+% \begin{macro}{``at begin document''}
% \let~\temp
%
% \mstrelease{1.4} has a significant change here that mathematical
@@ -11373,13 +11854,16 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\expandafter\let\csname mst@original@\@tempa\space\expandafter\endcsname
\csname \@tempa\space\endcsname
}%
- \ifmst@XeOrLua
- \edef\mst@subduedminus
- {\mst@Umathcodenum`\noexpand\-=\the\mst@Umathcodenum`\-\relax}%
- \else
- \edef\mst@subduedminus{\mathcode`\noexpand\-=\the\mathcode`\-\relax}%
- \fi
+% \end{macrocode}
+% \mstrelease{1.4c} has \cs{mst@mathcodenum} which is either alias of
+% \cs{Umathcodenum} or of \cs{mathcode}.
+% \begin{macrocode}
+ \edef\mst@subduedminus{\mst@mathcodenum`\noexpand\-=\the\mst@mathcodenum`\-\relax}%
\ifmst@subdued
+% \end{macrocode}
+% This \cs{MTeverymathoff} does \cs{MTnonlettersdonotobeymathxx}, which has
+% been already set to its final definition.
+% \begin{macrocode}
\MTeverymathoff
\MTresetnewmcodes
\MTnoicinmath
@@ -11399,7 +11883,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% As we are now in \cs{AtBeginDocument} we try to be careful not to overwrite
% \cs{MTicinmath}, \cs{MTnoicinmath}, \cs{MTicalsoinmathxx}, ... if issued by
% the user in the preamble, though. And we do not execute
-% \cs{MTmathactiveletters}, it is issued by the package at loading time in
+% \cs{MTmathactiveletters}, it is issued by \mst at loading time in
% order to allow user to cancel it if desired from inside the preamble.
% \begin{macrocode}
\ifx\mst@itcorr\@undefined
@@ -11419,7 +11903,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
}%
\AtEndOfPackage{\AtBeginDocument{\ifmst@subdued\else\mst@nonsubduedmathaccents\fi}}%
% \end{macrocode}
-% \end{macro}
+% \end{macro}\end{macro}
% \begin{macro}{subdued}
% \mstrelease{1.15}: The subdued code was initiated in May 2011. I returned to
% |mathastext| on Sep 24, 2012, and decided to complete what I had started
diff --git a/macros/latex/contrib/mathastext/mathastext.pdf b/macros/latex/contrib/mathastext/mathastext.pdf
index 635b6149fb..fd64a38b85 100644
--- a/macros/latex/contrib/mathastext/mathastext.pdf
+++ b/macros/latex/contrib/mathastext/mathastext.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfixs/README.txt b/macros/latex/contrib/mathfixs/README.txt
index 834d286ff9..a8e8b312a0 100644
--- a/macros/latex/contrib/mathfixs/README.txt
+++ b/macros/latex/contrib/mathfixs/README.txt
@@ -1,5 +1,5 @@
-mathfixs v1.01
-Copyright 2018 Niklas Beisert
+mathfixs v1.11
+Copyright 2018-2024 Niklas Beisert
mathfixs is a LaTeX2e package to fix some odd behaviour in math mode
such as spacing around fractions and roots, math symbols within bold
@@ -29,6 +29,6 @@ This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
diff --git a/macros/latex/contrib/mathfixs/mathfixs.dtx b/macros/latex/contrib/mathfixs/mathfixs.dtx
index 1f985e3707..00d95b801c 100644
--- a/macros/latex/contrib/mathfixs/mathfixs.dtx
+++ b/macros/latex/contrib/mathfixs/mathfixs.dtx
@@ -1,14 +1,14 @@
% \iffalse
%
-% mathfixs.dtx Copyright (C) 2018 Niklas Beisert
+% mathfixs.dtx Copyright (C) 2018-2024 Niklas Beisert
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
@@ -18,10 +18,11 @@
% and the derived files mathfixs.sty and mafxsamp.tex.
%
%<package|sample>\NeedsTeXFormat{LaTeX2e}[1996/12/01]
-%<package>\ProvidesPackage{mathfixs}[2018/12/30 v1.01 various fixes for math mode]
-%<sample>\ProvidesFile{mafxsamp.tex}[2018/12/30 v1.01 sample for mathfixs]
+%<package>\ProvidesPackage{mathfixs}[2024/10/25 v1.11 various fixes for math mode]
+%<sample>\ProvidesFile{mafxsamp.tex}[2024/10/25 v1.11 sample for mathfixs]
%<*driver>
-%\ProvidesFile{mathfixs.drv}[2018/12/30 v1.01 mathfixs reference manual file]
+\def\thedate#1{2024/10/25}\def\theversion#1{v1.11}
+\ProvidesFile{mathfixs.dtx}[\thedate{} \theversion{} mathfixs reference manual file]
\PassOptionsToClass{10pt,a4paper}{article}
\documentclass{ltxdoc}
@@ -29,24 +30,29 @@
\usepackage{hyperref}
\usepackage{hyperxmp}
\usepackage[usenames]{color}
+\usepackage{amssymb}
\hypersetup{colorlinks=true}
\hypersetup{pdfstartview=FitH}
\hypersetup{pdfpagemode=UseNone}
\hypersetup{pdfsource={}}
\hypersetup{pdflang={en-UK}}
-\hypersetup{pdfcopyright={Copyright 2018 Niklas Beisert.
+\hypersetup{pdfcopyright={Copyright 2018-2024 Niklas Beisert.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.}}
-\hypersetup{pdflicenseurl={http://www.latex-project.org/lppl.txt}}
+\hypersetup{pdflicenseurl={https://www.latex-project.org/lppl.txt}}
\hypersetup{pdfcontactaddress={ETH Zurich, ITP, HIT K,
Wolfgang-Pauli-Strasse 27}}
\hypersetup{pdfcontactpostcode={8093}}
\hypersetup{pdfcontactcity={Zurich}}
\hypersetup{pdfcontactcountry={Switzerland}}
\hypersetup{pdfcontactemail={nbeisert@itp.phys.ethz.ch}}
-\hypersetup{pdfcontacturl={http://people.phys.ethz.ch/\xmptilde nbeisert/}}
+\hypersetup{pdfcontacturl={https://people.phys.ethz.ch/\xmptilde nbeisert/}}
+
+\newcommand{\secref}[1]{\hyperref[#1]{section \ref*{#1}}}
+\newcommand{\ctanref}[2]{\href{https://ctan.org/#1}{#2}}
+\newcommand{\ctanpkg}[1]{\ctanref{pkg/#1}{\textsf{#1}}}
\parskip1ex
\parindent0pt
@@ -65,7 +71,7 @@
{\texttt{nbeisert@itp.phys.ethz.ch}}}
\hypersetup{pdfauthor={Niklas Beisert}}
\hypersetup{pdfsubject={Manual for the LaTeX2e Package mathfixs}}
-\date{30 December 2018, \textsf{v1.01}}
+\date{\thedate{}, \theversion{}}
\maketitle
\begin{abstract}\noindent
@@ -85,32 +91,6 @@ It also adds some related macros.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\makeatletter
-\newcommand{\timingprint}[2][l]{%
- \ifhmode\par\fi%
- \ifvmode%
- \@bsphack%
- \dimen@\prevdepth%
- \nointerlineskip%
- \if r#1%
- \smash{\rlap{\hspace{\textwidth}\parbox[t]{1cm}%
- {\raggedright\renewcommand{\bfdefault}{b}#2}}}%
- \else%
- \smash{\llap{\parbox[t]{1cm}%
- {\raggedleft\renewcommand{\bfdefault}{b}#2}}}%
- \fi%
- \prevdepth\dimen@%
- \@esphack%
- \fi}
-\newcommand{\printmark}[1]{\timingprint{\footnotesize#1}}
-\newcommand{\printremark}[1]{%
- \timingprint[r]{\tiny\sffamily\hrule#1\hrule}}
-\makeatother
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
Undoubtedly, \TeX{} and \LaTeX{} are excellent at
@@ -147,9 +127,11 @@ to some extent to accommodate for the desired style.
\section{Usage}
To use the package \textsf{mathfixs} add the command
+%
\begin{center}
|\usepackage{mathfixs}|
\end{center}
+%
to the preamble of your \LaTeX{} document.
Furthermore you must select the desired features explicitly
as described below, otherwise the package will have no effect.
@@ -163,6 +145,7 @@ which may modify the default behaviour in an unintended fashion.
\DescribeMacro{\ProvideMathFix}
Features and options can be selected by the commands:
+%
\begin{center}
\begin{tabular}{rl}
&|\usepackage[|\textit{opts}|]{mathfixs}|
@@ -262,7 +245,7 @@ without further adjustments.
\DescribeMacro{\genfrac}
\DescribeMacro{\dfrac}
\DescribeMacro{\tfrac}
-The macro |\genfrac| of the package \textsf{amsmath}
+The macro |\genfrac| of the package \ctanpkg{amsmath}
is modified suitably when the latter is loaded.
This also affects the macros |\dfrac| and |\tfrac| for fractions
in styles |\displaystyle| and |\textstyle|, respectively.
@@ -324,7 +307,7 @@ has a more uniform appearance:
\DescribeMacro{\rfrac}
The feature |rfrac| defines the macro |\rfrac|
to typeset a fraction in text style or smaller.
-It is similar to |\tfrac| of the package \textsf{amsmath},
+It is similar to |\tfrac| of the package \ctanpkg{amsmath},
but it will not choose text style when in the script styles
and it will not produce surrounding space
when the feature |frac| is used.
@@ -344,8 +327,8 @@ The spacing around the slash should be reduced
to join the expression.
The package provides this representation
as the feature |vfrac| defining the macro |\vfrac|.
-It is similar to |\nicefrac| of the package \textsf{nicefrac}
-or the more advanced implementation |\sfrac| of the package \textsf{xfrac}.
+It is similar to |\nicefrac| of the package \ctanpkg{nicefrac}
+or the more advanced implementation |\sfrac| of the package \ctanpkg{xfrac}.
As vulgar fractions are often (mainly) used within plain text,
the macro |\vfrac| also works in text mode.
The optional argument |vfrac={\|\textit{cmd}|}| specifies
@@ -413,7 +396,7 @@ y\mskip-5mu
\DescribeMacro{rootskippre}
\DescribeMacro{rootskippost}
The option |rootclass=|\textit{class}
-can be used to customise the math class of the vulgar fraction.
+can be used to customise the math class of the root.
The option |rootskipend=|\textit{muskip}
defines the additional skip at the end of the radicand
within the radical (must be given in math units |mu|).
@@ -437,7 +420,7 @@ specifies the starting height with a default value of $0.8$.
\subsection{Space Representing Multiplication Signs}
Mathematical expressions regularly omit explicit multiplication signs
-between factors, e.g. $x^2yz$. All is well unless
+between factors, e.g.\ $x^2yz$. All is well unless
some of the factors are compound expressions such as
$\Delta x$ or differentials $dx$ (or $\mathrm{d}x$)
where additional space is typically inserted by
@@ -512,8 +495,8 @@ provided by \TeX{} to have a default italic shape.
Upright capital Greek letters remain accessible
by switching to the upright shape using |\mathrm|
or by declaring them as part of an operator,
-e.g. |\operatorname| or |\DeclareMathOperator|
-(package \textsf{amsmath}).
+e.g.\ |\operatorname| or |\DeclareMathOperator|
+(package \ctanpkg{amsopt} within \ctanpkg{amsmath}).
The optional argument |greekcaps=|\textit{pre} will
instead define the macros |\|\textit{pre}|Gamma|, etc.,
@@ -537,9 +520,10 @@ This allows them to be typeset in different font series
such as |\mathbold| described below.
However, when trying to cast them in upright shape
they will be typeset as altogether different symbols,
-e.g. |\mathrm{\alpha}| becomes the ligature `ff'
+e.g.\ |\mathrm{\alpha}| becomes the ligature `ff'
which occupies the same slot in the \TeX{} font encodings OML vs.\ OT1.
Hence, some caution is needed when this feature is used.
+Note that math font redefinitions may clash with this feature.
The optional argument |greeklower=|\textit{pre} will
instead define the macros |\|\textit{pre}|alpha|, etc.,
@@ -548,6 +532,11 @@ and keep the original definitions.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Bold Fonts}
+Combining bold fonts and math mode in \LaTeX\ sometimes
+yields unintuitive results.
+The following two features assist
+the intuitive use of bold fonts in math mode.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{Feature \texttt{autobold}.}
\DescribeMacro{autobold}
@@ -580,9 +569,488 @@ To typeset bold italic letters simply use |\mathbold{abc}|.
To make this work for lowercase Greek letters as well,
the feature |greeklower| must be activated.
The optional argument |mathbold={\|\textit{cmd}|}| specifies
-an alternative command name |\|\textit{cmd} for |\mathbold|, e.g.
-|mathbold={\mathbit}|.
+an alternative command name |\|\textit{cmd} for |\mathbold|,
+e.g.\ |mathbold={\mathbit}|.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Mathematical Functions and Operators}
+\LaTeX\ defines many basic standard mathematical functions and operators,
+see below.
+The following features fill some gaps in the collection of functions
+and they provide worthwhile alternative representations for some
+functions and operators. All of the following features require
+that the package \ctanpkg{amsopn} (part of \ctanpkg{amsmath})
+is loaded \emph{before} \textsf{mathfixs}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Native \LaTeX{} Functions and Operators.}
+
+As a reference, \LaTeX{} supplies the following functions and operators.
+All of them are overwritten by \ctanpkg{amsopn} within \ctanpkg{amsmath}.
+
+Exponential and logarithm functions:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\exp| & $\exp$ & exponential function \\
+|\log| & $\log$ & logarithm function \\
+|\lg| & $\lg$ & common logarithm function \\
+|\ln| & $\ln$ & natural logarithm function \\
+\end{tabular}
+\end{center}
+
+Trigonometric functions:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\sin| & $\sin$ & sine function \\
+|\cos| & $\cos$ & cosine function \\
+|\tan| & $\tan$ & tangent function \\
+|\cot| & $\cot$ & cotangent function \\
+|\sec| & $\sec$ & secant function \\
+|\csc| & $\csc$ & cosecant function \\
+|\arcsin| & $\arcsin$ & inverse sine function \\
+|\arccos| & $\arccos$ & inverse cosine function \\
+|\arctan| & $\arctan$ & inverse tangent function \\
+\end{tabular}
+\end{center}
+
+Hyperbolic functions:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\sinh| & $\sinh$ & hyperbolic sine function \\
+|\cosh| & $\cosh$ & hyperbolic cosine function \\
+|\tanh| & $\tanh$ & hyperbolic tangent function \\
+|\coth| & $\coth$ & hyperbolic cotangent function \\
+\end{tabular}
+\end{center}
+
+Extremal values:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\max| & $\max$ & maximum of a set \\
+|\min| & $\min$ & minimum of a set \\
+|\sup| & $\sup$ & supremum of a set \\
+|\inf| & $\inf$ & infimum of a set \\
+\end{tabular}
+\end{center}
+
+Limits:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\lim| & $\lim$ & limit operator \\
+|\limsup| & $\limsup$ & limit superior operator \\
+|\liminf| & $\liminf$ & limit inferior operator \\
+|\injlim| & inj\,lim & ? (\ctanpkg{amsopn}/\ctanpkg{amsmath} only) \\
+|\projlim| & proj\,lim & ? (\ctanpkg{amsopn}/\ctanpkg{amsmath} only) \\
+\end{tabular}
+\end{center}
+
+Assorted functions and operators:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\arg| & $\arg$ & argument of a complex number \\
+|\det| & $\det$ & determinant of a matrix \\
+|\ker| & $\ker$ & kernel of a map \\
+|\dim| & $\dim$ & dimension of \ldots \\
+|\deg| & $\deg$ & degree of \ldots \\
+|\gcd| & $\gcd$ & greatest common divisor \\
+|\hom| & $\hom$ & ? \\
+|\Pr| & $\Pr$ & ? \\
+\end{tabular}
+\end{center}
+
+Modulo statements:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\bmod| & $X \bmod Y$ & modulo statement \\
+|\pmod| & $X \pmod Y$ & modulo statement in parentheses \\
+|\mod| & $X\mkern18mu \bmod Y$ & modulo statement with space
+(\ctanpkg{amsmath} only) \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{genop}.}
+\DescribeMacro{genop}
+\DescribeMacro{...}
+%
+The package defines several
+additional mathematical functions, operators and symbols
+which are not included in the \LaTeX\ macro library.
+These may be provided by other packages as well,
+or they can easily be defined by |\DeclareMathOperator|
+or used by |\operatorname|.
+Nevertheless, it is convenient to have these objects declared
+by a simple switch rather than by issuing a formal \LaTeX{} clause.
+
+The additional macros are grouped by category
+and each category is included as a feature.
+The first category describes
+assorted mathematical functions, operators and symbols.
+Further categories are provided in the following paragraphs.
+
+In order to evade clashes, the package allows to
+individually select the desired definitions
+from the assorted section
+with optionally defined macro names:
+%
+\begin{center}
+\begin{tabular}{llll}
+feature & macro & output & description \\
+\hline
+|sgn| & |\sgn| & sgn & signum function \\
+|res| & |\res| & res & residue operator \\
+|lcm| & |\lcm| & lcm & least common multiple \\
+|span| & |\Span| & span & span \\
+|diag| & |\diag| & diag & diagonal matrix \\
+|spec| & |\spec| & spec & spectrum \\
+|const| & |\const| & const & anything constant \\
+\hline
+|genop| & & & all of the above
+\end{tabular}
+\end{center}
+%
+The following two-letter operators
+are not included in the above class
+and must be implemented individually:
+%
+\begin{center}
+\begin{tabular}{llll}
+feature & macro & output & description \\
+\hline
+|id| & |\id| & id & identity map \\
+|tr| & |\tr| & tr & trace \\
+\end{tabular}
+\end{center}
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{reim}.}
+\DescribeMacro{reim}
+\DescribeMacro{\Re}
+\DescribeMacro{\Im}
+%
+\LaTeX{} assigns the symbols `$\Re$' and `$\Im$' to projectors
+to the real and imaginary parts of complex numbers.
+Another established representation for these projectors is given by
+`Re' and `Im'.
+The feature |reim| overwrites the predefined macros |\Re| and |\Im|
+with a textual representation:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\Re| & Re & real part of a complex number \\
+|\Im| & Im & imaginary part of a complex number \\
+\end{tabular}
+\end{center}
+%
+The optional argument |reim={\|\textit{cmdr}|\|\textit{cmdi}|}| specifies
+alternative command names |\|\textit{cmdr} and |\|\textit{cmdi}
+for |\Re| and |\Im|.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{trig}.}
+\DescribeMacro{trig}
+\DescribeMacro{\arccot}
+\DescribeMacro{\arcsec}
+\DescribeMacro{\arccsc}
+%
+\LaTeX{} defines most trigonometric functions and their inverses
+like $\sin$, $\cos$ and $\arctan$, but three of their inverses are omitted.
+The feature |trig| supplies the remaining
+three inverse trigonometric functions:
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\arccot| & arccot & inverse cotangent function \\
+|\arcsec| & arcsec & inverse secant function \\
+|\arccsc| & arccsc & inverse cosecant function \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{hyp}.}
+\DescribeMacro{hyp}
+\DescribeMacro{\sech}
+\DescribeMacro{\csch}
+\DescribeMacro{\ar...h}
+%
+\LaTeX{} defines four hyperbolic functions $\sinh$, $\cosh$ and $\tanh$,
+but two of them and all inverses are omitted.
+The feature |hyp| supplies the remaining two hyperbolic functions
+along with all inverse hypberbolic functions:
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\sech| & sech & hyperbolic secant function \\
+|\csch| & csch & hyperbolic cosecant function \\
+|\arsinh| & arsinh & inverse hyperbolic sine function \\
+|\arcosh| & arcosh & inverse hyperbolic cosine function \\
+|\artanh| & artanh & inverse hyperbolic tangent function \\
+|\arcoth| & arcoth & inverse hyperbolic cotangent function \\
+|\arsech| & arsech & inverse hyperbolic secant function \\
+|\arcsch| & arcsch & inverse hyperbolic cosecant function \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{mapchar}.}
+\DescribeMacro{mapchar}
+\DescribeMacro{\dom}
+\DescribeMacro{\codom}
+\DescribeMacro{\supp}
+\DescribeMacro{\im}
+\DescribeMacro{\coker}
+\DescribeMacro{\rank}
+%
+The feature |mapchar| supplies further characteristics of maps:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\dom| & dom & domain \\
+|\codom| & codom & codomain \\
+|\supp| & supp & support \\
+|\im| & im & image \\
+|\coker| & coker & cokernel \\
+|\rank| & rank & rank \\
+\end{tabular}
+\end{center}
+%
+The optional argument |mapchar={\|\textit{cmdim}|}| specifies
+an alternative command name |\|\textit{cmdim} for |\im|
+which has only two letters and might easily clash with other definitions.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{mapclass}.}
+\DescribeMacro{mapclass}
+\DescribeMacro{\Hom}
+\DescribeMacro{\End}
+\DescribeMacro{\Isom}
+\DescribeMacro{\Aut}
+%
+The feature |mapclass| supplies symbols for the sets of
+homomorphisms, endomorphisms, isomorphisms and automorphisms
+as classes/categories of structure-preserving maps:
+%
+\begin{center}
+\begin{tabular}{lll}
+macro & output & description \\
+\hline
+|\Hom| & Hom & homomorphisms \\
+|\End| & End & endomorphisms \\
+|\Isom| & Isom & isomorphisms \\
+|\Aut| & Aut & automorphisms
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{vecdiff}.}
+\DescribeMacro{vecdiff}
+\DescribeMacro{vecrot}
+\DescribeMacro{\grad}
+\DescribeMacro{\div}
+\DescribeMacro{\curl}
+%
+The feature |vecdiff| supplies the three common differential operators
+gradient, divergence and curl for vectors:
+%
+\begin{center}
+\begin{tabular}{llll}
+macro & output & description \\
+\hline
+|\grad| & grad & gradient \\
+|\div| & div & divergence \\
+|\curl| & curl (rot) & curl (alternative form)
+\end{tabular}
+\end{center}
+%
+The feature |vecrot|[|={\|\textit{cmd}|}|]
+supplies the alternative form `rot' for curl/rotor on top of |\curl|
+with the option to specify an alternative command name.
+The feature |lapl|, see below, supplies the Laplace operator.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Particular Symbols}
+
+The package provides a couple of standard mathematical symbols.
+Of course, users can be trusted to define these symbols themselves
+or, more likely, use them straight away.
+Nevertheless, here we go \ldots
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Mathematical Constants.}
+\DescribeMacro{econst}
+\DescribeMacro{iunit}
+\DescribeMacro{piconst}
+%
+Three of the most relevant mathematical constants are Euler's number $e$,
+the imaginary unit $i$ and the circle's constant $\pi$
+(with the relation $e^{i\pi}=-1$).
+The package provides macros for these
+with either upright or math italic representations:
+%
+\begin{center}
+\begin{tabular}{llll}
+feature & macro & output & description \\
+\hline
+|econst| & |\econst| & e & Euler's number (upright) \\
+|econst*| & |\econst| & $e$ & Euler's number (math italic) \\
+|iunit| & |\iunit| & i & imaginary unit (upright) \\
+|iunit*| & |\iunit| & $i$ & imaginary unit (math italic) \\
+|iunit*nb| & |\iunit| & $\mathring{\imath}$ & imaginary unit
+ (NB's silly circle version) \\
+|piconst| & |\piconst| & $\mathrm{\pi}$ & circle constant $\pi$
+ (upright, if only \ldots)\\
+|piconst*| & |\piconst| & $\pi$ & circle constant $\pi$ (math italic)
+\end{tabular}
+\end{center}
+%
+Each macro and representation is provided as an individual feature
+\textit{feature}[|={\|\textit{cmd}|}|]
+which offers the option to customise the macro name to |\|\textit{cmd}.
+
+\DescribeMacro{econstclass}
+As Euler's number is commonly used within exponentiation
+which looks dense in compound expressions
+(e.g.\ $2e^{\sin x}F$),
+|\econst| is defined as |\mathinner|
+which adds some space around the exponentiation in such a situation
+(e.g.\ $2\mathinner{e}^{\sin x}F$).
+Use |{\econst}| if such spacing is undesired.
+The option |econstclass=|\textit{class}
+can be used to customise the math class of |\econst|.
+
+An upright version of |\pi| needs to be supplied
+for the feature |piconst| to work properly.
+If the macro |\uppi| from the package \ctanpkg{upgreek}
+in the bundle \ctanpkg{was} is available
+at the time of loading, it will be used.
+Otherwise an upright |\pi| can be supplied by package \ctanpkg{unicode-math}.
+Note that the feature |piconst| (without |*|) may interfere
+with the feature |greeklower|.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Derivative Symbols.}
+\DescribeMacro{\der}
+\DescribeMacro{\diff}
+%
+The package provides some assorted elementary symbols and compounds:
+%
+\begin{center}
+\begin{tabular}{llll}
+feature & macro & output & description \\
+\hline
+|der| & |\der| & d & derivative symbol (upright) \\
+|der*| & |\der| & $d$ & derivative symbol (math italic) \\
+|diff| & |\diff{|$x$|}| & d$x$ & coordinate differential (upright) \\
+|diff*| & |\diff{|$x$|}| & $dx$ & coordinate differential (math italic) \\
+\end{tabular}
+\end{center}
+%
+Each macro and representation is provided as an individual feature
+\textit{feature}[|={\|\textit{cmd}|}|]
+which offers the option to customise the macro name to |\|\textit{cmd}.
+
+The coordinate differential |\diff| is meant to be used
+within integrals and as a differential form,
+and it can be used in the denominator of differentiation expressions.
+In all of these, it is understood as a compound which should be
+separated from surrounding symbols.
+Therefore |\diff{|$x$|}| is declared as |\mathinner|
+which adds spacing where needed.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Assorted Symbols.}
+\DescribeMacro{\order}
+\DescribeMacro{\Order}
+\DescribeMacro{\lapl}
+\DescribeMacro{\defeq}
+\DescribeMacro{\eqdef}
+%
+The package provides some assorted elementary symbols and compounds:
+%
+\begin{center}
+\begin{tabular}{llll}
+feature & macro & output & description \\
+\hline
+|order| & |\order| & $o$ & anything of order less than \\
+|Order| & |\Order| & $O$ & anything of order at most \\
+|Order*| & |\Order| & $\mathcal{O}$ & anything of order at most
+ (calligraphic) \\
+|lapl| & |\lapl| & $\mathnormal{\Delta}$ & Laplace operator \\
+|defeq| & |\defeq| & $\mathrel{\mathop:}=$ & is defined as \\
+|eqdef| & |\eqdef| & $=\mathrel{\mathop:}$ & defines \\
+\end{tabular}
+\end{center}
+%
+Each macro and representation is provided as an individual feature
+\textit{feature}[|={\|\textit{cmd}|}|]
+which offers the option to customise the macro name to |\|\textit{cmd}.
+
+The defining symbols |\defeq| and |\eqdef| both typeset
+the colon to be vertically aligned with the equation sign.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{Feature \texttt{numset}.}
+\DescribeMacro{numset}
+\DescribeMacro{numsetfont}
+\DescribeMacro{\numset}
+%
+The feature |numset| provides the macro |\numset|
+to typeset a number set such as the integers
+which is commonly denoted by a (blackboard) bold letter
+such as $\mathbb{Z}$ or $\mathbf{Z}$.
+The feature |numset={\|\textit{cmd}|}|
+offers the option to customise the macro name to |\|\textit{cmd}.
+The default font for this feature is |\mathbb| of \ctanpkg{amssymb}
+if available at the time of loading, otherwise |\mathbf|;
+it can be adjusted by |numsetfont={|\textit{mathfont}|}|.
+
+\DescribeMacro{numsets}
+The standard number fields are provided by the feature |numsets|
+as follows:
+%
+\begin{center}
+\begin{tabular}{llll}
+macro & output & description \\
+\hline
+|\Natural| & $\mathbb{N}$ & set of natural numbers \\
+|\Integer| & $\mathbb{Z}$ & field of integer numbers \\
+|\Rational| & $\mathbb{Q}$ & field of rational numbers \\
+|\Real| & $\mathbb{R}$ & field of real numbers \\
+|\Complex| & $\mathbb{C}$ & field of complex numbers \\
+|\Quaternion| & $\mathbb{H}$ & skew field of quaternions \\
+|\Octonion| & $\mathbb{O}$ & division algebra of quaternions \\
+\end{tabular}
+\end{center}
+%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -591,15 +1059,15 @@ an alternative command name |\|\textit{cmd} for |\mathbold|, e.g.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Copyright}
-Copyright \copyright{} 2018 Niklas Beisert
+Copyright \copyright{} 2018--2024 Niklas Beisert
This work may be distributed and/or modified under the
conditions of the \LaTeX{} Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- \url{http://www.latex-project.org/lppl.txt}
-and version 1.3 or later is part of all distributions of \LaTeX{}
-version 2005/12/01 or later.
+ \url{https://www.latex-project.org/lppl.txt}
+and version 1.3c or later is part of all distributions of \LaTeX{}
+version 2008 or later.
This work has the LPPL maintenance status `maintained'.
@@ -644,28 +1112,26 @@ distribution, e.g.\ \textit{texmf-root}|/tex/latex/mathfixs|.
The package is related to other packages available at CTAN:
\begin{itemize}
\item
-This package uses the package
-\href{http://ctan.org/pkg/keyval}{\textsf{keyval}}
-from the \href{http://ctan.org/pkg/latex-graphics}{\textsf{graphics}} bundle
+This package uses the package \ctanpkg{keyval}
to process the options for the package, environments and macros.
-Compatibility with the \textsf{keyval} package
+Compatibility with the \ctanpkg{keyval} package
has been tested with v1.15 (2014/10/28).
\item
-This package was designed to be compatible with
-the package \href{http://ctan.org/pkg/amsmath}{\textsf{amsmath}}.
-To prevent \textsf{amsmath} from overwriting some features,
-it should be loaded before the present package.
-Compatibility with the \textsf{amsmath} package
+This package is designed to be compatible with
+the package \ctanpkg{amsmath}.
+To prevent \ctanpkg{amsmath} from overwriting some features,
+it should be loaded \emph{before} the present package.
+Compatibility with the \ctanpkg{amsmath} package
has been tested with v2.17a (2017/09/02).
\item
This package reproduces the functionality of the
-package \href{http://ctan.org/pkg/fixmath}{\textsf{fixmath}} v0.9 (2000/04/11)
-from the bundle \href{http://ctan.org/pkg/was}{\textsf{was}}.
+package \ctanpkg{fixmath} v0.9 (2000/04/11)
+from the bundle \ctanpkg{was}.
\item
Functionality to typeset common fractions is also provided by
-the packages \href{http://ctan.org/pkg/nicefrac}{\textsf{nicefrac}}
-from the bundle \href{http://ctan.org/pkg/units}{\textsf{units}}
-and \href{http://ctan.org/pkg/xfrac}{\textsf{xfrac}}
+the packages \ctanpkg{nicefrac}
+from the bundle \ctanpkg{units}
+and \ctanpkg{xfrac}
offering a more advanced implementation.
\end{itemize}
@@ -677,14 +1143,59 @@ offering a more advanced implementation.
%%
%\begin{itemize}
%\item
-% redefine macros |\Re|, |\Im|, |\mod|
-% complete macros for trigonometric functions?
+% set of elliptic functions and constants
+%\item
+% improvement for vector accent plancement
+%\item
+% transpose sign
+%\item
+% \mathup: no need as \mathrm does just that in whatever font
+%\item
+% standard classes of Lie groups
+%\item
+% alternative representations for some operators
%\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Revision History}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{v1.11:} 2024/10/25
+
+\begin{itemize}
+\item
+fixed misspelled definition |\End|
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{v1.1:} 2024/10/23
+
+\begin{itemize}
+\item
+added feature |genop| for additional functions, operators and symbols
+\item
+added feature |reim| to change the definitions
+of |\Re| and |\Im| to `Re' and `Im'
+\item
+added features |trig| and |hyp| to complete the definitions
+of trigonometric and hypberbolic functions
+\item
+added feature |mapchar| to represent characteristics of maps
+\item
+added feature |mapclass| to represent structure-preserving maps
+\item
+added feature |vecdiff| to represent vector differential operators
+\item
+added representation for mathematical constants $e$, $i$, $\pi$
+\item
+added features |der| and |diff| to represent derivative symbols
+\item
+added assorted symbols
+\item
+added feature |numset| and |numset| to represent number sets
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{v1.01:} 2018/12/30
\begin{itemize}
@@ -742,9 +1253,10 @@ first version published on CTAN
\parindent0pt
% \end{macrocode}
-% Include \textsf{amsmath} and the \textsf{mathfixs} package:
+% Include \ctanpkg{amsmath}, \ctanpkg{amssymb}
+% and the \textsf{mathfixs} package:
% \begin{macrocode}
-\RequirePackage{amsmath}
+\RequirePackage{amsmath,amssymb}
\RequirePackage[autobold]{mathfixs}
% \end{macrocode}
@@ -753,6 +1265,7 @@ first version published on CTAN
\ProvideMathFix{greekcaps,mathbold}
\ProvideMathFix{frac,rfrac,vfrac}
\ProvideMathFix{multskip}
+\ProvideMathFix{der,diff}
% \end{macrocode}
% Start document body:
@@ -849,14 +1362,13 @@ y\sqrt[123]{x}z
% \end{macrocode}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \paragraph{Spaces Representing Multiplication.}
+% \paragraph{Spaces Representing Multiplication and Derivative Symbols.}
% \begin{macrocode}
-\paragraph{Spaces Representing Multiplication.}
+\paragraph{Spaces Representing Multiplication and Derivative Symbols.}
% \end{macrocode}
% Explicit spacing:
% \begin{macrocode}
-\newcommand{\der}{\mathrm{d}}
\[
\int x\.\der x
\]
@@ -864,7 +1376,6 @@ y\sqrt[123]{x}z
% Implicit spacing:
% \begin{macrocode}
-\newcommand{\diff}[1]{\mathinner{\der#1}}
\[
\int x\diff{x}
\]
@@ -891,7 +1402,7 @@ c\operatorname{\Gamma}(x)
\paragraph{Bold Text with Math Symbols: $abc123\alpha\Gamma$.}
% \end{macrocode}
-% Capital letters:
+% Bold text:
% \begin{macrocode}
\[
aG\alpha\Gamma
@@ -900,6 +1411,60 @@ aG\alpha\Gamma
\]
% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Real and Imaginary Parts.}
+% \begin{macrocode}
+\paragraph{Real and Imaginary Parts.}
+% \end{macrocode}
+
+% Change representation for |\Re| and |\Im|:
+% \begin{macrocode}
+\[
+\Re(z),\Im(z)
+\qquad\ProvideMathFix{reim}
+\Re(z),\Im(z)
+\qquad\ProvideMathFix{reim={\nRe\nIm}}
+\nRe(z),\nIm(z)
+\]
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Functions, Operators, Symbols.}
+% \begin{macrocode}
+\paragraph{Functions, Operators, Symbols.}
+% \end{macrocode}
+
+% Some examples of vector differential operators:
+% \begin{macrocode}
+\[
+\ProvideMathFix{vecdiff,lapl,defeq}
+\lapl f=\div\grad f,
+\qquad
+\lapl v=\grad\div v-\curl\curl v,
+\]
+% \end{macrocode}
+% Some examples of mathematical constants:
+% \begin{macrocode}
+\[
+\ProvideMathFix{econst,iunit,piconst}
+\econst^{\iunit\piconst}=-1,
+\qquad
+\ProvideMathFix{econst*,iunit*,piconst*}
+\econst^{\iunit\piconst}=-1,
+\qquad
+\ProvideMathFix{econst,defeq,iunit*nb,numsets}
+z\defeq x+\iunit y=r\econst^{\iunit\theta}\in\Complex,
+\quad x,y,r,\theta\in\Real
+\]
+% \end{macrocode}
+% Some examples of operators and symbols:
+% \begin{macrocode}
+\[
+\ProvideMathFix{res,hyp,iunit*,piconst*}
+\res_{z=\iunit \piconst n} \csch(z)=(-1)^n
+\]
+% \end{macrocode}
+
% End of document body:
% \begin{macrocode}
\end{document}
@@ -921,9 +1486,9 @@ aG\alpha\Gamma
% \paragraph{Required Packages.}
%
% The package loads the package
-% \textsf{keyval}
+% \ctanpkg{keyval}
% if not yet present.
-% \textsf{keyval} is used for extended options processing:
+% \ctanpkg{keyval} is used for extended options processing:
% \begin{macrocode}
\RequirePackage{keyval}
% \end{macrocode}
@@ -965,7 +1530,7 @@ aG\alpha\Gamma
% Define a new math alphabet |\mathbold|
% as the bold series and italic shape
% of the standard computer modern math font
-% (see package \textsf{fixmath}):
+% (see package \ctanpkg{fixmath}):
%
% \begin{macrocode}
\DeclareMathAlphabet{\mafx@mathbold}{OML}{cmm}{b}{it}
@@ -981,7 +1546,7 @@ aG\alpha\Gamma
% \paragraph{Spacing Adjustment for Fractions.}
%
% Save primitive definition of |\over| into |\@@over|
-% (compatible with \textsf{amsmath}):
+% (compatible with \ctanpkg{amsmath}):
%
% \begin{macrocode}
\ifdefined\@@over\else\let\@@over=\over\fi
@@ -989,7 +1554,7 @@ aG\alpha\Gamma
% Define math class selectors for fractions (without/with delimiters):
% \begin{macrocode}
-\def\mafx@frac@class{\mathinner}
+\let\mafx@frac@class=\mathinner
\def\mafx@frac@delimclass{\mathopen{}\mathclose}
% \end{macrocode}
@@ -1004,13 +1569,13 @@ aG\alpha\Gamma
% \macro{\genfrac}
% Define replacement for |\@genfrac| (called by |\genfrac|)
% which uses the appropriate math class selector.
-% If the package \textsf{amsmath} is not loaded, this definition will
+% If the package \ctanpkg{amsmath} is not loaded, this definition will
% have no impact:
% \begin{macrocode}
-\def\mafx@@genfrac#1#2#3#4#5{\begingroup%
- \ifx#2\@@overwithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi%
- \ifx#2\@@abovewithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi%
- \ifx#2\@@atopwithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi%
+\def\mafx@@genfrac#1#2#3#4#5{\begingroup
+ \ifx#2\@@overwithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi
+ \ifx#2\@@abovewithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi
+ \ifx#2\@@atopwithdelims\let\mafx@frac@class\mafx@frac@delimclass\fi
\mafx@frac@class{#1{\begingroup#4\endgroup#2#3\relax#5}}%
\endgroup}
% \end{macrocode}
@@ -1039,7 +1604,7 @@ aG\alpha\Gamma
% Define a fraction in text style or smaller
% using the ordinary math class (no surrounding space), e.g.: $\frac{1}{2}$:
% \begin{macrocode}
-\DeclareRobustCommand{\mafx@rfrac}[2]{{\mathchoice%
+\DeclareRobustCommand{\mafx@rfrac}[2]{{\mathchoice
{\textstyle{\begingroup#1\endgroup\@@over#2}}%
{\begingroup#1\endgroup\@@over#2}%
{\begingroup#1\endgroup\@@over#2}%
@@ -1058,7 +1623,7 @@ aG\alpha\Gamma
% Define the math class and spacing parameters as (negative) spaces
% around the dividing slash:
% \begin{macrocode}
-\def\mafx@vfrac@class{\mathinner}
+\let\mafx@vfrac@class=\mathinner
\def\mafx@vfrac@preskip{\thinmuskip}
\def\mafx@vfrac@postskip{0.6667\thinmuskip}
% \end{macrocode}
@@ -1120,21 +1685,21 @@ aG\alpha\Gamma
% \macro{\root}
% Replacement for |\root| \ldots|\of|
% which stores the |\leftroot| and |\uproot| parameters
-% specified in the exponent (see package \textsf{amsmath}).
+% specified in the exponent (see package \ctanpkg{amsmath}).
% It does so by first storing them in global parameters
% and then converting them to local ones to avoid
% interference with nested radicals.
% As usual, the macro then passes on to |\r@@t|
% with |\mathpalette|:
% \begin{macrocode}
-\def\mafx@root#1\of{
+\def\mafx@root#1\of{%
\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{%
\gdef\mafx@gleftroot{0}\gdef\mafx@guproot{0}%
\def\leftroot##1{\gdef\mafx@gleftroot{##1}}%
\def\uproot##1{\gdef\mafx@guproot{##1}}%
#1}$}%
- \let\mafx@leftroot=\mafx@gleftroot%
- \let\mafx@uproot=\mafx@guproot%
+ \let\mafx@leftroot=\mafx@gleftroot
+ \let\mafx@uproot=\mafx@guproot
\mathpalette\r@@t}
% \end{macrocode}
@@ -1146,12 +1711,12 @@ aG\alpha\Gamma
% \end{macrocode}
% Determine the font selector for the current style:
% \begin{macrocode}
- \ifx#1\scriptstyle\let\mafx@tmp@fontsel=\scriptfont\else%
- \ifx#1\scriptscriptstyle\let\mafx@tmp@fontsel=\scriptscriptfont\else%
- \let\mafx@tmp@fontsel=\textfont\fi\fi%
+ \ifx#1\scriptstyle\let\mafx@tmp@fontsel=\scriptfont\else
+ \ifx#1\scriptscriptstyle\let\mafx@tmp@fontsel=\scriptscriptfont\else
+ \let\mafx@tmp@fontsel=\textfont\fi\fi
% \end{macrocode}
% Generate a radical with empty radicand in cramped style
-% (see package \textsf{mathtools})
+% (see package \ctanpkg{mathtools})
% at the desired height and depth and store in a box
% for subsequent measurements:
% \begin{macrocode}
@@ -1185,7 +1750,7 @@ aG\alpha\Gamma
% Place exponent box and return to intended start of radical sign:
% \begin{macrocode}
\mkern-\mafx@leftroot mu%
- \raise\dimen@\copy\rootbox%
+ \raise\dimen@\copy\rootbox
\mkern\mafx@leftroot mu%
\kern-0.6\wd\z@%
% \end{macrocode}
@@ -1201,7 +1766,7 @@ aG\alpha\Gamma
% Draw a vertical rule starting from relative height |\mafx@root@close|
% of the radical:
% \begin{macrocode}
- \ifx\mafx@root@close\@empty\else%
+ \ifx\mafx@root@close\@empty\else
\setlength\dimen@{\fontdimen8\mafx@tmp@fontsel3}%
\lower\dimen@\hbox{%
\vrule width\dimen@ height\ht\z@ depth -\mafx@root@close\ht\z@}%
@@ -1215,7 +1780,7 @@ aG\alpha\Gamma
% \macro{root}
% Implement replacement |\sqrt| and |\root|:
% \begin{macrocode}
-\define@key{mafx@}{root}[]{
+\define@key{mafx@}{root}[]{%
\let\sqrt=\mafx@sqrt
\let\@sqrt=\mafx@@sqrt
\let\root=\mafx@root
@@ -1231,7 +1796,7 @@ aG\alpha\Gamma
% Define configurable parameters for alternative root:
% \begin{macrocode}
\define@key{mafx@}{rootclose}[0.8]{\def\mafx@root@close{#1}}
-\define@key{mafx@}{rootclass}{\def\mafx@root@class{#1}}
+\define@key{mafx@}{rootclass}{\let\mafx@root@class=#1}
\define@key{mafx@}{rootskipend}{\def\mafx@root@endskip{#1}}
\define@key{mafx@}{rootskippre}{\def\mafx@root@preskip{#1}}
\define@key{mafx@}{rootskippost}{\def\mafx@root@postskip{#1}}
@@ -1250,7 +1815,7 @@ aG\alpha\Gamma
\let\mafx@old@dot=\.
\def\mafx@dot@skip{\thinmuskip}
\def\mafx@dot{\mskip\mafx@dot@skip}
-\def\mafx@per@dot{\begingroup\ifmmode\def\mafx@tmp{\mafx@dot}\else%
+\def\mafx@per@dot{\begingroup\ifmmode\def\mafx@tmp{\mafx@dot}\else
\def\mafx@tmp{\mafx@old@dot}\fi\expandafter\endgroup\mafx@tmp}
% \end{macrocode}
@@ -1270,7 +1835,7 @@ aG\alpha\Gamma
% \macro{...}
% Define capital Greek letters as letters
% (instead of the default assignment as operators).
-% This implementation follows the package \textsf{fixmath}:
+% This implementation follows the package \ctanpkg{fixmath}:
% \begin{macrocode}
\DeclareMathSymbol{\mafx@Gamma}{\mathalpha}{letters}{0}
\DeclareMathSymbol{\mafx@Delta}{\mathalpha}{letters}{1}
@@ -1311,7 +1876,7 @@ aG\alpha\Gamma
% \macro{...}
% Define lowercase Greek letters in standard type |\mathalpha|
% (instead of the default assiment |\mathord|).
-% This implementation follows the package \textsf{fixmath}:
+% This implementation follows the package \ctanpkg{fixmath}:
% \begin{macrocode}
\DeclareMathSymbol{\mafx@alpha}{\mathalpha}{letters}{11}
\DeclareMathSymbol{\mafx@beta}{\mathalpha}{letters}{12}
@@ -1382,6 +1947,336 @@ aG\alpha\Gamma
% \end{macrocode}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Assorted Functions, Operators, Symbols.}
+%
+% Define macros for assorted functions, operators, symbols:
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@sgn}{sgn}
+\DeclareMathOperator*{\mafx@res}{res}
+\DeclareMathOperator{\mafx@lcm}{lcm}
+\DeclareMathOperator{\mafx@span}{span}
+\DeclareMathOperator{\mafx@diag}{diag}
+\DeclareMathOperator{\mafx@spec}{spec}
+\DeclareMathOperator{\mafx@const}{const}
+\DeclareMathOperator{\mafx@id}{id}
+\DeclareMathOperator{\mafx@tr}{tr}
+% \end{macrocode}
+
+% Implement assorted functions, operators and symbols individually
+% with the option to adjust their macro names:
+% \begin{macrocode}
+\define@key{mafx@}{sgn}[\sgn]{\let#1=\mafx@sgn}
+\define@key{mafx@}{res}[\res]{\let#1=\mafx@res}
+\define@key{mafx@}{lcm}[\lcm]{\let#1=\mafx@lcm}
+\define@key{mafx@}{diag}[\diag]{\let#1=\mafx@diag}
+\define@key{mafx@}{span}[\Span]{\let#1=\mafx@span}
+\define@key{mafx@}{spec}[\spec]{\let#1=\mafx@spec}
+\define@key{mafx@}{const}[\const]{\let#1=\mafx@const}
+\define@key{mafx@}{id}[\id]{\let#1=\mafx@id}
+\define@key{mafx@}{tr}[\tr]{\let#1=\mafx@tr}
+% \end{macrocode}
+%
+% \macro{genop}
+% Implement all assorted functions, operators and symbols:
+% \begin{macrocode}
+\define@key{mafx@}{genop}[]{%
+ \ProvideMathFix{sgn,res,lcm,diag,span,spec,const}%
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Real and Imaginary Part Projectors in Text Form.}
+%
+% \macro{\Re}
+% \macro{\Im}
+% Define a different notation for real and imaginary part projectors are the
+% textual symbols `Re' and `Im':
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@Re}{Re}
+\DeclareMathOperator{\mafx@Im}{Im}
+% \end{macrocode}
+
+% \macro{reim}
+% Implement textual notation for \verb+\Re+ and \verb+\Im+:
+% \begin{macrocode}
+\define@key{mafx@}{reim}[\Re\Im]{%
+ \expandafter\let\@firstoftwo#1=\mafx@Re
+ \expandafter\let\@secondoftwo#1=\mafx@Im
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Remaining Inverse Trigonometric Functions.}
+%
+% \macro{\arccot}
+% \macro{\arcsec}
+% \macro{\arccsc}
+% Define remaining inverse trigonometric functions
+% and their inverses:
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@arccot}{arccot}
+\DeclareMathOperator{\mafx@arcsec}{arcsec}
+\DeclareMathOperator{\mafx@arccsc}{arccsc}
+% \end{macrocode}
+
+% \macro{trig}
+% Implement remaining trigonometric functions:
+% \begin{macrocode}
+\define@key{mafx@}{trig}[]{%
+ \let\arccot=\mafx@arccot
+ \let\arcsec=\mafx@arcsec
+ \let\arccsc=\mafx@arccsc
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Remaining Hyperbolic Functions.}
+%
+% \macro{\sech}
+% \macro{\csch}
+% \macro{\ar...h}
+% Define remaining hyperbolic functions
+% and their inverses:
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@sech}{sech}
+\DeclareMathOperator{\mafx@csch}{csch}
+\DeclareMathOperator{\mafx@arsinh}{arsinh}
+\DeclareMathOperator{\mafx@arcosh}{arcosh}
+\DeclareMathOperator{\mafx@artanh}{artanh}
+\DeclareMathOperator{\mafx@arcoth}{arcoth}
+\DeclareMathOperator{\mafx@arsech}{arsech}
+\DeclareMathOperator{\mafx@arcsch}{arcsch}
+% \end{macrocode}
+
+% \macro{hyp}
+% Implement remaining hyperbolic functions:
+% \begin{macrocode}
+\define@key{mafx@}{hyp}[]{%
+ \let\sech=\mafx@sech
+ \let\csch=\mafx@csch
+ \let\arsinh=\mafx@arsinh
+ \let\arcosh=\mafx@arcosh
+ \let\artanh=\mafx@artanh
+ \let\arcoth=\mafx@arcoth
+ \let\arsech=\mafx@arsech
+ \let\arcsch=\mafx@arcsch
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Characteristics of Maps.}
+%
+% Define macros for characteristics of maps:
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@dom}{dom}
+\DeclareMathOperator{\mafx@supp}{supp}
+\DeclareMathOperator{\mafx@codom}{codom}
+\DeclareMathOperator{\mafx@im}{im}
+\DeclareMathOperator{\mafx@rank}{rank}
+\DeclareMathOperator{\mafx@coker}{coker}
+% \end{macrocode}
+
+% Implement characteristics of maps
+% with the option to adjust the macro name for |\im|
+% to evade potential clashes for two letter definition:
+% \begin{macrocode}
+\define@key{mafx@}{mapchar}[\im]{%
+ \let\dom=\mafx@dom
+ \let\supp=\mafx@supp
+ \let\codom=\mafx@codom
+ \let#1=\mafx@im
+ \let\rank=\mafx@rank
+ \let\coker=\mafx@coker
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Classes of Structure-Preserving Maps.}
+%
+% \macro{\Hom}
+% \macro{\End}
+% \macro{\Isom}
+% \macro{\Aut}
+% Define classes of structure-preserving maps:
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@Hom}{Hom}
+\DeclareMathOperator{\mafx@End}{End}
+\DeclareMathOperator{\mafx@Isom}{Isom}
+\DeclareMathOperator{\mafx@Aut}{Aut}
+% \end{macrocode}
+
+% \macro{mapclass}
+% Implement classes of structure-preserving maps:
+% \begin{macrocode}
+\define@key{mafx@}{mapclass}[]{%
+ \let\Hom=\mafx@Hom
+ \let\End=\mafx@End
+ \let\Isom=\mafx@Isom
+ \let\Aut=\mafx@Aut
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Differential Operators for Vectors.}
+%
+% \macro{\grad}
+% \macro{\div}
+% \macro{\curl}
+% Define differential operators gradient, divergence and curl
+% (alternative form rot):
+% \begin{macrocode}
+\DeclareMathOperator{\mafx@grad}{grad}
+\DeclareMathOperator{\mafx@div}{div}
+\DeclareMathOperator{\mafx@curl}{curl}
+\DeclareMathOperator{\mafx@rot}{rot}
+% \end{macrocode}
+
+% \macro{vecdiff}
+% Implement differential operators for vectors individually
+% with the option to adjust their macro names.
+% Implement alternative rot for curl/rotor
+% with the option to adjust its macro name:
+% \begin{macrocode}
+\define@key{mafx@}{vecdiff}[]{%
+ \let\grad=\mafx@grad
+ \let\div=\mafx@div
+ \let\curl=\mafx@curl
+}
+\define@key{mafx@}{vecrot}[\curl]{\let#1=\mafx@rot}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Mathematical Constants.}
+%
+% \macro{\econst}
+% \macro{\iunit}
+% \macro{\piconst}
+% Define macros for mathematical constants.
+% Use |\uppi| for upright |\pi| if available at the time of loading,
+% otherwise use plain |\pi| hoping for availability of an upright version:
+% \begin{macrocode}
+\let\mafx@econst@class=\mathinner
+\DeclareRobustCommand{\mafx@econstup}{\mafx@econst@class{\operator@font e}}
+\DeclareRobustCommand{\mafx@econstit}{\mafx@econst@class{\mathnormal{e}}}
+\DeclareRobustCommand{\mafx@iunitup}{{\operator@font i}}
+\DeclareRobustCommand{\mafx@iunitit}{{\mathnormal{i}}}
+\DeclareRobustCommand{\mafx@iunitnb}{{\mathnormal{\mathring\imath}}}
+\ifdefined\uppi
+\DeclareRobustCommand{\mafx@piconstup}{{\uppi}}
+\else\ifdefined\symup
+\DeclareRobustCommand{\mafx@piconstup}{{\symup{\pi}}}
+\else
+\DeclareRobustCommand{\mafx@piconstup}{{\operator@font\pi}}
+\fi\fi
+\ifdefined\symit
+\DeclareRobustCommand{\mafx@piconstit}{{\symit{\pi}}}
+\else
+\DeclareRobustCommand{\mafx@piconstit}{{\mathnormal{\pi}}}
+\fi
+% \end{macrocode}
+
+% \macro{econst}
+% \macro{numsetclass}
+% \macro{iunit}
+% \macro{piconst}
+% Implement mathematical constants individually
+% with the option to adjust their macro names:
+% \begin{macrocode}
+\define@key{mafx@}{econst}[\econst]{\let#1=\mafx@econstup}
+\define@key{mafx@}{econst*}[\econst]{\let#1=\mafx@econstit}
+\define@key{mafx@}{econstclass}{\let\mafx@econst@class=#1}
+\define@key{mafx@}{iunit}[\iunit]{\let#1=\mafx@iunitup}
+\define@key{mafx@}{iunit*}[\iunit]{\let#1=\mafx@iunitit}
+\define@key{mafx@}{iunit*nb}[\iunit]{\let#1=\mafx@iunitnb}
+\define@key{mafx@}{piconst}[\piconst]{\let#1=\mafx@piconstup}
+\define@key{mafx@}{piconst*}[\piconst]{\let#1=\mafx@piconstit}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Derivative Symbols.}
+%
+% Define macros for derivative symbols:
+% \begin{macrocode}
+\DeclareRobustCommand{\mafx@derup}{{\operator@font d}}
+\DeclareRobustCommand{\mafx@derit}{{\mathnormal{d}}}
+\DeclareRobustCommand{\mafx@diffup}[1]{\mathinner{\mafx@derup#1}}
+\DeclareRobustCommand{\mafx@diffit}[1]{\mathinner{\mafx@derit#1}}
+% \end{macrocode}
+
+% Implement derivative symbols individually
+% with the option to adjust their macro names:
+% \begin{macrocode}
+\define@key{mafx@}{der}[\der]{\let#1=\mafx@derup}
+\define@key{mafx@}{der*}[\der]{\let#1=\mafx@derit}
+\define@key{mafx@}{diff}[\diff]{\let#1=\mafx@diffup}
+\define@key{mafx@}{diff*}[\diff]{\let#1=\mafx@diffit}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Assorted Symbols.}
+%
+% Define macros for assorted symbols:
+% \begin{macrocode}
+\DeclareRobustCommand{\mafx@order}{\mathnormal{o}}
+\DeclareRobustCommand{\mafx@Order}{\mathnormal{O}}
+\DeclareRobustCommand{\mafx@OrderCal}{\mathcal{O}}
+\DeclareRobustCommand{\mafx@defeq}{\mathrel{\mathop:}=}
+\DeclareRobustCommand{\mafx@eqdef}{=\mathrel{\mathop:}}
+\DeclareRobustCommand{\mafx@lapl}{\mathnormal{\Delta}}
+% \end{macrocode}
+
+% Implement assorted symbols individually
+% with the option to adjust their macro names:
+% \begin{macrocode}
+\define@key{mafx@}{order}[\order]{\let#1=\mafx@order}
+\define@key{mafx@}{Order}[\Order]{\let#1=\mafx@Order}
+\define@key{mafx@}{Order*}[\Order]{\let#1=\mafx@OrderCal}
+\define@key{mafx@}{defeq}[\defeq]{\let#1=\mafx@defeq}
+\define@key{mafx@}{eqdef}[\eqdef]{\let#1=\mafx@eqdef}
+\define@key{mafx@}{lapl}[\lapl]{\let#1=\mafx@lapl}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \paragraph{Number Sets.}
+%
+% \macro{\numset}
+% Define macros for number sets.
+% Use default font |\mathbb| if available, otherwise |\mathbf|:
+% \begin{macrocode}
+\ifdefined\mathbb
+\let\mafx@numset@font=\mathbb
+\else
+\let\mafx@numset@font=\mathbf
+\fi
+\DeclareRobustCommand{\mafx@numset}{\mafx@numset@font}
+\DeclareRobustCommand{\mafx@numsetZ}{\mafx@numset{Z}}
+\DeclareRobustCommand{\mafx@numsetQ}{\mafx@numset{Q}}
+\DeclareRobustCommand{\mafx@numsetR}{\mafx@numset{R}}
+\DeclareRobustCommand{\mafx@numsetC}{\mafx@numset{C}}
+\DeclareRobustCommand{\mafx@numsetH}{\mafx@numset{H}}
+\DeclareRobustCommand{\mafx@numsetN}{\mafx@numset{N}}
+\DeclareRobustCommand{\mafx@numsetO}{\mafx@numset{O}}
+% \end{macrocode}
+
+% \macro{numset}
+% \macro{numsetfont}
+% \macro{numsets}
+% Implement number set font and a collection of standard number sets by name:
+% \begin{macrocode}
+\define@key{mafx@}{numset}[\numset]{\let#1=\mafx@numset}
+\define@key{mafx@}{numsetfont}{\let\mafx@numset@font=#1}
+\define@key{mafx@}{numsets}[]{%
+ \let\Integer=\mafx@numsetZ
+ \let\Rational=\mafx@numsetQ
+ \let\Real=\mafx@numsetR
+ \let\Complex=\mafx@numsetC
+ \let\Quaternion=\mafx@numsetH
+ \let\Natural=\mafx@numsetN
+ \let\Octonion=\mafx@numsetO
+}
+% \end{macrocode}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Package Options.}
%
% \macro{\ProvideMathFix}
@@ -1390,7 +2285,7 @@ aG\alpha\Gamma
\newcommand{\ProvideMathFix}[1]{\setkeys{mafx@}{#1}}
% \end{macrocode}
-% Pass undeclared options on to \textsf{keyval} processing:
+% Pass undeclared options on to \ctanpkg{keyval} processing:
% \begin{macrocode}
\DeclareOption*{\expandafter\ProvideMathFix\expandafter{\CurrentOption}}
% \end{macrocode}
diff --git a/macros/latex/contrib/mathfixs/mathfixs.ins b/macros/latex/contrib/mathfixs/mathfixs.ins
index 79263be133..c273b505e5 100644
--- a/macros/latex/contrib/mathfixs/mathfixs.ins
+++ b/macros/latex/contrib/mathfixs/mathfixs.ins
@@ -2,27 +2,17 @@
\input docstrip.tex
\keepsilent
-% mathfixs.ins Copyright (C) 2018 Niklas Beisert
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-
\preamble
-Copyright (C) 2018 Niklas Beisert
+Copyright (C) 2018-2024 Niklas Beisert
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
\endpreamble
diff --git a/macros/latex/contrib/mathfixs/mathfixs.pdf b/macros/latex/contrib/mathfixs/mathfixs.pdf
index 86eeba5728..6743e280a5 100644
--- a/macros/latex/contrib/mathfixs/mathfixs.pdf
+++ b/macros/latex/contrib/mathfixs/mathfixs.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathtools/empheq.dtx b/macros/latex/contrib/mathtools/empheq.dtx
index c0ecdec027..9e57dd0772 100644
--- a/macros/latex/contrib/mathtools/empheq.dtx
+++ b/macros/latex/contrib/mathtools/empheq.dtx
@@ -69,7 +69,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: empheq 2020/03/24 v2.16 empheq}
+\Msg{* Package: empheq 2024/08/09 v2.17 empheq}
\Msg{************************************************************************}
\keepsilent
@@ -133,13 +133,18 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{empheq.drv}%
- [2020/03/24 v2.16 Emphasizing equations]
+ [2024/08/09 v2.17 Emphasizing equations]
\documentclass{ltxdoc}
\usepackage{mathpazo}
\usepackage[overload]{empheq}
-\usepackage{xcolor,varioref,booktabs,fancybox}
+\usepackage{xcolor,varioref,booktabs,fancybox,iftex}
\usepackage[overload]{textcase}
+\iftutex\else
+ \usepackage[T1]{fontenc}
+\fi
+
+
\pagestyle{headings}
\hyphenation{emph-eq}
\makeatletter
@@ -338,6 +343,7 @@ and the derived files
\end{document}
%</driver>
% \fi
+% \changes{v2.17}{2024/08/09}{Fixed typo in manual}
% \changes{v2.16}{2020/03/24}{fixed several bugs related to amsart/-book}
% \changes{v2.15}{2017/03/31}{Fixed a bug in relation to the AMS
% classes and completed prefixing macros belonging to \pkg{mhsetup}
@@ -376,7 +382,7 @@ and the derived files
% release}
%
% \GetFileInfo{empheq.drv}
-% \CheckSum{2495}
+% \CheckSum{2635}
%
% \title{The \pkg{empheq} package\thanks{This file has version number
% \fileversion, last revised \filedate.}\\
@@ -1498,8 +1504,8 @@ and the derived files
% \begin{codesyntax}
% \cs{newenvironment}
% \marg{env_name} \oarg{num} \oarg{default}\\
-% \texttt{~~}\arg{\meta{other commands} \cs{EmpheqMainEnv}}\\
-% \texttt{~~}\arg{\cs{endEmpheqMainEnv}}
+% \texttt{~~}\arg{\meta{other commands} \cs{EmphEqMainEnv}}\\
+% \texttt{~~}\arg{\cs{endEmphEqMainEnv}}
% \end{codesyntax}
% In the above environment the \meta{other commands} part must
% contain certain things before it'll work.
@@ -1753,7 +1759,7 @@ and the derived files
% \begin{macrocode}
%<*package>
\ProvidesPackage{empheq}%
- [2017/03/31 v2.15 Emphasizing equations]
+ [2024/08/09 v2.17 Emphasizing equations]
% \end{macrocode}
% \changes{v2.15}{2017/03/31}{Bumped required mhsetup release}
% \begin{macrocode}
@@ -2939,7 +2945,8 @@ and the derived files
% \end{macrocode}
% \end{environment}
% We make a choice here: the good \env{multline} or the bad?
-% \refstepcounter{CodelineNo}\label{goodandbad}\addtocounter{CodelineNo}{-1}
+% ^^A daleif 2024/10/07: the line below fails
+% ^^A \stepcounter{CodelineNo}\label{goodandbad}\addtocounter{CodelineNo}{-1}
% \begin{macrocode}
\MH_if_boolean:nTF {good_mult}{
% \end{macrocode}
@@ -4559,5 +4566,5 @@ and the derived files
% \begin{macrocode}
%</package>
% \end{macrocode}
-% Finale
+% \Finale
\endinput
diff --git a/macros/latex/contrib/mathtools/empheq.ins b/macros/latex/contrib/mathtools/empheq.ins
new file mode 100644
index 0000000000..ef9caae566
--- /dev/null
+++ b/macros/latex/contrib/mathtools/empheq.ins
@@ -0,0 +1,94 @@
+%%
+%% This is file `empheq.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% empheq.dtx (with options: `install')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2002-2007 by Morten Hoegholm
+%% Copyright (C) 2012-2019 by Lars Madsen
+%% Copyright (C) 2020- by Lars Madsen, The LaTeX3 Project
+%%
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is
+%% Lars Madsen, The LaTeX3 Project
+%%
+%% This work consists of the main source file empheq.dtx
+%% and the derived files
+%% empheq.sty, empheq.pdf, empheq.ins, empheq.drv.
+%%
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: empheq 2024/08/09 v2.17 empheq}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2002-2007 by Morten Hoegholm
+Copyright (C) 2012-2019 by Lars Madsen
+Copyright (C) 2020- by Lars Madsen, The LaTeX3 Project
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is
+Lars Madsen, The LaTeX3 Project
+
+This work consists of the main source file empheq.dtx
+and the derived files
+ empheq.sty, empheq.pdf, empheq.ins, empheq.drv.
+
+\endpreamble
+
+\generate{%
+ \file{empheq.ins}{\from{empheq.dtx}{install}}%
+ \file{empheq.drv}{\from{empheq.dtx}{driver}}%
+ \usedir{tex/latex/mh}%
+ \file{empheq.sty}{\from{empheq.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* empheq.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `empheq.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+\endinput
+%%
+%% End of file `empheq.ins'.
diff --git a/macros/latex/contrib/mathtools/empheq.pdf b/macros/latex/contrib/mathtools/empheq.pdf
index e3e75f26f8..8f7a954306 100644
--- a/macros/latex/contrib/mathtools/empheq.pdf
+++ b/macros/latex/contrib/mathtools/empheq.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathtools/mathtools.dtx b/macros/latex/contrib/mathtools/mathtools.dtx
index db726b51b5..2e3b50d7c6 100644
--- a/macros/latex/contrib/mathtools/mathtools.dtx
+++ b/macros/latex/contrib/mathtools/mathtools.dtx
@@ -69,7 +69,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: mathtools 2024/03/11 v1.30}
+\Msg{* Package: mathtools 2024/10/04 v1.31}
\Msg{************************************************************************}
\keepsilent
@@ -133,7 +133,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{mathtools.drv}%
- [2024/03/11 v1.30 mathematical typesetting tools]
+ [2024/10/04 v1.31 mathematical typesetting tools]
\documentclass{ltxdoc}
\IfFileExists{fourier.sty}{\usepackage{fourier}}{}
@@ -333,7 +333,7 @@ colorlinks,
%
% \GetFileInfo{mathtools.drv}
%
-% \CheckSum{3772}
+% \CheckSum{3775}
%
% \title{The \pkg{mathtools} package\thanks{This file has version number
% \fileversion, last revised \filedate.}}
@@ -3138,7 +3138,7 @@ colorlinks,
% \begin{macrocode}
%<*package>
\ProvidesPackage{mathtools}%
- [2024/03/11 v1.30 mathematical typesetting tools]
+ [2024/10/04 v1.31 mathematical typesetting tools]
% \end{macrocode}
% \changes{v1.10}{2011/02/12}{Might as well make sure that we need the
% latest version of \texttt{mhsetup}}
@@ -6707,12 +6707,23 @@ colorlinks,
\MH_if_dim:w \lastskip>\z@
\skip@\lastskip\unskip
% \end{macrocode}
-% \changes{v1.15}{2014/07/16}{Added penalty workaround}
-% Here is the fix.
-% \changes{v1.19}{2017/03/31}{Added MH\_ prefix}
+% \changes{v1.15}{2014/07/16}{Added penalty workaround}
+% Here is the fix.
+% \changes{v1.19}{2017/03/31}{Added MH\_ prefix}
+% The code we inserted here in 2014, had a bug in it. The intent was
+% to move the penalty on to the other side of the italic correction.
+% But when we reinsert the penalty we only test if the scratch
+% counter is non-zero, so it may insert random penalties depending
+% on the non-zero value of \cs{count@}. Simple fix: initialise \cs{count@}.
+% \changes{v1.31}{2024/10/03}{Added missing counter initialisation, fixing issue \#62}
+% In chat David C. mentioned that \verb|\ifnum\lastnodetype=13| is a better
+% test than \verb|\ifnum\lastpenalty>\z@|. Just leaving this here for when we do the
+% Expl3 conversion.
% \begin{macrocode}
\MH_if_num:w \lastpenalty>\z@
\count@\lastpenalty\unpenalty
+ \MH_else:
+ \count@\z@
\MH_fi:
\@@italiccorr
% \end{macrocode}
@@ -6728,8 +6739,12 @@ colorlinks,
\@@italiccorr
\MH_fi:
\MH_fi:
- \MH_fi:
- $\MH_fi:
+% \end{macrocode}
+%
+% \changes{v1.31}{2024/10/03}{Also fixed typo here, the last two \cs{fi} comes from non-MH syntax}
+% \begin{macrocode}
+ \fi
+ $\fi
}
}
}
diff --git a/macros/latex/contrib/mathtools/mathtools.ins b/macros/latex/contrib/mathtools/mathtools.ins
index a8df08bca3..47b1bc3793 100644
--- a/macros/latex/contrib/mathtools/mathtools.ins
+++ b/macros/latex/contrib/mathtools/mathtools.ins
@@ -33,7 +33,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: mathtools 2024/03/11 v1.30}
+\Msg{* Package: mathtools 2024/10/04 v1.31}
\Msg{************************************************************************}
\keepsilent
diff --git a/macros/latex/contrib/mathtools/mathtools.pdf b/macros/latex/contrib/mathtools/mathtools.pdf
index 9921854b8b..cf81662f4f 100644
--- a/macros/latex/contrib/mathtools/mathtools.pdf
+++ b/macros/latex/contrib/mathtools/mathtools.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathtools/mhsetup.pdf b/macros/latex/contrib/mathtools/mhsetup.pdf
index 2be52b31ab..2e384a5513 100644
--- a/macros/latex/contrib/mathtools/mhsetup.pdf
+++ b/macros/latex/contrib/mathtools/mhsetup.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index a0a11296e1..a6b0524789 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,3 +1,25 @@
+2024-09-16
+ * v1.29 : media9.sty
+ * v0.59 : pdfbase.sty
+ * fix : missing AS entry in widget annot
+
+2024-09-13
+ * v1.28 : media9.sty
+ * v0.58 : pdfbase.sty
+ * fix : xetex/dvipdfmx-related `Missing number' error, fixes #19
+
+2024-09-02
+ * v1.27 : media9.sty
+ * v0.57 : pdfbase.sty
+ * fix : internal page counter
+
+2024-08-28
+ * v1.26 : media9.sty
+ * v0.56 : pdfbase.sty
+ * fix : dvi magnification by \mag internal TeX command (pdfbase.sty);
+ PDF/A compliance (fixes agrahn/ocgx2#21)
+ * new: hooks for adding actions at begin and end of text column
+
2022-08-04
* v1.25 : media9.sty
* v0.55 : pdfbase.sty
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index 2b85529903..9ca4fb4d4f 100644
--- a/macros/latex/contrib/media9/doc/media9.pdf
+++ b/macros/latex/contrib/media9/doc/media9.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/media9.sty b/macros/latex/contrib/media9/media9.sty
index c1e00febb4..1ee3b2e3f3 100644
--- a/macros/latex/contrib/media9/media9.sty
+++ b/macros/latex/contrib/media9/media9.sty
@@ -4,7 +4,6 @@
\bool_if:nTF{
\bool_lazy_and_p:nn {\cs_if_exist_p:N \pdfmanagement_if_active_p:} { \pdfmanagement_if_active_p: }
}{\@mix@testphasetrue}{
-%\input{media9.old.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% media9.sty
@@ -39,8 +38,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@mix@date@tl{2022/08/04}
-\def\g@mix@version@tl{1.25}
+\def\g@mix@date@tl{2024/09/16}
+\def\g@mix@version@tl{1.29}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
@@ -52,7 +51,7 @@
% package options
\msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -2446,8 +2445,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@mix@date@tl{2022/08/04}
-\def\g@mix@version@tl{1.25}
+\def\g@mix@date@tl{2024/09/16}
+\def\g@mix@version@tl{1.29}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
@@ -2459,7 +2458,7 @@
% package options
\msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
diff --git a/macros/latex/contrib/media9/pdfbase.sty b/macros/latex/contrib/media9/pdfbase.sty
index 67ff708ad5..31b5e23dee 100644
--- a/macros/latex/contrib/media9/pdfbase.sty
+++ b/macros/latex/contrib/media9/pdfbase.sty
@@ -156,8 +156,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@pbs@date@tl{2022/08/04}
-\def\g@pbs@version@tl{0.55}
+\def\g@pbs@date@tl{2024/09/16}
+\def\g@pbs@version@tl{0.59}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
@@ -168,7 +168,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -220,11 +220,11 @@
{dvipdfmx}{
\bool_gset_true:N\g_pbs_dvipdfmx_bool
\bool_gset_false:N\g_pbs_dvisvgm_bool
- }
+ }
{dvisvgm}{
\bool_gset_false:N\g_pbs_dvipdfmx_bool
\bool_gset_true:N\g_pbs_dvisvgm_bool
- }
+ }
}{ % otherwise let the L3 backend code decide
\str_case_e:nn{\c_sys_backend_str}{
{dvisvgm}{
@@ -270,6 +270,12 @@
\seq_new:N\g_pbs_bop_seq
\seq_new:N\g_pbs_eop_seq
+% column (boc, eoc) hooks
+\cs_new_protected:Nn\pbs_boc_action:n{\seq_gput_right:Nn\g_pbs_boc_seq{#1}}
+\cs_new_protected:Nn\pbs_eoc_action:n{\seq_gput_right:Nn\g_pbs_eoc_seq{#1}}
+\seq_new:N\g_pbs_boc_seq
+\seq_new:N\g_pbs_eoc_seq
+
\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
\bool_new:N\g_pbs_ocgbase_loaded_bool
\AtBeginDocument{
@@ -1105,8 +1111,8 @@
\mode_leave_vertical: % resources are managed automatically
%rescale box to fit within the papersize while distilling
\tl_gset:cx{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}{\fp_eval:n{min(1.0,
- \dim_ratio:nn{\paperwidth}{\box_wd:N#5},
- \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}
+ \dim_ratio:nn{\paperwidth}{\box_wd:N#5}/\the\mag*1000,
+ \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}/\the\mag*1000
)}}
\box_scale:Nnn#5{
\tl_use:c{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}
@@ -1302,33 +1308,38 @@
\tl_gput_left:Nx\g_pbs_fields_tl{#1\space}
}
-%modify output routine for output box insertions
-\bool_new:N\l_pbs_is_vertical_bool
+% modify page output routine for inserting actions at begin and end
\cs_set_eq:NN\pbs_outputpage_orig:\@outputpage
\cs_set_protected_nopar:Npn\@outputpage{
\int_gincr:N\g_pbs_page_int
- \box_if_vertical:cTF{@outputbox}{
- \bool_set_true:N\l_pbs_is_vertical_bool
- }{
- \bool_set_false:N\l_pbs_is_vertical_bool
- }
- \hbox_set:Nn\@outputbox{
+ \vbox_set:Nn\@outputbox{
%begin of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_bop_seq{##1}}
+ \seq_map_inline:Nn\g_pbs_bop_seq{##1}
\box_use_drop:N\@outputbox
%end of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_eop_seq{##1}}
- }
- \bool_if:NT\l_pbs_is_vertical_bool{
- \vbox_set:Nn\@outputbox{\box_use_drop:N\@outputbox}
+ \seq_map_inline:Nn\g_pbs_eop_seq{##1}
}
\pbs_outputpage_orig:
}
+% modify column making routine for inserting actions at begin and end
+\cs_set_eq:NN\pbs_makecol_orig:\@makecol
+\cs_set_protected_nopar:Npn\@makecol{
+ \vbox_set:Nn\@cclv{
+ %begin of column
+ \seq_map_inline:Nn\g_pbs_boc_seq{##1}
+ \vbox_unpack_drop:N\@cclv
+ %end of column
+ \seq_map_inline:Nn\g_pbs_eoc_seq{##1}
+ }
+ \pbs_makecol_orig:
+}
+
\AddToHook{shipout/foreground}{
%insert /Properties into current page's resources
\put(0,0){\pbs_insert_properties_entry:}
}
+
\AddToHook{shipout/background}{
% workaround for curious AR bug (pdf annot or link placed on
% OCG remains active although OCG is hidden)
@@ -1336,8 +1347,15 @@
% somewhere on the page.
\bool_if:NT\g_pbs_ocgbase_loaded_bool{
\put(1,-1){
+ \tl_if_exist:NF\g_pbs_blank_xform_tl{
+ \hbox_set:Nn\l_tmpa_box{\phantom{\rule{1pt}{1pt}}}
+ \pbs_pdfxform:nnnnn{0}{1}{}{}{\l_tmpa_box}
+ \tl_const:Ne\g_pbs_blank_xform_tl{\pbs_pdflastxform:}
+ }
\pbs_pdfannot:nnnn{3bp}{\c_zero_dim}{3bp}{
- /Ff~65537/FT/Btn/Subtype/Widget
+ /Ff~65537/FT/Btn/Subtype/Widget/F~4
+ /A~<</S/ResetForm>>% to make pdf.js happy
+ /AP~<</N~<</On~\g_pbs_blank_xform_tl>>>>/AS/On
/T~(pbs@ARFix@\int_use:N\g_pbs_page_int)
}
}
@@ -1435,8 +1453,8 @@
% `fstream', then
% {stream attributes as PDF key-value dictionary}{file name}
%
-% if #3 && #1 are both empty, an object reference will be reserved for later
-% use as #1
+% if #3 && #1 are both empty, an object reference will be reserved for
+% later use as #1
%
% \pbs_pdflastobj:
% inserts object ID of PDF object created/processed during most recent call
@@ -1471,9 +1489,9 @@
% --------
%
% \pbs_pdfxform:nnnnn
-% #1: add pgf/tikz resources (transparency, shading)? (0|1) %dvipdfmx/xetex
+% #1: add pgf/tikz resources (transparency, shading)? (0|1); dvipdfmx/xetex
% #2: write immediately to PDF? (0|1); eg 1 for appearances; pdftex/luatex
-% #3: additional resources %all BUT dvips
+% #3: additional resources; all BUT dvips
% #4: additional dictionary entries
% #5: savebox number
% creates PDF Form XObject from savebox content
@@ -1539,8 +1557,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@pbs@date@tl{2022/08/04}
-\def\g@pbs@version@tl{0.55}
+\def\g@pbs@date@tl{2024/09/16}
+\def\g@pbs@version@tl{0.59}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
@@ -1551,7 +1569,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -1603,11 +1621,11 @@
{dvipdfmx}{
\bool_gset_true:N\g_pbs_dvipdfmx_bool
\bool_gset_false:N\g_pbs_dvisvgm_bool
- }
+ }
{dvisvgm}{
\bool_gset_false:N\g_pbs_dvipdfmx_bool
\bool_gset_true:N\g_pbs_dvisvgm_bool
- }
+ }
}{ % otherwise let the L3 backend code decide
\str_case_e:nn{\c_sys_backend_str}{
{dvisvgm}{
@@ -1653,8 +1671,16 @@
\seq_new:N\g_pbs_bop_seq
\seq_new:N\g_pbs_eop_seq
-\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
+% column (boc, eoc) hooks
+\cs_new_protected:Nn\pbs_boc_action:n{\seq_gput_right:Nn\g_pbs_boc_seq{#1}}
+\cs_new_protected:Nn\pbs_eoc_action:n{\seq_gput_right:Nn\g_pbs_eoc_seq{#1}}
+\seq_new:N\g_pbs_boc_seq
+\seq_new:N\g_pbs_eoc_seq
+
\bool_new:N\g_pbs_ocgbase_loaded_bool
+\AddToHook{package/ocgbase/after}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}
+
+\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
\AtBeginDocument{
\iow_now:Nx\@mainaux{
\token_to_str:N\providecommand\token_to_str:N\pbs@newkey[2]{}
@@ -1666,7 +1692,6 @@
\tl_put_right:Nn\landscape{\bool_gset_true:N\g_pbs_lscape_bool}
\tl_put_left:Nn\endlandscape{\bool_gset_false:N\g_pbs_lscape_bool}
}
- \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{}
}
% writing to core objects in the PDF, using the new pdfmanagement interface
@@ -1851,7 +1876,9 @@
\xsb_addto_props:n{/rm@oc\int_use:N\g_pbs_oc_int\space#2}
\int_gincr:N\g_pbs_oc_int
}{
- \pdf_bdcobject:nx{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ \tl_if_exist:cT{g_pbs_objname_#2_tl}{
+ \exp_args:Nne\pdf_bdcobject:nn{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ }
}
}
@@ -1868,9 +1895,7 @@
%pgf + transparency related settings
\bool_new:N\g_pbs_pgfloaded_bool
\bool_gset_false:N\g_pbs_pgfloaded_bool
- \AtBeginDocument{
- \@ifpackageloaded{pgf}{\bool_gset_true:N\g_pbs_pgfloaded_bool}{}
- }
+ \AddToHook{package/pgf/after}{\bool_gset_true:N\g_pbs_pgfloaded_bool}
\int_new:N\g_pbs_obj_int %object ID
\bool_if:NTF\g_pbs_dvipdfmx_bool{ %dvipdfmx/XeTeX
\AtBeginDocument{
@@ -2042,7 +2067,9 @@
}
\cs_new_protected_nopar:Nn\pbs_pdfbdc:nn{
- \pdf_bdcobject:nx{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ \tl_if_exist:cT{g_pbs_objname_#2_tl}{
+ \exp_args:Nne\pdf_bdcobject:nn{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ }
}
}{
\bool_if:NTF\g_pbs_dvisvgm_bool{
@@ -2436,8 +2463,8 @@
\mode_leave_vertical: % resources are managed automatically
%rescale box to fit within the papersize while distilling
\tl_gset:cx{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}{\fp_eval:n{min(1.0,
- \dim_ratio:nn{\paperwidth}{\box_wd:N#5},
- \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}
+ \dim_ratio:nn{\paperwidth}{\box_wd:N#5}/\the\mag*1000,
+ \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}/\the\mag*1000
)}}
\box_scale:Nnn#5{
\tl_use:c{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}
@@ -2602,7 +2629,6 @@
}
}
}
-\cs_generate_variant:Nn\pdf_bdcobject:nn{nx}
\cs_new_eq:NN\pbs_pdfemc:\pdf_emc:
\cs_new_nopar:Nn\pbs_pdflastobj:{\g_pbs_pdflastobj_tl}
@@ -2610,29 +2636,33 @@
\cs_new_nopar:Nn\pbs_pdflastxform:{\g_pbs_pdflastxform_tl}
\cs_new_nopar:Nn\pbs_pdflastximage:{\g_pbs_pdflastximage_tl}
-%modify output routine for output box insertions
-\bool_new:N\l_pbs_is_vertical_bool
+% modify page output routine for inserting actions at begin and end
\cs_set_eq:NN\pbs_outputpage_orig:\@outputpage
\cs_set_protected_nopar:Npn\@outputpage{
\int_gincr:N\g_pbs_page_int
- \box_if_vertical:cTF{@outputbox}{
- \bool_set_true:N\l_pbs_is_vertical_bool
- }{
- \bool_set_false:N\l_pbs_is_vertical_bool
- }
- \hbox_set:Nn\@outputbox{
+ \vbox_set:Nn\@outputbox{
%begin of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_bop_seq{##1}}
+ \seq_map_inline:Nn\g_pbs_bop_seq{##1}
\box_use_drop:N\@outputbox
%end of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_eop_seq{##1}}
- }
- \bool_if:NT\l_pbs_is_vertical_bool{
- \vbox_set:Nn\@outputbox{\box_use_drop:N\@outputbox}
+ \seq_map_inline:Nn\g_pbs_eop_seq{##1}
}
\pbs_outputpage_orig:
}
+% modify column making routine for inserting actions at begin and end
+\cs_set_eq:NN\pbs_makecol_orig:\@makecol
+\cs_set_protected_nopar:Npn\@makecol{
+ \vbox_set:Nn\@cclv{
+ %begin of column
+ \seq_map_inline:Nn\g_pbs_boc_seq{##1}
+ \vbox_unpack_drop:N\@cclv
+ %end of column
+ \seq_map_inline:Nn\g_pbs_eoc_seq{##1}
+ }
+ \pbs_makecol_orig:
+}
+
\AddToHook{shipout/background}{
% workaround for curious AR bug (pdf annot or link placed on
% OCG remains active although OCG is hidden)
@@ -2640,8 +2670,14 @@
% somewhere on the page.
\bool_if:NT\g_pbs_ocgbase_loaded_bool{
\put(1,-1){
+ \tl_if_exist:NF\g_pbs_blank_xform_tl{
+ \hbox_set:Nn\l_tmpa_box{\phantom{\rule{1pt}{1pt}}}
+ \pbs_pdfxform:nnnnn{0}{1}{}{}{\l_tmpa_box}
+ \tl_const:Ne\g_pbs_blank_xform_tl{\pbs_pdflastxform:}
+ }
\pbs_pdfannot:nnnn{3bp}{\c_zero_dim}{3bp}{
- /Ff~65537/FT/Btn/Subtype/Widget
+ /Ff~65537/FT/Btn/Subtype/Widget/F~4
+ /AP~<</N~<</On~\g_pbs_blank_xform_tl>>>>/AS/On
/T~(pbs@ARFix@\int_use:N\g_pbs_page_int)
}
}
diff --git a/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md b/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md
new file mode 100644
index 0000000000..d7dc0229c3
--- /dev/null
+++ b/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md
@@ -0,0 +1,58 @@
+# Changelog: `latexminted` — Python library for LaTeX minted package
+
+
+
+## v0.3.0 (2024-10-29)
+
+* Added support for new keywords options (#416): `extrakeywords`,
+ `extrakeywordsconstant`, `extrakeywordsdeclaration`,
+ `extrakeywordsnamespace`, `extrakeywordspseudo`, `extrakeywordsreserved`,
+ `extrakeywordstype`.
+
+* Refactored version handling in `cmdline.py` to avoid unnecessary imports.
+
+* Improved `.errlog.minted` files. Improved layout and added traceback
+ information for the origin in the LaTeX document. Fixed a bug that could
+ cause `.errlog.minted` files to be deleted when they should be kept.
+ `.errlog.minted` files now contain all error data from a compile,
+ regardless of `highlightmode` setting. Previously, only the data from the
+ last error was kept under some circumstances when `highlightmode` was not
+ `immediate`.
+
+
+
+## v0.2.0 (2024-10-03)
+
+* All config data passed back to LaTeX is now processed with `\detokenize`
+ (#405).
+
+* In a cache, `*.index.minted` files are now overwritten only when the data
+ they contain is modified. This fixes compatibility with build tools
+ (T-F-S/tcolorbox/issues/294).
+
+* Fixed a bug that could prevent a cache from being fully cleaned when it is
+ shared by multiple documents.
+
+* All file reading and writing for files received from/sent to LaTeX is now
+ UTF-8 (#411).
+
+* The cache path is now processed correctly when it is an empty string,
+ instead of resulting in an error, so the `minted` package will now function
+ when `cache=false`.
+
+* Refactored the `cleanfile` subcommand into `cleanconfig`. This is more
+ descriptive for actual usage and allows all subcommands to take the same
+ arguments.
+
+* Added subcommand `cleantemp`, which only cleans temp files, not cache
+ files.
+
+* All subcommands now take exactly the same arguments.
+
+* Added short summary and links to `latexminted --version` (#404).
+
+
+
+## v0.1.0 (2024-09-22)
+
+* Initial release.
diff --git a/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md b/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md
new file mode 100644
index 0000000000..1027d1ae5d
--- /dev/null
+++ b/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md
@@ -0,0 +1,1006 @@
+# Changelog — minted LaTeX package
+
+
+## v3.2.0 (2024/10/29)
+
+* Fixed compatibility with `\includeonly` by replacing buffer length counters
+ with macros (#414). As part of this, the minimum supported `latex2pydata`
+ LaTeX package is now 0.3.0 and the minimum supported `fvextra` is now
+ 1.9.0.
+
+* Added new options that allow keywords to be added to a lexer (#416):
+ `extrakeywords`, `extrakeywordsconstant`, `extrakeywordsdeclaration`,
+ `extrakeywordsnamespace`, `extrakeywordspseudo`, `extrakeywordsreserved`,
+ `extrakeywordstype`. This covers all keyword tokens supported by Pygments
+ (https://pygments.org/docs/tokens/#keyword-tokens).
+
+* Many performance improvements. When combined with `latexrestricted`
+ v0.6.0, these can give a cumulative speedup of over 40% in the case when no
+ code needs to be highlighted.
+
+ - Temp files and the cache are now only cleaned up when necessary at the
+ end of the document. Previously, this occurred at the end of each
+ compile, unnecessarily increasing compile time.
+
+ - In `latexminted.py`, switched from `platform.system()` to `sys.platform`
+ for better performance in detecting operating system.
+
+ Performance reference: https://github.com/python/cpython/issues/95531.
+
+ - In `latexminted.py` with TeX Live, the value of `TEXMFOUTPUT` is no
+ longer retrieved with `kpsewhich` unless it is actually used. Also fixed
+ a bug in parsing `TEXMFOUTPUT` value (whitespace is now stripped).
+
+* The `debug` package option now records shell escape commands in the log.
+
+* In config detection, error messages now mention `.errlog.minted` file when
+ it exists.
+
+
+
+## v3.1.2 (2024/10/07)
+
+* There is now only a single `\read` allocation for reading temporary files
+ when `highlightmode` is set to `fast` or `fastfirst`. Previously, there
+ was one allocation per temp file, which could cause allocation errors when
+ several temp files were highlighted during the same compile (#413).
+
+
+
+## v3.1.1 (2024/10/03)
+
+* Fixed bugs in processing temporary files regardless of `highlightmode` from
+ v3.1.0. With `highlightmode=fastfirst` (default), this would cause an
+ error during the first compile, but then all subsequent compiles would
+ complete correctly.
+
+
+
+## v3.1.0 (2024/10/03)
+
+* All timestamp comparisons that are part of communicating with the
+ `latexminted` Python executable now use timestamps that have been processed
+ with `\detokenize` (#405).
+
+* Option processing now wraps values in curly braces to prevent escaping
+ issues when options are passed on to other packages for further processing
+ (#407).
+
+* Fixed compatibility with `dvilualatex` (#406).
+
+* Temporary files with common file extensions are now automatically detected
+ and processed correctly regardless of `highlightmode` (#401). Previously,
+ `highlightmode=immediate` was needed for working with temp files that are
+ overwritten or deleted during compilation; the default
+ `highlightmode=fastfirst` gave an error message during the first compile
+ but worked correctly during subsequent compiles.
+
+* Fixed bug when `cache=false`. When caching is disabled, `highlightmode` is
+ now set to `immediate`.
+
+* The minimum supported `latexminted` version is now 0.2.0. The new
+ `latexminted` subcommand `cleantemp` is now used instead of `clean` when
+ the cache does not require cleaning. This prevents errors when
+ `cache=false`.
+
+* Fixed docs for `breakbeforeinrun` and `breakafterinrun` (#408). These had
+ not been properly updated after `fvextra` renamed the options.
+
+
+
+## v3.0.0 (2024/09/22)
+
+* Backward compatibility: The new `minted2` package provides the features of
+ `minted` v2.9, the final release before v3. No additional v2 releases are
+ planned; no changes to the `minted2` package are expected.
+
+* `minted` v3 is a complete rewrite from v2.9. `minted` v3 includes
+ significant changes from `minted` v2 on the LaTeX side, and also uses a new
+ `minted`-specific Python executable called `latexminted` to perform syntax
+ highlighting. This executable is specifically designed to meet the
+ security requirements for restricted shell escape programs. Once it has
+ passed a security review and is accepted by TeX distributions, it will be
+ possible to highlight code without `-shell-escape` and its attendant
+ security vulnerabilities.
+
+ Syntax highlighting is still performed with Pygments, but the `pygmentize`
+ executable included with Pygments is no longer used.
+
+* Installing the `minted` package now also installs the `latexminted` Python
+ executable and all required Python libraries, including Pygments, within
+ your TeX distribution. These require Python >= 3.8. If the default Python
+ version on `PATH` is < 3.8, then the `latexminted` Python executable will
+ attempt to locate a more recent version and run itself with that version in
+ a subprocess.
+
+ Manually installing Python libraries is only necessary if you want to use
+ plugin packages for Pygments. In that case, install the `latexminted`
+ Python package in a Python installation. This automatically installs
+ `latex2pydata`, `latexrestricted`, and Pygments as dependencies.
+ `latexminted` is available from the
+ [Python Package Index (PyPI)](https://pypi.org/project/latexminted/). Then
+ install plugin packages for Pygments within the same Python installation.
+
+* The new `latexminted` Python executable is designed to be compatible with
+ the security requirements for restricted shell escape, so that in the
+ future TeX distributions can enable `latexminted` without requiring
+ `-shell-escape`. It is possible to benefit from these enhanced security
+ capabilities immediately and avoid the need for `-shell-escape`.
+
+ - TeX Live: Copy the variable `shell_escape_commands` from the
+ distribution `texmf.cnf` (typically something like
+ `<tex_distro>/texmf-dist/web2c/texmf.cnf`) into the user `texmf.cnf`
+ (typically something like `<tex_distro>/texmf.cnf`), and then add
+ `latexminted` to the end of the `shell_escape_commands` list. The
+ location of the `texmf.cnf` files can be determined by running
+ `kpsewhich -all texmf.cnf`.
+
+ - MiKTeX: Add a line `AllowedShellCommands[] = latexminted` to the
+ existing list of allowed commands in `miktex.ini`. You may want to
+ modify the user-scoped configuration instead of the system-wide
+ configuration. See the
+ [MiKTeX documentation](https://docs.miktex.org/manual/miktex.ini.html)
+ for more details, particularly `initexmf --edit-config-file <file>`.
+
+* Errors and warnings that occur within Python are now reported as `minted`
+ package errors and warnings within LaTeX in nearly all cases. It should no
+ longer be necessary to look through the compile log for Python errors and
+ warnings. A temp file `*.errlog.minted` containing Python traceback
+ information is created in some cases when errors cannot be fully reported
+ within LaTeX or more details may be needed.
+
+* [`latex2pydata`](https://github.com/gpoore/latex2pydata) is now required
+ for passing data from LaTeX to Python and then processing it within Python.
+ This consists of a LaTeX package, available from
+ [CTAN](https://ctan.org/pkg/latex2pydata), and a Python package, available
+ from [PyPI](https://pypi.org/project/latex2pydata/). The LaTeX package can
+ typically be installed with your TeX distribution's package manager. The
+ Python package is automatically installed within your TeX distribution when
+ `minted` is installed.
+
+* On the LaTeX side, all syntax highlighting settings are now serialized in
+ Python literal format using `latex2pydata` and then saved to a temp file,
+ which is loaded on the Python side. Settings are no longer passed to the
+ Python side using command-line arguments. Temp files for passing data to
+ Python are now named using MD5 hashes, instead of using a sanitized version
+ of document `\jobname`. This eliminates an entire class of security issues
+ and bugs related to escaping and quoting command-line arguments (#180,
+ #276, #298, #322, #338, #354). It also eliminates bugs related to
+ processing settings as a sequence of command-line options, since
+ `pygmentize` accumulates some options that are used multiple times rather
+ than overwriting earlier values with later values (#258, #337).
+
+* Options are now handled with `pgfkeys` and `pgfopts`, instead of
+ `keyval` and `kvoptions`.
+
+* Temporary files are no longer created unless the cache needs to be updated
+ (or caching is disabled). All MD5 hashing of code now takes place in
+ memory instead of using one temp file per command/environment.
+
+ All temporary files are cleaned up automatically when compiling completes
+ without interruption. All temporary files now have names of the form
+ `_<hash>.<role>.minted`. `<hash>` is an MD5 hash of `\jobname` (if
+ `\jobname` is wrapped in double or single quotation marks, these are
+ stripped before the MD5 is computed). `<role>` is the role of the temp
+ file: `data` (data passed to Python), `config` (detected system
+ configuration), `style` (highlighting style definition), `highlight`
+ (highlighted code), or `message` (message passed back to LaTeX by Python
+ executable). `<role>` can also be `errlog` when the Python executable
+ encounters an unexpected error that it is not designed to report to the
+ LaTeX side; this is not automatically cleaned up. There are no more
+ `<jobname>.pyg` and `<jobname>.out.pyg` files.
+
+* Several package options are no longer supported and result in errors or
+ warnings.
+
+ - `finalizecache`: No longer needed. The `frozencache` package option now
+ uses the regular cache, rather than requiring a new, special cache
+ containing files with sequentially numbered names (#342). When using
+ `frozencache` with `-output-directory`, the `cachedir` package option
+ should be used to specify a full relative path to the cache (for
+ example, `cachedir=./<output_directory>/_minted`).
+
+ - `outputdir`: No longer needed (#268). TeX Live 2024+ saves a custom
+ output directory from `-output-directory` in the environment variable
+ [`TEXMF_OUTPUT_DIRECTORY`](https://tug.org/texinfohtml/web2c.html#Output-file-location).
+ The environment variable `TEXMF_OUTPUT_DIRECTORY` can be set manually in
+ other cases.
+
+ - `kpsewhich`: No longer needed. `kpsewhich` is now automatically
+ invoked as necessary by the `latexminted` Python executable in locating
+ files.
+
+ - `draft` and `final`: These no longer have any effect and result in a
+ warning. They will soon be removed altogether. Improvements in caching
+ have largely eliminated the overhead that `draft` mode was designed to
+ avoid, while new features that are implemented purely within Python have
+ made it impossible in some cases to typeset code using only LaTeX. The
+ new package options `placeholder` and `verbatim` offer alternatives when
+ maximum compilation speed is needed or the `latexminted` Python
+ executable is unavailable.
+
+* New package options:
+
+ - `debug`: Keep temp files from highlighting to aid in debugging. Also
+ write current file name and line number to log before `\input` of
+ highlighted code (#348).
+
+ - `highlightmode`: Determines when code is highlighted. The default is
+ `fastfirst`. If a cache for the document exists, then code is
+ highlighted immediately. If a cache for the document does not exist,
+ then typeset a placeholder instead of code and highlight all code at the
+ end of the document. This will require a second compile before code is
+ typeset, but because all code is highlighted at once, there is less
+ overhead and the total time required can be significantly less for
+ documents that include many code snippets. The alternatives are `fast`
+ (always highlight at end of document, requiring a second compile) and
+ `immediate` (always highlight immediately, so no second compile is
+ needed). `immediate` should be used when typesetting code in external
+ temp files that are overwritten during compilation.
+
+ When code is highlighted at the end of the document with `fast` or
+ `fastfirst`, any error and warning messages will refer to a location at
+ the end of the document rather than the original code location, since
+ highlighting occurred at the end of the document. In this case, messages
+ are supplemented with original LaTeX source file names and line numbers
+ to aid in debugging.
+
+ - `placeholder`: Instead of typesetting code, insert a placeholder. This
+ is enabled automatically when working with PGF/TikZ externalization.
+
+ - `verbatim`: Instead of highlighting code, attempt to typeset it verbatim
+ without using the `latexminted` Python executable. This is not
+ guaranteed to be an accurate representation of the code, since some
+ features such as `autogobble` require Python.
+
+* `bgcolor` now uses the new `bgcolor` option from `fvextra` v1.8, rather
+ than `snugshade*` from `framed`. This resolves incompatibilities between
+ `bgcolor` and `xleftmargin`/`xrightmargin` (#214), eliminates unneeded
+ whitespace before/after the background (#220), prevents text from
+ overflowing the background (#278), and provides uniform background height
+ for `\mintinline` (#397). Because `bgcolor` now introduces no additional
+ whitespace or padding, existing documents may require some modification.
+
+ Added new option `bgcolorpadding` for modifying padding in background color
+ regions. Added new option `bgcolorvphantom` for setting height of
+ background color in inline contexts.
+
+* Renamed package options `langlinenos` to `lexerlinenos` and
+ `inputlanglinenos` to `inputlexerlinenos`. The old names are still
+ supported.
+
+* The default cache directory name is now `_minted`. All files within a
+ directory now share the same cache, instead of having separate per-document
+ caches. The new `latexminted` Python executable improves cache management
+ so that a shared cache functions correctly. A cache file that is shared by
+ multiple documents will not be deleted if one document ceases to use the
+ file.
+
+ Document-specific caching as in `minted` v2 can be restored using the
+ package option `cachedir`. For example, for files whose names do not
+ contain spaces, simply use `cachedir=\detokenize{_minted-}\jobname`. For
+ files with names that do contain spaces, use a copy of `\jobname` in which
+ the wrapping quotation marks have been removed or replaced with other
+ characters and the spaces have been replaced with placeholders such as `_`.
+
+* Cache file names now take the form `<hash>_highlight.minted` and
+ `<style>_style.minted`. `<hash>` is a single MD5 hash of code and options,
+ when serialized in Python literal format. Cache file names no longer use
+ two concatenated MD5 hashes, one of code and one of options. The cache
+ directory will also contain files `_<hash>.index.minted`. These list all
+ cache files used by a given document. In this case, `<hash>` is the MD5
+ hash of the document's `\jobname` (if `\jobname` is wrapped in double or
+ single quotation marks, these are stripped before the MD5 is computed).
+
+* Highlighting style names must now match the regular expression
+ `^[0-9A-Za-z_-]+$`. This is checked on the LaTeX side.
+
+* `\inputminted` is redefined as robust and is usable in movable arguments.
+
+* `\newminted` now creates an environment that takes an optional argument
+ consisting of options, instead of taking no argument. It still creates a
+ starred `*` environment variant that takes a mandatory argument consisting
+ of options, but this is only retained for backward-compatibility purposes.
+
+* Improved fallback behavior in the event of errors. If code cannot be
+ highlighted, it is automatically typeset with a verbatim approximation if
+ possible and otherwise replaced by a placeholder. If a highlighting style
+ definition cannot be generated, it is automatically replaced with the
+ default style if available, and otherwise a built-in style with no syntax
+ highlighting is used.
+
+* File encoding changes:
+
+ - The new `latexminted` executable assumes that LaTeX output files are
+ UTF-8, and saves highlighted code as UTF-8. That is, LaTeX should be
+ configured so that everything is UTF-8.
+
+ - The `encoding` option now defaults to UTF-8. It is only used in decoding
+ files for `\inputminted` and commands based on it.
+
+ - The `outencoding` option is no longer supported.
+
+* Added new options for including ranges of code based on literal string
+ delimiters or regular expressions. These work with all commands and
+ environments, including `\inputminted`.
+
+ - `rangestartstring`: Select code starting with this string.
+
+ - `rangestartafterstring`: Select code starting immediately after this
+ string.
+
+ - `rangestopstring`: Select code ending with this string.
+
+ - `rangestopbeforestring`: Select code ending immediately before this
+ string.
+
+ - `rangeregex`: Select code that matches this regular expression.
+
+ - `rangeregexmatchnumber` [default=`1`]: If there are multiple
+ non-overlapping matches for `rangeregex`, this determines which is
+ used.
+
+ - `rangeregexdotall` [default=`false`]: `.` matches any character
+ including the newline.
+
+ - `rangeregexmultiline` [default=`false`]: `^` and `$` match at
+ internal newlines, not just at the start/end of the string.
+
+ If line numbers are displayed, they are based on the range of code that is
+ selected; code that is discarded in selecting the range is not considered
+ in calculating line numbers.
+
+ String values and regular expressions can be set using text with backslash
+ escapes, in a manner analogous to regular (non-raw) Python strings. Any
+ ASCII symbols and punctuation, including those that have special LaTeX
+ meaning, can be backslash escaped. For example, `rangeregex=\\\\.` is
+ processed like the Python string `"\\\\."`, becoming the literal text
+ `\\.`, which is then interpreted as the regular expression for a literal
+ backslash followed by any character. Alternatively, string values and
+ regular expressions can be set using a single macro that, when fully
+ expanded (`\edef`), gives the desired literal text. For example,
+ `\def\pattern{\detokenize{\\.}}` and then `rangeregex=\pattern` would be
+ equivalent to `rangeregex=\\\\.`.
+
+* There is now official support for custom lexers. Custom lexers that are
+ installed as Pygments [plugins](https://pygments.org/docs/plugins/) have
+ always been supported, since Pygments can find them automatically.
+ However, custom lexers in the form of `*.py` files in the document
+ directory have not officially been supported.
+
+ Custom lexers can be specified in place of builtin lexers. For example,
+ `\inputminted{lexer.py}{<file>}` or
+ `\inputminted{./path/lexer.py:LexerClass}{<file>}`.
+
+ Custom lexers in the form of `*.py` files are not automatically enabled,
+ since they are equivalent to arbitrary code execution and are thus a
+ significant security risk. To enable custom lexers, create a file
+ `.latexminted_config`. This can be in your home directory (as found by
+ Python's `pathlib.Path.home()`) or in `TEXMFHOME`; if this file is found in
+ both locations, settings from the TeX location overwrite settings from the
+ home directory. It is also possible to enable a `.latexminted_config` file
+ in your document directory; see the documentation for
+ `.latexminted_config`. This file must contain data in Python literal,
+ JSON, or TOML format. TOML requires Python >= 3.11. The data must contain
+ an entry equivalent to this Python data:
+ ```
+ {
+ "custom_lexers": {
+ "<lexer file name>": "<SHA-256 hash of lexer file>"
+ }
+ }
+ ```
+ `<lexer file name>` is just the name of the file, with no path or class
+ included. For example, for `./path/lexer.py:LexerClass` it would be just
+ `lexer.py`. Any number of file names and hashes can be provided.
+
+* Enhancements of existing options:
+
+ - `codetagify` now supports comma-delimited lists of strings, not just
+ space-delimited lists (#126).
+
+* New options:
+
+ - `envname`: Name of the environment that wraps typeset code. By default,
+ it is `Verbatim` in block contexts and `VerbEnv` in inline contexts.
+ This is compatible with `fancyvrb`'s `BVerbatim` (#281).
+
+ Implementation note: Code is actually wrapped a `MintedVerbatim`
+ environment, and then this is redefined to be equivalent to `envname`
+ (see the new option `literalenvname`).
+
+ - `literalenvname`: This is the name of the environment that literally
+ appears in highlighted code output as a wrapper around the code. By
+ default it is `MintedVerbatim`. This environment is redefined to be
+ equivalent to the current value of `envname`. There should be few if any
+ situations where modifying `literalenvname` rather than `envname` is
+ actually necessary.
+
+ - `literatecomment`: This is for compatibility with literate programming
+ formats, such as the `.dtx` format commonly used for writing LaTeX
+ packages. If all lines of code begin with `<literatecomment>`, then
+ `<literatecomment>` is removed from the beginning of all lines. For
+ example, for `.dtx`, `literatecomment=\%`.
+
+ - `listparameters`: Previously unsupported `fancyvrb` option (#256).
+
+ - `breakanywhereinlinestretch`: New `fvextra` option.
+
+* `gobble` is now applied to code before syntax highlighting and no longer
+ uses the Pygments `gobble` filter, which operates on the token stream
+ generated by a lexer. This makes `gobble` and `autogobble` behave in the
+ same manner. The Pygments `gobble` filter is still accessible via the new
+ option `gobblefilter` (#379).
+
+* Standard catcodes are now enforced in reading the optional argument of
+ environments that wrap Pygments output. This prevents issues with
+ `babel`'s `magyar` (#382).
+
+
+
+## v2.9 (2023/12/18)
+
+* This is expected to be the last release of `minted` v2.x. If so, it will
+ then become the new package `minted2` for backward compatibility.
+
+* Added new option `ignorelexererrors`. When lexer errors are shown in
+ highlighted output (default), they are typically displayed as red boxes
+ that surround the relevant text. When lexer errors are ignored, the
+ literal text that caused lexer errors is shown but there is no indication
+ that it caused errors (#374).
+
+* There is now a warning if `fvextra` version is less than 1.5.
+
+
+
+## v2.8 (2023/09/12)
+
+* Under non-Windows operating systems, detect executables with `command -v`
+ rather than `which` to provide better cross-platform support (#345).
+
+* Added new package option `inputlanglinenos`. This extends the existing
+ `langlinenos` to cover `\inputminted` as well (#361).
+
+* Improved and updated Pygments documentation (#339).
+
+* Improved `\mintinline` documentation to address packages that redefine
+ `\section` (#368).
+
+* Added support for `fvextra` options `breakafterinrun` and
+ `breakbeforeinrun` (#358). In `fvextra` version 1.5, `breakaftergroup`
+ and `breakbeforegroup` were renamed to `breakafterinrun` and
+ `breakbeforeinrun` to avoid naming ambiguity with new options. The old
+ options `breakaftergroup` and `breakbeforegroup` are no longer supported.
+
+* Added `DEPENDS.txt` (#331).
+
+* Removed unnecessary dependency on `calc` package (#313).
+
+* Added documentation in FAQ about copy and paste limitations (#302).
+
+* Added note on `text` lexer to documentation (#274).
+
+
+
+## v2.7 (2022/12/12)
+
+* Reimplemented `\mintinline` to use `fvextra`'s argument reading and
+ processing macros, and to use `fvextra`'s `\Verb` internally.
+ `\mintinline` now works with all line breaking options supported by
+ `fvextra`'s `\Verb`, including `breakanywhere` (#329, #340). It now
+ gives better results when used inside other commands, since it uses
+ `fvextra`'s retokenization macros. It is now compatible with `hyperref`
+ for PDF strings such as bookmarks.
+
+* Reimplemented `\newmintinline` based on new `\mintinline`.
+
+* Reimplemented `\mint` to use `fvextra`'s argument reading and processing
+ macros. It now gives better results when used inside other commands,
+ since it uses `fvextra`'s retokenization macros. Fixed a bug that caused
+ a continued paragraph after `\mint` to be indented (#218).
+
+* Reimplemented `\newmint` based on new `\mint`. Commands created with
+ `\newmint` can now use curly braces as delimiters, just like `\mint`
+ (#254).
+
+* Settings passed to `pygmentize` as command-line options are now quoted.
+ This prevents `escapeinside` characters from being interpreted as special
+ shell characters (#179, #262).
+
+* Fixed bug with `autogobble` that produced incorrect dedent when using
+ `lastline` with the lines beyond `lastline` having less indentation than
+ the selected range (#326).
+
+* Fixed unintended line breaks after hyphens under LuaTeX (#263).
+
+* Added warning to documentation of `\inputminted` regarding filenames
+ and shell command execution (#338).
+
+
+
+## v2.6 (2021/12/24)
+
+* `autogobble` automatically uses `python` or `python3` executables,
+ depending on availability, instead of requiring `python`. A custom
+ executable can be specified by redefining `\MintedPython` (#277, #287).
+
+* Fixed `autogobble` compatibility with `fancyvrb` 4.0+ (#315, #316).
+
+* Pygments style names may now contain arbitrary non-whitespace characters.
+ Previously, style names containing digits and some punctuation characters
+ were incompatible (#210, #294, #299, #317). Pygments macros are now only
+ defined just before use locally within `minted` commands and environments,
+ rather than globally. Pygments macros now always use a `\PYG` prefix
+ regardless of style, rather than a prefix of the form `\PYG<style>` (for
+ example, what was previously `\PYGdefault` is now simply `\PYG`).
+
+* Removed Python-based MD5 hashing for XeTeX, which was necessary before
+ XeTeX added `\mdfivesum` in 2017.
+
+* The default for `stripnl` is now `false`, so that original code is
+ preserved exactly by default (#198).
+
+* Added support for `fontencoding` option from `fvextra` (#208).
+
+* Added note to FAQ about getting `texi2pdf` to work with `minted` given
+ `texi2pdf`'s assumptions about temp files (#186).
+
+* Reimplemented `bgcolor` option to be compatible with `color` package.
+
+
+
+## v2.5 (2017/07/19)
+
+* The default placement for the `listing` float is now `tbp` instead of `h`,
+ to parallel `figure` and `table` and also avoid warnings caused by `h`
+ (#165). The documentation now contains information about changing default
+ placement. The `float` package is no longer loaded when the `newfloat`
+ package option is used.
+
+* Added support for `*nchars` options from `fvextra` v1.3 that allow setting
+ `breaklines`-related indentation in terms of a number of characters, rather
+ than as a fixed dimension.
+
+* Fixed incompatibility with `babel magyar` (#158).
+
+* Added support for `beamer` overlays with `beameroverlays` option (#155).
+
+* Comments in the Pygments LaTeX style files no longer appear as literal
+ text when `minted` is used in `.dtx` files (#161).
+
+* `autogobble` now works with package option `kpsewhich` (#151). Under
+ Windows, the `kpsewhich` option no longer requires PowerShell.
+
+* Fixed a bug that prevented `finalizecache` from working with `outputdir`
+ (#149).
+
+* Fixed a bug with `firstline` and `lastline` that prevented them from
+ working with the `minted` environment (#145).
+
+* Added note on `breqn` conflicts to FAQ (#163).
+
+
+
+## v2.4.1 (2016/10/31)
+
+* Single quotation marks in `\jobname` are now replaced with underscores in
+ `\minted@jobname` to prevent quoting errors (#137).
+
+* The `autogobble` option now takes `firstline` and `lastline` into account
+ (#130).
+
+* Fixed `numberblanklines`, which had been lost in the transition to v2.0+
+ (#135).
+
+
+
+## v2.4 (2016/07/20)
+
+* Line breaking and all associated options are now completely delegated to
+ `fvextra`.
+
+* Fixed a bug from v2.2 that could cause the first command or environment to
+ vanish when `cache=false` (related to work on `\MintedPygmentize`).
+
+
+
+## v2.3 (2016/07/14)
+
+* The `fvextra` package is now required. `fvextra` extends and patches
+ `fancyvrb`, and includes improved versions of `fancyvrb` extensions that
+ were formerly in `minted`.
+
+* As part of `fvextra`, the `upquote` package is always loaded. `fvextra`
+ brings the new option `curlyquotes`, which allows curly single quotation
+ marks instead of the literal backtick and typewriter single quotation mark
+ produced by `upquote`. This allows the default `upquote` behavior to be
+ disabled when desired.
+
+* Thanks to `fvextra`, the options `breakbefore`, `breakafter`, and
+ `breakanywhere` are now compatible with non-ASCII characters under
+ pdfTeX (#123).
+
+* Thanks to `fvextra`, `obeytabs` no longer causes lines in multi-line
+ comments or strings to vanish (#88), and is now compatible with
+ `breaklines` (#99). `obeytabs` will now always give correct results with
+ tabs used for indentation. However, tab stops are not guaranteed to be
+ correct for tabs in the midst of text.
+
+* `fvextra` brings the new options `space`, `spacecolor`, `tab`, and
+ `tabcolor` that allow these characters and their colors to be redefined
+ (#98). The tab may now be redefined to a flexible-width character such
+ as `\rightarrowfill`. The visible tab will now always be black by default,
+ instead of changing colors depending on whether it is part of indentation
+ for a multiline string or comment.
+
+* `fvextra` brings the new options `highlightcolor` and `highlightlines`,
+ which allow single lines or ranges of lines to be highlighted based on line
+ number (#124).
+
+* `fvextra` brings the new options `numberfirstline`, `stepnumberfromfirst`,
+ and `stepnumberoffsetvalues` that provide better control over line
+ numbering when `stepnumber` is not 1.
+
+* Fixed a bug from v2.2.2 that prevented `upquote` from working.
+
+
+
+## v2.2.2 (2016/06/21)
+
+* Fixed a bug introduced in v2.2 that prevented setting the Pygments style in
+ the preamble. Style definitions are now more compatible with using
+ `\MintedPygmentize` to call a custom `pygmentize`.
+
+
+
+## v2.2.1 (2016/06/15)
+
+* The `shellesc` package is loaded before `ifplatform` and other packages
+ that might invoke `\write18` (#112).
+
+* When caching is enabled, XeTeX uses the new `\mdfivesum` macro from TeX
+ Live 2016 to hash cache content, rather than using `\ShellEscape` with
+ Python to perform hashing.
+
+
+
+## v2.2 (2016/06/08)
+
+* All uses of `\ShellEscape` (`\write18`) no longer wrap file names and paths
+ with double quotes. This allows a cache directory to be specified relative
+ to a user's home directory, for example, `~/minted_cache`. `cachedir` and
+ `outputdir` paths containing spaces will now require explicit quoting of
+ the parts of the paths that contain spaces, since `minted` no longer
+ supplies quoting. See the updated documentation for examples (#89).
+
+* Added `breakbefore`, `breakbeforegroup`, `breakbeforesymbolpre`, and
+ `breakbeforesymbolpost`. These parallel `breakafter*`. It is possible to
+ use `breakbefore` and `breakafter` for the same character, so long as
+ `breakbeforegroup` and `breakaftergroup` have the same setting (#117).
+
+* Added package options `finalizecache` and `frozencache`. These allow the
+ cache to be prepared for (`finalizecache`) and then used (`frozencache`) in
+ an environment in which `-shell-escape`, Python, and/or Pygments are not
+ available. Note that this only works if `minted` content does not need to
+ be modified, and if no settings that depend on Pygments or Python need to
+ be changed (#113).
+
+* Style names containing hyphens and underscores (`paraiso-light`,
+ `paraiso-dark`, `algol_nu`) now work (#111).
+
+* The `shellesc` package is now loaded, when available, for compatibility
+ with LuaTeX 0.87+ (TeX Live 2016+, etc.). `\ShellEscape` is now used
+ everywhere instead of `\immediate\write18`. If `shellesc` is not available,
+ then a `\ShellEscape` macro is created. When `shellesc` is loaded, there
+ is a check for versions before v0.01c to patch a bug in v0.01b (present in
+ TeX Live 2015) (#112).
+
+* The `bgcolor` option now uses the `snugshade*` environment from the `framed`
+ package, so `bgcolor` is now compatible with page breaks. When `bgcolor`
+ is in use, immediately preceding text will no longer push the `minted`
+ environment into the margin, and there is now adequate spacing from
+ surrounding text (#121).
+
+* Added missing support for `fancyvrb`'s `labelposition` (#102).
+
+* Improved fix for TikZ externalization, thanks to Patrick Vogt (#73).
+
+* Fixed `breakautoindent`; it was disabled in version 2.1 due to a bug in
+ `breakanywhere`.
+
+* Properly fixed handling of `\MintedPygmentize` (#62).
+
+* Added note on incompatibility of `breaklines` and `obeytabs` options.
+ Trying to use these together will now result in a package error (#99).
+ Added note on issues with `obeytabs` and multiline comments (#88). Due to
+ the various `obeytabs` issues, the docs now discourage using `obeytabs`.
+
+* Added note to FAQ on `fancybox` and `fancyvrb` conflict (#87).
+
+* Added note to docs on the need for `\VerbatimEnvironment` in environment
+ definitions based on `minted` environments.
+
+
+
+## v2.1 (2015/09/09)
+
+* Changing the highlighting style now no longer involves re-highlighing
+ code. Style may be changed with almost no overhead.
+
+* Improved control of automatic line breaks. New option `breakanywhere`
+ allows line breaks anywhere when `breaklines=true`. The pre-break and
+ post-break symbols for these types of breaks may be set with
+ `breakanywheresymbolpre` and `breakanywheresymbolpost` (#79). New option
+ `breakafter` allows specifying characters after which line breaks are
+ allowed. Breaks between adjacent, identical characters may be controlled
+ with `breakaftergroup`. The pre-break and post-break symbols for these
+ types of breaks may be set with `breakaftersymbolpre` and
+ `breakaftersymbolpost`.
+
+* `breakbytoken` now only breaks lines between tokens that are separated by
+ spaces, matching the documentation. The new option `breakbytokenanywhere`
+ allows for breaking between tokens that are immediately adjacent. Fixed a
+ bug in `\mintinline` that produced a following linebreak when
+ `\mintinline` was the first thing in a paragraph and `breakbytoken` was
+ true (#77).
+
+* Fixed a bug in draft mode option handling for `\inputminted` (#75).
+
+* Fixed a bug with `\MintedPygmentize` when a custom `pygmentize` was
+ specified and there was no `pygmentize` on the default path (#62).
+
+* Added note to docs on caching large numbers of code blocks under OS X (#78).
+
+* Added discussion of current limitations of `texcomments` (#66) and
+ `escapeinside` (#70).
+
+* PGF/Ti*k*Z externalization is automatically detected and supported
+ (#73).
+
+* The package is now compatible with LaTeX files whose names contain spaces (#85).
+
+
+
+## v2.0 (2015/01/31)
+
+* Added the compatibility package `minted1`, which provides the `minted` 1.7
+ code. This may be loaded when 1.7 compatibility is required. This package
+ works with other packages that `\RequirePackage{minted}`, so long as it is
+ loaded first.
+
+* Moved all old `\changes` into `changelog`.
+
+
+
+## Development releases for 2.0 (2014-January 2015)
+
+* Caching is now on by default.
+
+* Fixed a bug that prevented compiling under Windows when file names
+ contained commas.
+
+* Added `breaksymbolleft`, `breaksymbolsepleft`,
+ `breaksymbolindentleft`, `breaksymbolright`, `breaksymbolsepright`,
+ and `breaksymbolindentright` options. `breaksymbol`,
+ `breaksymbolsep`, and `breaksymbolindent` are now aliases for the
+ correspondent `*left` options.
+
+* Added `kpsewhich` package option. This uses `kpsewhich` to locate
+ the files that are to be highlighted. This provides compatibility
+ with build tools like `texi2pdf` that function by modifying
+ `TEXINPUTS` (#25).
+
+* Fixed a bug that prevented `\inputminted` from working with `outputdir`.
+
+* Added informative error messages when Pygments output is missing.
+
+* Added `final` package option (opposite of `draft`).
+
+* Renamed the default cache directory to `_minted-<jobname>` (replaced
+ leading period with underscore). The leading period caused the cache
+ directory to be hidden on many systems, which was a potential source
+ of confusion.
+
+* `breaklines` and `breakbytoken` now work with `\mintinline` (#31).
+
+* `bgcolor` may now be set through `\setminted` and `\setmintedinline`.
+
+* When math is enabled via `texcomments`, `mathescape`, or
+ `escapeinside`, space characters now behave as in normal math by
+ vanishing, instead of appearing as literal spaces. Math need no
+ longer be specially formatted to avoid undesired spaces.
+
+* In default value of `\listoflistingscaption`, capitalized “Listings” so that
+ capitalization is consistent with default values for other lists
+ (figures, tables, algorithms, etc.).
+
+* Added `newfloat` package option that creates the `listing`
+ environment using `newfloat` rather than `float`, thus providing
+ better compatibility with the `caption` package (#12).
+
+* Added support for Pygments option `stripall`.
+
+* Added `breakbytoken` option that prevents `breaklines` from breaking
+ lines within Pygments tokens.
+
+* `\mintinline` uses a `\colorbox` when `bgcolor` is set, to give more
+ reasonable behavior (#57).
+
+* For PHP, `\mintinline` automatically begins with `startinline=true` (#23).
+
+* Fixed a bug that threw off line numbering in `minted` when
+ `langlinenos=false` and `firstnumber=last`. Fixed a bug in `\mintinline` that
+ threw off subsequent line numbering when `langlinenos=false` and
+ `firstnumber=last`.
+
+* Improved behavior of `\mint` and `\mintinline` in `draft` mode.
+
+* The `\mint` command now has the additional capability to take code
+ delimited by paired curly braces `{}`.
+
+* It is now possible to set options only for `\mintinline` using the new
+ `\setmintedinline` command. Inline options override options specified via
+ `\setminted`.
+
+* Completely rewrote option handling. `fancyvrb` options are now handled on the
+ LaTeX side directly, rather than being passed to Pygments and then
+ returned. This makes caching more efficient, since code is no longer
+ rehighlighted just because options changed.
+
+* Fixed buffer size error caused by using `cache` with a very large
+ number of files (#61).
+
+* Fixed `autogobble` bug that caused failure under some operating
+ systems.
+
+* Added support for `escapeinside` (requires Pygments 2.0+; #38).
+
+* Fixed issues with XeTeX and caching (#40).
+
+* The `upquote` package now works correctly with single quotes when
+ using Pygments 1.6+ (#34).
+
+* Fixed caching incompatibility with Linux and OS X under xelatex
+ (#18 and #42).
+
+* Fixed `autogobble` incompatibility with Linux and OS X.
+
+* `\mintinline` and derived commands are now robust, via `\newrobustcmd`
+ from `etoolbox`.
+
+* Unused styles are now cleaned up when caching.
+
+* Fixed a bug that could interfere with caching (#24).
+
+* Added `draft` package option (#39). This typesets all code using
+ `fancyvrb`; Pygments is not used. This trades syntax highlighting
+ for maximum speed in compiling.
+
+* Added automatic line breaking with `breaklines` and related options
+ (#1).
+
+* Fixed a bug with boolean options that needed a False argument to
+ cooperate with `\setminted` (#48).
+
+
+
+## v2.0-alpha3 (2013/12/21)
+
+* Added `autogobble` option. This sends code through Python's
+ `textwrap.dedent()` to remove common leading whitespace.
+
+* Added package option `cachedir`. This allows the directory in which
+ cached content is saved to be specified.
+
+* Added package option `outputdir`. This allows an output directory for
+ temporary files to be specified, so that the package can work with
+ LaTeX's `-output-directory` command-line option.
+
+* The `kvoptions` package is now required. It is needed to process
+ key-value package options, such as the new `cachedir` option.
+
+* Many small improvements, including better handling of paths under
+ Windows and improved key system.
+
+
+
+## v2.0-alpha2 (2013/08/21)
+
+* `\DeleteFile` now only deletes files if they do indeed exist. This
+ eliminates warning messages due to missing files.
+
+* Fixed a bug in the definition of `\DeleteFile` for non-Windows systems.
+
+* Added support for Pygments option `stripnl`.
+
+* Settings macros that were previously defined globally are now defined
+ locally, so that `\setminted` may be confined by `\begingroup...\endgroup`
+ as expected.
+
+* Macro definitions for a given style are now loaded only once per document,
+ rather than once per command/environment. This works even without caching.
+
+* A custom script/executable may now be substituted for `pygmentize` by
+ redefining `\MintedPygmentize`.
+
+
+
+## v2.0alpha (2013/07/30)
+
+* Added the package option `cache`. This significantly increases
+ compilation speed by caching old output. For example, compiling the
+ documentation is around 5x faster.
+
+* New inline command `\mintinline`. Custom versions can be created via
+ `\newmintinline`. The command works inside other commands (for example,
+ footnotes) in most situations, so long as the percent and hash
+ characters are avoided.
+
+* The new `\setminted` command allows options to be specified at the
+ document and language levels.
+
+* All extended characters (Unicode, etc.) supported by `inputenc` now
+ work under the pdfTeX engine. This involved using `\detokenize` on
+ everything prior to saving.
+
+* New package option `langlinenos` allows line numbering to pick up
+ where it left off for a given language when `firstnumber=last`.
+
+* New options, including `style`, `encoding`, `outencoding`,
+ `codetagify`, `keywordcase`, `texcomments` (same as `texcl`),
+ `python3` (for the `PythonConsoleLexer`), and `numbers`.
+
+* `\usemintedstyle` now takes an optional argument to specify the style for a
+ particular language, and works anywhere in the document.
+
+* `xcolor` is only loaded if `color` isn’t, preventing potential
+ package clashes.
+
+
+
+## v1.7 (2011/09/17)
+
+* Options for float placement added [2011/09/12]
+
+* Fixed `tabsize` option [2011/08/30]
+
+* More robust detection of the `-shell-escape` option [2011/01/21]
+
+* Added the `label` option [2011/01/04]
+
+* Installation instructions added [2010/03/16]
+
+* Minimal working example added [2010/03/16]
+
+* Added PHP-specific options [2010/03/14]
+
+* Removed unportable flag from Unix shell command [2010/02/16]
+
+
+## v1.6 (2010/01/31)
+
+* Added font-related options [2010/01/27]
+
+* Windows support added [2010/01/27]
+
+* Added command shortcuts [2010/01/22]
+
+* Simpler versioning scheme [2010/01/22]
+
+
+
+## v0.1.5 (2010/01/13)
+
+* Added `fillcolor` option [2010/01/10]
+
+* Added float support [2010/01/10]
+
+* Fixed `firstnumber` option [2010/01/10]
+
+* Removed `caption` option [2010/01/10]
+
+
+
+## v0.0.4 (2010/01/08)
+
+* Initial version [2010/01/08]
diff --git a/macros/latex/contrib/minted/DEPENDS.txt b/macros/latex/contrib/minted/DEPENDS.txt
index 5c39ebf2e9..9f4eafc4e1 100644
--- a/macros/latex/contrib/minted/DEPENDS.txt
+++ b/macros/latex/contrib/minted/DEPENDS.txt
@@ -1,15 +1,11 @@
catchfile
etoolbox
float
-framed
fvextra
-ifplatform
-ifthen
-keyval
-kvoptions
-lineno
+latex2pydata
newfloat
pdftexcmds
+pgfkeys
+pgfopts
shellesc
xcolor
-xstring
diff --git a/macros/latex/contrib/minted/Makefile b/macros/latex/contrib/minted/Makefile
deleted file mode 100644
index ae199e79d5..0000000000
--- a/macros/latex/contrib/minted/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-TEXFLAGS = -e '$$pdflatex=q/pdflatex %O -shell-escape %S/' -pdf
-LATEXMK = latexmk
-
-PACKAGE = minted.dtx \
- minted.ins \
- minted.pdf \
- README \
- Makefile
-
-.PHONY: minted all doc dist clean cleanall
-
-minted: minted.sty
-
-doc: minted.pdf
-
-all: minted doc
-
-minted.sty: minted.ins minted.dtx
- tex minted.ins
-
-minted.pdf: minted.sty minted.gls minted.dtx
- $(LATEXMK) $(TEXFLAGS) minted.dtx
-
-minted.gls: minted.glo
- makeindex -s gglo.ist -o minted.gls minted.glo
-
-minted.glo: minted.dtx minted.sty
- $(LATEXMK) $(TEXFLAGS) minted.dtx
-
-dist: $(PACKAGE)
- @$(RM) minted.zip
- @zip minted-$(shell grep '^\\ProvidesPackage' < minted.sty | grep -o '\<v[[:digit:]]*\.[[:digit:]]*\>').zip $(PACKAGE)
-
-clean:
- @$(RM) *.aux *.log *.out *.toc *.fdb_latexmk *.ilg *.glo *.gls *.lol
-
-cleanall: clean
- @$(RM) minted.sty minted.zip
diff --git a/macros/latex/contrib/minted/README b/macros/latex/contrib/minted/README
index b2a13a8aff..f4e0068b4a 100644
--- a/macros/latex/contrib/minted/README
+++ b/macros/latex/contrib/minted/README
@@ -7,10 +7,10 @@ the highlighted source code output using fancyvrb and fvextra.
See the documentation (minted.pdf) for examples and instructions for
installation and usage.
-This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), version 1.3 or later. Additionally,
-the project may be distributed under the terms of the 3-Clause ("New") BSD
-license.
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License (LPPL), version 1.3c or later. Additionally,
+minted1.sty and minted2.sty may be distributed under the terms of the 3-Clause
+("New") BSD license.
For suggestions, feature requests, and bug reports, please use the project's
GitHub site: https://github.com/gpoore/minted.
diff --git a/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl b/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl
new file mode 100644
index 0000000000..616cda2ad5
--- /dev/null
+++ b/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/latexminted-0.3.0-py3-none-any.whl b/macros/latex/contrib/minted/latexminted-0.3.0-py3-none-any.whl
new file mode 100644
index 0000000000..9d0e2a8b59
--- /dev/null
+++ b/macros/latex/contrib/minted/latexminted-0.3.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/latexminted.py b/macros/latex/contrib/minted/latexminted.py
new file mode 100644
index 0000000000..3e6e6fe4a4
--- /dev/null
+++ b/macros/latex/contrib/minted/latexminted.py
@@ -0,0 +1,367 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2024, Geoffrey M. Poore
+# All rights reserved.
+#
+# Licensed under the LaTeX Project Public License version 1.3c:
+# https://www.latex-project.org/lppl.txt
+#
+
+
+'''
+This Python executable is intended for installation within a TeX distribution,
+along with Python wheels for the following Python packages:
+
+ * latexminted: https://pypi.org/project/latexminted/
+
+ * latexrestricted: https://pypi.org/project/latexrestricted/
+
+ * latex2pydata: https://pypi.org/project/latex2pydata/
+
+ * Pygments: https://pypi.org/project/Pygments/
+
+The combined executable plus wheels provide everything that is needed for the
+Python side of the minted LaTeX package. No additional Python libraries are
+required.
+
+The wheels require Python >= 3.8. If this executable is launched with an
+earlier Python version, then it will attempt to locate a more recent Python
+installation and run itself with that Python version in a subprocess. The
+search for more recent Python versions looks for executables of the form
+`python3.x` on PATH.
+
+If the latexminted Python package is installed separately, outside TeX, then
+it will create a separate `latexminted` executable as part of the installation
+process. That makes it possible to install latexminted and dependencies
+separately and then customize Pygments with additional packages that provide
+plugins. However, running that separate `latexminted` executable is not
+straightforward under Windows. Under Windows, if this executable finds a
+suitable `latexminted` executable elsewhere, outside a TeX installation, then
+this executable will run that separate `latexminted` executable in a
+subprocess and exit. There are two reasons for this approach:
+
+ 1. Under Windows with TeX Live, the default restricted shell escape can only
+ run executables such as `latexminted` that are part of the TeX
+ installation; the executable that runs is not the first executable on
+ PATH. That is part of TeX Live's security measures to prevent running
+ executables in the current working directory, which is typically writable
+ by LaTeX and is the first place Windows checks when searching for
+ executables. This script and the latexrestricted Python package enforce
+ equivalent security, but do so in a less restrictive manner by expanding
+ executable names into executable paths with Python's `shutil.which()` and
+ then comparing the result with locations writable by LaTeX.
+
+ 2. Under non-Windows operating systems, it is possible to modify PATH so that
+ the desired `latexminted` executable is first. Under Windows, the system
+ PATH is prepended to the user PATH, so a system-wide TeX installation will
+ prevent a user-installed `latexminted` executable from being accessible.
+
+Requirements for locating and running a separate `latexminted` executable
+under Windows:
+
+ * The separate executable must be the first `latexminted.exe` found on PATH,
+ or it must be the first `latexminted.exe` on PATH that is located under
+ the user home directory.
+
+ * The separate executable must be outside a TeX installation. There is a
+ check for a `tex.exe` executable in the same directory as
+ `latexminted.exe`. There is a check for the case-insensitive strings
+ "texlive", "miktex", and "tinytex" in the path to the `latexminted`
+ executable. With TeX Live, the path to the `latexminted` executable is
+ also compared to the environment variable `SELFAUTOLOC`.
+
+ * The separate executable must be outside the current working directory,
+ TEXMFOUTPUT, and TEXMF_OUTPUT_DIRECTORY.
+
+ * The current directory, TEXMFOUTPUT, and TEXMF_OUTPUT_DIRECTORY cannot be
+ subdirectories of the directory in which the executable is located.
+'''
+
+
+__version__ = '0.3.0'
+
+
+import os
+import pathlib
+import shutil
+import subprocess
+import sys
+
+
+
+
+# This is an abbreviated variant of `AnyPath` from latexrestricted:
+# https://github.com/gpoore/latexrestricted/blob/main/latexrestricted/_anypath.py
+class Path(type(pathlib.Path())):
+ __slots__ = (
+ '_cache_key',
+ )
+
+ if sys.version_info[:2] < (3, 9):
+ def is_relative_to(self, other):
+ try:
+ self.relative_to(other)
+ return True
+ except ValueError:
+ return False
+
+ @property
+ def cache_key(self):
+ try:
+ return self._cache_key
+ except AttributeError:
+ self._cache_key = (type(self), self)
+ return self._cache_key
+
+ _resolved_set = set()
+
+ def resolve(self):
+ resolved = super().resolve()
+ self._resolved_set.add(resolved.cache_key)
+ return resolved
+
+ def is_resolved(self) -> bool:
+ return self.cache_key in self._resolved_set
+
+
+
+
+# Define function that determines whether subprocess executable paths are
+# permitted.
+prohibited_path_roots = set()
+prohibited_path_roots.add(Path.cwd())
+env_TEXMFOUTPUT = os.getenv('TEXMFOUTPUT')
+env_TEXMF_OUTPUT_DIRECTORY = os.getenv('TEXMF_OUTPUT_DIRECTORY')
+for env_var in (env_TEXMFOUTPUT, env_TEXMF_OUTPUT_DIRECTORY):
+ if env_var:
+ env_var_path = Path(env_var)
+ prohibited_path_roots.add(env_var_path)
+ prohibited_path_roots.add(env_var_path.resolve())
+
+did_init_prohibited_path_roots = False
+def is_permitted_executable_path(executable_path, executable_path_resolved):
+ global did_init_prohibited_path_roots
+ if not did_init_prohibited_path_roots:
+ did_init_prohibited_path_roots = True
+ init_prohibited_path_roots()
+ if not executable_path_resolved.is_resolved():
+ raise Exception('Second argument must be resolved path')
+ if any(e.is_relative_to(p) or p.is_relative_to(e)
+ for e in set([executable_path.parent, executable_path_resolved.parent])
+ for p in prohibited_path_roots):
+ return False
+ return True
+
+# TeX Live allows setting `TEXMFOUTPUT` in LaTeX configuration.
+# Retrieving that value with kpsewhich follows the approach in latexrestricted:
+# https://github.com/gpoore/latexrestricted/blob/main/latexrestricted/_latex_config.py
+env_SELFAUTOLOC = os.getenv('SELFAUTOLOC')
+env_TEXSYSTEM = os.getenv('TEXSYSTEM')
+def init_prohibited_path_roots():
+ if not env_TEXMFOUTPUT and env_SELFAUTOLOC and (not env_TEXSYSTEM or env_TEXSYSTEM.lower() != 'miktex'):
+ if sys.platform == 'win32':
+ # Under Windows, shell escape executables will often be launched
+ # with the TeX Live `runscript.exe` executable wrapper. This
+ # overwrites `SELFAUTOLOC` from TeX with the location of the
+ # wrapper, so `SELFAUTOLOC` may not be correct.
+ which_tlmgr = shutil.which('tlmgr') # No `.exe`; likely `.bat`
+ if not which_tlmgr:
+ sys.exit('Failed to find TeX Live "tlmgr" executable on PATH')
+ which_tlmgr_resolved = Path(which_tlmgr).resolve()
+ texlive_bin_path = which_tlmgr_resolved.parent
+ # Make sure executable is *.exe, not *.bat or *.cmd:
+ # https://docs.python.org/3/library/subprocess.html#security-considerations
+ which_kpsewhich = shutil.which('kpsewhich.exe', path=str(texlive_bin_path))
+ if not which_kpsewhich:
+ sys.exit(
+ 'Failed to find a TeX Live "tlmgr" executable with accompanying "kpsewhich" executable on PATH'
+ )
+ which_kpsewhich_path = Path(which_kpsewhich)
+ which_kpsewhich_resolved = which_kpsewhich_path.resolve()
+ if not texlive_bin_path == which_kpsewhich_resolved.parent:
+ sys.exit(' '.join([
+ '"tlmgr" executable from PATH resolved to "{}" '.format(which_tlmgr_resolved.as_posix()),
+ 'while "kpsewhich" resolved to "{}";'.format(which_kpsewhich_resolved.as_posix()),
+ '"tlmgr" and "kpsewhich" should be in the same location',
+ ]))
+ if not which_kpsewhich_resolved.name.lower().endswith('.exe'):
+ sys.exit(' '.join([
+ 'Executable "kpsewhich" resolved to "{}",'.format(which_kpsewhich_resolved.as_posix()),
+ 'but *.exe is required',
+ ]))
+ else:
+ which_kpsewhich = shutil.which('kpsewhich', path=env_SELFAUTOLOC)
+ if not which_kpsewhich:
+ sys.exit(' '.join([
+ 'Environment variable SELFAUTOLOC has value "{}",'.format(env_SELFAUTOLOC),
+ 'but a "kpsewhich" executable was not found at that location',
+ ]))
+ which_kpsewhich_path = Path(which_kpsewhich)
+ which_kpsewhich_resolved = which_kpsewhich_path.resolve()
+ if not is_permitted_executable_path(which_kpsewhich_path, which_kpsewhich_resolved):
+ # As in the latexrestricted case, this doesn't initially check for
+ # the TeX Live scenario where `TEXMFOUTPUT` is set in a
+ # `texmf.cnf` config file to a location that includes the
+ # `kpsewhich` executable. There isn't a good way to get the value
+ # of `TEXMFOUTPUT` without running `kpsewhich` in that case.
+ sys.exit(
+ 'Executable "kpsewhich" is located under the current directory, TEXMFOUTPUT, or '
+ 'TEXMF_OUTPUT_DIRECTORY, or one of these locations is under the same directory as the executable'
+ )
+ kpsewhich_cmd = [which_kpsewhich_resolved.as_posix(), '--var-value', 'TEXMFOUTPUT']
+ try:
+ kpsewhich_proc = subprocess.run(kpsewhich_cmd, shell=False, capture_output=True)
+ except PermissionError:
+ sys.exit('Insufficient permission to run "{}"'.format(which_kpsewhich_resolved.as_posix()))
+ kpsewhich_TEXMFOUTPUT = kpsewhich_proc.stdout.strip().decode(sys.stdout.encoding) or None
+ if kpsewhich_TEXMFOUTPUT:
+ kpsewhich_TEXMFOUTPUT_path = Path(kpsewhich_TEXMFOUTPUT)
+ prohibited_path_roots.add(kpsewhich_TEXMFOUTPUT_path)
+ prohibited_path_roots.add(kpsewhich_TEXMFOUTPUT_path.resolve())
+ if not is_permitted_executable_path(which_kpsewhich_path, which_kpsewhich_resolved):
+ # It is now possible to check for the TeX Live scenario where
+ # `TEXMFOUTPUT` is set in a `texmf.cnf` config file to a location
+ # that includes the `kpsewhich` executable. Giving an error
+ # message after already running `kpsewhich` isn't ideal, but there
+ # isn't a good alternative. As in the latexrestricted case, the
+ # impact on overall security is negligible because an unsafe value
+ # of `TEXMFOUTPUT` means that all TeX-related executables are
+ # potentially compromised.
+ sys.exit(
+ 'Executable "kpsewhich" is located under the current directory, TEXMFOUTPUT, or '
+ 'TEXMF_OUTPUT_DIRECTORY, or one of these locations is under the same directory as the executable'
+ )
+
+
+
+
+# If Python version is < 3.8, try to locate a more recent version and then
+# relaunch this script with that Python version in a subprocess.
+if sys.version_info[:2] < (3, 8):
+ for minor_version in range(13, 7, -1):
+ if sys.platform == 'win32':
+ # Batch files must be prohibited:
+ # https://docs.python.org/3/library/subprocess.html#security-considerations
+ which_python = shutil.which('python3.{}.exe'.format(minor_version))
+ else:
+ which_python = shutil.which('python3.{}'.format(minor_version))
+ if which_python:
+ which_python_path = Path(which_python)
+ which_python_resolved = which_python_path.resolve()
+ if sys.platform == 'win32' and not which_python_resolved.name.lower().endswith('.exe'):
+ continue
+ if is_permitted_executable_path(which_python_path, which_python_resolved):
+ python_cmd = [which_python_resolved.as_posix(), __file__] + sys.argv[1:]
+ python_proc = subprocess.run(python_cmd, shell=False, capture_output=True)
+ sys.stderr.buffer.write(python_proc.stderr)
+ sys.stdout.buffer.write(python_proc.stdout)
+ sys.exit(python_proc.returncode)
+ sys.exit('latexminted requires Python >= 3.8, but a compatible Python executable was not found on PATH')
+
+
+
+
+# Check for required wheel dependencies and add them to Python's `sys.path`.
+script_resolved = Path(__file__).resolve()
+required_wheel_packages = (
+ 'latexminted',
+ 'latexrestricted',
+ 'latex2pydata',
+ 'pygments',
+)
+wheel_paths = [p for p in script_resolved.parent.glob('*.whl') if p.name.startswith(required_wheel_packages)]
+if not wheel_paths:
+ sys.exit('latexminted failed to find bundled wheels *.whl')
+for pkg in required_wheel_packages:
+ if not any(whl.name.startswith(pkg) for whl in wheel_paths):
+ sys.exit('latexminted failed to find all required bundled wheels *.whl')
+for wheel_path in wheel_paths:
+ sys.path.insert(0, wheel_path.as_posix())
+
+
+
+
+# Under Windows, check PATH for a `latexminted` executable outside a TeX
+# installation. If a `latexminted` executable is found in a suitable location
+# with sufficient precedence, run it in a subprocess and exit.
+#
+# The environment variable `LATEXMINTED_SUBPROCESS` is used to prevent an
+# endless recursion of subprocesses in the event that a `latexminted`
+# executable *inside* a TeX installation somehow manages to pass the tests for
+# an executable *outside* a TeX installation.
+if sys.platform == 'win32' and not os.getenv('LATEXMINTED_SUBPROCESS'):
+ os.environ['LATEXMINTED_SUBPROCESS'] = '1'
+ fallback_path_search = True
+ if env_SELFAUTOLOC:
+ env_SELFAUTOLOC_resolved = Path(env_SELFAUTOLOC).resolve()
+ else:
+ env_SELFAUTOLOC_resolved = None
+ which_latexminted = shutil.which('latexminted.exe')
+ if which_latexminted:
+ which_latexminted_path = Path(which_latexminted)
+ which_latexminted_resolved = which_latexminted_path.resolve()
+ if not which_latexminted_resolved.name.lower().endswith('.exe'):
+ sys.exit(' '.join([
+ 'Executable "latexminted" resolved to "{}",'.format(which_latexminted_resolved.as_posix()),
+ 'but *.exe is required',
+ ]))
+ if which_latexminted_resolved == script_resolved:
+ pass
+ elif (which_latexminted_resolved.parent / 'tex.exe').exists():
+ pass
+ elif any(x in which_latexminted_resolved.as_posix().lower() for x in ('texlive', 'miktex', 'tinytex')):
+ pass
+ elif env_SELFAUTOLOC_resolved and which_latexminted_resolved.is_relative_to(env_SELFAUTOLOC_resolved):
+ pass
+ elif is_permitted_executable_path(which_latexminted_path, which_latexminted_resolved):
+ latexminted_cmd = [which_latexminted_resolved.as_posix()] + sys.argv[1:]
+ latexminted_proc = subprocess.run(latexminted_cmd, shell=False, capture_output=True)
+ sys.stderr.buffer.write(latexminted_proc.stderr)
+ sys.stdout.buffer.write(latexminted_proc.stdout)
+ sys.exit(latexminted_proc.returncode)
+ else:
+ # If there was a `latexminted` executable on PATH outside a TeX
+ # installation, but it wasn't permitted due to its location, don't
+ # perform fallback search.
+ fallback_path_search = False
+ if fallback_path_search:
+ # Windows appends user PATH to system PATH, so the system PATH may
+ # prevent finding a user installation of `latexminted`. Search
+ # through PATH elements under user home directory to check for
+ # `latexminted.exe` outside a TeX installation.
+ home_path = Path.home()
+ env_PATH = os.environ.get('PATH', '')
+ for path_elem in env_PATH.split(os.pathsep):
+ if not path_elem or not Path(path_elem).is_relative_to(home_path):
+ continue
+ which_latexminted = shutil.which('latexminted.exe', path=path_elem)
+ if not which_latexminted:
+ continue
+ which_latexminted_path = Path(which_latexminted)
+ which_latexminted_resolved = which_latexminted_path.resolve()
+ if which_latexminted_resolved == script_resolved:
+ break
+ elif (which_latexminted_resolved.parent / 'tex.exe').exists():
+ break
+ elif any(x in which_latexminted_resolved.as_posix().lower() for x in ('texlive', 'miktex', 'tinytex')):
+ break
+ elif env_SELFAUTOLOC_resolved and which_latexminted_resolved.is_relative_to(env_SELFAUTOLOC_resolved):
+ break
+ elif is_permitted_executable_path(which_latexminted_path, which_latexminted_resolved):
+ latexminted_cmd = [which_latexminted_resolved.as_posix()] + sys.argv[1:]
+ try:
+ latexminted_proc = subprocess.run(latexminted_cmd, shell=False, capture_output=True)
+ except PermissionError:
+ break
+ sys.stderr.buffer.write(latexminted_proc.stderr)
+ sys.stdout.buffer.write(latexminted_proc.stdout)
+ sys.exit(latexminted_proc.returncode)
+ else:
+ break
+
+
+
+
+from latexminted.cmdline import main
+main()
diff --git a/macros/latex/contrib/minted/latexrestricted-0.6.0-py3-none-any.whl b/macros/latex/contrib/minted/latexrestricted-0.6.0-py3-none-any.whl
new file mode 100644
index 0000000000..ed50a78eb7
--- /dev/null
+++ b/macros/latex/contrib/minted/latexrestricted-0.6.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/minted.dtx b/macros/latex/contrib/minted/minted.dtx
index d1a0d3c2d9..32091634ed 100644
--- a/macros/latex/contrib/minted/minted.dtx
+++ b/macros/latex/contrib/minted/minted.dtx
@@ -1,18 +1,15 @@
% \iffalse meta-comment
%
-% Copyright (C) 2013-2023 by Geoffrey M. Poore <gpoore@gmail.com>
+% Copyright (C) 2013-2024 by Geoffrey M. Poore <gpoore@gmail.com>
% Copyright (C) 2010-2011 by Konrad Rudolph <konrad_rudolph@madrat.net>
-% ---------------------------------------------------------------------------
+% --------------------------------------------------------------------------
% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% Additionally, the project may be distributed under the terms of the 3-Clause
-% ("New") BSD license: http://opensource.org/licenses/BSD-3-Clause.
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
@@ -21,7 +18,6 @@
% This work consists of the files minted.dtx and minted.ins
% and the derived file minted.sty.
%
-%
% \fi
%
% \iffalse
@@ -31,30 +27,31 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{minted}
%<*package>
- [2023/12/18 v2.9 Yet another Pygments shim for LaTeX]
+ [2024/10/29 v3.2.0 Yet another Pygments shim for LaTeX]
%</package>
%<*driver>
\documentclass{ltxdoc}
-\EnableCrossrefs
-%\CodelineIndex
-%\DisableCrossrefs
-%\RecordChanges
-%\OnlyDescription
+\DisableCrossrefs
+^^A\EnableCrossrefs
+^^A\CodelineIndex
+^^A\RecordChanges
+^^A\OnlyDescription
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
+\usepackage{fourier}
\usepackage{dingbat}
\usepackage{microtype}
\usepackage[svgnames]{xcolor}
-\usepackage{textcomp}
-\usepackage[cache, langlinenos]{minted}
+\usepackage{graphicx}
+\usepackage[lexerlinenos, highlightmode=immediate]{minted}
+\setminted{literatecomment=\%, autogobble}
\usepackage{calc}
-\usepackage{environ}
-\usepackage{graphicx}
\usepackage{multicol}
-\usepackage{hyperref}
+\usepackage[hyperindex]{hyperref}
+\usepackage{cleveref}
\newcommand{\env}[1]{\texttt{#1}}
@@ -95,28 +92,11 @@
\def\FV@SV@pipe@active@verbatim{%
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{#1}}%
- %\let\FV@BeginVBox\relax
- %\let\FV@EndVBox\relax
- %\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\BUseVerbatim{pipe@active@verbatim}%
\endgroup}
\AtBeginDocument{\let|\pipe@active@verbatim}
\endgroup
-\newcommand{\changestext}{}
-\NewEnviron{changelog}[2]{%
- \g@addto@macro\changestext{\item[#1] (#2) \begin{itemize}}%
- \expandafter\g@addto@macro\expandafter\changestext\expandafter{\BODY}%
- \g@addto@macro\changestext{\end{itemize}}%
-}
-\newcommand{\PrintChangelog}{%
- \section{Changelog}%
- \label{sec:changelog}
- \begin{description}%
- \changestext
- \end{description}%
-}
-
\def\MacroFont{%
\fontencoding\encodingdefault%
\fontfamily\ttdefault%
@@ -125,13 +105,55 @@
\small}
\definecolor{minted@mint}{HTML}{0B610B}
-\definecolor{minted@samplebg}{HTML}{F0F0E0}
\colorlet{minted@linkcolor}{minted@mint}
-%
+
\def\PrintDescribeMacro#1{\strut \MacroFont\textcolor{minted@linkcolor}{\string #1\ }}
\let\PrintDescribeEnv\PrintDescribeMacro
\let\PrintMacroName\PrintDescribeMacro
\let\PrintEnvName\PrintDescribeEnv
+
+\renewenvironment{macro}{\macro@custom@arg}{}
+\def\macro@custom@arg{%
+ \begingroup\makeatletter\macro@custom@arg@i}
+\def\macro@custom@arg@i#1{%
+ \makeatother
+ \par\noindent
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{minted@mint}\hspace*{-0.5in}%
+ \macro@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\macro@custom@arg@spacegobble#1{#1}
+\def\macro@custom@arg@split#1,#2\FV@Sentinel{%
+ \expandafter\string\macro@custom@arg@spacegobble#1%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\macro@custom@arg@split#2\FV@Sentinel}}
+
+\renewenvironment{environment}{\env@custom@arg}{}
+\def\env@custom@arg{%
+ \begingroup\makeatletter\env@custom@arg@i}
+\def\env@custom@arg@i#1{%
+ \makeatother
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{minted@mint}\hspace*{-0.5in}%
+ \env@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\env@custom@arg@spacegobble#1{#1}
+\def\env@custom@arg@split#1,#2\FV@Sentinel{%
+ \env@custom@arg@spacegobble#1{\textrm{ \textit{(env.)}}}%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\env@custom@arg@split#2\FV@Sentinel}}
+
+
\def\theCodelineNo{\textcolor{minted@linkcolor}{\sffamily\footnotesize\oldstylenums{\arabic{CodelineNo}}}}
%
\hypersetup{
@@ -141,35 +163,56 @@
colorlinks=true,
allcolors=minted@linkcolor,
}
-%
-% Shamelessly stolen from http://blog.karssen.org/2009/11/15/a-latex-example-environment/
+
+\newenvironment{mintedminted}%
+ {\VerbatimEnvironment
+ \begin{minted}}%
+ {\end{minted}}
+
+
\newenvironment{example}
{\VerbatimEnvironment
- \begin{VerbatimOut}[gobble=3]{example.out}}
+ \begin{VerbatimOut}[gobble=1]{example.out}}
{\end{VerbatimOut}%
- \vspace{1ex}%
\setlength{\parindent}{0pt}%
- \fbox{\begin{minipage}{0.5\linewidth}%
+ \vspace{1em}%
+ \fbox{%
+ \vspace{1ex}%
+ \begin{minipage}{0.5\linewidth-2em-\fboxsep}%
\inputminted[resetmargins]{latex}{example.out}%
- \end{minipage}%
- \hspace{0.05\linewidth}%
- \begin{minipage}{0.45\linewidth-2\fboxsep}%
+ \end{minipage}%
+ \hspace{2em}\vrule\hspace{2em}%
+ \begin{minipage}{0.5\linewidth-2em-\fboxsep}%
\input{example.out}%
- \end{minipage}%
- \vspace{1ex}}}
+ \end{minipage}%
+ \vspace{1ex}}%
+ \vspace{1em}}
+
+
+\begingroup
+\catcode`\^^M=\active%
+\gdef\longexample@i#1{%
+ \def\longexample@arg{#1}%
+ \begin{VerbatimOut}[gobble=1]{example.out}^^M}%
+\endgroup
\newenvironment{longexample}
- {\VerbatimEnvironment
- \begin{VerbatimOut}[gobble=3]{example.out}}
- {\end{VerbatimOut}%
- \vspace{1ex}%
- \setlength{\parindent}{0pt}%
- \fbox{\begin{minipage}{\linewidth-2\fboxsep}%
- \inputminted[resetmargins]{latex}{example.out}%
- ~\hrulefill~
- \input{example.out}%
- \end{minipage}%
- \vspace{1ex}}}
+ {\VerbatimEnvironment
+ \FVExtraReadOArgBeforeVEnv{\longexample@i}}
+ {\end{VerbatimOut}%
+ \vspace{1em}%
+ \setlength{\parindent}{0pt}%
+ \fbox{
+ \vspace{1ex}%
+ \begin{minipage}{\linewidth-2\fboxsep}%
+ \inputminted[resetmargins]{latex}{example.out}%
+ ~\hrulefill~
+ \expandafter\fvset\expandafter{\longexample@arg}%
+ \input{example.out}%
+ \end{minipage}%
+ \vspace{1ex}}%
+ \vspace{1em}}
+
\def\minted@printopt#1(#2) (#3){%
\vspace{0.1in}%
@@ -178,322 +221,80 @@
\kern-\parindent\textsf{(#2)}\hfill(default: \texttt{#3})\\}
\newenvironment{optionlist}%
- {%
- ~\par\vspace{-14pt}%
+ {~\par\vspace{-14pt}%
\def\pipechar{|}
\let\|\pipechar
\newcommand*\mintednext{}%
+ \let\item@orig\item
\renewcommand*\item[1][]{%
- \mintednext%
- \renewcommand*\mintednext{\par}%
- \minted@printopt##1%
- \ignorespaces}}
- {%
- \par}
+ \ifdefstring{\@currenvir}{optionlist}%
+ {\mintednext%
+ \renewcommand*\mintednext{\par}%
+ \minted@printopt##1%
+ \ignorespaces}%
+ {\ifstrempty{##1}%
+ {\vspace{-4pt}\item@orig}
+ {\vspace{-4pt}\item@orig[##1]}}}}
+ {\par}
\edef\hashchar{\string#}
+
+
+\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{3em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.5em}{3.8em}}
+
+
\makeatother
-\newcommand{\hide}[1]{}
-\setlength{\parindent}{0pt}
-\addtolength{\parskip}{0.5\baselineskip}
-\def\warn{\textcolor{red}{\large\textbf{\textsf{WARNING}}}}
+
+\newenvironment{mintedexample}%
+ {\VerbatimEnvironment
+ \begin{minted}}%
+ {\end{minted}}
\begin{document}
\DocInput{minted.dtx}
-% \PrintIndex
+% ^^A\PrintIndex
\end{document}
%</driver>
% \fi
%
-% \CheckSum{2572}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-%
-%
-% \begin{changelog}{v2.9}{2023/12/18}
-% \item This is expected to be the last release of \pkg{minted} v2.x. If so, it will then become the new package \Verb{minted2} for backward compatibility.
-% \item Added new option \Verb{ignorelexererrors}. When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors (\#374).
-% \item There is now a warning if \pkg{fvextra} version is less than 1.5.
-% \end{changelog}
-%
-% \begin{changelog}{v2.8}{2023/09/12}
-% \item Under non-Windows operating systems, detect executables with \Verb{command -v} rather than \Verb{which} to provide better cross-platform support (\#345).
-% \item Added new package option \Verb{inputlanglinenos}. This extends the existing \Verb{langlinenos} to cover \Verb{\inputminted} as well (\#361).
-% \item Improved and updated Pygments documentation (\#339).
-% \item Improved \Verb{\mintinline} documentation to address packages that redefine \Verb{\section} (\#368).
-% \item Added support for \texpkg{fvextra} options \texttt{breakafterinrun} and \texttt{breakbeforeinrun} (\#358). In \texpkg{fvextra} version 1.5, \texttt{breakaftergroup} and \texttt{breakbeforegroup} were renamed to \texttt{breakafterinrun} and \texttt{breakbeforeinrun} to avoid naming ambiguity with new options. The old options \texttt{breakaftergroup} and \texttt{breakbeforegroup} are no longer supported.
-% \item Added \texttt{DEPENDS.txt} (\#331).
-% \item Removed unnecessary dependency on \texpkg{calc} package (\#313).
-% \item Added documentation in FAQ about copy and paste limitations (\#302).
-% \item Added note on \texttt{text} lexer to documentation (\#274).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.7}{2022/12/12}
-% \item Reimplemented \texttt{\string\mintinline} to use \texttt{fvextra}'s argument reading and processing macros, and to use \texttt{fvextra}'s \texttt{\string\Verb} internally. \texttt{\string\mintinline} now works with all line breaking options supported by \texttt{fvextra}'s \texttt{\string\Verb}, including \texttt{breakanywhere} (\#329, \#340). It now gives better results when used inside other commands, since it uses \texttt{fvextra}'s retokenization macros. It is now compatible with \texttt{hyperref} for PDF strings such as bookmarks.
-% \item Reimplemented \texttt{\string\newmintinline} based on new \texttt{\string\mintinline}.
-% \item Reimplemented \texttt{\string\mint} to use \texttt{fvextra}'s argument reading and processing macros. It now gives better results when used inside other commands, since it uses \texttt{fvextra}'s retokenization macros. Fixed a bug that caused a continued paragraph after \texttt{\string\mint} to be indented (\#218).
-% \item Reimplemented \texttt{\string\newmint} based on new \texttt{\string\mint}. Commands created with \texttt{\string\newmint} can now use curly braces as delimiters, just like \texttt{\string\mint} (\#254).
-% \item Settings passed to \Verb{pygmentize} as command-line options are now quoted. This prevents \Verb{escapeinside} characters from being interpreted as special shell characters (\#179, \#262).
-% \item Fixed bug with \texttt{autogobble} that produced incorrect dedent when using \texttt{lastline} with the lines beyond \texttt{lastline} having less indentation than the selected range (\#326).
-% \item Fixed unintended line breaks after hyphens under LuaTeX (\#263).
-% \item Added warning to documentation of \Verb{\inputminted} regarding filenames and shell command execution (\#338).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.6}{2021/12/24}
-% \item \texttt{autogobble} automatically uses \texttt{python} or \texttt{python3} executables, depending on availability, instead of requiring \texttt{python}. A custom executable can be specified by redefining \texttt{\string\MintedPython} (\#277, \#287).
-% \item Fixed \texttt{autogobble} compatibility with \texttt{fancyvrb} 4.0+ (\#315, \#316).
-% \item Pygments style names may now contain arbitrary non-whitespace characters. Previously, style names containing digits and some punctuation characters were incompatible (\#210, \#294, \#299, \#317). Pygments macros are now only defined just before use locally within \texttt{minted} commands and environments, rather than globally. Pygments macros now always use a \texttt{\string\PYG} prefix regardless of style, rather than a prefix of the form \texttt{\string\PYG<style>} (for example, what was previously \texttt{\string\PYGdefault} is now simply \texttt{\string\PYG}).
-% \item Removed Python-based MD5 hashing for XeTeX, which was necessary before XeTeX added \texttt{\string\mdfivesum} in 2017.
-% \item The default for \texttt{stripnl} is now \texttt{false}, so that original code is preserved exactly by default (\#198).
-% \item Added support for \texttt{fontencoding} option from \texttt{fvextra} (\#208).
-% \item Added note to FAQ about getting \texttt{texi2pdf} to work with \texttt{minted} given \texttt{texi2pdf}'s assumptions about temp files (\#186).
-% \item Reimplemented \texttt{bgcolor} option to be compatible with \texttt{color} package.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.5}{2017/07/19}
-% \item The default placement for the \texttt{listing} float is now \texttt{tbp} instead of \texttt{h}, to parallel \texttt{figure} and \texttt{table} and also avoid warnings caused by \texttt{h} (\#165). The documentation now contains information about changing default placement. The \texttt{float} package is no longer loaded when the \texttt{newfloat} package option is used.
-% \item Added support for \texttt{*nchars} options from \texttt{fvextra} v1.3 that allow setting \texttt{breaklines}-related indentation in terms of a number of characters, rather than as a fixed dimension.
-% \item Fixed incompatibility with \texttt{babel magyar} (\#158).
-% \item Added support for \texttt{beamer} overlays with \texttt{beameroverlays} option (\#155).
-% \item Comments in the Pygments \LaTeX\ style files no longer appear as literal text when \texttt{minted} is used in \texttt{.dtx} files (\#161).
-% \item \texttt{autogobble} now works with package option \texttt{kpsewhich} (\#151). Under Windows, the \texttt{kpsewhich} option no longer requires PowerShell.
-% \item Fixed a bug that prevented \texttt{finalizecache} from working with \texttt{outputdir} (\#149).
-% \item Fixed a bug with \texttt{firstline} and \texttt{lastline} that prevented them from working with the \texttt{minted} environment (\#145).
-% \item Added note on \texttt{breqn} conflicts to FAQ (\#163).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.4.1}{2016/10/31}
-% \item Single quotation marks in \texttt{\string\jobname} are now replaced with underscores in \texttt{\string\minted@jobname} to prevent quoting errors (\#137).
-% \item The \texttt{autogobble} option now takes \texttt{firstline} and \texttt{lastline} into account (\#130).
-% \item Fixed \texttt{numberblanklines}, which had been lost in the transition to v2.0+ (\#135).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.4}{2016/07/20}
-% \item Line breaking and all associated options are now completely delegated to \texttt{fvextra}.
-% \item Fixed a bug from v2.2 that could cause the first command or environment to vanish when \texttt{cache=false} (related to work on \texttt{\string\MintedPygmentize}).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.3}{2016/07/14}
-% \item The \texttt{fvextra} package is now required. \texttt{fvextra} extends and patches \texttt{fancyvrb}, and includes improved versions of \texttt{fancyvrb} extensions that were formerly in \texttt{minted}.
-% \item As part of \texttt{fvextra}, the \texttt{upquote} package is always loaded. \texttt{fvextra} brings the new option \texttt{curlyquotes}, which allows curly single quotation marks instead of the literal backtick and typewriter single quotation mark produced by \texttt{upquote}. This allows the default \texttt{upquote} behavior to be disabled when desired.
-% \item Thanks to \texttt{fvextra}, the options \texttt{breakbefore}, \texttt{breakafter}, and \texttt{breakanywhere} are now compatible with non-ASCII characters under pdfTeX (\#123).
-% \item Thanks to \texttt{fvextra}, \texttt{obeytabs} no longer causes lines in multi-line comments or strings to vanish (\#88), and is now compatible with \texttt{breaklines} (\#99). \texttt{obeytabs} will now always give correct results with tabs used for indentation. However, tab stops are not guaranteed to be correct for tabs in the midst of text.
-% \item \texttt{fvextra} brings the new options \texttt{space}, \texttt{spacecolor}, \texttt{tab}, and \texttt{tabcolor} that allow these characters and their colors to be redefined (\#98). The tab may now be redefined to a flexible-width character such as \texttt{\string\rightarrowfill}. The visible tab will now always be black by default, instead of changing colors depending on whether it is part of indentation for a multiline string or comment.
-% \item \texttt{fvextra} brings the new options \texttt{highlightcolor} and \texttt{highlightlines}, which allow single lines or ranges of lines to be highlighted based on line number (\#124).
-% \item \texttt{fvextra} brings the new options \texttt{numberfirstline}, \texttt{stepnumberfromfirst}, and \texttt{stepnumberoffsetvalues} that provide better control over line numbering when \texttt{stepnumber} is not 1.
-% \item Fixed a bug from v2.2.2 that prevented \texttt{upquote} from working.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2.2}{2016/06/21}
-% \item Fixed a bug introduced in v2.2 that prevented setting the Pygments style in the preamble. Style definitions are now more compatible with using \texttt{\string\MintedPygmentize} to call a custom \texttt{pygmentize}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2.1}{2016/06/15}
-% \item The \texttt{shellesc} package is loaded before \texttt{ifplatform} and other packages that might invoke \texttt{\string\write18} (\#112).
-% \item When caching is enabled, XeTeX uses the new \texttt{\string\mdfivesum} macro from TeX Live 2016 to hash cache content, rather than using \texttt{\string\ShellEscape} with Python to perform hashing.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2}{2016/06/08}
-% \item All uses of \texttt{\string\ShellEscape} (\texttt{\string\write18}) no longer wrap file names and paths with double quotes. This allows a cache directory to be specified relative to a user's home directory, for example, \texttt{\string~/minted\_cache}. \texttt{cachedir} and \texttt{outputdir} paths containing spaces will now require explicit quoting of the parts of the paths that contain spaces, since \texttt{minted} no longer supplies quoting. See the updated documentation for examples (\#89).
-% \item Added \texttt{breakbefore}, \texttt{breakbeforegroup}, \texttt{breakbeforesymbolpre}, and \texttt{breakbeforesymbolpost}. These parallel \texttt{breakafter*}. It is possible to use \texttt{breakbefore} and \texttt{breakafter} for the same character, so long as \texttt{breakbeforegroup} and \texttt{breakaftergroup} have the same setting (\#117).
-% \item Added package options \texttt{finalizecache} and \texttt{frozencache}. These allow the cache to be prepared for (\texttt{finalizecache}) and then used (\texttt{frozencache}) in an environment in which \texttt{-shell-escape}, Python, and/or Pygments are not available. Note that this only works if \texttt{minted} content does not need to be modified, and if no settings that depend on Pygments or Python need to be changed (\#113).
-% \item Style names containing hyphens and underscores (\texttt{paraiso-light}, \texttt{paraiso-dark}, \texttt{algol\_nu}) now work (\#111).
-% \item The \texttt{shellesc} package is now loaded, when available, for compatibility with LuaTeX 0.87+ (TeX Live 2016+, etc.). \texttt{\string\ShellEscape} is now used everywhere instead of \texttt{\string\immediate\string\write18}. If \texttt{shellesc} is not available, then a \texttt{\string\ShellEscape} macro is created. When \texttt{shellesc} is loaded, there is a check for versions before v0.01c to patch a bug in v0.01b (present in TeX Live 2015) (\#112).
-% \item The \texttt{bgcolor} option now uses the \texttt{snugshade*} environment from the \texttt{framed} package, so \texttt{bgcolor} is now compatible with page breaks. When \texttt{bgcolor} is in use, immediately preceding text will no longer push the \texttt{minted} environment into the margin, and there is now adequate spacing from surrounding text (\#121).
-% \item Added missing support for \texttt{fancyvrb}'s \texttt{labelposition} (\#102).
-% \item Improved fix for TikZ externalization, thanks to Patrick Vogt (\#73).
-% \item Fixed \texttt{breakautoindent}; it was disabled in version 2.1 due to a bug in \texttt{breakanywhere}.
-% \item Properly fixed handling of \texttt{\string\MintedPygmentize} (\#62).
-% \item Added note on incompatibility of \texttt{breaklines} and \texttt{obeytabs} options. Trying to use these together will now result in a package error (\#99). Added note on issues with \texttt{obeytabs} and multiline comments (\#88). Due to the various \texttt{obeytabs} issues, the docs now discourage using \texttt{obeytabs}.
-% \item Added note to FAQ on \texttt{fancybox} and \texttt{fancyvrb} conflict (\#87).
-% \item Added note to docs on the need for \texttt{\string\VerbatimEnvironment} in environment definitions based on \texttt{minted} environments.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.1}{2015/09/09}
-% \item Changing the highlighting style now no longer involves re-highlighing code. Style may be changed with almost no overhead.
-% \item Improved control of automatic line breaks. New option \texttt{breakanywhere} allows line breaks anywhere when \texttt{breaklines=true}. The pre-break and post-break symbols for these types of breaks may be set with \texttt{breakanywheresymbolpre} and \texttt{breakanywheresymbolpost} (\#79). New option \texttt{breakafter} allows specifying characters after which line breaks are allowed. Breaks between adjacent, identical characters may be controlled with \texttt{breakaftergroup}. The pre-break and post-break symbols for these types of breaks may be set with \texttt{breakaftersymbolpre} and \texttt{breakaftersymbolpost}.
-% \item \texttt{breakbytoken} now only breaks lines between tokens that are separated by spaces, matching the documentation. The new option \texttt{breakbytokenanywhere} allows for breaking between tokens that are immediately adjacent. Fixed a bug in \texttt{\string\mintinline} that produced a following linebreak when \texttt{\string\mintinline} was the first thing in a paragraph and \texttt{breakbytoken} was true (\#77).
-% \item Fixed a bug in draft mode option handling for \texttt{\string\inputminted} (\#75).
-% \item Fixed a bug with \texttt{\string\MintedPygmentize} when a custom \texttt{pygmentize} was specified and there was no \texttt{pygmentize} on the default path (\#62).
-% \item Added note to docs on caching large numbers of code blocks under OS~X (\#78).
-% \item Added discussion of current limitations of \texttt{texcomments} (\#66) and \texttt{escapeinside} (\#70).
-% \item PGF/Ti\textit{k}Z externalization is automatically detected and supported (\#73).
-% \item The package is now compatible with \LaTeX\ files whose names contain spaces (\#85).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.0}{2015/01/31}
-% \item Added the compatibility package \texttt{minted1}, which provides the \texpkg{minted} 1.7 code. This may be loaded when 1.7 compatibility is required. This package works with other packages that \texttt{\string\RequirePackage\{minted\}}, so long as it is loaded first.
-% \item Moved all old \texttt{\string\changes} into \texttt{changelog}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{Development releases for 2.0}{2014--January 2015}
-% \item Caching is now on by default.
-% \item Fixed a bug that prevented compiling under Windows when file names contained commas.
-% \item Added \texttt{breaksymbolleft}, \texttt{breaksymbolsepleft}, \texttt{breaksymbolindentleft}, \texttt{breaksymbolright}, \texttt{breaksymbolsepright}, and \texttt{breaksymbolindentright} options. \texttt{breaksymbol}, \texttt{breaksymbolsep}, and \texttt{breaksymbolindent} are now aliases for the correspondent \texttt{*left} options.
-% \item Added \texttt{kpsewhich} package option. This uses \texttt{kpsewhich} to locate the files that are to be highlighted. This provides compatibility with build tools like \texttt{texi2pdf} that function by modifying \texttt{TEXINPUTS} (\#25).
-% \item Fixed a bug that prevented \texttt{\string\inputminted} from working with \texttt{outputdir}.
-% \item Added informative error messages when Pygments output is missing.
-% \item Added \texttt{final} package option (opposite of \texttt{draft}).
-% \item Renamed the default cache directory to \texttt{\_minted-<jobname>} (replaced leading period with underscore). The leading period caused the cache directory to be hidden on many systems, which was a potential source of confusion.
-% \item \texttt{breaklines} and \texttt{breakbytoken} now work with \texttt{\string\mintinline} (\#31).
-% \item \texttt{bgcolor} may now be set through \texttt{\string\setminted} and \texttt{\string\setmintedinline}.
-% \item When math is enabled via \texttt{texcomments}, \texttt{mathescape}, or \texttt{escapeinside}, space characters now behave as in normal math by vanishing, instead of appearing as literal spaces. Math need no longer be specially formatted to avoid undesired spaces.
-% \item In default value of \texttt{\string\listoflistingscaption}, capitalized ``Listings'' so that capitalization is consistent with default values for other lists (figures, tables, algorithms, etc.).
-% \item Added \texttt{newfloat} package option that creates the \texttt{listing} environment using \texttt{newfloat} rather than \texttt{float}, thus providing better compatibility with the \texttt{caption} package (\#12).
-% \item Added support for Pygments option \texttt{stripall}.
-% \item Added \texttt{breakbytoken} option that prevents \texttt{breaklines} from breaking lines within Pygments tokens.
-% \item \texttt{\string\mintinline} uses a \texttt{\string\colorbox} when \texttt{bgcolor} is set, to give more reasonable behavior (\#57).
-% \item For PHP, \texttt{\string\mintinline} automatically begins with \texttt{startinline=true} (\#23).
-% \item Fixed a bug that threw off line numbering in \texttt{minted} when \texttt{langlinenos=false} and \texttt{firstnumber=last}. Fixed a bug in \texttt{\string\mintinline} that threw off subsequent line numbering when \texttt{langlinenos=false} and \texttt{firstnumber=last}.
-% \item Improved behavior of \texttt{\string\mint} and \texttt{\string\mintinline} in \texttt{draft} mode.
-% \item The \texttt{\string\mint} command now has the additional capability to take code delimited by paired curly braces \texttt{\{\}}.
-% \item It is now possible to set options only for \texttt{\string\mintinline} using the new \texttt{\string\setmintedinline} command. Inline options override options specified via \texttt{\string\setminted}.
-% \item Completely rewrote option handling. \texpkg{fancyvrb} options are now handled on the \LaTeX\ side directly, rather than being passed to Pygments and then returned. This makes caching more efficient, since code is no longer rehighlighted just because \texpkg{fancyvrb} options changed.
-% \item Fixed buffer size error caused by using \texttt{cache} with a very large number of files (\#61).
-% \item Fixed \texttt{autogobble} bug that caused failure under some operating systems.
-% \item Added support for \texttt{escapeinside} (requires Pygments 2.0+; \#38).
-% \item Fixed issues with XeTeX and caching (\#40).
-% \item The \texttt{upquote} package now works correctly with single quotes when using Pygments 1.6+ (\#34).
-% \item Fixed caching incompatibility with Linux and OS X under xelatex (\#18 and \#42).
-% \item Fixed \texttt{autogobble} incompatibility with Linux and OS X.
-% \item \texttt{\string\mintinline} and derived commands are now robust, via \texttt{\string\newrobustcmd} from \texttt{etoolbox}.
-% \item Unused styles are now cleaned up when caching.
-% \item Fixed a bug that could interfere with caching (\#24).
-% \item Added \texttt{draft} package option (\#39). This typesets all code using \texttt{fancyvrb}; Pygments is not used. This trades syntax highlighting for maximum speed in compiling.
-% \item Added automatic line breaking with \texttt{breaklines} and related options (\#1).
-% \item Fixed a bug with boolean options that needed a False argument to cooperate with \texttt{\string\setminted} (\#48).
-% \end{changelog}
-%
-% \begin{changelog}{v2.0-alpha3}{2013/12/21}
-% \item Added \texttt{autogobble} option. This sends code through Python's \texttt{textwrap.dedent()} to remove common leading whitespace.
-% \item Added package option \texttt{cachedir}. This allows the directory in which cached content is saved to be specified.
-% \item Added package option \texttt{outputdir}. This allows an output directory for temporary files to be specified, so that the package can work with LaTeX's \texttt{-output-directory} command-line option.
-% \item The \texttt{kvoptions} package is now required. It is needed to process key-value package options, such as the new \texttt{cachedir} option.
-% \item Many small improvements, including better handling of paths under Windows and improved key system.
-% \end{changelog}
-%
-% \begin{changelog}{v2.0-alpha2}{2013/08/21}
-% \item \texttt{\string\DeleteFile} now only deletes files if they do indeed exist. This eliminates warning messages due to missing files.
-% \item Fixed a bug in the definition of \texttt{\string\DeleteFile} for non-Windows systems.
-% \item Added support for Pygments option \texttt{stripnl}.
-% \item Settings macros that were previously defined globally are now defined locally, so that \texttt{\string\setminted} may be confined by \texttt{\string\begingroup...\string\endgroup} as expected.
-% \item Macro definitions for a given style are now loaded only once per document, rather than once per command/environment. This works even without caching.
-% \item A custom script/executable may now be substituted for \texttt{pygmentize} by redefining \texttt{\string\MintedPygmentize}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.0alpha}{2013/07/30}
-% \item Added the package option \texttt{cache}. This significantly increases compilation speed by caching old output. For example, compiling the documentation is around 5x faster.
-% \item New inline command \texttt{\string\mintinline}. Custom versions can be created via \texttt{\string\newmintinline}. The command works inside other commands (for example, footnotes) in most situations, so long as the percent and hash characters are avoided.
-% \item The new \texttt{\string\setminted} command allows options to be specified at the document and language levels.
-% \item All extended characters (Unicode, etc.) supported by \texttt{inputenc} now work under the pdfTeX engine. This involved using \texttt{\string\detokenize} on everything prior to saving.
-% \item New package option \texttt{langlinenos} allows line numbering to pick up where it left off for a given language when \texttt{firstnumber=last}.
-% \item New options, including \texttt{style}, \texttt{encoding}, \texttt{outencoding}, \texttt{codetagify}, \texttt{keywordcase}, \texttt{texcomments} (same as \texttt{texcl}), \texttt{python3} (for the \texttt{PythonConsoleLexer}), and \texttt{numbers}.
-% \item \texttt{\string\usemintedstyle} now takes an optional argument to specify the style for a particular language, and works anywhere in the document.
-% \item \texttt{xcolor} is only loaded if \texttt{color} isn't, preventing potential package clashes.
-% \end{changelog}
-%
-%
-% \begin{changelog}{1.7}{2011/09/17}
-% \item Options for float placement added [2011/09/12]
-% \item Fixed \texttt{tabsize} option [2011/08/30]
-% \item More robust detection of the \texttt{-shell-escape} option [2011/01/21]
-% \item Added the \texttt{label} option [2011/01/04]
-% \item Installation instructions added [2010/03/16]
-% \item Minimal working example added [2010/03/16]
-% \item Added PHP-specific options [2010/03/14]
-% \item Removed unportable flag from Unix shell command [2010/02/16]
-% \end{changelog}
-%
-%
-% \begin{changelog}{1.6}{2010/01/31}
-% \item Added font-related options [2010/01/27]
-% \item Windows support added [2010/01/27]
-% \item Added command shortcuts [2010/01/22]
-% \item Simpler versioning scheme [2010/01/22]
-% \end{changelog}
-%
-%
-% \begin{changelog}{0.1.5}{2010/01/13}
-% \item Added \texttt{fillcolor} option [2010/01/10]
-% \item Added float support [2010/01/10]
-% \item Fixed \texttt{firstnumber} option [2010/01/10]
-% \item Removed \texttt{caption} option [2010/01/10]
-% \end{changelog}
-%
-%
-% \begin{changelog}{0.0.4}{2010/01/08}
-% \item Initial version [2010/01/08]
-% \end{changelog}
-%
-%
-% %\DoNotIndex{\newcommand,\newenvironment}
-% %\DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
-% %\DoNotIndex{\@ne}
-% %\DoNotIndex{\advance,\begingroup,\catcode,\closein}
-% %\DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
-% %\DoNotIndex{\begin,\end,\bgroup,\egroup}
-% %\DoNotIndex{\@namedef,\@nameuse,=,\csname,\endcsname}
+%
+% ^^A\DoNotIndex{\newcommand,\newenvironment}
+% ^^A\DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
+% ^^A\DoNotIndex{\@ne}
+% ^^A\DoNotIndex{\advance,\begingroup,\catcode,\closein}
+% ^^A\DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
+% ^^A\DoNotIndex{\begin,\end,\bgroup,\egroup}
+% ^^A\DoNotIndex{\@namedef,\@nameuse,=,\csname,\endcsname}
%
%
% \GetFileInfo{minted.sty}
%
-% \newcommand{\texpkg}[1]{\textsf{#1}}
+% \newcommand{\texpkg}[1]{\textsf{\detokenize{#1}}}
+% \newcommand{\pypkg}[1]{\textsf{\detokenize{#1}}}
+% \newcommand{\mintedpkg}{\texpkg{minted}}
% \newcommand{\app}[1]{\textsf{#1}}
%
-% \title{The \textcolor{minted@mint}{\texpkg{minted}} package:\\Highlighted source code in \LaTeX}
+% \title{The \textcolor{minted@mint}{\mintedpkg} package:\\Highlighted source code in \LaTeX}
% \author{Geoffrey M.\ Poore \\ \url{gpoore@gmail.com} \\ \href{https://github.com/gpoore/minted}{\texttt{github.com/gpoore/minted}} \\ ~\\ Originally created and maintained (2009--2013) by \\ Konrad Rudolph}
% \date{\fileversion~from \filedate}
%
% \maketitle
%
% \begin{abstract}
-% \noindent\texpkg{minted} is a package that facilitates expressive syntax highlighting
-% using the powerful \app{Pygments} library. The package also provides options to
-% customize the highlighted source code output.
+% \noindent\mintedpkg\ provides syntax highlighting using the \href{https://pygments.org/}{Pygments} library. It also provides options for customizing the highlighted source code output, including features implemented in Python such as selecting snippets of code with regular expressions.
%
% \vspace{0.5in}
-% \noindent\textbf{Development status:} \pkg{minted} version 3.0 is now under development, thanks to a \href{https://tug.org/tc/devfund/grants.html}{\TeX\ Development Fund grant} from the \href{https://tug.org/}{\TeX\ Users Group}. This will bring a new Python executable that replaces |pygmentize|. The new executable will be compatible with restricted shell escape, so no more |-shell-escape| with associated security vulnerabilities. The new executable will also make it possible to extend \pkg{minted} using Python, not just \LaTeX\ macros. This will bring official support for custom lexers, allow including snippets of external files based on regular expressions, and make possible a number of other improvements and bugfixes. For compatibility purposes, the final version of \pkg{minted} v2.x will be released as the compatibility package \pkg{minted2}. Initial beta versions of minted v3.0 are expected by early 2024. A final minted v3.x release including all planned features is expected before the end of summer 2024.
+% \noindent The original development of \mintedpkg\ version 3 was funded by a \href{https://tug.org/tc/devfund/grants.html}{\TeX\ Development Fund grant} from the \href{https://tug.org/}{\TeX\ Users Group} in 2023.
% \end{abstract}
%
% \vspace{0.5in}
%
% \subsection*{License}
-% \href{http://www.latex-project.org/lppl.txt}{LaTeX Project Public License (LPPL)} version 1.3.
-%
-% Additionally, the project may be distributed under the terms of the 3-Clause
-% (``New'') BSD license: \url{http://opensource.org/licenses/BSD-3-Clause}.
+% \href{https://www.latex-project.org/lppl.txt}{LaTeX Project Public License (LPPL)} version 1.3c.
%
% \pagebreak
%
@@ -510,162 +311,186 @@
%
%
%
-% \texpkg{minted} is a package that allows formatting source code in \LaTeX.
-% For example:
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{minted}{<language>}
-% <code>
-% \end{minted}
-% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
-%
-% will highlight a piece of code in a chosen language.
-% The appearance can be customized with a number of options and color schemes.
-%
-% Unlike some other packages, most notably \texpkg{listings}, \texpkg{minted} requires
-% the installation of additional software, \app{Pygments}.
-% This may seem like a disadvantage, but there are also significant advantages.
-%
-% \app{Pygments} provides superior syntax highlighting compared to conventional packages.
-% For example, \texpkg{listings} basically only highlights strings, comments and keywords.
-% \app{Pygments}, on the other hand, can be completely customized to highlight any kind of token the
-% source language might support.
-% This might include special formatting sequences inside strings, numbers, different kinds of
-% identifiers and exotic constructs such as HTML tags.
+% \mintedpkg\ provides syntax highlighting using the \href{https://pygments.org/}{Pygments} library. The general strategy is to wrap code in a command or environment that captures it verbatim, like this:
+%\begin{mintedexample}[frame=single]{latex}
+%\begin{minted}{<language>}
+%<code>
+%\end{minted}
+%\end{mintedexample}
%
-% Some languages make this especially desirable.
-% Consider the following Ruby code as an extreme, but at the same time typical, example:
+% Then the code is passed to Python, highlighted with Pygments, and passed back to \LaTeX\ for inclusion in the document. Here is an example with Ruby code, showing the \LaTeX\ source and then the highlighted output:
%
-% \begin{minted}[gobble=3]{ruby}
+% \begin{example}
+% \begin{minted}{ruby}
% class Foo
% def init
% pi = Math::PI
-% @var = "Pi is approx. #{pi}"
+% @var = "Pi = #{pi}..."
% end
% end
% \end{minted}
+% \end{example}
%
-% Here we have four different colors for identifiers (five, if you count keywords) and escapes from
-% inside strings, none of which pose a problem for \app{Pygments}.
-%
-% Additionally, installing \app{Pygments} is actually incredibly easy (see the next section).
+% Because \mintedpkg\ uses Pygments and other Python software, it can provide more highlighting features than are practical in syntax highlighting packages like \href{ https://ctan.org/pkg/listings}{\texpkg{listings}} that are implemented purely in \LaTeX. In the past, this reliance on external software brought several disadvantages, including a requirement for separately installing Pygments. As of \mintedpkg\ version 3, all Python software including Pygments is bundled with the \LaTeX\ package when it is installed with a \TeX\ package manager, and no dependencies must be installed separately.
%
%
% \section{Installation}
%
-% \subsection{Prerequisites}
+% \subsection{Package manager}
%
-% \app{Pygments} is written in Python, so make sure that you have Python 2.6 or later installed on your system. This may be easily checked from the command line:
+% Installation will typically be simpler and faster using your \TeX\ distribution's package manager. Start your package manager's graphical user interface, or use the relevant command below:
+% \begin{itemize}
+% \item TeX Live: |tlmgr install minted|
+% \item MiKTeX: |mpm --admin --install=minted|
+% \end{itemize}
+% When the \mintedpkg\ package is installed, it includes the |latexminted| Python executable and all required Python libraries including Pygments. For these to function correctly, Python 3.8+ must be installed and on |PATH| when the |latexminted| executable runs.
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ python --version
-% Python 2.7.5
-% \end{Verbatim}
+% Note that if you plan to use Pygments plugin packages, you will need to install the \pypkg{latexminted} Python package and dependencies including Pygments within a Python installation. The Python libraries installed by a \TeX\ package manager within a \TeX\ installation are not compatible with plugin packages. After installing \pypkg{latexminted} within a Python installation, make sure that its |latexminted| executable has precedence on |PATH|.
%
-% If you don't have Python installed, you can download it from the \href{http://www.python.org/download/}{Python website} or
-% use your operating system's package manager.
+% The \mintedpkg\ package has the \LaTeX\ package dependencies listed below. Depending on your \TeX\ distribution and configuration, these may be installed automatically when \mintedpkg\ is installed.
+% \begin{multicols}{4}
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \texpkg{catchfile}
+% \item \texpkg{etoolbox}
+% \item \texpkg{float}
+% \item \texpkg{fvextra}
+% \item \texpkg{latex2pydata}
+% \item \texpkg{newfloat}
+% \item \texpkg{pdftexcmds}
+% \item \texpkg{pgfkeys}
+% \item \texpkg{pgfopts}
+% \item \texpkg{shellesc}
+% \item \texpkg{xcolor}
+% \end{itemize}
+% \end{multicols}
%
-% Some Python distributions include \texpkg{Pygments} (see some of the options under ``Alternative Implementations'' on the Python site). Otherwise, you will need to install \texpkg{Pygments} manually. This may be done by installing \href{http://pypi.python.org/pypi/setuptools}{\app{setuptools}}, which facilitates the distribution of Python applications. You can then install \app{Pygments} using the following command:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ sudo easy_install Pygments
-% \end{Verbatim}
-% Under Windows, you will not need the |sudo|, but may need to run the command prompt as administrator. \texpkg{Pygments} may also be installed with |pip|:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pip install Pygments
-% \end{Verbatim}
%
-% If you already have \app{Pygments} installed, be aware that the latest version is recommended (at least 1.4 or later). Some features, such as |escapeinside|, will only work with 2.0+. \texpkg{minted} may work with versions as early as 1.2, but there are no guarantees.
+% \subsection{Manual installation}
%
+% \mintedpkg\ source files are available at \href{https://github.com/gpoore/minted}{|github.com/gpoore/minted|}. There is also \href{https://ctan.org/pkg/minted}{|ctan.org/pkg/minted|}.
%
-% \subsection{Required packages}
+% Install |minted.sty| (and |minted2.sty| and |minted1.sty| if desired) within your \TeX\ installation. For TeX Live, it may be best to put style files under |TEXMFLOCAL|, which can be located by running |kpsewhich --var-value TEXMFLOCAL|. For example, you might put the files in |<texlive>/<year>/texmf-local/tex/latex/local/minted|. For further details, consult your \TeX\ distribution's documentation, or an online guide such as \href{https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages}{\Verb{en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages}} or \href{https://texfaq.org/}{\Verb|texfaq.org|}. After installing the |.sty| files, make \TeX\ aware of the new files by running |texhash| or |mktexlsr| (TeX Live), or |initexmf --update-fndb| (MiKTeX).
%
-% \texpkg{minted} requires that the following packages be available and reasonably up to date on your system. All of these ship with recent \TeX\ distributions.
+% Next, install the Python side of the package. Python 3.8+ is required. There are two options: Install the \pypkg{latexminted} package and dependencies within a Python installation (typically easier, and required for compatibility with Pygments plugin packages), or install them within your \TeX\ installation.
%
-% \begin{multicols}{3}
-% \begingroup
-% \setlength\parskip{0pt}
-% \setlength\topsep{0pt}
-% \begin{list}{\textrm{\labelitemi}}{\ttfamily}
-% \item keyval
-% \item kvoptions
-% \item fancyvrb
-% \item fvextra
-% \item upquote
-% \item float
-% \item ifthen
-% \item calc
-% \item ifplatform
-% \item pdftexcmds
-% \item etoolbox
-% \item xstring
-% \item xcolor
-% \item lineno
-% \item framed
-% \item shellesc (for luatex 0.87+)
-% \item catchfile
-%
-% ~
-% \end{list}
-% \endgroup
-% \end{multicols}
+% Note that if you are only using the \texpkg{minted2} package for backward compatibility with \mintedpkg\ version 2, you do not need \pypkg{latexminted}. \texpkg{minted2} only requires the Pygments package, which can be installed with something like |pip install pygments|, |conda install anaconda::pygments|, or |brew install pygments|, depending on your operating system and Python distribution. You may need to modify the command depending on system versus user installation and depending on virtual environments.
%
+% \subsubsection{Option 1 (recommended): Install \pypkg{latexminted} within Python installation}
%
-% \subsection{Installing \texpkg{minted}}
-% \label{sec:installing:installing}
+% If your Python distribution is compatible with \href{https://pypi.org/}{The Python Package Index (PyPI)}, this can be accomplished by running |pip install latexminted|. This will install \pypkg{latexminted} plus all dependencies including Pygments. You may need to modify the command depending on whether you want a system or user (|--user|) installation, depending on whether you are using virtual environments, and depending on whether something like |pip3| is needed instead of |pip|.
%
-% You can probably install \texpkg{minted} with your \TeX\ distribution's package manager. Otherwise, or if you want the absolute latest version, you can install it manually by following the directions below.
+% If you cannot or do not wish to use PyPI via |pip|, install the following packages manually or from other sources.
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \pypkg{latexminted}: \url{https://pypi.org/project/latexminted/}
+% \item \pypkg{latexrestricted}: \url{https://pypi.org/project/latexrestricted/}
+% \item \pypkg{latex2pydata}: \url{https://pypi.org/project/latex2pydata/}
+% \item Pygments: \url{https://pypi.org/project/Pygments/}
+% \end{itemize}
%
-% You may download |minted.sty| from the
-% \href{https://github.com/gpoore/minted}{project's homepage}. We have to install the file so that \TeX\ is able to find it.
-% In order to do that, please refer to the
-% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}{\TeX{} FAQ}.
-% If you just want to experiment with the latest version, you could locate your current |minted.sty| in your \TeX\ installation and replace it with the latest version. Or you could just put the latest |minted.sty| in the same directory as the file you wish to use it with.
+% \subsubsection{Option 2: Install \pypkg{latexminted} within \TeX\ installation}
%
+% This approach is more involved and essentially replicates the process that is performed automatically when using a \TeX\ package manager.
%
-% \section{Basic usage}
+% Install the |latexminted.py| executable within your \TeX\ installation. (It is part of the \mintedpkg\ \LaTeX\ package, separate from the \pypkg{latexminted} Python package.) This should typically be within a |scripts| directory. When TeX Live installs \mintedpkg\ with its package manager, this is something like |<texlive>/<year>/texmf-dist/scripts/minted|.
+%
+% Download Python wheels (|*.whl|) for the following Python packages, and place them in the same location as |latexminted.py|.
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \pypkg{latexminted}: \url{https://pypi.org/project/latexminted/}
+% \item \pypkg{latexrestricted}: \url{https://pypi.org/project/latexrestricted/}
+% \item \pypkg{latex2pydata}: \url{https://pypi.org/project/latex2pydata/}
+% \item Pygments: \url{https://pypi.org/project/Pygments/}
+% \end{itemize}
%
-% \subsection{Preliminary}
-% \label{sec:basic:preliminary}
+% Under non-Windows operating systems, create a symlink called |latexminted| in the \TeX\ binary directory or another appropriate location that points to |latexminted.py|. When TeX Live installs \mintedpkg\ with its package manager, this is something like |<texlive>/<year>/bin/<architecture>|.
%
-% Since \texpkg{minted} makes calls to the outside world (that is, \app{Pygments}), you need to tell the
-% \LaTeX{} processor about this by passing it the |-shell-escape| option or it won't allow such calls.
-% In effect, instead of calling the processor like this:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ latex input
-% \end{Verbatim}
+% Under Windows, a launcher executable for |latexminted.py| needs to be created. When TeX Live installs \mintedpkg\ with its package manager, it creates a copy of |runscript.exe| named |latexminted.exe| within the \TeX\ binary directory, which is something like |<texlive>/<year>/bin/windows|.
%
-% you need to call it like this:
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ latex -shell-escape input
-% \end{Verbatim}
%
-% The same holds for other processors, such as |pdflatex| or |xelatex|.
+% \section{Migrating from \mintedpkg\ version 2}
%
-% You should be aware that using |-shell-escape| allows \LaTeX\ to run potentially arbitrary commands on your system. It is probably best to use |-shell-escape| only when you need it, and to use it only with documents from trusted sources.
+% \mintedpkg\ version 3 is a complete rewrite from version 2.9. A brief summary of changes is provided below. For full details, see |CHANGELOG_MINTED_LATEX_PACKAGE.md|.
%
+% \subsubsection*{Backward compatibility}
%
-% \subsubsection*{Working with OS X}
+% The new \texpkg{minted2} package provides the features of \texpkg{minted} version 2.9, the final release before version 3. No additional version 2 releases are planned; no changes to the \texpkg{minted2} package are expected.
%
-% If you are using \texpkg{minted} with some versions/configurations of OS X, and are using caching with a large number of code blocks ($>256$), you may receive an error like
-%\begin{Verbatim}
-%OSError: [Errno 24] Too many open files:
-%\end{Verbatim}
-% This is due to the way files are handled by the operating system, combined with the way that caching works. To resolve this, you may use the OS X commands |launchctl limit maxfiles| or |ulimit -n| to increase the number of files that may be used.
%
+% \subsubsection*{New features and changes}
+%
+% \begin{itemize}
+% \item Version 3 uses a new \mintedpkg-specific Python executable called |latexminted| to perform syntax highlighting. This executable is specifically designed to meet the security requirements for restricted shell escape programs. Once it has passed a security review and is accepted by \TeX\ distributions, it will be possible to highlight code without |-shell-escape| and its attendant security vulnerabilities.
+%
+% Syntax highlighting is still performed with Pygments, but the |pygmentize| executable included with Pygments is no longer used.
+%
+% When \mintedpkg\ is installed with a \TeX\ package manager, the new |latexminted| executable and all Python libraries including Pygments are installed within the \TeX\ installation. A separate step to install Pygments is no longer necessary.
+%
+% \item Temporary files are no longer created unless code needs to be highlighted. There is a new naming scheme for temporary files and for cache files.
+%
+% \item New package options: |debug| (additional debug info during compilation), |highlightmode| (modify when code is highlighted for faster compilation), |placeholder| (insert a placeholder instead of code), and |verbatim| (insert verbatim approximation of code).
+%
+% \item Renamed package options |langlinenos| to |lexerlinenos| and |inputlanglinenos| to |inputlexerlinenos|. The old names are still supported.
+%
+% \item |bgcolor| now uses the new |bgcolor| option from \texpkg{fvextra} v1.8. Because |bgcolor| now introduces no additional whitespace or padding, existing documents may require some modification. Added new option |bgcolorpadding| for modifying padding in background color regions. Added new option |bgcolorvphantom| for setting height of background color in inline contexts. When more sophisticated background colors are needed, \texpkg{tcolorbox} or a similar package should be used.
+%
+% \item The default cache directory name is now |_minted|. All files within a directory now share the same cache, instead of having separate per-document caches. Document-specific caching as in |minted| version 2 can be restored using the package option |cachedir|.
+%
+% \item |\newminted| now creates an environment that takes an optional argument consisting of options, instead of taking no argument.
+%
+% \item File encoding changes: The new |latexminted| executable assumes that \LaTeX\ output files are UTF-8, and saves highlighted code as UTF-8. That is, LaTeX should be configured so that everything is UTF-8. The |encoding| option now defaults to UTF-8. It is only used in decoding files for |\inputminted| and commands based on it. The |outencoding| option is no longer supported.
+%
+% \item Added new options for including ranges of code based on literal string delimiters or regular expressions: |rangestartstring|, |rangestartafterstring|, |rangestopstring|, |rangestopbeforestring|, |rangeregex|.
+%
+% \item There is now support for custom lexers in standalone Python files. See the documentation for the new |.latexminted_config| configuration files for details.
+%
+% \item Several package options are no longer supported and result in errors or warnings. The package options |finalizecache|, |outputdir|, and |kpsewhich| are no longer needed given new \mintedpkg\ version 3 capabilities. The package options |draft| and |final| no longer have any effect and will soon be removed altogether. The new package options |placeholder| and |verbatim| are available in cases where using highlighted code should be completely avoided.
+% \end{itemize}
+%
+%
+%
+% \section{Basic usage}
+%
+% \subsection{The \Verb{latexminted} Python executable and shell escape}
+%
+% The \mintedpkg\ package operates by passing code to the |latexminted| Python executable, which performs syntax highlighting and then returns the highlighted code in \LaTeX\ format.
+%
+% Currently, |latexminted| requires special permission to run. \LaTeX\ must be called with the |-shell-escape| option (TeX Live) or the |-enable-write18| option (MiKTeX). Note that using |-shell-escape| or |-enable-write18| allows \LaTeX\ to run potentially arbitrary commands on your system. These should only be used when necessary, with documents from trusted sources.
+%
+% |latexminted| is designed to be compatible with the security requirements for restricted shell escape. Once |latexminted| finishes the security review for restricted shell escape executables, it will function automatically without |-shell-escape| or |-enable-write18|, so long as the default restricted shell escape has not been disabled. It is possible to benefit from these enhanced security capabilities immediately and avoid the need for |-shell-escape| or |-enable-write18| by manually designating |latexminted| as a trusted executable.
+% \begin{itemize}
+% \item TeX Live: Copy the variable |shell_escape_commands| from the distribution |texmf.cnf| (something like |<texlive>/<yr>/texmf-dist/web2c/texmf.cnf|) into the user |texmf.cnf| (something like |<texlive>/<yr>/texmf.cnf|), and then add |latexminted| to the |shell_escape_commands| list. The location of the |texmf.cnf| files can be determined by running |kpsewhich -all texmf.cnf|. Note that under Windows, this only works when |latexminted| is installed within a TeX Live installation; it is not compatible with |latexminted| being installed in a Python installation.
+% \item MiKTeX: Add a line |AllowedShellCommands[] = latexminted| to the existing list of allowed commands in |miktex.ini|. You may want to modify the user-scoped configuration instead of the system-wide configuration. See the \href{https://docs.miktex.org/manual/miktex.ini.html}{MiKTeX documentation} for more details, particularly |initexmf --edit-config-file| and |initexmf --set-config-value|.
+% \end{itemize}
+%
+% For the |latexminted| Python executable to correctly inherit security settings from \LaTeX, there are requirements for system configuration when multiple \TeX\ installations are present.
+% \begin{itemize}
+% \item With MiKTeX on systems with multiple MiKTeX installations, the desired MiKTeX installation must be the first MiKTeX installation on |PATH|.
+% \item With TeX Live on Windows systems with multiple TeX Live installations, the desired TeX Live installation must be the first TeX Live installation on |PATH|.
+% \end{itemize}
+% See the \href{https://github.com/gpoore/latexrestricted}{\pypkg{latexrestricted}} documentation for details.
%
%
% \subsection{A minimal complete example}
%
-% The following file |minimal.tex| shows the basic usage of \texpkg{minted}.
+% The following file |minimal.tex| shows the basic usage of \mintedpkg.
%
% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
% \documentclass{article}
%
% \usepackage{minted}
+% \usepackage[svgnames]{xcolor}
%
% \begin{document}
-% \begin{minted}{c}
+% \begin{minted}[bgcolor=Beige, bgcolorpadding=0.5em]{c}
% int main() {
% printf("hello, world");
% return 0;
@@ -673,55 +498,47 @@
% \end{minted}
% \end{document}
% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
+% \inputminted[frame=single]{latex}{minted.doc.out}
%
-% By compiling the source file like this:
+% This document can be compiled by running ``|pdflatex -shell-escape minimal|''
+% to produce the following output in |minimal.pdf|:
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pdflatex -shell-escape minimal
-% \end{Verbatim}
-%
-% we end up with the following output in |minimal.pdf|:
-%
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \inputminted[firstline=7,lastline=10]{c}{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% \begin{center}
+% \begin{minipage}{0.6\textwidth}
+% \inputminted[rangeregex=\^\\s*int.+?\\\}, rangeregexdotall=true, rangeregexmultiline=true, bgcolor=Beige, bgcolorpadding=0.5em]{c}{minted.doc.out}
+% \end{minipage}
+% \end{center}
%
%
% \subsection{Formatting source code}
%
% \DescribeEnv{minted}
-% Using \texpkg{minted} is straightforward. For example, to highlight some Python source code we might use
-% the following code snippet (result on the right):
+% The |minted| environment highlights a block of code:
%
% \begin{example}
-% \begin{minted}{python}
-% def boring(args = None):
-% pass
-% \end{minted}
+% \begin{minted}{python}
+% def boring(args = None):
+% pass
+% \end{minted}
% \end{example}
%
-% Optionally, the environment accepts a number of options in |key=value| notation, which are described
-% in more detail below.
+% The environment accepts a number of optional arguments in |key=value| notation. These are described in \cref{sec:options:macro}.
%
-% To use \texpkg{minted} with a language that is not supported by Pygments, or simply to disable highlighting, set the language to |text|: |\begin{minted}{text}|.
+% To use \mintedpkg\ with a language that is not supported by Pygments, or simply to disable highlighting, set the language to |text|: |\begin{minted}{text}|.
%
%
% \DescribeMacro{\mint}
-% For a single line of source code, you can alternatively use a shorthand notation:
+% For a single line of source code, you can use |\mint| as a shorthand for |minted|:
%
% \begin{example}
-% \mint{python}|import this|
+% \mint{python}/import this/
% \end{example}
%
% This typesets a single line of code using a command rather than an environment, so it saves a little typing, but its output is equivalent to that of the |minted| environment.
%
% The code is delimited by a pair of identical characters, similar to how |\verb| works. The complete syntax is \cmd\mint\oarg{options}\marg{language}\meta{delim}\meta{code}\meta{delim},
% where the code delimiter can be almost any punctuation character.
-% The \meta{code} may also be delimited with matched curly braces |{}|, so long as \meta{code} itself does not contain unmatched curly braces.
-% Again, this command supports a number of options described below.
+% The \meta{code} may also be delimited with paired curly braces |{}|, so long as \meta{code} itself does not contain unpaired curly braces.
%
% Note that the |\mint| command \textbf{is not for inline use}. Rather, it is a shortcut for |minted| when only a single line of code is present. The |\mintinline| command is provided for inline use.
%
@@ -730,73 +547,61 @@
% Code can be typeset inline:
%
% \begin{example}
-% X\mintinline{python}{print(x**2)}X
+% \mintinline{py}{print("Hello!")}
% \end{example}
%
% The syntax is \cmd\mintinline\oarg{options}\marg{language}\meta{delim}\meta{code}\meta{delim}. The delimiters can be a single repeated character, just like for \cmd{\verb}. They can also be a pair of curly braces, |{}|. Curly braces are required when \cmd{\mintinline} is used in a movable argument, such as in a \cmd{\section}.
%
-% Unlike \cmd{\verb}, \cmd{\mintinline} can usually be used inside other commands. The main exception is when the code contains the percent \texttt{\%} or hash \texttt{\#} characters, or unmatched curly braces. For example, \cmd{\mintinline} typically works in \cmd{\footnote} and \cmd{\section}! Note that some document classes or packages, such as \texpkg{memoir}, redefine \cmd{\section} or have options that modify it in ways that are incompatible with \cmd{\mintinline}. If you use \cmd{\mintinline} inside \cmd{\section} or otherwise in a movable argument, you should experiment to make sure it is compatible with your document configuration. You may also want to consider \texpkg{fvextra}'s \cmd{\Verb} or \cmd{\EscVerb} as an alternative.
+% Unlike \cmd{\verb}, \cmd{\mintinline} can usually be used inside other commands. The main exception is when the code contains the percent \texttt{\%} or hash \texttt{\#} characters, or unpaired curly braces. For example, \cmd{\mintinline} typically works in \cmd{\footnote} and \cmd{\section}! Note that some document classes or packages, such as \texpkg{memoir}, redefine \cmd{\section} or have options that modify it in ways that are incompatible with \cmd{\mintinline}. If you use \cmd{\mintinline} inside \cmd{\section} or otherwise in a movable argument, you should experiment to make sure it is compatible with your document configuration. You may also want to consider \texpkg{fvextra}'s \cmd{\Verb} or \cmd{\EscVerb} as an alternative.
%
% The code typesetting for \cmd{\mintinline} is based on \texpkg{fvextra}'s \cmd{\Verb}. See the \href{https://github.com/gpoore/fvextra/}{\texpkg{fvextra} documentation on \cmd{\Verb}} for additional details about functionality and limitations.
%
% \DescribeMacro{\inputminted}
-% Finally, there's the |\inputminted| command to read and format whole files.
+% Finally, there's the |\inputminted| command to input external files.
% Its syntax is \cmd\inputminted\oarg{options}\marg{language}\marg{filename}.
%
-% \warn: \meta{filename} is used to generate a shell command for highlighing the file. Due to limitations in the design of \texpkg{minted} and limitations with TeX as a programming language, there is currently no escaping or sanitization of the filename as part of this process. Providing a malformed filename can execute arbitrary system commands. For example, providing ``|file.txt; touch file2.txt|'' as \meta{filename} could highlight one file while subsequently creating a new file. (Issue \href{https://github.com/gpoore/minted/issues/338}{\#338}.)
-%
%
% \subsection{Using different styles}
%
% \DescribeMacro{\usemintedstyle}
-% Instead of using the default style you may choose another stylesheet provided by \app{Pygments}. This may be done via the following:
%
-% \mint[frame=lines]{latex}/\usemintedstyle{name}/
-%
-% The full syntax is \cmd\usemintedstyle\oarg{language}\marg{style}. The style may be set for the document as a whole (no language specified), or only for a particular language. Note that the style may also be set via \cmd\setminted\ and via the optional argument for each command and environment.\footnote{Version 2.0 added the optional language argument and removed the restriction that the command be used in the preamble.}
+% \DescribeMacro{\setminted}
+% Instead of using the default highlighting style you may choose another style provided by Pygments. There are two equivalent ways to do this:
%
-% Highlighting styles with examples can be viewed online at \href{https://pygments.org/styles/}{pygments.org/styles}. It is possible to preview your code with different styles using the online demo at \href{http://pygments.org/demo/}{pygments.org/demo}. Available styles can also be listed by executing the following command on the command line:
+% \begin{minted}{latex}
+% \usemintedstyle{name}
+% \setminted{style=name}
+% \end{minted}
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pygmentize -L styles
-% \end{Verbatim}
+% The |\setminted| approach has the advantage that other \mintedpkg\ options are accepted as well; |\usemintedstyle| is restricted to style modifications. The full syntax is \cmd\usemintedstyle\oarg{language}\marg{style} and \cmd\setminted\oarg{language}\marg{key=value}. The style may be set for the document as a whole (no language specified), or only for a particular language. Note that the style may also be set via the optional argument for each command and environment.
%
+% Highlighting styles with examples are at \href{https://pygments.org/styles/}{pygments.org/styles}. It is possible to preview your code with different styles using the online demo at \href{https://pygments.org/demo/}{pygments.org/demo}. Available styles can also be listed by running the command |pygmentize -L styles|.
%
-% Creating your own styles is also easy. Just follow the instructions provided on the
-% \href{http://pygments.org/docs/styles/#creating-own-styles}{\texpkg{Pygments} website}.
+% It is also possible to create your own styles. See the instructions on the
+% \href{https://pygments.org/docs/styles/#creating-own-styles}{\texpkg{Pygments} website}.
+% \mintedpkg\ only supports style names that match the regular expression |^[0-9A-Za-z_-]+$|.
%
%
% \subsection{Supported languages}
%
-% \app{Pygments} supports hundreds of different programming languages, template languages, and other markup languages. To see an exhaustive list of the currently supported languages, use the command
+% Pygments supports hundreds of different programming languages, template languages, and other markup languages. The list of currently supported languages is at \href{https://pygments.org/docs/lexers/}{pygments.org/docs/lexers/}. You can also run |pygmentize -L lexers|.
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pygmentize -L lexers
-% \end{Verbatim}
%
%
% \section{Floating listings}\label{sec:float}
%
% \DescribeEnv{listing}
-% \texpkg{minted} provides the |listing| environment to wrap around a source code block. This puts the code into a floating box, with the default placement |tbp| like figures and tables. You can also provide a |\caption| and a |\label| for such a listing in the usual way (that is, as for the |figure| and |table| environments):
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{listing}[H]
-% \mint{cl}/(car (cons 1 '(2)))/
-% \caption{Example of a listing.}
-% \label{lst:example}
-% \end{listing}
+% \mintedpkg\ provides a |listing| environment that can be used to wrap code blocks. This puts the code in a floating box similar to a figure or table, with default placement |tbp|. You can also provide a |\caption| and a |\label|:
%
-% Listing \ref{lst:example} contains an example of a listing.
-% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
-%
-% will yield:
+% \begin{longexample}
+% \begin{listing}[H]
+% \mint{cl}/(car (cons 1 '(2)))/
+% \caption{Example of a listing.}
+% \label{lst:example}
+% \end{listing}
%
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \input{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% Listing \ref{lst:example} contains an example of a listing.
+% \end{longexample}
%
% The default |listing| placement can be modified easily. When the package option |newfloat=false| (default), the \texpkg{float} package is used to create the |listing| environment. Placement can be modified by redefining |\fps@listing|. For example,
%\begin{verbatim}
@@ -818,7 +623,7 @@
% \end{example}
%
% \subsection*{Customizing the \texttt{listing} environment}
-% By default, the |listing| environment is created using the \texpkg{float} package. In that case, the |\listingscaption| and |\listoflistingscaption| macros described below may be used to customize the caption and list of listings. If \texpkg{minted} is loaded with the |newfloat| option, then the |listing| environment will be created with the more powerful \href{http://www.ctan.org/pkg/newfloat}{\texpkg{newfloat}} package instead. \texpkg{newfloat} is part of \href{http://www.ctan.org/pkg/caption}{\texpkg{caption}}, which provides many options for customizing captions.
+% By default, the |listing| environment is created using the \texpkg{float} package. In that case, the |\listingscaption| and |\listoflistingscaption| macros described below may be used to customize the caption and list of listings. If \mintedpkg\ is loaded with the |newfloat| option, then the |listing| environment will be created with the more powerful \href{https://www.ctan.org/pkg/newfloat}{\texpkg{newfloat}} package instead. \texpkg{newfloat} is part of \href{https://www.ctan.org/pkg/caption}{\texpkg{caption}}, which provides many options for customizing captions.
%
% When \texpkg{newfloat} is used to create the |listing| environment, customization should be achieved using \texpkg{newfloat}'s |\SetupFloatingEnvironment| command. For example, the string ``Listing'' in the caption could be changed to ``Program code'' using
%\begin{verbatim}
@@ -830,155 +635,191 @@
% Refer to the \texpkg{newfloat} and \texpkg{caption} documentation for additional information.
%
% \DescribeMacro{\listingscaption}
-% (Only applies when package option |newfloat| is not used.) The string ``Listing'' in a listing's caption can be changed.
-% To do this, simply redefine the macro |\listingscaption|, for example:
+% This allows the string ``Listing'' in a listing's caption to be customized. It only applies when package option |newfloat=false|. For example:
%
-% \mint[frame=lines]{latex}/\renewcommand{\listingscaption}{Program code}/
+%\begin{verbatim}
+%\renewcommand{\listingscaption}{Program code}
+%\end{verbatim}
%
% \DescribeMacro{\listoflistingscaption}
-% (Only applies when package option |newfloat| is not used.) Likewise, the caption of the listings list, ``List of Listings,'' can be changed by redefining
-% |\listoflistingscaption|:
+% This allows the caption of the listings list, ``List of Listings,'' to be customized. It only applies when package option |newfloat=false|. For example:
%
-% \mint[frame=lines]{latex}/\renewcommand{\listoflistingscaption}{List of Program Code}/
+%\begin{verbatim}
+%\renewcommand{\listoflistingscaption}{List of Program Code}
+%\end{verbatim}
%
%
-% \section{Options}
%
+% \section{Configuration}
%
%
-% \subsection{Package options}
+% \subsection{\mintedpkg\ config file \Verb{.latexminted_config}}
%
-% \DescribeMacro{chapter}
-% To control how \LaTeX{} counts the |listing| floats, you can pass either the
-% |section| or |chapter| option when loading the \texpkg{minted} package.
-% For example, the following will cause listings to be counted by chapter:
+% Several \mintedpkg\ settings with security implications can be customized with a config file |.latexminted_config|. This config file is loaded by the |latexminted| Python executable when it runs.
%
-% \mint[frame=lines]{latex}/\usepackage[chapter]{minted}/
+% The |latexminted| Python executable looks for |.latexminted_config| files in the following locations:
+% \begin{itemize}
+% \item User home directory, as found by Python's \href{https://docs.python.org/3/library/pathlib.html#pathlib.Path.home}{|pathlib.Path.home()|}.
+% \item |TEXMFHOME|. With MiKTeX on systems with multiple MiKTeX installations, this will be the |TEXMFHOME| from the first MiKTeX installation on |PATH|. With TeX Live on Windows systems with multiple TeX Live installations, this will be the |TEXMFHOME| from the first TeX Live installation on |PATH|. In all other cases, |TEXMFHOME| will correspond to the currently active \TeX\ installation. See the \href{https://github.com/gpoore/latexrestricted}{\pypkg{latexrestricted}} documentation for details. \pypkg{latexrestricted} is used by the |latexminted| Python executable to retrieve the value of |TEXMFHOME|.
+% \item The current \TeX\ working directory. Note that |enable_cwd_config| must be set |true| in the |.latexminted_config| in the user home directory or in the |TEXMFHOME| directory to enable this; |.latexminted_config| in the current \TeX\ working directory is not enabled by default for security reasons. Even when a config file in the current \TeX\ working directory is enabled, it cannot be used to modify certain security-related settings.
+% \end{itemize}
%
+% Overall configuration is derived by merging all config files, with later files in the list above having precedence over earlier files. Boolean and string values are overwritten by later config files. Collection values (currently only sets derived from lists) are merged with earlier values.
%
-% \DescribeMacro{cache=\meta{boolean} (default:~true)}
-% \texpkg{minted} works by saving code to a temporary file, highlighting the code via \app{Pygments} and saving the output to another temporary file, and inputting the output into the \LaTeX\ document. This process can become quite slow if there are several chunks of code to highlight. To avoid this, the package provides a |cache| option. This is on by default.
+% The |.latexminted_config| file may be in Python literal format (dicts and lists of strings and bools), JSON, or TOML (requires Python 3.11+). It must be encoded as UTF-8.
+%
+%
+% \subsubsection*{Config settings}
+%
+% \begin{description}
+% \item[{\Verb/security: dict[str, str | bool]/}] These settings relate to |latexminted| security. They can only be set in |.latexminted_config| in the user home directory or in |TEXMFHOME|. They cannot be set in |.latexminted_config| in the current \TeX\ working directory.
+% \begin{description}
+% \item[\Verb|enable_cwd_config: bool = False|] Load a |.latexminted_config| file from the current \TeX\ working directory if it exists. This is disabled by default because the config file can enable |custom_lexers|, which is equivalent to arbitrary code execution.
+% \item[\Verb/file_path_analysis: "resolve" | "string" = "resolve"/] This specifies how |latexminted| determines whether files are readable and writable. Relative file paths are always treated as being relative to the current \TeX\ working directory.
+%
+% With |resolve|, any symlinks in file paths are resolved with the file system before paths are compared with permitted \LaTeX\ read/write locations. Arbitrary relative paths including ``|..|'' are allowed so long as the final location is permitted.
+%
+% With |string|, paths are analyzed as strings in comparing them with permitted \LaTeX\ read/write locations. This follows the approach taken in \TeX's file system security. Paths cannot contain ``|..|'' to access a parent directory, even if the parent directory is a valid location. Because symlinks are not resolved with the file system, it is possible to access locations outside permitted \LaTeX\ read/write locations, if the permitted locations contain symlinks to elsewhere.
+%
+% \item[{\Verb|permitted_pathext_file_extensions: list[str]|}] As a security measure under Windows, \LaTeX\ cannot write files with file extensions in |PATHEXT|, such as |.bat| and |.exe|. This setting allows |latexminted| to write files with the specified file extensions, overriding \LaTeX\ security. File extensions should be in the form ``|.<ext>|'', for example, ``|.bat|''. This setting is used in extracting source code from \LaTeX\ documents and saving it in standalone source files.
+%
+% When these file extensions are enabled for writing, as a security measure |latexminted| will only allow them to be created in \textbf{subdirectories} of the current \TeX\ working directory, |TEXMFOUTPUT|, and |TEXMF_OUTPUT_DIRECTORY|. These files cannot be created directly under the \TeX\ working directory, |TEXMFOUTPUT|, and |TEXMF_OUTPUT_DIRECTORY| because those locations are more likely to be used as a working directory in a shell, and thus writing executable files in those locations would increase the risk of accidental code execution.
+% \end{description}
%
-% The |cache| option creates a directory |_minted-|\meta{jobname} in the document's root directory (this may be customized with the |cachedir| option).\footnote{The directory is actually named using a ``sanitized'' copy of \meta{jobname}, in which spaces and asterisks have been replaced by underscores, and double quotation marks have been stripped. If the file name contains spaces, \texttt{\string\jobname} will contain a quote-wrapped name, except under older versions of MiKTeX which used the name with spaces replaced by asterisks. Using a ``sanitized'' \meta{jobname} is simpler than accomodating the various escaping conventions.} Files of highlighted code are stored in this directory, so that the code will not have to be highlighted again in the future. In most cases, caching will significantly speed up document compilation.
+% \item[{\Verb/custom_lexers: dict[str, str | list[str]]/}] This is a mapping of custom lexer file names to SHA256 hashes. Only custom lexers with these file names and the corresponding hashes are permitted. Lists of hashes are allowed to permit multiple versions of a lexer with a given file name. All other custom lexers are prohibited, because loading custom lexers is equivalent to arbitrary code execution. For example:
+%\begin{verbatim}
+%"custom_lexers": {
+% "mylexer.py": "<sha256>"
+%}
+%\end{verbatim}
+%
+% By default, it is assumed that custom lexer files implement a class |CustomLexer|. This can be modified by including the lexer class name with the file name, separated by a colon, when the lexer is used. For example:
%
-% Cached files that are no longer in use are automatically deleted.\footnote{This depends on the main auxiliary file not being deleted or becoming corrupted. If that happens, you could simply delete the cache directory and start over.}
+%\begin{verbatim}
+%\inputminted{./<path>/mylexer.py:LexerClass}{<file>}
+%\end{verbatim}
%
+% Note that |custom_lexers| only applies to custom lexers in standalone Python files. Lexers that are installed within Python as plugin packages work automatically with Pygments and do not need to be enabled separately. However, in that case it is necessary to install \pypkg{latexminted} and Pygments within a Python installation. When \TeX\ package managers install \pypkg{latexminted} and Pygments within a \TeX\ installation, these are not compatible with Pygments plugin packages.
+% \end{description}
%
-% \DescribeMacro{cachedir=\meta{directory} (def:~\_minted-\meta{jobname})}
-% This allows the directory in which cached files are stored to be specified. Paths should use forward slashes, even under Windows.
%
-% Special characters must be escaped. For example, |cachedir=~/mintedcache| would not work because the tilde |~| would be converted into the \LaTeX\ commands for a non-breaking space, rather than being treated literally. Instead, use |\string~/mintedcache|, |\detokenize{~/mintedcache}|, or an equivalent solution.
+% \subsection{macOS compatibility}
+% \label{sec:configuration:macos}
%
-% Paths may contain spaces, but only if the entire \meta{directory} is wrapped in curly braces |{}|, and only if the spaces are quoted. For example,
+% If you are using \mintedpkg\ with some versions/configurations of macOS, and are using caching with a large number of code blocks ($>256$), you may receive a Python error during syntax highlighting that looks like this:
%\begin{Verbatim}
-%cachedir = {\detokenize{~/"minted cache"/"with spaces"}}
+%OSError: [Errno 24] Too many open files:
%\end{Verbatim}
+% This is due to the way files are handled by the operating system, combined with the way that caching works. To resolve this, you may use one of the following commands to increase the number of files that may be used:
+% \begin{itemize}
+% \item |launchctl limit maxfiles|
+% \item |ulimit -n|
+% \end{itemize}
%
-% Note that the cache directory is relative to the |outputdir|, if an |outputdir| is specified.
%
+% \section{Options}
%
-% \DescribeMacro{finalizecache=\meta{boolean} (default:~false)}
-% In some cases, it may be desirable to use \texpkg{minted} in an environment in which |-shell-escape| is not allowed. A document might be submitted to a publisher or preprint server or used with an online service that does not support |-shell-escape|. This is possible as long as \texpkg{minted} content does not need to be modified.
%
-% Compiling with the |finalizecache| option prepares the cache for use in an environment without |-shell-escape|.\footnote{Ordinarily, cache files are named using an MD5 hash of highlighting settings and highlighted text. \texttt{finalizecache} renames cache files using a \texttt{listing<number>.pygtex} scheme. This makes it simpler to match up document content and cache files, and is also necessary for the XeTeX engine since prior to TeX Live 2016 it lacked the built-in MD5 capabilities that pdfTeX and LuaTeX have.} Once this has been done, the |finalizecache| option may be swapped for the |frozencache| option, which will then use the frozen (static) cache in the future, without needing |-shell-escape|.
%
+% \subsection{Package options}
%
-% \DescribeMacro{fontencoding=\meta{encoding} (default:~\meta{doc~encoding})}
-% Set font encoding used for typesetting code.
+% \DescribeMacro{chapter}
+% To control how \LaTeX{} counts the |listing| floats, you can pass either the
+% |chapter| or |section| option when loading the \mintedpkg\ package.
+% For example, the following will cause listings to be counted by chapter:
%
-% For example, |fontencoding=T1|.
+% \begin{minted}{latex}
+% \usepackage[chapter]{minted}
+% \end{minted}
%
-% \DescribeMacro{frozencache=\meta{boolean} (default:~false)}
-% Use a frozen (static) cache created with the |finalizecache| option. When |frozencache| is on, |-shell-escape| is not needed, and Python and Pygments are not required. In addition, any external files accessed through |\inputminted| are no longer necessary.
%
-% \textbf{This option must be used with care. A document \emph{must} be in final form, as far as \texpkg{minted} is concerned, \emph{before} \texttt{frozencache} is turned on, and the document \emph{must} have been compiled with \texttt{finalizecache}. When this option is on, \texpkg{minted} content cannot be modified, except by editing the cache files directly. Changing any \texpkg{minted} settings that require Pygments or Python is not possible. If \texpkg{minted} content is incorrectly modified after \texttt{frozencache} is turned on, \texpkg{minted} \emph{cannot} detect the modification.}
+% \DescribeMacro{cache=\meta{boolean} (default:~true)}
+% \mintedpkg\ works by saving code to a temporary file, highlighting it with Pygments, and then passing the result back to \LaTeX\ for inclusion in the document. This process can become quite slow if there are several chunks of code to highlight. To avoid this, the package provides a |cache| option. This is on by default.
%
-% If you are using |frozencache|, and want to verify that \texpkg{minted} settings or content have not been modified in an invalid fashion, you can test the cache using the following procedure.
-% \begin{enumerate}
-% \item Obtain a copy of the cache used with |frozencache|.
-% \item Compile the document in an environment that supports |-shell-escape|, with |finalizecache=true| and |frozencache=false|. This essentially regenerates the frozen (static) cache.
-% \item Compare the original cache with the newly generated cache. Under Linux and OS X, you could use |diff|; under Windows, you probably want |fc|. If \texpkg{minted} content and settings have not been modified in an invalid fashion, all files will be identical (assuming that compatible versions of Pygments are used for both caches).
-% \end{enumerate}
+% The |cache| option creates a directory |_minted| in the document's root directory (this may be customized with the |cachedir| option). Files of highlighted code are stored in this directory, so that the code will not have to be highlighted again in the future. Cache files that are no longer used are automatically deleted. In most cases, caching will significantly speed up document compilation.
%
%
-% \DescribeMacro{draft=\meta{boolean} (default:~false)}
-% This uses \texpkg{fancyvrb} alone for all typesetting; \app{Pygments} is not used. This trades syntax highlighting and some other \app{minted} features for faster compiling. Performance should be essentially the same as using \texpkg{fancyvrb} directly; no external temporary files are used. Note that if you are not changing much code between compiles, the difference in performance between caching and draft mode may be minimal. Also note that |draft| settings are typically inherited from the document class.
+% \DescribeMacro{cachedir=\meta{directory} (default:~\_minted)}
+% This allows the directory in which cache files are stored to be customized. Paths should use forward slashes, even under Windows. Special characters must be escaped with |\string| or |\detokenize|.
%
-% Draft mode does not support |autogobble|. Regular |gobble|, |linenos|, and most other options not related to syntax highlighting will still function in draft mode.
+% Note that the cache directory is relative to |-output-directory| or equivalently the |TEXMF_OUTPUT_DIRECTORY| environment variable, if that is set.
%
-% Documents can usually be compiled without shell escape in draft mode. The \texpkg{ifplatform} package may issue a warning about limited functionality due to shell escape being disabled, but this may be ignored in almost all cases. (Shell escape is only really required if you have an unusual system configuration such that the |\ifwindows| macro must fall back to using shell escape to determine the system. See the \texpkg{ifplatform} documentation for more details: \url{http://www.ctan.org/pkg/ifplatform}.)
%
-% If the |cache| option is set, then all existing cache files will be kept while draft mode is on. This allows caching to be used intermitently with draft mode without requiring that the cache be completely recreated each time. Automatic cleanup of cached files will resume as soon as draft mode is turned off. (This assumes that the auxiliary file has not been deleted in the meantime; it contains the cache history and allows automatic cleanup of unused files.)
+% \DescribeMacro{debug=\meta{boolean} (default:~false)}
+% Provide additional information for aid in debugging. This keeps temp files that are used in generating highlighted code and also writes additional information to the log.
%
%
-% \DescribeMacro{final=\meta{boolean} (default:~true)}
-% This is the opposite of |draft|; it is equivalent to |draft=false|. Again, note that |draft| and |final| settings are typically inherited from the document class.
+% \DescribeMacro{frozencache=\meta{boolean} (default:~false)}
+% Use a frozen (static) cache. When |frozencache=true|, Python and Pygments are not required, and any external files accessed through |\inputminted| are no longer necessary. If a cache file is missing, an error will be reported and there will be no attempt to generate the missing cache file.
%
+% When using |frozencache| with |-output-directory|, the |cachedir| package option should be used to specify a full relative path to the cache (for example, |cachedir=./<output_directory>/_minted|).
%
-% \DescribeMacro{inputlanglinenos=\meta{boolean} (default:~false)}
-% This enables |langlinenos| and causes it to apply to |\inputminted| (and custom commands based on it) in addition to |minted| environments and |\mint| commands (and custom environments/commands based on them).
%
-% The regular |langlinenos| option treats all code within a document's |.tex| files as having one set of line numbering per language, and then treats each inputted source file as having its own separate numbering. |inputlanglinenos| defines a single numbering per language, regardless of where code originates.
+% \DescribeMacro{highlightmode=\meta{string} (default:~fastfirst)}
+% Determines when code is highlighted. This only has an effect when |cache=true|.
%
+% The default is |fastfirst|. If a cache for the document exists, then code is highlighted immediately. If a cache for the document does not exist, then typeset a placeholder instead of code and highlight all code at the end of the document. This will require a second compile before code is typeset, but because all code is highlighted at once, there is less overhead and the total time required can be significantly less for documents that include many code snippets.
%
-% \DescribeMacro{kpsewhich=\meta{boolean} (default:~false)}
-% This option uses |kpsewhich| to locate files that are to be highlighted. Some build tools such as |texi2pdf| function by modifying |TEXINPUTS|; in some cases, users may customize |TEXINPUTS| as well. The |kpsewhich| option allows \texpkg{minted} to work with such configurations.
+% The alternatives are |fast| (always highlight at end of document, requiring a second compile) and |immediate| (always highlight immediately, so no second compile is needed).
%
-% This option may add a noticeable amount of overhead on some systems, or with some system configurations.
+% Temporary files with the following file extensions are automatically detected and processed correctly, regardless of |highlightmode|: |.listing|, |.out|, |.outfile|, |.output|, |.temp|, |.tempfile|, |.tmp|, |.verb|, and |.vrb|. For temp files with other file extensions, |highlightmode=immediate| is needed if the files are overwritten or deleted during compilation. |fastfirst| can work in such cases, but it will give an error message about modified or missing files during the first compile, and then will work correctly during subsequent compiles when it switches to |immediate| mode.
%
-% This option does \emph{not} make \texpkg{minted} work with the |-output-directory| and |-aux-directory| command-line options for \LaTeX. For those, see the |outputdir| package option.
+% When code is highlighted at the end of the document with |fast| or |fastfirst|, any error and warning messages will refer to a location at the end of the document rather than the original code location, since highlighting occurred at the end of the document. In this case, messages are supplemented with original \LaTeX\ source file names and line numbers to aid in debugging.
%
%
-% \DescribeMacro{langlinenos=\meta{boolean} (default:~false)}
-% This allows all |minted| environments and |\mint| commands (and custom environments/commands based on them) for a given language to share line numbering when |firstnumber=last|, so that each subsequent command/environment has line numbering that continues from the previous one. This does not apply to |\inputminted| (and custom commands based on it); see the package option |inputlanglinenos| for that.
+% \DescribeMacro{inputlexerlinenos=\meta{boolean} (default:~false)}
+% This enables |lexerlinenos| and causes it to apply to |\inputminted| (and custom commands based on it) in addition to |minted| environments and |\mint| commands (and custom environments/commands based on them).
%
-% \texpkg{minted} uses the \texpkg{fancyvrb} package behind the scenes for the code typesetting. \texpkg{fancyvrb} provides an option |firstnumber| that allows the starting line number of an environment to be specified. For convenience, there is an option |firstnumber=last| that allows line numbering to pick up where it left off. The |langlinenos| option makes |firstnumber| work for each language individually with all |minted| and |\mint| usages. For example, consider the code and output below.
+% The regular |lexerlinenos| option treats all code within a document's |.tex| files as having one set of line numbering per language, and then treats each inputted source file as having its own separate numbering. |inputlexerlinenos| defines a single numbering per lexer, regardless of where code originates.
%
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{minted}[linenos]{python}
-% def f(x):
-% return x**2
-% \end{minted}
%
-% \begin{minted}[linenos]{ruby}
-% def func
-% puts "message"
-% end
-% \end{minted}
+% \DescribeMacro{lexerlinenos=\meta{boolean} (default:~false)}
+% This allows all |minted| environments and |\mint| commands (and custom environments/commands based on them) for a given lexer (language) to share line numbering when |firstnumber=last|, so that each subsequent command/environment has line numbering that continues from the previous one. This does not apply to |\inputminted| (and custom commands based on it); see the package option |inputlexerlinenos| for that.
%
-% \begin{minted}[linenos, firstnumber=last]{python}
-% def g(x):
-% return 2*x
-% \end{minted}
-% \end{VerbatimOut}
-% \inputminted[frame=single, rulecolor=minted@linkcolor]{latex}{minted.doc.out}
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \input{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% \mintedpkg\ uses the \texpkg{fancyvrb} package behind the scenes for the code typesetting. \texpkg{fancyvrb} provides an option |firstnumber| that allows the starting line number of an environment to be specified. For convenience, there is an option |firstnumber=last| that allows line numbering to pick up where it left off. The |lexerlinenos| option makes |firstnumber| work for each lexer (language) individually with all |minted| and |\mint| usages. For example, consider the code and output below.
+%
+% \begin{longexample}[xleftmargin=1em]
+% \begin{minted}[linenos]{python}
+% def f(x):
+% return x**2
+% \end{minted}
+%
+% \begin{minted}[linenos]{ruby}
+% def func
+% puts "message"
+% end
+% \end{minted}
+%
+% \begin{minted}[linenos, firstnumber=last]{python}
+% def g(x):
+% return 2*x
+% \end{minted}
+% \end{longexample}
%
-% Without the |langlinenos| option, the line numbering in the second Python environment would not pick up where the first Python environment left off. Rather, it would pick up with the Ruby line numbering.
+% Without the |lexerlinenos| option, the line numbering in the second Python environment would not pick up where the first Python environment left off. Rather, it would pick up with the Ruby line numbering.
%
%
% \DescribeMacro{newfloat=\meta{boolean} (default:~false)}
% By default, the |listing| environment is created using the \texpkg{float} package. The |newfloat| option creates the environment using \texpkg{newfloat} instead. This provides better integration with the \texpkg{caption} package.
%
%
-% \DescribeMacro{outputdir=\meta{directory} (default:~\meta{none})}
-% The |-output-directory| and |-aux-directory| (MiKTeX) command-line options for \LaTeX\ cause problems for \texpkg{minted}, because the \texpkg{minted} temporary files are saved in |<outputdir>|, but \texpkg{minted} still looks for them in the document root directory. There is no way to access the value of the command-line option so that \texpkg{minted} can automatically look in the right place. But it is possible to allow the output directory to be specified manually as a package option.
-%
-% The output directory should be specified using an absolute path or a path relative to the document root directory. Paths should use forward slashes, even under Windows. Special characters must be escaped, while spaces require quoting and need the entire \meta{directory} to be wrapped in curly braces |{}|. See |cachedir| above for examples of escaping and quoting.
+% \DescribeMacro{placeholder=\meta{boolean} (default:~false)}
+% Instead of typesetting code, insert a placeholder. This is enabled automatically when working with PGF/TikZ externalization.
%
%
% \DescribeMacro{section}
% To control how \LaTeX{} counts the |listing| floats, you can pass either the
-% |section| or |chapter| option when loading the \texpkg{minted} package.
+% |section| or |chapter| option when loading the \mintedpkg\ package.
+%
%
+% \DescribeMacro{verbatim=\meta{boolean} (default:~false)}
+% Instead of highlighting code, attempt to typeset it verbatim without using the |latexminted| Python executable. This is not guaranteed to be an accurate representation of the code, since some features such as |autogobble| require Python.
%
-% \subsection{Macro option usage}
%
-% All \texpkg{minted} highlighting commands accept the same set of options.
+% \subsection{Setting options for commands and environments}
+% \label{sec:options:macro}
+%
+% All \mintedpkg\ highlighting commands and environment accept the same set of options.
% Options are specified as a comma-separated list of |key=value| pairs.
% For example, we can specify that the lines should be numbered:
%
@@ -994,8 +835,6 @@
% \end{example}
%
% An option value of |true| may also be omitted entirely (including the ``|=|'').
-% To customize the display of the line numbers further, override the |\theFancyVerbLine| command.
-% Consult the \texpkg{fancyvrb} documentation for details.
%
% |\mint| accepts the same options:
%
@@ -1006,7 +845,7 @@
% Here's another example: we want to use the \LaTeX{} math mode inside comments:
%
% \begin{example}
-% \begin{minted}[mathescape]{python}
+% \begin{minted}[mathescape]{py}
% # Returns $\sum_{i=1}^{n}i$
% def sum_from_one_to(n):
% r = range(1, n + 1)
@@ -1016,36 +855,38 @@
%
% To make your \LaTeX{} code more readable you might want to indent the code inside a |minted|
% environment.
-% The option |gobble| removes these unnecessary whitespace characters from the output. There is also an |autogobble| option that detects the length of this whitespace automatically.
+% The option |gobble| removes a specified number of characters from the output. There is also an |autogobble| option that automatically removes indentation (dedents code).
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \begin{minted}[gobble=2,
-% showspaces]{python}
+% \begin{minted}[showspaces]{py}
% def boring(args = None):
% pass
-% \end{minted}
+% \end{minted}
%
-% versus
+% versus
%
-% \begin{minted}[showspaces]{python}
+% \begin{minted}[gobble=4,
+% showspaces]{py}
% def boring(args = None):
% pass
-% \end{minted}
+% \end{minted}
% \end{example}
+% \endgroup
%
% \DescribeMacro{\setminted}
-% You may wish to set options for the document as a whole, or for an entire language. This is possible via \cmd\setminted\oarg{language}\marg{key=value,...}. Language-specific options override document-wide options. Individual command and environment options override language-specific options.
+% You may wish to set options for the document as a whole, or for an entire lexer (language). This is possible via \cmd\setminted\oarg{lexer}\marg{key=value,...}. Lexer-specific options override document-wide options. Individual command and environment options override lexer-specific options.
%
% \DescribeMacro{\setmintedinline}
-% You may wish to set separate options for \cmd\mintinline, either for the document as a whole or for a specific language. This is possible via \cmd\setmintedinline. The syntax is
-% \cmd\setmintedinline\oarg{language}\marg{key=value,...}. Language-specific options override document-wide options. Individual command options override language-specific options. All settings specified with \cmd\setmintedinline\ override those set with \cmd\setminted. That is, inline settings always have a higher precedence than general settings.
+% You may wish to set separate options for \cmd\mintinline, either for the document as a whole or for a specific lexer (language). This is possible via \cmd\setmintedinline. The syntax is
+% \cmd\setmintedinline\oarg{lexer}\marg{key=value,...}. Lexer-specific options override document-wide options. Individual command options override lexer-specific options. All settings specified with \cmd\setmintedinline\ override those set with \cmd\setminted. That is, inline settings always have a higher precedence than general settings.
%
-% \subsection{Available options}
+% \subsection{Command and environment options}
%
% \newcommand\appliesto[1]{\textsf{[For #1 only]}}
%
-% Following is a full list of available options.
-% For more detailed option descriptions please refer to the \texpkg{fancyvrb} and \app{Pygments} documentation.
+% Following is a full list of available options. Several options are simply passed on to Pygments, \texpkg{fancyvrb}, and \texpkg{fvextra} for processing. In those cases, more details may be in the documentation for those software packages.
%
% \begin{optionlist}
% \item[autogobble (boolean) (false)]
@@ -1053,52 +894,41 @@
%
% \begin{example}
% ...text.
-% \begin{minted}[autogobble]{python}
+% \begin{minted}[autogobble]{py}
% def f(x):
% return x**2
% \end{minted}
% \end{example}
%
+% When |autogobble| and |gobble| are used together, the effect is cumulative. First |autogobble| removes all common indentation, and then |gobble| is applied.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
% \item[baselinestretch (dimension) (\meta{document default})]
-% Value to use as for baselinestretch inside the listing.
+% Value to use for baselinestretch inside the listing.
%
%
% \item[beameroverlays (boolean) (false)]
% Give the |<| and |>| characters their normal text meanings when used with |escapeinside| and |texcomments|, so that \texpkg{beamer} overlays of the form |\only<1>{...}| will work.
%
%
-% \item[bgcolor (string) (\meta{none})]
-% Background color of the listing. Be aware that this option has several limitations (described below); see ``Framing alternatives'' below for more powerful alternatives.
+% \item[bgcolor (string) (none)]
+% Background color behind commands and environments. This is only a basic, lightweight implementation of background colors using |\colorbox|. For more control of background colors, consider \href{https://ctan.org/pkg/tcolorbox}{\pkg{tcolorbox}} or a similar package, or a custom background color implementation.
+%
+% |bgcolor| prevents line breaks for |\mintinline|. If you want to use \texttt{\string\setminted} to set background colors, and only want background colors on \texttt{minted} and \texttt{\string\mint}, you may use \texttt{\string\setmintedinline\{bgcolor=none\}} to turn off the coloring for inline commands.
%
-% The value of this option must \emph{not} be a color command. Instead, it must be a color \emph{name}, given as a string, of a previously-defined color:
+% The value of this option must \emph{not} be a color command. Instead, it must be a color \emph{name}, given as a string, of a previously-defined color:
%
% \begin{example}
-% \definecolor{bg}{rgb}{0.95,0.95,0.95}
-% \begin{minted}[bgcolor=bg]{php}
-% <?php
-% echo "Hello, $x";
-% ?>
-% \end{minted}
+% \definecolor{bg}{rgb}{.9, .9, .9}
+% \begin{minted}[bgcolor=bg]{php}
+% <?php
+% echo "Hello, $x";
+% ?>
+% \end{minted}
% \end{example}
%
-% This option puts \texttt{minted} environments and \texttt{\string\mint} commands in a \texttt{snugshade*} environment from the \texpkg{framed} package, which supports breaks across pages. (Prior to \texpkg{minted} 2.2, a \texttt{minipage} was used, which prevented page breaks and gave undesirable spacing from surrounding text.) Be aware that if \texttt{bgcolor} is used with \texttt{breaklines=true}, and a line break occurs just before a page break, then text may extend below the colored background in some instances. It is best to use a more advanced framing package in those cases; see ``Framing alternatives'' below.
-%
-% This option puts \texttt{\string\mintinline} inside a \texttt{\string\colorbox}, which \textbf{does not allow line breaks}. If you want to use \texttt{\string\setminted} to set background colors, and only want background colors on \texttt{minted} and \texttt{\string\mint}, you may use \texttt{\string\setmintedinline\{bgcolor=\{\}\}} to turn off the coloring for inline commands.
-%
-% ~
-%
-% \textbf{Framing alternatives}
-%
-% If you want more reliable and advanced options for background colors and framing, you should consider a more advanced framing package such as \texpkg{mdframed} or \texpkg{tcolorbox}. It is easy to add framing to \texpkg{minted} commands and environments using the \texpkg{etoolbox} package, which is automatically loaded by \texpkg{minted}. For example, using \texpkg{mdframed}:
-%\begin{Verbatim}
-%\BeforeBeginEnvironment{minted}{\begin{mdframed}}
-%\AfterEndEnvironment{minted}{\end{mdframed}}
-%\end{Verbatim}
-% Some framing packages also provide built-in commands for such purposes. For example, \texpkg{mdframed} provides a \texttt{\string\surroundwithmdframed} command, which could be used to add a frame to all \texttt{minted} environments:
-%\begin{Verbatim}
-%\surroundwithmdframed{minted}
-%\end{Verbatim}
-% \texpkg{tcolorbox} even provides a built-in framing environment with \texpkg{minted} support. Simply use \texttt{\string\tcbuselibrary\{minted\}} in the preamble, and then put code within a \texttt{tcblisting} environment:
+% As an alternative to |bgcolor|, \texpkg{tcolorbox} provides a built-in framing environment with \mintedpkg\ support. Simply use \texttt{\string\tcbuselibrary\{minted\}} in the preamble, and then put code within a \texttt{tcblisting} environment:
%\begin{Verbatim}
%\begin{tcblisting}{<tcb options>,
% minted language=<language>,
@@ -1110,10 +940,18 @@
% \texpkg{tcolorbox} provides other commands and environments for fine-tuning listing appearance and for working with external code files.
%
%
+% \item[bgcolorpadding (length) (none)]
+% Padding when |bgcolor| is set. For inline commands and for environments based on |BVerbatim|, this sets |\fboxsep| for the |\colorbox| that is used to create the background color. For environments based on |Verbatim|, \texpkg{fancyvrb}'s frame options are used instead, particularly |framesep| and |fillcolor|. See the \texpkg{fvextra} documentation for implementation details.
+%
+%
+% \item[bgcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% |\vphantom| or similar macro such as |\strut| that is inserted at the beginning of each line of code using |bgcolor|. This allows the height of the background for each line of code to be customized. This is primarily useful for customizing the background for |\mintinline| and other inline code. It will typically have no effect on |minted| environments and other block code unless it is set to a size larger than |\strut|.
+%
+%
% \item[breakafter (string) (\meta{none})]
% Break lines after specified characters, not just at spaces, when \texttt{breaklines=true}.
%
-% For example, \texttt{breakafter=-/} would allow breaks after any hyphens or slashes. Special characters given to \texttt{breakafter} should be backslash-escaped (usually \texttt{\hashchar}, \texttt{\{}, \texttt{\}}, \texttt{\%}, \texttt{[}, \texttt{]}; the backslash \texttt{\textbackslash} may be obtained via \texttt{\textbackslash\textbackslash}).
+% For example, \texttt{breakafter=-/} would allow breaks after any hyphens or slashes. Special characters given to \texttt{breakafter} should be backslash-escaped (usually \texttt{\hashchar}, \texttt{\{}, \texttt{\}}, \texttt{\%}, \texttt{[}, \texttt{]}, and the comma \texttt{,}; the backslash \texttt{\textbackslash} may be obtained via \texttt{\textbackslash\textbackslash}).
%
% For an alternative, see \texttt{breakbefore}. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
@@ -1123,15 +961,17 @@
% \end{minted}
% \end{longexample}
%
-% \item[breakafterinrun] (boolean) (true)
-% When \texttt{breakafter} is used, group all adjacent identical characters together, and only allow a break after the last character. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
+% \item[breakafterinrun] (boolean) (false)
+% When \texttt{breakafter} is used, insert breaks within runs of identical characters. If \texttt{false}, treat sequences of identical characters as a unit that cannot contain breaks. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
-% \item[breakaftersymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakafter}.
%
% \item[breakaftersymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakafter}.
%
+% \item[breakaftersymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakafter}.
+%
+%
% \item[breakanywhere (boolean) (false)]
% Break lines anywhere, not just at spaces, when \texttt{breaklines=true}.
%
@@ -1144,19 +984,27 @@
% \end{longexample}
% \endgroup
%
-% \item[breakanywheresymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakanywhere}.
+% \item[breakanywhereinlinestretch (length) (\meta{none})]
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|. This allows the spacing between adjacent non-space characters to stretch, so it should not be used when column alignment is important. For typical line lengths, values between |0.01em| and |0.02em| should be sufficient to provide a cumulative stretch per line that is equal to or greater than the width of one character.
+%
+% This is typically not needed in cases where an overfull |\hbox| only overflows by tiny amount, perhaps a fraction of a pt. In those cases, the overfull |\hbox| could be ignored, |\hfuzz| could be set to 1pt or 2pt to suppress tiny overfull |\hbox| warnings, or |breakanywheresymbolpre| might be redefined to adjust spacing.
+%
%
% \item[breakanywheresymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakanywhere}.
%
+%
+% \item[breakanywheresymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakanywhere}.
+%
+%
% \item[breakautoindent (boolean) (true)]
% When a line is broken, automatically indent the continuation lines to the indentation level of the first line. When \texttt{breakautoindent} and \texttt{breakindent} are used together, the indentations add. This indentation is combined with \texttt{breaksymbolindentleft} to give the total actual left indentation. Does not apply to \texttt{\string\mintinline}.
%
% \item[breakbefore (string) (\meta{none})]
% Break lines before specified characters, not just at spaces, when \texttt{breaklines=true}.
%
-% For example, \texttt{breakbefore=A} would allow breaks before capital A's. Special characters given to \texttt{breakbefore} should be backslash-escaped (usually \texttt{\hashchar}, \texttt{\{}, \texttt{\}}, \texttt{\%}, \texttt{[}, \texttt{]}; the backslash \texttt{\textbackslash} may be obtained via \texttt{\textbackslash\textbackslash}).
+% For example, \texttt{breakbefore=A} would allow breaks before capital A's. Special characters given to \texttt{breakbefore} should be backslash-escaped (usually \texttt{\hashchar}, \texttt{\{}, \texttt{\}}, \texttt{\%}, \texttt{[}, \texttt{]}, and the comma \texttt{,}; the backslash \texttt{\textbackslash} may be obtained via \texttt{\textbackslash\textbackslash}).
%
% For an alternative, see \texttt{breakafter}. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
@@ -1166,25 +1014,32 @@
% \end{minted}
% \end{longexample}
%
-% \item[breakbeforeinrun] (boolean) (true)
-% When \texttt{breakbefore} is used, group all adjacent identical characters together, and only allow a break before the first character. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
+% \item[breakbeforeinrun] (boolean) (false)
+% When \texttt{breakbefore} is used, insert breaks within runs of identical characters. If \texttt{false}, treat sequences of identical characters as a unit that cannot contain breaks. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
-% \item[breakbeforesymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakbefore}.
%
% \item[breakbeforesymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakbefore}.
%
+%
+% \item[breakbeforesymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakbefore}.
+%
+%
% \item[breakbytoken (boolean) (false)]
% Only break lines at locations that are not within tokens; prevent tokens from being split by line breaks. By default, \texttt{breaklines} causes line breaking at the space nearest the margin. While this minimizes the number of line breaks that are necessary, it can be inconvenient if a break occurs in the middle of a string or similar token.
%
-% This is not compatible with \texttt{draft} mode. A complete list of Pygments tokens is available at \url{http://pygments.org/docs/tokens/}. If the breaks provided by \texttt{breakbytoken} occur in unexpected locations, it may indicate a bug or shortcoming in the Pygments lexer for the language.
+% This does not allow line breaks between immediately adjacent tokens; for that, see |breakbytokenanywhere|.
+%
+% A complete list of Pygments tokens is available at \href{https://pygments.org/docs/tokens}{pygments.org/docs/tokens}. If the breaks provided by \texttt{breakbytoken} occur in unexpected locations, it may indicate a bug or shortcoming in the Pygments lexer for the language.
%
% \item[breakbytokenanywhere (boolean) (false)]
% Like \texttt{breakbytoken}, but also allows line breaks between immediately adjacent tokens, not just between tokens that are separated by spaces. Using \texttt{breakbytokenanywhere} with \texttt{breakanywhere} is redundant.
%
% \item[breakindent (dimension) (\meta{breakindentnchars})]
-% When a line is broken, indent the continuation lines by this amount. When |breakautoindent| and |breakindent| are used together, the indentations add. This indentation is combined with |breaksymbolindentleft| to give the total actual left indentation.
+% When a line is broken, indent the continuation lines by this amount.
+%
+% When |breakautoindent| and |breakindent| are used together, the indentations add. This indentation is combined with |breaksymbolindentleft| to give the total actual left indentation.
%
% Does not apply to \texttt{\string\mintinline}.
%
@@ -1194,11 +1049,11 @@
% \item[breaklines (boolean) (false)]
% Automatically break long lines in \texttt{minted} environments and \texttt{\string\mint} commands, and wrap longer lines in \texttt{\string\mintinline}.
%
-% By default, automatic breaks occur at space characters. Use \texttt{breakanywhere} to enable breaking anywhere; use \texttt{breakbytoken}, \texttt{breakbytokenanywhere}, \texttt{breakbefore}, and \texttt{breakafter} for more fine-tuned breaking. Using \texttt{escapeinside} to escape to \LaTeX\ and then insert a manual break is also an option. For example, use \texttt{escapeinside=||}, and then insert \texttt{|\textbackslash\textbackslash|} at the appropriate point. (Note that \texttt{escapeinside} does not work within strings.)
+% By default, automatic breaks occur at space characters. Use \texttt{breakanywhere} to enable breaking anywhere; use \texttt{breakbytoken}, \texttt{breakbytokenanywhere}, \texttt{breakbefore}, and \texttt{breakafter} for more fine-tuned breaking. Using \texttt{escapeinside} to escape to \LaTeX\ and then insert a manual break is also an option. For example, use \Verb{escapeinside=||}, and then insert \Verb{|\\|} at the appropriate point. (Note that \texttt{escapeinside} does not work within strings.)
%
% \begin{example}
% ...text.
-% \begin{minted}[breaklines]{python}
+% \begin{minted}[breaklines]{py}
% def f(x):
% return 'Some text ' + str(x)
% \end{minted}
@@ -1226,27 +1081,15 @@
% \end{longexample}
% \endgroup
%
-% Automatic line breaks are limited with \app{Pygments} styles that use a colored background behind large chunks of text. This coloring is accomplished with \texttt{\string\colorbox}, which cannot break across lines. It may be possible to create an alternative to \texttt{\string\colorbox} that supports line breaks, perhaps with \texpkg{TikZ}, but the author is unaware of a satisfactory solution. The only current alternative is to redefine \texttt{\string\colorbox} so that it does nothing. For example,
+% Automatic line breaks are limited with Pygments styles that use a colored background behind large chunks of text. This coloring is accomplished with \texttt{\string\colorbox}, which cannot break across lines. It may be possible to create an alternative to \texttt{\string\colorbox} that supports line breaks, perhaps with \texpkg{TikZ}, but the author is unaware of a satisfactory solution. The only current alternative is to redefine \texttt{\string\colorbox} so that it does nothing. For example,
%\begin{Verbatim}
%\AtBeginEnvironment{minted}{\renewcommand{\colorbox}[3][]{#3}}
%\end{Verbatim}
% uses the \texpkg{etoolbox} package to redefine \texttt{\string\colorbox} within all \texttt{minted} environments.
%
-% Automatic line breaks will not work with \texttt{showspaces=true} unless you use \texttt{breakanywhere} or \texttt{breakafter=\string\space}.
-%
% \item[breaksymbol (string) (breaksymbolleft)]
% Alias for \texttt{breaksymbolleft}.
%
-% \item[breaksymbolleft (string) (\string\tiny\string\ensuremath\{\string\hookrightarrow\}, {\tiny\ensuremath{\hookrightarrow}})]
-% The symbol used at the beginning (left) of continuation lines when \texttt{breaklines=true}. To have no symbol, simply set \texttt{breaksymbolleft} to an empty string (``\texttt{=,}'' or ``\texttt{=\{\}}''). The symbol is wrapped within curly braces \texttt{\{\}} when used, so there is no danger of formatting commands such as \texttt{\string\tiny} ``escaping.''
-%
-% The \texttt{\string\hookrightarrow} and \texttt{\string\hookleftarrow} may be further customized by the use of the \texttt{\string\rotatebox} command provided by \texpkg{graphicx}. Additional arrow-type symbols that may be useful are available in the \texpkg{dingbat} (\texttt{\string\carriagereturn}) and \texpkg{mnsymbol} (hook and curve arrows) packages, among others.
-%
-% Does not apply to \texttt{\string\mintinline}.
-%
-% \item[breaksymbolright (string) (\meta{none})]
-% The symbol used at breaks (right) when \texttt{breaklines=true}. Does not appear at the end of the very last segment of a broken line.
-%
%
% \item[breaksymbolindent (dimension) (\meta{breaksymbolindentleftnchars})]
% Alias for |breaksymbolindentleft|.
@@ -1270,6 +1113,17 @@
% This allows |breaksymbolindentright| to be specified as an integer number of characters rather than as a dimension (assumes a fixed-width font).
%
%
+% \item[breaksymbolleft (string) (\string\tiny\string\ensuremath\{\string\hookrightarrow\}, {\tiny\ensuremath{\hookrightarrow}})]
+% The symbol used at the beginning (left) of continuation lines when \texttt{breaklines=true}. To have no symbol, simply set \texttt{breaksymbolleft} to an empty string (``\texttt{=,}'' or ``\texttt{=\{\}}''). The symbol is wrapped within curly braces \texttt{\{\}} when used, so there is no danger of formatting commands such as \texttt{\string\tiny} ``escaping.''
+%
+% The \texttt{\string\hookrightarrow} and \texttt{\string\hookleftarrow} may be further customized by the use of the \texttt{\string\rotatebox} command provided by \texpkg{graphicx}. Additional arrow-type symbols that may be useful are available in the \texpkg{dingbat} (\texttt{\string\carriagereturn}) and \texpkg{mnsymbol} (hook and curve arrows) packages, among others.
+%
+% Does not apply to \texttt{\string\mintinline}.
+%
+% \item[breaksymbolright (string) (\meta{none})]
+% The symbol used at breaks (right) when \texttt{breaklines=true}. Does not appear at the end of the very last segment of a broken line.
+%
+%
% \item[breaksymbolsep (dimension) (\meta{breaksymbolsepleftnchars})]
% Alias for |breaksymbolsepleft|.
%
@@ -1291,23 +1145,45 @@
% Allows |breaksymbolsepright| to be specified as an integer number of characters rather than as a dimension (assumes a fixed-width font).
%
%
-% \item[codetagify (list of strings) (\textrm{highlight \texttt{XXX}, \texttt{TODO}, \texttt{BUG}, and \texttt{NOTE}})]
-% Highlight special code tags in comments and docstrings.
+% \item[codetagify (single macro or backslash-escaped string) (XXX,TODO,FIXME,BUG,NOTE)]
+% Highlight special code tags in comments and docstrings.
+%
+% The value must be a list of strings, either comma-delimited or space-delimited. The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
%
% \item[curlyquotes (boolean) (false)]
% By default, the backtick \texttt{\textasciigrave} and typewriter single quotation mark \texttt{\textquotesingle} always appear literally, instead of becoming the left and right curly single quotation marks \texttt{`'}. This option allows these characters to be replaced by the curly quotation marks when that is desirable.
%
-% \item[encoding (string) (\meta{system-specific})]
-% Sets the file encoding that \app{Pygments} expects. See also |outencoding|.
-% \item[escapeinside (string) (\meta{none})]
-% Escape to \LaTeX\ between the two characters specified in \texttt{\string(string\string)}. All code between the two characters will be interpreted as \LaTeX\ and typeset accordingly. This allows for additional formatting. The escape characters need not be identical. Special \LaTeX\ characters must be escaped when they are used as the escape characters (for example, \texttt{escapeinside=\textbackslash\#\textbackslash\%}). Requires \app{Pygments} 2.0+.
%
-% \textbf{Escaping does not work inside strings and comments (for comments, there is \texttt{texcomments}). As of Pygments 2.0.2, this means that escaping is ``fragile'' with some lexers.} Due to the way that Pygments implements \texttt{escapeinside}, any ``escaped'' \LaTeX\ code that resembles a string or comment for the current lexer may break \texttt{escapeinside}. There is a \href{https://bitbucket.org/birkenfeld/pygments-main/issue/1118}{Pygments issue} for this case. Additional details and a limited workaround for some scenarios are available on the \href{https://github.com/gpoore/minted/issues/70#issuecomment-111729930}{\texpkg{minted} GitHub site}.
+% \item[encoding (string) (UTF-8)]
+% File encoding used by |\inputminted| and derived commands when reading files.
+%
+%
+% \item[envname (string) (\textrm{\texttt{Verbatim}, or \texttt{VerbEnv} for inline})]
+% This is the name of the environment that wraps typeset code. By default, it is |Verbatim| in block contexts and |VerbEnv| in inline contexts (|\setminted| versus |\setmintedinline|). This is compatible with \texpkg{fancyvrb}'s |BVerbatim|.
+%
+% There are two requirements for using a custom environment other than |Verbatim| and |BVerbatim| in block contexts:
+% \begin{itemize}
+% \item For |minted| and |\mint| support, the custom environment must be created with \texpkg{fancyvrb}'s |\DefineVerbatimEnvironment| or otherwise defined in a manner compatible with \texpkg{fancyvrb}'s environment implementation conventions.
+% \item For |\inputminted| support, a corresponding |\|\meta{envname}|Insert| command must be defined, using \texpkg{fancyvrb}'s |\CustomVerbatimCommand| or otherwise following \texpkg{fancyvrb} command conventions. For example, using a custom variant of |BVerbatim| involves creating both a custom environment as well as a corresponding variant of |\BVerbatimInput|.
+% \end{itemize}
+%
+% There is currently only limited support for using an environment other than |VerbEnv| in inline contexts. If an environment other than |VerbEnv| is specified, it will be used for highlighted code, but will not be used if code is typeset verbatim instead or if highlighting fails and a verbatim fallback is needed. In both of those cases, |\Verb| is currently used.
+%
+% Note that |envname| is the name of the environment that wraps typeset code, but it is \emph{not} the name of the environment that literally appears in highlighted code output. Highlighted code output uses the |MintedVerbatim| environment by default, and then |MintedVerbatim| is redefined based on |envname|. This allows a single cache file to be used in multiple contexts. The name of the environment that literally appears in highlighted code output can be modified with |literalenvname|, but there should be few if any situations where that is actually necessary.
+%
+%
+% \item[escapeinside (single macro or backslash-escaped two-character string) (\meta{none})]
+% Escape to \LaTeX\ between the two characters specified. All code between the two characters will be interpreted as \LaTeX\ and typeset accordingly. This allows for additional formatting. The escape characters need not be identical.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on). Special \LaTeX\ characters must be escaped when they are used as the escape characters (for example, \texttt{escapeinside=\textbackslash\#\textbackslash\%}).
+%
+% \textbf{Escaping does not work inside strings and comments (for comments, there is \texttt{texcomments}). Escaping is ``fragile'' with some lexers.} Due to the way that Pygments implements \texttt{escapeinside}, any ``escaped'' \LaTeX\ code that resembles a string or comment for the current lexer may break \texttt{escapeinside}. There is a \href{https://github.com/pygments/pygments/issues/825}{Pygments issue} for this case. Additional details and a limited workaround for some scenarios are available on the \href{https://github.com/gpoore/minted/issues/70#issuecomment-111729930}{\mintedpkg\ GitHub site}.
%
% \begingroup ^^A Need to prevent active "|" from causing problems
% \catcode`\|=11
% \begin{example}
-% \begin{minted}[escapeinside=||]{py}
+% \setminted{escapeinside=||}
+% \begin{minted}{py}
% def f(x):
% y = x|\colorbox{green}{**}|2
% return y
@@ -1315,33 +1191,73 @@
% \end{example}
% \endgroup
%
-% \textbf{Note that when math is used inside escapes, any active characters beyond those that are normally active in verbatim can cause problems.} Any package that relies on special active characters in math mode (for example, \texpkg{icomma}) will produce errors along the lines of \texttt{TeX capacity exceeded} and \texttt{\string\leavevmode \string\kern \string\z@}. This may be fixed by modifying \texttt{\string\@noligs}, as described at \url{http://tex.stackexchange.com/questions/223876}.
+% \textbf{Note that when math is used inside escapes, any active characters beyond those that are normally active in verbatim can cause problems.} Any package that relies on special active characters in math mode (for example, \texpkg{icomma}) will produce errors along the lines of ``\texttt{TeX capacity exceeded}'' and ``\texttt{\string\leavevmode \string\kern \string\z@}''. This may be fixed by modifying \texttt{\string\@noligs}, as described at \url{https://tex.stackexchange.com/questions/223876}.
+%
+%
+% \item[extrakeywords (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordsconstant (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordsdeclaration (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordsnamespace (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordspseudo (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordsreserved (string) (\meta{none})]\vspace{-1.2\baselineskip}
+% \item[extrakeywordstype (string) (\meta{none})]
+% Extra keywords for the current lexer. See the \href{https://pygments.org/docs/tokens/#keyword-tokens}{Pygments documentation} for details about the different keyword classes.
+%
+% Values must be lists of extra keywords, either comma-delimited or space-delimited.
+%
+%
% \item[firstline (integer) (1)]
% The first line to be shown.
% All lines before that line are ignored and do not appear in the output.
+%
+%
% \item[firstnumber (auto \| last \| integer) (auto = 1)]
% Line number of the first line.
+%
+%
+% \item [fontencoding (font encoding) (\meta{doc~encoding})]
+% Set font encoding used for typesetting code. For example, |fontencoding=T1|.
+%
+%
% \item[fontfamily (family name) (tt)]
% The font family to use.
% |tt|, |courier| and |helvetica| are pre-defined.
-% \item[fontseries (series name) (auto \textrm{-- the same as the current font})]
+%
+%
+% \item[fontseries (series name) (auto\textrm{ -- the same as the current font})]
% The font series to use.
-% \item[fontsize (font size) (auto \textrm{-- the same as the current font})]
-% The size of the font to use, as a size command, e.g. |\footnotesize|.
-% \item[fontshape (font shape) (auto \textrm{-- the same as the current font})]
+%
+%
+% \item[fontshape (font shape) (auto\textrm{ -- the same as the current font})]
% The font shape to use.
+%
+%
+% \item[fontsize (font size) (auto\textrm{ -- the same as the current font})]
+% The size of the font to use, as a size command, e.g. |\footnotesize|.
+%
+%
% \item[formatcom (command) (\meta{none})]
% A format to execute before printing verbatim text.
% \item[frame (none \| leftline \| topline \| bottomline \| lines \| single) (none)]
-% The type of frame to put around the source code listing.
+% The type of frame to put around the source code listing. For more sophisticated framing, consider \texpkg{tcolorbox}.
% \item[framerule (dimension) (0.4pt)]
% Width of the frame.
% \item[framesep (dimension) (\cmd\fboxsep)]
% Distance between frame and content.
% \item[funcnamehighlighting (boolean) (true)] \appliesto{PHP}
% If |true|, highlights built-in function names.
-% \item[gobble (integer) (0)]
-% Remove the first $n$ characters from each input line.
+% \item[gobble (integer) (0)]
+% Remove the first $n$ characters from each input line.
+%
+% When |autogobble| and |gobble| are used together, the effect is cumulative. First |autogobble| removes all common indentation, and then |gobble| is applied.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
+% \item[gobblefilter (integer) (0)]
+% Remove the first $n$ characters from each input line, using the Pygments gobble filter.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
%
% \item[highlightcolor (string) (LightCyan)]
% Set the color used for |highlightlines|, using a predefined color name from \texpkg{color} or \texpkg{xcolor}, or a color defined via |\definecolor|.
@@ -1353,15 +1269,31 @@
% The highlighting color can be customized with |highlightcolor|.
%
%
-% \item[keywordcase] (string) (lower)
-% Changes capitalization of keywords. Takes |lower|, |upper|, or |capitalize|.
+% \item[ignorelexererrors (boolean) (false)]
+% When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors.
+%
+% \begin{longexample}
+% \begin{minted}{python}
+% variable = !!!
+% \end{minted}
+% \end{longexample}
+%
+% \begin{longexample}
+% \begin{minted}[ignorelexererrors=true]{python}
+% variable = !!!
+% \end{minted}
+% \end{longexample}
+%
+%
+% \item[keywordcase (lower \| upper \| capitalize \| none) (none)]
+% Changes capitalization of keywords.
% \item[label (string) (\emph{empty})]
% Add a label to the top, the bottom or both of the frames around the code.
% See the \texpkg{fancyvrb} documentation for more information and examples.
% \emph{Note:} This does \emph{not} add a |\label| to the current listing.
% To achieve that, use a floating environment (section \ref{sec:float}) instead.
% \item[labelposition (none \| topline \| bottomline \| all) (topline, all, \textrm{or} none)]
-% Position where to print the label (see above; default: |topline| if one label is defined, |all| if two are defined, |none| else).
+% Location for the label. Default: |topline| if one label is defined, |all| if two are defined, |none| otherwise.
% See the \texpkg{fancyvrb} documentation for more information.
% \item[lastline (integer) (\meta{last line of input})]
% The last line to be shown.
@@ -1370,9 +1302,11 @@
% In order to customize the display style of line numbers, you need to redefine the |\theFancyVerbLine| macro:
%
% \begin{example}
-% \renewcommand{\theFancyVerbLine}{\sffamily
-% \textcolor[rgb]{0.5,0.5,1.0}{\scriptsize
-% \oldstylenums{\arabic{FancyVerbLine}}}}
+% \renewcommand{\theFancyVerbLine}{%
+% \sffamily
+% \textcolor[rgb]{0.5,0.5,1.0}{%
+% \scriptsize\oldstylenums{%
+% \arabic{FancyVerbLine}}}}
%
% \begin{minted}[linenos,
% firstnumber=11]{python}
@@ -1384,49 +1318,112 @@
% \end{minted}
% \end{example}
%
-% \item[numberfirstline (boolean) (false)]
-% Always number the first line, regardless of |stepnumber|.
+%
+% \item[listparameters (macro) (\meta{empty})]
+% \texpkg{fancyvrb} option for setting list-related lengths to modify spacing around lines of code. For example, |listparameters=\setlength{\topsep}{0pt}| will remove space before and after a |minted| environment.
+%
+%
+% \item[literalenvname (string) (MintedVerbatim)]
+% This is the name of the environment that literally appears in highlighted code output as a wrapper around the code. It is redefined to be equivalent to |envname|. There should be few if any situations where modifying |literalenvname| rather than |envname| is actually necessary.
+%
+%
+% \item[literatecomment (single macro or backslash-escaped string) (\meta{none})]
+% This is for compatibility with literate programming formats, such as the |.dtx| format commonly used for writing \LaTeX\ packages. If all lines of code begin with \meta{literatecomment}, then \meta{literatecomment} is removed from the beginning of all lines. For example, for |.dtx|, |literatecomment=\%|.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
%
%
-% \item[numbers (left \| right \| both \| none) (none)]
-% Essentially the same as |linenos|, except the side on which the numbers appear may be specified.
% \item[mathescape (boolean) (false)]
% Enable \LaTeX{} math mode inside comments.
% Usage as in package \texpkg{listings}.
% See the note under \texttt{escapeinside} regarding math and ligatures.
+%
+%
% \item[numberblanklines (boolean) (true)]
% Enables or disables numbering of blank lines.
+%
+%
+% \item[numberfirstline (boolean) (false)]
+% Always number the first line, regardless of |stepnumber|.
+%
+%
+% \item[numbers (left \| right \| both \| none) (none)]
+% Essentially the same as |linenos|, except the side on which the numbers appear may be specified.
+%
+%
% \item[numbersep (dimension) (12pt)]
% Gap between numbers and start of line.
% \item[obeytabs (boolean) (false)]
-% Treat tabs as tabs instead of converting them to spaces---that is, expand them to tab stops determined by |tabsize|. \textcolor{DarkRed}{\textbf{While this will correctly expand tabs within leading indentation, usually it will not correctly expand tabs that are preceded by anything other than spaces or other tabs. It should be avoided in those case.}}
+% Treat tabs as tabs instead of converting them to spaces---that is, expand them to tab stops determined by |tabsize|. \textbf{While this will correctly expand tabs within leading indentation, usually it will not correctly expand tabs that are preceded by anything other than spaces or other tabs. It should be avoided in those case.}
%
-% \item[outencoding (string) (\meta{system-specific})]
-% Sets the file encoding that \app{Pygments} uses for highlighted output. Overrides any encoding previously set via |encoding|.
-% \item[python3 (boolean) (false)] \appliesto{PythonConsoleLexer}
+% \item[python3 (boolean) (true)] \appliesto{PythonConsoleLexer}
% Specifies whether Python 3 highlighting is applied.
+%
+%
+% \item[rangeregex (single macro or backslash-escaped string) (\meta{none})]
+% Select code that matches this regular expression.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangeregexmatchnumber (integer) (1)]
+% If there are multiple non-overlapping matches for |rangeregex|, this determines which is used.
+%
+%
+% \item[rangeregexdotall (boolean) (false)]
+% ``|.|'' matches any character including the newline.
+%
+%
+% \item[rangeregexmultiline (boolean) (false)]
+% ``|^|'' and ``|$|'' match at internal newlines, not just at the start/end of the string.
+%
+%
+% \item[rangestartafterstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code starting immediately after this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangestartstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code starting with this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangestopbeforestring (single macro or backslash-escaped string) (\meta{none})]
+% Select code ending immediately before this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item [rangestopstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code ending with this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
% \item[resetmargins (boolean) (false)]
% Resets the left margin inside other environments.
% \item[rulecolor (color command) (black)]
% The color of the frame.
% \item[samepage (boolean) (false)]
% Forces the whole listing to appear on the same page, even if it doesn't fit.
-% \item[ignorelexererrors (boolean) (false)]
-% When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors.
%
-% \begin{longexample}
-% \begin{minted}{python}
-% variable = !!!
-% \end{minted}
-% \end{longexample}
%
-% \begin{longexample}
-% \begin{minted}[ignorelexererrors=true]{python}
-% variable = !!!
-% \end{minted}
-% \end{longexample}
% \item[showspaces (boolean) (false)]
% Enables visible spaces: \verb*/visible spaces/.
+%
+%
% \item[showtabs (boolean) (false)]
% Enables visible tabs---only works in combination with |obeytabs|.
%
@@ -1441,8 +1438,8 @@
%
% \item[startinline (boolean) (false)] \appliesto{PHP}
% Specifies that the code starts in PHP mode, i.e., leading |<?php| is omitted.
-% \item[style] (string) (\meta{default})
-% Sets the stylesheet used by \app{Pygments}.
+%
+%
% \item[stepnumber (integer) (1)]
% Interval at which line numbers appear.
%
@@ -1461,6 +1458,10 @@
% Strip leading and trailing newlines from the input.
%
%
+% \item[style] (string) (\meta{default})
+% Sets the stylesheet used by Pygments.
+%
+%
% \item[tab (macro) ({\rmfamily\texpkg{fancyvrb}'s} \string\FancyVerbTab, \FancyVerbTab)]
% Redefine the visible tab character. Note that this is only used if |showtabs=true|. |\rightarrowfill|, \hbox to 2em{\rightarrowfill}, may be a nice alternative.
%
@@ -1477,7 +1478,7 @@
% \item[texcomments (boolean) (false)]
% Enables \LaTeX{} code inside comments. The newer name for |texcl|. See the note under |escapeinside| regarding math and ligatures.
%
-% As of Pygments 2.0.2, \texttt{texcomments} fails with multiline C/C++ preprocessor directives, and may fail in some other circumstances. This is because preprocessor directives are \href{http://pygments.org/docs/tokens/}{tokenized as \texttt{Comment.Preproc}}, so \texttt{texcomments} causes preprocessor directives to be treated as literal \LaTeX\ code. \href{https://bitbucket.org/birkenfeld/pygments-main/issue/1086/wrong-processing-of-in-c-c-macros-if-is}{An issue has been opened} at the Pygments site; additional details are also available on the \href{https://github.com/gpoore/minted/issues/66}{\texpkg{minted} GitHub site}.
+% \texttt{texcomments} fails with multiline C/C++ preprocessor directives, and may fail in some other circumstances. This is because preprocessor directives are \href{https://pygments.org/docs/tokens/}{tokenized as \texttt{Comment.Preproc}}, so \texttt{texcomments} causes preprocessor directives to be treated as literal \LaTeX\ code. \href{https://github.com/pygments/pygments/issues/793}{An issue has been opened} at the Pygments site; additional details are also available on the \href{https://github.com/gpoore/minted/issues/66}{\mintedpkg\ GitHub site}.
% \item[xleftmargin (dimension) (0)]
% Indentation to add before the listing.
% \item[xrightmargin (dimension) (0)]
@@ -1490,116 +1491,102 @@
%
% \section{Defining shortcuts}
%
-% Large documents with a lot of listings will nonetheless use the same source language and the
-% same set of options for most listings.
-% Always specifying all options is redundant, a lot to type and makes performing changes hard.
-%
-% One option is to use \cmd\setminted, but even then you must still specify the language each time.
-%
-% \texpkg{minted} therefore defines a set of commands that lets you define shortcuts for the highlighting commands.
-% Each shortcut is specific for one programming language.
+% Large documents with many listings may use the same lexer and the same set of options for most listings. \mintedpkg\ therefore defines a set of commands that lets you define shortcuts for the highlighting commands and environments. Each shortcut is specific to one lexer.
%
% \DescribeMacro{\newminted}
% |\newminted| defines a new alias for the |minted| environment:
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \newminted{cpp}{gobble=2,linenos}
-%
-% \begin{cppcode}
-% template <typename T>
-% T id(T value) {
-% return value;
-% }
-% \end{cppcode}
+% \newminted{cpp}{gobble=2,linenos}
+%
+% \begin{cppcode}
+% template <typename T>
+% T id(T value) {
+% return value;
+% }
+% \end{cppcode}
% \end{example}
+% \endgroup
%
% If you want to provide extra options on the fly, or override existing default options, you can do that, too:
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \newminted{cpp}{gobble=2,linenos}
+% \newminted{cpp}{gobble=2,linenos}
%
-% \begin{cppcode*}{linenos=false,
-% frame=single}
-% int const answer = 42;
-% \end{cppcode*}
+% \begin{cppcode}[linenos=false,
+% frame=single]
+% int const answer = 42;
+% \end{cppcode}
% \end{example}
+% \endgroup
%
-% Notice the star ``|*|'' behind the environment name---due to restrictions in \texpkg{fancyvrb}'s handling
-% of options, it is necessary to provide a \emph{separate} environment that accepts options, and the options
-% are \emph{not} optional on the starred version of the environment.
-%
-% The default name of the environment is \meta{language}|code|.
-% If this name clashes with another environment or if you want to choose an own name for another reason, you may
-% do so by specifying it as the first argument: \cmd\newminted\oarg{environment name}\marg{language}\marg{options}.
+% The default name of the environment is \meta{lexer}|code|.
+% If this name clashes with another environment or if you want to choose a different name, you can use an optional argument: \cmd\newminted\oarg{environment name}\marg{lexer}\marg{options}.
%
-% Like normal \texpkg{minted} environments, environments created with |\newminted| may be used within other environment definitions. Since the \texpkg{minted} environments use \texpkg{fancyvrb} internally, any environment based on them must include the \texpkg{fancyvrb} command |\VerbatimEnvironment|. This allows \texpkg{fancyvrb} to determine the name of the environment that is being defined, and correctly find its end. It is best to include this command at the beginning of the definition. For example,
+% Like normal \mintedpkg\ environments, environments created with |\newminted| may be used within other environment definitions. Since the \mintedpkg\ environments use \texpkg{fancyvrb} internally, any environment based on them must include the \texpkg{fancyvrb} command |\VerbatimEnvironment|. This allows \texpkg{fancyvrb} to determine the name of the environment that is being defined, and correctly find its end. It is best to include this command at the beginning of the definition. For example,
%\begin{Verbatim}
%\newminted{cpp}{gobble=2,linenos}
%\newenvironment{env}{\VerbatimEnvironment\begin{cppcode}}{\end{cppcode}}
%\end{Verbatim}
%
% \DescribeMacro{\newmint}
-% The above macro only defines shortcuts for the |minted| environment.
-% The main reason is that the short command form |\mint| often needs different options---at the very least, it
-% will generally not use the |gobble| option.
-% A shortcut for |\mint| is defined using \cmd\newmint\oarg{macro name}\marg{language}\marg{options}.
+% A shortcut for |\mint| is defined using \cmd\newmint\oarg{macro name}\marg{lexer}\marg{options}.
% The arguments and usage are identical to |\newminted|.
-% If no \meta{macro name} is specified, \meta{language} is used.
+% If no \meta{macro name} is specified, \meta{lexer} is used.
%
% \begin{example}
% \newmint{perl}{showspaces}
-%
% \perl/my $foo = $bar;/
% \end{example}
%
%
% \DescribeMacro{\newmintinline}
-% This creates custom versions of \cmd\mintinline. The syntax is the same as that for \cmd\newmint: \cmd\newmintinline\oarg{macro~name}\marg{language}\marg{options}. If a \meta{macro~name} is not specified, then the created macro is called |\|\meta{language}|inline|.
+% This creates custom versions of \cmd\mintinline. The syntax is the same as that for \cmd\newmint: \cmd\newmintinline\oarg{macro~name}\marg{lexer}\marg{options}. If a \meta{macro~name} is not specified, then the created macro is called \meta{lexer}|inline|.
%
% \begin{example}
% \newmintinline{perl}{showspaces}
-%
-% X\perlinline/my $foo = $bar;/X
+% \perlinline/my $foo = $bar;/
% \end{example}
%
% \DescribeMacro{\newmintedfile}
% This creates custom versions of \cmd\inputminted. The syntax is
% \begin{center}
-% \cmd\newmintedfile\oarg{macro~name}\marg{language}\marg{options}
+% \cmd\newmintedfile\oarg{macro~name}\marg{lexer}\marg{options}
% \end{center}
-% If no \meta{macro name} is given, then the macro is called |\|\meta{language}|file|.
+% If no \meta{macro name} is given, then the macro is called \meta{lexer}|file|.
%
%
%
% \section{FAQ and Troubleshooting}
%
-% In some cases, \texpkg{minted} may not give the desired result due to other document settings that it cannot control, or due to limitations in \LaTeX\ or the PDF format. Common issues are described below, with workarounds or solutions. You may also wish to search \href{http://tex.stackexchange.com/}{tex.stackexchange.com} or ask a question there, if you are working with \texpkg{minted} in a non-typical context.
+% In some cases, \mintedpkg\ may not give the desired result due to other document settings that it cannot control, or due to limitations in \LaTeX\ or the PDF format. Common issues are described below, with workarounds or solutions. You may also wish to search \href{https://tex.stackexchange.com/}{tex.stackexchange.com} or ask a question there, if you are working with \mintedpkg\ in a non-typical context.
%
% \begin{itemize}
-% \item \textbf{I can't copy and paste code out of a PDF created with \texpkg{minted}. The line numbers also get copied, or whitespace is lost, or something else happens that makes the code incorrect.} There is no known method that always guarantees correct copy and paste for code in a PDF. This does not depend on whether \texpkg{minted} is used. You may want to search \href{http://tex.stackexchange.com/}{tex.stackexchange.com} to find current approaches (and their limitations). You may also want to consider using \href{https://ctan.org/pkg/attachfile}{\texpkg{attachfile}} or a similar package to bundle source code files as part of your PDF.
-% \item \textbf{There are intermittent ``I can't write on file'' errors.} This can be caused by using \texpkg{minted} in a directory that is synchronized with Dropbox or a similar file syncing program. These programs can try to sync \texpkg{minted}'s temporary files while it still needs to be able to modify them. The solution is to turn off file syncing or use a directory that is not synced.
-% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This is due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{http://www.tug.dk/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \texpkg{lmodern} package is a good place to start. The \texpkg{beramono} and \texpkg{courier} packages may also be good options.
-% \item \textbf{I receive a ``Too many open files'' error under OS X when using caching.} See the note on OS X under Section~\ref{sec:basic:preliminary}.
-% \item \textbf{TeXShop can't find \texttt{pygmentize}.} You may need to create a symlink. See \url{https://tex.stackexchange.com/questions/279214}.
-% \item \textbf{Weird things happen when I use the \texpkg{fancybox} package.} \texpkg{fancybox} conflicts with \texpkg{fancyvrb}, which \texpkg{minted} uses internally. When using \texpkg{fancybox}, make sure that it is loaded before \texpkg{minted} (or before \texpkg{fancyvrb}, if \texpkg{fancyvrb} is not loaded by \texpkg{minted}).
-% \item \textbf{When I use \texpkg{minted} with KOMA-Script document classes, I get warnings about \texttt{\string\float@addtolists}.} \texpkg{minted} uses the \texpkg{float} package to produce floated listings, but this conflicts with the way KOMA-Script does floats. Load the package \texpkg{scrhack} to resolve the conflict. Or use \texpkg{minted}'s |newfloat| package option.
+% \item \textbf{I can't copy and paste code out of a PDF created with \mintedpkg. The line numbers also get copied, or whitespace is lost, or something else happens that makes the code incorrect.} There is no known method that always guarantees correct copy and paste for code in a PDF. This does not depend on whether \mintedpkg\ is used. You may want to search \href{https://tex.stackexchange.com/}{tex.stackexchange.com} to find current approaches (and their limitations). You may also want to consider using \href{https://ctan.org/pkg/attachfile}{\texpkg{attachfile}} or a similar package to bundle source code files as part of your PDF.
+% \item \textbf{There are intermittent ``I can't write on file'' errors.} This can be caused by using \mintedpkg\ in a directory that is synchronized with Dropbox or a similar file syncing program. These programs can try to sync \mintedpkg's temporary files while it still needs to be able to modify them. The solution is to turn off file syncing or use a directory that is not synced.
+% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This is due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{https://www.tug.org/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \texpkg{lmodern} package is a good place to start. The \texpkg{beramono} and \texpkg{courier} packages may also be good options.
+% \item \textbf{I receive a ``Too many open files'' error under macOS when using caching.} See the note on macOS under Section~\ref{sec:configuration:macos}.
+% \item \textbf{Weird things happen when I use the \texpkg{fancybox} package.} \texpkg{fancybox} conflicts with \texpkg{fancyvrb}, which \mintedpkg\ uses internally. When using \texpkg{fancybox}, make sure that it is loaded before \mintedpkg\ (or before \texpkg{fancyvrb}, if \texpkg{fancyvrb} is not loaded by \mintedpkg).
+% \item \textbf{When I use \mintedpkg\ with KOMA-Script document classes, I get warnings about \texttt{\string\float@addtolists}.} \mintedpkg\ uses the \texpkg{float} package to produce floated listings, but this conflicts with the way KOMA-Script does floats. Load the package \texpkg{scrhack} to resolve the conflict. Or use \mintedpkg's |newfloat| package option.
% \item \textbf{Tilde characters \texttt{\string~} are raised, almost like superscripts.}
% This is a font issue. You need a different font encoding, possibly with a different font. Try |\usepackage[T1]{fontenc}|, perhaps with |\usepackage{lmodern}|, or something similar.
%
% \item \textbf{I'm getting errors with math, something like \texttt{TeX capacity exceeded} and \texttt{\string\leavevmode \string\kern \string\z@}.} This is due to ligatures being disabled within verbatim content. See the note under |escapeinside|.
%
-% \item \textbf{With \texttt{mathescape} and the \texpkg{breqn} package (or another special math package), the document never finishes compiling or there are other unexpected results.} Some math packages like \texpkg{breqn} give certain characters like the comma special meanings in math mode. These can conflict with \texpkg{minted}. In the \texpkg{breqn} and comma case, this can be fixed by redefining the comma within |minted| environments:
+% \item \textbf{With \texttt{mathescape} and the \texpkg{breqn} package (or another special math package), the document never finishes compiling or there are other unexpected results.} Some math packages like \texpkg{breqn} give certain characters like the comma special meanings in math mode. These can conflict with \mintedpkg. In the \texpkg{breqn} and comma case, this can be fixed by redefining the comma within |minted| environments:
%\begin{verbatim}
%\AtBeginEnvironment{minted}{\catcode`\,=12\mathcode`\,="613B}
%\end{verbatim}
%Other packages/special characters may need their own modifications.
%
-% \item \textbf{I'm getting errors with Beamer.} Due to how Beamer treats verbatim content, you may need to use either the |fragile| or |fragile=singleslide| options for frames that contain \texpkg{minted} commands and environments. |fragile=singleslide| works best, but it disables overlays. |fragile| works by saving the contents of each frame to a temp file and then reusing them. This approach allows overlays, but will break if you have the string |\end{frame}| at the beginning of a line (for example, in a |minted| environment). To work around that, you can indent the content of the environment (so that the |\end{frame}| is preceded by one or more spaces) and then use the |gobble| or |autogobble| options to remove the indentation.
-%
-% \item \textbf{Tabs are eaten by Beamer.} This is due to \href{https://bitbucket.org/rivanvx/beamer/issue/310/tab-characters-in-listings-lost-when-using}{a bug in Beamer's treatment of verbatim content}. Upgrade Beamer or use the linked patch. Otherwise, try |fragile=singleslide| if you don't need overlays, or consider using \cmd\inputminted\ or converting the tabs into spaces.
+% \item \textbf{I'm getting errors with Beamer.} Due to how Beamer treats verbatim content, you may need to use either the |fragile| or |fragile=singleslide| options for frames that contain \mintedpkg\ commands and environments. |fragile=singleslide| works best, but it disables overlays. |fragile| works by saving the contents of each frame to a temp file and then reusing them. This approach allows overlays, but will break if you have the string |\end{frame}| at the beginning of a line (for example, in a |minted| environment). To work around that, you can indent the content of the environment (so that the |\end{frame}| is preceded by one or more spaces) and then use the |gobble| or |autogobble| options to remove the indentation.
%
-% \item \textbf{I'm trying to create several new \texpkg{minted} commands/environments, and want them all to have the same settings. I'm saving the settings in a macro and then using the macro when defining the commands/environments. But it's failing.}
-% This is due to the way that \texpkg{keyval} works (\texpkg{minted} uses it to manage options). Arguments are not expanded. See \href{http://tex.stackexchange.com/questions/13563/building-keyval-arguments-using-a-macro/13564#13564}{this} and \href{http://tex.stackexchange.com/questions/145363/why-does-includegraphics-varone-vartwo-not-compile/145366#145366}{this} for more information. It is still possible to do what you want; you just need to expand the options macro before passing it to the commands that create the new commands/environments. An example is shown below. The |\expandafter| is the vital part.
+% \item \textbf{I'm trying to create several new \mintedpkg\ commands/environments, and want them all to have the same settings. I'm saving the settings in a macro and then using the macro when defining the commands/environments. But it's failing.}
+% This is due to the way that key-value processing operates. See \href{https://tex.stackexchange.com/questions/13563/building-keyval-arguments-using-a-macro/13564#13564}{this} and \href{https://tex.stackexchange.com/questions/145363/why-does-includegraphics-varone-vartwo-not-compile/145366#145366}{this} for more information. It is still possible to do what you want; you just need to expand the options macro before passing it to the commands that create the new commands/environments. An example is shown below. The |\expandafter| is the vital part.
%\begin{verbatim}
%\def\args{linenos,frame=single,fontsize=\footnotesize,style=bw}
%
@@ -1622,7 +1609,7 @@
%\commandthatdoesnotlikeverbatim{Text \usebox{\mybox}}
%\end{verbatim}
%
-% \item \textbf{Extended characters do not work inside \texpkg{minted} commands and environments, even when the \texpkg{inputenc} package is used.}
+% \item \textbf{Extended characters do not work inside \mintedpkg\ commands and environments, even when the \texpkg{inputenc} package is used.}
% Version 2.0 adds support for extended characters under the pdfTeX engine. But if you need characters that are not supported by \texpkg{inputenc}, you should use the XeTeX or LuaTeX engines instead.
%
% \item \textbf{The \texpkg{polyglossia} package is doing undesirable things to code. (For example, adding extra space around colons in French.)} You may need to put your code within |\begin{english}...\end{english}|. This may done for all |minted| environments using \texpkg{etoolbox} in the preamble:
@@ -1633,29 +1620,23 @@
% \end{verbatim}
%
% \item \begin{sloppypar} \textbf{Tabs are being turned into the character sequence \texttt{\string^\string^I}}.
-% This happens when you use XeLaTeX. You need to use the |-8bit| command-line option so that tabs may be written correctly to temporary files. See \url{http://tex.stackexchange.com/questions/58732/how-to-output-a-tabulation-into-a-file} for more on XeLaTeX's handling of tab characters. \end{sloppypar}
+% This happens when you use XeLaTeX. You need to use the |-8bit| command-line option so that tabs may be written correctly to temporary files. See \url{https://tex.stackexchange.com/questions/58732/how-to-output-a-tabulation-into-a-file} for more on XeLaTeX's handling of tab characters. \end{sloppypar}
%
-% \item \textbf{The \texpkg{caption} package produces an error when \texttt{\string\captionof} and other commands are used in combination with \texpkg{minted}.}
-% Load the \texpkg{caption} package with the option |compatibility=false|. Or better yet, use \texpkg{minted}'s |newfloat| package option, which provides better \texpkg{caption} compatibility.
+% \item \textbf{The \texpkg{caption} package produces an error when \texttt{\string\captionof} and other commands are used in combination with \mintedpkg.}
+% Load the \texpkg{caption} package with the option |compatibility=false|. Or better yet, use \mintedpkg's |newfloat| package option, which provides better \texpkg{caption} compatibility.
%
% \item \textbf{I need a listing environment that supports page breaks.} The built-in listing environment is a standard float; it doesn't support page breaks. You will probably want to define a new environment for long floats. For example,
%\begin{verbatim}
%\usepackage{caption}
%\newenvironment{longlisting}{\captionsetup{type=listing}}{}
%\end{verbatim}
-% With the \texpkg{caption} package, it is best to use \texpkg{minted}'s |newfloat| package option. See \url{http://tex.stackexchange.com/a/53540/10742} for more on |listing| environments with page breaks.
+% With the \texpkg{caption} package, it is best to use \mintedpkg's |newfloat| package option. See \url{https://tex.stackexchange.com/a/53540/10742} for more on |listing| environments with page breaks.
%
-% \item \textbf{I want to use a custom script/executable to access Pygments, rather than |pygmentize|.} Redefine |\MintedPygmentize|:
-%\begin{verbatim}
-%\renewcommand{\MintedPygmentize}{...}
-%\end{verbatim}
+% \item \textbf{I want to use the command-line option \texttt{-output-directory}, or MiKTeX's \texttt{-aux-directory}, but am getting errors.} With TeX Live 2024+, this should work automatically. Otherwise, set the environment variable |TEXMF_OUTPUT_DIRECTORY| to the desired location.
%
-% \item \textbf{I want to use the command-line option \texttt{-output-directory}, or MiKTeX's \texttt{-aux-directory}, but am getting errors.} Use the package option |outputdir| to specify the location of the output directory. Unfortunately, there is no way for \texpkg{minted} to detect the output directory automatically.
-%
-% \item \textbf{I want extended characters in frame labels, but am getting errors.} This can happen with \texpkg{minted} <2.0 and Python 2.7, due to a \href{https://bitbucket.org/birkenfeld/pygments-main/issue/801/python-2-fails-to-detect-terminal-encoding}{terminal encoding issue with Pygments}. It should work with any version of Python with \texpkg{minted} 2.0+, which processes labels internally and does not send them to Python.
% \item \textbf{\texttt{minted} environments have extra vertical space inside \texttt{tabular}.} It is possible to \href{https://github.com/gpoore/minted/issues/82}{create a custom environment} that eliminates the extra space. However, a general solution that behaves as expected in the presence of adjacent text remains to be found.
-% \item \textbf{I'm receiving a warning from \texttt{lineno.sty} that ``Command \texttt{\string\@parboxrestore} has changed.''} This can happen when \texpkg{minted} is loaded after \texpkg{csquotes}. Try loading \texpkg{minted} first. If you receive this message when you are not using \texpkg{csquotes}, you may want to experiment with the order of loading packages and might also open an issue.
-% \item \textbf{I'm using \app{texi2pdf}, and getting ``Cannot stat'' errors from \app{tar}}: This is due to the way that \app{texi2pdf} handles temporary files. \texpkg{minted} automatically cleans up its temporary files, but \app{texi2pdf} assumes that any temporary file that is ever created will still exist at the end of the run, so it tries to access the files that \texpkg{minted} has deleted. It's possible to disable minted's temp file cleanup by adding |\renewcommand{\DeleteFile}[2][]{}| after the |\usepackage{minted}|.
+% \item \textbf{I'm receiving a warning from \texttt{lineno.sty} that ``Command \texttt{\string\@parboxrestore} has changed.''} This can happen when \mintedpkg\ is loaded after \texpkg{csquotes}. Try loading \mintedpkg\ first. If you receive this message when you are not using \texpkg{csquotes}, you may want to experiment with the order of loading packages and might also open an issue.
+% \item \textbf{I'm using \app{texi2pdf}, and getting ``Cannot stat'' errors from \app{tar}}: This is due to the way that \app{texi2pdf} handles temporary files. \mintedpkg\ automatically cleans up its temporary files, but \app{texi2pdf} assumes that any temporary file that is ever created will still exist at the end of the run, so it tries to access the files that \mintedpkg\ has deleted. It's possible to disable minted's temp file cleanup by adding |\renewcommand{\DeleteFile}[2][]{}| after the |\usepackage{minted}|.
% \end{itemize}
%
%
@@ -1665,7 +1646,9 @@
%
% \textbf{Konrad Rudolph:} Special thanks to Philipp Stephani and the rest of the guys from \texttt{comp.text.tex} and \texttt{tex.stackexchange.com}.
%
-% \textbf{Geoffrey Poore:}
+% ~\par
+%
+% \noindent\textbf{Geoffrey Poore:}
% \begin{itemize}
% \item Thanks to Marco Daniel for the code on \url{tex.stackexchange.com} that inspired automatic line breaking.
% \item Thanks to Patrick Vogt for improving TikZ externalization compatibility.
@@ -1673,9 +1656,7 @@
% \item Thanks to \textsf{@jfbu} for suggestions and discussion regarding support for arbitrary Pygments style names (\#210, \#294, \#299, \#317), and for debugging assistance.
% \end{itemize}
%
-% \PrintChangelog
-%
-% \StopEventually{} %\StopEventually{\PrintIndex}
+% \StopEventually{} ^^A\StopEventually{\PrintIndex}
%
%
% \section{Implementation}
@@ -1685,1672 +1666,2350 @@
% \fi
%
%
+%
% \subsection{Required packages}
-% Load required packages. For compatibility reasons, most old functionality should be supported with the original set of packages. More recently added packages, such as |etoolbox| and |xstring|, should only be used for new features when possible. |shellesc| must be loaded before any packages that invoke |\write18|, since it is possible that they haven't yet been patched to work with LuaTeX 0.87+.
-% \begin{macrocode}
-\RequirePackage{keyval}
-\RequirePackage{kvoptions}
-\RequirePackage{fvextra}[2022/11/30]
-\RequirePackage{ifthen}
-\IfFileExists{shellesc.sty}
- {\RequirePackage{shellesc}
- \@ifpackagelater{shellesc}{2016/04/29}
- {}
- {\protected\def\ShellEscape{\immediate\write18 }}}
- {\protected\def\ShellEscape{\immediate\write18 }}
-\RequirePackage{ifplatform}
-\RequirePackage{pdftexcmds}
-\RequirePackage{etoolbox}
-\RequirePackage{xstring}
-\RequirePackage{lineno}
-\RequirePackage{framed}
+%
+%
+% \begin{macrocode}
\RequirePackage{catchfile}
+\RequirePackage{etoolbox}
+\RequirePackage{fvextra}[2024/10/16]
+\RequirePackage{latex2pydata}[2024/10/16]
+\RequirePackage{pdftexcmds}
+\RequirePackage{pgfkeys}
+\RequirePackage{pgfopts}
+\RequirePackage{shellesc}
% \end{macrocode}
%
% Make sure that either |color| or |xcolor| is loaded by the beginning of the document.
% \begin{macrocode}
\AtEndPreamble{%
- \@ifpackageloaded{color}{}{%
- \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
-}
+ \IfPackageLoadedTF{color}%
+ {}%
+ {\IfPackageLoadedTF{xcolor}{}{\RequirePackage{xcolor}}}}
% \end{macrocode}
%
%
%
-% \subsection{Package options}
+% \subsection{Exception handling}
%
-% \begin{macro}{\minted@float@within}
%
-% Define an option that controls the section numbering of the |listing| float.
+% \begin{macro}{\minted@error}
+% \begin{macrocode}
+\def\minted@error#1{\PackageError{minted}{#1}{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\minted@fatalerror}
+% |\batchmode\read -1 to \minted@fatalerror@exitnow| forces an immediate exit with ``\Verb[breaklines]{! Emergency stop [...] cannot \read from terminal in nonstop modes}.''
+% \begin{macrocode}
+\def\minted@fatalerror#1{%
+ \minted@error{#1}%
+ \batchmode\read -1 to \minted@fatalerror@exitnow}
+% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}{\minted@warning}
% \begin{macrocode}
-\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
-\DeclareVoidOption{section}{\def\minted@float@within{section}}
+\def\minted@warning#1{\PackageWarning{minted}{#1}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{newfloat}
%
-% Define an option to use \texpkg{newfloat} rather than \texpkg{float} to create a floated |listing| environment.
+% \subsection{Python executable and minimum supported version}
+%
%
+% \begin{macro}{\MintedExecutable}
+% Name of \mintedpkg\ Python executable.
% \begin{macrocode}
-\DeclareBoolOption{newfloat}
+\edef\MintedExecutable{\detokenize{latexminted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{cache}
-% Define an option that determines whether highlighted content is cached. We use a boolean to keep track of its state.
+% \begin{macro}{\minted@executable@minversion}
% \begin{macrocode}
-\DeclareBoolOption[true]{cache}
+\edef\minted@executable@minversion{\detokenize{0.2.0}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@jobname}
-% At various points, temporary files and directories will need to be named after the main |.tex| file. The typical way to do this is to use |\jobname|. However, if the file name contains spaces, then |\jobname| will contain the name wrapped in quotes (older versions of MiKTeX replace spaces with asterisks instead, and \texttt{XeTeX} apparently \href{http://tex.stackexchange.com/a/93829/10742}{allows double quotes within file names}, in which case names are wrapped in single quotes). While that is perfectly fine for working with \LaTeX\ internally, it causes problems with |\write18|, since quotes will end up in unwanted locations in shell commands. It would be possible to strip the wrapping quotation marks when they are present, and maintain any spaces in the file name. But it is simplest to create a ``sanitized'' version of |\jobname| in which spaces and asterisks are replaced by underscores, and double quotes are stripped. Single quotes are also replaced, since they can cause quoted string errors, or become double quotes in the process of being passed to the system through |\write18|.
+% \begin{macro}{\minted@executable@minmajor,\minted@executable@minminor,\minted@executable@minpatch}
% \begin{macrocode}
-\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{*}{_}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{'}{_}[\minted@jobname]
+\def\minted@executable@setminversioncomponents{%
+ \expandafter\minted@executable@setminversioncomponents@i
+ \minted@executable@minversion\relax}
+\begingroup
+\catcode`\.=12
+\gdef\minted@executable@setminversioncomponents@i#1.#2.#3\relax{%
+ \def\minted@executable@minmajor{#1}%
+ \def\minted@executable@minminor{#2}%
+ \def\minted@executable@minpatch{#3}}
+\endgroup
+\minted@executable@setminversioncomponents
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@cachedir}
-% Set the directory in which cached content is saved. The default uses a |minted-| prefix followed by the sanitized |\minted@jobname|.
+% \begin{macro}{\minted@executable@version}
% \begin{macrocode}
-\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
-\let\minted@cachedir@windows\minted@cachedir
-\define@key{minted}{cachedir}{%
- \@namedef{minted@cachedir}{#1}%
- \StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
+\let\minted@executable@version\relax
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{finalizecache}
-% Define an option that switches the naming of cache files from an MD5-based system to a |listing<number>| scheme. Compiling with this option is a prerequisite to turning on |frozencache|.
+% \begin{macro}{minted@executable@exists}
% \begin{macrocode}
-\DeclareBoolOption{finalizecache}
+\newbool{minted@executable@exists}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{frozencache}
-% Define an option that uses a fixed set of cache files, using |listing<number>| file naming with |\write18| disabled. This is convenient for working with a document in an environment in which |\write18| support is disabled and \texpkg{minted} content does not need to be modified.
+% \begin{macro}{minted@executable@issupported}
% \begin{macrocode}
-\DeclareBoolOption{frozencache}
+\newbool{minted@executable@issupported}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@outputdir}
-% The |-output-directory| command-line option for \LaTeX\ causes problems for \texpkg{minted}, because the \texpkg{minted} temporary files are saved in the output directory, but \texpkg{minted} still looks for them in the document root directory. There is no way to access the value of the command-line option. But it is possible to allow the output directory to be specified manually as a package option. A trailing slash is automatically appended to the |outputdir|, so that it may be directly joined to |cachedir|. This may be redundant if the user-supplied value already ends with a slash, but doubled slashes are ignored under *nix and Windows, so it isn't a problem.
+%
+% \subsection{Timestamp}
+%
+%
+% Timestamp for current compile. This could eventually be simplified to use |\c_sys_timestamp_str| for all engines; that macro is in \texpkg{l3kernel} from 2023-08-29.
+%
+% The |\outputmode=1| is for |dvilualatex| compatibility.
+%
+% The |\detokenize| is to prevent any possibility of |\catcode| issues.
+% \begin{macro}{\minted@timestamp}
% \begin{macrocode}
-\let\minted@outputdir\@empty
-\let\minted@outputdir@windows\@empty
-\define@key{minted}{outputdir}{%
- \@namedef{minted@outputdir}{#1/}%
- \StrSubstitute{\minted@outputdir}{/}%
- {\@backslashchar}[\minted@outputdir@windows]}
+\begingroup
+\catcode`\-=12
+\catcode`\+=12
+\catcode`\:=12
+\def\minted@creationdatetotimestamp#1{%
+ \expandafter\minted@creationdatetotimestamp@i#1-\relax}
+\def\minted@creationdatetotimestamp@i#1:#2-#3\relax{%
+ \minted@creationdatetotimestamp@ii#2+\relax}
+\def\minted@creationdatetotimestamp@ii#1+#2\relax{%
+ #1}
+\expandafter\ifx\csname pdftexversion\endcsname\relax
+\else
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\pdfcreationdate}}
+\fi
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
+\else
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\creationdate}}
+\fi
+\expandafter\ifx\csname directlua\endcsname\relax
+\else
+ \begingroup
+ \outputmode=1
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\pdffeedback creationdate}}%
+ \endgroup
+\fi
+\endgroup
+\ifcsname minted@timestamp\endcsname
+\else
+ \begingroup
+ \newcounter{minted@timestamp@hr}
+ \newcounter{minted@timestamp@min}
+ \setcounter{minted@timestamp@min}{\number\time}
+ \loop\unless\ifnum\value{minted@timestamp@min}<60\relax
+ \addtocounter{minted@timestamp@hr}{1}
+ \addtocounter{minted@timestamp@min}{-60}
+ \repeat
+ \xdef\minted@timestamp{%
+ \the\year
+ \ifnum\month<10 0\fi\the\month
+ \ifnum\day<10 0\fi\the\day
+ \ifnum\value{minted@timestamp@hr}<10 0\fi\theminted@timestamp@hr
+ \ifnum\value{minted@timestamp@min}<10 0\fi\theminted@timestamp@min}
+ \endgroup
+\fi
+\xdef\minted@timestamp{\detokenize\expandafter{\minted@timestamp}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{inputlanglinenos}
-% Enable |langlinenos| and make it apply to |\inputminted|.
+%
+% \subsection{Jobname MD5 and derived file names}
+%
+%
+% \begin{macro}{\MintedJobnameMdfive}
+% MD5 hash of |\jobname|. If |\jobname| contains spaces so that \LaTeX\ inserts wrapping quotes (\href{https://tex.stackexchange.com/a/93829/10742}{single} or double) within |\jobname|, these quotes are stripped, so that only the stem (basename without file extension) of the file path is hashed. This makes it simple to calculate the hash externally outside of \LaTeX.
+%
+% |\MintedJobnameMdfive| is used for creating temp files rather than |\jobname| to avoid shell escaping issues. Under restricted shell escape, shell commands are quoted and escaped by \LaTeX\ itself, so using |\jobname| would work correctly in most cases. However, when full shell escape is enabled, no command escaping is performed by \LaTeX, so \mintedpkg\ would have to quote/escape |\jobname| in a platform-specific manner. (See for example \href{https://github.com/TeX-Live/texlive-source/blob/e47512fcb293e2390b609bce612449d579efc230/texk/web2c/doc/web2c.info#L1573}{\Verb{web2c.info}} and \href{https://github.com/TeX-Live/texlive-source/blob/e47512fcb293e2390b609bce612449d579efc230/texk/web2c/lib/texmfmp.c#L228}{\Verb{texmfmp.c}} in the TeX Live source for shell escape implementation details.) It is simpler to avoid escaping issues altogether, including edge cases in the restricted shell escape scenario, by using an MD5 hash that is guaranteed to consist only of ASCII alphanumeric characters.
% \begin{macrocode}
-\DeclareBoolOption{inputlanglinenos}
+\begingroup
+\catcode`\"=12
+\catcode`\'=12
+\gdef\minted@setjobnamemdfive#1#2\FV@Sentinel{%
+ \ifx#1"\relax
+ \let\minted@next\minted@setjobnamemdfive@dquoted
+ \else\ifx#1'\relax
+ \let\minted@next\minted@setjobnamemdfive@squoted
+ \else
+ \let\minted@next\minted@setjobnamemdfive@uquoted
+ \fi\fi
+ \minted@next#1#2\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@dquoted#1#2\FV@Sentinel{%
+ \minted@setjobnamemdfive@dquoted@i#2"\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@dquoted@i#1"#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}%
+ \else
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \fi\fi}
+\gdef\minted@setjobnamemdfive@squoted#1#2\FV@Sentinel{%
+ \minted@setjobnamemdfive@squoted@i#2'\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@squoted@i#1'#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}%
+ \else
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \fi\fi}
+\gdef\minted@setjobnamemdfive@uquoted#1\FV@Sentinel{%
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}}
+\endgroup
+\expandafter\minted@setjobnamemdfive\jobname\FV@Sentinel
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{kpsewhich}
-% Define an option that invokes |kpsewhich| to locate the files that are to be |pygmentize|d. This isn't done by default to avoid the extra overhead, but can be useful with some build tools such as |texi2pdf| that rely on modifying |TEXINPUTS|.
+%
+% \begin{macro}{\MintedCacheIndexFilename}
+% Index file in cache. Used to detect whether cache exists.
% \begin{macrocode}
-\DeclareBoolOption{kpsewhich}
+\edef\MintedCacheIndexFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.index.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{langlinenos}
-% Define an option that makes all |minted| environments and |\mint| commands for a given language share cumulative line numbering (if |firstnumber=last|).
+% \begin{macro}{\MintedConfigFilename}
+% File containing config info such as Python executable version. Written by the Python side, read by the \LaTeX\ side, and then immediately deleted.
% \begin{macrocode}
-\DeclareBoolOption{langlinenos}
+\edef\MintedConfigFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.config.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{draft}
-% Define an option that allows \texpkg{fancyvrb} to do all typesetting directly, without using \app{Pygments}. This trades syntax highlighting for speed. Note that in many cases, the difference in performance between caching and draft mode will be minimal. Also note that draft settings may be inherited from the document class.
+% \begin{macro}{\MintedDataFilename}
+% Temp file for data. Written by the \LaTeX\ side, read by the Python side. Frequently overwritten, so only cleaned up at the end of the compile.
% \begin{macrocode}
-\DeclareBoolOption{draft}
+\edef\MintedDataFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.data.minted}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{final}
-% Define a |final| option that is the opposite of |draft|, since many packages do this.
+%
+% \begin{macro}{\MintedErrlogFilename}
+% Log file created when the Python side encounters an unexpected error that it is not designed to report to the \LaTeX\ side.
% \begin{macrocode}
-\DeclareComplementaryOption{final}{draft}
+\edef\MintedErrlogFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.errlog.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% Process package options. Proceed with everything that immediately relies upon them. If PGF/Ti\textit{k}Z externalization is in use, switch on |draft| mode and turn off |cache|. Externalization involves compiling the \emph{entire} document; all parts not related to the current image are ``silently thrown away.'' \texpkg{minted} needs to cooperate with that by not writing any temp files or creating any directories. Two checks are done for externalization. The first, using |\tikzifexternalizing|, works if externalization is set before \texpkg{minted} is loaded. The second, using |\tikzexternalrealjob|, works if externalization is set after \texpkg{minted} is loaded.
-%
+% \begin{macro}{\MintedMessageFilename}
+% Messages from the Python side to the LaTeX side. Deleted immediately after reading.
% \begin{macrocode}
-\ProcessKeyvalOptions*
-\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{\RequirePackage{float}}
-\ifcsname tikzifexternalizing\endcsname
- \tikzifexternalizing{\minted@drafttrue\minted@cachefalse}{}
-\else
- \ifcsname tikzexternalrealjob\endcsname
- \minted@drafttrue
- \minted@cachefalse
- \else
- \fi
-\fi
-\ifthenelse{\boolean{minted@finalizecache}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Options "finalizecache" and "frozencache" are not compatible}%
- {Options "finalizecache" and "frozencache" are not compatible}}%
- {}}%
- {}
-\ifthenelse{\boolean{minted@cache}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {}%
- {\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}}%
- {}
+\edef\MintedMessageFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.message.minted}}
% \end{macrocode}
+% \end{macro}
%
%
%
-% \subsection{Input, caching, and temp files}
+% \subsection{Package options}
+%
%
-% \begin{macro}{\minted@input}
-% We need a wrapper for |\input|. In most cases, |\input| failure will be due to attempts to use |\inputminted| with files that don't exist, but we also want to give informative error messages when |outputdir| is needed or incompatible build tools are used.
+% \begin{macro}{\minted@pgfopts}
% \begin{macrocode}
-\newcommand{\minted@input}[1]{%
- \IfFileExists{#1}%
- {\input{#1}}%
- {\PackageError{minted}{Missing Pygments output; \string\inputminted\space
- was^^Jprobably given a file that does not exist--otherwise, you may need
- ^^Jthe outputdir package option, or may be using an incompatible build
- tool,^^Jor may be using frozencache with a missing file}%
- {This could be caused by using -output-directory or -aux-directory
- ^^Jwithout setting minted's outputdir, or by using a build tool that
- ^^Jchanges paths in ways minted cannot detect,
- ^^Jor using frozencache with a missing file.}}%
-}
+\def\minted@pgfopts#1{%
+ \pgfkeys{/minted/pkg/.cd,#1}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@infile}
-% Define a default name for files of highlighted content that are brought it. Caching will redefine this. We start out with the default, non-caching value.
+% \subsubsection{Package option definitions}
+%
+%
+% \begin{macro}{\minted@float@within}
+% Control the section numbering of the |listing| float.
% \begin{macrocode}
-\newcommand{\minted@infile}{\minted@jobname.out.pyg}
+\minted@pgfopts{
+ chapter/.code=\def\minted@float@within{chapter},
+ chapter/.value forbidden,
+ section/.code=\def\minted@float@within{section},
+ section/.value forbidden,
+}
% \end{macrocode}
% \end{macro}
%
%
-% We need a way to track the cache files that are created, and delete those that are not in use. This is accomplished by creating a comma-delimited list of cache files and saving this list to the |.aux| file so that it may be accessed on subsequent runs. During subsequent runs, this list is compared against the cache files that are actually used, and unused files are deleted. Cache file names are created with MD5 hashes of highlighting settings and file contents, with a |.pygtex| extension, so they never contain commas. Thus comma-delimiting the list of file names doesn't introduce a potential for errors.
-%
-% \begin{macro}{\minted@cachelist}
-% This is a list of the current cache files.
+% \begin{macro}{minted@newfloat}
+% Use \texpkg{newfloat} rather than \texpkg{float} to create a floating |listing| environment.
% \begin{macrocode}
-\newcommand{\minted@cachelist}{}
+\newbool{minted@newfloat}
+\minted@pgfopts{
+ newfloat/.is if=minted@newfloat,
+}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@addcachefile}
-% This adds a file to the list of cache files. It also creates a macro involving the hash, so that the current usage of the hash can be easily checked by seeing if the macro exists. The list of cache files must be created with built-in linebreaks, so that when it is written to the |.aux| file, it won't all be on one line and thereby risk buffer errors.
+%
+% \begin{macro}{minted@debug}
+% Keep temp files for aid in debugging.
% \begin{macrocode}
-\newcommand{\minted@addcachefile}[1]{%
- \expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
- \minted@cachelist,^^J%
- \space\space#1}%
- \expandafter\gdef\csname minted@cached@#1\endcsname{}%
+\newbool{minted@debug}
+\minted@pgfopts{
+ debug/.is if=minted@debug,
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@savecachelist}
-%
-% We need to be able to save the list of cache files to the |.aux| file, so that we can reload it on the next run.
+% \begin{macro}{minted@cache}
+% Determine whether highlighted content is cached.
% \begin{macrocode}
-\newcommand{\minted@savecachelist}{%
- \ifdefempty{\minted@cachelist}{}{%
- \immediate\write\@mainaux{%
- \string\gdef\string\minted@oldcachelist\string{%
- \minted@cachelist\string}}%
- }%
+\newbool{minted@cache}
+\booltrue{minted@cache}
+\minted@pgfopts{
+ cache/.is if=minted@cache,
}
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{\minted@cleancache}
-% Clean up old cache files that are no longer in use.
+% \begin{macro}{\minted@cachedir}
+% Set the directory in which cached content is saved.
% \begin{macrocode}
-\newcommand{\minted@cleancache}{%
- \ifcsname minted@oldcachelist\endcsname
- \def\do##1{%
- \ifthenelse{\equal{##1}{}}{}{%
- \ifcsname minted@cached@##1\endcsname\else
- \DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
- \fi
- }%
- }%
- \expandafter\docsvlist\expandafter{\minted@oldcachelist}%
- \else
- \fi
+\edef\minted@cachedir{\detokenize{_minted}}
+\minted@pgfopts{
+ cachedir/.estore in=\minted@cachedir,
}
% \end{macrocode}
% \end{macro}
%
-%
-% At the end of the document, save the list of cache files and clean the cache. If in draft mode, don't clean up the cache and save the old cache file list for next time. This allows draft mode to be switched on and off without requiring that all highlighted content be regenerated. The saving and cleaning operations may be called without conditionals, since their definitions already contain all necessary checks for their correct operation.
+% \begin{macro}{minted@frozencache}
+% When a cache file is missing, raise an error instead of attempting to update the cache. This is intended for editing a document with a pre-existing cache in an environment in which |\ShellEscape| support is disabled or the \mintedpkg\ executable is not available.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\AtEndDocument{%
- \ifcsname minted@oldcachelist\endcsname
- \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
- \minted@savecachelist
- \fi}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\AtEndDocument{%
- \ifcsname minted@oldcachelist\endcsname
- \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
- \minted@savecachelist
- \fi}}%
- {\AtEndDocument{%
- \minted@savecachelist
- \minted@cleancache}}}%
+\newbool{minted@frozencache}
+\minted@pgfopts{
+ frozencache/.is if=minted@frozencache,
+}
% \end{macrocode}
+% \end{macro}
%
%
+% \begin{macro}{minted@lexerlinenos}
+% Make all |minted| environments and |\mint| commands for a given lexer share cumulative line numbering (if |firstnumber=last|). |langlinenos| is for backward compatility with \mintedpkg\ v2.
+% \begin{macrocode}
+\newbool{minted@lexerlinenos}
+\minted@pgfopts{
+ lexerlinenos/.is if=minted@lexerlinenos,
+ langlinenos/.is if=minted@lexerlinenos,
+}
+% \end{macrocode}
+% \end{macro}
%
-% \subsection{OS interaction}
-%
-% We need system-dependent macros for communicating with the ``outside world.''
+% \begin{macro}{minted@inputlexerlinenos}
+% Enable |lexerlinenos| and make it apply to |\inputminted|. |inputlanglinenos| is for backward compatility with \mintedpkg\ v2.
+% \begin{macrocode}
+\newbool{minted@inputlexerlinenos}
+\minted@pgfopts{
+ inputlexerlinenos/.is if=minted@inputlexerlinenos,
+ inputlanglinenos/.is if=minted@inputlexerlinenos,
+}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\DeleteFile}
%
-% Delete a file. Define conditionally in case an equivalent macro has already been defined.
+% \begin{macro}{minted@placeholder,\minted@insertplaceholder}
+% Cause all commands and environments to insert a placeholder rather than typesetting code. This functionality is primarily intended for use with PGF/Ti\textit{k}Z externalization, when all non-PGF/Ti\textit{k}Z features should be disabled.
+% \begin{macrocode}
+\newbool{minted@placeholder}
+\minted@pgfopts{
+ placeholder/.is if=minted@placeholder,
+}
+\gdef\minted@insertplaceholder{%
+ \ifbool{minted@isinline}%
+ {\begingroup
+ \fvset{extra=true}\Verb[formatcom=\color{red}\bfseries]{<MINTED>}%
+ \endgroup}%
+ {\begingroup
+ \par\noindent
+ \fvset{extra=true}\Verb[formatcom=\color{red}\bfseries]{<MINTED>}%
+ \par
+ \endgroup}}%
+% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}{minted@verbatim}
+% Typeset all code verbatim using \texpkg{fancyvrb}; do not use Python at all.
% \begin{macrocode}
-\ifwindows
- \providecommand{\DeleteFile}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\IfFileExists{#2}{\ShellEscape{del #2}}{}}%
- {\IfFileExists{#1/#2}{%
- \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
- \ShellEscape{del \minted@windir\@backslashchar #2}}{}}}
-\else
- \providecommand{\DeleteFile}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\IfFileExists{#2}{\ShellEscape{rm #2}}{}}%
- {\IfFileExists{#1/#2}{\ShellEscape{rm #1/#2}}{}}}
-\fi
+\newbool{minted@verbatim}
+\minted@pgfopts{
+ verbatim/.is if=minted@verbatim,
+}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\ProvideDirectory}
+% \begin{macro}{\minted@highlightmode@init,\minted@fasthighlightmode@checkstart,\minted@fasthighlightmode@checkend}
+% Determine whether highlighting is performed immediately or at the end of the compile. Immediately means more overhead during the compile, but no second compile is required. Highlighting at the end of the compile means a second compile is required, but also makes highlighing much faster since there is only a single |\ShellEscape|.
%
-% We need to be able to create a directory, if it doesn't already exist. This is primarily for storing cached highlighted content.
+% |\minted@highlightmode@init| is invoked within |\minted@detectconfig| if the Python executable is available and enabled. For the |fastfirst| case, |\minted@highlightmode@init| requires the |\minted@cachepath| that is set within |\minted@detectconfig|.
%
+% |\minted@fasthighlightmode@checkend| is invoked at the end of the document within |\minted@clean|.
% \begin{macrocode}
-\ifwindows
- \newcommand{\ProvideDirectory}[1]{%
- \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
- \ShellEscape{if not exist \minted@windir\space mkdir \minted@windir}}
-\else
- \newcommand{\ProvideDirectory}[1]{%
- \ShellEscape{mkdir -p #1}}
-\fi
+\newbool{minted@fasthighlightmode}
+\newbool{minted@fasthighlightmode@open}
+\minted@pgfopts{
+ highlightmode/.is choice,
+ highlightmode/fast/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@fast,
+ highlightmode/fastfirst/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@fastfirst,
+ highlightmode/immediate/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@immediate,
+}
+\def\minted@highlightmode@init@fast{%
+ \global\booltrue{minted@fasthighlightmode}}
+\def\minted@highlightmode@init@fastfirst{%
+ \IfFileExists{\minted@cachepath\MintedCacheIndexFilename}%
+ {\global\boolfalse{minted@fasthighlightmode}}
+ {\global\booltrue{minted@fasthighlightmode}}}
+\def\minted@highlightmode@init@immediate{%
+ \global\boolfalse{minted@fasthighlightmode}}
+\let\minted@highlightmode@init\minted@highlightmode@init@fastfirst
+\def\minted@fasthighlightmode@checkstart{%
+ \ifbool{minted@fasthighlightmode}%
+ {\pydatawritelistopen
+ \global\booltrue{minted@fasthighlightmode@open}}%
+ {}%
+ \global\let\minted@fasthighlightmode@checkstart\relax}
+\def\minted@fasthighlightmode@checkend{%
+ \ifbool{minted@fasthighlightmode@open}%
+ {\pydatasetfilename{\MintedDataFilename}%
+ \pydatawritelistclose
+ \pydataclosefilename{\MintedDataFilename}%
+ \global\boolfalse{minted@fasthighlightmode@open}%
+ \global\boolfalse{minted@fasthighlightmode}%
+ \begingroup
+ \minted@exec@batch
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \global\boolfalse{minted@canexec}}%
+ {}%
+ \global\let\minted@fasthighlightmode@checkend\relax}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\TestAppExists}
%
-% Determine whether a given application exists.
+% \subsubsection{Package options that are no longer supported or deprecated}
%
-% Usage is a bit roundabout, but has been retained for backward compatibility. At some point, it may be worth replacing this with something using \verb`\@@input"|<command>"`. That would require MiKTeX users to |--enable-pipes|, however, which would make things a little more complicated. If Windows XP compatibility is ever no longer required, the |where| command could be used instead of the approach for Windows.
%
-% To test whether an application exists, use the following code:
+% \paragraph{finalizecache}
+% Old, no longer needed option from \mintedpkg\ v2.
+% \begin{macrocode}
+\minted@pgfopts{
+ finalizecache/.code=\minted@error{%
+ Package option "finalizecache" is no longer needed with minted v3+},
+}
+% \end{macrocode}
%
-% \begin{Verbatim}
-%\TestAppExists{appname}
-%\ifthenelse{\boolean{AppExists}}{app exists}{app doesn't exist}
-% \end{Verbatim}
%
+% \paragraph{kpsewhich}
+% Old, no longer needed option from \mintedpkg\ v2.
% \begin{macrocode}
-\newboolean{AppExists}
-\newread\minted@appexistsfile
-\newcommand{\TestAppExists}[1]{%
- \ifwindows
+\minted@pgfopts{
+ kpsewhich/.code=\minted@error{%
+ Package option "kpsewhich" is no longer needed with minted v3+},
+}
% \end{macrocode}
%
-% On Windows, we need to use path expansion and write the result to a file.
-% If the application doesn't exist, the file will be empty (except for a newline);
-% otherwise, it will contain the full path of the application.
%
+% \paragraph{outputdir}
+% Old, no longer needed option from \mintedpkg\ v2.
+%
+% The empty |\minted@outputdir| is for backward compatibility with packages that depend on \mintedpkg\ v2 internals.
% \begin{macrocode}
- \DeleteFile{\minted@jobname.aex}%
- \ShellEscape{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
- do set > \minted@jobname.aex <nul: /p
- x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}%
- %$ <- balance syntax highlighting
- \immediate\openin\minted@appexistsfile\minted@jobname.aex
- \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}%
- \endlinechar=-1\relax
- \readline\minted@appexistsfile to \minted@apppathifexists
- \endlinechar=\@tmp@cr
- \ifthenelse{\equal{\minted@apppathifexists}{}}%
- {\AppExistsfalse}%
- {\AppExiststrue}%
- \immediate\closein\minted@appexistsfile
- \DeleteFile{\minted@jobname.aex}%
- \else
+\minted@pgfopts{
+ outputdir/.code=\minted@error{%
+ Package option "outputdir" is no longer needed with minted v3+;
+ the output directory is automatically detected for TeX Live 2024+,
+ and the environment variable \detokenize{TEXMF_OUTPUT_DIRECTORY}
+ can be set manually in other cases},
+}
+\def\minted@outputdir{}
% \end{macrocode}
%
-% On Unix-like systems, we do a straightforward |which| test and create a file upon success, whose existence we can then check.
%
+% \paragraph{draft}
+% Old, no longer supported option from \mintedpkg\ v2. Improvements in caching combined with the new \mintedpkg\ v3 package options |placeholder| and |verbatim| provide better alternatives.
% \begin{macrocode}
- \ShellEscape{command -v #1 && touch \minted@jobname.aex}%
- \IfFileExists{\minted@jobname.aex}%
- {\AppExiststrue
- \DeleteFile{\minted@jobname.aex}}%
- {\AppExistsfalse}%
- \fi
+\minted@pgfopts{
+ draft/.code=\minted@warning{%
+ Package option "draft" no longer has any effect with minted v3+},
}
% \end{macrocode}
-% \end{macro}
%
+% \paragraph{final}
+% Old, no longer supported option from \mintedpkg\ v2. Improvements in caching combined with the new \mintedpkg\ v3 package options |placeholder| and |verbatim| provide better alternatives.
+% \begin{macrocode}
+\minted@pgfopts{
+ final/.code=\minted@warning{%
+ Package option "final" no longer has any effect with minted v3+},
+}
+% \end{macrocode}
%
-% \subsection{Option processing}
%
-% Option processing is somewhat involved, because we want to be able to define options at various levels of hierarchy: individual command/environment, language, global (document). And once those options are defined, we need to go through the hierarchy in a defined order of precedence to determine which option to apply. As if that wasn't complicated enough, some options need to be sent to Pygments, some need to be sent to \texpkg{fancyvrb}, and some need to be processed within \texpkg{minted} itself.
%
-% To begin with, we need macros for storing lists of options that will later be passed via the command line to Pygments (|optlistcl|). These are defined at the global (|cl@g|), language (|cl@lang|), and command or environment (|cl@cmd|) levels, so that settings can be specified at various levels of hierarchy. The language macro is actually a placeholder. The current language will be tracked using |\minted@lang|. Each individual language will create a |\minted@optlistcl@lang|\meta{language} macro. |\minted@optlistcl@lang| may be |\let| to this macro as convenient; otherwise, the general language macro merely serves as a placeholder.
+% \subsubsection{Package option processing}
%
-% The global- and language-level lists also have an |inline| (|i|) variant. This allows different settings to be applied in inline settings. An inline variant is not needed at the command/environment level, since at that level settings would not be present unless they were supposed to be applied.
%
-% \begin{macro}{\minted@optlistcl@g}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@g}{}
+\ProcessPgfOptions{/minted/pkg}
+\ifbool{minted@cache}{}{\minted@pgfopts{highlightmode=immediate,cachedir=,}}
+\ifbool{minted@newfloat}{\RequirePackage{newfloat}}{\RequirePackage{float}}
+\ifcsname tikzifexternalizing\endcsname
+ \ifx\tikzifexternalizing\relax
+ \else
+ \tikzifexternalizing{\booltrue{minted@placeholder}}{}
+ \fi
+\fi
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@g@i}
+%
+%
+% \subsection{Util}
+%
+%
+% \begin{macro}{\minted@styleprefix}
+% Prefix for generating Pygments style names.
% \begin{macrocode}
-\newcommand{\minted@optlistcl@g@i}{}
+\def\minted@styleprefix{PYG}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@lang}
+%
+% \begin{macro}{minted@tmpcnt}
+% Temp counter.
% \begin{macrocode}
-\let\minted@lang\@empty
+\newcounter{minted@tmpcnt}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@lang}
+%
+% \begin{macro}{\minted@forcsvlist}
+% Wrapper for \texpkg{etoolbox} |\forcsvlist|. Syntax: |\minted@forcsvlist|\marg{handler}\marg{listmacro}.
% \begin{macrocode}
-\newcommand{\minted@optlistcl@lang}{}
+\def\minted@forcsvlist#1#2{%
+ \if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \expandafter\minted@forcsvlist@exp
+ \else
+ \expandafter\minted@forcsvlist@i
+ \fi
+ {#2}{#1}}
+\def\minted@forcsvlist@exp#1#2{%
+ \expandafter\minted@forcsvlist@i\expandafter{#1}{#2}}
+\def\minted@forcsvlist@i#1#2{%
+ \forcsvlist{#2}{#1}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@lang@i}
+%
+% \begin{macro}{\minted@apptoprovidecs}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@lang@i}{}
+\def\minted@apptoprovidecs#1#2{%
+ \ifcsname#1\endcsname
+ \else
+ \expandafter\def\csname#1\endcsname{}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname#1\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp#2}%
+ \expandafter\let\csname#1\endcsname\minted@tmp}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@cmd}
+%
+% \begin{macro}{\minted@const@pgfkeysnovalue}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@cmd}{}
+\def\minted@const@pgfkeysnovalue{\pgfkeysnovalue}
% \end{macrocode}
% \end{macro}
%
-% We also need macros for storing lists of options that will later be passed to \texpkg{fancyvrb} (|optlistfv|). As before, these exist at the global (|fv@g|), language (|fv@lang|), and command or environment (|fv@cmd|) levels. Pygments accepts \texpkg{fancyvrb} options, but in almost all cases, these options may be applied via |\fvset| rather than via running Pygments. This is significantly more efficient when caching is turned on, since it allows formatting changes to be applied without having to re-highlight the code.
%
-% \begin{macro}{\minted@optlistfv@g}
+% \begin{macro}{\minted@ensureatletter}
% \begin{macrocode}
-\newcommand{\minted@optlistfv@g}{}
+\def\minted@ensureatletter#1{%
+ \edef\minted@tmpatcat{\the\catcode`\@}%
+ \catcode`\@=11\relax
+ #1%
+ \catcode`\@=\minted@tmpatcat\relax}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@g@i}
+%
+%
+% \subsubsection{Check whether a string matches the regex \Verb{^[0-9A-Za-z_-]+$}}
+%
+% These macros are used to restrict possible names of highlighting styles on the \LaTeX\ side.
+%
+% \begin{macro}{\minted@is\detokenize{<char_category><codepoint_decimal>}}
+% Create macros used in determining whether a given character is part of a specified set of characters.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@g@i}{}
+% [0-9]
+\setcounter{minted@tmpcnt}{48}
+\loop\unless\ifnum\value{minted@tmpcnt}>57\relax
+ \expandafter\let\csname minted@isnum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [A-Z]
+\setcounter{minted@tmpcnt}{65}
+\loop\unless\ifnum\value{minted@tmpcnt}>90\relax
+ \expandafter\let\csname minted@isalpha\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [a-z]
+\setcounter{minted@tmpcnt}{97}
+\loop\unless\ifnum\value{minted@tmpcnt}>122\relax
+ \expandafter\let\csname minted@isalpha\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [-]
+\expandafter\let\csname minted@isalphanumhyphenunderscore45\endcsname\relax
+% [_]
+\expandafter\let\csname minted@isalphanumhyphenunderscore95\endcsname\relax
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@lang}
+%
+% \begin{macro}{\minted@ifalphanumhyphenunderscore}
+% Conditional based on whether first argument is ASCII alphanumeric, hyphen, or underscore.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@lang}{}
+\def\minted@ifalphanumhyphenunderscore#1#2#3{%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#3}%
+ {\expandafter\minted@ifalphanumhyphenunderscore@i\detokenize{#1}\FV@Sentinel{#2}{#3}}}
+\def\minted@ifalphanumhyphenunderscore@i#1#2\FV@Sentinel{%
+ \if\relax#2\relax
+ \expandafter\minted@ifalphanumhyphenunderscore@iii
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@ii
+ \fi
+ #1#2\FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@ii#1#2\FV@Sentinel{%
+ \ifcsname minted@isalphanumhyphenunderscore\number`#1\endcsname
+ \expandafter\minted@ifalphanumhyphenunderscore@i
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@false
+ \fi
+ #2\FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@iii#1\FV@Sentinel{%
+ \ifcsname minted@isalphanumhyphenunderscore\number`#1\endcsname
+ \expandafter\minted@ifalphanumhyphenunderscore@true
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@false
+ \fi
+ \FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@true\FV@Sentinel#1#2{#1}
+\def\minted@ifalphanumhyphenunderscore@false#1\FV@Sentinel#2#3{#3}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@lang@i}
+%
+%
+% \subsection{State}
+%
+%
+% \begin{macro}{\minted@lexer}
+% Current lexer (language). Should be the empty macro if not set; it is used within |\ifcsname...\endcsname| to check for the existence of lexer-specific settings macros.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@lang@i}{}
+\let\minted@lexer\@empty
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@cmd}
+%
+% \begin{macro}{minted@isinline}
+% Whether in command or environment.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@cmd}{}
+\newbool{minted@isinline}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@configlang}
%
-% We need a way to check whether a language has had all its option list macros created. This generally occurs in a context where |\minted@lang| needs to be set. So we create a macro that does both at once. If the language list macros do not exist, we create them globally to simplify future operations.
+% \begin{macro}{minted@tmpcodebufferlength}
+% Length of buffer in which code to be highlighted is stored.
% \begin{macrocode}
-\newcommand{\minted@configlang}[1]{%
- \def\minted@lang{#1}%
- \ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
- \expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
- \fi
- \ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
- \expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
- \fi
- \ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
- \expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
- \fi
- \ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
- \expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
- \fi
-}
+\def\minted@tmpcodebufferlength{0}
% \end{macrocode}
% \end{macro}
%
-% We need a way to define options in bulk at the global, language, and command levels. How this is done will depend on the type of option. The keys created are grouped by level: |minted@opt@g|, |minted@opt@lang|, and |minted@opt@cmd|, plus inline variants. The language-level key groupings use |\minted@lang| internally, so we don't need to duplicate the internals for different languages. The key groupings are independent of whether a given option relates to Pygments, \texpkg{fancyvrb}, etc. Organization by level is the only thing that is important here, since keys are applied in a hierarchical fashion. Key values are stored in macros of the form |\minted@opt@|\meta{level}|:|\meta{key}, so that they may be retrieved later. In practice, these key macros will generally not be used directly (hence the colon in the name). Rather, the hierarchy of macros will be traversed until an existing macro is found.
%
-% \begin{macro}{\minted@def@optcl}
%
-% Define a generic option that will be passed to the command line. Options are given in a |{key}{value}| format that is transformed into |key=value| and then passed to |pygmentize|. This allows |value| to be easily stored in a separate macro for later access. This is useful, for example, in separately accessing the value of |encoding| for performing |autogobble|.
+% \subsection{Calling \mintedpkg\ executable}
%
-% If a |key| option is specified without |=value|, the default is assumed. Options are automatically created at all levels.
%
-% Options are added to the option lists in such a way that they will be detokenized. This is necessary since they will ultimately be used in |\write18|.
+% \begin{macro}{minted@canexec}
% \begin{macrocode}
-\ifwindows
- \newcommand{\minted@optlistcl@quote}[2]{%
- \detokenize{#1="#2"}}
-\else
- \newcommand{\minted@optlistcl@quote}[2]{%
- \detokenize{#1='#2'}}
+\newbool{minted@canexec}
+\booltrue{minted@canexec}
+\ifnum\csname c_sys_shell_escape_int\endcsname=0\relax
+ \boolfalse{minted@canexec}
\fi
-\newcommand{\minted@addto@optlistcl}[3]{%
- \expandafter\def\expandafter#1\expandafter{#1%
- \minted@optlistcl@quote{#2}{#3}\space}}
-\newcommand{\minted@addto@optlistcl@lang}[3]{%
- \expandafter\let\expandafter\minted@tmp\csname #1\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
- \minted@optlistcl@quote{#2}{#3}\space}%
- \expandafter\let\csname #1\endcsname\minted@tmp}
-\newcommand{\minted@def@optcl}[4][]{%
- \ifthenelse{\equal{#1}{}}%
- {\define@key{minted@opt@g}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}{%
- \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}{%
- \minted@addto@optlistcl@lang{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
- {\define@key{minted@opt@g}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}[#1]{%
- \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}[#1]{%
- \minted@addto@optlistcl@lang{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
-}
+\ifbool{minted@frozencache}{\boolfalse{minted@canexec}}{}
+\ifbool{minted@placeholder}{\boolfalse{minted@canexec}}{}
+\ifbool{minted@verbatim}{\boolfalse{minted@canexec}}{}
% \end{macrocode}
% \end{macro}
%
-% This covers the typical options that must be passed to Pygments. But some, particularly |escapeinside|, need more work. Since their arguments may contain escaped characters, expansion rather than detokenization is needed. Getting expansion to work as desired in a |\write18| context requires the redefinition of some characters.
%
-% \begin{macro}{\minted@escape}
-% Process (possibly backslash-escaped) characters into a form that will work correctly under expansion for use in |\write18|. This assumes that only punctuation characters are escaped. (Otherwise, trailing spaces from |\detokenize| would need to be stripped.) This is currently only used for |escapeinside|.
+% \begin{macro}{\minted@ShellEscapeMaybeMessages,\minted@ShellEscapeNoMessages}
% \begin{macrocode}
-\begingroup
-\catcode`\!=0
-!catcode`!\=12
-!gdef!minted@escape#1{%
- !expandafter!minted@escape@i!detokenize{#1}\!FV@Sentinel}
-!gdef!minted@escape@i#1\#2!FV@Sentinel{%
- !if!relax!detokenize{#2}!relax
- !expandafter!@firstoftwo
- !else
- !expandafter!@secondoftwo
- !fi
- {#1!minted@escape@end\#2!FV@Sentinel}
- {#1!minted@escape@esc\#2!FV@Sentinel}}
-!gdef!minted@escape@end#1!FV@Sentinel{}
-!gdef!minted@escape@esc\#1#2!FV@Sentinel{%
- #1!minted@escape@i#2!FV@Sentinel}
-!endgroup
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\minted@def@optcl@e}
-% Now to define options that involve backslash escapes.
-% \begin{macrocode}
-\newcommand{\minted@addto@optlistcl@e}[3]{%
- \edef\minted@tmp{\minted@escape{#3}}%
- \expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@tmp}{#1}{#2}}
-\def\minted@addto@optlistcl@e@i#1#2#3{%
- \expandafter\def\expandafter#2\expandafter{#2\minted@optlistcl@quote{#3}{#1}\space}}
-\newcommand{\minted@addto@optlistcl@lang@e}[3]{%
- \edef\minted@tmp{\minted@escape{#3}}%
- \expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@tmp}{#1}{#2}}
-\def\minted@addto@optlistcl@lang@e@i#1#2#3{%
- \expandafter\let\expandafter\minted@tmp\csname #2\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp\minted@optlistcl@quote{#3}{#1}\space}%
- \expandafter\let\csname #2\endcsname\minted@tmp}
-\newcommand{\minted@def@optcl@e}[4][]{%
- \ifthenelse{\equal{#1}{}}%
- {\define@key{minted@opt@g}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}{%
- \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}{%
- \minted@addto@optlistcl@lang@e{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
- {\define@key{minted@opt@g}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}[#1]{%
- \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}[#1]{%
- \minted@addto@optlistcl@lang@e{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
-}
+\def\minted@ShellEscapeMaybeMessages#1{%
+ \ifbool{minted@debug}%
+ {\immediate\typeout{%
+ minted debug: shell escape at
+ \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno: #1}}%
+ {}%
+ \let\minted@exec@warning\relax
+ \let\minted@exec@error\relax
+ \ifbool{minted@canexec}{\ShellEscape{#1}\minted@inputexecmessages}{}}
+\def\minted@ShellEscapeNoMessages#1{%
+ \ifbool{minted@debug}%
+ {\immediate\typeout{%
+ minted debug: shell escape at
+ \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno: #1}}%
+ {}%
+ \ifbool{minted@canexec}{\ShellEscape{#1}}{}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@def@optcl@switch}
-%
-% Define a switch or boolean option that is passed to Pygments, which is |true| when no value is specified.
-% \begin{macrocode}
-\newcommand{\minted@def@optcl@switch}[2]{%
- \define@booleankey{minted@opt@g}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{True}%
- \@namedef{minted@opt@g:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{False}%
- \@namedef{minted@opt@g:#1}{false}}
- \define@booleankey{minted@opt@g@i}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{True}%
- \@namedef{minted@opt@g@i:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{False}%
- \@namedef{minted@opt@g@i:#1}{false}}
- \define@booleankey{minted@opt@lang}{#1}%
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{True}%
- \@namedef{minted@opt@lang\minted@lang:#1}{true}}
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{False}%
- \@namedef{minted@opt@lang\minted@lang:#1}{false}}
- \define@booleankey{minted@opt@lang@i}{#1}%
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{True}%
- \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{False}%
- \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
- \define@booleankey{minted@opt@cmd}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{True}%
- \@namedef{minted@opt@cmd:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{False}%
- \@namedef{minted@opt@cmd:#1}{false}}
-}
+% \begin{macro}{\minted@execarg@debug,\minted@execarg@timestamp}
+% \begin{macrocode}
+\def\minted@execarg@debug{%
+ \ifbool{minted@debug}{\detokenize{ --debug }}{}}
+\def\minted@execarg@timestamp{%
+ \detokenize{ --timestamp }\minted@timestamp\detokenize{ }}
% \end{macrocode}
% \end{macro}
%
-% Now that all the machinery for Pygments options is in place, we can move on to \texpkg{fancyvrb} options.
-%
-% \begin{macro}{\minted@def@optfv}
-%
-% Define \texpkg{fancyvrb} options. The |#1={##1}| is needed because any braces enclosing the argument (|##1|) will be stripped during the initial capture, and they need to be reinserted before \texpkg{fancyvrb} gets the argument and sends it through another \texpkg{keyval} processing step. If there were no braces initially, adding them here doesn't hurt, since they are just stripped off again during processing.
-% \begin{macrocode}
-\newcommand{\minted@def@optfv}[1]{%
- \define@key{minted@opt@g}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1={##1},}%
- \@namedef{minted@opt@g:#1}{##1}}
- \define@key{minted@opt@g@i}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1={##1},}%
- \@namedef{minted@opt@g@i:#1}{##1}}
- \define@key{minted@opt@lang}{#1}{%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1={##1},}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{##1}}
- \define@key{minted@opt@lang@i}{#1}{%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1={##1},}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
- \define@key{minted@opt@cmd}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1={##1},}%
- \@namedef{minted@opt@cmd:#1}{##1}}
-}
+%
+% \begin{macro}{\minted@inputexecmessages}
+% If temp file containing warning and/or error messages exists, |\input| and then delete.
+% \begin{macrocode}
+\def\minted@inputexecmessages{%
+ \minted@ensureatletter{\InputIfFileExists{\MintedMessageFilename}{}{}}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@def@optfv@switch}
-%
-% Define \texpkg{fancyvrb} boolean options.
-% \begin{macrocode}
-\newcommand{\minted@def@optfv@switch}[1]{%
- \define@booleankey{minted@opt@g}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1=true,}%
- \@namedef{minted@opt@g:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1=false,}%
- \@namedef{minted@opt@g:#1}{false}}%
- \define@booleankey{minted@opt@g@i}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1=true,}%
- \@namedef{minted@opt@g@i:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1=false,}%
- \@namedef{minted@opt@g@i:#1}{false}}%
- \define@booleankey{minted@opt@lang}{#1}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=true,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{true}}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=false,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{false}}%
- \define@booleankey{minted@opt@lang@i}{#1}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=true,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=false,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
- \define@booleankey{minted@opt@cmd}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1=true,}%
- \@namedef{minted@opt@cmd:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1=false,}%
- \@namedef{minted@opt@cmd:#1}{false}}%
-}
+%
+% \begin{macro}{\minted@exec@batch}
+% Run in batch mode, for |highlightmode=fast| or |highlightmode=fastfirst|.
+% \begin{macrocode}
+\def\minted@exec@batch{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ batch }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{minted@isinline}
-% In resolving value precedence when actually using values, we need a way to determine whether we are in an inline context. This is accomplished via a boolean that is set at the beginning of inline commands.
+%
+% \begin{macro}{\minted@exec@config}
+% Detect configuration.
% \begin{macrocode}
-\newboolean{minted@isinline}
+\def\minted@exec@config{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ config }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@fvset}
-% We will need a way to actually use the lists of stored \texpkg{fancyvrb} options later on.
+%
+% \begin{macro}{\minted@exec@styledef}
+% Create style definition.
% \begin{macrocode}
-\newcommand{\minted@fvset}{%
- \expandafter\fvset\expandafter{\minted@optlistfv@g}%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\fvset\expandafter{\minted@tmp}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\fvset\expandafter{\minted@tmp}}%
- {}%
- \expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
-}
+\def\minted@exec@styledef{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ styledef }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% We need a way to define \texpkg{minted}-specific options at multiple levels of hierarchy, as well as a way to retrieve these options. As with previous types of options, values are stored in macros of the form |\minted@opt@|\meta{level}|:|\meta{key}, since they are not meant to be accessed directly.
-%
-% The order of precedence is |cmd|, |lang@i|, |g@i|, |lang|, |g|. A value specified at the command or environment level should override other settings. In its absence, a value specified for an inline command should override other settings, if we are indeed in an inline context. Otherwise, language settings take precedence over global settings.
+% \begin{macro}{\minted@exec@highlight}
+% Highlight code.
+% \begin{macrocode}
+\def\minted@exec@highlight{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ highlight }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
+% \end{macrocode}
+% \end{macro}
%
-% Before actually creating the option-definition macro, we need a few helper macros.
%
+% \begin{macro}{\minted@exec@clean}
+% Clean temp files and cache.
+% \begin{macrocode}
+\def\minted@exec@clean{%
+ \minted@ShellEscapeNoMessages{%
+ \MintedExecutable
+ \detokenize{ clean }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\minted@def@opt}
-% Finally, on to the actual option definitions for \texpkg{minted}-specific options.
%
-% Usage: |\minted@def@opt[|\meta{initial global value}|]{|\meta{key name}|}|
+% \begin{macro}{\minted@exec@cleanconfig}
+% Clean config temp file.
% \begin{macrocode}
-\newcommand{\minted@def@opt}[2][]{%
- \define@key{minted@opt@g}{#2}{%
- \@namedef{minted@opt@g:#2}{##1}}
- \define@key{minted@opt@g@i}{#2}{%
- \@namedef{minted@opt@g@i:#2}{##1}}
- \define@key{minted@opt@lang}{#2}{%
- \@namedef{minted@opt@lang\minted@lang:#2}{##1}}
- \define@key{minted@opt@lang@i}{#2}{%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
- \define@key{minted@opt@cmd}{#2}{%
- \@namedef{minted@opt@cmd:#2}{##1}}
- \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{#1}}%
-}
+\def\minted@exec@cleanconfig{%
+ \minted@ShellEscapeNoMessages{%
+ \MintedExecutable
+ \detokenize{ cleanconfig }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@def@opt@detok}
-% Same as |\minted@def@opt|, except wraps argument in |\detokenize|.
+% \begin{macro}{\minted@exec@cleantemp}
+% Clean all temp files.
% \begin{macrocode}
-\newcommand{\minted@def@opt@detok}[2][]{%
- \define@key{minted@opt@g}{#2}{%
- \@namedef{minted@opt@g:#2}{\detokenize{##1}}}
- \define@key{minted@opt@g@i}{#2}{%
- \@namedef{minted@opt@g@i:#2}{\detokenize{##1}}}
- \define@key{minted@opt@lang}{#2}{%
- \@namedef{minted@opt@lang\minted@lang:#2}{\detokenize{##1}}}
- \define@key{minted@opt@lang@i}{#2}{%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{\detokenize{##1}}}
- \define@key{minted@opt@cmd}{#2}{%
- \@namedef{minted@opt@cmd:#2}{\detokenize{##1}}}
- \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{\detokenize{#1}}}%
-}
+\def\minted@exec@cleantemp{%
+ \minted@ShellEscapeNoMessages{%
+ \MintedExecutable
+ \detokenize{ cleantemp }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@generate@PYGdef}
-% Generate Pygments style definition with |pygmentize| if a cached version does not exist. Load the style definition into a global macro of the form
-%\begin{Verbatim}
-%\csname minted@PYGdef@<style>\endcsname
-%\end{Verbatim}
-% to allow styles to be defined later. Styles are not defined globally to avoid naming issues with style names that involve punctuation characters and numbers. Rather, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix.
%
-% Takes a single argument that is the detokenized style name. Getting the detokenized style name here requires expansion (|\edef|) in an earlier macro (currently |\minted@defstyle|) to convert |\minted@get@opt{style}{default}| into detokenized text. The |style| value is always wrapped in |\detokenize| when it is set, so expansion automatically detokenizes. Detokenization can be important depending on active characters. Expansion is important because the style name may be used with caching, so we need the current value retrieved by |\minted@get@opt|, not the value at the end of the document when cache data is written to the |.aux| file.
+% \subsection{Config detection}
%
-% Certain catcodes are required when loading Pygments style definitions from file.
-% \begin{itemize}
-% \item At sign |@| would be handled by the |\makeatletter| within the Pygments style definition if the style was brought in via |\input|, but |\makeatletter| doesn't affect tokenization with the |catchfile| approach.
-% \item Percent |%| may not have its normal meaning within a |.dtx| file.
-% \item Backtick |`| is made active by some \texpkg{babel} package options, such as |magyar|.
-% \end{itemize}
-% |\endlinechar| also requires special handling to avoid introducing unwanted spaces.
%
-% The |\ifx\PYG\relax| tests detect outdated style definitions from \texpkg{minted} <2.6 and replace them when possible, and also detect missing styles. Before \texpkg{minted} 2.6, style macros used a |\PYG<style>| prefix and were defined globally. Starting with 2.6, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix. This allows more robust treatment of style names that involve punctuation characters and numbers.
+% \begin{macro}{minted@diddetectconfig}
% \begin{macrocode}
-\newcommand{\minted@generate@PYGdef}[1]{%
- \ifthenelse{\boolean{minted@cache}}%
- {\def\minted@pygstylepath@load{\minted@outputdir\minted@cachedir/#1.pygstyle}%
- \minted@addcachefile{#1.pygstyle}}%
- {\def\minted@pygstylepath@load{\minted@outputdir\minted@jobname.out.pyg}}%
- \ifwindows
- \StrSubstitute{\minted@pygstylepath@load}%
- {/}{\@backslashchar}[\minted@pygstylepath@save]%
- \else
- \let\minted@pygstylepath@save\minted@pygstylepath@load
- \fi
- \IfFileExists{\minted@pygstylepath@load}%
+\newbool{minted@diddetectconfig}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\minted@detectconfig}
+% When the |minted@canexec| bool is defined, it is set false if shell escape is completely disabled (|\c_sys_shell_escape_int=0|) or if execution is disabled by package options, so those cases don't need to be handled here.
+%
+% If the Python executable is available, then it will create a |.config.minted| file to notify the \LaTeX\ side that it is present. This |.config.minted| file always contains a timestamp |\minted@executable@timestamp|, which is the timestamp passed directly to the executable as a command-line option. If the executable finds a |.data.minted| file, then it will extract the timestamp from this file and save it in the |.config.minted| file as |\minted@config@timestamp|; otherwise, the |.config.minted| file will not contain this timestamp. When \LaTeX\ loads the |.config.minted| file, the presence and values of these timestamps is used to determine whether the executable is present and whether the correct |.data.minted| file was located by the executable.
+% \begin{macrocode}
+\def\minted@detectconfig{%
+ \ifbool{minted@diddetectconfig}%
{}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Missing style definition for #1 with frozencache}%
- {Missing style definition for #1 with frozencache}}%
- {}%
- \ShellEscape{%
- \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
- > \minted@pygstylepath@save
- }%
- }%
- \CatchFileDef{\minted@tmp@filecontents}%
- {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
- \begingroup
- \let\PYG\relax
- \minted@tmp@filecontents
- \ifx\PYG\relax
- \ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Outdated style definition for #1 with frozencache}%
- {Outdated style definition for #1 with frozencache}}%
- {}%
- \ShellEscape{%
- \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
- > \minted@pygstylepath@save
- }%
- \CatchFileDef{\minted@tmp@filecontents}%
- {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
- \minted@tmp@filecontents
- \ifx\PYG\relax
- \PackageError{minted}%
- {Cannot find Pygments style #1}%
- {Cannot find Pygments style #1}%
+ {\ifx\minted@cachedir\@empty
+ \gdef\minted@cachepath{}%
+ \else
+ \gdef\minted@cachepath{\minted@cachedir/}%
\fi
+ \ifbool{minted@canexec}{\begingroup\minted@detectconfig@i\endgroup}{}%
+ \global\booltrue{minted@diddetectconfig}}}
+\def\minted@detectconfig@i{%
+ \global\let\minted@executable@version\relax
+ \global\let\minted@executable@timestamp\relax
+ \global\let\minted@config@timestamp\relax
+ \pydatasetfilename{\MintedDataFilename}%
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{config}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{cachedir}{\minted@cachedir}%
+ \pydatawritedictclose
+ \pydataclosefilename{\MintedDataFilename}%
+ \minted@exec@config
+ \minted@ensureatletter{%
+ \InputIfFileExists{\MintedConfigFilename}{}{}}%
+ \ifx\minted@executable@version\relax
+ \expandafter\minted@detectconfig@noexecutableorerrlog
+ \else
+ \expandafter\minted@detectconfig@ii
+ \fi}
+\def\minted@detectconfig@noexecutableorerrlog{%
+ \global\boolfalse{minted@canexec}%
+ \ifnum\csname c_sys_shell_escape_int\endcsname=1\relax
+ \expandafter\@firstofttwo
+ \else
+ \expandafter\@secondoftwo
\fi
- \expandafter\global\expandafter\let\csname minted@PYGdef@#1\endcsname%
- \minted@tmp@filecontents
- \endgroup
-}
+ {\IfFileExists{\MintedErrlogFilename}%
+ {\minted@error{minted v3+ executable is not installed or is not added to PATH,
+ or there was an unexpected error (check "\MintedErrlogFilename")}}%
+ {\minted@error{minted v3+ executable is not installed or is not added to PATH}}}%
+ {\IfFileExists{\MintedErrlogFilename}%
+ {\minted@error{minted v3+ executable is not installed, is not added to PATH,
+ or is not permitted with restricted shell escape;
+ or there was an unexpected error (check "\MintedErrlogFilename")}}%
+ {\minted@error{minted v3+ executable is not installed, is not added to PATH,
+ or is not permitted with restricted shell escape}}}}
+\def\minted@detectconfig@ii{%
+ \ifx\minted@timestamp\minted@config@timestamp
+ \expandafter\minted@detectconfig@iii
+ \else
+ \expandafter\minted@detectconfig@wrongtimestamp
+ \fi}
+\def\minted@detectconfig@wrongtimestamp{%
+ \ifx\minted@timestamp\minted@executable@timestamp
+ \minted@exec@cleanconfig
+ \global\boolfalse{minted@canexec}%
+ \minted@error{minted v3 Python executable could not find output directory;
+ upgrade to TeX distribution that supports \detokenize{TEXMF_OUTPUT_DIRECTORY}
+ or set environment variable \detokenize{TEXMF_OUTPUT_DIRECTORY} manually)}%
+ \else
+ \expandafter\minted@detectconfig@noexecutableorerrlog
+ \fi}
+\def\minted@detectconfig@iii{%
+ \minted@exec@cleanconfig
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \expandafter\minted@detectconfig@iv
+ \else
+ \expandafter\minted@detectconfig@error
+ \fi}
+\def\minted@detectconfig@error{%
+ \global\boolfalse{minted@canexec}%
+ \minted@exec@error}
+\def\minted@detectconfig@iv{%
+ \expandafter\minted@detectconfig@v\minted@executable@version\relax}
+\begingroup
+\catcode`\.=12
+\gdef\minted@detectconfig@v#1.#2.#3\relax{%
+ \def\minted@executable@major{#1}%
+ \def\minted@executable@minor{#2}%
+ \def\minted@executable@patch{#3}%
+ \minted@detectconfig@vi}
+\endgroup
+\def\minted@detectconfig@vi{%
+ \ifnum\minted@executable@major>\minted@executable@minmajor\relax
+ \global\booltrue{minted@executable@issupported}%
+ \else\ifnum\minted@executable@major=\minted@executable@minmajor\relax
+ \ifnum\minted@executable@minor>\minted@executable@minminor\relax
+ \global\booltrue{minted@executable@issupported}%
+ \else\ifnum\minted@executable@minor=\minted@executable@minminor\relax
+ \ifnum\minted@executable@patch<\minted@executable@minpatch\relax
+ \else
+ \global\booltrue{minted@executable@issupported}%
+ \fi
+ \fi\fi
+ \fi\fi
+ \ifbool{minted@executable@issupported}%
+ {\ifx\minted@config@cachepath\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\global\boolfalse{minted@canexec}%
+ \minted@error{minted Python executable returned incomplete configuration data;
+ this may indicate a bug in minted or file corruption}}%
+ {\global\let\minted@cachepath\minted@config@cachepath
+ \minted@highlightmode@init
+ \ifbool{minted@fasthighlightmode}{\newread\minted@intempfile}{}}}%
+ {\global\boolfalse{minted@canexec}%
+ \minted@error{minted Python executable is version \minted@executable@version,
+ but version \minted@executable@minversion+ is required}}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@defstyle}
-% Define Pygments style macros. These are defined locally rather than globally, and redefined upon every use. Patch single quote macro if needed.
+%
+% \subsection{Options}
+%
+%
+% \subsubsection{Option processing}
+%
+% \begin{macro}{\minted@optcats,\minted@optkeyslist@<optcat>}
+% Option categories, along with lists of keys for each.
+% \begin{itemize}
+% \item |fv|: Passed on to \texpkg{fancyvrb}. Options are stored in scope-specific lists, rather than in individual per-option macros.
+% \item |py|: Passed to Python. Options are stored in scope-specific, individual per-option macros. Some of these are passed to \texpkg{fancyvrb} when the Python executable isn't available or is disabled.
+% \item |tex|: Processed in \LaTeX. Options are stored in scope-specific, individual per-option macros.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@defstyle}[1]{%
- \edef\minted@style{#1}%
- \ifcsname minted@PYGdef@\minted@style\endcsname\else
- \expandafter\minted@generate@PYGdef\expandafter{\minted@style}%
- \fi
- \csname minted@PYGdef@\minted@style\endcsname
- \minted@patch@PYGZsq
- \minted@patch@PYGZhy
- \ifthenelse{\equal{\minted@get@opt{ignorelexererrors}{true}}{true}}%
- {\let\PYG@tok@err\relax}{}}
-\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@defstyle}[1]{}}{}
+\begingroup
+\catcode`\,=12
+\gdef\minted@optcats{fv,py,tex}
+\endgroup
+\def\minted@do#1{\expandafter\def\csname minted@optkeyslist@#1\endcsname{}}
+\minted@forcsvlist{\minted@do}{\minted@optcats}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@patch@PYGZsq}
-% The single quote macro from \texpkg{Pygments} 1.6+ needs to be patched if the \texpkg{upquote} package is in use. Patching is done when the default style is created. Patching is only attempted if the macro exists, so that there is a graceful fallback in the event of a custom \texpkg{Pygments} stylesheet.
+% \begin{macro}{\minted@optscopes,\minted@optscopes@onlyblock}
+% Scopes for options. |cmd| scope is the scope of a single command or environment.
% \begin{macrocode}
-\newcommand{\minted@patch@PYGZsq}{%
- \ifcsname PYGZsq\endcsname
- \expandafter\ifdefstring\expandafter{\csname PYGZsq\endcsname}{\char`\'}%
- {\minted@patch@PYGZsq@i}%
- {}%
- \fi
-}
\begingroup
-\catcode`\'=\active
-\gdef\minted@patch@PYGZsq@i{\gdef\PYGZsq{'}}
+\catcode`\,=12
+\gdef\minted@optscopes{global,lexer,globalinline,lexerinline,cmd}
+\gdef\minted@optscopes@onlyblock{global,lexer,cmd}
\endgroup
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@patch@PYGZhy}
-% Redefine the hyphen under LuaTeX to prevent unintended line breaks.
+% \begin{macro}{\minted@iflexerscope}
% \begin{macrocode}
-\newcommand{\minted@patch@PYGZhy}{%
- \ifcsname PYGZhy\endcsname
- \expandafter\ifdefstring\expandafter{\csname PYGZhy\endcsname}{\char`\-}%
- {\def\PYGZhy{\mbox{-}}}%
- {}%
+\let\minted@iflexerscope@lexer\relax
+\let\minted@iflexerscope@lexerinline\relax
+\def\minted@iflexerscope#1#2#3{%
+ \ifcsname minted@iflexerscope@#1\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
\fi
-}
+ {#2}{#3}}
% \end{macrocode}
% \end{macro}
%
%
+% \begin{macro}{\mintedpgfkeyscreate}
+% Core macro for defining options.
%
-% \begin{macro}{\minted@def@opt@switch}
-% And we need a switch version.
-%
-% It would be possible to create a special version of |\minted@get@opt| to work with these, but that would be redundant. During the key processing, any values other than |true| and |false| are filtered out. So when using |\minted@get@opt| later, we know that that part has already been taken care of, and we can just use something like |\ifthenelse{\equal{\minted@get@opt{<opt>}{<default>}}{true}}{...}{...}|. Of course, there is the possibility that a default value has not been set, but |\minted@def@opt@switch| sets a global default of |false| to avoid this. And as usual, Pygments values shouldn't be used without considering whether |\minted@get@opt| needs a fallback value.
+% Syntax: |\mintedpgfkeyscreate|\oarg{processor}\marg{option category}\marg{key(=value)? list}.
+% \begin{itemize}
+% \item Optional \meta{processor} is a macro that processes \meta{value}. It can take two forms.
+% \begin{enumerate}
+% \item It can take a single argument. In this case, it is used to wrap \meta{value}: |\processor|\marg{value}. It is not invoked until \meta{value} wrapped in \meta{processor} is actually used.
+% \item It can take two arguments. The first is the \meta{csname} that the processed \meta{value} should be stored in, and the second is \meta{value}. In this case, \meta{processor} is invoked immediately and stores the processed \meta{value} in \meta{csname}. See |\minted@opthandler@deforrestrictedescape| for an example of implementing this sort of \meta{processor}.
+% \end{enumerate}
+% \meta{processor} is only supported for |py| and |tex| options.
+% \item \meta{option category} is |fv| (for \texpkg{fancyvrb}), |py| (Python side of \mintedpkg), or |tex| (\LaTeX\ side of \mintedpkg).
+% \item If only \meta{key} is given, then \meta{value} defaults to |\pgfkeysnovalue|. In that case, options are defined so that they can be used in the future, but they are ignored until an explicit \meta{value} is provided later. |fv| options are typically defined only with \meta{key}. |py| and |tex| options are currently required to have an initial \meta{value}. If a \meta{key} is given an initial \meta{value} when it is defined, then that \meta{value} is stored for the \meta{key} in the |global| scope. When an initial value is needed for a different scope such as |lexer| or |inline|, |\pgfkeys| is used directly (|\setminted| and |\setmintedinline| don't yet exist).
+% \item |py| only: A default value for \meta{key} (value used when only \meta{key} is given without a value) can be specified with the syntax |key<default>=value|. Default values for |fv| options are already defined in \texpkg{fancyvrb}, and currently the few |tex| options are the sort that always need an explicit value for clarity.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@def@opt@switch}[2][false]{%
- \define@booleankey{minted@opt@g}{#2}%
- {\@namedef{minted@opt@g:#2}{true}}%
- {\@namedef{minted@opt@g:#2}{false}}
- \define@booleankey{minted@opt@g@i}{#2}%
- {\@namedef{minted@opt@g@i:#2}{true}}%
- {\@namedef{minted@opt@g@i:#2}{false}}
- \define@booleankey{minted@opt@lang}{#2}%
- {\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
- {\@namedef{minted@opt@lang\minted@lang:#2}{false}}
- \define@booleankey{minted@opt@lang@i}{#2}%
- {\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
- {\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
- \define@booleankey{minted@opt@cmd}{#2}%
- {\@namedef{minted@opt@cmd:#2}{true}}%
- {\@namedef{minted@opt@cmd:#2}{false}}%
- \@namedef{minted@opt@g:#2}{#1}%
-}
+\def\minted@addoptkey#1#2{%
+ \ifcsname minted@optkeyslist@#1\endcsname
+ \else
+ \minted@fatalerror{Defining options under category "#1" is not supported}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname minted@optkeyslist@#1\endcsname
+ \ifx\minted@tmp\@empty
+ \def\minted@tmp{#2}%
+ \else
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp,#2}%
+ \fi
+ \expandafter\let\csname minted@optkeyslist@#1\endcsname\minted@tmp}
+\newcommand*{\mintedpgfkeyscreate}[3][]{%
+ \mintedpgfkeyscreate@i{#1}{#2}{#3}}
+\begingroup
+\catcode`\==12
+\gdef\mintedpgfkeyscreate@i#1#2#3{%
+ \def\minted@do##1{%
+ \minted@do@i##1=\FV@Sentinel}%
+ \def\minted@do@i##1=##2\FV@Sentinel{%
+ \minted@do@ii##1<>\FV@Sentinel}%
+ \def\minted@do@ii##1<##2>##3\FV@Sentinel{%
+ \minted@addoptkey{#2}{##1}}%
+ \minted@forcsvlist{\minted@do}{#3}%
+ \csname minted@pgfkeyscreate@#2\endcsname{#1}{#3}}
+\endgroup
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@get@opt}
-% We need a way to traverse the hierarchy of values for a given key and return the current value that has precedence. In doing this, we need to specify a default value to use if no value is found. When working with \texpkg{minted}-specific values, there should generally be a default value; in those cases, an empty default may be supplied. But the macro should also work with Pygments settings, which are stored in macros of the same form and will sometimes need to be accessed (for example, |encoding|). In the Pygments case, there may very well be no default values on the \LaTeX\ side, because we are falling back on Pygments' own built-in defaults. There is no need to duplicate those when very few Pygments values are ever needed; it is simpler to specify the default fallback when accessing the macro value.
+% \begin{macro}{\minted@pgfkeyscreate@fv,\minted@fvoptlist@<scope>(@<lexer>)?,\minted@usefvopts,\minted@usefvoptsnopy}
+% Syntax: |\minted@pgfkeyscreate@fv|\marg{key(=value)? list}.
+%
+% Options are stored in scope-specific lists. They are applied by passing these lists to |\fvset|. Individual option values are not retrievable.
%
-% From a programming perspective, the default argument value needs to be mandatory, so that |\minted@get@opt| can be fully expandable. This significantly simplifies accessing options.
+% The |\begingroup\fvset{...}\endgroup| checks \texpkg{fancyvrb} options at definition time so that any errors are caught immediately instead of when the options are used later elsewhere.
+%
+% |\minted@usefvopts| applies options via |\fvset|. |\minted@useadditionalfvoptsnopy| applies additional options that are usually handled on the Python side and is intended for situations where Python is not available or is not used, such as purely verbatim typesetting.
% \begin{macrocode}
-\def\minted@get@opt#1#2{%
- \ifcsname minted@opt@cmd:#1\endcsname
- \csname minted@opt@cmd:#1\endcsname
+\def\minted@pgfkeyscreate@fv#1#2{%
+ \if\relax\detokenize{#1}\relax
\else
- \ifminted@isinline
- \ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
- \csname minted@opt@lang\minted@lang @i:#1\endcsname
- \else
- \ifcsname minted@opt@g@i:#1\endcsname
- \csname minted@opt@g@i:#1\endcsname
- \else
- \ifcsname minted@opt@lang\minted@lang:#1\endcsname
- \csname minted@opt@lang\minted@lang:#1\endcsname
- \else
- \ifcsname minted@opt@g:#1\endcsname
- \csname minted@opt@g:#1\endcsname
- \else
- #2%
- \fi
- \fi
- \fi
- \fi
- \else
- \ifcsname minted@opt@lang\minted@lang:#1\endcsname
- \csname minted@opt@lang\minted@lang:#1\endcsname
- \else
- \ifcsname minted@opt@g:#1\endcsname
- \csname minted@opt@g:#1\endcsname
+ \minted@fatalerror{Processor macros are not supported in defining fancyvrb options}%
+ \fi
+ \minted@forcsvlist{\minted@pgfkeycreate@fv}{#2}}
+\begingroup
+\catcode`\==12
+\gdef\minted@pgfkeycreate@fv#1{%
+ \minted@pgfkeycreate@fv@i#1=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@fv@i#1=#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\minted@pgfkeycreate@fv@ii
+ \else
+ \expandafter\minted@pgfkeycreate@fv@iii
+ \fi
+ {#1}#2\FV@Sentinel}
+\gdef\minted@pgfkeycreate@fv@ii#1\FV@Sentinel{%
+ \minted@pgfkeycreate@fv@iv{#1}{\minted@const@pgfkeysnovalue}}
+\gdef\minted@pgfkeycreate@fv@iii#1#2=\FV@Sentinel{%
+ \minted@pgfkeycreate@fv@iv{#1}{#2}}
+\endgroup
+\def\minted@pgfkeycreate@fv@iv#1#2{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}%
+ \def\minted@do@i##1##2{%
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #1/.code={%
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \begingroup\fvset{#1}\endgroup
+ \minted@apptoprovidecs{minted@fvoptlist@##1##2}{#1,}%
\else
- #2%
- \fi
- \fi
- \fi
+ \begingroup\fvset{#1={####1}}\endgroup
+ \minted@apptoprovidecs{minted@fvoptlist@##1##2}{#1={####1},}%
+ \fi},
+ }%
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \ifx\minted@const@pgfkeysnovalue#2\relax
+ \else
+ \pgfkeys{%
+ /minted/global/.cd,
+ #1={#2},
+ }%
+ \fi}
+\def\minted@usefvopts{%
+ \ifbool{minted@isinline}%
+ {\minted@forcsvlist{\minted@usefvopts@do}{\minted@optscopes}}%
+ {\minted@forcsvlist{\minted@usefvopts@do}{\minted@optscopes@onlyblock}}}
+\def\minted@usefvopts@do#1{%
+ \minted@iflexerscope{#1}%
+ {\ifcsname minted@fvoptlist@#1@\minted@lexer\endcsname
+ \expandafter
+ \let\expandafter\minted@tmp\csname minted@fvoptlist@#1@\minted@lexer\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \fi}%
+ {\ifcsname minted@fvoptlist@#1\endcsname
+ \expandafter
+ \let\expandafter\minted@tmp\csname minted@fvoptlist@#1\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \fi}}
+\def\minted@useadditionalfvoptsnopy{%
+ \edef\minted@tmp{\mintedpyoptvalueof{gobble}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \expandafter\minted@useadditionalfvoptsnopy@fvsetvk
+ \expandafter{\minted@tmp}{gobble}%
\fi
-}%
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \noindent Actual option definitions. Some of these must be defined conditionally depending on whether we are in |draft| mode; in |draft| mode, we need to emulate Pygments functionality with \LaTeX, particularly with \texpkg{fancyvrb}, when possible. For example, gobbling must be performed by Pygments when |draft| is off, but when |draft| is on, \texpkg{fancyvrb} can perform gobbling.
-%
-% Lexers.
-% \begin{macrocode}
-\minted@def@optcl{encoding}{-P encoding}{#1}
-\minted@def@optcl{outencoding}{-P outencoding}{#1}
-\minted@def@optcl@e{escapeinside}{-P escapeinside}{#1}
-\minted@def@optcl@switch{stripnl}{-P stripnl}
-\minted@def@optcl@switch{stripall}{-P stripall}
-% Python console
-\minted@def@optcl@switch{python3}{-P python3}
-% PHP
-\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
-\minted@def@optcl@switch{startinline}{-P startinline}
-% \end{macrocode}
-%
-% Filters.
-% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\minted@def@optfv{gobble}}%
- {\minted@def@optcl{gobble}{-F gobble:n}{#1}}
-\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
-\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
-% \end{macrocode}
-%
-% \LaTeX\ formatter.
-% \begin{macrocode}
-\minted@def@optcl@switch{texcl}{-P texcomments}
-\minted@def@optcl@switch{texcomments}{-P texcomments}
-\minted@def@optcl@switch{mathescape}{-P mathescape}
-\minted@def@optfv@switch{linenos}
-\minted@def@opt@detok{style}
-% \end{macrocode}
-%
-% \texpkg{fancyvrb} and \texpkg{fvextra} options.
-% \begin{macrocode}
-\minted@def@optfv{frame}
-\minted@def@optfv{framesep}
-\minted@def@optfv{framerule}
-\minted@def@optfv{rulecolor}
-\minted@def@optfv{numbersep}
-\minted@def@optfv{numbers}
-\minted@def@optfv{firstnumber}
-\minted@def@optfv{stepnumber}
-\minted@def@optfv{firstline}
-\minted@def@optfv{lastline}
-\minted@def@optfv{baselinestretch}
-\minted@def@optfv{xleftmargin}
-\minted@def@optfv{xrightmargin}
-\minted@def@optfv{fillcolor}
-\minted@def@optfv{tabsize}
-\minted@def@optfv{fontfamily}
-\minted@def@optfv{fontsize}
-\minted@def@optfv{fontshape}
-\minted@def@optfv{fontseries}
-\minted@def@optfv{formatcom}
-\minted@def@optfv{label}
-\minted@def@optfv{labelposition}
-\minted@def@optfv{highlightlines}
-\minted@def@optfv{highlightcolor}
-\minted@def@optfv{space}
-\minted@def@optfv{spacecolor}
-\minted@def@optfv{tab}
-\minted@def@optfv{tabcolor}
-\minted@def@optfv{highlightcolor}
-\minted@def@optfv@switch{beameroverlays}
-\minted@def@optfv@switch{curlyquotes}
-\minted@def@optfv@switch{numberfirstline}
-\minted@def@optfv@switch{numberblanklines}
-\minted@def@optfv@switch{stepnumberfromfirst}
-\minted@def@optfv@switch{stepnumberoffsetvalues}
-\minted@def@optfv@switch{showspaces}
-\minted@def@optfv@switch{resetmargins}
-\minted@def@optfv@switch{samepage}
-\minted@def@optfv@switch{showtabs}
-\minted@def@optfv@switch{obeytabs}
-\minted@def@optfv@switch{breaklines}
-\minted@def@optfv@switch{breakbytoken}
-\minted@def@optfv@switch{breakbytokenanywhere}
-\minted@def@optfv{breakindent}
-\minted@def@optfv{breakindentnchars}
-\minted@def@optfv@switch{breakautoindent}
-\minted@def@optfv{breaksymbol}
-\minted@def@optfv{breaksymbolsep}
-\minted@def@optfv{breaksymbolsepnchars}
-\minted@def@optfv{breaksymbolindent}
-\minted@def@optfv{breaksymbolindentnchars}
-\minted@def@optfv{breaksymbolleft}
-\minted@def@optfv{breaksymbolsepleft}
-\minted@def@optfv{breaksymbolsepleftnchars}
-\minted@def@optfv{breaksymbolindentleft}
-\minted@def@optfv{breaksymbolindentleftnchars}
-\minted@def@optfv{breaksymbolright}
-\minted@def@optfv{breaksymbolsepright}
-\minted@def@optfv{breaksymbolseprightnchars}
-\minted@def@optfv{breaksymbolindentright}
-\minted@def@optfv{breaksymbolindentrightnchars}
-\minted@def@optfv{breakbefore}
-\minted@def@optfv{breakbeforesymbolpre}
-\minted@def@optfv{breakbeforesymbolpost}
-\minted@def@optfv@switch{breakbeforeinrun}
-\minted@def@optfv{breakafter}
-\minted@def@optfv@switch{breakafterinrun}
-\minted@def@optfv{breakaftersymbolpre}
-\minted@def@optfv{breakaftersymbolpost}
-\minted@def@optfv@switch{breakanywhere}
-\minted@def@optfv{breakanywheresymbolpre}
-\minted@def@optfv{breakanywheresymbolpost}
-\minted@def@optfv{fontencoding}
-% \end{macrocode}
-%
-% Finally, options specific to \texpkg{minted}.
-%
-% |bgcolor|. The original, |minipage|- and |\colorbox|-based solution was replaced with a |framed|-based solution in version 2.2. A dedicated framing package will often be preferable.
-% \begin{macrocode}
-\minted@def@opt{bgcolor}
-% \end{macrocode}
-%
-% Autogobble. We create an option that governs when Python's |textwrap.dedent()| is used to autogobble code.
-% \begin{macrocode}
-\minted@def@opt@switch{autogobble}
-% \end{macrocode}
-%
-% Whether lexer errors are shown.
-% \begin{macrocode}
-\minted@def@opt@switch{ignorelexererrors}
-% \end{macrocode}
-%
-% \begin{macro}{\minted@encoding}
-% When working with encoding, we will need access to the current encoding. That may be done via |\minted@get@opt|, but it is more convenient to go ahead and define a shortcut with an appropriate default
-% \begin{macrocode}
-\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-%
-% \subsection{Internal helpers}
-%
-% \begin{environment}{minted@snugshade*}
-% Define a custom version of \texpkg{framed}'s |snugshade*| that takes a color as argument. This avoids the need to redefine |shadecolor|.
-% \begin{macrocode}
-\newenvironment{minted@snugshade*}[1]{%
- \def\FrameCommand##1{\hskip\@totalleftmargin
- \colorbox{#1}{##1}%
- \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
- \MakeFramed{\advance\hsize-\width
- \@totalleftmargin\z@ \linewidth\hsize
- \advance\labelsep\fboxsep
- \@setminipage}%
- }{\par\unskip\@minipagefalse\endMakeFramed}
+ \edef\minted@tmp{\mintedpyoptvalueof{mathescape}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \expandafter\minted@useadditionalfvoptsnopy@fvsetvk
+ \expandafter{\minted@tmp}{mathescape}%
+ \fi}
+\def\minted@useadditionalfvoptsnopy@fvsetvk#1#2{%
+ \fvset{#2={#1}}}
% \end{macrocode}
-% \end{environment}
-%
+% \end{macro}
%
-% \begin{environment}{\minted@bgbox}
%
-% Define an environment that may be wrapped around a |minted| environment to assign a background color. This is retained as a holdover from version 1.0. In most cases, it is probably better to use a dedicated framing package, such as \texpkg{tcolorbox} or \texpkg{mdframed}.
+% \begin{macro}{\minted@pgfkeyscreate@py,\mintedpyoptvalueof}
+% Syntax: |\minted@pgfkeyscreate@py|\marg{processor}\marg{key(<default>)?=initial value list}.
%
-% First, we need to define a new save box.
+% Currently, initial values are required. The key processing macros are written to handle the possibility of optional initial values: If no initial value is set, use |\pgfkeysnovalue|, which is skipped in passing data to the Python side to invoke defaults.
%
+% |\mintedpyoptvalueof| is used for retrieving values via |\edef|.
% \begin{macrocode}
-\newsavebox{\minted@bgbox}
+\def\minted@pgfkeyscreate@py#1#2{%
+ \minted@forcsvlist{\minted@pgfkeycreate@py{#1}}{#2}}
+\begingroup
+\catcode`\==12
+\catcode`\<=12
+\catcode`\>=12
+\gdef\minted@pgfkeycreate@py#1#2{%
+ \minted@pgfkeycreate@py@i{#1}#2=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@i#1#2=#3\FV@Sentinel{%
+ \if\relax\detokenize{#3}\relax
+ \expandafter\minted@pgfkeycreate@py@ii
+ \else
+ \expandafter\minted@pgfkeycreate@py@iii
+ \fi
+ {#1}{#2}#3\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@ii#1#2\FV@Sentinel{%
+ \minted@pgfkeycreate@py@iv{#1}{\pgfkeysnovalue}#2<>\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@iii#1#2#3=\FV@Sentinel{%
+ \minted@pgfkeycreate@py@iv{#1}{#3}#2<>\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@iv#1#2#3<#4>#5\FV@Sentinel{%
+ \if\relax\detokenize{#4}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\minted@pgfkeycreate@py@v{#1}{#3}{#2}{\minted@const@pgfkeysnovalue}}%
+ {\minted@pgfkeycreate@py@v{#1}{#3}{#2}{#4}}}
+\endgroup
+\def\minted@pgfkeycreate@py@v#1#2#3#4{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}
+ \def\minted@do@i##1##2{%
+ \if\relax\detokenize{#1}\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code={\expandafter\def\csname minted@pyopt@##1##2@#2\endcsname{####1}},
+ }%
+ \else
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code={%
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \expandafter\let\csname minted@pyopt@##1##2@#2\endcsname\minted@tmp
+ \else\ifcsname minted@opthandler@immediate@\string#1\endcsname
+ #1{minted@pyopt@##1##2@#2}{####1}%
+ \else
+ \expandafter\def\csname minted@pyopt@##1##2@#2\endcsname{#1{####1}}%
+ \fi\fi},
+ }%
+ \fi
+ \ifx\minted@const@pgfkeysnovalue#4\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.value required,
+ }%
+ \else
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.default={#4},
+ }%
+ \fi
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \pgfkeys{%
+ /minted/global/.cd,
+ #2={#3},
+ }}
+\def\mintedpyoptvalueof#1{%
+ \ifbool{minted@isinline}%
+ {\minted@pyoptvalueof@inline{#1}}%
+ {\minted@pyoptvalueof@block{#1}}}
+\def\minted@pyoptvalueof@inline#1{%
+ \ifcsname minted@pyopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexerinline@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexerinline@\minted@lexer @#1\endcsname}%
+ \else\ifcsname minted@pyopt@globalinline@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@globalinline@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@global@#1\endcsname}%
+ \fi\fi\fi\fi}
+\def\minted@pyoptvalueof@block#1{%
+ \ifcsname minted@pyopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@global@#1\endcsname}%
+ \fi\fi}
% \end{macrocode}
+% \end{macro}
%
-% Now we can define the environment that applies a background color. Prior to \texpkg{minted} 2.2, this involved a |minipage|. However, that approach was problematic because it did not allow linebreaks, would be pushed into the margin by immediately preceding text, and had very different whitespace separation from preceding and following text compared to no background color. In version 2.2, this was replaced with an approach based on \texpkg{framed}. |\FV@NumberSep| is adjusted by |\fboxsep| to ensure that line numbers remain in the same location in the margin regardless of whether |bgcolor| is used.
%
-% \begin{macrocode}
-\newenvironment{minted@colorbg}[1]{%
- \setlength{\OuterFrameSep}{0pt}%
- \let\minted@tmp\FV@NumberSep
- \edef\FV@NumberSep{%
- \the\numexpr\dimexpr\minted@tmp+\number\fboxsep\relax sp\relax}%
- \medskip
- \begin{minted@snugshade*}{#1}}
- {\end{minted@snugshade*}%
- \medskip\noindent}
-% \end{macrocode}
-% \end{environment}
+% \begin{macro}{\minted@pgfkeyscreate@tex,\mintedtexoptvalueof,\minted@usetexoptsnonpygments}
+% Syntax: |\minted@pgfkeyscreate@tex|\marg{processor}\marg{key=initial value list}.
%
+% Currently, initial values are required. The key processing macros are written to handle the possibility of optional initial values: If no initial value is set, use |\pgfkeysnovalue|.
%
-% \begin{macro}{\minted@code}
-% Create a file handle for saving code (and anything else that must be written to temp files).
+% |\mintedtexoptvalueof| is used for retrieving values via |\edef|.
+%
+% |\minted@usetexoptsnonpygments| applies the |tex| options that aren't used by Pygments. It is initially empty and is redefined after |tex| options are defined. Unlike the |\minted@usefvopts| case, it isn't possible to simply loop through all defined options; more specialized per-option handling is required, since some options are handled in separate Pygments-related macros and there is no equivalent of |\fvset|.
% \begin{macrocode}
-\newwrite\minted@code
+\def\minted@pgfkeyscreate@tex#1#2{%
+ \minted@forcsvlist{\minted@pgfkeycreate@tex{#1}}{#2}}
+\begingroup
+\catcode`\==12
+\gdef\minted@pgfkeycreate@tex#1#2{%
+ \minted@pgfkeycreate@tex@i{#1}#2=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@tex@i#1#2=#3\FV@Sentinel{%
+ \if\relax\detokenize{#3}\relax
+ \expandafter\minted@pgfkeycreate@tex@ii
+ \else
+ \expandafter\minted@pgfkeycreate@tex@iii
+ \fi
+ {#1}{#2}#3\FV@Sentinel}
+\gdef\minted@pgfkeycreate@tex@ii#1#2\FV@Sentinel{%
+ \minted@pgfkeycreate@tex@iv{#1}{#2}{\pgfkeysnovalue}}
+\gdef\minted@pgfkeycreate@tex@iii#1#2#3=\FV@Sentinel{%
+ \minted@pgfkeycreate@tex@iv{#1}{#2}{#3}}
+\endgroup
+\def\minted@pgfkeycreate@tex@iv#1#2#3{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}
+ \def\minted@do@i##1##2{%
+ \if\relax\detokenize{#1}\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code={\expandafter\def\csname minted@texopt@##1##2@#2\endcsname{####1}},
+ #2/.value required,
+ }%
+ \else
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code={%
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \expandafter\let\csname minted@texopt@##1##2@#2\endcsname\minted@tmp
+ \else\ifcsname minted@opthandler@immediate@\string#1\endcsname
+ #1{minted@texopt@##1##2@#2}{####1}%
+ \else
+ \expandafter\def\csname minted@texopt@##1##2@#2\endcsname{#1{####1}}%
+ \fi\fi},
+ #2/.value required,
+ }%
+ \fi
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \pgfkeys{%
+ /minted/global/.cd,
+ #2={#3},
+ }}
+\def\mintedtexoptvalueof#1{%
+ \ifbool{minted@isinline}%
+ {\minted@texoptvalueof@inline{#1}}%
+ {\minted@texoptvalueof@block{#1}}}
+\def\minted@texoptvalueof@inline#1{%
+ \ifcsname minted@texopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexerinline@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexerinline@\minted@lexer @#1\endcsname}%
+ \else\ifcsname minted@texopt@globalinline@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@globalinline@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@global@#1\endcsname}%
+ \fi\fi\fi\fi}
+\def\minted@texoptvalueof@block#1{%
+ \ifcsname minted@texopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@global@#1\endcsname}%
+ \fi\fi}
+\def\minted@usetexoptsnonpygments{}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@savecode}
%
-% Save code to be pygmentized to a file.
-% \begin{macrocode}
-\newcommand{\minted@savecode}[1]{
- \immediate\openout\minted@code\minted@jobname.pyg\relax
- \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
- \immediate\closeout\minted@code}
-% \end{macrocode}
-% \end{macro}
+% \subsubsection{Option handlers}
%
%
-% \begin{macro}{minted@FancyVerbLineTemp}
-% At various points, we will need a temporary counter for storing and then restoring the value of |FancyVerbLine|. When using the |langlinenos| option, we need to store the current value of |FancyVerbLine|, then set |FancyVerbLine| to the current value of a language-specific counter, and finally restore |FancyVerbLine| to its initial value after the current chunk of code has been typeset. In patching |VerbatimOut|, we need to prevent |FancyVerbLine| from being incremented during the write process.
+% \begin{macro}{\minted@opthandler@deforrestrictedescape}
+% Syntax: |\minted@opthandler@deforrestrictedescape|\marg{csname}\marg{value}. \meta{value} is processed and then the result is stored in \meta{csname}.
+%
+% Leave \meta{value} unchanged if a single macro. Otherwise process it with |\FVExtraDetokenizeREscVArg|, which performs backslash escapes but restricted to ASCII symbols and punctuation. This guarantees exact output (no issues with spaces due to detokenizing alphabetical control sequences).
+%
+% The |\minted@opthandler@immediate@<macro_name>| tells option processing to invoke the macro immediately, instead of simply storing it as a value wrapper that will only be invoked when the value is used. This provides immediate error messages in the event of invalid escapes. |\FVExtraDetokenizeREscVArg| is not fully expandable, so waiting to invoke it later when \meta{value} is expanded (|\edef|) isn't an option.
% \begin{macrocode}
-\newcounter{minted@FancyVerbLineTemp}
+\def\minted@opthandler@deforrestrictedescape#1#2{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\def\csname#1\endcsname{#2}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \ifcat\relax\noexpand#2%
+ \expandafter\expandafter\expandafter\minted@opthandler@deforrestrictedescape@i
+ \expandafter\@gobble\string#2\FV@Sentinel{#1}{#2}%
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#1\endcsname}{#2}%
+ \fi
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#1\endcsname}{#2}%
+ \fi\fi}
+\def\minted@opthandler@deforrestrictedescape@i#1#2\FV@Sentinel#3#4{%
+ \ifcsname minted@isalpha\number`#1\endcsname
+ \expandafter\def\csname#3\endcsname{#4}%
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#3\endcsname}{#4}%
+ \fi}
+\expandafter\let\csname
+ minted@opthandler@immediate@\string\minted@opthandler@deforrestrictedescape
+ \endcsname\relax
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@FVB@VerbatimOut}
-% We need a custom version of \texpkg{fancyvrb}'s |\FVB@VerbatimOut| that supports Unicode (everything written to file is |\detokenized|). We also need to prevent the value of |FancyVerbLine| from being incorrectly incremented.
+%
+% \subsubsection{Option definitions}
+%
+%
+% \paragraph{\texpkg{fancyvrb}}
+% \begin{itemize}
+% \item |tabcolor|: Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@write@detok}[1]{%
- \immediate\write\FV@OutFile{\detokenize{#1}}}
-\newcommand{\minted@FVB@VerbatimOut}[1]{%
- \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
- \@bsphack
- \begingroup
- \FV@UseKeyValues
- \FV@DefineWhiteSpace
- \def\FV@Space{\space}%
- \FV@DefineTabOut
- \let\FV@ProcessLine\minted@write@detok
- \immediate\openout\FV@OutFile #1\relax
- \let\FV@FontScanPrep\relax
- \let\@noligs\relax
- \FV@Scan}
+\mintedpgfkeyscreate{fv}{
+ baselinestretch,
+ beameroverlays,
+ backgroundcolor,
+ backgroundcolorvphantom,
+ bgcolor,
+ bgcolorpadding,
+ bgcolorvphantom,
+ breakafter,
+ breakafterinrun,
+ breakaftersymbolpost,
+ breakaftersymbolpre,
+ breakanywhere,
+ breakanywhereinlinestretch,
+ breakanywheresymbolpost,
+ breakanywheresymbolpre,
+ breakautoindent,
+ breakbefore,
+ breakbeforeinrun,
+ breakbeforesymbolpost,
+ breakbeforesymbolpre,
+ breakbytoken,
+ breakbytokenanywhere,
+ breakindent,
+ breakindentnchars,
+ breaklines,
+ breaksymbol,
+ breaksymbolindent,
+ breaksymbolindentleft,
+ breaksymbolindentleftnchars,
+ breaksymbolindentnchars,
+ breaksymbolindentright,
+ breaksymbolindentrightnchars,
+ breaksymbolleft,
+ breaksymbolright,
+ breaksymbolsep,
+ breaksymbolsepleft,
+ breaksymbolsepleftnchars,
+ breaksymbolsepnchars,
+ breaksymbolsepright,
+ breaksymbolseprightnchars,
+ curlyquotes,
+ fillcolor,
+ firstline,
+ firstnumber,
+ fontencoding,
+ fontfamily,
+ fontseries,
+ fontshape,
+ fontsize,
+ formatcom,
+ frame,
+ framerule,
+ framesep,
+ highlightcolor,
+ highlightlines,
+ label,
+ labelposition,
+ lastline,
+ linenos,
+ listparameters,
+ numberblanklines,
+ numberfirstline,
+ numbers,
+ numbersep,
+ obeytabs,
+ resetmargins,
+ rulecolor,
+ samepage,
+ showspaces,
+ showtabs,
+ space,
+ spacecolor,
+ stepnumber,
+ stepnumberfromfirst,
+ stepnumberoffsetvalues,
+ tab,
+ tabcolor=black,
+ tabsize,
+ xleftmargin,
+ xrightmargin,
+}
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\minted@FVE@VerbatimOut}
-% Likewise, we need a custom version of |\FVE@VerbatimOut| that completes the protection of |FancyVerbLine| from being incremented.
+% \paragraph{\mintedpkg\ (passed to Python)}
+% \begin{itemize}
+% \item PHP should use |startinline| for |\mintinline|.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@FVE@VerbatimOut}{%
- \immediate\closeout\FV@OutFile\endgroup\@esphack
- \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
+\mintedpgfkeyscreate{py}{
+ autogobble<true>=false,
+ encoding=utf8,
+ extrakeywords=,
+ extrakeywordsconstant=,
+ extrakeywordsdeclaration=,
+ extrakeywordsnamespace=,
+ extrakeywordspseudo=,
+ extrakeywordsreserved=,
+ extrakeywordstype=,
+ funcnamehighlighting<true>=true,
+ gobble=0,
+ gobblefilter=0,
+ keywordcase=none,
+ literalenvname=MintedVerbatim,
+ mathescape<true>=false,
+ python3<true>=true,
+ rangeregexmatchnumber=1,
+ rangeregexdotall<true>=false,
+ rangeregexmultiline<true>=false,
+ startinline<true>=false,
+ stripall<true>=false,
+ stripnl<true>=false,
+ texcl<true>=false,
+ texcomments<true>=false,
+}
+\mintedpgfkeyscreate[\minted@opthandler@deforrestrictedescape]{py}{
+ codetagify=,
+ escapeinside=,
+ literatecomment=,
+ rangestartstring=,
+ rangestartafterstring=,
+ rangestopstring=,
+ rangestopbeforestring=,
+ rangeregex=,
+}
+\let\minted@tmplexer\minted@lexer
+\def\minted@lexer{php}
+\pgfkeys{
+ /minted/lexerinline/.cd,
+ startinline=true,
+}
+\let\minted@lexer\minted@tmplexer
% \end{macrocode}
-% \end{macro}
-%
%
-% \begin{macro}{\MintedPygmentize}
-% We need a way to customize the executable/script that is called to perform highlighting. Typically, we will want |pygmentize|. But advanced users might wish to use a custom Python script instead. The command is only defined if it does not exist. In general, the command should be |\renewcommand|ed after the package is loaded, but this way, it will work if defined before \texpkg{minted} is loaded.
+% \paragraph{\mintedpkg\ (kept in \LaTeX)}
+% \begin{itemize}
+% \item The |\minted@def@optcl| is for backward compatibility with versions of \texpkg{tcolorbox} that used this to define an |envname| option under \mintedpkg\ v2.
+% \end{itemize}
% \begin{macrocode}
-\ifcsname MintedPygmentize\endcsname\else
- \newcommand{\MintedPygmentize}{pygmentize}
+\mintedpgfkeyscreate{tex}{
+ envname=Verbatim,
+ ignorelexererrors=false,
+ style=default,
+}
+\pgfkeys{
+ /minted/globalinline/.cd,
+ envname=VerbEnv,
+}
+\expandafter\def\expandafter\minted@usetexoptsnonpygments\expandafter{%
+ \minted@usetexoptsnonpygments
+ \edef\minted@literalenvname{\mintedpyoptvalueof{literalenvname}}%
+ \edef\minted@envname{\mintedtexoptvalueof{envname}}%
+ \expandafter\def\expandafter\minted@literalenv\expandafter{%
+ \csname \minted@literalenvname\endcsname}%
+ \expandafter\def\expandafter\minted@endliteralenv\expandafter{%
+ \csname end\minted@literalenvname\endcsname}%
+ \expandafter\expandafter\expandafter
+ \let\expandafter\minted@literalenv\csname \minted@envname\endcsname
+ \expandafter\expandafter\expandafter
+ \let\expandafter\minted@endliteralenv\csname end\minted@envname\endcsname}%
+\ifcsname minted@def@optcl\endcsname
+ \ifx\minted@def@optcl\relax
+ \let\minted@def@optcl\minted@undefined
+ \fi
\fi
+\providecommand{\minted@def@optcl}[4][]{%
+ \minted@warning{Macro \string\minted@def@optcl\space is deprecated with minted v3
+ and no longer has any effect}}
% \end{macrocode}
-% \end{macro}
%
%
-% \begin{macro}{minted@pygmentizecounter}
-% We need a counter to keep track of how many files have been pygmentized. This is primarily used with |finalizecache| for naming cache files sequentially in |listing<number>.pygtex| form.
+%
+% \subsection{Caching, styles, and highlighting}
+%
+%
+%
+% \subsubsection{State}
+%
+% \begin{macro}{minted@didcreatefiles}
+% Track whether any style definitions or highlighted code files were generated, so that file cleanup can be optimized. This is set |true| whenever there is an attempt to create style definitions or highlighted code files; even if the attempt fails, there will typically be leftover temp files.
% \begin{macrocode}
-\newcounter{minted@pygmentizecounter}
+\newbool{minted@didcreatefiles}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\MintedPython}
-% Python executable to be used for |autogobble|.
+% \subsubsection{Cache management}
+%
+%
+% \begin{macro}{\minted@addcachefilename,\minted@numcachefiles,\minted@cachefile<n>,\minted@cachechecksum,\mintedoldcachechecksum}
+% Track cache files that are used, so that unused files can be removed.
+%
+% The number of files is stored in a global macro rather than a counter to avoid counter scope issues. For example, |\includeonly| tracks and resets counters.
+%
+% Also track the overall state of the cache using a sum of MD5 hashes of cache file names combined with the number of cache files. When no new cache files are created, this is used in determining whether the cache should be cleaned.
% \begin{macrocode}
-\ifwindows
- \newcommand{\MintedPython}{python}
+\def\minted@numcachefiles{0}
+\def\minted@addcachefilename#1{%
+ \ifbool{minted@canexec}%
+ {\xdef\minted@numcachefiles{\the\numexpr\minted@numcachefiles+1\relax}%
+ \expandafter\xdef\csname minted@cachefile\minted@numcachefiles\endcsname{#1}%
+ \edef\minted@tmp{\pdf@mdfivesum{#1}}%
+ \expandafter\minted@cachechecksum@update\expandafter{\minted@tmp}}%
+ {}}
+\let\minted@cachechecksum\relax
+\ifcsname mintedoldcachechecksum\endcsname
\else
- \newcommand{\MintedPython}{python3}
+ \let\mintedoldcachechecksum\relax
\fi
+\edef\minted@cachechecksum@files{\pdf@mdfivesum{}}
+\expandafter\let\expandafter\minted@intfromhex\csname int_from_hex:n\endcsname
+\expandafter\let\expandafter\minted@inttoHex\csname int_to_Hex:n\endcsname
+\expandafter\let\expandafter\minted@intmod\csname int_mod:nn\endcsname
+\def\minted@intmodsixteen#1{\minted@intmod{#1}{16}}
+\def\minted@cachechecksum@update#1{%
+ \xdef\minted@cachechecksum@files{%
+ \expandafter\minted@cachechecksum@files@calc
+ \minted@cachechecksum@files\FV@Sentinel#1\FV@Sentinel}%
+ \xdef\minted@cachechecksum{%
+ \detokenize\expandafter{\minted@cachechecksum@files}%
+ \detokenize{:}%
+ \detokenize\expandafter{\minted@numcachefiles}}}
+\def\minted@cachechecksum@files@calc#1#2\FV@Sentinel#3#4\FV@Sentinel{%
+ \minted@inttoHex{%
+ \the\numexpr
+ \minted@intmodsixteen{\minted@intfromhex{#1}+\minted@intfromhex{#3}}%
+ \relax}%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\minted@cachechecksum@files@calc#2\FV@Sentinel#4\FV@Sentinel}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@check@MintedPython}
-% Check that |\MintedPython| is a valid executable before use. Swap |python| for |python3| and vice versa depending on what is available.
+% \begin{macro}{\minted@clean}
+% If the Python executable is available and was used, clean up temp files. If a cache is in use, also update the cache index and remove unused cache files.
+%
+% Only create a |.data.minted| file if there is a cache list to save. Otherwise, no file is needed.
+%
+% Runs within the hook |enddocument/afterlastpage| so that all typesetting is complete, and thus the cache list is complete. |\minted@fasthighlightmode@checkend| is included in the hook to guarantee correct ordering.
+%
% \begin{macrocode}
-\newcommand{\minted@check@MintedPython}{%
- \ifcsname minted@MintedPython@\MintedPython\endcsname
- \else
- \let\minted@altpython\minted@undefined
- \ifdefstring{\MintedPython}{python}{\def\minted@altpython{python3}}{}%
- \ifdefstring{\MintedPython}{python3}{\def\minted@altpython{python}}{}%
- \ifx\minted@altpython\minted@undefined\relax
- \TestAppExists{\MintedPython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\MintedPython\endcsname\relax
- \else
- \PackageError{minted}%
- {Failed to find Python executable \MintedPython;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- {Failed to find Python executable \MintedPython;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- \fi
- \else
- \ifcsname minted@MintedPython@\minted@altpython\endcsname
- \let\MintedPython\minted@altpython
- \else
- \TestAppExists{\MintedPython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\MintedPython\endcsname\relax
- \else
- \TestAppExists{\minted@altpython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\minted@altpython\endcsname\relax
- \let\MintedPython\minted@altpython
+\def\minted@clean{%
+ \ifbool{minted@canexec}%
+ {\ifbool{minted@didcreatefiles}%
+ {\minted@clean@i}%
+ {\ifbool{minted@fasthighlightmode}%
+ {\minted@clean@i}%
+ {\ifbool{minted@cache}%
+ {\ifx\minted@cachechecksum\mintedoldcachechecksum
\else
- \PackageError{minted}%
- {Failed to find Python executables python or python3;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- {Failed to find Python executables python or python3;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- \fi
- \fi
- \fi
- \fi
+ \expandafter\minted@clean@i
+ \fi}%
+ {}}}%
+ \ifbool{minted@fasthighlightmode}{}{\global\boolfalse{minted@canexec}}}%
+ {}}
+\def\minted@clean@i{%
+ \ifnum\minted@numcachefiles>0\relax
+ \expandafter\minted@savecachelist
\fi
-}
+ \ifbool{minted@fasthighlightmode}%
+ {}%
+ {\ifnum\minted@numcachefiles>0\relax
+ \expandafter\minted@exec@clean
+ \else
+ \expandafter\minted@exec@cleantemp
+ \fi}%
+ \gdef\minted@numcachefiles{0}}
+\def\minted@savecachelist{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{clean}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekey{cachefiles}%
+ \pydatawritemlvaluestart
+ \pydatawritemlvalueline{[}%
+ \setcounter{minted@tmpcnt}{1}%
+ \loop\unless\ifnum\value{minted@tmpcnt}>\minted@numcachefiles\relax
+ \expandafter\minted@savecachelist@writecachefile\expandafter{%
+ \csname minted@cachefile\arabic{minted@tmpcnt}\endcsname}%
+ \expandafter\global\expandafter
+ \let\csname minted@cachefile\arabic{minted@tmpcnt}\endcsname\minted@undefined
+ \stepcounter{minted@tmpcnt}%
+ \repeat
+ \pydatawritemlvalueline{]}%
+ \pydatawritemlvalueend
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}{}{\pydataclosefilename{\MintedDataFilename}}}
+\begingroup
+\catcode`\"=12
+\catcode`\,=12
+\gdef\minted@savecachelist@writecachefile#1{%
+ \expandafter\pydatawritemlvalueline\expandafter{\expandafter"#1",}}
+\endgroup
+\AddToHook{enddocument/afterlastpage}{%
+ \minted@clean
+ \minted@fasthighlightmode@checkend
+ \ifbool{minted@cache}%
+ {\immediate\write\@auxout{%
+ \xdef\string\mintedoldcachechecksum{\string\detokenize{\minted@cachechecksum}}}}%
+ {}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@pygmentize}
-%
-% Pygmentize a file (default: |\minted@outputdir\minted@jobname.pyg|) using the options provided.
-%
-% Unfortunately, the logic for caching is a little complex due to operations that are OS- and engine-dependent.
-%
-% The name of cached files is the result of concatenating the md5 of the code and the md5 of the command. This results in a filename that is longer than ideal (64 characters plus path and extension). Unfortunately, this is the only robust approach that is possible using the built-in pdfTeX hashing capabilities.\footnote{It would be possible to use only the cache of the code, but that approach breaks down as soon as the code is used multiple times with different options. While that may seem unlikely in practice, it occurs in this documentation and may be expected to occur in other docs.} LuaTeX could do better, by hashing the command and code together. The Python script that provides XeTeX capabilities simply runs both the command and the code through a single sha1 hasher, but has the additional overhead of the |\write18| call and Python execution.
%
-% One potential concern is that caching should also keep track of the command from which code originates. What if identical code is highlighted with identical settings in both the |minted| environment and |\mintinline| command? In both cases, what is actually saved by Pygments is identical. The difference in final appearance is due to how the environment and command treat the Pygments output.
+% \subsubsection{Style definitions}
%
-% \textbf{This macro must always be checked carefully whenever it is modified.} Under no circumstances should |#1| be written to or opened by Python in write mode. When |\inputminted| is used, |#1| will be an external file that is brought in for highlighting, so it must be left intact.
-%
-% At the very beginning, a check is performed to make sure that style macros exist. This must be done before the highlighted content is generated, so that temp file names can be shared without accidental overwriting. Styles are generated here, rather than when a style is set, so that creating the style macros is done as late as possible in case a custom |pygmentize| is in use via |\MintedPygmentize|.
%
+% \begin{macro}{\minted@patch@PygmentsStyledef}
+% The macros generated by Pygments must be patched: the single quote macro is redefined for \texpkg{upquote} compatibility, and the hyphen is redefined to prevent unintended line breaks under LuaTeX.
% \begin{macrocode}
-\ifwindows
- \def\minted@opt@quote#1{\detokenize{"#1"}}
-\else
- \def\minted@opt@quote#1{\detokenize{'#1'}}
-\fi
-\newcommand{\minted@pygmentize}[2][\minted@outputdir\minted@jobname.pyg]{%
- \minted@defstyle{\minted@get@opt{style}{default}}%
- \stepcounter{minted@pygmentizecounter}%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\def\minted@codefile{\minted@outputdir\minted@jobname.pyg}}%
- {\def\minted@codefile{#1}}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\def\minted@optlistcl@inlines{%
- \minted@optlistcl@g@i
- \csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
- {\let\minted@optlistcl@inlines\@empty}%
- \def\minted@cmd{%
- \ifminted@kpsewhich
- \ifwindows
- \detokenize{for /f "usebackq tokens=*"}\space\@percentchar\detokenize{a in (`kpsewhich}\space\minted@codefile\detokenize{`) do}\space
- \fi
- \fi
- \MintedPygmentize\space -l \minted@opt@quote{#2}
- -f latex -P commandprefix=PYG -F tokenmerge
- \minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
- \minted@optlistcl@inlines
- \minted@optlistcl@cmd -o \minted@outputdir\minted@infile\space
- \ifminted@kpsewhich
- \ifwindows
- \@percentchar\detokenize{a}%
- \else
- \detokenize{`}kpsewhich \minted@codefile\space
- \detokenize{||} \minted@codefile\detokenize{`}%
- \fi
- \else
- \minted@codefile
- \fi}%
- % For debugging, uncomment: %%%%
- % \immediate\typeout{\minted@cmd}%
- % %%%%
- \ifthenelse{\boolean{minted@cache}}%
- {%
- \ifminted@frozencache
- \else
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\edef\minted@hash{%
- \pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd\space%
- autogobble(\the\numexpr\FancyVerbStartNum\relax-%
- \the\numexpr\FancyVerbStopNum\relax)}}}%
- {\edef\minted@hash{%
- \pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd}}}%
- \edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
- \IfFileExists{\minted@infile}{}{%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
- \minted@autogobble{#1}}{}%
- \ShellEscape{\minted@cmd}}%
- \fi
- \ifthenelse{\boolean{minted@finalizecache}}%
- {%
- \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
- \edef\minted@actualinfile{\minted@cachedir/\minted@cachefilename}%
- \ifwindows
- \StrSubstitute{\minted@infile}{/}{\@backslashchar}[\minted@infile@windows]
- \StrSubstitute{\minted@actualinfile}{/}{\@backslashchar}[\minted@actualinfile@windows]
- \ShellEscape{move /y \minted@outputdir\minted@infile@windows\space\minted@outputdir\minted@actualinfile@windows}%
- \else
- \ShellEscape{mv -f \minted@outputdir\minted@infile\space\minted@outputdir\minted@actualinfile}%
- \fi
- \let\minted@infile\minted@actualinfile
- \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}%
- }%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {%
- \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
- \edef\minted@infile{\minted@cachedir/\minted@cachefilename}%
- \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}}%
- {\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}}%
- }%
- \minted@inputpyg}%
- {%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
- \minted@autogobble{#1}}{}%
- \ShellEscape{\minted@cmd}%
- \minted@inputpyg}%
-}
+\def\minted@patch@PygmentsZsq{%
+ \ifcsname\minted@styleprefix Zsq\endcsname
+ \ifcsstring{\minted@styleprefix Zsq}{\char`\'}{\minted@patch@PygmentsZsq@i}{}%
+ \fi}
+\begingroup
+\catcode`\'=\active
+\gdef\minted@patch@PygmentsZsq@i{\def\PYGZsq{'}}
+\endgroup
+\def\minted@patch@PygmentsZhy{%
+ \ifcsname\minted@styleprefix Zhy\endcsname
+ \ifcsstring{\minted@styleprefix Zhy}{\char`\-}{\def\PYGZhy{\mbox{-}}}{}%
+ \fi}
+\def\minted@patch@ignorelexererrors{%
+ \edef\minted@tmp{\mintedtexoptvalueof{ignorelexererrors}}%
+ \ifdefstring{\minted@tmp}{true}%
+ {\expandafter\let\csname\minted@styleprefix @tok@err\endcsname\relax}%
+ {}}
+\def\minted@patch@PygmentsStyledef{%
+ \minted@patch@PygmentsZsq
+ \minted@patch@PygmentsZhy
+ \minted@patch@ignorelexererrors}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@autogobble}
-% Remove common leading whitespace.
+% \begin{macro}{\minted@VerbatimPygments}
+% Enable \texpkg{fancyvrb} features for Pygments macros.
% \begin{macrocode}
-\def\minted@autogobble#1{%
- \edef\minted@argone@esc{#1}%
- \StrSubstitute{\minted@argone@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@argone@esc]%
- \StrSubstitute{\minted@argone@esc}{"}{\@backslashchar"}[\minted@argone@esc]%
- \edef\minted@tmpfname@esc{\minted@outputdir\minted@jobname}%
- \StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
- \StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
- %Need a version of open() that supports encoding under Python 2
- \minted@check@MintedPython
- \edef\minted@autogobblecmd{%
- \ifminted@kpsewhich
- \ifwindows
- \detokenize{for /f "usebackq tokens=*" }\@percentchar\detokenize{a in (`kpsewhich} #1\detokenize{`) do}\space
- \fi
- \fi
- \MintedPython\detokenize{ -c "import sys; import os;
- import textwrap;
- from io import open;
- fname = }%
- \ifminted@kpsewhich
- \detokenize{sys.argv[1];}\space
- \else
- \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space
- \fi
- \detokenize{f = open(fname, \"r\", encoding=\"}\minted@encoding\detokenize{\") if os.path.isfile(fname) else None;
- t = f.readlines() if f is not None else None;
- t_opt = t if t is not None else [];
- f.close() if f is not None else None;
- tmpfname = os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.pyg\detokenize{\"));
- f = open(tmpfname, \"w\", encoding=\"}\minted@encoding\detokenize{\") if t is not None else None;
- fvstartnum = }\the\numexpr\FancyVerbStartNum\detokenize{;
- fvstopnum = }\the\numexpr\FancyVerbStopNum\detokenize{;
- s = max(0, fvstartnum-1);
- e = max(s, fvstopnum) if fvstopnum > 0 else len(t_opt);
- [f.write(textwrap.dedent(\"\".join(x))) for x in (t_opt[0:s], t_opt[s:e], t_opt[e:]) if x and t is not None];
- f.close() if t is not None else os.remove(tmpfname);"}%
- \ifminted@kpsewhich
- \ifwindows
- \space\@percentchar\detokenize{a}%
- \else
- \space\detokenize{`}kpsewhich #1\space\detokenize{||} #1\detokenize{`}%
- \fi
- \fi
- }%
- \ShellEscape{\minted@autogobblecmd}%
-}
+\def\minted@VerbatimPygments{%
+ \expandafter\minted@VerbatimPygments@i\expandafter{%
+ \csname\minted@styleprefix\endcsname}}
+\def\minted@VerbatimPygments@i#1{%
+ \VerbatimPygments{#1}{#1}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@inputpyg}
-% For increased clarity, the actual |\input| process is separated out into its own macro.
+% \begin{macro}{\minted@standardcatcodes}
+% Set standard catcodes. Used before |\input| of style definitions and in reading the optional argument of environments that wrap Pygments output.
+% \begin{macrocode}
+\def\minted@standardcatcodes{%
+ \catcode`\\=0
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\#=6
+ \catcode`\ =10
+ \catcode`\@=11
+ \catcode`\`=12
+ \catcode`\==12
+ \catcode`\+=12
+ \catcode`\.=12
+ \catcode`\,=12
+ \catcode`\[=12
+ \catcode`\]=12
+ \catcode`\%=14}
+% \end{macrocode}
+% \end{macro}
%
-% At the last possible moment, |\PYG| is |\let| to |\PYG|\meta{style} and redefined to used appropriate line breaking via |\VerbatimPygments| from \texpkg{fvextra}.
%
-% The |bgcolor| option needs to be dealt with in different ways depending on whether we are using |\mintinline|. It is simplest to apply this option here, so that the macro redefinitions may be local and thus do not need to be manually reset later.
+% \begin{macro}{\minted@defstyle}
+% Define highlighting style macros.
% \begin{macrocode}
-\newcommand{\minted@inputpyg}{%
- \VerbatimPygments{\PYG}{\PYG}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
- {\let\FV@BeginVBox\relax
- \let\FV@EndVBox\relax
- \def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
- \minted@inputpyg@inline}%
- {\minted@inputpyg@inline}}%
- {\minted@inputpyg@block}%
-}
-\def\minted@inputpyg@inline{%
- \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
- {\minted@input{\minted@outputdir\minted@infile}}%
- {\colorbox{\minted@get@opt{bgcolor}{}}{%
- \minted@input{\minted@outputdir\minted@infile}}}%
-}
-\def\minted@inputpyg@block{%
- \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
- {\minted@input{\minted@outputdir\minted@infile}}%
- {\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
- \minted@input{\minted@outputdir\minted@infile}%
- \end{minted@colorbg}}}
+\def\minted@defstyle{%
+ \edef\minted@tmp{\mintedtexoptvalueof{style}}%
+ \expandafter\minted@defstyle@i\expandafter{\minted@tmp}}
+\def\minted@defstyle@i#1{%
+ \minted@ifalphanumhyphenunderscore{#1}%
+ {\minted@defstyle@ii{#1}}%
+ {\minted@error{Highlighting style is set to "#1" but only style names with
+ alphanumeric characters, hyphens, and underscores are supported;
+ falling back to default style}%
+ \minted@defstyle@ii{default}}}
+\def\minted@defstyle@ii#1{%
+ \ifcsname minted@styledef@#1\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\minted@defstyle@load{#1}}}
% \end{macrocode}
% \end{macro}
%
%
-% We need a way to have line counters on a per-language basis.
+% \begin{macro}{\minted@defstyle@load}
+% Certain catcodes are required when loading Pygments style definitions from file.
+% \begin{itemize}
+% \item At sign |@| would be handled by the |\makeatletter| within the Pygments style definition if the style were brought in via |\input|, but |\makeatletter| doesn't affect tokenization with the |catchfile| approach.
+% \item Percent |%| may not have its normal meaning within a |.dtx| file.
+% \item Backtick |`| is made active by some \texpkg{babel} package options, such as |magyar|.
+% \item Catcodes for other symbolic/non-alphanumeric characters may (probably rarely) not have their normal definitions.
+% \end{itemize}
+% |\endlinechar| also requires special handling to avoid introducing unwanted spaces.
%
-% \begin{macro}{\minted@langlinenoson}
+% The |\begingroup...\endgroup| around |\minted@exec@styledef| and associated messages is necessary to prevent errors related to the message file. If a style does not exist, then the Python executable will create a |_<hash>.message.minted| file, which is brought in via |\InputIfFileExists| and generates an error message. After this, there is an attempt to load the default style. If the default style needs to be generated, then |\InputIfFileExists| will attempt to bring in a |_<hash>.message.minted| file regardless of whether it exists, unless it is wrapped in the |\begingroup...\endgroup|.
% \begin{macrocode}
-\newcommand{\minted@langlinenoson}{%
- \ifcsname c@minted@lang\minted@lang\endcsname\else
- \newcounter{minted@lang\minted@lang}%
+\def\minted@catchfiledef#1#2{%
+ \CatchFileDef{#1}{#2}{\minted@standardcatcodes\endlinechar=-1}}
+\def\minted@defstyle@load#1{%
+ \minted@detectconfig
+ \ifbool{minted@cache}%
+ {\edef\minted@styledeffilename{#1\detokenize{.style.minted}}%
+ \edef\minted@styledeffilepath{\minted@cachepath\minted@styledeffilename}%
+ \IfFileExists{\minted@styledeffilepath}%
+ {\minted@defstyle@input{#1}}%
+ {\ifbool{minted@canexec}%
+ {\minted@defstyle@generate{#1}}%
+ {\minted@error{Missing definition for highlighting style "#1" (minted executable
+ is unavailable or disabled); attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}}%
+ {\edef\minted@styledeffilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.style.minted}}%
+ \let\minted@styledeffilepath\minted@styledeffilename
+ \ifbool{minted@canexec}%
+ {\minted@defstyle@generate{#1}}%
+ {\minted@error{Missing definition for highlighting style "#1" (minted executable
+ is unavailable or disabled); attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}}
+\def\minted@defstyle@input#1{%
+ \begingroup
+ \minted@catchfiledef{\minted@tmp}{\minted@styledeffilepath}%
+ \minted@tmp
+ \ifcsname\minted@styleprefix\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
\fi
- \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
- \setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
-}
+ {\expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp
+ \endgroup
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@styledeffilename}}{}%
+ \csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\endgroup
+ \ifbool{minted@canexec}%
+ {\minted@warning{Invalid or corrupted style definition file
+ "\minted@styledeffilename"; attempting to regenerate}%
+ \minted@defstyle@generate{#1}}%
+ {\minted@error{Invalid or corrupted style definition file
+ "\minted@styledeffilename"; attempting to substitute fallback style
+ (minted executable is unavailable or disabled)}%
+ \minted@defstyle@fallback{#1}}}}
+\def\minted@defstyle@generate#1{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{styledef}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{currentfilepath}{\CurrentFilePath}%
+ \pydatawritekeyedefvalue{currentfile}{\CurrentFile}%
+ \pydatawritekeyedefvalue{inputlineno}{\the\inputlineno}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekeyedefvalue{styledeffilename}{\minted@styledeffilename}%
+ \pydatawritekeyvalue{style}{#1}%
+ \pydatawritekeyedefvalue{commandprefix}{\minted@styleprefix}%
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}%
+ {\minted@defstyle@fallback{#1}}%
+ {\pydataclosefilename{\MintedDataFilename}%
+ \begingroup
+ \minted@exec@styledef
+ \global\booltrue{minted@didcreatefiles}%
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \expandafter\minted@defstyle@generate@i
+ \else
+ \expandafter\minted@defstyle@generate@error
+ \fi
+ {#1}}}
+\def\minted@defstyle@generate@i#1{%
+ \endgroup
+ \begingroup
+ \minted@catchfiledef{\minted@tmp}{\minted@styledeffilepath}%
+ \minted@tmp
+ \ifcsname\minted@styleprefix\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp
+ \endgroup
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@styledeffilename}}{}%
+ \csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\endgroup
+ \minted@error{Failed to create style definition file "\minted@styledeffilename"
+ (no error message, see "\MintedErrlogFilename" if it exists);
+ attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}
+\def\minted@defstyle@generate@error#1{%
+ \minted@exec@error
+ \endgroup
+ \minted@defstyle@fallback{#1}}
+\def\minted@defstyle@fallback#1{%
+ \ifstrequal{#1}{default}%
+ {\expandafter\global\expandafter
+ \let\csname minted@styledef@default\endcsname\minted@styledeffallback}%
+ {\ifcsname minted@styledef@default\endcsname
+ \else
+ \minted@defstyle@load{default}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname minted@styledef@default\endcsname
+ \expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@langlinenosoff}
%
+% \begin{macro}{\minted@styledeffallback}
+% Basic style definition to make |.highlight.minted| cache files usable if no styles exist, not even the default style, and no styles can be generated.
% \begin{macrocode}
-\newcommand{\minted@langlinenosoff}{%
- \setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
- \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
-}
+\def\minted@styledeffallback{%
+ \expandafter\def\csname\minted@styleprefix\endcsname##1##2{##2}%
+ \expandafter\def\csname\minted@styleprefix Zbs\endcsname{\char`\\}%
+ \expandafter\def\csname\minted@styleprefix Zus\endcsname{\char`\_}%
+ \expandafter\def\csname\minted@styleprefix Zob\endcsname{\char`\{}%
+ \expandafter\def\csname\minted@styleprefix Zcb\endcsname{\char`\}}%
+ \expandafter\def\csname\minted@styleprefix Zca\endcsname{\char`\^}%
+ \expandafter\def\csname\minted@styleprefix Zam\endcsname{\char`\&}%
+ \expandafter\def\csname\minted@styleprefix Zlt\endcsname{\char`\<}%
+ \expandafter\def\csname\minted@styleprefix Zgt\endcsname{\char`\>}%
+ \expandafter\def\csname\minted@styleprefix Zsh\endcsname{\char`\#}%
+ \expandafter\def\csname\minted@styleprefix Zpc\endcsname{\char`\%}%
+ \expandafter\def\csname\minted@styleprefix Zdl\endcsname{\char`\$}%
+ \expandafter\def\csname\minted@styleprefix Zhy\endcsname{\char`\-}%
+ \expandafter\def\csname\minted@styleprefix Zsq\endcsname{\char`\'}%
+ \expandafter\def\csname\minted@styleprefix Zdq\endcsname{\char`\"}%
+ \expandafter\def\csname\minted@styleprefix Zti\endcsname{\char`\~}%
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}
% \end{macrocode}
% \end{macro}
%
%
-% Disable the language-specific settings if the package option isn't used.
+%
+% \subsubsection{Lexer-specific line numbering}
+%
+%
+% \begin{macro}{minted@FancyVerbLineTemp}
+% Temporary counter for storing and then restoring the value of |FancyVerbLine|. When using the |lexerlinenos| option, we need to store the current value of |FancyVerbLine|, then set |FancyVerbLine| to the current value of a lexer-specific counter, and finally restore |FancyVerbLine| to its initial value after the current chunk of code has been typeset.
% \begin{macrocode}
-\ifbool{minted@langlinenos}{}{%
- \ifbool{minted@inputlanglinenos}{}{%
- \let\minted@langlinenoson\relax
- \let\minted@langlinenosoff\relax
- }
-}
+\newcounter{minted@FancyVerbLineTemp}
% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\minted@inputlanglinenoson}
-% \begin{macro}{\minted@inputlanglinenosoff}
-% Language-specific settings that apply to |\inputminted| in addition to |minted| and |\mintinline|.
+% \begin{macro}{\minted@lexerlinenoson,\minted@lexerlinenosoff,\minted@inputlexerlinenoson,\minted@inputlexerlinenosoff}
+% Line counters on a per-lexer basis for |minted| and |\mintinline|; line counters on a per-lexer basis for |\inputminted|.
% \begin{macrocode}
-\ifbool{minted@inputlanglinenos}%
- {\def\minted@inputlanglinenoson{\minted@langlinenoson}%
- \def\minted@inputlanglinenosoff{\minted@langlinenosoff}}%
- {\let\minted@inputlanglinenoson\relax
- \let\minted@inputlanglinenosoff\relax}
+\def\minted@lexerlinenoson{%
+ \ifcsname c@minted@lexer\minted@lexer\endcsname
+ \else
+ \newcounter{minted@lexer\minted@lexer}%
+ \fi
+ \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@lexer\minted@lexer}}}
+\def\minted@lexerlinenosoff{%
+ \setcounter{minted@lexer\minted@lexer}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}
+\ifbool{minted@inputlexerlinenos}%
+ {\let\minted@inputlexerlinenoson\minted@lexerlinenoson
+ \let\minted@inputlexerlinenosoff\minted@lexerlinenosoff}%
+ {\let\minted@inputlexerlinenoson\relax
+ \let\minted@inputlexerlinenosoff\relax
+ \ifbool{minted@lexerlinenos}
+ {}%
+ {\let\minted@lexerlinenoson\relax
+ \let\minted@lexerlinenosoff\relax}}
% \end{macrocode}
% \end{macro}
+%
+%
+% \begin{macro}{\minted@codewrapper}
+% Wrapper around typeset code. |\minted@inputfilepath| will exist when the code is brought in from an external file.
+% \begin{macrocode}
+\def\minted@codewrapper#1{%
+ \ifcsname minted@inputfilepath\endcsname
+ \minted@inputlexerlinenoson
+ \else
+ \minted@lexerlinenoson
+ \fi
+ #1%
+ \ifcsname minted@inputfilepath\endcsname
+ \minted@inputlexerlinenosoff
+ \else
+ \minted@lexerlinenosoff
+ \fi}
+% \end{macrocode}
% \end{macro}
%
%
%
-% \subsection{Public API}
+% \subsubsection{Highlighting code}
%
-% \begin{macro}{\setminted}
-% Set global or language-level options.
+%
+% \begin{macro}{\minted@highlight,\minted@highlightinputfile}
+% Highlight code previously stored in buffer |minted@tmpdatabuffer|, or code in an external file.
+%
+% |\minted@defstyle| will invoke |\minted@detectconfig| the first time a style is loaded, so no separate |\minted@detectconfig| is needed.
+%
+% The default |\minted@highlight@fallback| inserts a placeholder. Typically commands/environments will redefine the fallback locally to inserted a verbatim approximation of code that could not be highlighted.
+%
+% Python-related options are buffered/written under a |pyopt| namespace. This prevents the possibility of naming collisions between options and other data that must be passed to Python.
+%
+% Some data such as |jobname|, |timestamp|, and |cachepath| should be written to file, but not used in hashing because otherwise it would unnecessarily make the cache files dependent on irrelevant data.
% \begin{macrocode}
-\newcommand{\setminted}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\setkeys{minted@opt@g}{#2}}%
- {\minted@configlang{#1}%
- \setkeys{minted@opt@lang}{#2}}}
+\def\minted@debug@input{%
+ \ifbool{minted@debug}%
+ {\immediate\typeout{%
+ minted debug: \string\input\space at
+ \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno}}%
+ {}}
+\def\minted@highlight{%
+ \minted@defstyle
+ \pydatasetbuffername{minted@tmpdatabuffer}%
+ \pydatabufferkeyvalue{command}{highlight}%
+ \pydatabufferkey{code}%
+ \pydatabuffermlvaluestart
+ \setcounter{minted@tmpcnt}{1}%
+ \loop\unless\ifnum\value{minted@tmpcnt}>\minted@tmpcodebufferlength\relax
+ \expandafter\let\expandafter
+ \minted@tmp\csname minted@tmpcodebufferline\arabic{minted@tmpcnt}\endcsname
+ \expandafter\pydatabuffermlvalueline\expandafter{\minted@tmp}%
+ \stepcounter{minted@tmpcnt}%
+ \repeat
+ \pydatabuffermlvalueend
+ \minted@highlight@i}
+\def\minted@highlightinputfile{%
+ \minted@defstyle
+ \edef\minted@inputfilemdfivesum{\pdf@filemdfivesum{\minted@inputfilepath}}%
+ \ifx\minted@inputfilemdfivesum\@empty
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\minted@error{Cannot find input file "\minted@inputfilepath"; inserting placeholder}%
+ \minted@insertplaceholder}%
+ {\pydatasetbuffername{minted@tmpdatabuffer}%
+ \pydatabufferkeyvalue{command}{highlight}%
+ \pydatabufferkeyedefvalue{inputfilepath}{\minted@inputfilepath}%
+ \pydatabufferkeyedefvalue{inputfilemdfivesum}{\minted@inputfilemdfivesum}%
+ \minted@highlight@i}}
+\def\minted@def@FV@GetKeyValues@standardcatcodes{%
+ \let\minted@FV@GetKeyValues@orig\FV@GetKeyValues
+ \def\FV@GetKeyValues##1{%
+ \begingroup
+ \minted@standardcatcodes
+ \minted@FV@GetKeyValues@i{##1}}%
+ \def\minted@FV@GetKeyValues@i##1[##2]{%
+ \endgroup
+ \let\FV@GetKeyValues\minted@FV@GetKeyValues@orig
+ \let\minted@FV@GetKeyValues@i\minted@undefined
+ \FV@GetKeyValues{##1}[##2]}}
+\def\minted@highlight@i{%
+ \pydatabufferkeyedefvalue{pyopt.lexer}{\minted@lexer}%
+ \pydatabufferkeyedefvalue{pyopt.commandprefix}{\minted@styleprefix}%
+ \minted@forcsvlist{\minted@highlight@bufferpykeys}{\minted@optkeyslist@py}%
+ \ifbool{minted@cache}%
+ {\edef\minted@highlightfilename{\pydatabuffermdfivesum\detokenize{.highlight.minted}}%
+ \edef\minted@highlightfilepath{\minted@cachepath\minted@highlightfilename}%
+ \IfFileExists{\minted@highlightfilepath}%
+ {\minted@codewrapper{%
+ \minted@def@FV@GetKeyValues@standardcatcodes
+ \minted@debug@input
+ \input{\minted@highlightfilepath}}%
+ \minted@addcachefilename{\minted@highlightfilename}}%
+ {\ifbool{minted@canexec}%
+ {\minted@iffasthighlightmode@buffertempfile
+ \minted@highlight@create}%
+ {\minted@error{Cannot highlight code (minted executable is unavailable or
+ disabled); attempting to typeset without highlighting}%
+ \minted@highlight@fallback}}}%
+ {\edef\minted@highlightfilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.highlight.minted}}%
+ \let\minted@highlightfilepath\minted@highlightfilename
+ \ifbool{minted@canexec}%
+ {\minted@highlight@create}%
+ {\minted@error{Cannot highlight code (minted executable is unavailable or
+ disabled); attempting to typeset without highlighting}%
+ \minted@highlight@fallback}}%
+ \pydataclearbuffername{minted@tmpdatabuffer}}
+\def\minted@highlight@bufferpykeys#1{%
+ \edef\minted@tmp{\mintedpyoptvalueof{#1}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \pydatabufferkeyedefvalue{pyopt.#1}{\minted@tmp}%
+ \fi}
+\def\minted@highlight@create{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritebuffer
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{currentfilepath}{\CurrentFilePath}%
+ \pydatawritekeyedefvalue{currentfile}{\CurrentFile}%
+ \pydatawritekeyedefvalue{inputlineno}{\the\inputlineno}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekeyedefvalue{highlightfilename}{\minted@highlightfilename}%
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}%
+ {\minted@insertplaceholder}%
+ {\pydataclosefilename{\MintedDataFilename}%
+ \begingroup
+ \minted@exec@highlight
+ \global\booltrue{minted@didcreatefiles}%
+ \IfFileExists{\minted@highlightfilepath}%
+ {\ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \minted@codewrapper{%
+ \minted@def@FV@GetKeyValues@standardcatcodes
+ \minted@debug@input
+ \input{\minted@highlightfilepath}}%
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@highlightfilename}}{}}%
+ {\ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \minted@error{Minted executable failed during syntax highlighting
+ but returned no error message (see if "\MintedErrlogFilename" exists)}%
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \minted@highlight@fallback}}}
+\def\minted@highlight@fallback{%
+ \minted@insertplaceholder}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\setmintedinline}
-% Set global or language-level options, but only for inline (|\mintinline|) content. These settings will override the corresponding |\setminted| settings.
+%
+% \begin{macro}{\minted@iffasthighlightmode@buffertempfile}
+%
+% With caching, when |fasthighlightmode=true| and |\minted@inputfilepath| has a file extension that has been designated for temp files, read the file into a temp buffer, and then if that succeeds copy the code into the highlighting buffer. This can avoid errors with temp files that are modified or deleted before highlighting occurs when |fasthighlightmode=true|, since that delays highlighting until the end of the document.
+%
+% This is not done for all highlighted external files because it adds overhead and complexity. When files are read, it is not possible to determine the newline sequence (|\n| versus |\r\n|), and trailing whitespace is discarded by \TeX\ during the reading process, so it is not possible to reconstruct the original file bytes within \TeX, only an (essentially equivalent) approximation. As a result, files that are read are hashed a second time after reading to reduce the chance that they were modified after initial hashing but before reading.
+%
% \begin{macrocode}
-\newcommand{\setmintedinline}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\setkeys{minted@opt@g@i}{#2}}%
- {\minted@configlang{#1}%
- \setkeys{minted@opt@lang@i}{#2}}}
+\begingroup
+\def\minted@set@tempfileextension#1{%
+ \if\relax\detokenize{#1}\relax
+ \else
+ \expandafter\global\expandafter
+ \let\csname minted@buffertempfileextension@#1\endcsname\relax
+ \fi}
+\minted@forcsvlist{\minted@set@tempfileextension}{
+ listing,
+ out,
+ outfile,
+ output,
+ temp,
+ tempfile,
+ tmp,
+ verb,
+ vrb,
+}
+\endgroup
+\begingroup
+\catcode`\/=12
+\catcode`\.=12
+\gdef\minted@iffasthighlightmode@buffertempfile{%
+ \ifbool{minted@fasthighlightmode}%
+ {\ifcsname minted@inputfilepath\endcsname
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {\expandafter
+ \minted@iffasthighlightmode@buffertempfile@i\minted@inputfilepath/\FV@Sentinel}}%
+ {}}
+\gdef\minted@iffasthighlightmode@buffertempfile@i#1/#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\minted@iffasthighlightmode@buffertempfile@ii#1.\FV@Sentinel}%
+ {\minted@iffasthighlightmode@buffertempfile@i#2\FV@Sentinel}}
+\gdef\minted@iffasthighlightmode@buffertempfile@ii#1.#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\minted@iffasthighlightmode@buffertempfile@iii#2\FV@Sentinel}}
+\gdef\minted@iffasthighlightmode@buffertempfile@iii#1.\FV@Sentinel{%
+ \ifcsname minted@buffertempfileextension@#1\endcsname
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {\minted@iffasthighlightmode@buffertempfile@iv}}
+\endgroup
+\def\minted@iffasthighlightmode@buffertempfile@iv{%
+ \begingroup
+ \gdef\minted@tmpcodebufferlength{0}%
+ \openin\minted@intempfile=\minted@inputfilepath
+ \endlinechar=-1%
+ \let\do\@makeother\FVExtraDoSpecials
+ \loop\unless\ifeof\minted@intempfile
+ \read\minted@intempfile to\minted@intempfileline
+ \xdef\minted@tmpcodebufferlength{\the\numexpr\minted@tmpcodebufferlength+1\relax}%
+ \expandafter\global\expandafter\let\csname
+ minted@tmpcodebufferline\minted@tmpcodebufferlength
+ \endcsname\minted@intempfileline
+ \repeat
+ \closein\minted@intempfile
+ \expandafter\ifx\csname
+ minted@tmpcodebufferline\minted@tmpcodebufferlength\endcsname\@empty
+ \expandafter\global\expandafter\let\csname
+ minted@tmpcodebufferline\minted@tmpcodebufferlength\endcsname\minted@undefined
+ \xdef\minted@tmpcodebufferlength{\the\numexpr\minted@tmpcodebufferlength-1\relax}%
+ \fi
+ \endgroup
+ \edef\minted@inputfilemdfivesum@check{\pdf@filemdfivesum{\minted@inputfilepath}}%
+ \ifx\minted@inputfilemdfivesum@check\minted@inputfilemdfivesum
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\VerbatimClearBuffer[buffername=minted@tmpcodebuffer]}%
+ \ifnum\minted@tmpcodebufferlength>0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {\minted@iffasthighlightmode@buffertempfile@v}}
+\def\minted@iffasthighlightmode@buffertempfile@v{%
+ \pydatabufferkey{code}%
+ \pydatabuffermlvaluestart
+ \setcounter{minted@tmpcnt}{1}%
+ \loop\unless\ifnum\value{minted@tmpcnt}>\minted@tmpcodebufferlength\relax
+ \expandafter\let\expandafter
+ \minted@tmp\csname minted@tmpcodebufferline\arabic{minted@tmpcnt}\endcsname
+ \expandafter\pydatabuffermlvalueline\expandafter{\minted@tmp}%
+ \stepcounter{minted@tmpcnt}%
+ \repeat
+ \pydatabuffermlvalueend
+ \VerbatimClearBuffer[buffername=minted@tmpcodebuffer]}
% \end{macrocode}
% \end{macro}
%
-% Now that the settings macros exist, we go ahead and create any needed defaults.
%
-% PHP should use |startinline| for |\mintinline|. Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments. Leading/trailing empty lines should be preserved by default.
-% \begin{macrocode}
-\setmintedinline[php]{startinline=true}
-\setminted{tabcolor=black}
-\setminted{stripnl=false}
-% \end{macrocode}
%
-% \begin{macro}{\usemintedstyle}
+% \subsection{Public API}
%
-% Set style. This is a holdover from version 1, since |\setminted| can now accomplish this, and a hierarchy of style settings are now possible.
+%
+% \begin{macro}{\setminted}
+% Set global or lexer-level options.
% \begin{macrocode}
-\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
+\newcommand{\setminted}[2][]{%
+ \ifstrempty{#1}%
+ {\pgfkeys{/minted/global/.cd,#2}}%
+ {\let\minted@tmplexer\minted@lexer
+ \edef\minted@lexer{#1}%
+ \pgfkeys{/minted/lexer/.cd,#2}%
+ \let\minted@lexer\minted@tmplexer}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@defwhitespace@retok}
-% The |\mint| and |\mintinline| commands need to be able to retokenize the code they collect, particularly in |draft| mode. Retokenizeation involves expansion combined with |\scantokens|, with active space and tab characters. The active characters need to expand to the appropriate \texpkg{fancyvrb} macros, but the macros themselves should not be expanded. We need a macro that will accomplish the appropriate definitions.
+% \begin{macro}{\setmintedinline}
+% Set global or lexer-level options, but only for inline (|\mintinline|) content. These settings will override the corresponding |\setminted| settings.
% \begin{macrocode}
-\begingroup
-\catcode`\ =\active
-\catcode`\^^I=\active
-\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
-\endgroup
+\newcommand{\setmintedinline}[2][]{%
+ \ifstrempty{#1}%
+ {\pgfkeys{/minted/globalinline/.cd,#2}}%
+ {\let\minted@tmplexer\minted@lexer
+ \edef\minted@lexer{#1}%
+ \pgfkeys{/minted/lexerinline/.cd,#2}%
+ \let\minted@lexer\minted@tmplexer}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@writecmdcode}
-% The |\mintinline| and |\mint| commands will need to write the code they capture to a temporary file for highlighting. It will be convenient to be able to accomplish this via a simple macro, since that makes it simpler to deal with any expansion of what is to be written. This isn't needed for the |minted| environment, because the (patched) |VerbatimOut| is used.
+% \begin{macro}{\usemintedstyle}
+% Set style. This is a holdover from \mintedpkg\ v1, before |\setminted| could be used to set the style.
% \begin{macrocode}
-\newcommand{\minted@writecmdcode}[1]{%
- \immediate\openout\minted@code\minted@jobname.pyg\relax
- \immediate\write\minted@code{\detokenize{#1}}%
- \immediate\closeout\minted@code}
+\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style={#2}}}
% \end{macrocode}
% \end{macro}
%
@@ -3358,11 +4017,9 @@
% \begin{macro}{\mintinline}
% Define an inline command. This is modeled after the reimplemented |\Verb| from \texpkg{fvextra}. See the \texpkg{fvextra} documentation for details about expansion handling, argument reading, and (re)tokenization.
%
-% Pygments emits code wrapped in a |Verbatim| environment. Getting the inline command to work correctly requires redefining |Verbatim| to be \texpkg{fvextra}'s |VerbEnv| temporarily.
-%
% Everything needs to be within a |\begingroup...\endgroup| to prevent settings from escaping.
%
-% In the case of |draft| mode, \texpkg{fvextra}'s |\Verb| is used directly.
+% |\RobustMintInlineProcess@verbatim| doesn't need an explicit |\FVExtraRetokenizeVArg| step because this is done when the code is inserted into |\Verb|.
% \begin{macrocode}
\def\mintinline{%
\FVExtraRobustCommand\RobustMintInline\FVExtraUnexpandedReadStarOArgMArgBVArg}
@@ -3372,37 +4029,56 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}%
- {\PackageError{minted}%
- {Inline delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Inline delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}}
-\def\RobustMintInlineProcess#1#2#3{%
+\def\RobustMintInlineProcess@highlight#1#2#3{%
\begingroup
- \setboolean{minted@isinline}{true}%
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \RobustMintInlineProcess@i{#3}}
-\ifthenelse{\boolean{minted@draft}}%
- {\def\RobustMintInlineProcess@i#1{%
- \fvset{extra=true}%
- \Verb{#1}%
- \endgroup}}%
- {\def\RobustMintInlineProcess@i#1{%
- \FVExtraDetokenizeVArg{%
- \FVExtraRetokenizeVArg{\RobustMintInlineProcess@ii}{\FV@CatCodes}}{#1}}
- \def\RobustMintInlineProcess@ii#1{%
- \minted@writecmdcode{#1}%
- \let\Verbatim\VerbEnv
- \let\endVerbatim\endVerbEnv
- \expandafter\minted@pygmentize\expandafter{\minted@lang}%
- \endgroup}}
+ \booltrue{minted@isinline}%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintInlineProcess@highlight@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintInlineProcess@highlight@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \gdef\minted@tmpcodebufferlength{1}%
+ \let\minted@highlight@fallback\RobustMintInlineProcess@highlight@fallback
+ \minted@highlight
+ \gdef\minted@tmpcodebufferlength{0}%
+ \endgroup}
+\def\RobustMintInlineProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \fvset{extra=true}%
+ \minted@codewrapper{%
+ \expandafter\let\expandafter\minted@tmp\csname minted@tmpcodebufferline1\endcsname
+ \expandafter\Verb\expandafter{\minted@tmp}}}
+\def\RobustMintInlineProcess@placeholder#1#2#3{%
+ \begingroup
+ \booltrue{minted@isinline}%
+ \minted@insertplaceholder
+ \endgroup}
+\def\RobustMintInlineProcess@verbatim#1#2#3{%
+ \begingroup
+ \booltrue{minted@isinline}%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \fvset{extra=true}%
+ \minted@codewrapper{\Verb{#3}}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@verbatim}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\mint}
-%
% Highlight a single line of code. This is essentially a shortcut for the \env{minted} environment when there is only a single line of code. The implementation follows \cmd{\mintinline} for argument reading and processing, but then typesets the code as an environment rather than command. The \cmd{\@doendpe} ensures proper paragraph indentation for following text (immediately following text with no intervening blank lines does not begin a new paragraph).
% \begin{macrocode}
\def\mint{%
@@ -3413,161 +4089,202 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}%
- {\PackageError{minted}%
- {Delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}}
-\def\RobustMintProcess#1#2#3{%
+\def\RobustMintProcess@highlight#1#2#3{%
\begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \RobustMintProcess@i{#3}}
-\begingroup
-\catcode`\^^M=\active%
-\catcode`\<=1%
-\catcode`\>=2%
-\catcode`\{=12%
-\catcode`\}=12%
-\catcode`\!=0%
-\catcode`\\=12%
-!ifthenelse<!boolean<minted@draft>>%
- <!gdef!RobustMintProcess@i#1<%
- !FVExtraDetokenizeVArg<%
- !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
- !gdef!RobustMintProcess@ii#1<%
- !minted@langlinenoson%
- !scantokens<%
- \begin{Verbatim}
- #1
- \end{Verbatim}
- !noexpand>%
- !minted@langlinenosoff%
- !endgroup!@doendpe>>%
- <!gdef!RobustMintProcess@i#1<%
- !FVExtraDetokenizeVArg<%
- !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
- !gdef!RobustMintProcess@ii#1<%
- !minted@writecmdcode<#1>%
- !minted@langlinenoson%
- !expandafter!minted@pygmentize!expandafter<!minted@lang>%
- !minted@langlinenosoff%
- !endgroup!@doendpe>>%
-!endgroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintProcess@highlight@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintProcess@highlight@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \gdef\minted@tmpcodebufferlength{1}%
+ \let\minted@highlight@fallback\RobustMintProcess@highlight@fallback
+ \minted@highlight
+ \gdef\minted@tmpcodebufferlength{0}%
+ \endgroup}
+\def\RobustMintProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}}
+\def\RobustMintProcess@placeholder#1#2#3{%
+ \minted@insertplaceholder}
+\def\RobustMintProcess@verbatim#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintProcess@verbatim@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintProcess@verbatim@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \gdef\minted@tmpcodebufferlength{1}%
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}%
+ \gdef\minted@tmpcodebufferlength{0}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustMintProcess\RobustMintProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustMintProcess\RobustMintProcess@verbatim}%
+ {\let\RobustMintProcess\RobustMintProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
% \begin{environment}{minted}
-%
% Highlight a longer piece of code inside a verbatim environment.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@langlinenoson
- \begin{Verbatim}}%
- {\end{Verbatim}%
- \minted@langlinenosoff}}%
- {\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \let\FVB@VerbatimOut\minted@FVB@VerbatimOut
- \let\FVE@VerbatimOut\minted@FVE@VerbatimOut
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \begin{VerbatimOut}[codes={\catcode`\^^I=12},firstline,lastline]{\minted@jobname.pyg}}%
- {\end{VerbatimOut}%
- \minted@langlinenoson
- \expandafter\minted@pygmentize\expandafter{\minted@lang}%
- \minted@langlinenosoff}}
+\newenvironment{minted}[2][]%
+ {\VerbatimEnvironment
+ \MintedBegin{#1}{#2}}%
+ {\MintedEnd}
+\def\MintedBegin@highlight#1#2{%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \begin{VerbatimBuffer}[buffername=minted@tmpcodebuffer,globalbuffer=true]}
+\def\MintedEnd@highlight{%
+ \end{VerbatimBuffer}%
+ \let\minted@highlight@fallback\MintedEnv@highlight@fallback
+ \minted@highlight
+ \VerbatimClearBuffer[buffername=minted@tmpcodebuffer]}
+\def\MintedEnv@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}}
+\def\MintedBegin@placeholder#1#2{%
+ \begin{VerbatimBuffer}[buffername=minted@tmpcodebuffer]}
+\def\MintedEnd@placeholder{%
+ \end{VerbatimBuffer}%
+ \minted@insertplaceholder}
+\def\MintedBegin@verbatim#1#2{%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \begin{\minted@envname}}
+\def\MintedEnd@verbatim{%
+ \end{\minted@envname}}
+\ifbool{minted@placeholder}%
+ {\let\MintedBegin\MintedBegin@placeholder
+ \let\MintedEnd\MintedEnd@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\MintedBegin\MintedBegin@verbatim
+ \let\MintedEnd\MintedEnd@verbatim}%
+ {\let\MintedBegin\MintedBegin@highlight
+ \let\MintedEnd\MintedEnd@highlight}}
% \end{macrocode}
% \end{environment}
%
-% \begin{macro}{\inputminted}
%
+% \begin{macro}{\inputminted}
% Highlight an external source file.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\newcommand{\inputminted}[3][]{%
- \begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@inputlanglinenoson
- \VerbatimInput{#3}%
- \minted@inputlanglinenosoff
- \endgroup}}%
- {\newcommand{\inputminted}[3][]{%
- \begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@inputlanglinenoson
- \minted@pygmentize[#3]{#2}%
- \minted@inputlanglinenosoff
- \endgroup}}
+\def\minted@readinputmintedargs#1#{%
+ \minted@readinputmintedargs@i{#1}}
+\def\minted@readinputmintedargs@i#1#2#3{%
+ \FVExtraAlwaysUnexpanded{\minted@readinputmintedargs#1{#2}{#3}}}
+\FVExtrapdfstringdefDisableCommands{%
+ \makeatletter
+ \def\minted@readinputmintedargs@i#1#2#3{%
+ \detokenize{<input from file "}#3\detokenize{">}}%
+ \makeatother}
+\def\inputminted{%
+ \FVExtraRobustCommand\RobustInputMinted\minted@readinputmintedargs}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustInputMinted{}}
+\newrobustcmd{\RobustInputMinted}[3][]{%
+ \RobustInputMintedProcess{#1}{#2}{#3}}
+\def\RobustInputMintedProcess@highlight#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \edef\minted@inputfilepath{#3}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \let\minted@highlight@fallback\RobustInputMintedProcess@highlight@fallback
+ \minted@highlightinputfile
+ \endgroup}
+\def\RobustInputMintedProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \csname\minted@envname Input\endcsname{\minted@inputfilepath}}}
+\def\RobustInputMintedProcess@placeholder#1#2#3{%
+ \minted@insertplaceholder}
+\def\RobustInputMintedProcess@verbatim#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \edef\minted@inputfilepath{#3}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \minted@codewrapper{%
+ \csname\minted@envname Input\endcsname{\minted@inputfilepath}}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@verbatim}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
+%
% \subsection{Command shortcuts}
%
-% We allow the user to define shortcuts for the highlighting commands.
+% Allow the user to define shortcuts for the highlighting commands.
%
% \begin{macro}{\newminted}
-%
% Define a new language-specific alias for the |minted| environment.
%
-% \begin{macrocode}
-\newcommand{\newminted}[3][]{
-% \end{macrocode}
-%
-% First, we look whether a custom environment name was given as the first
-% optional argument.
-% If that's not the case, construct it from the language name (append ``|code|'').
+% The starred |*| version of the environment takes a mandatory argument containing options. It is retained for backward compatibility purposes with \mintedpkg\ v1 and v2. \mintedpkg\ v3 added support for an optional argument to the standard environment, so the starred version is no longer necessary.
%
+% The |^^M| is needed because |\FVExtraReadOArgBeforeVEnv| strips a following |^^M| (basically the newline), but \texpkg{fancyvrb} environments expect |^^M| before the start of environment contents.
% \begin{macrocode}
- \ifthenelse{\equal{#1}{}}
- {\def\minted@envname{#2code}}
- {\def\minted@envname{#1}}
-% \end{macrocode}
-%
-% Now, we define two environments.
-% The first takes no further arguments.
-% The second, starred version, takes an extra argument that specifies option
-% overrides.
-%
-% \begin{macrocode}
- \newenvironment{\minted@envname}
- {\VerbatimEnvironment
- \begin{minted}[#3]{#2}}
- {\end{minted}}
- \newenvironment{\minted@envname *}[1]
- {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
- {\end{minted}}}
+\newcommand{\newminted}[3][]{%
+ \ifstrempty{#1}%
+ {\newminted@i{#2code}{#2}{#3}}%
+ {\newminted@i{#1}{#2}{#3}}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\newminted@i#1#2#3{%
+ \expandafter\def\csname#1@i\endcsname##1{%
+ \begin{minted}[#3,##1]{#2}^^M}%
+ \newenvironment{#1}%
+ {\VerbatimEnvironment%
+ \FVExtraReadOArgBeforeVEnv{\csname#1@i\endcsname}}%
+ {\end{minted}}%
+ \newenvironment{#1*}[1]%
+ {\VerbatimEnvironment%
+ \begin{minted}[#3,##1]{#2}}%
+ {\end{minted}}}%
+\endgroup
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\newmint}
-%
% Define a new language-specific alias for the |\mint| short form.
% \begin{macrocode}
\newcommand{\newmint}[3][]{%
- \if\relax\detokenize{#1}\relax
- \def\minted@shortname{#2}%
- \else
- \def\minted@shortname{#1}%
- \fi
- \expandafter\newmint@i\expandafter{\minted@shortname}{#2}{#3}}
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2}}%
+ {\edef\minted@tmp{#1}}
+ \expandafter\newmint@i\expandafter{\minted@tmp}{#2}{#3}}
\def\newmint@i#1#2#3{%
\expandafter\newcommand\csname#1\endcsname{%
\expandafter\FVExtraRobustCommand\csname RobustNewMint#1\endcsname
- \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtraUnexpandedReadStarOArgBVArg}%
\FVExtrapdfstringdefDisableCommands{%
\expandafter\def\csname RobustNewMint#1\endcsname{}}%
\expandafter\newrobustcmd\csname RobustNewMint#1\endcsname{%
@@ -3576,9 +4293,7 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}%
- {\PackageError{minted}%
- {Delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}}
\expandafter\def\csname RobustNewMint#1@ii\endcsname##1##2{%
\RobustMintProcess{#3,##1}{#2}{##2}}}
@@ -3587,23 +4302,30 @@
%
%
% \begin{macro}{\newmintedfile}
-%
% Define a new language-specific alias for |\inputminted|.
% \begin{macrocode}
-\newcommand{\newmintedfile}[3][]{
-% \end{macrocode}
-% Here, the default macro name (if none is provided) appends ``|file|'' to the language name.
-% \begin{macrocode}
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2file}}
- {\def\minted@shortname{#1}}
-% \end{macrocode}
-%
-% \dots and define the macro.
-%
-% \begin{macrocode}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \inputminted[#3,##1]{#2}{##2}}}
+\def\minted@readnewmintedfileargs#1#{%
+ \minted@readnewmintedfileargs@i{#1}}
+\def\minted@readnewmintedfileargs@i#1#2{%
+ \FVExtraAlwaysUnexpanded{\minted@readnewmintedfileargs#1{#2}}}
+\FVExtrapdfstringdefDisableCommands{%
+ \makeatletter
+ \def\minted@readnewmintedfileargs@i#1#2{%
+ \detokenize{<input from file "}#2\detokenize{">}}%
+ \makeatother}
+\newcommand{\newmintedfile}[3][]{%
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2file}}%
+ {\edef\minted@tmp{#1}}%
+ \expandafter\newmintedfile@i\expandafter{\minted@tmp}{#2}{#3}}
+\def\newmintedfile@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMintedFile#1\endcsname
+ \minted@readnewmintedfileargs}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMintedFile#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMintedFile#1\endcsname[2][]{%
+ \RobustInputMintedProcess{#3,##1}{#2}{##2}}}
% \end{macrocode}
% \end{macro}
%
@@ -3612,16 +4334,14 @@
% Define an alias for |\mintinline|.
% \begin{macrocode}
\newcommand{\newmintinline}[3][]{%
- \if\relax\detokenize{#1}\relax
- \def\minted@shortname{#2inline}%
- \else
- \def\minted@shortname{#1}%
- \fi
- \expandafter\newmintinline@i\expandafter{\minted@shortname}{#2}{#3}}
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2inline}}%
+ {\edef\minted@tmp{#1}}%
+ \expandafter\newmintinline@i\expandafter{\minted@tmp}{#2}{#3}}
\def\newmintinline@i#1#2#3{%
\expandafter\newcommand\csname#1\endcsname{%
\expandafter\FVExtraRobustCommand\csname RobustNewMintInline#1\endcsname
- \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtraUnexpandedReadStarOArgBVArg}%
\FVExtrapdfstringdefDisableCommands{%
\expandafter\def\csname RobustNewMintInline#1\endcsname{}}%
\expandafter\newrobustcmd\csname RobustNewMintInline#1\endcsname{%
@@ -3630,9 +4350,7 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}%
- {\PackageError{minted}%
- {Inline delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Inline delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}}
\expandafter\def\csname RobustNewMintInline#1@ii\endcsname##1##2{%
\RobustMintInlineProcess{#3,##1}{#2}{##2}}}
@@ -3640,22 +4358,22 @@
% \end{macro}
%
%
+%
% \subsection{Float support}
%
-% \begin{environment}{listing}
%
+% \begin{environment}{listing}
% Define a new floating environment to use for floated listings. This is defined conditionally based on the |newfloat| package option.
-%
% \begin{macrocode}
-\ifthenelse{\boolean{minted@newfloat}}%
+\ifbool{minted@newfloat}%
{\@ifundefined{minted@float@within}%
- {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
- {\def\minted@tmp#1{%
- \DeclareFloatingEnvironment[fileext=lol,placement=tbp, within=#1]{listing}}%
- \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
+ {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
+ {\def\minted@tmp#1{%
+ \DeclareFloatingEnvironment[fileext=lol,placement=tbp,within=#1]{listing}}%
+ \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
{\@ifundefined{minted@float@within}%
- {\newfloat{listing}{tbp}{lol}}%
- {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
+ {\newfloat{listing}{tbp}{lol}}%
+ {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
% \end{macrocode}
% \end{environment}
%
@@ -3665,36 +4383,29 @@
% \end{macrocode}
%
% \begin{macro}{\listingcaption}
-%
% The name that is displayed before each individual listings caption and its number.
% The macro |\listingscaption| can be redefined by the user.
-%
% \begin{macrocode}
\newcommand{\listingscaption}{Listing}
% \end{macrocode}
%
% The following definition should not be changed by the user.
-%
% \begin{macrocode}
\floatname{listing}{\listingscaption}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listoflistingscaption}
-%
% The caption that is displayed for the list of listings.
-%
% \begin{macrocode}
\newcommand{\listoflistingscaption}{List of Listings}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listoflistings}
-%
% Used to produce a list of listings (like |\listoffigures| etc.).
% This may well clash with other packages (for example, \texpkg{listings}) but we choose to ignore this
% since these two packages shouldn't be used together in the first place.
-%
% \begin{macrocode}
\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
% \end{macrocode}
@@ -3705,323 +4416,11 @@
\fi
% \end{macrocode}
%
-% \subsection{Epilogue}
-%
-% Check whether LaTeX was invoked with |-shell-escape| option, set the default style, and make sure |pygmentize| exists. Checking for |pygmentize| must wait until the end of the preamble, in case it is specified via |\MintedPygmentize| (which would typically be after the package is loaded).
-%
-% \begin{macrocode}
-\AtEndOfPackage{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {%
- \ifthenelse{\boolean{minted@frozencache}}{}{%
- \ifnum\pdf@shellescape=1\relax\else
- \PackageError{minted}%
- {You must invoke LaTeX with the
- -shell-escape flag}%
- {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
- documentation for more information.}%
- \fi}%
- }%
-}
-\AtEndPreamble{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {%
- \ifthenelse{\boolean{minted@frozencache}}{}{%
- \TestAppExists{\MintedPygmentize}%
- \ifAppExists\else
- \PackageError{minted}%
- {You must have `pygmentize' installed
- to use this package}%
- {Refer to the installation instructions in the minted
- documentation for more information.}%
- \fi}%
- }%
-}
-% \end{macrocode}
-%
-%
-%
-% \subsection{Final cleanup}
-%
-% Clean up temp files. What actually needs to be done depends on caching and engine.
-% \begin{macrocode}
-\AfterEndDocument{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {}
- {\ifx\XeTeXinterchartoks\minted@undefined
- \else
- \DeleteFile[\minted@outputdir]{\minted@jobname.mintedcmd}%
- \DeleteFile[\minted@outputdir]{\minted@jobname.mintedmd5}%
- \fi
- \DeleteFile[\minted@outputdir]{\minted@jobname.pyg}%
- \DeleteFile[\minted@outputdir]{\minted@jobname.out.pyg}%
- }%
- }%
-}
-% \end{macrocode}
%
% \iffalse
%</package>
% \fi
%
%
-%
-% \section{Implementation of compatibility package}
-% \setcounter{CodelineNo}{0}
-%
-% \iffalse
-%<*packageone>
-% \fi
-%
-% \texpkg{minted} version 2 is designed to be completely compatible with version 1.7. All of the same options and commands still exist. As far as most users are concerned, the only difference should be the new commands and options.
-%
-% However, \texpkg{minted} 2 does require some additional packages compared to \texpkg{minted} 1.7. More importantly, since \texpkg{minted} 2 has almost completely new internal code, user code that accessed the internals of 1.7 will generally not work with 2.0, at least not without some modification. For these reasons, a copy of \texpkg{minted} 1.7 is supplied as the package \texpkg{minted1}. This is intended \emph{only} for compatibility cases when using the current version is too inconvenient.
-%
-% The code in \texpkg{minted1} is an exact copy of \texpkg{minted} version 1.7, except for two things: (1) the package has been renamed, and (2) code has been added that allows \texpkg{minted1} to act as (impersonate) \texpkg{minted}, so that it can cooperate with other packages that require \texpkg{minted} to be loaded.\footnote{The approach used for doing this is described at \url{http://tex.stackexchange.com/a/39418/10742}.} When \texpkg{minted1} is used, it must be loaded \emph{before} any other packages that would require \texpkg{minted}.
-%
-% All modifications to the original \texpkg{minted} 1.7 source are indicated with comments. All original code that has been replaced has been commented out rather than deleted. Any future modifications of \texpkg{minted1} should \emph{only} be for the purpose of allowing it to serve better as a drop-in compatibility substitute for the current release of \texpkg{minted}.
-%
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-%%%% Begin minted1 modification
-%%\ProvidesPackage{minted}[2011/09/17 v1.7 Yet another Pygments shim for LaTeX]
-\ProvidesPackage{minted1}[2015/01/31 v1.0 minted 1.7 compatibility package]
-%%%% End minted1 modification
-\RequirePackage{keyval}
-\RequirePackage{fancyvrb}
-\RequirePackage{xcolor}
-\RequirePackage{float}
-\RequirePackage{ifthen}
-%%%% Begin minted1 modification
-\newboolean{mintedone@mintedloaded}
-\@ifpackageloaded{minted}%
- {\setboolean{mintedone@mintedloaded}{true}%
- \PackageError{minted1}{The package "minted1" may not be loaded after
- ^^J"minted" has already been loaded--load "minted1" only for "minted"
- ^^Jversion 1.7 compatibility}%
- {Load "minted1" only when "minted" version 1.7 compatibility is required}}%
- {}
-\ifmintedone@mintedloaded\else
-\@namedef{ver@minted.sty}{2011/09/17 v1.7 Yet another Pygments shim for LaTeX}
-\expandafter\let\expandafter\minted@tmp\csname opt@minted1.sty\endcsname
-\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
-\let\minted@tmp\relax
-%%%% End minted1 modification
-\RequirePackage{calc}
-\RequirePackage{ifplatform}
-\DeclareOption{chapter}{\def\minted@float@within{chapter}}
-\DeclareOption{section}{\def\minted@float@within{section}}
-\ProcessOptions\relax
-\ifwindows
- \providecommand\DeleteFile[1]{\immediate\write18{del #1}}
-\else
- \providecommand\DeleteFile[1]{\immediate\write18{rm #1}}
-\fi
-\newboolean{AppExists}
-\newcommand\TestAppExists[1]{
- \ifwindows
- \DeleteFile{\jobname.aex}
- \immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
- do set >\jobname.aex <nul: /p x=\string^\@percentchar \string~$PATH:i>>\jobname.aex} %$
- \newread\@appexistsfile
- \immediate\openin\@appexistsfile\jobname.aex
- \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
- \endlinechar=-1\relax
- \readline\@appexistsfile to \@apppathifexists
- \endlinechar=\@tmp@cr
- \ifthenelse{\equal{\@apppathifexists}{}}
- {\AppExistsfalse}
- {\AppExiststrue}
- \immediate\closein\@appexistsfile
- \DeleteFile{\jobname.aex}
-\immediate\typeout{file deleted}
- \else
- \immediate\write18{which #1 && touch \jobname.aex}
- \IfFileExists{\jobname.aex}
- {\AppExiststrue
- \DeleteFile{\jobname.aex}}
- {\AppExistsfalse}
- \fi}
-\newcommand\minted@resetoptions{}
-\newcommand\minted@defopt[1]{
- \expandafter\def\expandafter\minted@resetoptions\expandafter{%
- \minted@resetoptions
- \@namedef{minted@opt@#1}{}}}
-\newcommand\minted@opt[1]{
- \expandafter\detokenize%
- \expandafter\expandafter\expandafter{\csname minted@opt@#1\endcsname}}
-\newcommand\minted@define@opt[3][]{
- \minted@defopt{#2}
- \ifthenelse{\equal{#1}{}}{
- \define@key{minted@opt}{#2}{\@namedef{minted@opt@#2}{#3}}}
- {\define@key{minted@opt}{#2}[#1]{\@namedef{minted@opt@#2}{#3}}}}
-\newcommand\minted@define@switch[3][]{
- \minted@defopt{#2}
- \define@booleankey{minted@opt}{#2}
- {\@namedef{minted@opt@#2}{#3}}
- {\@namedef{minted@opt@#2}{#1}}}
-\minted@defopt{extra}
-\newcommand\minted@define@extra[1]{
- \define@key{minted@opt}{#1}{
- \expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1=##1}}}
-\newcommand\minted@define@extra@switch[1]{
- \define@booleankey{minted@opt}{#1}
- {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1}}
- {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1=false}}}
-\minted@define@switch{texcl}{-P texcomments}
-\minted@define@switch{mathescape}{-P mathescape}
-\minted@define@switch{linenos}{-P linenos}
-\minted@define@switch{startinline}{-P startinline}
-\minted@define@switch[-P funcnamehighlighting=False]%
- {funcnamehighlighting}{-P funcnamehighlighting}
-\minted@define@opt{gobble}{-F gobble:n=#1}
-\minted@define@opt{bgcolor}{#1}
-\minted@define@extra{frame}
-\minted@define@extra{framesep}
-\minted@define@extra{framerule}
-\minted@define@extra{rulecolor}
-\minted@define@extra{numbersep}
-\minted@define@extra{firstnumber}
-\minted@define@extra{stepnumber}
-\minted@define@extra{firstline}
-\minted@define@extra{lastline}
-\minted@define@extra{baselinestretch}
-\minted@define@extra{xleftmargin}
-\minted@define@extra{xrightmargin}
-\minted@define@extra{fillcolor}
-\minted@define@extra{tabsize}
-\minted@define@extra{fontfamily}
-\minted@define@extra{fontsize}
-\minted@define@extra{fontshape}
-\minted@define@extra{fontseries}
-\minted@define@extra{formatcom}
-\minted@define@extra{label}
-\minted@define@extra@switch{numberblanklines}
-\minted@define@extra@switch{showspaces}
-\minted@define@extra@switch{resetmargins}
-\minted@define@extra@switch{samepage}
-\minted@define@extra@switch{showtabs}
-\minted@define@extra@switch{obeytabs}
-\newsavebox{\minted@bgbox}
-\newenvironment{minted@colorbg}[1]{
- \def\minted@bgcol{#1}
- \noindent
- \begin{lrbox}{\minted@bgbox}
- \begin{minipage}{\linewidth-2\fboxsep}}
- {\end{minipage}
- \end{lrbox}%
- \colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
-\newwrite\minted@code
-\newcommand\minted@savecode[1]{
- \immediate\openout\minted@code\jobname.pyg
- \immediate\write\minted@code{#1}
- \immediate\closeout\minted@code}
-\newcommand\minted@pygmentize[2][\jobname.pyg]{
- \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
- \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
- \minted@opt{startinline} \minted@opt{funcnamehighlighting}
- \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
- -o \jobname.out.pyg #1}
- \immediate\write18{\minted@cmd}
- % For debugging, uncomment:
- %\immediate\typeout{\minted@cmd}
- \ifthenelse{\equal{\minted@opt@bgcolor}{}}
- {}
- {\begin{minted@colorbg}{\minted@opt@bgcolor}}
- \input{\jobname.out.pyg}
- \ifthenelse{\equal{\minted@opt@bgcolor}{}}
- {}
- {\end{minted@colorbg}}
- \DeleteFile{\jobname.out.pyg}}
-\newcommand\minted@usedefaultstyle{\usemintedstyle{default}}
-\newcommand\usemintedstyle[1]{
- \renewcommand\minted@usedefaultstyle{}
- \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg}
- \input{\jobname.pyg}}
-\newcommand\mint[3][]{
- \DefineShortVerb{#3}
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \SaveVerb[aftersave={
- \UndefineShortVerb{#3}
- \minted@savecode{\FV@SV@minted@verb}
- \minted@pygmentize{#2}
- \DeleteFile{\jobname.pyg}}]{minted@verb}#3}
-\newcommand\minted@proglang[1]{}
-\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \renewcommand{\minted@proglang}[1]{#2}
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
- {\end{VerbatimOut}
- \minted@pygmentize{\minted@proglang{}}
- \DeleteFile{\jobname.pyg}}
-\newcommand\inputminted[3][]{
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \minted@pygmentize[#3]{#2}}
-\newcommand\newminted[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@envname{#2code}}
- {\def\minted@envname{#1}}
- \newenvironment{\minted@envname}
- {\VerbatimEnvironment\begin{minted}[#3]{#2}}
- {\end{minted}}
- \newenvironment{\minted@envname *}[1]
- {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
- {\end{minted}}}
-\newcommand\newmint[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2}}
- {\def\minted@shortname{#1}}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \mint[#3,##1]{#2}##2}}
-\newcommand\newmintedfile[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2file}}
- {\def\minted@shortname{#1}}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \inputminted[#3,##1]{#2}{##2}}}
-\@ifundefined{minted@float@within}
- {\newfloat{listing}{h}{lol}}
- {\newfloat{listing}{h}{lol}[\minted@float@within]}
-\newcommand\listingscaption{Listing}
-\floatname{listing}{\listingscaption}
-\newcommand\listoflistingscaption{List of listings}
-\providecommand\listoflistings{\listof{listing}{\listoflistingscaption}}
-\AtBeginDocument{
- \minted@usedefaultstyle}
-\AtEndOfPackage{
- \ifnum\pdf@shellescape=1\relax\else
- \PackageError{minted}
- {You must invoke LaTeX with the
- -shell-escape flag}
- {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
- documentation for more information.}\fi
- \TestAppExists{pygmentize}
- \ifAppExists\else
- \PackageError{minted}
- {You must have `pygmentize' installed
- to use this package}
- {Refer to the installation instructions in the minted
- documentation for more information.}
- \fi}
-%%%% Begin minted1 modification
-\fi
-%%%% End minted1 modification
-% \end{macrocode}
-% \iffalse
-%</packageone>
-% \fi
-%
% \Finale
\endinput
-
diff --git a/macros/latex/contrib/minted/minted.ins b/macros/latex/contrib/minted/minted.ins
index 2b5da824ca..61f72c6b0a 100644
--- a/macros/latex/contrib/minted/minted.ins
+++ b/macros/latex/contrib/minted/minted.ins
@@ -3,19 +3,17 @@
\askforoverwritefalse
\preamble
-Copyright 2013--2022 Geoffrey M. Poore
-Copyright 2010--2011 Konrad Rudolph
+Copyright (C) 2013-2024 by Geoffrey M. Poore <gpoore@gmail.com>
+Copyright (C) 2010-2011 by Konrad Rudolph <konrad_rudolph@madrat.net>
+--------------------------------------------------------------------------
This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
+conditions of the LaTeX Project Public License, either version 1.3c
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-Additionally, the project may be distributed under the terms of the new BSD
-license.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
This work has the LPPL maintenance status `maintained'.
@@ -23,14 +21,13 @@ The Current Maintainer of this work is Geoffrey Poore.
This work consists of the files minted.dtx and minted.ins
and the derived file minted.sty.
+
\endpreamble
\usedir{tex/latex/minted}
\generate{%
\file{minted.sty}{\from{minted.dtx}{package}}%
- \file{minted1.sty}{\from{minted.dtx}{packageone}}%
}
\endbatchfile
-% vim: ft=tex
diff --git a/macros/latex/contrib/minted/minted.pdf b/macros/latex/contrib/minted/minted.pdf
index 352f07b667..0fc12e6135 100644
--- a/macros/latex/contrib/minted/minted.pdf
+++ b/macros/latex/contrib/minted/minted.pdf
Binary files differ
diff --git a/macros/latex/contrib/minted/minted1.sty b/macros/latex/contrib/minted/minted1.sty
new file mode 100644
index 0000000000..12b71d1bb8
--- /dev/null
+++ b/macros/latex/contrib/minted/minted1.sty
@@ -0,0 +1,261 @@
+%%
+%% This is file `minted1.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% minted.dtx (with options: `packageone')
+%% Copyright 2013--2022 Geoffrey M. Poore
+%% Copyright 2010--2011 Konrad Rudolph
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% Additionally, the project may be distributed under the terms of the new BSD
+%% license.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Geoffrey Poore.
+%%
+%% This work consists of the files minted.dtx and minted.ins
+%% and the derived file minted.sty.
+\NeedsTeXFormat{LaTeX2e}
+%%%% Begin minted1 modification
+%%\ProvidesPackage{minted}[2011/09/17 v1.7 Yet another Pygments shim for LaTeX]
+\ProvidesPackage{minted1}[2015/01/31 v1.0 minted 1.7 compatibility package]
+%%%% End minted1 modification
+\RequirePackage{keyval}
+\RequirePackage{fancyvrb}
+\RequirePackage{xcolor}
+\RequirePackage{float}
+\RequirePackage{ifthen}
+%%%% Begin minted1 modification
+\newboolean{mintedone@mintedloaded}
+\@ifpackageloaded{minted}%
+ {\setboolean{mintedone@mintedloaded}{true}%
+ \PackageError{minted1}{The package "minted1" may not be loaded after
+ ^^J"minted" has already been loaded--load "minted1" only for "minted"
+ ^^Jversion 1.7 compatibility}%
+ {Load "minted1" only when "minted" version 1.7 compatibility is required}}%
+ {}
+\ifmintedone@mintedloaded\else
+\@namedef{ver@minted.sty}{2011/09/17 v1.7 Yet another Pygments shim for LaTeX}
+\expandafter\let\expandafter\minted@tmp\csname opt@minted1.sty\endcsname
+\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
+\let\minted@tmp\relax
+%%%% End minted1 modification
+\RequirePackage{calc}
+\RequirePackage{ifplatform}
+\DeclareOption{chapter}{\def\minted@float@within{chapter}}
+\DeclareOption{section}{\def\minted@float@within{section}}
+\ProcessOptions\relax
+\ifwindows
+ \providecommand\DeleteFile[1]{\immediate\write18{del #1}}
+\else
+ \providecommand\DeleteFile[1]{\immediate\write18{rm #1}}
+\fi
+\newboolean{AppExists}
+\newcommand\TestAppExists[1]{
+ \ifwindows
+ \DeleteFile{\jobname.aex}
+ \immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
+ do set >\jobname.aex <nul: /p x=\string^\@percentchar \string~$PATH:i>>\jobname.aex} %$
+ \newread\@appexistsfile
+ \immediate\openin\@appexistsfile\jobname.aex
+ \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
+ \endlinechar=-1\relax
+ \readline\@appexistsfile to \@apppathifexists
+ \endlinechar=\@tmp@cr
+ \ifthenelse{\equal{\@apppathifexists}{}}
+ {\AppExistsfalse}
+ {\AppExiststrue}
+ \immediate\closein\@appexistsfile
+ \DeleteFile{\jobname.aex}
+\immediate\typeout{file deleted}
+ \else
+ \immediate\write18{which #1 && touch \jobname.aex}
+ \IfFileExists{\jobname.aex}
+ {\AppExiststrue
+ \DeleteFile{\jobname.aex}}
+ {\AppExistsfalse}
+ \fi}
+\newcommand\minted@resetoptions{}
+\newcommand\minted@defopt[1]{
+ \expandafter\def\expandafter\minted@resetoptions\expandafter{%
+ \minted@resetoptions
+ \@namedef{minted@opt@#1}{}}}
+\newcommand\minted@opt[1]{
+ \expandafter\detokenize%
+ \expandafter\expandafter\expandafter{\csname minted@opt@#1\endcsname}}
+\newcommand\minted@define@opt[3][]{
+ \minted@defopt{#2}
+ \ifthenelse{\equal{#1}{}}{
+ \define@key{minted@opt}{#2}{\@namedef{minted@opt@#2}{#3}}}
+ {\define@key{minted@opt}{#2}[#1]{\@namedef{minted@opt@#2}{#3}}}}
+\newcommand\minted@define@switch[3][]{
+ \minted@defopt{#2}
+ \define@booleankey{minted@opt}{#2}
+ {\@namedef{minted@opt@#2}{#3}}
+ {\@namedef{minted@opt@#2}{#1}}}
+\minted@defopt{extra}
+\newcommand\minted@define@extra[1]{
+ \define@key{minted@opt}{#1}{
+ \expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1=##1}}}
+\newcommand\minted@define@extra@switch[1]{
+ \define@booleankey{minted@opt}{#1}
+ {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1}}
+ {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1=false}}}
+\minted@define@switch{texcl}{-P texcomments}
+\minted@define@switch{mathescape}{-P mathescape}
+\minted@define@switch{linenos}{-P linenos}
+\minted@define@switch{startinline}{-P startinline}
+\minted@define@switch[-P funcnamehighlighting=False]%
+ {funcnamehighlighting}{-P funcnamehighlighting}
+\minted@define@opt{gobble}{-F gobble:n=#1}
+\minted@define@opt{bgcolor}{#1}
+\minted@define@extra{frame}
+\minted@define@extra{framesep}
+\minted@define@extra{framerule}
+\minted@define@extra{rulecolor}
+\minted@define@extra{numbersep}
+\minted@define@extra{firstnumber}
+\minted@define@extra{stepnumber}
+\minted@define@extra{firstline}
+\minted@define@extra{lastline}
+\minted@define@extra{baselinestretch}
+\minted@define@extra{xleftmargin}
+\minted@define@extra{xrightmargin}
+\minted@define@extra{fillcolor}
+\minted@define@extra{tabsize}
+\minted@define@extra{fontfamily}
+\minted@define@extra{fontsize}
+\minted@define@extra{fontshape}
+\minted@define@extra{fontseries}
+\minted@define@extra{formatcom}
+\minted@define@extra{label}
+\minted@define@extra@switch{numberblanklines}
+\minted@define@extra@switch{showspaces}
+\minted@define@extra@switch{resetmargins}
+\minted@define@extra@switch{samepage}
+\minted@define@extra@switch{showtabs}
+\minted@define@extra@switch{obeytabs}
+\newsavebox{\minted@bgbox}
+\newenvironment{minted@colorbg}[1]{
+ \def\minted@bgcol{#1}
+ \noindent
+ \begin{lrbox}{\minted@bgbox}
+ \begin{minipage}{\linewidth-2\fboxsep}}
+ {\end{minipage}
+ \end{lrbox}%
+ \colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
+\newwrite\minted@code
+\newcommand\minted@savecode[1]{
+ \immediate\openout\minted@code\jobname.pyg
+ \immediate\write\minted@code{#1}
+ \immediate\closeout\minted@code}
+\newcommand\minted@pygmentize[2][\jobname.pyg]{
+ \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
+ \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
+ \minted@opt{startinline} \minted@opt{funcnamehighlighting}
+ \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
+ -o \jobname.out.pyg #1}
+ \immediate\write18{\minted@cmd}
+ % For debugging, uncomment:
+ %\immediate\typeout{\minted@cmd}
+ \ifthenelse{\equal{\minted@opt@bgcolor}{}}
+ {}
+ {\begin{minted@colorbg}{\minted@opt@bgcolor}}
+ \input{\jobname.out.pyg}
+ \ifthenelse{\equal{\minted@opt@bgcolor}{}}
+ {}
+ {\end{minted@colorbg}}
+ \DeleteFile{\jobname.out.pyg}}
+\newcommand\minted@usedefaultstyle{\usemintedstyle{default}}
+\newcommand\usemintedstyle[1]{
+ \renewcommand\minted@usedefaultstyle{}
+ \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg}
+ \input{\jobname.pyg}}
+\newcommand\mint[3][]{
+ \DefineShortVerb{#3}
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \SaveVerb[aftersave={
+ \UndefineShortVerb{#3}
+ \minted@savecode{\FV@SV@minted@verb}
+ \minted@pygmentize{#2}
+ \DeleteFile{\jobname.pyg}}]{minted@verb}#3}
+\newcommand\minted@proglang[1]{}
+\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \renewcommand{\minted@proglang}[1]{#2}
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
+ {\end{VerbatimOut}
+ \minted@pygmentize{\minted@proglang{}}
+ \DeleteFile{\jobname.pyg}}
+\newcommand\inputminted[3][]{
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \minted@pygmentize[#3]{#2}}
+\newcommand\newminted[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@envname{#2code}}
+ {\def\minted@envname{#1}}
+ \newenvironment{\minted@envname}
+ {\VerbatimEnvironment\begin{minted}[#3]{#2}}
+ {\end{minted}}
+ \newenvironment{\minted@envname *}[1]
+ {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
+ {\end{minted}}}
+\newcommand\newmint[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \mint[#3,##1]{#2}##2}}
+\newcommand\newmintedfile[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2file}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \inputminted[#3,##1]{#2}{##2}}}
+\@ifundefined{minted@float@within}
+ {\newfloat{listing}{h}{lol}}
+ {\newfloat{listing}{h}{lol}[\minted@float@within]}
+\newcommand\listingscaption{Listing}
+\floatname{listing}{\listingscaption}
+\newcommand\listoflistingscaption{List of listings}
+\providecommand\listoflistings{\listof{listing}{\listoflistingscaption}}
+\AtBeginDocument{
+ \minted@usedefaultstyle}
+\AtEndOfPackage{
+ \ifnum\pdf@shellescape=1\relax\else
+ \PackageError{minted}
+ {You must invoke LaTeX with the
+ -shell-escape flag}
+ {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
+ documentation for more information.}\fi
+ \TestAppExists{pygmentize}
+ \ifAppExists\else
+ \PackageError{minted}
+ {You must have `pygmentize' installed
+ to use this package}
+ {Refer to the installation instructions in the minted
+ documentation for more information.}
+ \fi}
+%%%% Begin minted1 modification
+\fi
+%%%% End minted1 modification
+\endinput
+%%
+%% End of file `minted1.sty'.
diff --git a/macros/latex/contrib/minted/minted2.sty b/macros/latex/contrib/minted/minted2.sty
new file mode 100644
index 0000000000..e2431e4714
--- /dev/null
+++ b/macros/latex/contrib/minted/minted2.sty
@@ -0,0 +1,1285 @@
+%%
+%% This is file `minted2.sty'.
+%%
+%% Copyright 2013--2024 Geoffrey M. Poore
+%% Copyright 2010--2011 Konrad Rudolph
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% Additionally, the project may be distributed under the terms of the new BSD
+%% license.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Geoffrey Poore.
+%%
+%% This work consists of the file minted2.sty.
+\NeedsTeXFormat{LaTeX2e}
+%%%% Begin minted2 modification
+%% \ProvidesPackage{minted}
+%% [2023/12/18 v2.9 Yet another Pygments shim for LaTeX]
+\ProvidesPackage{minted2}
+ [2024/05/09 v2.9 Yet another Pygments shim for LaTeX]
+\IfPackageLoadedTF{minted}%
+ {\PackageError{minted2}%
+ {Packages minted and minted2 cannot be loaded at the same time}{}%
+ \endinput}%
+ {}
+\@namedef{ver@minted.sty}{2023/12/18 v2.9 Yet another Pygments shim for LaTeX}
+\expandafter\let\expandafter\minted@tmp\csname opt@minted2.sty\endcsname
+\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
+\let\minted@tmp\relax
+%%%% End minted2 modification
+\RequirePackage{keyval}
+\RequirePackage{kvoptions}
+%%%% Begin minted2 modification
+\SetupKeyvalOptions{family=minted, prefix=minted@}
+%%%% End minted2 modification
+\RequirePackage{fvextra}[2022/11/30]
+\RequirePackage{ifthen}
+\IfFileExists{shellesc.sty}
+ {\RequirePackage{shellesc}
+ \@ifpackagelater{shellesc}{2016/04/29}
+ {}
+ {\protected\def\ShellEscape{\immediate\write18 }}}
+ {\protected\def\ShellEscape{\immediate\write18 }}
+\RequirePackage{ifplatform}
+\RequirePackage{pdftexcmds}
+\RequirePackage{etoolbox}
+\RequirePackage{xstring}
+\RequirePackage{lineno}
+\RequirePackage{framed}
+\RequirePackage{catchfile}
+\AtEndPreamble{%
+ \@ifpackageloaded{color}{}{%
+ \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
+}
+\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
+\DeclareVoidOption{section}{\def\minted@float@within{section}}
+\DeclareBoolOption{newfloat}
+\DeclareBoolOption[true]{cache}
+\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{*}{_}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{'}{_}[\minted@jobname]
+\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
+\let\minted@cachedir@windows\minted@cachedir
+\define@key{minted}{cachedir}{%
+ \@namedef{minted@cachedir}{#1}%
+ \StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
+\DeclareBoolOption{finalizecache}
+\DeclareBoolOption{frozencache}
+\let\minted@outputdir\@empty
+\let\minted@outputdir@windows\@empty
+\define@key{minted}{outputdir}{%
+ \@namedef{minted@outputdir}{#1/}%
+ \StrSubstitute{\minted@outputdir}{/}%
+ {\@backslashchar}[\minted@outputdir@windows]}
+\DeclareBoolOption{inputlanglinenos}
+\DeclareBoolOption{kpsewhich}
+\DeclareBoolOption{langlinenos}
+\DeclareBoolOption{draft}
+\DeclareComplementaryOption{final}{draft}
+\ProcessKeyvalOptions*
+\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{\RequirePackage{float}}
+\ifcsname tikzifexternalizing\endcsname
+ \tikzifexternalizing{\minted@drafttrue\minted@cachefalse}{}
+\else
+ \ifcsname tikzexternalrealjob\endcsname
+ \minted@drafttrue
+ \minted@cachefalse
+ \else
+ \fi
+\fi
+\ifthenelse{\boolean{minted@finalizecache}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Options "finalizecache" and "frozencache" are not compatible}%
+ {Options "finalizecache" and "frozencache" are not compatible}}%
+ {}}%
+ {}
+\ifthenelse{\boolean{minted@cache}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {}%
+ {\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}}%
+ {}
+\newcommand{\minted@input}[1]{%
+ \IfFileExists{#1}%
+ {\input{#1}}%
+ {\PackageError{minted}{Missing Pygments output; \string\inputminted\space
+ was^^Jprobably given a file that does not exist--otherwise, you may need
+ ^^Jthe outputdir package option, or may be using an incompatible build
+ tool,^^Jor may be using frozencache with a missing file}%
+ {This could be caused by using -output-directory or -aux-directory
+ ^^Jwithout setting minted's outputdir, or by using a build tool that
+ ^^Jchanges paths in ways minted cannot detect,
+ ^^Jor using frozencache with a missing file.}}%
+}
+\newcommand{\minted@infile}{\minted@jobname.out.pyg}
+\newcommand{\minted@cachelist}{}
+\newcommand{\minted@addcachefile}[1]{%
+ \expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
+ \minted@cachelist,^^J%
+ \space\space#1}%
+ \expandafter\gdef\csname minted@cached@#1\endcsname{}%
+}
+\newcommand{\minted@savecachelist}{%
+ \ifdefempty{\minted@cachelist}{}{%
+ \immediate\write\@mainaux{%
+ \string\gdef\string\minted@oldcachelist\string{%
+ \minted@cachelist\string}}%
+ }%
+}
+\newcommand{\minted@cleancache}{%
+ \ifcsname minted@oldcachelist\endcsname
+ \def\do##1{%
+ \ifthenelse{\equal{##1}{}}{}{%
+ \ifcsname minted@cached@##1\endcsname\else
+ \DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
+ \fi
+ }%
+ }%
+ \expandafter\docsvlist\expandafter{\minted@oldcachelist}%
+ \else
+ \fi
+}
+\ifthenelse{\boolean{minted@draft}}%
+ {\AtEndDocument{%
+ \ifcsname minted@oldcachelist\endcsname
+ \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
+ \minted@savecachelist
+ \fi}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\AtEndDocument{%
+ \ifcsname minted@oldcachelist\endcsname
+ \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
+ \minted@savecachelist
+ \fi}}%
+ {\AtEndDocument{%
+ \minted@savecachelist
+ \minted@cleancache}}}%
+\ifwindows
+ \providecommand{\DeleteFile}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\IfFileExists{#2}{\ShellEscape{del #2}}{}}%
+ {\IfFileExists{#1/#2}{%
+ \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
+ \ShellEscape{del \minted@windir\@backslashchar #2}}{}}}
+\else
+ \providecommand{\DeleteFile}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\IfFileExists{#2}{\ShellEscape{rm #2}}{}}%
+ {\IfFileExists{#1/#2}{\ShellEscape{rm #1/#2}}{}}}
+\fi
+\ifwindows
+ \newcommand{\ProvideDirectory}[1]{%
+ \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
+ \ShellEscape{if not exist \minted@windir\space mkdir \minted@windir}}
+\else
+ \newcommand{\ProvideDirectory}[1]{%
+ \ShellEscape{mkdir -p #1}}
+\fi
+\newboolean{AppExists}
+\newread\minted@appexistsfile
+\newcommand{\TestAppExists}[1]{%
+ \ifwindows
+ \DeleteFile{\minted@jobname.aex}%
+ \ShellEscape{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
+ do set > \minted@jobname.aex <nul: /p
+ x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}%
+ %$ <- balance syntax highlighting
+ \immediate\openin\minted@appexistsfile\minted@jobname.aex
+ \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}%
+ \endlinechar=-1\relax
+ \readline\minted@appexistsfile to \minted@apppathifexists
+ \endlinechar=\@tmp@cr
+ \ifthenelse{\equal{\minted@apppathifexists}{}}%
+ {\AppExistsfalse}%
+ {\AppExiststrue}%
+ \immediate\closein\minted@appexistsfile
+ \DeleteFile{\minted@jobname.aex}%
+ \else
+ \ShellEscape{command -v #1 && touch \minted@jobname.aex}%
+ \IfFileExists{\minted@jobname.aex}%
+ {\AppExiststrue
+ \DeleteFile{\minted@jobname.aex}}%
+ {\AppExistsfalse}%
+ \fi
+}
+\newcommand{\minted@optlistcl@g}{}
+\newcommand{\minted@optlistcl@g@i}{}
+\let\minted@lang\@empty
+\newcommand{\minted@optlistcl@lang}{}
+\newcommand{\minted@optlistcl@lang@i}{}
+\newcommand{\minted@optlistcl@cmd}{}
+\newcommand{\minted@optlistfv@g}{}
+\newcommand{\minted@optlistfv@g@i}{}
+\newcommand{\minted@optlistfv@lang}{}
+\newcommand{\minted@optlistfv@lang@i}{}
+\newcommand{\minted@optlistfv@cmd}{}
+\newcommand{\minted@configlang}[1]{%
+ \def\minted@lang{#1}%
+ \ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
+ \expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
+ \fi
+ \ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
+ \expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
+ \fi
+ \ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
+ \expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
+ \fi
+ \ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
+ \expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
+ \fi
+}
+\ifwindows
+ \newcommand{\minted@optlistcl@quote}[2]{%
+ \detokenize{#1="#2"}}
+\else
+ \newcommand{\minted@optlistcl@quote}[2]{%
+ \detokenize{#1='#2'}}
+\fi
+\newcommand{\minted@addto@optlistcl}[3]{%
+ \expandafter\def\expandafter#1\expandafter{#1%
+ \minted@optlistcl@quote{#2}{#3}\space}}
+\newcommand{\minted@addto@optlistcl@lang}[3]{%
+ \expandafter\let\expandafter\minted@tmp\csname #1\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
+ \minted@optlistcl@quote{#2}{#3}\space}%
+ \expandafter\let\csname #1\endcsname\minted@tmp}
+\newcommand{\minted@def@optcl}[4][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\define@key{minted@opt@g}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}{%
+ \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}{%
+ \minted@addto@optlistcl@lang{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+ {\define@key{minted@opt@g}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}[#1]{%
+ \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}[#1]{%
+ \minted@addto@optlistcl@lang{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+}
+\begingroup
+\catcode`\!=0
+!catcode`!\=12
+!gdef!minted@escape#1{%
+ !expandafter!minted@escape@i!detokenize{#1}\!FV@Sentinel}
+!gdef!minted@escape@i#1\#2!FV@Sentinel{%
+ !if!relax!detokenize{#2}!relax
+ !expandafter!@firstoftwo
+ !else
+ !expandafter!@secondoftwo
+ !fi
+ {#1!minted@escape@end\#2!FV@Sentinel}
+ {#1!minted@escape@esc\#2!FV@Sentinel}}
+!gdef!minted@escape@end#1!FV@Sentinel{}
+!gdef!minted@escape@esc\#1#2!FV@Sentinel{%
+ #1!minted@escape@i#2!FV@Sentinel}
+!endgroup
+\newcommand{\minted@addto@optlistcl@e}[3]{%
+ \edef\minted@tmp{\minted@escape{#3}}%
+ \expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@tmp}{#1}{#2}}
+\def\minted@addto@optlistcl@e@i#1#2#3{%
+ \expandafter\def\expandafter#2\expandafter{#2\minted@optlistcl@quote{#3}{#1}\space}}
+\newcommand{\minted@addto@optlistcl@lang@e}[3]{%
+ \edef\minted@tmp{\minted@escape{#3}}%
+ \expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@tmp}{#1}{#2}}
+\def\minted@addto@optlistcl@lang@e@i#1#2#3{%
+ \expandafter\let\expandafter\minted@tmp\csname #2\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp\minted@optlistcl@quote{#3}{#1}\space}%
+ \expandafter\let\csname #2\endcsname\minted@tmp}
+\newcommand{\minted@def@optcl@e}[4][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\define@key{minted@opt@g}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}{%
+ \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}{%
+ \minted@addto@optlistcl@lang@e{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+ {\define@key{minted@opt@g}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}[#1]{%
+ \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}[#1]{%
+ \minted@addto@optlistcl@lang@e{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+}
+\newcommand{\minted@def@optcl@switch}[2]{%
+ \define@booleankey{minted@opt@g}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{True}%
+ \@namedef{minted@opt@g:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{False}%
+ \@namedef{minted@opt@g:#1}{false}}
+ \define@booleankey{minted@opt@g@i}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{True}%
+ \@namedef{minted@opt@g@i:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{False}%
+ \@namedef{minted@opt@g@i:#1}{false}}
+ \define@booleankey{minted@opt@lang}{#1}%
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{True}%
+ \@namedef{minted@opt@lang\minted@lang:#1}{true}}
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{False}%
+ \@namedef{minted@opt@lang\minted@lang:#1}{false}}
+ \define@booleankey{minted@opt@lang@i}{#1}%
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{True}%
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{False}%
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
+ \define@booleankey{minted@opt@cmd}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{True}%
+ \@namedef{minted@opt@cmd:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{False}%
+ \@namedef{minted@opt@cmd:#1}{false}}
+}
+\newcommand{\minted@def@optfv}[1]{%
+ \define@key{minted@opt@g}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1={##1},}%
+ \@namedef{minted@opt@g:#1}{##1}}
+ \define@key{minted@opt@g@i}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1={##1},}%
+ \@namedef{minted@opt@g@i:#1}{##1}}
+ \define@key{minted@opt@lang}{#1}{%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1={##1},}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{##1}}
+ \define@key{minted@opt@lang@i}{#1}{%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1={##1},}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
+ \define@key{minted@opt@cmd}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1={##1},}%
+ \@namedef{minted@opt@cmd:#1}{##1}}
+}
+\newcommand{\minted@def@optfv@switch}[1]{%
+ \define@booleankey{minted@opt@g}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1=true,}%
+ \@namedef{minted@opt@g:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1=false,}%
+ \@namedef{minted@opt@g:#1}{false}}%
+ \define@booleankey{minted@opt@g@i}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1=true,}%
+ \@namedef{minted@opt@g@i:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1=false,}%
+ \@namedef{minted@opt@g@i:#1}{false}}%
+ \define@booleankey{minted@opt@lang}{#1}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=true,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{true}}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=false,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{false}}%
+ \define@booleankey{minted@opt@lang@i}{#1}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=true,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=false,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
+ \define@booleankey{minted@opt@cmd}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1=true,}%
+ \@namedef{minted@opt@cmd:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1=false,}%
+ \@namedef{minted@opt@cmd:#1}{false}}%
+}
+\newboolean{minted@isinline}
+\newcommand{\minted@fvset}{%
+ \expandafter\fvset\expandafter{\minted@optlistfv@g}%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}}%
+ {}%
+ \expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
+}
+\newcommand{\minted@def@opt}[2][]{%
+ \define@key{minted@opt@g}{#2}{%
+ \@namedef{minted@opt@g:#2}{##1}}
+ \define@key{minted@opt@g@i}{#2}{%
+ \@namedef{minted@opt@g@i:#2}{##1}}
+ \define@key{minted@opt@lang}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang:#2}{##1}}
+ \define@key{minted@opt@lang@i}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
+ \define@key{minted@opt@cmd}{#2}{%
+ \@namedef{minted@opt@cmd:#2}{##1}}
+ \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{#1}}%
+}
+\newcommand{\minted@def@opt@detok}[2][]{%
+ \define@key{minted@opt@g}{#2}{%
+ \@namedef{minted@opt@g:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@g@i}{#2}{%
+ \@namedef{minted@opt@g@i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang@i}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@cmd}{#2}{%
+ \@namedef{minted@opt@cmd:#2}{\detokenize{##1}}}
+ \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{\detokenize{#1}}}%
+}
+\newcommand{\minted@generate@PYGdef}[1]{%
+ \ifthenelse{\boolean{minted@cache}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@cachedir/#1.pygstyle}%
+ \minted@addcachefile{#1.pygstyle}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@jobname.out.pyg}}%
+ \ifwindows
+ \StrSubstitute{\minted@pygstylepath@load}%
+ {/}{\@backslashchar}[\minted@pygstylepath@save]%
+ \else
+ \let\minted@pygstylepath@save\minted@pygstylepath@load
+ \fi
+ \IfFileExists{\minted@pygstylepath@load}%
+ {}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Missing style definition for #1 with frozencache}%
+ {Missing style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \begingroup
+ \let\PYG\relax
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Outdated style definition for #1 with frozencache}%
+ {Outdated style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \PackageError{minted}%
+ {Cannot find Pygments style #1}%
+ {Cannot find Pygments style #1}%
+ \fi
+ \fi
+ \expandafter\global\expandafter\let\csname minted@PYGdef@#1\endcsname%
+ \minted@tmp@filecontents
+ \endgroup
+}
+\newcommand{\minted@defstyle}[1]{%
+ \edef\minted@style{#1}%
+ \ifcsname minted@PYGdef@\minted@style\endcsname\else
+ \expandafter\minted@generate@PYGdef\expandafter{\minted@style}%
+ \fi
+ \csname minted@PYGdef@\minted@style\endcsname
+ \minted@patch@PYGZsq
+ \minted@patch@PYGZhy
+ \ifthenelse{\equal{\minted@get@opt{ignorelexererrors}{true}}{true}}%
+ {\let\PYG@tok@err\relax}{}}
+\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@defstyle}[1]{}}{}
+\newcommand{\minted@patch@PYGZsq}{%
+ \ifcsname PYGZsq\endcsname
+ \expandafter\ifdefstring\expandafter{\csname PYGZsq\endcsname}{\char`\'}%
+ {\minted@patch@PYGZsq@i}%
+ {}%
+ \fi
+}
+\begingroup
+\catcode`\'=\active
+\gdef\minted@patch@PYGZsq@i{\gdef\PYGZsq{'}}
+\endgroup
+\newcommand{\minted@patch@PYGZhy}{%
+ \ifcsname PYGZhy\endcsname
+ \expandafter\ifdefstring\expandafter{\csname PYGZhy\endcsname}{\char`\-}%
+ {\def\PYGZhy{\mbox{-}}}%
+ {}%
+ \fi
+}
+\newcommand{\minted@def@opt@switch}[2][false]{%
+ \define@booleankey{minted@opt@g}{#2}%
+ {\@namedef{minted@opt@g:#2}{true}}%
+ {\@namedef{minted@opt@g:#2}{false}}
+ \define@booleankey{minted@opt@g@i}{#2}%
+ {\@namedef{minted@opt@g@i:#2}{true}}%
+ {\@namedef{minted@opt@g@i:#2}{false}}
+ \define@booleankey{minted@opt@lang}{#2}%
+ {\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
+ {\@namedef{minted@opt@lang\minted@lang:#2}{false}}
+ \define@booleankey{minted@opt@lang@i}{#2}%
+ {\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
+ {\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
+ \define@booleankey{minted@opt@cmd}{#2}%
+ {\@namedef{minted@opt@cmd:#2}{true}}%
+ {\@namedef{minted@opt@cmd:#2}{false}}%
+ \@namedef{minted@opt@g:#2}{#1}%
+}
+\def\minted@get@opt#1#2{%
+ \ifcsname minted@opt@cmd:#1\endcsname
+ \csname minted@opt@cmd:#1\endcsname
+ \else
+ \ifminted@isinline
+ \ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
+ \csname minted@opt@lang\minted@lang @i:#1\endcsname
+ \else
+ \ifcsname minted@opt@g@i:#1\endcsname
+ \csname minted@opt@g@i:#1\endcsname
+ \else
+ \ifcsname minted@opt@lang\minted@lang:#1\endcsname
+ \csname minted@opt@lang\minted@lang:#1\endcsname
+ \else
+ \ifcsname minted@opt@g:#1\endcsname
+ \csname minted@opt@g:#1\endcsname
+ \else
+ #2%
+ \fi
+ \fi
+ \fi
+ \fi
+ \else
+ \ifcsname minted@opt@lang\minted@lang:#1\endcsname
+ \csname minted@opt@lang\minted@lang:#1\endcsname
+ \else
+ \ifcsname minted@opt@g:#1\endcsname
+ \csname minted@opt@g:#1\endcsname
+ \else
+ #2%
+ \fi
+ \fi
+ \fi
+ \fi
+}%
+\minted@def@optcl{encoding}{-P encoding}{#1}
+\minted@def@optcl{outencoding}{-P outencoding}{#1}
+\minted@def@optcl@e{escapeinside}{-P escapeinside}{#1}
+\minted@def@optcl@switch{stripnl}{-P stripnl}
+\minted@def@optcl@switch{stripall}{-P stripall}
+\minted@def@optcl@switch{python3}{-P python3}
+\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
+\minted@def@optcl@switch{startinline}{-P startinline}
+\ifthenelse{\boolean{minted@draft}}%
+ {\minted@def@optfv{gobble}}%
+ {\minted@def@optcl{gobble}{-F gobble:n}{#1}}
+\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
+\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
+\minted@def@optcl@switch{texcl}{-P texcomments}
+\minted@def@optcl@switch{texcomments}{-P texcomments}
+\minted@def@optcl@switch{mathescape}{-P mathescape}
+\minted@def@optfv@switch{linenos}
+\minted@def@opt@detok{style}
+\minted@def@optfv{frame}
+\minted@def@optfv{framesep}
+\minted@def@optfv{framerule}
+\minted@def@optfv{rulecolor}
+\minted@def@optfv{numbersep}
+\minted@def@optfv{numbers}
+\minted@def@optfv{firstnumber}
+\minted@def@optfv{stepnumber}
+\minted@def@optfv{firstline}
+\minted@def@optfv{lastline}
+\minted@def@optfv{baselinestretch}
+\minted@def@optfv{xleftmargin}
+\minted@def@optfv{xrightmargin}
+\minted@def@optfv{fillcolor}
+\minted@def@optfv{tabsize}
+\minted@def@optfv{fontfamily}
+\minted@def@optfv{fontsize}
+\minted@def@optfv{fontshape}
+\minted@def@optfv{fontseries}
+\minted@def@optfv{formatcom}
+\minted@def@optfv{label}
+\minted@def@optfv{labelposition}
+\minted@def@optfv{highlightlines}
+\minted@def@optfv{highlightcolor}
+\minted@def@optfv{space}
+\minted@def@optfv{spacecolor}
+\minted@def@optfv{tab}
+\minted@def@optfv{tabcolor}
+\minted@def@optfv{highlightcolor}
+\minted@def@optfv@switch{beameroverlays}
+\minted@def@optfv@switch{curlyquotes}
+\minted@def@optfv@switch{numberfirstline}
+\minted@def@optfv@switch{numberblanklines}
+\minted@def@optfv@switch{stepnumberfromfirst}
+\minted@def@optfv@switch{stepnumberoffsetvalues}
+\minted@def@optfv@switch{showspaces}
+\minted@def@optfv@switch{resetmargins}
+\minted@def@optfv@switch{samepage}
+\minted@def@optfv@switch{showtabs}
+\minted@def@optfv@switch{obeytabs}
+\minted@def@optfv@switch{breaklines}
+\minted@def@optfv@switch{breakbytoken}
+\minted@def@optfv@switch{breakbytokenanywhere}
+\minted@def@optfv{breakindent}
+\minted@def@optfv{breakindentnchars}
+\minted@def@optfv@switch{breakautoindent}
+\minted@def@optfv{breaksymbol}
+\minted@def@optfv{breaksymbolsep}
+\minted@def@optfv{breaksymbolsepnchars}
+\minted@def@optfv{breaksymbolindent}
+\minted@def@optfv{breaksymbolindentnchars}
+\minted@def@optfv{breaksymbolleft}
+\minted@def@optfv{breaksymbolsepleft}
+\minted@def@optfv{breaksymbolsepleftnchars}
+\minted@def@optfv{breaksymbolindentleft}
+\minted@def@optfv{breaksymbolindentleftnchars}
+\minted@def@optfv{breaksymbolright}
+\minted@def@optfv{breaksymbolsepright}
+\minted@def@optfv{breaksymbolseprightnchars}
+\minted@def@optfv{breaksymbolindentright}
+\minted@def@optfv{breaksymbolindentrightnchars}
+\minted@def@optfv{breakbefore}
+\minted@def@optfv{breakbeforesymbolpre}
+\minted@def@optfv{breakbeforesymbolpost}
+\minted@def@optfv@switch{breakbeforeinrun}
+\minted@def@optfv{breakafter}
+\minted@def@optfv@switch{breakafterinrun}
+\minted@def@optfv{breakaftersymbolpre}
+\minted@def@optfv{breakaftersymbolpost}
+\minted@def@optfv@switch{breakanywhere}
+\minted@def@optfv{breakanywheresymbolpre}
+\minted@def@optfv{breakanywheresymbolpost}
+\minted@def@optfv{fontencoding}
+\minted@def@opt{bgcolor}
+\minted@def@opt@switch{autogobble}
+\minted@def@opt@switch{ignorelexererrors}
+\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
+\newenvironment{minted@snugshade*}[1]{%
+ \def\FrameCommand##1{\hskip\@totalleftmargin
+ \colorbox{#1}{##1}%
+ \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+ \MakeFramed{\advance\hsize-\width
+ \@totalleftmargin\z@ \linewidth\hsize
+ \advance\labelsep\fboxsep
+ \@setminipage}%
+ }{\par\unskip\@minipagefalse\endMakeFramed}
+\newsavebox{\minted@bgbox}
+\newenvironment{minted@colorbg}[1]{%
+ \setlength{\OuterFrameSep}{0pt}%
+ \let\minted@tmp\FV@NumberSep
+ \edef\FV@NumberSep{%
+ \the\numexpr\dimexpr\minted@tmp+\number\fboxsep\relax sp\relax}%
+ \medskip
+ \begin{minted@snugshade*}{#1}}
+ {\end{minted@snugshade*}%
+ \medskip\noindent}
+\newwrite\minted@code
+\newcommand{\minted@savecode}[1]{
+ \immediate\openout\minted@code\minted@jobname.pyg\relax
+ \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
+ \immediate\closeout\minted@code}
+\newcounter{minted@FancyVerbLineTemp}
+\newcommand{\minted@write@detok}[1]{%
+ \immediate\write\FV@OutFile{\detokenize{#1}}}
+\newcommand{\minted@FVB@VerbatimOut}[1]{%
+ \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
+ \@bsphack
+ \begingroup
+ \FV@UseKeyValues
+ \FV@DefineWhiteSpace
+ \def\FV@Space{\space}%
+ \FV@DefineTabOut
+ \let\FV@ProcessLine\minted@write@detok
+ \immediate\openout\FV@OutFile #1\relax
+ \let\FV@FontScanPrep\relax
+ \let\@noligs\relax
+ \FV@Scan}
+\newcommand{\minted@FVE@VerbatimOut}{%
+ \immediate\closeout\FV@OutFile\endgroup\@esphack
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
+\ifcsname MintedPygmentize\endcsname\else
+ \newcommand{\MintedPygmentize}{pygmentize}
+\fi
+\newcounter{minted@pygmentizecounter}
+\ifwindows
+ \newcommand{\MintedPython}{python}
+\else
+ \newcommand{\MintedPython}{python3}
+\fi
+\newcommand{\minted@check@MintedPython}{%
+ \ifcsname minted@MintedPython@\MintedPython\endcsname
+ \else
+ \let\minted@altpython\minted@undefined
+ \ifdefstring{\MintedPython}{python}{\def\minted@altpython{python3}}{}%
+ \ifdefstring{\MintedPython}{python3}{\def\minted@altpython{python}}{}%
+ \ifx\minted@altpython\minted@undefined\relax
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \else
+ \ifcsname minted@MintedPython@\minted@altpython\endcsname
+ \let\MintedPython\minted@altpython
+ \else
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \TestAppExists{\minted@altpython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\minted@altpython\endcsname\relax
+ \let\MintedPython\minted@altpython
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\ifwindows
+ \def\minted@opt@quote#1{\detokenize{"#1"}}
+\else
+ \def\minted@opt@quote#1{\detokenize{'#1'}}
+\fi
+\newcommand{\minted@pygmentize}[2][\minted@outputdir\minted@jobname.pyg]{%
+ \minted@defstyle{\minted@get@opt{style}{default}}%
+ \stepcounter{minted@pygmentizecounter}%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
+ {\def\minted@codefile{\minted@outputdir\minted@jobname.pyg}}%
+ {\def\minted@codefile{#1}}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\def\minted@optlistcl@inlines{%
+ \minted@optlistcl@g@i
+ \csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
+ {\let\minted@optlistcl@inlines\@empty}%
+ \def\minted@cmd{%
+ \ifminted@kpsewhich
+ \ifwindows
+ \detokenize{for /f "usebackq tokens=*"}\space\@percentchar\detokenize{a in (`kpsewhich}\space\minted@codefile\detokenize{`) do}\space
+ \fi
+ \fi
+ \MintedPygmentize\space -l \minted@opt@quote{#2}
+ -f latex -P commandprefix=PYG -F tokenmerge
+ \minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
+ \minted@optlistcl@inlines
+ \minted@optlistcl@cmd -o \minted@outputdir\minted@infile\space
+ \ifminted@kpsewhich
+ \ifwindows
+ \@percentchar\detokenize{a}%
+ \else
+ \detokenize{`}kpsewhich \minted@codefile\space
+ \detokenize{||} \minted@codefile\detokenize{`}%
+ \fi
+ \else
+ \minted@codefile
+ \fi}%
+ % For debugging, uncomment: %%%%
+ % \immediate\typeout{\minted@cmd}%
+ % %%%%
+ \ifthenelse{\boolean{minted@cache}}%
+ {%
+ \ifminted@frozencache
+ \else
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd\space%
+ autogobble(\the\numexpr\FancyVerbStartNum\relax-%
+ \the\numexpr\FancyVerbStopNum\relax)}}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd}}}%
+ \edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
+ \IfFileExists{\minted@infile}{}{%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
+ \minted@autogobble{#1}}{}%
+ \ShellEscape{\minted@cmd}}%
+ \fi
+ \ifthenelse{\boolean{minted@finalizecache}}%
+ {%
+ \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
+ \edef\minted@actualinfile{\minted@cachedir/\minted@cachefilename}%
+ \ifwindows
+ \StrSubstitute{\minted@infile}{/}{\@backslashchar}[\minted@infile@windows]
+ \StrSubstitute{\minted@actualinfile}{/}{\@backslashchar}[\minted@actualinfile@windows]
+ \ShellEscape{move /y \minted@outputdir\minted@infile@windows\space\minted@outputdir\minted@actualinfile@windows}%
+ \else
+ \ShellEscape{mv -f \minted@outputdir\minted@infile\space\minted@outputdir\minted@actualinfile}%
+ \fi
+ \let\minted@infile\minted@actualinfile
+ \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}%
+ }%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {%
+ \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
+ \edef\minted@infile{\minted@cachedir/\minted@cachefilename}%
+ \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}}%
+ {\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}}%
+ }%
+ \minted@inputpyg}%
+ {%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
+ \minted@autogobble{#1}}{}%
+ \ShellEscape{\minted@cmd}%
+ \minted@inputpyg}%
+}
+\def\minted@autogobble#1{%
+ \edef\minted@argone@esc{#1}%
+ \StrSubstitute{\minted@argone@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@argone@esc]%
+ \StrSubstitute{\minted@argone@esc}{"}{\@backslashchar"}[\minted@argone@esc]%
+ \edef\minted@tmpfname@esc{\minted@outputdir\minted@jobname}%
+ \StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
+ \StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
+ %Need a version of open() that supports encoding under Python 2
+ \minted@check@MintedPython
+ \edef\minted@autogobblecmd{%
+ \ifminted@kpsewhich
+ \ifwindows
+ \detokenize{for /f "usebackq tokens=*" }\@percentchar\detokenize{a in (`kpsewhich} #1\detokenize{`) do}\space
+ \fi
+ \fi
+ \MintedPython\detokenize{ -c "import sys; import os;
+ import textwrap;
+ from io import open;
+ fname = }%
+ \ifminted@kpsewhich
+ \detokenize{sys.argv[1];}\space
+ \else
+ \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space
+ \fi
+ \detokenize{f = open(fname, \"r\", encoding=\"}\minted@encoding\detokenize{\") if os.path.isfile(fname) else None;
+ t = f.readlines() if f is not None else None;
+ t_opt = t if t is not None else [];
+ f.close() if f is not None else None;
+ tmpfname = os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.pyg\detokenize{\"));
+ f = open(tmpfname, \"w\", encoding=\"}\minted@encoding\detokenize{\") if t is not None else None;
+ fvstartnum = }\the\numexpr\FancyVerbStartNum\detokenize{;
+ fvstopnum = }\the\numexpr\FancyVerbStopNum\detokenize{;
+ s = max(0, fvstartnum-1);
+ e = max(s, fvstopnum) if fvstopnum > 0 else len(t_opt);
+ [f.write(textwrap.dedent(\"\".join(x))) for x in (t_opt[0:s], t_opt[s:e], t_opt[e:]) if x and t is not None];
+ f.close() if t is not None else os.remove(tmpfname);"}%
+ \ifminted@kpsewhich
+ \ifwindows
+ \space\@percentchar\detokenize{a}%
+ \else
+ \space\detokenize{`}kpsewhich #1\space\detokenize{||} #1\detokenize{`}%
+ \fi
+ \fi
+ }%
+ \ShellEscape{\minted@autogobblecmd}%
+}
+\newcommand{\minted@inputpyg}{%
+ \VerbatimPygments{\PYG}{\PYG}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
+ {\let\FV@BeginVBox\relax
+ \let\FV@EndVBox\relax
+ \def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
+ \minted@inputpyg@inline}%
+ {\minted@inputpyg@inline}}%
+ {\minted@inputpyg@block}%
+}
+\def\minted@inputpyg@inline{%
+ \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
+ {\minted@input{\minted@outputdir\minted@infile}}%
+ {\colorbox{\minted@get@opt{bgcolor}{}}{%
+ \minted@input{\minted@outputdir\minted@infile}}}%
+}
+\def\minted@inputpyg@block{%
+ \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
+ {\minted@input{\minted@outputdir\minted@infile}}%
+ {\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
+ \minted@input{\minted@outputdir\minted@infile}%
+ \end{minted@colorbg}}}
+\newcommand{\minted@langlinenoson}{%
+ \ifcsname c@minted@lang\minted@lang\endcsname\else
+ \newcounter{minted@lang\minted@lang}%
+ \fi
+ \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
+}
+\newcommand{\minted@langlinenosoff}{%
+ \setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
+}
+\ifbool{minted@langlinenos}{}{%
+ \ifbool{minted@inputlanglinenos}{}{%
+ \let\minted@langlinenoson\relax
+ \let\minted@langlinenosoff\relax
+ }
+}
+\ifbool{minted@inputlanglinenos}%
+ {\def\minted@inputlanglinenoson{\minted@langlinenoson}%
+ \def\minted@inputlanglinenosoff{\minted@langlinenosoff}}%
+ {\let\minted@inputlanglinenoson\relax
+ \let\minted@inputlanglinenosoff\relax}
+\newcommand{\setminted}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\setkeys{minted@opt@g}{#2}}%
+ {\minted@configlang{#1}%
+ \setkeys{minted@opt@lang}{#2}}}
+\newcommand{\setmintedinline}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\setkeys{minted@opt@g@i}{#2}}%
+ {\minted@configlang{#1}%
+ \setkeys{minted@opt@lang@i}{#2}}}
+\setmintedinline[php]{startinline=true}
+\setminted{tabcolor=black}
+\setminted{stripnl=false}
+\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
+\begingroup
+\catcode`\ =\active
+\catcode`\^^I=\active
+\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
+\endgroup
+\newcommand{\minted@writecmdcode}[1]{%
+ \immediate\openout\minted@code\minted@jobname.pyg\relax
+ \immediate\write\minted@code{\detokenize{#1}}%
+ \immediate\closeout\minted@code}
+\def\mintinline{%
+ \FVExtraRobustCommand\RobustMintInline\FVExtraUnexpandedReadStarOArgMArgBVArg}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustMintInline{}}
+\newrobustcmd{\RobustMintInline}[2][]{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}%
+ {\PackageError{minted}%
+ {Inline delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}}
+\def\RobustMintInlineProcess#1#2#3{%
+ \begingroup
+ \setboolean{minted@isinline}{true}%
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \RobustMintInlineProcess@i{#3}}
+\ifthenelse{\boolean{minted@draft}}%
+ {\def\RobustMintInlineProcess@i#1{%
+ \fvset{extra=true}%
+ \Verb{#1}%
+ \endgroup}}%
+ {\def\RobustMintInlineProcess@i#1{%
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintInlineProcess@ii}{\FV@CatCodes}}{#1}}
+ \def\RobustMintInlineProcess@ii#1{%
+ \minted@writecmdcode{#1}%
+ \let\Verbatim\VerbEnv
+ \let\endVerbatim\endVerbEnv
+ \expandafter\minted@pygmentize\expandafter{\minted@lang}%
+ \endgroup}}
+\def\mint{%
+ \FVExtraRobustCommand\RobustMint\FVExtraUnexpandedReadStarOArgMArgBVArg}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustMint{}}
+\newrobustcmd{\RobustMint}[2][]{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}%
+ {\PackageError{minted}%
+ {Delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}}
+\def\RobustMintProcess#1#2#3{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \RobustMintProcess@i{#3}}
+\begingroup
+\catcode`\^^M=\active%
+\catcode`\<=1%
+\catcode`\>=2%
+\catcode`\{=12%
+\catcode`\}=12%
+\catcode`\!=0%
+\catcode`\\=12%
+!ifthenelse<!boolean<minted@draft>>%
+ <!gdef!RobustMintProcess@i#1<%
+ !FVExtraDetokenizeVArg<%
+ !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
+ !gdef!RobustMintProcess@ii#1<%
+ !minted@langlinenoson%
+ !scantokens<%
+ \begin{Verbatim}
+ #1
+ \end{Verbatim}
+ !noexpand>%
+ !minted@langlinenosoff%
+ !endgroup!@doendpe>>%
+ <!gdef!RobustMintProcess@i#1<%
+ !FVExtraDetokenizeVArg<%
+ !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
+ !gdef!RobustMintProcess@ii#1<%
+ !minted@writecmdcode<#1>%
+ !minted@langlinenoson%
+ !expandafter!minted@pygmentize!expandafter<!minted@lang>%
+ !minted@langlinenosoff%
+ !endgroup!@doendpe>>%
+!endgroup
+\ifthenelse{\boolean{minted@draft}}%
+ {\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@langlinenoson
+ \begin{Verbatim}}%
+ {\end{Verbatim}%
+ \minted@langlinenosoff}}%
+ {\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \let\FVB@VerbatimOut\minted@FVB@VerbatimOut
+ \let\FVE@VerbatimOut\minted@FVE@VerbatimOut
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \begin{VerbatimOut}[codes={\catcode`\^^I=12},firstline,lastline]{\minted@jobname.pyg}}%
+ {\end{VerbatimOut}%
+ \minted@langlinenoson
+ \expandafter\minted@pygmentize\expandafter{\minted@lang}%
+ \minted@langlinenosoff}}
+\ifthenelse{\boolean{minted@draft}}%
+ {\newcommand{\inputminted}[3][]{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@inputlanglinenoson
+ \VerbatimInput{#3}%
+ \minted@inputlanglinenosoff
+ \endgroup}}%
+ {\newcommand{\inputminted}[3][]{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@inputlanglinenoson
+ \minted@pygmentize[#3]{#2}%
+ \minted@inputlanglinenosoff
+ \endgroup}}
+\newcommand{\newminted}[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@envname{#2code}}
+ {\def\minted@envname{#1}}
+ \newenvironment{\minted@envname}
+ {\VerbatimEnvironment
+ \begin{minted}[#3]{#2}}
+ {\end{minted}}
+ \newenvironment{\minted@envname *}[1]
+ {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
+ {\end{minted}}}
+\newcommand{\newmint}[3][]{%
+ \if\relax\detokenize{#1}\relax
+ \def\minted@shortname{#2}%
+ \else
+ \def\minted@shortname{#1}%
+ \fi
+ \expandafter\newmint@i\expandafter{\minted@shortname}{#2}{#3}}
+\def\newmint@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMint#1\endcsname
+ \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMint#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMint#1\endcsname{%
+ \FVExtraReadOArgBeforeVArg{\csname RobustNewMint#1@i\endcsname}}%
+ \expandafter\def\csname RobustNewMint#1@i\endcsname##1{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}%
+ {\PackageError{minted}%
+ {Delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}}
+ \expandafter\def\csname RobustNewMint#1@ii\endcsname##1##2{%
+ \RobustMintProcess{#3,##1}{#2}{##2}}}
+\newcommand{\newmintedfile}[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2file}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \inputminted[#3,##1]{#2}{##2}}}
+\newcommand{\newmintinline}[3][]{%
+ \if\relax\detokenize{#1}\relax
+ \def\minted@shortname{#2inline}%
+ \else
+ \def\minted@shortname{#1}%
+ \fi
+ \expandafter\newmintinline@i\expandafter{\minted@shortname}{#2}{#3}}
+\def\newmintinline@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMintInline#1\endcsname
+ \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMintInline#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMintInline#1\endcsname{%
+ \FVExtraReadOArgBeforeVArg{\csname RobustNewMintInline#1@i\endcsname}}%
+ \expandafter\def\csname RobustNewMintInline#1@i\endcsname##1{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}%
+ {\PackageError{minted}%
+ {Inline delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}}
+ \expandafter\def\csname RobustNewMintInline#1@ii\endcsname##1##2{%
+ \RobustMintInlineProcess{#3,##1}{#2}{##2}}}
+\ifthenelse{\boolean{minted@newfloat}}%
+ {\@ifundefined{minted@float@within}%
+ {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
+ {\def\minted@tmp#1{%
+ \DeclareFloatingEnvironment[fileext=lol,placement=tbp, within=#1]{listing}}%
+ \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
+ {\@ifundefined{minted@float@within}%
+ {\newfloat{listing}{tbp}{lol}}%
+ {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
+\ifminted@newfloat\else
+\newcommand{\listingscaption}{Listing}
+\floatname{listing}{\listingscaption}
+\newcommand{\listoflistingscaption}{List of Listings}
+\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
+\fi
+\AtEndOfPackage{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {%
+ \ifthenelse{\boolean{minted@frozencache}}{}{%
+ \ifnum\pdf@shellescape=1\relax\else
+ \PackageError{minted}%
+ {You must invoke LaTeX with the
+ -shell-escape flag}%
+ {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
+ documentation for more information.}%
+ \fi}%
+ }%
+}
+\AtEndPreamble{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {%
+ \ifthenelse{\boolean{minted@frozencache}}{}{%
+ \TestAppExists{\MintedPygmentize}%
+ \ifAppExists\else
+ \PackageError{minted}%
+ {You must have `pygmentize' installed
+ to use this package}%
+ {Refer to the installation instructions in the minted
+ documentation for more information.}%
+ \fi}%
+ }%
+}
+\AfterEndDocument{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {}
+ {\ifx\XeTeXinterchartoks\minted@undefined
+ \else
+ \DeleteFile[\minted@outputdir]{\minted@jobname.mintedcmd}%
+ \DeleteFile[\minted@outputdir]{\minted@jobname.mintedmd5}%
+ \fi
+ \DeleteFile[\minted@outputdir]{\minted@jobname.pyg}%
+ \DeleteFile[\minted@outputdir]{\minted@jobname.out.pyg}%
+ }%
+ }%
+}
+\endinput
+%%
+%% End of file `minted2.sty'.
diff --git a/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl b/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl
new file mode 100644
index 0000000000..e67ab03354
--- /dev/null
+++ b/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
index e7f9b4a01a..a007efaeea 100644
--- a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
+++ b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
index fc7e8a88f1..4449939a2c 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
@@ -3,7 +3,7 @@
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.14, 2024/07/19
+% Version: 1.15, 2024/08/31
%
% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
@@ -17,12 +17,11 @@
lang = en-US,
% pdfversion = 2.0,
% pdfstandard = a-4,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[twoside]{mitthesis} %,fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[twoside]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
@@ -53,12 +52,21 @@
\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
-%\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
-% \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Can set graphicspath to point to specific directories containing figures (the current directory is searched automatically)
@@ -188,10 +196,10 @@
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
- \Acceptor{Primus Castor}{Professor of Wetlands Engineering}{}%{Undergraduate Officer, Department of Physics}
-% \Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are February, May, June, or September
@@ -239,7 +247,6 @@
% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
% when the page is too full.
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Make titlepage
@@ -250,9 +257,11 @@
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-
%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
% The abstract environment creates all the required headings and footers.
% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
@@ -283,7 +292,7 @@
\appendix
\include{appendixa}
-
+\include{appendixb}
%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
index a7914cb851..cb61cca430 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
@@ -5,6 +5,10 @@
\chapter{Code listing}
+This example uses the \texttt{listings} package.
+
+\bigskip
+
\lstdefinestyle{mystyle}{
backgroundcolor=\color{CadetBlue!15!white},
commentstyle=\color{Red3},
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex
new file mode 100644
index 0000000000..1d9dd847c0
--- /dev/null
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex
@@ -0,0 +1,108 @@
+\chapter{One-term coefficients for heat conduction}
+
+\section{A multipage table of numbers}
+This example uses the \texttt{longtable} package: $\theta = A_1 f_1 \exp(-\lambda_1^2\mkern2mu\textrm{Fo})$, $\overline{\theta} = D_1 \exp(-\lambda_1^2\mkern2mu\textrm{Fo})$.
+
+
+{\footnotesize
+%\newcolumntype{d}[1]{D{.}{.}{#1}} % defined in root .tex file
+\renewcommand{\doublerulesep}{0pt}%
+\newcolumntype{X}{>{\hspace{1ex}}c@{\hspace{2ex}}c@{\hspace{2ex}}c<{\hspace{1ex}}}%
+
+\begin{longtable}{|||d{3.2}|X|X|X|||}
+
+\caption{One-term coefficients for one-dimensional heat conduction with a convective boundary condition. Data follow H. D. Baehr and K. Stephan~\cite{baehr1998}.}%
+
+\\
+\hline\hline\hline
+&&&&&&&&&\\[-7pt]
+& \multicolumn{3}{c|}{\textsf{\textit{Plate}}} & \multicolumn{3}{c|}{\textsf{\textit{Cylinder}}} & \multicolumn{3}{c|||}{\textsf{\textit{Sphere}}}
+\\
+\cline{2-10}
+\multicolumn{1}{|||c|}{\raisebox{1.5ex}[0cm][0cm]{Bi}}
+ & $\lambda_1$\rule[0pt]{0pt}{11pt} & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$
+\\
+\hline
+\endfirsthead
+\caption[]{(continued)} \\
+\hline\hline\hline
+&&&&&&&&&\\[-7pt]
+& \multicolumn{3}{c|}{\textsf{\textit{Plate}}} & \multicolumn{3}{c|}{\textsf{\textit{Cylinder}}} & \multicolumn{3}{c|||}{\textsf{\textit{Sphere}}}
+\\
+\cline{2-10}
+\multicolumn{1}{|||c|}{\raisebox{1.5ex}[0cm][0cm]{Bi}}
+ & $\lambda_1$\rule[0pt]{0pt}{11pt} & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$
+\\ \hline
+&&&&&&&&&\\[-1ex]
+\endhead
+\hline\hline\hline
+\endfoot
+\hline\hline\hline
+\endlastfoot
+0.01 & 0.09983 & 1.0017 & 1.0000 & 0.14124 & 1.0025 & 1.0000 & 0.17303 & 1.0030 & 1.0000\rule[0pt]{0pt}{15pt} \\
+0.02 & 0.14095 & 1.0033 & 1.0000 & 0.19950 & 1.0050 & 1.0000 & 0.24446 & 1.0060 & 1.0000 \\
+0.03 & 0.17234 & 1.0049 & 1.0000 & 0.24403 & 1.0075 & 1.0000 & 0.29910 & 1.0090 & 1.0000 \\
+0.04 & 0.19868 & 1.0066 & 1.0000 & 0.28143 & 1.0099 & 1.0000 & 0.34503 & 1.0120 & 1.0000 \\
+0.05 & 0.22176 & 1.0082 & 0.9999 & 0.31426 & 1.0124 & 0.9999 & 0.38537 & 1.0150 & 1.0000 \\
+0.06 & 0.24253 & 1.0098 & 0.9999 & 0.34383 & 1.0148 & 0.9999 & 0.42173 & 1.0179 & 0.9999 \\
+0.07 & 0.26153 & 1.0114 & 0.9999 & 0.37092 & 1.0173 & 0.9999 & 0.45506 & 1.0209 & 0.9999 \\
+0.08 & 0.27913 & 1.0130 & 0.9999 & 0.39603 & 1.0197 & 0.9999 & 0.48600 & 1.0239 & 0.9999 \\
+0.09 & 0.29557 & 1.0145 & 0.9998 & 0.41954 & 1.0222 & 0.9998 & 0.51497 & 1.0268 & 0.9999 \\
+0.10 & 0.31105 & 1.0161 & 0.9998 & 0.44168 & 1.0246 & 0.9998 & 0.54228 & 1.0298 & 0.9998 \\[6pt]
+%
+0.15 & 0.37788 & 1.0237 & 0.9995 & 0.53761 & 1.0365 & 0.9995 & 0.66086 & 1.0445 & 0.9996 \\*
+0.20 & 0.43284 & 1.0311 & 0.9992 & 0.61697 & 1.0483 & 0.9992 & 0.75931 & 1.0592 & 0.9993 \\
+0.25 & 0.48009 & 1.0382 & 0.9988 & 0.68559 & 1.0598 & 0.9988 & 0.84473 & 1.0737 & 0.9990 \\
+0.30 & 0.52179 & 1.0450 & 0.9983 & 0.74646 & 1.0712 & 0.9983 & 0.92079 & 1.0880 & 0.9985 \\
+0.40 & 0.59324 & 1.0580 & 0.9971 & 0.85158 & 1.0931 & 0.9970 & 1.05279 & 1.1164 & 0.9974 \\
+0.50 & 0.65327 & 1.0701 & 0.9956 & 0.94077 & 1.1143 & 0.9954 & 1.16556 & 1.1441 & 0.9960 \\
+0.60 & 0.70507 & 1.0814 & 0.9940 & 1.01844 & 1.1345 & 0.9936 & 1.26440 & 1.1713 & 0.9944 \\
+0.70 & 0.75056 & 1.0918 & 0.9922 & 1.08725 & 1.1539 & 0.9916 & 1.35252 & 1.1978 & 0.9925 \\
+0.80 & 0.79103 & 1.1016 & 0.9903 & 1.14897 & 1.1724 & 0.9893 & 1.43203 & 1.2236 & 0.9904 \\
+0.90 & 0.82740 & 1.1107 & 0.9882 & 1.20484 & 1.1902 & 0.9869 & 1.50442 & 1.2488 & 0.9880 \\[6pt]
+%
+1.00 & 0.86033 & 1.1191 & 0.9861 & 1.25578 & 1.2071 & 0.9843 & 1.57080 & 1.2732 & 0.9855 \\*
+1.10 & 0.89035 & 1.1270 & 0.9839 & 1.30251 & 1.2232 & 0.9815 & 1.63199 & 1.2970 & 0.9828 \\
+1.20 & 0.91785 & 1.1344 & 0.9817 & 1.34558 & 1.2387 & 0.9787 & 1.68868 & 1.3201 & 0.9800 \\
+1.30 & 0.94316 & 1.1412 & 0.9794 & 1.38543 & 1.2533 & 0.9757 & 1.74140 & 1.3424 & 0.9770 \\
+1.40 & 0.96655 & 1.1477 & 0.9771 & 1.42246 & 1.2673 & 0.9727 & 1.79058 & 1.3640 & 0.9739 \\
+1.50 & 0.98824 & 1.1537 & 0.9748 & 1.45695 & 1.2807 & 0.9696 & 1.83660 & 1.3850 & 0.9707 \\
+1.60 & 1.00842 & 1.1593 & 0.9726 & 1.48917 & 1.2934 & 0.9665 & 1.87976 & 1.4052 & 0.9674 \\
+1.70 & 1.02725 & 1.1645 & 0.9703 & 1.51936 & 1.3055 & 0.9633 & 1.92035 & 1.4247 & 0.9640 \\*
+1.80 & 1.04486 & 1.1695 & 0.9680 & 1.54769 & 1.3170 & 0.9601 & 1.95857 & 1.4436 & 0.9605 \\*
+1.90 & 1.06136 & 1.1741 & 0.9658 & 1.57434 & 1.3279 & 0.9569 & 1.99465 & 1.4618 & 0.9570 \\[6pt]
+%
+2.00 & 1.07687 & 1.1785 & 0.9635 & 1.59945 & 1.3384 & 0.9537 & 2.02876 & 1.4793 & 0.9534 \\*
+2.20 & 1.10524 & 1.1864 & 0.9592 & 1.64557 & 1.3578 & 0.9472 & 2.09166 & 1.5125 & 0.9462 \\
+2.40 & 1.13056 & 1.1934 & 0.9549 & 1.68691 & 1.3754 & 0.9408 & 2.14834 & 1.5433 & 0.9389 \\
+2.60 & 1.15330 & 1.1997 & 0.9509 & 1.72418 & 1.3914 & 0.9345 & 2.19967 & 1.5718 & 0.9316 \\
+2.80 & 1.17383 & 1.2052 & 0.9469 & 1.75794 & 1.4059 & 0.9284 & 2.24633 & 1.5982 & 0.9243 \\
+3.00 & 1.19246 & 1.2102 & 0.9431 & 1.78866 & 1.4191 & 0.9224 & 2.28893 & 1.6227 & 0.9171 \\
+3.50 & 1.23227 & 1.2206 & 0.9343 & 1.85449 & 1.4473 & 0.9081 & 2.38064 & 1.6761 & 0.8995 \\
+4.00 & 1.26459 & 1.2287 & 0.9264 & 1.90808 & 1.4698 & 0.8950 & 2.45564 & 1.7202 & 0.8830 \\*
+4.50 & 1.29134 & 1.2351 & 0.9193 & 1.95248 & 1.4880 & 0.8830 & 2.51795 & 1.7567 & 0.8675 \\*
+5.00 & 1.31384 & 1.2402 & 0.9130 & 1.98981 & 1.5029 & 0.8721 & 2.57043 & 1.7870 & 0.8533 \\[6pt]
+%
+6.00 & 1.34955 & 1.2479 & 0.9021 & 2.04901 & 1.5253 & 0.8532 & 2.65366 & 1.8338 & 0.8281 \\*
+7.00 & 1.37662 & 1.2532 & 0.8932 & 2.09373 & 1.5411 & 0.8375 & 2.71646 & 1.8673 & 0.8069 \\
+8.00 & 1.39782 & 1.2570 & 0.8858 & 2.12864 & 1.5526 & 0.8244 & 2.76536 & 1.8920 & 0.7889 \\
+9.00 & 1.41487 & 1.2598 & 0.8796 & 2.15661 & 1.5611 & 0.8133 & 2.80443 & 1.9106 & 0.7737 \\
+10.00 & 1.42887 & 1.2620 & 0.8743 & 2.17950 & 1.5677 & 0.8039 & 2.83630 & 1.9249 & 0.7607 \\
+12.00 & 1.45050 & 1.2650 & 0.8658 & 2.21468 & 1.5769 & 0.7887 & 2.88509 & 1.9450 & 0.7397 \\
+14.00 & 1.46643 & 1.2669 & 0.8592 & 2.24044 & 1.5828 & 0.7770 & 2.92060 & 1.9581 & 0.7236 \\
+16.00 & 1.47864 & 1.2683 & 0.8541 & 2.26008 & 1.5869 & 0.7678 & 2.94756 & 1.9670 & 0.7109 \\*
+18.00 & 1.48830 & 1.2692 & 0.8499 & 2.27556 & 1.5898 & 0.7603 & 2.96871 & 1.9734 & 0.7007 \\*
+20.00 & 1.49613 & 1.2699 & 0.8464 & 2.28805 & 1.5919 & 0.7542 & 2.98572 & 1.9781 & 0.6922 \\[6pt]
+%
+25.00 & 1.51045 & 1.2710 & 0.8400 & 2.31080 & 1.5954 & 0.7427 & 3.01656 & 1.9856 & 0.6766 \\*
+30.00 & 1.52017 & 1.2717 & 0.8355 & 2.32614 & 1.5973 & 0.7348 & 3.03724 & 1.9898 & 0.6658 \\
+35.00 & 1.52719 & 1.2721 & 0.8322 & 2.33719 & 1.5985 & 0.7290 & 3.05207 & 1.9924 & 0.6579 \\
+40.00 & 1.53250 & 1.2723 & 0.8296 & 2.34552 & 1.5993 & 0.7246 & 3.06321 & 1.9942 & 0.6519 \\
+50.00 & 1.54001 & 1.2727 & 0.8260 & 2.35724 & 1.6002 & 0.7183 & 3.07884 & 1.9962 & 0.6434 \\
+60.00 & 1.54505 & 1.2728 & 0.8235 & 2.36510 & 1.6007 & 0.7140 & 3.08928 & 1.9974 & 0.6376 \\
+80.00 & 1.55141 & 1.2730 & 0.8204 & 2.37496 & 1.6013 & 0.7085 & 3.10234 & 1.9985 & 0.6303 \\
+100.00 & 1.55525 & 1.2731 & 0.8185 & 2.38090 & 1.6015 & 0.7052 & 3.11019 & 1.9990 & 0.6259 \\*
+200.00 & 1.56298 & 1.2732 & 0.8146 & 2.39283 & 1.6019 & 0.6985 & 3.12589 & 1.9998 & 0.6170 \\*
+\infty & 1.57080 & 1.2732 & 0.8106 & 2.40483 & 1.6020 & 0.6917 & 3.14159 & 2.0000 & 0.6079 \\[3pt]
+\end{longtable}
+}
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex
new file mode 100644
index 0000000000..b09f276c8b
--- /dev/null
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex
@@ -0,0 +1,69 @@
+% Sample thesis committee page for mitthesis.cls
+% Version 1.00, 2024/08/24
+%
+% This page is not required by the MIT Libraries, but some departments require it
+%
+% Insert between title page and abstract page.
+% Format this page in any way that you like.
+% Add supervisor titles, degrees, and departments as appropriate
+
+%%%%% FORMATTING COMMANDS %%%%%%%%%%%%%%%%%%
+
+%% Format title
+\NewDocumentCommand\CommitteePageTitle{m}{
+ \vspace*{75pt}%36pt}
+ \IfPackageLoadedTF{microtype}
+ {\textls*{\Large\textbf{\MakeUppercase{#1}}}}
+ {{\Large\textbf{\MakeUppercase{#1}}}}%
+ \pdfbookmark[0]{#1}{Committee}%
+ \vspace*{10pt}%
+}
+% \textls* produces additional letter separation (appropriate for capitalized display text),
+% PROVIDED THAT \usepackage{microtype} has been loaded in the preamble.
+% The extra space added is 100/1000 em (adjustable, see package documentation).
+
+%% Format committee member subheadings
+\NewDocumentCommand\Role{m}{
+ \vspace*{50pt}%25pt}
+ \IfPackageLoadedTF{microtype}
+ {\textls*{\large{\textsc{#1}}}}
+ {{\large\textsc{#1}}}%
+ \vspace*{12pt}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{flushright}
+
+\CommitteePageTitle{Thesis committee}
+
+\Role{Thesis Supervisor}
+
+ \textbf{Marcus Gavius Apicius} \\
+ {\itshape
+ Professor of Cooking Arts \\
+ Department of Food Science \\
+ }
+
+\Role{Thesis Readers}
+
+ \textbf{Marie-Antoine Carême} \\
+ {\itshape
+ Professor of Haute Cuisine \\
+ Department of Food Science \\[18pt]
+ }
+
+ \textbf{Julia Child}\\
+ {\itshape
+ Professor of French Cuisine \\
+ Department of Food Science \\[18pt]
+ }
+
+ \textbf{Magnus Dicen, Ph.D.} \\
+ {\itshape
+ Gloriosus Professor of Personal Pronouns \\
+ Department of Rhetoric \\
+ }
+
+\end{flushright}
+
+\cleardoublepage
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
index 8795eb547e..bc7ba62c91 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
@@ -1,16 +1,16 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-defaultfonts.tex}[2023/09/12 v1.03 Load Computer/Latin Modern text and math fonts]
+\ProvidesFile{mitthesis-defaultfonts.tex}[2024/06/28 v1.04 Load Computer/Latin Modern text and math fonts]
%% Default fonts
%
\ifpdftex
- \typeout{^^JLoading Computer Modern text and math fonts (default for pdftex).^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Computer Modern text and math fonts (default for pdftex)}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading Latin Modern text and math fonts (default for unicode engines).^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Latin Modern text and math fonts (default for unicode engines)}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
index 01fa981d78..ebba9ab190 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
@@ -1,19 +1,19 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-fira-newtxsf.tex}[2023/09/12 v1.04 Load Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font]
+\ProvidesFile{mitthesis-fira-newtxsf.tex}[2024/06/28 v1.05 Load Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font]
%% Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font
%
\ifpdftex
- \typeout{^^JLoading Fira sans text font with newtx sans serif math font and Inconsolata typewriter^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Fira sans text font with newtx sans serif math font and Inconsolata typewriter}
\RequirePackage[sfdefault,scaled=0.90]{FiraSans} % sans serif text package %,scaled=.85
\RequirePackage[T1]{fontenc}
\RequirePackage[varqu,varl,scaled=1.05]{zi4} % inconsolata font for typewriter
\RequirePackage[scaled=1.05]{newtxsf} % sans serif math
\RequirePackage{bm}
\else
- \ClassWarning{mitnewthesis}{The fira-newtxsf font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The fira-newtxsf font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
index 26ee2ab07b..1535771f11 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-heros-stix2.tex}[2023/09/12 v1.02 Load TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font]
+\ProvidesFile{mitthesis-heros-stix2.tex}[2024/06/28 v1.03 Load TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font]
%% TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The heros-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The heros-stix2 fontset requires a unicode engine. Defaulting to CMR fonts}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JTeX Gyre Heros (sans serif) text font with STIX2 math font and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{TeX Gyre Heros (sans serif) text font with STIX2 math font and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
index 57cf26f915..41b2f561df 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-libertine.tex}[2023/09/12 v1.02 Load Libertine and related fonts]
+\ProvidesFile{mitthesis-libertine.tex}[2024/06/28 v1.03 Load Libertine and related fonts]
%% Linux Libertine (serif) text font with newtxmath[libertine] (pdftex) or Libertinus (unicode) math font
%
@@ -10,7 +10,7 @@
% install these as system fonts on your computer
%
\ifpdftex
- \typeout{^^JLoading newtx-libertine text and math fonts with Insolata typewriter font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading newtx-libertine text and math fonts with Insolata typewriter font}
\RequirePackage[lining,semibold]{libertine}
\RequirePackage[T1]{fontenc}
\RequirePackage[varqu,varl]{inconsolata}% typewriter
@@ -18,7 +18,7 @@
\RequirePackage[libertine,vvarbb]{newtxmath}
\RequirePackage{bm}% load after all math to give access to bold math
\else
- \typeout{^^JLoading Linux Libertine (serif) text font with Libertinus math font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Linux Libertine (serif) text font with Libertinus math font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
index 6466c36929..e18c72fd92 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
@@ -1,11 +1,11 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-lucida.tex}[2023/09/12 v1.02 Load Lucida fonts]
+\ProvidesFile{mitthesis-lucida.tex}[2024/06/28 v1.03 Load Lucida fonts]
%% Lucida Bright and Lucida Bright Math fonts (available from the TeX Users Group)
-\typeout{^^JLucida Bright and Lucida Bright Math fonts^^J}
+\ClassNoteNoLine{\ClassName}{Lucida Bright and Lucida Bright Math fonts}
\ifpdftex
\RequirePackage[LY1]{fontenc}
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
index 03d62286e2..b76428f383 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
@@ -1,11 +1,12 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-newtx-sans-text.tex}[2023/10/03 v1.03 Load newtx sans-serif text and regular math fonts]
+\ProvidesFile{mitthesis-newtx-sans-text.tex}[2024/06/68 v1.04 Load newtx sans-serif text and regular math fonts]
%% newtx package with sans-serif text (Helvetica-like text with Times-like math)
%
\ifpdftex
+ \ClassNoteNoLine{\ClassName}{Loading newtx sans-serif text and newtx serif math fonts}
\RequirePackage[T1]{fontenc}
\RequirePackage[subscriptcorrection,varvw,helvratio=0.91,defaultsups]{newtx}% upint for upright integrals
\AtEndPreamble{% added to accommodate v1.731 of newtx, 2023/11/03
@@ -17,7 +18,7 @@
% \DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-} %
\RequirePackage{bm}% bold math
\else
- \ClassWarning{mitnewthesis}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
index cc43427055..b1541bbd05 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
@@ -1,17 +1,17 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-newtx.tex}[2023/09/12 v1.03 Load newtx text and math fonts]
+\ProvidesFile{mitthesis-newtx.tex}[2024/06/28 v1.04 Load newtx text and math fonts]
\ifpdftex
- \typeout{^^JLoading newtx fonts with inconsolata typewriter^^J}
+ \ClassNoteNoLine{\ClassName}{Loading newtx fonts with inconsolata typewriter}
\RequirePackage[T1]{fontenc}
\RequirePackage[subscriptcorrection,varvw,helvratio=0.91]{newtx}% stix2, upint
\RequirePackage[varl,varqu,hyphenate,mono]{inconsolata}% sans typewriter font; mono = fixed word spacing, hyphenate = allow hyphenation
\RequirePackage{bm}
\let\textsuperscript\textsu% newtx changes the default superiors font; this is needed to get commas aligned in sequential footnotes
\else
- \ClassWarning{mitnewthesis}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
index de3983fe4e..c178ff233f 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-stix2.tex}[2023/09/12 v1.03 Load STIX Two text and math fonts]
+\ProvidesFile{mitthesis-stix2.tex}[2024/06/28 v1.04 Load STIX Two text and math fonts]
%% STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{Loading STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
index 1e65724cc0..ed2abc1655 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-termes-stix2.tex}[2023/09/12 v1.03 Load TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font]
+\ProvidesFile{mitthesis-termes-stix2.tex}[2024/10/28 v1.04 Load TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font]
%% TeX Gyre Termes text font and Heros sans serif font with STIX2 math font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The termes-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The termes-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{Loading TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
index 64fffb9264..fd1e15bab8 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-termes.tex}[2023/09/12 v1.03 Load TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font]
+\ProvidesFile{mitthesis-termes.tex}[2024/06/28 v1.04 Load TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font]
%% TeX Gyre Termes (Times-like) text font with Termes math font and Heros sans serif font and Cursor monospaced font
%
@@ -9,11 +9,11 @@
% install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The termes fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The termes fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
% unicode-math loads the fontspec package
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib b/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
index 1131bed50d..98ba37532e 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
@@ -1,6 +1,6 @@
%% Sample bibliography file for mitthesis.cls
%%
-%% Revised: 12 September 2023
+%% Revised: 01 August 2024
%% Copyright John H. Lienhard, MIT
%% Offered under the MIT license: https://ctan.org/license/mit
@@ -322,4 +322,14 @@
address = {San Francisco, CA},
month = sep,
}
+
+@book{baehr1998,
+ author ={H. D. Baehr and K. Stephan},
+ title = {Heat and Mass Transfer},
+ publisher = {Springer-Verlag},
+ address = {Berlin},
+ year = {1998},
+ isbn = {3-540-63695-1},
+}
+
\ No newline at end of file
diff --git a/macros/latex/contrib/mitthesis/README.md b/macros/latex/contrib/mitthesis/README.md
index 9d2918ca36..3a30748862 100644
--- a/macros/latex/contrib/mitthesis/README.md
+++ b/macros/latex/contrib/mitthesis/README.md
@@ -1,7 +1,7 @@
#mitthesis --- A LaTeX template for an MIT thesis#
- v1.14 dated 2024/07/19
+ v1.16 dated 2024/09/06
####Overview####
This class provides a LaTeX template to format an MIT thesis according to
@@ -26,8 +26,10 @@
abstract.tex -- put your abstract in this file
acknowledgments.tex -- put your acknowledgments in this file
biosketch.tex -- put your biosketch in this file (optional)
- chapter1.tex -- put your first chapter in this file (etc.)
- appendixa.tex -- put your first appendix in this file (etc.)
+ chapter1.tex -- sample first chapter
+ committee_members.tex -- sample thesis committee members page (optional)
+ appendixa.tex -- sample appendix with code listing
+ appendixb.tex -- sample appendix with multipage table
mitthesis-sample.bib -- a sample bibliography file with many examples
mydesign.tex -- an optional file to load packages for document design
fontsets/ -- a subdirectory of input files that load optional fonts
@@ -53,8 +55,21 @@
---
####Change log####
+
+ v1.16 (06 September 2024)
+ - Same as v1.15, but now with the correct version of MIT-Thesis.tex
+
+ v1.15 (31 August 2024)
+ - add an example for the longtable package (App. B)
+ - add sample Thesis Committee page (optional)
+ - load microtype package, enable tracking for capitalized strings (degree name[s], institution name)
+ - fix typo in MIT-Thesis.tex
+ - edit documentation
+ - edit pdfauthor string to separator authors with semicolon, not comma (per Dublin Core recommendation)
+ - define \\@author and \\@title in case needed
+
v1.14 (19 July 2024)
- - add backward compatibility code for \\text_titlecase_all:n
+ - add backward compatibility code for \\text\_titlecase\_all:n
- adjust supervisor and acceptor titles used on sample cover pages
- format J/psi as \\symbfit in sample chapter 1 and regenerate font samples
- edit documentation
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
index 97243bde84..ef50423842 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
index cc3e40ce75..ab8796fe83 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
index c09afd43ee..888046a1d8 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
index 418bf7e8d3..ab8fa1531f 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
index 43081a36f0..e81c210952 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
index d21ca4d057..5bd3928957 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
index 45952c0c52..2ccbde4b1d 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
index 0792ee30f9..d13e8a05c4 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
index 80b8e07d10..5601e9541a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
index 90dfd3ab31..0451bdf880 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
index b6480ef952..33fa1e5d3a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
index f2c8ed1158..c574f2bf8c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=fira-newtxsf]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=fira-newtxsf]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
-
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
-
+\include{appendixa}
+\include{appendixb}
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -252,8 +303,12 @@
\printbibliography[title={\refname},heading=bibintoc]
+% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
+% see the biblatex manual, section 3.14.3
+
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
index 7e914bfa38..8d39d55b8a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=heros-stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=heros-stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
+
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,67 +217,98 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
% change "backmatter" to "chapter" if you prefer a bold face entry in the table of contents
-{ \raggedright% to avoid stretched white space and split urls; DELETE THIS if you prefer justified text
-%
\printbibliography[title={\refname},heading=bibintoc]
-}
+
% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
% see the biblatex manual, section 3.14.3
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
index 9198d8a489..eb0798989e 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=libertine]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=libertine]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
index 3fd445d4ff..9c7284cd7c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=lucida]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=lucida]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
index 9729118c30..11edff3cdc 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=newtx-sans-text]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=newtx-sans-text]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
-
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
-
+\include{appendixa}
+\include{appendixb}
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -252,8 +303,12 @@
\printbibliography[title={\refname},heading=bibintoc]
+% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
+% see the biblatex manual, section 3.14.3
+
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
index e2cebe98ac..d755977cb5 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=newtx]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=newtx]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
index beacdde0a3..18b95f79ec 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
@@ -6,11 +6,16 @@ These font sample files call the following additional files as inputs:
abstract.tex
acknowledgments.tex
appendixa.tex
+appendixb.tex
biography.tex
chapter1.tex
+committee_members.tex
mitthesis-sample.bib
mydesign.tex
All of those files are in the directory mitthesis/MIT-thesis-template.
You should also copy the fontsets directory (and mitthesis.cls) into this folder.
+
+Run as % ./compile-font-samples.sh
+
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
index 6fe4965432..aabac07cda 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
index 3bbf3c8333..3b17a9c4cd 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=termes-stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=termes-stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
index 92a905fe99..6733f96f13 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=termes]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=termes]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
index fdb19c1f4f..16b0d5bc48 100755
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
@@ -1,60 +1,67 @@
#! /bin/bash
-# first run
-
+# Default fonts
+pdflatex Defaultfonts
+biber Defaultfonts
pdflatex Defaultfonts
-pdflatex Fira_Newtxsf
-pdflatex Libertine
-pdflatex Lucida
-pdflatex Newtx-sans-text
-pdflatex Newtx
-
-lualatex Heros-Stix2
-lualatex Stix2
-lualatex Termes-stix2
-lualatex Termes
-
-# biber
-
-biber Defaultfonts
-biber Fira_Newtxsf
-biber Libertine
-biber Lucida
-biber Newtx-sans-text
-biber Newtx
-biber Heros-Stix2
-biber Stix2
-biber Termes-stix2
-biber Termes
-
-# second run
-
pdflatex Defaultfonts
+
+# Fira_Newtxsf
+pdflatex Fira_Newtxsf
+biber Fira_Newtxsf
pdflatex Fira_Newtxsf
+pdflatex Fira_Newtxsf
+
+# Libertine
+pdflatex Libertine
+biber Libertine
pdflatex Libertine
+pdflatex Libertine
+
+# Lucida
+pdflatex Lucida
+biber Lucida
+pdflatex Lucida
pdflatex Lucida
+
+# Newtx-sans-text
+pdflatex Newtx-sans-text
+biber Newtx-sans-text
+pdflatex Newtx-sans-text
pdflatex Newtx-sans-text
+
+# Newtx
+pdflatex Newtx
+biber Newtx
+pdflatex Newtx
pdflatex Newtx
+# Heros-Stix2
+lualatex Heros-Stix2
+biber Heros-Stix2
lualatex Heros-Stix2
+lualatex Heros-Stix2
+
+# Stix2
+lualatex Stix2
+biber Stix2
lualatex Stix2
+lualatex Stix2
+
+# Termes-stix2
+lualatex Termes-stix2
+biber Termes-stix2
+lualatex Termes-stix2
lualatex Termes-stix2
-lualatex Termes
-# third run
-pdflatex Defaultfonts
-pdflatex Fira_Newtxsf
-pdflatex Libertine
-pdflatex Lucida
-pdflatex Newtx-sans-text
-pdflatex Newtx
-
-lualatex Heros-Stix2
-lualatex Stix2
-lualatex Termes-stix2
+# Termes
+lualatex Termes
+biber Termes
+lualatex Termes
lualatex Termes
+
# clean up
mkdir pdffiles
@@ -68,5 +75,3 @@ rm *.lot
rm *.lof
rm *.toc
rm *.xml
-
-
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
index ab61cf59e5..69af5643ce 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
index 4e5e739585..dc0dd3ed8a 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
@@ -1,14 +1,14 @@
% !TEX TS-program = lualatex
% !TEX encoding = UTF-8 Unicode
-% Version date: 19 July 2024
+% Version date: 31 August 2024
\DocumentMetadata
{
pdfstandard = a-4,
pdfversion = 2.0,
-% testphase = {phase-III, table, firstaid, math},
lang = en-US,
+% testphase = {phase-III, table, firstaid, math, title},
% debug = {xmp-export}, % note that subject entries are all fine in dc format of outputted xmpi file.
}
@@ -17,9 +17,10 @@
\documentclass[11pt]{article}
\usepackage[letterpaper,margin=1in,footskip=0.5in]{geometry}
-\usepackage{metalogo}
+
\usepackage{hologo}
\newcommand*\pdfTeX{\hologo{pdfTeX}}
+\newcommand*\LuaLaTeX{\hologo{LuaLaTeX}}
\usepackage[x11names,svgnames,dvipsnames,table]{xcolor}
\usepackage{luacolor} % load AFTER xcolor
@@ -84,13 +85,11 @@
\usepackage[psdextra]{hyperref}
-\hypersetup{%
- unicode,%
-% pdftex,%
- pdfborder={0 0 0},%
- bookmarksnumbered=true,%
- bookmarksopen=true,%
- bookmarksopenlevel=2,%
+\hypersetup{
+ pdfborder={0 0 0},
+ bookmarksnumbered=true,
+ bookmarksopen=true,
+ bookmarksopenlevel=2,
colorlinks=true,
linkcolor=blue,
citecolor=blue,
@@ -99,15 +98,15 @@
anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
pdfpagelayout=SinglePage,
- pdfdisplaydoctitle=true,%
+ pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfmetalang={en},
- pdftitle={Documentation for the MIT thesis template},%
- pdfkeywords={John Lienhard, Massachusetts Institute of Technology, MIT, thesis, dissertation, template, latex},%
- pdfnewwindow=true,%
+ pdftitle={Documentation for the MIT thesis template},
+ pdfkeywords={John Lienhard, Massachusetts Institute of Technology, MIT, thesis, dissertation, template, latex},
+ pdfnewwindow=true,
pdfauthor={John H. Lienhard},
pdfauthortitle={Professor of Mechanical Engineering},
- pdfcaptionwriter={{John H. Lienhard, V}}, %{\xmpquote{John H. Lienhard\xmpcomma\ V}},
+ pdfcaptionwriter={{John H. Lienhard, V}},
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -126,10 +125,7 @@
\cs_if_exist:NTF \pdfmeta_xmp_add:n {\pdfmeta_xmp_add:n{<xmpRights:Marked>True</xmpRights:Marked>}}{}
\ExplSyntaxOff
-\urlstyle{same} % this changes font for \url to the current text font, but it is not recognized by \href.
-
-%\RequirePackage{bookmark}% improves handling of pdf bookmarks
-%\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code
+\urlstyle{same}% this changes font for \url to the current text font, but it is not recognized by \href.
%%%%%%%% A nomenclature environment, if needed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -155,7 +151,7 @@
% Increase first optional argument to a dimension > 2em if wide entries cause undesired misalignment of columns.
% Second optional argument can be used to rename the environment, e.g., to List of Symbols.
% Third optional argument selects section-level or chapter-level style for the nomenclature list.
-\newcounter{dummy}% for tagging code
+%\newcounter{dummy}% for tagging code
\NewDocumentEnvironment{nomenclature}{O{2em} O{\nomname} O{section}}{%
\setlength\columnsep{2em}
\setlength{\nomenwidth}{#1}
@@ -316,7 +312,7 @@ By default, \texttt{mitthesis.cls} will load the traditional \LaTeX\ typeface, C
Ten font sets are predefined, including the default set (see Table~\ref{tab:2}). Three work only with \pdfTeX, four work only with unicode engines, and three work with either. These options include a mixture of serif or sans serif text and math fonts, as shown in the table. To access the predefined font sets, you \textit{must} have the directory \texttt{fontsets} as a subdirectory of your working directory, including its files as named. For unicode engines, you must have the relevant fonts installed as system fonts on your computer.
-Among the predefined font sets, Termes and NewTX are serifed typefaces similar to the digital typeface Times New Roman. STIX Two is more similar to the original metal-type Times typeface. Linux Libertine is a serif typeface inspired by 19\textsuperscript{th} century book type. Lucida is a serifed typeface designed for high legibility at small size or on low resolution devices. Lucida is excellent for mathematics and includes a complete bold-face math font, but it is not free. Heros and NewTX-sans are sans-serif text typefaces similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX fonts. Fira is a humanist sans-serif text typeface designed in association with the Firefox browser. Finally, Computer Modern (and its extension Latin Modern)---the traditional \LaTeX\ typeface---is a Didone typeface, with high contrast between thick and thin elements.
+Among the predefined font sets, Termes and NewTX are serifed typefaces similar to the digital typeface Times New Roman. STIX Two is more similar to the original metal-type Times typeface. Linux Libertine is a serif typeface inspired by 19\textsuperscript{th} century book type. Lucida is a serifed typeface designed for high legibility at small size or on low resolution devices. Lucida is excellent for mathematics and includes a complete bold-face math font, but it is not free. Heros and NewTX-sans are sans-serif text typefaces similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX fonts. Fira is a humanist sans-serif text typeface designed in conjunction with the Firefox operating system. Finally, Computer Modern (and its extension Latin Modern)---the traditional \LaTeX\ typeface---is a Didone typeface, with high contrast between thick and thin elements.
% STIX Two, Termes, and LMR do not include a separate bold math font.
You may also place your own font-set file, say \texttt{Myfontset.tex}, in your working directory, and load it with:
@@ -402,7 +398,7 @@ The \texttt{mitthesis} class loads the \texttt{amsmath} package and its extensio
Specialized packages for many disciplines can be found in \hrefurl{https://ctan.org}{CTAN}. These include subjects like \hrefurl{https://ctan.org/topic/chemistry}{chemistry}, \hrefurl{https://ctan.org/topic/linguistic}{linguistics}, and \hrefurl{https://ctan.org/topic/physics}{physics}. As examples of such packages, the sample thesis template uses the package \texttt{\hrefurl{https://ctan.org/pkg/mhchem}{mhchem}} to set chemical equations and the package \texttt{\hrefurl{https://ctan.org/pkg/listings}{listings}} to list computer code.
-Several packages focus on table and tabular environments. The \texttt{\hrefurl{https://ctan.org/pkg/booktabs}{booktabs}} package, use in the sample thesis template, produces better quality horizontal lines (called \textit{rules}) for separating material in tables. The \texttt{\hrefurl{https://ctan.org/pkg/array}{array}} package (also used) provides additional options for column formats in tabular environments, and the \texttt{\hrefurl{https://ctan.org/pkg/dcolumn}{dcolumn}} package aligns columns of numbers on the decimal separator.
+Several packages focus on table and tabular environments. The \texttt{\hrefurl{https://ctan.org/pkg/booktabs}{booktabs}} package, use in the sample thesis template, produces better quality horizontal lines (called \textit{rules}) for separating material in tables. The \texttt{\hrefurl{https://ctan.org/pkg/array}{array}} package (also used) provides additional options for column formats in tabular environments, the \texttt{\hrefurl{https://ctan.org/pkg/dcolumn}{dcolumn}} package aligns columns of numbers on the decimal separator, and the \texttt{\hrefurl{https://ctan.org/pkg/longtable}{longtable}} package (also used) formats multipage tables with automatic page breaking.
When selecting a package to use, check that it is currently maintained (with relatively recent updates), and compare it to other packages that perform similar functions. Some packages are better than others, and some obsolete packages remain online.
@@ -410,8 +406,7 @@ The packages called by \texttt{mitthesis} are listed in Table~\ref{tab:3} on pag
\begin{table}
\caption{External packages used. For documentation, visit CTAN, \url{https://ctan.org}. Alternatively, if you have \hrefurl{https://www.tug.org/texlive/}{\TeX\ Live} installed, you can open a terminal window and type \texttt{\%\ texdoc package-name}.\label{tab:3}}
-\vskip5pt
-\centering{\small%
+\centering{\footnotesize%
\setlength\extrarowheight{3pt}
\begin{tabular*}{\textwidth}{>{\ttfamily}l<{}@{\extracolsep{\fill}}p{18em} p{22em} }
\\[-5pt]
@@ -419,20 +414,20 @@ The packages called by \texttt{mitthesis} are listed in Table~\ref{tab:3} on pag
Package & Class & User \\
\midrule
bm & defines commands to access bold math symbols (loaded for default fonts) & with \pdfTeX, the command \verb|\bm{..}| produces a bold math symbol \\
-bookmarks& is loaded automatically under the new pdf-management system & customize pdf bookmarks \\
+bookmark & is loaded automatically under the new pdf-management system & customize pdf bookmarks \\
doi & support for hyperlinking DOIs & hyperlink a doi number: \verb|\doi{..}| \\
etoolbox & extend or modify other macros & can use in preamble if needed \\
geometry & set page size and margins & can use \verb|\newgeometry| in \texttt{mydesign.tex}\\
graphicsx& support for inserting images & use to include graphics\\
hyperref & support for hyperlinks and metadata & must complete setup in preamble\\
iftex & check which \LaTeX\ engine is running& macros to check which engine, e.g., \verb|\ifpdftex| \\
-mathtools& loads and extends \texttt{amsmath} & \textbf{many useful math macros available}. See documentation for \texttt{amsmath} and \texttt{mathtools} \\[0.7em]
+mathtools& loads and extends \texttt{amsmath} & \textbf{many useful math macros available}. See documentation for \texttt{amsmath} and \texttt{mathtools} \\
\midrule
hyperxmp & fallback if no \verb|\DocumentMetadata{..}|& ---\\
kvoptions& key values for systems pre 2022/11/01 & ---\\
xparse & for systems older than 2020/10/01 & macros to define new commands\\
\midrule
-lineno & loaded if class option is given & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package adds commands to control numbering\\[0.7em]
+lineno & loaded if class option is given & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package adds commands to control numbering\\
\midrule
caption & also loaded by \texttt{mydesign.tex} & support for caption styling \\
subcaption & also loaded by \texttt{mydesign.tex} & support for subfigures within figures \\
@@ -441,6 +436,8 @@ xcolor & also loaded by \texttt{mydesign.tex} & support for colors, includi
array & --- & additional options for formatting table columns \\
booktabs & --- & better quality tables, with additional commands \\
dcolumn & --- & align number columns on selectable separators \\
+longtable & --- & multipage tables with automatic page breaking \\
+microtype & --- & typographical refinements: character protrusion, font expansion, letter spacing (tracking), etc. \\
\midrule
babel & --- & if you use multiple languages, load \texttt{babel} in a fontset file before loading fonts \\
biblatex & --- & sample template uses this bibliography tool. Change to \texttt{natbib} if you prefer\\
@@ -465,7 +462,8 @@ When a thesis supervisor has multiple titles (which will not fit on one line), y
\vskip 5pt
\quad\verb|\Supervisor{name}{first title and \\ \> second title}|
\vskip 5pt
-\noindent\textbf{\TeX hackers note:} The signature block is typeset as a \LaTeX\ \texttt{tabbing} environment.
+\noindent The same trick works in the \verb|\Acceptor| command.
+\textbf{\TeX hackers note:} The signature block is typeset as a \LaTeX\ \texttt{tabbing} environment.
\subsection{Overflowing title page: managing space} If your title page overflows the vertical space (from too many authors, degrees, previous degrees, etc.), you can use some or all of the following techniques. The commands must be given before \verb|\maketitle|.
\begin{enumerate}
diff --git a/macros/latex/contrib/mitthesis/mitthesis.cls b/macros/latex/contrib/mitthesis/mitthesis.cls
index 0a3a44310c..a41d201f0e 100644
--- a/macros/latex/contrib/mitthesis/mitthesis.cls
+++ b/macros/latex/contrib/mitthesis/mitthesis.cls
@@ -7,8 +7,8 @@
%% MIT Libraries' requirements as of 2024.
%%
%% This file's version and date:
- \def\versionno{1.14}
- \def\versiondate{2024/07/19\space}
+ \def\versionno{1.16}
+ \def\versiondate{2024/09/06\space}
%%
%% Author: John H. Lienhard, V
%% Department of Mechanical Engineering
@@ -89,6 +89,7 @@
\IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
}
}
+% Most compatibility commands will be dropped as time goes by ...
%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -157,22 +158,28 @@
% pdf bookmarks. This is not automatic for \chapter*, which is the format of toc, lof, and lot.
\RequirePackage{etoolbox}% provides \patchcmd
+
\patchcmd{\tableofcontents}{\contentsname}{\pdfbookmark[0]{Table of Contents}{toc}\contentsname}{}{} % placement matters.
-\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\phantomsection\listfigurename}\addcontentsline{toc}{frontmatter}{\listfigurename}}{}{}
-\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\phantomsection\listtablename}\addcontentsline{toc}{frontmatter}{\listtablename}}{}{}
+
+%% Temporary accommodation of latex tagging. Rework once tagging structures have been finalized by LaTeX3 team.
+%% No guarantee that this hack is hierarchically correct.
+%% Current latex-lab places tags around \@schapter, which is harder to deal with here.
+\providecommand*\MakeLinkTarget{\@gobbletwo}
+
+\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\phantomsection\listfigurename}\MakeLinkTarget[chapter]{}\addcontentsline{toc}{frontmatter}{\listfigurename}}{}{}
+\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\phantomsection\listtablename}\MakeLinkTarget[chapter]{}\addcontentsline{toc}{frontmatter}{\listtablename}}{}{}
\NewCommandCopy\l@frontmatter\l@chapter
\NewCommandCopy\l@backmatter\l@chapter
\providecommand*{\toclevel@frontmatter}{0}% prevent warning, see hyperref manual Sec. 13.3
\providecommand*{\toclevel@backmatter}{0}
-%% if you want different formatting for front/back matter, change here (cf. report.cls). This approach preserves tagging hooks.
-\AtBeginDocument{
- \patchcmd{\l@frontmatter}{\bfseries}{\itshape}{}{}
- \patchcmd{\l@frontmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
- \patchcmd{\l@frontmatter}{1.0em}{3pt}{}{}
- \patchcmd{\l@backmatter}{\bfseries}{\itshape}{}{}
- \patchcmd{\l@backmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
-}
+
+%% if you want different formatting for front/back matter, change here (cf. report.cls).
+\patchcmd{\l@frontmatter}{\bfseries}{\itshape}{}{}
+\patchcmd{\l@frontmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
+\patchcmd{\l@frontmatter}{1.0em}{3pt}{}{}
+\patchcmd{\l@backmatter}{\bfseries}{\itshape}{}{}
+\patchcmd{\l@backmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
%%%%%%%%%%%%% Geometry, mathtools, graphics, design, fonts, hyperrefs, bookmarks, footnotes %%%%%%%%%%%%%%%%%%%
@@ -294,8 +301,10 @@
%%%%%%%%%%%% PDF bookmark strings %%%%%%%%%%%%%%%%
-%%% Since \bm may be useful in headings, use this fix to reduce frequency with which alternate
-%%% bookmark strings must be given with commands such as \section{ \texorpdfstring{texstring}{pdfstring} }
+%%% By early 2024, \pdfstring removes all robust commands from bookmarks, so that such commands
+%%% don't cause errors; the following pdfstringdisables serve to suppress warnings.
+
+%% \bm may be useful in headings, but let's disable in the associated bookmarks
\pdfstringdefDisableCommands{%
\def\bm#1#{\relax}%
}
@@ -323,7 +332,7 @@
}
%%% Here's a more cumbersome removal of the warning for $ (math shift) in pdfbookmarks.
-%%% Not implementing this by default, since novice authors may benefit from the warning.
+%%% Not implementing this by default, since novice authors may benefit from the warning. :-)
%%% https://tex.stackexchange.com/a/620360/119566
%\let\oldHyPsd@CatcodeWarning\HyPsd@CatcodeWarning
%\renewcommand{\HyPsd@CatcodeWarning}[1]{%
@@ -349,6 +358,10 @@
%%%%%%%%%%%% MACROS FOR HANDLING TITLE AND ABSTRACT PAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\AtBeginDocument{
+ \providecommand{\textls}[2][]{#2}% in case microtype is not loaded
+}
+
%%%%%%%%%% Degree Date Module %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tl_new:N \g__dd_month_tl
@@ -441,11 +454,11 @@
\int_incr:N \l__author_autcrcnt_int
\int_while_do:nNnn { \l__author_autcrcnt_int } < { \g_author_authorcnt_int }
{
- \tl_gput_right:Nx \g__author_ca_tl {,\ \seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
+ \tl_gput_right:Nx \g__author_ca_tl {,~\seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
\int_incr:N \l__author_autcrcnt_int
}
\int_compare:nNnT { \l__author_autcrcnt_int } = { \g_author_authorcnt_int } {
- \tl_gput_right:Nx \g__author_ca_tl {\ and\ \seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
+ \tl_gput_right:Nx \g__author_ca_tl {~and~\seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
}
\tl_set:Nn \l_tmpa_tl {\tl_item:Nn \g__author_ca_tl {-1} }% get last token
\str_case_e:nnT
@@ -453,6 +466,7 @@
{ {.}{} }
{ \__copyright_remove_period:N { \g__author_ca_tl } }% remove last token if it is a period
\__author_pdfcopyrightauthor:
+ \cs_gset:Npe \@author { \tl_use:N \g__author_ca_tl }% 2024/08/06
}
\cs_new:Nn \__copyright_remove_period:N
{
@@ -465,11 +479,11 @@
\int_until_do:nNnn { \l_tmpa_int } = { \g_author_authorcnt_int }
{
\int_incr:N \l_tmpa_int
- \tl_gput_right:Nx \g__author_pdfca_tl {,\ { \seq_item:cn { g_author_name_seq } { \l_tmpa_int } } }
- }
+ \tl_gput_right:Nx \g__author_pdfca_tl {;\ { \seq_item:cn { g_author_name_seq } { \l_tmpa_int } } }
+ % changed comma to semicolon for consistency with Dublin Core metadata format, 2024/08/30
+ }
}
-
\tl_new:N \g__author_namesize_tl
\tl_gset:Nn \g__author_namesize_tl { \large }
\cs_new:Nn \__author_block: {
@@ -722,10 +736,10 @@
\ of}
\par
\int_until_do:nNnn { \l__degree_degreeno_int } = { \g_degree_degreecnt_int } {
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par and\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par and\par
\int_incr:N \l__degree_degreeno_int
}
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par
}
\msg_new:nnnn { \ClassName } { no_degree }
{ Missing\ degree!\ You\ must\ issue\ the\ \Degree{name}{department}\ command. }{
@@ -750,10 +764,10 @@
\ of}
\par\medskip
\int_until_do:nNnn { \l__degree_degreeno_int } = { \g_degree_degreecnt_int } {
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par and\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par and\par
\int_incr:N \l__degree_degreeno_int
}
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par\medskip
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par\medskip
}
%%%%%%%%%% End Degree Module %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -890,6 +904,7 @@
\RenewDocumentCommand{\title}{m}
{
\__mitthesis_title:n { #1 }
+ \cs_gset:Npe \@title { \tl_use:N \g_mitthesis_title_tl } % 2024/08/06
\hypersetup{
pdftitle={\g_mitthesis_title_tl},
}
@@ -967,12 +982,12 @@
{\Large\textbf{\g_mitthesis_title_tl}
%\phantomsection\addcontentsline{toc}{chapter}{Title\ page}
\par}
- \__titlepage_blockskip:nn {12}{1.5}% new idea
+ \__titlepage_blockskip:nn {12}{1.5}
\__author_block:
\__titlepage_blockskip:nn {12}{1.5}
\__degree_block:
- at\ the\par
- \text_uppercase:n { \g_titlepage_institution_name_tl }\par
+ at~the\par
+ \textls[60]{\text_uppercase:n { \g_titlepage_institution_name_tl }}\par
\DegreeMonth\ \DegreeYear\par
\__titlepage_blockskip:nn {12}{2}
\copyright\space\DegreeYear\space\CopyrightAuthor\@.\c_space_token \g_copyright_copyrightlicencse_tl % \@. in case name ends with III, IV, V,...
diff --git a/macros/latex/contrib/mlacls/mla-example.pdf b/macros/latex/contrib/mlacls/mla-example.pdf
index de61b592bf..560e110b66 100644
--- a/macros/latex/contrib/mlacls/mla-example.pdf
+++ b/macros/latex/contrib/mlacls/mla-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/mlacls/mla.dtx b/macros/latex/contrib/mlacls/mla.dtx
index 807a073ed1..b957b75bbb 100644
--- a/macros/latex/contrib/mlacls/mla.dtx
+++ b/macros/latex/contrib/mlacls/mla.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 2019 Seth Price.
+% Copyright 2019 Seth M. Price.
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -27,7 +27,7 @@
%<mla>\NeedsTeXFormat{LaTeX2e}
%<mla>\ProvidesClass{mla}
%<*mla>
- [2021/09/14 v1.0 MLA Paper Class]
+ [2024/09/13 v1.1 MLA Paper Class]
%</mla>
%<*driver>
@@ -80,7 +80,11 @@
\addbibresource{mla.bib}
%% Just thought it'd be cool to use `acro'
-\usepackage{acro}
+%% (though v3.6 seems to have broken everything)
+\ExplSyntaxOn
+\prop_new:N \l__acro_foreign_format_prop
+\ExplSyntaxOff
+\usepackage{acro2}
\DeclareAcronym{US}{short=US,long=United States}
\DeclareAcronym{MLA}{short=MLA,long=Modern Language Association}
\DeclareAcronym{CTAN}{short=CTAN,
@@ -109,11 +113,12 @@
\usepackage{microtype}
%% Fancy PDF
-\usepackage[hidelinks]{hyperref}
+\usepackage[numbered]{hypdoc}
\hypersetup{
+ hidelinks,
pdfinfo={
Title=The MLA class,
- Author=Seth Price,
+ Author=Seth M. Price,
Creator=LaTeX
}
}
@@ -131,7 +136,7 @@
%
% \fi
%
-% \CheckSum{401}
+% \CheckSum{430}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -151,7 +156,7 @@
%
% \title{The \Dcls{mla} class\thanks{This document corresponds to
% \Dcls{mla}~\fileversion, dated \filedate.}}
-% \author{Seth Price \\ \href{mailto:\myemail}{\texttt{\myemail}}}
+% \author{Seth M.\ Price \\ \href{mailto:\myemail}{\texttt{\myemail}}}
% \date{\today}
%
% \maketitle
@@ -241,6 +246,7 @@
% \begin{macro}{\MLA@pageheader}
% \begin{macro}{\MLA@plainheadings}
% \begin{macro}{\MLA@fullpage}
+% \begin{macro}{\MLA@times}
% The following are true/false switches to toggle certain features.
%
% \begin{macrocode}
@@ -254,6 +260,7 @@
\newif\ifMLA@pageheader
\newif\ifMLA@plainheadings
\newif\ifMLA@fullpage
+\newif\ifMLA@times
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -265,6 +272,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \section{Options}
% \label{sec:options}
@@ -297,7 +305,7 @@
\DeclareOption{mla8alt}{\MLA@sevenfalse\MLA@eightfalse\MLA@eightalttrue}
% \end{macrocode}
%
-% For those who do not plan on using figures and/or footnotes,
+% For those who do not plan on using figures and/or endnotes,
% some time (and dependency disk space) might be saved by using the
% \Dopt{nofigures} and/or \Dopt{nonotes} options, as they are enabled
% by default.
@@ -352,6 +360,16 @@
\DeclareOption{fullpage}{\MLA@fullpagetrue}
% \end{macrocode}
%
+% \changes{v1.1}{2024/02/04}{Added \Dopt{notimes} option to not set Times New
+% Roman as the font}
+% For professors that do not require Times New Roman as the font, the
+% \Dopt{notimes} option may be used to keep the default font. This allows
+% maintaining \LaTeX{}'s default font if desired.
+% \begin{macrocode}
+\MLA@timestrue
+\DeclareOption{notimes}{\MLA@timesfalse}
+% \end{macrocode}
+%
% \subsection{Processing}
% \label{sec:processing}
%
@@ -397,7 +415,6 @@
\RequirePackage{fancyhdr}
\RequirePackage{fullpage}
\RequirePackage{ragged2e}
-\RequirePackage{newtxtext}
\RequirePackage{titlesec}
\RequirePackage{xstring}
% \end{macrocode}
@@ -454,6 +471,14 @@
\fi
% \end{macrocode}
%
+% And the \Dpkg{newtxtext} package can be disabled with \Dopt{notimes}.
+%
+% \begin{macrocode}
+\ifMLA@times
+ \RequirePackage{newtxtext}
+\fi
+% \end{macrocode}
+%
% The \Dpkg{microtype} package is loaded if the \Dopt{microtype}
% option is specified.
%
@@ -477,11 +502,12 @@
% \subsection{Font}
% \label{sec:font}
%
-% The \Dpkg{newtxtext} package was already loaded in
-% section~\ref{sec:loading_packages},
-% and the font was set to 12pt when loading the \Dcls{article} class
+% The font size was set to 12pt when loading the \Dcls{article} class
% in section~\ref{sec:initial_code}.
-% This should be metric-compatible with the infamous Times New Roman,
+% Unless the option \Dopt{notimes} was specified,
+% the \Dpkg{newtxtext} package will have been loaded in
+% section~\ref{sec:loading_packages},
+% which should be metric-compatible with the infamous Times New Roman,
% the \foreign{de facto} standard of the
% \ac{MLA} format\footnote{According to the popular, oft-referenced
% \ac{OWL}: \citeurl{owlmla}.}.
@@ -837,6 +863,28 @@
% \end{environment}
% \end{environment}
%
+% \changes{v1.1}{2024/09/12}{Modify footnotes to be more in-style}
+% \subsection{Footnotes}
+% \label{sec:footnotes}
+%
+% Footnotes are styled similarly to endnotes (see section \ref{sec:endnotes}),
+% but in smaller text, and glued to the bottom of the page.
+%
+% \begin{macrocode}
+\addtolength{\skip\footins}{1pc}
+\renewcommand{\footnoterule}{%
+ \vfill
+ \kern -3pt\hrule width 0.4\columnwidth
+ \vskip 6pt
+}
+\renewcommand{\@makefnmark}{\@thefnmark}
+\renewcommand{\@makefntext}[1]{%
+ \leftskip 0.5in
+ \parindent -0.5in
+ \@makefnmark.~#1
+}
+% \end{macrocode}
+%
% \subsection{Block quotation}
% \label{sec:block_quoatation}
%
@@ -1015,6 +1063,8 @@
\fi
% \end{macrocode}
%
+% See section \ref{sec:footnotes} for footnotes.
+%
% \subsubsection{Bibliography}
% \label{sec:bibliography}
%
diff --git a/macros/latex/contrib/mlacls/mla.pdf b/macros/latex/contrib/mlacls/mla.pdf
index 937392ba70..6849a5c61c 100644
--- a/macros/latex/contrib/mlacls/mla.pdf
+++ b/macros/latex/contrib/mlacls/mla.pdf
Binary files differ
diff --git a/macros/latex/contrib/moremath/moremath-doc.pdf b/macros/latex/contrib/moremath/moremath-doc.pdf
index 4a90adc8e7..8ed1c145fd 100644
--- a/macros/latex/contrib/moremath/moremath-doc.pdf
+++ b/macros/latex/contrib/moremath/moremath-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/moremath/moremath.dtx b/macros/latex/contrib/moremath/moremath.dtx
index 3b520f4ac2..48e7bae62d 100644
--- a/macros/latex/contrib/moremath/moremath.dtx
+++ b/macros/latex/contrib/moremath/moremath.dtx
@@ -67,6 +67,18 @@
date = {2024-03-11},
version = {1.30},
}
+
+@comment{Below are non-package References}
+
+@article{package-rollback,
+ title = {A rollback concept for packages and classes},
+ author = {Frank Mitelbach},
+ year = {2018},
+ journaltitle = {TUGboat},
+ number = 2,
+ url = {https://www.latex-project.org/publications/2018-FMi-TUB-tb122mitt-version-rollback.pdf},
+ urldate = {2024-08-06},
+}
\end{filecontents*}
\begin{filecontents*}[overwrite]{\jobname-ams-op-table.tex}
\begin{tabular}{rlrlrlrl}
@@ -161,6 +173,7 @@
% \AddVersion{v0.2.0}{2024-07-04}
% \AddVersion{v0.3.0}{2024-07-08}
% \AddVersion{v0.4.0}{2024-07-15}
+% \AddVersion{v0.5.0}{2024-08-20}
%
% ^^X Placeholder for unreleased versions
% \AddVersion{vUNRELEASED}{UNRELEASED}
@@ -238,7 +251,7 @@
% on their own.
%
% There are also other things that can be improved when typesetting math.
-% One prominent example is the typsetting of row and column vectors,
+% One prominent example is the typesetting of row and column vectors,
% which require the use of a \env{matrix} environment.
% For this case \pkg{moremath} provides commands which accept a comma separated
% list of vector entries,
@@ -888,7 +901,7 @@
% \end{gather*}
% \end{minipage}
%
-% \item Feynman-Notation:
+% \item Feynman-notation:
%
% \begin{minipage}{.49\linewidth}
% \begin{verbatim}
@@ -1351,7 +1364,9 @@
% Valid keys are "delimiter", "fill", and "align",
% their usage is described in section~\ref{sec:options-matrix}.
%
-% \begin{function}{
+% \begin{function}[
+% updated=2024-08-20,
+% ]{
% \cvector,
% \rvector
% }
@@ -1443,7 +1458,7 @@
%
% As vectors are commonly delimited by parenthesis, brackets, braces, etc.\
% several shorthands producing delimited vectors are also available.
-% \begin{function}{
+% \begin{function}[updated=2024-08-20]{
% \pcvector,
% \bcvector,
% \Bcvector,
@@ -1504,7 +1519,9 @@
% This package provides analogous commands for row and column vectors
% to be typeset in inline math mode.
%
-% \begin{function}{
+% \begin{function}[
+% updated=2024-08-20,
+% ]{
% \smallcvector,
% \smallrvector
% }
@@ -1530,7 +1547,7 @@
% \(\smallcvector{1,0}\).
% \end{quote}
%
-% \begin{function}{
+% \begin{function}[updated=2024-08-20]{
% \psmallcvector,
% \bsmallcvector,
% \Bsmallcvector,
@@ -2215,7 +2232,7 @@
% \cs{moremath_delim_nabla_op_manuscale:NNnnn} \meta{operator} \meta{delim}
% \hspace*{2ex} \marg{scale~cmd} \marg{sub} \marg{contents}
% \end{syntax}
-% The usage of function is similar to the above functions
+% The usage of this function is similar to the above functions
% except for the additional argument \meta{scale~cmd} which is a token list
% with a \meta{size~cmd} that should be understood by \pkg{mathtools}
% (e.g.\ \cs{big}, \cs{Big}, etc.).
@@ -2224,11 +2241,18 @@
% \section{Formatting Matrices and Vectors}
% \label{sec:authors-matrix}
%
-% \begin{function}[updated=2024-07-15]{
+% \begin{function}[
+% updated=2024-07-15,
+% updated=2024-08-20,
+% ]{
% \moremath_column_vector:nn,
+% \moremath_column_vector:Vn,
% \moremath_row_vector:nn,
+% \moremath_row_vector:Vn,
% \moremath_column_smallvector:nn,
-% \moremath_row_smallvector:nn
+% \moremath_column_smallvector:Vn,
+% \moremath_row_smallvector:nn,
+% \moremath_row_smallvector:Vn,
% }
% \begin{syntax}
% \cs{moremath_column_vector:nn} \marg{delim spec tl} \marg{clist}
@@ -2256,6 +2280,7 @@
% \begin{function}[
% updated = 2024-07-04,
% updated=2024-07-15,
+% updated=2024-08-20,
% ]{
% \moremath_diagonal_matrix:nn,
% \moremath_diagonal_matrix:nV,
@@ -2330,6 +2355,7 @@
% \begin{function}[
% added=2024-07-08,
% updated=2024-07-15,
+% updated=2024-08-20,
% ]{
% \moremath_vcenter:n,
% }
@@ -2388,10 +2414,23 @@
% (especially for using the "=" option specification)
% and hooks.
%
+% Afterwards we provide rollback information,
+% for the \pkg{latexrelease} rollback mechanism.
+% (See \textcite{package-rollback} for more information.)
+%
+% For the v0.x.x versions I've decided on using the date of the first release
+% that was uploaded to CTAN\@.
+% \begin{macrocode}
+\DeclareCurrentRelease{v0}{2024-07-15}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Add information for \LaTeX{}'s package rollback mechanism.
+% }
+%
% Then identify this package as \pkg{moremath}.
% \begin{macrocode}
\ProvidesExplPackage{moremath}
- {2024-07-15}{v0.4.0}{More Math Macros}
+ {2024-08-20}{v0.5.0}{More Math Macros}
% \end{macrocode}
%
% ^^X Debugging switch
@@ -2830,6 +2869,161 @@
% \end{macrocode}
%
%
+% \section{Abstractions for \TeX{}-primitives and \LaTeXe{}-commands}
+% \label{sec:impl-abstractions}
+%
+% As this package makes use of certain \TeX{}-primitives and \LaTeXe{}-commands,
+% which are either part of the \LaTeX{}-kernel or of some package.
+% It is sensible to provide a (package internal) abstraction for those commands,
+% so that they can be switched out once a \LaTeX3{}-command has been defined for them.
+%
+% \subsection{\TeX{}-primitives}
+% \label{sec:impl-tex-abstractions}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_vcenter:n,
+% }
+% \cs{@@_tex_vcenter:n} is an abstraction for \cs{tex_vcenter:D}
+% i.e.\ \tn{vcenter}.
+% Its single argument is passed to \cs{tex_vcenter:D}.
+% \begin{macrocode}
+\cs_new_protected:Nn \@@_tex_vcenter:n
+{
+ \tex_vcenter:D {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathpalette:Nn,
+% }
+% The function \cs{@@_tex_mathpalette:Nn} is an abstraction for the \tn{mathpalette},
+% primitive.
+% The function takes two arguments
+% \begin{arguments}
+% \item The \meta{csname} of the macro to pass to \tn{mathpalette}
+%
+% This macro \textbf{must} accept \textbf{two} arguments:
+% The first is a single token containing the current math-style,
+% the second is the contents to \enquote{typeset}.
+% See \url{https://tex.stackexchange.com/questions/34393/the-mysteries-of-mathpalette/34412#34412}
+% for further information.
+%
+% \item The \meta{tokens} to forward to the macro passed as first argument.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected:Nn \@@_tex_mathpalette:Nn
+{
+ \mathpalette #1 {#2}
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathsurround:n
+% }
+% The function \cs{@@_tex_mathsurround:n} provides (hopefully) a correct abstraction
+% for the \tn{mathsurround} primitive.
+% It takes one argument
+% \begin{arguments}
+% \item A \meta{length~expr} for the whitespace surrounding a math switch.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected_nopar:Nn \@@_tex_mathsurround:n
+{
+ \tex_mathsurround:D = #1
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathop:n
+% }
+% The function \cs{@@_tex_mathop:n} provides an abstraction for the \tn{mathop}
+% \TeX{}-primitive.
+% It accepts a single argument:
+% \begin{arguments}
+% \item \meta{Tokens} to treat as a math operator.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected_nopar:Nn \@@_tex_mathop:n
+{
+ \tex_mathop:D {#1}
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+%
+% \subsection{\LaTeXe{}-commands}
+% \label{sec:impl-latex-abstractions}
+%
+% \begin{macro}[EXP,added=2024-08-20]{
+% \@@_matrix_star_begin:nn,
+% \@@_matrix_star_begin:nV,
+% \@@_matrix_star_begin:Vn,
+% \@@_matrix_star_begin:VV,
+% \@@_matrix_star_end:n,
+% \@@_matrix_star_end:V,
+% }
+% The functions \cs{@@_matrix_star_begin:nn} and \cs{@@_matrix_star_end:n}
+% provide an abstraction to the \env{matrix*} family of environments provided
+% by \pkg{mathtools}.
+% \NB{MI}{These functions need to be expandable,
+% as they produce an empty line otherwise.}
+%
+% \cs{@@_matrix_star_begin:nn} takes two arguments:
+% \begin{arguments}
+% \item A \meta{tl} determining the type of the matrix.
+%
+% This is used to further specify which "matrix*" environment to use.
+%
+% The \meta{tl} may be empty.
+%
+% \item A \meta{tl} specifying the column type.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_nopar:Nn \@@_matrix_star_begin:nn
+{
+ \begin{ #1 matrix* } [ #2 ]
+}
+% \end{macrocode}
+% We also create "nV", "Vn", and "VV" variants of this function:
+% \begin{macrocode}
+\cs_generate_variant:Nn \@@_matrix_star_begin:nn { nV, Vn, VV }
+% \end{macrocode}
+%
+% The function \cs{@@_matrix_star_end:n} takes only one argument
+% \begin{arguments}
+% \item The \meta{tl} determining the type of the \env{matrix*} environment.
+%
+% The \meta{tl} \textbf{must} have the same value as used for
+% \cs{@@_matrix_star_begin:nn}.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_nopar:Nn \@@_matrix_star_end:n
+{
+ \end{ #1 matrix* }
+}
+% \end{macrocode}
+% We also provide a "V" type variant of this function.
+% \begin{macrocode}
+\cs_generate_variant:Nn \@@_matrix_star_end:n {V}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new functions and variants.
+% }
+% \end{macro}
+%
+%
% \section{Centering Math Symbols Along the Math-Axis}
% \label{sec:impl-vcenter}
%
@@ -2851,7 +3045,7 @@
% \url{http://www.tug.org/TUGboat/Articles/tb22-4/tb72perlS.pdf}
% }
%
-% \begin{macro}[added = 2024-07-08]{
+% \begin{macro}[added = 2024-07-08, updated=2024-08-20]{
% \moremath_vcenter:n
% }
% The function \cs{moremath_vcenter:n} is a wrapper around the \tn{vcenter}
@@ -2872,15 +3066,21 @@
% \begin{macrocode}
\cs_new_protected_nopar:Nn \moremath_vcenter:n
{
- \mathpalette \@@_vcenter:Nn {#1}
+ \@@_tex_mathpalette:Nn \@@_vcenter:Nn {#1}
}
% \end{macrocode}
% \changes{v0.3.0}{\GetVersionDate{v0.3.0}}{
% Added new function.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed: Make use of \cs{@@_tex_mathpalette:Nn}.
+% }
% \end{macro}
%
-% \begin{macro}[added=2024-07-08]{
+% \begin{macro}[
+% added=2024-07-08,
+% updated=2024-08-20,
+% ]{
% \@@_vcenter:Nn,
% }
% As \tn{mathpalette} needs as its first argument a macro which takes two
@@ -2907,18 +3107,22 @@
% \begin{macrocode}
\cs_new_protected_nopar:Nn \@@_vcenter:Nn
{
- \vcenter
+ \@@_tex_vcenter:n
{
\hbox:n
{
$
- \mathsurround=0pt
+ \@@_tex_mathsurround:n {0pt}
#1 {#2}
$
}
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed: Now uses \cs{@@_tex_vcenter:n} and \cs{@@_tex_mathsurround:n}
+% instead of \TeX-primitives.
+% }
% \end{macro}
%
%
@@ -3598,7 +3802,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_gradient_operator_get:}
+% \begin{macro}[updated=2024-08-20]{\@@_gradient_operator_get:}
% This function returns the gradient operator depending on the current setting
% of the keys.
% \begin{macrocode}
@@ -3606,7 +3810,7 @@
{
\tl_if_empty:NTF \l_@@_grad_op_tl
{
- \mathop
+ \@@_tex_mathop:n
{
% \end{macrocode}
% Otherwise we first need to check if the operator shall have an arrow over it.
@@ -3645,7 +3849,7 @@
\l_@@_nabla_tl
}
}
- }% \mathop
+ }% \@@_tex_mathop:n
\nolimits
}{
% \end{macrocode}
@@ -3656,9 +3860,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
-% \begin{macro}{\@@_laplace_operator_get:}
+% \begin{macro}[updated=2024-08-20]{\@@_laplace_operator_get:}
% Then we define a function for returning the laplace operator symbol,
% depending on the currently set keys.
% The function wraps the symbol for the operator inside
@@ -3668,7 +3875,7 @@
{
\tl_if_empty:NTF \l_@@_laplacian_tl
{
- \mathop
+ \@@_tex_mathop:n
{
\bool_if:NTF \l_@@_laplacian_delta_bool
{
@@ -3709,9 +3916,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \@@_dalembert_operator_get:
% }
% This function returns the \foreignlanguage{french}{d'Alembert} operator
@@ -3721,16 +3931,19 @@
% \begin{macrocode}
\cs_new_protected:Nn \@@_dalembert_operator_get:
{
- \mathop
+ \@@_tex_mathop:n
{
\l_@@_dalembert_symb_tl
- }% \mathop
+ }% \@@_tex_mathop:n
\nolimits
}
% \end{macrocode}
% \changes{v0.2.0}{\GetVersionDate{v0.2.0}}{%
% Added function: \cs{@@_dalembert_operator_get:}
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
% \subsection{Macros Producing an Operator}
@@ -3949,6 +4162,9 @@
% Afterwards we check if the key \verb|scale| has been given.
% If yes we pop it and assign it to the second argument.
% Otherwise we do nothing.
+% \NB{MI}{It may be a better idea to use a key instead but I'm not sure.
+% If one nests those environments the size of the outer one will propagate into
+% the inner scope, which might not be what is wanted.}
% \begin{macrocode}
\prop_set_from_keyval:Nn \l_tmpa_prop {#1}
@@ -4350,11 +4566,13 @@
%
% In the next step we construct the single row/column matrix from the user
% provided input.
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \moremath_column_vector:nn,
+% \moremath_column_vector:Vn,
% \moremath_row_vector:nn,
+% \moremath_row_vector:Vn,
% }
-% The two commands \cs{moremath_column_vector:n} and \cs{moremath_row_vector:n}
+% The two commands \cs{moremath_column_vector:nn} and \cs{moremath_row_vector:nn}
% construct the matrix, they both take two arguments.
% \begin{arguments}
% \item The delimiter specifier.
@@ -4373,29 +4591,43 @@
\seq_clear:N \l_@@_vector_entries_seq
\seq_set_from_clist:Nn \l_@@_vector_entries_seq {#2}
- \exp_args:NnNV \begin{#1 matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV {#1} \l_@@_matrix_align_tl
\@@_seq_to_column_vector:N \l_@@_vector_entries_seq
- \end{#1 matrix*}
+ \@@_matrix_star_end:n {#1}
}
-
+%
\cs_new_protected_nopar:Nn \moremath_row_vector:nn
{
\seq_clear:N \l_@@_vector_entries_seq
\seq_set_from_clist:Nn \l_@@_vector_entries_seq {#2}
- \exp_args:NnNV \begin{#1matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV {#1} \l_@@_matrix_align_tl
\@@_seq_to_row_vector:N \l_@@_vector_entries_seq
- \end{#1matrix*}
+ \@@_matrix_star_end:n {#1}
}
% \end{macrocode}
+% We also provide a "Vn" variant of those functions.
+% \begin{macrocode}
+\cs_generate_variant:Nn \moremath_column_vector:nn { Vn }
+\cs_generate_variant:Nn \moremath_row_vector:nn { Vn }
+% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{%
% Added functions producing row- and column vectors.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed now uses \cs{@@_matrix_star_begin:nV} instead of raw
+% |\begin{#1matrix*}|.
+% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new "Vn" variants.
+% }
% \end{macro}
%
% \begin{macro}{
% \moremath_column_smallvector:nn,
-% \moremath_row_smallvector:nn
+% \moremath_column_smallvector:Vn,
+% \moremath_row_smallvector:nn,
+% \moremath_row_smallvector:Vn,
% }
% To make the code more readable, we define functions specifically for
% creating row and column vectors using the \env{smallmatrix*} family of
@@ -4411,10 +4643,16 @@
{
\moremath_row_vector:nn {#1 small} {#2}
}
+% Variants
+\cs_generate_variant:Nn \moremath_column_smallvector:nn { Vn }
+\cs_generate_variant:Nn \moremath_row_smallvector:nn { Vn }
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{%
% Added functions producing inline math row- and column vectors.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new "Vn" variants.
+% }
% \end{macro}
%
% ^^X SUBSECTION: Shorthands for simple matrices
@@ -4534,20 +4772,20 @@
\cs_new_protected:Nn \moremath_diagonal_matrix:nn
{
\seq_set_from_clist:Nn \l_@@_mat_diag_entries_seq { #2 }
- \exp_args:NnNV \begin{#1 matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV { #1 } \l_@@_matrix_align_tl
\int_step_function:nN { \seq_count:N \l_@@_mat_diag_entries_seq }
\@@_constr_diagmat_row:n
- \end{#1 matrix*}
+ \@@_matrix_star_end:n { #1 }
}
-
+%
% Anti-diagonal matrix
\cs_new_protected:Nn \moremath_antidiagonal_matrix:nn
{
\seq_set_from_clist:Nn \l_@@_mat_diag_entries_seq { #2 }
- \exp_args:NnNV \begin{ #1 matrix* } [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV { #1 } \l_@@_matrix_align_tl
\int_step_function:nN { \seq_count:N \l_@@_mat_diag_entries_seq }
\@@_constr_antidiagmat_row:n
- \end{ #1 matrix* }
+ \@@_matrix_star_end:n { #1 }
}
% Small versions
@@ -4577,18 +4815,10 @@
% }
% For convenience we also define some variants of the above functions.
% \begin{macrocode}
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { n V }
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { V n }
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { V V }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { n V }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { V n }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { V V }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { n V }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { V n }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { V V }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { n V }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { V n }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { V V }
+\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { nV, Vn, VV }
+\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { nV, Vn, VV }
+\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { nV, Vn, VV}
+\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { nV, Vn, VV }
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{Added variants.}
% \changes{v0.2.0}{\GetVersionDate{v0.2.0}}{Added "nV" and "VV" variants.}
@@ -4597,6 +4827,10 @@
% Added functions producing (anti-)diagonal matrices.
% Also added versions for inline math.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed now uses \cs{@@_matrix_star_begin:nV} instead of raw
+% |\begin{#1matrix*}|.
+% }
% \end{macro}
%
%
@@ -4730,7 +4964,7 @@
\bool_if:nTF \l_@@_predef_crvector_bool
{
% \end{macrocode}
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20,]{
% \cvector,
% \rvector,
% \smallcvector,
@@ -4747,7 +4981,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_column_vector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_column_vector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4769,7 +5003,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_row_vector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_row_vector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4791,7 +5025,7 @@
{
\keys_set:nn {moremath / matrix} {#1}
}
- \moremath_column_smallvector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_column_smallvector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4811,7 +5045,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_row_smallvector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_row_smallvector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4826,13 +5060,16 @@
% Added commands producing row and column vectors,
% including inline math versions.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use "Vn" versions of functions when passing variables around.
+% }
% \end{macro}
%
% \paragraph{Commands with Pre-defined Delimiters}
% Next we define several shorthands to for the commonly used delimiters,
% to avoid code duplication, we first create some helper functions which
% define those functions.
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \@@_new_vector_shorth_doc_cmd:NNn
% }
% The function \cs{@@_new_vector_shorth_doc_cmd} creates a new vector shorthand,
@@ -4842,7 +5079,7 @@
% \item The \meta{function} to use for this shorthand.
%
% This should be one of the
-% \cs[no-index]{moremath_\meta{type}_\meta{size}vector:nn}
+% \cs[no-index]{moremath_\meta{type}_\meta{size}vector:Vn}
% like commands.
%
% \item The \meta{delimiter} to use.
@@ -4863,7 +5100,7 @@
{
\keys_set:nn {moremath / matrix } {##1}
}
- #2 {\l_@@_matrix_delim_tl} {##2}
+ #2 \l_@@_matrix_delim_tl {##2}
\group_end:
}
}{
@@ -4875,9 +5112,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Require function with "Vn" signature to pass variable correctly.
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \pcvector,
% \bcvector,
% \Bcvector,
@@ -4894,35 +5134,38 @@
% We begin with the column vector.
% \begin{macrocode}
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \pcvector \moremath_column_vector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \pcvector \moremath_column_vector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bcvector \moremath_column_vector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \bcvector \moremath_column_vector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bcvector \moremath_column_vector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Bcvector \moremath_column_vector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vcvector \moremath_column_vector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vcvector \moremath_column_vector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vcvector \moremath_column_vector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vcvector \moremath_column_vector:Vn {V}
% \end{macrocode}
% Now to the row vectors.
% \begin{macrocode}
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \prvector \moremath_row_vector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \prvector \moremath_row_vector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \brvector \moremath_row_vector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \brvector \moremath_row_vector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Brvector \moremath_row_vector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Brvector \moremath_row_vector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vrvector \moremath_row_vector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vrvector \moremath_row_vector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vrvector \moremath_row_vector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vrvector \moremath_row_vector:Vn {V}
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{
% Added commands for row and column vectors with predefined delimiters.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use functions with "Vn" signature instead of "nn"
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \psmallcvector,
% \bsmallcvector,
% \Bsmallcvector,
@@ -4939,32 +5182,32 @@
% \begin{macrocode}
% column vectors
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \psmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \psmallcvector \moremath_column_smallvector:Vn
{p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \bsmallcvector \moremath_column_smallvector:Vn
{b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \Bsmallcvector \moremath_column_smallvector:Vn
{B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \vsmallcvector \moremath_column_smallvector:Vn
{v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \Vsmallcvector \moremath_column_smallvector:Vn
{V}
%
% row vectors
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \psmallrvector \moremath_row_smallvector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \psmallrvector \moremath_row_smallvector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bsmallrvector \moremath_row_smallvector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \bsmallrvector \moremath_row_smallvector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bsmallrvector \moremath_row_smallvector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Bsmallrvector \moremath_row_smallvector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vsmallrvector \moremath_row_smallvector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vsmallrvector \moremath_row_smallvector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vsmallrvector \moremath_row_smallvector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vsmallrvector \moremath_row_smallvector:Vn {V}
}{ % \bool_if:nTF \l_@@_predef_crvector_bool FALSE PATH
@@ -4978,6 +5221,9 @@
% Added commands for inline math row and column vectors
% with predefined delimiters.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use functions with "Vn" signature instead of "nn"
+% }
% \end{macro}
%
%
diff --git a/macros/latex/contrib/naive-ebnf/LICENSE.txt b/macros/latex/contrib/naive-ebnf/LICENSE.txt
index 412bdfe98e..f158d5e3f9 100644
--- a/macros/latex/contrib/naive-ebnf/LICENSE.txt
+++ b/macros/latex/contrib/naive-ebnf/LICENSE.txt
@@ -1,6 +1,6 @@
(The MIT License)
-Copyright (c) 2023 Yegor Bugayenko
+Copyright (c) 2023-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
diff --git a/macros/latex/contrib/naive-ebnf/README.md b/macros/latex/contrib/naive-ebnf/README.md
index 6e02dfc45c..27852bc9f8 100644
--- a/macros/latex/contrib/naive-ebnf/README.md
+++ b/macros/latex/contrib/naive-ebnf/README.md
@@ -1,12 +1,13 @@
+# EBNF Diagrams in LaTeX
+
[![l3build](https://github.com/yegor256/naive-ebnf/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/naive-ebnf/actions/workflows/l3build.yml)
[![CTAN](https://img.shields.io/ctan/v/naive-ebnf)](https://ctan.org/pkg/naive-ebnf)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/naive-ebnf/blob/master/LICENSE.txt)
-This LaTeX package helps you typeset an
-[Extended Backus-Naur Form](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) (EBNF)
-using plain text format.
+This LaTeX package helps you typeset an [Extended Backus-Naur Form][EBNF]
+(EBNF) using plain text format.
-First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+First, [install it][LaTeX]
from [CTAN](https://ctan.org/pkg/naive-ebnf)
and then use in the preamble:
@@ -22,12 +23,16 @@ and then use in the preamble:
\end{document}
```
-Otherwise, you can download [`naive-ebnf.sty`](https://raw.githubusercontent.com/yegor256/naive-ebnf/gh-pages/naive-ebnf/naive-ebnf.sty) and add to your project.
+Otherwise, you can download [`naive-ebnf.sty`][sty] and add to your project.
## How to Contribute
-If you want to contribute yourself, make a fork, then create a branch,
+If you want to contribute yourself, make a fork, then create a branch,
then run `l3build ctan` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
Otherwise, make your changes and then run `l3build ctan` again. If the build is
still clean, submit a pull request.
+
+[EBNF]: https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form
+[LaTeX]: https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages
+[sty]: https://raw.githubusercontent.com/yegor256/naive-ebnf/gh-pages/naive-ebnf/naive-ebnf.sty
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
index 6886393d88..54e0955f8d 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% (The MIT License)
%
-% Copyright (c) 2023 Yegor Bugayenko
+% Copyright (c) 2023-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{naive-ebnf}
%<*package>
-[2023-08-11 0.0.15 EBNF in Plain Text]
+[2024/10/25 0.0.17 EBNF in Plain Text]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -113,6 +113,7 @@
% \item |[...]| denotes an optional substitution;
% \item |{...}| denotes a zero or more times repetition;
% \item |{...}+| denotes one or more times repetition;
+% \item \texttt{\char`\|\char`\|\char`\|} denotes an indent at the beginning of the string.
% \item \texttt{\char`\|\char`\|} denotes an indented vertical bar at the beginning of the string.
% \end{itemize}
@@ -235,6 +236,22 @@
% \end{document}
% \end{docshot}
+
+% The \texttt{\char`\|\char`\|\char`\|} character allows indenting the text on a new line, allowing breaking long expressions:
+% \docshotOptions{firstline=5,lastline=11}
+% \begin{docshot}
+% \documentclass{minimal}
+% \usepackage[T1]{fontenc}
+% \usepackage{naive-ebnf}
+% \begin{document}
+% \begin{ebnf}
+% <x> := "beginning" \\
+% ||| ( <y> | <z> ) \\
+% ||| "ending" \\
+% \end{ebnf}
+% \end{document}
+% \end{docshot}
+
% \section{Package Options}
% It's possible to configure the behavior of the package with the help of a few package options:
@@ -407,22 +424,27 @@
{ >([^\s]) } {\\textgreater{}\1} \ebnf_tmp%
\regex_replace_all:nnN
{ ([^\s])'([^\s]) } {\1\\textquotesingle{}\2} \ebnf_tmp%
+ \regex_replace_all:nnN { \|\|\| }%
+ {\c{makebox}[#1][r]{ }} \ebnf_tmp%
\regex_replace_all:nnN
{ ([^\s])\|([^\s]) } {\1\\textbar{}\2} \ebnf_tmp%
%
\regex_replace_all:nnN
{ /(.+?)/ }%
{\c{ebnf@regexp}{\1}} \ebnf_tmp%
+ \cs_undefine:N\ebnf_curled%
\cs_new:Npn\ebnf_curled{%
\regex_replace_all:nnNT
{ \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}(\+)? }%
{\c{ebnf@repetition}[\5]{\1}} \ebnf_tmp \ebnf_curled}%
\ebnf_curled%
+ \cs_undefine:N\ebnf_brackets%
\cs_new:Npn\ebnf_brackets{%
\regex_replace_all:nnNT
{ \(\s(([^\s]*(\s[^\)\(]|\s(\)|\()[^\s])?)*)\s\) }%
{\c{ebnf@grouping}{\1}} \ebnf_tmp \ebnf_brackets}%
\ebnf_brackets%
+ \cs_undefine:N\ebnf_squares%
\cs_new:Npn\ebnf_squares{%
\regex_replace_all:nnNT
{ \[\s(([^\s]*(\s[^\]\[]|\s(\]|\[)[^\s])?)*)\s\] }%
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.ins b/macros/latex/contrib/naive-ebnf/naive-ebnf.ins
index ba41686ec6..d4ffc863ef 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.ins
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.ins
@@ -1,6 +1,6 @@
%% (The MIT License)
%%
-%% Copyright (c) 2023 Yegor Bugayenko
+%% Copyright (c) 2023-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@
\preamble
(The MIT License)
-Copyright (c) 2023 Yegor Bugayenko
+Copyright (c) 2023-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
index 4d7e89803d..ecf3ffa545 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
Binary files differ
diff --git a/macros/latex/contrib/nfssext-cfr/README b/macros/latex/contrib/nfssext-cfr/README
deleted file mode 100644
index 5a59f6bf04..0000000000
--- a/macros/latex/contrib/nfssext-cfr/README
+++ /dev/null
@@ -1,26 +0,0 @@
-nfssext-cfr.sty is an extension of Philipp Lehman's nfssext.sty. nfssext.sty
-provides commands which enable one to specify font features not covered by
-the New Font Selection Scheme of LaTeX-2e. nfssext-cfr.sty provides
-additional commands, further extending the facilities offered by NFSS.
-
-nfssext-cfr.sty is required by various font support packages I've written.
-It is being released separately to avoid unnecessary duplication and
-confusion. At least, I hope it will remove at least one source of unnecessary
-confusion. I have no reason to think it will avoid any of the others.
-
-The code is somewhat experimental. It works for me. So far. If you discover
-problems, please let me know. If you know how to fix them, even better.
-
-The 2010 update includes an attempt to improve the behaviour of \ofstyle, and to
-add support for microtype. I didn't publish this at the time because I wanted
-to test it first. I have just discovered that I am still using a local copy.
-Insofar as one person can test something, I figure that 5 years ought to be
-enough to pick up the most obvious problems. However, your kilometres may, as
-always, vary.
-
-There should be no changes for the end user except that in certain cases it is
-possible that line-breaks may be altered if microtype is in use due to the
-enhanced support included for variant font families.
-
-- Clea F. Rees (ReesC21 <at> cardiff <dot> ac <dot> uk)
-2017/03/28
diff --git a/macros/latex/contrib/nfssext-cfr/README.md b/macros/latex/contrib/nfssext-cfr/README.md
new file mode 100644
index 0000000000..cc73c40237
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/README.md
@@ -0,0 +1,114 @@
+$Id: README.md 10366 2024-09-18 14:25:21Z cfrees $
+
+=================================================
+# nfssext-cfr
+=================================================
+
+Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+Code from The Font Installation Guide Copyright (C) 2002-2004 Philipp Lehman
+(see below)
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3c of this license or (at your
+option) any later version. The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX version
+2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+
+The files nfssext-cfr.sty, nfssext-cfr-nfss.sty and nfssext-cfr-nnfss.sty are
+derived works under the terms of the LPPL. They are based on version 1.2 of
+nfssext.sty which was supplied with fontinstallationguide by Philipp Lehman.
+A copy of fontinstallationguide, including an unmodified version of
+nfssext.sty is available from
+ https://tug.ctan.org/pkg/fontinstallationguide.
+nfssext.sty wajs part of the included archive figuide-examples.tar.gz which
+consisted of examples and templates released under the LPPL. nfssext.sty was
+included in the files for tutorials 3, 5 and 6.
+
+The main modifications made to this file are described in nfssext-cfr.dtx.
+
+
+In versions which use docstrip, the docstrip files nfssext-cfr.ins,
+nfssext-cfr.dtx, nfssext-cfr-t1.dtx and nfssext-cfr-t1.ins are derived
+from skeleton.ins and skeleton.dtx, both part of of version 2.4 of Scott
+Pakin's dtxtut. A copy of dtxtut including unmodified copies of skeleton.dtx
+and skeleton ins is available from https://www.ctan.org/pkg/dtxtut and
+released under the LPPL.
+
+Other attributions are included in the source of the package itself.
+
+=================================================
+## Origins & Purpose
+=================================================
+
+nfssext-cfr is an extension of Philipp Lehman's nfssext. nfssext
+provides commands which enable one to specify font features not covered by
+the New Font Selection Scheme of LaTeX-2e. nfssext-cfr provides
+additional commands, further extending the facilities offered by NFSS.
+
+nfssext-cfr is required by various font support packages I've written.
+It is released separately both to avoid unnecessary duplication and
+confusion and to make it available for other purposes.
+
+=================================================
+## Revision History
+=================================================
+
+Please see nfssext-cfr.pdf and nfssext-cfr.dtx.
+
+=================================================
+## Current Version
+=================================================
+
+The current version is an extremely belated update for compatibility with
+the (New) New Font Selection Scheme (NNFSS) introduced in 2020. This has
+somewhat complicated things in various ways and the current version may best
+be described as a compromise which will please nobody equally.
+
+The package includes three .sty files. The main package is a wrapper which
+decides which of the other two to load, together with a small amount of common
+code.
+
+The documentation explains changes required in font definition files for
+backwards compatibility and the options users have if reliant on files which
+have not been updated. No additional incompabilities should be introduced by
+the update to nfssext-cfr. At worst, things which were broken in 2020 will
+remain broken, but breakage which can be fixed in this package _should_ be
+fixed.
+
+nfssext-cfr interferes with kernel code in various ways. This is nothing new.
+nfssext rewrote kernel definitions. nfssext-cfr rewrote kernel definitions.
+The new version of nfssext-cfr rewrites kernel definitions. Details of what is
+done under what conditions are included in the documentation.
+
+=================================================
+## Code Repositories
+=================================================
+
+Code for the LaTeX support package is hosted at
+ https://codeberg.org/cfr/nfssext
+For convenience, the repository is mirrored at
+ https://github.com/cfr42/nfssext
+
+=================================================
+## Contact Details
+=================================================
+
+Bug reports, feature requests etc. concerning the LaTeX support or packaging
+should be filed at
+ https://codeberg.org/cfr/nfssext/issues
+
+
+Clea F. Rees
+Version 1.1
+2024-10-03
+
+=================================================
+vim: et:tw=80:sw=2:
diff --git a/macros/latex/contrib/nfssext-cfr/manifest.txt b/macros/latex/contrib/nfssext-cfr/manifest.txt
new file mode 100644
index 0000000000..6d7b8ab324
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/manifest.txt
@@ -0,0 +1,71 @@
+# Manifest for nfssext-cfr
+
+Copyright (C) 2008-2024 Clea F. Rees
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License, either version 1.3c of this license or (at your option)
+any later version. The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+This file was automatically generated by `l3build manifest`.
+
+## Source files
+
+
+### Package files
+
+
+* manifest.txt
+* README.md
+* nfssext-cfr.dtx
+* nfssext-cfr.ins
+
+### Development files
+
+
+* build.lua
+* manifest.lua
+* tag.lua
+* ot1cmrw.fd
+* ot1cmrj.fd
+* ot1cmr2j.fd
+* ot1cmr1.fd
+* ot1cmr0.fd
+* ot1cmr-mod.fd
+* ot1cmr2.fd
+* ot1cmr2dj.fd
+* nfssext-cfr-t1-fam.tlg
+* nfssext-cfr-t1-series.tlg
+* nfssext-cfr-t1-shape.tlg
+* nfssext-cfr-t1.dtx
+* nfssext-cfr-t1.ins
+
+
+## Derived files
+
+
+### Package files
+
+* nfssext-cfr-nfss.sty
+* nfssext-cfr-nnfss.sty
+* nfssext-cfr.sty
+
+### Development files
+
+* nfssext-cfr-t1-fam.lvt
+* nfssext-cfr-t1-series.lvt
+* nfssext-cfr-t1-shape.lvt
+* nfssext-cfr-t1-splitter.lvt
+* nfssext-cfr-t1-splitter.lve
+
+### Typeset documentation
+
+* nfssext-cfr.pdf
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
new file mode 100644
index 0000000000..919fb67b5f
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
@@ -0,0 +1,3341 @@
+% \iffalse meta-comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% nfssext-cfr.dtx
+% Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+% Code from skeleton.dtx Copyright (C) 2015-2024 Scott Pakin (see below).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status 'muaintained'.
+%
+% The Current Maintainer of this work is Clea F. Rees.
+%
+% This work consists of all files listed in manifest.txt.
+%
+% The file nfssext-cfr.dtx is a derived work under the terms of the
+% LPPL. It is based on version 2.4 of skeleton.dtx which is part of
+% dtxtut by Scott Pakin. A copy of dtxtut, including the
+% unmodified version of skeleton.dtx is available from
+% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fi
+%
+% \iffalse
+%<*driver>
+\RequirePackage{svn-prov}
+% ^^A \def\MakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13}
+% ^^A \def\MyMakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13}
+\ExplSyntaxOn
+% ^^A sylwad yannisl: https://tex.stackexchange.com/questions/723293/how-can-i-get-automatic-code-indexing-of-expl3-in-ltxdoc/723294#comment1799661_723294
+% ^^A \ExplSyntaxOn \cs_gset:Npn \MakePrivateLetters { \char_set_catcode_letter:N \@ \char_set_catcode_letter:N _ \char_set_catcode_letter:N \: } \ExplSyntaxOff`
+\cs_new_nopar:Npn \MyMakePrivateLetters
+{
+ \char_set_catcode_letter:N \@
+ \char_set_catcode_letter:N _
+ \char_set_catcode_letter:N \:
+}
+\ExplSyntaxOff
+\ProvidesFileSVN{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo][\filebase DTX: Extended font selection for NFSS and NNFSS]
+\DefineFileInfoSVN[nfssext-cfr]
+\documentclass[10pt,british]{ltxdoc}
+% l3doc loads fancyvrb
+% fancyvrb overwrites svn-prov's macros without warning
+% restore \fileversion \filerev in case we're using l3doc
+\GetFileInfoSVN{nfssext-cfr}
+\usepackage[debug]{nfssext-cfr}
+\usepackage[rm={prop,osf},sf={prop,osf},tt={mono,tab,lf}]{cfr-lm}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\DoNotIndex{\verb,\ProvidesPackageSVN,\NeedsTeXFormat,\ProcessKeyOptions}
+\usepackage{babel}
+\usepackage{fancyhdr}
+% \usepackage[plain]{fancyref}
+\usepackage{fixfoot}
+\usepackage{array}
+\usepackage{tabularx}
+\usepackage{longtable}
+\usepackage{booktabs}
+\usepackage{multirow}
+\usepackage[inline]{enumitem}
+\usepackage[referable]{threeparttablex}
+\makeatletter
+\def\TPT@measurement{% ateb David Carlisle: https://tex.stackexchange.com/a/370691/
+ \ifdim\wd\@tempboxb<\TPTminimum
+ \hsize \TPTminimum
+ \else
+ \hsize\wd\@tempboxb
+ \fi
+ \xdef\TPT@hsize{\hsize\the\hsize \noexpand\@parboxrestore}\TPT@hsize
+ \ifx\TPT@docapt\@undefined\else
+ \TPT@docapt \vskip.2\baselineskip
+ \fi \par
+ \dimen@\dp\@tempboxb % new
+ \box\@tempboxb
+ \ifvmode \prevdepth\dimen@ \fi% was \z@ not \dimen@
+}
+\renewlist{tablenotes}{enumerate}{1}
+\setlist[tablenotes]{label=\tnote{\sffamily\alph*},ref=\alph*,itemsep=\z@,topsep=\z@skip,partopsep=\z@skip,parsep=\z@,itemindent=\z@,labelindent=\tabcolsep,labelsep=.2em,leftmargin=*,align=left,before={\unskip\medskip\rmfamily\lstyle\footnotesize}}
+\makeatother
+\usepackage{xcolor}
+\usepackage{xurl}
+\urlstyle{sf}
+\usepackage{microtype}
+%^^A \usepackage[a4paper,headheight=14pt,marginparwidth=45mm,hmarginratio=4:1,vscale=.8,hscale=.7,verbose]{geometry} % use 14pt for 11pt text, 15pt for 12pt text
+%^^A \usepackage[a4paper,headheight=14pt,vscale=.8,hscale=.7,verbose,showframe]{geometry} % use 14pt for 11pt text, 15pt for 12pt text
+%^^A \usepackage[verbose,showframe,marginparwidth=130pt,a4paper,includemp,hscale=0.8]{geometry}
+% addaswyd o chronos.tex
+\newlength\tewadjust
+\newlength\chronosdoctemplgth
+\AddToHook {begindocument/after}[.]
+{%
+ \setlength\tewadjust{\marginparwidth+\marginparsep-\paperwidth+\textwidth+\oddsidemargin+1in}%
+ \setlength\chronosdoctemplgth{0pt}%
+}
+\usepackage{csquotes}
+\MakeAutoQuote{‘}{’}
+\MakeAutoQuote*{“}{”}
+\usepackage{caption}
+\DeclareCaptionFont{lf}{\sffamily\lstyle}
+\captionsetup[table]{labelfont=lf}
+% sicrhau hyperindex=false: llwytho CYN bookmark
+\usepackage{hypdoc}% ateb Ulrike Fischer: https://tex.stackexchange.com/a/695555/
+\usepackage{bookmark}
+\hypersetup{%
+ colorlinks=true,
+ citecolor={moss},
+ extension=pdf,
+ linkcolor={strawberry},
+ linktocpage=true,
+ pdfcreator={TeX},
+ pdfproducer={pdfeTeX},
+ urlcolor={blueberry}%
+}
+\NewDocElement[%
+ idxtype=opt.,
+ idxgroup=options,
+ printtype=\textit{opt.},
+]{Opt}{option}
+\NewDocElement[%
+ idxtype=pkg.,
+ idxgroup=,
+ printtype=\textit{pkg.},
+]{Pkg}{package}
+\NewDocElement[%
+ printtype=\textdagger,
+ idxtype=,
+ idxgroup=,
+ macrolike,
+]{DMacro}{dmacro}
+\NewDocumentCommand \val { m }
+{%
+ {\ttfamily =\,\meta{#1}}%
+}
+\ExplSyntaxOn
+\NewDocumentCommand \vals { m }
+{
+ {
+ \ttfamily = \,
+ \clist_use:nn { #1 } { \textbar }
+ }
+}
+\keys_define:nn { clm / doc }
+{
+ unknown .code:n = {
+ \cs_if_free:cT { \l_keys_key_str }
+ {
+ \tl_gset:cn { \l_keys_key_str } { #1 }
+ }
+ },
+}
+\NewDocumentCommand \clmdocset { +m }
+{
+ \keys_set:nn { clm / doc } { #1 }
+}
+\ExplSyntaxOff
+\clmdocset{%
+ bug={\href{https://codeberg.org/cfr/nfssext/issues}{\textsc{bugtracker}}},
+ codeberg={\href{https://codeberg.org/cfr/nfssext}{\textsc{codeberg}}},
+ github={\href{https://github.com/cfr42/nfssext}{\textsc{github}}},
+ ctan={\href{https://ctan.org/}{\textsc{ctan}}},
+}
+\AddToHook {env/threeparttable/begin} {\typeout{Bagpuss}\sffamily}
+\usepackage{cleveref}
+\newcommand*{\gust}{\textsc{Gust}}
+\newcommand*{\lpack}[1]{\textsf{#1}}
+\newcommand*{\fgroup}[1]{\textsf{#1}}
+\newcommand*{\fname}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\mail}[1]{\texttt{#1}}
+% \newcommand*{\pkg}[1]{\mbox{\textsf{#1}}}
+\newcommand* \nfss {\textsc{nfss}}
+\newcommand* \nnfss {\textsc{nnfss}}
+\newcommand* \svn {\textsc{svn}}
+\title{\filebase}
+\author{Clea F. Rees\thanks{%
+ Bug tracker:
+ \href{https://codeberg.org/cfr/nfssext/issues}{\url{codeberg.org/cfr/nfssext/issues}}
+ \textbar{} Code:
+ \href{https://codeberg.org/cfr/nfssext}{\url{codeberg.org/cfr/nfssext}}
+ \textbar{} Mirror:
+ \href{https://github.com/cfr42/nfssext}{\url{github.com/cfr42/nfssext}}%
+}}
+% \date{\fileversion~\filetoday}
+\date{\fileversion~\filedate}
+\pagestyle{fancy}
+\fancyhf{}
+\def\exfsdocffont{\itshape\plstyle\footnotesize}
+\def\exfsdochfont{\itshape\plstyle}
+%^^A \fancyhf[rh]{\itshape\plstyle\leftmark}
+%^^A \fancyhf[lh]{\sffamily\plstyle\leftmark}
+\fancyhf[rh]{\exfsdochfont\thepage}
+\fancyhf[rf]{\exfsdocffont\fileversion}
+% ^^A \fancyhf[rh]{\itshape\filetoday}
+% ^^A \fancyhf[ch]{\itshape Support for Latin Modern}
+% ^^A\fancyhf[lf]{\itshape\fileversion}
+%^^A \fancyhf[cf]{\itshape\plstyle--- \thepage~/~\lastpage{} ---}
+% ref. fancyhdr (or see tc3 ref'd there?)
+\renewcommand \sectionmark[1]{\markboth{\thesection{} #1}{}}
+\renewcommand \subsectionmark[1]{\markright{\arabic{subsection} #1}}
+\ExplSyntaxOn
+\fancyhf[lh]{\exfsdochfont\rlap{\nouppercase{\leftmark}}\skip_horizontal:n { \g__exfs_doc_offset_dim }\nouppercase{\rightmark}}
+%^^A \fancyhf[lf]{\exfsdocffont\rlap{\filebase}\skip_horizontal:n { \g__exfs_doc_offset_dim }\fileversion }
+\fancyhf[lf]{\exfsdocffont\filebase }
+\hook_gput_code:nnn {shipout/lastpage} {.}
+{
+ \property_record:nn {t:lastpage}{abspage,page,pagenum}
+}
+\cs_new_protected_nopar:Npn \lastpage
+{
+ \property_ref:nn {t:lastpage}{page}
+}
+\cs_new_eq:NN \OrigMakePrivateLetters \MakePrivateLetters
+\dim_new:N \g__exfs_doc_offset_dim
+\hook_gput_code:nnn { begindocument } {.}
+{
+ \dim_gset:Nn \g__exfs_doc_offset_dim { \marginparwidth + \marginparsep }
+ \fancyheadoffset[lh,lf]{ \g__exfs_doc_offset_dim }
+}
+\ExplSyntaxOff
+\makeatletter
+\def\@xobeysp{\leavevmode\penalty100\ }
+\makeatother
+\definecolor{strawberry}{rgb}{1.000,0.000,0.502}
+\definecolor{blueberry}{rgb}{0.000,0.000,1.000}
+\definecolor{moss}{rgb}{0.000,0.502,0.251}
+\begin{document}
+\let\MakePrivateLetters\MyMakePrivateLetters
+\DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{2008-10-26}{2008/10/26}{First public release as part of \lpack{cfr-lm}.}
+% \changes{2008-12-22}{2008/12/22}{Updated version released standalone.}
+% \changes{\svn 6140}{2017/03/28}{%
+% Fixes a bug which prevented \cs{tmstyle} and \cs{tvstyle} working correctly if the current font was not a serif family.
+% (Especially problematic in Beamer where \cs{normalfont} cannot be used as a workaround, but annoying elsewhere.)}
+%
+% \changes{\svn 6140}{2017/03/28}{%
+% Provides something a bit closer to real documentation.%
+% }
+%
+% \maketitle\thispagestyle{empty}
+% \pdfinfo{%
+% /Creator (TeX)
+% /Producer (pdfTeX)
+% /Author (Clea F.\ Rees)
+% /Title (nfssext-cfr)
+% /Subject (TeX)
+% /Keywords (TeX,LaTeX,Clea,Rees)}
+% \pdfcatalog{%
+% /URL ()
+% /PageMode /UseOutlines}
+% \setlength{\parindent}{0pt}
+% \setlength{\parskip}{0.5em}
+%
+%
+% \begin{abstract}
+%
+% \noindent \lpack{nfssext-cfr} is an extension and modification of Philipp Lehman's \lpack{nfssext} which provides extended font selection commands modelled on those provided by \LaTeXe{}.
+% Given an appropriate font configuration, \lpack{nfssext-cfr} enables users to change the weight, width, shape and style of font as easily as they can select bold, italic or typewriter.
+% For instance, the package makes it trivial to use proportional, hanging figures in the body of the text, proportional, lining figures in captions and headers and tabular, lining figures in tables.
+% An extensive choice of commands are provided to access a wide variety of weights, widths, shapes and styles from the more common (e.g.~semi-bold or condensed) to the less common (e.g.~‘outline’ and right or upright italic).
+% Comprehensive support is provided for ‘swash’ and ‘alternate’ styles.
+% These are implemented as families rather than shapes to support fonts which offer multiple swash shapes (e.g.~small-caps, italic and upright) or alternate styles.
+% These may be used to provide effective access to fancy ligatures, end-of-word swashes etc.\ without sacrificing the range of characters provided by \textsc{t1}.
+%
+% The package is not primarily intended for direct use by end-users, but is designed rather to facilitate the creation of more sophisticated font support packages.
+% End-users may nonetheless find the package useful, subject to the constraints explained in this document.
+% Moreover, end-users may wish to pass options to the package on newer kernels, if loading font support packages which have not been updated for changes to font selection\footnote{‘Kernel’ refers to the \LaTeX{} kernel in this context and should not be confused with your system kernel.}.
+%
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \listoftables
+%
+% \section{Introduction}\label{sec:intro}
+%
+%
+% The package was originally a fairly simple extension of Philipp Lehman's \lpack{nfssext}\@.
+% \lpack{nfssext} provides commands which enable one to specify font features not covered by the New Font Selection Scheme (\nfss).
+% The package developed according to the needs of particular fonts I configured for \LaTeX{} and, in a few cases, my dissatisfaction with the original commands.
+%
+% In adapting the package for the (New) New Font Selection Scheme\footnote{%
+% Officially, there is no such designation, but I have to call it something.
+% Throughout this document and packages which depend upon it, I use this term to refer to the font selection features introduced into \LaTeX{} in 2020.%
+% } (\nnfss), I have tried to balance \begin{enumerate*}[label=(\roman*)]\item backwards compatibility\footnote{%
+% Note that 100\% backwards compatibility cannot be implemented on current \LaTeX{} kernels.%
+% } for users loading updated font support packages, \item backwards compatibility for users loading packages which haven't been updated and \item compatibility with the new features of \nnfss{}\end{enumerate*}.
+% I have also tried to account for the common case in which documents use combinations of fonts from different packages, each of which may or may not load \lpack{nfssext-cfr} and may or may not have been updated for \nnfss{}.
+% This has inevitably required some compromises and there are certainly places where I would do things differently if starting from scratch.
+%
+% While I don't recommend installing this version of \lpack{nfssext-cfr} on an older system, the package should continue to work more-or-less as it always did on older kernels.
+% To achieve this, the package is split into a main file, \file{nfssext-cfr.sty}, which provides common code and figures out whether to load code for \nfss{} (\file{nfssext-cfr-nfss.sty}) or \nnfss{} (\file{nfssext-sty-nnfss.sty}).
+% \file{nfssext-cfr-nfss.sty} is essentially what was \file{nfssext-cfr.sty} minus the code retained in the latter.
+%
+% Unfortunately, tt is impossible to ensure 100\% backwards compatibility with recent \LaTeX{} kernels.
+% By default, \lpack{nfssext-cfr} tries to interfere as little as possible with the kernel, even at the cost of backwards compatibility.
+% If \texttt{compat} is enabled, however, the package does its best to enable backwards compatible behaviour, at the cost of the new functionality provided by the kernel.
+%
+% \lpack{nfssext-cfr} does not eschew interference with the kernel at all costs.
+% Even without \texttt{compat} it patches or replaces some kernel code because some things just don't work sensibly\footnote{%
+% This is true in two main places.
+% The first is the kernel's initialisation of series at the start of the document.
+% This overwrites the default \texttt{bf} series according to the font family name rather than the font name.
+% This means that virtual fonts which depend on Computer or Latin Modern are not handled correctly and, because this code is delayed, the problem cannot be corrected by setting things up appropriately earlier.
+%
+% The second is the implementation of ‘swash’ which is by far the most problematic of the changes and one of the most difficult to navigate.
+% It isn't clear to me how seriously the kernel's definition is intended to be, but I have chosen to overwrite the kernel code here.}.
+%
+% \begin{center}
+% \fbox{%
+% \begin{minipage}{.9\linewidth}
+% \textbf{All font-support code should be updated to use \texttt{compat=false} when loading \lpack{nfssext-cfr}.}
+% The changes in \nnfss{} \textbf{require} changes to code based on Philipp Lehman's Font Installation Guide.
+% \end{minipage}}
+% \end{center}
+%
+% \section{Macros}\label{sec:macros}
+%
+% \Cref{tab:smr,tab:srr,tab:wds,tab:wghts,tab:figs,tab:gen,tab:shapes} include macros supplied by the original \lpack{nfssext} and additions available with \lpack{nfssext-cfr}.
+% Macros in \cref{tab:wds,tab:wghts,tab:shapes} should work with any font definition files which more-or-less adhere to \nfss/\nnfss.
+% This should, theoretically, be all font packages but, in practice, things are rarely so simple.
+% Macros in \cref{tab:figs,tab:gen} will work only with fonts named strictly according to the Berry naming scheme.
+%
+% In \cref{tab:wghts,tab:wds,tab:gen,tab:figs,tab:shapes}, the third column lists the default letter codes for various font features.
+% If the defaults are changed, the macros will try to do something different.
+%
+% A \texttt{+} indicates that the macro will attempt to merge the addition into the current font's family name, series or shape.
+% For example, if the current font uses oldstyle figures, the \texttt{+2} indicates that \cs{pstyle} will attempt to select a font with figures which are both proportional and oldstyle.
+%
+% A \texttt{-} indicates that the macro will attempt to subtract from the current font's family name, series or shape.
+% For example, if the current font uses oldstyle figures, the \texttt{-2} indicates that \cs{tstyle} will attempt to select a font with figures which are both tabular and oldstyle.
+%
+% A comma-separated list indicates consecutive additions and/or subtraction.
+%
+% If no \texttt{+-} is used, the macro tries to select a font with the given feature without merging.
+% For example \cs{sistyle} tries to switch to \texttt{si} shape regardless of the current font shape.
+%
+% A \texttt{--} indicates that the macro will try to clear all relevant letter codes from the current font's family name, series or shape.
+% For example, \cs{regwidth} tries to switch to a series with no letter codes indicating non-standard widths in its name.
+%
+% Additions, subtractions and clearances operate on font family names, series or shapes, as appropriate.
+% In general, macros with \texttt{style} in their names operate on family names; those with \texttt{shape} operate on shape codes\footnote{But \textbf{not} \cs{swshape}!}; and those with \texttt{width} or \texttt{weight} operate on series codes.
+%
+% The letter codes correspond to those specified by the \nfss{} specification, unless the specification does not include the relevant feature.
+% In the latter case, I tried to choose something sensible i.e.~something which made sense to me at the time.
+% These choices are not always those specified by the \nnfss{} specification, since sense and sensibility are sometimes in the eye of the encoder.
+%
+% \newcolumntype{T}{>{\ttfamily\tlstyle\arraybackslash}l}
+% \newcolumntype{F}{>{\rmfamily\arraybackslash}l}
+% \newcolumntype{R}{>{\rmfamily\arraybackslash}X}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Standard (kernel) macros (re)defined}\label{tab:smr}
+% \begin{tabular}{lF}
+% \toprule
+% \cs{swshape}\tnotex{tn:sw-exists}\tnotex{tn:swshape-refs}\DescribeMacro[noprint]{\swshape} & redefined on new kernels\tnotex{tn:sw} \\
+% & defined on old kernels \\
+% \cs{itshape}\DescribeMacro[noprint]{\itshape} & old kernels only\\
+% \cs{scshape}\DescribeMacro[noprint]{\scshape} & old kernels only\\
+% \cs{upshape}\DescribeMacro[noprint]{\upshape} & old kernels only\\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:sw-exists}Defined only by newer kernels.
+% \item\label{tn:swshape-refs}See \cref{tab:gen,tab:shapes} and text.
+% \item\label{tn:sw}Definition depends on kernel, \texttt{force} and \texttt{compat}.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \caption{Standard (kernel) font change rules redefined}\label{tab:srr}
+% \begin{tabular}{TTF}
+% \toprule
+% \multicolumn{2}{c}{Shape} & \\
+% \multicolumn{1}{c}{Current} & \multicolumn{1}{c}{Requested} & \multicolumn{1}{c}{\sffamily Applied when?} \\
+% \midrule
+% it & sc & \texttt{compat} \& \nnfss{} only \\
+% sl & sc & \texttt{compat} \& \nnfss{} only \\
+% sc & it & \texttt{compat} \& \nnfss{} only \\
+% sc & sl & \texttt{compat} \& \nnfss{} only \\
+% scsl & it & \texttt{compat} \& \nnfss{} only \\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Family switches: general}\label{tab:gen}
+% \begin{tabularx}\linewidth{llTR}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Family Code} & \sffamily Style \\
+% \midrule
+% \cs{textti}\DescribeMacro[noprint]{\textti} & \cs{tistyle}\DescribeMacro[noprint]{\tistyle} & +d & titling/display\\
+% \cs{textlt}\tnotex{tn:cf-textlg}\DescribeMacro[noprint]{\textlt} & \cs{ltstyle}\tnotex{tn:cf-lgweight}\DescribeMacro[noprint]{\ltstyle} & +l & light if separate family \\
+% \cs{textof}\DescribeMacro[noprint]{\textof} & \cs{ofstyle}\DescribeMacro[noprint]{\ofstyle} & +l & open-face (or outline or blank) style\\
+% \cs{textalt}\DescribeMacro[noprint]{\textalt} & \cs{altstyle}\DescribeMacro[noprint]{\altstyle} & +a & alternative style\\
+% \cs{textreg}\DescribeMacro[noprint]{\textreg} & \cs{regstyle}\DescribeMacro[noprint]{\regstyle} & -- & regular style\\
+% \cs{emboss}\DescribeMacro[noprint]{\emboss} & \cs{embossstyle}\DescribeMacro[noprint]{\embossstyle} & +e & ‘embossed’ style \\
+% \cs{textorn}\DescribeMacro[noprint]{\textorn} & \cs{ornamentalstyle}\DescribeMacro[noprint]{\ornamentalstyle} & +p & decorative initials etc.\\
+% \cs{ornament}\DescribeMacro[noprint]{\ornament} & \\
+% \cs{textqt}\DescribeMacro[noprint]{\textqt} & \cs{qtstyle}\DescribeMacro[noprint]{\qtstyle} & +q & quotation style\\
+% \cs{textsh}\DescribeMacro[noprint]{\textsh} & \cs{shstyle}\DescribeMacro[noprint]{\shstyle} & +h & shadowed style\\
+% \cs{texttm}\DescribeMacro[noprint]{\texttm} & \cs{tmstyle}\DescribeMacro[noprint]{\tmstyle} & -s,-v,+t & monowidth typewriter\\
+% \cs{texttv}\DescribeMacro[noprint]{\texttv} & \cs{tvstyle}\DescribeMacro[noprint]{\tvstyle} & -s,-t,+v & variable width typewriter\\
+% \cs{textswash}\DescribeMacro[noprint]{\textswash} & \cs{swashstyle}\tnotex{tn:cf-swstyle}\DescribeMacro[noprint]{\swashstyle} & +w & swash \\
+% \cs{textsw}\tnotex{tn:swshape-not}\DescribeMacro[noprint]{\textsw} & \cs{swshape}\tnotex{tn:swshape-not}\DescribeMacro[noprint]{\swshape} && ‘find a route to swash’ \\
+% \bottomrule
+% \end{tabularx}
+% \begin{tablenotes}
+% \item\label{tn:cf-textlg}Cf.\ \cs{textlg} in \cref{tab:wghts}.
+% \item\label{tn:cf-lgweight}Cf.\ \cs{lgweight} in \cref{tab:wghts}.
+% \item\label{tn:cf-swstyle}Cf.\ \cs{swstyle} in \cref{tab:shapes}.
+% \item\label{tn:swshape-not}Effect is kernel and option dependent, but potentially changes family and/or shape.
+% ‘Tries to find a route to swash.’
+% See text for an explanation of what, why and when.
+% See \cref{sec:imp} for details of how.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Family switches: figures}\label{tab:figs}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Family Code} & \sffamily Style of Figures \\
+% \midrule
+% \cs{textln}\tnotex{tn:orig}\DescribeMacro[noprint]{\textln} & \cs{lnstyle}\tnotex{tn:orig}\DescribeMacro[noprint]{\lnstyle} & -- & lining (cf.~\cs{lstyle} below)\\
+% \cs{textos}\tnotex{tn:orig}\DescribeMacro[noprint]{\textos} & \cs{osstyle}\tnotex{tn:orig}\DescribeMacro[noprint]{\osstyle} & j & oldstyle (cf.~\cs{ostyle} below)\\
+% \cs{textinf}\DescribeMacro[noprint]{\textinf} & \cs{infstyle}\DescribeMacro[noprint]{\infstyle} & 0 & inferior \\
+% & \cs{instyle}\DescribeMacro[noprint]{\instyle} & & \\
+% \textcolor{gray}{\cs{textin}\tnotex{tn:textin-dep}}\DescribeDMacro[noprint]{\textin} & & & \textcolor{gray}{if \lpack{hyperref} is not loaded} \\
+% \cs{textsu}\DescribeMacro[noprint]{\textsu} & \cs{sustyle}\DescribeMacro[noprint]{\sustyle} & 1 & superior \\
+% \cs{textl}\tnotex{tn:new}\DescribeMacro[noprint]{\textl} & \cs{lstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\lstyle} & -j & lining (cf.~\cs{lnstyle} above)\\
+% \cs{texto}\tnotex{tn:new}\DescribeMacro[noprint]{\texto} & \cs{ostyle}\tnotex{tn:new}\DescribeMacro[noprint]{\ostyle} & +j & oldstyle (cf.~\cs{osstyle} above)\\
+% \cs{textp}\tnotex{tn:new}\DescribeMacro[noprint]{\textp} & \cs{pstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\pstyle} & +2 & proportional \\
+% \cs{textt}\tnotex{tn:new}\DescribeMacro[noprint]{\textt} & \cs{tstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\tstyle} & -2 & tabular \\
+% \cs{textpl}\tnotex{tn:both}\DescribeMacro[noprint]{\textpl} & \cs{plstyle}\tnotex{tn:both}\DescribeMacro[noprint]{\plstyle} & -j,+2 & proportional lining \\
+% \cs{textpo}\tnotex{tn:both}\DescribeMacro[noprint]{\textpo} & \cs{postyle}\tnotex{tn:both}\DescribeMacro[noprint]{\postyle} & +2j & proportional oldstyle \\
+% \cs{texttl}\tnotex{tn:both}\DescribeMacro[noprint]{\texttl} & \cs{tlstyle}\tnotex{tn:both}\DescribeMacro[noprint]{\tlstyle} & -j,-2 & tabular lining \\
+% \cs{textto}\tnotex{tn:both}\DescribeMacro[noprint]{\textto} & \cs{tostyle}\tnotex{tn:both}\DescribeMacro[noprint]{\tostyle} & +j,-2 & tabular oldstyle \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:orig}This macro is the original \lpack{nfssext} command.
+% The result is independent of the current style of figures.
+% \item\label{tn:textin-dep}Deprecated.
+% \item\label{tn:new}This macro changes precisely one aspect of the current figure style.
+% That is, the result depends on the current style of figures.
+% \item\label{tn:both}This macro ensures a specific fully-specified figure style.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Shape switches}\label{tab:shapes}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Shape Code} & \sffamily Shape \\
+% \midrule
+% -- & \cs{scolshape}\DescribeMacro[noprint]{\scolshape} & scol & outline small-caps \\
+% \cs{textol}\DescribeMacro[noprint]{\textol} & \cs{olshape}\DescribeMacro[noprint]{\olshape} & ol & outline\\
+% \cs{textsi}\DescribeMacro[noprint]{\textsi} & \cs{sishape}\DescribeMacro[noprint]{\sishape} & si & italic small-caps\\
+% \cs{textu}\DescribeMacro[noprint]{\textu} & \cs{ushape}\DescribeMacro[noprint]{\ushape} & u & ?? \\
+% \cs{textscu}\DescribeMacro[noprint]{\textscu} & \cs{scushape}\DescribeMacro[noprint]{\scushape} & su & ?? \\
+% \cs{textui}\DescribeMacro[noprint]{\textui} & \cs{uishape}\DescribeMacro[noprint]{\uishape} & ui & upright italic\\
+% \cs{textri}\DescribeMacro[noprint]{\textri} & \cs{rishape}\DescribeMacro[noprint]{\rishape} & ri & reverse italic\\
+% \cs{textdf}\DescribeMacro[noprint]{\textdf} & \cs{dfshape}\DescribeMacro[noprint]{\dfshape} & n & default shape\\
+% -- & \cs{swstyle}\tnotex{tn:cf-swashstyle}\DescribeMacro[noprint]{\swstyle} & +w,it & swash family \emph{and} shape \\
+% \cs{textsw}\tnotex{tn:cf-textswash}\tnotex{tn:cf-swshape-not-shape}\DescribeMacro[noprint]{\textsw} & \cs{swshape}\tnotex{tn:cf-swshape-not-shape}\DescribeMacro[noprint]{\swshape} && ‘find a route to swash’ \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:cf-textswash}Cf.~\cs{textswash} in \cref{tab:gen}.
+% \item\label{tn:cf-swashstyle}Cf.~\cs{swashstyle} in \cref{tab:gen}.
+% \item\label{tn:cf-swshape-not-shape}Definition is kernel and option dependent, but probably doesn't (just) change shape.
+% See \cref{tab:gen} for sketch and text for details.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \caption{Series switches: widths}\label{tab:wds}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Series Code} & \sffamily Width \\
+% \midrule
+% \cs{textnw}\DescribeMacro[noprint]{\textnw} & \cs{nwwidth}\DescribeMacro[noprint]{\nwwidth} & +c & narrow \\
+% \cs{textcd}\DescribeMacro[noprint]{\textcd} & \cs{cdwidth}\DescribeMacro[noprint]{\cdwidth} & +c & compact \\
+% \cs{textec}\DescribeMacro[noprint]{\textec} & \cs{ecwidth}\DescribeMacro[noprint]{\ecwidth} & +ec & extra compact \\
+% \cs{textuc}\DescribeMacro[noprint]{\textuc} & \cs{ucwidth}\DescribeMacro[noprint]{\ucwidth} & +uc & ultra compact \\
+% -- & \cs{mdwidth}\DescribeMacro[noprint]{\mdwidth} & +?m & medium \\
+% \cs{textet}\DescribeMacro[noprint]{\textet} & \cs{etwidth}\DescribeMacro[noprint]{\etwidth} & +x & extended \\
+% \cs{textep}\DescribeMacro[noprint]{\textep} & \cs{epwidth}\DescribeMacro[noprint]{\epwidth} & +x & expanded \\
+% \cs{textex}\DescribeMacro[noprint]{\textex} & \cs{exwidth}\DescribeMacro[noprint]{\exwidth} & +ex & extra expanded \\
+% \cs{textux}\DescribeMacro[noprint]{\textux} & \cs{uxwidth}\DescribeMacro[noprint]{\uxwidth} & +ux & ultra expanded \\
+% \cs{textrw}\DescribeMacro[noprint]{\textrw} & \cs{regwidth}\DescribeMacro[noprint]{\regwidth} & -- & regular \\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Series switches: weights}\label{tab:wghts}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Series Code} & Weight \\
+% \midrule
+% -- & \cs{mdweight}\DescribeMacro[noprint]{\mdweight} & +m? & medium \\
+% \cs{textmb}\DescribeMacro[noprint]{\textmb} & \cs{mbweight}\DescribeMacro[noprint]{\mbweight} & +mb & medium-bold \\
+% \cs{textdb}\DescribeMacro[noprint]{\textdb} & \cs{dbweight}\DescribeMacro[noprint]{\dbweight} & +db & demi-bold \\
+% \cs{textsb}\DescribeMacro[noprint]{\textsb} & \cs{sbweight}\DescribeMacro[noprint]{\sbweight} & +sb & semi-bold \\
+% \cs{textbd}\DescribeMacro[noprint]{\textbd} & \cs{bdweight}\DescribeMacro[noprint]{\bdweight} & +b & bold \\
+% & \cs{bfweight}\DescribeMacro[noprint]{\bfweight} & & \\
+% \cs{texteb}\DescribeMacro[noprint]{\texteb} & \cs{ebweight}\DescribeMacro[noprint]{\ebweight} & +eb & extra-bold \\
+% \cs{textub}\DescribeMacro[noprint]{\textub} & \cs{ubweight}\DescribeMacro[noprint]{\ubweight} & +ub & ultra-bold \\
+% \cs{textlg}\tnotex{tn:cf-textlt}\DescribeMacro[noprint]{\textlg} & \cs{lgweight}\tnotex{tn:cf-ltstyle}\DescribeMacro[noprint]{\lgweight} & +l & light when weight \\
+% \cs{textel}\DescribeMacro[noprint]{\textel} & \cs{elweight}\DescribeMacro[noprint]{\elweight} & +el & extra-light \\
+% \cs{textul}\DescribeMacro[noprint]{\textul} & \cs{ulweight}\DescribeMacro[noprint]{\ulweight} & +ul & ultra-light \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:cf-textlt}Cf.\ \cs{textlt} in \cref{tab:gen}.
+% \item\label{tn:cf-ltstyle}Cf.\ \cs{ltstyle} in \cref{tab:gen}.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+%
+% One further macro is available, though it has no effect on older kernels.
+%
+% \DescribeMacro{\nfssextset}\marg{key-value list}
+%
+% Package options (see \cref{sec:nkern} may also be specified after loading either in the preamble (\texttt{compat} and \texttt{force}) or at any time (\texttt{debug}).
+% This enables users to set options after some other package loads \lpack{nfssext-cfr} and allows additional information to be printed to the console and/or logged on local basis.
+%
+% \iffalse
+%^^A \section{Applications}
+%^^A
+%^^A \lpack{nfssext-cfr} may be used by any font support package which supports fonts named according to the Berry scheme and uses compatible settings in its font definition files.
+%^^A
+%^^A In general, the package does little or nothing to extend support for arbitrary fonts.
+%^^A If your favourite font's support package doesn't do what you want, it is highly unlikely loading this package will help.
+%^^A There is usually no reason to load the package in documents, because any package requiring it should explicitly load it as a dependency.
+%^^A
+%^^A However, due to complications resulting from recent changes to \LaTeX's \nfss{} in \nnfss, those using current (or even moderately recent) versions of \LaTeX{} \emph{may} need to pass the package options as explained below.
+%^^A
+%^^A Furthermore, \lpack{nfssext-cfr} may be useful if you are using a font support package which provides an option to load, say, light and semi-bold in place of regular/medium and bold.
+%^^A If the package does not allow you to use more than two weights in a single document, loading \lpack{nfssext-cfr} should allow you to access the otherwise inaccessible weights.
+%^^A
+%^^A The same principle works for widths: if the package allows you to choose between, say, condensed and regular width at load time, but doesn't provide commands to switch in the document itself, \lpack{nfssext-cfr} may enable you to access the full range of widths.
+%^^A
+%^^A The same would apply to a package which offered, say, a choice of standard, reverse and/or upright italics, but did not allow you to switch between them.
+%^^A I'm not aware of any such package, but \lpack{nfssext-cfr} could be useful if such exists.
+%^^A
+%^^A However, this principle does \textbf{not} extend to the style of figures, use of swash or choice of alternate ligatures etc\@.
+%^^A If your preferred font support package offers you a choice of proportional/tabular and/or hanging/lining figures, but provides no means to switch between them, \lpack{nfssext-cfr} is unlikely to help unless the package happens to use Berry naming\footnote{%
+%^^A Most packages don't.
+%^^A In particular, packages which use \texttt{autoinst} do not generally use Berry names.}.
+%^^A
+% \fi
+%
+%
+% \section{Newer \LaTeX{} Kernels}\label{sec:nkern}
+%
+% The package tests for the presence of \cs{init@series@setup}.
+% If this exists, it loads a newer version of the package.
+% \lpack{nfssext-cfr} supports three options, but these are only effective if the newer code (for \nnfss) is loaded.
+% All three are booleans, initially false and default to true if used without specifying a value\footnote{%
+% ‘Default’ and ‘initial’ follow the usage in \file{l3interface.pdf}, \lpack{l3keys2e} and \file{clsguide.pdf}.
+% If you are familiar with \lpack{pgfkeys}, the terms have the same meaning there.
+% Basically, the ‘initial’ value is what you get if you don't specify the option at all when loading the package, while the ‘default’ is what you get if you specify the option without specifying a value.
+%
+% ‘Scope’ is used in the standard sense applicable to \LaTeXe{} class and package options.
+% That is, it indicates whether the option may be used only when loading the package, at any point in the preamble or also in the document.%
+% }.
+% The third option is described in \cref{sec:trafferth}.
+%
+% \DescribeOpt{force}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: preamble
+%
+% You can force the old code to be loaded using the package option \texttt{force} or \texttt{force=true}.
+% Note, however, that the old version will not work as advertised on newer kernels because \LaTeX{} will overwrite some of the package's definitions at the end of the preamble.
+%
+% \DescribeOpt{compat}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: preamble
+%
+% In contrast, \texttt{compat} or \texttt{compat=true} will activate code which tries to partially replicate the original \lpack{nfssext-cfr}'s behaviour.
+% This is far from unproblematic.
+% In particular, it will partly break features of the current \nfss{} for other fonts.
+%
+% If your document relies exclusively on text fonts supported by this package and none of the support for those fonts has been updated, compilation should produce a more satisfactory result than otherwise.
+% If, however, your document relies partly on text fonts not supported by this package or the support for those fonts has been updated in the ‘wrong’ way, compilation may produce a less satisfactory result.
+% There is no general rule here: whether the option helps or hinders things depends entirely on the fonts, the support for those fonts and the specific contents of your document.
+%
+% The main areas known to be problematic are
+% \begin{enumerate}
+% \item\label{enum:si} italic small-capitals (but oblique small-capitals should be mostly unaffected);
+% \item\label{enum:swash} swash;
+% \item\label{enum:it} transitions between small-caps, italic, oblique, italic small-caps, oblique small-caps, upright italic, right italic and upright;
+% \item\label{enum:swshape} any transition involving swash where shape is involved;
+% \item\label{enum:m} medium weight fonts where width is non-standard e.g.~medium condensed, medium ultra condensed etc.;
+% \item\label{enum:mb} medium bold weight in any context.
+% \end{enumerate}
+% \ref{enum:si}--\ref{enum:swshape} can be worked around at the document level, with some inconvenience.
+% Subject to the caveats above, the \texttt{compat} option may avoid at least some of these inconveniences.
+%
+% \ref{enum:m} and \ref{enum:mb} cannot be worked around at the document level.
+% Nor does \lpack{nfssext-cfr} make any attempt to mitigate these two issues.
+% Doing so would involve too much interference with current \nnfss{}.
+% This means that \ref{enum:m} and \ref{enum:mb} can be addressed only in the support files for the fonts affected.
+% Neither \texttt{compat} nor \texttt{force} makes any attempt to change this.
+%
+% Maximum backwards compatibility requires changes to the font support files \emph{and} \texttt{compat=false}, but some documents may still require (hopefully minor) changes.
+%
+% \subsection{Required Changes to Font Support Files}\label{subsec:fsf}
+%
+% \textbf{In all cases, additional changes to font substitution rules may be needed to prevent multiple substitutions by the same font, since these seem to cause problems.}
+%
+% \begin{description}
+% \item[italic small-caps] The problem here is that \lpack{nfssext} encoded italic small-caps as shape \texttt{si}, whereas the kernel has plumped for \texttt{scit}.
+% It does support \texttt{scsl} (although it does not distinguish oblique from italic), but not \texttt{si}.
+% This issue can be more-or-less dealt with by support files for fonts, but some issues arise at the document level concerning transitions (below).
+%
+% Ideally, \texttt{scit} should be substituted wherever font definition files specify the shape \texttt{si}.
+% \texttt{scit} should then be defined as a (silent) substitution for \texttt{si}.
+% However, it \emph{should} be sufficient to define \texttt{si} as a substitute for \texttt{scit}.
+%
+% Fonts which provide oblique small-caps, but not italic, should specify \texttt{scsl} as a (silent) substitution for \texttt{scit} and \texttt{scit} for \texttt{si} (or \emph{vice-versa}).
+% The kernel supports \texttt{scsl} out-of-the-box, together with the substitution for \texttt{scit}, but the changes should make support for \cs{textsi} and \cs{sishape} more robust.
+% \item[transitions] \textbf{No additional changes are recommended to support files which load \lpack{nfssext-cfr}.}
+% Provided \texttt{fd} files are updated as explained above, no further adjustments should be required to enable correct font selection during transitions involving italic, oblique, small-caps, upright italic, reverse italic etc\@.
+%
+% \item[swash] \textbf{No changes are recommended for swash to font definition files for packages which load \lpack{nfssext-cfr}.}
+% If loading \lpack{nfssext-cfr}, the recommendation is to \textbf{ignore} the kernel's implementation because it cannot be made to work correctly with any family which provides swash for multiple shapes e.g.~both upright and italic or small-caps and upper/lower case\footnote{%
+% The issue here is that the kernel considers swash to be a \emph{shape}, whereas \lpack{nfssext} only \emph{called} it a shape.
+% The underlying code treated it as a \emph{style} requiring a change of font \emph{family}.
+% The shape was always (potentially switched to) italic (\texttt{it}).
+% \lpack{nfssext-cfr} offered a second version of swash, which treats it as a family possibly requiring a change of shape, but the shape is typically italic or upright, as opposed to being specific to swash.
+%
+% To make things worse, not all fonts \emph{can} be setup in the way the kernel assumes because some fonts provide swash characters in a variety of shapes (upright and italic, for example).
+% Moreover, it is common to encode additional ligatures, for example, as swash, even though this is not accurate, in order to provide \emph{some} mechanism for accessing them within a traditional 8-bit font setup.%
+% }.
+%
+% \item[swshape] \textbf{No changes for swash are recommended for \texttt{sty} files in packages which load \lpack{nfssext-cfr}.}
+%
+% \lpack{nfssext-cfr-nfss} contains the original \lpack{nfssext} definition of \cs{swshape} and \cs{textsw}.
+% This is used on newer kernels only if \texttt{force} is used, in which case the code is largely broken.
+%
+% \lpack{nfssext-cfr-nnfss} contains both the original definition and a replacement.
+% The former is used only if \texttt{compat} is selected; otherwise, the latter is used on kernels supporting \nnfss.
+% The new definition tries to figure out which of the three possible implementations, if any, to use and behaves accordingly.
+% \textbf{The kernel definition is overwritten regardless.}
+% \texttt{compat} determines only \emph{what} overwrites the kernel's.
+% \item[medium] Any line of a font definition file which codes a series of two or more letters including \texttt{m} must be changed to delete the \texttt{m}.
+% For example, \texttt{\{mc\}} \textrightarrow{} \texttt{\{c\}}, \texttt{\{muc\}} \textrightarrow{} \texttt{\{uc\}} etc\@.
+% \textbf{It is NOT sufficient to substitute such series using rules.}
+% The changes \textbf{must} be made in the primary definitions of the font families.
+% \item[mb] I've chosen to make \cs{mbweight} an alias for \cs{sbweight}.
+% Hopefully no font family supports both.
+% Provided that's not the case, \texttt{mb} should be changed to \cs{sb} in all affected font definition files.
+% \textbf{It is NOT sufficient to substitute \texttt{mb} for \texttt{sb} using a rule.}
+% The change \textbf{must} be made in the definition of the family.
+% \end{description}
+%
+%
+% \section{Older \LaTeX{} Kernels}\label{sec:okern}
+%
+% This is the code base \lpack{nfssext} was written for.
+% \lpack{nfssext-cfr} extended that code.
+%
+% To the best of my knowledge, the code used with older \LaTeX{} kernels works as expected.
+% This means it is fully compatible with the Font Installation Guide and that things like \texttt{\textbackslash scshape \textbackslash itshape} will produce italic small-caps, as expected.
+% This code is also --- again to the best of my knowledge --- fully compatible with all features of \nfss{} with the single exception of code supporting medium weight, condensed width fonts which erroneously uses \texttt{mc} rather than \texttt{c}.
+%
+% Italic small-caps is assumed to be coded as \texttt{si}.
+% Oblique small-caps is assumed to be coded as \texttt{scsl}.
+%
+% If a set of fonts provides a swash \emph{family}, it is assumed the fonts are named in accordance with the Berry scheme.
+% \cs{textswash}, \cs{swshape}, \cs{swashstyle} and/or \cs{swstyle} can then be used to access this family.
+%
+% The difference between \cs{swashstyle} and \cs{swstyle} is that the former tries to merge any swash family with the current one, whereas the latter does not.
+% So, if a font set provides swash for two widths of font, say, and you've changed widths, \cs{swashstyle} will try to find a swash character without altering the width, whereas \cs{swstyle} will first switch to the base font, resetting the width.
+% On the other hand, if the font only provides swash in the standard width, say, and you've changed widths, \cs{swashstyle} will fail to switch to swash, whereas \cs{swstyle} will succeed.
+% Packages which include swash families should, therefore, advise users which command(s) to use.
+%
+% \cs{textswash} is the text font command for \cs{swashstyle}.
+% \cs{textsw} is the text font command for \cs{swshape}.
+%
+% \cs{swshape} first tries \cs{swstyle} before changing the shape to \cs{swshapedefault}.
+% By default, this is \cs{itdefault} because swash families are often coded as italic, but this is obviously font-dependant.
+%
+% \section{Bugs, Non-Bugs \& Debugging}\label{sec:trafferth}
+%
+% The actual effect of any macro depends on any changes made to the defaults for various font features, the current font and, of course, what is available.
+%
+%^^A For example, \cs{itdefault} is intended to be the name of italic shape and is used by the redefined \cs{itshape} supplied by this package for older kernels.
+%^^A By default, \cs{itdefault} is \texttt{it}.
+%^^A However, if you change that to, say, \texttt{sl}, then \cs{itshape} will use \texttt{sl} instead.
+%^^A Note that changing \cs{itdefault} will have no effect on newer kernels.
+%^^A
+%^^A Moreover, if the current shape is small-caps, \cs{itshape} will attempt to merge the default italic shape with the small-caps on older kernels.
+%^^A That is, it will try to select small-caps italic, if possible, before resorting to plain italic.
+%^^A On newer kernels, this attempt is builtin for a limited range of shape and series changes.
+%^^A
+% The macros operating on family names are almost entirely reliant on font names adhering strictly to the Karl Berry schema.
+% This includes the stipulation that multiple variants be listed in alphabetical order.
+% These macros cannot be used with fonts named in any other way.
+%
+%^^A Although font definition files \emph{should} adhere to the series and shape codes specified by \nfss{}, some do not.
+%^^A In particular, some newer packages prepared with \texttt{autoinst} use descriptive, but non-standard, codes.
+%^^A While these work fine if the packages provide comprehensive access to the series and shapes they support, they otherwise require bespoke solutions if extensions are required.
+%^^A
+%^^A Provided font definition files do adhere to the standard encoding conventions, however, macros for changing weight, width and shape in \lpack{nfssext-cfr} should work fine on newer kernels (\nnfss).
+% On older kernels (\nfss), changes to weight and width should work and most shapes should be supported, but italic small-caps is assumed to be coded as \texttt{si} on these kernels, so you may need something like
+% \iffalse
+%<*verb>
+% \fi
+% \begin{verbatim}
+\renewcommand*{\sidefault}{scit}% or scsl or whatever
+% \end{verbatim}
+% \iffalse
+%</verb>
+% \fi
+% On newer kernels, italic small-caps should be encoded as explained above and \cs{sishape}/\cs{textsi} should work out-of-the-box with packages which use any of \texttt{si}, \texttt{scit} or \texttt{scsl}.
+%
+% If a macro's attempt to enable or disable a font feature fails, a warning will generally be written to the console, but the code tries hard not to trigger errors.
+% If an attempt triggers an error, that's a bug, so please let me know.
+% If an attempt triggers a warning, please note that there may be no bug at all and, if there is a bug, it is probably not in this package\footnote{%
+% To be clear, there certainly are bugs.
+% It is just statistically unlikely that any given warning is caused by one.}
+%
+% \DescribeOpt{debug}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: general
+%
+% You can get a bit more information printed to the console about what's happening using this option on newer kernels.
+% Some of the same information can also be found in the log.
+%
+% \changes{v6140}{2017-03-28}{%
+% Extend documentation somewhat.}
+%
+% \changes{2010-07-17}{2015-06-19}{%
+% There should be no changes for the end user except that in certain cases it is possible that line-breaks may be altered if \lpack{microtype} is in use due to the enhanced support included for variant font families.}
+%
+% \MaybeStop{%
+% \PrintChanges
+% \setcounter{IndexColumns}{2}%
+% \PrintIndex
+% }
+%
+% \section{Implementation}\label{sec:imp}
+%
+% You do not need to read the remainder of this document in order to install or use the package.
+%
+% \subsection{Main package file}\label{subsec:main}
+%
+% This used to be the complete package.
+% Now it is mostly responsible for processing options, figuring out which kernel we're on and implementing the small amount of code shared between the implementations for \nfss{} and \nnfss{}.
+%
+% \iffalse
+%<*sty>
+% \fi
+% \begin{package}{nfssext-cfr}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} extensions for NFSS and NNFSS; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+%
+%
+% \changes{v0.0}{2020-2024}{Update for \nnfss.}
+%
+% \changes{v1.0}{2024-09-16}{%
+% So \lpack{nfssext-cfr} merging is now limited to family, weight and width.}
+%^^A I *could* use font change rules for weight and width - this would make sense if I could be confident of catching all cases *and* it didn't cause problems ....
+%^^A the real problem is, I don't know what I'm supposed to avoid ....
+%
+% \changes{v1.0}{2024-09-16}{%
+% Behaviour depends on kernel version and options.
+% On newer kernels, quite conservative/less compatible by default.
+% Fully compatible on older kernels.}
+%
+% \changes{v1.0}{2024-09-16}{Split \file{nfssext-cfr.sty} into \file{nfssext-cfr\{,-nfss,-nnfss\}.sty}.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{macro}{\if@nfssextcfr@digonnew}
+% \mbox{ }
+% \begin{macrocode}
+\newif\if@nfssextcfr@digonnew
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\@nfssextcfr@digonnewtrue
+% \end{macrocode}
+% Copied verbatim, excepting format and modulo package/module name from Joseph Wright's \file{siunitx.sty} under LPPL
+% \begin{macrocode}
+\@ifundefined{ExplLoaderFileDate}{%
+ \IfFileExists{expl3.sty}{%
+ \RequirePackage{expl3}%
+ }{%
+ \RequirePackage{nfssext-cfr-nfss}%
+ \@nfssextcfr@digonnewfalse
+ }%
+}{}
+\if@nfssextcfr@digonnew
+% \end{macrocode}
+% Almost verbatim from \file{siunitx.sty}
+% \begin{macrocode}
+ \@ifl@t@r\ExplLoaderFileDate{2022-02-24}{%
+ }{%
+ \RequirePackage{nfssext-cfr-nfss}%
+ \@nfssextcfr@digonnewfalse
+ }%
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\if@nfssextcfr@digonnew
+% \end{macrocode}
+% BEGIN expl pkg option setup
+% \begin{macrocode}
+ \newif\ifexfs@debug
+ \ExplSyntaxOn
+ \prop_gput:Nnn \g_msg_module_name_prop { nfssext-cfr } { exfs }
+ \keys_define:nn { exfs }
+ {
+% \end{macrocode}
+% \begin{option}{compat}
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{compat}.
+% More aggressive/backwards compatible with \texttt{compat}.}
+% \begin{macro}{\g__exfs_compat_bool}
+% Compatibility option.
+% \begin{macrocode}
+ compat .bool_gset:N = \g__exfs_compat_bool,
+ compat .default:n = true,
+ compat .initial:n = false,
+ compat .usage:n = preamble,
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{option}{debug}
+% Turns info messages into warnings for testing purposes and possibly provides additional information.
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{debug}.}
+% \begin{macrocode}
+ debug .legacy_if_gset:n = exfs@debug,
+ debug .initial:n = false,
+ debug .default:n = true,
+% \end{macrocode}
+% \end{option}
+% \begin{option}{force}
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{force}.
+% Load old file/incompatible with \texttt{force}.}
+% \begin{macro}{\g__exfs_force_bool}
+% Force loading of code for \nfss{} even on newer kernels.
+% \begin{macrocode}
+ force .bool_gset:N = \g__exfs_force_bool,
+ force .default:n = true,
+ force .initial:n = false,
+ force .usage:n = preamble,
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{macrocode}
+ }
+% \end{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Joseph Wright: from \file{siunitx.sty} ; \url{https://chat.stackexchange.com/transcript/message/64327823#64327823}
+% \begin{macrocode}
+ \providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion }
+ \IfFormatAtLeastTF { 2022-06-01 }
+ {
+ \ProcessKeyOptions [ exfs ]
+ }{
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { exfs }
+% \end{macrocode}
+% \begin{macro}{\ProcessKeyOptions}
+% \mbox{ }
+% \begin{macrocode}
+ \NewDocumentCommand \ProcessKeyOptions { o }
+ {
+ \IfValueTF { #1 } { \ProcessKeysOptions { #1 } }
+ { \PackageError{nfssext-cfr}{
+ Optional~argument~mandatory~on~kernels~this~old.\MessageBreak
+ Please~specify~the~module~whose~keys~should~be~processed
+ }{
+ \protect\ProcessKeyOptions~only~passes~keys~to~
+ \protect\ProcessKeyOptions\MessageBreak
+ on~older~kernels~for~the~convenience~of~package~authors.~
+ Since~\protect\ProcessKeysOptions\MessageBreak
+ takes~an~argument,~the~optional~argument~to~
+ \protect\ProcessKeyOptions~is~required
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ }
+ \IfFormatAtLeastTF { 2020-10-01 }{
+ }{
+ \RequirePackage { xparse }
+% \end{macrocode}
+% \begin{macro}{\ExpandArgs}
+% \mbox{ }
+% \begin{macrocode}
+ \providecommand \ExpandArgs [1]
+ { \cs_if_exist_use:c { exp_args:N #1 } }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ }
+% \end{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% END expl pkg option setup
+%
+% BEGIN cfr-added: bifurcate
+%
+% We test for the presence of \cs{init@series@setup} in order to determine whether to load code for \nnfss{} or \nfss.
+% If \texttt{force} is set, we load for \nfss{} regardless.
+% \begin{macrocode}
+ \RequirePackage{etoolbox}
+ \msg_new:nnn { nfssext-cfr } { compat }
+ {
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ compat ~ option. ~
+ This ~ means ~ the ~ package ~ may ~ require ~ updating. ~
+ Update ~ the ~ package ~ if ~ necessary ~ and ~ use ~ compat=false ~ when ~ loading ~ me.
+ }
+ \msg_new:nnn { nfssext-cfr } { force }
+ {
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ force ~ option. ~
+ This ~ is ~ a ~ desperate ~ measure ~ of ~ last ~ resort. ~
+ **Breakage ~ is ~ expected.**
+ }
+ \hook_gput_code:nnn { begindocument/before } { . }
+ {
+ \cs_if_exist:NTF \init@series@setup
+ {
+ \bool_if:NTF \g__exfs_force_bool
+ {
+ \msg_warning:nn { nfssext-cfr } { force }
+ \RequirePackage {nfssext-cfr-nfss}
+ }{
+ \bool_if:NT \g__exfs_compat_bool
+ {
+ \msg_warning:nn { nfssext-cfr } { compat }
+ }
+ \RequirePackage {nfssext-cfr-nnfss}
+ }
+ }{% achosiad heb broblemau - diolch byth!
+ \RequirePackage {nfssext-cfr-nfss}
+ }
+ }
+% \end{macrocode}
+% \begin{macro}{\__exfs_set:n}
+% \begin{macrocode}
+ \cs_new_protected_nopar:Nn \__exfs_set:n
+ {
+ \keys_set:nn { exfs } { #1 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nfssextset}
+% Allow setting of options later in preamble or in document.
+% This is intended to enable debugging to be toggled locally.
+% \begin{macrocode}
+ \cs_set_eq:NN \nfssextset \__exfs_set:n
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ \ExplSyntaxOff
+% \end{macrocode}
+% END added
+% \begin{macro}{\DeclareTextOrnament,\ornament}
+% These are unmodified from \lpack{nfssext}.
+% I'm not aware of any \ctan{} packages using these and they have not been tested for compatibility with \nnfss{}, though I can't see any patently obvious problems.
+% \begin{macrocode}
+ \newcommand*{\DeclareTextOrnament}[7]{%
+ \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
+ \begingroup
+ \catcode`\/=12
+ \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
+ \def\f@encoding{#1}%
+ \def\f@family{#2}%
+ \def\f@series{#3}%
+ \def\f@shape{#4}%
+ \def\exfs@tempa{#5}}
+ \endgroup
+ \def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
+ \DeclareRobustCommand{\ornament}[1]{%
+ \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
+ \PackageWarning{nfssext}{%
+ Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
+ Setting debug mark}%
+ \rule{1ex}{1ex}%
+ \else
+ \begingroup
+ \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
+ \expandafter\expandafter\expandafter\exfs@split@orndef
+ \expandafter\string\exfs@tempb\@nil
+ \selectfont\char\exfs@tempa
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nfssextcfr@MT@Hook,\Microtype@Hook}
+% BEGIN add \lpack{microtype} hooks
+% Partly from \lpack{microtype} docs; partly from \lpack{MinionPro} package
+% \changes{2010-07-17}{2015/06/19}{%
+% Add \lpack{microtype} support for variants.}
+% \begin{macrocode}
+\def\nfssextcfr@MT@Hook{%
+% \end{macrocode}
+%^^A \DeclareMicrotypeVariants{x,j,w,a,d,0,1}% this is the default declaration according to the docs
+%^^A \DeclareMicrotypeVariants*{2,e,h,l}% this should *append* the variants (what do I use 'f' for? better take it out...)
+% \begin{macrocode}
+ \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
+ }
+ \@ifpackageloaded{microtype}{%
+ \PackageWarning{nfssext-cfr}{%
+ You have loaded me (or a font support package which loads me)\MessageBreak
+ after loading microtype, but microtype should be loaded after\MessageBreak
+ all font defaults have been setup}%
+ \nfssextcfr@MT@Hook
+ }{%
+ \@ifundefined{Microtype@Hook}{%
+ \let\Microtype@Hook\nfssextcfr@MT@Hook
+ }{% MinionPro has \global before this
+ \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+% \changes{v1.1}{2024-10-03}{Fix grouping cock up.}
+% \begin{macrocode}
+\fi
+% END
+% \end{macrocode}
+% \end{package}
+% \iffalse
+%</sty>
+% \fi
+%
+% \subsection{NNFSS}\label{subsec:sty-nnfss}
+%
+%
+% This code was written for the \emph{current} (New) New Font Selection Scheme (2020--).
+% It should not generally be loaded on older kernels.
+%
+%
+% \iffalse
+%<*sty-nnfss>
+% \fi
+% \begin{package}{nfssext-cfr-nnfss}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase-nnfss.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} extended New New Font Selection Scheme (NNFSS) based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+% END added
+% \begin{macro}{\exfs@tempa,\exfs@tempb,\exfs@tempf}
+% Scratch variables.
+% \begin{macrocode}
+\newcommand*{\exfs@tempa}{}
+\newcommand*{\exfs@tempb}{}
+% \end{macrocode}
+%:end-added
+% BEGIN added (cfr): extra variable (\cs{exfs@tempf})
+% \begin{macrocode}
+\newcommand*{\exfs@tempf}{}
+% \end{macrocode}
+% \end{macro}
+% We want to track cases where missing fonts get defined into existence.
+% To do this we define an additional macro each time \cs{wrong@fontshape} is called.
+% This is based on two proposals by Max Chernoff, but the implementation is different.
+% \begin{macrocode}
+\ExplSyntaxOn
+\hook_gput_code:nnn { cmd/wrong@fontshape/before } { . }
+{
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter \csname exfs@fake@ \curr@fontshape\endcsname\relax
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macro}{\exfs@info}
+% Custom logging
+% \begin{macrocode}
+\newcommand \exfs@info[2][nfssext-cfr]{%
+ \ifexfs@debug
+ \PackageWarning{#1}{Info: #2}%
+ \else
+ \PackageInfo{#1}{#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\exfs@normalise}
+% BEGIN added (cfr): normalise
+% \begin{macrocode}
+\newcommand* \exfs@normalise[1]{%
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+ \exfs@info{Current font '\curr@fontshape' is fake.\MessageBreak
+ Normalising}%
+ \expandafter\csname f@#1\endcsname{\csname #1default\endcsname}\selectfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+ \f@series{\seriesdefault}\f@shape{\shapedefault}\selectfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+% \end{macrocode}
+% This might happen, I think, if we're in a swash family or specialist encoding
+% where the default series and shape aren't available.
+% All bets are off here so try to bale out as gracefully as we can.
+% \begin{macrocode}
+ \normalfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+% \end{macrocode}
+% This definitely oughtn't to happen, though - things are really screwed up at
+% this point - so error.
+% \begin{macrocode}
+ \PackageError{nfssext-cfr}{Default font appears to be fake!\MessageBreak
+ Switch \textbackslash normalfont yielded '\curr@fontshape'}
+ {This is highly unlikely, so the bug is probably in the phenomena\MessageBreak
+ rather than the noumena}%
+ \fi
+ \fi
+ \fi
+ \exfs@info{Normalised to '\curr@fontshape'}%
+ \else
+ \exfs@info{Current font '\curr@fontshape' appears real}%
+ \fi
+}
+% \end{macrocode}
+% END added
+% \end{macro}
+%
+% \begin{macro}{\exfs@try@family}
+% Modified from \lpack{nfssext}?
+% Or modified from older \lpack{nfssext-cfr}?
+% \begin{macrocode}
+\newcommand*{\exfs@try@family}[2][]{%
+ \let\exfs@tempa\relax
+% \end{macrocode}
+% END added
+%
+% trans: group is requisite here else \LaTeX{} thinks the family real regardless
+% \begin{macrocode}
+ \begingroup % fel arall, bydd latex yn credu bod y family yn go iawn beth bynnag
+% \end{macrocode}
+% (o leiaf bydd latex yn dweud felly)
+% \begin{macrocode}
+ \exfs@info{Trying Font family '\f@encoding/#2'}%
+ \fontfamily{#2}\try@load@fontshape
+% \end{macrocode}
+% \cs{curr@fontshape} holds the target shape - not the current one - after an unsuccessful attempt to load **family** with \cs{try@load@fontshape}.
+% This won't work for series/shape as \cs{curr@fontshape} holds the current one in that case
+% \begin{macrocode}
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \exfs@info[nfssext]{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Font family '\f@encoding/#1' tried instead}%
+ \exfs@try@family{#1}%
+ \fi
+ \else
+ \exfs@info{Loading font family '\f@encoding/#2'}%
+ \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@try@series}
+% BEGIN added (cfr)
+% \begin{macrocode}
+\newcommand*{\exfs@try@series}[2][]{%
+% \end{macrocode}
+% We don't hand instructions to the kernel unless we know they'll succeed b/c the results are too unpredictable under \nnfss.
+%
+% Changing directly only produces usable results for series defined in the 'table' of font changes.
+% But using higher level kernel interfaces for tests doesn't work because spurious fonts get defined, which only seem to exist.
+% Theoretically, we might as well use the existing kernel's macros since we're already damned by reliance on internals anyway.
+% But then everything needs disentangling.
+% So it's easier to just adapt previous tests, even though it partially duplicates what the kernel does.
+% (But it isn't the mess swash is \dots).
+% \begin{macrocode}
+ \let\exfs@targetseries\relax
+ \edef\exfs@tempa{#2}%
+ \ifx\f@series\exfs@tempa\relax
+ \exfs@info{Current (\f@series) matches target (#2) series.\MessageBreak
+ Ignoring font switch}%
+ \else
+ \begingroup
+ \exfs@normalise{series}%
+ \edef\exfs@tempa{\f@encoding/\f@family/#2/\f@shape}%
+ \ifcsname \exfs@tempa\endcsname
+ \exfs@info{Switching series: \f@series\space -> #2}%
+ \gdef\exfs@targetseries{\fontseries{#2}\selectfont}%
+ \else
+ \edef\exfs@reserved{#1}%
+ \ifx\exfs@reserved\@empty
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2/\f@shape' not available\MessageBreak
+ Ignoring font change}%
+ \else
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2/\f@shape' not available\MessageBreak
+ Trying '\f@encoding/\f@family/#1/\f@shape'}%
+ \exfs@try@series{#1}%
+ \fi
+ \fi
+ \endgroup
+ \exfs@targetseries
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%^^A \newcommand*{\exfs@try@shape}[2][]{%
+%^^A Shapes are where the real problems start ....
+%^^A \let\exfs@targetshape\relax
+%^^A \edef\exfs@tempa{#2}%
+%^^A \ifx\f@shape\exfs@tempa\relax
+%^^A \\exfs@info{Current (\f@shape) matches target (#2) shape.\MessageBreak
+%^^A Ignoring font switch}%
+%^^A \else
+%^^A \begingroup
+%^^A \edef\exfs@tempa{\f@encoding/\f@family/\f@series/#2}%
+%^^A \ifcsname \exfs@tempa\endcsname
+%^^A \exfs@info{Switching shape: \f@shape\space -> #2}%
+%^^A \gdef\exfs@targetshape{\fontshape{#2}\selectfont}%
+%^^A \else
+%^^A \begingroup
+%^^A \exfs@normalise{shape}%
+%^^A \ifcsname \exfs@tempa\endcsname
+%^^A \exfs@info{Switching shape: \f@shape\space -> #2}%
+%^^A \gdef\exfs@targetshape{\exfs@normalise{shape}\fontshape{#2}\selectfont}%
+%^^A \endgroup
+%^^A \else
+%^^A \edef\exfs@reserved{#1}%
+%^^A \ifx\exfs@reserved\@empty
+%^^A \PackageWarning{nfssext-cfr}{%
+%^^A Font shape '\f@encoding/\f@family/\f@series/#2' not available\MessageBreak
+%^^A Ignoring font change}%
+%^^A \else
+%^^A \PackageWarning{nfssext-cfr}{%
+%^^A Font shape '\f@encoding/\f@family/\f@series/#2' not available\MessageBreak
+%^^A Trying '\f@encoding/\f@family/\f@series/#1'}%
+%^^A \exfs@try@shape{#1}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \endgroup
+%^^A \exfs@targetshape
+%^^A \fi}
+% \begin{macro}{\exfs@try@shapeshift}
+% Attempt to leverage kernel's mechanism.
+% \begin{macrocode}
+\def\exfs@try@shapeshift#1{%
+ \edef\exfs@targetshape{\csname #1default\endcsname}%
+ \ifx\f@shape\exfs@targetshape\relax
+ \exfs@info{Current (\f@shape) matches target (#1) shape.\MessageBreak
+ Ignoring font switch}%
+ \else
+ \not@math@alphabet\edef\exfs@targetshape\relax
+ \exfs@info{\f@shape\space -> \exfs@targetshape\MessageBreak
+ Trying \f@encoding/\f@family/\f@series/\exfs@targetshape}%
+% \end{macrocode}
+% We \emph{do} want the kernel's substitution mechanism here?
+% \begin{macrocode}
+ \fontshape{\exfs@targetshape}\selectfont
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@swshape}
+% Switching to swash is now far more complicated with (I presume) the attendant overhead, but the kernel's approach just won't work here\footnote{%
+% Implementing swash as a \emph{shape} isn't workable for fonts I've packaged, so I've made no attempt to follow the kernel here as I do for small-caps italic etc\@.
+% We're back to the single axis/multiple aspect problem which \nfss{} created by ignoring small-caps/italic and width/weight combinations.
+% It may, in fact, be wrong-headed to follow the kernel \emph{at all} here.
+% Perhaps it would be better to just provide the original implementation and some compatibility option for people who also need swash shapes in the same document?%
+% }.
+% This will become \cs{swshape} if \texttt{compat} isn't enabled.
+% \begin{macrocode}
+\newcommand* \exfs@swshape{%
+ \let\exfs@targetsw\relax
+ \begingroup % angen neu beidio? angen - bendant!
+% \end{macrocode}
+% Try kernel or configured default first so we get swash from current family etc.\ if available
+% \begin{macrocode}
+ \edef\exfs@tempa{\f@encoding/\f@family/\f@series/\swdefault}%
+ \edef\exfs@tempa@fake{exfs@fake@\exfs@tempa}%
+ \ifcsname \exfs@tempa\endcsname
+ \ifcsname exfs@fake@\exfs@tempa\endcsname
+ \exfs@swfamily
+ \else
+ \gdef\exfs@targetsw{\fontshape{\swdefault}\selectfont}% kernel
+ \fi
+ \else
+ \exfs@swfamily
+ \fi
+ \endgroup
+ \ifx\exfs@targetsw\relax
+ \PackageWarning{nfssext-cfr}{%
+ Cannot find any route to swash.\MessageBreak
+ Are you sure one is available?}%
+ \else
+ \exfs@targetsw
+ \exfs@info{Switch to swash resulted in '\curr@fontshape'}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@swfamily}
+% This is the guts of \cs{exfs@swshape}.
+% \begin{macrocode}
+\newcommand* \exfs@swfamily{%
+ \let\exfs@targetsw\relax
+ \begingroup
+% \end{macrocode}
+% ^^A \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+% Try \lpack{nfssext-cfr} family switch \& our default or configured
+% \begin{macrocode}
+ \let\exfs@tempa\f@family
+ \exfs@merge@families{w}%
+ \ifx\exfs@tempa\f@family % try merge with current shape
+% \end{macrocode}
+% Try switching to upright etc.\ first
+% \begin{macrocode}
+ \fontshape{n}%
+ \exfs@merge@families{w}% up & merge
+ \if\exfs@tempa\f@family
+% \end{macrocode}
+% Try switching to \cs{swshapedefault}{} first
+% \begin{macrocode}
+ \fontshape\swshapedefault
+ \exfs@merge@families{w}% up & nfssext-cfr default/configured
+ \if\exfs@tempa\f@family
+% \end{macrocode}
+% Use \lpack{nfssext} family switch \& default or configured
+% \begin{macrocode}
+ \exf@try@family{\expandafter\exfs@get@base\f@family\@nil w}% nfssext switch
+ \if\exfs@tempa\f@family % nfssext switch
+ \fontshape\swshapedefault\exfs@try@family{%
+ \expandafter\exfs@get@base\f@family\@nil w}% nfssext switch & shape
+ \if\exfs@tempa\f@family
+ \relax % rhodd y ffidl yn y to (give up)
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape\swshapedefault\expandafter\fontfamily{%
+ \exfs@get@base\f@family\@nil w}\selectfont
+ }% nfssext switch & shape
+ \fi % nfssext switch & shape
+ \else
+ \gdef\exfs@targetsw{\expandafter\fontfamily{%
+ \exfs@get@base\f@family\@nil w}\selectfont
+ }% nfssext switch
+ \fi % nfssext switch
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape\swshapedefault\exfs@merge@families{w}%
+ }% up & nfssext-cfr default/configured
+ \fi % up & nfssext-cfr default/configured
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape{n}\exfs@merge@families{w}%
+ }% up & merge
+ \fi % up & merge
+ \else
+ \gdef\exfs@targetsw{\exfs@merge@families{w}}% merge with current shape
+ \fi % merge with current shape
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\exfs@get@base,\exfs@get@variants,\exfs@next,\exfs@shift,\exfs@first,\exfs@part,\exfs@second}
+% Utlities
+% \begin{macrocode}
+\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
+% \end{macrocode}
+% BEGIN added (cfr): more \cs{exfs@} commands (\texttt{get@variants}, \texttt{next}, \texttt{shift}, \texttt{first}, \texttt{part}, \texttt{second})
+% \begin{macrocode}
+\def\exfs@get@variants#1#2#3#4\@nil{#4}
+\def\exfs@next#1#2\@nil{#1}
+\def\exfs@shift#1#2\@nil{#2}
+\def\exfs@first#1#2\@nil{#1}
+\def\exfs@part#1#2\@nil{#2}
+\def\exfs@second#1#2#3\@nil{#2}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@series@splitter}
+% Common method for dealing with weight and width.
+% \changes{v1.0}{2024-09-16}{%
+% Rewritten as kernel no longer supports erroneous \texttt{m}.}
+% \begin{macrocode}
+\def\exfs@series@splitter#1{%
+ \edef\exfs@weight{\expandafter\exfs@first#1\@nil}%
+ \edef\exfs@width{\expandafter\exfs@shift#1\@nil}%
+% \end{macrocode}
+% Two char width only or two char weight
+% \begin{macrocode}
+ \if\exfs@weight u\exfs@check@cx{u}%
+ \else\if\exfs@weight e\exfs@check@cx{e}%
+ \else\if\exfs@weight s\exfs@check@cx{s}%
+ \else\if\exfs@weight d\exfs@check@cx{d}%
+ \else\ifx\exfs@width\@empty % m dealt with elsewhere
+% \end{macrocode}
+% Single character width
+% \begin{macrocode}
+ \if\exfs@weight c\def\exfs@width{c}\let\exfs@weight\@empty
+ \else\if\exfs@weight x\def\exfs@width{x}\let\exfs@weight\@empty
+ \fi\fi
+ \fi\fi\fi\fi\fi
+ \exfs@info{#1 -> \exfs@weight:\exfs@width;}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@check@cx}
+% Auxiliary for \cs{exfs@check@cx}
+% \begin{macrocode}
+\def\exfs@check@cx#1{%
+ \edef\exfs@tempa{\expandafter\exfs@first\exfs@width\@nil}%
+ \if\exfs@tempa c\edef\exfs@width{#1c}\let\exfs@weight\@empty
+ \else\if\exfs@tempa x\edef\exfs@width{#1x}\let\exfs@weight\@empty
+ \else\edef\exfs@weighta{%
+ \exfs@weight\exfs@tempa
+ }\let\exfs@weight\exfs@weighta
+ \edef\exfs@widtha{%
+ \expandafter\exfs@shift\exfs@width\@nil
+ }\let\exfs@width\exfs@widtha
+ \fi\fi
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\lnstyle,\osstyle,\infstyle,\instyle,\sustyle,\swstyle}
+% Unmodified from \lpack{nfssext}.
+% Anniffiniedig -> undefined in the kernel.
+% \begin{macrocode}
+\DeclareRobustCommand{\lnstyle}{%% anniffiniedig
+ \not@math@alphabet\lnstyle\relax
+ \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
+ {\expandafter\exfs@get@base\f@family\@nil x}}
+\DeclareRobustCommand{\osstyle}{%% anniffiniedig
+ \not@math@alphabet\osstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
+\DeclareRobustCommand{\infstyle}{%% anniffiniedig
+ \not@math@alphabet\infstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
+\let\instyle\infstyle
+\DeclareRobustCommand{\sustyle}{%% anniffiniedig
+ \not@math@alphabet\sustyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
+\DeclareRobustCommand{\swstyle}{%% anniffiniedig
+ \not@math@alphabet\swstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
+% \end{macrocode}
+% \end{macro}
+% BEGIN added (cfr) - merge families.
+%
+% \nnfss{} (unsurprisingly) does nothing here, so this is unproblematic.
+% The following depends **absolutely** on **complete** adherence to berry names.
+%
+% \begin{macro}{\ifexfs@added,\exfs@merge@families}
+% \cs{exfs@merge@families} is used in the macros recommended for switching the style of figures, activating swash and other variants etc.
+% \begin{macrocode}
+\newif\ifexfs@added
+\newcommand*\exfs@merge@families[1]{%
+ \edef\exfs@vartomerge{#1}%
+ \edef\exfs@variants{\expandafter\exfs@get@variants\f@family\@nil}%
+ \exfs@info{Trying to merge variants #1 and \exfs@variants}%
+ \edef\tempo{2j}%
+ \let\exfs@tempq\@empty
+ \def\exfs@tempg{}%
+ \exfs@addedfalse
+% \end{macrocode}
+% Check whether there are variants - if not just use the requested addition.
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \edef\exfs@tempq{\exfs@vartomerge}%
+ \exfs@addedtrue
+ \else
+ \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
+ \ifx\tempo\exfs@vartomerge
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% Check whether there are variants left - if not set the ‘next variant’ to empty
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \let\exfs@nextvariant\@empty
+ \else
+% \end{macrocode}
+% O/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@nextvariant{\expandafter\exfs@next\exfs@variants\@nil}%
+ \fi
+% \end{macrocode}
+%^^A \edef\tempt{2}%
+%^^A \edef\tempj{j}%
+% If the next variant is 2 or j, ignore it
+% \begin{macrocode}
+ \if\exfs@nextvariant 2%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \if\exfs@nextvariant j% if the next variant is j, ignore it
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+% \end{macrocode}
+% See if the current value is either 2 or j and add it if so and if needed
+% \begin{macrocode}
+ \if\xx 2%
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \else
+ \if\xx j% if the current value is j, we're done
+ \edef\exfs@tempq{\exfs@tempg\xx\exfs@variants}%
+ \let\exfs@variants\@empty
+ \exfs@addedtrue
+ \else
+% \end{macrocode}
+% o/w see if the current value matches the next variant
+% \begin{macrocode}
+ \ifx\xx\exfs@nextvariant
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \fi
+ \fi
+ }%
+ \else
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% Check whether there are variants left and, if not, add the addition if needed
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \ifexfs@added
+ \else
+ \edef\exfs@tempq{\exfs@tempg\exfs@vartomerge}%
+ \exfs@addedtrue
+ \fi
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@nextvariant{\expandafter\exfs@next\exfs@variants\@nil}%
+% \end{macrocode}
+% If the new token equals the next variant, combine whatever is saved in \cs{exfs@tempg} with whatever remains in \cs{exfs@variants}
+% \begin{macrocode}
+ \ifx\exfs@nextvariant\exfs@vartomerge
+ \edef\exfs@tempq{\exfs@tempg\exfs@variants}%
+ \exfs@addedtrue
+ \let\exfs@variants\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the requested addition, add it in
+% \begin{macrocode}
+ \ifx\exfs@vartomerge\xx
+ \edef\exfs@tempq{\exfs@tempg\xx\exfs@variants}%
+ \exfs@addedtrue
+ \let\exfs@variants\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the next variant, shift
+% \begin{macrocode}
+ \ifx\exfs@nextvariant\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+ \ifx\exfs@tempq\@empty
+ \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
+ \else
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pstyle,\ostyle,\postyle}
+% Commands for switching to proportional and/or oldstyle figures.
+% Compare \cs{ostyle} with \lpack{nfssext}'s \cs{osstyle} above.
+% These macros (and the block which follows) all require merging Berry names but not unmerging.
+% \begin{macrocode}
+\DeclareRobustCommand{\pstyle}{%% anniffiniedig proportional figures
+ \not@math@alphabet\pstyle\relax
+ \exfs@merge@families{2}}
+\DeclareRobustCommand{\ostyle}{%% anniffiniedig oldstyle figures (cf. original osstyle above)
+ \not@math@alphabet\ostyle\relax
+ \exfs@merge@families{j}}
+% \end{macrocode}
+% Combined command for proportional oldstyle
+% \begin{macrocode}
+\DeclareRobustCommand{\postyle}{%% anniffiniedig
+ \not@math@alphabet\postyle\relax
+ \exfs@merge@families{2j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tistyle,\ltstyle,\ofstyle,\altstyle,\regstyle,\embossstyle,\ornamentalstyle,\swashstyle,\shstyle,\qtstyle}
+% \changes{2010-07-17}{2015/06/19}{Improve \cs{ofstyle}.}
+% These macros again require merging, but not unmerging, names.
+% \begin{macrocode}
+\DeclareRobustCommand{\tistyle}{%% anniffiniedig titling/display
+ \not@math@alphabet\tistyle\relax
+ \exfs@merge@families{d}}
+% \end{macrocode}
+% Note that this command is for use when the light version is a separate family rather than a weight variant (e.g.\ when you've got light, light bold etc.\ as well as regular weights)
+% \begin{macrocode}
+\DeclareRobustCommand{\ltstyle}{%% anniffiniedig
+ \not@math@alphabet\ltstyle\relax
+ \exfs@merge@families{l}}
+% \end{macrocode}
+% Let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
+% \begin{macrocode}
+\DeclareRobustCommand{\ofstyle}{%% anniffiniedig
+ \not@math@alphabet\ofstyle\relax
+ \exfs@merge@families{l}}
+\DeclareRobustCommand{\altstyle}{%% anniffiniedig alternative style
+ \not@math@alphabet\altstyle\relax
+ \exfs@merge@families{a}}
+\DeclareRobustCommand{\regstyle}{%% anniffiniedig 'regular' style
+ \not@math@alphabet\regstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
+\DeclareRobustCommand{\embossstyle}{%% anniffiniedig
+ \not@math@alphabet\embossstyle\relax
+ \exfs@merge@families{e}}
+\DeclareRobustCommand{\ornamentalstyle}{%% anniffiniedig intended primarily for decorative initial fonts etc.
+ \not@math@alphabet\ornamentalstyle\relax
+ \exfs@merge@families{p}}
+\DeclareRobustCommand{\qtstyle}{%% anniffiniedig quotation style (assumes sans)
+ \not@math@alphabet\qtstyle\relax
+ \sffamily
+ \exfs@merge@families{q}}
+\DeclareRobustCommand{\shstyle}{%% anniffiniedig
+ \not@math@alphabet\shstyle\relax
+ \exfs@merge@families{h}}
+\DeclareRobustCommand{\swashstyle}{%% anniffiniedig an attempt to improve on \swstyle
+ \not@math@alphabet\swashstyle\relax
+ \exfs@merge@families{w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tmstyle,\tvstyle}
+% \changes{v6140}{2017-03-28}{Modify \cs{tmstyle} and \cs{tvstyle} to unmerge sans and other typewriter before merging appropriate variant.}
+% Macros to switch between monowidth and variable typewriter.
+% These need to unmerge before merging.
+% We need to unmerge sans as well as the other kind of typewriter.
+% \begin{macrocode}
+\DeclareRobustCommand{\tmstyle}{%% anniffiniedig monowidth typewriter
+ \not@math@alphabet\tmstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{v}%
+ \exfs@merge@families{t}}
+\DeclareRobustCommand{\tvstyle}{%% anniffiniedig variable width typewriter
+ \not@math@alphabet\tvstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{t}%
+ \exfs@merge@families{v}}
+% \end{macrocode}
+% \end{macro}
+% BEGIN added (cfr) - unmerge families
+%
+% \begin{macro}{\ifexfs@take,\exfs@unmergefamilies}
+% Define the macro needed to do the unmerges.
+% \begin{macrocode}
+\newif\ifexfs@take
+\newcommand*\exfs@unmerge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \let\exfs@tempq\@empty
+ \edef\exfs@tempg{}%
+ \exfs@taketrue
+% \end{macrocode}
+% Check whether there are variants - if not do nothing
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{}%
+ \else
+% \end{macrocode}
+% o/w go through the variants to find the one to delete
+% \begin{macrocode}
+ \loop
+% \end{macrocode}
+% Get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% See if the next variant is the thing we seek and, if so, eliminate it
+% \begin{macrocode}
+ \ifx\exfs@tempf\exfs@tempn
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \exfs@takefalse
+% \end{macrocode}
+% o/w save the next variant and move on if any variants remain
+% \begin{macrocode}
+ \else
+ \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \ifx\tempa\@empty% if there are no variants left, we're done
+ \edef\exfs@tempq{\exfs@tempg}%
+ \exfs@takefalse
+ \fi
+ \fi
+ \ifexfs@take % \fi yn \repeat
+ \repeat
+ \fi
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tstyle,\lstyle}
+% These are simple unmerges, with no merging necessary.
+% \begin{macrocode}
+\DeclareRobustCommand{\tstyle}{%% anniffiniedig tabular figures
+ \not@math@alphabet\tstyle\relax
+ \exfs@unmerge@families{2}}
+\DeclareRobustCommand{\lstyle}{%% anniffiniedig lining figures (cf. command above)
+ \not@math@alphabet\lstyle\relax
+ \exfs@unmerge@families{j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tlstyle,\plstyle,\tostyle}
+% Simple combinations for combined figure styles.
+%
+% Make a combined command for tabular lining
+% \begin{macrocode}
+\DeclareRobustCommand{\tlstyle}{%% anniffiniedig
+ \lstyle\tstyle}
+% \end{macrocode}
+% Proportional lining
+% \begin{macrocode}
+\DeclareRobustCommand{\plstyle}{%% anniffiniedig
+ \lstyle\pstyle}
+% \end{macrocode}
+% Tabular oldstyle {?!}
+% \begin{macrocode}
+\DeclareRobustCommand{\tostyle}{%% anniffiniedig
+ \ostyle\tstyle}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\sidefault,\sishape}
+% \texttt{si} is italic sc\footnote{%
+% That is, italic small-caps \emph{was} \texttt{si}.
+% These days, things are more complicated \dots.%
+% }.
+% We use the original definition for the default and then set up rules for font shape changes which try \texttt{scit} and \texttt{scsl} before falling back to \texttt{si}.
+% \begin{macrocode}
+\newcommand*{\sidefault}{si}% anniffiniedig
+% \end{macrocode}
+% Well i brofi \texttt{si} \& yna \texttt{scit} ond wn i ddim sut i wneud hon gyda'r stwff newydd \dots{}.
+% I was going to deprecate the \texttt{si} macros, but the truth is they are much nicer than having to combine macros for those cases when you really do want precisely italic small-caps.
+% They are also much more robust than somebody trying to force things with \cs{fontshape}\marg{si}\cs{selectfont}, so, on reflection, it seems better to retain the interface, even if the implementation isn't as straightforward as I'd like.
+% \begin{macrocode}
+\DeclareRobustCommand{\sishape}{%
+ \exfs@try@shapeshift{si}}
+% \end{macrocode}
+% \end{macro}
+% Kernel virtuals: ulc upper/lower case up upright.
+% \lpack{nfssext} virtuals? or \lpack{nfssext-cfr} virtuals? or?
+% It would be better to try \texttt{si}, \texttt{scit} and \texttt{scsl}, but that doesn't seem possible
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {n}{si}{scit}{scsl}% current; request (& trydedd); dewisiad cyntaf; ail ddewisiad
+\DeclareFontShapeChangeRule {it}{si}{scit}{scsl}
+\DeclareFontShapeChangeRule {sl}{si}{scit}{scsl}
+\DeclareFontShapeChangeRule {sc}{si}{scit}{scsl}
+% \end{macrocode}
+% Current shape is si => font support hasn't been updated
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {si}{sc} {si} {}
+\DeclareFontShapeChangeRule {si}{it} {si} {}
+\DeclareFontShapeChangeRule {si}{sl} {scsl} {si}
+\DeclareFontShapeChangeRule {si}{scit} {scit} {si}% rhag ofn?!
+\DeclareFontShapeChangeRule {si}{ulc} {it} {}
+\DeclareFontShapeChangeRule {si}{up}{sc}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {si}{u} {it} {}
+%^^A \DeclareFontShapeChangeRule {si}{su}{sc}{}
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+% The need for overwriting can be avoided by changing the \file{.fd} files, but \texttt{compat} supports packages I don't know about\footnote{%
+% Or haven't published?
+% I haven't actually tried it with those.%
+% } \dots
+% \changes{v1.0}{2024-09-16}{%
+% Conditionally override kernel rules affecting switches to upright/small-caps.italic etc.}
+% \begin{macrocode}
+\bool_if:NT \g__exfs_compat_bool
+{
+ \DeclareFontShapeChangeRule {it}{sc}{si}{scsl}
+ \DeclareFontShapeChangeRule{sl}{sc}{scsl}{si}
+% \end{macrocode}
+% Gofyn am italic etc\@. \textbar{} Ask about italic etc\@.
+% Sylwadau tebygol yma \dots{} \textbar{} Like comments here \dots{}
+% \begin{macrocode}
+ \DeclareFontShapeChangeRule {sc}{it} {si} {scsl}
+ \DeclareFontShapeChangeRule {sc}{sl} {scsl} {si}
+ \DeclareFontShapeChangeRule {scsl}{it} {si} {scsl}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+%^^A Ddylai'r rhai hwn ddim yn defnyddio \texttt{scit}/\texttt{scsl} yn lle \textt{si}?
+%^^A Pam \texttt{si}??
+%^^A \verb|^| Wel, maen nhw'n gwneud felly eisoes??!!
+% \changes{v1.0}{2024-09-16}{%
+% Unconditionally add a bunch of shape change rules for shapes unsupported by the kernel - I don't *think* these should be problematic: if the current or requested shape is unsupported by the kernel, surely it can't be problematic to support that shape?}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ui}{sc}{scit}{scsl}
+\DeclareFontShapeChangeRule {ui}{scsl}{scsl}{scit}
+\DeclareFontShapeChangeRule {ui}{it}{it}{ui}
+\DeclareFontShapeChangeRule {ui}{ri}{ri}{ui}
+\DeclareFontShapeChangeRule {ui}{up}{n}{}
+\DeclareFontShapeChangeRule {ui}{ulc}{ui}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {ui}{u}{n}{}
+%^^A \DeclareFontShapeChangeRule {ui}{su}{sc}{}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ri}{sc}{scit}{scsl}
+\DeclareFontShapeChangeRule {ri}{scsl}{scsl}{scit}
+\DeclareFontShapeChangeRule {ri}{it}{it}{ri}
+\DeclareFontShapeChangeRule {ri}{ui}{ui}{ri}
+% \end{macrocode}
+% Kernel virtuals: \texttt{ulc} upper/lower case up upright
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ri}{up}{n}{}
+\DeclareFontShapeChangeRule {ri}{ulc}{ri}{}
+% \end{macrocode}
+% nfssext virtuals? or nfssext-cfr virtuals? or?
+%^^A \DeclareFontShapeChangeRule {ri}{u}{n}{}
+%^^A \DeclareFontShapeChangeRule {ri}{su}{sc}{}
+%^^A \DeclareFontShapeChangeRule {sc}{ri}{scit}{scsl}
+%^^A \DeclareFontShapeChangeRule {scsl}{ri}{scsl}{scit}
+%^^A \DeclareFontShapeChangeRule {it}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {ui}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {n}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {sl}{ri}{ri}{it}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ol} {sc} {scol} {} % <- seiliedig ar nfssext-cfr-nfss.sty \scshape
+\DeclareFontShapeChangeRule {ol} {ulc} {ol} {}
+\DeclareFontShapeChangeRule {ol} {up} {ol} {}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {ol} {u} {ol} {}
+%^^A \DeclareFontShapeChangeRule {ol} {su} {scol} {}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {scol} {sc} {scol} {}
+\DeclareFontShapeChangeRule {scol} {ulc} {ol} {}
+\DeclareFontShapeChangeRule {scol} {up} {scol} {}
+% \end{macrocode}
+% \iffalse
+%^^A \DeclareFontShapeChangeRule {scol} {u} {scol} {}
+%^^A \DeclareFontShapeChangeRule {scol} {su} {scol} {}
+%^^A \DeclareFontShapeChangeRule {sc} {sc} {sc} {} % <- ??
+% \fi
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {u}{sc}{su}{} % <- seiliedig ar nfssext-cfr-nfss.sty \scshape
+\DeclareFontShapeChangeRule {su}{ulc}{u}{}
+\DeclareFontShapeChangeRule {sc}{u}{su}{}
+\DeclareFontShapeChangeRule {su}{u}{su}{}
+\DeclareFontShapeChangeRule {su}{sc}{su}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {u} {ulc} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {u} {up} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {sc} {su} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {ulc} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {up} {u} {} % <- ??
+% BEGIN added (cfr)
+%
+% cfr: is this how outline shapes should be handled?
+% \begin{macro}{\oldefault,\olshape,\scoldefault,\scolshape}
+% Outline
+% \begin{macrocode}
+\newcommand*{\oldefault}{ol}% anniffiniedig
+\DeclareRobustCommand{\olshape}{%% anniffiniedig
+ \exfs@try@shapeshift{ol}}
+\newcommand*{\scoldefault}{scol}% anniffiniedig
+\DeclareRobustCommand{\scolshape}{%% anniffiniedig
+ \exfs@try@shapeshift{scol}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\udefault,\ushape,\scudefault,\scushape}
+% Underlined??
+%^^A\DeclareRobustCommand{\olshape}{%
+%^^A \not@math@alphabet\olshape\relax
+%^^A \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
+% Fudge <- ??
+% \begin{macrocode}
+\newcommand*{\udefault}{u}% anniffiniedig
+\DeclareRobustCommand{\ushape}{%% anniffiniedig
+ \exfs@try@shapeshift{u}}
+\newcommand*{\scudefault}{su}% anniffiniedig
+\DeclareRobustCommand{\scushape}{%% anniffiniedig
+ \exfs@try@shapeshift{scu}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\uidefault,\uishape,\ridefault,\rishape}
+% Upright and reverse italic
+% \begin{macrocode}
+\newcommand*{\uidefault}{ui}% anniffiniedig
+\DeclareRobustCommand{\uishape}{% anniffiniedig
+ \exfs@try@shapeshift{ui}}
+% \end{macrocode}
+% Can i do this for reverse italic?
+% \begin{macrocode}
+\newcommand*{\ridefault}{ri}% anniffiniedig
+\DeclareRobustCommand{\rishape}{% anniffiniedig
+ \exfs@try@shapeshift{ri}}
+% \end{macrocode}
+% \end{macro}
+% END added
+%^^A \newcommand*{\exfs@merge@shape}[3]{%
+%^^A \edef\exfs@tempa{#1}%
+%^^A \edef\exfs@tempb{#2}%
+%^^A \ifx\f@shape\exfs@tempb
+%^^A \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
+%^^A \else
+%^^A \edef\exfs@tempa{#3}%
+%^^A \fi
+%^^A \fi
+%^^A \fontshape{\exfs@tempa}\selectfont}
+% BEGIN added (cfr) - merge width changes into series
+%^^A \newcommand*{\exfs@font@width}{% ??
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@width{}
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps{b}
+%^^A \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A \else
+%^^A \ifx\exfs@temps{l}
+%^^A \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A \else
+%^^A \edef\exfs@width{\exfs@temppart}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \exfs@width
+%^^A }
+%
+% \begin{macro}{\exfs@merge@width}
+% Previously dependent on incorrect series names.
+% \changes{v1.0}{2024-09-16}{Do not depend on incorrect series names, which are no longer supported.}
+% \begin{macrocode}
+\newcommand*{\exfs@merge@width}[1]{%
+% \end{macrocode}
+%^^A \edef\exfs@temph{#1}%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\tempb{b}%
+%^^A \def\templ{l}%
+% cfr-added
+%
+% Dibynnodd y côd gwreiddiol ar *mc* etc. \& r'odd hynny'n anghywir
+%
+% Instead of merging or unmerging cyclically, which means keeping track of everything, we split the current series (which requires some juggling, but hopefully less) and use the results.
+% \begin{macrocode}
+ \exfs@series@splitter{\f@series}%
+ \edef\exfs@temph{#1}%
+ \if\exfs@temph m\ifx\exfs@weight\@empty\else\let\exfs@temph\@empty\fi\fi
+ \if\exfs@weight m\ifx\exfs@temph\@empty\else\let\exfs@weight\@empty\fi\fi
+ \edef\exfs@series{\exfs@weight\exfs@temph}%
+% \end{macrocode}
+% end cfr-added
+%^^A \ifx\exfs@tempf\tempm\edef\exfs@tempf{}\fi %
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+%^^A \else
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+%^^A \else
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \edef\tempy{\exfs@series}\show\tempy
+% \begin{macrocode}
+ \exfs@info{Trying \exfs@series}%
+ \exfs@try@series{\exfs@series}}
+% \end{macrocode}
+% \end{macro}
+%^^A \fontseries\exfs@series\selectfont}
+%^^A \newcommand*{\exfs@unmerge@width}{%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\tempb{b}%
+%^^A \def\templ{l}%
+%^^A \def\tempe{}%
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempf}%
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+%^^A \else
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+%^^A \else
+%^^A \def\exfs@series{\expandafter\exfs@tempf}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \ifx\tempe\exfs@series\def\exfs@series{m}\fi % angen efaillai?
+%^^A \exfs@try@series{\exfs@series}}
+% \begin{macro}{\regwidth}
+% ‘Regular’ width requires conditionally adding ‘m’.
+% \begin{macrocode}
+\DeclareRobustCommand{\regwidth}{%% anniffiniedig
+ \not@math@alphabet\regwidth\relax
+% \end{macrocode}
+% cfr altered
+% \begin{macrocode}
+ \exfs@merge@width{m}}
+% \end{macrocode}
+%^^A \exfs@unmerge@width}
+% \end{macro}
+% \begin{macro}{\nwdefault,\nwwidth,\cddefault,\cdwidth,\ecdefault,\ecwidth,\ucdefault,\ucwidth}
+% Condensed widths.
+% \begin{macrocode}
+\newcommand*{\nwdefault}{c}% anniffiniedig
+\DeclareRobustCommand{\nwwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\nwwidth\relax
+ \exfs@merge@width{\nwdefault}}% neu \exfs@try@series ?
+\newcommand*{\cddefault}{c}% anniffiniedig
+\DeclareRobustCommand{\cdwidth}{% anniffiniedig ond rheolau
+ \not@math@alphabet\cdwidth\relax
+ \exfs@merge@width{\cddefault}}% neu \exfs@try@series ?
+\newcommand*{\ecdefault}{ec}% anniffiniedig
+\DeclareRobustCommand{\ecwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ecwidth\relax
+ \exfs@merge@width{\ecdefault}}% neu \exfs@try@series ?
+\newcommand*{\ucdefault}{uc}% anniffiniedig
+\DeclareRobustCommand{\ucwidth}{%% anniffiniedig
+ \not@math@alphabet\ucwidth\relax
+ \exfs@merge@width{\ucdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\etdefault,\etwidth,\epdefault,\epwidth,\exdefault,\exwidth,\uxdefault,\uxwidth}
+% Extended/expanded widths.
+% \begin{macrocode}
+\newcommand*{\etdefault}{x}% anniffiniedig
+\DeclareRobustCommand{\etwidth}{%% anniffiniedig
+ \not@math@alphabet\etwidth\relax
+ \exfs@merge@width{\etdefault}}% neu \exfs@try@series ?
+\newcommand*{\epdefault}{x}% anniffiniedig
+\DeclareRobustCommand{\epwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\epwidth\relax
+ \exfs@merge@width{\epdefault}}% neu \exfs@try@series ?
+\newcommand*{\exdefault}{ex}% anniffiniedig
+\DeclareRobustCommand{\exwidth}{%% anniffiniedig
+ \not@math@alphabet\exwidth\relax
+ \exfs@merge@width{\exdefault}}
+\newcommand*{\uxdefault}{ux}% anniffiniedig
+\DeclareRobustCommand{\uxwidth}{%% anniffiniedig
+ \not@math@alphabet\uxwidth\relax
+ \exfs@merge@width{\uxdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mdwdefault,\mdwidth}
+% Medium.
+% \begin{macrocode}
+\newcommand*\mdwdefault{m}
+\DeclareRobustCommand{\mdwidth}{%% anniffiniedig
+ \not@math@alphabet\mdwidth\relax
+ \exfs@merge@width{\mdwdefault}}
+% \end{macrocode}
+% \end{macro}
+% Posibl ond bydda i'n colli achosion yn siwr.
+% \textbar{} Possible but I'd lose cases for sure.
+% Hefyd hoffwn i ddim dyfalu pa rheolau y bydden nhw eu dewis.
+% \textbar{} Also I wouldn't like to guess which rules they'll choose.
+%^^A \DeclareFontSeriesChangeRule {bc}{ux}{bux}{bc}
+%^^A \DeclareFontSeriesChangeRule {bx}{ux}{bux}{bx}
+%^^A \DeclareFontSeriesChangeRule {b}{ux} {bux} {b}
+%^^A \DeclareFontSeriesChangeRule {c}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {ebc}{ux}{ebux}{}
+%^^A \DeclareFontSeriesChangeRule {ec}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {sc}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {ebx}{ux}{ebux}{ebx}
+%^^A \DeclareFontSeriesChangeRule {eb}{ux}{ebux}{}
+%^^A \DeclareFontSeriesChangeRule {elc}{ux}{elux}{}
+%^^A \DeclareFontSeriesChangeRule {elx}{ux}{elux}{elx}
+%^^A \DeclareFontSeriesChangeRule {el}{ux}{elux}{}
+%^^A \DeclareFontSeriesChangeRule {lc}{ux}{lux}{}
+%^^A \DeclareFontSeriesChangeRule {lx}{ux}{lux}{lx}
+%^^A \DeclareFontSeriesChangeRule {l}{ux} {lux} {l}
+%^^A \DeclareFontSeriesChangeRule {m}{ux} {ux} {m}
+%^^A \DeclareFontSeriesChangeRule {sbc}{ux}{sbux}{}
+%^^A \DeclareFontSeriesChangeRule {sbx}{ux}{sbux}{sbx}
+%^^A \DeclareFontSeriesChangeRule {sb}{ux} {sbux} {}
+%^^A \DeclareFontSeriesChangeRule {slc}{ux}{slux}{}
+%^^A \DeclareFontSeriesChangeRule {sl}{ux}{slux}{}
+%^^A \DeclareFontSeriesChangeRule {ubc}{ux}{ubux}{}
+%^^A \DeclareFontSeriesChangeRule {ubx}{ux}{ubux}{ubx}
+%^^A \DeclareFontSeriesChangeRule {ub}{ux}{ubux}{}
+%^^A \DeclareFontSeriesChangeRule {ulc}{ux}{ulux}{}
+%^^A \DeclareFontSeriesChangeRule {ulx}{ux}{ulux}{ulx}
+%^^A \DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
+%^^A \DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
+%^^A \DeclareFontSeriesChangeRule {ux}{m?}{ux}{}
+%^^A \DeclareFontSeriesChangeRule {ux}{?m}{m}{}
+%
+% BEGIN added (cfr) merge weight changes into series
+%
+% \begin{macro}{\exfs@merge@weight}
+% The pay off for setting up series splitting is that we can reuse the method here and, as in the case of width, the definition is greatly simplified\footnote{%
+% At least if you don't look at the splitter code.}.
+% \begin{macrocode}
+\newcommand*{\exfs@merge@weight}[1]{%
+ \exfs@series@splitter{\f@series}%
+% \end{macrocode}
+% Save current series so we can test for change
+% \begin{macrocode}
+ \let\exfs@tempg\f@series
+ \def\exfs@temph{#1}%
+ \if\exfs@temph m\relax
+ \ifx\exfs@width\@empty\relax
+ \else
+ \let\exfs@temph\@empty
+ \fi
+ \fi
+ \edef\exfs@series{\exfs@temph\exfs@width}%
+ \ifx\exfs@temph\exfs@series
+ \exfs@info{Trying \exfs@series}%
+ \exfs@try@series{\exfs@series}%
+ \else
+ \exfs@info{Trying \exfs@series, favouring \exfs@weight}%
+ \exfs@try@series[\exfs@weight]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%^^A Meddwl bod y côd hwn yn dibynnu ar y problem 'm' eto
+%^^A Ond alla i ddim jest ychwanegu un
+%^^A \edef\exfs@tempg{#1}%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\templ{l}%
+%^^A \def\tempb{b}%
+%^^A Case when there's no second part, so the single character must be the weight and should be replaced
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempg}%
+%^^A %:case when there's a second part
+%^^A \else
+%^^A %:get first character of second part
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A %:is the first character b? if so, it is part of the weight and should be replaced
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+%^^A \else
+%^^A %:is the first character l? if so, it is part of the weight and should be replaced
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+%^^A \else
+%^^A %:o/w the first character is part of the width and should be retained
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A %\fontseries\exfs@series\selectfont}
+%^^A \ifx\exfs@tempg\exfs@series
+%^^A \exfs@try@series{\exfs@series}%
+%^^A \else
+%^^A \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+%^^A \fi}
+% \begin{macro}{\mbdefault,\mbweight,\bddefault,\bfweight,\bdweight}
+% Ref.: \file{sources2e.pdf} and/or stripped code in \path{base}.
+%
+% The annotation ‘anniffiniedig’ indicates the macro is \emph{not} defined by the kernel as of 2024.
+% The addition ‘ond rheolau’ means there are nonetheless relevant rules.
+% The comment ‘dim byd i'w gael eu wneud yma’ indicates that defining the default is now sufficient and no additional font switch or text command is required.
+% \begin{macrocode}
+\newcommand*{\mbdefault}{sb}% dim byd i'w gael ei wneud yma
+\DeclareRobustCommand{\mbweight}{%% anniffiniedig
+ \not@math@alphabet\mbweight\relax
+ \exfs@merge@weight{\mbdefault}}
+\newcommand*{\bddefault}{b}% dim byd i'w gael ei wneud yma
+\DeclareRobustCommand{\bfweight}{%% anniffiniedig
+ \not@math@alphabet\bfweight\relax
+ \exfs@merge@weight{\bddefault}}
+\DeclareRobustCommand{\bdweight}{%% anniffiniedig
+ \not@math@alphabet\bdweight\relax
+ \exfs@merge@weight{\bddefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mwdefault,\mdweight}
+% Regular, medium, default are all irregular, exceptional, fraught.
+% \begin{macrocode}
+\newcommand*\mwdefault{m}
+\DeclareRobustCommand{\mdweight}{%% anniffiniedig
+ \not@math@alphabet\mdweight\relax
+ \exfs@merge@weight{\mwdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbdefault,\dbweight,\sbdefault,\sbweight,\ebdefault,\ebweight,\ubdefault,\ubweight}
+% \changes{v1.0}{2024-09-16}{%
+% Make \cs{mbdefault} sb (duplicating \cs{sbdefault}) as I can't come up with anything better.}
+% Heavy weights.
+% \begin{macrocode}
+\newcommand*{\dbdefault}{db}% anniffiniedig
+\DeclareRobustCommand{\dbweight}{%% anniffiniedig
+ \not@math@alphabet\dbweight\relax
+ \exfs@merge@weight{\dbdefault}}
+\newcommand*{\sbdefault}{sb}% anniffiniedig
+\DeclareRobustCommand{\sbweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\sbweight\relax
+ \exfs@merge@weight{\sbdefault}}% neu \exfs@try@series ?
+\newcommand*{\ebdefault}{eb}% anniffiniedig
+\DeclareRobustCommand{\ebweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ebweight\relax
+ \exfs@merge@weight{\ebdefault}}% neu \exfs@try@series ?
+\newcommand*{\ubdefault}{ub}% anniffiniedig
+\DeclareRobustCommand{\ubweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ubweight\relax
+ \exfs@merge@weight{\ubdefault}}% neu \exfs@try@series ?
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lgdefault,\lgweight,\eldefault,\elweight,\uldefault,\ulweight}
+% Light weights.
+% \begin{macrocode}
+\newcommand*{\lgdefault}{l}% anniffiniedig
+% \end{macrocode}
+% Note - use this if light is a variant weight, rather than a separate family
+% \begin{macrocode}
+\DeclareRobustCommand{\lgweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\lgweight\relax
+ \exfs@merge@weight{\lgdefault}}% neu \exfs@try@series ?
+\newcommand*{\eldefault}{el}% anniffiniedig
+\DeclareRobustCommand{\elweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\elweight\relax
+ \exfs@merge@weight{\eldefault}}% neu \exfs@try@series ?
+\newcommand*{\uldefault}{ul}% anniffiniedig
+\DeclareRobustCommand{\ulweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ulweight\relax
+ \exfs@merge@weight{\uldefault}}% neu \exfs@try@series ?
+% \end{macrocode}
+% \end{macro}
+% END added
+%^^A \DeclareRobustCommand{\itshape}{%
+%^^A \not@math@alphabet\itshape\mathit
+%^^A \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
+% Original
+%^^A\DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
+%^^A BEGIN cfr-altered: \scshape
+%^^A \DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \def\tempu{u}%
+%^^A \def\tempo{ol}%
+%^^A \ifx\f@shape\tempu
+%^^A \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
+%^^A \else
+%^^A \ifx\f@shape\tempo
+%^^A \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
+%^^A \else
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
+%^^A \fi
+%^^A \fi}
+%^^A END end-altered
+%^^A \DeclareRobustCommand{\upshape}{%
+%^^A \not@math@alphabet\upshape\relax
+%^^A \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
+% \begin{macro}{\dfshape}
+% Something simpler.
+% \begin{macrocode}
+\let\dfshape\normalshape
+% \end{macrocode}
+% \end{macro}
+%^^A \DeclareRobustCommand{\dfshape}{%
+%^^A \not@math@alphabet\dfshape\relax
+%^^A \fontshape\shapedefault\selectfont}
+% \begin{macro}{\swashapedefault}
+% cfr: be' i wneud am hwn?
+% \begin{macrocode}
+\newcommand*{\swshapedefault}{\itdefault}
+% \end{macrocode}
+% \end{macro}
+% \LaTeX{} ddim yn cynnwys \cs{swstyle} felly \dots?
+% \textbar{} \LaTeX{} doesn't include \cs{swstyle} so \dots?
+% \begin{macrocode}
+\ExplSyntaxOn
+\hook_gput_code:nnn {begindocument}{.}
+{% compatibility with original nfss \swshape
+% \end{macrocode}
+% Note this doesn't affect \cs{swashstyle} or \cs{textswash}
+% \begin{macro}{\swshape}
+% \changes{v1.0}{2024-09-16}{%
+% Conditionally overwrite \cs{swshape} to take account of default setting.
+% This is not for any package I know of on \ctan, but the original code used \cs{textsw}.%
+% }%
+% Conditional definition.
+% We overwrite the kernel's definition either way.
+% The \texttt{compat} option determines only with what we overwrite it.
+% \begin{macrocode}
+ \bool_if:NTF \g__exfs_compat_bool
+ {
+ \DeclareRobustCommand{\swshape}
+ {
+ \not@math@alphabet\swshape\relax
+ \swstyle\fontshape\swshapedefault\selectfont
+ }
+ \PackageWarning{nfssext-cfr}{
+ Overwriting ~ kernel ~ definition ~ of ~ \swshape \space (compat)
+ }
+ }{
+ \DeclareRobustCommand \swshape
+ {
+ \not@math@alphabet\swshape\relax
+ \exfs@swshape
+ }
+ \PackageWarning{nfssext-cfr}{
+ Overwriting ~ kernel ~ definition ~ of ~ \swshape \space (new)
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textin}
+% Conditional definition.
+% \begin{macrocode}
+ \@ifpackageloaded{hyperref}{
+ \hook_gput_code:nnn { cmd/textin/before } { . }
+ {
+ \exfs@info{
+ Note ~ that ~ '\protect\textin' ~ is ~ defined ~ by ~ hyperref.\MessageBreak
+ Use ~ for ~ inferior ~ digits ~ will ~ yield ~ an\MessageBreak
+ undefined ~ command ~ error ~ in ~ document ~ font ~ encodings.\MessageBreak
+ Use ~ '\protect\textinf' ~ to ~ access ~ inferior ~ digits
+ }
+ }
+ }{
+ \DeclareTextFontCommand{\textin}{\infstyle}
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macro}{\textln,\textos,\textinf,\textsu,\textsi,\textdf}
+% The annotation ‘anniffiniedig’ indicates the macro is \emph{not} defined by the kernel as of 2024.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textln}{\lnstyle}% anniffiniedig
+\DeclareTextFontCommand{\textos}{\osstyle}% anniffiniedig
+\DeclareTextFontCommand{\textinf}{\infstyle}% anniffiniedig
+\DeclareTextFontCommand{\textsu}{\sustyle}% anniffiniedig
+\DeclareTextFontCommand{\textsi}{\sishape}% anniffiniedig
+\DeclareTextFontCommand{\textdf}{\dfshape}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \cs{textsw} is already defined on newer kernels with essentially the same meaning as \lpack{nfssext} originally gave it, so we remove the definition here.
+% However, the redefinition of \cs{swshape} means \cs{textsw} is effectively redefined, so the kernel definition is only technically retained.
+%
+% BEGIN added (cfr)
+%
+% \begin{macro}{\textti,\textlt,\textof,\textalt,\textreg,\emboss,\textorn,\textqt,\textsh,\texttm,\texttv}
+% Families
+% \begin{macrocode}
+\DeclareTextFontCommand{\textti}{\tistyle}% anniffiniedig
+\DeclareTextFontCommand{\textlt}{\ltstyle}% anniffiniedig
+\DeclareTextFontCommand{\textof}{\ofstyle}% anniffiniedig % open-face (or outline or blank) style
+\DeclareTextFontCommand{\textalt}{\altstyle}% anniffiniedig % alternative style
+\DeclareTextFontCommand{\textreg}{\regstyle}% anniffiniedig % `regular' style
+\DeclareTextFontCommand{\emboss}{\embossstyle}% anniffiniedig
+\DeclareTextFontCommand{\textorn}{\ornamentalstyle}% anniffiniedig % intended primarily for decorative initials etc.
+\DeclareTextFontCommand{\textqt}{\qtstyle}% anniffiniedig
+\DeclareTextFontCommand{\textsh}{\shstyle}% anniffiniedig % shadowed style
+\DeclareTextFontCommand{\texttm}{\tmstyle}% anniffiniedig
+\DeclareTextFontCommand{\texttv}{\tvstyle}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textl,\texto,\textp,\textt,\textpl,\textpo,\texttl,\textto}
+% Families - figures
+% \begin{macrocode}
+\DeclareTextFontCommand{\textl}{\lstyle}% anniffiniedig
+\DeclareTextFontCommand{\texto}{\ostyle}% anniffiniedig
+\DeclareTextFontCommand{\textp}{\pstyle}% anniffiniedig
+\DeclareTextFontCommand{\textt}{\tstyle}% anniffiniedig
+\DeclareTextFontCommand{\textpl}{\plstyle}% anniffiniedig
+\DeclareTextFontCommand{\textpo}{\postyle}% anniffiniedig
+\DeclareTextFontCommand{\texttl}{\tlstyle}% anniffiniedig
+\DeclareTextFontCommand{\textto}{\tostyle}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textol,\textswash,\textu,\textscu,\textui,\textri}
+% Shapes
+% \begin{macrocode}
+\DeclareTextFontCommand{\textol}{\olshape}% anniffiniedig % outline
+\DeclareTextFontCommand{\textswash}{\swashstyle}% anniffiniedig % an attempt to improve on \textsw
+\DeclareTextFontCommand{\textu}{\ushape}% anniffiniedig % be' yw hwn?! <_ underlined?
+\DeclareTextFontCommand{\textscu}{\scushape}% anniffiniedig
+\DeclareTextFontCommand{\textui}{\uishape}% anniffiniedig % upright italic
+\DeclareTextFontCommand{\textri}{\rishape}% anniffiniedig % reverse italic
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textnw,\textcd,\textec,\textuc,\textet,\textep,\textex,\textux,\textrw}
+% Widths
+% \begin{macrocode}
+\DeclareTextFontCommand{\textnw}{\nwwidth}% anniffiniedig
+\DeclareTextFontCommand{\textcd}{\cdwidth}% anniffiniedig
+\DeclareTextFontCommand{\textec}{\ecwidth}% anniffiniedig
+\DeclareTextFontCommand{\textuc}{\ucwidth}% anniffiniedig
+\DeclareTextFontCommand{\textet}{\etwidth}% anniffiniedig
+\DeclareTextFontCommand{\textep}{\epwidth}% anniffiniedig
+\DeclareTextFontCommand{\textex}{\exwidth}% anniffiniedig
+\DeclareTextFontCommand{\textux}{\uxwidth}% anniffiniedig
+\DeclareTextFontCommand{\textrw}{\regwidth}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textmb,\textdb,\textbd,\textsb,\texteb,\textub,\textlg,\textel,\textul}
+% Weights
+% \begin{macrocode}
+\DeclareTextFontCommand{\textmb}{\mbweight}% anniffiniedig
+\DeclareTextFontCommand{\textdb}{\dbweight}% anniffiniedig
+\DeclareTextFontCommand{\textbd}{\bdweight}% new?
+\DeclareTextFontCommand{\textsb}{\sbweight}% anniffiniedig
+\DeclareTextFontCommand{\texteb}{\ebweight}% anniffiniedig
+\DeclareTextFontCommand{\textub}{\ubweight}% anniffiniedig
+\DeclareTextFontCommand{\textlg}{\lgweight}% anniffiniedig
+\DeclareTextFontCommand{\textel}{\elweight}% anniffiniedig
+\DeclareTextFontCommand{\textul}{\ulweight}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% BEGIN patch font initialisation for Latin Modern
+%
+% Stop redefinition of bold if using Latin Modern as \texttt{clm}.
+% Kernel default only blocks redefinition for \texttt{lm}.
+% Don't rely on \lpack{cfr-lm} internal macros as they may change without notice \dots{}.
+% We don't need Dunhill, though, because it doesn't have bold of any kind.
+% \lpack{cfr-lm} doesn't support using Quotation Sans as default or using e.g.~serif as default sans, but there's nothing to stop somebody doing that so follow the kernel here even though it makes for a massive list\footnote{%
+% I know this will go off the page when typeset, but I have no idea whether I can safely insert line breaks into the patch and I shall scream if I break this again. (Pun fully intended.)%
+% }.
+% \begin{macrocode}
+\patchcmd{\init@series@setup}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for serif.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for serif.%
+ }%
+}
+\patchcmd{\init@series@setup}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for sans.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for sans.%
+ }%
+}
+\patchcmd{\init@series@setup}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for typewriter.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for typewriter.%
+ }%
+}
+% \end{macrocode}
+% END
+% \end{package}
+% \iffalse
+%</sty-nnfss>
+% \fi
+%
+% \subsection{NFSS}\label{subsec:sty-nfss}
+%
+% This code was written for the \emph{old} New Font Selection Scheme (\nfss).
+% It should not generally be loaded on current or recent kernels.
+%
+% \iffalse
+%<*sty-nfss>
+% \fi
+% \begin{package}{nfssext-cfr-nfss}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase-nfss.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions; for old NFSS]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+%:cfr-added: use ifthen
+% \begin{macrocode}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%:end-added
+% \begin{macro}{\exfs@tempa,\exfs@tempb,\exfs@tempf}
+% \begin{macrocode}
+\newcommand*{\exfs@tempa}{}
+\newcommand*{\exfs@tempb}{}
+% \end{macrocode}
+%:cfr-added: extra variable (\cs{exfs@tempf})
+% \begin{macrocode}
+\newcommand*{\exfs@tempf}{}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\exfs@try@family}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@try@family}[2][]{%
+ \let\exfs@tempa\relax
+ \begingroup
+ \fontfamily{#2}\try@load@fontshape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \PackageInfo{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Font family '\f@encoding/#1' tried instead}%
+ \exfs@try@family{#1}%
+ \fi
+ \else
+ \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@try@series}
+%:cfr-added \cs{exfs@try@series}
+% \begin{macrocode}
+\newcommand*{\exfs@try@series}[2][]{%
+ \let\exfs@tempa\relax
+ \begingroup
+ \fontseries{#2}\try@load@fontshape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \PackageInfo{nfssext-cfr}{%
+ Font family '\f@encoding/\f@family/#2' not available\MessageBreak
+ Font family '\f@encoding/\f@family/#1' tried instead}%
+ \exfs@try@series{#1}%
+ \fi
+ \else
+ \gdef\exfs@tempa{\fontseries{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa
+}
+% \end{macrocode}
+%:end-added
+% \end{macro}
+% \begin{macro}{\exfs@get@base,\exfs@get@variants,\exfs@next,\exfs@shift,\exfs@first,\exfs@part,\exfs@second}
+% \mbox{ }
+% \begin{macrocode}
+\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
+% \end{macrocode}
+%:cfr-added:more \cs{exfs@} commands (get@variants, next, shift, first, part, second)
+% \begin{macrocode}
+\def\exfs@get@variants#1#2#3#4\@nil{#4}
+\def\exfs@next#1#2\@nil{#1}
+\def\exfs@shift#1#2\@nil{#2}
+\def\exfs@first#1#2\@nil{#1}
+\def\exfs@part#1#2\@nil{#2}
+\def\exfs@second#1#2#3\@nil{#2}
+% \end{macrocode}
+%:end-added
+% \end{macro}
+% \begin{macro}{\lnstyle,\osstyle,\infstyle,\instyle,\sustyle,\swstyle}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\lnstyle}{%
+ \not@math@alphabet\lnstyle\relax
+ \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
+ {\expandafter\exfs@get@base\f@family\@nil x}%
+}
+\DeclareRobustCommand{\osstyle}{%
+ \not@math@alphabet\osstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
+\DeclareRobustCommand{\instyle}{%
+ \not@math@alphabet\instyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
+\DeclareRobustCommand{\sustyle}{%
+ \not@math@alphabet\sustyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
+\DeclareRobustCommand{\swstyle}{%
+ \not@math@alphabet\swstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@families}
+%:cfr-added - merge families
+% \begin{macrocode}
+\newcommand*\exfs@merge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \edef\tempo{2j}%
+ \let\exfs@tempq\@empty
+ \def\exfs@tempg{}%
+ \newif\ifadded
+ \addedfalse
+% \end{macrocode}
+% check whether there are variants - if not just use the requested addition
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{\exfs@tempf}%
+ \addedtrue
+ \else
+ \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
+ \ifx\tempo\exfs@tempf
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% check whether there are variants left - if not set the ‘next variant’ to empty
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \let\exfs@tempn\@empty
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+ \fi
+ \edef\tempt{2}%
+ \edef\tempj{j}%
+% \end{macrocode}
+% if the next variant is 2 or j, ignore it
+% \begin{macrocode}
+ \ifx\exfs@tempn\tempt
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \ifx\exfs@tempn\tempj % if the next variant is j, ignore it
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+% \end{macrocode}
+% see if the current value is either 2 or j and add it if so and if needed
+% \begin{macrocode}
+ \ifx\tempt\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \else
+ \ifx\tempj\xx % if the current value is j, we're done
+ \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
+ \let\tempa\@empty
+ \addedtrue
+ \else
+% \end{macrocode}
+% o/w see if the current value matches the next variant
+% \begin{macrocode}
+ \ifx\xx\exfs@tempn
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \fi
+ \fi
+ }%
+ \else
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% check whether there are variants left and, if not, add the addition if needed
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \ifadded
+ \else
+ \edef\exfs@tempq{\exfs@tempg\exfs@tempf}%
+ \addedtrue
+ \fi
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% if the new token equals the next variant, combine whatever is saved in \cs{exfs@tempg} with whatever remains in \cs{tempa}
+% \begin{macrocode}
+ \ifx\exfs@tempn\exfs@tempf
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \addedtrue
+ \let\tempa\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the requested addition, add it in
+% \begin{macrocode}
+ \ifx\exfs@tempf\xx
+ \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
+ \addedtrue
+ \let\tempa\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the next variant, shift
+% \begin{macrocode}
+ \ifx\exfs@tempn\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+ \ifx\exfs@tempq\@empty
+ \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
+ \else
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pstyle,\ostyle,\postyle,\tistyle}
+% \begin{macrocode}
+\DeclareRobustCommand{\pstyle}{% proportional figures
+ \not@math@alphabet\pstyle\relax
+ \exfs@merge@families{2}}
+\DeclareRobustCommand{\tistyle}{% titling/display
+ \not@math@alphabet\tistyle\relax
+ \exfs@merge@families{d}}
+\DeclareRobustCommand{\ostyle}{% oldstyle figures (cf. original osstyle above)
+ \not@math@alphabet\ostyle\relax
+ \exfs@merge@families{j}}
+% \end{macrocode}
+% combined command for proportional oldstyle
+% \begin{macrocode}
+\DeclareRobustCommand{\postyle}{%
+ \not@math@alphabet\postyle\relax
+ \exfs@merge@families{2j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltstyle,\ofstyle,\altstyle,\regstyle,\embossstyle,\ornamentalstyle,\swashstyle,\shstyle,\qtstyle}
+%note that this command is for use when the light version is a separate family rather than a weight variant (e.g. when you've got light, light bold etc. as well as regular weights)
+% \begin{macrocode}
+\DeclareRobustCommand{\ltstyle}{%
+ \not@math@alphabet\ltstyle\relax
+ \exfs@merge@families{l}}
+% \end{macrocode}
+%let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
+% \begin{macrocode}
+\DeclareRobustCommand{\ofstyle}{%
+ \not@math@alphabet\ofstyle\relax
+ \exfs@merge@families{l}}
+\DeclareRobustCommand{\altstyle}{% alternative style
+ \not@math@alphabet\altstyle\relax
+ \exfs@merge@families{a}}
+\DeclareRobustCommand{\regstyle}{% ``regular'' style
+ \not@math@alphabet\regstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
+\DeclareRobustCommand{\embossstyle}{%
+ \not@math@alphabet\embossstyle\relax
+ \exfs@merge@families{e}}
+\DeclareRobustCommand{\ornamentalstyle}{% intended primarily for decorative initial fonts etc.
+ \not@math@alphabet\ornamentalstyle\relax
+ \exfs@merge@families{p}}
+\DeclareRobustCommand{\qtstyle}{% quotation style (assumes sans)
+ \not@math@alphabet\qtstyle\relax
+ \sffamily
+ \exfs@merge@families{q}}
+\DeclareRobustCommand{\shstyle}{%
+ \not@math@alphabet\shstyle\relax
+ \exfs@merge@families{h}}
+\DeclareRobustCommand{\swashstyle}{% an attempt to improve on \swstyle
+ \not@math@alphabet\swashstyle\relax
+ \exfs@merge@families{w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tmstyle,\tvstyle}
+% Macros to switch between monowidth and variable typewriter.
+% These need to unmerge before merging.
+% We need to unmerge sans as well as the other kind of typewriter.
+% \begin{macrocode}
+\DeclareRobustCommand{\tmstyle}{% monowidth typewriter
+ \not@math@alphabet\tmstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{v}%
+ \exfs@merge@families{t}}
+\DeclareRobustCommand{\tvstyle}{% variable width typewriter
+ \not@math@alphabet\tvstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{t}%
+ \exfs@merge@families{v}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@unmerge@families}
+%:cfr-added - unmerge families
+% \begin{macrocode}
+\newcounter{taken}%
+\newcommand*\exfs@unmerge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \let\exfs@tempq\@empty
+ \edef\exfs@tempg{}%
+ \setcounter{taken}{0}%
+% \end{macrocode}
+% check whether there are variants - if not do nothing
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{}%
+ \else
+% \end{macrocode}
+% o/w go through the variants to find the one to delete
+% \begin{macrocode}
+ \whiledo{\value{taken}<1}{%
+% \end{macrocode}
+% get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% see if the next variant is the thing we seek and, if so, eliminate it
+% \begin{macrocode}
+ \ifx\exfs@tempf\exfs@tempn
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \stepcounter{taken}%
+% \end{macrocode}
+% o/w save the next variant and move on if any variants remain
+% \begin{macrocode}
+ \else
+ \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \ifx\tempa\@empty% if there are no variants left, we're done
+ \edef\exfs@tempq{\exfs@tempg}%
+ \stepcounter{taken}%
+ \fi
+ \fi
+ }%
+ \fi
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tstyle,\lstyle}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\tstyle}{% tabular figures
+ \not@math@alphabet\tstyle\relax
+ \exfs@unmerge@families{2}}
+\DeclareRobustCommand{\lstyle}{% lining figures (cf. command above)
+ \not@math@alphabet\lstyle\relax
+ \exfs@unmerge@families{j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tlstyle,\plstyle,\tostyle}
+% make a combined command for tabular lining
+% \begin{macrocode}
+\DeclareRobustCommand{\tlstyle}{%
+ \lstyle\tstyle}
+% \end{macrocode}
+% proportional lining
+% \begin{macrocode}
+\DeclareRobustCommand{\plstyle}{%
+ \lstyle\pstyle}
+% \end{macrocode}
+% tabular oldstyle {?!}
+% \begin{macrocode}
+\DeclareRobustCommand{\tostyle}{%
+ \ostyle\tstyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sidefault,\sishape}
+%:end-added % si is italic sc
+% \begin{macrocode}
+\newcommand*{\sidefault}{si}
+\DeclareRobustCommand{\sishape}{%
+ \not@math@alphabet\sishape\relax
+ \fontshape\sidefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\oldefault,\olshape,\scoldefault,\scolshape}
+%:cfr-added - is this how outline shapes should be handled?
+% \begin{macrocode}
+\newcommand*{\oldefault}{ol}
+\DeclareRobustCommand{\olshape}{%
+ \not@math@alphabet\olshape\relax
+ \fontshape\oldefault\selectfont}
+\newcommand*{\scoldefault}{scol}
+\DeclareRobustCommand{\scolshape}{%
+ \not@math@alphabet\scolshape\relax
+ \fontshape\scoldefault\selectfont}
+% \end{macrocode}
+%^^A\DeclareRobustCommand{\olshape}{%
+%^^A \not@math@alphabet\olshape\relax
+%^^A \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
+% \end{macro}
+% \begin{macro}{\udefault,\ushape,\scudefault,\scushape}
+%:fudge
+% \begin{macrocode}
+\newcommand*{\udefault}{u}
+\DeclareRobustCommand{\ushape}{%
+ \not@math@alphabet\ushape\relax
+ \fontshape\udefault\selectfont}
+\newcommand*{\scudefault}{su}
+\DeclareRobustCommand{\scushape}{%
+ \not@math@alphabet\scushape\relax
+ \fontshape\scudefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\uidefault,\uishape,\ridefault,\rishape}
+%:upright italic
+% \begin{macrocode}
+\newcommand*{\uidefault}{ui}
+\DeclareRobustCommand{\uishape}{%
+ \not@math@alphabet\uishape\relax
+ \fontshape\uidefault\selectfont}
+% \end{macrocode}
+%:can i do this for reverse italic?
+% \begin{macrocode}
+\newcommand*{\ridefault}{ri}
+\DeclareRobustCommand{\rishape}{%
+ \not@math@alphabet\rishape\relax
+ \fontshape\ridefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\exfs@merge@shape}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@merge@shape}[3]{%
+ \edef\exfs@tempa{#1}%
+ \edef\exfs@tempb{#2}%
+ \ifx\f@shape\exfs@tempb
+ \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
+ \else
+ \edef\exfs@tempa{#3}%
+ \fi
+ \fi
+ \fontshape{\exfs@tempa}\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@font@width}
+%:cfr-added - merge width changes into series
+% \begin{macrocode}
+\newcommand*{\exfs@font@width}{%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@width{}
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps{b}
+ \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+ \else
+ \ifx\exfs@temps{l}
+ \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+ \else
+ \edef\exfs@width{\exfs@temppart}%
+ \fi
+ \fi
+ \fi
+ \exfs@width
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@width}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@merge@width}[1]{%
+ \edef\exfs@temph{#1}%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\tempb{b}%
+ \def\templ{l}%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+ \else
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+ \else
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+ \fi
+ \fi
+ \fi
+ \exfs@try@series{\exfs@series}%
+}
+%^^A \fontseries\exfs@series\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@unmerge@width}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@unmerge@width}{%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\tempb{b}%
+ \def\templ{l}%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempf}%
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+ \else
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+ \else
+ \def\exfs@series{\expandafter\exfs@tempf}%
+ \fi
+ \fi
+ \fi
+ \exfs@try@series{\exfs@series}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\regwidth}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\regwidth}{%
+ \not@math@alphabet\regwidth\relax
+ \exfs@unmerge@width}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nwdefault,\nwwidth,\cddefault,\cdwidth,\ecdefault,\ecwidth,\ucdefault,\ucwidth}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\nwdefault}{c}
+\DeclareRobustCommand{\nwwidth}{%
+ \not@math@alphabet\nwwidth\relax
+ \exfs@merge@width{\nwdefault}}
+\newcommand*{\cddefault}{c}
+\DeclareRobustCommand{\cdwidth}{%
+ \not@math@alphabet\cdwidth\relax
+ \exfs@merge@width{\cddefault}}
+\newcommand*{\ecdefault}{ec}
+\DeclareRobustCommand{\ecwidth}{%
+ \not@math@alphabet\ecwidth\relax
+ \exfs@merge@width{\ecdefault}}
+\newcommand*{\ucdefault}{uc}
+\DeclareRobustCommand{\ucwidth}{%
+ \not@math@alphabet\ucwidth\relax
+ \exfs@merge@width{\ucdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\etdefault,\etwidth,\epdefault,\epwidth,\exdefault,\exwidth,\uxdefault,\uxwidth}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\etdefault}{x}
+\DeclareRobustCommand{\etwidth}{%
+ \not@math@alphabet\etwidth\relax
+ \exfs@merge@width{\etdefault}}
+\newcommand*{\epdefault}{x}
+\DeclareRobustCommand{\epwidth}{%
+ \not@math@alphabet\epwidth\relax
+ \exfs@merge@width{\epdefault}}
+\newcommand*{\exdefault}{ex}
+\DeclareRobustCommand{\exwidth}{%
+ \not@math@alphabet\exwidth\relax
+ \exfs@merge@width{\exdefault}}
+\newcommand*{\uxdefault}{ux}
+\DeclareRobustCommand{\uxwidth}{%
+ \not@math@alphabet\uxwidth\relax
+ \exfs@merge@width{\uxdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@weight}
+%:cfr-added merge weight changes into series
+% \begin{macrocode}
+\newcommand*{\exfs@merge@weight}[1]{%
+ \edef\exfs@tempg{#1}%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\templ{l}%
+ \def\tempb{b}%
+% \end{macrocode}
+% :case when there's no second part, so the single character must be the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempg}%
+% \end{macrocode}
+% :case when there's a second part
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% :get first character of second part
+% \begin{macrocode}
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
+% \end{macrocode}
+% :is the first character b? if so, it is part of the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+ \else
+% \end{macrocode}
+% :is the first character l? if so, it is part of the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+ \else
+% \end{macrocode}
+% :o/w the first character is part of the width and should be retained
+% \begin{macrocode}
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+%^^A \fontseries\exfs@series\selectfont}
+% \begin{macrocode}
+ \ifx\exfs@tempg\exfs@series
+ \exfs@try@series{\exfs@series}%
+ \else
+ \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mbdefault,\mbweight,\bddefault,\bfweight,\bdweight}
+% \begin{macrocode}
+\newcommand*{\mbdefault}{mb}
+\DeclareRobustCommand{\mbweight}{%
+ \not@math@alphabet\mbweight\relax
+ \exfs@merge@weight{\mbdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbdefault,\dbweight,\sbdefault,\sbweight,\ebdefault,\ebweight,\ubdefault,\ubweight}
+% Heavy weights.
+% \begin{macrocode}
+\newcommand*{\dbdefault}{db}
+\DeclareRobustCommand{\dbweight}{%
+ \not@math@alphabet\dbweight\relax
+ \exfs@merge@weight{\dbdefault}}
+\newcommand*{\sbdefault}{sb}
+\DeclareRobustCommand{\sbweight}{%
+ \not@math@alphabet\sbweight\relax
+ \exfs@merge@weight{\sbdefault}}
+\newcommand*{\ebdefault}{eb}
+\DeclareRobustCommand{\ebweight}{%
+ \not@math@alphabet\ebweight\relax
+ \exfs@merge@weight{\ebdefault}}
+\newcommand*{\ubdefault}{ub}
+\DeclareRobustCommand{\ubweight}{%
+ \not@math@alphabet\ubweight\relax
+ \exfs@merge@weight{\ubdefault}}
+\newcommand*{\lgdefault}{l}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lgdefault,\lgweight,\eldefault,\elweight,\uldefault,\ulweight}
+%note - use this if light is a variant weight, rather than a separate family
+% \begin{macrocode}
+\DeclareRobustCommand{\lgweight}{%
+ \not@math@alphabet\lgweight\relax
+ \exfs@merge@weight{\lgdefault}}
+\newcommand*{\eldefault}{el}
+\DeclareRobustCommand{\elweight}{%
+ \not@math@alphabet\elweight\relax
+ \exfs@merge@weight{\eldefault}}
+\newcommand*{\uldefault}{ul}
+\DeclareRobustCommand{\ulweight}{%
+ \not@math@alphabet\ulweight\relax
+ \exfs@merge@weight{\uldefault}}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\itshape,\scshape,\upshape,\dfshape}
+% redefinition
+% \begin{macrocode}
+\DeclareRobustCommand{\itshape}{%
+ \not@math@alphabet\itshape\mathit
+ \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
+% \end{macrocode}
+% original
+%^^A\DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
+%:cfr-altered: \cs{scshape}
+% \begin{macrocode}
+\DeclareRobustCommand{\scshape}{%
+ \not@math@alphabet\scshape\relax
+ \def\tempu{u}%
+ \def\tempo{ol}%
+ \ifx\f@shape\tempu
+ \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
+ \else
+ \ifx\f@shape\tempo
+ \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
+ \else
+ \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%:end-altered
+% \begin{macrocode}
+\DeclareRobustCommand{\upshape}{%
+ \not@math@alphabet\upshape\relax
+ \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
+\DeclareRobustCommand{\dfshape}{%
+ \not@math@alphabet\dfshape\relax
+ \fontshape\shapedefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\swashapedefault,\swshape}
+% \begin{macrocode}
+\newcommand*{\swshapedefault}{\itdefault}
+\DeclareRobustCommand{\swshape}{%
+ \not@math@alphabet\swshape\relax
+ \swstyle\fontshape\swshapedefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textln,\textos,\textin,\textsu,\textsi,\textdf,\textsw}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareTextFontCommand{\textln}{\lnstyle}
+\DeclareTextFontCommand{\textos}{\osstyle}
+\DeclareTextFontCommand{\textin}{\instyle}
+\DeclareTextFontCommand{\textsu}{\sustyle}
+\DeclareTextFontCommand{\textsi}{\sishape}
+\DeclareTextFontCommand{\textdf}{\dfshape}
+\DeclareTextFontCommand{\textsw}{\swshape}
+% \end{macrocode}
+% \end{macro}
+%:cfr-added
+% \begin{macro}{\textti,\textlt,\textof,\textalt,\textreg,\emboss,\textorn,\textqt,\textsh,\texttm,\texttv}
+% Families
+% \begin{macrocode}
+\DeclareTextFontCommand{\textti}{\tistyle}
+\DeclareTextFontCommand{\textlt}{\ltstyle}
+\DeclareTextFontCommand{\textof}{\ofstyle} % open-face (or outline or blank) style
+\DeclareTextFontCommand{\textalt}{\altstyle} % alternative style
+\DeclareTextFontCommand{\textreg}{\regstyle} % ``regular'' style
+\DeclareTextFontCommand{\emboss}{\embossstyle}
+\DeclareTextFontCommand{\textorn}{\ornamentalstyle} % intended primarily for decorative initials etc.
+\DeclareTextFontCommand{\textqt}{\qtstyle}
+\DeclareTextFontCommand{\textsh}{\shstyle} % shadowed style
+\DeclareTextFontCommand{\texttm}{\tmstyle}
+\DeclareTextFontCommand{\texttv}{\tvstyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textl,\texto,\textp,\textt,\textpl,\textpo,\texttl,\textto}
+% Families - figures
+% \begin{macrocode}
+\DeclareTextFontCommand{\textl}{\lstyle}
+\DeclareTextFontCommand{\texto}{\ostyle}
+\DeclareTextFontCommand{\textp}{\pstyle}
+\DeclareTextFontCommand{\textt}{\tstyle}
+\DeclareTextFontCommand{\textpl}{\plstyle}
+\DeclareTextFontCommand{\textpo}{\postyle}
+\DeclareTextFontCommand{\texttl}{\tlstyle}
+\DeclareTextFontCommand{\textto}{\tostyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textol,\textswash,\textu,\textscu,\textui,\textri}
+% Shapes
+% \begin{macrocode}
+\DeclareTextFontCommand{\textol}{\olshape} % outline
+\DeclareTextFontCommand{\textswash}{\swashstyle} % an attempt to improve on \textsw
+\DeclareTextFontCommand{\textu}{\ushape}
+\DeclareTextFontCommand{\textscu}{\scushape}
+\DeclareTextFontCommand{\textui}{\uishape} % upright italic
+\DeclareTextFontCommand{\textri}{\rishape} % reverse italic
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textnw,\textcd,\textec,\textuc,\textet,\textep,\textex,\textux,\textrw}
+% Widths
+% \begin{macrocode}
+\DeclareTextFontCommand{\textnw}{\nwwidth}
+\DeclareTextFontCommand{\textcd}{\cdwidth}
+\DeclareTextFontCommand{\textec}{\ecwidth}
+\DeclareTextFontCommand{\textuc}{\ucwidth}
+\DeclareTextFontCommand{\textet}{\etwidth}
+\DeclareTextFontCommand{\textep}{\epwidth}
+\DeclareTextFontCommand{\textex}{\exwidth}
+\DeclareTextFontCommand{\textux}{\uxwidth}
+\DeclareTextFontCommand{\textrw}{\regwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textmb,\textdb,\textbd,\textsb,\texteb,\textub,\textlg,\textel,\textul}
+% Weights
+% \begin{macrocode}
+\DeclareTextFontCommand{\textmb}{\mbweight}
+\DeclareTextFontCommand{\textdb}{\dbweight}
+\DeclareTextFontCommand{\textsb}{\sbweight}
+\DeclareTextFontCommand{\texteb}{\ebweight}
+\DeclareTextFontCommand{\textub}{\ubweight}
+\DeclareTextFontCommand{\textlg}{\lgweight}
+\DeclareTextFontCommand{\textel}{\elweight}
+\DeclareTextFontCommand{\textul}{\ulweight}
+% \end{macrocode}
+% \end{macro}
+%end-added
+% \end{package}
+% \iffalse
+%</sty-nfss>
+% \fi
+%
+%
+%\Finale
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins
new file mode 100644
index 0000000000..bd6ac1448b
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins
@@ -0,0 +1,111 @@
+%% $Id: nfssext-cfr.ins 10335 2024-09-10 16:13:03Z cfrees $
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% nfssext-cfr.ins
+%% Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+%% Code from skeleton.ins Copyright (C) 2015-2024 Scott Pakin (see below).
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Clea F. Rees.
+%%
+%% This work consists of all files listed in manifest.txt.
+%%
+%% The file nfssext-cfr.ins is a derived work under the terms of the
+%% LPPL. It is based on version 2.4 of skeleton.ins which is part of
+%% dtxtut by Scott Pakin. A copy of dtxtut, including the
+%% unmodified version of skeleton.ins is available from
+%% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input docstrip.tex
+\keepsilent
+
+%% ???
+\usedir{tex/latex/nfssext-cfr}
+
+\declarepreamble\safonol
+Copyright (C) 2008-2024 Clea F. Rees.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This file may only be distributed together with a copy of the package
+nfssext-cfr. You may however distribute the package nfssext-cfr without
+such generated files.
+
+This work consists of all files listed in manifest.txt.
+\endpreamble
+
+\def\baseFileName{nfssext.sty}
+\def\basePkgName{The Font Installation Guide}
+\def\basePkgArk{fontinstallationguide}
+\def\basePkgAuthor{Philipp Lehman}
+% \def\preChanges{%
+% - One thing or another.}
+\def\targType{The file }
+\def\targPkg{nfssext-cfr}
+
+\declarepreamble\derpreamble
+Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+Code from \basePkgArk Copyright (C) 2002-2004 \basePkgAuthor (see below)
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+
+\targType \outFileName is a derived work under the terms of the LPPL.
+It is based on version 1.2 of \baseFileName which is supplied with
+\basePkgName by \basePkgAuthor. A copy of \basePkgName, including an
+unmodified version of \baseFileName is available from
+ https://tug.ctan.org/pkg/\basePkgArk.
+\baseFileName is part of the included archive figuide-examples.tar.gz
+which consists of examples and templates released under the LPPL.
+\baseFileName is included in the files for tutorials 3, 5 and 6.
+
+The main modifications made to this file are described in \targPkg.dtx.
+\endpreamble
+
+\askonceonly
+
+\usepreamble\safonol
+
+\generate{%
+ \usepreamble\derpreamble
+ \file{nfssext-cfr.sty}{\from{nfssext-cfr.dtx}{sty}}
+ \file{nfssext-cfr-nfss.sty}{\from{nfssext-cfr.dtx}{sty-nfss}}
+ \file{nfssext-cfr-nnfss.sty}{\from{nfssext-cfr.dtx}{sty-nnfss}}
+ % \file{??.tex}{\from{nfssext-cfr.dtx}{??}}
+ % \usepreamble\derpreamble
+ % \file{other.etx}{\from{nfssext-cfr.dtx}{other}}
+}
+
+
+\endbatchfile
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
index 42380dd224..a6020b4a66 100644
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
Binary files differ
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty
deleted file mode 100644
index 03d19d2e59..0000000000
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty
+++ /dev/null
@@ -1,641 +0,0 @@
-%% nfssext-cfr.sty
-%% Additions and changes are copyright 2017 Clea F. Rees
-%% Code from nfssext.sty copyright 2003 Philipp Lehman (see below)
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clea F. Rees.
-%
-% This work consists of the file nfssext-cfr.sty.
-%
-% The file nfssext-cfr.sty is a derived work under the terms of the
-% LPPL. It is based on version 1.2 of nfssext.sty which is part of The
-% Font Installation Guide by Philipp Lehman. A copy of the The Font
-% Installation Guide, including the unmodified version of nfssext.sty
-% is available from
-% http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=fontinstallationguide.
-% nfssext.sty is part of the included archive figuide-examples.tar.gz
-% which consists of examples and templates released under the LPPL.
-% nfssext.sty is included in the files for tutorials 3, 5 and 6.
-%
-% 2017-03-28: modify \tmstyle and \tvstyle to unmerge sans and other
-% typewriter before mergining appropriate variant
-%
-\NeedsTeXFormat{LaTeX2e}
-\RequirePackage{svn-prov}
-\ProvidesPackageSVN{$Id: nfssext-cfr.sty 6140 2017-03-28 18:07:31Z cfrees $}[\revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
-%:cfr-added: use ifthen
-\RequirePackage{ifthen}
-%:end-added
-\newcommand*{\exfs@tempa}{}
-\newcommand*{\exfs@tempb}{}
-%:cfr-added: extra variable (\exfs@tempf)
-\newcommand*{\exfs@tempf}{}
-%:end-added
-\newcommand*{\exfs@try@family}[2][]{%
- \let\exfs@tempa\relax
- \begingroup
- \fontfamily{#2}\try@load@fontshape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \edef\exfs@tempa{#1}%
- \ifx\exfs@tempa\@empty
- \PackageWarning{nfssext}{%
- Font family '\f@encoding/#2' not available\MessageBreak
- Ignoring font switch}%
- \else
- \PackageInfo{nfssext}{%
- Font family '\f@encoding/#2' not available\MessageBreak
- Font family '\f@encoding/#1' tried instead}%
- \exfs@try@family{#1}%
- \fi
- \else
- \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
- \fi
- \endgroup
- \exfs@tempa}
-%:cfr-added exfs@try@series
-\newcommand*{\exfs@try@series}[2][]{%
- \let\exfs@tempa\relax
- \begingroup
- \fontseries{#2}\try@load@fontshape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \edef\exfs@tempa{#1}%
- \ifx\exfs@tempa\@empty
- \PackageWarning{nfssext-cfr}{%
- Font series '\f@encoding/\f@family/#2' not available\MessageBreak
- Ignoring font switch}%
- \else
- \PackageInfo{nfssext-cfr}{%
- Font family '\f@encoding/\f@family/#2' not available\MessageBreak
- Font family '\f@encoding/\f@family/#1' tried instead}%
- \exfs@try@series{#1}%
- \fi
- \else
- \gdef\exfs@tempa{\fontseries{#2}\selectfont}%
- \fi
- \endgroup
- \exfs@tempa}
-%:end-added
-\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
-%:cfr-added:more \exfs@ commands (get@variants, next, shift, first, part, second)
-\def\exfs@get@variants#1#2#3#4\@nil{#4}
-\def\exfs@next#1#2\@nil{#1}
-\def\exfs@shift#1#2\@nil{#2}
-\def\exfs@first#1#2\@nil{#1}
-\def\exfs@part#1#2\@nil{#2}
-\def\exfs@second#1#2#3\@nil{#2}
-%:end-added
-\DeclareRobustCommand{\lnstyle}{%
- \not@math@alphabet\lnstyle\relax
- \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
- {\expandafter\exfs@get@base\f@family\@nil x}}
-\DeclareRobustCommand{\osstyle}{%
- \not@math@alphabet\osstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
-\DeclareRobustCommand{\instyle}{%
- \not@math@alphabet\instyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
-\DeclareRobustCommand{\sustyle}{%
- \not@math@alphabet\sustyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
-\DeclareRobustCommand{\swstyle}{%
- \not@math@alphabet\swstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
-%:cfr-added - merge families
-\newcommand*\exfs@merge@families[1]{%
- \edef\exfs@tempf{#1}%
- \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
- \edef\tempo{2j}%
- \let\exfs@tempq\@empty
- \def\exfs@tempg{}%
- \newif\ifadded
- \addedfalse
- % check whether there are variants - if not just use the requested addition
- \ifx\tempa\@empty
- \edef\exfs@tempq{\exfs@tempf}%
- \addedtrue
- \else
- \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
- \ifx\tempo\exfs@tempf
- \@for \xx:=\set \do {%
- % check whether there are variants left - if not set the ``next variant'' to empty
- \ifx\tempa\@empty
- \let\exfs@tempn\@empty
- \else
- % o/w get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- \fi
- \edef\tempt{2}%
- \edef\tempj{j}%
- % if the next variant is 2 or j, ignore it
- \ifx\exfs@tempn\tempt
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \ifx\exfs@tempn\tempj % if the next variant is j, ignore it
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- % see if the current value is either 2 or j and add it if so and if needed
- \ifx\tempt\xx
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \else
- \ifx\tempj\xx % if the current value is j, we're done
- \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
- \let\tempa\@empty
- \addedtrue
- \else
- % o/w see if the current value matches the next variant
- \ifx\xx\exfs@tempn
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \fi
- \fi
- }%
- \else
- \@for \xx:=\set \do {%
- % check whether there are variants left and, if not, add the addition if needed
- \ifx\tempa\@empty
- \ifadded
- \else
- \edef\exfs@tempq{\exfs@tempg\exfs@tempf}%
- \addedtrue
- \fi
- \else
- % o/w get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- % if the new token equals the next variant, combine whatever is saved in \exfs@tempg with whatever remains in \tempa
- \ifx\exfs@tempn\exfs@tempf
- \edef\exfs@tempq{\exfs@tempg\tempa}%
- \addedtrue
- \let\tempa\@empty
- \else
- % o/w, if the current value matches the requested addition, add it in
- \ifx\exfs@tempf\xx
- \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
- \addedtrue
- \let\tempa\@empty
- \else
- % o/w, if the current value matches the next variant, shift
- \ifx\exfs@tempn\xx
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \fi
- \fi
- \fi
- }%
- \fi
- \fi
- \ifx\exfs@tempq\@empty
- \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
- \else
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
- \fi}
-\DeclareRobustCommand{\pstyle}{% proportional figures
- \not@math@alphabet\pstyle\relax
- \exfs@merge@families{2}}
-\DeclareRobustCommand{\tistyle}{% titling/display
- \not@math@alphabet\tistyle\relax
- \exfs@merge@families{d}}
-\DeclareRobustCommand{\ostyle}{% oldstyle figures (cf. original osstyle above)
- \not@math@alphabet\ostyle\relax
- \exfs@merge@families{j}}
-% combined command for proportional oldstyle
-\DeclareRobustCommand{\postyle}{%
- \not@math@alphabet\postyle\relax
- \exfs@merge@families{2j}}
-%note that this command is for use when the light version is a separate family rather than a weight variant (e.g. when you've got light, light bold etc. as well as regular weights)
-\DeclareRobustCommand{\ltstyle}{%
- \not@math@alphabet\ltstyle\relax
- \exfs@merge@families{l}}
-%let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
-\DeclareRobustCommand{\ofstyle}{%
- \not@math@alphabet\ofstyle\relax
- \exfs@merge@families{l}}
-\DeclareRobustCommand{\altstyle}{% alternative style
- \not@math@alphabet\altstyle\relax
- \exfs@merge@families{a}}
-\DeclareRobustCommand{\regstyle}{% ``regular'' style
- \not@math@alphabet\regstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
-\DeclareRobustCommand{\embossstyle}{%
- \not@math@alphabet\embossstyle\relax
- \exfs@merge@families{e}}
-\DeclareRobustCommand{\ornamentalstyle}{% intended primarily for decorative initial fonts etc.
- \not@math@alphabet\ornamentalstyle\relax
- \exfs@merge@families{p}}
-\DeclareRobustCommand{\qtstyle}{% quotation style (assumes sans)
- \not@math@alphabet\qtstyle\relax
- \sffamily
- \exfs@merge@families{q}}
-\DeclareRobustCommand{\shstyle}{%
- \not@math@alphabet\shstyle\relax
- \exfs@merge@families{h}}
-\DeclareRobustCommand{\swashstyle}{% an attempt to improve on \swstyle
- \not@math@alphabet\swashstyle\relax
- \exfs@merge@families{w}}
-\DeclareRobustCommand{\tmstyle}{% monowidth typewriter
- \not@math@alphabet\tmstyle\relax
- \exfs@unmerge@families{s}%
- \exfs@unmerge@families{v}%
- \exfs@merge@families{t}}
-\DeclareRobustCommand{\tvstyle}{% variable width typewriter
- \not@math@alphabet\tvstyle\relax
- \exfs@unmerge@families{s}%
- \exfs@unmerge@families{t}%
- \exfs@merge@families{v}}
-%:cfr-added - unmerge families
-\newcounter{taken}%
-\newcommand*\exfs@unmerge@families[1]{%
- \edef\exfs@tempf{#1}%
- \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
- \let\exfs@tempq\@empty
- \edef\exfs@tempg{}%
- \setcounter{taken}{0}%
- % check whether there are variants - if not do nothing
- \ifx\tempa\@empty
- \edef\exfs@tempq{}%
- \else
- % o/w go through the variants to find the one to delete
- \whiledo{\value{taken}<1}{%
- % get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- % see if the next variant is the thing we seek and, if so, eliminate it
- \ifx\exfs@tempf\exfs@tempn
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \edef\exfs@tempq{\exfs@tempg\tempa}%
- \stepcounter{taken}%
- % o/w save the next variant and move on if any variants remain
- \else
- \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \ifx\tempa\@empty% if there are no variants left, we're done
- \edef\exfs@tempq{\exfs@tempg}%
- \stepcounter{taken}%
- \fi
- \fi
- }%
- \fi
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}}
-\DeclareRobustCommand{\tstyle}{% tabular figures
- \not@math@alphabet\tstyle\relax
- \exfs@unmerge@families{2}}
-\DeclareRobustCommand{\lstyle}{% lining figures (cf. command above)
- \not@math@alphabet\lstyle\relax
- \exfs@unmerge@families{j}}
-% make a combined command for tabular lining
-\DeclareRobustCommand{\tlstyle}{%
- \lstyle\tstyle}
-% proportional lining
-\DeclareRobustCommand{\plstyle}{%
- \lstyle\pstyle}
-% tabular oldstyle {?!}
-\DeclareRobustCommand{\tostyle}{%
- \ostyle\tstyle}
-%:end-added % si is italic sc
-\newcommand*{\sidefault}{si}
-\DeclareRobustCommand{\sishape}{%
- \not@math@alphabet\sishape\relax
- \fontshape\sidefault\selectfont}
-%:cfr-added - is this how outline shapes should be handled?
-\newcommand*{\oldefault}{ol}
-\DeclareRobustCommand{\olshape}{%
- \not@math@alphabet\olshape\relax
- \fontshape\oldefault\selectfont}
-\newcommand*{\scoldefault}{scol}
-\DeclareRobustCommand{\scolshape}{%
- \not@math@alphabet\scolshape\relax
- \fontshape\scoldefault\selectfont}
-%\DeclareRobustCommand{\olshape}{%
-% \not@math@alphabet\olshape\relax
-% \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
-%:fudge
-\newcommand*{\udefault}{u}
-\DeclareRobustCommand{\ushape}{%
- \not@math@alphabet\ushape\relax
- \fontshape\udefault\selectfont}
-\newcommand*{\scudefault}{su}
-\DeclareRobustCommand{\scushape}{%
- \not@math@alphabet\scushape\relax
- \fontshape\scudefault\selectfont}
-%:upright italic
-\newcommand*{\uidefault}{ui}
-\DeclareRobustCommand{\uishape}{%
- \not@math@alphabet\uishape\relax
- \fontshape\uidefault\selectfont}
-%:can i do this for reverse italic?
-\newcommand*{\ridefault}{ri}
-\DeclareRobustCommand{\rishape}{%
- \not@math@alphabet\rishape\relax
- \fontshape\ridefault\selectfont}
-%:end-added
-\newcommand*{\exfs@merge@shape}[3]{%
- \edef\exfs@tempa{#1}%
- \edef\exfs@tempb{#2}%
- \ifx\f@shape\exfs@tempb
- \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
- \else
- \edef\exfs@tempa{#3}%
- \fi
- \fi
- \fontshape{\exfs@tempa}\selectfont}
-%:cfr-added - merge width changes into series
-\newcommand*{\exfs@font@width}{%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \ifx\exfs@temppart\@empty
- \def\exfs@width{}
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps{b}
- \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
- \else
- \ifx\exfs@temps{l}
- \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
- \else
- \edef\exfs@width{\exfs@temppart}%
- \fi
- \fi
- \fi
- \exfs@width
- }
-\newcommand*{\exfs@merge@width}[1]{%
- \edef\exfs@temph{#1}%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\tempb{b}%
- \def\templ{l}%
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
- \else
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
- \else
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
- \fi
- \fi
- \fi
- \exfs@try@series{\exfs@series}}
-% \fontseries\exfs@series\selectfont}
-\newcommand*{\exfs@unmerge@width}{%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\tempb{b}%
- \def\templ{l}%
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempf}%
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
- \else
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
- \else
- \def\exfs@series{\expandafter\exfs@tempf}%
- \fi
- \fi
- \fi
- \exfs@try@series{\exfs@series}}
-\DeclareRobustCommand{\regwidth}{%
- \not@math@alphabet\regwidth\relax
- \exfs@unmerge@width}
-\newcommand*{\nwdefault}{c}
-\DeclareRobustCommand{\nwwidth}{%
- \not@math@alphabet\nwwidth\relax
- \exfs@merge@width{\nwdefault}}
-\newcommand*{\cddefault}{c}
-\DeclareRobustCommand{\cdwidth}{%
- \not@math@alphabet\cdwidth\relax
- \exfs@merge@width{\cddefault}}
-\newcommand*{\ecdefault}{ec}
-\DeclareRobustCommand{\ecwidth}{%
- \not@math@alphabet\ecwidth\relax
- \exfs@merge@width{\ecdefault}}
-\newcommand*{\ucdefault}{uc}
-\DeclareRobustCommand{\ucwidth}{%
- \not@math@alphabet\ucwidth\relax
- \exfs@merge@width{\ucdefault}}
-\newcommand*{\etdefault}{x}
-\DeclareRobustCommand{\etwidth}{%
- \not@math@alphabet\etwidth\relax
- \exfs@merge@width{\etdefault}}
-\newcommand*{\epdefault}{x}
-\DeclareRobustCommand{\epwidth}{%
- \not@math@alphabet\epwidth\relax
- \exfs@merge@width{\epdefault}}
-\newcommand*{\exdefault}{ex}
-\DeclareRobustCommand{\exwidth}{%
- \not@math@alphabet\exwidth\relax
- \exfs@merge@width{\exdefault}}
-\newcommand*{\uxdefault}{ux}
-\DeclareRobustCommand{\uxwidth}{%
- \not@math@alphabet\uxwidth\relax
- \exfs@merge@width{\uxdefault}}
-%:cfr-added merge weight changes into series
-\newcommand*{\exfs@merge@weight}[1]{%
- \edef\exfs@tempg{#1}%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\templ{l}%
- \def\tempb{b}%
- %:case when there's no second part, so the single character must be the weight and should be replaced
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempg}%
- %:case when there's a second part
- \else
- %:get first character of second part
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
- %:is the first character b? if so, it is part of the weight and should be replaced
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
- \else
- %:is the first character l? if so, it is part of the weight and should be replaced
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
- \else
- %:o/w the first character is part of the width and should be retained
- \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
- \fi
- \fi
- \fi
- %\fontseries\exfs@series\selectfont}
- \ifx\exfs@tempg\exfs@series
- \exfs@try@series{\exfs@series}%
- \else
- \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
- \fi}
-\newcommand*{\mbdefault}{mb}
-\DeclareRobustCommand{\mbweight}{%
- \not@math@alphabet\mbweight\relax
- \exfs@merge@weight{\mbdefault}}
-\newcommand*{\dbdefault}{db}
-\DeclareRobustCommand{\dbweight}{%
- \not@math@alphabet\dbweight\relax
- \exfs@merge@weight{\dbdefault}}
-\newcommand*{\sbdefault}{sb}
-\DeclareRobustCommand{\sbweight}{%
- \not@math@alphabet\sbweight\relax
- \exfs@merge@weight{\sbdefault}}
-\newcommand*{\ebdefault}{eb}
-\DeclareRobustCommand{\ebweight}{%
- \not@math@alphabet\ebweight\relax
- \exfs@merge@weight{\ebdefault}}
-\newcommand*{\ubdefault}{ub}
-\DeclareRobustCommand{\ubweight}{%
- \not@math@alphabet\ubweight\relax
- \exfs@merge@weight{\ubdefault}}
-\newcommand*{\lgdefault}{l}
-%note - use this if light is a variant weight, rather than a separate family
-\DeclareRobustCommand{\lgweight}{%
- \not@math@alphabet\lgweight\relax
- \exfs@merge@weight{\lgdefault}}
-\newcommand*{\eldefault}{el}
-\DeclareRobustCommand{\elweight}{%
- \not@math@alphabet\elweight\relax
- \exfs@merge@weight{\eldefault}}
-\newcommand*{\uldefault}{ul}
-\DeclareRobustCommand{\ulweight}{%
- \not@math@alphabet\ulweight\relax
- \exfs@merge@weight{\uldefault}}
-%:end-added
-\DeclareRobustCommand{\itshape}{%
- \not@math@alphabet\itshape\mathit
- \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
-% original
-%\DeclareRobustCommand{\scshape}{%
-% \not@math@alphabet\scshape\relax
-% \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
-%:cfr-altered: \scshape
-\DeclareRobustCommand{\scshape}{%
- \not@math@alphabet\scshape\relax
- \def\tempu{u}%
- \def\tempo{ol}%
- \ifx\f@shape\tempu
- \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
- \else
- \ifx\f@shape\tempo
- \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
- \else
- \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
- \fi
- \fi}
-%:end-altered
-\DeclareRobustCommand{\upshape}{%
- \not@math@alphabet\upshape\relax
- \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
-\DeclareRobustCommand{\dfshape}{%
- \not@math@alphabet\dfshape\relax
- \fontshape\shapedefault\selectfont}
-\newcommand*{\swshapedefault}{\itdefault}
-\DeclareRobustCommand{\swshape}{%
- \not@math@alphabet\swshape\relax
- \swstyle\fontshape\swshapedefault\selectfont}
-\DeclareTextFontCommand{\textln}{\lnstyle}
-\DeclareTextFontCommand{\textos}{\osstyle}
-\DeclareTextFontCommand{\textin}{\instyle}
-\DeclareTextFontCommand{\textsu}{\sustyle}
-\DeclareTextFontCommand{\textsi}{\sishape}
-\DeclareTextFontCommand{\textdf}{\dfshape}
-\DeclareTextFontCommand{\textsw}{\swshape}
-%:cfr-added
-%:families
-\DeclareTextFontCommand{\textti}{\tistyle}
-\DeclareTextFontCommand{\textlt}{\ltstyle}
-\DeclareTextFontCommand{\textof}{\ofstyle} % open-face (or outline or blank) style
-\DeclareTextFontCommand{\textalt}{\altstyle} % alternative style
-\DeclareTextFontCommand{\textreg}{\regstyle} % ``regular'' style
-\DeclareTextFontCommand{\emboss}{\embossstyle}
-\DeclareTextFontCommand{\textorn}{\ornamentalstyle} % intended primarily for decorative initials etc.
-\DeclareTextFontCommand{\textqt}{\qtstyle}
-\DeclareTextFontCommand{\textsh}{\shstyle} % shadowed style
-\DeclareTextFontCommand{\texttm}{\tmstyle}
-\DeclareTextFontCommand{\texttv}{\tvstyle}
-%:families - figures
-\DeclareTextFontCommand{\textl}{\lstyle}
-\DeclareTextFontCommand{\texto}{\ostyle}
-\DeclareTextFontCommand{\textp}{\pstyle}
-\DeclareTextFontCommand{\textt}{\tstyle}
-\DeclareTextFontCommand{\textpl}{\plstyle}
-\DeclareTextFontCommand{\textpo}{\postyle}
-\DeclareTextFontCommand{\texttl}{\tlstyle}
-\DeclareTextFontCommand{\textto}{\tostyle}
-%:shapes
-\DeclareTextFontCommand{\textol}{\olshape} % outline
-\DeclareTextFontCommand{\textswash}{\swashstyle} % an attempt to improve on \textsw
-\DeclareTextFontCommand{\textu}{\ushape}
-\DeclareTextFontCommand{\textscu}{\scushape}
-\DeclareTextFontCommand{\textui}{\uishape} % upright italic
-\DeclareTextFontCommand{\textri}{\rishape} % reverse italic
-%:widths
-\DeclareTextFontCommand{\textnw}{\nwwidth}
-\DeclareTextFontCommand{\textcd}{\cdwidth}
-\DeclareTextFontCommand{\textec}{\ecwidth}
-\DeclareTextFontCommand{\textuc}{\ucwidth}
-\DeclareTextFontCommand{\textet}{\etwidth}
-\DeclareTextFontCommand{\textep}{\epwidth}
-\DeclareTextFontCommand{\textex}{\exwidth}
-\DeclareTextFontCommand{\textux}{\uxwidth}
-\DeclareTextFontCommand{\textrw}{\regwidth}
-%:weights
-\DeclareTextFontCommand{\textmb}{\mbweight}
-\DeclareTextFontCommand{\textdb}{\dbweight}
-\DeclareTextFontCommand{\textsb}{\sbweight}
-\DeclareTextFontCommand{\texteb}{\ebweight}
-\DeclareTextFontCommand{\textub}{\ubweight}
-\DeclareTextFontCommand{\textlg}{\lgweight}
-\DeclareTextFontCommand{\textel}{\elweight}
-\DeclareTextFontCommand{\textul}{\ulweight}
-%end-added
-\newcommand*{\DeclareTextOrnament}[7]{%
- \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
-\begingroup
- \catcode`\/=12
- \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
- \def\f@encoding{#1}%
- \def\f@family{#2}%
- \def\f@series{#3}%
- \def\f@shape{#4}%
- \def\exfs@tempa{#5}}
-\endgroup
-\def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
-\DeclareRobustCommand{\ornament}[1]{%
- \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
- \PackageWarning{nfssext}{%
- Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
- Setting debug mark}%
- \rule{1ex}{1ex}%
- \else
- \begingroup
- \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
- \expandafter\expandafter\expandafter\exfs@split@orndef
- \expandafter\string\exfs@tempb\@nil
- \selectfont\char\exfs@tempa
- \endgroup
- \fi}
-%:add microtype hooks
-%:partly from microtype docs; partly from MinionPro package
-\def\nfssextcfr@MT@Hook{%
-% \DeclareMicrotypeVariants{x,j,w,a,d,0,1}% this is the default declaration according to the docs
-% \DeclareMicrotypeVariants*{2,e,h,l}% this should *append* the variants (what do I use 'f' for? better take it out...)
- \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
- }
-\@ifpackageloaded{microtype}{%
- \nfssextcfr@MT@Hook}{%
- \@ifundefined{Microtype@Hook}{%
- \let\Microtype@Hook\nfssextcfr@MT@Hook}{% MinionPro has \global before this
- \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}}}
-\endinput
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex
deleted file mode 100644
index 8cf5a6c788..0000000000
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex
+++ /dev/null
@@ -1,196 +0,0 @@
-% !TEX TS-program = pdflatex
-% !TEX encoding = UTF-8 Unicode
-% arara: pdflatex: { synctex: true }
-\pdfminorversion=7
-\RequirePackage{svn-prov}
-\ProvidesFileSVN{$Id: nfssext-cfr.tex 6143 2017-03-28 22:45:37Z cfrees $}[\revinfo{}]
-\documentclass[pagesize=auto, fontsize=10pt, DIV=11]{scrartcl}
-
-\usepackage{cfr-lm}
-\usepackage{textcomp,longtable,array,booktabs}
-\usepackage{microtype}
-
-\newcommand*{\mail}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\mbox{\textsf{#1}}}
-\newcommand*{\cs}[1]{\texttt{\textbackslash #1}}
-
-\addtokomafont{title}{\rmfamily}
-
-\title{The \pkg{nfssext-cfr} package}
-\author{Clea F. Rees\thanks{\mail{ReesC21 <at> cardiff <dot> ac <dot> uk}}}
-\date{2017/03/28}
-
-
-\begin{document}
-
-\maketitle
-
-\begin{abstract}
- \noindent \pkg{nfssext-cfr} is an extension of Philipp Lehman's \pkg{nfssext}\@.
- \pkg{nfssext} provides commands which enables one to specify font features not covered by the New Font Selection Scheme of \LaTeXe\@.
- \pkg{nfssext-cfr} provides additional commands, further extending the facilities offered by NFSS.
-\end{abstract}
-
-\section*{Introduction}
-
-\pkg{nfssext-cfr} is required by various font support packages I've written.
-It is being released separately to avoid unnecessary duplication and confusion.
-At least, I hope it will remove at least one source of unnecessary confusion.
-I have no reason to think it will avoid any of the others.
-
-The code is somewhat experimental.
-It works for me.
-So far.
-If you discover problems, please let me know.
-If you know how to fix them, even better.
-
-\section*{Caveats, Warnings and Qualifications}
-
-The actual effect of any macro depends on any changes made to the defaults for various font features, the current font and, of course, what is available.
-
-For example, \cs{itdefault} is intended to be the name of italic shape and is used by the redefined \cs{itshape} supplied by this package.
-By default, \cs{itdefault} is \texttt{it}.
-However, if you change that to, say, \texttt{sl}, then \cs{itshape} will use \texttt{sl} instead.
-
-Moreover, if the current shape is small-caps, \cs{itshape} will attempt to merge the default italic shape with the small-caps.
-That is, it will try to select small-caps italic, if possible, before resorting to plain italic.
-
-The macros operating on family names are almost entirely reliant on font names adhering strictly to the Karl Berry schema.
-This includes the stipulation that multiple variants be listed in alphabetical order.
-These macros cannot be used with fonts named in any other way.
-
-Likewise, the macros for series and shapes are unlikely to have their expected effects if fonts are not packaged in ways which both adhere to the NFSS schema and, where relevant, to the specific way that schema is extended here.
-In particular, note that italic small-caps is assumed to be coded as \texttt{si}.
-
-If a macro's attempt to enable or disable a font feature fails, a warning will generally be written to the console, but the code tries hard not to trigger errors.
-If an attempt triggers an error, that's a bug, so please let me know.
-If an attempt triggers a warning, please note that there may be no bug at all and, if there is a bug, it is probably not in this package.
-
-To be clear, there certainly are bugs.
-It is just statistically unlikely that any given warning is caused by one.
-
-{%
- \fontfamily{pzc}\fontshape{it}\fontseries{m}\selectfont\Large Caveat emptor \dots\par
-}
-
-\section*{Macros}
-
-The following table includes macros supplied by the original \pkg{nfssext} and additions available with \pkg{nfssext-cfr}.
-
-The third column lists the default letter codes for various font features.
-As explained above, if the defaults are changed, the macros will try to do something different.
-
-A \texttt{+} indicates that the macro will attempt to merge the addition into the current font's family name, series or shape.
-For example, if the current font uses oldstyle figures, the \texttt{+2} indicates that \cs{pstyle} will attempt to select a font with figures which are both proportional and oldstyle.
-
-A \textt{-} indicates that the macro will attempt to subtract from the current font's family name, series or shape.
-For example, if the current font uses oldstyle figures, the \texttt{-2} indicates that \cs{tstyle} will attempt to select a font with figures which are both tabular and oldstyle.
-
-A comma-separated list indicates consecutive additions and/or subtraction.
-
-If no \texttt{+-} is used, the macro tries to select a font with the given feature without merging.
-For example \cs{sistyle} tries to switch to \texttt{si} shape regardless of the current font shape.
-
-A \texttt{--} indicates that the macro will try to clear all relevant letter codes from the current font's family name, series or shape.
-For example, \cs{regwidth} tries to switch to a series with no letter codes indicating non-standard widths in its name.
-
-Additions, subtractions and clearances operate on font family names, series or shapes, as appropriate.
-In general, macros with \texttt{style} in their names operate on family names; those with \texttt{shape} operate on shape codes; and those with \textt{width} or \texttt{weight} operate on series codes.
-
-The letter codes correspond to those specified by the NFSS specification, unless the specification does not include the relevant feature.
-In the latter case, I tried to choose something sensible i.e.~something which made sense to me at the time.
-
-
-\begin{longtable}{lll>{\ttfamily}ll}
- \toprule\endhead
- \bottomrule\endfoot
- \multicolumn{5}{l}{\sffamily Standard macros redefined:}\\
- \cmidrule(lr){1-5}
- & \cs{itshape}\\
- & \cs{scshape}\\
- & \cs{upshape}\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Families --- Styles:}\\
- \cmidrule(lr){1-5}
- & \cs{textti} & \cs{tistyle} & +d & titling/display\\
- & \cs{textlt} & \cs{ltstyle} & +l & light (when separate family)\\
- & \cs{textof} & \cs{ofstyle} & +l & open-face (or outline or blank) style\\
- & \cs{textalt} & \cs{altstyle} & +a & alternative style\\
- & \cs{textreg} & \cs{regstyle} & -- & regular style\\
- & \cs{emboss} & \cs{embossstyle} & +e & \\
- & \cs{textorn} & \cs{ornamentalstyle} & +p & intended primarily for decorative initials etc.\\
- & \cs{ornament} & \\
- & \cs{textqt} & \cs{qtstyle} & +q & quotation style\\
- & \cs{textsh} & \cs{shstyle} & +h & shadowed style\\
- & \cs{texttm} & \cs{tmstyle} & -s,-v,+t & monowidth typewriter\\
- & \cs{texttv} & \cs{tvstyle} & -s,-t,+v & variable width typewriter\\
- & \cs{textswash} & \cs{swashstyle} & +w & an attempt to improve on \cs{textsw}\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Families --- Figures:}\\
- \cmidrule(lr){1-5}
- & \cs{textln} & \cs{lnstyle} & -- & lining figures (cf.~macro below)\\
- & \cs{textos} & \cs{osstyle} & j & oldstyle figures (cf.~macro below)\\
- & \cs{textin} & \cs{instyle} & 0 & inferior figures\\
- & \cs{textsu} & \cs{sustyle} & 1 & superior figures\\
- & \cs{textl} & \cs{lstyle} & -j & lining figures (cf.~command above)\\
- & \cs{texto} & \cs{ostyle} & +j & oldstyle figures (cf.~original \cs{osstyle} above)\\
- & \cs{textp} & \cs{pstyle} & +2 & proportional figures\\
- & \cs{textt} & \cs{tstyle} & -2 & tabular figures\\
- & \cs{textpl} & \cs{plstyle} & -j,+2 & proportional lining figures \\
- & \cs{textpo} & \cs{postyle} & +2j & proportional oldstyle figures \\
- & \cs{texttl} & \cs{tlstyle} & -j,-2 & tabular lining figures\\
- & \cs{textto} & \cs{tostyle} & +j,-2 & tabular oldstyle figures\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Shapes:}\\
- \cmidrule(lr){1-5}
- & \cs{scolshape} & & scol & \\
- & \cs{textol} & \cs{olshape} & ol & outline\\
- & \cs{textsi} & \cs{sishape} & si & italic small-caps\\
- & \cs{textu} & \cs{ushape} & u & \\
- & \cs{textscu} & \cs{scushape} & su & \\
- & \cs{textui} & \cs{uishape} & ui & upright italic\\
- & \cs{textri} & \cs{rishape} & ri & reverse italic\\
- & \cs{textdf} & \cs{dfshape} & n & default shape\\
- & \cs{textsw} & \cs{swshape} & it & swash shape (cf.~\cs{swstyle} above)\\
- & & \cs{swstyle} & \\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Series --- Widths:}\\
- \cmidrule(lr){1-5}
- & \cs{textnw} & \cs{nwwidth} & +c & \\
- & \cs{textcd} & \cs{cdwidth} & +c & \\
- & \cs{textec} & \cs{ecwidth} & +ec & \\
- & \cs{textuc} & \cs{ucwidth} & +uc & \\
- & \cs{textet} & \cs{etwidth} & +x & \\
- & \cs{textep} & \cs{epwidth} & +x & \\
- & \cs{textex} & \cs{exwidth} & +ex & \\
- & \cs{textux} & \cs{uxwidth} & +ux & \\
- & \cs{textrw} & \cs{regwidth} & -- & \\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Series --- Weights:}\\
- \cmidrule(lr){1-5}
- & \cs{textmb} & \cs{mbweight} & +mb & \\
- & \cs{textdb} & \cs{dbweight} & +db & \\
- & \cs{textsb} & \cs{sbweight} & +sb & \\
- & \cs{texteb} & \cs{ebweight} & +eb & \\
- & \cs{textub} & \cs{ubweight} & +ub & \\
- & \cs{textlg} & \cs{lgweight} & +l & \\
- & \cs{textel} & \cs{elweight} & +el & \\
- & \cs{textul} & \cs{ulweight} & +ul & \\
-\end{longtable}
-
-\section*{History}
-
-\subsection*{2017-03-28}
-Attempt to modify \cs{tmstyle} and \cs{tvstyle} to work as advertised.
-Extend documentation somewhat.
-
-\subsection*{2010}
-The 2010 update includes an attempt to improve the behaviour of \verb|\ofstyle|, and to add support for \pkg{microtype}.
-I didn't publish this at the time because I wanted to test it first.
-I have just discovered that I am still using a local copy.
-Insofar as one person can test something, I figure that 5 years ought to be enough to pick up the most obvious problems.
-However, your kilometres may, as always, vary.
-
-There should be no changes for the end user except that in certain cases it is possible that line-breaks may be altered if \pkg{microtype} is in use due to the enhanced support included for variant font families.
-
-\end{document}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.dtx b/macros/latex/contrib/nicematrix/nicematrix-code.dtx
index 05251bd9cd..e3d667b71d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-code.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix-code.dtx
@@ -1,4 +1,4 @@
-% \iffalse meta-comment
+% \iffalse meta-comment
%
% This file should be compiled with $lualatex$.
%
@@ -17,8 +17,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.28b}
-\def\myfiledate{2024/06/29}
+\def\myfileversion{6.29a}
+\def\myfiledate{2024/10/29}
%
%
%<*batchfile>
@@ -137,7 +137,14 @@ version 2005/12/01 or later.
{\myfileversion}
{Enhanced arrays with the help of PGF/TikZ}
% \end{macrocode}
-%
+%
+% \begin{macrocode}
+\ProvideDocumentCommand{\IfPackageLoadedT}{mm}
+ {\IfPackageLoadedTF{#1}{#2}{}}
+
+\ProvideDocumentCommand{\IfPackageLoadedF}{mm}
+ {\IfPackageLoadedTF{#1}{}{#2}}
+% \end{macrocode}
%
% \bigskip
% The command for the treatment of the options of |\usepackage| is at the end of
@@ -205,7 +212,7 @@ version 2005/12/01 or later.
\bool_gset:Nn \g_@@_messages_for_Overleaf_bool
{
\str_if_eq_p:on \c_sys_jobname_str { _region_ } % for Emacs
- || \str_if_eq_p:on \c_sys_jobname_str { output } % for Overleaf
+ || \str_if_eq_p:ee \c_sys_jobname_str { output } % for Overleaf
}
% \end{macrocode}
%
@@ -240,34 +247,6 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% \section{Security test}
-%
-% Within the package \pkg{nicematrix}, we will have to test whether a cell of a
-% |{NiceTabular}| is empty. For the cells of the columns of type |p|, |b|, |m|,
-% |X| and |V|, we will test whether the cell is syntactically empty (that is to
-% say that there is only spaces between the ampersands |&|). That test will be
-% done with the command |\@@_test_if_empty:| by testing if the two first tokens
-% in the cells are (during the TeX process) are |\ignorespaces| and |\unskip|.
-%
-% However, if, one day, there is a changement in the implementation of
-% \pkg{array}, maybe that this test will be broken (and \pkg{nicematrix} also).
-%
-% That's why, by security, we will take a test in a small |{tabular}| composed
-% in the box |\l_tmpa_box| used as sandbox.
-%
-% \begin{macrocode}
-\@@_msg_new:nn { Internal~error }
- {
- Potential~problem~when~using~nicematrix.\\
- The~package~nicematrix~have~detected~a~modification~of~the~
- standard~environment~{array}~(of~the~package~array).~Maybe~you~will~encounter~
- some~slight~problems~when~using~nicematrix.~If~you~don't~want~to~see~
- this~message~again,~load~nicematrix~with:~\token_to_str:N
- \usepackage[no-test-for-array]{nicematrix}.
- }
-% \end{macrocode}
-%
-% \bigskip
% \begin{macrocode}
\@@_msg_new:nn { mdwtab~loaded }
{
@@ -275,58 +254,11 @@ version 2005/12/01 or later.
This~error~is~fatal.
}
% \end{macrocode}
-%
-% \bigskip
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_security_test:n #1
- {
- \peek_meaning:NTF \ignorespaces
- { \@@_security_test_i:w }
- { \@@_error:n { Internal~error } }
- #1
- }
-% \end{macrocode}
-%
-% \bigskip
-% \begin{macrocode}
-\bool_if:NTF \c_@@_tagging_array_bool
- {
- \cs_new_protected:Npn \@@_security_test_i:w \ignorespaces #1
- {
- \peek_meaning:NF \textonly@unskip { \@@_error:n { Internal~error } }
- #1
- }
- }
- {
- \cs_new_protected:Npn \@@_security_test_i:w \ignorespaces #1
- {
- \peek_meaning:NF \unskip { \@@_error:n { Internal~error } }
- #1
- }
- }
-% \end{macrocode}
%
% \bigskip
-% Here, the box |\l_tmpa_box| will be used as sandbox to take our security test.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument / end } { . }
- {
- \IfPackageLoadedTF { mdwtab }
- { \@@_fatal:n { mdwtab~loaded } }
- {
- \bool_if:NF \g_@@_no_test_for_array_bool
- {
- \group_begin:
- \hbox_set:Nn \l_tmpa_box
- {
- \begin { tabular } { c > { \@@_security_test:n } c c }
- text & & text
- \end { tabular }
- }
- \group_end:
- }
- }
- }
+ { \IfPackageLoadedT { mdwtab } { \@@_fatal:n { mdwtab~loaded } } }
% \end{macrocode}
%
% \bigskip
@@ -399,13 +331,11 @@ version 2005/12/01 or later.
\str_const:Nn \c_@@_r_str { r }
\str_const:Nn \c_@@_c_str { c }
\str_const:Nn \c_@@_l_str { l }
-\str_const:Nn \c_@@_R_str { R }
-\str_const:Nn \c_@@_C_str { C }
-\str_const:Nn \c_@@_L_str { L }
-\str_const:Nn \c_@@_j_str { j }
-\str_const:Nn \c_@@_si_str { si }
% \end{macrocode}
+%
+%
%
+% \bigskip
% The following token list will be used for definitions of user commands (with
% |\NewDocumentCommand|) with an embellishment using an \emph{underscore} (there
% may be problems because of the catcode of the underscore).
@@ -414,8 +344,15 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\cs_generate_variant:Nn \seq_set_split:Nnn { N o n }
+\cs_generate_variant:Nn \seq_set_split:Nnn { N o }
\cs_generate_variant:Nn \str_lowercase:n { o }
+\cs_generate_variant:Nn \str_set:Nn { N o }
+\cs_generate_variant:Nn \tl_build_put_right:Nn { N o }
+\prg_generate_conditional_variant:Nnn \clist_if_in:Nn { N e } { T , F, TF }
+\prg_generate_conditional_variant:Nnn \tl_if_empty:n { e } { T }
+\prg_generate_conditional_variant:Nnn \tl_if_head_eq_meaning:nN { o N } { TF }
+\cs_generate_variant:Nn \dim_min:nn { v }
+\cs_generate_variant:Nn \dim_max:nn { v }
% \end{macrocode}
%
% \medskip
@@ -529,9 +466,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \IfPackageLoadedTF { booktabs }
+ \IfPackageLoadedT { booktabs }
{ \iow_now:Nn \@mainaux \nicematrix@redefine@check@rerun }
- { }
}
\cs_set_protected:Npn \nicematrix@redefine@check@rerun
{
@@ -543,6 +479,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_protected:Npn \pgfutil@check@rerun ##1 ##2
{
+% \end{macrocode}
+% |\str_if_eq:ee(TF)| is faster than |\str_if_eq:nn(TF)|.
+% \begin{macrocode}
\str_if_eq:eeF { nm- } { \tl_range:nnn { ##1 } 1 3 }
{ \@@_old_pgfutil@check@rerun { ##1 } { ##2 } }
}
@@ -555,8 +494,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \IfPackageLoadedTF { colortbl }
- { }
+ \IfPackageLoadedF { colortbl }
{
% \end{macrocode}
% The command |\CT@arc@| is a command of \pkg{colortbl} which sets the color of
@@ -645,6 +583,7 @@ version 2005/12/01 or later.
% \textsl{i}.
% \begin{macrocode}
\cs_set:Npn \@@_cline_i:nn #1 #2 { \@@_cline_i:w #1|#2- \q_stop }
+\cs_generate_variant:Nn \@@_cline_i:nn { e }
\cs_set:Npn \@@_cline_i:w #1|#2-#3 \q_stop
{
\tl_if_empty:nTF { #3 }
@@ -675,7 +614,6 @@ version 2005/12/01 or later.
{ & \@@_cline_i:en { \int_eval:n { #3 + 1 } } }
{ \everycr { } \cr }
}
-\cs_generate_variant:Nn \@@_cline_i:nn { e n }
% \end{macrocode}
%
%
@@ -688,6 +626,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_set_CT@arc@:n { o }
\cs_new_protected:Npn \@@_set_CT@arc@:n #1
{
\tl_if_blank:nF { #1 }
@@ -697,38 +636,37 @@ version 2005/12/01 or later.
{ \cs_set_nopar:Npn \CT@arc@ { \color { #1 } } }
}
}
-\cs_generate_variant:Nn \@@_set_CT@arc@:n { o }
% \end{macrocode}
%
% \bigskip
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_set_CT@drsc@:n { o }
\cs_new_protected:Npn \@@_set_CT@drsc@:n #1
{
\tl_if_head_eq_meaning:nNTF { #1 } [
{ \cs_set_nopar:Npn \CT@drsc@ { \color #1 } }
{ \cs_set_nopar:Npn \CT@drsc@ { \color { #1 } } }
}
-\cs_generate_variant:Nn \@@_set_CT@drsc@:n { o }
% \end{macrocode}
%
% \bigskip
% The following command must \emph{not} be protected since it will be used to
% write instructions in the (internal) |\CodeBefore|.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_exp_color_arg:Nn { N o }
\cs_new:Npn \@@_exp_color_arg:Nn #1 #2
{
\tl_if_head_eq_meaning:nNTF { #2 } [
{ #1 #2 }
{ #1 { #2 } }
}
-\cs_generate_variant:Nn \@@_exp_color_arg:Nn { N o }
% \end{macrocode}
%
% The following command must be protected because of its use of the command |\color|.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_color:n { o }
\cs_new_protected:Npn \@@_color:n #1
{ \tl_if_blank:nF { #1 } { \@@_exp_color_arg:Nn \color { #1 } } }
-\cs_generate_variant:Nn \@@_color:n { o }
% \end{macrocode}
%
%
@@ -1106,12 +1044,12 @@ version 2005/12/01 or later.
% The following command will be able to reconstruct the full name of the current
% command or environment (despite its name which contains \textsl{env}). This
% command must \emph{not} be protected since it will be used in error messages
-% and we have to use |\str_if_eq:onTF| and not |\tl_if_eq:NnTF| because we need
-% to be fully expandable).
+% and we have to use |\str_if_eq:eeTF| and not |\tl_if_eq:eeTF| because we need
+% to be fully expandable). |\str_if_eq:ee(TF)| is faster than |\str_if_eq:nn(TF)|.
% \begin{macrocode}
\cs_new:Npn \@@_full_name_env:
{
- \str_if_eq:onTF \g_@@_com_or_env_str { command }
+ \str_if_eq:eeTF \g_@@_com_or_env_str { command }
{ command \space \c_backslash_str \g_@@_name_env_str }
{ environment \space \{ \g_@@_name_env_str \} }
}
@@ -1242,17 +1180,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% |\l_@@_code_before_tl| may contain two types of informations:
-% \begin{itemize}
-% \item A |code-before| written in the |aux| file by a previous run. When the
-% |aux| file is read, this |code-before| is stored in
-% |\g_@@_code_before_|\textsl{i}|_tl| (where \textsl{i} is the number of the
-% environment) and, at the beginning of the environment, it will be put in
-% |\l_@@_code_before_tl|.
-% \item The final user can explicitly add material in |\l_@@_code_before_tl| by
-% using the key |code-before| or the keyword |\CodeBefore| (with the keyword
-% |\Body|).
-% \end{itemize}
+% The use of |\l_@@_code_before_tl| is not clear. Maybe that with the evolutions
+% of \pkg{nicematrix}, it has become obsolete. We should have a look at that.
% \begin{macrocode}
\tl_new:N \l_@@_code_before_tl
\bool_new:N \l_@@_code_before_bool
@@ -1277,10 +1206,12 @@ version 2005/12/01 or later.
%
% \bigskip
% The L3 programming layer provides scratch dimensions |\l_tmpa_dim| and
-% |\l_tmpb_dim|. We creates two more in the same spirit.
+% |\l_tmpb_dim|. We creates several more in the same spirit.
% \begin{macrocode}
\dim_new:N \l_@@_tmpc_dim
\dim_new:N \l_@@_tmpd_dim
+\dim_new:N \l_@@_tmpe_dim
+\dim_new:N \l_@@_tmpf_dim
% \end{macrocode}
%
% \bigskip
@@ -1360,9 +1291,11 @@ version 2005/12/01 or later.
%
% \medskip
% If the user has used the key |corners|, all the cells which are in an (empty)
-% corner will be stored in the following sequence.
+% corner will be stored in the following list. We use a |clist| instead of a
+% |seq| because we will frequently search in that list (and searching in a
+% |clist| is faster than searching in a |seq|).
% \begin{macrocode}
-\seq_new:N \l_@@_corners_cells_seq
+\clist_new:N \l_@@_corners_cells_clist
% \end{macrocode}
%
% \medskip
@@ -1671,6 +1604,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_protected:Npn \@@_cut_on_hyphen:w #1-#2\q_stop
{
+% \end{macrocode}
+% Here, we use |\cs_set_nopar:Npn| instead of |\tl_set:Nn| for efficiency only.
+% \begin{macrocode}
\cs_set_nopar:Npn \l_tmpa_tl { #1 }
\cs_set_nopar:Npn \l_tmpb_tl { #2 }
}
@@ -1684,14 +1620,20 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_expand_clist:N #1
{
- \clist_if_in:NVF #1 \c_@@_all_tl
+ \clist_if_in:NnF #1 { all }
{
\clist_clear:N \l_tmpa_clist
\clist_map_inline:Nn #1
{
+% \end{macrocode}
+% We recall thant |\tl_if_in:nnTF| is slightly faster than |\str_if_in:nnTF|.
+% \begin{macrocode}
\tl_if_in:nnTF { ##1 } { - }
{ \@@_cut_on_hyphen:w ##1 \q_stop }
{
+% \end{macrocode}
+% Here, we use |\cs_set_nopar:Npn| instead of |\tl_set:Nn| for efficiency only.
+% \begin{macrocode}
\cs_set_nopar:Npn \l_tmpa_tl { ##1 }
\cs_set_nopar:Npn \l_tmpb_tl { ##1 }
}
@@ -1967,7 +1909,7 @@ version 2005/12/01 or later.
\seq_gput_right:Nn \g_@@_notes_seq { { #1 } { #2 } }
\tl_if_novalue:nT { #1 } { \int_gincr:N \c@tabularnote }
}
- \seq_put_right:Nx \l_@@_notes_labels_seq
+ \seq_put_right:Ne \l_@@_notes_labels_seq
{
\tl_if_novalue:nTF { #1 }
{
@@ -2020,8 +1962,8 @@ version 2005/12/01 or later.
{ \int_gincr:N \c@tabularnote }
\seq_clear:N \l_@@_notes_labels_seq
\bool_lazy_or:nnTF
- { \tl_if_eq_p:NN \l_@@_hpos_cell_tl \c_@@_c_tl }
- { \tl_if_eq_p:NN \l_@@_hpos_cell_tl \c_@@_r_tl }
+ { \str_if_eq_p:ee \l_@@_hpos_cell_tl { c } }
+ { \str_if_eq_p:ee \l_@@_hpos_cell_tl { r } }
{
\hbox_overlap_right:n { \box_use:N \l_tmpa_box }
% \end{macrocode}
@@ -2083,7 +2025,7 @@ version 2005/12/01 or later.
% are not in the first composition, we have to compose that label!
% \begin{macrocode}
\tl_if_novalue:nT { #1 } { \int_gincr:N \c@tabularnote }
- \seq_put_right:Nx \l_@@_notes_labels_seq
+ \seq_put_right:Ne \l_@@_notes_labels_seq
{
\tl_if_novalue:nTF { #1 }
{ \@@_notes_format:n { \int_use:N \c@tabularnote } }
@@ -2449,7 +2391,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / xdots }
+\keys_define:nn { nicematrix / xdots }
{
shorten-start .code:n =
\hook_gput_code:nnn { begindocument } { . }
@@ -2509,7 +2451,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rules }
+\keys_define:nn { nicematrix / rules }
{
color .tl_set:N = \l_@@_rules_color_tl ,
color .value_required:n = true ,
@@ -2521,11 +2463,11 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% First, we define a set of keys ``|NiceMatrix / Global|'' which will be used
+% First, we define a set of keys ``|nicematrix / Global|'' which will be used
% (with the mechanism of |.inherit:n|) by other sets of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Global }
+\keys_define:nn { nicematrix / Global }
{
ampersand-in-blocks .bool_set:N = \l_@@_amp_in_blocks_bool ,
ampersand-in-blocks .default:n = true ,
@@ -2537,7 +2479,7 @@ version 2005/12/01 or later.
rounded-corners .dim_set:N = \l_@@_tab_rounded_corners_dim ,
rounded-corners .default:n = 4 pt ,
custom-line .code:n = \@@_custom_line:n { #1 } ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
standard-cline .bool_set:N = \l_@@_standard_cline_bool ,
standard-cline .default:n = true ,
@@ -2551,7 +2493,7 @@ version 2005/12/01 or later.
cell-space-bottom-limit = #1 ,
} ,
cell-space-limits .value_required:n = true ,
- xdots .code:n = \keys_set:nn { NiceMatrix / xdots } { #1 } ,
+ xdots .code:n = \keys_set:nn { nicematrix / xdots } { #1 } ,
light-syntax .code:n =
\bool_set_true:N \l_@@_light_syntax_bool
\bool_set_false:N \l_@@_light_syntax_expanded_bool ,
@@ -2644,7 +2586,7 @@ version 2005/12/01 or later.
% We define a set of keys used by the environments of \pkg{nicematrix} (but not
% by the command |\NiceMatrixOptions|).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Env }
+\keys_define:nn { nicematrix / environments }
{
corners .clist_set:N = \l_@@_corners_clist ,
corners .default:n = { NW , SW , NE , SE } ,
@@ -2668,7 +2610,11 @@ version 2005/12/01 or later.
baseline .tl_set:N = \l_@@_baseline_tl ,
baseline .value_required:n = true ,
columns-width .code:n =
- \tl_if_eq:nnTF { #1 } { auto }
+% \end{macrocode}
+% We use |\str_if_eq:nnTF| which is slightly faster than |\tl_if_eq:nnTF| (and
+% is expandable). |\str_if_eq:ee(TF)| is faster than |\str_if_eq:nn(TF)|.
+% \begin{macrocode}
+ \str_if_eq:eeTF { #1 } { auto }
{ \bool_set_true:N \l_@@_auto_columns_width_bool }
{ \dim_set:Nn \l_@@_columns_width_dim { #1 } } ,
columns-width .value_required:n = true ,
@@ -2680,10 +2626,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\legacy_if:nF { measuring@ }
{
- \str_set:Nx \l_tmpa_str { #1 }
- \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str
+ \str_set:Ne \l_tmpa_str { #1 }
+ \seq_if_in:NoTF \g_@@_names_seq \l_tmpa_str
{ \@@_error:nn { Duplicate~name } { #1 } }
- { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str }
+ { \seq_gput_left:No \g_@@_names_seq \l_tmpa_str }
\str_set_eq:NN \l_@@_name_str \l_tmpa_str
} ,
name .value_required:n = true ,
@@ -2698,7 +2644,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / notes }
+\keys_define:nn { nicematrix / notes }
{
para .bool_set:N = \l_@@_notes_para_bool ,
para .default:n = true ,
@@ -2718,9 +2664,8 @@ version 2005/12/01 or later.
{
\hook_gput_code:nnn { begindocument } { . }
{
- \IfPackageLoadedTF { enumitem }
+ \IfPackageLoadedT { enumitem }
{ \setlist* [ tabularnotes ] { #1 } }
- { }
}
} ,
enumitem-keys .value_required:n = true ,
@@ -2728,9 +2673,8 @@ version 2005/12/01 or later.
{
\hook_gput_code:nnn { begindocument } { . }
{
- \IfPackageLoadedTF { enumitem }
+ \IfPackageLoadedT { enumitem }
{ \setlist* [ tabularnotes* ] { #1 } }
- { }
}
} ,
enumitem-keys-para .value_required:n = true ,
@@ -2741,7 +2685,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / delimiters }
+\keys_define:nn { nicematrix / delimiters }
{
max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
max-width .default:n = true ,
@@ -2754,63 +2698,63 @@ version 2005/12/01 or later.
% We begin the construction of the major sets of keys (used by the different
% user commands and environments).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix }
+\keys_define:nn { nicematrix }
{
NiceMatrixOptions .inherit:n =
- { NiceMatrix / Global } ,
- NiceMatrixOptions / xdots .inherit:n = NiceMatrix / xdots ,
- NiceMatrixOptions / rules .inherit:n = NiceMatrix / rules ,
- NiceMatrixOptions / notes .inherit:n = NiceMatrix / notes ,
- NiceMatrixOptions / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- SubMatrix / rules .inherit:n = NiceMatrix / rules ,
- CodeAfter / xdots .inherit:n = NiceMatrix / xdots ,
- CodeBefore / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- CodeAfter / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
+ { nicematrix / Global } ,
+ NiceMatrixOptions / xdots .inherit:n = nicematrix / xdots ,
+ NiceMatrixOptions / rules .inherit:n = nicematrix / rules ,
+ NiceMatrixOptions / notes .inherit:n = nicematrix / notes ,
+ NiceMatrixOptions / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ SubMatrix / rules .inherit:n = nicematrix / rules ,
+ CodeAfter / xdots .inherit:n = nicematrix / xdots ,
+ CodeBefore / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ CodeAfter / sub-matrix .inherit:n = nicematrix / sub-matrix ,
NiceMatrix .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- NiceMatrix / xdots .inherit:n = NiceMatrix / xdots ,
- NiceMatrix / rules .inherit:n = NiceMatrix / rules ,
+ NiceMatrix / xdots .inherit:n = nicematrix / xdots ,
+ NiceMatrix / rules .inherit:n = nicematrix / rules ,
NiceTabular .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env
+ nicematrix / Global ,
+ nicematrix / environments
} ,
- NiceTabular / xdots .inherit:n = NiceMatrix / xdots ,
- NiceTabular / rules .inherit:n = NiceMatrix / rules ,
- NiceTabular / notes .inherit:n = NiceMatrix / notes ,
+ NiceTabular / xdots .inherit:n = nicematrix / xdots ,
+ NiceTabular / rules .inherit:n = nicematrix / rules ,
+ NiceTabular / notes .inherit:n = nicematrix / notes ,
NiceArray .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- NiceArray / xdots .inherit:n = NiceMatrix / xdots ,
- NiceArray / rules .inherit:n = NiceMatrix / rules ,
+ NiceArray / xdots .inherit:n = nicematrix / xdots ,
+ NiceArray / rules .inherit:n = nicematrix / rules ,
pNiceArray .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- pNiceArray / xdots .inherit:n = NiceMatrix / xdots ,
- pNiceArray / rules .inherit:n = NiceMatrix / rules ,
+ pNiceArray / xdots .inherit:n = nicematrix / xdots ,
+ pNiceArray / rules .inherit:n = nicematrix / rules ,
}
% \end{macrocode}
%
%
% \bigskip
% We finalise the definition of the set of keys
-% ``|NiceMatrix / NiceMatrixOptions|'' with the options specific to
+% ``|nicematrix / NiceMatrixOptions|'' with the options specific to
% |\NiceMatrixOptions|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrixOptions }
+\keys_define:nn { nicematrix / NiceMatrixOptions }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
width .dim_set:N = \l_@@_width_dim ,
width .value_required:n = true ,
@@ -2844,7 +2788,11 @@ version 2005/12/01 or later.
% In |\NiceMatrixOptions|, the special value |auto| is not available.
% \begin{macrocode}
columns-width .code:n =
- \tl_if_eq:nnTF { #1 } { auto }
+% \end{macrocode}
+% We use |\str_if_eq:nnTF| which is slightly faster than |\tl_if_eq:nnTF|.
+% |\str_if_eq:ee(TF)| is faster than |\str_if_eq:nn(TF)|.
+% \begin{macrocode}
+ \str_if_eq:eeTF { #1 } { auto }
{ \@@_error:n { Option~auto~for~columns-width } }
{ \dim_set:Nn \l_@@_columns_width_dim { #1 } } ,
% \end{macrocode}
@@ -2858,9 +2806,9 @@ version 2005/12/01 or later.
allow-duplicate-names .code:n =
\@@_msg_redirect_name:nn { Duplicate~name } { none } ,
allow-duplicate-names .value_forbidden:n = true ,
- notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
+ notes .code:n = \keys_set:nn { nicematrix / notes } { #1 } ,
notes .value_required:n = true ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
matrix / columns-type .tl_set:N = \l_@@_columns_type_tl ,
matrix / columns-type .value_required:n = true ,
@@ -2878,17 +2826,17 @@ version 2005/12/01 or later.
% current TeX group.
% \begin{macrocode}
\NewDocumentCommand \NiceMatrixOptions { m }
- { \keys_set:nn { NiceMatrix / NiceMatrixOptions } { #1 } }
+ { \keys_set:nn { nicematrix / NiceMatrixOptions } { #1 } }
% \end{macrocode}
%
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceMatrix|''.
+% We finalise the definition of the set of keys ``|nicematrix / NiceMatrix|''.
% That set of keys will be used by |{NiceMatrix}|, |{pNiceMatrix}|,
% |{bNiceMatrix}|, etc.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrix }
+\keys_define:nn { nicematrix / NiceMatrix }
{
last-col .code:n = \tl_if_empty:nTF { #1 }
{
@@ -2904,7 +2852,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
small .bool_set:N = \l_@@_small_bool ,
small .value_forbidden:n = true ,
@@ -2915,11 +2863,11 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceArray|''
+% We finalise the definition of the set of keys ``|nicematrix / NiceArray|''
% with the options specific to |{NiceArray}|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceArray }
+\keys_define:nn { nicematrix / NiceArray }
{
% \end{macrocode}
%
@@ -2941,10 +2889,10 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / pNiceArray }
+\keys_define:nn { nicematrix / pNiceArray }
{
first-col .code:n = \int_zero:N \l_@@_first_col_int ,
- last-col .code:n = \tl_if_empty:nF {#1}
+ last-col .code:n = \tl_if_empty:nF { #1 }
{ \@@_error:n { last-col~non~empty~for~NiceArray } }
\int_zero:N \l_@@_last_col_int ,
first-row .code:n = \int_zero:N \l_@@_first_row_int ,
@@ -2952,7 +2900,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
small .bool_set:N = \l_@@_small_bool ,
small .value_forbidden:n = true ,
@@ -2963,11 +2911,11 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceTabular|''
+% We finalise the definition of the set of keys ``|nicematrix / NiceTabular|''
% with the options specific to |{NiceTabular}|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceTabular }
+\keys_define:nn { nicematrix / NiceTabular }
{
% \end{macrocode}
% The dimension |width| will be used if at least a column of type |X| is used.
@@ -2976,7 +2924,7 @@ version 2005/12/01 or later.
width .code:n = \dim_set:Nn \l_@@_width_dim { #1 }
\bool_set_true:N \l_@@_width_used_bool ,
width .value_required:n = true ,
- notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
+ notes .code:n = \keys_set:nn { nicematrix / notes } { #1 } ,
tabularnote .tl_gset:N = \g_@@_tabularnote_tl ,
tabularnote .value_required:n = true ,
caption .tl_set:N = \l_@@_caption_tl ,
@@ -2985,7 +2933,7 @@ version 2005/12/01 or later.
short-caption .value_required:n = true ,
label .tl_set:N = \l_@@_label_tl ,
label .value_required:n = true ,
- last-col .code:n = \tl_if_empty:nF {#1}
+ last-col .code:n = \tl_if_empty:nF { #1 }
{ \@@_error:n { last-col~non~empty~for~NiceArray } }
\int_zero:N \l_@@_last_col_int ,
r .code:n = \@@_error:n { r~or~l~with~preamble } ,
@@ -3003,18 +2951,18 @@ version 2005/12/01 or later.
% We \emph{must} put the following instructions \emph{after} the :
%
% \begin{verbatim}
-% CodeAfter / sub-matrix .inherit:n = NiceMatrix / sub-matrix
+% CodeAfter / sub-matrix .inherit:n = nicematrix / sub-matrix
% \end{verbatim}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / CodeAfter }
+\keys_define:nn { nicematrix / CodeAfter }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
- xdots .code:n = \keys_set:nn { NiceMatrix / xdots } { #1 } ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ xdots .code:n = \keys_set:nn { nicematrix / xdots } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~CodeAfter }
}
@@ -3023,13 +2971,13 @@ version 2005/12/01 or later.
% \bigskip
% \section{Important code used by \{NiceArrayWithDelims\} }
%
-% The pseudo-environment |\@@_cell_begin:w|--|\@@_cell_end:| will be used to format the
+% The pseudo-environment |\@@_cell_begin:|--|\@@_cell_end:| will be used to format the
% cells of the array. In the code, the affectations are global because this
% pseudo-environment will be used in the cells of a |\halign| (via an
% environment |{array}|).
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_cell_begin:w
+\cs_new_protected:Npn \@@_cell_begin:
{
% \end{macrocode}
% |\g_@@_cell_after_hook_tl| will be set during the composition of the box
@@ -3074,30 +3022,57 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% The following command will be nullified unless there is a first row.
+%
+% Here is a version with the standard syntax of L3.
+% \begin{Verbatim}
+% \cs_new_protected:Npn \@@_tuning_first_row:
+% {
+% \int_if_zero:nT \c@iRow
+% {
+% \int_compare:nNnT \c@jCol > 0
+% {
+% \l_@@_code_for_first_row_tl
+% \xglobal \colorlet { nicematrix-first-row } { . }
+% }
+% }
+% }
+% \end{Verbatim}
+%
+% We will use a version a little more efficient.
% \begin{macrocode}
\cs_new_protected:Npn \@@_tuning_first_row:
{
- \int_if_zero:nT \c@iRow
- {
- \int_compare:nNnT \c@jCol > \c_zero_int
- {
- \l_@@_code_for_first_row_tl
- \xglobal \colorlet { nicematrix-first-row } { . }
- }
- }
+ \if_int_compare:w \c@iRow = \c_zero_int
+ \if_int_compare:w \c@jCol > \c_zero_int
+ \l_@@_code_for_first_row_tl
+ \xglobal \colorlet { nicematrix-first-row } { . }
+ \fi:
+ \fi:
}
% \end{macrocode}
%
+%
% The following command will be nullified unless there is a last row and we
% know its value (\emph{ie}: |\l_@@_lat_row_int > 0|).
+% \begin{Verbatim}
+% \cs_new_protected:Npn \@@_tuning_last_row:
+% {
+% \int_compare:nNnT \c@iRow = \l_@@_last_row_int
+% {
+% \l_@@_code_for_last_row_tl
+% \xglobal \colorlet { nicematrix-last-row } { . }
+% }
+% }
+% \end{Verbatim}
+%
+% We will use a version a little more efficient.
% \begin{macrocode}
\cs_new_protected:Npn \@@_tuning_last_row:
{
- \int_compare:nNnT \c@iRow = \l_@@_last_row_int
- {
- \l_@@_code_for_last_row_tl
- \xglobal \colorlet { nicematrix-last-row } { . }
- }
+ \if_int_compare:w \c@iRow = \l_@@_last_row_int
+ \l_@@_code_for_last_row_tl
+ \xglobal \colorlet { nicematrix-last-row } { . }
+ \fi:
}
% \end{macrocode}
%
@@ -3160,16 +3135,16 @@ version 2005/12/01 or later.
{
\int_if_zero:nTF \c@iRow
{
- \dim_gset:Nn \g_@@_dp_row_zero_dim
- { \dim_max:nn \g_@@_dp_row_zero_dim { \box_dp:N \l_@@_cell_box } }
- \dim_gset:Nn \g_@@_ht_row_zero_dim
- { \dim_max:nn \g_@@_ht_row_zero_dim { \box_ht:N \l_@@_cell_box } }
+ \dim_compare:nNnT { \box_dp:N \l_@@_cell_box } > \g_@@_dp_row_zero_dim
+ { \dim_gset:Nn \g_@@_dp_row_zero_dim { \box_dp:N \l_@@_cell_box } }
+ \dim_compare:nNnT { \box_ht:N \l_@@_cell_box } > \g_@@_ht_row_zero_dim
+ { \dim_gset:Nn \g_@@_ht_row_zero_dim { \box_ht:N \l_@@_cell_box } }
}
{
\int_compare:nNnT \c@iRow = \c_one_int
{
- \dim_gset:Nn \g_@@_ht_row_one_dim
- { \dim_max:nn \g_@@_ht_row_one_dim { \box_ht:N \l_@@_cell_box } }
+ \dim_compare:nNnT { \box_ht:N \l_@@_cell_box } > \g_@@_ht_row_zero_dim
+ { \dim_gset:Nn \g_@@_ht_row_zero_dim { \box_ht:N \l_@@_cell_box } }
}
}
}
@@ -3280,7 +3255,7 @@ version 2005/12/01 or later.
% \item we test the existence of these nodes in order to determine whether a
% cell is empty when we search the extremities of a dotted line.
% \end{itemize}
-% However, it's very difficult to determine whether a cell is empty. Up to now
+% However, it's difficult to determine whether a cell is empty. Up to now
% we use the following technic:
% \begin{itemize}
% \item for the columns of type |p|, |m|, |b|, |V| (of \pkg{varwidth}) or |X|,
@@ -3310,7 +3285,8 @@ version 2005/12/01 or later.
{ \box_use_drop:N \l_@@_cell_box }
}
}
- \int_gset:Nn \g_@@_col_total_int { \int_max:nn \g_@@_col_total_int \c@jCol }
+ \int_compare:nNnT \c@jCol > \g_@@_col_total_int
+ { \int_gset_eq:NN \g_@@_col_total_int \c@jCol }
\bool_gset_false:N \g_@@_empty_cell_bool
\bool_gset_false:N \g_@@_not_empty_cell_bool
}
@@ -3411,7 +3387,7 @@ version 2005/12/01 or later.
{ \@@_env: - \int_use:N \c@iRow - \int_use:N \c@jCol - NW }
% \end{macrocode}
% I don't know why the following adjustement is needed when the compilation is
-% done with XeLaTeX or with the classical way |latex|, |divps|, |ps2pdf| (or
+% done with XeLaTeX or with the classical way |latex|, |dvips|, |ps2pdf| (or
% Adobe Distiller). However, it seems to work.
% \begin{macrocode}
#1
@@ -3484,7 +3460,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_instruction_of_type:nnn #1 #2 #3
{
- \bool_if:nTF { #1 } \tl_gput_left:cx \tl_gput_right:cx
+ \bool_if:nTF { #1 } \tl_gput_left:ce \tl_gput_right:ce
{ g_@@_ #2 _ lines _ tl }
{
\use:c { @@ _ draw _ #2 : nnn }
@@ -3497,14 +3473,15 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\cs_new_protected:Npn \@@_array:
+\cs_generate_variant:Nn \@@_array:n { o }
+\cs_new_protected:Npn \@@_array:n
{
% \begin{macrocode}
\dim_set:Nn \col@sep
{ \bool_if:NTF \l_@@_tabular_bool \tabcolsep \arraycolsep }
\dim_compare:nNnTF \l_@@_tabular_width_dim = \c_zero_dim
{ \cs_set_nopar:Npn \@halignto { } }
- { \cs_set_nopar:Npx \@halignto { to \dim_use:N \l_@@_tabular_width_dim } }
+ { \cs_set_nopar:Npe \@halignto { to \dim_use:N \l_@@_tabular_width_dim } }
% \end{macrocode}
% It \pkg{colortbl} is loaded, |\@tabarray| has been redefined to incorporate
% |\CT@start|.
@@ -3513,10 +3490,11 @@ version 2005/12/01 or later.
% \end{macrocode}
% |\l_@@_baseline_tl| may have the value |t|, |c| or |b|. However, if the value
% is |b|, we compose the |\array| (of \pkg{array}) with the option |t| and the
-% right translation will be done further. Remark that |\str_if_eq:onTF| is
+% right translation will be done further. Remark that |\str_if_eq:eeTF| is
% fully expandable and we need something fully expandable here.
+% |\str_if_eq:ee(TF)| is faster than |\str_if_eq:nn(TF)|.
% \begin{macrocode}
- [ \str_if_eq:onTF \l_@@_baseline_tl c c t ]
+ [ \str_if_eq:eeTF \l_@@_baseline_tl c c t ]
}
% \end{macrocode}
%
@@ -3606,12 +3584,11 @@ version 2005/12/01 or later.
% We don't draw now the rules of the key |hlines| (or |hvlines|) but we reserve the
% vertical space for theses rules (the rules will be drawn by \textsc{pgf}).
% \begin{macrocode}
- \tl_if_empty:NF \l_@@_hlines_clist
+ \clist_if_empty:NF \l_@@_hlines_clist
{
- \tl_if_eq:NNF \l_@@_hlines_clist \c_@@_all_tl
+ \str_if_eq:eeF \l_@@_hlines_clist { all }
{
- \exp_args:NNe
- \clist_if_in:NnT
+ \clist_if_in:NeT
\l_@@_hlines_clist
{ \int_eval:n { \c@iRow + 1 } }
}
@@ -3670,22 +3647,22 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\cs_new_protected:Npn \@@_redefine_everycr: { \everycr { \@@_everycr: } }
- \hook_gput_code:nnn { begindocument } { . }
- {
- \IfPackageLoadedTF { colortbl }
- {
- \cs_set_protected:Npn \@@_redefine_everycr:
- {
- \CT@everycr
- {
- \noalign { \cs_gset_eq:NN \CT@row@color \prg_do_nothing: }
- \@@_everycr:
- }
- }
- }
- { }
- }
+\cs_new_protected:Npn \@@_redefine_everycr:
+ { \everycr { \@@_everycr: } }
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \IfPackageLoadedT { colortbl }
+ {
+ \cs_set_protected:Npn \@@_redefine_everycr:
+ {
+ \CT@everycr
+ {
+ \noalign { \cs_gset_eq:NN \CT@row@color \prg_do_nothing: }
+ \@@_everycr:
+ }
+ }
+ }
+ }
% \end{macrocode}
%
% If \pkg{booktabs} is loaded, we have to patch the macro |\@BTnormal| which is
@@ -3732,16 +3709,16 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
-% \bigskip
-% The following code |\@@_pre_array_ii:| is used in |{NiceArrayWithDelims}|. It
-% exists as a standalone macro only for legibility.
+% \vspace{1cm}
+%
% \label{prearray}
%
% \begin{macrocode}
\cs_new_protected:Npn \@@_pre_array_ii:
{
% \end{macrocode}
+%
+% \bigskip
% The number of letters |X| in the preamble of the array.
% \begin{macrocode}
\int_gzero:N \g_@@_total_X_weight_int
@@ -3925,7 +3902,7 @@ version 2005/12/01 or later.
% The counter |\c@jCol| will be used to count the columns of the array.
% Since we want to know the total number of columns of the matrix, we also
% create a counter |\g_@@_col_total_int|. These counters are updated in the
-% command |\@@_cell_begin:w| executed at the beginning of each cell.
+% command |\@@_cell_begin:| executed at the beginning of each cell.
% \begin{macrocode}
\int_gzero_new:N \g_@@_col_total_int
% \end{macrocode}
@@ -3995,17 +3972,17 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% If there is an exterior row, we patch a command used in |\@@_cell_begin:w| in order to
+% If there is an exterior row, we patch a command used in |\@@_cell_begin:| in order to
% keep track of some dimensions needed to the construction of that ``last row''.
% \begin{macrocode}
\int_compare:nNnT \l_@@_last_row_int > { -2 }
{
\tl_put_right:Nn \@@_update_for_first_and_last_row:
{
- \dim_gset:Nn \g_@@_ht_last_row_dim
- { \dim_max:nn \g_@@_ht_last_row_dim { \box_ht:N \l_@@_cell_box } }
- \dim_gset:Nn \g_@@_dp_last_row_dim
- { \dim_max:nn \g_@@_dp_last_row_dim { \box_dp:N \l_@@_cell_box } }
+ \dim_compare:nNnT \g_@@_ht_last_row_dim < { \box_ht:N \l_@@_cell_box }
+ { \dim_gset:Nn \g_@@_ht_last_row_dim { \box_ht:N \l_@@_cell_box } }
+ \dim_compare:nNnT \g_@@_dp_last_row_dim < { \box_dp:N \l_@@_cell_box }
+ { \dim_gset:Nn \g_@@_dp_last_row_dim { \box_dp:N \l_@@_cell_box } }
}
}
% \end{macrocode}
@@ -4115,7 +4092,7 @@ version 2005/12/01 or later.
\tl_set:Nn \l_tmpa_tl { #1 }
\int_compare:nNnT { \char_value_catcode:n { 60 } } = { 13 }
{ \@@_rescan_for_spanish:N \l_tmpa_tl }
- \tl_gput_left:NV \g_@@_pre_code_before_tl \l_tmpa_tl
+ \tl_gput_left:No \g_@@_pre_code_before_tl \l_tmpa_tl
\bool_set_true:N \l_@@_code_before_bool
% \end{macrocode}
% We go on with |\@@_pre_array:| which will (among other) execute the
@@ -4200,7 +4177,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
- \IfPackageLoadedTF { tikz }
+ \IfPackageLoadedT { tikz }
{
\tikzset
{
@@ -4208,7 +4185,6 @@ version 2005/12/01 or later.
{ overlay , name~prefix = \@@_env: - }
}
}
- { }
\cs_set_eq:NN \cellcolor \@@_cellcolor
\cs_set_eq:NN \rectanglecolor \@@_rectanglecolor
\cs_set_eq:NN \roundedrectanglecolor \@@_roundedrectanglecolor
@@ -4228,6 +4204,16 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_exec_code_before:
{
+% \end{macrocode}
+% We mark the cells which are in the (empty) corners because those cells must
+% not be colored. We should try to find a way to detected whether we actually
+% have coloring instructions to execute...
+% \begin{macrocode}
+ \clist_map_inline:Nn \l_@@_corners_cells_clist
+ { \cs_set_nopar:cpn { @@ _ corner _ ##1 } { } }
+% \end{macrocode}
+%
+% \begin{macrocode}
\seq_gclear_new:N \g_@@_colors_seq
% \end{macrocode}
% The sequence |\g_@@_colors_seq| will always contain as first element the
@@ -4262,7 +4248,7 @@ version 2005/12/01 or later.
% of cell nodes in the |\CodeBefore|). That's why we use a |\q_stop|: it
% will be used to discard the rest of |\g_@@_pre_code_before_tl|.
% \begin{macrocode}
- \exp_last_unbraced:NV \@@_CodeBefore_keys:
+ \exp_last_unbraced:No \@@_CodeBefore_keys:
\g_@@_pre_code_before_tl
% \end{macrocode}
% Now, all the cells which are specified to be colored by instructions in the
@@ -4282,11 +4268,11 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / CodeBefore }
+\keys_define:nn { nicematrix / CodeBefore }
{
create-cell-nodes .bool_gset:N = \g_@@_recreate_cell_nodes_bool ,
create-cell-nodes .default:n = true ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
@@ -4298,7 +4284,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\NewDocumentCommand \@@_CodeBefore_keys: { O { } }
{
- \keys_set:nn { NiceMatrix / CodeBefore } { #1 }
+ \keys_set:nn { nicematrix / CodeBefore } { #1 }
\@@_CodeBefore:w
}
% \end{macrocode}
@@ -4548,7 +4534,7 @@ version 2005/12/01 or later.
\tl_if_empty:NF \g_@@_code_before_tl
{
\bool_set_true:N \l_@@_code_before_bool
- \tl_put_right:NV \l_@@_code_before_tl \g_@@_code_before_tl
+ \tl_put_right:No \l_@@_code_before_tl \g_@@_code_before_tl
}
\tl_if_empty:NF \g_@@_pre_code_before_tl
{ \bool_set_true:N \l_@@_code_before_bool }
@@ -4559,8 +4545,8 @@ version 2005/12/01 or later.
% |{NiceArray}|, we have the options |t|, |c|, |b| and |baseline|.
% \begin{macrocode}
\bool_if:NTF \g_@@_delims_bool
- { \keys_set:nn { NiceMatrix / pNiceArray } }
- { \keys_set:nn { NiceMatrix / NiceArray } }
+ { \keys_set:nn { nicematrix / pNiceArray } }
+ { \keys_set:nn { nicematrix / NiceArray } }
{ #3 , #5 }
% \end{macrocode}
%
@@ -4592,7 +4578,7 @@ version 2005/12/01 or later.
\skip_horizontal:N \l_@@_right_margin_dim
\skip_horizontal:N \l_@@_extra_right_margin_dim
- % % awful workaround
+ % awful workaround
\int_compare:nNnT \g_@@_col_total_int = \c_one_int
{
\dim_compare:nNnT \l_@@_columns_width_dim > \c_zero_dim
@@ -4626,7 +4612,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\int_compare:nNnT \g_@@_total_X_weight_int > \c_zero_int
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\bool_set_true:N \l_@@_X_columns_aux_bool
\dim_set:Nn \l_@@_X_columns_dim
@@ -4709,10 +4695,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_if:nTF { ! \g_@@_delims_bool }
{
- \tl_if_eq:NNTF \l_@@_baseline_tl \c_@@_c_tl
+ \str_if_eq:eeTF \l_@@_baseline_tl { c }
\@@_use_arraybox_with_notes_c:
{
- \tl_if_eq:NNTF \l_@@_baseline_tl \c_@@_b_tl
+ \str_if_eq:eeTF \l_@@_baseline_tl { b }
\@@_use_arraybox_with_notes_b:
\@@_use_arraybox_with_notes:
}
@@ -4823,7 +4809,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\iow_now:Nn \@mainaux { \ExplSyntaxOn }
\iow_now:Nn \@mainaux { \char_set_catcode_space:n { 32 } }
- \iow_now:Nx \@mainaux
+ \iow_now:Ne \@mainaux
{
\tl_gset:cn { c_@@_ \int_use:N \g_@@_env_int _ tl }
{ \exp_not:o \g_@@_aux_tl }
@@ -4901,7 +4887,7 @@ version 2005/12/01 or later.
% Now, we actually make the preamble (which will be given to |{array}|). It will
% be stored in |\g_@@_array_preamble_tl|.
% \begin{macrocode}
- \exp_last_unbraced:NV \@@_rec_preamble:n \g_@@_user_preamble_tl \stop
+ \exp_last_unbraced:No \@@_rec_preamble:n \g_@@_user_preamble_tl \@@_stop:
\int_gset_eq:NN \g_@@_static_num_of_col_int \c@jCol
% \end{macrocode}
%
@@ -4973,7 +4959,7 @@ version 2005/12/01 or later.
{
\bool_if:NF \l_@@_tabular_bool
{
- \tl_if_empty:NT \l_@@_vlines_clist
+ \clist_if_empty:NT \l_@@_vlines_clist
{
\bool_if:NF \l_@@_exterior_arraycolsep_bool
{ \tl_gput_left:Nn \g_@@_array_preamble_tl { @ { } } }
@@ -4988,7 +4974,7 @@ version 2005/12/01 or later.
{
\bool_if:NF \l_@@_tabular_bool
{
- \tl_if_empty:NT \l_@@_vlines_clist
+ \clist_if_empty:NT \l_@@_vlines_clist
{
\bool_if:NF \l_@@_exterior_arraycolsep_bool
{ \tl_gput_right:Nn \g_@@_array_preamble_tl { @ { } } }
@@ -5035,10 +5021,13 @@ version 2005/12/01 or later.
\cs_if_exist:cTF { NC @ find @ #1 }
{
\tl_set_eq:Nc \l_tmpb_tl { NC @ rewrite @ #1 }
- \exp_last_unbraced:NV \@@_rec_preamble:n \l_tmpb_tl
+ \exp_last_unbraced:No \@@_rec_preamble:n \l_tmpb_tl
}
{
- \tl_if_eq:nnT { #1 } { S }
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \str_if_eq:nnTF { #1 } { S }
{ \@@_fatal:n { unknown~column~type~S } }
{ \@@_fatal:nn { unknown~column~type } { #1 } }
}
@@ -5056,7 +5045,7 @@ version 2005/12/01 or later.
\tl_gput_right:No \g_@@_array_preamble_tl \g_@@_pre_cell_tl
\tl_gclear:N \g_@@_pre_cell_tl
\tl_gput_right:Nn \g_@@_array_preamble_tl
- { > \@@_cell_begin:w c < \@@_cell_end: }
+ { > \@@_cell_begin: c < \@@_cell_end: }
% \end{macrocode}
%
% We increment the counter of columns and then we test for the presence of a |<|.
@@ -5072,7 +5061,7 @@ version 2005/12/01 or later.
\tl_gclear:N \g_@@_pre_cell_tl
\tl_gput_right:Nn \g_@@_array_preamble_tl
{
- > { \@@_cell_begin:w \tl_set_eq:NN \l_@@_hpos_cell_tl \c_@@_l_tl }
+ > { \@@_cell_begin: \tl_set_eq:NN \l_@@_hpos_cell_tl \c_@@_l_tl }
l
< \@@_cell_end:
}
@@ -5087,7 +5076,7 @@ version 2005/12/01 or later.
\tl_gclear:N \g_@@_pre_cell_tl
\tl_gput_right:Nn \g_@@_array_preamble_tl
{
- > { \@@_cell_begin:w \tl_set_eq:NN \l_@@_hpos_cell_tl \c_@@_r_tl }
+ > { \@@_cell_begin: \tl_set_eq:NN \l_@@_hpos_cell_tl \c_@@_r_tl }
r
< \@@_cell_end:
}
@@ -5124,7 +5113,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_i_i:n #1
{
- \str_if_eq:nnTF { #1 } |
+ \str_if_eq:nnTF { #1 } { | }
{ \use:c { @@ _ | } | }
{ \@@_make_preamble_i_ii:nn { } #1 }
}
@@ -5133,7 +5122,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_i_ii:nn #1 #2
{
- \str_if_eq:nnTF { #2 } [
+ \str_if_eq:nnTF { #2 } { [ }
{ \@@_make_preamble_i_ii:nw { #1 } [ }
{ \@@_make_preamble_i_iii:nn { #2 } { #1 } }
}
@@ -5145,14 +5134,14 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_make_preamble_i_iii:nn #1 #2
{
\@@_compute_rule_width:n { multiplicity = \l_tmpa_int , #2 }
- \tl_gput_right:Nx \g_@@_array_preamble_tl
+ \tl_gput_right:Ne \g_@@_array_preamble_tl
{
% \end{macrocode}
-% Here, the command |\dim_eval:n| is mandatory.
+% Here, the command |\dim_use:N| is mandatory.
% \begin{macrocode}
- \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_@@_rule_width_dim } } }
+ \exp_not:N ! { \skip_horizontal:N \dim_use:N \l_@@_rule_width_dim }
}
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_vline:n
{
@@ -5168,7 +5157,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
}
\int_zero:N \l_tmpa_int
- \str_if_eq:nnT { #1 } { \stop } { \bool_gset_true:N \g_tmpb_bool }
+ \str_if_eq:nnT { #1 } { \@@_stop: } { \bool_gset_true:N \g_tmpb_bool }
\@@_rec_preamble:n #1
}
% \end{macrocode}
@@ -5199,31 +5188,7 @@ version 2005/12/01 or later.
c .value_forbidden:n = true ,
l .code:n = \str_set_eq:NN \l_@@_hpos_col_str \c_@@_l_str ,
l .value_forbidden:n = true ,
- R .code:n =
- \IfPackageLoadedTF { ragged2e }
- { \str_set_eq:NN \l_@@_hpos_col_str \c_@@_R_str }
- {
- \@@_error_or_warning:n { ragged2e~not~loaded }
- \str_set_eq:NN \l_@@_hpos_col_str \c_@@_r_str
- } ,
- R .value_forbidden:n = true ,
- L .code:n =
- \IfPackageLoadedTF { ragged2e }
- { \str_set_eq:NN \l_@@_hpos_col_str \c_@@_L_stsr }
- {
- \@@_error_or_warning:n { ragged2e~not~loaded }
- \str_set_eq:NN \l_@@_hpos_col_str \c_@@_l_str
- } ,
- L .value_forbidden:n = true ,
- C .code:n =
- \IfPackageLoadedTF { ragged2e }
- { \str_set_eq:NN \l_@@_hpos_col_str \c_@@_C_str }
- {
- \@@_error_or_warning:n { ragged2e~not~loaded }
- \str_set_eq:NN \l_@@_hpos_col_str \c_@@_c_str
- } ,
- C .value_forbidden:n = true ,
- S .code:n = \str_set_eq:NN \l_@@_hpos_col_str \c_@@_si_str ,
+ S .code:n = \str_set:Nn \l_@@_hpos_col_str { si } ,
S .value_forbidden:n = true ,
p .code:n = \str_set:Nn \l_@@_vpos_col_str { p } ,
p .value_forbidden:n = true ,
@@ -5231,7 +5196,7 @@ version 2005/12/01 or later.
m .code:n = \str_set:Nn \l_@@_vpos_col_str { m } ,
m .value_forbidden:n = true ,
b .code:n = \str_set:Nn \l_@@_vpos_col_str { b } ,
- b .value_forbidden:n = true ,
+ b .value_forbidden:n = true
}
% \end{macrocode}
%
@@ -5279,7 +5244,7 @@ version 2005/12/01 or later.
% the initial value), |l|, |c|, |r|, |L|, |C| and |R| (when the user has used
% the corresponding key in the optional argument of the specifier).
% \begin{macrocode}
- \str_set_eq:NN \l_@@_hpos_col_str \c_@@_j_str
+ \str_set:Nn \l_@@_hpos_col_str { j }
\@@_keys_p_column:n { #1 }
\@@_make_preamble_ii_iv:nnn { #2 } { minipage } { }
}
@@ -5300,7 +5265,7 @@ version 2005/12/01 or later.
\use:e
{
\@@_make_preamble_ii_v:nnnnnnnn
- { \str_if_eq:onTF \l_@@_vpos_col_str { p } { t } { b } }
+ { \str_if_eq:eeTF \l_@@_vpos_col_str { p } { t } { b } }
{ \dim_eval:n { #1 } }
{
% \end{macrocode}
@@ -5309,26 +5274,37 @@ version 2005/12/01 or later.
% itself, you will have, in each cell, the parameter |\l_@@_hpos_cell_tl| which
% will provide the horizontal alignment of the column to which belongs the cell.
% \begin{macrocode}
- \str_if_eq:NNTF \l_@@_hpos_col_str \c_@@_j_str
+ \str_if_eq:nnTF \l_@@_hpos_col_str { j }
{ \tl_clear:N \exp_not:N \l_@@_hpos_cell_tl }
{
+% \end{macrocode}
+% Here, we use |\cs_set_nopar:Npn| instead of |\tl_set:Nn| for efficiency only.
+% \begin{macrocode}
\cs_set_nopar:Npn \exp_not:N \l_@@_hpos_cell_tl
{ \str_lowercase:o \l_@@_hpos_col_str }
- }
- \str_case:on \l_@@_hpos_col_str
+ }
+ \IfPackageLoadedTF { ragged2e }
+ {
+ \str_case:on \l_@@_hpos_col_str
+ {
+ c { \exp_not:N \Centering }
+ l { \exp_not:N \RaggedRight }
+ r { \exp_not:N \RaggedLeft }
+ }
+ }
{
- c { \exp_not:N \centering }
- l { \exp_not:N \raggedright }
- r { \exp_not:N \raggedleft }
- C { \exp_not:N \Centering }
- L { \exp_not:N \RaggedRight }
- R { \exp_not:N \RaggedLeft }
+ \str_case:on \l_@@_hpos_col_str
+ {
+ c { \exp_not:N \centering }
+ l { \exp_not:N \raggedright }
+ r { \exp_not:N \raggedleft }
+ }
}
#3
}
- { \str_if_eq:onT \l_@@_vpos_col_str { m } \@@_center_cell_box: }
- { \str_if_eq:onT \l_@@_hpos_col_str { si } \siunitx_cell_begin:w }
- { \str_if_eq:onT \l_@@_hpos_col_str { si } \siunitx_cell_end: }
+ { \str_if_eq:nnT \l_@@_vpos_col_str { m } \@@_center_cell_box: }
+ { \str_if_eq:nnT \l_@@_hpos_col_str { si } \siunitx_cell_begin:w }
+ { \str_if_eq:nnT \l_@@_hpos_col_str { si } \siunitx_cell_end: }
{ #2 }
{
\str_case:onF \l_@@_hpos_col_str
@@ -5373,14 +5349,20 @@ version 2005/12/01 or later.
%
% |#7| is the type of environment: |minipage| or |varwidth|.
%
-% |#8| is the letter |c| or |r| or |l| which is the basic specificier of column
+% |#8| is the letter |c| or |r| or |l| which is the basic specifier of column
% which is used \emph{in fine}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_ii_v:nnnnnnnn #1 #2 #3 #4 #5 #6 #7 #8
{
- \tl_if_eq:NNTF \l_@@_hpos_col_str \c_@@_si_str
- { \tl_gput_right:Nn \g_@@_array_preamble_tl { > { \@@_test_if_empty_for_S: } } }
- { \tl_gput_right:Nn \g_@@_array_preamble_tl { > { \@@_test_if_empty: } } }
+ \str_if_eq:eeTF \l_@@_hpos_col_str { si }
+ {
+ \tl_gput_right:Nn \g_@@_array_preamble_tl
+ { > \@@_test_if_empty_for_S: }
+ }
+ {
+ \tl_gput_right:Nn \g_@@_array_preamble_tl
+ { > \@@_test_if_empty: }
+ }
\tl_gput_right:No \g_@@_array_preamble_tl \g_@@_pre_cell_tl
\tl_gclear:N \g_@@_pre_cell_tl
\tl_gput_right:Nn \g_@@_array_preamble_tl
@@ -5394,7 +5376,7 @@ version 2005/12/01 or later.
\dim_set:Nn \l_@@_col_width_dim { #2 }
\bool_if:NT \c_@@_testphase_table_bool
{ \tag_struct_begin:n { tag = Div } }
- \@@_cell_begin:w
+ \@@_cell_begin:
% \end{macrocode}
% We use the form |\minipage|--|\endminipage| (|\varwidth|--|\endvarwidth|) for
% compatibility with \pkg{collcell} (2023-10-31).
@@ -5442,63 +5424,43 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+% The cell always begins with |\ignorespaces| with \pkg{array} and that's why we
+% retrieve that token.
% \begin{macrocode}
-\str_new:N \c_@@_ignorespaces_str
-\str_set:Nx \c_@@_ignorespaces_str { \ignorespaces }
-\str_remove_all:Nn \c_@@_ignorespaces_str { ~ }
-\cs_new_protected:Npn \@@_test_if_empty:
- { \peek_after:Nw \@@_test_if_empty_i: }
-\cs_new_protected:Npn \@@_test_if_empty_i:
- {
- \str_set:Nx \l_tmpa_str { \token_to_meaning:N \l_peek_token }
- \str_if_eq:NNT \l_tmpa_str \c_@@_ignorespaces_str
- { \@@_test_if_empty:w }
- }
-\cs_new_protected:Npn \@@_test_if_empty:w \ignorespaces
- { \peek_after:Nw \@@_test_if_empty_ii: }
+\cs_new_protected:Npn \@@_test_if_empty: \ignorespaces
+ {
% \end{macrocode}
-%
-% \bigskip
+% We open a special group with |\group_align_safe_begin:|. Thus, when
+% |\peek_meaning:NTF| will read the |&| (when the cell is empty), that lecture
+% won't trigger the end of the cell (since we are in a lower group...). If the
+% end of cell was trigerred, we would have other tokens in the TeX flow (and not
+% |&|).
% \begin{macrocode}
-\cs_new_protected:Npn \@@_nullify_cell:
- {
- \tl_gput_right:Nn \g_@@_cell_after_hook_tl
+ \group_align_safe_begin:
+ \peek_meaning:NTF &
{
- \box_set_wd:Nn \l_@@_cell_box \c_zero_dim
- \skip_horizontal:N \l_@@_col_width_dim
- }
- }
-% \end{macrocode}
-%
-% \bigskip
-% \begin{macrocode}
-\bool_if:NTF \c_@@_tagging_array_bool
- {
- \cs_new_protected:Npn \@@_test_if_empty_ii:
- { \peek_meaning:NT \textonly@unskip \@@_nullify_cell: }
- }
+ \group_align_safe_end:
+ \tl_gput_right:Nn \g_@@_cell_after_hook_tl
+ {
% \end{macrocode}
-% In the old version of \pkg{array}, we test whether it begins by
-% |\ignorespaces\unskip|. However, in some circunstancies, for example when
-% |\collectcell| of \pkg{collcell} is used, the cell does not begin with
-% |\ignorespaces|. In that case, we consider as not empty...
-% First, we test if the next token is |\ignorespaces| and it's not very easy...
+% Be careful: here, we can't merely use
+% |\bool_gset_true: \g_@@_empty_cell_bool|,
+% in particular because of the columns of type~|X|.
% \begin{macrocode}
- {
- \cs_new_protected:Npn \@@_test_if_empty_ii:
- { \peek_meaning:NT \unskip \@@_nullify_cell: }
+ \box_set_wd:Nn \l_@@_cell_box \c_zero_dim
+ \skip_horizontal:N \l_@@_col_width_dim
+ }
+ }
+ { \group_align_safe_end: }
}
% \end{macrocode}
-%
+%
%
% \begin{macrocode}
\cs_new_protected:Npn \@@_test_if_empty_for_S:
{
\peek_meaning:NT \__siunitx_table_skip:n
- {
- \tl_gput_right:Nn \g_@@_cell_after_hook_tl
- { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim }
- }
+ { \bool_gset_true:N \g_@@_empty_cell_bool }
}
% \end{macrocode}
%
@@ -5534,7 +5496,7 @@ version 2005/12/01 or later.
\box_move_down:nn
{
( \box_ht:N \l_@@_cell_box - \box_ht:N \@arstrutbox
- + \baselineskip ) / 2
+ + \baselineskip ) / 2
}
{ \box_use:N \l_@@_cell_box }
}
@@ -5548,7 +5510,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new:Npn \@@_V #1 #2
{
- \str_if_eq:nnTF { #2 } { [ }
+ \str_if_eq:nnTF { #1 } { [ }
{ \@@_make_preamble_V_i:w [ }
{ \@@_make_preamble_V_i:w [ ] { #2 } }
}
@@ -5557,7 +5519,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_make_preamble_V_ii:nn #1 #2
{
\str_set:Nn \l_@@_vpos_col_str { p }
- \str_set_eq:NN \l_@@_hpos_col_str \c_@@_j_str
+ \str_set:Nn \l_@@_hpos_col_str { j }
\@@_keys_p_column:n { #1 }
\IfPackageLoadedTF { varwidth }
{ \@@_make_preamble_ii_iv:nnn { #2 } { varwidth } { } }
@@ -5608,7 +5570,7 @@ version 2005/12/01 or later.
{
> {
\dim_set:Nn \l_@@_col_width_dim { #2 }
- \@@_cell_begin:w
+ \@@_cell_begin:
\tl_set_eq:NN \l_@@_hpos_cell_tl \c_@@_c_tl
}
c
@@ -5642,7 +5604,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\dim_set:Nn \l_@@_col_width_dim { #4 }
\hbox_set:Nw \l_@@_cell_box
- \@@_cell_begin:w
+ \@@_cell_begin:
\cs_set_nopar:Npn \l_@@_hpos_cell_tl { #3 }
}
c
@@ -5676,7 +5638,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new:Npn \@@_S #1 #2
{
- \str_if_eq:nnTF { #2 } { [ }
+ \str_if_eq:nnTF { #1 } { [ }
{ \@@_make_preamble_S:w [ }
{ \@@_make_preamble_S:w [ ] { #2 } }
}
@@ -5690,27 +5652,24 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_S_i:n #1
{
- \IfPackageLoadedTF { siunitx }
+ \IfPackageLoadedF { siunitx } { \@@_fatal:n { siunitx~not~loaded } }
+ \tl_gput_right:No \g_@@_array_preamble_tl \g_@@_pre_cell_tl
+ \tl_gclear:N \g_@@_pre_cell_tl
+ \tl_gput_right:Nn \g_@@_array_preamble_tl
{
- \tl_gput_right:No \g_@@_array_preamble_tl \g_@@_pre_cell_tl
- \tl_gclear:N \g_@@_pre_cell_tl
- \tl_gput_right:Nn \g_@@_array_preamble_tl
- {
- > {
- \@@_cell_begin:w
- \keys_set:nn { siunitx } { #1 }
- \siunitx_cell_begin:w
- }
- c
- < { \siunitx_cell_end: \@@_cell_end: }
+ > {
+ \@@_cell_begin:
+ \keys_set:nn { siunitx } { #1 }
+ \siunitx_cell_begin:w
}
+ c
+ < { \siunitx_cell_end: \@@_cell_end: }
+ }
% \end{macrocode}
% We increment the counter of columns and then we test for the presence of a |<|.
% \begin{macrocode}
- \int_gincr:N \c@jCol
- \@@_rec_preamble_after_col:n
- }
- { \@@_fatal:n { siunitx~not~loaded } }
+ \int_gincr:N \c@jCol
+ \@@_rec_preamble_after_col:n
}
% \end{macrocode}
%
@@ -5751,7 +5710,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_iv:nn #1 #2
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_eval:n { \c@jCol + 1 } } \c_true_bool }
\tl_if_in:nnTF { ( [ \{ ) ] \} \left \right } { #2 }
{
@@ -5781,13 +5740,13 @@ version 2005/12/01 or later.
\tl_if_in:nnTF { ) ] \} } { #2 }
{ \@@_make_preamble_v:nnn #1 #2 }
{
- \tl_if_eq:nnTF { \stop } { #2 }
+ \str_if_eq:nnTF { \@@_stop: } { #2 }
{
\tl_if_eq:NNTF \g_@@_right_delim_tl \c_@@_dot_tl
{ \tl_gset:Nn \g_@@_right_delim_tl { #1 } }
{
\tl_gput_right:Nn \g_@@_array_preamble_tl { ! { \enskip } }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
\@@_rec_preamble:n #2
}
@@ -5795,7 +5754,7 @@ version 2005/12/01 or later.
{
\tl_if_in:nnT { ( [ \{ \left } { #2 }
{ \tl_gput_right:Nn \g_@@_array_preamble_tl { ! { \enskip } } }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
\@@_rec_preamble:n #2
}
@@ -5808,24 +5767,24 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_v:nnn #1 #2 #3
{
- \tl_if_eq:nnTF { \stop } { #3 }
+ \str_if_eq:nnTF { \@@_stop: } { #3 }
{
\tl_if_eq:NNTF \g_@@_right_delim_tl \c_@@_dot_tl
{
\tl_gput_right:Nn \g_@@_array_preamble_tl { ! { \enskip } }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
\tl_gset:Nn \g_@@_right_delim_tl { #2 }
}
{
\tl_gput_right:Nn \g_@@_array_preamble_tl { ! { \enskip } }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
\@@_error:nn { double~closing~delimiter } { #2 }
}
}
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{ \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
\@@_error:nn { double~closing~delimiter } { #2 }
\@@_rec_preamble:n #3
@@ -5836,7 +5795,7 @@ version 2005/12/01 or later.
% \medskip
% \begin{macrocode}
\cs_new:cpn { @@ _ \token_to_str:N \right } #1
- { \use:c { @@ _ \token_to_str:N ) } }
+ { \use:c { @@ _ \token_to_str:N ) } }
% \end{macrocode}
%
%
@@ -5847,26 +5806,26 @@ version 2005/12/01 or later.
% also to test whether there is, after the |<{...}|, a |@{...}|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_rec_preamble_after_col:n #1
- {
+ {
\str_if_eq:nnTF { #1 } { < }
\@@_rec_preamble_after_col_i:n
{
\str_if_eq:nnTF { #1 } { @ }
\@@_rec_preamble_after_col_ii:n
{
- \tl_if_eq:NNTF \l_@@_vlines_clist \c_@@_all_tl
+ \str_if_eq:nnTF \l_@@_vlines_clist { all }
{
\tl_gput_right:Nn \g_@@_array_preamble_tl
{ ! { \skip_horizontal:N \arrayrulewidth } }
}
{
- \exp_args:NNe
- \clist_if_in:NnT \l_@@_vlines_clist { \int_eval:n { \c@jCol + 1 } }
+ \clist_if_in:NeT \l_@@_vlines_clist
+ { \int_eval:n { \c@jCol + 1 } }
{
\tl_gput_right:Nn \g_@@_array_preamble_tl
{ ! { \skip_horizontal:N \arrayrulewidth } }
}
- }
+ }
\@@_rec_preamble:n { #1 }
}
}
@@ -5893,8 +5852,7 @@ version 2005/12/01 or later.
{ @ { #1 \skip_horizontal:N \arrayrulewidth } }
}
{
- \exp_args:NNe
- \clist_if_in:NnTF \l_@@_vlines_clist { \int_eval:n { \c@jCol + 1 } }
+ \clist_if_in:NeTF \l_@@_vlines_clist { \int_eval:n { \c@jCol + 1 } }
{
\tl_gput_right:Nn \g_@@_array_preamble_tl
{ @ { #1 \skip_horizontal:N \arrayrulewidth } }
@@ -5999,7 +5957,6 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_if:NTF \l_@@_X_columns_aux_bool
{
- \exp_args:Nne
\@@_make_preamble_ii_iv:nnn
{ \l_@@_weight_int \l_@@_X_columns_dim }
{ minipage }
@@ -6009,7 +5966,7 @@ version 2005/12/01 or later.
\tl_gput_right:Nn \g_@@_array_preamble_tl
{
> {
- \@@_cell_begin:w
+ \@@_cell_begin:
\bool_set_true:N \l_@@_X_bool
% \end{macrocode}
% You encounter a problem on 2023-03-04: for an environment with |X| columns,
@@ -6056,19 +6013,19 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_preamble_vlism:n #1
{
- \seq_gput_right:Nx \g_@@_cols_vlism_seq
+ \seq_gput_right:Ne \g_@@_cols_vlism_seq
{ \int_eval:n { \c@jCol + 1 } }
- \tl_gput_right:Nx \g_@@_array_preamble_tl
+ \tl_gput_right:Ne \g_@@_array_preamble_tl
{ \exp_not:N ! { \skip_horizontal:N \arrayrulewidth } }
\@@_rec_preamble:n
}
% \end{macrocode}
%
% \medskip
-% The token |\stop| is a marker that we have inserted to mark the end of the
+% The token |\@@_stop:| is a marker that we have inserted to mark the end of the
% preamble (as provided by the final user) that we have inserted in the TeX flow.
% \begin{macrocode}
-\cs_set_eq:cN { @@ _ \token_to_str:N \stop } \use_none:n
+\cs_set_eq:cN { @@ _ \token_to_str:N \@@_stop: } \use_none:n
% \end{macrocode}
%
% \medskip
@@ -6131,10 +6088,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\int_compare:nNnT { #1 } > \c_one_int
{
- \seq_gput_left:Nx \g_@@_multicolumn_cells_seq
+ \seq_gput_left:Ne \g_@@_multicolumn_cells_seq
{ \int_use:N \c@iRow - \int_eval:n { \c@jCol + 1 } }
\seq_gput_left:Nn \g_@@_multicolumn_sizes_seq { #1 }
- \seq_gput_right:Nx \g_@@_pos_of_blocks_seq
+ \seq_gput_right:Ne \g_@@_pos_of_blocks_seq
{
{
\int_if_zero:nTF \c@jCol
@@ -6153,6 +6110,24 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% We want |\cellcolor| to be available in |\multicolumn| because |\cellcolor| of
+% \pkg{colortbl} is available in |\multicolumn|.
+% \begin{macrocode}
+ \RenewDocumentCommand \cellcolor { O { } m }
+ {
+ \@@_test_color_inside:
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
+ {
+ \@@_rectanglecolor [ ##1 ]
+ { \exp_not:n { ##2 } }
+ { \int_use:N \c@iRow - \int_use:N \c@jCol }
+ { \int_use:N \c@iRow - \int_eval:n { \c@jCol + #1 } }
+ }
+ \ignorespaces
+ }
+% \end{macrocode}
+%
% \medskip
% The following lines were in the original definition of |\multicolumn|.
% \begin{macrocode}
@@ -6202,7 +6177,10 @@ version 2005/12/01 or later.
\exp_last_unbraced:No \@@_make_m_preamble:n \l_tmpa_tl
}
{
- \tl_if_eq:nnT { #1 } { S }
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \str_if_eq:nnTF { #1 } { S }
{ \@@_fatal:n { unknown~column~type~S } }
{ \@@_fatal:nn { unknown~column~type } { #1 } }
}
@@ -6217,7 +6195,7 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
- > { \@@_cell_begin:w \cs_set_nopar:Npn \l_@@_hpos_cell_tl { #1 } }
+ > { \@@_cell_begin: \cs_set_nopar:Npn \l_@@_hpos_cell_tl { #1 } }
#1
< \@@_cell_end:
}
@@ -6258,7 +6236,7 @@ version 2005/12/01 or later.
\tl_gput_right:Nn \g_@@_preamble_tl
{
> {
- \@@_cell_begin:w
+ \@@_cell_begin:
\begin { minipage } [ #1 ] { \dim_eval:n { #3 } }
\mode_leave_vertical:
\arraybackslash
@@ -6288,7 +6266,7 @@ version 2005/12/01 or later.
> {
\dim_set:Nn \l_@@_col_width_dim { #4 }
\hbox_set:Nw \l_@@_cell_box
- \@@_cell_begin:w
+ \@@_cell_begin:
\cs_set_nopar:Npn \l_@@_hpos_cell_tl { #3 }
}
c
@@ -6314,7 +6292,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_m_preamble_x:n #1
{
- \str_if_eq:nnTF { #1 } { < }
+ \str_if_eq:nnTF { #1 } { < }
\@@_make_m_preamble_ix:n
{ \@@_make_m_preamble:n { #1 } }
}
@@ -6342,7 +6320,7 @@ version 2005/12/01 or later.
{
\box_set_ht:Nn \l_tmpa_box { \box_ht:N \l_tmpa_box + \l_tmpa_dim }
\box_set_dp:Nn \l_tmpa_box { \box_dp:N \l_tmpa_box + \l_tmpb_dim }
- \tl_if_eq:NNTF \l_@@_baseline_tl \c_@@_c_tl
+ \str_if_eq:eeTF \l_@@_baseline_tl { c }
{ \box_use_drop:N \l_tmpa_box }
\@@_put_box_in_flow_i:
}
@@ -6379,10 +6357,10 @@ version 2005/12/01 or later.
\@@_qpoint:n { row - \int_use:N \l_tmpa_int }
}
{
- \tl_if_eq:NnTF \l_@@_baseline_tl { t }
+ \str_if_eq:eeTF \l_@@_baseline_tl { t }
{ \int_set_eq:NN \l_tmpa_int \c_one_int }
{
- \tl_if_eq:NnTF \l_@@_baseline_tl { b }
+ \str_if_eq:onTF \l_@@_baseline_tl { b }
{ \int_set_eq:NN \l_tmpa_int \c@iRow }
{ \int_set:Nn \l_tmpa_int \l_@@_baseline_tl }
}
@@ -6452,7 +6430,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\int_compare:nNnT \g_@@_notes_caption_int > \c_zero_int
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\tl_set:Nn \exp_not:N \l_@@_note_in_caption_tl
{ \int_use:N \g_@@_notes_caption_int }
@@ -6527,9 +6505,8 @@ version 2005/12/01 or later.
% |\@makecaption| has been stored by \pkg{floatrow} in |\FR@makecaption|. That's
% why we restore the old version.
% \begin{macrocode}
- \IfPackageLoadedTF { floatrow }
+ \IfPackageLoadedT { floatrow }
{ \cs_set_eq:NN \@makecaption \FR@makecaption }
- { }
\tl_if_empty:NTF \l_@@_short_caption_tl
{ \caption }
{ \caption [ \l_@@_short_caption_tl ] }
@@ -6679,7 +6656,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% We convert a value of |t| to a value of |1|.
% \begin{macrocode}
- \tl_if_eq:NnT \l_@@_baseline_tl { t }
+ \str_if_eq:eeT \l_@@_baseline_tl { t }
{ \cs_set_nopar:Npn \l_@@_baseline_tl { 1 } }
% \end{macrocode}
% Now, we convert the value of |\l_@@_baseline_tl| (which should represent an
@@ -6688,7 +6665,7 @@ version 2005/12/01 or later.
\pgfpicture
\@@_qpoint:n { row - 1 }
\dim_gset_eq:NN \g_tmpa_dim \pgf@y
- \str_if_in:NnTF \l_@@_baseline_tl { line- }
+ \tl_if_in:NnTF \l_@@_baseline_tl { line- }
{
\int_set:Nn \l_tmpa_int
{
@@ -6803,7 +6780,7 @@ version 2005/12/01 or later.
% Here is the call to |\array| (we have a dedicated macro |\@@_array:| because
% of compatibility with the classes \cls{revtex4-1} and \cls{revtex4-2}).
% \begin{macrocode}
- \exp_args:No \@@_array: \g_@@_array_preamble_tl
+ \@@_array:o \g_@@_array_preamble_tl
}
}
}
@@ -6826,14 +6803,12 @@ version 2005/12/01 or later.
% course, this test is more easy than the similar test for the ``normal syntax''
% because we have the whole body of the environment in |#1|.
% \begin{macrocode}
- \tl_if_empty:nT { #1 } { \@@_fatal:n { empty~environment } }
- \tl_map_inline:nn { #1 }
- {
- \str_if_eq:nnT { ##1 } { & }
- { \@@_fatal:n { ampersand~in~light-syntax } }
- \str_if_eq:nnT { ##1 } { \\ }
- { \@@_fatal:n { double-backslash~in~light-syntax } }
- }
+ \tl_if_empty:nT { #1 }
+ { \@@_fatal:n { empty~environment } }
+ \tl_if_in:nnT { #1 } { & }
+ { \@@_fatal:n { ampersand~in~light-syntax } }
+ \tl_if_in:nnT { #1 } { \\ }
+ { \@@_fatal:n { double-backslash~in~light-syntax } }
% \end{macrocode}
% Now, you extract the |\CodeAfter| of the body of the environment. Maybe, there
% is no command |\CodeAfter| in the body. That's why you put a marker
@@ -6940,11 +6915,12 @@ version 2005/12/01 or later.
% |\@@_array:| because of compatibility with the classes \cls{revtex4-1} and
% \cls{revtex4-2}).
% \begin{macrocode}
- \exp_args:No \@@_array: \g_@@_array_preamble_tl \l_@@_new_body_tl
+ \@@_array:o \g_@@_array_preamble_tl \l_@@_new_body_tl
}
% \end{macrocode}
%
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_line_with_light_syntax:n { o }
\cs_new_protected:Npn \@@_line_with_light_syntax:n #1
{
\seq_clear_new:N \l_@@_cells_seq
@@ -6956,11 +6932,10 @@ version 2005/12/01 or later.
{ \seq_count:N \l_@@_cells_seq }
}
\seq_pop_left:NN \l_@@_cells_seq \l_tmpa_tl
- \exp_args:NNo \tl_build_put_right:Nn \l_@@_new_body_tl \l_tmpa_tl
+ \tl_build_put_right:No \l_@@_new_body_tl \l_tmpa_tl
\seq_map_inline:Nn \l_@@_cells_seq
{ \tl_build_put_right:Nn \l_@@_new_body_tl { & ##1 } }
}
-\cs_generate_variant:Nn \@@_line_with_light_syntax:n { o }
% \end{macrocode}
%
%
@@ -6971,7 +6946,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_analyze_end:Nn #1 #2
{
- \str_if_eq:onT \g_@@_name_env_str { #2 }
+ \str_if_eq:eeT \g_@@_name_env_str { #2 }
{ \@@_fatal:n { empty~environment } }
% \end{macrocode}
% We reput in the stream the |\end{...}| we have extracted and the user will
@@ -7443,6 +7418,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_begin_of_NiceMatrix:nn { n o }
\cs_new_protected:Npn \@@_begin_of_NiceMatrix:nn #1 #2
{
\bool_set_false:N \l_@@_preamble_bool
@@ -7471,9 +7447,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_generate_variant:Nn \@@_begin_of_NiceMatrix:nn { n V }
-% \end{macrocode}
%
% \begin{macrocode}
\clist_map_inline:nn { p , b , B , v , V }
@@ -7487,8 +7460,8 @@ version 2005/12/01 or later.
\bool_set_true:N \l_@@_last_col_without_value_bool
\int_set:Nn \l_@@_last_col_int { -1 }
}
- \keys_set:nn { NiceMatrix / NiceMatrix } { ##1 }
- \@@_begin_of_NiceMatrix:nV { #1 } \l_@@_columns_type_tl
+ \keys_set:nn { nicematrix / NiceMatrix } { ##1 }
+ \@@_begin_of_NiceMatrix:no { #1 } \l_@@_columns_type_tl
}
{ \use:c { end #1 NiceArray } }
}
@@ -7505,12 +7478,12 @@ version 2005/12/01 or later.
\bool_set_true:N \l_@@_last_col_without_value_bool
\int_set:Nn \l_@@_last_col_int { -1 }
}
- \keys_set:nn { NiceMatrix / NiceMatrix } { #1 }
+ \keys_set:nn { nicematrix / NiceMatrix } { #1 }
\bool_lazy_or:nnT
{ \clist_if_empty_p:N \l_@@_vlines_clist }
{ \l_@@_except_borders_bool }
{ \bool_set_true:N \l_@@_NiceMatrix_without_vlines_bool }
- \@@_begin_of_NiceMatrix:nV { } \l_@@_columns_type_tl
+ \@@_begin_of_NiceMatrix:no { } \l_@@_columns_type_tl
}
{ \endNiceArray }
% \end{macrocode}
@@ -7536,7 +7509,7 @@ version 2005/12/01 or later.
\dim_compare:nNnT \l_@@_width_dim = \c_zero_dim
{ \dim_set_eq:NN \l_@@_width_dim \linewidth }
\str_gset:Nn \g_@@_name_env_str { NiceTabular }
- \keys_set:nn { NiceMatrix / NiceTabular } { #1 , #3 }
+ \keys_set:nn { nicematrix / NiceTabular } { #1 , #3 }
\tl_if_empty:NF \l_@@_short_caption_tl
{
\tl_if_empty:NT \l_@@_caption_tl
@@ -7588,7 +7561,7 @@ version 2005/12/01 or later.
\str_gset:Nn \g_@@_name_env_str { NiceTabularX }
\dim_zero_new:N \l_@@_width_dim
\dim_set:Nn \l_@@_width_dim { #1 }
- \keys_set:nn { NiceMatrix / NiceTabular } { #2 , #4 }
+ \keys_set:nn { nicematrix / NiceTabular } { #2 , #4 }
\@@_settings_for_tabular:
\NiceArray { #3 }
}
@@ -7605,7 +7578,7 @@ version 2005/12/01 or later.
{
\str_gset:Nn \g_@@_name_env_str { NiceTabular* }
\dim_set:Nn \l_@@_tabular_width_dim { #1 }
- \keys_set:nn { NiceMatrix / NiceTabular } { #2 , #4 }
+ \keys_set:nn { nicematrix / NiceTabular } { #2 , #4 }
\@@_settings_for_tabular:
\NiceArray { #3 }
}
@@ -7692,7 +7665,7 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\seq_gset_from_clist:Nn \exp_not:N \g_@@_size_seq
{
@@ -7711,7 +7684,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_if_empty:NF \g_@@_pos_of_blocks_seq
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\seq_gset_from_clist:Nn \exp_not:N \g_@@_pos_of_blocks_seq
{ \seq_use:Nnnn \g_@@_pos_of_blocks_seq , , , }
@@ -7719,7 +7692,7 @@ version 2005/12/01 or later.
}
\seq_if_empty:NF \g_@@_multicolumn_cells_seq
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\seq_gset_from_clist:Nn \exp_not:N \g_@@_multicolumn_cells_seq
{ \seq_use:Nnnn \g_@@_multicolumn_cells_seq , , , }
@@ -7833,14 +7806,15 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_draw_dotted_lines:
% \end{macrocode}
+%
%
% \bigskip
% The following computes the ``corners'' (made up of empty cells) but if there
% is no corner to compute, it won't do anything. The corners are computed
-% in |\l_@@_corners_cells_seq| which will contain all the cells which are empty
+% in |\l_@@_corners_cells_clist| which will contain all the cells which are empty
% (and not in a block) considered in the corners of the array.
% \begin{macrocode}
- \@@_compute_corners:
+ \clist_if_empty:NF \l_@@_corners_clist \@@_compute_corners:
% \end{macrocode}
%
% \bigskip
@@ -7852,14 +7826,14 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\@@_deal_with_rounded_corners:
- \tl_if_empty:NF \l_@@_hlines_clist \@@_draw_hlines:
- \tl_if_empty:NF \l_@@_vlines_clist \@@_draw_vlines:
+ \clist_if_empty:NF \l_@@_hlines_clist \@@_draw_hlines:
+ \clist_if_empty:NF \l_@@_vlines_clist \@@_draw_vlines:
% \end{macrocode}
%
% \bigskip
% Now, the pre-code-after and then, the |\CodeAfter|.
% \begin{macrocode}
- \IfPackageLoadedTF { tikz }
+ \IfPackageLoadedT { tikz }
{
\tikzset
{
@@ -7871,7 +7845,6 @@ version 2005/12/01 or later.
}
}
}
- { }
\bool_if:NT \c_@@_tagging_array_bool
{ \cs_set_eq:NN \ar@ialign \@@_old_ar@ialign: }
\cs_set_eq:NN \SubMatrix \@@_SubMatrix
@@ -7903,8 +7876,8 @@ version 2005/12/01 or later.
% activated and Tikz is not able to solve the problem (even with the Tikz
% library \pkg{babel}).
% \begin{macrocode}
- % \int_compare:nNnT { \char_value_catcode:n { 60 } } = { 13 }
- % { \@@_rescan_for_spanish:N \g_nicematrix_code_after_tl }
+ \int_compare:nNnT { \char_value_catcode:n { 60 } } = { 13 }
+ { \@@_rescan_for_spanish:N \g_nicematrix_code_after_tl }
% \end{macrocode}
% \medskip
% And here's the |\CodeAfter|. Since the |\CodeAfter| may begin with an
@@ -7928,7 +7901,7 @@ version 2005/12/01 or later.
\seq_if_empty:NF \g_@@_rowlistcolors_seq { \@@_clear_rowlistcolors_seq: }
\tl_if_empty:NF \g_@@_pre_code_before_tl
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\tl_gset:Nn \exp_not:N \g_@@_pre_code_before_tl
{ \exp_not:o \g_@@_pre_code_before_tl }
@@ -7937,7 +7910,7 @@ version 2005/12/01 or later.
}
\tl_if_empty:NF \g_nicematrix_code_before_tl
{
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
\tl_gset:Nn \exp_not:N \g_@@_code_before_tl
{ \exp_not:o \g_nicematrix_code_before_tl }
@@ -7969,7 +7942,7 @@ version 2005/12/01 or later.
% the |\CodeBefore.|
% \begin{macrocode}
\NewDocumentCommand \@@_CodeAfter_keys: { O { } }
- { \keys_set:nn { NiceMatrix / CodeAfter } { #1 } }
+ { \keys_set:nn { nicematrix / CodeAfter } { #1 } }
% \end{macrocode}
%
%
@@ -7988,7 +7961,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_adjust_pos_of_blocks_seq:
{
- \seq_gset_map_x:NNn \g_@@_pos_of_blocks_seq \g_@@_pos_of_blocks_seq
+ \seq_gset_map_e:NNn \g_@@_pos_of_blocks_seq \g_@@_pos_of_blocks_seq
{ \@@_adjust_pos_of_blocks_seq_i:nnnnn ##1 }
}
% \end{macrocode}
@@ -8022,7 +7995,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \cs_new_protected:Npx \@@_draw_dotted_lines:
+ \cs_new_protected:Npe \@@_draw_dotted_lines:
{
\c_@@_pgfortikzpicture_tl
\@@_draw_dotted_lines_i:
@@ -8069,14 +8042,16 @@ version 2005/12/01 or later.
}
\anchor { 5 } { \five }
\anchor { center } { \pgfpointorigin }
- \anchor { 1 } { \five \pgf@x = 0.2 \pgf@x \pgf@y = 0.2 \pgf@y }
- \anchor { 2 } { \five \pgf@x = 0.4 \pgf@x \pgf@y = 0.4 \pgf@y }
- \anchor { 3 } { \five \pgf@x = 0.6 \pgf@x \pgf@y = 0.6 \pgf@y }
- \anchor { 4 } { \five \pgf@x = 0.8 \pgf@x \pgf@y = 0.8 \pgf@y }
- \anchor { 6 } { \five \pgf@x = 1.2 \pgf@x \pgf@y = 1.2 \pgf@y }
- \anchor { 7 } { \five \pgf@x = 1.4 \pgf@x \pgf@y = 1.4 \pgf@y }
- \anchor { 8 } { \five \pgf@x = 1.6 \pgf@x \pgf@y = 1.6 \pgf@y }
- \anchor { 9 } { \five \pgf@x = 1.8 \pgf@x \pgf@y = 1.8 \pgf@y }
+ \anchor { 1 } { \five \pgf@x = 0.2 \pgf@x \pgf@y = 0.2 \pgf@y }
+ \anchor { 2 } { \five \pgf@x = 0.4 \pgf@x \pgf@y = 0.4 \pgf@y }
+ \anchor { 25 } { \five \pgf@x = 0.5 \pgf@x \pgf@y = 0.5 \pgf@y }
+ \anchor { 3 } { \five \pgf@x = 0.6 \pgf@x \pgf@y = 0.6 \pgf@y }
+ \anchor { 4 } { \five \pgf@x = 0.8 \pgf@x \pgf@y = 0.8 \pgf@y }
+ \anchor { 6 } { \five \pgf@x = 1.2 \pgf@x \pgf@y = 1.2 \pgf@y }
+ \anchor { 7 } { \five \pgf@x = 1.4 \pgf@x \pgf@y = 1.4 \pgf@y }
+ \anchor { 75 } { \five \pgf@x = 1.5 \pgf@x \pgf@y = 1.5 \pgf@y }
+ \anchor { 8 } { \five \pgf@x = 1.6 \pgf@x \pgf@y = 1.6 \pgf@y }
+ \anchor { 9 } { \five \pgf@x = 1.8 \pgf@x \pgf@y = 1.8 \pgf@y }
}
% \end{macrocode}
%
@@ -8182,7 +8157,7 @@ version 2005/12/01 or later.
% First, we declare the current cell as ``dotted'' because we forbide
% intersections of dotted lines.
% \begin{macrocode}
- \cs_set:cpn { @@ _ dotted _ #1 - #2 } { }
+ \cs_set_nopar:cpn { @@ _ dotted _ #1 - #2 } { }
% \end{macrocode}
% Initialization of variables.
% \begin{macrocode}
@@ -8201,33 +8176,36 @@ version 2005/12/01 or later.
{
\int_add:Nn \l_@@_final_i_int { #3 }
\int_add:Nn \l_@@_final_j_int { #4 }
+ \bool_set_false:N \l_@@_final_open_bool
+% \end{macrocode}
+%
+% We test if we are still in the matrix. Since this is the core of the loop, we
+% \textbf{optimize} the code by using a TeX-style of conditionals.
+% \begin{macrocode}
+ \if_int_compare:w \l_@@_final_i_int > \l_@@_row_max_int
+ \if_int_compare:w #3 = \c_one_int
+ \bool_set_true:N \l_@@_final_open_bool
+ \else:
+ \if_int_compare:w \l_@@_final_j_int > \l_@@_col_max_int
+ \bool_set_true:N \l_@@_final_open_bool
+ \fi:
+ \fi:
+ \else:
+ \if_int_compare:w \l_@@_final_j_int < \l_@@_col_min_int
+ \if_int_compare:w #4 = -1
+ \bool_set_true:N \l_@@_final_open_bool
+ \fi:
+ \else:
+ \if_int_compare:w \l_@@_final_j_int > \l_@@_col_max_int
+ \if_int_compare:w #4 = \c_one_int
+ \bool_set_true:N \l_@@_final_open_bool
+ \fi:
+ \fi:
+ \fi:
+ \fi:
% \end{macrocode}
-% We test if we are still in the matrix.
+%
% \begin{macrocode}
- \bool_set_false:N \l_@@_final_open_bool
- \int_compare:nNnTF \l_@@_final_i_int > \l_@@_row_max_int
- {
- \int_compare:nNnTF { #3 } = \c_one_int
- { \bool_set_true:N \l_@@_final_open_bool }
- {
- \int_compare:nNnT \l_@@_final_j_int > \l_@@_col_max_int
- { \bool_set_true:N \l_@@_final_open_bool }
- }
- }
- {
- \int_compare:nNnTF \l_@@_final_j_int < \l_@@_col_min_int
- {
- \int_compare:nNnT { #4 } = { -1 }
- { \bool_set_true:N \l_@@_final_open_bool }
- }
- {
- \int_compare:nNnT \l_@@_final_j_int > \l_@@_col_max_int
- {
- \int_compare:nNnT { #4 } = \c_one_int
- { \bool_set_true:N \l_@@_final_open_bool }
- }
- }
- }
\bool_if:NTF \l_@@_final_open_bool
% \end{macrocode}
% If we are outside the matrix, we have found the extremity of the dotted line
@@ -8277,7 +8255,7 @@ version 2005/12/01 or later.
% drawn in a TeX group that we will open for the options of the line.
% \begin{macrocode}
{
- \cs_set:cpn
+ \cs_set_nopar:cpn
{
@@ _ dotted _
\int_use:N \l_@@_final_i_int -
@@ -8295,34 +8273,49 @@ version 2005/12/01 or later.
% similar to the previous one.
% \begin{macrocode}
\bool_set_false:N \l_@@_stop_loop_bool
+% \end{macrocode}
+% The following line of code is only for efficiency in the following loop.
+% \begin{macrocode}
+ \int_set:Nn \l_tmpa_int { \l_@@_col_min_int - 1 }
+% \end{macrocode}
+% \begin{macrocode}
\bool_do_until:Nn \l_@@_stop_loop_bool
{
\int_sub:Nn \l_@@_initial_i_int { #3 }
\int_sub:Nn \l_@@_initial_j_int { #4 }
\bool_set_false:N \l_@@_initial_open_bool
- \int_compare:nNnTF \l_@@_initial_i_int < \l_@@_row_min_int
- {
- \int_compare:nNnTF { #3 } = \c_one_int
- { \bool_set_true:N \l_@@_initial_open_bool }
- {
- \int_compare:nNnT \l_@@_initial_j_int = { \l_@@_col_min_int - 1 }
- { \bool_set_true:N \l_@@_initial_open_bool }
- }
- }
- {
- \int_compare:nNnTF \l_@@_initial_j_int < \l_@@_col_min_int
- {
- \int_compare:nNnT { #4 } = \c_one_int
- { \bool_set_true:N \l_@@_initial_open_bool }
- }
- {
- \int_compare:nNnT \l_@@_initial_j_int > \l_@@_col_max_int
- {
- \int_compare:nNnT { #4 } = { -1 }
- { \bool_set_true:N \l_@@_initial_open_bool }
- }
- }
- }
+% \end{macrocode}
+%
+% We test if we are still in the matrix. Since this is the core of the loop, we
+% \textbf{optimize} the code by using a TeX-style of conditionals.
+% \begin{macrocode}
+ \if_int_compare:w \l_@@_initial_i_int < \l_@@_row_min_int
+ \if_int_compare:w #3 = \c_one_int
+ \bool_set_true:N \l_@@_initial_open_bool
+ \else:
+% \end{macrocode}
+% |\l_tmpa_int| contains |\l_@@_col_min_int - 1| (only for efficiency).
+% \begin{macrocode}
+ \if_int_compare:w \l_@@_initial_j_int = \l_tmpa_int
+ \bool_set_true:N \l_@@_initial_open_bool
+ \fi:
+ \fi:
+ \else:
+ \if_int_compare:w \l_@@_initial_j_int < \l_@@_col_min_int
+ \if_int_compare:w #4 = \c_one_int
+ \bool_set_true:N \l_@@_initial_open_bool
+ \fi:
+ \else:
+ \if_int_compare:w \l_@@_initial_j_int > \l_@@_col_max_int
+ \if_int_compare:w #4 = -1
+ \bool_set_true:N \l_@@_initial_open_bool
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+% \end{macrocode}
+%
+% \begin{macrocode}
\bool_if:NTF \l_@@_initial_open_bool
{
\int_add:Nn \l_@@_initial_i_int { #3 }
@@ -8351,7 +8344,7 @@ version 2005/12/01 or later.
}
{ \bool_set_true:N \l_@@_stop_loop_bool }
{
- \cs_set:cpn
+ \cs_set_nopar:cpn
{
@@ _ dotted _
\int_use:N \l_@@_initial_i_int -
@@ -8367,7 +8360,7 @@ version 2005/12/01 or later.
% the corresponding virtual ``block'' when drawing the horizontal and vertical
% rules.
% \begin{macrocode}
- \seq_gput_right:Nx \g_@@_pos_of_xdots_seq
+ \seq_gput_right:Ne \g_@@_pos_of_xdots_seq
{
{ \int_use:N \l_@@_initial_i_int }
% \end{macrocode}
@@ -8395,9 +8388,9 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_open_shorten:
{
\bool_if:NT \l_@@_initial_open_bool
- { \dim_zero:N \l_@@_xdots_shorten_start_dim }
+ { \dim_zero:N \l_@@_xdots_shorten_start_dim }
\bool_if:NT \l_@@_final_open_bool
- { \dim_zero:N \l_@@_xdots_shorten_end_dim }
+ { \dim_zero:N \l_@@_xdots_shorten_end_dim }
}
% \end{macrocode}
%
@@ -8410,16 +8403,19 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_adjust_to_submatrix:nn #1 #2
{
- \int_set:Nn \l_@@_row_min_int 1
- \int_set:Nn \l_@@_col_min_int 1
+ \int_set_eq:NN \l_@@_row_min_int \c_one_int
+ \int_set_eq:NN \l_@@_col_min_int \c_one_int
\int_set_eq:NN \l_@@_row_max_int \c@iRow
\int_set_eq:NN \l_@@_col_max_int \c@jCol
% \end{macrocode}
% We do a loop over all the submatrices specified in the |code-before|. We have
% stored the position of all those submatrices in |\g_@@_submatrix_seq|.
% \begin{macrocode}
- \seq_map_inline:Nn \g_@@_submatrix_seq
- { \@@_adjust_to_submatrix:nnnnnn { #1 } { #2 } ##1 }
+ \seq_if_empty:NF \g_@@_submatrix_seq
+ {
+ \seq_map_inline:Nn \g_@@_submatrix_seq
+ { \@@_adjust_to_submatrix:nnnnnn { #1 } { #2 } ##1 }
+ }
}
% \end{macrocode}
%
@@ -8427,29 +8423,48 @@ version 2005/12/01 or later.
% |#1| and |#2| are the numbers of row and columns of the cell where the command
% of dotted line (ex.: |\Vdots|) has been issued. |#3|, |#4|, |#5| and |#6| are
% the specification (in $i$ and $j$) of the submatrix we are analyzing.
-% \begin{macrocode}
-\cs_set_protected:Npn \@@_adjust_to_submatrix:nnnnnn #1 #2 #3 #4 #5 #6
- {
- \int_compare:nNnF { #3 } > { #1 }
- {
- \int_compare:nNnF { #1 } > { #5 }
- {
- \int_compare:nNnF { #4 } > { #2 }
- {
- \int_compare:nNnF { #2 } > { #6 }
- {
- \int_set:Nn \l_@@_row_min_int
- { \int_max:nn \l_@@_row_min_int { #3 } }
- \int_set:Nn \l_@@_col_min_int
- { \int_max:nn \l_@@_col_min_int { #4 } }
- \int_set:Nn \l_@@_row_max_int
- { \int_min:nn \l_@@_row_max_int { #5 } }
- \int_set:Nn \l_@@_col_max_int
- { \int_min:nn \l_@@_col_max_int { #6 } }
- }
- }
- }
- }
+%
+%
+% Here is the programmation of that command with the the standard syntax of L3.
+% \begin{Verbatim}
+% \cs_new_protected:Npn \@@_adjust_to_submatrix:nnnnnn #1 #2 #3 #4 #5 #6
+% {
+% \bool_if:nT
+% {
+% \int_compare_p:n { #3 <= #1 <= #5 }
+% &&
+% \int_compare_p:n { #4 <= #2 <= #6 }
+% }
+% {
+% \int_set:Nn \l_@@_row_min_int { \int_max:nn \l_@@_row_min_int { #3 } }
+% \int_set:Nn \l_@@_col_min_int { \int_max:nn \l_@@_col_min_int { #4 } }
+% \int_set:Nn \l_@@_row_max_int { \int_min:nn \l_@@_row_max_int { #5 } }
+% \int_set:Nn \l_@@_col_max_int { \int_min:nn \l_@@_col_max_int { #6 } }
+% }
+% }
+% \end{Verbatim}
+%
+% \medskip
+% However, for efficiency, we will use the following version.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_adjust_to_submatrix:nnnnnn #1 #2 #3 #4 #5 #6
+ {
+ \if_int_compare:w #3 > #1
+ \else:
+ \if_int_compare:w #1 > #5
+ \else:
+ \if_int_compare:w #4 > #2
+ \else:
+ \if_int_compare:w #2 > #6
+ \else:
+ \if_int_compare:w \l_@@_row_min_int < #3 \l_@@_row_min_int = #3 \fi:
+ \if_int_compare:w \l_@@_col_min_int < #4 \l_@@_col_min_int = #4 \fi:
+ \if_int_compare:w \l_@@_row_max_int < #5 \l_@@_row_max_int = #5 \fi:
+ \if_int_compare:w \l_@@_col_max_int < #6 \l_@@_col_max_int = #6 \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
}
% \end{macrocode}
%
@@ -8531,8 +8546,8 @@ version 2005/12/01 or later.
\pgfpointanchor
{ \@@_env: - ##1 - \int_use:N \l_@@_final_j_int }
{ east }
- \dim_set:Nn \l_@@_x_final_dim
- { \dim_max:nn \l_@@_x_final_dim \pgf@x }
+ \dim_compare:nNnT \pgf@x > \l_@@_x_final_dim
+ { \dim_set_eq:NN \l_@@_x_final_dim \pgf@x }
}
}
% \end{macrocode}
@@ -8578,8 +8593,8 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \l_@@_last_row_int
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #3 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Ldots:
\group_end:
}
@@ -8673,8 +8688,8 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \l_@@_last_row_int
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #3 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Cdots:
\group_end:
}
@@ -8734,8 +8749,8 @@ version 2005/12/01 or later.
\pgfpointanchor
{ \@@_env: - \int_use:N \l_@@_initial_i_int - ##1 }
{ north }
- \dim_set:Nn \l_@@_y_initial_dim
- { \dim_max:nn \l_@@_y_initial_dim \pgf@y }
+ \dim_compare:nNnT \pgf@y > \l_@@_y_initial_dim
+ { \dim_set_eq:NN \l_@@_y_initial_dim \pgf@y }
}
}
\dim_compare:nNnT \l_@@_y_initial_dim = { - \c_max_dim }
@@ -8766,8 +8781,8 @@ version 2005/12/01 or later.
\pgfpointanchor
{ \@@_env: - \int_use:N \l_@@_final_i_int - ##1 }
{ south }
- \dim_set:Nn \l_@@_y_final_dim
- { \dim_min:nn \l_@@_y_final_dim \pgf@y }
+ \dim_compare:nNnT \pgf@y < \l_@@_y_final_dim
+ { \dim_set_eq:NN \l_@@_y_final_dim \pgf@y }
}
}
\dim_compare:nNnT \l_@@_y_final_dim = \c_max_dim
@@ -8801,9 +8816,8 @@ version 2005/12/01 or later.
\int_compare:nNnT { #2 } = \l_@@_last_col_int
{ \color { nicematrix-last-col } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
- \tl_if_empty:oF \l_@@_xdots_color_tl
- { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #3 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Vdots:
\group_end:
}
@@ -8950,8 +8964,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\@@_open_shorten:
- \keys_set:nn { NiceMatrix / xdots } { #3 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #3 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Ddots:
\group_end:
}
@@ -9014,11 +9028,14 @@ version 2005/12/01 or later.
% extremity of the line by modifying the coordinate |\l_@@_x_initial_dim|.
% \begin{macrocode}
{
- \dim_set:Nn \l_@@_y_final_dim
- {
- \l_@@_y_initial_dim +
- ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
- \dim_ratio:nn \g_@@_delta_y_one_dim \g_@@_delta_x_one_dim
+ \dim_compare:nNnF \g_@@_delta_x_one_dim = \c_zero_dim
+ {
+ \dim_set:Nn \l_@@_y_final_dim
+ {
+ \l_@@_y_initial_dim +
+ ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
+ \dim_ratio:nn \g_@@_delta_y_one_dim \g_@@_delta_x_one_dim
+ }
}
}
}
@@ -9037,7 +9054,7 @@ version 2005/12/01 or later.
\@@_adjust_to_submatrix:nn { #1 } { #2 }
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
- \@@_find_extremities_of_line:nnnn { #1 } { #2 } 1 { -1 }
+ \@@_find_extremities_of_line:nnnn { #1 } { #2 } 1 { -1 }
% \end{macrocode}
% The previous command may have changed the current environment by marking some
% cells as ``dotted'', but, fortunately, it is outside the group for the options
@@ -9045,8 +9062,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\@@_open_shorten:
- \keys_set:nn { NiceMatrix / xdots } { #3 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #3 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Iddots:
\group_end:
}
@@ -9090,11 +9107,14 @@ version 2005/12/01 or later.
{ \l_@@_y_final_dim - \l_@@_y_initial_dim }
}
{
- \dim_set:Nn \l_@@_y_final_dim
- {
- \l_@@_y_initial_dim +
- ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
- \dim_ratio:nn \g_@@_delta_y_two_dim \g_@@_delta_x_two_dim
+ \dim_compare:nNnF \g_@@_delta_x_two_dim = \c_zero_dim
+ {
+ \dim_set:Nn \l_@@_y_final_dim
+ {
+ \l_@@_y_initial_dim +
+ ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
+ \dim_ratio:nn \g_@@_delta_y_two_dim \g_@@_delta_x_two_dim
+ }
}
}
}
@@ -9149,6 +9169,7 @@ version 2005/12/01 or later.
% \smallskip
% The argument of |\@@_draw_unstandard_dotted_line:n| is, in fact, the list of options.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:n { o }
\cs_new_protected:Npn \@@_draw_unstandard_dotted_line:n #1
{
\@@_draw_unstandard_dotted_line:nooo
@@ -9157,7 +9178,6 @@ version 2005/12/01 or later.
\l_@@_xdots_down_tl
\l_@@_xdots_middle_tl
}
-\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:n { o }
% \end{macrocode}
%
%
@@ -9167,7 +9187,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \IfPackageLoadedTF { tikz }
+ \IfPackageLoadedT { tikz }
{
\tikzset
{
@@ -9180,12 +9200,12 @@ version 2005/12/01 or later.
}
}
}
- { }
}
% \end{macrocode}
%
% \bigskip
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:nnnn { n o o o }
\cs_new_protected:Npn \@@_draw_unstandard_dotted_line:nnnn #1 #2 #3 #4
{
% \end{macrocode}
@@ -9288,9 +9308,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:nnnn { n o o o }
-% \end{macrocode}
%
% \bigskip
% The command |\@@_draw_standard_dotted_line:| draws the line with our system of dots
@@ -9603,7 +9620,7 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Ddots }
}
{
- \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \keys_set_known:nn { nicematrix / Ddots } { #1 }
\@@_instruction_of_type:nnn \l_@@_draw_first_bool { Ddots }
{ #1 , down = #2 , up = #3 , middle = #4 }
}
@@ -9633,7 +9650,7 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Iddots }
}
{
- \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \keys_set_known:nn { nicematrix / Ddots } { #1 }
\@@_instruction_of_type:nnn \l_@@_draw_first_bool { Iddots }
{ #1 , down = #2 , up = #3 , middle = #4 }
}
@@ -9651,7 +9668,7 @@ version 2005/12/01 or later.
% Despite its name, the following set of keys will be used for |\Ddots| but also
% for |\Iddots|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Ddots }
+\keys_define:nn { nicematrix / Ddots }
{
draw-first .bool_set:N = \l_@@_draw_first_bool ,
draw-first .default:n = true ,
@@ -9725,7 +9742,7 @@ version 2005/12/01 or later.
{ \@@_collect_options:n { \@@_Hdotsfor_ii } }
\exp_args:NNo \NewDocumentCommand \@@_Hdotsfor_ii \l_@@_argspec_tl
{
- \tl_gput_right:Nx \g_@@_HVdotsfor_lines_tl
+ \tl_gput_right:Ne \g_@@_HVdotsfor_lines_tl
{
\@@_Hdotsfor:nnnn
{ \int_use:N \c@iRow }
@@ -9810,8 +9827,8 @@ version 2005/12/01 or later.
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #4 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #4 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Ldots:
\group_end:
% \end{macrocode}
@@ -9823,7 +9840,7 @@ version 2005/12/01 or later.
% special control sequence (to nil).
% \begin{macrocode}
\int_step_inline:nnn { #2 } { #2 + #3 - 1 }
- { \cs_set:cpn { @@ _ dotted _ #1 - ##1 } { } }
+ { \cs_set_nopar:cpn { @@ _ dotted _ #1 - ##1 } { } }
}
% \end{macrocode}
%
@@ -9838,7 +9855,7 @@ version 2005/12/01 or later.
\exp_args:NNo \NewDocumentCommand \@@_Vdotsfor_i \l_@@_argspec_tl
{
\bool_gset_true:N \g_@@_empty_cell_bool
- \tl_gput_right:Nx \g_@@_HVdotsfor_lines_tl
+ \tl_gput_right:Ne \g_@@_HVdotsfor_lines_tl
{
\@@_Vdotsfor:nnnn
{ \int_use:N \c@iRow }
@@ -9916,8 +9933,8 @@ version 2005/12/01 or later.
\int_compare:nNnT { #2 } = \g_@@_col_total_int
{ \color { nicematrix-last-col } }
}
- \keys_set:nn { NiceMatrix / xdots } { #4 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
+ \keys_set:nn { nicematrix / xdots } { #4 }
+ \@@_color:o \l_@@_xdots_color_tl
\@@_actually_draw_Vdots:
\group_end:
% \end{macrocode}
@@ -9929,7 +9946,7 @@ version 2005/12/01 or later.
% special control sequence (to nil).
% \begin{macrocode}
\int_step_inline:nnn { #1 } { #1 + #3 - 1 }
- { \cs_set:cpn { @@ _ dotted _ ##1 - #2 } { } }
+ { \cs_set_nopar:cpn { @@ _ dotted _ ##1 - #2 } { } }
}
% \end{macrocode}
%
@@ -9943,14 +9960,14 @@ version 2005/12/01 or later.
\peek_remove_spaces:n
{
\bool_gset_true:N \g_@@_rotate_bool
- \keys_set:nn { NiceMatrix / rotate } { #1 }
+ \keys_set:nn { nicematrix / rotate } { #1 }
}
}
% \end{macrocode}
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rotate }
+\keys_define:nn { nicematrix / rotate }
{
c .code:n = \bool_gset_true:N \g_@@_rotate_c_bool ,
c .value_forbidden:n = true ,
@@ -10004,14 +10021,14 @@ version 2005/12/01 or later.
\exp_args:NNo \NewDocumentCommand \@@_line \l_@@_argspec_tl
{
\group_begin:
- \keys_set:nn { NiceMatrix / xdots } { #1 , #4 , down = #5 , up = #6 }
- \tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
- \use:e
- {
- \@@_line_i:nn
- { \@@_double_int_eval:n #2 - \q_stop }
- { \@@_double_int_eval:n #3 - \q_stop }
- }
+ \keys_set:nn { nicematrix / xdots } { #1 , #4 , down = #5 , up = #6 }
+ \@@_color:o \l_@@_xdots_color_tl
+ \use:e
+ {
+ \@@_line_i:nn
+ { \@@_double_int_eval:n #2 - \q_stop }
+ { \@@_double_int_eval:n #3 - \q_stop }
+ }
\group_end:
}
}
@@ -10036,7 +10053,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \cs_new_protected:Npx \@@_draw_line_ii:nn #1 #2
+ \cs_new_protected:Npe \@@_draw_line_ii:nn #1 #2
{
% \end{macrocode}
% We recall that, when externalization is used, |\tikzpicture| and
@@ -10103,9 +10120,10 @@ version 2005/12/01 or later.
% \bigskip
% |\@@_put_in_row_style| will be used several times by |\RowStyle|.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_put_in_row_style:n { e }
\cs_set_protected:Npn \@@_put_in_row_style:n #1
{
- \tl_gput_right:Nx \g_@@_row_style_tl
+ \tl_gput_right:Ne \g_@@_row_style_tl
{
% \end{macrocode}
% Be careful, |\exp_not:N \@@_if_row_less_than:nn| can't be replaced by a
@@ -10121,11 +10139,10 @@ version 2005/12/01 or later.
{ \exp_not:n { #1 } \scan_stop: }
}
}
-\cs_generate_variant:Nn \@@_put_in_row_style:n { e }
% \end{macrocode}
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / RowStyle }
+\keys_define:nn { nicematrix / RowStyle }
{
cell-space-top-limit .dim_set:N = \l_tmpa_dim ,
cell-space-top-limit .value_required:n = true ,
@@ -10141,7 +10158,7 @@ version 2005/12/01 or later.
bold .bool_set:N = \l_@@_bold_row_style_bool ,
bold .default:n = true ,
nb-rows .code:n =
- \str_if_eq:nnTF { #1 } { * }
+ \str_if_eq:eeTF { #1 } { * }
{ \int_set:Nn \l_@@_key_nb_rows_int { 500 } }
{ \int_set:Nn \l_@@_key_nb_rows_int { #1 } } ,
nb-rows .value_required:n = true ,
@@ -10162,7 +10179,7 @@ version 2005/12/01 or later.
\int_set_eq:NN \l_@@_key_nb_rows_int \c_one_int
\dim_zero:N \l_tmpa_dim
\dim_zero:N \l_tmpb_dim
- \keys_set:nn { NiceMatrix / RowStyle } { #1 }
+ \keys_set:nn { nicematrix / RowStyle } { #1 }
% \end{macrocode}
% If the key |rowcolor| has been used.
% \begin{macrocode}
@@ -10172,7 +10189,7 @@ version 2005/12/01 or later.
% First, the end of the current row (we remind that |\RowStyle| applies to the
% \emph{end} of the current row).
% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
% \end{macrocode}
% The command |\@@_exp_color_arg:No| is \emph{fully expandable}.
@@ -10186,7 +10203,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\int_compare:nNnT \l_@@_key_nb_rows_int > \c_one_int
{
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
\@@_exp_color_arg:No \@@_rowcolor \l_tmpa_tl
{
@@ -10202,7 +10219,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\dim_compare:nNnT \l_tmpa_dim > \c_zero_dim
{
- \exp_args:Nx \@@_put_in_row_style:n
+ \@@_put_in_row_style:e
{
\tl_gput_right:Nn \exp_not:N \g_@@_cell_after_hook_tl
{
@@ -10220,7 +10237,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\dim_compare:nNnT \l_tmpb_dim > \c_zero_dim
{
- \exp_args:Nx \@@_put_in_row_style:n
+ \@@_put_in_row_style:e
{
\tl_gput_right:Nn \exp_not:N \g_@@_cell_after_hook_tl
{
@@ -10298,6 +10315,8 @@ version 2005/12/01 or later.
% |\CodeBefore| (and we recall that a loop of \pkg{pgffor} is encapsulated in a
% group).
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { e }
+\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { e e }
\cs_new_protected:Npn \@@_add_to_colors_seq:nn #1 #2
{
% \end{macrocode}
@@ -10309,11 +10328,15 @@ version 2005/12/01 or later.
% \end{macrocode}
% We don't take into account the colors like |myserie!!+| because those colors
% are special color from a |\definecolorseries| of \pkg{xcolor}.
+% |\str_if_in:nnF| is mandatory: don't use |\tl_if_in:nnF|.
% \begin{macrocode}
\str_if_in:nnF { #1 } { !! }
{
\seq_map_indexed_inline:Nn \g_@@_colors_seq
- { \tl_if_eq:nnT { #1 } { ##2 } { \int_set:Nn \l_tmpa_int { ##1 } } }
+% \end{macrocode}
+% We use |\str_if_eq:eeTF| which is slightly faster than |\tl_if_eq:nnTF|.
+% \begin{macrocode}
+ { \str_if_eq:eeT { #1 } { ##2 } { \int_set:Nn \l_tmpa_int { ##1 } } }
}
\int_if_zero:nTF \l_tmpa_int
% \end{macrocode}
@@ -10321,20 +10344,16 @@ version 2005/12/01 or later.
% \begin{macrocode}
{
\seq_gput_right:Nn \g_@@_colors_seq { #1 }
- \tl_gset:cx { g_@@_color _ \seq_count:N \g_@@_colors_seq _ tl } { #2 }
+ \tl_gset:ce { g_@@_color _ \seq_count:N \g_@@_colors_seq _ tl } { #2 }
}
% \end{macrocode}
% Now, the case where the color is \emph{not} a new color (the color is in the
% sequence at the position |\l_tmpa_int|).
% \begin{macrocode}
- { \tl_gput_right:cx { g_@@_color _ \int_use:N \l_tmpa_int _tl } { #2 } }
+ { \tl_gput_right:ce { g_@@_color _ \int_use:N \l_tmpa_int _tl } { #2 } }
}
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { e n }
-\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { e e }
-% \end{macrocode}
%
% \bigskip
% The following command must be used within a |\pgfpicture|.
@@ -10555,8 +10574,8 @@ version 2005/12/01 or later.
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
\@@_cut_on_hyphen:w #2 \q_stop
- \tl_set:Nx \l_@@_rows_tl { \l_@@_tmpc_tl - \l_tmpa_tl }
- \tl_set:Nx \l_@@_cols_tl { \l_@@_tmpd_tl - \l_tmpb_tl }
+ \tl_set:Ne \l_@@_rows_tl { \l_@@_tmpc_tl - \l_tmpa_tl }
+ \tl_set:Ne \l_@@_cols_tl { \l_@@_tmpd_tl - \l_tmpb_tl }
% \end{macrocode}
% The command |\@@_cartesian_path:n| takes in two implicit arguments:
% |\l_@@_cols_tl| and |\l_@@_rows_tl|.
@@ -10608,7 +10627,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rowcolors }
+\keys_define:nn { nicematrix / rowcolors }
{
respect-blocks .bool_set:N = \l_@@_respect_blocks_bool ,
respect-blocks .default:n = true ,
@@ -10645,7 +10664,7 @@ version 2005/12/01 or later.
\seq_set_split:Nnn \l_@@_colors_seq { , } { #3 }
\tl_clear_new:N \l_@@_cols_tl
\cs_set_nopar:Npn \l_@@_cols_tl { - }
- \keys_set:nn { NiceMatrix / rowcolors } { #4 }
+ \keys_set:nn { nicematrix / rowcolors } { #4 }
% \end{macrocode}
% The counter |\l_@@_color_int| will be the rank of the current color in the list of
% colors (modulo the length of the list).
@@ -10657,7 +10676,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% We don't want to take into account a block which is completely in the ``first
% column'' (number~$0$) or in the ``last column'' and that's why we filter
-% the sequence of the blocks (in a the sequence |\l_tmpa_seq|).
+% the sequence of the blocks (in the sequence |\l_tmpa_seq|).
% \begin{macrocode}
\seq_set_eq:NN \l_tmpb_seq \g_@@_pos_of_blocks_seq
\seq_set_filter:NNn \l_tmpa_seq \l_tmpb_seq
@@ -10709,7 +10728,7 @@ version 2005/12/01 or later.
% |\l_@@_tmpc_tl| will be the color that we will use.
% \begin{macrocode}
\tl_clear_new:N \l_@@_color_tl
- \tl_set:Nx \l_@@_color_tl
+ \tl_set:Ne \l_@@_color_tl
{
\@@_color_index:n
{
@@ -10741,6 +10760,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new:Npn \@@_color_index:n #1
{
+% \end{macrocode}
+% Be careful: this command |\@@_color_index:n| must be ``\emph{fully expandable}''.
+% \begin{macrocode}
\str_if_eq:eeTF { \seq_item:Nn \l_@@_colors_seq { #1 } } { = }
{ \@@_color_index:n { #1 - 1 } }
{ \seq_item:Nn \l_@@_colors_seq { #1 } }
@@ -10816,7 +10838,7 @@ version 2005/12/01 or later.
\l_@@_nocolor_used_bool
\@@_cartesian_path_normal_ii:
{
- \seq_if_empty:NTF \l_@@_corners_cells_seq
+ \clist_if_empty:NTF \l_@@_corners_cells_clist
{ \@@_cartesian_path_normal_i:n { #1 } }
\@@_cartesian_path_normal_ii:
}
@@ -10894,7 +10916,7 @@ version 2005/12/01 or later.
% Now, the numbers of both rows are in |\l_tmpa_tl| and |\l_tmpb_tl|.
% \begin{macrocode}
\cs_if_exist:cF
- { @@ _ \l_tmpa_tl _ \l_@@_tmpc_tl _ nocolor }
+ { @@ _ nocolor _ \l_tmpa_tl - \l_@@_tmpc_tl }
{
\@@_qpoint:n { row - \int_eval:n { \l_tmpb_tl + 1 } }
\dim_set:Nn \l_tmpb_dim { \pgf@y + 0.5 \arrayrulewidth }
@@ -10933,14 +10955,13 @@ version 2005/12/01 or later.
% \begin{macrocode}
\clist_map_inline:Nn \l_@@_rows_tl
{
- \seq_if_in:NnF \l_@@_corners_cells_seq
- { ####1 - ##1 }
+ \@@_if_in_corner:nF { ####1 - ##1 }
{
\@@_qpoint:n { row - \int_eval:n { ####1 + 1 } }
\dim_set:Nn \l_tmpb_dim { \pgf@y + 0.5 \arrayrulewidth }
\@@_qpoint:n { row - ####1 }
\dim_set:Nn \l_@@_tmpd_dim { \pgf@y + 0.5 \arrayrulewidth }
- \cs_if_exist:cF { @@ _ ####1 _ ##1 _ nocolor }
+ \cs_if_exist:cF { @@ _ nocolor _ ####1 - ##1 }
{
\pgfpathrectanglecorners
{ \pgfpoint \l_@@_tmpc_dim \l_@@_tmpd_dim }
@@ -10981,7 +11002,7 @@ version 2005/12/01 or later.
\clist_map_inline:Nn \l_@@_rows_tl
{
\clist_map_inline:Nn \l_@@_cols_tl
- { \cs_set:cpn { @@ _ ##1 _ ####1 _ nocolor } { } }
+ { \cs_set_nopar:cpn { @@ _ nocolor _ ##1 - ####1 } { } }
}
}
% \end{macrocode}
@@ -11004,12 +11025,12 @@ version 2005/12/01 or later.
{ \@@_cut_on_hyphen:w ##1 \q_stop }
{ \@@_cut_on_hyphen:w ##1 - ##1 \q_stop }
\bool_lazy_or:nnT
+ { \str_if_eq_p:ee \l_tmpa_tl { * } }
{ \tl_if_blank_p:o \l_tmpa_tl }
- { \str_if_eq_p:on \l_tmpa_tl { * } }
{ \cs_set_nopar:Npn \l_tmpa_tl { 1 } }
\bool_lazy_or:nnT
+ { \str_if_eq_p:ee \l_tmpb_tl { * } }
{ \tl_if_blank_p:o \l_tmpb_tl }
- { \str_if_eq_p:on \l_tmpb_tl { * } }
{ \tl_set:No \l_tmpb_tl { \int_use:N #2 } }
\int_compare:nNnT \l_tmpb_tl > #2
{ \tl_set:No \l_tmpb_tl { \int_use:N #2 } }
@@ -11026,7 +11047,7 @@ version 2005/12/01 or later.
\NewDocumentCommand \@@_cellcolor_tabular { O { } m }
{
\@@_test_color_inside:
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
% \end{macrocode}
% We must not expand the color (|#2|) because the color may contain the token
@@ -11047,7 +11068,7 @@ version 2005/12/01 or later.
\NewDocumentCommand \@@_rowcolor_tabular { O { } m }
{
\@@_test_color_inside:
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
\@@_rectanglecolor [ #1 ] { \exp_not:n { #2 } }
{ \int_use:N \c@iRow - \int_use:N \c@jCol }
@@ -11103,7 +11124,7 @@ version 2005/12/01 or later.
% the commands |\rowlistcolors| which are in force) the current instruction
% |\rowlistcolors|.
% \begin{macrocode}
- \seq_gput_right:Nx \g_@@_rowlistcolors_seq
+ \seq_gput_right:Ne \g_@@_rowlistcolors_seq
{
{ \int_use:N \c@iRow }
{ \exp_not:n { #1 } }
@@ -11140,7 +11161,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
{ \seq_gput_right:Nn \g_tmpa_seq { { #1 } { #2 } { #3 } { #4 } } }
{
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
\@@_rowlistcolors
[ \exp_not:n { #2 } ]
@@ -11196,7 +11217,7 @@ version 2005/12/01 or later.
% instructions in the |\CodeBefore| in order to fill color by color (to avoid
% the thin white lines).
% \begin{macrocode}
- \tl_gput_left:Nx \g_@@_pre_code_before_tl
+ \tl_gput_left:Ne \g_@@_pre_code_before_tl
{
\exp_not:N \columncolor [ #1 ]
{ \exp_not:n { #2 } } { \int_use:N \c@jCol }
@@ -11304,7 +11325,7 @@ version 2005/12/01 or later.
% However, unknown keys will be analyzed further with another set of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Rules }
+\keys_define:nn { nicematrix / Rules }
{
position .int_set:N = \l_@@_position_int ,
position .value_required:n = true ,
@@ -11312,7 +11333,7 @@ version 2005/12/01 or later.
end .code:n =
\bool_lazy_or:nnTF
{ \tl_if_empty_p:n { #1 } }
- { \str_if_eq_p:nn { #1 } { last } }
+ { \str_if_eq_p:ee { #1 } { last } }
{ \int_set_eq:NN \l_@@_end_int \c@jCol }
{ \int_set:Nn \l_@@_end_int { #1 } }
}
@@ -11327,7 +11348,7 @@ version 2005/12/01 or later.
% following set of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / RulesBis }
+\keys_define:nn { nicematrix / RulesBis }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -11378,7 +11399,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\int_set_eq:NN \l_@@_end_int \c@iRow
- \keys_set_known:nnN { NiceMatrix / Rules } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / Rules } { #1 } \l_@@_other_keys_tl
% \end{macrocode}
% The following test is for the case where the user does not use all the columns
% specified in the preamble of the environment (for instance, a preamble of
@@ -11410,6 +11431,9 @@ version 2005/12/01 or later.
% be drawn.
% \begin{macrocode}
\bool_gset_true:N \g_tmpa_bool
+% \end{macrocode}
+%
+% \begin{macrocode}
\seq_map_inline:Nn \g_@@_pos_of_blocks_seq
{ \@@_test_vline_in_block:nnnnn ##1 }
\seq_map_inline:Nn \g_@@_pos_of_xdots_seq
@@ -11447,23 +11471,18 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_test_in_corner_v:
{
- \int_compare:nNnTF \l_tmpb_tl = { \int_eval:n { \c@jCol + 1 } }
+ \int_compare:nNnTF \l_tmpb_tl = { \c@jCol + 1 }
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
- { \l_tmpa_tl - \int_eval:n { \l_tmpb_tl - 1 } }
+ \@@_if_in_corner:nT { \l_tmpa_tl - \int_eval:n { \l_tmpb_tl - 1 } }
{ \bool_set_false:N \g_tmpa_bool }
}
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
- { \l_tmpa_tl - \l_tmpb_tl }
+ \@@_if_in_corner:nT { \l_tmpa_tl - \l_tmpb_tl }
{
\int_compare:nNnTF \l_tmpb_tl = \c_one_int
{ \bool_set_false:N \g_tmpa_bool }
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
+ \@@_if_in_corner:nT
{ \l_tmpa_tl - \int_eval:n { \l_tmpb_tl - 1 } }
{ \bool_set_false:N \g_tmpa_bool }
}
@@ -11477,7 +11496,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_vline_ii:
{
\tl_clear:N \l_@@_tikz_rule_tl
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \keys_set:no { nicematrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_vline_iv:
{
@@ -11586,7 +11605,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\CT@arc@
\tl_if_empty:NF \l_@@_rule_color_tl
- { \tl_put_right:Nx \l_@@_tikz_rule_tl { , color = \l_@@_rule_color_tl } }
+ { \tl_put_right:Ne \l_@@_tikz_rule_tl { , color = \l_@@_rule_color_tl } }
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
\@@_qpoint:n { row - \int_use:N \l_@@_local_start_int }
@@ -11633,7 +11652,7 @@ version 2005/12/01 or later.
% \bigskip
% The following command will be executed in the internal |\CodeAfter|. The
% argument |#1| is a list of \textsl{key=value} pairs of the form
-% |{NiceMatrix/Rules}|.
+% |{nicematrix/Rules}|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_hline:n #1
{
@@ -11643,7 +11662,7 @@ version 2005/12/01 or later.
\group_begin:
\int_zero_new:N \l_@@_end_int
\int_set_eq:NN \l_@@_end_int \c@jCol
- \keys_set_known:nnN { NiceMatrix / Rules } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / Rules } { #1 } \l_@@_other_keys_tl
\@@_hline_i:
\group_end:
}
@@ -11671,8 +11690,15 @@ version 2005/12/01 or later.
% be drawn.
% \begin{macrocode}
\bool_gset_true:N \g_tmpa_bool
- \seq_map_inline:Nn \g_@@_pos_of_blocks_seq
- { \@@_test_hline_in_block:nnnnn ##1 }
+% \end{macrocode}
+%
+% We test whether we are in a block.
+% \begin{macrocode}
+ \seq_map_inline:Nn \g_@@_pos_of_blocks_seq
+ { \@@_test_hline_in_block:nnnnn ##1 }
+% \end{macrocode}
+%
+% \begin{macrocode}
\seq_map_inline:Nn \g_@@_pos_of_xdots_seq
{ \@@_test_hline_in_block:nnnnn ##1 }
\seq_map_inline:Nn \g_@@_pos_of_stroken_blocks_seq
@@ -11708,23 +11734,18 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_test_in_corner_h:
{
- \int_compare:nNnTF \l_tmpa_tl = { \int_eval:n { \c@iRow + 1 } }
+ \int_compare:nNnTF \l_tmpa_tl = { \c@iRow + 1 }
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
- { \int_eval:n { \l_tmpa_tl - 1 } - \l_tmpb_tl }
+ \@@_if_in_corner:nT { \int_eval:n { \l_tmpa_tl - 1 } - \l_tmpb_tl }
{ \bool_set_false:N \g_tmpa_bool }
}
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
- { \l_tmpa_tl - \l_tmpb_tl }
+ \@@_if_in_corner:nT { \l_tmpa_tl - \l_tmpb_tl }
{
\int_compare:nNnTF \l_tmpa_tl = \c_one_int
{ \bool_set_false:N \g_tmpa_bool }
{
- \seq_if_in:NxT
- \l_@@_corners_cells_seq
+ \@@_if_in_corner:nT
{ \int_eval:n { \l_tmpa_tl - 1 } - \l_tmpb_tl }
{ \bool_set_false:N \g_tmpa_bool }
}
@@ -11733,12 +11754,13 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
% \bigskip
% \begin{macrocode}
\cs_new_protected:Npn \@@_hline_ii:
{
\tl_clear:N \l_@@_tikz_rule_tl
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \keys_set:no { nicematrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_hline_iv:
{
@@ -11908,7 +11930,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\CT@arc@
\tl_if_empty:NF \l_@@_rule_color_tl
- { \tl_put_right:Nx \l_@@_tikz_rule_tl { , color = \l_@@_rule_color_tl } }
+ { \tl_put_right:Ne \l_@@_tikz_rule_tl { , color = \l_@@_rule_color_tl } }
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
\@@_qpoint:n { col - \int_use:N \l_@@_local_start_int }
@@ -11986,7 +12008,7 @@ version 2005/12/01 or later.
{
\@@_compute_rule_width:n { multiplicity = #1 , #2 }
\skip_vertical:N \l_@@_rule_width_dim
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_hline:n
{
@@ -12018,7 +12040,7 @@ version 2005/12/01 or later.
\str_clear_new:N \l_@@_ccommand_str
\str_clear_new:N \l_@@_letter_str
\tl_clear_new:N \l_@@_other_keys_tl
- \keys_set_known:nnN { NiceMatrix / custom-line } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / custom-line } { #1 } \l_@@_other_keys_tl
% \end{macrocode}
% If the final user only wants to draw horizontal rules, he does not need to
% specify a letter (for the vertical rules in the preamble of the array). On the
@@ -12034,13 +12056,13 @@ version 2005/12/01 or later.
{ \str_if_empty_p:N \l_@@_ccommand_str }
}
{ \@@_error:n { No~letter~and~no~command } }
- { \exp_args:No \@@_custom_line_i:n \l_@@_other_keys_tl }
+ { \@@_custom_line_i:o \l_@@_other_keys_tl }
}
% \end{macrocode}
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line }
+\keys_define:nn { nicematrix / custom-line }
{
letter .str_set:N = \l_@@_letter_str ,
letter .value_required:n = true ,
@@ -12053,6 +12075,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_custom_line_i:n { o }
\cs_new_protected:Npn \@@_custom_line_i:n #1
{
% \end{macrocode}
@@ -12064,11 +12087,10 @@ version 2005/12/01 or later.
\bool_set_false:N \l_@@_color_bool
% \end{macrocode}
% \begin{macrocode}
- \keys_set:nn { NiceMatrix / custom-line-bis } { #1 }
+ \keys_set:nn { nicematrix / custom-line-bis } { #1 }
\bool_if:NT \l_@@_tikz_rule_bool
{
- \IfPackageLoadedTF { tikz }
- { }
+ \IfPackageLoadedF { tikz }
{ \@@_error:n { tikz~in~custom-line~without~tikz } }
\bool_if:NT \l_@@_color_bool
{ \@@_error:n { color~in~custom-line~with~tikz } }
@@ -12083,8 +12105,9 @@ version 2005/12/01 or later.
\int_compare:nTF { \str_count:N \l_@@_letter_str != 1 }
{ \@@_error:n { Several~letters } }
{
- \exp_args:NnV \tl_if_in:NnTF
- \c_@@_forbidden_letters_str \l_@@_letter_str
+ \tl_if_in:NoTF
+ \c_@@_forbidden_letters_str
+ \l_@@_letter_str
{ \@@_error:ne { Forbidden~letter } \l_@@_letter_str }
{
% \end{macrocode}
@@ -12092,7 +12115,7 @@ version 2005/12/01 or later.
% for the letter corresponding at the custom line, will directly use the
% following command that you define in the main hash table of TeX.
% \begin{macrocode}
- \cs_set:cpn { @@ _ \l_@@_letter_str } ##1
+ \cs_set_nopar:cpn { @@ _ \l_@@_letter_str } ##1
{ \@@_v_custom_line:n { #1 } }
}
}
@@ -12112,10 +12135,10 @@ version 2005/12/01 or later.
% The previous command |\@@_custom_line_i:n| uses the following set of keys.
% However, the whole definition of the customized lines (as provided by the
% final user as argument of |custom-line|) will also be used further with
-% other sets of keys (for instance |{NiceMatrix/Rules}|). That's why the
+% other sets of keys (for instance |{nicematrix/Rules}|). That's why the
% following set of keys has some keys which are no-op.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line-bis }
+\keys_define:nn { nicematrix / custom-line-bis }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -12150,7 +12173,7 @@ version 2005/12/01 or later.
% deprecated and has been replaced by the key |total-width|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line-width }
+\keys_define:nn { nicematrix / custom-line-width }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -12177,7 +12200,7 @@ version 2005/12/01 or later.
% Moreover, the command must \emph{not} be protected since it begins with
% |\noalign| (which is in |\Hline|).
% \begin{macrocode}
- \cs_set:cpn { nicematrix - \l_@@_command_str } { \Hline [ #1 ] }
+ \cs_set_nopar:cpn { nicematrix - \l_@@_command_str } { \Hline [ #1 ] }
\seq_put_left:No \l_@@_custom_line_commands_seq \l_@@_command_str
}
% \end{macrocode}
@@ -12217,10 +12240,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_c_custom_line_i:nn #1 #2
{
- \str_if_in:nnTF { #2 } { - }
+ \tl_if_in:nnTF { #2 } { - }
{ \@@_cut_on_hyphen:w #2 \q_stop }
{ \@@_cut_on_hyphen:w #2 - #2 \q_stop }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_hline:n
{
@@ -12240,7 +12263,7 @@ version 2005/12/01 or later.
\bool_set_false:N \l_@@_tikz_rule_bool
\bool_set_false:N \l_@@_total_width_bool
\bool_set_false:N \l_@@_dotted_rule_bool
- \keys_set_known:nn { NiceMatrix / custom-line-width } { #1 }
+ \keys_set_known:nn { nicematrix / custom-line-width } { #1 }
\bool_if:NF \l_@@_total_width_bool
{
\bool_if:NTF \l_@@_dotted_rule_bool
@@ -12267,9 +12290,9 @@ version 2005/12/01 or later.
% \end{macrocode}
% In the following line, the |\dim_use:N| is mandatory since we do an expansion.
% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_array_preamble_tl
+ \tl_gput_right:Ne \g_@@_array_preamble_tl
{ \exp_not:N ! { \skip_horizontal:n { \dim_use:N \l_@@_rule_width_dim } } }
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_vline:n
{
@@ -12375,11 +12398,15 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_compute_corners:
{
+ \seq_map_inline:Nn \g_@@_pos_of_blocks_seq
+ { \@@_mark_cells_of_block:nnnnn ##1 }
% \end{macrocode}
-% The sequence |\l_@@_corners_cells_seq| will be the sequence of all the
-% empty cells (and not in a block) considered in the corners of the array.
+% The list |\l_@@_corners_cells_clist| will be the list of all the
+% empty cells (and not in a block) considered in the corners of the array. We
+% use a |clist| instead of a |seq| because we will frequently search in that
+% list (and searching in a |clist| is faster than searching in a |seq|).
% \begin{macrocode}
- \seq_clear_new:N \l_@@_corners_cells_seq
+ \clist_clear:N \l_@@_corners_cells_clist
\clist_map_inline:Nn \l_@@_corners_clist
{
\str_case:nnF { ##1 }
@@ -12399,28 +12426,50 @@ version 2005/12/01 or later.
% Even if the user has used the key |corners| the list of cells in the corners
% may be empty.
% \begin{macrocode}
- \seq_if_empty:NF \l_@@_corners_cells_seq
+ \clist_if_empty:NF \l_@@_corners_cells_clist
{
% \end{macrocode}
% You write on the |aux| file the list of the cells which are in the (empty)
% corners because you need that information in the |\CodeBefore| since the
-% commands which color the |rows|, |columns| and |cells| must not color the
+% commands which colors the |rows|, |columns| and |cells| must not color the
% cells in the corners.
% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_aux_tl
+ \tl_gput_right:Ne \g_@@_aux_tl
{
- \seq_set_from_clist:Nn \exp_not:N \l_@@_corners_cells_seq
- { \seq_use:Nnnn \l_@@_corners_cells_seq , , , }
+ \cs_set_nopar:Npn \exp_not:N \l_@@_corners_cells_clist
+ { \l_@@_corners_cells_clist }
}
}
}
% \end{macrocode}
%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_mark_cells_of_block:nnnnn #1 #2 #3 #4 #5
+ {
+ \int_step_inline:nnn { #1 } { #3 }
+ {
+ \int_step_inline:nnn { #2 } { #4 }
+ { \cs_set_nopar:cpn { @@ _ block _ ##1 - ####1 } { } }
+ }
+ }
+% \end{macrocode}
%
% \bigskip
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_if_in_block:nn #1 #2 { p }
+ {
+ \cs_if_exist:cTF
+ { @@ _ block _ \int_eval:n { #1 } - \int_eval:n { #2 } }
+ \prg_return_true:
+ \prg_return_false:
+ }
+% \end{macrocode}
+%
+% \bigskip
% ``Computing a corner'' is determining all the empty cells (which are not in a
% block) that belong to that corner. These cells will be added to the sequence
-% |\l_@@_corners_cells_seq|.
+% |\l_@@_corners_cells_clist|.
%
% \medskip
% The six arguments of |\@@_compute_a_corner:nnnnnn| are as follow:
@@ -12450,13 +12499,12 @@ version 2005/12/01 or later.
\int_set:Nn \l_@@_last_empty_row_int { #1 }
\int_step_inline:nnnn { #1 } { #3 } { #5 }
{
- \@@_test_if_cell_in_a_block:nn { ##1 } { \int_eval:n { #2 } }
\bool_lazy_or:nnTF
{
\cs_if_exist_p:c
{ pgf @ sh @ ns @ \@@_env: - ##1 - \int_eval:n { #2 } }
}
- \l_tmpb_bool
+ { \@@_if_in_block_p:nn { ##1 } { #2 } }
{ \bool_set_true:N \l_tmpa_bool }
{
\bool_if:NF \l_tmpa_bool
@@ -12471,18 +12519,17 @@ version 2005/12/01 or later.
\int_set:Nn \l_@@_last_empty_column_int { #2 }
\int_step_inline:nnnn { #2 } { #4 } { #6 }
{
- \@@_test_if_cell_in_a_block:nn { \int_eval:n { #1 } } { ##1 }
- \bool_lazy_or:nnTF
- \l_tmpb_bool
+ \bool_lazy_or:nnTF
{
\cs_if_exist_p:c
{ pgf @ sh @ ns @ \@@_env: - \int_eval:n { #1 } - ##1 }
}
+ { \@@_if_in_block_p:nn { #1 } { ##1 } }
{ \bool_set_true:N \l_tmpa_bool }
{
\bool_if:NF \l_tmpa_bool
{ \int_set:Nn \l_@@_last_empty_column_int { ##1 } }
- }
+ }
}
% \end{macrocode}
% Now, we loop over the rows.
@@ -12495,21 +12542,18 @@ version 2005/12/01 or later.
\bool_set_false:N \l_tmpa_bool
\int_step_inline:nnnn { #2 } { #4 } \l_@@_last_empty_column_int
{
- \@@_test_if_cell_in_a_block:nn { ##1 } { ####1 }
\bool_lazy_or:nnTF
- \l_tmpb_bool
- {
- \cs_if_exist_p:c
- { pgf @ sh @ ns @ \@@_env: - ##1 - ####1 }
- }
+ { \cs_if_exist_p:c { pgf @ sh @ ns @ \@@_env: - ##1 - ####1 } }
+ { \@@_if_in_block_p:nn { ##1 } { ####1 } }
{ \bool_set_true:N \l_tmpa_bool }
{
\bool_if:NF \l_tmpa_bool
{
\int_set:Nn \l_@@_last_empty_column_int { ####1 }
- \seq_put_right:Nn
- \l_@@_corners_cells_seq
+ \clist_put_right:Nn
+ \l_@@_corners_cells_clist
{ ##1 - ####1 }
+ \cs_set_nopar:cpn { @@ _ corner _ ##1 - ####1 } { }
}
}
}
@@ -12517,41 +12561,19 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \bigskip
-% The following macro tests whether a cell is in (at least) one of
-% the blocks of the array (or in a cell with a |\diagbox|).
%
-% The flag |\l_tmpb_bool| will be raised if the cell |#1|-|#2| is in a block (or
-% in a cell with a |\diagbox|).
+% \bigskip
+% Of course, instead of the following lines, we could have use
+% |\prg_new_conditional:Npnn|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_test_if_cell_in_a_block:nn #1 #2
- {
- \int_set:Nn \l_tmpa_int { #1 }
- \int_set:Nn \l_tmpb_int { #2 }
- \bool_set_false:N \l_tmpb_bool
- \seq_map_inline:Nn \g_@@_pos_of_blocks_seq
- { \@@_test_if_cell_in_block:nnnnnnn \l_tmpa_int \l_tmpb_int ##1 }
- }
-% \end{macrocode}
-%
-%
-% \begin{macrocode}
-\cs_set_protected:Npn \@@_test_if_cell_in_block:nnnnnnn #1 #2 #3 #4 #5 #6 #7
- {
- \int_compare:nNnF { #3 } > { #1 }
- {
- \int_compare:nNnF { #1 } > { #5 }
- {
- \int_compare:nNnF { #4 } > { #2 }
- {
- \int_compare:nNnF { #2 } > { #6 }
- { \bool_set_true:N \l_tmpb_bool }
- }
- }
- }
- }
+\cs_new:Npn \@@_if_in_corner:nT #1 { \cs_if_exist:cT { @@ _ corner _ #1 } }
+\cs_new:Npn \@@_if_in_corner:nF #1 { \cs_if_exist:cF { @@ _ corner _ #1 } }
% \end{macrocode}
%
+% Instead of the previous lines, we could have used |\l_@@_corners_cells_clist|
+% but it's less efficient:
+%
+% \verb|\clist_if_in:NeT \l_@@_corners_cells_clist { #1 } ...|
%
% \bigskip
% \section{The environment \{NiceMatrixBlock\}}
@@ -12566,7 +12588,7 @@ version 2005/12/01 or later.
% Up to now, there is only one option available for the environment
% |{NiceMatrixBlock}|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrixBlock }
+\keys_define:nn { nicematrix / NiceMatrixBlock }
{
auto-columns-width .code:n =
{
@@ -12583,14 +12605,13 @@ version 2005/12/01 or later.
{
\int_gincr:N \g_@@_NiceMatrixBlock_int
\dim_zero:N \l_@@_columns_width_dim
- \keys_set:nn { NiceMatrix / NiceMatrixBlock } { #1 }
+ \keys_set:nn { nicematrix / NiceMatrixBlock } { #1 }
\bool_if:NT \l_@@_block_auto_columns_width_bool
{
\cs_if_exist:cT
{ @@_max_cell_width_ \int_use:N \g_@@_NiceMatrixBlock_int }
{
- % is \exp_args:NNe mandatory?
- \exp_args:NNe \dim_set:Nn \l_@@_columns_width_dim
+ \dim_set:Nn \l_@@_columns_width_dim
{
\use:c
{ @@_max_cell_width _ \int_use:N \g_@@_NiceMatrixBlock_int }
@@ -12618,7 +12639,7 @@ version 2005/12/01 or later.
\bool_if:NT \l_@@_block_auto_columns_width_bool
{
\iow_shipout:Nn \@mainaux \ExplSyntaxOn
- \iow_shipout:Nx \@mainaux
+ \iow_shipout:Ne \@mainaux
{
\cs_gset:cpn
{ @@ _ max _ cell _ width _ \int_use:N \g_@@_NiceMatrixBlock_int }
@@ -12639,11 +12660,6 @@ version 2005/12/01 or later.
%
% \section{The extra nodes}
%
-% First, two variants of the functions |\dim_min:nn| and |\dim_max:nn|.
-% \begin{macrocode}
-\cs_generate_variant:Nn \dim_min:nn { v n }
-\cs_generate_variant:Nn \dim_max:nn { v n }
-% \end{macrocode}
%
%
% \bigskip
@@ -12737,7 +12753,7 @@ version 2005/12/01 or later.
\pgfpointanchor { \@@_env: - \@@_i: - \@@_j: } { south~west }
\dim_set:cn { l_@@_row_\@@_i: _min_dim}
{ \dim_min:vn { l_@@_row _ \@@_i: _min_dim } \pgf@y }
- \seq_if_in:NxF \g_@@_multicolumn_cells_seq { \@@_i: - \@@_j: }
+ \seq_if_in:NeF \g_@@_multicolumn_cells_seq { \@@_i: - \@@_j: }
{
\dim_set:cn { l_@@_column _ \@@_j: _min_dim}
{ \dim_min:vn { l_@@_column _ \@@_j: _min_dim } \pgf@x }
@@ -12749,7 +12765,7 @@ version 2005/12/01 or later.
\pgfpointanchor { \@@_env: - \@@_i: - \@@_j: } { north~east }
\dim_set:cn { l_@@_row _ \@@_i: _ max_dim }
{ \dim_max:vn { l_@@_row _ \@@_i: _ max_dim } \pgf@y }
- \seq_if_in:NxF \g_@@_multicolumn_cells_seq { \@@_i: - \@@_j: }
+ \seq_if_in:NeF \g_@@_multicolumn_cells_seq { \@@_i: - \@@_j: }
{
\dim_set:cn { l_@@_column _ \@@_j: _ max_dim }
{ \dim_max:vn { l_@@_column _ \@@_j: _max_dim } \pgf@x }
@@ -12998,7 +13014,7 @@ version 2005/12/01 or later.
% array (and once again when the block will be put in the array).
% Here is the set of keys for the first pass (in the cell of the array).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Block / FirstPass }
+\keys_define:nn { nicematrix / Block / FirstPass }
{
j .code:n = \str_set:Nn \l_@@_hpos_block_str j
\bool_set_true:N \l_@@_p_block_bool ,
@@ -13042,6 +13058,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+%
% The following command |\@@_Block:| will be linked to |\Block| in the
% environments of \pkg{nicematrix}. We define it with
% |\NewExpandableDocumentCommand| because it has an optional argument between~
@@ -13113,12 +13130,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_lazy_or:nnTF
{ \tl_if_blank_p:n { #1 } }
- { \str_if_eq_p:Vn \c_@@_star_str { #1 } }
+ { \str_if_eq_p:ee { * } { #1 } }
{ \int_set:Nn \l_tmpa_int { 100 } }
{ \int_set:Nn \l_tmpa_int { #1 } }
\bool_lazy_or:nnTF
{ \tl_if_blank_p:n { #2 } }
- { \str_if_eq_p:Vn \c_@@_star_str { #2 } }
+ { \str_if_eq_p:ee { * } { #2 } }
{ \int_set:Nn \l_tmpb_int { 100 } }
{ \int_set:Nn \l_tmpb_int { #2 } }
% \end{macrocode}
@@ -13130,7 +13147,7 @@ version 2005/12/01 or later.
{
\tl_if_empty:NTF \l_@@_hpos_cell_tl
{ \str_set_eq:NN \l_@@_hpos_block_str \c_@@_c_str }
- { \str_set:NV \l_@@_hpos_block_str \l_@@_hpos_cell_tl }
+ { \str_set:No \l_@@_hpos_block_str \l_@@_hpos_cell_tl }
}
{ \str_set_eq:NN \l_@@_hpos_block_str \c_@@_c_str }
% \end{macrocode}
@@ -13139,11 +13156,11 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
- \keys_set_known:nn { NiceMatrix / Block / FirstPass } { #3 }
+ \keys_set_known:nn { nicematrix / Block / FirstPass } { #3 }
% \end{macrocode}
%
% \begin{macrocode}
- \tl_set:Nx \l_tmpa_tl
+ \tl_set:Ne \l_tmpa_tl
{
{ \int_use:N \c@iRow }
{ \int_use:N \c@jCol }
@@ -13165,11 +13182,14 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_set_false:N \l_tmpa_bool
\bool_if:NT \l_@@_amp_in_blocks_bool
+% \end{macrocode}
+% |\tl_if_in:nnT| is slightly faster than |\str_if_in:nnT|.
+% \begin{macrocode}
{ \tl_if_in:nnT { #5 } { & } { \bool_set_true:N \l_tmpa_bool } }
\bool_case:nF
{
- \l_tmpa_bool { \exp_args:Nee \@@_Block_vii:nnnnn }
- \l_@@_p_block_bool { \exp_args:Nee \@@_Block_vi:nnnnn }
+ \l_tmpa_bool { \@@_Block_vii:eennn }
+ \l_@@_p_block_bool { \@@_Block_vi:eennn }
% \end{macrocode}
% For the blocks mono-column, we will compose right now in a box in order to
% compute its width and take that width into account for the width of the
@@ -13179,14 +13199,12 @@ version 2005/12/01 or later.
% column, it's imperative. Otherwise, the process for the determination of the
% widths of the columns will be wrong.
% \begin{macrocode}
- \l_@@_X_bool { \exp_args:Nee \@@_Block_v:nnnnn }
- { \tl_if_empty_p:n { #5 } } { \exp_args:Nee \@@_Block_v:nnnnn }
- { \int_compare_p:nNn \l_tmpa_int = \c_one_int }
- { \exp_args:Nee \@@_Block_iv:nnnnn }
- { \int_compare_p:nNn \l_tmpb_int = \c_one_int }
- { \exp_args:Nee \@@_Block_iv:nnnnn }
- }
- { \exp_args:Nee \@@_Block_v:nnnnn }
+ \l_@@_X_bool { \@@_Block_v:eennn }
+ { \tl_if_empty_p:n { #5 } } { \@@_Block_v:eennn }
+ { \int_compare_p:nNn \l_tmpa_int = \c_one_int } { \@@_Block_iv:eennn }
+ { \int_compare_p:nNn \l_tmpb_int = \c_one_int } { \@@_Block_iv:eennn }
+ }
+ { \@@_Block_v:eennn }
{ \l_tmpa_int } { \l_tmpb_int } { #3 } { #4 } { #5 }
}
% \end{macrocode}
@@ -13207,12 +13225,13 @@ version 2005/12/01 or later.
% the tokens to put before the potential math mode and before the composition of
% the block and |#5| is the label (=content) of the block.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_Block_iv:nnnnn { e e }
\cs_new_protected:Npn \@@_Block_iv:nnnnn #1 #2 #3 #4 #5
{
\int_gincr:N \g_@@_block_box_int
\cs_set_protected_nopar:Npn \diagbox ##1 ##2
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_actually_diagbox:nnnnnn
{ \int_use:N \c@iRow }
@@ -13254,10 +13273,42 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \c_one_int
{
\int_if_zero:nTF \c@iRow
- \l_@@_code_for_first_row_tl
+ {
+% \end{macrocode}
+%
+% \bigskip
+% In the following code, the value of |code-for-first-row| contains a |\Block|
+% (in order to have the ``first row'' centered). But, that block will be
+% executed, since it is entirely contained in the first row, the value of
+% |code-for-first-row| will be inserted once again... with the same command
+% |\Block|. That's why we have to nullify the command |\Block.|
+% \begin{Verbatim}
+% $\begin{bNiceMatrix}%
+% [
+% r,
+% first-row,
+% last-col,
+% code-for-first-row = \Block{}{\scriptstyle\color{blue} \arabic{jCol}},
+% code-for-last-col = \scriptstyle \color{blue} \arabic{iRow}
+% ]
+% & & & & \\
+% -2 & 3 & -4 & 5 & \\
+% 3 & -4 & 5 & -6 & \\
+% -4 & 5 & -6 & 7 & \\
+% 5 & -6 & 7 & -8 & \\
+% \end{bNiceMatrix}$
+% \end{Verbatim}
+%
+% \begin{macrocode}
+ \cs_set_eq:NN \Block \@@_NullBlock:
+ \l_@@_code_for_first_row_tl
+ }
{
\int_compare:nNnT \c@iRow = \l_@@_last_row_int
- \l_@@_code_for_last_row_tl
+ {
+ \cs_set_eq:NN \Block \@@_NullBlock:
+ \l_@@_code_for_last_row_tl
+ }
}
\g_@@_row_style_tl
}
@@ -13305,7 +13356,10 @@ version 2005/12/01 or later.
{
\use:e
{
- \exp_not:N \begin { minipage }%
+% \end{macrocode}
+% The |\exp_not:N| is mandatory before |\begin|.
+% \begin{macrocode}
+ \exp_not:N \begin { minipage }%
[ \str_lowercase:o \l_@@_vpos_block_str ]
{ \l_@@_col_width_dim }
\str_case:on \l_@@_hpos_block_str
@@ -13403,7 +13457,7 @@ version 2005/12/01 or later.
}
}
}
- \seq_gput_right:Nx \g_@@_blocks_seq
+ \seq_gput_right:Ne \g_@@_blocks_seq
{
\l_tmpa_tl
% \end{macrocode}
@@ -13443,7 +13497,7 @@ version 2005/12/01 or later.
{
\bool_if:NT \g_@@_rotate_bool
{
- \str_set:Nx \l_@@_hpos_block_str
+ \str_set:Ne \l_@@_hpos_block_str
{
\bool_if:NTF \g_@@_rotate_c_bool
{ c }
@@ -13505,9 +13559,10 @@ version 2005/12/01 or later.
% the tokens to put before the math mode and before the composition of the block
% and |#5| is the label (=content) of the block.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_Block_v:nnnnn { e e }
\cs_new_protected:Npn \@@_Block_v:nnnnn #1 #2 #3 #4 #5
{
- \seq_gput_right:Nx \g_@@_blocks_seq
+ \seq_gput_right:Ne \g_@@_blocks_seq
{
\l_tmpa_tl
{ \exp_not:n { #3 } }
@@ -13576,9 +13631,10 @@ version 2005/12/01 or later.
% \bigskip
% The following macro is for the case of a |\Block| which uses the key~|p|.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_Block_vi:nnnnn { e e }
\cs_new_protected:Npn \@@_Block_vi:nnnnn #1 #2 #3 #4 #5
{
- \seq_gput_right:Nx \g_@@_blocks_seq
+ \seq_gput_right:Ne \g_@@_blocks_seq
{
\l_tmpa_tl
{ \exp_not:n { #3 } }
@@ -13595,9 +13651,10 @@ version 2005/12/01 or later.
% \bigskip
% The following macro is for the case of a |\Block| which uses the key~|p|.
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_Block_vii:nnnnn { e e }
\cs_new_protected:Npn \@@_Block_vii:nnnnn #1 #2 #3 #4 #5
{
- \seq_gput_right:Nx \g_@@_blocks_seq
+ \seq_gput_right:Ne \g_@@_blocks_seq
{
\l_tmpa_tl
{ \exp_not:n { #3 } }
@@ -13614,11 +13671,15 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Block / SecondPass }
+\keys_define:nn { nicematrix / Block / SecondPass }
{
ampersand-in-blocks .bool_set:N = \l_@@_amp_in_blocks_bool ,
ampersand-in-blocks .default:n = true ,
&-in-blocks .meta:n = ampersand-in-blocks ,
+% \end{macrocode}
+% The sequence |\l_@@_tikz_seq| will contain a sequence of comma-separated lists
+% of keys.
+% \begin{macrocode}
tikz .code:n =
\IfPackageLoadedTF { tikz }
{ \seq_put_right:Nn \l_@@_tikz_seq { { #1 } } }
@@ -13708,6 +13769,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_Block_v:nnnnnn { n n e e }
\cs_new_protected:Npn \@@_Block_iv:nnnnnn #1 #2 #3 #4 #5 #6
{
% \end{macrocode}
@@ -13751,11 +13813,11 @@ version 2005/12/01 or later.
\int_compare:nNnTF \l_@@_last_row_int > \g_@@_row_total_int
{ \msg_error:nnnn { nicematrix } { Block~too~large~1 } { #1 } { #2 } }
{
- \@@_Block_v:nnVVnn
+ \@@_Block_v:nneenn
{ #1 }
{ #2 }
- \l_@@_last_row_int
- \l_@@_last_col_int
+ { \int_use:N \l_@@_last_row_int }
+ { \int_use:N \l_@@_last_col_int }
{ #5 }
{ #6 }
}
@@ -13763,10 +13825,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_generate_variant:Nn \@@_Block_v:nnnnnn { n n V V n n }
-% \end{macrocode}
-%
%
% \medskip
% The following command |\@@_Block_v:nnnnnn| will actually draw the block.
@@ -13785,12 +13843,13 @@ version 2005/12/01 or later.
\group_begin:
\int_compare:nNnT { #1 } = { #3 }
{ \str_set:Nn \l_@@_vpos_block_str { t } }
- \keys_set:nn { NiceMatrix / Block / SecondPass } { #5 }
+ \keys_set:nn { nicematrix / Block / SecondPass } { #5 }
% \end{macrocode}
%
%
% If the content of the block contains |&|, we will have a special treatement
-% (since the cell must be divided in several sub-cells).
+% (since the cell must be divided in several sub-cells). Remark that
+% |\tl_if_in:nnT| is faster then |\str_if_in:nnT|.
% \begin{macrocode}
\tl_if_in:nnT { #6 } { & } { \bool_set_true:N \l_@@_ampersand_bool }
% \end{macrocode}
@@ -13800,7 +13859,7 @@ version 2005/12/01 or later.
\l_@@_vlines_block_bool
{ ! \l_@@_ampersand_bool }
{
- \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ \tl_gput_right:Ne \g_nicematrix_code_after_tl
{
\@@_vlines_block:nnn
{ \exp_not:n { #5 } }
@@ -13810,7 +13869,7 @@ version 2005/12/01 or later.
}
\bool_if:NT \l_@@_hlines_block_bool
{
- \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ \tl_gput_right:Ne \g_nicematrix_code_after_tl
{
\@@_hlines_block:nnn
{ \exp_not:n { #5 } }
@@ -13827,7 +13886,7 @@ version 2005/12/01 or later.
% |hvlines|) will be used when drawing the rules (in fact, there is also the
% |\multicolumn| and the |\diagbox| in that sequence).
% \begin{macrocode}
- \seq_gput_left:Nx \g_@@_pos_of_blocks_seq
+ \seq_gput_left:Ne \g_@@_pos_of_blocks_seq
{ { #1 } { #2 } { #3 } { #4 } { \l_@@_block_name_str } }
}
}
@@ -13839,7 +13898,7 @@ version 2005/12/01 or later.
{
\bool_lazy_or:nnT \l_@@_hlines_block_bool \l_@@_vlines_block_bool
{ \@@_error:n { hlines~with~color } }
- \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ \tl_gput_right:Ne \g_nicematrix_code_after_tl
{
\@@_stroke_block:nnn
% \end{macrocode}
@@ -13857,7 +13916,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\clist_if_empty:NF \l_@@_borders_clist
{
- \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ \tl_gput_right:Ne \g_nicematrix_code_after_tl
{
\@@_stroke_borders_block:nnn
{ \exp_not:n { #5 } }
@@ -13872,23 +13931,23 @@ version 2005/12/01 or later.
{
\tl_if_empty:NF \l_@@_opacity_tl
{
- \tl_if_head_eq_meaning:nNTF \l_@@_fill_tl [
+ \tl_if_head_eq_meaning:oNTF \l_@@_fill_tl [
{
- \tl_set:Nx \l_@@_fill_tl
+ \tl_set:Ne \l_@@_fill_tl
{
[ opacity = \l_@@_opacity_tl ,
\tl_tail:o \l_@@_fill_tl
}
}
{
- \tl_set:Nx \l_@@_fill_tl
- { [ opacity = \l_@@_opacity_tl ] { \l_@@_fill_tl } }
+ \tl_set:Ne \l_@@_fill_tl
+ { [ opacity = \l_@@_opacity_tl ] { \exp_not:o \l_@@_fill_tl } }
}
}
- \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ \tl_gput_right:Ne \g_@@_pre_code_before_tl
{
\exp_not:N \roundedrectanglecolor
- \exp_args:No \tl_if_head_eq_meaning:nNTF \l_@@_fill_tl [
+ \tl_if_head_eq_meaning:oNTF \l_@@_fill_tl [
{ \l_@@_fill_tl }
{ { \l_@@_fill_tl } }
{ #1 - #2 }
@@ -13901,14 +13960,17 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_if_empty:NF \l_@@_tikz_seq
{
- \tl_gput_right:Nx \g_nicematrix_code_before_tl
+ \tl_gput_right:Ne \g_nicematrix_code_before_tl
{
\@@_block_tikz:nnnnn
+ { \seq_use:Nn \l_@@_tikz_seq { , } }
{ #1 }
{ #2 }
{ \int_use:N \l_@@_last_row_int }
{ \int_use:N \l_@@_last_col_int }
- { \seq_use:Nn \l_@@_tikz_seq { , } }
+% \end{macrocode}
+% We will have in that last field a list of list of Tikz keys.
+% \begin{macrocode}
}
}
% \end{macrocode}
@@ -13917,14 +13979,15 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_protected_nopar:Npn \diagbox ##1 ##2
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_actually_diagbox:nnnnnn
{ #1 }
{ #2 }
{ \int_use:N \l_@@_last_row_int }
{ \int_use:N \l_@@_last_col_int }
- { \exp_not:n { ##1 } } { \exp_not:n { ##2 } }
+ { \exp_not:n { ##1 } }
+ { \exp_not:n { ##2 } }
}
}
% \end{macrocode}
@@ -14117,6 +14180,7 @@ version 2005/12/01 or later.
\pgfpicture
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
+
\@@_qpoint:n { row - #1 }
\dim_set_eq:NN \l_@@_tmpc_dim \pgf@y
\@@_qpoint:n { row - \int_eval:n { #3 + 1 } }
@@ -14161,20 +14225,17 @@ version 2005/12/01 or later.
{
\pgfpoint
{
+ \l_tmpa_dim + ##1 \l_tmpb_dim -
\str_case:on \l_@@_hpos_block_str
{
- l { \l_tmpa_dim + ##1 \l_tmpb_dim - \l_tmpb_dim + \col@sep}
- c { \l_tmpa_dim + ##1 \l_tmpb_dim - 0.5 \l_tmpb_dim }
- r { \l_tmpa_dim + ##1 \l_tmpb_dim - \col@sep }
+ l { \l_tmpb_dim + \col@sep}
+ c { 0.5 \l_tmpb_dim }
+ r { \col@sep }
}
}
{ \l_@@_tmpc_dim }
}
- \pgfset
- {
- inner~xsep = \c_zero_dim ,
- inner~ysep = \c_zero_dim
- }
+ \pgfset { inner~sep = \c_zero_dim }
\pgfnode
{ rectangle }
{
@@ -14190,6 +14251,9 @@ version 2005/12/01 or later.
}
\endpgfpicture
}
+% \end{macrocode}
+% Now the case where there is no ampersand |&| in the content of the block.
+% \begin{macrocode}
{
\bool_if:NTF \l_@@_p_block_bool
{
@@ -14236,9 +14300,9 @@ version 2005/12/01 or later.
\bool_lazy_any:nTF
{
{ \str_if_empty_p:N \l_@@_vpos_block_str } % added 2024/06/29
- { \str_if_eq_p:on \l_@@_vpos_block_str { c } }
- { \str_if_eq_p:on \l_@@_vpos_block_str { T } }
- { \str_if_eq_p:on \l_@@_vpos_block_str { B } }
+ { \str_if_eq_p:ee \l_@@_vpos_block_str { c } }
+ { \str_if_eq_p:ee \l_@@_vpos_block_str { T } }
+ { \str_if_eq_p:ee \l_@@_vpos_block_str { B } }
}
% \end{macrocode}
% \medskip
@@ -14259,7 +14323,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% |\l_tmpa_tl| will contain the anchor of the \textsc{pgf} node which will be used.
% \begin{macrocode}
- \tl_set:Nx \l_tmpa_tl
+ \tl_set:Ne \l_tmpa_tl
{
\str_case:on \l_@@_vpos_block_str
{
@@ -14319,11 +14383,7 @@ version 2005/12/01 or later.
}
{ \l_tmpa_tl }
}
- \pgfset
- {
- inner~xsep = \c_zero_dim ,
- inner~ysep = \c_zero_dim
- }
+ \pgfset { inner~sep = \c_zero_dim }
\pgfnode
{ rectangle }
{ \l_tmpa_tl }
@@ -14341,7 +14401,7 @@ version 2005/12/01 or later.
{
\@@_qpoint:n
{
- row - \str_if_eq:onTF \l_@@_vpos_block_str { b } { #3 } { #1 }
+ row - \str_if_eq:eeTF \l_@@_vpos_block_str { b } { #3 } { #1 }
- base
}
}
@@ -14392,6 +14452,25 @@ version 2005/12/01 or later.
%
%
% \bigskip
+% For the command |\cellcolor| used within a sub-cell of a |\Block| (when the
+% character |&| is used inside the cell).
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_fill:nnnnn #1 #2 #3 #4 #5
+ {
+ \pgfpicture
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
+ \pgfpathrectanglecorners
+ { \pgfpoint { #2 } { #3 } }
+ { \pgfpoint { #4 } { #5 } }
+ \pgfsetfillcolor { #1 }
+ \pgfusepath { fill }
+ \endpgfpicture
+ }
+% \end{macrocode}
+%
+%
+% \bigskip
% The first argument of |\@@_stroke_block:nnn| is a list of options for the
% rectangle that you will stroke. The second argument is the upper-left cell of
% the block (with, as usual, the syntax $i$|-|$j$) and the third is the last
@@ -14402,7 +14481,7 @@ version 2005/12/01 or later.
\group_begin:
\tl_clear:N \l_@@_draw_tl
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockStroke } { #1 }
+ \keys_set_known:nn { nicematrix / BlockStroke } { #1 }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
@@ -14456,11 +14535,11 @@ version 2005/12/01 or later.
%
% Here is the set of keys for the command |\@@_stroke_block:nnn|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / BlockStroke }
+\keys_define:nn { nicematrix / BlockStroke }
{
color .tl_set:N = \l_@@_draw_tl ,
draw .code:n =
- \exp_args:Ne \tl_if_empty:nF { #1 } { \tl_set:Nn \l_@@_draw_tl { #1 } } ,
+ \tl_if_empty:eF { #1 } { \tl_set:Nn \l_@@_draw_tl { #1 } } ,
draw .default:n = default ,
line-width .dim_set:N = \l_@@_line_width_dim ,
rounded-corners .dim_set:N = \l_@@_rounded_corners_dim ,
@@ -14478,13 +14557,13 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_vlines_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
\@@_cut_on_hyphen:w #3 \q_stop
- \tl_set:Nx \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
- \tl_set:Nx \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
+ \tl_set:Ne \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
+ \tl_set:Ne \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
\int_step_inline:nnn \l_@@_tmpd_tl \l_tmpb_tl
{
\use:e
@@ -14502,13 +14581,13 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hlines_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
\@@_cut_on_hyphen:w #3 \q_stop
- \tl_set:Nx \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
- \tl_set:Nx \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
+ \tl_set:Ne \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
+ \tl_set:Ne \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
\int_step_inline:nnn \l_@@_tmpc_tl \l_tmpa_tl
{
\use:e
@@ -14534,20 +14613,20 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_stroke_borders_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\dim_compare:nNnTF \l_@@_rounded_corners_dim > \c_zero_dim
{ \@@_error:n { borders~forbidden } }
{
\tl_clear_new:N \l_@@_borders_tikz_tl
- \keys_set:nV
- { NiceMatrix / OnlyForTikzInBorders }
+ \keys_set:no
+ { nicematrix / OnlyForTikzInBorders }
\l_@@_borders_clist
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
\@@_cut_on_hyphen:w #3 \q_stop
- \tl_set:Nx \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
- \tl_set:Nx \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
+ \tl_set:Ne \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
+ \tl_set:Ne \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
\@@_stroke_borders_block_i:
}
}
@@ -14556,7 +14635,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \cs_new_protected:Npx \@@_stroke_borders_block_i:
+ \cs_new_protected:Npe \@@_stroke_borders_block_i:
{
\c_@@_pgfortikzpicture_tl
\@@_stroke_borders_block_ii:
@@ -14584,7 +14663,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / OnlyForTikzInBorders }
+\keys_define:nn { nicematrix / OnlyForTikzInBorders }
{
tikz .code:n =
\cs_if_exist:NTF \tikzpicture
@@ -14653,7 +14732,7 @@ version 2005/12/01 or later.
% \bigskip
% Here is the set of keys for the command |\@@_stroke_borders_block:nnn|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / BlockBorders }
+\keys_define:nn { nicematrix / BlockBorders }
{
borders .clist_set:N = \l_@@_borders_clist ,
rounded-corners .dim_set:N = \l_@@_rounded_corners_dim ,
@@ -14664,27 +14743,42 @@ version 2005/12/01 or later.
%
% \bigskip
% The following command will be used if the key |tikz| has been used for the
-% command |\Block|. The arguments |#1| and |#2| are the coordinates of the first
-% cell and |#3| and |#4| the coordinates of the last cell of the block. |#5| is
-% a comma-separated list of the Tikz keys used with the path. However, among
-% those keys, you have added in \pkg{nicematrix} a special key |offset| (an
-% offset for the rectangle of the block). That's why we have to extract that key
-% first.
+% command |\Block|.
+
+% |#1| is a \emph{list of lists} of Tikz keys used with the path.
+%
+% \emph{Example}: |{{offset=1pt,draw,red},{offset=2pt,draw,blue}}|
+%
+% which arises from a command such as :
+%
+% |\Block[tikz={offset=1pt,draw,red},tikz={offset=2pt,draw,blue}]{2-2}{}|
+%
+% The arguments |#2| and |#3| are the coordinates of the first
+% cell and |#4| and |#5| the coordinates of the last cell of the block.
+%
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_block_tikz:nnnnn { o }
\cs_new_protected:Npn \@@_block_tikz:nnnnn #1 #2 #3 #4 #5
{
\begin { tikzpicture }
\@@_clip_with_rounded_corners:
- \clist_map_inline:nn { #5 }
+% \end{macrocode}
+% We use |clist_map_inline:nn| because |#5| is a list of lists.
+% \begin{macrocode}
+ \clist_map_inline:nn { #1 }
{
- \keys_set_known:nnN { NiceMatrix / SpecialOffset } { ##1 } \l_tmpa_tl
+% \end{macrocode}
+% We extract the key |offset| which is \emph{not} a key of TikZ but a key added
+% by \pkg{nicematrix}.
+% \begin{macrocode}
+ \keys_set_known:nnN { nicematrix / SpecialOffset } { ##1 } \l_tmpa_tl
\use:e { \exp_not:N \path [ \l_tmpa_tl ] }
(
[
xshift = \dim_use:N \l_@@_offset_dim ,
yshift = - \dim_use:N \l_@@_offset_dim
]
- #1 -| #2
+ #2 -| #3
)
rectangle
(
@@ -14692,19 +14786,30 @@ version 2005/12/01 or later.
xshift = - \dim_use:N \l_@@_offset_dim ,
yshift = \dim_use:N \l_@@_offset_dim
]
- \int_eval:n { #3 + 1 } -| \int_eval:n { #4 + 1 }
+ \int_eval:n { #4 + 1 } -| \int_eval:n { #5 + 1 }
) ;
}
\end { tikzpicture }
}
-\cs_generate_variant:Nn \@@_block_tikz:nnnnn { n n n n V }
% \end{macrocode}
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / SpecialOffset }
+\keys_define:nn { nicematrix / SpecialOffset }
{ offset .dim_set:N = \l_@@_offset_dim }
% \end{macrocode}
+%
+% \bigskip
+% In some circonstancies, we want to nullify the command |\Block|. In order to
+% reach that goal, we will link the command |\Block| to the following command
+% |\@@_NullBlock:| which has the same syntax as the standard command |\Block|
+% but which is no-op.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_NullBlock:
+ { \@@_collect_options:n { \@@_NullBlock_i: } }
+\NewExpandableDocumentCommand \@@_NullBlock_i: { m m D < > { } +m }
+ { }
+% \end{macrocode}
%
%
% \section{How to draw the dotted lines transparently}
@@ -14738,7 +14843,7 @@ version 2005/12/01 or later.
% We will extract some keys and pass the other keys to the environment
% |{NiceArrayWithDelims}|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Auto }
+\keys_define:nn { nicematrix / Auto }
{
columns-type .tl_set:N = \l_@@_columns_type_tl ,
columns-type .value_required:n = true ,
@@ -14749,7 +14854,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
rounded-corners .dim_set:N = \l_@@_tab_rounded_corners_dim ,
rounded-corners .default:n = 4 pt
@@ -14770,7 +14875,7 @@ version 2005/12/01 or later.
% The group is for the protection of the keys.
% \begin{macrocode}
\group_begin:
- \keys_set_known:nnN { NiceMatrix / Auto } { #6 } \l_tmpa_tl
+ \keys_set_known:nnN { nicematrix / Auto } { #6 } \l_tmpa_tl
\use:e
{
\exp_not:N \begin { NiceArrayWithDelims } { #1 } { #2 }
@@ -14812,7 +14917,7 @@ version 2005/12/01 or later.
\cs_set_protected:cpn { #1 AutoNiceMatrix }
{
\bool_gset_true:N \g_@@_delims_bool
- \str_gset:Nx \g_@@_name_env_str { #1 AutoNiceMatrix }
+ \str_gset:Ne \g_@@_name_env_str { #1 AutoNiceMatrix }
\AutoNiceMatrixWithDelims { #2 } { #3 }
}
}
@@ -14873,7 +14978,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_diagbox:nn #1 #2
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\@@_actually_diagbox:nnnnnn
{ \int_use:N \c@iRow }
@@ -14897,7 +15002,7 @@ version 2005/12/01 or later.
% because a cell with |\diagbox| must be considered as non empty by the key
% |corners|.
% \begin{macrocode}
- \seq_gput_right:Nx \g_@@_pos_of_blocks_seq
+ \seq_gput_right:Ne \g_@@_pos_of_blocks_seq
{
{ \int_use:N \c@iRow }
{ \int_use:N \c@jCol }
@@ -14951,7 +15056,10 @@ version 2005/12/01 or later.
\pgfnode { rectangle } { south~west }
{
\begin { minipage } { 20 cm }
- \@@_math_toggle: #5 \@@_math_toggle:
+% \end{macrocode}
+% The |\scan_stop:| avoids an error in math mode when the argument |#5| is empty.
+% \begin{macrocode}
+ \@@_math_toggle: \scan_stop: #5 \@@_math_toggle:
\end { minipage }
}
{ }
@@ -14962,7 +15070,7 @@ version 2005/12/01 or later.
{
\begin { minipage } { 20 cm }
\raggedleft
- \@@_math_toggle: #6 \@@_math_toggle:
+ \@@_math_toggle: \scan_stop: #6 \@@_math_toggle:
\end { minipage }
}
{ }
@@ -15139,7 +15247,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / sub-matrix }
+\keys_define:nn { nicematrix / sub-matrix }
{
extra-height .dim_set:N = \l_@@_submatrix_extra_height_dim ,
extra-height .value_required:n = true ,
@@ -15160,12 +15268,12 @@ version 2005/12/01 or later.
hvlines .meta:n = { hlines, vlines } ,
hvlines .value_forbidden:n = true
}
-\keys_define:nn { NiceMatrix }
+\keys_define:nn { nicematrix }
{
- SubMatrix .inherit:n = NiceMatrix / sub-matrix ,
- NiceArray / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- pNiceArray / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- NiceMatrixOptions / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
+ SubMatrix .inherit:n = nicematrix / sub-matrix ,
+ NiceArray / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ pNiceArray / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ NiceMatrixOptions / sub-matrix .inherit:n = nicematrix / sub-matrix ,
}
% \end{macrocode}
%
@@ -15173,7 +15281,7 @@ version 2005/12/01 or later.
% The following keys set is for the command |\SubMatrix| itself (not the tuning
% of |\SubMatrix| that can be done elsewhere).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / SubMatrix }
+\keys_define:nn { nicematrix / SubMatrix }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
@@ -15199,7 +15307,7 @@ version 2005/12/01 or later.
{ \@@_error:n { Invalid~name } }
} ,
name .value_required:n = true ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
code .tl_set:N = \l_@@_code_tl ,
code .value_required:n = true ,
@@ -15215,7 +15323,7 @@ version 2005/12/01 or later.
{
\peek_remove_spaces:n
{
- \tl_gput_right:Nx \g_@@_pre_code_after_tl
+ \tl_gput_right:Ne \g_@@_pre_code_after_tl
{
\SubMatrix { #1 } { #2 } { #3 } { #4 }
[
@@ -15243,15 +15351,16 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_SubMatrix_in_code_before_i:nnnn #1 #2 #3 #4
{
- \seq_gput_right:Nx \g_@@_submatrix_seq
+ \seq_gput_right:Ne \g_@@_submatrix_seq
{
% \end{macrocode}
-% We use |\str_if_eq:nnTF| because it is fully expandable.
+% We use |\str_if_eq:eeTF| because it is fully expandable (and slightly faster
+% than |\tl_if_eq:nnTF|).
% \begin{macrocode}
- { \str_if_eq:nnTF { #1 } { last } { \int_use:N \c@iRow } { #1 } }
- { \str_if_eq:nnTF { #2 } { last } { \int_use:N \c@jCol } { #2 } }
- { \str_if_eq:nnTF { #3 } { last } { \int_use:N \c@iRow } { #3 } }
- { \str_if_eq:nnTF { #4 } { last } { \int_use:N \c@jCol } { #4 } }
+ { \str_if_eq:eeTF { #1 } { last } { \int_use:N \c@iRow } { #1 } }
+ { \str_if_eq:eeTF { #2 } { last } { \int_use:N \c@jCol } { #2 } }
+ { \str_if_eq:eeTF { #3 } { last } { \int_use:N \c@iRow } { #3 } }
+ { \str_if_eq:eeTF { #4 } { last } { \int_use:N \c@jCol } { #4 } }
}
}
% \end{macrocode}
@@ -15331,7 +15440,7 @@ version 2005/12/01 or later.
{ \@@_error:nn { Construct~too~large } { \SubMatrix } }
{
\str_clear_new:N \l_@@_submatrix_name_str
- \keys_set:nn { NiceMatrix / SubMatrix } { #5 }
+ \keys_set:nn { nicematrix / SubMatrix } { #5 }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
@@ -15349,15 +15458,15 @@ version 2005/12/01 or later.
{ pgf @ sh @ ns @ \@@_env: - ##1 - \l_@@_first_j_tl }
{
\pgfpointanchor { \@@_env: - ##1 - \l_@@_first_j_tl } { west }
- \dim_set:Nn \l_@@_x_initial_dim
- { \dim_min:nn \l_@@_x_initial_dim \pgf@x }
+ \dim_compare:nNnT \pgf@x < \l_@@_x_initial_dim
+ { \dim_set_eq:NN \l_@@_x_initial_dim \pgf@x }
}
\cs_if_exist:cT
{ pgf @ sh @ ns @ \@@_env: - ##1 - \l_@@_last_j_tl }
{
\pgfpointanchor { \@@_env: - ##1 - \l_@@_last_j_tl } { east }
- \dim_set:Nn \l_@@_x_final_dim
- { \dim_max:nn \l_@@_x_final_dim \pgf@x }
+ \dim_compare:nNnT \pgf@x > \l_@@_x_final_dim
+ { \dim_set_eq:NN \l_@@_x_final_dim \pgf@x }
}
}
\dim_compare:nNnTF \l_@@_x_initial_dim = \c_max_dim
@@ -15404,8 +15513,8 @@ version 2005/12/01 or later.
{ pgf @ sh @ ns @ \@@_env: - \l_@@_last_i_tl - ##1 }
{
\pgfpointanchor { \@@_env: - \l_@@_last_i_tl - ##1 } { south }
- \dim_set:Nn \l_@@_y_final_dim
- { \dim_min:nn \l_@@_y_final_dim \pgf@y }
+ \dim_compare:nNnT \pgf@y < \l_@@_y_final_dim
+ { \dim_set_eq:NN \l_@@_y_final_dim \pgf@y }
}
}
\dim_set:Nn \l_tmpa_dim
@@ -15574,7 +15683,7 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\cs_set_eq:NN \pgfpointanchor \@@_pgfpointanchor:n
- \flag_clear_new:n { nicematrix }
+ \flag_clear_new:N \l_@@_code_flag
\l_@@_code_tl
}
% \end{macrocode}
@@ -15646,8 +15755,8 @@ version 2005/12/01 or later.
{
\str_case:nVTF { #1 } \c_@@_integers_alist_tl
{
- \flag_raise:n { nicematrix }
- \int_if_even:nTF { \flag_height:n { nicematrix } }
+ \flag_raise:N \l_@@_code_flag
+ \int_if_even:nTF { \flag_height:N \l_@@_code_flag }
{ \int_eval:n { #1 + \l_@@_first_i_tl - 1 } }
{ \int_eval:n { #1 + \l_@@_first_j_tl - 1 } }
}
@@ -15772,7 +15881,7 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Brace }
+\keys_define:nn { nicematrix / Brace }
{
left-shorten .bool_set:N = \l_@@_brace_left_shorten_bool ,
left-shorten .default:n = true ,
@@ -15810,13 +15919,13 @@ version 2005/12/01 or later.
{ \int_compare_p:nNn \l_@@_last_i_tl > \g_@@_row_total_int }
{ \int_compare_p:nNn \l_@@_last_j_tl > \g_@@_col_total_int }
{
- \str_if_eq:nnTF { #5 } { under }
+ \str_if_eq:eeTF { #5 } { under }
{ \@@_error:nn { Construct~too~large } { \UnderBrace } }
{ \@@_error:nn { Construct~too~large } { \OverBrace } }
}
{
\tl_clear:N \l_tmpa_tl
- \keys_set:nn { NiceMatrix / Brace } { #4 }
+ \keys_set:nn { nicematrix / Brace } { #4 }
\tl_if_empty:NF \l_tmpa_tl { \color { \l_tmpa_tl } }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
@@ -15830,8 +15939,9 @@ version 2005/12/01 or later.
{ pgf @ sh @ ns @ \@@_env: - ##1 - \l_@@_first_j_tl }
{
\pgfpointanchor { \@@_env: - ##1 - \l_@@_first_j_tl } { west }
- \dim_set:Nn \l_@@_x_initial_dim
- { \dim_min:nn \l_@@_x_initial_dim \pgf@x }
+
+ \dim_compare:nNnT \pgf@x < \l_@@_x_initial_dim
+ { \dim_set_eq:NN \l_@@_x_initial_dim \pgf@x }
}
}
}
@@ -15851,8 +15961,8 @@ version 2005/12/01 or later.
{ pgf @ sh @ ns @ \@@_env: - ##1 - \l_@@_last_j_tl }
{
\pgfpointanchor { \@@_env: - ##1 - \l_@@_last_j_tl } { east }
- \dim_set:Nn \l_@@_x_final_dim
- { \dim_max:nn \l_@@_x_final_dim \pgf@x }
+ \dim_compare:nNnT \pgf@x > \l_@@_x_final_dim
+ { \dim_set_eq:NN \l_@@_x_final_dim \pgf@x }
}
}
}
@@ -15864,7 +15974,7 @@ version 2005/12/01 or later.
\dim_set_eq:NN \l_@@_x_final_dim \pgf@x
}
\pgfset { inner~sep = \c_zero_dim }
- \str_if_eq:nnTF { #5 } { under }
+ \str_if_eq:eeTF { #5 } { under }
{ \@@_underbrace_i:n { #3 } }
{ \@@_overbrace_i:n { #3 } }
\endpgfpicture
@@ -15896,8 +16006,10 @@ version 2005/12/01 or later.
\halign
{
\hfil ## \hfil \crcr
- \@@_math_toggle: #1 \@@_math_toggle: \cr
- \noalign { \skip_vertical:n { 3 pt } \nointerlineskip }
+ \bool_if:NTF \l_@@_tabular_bool
+ { \begin { tabular } { c } #1 \end { tabular } }
+ { $ \begin { array } { c } #1 \end { array } $ }
+ \cr
\c_math_toggle_token
\overbrace
{
@@ -15949,8 +16061,10 @@ version 2005/12/01 or later.
}
\c_math_toggle_token
\cr
- \noalign { \skip_vertical:n { 3 pt } \nointerlineskip }
- \@@_math_toggle: #1 \@@_math_toggle: \cr
+ \bool_if:NTF \l_@@_tabular_bool
+ { \begin { tabular } { c } #1 \end { tabular } }
+ { $ \begin { array } { c } #1 \end { array } $ }
+ \cr
}
}
\group_end:
@@ -15967,7 +16081,7 @@ version 2005/12/01 or later.
\bool_new:N \l_@@_not_empty_bool
\bool_new:N \l_@@_empty_bool
-\keys_define:nn { NiceMatrix / TikzEveryCell }
+\keys_define:nn { nicematrix / TikzEveryCell }
{
not-empty .code:n =
\bool_lazy_or:nnTF
@@ -15992,7 +16106,7 @@ version 2005/12/01 or later.
\IfPackageLoadedTF { tikz }
{
\group_begin:
- \keys_set:nn { NiceMatrix / TikzEveryCell } { #1 }
+ \keys_set:nn { nicematrix / TikzEveryCell } { #1 }
% \end{macrocode}
% The inner pair of braces in the following line is mandatory because, the last
% argument of |\@@_tikz:nnnnn| is \emph{a list of lists} of TikZ keys.
@@ -16009,15 +16123,16 @@ version 2005/12/01 or later.
\tl_new:N \@@_i_tl
\tl_new:N \@@_j_tl
+
\cs_new_protected:Nn \@@_all_the_cells:
{
- \int_step_variable:nNn { \int_use:c { c@iRow } } \@@_i_tl
+ \int_step_variable:nNn \c@iRow \@@_i_tl
{
- \int_step_variable:nNn { \int_use:c { c@jCol } } \@@_j_tl
+ \int_step_variable:nNn \c@jCol \@@_j_tl
{
\cs_if_exist:cF { cell - \@@_i_tl - \@@_j_tl }
{
- \exp_args:NNe \seq_if_in:NnF \l_@@_corners_cells_seq
+ \clist_if_in:NeF \l_@@_corners_cells_clist
{ \@@_i_tl - \@@_j_tl }
{
\bool_set_false:N \l_tmpa_bool
@@ -16033,8 +16148,8 @@ version 2005/12/01 or later.
}
\bool_if:NT \l_tmpa_bool
{
- \@@_block_tikz:nnnnV
- \@@_i_tl \@@_j_tl \@@_i_tl \@@_j_tl \l_tmpa_tl
+ \@@_block_tikz:onnnn
+ \l_tmpa_tl \@@_i_tl \@@_j_tl \@@_i_tl \@@_j_tl
}
}
}
@@ -16046,8 +16161,8 @@ version 2005/12/01 or later.
{
\bool_if:NF \l_@@_empty_bool
{
- \@@_block_tikz:nnnnV
- { #1 } { #2 } { #3 } { #4 } \l_tmpa_tl
+ \@@_block_tikz:onnnn
+ \l_tmpa_tl { #1 } { #2 } { #3 } { #4 }
}
\@@_mark_cells_of_block:nnnn { #1 } { #2 } { #3 } { #4 }
}
@@ -16057,7 +16172,7 @@ version 2005/12/01 or later.
\int_step_inline:nnn { #1 } { #3 }
{
\int_step_inline:nnn { #2 } { #4 }
- { \cs_set:cpn { cell - ##1 - ####1 } { } }
+ { \cs_set_nopar:cpn { cell - ##1 - ####1 } { } }
}
}
% \end{macrocode}
@@ -16067,76 +16182,6 @@ version 2005/12/01 or later.
% \section{The command \textbackslash ShowCellNames}
%
% \begin{macrocode}
-\NewDocumentCommand \@@_ShowCellNames_CodeBefore { }
- {
- \dim_gzero_new:N \g_@@_tmpc_dim
- \dim_gzero_new:N \g_@@_tmpd_dim
- \dim_gzero_new:N \g_@@_tmpe_dim
- \int_step_inline:nn \c@iRow
- {
- \begin { pgfpicture }
- \@@_qpoint:n { row - ##1 }
- \dim_set_eq:NN \l_tmpa_dim \pgf@y
- \@@_qpoint:n { row - \int_eval:n { ##1 + 1 } }
- \dim_gset:Nn \g_tmpa_dim { ( \l_tmpa_dim + \pgf@y ) / 2 }
- \dim_gset:Nn \g_tmpb_dim { \l_tmpa_dim - \pgf@y }
- \bool_if:NTF \l_@@_in_code_after_bool
- \end { pgfpicture }
- \int_step_inline:nn \c@jCol
- {
- \hbox_set:Nn \l_tmpa_box
- { \normalfont \Large \color { red ! 50 } ##1 - ####1 }
- \begin { pgfpicture }
- \@@_qpoint:n { col - ####1 }
- \dim_gset_eq:NN \g_@@_tmpc_dim \pgf@x
- \@@_qpoint:n { col - \int_eval:n { ####1 + 1 } }
- \dim_gset:Nn \g_@@_tmpd_dim { \pgf@x - \g_@@_tmpc_dim }
- \dim_gset_eq:NN \g_@@_tmpe_dim \pgf@x
- \endpgfpicture
- \end { pgfpicture }
- \fp_set:Nn \l_tmpa_fp
- {
- \fp_min:nn
- {
- \fp_min:nn
- {
- \dim_ratio:nn
- { \g_@@_tmpd_dim }
- { \box_wd:N \l_tmpa_box }
- }
- {
- \dim_ratio:nn
- { \g_tmpb_dim }
- { \box_ht_plus_dp:N \l_tmpa_box }
- }
- }
- { 1.0 }
- }
- \box_scale:Nnn \l_tmpa_box
- { \fp_use:N \l_tmpa_fp }
- { \fp_use:N \l_tmpa_fp }
- \pgfpicture
- \pgfrememberpicturepositiononpagetrue
- \pgf@relevantforpicturesizefalse
- \pgftransformshift
- {
- \pgfpoint
- { 0.5 * ( \g_@@_tmpc_dim + \g_@@_tmpe_dim ) }
- { \dim_use:N \g_tmpa_dim }
- }
- \pgfnode
- { rectangle }
- { center }
- { \box_use:N \l_tmpa_box }
- { }
- { }
- \endpgfpicture
- }
- }
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\NewDocumentCommand \@@_ShowCellNames { }
{
\bool_if:NT \l_@@_in_code_after_bool
@@ -16274,7 +16319,6 @@ version 2005/12/01 or later.
footnote,~
footnotehyper,~
messages-for-Overleaf,~
- no-test-for-array,~
renew-dots,~and~
renew-matrix.
}
@@ -16282,7 +16326,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Package }
+\keys_define:nn { nicematrix / Package }
{
renew-dots .bool_set:N = \l_@@_renew_dots_bool ,
renew-dots .value_forbidden:n = true ,
@@ -16291,11 +16335,14 @@ version 2005/12/01 or later.
messages-for-Overleaf .bool_set:N = \g_@@_messages_for_Overleaf_bool ,
footnote .bool_set:N = \g_@@_footnote_bool ,
footnotehyper .bool_set:N = \g_@@_footnotehyper_bool ,
- no-test-for-array .bool_set:N = \g_@@_no_test_for_array_bool ,
- no-test-for-array .default:n = true ,
+% \end{macrocode}
+% The test for a potential modification of \pkg{array} has been deleted. You
+% keep the following key only for compatibility but maybe we will delete it.
+% \begin{macrocode}
+ no-test-for-array .code:n = \prg_do_nothing: ,
unknown .code:n = \@@_error:n { Unknown~key~for~package }
}
-\ProcessKeysOptions { NiceMatrix / Package }
+\ProcessKeysOptions { nicematrix / Package }
% \end{macrocode}
%
% \bigskip
@@ -16371,9 +16418,8 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\bool_new:N \l_@@_underscore_loaded_bool
-\IfPackageLoadedTF { underscore }
+\IfPackageLoadedT { underscore }
{ \bool_set_true:N \l_@@_underscore_loaded_bool }
- { }
% \end{macrocode}
%
% \begin{macrocode}
@@ -16381,9 +16427,8 @@ version 2005/12/01 or later.
{
\bool_if:NF \l_@@_underscore_loaded_bool
{
- \IfPackageLoadedTF { underscore }
+ \IfPackageLoadedT { underscore }
{ \@@_error:n { underscore~after~nicematrix } }
- { }
}
}
% \end{macrocode}
@@ -16407,33 +16452,27 @@ version 2005/12/01 or later.
NiceMatrix ,
pNiceMatrix , bNiceMatrix , vNiceMatrix, BNiceMatrix, VNiceMatrix
}
-\seq_gset_map_x:NNn \g_@@_types_of_matrix_seq \g_@@_types_of_matrix_seq
+\seq_gset_map_e:NNn \g_@@_types_of_matrix_seq \g_@@_types_of_matrix_seq
{ \tl_to_str:n { #1 } }
% \end{macrocode}
%
% \bigskip
% If the user uses too much columns, the command |\@@_error_too_much_cols:| is
% triggered. This command raises an error but also tries to give the best
-% information to the user in the error message. The command |\seq_if_in:NoTF| is
+% information to the user in the error message. The command |\seq_if_in:NoF| is
% not expandable and that's why we can't put it in the error message itself. We
% have to do the test before the |\@@_fatal:n|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error_too_much_cols:
{
- \seq_if_in:NoTF \g_@@_types_of_matrix_seq \g_@@_name_env_str
- {
- \int_compare:nNnTF \l_@@_last_col_int = { -2 }
- { \@@_fatal:n { too~much~cols~for~matrix } }
- {
- \int_compare:nNnTF \l_@@_last_col_int = { -1 }
- { \@@_fatal:n { too~much~cols~for~matrix } }
- {
- \bool_if:NF \l_@@_last_col_without_value_bool
- { \@@_fatal:n { too~much~cols~for~matrix~with~last~col } }
- }
- }
- }
+ \seq_if_in:NoF \g_@@_types_of_matrix_seq \g_@@_name_env_str
{ \@@_fatal:nn { too~much~cols~for~array } }
+ \int_compare:nNnT \l_@@_last_col_int = { -2 }
+ { \@@_fatal:n { too~much~cols~for~matrix } }
+ \int_compare:nNnT \l_@@_last_col_int = { -1 }
+ { \@@_fatal:n { too~much~cols~for~matrix } }
+ \bool_if:NF \l_@@_last_col_without_value_bool
+ { \@@_fatal:n { too~much~cols~for~matrix~with~last~col } }
}
% \end{macrocode}
%
@@ -16823,15 +16862,6 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { ragged2e~not~loaded }
- {
- You~have~to~load~'ragged2e'~in~order~to~use~the~key~'\l_keys_key_str'~in~
- your~column~'\l_@@_vpos_col_str'~(or~'X').~The~key~'\str_lowercase:o
- \l_keys_key_str'~will~be~used~instead.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\@@_msg_new:nn { Invalid~name }
{
Invalid~name.\\
@@ -17005,8 +17035,7 @@ version 2005/12/01 or later.
(in~the~key~'borders'~of~the~command~\token_to_str:N \Block).~
The~available~values~are:~left,~right,~top~and~bottom~(and~you~can~
also~use~the~key~'tikz'
- \IfPackageLoadedTF { tikz }
- { }
+ \IfPackageLoadedF { tikz }
{~if~you~load~the~LaTeX~package~'tikz'}).\\
This~specification~of~border~will~be~ignored.
}
@@ -17534,8 +17563,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% This error message is used for the set of keys |NiceMatrix/NiceMatrix| and
-% |NiceMatrix/pNiceArray| (but not by |NiceMatrix/NiceArray| because, for this
+% This error message is used for the set of keys |nicematrix/NiceMatrix| and
+% |nicematrix/pNiceArray| (but not by |nicematrix/NiceArray| because, for this
% set of keys, there is no |l| and |r|).
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceMatrix }
diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.pdf b/macros/latex/contrib/nicematrix/nicematrix-code.pdf
index fb046dc4c9..45b5b7b537 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-code.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-code.pdf
@@ -11,46752 +11,44997 @@ endobj
<< /S /GoTo /D (section.0.2) >>
endobj
11 0 obj
-(\376\377\0002\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000t\000e\000s\000t)
+(\376\377\0002\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000n\000g\000\040\000o\000p\000t\000i\000o\000n\000s)
endobj
12 0 obj
<< /S /GoTo /D (section.0.3) >>
endobj
15 0 obj
-(\376\377\0003\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000n\000g\000\040\000o\000p\000t\000i\000o\000n\000s)
+(\376\377\0003\000\040\000T\000e\000c\000h\000n\000i\000c\000a\000l\000\040\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000s)
endobj
16 0 obj
<< /S /GoTo /D (section.0.4) >>
endobj
19 0 obj
-(\376\377\0004\000\040\000T\000e\000c\000h\000n\000i\000c\000a\000l\000\040\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000s)
+(\376\377\0004\000\040\000P\000a\000r\000a\000m\000e\000t\000e\000r\000s)
endobj
20 0 obj
<< /S /GoTo /D (section.0.5) >>
endobj
23 0 obj
-(\376\377\0005\000\040\000P\000a\000r\000a\000m\000e\000t\000e\000r\000s)
+(\376\377\0005\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000t\000a\000b\000u\000l\000a\000r\000n\000o\000t\000e)
endobj
24 0 obj
<< /S /GoTo /D (section.0.6) >>
endobj
27 0 obj
-(\376\377\0006\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000t\000a\000b\000u\000l\000a\000r\000n\000o\000t\000e)
+(\376\377\0006\000\040\000C\000o\000m\000m\000a\000n\000d\000\040\000f\000o\000r\000\040\000c\000r\000e\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000r\000e\000c\000t\000a\000n\000g\000l\000e\000\040\000n\000o\000d\000e\000s)
endobj
28 0 obj
<< /S /GoTo /D (section.0.7) >>
endobj
31 0 obj
-(\376\377\0007\000\040\000C\000o\000m\000m\000a\000n\000d\000\040\000f\000o\000r\000\040\000c\000r\000e\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000r\000e\000c\000t\000a\000n\000g\000l\000e\000\040\000n\000o\000d\000e\000s)
+(\376\377\0007\000\040\000T\000h\000e\000\040\000o\000p\000t\000i\000o\000n\000s)
endobj
32 0 obj
<< /S /GoTo /D (section.0.8) >>
endobj
35 0 obj
-(\376\377\0008\000\040\000T\000h\000e\000\040\000o\000p\000t\000i\000o\000n\000s)
+(\376\377\0008\000\040\000I\000m\000p\000o\000r\000t\000a\000n\000t\000\040\000c\000o\000d\000e\000\040\000u\000s\000e\000d\000\040\000b\000y\000\040\000\173\000N\000i\000c\000e\000A\000r\000r\000a\000y\000W\000i\000t\000h\000D\000e\000l\000i\000m\000s\000\175\000\040)
endobj
36 0 obj
<< /S /GoTo /D (section.0.9) >>
endobj
39 0 obj
-(\376\377\0009\000\040\000I\000m\000p\000o\000r\000t\000a\000n\000t\000\040\000c\000o\000d\000e\000\040\000u\000s\000e\000d\000\040\000b\000y\000\040\000\173\000N\000i\000c\000e\000A\000r\000r\000a\000y\000W\000i\000t\000h\000D\000e\000l\000i\000m\000s\000\175\000\040)
+(\376\377\0009\000\040\000T\000h\000e\000\040\000\134\000C\000o\000d\000e\000B\000e\000f\000o\000r\000e)
endobj
40 0 obj
<< /S /GoTo /D (section.0.10) >>
endobj
43 0 obj
-(\376\377\0001\0000\000\040\000T\000h\000e\000\040\000\134\000C\000o\000d\000e\000B\000e\000f\000o\000r\000e)
+(\376\377\0001\0000\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000A\000r\000r\000a\000y\000W\000i\000t\000h\000D\000e\000l\000i\000m\000s\000\175)
endobj
44 0 obj
<< /S /GoTo /D (section.0.11) >>
endobj
47 0 obj
-(\376\377\0001\0001\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000A\000r\000r\000a\000y\000W\000i\000t\000h\000D\000e\000l\000i\000m\000s\000\175)
+(\376\377\0001\0001\000\040\000W\000e\000\040\000c\000o\000n\000s\000t\000r\000u\000c\000t\000\040\000t\000h\000e\000\040\000p\000r\000e\000a\000m\000b\000l\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000a\000r\000r\000a\000y)
endobj
48 0 obj
<< /S /GoTo /D (section.0.12) >>
endobj
51 0 obj
-(\376\377\0001\0002\000\040\000W\000e\000\040\000c\000o\000n\000s\000t\000r\000u\000c\000t\000\040\000t\000h\000e\000\040\000p\000r\000e\000a\000m\000b\000l\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000a\000r\000r\000a\000y)
+(\376\377\0001\0002\000\040\000T\000h\000e\000\040\000r\000e\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000o\000f\000\040\000\134\000m\000u\000l\000t\000i\000c\000o\000l\000u\000m\000n)
endobj
52 0 obj
<< /S /GoTo /D (section.0.13) >>
endobj
55 0 obj
-(\376\377\0001\0003\000\040\000T\000h\000e\000\040\000r\000e\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000o\000f\000\040\000\134\000m\000u\000l\000t\000i\000c\000o\000l\000u\000m\000n)
+(\376\377\0001\0003\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000M\000a\000t\000r\000i\000x\000\175\000\040\000a\000n\000d\000\040\000i\000t\000s\000\040\000v\000a\000r\000i\000a\000n\000t\000s)
endobj
56 0 obj
<< /S /GoTo /D (section.0.14) >>
endobj
59 0 obj
-(\376\377\0001\0004\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000M\000a\000t\000r\000i\000x\000\175\000\040\000a\000n\000d\000\040\000i\000t\000s\000\040\000v\000a\000r\000i\000a\000n\000t\000s)
+(\376\377\0001\0004\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000\175\000,\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000X\000\175\000\040\000a\000n\000d\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000*\000\175)
endobj
60 0 obj
<< /S /GoTo /D (section.0.15) >>
endobj
63 0 obj
-(\376\377\0001\0005\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000\175\000,\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000X\000\175\000\040\000a\000n\000d\000\040\000\173\000N\000i\000c\000e\000T\000a\000b\000u\000l\000a\000r\000*\000\175)
+(\376\377\0001\0005\000\040\000A\000f\000t\000e\000r\000\040\000t\000h\000e\000\040\000c\000o\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000\040\000o\000f\000\040\000t\000h\000e\000\040\000a\000r\000r\000a\000y)
endobj
64 0 obj
<< /S /GoTo /D (section.0.16) >>
endobj
67 0 obj
-(\376\377\0001\0006\000\040\000A\000f\000t\000e\000r\000\040\000t\000h\000e\000\040\000c\000o\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000\040\000o\000f\000\040\000t\000h\000e\000\040\000a\000r\000r\000a\000y)
+(\376\377\0001\0006\000\040\000W\000e\000\040\000d\000r\000a\000w\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s)
endobj
68 0 obj
<< /S /GoTo /D (section.0.17) >>
endobj
71 0 obj
-(\376\377\0001\0007\000\040\000W\000e\000\040\000d\000r\000a\000w\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s)
+(\376\377\0001\0007\000\040\000T\000h\000e\000\040\000a\000c\000t\000u\000a\000l\000\040\000i\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000d\000r\000a\000w\000i\000n\000g\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s\000\040\000w\000i\000t\000h\000\040\000T\000i\000k\000z)
endobj
72 0 obj
<< /S /GoTo /D (section.0.18) >>
endobj
75 0 obj
-(\376\377\0001\0008\000\040\000T\000h\000e\000\040\000a\000c\000t\000u\000a\000l\000\040\000i\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000d\000r\000a\000w\000i\000n\000g\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s\000\040\000w\000i\000t\000h\000\040\000T\000i\000k\000z)
+(\376\377\0001\0008\000\040\000U\000s\000e\000r\000\040\000c\000o\000m\000m\000a\000n\000d\000s\000\040\000a\000v\000a\000i\000l\000a\000b\000l\000e\000\040\000i\000n\000\040\000t\000h\000e\000\040\000n\000e\000w\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000s)
endobj
76 0 obj
<< /S /GoTo /D (section.0.19) >>
endobj
79 0 obj
-(\376\377\0001\0009\000\040\000U\000s\000e\000r\000\040\000c\000o\000m\000m\000a\000n\000d\000s\000\040\000a\000v\000a\000i\000l\000a\000b\000l\000e\000\040\000i\000n\000\040\000t\000h\000e\000\040\000n\000e\000w\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000s)
+(\376\377\0001\0009\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000l\000i\000n\000e\000\040\000a\000c\000c\000e\000s\000s\000i\000b\000l\000e\000\040\000i\000n\000\040\000c\000o\000d\000e\000-\000a\000f\000t\000e\000r)
endobj
80 0 obj
<< /S /GoTo /D (section.0.20) >>
endobj
83 0 obj
-(\376\377\0002\0000\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000l\000i\000n\000e\000\040\000a\000c\000c\000e\000s\000s\000i\000b\000l\000e\000\040\000i\000n\000\040\000c\000o\000d\000e\000-\000a\000f\000t\000e\000r)
+(\376\377\0002\0000\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000R\000o\000w\000S\000t\000y\000l\000e)
endobj
84 0 obj
<< /S /GoTo /D (section.0.21) >>
endobj
87 0 obj
-(\376\377\0002\0001\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000R\000o\000w\000S\000t\000y\000l\000e)
+(\376\377\0002\0001\000\040\000C\000o\000l\000o\000r\000s\000\040\000o\000f\000\040\000c\000e\000l\000l\000s\000,\000\040\000r\000o\000w\000s\000\040\000a\000n\000d\000\040\000c\000o\000l\000u\000m\000n\000s)
endobj
88 0 obj
<< /S /GoTo /D (section.0.22) >>
endobj
91 0 obj
-(\376\377\0002\0002\000\040\000C\000o\000l\000o\000r\000s\000\040\000o\000f\000\040\000c\000e\000l\000l\000s\000,\000\040\000r\000o\000w\000s\000\040\000a\000n\000d\000\040\000c\000o\000l\000u\000m\000n\000s)
+(\376\377\0002\0002\000\040\000T\000h\000e\000\040\000v\000e\000r\000t\000i\000c\000a\000l\000\040\000a\000n\000d\000\040\000h\000o\000r\000i\000z\000o\000n\000t\000a\000l\000\040\000r\000u\000l\000e\000s)
endobj
92 0 obj
<< /S /GoTo /D (section.0.23) >>
endobj
95 0 obj
-(\376\377\0002\0003\000\040\000T\000h\000e\000\040\000v\000e\000r\000t\000i\000c\000a\000l\000\040\000a\000n\000d\000\040\000h\000o\000r\000i\000z\000o\000n\000t\000a\000l\000\040\000r\000u\000l\000e\000s)
+(\376\377\0002\0003\000\040\000T\000h\000e\000\040\000e\000m\000p\000t\000y\000\040\000c\000o\000r\000n\000e\000r\000s)
endobj
96 0 obj
<< /S /GoTo /D (section.0.24) >>
endobj
99 0 obj
-(\376\377\0002\0004\000\040\000T\000h\000e\000\040\000e\000m\000p\000t\000y\000\040\000c\000o\000r\000n\000e\000r\000s)
+(\376\377\0002\0004\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000M\000a\000t\000r\000i\000x\000B\000l\000o\000c\000k\000\175)
endobj
100 0 obj
<< /S /GoTo /D (section.0.25) >>
endobj
103 0 obj
-(\376\377\0002\0005\000\040\000T\000h\000e\000\040\000e\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000\173\000N\000i\000c\000e\000M\000a\000t\000r\000i\000x\000B\000l\000o\000c\000k\000\175)
+(\376\377\0002\0005\000\040\000T\000h\000e\000\040\000e\000x\000t\000r\000a\000\040\000n\000o\000d\000e\000s)
endobj
104 0 obj
<< /S /GoTo /D (section.0.26) >>
endobj
107 0 obj
-(\376\377\0002\0006\000\040\000T\000h\000e\000\040\000e\000x\000t\000r\000a\000\040\000n\000o\000d\000e\000s)
+(\376\377\0002\0006\000\040\000T\000h\000e\000\040\000b\000l\000o\000c\000k\000s)
endobj
108 0 obj
<< /S /GoTo /D (section.0.27) >>
endobj
111 0 obj
-(\376\377\0002\0007\000\040\000T\000h\000e\000\040\000b\000l\000o\000c\000k\000s)
+(\376\377\0002\0007\000\040\000H\000o\000w\000\040\000t\000o\000\040\000d\000r\000a\000w\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s\000\040\000t\000r\000a\000n\000s\000p\000a\000r\000e\000n\000t\000l\000y)
endobj
112 0 obj
<< /S /GoTo /D (section.0.28) >>
endobj
115 0 obj
-(\376\377\0002\0008\000\040\000H\000o\000w\000\040\000t\000o\000\040\000d\000r\000a\000w\000\040\000t\000h\000e\000\040\000d\000o\000t\000t\000e\000d\000\040\000l\000i\000n\000e\000s\000\040\000t\000r\000a\000n\000s\000p\000a\000r\000e\000n\000t\000l\000y)
+(\376\377\0002\0008\000\040\000A\000u\000t\000o\000m\000a\000t\000i\000c\000\040\000a\000r\000r\000a\000y\000s)
endobj
116 0 obj
<< /S /GoTo /D (section.0.29) >>
endobj
119 0 obj
-(\376\377\0002\0009\000\040\000A\000u\000t\000o\000m\000a\000t\000i\000c\000\040\000a\000r\000r\000a\000y\000s)
+(\376\377\0002\0009\000\040\000T\000h\000e\000\040\000r\000e\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000o\000f\000\040\000t\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000d\000o\000t\000f\000i\000l\000l\000\040)
endobj
120 0 obj
<< /S /GoTo /D (section.0.30) >>
endobj
123 0 obj
-(\376\377\0003\0000\000\040\000T\000h\000e\000\040\000r\000e\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000o\000f\000\040\000t\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000d\000o\000t\000f\000i\000l\000l\000\040)
+(\376\377\0003\0000\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000d\000i\000a\000g\000b\000o\000x)
endobj
124 0 obj
<< /S /GoTo /D (section.0.31) >>
endobj
127 0 obj
-(\376\377\0003\0001\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000d\000i\000a\000g\000b\000o\000x)
+(\376\377\0003\0001\000\040\000T\000h\000e\000\040\000k\000e\000y\000w\000o\000r\000d\000\040\000\134\000C\000o\000d\000e\000A\000f\000t\000e\000r)
endobj
128 0 obj
<< /S /GoTo /D (section.0.32) >>
endobj
131 0 obj
-(\376\377\0003\0002\000\040\000T\000h\000e\000\040\000k\000e\000y\000w\000o\000r\000d\000\040\000\134\000C\000o\000d\000e\000A\000f\000t\000e\000r)
+(\376\377\0003\0002\000\040\000T\000h\000e\000\040\000d\000e\000l\000i\000m\000i\000t\000e\000r\000s\000\040\000i\000n\000\040\000t\000h\000e\000\040\000p\000r\000e\000a\000m\000b\000l\000e)
endobj
132 0 obj
<< /S /GoTo /D (section.0.33) >>
endobj
135 0 obj
-(\376\377\0003\0003\000\040\000T\000h\000e\000\040\000d\000e\000l\000i\000m\000i\000t\000e\000r\000s\000\040\000i\000n\000\040\000t\000h\000e\000\040\000p\000r\000e\000a\000m\000b\000l\000e)
+(\376\377\0003\0003\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000S\000u\000b\000M\000a\000t\000r\000i\000x)
endobj
136 0 obj
<< /S /GoTo /D (section.0.34) >>
endobj
139 0 obj
-(\376\377\0003\0004\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000S\000u\000b\000M\000a\000t\000r\000i\000x)
+(\376\377\0003\0004\000\040\000L\000e\000s\000\040\000c\000o\000m\000m\000a\000n\000d\000e\000s\000\040\000\134\000U\000n\000d\000e\000r\000B\000r\000a\000c\000e\000\040\000e\000t\000\040\000\134\000O\000v\000e\000r\000B\000r\000a\000c\000e)
endobj
140 0 obj
<< /S /GoTo /D (section.0.35) >>
endobj
143 0 obj
-(\376\377\0003\0005\000\040\000L\000e\000s\000\040\000c\000o\000m\000m\000a\000n\000d\000e\000s\000\040\000\134\000U\000n\000d\000e\000r\000B\000r\000a\000c\000e\000\040\000e\000t\000\040\000\134\000O\000v\000e\000r\000B\000r\000a\000c\000e)
+(\376\377\0003\0005\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000T\000i\000k\000z\000E\000v\000e\000r\000y\000C\000e\000l\000l)
endobj
144 0 obj
<< /S /GoTo /D (section.0.36) >>
endobj
147 0 obj
-(\376\377\0003\0006\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000T\000i\000k\000z\000E\000v\000e\000r\000y\000C\000e\000l\000l)
+(\376\377\0003\0006\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000S\000h\000o\000w\000C\000e\000l\000l\000N\000a\000m\000e\000s)
endobj
148 0 obj
<< /S /GoTo /D (section.0.37) >>
endobj
151 0 obj
-(\376\377\0003\0007\000\040\000T\000h\000e\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000\134\000S\000h\000o\000w\000C\000e\000l\000l\000N\000a\000m\000e\000s)
+(\376\377\0003\0007\000\040\000W\000e\000\040\000p\000r\000o\000c\000e\000s\000s\000\040\000t\000h\000e\000\040\000o\000p\000t\000i\000o\000n\000s\000\040\000a\000t\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000l\000o\000a\000d\000i\000n\000g)
endobj
152 0 obj
<< /S /GoTo /D (section.0.38) >>
endobj
155 0 obj
-(\376\377\0003\0008\000\040\000W\000e\000\040\000p\000r\000o\000c\000e\000s\000s\000\040\000t\000h\000e\000\040\000o\000p\000t\000i\000o\000n\000s\000\040\000a\000t\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000l\000o\000a\000d\000i\000n\000g)
+(\376\377\0003\0008\000\040\000A\000b\000o\000u\000t\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000u\000n\000d\000e\000r\000s\000c\000o\000r\000e)
endobj
156 0 obj
<< /S /GoTo /D (section.0.39) >>
endobj
159 0 obj
-(\376\377\0003\0009\000\040\000A\000b\000o\000u\000t\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000u\000n\000d\000e\000r\000s\000c\000o\000r\000e)
+(\376\377\0003\0009\000\040\000E\000r\000r\000o\000r\000\040\000m\000e\000s\000s\000a\000g\000e\000s\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e)
endobj
160 0 obj
-<< /S /GoTo /D (section.0.40) >>
+<< /S /GoTo /D (toc1.1) >>
endobj
163 0 obj
-(\376\377\0004\0000\000\040\000E\000r\000r\000o\000r\000\040\000m\000e\000s\000s\000a\000g\000e\000s\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e)
+(\376\377\000C\000o\000n\000t\000e\000n\000t\000s)
endobj
164 0 obj
-<< /S /GoTo /D (toc1.1) >>
+<< /S /GoTo /D [ 165 0 R /FitBH 771.02165 ] >>
endobj
167 0 obj
-(\376\377\000C\000o\000n\000t\000e\000n\000t\000s)
-
-endobj
-168 0 obj
-<< /S /GoTo /D [ 169 0 R /FitBH 771.02165 ] >>
-endobj
-171 0 obj
-<< /Filter /FlateDecode /Length 2073 >>
+<< /Filter /FlateDecode /Length 2203 >>
stream
-xڝY[ۺ~_j,;-ͦ 6m kӶ[`EkFyH%97ofd-3?ï<2=\"#
-Q"8Ϧ338#0&&*SIM7ٯte/&>2?i^/³[ŁS3K{#cLʙݘ){a
-!
-lD7Sw9$FL'*Pn\bl73^I 4D$C p ϝ;|psanl;;w<? ?OXKKci~]愂G#~q}tT;}
-6vYB~_
-ɦliѬ3dcfMN֦Y]75fʮnrQv'xy}bCQ6miB:1,ɐ& w.3s=mIHT{&C2ob:ޭiz <ݭ]P{^K>XXH@n30.;H~%W)m˛u\Ey'vʡ8W $0p͛zp+A
-#2f:y&ERwCՙT* ?i # d2+ KTCL*Qc×S)$teߕlf.6hDW %ԶČ~Ⱥ6-ct\ R`ցIrlkʮ4=I~zگlb0[qь7>HјبJ1#؇_wGAJ:HET5 HXC"}g7B y$%9
-C"d(vp<ֱ͑Vp E8nmP.+.^2}|WL5su"7McZcQee=?LoRc$!:zEh79+rڴ&̄n F2]<9ʹ~Mu\?' $zK0f,=$ 32+\F :aW7>/ #):eVOl)?G{}q_aD9x>i!+ptvLmc0&at~?Dxړ(&1?TMjȐ>
- W\
+xZ;$E WtEٮ4iv  ">cgC"on'ӷW @Jmo??[gty$qRҕx$H p1<W\?j%%|
+,ΑZtMꗷxJY>?LRU2l32kbF `{֊Y7E-ёW?3%+[ BS$"V;V9dR/A WPܳ&˨z3b٪>f`u`˦aXlk[#$s("ac#<!LwOǽxj7 e+igdQg [ہV;
+6͒#9a_ɪЮ<Z ꆺbu)=$\MTl5iT&}R+I_:劭Gu%3w~7Se
+*(ouR+8ж֜[%&J"u<^ N[&yUR +K"R!ir2ٗ>c!hC7 jӒr
+jTr0kQC Qc
+R,?e)sRC֭[
+BNiֹIe3`+Cp1)PVYl}8<.Jwi:DpYM!I<6F.s Ihk > đ HlRsp
+kL'7RG)TGU>
+ ̪T31q#cG$5iسֱ}? -3ΰ!adex!fYN #qɵC6i,qc"&p+=k`tɕ*wKWN\(OQ&,C f*^b/b9s;)
endstream
endobj
-169 0 obj
-<< /Type /Page /Contents 171 0 R /Resources 170 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+165 0 obj
+<< /Type /Page /Contents 167 0 R /Resources 166 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
-172 0 obj
-<< /D [ 169 0 R /XYZ 78.37 808.885 null ] >>
+168 0 obj
+<< /D [ 165 0 R /XYZ 78.37 808.885 null ] >>
endobj
-173 0 obj
-<< /D [ 169 0 R /XYZ 79.37 771.024 null ] >>
+169 0 obj
+<< /D [ 165 0 R /XYZ 79.37 771.024 null ] >>
endobj
5 0 obj
-<< /D [ 169 0 R /XYZ 79.37 516.661 null ] >>
+<< /D [ 165 0 R /XYZ 79.37 512.555 null ] >>
+endobj
+184 0 obj
+<< /D [ 165 0 R /XYZ 77.176 371.174 null ] >>
+endobj
+186 0 obj
+<< /D [ 165 0 R /XYZ 77.176 360.216 null ] >>
+endobj
+187 0 obj
+<< /D [ 165 0 R /XYZ 77.176 331.324 null ] >>
endobj
188 0 obj
-<< /D [ 169 0 R /XYZ 77.103 376.109 null ] >>
+<< /D [ 165 0 R /XYZ 77.176 320.365 null ] >>
+endobj
+189 0 obj
+<< /D [ 165 0 R /XYZ 77.176 309.406 null ] >>
endobj
190 0 obj
-<< /D [ 169 0 R /XYZ 77.103 365.15 null ] >>
+<< /D [ 165 0 R /XYZ 77.176 298.447 null ] >>
endobj
191 0 obj
-<< /D [ 169 0 R /XYZ 77.103 336.492 null ] >>
+<< /D [ 165 0 R /XYZ 77.176 287.488 null ] >>
endobj
192 0 obj
-<< /D [ 169 0 R /XYZ 77.103 325.533 null ] >>
+<< /D [ 165 0 R /XYZ 77.176 276.529 null ] >>
endobj
193 0 obj
-<< /D [ 169 0 R /XYZ 77.103 314.574 null ] >>
+<< /D [ 165 0 R /XYZ 77.176 260.589 null ] >>
endobj
194 0 obj
-<< /D [ 169 0 R /XYZ 77.103 303.615 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 249.63 null ] >>
endobj
195 0 obj
-<< /D [ 169 0 R /XYZ 77.103 292.656 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 238.671 null ] >>
endobj
196 0 obj
-<< /D [ 169 0 R /XYZ 77.103 281.697 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 227.712 null ] >>
endobj
197 0 obj
-<< /D [ 169 0 R /XYZ 77.103 216.232 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 216.754 null ] >>
endobj
198 0 obj
-<< /D [ 169 0 R /XYZ 78.427 184.289 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 148.011 null ] >>
endobj
199 0 obj
-<< /D [ 169 0 R /XYZ 78.427 153.755 null ] >>
-endobj
-200 0 obj
-<< /D [ 169 0 R /XYZ 78.427 142.796 null ] >>
+<< /D [ 165 0 R /XYZ 78.499 115.135 null ] >>
endobj
-201 0 obj
-<< /D [ 169 0 R /XYZ 78.427 131.837 null ] >>
+166 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F21 170 0 R /F22 171 0 R /F30 172 0 R /F41 173 0 R /F54 174 0 R /F64 175 0 R /F63 176 0 R /F65 177 0 R /F66 178 0 R /F67 179 0 R /F15 180 0 R /F68 181 0 R /F19 182 0 R /F70 183 0 R /F71 185 0 R /F47 200 0 R /F55 201 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-202 0 obj
-<< /D [ 169 0 R /XYZ 78.427 120.879 null ] >>
+205 0 obj
+<< /Filter /FlateDecode /Length 2415 >>
+stream
+x[n#;WD= @܎/p]vf5EUӋ*ERy$/>uVEtڙ~@Gҩ<JiTNO
+:6Bg& ,,{T'U]-W`Wt8]v&hPpm(%@4TCLSͰƷ'z.! S_! VoH@*7ZD~W{鍞m=mE,z
+<FXhpSe¬QjHJ'G $Ѷu}p^|VҢgՒ(seZYV\W{2>||w-g,2nV8c02vgf9^lRэʼEf`iֺRγ8Ly#t PmV4|Pک~ctt Q@/@7o dr-+P4qI7&̷aV[aV}Q.)E}?%j.I!q*Wk\#F< MQDεrVɹݎ0`H_?N?%$:/ތO FP
+&Iu(f5kVh0Ljm0\;&G[;oˮ5o`9P&6VC*[BS
+}Eݚ@vk9\-Wɋ
+endstream
endobj
-203 0 obj
-<< /D [ 169 0 R /XYZ 78.427 109.92 null ] >>
+204 0 obj
+<< /Type /Page /Contents 205 0 R /Resources 203 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
-170 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F39 174 0 R /F40 175 0 R /F46 176 0 R /F51 177 0 R /F62 178 0 R /F66 179 0 R /F65 180 0 R /F67 181 0 R /F68 182 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R /F72 187 0 R /F73 189 0 R /F57 204 0 R /F63 205 0 R >> /ProcSet [ /PDF /Text ] >>
+206 0 obj
+<< /D [ 204 0 R /XYZ 78.37 808.885 null ] >>
endobj
-209 0 obj
-<< /Filter /FlateDecode /Length 1990 >>
-stream
-xڵZ]۸}_aXT0> X٢/Ʀ=jeɕLg/m8 $<N</72m_npʙbyƥ-73>9,M8>[lgxr}OY$㯡T˾hs,?;-XO麶cٗcնRʦZm9tc4s$ux,dJ"9^E욪ټBP>DeθH4#B)yy9߇I4P1ˮ*apQ2odS&vf`
-%-7V}*NH$IDЫˡ_q<{IS$)($(eC3SLiJ)* x"pYDM Ls&YLq N:H#զ\EY=ڒ[YzkҨtUk?~kvpmU/}U{6ms~%vBNOq5Ó B Y'tfJk`4Ul-2
-m{s/t=؋,gۭ\8 Lsa۶÷Y,h6v"d-=t0mG,~87 J2I*G='O}8ܚQ1+ym'W>~?mK_+;Λtl€Iδe~7Wd_?;eBKdy؍ D+fgu\-WwC5v~5T!s)TMPTKP}3 `
-BVadŕɀhk'mZvp}
-}
-۞j/*@Wz ^ᢿq| WTVOaJ&(EF#=Ş'XJOMC'ew5fym&ǣ%΢[ d Xj=ٷereO!ϪݛO6׾ߗu:'-Or\]۸V8ZfO$rɤ-HV$Vj<989ZH#ϲL$7q^٪^>$&*Y`IJiP:Z,)=`'(9:s7-ly0"нKE_WJMW1
-[$.h`_3أؕvp8 CP/})(LͲ#~<;*+*(#NR0\ zWޮ/+<cݏӁD
-endstream
+207 0 obj
+<< /D [ 204 0 R /XYZ 78.499 754.882 null ] >>
endobj
208 0 obj
-<< /Type /Page /Contents 209 0 R /Resources 207 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 204 0 R /XYZ 78.499 743.923 null ] >>
+endobj
+209 0 obj
+<< /D [ 204 0 R /XYZ 78.499 732.964 null ] >>
endobj
210 0 obj
-<< /D [ 208 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 722.005 null ] >>
endobj
211 0 obj
-<< /D [ 208 0 R /XYZ 78.427 768.832 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 711.046 null ] >>
endobj
212 0 obj
-<< /D [ 208 0 R /XYZ 78.427 757.873 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 680.162 null ] >>
endobj
213 0 obj
-<< /D [ 208 0 R /XYZ 78.427 746.914 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 669.203 null ] >>
endobj
214 0 obj
-<< /D [ 208 0 R /XYZ 78.427 735.955 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 658.244 null ] >>
endobj
215 0 obj
-<< /D [ 208 0 R /XYZ 78.427 724.996 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 647.285 null ] >>
endobj
216 0 obj
-<< /D [ 208 0 R /XYZ 78.427 714.037 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 636.326 null ] >>
endobj
217 0 obj
-<< /D [ 208 0 R /XYZ 78.427 703.078 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 625.367 null ] >>
endobj
218 0 obj
-<< /D [ 208 0 R /XYZ 78.427 692.119 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 614.408 null ] >>
endobj
219 0 obj
-<< /D [ 208 0 R /XYZ 78.427 625.37 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 603.45 null ] >>
endobj
220 0 obj
-<< /D [ 208 0 R /XYZ 78.427 614.411 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 536.7 null ] >>
endobj
221 0 obj
-<< /D [ 208 0 R /XYZ 78.427 603.452 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 525.741 null ] >>
endobj
222 0 obj
-<< /D [ 208 0 R /XYZ 78.427 592.493 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 514.782 null ] >>
endobj
223 0 obj
-<< /D [ 208 0 R /XYZ 78.427 581.534 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 503.823 null ] >>
endobj
224 0 obj
-<< /D [ 208 0 R /XYZ 78.427 570.575 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 492.864 null ] >>
endobj
225 0 obj
-<< /D [ 208 0 R /XYZ 78.427 517.773 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 481.905 null ] >>
endobj
226 0 obj
-<< /D [ 208 0 R /XYZ 78.427 506.814 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 429.103 null ] >>
endobj
227 0 obj
-<< /D [ 208 0 R /XYZ 78.427 465.967 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 418.144 null ] >>
endobj
228 0 obj
-<< /D [ 208 0 R /XYZ 78.427 455.009 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 377.298 null ] >>
endobj
229 0 obj
-<< /D [ 208 0 R /XYZ 78.427 444.05 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 366.339 null ] >>
endobj
230 0 obj
-<< /D [ 208 0 R /XYZ 78.427 433.091 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 355.38 null ] >>
endobj
231 0 obj
-<< /D [ 208 0 R /XYZ 78.427 422.132 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 344.421 null ] >>
endobj
232 0 obj
-<< /D [ 208 0 R /XYZ 78.427 411.173 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 333.462 null ] >>
endobj
233 0 obj
-<< /D [ 208 0 R /XYZ 78.427 380.289 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 322.503 null ] >>
endobj
234 0 obj
-<< /D [ 208 0 R /XYZ 78.427 369.33 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 291.619 null ] >>
endobj
235 0 obj
-<< /D [ 208 0 R /XYZ 78.427 358.371 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 280.66 null ] >>
endobj
236 0 obj
-<< /D [ 208 0 R /XYZ 78.427 347.412 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 269.701 null ] >>
endobj
237 0 obj
-<< /D [ 208 0 R /XYZ 78.427 336.453 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 258.742 null ] >>
endobj
238 0 obj
-<< /D [ 208 0 R /XYZ 78.427 325.494 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 247.783 null ] >>
endobj
239 0 obj
-<< /D [ 208 0 R /XYZ 78.427 314.535 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 236.824 null ] >>
endobj
240 0 obj
-<< /D [ 208 0 R /XYZ 78.427 303.576 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 225.865 null ] >>
endobj
241 0 obj
-<< /D [ 208 0 R /XYZ 78.427 292.618 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 214.907 null ] >>
endobj
242 0 obj
-<< /D [ 208 0 R /XYZ 78.427 281.659 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 203.948 null ] >>
endobj
243 0 obj
-<< /D [ 208 0 R /XYZ 78.427 270.7 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 192.989 null ] >>
endobj
244 0 obj
-<< /D [ 208 0 R /XYZ 78.427 259.741 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 182.03 null ] >>
endobj
245 0 obj
-<< /D [ 208 0 R /XYZ 78.427 248.782 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 171.071 null ] >>
endobj
246 0 obj
-<< /D [ 208 0 R /XYZ 78.427 237.823 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 160.112 null ] >>
endobj
247 0 obj
-<< /D [ 208 0 R /XYZ 78.427 226.864 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 149.153 null ] >>
endobj
248 0 obj
-<< /D [ 208 0 R /XYZ 78.427 215.905 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 138.194 null ] >>
endobj
249 0 obj
-<< /D [ 208 0 R /XYZ 78.427 204.946 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 127.235 null ] >>
endobj
250 0 obj
-<< /D [ 208 0 R /XYZ 78.427 193.987 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 116.276 null ] >>
endobj
251 0 obj
-<< /D [ 208 0 R /XYZ 78.427 183.028 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 105.318 null ] >>
endobj
252 0 obj
-<< /D [ 208 0 R /XYZ 78.427 140.189 null ] >>
+<< /D [ 204 0 R /XYZ 78.499 94.359 null ] >>
endobj
-253 0 obj
-<< /D [ 208 0 R /XYZ 78.427 129.23 null ] >>
+203 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9 0 obj
-<< /D [ 208 0 R /XYZ 79.37 104.523 null ] >>
+255 0 obj
+<< /Filter /FlateDecode /Length 1923 >>
+stream
+xZn$7 +F#Q;`p[kr_C-VK< Ю*")eЋgހQOE,3ikF,.>snŋxM*|\]1nΉ+>ϥŻ$^yt{$C 1䥬An/9<K7z*FIׄhMW$\>TF$mjO`bŢwBBk/n2!$h\HCZ
+QH*# ޤLLr@,daLs%Qߪ΅U/<?>c˚O UlIg 5ՄI*Z)[,clZTL4M"S>|ԀcZV>9:B2dk/d;9 kCQ]D5CyMYO"a7mQ{!_~,Pv+^>͘Bַ^A\XZ+D5KO6[‰ϭά:z~J,yzX^
+4jshiuOO?\*D=?Th{W2AWR_A
+4T{"DkN 񓦎Joڒ,$ , k0&*1 kLj)k: /- Ske fuK5L-N>#-I^<іdNRDNVcBP!p(da8h&8[d-렆[M7ղΞEkut$N]H7L%&5y*9f |Ǡ80][j6cUMa*npܛTīR]%Et Nzm!v[AhrG
+g0(gfYdw' q<+
+F"kaf3V/
+endstream
endobj
-207 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+254 0 obj
+<< /Type /Page /Contents 255 0 R /Resources 253 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
256 0 obj
-<< /Filter /FlateDecode /Length 2385 >>
-stream
-xZ[o~ϯP+sSPM Th,Jd)T0{\(qdCB73f~~\2{$#efwn$#<Q9\!&h>&?f;aqB:|P̈́qrG%7YXOX4҂vE HRʿ>/
-LtF*솥0PQR8oREi⌅ Qe؄8՗9wXWE8*A޹K6J},JMles_I E|U|Mxܧ abW5GSXncSe!,G$<PUѲFVt=Tz$EĠoc@BBFc|d1ţ߆XM0=k_q R"Vv?J00y
-_1e?΍n|=7a=NP
-,|iByqkw<izUPV?Q>ܵ_#G8M+ͤ
-ze'l8'!r҆260u2$.e\o|z3Јh/! {HKy0ם+3C uk:4"]9VH>-6
-mc{̏+paߺg 5yY
-jRoUR#8桦%!۴sV
-(-U?sPdޢ&6iʨM7NiXs(".]іAgcAm?Y;M? .Μ
-ڦ *Am*B9?yu(0Wi۔miĹqcMnw0HnҼxntOV3eO[SE0vfż)uSMlbX8X;ՙϿߋ4uY\s,s"JF1c  _Gw ioiL1xrOm:5q`D%Or:V x<:V2AQ/ci({(3L1D
-.c+4qK 3UBGAE vfӎ^-&R $qEFW/ ehf94U7L=xۙ}o2cUN`WXX¡Z"FH$:l5g|/OgGx ! ~7S Y}z=n|NA1)C8P;[y[vDoZ0ZENtR{q6X%1@Mxe0s4l v<b psX
-01߂T&0^x(hT9h'J8bw#SmV}ɣ,kѿ݅D-H$ۨ>`Mf ]DT^)F  Rqd&Iұc>!@'qYӃF0ItjW'} h
-Sf8\11If7/Xyn\-HaP9C}U!}Y>7C3_lZ\uZd0Gv>CVZ{rXy VUK>6_nkeTSƙ׿SoI:x6hHn3U=!^3Ie"(
-l\j'Iˋ?9mzicDE^N^%HK<!u?
-
-endstream
-endobj
-255 0 obj
-<< /Type /Page /Contents 256 0 R /Resources 254 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 254 0 R /XYZ 78.37 808.885 null ] >>
endobj
257 0 obj
-<< /D [ 255 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 754.882 null ] >>
endobj
258 0 obj
-<< /D [ 255 0 R /XYZ 78.427 623.082 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 743.923 null ] >>
endobj
259 0 obj
-<< /D [ 255 0 R /XYZ 78.427 612.123 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 713.039 null ] >>
endobj
260 0 obj
-<< /D [ 255 0 R /XYZ 78.427 601.164 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 702.08 null ] >>
endobj
261 0 obj
-<< /D [ 255 0 R /XYZ 78.427 590.206 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 691.121 null ] >>
endobj
262 0 obj
-<< /D [ 255 0 R /XYZ 78.427 579.247 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 680.162 null ] >>
endobj
263 0 obj
-<< /D [ 255 0 R /XYZ 78.427 568.288 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 669.203 null ] >>
endobj
-265 0 obj
-<< /D [ 255 0 R /XYZ 78.427 557.329 null ] >>
+264 0 obj
+<< /D [ 254 0 R /XYZ 78.499 636.326 null ] >>
endobj
-266 0 obj
-<< /D [ 255 0 R /XYZ 78.427 546.37 null ] >>
+265 0 obj
+<< /D [ 254 0 R /XYZ 78.499 625.367 null ] >>
endobj
-267 0 obj
-<< /D [ 255 0 R /XYZ 78.427 535.411 null ] >>
+9 0 obj
+<< /D [ 254 0 R /XYZ 79.37 598.618 null ] >>
endobj
268 0 obj
-<< /D [ 255 0 R /XYZ 78.427 503.18 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 410.176 null ] >>
endobj
269 0 obj
-<< /D [ 255 0 R /XYZ 78.427 492.222 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 399.217 null ] >>
endobj
270 0 obj
-<< /D [ 255 0 R /XYZ 78.427 481.263 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 388.258 null ] >>
endobj
271 0 obj
-<< /D [ 255 0 R /XYZ 78.427 470.304 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 377.3 null ] >>
endobj
272 0 obj
-<< /D [ 255 0 R /XYZ 78.427 459.345 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 366.341 null ] >>
endobj
273 0 obj
-<< /D [ 255 0 R /XYZ 78.427 427.114 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 355.382 null ] >>
endobj
274 0 obj
-<< /D [ 255 0 R /XYZ 78.427 416.155 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 300.587 null ] >>
endobj
275 0 obj
-<< /D [ 255 0 R /XYZ 78.427 405.196 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 289.628 null ] >>
endobj
276 0 obj
-<< /D [ 255 0 R /XYZ 78.427 394.237 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 278.669 null ] >>
endobj
277 0 obj
-<< /D [ 255 0 R /XYZ 78.427 383.279 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 267.711 null ] >>
endobj
278 0 obj
-<< /D [ 255 0 R /XYZ 78.427 372.32 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 256.752 null ] >>
endobj
279 0 obj
-<< /D [ 255 0 R /XYZ 78.427 361.361 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 245.793 null ] >>
endobj
280 0 obj
-<< /D [ 255 0 R /XYZ 78.427 329.13 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 234.834 null ] >>
endobj
281 0 obj
-<< /D [ 255 0 R /XYZ 78.427 318.171 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 223.875 null ] >>
endobj
282 0 obj
-<< /D [ 255 0 R /XYZ 78.427 307.212 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 212.916 null ] >>
endobj
283 0 obj
-<< /D [ 255 0 R /XYZ 78.427 296.253 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 201.957 null ] >>
endobj
284 0 obj
-<< /D [ 255 0 R /XYZ 78.427 285.295 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 190.998 null ] >>
endobj
285 0 obj
-<< /D [ 255 0 R /XYZ 78.427 274.336 null ] >>
+<< /D [ 254 0 R /XYZ 78.499 180.039 null ] >>
endobj
-286 0 obj
-<< /D [ 255 0 R /XYZ 78.427 263.377 null ] >>
+13 0 obj
+<< /D [ 254 0 R /XYZ 79.37 155.336 null ] >>
endobj
-287 0 obj
-<< /D [ 255 0 R /XYZ 78.427 252.418 null ] >>
+253 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F19 182 0 R /F72 266 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
288 0 obj
-<< /D [ 255 0 R /XYZ 78.427 241.459 null ] >>
+<< /Filter /FlateDecode /Length 2924 >>
+stream
+x\Ɏ#7WM2BVɀu3|9_-+Te{|2 `cdO7}n~\5=1A@(~7~p7N'- >wLoy8>(#y}oo+=J/yZ_5>/)ed⁇W&OXŕQTNL
+_(2ml\A#W){>9T4ȍ笕<E)M+޲__ 0h2b9ir
+p78)05,ƪN }rU]rF'wb~Zoe)'xph&zKŢowD]Ox-Kw^+:R%zuo]tC P5[
+Ǜ=}yXte -׊/=
+q*`mw^iϰϨ@hµjT`TRx
+ϰJn{BU0,‹cF܋%i5550}<Ëmkkh)|:͆<^D#@ZNi]#;*WCRw0lTLO+3OA~9ȵ+jJ)H5+ B1WJIimfxZ{gsR/m،3EJ~^)0CؙDykM!H%}s onv:L.UDu"~loiAc[+K7B7
+RmԠԵʺuJMG?Y2QpWbEQkTXdċ}O'2).!χ=mdj'ꁣ)YSbQ*}㊮
+,3j;=<L]_W8f n0'&}w$V@9`WEr<R% o}cݧ&g[@Hpm1av'?]rXVA5[' CTɠVwN Z+FT)&mu8D[ż2:j.1l<P
+UCn9n+y @p7ٴiyP~`7\ݙ]禎;m"|9lU-Y{!ۇ L}-+
+'!BT@ϭ>fOg+^E
+3R$gY'(rSYݛ<E/)
+endstream
+endobj
+287 0 obj
+<< /Type /Page /Contents 288 0 R /Resources 286 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
289 0 obj
-<< /D [ 255 0 R /XYZ 78.427 230.5 null ] >>
+<< /D [ 287 0 R /XYZ 78.37 808.885 null ] >>
endobj
290 0 obj
-<< /D [ 255 0 R /XYZ 78.427 219.541 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 720.798 null ] >>
endobj
291 0 obj
-<< /D [ 255 0 R /XYZ 78.427 208.582 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 709.839 null ] >>
endobj
292 0 obj
-<< /D [ 255 0 R /XYZ 78.427 197.623 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 698.88 null ] >>
endobj
293 0 obj
-<< /D [ 255 0 R /XYZ 78.427 186.664 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 687.921 null ] >>
endobj
294 0 obj
-<< /D [ 255 0 R /XYZ 78.427 175.705 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 676.962 null ] >>
endobj
295 0 obj
-<< /D [ 255 0 R /XYZ 78.427 133.431 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 666.003 null ] >>
endobj
296 0 obj
-<< /D [ 255 0 R /XYZ 78.427 122.473 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 655.044 null ] >>
endobj
297 0 obj
-<< /D [ 255 0 R /XYZ 78.427 111.514 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 644.086 null ] >>
endobj
298 0 obj
-<< /D [ 255 0 R /XYZ 78.427 100.555 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 633.127 null ] >>
endobj
299 0 obj
-<< /D [ 255 0 R /XYZ 78.427 89.596 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 622.168 null ] >>
endobj
300 0 obj
-<< /D [ 255 0 R /XYZ 79.752 78.637 null ] >>
+<< /D [ 287 0 R /XYZ 78.499 611.209 null ] >>
endobj
-254 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F74 264 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-303 0 obj
-<< /Filter /FlateDecode /Length 1762 >>
-stream
-xڭYMo8W(IYn
-!'{HCĨ,{eylCTDQ̴Dyn %_>O>^I:`H+L`8R2l Fjp3 Njx%@!-U],fPdo iBT SvWw,[h&T#̨gBOc"$Bar?[?Ly=.Ga1Wt
-_E#
-a<9v9)!2ǯ6pofZ $ X<KvEZW<4|vղ~< .3N\q\%[piG#HJF
-ƃy9[Xn!ʴ禢3
-7ejX˰ʭ =n
-X3>MBE f6.9*H7}2;/GaiuMۄipm,
-Apj 1YnjS OkԡfNOnp>-\jtSv[j fc8!9鵥jzM
-MmQ,*
-$H8#EMg\?`hA]?֙QK^?(`Hu5791EyD{nkq*mmI S{sMmF餞#ta<.$8T9AnS/B1E9P24]
-}6L>AAaA-~j)9M!ZB.t9)|8`Bb4/?]0yKSYDMh"D ;_ 3 wӿ*A\M⊎
-ufO4IQ`߹n6
-I5 v
-#Go6;dҐjIQm|϶8d[Mhb& FZccd"b
-endstream
+301 0 obj
+<< /D [ 287 0 R /XYZ 79.822 600.25 null ] >>
endobj
302 0 obj
-<< /Type /Page /Contents 303 0 R /Resources 301 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 287 0 R /XYZ 79.822 537.713 null ] >>
+endobj
+303 0 obj
+<< /D [ 287 0 R /XYZ 79.822 522.513 null ] >>
endobj
304 0 obj
-<< /D [ 302 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 511.554 null ] >>
endobj
305 0 obj
-<< /D [ 302 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 500.595 null ] >>
endobj
306 0 obj
-<< /D [ 302 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 489.636 null ] >>
endobj
307 0 obj
-<< /D [ 302 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 478.677 null ] >>
endobj
308 0 obj
-<< /D [ 302 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 467.718 null ] >>
endobj
309 0 obj
-<< /D [ 302 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 456.759 null ] >>
endobj
310 0 obj
-<< /D [ 302 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 445.801 null ] >>
endobj
311 0 obj
-<< /D [ 302 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 434.842 null ] >>
endobj
312 0 obj
-<< /D [ 302 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 410.163 null ] >>
endobj
313 0 obj
-<< /D [ 302 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 399.204 null ] >>
endobj
314 0 obj
-<< /D [ 302 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 388.245 null ] >>
endobj
315 0 obj
-<< /D [ 302 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 377.286 null ] >>
endobj
316 0 obj
-<< /D [ 302 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 263.826 null ] >>
endobj
-13 0 obj
-<< /D [ 302 0 R /XYZ 79.37 625.133 null ] >>
+317 0 obj
+<< /D [ 287 0 R /XYZ 79.822 252.867 null ] >>
+endobj
+318 0 obj
+<< /D [ 287 0 R /XYZ 79.822 241.908 null ] >>
endobj
319 0 obj
-<< /D [ 302 0 R /XYZ 79.752 436.219 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 230.949 null ] >>
endobj
320 0 obj
-<< /D [ 302 0 R /XYZ 79.752 425.26 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 219.99 null ] >>
endobj
321 0 obj
-<< /D [ 302 0 R /XYZ 79.752 414.301 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 209.031 null ] >>
endobj
322 0 obj
-<< /D [ 302 0 R /XYZ 79.752 403.342 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 198.072 null ] >>
endobj
323 0 obj
-<< /D [ 302 0 R /XYZ 79.752 392.383 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 187.113 null ] >>
endobj
324 0 obj
-<< /D [ 302 0 R /XYZ 79.752 381.424 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 133.429 null ] >>
endobj
325 0 obj
-<< /D [ 302 0 R /XYZ 79.752 327.065 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 122.47 null ] >>
endobj
326 0 obj
-<< /D [ 302 0 R /XYZ 79.752 316.106 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 111.511 null ] >>
endobj
327 0 obj
-<< /D [ 302 0 R /XYZ 79.752 305.147 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 100.552 null ] >>
endobj
328 0 obj
-<< /D [ 302 0 R /XYZ 79.752 294.188 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 89.593 null ] >>
endobj
329 0 obj
-<< /D [ 302 0 R /XYZ 79.752 283.23 null ] >>
-endobj
-330 0 obj
-<< /D [ 302 0 R /XYZ 79.752 272.271 null ] >>
+<< /D [ 287 0 R /XYZ 79.822 78.635 null ] >>
endobj
-331 0 obj
-<< /D [ 302 0 R /XYZ 79.752 261.312 null ] >>
+286 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F15 180 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
332 0 obj
-<< /D [ 302 0 R /XYZ 79.752 250.353 null ] >>
+<< /Filter /FlateDecode /Length 3029 >>
+stream
+x[r#9WM{s\gNpSrRvuA 
+ta<X(*I*1kCO>)+_7=!*" Vh:-sVgev+aj_RehU'U
+e8'Z qЊ\<a;15Y4*GH6<<
+xQVnn5T3%Wc7QkLFiTF.}B r7 yGl<!4>q=֜{S}yJJ8r055A_GPOJ!u\V
+JsEmlnisٰ`T6,|5+ e;;)Qp
+Z(359JrPїٚ(\g.Kju0.^ψ<@墶 ߷2‘ 'zF#uk[=/{&
+[Dl*S0#rbzު^d1!K? ~+L e*(a0c<PΙ{r>;*
+ZsFҚV4 GOK93tP!{,}  U d2cکTm0`Vi`CJj^ YpVhmY@?c+Bd37S/PI
+MC܁0Wȓ^B(RGyKh .Z
+$_l`sT3Z4Iu&y>.R~g< ,NMWMGlyԕߥ nHOyzon ɠ22!p9BO@w7vT>ST`n`F%\ -~i ]ϹMjv'aDK]al]֙HV:axQ:`HB,:kfT>Qͨt?!6]Qo\esQGQ@H դ4S[Tڞ}@/P6[նY*3*!
+vc(#spVŰ>0pR!_ڨh[w*/Z 9krlr\hFv3+k12 >Q9 qx徍:
+'f
+0{\rϳ]eT&iRgyԴz?z;B5'&us'+
+ùNr^hP*piQ_PSS/=}Jn*f:)fYq6}+T<&|8ߚ*h )i4rZ.-GmrEy6WĤݪ}].~#[6lL/
+endstream
+endobj
+331 0 obj
+<< /Type /Page /Contents 332 0 R /Resources 330 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
333 0 obj
-<< /D [ 302 0 R /XYZ 79.752 239.394 null ] >>
+<< /D [ 331 0 R /XYZ 78.37 808.885 null ] >>
endobj
334 0 obj
-<< /D [ 302 0 R /XYZ 79.752 228.435 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 754.882 null ] >>
endobj
335 0 obj
-<< /D [ 302 0 R /XYZ 79.752 217.476 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 743.923 null ] >>
endobj
336 0 obj
-<< /D [ 302 0 R /XYZ 79.752 206.517 null ] >>
-endobj
-17 0 obj
-<< /D [ 302 0 R /XYZ 79.37 182.121 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 732.964 null ] >>
endobj
337 0 obj
-<< /D [ 302 0 R /XYZ 79.752 100.555 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 722.005 null ] >>
endobj
338 0 obj
-<< /D [ 302 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 711.046 null ] >>
endobj
339 0 obj
-<< /D [ 302 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-301 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 331 0 R /XYZ 79.822 634.334 null ] >>
endobj
-342 0 obj
-<< /Filter /FlateDecode /Length 2526 >>
-stream
-xZs6~_J71$^k'x.7Z,62v "$vń@,b-h:-ë^z!I >^b0N$rhFfLzAgdZt((# e?p/i~*gWs1n^ۍz>~ «(a{*
-Pvo"K10)<fy(;yYɥyJX*=$
-Pbw#ԮR,!+=>޴SRTS{Y,kz3C@LAZЁ Lj/:D#fQ'//.E"z<
-@K#֜H᳉Q'|K+Fd ag?!x)b|6Q/=#Ŀ\De>ȨȞ
-b~e BTd v뵙] !jf<>j/aJsS4m=jӛOn]c{Uն4eU+-\Evp&qA>Uݝ)vQ(BFn*cDg.gv$ӼOsB6`5sз3E,D?s1rif1Sl
-ƅfT1(hvmjcwlfc˽Zeu,vQuÖ yƖH$ Tj'NiEmQ-uԭ4o?ܦcm5 ndFRգbilw)Mf~E^1Λ7e$:䴲 )I3U dRz0"oPR`ô"t,\W՗vB^ߘۢ\<Tx$y^``
-?.-3Jh):qJ* р?/c/C`ۅbK=39b_?T%P:V#8iSlA|L^]|=J≯v˨8r .b#M*BQ!j[,]m)H$*~X DM[kJCѻIuYԪ[&_ @޸qCQspOOgISH]^w^Mxn F֯qX
- 4@ Mw~[' ʛ; &JxNKBm
- K&٥Fu;I'./U!eUc|yz wp7Laym>-M,gQn)n~<8',DoeG IÇҝx؝k%5khN'm^ԣj0Qpʎ7qXrp:tWkrxMS.asV0p
-ոw&Kw9+|w!0̹*xXC5m]tMtl_"ad[.Y㑰ʪrD3@{}AyL%d \Rl{QpN -l'/"
-pSQLpA
->NRM(c1Y1Ә}0<הdbǫx&@ˆըEIr ,e%
-endstream
+340 0 obj
+<< /D [ 331 0 R /XYZ 79.822 623.375 null ] >>
endobj
341 0 obj
-<< /Type /Page /Contents 342 0 R /Resources 340 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 331 0 R /XYZ 79.822 612.416 null ] >>
+endobj
+342 0 obj
+<< /D [ 331 0 R /XYZ 79.822 601.457 null ] >>
endobj
343 0 obj
-<< /D [ 341 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 590.498 null ] >>
endobj
344 0 obj
-<< /D [ 341 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 579.539 null ] >>
endobj
345 0 obj
-<< /D [ 341 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 568.58 null ] >>
endobj
346 0 obj
-<< /D [ 341 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 557.621 null ] >>
endobj
347 0 obj
-<< /D [ 341 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 546.662 null ] >>
endobj
348 0 obj
-<< /D [ 341 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 535.704 null ] >>
endobj
349 0 obj
-<< /D [ 341 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 524.745 null ] >>
endobj
350 0 obj
-<< /D [ 341 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 453.206 null ] >>
endobj
351 0 obj
-<< /D [ 341 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 442.247 null ] >>
endobj
352 0 obj
-<< /D [ 341 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 431.288 null ] >>
endobj
353 0 obj
-<< /D [ 341 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 420.329 null ] >>
endobj
354 0 obj
-<< /D [ 341 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 409.37 null ] >>
endobj
355 0 obj
-<< /D [ 341 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 398.411 null ] >>
endobj
356 0 obj
-<< /D [ 341 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 387.453 null ] >>
endobj
357 0 obj
-<< /D [ 341 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 376.494 null ] >>
endobj
358 0 obj
-<< /D [ 341 0 R /XYZ 79.752 573.564 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 365.535 null ] >>
endobj
359 0 obj
-<< /D [ 341 0 R /XYZ 79.752 557.624 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 354.576 null ] >>
endobj
360 0 obj
-<< /D [ 341 0 R /XYZ 79.752 546.665 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 343.617 null ] >>
endobj
361 0 obj
-<< /D [ 341 0 R /XYZ 79.752 519.766 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 332.658 null ] >>
endobj
362 0 obj
-<< /D [ 341 0 R /XYZ 79.752 508.807 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 321.699 null ] >>
endobj
363 0 obj
-<< /D [ 341 0 R /XYZ 79.752 497.848 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 310.74 null ] >>
endobj
364 0 obj
-<< /D [ 341 0 R /XYZ 79.752 486.889 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 220.08 null ] >>
endobj
365 0 obj
-<< /D [ 341 0 R /XYZ 79.752 372.319 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 209.121 null ] >>
endobj
366 0 obj
-<< /D [ 341 0 R /XYZ 79.752 361.36 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 198.162 null ] >>
endobj
367 0 obj
-<< /D [ 341 0 R /XYZ 79.752 350.401 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 187.203 null ] >>
endobj
368 0 obj
-<< /D [ 341 0 R /XYZ 79.752 339.442 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 176.245 null ] >>
endobj
369 0 obj
-<< /D [ 341 0 R /XYZ 79.752 328.483 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 165.286 null ] >>
endobj
370 0 obj
-<< /D [ 341 0 R /XYZ 79.752 317.524 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 154.327 null ] >>
endobj
371 0 obj
-<< /D [ 341 0 R /XYZ 79.752 306.565 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 143.368 null ] >>
endobj
372 0 obj
-<< /D [ 341 0 R /XYZ 79.752 295.606 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 102.521 null ] >>
endobj
373 0 obj
-<< /D [ 341 0 R /XYZ 79.752 240.812 null ] >>
+<< /D [ 331 0 R /XYZ 79.822 91.562 null ] >>
endobj
-374 0 obj
-<< /D [ 341 0 R /XYZ 79.752 229.853 null ] >>
+330 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-375 0 obj
-<< /D [ 341 0 R /XYZ 79.752 218.894 null ] >>
+377 0 obj
+<< /Filter /FlateDecode /Length 2630 >>
+stream
+x[n+7+./`,+@v.jd3w1jV)"`[jvX/V/?<"7ۓ|LǷg%pn$~<~8~9lVxO8-]9y0ޚSX :kȗ/J4x|9 /w/4eM LdsLȨ`(:v)tXRbP< eB@`ـD(׋C6r35r+EK^"08zώl8D=(2ꔨ0ゎ3]Gqym :q GO H>- C#,9&)i|+@n2-^Fznq9mSj&p" 3\`Rx !HO8XU-Z]׻a(ZG#uU+M̖2hܦ9(A^^!eﻒ (ޮ'
+Ō}ڹ`5z/s6{2D}[ȧe54fW{V l?m=U~?k1c S" )+;n9m %jz^_KcoF3<sr;xO5HO e:
+ 't42dKRK}K 18OC \0׳S*d7NG]8nz[rtUQ>0mʡbқ6&
+83R'#B5[N_LD
+ Lk 0qԓCߞơ􂹚2w"5hıZj\Kl{KJv 3J݁OT9ko[ '7 Ch#;h &M$&fT(T/_%T`I9*n
+:>-8-sF']n<k;<JNhF3aeDs4XQ9*Ռ C
+W߀t>sM;5gy/`Z6˚ 3ˤsù@bKV(/!d~0aLvr%txm A+9sfd[N\Z[RF5ٸ'[`̲etW&HJ!$}MY/lM#y. W\M1l"{ Rmi,ՉNܵ#5ud;pڴKGҘ1ԽL
+4
+endstream
endobj
376 0 obj
-<< /D [ 341 0 R /XYZ 79.752 207.935 null ] >>
+<< /Type /Page /Contents 377 0 R /Resources 375 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R /Annots 427 0 R >>
endobj
-377 0 obj
-<< /D [ 341 0 R /XYZ 79.752 196.976 null ] >>
+427 0 obj
+[ 374 0 R ]
+endobj
+374 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 120.217 138.565 126.676 149.631 ]/A << /S /GoTo /D (Hfootnote.1) >> >>
endobj
378 0 obj
-<< /D [ 341 0 R /XYZ 79.752 186.017 null ] >>
+<< /D [ 376 0 R /XYZ 78.37 808.885 null ] >>
endobj
379 0 obj
-<< /D [ 341 0 R /XYZ 79.752 155.133 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 754.882 null ] >>
endobj
380 0 obj
-<< /D [ 341 0 R /XYZ 79.752 144.174 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 743.923 null ] >>
endobj
381 0 obj
-<< /D [ 341 0 R /XYZ 79.752 133.215 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 732.964 null ] >>
endobj
382 0 obj
-<< /D [ 341 0 R /XYZ 79.752 122.256 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 722.005 null ] >>
endobj
383 0 obj
-<< /D [ 341 0 R /XYZ 79.752 111.297 null ] >>
-endobj
-340 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 376 0 R /XYZ 79.822 681.158 null ] >>
endobj
-386 0 obj
-<< /Filter /FlateDecode /Length 2716 >>
-stream
-xڽZo߿=Tv<n8lh{bӶ[J%9Nɢf-Qp7Cr'w?=H4;LFLNdNv3gequ+/~nj_} YU}ö5Miu7Ccc)Tl)q|(Deg?}-uk§8+k0=
-Iá~'?,s0_l$Z.0œ]^
-#q8~=14, 'x\#B3գ׳+*UQ-aM]Cٹ mj6jL\h+Zs`yiƃW4ϞF Rfۀs7f\(IDD*33+`STYm*u*SYn[b{(HJf s$<šxX%2
-&I45|HB24 k@'T,.,.sr:t+9ɾ4Wޗ*K#?NFSavi9DGYpW?`-NEv?$AλuמTl[n)5ߓ&dfp߱`X" )<j̃-$CZ$W0
-dO)ouET."d)08[<p'p#a k!eUAk I~T刄5Uvm$l5Й4lqI8 X⺫Whۇ몊!;~heW 5dsQ4 8}CM4\c3wsݥYF?Xߌ@i`[;(5?k`F£5~Ջ_cV vVU€䢏
-Z%H o$8UzHQ*̞.JH breW+k đ:ɂ)G94=v1ރ~rvM) +B,EhR%\eUp\d8K'90fP^w 4|]՗[ ҁ1~x)mAxpcL$k _}t?b)ne j|,E;Yp>܆P&svL4,uiԦnS=4fVf|,<r%Ի[@Xh.T
-gpYGx՟-Y'J݉?Xr=x ئp0
-WlHܝ‹T6v8vsݚyk/9?xVv7r)s9`'gCxFlەoly-5FUjOc$wŗHL lM->:MgT™NI#YB~|vY=7@bsge51HS Bb#$B>&Iir$le̯u17O ߨ%HHg)NG#VzTmh9eeXx "y?6[3 X@Z1?Nٳ`TɊdG'Z#[TyZI+N߫@ C"onz>=DgI*ȃS}&hGMIִK}\"`.Qoh=$*'p<y$pќ VuޫM
-Kzv'%=Q=Dk OrX[~">SPKg?h|y~<p"~O`2~bR$9> An~"MHNp'"]e
-endstream
+384 0 obj
+<< /D [ 376 0 R /XYZ 79.822 670.199 null ] >>
endobj
385 0 obj
-<< /Type /Page /Contents 386 0 R /Resources 384 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 376 0 R /XYZ 79.822 659.24 null ] >>
+endobj
+386 0 obj
+<< /D [ 376 0 R /XYZ 79.822 648.281 null ] >>
endobj
387 0 obj
-<< /D [ 385 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 607.435 null ] >>
endobj
388 0 obj
-<< /D [ 385 0 R /XYZ 79.752 719.019 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 596.476 null ] >>
endobj
389 0 obj
-<< /D [ 385 0 R /XYZ 79.752 708.06 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 585.517 null ] >>
endobj
390 0 obj
-<< /D [ 385 0 R /XYZ 79.752 697.101 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 574.558 null ] >>
endobj
391 0 obj
-<< /D [ 385 0 R /XYZ 79.752 686.142 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 563.599 null ] >>
endobj
392 0 obj
-<< /D [ 385 0 R /XYZ 79.752 675.183 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 552.64 null ] >>
endobj
393 0 obj
-<< /D [ 385 0 R /XYZ 79.752 664.224 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 541.681 null ] >>
endobj
394 0 obj
-<< /D [ 385 0 R /XYZ 79.752 653.265 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 512.789 null ] >>
endobj
395 0 obj
-<< /D [ 385 0 R /XYZ 79.752 642.306 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 501.831 null ] >>
endobj
396 0 obj
-<< /D [ 385 0 R /XYZ 79.752 631.347 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 490.872 null ] >>
endobj
397 0 obj
-<< /D [ 385 0 R /XYZ 79.752 620.388 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 479.913 null ] >>
endobj
398 0 obj
-<< /D [ 385 0 R /XYZ 79.752 609.429 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 468.954 null ] >>
endobj
399 0 obj
-<< /D [ 385 0 R /XYZ 79.752 537.892 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 457.995 null ] >>
endobj
400 0 obj
-<< /D [ 385 0 R /XYZ 79.752 526.933 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 447.036 null ] >>
endobj
401 0 obj
-<< /D [ 385 0 R /XYZ 79.752 515.974 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 436.077 null ] >>
endobj
402 0 obj
-<< /D [ 385 0 R /XYZ 79.752 505.015 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 425.118 null ] >>
endobj
403 0 obj
-<< /D [ 385 0 R /XYZ 79.752 494.057 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 414.159 null ] >>
endobj
404 0 obj
-<< /D [ 385 0 R /XYZ 79.752 483.098 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 403.2 null ] >>
endobj
405 0 obj
-<< /D [ 385 0 R /XYZ 79.752 472.139 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 392.242 null ] >>
endobj
406 0 obj
-<< /D [ 385 0 R /XYZ 79.752 461.18 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 381.283 null ] >>
endobj
407 0 obj
-<< /D [ 385 0 R /XYZ 79.752 450.221 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 370.324 null ] >>
endobj
408 0 obj
-<< /D [ 385 0 R /XYZ 79.752 439.262 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 359.365 null ] >>
endobj
409 0 obj
-<< /D [ 385 0 R /XYZ 79.752 428.303 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 348.406 null ] >>
endobj
410 0 obj
-<< /D [ 385 0 R /XYZ 79.752 417.344 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 337.447 null ] >>
endobj
411 0 obj
-<< /D [ 385 0 R /XYZ 79.752 406.385 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 326.488 null ] >>
endobj
412 0 obj
-<< /D [ 385 0 R /XYZ 79.752 395.426 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 273.686 null ] >>
endobj
413 0 obj
-<< /D [ 385 0 R /XYZ 79.752 304.766 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 262.727 null ] >>
endobj
414 0 obj
-<< /D [ 385 0 R /XYZ 79.752 293.808 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 251.768 null ] >>
endobj
415 0 obj
-<< /D [ 385 0 R /XYZ 79.752 282.849 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 240.809 null ] >>
endobj
416 0 obj
-<< /D [ 385 0 R /XYZ 79.752 271.89 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 229.851 null ] >>
endobj
417 0 obj
-<< /D [ 385 0 R /XYZ 79.752 260.931 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 218.892 null ] >>
endobj
418 0 obj
-<< /D [ 385 0 R /XYZ 79.752 249.972 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 207.933 null ] >>
endobj
419 0 obj
-<< /D [ 385 0 R /XYZ 79.752 239.013 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 196.974 null ] >>
endobj
420 0 obj
-<< /D [ 385 0 R /XYZ 79.752 228.054 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 186.015 null ] >>
endobj
421 0 obj
-<< /D [ 385 0 R /XYZ 79.752 217.095 null ] >>
-endobj
-422 0 obj
-<< /D [ 385 0 R /XYZ 79.752 176.248 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 175.056 null ] >>
endobj
423 0 obj
-<< /D [ 385 0 R /XYZ 79.752 165.289 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 134.209 null ] >>
endobj
424 0 obj
-<< /D [ 385 0 R /XYZ 79.752 154.331 null ] >>
-endobj
-425 0 obj
-<< /D [ 385 0 R /XYZ 79.752 143.372 null ] >>
+<< /D [ 376 0 R /XYZ 79.822 123.25 null ] >>
endobj
426 0 obj
-<< /D [ 385 0 R /XYZ 79.752 132.413 null ] >>
+<< /D [ 376 0 R /XYZ 93.716 93.504 null ] >>
endobj
-427 0 obj
-<< /D [ 385 0 R /XYZ 79.752 121.454 null ] >>
-endobj
-428 0 obj
-<< /D [ 385 0 R /XYZ 79.752 80.607 null ] >>
-endobj
-384 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F70 185 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+375 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F15 180 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R /F16 422 0 R /F80 425 0 R /F55 201 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-432 0 obj
-<< /Filter /FlateDecode /Length 2439 >>
-stream
-xZko_a`BF7)h>v(v'Y[$';;KIǑMoC"!ϽRxv?ó/"a~/|{b3tJݮ.gdjD%)IdvP"?0vԳi)Yc !Q PocC nhy#t~OGe}=T
-MݩT(2Θ7). D ObaRw\7hV6믝^-vh+MLϟ)OK4{{scr*JiXmGљ+Ozo;
-1P]^契GX{h._t2kO@* ƐZ~GVOi~6n -hv/=WP  Jb{h`| FCcBpt0!1SNZ4u,ZPS~UT;E}ڼ,X< =\7wmU}-H
-A!3OI,8Y<B>Ӿ)Ab TٌzB`X"i7̓QhBTVi˦=!Gh,4ER-@
-QC˰[aJܓR;"V3\s :LDi&
-xy^?nݯ~ES#Ƥ,ꃿL1R{Gq# øűM^ݎ\)P/hj\/8g)vΞř
-Se(-$ha&}QUEu?nNO
-5?<h %MI*i '^&.qd
-4 #m7!7 VיY
-z|e`n7u,L)iKHT7)DXlˬb([̓T{_;c :݅ԚHy `U2V:FaG, hmXɮBQ:y~z[3ö~Tl^*C%o;6/a}~f\?Q5e#OY8Yv#ӽ?7;B:=lZ\+uCn/Mj\͆{L*+[[H6
+430 0 obj
+<< /Filter /FlateDecode /Length 2973 >>
+stream
+x[n$WCw@R s _jn%KҌZ*32Q?/Cϼ^~7xIb`܈}+snᇿ?X5Vp48<5 n
+#aNLFO!~{/?ꎷTx6*rϏڽBGE?P8y%X=#zOEd떟J=)|?u(GdKgUr,2eF :Z Ym*Ql3|j(* PA*7U[u^u-#a5y)M W=y?\ex}H#B7<QpTmT׍(nQ$S/Y΢/!$(5^qI[d@%ݣ2qnm3Җ9t.9vL1 OGǔG6Q+*"E'z(-mE7?񐙀qI
+0җB^ߨ
+WT;FogPs1m$Z|#U`BClH;Ug 5$x8`֬11%H,ұI&lR)aWeIR(hI'F:1ӰamoS9tـco$s!"2o|=_!7&=3qR+C'fލN1Ds0-c.iG!=2;0y4[胫+u JrwF}&TMn_am2RߐޚJE +bFM5|g2/}_]dZL5sQz\1"ᛶS ]OHEtxu{]K8Vo6ٔ0Q\+5n)?n)1HUᴥ
+ifꝅR >M*s"WԳQ] vR'Qlq `&x?!
+?viFpU#zR7U
+򫖱-OPkm4֨Q_ϴ~AV v.R {_
+G0RpɌT>ARcV8,?jw ̬d uSy`ƹi$4yςݾ)'I 3#||,()K #2hϜIg
+y{s)Z+/lBKakޗM;iy)qW¢R# u!% 65qZbqb.QE?r!
+{8g1^X2[lnz9;l0&M= ҋlCǸptdjV`X=PNբ}0&z5)3AIhh PnmOjB>~'ܾ=m̺h^lrPI@F?|HhAY~HAOhCy\F6}V]UqUt< }KYYO湛6 35EI{NAtex,+?DQ<ojNVm"t>وVJcp~bj†, {zk'HdګGˡ1/t2u@~5*[mt|
+^3%q:o/6|wUӒ"v!g<*qӯ`6"yϘ0!} 0Mwb4Y{~wmS*nӟGze9H"Mp!থ\7MP1SR[3)櫽%vǴZ:5; Df _!r椥]M -/j 4y:Xrz5!) #=O-~EinK'&䚗ɌI)8)xS;mӃC٥Io8]fyky¨o ' .jCST茌k '
+A_rR5HOJvA:6\l*zTrV
+)40yӺ1>qoʵ
+3A90uz"k>COh*2[`3`^AEXPj<Ss\q5EJG.~޺=c
endstream
endobj
-431 0 obj
-<< /Type /Page /Contents 432 0 R /Resources 430 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R /Annots 482 0 R >>
+429 0 obj
+<< /Type /Page /Contents 430 0 R /Resources 428 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
-482 0 obj
-[ 429 0 R ]
+431 0 obj
+<< /D [ 429 0 R /XYZ 78.37 808.885 null ] >>
endobj
-429 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 120.217 226.236 126.679 237.063 ]/A << /S /GoTo /D (Hfootnote.1) >> >>
+432 0 obj
+<< /D [ 429 0 R /XYZ 79.822 731.299 null ] >>
endobj
433 0 obj
-<< /D [ 431 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 720.34 null ] >>
endobj
434 0 obj
-<< /D [ 431 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 709.381 null ] >>
endobj
435 0 obj
-<< /D [ 431 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 698.423 null ] >>
endobj
436 0 obj
-<< /D [ 431 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 647.588 null ] >>
endobj
437 0 obj
-<< /D [ 431 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 607.397 null ] >>
endobj
438 0 obj
-<< /D [ 431 0 R /XYZ 79.752 695.108 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 555.251 null ] >>
endobj
439 0 obj
-<< /D [ 431 0 R /XYZ 79.752 684.149 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 544.292 null ] >>
endobj
440 0 obj
-<< /D [ 431 0 R /XYZ 79.752 673.19 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 533.333 null ] >>
endobj
441 0 obj
-<< /D [ 431 0 R /XYZ 79.752 662.231 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 522.375 null ] >>
endobj
442 0 obj
-<< /D [ 431 0 R /XYZ 79.752 651.273 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 511.416 null ] >>
endobj
443 0 obj
-<< /D [ 431 0 R /XYZ 79.752 640.314 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 500.457 null ] >>
endobj
444 0 obj
-<< /D [ 431 0 R /XYZ 79.752 629.355 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 489.498 null ] >>
endobj
445 0 obj
-<< /D [ 431 0 R /XYZ 79.752 600.463 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 478.539 null ] >>
endobj
446 0 obj
-<< /D [ 431 0 R /XYZ 79.752 589.504 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 467.58 null ] >>
endobj
447 0 obj
-<< /D [ 431 0 R /XYZ 79.752 578.545 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 456.621 null ] >>
endobj
448 0 obj
-<< /D [ 431 0 R /XYZ 79.752 567.586 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 445.662 null ] >>
endobj
449 0 obj
-<< /D [ 431 0 R /XYZ 79.752 556.627 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 434.703 null ] >>
endobj
450 0 obj
-<< /D [ 431 0 R /XYZ 79.752 545.669 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 394.512 null ] >>
endobj
451 0 obj
-<< /D [ 431 0 R /XYZ 79.752 534.71 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 383.553 null ] >>
endobj
452 0 obj
-<< /D [ 431 0 R /XYZ 79.752 523.751 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 372.595 null ] >>
endobj
453 0 obj
-<< /D [ 431 0 R /XYZ 79.752 512.792 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 361.636 null ] >>
endobj
454 0 obj
-<< /D [ 431 0 R /XYZ 79.752 501.833 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 350.677 null ] >>
endobj
455 0 obj
-<< /D [ 431 0 R /XYZ 79.752 490.874 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 339.718 null ] >>
endobj
456 0 obj
-<< /D [ 431 0 R /XYZ 79.752 479.915 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 328.759 null ] >>
endobj
457 0 obj
-<< /D [ 431 0 R /XYZ 79.752 468.956 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 317.8 null ] >>
endobj
458 0 obj
-<< /D [ 431 0 R /XYZ 79.752 457.997 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 289.564 null ] >>
endobj
459 0 obj
-<< /D [ 431 0 R /XYZ 79.752 447.038 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 278.605 null ] >>
endobj
460 0 obj
-<< /D [ 431 0 R /XYZ 79.752 436.08 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 267.646 null ] >>
endobj
461 0 obj
-<< /D [ 431 0 R /XYZ 79.752 425.121 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 256.688 null ] >>
endobj
462 0 obj
-<< /D [ 431 0 R /XYZ 79.752 414.162 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 205.853 null ] >>
endobj
463 0 obj
-<< /D [ 431 0 R /XYZ 79.752 361.36 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 177.265 null ] >>
endobj
464 0 obj
-<< /D [ 431 0 R /XYZ 79.752 350.401 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 166.306 null ] >>
endobj
465 0 obj
-<< /D [ 431 0 R /XYZ 79.752 339.442 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 155.347 null ] >>
endobj
466 0 obj
-<< /D [ 431 0 R /XYZ 79.752 328.483 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 144.388 null ] >>
endobj
467 0 obj
-<< /D [ 431 0 R /XYZ 79.752 317.524 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 133.429 null ] >>
endobj
468 0 obj
-<< /D [ 431 0 R /XYZ 79.752 306.565 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 122.47 null ] >>
endobj
469 0 obj
-<< /D [ 431 0 R /XYZ 79.752 295.606 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 111.511 null ] >>
endobj
470 0 obj
-<< /D [ 431 0 R /XYZ 79.752 284.647 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 100.552 null ] >>
endobj
471 0 obj
-<< /D [ 431 0 R /XYZ 79.752 273.688 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 89.593 null ] >>
endobj
472 0 obj
-<< /D [ 431 0 R /XYZ 79.752 262.73 null ] >>
+<< /D [ 429 0 R /XYZ 79.822 78.635 null ] >>
endobj
-474 0 obj
-<< /D [ 431 0 R /XYZ 79.752 221.883 null ] >>
+428 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
475 0 obj
-<< /D [ 431 0 R /XYZ 79.752 210.924 null ] >>
+<< /Filter /FlateDecode /Length 2379 >>
+stream
+x[r#7 +p*5U959.`x M#<-~O?8~3O珧oW+Ny'<}$B#~'4dA0̹roU+ؓc@^9T$ -J s.o_C·:mdNFAOGJ|oە6,5JFiWFg6#СyJÙB f Q
+!謜  WAC #!S &1Ȅ`JP!a1Wg!NO{@JCDx#ڕڲh |oΥ?.ƽsFQ0[qYfx喡ɠFF[TH'5njQhp70;*-b80 c&`( \:<2oWaN>tN3eO
+@{K,K؃
+@<ZVH
+uJ 3S?VJI۔2,'PJ7iRCDјf:WgBizi]Rt[`dje3!(Ʉ[I)CEʭoQ"R$7R$۳q:&ɁUQQ Ҋ{=:2q_[A~kLyM%fGS[WT %dzEkuU0=V)22d%JSX֒="dLc"Ty"R~1S700"'Rɋ| c Js]o+f>Xfs8ʠ w%Re%hv*urRŭ7"e5995K<!v0y|3c 4
+Qa"gR;J]0ZSxu
+kp~^Od`O<Bݐ7)Z&Bw{ƥ3Y DQ;6e r΄rLڗx>Hk^xiVYZ 97s2kֹ5ZtmbaMlE+ʺݾgȆ,f_bI">6X`mlfJH(Fb:~.(p7 V!ka`"=dO&i42_jK+å_/Z!mTH%l3 R}oIl|;1K$niN#I0u8PCnSĮPJ{V,T.թ2d >j=)1HsW*B^(K<pf6Kd9IspiqӰ\*ZpVI[Ǒ<t(mm38K>pn 4๝
+[JI{g]t'tN|B'7OdwadF^!#9`+*W]a?1 1g=vC|9w}xmm Yo3&nS<GUT|Ҝ VW97> \cҩs 6b!>1St/!5"k*=#S|[.G&$Չ5ezThEM;AIaԞ#K]_I^W
+:S0b
+瞕Tׄ&<[cf%oov0]Al7Xf$ni!b
+R5<n?3f.b`
+L.)ZdFejNntMӡd{Uͳ5s$CvLM&Q'0ZA,mzŻze~u,$P8bDo'IދB{ w݊T0jHA6KΊS&Wv9|\X2;3hr&2LgX7L;7H4sd2GEnxZ+hGoV.g2p s]P!Sf8FO}`:VR.0`d佴ZݎZoClȧ
+Yr;{Qםyo'37!AZ֡ns1W?4_xd{XT,v2`Bې2ok $O
+endstream
+endobj
+474 0 obj
+<< /Type /Page /Contents 475 0 R /Resources 473 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
476 0 obj
-<< /D [ 431 0 R /XYZ 79.752 158.122 null ] >>
+<< /D [ 474 0 R /XYZ 78.37 808.885 null ] >>
endobj
477 0 obj
-<< /D [ 431 0 R /XYZ 79.752 147.163 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 768.829 null ] >>
endobj
478 0 obj
-<< /D [ 431 0 R /XYZ 79.752 136.204 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 757.87 null ] >>
endobj
479 0 obj
-<< /D [ 431 0 R /XYZ 79.752 125.245 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 746.912 null ] >>
+endobj
+480 0 obj
+<< /D [ 474 0 R /XYZ 79.822 735.953 null ] >>
endobj
481 0 obj
-<< /D [ 431 0 R /XYZ 94.613 95.656 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 724.994 null ] >>
endobj
-430 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F74 264 0 R /F76 318 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R >> /ProcSet [ /PDF /Text ] >>
+482 0 obj
+<< /D [ 474 0 R /XYZ 79.822 714.035 null ] >>
endobj
-485 0 obj
-<< /Filter /FlateDecode /Length 2394 >>
-stream
-xڵZ]o}@iM}hѻ>)n- ]Ȓ$'Mw(8/E3̙ajM_?}FZ&Od<Q9Lf~moe]5ӧZ١lxM4mQWn^^y<V
-yYT#O FE$;։9ɭDrBvyevEwM{). ]=JNJT,2L1D{= fQ1B1p&B INb(aM@JaKk ʦ_A95YW/s]to5kb<
-,cI.y93$ɑֽAΊr,P qiI' i)~Zid'#2]'
-TE08>ZmA"Nx?켞~I{?^+jW [[?^u"BYU˦s?rWek4~&~"Xƿ-=֔ePka-PyY"8g< zYݳX 7+Z0v
-1A^͏]39e'TxwN\FRAR"Уfŭ׊P0'Qmcmᔀa3x,rVTv
-aÔ&t^o6fyH}3v$xϑ.L]Pm&@ެvRT q+U8e{h`Aۍ{OR7a`k?}nSI`gu^')Fl
-B
-|]ۍ'A@$1_c%e h7 &5
-]s'?89V(i,et]~zM3? ',]lF|3>"H#ȿ09֯9:
-.jfYg3A C<SxFRR~=]臯w= \ "77ڮa
-zNe"v׺)g-MXDei6_PAG;,k\
-Z &i?J~C~@\gi4}Z`8yRԉS%*hb"<DKXRW ) )9fѴK/wZq6aeVZ(83
-*N4 aA#a
-}lU)ƒziHCl2CJ0qҿ* i,
-'^7O#l iS~vsf
-endstream
+483 0 obj
+<< /D [ 474 0 R /XYZ 79.822 703.076 null ] >>
endobj
484 0 obj
-<< /Type /Page /Contents 485 0 R /Resources 483 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 474 0 R /XYZ 79.822 650.291 null ] >>
+endobj
+485 0 obj
+<< /D [ 474 0 R /XYZ 79.822 639.332 null ] >>
endobj
486 0 obj
-<< /D [ 484 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 628.373 null ] >>
endobj
487 0 obj
-<< /D [ 484 0 R /XYZ 79.752 743.268 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 617.414 null ] >>
endobj
488 0 obj
-<< /D [ 484 0 R /XYZ 79.752 703.1 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 606.455 null ] >>
endobj
489 0 obj
-<< /D [ 484 0 R /XYZ 79.752 650.977 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 595.496 null ] >>
endobj
490 0 obj
-<< /D [ 484 0 R /XYZ 79.752 640.018 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 584.537 null ] >>
endobj
491 0 obj
-<< /D [ 484 0 R /XYZ 79.752 629.059 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 556.22 null ] >>
endobj
492 0 obj
-<< /D [ 484 0 R /XYZ 79.752 618.1 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 545.261 null ] >>
endobj
493 0 obj
-<< /D [ 484 0 R /XYZ 79.752 607.141 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 534.302 null ] >>
endobj
494 0 obj
-<< /D [ 484 0 R /XYZ 79.752 596.182 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 505.427 null ] >>
endobj
495 0 obj
-<< /D [ 484 0 R /XYZ 79.752 585.223 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 494.469 null ] >>
endobj
496 0 obj
-<< /D [ 484 0 R /XYZ 79.752 574.264 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 483.51 null ] >>
endobj
497 0 obj
-<< /D [ 484 0 R /XYZ 79.752 563.305 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 472.551 null ] >>
endobj
498 0 obj
-<< /D [ 484 0 R /XYZ 79.752 552.346 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 461.592 null ] >>
endobj
499 0 obj
-<< /D [ 484 0 R /XYZ 79.752 541.387 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 450.633 null ] >>
endobj
500 0 obj
-<< /D [ 484 0 R /XYZ 79.752 501.219 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 439.674 null ] >>
endobj
501 0 obj
-<< /D [ 484 0 R /XYZ 79.752 490.26 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 428.715 null ] >>
endobj
502 0 obj
-<< /D [ 484 0 R /XYZ 79.752 479.301 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 417.756 null ] >>
endobj
503 0 obj
-<< /D [ 484 0 R /XYZ 79.752 468.343 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 406.797 null ] >>
endobj
-504 0 obj
-<< /D [ 484 0 R /XYZ 79.752 457.384 null ] >>
+17 0 obj
+<< /D [ 474 0 R /XYZ 79.37 383.071 null ] >>
endobj
-505 0 obj
-<< /D [ 484 0 R /XYZ 79.752 446.425 null ] >>
+504 0 obj
+<< /D [ 474 0 R /XYZ 79.822 277.701 null ] >>
endobj
506 0 obj
-<< /D [ 484 0 R /XYZ 79.752 435.466 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 226.622 null ] >>
endobj
507 0 obj
-<< /D [ 484 0 R /XYZ 79.752 424.507 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 139.677 null ] >>
endobj
508 0 obj
-<< /D [ 484 0 R /XYZ 79.752 396.294 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 128.718 null ] >>
endobj
509 0 obj
-<< /D [ 484 0 R /XYZ 79.752 385.335 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 89.593 null ] >>
endobj
510 0 obj
-<< /D [ 484 0 R /XYZ 79.752 374.376 null ] >>
-endobj
-511 0 obj
-<< /D [ 484 0 R /XYZ 79.752 363.417 null ] >>
+<< /D [ 474 0 R /XYZ 79.822 78.635 null ] >>
endobj
-512 0 obj
-<< /D [ 484 0 R /XYZ 79.752 352.458 null ] >>
+473 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F73 267 0 R /F19 182 0 R /F70 183 0 R /F81 505 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
513 0 obj
-<< /D [ 484 0 R /XYZ 79.752 301.692 null ] >>
+<< /Filter /FlateDecode /Length 3412 >>
+stream
+xڽI9W&;P(eU50gs9\{2٥Lfl ƞo{o}o| 7`~x7뙴oƍxs~|WR7~\/~+`+BZx ApːLTK9X² # }Kc:iIQjĤEF)sZ*Vqas [ݰ+Z#%mBN8
+ddC"ك+7DL8%B3lśb -3J͔f<e$@deC:9oF(NEY"1A'h k\ajSAp#^J ҆\ꕰYuTLE~|/ZZYUhNIuiWgY#y&jDL̕Pʪ :oz]pwvL(1j>ϬYP*#<9ZH& `(,l9J(@aOPJtE:IBqH<˙Rʬ|Di2N1h%4@y4D\a21.oM8խf7 dߩ6TSA0z[ֳp{BO0RwrQÖ&L϶7] .a- AH:8s 届8R &,ws-- yj"%ߒdf`:F Q-(3Bݛz&!Qy;[e( P39w&9y"9D̫C\;I L.$1E3[4}Tu5]  #i`"{1pH((K+H`4
+L gye3dk@bjU/{TLbIe/Ӻ.ͧnJʉWȨq6#w?@F0Y_{YizQ&9 ga娄+ύQkQIu|ڣL{ɸ2
+iU\MRH(e'>|o wJ|j'{Ӡ022 OƢjo*0az1x
+
+Nyfo3;aʃ*_ASkx/:σ|Եtq LzXIyj|r:edf|pLk"UrR*y[7"+Ya
+!1QdRt֌
+ώCnψ}Ʋp$@kfH`$bWѣDQ$ZMRKp})QhfzH^G$X1iĤ.rDͤX\;7οsTY\j)o#QUُtĀ雡 ~X !JIߠ1a\DE/z?L!خ4d|W/JxWA܉QX2&34X*R$էkJ
+ {ŷ<z :$:G].1m}Cgx0?Z?9uE]x9q%]E>|OpN6e[Rl
+A 
+G;3ay[Uo񸚫
+endstream
+endobj
+512 0 obj
+<< /Type /Page /Contents 513 0 R /Resources 511 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
514 0 obj
-<< /D [ 484 0 R /XYZ 79.752 273.183 null ] >>
+<< /D [ 512 0 R /XYZ 78.37 808.885 null ] >>
endobj
515 0 obj
-<< /D [ 484 0 R /XYZ 79.752 262.224 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 743.23 null ] >>
endobj
516 0 obj
-<< /D [ 484 0 R /XYZ 79.752 251.265 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 692.252 null ] >>
endobj
517 0 obj
-<< /D [ 484 0 R /XYZ 79.752 240.306 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 681.293 null ] >>
endobj
518 0 obj
-<< /D [ 484 0 R /XYZ 79.752 229.347 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 611.774 null ] >>
endobj
519 0 obj
-<< /D [ 484 0 R /XYZ 79.752 218.388 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 600.815 null ] >>
endobj
520 0 obj
-<< /D [ 484 0 R /XYZ 79.752 207.429 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 555.206 null ] >>
endobj
521 0 obj
-<< /D [ 484 0 R /XYZ 79.752 196.471 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 516.182 null ] >>
endobj
522 0 obj
-<< /D [ 484 0 R /XYZ 79.752 185.512 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 453.249 null ] >>
endobj
523 0 obj
-<< /D [ 484 0 R /XYZ 79.752 174.553 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 390.315 null ] >>
endobj
524 0 obj
-<< /D [ 484 0 R /XYZ 79.752 144.39 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 303.471 null ] >>
endobj
525 0 obj
-<< /D [ 484 0 R /XYZ 79.752 133.431 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 292.512 null ] >>
endobj
526 0 obj
-<< /D [ 484 0 R /XYZ 79.752 122.473 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 253.488 null ] >>
endobj
527 0 obj
-<< /D [ 484 0 R /XYZ 79.752 111.514 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 242.529 null ] >>
endobj
528 0 obj
-<< /D [ 484 0 R /XYZ 79.752 100.555 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 191.551 null ] >>
endobj
529 0 obj
-<< /D [ 484 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 152.527 null ] >>
endobj
530 0 obj
-<< /D [ 484 0 R /XYZ 79.752 78.637 null ] >>
+<< /D [ 512 0 R /XYZ 79.822 89.593 null ] >>
endobj
-483 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+531 0 obj
+<< /D [ 512 0 R /XYZ 79.822 78.635 null ] >>
endobj
-533 0 obj
-<< /Filter /FlateDecode /Length 2129 >>
+511 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+534 0 obj
+<< /Filter /FlateDecode /Length 2848 >>
stream
-xڵY[~?@j]wJ H$H}؇Iap-[H^8Ë.Z
-IDIO$:x쭜FW@ZcYm^n ]}͆#_޸jL"G<$i&a1>dz35n<Ӏnڸg6L[]3`Ƃ47$ј,9,#sc׽"ߠ=
- =Шg:
-Cey0`V+I&BMbŹyY+?j6vۥa*-T`߹Y9$]x6{xؙdi'xp9^*%Ɏu)Mj>) S=G gx3Gt
-P|xw7sԩJeI}O䷯t'N "RuMx*$o K}*]eU"rW[3Z%n0!TȀgB™,2Dn03E'TC xp6{}cSڄF[/#`wd {(s=Ѫ?U.]Ny Vb_=a.!
-&wzO7[}wz^jژ`gQ psN;
+xˎ,,ÀY g߂\S$GQʋ`nbIs?ޢț(yt~+)GRoAiždKOL^iԏ~Ҫ MB3@J^A9zZ(*j3|t@ϗ}fBC_QMPeq2m>rAG
+i|@@ DdČWoO.bBѷP
+=ڛ">&
+%?rZK[0'+מN)*}EUrP{}D߹ٴftasáEiM!)]$2*5x6,U`F eV Jڑ(EZal<Q :CK`̦;  O+YȹnE
+a[/,*"~z
+&08 LTRxǡPA
+[E c 6y \WU#uV4vKy%x.5gOIAR[lvx'o?Cg%8Zu7 h H
+IGoՑJwXx4cPugE_Ms-aO[MVcP).Lйbo"ϡT^x8\`VXU,q 1-ɐ3"(ru[_AFtD% . :+K"?gZYujJoJ^hJxHZk:;xSDεx|R
+maVe(Ra|:ԅt*gARK< s囫\pF6(9#%Re(r1($qg<rjQ{wMycp,d~.N43%&)4HUJTsF
+oUo'4X=ϡxװK':`svvLni#{{ b ےxF,̯j̽uuOj>+UltP9%Һʕ*N)j> <ZO!`겔A*(+P4a-3 "=jD&*cזmP[5>w>{=t@5|̱嗄ؼ9 J/E]"p! P} l|zԐŧ-'Ŷ#kߠ 'S+ftBaJʳ>TǏraBL*pTK%sho!1qb0XdNFF3Q!W&1VD8z!E?Kx)2jEb|O`"dߣgYg`PJ6Z+)#̐'<%"mf:wu29d"kK}YIa5Biày7gqorasASmWT uB=1}gXgHr޹9P1yJxѢP)#7%,)6x~VaBӝ'5j9)Sp[궗;0]>I5+ RSTS[~LX_H>k/ l6 BӒUqQP@1''s{o U+BȌY<SAyM $Tǔų7@\pu1\ͥ{4~?|tK 3Mq>Q]R'_|UE*ҷ{#u4VS$LItUFOr `iw@A3*JS<.5۵v"8>W0(/\^f*(ԉZB(8nU80IeP( V͜qkd[d_jgetlRvR?0 4B:=Q[1o=,}|(H[rɈeԇi4 p%4]!PSPvN)A~sMr͏@Hq97à
+8m2
+]l,YkbcmMhWc_(5O|tlWb?>,SKza^7*y!Sir#425+~}#ݮ6*[*bP
endstream
endobj
-532 0 obj
-<< /Type /Page /Contents 533 0 R /Resources 531 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
-endobj
-534 0 obj
-<< /D [ 532 0 R /XYZ 78.37 808.885 null ] >>
+533 0 obj
+<< /Type /Page /Contents 534 0 R /Resources 532 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 202 0 R >>
endobj
535 0 obj
-<< /D [ 532 0 R /XYZ 79.752 742.929 null ] >>
+<< /D [ 533 0 R /XYZ 78.37 808.885 null ] >>
endobj
536 0 obj
-<< /D [ 532 0 R /XYZ 79.752 731.97 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 719.137 null ] >>
endobj
537 0 obj
-<< /D [ 532 0 R /XYZ 79.752 721.011 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 679.015 null ] >>
endobj
538 0 obj
-<< /D [ 532 0 R /XYZ 79.752 710.052 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 668.056 null ] >>
endobj
539 0 obj
-<< /D [ 532 0 R /XYZ 79.752 699.093 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 615.979 null ] >>
endobj
540 0 obj
-<< /D [ 532 0 R /XYZ 79.752 688.134 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 551.947 null ] >>
endobj
541 0 obj
-<< /D [ 532 0 R /XYZ 79.752 677.175 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 499.87 null ] >>
endobj
542 0 obj
-<< /D [ 532 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 459.748 null ] >>
endobj
543 0 obj
-<< /D [ 532 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 448.789 null ] >>
endobj
544 0 obj
-<< /D [ 532 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 396.712 null ] >>
endobj
545 0 obj
-<< /D [ 532 0 R /XYZ 79.752 595.482 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 344.635 null ] >>
endobj
546 0 obj
-<< /D [ 532 0 R /XYZ 79.752 584.523 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 292.558 null ] >>
endobj
547 0 obj
-<< /D [ 532 0 R /XYZ 79.752 573.564 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 252.436 null ] >>
endobj
548 0 obj
-<< /D [ 532 0 R /XYZ 79.752 562.605 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 212.314 null ] >>
endobj
549 0 obj
-<< /D [ 532 0 R /XYZ 79.752 551.646 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 160.237 null ] >>
endobj
550 0 obj
-<< /D [ 532 0 R /XYZ 79.752 540.687 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 144.539 null ] >>
endobj
551 0 obj
-<< /D [ 532 0 R /XYZ 79.752 529.728 null ] >>
-endobj
-552 0 obj
-<< /D [ 532 0 R /XYZ 79.752 518.769 null ] >>
+<< /D [ 533 0 R /XYZ 79.822 78.635 null ] >>
endobj
-553 0 obj
-<< /D [ 532 0 R /XYZ 79.752 507.811 null ] >>
+532 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
554 0 obj
-<< /D [ 532 0 R /XYZ 79.752 496.852 null ] >>
+<< /Filter /FlateDecode /Length 2793 >>
+stream
+x[Ɏ#9WZڀD6ki:ڨ
+CspUZHz\DN/^?MgH?Lٓ5q#N{ʹdTxj|v G -;sE~_SKJ,SWBZ9Py)9f^(0|3~T)mzGmH|Ws{Ǎ3oEƱeRyTE
+TU9b_qcjΙ@6[{f npՁ9$?ZdX9nK~^3Wh4Sӎ VKq;d/LjuJ3-Jj'W1?oƞ\ЖQ'"`JEB:aE~唑?e:緤sw-mV;15r "[QʼB<2hYa;K2!޵Va%BP~Z)^=;ٝP62 ayXn|AF@,q[+rK۰DCSj1pSA:zu7A\ho|{VN7ЫP-+ٻkz:"LPrYɤ7fe¢uhAOZg>ZS$\P<5%<%T":{ic겠Z2a$ך#$a ESK'B-Y":EW~M#gF
+1k8~ !ū@0?]AͼtК "P R>BN }#UY0F@Lb a.D7ɀ,`t8D!Uvd݈C[
+SCy}J5hZAW`B<Xb*BQu? Ȭ#gy:K<XK\e=.11"~k0ZsTߍaNصK*B0'
+앵T9ڵl'ի"<C0cVY4μbY8F4+&T6"
+`0: [5kigQRЬ>M
+;W*JsX "T0|V+~%hcm.V#1|$%dZ,#*U$qIU` tC !1[ƧJy,٠~u"WάG?TO೭lq n+ٳ74rfK5oj,xKFJG&֘
+1YBu;SllԌ; UXM5Tr挙f4jAxCrYm*;z!/mM2X
+endstream
endobj
-21 0 obj
-<< /D [ 532 0 R /XYZ 79.37 471.397 null ] >>
+553 0 obj
+<< /Type /Page /Contents 554 0 R /Resources 552 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
555 0 obj
-<< /D [ 532 0 R /XYZ 79.752 364.504 null ] >>
+<< /D [ 553 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+556 0 obj
+<< /D [ 553 0 R /XYZ 79.822 742.976 null ] >>
endobj
557 0 obj
-<< /D [ 532 0 R /XYZ 79.752 311.702 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 690.47 null ] >>
endobj
558 0 obj
-<< /D [ 532 0 R /XYZ 79.752 223.035 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 659.931 null ] >>
endobj
559 0 obj
-<< /D [ 532 0 R /XYZ 79.752 212.076 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 648.972 null ] >>
endobj
560 0 obj
-<< /D [ 532 0 R /XYZ 79.752 171.229 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 594.522 null ] >>
endobj
561 0 obj
-<< /D [ 532 0 R /XYZ 79.752 160.27 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 553.774 null ] >>
endobj
562 0 obj
-<< /D [ 532 0 R /XYZ 79.752 107.468 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 524.981 null ] >>
endobj
-531 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F78 556 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-565 0 obj
-<< /Filter /FlateDecode /Length 2969 >>
-stream
-xڥZo_@2OC 4+ Z-6#8>#{gvI1E.9;3XFUM{{a ъx"Ww\?ovY}U7<xr%<EqsY
-&^_=TK^WmS'SfuCG:ʾ[Y~弼V4Jr?i[_M.Ssɸ!_'g#3]]q%`:ROOǕeBȐy|wj:'$JJ)Ye9h`W˕bR ل!0Ƶ%fRr{,Hb`wˉ@j 7e؀Яb<I:"Mng|Mz"Pk!ݶ ] EjU8Yz@/2zz0D zҢ%lmHqqe,@I!-}OE|\6 E}" m1 AnPO&9ڊ!-]zLLo9mXXj)/qH{M/\SAI=j'!) !$cio~OԡM Ni #h+Ǻ"޻lwigM$=R?.yT&ЩjiؐT %Ci$y
-39h$aQF]v<a2T8\kѢ@vCpHw"E"i{/WFp߁n2)B2Y7GBm#-vJTMb2/&U2L)R?Aɀ AI9y53DHA
-h h*v1.j! x P6v~r@xLW^G(P_ &t d8Doh=<cR%^{@%`
-r9\uj"L2`"H^r'יL =g#0a`P&T^[j! ]G~kIdx [ ȗ(4ݩX1fLO}
-AڤotAKvk  d2dћ2:لLǴh|opS9hJh&E0v Hqe.MJeJ(] 0YACi դJB>
-bH2sN- kz2$;s1V
-@ɐzp iQjWG3i5Cɨ䆯 aN?t.xDf<E4/= ϔ!T%:#,.-|,ON:)'+w҆~#{gP ax_{γ ݧu6s<9yD2Ss(hEhH,`[@2K< 6?mgzۈī=&AUMʾcᎠ\jXf O/r{&"aJ+G_](a}}Z Q0p_ͺ}eR䚩hZE_wclPM+)F-:h| N2.}=gYAHK3 V^{?
-endstream
+563 0 obj
+<< /D [ 553 0 R /XYZ 79.822 472.475 null ] >>
endobj
564 0 obj
-<< /Type /Page /Contents 565 0 R /Resources 563 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 206 0 R >>
+<< /D [ 553 0 R /XYZ 79.822 461.516 null ] >>
+endobj
+565 0 obj
+<< /D [ 553 0 R /XYZ 79.822 397.055 null ] >>
endobj
566 0 obj
-<< /D [ 564 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 386.096 null ] >>
endobj
567 0 obj
-<< /D [ 564 0 R /XYZ 79.752 742.929 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 375.137 null ] >>
endobj
568 0 obj
-<< /D [ 564 0 R /XYZ 79.752 731.97 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 322.631 null ] >>
endobj
569 0 obj
-<< /D [ 564 0 R /XYZ 79.752 661.235 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 292.092 null ] >>
endobj
570 0 obj
-<< /D [ 564 0 R /XYZ 79.752 650.276 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 281.133 null ] >>
endobj
571 0 obj
-<< /D [ 564 0 R /XYZ 79.752 603.452 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 270.174 null ] >>
endobj
572 0 obj
-<< /D [ 564 0 R /XYZ 79.752 562.605 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 259.215 null ] >>
endobj
573 0 obj
-<< /D [ 564 0 R /XYZ 79.752 497.848 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 248.256 null ] >>
endobj
574 0 obj
-<< /D [ 564 0 R /XYZ 79.752 433.091 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 237.297 null ] >>
endobj
575 0 obj
-<< /D [ 564 0 R /XYZ 79.752 344.423 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 194.606 null ] >>
endobj
576 0 obj
-<< /D [ 564 0 R /XYZ 79.752 333.464 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 142.1 null ] >>
endobj
577 0 obj
-<< /D [ 564 0 R /XYZ 79.752 292.618 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 131.141 null ] >>
endobj
578 0 obj
-<< /D [ 564 0 R /XYZ 79.752 281.659 null ] >>
+<< /D [ 553 0 R /XYZ 79.822 78.635 null ] >>
endobj
-579 0 obj
-<< /D [ 564 0 R /XYZ 79.752 228.857 null ] >>
+552 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-580 0 obj
-<< /D [ 564 0 R /XYZ 79.752 188.01 null ] >>
+582 0 obj
+<< /Filter /FlateDecode /Length 3192 >>
+stream
+xɎ#>_xFq9-596wKiW(N7~OSc%~ofSfP0?qs|Ci+p`Gwi躑?z>|
+٨V<}69MXaGڛWd :ɤmL/<<jW]!Kd<4$s2to
++#6Nt)yg:DfDg 8`upY q_ZH]KrdFO{= UfHQiyO=FrȜ3k,oXT7%"UoU1}Qr-JP3Iƻ؈|2n-b
+o u8B\Q''BCԈh8QG̑wg
+k5.RD4͵Uc]J*Ԛ;jO6%FS)werT~Idwa|bV&[#kٷ;0~ u&nJ.@(xքI0kfB]bP^cƹшO3g)'_LLz5(ޞz{brgR1)W]7:zύU{/$y~D~ lE638Q_i|Ȑקf&|<AR5+:Dl(Qz@ }_V-h?ReɊ/KZ)Um:/3v J!r\3x&
+5qFujaGӕ(mXM"B#ja|y-U=z*%~ߘQo-$j"fW: q3*Jt a~|Jѱ$GE.n4fgɘ Pn 0f=Fti弔Sih*T7*v>EhCįeqx)UtXAmwe A1t]8XC֠iP> ~x5t-5bjʼnR,mc!}pqztX2ލkGϼ!a
+endstream
endobj
581 0 obj
-<< /D [ 564 0 R /XYZ 79.752 123.253 null ] >>
+<< /Type /Page /Contents 582 0 R /Resources 580 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
-582 0 obj
-<< /D [ 564 0 R /XYZ 79.752 112.294 null ] >>
+583 0 obj
+<< /D [ 581 0 R /XYZ 78.37 808.885 null ] >>
endobj
-563 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+584 0 obj
+<< /D [ 581 0 R /XYZ 79.822 743.39 null ] >>
endobj
585 0 obj
-<< /Filter /FlateDecode /Length 2573 >>
-stream
-xڵɎ>_ѷPAvs2 K8l U"";$5=jXl %6{Dݏ憎~,Iw|w.͉HRx׃i6<Sp0qUﮅۦ/tKu[Iru #UL1m`Wp;Ȳ=f?JN/Q)%Yb:?2!̠8J@bs MI{_4%uDŧqL7eٞ{D+s¨vZK}tP xzYf(e)J.,H'(7B'/:x-<Is2/.R”9̢DKf4%Zd10iw߾긨w(34`fuxR<
-4;3[M?t=Kʡjl'vl9v~YdB<QxK
-Edb!arXjp,իVȘGxí5 oώ߂#Km'mIZ<OI7]
-UNaop|Ƅ
-x!V,)9#gJb/zư"w ^SHe8JѸgckQ;RPNut"ǚd_ҌpTI~
- ʚʍ2ĭ's'ӔW2QGoѲdъqTuYDacᡮa6k%!^47H}vONza 窘!k1/
-KT'&$aQ
-%[XHc+\tÒYxćJvp62|Y#3v!ժ"w6Â'uU,,vIWcQ*#
-FL!_5cY{Li,hC,\ -x#8\s :&}e9B!/Av%ejF 9+`Zsxl"9Ϧ-#X+꼮8 ,ޣq76~ 9ck.E ۵m}1T4:+:M2*({]= hn4eD=ӿߛP_NGuC>JEE Y;l GŽfBn֓}3\yS. ிH2"N+ƿy:Ǽ@[z5SR{ \Xl
-E4VFzJI94ه(ྪVIv!V,܄v@H.e0hƠ#إ2ܫpU9.4'ZH)_MP 埓(ލWZXaa6߇v(#ޢgCtsޢU/p"ܖC4p`GS4}^c3>БEi|hѵn&ڇ gYf&OM2/J)u"֙S>5-nʞ@1m ?T"C} w \5wן%vձIU맺j0`r3RѾ-E1e)* e3Xv
-$@*u[A=w}IOzyjc_{ 3C}| ]ưj6E Zv$\^/>&̚Bi>>a8B 7Aukqrb``~0]cejl~4-c֒?7l" ," Uu
-B*8u;U]=$U펄+әhIC@9%uUC)o fӸÀ]X&~O C,Xy$_S: [OOvSh RTU$߮X 5W󩏹vtδ&<BOm [9UvMM 1*-5BMA,sX5U0Bb!2x׹z^k<LA9Hbqr-shcE / </y}|yjuGk΁=>vrIWւNՓkhj|,O]wn%TBt#q*
-@
-#YRلK2ql.<(sĉ-LC<7%Soeww)9\5r+ *|÷2uy
-bzRvv>OA/qFXCï4Ԓj
-endstream
-endobj
-584 0 obj
-<< /Type /Page /Contents 585 0 R /Resources 583 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 581 0 R /XYZ 79.822 732.431 null ] >>
endobj
586 0 obj
-<< /D [ 584 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 704.789 null ] >>
endobj
587 0 obj
-<< /D [ 584 0 R /XYZ 79.752 719.139 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 629.326 null ] >>
endobj
588 0 obj
-<< /D [ 584 0 R /XYZ 79.752 679.017 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 618.367 null ] >>
endobj
589 0 obj
-<< /D [ 584 0 R /XYZ 79.752 668.059 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 607.408 null ] >>
endobj
590 0 obj
-<< /D [ 584 0 R /XYZ 79.752 615.981 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 596.449 null ] >>
endobj
591 0 obj
-<< /D [ 584 0 R /XYZ 79.752 551.949 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 585.49 null ] >>
endobj
592 0 obj
-<< /D [ 584 0 R /XYZ 79.752 499.872 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 574.531 null ] >>
endobj
593 0 obj
-<< /D [ 584 0 R /XYZ 79.752 459.75 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 524.508 null ] >>
endobj
594 0 obj
-<< /D [ 584 0 R /XYZ 79.752 448.791 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 474.485 null ] >>
endobj
595 0 obj
-<< /D [ 584 0 R /XYZ 79.752 396.714 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 424.462 null ] >>
endobj
596 0 obj
-<< /D [ 584 0 R /XYZ 79.752 344.637 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 413.503 null ] >>
endobj
597 0 obj
-<< /D [ 584 0 R /XYZ 79.752 292.56 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 339.569 null ] >>
endobj
598 0 obj
-<< /D [ 584 0 R /XYZ 79.752 252.438 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 328.61 null ] >>
endobj
599 0 obj
-<< /D [ 584 0 R /XYZ 79.752 212.316 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 277.058 null ] >>
endobj
600 0 obj
-<< /D [ 584 0 R /XYZ 79.752 160.239 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 237.46 null ] >>
endobj
601 0 obj
-<< /D [ 584 0 R /XYZ 79.752 144.541 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 175.482 null ] >>
endobj
602 0 obj
-<< /D [ 584 0 R /XYZ 79.752 78.637 null ] >>
+<< /D [ 581 0 R /XYZ 79.822 164.523 null ] >>
endobj
-583 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+603 0 obj
+<< /D [ 581 0 R /XYZ 79.822 78.635 null ] >>
+endobj
+580 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F73 267 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R /F72 266 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
606 0 obj
-<< /Filter /FlateDecode /Length 2511 >>
-stream
-xڝZKs6ϯmCARI%U;svvUD٬P‡=k A˔lCxuW?O>~*!bJnw(WtJ+JbEWtu^_]3#!s&T2%"wm^€FUOۼ*7 .huV^18#U^<#e>Ρ_,>uRDŽQ5yYX91E #`WEqq
->?EFxY*id[b!D
-"{Tȫ/WVm
-BKePj3x)M@S\#7Q$[HAjo>g@ڷ/^K$N11==ё+ґoQ뉐JޜqEP@ lLTϩ!<&@Qbzv#d˜ho4((bjxMߧ=ÛoƠ3PH'Cj˼똔ħ>n(l=dq&NmzNMvx^ 'm:۴ų{tw_O5ϾA-cg($s)CU@p}АSӋXGcC|h:!WxJ!N,$lDNv9 5!>DNHfl hg75wю+uڳ
+<< /Filter /FlateDecode /Length 3081 >>
+stream
+xڽ[;8W8 K类[dWFw?\@ɒ} ~/q7`p_z&_s8RpEZε\\n!|[sƗ&iM2?5?cx2BIH^xON+¯L2d8[6Nʘ6l8/ -cZQY ߵIߋA]?H|sը3q1vZL͛Ե%$C4tA+.y'$P]g*jᣃpnsތR@)EG,Ȟ8?߿ke$?X-X޶xe.1)Hq} `q 8.,9b 3zz*,@gUS+YyulqZf4OYVxh0Ji%¶۳q+Q 5{+^7&3M
+w40~lg`PQZTK0hXC~—"|%5ˠMRj^k
+
+OEx挞Bk rA䭮dX`c;= O>mW2_7]nKSxB<{rײmŬ|' 2;YT7,tIgA|xKӤc; ơ~4mXc'vAP5FҊv$$]K($&M%*˂fFMfKy^h# Ua< nAz:< y 
+:Lh1;F`x[*g* Jx,W
+?bPj#҃hg6 .VuqmI8#GuQ%̸M^0n|:'VZg
+kv:~r71?t{5TboV)=YA %^*iX4XgDRg(X YJ;o煋o$LhmH||nf`f+t;0}pd̄p*[5Ŷk $~KcrYztTdi}+i)+!6oAfNy~Z3<'NzpQsI+
+iyJLMPAu.x'Hox$0XkQcbI%NYw̗»BPU'
+٪#g9\A$ Qld텼ѳZ)`:w"ЬZ˦5PPn$ u'z?B%ˤ䷴zilh6e+IUZ#k^ԀTntka4^s44T
+8'g9*}z%YR
+.+asvDٕi%bQzϠ?@jfV6cX|ZhR)pկˤ`V
+Gp
+)o= `\ yYh)}vo6i ]~J蒤
+Fks%Y@j(3͊i7WF,+mf`fov3}!v4:/*mTߢӂkCB203?AC/,ɏGGPԙ.d^L4G8lézjh N<TQ-6<K:˘Aʋ.TGM+{8&[zU\ Eʛ/W^ &\ +w:EJ+>f4HyT
+ńKm
+%)]ɡU
+T)Q6fqA18B^_k˙3S;B^ϘN}8,x&jmML5L?Wb:
endstream
endobj
605 0 obj
-<< /Type /Page /Contents 606 0 R /Resources 604 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /Type /Page /Contents 606 0 R /Resources 604 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
607 0 obj
<< /D [ 605 0 R /XYZ 78.37 808.885 null ] >>
endobj
608 0 obj
-<< /D [ 605 0 R /XYZ 79.752 742.978 null ] >>
-endobj
-609 0 obj
-<< /D [ 605 0 R /XYZ 79.752 690.472 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 755.023 null ] >>
endobj
610 0 obj
-<< /D [ 605 0 R /XYZ 79.752 659.933 null ] >>
-endobj
-611 0 obj
-<< /D [ 605 0 R /XYZ 79.752 648.974 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 703.068 null ] >>
endobj
612 0 obj
-<< /D [ 605 0 R /XYZ 79.752 594.525 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 638.593 null ] >>
endobj
613 0 obj
-<< /D [ 605 0 R /XYZ 79.752 553.776 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 627.634 null ] >>
endobj
614 0 obj
-<< /D [ 605 0 R /XYZ 79.752 524.983 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 575.679 null ] >>
endobj
615 0 obj
-<< /D [ 605 0 R /XYZ 79.752 472.477 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 487.858 null ] >>
endobj
616 0 obj
-<< /D [ 605 0 R /XYZ 79.752 461.518 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 435.903 null ] >>
endobj
617 0 obj
-<< /D [ 605 0 R /XYZ 79.752 397.057 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 383.948 null ] >>
endobj
618 0 obj
-<< /D [ 605 0 R /XYZ 79.752 386.098 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 372.989 null ] >>
endobj
619 0 obj
-<< /D [ 605 0 R /XYZ 79.752 375.139 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 321.034 null ] >>
endobj
620 0 obj
-<< /D [ 605 0 R /XYZ 79.752 322.633 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 281.034 null ] >>
endobj
621 0 obj
-<< /D [ 605 0 R /XYZ 79.752 292.094 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 270.075 null ] >>
endobj
622 0 obj
-<< /D [ 605 0 R /XYZ 79.752 281.135 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 259.116 null ] >>
endobj
623 0 obj
-<< /D [ 605 0 R /XYZ 79.752 270.176 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 248.157 null ] >>
endobj
624 0 obj
-<< /D [ 605 0 R /XYZ 79.752 259.217 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 196.202 null ] >>
endobj
625 0 obj
-<< /D [ 605 0 R /XYZ 79.752 248.258 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 185.243 null ] >>
endobj
626 0 obj
-<< /D [ 605 0 R /XYZ 79.752 237.3 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 174.284 null ] >>
endobj
627 0 obj
-<< /D [ 605 0 R /XYZ 79.752 194.608 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 163.325 null ] >>
endobj
628 0 obj
-<< /D [ 605 0 R /XYZ 79.752 142.102 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 133.429 null ] >>
endobj
629 0 obj
-<< /D [ 605 0 R /XYZ 79.752 131.143 null ] >>
+<< /D [ 605 0 R /XYZ 79.822 122.47 null ] >>
endobj
630 0 obj
-<< /D [ 605 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-604 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 605 0 R /XYZ 79.822 111.511 null ] >>
endobj
-633 0 obj
-<< /Filter /FlateDecode /Length 2850 >>
-stream
-xڵZn}S"1W0"A2 [z=`=UEԢ,O]*]ݾ#MRJ&;
- R)JIJbInWn.蹨죶k,ND׺:ۅy}gA)TD:bШ> OOSFR>9K<ɫ_ ZTsSvü88qYn(!RBc&s'ORHUc2; 5  3NYf*`}pJFf}:l`K1&ߦ Ӛp6%7BSPgZr$QV\[Ano)+"1Ip8>$ՔN vxB$s0ZZyy(+ CK@x1%) e?S.rW?]$,1Ov>
-x؇3,"A_j
-:tDM b@(
-5!˹K( PcM|cG Ō}6
-Bn˜Dpv]8$*!<½bvwAo ȲTztoJxv-8G|J"j}Va)Bn G:@
-Oe$Dΰ&GOY9 g&)'}<Z瑱s1Kn<;\5O]QWSAOBї\N v
-\9+DE('џqbp0QqOCwv&j0a$%_ &(2?H$
-=H%2RO;[f?3o
-#咨&ZP1?x 2U*<M'V9|{އWk0+b,Z&)>2e31P,B ,> ;qӒ+(6)8]RpՆuV0_5Ŕ
-/E}j˗uk00QP#`QSnU!R}Db); G:lTcme͉_yۻ;몷01œ!4!>ݟَ7eQ-yAX)OjVI<?|eaZ5$21e ɶ" =~Mti7siID&EKpj66fs*MdZJOқμ9yl0%ˣ^#R`K4tv}_J
-endstream
+631 0 obj
+<< /D [ 605 0 R /XYZ 79.822 100.552 null ] >>
endobj
632 0 obj
-<< /Type /Page /Contents 633 0 R /Resources 631 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 605 0 R /XYZ 79.822 89.593 null ] >>
endobj
-634 0 obj
-<< /D [ 632 0 R /XYZ 78.37 808.885 null ] >>
+633 0 obj
+<< /D [ 605 0 R /XYZ 79.822 78.635 null ] >>
endobj
-635 0 obj
-<< /D [ 632 0 R /XYZ 79.752 743.392 null ] >>
+604 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F25 609 0 R /F28 611 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
636 0 obj
-<< /D [ 632 0 R /XYZ 79.752 732.433 null ] >>
+<< /Filter /FlateDecode /Length 4017 >>
+stream
+xn;WD@&ǾV_ޢ(A
+'DRߤ煿_3o" "^gҾX#7_o6%}R
+O]1퍍Oۛ6^}: "8X|`xyQGumUxTk;UhFLigUXG"}<4ہB?"y\\yd>m_?¯B0À@3|{VHCUZ2 aڥ߿0 yZXeF E#Pa>}q#"`
+%-J1Zdx42CnyY#ECb<"Y#HUeE7X"z::*Wi:dϣT3T@ST)3LN^Ȝ$-$[g2*,"ںHp,Jr\h<6BQ<LUYVeqIȏ`3مܤ죈[tɎKˎ"99czY:Jx*x#}FڌWL
+AMߒ6%I$m>i؛.}X;$H!#_!Q)(yiSUцRE UGW}̺UaR@`G&l)ij'ox A$Ӳ"FhYLdJE*(TWl ++] ȌtVKF)kqAjȧPmPJ *)af;Kq@&S~y!M =)X"B6=Ɵ
+Գ3D䉡Yt fOx/8Ё'}PAuX{˾_@PUWjgpHIO GOcA*˔u1jtF{Ua9jg<q̈\q P"<[BqЭ&hްTBt4JE589ؑeA)4􎟲خt^vNoK8) ~TW?ױf uvˡ"P>ǣJ#g{[҅4_*q#6J sV=x%Nٵ4zuyi-X9=e_[yy,Uky8K8=[]Zea<ybH8rX y1C!"*Үg%IMZ5XNG#t,!s4{q̺U.=b6b2vQEsY/57Qj6-j =ӑ܅79DoL5_}<q /߯(zQlOEp IJ8[!tMAI2kr+`Bdķ'KfoMзO>f.3(\ҙL=e
+SqNXzbjDr#1@?Coe8HFdI9Z u; .ӥ7g1azV0Ǒ Y4EoO?t+ bN,;ha yv nҎd!!T 0-A{#:ͼS+Y' n3NjoWpk˼~#7>5S3+$}x0Ht:A@ojׇVQDHp[🌼D k#R9P2EY,@]igS!qq2"oԞR2XJѲ1e9aNM
+C8g"{$\*n5t okUk:wv&ߊ;&\mqm-<)tVwTWjNfڧ/u ďK8ow i ozڛ'F!t.
+LaQqu4<Zqft:%Xy3u6NPHCqT*dl+ݸą\zrZ_#=0aMD (Y$+&ָdS
+MyV\npW ~t1N_N]fy%Y2ĒFzR"FFՂ,l΄݌Tqv
+¼{ tM[`Ky uzqAuO Ӗ^kׇ١0Y qE/%vd,_yi=h3i%fkJ1vƚ^*5PH^6?#c<I}r|s.Nݾ髣-3ZeP6rbJhEō2KP5ju͞,YqS9IJsn34BMzJ~TZX0^~}BHhv4
+.Ҩr0l \,811I^=9ULyM#˜斓Ë@1d􂟠i;^/֜_r3{{}ƶI=ײ3d-OeԹ#Юf]sK=H:__X)M0n)\]yRq\p&_ k=z+]Fp (~V]{͕s+*c ;s%|T;28PW 4Ύ6׫RH+cB1̋90(ܑ˃zHb\D~jEƧrs$M5(ؓ-: AJAm!;|coYG)Дf\p*P:O렧Er:f(HmA dgF(֋i6uȣ}"N2Q-=}ྲྀh'f:9=d^{jthDoS߅mc0܌' Y gx
+
+;AGL.?쿣(ں.X|0غ A+);M8{J3d ,AHKjمAg5f`&`y*p.Qz"f]Y?;3:Ur$pӒ?`'VZ9q$"65"(tj+B+~ P3u!gn]%҅lFWuPjr9K'>ic}<ӡerȄ)Sڥj3҇wq_Tn]餠/(۶Ϋy-loޕ&TjS<}p[U;KL-#𗁆"<B0O:(E>͝a|߳9{_^*
+endstream
+endobj
+635 0 obj
+<< /Type /Page /Contents 636 0 R /Resources 634 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
637 0 obj
-<< /D [ 632 0 R /XYZ 79.752 704.791 null ] >>
+<< /D [ 635 0 R /XYZ 78.37 808.885 null ] >>
endobj
638 0 obj
-<< /D [ 632 0 R /XYZ 79.752 629.328 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 754.882 null ] >>
endobj
639 0 obj
-<< /D [ 632 0 R /XYZ 79.752 618.369 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 702.08 null ] >>
endobj
640 0 obj
-<< /D [ 632 0 R /XYZ 79.752 607.41 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 691.121 null ] >>
endobj
641 0 obj
-<< /D [ 632 0 R /XYZ 79.752 596.451 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 614.408 null ] >>
endobj
642 0 obj
-<< /D [ 632 0 R /XYZ 79.752 585.492 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 561.606 null ] >>
endobj
643 0 obj
-<< /D [ 632 0 R /XYZ 79.752 574.533 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 460.984 null ] >>
endobj
644 0 obj
-<< /D [ 632 0 R /XYZ 79.752 524.51 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 366.339 null ] >>
endobj
645 0 obj
-<< /D [ 632 0 R /XYZ 79.752 474.487 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 307.559 null ] >>
endobj
646 0 obj
-<< /D [ 632 0 R /XYZ 79.752 424.464 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 248.78 null ] >>
endobj
647 0 obj
-<< /D [ 632 0 R /XYZ 79.752 413.505 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 190 null ] >>
endobj
648 0 obj
-<< /D [ 632 0 R /XYZ 79.752 339.572 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 119.265 null ] >>
endobj
649 0 obj
-<< /D [ 632 0 R /XYZ 79.752 328.613 null ] >>
-endobj
-650 0 obj
-<< /D [ 632 0 R /XYZ 79.752 277.06 null ] >>
+<< /D [ 635 0 R /XYZ 79.822 108.306 null ] >>
endobj
-651 0 obj
-<< /D [ 632 0 R /XYZ 79.752 237.463 null ] >>
+634 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F72 266 0 R /F73 267 0 R /F28 611 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
652 0 obj
-<< /D [ 632 0 R /XYZ 79.752 175.485 null ] >>
+<< /Filter /FlateDecode /Length 3726 >>
+stream
+x\Iod shDak5@} rM_C-^ArpJH>.?_o_x/W_<z/?/z&5q#^~oǹ}i9ׂsҏo`; Km'i'G7=
+ $ph\q״\ aldX> #KL_עkV
+H܇qQhAF[3RoqsgqsbsR6iQe#0jՙhɐ&nPy)*25M+؎dcH79s A0eͤ`YYLY 4T4<aJf@Xݬ) '|kJ;f$C
+T3呵RPiig$Bp\FJjgr7C*f - DC6$:٧r5!'F.f 65nЏjA0t4vi~
+ 3"KCG¶B2.(={*'t?&t8XFeOscC=oL9 }K }X`Z!ƭ M}ϭFN& M|4A24i5-ʤ'<*HwFJ'(bOI!#2BzC9fG(ݞ=w]_H' P>&Oc»Vٓ=UTc.c1!0-$!ӪȜ|¡}SBOsp b7;pMG=ov!fqoݽFyl%t^uIø3jy`n(K*\ʬd= T0h I{
+Om/`3\y?9fwyxyM.(+=S2$=u(R= ZÌU/耹ywv zQ?NvYi颒xefx<&2!LR?¤JDm
+X5:$)p8mvMƹmVyѥI&e.2;BtdkFc-yK)o84<)muu1P`e8(Q:O+) eٝ6Ӛ2֛VJ=aI-J9]YBݚَ-F) PQˡSՙ5R
+|oѹ=H-)=SR
+Z΃ lR)amq
+Ťʓpoǟc<i^,_PlWm6׫ +q nlw% T*ThtD,'0aP4PKŪi";1g#vrģѕ krIλ8caÁECVsc;xr%`Z&!CݰF9Ah!K::"<Fn n-VS'(I]Ad-`\3 ͓[1@wME.J%8I\fF%P{'@_G^ƥ3*ϦK3f5U
+u(ecCv@IKt
+kD3mIvޘ3fTfqOy*jE\b!za
+endstream
+endobj
+651 0 obj
+<< /Type /Page /Contents 652 0 R /Resources 650 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
653 0 obj
-<< /D [ 632 0 R /XYZ 79.752 164.526 null ] >>
+<< /D [ 651 0 R /XYZ 78.37 808.885 null ] >>
endobj
654 0 obj
-<< /D [ 632 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-631 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F75 317 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 651 0 R /XYZ 79.822 731.758 null ] >>
endobj
-657 0 obj
-<< /Filter /FlateDecode /Length 3025 >>
-stream
-xڥZKo6ϯm@̈o)$$EN`hhe[+TH({փE~,V}UE*yIn~?|3n2a/~c3&5%ܟn*n樂[aweĮo>
-+jʮm|{']S;|9CH"$RlcP*oMմ^x~>RLk 8[mvyY+'`ZذlD}p ӨKF,RN3`sI#Đ_o6M
-LDz<,\wiݓj{ƾX$Lp5^` /y x֩||;zZUEJ)_+bFOD`SaeOV'2"x% o$=`=0|]޹~'kL̛ܗMWt`wns.vqk~zx/G_o3B
-'*Ri</P%XdGL1yH##Y..7}^?{hniXS8:5K4{s
-Hvx*EC,/҉`O=@ѓa$o[ǿ/܁(\_NBJD^?H58]ki+s1).h
-k4]4/_u5`@Wޑ.Z?,fsX3`&(<1M=G.a J
-l;t<8<W%I:\B+`bR8,3p
-scYif>} $=6یC3ۄs,W`&83 3CXq@*8*u^t/=]/>z61/<?޺gs2,
-챬k*;PdgJo:\2Ѓ@hob}[m۴ޕV
-@X&
-8s&5kgQ)ĵ+/Z:$a.]%lT+[')K "5y;jC [$^O|WPDeXCSJ*PSg8XyV՜8zW5nZ;@uܒ遀@+s %kypuBkݷ1g"h^d;RHZ9kN~ZwE?DDd24ٵű@cKl-VBbQ'}9,sAL@=aUX.`DW VƗ`L
-*W=#YXv"KN|(~fL'WtwM4ggi0}RYr* c:3H6!槉EPweYd6~n˾w31d]?lq=mc
-m!L1ia!s\:s;wJ&f=-)U<!{jKt V3k`PiRկX]!x,`rH5^\ ?v@z>R,Y&YX %DpD(|['fL.tTA< 33~ۃCZ^iZ`ۧ͘P]ߟ*x z8_!-f*qa=@J#dƨXY>tՎ+<Ɲuve8Eȟ\O@?D-"Gb,ޣH.@:h@F-~7;^5MM>ko=(з+Itbju@¤L 1G)ikeE| re(lkh?6Ǘ/  [kA-d$MɌn@(Sعڂ0]<|c2PP"#C6O26|dֵL6 t{ ;/ g:i"viWf}Fn_rJ̪h"%rw E$0&
-d ?HCZu4Ư黴Hv˾ Ǽݶ L5n{>.{YfMd2`5]`oq4L%r8-+O'2wxP}ڞJ>OCو+V!sS<EsO|uVJTk
-,.c~\?x1xH~ÏVdnì dENM&{Al\et86#AGK<W *bXt
-m`
-m1گ$_
-endstream
+655 0 obj
+<< /D [ 651 0 R /XYZ 79.822 720.799 null ] >>
endobj
656 0 obj
-<< /Type /Page /Contents 657 0 R /Resources 655 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 651 0 R /XYZ 79.822 709.84 null ] >>
+endobj
+657 0 obj
+<< /D [ 651 0 R /XYZ 79.822 698.881 null ] >>
endobj
658 0 obj
-<< /D [ 656 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 667.159 null ] >>
endobj
659 0 obj
-<< /D [ 656 0 R /XYZ 79.752 754.884 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 656.2 null ] >>
+endobj
+660 0 obj
+<< /D [ 651 0 R /XYZ 79.822 645.241 null ] >>
endobj
661 0 obj
-<< /D [ 656 0 R /XYZ 79.752 702.082 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 634.282 null ] >>
+endobj
+662 0 obj
+<< /D [ 651 0 R /XYZ 79.822 623.323 null ] >>
endobj
663 0 obj
-<< /D [ 656 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 543.78 null ] >>
endobj
664 0 obj
-<< /D [ 656 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 500.103 null ] >>
endobj
665 0 obj
-<< /D [ 656 0 R /XYZ 79.752 573.564 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 456.425 null ] >>
endobj
666 0 obj
-<< /D [ 656 0 R /XYZ 79.752 484.896 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 445.466 null ] >>
endobj
667 0 obj
-<< /D [ 656 0 R /XYZ 79.752 432.094 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 434.507 null ] >>
+endobj
+668 0 obj
+<< /D [ 651 0 R /XYZ 79.822 423.548 null ] >>
endobj
669 0 obj
-<< /D [ 656 0 R /XYZ 79.752 310.55 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 412.589 null ] >>
endobj
670 0 obj
-<< /D [ 656 0 R /XYZ 79.752 299.591 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 401.63 null ] >>
endobj
671 0 obj
-<< /D [ 656 0 R /XYZ 79.752 244.797 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 322.087 null ] >>
endobj
672 0 obj
-<< /D [ 656 0 R /XYZ 79.752 203.95 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 278.41 null ] >>
endobj
673 0 obj
-<< /D [ 656 0 R /XYZ 79.752 192.991 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 210.822 null ] >>
endobj
674 0 obj
-<< /D [ 656 0 R /XYZ 79.752 182.032 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 179.099 null ] >>
endobj
675 0 obj
-<< /D [ 656 0 R /XYZ 79.752 171.073 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 111.511 null ] >>
endobj
676 0 obj
-<< /D [ 656 0 R /XYZ 79.752 118.271 null ] >>
+<< /D [ 651 0 R /XYZ 79.822 100.552 null ] >>
endobj
677 0 obj
-<< /D [ 656 0 R /XYZ 79.752 107.312 null ] >>
-endobj
-655 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F23 660 0 R /F26 662 0 R /F70 185 0 R /F79 668 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 651 0 R /XYZ 79.822 89.593 null ] >>
endobj
-680 0 obj
-<< /Filter /FlateDecode /Length 3209 >>
-stream
-xڥZo~SdǧH(G4~B0]VO+m%}נ{gЊZZ9_v)Ù I7 Da ~|?h$3LmLFx*7:els3_PH!Y
-3eŴrSO_|Nqeofwims}K2*JAFJ1휌oQdIdd^ cSŒ "U"i:;'kep*AǴ kd)AFJ1b>,d06J1[gDM5싫wBd[TUOeU;nC&b[msMrZg`Zѻuŧ|<܍7ծ=n8=7!0FDf*.wfB*Am$a͚mhQۦ3.\s>(nne5U^==VԦ;Xuqۏacqh뼪>AƵm{>p}*wXl&mˤ 7jWnDTTȶq_[Of%QȼޝW
-'jnmsѾWY('Yc62b'U
-XF&[
-܄f1Ǫ5cp'kteחgd>(:8Vm)w
- mi^i%(+ΖN
-LjhY:f= "@3Q\$˩ҜP-!>G4˩L**N
-i =#gl'HtNK`nqLi3xD z j& U< m nD{vB&$ʨqʚ
-;[p뫽K4x @4G؈߁}|L|+d줥ɈD.+/81q}
-Xmm ;]ݦPc/s5 Q xQBBbdYG{
-Һ8O'.;{ V$ +X4p>u
-o}rvAʄph$_K~apBۙw)fbp6omiDgD G|8 ioJeol|;QT|&-.)
-5_b&_Ђ;xŒ?CwT*V}6A|, t(?'m6-w&?\NՄ!1,Lrh}jǝ=arpZK`$rBT9) Ūc9?ovJ7]x4Dl zgkڛC߻fo-=pQ|y\t)ȅ
-wzzbxަI4Y 1~B;
-endstream
+678 0 obj
+<< /D [ 651 0 R /XYZ 79.822 78.635 null ] >>
endobj
-679 0 obj
-<< /Type /Page /Contents 680 0 R /Resources 678 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+650 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F28 611 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
681 0 obj
-<< /D [ 679 0 R /XYZ 78.37 808.885 null ] >>
+<< /Filter /FlateDecode /Length 2781 >>
+stream
+x#1߯P G`jt fF{`Vn^7K_B_<7/E\g^q˿9Wsi?ޤxv?(O ':ic,aVo+6<"<Iˏg`XW[3M)fZ&
+!3)mÒ0}D~-$^5Zun#YVQ,8襏]d3Y⢘wXt,yIɠdu1@yC@L(0H|B ǛwU _1?~~y9gäU!Ws@O;{1BeͮZ{d><yˊ
+NQ<'CY(<
+Rhf@
+n?ԡ@y]Gu+<u(͸-6PJ<H$-W\)芒H)ozSdNWoYMVueV1Sd *?>B:_Hna Ll/]>&[)ɤ[q|nj'Li$v{ƻfe?us\Ia?<*PSG^i P -T-׹"0f\2ey,Fr3?{)+"֪ɚmR$7罼$Io)ܭY5ŪDɮ?kj]lP[4[Oĕ)ń34]ł#Ah֞ڜN/·k"ru(JgIDc7`jJ[(I!f'-jpب[LR#zdJ4L|I ^^' ݁Q3+ea ¼5P˦zhp,3@.߲-I5- 0yw
+\
+,u2\ݿ5am*ߩ"a썧h %
+R |q2`YL{-ײ~}XK /6
+[zb$S܉!PA=QRI iwv_.ㆎjZ)-x;xlRNӒJ(7]낊,CI 5O o<T(Hc*0^MpHЕ>M1nRmiy쮔:A͊𴘣x^ yҕiRe:AvBQ+hզZ53b<#=Šsz\JQX`D,e~<:Ą§Y
+)7Nk,嵽R 9.g^Y6HzI]S]Xm'=.~hgD܎R83<@ Xb&1)6n3ՌGw:?=RB3(À<nOdB$H<kl{wOP}hדTGOGץF[kpݞqiaZwk_Dmg׋ŘKP7秆\6-W5T
+zmsQ~gek:jo͜2ܷ;ta-ju#޿vh2B{.m"mocoKp2D=q؜4o R CONN*lZ ݾ~HVptX~O[=1`9>F!Snӓ95}|GMkw+NO p"賍Ѵ4-sk k_02QZ0tC +xyr)gX1ߚ}dl
+wrwO<3,%kHko%!{7nZYb!k`"&ye}۩.i/
+endstream
+endobj
+680 0 obj
+<< /Type /Page /Contents 681 0 R /Resources 679 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
682 0 obj
-<< /D [ 679 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 680 0 R /XYZ 78.37 808.885 null ] >>
endobj
683 0 obj
-<< /D [ 679 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 754.924 null ] >>
endobj
684 0 obj
-<< /D [ 679 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 708.271 null ] >>
endobj
685 0 obj
-<< /D [ 679 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 673.573 null ] >>
endobj
686 0 obj
-<< /D [ 679 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 626.919 null ] >>
endobj
687 0 obj
-<< /D [ 679 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 615.96 null ] >>
endobj
688 0 obj
-<< /D [ 679 0 R /XYZ 79.752 671.198 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 569.307 null ] >>
endobj
689 0 obj
-<< /D [ 679 0 R /XYZ 79.752 618.396 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 544.614 null ] >>
endobj
690 0 obj
-<< /D [ 679 0 R /XYZ 79.752 607.437 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 533.655 null ] >>
endobj
691 0 obj
-<< /D [ 679 0 R /XYZ 79.752 530.725 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 522.696 null ] >>
endobj
692 0 obj
-<< /D [ 679 0 R /XYZ 79.752 477.923 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 511.737 null ] >>
endobj
693 0 obj
-<< /D [ 679 0 R /XYZ 79.752 377.3 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 500.778 null ] >>
endobj
694 0 obj
-<< /D [ 679 0 R /XYZ 79.752 282.655 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 489.819 null ] >>
endobj
695 0 obj
-<< /D [ 679 0 R /XYZ 79.752 235.83 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 478.86 null ] >>
endobj
696 0 obj
-<< /D [ 679 0 R /XYZ 79.752 177.051 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 430.257 null ] >>
endobj
697 0 obj
-<< /D [ 679 0 R /XYZ 79.752 118.271 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 377.712 null ] >>
endobj
-678 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+698 0 obj
+<< /D [ 680 0 R /XYZ 79.822 325.166 null ] >>
endobj
700 0 obj
-<< /Filter /FlateDecode /Length 3271 >>
-stream
-xڥZKs6ϯQ#x@[IM٪!qU13xTvAL +z~ݾ;f,Җ}3FhƮnwWnUW/MqaNM$#tLȏoYU_njכ5L;(.ʪ6M}mUv=^UsGne9yWy83C'QF3jvygWBdψ33XA .&$EQQBT(P3E EJqRPIt6f!
-&2,%)QFo/FYaQB3by)ەW0&&=GBv{]vr CC7hnP]|*- (<J0:@2`Ӵm=^pXd`pu]ߴNj
-@]K(a0w71V2Ƭbi/9 1JbWl׍[r;ƽhy |y;^"WEB jq%5L1cނ1"%0>xk1 4ml9E]]?Ipuo^R"H"csg^I5kڀTUTЦ{-Ώec5l0 W]~Zŗ-ve_:[oo3Ve]+Ԭ'U]wzg/< aƸ4)eMG! o*  O^Gkhâtقࠜ:K/˼ׂhm'g֕JeX8>Vr*mqsL*-Kwbc&)E~',2s)kNheOBkn|1> 9~QEƴ'_.,zCGx1NF|b1I|#hec s^->F>nǭ ~>я3CoU-6QlPF 3>oKD2ITQ-B7躢_|ͺ@C*젟"c9"l2"6ۘv[l|\uĸ(oLhOcsCB*p¥Ȧ.: ޺
-Bx30lTBd )DCMȱ.K#hdPD-$N~b 2i 7[,dtƃ'A1ʼnl%6=x*KThp?F0M:4HƔ+}C.uwH=nv(Kq$d ƫ!0h"r0P4 3
-WW |mGC6k%?\%>^lXPƂD`NfʜMPw$W儤_RVu@Be8D/ٲU@jROh>ͯ"ˀI MuU(2|aY,4+UҍR)g3"U`rʲµ[ .IBhnaoF}{!}ssH{SĞԗ
-lj"4f&b= _pbD c^#CfKyi"/_V2Qho>>!V
-cb{ţ5>   -}8Z+Y: XZyu$,1gg| 亸AWպPϊp~Dݳ:)V[3>h!~c'ַ!z*u`d>l#5ۓ= Eib[dn nW"GbGJh1+;>~cE<"icܶы@1>:|7I:p^L[
-endstream
-endobj
-699 0 obj
-<< /Type /Page /Contents 700 0 R /Resources 698 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 680 0 R /XYZ 79.822 184.637 null ] >>
endobj
701 0 obj
-<< /D [ 699 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 173.678 null ] >>
endobj
702 0 obj
-<< /D [ 699 0 R /XYZ 79.752 719.213 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 89.593 null ] >>
endobj
703 0 obj
-<< /D [ 699 0 R /XYZ 79.752 708.254 null ] >>
+<< /D [ 680 0 R /XYZ 79.822 78.635 null ] >>
endobj
-704 0 obj
-<< /D [ 699 0 R /XYZ 79.752 650.252 null ] >>
+679 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F82 699 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-705 0 obj
-<< /D [ 699 0 R /XYZ 79.752 639.293 null ] >>
+707 0 obj
+<< /Filter /FlateDecode /Length 3038 >>
+stream
+xڵ[9\ Wt"$Jqfnd7;7xw|
+\MsUg)5r 
+eim/ W a7QWl_6f}=RT!Ӯ+>ҽ+>GK|IU?ό"gY.MnJxI-D
+#a"XiJ.xtS䚸*dU%F˰}1gBz=E=Uא(4+Udy=>D9Z3+<Z}lvdvȣA#&@979˯ BOBx"Gus$?nBdO"tCqQUEG-| 90(̂yLJI=*|F[ )zI;0fwuNmTK)`k. ϸR*#w$-Ykƽ{I|OM}CF~B Aʰz 1IC9qɁ#p7KnB[!>=SE+8V*YKz:DY-|8f^-deMbWGkBR|KR(V}i;Ivi2Qua1Bݸ;a*j+AQ;Ȼj*vAG&J^;aaA cq]6fMk* Iv
+*)297zgR7vjѫ+b^פvj;Jb㔾-;Hx : f'GTd_X\bFŪ=#f/23pxW^6V K}Z\K9i&%D=@>\8iMT~HUy۾FYdwz{̨c/ $6DSAvOڸ< ؚ唋3[Dҕ-; knLNܽJռY+Fy;WE4u+
+قh҃mZTM} V#$~D;FNFp+կjEI7pvGpfF 
+BQN!{۵̫H[Zz(e +F hkdsױ D+4bSU(0Q
+̫P}2{]xuT
+;aڒ&NV βȓp`
+n
+y-B`ZyZpi%5xAדrdqt]՛VeL?%Gϵc01fBNjJ2ۡd/s}^Q`qB-}:vY DO֍w;8 vQ(`Tōm 7R>>$Po2~Q7L l-4ccT~8@Gqn}U|ۙ}HzqRizGl=Ns(Z\/cO=ƯFn5bmft5f-ڽ ͑C4J0XE% ʡ(;w.k*Ƞ5˖~Ƣpɭ>^}Ge&6->?\Ocv H>puF_#x(,|8X'I0ϣj&mhڐ8,a?t\?`8wpG[ Pk:F$uٌwmC6\Ɗb=Ò)Ӌ6~
+NЙmSZ!za9ft+
+5,2Vc5-g6jrC4SjdMUfm9UT0QF#f*,p䵾zK[f]&1|MS\ txO$GՋRhYxg!bR
+endstream
endobj
706 0 obj
-<< /D [ 699 0 R /XYZ 79.752 628.334 null ] >>
+<< /Type /Page /Contents 707 0 R /Resources 705 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R /Annots 723 0 R >>
endobj
-707 0 obj
-<< /D [ 699 0 R /XYZ 79.752 617.375 null ] >>
+723 0 obj
+[ 704 0 R ]
+endobj
+704 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 377.353 621.534 383.812 633.815 ]/A << /S /GoTo /D (Hfootnote.2) >> >>
endobj
708 0 obj
-<< /D [ 699 0 R /XYZ 79.752 583.283 null ] >>
+<< /D [ 706 0 R /XYZ 78.37 808.885 null ] >>
endobj
709 0 obj
-<< /D [ 699 0 R /XYZ 79.752 572.324 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 694.11 null ] >>
endobj
710 0 obj
-<< /D [ 699 0 R /XYZ 79.752 561.365 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 683.151 null ] >>
endobj
711 0 obj
-<< /D [ 699 0 R /XYZ 79.752 550.406 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 609.427 null ] >>
endobj
712 0 obj
-<< /D [ 699 0 R /XYZ 79.752 539.447 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 559.614 null ] >>
endobj
713 0 obj
-<< /D [ 699 0 R /XYZ 79.752 457.535 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 427.111 null ] >>
endobj
714 0 obj
-<< /D [ 699 0 R /XYZ 79.752 411.488 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 416.152 null ] >>
endobj
715 0 obj
-<< /D [ 699 0 R /XYZ 79.752 365.441 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 275.679 null ] >>
endobj
716 0 obj
-<< /D [ 699 0 R /XYZ 79.752 354.482 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 206.936 null ] >>
endobj
717 0 obj
-<< /D [ 699 0 R /XYZ 79.752 343.523 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 149.153 null ] >>
endobj
718 0 obj
-<< /D [ 699 0 R /XYZ 79.752 332.564 null ] >>
+<< /D [ 706 0 R /XYZ 79.822 138.194 null ] >>
endobj
719 0 obj
-<< /D [ 699 0 R /XYZ 79.752 321.605 null ] >>
+<< /D [ 706 0 R /XYZ 93.716 108.448 null ] >>
endobj
-720 0 obj
-<< /D [ 699 0 R /XYZ 79.752 310.646 null ] >>
-endobj
-721 0 obj
-<< /D [ 699 0 R /XYZ 79.752 228.733 null ] >>
-endobj
-722 0 obj
-<< /D [ 699 0 R /XYZ 79.752 182.686 null ] >>
-endobj
-723 0 obj
-<< /D [ 699 0 R /XYZ 79.752 112.729 null ] >>
+705 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F82 699 0 R /F19 182 0 R /F30 172 0 R /F25 609 0 R /F71 185 0 R /F67 179 0 R /F16 422 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R /F46 721 0 R /F42 722 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-724 0 obj
-<< /D [ 699 0 R /XYZ 79.752 78.637 null ] >>
+726 0 obj
+<< /Filter /FlateDecode /Length 2632 >>
+stream
+x[ˎ#WF70h nȺww{oC%,Wp-(S旿.7o~ }0oqI{F0n~p.?.̀2b8?:~o!-
+J%
+P>}VH] |<8ӘUww Q6ybLy@SyG\K)& /\vKNWlM08Q\3TXqQ;!yZ^Ȕ\x%BY~{q%# ~̂T^ tT!oSe٦S7uܞE&}ʿ ǰ fEE&%vyj%g%{NQ@%x-[ r G' L
+#P,ӦzQu}T7kH)V\$E3]'n땈 PE"ng4+p~Vp*R>E7Kv$/O:7:^vjZGe(hЅbry=? wKl_c_f;J) JX$w漲fE{fжRV*nYI;'{&U3"2TkujOEEOnݥ}TtR9ǜ̡껣?d/
+"8
+["[Gk0݋'xH]u:23-,vm#y|pLkGh<F)
+2^ @g6\{?ms,5sU֕Ŭt)67(?yD0 Zx]!"]}7UdOĺ +Ӽځ~]}0LsGW*!V4Fvkn.gڒq @@2*3r2&s
+)mi
+бMRRMikc)q^.>ӎ6ALǬ}g,6FrWjKEY9wpƈ.8IIf칼Ҳ@TnGȥq=zѦޞSүz#?C|^F_WbK=kȆg&g޷,̫mjR^wK:Wirm}[(77Na-(2) O*<֢eص.QeT/t#;]<Ưdف
+h霕EH@UC4į慢-'&{E
+0I]
+,vrZ*
+d^5m[0Qlwkv[{K=rwp{?)$KTb=]HxZ2a{lyi),e1Ft 몧
+{b!{?(T8ڏt\#qw#GMxԝE{}'GxtVoyA) w=x9HcZG'eq!T~
+ w;0iO
+endstream
endobj
-698 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F23 660 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+725 0 obj
+<< /Type /Page /Contents 726 0 R /Resources 724 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
727 0 obj
-<< /Filter /FlateDecode /Length 2800 >>
-stream
-xڽˎ>_ѷn.5$ n+#K$wb=U|آ즬 K&Yb(ztCo~~G?&#Yysa7iFDz&Єn;b苶Gdm^t~yʾ\Ԣ̪
-71k YIIƛ=u/Z|]optN/]p!ïenT&!Hdh)%K:y9!Ģ1q0Np%VFB:1y[ޱp5rcKJ&'{ݎ8OtaDDSbl:-9%$_hzNIę
-
-&R9{K<'eQC-k+'7uSo y&Tq[1M?N|u&CMԆT? I3b(Qg@3n2F$ȄYpd7'B2
-Y6I@x9Z?8
-IE`&툾Ǧ|KY?Or<[8 d[j؇Q;0*]-{.H\bad <Hr?ٕq; E\1!q CEr;Z!H 3Rzk!DYI&ga B\DZ@-d(Mq< (IsCǕd<ؽEDGR3~$>)vMBqr]C. -Ɂ-{޾)P&+9(3DbҔhX`v1lzĖk*(™
-wݴcvqP(kQVm=4}7QjĒ t)SHGWDzJgYj55ڨiTMG&%|!M.mڥQ.TD5!窬)5ApܤSGȶW K02^Sav"dt]%AbDb!
-&9f!AYP]/T])o'd!=xQ\sȤ ɤdf˫dƭ\r}>tԑ˶4 T;UM0N ཋӈPWY
-d6?po\Ɇ o0R?[D'Gz;R:GXԨJJu+fS(S8"9rw .uUmx+X>\>Kgsȭ~moIȿ/Lgpm W\ִ0YauUv})sI^xj9qD ؒ̓8( `$]LG4+^K_PHMR-P3fMϮ틫4zevB2Ix&IJy8+y].Cn2<z
-ZlLNiН/DF]s_Օ+v0 I=F+?&RVp,tA#MDq+"s.J{ m!lo?$˨" 1Y?62H5
-C1kJg|њʻxBrY#u26`+VSJc؆.bpIY>21n:%<U!xPWe~۠`p[ˉ!9vhnԜ$Ɉd aoEabDB]rQ6C<}GE]rפgk׮/vF|f; -0BlK>Zʬ/wUm#ځ6nбqpߎ%Ʃik6˺ٍ>i1gn| Pti*lhup\;(r!7O2|CبVk: LA,/:}cGXE[Y
-xwTXnîPMB$ae$Ӗ2t@VjC{"̟tcwm2q)$MtIa}z¢!`,+&~7s^,SM͇
-GPӥvwsBh2C S?]+!s0WTdddsgܿ3R9{ˆ̨<a M4PCku
-S w9:'{wl$Yt!e =UrvĖJ #s/[
-endstream
-endobj
-726 0 obj
-<< /Type /Page /Contents 727 0 R /Resources 725 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 725 0 R /XYZ 78.37 808.885 null ] >>
endobj
728 0 obj
-<< /D [ 726 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 754.882 null ] >>
endobj
729 0 obj
-<< /D [ 726 0 R /XYZ 79.752 719.19 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 743.923 null ] >>
endobj
730 0 obj
-<< /D [ 726 0 R /XYZ 79.752 708.232 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 732.964 null ] >>
endobj
731 0 obj
-<< /D [ 726 0 R /XYZ 79.752 697.273 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 680.162 null ] >>
endobj
732 0 obj
-<< /D [ 726 0 R /XYZ 79.752 686.314 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 669.203 null ] >>
endobj
733 0 obj
-<< /D [ 726 0 R /XYZ 79.752 652.132 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 658.244 null ] >>
endobj
734 0 obj
-<< /D [ 726 0 R /XYZ 79.752 605.995 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 647.285 null ] >>
endobj
735 0 obj
-<< /D [ 726 0 R /XYZ 79.752 571.814 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 636.326 null ] >>
endobj
736 0 obj
-<< /D [ 726 0 R /XYZ 79.752 525.677 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 625.367 null ] >>
endobj
737 0 obj
-<< /D [ 726 0 R /XYZ 79.752 514.718 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 614.408 null ] >>
endobj
738 0 obj
-<< /D [ 726 0 R /XYZ 79.752 468.582 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 585.517 null ] >>
endobj
739 0 obj
-<< /D [ 726 0 R /XYZ 79.752 444.535 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 574.558 null ] >>
endobj
740 0 obj
-<< /D [ 726 0 R /XYZ 79.752 433.576 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 563.599 null ] >>
endobj
741 0 obj
-<< /D [ 726 0 R /XYZ 79.752 422.617 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 534.707 null ] >>
endobj
742 0 obj
-<< /D [ 726 0 R /XYZ 79.752 411.658 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 523.748 null ] >>
endobj
743 0 obj
-<< /D [ 726 0 R /XYZ 79.752 400.699 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 512.789 null ] >>
endobj
744 0 obj
-<< /D [ 726 0 R /XYZ 79.752 389.74 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 501.831 null ] >>
endobj
745 0 obj
-<< /D [ 726 0 R /XYZ 79.752 378.781 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 490.872 null ] >>
endobj
746 0 obj
-<< /D [ 726 0 R /XYZ 79.752 330.824 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 479.913 null ] >>
endobj
747 0 obj
-<< /D [ 726 0 R /XYZ 79.752 279.053 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 468.954 null ] >>
endobj
748 0 obj
-<< /D [ 726 0 R /XYZ 79.752 227.283 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 457.995 null ] >>
+endobj
+749 0 obj
+<< /D [ 725 0 R /XYZ 79.822 447.036 null ] >>
endobj
750 0 obj
-<< /D [ 726 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 329.477 null ] >>
endobj
751 0 obj
-<< /D [ 726 0 R /XYZ 79.752 78.637 null ] >>
+<< /D [ 725 0 R /XYZ 79.822 318.518 null ] >>
endobj
-725 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F80 749 0 R /F79 668 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+752 0 obj
+<< /D [ 725 0 R /XYZ 79.822 307.559 null ] >>
endobj
-755 0 obj
-<< /Filter /FlateDecode /Length 2875 >>
-stream
-xڝZ[s۸~ϯS+ͬ/~miN[!hhHdVd
-Mi0sXFC%F#<d`RaarU!uxBYHN_iE6uW2%#
-m(b:zt%&0T'J$'q))>⊃"ٖEjE$wQ@l^74Y @)bI{!RYb`'L{4 aO0ۀ5n02f^"K!i7~s|1QkD\o\BLw|뀛/uH*Y!!\Ez_&1C/c>44IQzxPlF5yݴAj@@xլW"_&1c IϢ8> \oS¢C8\vY]3ᩐᙓDCOULT8?S*x{\R0!yaaKX}7oծ 6T8X߿~VO#<Mkʭ
- pʼL^XܻIω0r4c32ȅ
-#E6L2k74%?x.˻DN!%1R{0Jf="30Ni|^(a`+3L)^P&+Z{闲1Aє ')rq.r'-lz tg:UZ0I^OXQY \ >HƉC $K1LND 7 P G3:t @f;Іh LCŲf.^1GZz+́7=JrOCj;~!/E~?l!1~:& 9\D ~ہf !UIR5xQ41XТB#hiE\G H1#.Gw'K :ydG?]9C,^r?@EV)&L$nO"RgU% LW %!@?9qc~9Ě\D.!wwh₄&;Ε9;sakJWbdJt&7?UBP* #,_) a,f6
-Ǟ,IMhv5ĸ>耵bY/R1Mþ/^E]䱐 1Kb NǨa7n8D}6JIUTmە
-endstream
+753 0 obj
+<< /D [ 725 0 R /XYZ 79.822 296.6 null ] >>
endobj
754 0 obj
-<< /Type /Page /Contents 755 0 R /Resources 753 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R /Annots 771 0 R >>
+<< /D [ 725 0 R /XYZ 79.822 285.641 null ] >>
endobj
-771 0 obj
-[ 752 0 R ]
+755 0 obj
+<< /D [ 725 0 R /XYZ 79.822 274.682 null ] >>
endobj
-752 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 377.359 528.11 383.821 540.046 ]/A << /S /GoTo /D (Hfootnote.2) >> >>
+21 0 obj
+<< /D [ 725 0 R /XYZ 79.37 249.233 null ] >>
endobj
-756 0 obj
-<< /D [ 754 0 R /XYZ 78.37 808.885 null ] >>
+724 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-757 0 obj
-<< /D [ 754 0 R /XYZ 79.752 718.51 null ] >>
+759 0 obj
+<< /Filter /FlateDecode /Length 3672 >>
+stream
+xn,1_1
+FU_dG[G*$Zhox?V<0oI]%N Z-}Xs}ÒbY&qk&84r@ Wk"s!]
+(3eoS)e5wZ-< &{xiL6_\ft6 Ձ na'$$!VL'2;m9~t¦9sR],VN\e)j˓:}JOKV|Z+<
+,#U8uQPX oewP%W]a}g"|(DŽ9OJ{DYC}>߿.,W>{eSK! .) Ħbm@r}P+E7l:s6SA5PUp4UԷ*ϭZ``mϛ+~#6 0JsLK&Zs v͢ 4FI,
++AuKw&)lRYwuWgӕ٘\ œ$#
+L ] gObRc糝8eO9J.#n#[ nD^4rP%G5%G$45:f7I2d2wF&,9i^r }RJ5;SH:?{Di. {
+Aof0,nxȺ݊{X*=*0]V痬k] jdSlC J%6
+֍I P.3|4jIaB-;+q%ݭgnGIinUqD/LhdڣVRޒF%EIςQ ?:a?E= .埿dTRhD:rMwXbGxX[u9k<Z@M(\QN~3JOIwϠVErgWwBr 
+ȴze[~0$_֔ E\T K~1Maui((G(<&BG3~WW<09C"wbޙ;dוO^N(AIJST ЛD YLw ӭhHZuBb*O!*Uvj"H<?5ɑqJkYJuto.zs&71z3?ʵ4,P>n%-d?J M5\Ͻ
+,m8ُ\;gTv⏻\hbJP!v:j)X f28* eb٢Pq\%r`Ph+OŻr̺iY4Q٣Kv,EZ=*rYKEW%mLG6씧Xz {!@+Zͻ<C\0I;lY3գ~{Xuj>)7Ţ!]5y
+:*!6ym):Z(36e2n('{JiZK1]H.ńK2K<6m0Ƞ%l&@6]tLl aUj8E7ζ4h234&CSx
+|[mo;tϸ<C-۱`g)B116S/zBR[+ wKLu_5Gbi'*m
+1(r~!FH@ ?N9a0d)2De\4fƃ8fDЭQ8UY'y+g{g
+(2fUܼ6+9;C{
+QA \%=]N? H\ohkF\6
+}n^s@C s-m
+
+{@ڧ R(UrQFR!$P
+] ~fm@|B?Kiz2Ivʞ/1q_7Si _? Yp3}]ۗQeI/_ǟ#T'G^rLy?/S',5^a}*Ha/R̉F?i(TqM*mtx}]y_A1ȄJfs\^[QJ3lHFy)@LozbVŘ~dCe%7 Ӹje\ms6nD/
+endstream
endobj
758 0 obj
-<< /D [ 754 0 R /XYZ 79.752 707.551 null ] >>
+<< /Type /Page /Contents 759 0 R /Resources 757 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R /Annots 777 0 R >>
endobj
-759 0 obj
-<< /D [ 754 0 R /XYZ 79.752 600.095 null ] >>
+777 0 obj
+[ 756 0 R ]
endobj
-760 0 obj
-<< /D [ 754 0 R /XYZ 79.752 589.136 null ] >>
+756 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.85 666.127 307.308 678.647 ]/A << /S /GoTo /D (Hfootnote.3) >> >>
endobj
-761 0 obj
-<< /D [ 754 0 R /XYZ 79.752 516.306 null ] >>
+760 0 obj
+<< /D [ 758 0 R /XYZ 78.37 808.885 null ] >>
endobj
762 0 obj
-<< /D [ 754 0 R /XYZ 79.752 467.386 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 426.115 null ] >>
endobj
763 0 obj
-<< /D [ 754 0 R /XYZ 79.752 336.02 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 385.268 null ] >>
endobj
764 0 obj
-<< /D [ 754 0 R /XYZ 79.752 325.061 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 374.309 null ] >>
endobj
765 0 obj
-<< /D [ 754 0 R /XYZ 79.752 186.323 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 358.369 null ] >>
endobj
766 0 obj
-<< /D [ 754 0 R /XYZ 79.752 118.637 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 347.41 null ] >>
endobj
767 0 obj
-<< /D [ 754 0 R /XYZ 94.613 89.795 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 292.615 null ] >>
endobj
-753 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F23 660 0 R /F73 189 0 R /F69 183 0 R /F46 176 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R /F56 769 0 R /F52 770 0 R >> /ProcSet [ /PDF /Text ] >>
+768 0 obj
+<< /D [ 758 0 R /XYZ 79.822 239.813 null ] >>
endobj
-774 0 obj
-<< /Filter /FlateDecode /Length 2205 >>
-stream
-xڵYMo6W6pM16a^: AX,<`/ERmG1=KP|ij|݇4ҒJ>{^gd4bj$AXv?6_ܳ]Q]>z0ߟa;f0:.F35%@dK0A؏ey˗]zxU{AEK*|m`}CfiջhhH=:A%h]⺣)F <^U&\v]vfǿFɖqdWrF6lbXyU=#o;T ў7g\.zAPTfλ3ׯؼye>uvTfD/z>ՖeY$jAc,VæX6F2ܑ١?1ͧlφJ8qはy"
-U~HmڻcibH~:.&O 8*^^FiN0 RZV&RLzJuB!-$%JG^S
-iY&ӞnjC`" $@G|$b,7z~e őtveUa2a6^eEl$ҕΨ1xHN=Wua归i7 JVqdהT*T\ bxucMtcGwiT=G a0!Q>`χ WUok;d,ىB8(OnM7Lj4\@ID̰㏖A<*Ǎ.|xz:R&CC(2%
-獝)зB}0HƠ=Ai }6__`aA)cԕ㺾_B6;)_zRz H-,dA #I`˭ct}a5޹A#p;!fC(
-Tob*tUl2,%' =U[ObcmENAERn۩
-endstream
+769 0 obj
+<< /D [ 758 0 R /XYZ 79.822 228.854 null ] >>
+endobj
+770 0 obj
+<< /D [ 758 0 R /XYZ 79.822 217.895 null ] >>
+endobj
+771 0 obj
+<< /D [ 758 0 R /XYZ 79.822 206.936 null ] >>
+endobj
+772 0 obj
+<< /D [ 758 0 R /XYZ 79.822 195.978 null ] >>
endobj
773 0 obj
-<< /Type /Page /Contents 774 0 R /Resources 772 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R >>
+<< /D [ 758 0 R /XYZ 79.822 185.019 null ] >>
+endobj
+774 0 obj
+<< /D [ 758 0 R /XYZ 79.822 174.06 null ] >>
endobj
775 0 obj
-<< /D [ 773 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 758 0 R /XYZ 79.822 133.213 null ] >>
endobj
776 0 obj
-<< /D [ 773 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 758 0 R /XYZ 93.716 102.175 null ] >>
endobj
-777 0 obj
-<< /D [ 773 0 R /XYZ 79.752 735.955 null ] >>
+757 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F73 267 0 R /F82 699 0 R /F16 422 0 R /F84 761 0 R /F25 609 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-778 0 obj
-<< /D [ 773 0 R /XYZ 79.752 724.996 null ] >>
+780 0 obj
+<< /Filter /FlateDecode /Length 2970 >>
+stream
+xɒ+B?04IprMU9-}_ \@v[8A3;Dž_~_B_<FuE\g`/ƍ|y篜9G@˹+?ZKƭ #̹Nèx>c8+>?xK`Ɔ_=e4-蘺.1K"2#qʼ]}#˯2
+Aw%2lLfU$QBO =9k\c8b<8SLK83LjXe
+­4h{l<]dbڭtSyF_~UM%0i*
+ZC\Yƍ@aIQ$I+;(y/.1GҎcKf#])¸U-, ]wfkbZ
+ -2gA=)$š}IüK8&-du<{B Cw=ǍLsO
+UңٜvafYo.]&J}^f'+1CM3̓l S#Asl\.Apb TT!?y&]1~((Zhb%b"'Vi&S#KԿǎ0[J, y-58#[AH]'P[+PJHC^װ$I2CL09I➼Ų "pZ[i(DKwm=g,%g[s
+e_\)v>!0AgР\ W97};imy0P!rK6̏J ^3m "-(ppc~l㴏~ncKS$}OW.e$-wKq4i9G>z,`K z,"؅兲U6 Je^8lݵ+/}X$,R3M
+!cT81{q4lcu5&+yS^T`:"d
+f9_1 '%s&:TvBĬ
+nőx, dIz6
+֔thpo)4o?N
+5>ct:90Du' $Dd|ɣǻ?=U}Y*lGJGqYȇ{;JB6d"SPDZ'X_zm: Cø uS{6'J?n{
+;KJB7Fhܺ3ĸh ˶fVz+`+엟r8 ((.gA j ԟ>lR$}*E#P X( 2)(34JF~tb{Z8$dNgp, jIleKNTY8uoE/ыaGIȰ#S0%ǫ@>xd5ATb
+ v;!)(3Vb<_"P螪< YӤrôДԃUJR'%6Ï($xr-ay!ri(GëbF 瑰 wʏ@x#MsQyR}o SB
+endstream
endobj
779 0 obj
-<< /D [ 773 0 R /XYZ 79.752 714.037 null ] >>
-endobj
-780 0 obj
-<< /D [ 773 0 R /XYZ 79.752 703.078 null ] >>
+<< /Type /Page /Contents 780 0 R /Resources 778 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 579 0 R >>
endobj
781 0 obj
-<< /D [ 773 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 779 0 R /XYZ 78.37 808.885 null ] >>
endobj
782 0 obj
-<< /D [ 773 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 754.882 null ] >>
endobj
783 0 obj
-<< /D [ 773 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 714.035 null ] >>
endobj
784 0 obj
-<< /D [ 773 0 R /XYZ 79.752 615.407 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 649.278 null ] >>
endobj
785 0 obj
-<< /D [ 773 0 R /XYZ 79.752 604.448 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 560.61 null ] >>
endobj
786 0 obj
-<< /D [ 773 0 R /XYZ 79.752 593.489 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 549.651 null ] >>
endobj
787 0 obj
-<< /D [ 773 0 R /XYZ 79.752 582.53 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 538.692 null ] >>
endobj
788 0 obj
-<< /D [ 773 0 R /XYZ 79.752 571.571 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 527.733 null ] >>
endobj
789 0 obj
-<< /D [ 773 0 R /XYZ 79.752 560.613 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 486.887 null ] >>
endobj
790 0 obj
-<< /D [ 773 0 R /XYZ 79.752 549.654 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 475.928 null ] >>
endobj
791 0 obj
-<< /D [ 773 0 R /XYZ 79.752 538.695 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 464.969 null ] >>
endobj
792 0 obj
-<< /D [ 773 0 R /XYZ 79.752 527.736 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 454.01 null ] >>
endobj
793 0 obj
-<< /D [ 773 0 R /XYZ 79.752 516.777 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 443.051 null ] >>
endobj
794 0 obj
-<< /D [ 773 0 R /XYZ 79.752 505.818 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 432.092 null ] >>
endobj
795 0 obj
-<< /D [ 773 0 R /XYZ 79.752 494.859 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 421.133 null ] >>
endobj
796 0 obj
-<< /D [ 773 0 R /XYZ 79.752 483.9 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 410.174 null ] >>
endobj
797 0 obj
-<< /D [ 773 0 R /XYZ 79.752 472.941 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 399.215 null ] >>
endobj
798 0 obj
-<< /D [ 773 0 R /XYZ 79.752 461.982 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 388.256 null ] >>
endobj
799 0 obj
-<< /D [ 773 0 R /XYZ 79.752 451.023 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 377.298 null ] >>
endobj
800 0 obj
-<< /D [ 773 0 R /XYZ 79.752 333.464 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 366.339 null ] >>
endobj
801 0 obj
-<< /D [ 773 0 R /XYZ 79.752 322.505 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 355.38 null ] >>
endobj
802 0 obj
-<< /D [ 773 0 R /XYZ 79.752 311.547 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 344.421 null ] >>
endobj
803 0 obj
-<< /D [ 773 0 R /XYZ 79.752 300.588 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 333.462 null ] >>
endobj
804 0 obj
-<< /D [ 773 0 R /XYZ 79.752 289.629 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 322.503 null ] >>
endobj
805 0 obj
-<< /D [ 773 0 R /XYZ 79.752 278.67 null ] >>
-endobj
-25 0 obj
-<< /D [ 773 0 R /XYZ 79.37 253.215 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 311.544 null ] >>
endobj
-772 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F79 668 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+806 0 obj
+<< /D [ 779 0 R /XYZ 79.822 300.585 null ] >>
endobj
-809 0 obj
-<< /Filter /FlateDecode /Length 3347 >>
-stream
-xڥZo _@nLzhkW\+Bv%G %CȲJ?R6l~vcUL
-7 XJ(\7o2]qKO':KL3APlC[n/.m[;fn=O,{,10JHwCTu ɴ",)
-R^R ]}3myQT D]~ߕu(lX
-)wŕg{(,wHp *C
-Ȉf*%/[2tS7\\j?(ԃy ]&o:"ͩu+ض)exd2 }8]}_Z͚JbHy7],eD¦'diA(%б..6,}ס5>rwWW]^Vm/<c^Ùo3!ZIZ{yϻ lۢde+e
-+h`נޫ^L(?
-}W|8?
- C=~
-mO]cϐ +1lbwPb`_ߖ;gd싆kQL+ӗ|~~=I"f>hPIpQیe e[ڞhAAw\D)»L5!8h0ݔ]W5b4W9Br0d|b@.A8ZE)KD/Gm! m^{, >f<=aﯝE˪[e֒Lۍ "VsQ
-4n0σ'lw%=5eu 8<bgV1VZ S=,w^}r3 !MSw;*'
-00Q1Ƣbl|`Q3^+2hgΜ ,dvccH#F8҇`3
-&R~F#$LϽ&>ݻ(evs~`
-Ar_we{B(33(&ZoL uLL䌳,6ܲqbE`>N.Cl q<f3#JI$} ¢9t`'BNšsYShHpzu끄I >Ӂ&rhS(і((!'Fma {plܜn5>HM߱Z\SektTʍ`3l©Ӯ;52th@88&T݅qige9(o-!g\NSFCS+
-mL4HL#Hx6Z 77rYɺ}7PhK{EWgJPJ4d=S^P& P.p
-1n*p=<K:Q(;u]/ aqPAJ%͜fuYaYTE&,*<S-7Q^Dآ^ѩ3O&"{ZŻaa'(Tdx{|=W
-)whHxj?unpbA980cE@N
-U@u̞s7ʈ2e!մ5ľ2Nډ/ǀCPC̎{xuDeb̬9# D¶B!ķ̆Qf#2k!B$:m 8Yc7]l5)W0EٵQc3BkY,#Cu;
-v}߀v]OAKoF6_[keC2Qf<)
-@_V?+hɟY1pܦۺ"mR5
-endstream
+807 0 obj
+<< /D [ 779 0 R /XYZ 79.822 289.626 null ] >>
endobj
808 0 obj
-<< /Type /Page /Contents 809 0 R /Resources 807 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 603 0 R /Annots 827 0 R >>
-endobj
-827 0 obj
-[ 806 0 R ]
+<< /D [ 779 0 R /XYZ 79.822 212.914 null ] >>
endobj
-806 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.845 666.194 307.307 678.408 ]/A << /S /GoTo /D (Hfootnote.3) >> >>
+809 0 obj
+<< /D [ 779 0 R /XYZ 79.822 201.955 null ] >>
endobj
810 0 obj
-<< /D [ 808 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 190.996 null ] >>
+endobj
+811 0 obj
+<< /D [ 779 0 R /XYZ 79.822 180.037 null ] >>
endobj
812 0 obj
-<< /D [ 808 0 R /XYZ 79.752 426.117 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 169.078 null ] >>
endobj
813 0 obj
-<< /D [ 808 0 R /XYZ 79.752 385.27 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 158.119 null ] >>
endobj
814 0 obj
-<< /D [ 808 0 R /XYZ 79.752 374.311 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 147.161 null ] >>
endobj
815 0 obj
-<< /D [ 808 0 R /XYZ 79.752 358.371 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 136.202 null ] >>
endobj
816 0 obj
-<< /D [ 808 0 R /XYZ 79.752 347.412 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 125.243 null ] >>
endobj
817 0 obj
-<< /D [ 808 0 R /XYZ 79.752 292.618 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 114.284 null ] >>
endobj
818 0 obj
-<< /D [ 808 0 R /XYZ 79.752 239.816 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 103.325 null ] >>
endobj
819 0 obj
-<< /D [ 808 0 R /XYZ 79.752 228.857 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 92.366 null ] >>
endobj
820 0 obj
-<< /D [ 808 0 R /XYZ 79.752 217.898 null ] >>
-endobj
-821 0 obj
-<< /D [ 808 0 R /XYZ 79.752 206.939 null ] >>
+<< /D [ 779 0 R /XYZ 79.822 81.407 null ] >>
endobj
-822 0 obj
-<< /D [ 808 0 R /XYZ 79.752 195.98 null ] >>
+778 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
823 0 obj
-<< /D [ 808 0 R /XYZ 79.752 185.021 null ] >>
+<< /Filter /FlateDecode /Length 2685 >>
+stream
+x[r8)&$\x^wND,9;(NNj 
+r|y꤅w
+ɓ:9/ɒӟg)IIg.B O%t9톓{l) } okN.:ȹ@'48\菃\xaT@
+oHi>4* ók~<ޏ?À)Pqd)1[T2y)+
+ jɊƚ7V@J{vx˾L-bsEuZh1p)DVI.#K!JɍQA0Al?oʜ|X nc@{"i;(E$.?hscI2W`r&$fyK-<sR*c"|(
+x#流@ߒ)%@*׳!tV895yYMD*v7NXo7iW2o`8@lIo&E)]WB{_D{BJAjմL"J+Y Th+]n^fTJI[^ayd?oihK) ~5ho{4kr{jK‚tJr EM}`P(:VW) s [xE3!?rf"Te35 u~h8 @gV)X!@;Xa4
+m@jM+bRnM%T"QzZuwTHBe~K}),pg]>"`pqQ5uk\ղ'b6qR}G&X@7^_BA@- PMw+0\>摚;T>
+ʔZoUT][grT4z۵l
+7idg߸g#uԥ8X4q eQpe01Wk]c*Vߨb!01{r<ؿMۄ͓rU)f *+-]: OV[.*]uVܹerIwv!z}@F\2_@d_#i Q|-R~]Xai0"m-wJ9dYmw?b}
+N]#ZvR|/e˳.鸜;;ȡ@^
+ |SZP)lk[.c%UpcbbimUA?v c+,LŬMег~+{5UDt(:ʑ7Z yYxzgmgWCrbtBQJva*MNUe]ZjޟՔ߲٘_Kݦ%\=k3,-{<>l/!l@lj`IxԃtmtF(徒Ey}[mӾ=dx6]^v \
+aԜ iNBy-"DMd@}(-[`UCW#- +K2Ɲ}ŽN6Q7\ϲ3R= cRɋ3whih5EїЫ POK~ڂLe'# ש㈌/<jf;vvM]* $ӏ5tb~T^wSBVn0GiiKhj0I3uXQO#I)~>4Ek2{*{竪:O5}yjs0~VhR_wSc; P%j8kl
+9 -Q@RSg>(=.pm |ny Hr`u.uD<kƫN whрQ`vAPia堩I$Ũ[ J%QXYFQʼ=> y}eJ0vr!N j=<Ŷp4dɎHOd3Co֓ۈAWd褥kP?>_<w
+endstream
+endobj
+822 0 obj
+<< /Type /Page /Contents 823 0 R /Resources 821 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
824 0 obj
-<< /D [ 808 0 R /XYZ 79.752 174.062 null ] >>
+<< /D [ 822 0 R /XYZ 78.37 808.885 null ] >>
endobj
825 0 obj
-<< /D [ 808 0 R /XYZ 79.752 133.215 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 768.829 null ] >>
endobj
826 0 obj
-<< /D [ 808 0 R /XYZ 94.613 102.381 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 757.87 null ] >>
endobj
-807 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F80 749 0 R /F22 473 0 R /F82 811 0 R /F23 660 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+827 0 obj
+<< /D [ 822 0 R /XYZ 79.822 746.912 null ] >>
endobj
-830 0 obj
-<< /Filter /FlateDecode /Length 2701 >>
-stream
-xZ[۸~ϯpчzwJ
-,zfahlyF-lË,z<q/E#ϝ_峜k9^bDьPfJ1_7MsoWlˮjj7hYږ=.W!+&9|rޅ>Up"nrfSܔꊛæh<,$a<B(Q3F`d³F˜ph%{^ "be$g1=r_w;`}nna7[?=?CZLW~]mߏÿ\pJ8 AT:D.6վ
-Lxt:E$CtDȯmȄ=Y\GOqI,ʻ 7nlb<@!9Yϫu_m6uDx9QbO^
-)T\_d|^ӽVk7H,[?sss nuٖC
-ڦjC$n/w鹻R=6dcYm:Xqa.FO3AUL3L1\\y@z!%msعfnZbY}_ñճbw\J=Q= o0jIV7M~s64+(;%ix!k6zte+LKF̓=SYl_v=;Q|ꅝ#t. )i.΢H9(]T}P`*PN<ӹ"7j+ٚI]ևmՕq'ɲ,V~[X+Tf?֫\/XhMJy+xG /fޚ`*:pv:zzp m` 7z3]~ y;9_ M.-Nc0,FIS~[Sb":-$(Cl&/e](z" V dm/Rɍ?EeiA?$t}B褰/WDY-(,޻%@a(r5 u˗o:(g'~oɇb
-
-;mGeNA:C|!ĥ{E!xwF-<HÇU]0j 3_5va +p? j']GhTkb2Atd|$׺7nlI1 u61YFxX'])N2#7%iCŲY[sߠ+ ]
- Mi<2
-_$ Sr<KJs?,E]5 {)g; J#OH!
-)neZ}ax>hz3C yУ!`S 'E5Q,b5?&~_0",s RI`׍L!6ya#do/''"¢g6Ɠcl
-endstream
+828 0 obj
+<< /D [ 822 0 R /XYZ 79.822 735.953 null ] >>
endobj
829 0 obj
-<< /Type /Page /Contents 830 0 R /Resources 828 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 822 0 R /XYZ 79.822 724.994 null ] >>
+endobj
+830 0 obj
+<< /D [ 822 0 R /XYZ 79.822 714.035 null ] >>
endobj
831 0 obj
-<< /D [ 829 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 703.076 null ] >>
endobj
832 0 obj
-<< /D [ 829 0 R /XYZ 79.752 754.884 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 692.117 null ] >>
endobj
833 0 obj
-<< /D [ 829 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 681.158 null ] >>
endobj
834 0 obj
-<< /D [ 829 0 R /XYZ 79.752 649.28 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 670.199 null ] >>
endobj
835 0 obj
-<< /D [ 829 0 R /XYZ 79.752 560.613 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 654.374 null ] >>
endobj
836 0 obj
-<< /D [ 829 0 R /XYZ 79.752 549.654 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 643.416 null ] >>
endobj
837 0 obj
-<< /D [ 829 0 R /XYZ 79.752 538.695 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 577.07 null ] >>
endobj
838 0 obj
-<< /D [ 829 0 R /XYZ 79.752 527.736 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 566.111 null ] >>
endobj
839 0 obj
-<< /D [ 829 0 R /XYZ 79.752 486.889 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 489.514 null ] >>
endobj
840 0 obj
-<< /D [ 829 0 R /XYZ 79.752 475.93 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 478.555 null ] >>
endobj
841 0 obj
-<< /D [ 829 0 R /XYZ 79.752 464.971 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 467.596 null ] >>
endobj
842 0 obj
-<< /D [ 829 0 R /XYZ 79.752 454.012 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 363.566 null ] >>
endobj
843 0 obj
-<< /D [ 829 0 R /XYZ 79.752 443.053 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 352.607 null ] >>
endobj
844 0 obj
-<< /D [ 829 0 R /XYZ 79.752 432.094 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 341.648 null ] >>
endobj
845 0 obj
-<< /D [ 829 0 R /XYZ 79.752 421.136 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 330.689 null ] >>
endobj
846 0 obj
-<< /D [ 829 0 R /XYZ 79.752 410.177 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 319.73 null ] >>
endobj
847 0 obj
-<< /D [ 829 0 R /XYZ 79.752 399.218 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 308.772 null ] >>
endobj
848 0 obj
-<< /D [ 829 0 R /XYZ 79.752 388.259 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 297.813 null ] >>
endobj
849 0 obj
-<< /D [ 829 0 R /XYZ 79.752 377.3 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 286.854 null ] >>
endobj
850 0 obj
-<< /D [ 829 0 R /XYZ 79.752 366.341 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 275.895 null ] >>
endobj
851 0 obj
-<< /D [ 829 0 R /XYZ 79.752 355.382 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 264.936 null ] >>
endobj
852 0 obj
-<< /D [ 829 0 R /XYZ 79.752 344.423 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 253.977 null ] >>
endobj
853 0 obj
-<< /D [ 829 0 R /XYZ 79.752 333.464 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 243.018 null ] >>
endobj
854 0 obj
-<< /D [ 829 0 R /XYZ 79.752 322.505 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 232.059 null ] >>
endobj
855 0 obj
-<< /D [ 829 0 R /XYZ 79.752 311.547 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 221.1 null ] >>
endobj
856 0 obj
-<< /D [ 829 0 R /XYZ 79.752 300.588 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 210.141 null ] >>
endobj
857 0 obj
-<< /D [ 829 0 R /XYZ 79.752 289.629 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 199.183 null ] >>
endobj
858 0 obj
-<< /D [ 829 0 R /XYZ 79.752 212.916 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 188.224 null ] >>
endobj
859 0 obj
-<< /D [ 829 0 R /XYZ 79.752 201.957 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 177.265 null ] >>
endobj
860 0 obj
-<< /D [ 829 0 R /XYZ 79.752 190.999 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 166.306 null ] >>
endobj
861 0 obj
-<< /D [ 829 0 R /XYZ 79.752 180.04 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 155.347 null ] >>
endobj
862 0 obj
-<< /D [ 829 0 R /XYZ 79.752 169.081 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 144.388 null ] >>
endobj
863 0 obj
-<< /D [ 829 0 R /XYZ 79.752 158.122 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 133.429 null ] >>
endobj
864 0 obj
-<< /D [ 829 0 R /XYZ 79.752 147.163 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 122.47 null ] >>
endobj
865 0 obj
-<< /D [ 829 0 R /XYZ 79.752 136.204 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 111.511 null ] >>
endobj
866 0 obj
-<< /D [ 829 0 R /XYZ 79.752 125.245 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 100.552 null ] >>
endobj
867 0 obj
-<< /D [ 829 0 R /XYZ 79.752 114.286 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 89.593 null ] >>
endobj
868 0 obj
-<< /D [ 829 0 R /XYZ 79.752 103.327 null ] >>
+<< /D [ 822 0 R /XYZ 79.822 78.635 null ] >>
endobj
-869 0 obj
-<< /D [ 829 0 R /XYZ 79.752 92.368 null ] >>
-endobj
-870 0 obj
-<< /D [ 829 0 R /XYZ 79.752 81.41 null ] >>
-endobj
-828 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+821 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F84 761 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-874 0 obj
-<< /Filter /FlateDecode /Length 2437 >>
-stream
-xڵZYoH~ w>샟 @K%D" 2}/M˒Z; Y]GUUSx<_p<"aWyp؄# +/ h% ’LM?Ý4Le ?@)#iTS@HU3gQS=jD4͙ (0~_^enj9g]MUw)Vwa#
-Q*!f(;,(jrj3:q^6M⴮o$ReۮrM],AF UfY˟rnE7٭9bDYd'fD%EEJ<̈́ NUs$~&c Ie-J*_/ +/&C]vuZ}-6;QUy&k,&=U^?Vwio76m,|xɇ;b&[KALM$Vr7lZ7ΨM+d]Ul広W_
-E^o]ma²wV7Cf3A"5|QXGeZ!-t*6c]5Ҙ2>^<2-glX:7x:G !Q A\Td!
-[;*Cz/Kf(+m0HSMYMr"|N,dp@DS.
-4h
-TtM@CG"Tf$&8xpOw'oSiFhH+t@B7;?&wL
-MՖV[c[3}vJat].GKOL=X Rf`pLu2#Vd:m=}'US-i3.ʣk'zsY1X):3h}AZZ76 xV/(K09RMpX k`f3 {S5MXrpI3!bCg{>',f- W}]x1!2}>;%G K
-/yY[6vo0dY~+pܬ;r̅HO"C_h0adGD
+872 0 obj
+<< /Filter /FlateDecode /Length 3051 >>
+stream
+xI#ޯMKB
+ Cww<CH$p4 CcBPJnkvp
+ܾ}7`;"zo ˗֛Pmvi{;uiFqJD2MP?52l ˨kP~#
+N.{WJש]~BHFT~'dBh?EV/C&&yC( 'j1UKgblTI8t5Q
+=nځ(&lGWC7jORxNlζk8PNՈ4DpHϖ(BnPD7#X[
+B+I0rIb
+1FdnBGWdʯDM n".^
+e$rze2(c~ejMzC!5%SPcg=gu_q1'<W\ץw·/TVQ)E^' IPm8R!X=Bn1ݳ2({]T̷>$mfmm*\.<Bٻp'_M =Mը㻴7U괊&*vĵҚZHx")X%Ahuiio6WbW]0?ϸⵉ5u<-%P5"ljҮS<n;
+Z'6Mg:Ƞ<6~.QPSz;B;݌XB'cqL ބ χx׫4N1
+%j3t'甃d>i_mz7Q&_
+h~,@l=~zLJ6wXk`69|_eIzf!?':NڃtB~O[A o!˥PVj&Yury:~#ϒN5~J  烈\ dMwΥOt9!ML;<Z$gf)ZI55AJY"CRYT]ٌEM&A5|7C`\u"OB8턲SnΠXrbʅ_X/ 3 /`!Q )m8@NEK퉦bK"Jaokر`d<}<q VV E=m)uV!C3'{8a0qhq*U3
+P+#ǭ]cRQ|?gtrv1 9{ih AH%U^
+'r?yp=}SWfijaln$A
+"NuAl{΁ J֌Mϟ=v
endstream
endobj
+871 0 obj
+<< /Type /Page /Contents 872 0 R /Resources 870 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
+endobj
873 0 obj
-<< /Type /Page /Contents 874 0 R /Resources 872 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 871 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+874 0 obj
+<< /D [ 871 0 R /XYZ 79.822 768.829 null ] >>
endobj
875 0 obj
-<< /D [ 873 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 757.87 null ] >>
endobj
876 0 obj
-<< /D [ 873 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 746.912 null ] >>
endobj
877 0 obj
-<< /D [ 873 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 735.953 null ] >>
endobj
878 0 obj
-<< /D [ 873 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 724.994 null ] >>
endobj
879 0 obj
-<< /D [ 873 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 714.035 null ] >>
endobj
880 0 obj
-<< /D [ 873 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 703.076 null ] >>
endobj
881 0 obj
-<< /D [ 873 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 692.117 null ] >>
endobj
882 0 obj
-<< /D [ 873 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 681.158 null ] >>
endobj
883 0 obj
-<< /D [ 873 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 670.199 null ] >>
endobj
884 0 obj
-<< /D [ 873 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 659.24 null ] >>
endobj
885 0 obj
-<< /D [ 873 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 594.51 null ] >>
endobj
886 0 obj
-<< /D [ 873 0 R /XYZ 79.752 654.377 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 583.551 null ] >>
endobj
887 0 obj
-<< /D [ 873 0 R /XYZ 79.752 643.418 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 542.731 null ] >>
endobj
888 0 obj
-<< /D [ 873 0 R /XYZ 79.752 577.072 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 531.773 null ] >>
endobj
889 0 obj
-<< /D [ 873 0 R /XYZ 79.752 566.113 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 520.814 null ] >>
endobj
890 0 obj
-<< /D [ 873 0 R /XYZ 79.752 489.517 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 509.855 null ] >>
endobj
891 0 obj
-<< /D [ 873 0 R /XYZ 79.752 478.558 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 498.896 null ] >>
endobj
892 0 obj
-<< /D [ 873 0 R /XYZ 79.752 467.599 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 487.937 null ] >>
endobj
893 0 obj
-<< /D [ 873 0 R /XYZ 79.752 363.568 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 459.072 null ] >>
endobj
894 0 obj
-<< /D [ 873 0 R /XYZ 79.752 352.61 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 448.113 null ] >>
endobj
895 0 obj
-<< /D [ 873 0 R /XYZ 79.752 341.651 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 407.294 null ] >>
endobj
896 0 obj
-<< /D [ 873 0 R /XYZ 79.752 330.692 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 396.335 null ] >>
endobj
897 0 obj
-<< /D [ 873 0 R /XYZ 79.752 319.733 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 385.376 null ] >>
endobj
898 0 obj
-<< /D [ 873 0 R /XYZ 79.752 308.774 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 374.417 null ] >>
endobj
899 0 obj
-<< /D [ 873 0 R /XYZ 79.752 297.815 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 363.458 null ] >>
endobj
900 0 obj
-<< /D [ 873 0 R /XYZ 79.752 286.856 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 352.499 null ] >>
endobj
901 0 obj
-<< /D [ 873 0 R /XYZ 79.752 275.897 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 341.54 null ] >>
endobj
902 0 obj
-<< /D [ 873 0 R /XYZ 79.752 264.938 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 330.581 null ] >>
endobj
903 0 obj
-<< /D [ 873 0 R /XYZ 79.752 253.979 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 319.622 null ] >>
endobj
904 0 obj
-<< /D [ 873 0 R /XYZ 79.752 243.021 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 308.663 null ] >>
endobj
905 0 obj
-<< /D [ 873 0 R /XYZ 79.752 232.062 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 255.889 null ] >>
endobj
906 0 obj
-<< /D [ 873 0 R /XYZ 79.752 221.103 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 244.93 null ] >>
endobj
907 0 obj
-<< /D [ 873 0 R /XYZ 79.752 210.144 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 233.971 null ] >>
endobj
908 0 obj
-<< /D [ 873 0 R /XYZ 79.752 199.185 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 223.012 null ] >>
endobj
909 0 obj
-<< /D [ 873 0 R /XYZ 79.752 188.226 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 212.053 null ] >>
endobj
910 0 obj
-<< /D [ 873 0 R /XYZ 79.752 177.267 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 111.511 null ] >>
endobj
911 0 obj
-<< /D [ 873 0 R /XYZ 79.752 166.308 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 100.552 null ] >>
endobj
912 0 obj
-<< /D [ 873 0 R /XYZ 79.752 155.349 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 89.593 null ] >>
endobj
913 0 obj
-<< /D [ 873 0 R /XYZ 79.752 144.39 null ] >>
+<< /D [ 871 0 R /XYZ 79.822 78.635 null ] >>
endobj
-914 0 obj
-<< /D [ 873 0 R /XYZ 79.752 133.431 null ] >>
-endobj
-915 0 obj
-<< /D [ 873 0 R /XYZ 79.752 122.473 null ] >>
+870 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F73 267 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
916 0 obj
-<< /D [ 873 0 R /XYZ 79.752 111.514 null ] >>
+<< /Filter /FlateDecode /Length 2654 >>
+stream
+xn+7
+$
+o\gNp_[lkX7>pn_o?81!KNxR*뿧?ΔJan*s揇T'Mk BPS-4c>= U0{}ާ}>»<~J}y "$XVm]U"V#-b"~0u5{\ |xFg9swP@քw+ a3('ck!N
+NԂ]@ʩ\ sΑwxH[
+>DhPěpFeH0GV=EXeQPqFEùދܻ^]3~VfK4D ᮋ{*uZ<:7h.]X\ @bI:qHQj/^%#rz~+Ue_n  AmZ~/:_&e*&o=`'ojU
+.IGg)D l٧Z({Ği)˹/*{%ҴuIBUm{,X&J^YBҶjou5z[[w*#˥`fbu :Q eRvI8x!iq]1 
+ܔ-z?3DPD=pY\d>.(g6/XW1qEiW0qV%%%m It?K8mnܐ'o+G\A6tJ9I
+rf[.8WWѹSǔ+ f`^cx e+D ^6qtaY0LtлFSul@/,;(2udguP)jx]L|^
+endstream
+endobj
+915 0 obj
+<< /Type /Page /Contents 916 0 R /Resources 914 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
917 0 obj
-<< /D [ 873 0 R /XYZ 79.752 100.555 null ] >>
+<< /D [ 915 0 R /XYZ 78.37 808.885 null ] >>
endobj
918 0 obj
-<< /D [ 873 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 768.829 null ] >>
endobj
919 0 obj
-<< /D [ 873 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-872 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 915 0 R /XYZ 79.822 757.87 null ] >>
endobj
-922 0 obj
-<< /Filter /FlateDecode /Length 2704 >>
-stream
-xڭZKۺWz[
-'3(r¤ Y rx F>X]e2+fd`E2JXF8Wf.SɤHyuF`LZzi FtF!@:K#=s[79##f#,Pf6DE3)S[0j_M<M/NhC1Ӊ
-` ,_
-E`\lU_wwy{)eMHOJ"𜈫4KmI&]Ю%Cω6/ZVArOJwI5iĭ^O,kHWA6WE9X("00+«q87V3m<eׯp=`ZN$&,d^ĔHabHa b:2U7:*C'fQVnY F@ʴIW儆ҸZ21`>=xOu(|&J$sFuȒ56PMhH$V ;D!|Z
-8 L9pic]&S)\^ma^<~Z>U”
-cb49#G~( XM|U'qVF)XF춹k_~?1>8$eRN]4͟ B)COS4eO!Ze1y9+IRJ P؜ϫ2W<*IeGN֒%j<΢yeZ|מswy12bt d4FdBibLɥPQ+T^EC~}UW=&rxzbaԩ>=+d)u<SRa/HX`x)*0ljFNo׬e
-թ厍5T.6t|~2)sӎ/`Wؿm]s|hl8pqnc5mZ*! ?L[fkgMWO=\ AC$_1P kڵ]m~O<m~&R!
-cN'5Jƕ0ʠ6P2 4 53's6Ĥ S+pfOHcGmu wWcYu.ɹ\6ܼD
-l`_6Tz wc/spl.1 ul3{<AG0o-i>/4s@mS
-J(`+3cxjC/{?7$8F 
-ܣn/iO 4,3iƱ12T:Px|8 ',=x"w睕Ջ3j7I秱a덻ǯ)N> I0_5)(5q0"X g7/p֮һb`C]r忚sG$l ED݌x&;}$xU=UI`H&FRg#p[6h}l0.REUYX0k{t/Cbm'w?g!QK$N|S6ϲ48dWDQO1rf5>-g1ֲݯ@kC+t09_=yw=)o<UN6KSlri^$}
-6Ŏj{{7ZԶV}'WӿW$f9<)b!_[V[g
-endstream
+920 0 obj
+<< /D [ 915 0 R /XYZ 79.822 717.303 null ] >>
endobj
921 0 obj
-<< /Type /Page /Contents 922 0 R /Resources 920 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 915 0 R /XYZ 79.822 706.344 null ] >>
+endobj
+922 0 obj
+<< /D [ 915 0 R /XYZ 79.822 695.385 null ] >>
endobj
923 0 obj
-<< /D [ 921 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 684.427 null ] >>
endobj
924 0 obj
-<< /D [ 921 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 643.859 null ] >>
endobj
925 0 obj
-<< /D [ 921 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 632.901 null ] >>
endobj
926 0 obj
-<< /D [ 921 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 580.378 null ] >>
endobj
927 0 obj
-<< /D [ 921 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 569.419 null ] >>
endobj
928 0 obj
-<< /D [ 921 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 558.46 null ] >>
endobj
929 0 obj
-<< /D [ 921 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 547.502 null ] >>
endobj
930 0 obj
-<< /D [ 921 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 536.543 null ] >>
endobj
931 0 obj
-<< /D [ 921 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 525.584 null ] >>
endobj
932 0 obj
-<< /D [ 921 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 485.017 null ] >>
endobj
933 0 obj
-<< /D [ 921 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 474.058 null ] >>
endobj
934 0 obj
-<< /D [ 921 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 463.099 null ] >>
endobj
935 0 obj
-<< /D [ 921 0 R /XYZ 79.752 594.513 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 452.14 null ] >>
endobj
936 0 obj
-<< /D [ 921 0 R /XYZ 79.752 583.554 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 441.181 null ] >>
endobj
937 0 obj
-<< /D [ 921 0 R /XYZ 79.752 542.734 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 430.222 null ] >>
endobj
938 0 obj
-<< /D [ 921 0 R /XYZ 79.752 531.775 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 419.263 null ] >>
endobj
939 0 obj
-<< /D [ 921 0 R /XYZ 79.752 520.816 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 408.304 null ] >>
endobj
940 0 obj
-<< /D [ 921 0 R /XYZ 79.752 509.857 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 397.345 null ] >>
endobj
941 0 obj
-<< /D [ 921 0 R /XYZ 79.752 498.898 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 386.386 null ] >>
endobj
942 0 obj
-<< /D [ 921 0 R /XYZ 79.752 487.939 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 375.428 null ] >>
endobj
943 0 obj
-<< /D [ 921 0 R /XYZ 79.752 459.075 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 364.469 null ] >>
endobj
944 0 obj
-<< /D [ 921 0 R /XYZ 79.752 448.116 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 353.51 null ] >>
endobj
945 0 obj
-<< /D [ 921 0 R /XYZ 79.752 407.296 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 342.551 null ] >>
endobj
946 0 obj
-<< /D [ 921 0 R /XYZ 79.752 396.337 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 326.89 null ] >>
endobj
947 0 obj
-<< /D [ 921 0 R /XYZ 79.752 385.378 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 315.931 null ] >>
+endobj
+25 0 obj
+<< /D [ 915 0 R /XYZ 79.37 301.417 null ] >>
endobj
948 0 obj
-<< /D [ 921 0 R /XYZ 79.752 374.419 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 188.224 null ] >>
endobj
949 0 obj
-<< /D [ 921 0 R /XYZ 79.752 363.46 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 177.265 null ] >>
endobj
950 0 obj
-<< /D [ 921 0 R /XYZ 79.752 352.501 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 166.306 null ] >>
endobj
951 0 obj
-<< /D [ 921 0 R /XYZ 79.752 341.543 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 155.347 null ] >>
endobj
952 0 obj
-<< /D [ 921 0 R /XYZ 79.752 330.584 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 144.388 null ] >>
endobj
953 0 obj
-<< /D [ 921 0 R /XYZ 79.752 319.625 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 133.429 null ] >>
endobj
954 0 obj
-<< /D [ 921 0 R /XYZ 79.752 308.666 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 122.47 null ] >>
endobj
955 0 obj
-<< /D [ 921 0 R /XYZ 79.752 255.891 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 111.511 null ] >>
endobj
956 0 obj
-<< /D [ 921 0 R /XYZ 79.752 244.932 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 100.552 null ] >>
endobj
957 0 obj
-<< /D [ 921 0 R /XYZ 79.752 233.973 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 89.593 null ] >>
endobj
958 0 obj
-<< /D [ 921 0 R /XYZ 79.752 223.014 null ] >>
-endobj
-959 0 obj
-<< /D [ 921 0 R /XYZ 79.752 212.055 null ] >>
+<< /D [ 915 0 R /XYZ 79.822 78.635 null ] >>
endobj
-960 0 obj
-<< /D [ 921 0 R /XYZ 79.752 111.514 null ] >>
+914 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
961 0 obj
-<< /D [ 921 0 R /XYZ 79.752 100.555 null ] >>
+<< /Filter /FlateDecode /Length 2285 >>
+stream
+xZn#7+U\ÀeY[kr_})vKMigVjaO
+__/߮F$sV y%~'(<-WεJ
+vdmOD gBR"P§3ˋ'g&mV8Pv$Ѯ@
+ǔR
+H wxM#T^eJ
+12<tJo<Ht~NGbJC^߮_~s/f/[0 @M5G* LG,C/wB,yVir3AK
+/xk7Gk"h s(Iq wʑN\oOZE9\֕9պbW§
+f6HE;K9cOa:<OL=*,PvײyBdJ_CQ,t ]nkpY)]Mkn@$Ž6:&olVvK v[ u8wnRBG*GDp}!ehTXP\BJ_d oR@);+b)g#50aa]HfҖ!*
+8ؤPLpHUT ۖݻǠ)QiG˃FĖ0sތh0ANb 3$V&/ v&&#M'v:i0)~u<['
+!0F* ahܞ`QҲڷn"khODp~$o
+*>Q~޸_CdkunKg=F %/5apV14CWg?~\f۾ݑ iGLKKaEg#&+n$klxxL+}9dq_/@
+endstream
+endobj
+960 0 obj
+<< /Type /Page /Contents 961 0 R /Resources 959 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
962 0 obj
-<< /D [ 921 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 960 0 R /XYZ 78.37 808.885 null ] >>
endobj
963 0 obj
-<< /D [ 921 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-920 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 960 0 R /XYZ 79.822 768.829 null ] >>
endobj
-966 0 obj
-<< /Filter /FlateDecode /Length 2359 >>
-stream
-xZK6p07%X`E&==dƖm!t&oK&~EEVUrO~/ |ͻNRS2y\`XOD*D
-6Fy'/YQyװջHʐS8?aꦟͶyㄛ7}y.+=Ͳ.OtVnm%,<G8'^|, &%X"-4<ӜVh~SBTL(fxhoȞQƳ'=3~`YyW޾ﷷw8[׳wʺq>8u;&x0U;=[dԟ|wwbXH(
-zwx|8|C H{"J]2L Kӌ{<.8E]I)Dx$ikwoZyO 9cv?ohDY( ,K/'Mr8p=꺶o"^?Ϋ_?e2+
--
-Tp2O;9vE$s -Y)
- AH*P%2#o)qDf:'M]m/J϶pmggè`*I/ Z)vլ f£d< Y!a\xAEZ r#٘_{5˹0a/&ˇ#+Hx`^.df8ʹP͊ڶ]0Xx,4XK3U=ӛclU5'j9y}6WUc`&u=_naTn攧A1_ k 8k,mבֿV޲Y:FO|ݴX5H;8Y 8`zI=ִaXU;48(Tvo.
->3HeRDȤ {k۔M E|H Fd
-_X*'Y_H~triNVկMU6P|?_
-Sye1Xњ 6t۵N56Qޘ{H .A !Ž!2a2a8c+ZcQ U)ts7(BK"w0taURස ,庲Fj͇Ϲ*h.<><CE[{vܮ4u5#e%\1;߶Ŷ:_8CR15?co73)mW\8ꊪl{ӏ ?).Η#Wn*[
- RgD uߔSI`"bᮖu\wv.f2 SרO!mۣB#{U[{ Gͦ7>ko$Ri#MԛyWQ3A
-endstream
+964 0 obj
+<< /D [ 960 0 R /XYZ 79.822 757.87 null ] >>
endobj
965 0 obj
-<< /Type /Page /Contents 966 0 R /Resources 964 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 960 0 R /XYZ 79.822 746.912 null ] >>
+endobj
+966 0 obj
+<< /D [ 960 0 R /XYZ 79.822 735.953 null ] >>
endobj
967 0 obj
-<< /D [ 965 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 724.994 null ] >>
endobj
968 0 obj
-<< /D [ 965 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 714.035 null ] >>
endobj
969 0 obj
-<< /D [ 965 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 703.076 null ] >>
endobj
970 0 obj
-<< /D [ 965 0 R /XYZ 79.752 717.298 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 692.117 null ] >>
endobj
971 0 obj
-<< /D [ 965 0 R /XYZ 79.752 706.339 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 681.158 null ] >>
endobj
972 0 obj
-<< /D [ 965 0 R /XYZ 79.752 695.38 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 670.199 null ] >>
endobj
973 0 obj
-<< /D [ 965 0 R /XYZ 79.752 684.421 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 659.24 null ] >>
endobj
974 0 obj
-<< /D [ 965 0 R /XYZ 79.752 643.846 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 648.281 null ] >>
endobj
975 0 obj
-<< /D [ 965 0 R /XYZ 79.752 632.887 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 637.322 null ] >>
endobj
976 0 obj
-<< /D [ 965 0 R /XYZ 79.752 580.356 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 590.498 null ] >>
endobj
977 0 obj
-<< /D [ 965 0 R /XYZ 79.752 569.397 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 579.539 null ] >>
endobj
978 0 obj
-<< /D [ 965 0 R /XYZ 79.752 558.438 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 568.58 null ] >>
endobj
979 0 obj
-<< /D [ 965 0 R /XYZ 79.752 547.479 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 557.621 null ] >>
endobj
980 0 obj
-<< /D [ 965 0 R /XYZ 79.752 536.521 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 546.662 null ] >>
endobj
981 0 obj
-<< /D [ 965 0 R /XYZ 79.752 525.562 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 535.704 null ] >>
endobj
982 0 obj
-<< /D [ 965 0 R /XYZ 79.752 484.986 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 524.745 null ] >>
endobj
983 0 obj
-<< /D [ 965 0 R /XYZ 79.752 474.027 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 513.786 null ] >>
endobj
984 0 obj
-<< /D [ 965 0 R /XYZ 79.752 463.069 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 502.827 null ] >>
endobj
985 0 obj
-<< /D [ 965 0 R /XYZ 79.752 452.11 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 491.868 null ] >>
endobj
986 0 obj
-<< /D [ 965 0 R /XYZ 79.752 441.151 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 480.909 null ] >>
endobj
987 0 obj
-<< /D [ 965 0 R /XYZ 79.752 430.192 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 469.95 null ] >>
endobj
988 0 obj
-<< /D [ 965 0 R /XYZ 79.752 419.233 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 458.991 null ] >>
endobj
989 0 obj
-<< /D [ 965 0 R /XYZ 79.752 408.274 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 448.032 null ] >>
endobj
990 0 obj
-<< /D [ 965 0 R /XYZ 79.752 397.315 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 437.073 null ] >>
endobj
991 0 obj
-<< /D [ 965 0 R /XYZ 79.752 386.356 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 426.115 null ] >>
endobj
992 0 obj
-<< /D [ 965 0 R /XYZ 79.752 375.397 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 415.156 null ] >>
endobj
993 0 obj
-<< /D [ 965 0 R /XYZ 79.752 364.438 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 404.197 null ] >>
endobj
994 0 obj
-<< /D [ 965 0 R /XYZ 79.752 353.48 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 393.238 null ] >>
endobj
995 0 obj
-<< /D [ 965 0 R /XYZ 79.752 342.521 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 382.279 null ] >>
endobj
996 0 obj
-<< /D [ 965 0 R /XYZ 79.752 326.852 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 371.32 null ] >>
endobj
997 0 obj
-<< /D [ 965 0 R /XYZ 79.752 315.893 null ] >>
-endobj
-29 0 obj
-<< /D [ 965 0 R /XYZ 79.37 301.42 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 360.361 null ] >>
endobj
998 0 obj
-<< /D [ 965 0 R /XYZ 79.752 188.226 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 349.402 null ] >>
+endobj
+29 0 obj
+<< /D [ 960 0 R /XYZ 79.37 325.946 null ] >>
endobj
999 0 obj
-<< /D [ 965 0 R /XYZ 79.752 177.267 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 230.849 null ] >>
endobj
1000 0 obj
-<< /D [ 965 0 R /XYZ 79.752 166.308 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 219.89 null ] >>
endobj
1001 0 obj
-<< /D [ 965 0 R /XYZ 79.752 155.349 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 208.931 null ] >>
endobj
1002 0 obj
-<< /D [ 965 0 R /XYZ 79.752 144.39 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 144.174 null ] >>
endobj
1003 0 obj
-<< /D [ 965 0 R /XYZ 79.752 133.431 null ] >>
-endobj
-1004 0 obj
-<< /D [ 965 0 R /XYZ 79.752 122.473 null ] >>
+<< /D [ 960 0 R /XYZ 79.822 79.417 null ] >>
endobj
-1005 0 obj
-<< /D [ 965 0 R /XYZ 79.752 111.514 null ] >>
+959 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F81 505 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1006 0 obj
-<< /D [ 965 0 R /XYZ 79.752 100.555 null ] >>
+<< /Filter /FlateDecode /Length 3086 >>
+stream
+x\ˎ[9+H(f`3P{-^t/(CJ2/|/7`|/b=b`܈]9
+;좠/=L-zz+:Lv1#f C"{hH^oLFʾdz@aUQO*B<J1zV(zx*k&'X8<44jD[fW*Q+ūU^Ҝ)֏k"@U3{GQѫ
+|}c淗k:\h:UY>P{TX\Qf} T~-z3WjvC]H^1lT*?WHR8
+֣l4ɦ#
+%b0\
+wF<`֯zk|5E #Y<o3[!F^w˹<}*kdw*yJ?{QW~&;7<sڏ#W7tm?57#ٜL##|xL<0H9~͠?W_@u>;R+;Ϥ
+Q\
+T~5?y*3t {BStvT0AMǷ̚Ig5!dp\ {<>&f3_:>JC8+N8S8 nu'2NJ 'P08
+oE,)N<MJF}s ׿˙O% D}kCzl{bS'M6M-Ba3}-hii}TNJsvxƾ5 ʦ9y*x{[x ƙ2SȞP$wW{7oD>_،3;?aQƔYȝ
+endstream
+endobj
+1005 0 obj
+<< /Type /Page /Contents 1006 0 R /Resources 1004 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
1007 0 obj
-<< /D [ 965 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 1005 0 R /XYZ 78.37 808.885 null ] >>
endobj
1008 0 obj
-<< /D [ 965 0 R /XYZ 79.752 78.637 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 731.342 null ] >>
endobj
-964 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1011 0 obj
-<< /Filter /FlateDecode /Length 2040 >>
-stream
-xڵZ]o6}ϯ0HX~
-0(n%m:&K4R$mIeٔag?_pE~?_zVG&W329ϔ$K2&[4ʥdz% #"oԽi]o#B?'f9"L9p+'X4}3wuLjD4TyT84j}L,UvM]oWwaB\1%\e0-3-4bCeUR@ @A%QOBMG?\9b<I'y,%Ey$8"D. $M#
-Igc ԫh:ݲٙKQPb4)߄ WoI>b;ATIdޟ M5l}v[sD{xz.ffe`דLwTvI.ϊ,k6YOdD#yOPL#E-8+{DZ/*3yo<YR9tIh3'rJ*kJz ͊u[*7W•ga< ]ԾMCۄ=b]6YӮʺMRWVZX
->v.}Cb>IJ#4L 4m; ėx0 @+tiNtYҜQg$huפ:Kq\pZ .JdN78efy A@O#2_Z`"diAIL:D¢BfGHc<*L1)9yNe`X+bk]>lt]:7:ruOdy9\0!0&"LB8d)ZǐnӴ99#gjbai[lIÆ,sQpBmSu,r8qGʥ/UNӈ%,Ó !ʬR*jB_ݻv{'"W,Dn6oaؾ$can*C`ת}mUm-V7:SAiFkDsN-3-7¾1TUa!0օvAVm3ĚKȑ- ^P`dЬVfuѷ~"B!Yml]o7+$O6KۊŔ)9s*,cTDϙC#
-
-4v??t"/7d?mr3Zy׺Pµ= &8!֩:S(4f4b-ƪKhj\@򶬻reX pաR[^8:׳eNRdb V 땹A$V,s3!-BOW~
-endstream
+1009 0 obj
+<< /D [ 1005 0 R /XYZ 79.822 680.762 null ] >>
endobj
1010 0 obj
-<< /Type /Page /Contents 1011 0 R /Resources 1009 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 1005 0 R /XYZ 79.822 669.803 null ] >>
+endobj
+1011 0 obj
+<< /D [ 1005 0 R /XYZ 79.822 631.179 null ] >>
endobj
1012 0 obj
-<< /D [ 1010 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 568.644 null ] >>
endobj
1013 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 557.685 null ] >>
endobj
1014 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 546.726 null ] >>
endobj
1015 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 472.236 null ] >>
endobj
1016 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 461.277 null ] >>
endobj
1017 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 450.318 null ] >>
endobj
1018 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 439.359 null ] >>
endobj
1019 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 428.4 null ] >>
endobj
1020 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 417.441 null ] >>
endobj
1021 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 406.483 null ] >>
endobj
1022 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 331.993 null ] >>
endobj
1023 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 321.034 null ] >>
endobj
1024 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 310.075 null ] >>
endobj
1025 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 235.585 null ] >>
endobj
1026 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 590.5 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 224.626 null ] >>
endobj
1027 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 579.542 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 213.667 null ] >>
endobj
1028 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 568.583 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 163.087 null ] >>
endobj
1029 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 557.624 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 152.128 null ] >>
endobj
1030 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 546.665 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 89.593 null ] >>
endobj
1031 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 535.706 null ] >>
+<< /D [ 1005 0 R /XYZ 79.822 78.635 null ] >>
endobj
-1032 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 524.747 null ] >>
-endobj
-1033 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 513.788 null ] >>
+1004 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1034 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 502.829 null ] >>
+<< /Filter /FlateDecode /Length 2868 >>
+stream
+x[Ɏ9+f0
+(Y`3ks 2dJT}]$]oϼ.M".3i/ƍ?87sy. O\ Ε->1Wgiq$\382~[>Ң8  ȷ]e2{5_
+DĿ)0B [޵qKt8V:W zwJKh(Yƪ_MQihBm1vN2Dh'ʸNTTS8wL|;BdB(p %+ ҃%x((U$X88FC=:CgѬoŤ\g 9tކ_u98,JK
+\i +Q P*KTRnn
+n,Ơ2ArX3gUmĔ׊Sv pR|1ndI LN>X |ZA*LHr>ZW妙K`[y\կưc/gq?aJmqF- %XV㓺n 3=l:"QXy'єJcŴg_20bE {eňQbB9B1fOȹPt$n8y%#yrB uգ A~I츕{Vj2c\JT"kQJ4,eLZKō"q}㨁ƕ?h;m8`I
+tf'ϴAʢN%_(i J` u{Qwf&(MŭifJ/A&ˮ|/a3XWyf`aBNƑhM]Hz( L[оܽf:MԖAjS
+ :lYV+L 6
+#Xf)ÄCbzީ'+; EO-;NP҃X'r#VP [O~S*ƽz
+iP-cOg|+3ؾԤFB( 5L앩\D" 8ʇ5#iN'EfY23|]Qqذ`cOCrHz4mz~dX#{ڧTO2-Pc(3ZNiH, -z])'@f(vL =9(^hnO٦l|/kM^<X慼.W<./l\UsQٺH?+1Ş8eǠ`V *#z G09ɝW}{oR}҆
+~>p9euܫu+sס F¢.i7MIɍ EW\q>'x|5pQb#n}iۜ>^eڶU<XtJyelG*yۯj=i'Ql?CM(ݳ"EW</aNtٚaLl]"gt^mNz ܜi_M5w''Ku qՎoG+VijjO9Z5J=6V>ǚ3,WzSx+'<gw'ގ.n@%m,}g^0*paRiC_NL@gFnFSS#'=Ldi `@َp=_{i#kS%;eOtBnޥKϊjs -9!J.!)F3Q7c@;hŤ4# *od(xg'2%%Y(o7N$P)?25=\>Nݽ<&{ms~Ez)yp$ F~&w3z#4ScatsFo׌eMB?(kif D?x =j+ *Y՛stY &h1%l/~}3
+endstream
+endobj
+1033 0 obj
+<< /Type /Page /Contents 1034 0 R /Resources 1032 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
1035 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 491.87 null ] >>
+<< /D [ 1033 0 R /XYZ 78.37 808.885 null ] >>
endobj
1036 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 480.911 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 754.882 null ] >>
endobj
1037 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 469.953 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 690.124 null ] >>
endobj
1038 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 458.994 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 637.322 null ] >>
endobj
1039 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 448.035 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 626.364 null ] >>
endobj
1040 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 437.076 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 573.562 null ] >>
endobj
1041 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 426.117 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 542.677 null ] >>
endobj
1042 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 415.158 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 531.719 null ] >>
endobj
1043 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 404.199 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 520.76 null ] >>
endobj
1044 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 393.24 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 430.1 null ] >>
endobj
1045 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 382.281 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 395.23 null ] >>
endobj
1046 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 371.322 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 384.271 null ] >>
endobj
1047 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 360.363 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 319.514 null ] >>
endobj
1048 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 349.405 null ] >>
-endobj
-33 0 obj
-<< /D [ 1010 0 R /XYZ 79.37 325.943 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 278.667 null ] >>
endobj
1049 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 231.06 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 225.865 null ] >>
endobj
1050 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 220.101 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 173.063 null ] >>
endobj
1051 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 209.142 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 162.105 null ] >>
endobj
1052 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 144.385 null ] >>
-endobj
-1053 0 obj
-<< /D [ 1010 0 R /XYZ 79.752 79.628 null ] >>
+<< /D [ 1033 0 R /XYZ 79.822 109.303 null ] >>
endobj
-1009 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+1032 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1056 0 obj
-<< /Filter /FlateDecode /Length 2768 >>
-stream
-xZK6W趚* Onz/s[o( #L
-Iyq忧 EP2EN*$nt7_/~~7~""A//B%aIyX1ʗ;R`XnVT/!}Yy|(5DC}$o0cD@ʬn؛o
-/g')UY^6@duSd`-9MCR d~/QCq k 5 *ELZ*jG8u`ysLMb=-Bcy.l{/45P4  m~ιyvaTK)]i^['e]gt.hy4?9WsR铵2_0,S[MZjޔe>#$13H0veyقDF:A >ąw?daht`Z5<UN͛I& &њr|*󼴦~Ίoep,j-amnvퟍg$q$c@S%i,>[j*ώY31 f|puV44`0sJ էr6*wROތ6
- dwz;&-uL پ)EI[ds|3~>r5Nk&s&s g +)LYi'
-)<佳Uo=Y'ƨdٺuYR/)kIq&"ʦ~w(ײh|Kab"F= "'܉Ys#N!(55$BL 3kAs'Hg_ A ކL8nLM= jхx=t
-D}uL6*}ɒ/^?G55P/??@U7{l1ovo蟛s9G-˧[UF`}gqR c/
-"`'2&B$:f7{ +-v,nN_[ لVF5K>PӹYo˝y_l>+v MEP8W ЭzޡF^k ^_Ea1)r4$sᖓ`〒0P{ƌgo94>ޟm5Yt3ns
-τtPVljNKv_!]RNO; m
-)65-ڧg6{YPٻv[iz,APBnK /APM|Iaz `ܿuII4`u)&i9[e <WyBvN*yZMzL ²ǼXPYiy
-[V*,dx} JRNQ8A{fr ꉤEJ.CS=J"ŒxBBʾ0bü6W
-
-S‘~bba
-d( ]aޫ~uw,B
-B/Mp"{O~aY xjb"ZYb|*N裎݇lk#'[7@Ng=Vݍ!x&X%,D@bjw!:.
-8߀"{ ׸
+1055 0 obj
+<< /Filter /FlateDecode /Length 3059 >>
+stream
+x\n9+&; \`3ks .Af)Y<Ara01v2/˟x7/yF]~E\g^q?97sy ?$w \)?n} oAE~Yj,^y@a.'Y ׾ 3onelX
+3ek!RN!˦g0NpD\*?9 "Q((35˓r"#22X$fhPQ$=DNlz+qCLy&,h+>a^8iETZ&,e}ΒXʮ]G:qŕmDأ)F%BI+|)&,W$SH7UYyPXdgRU$bd_Ԧm g٥jPtk>F-3dAcC1FBS/zx~!.'ddy߸o|Vj}5( H
+{F׳+7IGrc0 0y'$Tg pYId3=*1鏛X1 漡T}J!
+ LIM:9!T24eVOun* ,B~T/\geSfp#I_SN%O&[A2ɾ@j"\ä'>@xr-C&#=S
+&W\!98*Xg|}
+)dYG
+O>y9F*> NOn=РB{Y.8R4=ԵĭzkJU~oV]vԽKVĻG%{UqآR^щ9bJm
+ ok"$Ƅe/Wvo~kvW)Xon{ېeLei vs78"N(" \/8 (0fڛytHPVU͐[} Be&8֝G:~e W!0%䆹׎"3,nHμw| >n!C龳cG*OCm$3šӥE 0o2lts}iJ.Tbf\/܎wey
+ƹ]c Ɖ}Mg|@_y(OaL^P3t8dLtBVrNrA6>UFP7q^6ݒy'؄٨÷0Gr=UpDƣD6ҾJ͙`OCD| Q9>A
+^t0SP$ϭ4o h@_<{Hn8rOݦTFΊ-V[Ѻ͚]Fq?7%z ͦc)scl Ԇnca? iVtd.OQIx (eyISYzPVӔV
+t'L@Lݠԗ4Dq,%tֲrotNw@%y?}QΠE S 4,[w-{X -Z.fzlErK6i1<AS$ɥZ=IñKsm|C~5֫9^!t#[I!Hy^ zB #߬=tUk9gEVّn lӫ<&S1{q+[> B(s;aYcQs’>KC%)po#:ܼԎq)]lqi[-bsr|"N!3zq#\1]/dIn>LAS*dqydt˶w#V˹{%1̓6һdıh"p5*9H
+Dls!C%&ٓ=Q|-jbw9Gk>MOEP<$9&|S6^KU"9Vhy36r)ոSvPP;{xI՚Rɬz 9<؞Q*Q#M%?nka[!_i% &;H=,0EV@Bw@zZW[ؘn ۆF߆)G|(Z}Ճo-C֨]! LIkL>? KC:#TCN귅HZ
+!"T!R~M68'39Sg , ɼWśRY=?Lv
+H"&k&/!j&l!G-b
endstream
endobj
-1055 0 obj
-<< /Type /Page /Contents 1056 0 R /Resources 1054 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+1054 0 obj
+<< /Type /Page /Contents 1055 0 R /Resources 1053 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
+endobj
+1056 0 obj
+<< /D [ 1054 0 R /XYZ 78.37 808.885 null ] >>
endobj
1057 0 obj
-<< /D [ 1055 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 730.971 null ] >>
endobj
1058 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 731.344 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 720.012 null ] >>
endobj
1059 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 680.764 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 667.21 null ] >>
endobj
1060 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 669.805 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 656.252 null ] >>
endobj
1061 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 631.181 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 609.427 null ] >>
endobj
1062 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 568.646 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 598.468 null ] >>
endobj
1063 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 557.687 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 551.644 null ] >>
endobj
1064 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 546.728 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 510.797 null ] >>
endobj
1065 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 472.238 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 398.219 null ] >>
endobj
1066 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 461.279 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 367.335 null ] >>
endobj
1067 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 450.321 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 356.376 null ] >>
endobj
1068 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 439.362 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 345.417 null ] >>
endobj
1069 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 428.403 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 334.458 null ] >>
endobj
1070 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 417.444 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 323.499 null ] >>
endobj
1071 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 406.485 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 312.54 null ] >>
endobj
1072 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 331.995 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 301.582 null ] >>
endobj
1073 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 321.036 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 290.623 null ] >>
endobj
1074 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 310.077 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 279.664 null ] >>
endobj
1075 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 235.587 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 268.705 null ] >>
endobj
1076 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 224.628 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 257.746 null ] >>
endobj
1077 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 213.669 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 246.787 null ] >>
endobj
1078 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 163.09 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 235.828 null ] >>
endobj
1079 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 152.131 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 224.869 null ] >>
endobj
1080 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 89.596 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 213.91 null ] >>
endobj
1081 0 obj
-<< /D [ 1055 0 R /XYZ 79.752 78.637 null ] >>
-endobj
-1054 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1054 0 R /XYZ 79.822 202.951 null ] >>
endobj
-1084 0 obj
-<< /Filter /FlateDecode /Length 2575 >>
-stream
-xڝZK6W訩IpNl%L-ŒXH-IxO H-S/#1yx_;VSb‹dEWiFxJ%뇝pOm]w,]Vͳ}և ]]7: m Eb*3ow{
-S$ӔB;D*RB)G}R( *[i
-Ki!NdbZ ? `2v,[f $p(Jߘ+iX2b
-kEZMiTh针F"M$|ؘ76
-HBNTI*jBHR0r'Aa}4^Y$vU H;H"&/6)E6Ʋ6KRH2 XEXDz'rk%1`7tJÙnLRFeؾDo! P#
->?D2Y,8>Ii},.(?;.]tƱ6`xl_L+ĥbS
-T1ޤ4_{Z|E?'m o1zS;cXR3μ yq <<xeWy7.I}R>O 2BE\X[ k)8|POTO _OPO[i:Vn, Č, Z%x˹kOU'W -iyLzS]Kue~]2=8v]^NAXQytBybM1o~ ğo< 'Ҷ"n8z""lYrQ"[E9
-z˓02[a=|jP ӡރӏ KhpP.*{ø0 ?fH7H OcLP--TINNo&+Pb#YζB7eP21TvGzDj@[x_ąV6=4 B /<熫!L!HSC^1o<[I%gѦVq転Hl +] 'ʻcdOzYA${.;yQ,,w
-endstream
+1082 0 obj
+<< /D [ 1054 0 R /XYZ 79.822 191.992 null ] >>
endobj
1083 0 obj
-<< /Type /Page /Contents 1084 0 R /Resources 1082 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 1054 0 R /XYZ 79.822 181.034 null ] >>
+endobj
+1084 0 obj
+<< /D [ 1054 0 R /XYZ 79.822 170.075 null ] >>
endobj
1085 0 obj
-<< /D [ 1083 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 159.116 null ] >>
endobj
1086 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 754.884 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 148.157 null ] >>
endobj
1087 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 690.127 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 137.198 null ] >>
endobj
1088 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 126.239 null ] >>
endobj
1089 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 115.28 null ] >>
endobj
1090 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 573.564 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 104.321 null ] >>
endobj
1091 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 542.68 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 93.362 null ] >>
endobj
1092 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 531.721 null ] >>
-endobj
-1093 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 520.762 null ] >>
+<< /D [ 1054 0 R /XYZ 79.822 82.403 null ] >>
endobj
-1094 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 430.102 null ] >>
+1053 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1095 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 395.233 null ] >>
+<< /Filter /FlateDecode /Length 2638 >>
+stream
+x\r#))M D8Ѳo{=_%{J/3Q /?^~^8(
+. ༶z^+ 1BT=}H˄U
+<AA͆ L[8
+XᎸUmägnm
+Y+`1 *識}Vq?dQcvIqI3RӶ:G&)rp6Tk*(/o?kq]t@M:u_#p~oQ4n@EQ*W-:re98z*j1QL;P3Z%S K)B|kUr+Z0en2T[y<U˽q A1 5dC
+IPfJ;uy\( &*.B#UJᴿ.:]g SAXΧ9jVewY*=>$HVtH&p |}![z\r0:tj`sLjwj<B\y_n- kUR~Dd.—h`x( + ]Bu ,ʒRrE7se% h+ݪG.(W>BoVfEaq#F%2FTA?H pﳂ oao oPM}˧5)Z/VǕ68z,]":\ԺM P C\0{AL.+&_nϼU븋߄\dk>!b'k?
+HJ#O;[u)cB&[lUdbw"B†펖|vSs5gJ)J)c1i MWt_P!LpNv:Wy׳Y[͌T>J%i ŲrAd['6XS/v
+\+U3 nfGq&OB^U'e5@)a3^PSoكL%4V%PӽXt{H_j,Q ҽ8`FG%L1i|ũP*捼{*f_pEbr'4W`_,$\KV E+ݎ|~m! 2W!'Wj;ph׎+z(VP<;Z8<.ϵ3vuҰIig\YVJ &H"I8~i(G畚4<S=R^EUV
+Ƅ^f뭡qI]ɡ!3unUdOF|gئt1ĝ*e'لOs&̡ D6 Xzżήgk-N/{ȝv1㸿i]j@N<(tL1{qf)} ے$KLouβJ:R5]ke uc$)BD4>(Iح3lל:S'
+I38 {:QR3XPtK'RMyYR֋_[ zN+Lv*}hp`J2B Twb#C 8T=ɶ@k&"Wګ)u1$5sU>exyzW-=|#Z%]{
+|-ܛC;/w{"%DqQekqbr$GLWgImQC Yc[ھ|*Gp"1v"kL;lCKw֨Z?eQe[2[Nc& OAkWO0 [ˣ/*!_ްT k
+=/Ы9{*O2VseO˽.AidUG=0QNlmB6idG02\/^}yA{>l.U-%Db}l&m<׎jemEw{ѵg'֥o1gf0~JQn-WB{t5V xε \EzC޷ό2Lvdnu#:f|[O?a^\s#Be1SŔ
+e˔{*89svF7gC/q4ɱ8g3՝Ɨ߸*p9vGjVa®6<.# F>W*-YؿrVDQLz" Xa%}>\@`W18*b?,F0izp T
+ DDqzFDeG=u^B(t,-gBk)%mZ~t^q-8pPyH_!q!Tf`,^{ZMoqt&շ~LK!HWe8eSʸe;3#DN1=:=Փh<sW#)Y`Űc5Mq72B*L(Zl28QTj+l?^i
+endstream
+endobj
+1094 0 obj
+<< /Type /Page /Contents 1095 0 R /Resources 1093 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
1096 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 384.274 null ] >>
+<< /D [ 1094 0 R /XYZ 78.37 808.885 null ] >>
endobj
1097 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 319.517 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 768.829 null ] >>
endobj
1098 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 278.67 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 757.87 null ] >>
endobj
1099 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 225.868 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 746.912 null ] >>
endobj
1100 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 173.066 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 735.953 null ] >>
endobj
1101 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 162.107 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 724.994 null ] >>
endobj
1102 0 obj
-<< /D [ 1083 0 R /XYZ 79.752 109.305 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 714.035 null ] >>
endobj
-1082 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1105 0 obj
-<< /Filter /FlateDecode /Length 2701 >>
-stream
-xZ[۸~ϯ0Їzbf76/) -ՑYI$h~{oh{ls6XsG\I~zWo32H*z@2aIF׫ѿj¸ϫUf}_81{<>?LrOWE{[/p:JN͚- Uf=o#?)
-\Să; S)1pMʃX4]^q[rn@
-K>T2Hl|%^mKoz7.l2c3h⤎]PIf{4]c׬|,VuIgvnM \"L<D)W'^@S¨r0qHu)X:,/Yofvw:%R#
-*a&:uJZ j
-2L<yQ7|F59I:VmR >;0]Q,I{#+1/Xw;!΄
-G}u~E]v\4?QAo;k:D&x EGKaOq|;kn08{N<wbf&>aB#iaY,e
-
--~+se8w
-ű6Ac5 1o7-Tm9i{|)ja2&yć0sHi!qMlJHcgC6[my9͎Ք(ȎI|aDh4C;(IXaH2g@@$k?!~%#JyDl;!Nm{"<^JE= 7rՅS:,ȗ/mE@Ql.BP@WBloH >巈cĴhV4H=)h„v[iB~ ; r כuj1-|_M[b.䅡x[W@r
-qi=/^^9#[EȋFCLAք΄pbgNE g05!`*Omk:ͬWuѴ_K'8,F W iӰeܿ)BxOS~~
-endstream
+1103 0 obj
+<< /D [ 1094 0 R /XYZ 79.822 703.076 null ] >>
endobj
1104 0 obj
-<< /Type /Page /Contents 1105 0 R /Resources 1103 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 1094 0 R /XYZ 79.822 692.117 null ] >>
+endobj
+1105 0 obj
+<< /D [ 1094 0 R /XYZ 79.822 681.158 null ] >>
endobj
1106 0 obj
-<< /D [ 1104 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 670.199 null ] >>
endobj
1107 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 730.974 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 659.24 null ] >>
endobj
1108 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 720.015 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 604.446 null ] >>
endobj
1109 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 667.213 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 593.487 null ] >>
endobj
1110 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 656.254 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 582.528 null ] >>
endobj
1111 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 609.429 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 529.726 null ] >>
endobj
1112 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 598.471 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 518.767 null ] >>
endobj
1113 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 551.646 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 507.808 null ] >>
endobj
1114 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 510.799 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 476.924 null ] >>
endobj
1115 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 398.221 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 465.965 null ] >>
endobj
1116 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 367.337 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 455.006 null ] >>
endobj
1117 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 356.378 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 444.047 null ] >>
endobj
1118 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 345.42 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 433.088 null ] >>
endobj
1119 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 334.461 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 422.129 null ] >>
endobj
1120 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 323.502 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 411.171 null ] >>
endobj
1121 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 312.543 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 400.212 null ] >>
endobj
1122 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 301.584 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 343.425 null ] >>
endobj
1123 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 290.625 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 332.466 null ] >>
endobj
1124 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 279.666 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 321.507 null ] >>
endobj
1125 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 268.707 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 310.548 null ] >>
endobj
1126 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 257.748 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 299.589 null ] >>
endobj
1127 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 246.789 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 288.63 null ] >>
endobj
1128 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 235.83 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 277.671 null ] >>
endobj
1129 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 224.872 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 266.712 null ] >>
endobj
1130 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 213.913 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 255.753 null ] >>
endobj
1131 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 202.954 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 244.794 null ] >>
endobj
1132 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 191.995 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 233.836 null ] >>
endobj
1133 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 181.036 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 222.877 null ] >>
endobj
1134 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 170.077 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 211.918 null ] >>
endobj
1135 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 159.118 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 200.959 null ] >>
endobj
1136 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 148.159 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 190 null ] >>
endobj
1137 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 137.2 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 179.041 null ] >>
endobj
1138 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 126.241 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 168.082 null ] >>
endobj
1139 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 115.283 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 157.123 null ] >>
endobj
1140 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 104.324 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 146.164 null ] >>
endobj
1141 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 93.365 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 135.205 null ] >>
endobj
1142 0 obj
-<< /D [ 1104 0 R /XYZ 79.752 82.406 null ] >>
+<< /D [ 1094 0 R /XYZ 79.822 124.247 null ] >>
endobj
-1103 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1145 0 obj
-<< /Filter /FlateDecode /Length 2293 >>
-stream
-xZ]o}ϯ0Pu1ߤ,XΠ:O)
-Bd+Mo(*Ȧ/Gts//﹗2vG$|O84atv}sA!<#3!*LI$_sM_mxO2iIK(FE>lѴEvTbu.}CX,0")<{m7Y{c0^??Uq[KEp戓0cjD4wli1N|tWU= DT8N4N \̮.ؒ*{ZaeZvl K8Jg?ъ i\ ];1<eO3"#V"+؋
-m9b<rte18/۬~Ȗ!60RA=?ZJ8sZBuP\{㺛w kAW҄>??~",a 0*BL$H>]ɔW6ʦS|O@R/HrrP"$H(>dF)&)"Hl
-(howeY$.TϻUsIռRu/\/dn;Ь/d^敆ޤSDG&y
-u߲g|^I#i#v۟Bi=Y4]
- .b|GR~ˋ'd֝5묜$ !؁@GDPi`'HyXaŁ93œ꼼׶Ƅ*Lo$u8͑.-ieI{f%{.{{5 2%sUEX<m6FU!5dַ%1c :7F=ʻ@B꺪.{ ɏ.˞ v~ĽI*16x`.#m SO|qxJjoKu`?C+s}ƅFЀ:*i[:(
-n{[ϼlrpFІo;<c`>e"}MR`},()x'TL2h@{|2,imNشИݧ0ǾnWg{yOD"x!~.eRLW
-( bjlc-9&Oe/pWHwW]McN6}KRf0xmɠƶry{udtAv _!{֕xs\dn),!
-aS~\M#9H,K<p25H,^䁓6(yX}XVդ2bbya \3l DE+ڷ eaE3MhY8q T-eXeE(Ac:9NMl՗m驭Ɗ`P#Gu%}[o!Ӻںu7,8Cكx; "beY)
-֍{ڕi.VU]š:Zvoec VKoLX_0`me %NtDo*<j״fafٸDM) ?a"G5Kt 3Z4D Z{gs֎c߫#":"Lc=pӂt&5Q+p(@p"A44͋"1bi [@4d-j +~eN:d ȸC"ZEL8ٓa[x¤w[L#Z4ȏ#˪I)
-U3'2L=a61D"$0!#ý@(=,AP#^ʠx}iq7wNgN3$kߤ
-"8NI*$w'u؏GXX^F"mp"{4⿽?
-endstream
+1143 0 obj
+<< /D [ 1094 0 R /XYZ 79.822 113.288 null ] >>
endobj
1144 0 obj
-<< /Type /Page /Contents 1145 0 R /Resources 1143 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 1094 0 R /XYZ 79.822 102.329 null ] >>
endobj
-1146 0 obj
-<< /D [ 1144 0 R /XYZ 78.37 808.885 null ] >>
+1145 0 obj
+<< /D [ 1094 0 R /XYZ 79.822 91.37 null ] >>
endobj
-1147 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 768.832 null ] >>
+1146 0 obj
+<< /D [ 1094 0 R /XYZ 79.822 80.411 null ] >>
endobj
-1148 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 757.873 null ] >>
+1093 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1149 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 746.914 null ] >>
+<< /Filter /FlateDecode /Length 2211 >>
+stream
+x\r#')B74Pre[[o\S` 4#yZ?Jr-iӻOW.K<?YA}dR#38y2J}YkDix#]PC b@+@B@H(a~鄚>Ƽ5|=O)/UrKz{/w!= m}W$Ui {_Q2:^Sw۩άQWr2Cbiji"P3}TٙD)k~!xރ_[OFe,HࢩQfb&0 jr&5,dl& (, YUpg~b*R>w2SN0+_㮢wsd4WG=V7
+S1jxiU./7,M
+8(q=u* (>GOC5̴(:TU EFt~OQ
+mlIlyT8RdEuPD,Pfv=}3!:2UyyBx8HxW?Wɵ~$/q&tI(Fq=Q=jDs#9_Bjl|'X<LL6ֿfE\tUB% x]`n7!X{EH2{<RZI.'ȥދ2I2aPSVhvcx+ Ny!
+ڢӌkւV.˻S&y׿uw̓2d5GZ.(^,9eF)=UuVaRL}hYN_dǞXsFɆAAr2EWQhS :43{
+ly4kkm8+"%
+!f*3F'F͵ >ٱrRљi3Nc;cvK)>_W[N7 C!mMk7zK8N/)i8][eA?O1? I!ˎ+1kN"XEqhL/S~% 4<Ae尵ees>ih"OZ!?besP{jt 'dk_ Qx.M$\zsh}qKjm>>Sףܞ
+K]u p֧kGQCV=eYLq&8=}4Wɩ4Ѵ h dvգO\q0Pge(m8>ʨQ͙p3'iKOoBU
+<J}torǧca9jƖ~]_t{Oһrл r_4֦G6+yL_-yH.fGyqMqKi1s#ΆY=7%+rF*JG@ݚ|dQy|K)5^6e胂C
+TJA$ަd82Gޗ5ob"*E{M.ϥS/f9i/ߠvK}Elįt5%kpWLP!(O:`>[/Ox#ܪx:ml^*rkgaJ/&( C^ ectc^ J}qOJ١/"򑟓R!Y} eCՔy<pSu\O{!EFvP'zR6{uns
+endstream
+endobj
+1148 0 obj
+<< /Type /Page /Contents 1149 0 R /Resources 1147 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
1150 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 1148 0 R /XYZ 78.37 808.885 null ] >>
endobj
1151 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 768.829 null ] >>
endobj
1152 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 757.87 null ] >>
endobj
1153 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 746.912 null ] >>
endobj
1154 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 735.953 null ] >>
endobj
1155 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 724.994 null ] >>
endobj
1156 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 714.035 null ] >>
endobj
1157 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 703.076 null ] >>
endobj
1158 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 604.448 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 692.117 null ] >>
endobj
1159 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 593.489 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 681.158 null ] >>
endobj
1160 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 582.53 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 670.199 null ] >>
endobj
1161 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 529.728 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 659.24 null ] >>
endobj
1162 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 518.769 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 648.281 null ] >>
endobj
1163 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 507.811 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 637.322 null ] >>
endobj
1164 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 476.926 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 626.364 null ] >>
endobj
1165 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 465.967 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 615.405 null ] >>
endobj
1166 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 455.009 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 604.446 null ] >>
endobj
1167 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 444.05 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 593.487 null ] >>
endobj
1168 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 433.091 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 582.528 null ] >>
endobj
1169 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 422.132 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 571.569 null ] >>
endobj
1170 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 411.173 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 560.61 null ] >>
endobj
1171 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 400.214 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 549.651 null ] >>
endobj
1172 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 343.427 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 538.692 null ] >>
endobj
1173 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 332.468 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 527.733 null ] >>
endobj
1174 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 321.509 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 516.775 null ] >>
endobj
1175 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 310.55 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 505.816 null ] >>
endobj
1176 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 299.591 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 494.857 null ] >>
endobj
1177 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 288.632 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 483.898 null ] >>
endobj
1178 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 277.674 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 472.939 null ] >>
endobj
1179 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 266.715 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 461.98 null ] >>
endobj
1180 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 255.756 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 451.021 null ] >>
endobj
1181 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 244.797 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 440.062 null ] >>
endobj
1182 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 233.838 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 429.103 null ] >>
endobj
1183 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 222.879 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 418.144 null ] >>
endobj
1184 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 211.92 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 407.186 null ] >>
endobj
1185 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 200.961 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 376.301 null ] >>
endobj
1186 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 190.002 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 365.342 null ] >>
endobj
1187 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 179.043 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 354.384 null ] >>
endobj
1188 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 168.085 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 343.425 null ] >>
endobj
1189 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 157.126 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 332.466 null ] >>
endobj
1190 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 146.167 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 321.507 null ] >>
endobj
1191 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 135.208 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 310.548 null ] >>
endobj
1192 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 124.249 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 299.589 null ] >>
endobj
1193 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 113.29 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 288.63 null ] >>
endobj
1194 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 102.331 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 277.671 null ] >>
endobj
1195 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 91.372 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 266.712 null ] >>
endobj
1196 0 obj
-<< /D [ 1144 0 R /XYZ 79.752 80.413 null ] >>
-endobj
-1143 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1148 0 R /XYZ 79.822 255.753 null ] >>
endobj
-1199 0 obj
-<< /Filter /FlateDecode /Length 1958 >>
-stream
-xڽZn8}Wh/(̒3`az (6%KiYNR]*ؾv\/-.
-O Hߟ.z{Z GFF'  h% ’LnN4OL42R2b H1g(c6I/fu*)+6o뼶󫲿ci?\`D0+ c_vV_ _UU93﬩<h_Htn43p&0Cp?4kd/oeF5"{f0f̹Al] WGi=P0Y“e0!8"Ȋ1+vvAJϞ }..mq*@ +ZXGu#bXj7E1,Cl`\,GqEGiX(]pHq5*L3#-IHytnqnxZ-R7<mcs7x0ٌ[ϥ$ U̪benj+:|r5D#ah
-&ּqִt5X!ɼi&YdLzG*O.DRyA0vf 9Hy„3l:G(.fK}הs!!kV0!xޅ ]A^4L~#{ Wd<sF9T7R$%n3f5S1g10SG lƾ"GL9s_&K;jnܱԵBX{I30O O@]ID L#poذR 2LgCYI
-(Bd`{I^&] NN;!* #7Ԍ"jFy8PvO WOE¦Mo}lʔP >Pȸ8`HhČW7c5K!-lz5JΩnjA*T=/{ܞuUoX_{3#`!uoЧkb&p"ʸ50MKͦN:os'~SӬ9ˬw;Z7aC>jm6_>v]1ީOyw2޹kw4gOWx#+[#/d0_CjD762bnYܒ
-ZrU¼y>5w 7M̒h].:q.HJΕ#H6Psmtaaj~ H)IOC0Xq,!3; iI=Oq͞m=mPCKtؗqBaCm lFcK 5vxľcU>"y)s-$*`xRHXhĵؗa`CwO
-f 0!H,J:S;ŠVWi
-;Y"6ٽ/2~;O
-piߊ{svMswHlf܇ɫrxo=`j[']$Жb敃vʵv/7ۏMfsTۓ'3k1۳=MiD5ͦ]z{ٸKefUA]5wF2X2q}.>]R͌NKRw|1rV(x_]_bb#ߘ_g ͥSmҢ-qOfoL҂:vD#|BaT"pP+ m[b
-endstream
+1197 0 obj
+<< /D [ 1148 0 R /XYZ 79.822 244.794 null ] >>
endobj
1198 0 obj
-<< /Type /Page /Contents 1199 0 R /Resources 1197 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+<< /D [ 1148 0 R /XYZ 79.822 233.836 null ] >>
+endobj
+1199 0 obj
+<< /D [ 1148 0 R /XYZ 79.822 222.877 null ] >>
endobj
1200 0 obj
-<< /D [ 1198 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 211.918 null ] >>
endobj
1201 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 200.959 null ] >>
endobj
1202 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 190 null ] >>
endobj
1203 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 179.041 null ] >>
endobj
1204 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 126.239 null ] >>
endobj
1205 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 115.28 null ] >>
endobj
1206 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 104.321 null ] >>
endobj
1207 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 93.362 null ] >>
endobj
1208 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 692.119 null ] >>
-endobj
-1209 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 1148 0 R /XYZ 79.822 82.403 null ] >>
endobj
-1210 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 670.202 null ] >>
+1147 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1211 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 659.243 null ] >>
+<< /Filter /FlateDecode /Length 2551 >>
+stream
+x\n8+Ew0Pr:ss9_drp9.zߍ~7˷f7Aan? zc7c H~ӊo~~`~{(}3*M € CJٻlgi1{\)̽c%A:4iܷKzjߺ<ؒF1{[`Py={gIKt9!l6nf[9Q~\G2eX^=2~Vu ިJXx`+VW-s_ aFT
+=y*[a=dWN]CeFgZ^iK@& s4(~p`JVS4*JaJ2GirUS=P}*򜒧/ T(vm& \X |V"?\35'|d1҃li?Wm G(j_dDh`.([Zϊ'0Ƈ= )>? _Y)(|2(UI&zV5KBP
+"!Җ9&*
+B
+0KՆ57
+UYТ-}{DRMWXIH:=7AZ t6~n vxa??S;ߑp˜/B(D<K2f*<Of&lzqSS'VI43s B -Q"֟@h>F  _T #0 bo1KP6s0%ax8_`fKD@Q T)?e2=Y {k;O9{d׮b95dQojTle=4m
+iƕ~ކH2kpr oOH~Ui;Pgz`) ᦤK]`00 վ`Gޑׄvsl|B.!%Ғ 3KArGAH>&eXQ Us_x Z;iP*]W%%R"SqOBߒ14. υuz e.z=.Qɬ LͯR*[ P.@ әBѕHn&.+2!]/-m.+C 'p!2^ь1@fk]T,'KՊ>BɬpE "h1 m
+wl>L^4!, vksOnCez]Ӱ"ec3SڮUNuz
+Źv\=ԋob<ȒoXZJ^G>$WjP{-86ǁ=
+"I=%k}}̺ߜ'vއP!kƌ!0v2Y(󩱘oWt5L6*]
+'k}L{blSJky^#f[cO*J-
+r*"Gg\k3η7q N*-WD,DkSLIkWbGmRL48{2%Q"`;s Me'i&֠;p;jPDŖb%,זG
+ZKR.-]jA.@*4>т@ M 㥵!*yJ2An.|IT>jCd$J1t5PЦMhɥ&q׌  %SPIg=>/RF9тc&'
+F(mUii&gv}~lDkN8<IAz4YԾdF U lY 0m|فՔ$Ѥ7fVIuW\Ǐ
+endstream
+endobj
+1210 0 obj
+<< /Type /Page /Contents 1211 0 R /Resources 1209 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 869 0 R >>
endobj
1212 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 1210 0 R /XYZ 78.37 808.885 null ] >>
endobj
1213 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 768.829 null ] >>
endobj
1214 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 757.87 null ] >>
endobj
1215 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 615.407 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 746.912 null ] >>
endobj
1216 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 604.448 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 735.953 null ] >>
endobj
1217 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 593.489 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 724.994 null ] >>
endobj
1218 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 582.53 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 714.035 null ] >>
endobj
1219 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 571.571 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 703.076 null ] >>
endobj
1220 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 560.613 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 692.117 null ] >>
endobj
1221 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 549.654 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 681.158 null ] >>
endobj
1222 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 538.695 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 670.199 null ] >>
endobj
1223 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 527.736 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 659.24 null ] >>
endobj
1224 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 516.777 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 648.281 null ] >>
endobj
1225 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 505.818 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 637.322 null ] >>
endobj
1226 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 494.859 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 626.364 null ] >>
endobj
1227 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 483.9 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 615.405 null ] >>
endobj
1228 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 472.941 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 604.446 null ] >>
endobj
1229 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 461.982 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 593.487 null ] >>
endobj
1230 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 451.023 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 582.528 null ] >>
endobj
1231 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 440.065 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 571.569 null ] >>
endobj
1232 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 429.106 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 519.222 null ] >>
endobj
1233 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 418.147 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 508.263 null ] >>
endobj
1234 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 407.188 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 497.304 null ] >>
endobj
1235 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 376.304 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 486.345 null ] >>
endobj
1236 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 365.345 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 475.386 null ] >>
endobj
1237 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 354.386 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 464.427 null ] >>
endobj
1238 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 343.427 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 453.468 null ] >>
endobj
1239 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 332.468 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 442.509 null ] >>
endobj
1240 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 321.509 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 431.551 null ] >>
endobj
1241 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 310.55 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 420.592 null ] >>
endobj
1242 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 299.591 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 409.633 null ] >>
endobj
1243 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 288.632 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 398.674 null ] >>
endobj
1244 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 277.674 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 387.715 null ] >>
endobj
1245 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 266.715 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 335.368 null ] >>
endobj
1246 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 255.756 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 324.409 null ] >>
endobj
1247 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 244.797 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 313.45 null ] >>
endobj
1248 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 233.838 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 302.491 null ] >>
endobj
1249 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 222.879 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 291.532 null ] >>
endobj
1250 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 211.92 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 280.573 null ] >>
endobj
1251 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 200.961 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 239.878 null ] >>
endobj
1252 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 190.002 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 228.919 null ] >>
endobj
1253 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 179.043 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 217.96 null ] >>
endobj
1254 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 126.241 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 207.001 null ] >>
endobj
1255 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 115.283 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 196.042 null ] >>
endobj
1256 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 104.324 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 155.347 null ] >>
endobj
1257 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 93.365 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 144.388 null ] >>
endobj
1258 0 obj
-<< /D [ 1198 0 R /XYZ 79.752 82.406 null ] >>
-endobj
-1197 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1210 0 R /XYZ 79.822 133.429 null ] >>
endobj
-1261 0 obj
-<< /Filter /FlateDecode /Length 2114 >>
-stream
-xڽZoH~_a^iCK+͝nI{h0n;h18g&iLYϾ WU_ E*GoWn%]0
-à`a` )0
-^YFD^>܊hHHJu5UrSU_p—hdU?(ŏ ǏφAGs6q?s?OnG@#D~<jWM&dVNn{)c s !! C69;zJ2a.o,!~*=|š@Lϙ^D@Zԋv(=tkurFr2DYd f~IhϘ1`MN-B!JI
-?[`c7\h 6Q쀍9{ȗa&3ꗍpo_qqF{D>ej|fڿ$Qŕz<fڌ6tS\8D<Yeg\榍,uS&}ȧ L 613CmiaWww=SׇWjoʸ(حx5f5旎\Gٖ:lTq9O!G_NvݶU7/:M>kDq5A2${OKC9ޠdEa`{gQН{ pEDFEuH` ]n瀲%9Rrk_ṮVs}?CU_,<\6u8CUR$%[d'M}4FHrOMLL%Ees 2סʢ$Aq<~L
-ҤFajcFq.8"
-8NQAAm-p<[gOؗ!e6w
-C'@I<4tǦ-:Wwi ZRuĸUR_0ATXŹ C.ViZ^=қ+$f'~+=zOxfD!F_:UM< l]b,]r^܀ ʈtZ0#G iABޒjX܅hg1SIΉI"D0xg-i 6sI@Z9NͽJ
-(e͏a;ߚP`wA2͓"{*ۋ|Nޞc-)
-۪e'tQ]'A]#0}7S$\ȒPsL /dz%$7>_[J꛼O<$(웚¯GTCH¾)<8-㾨of"L";{<P߾"5WcSΔABxJT0t^ BKmlπ!x`@Ix8ՙ7 QbyۛJ~)yeKN+`Pt2~n@Ŵ@Tk"̐`TʌeX'Sj ڙ;Z?cAΩV3bPP ۔ٌ
-;Iݺ$2fAH)P@2bB@1i#$Z_Q_iĬIb'O_ѱR<i2ۘ[M<IXU]'ȅA!t3z@uV[cb)ө Rn%qƏ3#>>J0w,Eϒx5L6 p2(_գNY&ɤR|<k/oJI~v>*G۝S>%[`6KFWck=fځ
-
-endstream
+1259 0 obj
+<< /D [ 1210 0 R /XYZ 79.822 122.47 null ] >>
endobj
1260 0 obj
-<< /Type /Page /Contents 1261 0 R /Resources 1259 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1210 0 R /XYZ 79.822 111.511 null ] >>
+endobj
+1261 0 obj
+<< /D [ 1210 0 R /XYZ 79.822 100.552 null ] >>
endobj
1262 0 obj
-<< /D [ 1260 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 89.593 null ] >>
endobj
1263 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 768.832 null ] >>
-endobj
-1264 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 1210 0 R /XYZ 79.822 78.635 null ] >>
endobj
-1265 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 746.914 null ] >>
+1209 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F68 181 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1266 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 735.955 null ] >>
+<< /Filter /FlateDecode /Length 1927 >>
+stream
+x[r6 +!L&3Qߙtۮۊ/Qe_v]8v8@
+>"q
+ ZӫfHx(|zЃcGORdOoiisՓpg}yPi
+UjL1s((NkIHX@k^X _ Cv p)ŋ%r*)׻hqz J*ϣG( mPg)]zji;E \b5b>^% : Ɓc>!,EIf4wlRBh}}d57擤- V,K \)J х@}܊ԣA^Gi`\_yvGPPt["|A
+TUfFPzj@PjV2ju`@ "r<f>2+Lߙ9?ë* J;IP$Ye}6{0 jãGo̪F;cX<:[<#NcۗdJ>r 0(y}\rOh dVŗj)nLiӪ6TrU~%e׷z?'}Rs]al {@Qnf_AHs>AQvV6yߓOuP k$9ˠ(W~=웯*lvhRh*JtJTuM\NԞϝxo9abgyKPRqUڶ{+
+U˔撕H-:X?2}~]at$ \enDCXR=u<UiZxq4I 5bzkr€
+}͡j% +ZyF ZY*"({M+Q AS8M+`f-~WVΉ6P)v 9MGVF07%uXoj9a%ioJ
+=X W&S=b zoP^rM`O=rsYePz( ,m8jcG_~: _K}5t
+4̺4߸>!`um~pȹRR
+#ζ Ebڛ](S\_Ho
+0Efc\ gVAaڲ_w,tӡ0am5$ B7cTR(/V[2}L# WRJ(SP 8XxG7dT},A7#WzIGK@Օ, y<N
+endstream
+endobj
+1265 0 obj
+<< /Type /Page /Contents 1266 0 R /Resources 1264 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1267 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 1265 0 R /XYZ 78.37 808.885 null ] >>
endobj
1268 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 768.829 null ] >>
endobj
1269 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 703.078 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 757.87 null ] >>
endobj
1270 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 692.119 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 746.912 null ] >>
endobj
1271 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 681.16 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 735.953 null ] >>
endobj
1272 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 670.202 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 724.994 null ] >>
endobj
1273 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 659.243 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 714.035 null ] >>
endobj
1274 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 648.284 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 703.076 null ] >>
endobj
1275 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 637.325 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 692.117 null ] >>
endobj
1276 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 626.366 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 681.158 null ] >>
endobj
1277 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 615.407 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 665.218 null ] >>
endobj
1278 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 604.448 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 654.259 null ] >>
endobj
1279 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 593.489 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 643.3 null ] >>
endobj
1280 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 582.53 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 632.341 null ] >>
endobj
1281 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 571.571 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 621.382 null ] >>
endobj
1282 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 518.769 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 610.423 null ] >>
endobj
1283 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 507.811 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 599.464 null ] >>
endobj
1284 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 496.852 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 588.506 null ] >>
endobj
1285 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 485.893 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 577.547 null ] >>
endobj
1286 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 474.934 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 566.588 null ] >>
endobj
1287 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 463.975 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 555.629 null ] >>
endobj
1288 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 453.016 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 544.67 null ] >>
endobj
1289 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 442.057 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 533.711 null ] >>
endobj
1290 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 431.098 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 522.752 null ] >>
endobj
1291 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 420.139 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 511.793 null ] >>
endobj
1292 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 409.18 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 500.834 null ] >>
endobj
1293 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 398.221 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 489.875 null ] >>
endobj
1294 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 387.263 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 478.917 null ] >>
endobj
1295 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 334.461 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 467.958 null ] >>
endobj
1296 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 323.502 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 456.999 null ] >>
endobj
1297 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 312.543 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 446.04 null ] >>
endobj
1298 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 301.584 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 435.081 null ] >>
endobj
1299 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 290.625 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 424.122 null ] >>
endobj
1300 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 279.666 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 413.163 null ] >>
endobj
1301 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 268.707 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 402.204 null ] >>
endobj
1302 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 257.748 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 391.245 null ] >>
endobj
1303 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 246.789 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 380.286 null ] >>
endobj
1304 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 235.83 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 369.327 null ] >>
endobj
1305 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 224.872 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 358.369 null ] >>
endobj
1306 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 184.025 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 347.41 null ] >>
endobj
1307 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 173.066 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 336.451 null ] >>
endobj
1308 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 162.107 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 325.492 null ] >>
endobj
1309 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 151.148 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 314.533 null ] >>
endobj
1310 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 140.189 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 303.574 null ] >>
endobj
1311 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 129.23 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 292.615 null ] >>
endobj
1312 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 118.271 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 281.656 null ] >>
endobj
1313 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 107.312 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 270.697 null ] >>
endobj
1314 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 96.354 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 259.738 null ] >>
endobj
1315 0 obj
-<< /D [ 1260 0 R /XYZ 79.752 85.395 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 243.798 null ] >>
endobj
-1259 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+1316 0 obj
+<< /D [ 1265 0 R /XYZ 79.822 232.839 null ] >>
endobj
-1319 0 obj
-<< /Filter /FlateDecode /Length 1657 >>
-stream
-xZ]o6}ϯ0~,Pvl1Yd>%I:]9^"1Ͻ$%gW3<{}}}yfiE]\҈J>$AXzn>pKSgRR2c (b:,T A}L+6Lh~^jkڻm,0":FʼYҎ jB1gnjYFb0,<ޘ:nrM˩yǯ^;q=n^
-Y#ǐmH˲Ny!Ja=vZ,MMK{;2_ٍ6u5HVjY9,!#웎5 $6|ĩ
-;ܵ7U|^6N]*ır,k>ܴ5A+
-#FQCG0>xSi6mo%Oud*}"΁>o!o]<Y.uI5>;]V㢙`iY!f3:T jfggzBg4{4xgC0GؕF6j)6E
-GuUnR&2Ijҋ AnM1H# wXi&wTmŵ8CӟSa
-h0 GM@#u9 oHD„$G ;{E%0#)걌i8Ŗ @^~0zE&07`)cE2J`nO7` !zE&07
-{t'`$ @C1̀Qfz0hpV
-3
-ۘ ЏEDgInS\7E3dޫMUD7hvYVߦt1 0`M>2:lΚRg<&'
->8hSŧ,GJB |? l,@h+ лQG!^8(bއOXG"l޳M
-endstream
+1317 0 obj
+<< /D [ 1265 0 R /XYZ 79.822 221.88 null ] >>
endobj
1318 0 obj
-<< /Type /Page /Contents 1319 0 R /Resources 1317 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1265 0 R /XYZ 79.822 210.921 null ] >>
+endobj
+1319 0 obj
+<< /D [ 1265 0 R /XYZ 79.822 199.963 null ] >>
endobj
1320 0 obj
-<< /D [ 1318 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 189.004 null ] >>
endobj
1321 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 768.832 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 178.045 null ] >>
endobj
1322 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 757.873 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 123.25 null ] >>
endobj
1323 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 746.914 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 112.291 null ] >>
endobj
1324 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 735.955 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 101.332 null ] >>
endobj
1325 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 724.996 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 90.374 null ] >>
endobj
1326 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 714.037 null ] >>
+<< /D [ 1265 0 R /XYZ 79.822 79.415 null ] >>
endobj
-1327 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 703.078 null ] >>
+1264 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1328 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 687.138 null ] >>
+1330 0 obj
+<< /Filter /FlateDecode /Length 1959 >>
+stream
+x[r6 )Œ
+r՛Tq}oi\l nLo:A-^]XUe4/5dX=url}V.*teB|wj& <aoiߕ ҽ$,\שn~ OJWRe-Wj$)c<cÌhY7Hea SjY׹ACLV&]isI.T_*AjN݄GTVOTԪhW%n/
+.}΂U hOmր:9}a j2e /P5+fx֕mRɢڐP4"nRV@[ ZTH(N>8HˠhO"$JH+Qhv8'-JV3k@CnpJ~;i3ZB BŘdRrc~zN~tQOwz>NӡzoF޷DbGvC31Z>+l=F lZ7f+&ol#>J8L˖I] t`9O%[8#BxR *}|qM;1Q\Ƌ&pM@nl4`_ߧ5Vָ6mhw@_Absݔsި% e[S>oI[3#žs'>;6<he<;uؕDeF[R/k7HCSS~e]4Kӵ$ɥFCZ4
+endstream
endobj
1329 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 676.179 null ] >>
-endobj
-1330 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 665.22 null ] >>
+<< /Type /Page /Contents 1330 0 R /Resources 1328 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1331 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 654.261 null ] >>
+<< /D [ 1329 0 R /XYZ 78.37 808.885 null ] >>
endobj
1332 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 643.302 null ] >>
+<< /D [ 1329 0 R /XYZ 79.822 768.829 null ] >>
endobj
1333 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 632.344 null ] >>
+<< /D [ 1329 0 R /XYZ 79.822 757.87 null ] >>
endobj
1334 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 621.385 null ] >>
+<< /D [ 1329 0 R /XYZ 79.822 746.912 null ] >>
endobj
1335 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 610.426 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 735.953 null ] >>
endobj
1336 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 599.467 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 724.994 null ] >>
endobj
1337 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 588.508 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 714.035 null ] >>
endobj
1338 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 577.549 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 703.076 null ] >>
endobj
1339 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 566.59 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 692.117 null ] >>
endobj
1340 0 obj
-<< /D [ 1318 0 R /XYZ 79.752 555.631 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 681.158 null ] >>
endobj
1341 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 670.199 null ] >>
endobj
1342 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 659.24 null ] >>
endobj
1343 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 648.281 null ] >>
endobj
1344 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 637.322 null ] >>
endobj
1345 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 626.364 null ] >>
endobj
1346 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 615.405 null ] >>
endobj
1347 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 604.446 null ] >>
endobj
1348 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 593.487 null ] >>
endobj
1349 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 582.528 null ] >>
endobj
1350 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 571.569 null ] >>
endobj
1351 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 560.61 null ] >>
endobj
1352 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 549.651 null ] >>
endobj
1353 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 538.692 null ] >>
endobj
1354 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 527.733 null ] >>
endobj
1355 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 516.775 null ] >>
endobj
1356 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 505.816 null ] >>
endobj
1357 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 494.857 null ] >>
endobj
1358 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 483.898 null ] >>
endobj
1359 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 472.939 null ] >>
endobj
1360 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 461.98 null ] >>
endobj
1361 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 451.021 null ] >>
endobj
1362 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 440.062 null ] >>
endobj
1363 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 429.103 null ] >>
endobj
1364 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 418.144 null ] >>
endobj
1365 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 407.186 null ] >>
endobj
1366 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 396.227 null ] >>
endobj
1367 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 385.268 null ] >>
endobj
1368 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 374.309 null ] >>
endobj
1369 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 321.507 null ] >>
endobj
1370 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 310.548 null ] >>
endobj
1371 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 299.589 null ] >>
endobj
1372 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 288.63 null ] >>
endobj
1373 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 277.671 null ] >>
endobj
1374 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 266.712 null ] >>
endobj
1375 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 255.753 null ] >>
endobj
1376 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 244.794 null ] >>
endobj
1377 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 233.836 null ] >>
endobj
1378 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 222.877 null ] >>
endobj
1379 0 obj
-<< /D [ 1318 0 R /XYZ 81.077 79.417 null ] >>
-endobj
-1317 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1329 0 R /XYZ 81.145 211.918 null ] >>
endobj
-1382 0 obj
-<< /Filter /FlateDecode /Length 1715 >>
-stream
-xZMoFWE~(h{B-&B.E9Iw\٢5bJr̛t͑( ?z{~trfHg舍&ьPFџcFusXL%Nka`)1_Ͽ]YY,'NJI{Vy>C*h:.ָ)Jv슲>]g'aRv Ǯf\]/z(n<%xѿ.C&3sX >riyV&\JXўt^V)" `~m/J" 4_m}&Xی 3g
-~;>//8M1"MWμ>zyCJe,T)Eq^룿j*+qvZ%ʅ
-pu1B?^߾]a-B Qu*O' h+!e1̆{+TG!e$14κx@&iA, p#B=JqbefeQEKX:npлx(pVhwzaQ1fbq50B{TU4:BiPqYG5U:K (ՊϡBm|-qOI 
-}J뜇U୐~IaJBG~ՋȪpʅƕ}#'upG3"DeCq G?0JD3~re}kTA nTߑ ctA !^4HhM
-I`k-W[\ު[akX^O=%` Mơp*^ljCP -CБF{6*bg=HOuf̓w:1<('t`p)G+%w020\gi-:\e^nHׯ45[̆n{IU:VYζV,4 ݝ zES6
-0(}=izС xXd $Amh5-qqަ@.YeiP*dj{ٯ0 Z\Ă*#`׉E(Pj5ɚrgqH#tgd* ^yZc'r2[i49L
-~zͧrZ+&_jŽз]BUUVdlv(ݼvv6R2p2܋dE=7M l|0+͙Δp57B/IYXkO%\!B2p4BnB"u݀+l35c [P?TKUi~{$Q[v{i羛*l` mhDEH>[yn\H/[9
-L'U4{Оpb5PY:=0Z2ΉTJS$Lb|*i6Qz\7>Ex|N=
-endstream
+1380 0 obj
+<< /D [ 1329 0 R /XYZ 81.145 200.959 null ] >>
endobj
1381 0 obj
-<< /Type /Page /Contents 1382 0 R /Resources 1380 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1329 0 R /XYZ 81.145 190 null ] >>
+endobj
+1382 0 obj
+<< /D [ 1329 0 R /XYZ 81.145 179.041 null ] >>
endobj
1383 0 obj
-<< /D [ 1381 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 168.082 null ] >>
endobj
1384 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 157.123 null ] >>
endobj
1385 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 116.276 null ] >>
endobj
1386 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-1387 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 1329 0 R /XYZ 81.145 105.318 null ] >>
endobj
-1388 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 724.996 null ] >>
+1328 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1389 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 714.037 null ] >>
+<< /Filter /FlateDecode /Length 2763 >>
+stream
+x\n$7W&; PT|u45nsP+E/1'zM_?~2y*P}@O-#TNR ~SH~R* -.o})[2p:nNbxv?#>Ӫ7qtos!) w>@ k{9Q^3Vm03n# Con[C`:7pMo!oY%'M6 @dJe
+N%*-
+x?A1)в
+q `^~ &P%I!L
+;2z\&LDz$5CM(KW?&&HϑXA]zqiJ4Ȟ҃ċ`ƌO2gygW/Џ</sAԏ9ippٔi:O6(?S*|aDXWjsF7/lvPGP9I<]PuuU홮\:X`+Qes莄,#YnbP:(WfI1n9$vHƟ`zDl,U%V/.c0vɞ⮶$#A
+zTQE(<'%pp-2@T}omUl&1X}˥%LcoB5}>1 n`Oϫ#qyΜ{1mwԲa=Öl5$PW0~9 qS8|)#=1VBf۴|:1=
+EB4mUd(7$I!@Se+id-5r 4^-]pqQ>RCzfqީq4R7I)uNb*G(=nxgPxk 9NARӜ3n>PփlpeeekPk9r-窜}M'Uq.-iZp!FXVTM4U2Cxyuݑ{TByq0XCœ8ZJX;$WONJ /-CG⟠s;z c 5 \4/B
+g`W0Q-m5Y*+&ZARaVYGoq[nq,$!Q璭ҝ0'w\枨y\0
+=|J
+ޏICQI[)+)B l81M#JF[ET+/JX[{s"K.̑U-]~;0sY,o
+;]<1V/)H 4q
+Hጃr
+z_G).-.2Z7t4]w: > nr4:Xp/)
+N*?K/bzU_VEKV}[
+gPFsU{CJ;[BEOiKNU՜HC;̎6Π4qx\ϋ0 01&;JmxtT\ / +*`@]Vw|<Pg2p(-=N h`ZJ: j~M;hkG(=okKFuGVsv r ͮ9ƃ.jD /X"P'?y(761fhR0Q۷TɆ@_|NM%UL?ꎫ=rZEJPKhn$V`L&=-Z0mޝA KT
+endstream
+endobj
+1388 0 obj
+<< /Type /Page /Contents 1389 0 R /Resources 1387 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1390 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 1388 0 R /XYZ 78.37 808.885 null ] >>
endobj
1391 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 742.926 null ] >>
endobj
1392 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 690.124 null ] >>
endobj
1393 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 649.278 null ] >>
endobj
1394 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 638.319 null ] >>
endobj
1395 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 627.36 null ] >>
endobj
1396 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 562.603 null ] >>
endobj
1397 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 551.644 null ] >>
endobj
1398 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 540.685 null ] >>
endobj
1399 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 529.726 null ] >>
endobj
1400 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 518.767 null ] >>
endobj
1401 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 507.808 null ] >>
endobj
1402 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 496.849 null ] >>
endobj
1403 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 485.89 null ] >>
endobj
1404 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 474.931 null ] >>
endobj
1405 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 463.973 null ] >>
endobj
1406 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 453.014 null ] >>
endobj
1407 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 442.055 null ] >>
endobj
1408 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 431.096 null ] >>
endobj
1409 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 378.294 null ] >>
endobj
1410 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 367.335 null ] >>
endobj
1411 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 312.54 null ] >>
endobj
1412 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 301.582 null ] >>
endobj
1413 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 290.623 null ] >>
endobj
1414 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 279.664 null ] >>
endobj
1415 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 268.705 null ] >>
endobj
1416 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 257.746 null ] >>
endobj
1417 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 246.787 null ] >>
endobj
1418 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 235.828 null ] >>
endobj
1419 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 224.869 null ] >>
endobj
1420 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 213.91 null ] >>
endobj
1421 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 202.951 null ] >>
endobj
1422 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 191.992 null ] >>
endobj
1423 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 181.034 null ] >>
endobj
1424 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 170.075 null ] >>
endobj
1425 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 159.116 null ] >>
endobj
1426 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 148.157 null ] >>
endobj
1427 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 137.198 null ] >>
endobj
1428 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 126.239 null ] >>
endobj
1429 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 115.28 null ] >>
endobj
1430 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 104.321 null ] >>
endobj
1431 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 93.362 null ] >>
endobj
1432 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 1388 0 R /XYZ 81.145 82.403 null ] >>
endobj
-1433 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 190.002 null ] >>
-endobj
-1434 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 179.043 null ] >>
+1387 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1435 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 168.085 null ] >>
+<< /Filter /FlateDecode /Length 2201 >>
+stream
+x\n8 S#Phf=i,ٲ,;VLD}")G=?D>ui|x7A2%-zgK'1+BȓBh,:W06nV2\ O~/2HCONg4O7w䓐gz0z=aq0 ?Tt:ŧy;y,Ms.:+iYE:Q\yĨhmAdNZM
+]L =d{fI]J
+#y`pVV`ۇqj޼dnJzI4ٙ$BuBWMOf pI>%zOr_6D@M>ޤP$7Mf!yIIL+pu36!x{Rmh\Hr#FV2ȲqF<+ͺ1+1"_WGlAJŽMd.^"xNEi5K4Q^b"m*a⓮EbFŝ+vi~fkBCqv^ȏ[5(z]ǐ+<CI"jpe9{*U L䧏@do W>W I:FF6[eaGKVF3iE84Qv[zfψM6i>H4Q0urE ׼FGy*ԉ¼p&e@v@}̑.R<!cI+8 4*5Hpx}YR؁vцҁZ
+;O|+~pばEEg8^!Lt|#ErgX^!t"0\KM̯ ~$OngwˑP]BkQǴ]Ẕ9
+pԡB꣮{9ll}mb߈Pm=D~ژ 8m}
+{-ӂ)m*uƈ-عi#i,%2馏wJ#%sl'W`gZv*lyl=WuYؐjKOwsRk("v`tDVK%jQ*UYA+S Jdm]"\"VÿUN9`90
+6g$8'9
+e eWX,]*]bZ/: UݰUfNZZ]םRJֵLBzb ޅIuqvԢcr*]=QޗxPQ~?Tqx)mFnxV/-
+B%Ѝ6<503l \Cy /'lײ5m*BQjl'Yr$U7ɧ\&F܄d(C<ZHBhY<STw$6G)
+B',D{>+[մ~SP"u;~ܙqSig&zUa2s:ߗ੐Q]H
+ṔkL
+B
+Y];ܤ$ 0%LUHQ/G!Ԣ3S!b|h[YܤhBGӣjX-gRԅ"GZN}Vm&}h}X-Tq,*$.$=lˍ (cVH۴<nakWJTu3 kVRnW]+ajQWH5m}xnV]&PM9=:ٓ`nMBns,v?<F>
+endstream
+endobj
+1434 0 obj
+<< /Type /Page /Contents 1435 0 R /Resources 1433 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1436 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 1434 0 R /XYZ 78.37 808.885 null ] >>
endobj
1437 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 740.958 null ] >>
endobj
1438 0 obj
-<< /D [ 1381 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 729.999 null ] >>
endobj
-1380 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1441 0 obj
-<< /Filter /FlateDecode /Length 2285 >>
-stream
-xZmo@8w ׽@_rJ",$yA_$ޤɔpfZOﰿ݇OD/4ҒJ8|G^EK$K8-<V euUy
-tB}t[KtQUźڏ??gxu]kr⦅TX!*KL\5A\p"ߕ6߶
-vsDzXn A qEfG:\g,OҽC0jMcK8;d&s<
-hcbM]WuPGCΒ'v`r@xPqr 9rI=eVz^% 4{bwgY
-
-"qTkv+K[S(.z4 V쮱RЙacTKR;+{ؔW4BUO7 bh,5Ex?.m O3AqIOYQwO|ݍɢK `'ueJd
-z+pbM{AT C&i*f3['9;q~>&6LEz?, ;D/eu[<T35/APOP\0DI
-[+:zf|Z؛tc/镥"0u3?\A20ۊc)N8ba/t7z#9G̼7AFMuC]u?j]p'}` 3:L&!n*K:{uNt$4(X#r\NlTHmf'$Bx?Ֆ`k%^."H%~6r[甩fMASpnz[ d\Cy+ #9#L-Xg, |#>F>h]7~i{DWA:^ *nUŨ05#
-)jsWcjVYK[4 )J^f3p|X %4DGM(Jx"@iӮ6]\軛-X):LJJ4h R e;=*~
-3_ F?]6 q9ѱ)ַy{]۵elR l{F`թ֦)v_[$HgBICONSwqg} {@ͽӸ?lP*NOoMGkwnb{/D\,@ק Q!"' ۬wy͸Tճ0ڂN qHq
-endstream
+1439 0 obj
+<< /D [ 1434 0 R /XYZ 81.145 687.196 null ] >>
endobj
1440 0 obj
-<< /Type /Page /Contents 1441 0 R /Resources 1439 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1434 0 R /XYZ 81.145 676.237 null ] >>
+endobj
+1441 0 obj
+<< /D [ 1434 0 R /XYZ 81.145 665.278 null ] >>
endobj
1442 0 obj
-<< /D [ 1440 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 654.319 null ] >>
endobj
1443 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 643.36 null ] >>
endobj
1444 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 690.127 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 632.401 null ] >>
endobj
1445 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 679.168 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 621.442 null ] >>
endobj
1446 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 668.209 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 610.483 null ] >>
endobj
1447 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 657.25 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 599.525 null ] >>
endobj
1448 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 583.608 null ] >>
endobj
1449 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 581.534 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 572.649 null ] >>
endobj
1450 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 561.691 null ] >>
endobj
1451 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 559.616 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 550.732 null ] >>
endobj
1452 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 539.773 null ] >>
endobj
1453 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 528.814 null ] >>
endobj
1454 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 517.855 null ] >>
endobj
1455 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 506.896 null ] >>
endobj
1456 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 495.937 null ] >>
endobj
1457 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 484.978 null ] >>
endobj
1458 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 474.019 null ] >>
endobj
1459 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 463.06 null ] >>
endobj
1460 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 452.101 null ] >>
endobj
1461 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 441.143 null ] >>
endobj
1462 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 430.184 null ] >>
endobj
1463 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 419.225 null ] >>
endobj
1464 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 408.266 null ] >>
endobj
1465 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 397.307 null ] >>
endobj
1466 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 386.348 null ] >>
endobj
1467 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 329.657 null ] >>
endobj
1468 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 318.698 null ] >>
endobj
1469 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 275.895 null ] >>
endobj
1470 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 264.936 null ] >>
endobj
1471 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 253.977 null ] >>
endobj
1472 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 243.018 null ] >>
endobj
1473 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 232.059 null ] >>
endobj
1474 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 221.1 null ] >>
endobj
1475 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 210.141 null ] >>
endobj
1476 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 199.183 null ] >>
endobj
1477 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 188.224 null ] >>
endobj
1478 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 177.265 null ] >>
endobj
1479 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 166.306 null ] >>
endobj
1480 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 155.347 null ] >>
endobj
1481 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 144.388 null ] >>
endobj
1482 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 133.429 null ] >>
endobj
1483 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 1434 0 R /XYZ 81.145 122.47 null ] >>
endobj
1484 0 obj
-<< /D [ 1440 0 R /XYZ 81.077 112.294 null ] >>
-endobj
-1439 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1434 0 R /XYZ 81.145 111.511 null ] >>
endobj
-1487 0 obj
-<< /Filter /FlateDecode /Length 1967 >>
-stream
-xZ[o6~ϯ0hXI XX2l:J4Be)Y2E:c:NȒQ;<<?7H6P&/T)Idt<=sٸ2Nǟ0u^;?xVWeW6{՜7~Ȣ7_&T#05œ(O48jMi{޵ɡb]6g,"\3yYv\.&Tp?5l$Çtl02c0YZ84a4k$O3`~ &0F>-> HD7ge]յ
-9m۴G_ѼuwE=%bPmV ݰ)pMr$4 fy`%[{ukuHOD{J<R^
-%L"SiBR7Np[H.DFӒIQNHFR[ZydINS]N`({K l7z@]Kp
-z(Ңg~B|EmQa1#􏎘BA˽i3B?wQi3B;o'Y?`<\WE=+r^vE|Y}`jAn kxfނKe\)D2D
-#w=">T˱l齤iR[rL Ԗ O
-iGSAA2.1<AO5eR*ޡZݎ;j̇p֢
-th&<xV΋zXptpuWL
-aFvzz3>h{Zn>DWRS%Fr͑$F;Lژ~KLNirLn*CG谒x !^\-` dhQ-Lujҽ; Nvca>};tTZÅx*2|Ғ\7]ߒ.q/UZ;ˣ>@q|9}YO}
-KŊ"!}i2B"5tuZ /dN Ts7(LGYC>oR([cb
-endstream
+1485 0 obj
+<< /D [ 1434 0 R /XYZ 81.145 100.552 null ] >>
endobj
1486 0 obj
-<< /Type /Page /Contents 1487 0 R /Resources 1485 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1434 0 R /XYZ 81.145 89.593 null ] >>
endobj
-1488 0 obj
-<< /D [ 1486 0 R /XYZ 78.37 808.885 null ] >>
+1487 0 obj
+<< /D [ 1434 0 R /XYZ 81.145 78.635 null ] >>
endobj
-1489 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 740.96 null ] >>
+1433 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1490 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 730.001 null ] >>
+<< /Filter /FlateDecode /Length 2859 >>
+stream
+x[r#9WMG8%#D_gN+t5K)Fx`˿/? yئ@_?_Eo E+\¹2~l K d?oK;x*Ֆ+(OR1MOYJΦ
+ן!ᛗ+>!
+%PZ<I{+뒴(AZgFN'4OJ
+&Sz:dJ0>TIܢd%0/A6|gژ*s?"ɉ,yęv?ݏIOPoL.)90 g*áTԭޘS5` :$6jq=,wby'}LO$"B'(6YrXg/~fFq?\2k!n#B̈́.ūg\PdZu A0iO=֜ۗ^9&|H)v<ᄏߓձ 0=ϋQfO<p&qgadicO ҭ jCqhiKS-M{)50<7ލq6{peRhOP6#jŔ=]E{LCcдy`fS!wjwz/fq&JZq~Uq]զmPb7%MX zB9Q0qi=%߫RSv>&8C ǃڑcmY6$9<^>jqJ3ɣV,F6RJ9j9u#1{8|=ކqdĺ9D9yжfұ9~[dR:$)7杏f嵲j_3GKi= ȒDl6%*MfҺ~@#7+LAu:^[?ZUO
+νX]qbqow
+^Kܿ7$7+|G(q'k;BYynAްM"RPTS&=ƠKC*Od= &` ᡼F'gf81ukFCd$㛙@?q RIV* $/="1uf-USWr6UA=@
+gºOc[K&?#BA-_%CT&[B~ n_1uX(>S$?{H#\H*r^!r%jD`y݄MN'e[= ^C} ,՘2$faT^'9"yzF{1abd%0n 3<w*۲tNPc
+6QDyu#ƪ胇IR_.`kqz*bsE%!Qޣ>m >Y[^ulSaʔQn.sϧ3c OjhXi&m*WVƐje
+wn5ޝq ݷ*>3ɪ@bOju@2/M փ$">|ޚS+KUr})iִsww8^0[t\V>ߵv|O2KdzVw $Æ9#PB
+f OafEQ&Tќ' ^#߀ + οc
+endstream
+endobj
+1489 0 obj
+<< /Type /Page /Contents 1490 0 R /Resources 1488 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1491 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 687.198 null ] >>
+<< /D [ 1489 0 R /XYZ 78.37 808.885 null ] >>
endobj
1492 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 676.239 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 697.098 null ] >>
endobj
1493 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 665.28 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 686.139 null ] >>
endobj
1494 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 654.321 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 675.181 null ] >>
endobj
1495 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 643.363 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 664.222 null ] >>
endobj
1496 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 632.404 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 653.263 null ] >>
endobj
1497 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 621.445 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 642.304 null ] >>
endobj
1498 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 610.486 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 631.345 null ] >>
endobj
1499 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 599.527 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 620.386 null ] >>
endobj
1500 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 583.611 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 609.427 null ] >>
endobj
1501 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 572.652 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 598.468 null ] >>
endobj
1502 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 561.693 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 587.509 null ] >>
+endobj
+33 0 obj
+<< /D [ 1489 0 R /XYZ 79.37 562.06 null ] >>
endobj
1503 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 550.734 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 453.016 null ] >>
endobj
1504 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 539.775 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 442.057 null ] >>
endobj
1505 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 528.816 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 399.217 null ] >>
endobj
1506 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 517.857 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 358.371 null ] >>
endobj
1507 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 506.898 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 329.479 null ] >>
endobj
1508 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 495.939 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 276.677 null ] >>
endobj
1509 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 484.981 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 265.718 null ] >>
endobj
1510 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 474.022 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 224.871 null ] >>
endobj
1511 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 463.063 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 195.979 null ] >>
endobj
1512 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 452.104 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 180.039 null ] >>
endobj
1513 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 441.145 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 169.08 null ] >>
endobj
1514 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 430.186 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 158.121 null ] >>
endobj
1515 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 419.227 null ] >>
-endobj
-1516 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 408.268 null ] >>
+<< /D [ 1489 0 R /XYZ 81.145 147.163 null ] >>
endobj
-1517 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 397.309 null ] >>
+1488 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F72 266 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1518 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 386.35 null ] >>
+<< /Filter /FlateDecode /Length 1937 >>
+stream
+xZKs6 W xLϾuzmO!Vtl7 VK
+84h\^z~_bf1Z0Wu\.sMO?]-{i,?+P$Y+H
+os!tJI&.g/XǬFc 2piPѤM5½8>ƸS2.h;(??(&%B.FHd2Lm񜔌+}eSת&ýLHh(R6جx2"@GB@?7c1`\*j q䞢":R:Ƅʼn fF>+</vv&e_GˤbfF$C7F}Q0]7"1v
+x2&e mO8~-Rg qQ2ʖ1:h7_7P gur5bA欐Pj] 9BA/CYw$N~=4 Ck7N58uCc֌&Si&^v7avǎ2\ŴbʌO$9y'/I%L 頛SJ>8ΘSO7#3Kfzk\+(xzE4H5D T+5zNeVP^}2b8X]P`POc%I1ka\I^OS3G̻ۘh3t%
+w._+{jd-!PmPUjy&ZCvtz&MaSa*i,>$8I\bFvR~A*ֺ󶀮aQ
+;!< CZ!i4~< tp5wz[At%=ZSDh3tT4O!#2LNĝpH"@(:w lg9Yԁij$6ϐ>ͳdU_zCm8i}&WRyϜ*~Ifs*Ky*,2CxX{q4㓼n̞w
++E~#Ї LKwedXtR|"e-M4Cz#+dsb>Z|l-njۃG_bFO|J1'U;񖊽Hp'渣Cq;&Ck(GO33_ YiP#=ܹ@+ht=OfάCY XNŬ96qj]3~/aB=/6)ȩihkY#~4K./i0%h
+endstream
+endobj
+1517 0 obj
+<< /Type /Page /Contents 1518 0 R /Resources 1516 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1519 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 329.659 null ] >>
+<< /D [ 1517 0 R /XYZ 78.37 808.885 null ] >>
endobj
1520 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 318.701 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 616.216 null ] >>
endobj
1521 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 605.257 null ] >>
endobj
1522 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 594.298 null ] >>
endobj
1523 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 583.339 null ] >>
endobj
1524 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 572.38 null ] >>
endobj
1525 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 561.421 null ] >>
endobj
1526 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 550.462 null ] >>
endobj
1527 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 539.503 null ] >>
endobj
1528 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 528.544 null ] >>
endobj
1529 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 365.783 null ] >>
endobj
1530 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 354.824 null ] >>
endobj
1531 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 343.865 null ] >>
endobj
1532 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 332.906 null ] >>
endobj
1533 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 321.947 null ] >>
endobj
1534 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 310.988 null ] >>
endobj
1535 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 300.029 null ] >>
endobj
1536 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 271.462 null ] >>
endobj
1537 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 242.895 null ] >>
endobj
1538 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 231.936 null ] >>
endobj
1539 0 obj
-<< /D [ 1486 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 220.977 null ] >>
endobj
-1485 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1542 0 obj
-<< /Filter /FlateDecode /Length 2483 >>
-stream
-xڵZ[o~ϯЇx2
-X 鶻ݢ[)Zm鐔H~{\Hq(C,r3^?_y3$|qu !J%Y\m^^e\H(>FB0F>M՞DH c6KWLS޹؋lEϓ( 
- 0#61FDˤRciG`6^].ndl`iݣƭ<$yxJճ$<ɋǕ
-s}h /z&2vȅb4mgw.v]eٿƏP[d] *(҄!B-(;hg-4p'(A !`Sqe.=c{G2rD9>>!QR>[*iΦ)iVTE%"?^_Va^ bK{l pDq5>GA:,<8z\px{.<.<v3_D\3=tC!(CB.wH9﫤YIPI(:<>;C_H}e"{r/rZYͳuWכfN}ԬP* 1.aE$DW_0(x-T@&
-.LL*inwzŰ$_3P׉!|:|,\hd;8\@c^W\e;zk<ث}E|mӉ"#>S1TGOt=Z
-"<)/
-'kx ܩтW]A ]D-
-G(Ӷ//_jZ(5Y
-2CD/(Ix{#
- ,m
-ͼ#`:pqc ̖v=nd4qT?<ueO Yl^WWXhL$7s?ncC v8= #@v#K頙)Unih~f?LrT&},2wM.36:vSdIjNgLJ>H8AH 捥5]flv,:3uc>0X0Ο҈"*EHnjOZto ;dZy~jhLuŸ
-#:mM{ *tY{`Lr94PI:c}RAEISJD !xJ$$~X[V7-S{)!{7}g֗>q>y@l3:H?Lٿڹz)T#'#Su"GqTo+GF{`A56xmfx佂njl[#aDܼ?)C ̥us.q-
-5KV \+/(eA|׈07BӪuoqdF*85qY̡0yКy4yS!eӻ&eSmCb>c`Bw_ܬ1GÃlS?]Q$Gx]v8|ۆ^%
-x3 U'i&iC&7I2 ,Sz`]Qu|@L}i:(rzW%׻"XDkĺ,r7۝bcO{fCSz}AR\ȵs.$Iln y!"VDzD
-endstream
+1540 0 obj
+<< /D [ 1517 0 R /XYZ 81.145 192.41 null ] >>
endobj
1541 0 obj
-<< /Type /Page /Contents 1542 0 R /Resources 1540 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1517 0 R /XYZ 81.145 181.451 null ] >>
+endobj
+1542 0 obj
+<< /D [ 1517 0 R /XYZ 81.145 170.492 null ] >>
endobj
1543 0 obj
-<< /D [ 1541 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 111.511 null ] >>
endobj
1544 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 697.101 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 100.552 null ] >>
endobj
1545 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 686.142 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 89.593 null ] >>
endobj
1546 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 675.183 null ] >>
-endobj
-1547 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 664.224 null ] >>
+<< /D [ 1517 0 R /XYZ 81.145 78.635 null ] >>
endobj
-1548 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 653.265 null ] >>
+1516 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F15 180 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1549 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 642.306 null ] >>
+<< /Filter /FlateDecode /Length 2184 >>
+stream
+x[n8+&`qsm0יJ$]vDeL+Z^,A?-t
+?^^:N!^~P$yPg`Ҩ˿?Rjzǿ^Xp^=8A)‚")D oXh*,gʟ4mrRo)}F\ iXΧ?KԝdsǸ}.:,HU65#h)4g}0BIF@/!g9#HQ](E#-p*2"'2=ω#"gy!yO|,&ڍwG曲fjk1G*GqsqYK|iÉa2@C
+)e,~FkJM*JQ"c%YYrn$Xr~ʷ:`Y9 B
+6
+zD}KD:-V,~ ӏHV_%B
+)d9{me2NECl3 Hi=PPJi'~oؔ!i @ȯ>\ڋhڃZajq%ݗlr$JֱHH.7`*$P&@nωY&PFWҶ+yK2?vW/ڹ^{zw~3b|eɃT1D 4SְJڦp/kZWn!1;vmRfyOxustp?!i3[xK4::’Lk&,W $]_Y
+ +T< %r/׾Zwx
+eidHϊ⦺]O̽i}=_(gB-o=U{&:nEofIͱ#d+4h@ssh^ uU=5'c@ys ?`?Q #qr.2 g-+\d@Z
+fWtEVh8&G{`VZ2
+endstream
+endobj
+1548 0 obj
+<< /Type /Page /Contents 1549 0 R /Resources 1547 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1550 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 631.347 null ] >>
+<< /D [ 1548 0 R /XYZ 78.37 808.885 null ] >>
endobj
1551 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 620.388 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 768.829 null ] >>
endobj
1552 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 609.429 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 757.87 null ] >>
endobj
1553 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 598.471 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 746.912 null ] >>
endobj
1554 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 587.512 null ] >>
-endobj
-37 0 obj
-<< /D [ 1541 0 R /XYZ 79.37 562.057 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 735.953 null ] >>
endobj
1555 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 453.172 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 724.994 null ] >>
endobj
1556 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 442.213 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 714.035 null ] >>
endobj
1557 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 399.373 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 703.076 null ] >>
endobj
1558 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 358.526 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 692.117 null ] >>
endobj
1559 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 329.635 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 681.158 null ] >>
endobj
1560 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 276.833 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 670.199 null ] >>
endobj
1561 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 265.874 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 659.24 null ] >>
endobj
1562 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 225.027 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 648.281 null ] >>
endobj
1563 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 196.135 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 637.322 null ] >>
endobj
1564 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 180.195 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 626.364 null ] >>
endobj
1565 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 169.236 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 615.405 null ] >>
endobj
1566 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 158.277 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 521.474 null ] >>
endobj
1567 0 obj
-<< /D [ 1541 0 R /XYZ 81.077 147.318 null ] >>
-endobj
-1540 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1548 0 R /XYZ 81.145 510.515 null ] >>
endobj
-1570 0 obj
-<< /Filter /FlateDecode /Length 2069 >>
-stream
-xZKsW(WxTU&$|ˤXˌ)RKQq =;UA|Dw_h:+?^k9b,+ffj61}0 !kg!>_umծ퍄q3<{Xk!?Q! `z^Q],Y&%*]21ș.&22# ㌹x[Q Ee`)r/[Tn07z~PS xwOKBd_&/cDp抰BeksJ2Qhke{;i{B $Be :$A CYV]0;7&5Ϳ~{/?EãKa%'(Lr Hhrڰ첥UND'`kZukSw_Р(r\1
-etwUmVt}c7]ze_ =O2JHɃRnc4~mxC KXevk/s2*O+
-QM~ʘ͍yQ-X_p*wi~f56RMWDg5.ebڜ5b00| Yzg(\~SIpYX^NwRЍ*e8HF+P@FF'~I%o˱4 {oO_ O+T>Kx)N)s4˪/J2G9>/-2.V]3XՎ16*ڼgnMw?;zG@ (˂}Ε1:>ܔ7C
-y>[!$D *VMs
-x2fn2 `Y A1u!7Ci~_ܼVs9Mʶ`wD^ >yק{:Tw|h~7!
-wOiJɷ-ذ-Jh-q=AX'$߇r6"d%U]lux:+61gsb}wӮ
-/ҍ&{30Nx^$J]me'ldSDZͼ!؄9|FWQݽ˄$|Ii|="$ZlRsжZA`S ¥N_XT\$/d86sH1>puQ?Vf
-zQz XDv>ЀY'Mݽ[>HN*z6lgGa2'#9p +o9UUĵpe=&k. ;OX#RCŬCZdQZ_2#H=OZ2A_ x<"C%|wˀ|-rT2NC@kp@"
-TmJGXAG?B g!$KVu-7T%]Y6~9%y&g<K&F,o79t}9|.<y''PȊ,HS.FWax[;+,toן'mwj8-KгI\ ٚ@n_uv^DiZ;p"h/uV^{#BuP&޴}ppµD4ϼn
-¦Zԋёz;pX}<6qS}T g B1ڊo?gnx^|<9pn)a
-VHVd6('htfpE$u[=Z rvP/co<̘DLYtY) 8Gճm  F BC%'iFfU 35%@HV Z<}moVnac|AB H_21Šs9`+??Y%ڎ7/iasXn'Z}5WS^-#m>Tg $~0iˉVz&Ea}2%
-endstream
+1568 0 obj
+<< /D [ 1548 0 R /XYZ 81.145 499.556 null ] >>
endobj
1569 0 obj
-<< /Type /Page /Contents 1570 0 R /Resources 1568 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1548 0 R /XYZ 81.145 488.597 null ] >>
+endobj
+1570 0 obj
+<< /D [ 1548 0 R /XYZ 81.145 477.638 null ] >>
endobj
1571 0 obj
-<< /D [ 1569 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 466.679 null ] >>
endobj
1572 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 455.721 null ] >>
endobj
1573 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 444.762 null ] >>
endobj
1574 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 433.803 null ] >>
endobj
1575 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 422.844 null ] >>
endobj
1576 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 411.885 null ] >>
endobj
1577 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 400.926 null ] >>
endobj
1578 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 389.967 null ] >>
endobj
1579 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 379.008 null ] >>
endobj
1580 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 368.049 null ] >>
endobj
1581 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 357.09 null ] >>
endobj
1582 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 346.131 null ] >>
endobj
1583 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 330.689 null ] >>
endobj
1584 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 319.73 null ] >>
endobj
1585 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 308.772 null ] >>
endobj
1586 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 297.813 null ] >>
endobj
1587 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 286.854 null ] >>
endobj
1588 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 275.895 null ] >>
endobj
1589 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 264.936 null ] >>
endobj
1590 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 253.977 null ] >>
endobj
1591 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 243.018 null ] >>
endobj
1592 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 232.059 null ] >>
endobj
1593 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 221.1 null ] >>
endobj
1594 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 210.141 null ] >>
endobj
1595 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 199.183 null ] >>
endobj
1596 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 188.224 null ] >>
endobj
1597 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 177.265 null ] >>
endobj
1598 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 336.536 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 166.306 null ] >>
endobj
1599 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 325.577 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 155.347 null ] >>
endobj
1600 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 314.618 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 144.388 null ] >>
endobj
1601 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 303.659 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 133.429 null ] >>
endobj
1602 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 292.7 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 122.47 null ] >>
endobj
1603 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 281.741 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 111.511 null ] >>
endobj
1604 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 270.782 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 100.552 null ] >>
endobj
1605 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 259.824 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 89.593 null ] >>
endobj
1606 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 248.865 null ] >>
-endobj
-1607 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 237.906 null ] >>
+<< /D [ 1548 0 R /XYZ 81.145 78.635 null ] >>
endobj
-1608 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 226.947 null ] >>
+1547 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1609 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 215.988 null ] >>
+<< /Filter /FlateDecode /Length 2453 >>
+stream
+x[r6+XTh4YT) &%0r<4z/^o•nE2g'X4Z\̹s?/wm.9@83z$Q o٣k
+\p.^ 
+TF3h5O) G8 zAB0=iJP2;F :#EQe[bJVwW+ojq2 Y µ JYt&N3 !Z Ӕ` PԜH8y-zuWVuK
+> `1 K]dq dEPYz,e4/b A RRGiځ
+[ $ۈ³cw5ؼ|;y~t=CC=d.[ov,lYY|2;hrs"D6ۛ~%PIFP0$:"I'FLf[Ɓ4*:%D
+(vB1jB 1(L1.)pWX^`R&&GM""Ѵpf\1m0Lac'+-3TJ?vV'y]C
+^GXU$P}PI}mJdzp+#fV
+b>''ѻ+F*:"0=8%Ew<PhOp[oVtHC bFʔ;Ѧte)/ؾ8,wC+:ϗcl-X#(%WS_v>[*J#^llA6TbFrqy}P#4]Ăf)
+u~҂{ɮ=-NDOOGUhהvfb)*j0׹lsYRrrts@FsO1W*e}F1M;*35HX.9iݲ4%q=]ОJUT9}Wmk`\f `b}4h׎4EѬr/hIߛ^\Ýr1pP.ؕо[YQ<SLؾ4nf)3SKɅ[|VBM Y:`^)vQs //Zr۳}Dږ B|*
+Q%E%j~G Luz;ё2J>q_?pOZp>t**9IS4/' {Ilw%CiJ]ۊ'rbK痯C^,\둥"Q}EO㥃/6:e
+9(JF<fP7 =&ҮxU>dzCT*O)ƯU{Il1BeݹENJ-y.N dɐiyg׼\}6]CB\;ZeM֑3WRj_vcXvtc*-璤u>}?8j7~+n+j@op١xG?#a`? |
+E{-?8
+endstream
+endobj
+1608 0 obj
+<< /Type /Page /Contents 1609 0 R /Resources 1607 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1610 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 205.029 null ] >>
+<< /D [ 1608 0 R /XYZ 78.37 808.885 null ] >>
endobj
1611 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 194.07 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 768.829 null ] >>
endobj
1612 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 183.111 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 757.87 null ] >>
endobj
1613 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 172.152 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 741.93 null ] >>
endobj
1614 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 161.193 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 730.971 null ] >>
endobj
1615 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 150.235 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 720.012 null ] >>
endobj
1616 0 obj
-<< /D [ 1569 0 R /XYZ 81.077 139.276 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 709.053 null ] >>
endobj
-1568 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F20 186 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1619 0 obj
-<< /Filter /FlateDecode /Length 1743 >>
-stream
-xڽZM6ыf~h( 
-ߚBPlZ-Mwh%I=q83| <N?ί^17qidpŠN8"hFfft*oӇz>գo2E}}tQ6s˾EU+뮽~q|mo۾ou4ۖmٵ*o_Ӽ=_KG#>rf O;Tb&o˺j>~wT``lkEޏ,7E
-~DŽ\4YU<e]XACm.9|%Ι7vƞ3NG1"J_s Uan;nnN.E{۔UٟŮUh촣FعqO)m#Uܚ] 
-,5]4BJB5ܸ$AIu 8 h| u听bt,mgP~pw z|#s΁wg?;b
-(ɂ}D5/@Ez .pO1 kI;"M.?ͯ1
-endstream
+1617 0 obj
+<< /D [ 1608 0 R /XYZ 81.145 698.095 null ] >>
endobj
1618 0 obj
-<< /Type /Page /Contents 1619 0 R /Resources 1617 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1608 0 R /XYZ 81.145 687.136 null ] >>
+endobj
+1619 0 obj
+<< /D [ 1608 0 R /XYZ 81.145 676.177 null ] >>
endobj
1620 0 obj
-<< /D [ 1618 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 665.218 null ] >>
endobj
1621 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 654.259 null ] >>
endobj
1622 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 643.3 null ] >>
endobj
1623 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 632.341 null ] >>
endobj
1624 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 621.382 null ] >>
endobj
1625 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 610.423 null ] >>
endobj
1626 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 599.464 null ] >>
endobj
1627 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 588.506 null ] >>
endobj
1628 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 577.547 null ] >>
endobj
1629 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 566.588 null ] >>
endobj
1630 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 555.629 null ] >>
endobj
1631 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 544.67 null ] >>
endobj
1632 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 533.711 null ] >>
endobj
1633 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 522.752 null ] >>
endobj
1634 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 506.812 null ] >>
endobj
1635 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 495.853 null ] >>
endobj
1636 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 464.969 null ] >>
endobj
1637 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 454.01 null ] >>
endobj
1638 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 443.051 null ] >>
endobj
1639 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 432.092 null ] >>
endobj
1640 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 416.152 null ] >>
endobj
1641 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 405.193 null ] >>
endobj
1642 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 362.354 null ] >>
endobj
1643 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 351.395 null ] >>
endobj
1644 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 340.436 null ] >>
endobj
1645 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 324.496 null ] >>
endobj
1646 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 313.537 null ] >>
endobj
1647 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 302.578 null ] >>
endobj
1648 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 291.619 null ] >>
endobj
1649 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 248.78 null ] >>
endobj
1650 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 1608 0 R /XYZ 81.145 219.888 null ] >>
endobj
-1651 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 397.225 null ] >>
-endobj
-1652 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 386.266 null ] >>
+1607 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F81 505 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1653 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 375.307 null ] >>
+<< /Filter /FlateDecode /Length 2660 >>
+stream
+x[K[+WJU}:άoG<t
+Uo&j~bJnRr+Lp" Y/%CVi;Q]p.텲=R'*NXfk',jr*i$mPhT .|lq(ߙh.e Ӊ&Q8+EjLQD(R'l)i#Ov5f1oN<ffaM#yOf* ,ؗ8YcZLVqJ ΄Ct*6 TE=V|dkMҭX:;? 2:ɮ Jwɬ̝'3WZdn8PoMJJ+~壀8, =mv؟<2X v)ޚoJ#𓟊8 uB jaI@P!QFjrX7U= +h%k(s gHGKs܍MϠuJp̿|ЯC,4yrQhʰ:w"
+y]SVX!dlͼ6y{ƈ$sVOቶ!: 3踥mNH1N9 Y~O3^~PVDL|L8x"?lI(; LObpJYT](C'ɘ
+Mdy7m~r4mXrB<シfZxgf0kfg&w +>'H9Xp3X#'X1Rg'8n4F)[*L>&#,q+W;}mEEaFhq\YVh\f$h1e<2 {9 MU6oOAaN
+ɪ_ʦ\aEЊbnj{ qoA 6Ǽ@wL@3ڒd]W/s do5äS~x'RDx&C8Uw6F]c
+>EW^F8] Zt=pc-ҊS]c\}~7U tNFx=7RKw+gcPVlf;w.(aϲ>:6R`OZ0^^څd 0ep^3MT,QuQu]A Ye$4`t3`N[~떤= *D'urqʾcz
+%Ô(=SR&Njw#LuS'f 2JI|,z VkQ#ޕE:fVk<FuX8Zc.H ڜR%|:#vUFb:o׍ͥ!e "'H#d$D-(* ֏tۿB3n W3y/TyGJ ˵>
+[zaL~s~܌aߑx6/\4㮉uW_Oaoo
+endstream
+endobj
+1652 0 obj
+<< /Type /Page /Contents 1653 0 R /Resources 1651 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1654 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 1652 0 R /XYZ 78.37 808.885 null ] >>
endobj
1655 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 658.244 null ] >>
endobj
1656 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 647.285 null ] >>
endobj
1657 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 636.326 null ] >>
endobj
1658 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 625.367 null ] >>
endobj
1659 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 614.408 null ] >>
endobj
1660 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 603.45 null ] >>
endobj
1661 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 592.491 null ] >>
endobj
1662 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 581.532 null ] >>
endobj
1663 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 570.573 null ] >>
endobj
1664 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 559.614 null ] >>
endobj
1665 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 548.655 null ] >>
endobj
1666 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 537.696 null ] >>
endobj
1667 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 526.737 null ] >>
endobj
1668 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 515.778 null ] >>
endobj
1669 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 504.819 null ] >>
endobj
1670 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 493.86 null ] >>
endobj
1671 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 451.021 null ] >>
endobj
1672 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 440.062 null ] >>
endobj
1673 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 429.103 null ] >>
endobj
1674 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 418.144 null ] >>
endobj
1675 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 407.186 null ] >>
endobj
1676 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 354.384 null ] >>
endobj
1677 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 343.425 null ] >>
endobj
1678 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 332.466 null ] >>
endobj
1679 0 obj
-<< /D [ 1618 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-1617 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1652 0 R /XYZ 81.145 321.507 null ] >>
endobj
-1682 0 obj
-<< /Filter /FlateDecode /Length 2922 >>
-stream
-xڵZ[ۺ~ϯ[hˆWI8mќ(i%W' /J}, he~|'~|7?|%HPVw7E+JQ4^ŊHa5T\?tT))O.3y̺dR7W?d2`8\QFFlQ]'Ƅ"mCvok+  xI~s콯2 ])
->4ی1[◟/傰RD R&WJ O!;7G;o]R>l.cŦ/#qVP9U ' ґG]HU
-$L1IbN w|ka`[o!"eg8TU爋bk<{3XێBDdPN,"L>ݕTÊ3+A0&ؘۻ*YxL٬E(#fe(Lو0SQLT{{A
--4%9!8HK5.FX<\d7_w_uUvEB3 H+#EkWrXě C
-
-9}W ]?A5W̟J/ɭ Bΐ˦6n2ތA5<ή1HF6`*%X6&9AC8 ω{0{Oֻ\s޴[݄4=|[\{3l"cpR$>G$(yKV"}<4L1MOw|Q' c۝ͅG}Q#b+O볮x<4%b6a_ՋC,-{ԡ%//v|Sd}s̪PՊO" C0G=VS'щ(QORVM7OBPظכ B=\޴:*O}a^ ḩ
--p » s+>mKA/ 6E?Mq4Xd< ՟sƂmunr}#aavKoPC35#TygSy<B$&ڳ0p{:n1y{VuE76oEt̟Xx: (OZ1$e< v%,5d(1$kSNƌ?Xxޚ0_ dZ݁liQ>J(ty_3҈f" D=p[5Rb{{5,7Q,vE^)zKœ0z$ LF*K(!.+덵{|0S5F+m;bcQyiRDUt݇
-aJc;;fD~]U
-Jbw\y;޽yǾ- 6g@
-5>p7,`,BAWmN2,xgeQmʂIŋ>杊_Į"ՄgXڑ{O+VEPFu q(^k >KjXtL_dZEda B^2q*1<\8H|yHGiqDy."")A\DLL}1cQ|w'ttm5P%,~ƕZ[ig@i|3[jLmHh:VhbCWdrIM^UO"YGQcC9hz;wg.9nZo&2k{dB(uS;/NGbzjkSAN, n
-p/# P
-nF 2Q6@g~|{2TϹSrRS)W?52g]2ɘABegKK146lVbc[,ClͿ^^tvx#M糍65)#uGMj ̸"^`Yd$I'\m/("RP"_'S H' YoYBFP)eP赵Gm" Og"㧄NdH[)I2hRE m$Ϲ x
-A!o$*ZKjwl.G]K6dY0éOReӻR(dQ}0Q k6^;>:0,L'7 غɻµ?ǶV6'7vwQk/e5ǺB
-.Z'mCfjz
-endstream
+1680 0 obj
+<< /D [ 1652 0 R /XYZ 81.145 310.548 null ] >>
endobj
1681 0 obj
-<< /Type /Page /Contents 1682 0 R /Resources 1680 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1652 0 R /XYZ 81.145 299.589 null ] >>
+endobj
+1682 0 obj
+<< /D [ 1652 0 R /XYZ 81.145 288.63 null ] >>
endobj
1683 0 obj
-<< /D [ 1681 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 277.671 null ] >>
endobj
1684 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 266.712 null ] >>
endobj
1685 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 255.753 null ] >>
endobj
1686 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 244.794 null ] >>
endobj
1687 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 233.836 null ] >>
endobj
1688 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 222.877 null ] >>
endobj
1689 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 709.066 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 211.918 null ] >>
endobj
1690 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 698.107 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 181.034 null ] >>
endobj
1691 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 667.239 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 170.075 null ] >>
endobj
1692 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 656.28 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 159.116 null ] >>
endobj
1693 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 645.321 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 148.157 null ] >>
endobj
1694 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 634.362 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 137.198 null ] >>
endobj
1695 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 618.432 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 126.239 null ] >>
endobj
1696 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 607.473 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 115.28 null ] >>
endobj
1697 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 564.649 null ] >>
-endobj
-1698 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 553.69 null ] >>
+<< /D [ 1652 0 R /XYZ 81.145 104.321 null ] >>
endobj
-1699 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 542.731 null ] >>
+1651 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1700 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 526.801 null ] >>
+<< /Filter /FlateDecode /Length 2487 >>
+stream
+x[ˎ# WZW(J ]moKݥ۶\u")T˿.Yޯ_x(s^>EE]^,)!I]>}W)Io0JD_F kjak~
+x0^d|B|LH ;5ƚq<Qr|@R?ʚd:3
+x{H+ \`o[wQݲzZe~6 T L`6g_51ӘORa@'%>3j腒Ȯr{OzcGhp?lFx49$j#q7D/]ADIHI%)4.d%l=]4\2bJ?GG |3`1R&v<ƫ0Đ}YQBy?ScRJh5-K
+),((Ҋ,ASSkHqX/tt>b]}*u]4`m٤4i79ൾoSyj[ju{3;fekUpZZ36Mi:Z?l&ja !\M}c$A9FJ
+{43XSL4*fxUL"Ĥ11
+GjOYEQ~t?dJmIJ߇T0fj$iTD@ pJtnGhlu^7n']./9 n`[͈q4ЅjXrx˃9 RV5F^ƨD hYzbVN1+ l~VF6Z6RJ -OsNؠ !I#xbD#;h3'2˓&8@
+{M|{F+dn2!m9JB+m2Fm'Dia$13fDZX+:
+L#YGJkK2[3-,-;(jaIO+x
+Pͼ.ب4ڪ!\%~X`>Bnnyy}^ 8ܩf7@h
+ˏ3uFho^jHfi)IqjOhң)v\K;-RX]L}U.+ЂiLki
+봠Y8-= =²h֐jG[pmfuyWI\E֏J~-J7HjOç'RAIψɉY
+yhP֩h-̦PC\rCxē푎xضR]$ܖ); ^<{_KP4]zqEHt>?-DqKqj@t^ٰUO&1Kt~@<::~sS3%ҹ]PҺNhMI҃RiNQڟnA.8@'$-L!WCY'aj[3$Qz4Or˪% ]6^$Fj׵pu'x}x>W0% X~ֿ秊#ת8of'GUi @-
+endstream
+endobj
+1699 0 obj
+<< /Type /Page /Contents 1700 0 R /Resources 1698 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1327 0 R >>
endobj
1701 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 515.842 null ] >>
+<< /D [ 1699 0 R /XYZ 78.37 808.885 null ] >>
endobj
1702 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 504.884 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 742.926 null ] >>
endobj
1703 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 493.925 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 731.968 null ] >>
endobj
1704 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 451.101 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 721.009 null ] >>
endobj
1705 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 422.219 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 710.05 null ] >>
endobj
1706 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 699.091 null ] >>
endobj
1707 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 688.132 null ] >>
endobj
1708 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 677.173 null ] >>
endobj
1709 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 666.214 null ] >>
endobj
1710 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 655.255 null ] >>
endobj
1711 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 644.296 null ] >>
endobj
1712 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 603.45 null ] >>
endobj
1713 0 obj
-<< /D [ 1681 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-1680 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F78 556 0 R /F79 668 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1699 0 R /XYZ 81.145 592.491 null ] >>
endobj
-1716 0 obj
-<< /Filter /FlateDecode /Length 1945 >>
-stream
-xڭZ]}_G&(0h Z
-E3(=g?)r?ý>*;3*M Ja~YJ&?]>W-[npi^,kWKh/}o1 4.}sKo=o}J}3Co3o7Evm\{gۍOU,۪]Kh Wݗ`V9&1?iU4.#}>O e)”:m¶LtcJ &~l>R;
-K>&|}Lch)WA֤D)g2AR}>mzoj/SqY"QnV)*# '.EFP:u!|U+P3oja JVP+WnRdfys̶·gih`j|
- DMFP2J)ACؓ4gc h&)QUW'h|p< AM4D5):.0?]Ƨze~IZ6؇
-#g <_+ Zh(V*+iSeP1Afqt<_f
-b:C7`
- )&'` 4 Asj?A
-bRET&zJDtNek<7B8#Yh+bR=MQ cnj\c!\M>o][1=0Mxuk@<5hJ=`YhM(OCjU-3? z`W{H r2!S`Š8+:+g ,uptI
-endstream
+1714 0 obj
+<< /D [ 1699 0 R /XYZ 81.145 581.532 null ] >>
endobj
1715 0 obj
-<< /Type /Page /Contents 1716 0 R /Resources 1714 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1316 0 R >>
+<< /D [ 1699 0 R /XYZ 81.145 570.573 null ] >>
+endobj
+1716 0 obj
+<< /D [ 1699 0 R /XYZ 81.145 559.614 null ] >>
endobj
1717 0 obj
-<< /D [ 1715 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 548.655 null ] >>
endobj
1718 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 537.696 null ] >>
endobj
1719 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 526.737 null ] >>
endobj
1720 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 515.778 null ] >>
endobj
1721 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 504.819 null ] >>
endobj
1722 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 493.86 null ] >>
endobj
1723 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 482.902 null ] >>
endobj
1724 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 471.943 null ] >>
endobj
1725 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 661.013 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 413.163 null ] >>
endobj
1726 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 650.054 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 402.204 null ] >>
endobj
1727 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 639.095 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 391.245 null ] >>
endobj
1728 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 628.136 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 380.286 null ] >>
endobj
1729 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 617.177 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 369.327 null ] >>
endobj
1730 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 565.038 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 358.369 null ] >>
endobj
1731 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 554.079 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 347.41 null ] >>
endobj
1732 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 543.12 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 336.451 null ] >>
endobj
1733 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 532.161 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 325.492 null ] >>
endobj
1734 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 521.202 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 314.533 null ] >>
endobj
1735 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 510.244 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 303.574 null ] >>
endobj
1736 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 499.285 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 262.727 null ] >>
endobj
1737 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 488.326 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 251.768 null ] >>
endobj
1738 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 477.367 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 240.809 null ] >>
endobj
1739 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 466.408 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 229.851 null ] >>
endobj
1740 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 455.449 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 218.892 null ] >>
endobj
1741 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 444.49 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 207.933 null ] >>
endobj
1742 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 433.531 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 196.974 null ] >>
endobj
1743 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 422.572 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 186.015 null ] >>
endobj
1744 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 392.462 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 175.056 null ] >>
endobj
1745 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 381.503 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 164.097 null ] >>
endobj
1746 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 370.544 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 153.138 null ] >>
endobj
1747 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 359.585 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 142.179 null ] >>
endobj
1748 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 348.626 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 131.22 null ] >>
endobj
1749 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 337.667 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 90.374 null ] >>
endobj
1750 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 326.708 null ] >>
+<< /D [ 1699 0 R /XYZ 81.145 79.415 null ] >>
endobj
-1751 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 315.749 null ] >>
-endobj
-1752 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 261.728 null ] >>
+1698 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F81 505 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1753 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 250.77 null ] >>
+<< /Filter /FlateDecode /Length 5185 >>
+stream
+x]K9WqPz?1Uy`O _REJȌ(ɔ(EQV<~ۇ_ޢ-'m4R7}Ka *bЛ
+ߟF𢔵?׷|y M6jϜ?] '
+*}߰|lR~sOXJ'}WVfj:nfd'o|9 3Uw@\^ĭPƧ"h%V(.dI]p1cZhcŧx h[;$1i-%q$='[*v}˛ ›1o6BцT3.6͓q7(Z5/D$ֵss;.uLm׾R.k+CJT+ (k\{CQka_Ht Vsn.5Ia7Il _P`JSϧ{׋.Ϋ>P|?SH<{
+
+6<@8#'`l+4HJ+VZ d1Y:̐uw/ش
+:A4 Q'0LkdoLbeb,7qkXBmVH*X,BK(,tNJ9Ap0 V)8
+`X^L@vr(Y
+JJ`qϛUp3 Vx",-P4Jtv]gjU"Ӆj*Ǵđ!x/1`vJ ;2FX벵@FP:̎tf4,^/&t ^;e9,
+~;6]a9f!;=x*1D҅Xu}{.Y/&'V;= H1kc ƅ11RlH)՛rH%IA%}:toVbţbRk,@I;6e0H嬍7bTX8&NI%}:toV`bBS">R
+0QO;?
+vƉ % m$^N<q^Sw!u|:I?*26*k[\2@{X ڛ+'F*d}GeZ<Kxw2;^{dSǤ$ÂϜ(y]-x 4t7A1f*@9
+rK>2 ]rK@63LHK|.dϸ>}z()yV}vo'CU=1wq7Ic,& IyL+QpzQWytH[~'q}]?aAĒ^팄^6 4Ϧ=1K[ @p
+ گȂ$\H n.#++FN׺Ιa|؛/Νj譜h VQw3l/
+PUBhj֓^e'q؆\ZoƘ×4{*!]ksGq|K ex;6[sv.k],;RԹa>%E@Z7`lc(66*˅}=ur4W^Ǚžt3'<~R23gaMCC;Y@W
+Rc[K?=voRt~uAG[i0SRe}fNL~}ؒ8?~S._ _g7
+V;>TXkp͍f[bje:ҜS)bM$Ec5PEt̔"TJHĸYfҗ;հYw܆LvFWJxfL鞅zi딙^[XaF_{p89ܮsg#r 1=]_;Q@><<8m`X/z'4Gnݠ Z/1jNsj̘9yr Rg{͞wɸ#=k^]/Ao3\'r^t- -)Kk!-5>&Bӫ%hKäyPL_;E x9)̰stfGnr#RZ-$+견8ϙ3]n?Tiikj
+endstream
+endobj
+1752 0 obj
+<< /Type /Page /Contents 1753 0 R /Resources 1751 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
1754 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 239.811 null ] >>
+<< /D [ 1752 0 R /XYZ 78.37 808.885 null ] >>
endobj
1755 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 228.852 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 768.829 null ] >>
endobj
1756 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 217.893 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 757.87 null ] >>
endobj
1757 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 206.934 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 746.912 null ] >>
endobj
1758 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 195.975 null ] >>
-endobj
-1759 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 185.016 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 735.953 null ] >>
endobj
1760 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 174.057 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 496.431 null ] >>
endobj
1761 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 163.098 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 485.472 null ] >>
endobj
1762 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 474.513 null ] >>
endobj
1763 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 463.554 null ] >>
endobj
1764 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 452.595 null ] >>
endobj
1765 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 441.636 null ] >>
endobj
1766 0 obj
-<< /D [ 1715 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 430.677 null ] >>
endobj
-1714 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1769 0 obj
-<< /Filter /FlateDecode /Length 4223 >>
-stream
-x\p^N[
-j43H?.wMGFt>WWO>zs#F8]]?aDGld5̌fj6}7fɋ}}\%Nka1jn6û/&ٳzvLA%|,HE <)Jඅ#Lܶٶ#
-~=W͢P%S=ӊ'07/hl澟OoVeprvXe 67<&\뜧6ඵSDPۖǡY/`|oݮDHcaba:sFL8"9-6|C!\g܌WƇ(ެVr*z]EO^&YEC\8AG*Sp;7Y
-Pbpp#VvO,bW[{<67n{ 9`V7)Zwâֹk!j%Ј!'R(YOb \rz1 w:xng~ٮC#bP+Yཱུ
-L¢38J,J2wX/6^~iit)6[t?4@r@~vuӴ_T^]fyApd6]]X>n=B$l 0Ѹ!9fr>[E 4p %Hq[77os?<:VOaA01Y,l:{HCJٍm#4ڮeO=M^r
-nl}!?4!Ur8.-BaN&X /wpYUam;bxq=92θDփnyhxwfN`Rr9 ̱m?+^M:%
-*ReZٳxm>]y0=9be;-jF,Q=uflzw/Kn ff<>fׇf9փ#a|{t((׹%ּnWNӝC84zrgbR`J/__.
-X 0 }0`#
-Z|e7a
-E3Hnr1Enz  aKN)aJA
->0")p aJ"*+4RXX+<u3p(q:%L9Pe @ƹRUp
-XQ+'WaɝiO<%YD`3%SCM2ChEӮ
-E3Hnr1E nz 0}(\|U`z'8"'f)aZzboL]DDi`Wl*KB2K5T3Mh+(Af@S#N
-c2acA`=  <! ISY67Zbz)䬛ecI_)i=h|=T
-PVj@˜\eIKc&YN4a)EAr BbSUZsZ{9eO3P%yXAҔIvVMmVа^?y{hg
-endstream
+1767 0 obj
+<< /D [ 1752 0 R /XYZ 81.145 419.718 null ] >>
endobj
1768 0 obj
-<< /Type /Page /Contents 1769 0 R /Resources 1767 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 1752 0 R /XYZ 81.145 408.759 null ] >>
+endobj
+1769 0 obj
+<< /D [ 1752 0 R /XYZ 81.145 397.801 null ] >>
endobj
1770 0 obj
-<< /D [ 1768 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 386.842 null ] >>
endobj
1771 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 360.158 null ] >>
endobj
1772 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 349.199 null ] >>
endobj
1773 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 338.24 null ] >>
endobj
1774 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 327.281 null ] >>
endobj
1775 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 316.322 null ] >>
endobj
1776 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 305.363 null ] >>
endobj
1777 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 294.405 null ] >>
endobj
1778 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 283.446 null ] >>
endobj
1779 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 633.368 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 272.487 null ] >>
endobj
1780 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 622.409 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 243.403 null ] >>
endobj
1781 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 611.45 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 179.846 null ] >>
endobj
1782 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 600.492 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 168.887 null ] >>
endobj
1783 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 589.533 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 100.552 null ] >>
endobj
1784 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 578.574 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 89.593 null ] >>
endobj
1785 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 567.615 null ] >>
+<< /D [ 1752 0 R /XYZ 81.145 78.635 null ] >>
endobj
-1786 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 556.656 null ] >>
+1751 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F72 266 0 R /F34 1759 0 R /F25 609 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1787 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 545.697 null ] >>
+1789 0 obj
+<< /Filter /FlateDecode /Length 2191 >>
+stream
+x[r#7 +!jUmMUξrMNk@6)lk& k?N׫'ϼN? Od=d`܈_qnx"3rm-y =./p0<ajvloHn
+qD}ya
+dDY a[zEܗw26io.gŷg`lfҋ!+ EsKZG8襙C!D P\Qis-%}xJF.yhI9`FI;&HZczybHdXf Ϝ3k#$LJ[,1##&0 j ֤_i*ViuQO5"e6!RZNYsxRT ą{L*aq`.5WAٜ(  F#SJ٪Q}](a5RR(3_u\d|rJ.z|_1Frk>"=f ) &,; &Zu),(nin4@}Ѫ8FC4/  *BG$I"bb 雒.nQKHhZCꩡ<0()BF4OFe0ʹhķHR^7+FoWy4d˞bk܃Kˤ%K3{J"ėgUd/NpOPj"i>hPmeTVHZ^ ͔0#QfTtHM'V끔+~^J:$;C)F/gal\L8[XápvHcOi80i=:@ &+ (IrA.Mhī.I9K4@Ֆ]m4& fjćk(yOHyMJCUs8ت~HﭖTث
+1w Ba0)M~Xtolnq"61wK ^eFtNU<W-= u/7 '[8I*-#f#^;
+@WD\+[3
+ѽ{oLPa -(HOg{X4%to_&Kfs^wHfI2[phf)~c {UvSn$㵏́OZ#aΘG-"1+ŷ;`FN2,|^/
+endstream
endobj
1788 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 534.738 null ] >>
-endobj
-1789 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 523.779 null ] >>
+<< /Type /Page /Contents 1789 0 R /Resources 1787 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
1790 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 482.947 null ] >>
+<< /D [ 1788 0 R /XYZ 78.37 808.885 null ] >>
endobj
1791 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 471.988 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 754.891 null ] >>
endobj
1792 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 461.029 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 743.933 null ] >>
endobj
1793 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 450.07 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 732.974 null ] >>
endobj
1794 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 439.111 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 722.015 null ] >>
endobj
1795 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 428.152 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 711.056 null ] >>
endobj
1796 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 417.193 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 700.097 null ] >>
endobj
1797 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 406.234 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 689.138 null ] >>
endobj
1798 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 395.275 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 678.179 null ] >>
endobj
1799 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 384.317 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 662.259 null ] >>
endobj
1800 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 373.358 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 651.3 null ] >>
endobj
1801 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 362.399 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 620.445 null ] >>
endobj
1802 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 351.44 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 609.486 null ] >>
endobj
1803 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 310.636 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 598.527 null ] >>
endobj
1804 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 299.677 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 587.568 null ] >>
endobj
1805 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 288.718 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 576.609 null ] >>
endobj
1806 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 277.759 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 565.65 null ] >>
endobj
1807 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 266.8 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 554.692 null ] >>
endobj
1808 0 obj
-<< /D [ 1768 0 R /XYZ 81.077 255.841 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 543.733 null ] >>
endobj
-1767 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F32 1809 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+1809 0 obj
+<< /D [ 1788 0 R /XYZ 81.145 532.774 null ] >>
endobj
-1813 0 obj
-<< /Filter /FlateDecode /Length 2530 >>
-stream
-xڝZ[o6~_EQ&.";CP)YflJd=%JT̋%Qx.<<7:B|_Eܙd7>|"J!%`w>Vx%r%FgLUjMY#H=fUQ?z:>a@JyO/.euڇޟ rݏM^$^Wiiyf@Hy˳[tm?}0U'<w˦OYW*g_t0pV@JՁiYս{_5sW넡~9} _']fFx3rQwTqiQh<M 8ڻ<WeZ<'0+[001$]1bLb+"i0dfJBb0%A)G)샍fMR䮮ZzM6i`l~G+ &ICϓcD яe6;6GemHMyRz%}vMbv&MHB '0sOU;Fb4mұ-؞í1Th3i+ᕇ6+xj&S Ժ3µH)`$y0~M2/u=eW/[$Q* 5X&Y=RKʪݔ{{5L
-"Fccg팆A|VL:}3$;f,L?p[T &̃3Y#">/iVWYb ;4\O
-rFs;0<d9„6ݞNnþ odo)CqyÔ>EJϪ#Ð ^/JvC_?L(U(LQ VCOV 6?Xfii˶\[]5 ‘Ksx2__~xr8_^C \2\Omϖ
-CBTxu-a|rj*|;́H
-ej$@T{S" [E̛ܤ"^% tXzgld{ox)P.q25Kpٓc{P~=gzftLtӷ0g 3Ð/3}x!gJwr(b~3W/cliji
-kڪD,3:7ҟTM0fLEcǺi)L6S l.^7nXe9k ޙu'ZG77t:ڞ]ħQXA*վ`D쓴=9xV
-
-E1=8I<LB|dK.6v%vv׬:  )%v)^@H nT2<R\!$cBhfPfmѶB98µ9 nSkZ-6y[(5uC+
-MA >9򰪰-≩'}2[|.rXP]ݿRK"ʪ >4eet/w1LM]G3!մJN@WIYtp@V|48>D
-Jr8vk?8i:%0G0A:=tb%zAg r~o(`<xl &Hm3GAs8;r"CӖrv~zBaAns#",|z3"x&sqo))CLy#a[}ݼmKؐԴƖs|Ybp
-P,8 a<FTK[K#w<3 UgՕ!%{$y
-endstream
+1810 0 obj
+<< /D [ 1788 0 R /XYZ 81.145 521.815 null ] >>
+endobj
+1811 0 obj
+<< /D [ 1788 0 R /XYZ 81.145 510.856 null ] >>
endobj
1812 0 obj
-<< /Type /Page /Contents 1813 0 R /Resources 1811 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 1788 0 R /XYZ 81.145 499.897 null ] >>
+endobj
+1813 0 obj
+<< /D [ 1788 0 R /XYZ 81.145 488.938 null ] >>
endobj
1814 0 obj
-<< /D [ 1812 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 477.979 null ] >>
endobj
1815 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 707.063 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 467.02 null ] >>
endobj
1816 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 456.061 null ] >>
endobj
1817 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 445.103 null ] >>
endobj
1818 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 434.144 null ] >>
endobj
1819 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 423.185 null ] >>
endobj
1820 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 412.226 null ] >>
endobj
1821 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 401.267 null ] >>
endobj
1822 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 390.308 null ] >>
endobj
1823 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 379.349 null ] >>
endobj
1824 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 368.39 null ] >>
endobj
1825 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 357.431 null ] >>
endobj
1826 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 316.643 null ] >>
endobj
1827 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 285.828 null ] >>
endobj
1828 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 274.869 null ] >>
endobj
1829 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 263.91 null ] >>
endobj
1830 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 252.951 null ] >>
endobj
1831 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 241.992 null ] >>
endobj
1832 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 231.033 null ] >>
endobj
1833 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 220.075 null ] >>
endobj
1834 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 209.116 null ] >>
endobj
1835 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 198.157 null ] >>
endobj
1836 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 187.198 null ] >>
endobj
1837 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 176.239 null ] >>
endobj
1838 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 165.28 null ] >>
endobj
1839 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 122.47 null ] >>
endobj
1840 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 111.511 null ] >>
endobj
1841 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 100.552 null ] >>
endobj
1842 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 89.593 null ] >>
endobj
1843 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 1788 0 R /XYZ 81.145 78.635 null ] >>
endobj
-1844 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 229.853 null ] >>
+1787 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1845 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 218.894 null ] >>
+1847 0 obj
+<< /Filter /FlateDecode /Length 2534 >>
+stream
+xڽ[r#7 `@wbJ\rvjGԸGR@"9>&?s^x~eҿs{||iq"f@8}"\#~'椕`\ǿ?ΜK-J?z"MaV)4 %Fdw^?o9>Wݥ~٨A3Ϧ#9fA\N/ 7 2O,)l9G
+Z&g1@fQaFk'z I dP(-/}l
+&j"7
+4J׬e4C$H8nf p4K
+3^NtiBJb^H<:AC4!=eD?sJ]jN^ƚS4VJL'O%fJtB6\4rT-CgevzAE3h03MR)L} e
+R~,d;Dz+gAKz@A
+'RØCI1cV}ح 86.,=}'%7z`9뗤"i#)`kh0n`jAɅ4 o#VUvD
+AZL `0{ ^ƚj@W3{bR{Cfu5$E 42 A"#YU[Fb  0fLb UbvT MH2SEVM/
+~~)Mm FoTJ;'<K>~5jO>Km˩MRZ*ܫe@oX
+ (;ia"mybBe-|Ԏq 8lVl"=q+VBIu"nq{
+endstream
endobj
1846 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 207.935 null ] >>
-endobj
-1847 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 196.976 null ] >>
+<< /Type /Page /Contents 1847 0 R /Resources 1845 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
1848 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 1846 0 R /XYZ 78.37 808.885 null ] >>
endobj
1849 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 768.829 null ] >>
endobj
1850 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 757.87 null ] >>
endobj
1851 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 746.912 null ] >>
endobj
1852 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 735.953 null ] >>
endobj
1853 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 695.106 null ] >>
endobj
1854 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 95.357 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 684.147 null ] >>
endobj
1855 0 obj
-<< /D [ 1812 0 R /XYZ 81.077 84.398 null ] >>
-endobj
-1811 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1846 0 R /XYZ 81.145 673.188 null ] >>
endobj
-1858 0 obj
-<< /Filter /FlateDecode /Length 1976 >>
-stream
-xZ]o}ϯ[a%4E@zشJJiC}Фn}dIGs8̜Bg}wE#I˫ۻT$1 >[n<DglQ,lsd*23MRB`#g&dg϶U^.ó7M<Xw/M(a{G4D;2}m?˾n+4#a3J.cВQاOÅ/o\Qu}'WõO'?OP&LK?Ts~*u s64J 0FDJy2.jѶIm. 0[z }&%LD4 #6#)\jom<)CcGnEw](,oY)N9_s:OdjG<ml]Apx(mx #2B >YuMVl2w2٭4I 1_<A~C0gs}aJ4,|lj"oT&Z+To_TvGSW"7jbq0Bm네L{۸rslxELRIR?҂,㽠'zsacAz}{
-[0Ds#.Mu]WKCBCO*Pk.BӐHmKT@Fl95f H$;k-z9d69Q|佔nVnuƷiqGvY!+bNeQHD| d/P(W aO^Gc[<O5aOtxs3h@p{ ]S7(KQ~L[M4[>=[@t~`r!mh+&JB'NkYyfgX٪,ƾÓ$TN8B UД$vЁ?X* :tV&TyWnЎiyP#B?ٶ6O׾3 q&FA}Yg &D*!o?OhGKFo&p<DmULo QnQ1_O38i> $}T94B:0
-$Pd';yrg
-ھ>9D-
-endstream
+1856 0 obj
+<< /D [ 1846 0 R /XYZ 81.145 657.248 null ] >>
endobj
1857 0 obj
-<< /Type /Page /Contents 1858 0 R /Resources 1856 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 1846 0 R /XYZ 81.145 646.289 null ] >>
+endobj
+1858 0 obj
+<< /D [ 1846 0 R /XYZ 81.145 635.33 null ] >>
endobj
1859 0 obj
-<< /D [ 1857 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 624.371 null ] >>
endobj
1860 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 613.412 null ] >>
endobj
1861 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 602.453 null ] >>
endobj
1862 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 559.614 null ] >>
endobj
1863 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 548.655 null ] >>
endobj
1864 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 537.696 null ] >>
endobj
1865 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 526.737 null ] >>
endobj
1866 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 515.778 null ] >>
endobj
1867 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 504.819 null ] >>
endobj
1868 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 493.86 null ] >>
endobj
1869 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 482.902 null ] >>
endobj
1870 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 471.943 null ] >>
endobj
1871 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 460.984 null ] >>
endobj
1872 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 445.044 null ] >>
endobj
1873 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 434.085 null ] >>
endobj
1874 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 423.126 null ] >>
endobj
1875 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 412.167 null ] >>
endobj
1876 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 381.283 null ] >>
endobj
1877 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 370.324 null ] >>
endobj
1878 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 359.365 null ] >>
endobj
1879 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 348.406 null ] >>
endobj
1880 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 317.522 null ] >>
endobj
1881 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 306.563 null ] >>
endobj
1882 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 295.604 null ] >>
endobj
1883 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 284.645 null ] >>
endobj
1884 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 273.686 null ] >>
endobj
1885 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 262.727 null ] >>
endobj
1886 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 251.768 null ] >>
endobj
1887 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 240.809 null ] >>
endobj
1888 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 229.851 null ] >>
endobj
1889 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 218.892 null ] >>
endobj
1890 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 207.933 null ] >>
endobj
1891 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 196.974 null ] >>
endobj
1892 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 186.015 null ] >>
endobj
1893 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 175.056 null ] >>
endobj
1894 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 164.097 null ] >>
endobj
1895 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 1846 0 R /XYZ 81.145 153.138 null ] >>
endobj
-1896 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 292.618 null ] >>
+1845 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F30 172 0 R /F25 609 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1897 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 281.659 null ] >>
+1899 0 obj
+<< /Filter /FlateDecode /Length 2935 >>
+stream
+x[K ﯘ? RFuoItsT|%?Gg#vgD@?.,O?*s "X_O.ȋ ]UBZu볔FONO)S߿C˯228ו9F mwkFKw뗍BǿycϿ
+X`[gOg1ΎJ<BYᕙG{nɬ
+2_J%~5T)_R+ )`%_i ֠<:%mU"(ĽxT>?.+CoZq)EpqM\UÑ[ϳԅBK[a84B/#+]<bwH%|d:I
+#֜c$)E1O!lvtKLSPb6 D
+QVk;YF6zA6ߝ@7~c2vL ZN|0~Den $ǚ'`9be*teˊexasdѓ2ykٞ3*eɷ2#oFh-bDaTBcj"n M{[
+ْu o,.[B8cDkh& dγlJmoEe'H
++jMjWԒ-o-x6U iv;C=f=[ӯD`3<i2Gp-vd%+ZA:{LKl>?@Rڃ* r-BJ;TJRԷփ>iwhM5:s bnϥ)h-ɌߝoYͬu~G8HA}+fPj焢Sumĩ)`rM:7\D{NnE튐i$:ݷS}mJY}fG
+pJ:-~iW;*&ZGS5Yg8{\0>SIvSѦrYn'yJ<$hr"3R[J
+ӼR}wRlz!{ʔ|Okg9鬗 R,ՔT(%E-B;arOZט4'O!=Ѩ2'U'Bi>PB9 !xMOׄS:#4 ʵǯHb^\j!aZ;>{ هS0ƇGsIN]3@" A{JΟrzJo&B?Mj~&<9h= g=)@0mO5W:|
+DPz
+҇%q({gG9%'~,qгU]B*oEó'S/w000du1)5>5dfkVtn}f>,p
+ebqQ1swpk2 [ GT(3S[! 8Fv Pv
+Z2Pq;J[@i\U |}r%
+ _5] 븎^G
+oH*N@1*ڍdT}350 '\~(k@ɤh A4'vViob//#:g:0b'xڦ70z%I[Nٽw-oqKdV(d]mצת+莯?Z-`;S-y ?'vjZOIR|D5>$SV.ca9$-8rD=ir Ĝn|mO?J3])uMjNs)!p\Σ9fH 7-7t][+-u[ `s_UGWuFxY3N
+endstream
endobj
1898 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 270.7 null ] >>
+<< /Type /Page /Contents 1899 0 R /Resources 1897 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R /Annots 1938 0 R >>
endobj
-1899 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 259.741 null ] >>
+1938 0 obj
+[ 1844 0 R 1896 0 R ]
+endobj
+1844 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 163.933 748 170.392 758.418 ]/A << /S /GoTo /D (Hfootnote.4) >> >>
+endobj
+1896 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 409.702 617.31 416.16 629.83 ]/A << /S /GoTo /D (Hfootnote.5) >> >>
endobj
1900 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 1898 0 R /XYZ 78.37 808.885 null ] >>
endobj
1901 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 742.926 null ] >>
endobj
1902 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 731.968 null ] >>
endobj
1903 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 721.009 null ] >>
endobj
1904 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 710.05 null ] >>
endobj
1905 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 699.091 null ] >>
endobj
1906 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 688.132 null ] >>
endobj
1907 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 677.173 null ] >>
endobj
1908 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 666.214 null ] >>
endobj
1909 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 655.255 null ] >>
endobj
1910 0 obj
-<< /D [ 1857 0 R /XYZ 81.077 104.324 null ] >>
-endobj
-1856 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R /F78 556 0 R /F46 176 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1898 0 R /XYZ 81.145 566.588 null ] >>
endobj
-1915 0 obj
-<< /Filter /FlateDecode /Length 2722 >>
-stream
-xZ[o6~ϯ 4,ӝ.) Efl!J$oCREX`˔>xO7a~NRJ*dxCI"LId2N~16m]<h2o?LpD"¹j]e6$Mآq.Oͦ2B i^n.;_=
-6&
-6 JILϛEs]:q>=
-{~a[%eb FE6p¯-ǭM1JX4?>}ӳ4da1(^$N!;YJVMU:D;Yy2QӲ.dU^u
-# O("|o,#`$$D
-?>5˟ʖz9dm}\TDkdP$2D$04k d! վu
- AJ_-Fe!:,þ#(!ذ$r1/bd &
-FJm4 !S=\C%˨ ]`ETM8fut3`9ks3v_]),l!'Xa^V6ۜ
-/b/ ʆ2<\PD'iE( 0)R9d
-V>Zg,DP;
-@*TKZ!{" U%dŴɶU'Z0"6_=~!
- eEF\rY7rXp
-e
-ь]4BHBےd$#ʦ1-QJvn[GGx.;
-KSNŴFiiT5@G{/.' a"Ny扤7Iހs]jG3k 1&Yԫ
-c6ҶR@Ҿ5jz>! K ׬o,8`dx,ٓ= EŸ۵K|
-endstream
+1911 0 obj
+<< /D [ 1898 0 R /XYZ 81.145 555.629 null ] >>
endobj
-1914 0 obj
-<< /Type /Page /Contents 1915 0 R /Resources 1913 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R /Annots 1962 0 R >>
+1912 0 obj
+<< /D [ 1898 0 R /XYZ 81.145 544.67 null ] >>
endobj
-1962 0 obj
-[ 1911 0 R 1912 0 R ]
+1913 0 obj
+<< /D [ 1898 0 R /XYZ 81.145 533.711 null ] >>
endobj
-1911 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 163.914 250.974 170.376 260.973 ]/A << /S /GoTo /D (Hfootnote.4) >> >>
+1914 0 obj
+<< /D [ 1898 0 R /XYZ 81.145 522.752 null ] >>
endobj
-1912 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 409.702 120.242 416.164 132.455 ]/A << /S /GoTo /D (Hfootnote.5) >> >>
+1915 0 obj
+<< /D [ 1898 0 R /XYZ 81.145 511.793 null ] >>
endobj
1916 0 obj
-<< /D [ 1914 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 500.834 null ] >>
endobj
1917 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 489.875 null ] >>
endobj
1918 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 478.917 null ] >>
endobj
1919 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 431.641 null ] >>
endobj
1920 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 420.682 null ] >>
endobj
1921 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 377.843 null ] >>
endobj
1922 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 361.903 null ] >>
endobj
1923 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 350.944 null ] >>
endobj
1924 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 339.985 null ] >>
endobj
1925 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 329.026 null ] >>
endobj
1926 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 318.067 null ] >>
endobj
1927 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 263.272 null ] >>
endobj
1928 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 252.314 null ] >>
endobj
1929 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 236.373 null ] >>
endobj
1930 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 225.414 null ] >>
endobj
1931 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 194.53 null ] >>
endobj
1932 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 183.571 null ] >>
endobj
1933 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 554.635 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 152.687 null ] >>
endobj
1934 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 141.728 null ] >>
endobj
1935 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 1898 0 R /XYZ 81.145 130.769 null ] >>
endobj
1936 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 1898 0 R /XYZ 93.716 99.663 null ] >>
endobj
1937 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 1898 0 R /XYZ 93.716 90.036 null ] >>
endobj
-1938 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 479.915 null ] >>
+1897 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F16 422 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1939 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 468.956 null ] >>
+1941 0 obj
+<< /Filter /FlateDecode /Length 2626 >>
+stream
+x[˒*W$yE8*.߈Ynb3MTr]]7ޙ_o#.Ȝ._}Ԉ_j-˿+\Zz9?_Zq>X洖/ rw18˸cCQI- Ke8ׄl&J/gUb}zZ1r4-Ǧ 3εH*NOĿ'ai4!Z!ODd y,{<}_@Dᯪ[SA怴^5ӄeVy@͙lPa
+~ _M9ZJ8&!GdVg ྚkě7<?wY:ng$+ Y: ΰ;kv,<fsۻ*9<.Xt7{dq-i9t3 J\{Ñ!ZnpGxj
+Kmjݹ}n?Ə)UPoJ_{D򘯓E3T=aE^srդV+C  #zB
+>IcW 2,c
+]1.vU\ڧ! -~nI e䛁ҲKՎH~{EEySHtlC=EަmFۡ4$" mj9JZٌP9&P.Y@
+&( YN fr,G&sQ(&UW87HtNtv4ɜA94չ4'rtN)SǯSþS 4AU q4f:J&OuQBKJBBԹl"@"}n>
+%*5R@uLnI#3R ^m>Tp7MB1LzN,CPB_s|俵I+(XW!iqcYM^R諹HR QJH
+*OgURQ3G QNCur@ n˼1%d(Z&[9`#g
+^qϫSsaLhzS9ө䆺5uhA:vQgkLP7ˇrh)i~%m=~zű,sH(14%zJfĉ7ZcJ)jWϤ%5o%--fQg;h.?h2THBhv&oeU,@`d&#fK
+ w#R&B@'kBf7
+(# Gi|(:œvmN +x
+Z1pC6YsTϣ;D򙒸ZNNmD[?EJ&1Mt^ jG.=GiFz.rG!=sH'wHdž)p)o6 aRnV8'-uNZwҖagp)!s³:G#zZzN+/%L 6YVx zSkrs2:EYq(#n49[~F&Ά$z
+L+}AΓ_??
+endstream
endobj
1940 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 457.997 null ] >>
-endobj
-1941 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 447.038 null ] >>
+<< /Type /Page /Contents 1941 0 R /Resources 1939 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
1942 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 1940 0 R /XYZ 78.37 808.885 null ] >>
endobj
1943 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 768.829 null ] >>
endobj
1944 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 757.87 null ] >>
endobj
1945 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 746.912 null ] >>
endobj
1946 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 735.953 null ] >>
endobj
1947 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 724.994 null ] >>
endobj
1948 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 658.244 null ] >>
endobj
1949 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 647.285 null ] >>
endobj
1950 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 636.326 null ] >>
endobj
1951 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 625.367 null ] >>
endobj
1952 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 614.408 null ] >>
endobj
1953 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 603.45 null ] >>
endobj
1954 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 592.491 null ] >>
endobj
1955 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 581.532 null ] >>
endobj
1956 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 540.685 null ] >>
endobj
1957 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 529.726 null ] >>
endobj
1958 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 518.767 null ] >>
endobj
1959 0 obj
-<< /D [ 1914 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 507.808 null ] >>
endobj
1960 0 obj
-<< /D [ 1914 0 R /XYZ 94.613 100.167 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 466.961 null ] >>
endobj
1961 0 obj
-<< /D [ 1914 0 R /XYZ 94.613 90.702 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 456.002 null ] >>
endobj
-1913 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+1962 0 obj
+<< /D [ 1940 0 R /XYZ 81.145 445.044 null ] >>
endobj
-1965 0 obj
-<< /Filter /FlateDecode /Length 2471 >>
-stream
-xڽZo~߿og",3JJ`IYDC_lҐ 3ߌ,d˧O_^hlq ÍdR#*R`/W“aLޒ)ClEiK-_zX .huUeJ\n`N͏ˢjMә_ 0gb>gM5$dHrUyXΌmQUE7r_5Ng͓9J0KkiC"'ƒ{yJL/_~!Bbo_;$̀G6
-*"+?'}Zq*ٺ4mdW ˢ,f2oJy;P.T+"]̮)le-j=pc;\>M]vQ ;Lu
-#/[;nI+$4EN$AFAņ3`H+LX\ $0 cDҘ 'O_^(X[@[,HP۴2!TpӶޛ4thId52`үk FI$XzmMw{7263miS?N)x4<s{7hդS$NrrOVNH0qʍʥ?wwo޻%c,=a]z`Vu& !XW58cxeS>(K_WcK1(ǣBl }25,+|ғG'˼v b3T HrN'CcRK0_Ң!I.r<*Ҝp׻"7(~+_MYi;8 4dkg
- 8yc9@ rFH[ }Yu]u\LإW }yiư ,c*CRq+Xg:kaqH4~
-*Z}1c8)FJ`>ؙ~5/_a)>lUԇEḚ *n#:k{͛еKiSzux+)tg L7'?U0e_]YqċlHG*gH1I.]Ip\k,ZZ'i3y"S.6COoDZC~gCAĠX<T33e0~ TO~^8|?8{Ғ& BJNWH8~eQrzeQKI]X -?{} |:qXpY\PS!IQW -1+Hy۷eg}aRL)CL77ָZ
-:
-M?NŠCoC2l͓m*^66AhH_QFl=3emZP"֛ԆDPA{ͯD͓i^fz+!PIa^PB*@Pҿ?8#ޜ@+"2+n+pX/u\sXۑ؍ 2 Dz`TW|ǾK 6-Bh>!9ָh /̔hZF!dIMΙ#t4ؐDD@Zy.bBc qTz㭃RbXDQ@=j}ȴa i]E#ݺt uY
-?lqB?6
-endstream
+1963 0 obj
+<< /D [ 1940 0 R /XYZ 81.145 434.085 null ] >>
endobj
1964 0 obj
-<< /Type /Page /Contents 1965 0 R /Resources 1963 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 1940 0 R /XYZ 81.145 423.126 null ] >>
+endobj
+1965 0 obj
+<< /D [ 1940 0 R /XYZ 81.145 412.167 null ] >>
endobj
1966 0 obj
-<< /D [ 1964 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 401.208 null ] >>
endobj
1967 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 719.019 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 390.249 null ] >>
endobj
1968 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 708.06 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 379.29 null ] >>
endobj
1969 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 697.101 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 368.331 null ] >>
endobj
1970 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 686.142 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 315.529 null ] >>
endobj
1971 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 675.183 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 304.57 null ] >>
endobj
1972 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 664.224 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 293.611 null ] >>
endobj
1973 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 653.265 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 282.653 null ] >>
endobj
1974 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 642.306 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 271.694 null ] >>
endobj
1975 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 631.347 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 260.735 null ] >>
endobj
1976 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 249.776 null ] >>
endobj
1977 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 238.817 null ] >>
endobj
1978 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 227.858 null ] >>
endobj
1979 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 216.899 null ] >>
endobj
1980 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 205.94 null ] >>
endobj
1981 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 496.852 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 194.981 null ] >>
endobj
1982 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 184.022 null ] >>
endobj
1983 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 173.063 null ] >>
endobj
1984 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 162.105 null ] >>
endobj
1985 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 151.146 null ] >>
endobj
1986 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 140.187 null ] >>
endobj
1987 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 129.228 null ] >>
endobj
1988 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 118.269 null ] >>
endobj
1989 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 107.31 null ] >>
endobj
1990 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 96.351 null ] >>
endobj
1991 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 1940 0 R /XYZ 81.145 85.392 null ] >>
endobj
-1992 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 287.636 null ] >>
-endobj
-1993 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 276.677 null ] >>
+1939 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1994 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 265.718 null ] >>
+<< /Filter /FlateDecode /Length 3539 >>
+stream
+x\;$W311!{=\ɒ)ޏ=[ |䛤7zDܿ|S 0\#zc7#TۏFJT|o/t{*}3*MK%$}*GQ}oonyU=kךQE׊ŏxO\Q<Fa؃9x8ߚoZJ
+^~mx%L%1OS<`u+x{e.چ aF QOO?;|v#
+D`|S.Ki$QjS~ GCTs&ƿ7S޷db_;12s|;xƏ'=OShh|W՝mD"{SϠ)le
+K;p3FPIDtBe%T {JQ~Y]חCgN3{~&tC9SC#u
+/s6 á̚[]ߞLެ[9(Ѯ\[MQNsG/L=șQg\80ҽ_?W^]/b#%8{MXT@^weŢy)y+J`Z08˥ !y) cǵh.U^TqI`+E) Ec0L^adm bX=eD,f]#FyL~̂+#1UPG~`B`QuՒ퀊
+<T5j|Ү,#tao󬕙?v6 نC=]=J8eLu'{%n#K!UKRgG y =ҢGˊH*+`U2HZ/s~,k,lJĽ1;I{i:Qj}vVACUQ;#9wICFn0g& oml8/Us#38w
+M7ΎThg4grvO:\pZz%.S|3( N3a@*~tIϩ 1mxb.Kݘ|+HB*H<[%r ){SDi+@'q~ټH{_7"8r{Py&M6/j;,D+U^MıpQ \ً Hs"Zhd6Óo:? a&3WE|h~u>3e3ڢ2룧ҷ'%z: 6f¬"'&%nK9L^(9PY8 O ҍ+X|>KqDžĽ),1HiAٶoe/Kܻd䅝a" h0|ۿWIA @^<ƵК, )go(Vt(o<VdXQoɉxl)(s=8$Bcz8+Δv}Ѩiҷ>tvB!9!Ua?B_%XJ$bwN`}t4Qv=dqTu:]ՙQ4 Cm
+q`ìΟ7[rC?s
+/;aݕ&`T[0VV+2\)f aʈs`͡H\jfP+qj9:nc(Wl]
+(A<vHTy +^T1h+Ld Hlxf9oyd2c=@.P.-̕=%B IlJvHb[=}ˤ&_B~}Qvq͛jڜtQ[:S؅ $b'S߷ QZݾx<50SGSJ,(YUGR,iINn* SpQԒTK~ENgrz?(O NL 'P 
+endstream
+endobj
+1993 0 obj
+<< /Type /Page /Contents 1994 0 R /Resources 1992 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
1995 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 1993 0 R /XYZ 78.37 808.885 null ] >>
endobj
1996 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 768.829 null ] >>
endobj
1997 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 757.87 null ] >>
endobj
1998 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 746.912 null ] >>
endobj
1999 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 735.953 null ] >>
endobj
2000 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 724.994 null ] >>
endobj
2001 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 714.035 null ] >>
endobj
2002 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 703.076 null ] >>
endobj
2003 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 692.117 null ] >>
endobj
2004 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 100.339 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 681.158 null ] >>
endobj
2005 0 obj
-<< /D [ 1964 0 R /XYZ 81.077 89.38 null ] >>
-endobj
-1963 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F70 185 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 1993 0 R /XYZ 81.145 670.199 null ] >>
endobj
-2008 0 obj
-<< /Filter /FlateDecode /Length 2484 >>
-stream
-xڭZ]o6}_a/
-`vv1va(%$'M{)JhrC"/{^w}DE! n@^ C-|ij 67bƫ1?uz w" SD5YYڥv)Q}ٶQ ~Pҧ+*j >4.n$HS:ݣ@/qd,!Cj[dW嶊wѲe<xn9{qO>W4
-kSКV?y޽l5u$AWWU_rXн$ywlR.IqٷD;6#% -8at W!
- 4"B4 qh^o?BA!Sc0 ԓzU*rs{{Tu*x(ĥ1Zy C0DƁCb1ETt.ifd$bpmwzPM神Y5EX;p=wpQAYyڤū!^'}i.Uq{N&nJ}YkN5Xt2,pۑS?J,l58 (Mu&ugO$L-N]
-|פE;*rȪt %&lo^An[`eh&ol;Bȹ%LțeG"ң^A*$OtН; n"]OiT<:~hMiVUy3&73 a
- ?b#pgܥL?0o~ocok p
-aMHjSRVG%G-_\J=c09m+
-hqY${QlD\lRBVTtKbR 6y.57Eln,xڔ! :鲹G<T.b+p"'ڒ SI<ؤw>Nt|{ D$(0-I LhDwݧzK̜7<6/ +uG>9/~#Ӧo(Fe}^g:]1ƒ/"xu&.d_qK>|fjcj]Y|CPٔ/͎g (9~hMB'lss{qt[7
-qvpQncvzE4h!j䖥cs;(!:@`с71
-<}pe*B\؄>?*'t<ן'dY(`V69lvĚ ii #m?].j].8=AWTpWOqs7c<_p DŽ?& 9Vc<F}^&߶ğ,Hr+OyUč;M?]LTB>OEKY7UCS0RS:}07~Έ|Wmx
-i
-mAO:ǡD_O:N{zY/)ҕCHq'Oyʷen߼8B+ꬦp? t)|WN/Xu#O`ͤNv~mq[%{ɡnݪ|/ޤ@XZa~~5aJSU~ qqno7ןN(DO6DyRGRoKWM|ʛ;f`a>RS}\$D ̼~z="2IOD$<5 1>U~*bqN;DM|Uc:Zm[ !6l O9ȡ'Glon}gU<Vp_&TAaTxP
-.ldz Hߑ?<h8'AeFJYȵ$,w[w `Btw>ўޚ6}f;M>簻pcI
-8HE:2)ckG{JA}Uo`o5Ź)7+ۈQDVeӻRs_;?}8Hz1Hks(OmSr)ͭ}¡41mi&G"r\0kh$@`70Al [q5i{]cgrP+DΠmV9eHs|7=$Wbq]#u'g)"h8?=}ng]IOum[N0™Ql7{Q9 @q/7^m(
-endstream
+2006 0 obj
+<< /D [ 1993 0 R /XYZ 81.145 659.24 null ] >>
endobj
2007 0 obj
-<< /Type /Page /Contents 2008 0 R /Resources 2006 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 1993 0 R /XYZ 81.145 648.281 null ] >>
+endobj
+2008 0 obj
+<< /D [ 1993 0 R /XYZ 81.145 637.322 null ] >>
endobj
2009 0 obj
-<< /D [ 2007 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 626.364 null ] >>
endobj
2010 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 573.562 null ] >>
endobj
2011 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 562.603 null ] >>
endobj
2012 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 551.644 null ] >>
endobj
2013 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 540.685 null ] >>
endobj
2014 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 669.205 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 463.973 null ] >>
endobj
2015 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 658.246 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 453.014 null ] >>
endobj
2016 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 647.288 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 442.055 null ] >>
endobj
2017 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 636.329 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 431.096 null ] >>
endobj
2018 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 625.37 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 420.137 null ] >>
endobj
2019 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 614.411 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 409.178 null ] >>
endobj
2020 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 603.452 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 398.219 null ] >>
endobj
2021 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 387.26 null ] >>
endobj
2022 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 581.534 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 322.503 null ] >>
endobj
2023 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 311.544 null ] >>
endobj
2024 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 270.697 null ] >>
endobj
2025 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 217.895 null ] >>
endobj
2026 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 165.093 null ] >>
endobj
2027 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 149.153 null ] >>
endobj
2028 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 133.213 null ] >>
endobj
2029 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 462.979 null ] >>
-endobj
-2030 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 1993 0 R /XYZ 81.145 84.396 null ] >>
endobj
-2031 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 441.061 null ] >>
+1992 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F73 267 0 R /F28 611 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2032 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 430.102 null ] >>
+<< /Filter /FlateDecode /Length 2696 >>
+stream
+x[n+;+WW5F:~@k{}V%'NNlU,?ptrx}
+ 77:8GE?{"+قUrFH*Ĝe/Lbx%",ٯPdSpޙY'l[^. )u +{u
+@ `J)ié;c<𪈪x{6;
+*g&zQ4wXY26zxN
+ xTGsiANvYT10ZnG(̀u貊% @7QkVf<PzNFo%?trNSQetrOd)<9cAk37wBøPd-DZDS!Dcn{ydᝁ4!א\)E1';)NrjnN]fAC$FPIs4I{l65pH#\+΄=kF $ =[JQ8nI:Ȅi9Jk`
+heUE}/AuH&E /&>nJ9*<yݝK̡bl+}!Rlv-81I`庑Dp0D#1BAkHy!iO#sbJJ7' ULن&&usWJʉte__%sV ']Y{w=*WgrZh<-o{^QB/܊ro:}aBVDz
+޼\)C$>86
+#%redüke)=? L
+s닓-gU]!zlah.gc1Cp'3HRtS_k#g<0]OO:B C:`{,`#!ژaL(ڭw8Ι4mwA!=X0׭z9# 7gPJF9c5_<nFԅAj fDL.AJD736tR"'BS=s#by\@0ۚ-oK"|-J?lKJ2#LT{3jҳl<. )v*LPznjK,!Ήp kEքҬ7EBl1鬢+Cb%b%kJ_H\_x߈qe׷gٱ> (MLTV^oP6fASe |E>RzWފ"5э]ŕhBq$0FcVp!+zv
+m@4Lӽόbef<KjC"UA{zi樂@ՔʇA~#sW"-Inh
+cpl/lC#Ax/I]a, c/rR8#
+,'Wh 07`T$ꮭPEތȓWZZ;
+^k<vkFoZn8yu+C@/rm;Cz!Lz{?^
+endstream
+endobj
+2031 0 obj
+<< /Type /Page /Contents 2032 0 R /Resources 2030 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
2033 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 2031 0 R /XYZ 78.37 808.885 null ] >>
endobj
2034 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 768.829 null ] >>
endobj
2035 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 757.87 null ] >>
endobj
2036 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 746.912 null ] >>
endobj
2037 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 735.953 null ] >>
endobj
2038 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 724.994 null ] >>
endobj
2039 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 702.489 null ] >>
endobj
2040 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 691.53 null ] >>
endobj
2041 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 680.571 null ] >>
endobj
2042 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 629.14 null ] >>
endobj
2043 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 618.181 null ] >>
endobj
2044 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 607.222 null ] >>
endobj
2045 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 596.263 null ] >>
endobj
2046 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 585.304 null ] >>
endobj
2047 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 574.345 null ] >>
endobj
2048 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 476.605 null ] >>
endobj
2049 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 465.646 null ] >>
endobj
2050 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 454.687 null ] >>
endobj
2051 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 443.728 null ] >>
endobj
2052 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 432.769 null ] >>
endobj
2053 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 421.81 null ] >>
endobj
2054 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 410.851 null ] >>
endobj
2055 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 399.893 null ] >>
endobj
2056 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 388.934 null ] >>
endobj
2057 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 377.975 null ] >>
endobj
2058 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 367.016 null ] >>
endobj
2059 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 317.096 null ] >>
endobj
2060 0 obj
-<< /D [ 2007 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 306.137 null ] >>
endobj
-2006 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-2063 0 obj
-<< /Filter /FlateDecode /Length 2865 >>
-stream
-xڭZs۸_31o~褽kCi`D:ۗI)ѹ"b /~y+~y׫7>((ӄ,DaIWD
-u߫_{^>lQ&%11)ԟwuyu{oWE6UU *T_;i&og T,6o{D=`Oӕ)uɪ\V;Ӯ̗viˢUYF+4a"dV-r5imꦽ\8>l#*yHe#eǛs&貽3lYƒםzF4vW]CRyi5R3 F pE~ߖu$?;zifܬk+ӈSiR.2r݄S,CZ,FB(ܪ`2o]^knZokP[]a
-o?|p6{\R96 aY %qBQwa2 ;;'|w
-#c)a~j5Z:dH)2F4GB1~V˽vbYwI9gz3͖IqHZ%6o˜WgT.۲O:﵌B ~nI5b,cN2 -=lQ4yEpF6흓ÿz&2 ;mfke5:nnǼ?f&c+plì"*yp)!4k/0ԨSF&V.:p'0As3qsgeͪYr^\^ laaUV`U--hU%o09TΐW ud}tq᏷yeIf)|KD&is pL"eծn@RN0$VH2k#iS\\F@xN):,(2*#gyFB=n Y~n5k&O@Ba
- y٢~yڙ8]G|[rx>Z:ql}".%DdݚOxD Ky;$XqoH~ykmUk
-ڏn-Q=I?Cթ<LOQCzl#%<Y\h_BC h0C:āK0 |YMOoWoȉr=
-endstream
+2061 0 obj
+<< /D [ 2031 0 R /XYZ 81.145 295.178 null ] >>
endobj
2062 0 obj
-<< /Type /Page /Contents 2063 0 R /Resources 2061 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 2031 0 R /XYZ 81.145 284.22 null ] >>
+endobj
+2063 0 obj
+<< /D [ 2031 0 R /XYZ 81.145 273.261 null ] >>
endobj
2064 0 obj
-<< /D [ 2062 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 262.302 null ] >>
endobj
2065 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 251.343 null ] >>
endobj
2066 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 240.384 null ] >>
endobj
2067 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 229.425 null ] >>
endobj
2068 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 218.466 null ] >>
endobj
2069 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 190.945 null ] >>
endobj
2070 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 179.986 null ] >>
endobj
2071 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 140.509 null ] >>
endobj
2072 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 626.366 null ] >>
-endobj
-2073 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 2031 0 R /XYZ 81.145 78.635 null ] >>
endobj
-2074 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 604.448 null ] >>
+2030 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2075 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 593.489 null ] >>
+<< /Filter /FlateDecode /Length 2994 >>
+stream
+x\;#7W(<KY嚪Ռ*Ǔ.HMIMhGf Ws߿׫ gN yR''N{7)Rj/ߵRxIxw+UJ/H>?Bt?Һl]`7T*F}|lue[ MByu2"lJ9v oi6~L^il9QB
+`9%0L\r Ixݼ|`+%])*DD-m@ڬD=oV lt/߇rs,<턟Νd7.q -e*t Wf3'+j'1U)cԖOkOĪgeC%>^[ݪ|TQ2=xWo76$8"]A`BWq!. 2&<A
+ՙi'֝Ywi YeDΠ o2}J(Q[_ץl|plDf.╦oUC}ƈ7R.1(oÆFqѦnynjC:.@7%eA~wà`
+8 m6+>_$2n(2O H?D֠-_kC^6@MRDmrX-coy-p ż9B(&C$M*BuGE:ܣ3 5tUt]ufA^ԙx.Hr-H#"ʓx1G,ؤ/9G,0zmG7T0m=9عr8+RY"f:ʆz&vVŤNKY"EپuUAL Tyk6oLI^8$B3u6r~F~)OƧ{KPFš/ 2 ,iQ9BS7&#Xs[FEYHfOk#LDl)ceqMA%lQvQFLнubc|0\,QbQ->2tÒ L ] j-k.H unTjRQmQ#-{ ލq..jEw:Ug
+:|cneIbי]gL2o A7EuoTz "|n;G[{
+'>qbqO
+inǤg0ORͧN
+SY51JB xzh-;hf},UӈwZl 1vtT?Y|9FZoeY*mgTQ\㴤y)`Qj$2 `̒ 1M^32rDFޒgWL^ȁވw9woŲR9dqnG,'to+M 2ٓԜ]֌O㾵\
+\zɴ4Bù̀砬,wњ&(dërŸEb K^u.17;Dt
+endstream
+endobj
+2074 0 obj
+<< /Type /Page /Contents 2075 0 R /Resources 2073 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
2076 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 2074 0 R /XYZ 78.37 808.885 null ] >>
endobj
2077 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 755.517 null ] >>
endobj
2078 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 744.558 null ] >>
endobj
2079 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 659.704 null ] >>
endobj
2080 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 605.71 null ] >>
endobj
2081 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 561.428 null ] >>
endobj
2082 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 517.146 null ] >>
endobj
2083 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 506.187 null ] >>
endobj
2084 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 495.228 null ] >>
endobj
2085 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 484.269 null ] >>
endobj
2086 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 456.648 null ] >>
endobj
2087 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 445.69 null ] >>
endobj
2088 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 434.731 null ] >>
endobj
2089 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 423.772 null ] >>
endobj
2090 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 412.813 null ] >>
endobj
2091 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 401.854 null ] >>
endobj
2092 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 390.895 null ] >>
endobj
2093 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 379.936 null ] >>
endobj
2094 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 368.977 null ] >>
endobj
2095 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 358.018 null ] >>
endobj
2096 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 297.074 null ] >>
endobj
2097 0 obj
-<< /D [ 2062 0 R /XYZ 81.077 79.417 null ] >>
-endobj
-2061 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F26 662 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2074 0 R /XYZ 81.145 286.115 null ] >>
endobj
-2100 0 obj
-<< /Filter /FlateDecode /Length 2596 >>
-stream
-xڵ]o}t2OZ]y
-pBPl:QW|dEcދ-O gJtx^hSbq@a"]E $Utq]+u,ox&άʺ,a.E$ZGE]CQPtKQ5#,1I!Y'*^~\$#@: iSLhxWIdY.Y<,oti7(tB*k
-{[{z0^ n{'?7T0Gg-Kx33\lH,i)h
-Rz@^KKéP4*"d,<WTzBDSzSz'zTw)[κa*>
-`<)7yB HnwU]U8C)xh|!)gsrEpZft#`ȥ`)ɸc@ 6w=(ov/h12'1ubDV6fWDжuћ{Kݢ@h b<mzͶY*60+R`C/JAǷwEA淢6
-@yNu_WU+m~%xDdieWdR$ BjsQazлqSNܨ (X+>m]9>C"zAGA+SŃy <DRynmHC]iv&+8͉IBkWv볤uypclb 6H0Ojz8RW(0&V,KQ>n %gZIЮj28LwV ){@l:>LO㒔
-i37t2иT$5|;w*cMn/{}\Wp|搛dPu&6gv\J(s|7/(Մ1b@>֮͏s>ɤ .(Q/<Ns* d(Qǭy5kOεwuju;Y*8pk2]xէ90%!#mU^mX% eHRǒC 8ѷ,[( -]KA;0
-|,ӇKDk ޲v$ {w7&[tNG&xmDu[e+&T_!6FGW ʇ.KGu}oܚʯ}7ܙ1Je sl0OA әT⧏n"ВgSJETP/8Qh/ku"oZovz{ӬƋ\_p-x,GIvB v!2*vcFјvdKcrտfĵHKt!QȡX6;BXƧCT ĥ㒨X|ȼ{Jcim]Y6{A:^vG_
-P?|qvs8$<WB=blgbX2[
-z9pֵ;L-7ҙbv-Í}[ys6O,`:j4
-ؔ<݊*{W}y>fSΉurHq(ʰRR!o%P
-̖EGV> ;n(9S֐RE1yT;}" qyAsQU)ƒ!Q|gѦgD%Q8~S7Ԍ(P_|
-endstream
+2098 0 obj
+<< /D [ 2074 0 R /XYZ 81.145 275.156 null ] >>
endobj
2099 0 obj
-<< /Type /Page /Contents 2100 0 R /Resources 2098 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 2074 0 R /XYZ 81.145 260.487 null ] >>
+endobj
+2100 0 obj
+<< /D [ 2074 0 R /XYZ 81.145 249.528 null ] >>
endobj
2101 0 obj
-<< /D [ 2099 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 238.569 null ] >>
endobj
2102 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 695.108 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 227.611 null ] >>
endobj
2103 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 684.149 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 216.652 null ] >>
endobj
2104 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 673.19 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 205.693 null ] >>
endobj
2105 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 662.231 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 194.734 null ] >>
endobj
2106 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 144.388 null ] >>
endobj
2107 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 133.429 null ] >>
endobj
2108 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 122.47 null ] >>
endobj
2109 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 111.511 null ] >>
endobj
2110 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 100.552 null ] >>
endobj
2111 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 89.593 null ] >>
endobj
2112 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 585.519 null ] >>
-endobj
-2113 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 532.717 null ] >>
+<< /D [ 2074 0 R /XYZ 81.145 78.635 null ] >>
endobj
-2114 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 521.758 null ] >>
+2073 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F30 172 0 R /F25 609 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2115 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 510.799 null ] >>
+<< /Filter /FlateDecode /Length 2772 >>
+stream
+x[n:W,#@N.0 vf5,Q褧sY8v$X"/˟xǻϼ.?M ~뙴kF\~+V8^+ïZ\?Ͻa6?Mhδt>Pcސ>ox?/~'~pLXYp{w<(>u:ͪneA,3ȣ6UnxŪ 8UmVO%@6s{Si)L9ExDd*({LpSvK.ui^qcq(MB@p˂0a6m0@3)21,^WL,]gj#OҺbqFנ.$/}.]mY(u?zd\EQ/j3[ ]]dgH)G#錃B?.@CcL1kW>q[B-
+y'$rtbɀj,At~w"^*H7B@SJH+ `c¾IA %->ȺMF 6qi:E[=8
+^yKf=R(=RhǙbʔqj-9.8 >1sg=1?@5Ҙa}
+bݖz+Zvm6B=}Z~fCYCUMOdOB<ʹET)Pn`[9䒲j`as1+C 3!LIT\:FRU)\sb#Y"1d7xaLqPJo9$-]h&b1 Ł}"SMq3^; n·+ўs"jco@%3pdS,88umfd9WL܋q'J NSh(ݽ8(BpsOR\Z@ke Vr`\Js8yϯ0VFt%ܪij[K1 H!ݵF>j͐깗<B< 3mSiVoN2n
+}Bt(lMj7[)Qʊgn/=7[ו7Қ^ TVi`*-VJ2eTa[MS8Ьi4!<i:\Dt0zOpԍqo@֎F@5acJ`SKccɱ%8+o-d[røt
+FdXlڳv (jo{FuL%[]e5Swn8 4L 
+lfڊհԅ!56saD.KJ0^yj,*74ZfM[jF6Wќ31#1Je=-뚘GJ/BP YkxTdf*~ME#_'P&*:.Ҕ^bTL.Ğ?gMNR*jc}z,ϟ 55aN.ڍtw/R x3\؛[kNk+K pN~veqH5Ys(%DdLqE{fC,[if}{^}Xn{`]YvΥu%]Bi/ΐzhVCG! Gj3 !'Kߍ7f k :CGrlmYg-}쮃]ՉSv{Z)X M}y\ys^mylf/N_O޸|_5 0}N_Ex;
+ƭ~3
+QNH*ea KL̫γcB ݮOIw͏PwxIA@8 N!PrF݃]uQrzu;h bgNcٽb;#$~َ-{m*}P!
+٭g5sJ~iBj϶͎RnJ΄"t^
+1aČ-֚RJs=>2wI.:n~2S8+*)m".
+f}E?0Pr*--.zJi\2Z/ܗ|u>/v8=\a#SݘxLv6:g006k<
+L.v"P?D8L{jC!Ckg`$퀃^c'R7{w.{ H.T*'{
+% 8ZLo0je{a-o<rc< @1X+fo?%
+endstream
+endobj
+2114 0 obj
+<< /Type /Page /Contents 2115 0 R /Resources 2113 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
2116 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 2114 0 R /XYZ 78.37 808.885 null ] >>
endobj
2117 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 730.971 null ] >>
endobj
2118 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 720.012 null ] >>
+endobj
+37 0 obj
+<< /D [ 2114 0 R /XYZ 79.37 696.556 null ] >>
endobj
2119 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 601.011 null ] >>
endobj
2120 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 590.052 null ] >>
endobj
2121 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 513.339 null ] >>
endobj
2122 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 502.38 null ] >>
endobj
2123 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 491.422 null ] >>
endobj
2124 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 480.463 null ] >>
endobj
2125 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 439.616 null ] >>
endobj
2126 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 428.657 null ] >>
endobj
2127 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 417.698 null ] >>
endobj
2128 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 406.739 null ] >>
endobj
2129 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 377.847 null ] >>
endobj
2130 0 obj
-<< /D [ 2099 0 R /XYZ 81.077 95.44 null ] >>
-endobj
-2098 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F76 318 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F46 176 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2114 0 R /XYZ 81.145 366.889 null ] >>
endobj
-2133 0 obj
-<< /Filter /FlateDecode /Length 2257 >>
-stream
-xڽZKϯ0
-,v (b/74ʚRVPq"Q713ҘSg.^U_Y?҆`dbW@Y =1&nԮüY~Fb~تΠg"zOv7Ȝ_eYoZ+_ϪDQE{0E4lxI?1ʋ|=jΊvJYk9&2Q}8&(G`q`9 PuKWM}JإF) FEbDJo"m{J8#TՕq.q\}pn4NM``y\D#FvF!q_Lr@ESMA8̟lξۋ>d>:|s&>/۵ B9 4eF wV* ,ė
-ժn\v(asͣ?O#zkqdw'5xB#H-֕Z_G%wCR?j蚕a$\O̕mwEqQj=x)b
-{\YB]7GE_ڕn| m+=l F,a_"Ӊli~
-&Ig)XqA>xQ™?E^7:U8Ax(6ھ4LUi)֕b_}Չ AIlv8Ϩ0`3ؔhkpUAﳦNfaqx^֭ĹujPgTSȴ7Rgxyb!DYW\2DxPIo[=]2 &P~@j6kTWDGdPDsSV_uYuI?{ikyБl4%NbS6i?t[7uen.k
-GzJ
-&,ZQ4J~!a_V7}Sw*:j )HO)DQ~Zh  B&O:1*w
-2({Ҧ-ՇH}<tzhDhf5R}5jQ-ҘJ߲Iy`$Q,5_vj%gl
-a &OgyV`iϪݞ {C܉&1toUSgbQ"S%}9ETj0IGW]^QG|ΧDJ9CΆ9K~ו>ķpl7co%ZZ[QP
- o ȔλljSrs/: GkB.fm@ZT'r$%ax<')>DT|awx{ة1 Zje4?g&auIk[ ?Zh<%ܗ7O&4b7ωs#Ow=c+`K4`:D1qO`j 3#oR$h
-endstream
+2131 0 obj
+<< /D [ 2114 0 R /XYZ 81.145 355.93 null ] >>
endobj
2132 0 obj
-<< /Type /Page /Contents 2133 0 R /Resources 2131 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 2114 0 R /XYZ 81.145 344.971 null ] >>
+endobj
+2133 0 obj
+<< /D [ 2114 0 R /XYZ 81.145 334.012 null ] >>
endobj
2134 0 obj
-<< /D [ 2132 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 323.053 null ] >>
endobj
2135 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 294.161 null ] >>
endobj
2136 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 283.202 null ] >>
endobj
2137 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 272.244 null ] >>
endobj
2138 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 261.285 null ] >>
endobj
2139 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 250.326 null ] >>
endobj
2140 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 239.367 null ] >>
endobj
2141 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 210.475 null ] >>
endobj
2142 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 163.651 null ] >>
endobj
2143 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 152.692 null ] >>
endobj
2144 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 2114 0 R /XYZ 81.145 117.823 null ] >>
endobj
-2145 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 579.542 null ] >>
-endobj
-2146 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 568.583 null ] >>
+2113 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2147 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 557.624 null ] >>
+<< /Filter /FlateDecode /Length 3346 >>
+stream
+x\˒#+WpTD\lgVK H2F/eg!t$]2qÊb !B#~gb`܈_}\F;ҽ*Ǽ1Q Y#% s5]T/GSHCưrq?Lp sA@AUI8r*:)gZ)WW Y/ V"ωE?"1as>ωA)j&bPkC*k1oԨYVE˱]|^9Nrq2s5YGڣÎ"ǵhk 7uTYSk=*2dD @,k}Uv, KF: SL*?V
+eFNYz*쑾mҀ8xEUi-_smQՀurKVI92nU#}+ΔȖG1pm~uUV1kf=Q=_!q ۗDK6铹*i[-l*W+H渘jw- ha5E|eiUS0Sb2 }Q1IU:Ҫ
+`ɩ
+O'B @Y枅Χ$MAoFq2S&oM!g$D~HEXr 注4j<}PAz}!0>d=`q|Ɗ7'敍QI
+Iw5QloGؤG3)>uVg̸A\$-7$o?]T'Q); !ge-XĊd#E|"#?ZxU
+5l j<dRc
+s
+|W)4h4.[3`Cm<};ccxnUH1qa{69 0ac*=2Gx%̭T|֑ 
+,jbQ1 \5T=u|FW;>!0h| Ud)Y428DdSݜc؆#+H>;I !3{=2eZN2nf[`
+@jVHɬ5ifdD8 ͊ɞ-27g 0m豃?0DPD))0kDMŶPȩ5r=ǥJЪ(2`ڛ2׊R>vE])JᘄH0KL1͈{;%Z1im~6
+dIv5'Wz{EVN+wR-ID)Ėu~HL^!1:jG3]Zk6|~ e',<nBTaObshWQ,F*BiZ41WQaWp{M ;Y$e4a[\`ai+׸_%H
+VK2޴(J.IqVrBۉzMW+' I L¨Q73ZwO+
+T<Z1ZqFs-8U9QB̔t.Il7%N797҂w[w`IP3FA?ށ1>0ȸ].׉yp
+2]@Z3 ^e;o]
+(Xض:>HUְӞuP7"7ȍoUP@Xs5 &}Ɉ+
+セjBh*4$A޻p^wx̨(VvLQ_Z4= r _ς/|=Bo+4-8CNLM윙 =DkF ;t/BH؎gwwI=jWߣW2a(ashCucɹ3$vv|ғ]6 vP4+ԷK s~&^]r&dae}r#xa!A$:݈A]0J=̼Oe\{s5]SSkIvۑyC5mr@GcspgiCBm/KREPbr<t=Czh=J/;$P͋׃My#̻p/lN
+endstream
+endobj
+2146 0 obj
+<< /Type /Page /Contents 2147 0 R /Resources 2145 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1786 0 R >>
endobj
2148 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 2146 0 R /XYZ 78.37 808.885 null ] >>
endobj
2149 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 768.829 null ] >>
endobj
2150 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 470.949 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 757.87 null ] >>
endobj
2151 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 459.99 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 746.912 null ] >>
endobj
2152 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 449.031 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 735.953 null ] >>
endobj
2153 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 724.994 null ] >>
endobj
2154 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 714.035 null ] >>
endobj
2155 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 703.076 null ] >>
endobj
2156 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 692.117 null ] >>
endobj
2157 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 681.158 null ] >>
endobj
2158 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 670.199 null ] >>
endobj
2159 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 659.24 null ] >>
endobj
2160 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 648.281 null ] >>
endobj
2161 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 637.322 null ] >>
endobj
2162 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 626.364 null ] >>
endobj
2163 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 615.405 null ] >>
endobj
2164 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 604.446 null ] >>
endobj
2165 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 593.487 null ] >>
endobj
2166 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 582.528 null ] >>
endobj
2167 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 571.569 null ] >>
endobj
2168 0 obj
-<< /D [ 2132 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 560.61 null ] >>
endobj
-41 0 obj
-<< /D [ 2132 0 R /XYZ 79.37 159.567 null ] >>
+2169 0 obj
+<< /D [ 2146 0 R /XYZ 81.145 549.651 null ] >>
endobj
-2131 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+2170 0 obj
+<< /D [ 2146 0 R /XYZ 81.145 516.775 null ] >>
endobj
2171 0 obj
-<< /Filter /FlateDecode /Length 2501 >>
-stream
-xZmo}q W|'ޡ98Ebӎ.dsoŒulӋbIG|f8|ft6YMOﲝw>H2 Q&nËl'R#*'+$ܭ'w녷=1H0{0TGLُ5`ucW>`=H "؞q@XѷVe]ӗZy^>hh.K|qIf7YWҷv[ $f ف9I*RRyQtG1e5l={;7掱`~koJiָlZWv8VW6HiƴBVl+ͪ/ʢ
-0<+}_]cvHWwqu#G$bZ/g :rZyQK=ԛ.̎E9` )@eJW\`X6Ni;*ۂ[ޣv ̋ wV1B;UPRS̺YQueejGSGRow6L@ <4cH %z3a
-6(|@r[ aöozos)JcdaN4 Dyc h1:Xx{ h{X}AA* IjX~.υWu}ejɭ@/!Iu,mE
-ܚO3먯W>f/I REzDb#r\zq!%pLR,i63now
-Pcӧ|cBtՎ%$xO%PhȾiZ(4>9Pq@X._P}myTE{Xz wN4tҴKX
-bm(I9i*R2Ȏ=d,\74yP6,=c<GaP㕟
-
-:]!t^C3r3rpwQVxq;8f8vupEaÄ*H6b]>?Reެ:CkiA}z Ӷ#i%˫ۻZ)NN!p>m:L!8¹g 7=v1H$BP6'Ӈ~+w
-*_/Lw<`7m= l3l,EL˖#i˿|e~YDINW<~fnW9UZI'Xe p*-ߍZ%
-qgZCX<-8g/^}2B&5 
-{\Mc5
-b!H%Rev:3>>/#xo$0݂
-<cGُk
-endstream
-endobj
-2170 0 obj
-<< /Type /Page /Contents 2171 0 R /Resources 2169 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1810 0 R >>
+<< /D [ 2146 0 R /XYZ 81.145 505.816 null ] >>
endobj
2172 0 obj
-<< /D [ 2170 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 462.976 null ] >>
endobj
2173 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 708.104 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 452.017 null ] >>
endobj
2174 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 697.146 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 436.077 null ] >>
endobj
2175 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 620.55 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 381.283 null ] >>
endobj
2176 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 609.591 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 370.324 null ] >>
endobj
2177 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 598.632 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 359.365 null ] >>
endobj
2178 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 587.673 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 318.518 null ] >>
endobj
2179 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 546.943 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 253.761 null ] >>
endobj
2180 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 535.984 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 242.802 null ] >>
endobj
2181 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 525.025 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 166.09 null ] >>
endobj
2182 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 514.066 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 155.131 null ] >>
endobj
2183 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 485.292 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 102.329 null ] >>
endobj
2184 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 474.333 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 91.37 null ] >>
endobj
2185 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 463.374 null ] >>
+<< /D [ 2146 0 R /XYZ 81.145 80.411 null ] >>
endobj
-2186 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 452.415 null ] >>
-endobj
-2187 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 441.456 null ] >>
+2145 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F81 505 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2188 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 430.497 null ] >>
+<< /Filter /FlateDecode /Length 2520 >>
+stream
+x[n#7+! 0 %k} rMNkUsiݔ5 Ac|X ᧿N_7Ո2gO7'qinOF Ƶ8}sk̟VWmN9pf@H@zD>h= wGۗo
+T~ZH];9Kj~k6o`\I^ jxB.P%PkxILT~DLp:GkQ\] .K7>%e K5.܋DM@LlC C1¤-@khЗt-+k6^,0񖞎RcnCb-! /lS,!)k=c=Y{;2H
+PMp '1cG>Zߦ\a toy|׶~UvSf)>OBf&M&fcDj4=dF"sHіdH4,1[Nm;yG}5m1o6 892d!͛͋6TpjɊQ\DC'wBx=@_McţXOn{T*O]5jDdQ!
+V1'F;EcsI^Bz0Vj^T>[<>7ɵw4?;TֳЉL=1I3s5B9(|˔ꗲFR<ν-A3RN ^xh^<a :
+B)P d !}U4=??Ιf)Emf0M
+ӄj/U1 GRH>T>#WnԓzCz&K6f.ec>bHXtIϟ8XIh CP_uy2=,r8,V'lw[Nٻ/Li5+9P~- xNH7j13uB&d]}=H
+{89- Tf~ Oפ"Hf{H颹s
+OihU2lNߐ]EIi.B`߃GI{pG在}\ A{>wG ]j/+6o6͘0\G3:lJz%lD-IycuKmJx .Ԃ9߯Ty
+BB?#NR3;ԿΔfмB­HY; a}G:MKLX`G6Ń! 4׋\BWYZYv~s8zh;g7 Ezt]MP[1,0p\rpH-%54{o.?Ǫ~Q3nHܒX1ѧ?bT Ǝ] #
+f5[ hs͙zؑשثJ3W ?έ
+endstream
+endobj
+2187 0 obj
+<< /Type /Page /Contents 2188 0 R /Resources 2186 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R >>
endobj
2189 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 401.722 null ] >>
+<< /D [ 2187 0 R /XYZ 78.37 808.885 null ] >>
endobj
2190 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 390.763 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 768.829 null ] >>
endobj
2191 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 379.804 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 757.87 null ] >>
endobj
2192 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 368.845 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 746.912 null ] >>
endobj
2193 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 357.887 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 735.953 null ] >>
endobj
2194 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 346.928 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 724.994 null ] >>
endobj
2195 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 318.153 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 695.356 null ] >>
endobj
2196 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 271.562 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 684.397 null ] >>
endobj
2197 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 260.603 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 673.438 null ] >>
endobj
2198 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 225.967 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 662.479 null ] >>
endobj
2199 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 651.52 null ] >>
endobj
2200 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 640.561 null ] >>
endobj
2201 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 629.602 null ] >>
endobj
2202 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 618.644 null ] >>
endobj
2203 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 607.685 null ] >>
endobj
2204 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 596.726 null ] >>
endobj
2205 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 581.142 null ] >>
endobj
2206 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 570.183 null ] >>
endobj
2207 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 559.224 null ] >>
endobj
2208 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 548.265 null ] >>
endobj
2209 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 537.306 null ] >>
endobj
2210 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 483.046 null ] >>
endobj
2211 0 obj
-<< /D [ 2170 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 472.087 null ] >>
endobj
-2169 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-2214 0 obj
-<< /Filter /FlateDecode /Length 2840 >>
-stream
-xڵZ[oܸ~ϯ0Ї5#$]l[`R}h
-A#!i"ixp<36šx?]_D'87 $UۻWEB$ESv{MRvۿO^ E8jILYDo)Ez뛛+ɤڇۮ~!g͖ a00K곘^ SB0K >b:5S*1aԧQy
-{9&19p/_yWQ'/COńt$K'~[>tG4U \Bk;z8Gtt6Ooo] E:aOð/Oc="L&{ (ztJ _Y2ʧ˶(IOl׵.]^OJ.
-zDJ1eaZR
-ޛ*"S9<jGgEvвRpB6",KIJ8@ Sۍbqڽn
-
-JqEX qCL* 籷sE!ȼP~[mډN<JU^ۙ9:)a6
-q (r XNIWƀ[C+I|+](F|YFJɪmJ|OWvT?rdNO- 6o؁$BwNыH)Q4U6
-L"H-˘v-%we6 n=Fu3?>{OHF`ar>n:w׽~:]t:tZ5 ia JcOXQl]A\L .+/7V%Qhz3CYuD,O Ls<zc
-
-}W2,LNGa􌎢,|2$H3 8f&.?:lߠCĦ@:+]XpKӇEiP6QI"'OQ=i `#-2'Vl3 X-qz49
-dBR|.!
-vWL D2? 2z$;մ` Qj< ВT%L1ea7|Ma=%7Dt`AÚ,M^p-YOI~e`4%Q:}eazQuY7B5e9^Y »
-,RNJ>{{S(lQ,
-%-JSw?T^kXk8&,L yC@$|y\] /,# 5 ԑ@?}=];w H,b:p_߯ -%BFV^lOl!)r¢G
-oxg`b,,zԥme,e0O7!g6Iګ᧊`5N=u7*%rn賰\wMМ7%GطZ/`i_ <|Á"Q$]uX]~> <<IDQ釦o_
-endstream
+2212 0 obj
+<< /D [ 2187 0 R /XYZ 81.145 461.128 null ] >>
endobj
2213 0 obj
-<< /Type /Page /Contents 2214 0 R /Resources 2212 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R >>
+<< /D [ 2187 0 R /XYZ 81.145 450.169 null ] >>
+endobj
+2214 0 obj
+<< /D [ 2187 0 R /XYZ 81.145 439.21 null ] >>
endobj
2215 0 obj
-<< /D [ 2213 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 428.251 null ] >>
endobj
2216 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 417.292 null ] >>
endobj
2217 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 406.333 null ] >>
endobj
2218 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 330.689 null ] >>
endobj
2219 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 319.73 null ] >>
endobj
2220 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 308.772 null ] >>
endobj
2221 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 297.813 null ] >>
endobj
2222 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 286.854 null ] >>
endobj
2223 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 275.895 null ] >>
endobj
2224 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 264.936 null ] >>
endobj
2225 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 253.977 null ] >>
endobj
2226 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 243.018 null ] >>
endobj
2227 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 232.059 null ] >>
endobj
2228 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 221.1 null ] >>
endobj
2229 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 210.141 null ] >>
endobj
2230 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 199.183 null ] >>
endobj
2231 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 188.224 null ] >>
endobj
2232 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 177.265 null ] >>
endobj
2233 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 166.306 null ] >>
endobj
2234 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 155.347 null ] >>
endobj
2235 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 144.388 null ] >>
endobj
2236 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 133.429 null ] >>
endobj
2237 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 122.47 null ] >>
endobj
2238 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 111.511 null ] >>
endobj
2239 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 100.552 null ] >>
endobj
2240 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 89.593 null ] >>
endobj
2241 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 2187 0 R /XYZ 81.145 78.635 null ] >>
endobj
-2242 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 226.864 null ] >>
-endobj
-2243 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 215.905 null ] >>
+2186 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2244 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 185.021 null ] >>
+2246 0 obj
+<< /Filter /FlateDecode /Length 2219 >>
+stream
+x[Ɏ#7 WZ 0 t-I9%\2ߏRI=E/kS=EIl>}鉗3S4<9+@N< ߈Obin'ZLߦ/;Εs=y}9j3YHJI<CI6I$gFI"ќ?!5A[{J(\Rm$Yip<)Hj$2aq( n1T
+C0IT1+*ZIIo61<t=gqmq+B\ӡ-\~afRNSEznxH4,mkb aڐb]t$I$)uHu!J`0Y$zZ21:G:C#Gosnhv)$\]70TnWh& !LšҊ
+Ieʩ$Ht-Ro@浣Wi0TGÑUiCܘ~|d+Q5#Y{ZV">+<YԶ^6QB
+7d!ѭDRiŌ; 4gɔ}Y$ C)Y1W b
+-C?Q :vtzRAt$`r( iEBna xuH?nk.!@vz IPtA߅N3aEUlGH^jz`/pLGYlVU.Cʻ lLJǑ\!Fϒ˺}Wgu|ו6 X>!mqzVwGICzhe)X
+hFhՈ.bEtص@8P!M:U0_a1f9im42YrfoߞϞ8pv'6ǧ?_~Je3F5TXǔt}9NXq~/t0e _k{aCs;R xk+Žumbfۖ
+ĖҾԻ~D6.Cvt+T_,'T[%ZjI
+:PTN8ɴru꿕$
+endstream
endobj
2245 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 174.062 null ] >>
+<< /Type /Page /Contents 2246 0 R /Resources 2244 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R /Annots 2302 0 R >>
endobj
-2246 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 163.103 null ] >>
+2302 0 obj
+[ 2243 0 R ]
+endobj
+2243 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 408.097 456.702 414.556 469.431 ]/A << /S /GoTo /D (Hfootnote.6) >> >>
endobj
2247 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 2245 0 R /XYZ 78.37 808.885 null ] >>
endobj
2248 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 768.829 null ] >>
endobj
2249 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 757.87 null ] >>
endobj
2250 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 119.268 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 746.912 null ] >>
endobj
2251 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 108.309 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 735.953 null ] >>
endobj
2252 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 97.35 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 724.994 null ] >>
endobj
2253 0 obj
-<< /D [ 2213 0 R /XYZ 81.077 86.391 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 714.035 null ] >>
endobj
-2212 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F78 556 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+2254 0 obj
+<< /D [ 2245 0 R /XYZ 81.145 703.076 null ] >>
endobj
-2257 0 obj
-<< /Filter /FlateDecode /Length 2075 >>
-stream
-xZ[o~'
-MQ672F3eT[Ѧy~<s.׳t8go>||!5C."V.nLn:geXiJ1+xKT?<dB2ٯ]]-?իcbxn/wJ$?̤))C)Lh*('19̹heUE.oYהO?L\7:B8ʂG6T>S
->
-Hť6B{.]o| .. >vt&<&'}!mjeN~8$E}a_5iy;a2jI?˯.Hð88/{:٦ír\7Ϡ;})ӫǷ9p=nMb`0 0<Я㪮=gMr]o6՝oh^)Sۻ5+#Qrpҥ/4/F3nC,IMR3fy:vYV*.j殍#KHG6ݮM65"8E% Qnvޭu[ZrþGWToga?3lhm_rx3>W {apּUYe]}3S f9qX'L{*q85<Fό
-p) MnM3\/.2G#@}yI
- OOt]Y͇}xvw\91ѹ1DqIN5v<w=+Rd",XD82Dq4Hb9Qj
-9hQ/F6n;P)Έ9(/K|Tk1zEqq)vWXRfl4Githİ!+:B/8"mQcWg-ry~M0
-MV"H)WDc3s>~SI"ܵ)=GEυd DeEN9l&U\?ǜ12s?%Bѳꗛ
-endstream
+2255 0 obj
+<< /D [ 2245 0 R /XYZ 81.145 692.117 null ] >>
endobj
2256 0 obj
-<< /Type /Page /Contents 2257 0 R /Resources 2255 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R >>
+<< /D [ 2245 0 R /XYZ 81.145 681.158 null ] >>
+endobj
+2257 0 obj
+<< /D [ 2245 0 R /XYZ 81.145 670.199 null ] >>
endobj
2258 0 obj
-<< /D [ 2256 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 659.24 null ] >>
endobj
2259 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 648.281 null ] >>
endobj
2260 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 637.322 null ] >>
endobj
2261 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 626.364 null ] >>
endobj
2262 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 615.405 null ] >>
endobj
2263 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 584.52 null ] >>
endobj
2264 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 573.562 null ] >>
endobj
2265 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 562.603 null ] >>
endobj
2266 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 551.644 null ] >>
endobj
2267 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 540.685 null ] >>
endobj
2268 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 529.726 null ] >>
endobj
2269 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 518.767 null ] >>
endobj
2270 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 507.808 null ] >>
endobj
2271 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 496.849 null ] >>
endobj
2272 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 454.01 null ] >>
endobj
2273 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 443.051 null ] >>
endobj
2274 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 432.092 null ] >>
endobj
2275 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 421.133 null ] >>
endobj
2276 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 410.174 null ] >>
endobj
2277 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 399.215 null ] >>
endobj
2278 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 388.256 null ] >>
endobj
2279 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 377.298 null ] >>
endobj
2280 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 366.339 null ] >>
endobj
2281 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 355.38 null ] >>
endobj
2282 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 344.421 null ] >>
endobj
2283 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 333.462 null ] >>
endobj
2284 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 322.503 null ] >>
endobj
2285 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 311.544 null ] >>
endobj
2286 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 300.585 null ] >>
endobj
2287 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 289.626 null ] >>
endobj
2288 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 278.667 null ] >>
endobj
2289 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 267.709 null ] >>
endobj
2290 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 256.75 null ] >>
endobj
2291 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 245.791 null ] >>
endobj
2292 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 214.907 null ] >>
endobj
2293 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 203.948 null ] >>
endobj
2294 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 192.989 null ] >>
endobj
2295 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 182.03 null ] >>
endobj
2296 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 171.071 null ] >>
endobj
2297 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 160.112 null ] >>
endobj
2298 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 149.153 null ] >>
endobj
2299 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 138.194 null ] >>
endobj
2300 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 2245 0 R /XYZ 81.145 127.235 null ] >>
endobj
2301 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 198.969 null ] >>
-endobj
-2302 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 2245 0 R /XYZ 93.716 96.198 null ] >>
endobj
-2303 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 177.051 null ] >>
+2244 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F16 422 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2304 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 166.092 null ] >>
+2306 0 obj
+<< /Filter /FlateDecode /Length 2960 >>
+stream
+xڽ\˒cW֨4ݻYٸƿo^rB]DO7N}qRYo¿Od!'q?Ns%
+?V~9YH=R<{*"~tk\¹/Zj)8. ~cwdA,3 5XzJ Lɰ21`\<L?U3aD`Re0I˄U#LcL=`
+O ylo &aLN`r LM}u9R6IL-dTͯf5sUMpfy828><m_Oke i
+6u*4n~V!mpln10'ɴ"U&
+
+鞂u8R
+؋fC%Ptd2` &
+>0BLsaD!ëf;f,ê%/kd1ȂPFvAιzH? BF!1a0ڗ%wSt*y$ R1aQѼE&h` xWєCJN8lm a\! 9]"#5՛E8!"}d| ؙGy6j5RSyBlTa쒙#O[dcKz(P+m*Ū
+Ɍ<d4
+t axЦ
+i@"I)c]圸#ij1ccTWr>
+EmQb˒9X]!̄qUŇ _X29i7~8ϳ!s8$
+.'5pԧ?3fb=PzL@QP b\)T֠)K3XW*} d
+S;kvb4BF(:wGep *\'3Wwَq"󊺛 TӍkS@nl<fdieL )%3.\O^S "3k@5%),ɦxOa M]*0I5I@KY
+{JaRYYErOd
+[{bjj59r&jZ0+‘ڝoF. Uo<J!
+>WÔ U<cP EvrPA3R'IҤ+&^ڱsdK o``W6Bk=5 w#<5gLRN/92ٵ
+?[OLi_?Cx!L<e~=V['4PIqcW
+endstream
endobj
2305 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 155.133 null ] >>
+<< /Type /Page /Contents 2306 0 R /Resources 2304 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R /Annots 2345 0 R >>
endobj
-2306 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 144.174 null ] >>
+2345 0 obj
+[ 2303 0 R ]
+endobj
+2303 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 438.527 285.6 444.986 297.964 ]/A << /S /GoTo /D (Hfootnote.7) >> >>
endobj
2307 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 2305 0 R /XYZ 78.37 808.885 null ] >>
endobj
2308 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 768.829 null ] >>
endobj
2309 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 757.87 null ] >>
endobj
2310 0 obj
-<< /D [ 2256 0 R /XYZ 81.077 100.339 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 746.912 null ] >>
endobj
-2255 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+2311 0 obj
+<< /D [ 2305 0 R /XYZ 81.145 735.953 null ] >>
endobj
-2314 0 obj
-<< /Filter /FlateDecode /Length 2015 >>
-stream
-xڭko8WxY@6,)s
-*bИ'_9#$ZEQOjipeVsFy;\(|l◚#S#:K){kdW"lQ7-C/ӡ4@ms$hϺ*@X/kHn(J])#(16F40M5|3pk>#/#[ z.W4MX5pqV
-T m9Kŝ篼!V;aHH`C}֋:^xUD!, 4lIpq 㲰u,_̌<]Ts<[t m7:8:2J#O=zחUWE&|0zblB%x]%LLb֕tOu+aa6tTq>dޓ!J<$U˜7|
-)jIp]uPk!{mqIppp0X:TU8H=BZKLˆ]nG} aaCú㈏;ŠX`GƬa; J *bBA,IW|ŞYDD3w-SH%[RFꪏ y H]HS`!JZ$ U; ,m!z)<Ү$,m3EIPb䉏JViu }_# ai䙄$)>BO=녭2rSpGz,H]6SGΫV7%twe2m4xe2/,~{aO}YNLF $]+>
-nzo90%a
-ߪmzҐgcTU?{_Ͼl9-(+>|9 懾b9!1/4b?ǟ{{,< @DGMb`"W{VHڥ TEucNl ~&JZpOIT zyۍClB0a9_ÔDV_, uЙ#~Ѽ w^WQ43`q|vctk>tgh= NcOGt|4J3# tí9Nubvdc;*{5V0pgL31v-44ةz1u=n/ۉxZ `ql{HF
-endstream
+2312 0 obj
+<< /D [ 2305 0 R /XYZ 81.145 724.994 null ] >>
endobj
2313 0 obj
-<< /Type /Page /Contents 2314 0 R /Resources 2312 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R /Annots 2365 0 R >>
+<< /D [ 2305 0 R /XYZ 81.145 714.035 null ] >>
endobj
-2365 0 obj
-[ 2311 0 R ]
+2314 0 obj
+<< /D [ 2305 0 R /XYZ 81.145 703.076 null ] >>
endobj
-2311 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 408.109 641.043 414.571 653.533 ]/A << /S /GoTo /D (Hfootnote.6) >> >>
+41 0 obj
+<< /D [ 2305 0 R /XYZ 79.37 677.627 null ] >>
endobj
2315 0 obj
-<< /D [ 2313 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 609.234 null ] >>
endobj
2316 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 598.275 null ] >>
endobj
2317 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 587.316 null ] >>
endobj
2318 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 576.357 null ] >>
endobj
2319 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 560.417 null ] >>
endobj
2320 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 549.458 null ] >>
endobj
2321 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 509.607 null ] >>
endobj
2322 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 483.705 null ] >>
endobj
2323 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 472.746 null ] >>
endobj
2324 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 461.787 null ] >>
endobj
2325 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 638.368 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 450.828 null ] >>
endobj
2326 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 627.409 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 422.932 null ] >>
endobj
2327 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 616.451 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 411.974 null ] >>
endobj
2328 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 605.492 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 401.015 null ] >>
endobj
2329 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 594.533 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 390.056 null ] >>
endobj
2330 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 583.574 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 379.097 null ] >>
endobj
2331 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 572.615 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 368.138 null ] >>
endobj
2332 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 561.656 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 357.179 null ] >>
endobj
2333 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 550.697 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 346.22 null ] >>
endobj
2334 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 539.738 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 335.261 null ] >>
endobj
2335 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 528.779 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 324.302 null ] >>
endobj
2336 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 517.82 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 313.343 null ] >>
endobj
2337 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 506.861 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 237.627 null ] >>
endobj
2338 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 495.903 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 187.814 null ] >>
endobj
2339 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 484.944 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 176.855 null ] >>
endobj
2340 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 473.985 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 165.896 null ] >>
endobj
2341 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 463.026 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 154.937 null ] >>
endobj
2342 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 452.067 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 143.978 null ] >>
endobj
2343 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 441.108 null ] >>
+<< /D [ 2305 0 R /XYZ 81.145 133.02 null ] >>
endobj
2344 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 430.149 null ] >>
+<< /D [ 2305 0 R /XYZ 93.716 86.726 null ] >>
endobj
-2345 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 399.375 null ] >>
+2304 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F16 422 0 R /F68 181 0 R /F73 267 0 R /F81 505 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2346 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 388.416 null ] >>
+2348 0 obj
+<< /Filter /FlateDecode /Length 3071 >>
+stream
+x\n$9WX-Q\\gNFm YPtd"H/_?8d*|w#.Ȝ.?CE\fۋтq-.?{+
+8ǏS?
+?\,sZK5R?OU^35?@Q6/̣ OWʉFG+ҭ S
+D* ?VXz6P 
++Ql]]
+WeE.yQAc+qLd˒j(Jx{A_ӊ5l ſgpz3ǞSR8ɓ`8H%I70 ̀~2"ky\yalU
+r,l 8Ub-A_.Qi5g
+3FpTWO4j+s
+J
+.A3aͨIVD[4c}6=4$Os[+M2 )8i|26ƕ^3dO@1N^@/8qѠ8-$:≩W܎RA>dYX&T~\#|ƒ OER Y L
+]dR_hnj3~=OpN9%NzBCPz_n
++e SPG`: 2NCO$ɋKoT浖Bм6^MH t;T*]Ymo5%::ɫfԈO\B$Y3=J$GK
+^qNzrh$l;O.r26ApaO,N{#Ԓrm-0Pzn39D40u1 zN1ټ\m ~?H@hKC0 ';;!iC;,.<5:' gҨ
+kn_s3ijAk!\1Dq@hݓ?_n-3zO)+.:sL:{|JKu^Mo~{JBj/HcZ(?Cr
+bN"NL%\pJLy S1!yJ5,T*k
+t^cٟ[${V%kWpuȑ,@=
+ י nAٲnV,N}-.Wr *2xMƎ#sVUz*)Dy\3>$t⾨mpI0a u\V}:1g!w?TT
+aVn5
+Sv1ɂs(u(Xp2db2YF]peL'$!")cC̍T.َ Nvvp_M;>M=rOGi&sI~C6ap-o": "6|^sՃ AvNvQLJCtͨ!f?pY
+AG5ևpℶx':LE{(Ǚ2Cbg@T^߃m|%ڡL+kr>
+
+`n3F5u{#*4Cؾk}1?*+鯹z+ycP<[V gVTy@5K< "=/`Z r*o8k<g
+endstream
endobj
2347 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 377.457 null ] >>
-endobj
-2348 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 366.498 null ] >>
+<< /Type /Page /Contents 2348 0 R /Resources 2346 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R >>
endobj
2349 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 355.54 null ] >>
+<< /D [ 2347 0 R /XYZ 78.37 808.885 null ] >>
endobj
2350 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 344.581 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 768.829 null ] >>
endobj
2351 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 333.622 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 757.87 null ] >>
endobj
2352 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 322.663 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 746.912 null ] >>
endobj
2353 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 311.704 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 697.107 null ] >>
endobj
2354 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 300.745 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 686.148 null ] >>
endobj
2355 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 289.786 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 648.299 null ] >>
endobj
2356 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 278.827 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 637.341 null ] >>
endobj
2357 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 267.868 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 626.382 null ] >>
endobj
2358 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 256.909 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 615.423 null ] >>
endobj
2359 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 245.951 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 563.671 null ] >>
endobj
2360 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 234.992 null ] >>
-endobj
-45 0 obj
-<< /D [ 2313 0 R /XYZ 79.37 209.632 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 552.712 null ] >>
endobj
2361 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 141.302 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 541.753 null ] >>
endobj
2362 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 130.343 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 530.794 null ] >>
endobj
2363 0 obj
-<< /D [ 2313 0 R /XYZ 81.077 119.384 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 519.835 null ] >>
endobj
2364 0 obj
-<< /D [ 2313 0 R /XYZ 94.613 89.795 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 508.877 null ] >>
endobj
-2312 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F72 187 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+2365 0 obj
+<< /D [ 2347 0 R /XYZ 81.145 471.027 null ] >>
endobj
-2369 0 obj
-<< /Filter /FlateDecode /Length 2986 >>
-stream
-xڥZ[۸~_a
-'؂^z>3Ar6\Q,IHYRtv}ӄןnz>Lf1ICbĥr,|m~~-}͢Rz\x?Y-6eeg5$" P [HUybO~٥g\\!5~[d,lԈuz֯}&^B1|]PiD2N]a<OilڑM5Y4D2Aog[$6)1m Ǫ*U_Xgk:a1c@< .#ХW
--
-|6FITdH7YP@bm᠚:B[rcw|ᆒ$v_PP &THwjL*qs~BBp
-!5ٕN
-BŽt|O@MhйDAR[
-4H4)'r\H#P
-k2{zBpn\3tYEǴaZgLkkosc!tW"0KDZ7y֘'ҴAILsw{Y4p x ":KNh8bJ.R5i 0T``>JU43Zi2'!c5a,-^iFX
-rlK@؍ b$!˙G.u$ 26b@Q6/=c2v2]5VPP_v(~ EhqV9bqitZQl.[!)hebSψZ+ Lv[fE0`k X[*I#Pˇ۸D Ԩ#
-F=˪EO6@bs9t>+mY_PC*qICmM:q3M-zi~c|7;YWI2\uX充!L(`ȡ DU$4 :lS7~i/@N!^Xs+PnrzchwW[<\/Kʛ+8/p<D$t!^Ɋ6Qo_Ug_% %]K mYbFfCScnwSNl?[mX" 'OȡG!|a *үJP;Uq܎"aWԶ
-(<
-h7^E諝EK+6^G txZ^S>( kX30
-Jx~guw Ϙ4EhʼnO0XּAOV`+ E0QE;ϟ`
-Cu8QQUb
-endstream
+2366 0 obj
+<< /D [ 2347 0 R /XYZ 81.145 457.089 null ] >>
endobj
-2368 0 obj
-<< /Type /Page /Contents 2369 0 R /Resources 2367 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R /Annots 2407 0 R >>
+2367 0 obj
+<< /D [ 2347 0 R /XYZ 81.145 446.13 null ] >>
endobj
-2407 0 obj
-[ 2366 0 R ]
+2368 0 obj
+<< /D [ 2347 0 R /XYZ 81.145 435.171 null ] >>
endobj
-2366 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 438.519 480.603 444.981 492.54 ]/A << /S /GoTo /D (Hfootnote.7) >> >>
+2369 0 obj
+<< /D [ 2347 0 R /XYZ 81.145 424.212 null ] >>
endobj
2370 0 obj
-<< /D [ 2368 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 413.253 null ] >>
endobj
2371 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 402.294 null ] >>
endobj
2372 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 753.177 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 391.335 null ] >>
endobj
2373 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 742.218 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 339.548 null ] >>
endobj
2374 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 702.653 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 328.589 null ] >>
endobj
2375 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 677.463 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 317.63 null ] >>
endobj
2376 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 666.504 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 306.671 null ] >>
endobj
2377 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 655.546 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 280.813 null ] >>
endobj
2378 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 644.587 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 181.241 null ] >>
endobj
2379 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 617.547 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 170.282 null ] >>
endobj
2380 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 606.588 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 144.388 null ] >>
endobj
2381 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 595.63 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 133.429 null ] >>
endobj
2382 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 584.671 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 122.47 null ] >>
endobj
2383 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 573.712 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 111.511 null ] >>
endobj
2384 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 562.753 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 100.552 null ] >>
endobj
2385 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 551.794 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 89.593 null ] >>
endobj
2386 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 540.835 null ] >>
-endobj
-2387 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 529.876 null ] >>
+<< /D [ 2347 0 R /XYZ 81.145 78.635 null ] >>
endobj
-2388 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 518.917 null ] >>
+2346 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2389 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 507.958 null ] >>
+<< /Filter /FlateDecode /Length 2379 >>
+stream
+x[;8WTxF"0h`kj;;lzp-= a")R%/˯/
+߅\_ޭN!\M.#%Q]MJ R)Ii￱=BI@44 _^ƠJ@
+ zd_hz \R[wJV ߚ|g|w?g)6Sx z)ܔZ$Y,_@k+Sp{e AqDUņnYYR %z 0Ӓ(+ ($^h{DܽtzQӓE=q=ѣQx/-R-q궮Y` K#◾G׹Z1Q̮CE,EG"gl]LŘl_`9HkagQq,gJjDAb]lfi,
+d9@Xaևh]foQڌ)@nf@E[lJTdwٕѻ NB6(^ I _$:UW_a-U֜ ~҈_J_| mG^EbMQ-DC[?UPY zz_Vb/Ư1
+.ffyZt@.|Ӫ<N ϱ>b:>\z/ֵ@Ӯ\A3탍Ի 涱Y$Vd>}s*Q
+BfԔ
+k^ƫ<
+ ^A/oJi<BD{ J+ؼSZvvh
+m 3Nt+N׌PЎ ֣iC5(JxP%ih:BTXI2$-ҦK_%5ѴOSf1
+"u>m+k) Y핔iw!>'h-ηCⴒ*^rwDaVdgC͊pt=kUXEvH <F K.͑"6v;ci.Cĺ`Y+ʼva7M&
+endstream
+endobj
+2388 0 obj
+<< /Type /Page /Contents 2389 0 R /Resources 2387 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R >>
endobj
2390 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 432.528 null ] >>
+<< /D [ 2388 0 R /XYZ 78.37 808.885 null ] >>
endobj
2391 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 382.857 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 768.829 null ] >>
endobj
2392 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 371.898 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 757.87 null ] >>
endobj
2393 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 360.939 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 746.912 null ] >>
endobj
2394 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 349.98 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 735.953 null ] >>
endobj
2395 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 339.022 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 724.994 null ] >>
endobj
2396 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 328.063 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 714.035 null ] >>
endobj
2397 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 302.302 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 703.076 null ] >>
endobj
2398 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 291.344 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 692.117 null ] >>
endobj
2399 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 280.385 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 681.158 null ] >>
endobj
2400 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 230.714 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 670.199 null ] >>
endobj
2401 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 219.755 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 659.24 null ] >>
endobj
2402 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 182.04 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 648.281 null ] >>
endobj
2403 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 171.081 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 637.322 null ] >>
endobj
2404 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 160.122 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 587.509 null ] >>
endobj
2405 0 obj
-<< /D [ 2368 0 R /XYZ 81.077 149.163 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 576.55 null ] >>
endobj
2406 0 obj
-<< /D [ 2368 0 R /XYZ 94.613 80.331 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 565.591 null ] >>
endobj
-2367 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F70 185 0 R /F76 318 0 R /F78 556 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+2407 0 obj
+<< /D [ 2388 0 R /XYZ 81.145 554.633 null ] >>
endobj
-2410 0 obj
-<< /Filter /FlateDecode /Length 2481 >>
-stream
-xڵZ[o~ϯ0(
-_zpgۃ0P+bf(RɇALͤ!ܯsOLI`,LS끞WC='w3nt_͌uI-J|>CB4hS9vN{&C˴jyO K[rTK_\٤b ~Ìg u'@O}Z{26/iq=[ZƎa9jsRjılu2KM3=>(=;yq}5pY%m)gHC롃cd>v(=t1
-XMI }P"!]j]-1 m8HB% :8RcD
-t,<cZ#UǭҔǵ&AJ5NZAف=Nk^4ӒxYeOխowƹC@F̼\Dz`\#am<vH)<.ŐFt:.j9F MZ;O Q.| c?M#/G
-2&x'B12=2ܶ
-[LL D'*sDˮq;6QT#DY^ۜ)Dhz S7U}]_szEXMlUz# Q!v\Wr&7t(c
-D0 :$gyܽzRQ=UYsjaf7BC&Z[
-x϶$i٧E0Y]n_6=U%TOlS*74Ab?S,h '`_*`)1_W0y}jR7S+Nk EGϿVF-o"bYl6eu%^$YIib-d"+m|;c͗wy<[R6r*նauoa-Zoز ؆A+NmhhOxaށA&dnH!BI%aנGmn }L`0|{s}Ǹ-pO{OpJbm˄x`
-@}n3#3~ܫS6fs^O'}' zAc.//j/TVG+}>(7q]اF!eC|/M\X.Mr\5rC[c.#R.ҽ
-!f,KxFNKBc` Kמ1aCI\!.`8Cwք}ۯ u~eb ~2*~*‘wnۄt!R(tM*
-endstream
+2408 0 obj
+<< /D [ 2388 0 R /XYZ 81.145 543.674 null ] >>
endobj
2409 0 obj
-<< /Type /Page /Contents 2410 0 R /Resources 2408 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R >>
+<< /D [ 2388 0 R /XYZ 81.145 481.905 null ] >>
+endobj
+2410 0 obj
+<< /D [ 2388 0 R /XYZ 81.145 470.946 null ] >>
endobj
2411 0 obj
-<< /D [ 2409 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 459.987 null ] >>
endobj
2412 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 449.029 null ] >>
endobj
2413 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 438.07 null ] >>
endobj
2414 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 427.111 null ] >>
endobj
2415 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 416.152 null ] >>
endobj
2416 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 405.193 null ] >>
endobj
2417 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 394.234 null ] >>
endobj
2418 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 383.275 null ] >>
endobj
2419 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 662.231 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 372.316 null ] >>
endobj
2420 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 361.357 null ] >>
endobj
2421 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 350.398 null ] >>
endobj
2422 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 339.44 null ] >>
endobj
2423 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 328.481 null ] >>
endobj
2424 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 317.522 null ] >>
endobj
2425 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 306.563 null ] >>
endobj
2426 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 295.604 null ] >>
endobj
2427 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 284.645 null ] >>
endobj
2428 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 273.686 null ] >>
endobj
2429 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 262.727 null ] >>
endobj
2430 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 251.768 null ] >>
endobj
2431 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 240.809 null ] >>
endobj
2432 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 229.851 null ] >>
endobj
2433 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 218.892 null ] >>
endobj
2434 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 207.933 null ] >>
endobj
2435 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 158.119 null ] >>
endobj
2436 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 147.161 null ] >>
endobj
2437 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 136.202 null ] >>
endobj
2438 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 125.243 null ] >>
endobj
2439 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 114.284 null ] >>
endobj
2440 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 103.325 null ] >>
endobj
2441 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 92.366 null ] >>
endobj
2442 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 2388 0 R /XYZ 81.145 81.407 null ] >>
endobj
-2443 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 239.816 null ] >>
+2387 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F25 609 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2444 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 228.857 null ] >>
+2448 0 obj
+<< /Filter /FlateDecode /Length 3080 >>
+stream
+x\;$ WL(UW[s{*e/e%V`'h>9;h~
+f?
+ '8tq4d={R1
+Mcεx[4_
+?I[e3jKTyGT@V}kf)
+蘾yR =CAI~F!d12r(8iZ)=P#g @!޼f#i
+P3 |Osc!ThI tOEgΈD#{w'nWw͡
+ZIeΔ5lbhJs
+ JHIK[<+85zr)6\ ,:_1z-+ĭT־DŽf
+~lj:cm4T-zI{븼>s9_{vN=߇ ݢDiFNkWELix\zv+L1 *I:0j,V5!eV*40LDUgQ|usKmMDژ\㺺hJ1|/~^09lMQ;NuO]>R2
+K2S6qfcUDIuFJT[̅%kANi5n)^ʏSY{mnK>Z
+ȽK)[1X 5k Z禫}:vjH>i5Vcл-ZiMŇk͝aay4wOq%)nJδ #յI>`Ag_?tt}EqE5_iT
+Tզ̌>EU0זPZ3F* 
+g>i糹G 6)KFexO"GuN} m/nE8tծë)Cmpi|G]ůUz7?ˠ;B WaQOoJ̠Gl-!e0i
+endstream
endobj
-2445 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 217.898 null ] >>
+2447 0 obj
+<< /Type /Page /Contents 2448 0 R /Resources 2446 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R /Annots 2495 0 R >>
endobj
-2446 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 206.939 null ] >>
+2495 0 obj
+[ 2443 0 R 2444 0 R 2445 0 R ]
endobj
-2447 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 195.98 null ] >>
+2443 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 139.584 699.183 146.043 709.531 ]/A << /S /GoTo /D (Hfootnote.8) >> >>
endobj
-2448 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 185.021 null ] >>
+2444 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 460.292 532.418 472.247 544.373 ]/A << /S /GoTo /D (section.0.12) >> >>
+endobj
+2445 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 487.547 255.457 494.006 268.186 ]/A << /S /GoTo /D (Hfootnote.9) >> >>
endobj
2449 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 2447 0 R /XYZ 78.37 808.885 null ] >>
endobj
2450 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 768.829 null ] >>
endobj
2451 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 757.87 null ] >>
endobj
2452 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 746.912 null ] >>
endobj
2453 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 697.098 null ] >>
endobj
2454 0 obj
-<< /D [ 2409 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 686.139 null ] >>
endobj
-2408 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+2455 0 obj
+<< /D [ 2447 0 R /XYZ 81.145 675.181 null ] >>
endobj
-2458 0 obj
-<< /Filter /FlateDecode /Length 2381 >>
-stream
-xڭZ[o6~ϯУpx-]l!@:@0[qR*qHQ8;d$KsCh _ww\JXQpD"%$IH$&%ٯ7?_4R(1 x?Ƌ]w?W7KAE|amV.>.yt6-iFS'mz*棿 hy*2Wb?޵uT[ p+C%ѦW$RPǐ$E #I ພ$޿]2ŝϛ[sZs-lko*Q|;PQ)N@ يS9 M^i6^ŭUf?2b<|?n"Ec$yje
-:w @^WvHNB0jy|
-C+CZ<-%S$CIעI/\@؈c i5F$Ԥy2R%T%a%XF"sN ’rPq18giB]Bd"{1Ct ɠ>P:i)زa5}uV~ߨr~wem/zFyG"3"<΄rEg1]tm겯tu@Yx.;De~Ϯ>
-e4bu2?PbR3 5.ƤxJF-,і,ؔE3i{e*S*[UPwݱ-YE45mD0%fH HT8 ']qzQ2|꒞ITi'@tL<+ wLg?zU`TS"8J:\DS"G8 Ixvf{TPdS\41BN&?l<4qaYPC7&l?7u~֦{Sy&ܸu<aѽ׺R1~ýR#G5sn3(qˠq:Bm(MȄǫ0˪ЛszuH q&W I7U rހyae] Ww
-,9L\N{Pɰpn9VLM`\6_zb(.77!~og9 N)G}/(mmag93”#3f`4(M~DUI邤.qK@h>m \q4\i#Gn&2vSUXIH;⡿E*_6W<sILJ s&DV<;o}E; >]sMCb˩&~}<Մux )
-1@8^uef OvE\nkŤl@ߤ0<:pW.K&
-endstream
+2456 0 obj
+<< /D [ 2447 0 R /XYZ 81.145 664.222 null ] >>
endobj
2457 0 obj
-<< /Type /Page /Contents 2458 0 R /Resources 2456 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R /Annots 2509 0 R >>
+<< /D [ 2447 0 R /XYZ 81.145 653.263 null ] >>
endobj
-2509 0 obj
-[ 2455 0 R ]
-endobj
-2455 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 139.584 204.941 146.046 214.941 ]/A << /S /GoTo /D (Hfootnote.8) >> >>
+2458 0 obj
+<< /D [ 2447 0 R /XYZ 81.145 642.304 null ] >>
endobj
2459 0 obj
-<< /D [ 2457 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 631.345 null ] >>
endobj
2460 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 605.442 null ] >>
endobj
2461 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 594.483 null ] >>
endobj
2462 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 532.715 null ] >>
endobj
2463 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 685.505 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 521.756 null ] >>
endobj
2464 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 674.547 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 495.853 null ] >>
endobj
2465 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 663.588 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 484.894 null ] >>
endobj
2466 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 652.629 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 473.935 null ] >>
endobj
2467 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 641.67 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 462.976 null ] >>
endobj
2468 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 630.711 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 452.017 null ] >>
endobj
2469 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 619.752 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 441.058 null ] >>
endobj
2470 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 608.793 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 430.1 null ] >>
endobj
2471 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 597.834 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 419.141 null ] >>
endobj
2472 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 586.875 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 408.182 null ] >>
endobj
2473 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 575.916 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 397.223 null ] >>
endobj
2474 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 564.957 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 359.365 null ] >>
endobj
2475 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 553.999 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 348.406 null ] >>
endobj
2476 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 543.04 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 337.447 null ] >>
endobj
2477 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 532.081 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 326.488 null ] >>
endobj
2478 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 521.122 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 315.529 null ] >>
endobj
2479 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 510.163 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 304.57 null ] >>
endobj
2480 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 499.204 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 293.611 null ] >>
endobj
2481 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 488.245 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 255.753 null ] >>
endobj
2482 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 477.286 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 244.794 null ] >>
endobj
2483 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 466.327 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 233.836 null ] >>
endobj
2484 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 455.368 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 222.877 null ] >>
endobj
2485 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 444.41 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 211.918 null ] >>
endobj
2486 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 433.451 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 200.959 null ] >>
endobj
2487 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 422.492 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 187.011 null ] >>
endobj
2488 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 411.533 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 176.052 null ] >>
endobj
2489 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 362.08 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 165.093 null ] >>
endobj
2490 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 351.121 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 154.134 null ] >>
endobj
2491 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 340.162 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 143.176 null ] >>
endobj
2492 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 329.203 null ] >>
+<< /D [ 2447 0 R /XYZ 81.145 132.217 null ] >>
endobj
2493 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 318.244 null ] >>
+<< /D [ 2447 0 R /XYZ 93.716 102.47 null ] >>
endobj
2494 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 307.285 null ] >>
-endobj
-2495 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 296.326 null ] >>
+<< /D [ 2447 0 R /XYZ 93.716 92.843 null ] >>
endobj
-2496 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 285.367 null ] >>
+2446 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F16 422 0 R /F82 699 0 R /F30 172 0 R /F25 609 0 R /F80 425 0 R /F55 201 0 R /F42 722 0 R /F46 721 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2497 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 274.408 null ] >>
+2499 0 obj
+<< /Filter /FlateDecode /Length 2706 >>
+stream
+x[ˎ# WF#Q h40nwe0 U6E^%OO]U(J?. Lo/ן_}qA欐p/7qin/F Ƶo/+q.Ǿ_o\,sZK
+0( tC@c8& 2H}xUr x=_tOVJГ飄zk[V2$Qp!V;^~`DT3䊷ܞ*L%i$gx/Z_Sk^s[ݷ!PtvY*Yжڅޡ6m̀g0ӛIAYw(QVS)7vʼnm{CpYc0dcq]UR̪]`/II^ꖽsųƖ1yH(̀`02ZEc
+KFe
+G7L LW*wqҫHj ߍ׷$7.mZmq϶PM%NN\S-H\vTI3U}MbDq:N&[Juj "}baCo6hi!%#
+<TLݭž3 | tKSE )nf5zI1iSI'"fs.{IYRӔR
+=PJ=!Ji[J<B2􋔲,FIR2=*~H)5
+,;P.jR3xcۦRnx1O {{K|mŜXmg¥ULOc}AKf4ʭ\8$\YQaPX%E p|R
+ot ͦF.G; _Ɔޯy o|XY+L̜pYS-zbrg׊HbJPkӲaЙF(݆t<&ͤIBs?XdQCa@_{BȧEA9zt]+~Str{"+[SoB0UIFwl
+r<h!PŞ_Cł޶W3믖#Iw3A>=[<`Le յw=4s#8ܮ1d-d`#7MUnA_-tQ7wsU
+09sxX/0
+endstream
endobj
2498 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 263.449 null ] >>
+<< /Type /Page /Contents 2499 0 R /Resources 2497 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R /Annots 2546 0 R >>
endobj
-2499 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 252.49 null ] >>
+2546 0 obj
+[ 2496 0 R ]
+endobj
+2496 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 486.922 371.024 498.877 382.979 ]/A << /S /GoTo /D (section.0.12) >> >>
endobj
2500 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 202.749 null ] >>
+<< /D [ 2498 0 R /XYZ 78.37 808.885 null ] >>
endobj
2501 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 191.79 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 768.829 null ] >>
endobj
2502 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 180.831 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 728.979 null ] >>
endobj
2503 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 169.873 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 718.02 null ] >>
endobj
2504 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 158.914 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 707.061 null ] >>
endobj
2505 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 147.955 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 696.102 null ] >>
endobj
2506 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 136.996 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 685.143 null ] >>
endobj
2507 0 obj
-<< /D [ 2457 0 R /XYZ 81.077 111.165 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 674.184 null ] >>
endobj
2508 0 obj
-<< /D [ 2457 0 R /XYZ 94.613 80.331 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 663.225 null ] >>
endobj
-2456 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F23 660 0 R /F26 662 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F52 770 0 R >> /ProcSet [ /PDF /Text ] >>
+2509 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 652.266 null ] >>
endobj
-2514 0 obj
-<< /Filter /FlateDecode /Length 2645 >>
-stream
-xڽZKo8Wxo6Qaг9ؙ
-T./֮mIkתWfml emnG/ q26)Iig!o m<VIQ\;<
->+g'Y TP85,Q m|wVS0QoٵbzZ[a
-?zCϬ {160}[ m@nVa7T:Pҝ=dU9aE; ԘD5N=w(:VUUipz4OfnлMlq8h "ds̾}p4Ϫz:\稯Yg|Y2
-E{@:/i9|{ *>0>>뙗)wAצIm @:Z8DC@_XâNx x6уz^*
-ഏ'ʶ. :st"MVxoZ]ㆲ9ʡ@EȋIxuϣ;Wc^g5B
-WbsO
-hj: 4
-622Gf3D0.K bD0=ůQpRON*^Fpzki1\C6-n O|1J *h8.΃Bo>;"AGnvp=FGFh܇<6JiZrAQb|"xB>4D~ [;3\N
-endstream
+2510 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 641.308 null ] >>
endobj
-2513 0 obj
-<< /Type /Page /Contents 2514 0 R /Resources 2512 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R /Annots 2562 0 R >>
+2511 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 630.349 null ] >>
endobj
-2562 0 obj
-[ 2510 0 R 2511 0 R ]
+2512 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 619.39 null ] >>
endobj
-2510 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 460.302 706.917 472.257 718.872 ]/A << /S /GoTo /D (section.0.13) >> >>
+2513 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 593.487 null ] >>
endobj
-2511 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 487.585 430.047 494.046 442.537 ]/A << /S /GoTo /D (Hfootnote.9) >> >>
+2514 0 obj
+<< /D [ 2498 0 R /XYZ 81.145 582.528 null ] >>
endobj
2515 0 obj
-<< /D [ 2513 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 571.569 null ] >>
endobj
2516 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 560.61 null ] >>
endobj
2517 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 707.216 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 549.651 null ] >>
endobj
2518 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 696.257 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 538.692 null ] >>
endobj
2519 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 670.384 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 485.89 null ] >>
endobj
2520 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 659.425 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 474.931 null ] >>
endobj
2521 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 648.467 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 463.973 null ] >>
endobj
2522 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 637.508 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 453.014 null ] >>
endobj
2523 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 626.549 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 442.055 null ] >>
endobj
2524 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 615.59 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 431.096 null ] >>
endobj
2525 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 604.631 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 420.137 null ] >>
endobj
2526 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 593.672 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 409.178 null ] >>
endobj
2527 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 582.713 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 371.32 null ] >>
endobj
2528 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 571.754 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 360.361 null ] >>
endobj
2529 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 533.927 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 349.402 null ] >>
endobj
2530 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 522.968 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 338.443 null ] >>
endobj
2531 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 512.009 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 327.484 null ] >>
endobj
2532 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 501.05 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 316.525 null ] >>
endobj
2533 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 490.091 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 305.567 null ] >>
endobj
2534 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 479.132 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 294.608 null ] >>
endobj
2535 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 468.173 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 256.75 null ] >>
endobj
2536 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 430.346 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 218.892 null ] >>
endobj
2537 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 419.387 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 207.933 null ] >>
endobj
2538 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 408.428 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 196.974 null ] >>
endobj
2539 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 397.469 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 186.015 null ] >>
endobj
2540 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 386.51 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 175.056 null ] >>
endobj
2541 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 375.551 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 164.097 null ] >>
endobj
2542 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 361.634 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 153.138 null ] >>
endobj
2543 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 350.675 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 142.179 null ] >>
endobj
2544 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 339.716 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 116.276 null ] >>
endobj
2545 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 328.757 null ] >>
+<< /D [ 2498 0 R /XYZ 81.145 105.318 null ] >>
endobj
-2546 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 317.798 null ] >>
+2497 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2547 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 306.839 null ] >>
+2549 0 obj
+<< /Filter /FlateDecode /Length 2309 >>
+stream
+xZɎ6WåFm{䚜7,QA2mL^%_~nE
+.3o Ѳg\K9HjIȟ[9 /k<ZKkWTGLA|bW\ ߍ{Z'[`V
+ҽ)J q"ai!"穩(c&bW!sQCAD\2mѱTYl$jI$Z@Z~dc#cJ0!f+CM3%޷)`6ԴnA)N
+@ HdոѮpW tWTXRcuF0p5#%ufNWj3OoAQk6Nn>ޅi,Rv-rrdI{ђ\"}uSE'9:˞Cvr{^ uKrMc8aN,{|6_j#zBB+̤2@Hkמr4I$ř9~ U*y'TW8 ẁ9Xٳ[ 5\yC)bl VDFA6PnWK-lU=,T!?øGj]`NBHiNG'3,J? hρtCQΉS٢>).VHj$S6ʅ'+&7*_/T<oI&WϨKM1fܨ' O5}K ӺIa(_sMNtrZZ
+HP4 {%M*'x dd2`\5 Z#\~̫\z  ጇoѵvƪvZY^z"N5(]]y5V\ҟ
+SlǏV[;3y8V)L!a(dg($#cy_#p_۔/JV\Y.%
+C>9pSJrUW;e Cwo25jp1.@)0:>ls5 !V^!0c߄ͨ)NzBOxX89W)Pm-^?'|2`P$漮􄦔d+gJ闎R0!吱1WJ(0?뜉Y iq2WtJM)>J6pNi oVn׾ : ou>6ai홣vB`]ZA۴C7McX9U|pNYy
+哇8%W!6@{'e1)mcFݠnh ӳewnL0-2iqZ˫gm ݳ:>t&}穽=^#3s Ri0zNa=
+Yy%3X
+endstream
endobj
2548 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 295.881 null ] >>
-endobj
-2549 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 256.091 null ] >>
+<< /Type /Page /Contents 2549 0 R /Resources 2547 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R >>
endobj
2550 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 245.132 null ] >>
+<< /D [ 2548 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+45 0 obj
+<< /D [ 2548 0 R /XYZ 79.37 771.024 null ] >>
endobj
2551 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 234.173 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 660.652 null ] >>
endobj
2552 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 223.214 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 649.693 null ] >>
endobj
2553 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 212.255 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 638.734 null ] >>
endobj
2554 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 201.296 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 627.775 null ] >>
endobj
2555 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 190.337 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 616.816 null ] >>
endobj
2556 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 179.379 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 600.876 null ] >>
endobj
2557 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 168.42 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 589.917 null ] >>
endobj
2558 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 157.461 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 578.958 null ] >>
endobj
2559 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 146.502 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 536.119 null ] >>
endobj
2560 0 obj
-<< /D [ 2513 0 R /XYZ 81.077 120.629 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 507.227 null ] >>
endobj
2561 0 obj
-<< /D [ 2513 0 R /XYZ 94.613 89.795 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 478.336 null ] >>
endobj
-2512 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F46 176 0 R /F23 660 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F56 769 0 R /F52 770 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+2562 0 obj
+<< /D [ 2548 0 R /XYZ 81.145 449.444 null ] >>
endobj
-2566 0 obj
-<< /Filter /FlateDecode /Length 2358 >>
-stream
-xڭY[o~ϯ 4\%}^nч BPlV#K$.I1ӾX2g3ߌl3ó7xx"o>}ٌ#Fg$g$K2Q_u>}j %%K$gاyˬ\of"k{s(cvI)0":)uRCgL!™ۛ]HSOifq)6nI?NXbve4A$Nl&ZKLwYMz)sx<UDD;p$00f
-HSX!ah]=qt1u\q~K̝zƒppt-ŔKv}>֧"QLyEkX6y+X0oI^e4OC-2I< <eߒhWh"4a[D?,oX yZж`I?fɶ<,v ™udڎqWVd'Xh^3@,Ot;ƥlH@eW(FHch)<j틏u]zqwe %%YRsT/X0U;QޛS$?QkŀZ蛛U.cX*8IF౓K%'2_<K
-˒d0d$B*' s)up*AYРį;"X#1q\'`}kҠ)l@.{rahO`KlvN(M͗]n犬2k;jY]cr{w[)KkYk'ljm'j4yRDz%
-])G2jca@08ppVbG;pyTt퐻WC..#FcgfVR
-IWH)3[z8ڼ?~
-̾<KQsQ~pk
-}=< )PpR BdS) L;eW}eP\#"Nҙi[7k|,rIdoi`=# 1H xJ/1S$Aḥ(*m1(|QU5-?Oϣߟ2K뵱8 = Wa1
-giU둴+8*6UuŃ~oyV;Pu1jJGkД,+QWݛU(A@k솙u]YbE t4(6M}_fbzNk|/)W۽-*uN @ .@ +>-Z]Kis3;S]86EUYpߗ(s`_ v
-g-^U"7j;9`W]fs3Òԫ(ѳ]5ᏳmL[Nf%>YpL MiصR_q1re ju5tO( 84#z[}o~vaf;i=
-_#"RaR@ ݊)*ܗIb W`?T6{L,z v_ A ŔP>ޡ><]ṅfi 0v PƐ]Y>3Lctpĸl-*U9ժ_m,* /03Y +ަKt]2g$~H,MiR
-jJS|B#E`-Sp7Nf!@ɗJpI:yRJ%l6 =7EB<U& ){:@ْڂgՍ&c@'~ٌ˭QƔ x]mh2ϴF"q;g]@َA':@4xee[%@eHdW%: To*?1 }u&Z]!#*ǔ΃G1V"LhTFZ#QPRAdjq?(߸
-ฐ3{>
-)
-endstream
+2563 0 obj
+<< /D [ 2548 0 R /XYZ 81.145 438.485 null ] >>
endobj
-2565 0 obj
-<< /Type /Page /Contents 2566 0 R /Resources 2564 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R /Annots 2605 0 R >>
+2564 0 obj
+<< /D [ 2548 0 R /XYZ 81.145 427.526 null ] >>
endobj
-2605 0 obj
-[ 2563 0 R ]
+2565 0 obj
+<< /D [ 2548 0 R /XYZ 81.145 416.567 null ] >>
endobj
-2563 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 486.924 557.325 498.879 569.28 ]/A << /S /GoTo /D (section.0.13) >> >>
+2566 0 obj
+<< /D [ 2548 0 R /XYZ 81.145 405.608 null ] >>
endobj
2567 0 obj
-<< /D [ 2565 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 394.65 null ] >>
endobj
2568 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 383.691 null ] >>
endobj
2569 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 372.732 null ] >>
endobj
2570 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 361.773 null ] >>
endobj
2571 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 350.814 null ] >>
endobj
2572 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 339.855 null ] >>
endobj
2573 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 672.194 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 328.896 null ] >>
endobj
2574 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 317.937 null ] >>
endobj
2575 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 306.978 null ] >>
endobj
2576 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 254.176 null ] >>
endobj
2577 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 243.217 null ] >>
endobj
2578 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 218.311 null ] >>
endobj
2579 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 207.352 null ] >>
endobj
2580 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 174.475 null ] >>
endobj
2581 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 163.516 null ] >>
endobj
2582 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 152.557 null ] >>
endobj
2583 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 535.706 null ] >>
-endobj
-2584 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 2548 0 R /XYZ 81.145 141.598 null ] >>
endobj
-2585 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 513.788 null ] >>
+2547 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2586 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 502.829 null ] >>
+<< /Filter /FlateDecode /Length 2203 >>
+stream
+x[Ɏ7+fȪF#9-59!d7.IdA֨Z_I嗫'/C?pBzdҨ_߾Iix ./7_I+RB.~ nj a<Qy)a<1wK8e^~gʵq5-2ɳR)/eWoYsZ_tSOwLyj"i^
+pz9jWIj5jрp8-z4%[uD=9+٭`%jͲdon`teW%/4r4EԌcl|tQ`4rZD$r EOg5kz#215ẃ
+Ы.H*6gsQٙsII!:QCj]9$p\Pz.9Pfl>I[vJgK̿.%MU.~f]p)tA 6Xxj%8# (@bYm^X.EF6M: uU.Q6{btO;T4w?̱L,x>/wYc(@1ZUTRͿKXs}WkvFS\R蔄2k<xVTKeH̊T' XzL:#/̥p{zy1BH`.8As&[b4v>= l ӔVyN1>)/,DYR, vK| SC:mB3{Q4 )@$"'9OIHgE$sCJ#A9H}nTYzťxϋ?Wu譿sxѿ7'U}Vn&j:8)BF %QJH:/L2?sAҿ~G-Yq):(]|ktA l"(٤-t~Au|G6~bFO،3eFBy
+ͣҞe 0#Z5/=?fjEF!Cӱ]L=c%7LN`~vJ,B\B
+X5ι}t@ЭCN釰J֛/6X\U{YH Uiet5Z- vG
+~$;+W車xdVHyxxށ. G` g ̢CZ9__R9-zn>ʝMa5.|{mܚqm'-
+QN"h3lgDX5٦(oQW-^Yzn &\]iAއP:lu(?Q{a+
+iq>3,6BivsBkK\1>ӊ!|sU&5u6'<#Hv8͖06 slh]A߬ g̷@uq2fgnzӨC:`IZDmst\
+.lz䗃&Hܟx!Ln{Ҽ-pXQ*z BTS:|2cyge檑)T{rlkN9m^D;)<VA퍐=b>]rO m{v 1W/ B$n (e
+%ٲ;J9r"M Qw5xaм$k((}M5}#[bjm/۫fcJz}ܑ\V|8#@"^z7Yz~RZuZ-<Pcd]G脔Vɲ{C:`qG̽!(/-/@, X>Cb(ĮCShb4ns@?s[X4LJ=#l}%aPs
+%e9ZZ"zΫ9Z>(B
+endstream
+endobj
+2585 0 obj
+<< /Type /Page /Contents 2586 0 R /Resources 2584 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R >>
endobj
2587 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 2585 0 R /XYZ 78.37 808.885 null ] >>
endobj
2588 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 730.971 null ] >>
endobj
2589 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 720.012 null ] >>
endobj
2590 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 709.053 null ] >>
endobj
2591 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 698.095 null ] >>
endobj
2592 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 687.136 null ] >>
endobj
2593 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 676.177 null ] >>
endobj
2594 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 665.218 null ] >>
endobj
2595 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 654.259 null ] >>
endobj
2596 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 643.3 null ] >>
endobj
2597 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 328.483 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 632.341 null ] >>
endobj
2598 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 621.382 null ] >>
endobj
2599 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 291.621 null ] >>
-endobj
-49 0 obj
-<< /D [ 2565 0 R /XYZ 79.37 236.354 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 610.423 null ] >>
endobj
2600 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 122.998 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 599.464 null ] >>
endobj
2601 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 112.039 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 588.506 null ] >>
endobj
2602 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 101.081 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 557.621 null ] >>
endobj
2603 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 90.122 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 546.662 null ] >>
endobj
2604 0 obj
-<< /D [ 2565 0 R /XYZ 81.077 79.163 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 497.846 null ] >>
endobj
-2564 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+2605 0 obj
+<< /D [ 2585 0 R /XYZ 81.145 486.887 null ] >>
endobj
-2608 0 obj
-<< /Filter /FlateDecode /Length 2194 >>
-stream
-xڽZKoS#Ab"؃:Ȳ,yH&w&1i/-G/97Ǜp"7ݼ 醡HaJ6 ()0
-ΛS/^>hP$U6EĔM\fO,mrNPgx&KEwHoCC2]G3ƈ_ϦŒgI
-K2[-|ƬTţ@Qw.էSVUg\POF>a+
-h_z2w=]m&C"/|KsKX:749i<Cz5aIr^ߓZ67EޜWĈD*ZD$P'^`yǴȒ
-֚MƇh2ׄ`:"9f*^0Oyyy{1vҴU-BRs1[T7]
-aY3*HbAV# Y.&B5iiFkյt1EX
-{ME-+!utb=Da쵌h
-# #(ѸّemPq!$p]܏8u<ǃ{PUĜ6x3?/wǾSѭULCTHDS7uS9sޕ=0uN*zKz/$򻫗Cs reঢ.;sy)m>TU&m=uWdO=_VRO6lʐⓛpw5Bltq%^M/&(;5)+WFEoES ~e~9`?d+
-^vgȞp <d7[Hs$iAB{6ɧimmK:!O6ULqJrطZo$Fcfn:83I.D
-ɡn|u_z% % (˻dX"͖">_"ەuYߜQgw`gZW:ȏ5= %uSW} ʛ6i4.s\􌦯_]z0@A*~SU=IRVb37Ϫ3kSl3;h8H)
-3wZ /] ؃5[c^TO*Z'w 7fJ"T
-'A]7PНmʯtZ?~NO1k  }(*PWq_z$<S6qDg fW'ɪV 7:(=@3lmw0ODFAcoD[\6H ԡYsX 3e(Iq
-/oO|ei44&U^at0+ab]})SS3'W頵1빤T;ѷAӱX=M/W= ap%
-Ǥ^{;gAS+W堽%yo>:jmlHsø(S*C~A'Q8RHɩ,؋(UX9v XA'mnK2x*{XA DvGpy\lgIrA{;:f _w)EOIJ?;Ѷ5+Mhk._$-Yp~rg+h*ihmg?HIQʯ/ W$@>ywM\G
-endstream
+2606 0 obj
+<< /D [ 2585 0 R /XYZ 81.145 475.928 null ] >>
endobj
2607 0 obj
-<< /Type /Page /Contents 2608 0 R /Resources 2606 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R >>
+<< /D [ 2585 0 R /XYZ 81.145 464.969 null ] >>
+endobj
+2608 0 obj
+<< /D [ 2585 0 R /XYZ 81.145 454.01 null ] >>
endobj
2609 0 obj
-<< /D [ 2607 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 443.051 null ] >>
endobj
2610 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 408.182 null ] >>
endobj
2611 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 367.335 null ] >>
endobj
2612 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 356.376 null ] >>
endobj
2613 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 704.721 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 345.417 null ] >>
endobj
2614 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 676.26 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 334.458 null ] >>
endobj
2615 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 647.799 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 323.499 null ] >>
endobj
2616 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 619.338 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 312.54 null ] >>
endobj
2617 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 608.38 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 301.582 null ] >>
endobj
2618 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 597.421 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 290.623 null ] >>
endobj
2619 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 586.462 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 279.664 null ] >>
endobj
2620 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 575.503 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 268.705 null ] >>
endobj
2621 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 564.544 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 257.746 null ] >>
endobj
2622 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 553.585 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 246.787 null ] >>
endobj
2623 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 542.626 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 235.828 null ] >>
endobj
2624 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 531.667 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 224.869 null ] >>
endobj
2625 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 520.708 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 213.91 null ] >>
endobj
2626 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 509.749 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 202.951 null ] >>
endobj
2627 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 498.791 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 191.992 null ] >>
endobj
2628 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 487.832 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 181.034 null ] >>
endobj
2629 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 476.873 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 170.075 null ] >>
endobj
2630 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 425.363 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 159.116 null ] >>
endobj
2631 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 414.404 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 148.157 null ] >>
endobj
2632 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 390.575 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 137.198 null ] >>
endobj
2633 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 379.616 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 126.239 null ] >>
endobj
2634 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 348.463 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 115.28 null ] >>
endobj
2635 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 337.504 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 104.321 null ] >>
endobj
2636 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 326.545 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 93.362 null ] >>
endobj
2637 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 315.586 null ] >>
+<< /D [ 2585 0 R /XYZ 81.145 82.403 null ] >>
endobj
-2638 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 261.438 null ] >>
+2584 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F68 181 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2639 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 250.479 null ] >>
+2641 0 obj
+<< /Filter /FlateDecode /Length 2766 >>
+stream
+x[͎ S FAdn=%^2׏(mLgArE i zھ>}YqQ;!O"4qq.ƍ|v f\CUzyυ盱Ǽ1ҵz?Rz7ܼNJLp"9V>#X %s eN>߄ j;YϤXPL>V<;~%<J;(';{zz8ޚk +5JwrK=}in?"N=qd)#ɭ1oUczZ\?o<mGM|R~5Z&6re9
+`T[S4#q.<ьcn46>2G~scyGj-ʶ)l% I+[/=o(ˬ47iUsŞyāt[6F5:mTVJƔ->7zz"b̋ 9C]sf<#i*nfB^Sh<L:\ʙ<S ml%gmַ8R!zǻтH#$o9qiܲCK)jF 榡S =RB H(qUMPb#HՎ[몿bA[ͤV@2'F1s\ OrzCA6$L` Y1Q98U5mޭIA0d.j}}hɔQ3a%<7P
+z#66c:)3kvaչ^(kH;"A/YvONg8p B+f]9$-EӲ !^=Yf%"0K̉1q5yԂ{yg&dHO((Sf"vF؅V\jjH~j/B%Г7d>UF G )Y{ rmH`K)G)JVtfv4G2#s1>uGÊo;n{1%O%Rfg偉%KT5Yop^5I#d<Jmb G^6A" J%rLݪ6
+4[jsn )Ct\]>)jN
+m ~¤xdAlZ3'Tl/+h q4
+d&_J,v$כRl$ݮKr-(ѯkv
+?ns
+E47}JT0Mn\5vp?݅)
+q6VSmOeJ_]͟u sAK;KZr%0grfdi9󴪮0Jc{#>{3omT:o3x٧>DsUP4&k["=>oo3$UBX,`)K B8*`Ia*Mɟ`ញ(-ZQ)sqX6ig6H.7>z7!dҕ!"0dK2nrʡ40C-(J?աK]֥g+C# 8ԑɥdOh
+|HcҩXM.*_
+DԟY=u*B΍LAߵPr&EO!SVJ:8+}뷧_~ Xe~ U1#?.ySɈ՝\xsLo?ņ~w*dVng(j>^OP62@Fr|•:GqM!Jm8 YJ8M#ur$˧i[;'&N z~acm/|6 ?WYo;;A%prf0àiJ'~iUrgOltLa
+_#EFxn+
+endstream
endobj
2640 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 239.52 null ] >>
+<< /Type /Page /Contents 2641 0 R /Resources 2639 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2242 0 R /Annots 2684 0 R >>
endobj
-2641 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 228.561 null ] >>
+2684 0 obj
+[ 2638 0 R ]
+endobj
+2638 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 371.814 513.489 382.24 526.218 ]/A << /S /GoTo /D (Hfootnote.10) >> >>
endobj
2642 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 217.602 null ] >>
+<< /D [ 2640 0 R /XYZ 78.37 808.885 null ] >>
endobj
2643 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 206.643 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 768.829 null ] >>
endobj
2644 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 195.684 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 757.87 null ] >>
endobj
2645 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 184.725 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 746.912 null ] >>
endobj
2646 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 173.767 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 694.11 null ] >>
endobj
2647 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 162.808 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 683.151 null ] >>
endobj
2648 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 151.849 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 672.192 null ] >>
endobj
2649 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 140.89 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 661.233 null ] >>
endobj
2650 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 129.931 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 650.274 null ] >>
endobj
2651 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 118.972 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 639.315 null ] >>
endobj
2652 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 574.558 null ] >>
endobj
2653 0 obj
-<< /D [ 2607 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 563.599 null ] >>
endobj
-2606 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+2654 0 obj
+<< /D [ 2640 0 R /XYZ 81.145 510.797 null ] >>
endobj
-2657 0 obj
-<< /Filter /FlateDecode /Length 2046 >>
-stream
-xZMoϯ0E⅏ZL t^[YS-d)dt{/I+z0ƒHKKx_>?0H*b@/BBI$aw7Te/>Pr[T싶y
-rj"pSIcWn h)H8JP1m˺ mVXܘʶ볍OTUDԂAyyM"PcDwuL%鐟<0ou%Ԝ=믥m)4G%Z(
-:gf6 U:?]T%FM333@ydf066:F+<cuU|FLff"ąP R zH
-\.lS]: Z)3se1ah̔J(1A_C' |WM(>w<]4]z^l[cہ?FO_'T4G8(Is!B"Iҷ5Mx4B ,͒.B1a]B1OJs")ͱY`mS<U.yK!5"!b8F5wdA 972'9cVoE1Nu0Q'}:9<L3e4(B4)D`Vu NdH@$%A&ALPX&4I"tz8A&,) $Hؖ$(B l̂1HDM1:omLV侩QH@D%hN%:I"M,
-sfe{Jx Ɠw[pm;}CwFmc ͱ+9tд،ncUحgA[l]&. Ee/7=oA?lƶmAkε_NݦÎ_ו~_0D,Mn}Y_>2rѝۭhInw{84~ϲma_|i>mtFӍ0X]&qߤgp0Q QiGo$>g/]oٶX H2U`<ye DH`<J}| "2$4m_[YKmb2&;7{jVWW:1X!i7!39=Gṿƕ4[M.H GY Pp\V,CO[7~a[e?4͏}sGzvל;M_6`
-endstream
+2655 0 obj
+<< /D [ 2640 0 R /XYZ 81.145 499.838 null ] >>
endobj
2656 0 obj
-<< /Type /Page /Contents 2657 0 R /Resources 2655 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2254 0 R >>
+<< /D [ 2640 0 R /XYZ 81.145 488.879 null ] >>
+endobj
+2657 0 obj
+<< /D [ 2640 0 R /XYZ 81.145 459.987 null ] >>
endobj
2658 0 obj
-<< /D [ 2656 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 449.029 null ] >>
endobj
2659 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 438.07 null ] >>
endobj
2660 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 427.111 null ] >>
endobj
2661 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 416.152 null ] >>
endobj
2662 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 405.193 null ] >>
endobj
2663 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 389.253 null ] >>
endobj
2664 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 378.294 null ] >>
endobj
2665 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 653.265 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 367.335 null ] >>
endobj
2666 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 356.376 null ] >>
endobj
2667 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 345.417 null ] >>
endobj
2668 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 334.458 null ] >>
endobj
2669 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 291.619 null ] >>
endobj
2670 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 280.66 null ] >>
endobj
2671 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 269.701 null ] >>
endobj
2672 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 258.742 null ] >>
endobj
2673 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 247.783 null ] >>
endobj
2674 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 236.824 null ] >>
endobj
2675 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 207.933 null ] >>
endobj
2676 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 196.974 null ] >>
endobj
2677 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 186.015 null ] >>
endobj
2678 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 170.075 null ] >>
endobj
2679 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 159.116 null ] >>
endobj
2680 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 148.157 null ] >>
endobj
2681 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 137.198 null ] >>
endobj
2682 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 437.076 null ] >>
+<< /D [ 2640 0 R /XYZ 81.145 126.239 null ] >>
endobj
2683 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 2640 0 R /XYZ 93.716 95.193 null ] >>
endobj
-2684 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 415.158 null ] >>
+2639 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F16 422 0 R /F68 181 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2685 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 404.199 null ] >>
+2687 0 obj
+<< /Filter /FlateDecode /Length 1794 >>
+stream
+x[n8+]M;qsm0יui!UUv`eY|*XTៃ:|P'||8=|?y} A9MSßJc=IO1~?9ðҨ@d\$6(Iq$#<}P3J{MIDk~K##؆r3|-G{ʱ9?c%҈\k|׈vn/6KR&ddf(E1t WL!/˾?OH'=cى(zX>ID7%!$5Yϟk8}E <71zMl@3GD)sOtܱf9آ:_G_Stb^Hqv>$5\
+K({i$Jۺo~"Tn
+elo 9 !@FKpǍ+'3oA^yYL=ҽ Lց9P= % ,'^2Ӏ4Kķgu啟KJ+K4t{
+XqIyM06_ZqvIeo7uWu5
+endstream
endobj
2686 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 393.24 null ] >>
-endobj
-2687 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 382.281 null ] >>
+<< /Type /Page /Contents 2687 0 R /Resources 2685 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2688 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 2686 0 R /XYZ 78.37 808.885 null ] >>
endobj
2689 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 768.829 null ] >>
endobj
2690 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 757.87 null ] >>
endobj
2691 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 746.912 null ] >>
endobj
2692 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 735.953 null ] >>
endobj
2693 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 724.994 null ] >>
endobj
2694 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 714.035 null ] >>
endobj
2695 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 703.076 null ] >>
endobj
2696 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 241.808 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 692.117 null ] >>
endobj
2697 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 230.849 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 676.177 null ] >>
endobj
2698 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 219.89 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 665.218 null ] >>
endobj
2699 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 208.931 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 654.259 null ] >>
endobj
2700 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 643.3 null ] >>
endobj
2701 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 187.014 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 632.341 null ] >>
endobj
2702 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 621.382 null ] >>
endobj
2703 0 obj
-<< /D [ 2656 0 R /XYZ 81.077 111.297 null ] >>
-endobj
-2655 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2686 0 R /XYZ 81.145 610.423 null ] >>
endobj
-2706 0 obj
-<< /Filter /FlateDecode /Length 2037 >>
-stream
-xZo۶_!`Va6,`kpwmvR*HSan$Rsi:I.R{5Γܮ.0L NdL(8&ήb:ٖKh0'r =60l_/wZu8Tmשad6M6e5lƼ|籮ʺv/-7Nծ1o<֘h 0`-Cey]̐VY_o1-p_
-\kYrU|l(kr eb)*~P<[Z]F,!-4 VjW/旂ɨD z7J{8o@y$ih92e]?n۪f[&̽mkPo`[C$։maK’@H*8M<Ôt22""!C"O2p<D7Uâ_rgrue*)nqcƿH
-&̩=MBt8բ{zx%S(ϝy>3kG
-hAN[)c [X\Hxxa ;<Ao6mQw=WCg9S~b R VPևpSm&ԙ[ys;8}I?@ y.)M!
-
- e:1"^e<HZ<JgPӶ.Y`v!\'V_Asm VaTt)Q)i\(J
-d)He74 5M$ R}pQXϿ̳LQq,[sA峻%g*w2#?[Uٿ7#9\k5qKHN>eZ\Kx78m'o\.틭5"江ZAO韨Bs<;OK$5~B .usL0{
-endstream
+2704 0 obj
+<< /D [ 2686 0 R /XYZ 81.145 599.464 null ] >>
endobj
2705 0 obj
-<< /Type /Page /Contents 2706 0 R /Resources 2704 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R /Annots 2760 0 R >>
-endobj
-2760 0 obj
-[ 2654 0 R ]
+<< /D [ 2686 0 R /XYZ 81.145 588.506 null ] >>
endobj
-2654 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 371.83 733.664 382.263 746.154 ]/A << /S /GoTo /D (Hfootnote.10) >> >>
+2706 0 obj
+<< /D [ 2686 0 R /XYZ 81.145 577.547 null ] >>
endobj
2707 0 obj
-<< /D [ 2705 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 566.588 null ] >>
endobj
2708 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 731.048 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 555.629 null ] >>
endobj
2709 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 720.089 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 544.67 null ] >>
endobj
2710 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 709.13 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 507.808 null ] >>
endobj
2711 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 680.387 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 496.849 null ] >>
endobj
2712 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 669.428 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 485.89 null ] >>
endobj
2713 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 658.469 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 474.931 null ] >>
endobj
2714 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 647.51 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 463.973 null ] >>
endobj
2715 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 636.551 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 453.014 null ] >>
endobj
2716 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 625.592 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 418.144 null ] >>
endobj
2717 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 614.633 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 407.186 null ] >>
endobj
2718 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 603.674 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 378.294 null ] >>
endobj
2719 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 592.716 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 367.335 null ] >>
endobj
2720 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 581.757 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 356.376 null ] >>
endobj
2721 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 570.798 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 340.436 null ] >>
endobj
2722 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 559.839 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 329.477 null ] >>
endobj
2723 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 519.437 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 318.518 null ] >>
endobj
2724 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 508.478 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 307.559 null ] >>
endobj
2725 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 497.519 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 296.6 null ] >>
endobj
2726 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 486.56 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 285.641 null ] >>
endobj
2727 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 475.602 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 269.701 null ] >>
endobj
2728 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 464.643 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 258.742 null ] >>
endobj
2729 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 435.899 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 247.783 null ] >>
endobj
2730 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 424.94 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 236.824 null ] >>
endobj
2731 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 413.982 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 225.865 null ] >>
endobj
2732 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 398.19 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 214.907 null ] >>
endobj
2733 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 387.231 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 203.948 null ] >>
endobj
2734 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 376.272 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 192.989 null ] >>
endobj
2735 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 365.313 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 177.049 null ] >>
endobj
2736 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 354.354 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 166.09 null ] >>
endobj
2737 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 343.395 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 155.131 null ] >>
endobj
2738 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 332.436 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 144.172 null ] >>
endobj
2739 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 321.477 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 133.213 null ] >>
endobj
2740 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 310.518 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 102.329 null ] >>
endobj
2741 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 299.56 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 91.37 null ] >>
endobj
2742 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 288.601 null ] >>
+<< /D [ 2686 0 R /XYZ 81.145 80.411 null ] >>
endobj
-2743 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 277.642 null ] >>
+2685 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-2744 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 266.683 null ] >>
+2746 0 obj
+<< /Filter /FlateDecode /Length 2315 >>
+stream
+x[r#7 +p)W-+U959ᾀT))Le< @牞~y7 5L/=DOdQԜb*vwJՖ^ҽ_ 'CR´@LP
+*HE#u CGgl܏JM{*@O9f%TK#|h4Hs7+YJ"ÑWcpJw{stUKK-k:H^^m$1}hir7cwi:'fI7G44n%DZEasfidZ]2j|bmzHLJ=D-*3>sN (=-V-0:Rvȃ8^PFU)*%sӉBfZϷWF%{y4uKxF i=z"R'Fۙ$GSd)D*{~0IN;zNMhu]J=.^"$<&m֍\0b5N;'EUe,v<.-@wJ%qO%1kG[r(%onݛc}{tviZƫ?UBwyXBKW]0k'+K(Y+_EKMΜR8Jȷw%p.mHR(>JWR2(?\I*èfϙF}ShP*/󵒿1s+ge6lJCE>pMTrG!x40@$|RHK^XG\ŚڣjY9@)|uTjebꡚ"woDr5SM <=6N26˄Js!%
+HBmڛ VM#3Z`9ch1:(h5~<OE
+B'%@}3$y H|_'$05yV~#[p h1`!53 Nv9)k'@CȄ1',p~,D+WxFejJY!ʀ%.<XY! 㖨:лvφzzh c)0Rٖ|@)լ"TIbZ`]g
+k!Otr#yӄż!SŸªYbP?jw1GH=*4+rq)Ur>1 ܺȡ)ã=rF8WJ@ܳ#$:xW4#V߸aqFGΖpK7T3kmV( c&uxd̒7@Ǭ uYd\K>YC3zNWAs{/e]:r/u =%]\ K<V+"$`qˉu uDΞy>C#䵋0'1mi[H(Kiu)_r!L+3~|3IHi@HxX;_vvUuA1l#/7
+@SWce=Zde;lu6(5χ';Csh6ch!\Z@$SI}}<jS>;q?1j t
+LYX?f.2cr9rŇ{,G{*H{ߏ
+endstream
endobj
2745 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 250.891 null ] >>
-endobj
-2746 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 239.932 null ] >>
+<< /Type /Page /Contents 2746 0 R /Resources 2744 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2747 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 228.973 null ] >>
+<< /D [ 2745 0 R /XYZ 78.37 808.885 null ] >>
endobj
2748 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 218.014 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 768.829 null ] >>
endobj
2749 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 207.055 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 757.87 null ] >>
endobj
2750 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 196.096 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 746.912 null ] >>
endobj
2751 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 185.138 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 735.953 null ] >>
endobj
2752 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 174.179 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 724.994 null ] >>
endobj
2753 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 163.22 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 714.035 null ] >>
endobj
2754 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 152.261 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 703.076 null ] >>
endobj
2755 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 141.302 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 692.117 null ] >>
endobj
2756 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 130.343 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 649.278 null ] >>
endobj
2757 0 obj
-<< /D [ 2705 0 R /XYZ 81.077 119.384 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 638.319 null ] >>
endobj
2758 0 obj
-<< /D [ 2705 0 R /XYZ 94.613 89.795 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 627.36 null ] >>
endobj
-2704 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F22 473 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+2759 0 obj
+<< /D [ 2745 0 R /XYZ 81.145 616.401 null ] >>
endobj
-2763 0 obj
-<< /Filter /FlateDecode /Length 1759 >>
-stream
-xڭZMoFW(jo-=d' hHJQq"ʲQ}H|ܙٝ73;|<񷫓,k9=ap DDH3B5\Ëò} `وpiBܻ{ F !I1; ㊰5崃ߏ
-\JY(~0{+?hgK0"2βþ(^8ns|:ϠBSE % `\;
-N(1($P hϖ&{U,.@<;ђF uyGJGԐotlp
-÷l[->JX^!\D
-l8GP
-N<.zkkG/</{Yk̷emԭgbxtt
-iiH>=ޘTr[(Vr4>1K ó5=3_ B5dAtIyE8?^pf k-^@ *Nڝ}ⶱ7{&dK$4W&e+=!HF[/ڿ=#
-hBo3}:W'(
-endstream
+2760 0 obj
+<< /D [ 2745 0 R /XYZ 81.145 605.442 null ] >>
+endobj
+2761 0 obj
+<< /D [ 2745 0 R /XYZ 81.145 572.565 null ] >>
endobj
2762 0 obj
-<< /Type /Page /Contents 2763 0 R /Resources 2761 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2745 0 R /XYZ 81.145 561.606 null ] >>
+endobj
+2763 0 obj
+<< /D [ 2745 0 R /XYZ 81.145 550.648 null ] >>
endobj
2764 0 obj
-<< /D [ 2762 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 539.689 null ] >>
endobj
2765 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 754.966 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 528.73 null ] >>
endobj
2766 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 744.007 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 512.789 null ] >>
endobj
2767 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 733.048 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 457.995 null ] >>
endobj
2768 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 722.089 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 447.036 null ] >>
endobj
2769 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 711.13 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 436.077 null ] >>
endobj
2770 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 700.171 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 425.118 null ] >>
endobj
2771 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 665.629 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 414.159 null ] >>
endobj
2772 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 654.67 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 403.2 null ] >>
endobj
2773 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 625.942 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 392.242 null ] >>
endobj
2774 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 614.983 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 381.283 null ] >>
endobj
2775 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 604.025 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 370.324 null ] >>
endobj
2776 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 588.248 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 359.365 null ] >>
endobj
2777 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 577.289 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 348.406 null ] >>
endobj
2778 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 566.33 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 337.447 null ] >>
endobj
2779 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 555.371 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 326.488 null ] >>
endobj
2780 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 544.412 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 315.529 null ] >>
endobj
2781 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 533.453 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 304.57 null ] >>
endobj
2782 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 517.677 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 293.611 null ] >>
endobj
2783 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 506.718 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 282.653 null ] >>
endobj
2784 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 495.759 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 271.694 null ] >>
endobj
2785 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 484.8 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 236.824 null ] >>
endobj
2786 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 473.841 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 225.865 null ] >>
endobj
2787 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 462.882 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 214.907 null ] >>
endobj
2788 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 451.923 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 186.015 null ] >>
endobj
2789 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 440.964 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 175.056 null ] >>
endobj
2790 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 425.188 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 164.097 null ] >>
endobj
2791 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 414.229 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 153.138 null ] >>
endobj
2792 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 403.27 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 137.198 null ] >>
endobj
2793 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 392.311 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 126.239 null ] >>
endobj
2794 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 381.352 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 115.28 null ] >>
endobj
2795 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 350.713 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 104.321 null ] >>
endobj
2796 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 339.755 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 93.362 null ] >>
endobj
2797 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 328.796 null ] >>
-endobj
-2798 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 317.837 null ] >>
+<< /D [ 2745 0 R /XYZ 81.145 82.403 null ] >>
endobj
-2799 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 306.878 null ] >>
+2744 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2800 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 295.919 null ] >>
+<< /Filter /FlateDecode /Length 2591 >>
+stream
+x\n8+" 0 XNgsm0S((;Ї,"E/]'Dw?ϧ7.Hf/>1{DR}Q*_(}Q*>qꢉt)QF$9IRU,+W~7zýx}}\$,d;;eYJwo=ë|fT|IwxsߛL=%
+\[XxNh6iRx}#bpҮrȮwjukZނL l+ly3"vշѩLutV©d&&DK=3lZ #
+ZUW!^sÔ&Lvank̏zbݖh|#EjGp;l]Nahq\F獮.߀J!NN1DO*Cv'+k,:/!(w S߽kɝ~
+ -z'Zj3\f8{uN!g26D Yk3\*b,Uh!T㹘0W=ryΤn>*V9nD;ZY6DH@šQB""~~|ڄu!|ܼb3 nKl \\ʉ&'%RoHiroD:E!fk͓U`vVe[mNZңب%ضw,uJN,G+ 9[ :˸dAO5X|wtB[D)f6Tzڕa4!kZ+ks&Ғ[n_cS^=du+¾OKv; 8!%Qq.oMHNV)awL;#gDj򤥤;Ibnnb9 $C ܄p([]i-!.v1WU8B рmswǶ;$̜Π6ͬ_B6ߦx粥Ñ)JSG[˪86}8^ZuC)P#k퓟n+6 ;&u,L
+5bcnf% V-G{686mfG @սo`% 90PtrCGX֒{iރhBI5Mk+]kYE%RTށ UTG̅AU3+A@9kIIrj,Lp|^Q))zK֒Z ¡w}{4b b'n-DEfqٓ%Jq魅Kȴ:<5.U:$ ELL\׊dZ
+NXrҫӘ(•(ɳ#uܴ'mEB= UG_=6K
+p)zIZ]H/W0[B'DiJ +`Pu_a-R?P-eH:nv+ZйHU7uM񤴑t`ۇ,RK:p@nH?
+endstream
+endobj
+2799 0 obj
+<< /Type /Page /Contents 2800 0 R /Resources 2798 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2801 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 284.96 null ] >>
+<< /D [ 2799 0 R /XYZ 78.37 808.885 null ] >>
endobj
2802 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 274.001 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 768.829 null ] >>
endobj
2803 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 263.042 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 757.87 null ] >>
endobj
2804 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 252.083 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 709.053 null ] >>
endobj
2805 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 241.124 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 698.095 null ] >>
endobj
2806 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 198.53 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 657.248 null ] >>
endobj
2807 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 187.572 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 646.289 null ] >>
endobj
2808 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 176.613 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 635.33 null ] >>
endobj
2809 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 165.654 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 624.371 null ] >>
endobj
2810 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 154.695 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 608.431 null ] >>
endobj
2811 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 597.472 null ] >>
endobj
2812 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 548.655 null ] >>
endobj
2813 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 537.696 null ] >>
endobj
2814 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 526.737 null ] >>
endobj
2815 0 obj
-<< /D [ 2762 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 515.778 null ] >>
endobj
-2761 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-2818 0 obj
-<< /Filter /FlateDecode /Length 1829 >>
-stream
-xڽZko6_a`_l`@b6À0d[Nؒ';͊"H%Sr@IxKK^^2,'\]h>` lp9?%2@Q=ЊQtp|2[g X P4\L|9SdU|9$8َl6u&qrUjaJh 1l*Nzt0.>.Ң#}
-S޺!$I6$M^ޙ&ebR *Vp;(2E Um_XƨRvn_=R[=;ڈWP9
--vgɲ~JUmk6,i n"HuF2 jLP${]a)l8ϋF ‡f[Z=8^5i\ut_`y,o~cSZvz`, >b[zjgR߈zV%Ӽ(fjl]וվOTcG4hżYR\'oƳt,u[}tlſY}YNͪyK_Y}NFMdH0Bf41|:~um1ޤesM>ؽ4-*ڲ93F1\BqY=YfiipfOes8!zzCL1dƅ !;5D/b!nNk[
-Ik:h!p|6j/ %-hRERh y}G=DRWKxW$vΞnk[$tZEW!s0@d>L
-p/RZ>\&_^5$DU+8 ?Z%`xiP#,uHVqJrep/Ԋ'B:Ja D{EWH`~fq@-FR_EGNP8O۬c/(z#{6 p;
-endstream
+2816 0 obj
+<< /D [ 2799 0 R /XYZ 81.145 504.819 null ] >>
endobj
2817 0 obj
-<< /Type /Page /Contents 2818 0 R /Resources 2816 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2799 0 R /XYZ 81.145 493.86 null ] >>
+endobj
+2818 0 obj
+<< /D [ 2799 0 R /XYZ 81.145 482.902 null ] >>
endobj
2819 0 obj
-<< /D [ 2817 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 471.943 null ] >>
endobj
2820 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 407.186 null ] >>
endobj
2821 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 715.533 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 396.227 null ] >>
endobj
2822 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 704.574 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 385.268 null ] >>
endobj
2823 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 693.615 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 356.376 null ] >>
endobj
2824 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 682.656 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 345.417 null ] >>
endobj
2825 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 671.697 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 334.458 null ] >>
endobj
2826 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 660.738 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 323.499 null ] >>
endobj
2827 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 649.779 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 312.54 null ] >>
endobj
2828 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 638.821 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 301.582 null ] >>
endobj
2829 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 627.862 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 290.623 null ] >>
endobj
2830 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 616.903 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 279.664 null ] >>
endobj
2831 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 605.944 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 268.705 null ] >>
endobj
2832 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 594.985 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 257.746 null ] >>
endobj
2833 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 584.026 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 246.787 null ] >>
endobj
2834 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 573.067 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 235.828 null ] >>
endobj
2835 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 562.108 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 224.869 null ] >>
endobj
2836 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 551.149 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 213.91 null ] >>
endobj
2837 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 540.19 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 202.951 null ] >>
endobj
2838 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 529.231 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 191.992 null ] >>
endobj
2839 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 518.273 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 181.034 null ] >>
endobj
2840 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 507.314 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 170.075 null ] >>
endobj
2841 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 496.355 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 159.116 null ] >>
endobj
2842 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 485.396 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 148.157 null ] >>
endobj
2843 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 474.437 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 137.198 null ] >>
endobj
2844 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 463.478 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 126.239 null ] >>
endobj
2845 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 452.519 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 115.28 null ] >>
endobj
2846 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 441.56 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 104.321 null ] >>
endobj
2847 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 430.601 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 93.362 null ] >>
endobj
2848 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 419.642 null ] >>
-endobj
-2849 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 408.684 null ] >>
+<< /D [ 2799 0 R /XYZ 81.145 82.403 null ] >>
endobj
-2850 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 397.725 null ] >>
+2798 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F19 182 0 R /F15 180 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2851 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 386.766 null ] >>
+<< /Filter /FlateDecode /Length 3347 >>
+stream
+x\Ɏ# SF} ynA) P{UIp].QE~\2Fo}(˷a7Ie~ ݬ&ڛьPn?{x)J{׏dߞ,qZ [b_t=%芛+V%)+ve%Prk@}8WR*6`ߋ'-@9Q emAG3Ah&mqžpKHtƊ\c™),c)M~Wv^}<*cT,o[
+(f5)Hj`Tҝ8Q/ 
+cM8
+?O5OTB0 ߒZ\<h ŰlEcBa$R\u?w)2MR^6οFgQ_cSIQ4 .x-Q90 }:FVJ3sKrbo; *3$GDS+2&? ӎ$(5geb7iy\Ҵ{S*:Xo>&հ/ՋgMi#~\oa(;Xd~}S⎷4)'(-=% f |<6NQ&V<Pq BSQ%K̕OsA)LCqu*
+F^4^'\{^s
+f&xJ Qr'̩b.u OLT
+'$#K:|K49ڪm@iy8
+w7J}&a΅%ҎrڧdBt"0r]"5oxQ(:*OCgRC9?ao5},'O󧵥 D~7te "K^
+QKwYOY 8Q-8Xc-'QYm[^t#_Ym;$Smߋ:J3
+wF>TTD]ךPf\8ɕu"&<伅[ڷR!˧RY-9`gSeX1:b*a*:]K_zeQM|$O=ިc99 OO#$>\'f$>/>w*Uiasg[YR띛2ӫj$H*l5c5!HO6wB)"2;1}쉩ĔEbXbҶ8S{]Qmm=hĩ$ʙKWNV*O,Kj5T2ݜgv:yz[?jj*(vt2H:3>|>ɇ"x|*x.f;w?xN:;39%?C@޺.haD(5-nHp~-0f "
+Xw]fxU-h>^Fzjμi;=᱖01,r[I6nY9)<6rDTk6hR(>rBSK.NT(k9-z ACI#5-JO]qSxVN ;a/6sCU?)s5#cYYlqF_4AYb멾\W(4Hdhi#$mV=b
+x:JY?9 NW4d:JJ0M1B&q:Lrܮ}7+aӅeclloŦY'
+"x[B 9vvi[pGWKCI_[Bt72qo3E98hՃ,>&gJz_m
+endstream
+endobj
+2850 0 obj
+<< /Type /Page /Contents 2851 0 R /Resources 2849 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2852 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 375.807 null ] >>
+<< /D [ 2850 0 R /XYZ 78.37 808.885 null ] >>
endobj
2853 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 364.848 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 768.829 null ] >>
endobj
2854 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 353.889 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 757.87 null ] >>
endobj
2855 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 342.93 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 746.912 null ] >>
endobj
2856 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 331.971 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 735.953 null ] >>
endobj
2857 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 321.012 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 724.994 null ] >>
endobj
2858 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 310.053 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 714.035 null ] >>
endobj
2859 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 299.094 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 686.17 null ] >>
endobj
2860 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 288.136 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 675.211 null ] >>
endobj
2861 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 277.177 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 664.253 null ] >>
endobj
2862 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 266.218 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 636.388 null ] >>
endobj
2863 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 232.203 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 625.429 null ] >>
endobj
2864 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 221.244 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 614.47 null ] >>
endobj
2865 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 210.285 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 438.193 null ] >>
endobj
2866 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 181.821 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 427.234 null ] >>
endobj
2867 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 170.862 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 416.275 null ] >>
endobj
2868 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 159.903 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 405.317 null ] >>
endobj
2869 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 148.944 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 394.358 null ] >>
endobj
2870 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 383.399 null ] >>
endobj
2871 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 372.44 null ] >>
endobj
2872 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 361.481 null ] >>
endobj
2873 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 350.522 null ] >>
endobj
2874 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 339.563 null ] >>
endobj
2875 0 obj
-<< /D [ 2817 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-2816 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2850 0 R /XYZ 81.145 328.604 null ] >>
endobj
-2878 0 obj
-<< /Filter /FlateDecode /Length 2335 >>
-stream
-xڵZ[o8~ϯ00/6аJ (P؇PlV+K^Ie9%JEtEP\x.ߡgqO$?>ބlƑd€ ~2۾Mf `& E\W\ePU-_1܎}O ><1EzƼe`j-,!1*\tNYfjв?P<S /3TTPF" sԅ$16v9UgQ<*}-h8: (k*: s+82iRVX_ӏQp=.F?\cq9CHvS T$@5qT}RlUyrZ-ל?%jgת/yzg;0CTv x>ХY_=g֊Ы,8 oB%CBրz 9 g.?.k|0P"0W^y^U1( RxT6G|m<0FDWx(cY_2߼!d]3s֠j(ɒ*get0r`UQ8
-܅!E
-q)
-G[ƣI@ˡR[>K!PVP@ I|!A+J\Sb.˨BQ]N
-6U̥4\PFl d1%uOՄDLXqi 45GX 2oN2s7=}l@gi|t>j՚ 20BI}8aahio*;HY8J(MY7 Kڻqk n}17fNl[ =&W]8HbiĉEHvI=Փ60-$O[=@<t:WjQmχUWf9sUm&uk,H=Lz]:#<p2DќIXG@7Apv}lȌJuʸ)󓯒T!:G'v}av$:Π]`q]K)vod.Ԙ
-ރ~mad 6Pyyila68f^3LN,cTύz$C
-H/۩poClsrd2TJO;U$(m[O>ڛSOWry Y' [+U8EU^-A7NaIf> ϧ{*!b,$w$$UΜ'D!òfNJ/A
-pq"z|U"IN{WggRc`\GGר8_KcZBt<>9H#^~?WV<`1R(-_wW=<
-endstream
+2876 0 obj
+<< /D [ 2850 0 R /XYZ 81.145 317.645 null ] >>
endobj
2877 0 obj
-<< /Type /Page /Contents 2878 0 R /Resources 2876 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2850 0 R /XYZ 81.145 306.686 null ] >>
+endobj
+2878 0 obj
+<< /D [ 2850 0 R /XYZ 81.145 295.727 null ] >>
endobj
2879 0 obj
-<< /D [ 2877 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 284.769 null ] >>
endobj
2880 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 273.81 null ] >>
endobj
2881 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 233.99 null ] >>
endobj
2882 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 711.053 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 223.031 null ] >>
endobj
2883 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 700.094 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 212.072 null ] >>
endobj
2884 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 660.046 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 201.113 null ] >>
endobj
2885 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 649.087 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 161.294 null ] >>
endobj
2886 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 638.128 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 133.429 null ] >>
endobj
2887 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 627.17 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 122.47 null ] >>
endobj
2888 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 612.028 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 111.511 null ] >>
endobj
2889 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 601.069 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 100.552 null ] >>
endobj
2890 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 554.25 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 89.593 null ] >>
endobj
2891 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 543.291 null ] >>
+<< /D [ 2850 0 R /XYZ 81.145 78.635 null ] >>
endobj
-2892 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 532.332 null ] >>
-endobj
-2893 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 521.373 null ] >>
+2849 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2894 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 510.414 null ] >>
+<< /Filter /FlateDecode /Length 2904 >>
+stream
+x[ˎc WJ#Q hP] &v޶ܕA%(?~܄84h|_Ǥ-?r8Wos>iǹi)oqk?`p'6LH>MB 'i2!Nç4&76}ny4xSI vb$qRPYPL)δj\_ajPsf%лVHE<LH=Q>':&n +MG~Aj(>E}=J xԴcZ
+r!BKh7~_Rvw6!=<
+q0IC+~q֓
+nIaK>kT3zG-{i}EoU|O#X>64[!~#HS2TK(ڂ>9@*cLQ=ݺJb.xP{wTSu'?&}(
+sl"nMG'Jnҥ
+m/ύ GCAP CP@g?"Z??i!
+* )-hCਿ*I֌|%zK`&Z_ xji$eݲKwtS& yL;eI@SZ;EL>bZ΅l5Hj7D 1u <[b!PeP7}G(c:c'36L%;[=wYLS
+I)4QȽVX?'.Et'Vni{ҩ @z֦VMr]Q;+"R!H¶V1"LXĪokI7 tNOMM[j<3UԝK
+|&Yv[4^~TGݯaIaYmvUxy)l N#ZjR'a` O5[}, 923wŭB@UK6jGڊ=qmMrQ6GET:ӱ.p5t:[[(ŨB xgW3Ig:J~V7d5:[gQ`_O8_JPi '3';s-f;YƬ$>S1p '҇Rc;P.HG$ q g 8sB7Pk}~ֳk:3n >n!
+-6MO7#1T}3}k pX wL} ts̚M<FHW[BUjHuWKzd!i͜&X<qZ2!>hj_U5̦i~6scc&1(1*p+as">4JUaɭoFTHUYnO5v*Ʊ,J9(?G0.+I71O&X3zdeyQrUUWT#ٜT*'dIJp%G 4l4"֢,u$h&h(3ImhBqTb6cE`gk˒ir9牔&ruPIi笗1¦iԤT
+~L+}AJMHՔ}~ (
+endstream
+endobj
+2893 0 obj
+<< /Type /Page /Contents 2894 0 R /Resources 2892 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2895 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 499.455 null ] >>
+<< /D [ 2893 0 R /XYZ 78.37 808.885 null ] >>
endobj
2896 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 488.496 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 742.926 null ] >>
endobj
2897 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 477.537 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 714.035 null ] >>
endobj
2898 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 413.579 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 703.076 null ] >>
endobj
2899 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 402.62 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 692.117 null ] >>
endobj
2900 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 391.661 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 681.158 null ] >>
endobj
2901 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 380.702 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 670.199 null ] >>
endobj
2902 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 369.743 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 659.24 null ] >>
endobj
2903 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 358.785 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 648.281 null ] >>
endobj
2904 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 347.826 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 619.39 null ] >>
endobj
2905 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 336.867 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 608.431 null ] >>
endobj
2906 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 325.908 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 579.539 null ] >>
endobj
2907 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 314.949 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 568.58 null ] >>
endobj
2908 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 303.99 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 557.621 null ] >>
endobj
2909 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 293.031 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 546.662 null ] >>
endobj
2910 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 282.072 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 535.704 null ] >>
endobj
2911 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 271.113 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 524.745 null ] >>
endobj
2912 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 260.154 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 483.898 null ] >>
endobj
2913 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 249.195 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 472.939 null ] >>
endobj
2914 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 238.237 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 408.182 null ] >>
endobj
2915 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 227.278 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 397.223 null ] >>
endobj
2916 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 216.319 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 386.264 null ] >>
endobj
2917 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 205.36 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 375.305 null ] >>
endobj
2918 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 194.401 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 364.346 null ] >>
endobj
2919 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 183.442 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 353.387 null ] >>
endobj
2920 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 172.483 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 312.54 null ] >>
endobj
2921 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 161.524 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 301.582 null ] >>
endobj
2922 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 150.565 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 290.623 null ] >>
endobj
2923 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 139.606 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 279.664 null ] >>
endobj
2924 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 128.648 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 268.705 null ] >>
endobj
2925 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 257.746 null ] >>
endobj
2926 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 241.806 null ] >>
endobj
2927 0 obj
-<< /D [ 2877 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 230.847 null ] >>
endobj
-2876 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-2930 0 obj
-<< /Filter /FlateDecode /Length 3129 >>
-stream
-xڽ[YF~
-x "WOHnn)9+oHn#nOݾz4ϳ<lީ;N˃y |C
- 7,)ض$'k9q0fffFA#>nMLts(_P젂&66Ko\Z-\)('Ee)tpJc x ~|
-Ġ@ɄOrjwl:b/7Q \6q Uަ{g4o` ZWIH'umOR|s-_5ٴ ا{˦%Hbr %"i`F!ĨV
-U
-h`ci`3Z|Y8(>.3m=o/uf6;l.z8zN?fC;ϷOS1R߿%J+WaShhƹG97wLZ)-6ANMVۦ]P
-
-lGCe)m (٪eP> *Чv3pzTxqnw1/7Ogs{ǒ)Ca
-wVjɟ/U%w[
-}ncum5lrM˙kӏGiH<aHɢ"jڗַDR)С _8/Υ/
-3XIq.l9F%/XڞN a8 J"O1E=8Qo a¡,ї a]o݆bz˹G%-K=sdg ˎh[I^APB< Hb=#9ɰ,H.y=
- e]kL]_ ~Ob\$.d
-endstream
+2928 0 obj
+<< /D [ 2893 0 R /XYZ 81.145 219.888 null ] >>
endobj
2929 0 obj
-<< /Type /Page /Contents 2930 0 R /Resources 2928 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2893 0 R /XYZ 81.145 208.929 null ] >>
+endobj
+2930 0 obj
+<< /D [ 2893 0 R /XYZ 81.145 197.97 null ] >>
endobj
2931 0 obj
-<< /D [ 2929 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 107.31 null ] >>
endobj
2932 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 754.884 null ] >>
-endobj
-2933 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 2893 0 R /XYZ 81.145 96.351 null ] >>
endobj
-2934 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 732.966 null ] >>
+2892 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2935 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 554.635 null ] >>
+<< /Filter /FlateDecode /Length 2433 >>
+stream
+x[r#)S@&$mMĞ}i_E*3*$̏_y~)s|E]h/._.%^_H[~2ZJzO/͟j~ko4 w
+4|;Nxw:*{@եWS?x&>g7[)Ei,
+G]0jw^!HQ0V +kBEC++֯/[N6Oh (^
+hVPSp$HE#q
+HaI-\H$|p=2` P
+PbyHo^҆5XhnoF8CU2ӽOE/sT(RV.\"duo{r0#
+)kCi gz1VtWbl>K>-C.h'/%QU VFKOBjl)OZ޷d8.)\r j-%[QS*SN)g \fqNhpwE|S-Xa4u]NpҨ6Cbr_+
+ H)WPeUPN]VL!4ω~Ҙ Rźj eNmP?Oa9fl nI*5ItN$>S}V $N
+3ux*T L+Uj)V$9n=p
+H;~*4
+70I:ZJ^sX㌅5Q mZ@ޖo1Ѩcȵj4ʖ%4Mi@h6; ]1GkNhe 974p9:܆P+e
+$@hAgdK'!)cS爅+۔:={GJ@zPn s݈Myʆґ7*usyF=Taixb&F7~Qhؔnt^,c>zNԯ3$=JB ;d9Ah(! [\rJ9 @ ZrV͂G?xAL/J;sf{6V\-?9+rbK2E *z'o6M>KGӫ_*r&vaVXR]ˆh}@KRnV9뾚y 4'dWFsԄzCh>r3ir⦮4m_@pcº}{X8@VߨϮg|lgt׈[J,rPۙPx0] ;81w-f*k 5\AHmo6, 5\Y)ۭ!+}7l96o9V#JP$ⰭpqvK Ъ_
+nAҬögw>aY'"y% +L͹,
+RZco@Z D;& =
+ۀqDxнAO3n+-n6ڬ [C'mݎ~V?q/h0}[:_[emsPze^ ݪp^AYC9Yq~"+J?*p/s1|.'S~^8`Ϧt
+ܯ/2ĵ
+endstream
+endobj
+2934 0 obj
+<< /Type /Page /Contents 2935 0 R /Resources 2933 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2936 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 2934 0 R /XYZ 78.37 808.885 null ] >>
endobj
2937 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 532.717 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 742.926 null ] >>
endobj
2938 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 521.758 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 731.968 null ] >>
endobj
2939 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 721.009 null ] >>
endobj
2940 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 710.05 null ] >>
endobj
2941 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 699.091 null ] >>
endobj
2942 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 646.289 null ] >>
endobj
2943 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 635.33 null ] >>
endobj
2944 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 624.371 null ] >>
endobj
2945 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 613.412 null ] >>
endobj
2946 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 404.199 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 602.453 null ] >>
endobj
2947 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 591.494 null ] >>
endobj
2948 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 580.535 null ] >>
endobj
2949 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 569.577 null ] >>
endobj
2950 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 558.618 null ] >>
endobj
2951 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 547.659 null ] >>
endobj
2952 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 536.7 null ] >>
endobj
2953 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 525.741 null ] >>
endobj
2954 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 514.782 null ] >>
endobj
2955 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 503.823 null ] >>
endobj
2956 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 468.954 null ] >>
endobj
2957 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 457.995 null ] >>
endobj
2958 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 447.036 null ] >>
endobj
2959 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 436.077 null ] >>
endobj
2960 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 425.118 null ] >>
endobj
2961 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 414.159 null ] >>
endobj
2962 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 403.2 null ] >>
endobj
2963 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 392.242 null ] >>
endobj
2964 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 381.283 null ] >>
endobj
2965 0 obj
-<< /D [ 2929 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-2928 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2934 0 R /XYZ 81.145 370.324 null ] >>
endobj
-2968 0 obj
-<< /Filter /FlateDecode /Length 2260 >>
-stream
-xڽZo_au OKskb˱YJ8oGREqL؋EK{{Rij ׿>~+13ן<32S15S ,q;167TE][;Op~}PEJ8xBs;@3I)FxTD~ SeUyB~\&-4 ʞE8Hj2 Sw}kؕ9K1&،# c:Z"I@ \!P.WifXLDhČcf)NiFzjj
-HiXiіrxxT{ 싮m(/^Mp!uBp G?icG
-_GaDɴ2&&1:c u1A`k
-
-Xcˮ85~7(s%“DŶ^dyU-{!*N"D5l6}a7b9bߒQsr.\cvEkȉW9nr1: ֔Jcu*Cy:McTBġ9Ҿ2m@E*뷻lH蛗&y]WeN+7ځPqj ӄem0So[HE\
-[+$<M6B Ni(zx'84d7F\oK }rʍ@\LXNHֵJ>*{-7}T<gǭ{iU2!!C*:)Dt]IF,%9&찊T5 'Xfmm2oK681ڥrkז7uWq.C[y(W&^9F^rIN0(LZ!IJ8nN{
-,ow2VMZ:ǔA:߈PoKf&5*u#9BOsg(EG%^_M]}K/ۚB&R$
-~f[ . 6V~n+mW6:o(a*s; 8pnbgX\X#>?l
-ܖ`.BE(IO;X7 ;NV#EvN:Y'W5[P
-ZEq?CaN0'1~B켰X plftOɼ
-EL&Bmޓ(V't$7Y!+|eaw ]xpF+W7KyaA]C9B-ۮ?3:;YWc;+DV |# 6 MjM׫TSGnǬ!t^NњXS9]3'i RTqD?'OSeMei_"5y|CKAZ E7NR,俔6߰T/:㈄Rpt B!cEK˲e:|˳v%QB"=tMPqrMԽF?e{[WP%}УPr^Iy!X"t:mzIr}MA8m(_]
-㑗a$ŧR{Je(ߙ!~ٞCwXM3!C.'xM-[;Dpm/qb"ZFM s?Sw Nw#A:_Kqb<{-Rfj1AB%q?~C
-endstream
+2966 0 obj
+<< /D [ 2934 0 R /XYZ 81.145 359.365 null ] >>
endobj
2967 0 obj
-<< /Type /Page /Contents 2968 0 R /Resources 2966 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2934 0 R /XYZ 81.145 348.406 null ] >>
+endobj
+2968 0 obj
+<< /D [ 2934 0 R /XYZ 81.145 337.447 null ] >>
endobj
2969 0 obj
-<< /D [ 2967 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 326.488 null ] >>
endobj
2970 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 755.471 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 315.529 null ] >>
endobj
2971 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 744.512 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 304.57 null ] >>
endobj
2972 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 733.553 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 293.611 null ] >>
endobj
2973 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 722.594 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 282.653 null ] >>
endobj
2974 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 711.636 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 271.694 null ] >>
endobj
2975 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 700.677 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 260.735 null ] >>
endobj
2976 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 673.903 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 225.865 null ] >>
endobj
2977 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 662.944 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 214.907 null ] >>
endobj
2978 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 651.985 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 148.157 null ] >>
endobj
2979 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 641.026 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 137.198 null ] >>
endobj
2980 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 630.067 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 126.239 null ] >>
endobj
2981 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 619.108 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 115.28 null ] >>
endobj
2982 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 608.149 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 104.321 null ] >>
endobj
2983 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 597.19 null ] >>
+<< /D [ 2934 0 R /XYZ 81.145 93.362 null ] >>
endobj
-2984 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 586.231 null ] >>
-endobj
-2985 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 575.272 null ] >>
+2933 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2986 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 564.314 null ] >>
+<< /Filter /FlateDecode /Length 2184 >>
+stream
+x[n#7WCV70`
+IhO(!:}AJ4RH^Jxy
+/TyV֫68?>+ĕaF.s>^;kwuxj^FoExN&(@tT YsfuB Xd hn:֪4Ӥ^h
+bP. %MGQkR(DHT)#?'E"Oq^Rhջ-:
+%ad PM>qO0O/cO.nSkTfDJvt.~5mȖ봯d
+qBF
+,SNs% ="eUuczL9svEŪUorѯ5ΔB]*HbN
+$NK@"KY?Q
+8AV= e8FuwaDi/#&}DZt4"mg YLw>r'}!ᨩP 0brkbq#`ͱĭ,
+iMV>eZTQAAM<i+v?|jar%)${u b_Ů4mQ92X]H̨8S؝x`"6f;^+'T0jJՇk81yfذ"ٗSU4)q>/GJ Id4FVv|2JQmګ,(0OB5zـP*yg*R%d&XEo(#GкM[ӹGm H:qV q,SGWEUe[iE!Iz\˰n}*( ],X!HK m;X1.Mwvtm;L(
+I>L~> zM7QI~uP3”AY%5=g 7fSB4Rcߨn:}`IrH
+endstream
+endobj
+2985 0 obj
+<< /Type /Page /Contents 2986 0 R /Resources 2984 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
2987 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 553.355 null ] >>
+<< /D [ 2985 0 R /XYZ 78.37 808.885 null ] >>
endobj
2988 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 542.396 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 730.971 null ] >>
endobj
2989 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 514.216 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 720.012 null ] >>
endobj
2990 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 503.257 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 709.053 null ] >>
endobj
2991 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 492.298 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 698.095 null ] >>
endobj
2992 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 481.34 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 687.136 null ] >>
endobj
2993 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 470.381 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 676.177 null ] >>
endobj
2994 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 459.422 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 665.218 null ] >>
endobj
2995 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 448.463 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 654.259 null ] >>
endobj
2996 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 437.504 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 643.3 null ] >>
endobj
2997 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 409.325 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 632.341 null ] >>
endobj
2998 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 398.366 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 621.382 null ] >>
endobj
2999 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 387.407 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 610.423 null ] >>
endobj
3000 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 376.448 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 599.464 null ] >>
endobj
3001 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 365.489 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 588.506 null ] >>
endobj
3002 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 300.501 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 577.547 null ] >>
endobj
3003 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 289.542 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 566.588 null ] >>
endobj
3004 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 278.583 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 555.629 null ] >>
endobj
3005 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 267.624 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 544.67 null ] >>
endobj
3006 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 252.858 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 533.711 null ] >>
endobj
3007 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 241.899 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 522.752 null ] >>
endobj
3008 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 230.94 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 511.793 null ] >>
endobj
3009 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 219.981 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 500.834 null ] >>
endobj
3010 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 209.022 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 459.987 null ] >>
endobj
3011 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 198.064 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 449.029 null ] >>
endobj
3012 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 187.105 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 438.07 null ] >>
endobj
3013 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 176.146 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 427.111 null ] >>
endobj
3014 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 416.152 null ] >>
endobj
3015 0 obj
-<< /D [ 2967 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-2966 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 2985 0 R /XYZ 81.145 405.193 null ] >>
endobj
-3018 0 obj
-<< /Filter /FlateDecode /Length 2189 >>
-stream
-xڭZ[oF~ϯ[O~M胑,#QPUH!!r)Z 99l5óÛwd$||C2aIf7hw,_5_|_yr?1ůmLEo a|&NUZxMZ27컛[Eet*JN**ӯL֌[b_&jlպgv_G k= "XvfmY__G!"a! 2+6hh%`46\o dS3>ڪ_m<.պ/ *.+D_1˦0}KlN4( a*]Rw} jӴᰨ~Iu+~BBu FU1z&C%K?SVabz}RZ2.T
-qo +DyQH)y.~lFŹʭEפe?,ͦcM+,oo~9Tܒ]@t*Z_WF VbYEGS*)kS<]IJ͂^ED@fv
-v^6PdُK`$fm>"e{FHƢo>1 ֓ԫS;WrUϝ:L>:H"8diF m=٧~=o(BIJ
->:9p$p4JO-xQ<VG3}SgbdќpW(TNĦH
-0גR:\6Q(G4=tl(t,if,$ĶGЃqkk-hjqZ
-f4Rw_6$eӒTE{]ݻ"HAƈ05@0OM{:N3[.H&ML!>ؒ|~'&>6޶6OaIK}tp-@TXvqӯR<|hh+ɕC0
-A$_hn4ޕiIqvw.E=pǜnIոZdXeLbb\Q*]?p,?9t?ۡaTna:ȇB*du~u6L1$LPBt=2IZx`ePq'A,O,`+ <H2WxpSևa>ӽ{Z \aCi>񰅙'XrF]y=U˟cJ,ET৤m:s%] aCW|B0yr!@."2LT ]*蝊n}eQypryQZ)v%0ib.&2a㬇-$[,=e"E8᎓Yb_ENAE|Ч`gYbj=0xL>,T sӛA&#&}ʤw]:ϒMVc
-CqVpҰ*FE3 3>wQ! FӨ9
-endstream
+3016 0 obj
+<< /D [ 2985 0 R /XYZ 81.145 394.234 null ] >>
endobj
3017 0 obj
-<< /Type /Page /Contents 3018 0 R /Resources 3016 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 2985 0 R /XYZ 81.145 353.387 null ] >>
+endobj
+3018 0 obj
+<< /D [ 2985 0 R /XYZ 81.145 342.428 null ] >>
endobj
3019 0 obj
-<< /D [ 3017 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 331.469 null ] >>
endobj
3020 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 320.511 null ] >>
endobj
3021 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 309.552 null ] >>
endobj
3022 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 298.593 null ] >>
endobj
3023 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 287.634 null ] >>
endobj
3024 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 276.675 null ] >>
endobj
3025 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 646.291 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 265.716 null ] >>
endobj
3026 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 635.332 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 254.757 null ] >>
endobj
3027 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 624.373 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 243.798 null ] >>
endobj
3028 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 613.415 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 232.839 null ] >>
endobj
3029 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 602.456 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 221.88 null ] >>
endobj
3030 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 591.497 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 210.921 null ] >>
endobj
3031 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 580.538 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 182.03 null ] >>
endobj
3032 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 569.579 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 171.071 null ] >>
endobj
3033 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 160.112 null ] >>
endobj
3034 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 129.228 null ] >>
endobj
3035 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 118.269 null ] >>
endobj
3036 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 107.31 null ] >>
endobj
3037 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 96.351 null ] >>
endobj
3038 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 503.825 null ] >>
-endobj
-3039 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 2985 0 R /XYZ 81.145 85.392 null ] >>
endobj
-3040 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 457.997 null ] >>
+2984 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3041 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 447.038 null ] >>
+<< /Filter /FlateDecode /Length 2199 >>
+stream
+x[n#7W X#k} rMNkvs)HY䖻WE9/<__~
+urixzIcҜkqzWΥ~_\J
+Gv%bɂwyNE_wsR =" Bhn{{ѷ{))sOfa1TKC9q,-͎BtoVtx#'|7zaőFϊs]vT>vwHBHICfPQ
+YGwʲ)eh=+̂!G2Q_dT;>6(WmAUe#!r`a})TmYř"2!;g7\UwGYBX
+DŽZQ+P7C!)&ʞo$L: _, In)fUE**/LŘϚz1x}0WF$:RRc4I
+endstream
+endobj
+3040 0 obj
+<< /Type /Page /Contents 3041 0 R /Resources 3039 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
3042 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 3040 0 R /XYZ 78.37 808.885 null ] >>
endobj
3043 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 754.894 null ] >>
endobj
3044 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 743.935 null ] >>
endobj
3045 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 732.976 null ] >>
endobj
3046 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 722.017 null ] >>
endobj
3047 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 711.058 null ] >>
endobj
3048 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 700.099 null ] >>
endobj
3049 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 684.183 null ] >>
endobj
3050 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 673.224 null ] >>
endobj
3051 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 657.308 null ] >>
endobj
3052 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 646.349 null ] >>
endobj
3053 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 635.39 null ] >>
endobj
3054 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 624.431 null ] >>
endobj
3055 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 613.472 null ] >>
endobj
3056 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 602.513 null ] >>
endobj
3057 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 591.554 null ] >>
endobj
3058 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 580.596 null ] >>
endobj
3059 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 569.637 null ] >>
endobj
3060 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 558.678 null ] >>
endobj
3061 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 547.719 null ] >>
endobj
3062 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 536.76 null ] >>
endobj
3063 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 525.801 null ] >>
endobj
3064 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 514.842 null ] >>
endobj
3065 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 503.883 null ] >>
endobj
3066 0 obj
-<< /D [ 3017 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 473.035 null ] >>
endobj
-3016 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3069 0 obj
-<< /Filter /FlateDecode /Length 1947 >>
-stream
-xZMD﯈%#MVzaN#I<CbC۩Nmwv֓ ).t+_y[8͵\ܽb0@lafa4#T~mٴWn[?yU\UϺfp/ߕվ7-,~}rW?|*qJ2"Lj{T
-*zW7=G왬RlYtTe 3#̮7tQ@YANx
-)^s,e܃a؂k):%l \XBHegRMe
-ɫMP+9D3?2!߼iٻYJuwO,Y8M#J}S lmt>)d8O7 :zD
-+cQ}
-x)ɦgm3xdu%BGz N)|[ܗֆKL ⴙcv̊_Wg6:gZ`c`0HiEo!D 9Vb,5 %;ALS* G==EɠƂݮ*iGJSt_Sc4xh$N#vY[YdxsHCxFN 
-dmm:{
-Mh&h1ʝ /E AYuuR
-P&ǠpM)nXw]|I`0Tlq5x0˔Z6r7ۢ:i T{l w90f=4-~lhڲ<<h\y9E)GB%ӕ`hs|^
-hBvR&Rr wi 2 q B|_'j3{7DrPfRme最ǜ?AUW^B:z1y.X$n1&v %ҒA;X[iDؘ]8EDZ8cڳU $hpfP|N|~yo]&g"ڐR TWXS%\ۑԄV%u}MV%yjUf~|4+!/.LxRjRzR ʙ߀Ed}&}QQ/ zm`6(7I}RT0g?>MqRt
-`tpܖ|fK E&npO^ɭ;'͏/uČQ~S t|Č916St_]OU|9TOv}ާu~1c~q4Z6wXٛэ꘨ɞ$hWHgt*qp:td: |CƗlj=q5c5ćӁ!?wEr.k`>"0I4^6ovEPk/,jV Պ?W!/i]4CM&vGr)E?[.2)oj} }5O;1sAXH`,Eh~Hxq9Ap)~gL a3"/jĜ}Q55D#]8.xj LeX{($Uu]<ȏ Yځ\&8c@;O7UYݯd'A]c8܇+3'o5BRWigoonM
-endstream
+3067 0 obj
+<< /D [ 3040 0 R /XYZ 81.145 462.076 null ] >>
endobj
3068 0 obj
-<< /Type /Page /Contents 3069 0 R /Resources 3067 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 3040 0 R /XYZ 81.145 451.117 null ] >>
+endobj
+3069 0 obj
+<< /D [ 3040 0 R /XYZ 81.145 416.296 null ] >>
endobj
3070 0 obj
-<< /D [ 3068 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 405.337 null ] >>
endobj
3071 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 394.378 null ] >>
endobj
3072 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 365.511 null ] >>
endobj
3073 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 354.552 null ] >>
endobj
3074 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 343.593 null ] >>
endobj
3075 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 332.634 null ] >>
endobj
3076 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 291.811 null ] >>
endobj
3077 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 280.852 null ] >>
endobj
3078 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 269.893 null ] >>
endobj
3079 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 258.934 null ] >>
endobj
3080 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 247.975 null ] >>
endobj
3081 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 237.017 null ] >>
endobj
3082 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 226.058 null ] >>
endobj
3083 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 215.099 null ] >>
endobj
3084 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 204.14 null ] >>
endobj
3085 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 193.181 null ] >>
endobj
3086 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 182.222 null ] >>
endobj
3087 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 171.263 null ] >>
endobj
3088 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 160.304 null ] >>
endobj
3089 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 144.388 null ] >>
endobj
3090 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 133.429 null ] >>
endobj
3091 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 122.47 null ] >>
endobj
3092 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 111.511 null ] >>
endobj
3093 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 459.99 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 100.552 null ] >>
endobj
3094 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 449.031 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 89.593 null ] >>
endobj
3095 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 438.072 null ] >>
-endobj
-3096 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 427.113 null ] >>
+<< /D [ 3040 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3097 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 416.154 null ] >>
+3039 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3098 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 405.195 null ] >>
+<< /Filter /FlateDecode /Length 2142 >>
+stream
+x\r()@74P5*;jϹmu]~%@%MerȖЧ?y?|Ȕp~y~ 5pA 1I0Nәs4gzc~!}0)Zj@?ȡwྟw%s=ѝtGsOQbF8zӡtl@OK"$v%9MIR)Po&/AE{~`07_ch$/B H7iP,*"N 7qA-+M;*Χ&䫀o2B>d:1W%J,Xh
+)Ed:x
+jܕA#-x:pn̬;u^hܑ;-H!ـ}bDk^5 њsE}<nt>|k=DcxEJFWJVڡ' L㒥s@rPZK
+Gk+LyBԏ
+W 
+whq4^͏kHR+KWB8S!NA 1a6auN}E#dʏSդZ%4F47&δK̋ ĉ s.Xq|}ֶgU >GZ'57Y]#==z/E'+yf(r9kPL0SR)ǘ"ឥL+jr]ٷDŽ3vyJQFhguJc;k1WՏ[,jU͕(͝8ْ
+:vYsvr!u5T&a[wS%>'g4"L
+PPSطFTJ`@''|qN5Gk[]VnA.:vW`1ɠ{/-f(kQ, iI5vc#Z`PL/U`ī92o?ZCL1B'/_3Vr/}ZeKR' ,g. % (i ?hBb+魚%*TjuJZ7jbڔQFD~&WKTO#}Ȩh>(T'p 1vDEn֫\v8x㻺$sWEMOiP1'hQFHLe"Ti4%sU;[5JLu:1#ʹ Ph*Tu:YOF{MȨfKH9H;B#(4MkGrEO桽nqrLTl>^ *z} `c7p
+2Dr;y'dֹizX/OmH%żߒel8qVFz)BF fJ =K ( 3ѧi(Hre5HeKb|D_(vk 쿽]9 jEo.G膒s3V}ȸƮ7H_ULpoPQ &TTz&΄5@;$$T(aMOQ&evcl3}~Ь@mu Ӝ*n;X.>-u5Jj[eN%L{4EvVS6z.T"O`9.J<N5Hl?&@[Ʒݍp3a,2L@ 2 ~{4%AaUI :ģP1P=ڬ
+3.$mjww6@b}'mk'p`myUڜkyQ>ʮ(fJiÙTݼ7wlΠ2iƉe6@+N7ULBj:ͷ8w~[#m^a5OJw{Y?PMOocN(N֙BCPH${!LN~
+endstream
+endobj
+3097 0 obj
+<< /Type /Page /Contents 3098 0 R /Resources 3096 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
3099 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 3097 0 R /XYZ 78.37 808.885 null ] >>
endobj
3100 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 768.829 null ] >>
endobj
3101 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 757.87 null ] >>
endobj
3102 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 746.912 null ] >>
endobj
3103 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 735.953 null ] >>
endobj
3104 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 705.943 null ] >>
endobj
3105 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 630.978 null ] >>
endobj
3106 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 620.019 null ] >>
endobj
3107 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 609.061 null ] >>
endobj
3108 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 598.102 null ] >>
endobj
3109 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 587.143 null ] >>
endobj
3110 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 576.184 null ] >>
endobj
3111 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 565.225 null ] >>
endobj
3112 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 554.266 null ] >>
endobj
3113 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 543.307 null ] >>
endobj
3114 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 532.348 null ] >>
endobj
3115 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 521.389 null ] >>
endobj
3116 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 510.43 null ] >>
endobj
3117 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 499.472 null ] >>
endobj
3118 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 488.513 null ] >>
endobj
3119 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 477.554 null ] >>
endobj
3120 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 466.595 null ] >>
endobj
3121 0 obj
-<< /D [ 3068 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 455.636 null ] >>
endobj
-3067 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3124 0 obj
-<< /Filter /FlateDecode /Length 1910 >>
-stream
-xZ[۸~ϯp/6~1EŠ@CLOHSYl:H~{ISHu|<T>ss ~y?ݼ13n/{gd bj$AXBy-`(9̀8.`19]8uTi<mǦ;-D<v(7/820%+D;PIp`Oi'^2 Cr;x-yy,^
-*vkWWś2|RL""eԒ%!92X6bedS39ڛcwE.쿖Ms*)e5[}_M΍zfsSv-:[3 Q050D >41F=34\;*˖
-#x)(C{3/cnG-g]W~]ݓ<0)k @TfHH@tLG|PuEƢq[,GRŠ#4bF?CȺt\aO'Xwn֍KiPmѽ5Lu_<<cYB.d7Ab&-4Oѻ6<[0 R!a+U$\F`+ln\B1
-ΜblZf5dl6v:qQz <u&÷v16YP5gUm\c><<7[fV >/ nvۇuD|kʦ O8ap&j7\ppdpKvPŭ~5b<;0RݝD[] Ռ.mTL
- /JK`St˾,oMG`Ur`yVY_Sk]$ey{Z
-Q'R<E\G@3O
-P`ZaJ )FG5^8'!wЫYܷw)#;L=#I]c ghp˄k,rP>zߐlK_!M}_;:?~mp*L#K)WSnِI?,^R=.ژ Iw,VdP<]וNtr+S\`C/"7v=IbQa e]_/: 34<q8aP0ӿNE;̆*j jcXpX󟡟R=,K}V[]
-<,˪?wn;`6jeχK2WU:z = Ͷ^*w8Ē{)lRcrx<зx5,4G*H&z?bsҁ=P@9N߁qS=E'hMnP }>T"5qIXhbƺB` ^b X%
-ؔ%C_4iMwՎmwCK{$6G_ԟ[ך(\
-KM@K&
-endstream
+3122 0 obj
+<< /D [ 3097 0 R /XYZ 81.145 444.677 null ] >>
endobj
3123 0 obj
-<< /Type /Page /Contents 3124 0 R /Resources 3122 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 3097 0 R /XYZ 81.145 433.718 null ] >>
+endobj
+3124 0 obj
+<< /D [ 3097 0 R /XYZ 81.145 422.759 null ] >>
endobj
3125 0 obj
-<< /D [ 3123 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 411.8 null ] >>
endobj
3126 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 754.896 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 400.841 null ] >>
endobj
3127 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 743.937 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 389.882 null ] >>
endobj
3128 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 732.978 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 378.924 null ] >>
endobj
3129 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 722.019 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 367.965 null ] >>
endobj
3130 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 711.06 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 357.006 null ] >>
endobj
3131 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 700.102 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 346.047 null ] >>
endobj
3132 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 684.185 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 335.088 null ] >>
endobj
3133 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 673.226 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 319.73 null ] >>
endobj
3134 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 657.31 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 308.772 null ] >>
endobj
3135 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 646.351 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 297.813 null ] >>
endobj
3136 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 635.392 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 286.854 null ] >>
endobj
3137 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 624.433 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 275.895 null ] >>
endobj
3138 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 613.475 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 264.936 null ] >>
endobj
3139 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 602.516 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 253.977 null ] >>
endobj
3140 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 591.557 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 243.018 null ] >>
endobj
3141 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 580.598 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 232.059 null ] >>
endobj
3142 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 569.639 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 221.1 null ] >>
endobj
3143 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 558.68 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 210.141 null ] >>
endobj
3144 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 547.721 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 199.183 null ] >>
endobj
3145 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 536.762 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 188.224 null ] >>
endobj
3146 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 525.803 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 177.265 null ] >>
endobj
3147 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 514.844 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 166.306 null ] >>
endobj
3148 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 503.886 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 155.347 null ] >>
endobj
3149 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 492.927 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 144.388 null ] >>
endobj
3150 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 462.078 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 133.429 null ] >>
endobj
3151 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 451.12 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 122.47 null ] >>
endobj
3152 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 440.161 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 111.511 null ] >>
endobj
3153 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 429.202 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 100.552 null ] >>
endobj
3154 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 418.243 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 89.593 null ] >>
endobj
3155 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 383.422 null ] >>
-endobj
-3156 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 372.463 null ] >>
+<< /D [ 3097 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3157 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 361.504 null ] >>
+3096 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3158 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 332.636 null ] >>
+<< /Filter /FlateDecode /Length 2024 >>
+stream
+x[n9 +FHjܱ;}u4$Rc ΡZ_Q#E>{ҧl:<\^]9 ^y0>Spp(_g݅Vk?=)5A I 0oIbGCK>IQh$I
+Thg}p|OGxRXp.ýdgR}=ȕ蒇 L6pN4|?֏%*𧧫^?o΢LʩА铯&j',ʛjOwhB[&;
+? I
+e bwuJsPL{äāЅ Q
+kY&YwERwܰ$k[<IZy5 E/YRYfd
+AD
+8Ev&Tqd1'>UOYчoƩh#ID)ak8Ke4NC'T@gM(>ǹh]P>@8-2Z`Kj
+I $-^۵}.vjV&[3;
+ 19.oH޺(XڶDMaWٔ@j,'W1Ƕ%m٦,x[rZe!]fɆ|\KY IBB/xKńT.TrɼXYQ,>
+ƨE: F!DA/"{!EHŋ$a @uihZcaKGQ8}o@\؉OA&eP:~S\'f64LW@Zh*E:@W^8Mvf )M(Al6' UdD}& Bn~PTE:
+8ƵD͗ʤ!bB[f#%H]
+݊5)9ৡ@#*e"H@ ה$ISֱC-Я_ wDZe@I
+˻y1`mxlºjiI~Zh}ǾʗDZ_le8H6aumɃC!ݮ-
+zRgHkO4Icst@ZGqD뗫v)o?Q
+endstream
+endobj
+3157 0 obj
+<< /Type /Page /Contents 3158 0 R /Resources 3156 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2743 0 R >>
endobj
3159 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 321.677 null ] >>
+<< /D [ 3157 0 R /XYZ 78.37 808.885 null ] >>
endobj
3160 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 310.718 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 768.829 null ] >>
endobj
3161 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 299.76 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 757.87 null ] >>
endobj
3162 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 258.937 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 730.971 null ] >>
endobj
3163 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 247.978 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 720.012 null ] >>
endobj
3164 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 237.019 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 653.263 null ] >>
endobj
3165 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 226.06 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 642.304 null ] >>
endobj
3166 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 215.101 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 631.345 null ] >>
endobj
3167 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 204.142 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 620.386 null ] >>
endobj
3168 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 193.183 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 609.427 null ] >>
endobj
3169 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 182.224 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 598.468 null ] >>
endobj
3170 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 171.265 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 587.509 null ] >>
endobj
3171 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 160.307 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 576.55 null ] >>
endobj
3172 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 149.348 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 565.591 null ] >>
endobj
3173 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 138.389 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 554.633 null ] >>
endobj
3174 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 127.43 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 543.674 null ] >>
endobj
3175 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 532.715 null ] >>
endobj
3176 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 521.756 null ] >>
endobj
3177 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 510.797 null ] >>
endobj
3178 0 obj
-<< /D [ 3123 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3122 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3157 0 R /XYZ 81.145 499.838 null ] >>
endobj
-3181 0 obj
-<< /Filter /FlateDecode /Length 1930 >>
-stream
-xZKo6W.W!
- <='QeņګZV-&[܍ 2$;&Ge4:mS}qSf5OHђ !|w +Ԓݦ<lXŕ6n)=̫eNhFV}3Mۥjo3u ]C"/]sS&ȶY5W-jp$-&N KebGyfC,t8.ʍ[fr﷛ӽܰ{N҂+6+ag.]zpos&DoBټ|*:=-pA7 7_MZ9ImFS~ȓ,tVwT:3deʺ;ʺ|wMG~Z׌[ ~-VU7aQ?KœĩI|*&OUcD`]
-^a0J%MGސo'&Pr>EADBjC~`Kv\Uz]]GjlSzcםV4>!eM6~5dEs#At
-qчn5FX=YN\".'KW\2H0,aSeN9w8֍G, aHp,m,E)2TjFhJЉ宮֖s7!l~Fq3;'sZ58{nR8 g.V:oFW,$CI. R:gxR@ͷk|'&?lmWZ׮WMAf0 c 6T|ܞ"u qLrH5Y?z(("tr/U֝ٔ?a&!hhsM~:/j~OH~pgB8
-4\64,%h0 1V=BQ?du4En7(7f9fWхc̑1-ؖI 'Fɶ8l{kAb51l˘FTp$hMB=XᒉD_Hй@< G- ;jK'CE!5@#PW4b| #<yP0dYZ|ղ oA2&R#R}1hO%hpCBD Ο[i
-;t ph "Lp1Ÿж&`!!ѐ+ ] n7 Ka -$P(,aH&!\_aJ&wL $hk2" i4\I"&;F pDHf ;% 50"0#H
-@H3G|՝]k(ѿG<!!
-El hlC
-*-%ktا1(F:|(}4AYJ!#fȍo~><D
-endstream
+3179 0 obj
+<< /D [ 3157 0 R /XYZ 81.145 488.879 null ] >>
endobj
3180 0 obj
-<< /Type /Page /Contents 3181 0 R /Resources 3179 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 2759 0 R >>
+<< /D [ 3157 0 R /XYZ 81.145 477.92 null ] >>
+endobj
+3181 0 obj
+<< /D [ 3157 0 R /XYZ 81.145 466.961 null ] >>
endobj
3182 0 obj
-<< /D [ 3180 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 456.002 null ] >>
endobj
3183 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 445.044 null ] >>
endobj
3184 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 434.085 null ] >>
endobj
3185 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 423.126 null ] >>
endobj
3186 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 412.167 null ] >>
endobj
3187 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 401.208 null ] >>
endobj
3188 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 390.249 null ] >>
endobj
3189 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 374.309 null ] >>
endobj
3190 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 673.068 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 363.35 null ] >>
endobj
3191 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 598.104 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 352.391 null ] >>
endobj
3192 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 587.145 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 341.432 null ] >>
endobj
3193 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 576.186 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 330.473 null ] >>
endobj
3194 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 565.227 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 287.634 null ] >>
endobj
3195 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 554.268 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 276.675 null ] >>
endobj
3196 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 543.31 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 265.716 null ] >>
endobj
3197 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 532.351 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 254.757 null ] >>
endobj
3198 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 521.392 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 243.798 null ] >>
endobj
3199 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 510.433 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 232.839 null ] >>
endobj
3200 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 499.474 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 221.88 null ] >>
endobj
3201 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 488.515 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 210.921 null ] >>
endobj
3202 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 477.556 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 199.963 null ] >>
endobj
3203 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 466.597 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 189.004 null ] >>
endobj
3204 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 455.638 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 178.045 null ] >>
endobj
3205 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 444.679 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 167.086 null ] >>
endobj
3206 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 433.72 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 156.127 null ] >>
endobj
3207 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 422.762 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 145.168 null ] >>
endobj
3208 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 411.803 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 134.209 null ] >>
endobj
3209 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 400.844 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 123.25 null ] >>
endobj
3210 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 389.885 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 112.291 null ] >>
endobj
3211 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 378.926 null ] >>
+<< /D [ 3157 0 R /XYZ 81.145 81.407 null ] >>
endobj
-3212 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 367.967 null ] >>
-endobj
-3213 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 357.008 null ] >>
+3156 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3214 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 346.049 null ] >>
+<< /Filter /FlateDecode /Length 3137 >>
+stream
+x\9$ Wt^Z ޙ~ vt;=]](xu㷿ΔDrÈd
+ۏ~tLs{3Z0ǿo\8~{hsi$$`(ZB3NgCʼn8 pf@h"-Ӻ?#p.5N]~@0F(1!q@k )vi1=X/ҳ{g{X @O9ݮVagCZ/>(jk"6,,VCXROM/͋B6-
+AG5
+ D|eQ*n^z~xFb e$ַ% %{us4,ܴ qש&xkR$=_DDe7,05fd* ERiЂ+W%y*ppQ&ٞL߃\{Jͅ6Y=쳿w]~ _jVU1zIP' Lxt0LWJ ۙTMo6cīżd D⡓ïYƛ淫bnկ rC-ouI=8:R
+8wOh4c1ۊrܑNڑD ;sIU:ODK)"$2Ú9ٌ^k!_5VbOm38O+V(2༒Q#*Jal^JXDt5oy eڔq^~tŘ~ߡ*m0xRF8k
+tAQ"OoZHDOOA SF^7XB3ȸfAPaX;mP%ޙenm` U;K£E+:n7.wld!PRQO7tv Ԕ@eҖJ"qreQdV"ۚz欬aF KKC)$2G
+ev~*'od̨a
+U7A[+eHW4I5_c0]HA;I̹;&Z3(wXA}r8`/e̶U[ILCdvԥ?1bJc Bӂ"#;'ڋ }<|>%𬹨zjd42E|@qU8._J|
+e<s )KKf W*ۗWsĩD#3I"،YeClJQ;2屵zJy34p{c4Ώф ̓RELRH *rmQwd ᗼ~+5jU2 S jkg7c -խqeZ*T:0nZ9,
+ %2lU~fڍ~z%Lodյ0 &~ 9
+OՃBơp
+rMWecyn {Ij{PMCȕSIuLYB>x0k){ى)@`.B1 gf~\1m\}9=V2iD`n^=BԚШ9hl'5 W Y\PI7κ݁Bɏ=]?)2
+(y8ܿ/>xPNn~|. =Y@(& vTEKT"PП%cpY~Y|tt£Ko߫Gߩ_XpgXJ#j3' IrNC4@ꁚGChQ"- N.6)W<5ZwϟM:n6RL硄2 qʚjJK2uJͰ8<^
+W.퍚bX+6FjN<T^!鋓-T@G(,ߣEg?
+endstream
+endobj
+3213 0 obj
+<< /Type /Page /Contents 3214 0 R /Resources 3212 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3215 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 335.09 null ] >>
+<< /D [ 3213 0 R /XYZ 78.37 808.885 null ] >>
endobj
3216 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 324.131 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 768.829 null ] >>
endobj
3217 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 313.173 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 757.87 null ] >>
endobj
3218 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 302.214 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 746.912 null ] >>
endobj
3219 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 735.953 null ] >>
endobj
3220 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 724.994 null ] >>
endobj
3221 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 670.199 null ] >>
endobj
3222 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 617.397 null ] >>
endobj
3223 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 606.438 null ] >>
endobj
3224 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 595.479 null ] >>
endobj
3225 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 584.52 null ] >>
endobj
3226 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 573.562 null ] >>
endobj
3227 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 562.603 null ] >>
endobj
3228 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 546.662 null ] >>
endobj
3229 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 535.704 null ] >>
endobj
3230 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 462.976 null ] >>
endobj
3231 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 452.017 null ] >>
endobj
3232 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 417.148 null ] >>
endobj
3233 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 406.189 null ] >>
endobj
3234 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 365.342 null ] >>
endobj
3235 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 324.496 null ] >>
endobj
3236 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 259.738 null ] >>
endobj
3237 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 248.78 null ] >>
endobj
3238 0 obj
-<< /D [ 3180 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3179 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3213 0 R /XYZ 81.145 237.821 null ] >>
endobj
-3241 0 obj
-<< /Filter /FlateDecode /Length 1920 >>
-stream
-xZIsW5}Qq%TCBaHHD 4{^citS2G u[t|?\G#8_^0x.jYlqe%7̭spև-,qZ E+Rj#*Ul沮~ыefzZZ_][վ>͎HS*J壬ΓU8`+ABM&rmvuۗA~W" \1), 'Kdiuv`r@-aVL@JhN!@[̣Jh 'ЖhSFKﳺx\ߧuu?ZEl6-jʻm\w - '+G_YBQyz}zs2f8"@6nKȝX!{xe.Br]꽠|fYm~طoۢݎ'߆7@._w׎DW`$T}Dq}Haڪ HuVG%yw;@RAwGڢ^ql[q/ kRgZ oM!q2qE C;'}5寻ͫ-O- #;ꁹmǥ]~q I8;8kU5{RD~C@f_2Dcnu.DBC
-jv!{薷lg8A-%|6t)l~ )j= <tTf)hTSWx1PdQ2} I*MnP9:?a)+g Uig mY7Ӫ.TgzBT:TI4+/k4oF&B*(VPj
-\ gv:מGPW j {cP)W&0'phA'H{f ,J]Y 闫 4'l]61a+мCU$>Xֆ)7F63!Akwm5Q24/%#(,f&
-(C`e St
-G;FMjM WR%ho{p=͊RDKc%Fw5\d8d_~O?+=OJe.Q[WC33P>$pN YK**" OO}
-gLv!hK61M[XGQVTUL:UX.%քx,-nJxڠgǦxk4ĩ-9a2DA0p~E'uMgB0l()/Føƕ@u 0Bgrw $J$ѧf HΠ=!"DQPsfrh`q\mC0 o:3`5ō>`/g~;N|ixqbs,o0<*Gaߖ7|}>,a造(T.fv4oO(OrR͈M@YW9)A]i1rkb?ޔTx; ~uF-@)WrUi~UxER>
-7=M"?Wnz|6ù$|^>Jx1ATj7 -%N9Pj*ct:%=o51Ljc"!Ai[JTkўǴ#҅XK%Ni|3Ds±_ҜO0i2!hM o~)aqEMRyaGLi܇u O
-b юxUwu;Oǎ3}kf*`4e 5T *b#)oX"A~;@AJ/$%nO
-endstream
+3239 0 obj
+<< /D [ 3213 0 R /XYZ 81.145 208.929 null ] >>
endobj
3240 0 obj
-<< /Type /Page /Contents 3241 0 R /Resources 3239 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3213 0 R /XYZ 81.145 197.97 null ] >>
+endobj
+3241 0 obj
+<< /D [ 3213 0 R /XYZ 81.145 187.011 null ] >>
endobj
3242 0 obj
-<< /D [ 3240 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 176.052 null ] >>
endobj
3243 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 165.093 null ] >>
endobj
3244 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 154.134 null ] >>
endobj
3245 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3213 0 R /XYZ 81.145 143.176 null ] >>
endobj
-3246 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 735.955 null ] >>
+3212 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F25 609 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-3247 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 724.996 null ] >>
+3249 0 obj
+<< /Filter /FlateDecode /Length 2579 >>
+stream
+xr82_xѸ\ʴ֦:!N,}0o{CcN׿8&hƹ~
+v5ל+DZ?E кf翾hu3ZpKw)fnrז0Aq4hӅZJ]8G+ȭkjULX4!G`-UZJ%4:'|'y>o4᠇f\a7C;w:wqYXdwaCD_#"g-$0&{/CvI {n4zP8Szƫ-sVHh!Z4HńP{fiLe_KzԴȀ3j831/VHpmdT μ`9L8cλ;əeLd3DD1
+as`g=g5w$Tl g` QscFHZ |ޒqGGYNpѿGcK(
+D,
+zHϒ1 %:}yrӡnlWZfxYRsȯxܻRXvU\->0i/ڼB<@q房k(DLƨy{ 1W j ƾuq]!+rqQKG^g)# 2aWumy6-įIi ?K[n<h%tt54^ ]xQi<*-TeZmw .aOo
+a'IY)H+YR=GPf3jdՀT fPwROcӞ3qOt
+xJ>
+(&l?0
+1ܻ >t'5'F*;B" P4a J{CX)'nORUYzOsTSͿ\ emys[M;i=ّ44QS4?UT?^֜؟
+endstream
endobj
3248 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 701.49 null ] >>
-endobj
-3249 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 690.531 null ] >>
+<< /Type /Page /Contents 3249 0 R /Resources 3247 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3250 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 627.74 null ] >>
+<< /D [ 3248 0 R /XYZ 78.37 808.885 null ] >>
endobj
3251 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 616.781 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 742.926 null ] >>
endobj
3252 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 605.822 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 731.968 null ] >>
endobj
3253 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 594.863 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 721.009 null ] >>
endobj
3254 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 583.904 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 710.05 null ] >>
endobj
3255 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 572.945 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 699.091 null ] >>
endobj
3256 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 561.986 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 688.132 null ] >>
endobj
3257 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 551.027 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 677.173 null ] >>
endobj
3258 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 540.069 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 666.214 null ] >>
endobj
3259 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 529.11 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 655.255 null ] >>
endobj
3260 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 518.151 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 644.296 null ] >>
endobj
3261 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 507.192 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 633.337 null ] >>
endobj
3262 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 496.233 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 622.379 null ] >>
endobj
3263 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 485.274 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 611.42 null ] >>
endobj
3264 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 474.315 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 546.662 null ] >>
endobj
3265 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 463.356 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 517.771 null ] >>
endobj
3266 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 452.397 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 506.812 null ] >>
endobj
3267 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 441.438 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 465.965 null ] >>
endobj
3268 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 430.479 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 455.006 null ] >>
endobj
3269 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 419.521 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 444.047 null ] >>
endobj
3270 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 408.562 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 433.088 null ] >>
endobj
3271 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 397.603 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 422.129 null ] >>
endobj
3272 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 386.644 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 411.171 null ] >>
endobj
3273 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 375.685 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 400.212 null ] >>
endobj
3274 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 364.726 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 389.253 null ] >>
endobj
3275 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 349.917 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 378.294 null ] >>
endobj
3276 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 338.958 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 367.335 null ] >>
endobj
3277 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 327.999 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 356.376 null ] >>
endobj
3278 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 317.04 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 345.417 null ] >>
endobj
3279 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 306.081 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 320.511 null ] >>
endobj
3280 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 309.552 null ] >>
endobj
3281 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 298.593 null ] >>
endobj
3282 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 287.634 null ] >>
endobj
3283 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 276.675 null ] >>
endobj
3284 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 239.813 null ] >>
endobj
3285 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 228.854 null ] >>
endobj
3286 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 217.895 null ] >>
endobj
3287 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 206.936 null ] >>
endobj
3288 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 195.978 null ] >>
endobj
3289 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 185.019 null ] >>
endobj
3290 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 174.06 null ] >>
endobj
3291 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 163.101 null ] >>
endobj
3292 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 133.431 null ] >>
-endobj
-3293 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 3248 0 R /XYZ 81.145 116.276 null ] >>
endobj
-3294 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 111.514 null ] >>
+3247 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3295 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 100.555 null ] >>
+<< /Filter /FlateDecode /Length 2490 >>
+stream
+x[˒W໪Zv]*m_dt%S
+l8:»
+8#[9Uqh
+6J{ [WAbkd?=(e2eg.Z;e]q l[n<wf"=i;h͢GVs럟*,aT&xMiz6kZƄq ؔHNߜ7ivơ&梹$
+|}g ڑ³}8-P8<Jo [w8<3ja/%fBpAJ{R9͡W`Lu'Qf<S@g
+uo dad><-G< sV9#ˏ5Ţ=w{B#e G(ٖ3 6F:q#7Xm
+b#Sѓ=+q]X+Ja,H: ?%u4"kXqBR<B%&R b!?`=vw.>KRqDqh Z+Ur2_ '\I*Xfh`FrjU&Jp3Km%#g-R>2p^Ul+Vb
+8*+^틉: 5'J<=R^Ox _J#[t*%%)~OGe?:
+Nkhnj~R#PY62hHo+AT RH鮌%R)Duv` P2)/bKF$~]Ln.b[ZxŴ7m:OoVmzRgCwrW<\%ʜ.n857mKf3_ Ҧb}>X +c<[u[YɔVG )J QpMcR<[o^GZFH0ˈ`q_<ꛯHi
+g4BAkUQCrlM5qK#0 <;:3߶jdY҇i~\"|@IpzNŷE2P8O0YG@ ]ņN"b`b Dӡg9n_)'Z5H_)Z 3"h1e`+Z
+endstream
+endobj
+3294 0 obj
+<< /Type /Page /Contents 3295 0 R /Resources 3293 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3296 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3294 0 R /XYZ 78.37 808.885 null ] >>
endobj
3297 0 obj
-<< /D [ 3240 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 742.996 null ] >>
endobj
-3239 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+3298 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 732.037 null ] >>
endobj
-3301 0 obj
-<< /Filter /FlateDecode /Length 2883 >>
-stream
-xڭZ[oܺ~ϯX<u3UA}K @.UHZA;v0eș\2Y-o{׫w>t0%w>Jx $pHF%ISv~\dH
-A11N08$)[y.Vn/?kn/ vWԲ0 <A8!^~ #JxH=zn*f-N$(Cjnh..2m=슼FF23yKxSk>ʪNږEG wySmd@4G8E;{LTmviZ_\փ?ZF7[Pc^
-'FS]}Fҥ$94&)ch/ֳ DqN_ɲڨbmշE,KBYUve]W=Ւ=ε`7 VbRj~vyfe"  duGEe0LIYTj5Q-Q0 '}|f=1;{QBV*8F,Q7Kb2G@|z0ѤWU0[;-ߏ:IB⩋֟Z hU2kfDh/mUaoT3K0 ,zރ2 ;Fٵ_MTc>Э
-:Ža4xI>9C`5q|c:y,ی,`3q&9iώM՝ZuNwNC-=Ͳ8 g>/mg:㵸lO8+Fe ~L' SUWuN3(&E L .%2h `[¥O4(#a@2,^=g1PBp@s>? <70"|WͫPe$G/o6X#9̲3|n탲{fTА#ކ:- 0/8
-ԋ?)b=eL#MmFf,= <41cqKO]Η{oAm([9 gra*W{^v網;\7罭-E {wwV;`SljHrY 0t<;Oօhܷjݗu@Mq}x!io4/t16?Eކcb<ݶX ?)X˪]9J2wCIdL |n^1>xeoĎ}u_OתOii/\i͍n&rA=DQMraѪ~x(!1`#X
-1nplnot,jL;HPk54J4"+n^Pilo%ěުNY3)e0
-ë9jh*@ JA{T|6fQ
-6KHc /rWƙ:~nc; {]u;m~}0Kq:  . bd8HCKջo`
-endstream
+3299 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 721.078 null ] >>
endobj
3300 0 obj
-<< /Type /Page /Contents 3301 0 R /Resources 3299 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3294 0 R /XYZ 81.145 710.119 null ] >>
+endobj
+3301 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 699.16 null ] >>
+endobj
+49 0 obj
+<< /D [ 3294 0 R /XYZ 79.37 674.805 null ] >>
endobj
3302 0 obj
-<< /D [ 3300 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 586.752 null ] >>
endobj
3303 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 575.793 null ] >>
endobj
3304 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 523.13 null ] >>
endobj
3305 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 512.171 null ] >>
endobj
3306 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 501.213 null ] >>
endobj
3307 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 490.254 null ] >>
endobj
3308 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 479.295 null ] >>
endobj
3309 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 468.336 null ] >>
endobj
3310 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 457.377 null ] >>
endobj
3311 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 422.786 null ] >>
endobj
3312 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 411.827 null ] >>
endobj
3313 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 377.236 null ] >>
endobj
3314 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 366.277 null ] >>
endobj
3315 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 355.318 null ] >>
endobj
3316 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 344.359 null ] >>
endobj
3317 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 333.4 null ] >>
endobj
3318 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 286.854 null ] >>
endobj
3319 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 275.895 null ] >>
endobj
3320 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 264.936 null ] >>
endobj
3321 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 253.977 null ] >>
endobj
3322 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 243.018 null ] >>
endobj
3323 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 232.059 null ] >>
endobj
3324 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 221.1 null ] >>
endobj
3325 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 210.141 null ] >>
endobj
3326 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 199.183 null ] >>
endobj
3327 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 188.224 null ] >>
endobj
3328 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 187.014 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 177.265 null ] >>
endobj
3329 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 176.055 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 166.306 null ] >>
endobj
3330 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 165.096 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 155.347 null ] >>
endobj
3331 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 154.137 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 144.388 null ] >>
endobj
3332 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 143.178 null ] >>
+<< /D [ 3294 0 R /XYZ 81.145 133.429 null ] >>
endobj
3333 0 obj
-<< /D [ 3300 0 R /XYZ 81.077 132.219 null ] >>
-endobj
-3299 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F23 660 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3294 0 R /XYZ 81.145 122.47 null ] >>
endobj
-3336 0 obj
-<< /Filter /FlateDecode /Length 2307 >>
-stream
-xڽZ[o~_UF˻$(; !
-B|98 k0,O0QB,RLtTpǘf"n&w퇏"[BAqB3Sj*/onAutgr+,sTuT)G ^Ә0trYah
-V/DI4œ`LU%e4Dc
-y"]GAgJ}יe y թMY_y(-Fah˻.r_l{ 0F;B8=$Hi~S 2Vu^~< :|mN4l):*:KY@*߂';` ƣ*.xl-z]FSt0QJC AH%
-- dnMd]!ѾkAk6 BocڤHaߐzkZh0K.HŌ7"$Sq ^8:87jBcY¼s+<N2jܗ&fUaFt,|ܕk՝*:5wFLìCkʡ|>&CiԷZ9fl\W1OjW4pT>:6viR+~*5)j1PIY+?WK&}[8e.4=N ]uq"l^7 xjBnf nv),*T'maHҐǶLbb!8#)oL^/gxXCfkY[!bg%]nc4Yұ**_͛V̪ lGDXňѓ
-§k|׶Op,Mc%WƆ
-͈ĆUǸram8 /ټ#XRR m 1`_fBCkݎf؜z2ACYW*ҙT5bAp Cp
-'4*/{hŋ>êW6ߴ==pHh?0 1V?:R7K+9JA2>e=:-|4D(mm] ]40bVoUʁ]fJ |hƨq0wrW`g(Lw`!-AC+g=^֣z#._B.MG,zPQ|.Lb G![PᤳՌ{>c_~X@*0yO/`mO1ムzTtfs%ݡo~Qpȶ\}gB@3H0d<5.H8q -Z_..G7e .VbAQ]tDg93eS6̟Tz6ӣ7 X.hxYwU6y b02oXXfCQnWSM>mڳMמlPe37)'.,M8؟fIǤ%!tCwo>^p?CiŚ@`IwG=. YbV[>*
-endstream
+3334 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 111.511 null ] >>
endobj
3335 0 obj
-<< /Type /Page /Contents 3336 0 R /Resources 3334 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3294 0 R /XYZ 81.145 100.552 null ] >>
endobj
-3337 0 obj
-<< /D [ 3335 0 R /XYZ 78.37 808.885 null ] >>
+3336 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 89.593 null ] >>
endobj
-3338 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 742.929 null ] >>
+3337 0 obj
+<< /D [ 3294 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3339 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 731.97 null ] >>
+3293 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F73 267 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3340 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 721.011 null ] >>
+<< /Filter /FlateDecode /Length 2151 >>
+stream
+xZr6+
+AxNG0DYL ~9KQ6 -ժGVֿ-<3*(Uv&y|nD&MrnSypo0teor0z<5Q*&|BېL!M̑M
+F\`}z<!,(/H3y Gy:xG9)w#:
+Kq4?-_L8*Agrp%tFKum@wD"hfRw융eF4AD%){@?
+!m!^ܼb=O cUќ{-w/tEMF
+tx=<hCND ",DZEV&#\xE s1L7ҕrd
+}3E#mB!ѳ3oį fsҶviLG3*ʹ=R(%WJA n=mS_vO-dxG
+bϘmZG)B[r'~QcDITX)#!w"g.Gm2#ꌿN35{K[; 1ՄYW|1P#6 I '3EPK6mVLK>%z:]™›Cr*W]|]9h(K~:<U U7XXj,ȌcO_]RO5ZA]aiG3CkI.()'uSJo91ΐ;o*I%]iIԥ
+hH"e'^YN*|\a9S[ljCgY|\7:{eg6E
+TzՍy*l|n,P
+*l2=41ہm<MtHCI^J@#@C!ڌ+b3-҈5.m2Z)ǷV)<oZKۧsI` Ƚr6j躚e\`{;O, ȍnDEd|yH{Ih<$Zy<#yj;''~$&׮K%~F6+R[PՈQIJ2o]_ CR nz% LKb]uy#/\ooGh2]*aäĽ=ˆ[
+Tu?]T,]]Zlc\U_eK"heQ{dJ
+fdƪrz9\|hnUO>\4-9R'}bP)&i8
+endstream
+endobj
+3339 0 obj
+<< /Type /Page /Contents 3340 0 R /Resources 3338 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3341 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 3339 0 R /XYZ 78.37 808.885 null ] >>
endobj
3342 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 768.829 null ] >>
endobj
3343 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 757.87 null ] >>
endobj
3344 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 705.068 null ] >>
endobj
3345 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 694.11 null ] >>
endobj
3346 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 655.258 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 683.151 null ] >>
endobj
3347 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 672.192 null ] >>
endobj
3348 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 661.233 null ] >>
endobj
3349 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 650.274 null ] >>
endobj
3350 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 639.315 null ] >>
endobj
3351 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 628.356 null ] >>
endobj
3352 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 617.397 null ] >>
endobj
3353 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 606.438 null ] >>
endobj
3354 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 595.479 null ] >>
endobj
3355 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 584.52 null ] >>
endobj
3356 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 549.651 null ] >>
endobj
3357 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 538.692 null ] >>
endobj
3358 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 527.733 null ] >>
endobj
3359 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 516.775 null ] >>
endobj
3360 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 481.905 null ] >>
endobj
3361 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 470.946 null ] >>
endobj
3362 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 459.987 null ] >>
endobj
3363 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 449.029 null ] >>
endobj
3364 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 438.07 null ] >>
endobj
3365 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 385.268 null ] >>
endobj
3366 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 334.461 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 374.309 null ] >>
endobj
3367 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 363.35 null ] >>
endobj
3368 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 352.391 null ] >>
endobj
3369 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 341.432 null ] >>
endobj
3370 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 330.473 null ] >>
endobj
3371 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 319.514 null ] >>
endobj
3372 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 308.555 null ] >>
endobj
3373 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 297.596 null ] >>
endobj
3374 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 286.638 null ] >>
endobj
3375 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 275.679 null ] >>
endobj
3376 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 264.72 null ] >>
endobj
3377 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 253.761 null ] >>
endobj
3378 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 242.802 null ] >>
endobj
3379 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 231.843 null ] >>
endobj
3380 0 obj
-<< /D [ 3335 0 R /XYZ 81.077 105.32 null ] >>
-endobj
-3334 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3339 0 R /XYZ 81.145 220.884 null ] >>
endobj
-3383 0 obj
-<< /Filter /FlateDecode /Length 2202 >>
-stream
-xY[o~_a(xPlQAѺ@N!(2m#ɓ vN13IKsHF"Z&o޽"F -7^D 1r!FurWoiLۺ(+"y3Ȳ+ڷ]eԶ.3vh[wt̀~:N!J i;{;4:-ͤ[&ګzP# P ?M]Q7ڃ@y.UH`(刐D1e?0({/h^PqQ}LY&OMӛUvUs—mbꏺJ:ifu3?{lSCDiUeQ},uMXk#gVu"Qx&iuUMט%,44_K#]}h ՉYgF!^_)Ӣ$Y`q
-UhUUû%CKe
-EN.nNҋ F%2mlnDw/&yQ 3yJDt5O4ǤfM." 5ڗٸ4sA"\3‘{]v0fc-"Qsa }nR#
-$Ҽlm0m6iގ/+te5-NaY>mz=6qM}:<Ǚ`ڥr#N Ivq8B ?0GTMxh?a}[ G 12t.¤s>I;$En]=U2X 3]AF[S[wM}< xC{1Hf=+*K@nĢN$1%qG g4B3lϺbf4]߾}aDooU0MZ8L.QrwixF~Sm>i>KGYJ}ğ0yZ, 3+"4j@:gMn˴(LYwPӑN$Pɦ/F =Iݸ (Ӿϛh~A,Xs BR C훼ycHvYSo30$]xZI>Hdt#N?B2d3Hͨ;և ʰ6󛹑ґ°tuI{swp)}lm(}S` ('b #bl(CF><ح
-'+<71bx*B~"bPɷɏ睵(ҩ1>GÅDJD x336<s}}y
-Ґq:b(=t܆k˩")6~6.H
-px-<hXo!͊aa(lJΊ-E6-ՔUXq3+W 8v\FH)A+{l߀NCyzr2hP<f_
-endstream
+3381 0 obj
+<< /D [ 3339 0 R /XYZ 81.145 209.925 null ] >>
endobj
3382 0 obj
-<< /Type /Page /Contents 3383 0 R /Resources 3381 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3339 0 R /XYZ 81.145 198.966 null ] >>
+endobj
+3383 0 obj
+<< /D [ 3339 0 R /XYZ 81.145 188.007 null ] >>
endobj
3384 0 obj
-<< /D [ 3382 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 177.049 null ] >>
endobj
3385 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 742.996 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 166.09 null ] >>
endobj
3386 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 732.037 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 155.131 null ] >>
endobj
3387 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 721.079 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 144.172 null ] >>
endobj
3388 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 710.12 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 133.213 null ] >>
endobj
3389 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 699.161 null ] >>
-endobj
-53 0 obj
-<< /D [ 3382 0 R /XYZ 79.37 674.791 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 122.254 null ] >>
endobj
3390 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 586.783 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 106.314 null ] >>
endobj
3391 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 575.824 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 95.355 null ] >>
endobj
3392 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 523.157 null ] >>
-endobj
-3393 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 512.198 null ] >>
+<< /D [ 3339 0 R /XYZ 81.145 84.396 null ] >>
endobj
-3394 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 501.239 null ] >>
+3338 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3395 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 490.28 null ] >>
+<< /Filter /FlateDecode /Length 1643 >>
+stream
+xZn6)%g ,I@ϹuI.>8p~?&=|\?_J L:N>?j.}~?0EǸ2<L 2z#W8NLc`FI0ed%cP*qSʃ)^5b:m|Ƨ!IQW2:*uHFx}.ɀdy#sW6y:*Eb^
+}ߝ-V[?Eo˻א򙑏Um~ٞmg)wsbͻPgZgynRUx6RD
+/$ڲ1cVE*/*+cU<+.*-7"V#m9bERV`!I $ya4'圣H8.B;DKȢfƢ`&+[oH.%Ɋ.G:F&9e9'ڞ͝4#4-!G1`P#'?lZ=eous^/r҉]A|=9z\i0 1՜R{aeNۑtbұ{ͼ]-J&RmR0DG9qt9Eg9K2Z;ңvkٖ.1_crE
+@֨c,"HΤ\.
+@xb g`8R~~cϙ-~|Fwh(=也
+s*G y6\XI%HOΖ*#6!%HEHDL
+[(jK%DdFrmmo-+^ *i=psd9P"dwx-L?.ENϙ M j9+B0]5F^[Y_mO很]*!1[$]f3RYBLX9V{9s[\,[ڲL\h_ΑQuvg['2,[ RĠst8яD<N!xeEC@Ϻ%D6Uj*<JZH%\tA=1}DtbQ9P3@4@-] AO䣴]/a%In2uL<
+&G&,%l(؄0]AFƜeNE̩ 5ڴ\C)>-ݯ
+endstream
+endobj
+3394 0 obj
+<< /Type /Page /Contents 3395 0 R /Resources 3393 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3396 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 479.321 null ] >>
+<< /D [ 3394 0 R /XYZ 78.37 808.885 null ] >>
endobj
3397 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 468.363 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 768.829 null ] >>
endobj
3398 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 457.404 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 757.87 null ] >>
endobj
3399 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 422.804 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 746.912 null ] >>
endobj
3400 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 411.845 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 710.89 null ] >>
endobj
3401 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 377.246 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 699.931 null ] >>
endobj
3402 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 366.287 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 688.972 null ] >>
endobj
3403 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 355.328 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 678.013 null ] >>
endobj
3404 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 344.369 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 667.054 null ] >>
endobj
3405 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 333.411 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 656.095 null ] >>
endobj
3406 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 645.137 null ] >>
endobj
3407 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 634.178 null ] >>
endobj
3408 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 605.622 null ] >>
endobj
3409 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 594.663 null ] >>
endobj
3410 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 560.466 null ] >>
endobj
3411 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 549.507 null ] >>
endobj
3412 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 538.548 null ] >>
endobj
3413 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 527.589 null ] >>
endobj
3414 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 516.631 null ] >>
endobj
3415 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 482.434 null ] >>
endobj
3416 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 471.475 null ] >>
endobj
3417 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 460.516 null ] >>
endobj
3418 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 449.557 null ] >>
endobj
3419 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 438.598 null ] >>
endobj
3420 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 404.401 null ] >>
endobj
3421 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 393.442 null ] >>
endobj
3422 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 382.483 null ] >>
endobj
3423 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 371.524 null ] >>
endobj
3424 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 360.565 null ] >>
endobj
3425 0 obj
-<< /D [ 3382 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3381 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F76 318 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3394 0 R /XYZ 81.145 349.606 null ] >>
endobj
-3428 0 obj
-<< /Filter /FlateDecode /Length 1767 >>
-stream
-xڽZMo8WxزiEvM=R=l"+J"Z-I\"# y3d9'ۓ?'/#1&d~u%:af$ҌP&)7ƞ3\ۉ!Vka`&шolE qc @)۱_3;
-n=g<Dl'b0,
-',r'
-c9D}'riB\zr"=oς]u)9 `Gh" A5vDLI} sr`G`qOpb h`Zи/CpM >Sn?y_v4ԑ> ")qHJ
-endstream
+3426 0 obj
+<< /D [ 3394 0 R /XYZ 81.145 338.647 null ] >>
endobj
3427 0 obj
-<< /Type /Page /Contents 3428 0 R /Resources 3426 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3394 0 R /XYZ 81.145 327.689 null ] >>
+endobj
+3428 0 obj
+<< /D [ 3394 0 R /XYZ 81.145 316.73 null ] >>
endobj
3429 0 obj
-<< /D [ 3427 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 305.771 null ] >>
endobj
3430 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 294.812 null ] >>
endobj
3431 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 283.853 null ] >>
endobj
3432 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 723.047 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 272.894 null ] >>
endobj
3433 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 712.088 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 261.935 null ] >>
endobj
3434 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 701.129 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 250.976 null ] >>
endobj
3435 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 690.17 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 240.017 null ] >>
endobj
3436 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 655.344 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 229.058 null ] >>
endobj
3437 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 644.385 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 218.1 null ] >>
endobj
3438 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 633.426 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 189.544 null ] >>
endobj
3439 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 622.467 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 178.585 null ] >>
endobj
3440 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 611.508 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 144.388 null ] >>
endobj
3441 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 558.771 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 133.429 null ] >>
endobj
3442 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 547.812 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 122.47 null ] >>
endobj
3443 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 536.854 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 111.511 null ] >>
endobj
3444 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 525.895 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 100.552 null ] >>
endobj
3445 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 514.936 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 89.593 null ] >>
endobj
3446 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 503.977 null ] >>
-endobj
-3447 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 493.018 null ] >>
+<< /D [ 3394 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3448 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 482.059 null ] >>
+3393 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3449 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 471.1 null ] >>
+<< /Filter /FlateDecode /Length 2462 >>
+stream
+x[n8
+˞؛F[חDDLWB{XP.#AQg4ݫ)]Wˢ0C9ѡhzHM)!D2)L
+ߡFF%*`M ` 9Q#5jZ^Nљ5F|SL]` Z;;$mBj60]Rf:]%{ d;ύU]HYI<Z;HwᐔS{Hϝ!eWɐH]T͟_~pʑ{C⟏GYO:%;sߚU̡[ٌha)zYSǡh2 J8:>ߵX-xVI%(drA2F(3l MVfD^~~.+?Z[OkkZ%f]G`~ yI1c?JjNwУ
+'z\3yѧ^˸쵁E|6sGȹ У;q~7YSF=R_?b+YW{?'ɝ#y=h k6ӏK[p~ 3I{}NhZClI#|B.9qy<`2G"Ͳñ}`ybKlpllmlֵn{*PK.Sb9a|hp?'v؊6aj,>(Z(5&&vH>E1_Bx4]Ol9j(f|ߢP
+ׄ"C KMh;tUM5[%#4<e
+{3i^{?7O]S옹l7ō--@=@n[5i{*gpV( pk"52`=j(4 KDdZPBttFGރdu,l}CR_nXiY_{4Eº T0X5b.&U @]7:9e9e˾5&깡V᛹o jKX HfXrT37,36KYD`Csp!"" fwbp-FШSz \ǭxLejU##Ѣ5!p*D"blIנ)@k1
+sX乳8͈0嬭ΐ:f7}vTxd䠧AE=z7zCU0\ب{**(u[Qi#s|iť"RQ.5iU늫/HV&$9d̷BNf
+وٞL;ာKh]~%箓 #̶rZ^O-S9NߩA||\9>TrZn2/S>_73b@đfo%}8~Ҩ`O8CPKs+t@CA9tru@SuMA\7(]i=%L\tݰ\y)qVrM1'yk2x.k=inc5( +sp~:/ % 2ES;qp­zUT;>ZP
+endstream
+endobj
+3448 0 obj
+<< /Type /Page /Contents 3449 0 R /Resources 3447 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3450 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 460.141 null ] >>
+<< /D [ 3448 0 R /XYZ 78.37 808.885 null ] >>
endobj
3451 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 449.182 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 768.829 null ] >>
endobj
3452 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 438.223 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 757.87 null ] >>
endobj
3453 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 427.264 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 746.912 null ] >>
endobj
3454 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 416.306 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 735.953 null ] >>
endobj
3455 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 405.347 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 724.994 null ] >>
endobj
3456 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 394.388 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 714.035 null ] >>
endobj
3457 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 383.429 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 703.076 null ] >>
endobj
3458 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 372.47 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 692.117 null ] >>
endobj
3459 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 361.511 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 681.158 null ] >>
endobj
3460 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 350.552 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 670.199 null ] >>
endobj
3461 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 339.593 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 659.24 null ] >>
endobj
3462 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 328.634 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 648.281 null ] >>
endobj
3463 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 317.675 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 637.322 null ] >>
endobj
3464 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 306.717 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 608.45 null ] >>
endobj
3465 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 295.758 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 597.491 null ] >>
endobj
3466 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 284.799 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 568.618 null ] >>
endobj
3467 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 273.84 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 557.659 null ] >>
endobj
3468 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 262.881 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 546.7 null ] >>
endobj
3469 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 251.922 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 535.741 null ] >>
endobj
3470 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 240.963 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 524.782 null ] >>
endobj
3471 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 230.004 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 513.823 null ] >>
endobj
3472 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 195.178 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 497.902 null ] >>
endobj
3473 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 184.219 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 486.943 null ] >>
endobj
3474 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 173.26 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 475.984 null ] >>
endobj
3475 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 162.302 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 465.025 null ] >>
endobj
3476 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 151.343 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 454.066 null ] >>
endobj
3477 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 140.384 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 375.427 null ] >>
endobj
3478 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 129.425 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 364.468 null ] >>
endobj
3479 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 118.466 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 353.509 null ] >>
endobj
3480 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 342.551 null ] >>
endobj
3481 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3426 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3448 0 R /XYZ 81.145 331.592 null ] >>
endobj
-3484 0 obj
-<< /Filter /FlateDecode /Length 1501 >>
-stream
-xڽKoF,rvF:@95Z-5zA{-wT[(n/M򧝝ee<p»믗'o/D VZ]ޞx3˜[].Ӌ3NW9,8&x~ %n {fOG 7JGY}ypf;iP2ŽeV@u=jih?[6dƶ9
-J|כUUr2^bis/X|6-7ѾF
-c{~E+Bq0S?S˂LA Χ5JJa!A!C+9nKf|`sqHljTȓq9˪tDXǜJ:jB X楋,ӊ7I҆yKXU0~<☁xt|ߔwTu,M ,fٺ+Qcw 5"ϙyPG<Phd&uդeP妚!`rH O&BJ:b))Ɵb;} `6ne"߬䵪$\l澂'IxM':yB5{فUGM0MކP(V4cذX"D6vJ;R4o[Me)}`d7d}p.I(Цu%4dĕ^z,pZ FjpF]vSh^5I8n~R*U-xִyOږq궽s ZP
-ń3aԄ*&_K)L/tWb5v4WAk%l
-S;0"k@'r"g$y5Wk<)NƮ<ɵPq˜y6D ZSyYͳ!$5:,}gN1ch;-
-yx
->*/-{GsxÜ֭S~ yWfRܰaD^f)*_[zmJVpx_<'uR-!cd[#9휧Y*Dkk5.E:~ZUx<a!:= &*Y D rv;xW۠(2'zV3|z#)aKv5MSKF1~[qɀQ(Ոn@.+\]W޼ߖdB~e$+Pi٫i )cCmTI xR?_KBA0 iR/1xBX?c3͡e4u yo
-endstream
+3482 0 obj
+<< /D [ 3448 0 R /XYZ 81.145 320.633 null ] >>
endobj
3483 0 obj
-<< /Type /Page /Contents 3484 0 R /Resources 3482 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3448 0 R /XYZ 81.145 309.674 null ] >>
+endobj
+3484 0 obj
+<< /D [ 3448 0 R /XYZ 81.145 298.715 null ] >>
endobj
3485 0 obj
-<< /D [ 3483 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 240.011 null ] >>
endobj
3486 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 229.052 null ] >>
endobj
3487 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 218.093 null ] >>
endobj
3488 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 207.134 null ] >>
endobj
3489 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 196.175 null ] >>
endobj
3490 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 185.216 null ] >>
endobj
3491 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 174.257 null ] >>
endobj
3492 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 163.298 null ] >>
endobj
3493 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 122.47 null ] >>
endobj
3494 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 111.511 null ] >>
endobj
3495 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 100.552 null ] >>
endobj
3496 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 89.593 null ] >>
endobj
3497 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 586.515 null ] >>
-endobj
-3498 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 3448 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3499 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 564.598 null ] >>
+3447 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3500 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 553.639 null ] >>
+<< /Filter /FlateDecode /Length 2584 >>
+stream
+x[r#+] U*WYKeܿ|4%5%$YȒ)6<
+>@c2H PEdAT;=^AO%E|{\uVA<*\5<ϵ#d$͒&', c0}0ZSIv\zI")fUT~Zr.")mw(͌ EG)Lpi~o.+"%RDrgM=Tiq
+9h.ec)kHz@nf""ni{׆wkZ 1$-K>[;][BHHYX]ؓNo (ץ94MX>J
+"Vf](1qINW %zEPVvZSS굗"H(]^G ܆nI7̃$H$ ݝ B6FXϤ=hN)屋MV(昊ߤ=~}4K^VҤt< 3ea⺨^B~3Ep+n:訣䨗z)A7ucN9U8֪E : $:)R?)H`N^f^TD8΄< iVyF*(@kv e4|O7r,8?!b4-D"TGVi@b6GS$`M:JZ9eacG2Z6!K x~;u$QQi
+E&ǵq&Eӗxzq9KDs%.Zt,߄`RPA( Qf\c]~oKu g
+j
+S|)}+FV͙]eZnK <B=SoeJfa*RK޽-!.J-l˔zVlΛcR# `w>мga A!n nXl`|%6ʁ=i=~џ,f3'F$bذ*տq _&)A5nʝU{y=`*0-6Z]خ!coah eC`6]
+؂@(yͪ˅|:jO]cFm״GZJ,:q.N&=vp!q+q =Qw x͙50=]nv)<J;[
+z1Ud<
+Z=OũB[}zǁMذSD!{ 4 [K酁
+#_H^:&nw G(~
+k'js;.8o$}Nyߤb` USG#5;\(x1|wgImUo[gߊgk-d]˫A7z.vy!zH$aNZ˓C]POn#g)Ljb _kV}G8m6p*is[hΤⲷxZgq2ˎuftI|WȼDveLco=oKdHz&SU3Dҵmy,vZ\}Pn=Mw/Z\0-Hؚ̒%u@}w1S9oy<J\{`F>b}
+endstream
+endobj
+3499 0 obj
+<< /Type /Page /Contents 3500 0 R /Resources 3498 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3501 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 3499 0 R /XYZ 78.37 808.885 null ] >>
endobj
3502 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 768.829 null ] >>
endobj
3503 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 757.87 null ] >>
endobj
3504 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 746.912 null ] >>
endobj
3505 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 735.953 null ] >>
endobj
3506 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 724.994 null ] >>
endobj
3507 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 714.035 null ] >>
endobj
3508 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 703.076 null ] >>
endobj
3509 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 692.117 null ] >>
endobj
3510 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 681.158 null ] >>
endobj
3511 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 670.199 null ] >>
endobj
3512 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 659.24 null ] >>
endobj
3513 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 648.281 null ] >>
endobj
3514 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 637.322 null ] >>
endobj
3515 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 626.364 null ] >>
endobj
3516 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 615.405 null ] >>
endobj
3517 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 604.446 null ] >>
endobj
3518 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 593.487 null ] >>
endobj
3519 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 582.528 null ] >>
endobj
3520 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 571.569 null ] >>
endobj
3521 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 560.61 null ] >>
endobj
3522 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 549.651 null ] >>
endobj
3523 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 538.692 null ] >>
endobj
3524 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 509.801 null ] >>
endobj
3525 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 498.842 null ] >>
endobj
3526 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 487.883 null ] >>
endobj
3527 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 458.991 null ] >>
endobj
3528 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 448.032 null ] >>
endobj
3529 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 437.073 null ] >>
endobj
3530 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 426.115 null ] >>
endobj
3531 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 361.357 null ] >>
endobj
3532 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 350.398 null ] >>
endobj
3533 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 297.596 null ] >>
endobj
3534 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 286.638 null ] >>
endobj
3535 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 275.679 null ] >>
endobj
3536 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 99.342 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 264.72 null ] >>
endobj
3537 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 88.383 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 253.761 null ] >>
endobj
-3482 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3540 0 obj
-<< /Filter /FlateDecode /Length 2167 >>
-stream
-xڭZ[o~_ah.1X-zp[%WVM3#ʴ8ǻ/L#B|CO'|=}MsVZ=]}'b8IbVLnߧ])sfW2ZSOa[f2.ٕ)qpTìf}rZȪn'ۥy_QS:j0-Xˏ/NF+6EpfвW@'jK}tj R{tN :ٺI
-K[ D C(geMٕ+#MSɳ- ۻM}n_,LX$I.S0mXۜ,Q.FaM,,o?{إ}~<4RIyr+΄1 QT\1A&U2ۮ1Ӓi)iFhډ!ڎrl#EǶskaHGϭ5iڂtn#4Zd&us}ӳ}V j6NچҀA'Iө TdP>z< z~`!$kLǐv;/WhpڻkVjS=]
-"bx4̰4^(7kJd5|-&k9J6*J$$g7sß_@ X_ͼ(뺥G
-0֗IgxA (y4
-޽ADᄒɿ QZSXD>Eq$kHI%Beֶ,h}d }p@ weH,*]P7G](սu"hҴ;V苹C1煄#p7C*=8س&9(Tڑ
-=0=lYW [Y)G-8M>tD
-rLI= A)5JgU-l<øޤV jIґ2^{'Bhz`BNnH ȯxs-<)oT^wzu҅wvp}bT88BҦ1bȱ죽<@%b怯h`HE^œt/IN0&hUd&'|)JrBF{Wb<9Y0kʐf׮*fpVWO?ąA^%%<TvQ\=R6/Xb3Y^qv)ű0*p}*w@0pH{FmYt3G̗r,=mA#6F=m_89tb#`ъ
-AzRI'=I
-Q.\q~8jC.`H8KmHZT/S?ߠ27W*ިi؉d~?
-endstream
+3538 0 obj
+<< /D [ 3499 0 R /XYZ 81.145 242.802 null ] >>
endobj
3539 0 obj
-<< /Type /Page /Contents 3540 0 R /Resources 3538 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3499 0 R /XYZ 81.145 231.843 null ] >>
+endobj
+3540 0 obj
+<< /D [ 3499 0 R /XYZ 81.145 220.884 null ] >>
endobj
3541 0 obj
-<< /D [ 3539 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 180.037 null ] >>
endobj
3542 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 754.895 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 169.078 null ] >>
endobj
3543 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 743.936 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 158.119 null ] >>
endobj
3544 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 732.977 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 147.161 null ] >>
endobj
3545 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 722.018 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 136.202 null ] >>
endobj
3546 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 711.059 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 120.261 null ] >>
endobj
3547 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 700.1 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 109.303 null ] >>
endobj
3548 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 684.182 null ] >>
-endobj
-3549 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 673.223 null ] >>
+<< /D [ 3499 0 R /XYZ 81.145 98.344 null ] >>
endobj
-3550 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 662.264 null ] >>
+3498 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3551 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 651.305 null ] >>
+<< /Filter /FlateDecode /Length 2647 >>
+stream
+x[n% Wh=|]moJU
+~I"q=<>ScN!тq- Rp'Z?i?}?yx W )J7' `^*=?gi5xfJzYLQu!PzsX?P{^arÐ/TxPp?9']d Ӷo#Pxn+Ԥ֌exDDZi1 '\<_dM={ןM2@dKj R^jHkGϑ"E؛43l~P9dzi82!Ũotl
+!,0Y76@X|4|u+vO1=B
+?@_.0jc d\+2|FJ7XȴSV3> eNsT,k]10V`-_Xe
+og US܂TK&B\)&dVe۝4
+WS?RR8
+l)ks/"vA{2:_&'(}Qq2SS{,!TRTu{5f]v&Q[ODf+UP\FVwoH)ۑzJ^,M
+(>˔bѬ6amjjYaCAV~AڙL
+endstream
+endobj
+3550 0 obj
+<< /Type /Page /Contents 3551 0 R /Resources 3549 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3552 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 640.346 null ] >>
+<< /D [ 3550 0 R /XYZ 78.37 808.885 null ] >>
endobj
3553 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 561.717 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 730.971 null ] >>
endobj
3554 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 550.758 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 720.012 null ] >>
endobj
3555 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 539.799 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 709.053 null ] >>
endobj
3556 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 528.84 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 698.095 null ] >>
endobj
3557 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 517.881 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 687.136 null ] >>
endobj
3558 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 506.922 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 676.177 null ] >>
endobj
3559 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 495.963 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 665.218 null ] >>
endobj
3560 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 485.005 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 654.259 null ] >>
endobj
3561 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 426.311 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 643.3 null ] >>
endobj
3562 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 415.353 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 632.341 null ] >>
endobj
3563 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 404.394 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 621.382 null ] >>
endobj
3564 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 393.435 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 580.535 null ] >>
endobj
3565 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 382.476 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 569.577 null ] >>
endobj
3566 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 371.517 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 558.618 null ] >>
endobj
3567 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 360.558 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 493.86 null ] >>
endobj
3568 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 349.599 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 482.902 null ] >>
endobj
3569 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 471.943 null ] >>
endobj
3570 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 419.141 null ] >>
endobj
3571 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 408.182 null ] >>
endobj
3572 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 397.223 null ] >>
endobj
3573 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 386.264 null ] >>
endobj
3574 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 375.305 null ] >>
endobj
3575 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 364.346 null ] >>
endobj
3576 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 353.387 null ] >>
endobj
3577 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 342.428 null ] >>
endobj
3578 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 331.469 null ] >>
endobj
3579 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 320.511 null ] >>
endobj
3580 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 309.552 null ] >>
endobj
3581 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 278.667 null ] >>
endobj
3582 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 267.709 null ] >>
endobj
3583 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 256.75 null ] >>
endobj
3584 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 245.791 null ] >>
endobj
3585 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 234.832 null ] >>
endobj
3586 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 223.873 null ] >>
endobj
3587 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 212.914 null ] >>
endobj
3588 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 201.955 null ] >>
endobj
3589 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 190.996 null ] >>
endobj
3590 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 3550 0 R /XYZ 81.145 158.119 null ] >>
endobj
-3538 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3593 0 obj
-<< /Filter /FlateDecode /Length 2433 >>
-stream
-xڥZ[o~ϯ:#)-,h` . ١ul#qo9"u'C"GL֓dU=W?i>$5¤dB'FED+JE'/SvOZ?tbH7c0ԄWmeBhy{+M`+vnfdiSۯj cbG4<%TdG$E3m3_fww\̛.è#mW,jDO1:]Td:ooh_v%芫7ek?Eµ>~$ctJ8)a/?_>0|dvolҔn,[.˽qͣGoue]bZݜmM/=5 eJ :24r!~1+a, ZE`llsl|1g.e0sޙ@% "~̽lI'֫ۗ3$UIJD;|8 xcJed_Nӧk)h]{ю{*[00.4?D5UVԛ;>=1f
-=N2^&`;Ay#DmD`/}eia
-DWIhE<ߖOv͊
-[ϮoTn(9͛j  | >?t{hF?S+< -n\cj!nboTrp[$V'YKs 7@7n^ΌJR`0Uecfw9MAv
-o!~o ]eCN=MxGQ8}c*j3׉#
-L
-Bwm6 [E>!1Qk nԮ~ @ެc4}dyz0Eg ,\A XݤRq`6 56:E<y}zSM<[|2:C,5D8F
-Ye
-endstream
+3591 0 obj
+<< /D [ 3550 0 R /XYZ 81.145 147.161 null ] >>
endobj
3592 0 obj
-<< /Type /Page /Contents 3593 0 R /Resources 3591 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3550 0 R /XYZ 81.145 136.202 null ] >>
endobj
-3594 0 obj
-<< /D [ 3592 0 R /XYZ 78.37 808.885 null ] >>
+3593 0 obj
+<< /D [ 3550 0 R /XYZ 81.145 93.362 null ] >>
endobj
-3595 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 768.832 null ] >>
+3549 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3596 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 757.873 null ] >>
+<< /Filter /FlateDecode /Length 2904 >>
+stream
+x\Ɏ$ W,Q4'uQ{Dj
+CvVDHIoxP7ǜ_& ~747Z~k˹|(\Q] e\ QEBx;p2 ෈ #O+3}K@"|QzIC<`& `S/bwY%3n#$[!$?Ip7A>t5ޓep"5bsxE
+\sY~$T/=
+yKb{^op V W"O+ }7p̈́`h%2j Hb͐ԙpEgՁAwItxKkbA2刈*ezȼ K߾z~LO~. jY9s*]w2lD;30jz/L׈f
+ Ff{{uo$>2yYZ-m3jD
+D5lmQڇ!VPQV
+ z]aSxzz
+TBRl'ݻgMv`+y.)i)sx)gCYY#%0䨻s=:f/<WS_4TN:Th45&_6zE{a13yCRF#+R\k
+?E8Wkz³1+eܮ%X1YBy2wT$cmZbyu7cu/j8Zm JcKAW]2
+rj)"njbBrB\hSy:ˌZ{ܘnq,8ˌå?^<bШ ] Z5N)03FT';_ Mxʕ\̎тJWQ.q6Mכq2tJiži;Nh5"Ƶe{>tPN8ewMHLP4 {J/>-z4q
+|gOuDcyO֚3'хfW̰}Z'-G[ [s˅6&2ʩN'9ۅhqWY?S-,zay-;XrРU叓SSc_ lp3r1 2qCXu*9R,P,;Úb{֎frwxϥ
+aFl%j$W/e8"mcX@]8`b湱.U c3i5Z  fbe !GHFӉv=gԗ`ܭo5׽„z,<frkH#<KDzK:n^y] 1Ȗ{GqyU/Zyײ9luaH[+zd9 J/D>[F2MS tCa-.d?
+;4ޫ$ nL*<빦x{Vᚎ]-pP@>VgI3)·?iFpڳM*qΒ@85 U-QYzt>ɋLϼ"
+ckJ^<t 1f\G|O3
+endstream
+endobj
+3595 0 obj
+<< /Type /Page /Contents 3596 0 R /Resources 3594 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3597 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3595 0 R /XYZ 78.37 808.885 null ] >>
endobj
3598 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 730.971 null ] >>
endobj
3599 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 720.012 null ] >>
endobj
3600 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 709.053 null ] >>
endobj
3601 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 698.095 null ] >>
endobj
3602 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 687.136 null ] >>
endobj
3603 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 676.177 null ] >>
endobj
3604 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 599.464 null ] >>
endobj
3605 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 588.506 null ] >>
endobj
3606 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 577.547 null ] >>
endobj
3607 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 566.588 null ] >>
endobj
3608 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 555.629 null ] >>
endobj
3609 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 544.67 null ] >>
endobj
3610 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 533.711 null ] >>
endobj
3611 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 522.752 null ] >>
endobj
3612 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 511.793 null ] >>
endobj
3613 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 495.853 null ] >>
endobj
3614 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 484.894 null ] >>
endobj
3615 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 473.935 null ] >>
endobj
3616 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 462.976 null ] >>
endobj
3617 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 452.017 null ] >>
endobj
3618 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 436.077 null ] >>
endobj
3619 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 425.118 null ] >>
endobj
3620 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 414.159 null ] >>
endobj
3621 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 403.2 null ] >>
endobj
3622 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 392.242 null ] >>
endobj
3623 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 361.357 null ] >>
endobj
3624 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 350.398 null ] >>
endobj
3625 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 339.44 null ] >>
endobj
3626 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 328.481 null ] >>
endobj
3627 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 317.522 null ] >>
endobj
3628 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 306.563 null ] >>
endobj
3629 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 295.604 null ] >>
endobj
3630 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 254.757 null ] >>
endobj
3631 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 243.798 null ] >>
endobj
3632 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 232.839 null ] >>
endobj
3633 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 221.88 null ] >>
endobj
3634 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 210.921 null ] >>
endobj
3635 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 120.264 null ] >>
-endobj
-3591 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3595 0 R /XYZ 81.145 199.963 null ] >>
endobj
-3638 0 obj
-<< /Filter /FlateDecode /Length 2549 >>
-stream
-xڭZK6ϯpN1#>%i`'bX4$ԶFIo!ZjŲHWŢ"^!?˅DR:^$db/Xv !%Lj'S{hY0!ҧ̗$$r-W4I~ꟄsOyxulYqHЉ"eݕwxhJOM?gUͲ"Abb^Eo}'eu^ \mc՝,-P\QJ`?&C2ŔMPahR3> HAWASoI*}j_BD a):0g>k0oLa5DJy=;vxLs\qu{:ey/{[,)".):cݕ -}4OU϶U;f.SUΌmǝzqT{LA+ j_ϋ!j*o͋HͳksRyW궝>evmHofn㾾S
-^8G5Г͍0j]Ԇb銍i*m_.F">tMKLDbܸ<mMha-%Q_.AӪzQ-Ύ jcOhD KY?N83ve.adXN%?LbI>YmMs F3i+:+`˦jî`)b)u#ǣaț%4 &0 jL߳rCr  .Dp
-$Ah x)6M}?UOaMU5{
-6ӑB<;Cnwqm.{&cl]},D4v- SgKC[Gjbw1M)xrܢu,Fi8Ice/lq7ISWc-pխc%;ɰG;NQkzDl4?Kxd
-樫2n*fJ0n6% Pxy9!y* `\~ >@w=joٍOJ[ac.'ptMYs(LPIQWSoL\WXїhMT]썺e5D󯅵|ْvGeUu|ݛ~0Gnfx>+ywkMUp8j?Q𔨩6nz;͚0(,g"Ab8Iaϰ;#Jv} e˨]fP$D ʐHɹE>jpL\sK K6ao ϻS Tmm FW-,,49
-ak$lM2e鴮moLpjG=JI/1ewwQ SDbDXeȣ~U؝>pXȣ>;?OݮeH!c$2yzn YhN8&У~K_3VpO^?"~}\0l>-
-.H?-ttL)꛱δJd&)]&ݠ=Bt7۹p >BS
-endstream
+3636 0 obj
+<< /D [ 3595 0 R /XYZ 81.145 189.004 null ] >>
endobj
3637 0 obj
-<< /Type /Page /Contents 3638 0 R /Resources 3636 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3595 0 R /XYZ 81.145 178.045 null ] >>
+endobj
+3638 0 obj
+<< /D [ 3595 0 R /XYZ 81.145 167.086 null ] >>
endobj
3639 0 obj
-<< /D [ 3637 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 126.239 null ] >>
endobj
3640 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 115.28 null ] >>
endobj
3641 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 104.321 null ] >>
endobj
3642 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 93.362 null ] >>
endobj
3643 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 656.254 null ] >>
-endobj
-3644 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 3595 0 R /XYZ 81.145 82.403 null ] >>
endobj
-3645 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 634.336 null ] >>
+3594 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F68 181 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3646 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 581.534 null ] >>
+<< /Filter /FlateDecode /Length 2738 >>
+stream
+x[ˎ:+H
+ tu.0YoG/Z2-N.0N9DS|R"/}+LۏS+ _ yQoҪ˯^yҾK邔SJ .^k )()}n+H_GPoG|u2.Ocx(NQ ,sNτ`PB`p!pJi
+i9iy6LPGYs=)%TD1
+(ЛR1Ux(*
+HlY?#'7c,LUjtU!Ťt/ ڱ-u(edpv~ طؒ#y!L/ڌڤů)S kIT3
+f~ݐ8|FmfV\
+6/v^$tɖԋb" ~2@w?"r-'+wE꣟ Z[1ԥUbCm'1[J(o6-Zu%apT`4\R0_)$7z^ʋXPq擉c:YMNX`K=Y<kG}$u(H9<'T[%^I6٥J622/u*\T0#8t_g[5K *Ѩ
+aSPijd(M4;ٺ~gQT*yn7Zwx[@bݹڛ:ŭsݢ7WҰ=;B;#虮'@Aq;FTM+õC\Sg
+Qax_]!:xHضmg揩WgFr=eEgb j\ϙQJj0͞Fdo/mYF,mJ[:{i=ødn(358'v6OwM(;EX'H6F1KSgVdZLIdMwZhfv^rxPJe;3F3I8%5#;Kwum `ަ?q݈CҞ0O?Q>yrFTt[l>}Qz0nϜOp9%'-H(g_ kB/ U#NNR/g?iɣC8nUyr$¹-B@#΁MFh>=+xrB d`<揖t~i;e`85Q+m~Ήn}Aδ􈗣}?z
+endstream
+endobj
+3645 0 obj
+<< /Type /Page /Contents 3646 0 R /Resources 3644 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3246 0 R >>
endobj
3647 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 3645 0 R /XYZ 78.37 808.885 null ] >>
endobj
3648 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 559.616 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 768.829 null ] >>
endobj
3649 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 757.87 null ] >>
endobj
3650 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 746.912 null ] >>
endobj
3651 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 735.953 null ] >>
endobj
3652 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 724.994 null ] >>
endobj
3653 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 714.035 null ] >>
endobj
3654 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 703.076 null ] >>
endobj
3655 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 692.117 null ] >>
endobj
3656 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 681.158 null ] >>
endobj
3657 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 670.199 null ] >>
endobj
3658 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 659.24 null ] >>
endobj
3659 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 630.349 null ] >>
endobj
3660 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 601.457 null ] >>
endobj
3661 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 590.498 null ] >>
endobj
3662 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 579.539 null ] >>
endobj
3663 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 568.58 null ] >>
endobj
3664 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 557.621 null ] >>
endobj
3665 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 546.662 null ] >>
endobj
3666 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 535.704 null ] >>
endobj
3667 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 524.745 null ] >>
endobj
3668 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 513.786 null ] >>
endobj
3669 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 443.051 null ] >>
endobj
3670 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 432.092 null ] >>
endobj
3671 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 421.133 null ] >>
endobj
3672 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 410.174 null ] >>
endobj
3673 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 399.215 null ] >>
endobj
3674 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 388.256 null ] >>
endobj
3675 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 329.477 null ] >>
endobj
3676 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 318.518 null ] >>
endobj
-3636 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3679 0 obj
-<< /Filter /FlateDecode /Length 2194 >>
-stream
-xڽZ[o8~0{1ayE1v0Ev،#Ԗ<4}uHQ}t±)}|t/oh7>tTs-g7wo<36KR"YnzJh3k77Rǽ]\]fv{e`Q6!/™:_g&/ R>6p]mmmƕY
-ߎ~2RLp ѭVfD&DK1 XsJ˖,¶^
-:T`nׇb<98VjYt`8ht lT`8 ѽbZeh'/"2@o_ˇz~"W)x_p&"tme7y'!-C~ ev!%oBE~}jtQ5F5: .Dhڮyg Ѕ|9;J<nh63RIСu8MN%X4o~k
-1?>5l7 Ҥ+;{M uˆoM׶2쮬kl[{69ZmAVw:wGQts"mTL,',=-7vukAvAOC`25PDf.B n~IDf$q`V1r%'Ͻ$.G)ۺbH^ VP5#9
-5*7c?g;38./ =y"b1+஺n\R8}>:s-)GV+\qiTp%#)<F%C4:q DCt[a-
-%IQA74iJIST?:xq B81
-mlle֑뻹_8}~Rg,X/ޗ0T
-^=qg<$Я!&q_
-endstream
+3677 0 obj
+<< /D [ 3645 0 R /XYZ 81.145 307.559 null ] >>
endobj
3678 0 obj
-<< /Type /Page /Contents 3679 0 R /Resources 3677 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3645 0 R /XYZ 81.145 296.6 null ] >>
+endobj
+3679 0 obj
+<< /D [ 3645 0 R /XYZ 81.145 285.641 null ] >>
endobj
3680 0 obj
-<< /D [ 3678 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 274.682 null ] >>
endobj
3681 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 743.087 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 263.723 null ] >>
endobj
3682 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 732.128 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 252.765 null ] >>
endobj
3683 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 721.169 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 241.806 null ] >>
endobj
3684 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 710.21 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 230.847 null ] >>
endobj
3685 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 699.251 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 219.888 null ] >>
endobj
3686 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 688.292 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 208.929 null ] >>
endobj
3687 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 677.333 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 197.97 null ] >>
endobj
3688 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 666.374 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 187.011 null ] >>
endobj
3689 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 655.415 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 176.052 null ] >>
endobj
3690 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 639.791 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 165.093 null ] >>
endobj
3691 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 628.832 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 130.224 null ] >>
endobj
3692 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 617.873 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 119.265 null ] >>
endobj
3693 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 606.914 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 90.374 null ] >>
endobj
3694 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 595.955 null ] >>
-endobj
-3695 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 580.33 null ] >>
+<< /D [ 3645 0 R /XYZ 81.145 79.415 null ] >>
endobj
-3696 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 569.371 null ] >>
+3644 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3697 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 558.413 null ] >>
+<< /Filter /FlateDecode /Length 2223 >>
+stream
+x[Ɏ#7 WF#4h]ܷ FRI%%;%2 0=.|H鯓<|}Q7`
+IhO(!:}YJ!V/±) ɤoYx x,wHidNxGR^ç
+#号ߢ~$=H/4(]ñZ12y^W)ɕ9CۑJVT19LC*W!4MLJ&.uA->D sBISҮU6̩@q[s&W)Մ{fS R8Z?U'ީ[ 3
+E xh.J ƟFF;g4^C%阒Oz
+hr4Qz$"bOK*&*c||T$q(z@$sG
+gz/b+݇=aD2aw Iq(Te@@PX\eHy?.8ҥp 9z4qMiӭؘLy
+[*!89m>S!Si+]MwbJ7p~V-C8^FSpNSM#<
+V0؛>Jrv֘<Jsw qRذ|jd~p}AGG˭QHOwȓb }rN4<9JHuњl9NBFC>$F T!k!FD*W IK`4 =RR{St`IhWnYdAV,HiW5HceKYh
+BfJhUFQm[,TZh ,)
+:^pF$@F-J鑾ҏG..!OR^ BQxv2_Ma_@#A 4ѢЊFLf1`3g
+cnnK+nt([pJ([2:,{~4%HgdŝR{wݫѵ+(==
+xyA@ae͟mY$hn6n A}:eUBO|U6$ܒti3Q' nrm;i;aT+<p$N59g*ItHXbl5MO1!Ov\gz!y=zm3a"mV[[mWlQNV!v{]nKݰ88 H)@k+inUdlMU櫗[ cC?/7;7t] t|&f93h-[uX˾08sp9~F-_˃1
+mCɶCeFsv"E}] <TodµwO66גQّ|*ahľՍxQ3D>N Zp3pO%f|w `$dk!mIZvWVOl
+Y$
+4%!eIA<\aHQ5smvל0-S$ZcH`дzj!!m k<-t(=OSk0%ڰ.#oi*^4[31Pk!=RCȼPhpPNnp N,#\>]*9 :H~mQu8;<̀=I@:xQ(=fnhs?n@80q+/6rH^s{~$gI7˥kM)XI6T׷
+endstream
+endobj
+3696 0 obj
+<< /Type /Page /Contents 3697 0 R /Resources 3695 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3698 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 547.454 null ] >>
+<< /D [ 3696 0 R /XYZ 78.37 808.885 null ] >>
endobj
3699 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 536.495 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 742.926 null ] >>
endobj
3700 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 506.084 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 731.968 null ] >>
endobj
3701 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 495.125 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 721.009 null ] >>
endobj
3702 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 484.166 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 710.05 null ] >>
endobj
3703 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 473.207 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 699.091 null ] >>
endobj
3704 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 462.248 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 688.132 null ] >>
endobj
3705 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 451.289 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 677.173 null ] >>
endobj
3706 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 440.33 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 666.214 null ] >>
endobj
3707 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 399.799 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 655.255 null ] >>
endobj
3708 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 388.84 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 644.296 null ] >>
endobj
3709 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 377.881 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 633.337 null ] >>
endobj
3710 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 366.922 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 622.379 null ] >>
endobj
3711 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 355.964 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 611.42 null ] >>
endobj
3712 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 345.005 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 600.461 null ] >>
endobj
3713 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 334.046 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 589.502 null ] >>
endobj
3714 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 323.087 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 578.543 null ] >>
endobj
3715 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 312.128 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 567.584 null ] >>
endobj
3716 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 271.597 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 556.625 null ] >>
endobj
3717 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 260.638 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 545.666 null ] >>
endobj
3718 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 249.679 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 534.707 null ] >>
endobj
3719 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 238.72 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 523.748 null ] >>
endobj
3720 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 227.761 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 512.789 null ] >>
endobj
3721 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 216.802 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 501.831 null ] >>
endobj
3722 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 205.843 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 490.872 null ] >>
endobj
3723 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 194.884 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 479.913 null ] >>
endobj
3724 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 183.925 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 468.954 null ] >>
endobj
3725 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 172.967 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 457.995 null ] >>
endobj
3726 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 162.008 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 447.036 null ] >>
endobj
3727 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 151.049 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 436.077 null ] >>
endobj
3728 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 140.09 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 425.118 null ] >>
endobj
3729 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 129.131 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 414.159 null ] >>
endobj
3730 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 118.172 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 403.2 null ] >>
endobj
3731 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 107.213 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 392.242 null ] >>
endobj
3732 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 381.283 null ] >>
endobj
-3677 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3735 0 obj
-<< /Filter /FlateDecode /Length 2401 >>
-stream
-xڽZM6ϯ0 l3ScL=!h`m-,yd;䷧HJȦіE=HV*O<>ǏO 2J>yz@ODDI$'OOY|sJ(G\\gwi텙w;/Oeu˺CUO,fTN:,j(Z$l3M(GDL8~7G}_nBE?ۜɨi<JSR7B!yKWuGUB']{&M%(qaSFt[ǏL4PLG/4bF诳;AEMs(suM;hʳ7Zڍg4DD0 v48,FM"FyCifYSSm뭵_E_f}oI8L &İ3bN3:-b֊g$ϗ*gm2GxTmi/̳#Yx &hh:
-8=A#HT?GO6vrJu#+}{ Cnj_lY?a._۾mVT-oxuG-`3[NiI jLAO+xF% e (clxù)ۋ2[x%S2Ǯ UyoMbw q쩁rY+*jwnJY>lu,%
->\0A`.mi06_qWEj|C﫮;^)ĕBis_ǖ)fI'B#[΋g/Yy
-B&5yBD׬7|
-Cgjx '龭WUbs^/]y]O>DsD)8rrcM@'rr")bXiD@A-wv?hjʺڏW){V{s sP+$3B D04MJ> RB8!n 4͓~-d:T\ DWh[a.$2CLI$CJyhUvǜ: h9#i߻
-endstream
+3733 0 obj
+<< /D [ 3696 0 R /XYZ 81.145 370.324 null ] >>
endobj
3734 0 obj
-<< /Type /Page /Contents 3735 0 R /Resources 3733 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3696 0 R /XYZ 81.145 305.567 null ] >>
+endobj
+3735 0 obj
+<< /D [ 3696 0 R /XYZ 81.145 294.608 null ] >>
endobj
3736 0 obj
-<< /D [ 3734 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 265.716 null ] >>
endobj
3737 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 254.757 null ] >>
endobj
3738 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 243.798 null ] >>
endobj
3739 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 232.839 null ] >>
endobj
3740 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 221.88 null ] >>
endobj
3741 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 210.921 null ] >>
endobj
3742 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 199.963 null ] >>
endobj
3743 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 189.004 null ] >>
endobj
3744 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 178.045 null ] >>
endobj
3745 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 167.086 null ] >>
endobj
3746 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 156.127 null ] >>
endobj
3747 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 145.168 null ] >>
endobj
3748 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 134.209 null ] >>
endobj
3749 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 123.25 null ] >>
endobj
3750 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 112.291 null ] >>
endobj
3751 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 101.332 null ] >>
endobj
3752 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 90.374 null ] >>
endobj
3753 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 3696 0 R /XYZ 81.145 79.415 null ] >>
endobj
-3754 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 460.986 null ] >>
+3695 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-3755 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 450.027 null ] >>
+3757 0 obj
+<< /Filter /FlateDecode /Length 2854 >>
+stream
+x[n#9+";`([V}1י\J\UR*{P ?]ż.}&~gb`܈/<sn~ps|]~{q#%$$gBń{@Òuϴ#%PJ*o\^5 N|M]
+L %WbI'VO)JY}AofNT{L"72hUk|!|C
+Z\0MJ4 <pד`oRU2ޕ>ۀp 
+k]L1Ȋ+Q] be+M}N90XǽOL,FG(~U
+YdU@MmW,9'Gb6A.b V']Pggg7hF
+wLI0jGڶvSPjpHD/1Z|r9W-T? MBo,S~S)S+L JSג> |oe>q{$qH5 /SyD3rD
+SQp_Ӵ&)@EE(ƭ:$ܸBBhQOOzA\=T(窷 ^iװ,̣r< V7g}PPu!Tk[6[&g-CA:7R%!<>~c
+2 A3kͣ1@FmEG+eNPSw&aaG@˶ٙE90P(fE&MnT+̩e)=::Tn9VK Ł҈,Ve+- pz
+jQETOW.S/dkXh&Ⱥe:2P*2Ni/s-/}L0he^Iߕ[jb&6vl j"mpA3*ue*OZM4_ugN@bl˙=̶[j'jh)1<_c!{=Rm1OF.OeiZOHD(~нiu.2I|qga=m
+,]F)/(BzɠBp$\?(>q8 `s;V>Pm jz-߉c,;S;(4PO!3|igSߢ=S]X)]<O=tec#f*? < 00ҧy Vz
++zCB`VY '_g`3?'\-kC3xXt Z=4y{TZ[RQ㬡ɷ3oU!ts;6״M~6Oq''hM]Kl19jFcz$l70qKʏ LLK
+Sj;I1.| @mG(irq:Z>V&Wf^xܹXJ? Ke@h HxLҭ@7 x;l)S:R:<
+FnbzkH?Qm#byzBGuoaCoרjNGIOn1% e U"ILhsQy[uH9*B
+endstream
endobj
3756 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 439.068 null ] >>
-endobj
-3757 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 428.109 null ] >>
+<< /Type /Page /Contents 3757 0 R /Resources 3755 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3758 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 3756 0 R /XYZ 78.37 808.885 null ] >>
endobj
3759 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 768.829 null ] >>
endobj
3760 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 757.87 null ] >>
endobj
3761 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 746.912 null ] >>
endobj
3762 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 735.953 null ] >>
endobj
3763 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 724.994 null ] >>
endobj
3764 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 714.035 null ] >>
endobj
3765 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 703.076 null ] >>
endobj
3766 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 692.117 null ] >>
endobj
3767 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 681.158 null ] >>
endobj
3768 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 670.199 null ] >>
endobj
3769 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 659.24 null ] >>
endobj
3770 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 630.928 null ] >>
endobj
3771 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 619.969 null ] >>
endobj
3772 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 609.01 null ] >>
endobj
3773 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 598.051 null ] >>
endobj
3774 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 587.092 null ] >>
endobj
3775 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 576.133 null ] >>
endobj
3776 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 494.586 null ] >>
endobj
3777 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 430.408 null ] >>
endobj
3778 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 419.449 null ] >>
endobj
3779 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 408.49 null ] >>
endobj
3780 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 397.531 null ] >>
endobj
3781 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 386.572 null ] >>
endobj
3782 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 375.613 null ] >>
endobj
-3733 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+3783 0 obj
+<< /D [ 3756 0 R /XYZ 81.145 364.654 null ] >>
endobj
-3786 0 obj
-<< /Filter /FlateDecode /Length 1852 >>
-stream
-xڵZK807M1 LCN  j[r1[ԃ"r'HMSX_ˡ~(~󯇛WoIX&":c3fff4#Tn\pfo|֫7:Yh-lf@d+J^vrlS}U}y{?:/w!*=4~ mvRŘv8p; %c4^6Ye3 \y=|#1p"kmQiEM5Z{NYT6f?U}_Xutƫ#Q&9c.+]6U_)0cQ7m
-V!)TnSNSk)jK6eӞ4nOiZs"'kn.,1z ̼qr|ȶcU#Zc)F-N}99C(a;y4DÁO'nAQ,BODs%*AS˦h^\8%c3Ϊإ氈ߺMcOXeUO_鐗+Pc_,Cuf.KV.S}bnZImS:
-=
-=1*|/y!zTp~ꞣ
-.u6'5Q;Л\d25`A#=)bwd؉Tc: Æ-q?:Fx?EowTynn-sWjϣB)Y5Y:D3 K I'I2BdL -q
-endstream
+3784 0 obj
+<< /D [ 3756 0 R /XYZ 81.145 324.387 null ] >>
endobj
3785 0 obj
-<< /Type /Page /Contents 3786 0 R /Resources 3784 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3756 0 R /XYZ 81.145 313.428 null ] >>
+endobj
+3786 0 obj
+<< /D [ 3756 0 R /XYZ 81.145 302.469 null ] >>
endobj
3787 0 obj
-<< /D [ 3785 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 291.51 null ] >>
endobj
3788 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 280.551 null ] >>
endobj
3789 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 269.592 null ] >>
endobj
3790 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 258.634 null ] >>
endobj
3791 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 247.675 null ] >>
endobj
3792 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 196.611 null ] >>
endobj
3793 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 185.652 null ] >>
endobj
3794 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 133.429 null ] >>
endobj
3795 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 122.47 null ] >>
endobj
3796 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 111.511 null ] >>
endobj
3797 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 100.552 null ] >>
endobj
3798 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 89.593 null ] >>
endobj
3799 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3756 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3800 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 637.325 null ] >>
-endobj
-3801 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 626.366 null ] >>
+3755 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3802 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 615.407 null ] >>
+<< /Filter /FlateDecode /Length 3355 >>
+stream
+x[r9+f
+1Zws& ;Gqv)՟
+Qv<j3]:{_BD *o`\p4Fn$rJ+53RB#=aLK4)~(W``K 9OKW-on$n,Ӓ[??>ȸ Y+w^(+de3TUd2 #25CO'}y pGX cP5_
+MڗWJSqJSq@c+'0?jZ+Y,-߰/|N9Q6ݜFa]/HF;Ľ2gJ_r 2uMʔ]%k
+hjpR~7t[s^kd2'4l;2<s0J4yYr .Zj ݢ 9vd1v\QPP"c#.
+D.+擥
+1|@Ii0X"Y&bXZ^ciK9Y-~)m^DRl&Az5SDG{߯l̯;)g6P͑%J8h#^joWa aN&7KND*)E{^1KNMȿ$daB&
+zP\Q񱓸PnL't=T턢-VkSuuXP\EdYrV*Co
+;^ $͸U
+2hXҧ6}d*sci_w>WyƘ9H%mylC;Do
+M2O/ j>+Ĩi X
+-I9WzEe,/k4]UOlA8FY.,zJ1XR#lpZVWmsL
+mp@jqi~FU05[61<>~,
+}1joߨ2C |wk+R()]ZoSX?tF̤r- M\UڱzJaZmA,i#A<$;;,Hq³FإΖdċz w,FSBڷW0==Mz5]4g |Г7 w }DދiN65[1dL>w}(^OieTk(~-VGc5B.ҵ?ߌ`tE|(gqC!џ/SA`ڏAʧ̕Ȃ˙y tើpXr~ځC؊1n:R; qi£N zT7Ȕf|_)\FC]s}GYrLZW͞+PF4Q4B 7lڦqCٓ>BZOR5SV\8`܎:n<mII^8c]BPEXkz⤳MBLۘhCӷQV GZ9'.Z|P:?rփ!<RUVK`ZK暾0 ce9RBi P=n:B-^kmRe^wSu/;LZ[|dCz_"0Ke.P<Fi%ٺyR;@ugcw H#mv{m;!ɣ|߯IqHrx#7sH+K*cO0}2}gOⲜ톫g+}ư{moƊ (z F1]3!1(šu<ꠤ#\iƕg'! 'xOsZZt*{O#tXvxp=1J<uP2v
+Lv~x3w-"ީsν&bogth ۃS|mdhIzߤlZ3giL)5a
+|LJ({J34".W(^
+_Jg-ɵ_+JO|ۑ/WkK7ydR v.+al}p
+V-lǴ\V֮ym~|;=-2@k싖b} Dc
+endstream
+endobj
+3801 0 obj
+<< /Type /Page /Contents 3802 0 R /Resources 3800 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3803 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3801 0 R /XYZ 78.37 808.885 null ] >>
endobj
3804 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 707.104 null ] >>
endobj
3805 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 678.299 null ] >>
endobj
3806 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 625.584 null ] >>
endobj
3807 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 614.625 null ] >>
endobj
3808 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 603.666 null ] >>
endobj
3809 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 592.707 null ] >>
endobj
3810 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 576.854 null ] >>
endobj
3811 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 565.895 null ] >>
endobj
3812 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 453.345 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 554.936 null ] >>
endobj
3813 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 442.386 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 524.181 null ] >>
endobj
3814 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 413.936 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 495.376 null ] >>
endobj
3815 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 402.977 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 484.417 null ] >>
endobj
3816 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 392.018 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 473.459 null ] >>
endobj
3817 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 381.059 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 462.5 null ] >>
endobj
3818 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 370.101 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 451.541 null ] >>
endobj
3819 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 359.142 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 422.736 null ] >>
endobj
3820 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 348.183 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 411.777 null ] >>
endobj
3821 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 337.224 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 400.818 null ] >>
endobj
3822 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 326.265 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 348.102 null ] >>
endobj
3823 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 315.306 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 337.144 null ] >>
endobj
3824 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 304.347 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 272.646 null ] >>
endobj
3825 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 293.388 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 261.687 null ] >>
endobj
3826 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 282.429 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 232.882 null ] >>
endobj
3827 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 271.47 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 221.923 null ] >>
endobj
3828 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 260.512 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 193.118 null ] >>
endobj
3829 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 249.553 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 182.159 null ] >>
endobj
3830 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 238.594 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 171.201 null ] >>
endobj
3831 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 227.635 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 160.242 null ] >>
endobj
3832 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 216.676 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 149.283 null ] >>
endobj
3833 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 205.717 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 138.324 null ] >>
endobj
3834 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 194.758 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 122.47 null ] >>
endobj
3835 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 183.799 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 111.511 null ] >>
endobj
3836 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 172.84 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 100.552 null ] >>
endobj
3837 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 161.881 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 89.593 null ] >>
endobj
3838 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 150.922 null ] >>
-endobj
-3839 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 139.964 null ] >>
+<< /D [ 3801 0 R /XYZ 81.145 78.635 null ] >>
endobj
-3840 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 129.005 null ] >>
+3800 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F72 266 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3841 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 118.046 null ] >>
+<< /Filter /FlateDecode /Length 2777 >>
+stream
+x[Ɏ#7 WF(j
+yU[.\ Dqp6qwg4VFy庪5&.vDn5F6L#:&Fckq㽀xdJxq|@/sk8
+ʠP8*pL x1ũA䀟kr)Q\NH '?) <{ٮΙ0
+{nܸ5Qs޻>ÕI,1ASYeu:fm}#p$~̠qr6)FJ35P\QQ2aemzIC7R@if̶r֍9ZZ qd*f
+.H%l(͔=(#:6 Ƀ^B
+s4qǰטUkmiy6Ϟ#́Qy.r|ݲ" -ix6=nz
+'NYC`^k!\k(MM[~غ(ӪV=]{zKL(k5;T3#%`FS".vd8{_㬧{q\of:.7hWmk>PZWSVNO21|A#Kw</AzO"ӹ6%_ȡn8+1©ɝBSs#>r,P9mBhu`n2TMv Jkz՛wƽ'b0TIfe=Q
+O "bm,ICSh׼ %YF7wP q?!g MOi &p%))[F]b#(88{Jgc [3c
+CfB8($!y o>pfuO[E6QYǒ3V ya=!:xbGe!g cXZ* gehpu2elr pzB^qY \06iGW&09s`_u
+endstream
+endobj
+3840 0 obj
+<< /Type /Page /Contents 3841 0 R /Resources 3839 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3842 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 107.087 null ] >>
+<< /D [ 3840 0 R /XYZ 78.37 808.885 null ] >>
endobj
3843 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3784 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3840 0 R /XYZ 81.145 742.926 null ] >>
endobj
-3846 0 obj
-<< /Filter /FlateDecode /Length 2867 >>
-stream
-xڭZ[o~_a@GNiݝm` t
-AX[Jr` 63}H,<wύgx뛸E\?_Jdv|aP<3%r&F?%]\?dP"USbLb$iSƔ_m՜u:!mle.uIƮ8A}2
-#t˞Ϸ")]Lk,ʳ. cng ;a>Ρqz{5{̤@щӵssʶL9$rOwvE=Ha'dZˋ[4 Mcu
-^+M11n*ŅDJj8(u2,")VmQ|xS?i򢽮1>""!`sS B_2a^v8tyԃ86EV1{6PLL]2hHңv9bVe?\߄(CΥx)u>a<N+(ɢksIm k3% ߊF[S9<1T>;
-FyfeZf Av.}}N/熞IHouֶE=
-Q֞RH>OBBiei^Ӫ^@
-&%4GއP AH6`AQ_R9+Mᒲ x 2K&Чc*>ldI_؇~#2ׄ+`f9kmoٹzHm/2s/} ,n(AA`\/-y9iN#H^c(HG|yqS#1}vċ6zQ_iM_;(4ѵlC7V-H_'/T >1f-p>ҍٟifB]c* !8ʾeS7=¬=AE*}d_Q[nuتA_.M1m>C=Bm2 x>V<`y&&
-|DOCS G|n?ͣG[2Zt]zGyvZ(+8^y x0*)tmӲZUq]U/
- HG#|zQ>րD,TQ+׮1;@x؁*2# n+x2l{Y})‰x aRJH~LazwRK 8Wt<Km,)$9^yBKGcdfXy1
-On(_D4
-2i9`&ޚUk}]7zY tNwkAD^i~ɳf67 X7wjkr>^,FlZO2/6Yהi\F˟{Ht9.V [t*YYIC(z“
-ΞKᓻ{{e4Sq
-endstream
+3844 0 obj
+<< /D [ 3840 0 R /XYZ 81.145 690.124 null ] >>
endobj
3845 0 obj
-<< /Type /Page /Contents 3846 0 R /Resources 3844 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3840 0 R /XYZ 81.145 679.166 null ] >>
+endobj
+3846 0 obj
+<< /D [ 3840 0 R /XYZ 81.145 663.225 null ] >>
endobj
3847 0 obj
-<< /D [ 3845 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 652.266 null ] >>
endobj
3848 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 641.308 null ] >>
endobj
3849 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 630.349 null ] >>
endobj
3850 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 619.39 null ] >>
endobj
3851 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 608.431 null ] >>
endobj
3852 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 597.472 null ] >>
endobj
3853 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 640.396 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 586.513 null ] >>
endobj
3854 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 575.639 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 575.554 null ] >>
endobj
3855 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 564.68 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 564.595 null ] >>
endobj
3856 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 553.721 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 553.636 null ] >>
endobj
3857 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 542.763 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 542.677 null ] >>
endobj
3858 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 531.804 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 531.719 null ] >>
endobj
3859 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 520.845 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 520.76 null ] >>
endobj
3860 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 509.886 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 509.801 null ] >>
endobj
3861 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 469.039 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 498.842 null ] >>
endobj
3862 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 458.08 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 432.092 null ] >>
endobj
3863 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 447.121 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 421.133 null ] >>
endobj
3864 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 436.162 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 410.174 null ] >>
endobj
3865 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 425.203 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 399.215 null ] >>
endobj
3866 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 414.244 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 358.369 null ] >>
endobj
3867 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 403.286 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 347.41 null ] >>
endobj
3868 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 392.327 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 282.653 null ] >>
endobj
3869 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 339.525 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 271.694 null ] >>
endobj
3870 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 328.566 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 260.735 null ] >>
endobj
3871 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 275.764 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 249.776 null ] >>
endobj
3872 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 264.805 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 238.817 null ] >>
endobj
3873 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 253.846 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 227.858 null ] >>
endobj
3874 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 242.887 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 216.899 null ] >>
endobj
3875 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 231.928 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 205.94 null ] >>
endobj
3876 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 220.969 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 194.981 null ] >>
endobj
3877 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 210.01 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 184.022 null ] >>
endobj
3878 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 199.051 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 173.063 null ] >>
endobj
3879 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 122.339 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 162.105 null ] >>
endobj
3880 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 93.447 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 151.146 null ] >>
endobj
-3844 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3883 0 obj
-<< /Filter /FlateDecode /Length 2868 >>
-stream
-xڵZo߿nE(pmڇ4@zL"-$ybΐ,ʎbn)CqA?/w>߰|\q%w r"E-v'ϒOWׂId֬j,MZ{eK\]K]iQ*]q=mMapk}s[VuͲv)BSZUYcuF:̻ү$$)dc3_sS><>1_ ]?To}_'Wg;t݌e-</Exعg-2Rv!` ~[N%|9aL&D8ͽ'9ji"Ԅn6Lu=ꁌ>ƺvU;+O%d'9'Rr4eLIPZD<$S7#n[ 3Qe$LZ <ss
-A3G/4pOӀkʌذliNI&&O?֍):#_Uƴh(+KyKcjdTiX6TNEQP^;$ՃB0vڰ(ujԝYwf݃<l[>>uꊗU|v/?2|W8??th)GڮGJ v$:sr`~mT5
-ۮ!Rv$UUͮ`cVJomݘ^~u:.(|CH"a
-'ژ輸y1L)₁tG6Z(4ٞMߖ],FOIٙRI% F02ǰԌBD]-F8V8S[=v
-\|fP1*V1c!-b@EӀ?E~"1Qsh + pD U0
-fGJsG.OjL ˇ̈́ |=؜٬p|4 qd@ܛ
-F+'
-6
-ؽbpM~K)MlA
-q3@S1<$bI'&uc7Oi4 ]+M}'Gѧ.[7`wV7%~~2]2x
-[\TlL,F1Uƒ/n)6
-ܫ?:g1
-P@gOkS#}\4 9( P7_e*厩\T=W͸Q2q✸]@W ]·:AR*){O) f9vj[l},.D_(`^Twm}j6SF`>M{gO 0YHZ7PQr+%.3b]䛷 &*\6Gv9;N!#C<Չ*q ˳K>nl姺|kQ@HItMٴ'k3
-wvQ |"t.|`e8VlCF
-{{iԓST{cԔ9ԛu} Wz}9DNRxP{zi#{)¶z}O5|CdL= ~:l$"k vt[:8vSm~dd^]_9 $T)n%2^,:#ЅA\B'8 s~Qq2qWѧ
-i#Q"V84k7+
-6"1?y<}F‡{oѓ+ynluaa>u3ER"ezE弘ʉE _f<yJ^lr;\+"ʍW=2F4
-ҙy= O@+o| й lwe3;2 1ZeGw|Gu}fw692z6ژۄ9QZHJ:_S
-endstream
+3881 0 obj
+<< /D [ 3840 0 R /XYZ 81.145 140.187 null ] >>
endobj
3882 0 obj
-<< /Type /Page /Contents 3883 0 R /Resources 3881 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3840 0 R /XYZ 81.145 129.228 null ] >>
+endobj
+3883 0 obj
+<< /D [ 3840 0 R /XYZ 81.145 118.269 null ] >>
endobj
3884 0 obj
-<< /D [ 3882 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 107.31 null ] >>
endobj
3885 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 731.041 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 96.351 null ] >>
endobj
3886 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 720.082 null ] >>
+<< /D [ 3840 0 R /XYZ 81.145 85.392 null ] >>
endobj
-3887 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 709.123 null ] >>
-endobj
-3888 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 698.164 null ] >>
+3839 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3889 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 682.358 null ] >>
+<< /Filter /FlateDecode /Length 2352 >>
+stream
+x[r9+$K)vĜuki:[T,[>kyxȝY?/oOק7#N9+@^|"~'d`\N\?J?xOzdl $1D5H(șr*)GP#4˒% 3I
+e}IzYӧ),HBZi~ (3~[]J)'rХ=7%mJTyO~ۡ!nhVkB5,MV?%ݠ~
+xT"P0cp|n]Cwonx#L!'iȲҷ
+)mݺ=I.WUCkil7cۑʘ1ntxΦU@G۲LiGiinoW%iqM3n =~Z0v?~*qnZ楖+)˼mGp'd6z‰hW
+endstream
+endobj
+3888 0 obj
+<< /Type /Page /Contents 3889 0 R /Resources 3887 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3890 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 671.399 null ] >>
+<< /D [ 3888 0 R /XYZ 78.37 808.885 null ] >>
endobj
3891 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 660.44 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 768.829 null ] >>
endobj
3892 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 629.756 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 757.87 null ] >>
endobj
3893 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 600.999 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 746.912 null ] >>
endobj
3894 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 590.04 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 718.02 null ] >>
endobj
3895 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 579.081 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 677.173 null ] >>
endobj
3896 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 568.122 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 666.214 null ] >>
endobj
3897 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 557.163 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 655.255 null ] >>
endobj
3898 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 528.405 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 644.296 null ] >>
endobj
3899 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 517.446 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 633.337 null ] >>
endobj
3900 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 506.487 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 622.379 null ] >>
endobj
3901 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 453.819 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 611.42 null ] >>
endobj
3902 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 442.86 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 600.461 null ] >>
endobj
3903 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 378.505 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 589.502 null ] >>
endobj
3904 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 367.546 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 578.543 null ] >>
endobj
3905 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 338.788 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 567.584 null ] >>
endobj
3906 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 327.829 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 556.625 null ] >>
endobj
3907 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 299.071 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 545.666 null ] >>
endobj
3908 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 288.112 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 534.707 null ] >>
endobj
3909 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 277.154 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 523.748 null ] >>
endobj
3910 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 266.195 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 512.789 null ] >>
endobj
3911 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 255.236 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 501.831 null ] >>
endobj
3912 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 244.277 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 490.872 null ] >>
endobj
3913 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 228.47 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 479.913 null ] >>
endobj
3914 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 217.512 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 468.954 null ] >>
endobj
3915 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 206.553 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 457.995 null ] >>
endobj
3916 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 195.594 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 447.036 null ] >>
endobj
3917 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 184.635 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 436.077 null ] >>
endobj
3918 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 141.996 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 425.118 null ] >>
endobj
3919 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 414.159 null ] >>
endobj
3920 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3881 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3888 0 R /XYZ 81.145 403.2 null ] >>
endobj
-3923 0 obj
-<< /Filter /FlateDecode /Length 2310 >>
-stream
-xڽZKo800t|f=`; Ai[YHr)-:i4I?+>*63<H;˧}r،LFgwO:i$Q3% ’vwr#FLOa|ymӛeoV}}u-~WemDzfsOD ޣ/0"2 FE~IepM1dә?eeN8mU4U'%ՈhX4SȲ3pu]C.a}kID!
-7L-I`̉-}lLKD eGct򾔙@ 0vv*BӳgN&9G"_FCf1GT #f~96?s`?ɥMA:}lAW
-t"8IfWf D~/J&Ρ .Y4Sayn: U~(U?yk}z6
-LiR,BD;EORN[8a_4N[2&;6;$H!|A'IAQ`Chn7`='g'=z'6apuOeUן*RDMQ|ñsjǶ6@16.ٯppJwXУ31; C Ӫ+SE< e2aZg7$ $?cK u ife)a#SA9,{XK$YW:aYJ VwzĚy]T[2":e^-1۰qW7^D0uC+u GY9Ù=R M[O\[֬Oî_4 qUwE^Dz~dAr$l[ga;/O&cԭko e̳E#k߱E_k snȳ Bb1܉D4()DG=J}SX:$oR&,|@#"A'V)jm2B—iiT| yl~X49Td$UpahJNE+Ӎ',ZE(LіyʛV/%oB1MѤiN^14!R
-"l7vGu %7 4ɕ9Hs*uB
-P,FORf=w_wEJ|&!IXkwzRSii0E{?&2'd)iM bc@'ShYPJQ=eӴDlo-7m)e_(tS4洜ksx EяgiqEU.;]pJ/ZQ&
-ai7Eof,!hev>¦Զ_\j٧2$ G$ PD:]2c!i#t"!JC<ID蟓ǖQ"I1B Бh<_%!L"NJbƓSlfjK|d^9҃}wu !\e}̔cY^deYLNH HLNnZnwmǼY3ڟW\P-gx^6RB|bLEzC kw&-} v K"m5" Y5@Ÿy|$ىAn)ĵ{F|Y&X@*OcGj.dtZ6?No~d6@uJgu S($r(k'_w
-endstream
+3921 0 obj
+<< /D [ 3888 0 R /XYZ 81.145 392.242 null ] >>
endobj
3922 0 obj
-<< /Type /Page /Contents 3923 0 R /Resources 3921 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3888 0 R /XYZ 81.145 381.283 null ] >>
+endobj
+3923 0 obj
+<< /D [ 3888 0 R /XYZ 81.145 370.324 null ] >>
endobj
3924 0 obj
-<< /D [ 3922 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 359.365 null ] >>
endobj
3925 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 348.406 null ] >>
endobj
3926 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 337.447 null ] >>
endobj
3927 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 326.488 null ] >>
endobj
3928 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 315.529 null ] >>
endobj
3929 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 304.57 null ] >>
endobj
3930 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 293.611 null ] >>
endobj
3931 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 282.653 null ] >>
endobj
3932 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 190.996 null ] >>
endobj
3933 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 180.037 null ] >>
endobj
3934 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 169.078 null ] >>
endobj
3935 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 158.119 null ] >>
endobj
3936 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 147.161 null ] >>
endobj
3937 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 136.202 null ] >>
endobj
3938 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 125.243 null ] >>
endobj
3939 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 114.284 null ] >>
endobj
3940 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 103.325 null ] >>
endobj
3941 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 538.145 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 92.366 null ] >>
endobj
3942 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 527.186 null ] >>
-endobj
-3943 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 516.227 null ] >>
+<< /D [ 3888 0 R /XYZ 81.145 81.407 null ] >>
endobj
-3944 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 505.268 null ] >>
+3887 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3945 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 464.549 null ] >>
+<< /Filter /FlateDecode /Length 2028 >>
+stream
+xZn6+
+i
+-w/Vx' O0H0 <={^XD=~{r!WI`QH
+
+L :~
+p-õ9B/:F]hqZ2b5orW<F HPOs$HI0a<I;/yv`돉FA$HFh<(uIb%ӨKl ឫGz(',(_G$ӄH t> ,QnЍ0 Ey<&v@A' x $H4:hƂGg8PwL%Gz__k;tQښE[o2M%!?F
+2?_Υ*٨A9Qss=Eժ`- ?b;>^k%U%)ؕ4rvqiѻ<=E4=mŢ ס`E i^͠_uh+jJ)Ui*%WDTiˍUڞ1
+(Mkq,˝XcYd݊~ve3]R Umg.( AS%rXl~8lvHǻ}Z4qm2%T^اis$:\0xR 4VH=7]u*Ʀ[e`)!3Qa}^yl\~>Hkh=868<-2J,;$
+|̴h EssH1K(f7%f9 볝^5V\yFZ> :6{%FBPx'PI2g!vuz枞 o@hM|`&B{#
+ظ%U
+#VZt#$X p4g;k2Rۡ(SYQtéIѥ >vHv @C%̝W~ǧ hPF t PC>G@FK3i DJUz49d"[=5)4h[f>!M3"9.Zӄ&'*gTκp[hAI }Kkϧir/\Ieͽp)v=0O2}mQ8Oq42a?jALDL5`Vҏ3dR Fnc?wcx|i[,]J>!'oap(?<
+endstream
+endobj
+3944 0 obj
+<< /Type /Page /Contents 3945 0 R /Resources 3943 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
3946 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 453.59 null ] >>
+<< /D [ 3944 0 R /XYZ 78.37 808.885 null ] >>
endobj
3947 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 389.216 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 768.829 null ] >>
endobj
3948 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 378.257 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 757.87 null ] >>
endobj
3949 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 367.298 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 746.912 null ] >>
endobj
3950 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 356.339 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 735.953 null ] >>
endobj
3951 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 345.38 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 724.994 null ] >>
endobj
3952 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 334.422 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 714.035 null ] >>
endobj
3953 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 323.463 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 703.076 null ] >>
endobj
3954 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 312.504 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 692.117 null ] >>
endobj
3955 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 301.545 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 681.158 null ] >>
endobj
3956 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 290.586 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 670.199 null ] >>
endobj
3957 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 279.627 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 659.24 null ] >>
endobj
3958 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 268.668 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 648.281 null ] >>
endobj
3959 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 257.709 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 637.322 null ] >>
endobj
3960 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 246.75 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 626.364 null ] >>
endobj
3961 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 235.791 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 615.405 null ] >>
endobj
3962 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 224.833 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 604.446 null ] >>
endobj
3963 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 213.874 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 593.487 null ] >>
endobj
3964 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 202.915 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 582.528 null ] >>
endobj
3965 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 191.956 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 571.569 null ] >>
endobj
3966 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 180.997 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 560.61 null ] >>
endobj
3967 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 170.038 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 519.763 null ] >>
endobj
3968 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 159.079 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 508.804 null ] >>
endobj
3969 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 130.315 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 497.846 null ] >>
endobj
3970 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 486.887 null ] >>
endobj
3971 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3921 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3944 0 R /XYZ 81.145 475.928 null ] >>
endobj
-3974 0 obj
-<< /Filter /FlateDecode /Length 1858 >>
-stream
-xZKo6WV-2"(,CNzlˉY2$9ݢJ2Ezތ7i^qyr(ngtD;짛wWIb |v>c0hY2K4#Tf\KJۙ!VkaB0()B`B.L[UL//eEAL@[<%rϓ=F?вA[&͟'["w#7)Q c4^}Ε-';qS/]ʋ!Rs4٧fWŪCsp=W^n~[EW)!bb,!g6\Ī"&^R'B1X^Ij7S" ռh !/Ys"T>-|F1޶Ų59bD&()GHo"oFBmvwOQ0&<EG˺nVEu/()x cH>Cy:^NWT!*)DEk#HͶtq}uT&Oa$Mړ84*YYd!}V4) $Q(Eh8V%eI\| h A"4$ Nt
-|m⌡WYڗXQ}]~NQK(j/tB/ Я&!*B#4N&[/[C֊E ~k3_Gjm[_9Ņ[VKҒ3"/ЯKK+q~&Bzi9U" E1D*pjh#`wW\# !wD"`=ԯF̡ %ě伨Ʃ8}j*&-adif[=rL Ƶɘ^qtQT*Zt?Op /pS e5 Z0#=iz[ <]$n& ozësYSdr8<_fxΓ\Y3ˇs.rip5ic}+ {[@nNqw{x8wC7`e6eS&xt tB&Zwk{[!4>4켅4Ԏ](t~}B.^u$B0&@x7 [yY܏
-m<eGںqZ|UWźM
-/Io8P{)od;1w(q.}28' U -}@W:ە0br7`G}\CẂDTYUqq0QNtXڶc-wm<J6K.lb { lXA?g+ᡭ7}lpW?0hQ`ȭ&ƟJhm⺚УQ7_O[~E?h\T
-їF1uu:ir'35ol: vRdRwQ]W_~
-iǯ57hA,v+D q^6nG}O),Uus&$9R
-,Bx F-O@7t:EY/Ĝ;BpP˲x-^^cä+CǡR6!4u6¦3U!Q+΃Vm=U >
-f/;фO'E#_[j0$yHp$Cg`i"L[q"4zaR@76x܊_
-9&JB6PUan؞
-endstream
+3972 0 obj
+<< /D [ 3944 0 R /XYZ 81.145 464.969 null ] >>
endobj
3973 0 obj
-<< /Type /Page /Contents 3974 0 R /Resources 3972 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3944 0 R /XYZ 81.145 454.01 null ] >>
+endobj
+3974 0 obj
+<< /D [ 3944 0 R /XYZ 81.145 443.051 null ] >>
endobj
3975 0 obj
-<< /D [ 3973 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 414.159 null ] >>
endobj
3976 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 403.2 null ] >>
endobj
3977 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 392.242 null ] >>
endobj
3978 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 381.283 null ] >>
endobj
3979 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 370.324 null ] >>
endobj
3980 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 359.365 null ] >>
endobj
3981 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 348.406 null ] >>
endobj
3982 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 337.447 null ] >>
endobj
3983 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 326.488 null ] >>
endobj
3984 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 315.529 null ] >>
endobj
3985 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 304.57 null ] >>
endobj
3986 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 275.679 null ] >>
endobj
3987 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 264.72 null ] >>
endobj
3988 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 253.761 null ] >>
endobj
3989 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 242.802 null ] >>
endobj
3990 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 231.843 null ] >>
endobj
3991 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 220.884 null ] >>
endobj
3992 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 209.925 null ] >>
endobj
3993 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 198.966 null ] >>
endobj
3994 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 188.007 null ] >>
endobj
3995 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 177.049 null ] >>
endobj
3996 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 166.09 null ] >>
endobj
3997 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 155.131 null ] >>
endobj
3998 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 124.247 null ] >>
endobj
3999 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 3944 0 R /XYZ 81.145 113.288 null ] >>
endobj
-4000 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 505.818 null ] >>
-endobj
-4001 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 494.859 null ] >>
+3943 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4002 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 483.9 null ] >>
+<< /Filter /FlateDecode /Length 2073 >>
+stream
+x[n6+C`p[kr_íDEu{``kiVN들0i/ EJ'/'uVXO*!:}YJ*q{o-_֝jR:c̈(%BDkW$^_0Aՠ_?;ЗㄞVη=V|DBIH}`:F$klA P L GKz>ס.w-Ov3iײKrŲ-߂V{$GQY_,GIډ,f;S(?H, ȑ =~I :(1.
+!ml>}H |9nvddPԩBXztQ-}9S fB}+NMoq#ψ6˸1qSP: l_BLL4ӫ})qt^(
+D68{^ūš4nQ^ms{O
+G줜`買pV6 m4uNeA)UnE^WhLQ[_Bh@:QBD,G[;J*{#=w* A0tK?[y@: OaҿB<y3Sf=SO*>& ;s x{ ڰ>P4lyȍT^ -] ]ޞ"$
+endstream
+endobj
+4001 0 obj
+<< /Type /Page /Contents 4002 0 R /Resources 4000 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
4003 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4001 0 R /XYZ 78.37 808.885 null ] >>
endobj
4004 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 768.829 null ] >>
endobj
4005 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 757.87 null ] >>
endobj
4006 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 746.912 null ] >>
endobj
4007 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 735.953 null ] >>
endobj
4008 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 724.994 null ] >>
endobj
4009 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 714.035 null ] >>
endobj
4010 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 703.076 null ] >>
endobj
4011 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 692.117 null ] >>
endobj
4012 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 681.158 null ] >>
endobj
4013 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 670.199 null ] >>
endobj
4014 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 659.24 null ] >>
endobj
4015 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 648.281 null ] >>
endobj
4016 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 637.322 null ] >>
endobj
4017 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 626.364 null ] >>
endobj
4018 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 615.405 null ] >>
endobj
4019 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 604.446 null ] >>
endobj
4020 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 593.487 null ] >>
endobj
4021 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 582.528 null ] >>
endobj
4022 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 529.726 null ] >>
endobj
4023 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 518.767 null ] >>
endobj
4024 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 507.808 null ] >>
endobj
4025 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 496.849 null ] >>
endobj
4026 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 485.89 null ] >>
endobj
4027 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 474.931 null ] >>
endobj
4028 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 463.973 null ] >>
endobj
4029 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 453.014 null ] >>
endobj
4030 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 442.055 null ] >>
endobj
4031 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 431.096 null ] >>
endobj
-3972 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4034 0 obj
-<< /Filter /FlateDecode /Length 1900 >>
-stream
-xZ]o}ϯ})l\oQ~Zh
-y> ۲#,JrvE;e&'Kl: 9gf:+z$~^}zs$aV+7M4Kffj6[f?΅z;77:j-Lf:!܊F;ln EJ~ns܀R0bBcOm& aFz")Hš8v$tl/"KLQQ=R4M-/׊/Î}^kw}Tө&\kp!:`l}ߔu-ed
-SU/y ~x},&ۖW.Oq"mVp7*'4I#')P>бf[Uwlog7 B0{ b9/
-E% ;`!`=bxm;u~]3 3/G7V;lwgDM.>8%1ϊ/oo*M]xa83Jt s<MSA]ޮnBp3ZkN67b4%:<:: >*7 ˺$ZZ?O +>.J/SE׆We IqLq)3ED)4ř"D[k/sd.B[)b&]Ӹ(B[w4<$G!DW֛vtcU9GB%Ճdž|MNH_Q. )"A߰GtLvBpwTEO5՟~ RHg@27EU%R1c~<cv״ǦĮw)RE(Εq ѱ">J7grUj(SIF<~0kPz=4&} אF4 7G5pyrUtuP=Cέ4#8*\ \(-yFִg)O0qb_>/?v=9Bq/l?g;Ro$!4H\0 їp3Q>Z[ mKIALm@L|D'Զnküŏ˨n8WH/t2*N"絑d'm!K5LШ&?+ 5i@bPi@'vm\Zpچ|y` gߐ1 %7
-PK4T6B?nRbϤ@-:B O 1˓sæS3$UwEhe:e !P3:mv;}Qe,5TCGkiZ]5U5y_{{ͫ.:7z~::vpl@6ܐobH%N9fqƍwM^nt}ڻs =N?5Hs-'޸ؚak_3B6_Ds9W/6D@)E~"Pٷ96UC8Ss(^L$5#D[)/m-cAU.O|S\;Ba|aYߠ@ 5#4:dP{+TD9Bӻ-н+Be@&ק*o_Hvwk1.'n}=Í=({A3G+B'U|苶ll Jw1sM8J$%i2ZQw6
-endstream
+4032 0 obj
+<< /D [ 4001 0 R /XYZ 81.145 420.137 null ] >>
endobj
4033 0 obj
-<< /Type /Page /Contents 4034 0 R /Resources 4032 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4001 0 R /XYZ 81.145 409.178 null ] >>
+endobj
+4034 0 obj
+<< /D [ 4001 0 R /XYZ 81.145 398.219 null ] >>
endobj
4035 0 obj
-<< /D [ 4033 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 387.26 null ] >>
endobj
4036 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 376.301 null ] >>
endobj
4037 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 365.342 null ] >>
endobj
4038 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 354.384 null ] >>
endobj
4039 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 343.425 null ] >>
endobj
4040 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 332.466 null ] >>
endobj
4041 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 321.507 null ] >>
endobj
4042 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 310.548 null ] >>
endobj
4043 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 299.589 null ] >>
endobj
4044 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 288.63 null ] >>
endobj
4045 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 277.671 null ] >>
endobj
4046 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 266.712 null ] >>
endobj
4047 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 255.753 null ] >>
endobj
4048 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 244.794 null ] >>
endobj
4049 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 233.836 null ] >>
endobj
4050 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 202.951 null ] >>
endobj
4051 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 191.992 null ] >>
endobj
4052 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 181.034 null ] >>
endobj
4053 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 170.075 null ] >>
endobj
4054 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 159.116 null ] >>
endobj
4055 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 148.157 null ] >>
endobj
4056 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 137.198 null ] >>
endobj
4057 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 126.239 null ] >>
endobj
4058 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 115.28 null ] >>
endobj
4059 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 104.321 null ] >>
endobj
4060 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 93.362 null ] >>
endobj
4061 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 4001 0 R /XYZ 81.145 82.403 null ] >>
endobj
-4062 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 436.08 null ] >>
-endobj
-4063 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 425.121 null ] >>
+4000 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4064 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 414.162 null ] >>
+<< /Filter /FlateDecode /Length 2354 >>
+stream
+x[͎6 SF+&=ϭ=+ɢ,;]@dl3IQGJ/] o/˷ɜ?_/b5^kqs9:-9o|q=XF[ eZ#GP71o XL1~Gzg0¢MegQ i mܜiZ4ABTы ERP'qB|tLH0\UJX>3ͫ%>hy|RT=YV03O4rcgjyn4+zy/! [Lkv22=a067-RKTjS_karoZa>ZWk5>K1F'O+hQ܉~6mh=2yl3ObP{LA`ԻEi[O&m%C醮`tŠ%$F`Fu8'q/`ꥁIC)ZXLa?ʆ1[H?Lҷ<>H}b21h2&TtBarj$Q&pg!Y2U0z(A!E#[R9mH== IbFء$SHf0e$3RS58FB]1(4A,z?KRQߏWԞ!Œ7#Mc`u_R_J!$xqa9ԋn1jYMGbec, 1|EDMdVUM2|1^&` R٭Ha*.\E˧Pk+eI<q3LyhI+Lab:ʝ3N_vH8]J'Pmв7NKd@ZNd'R@n׼pK>7pq]&-8jĻ w ؀E\|~
+z/5z,g(0GIj 喺UI_ύQ>al5WZGVW,m24n4 ucM2i#ٴpN m>gi58XEZ艆ر%>k} dM8d<[GV!]c׉7:ƣ~>DͷRa&*a~nu}8[}>>e j
+쑔]RxggYf7O+ynyf:gOm̜3w& 5La\;\Xhѣu6 `GQSehnDƞխ`) b095Z^ j4?/.#=6FY@k͏D9/t= bژ<Y&oC+锥_RNcԦouz9-!IX{ 'QMx4\捷ȸB2TSUJЊO!XَDݳ0KRwHd[Dkz*z4vxmF}>**;5IՃaiD$Y3oaH"6R#C!f5D<!m_ᛏzN0DZWES(ݲG>eOM4tMnҝpӻr`Brd]4o &q}\.wR4@9|,>uҥC|eFe[}|| [!G5$QI|V['qt:}l3wnuw.ιutB4U ZM% B1'EIvIth73Ydj7 A^c鞋WZ-S('\Jxx<pѽ
+peTéDr<[".}j cnnL«gn=χ KF2!A;|!cg]\jϜS'bֵ.yZԘyWU-K`­(YB^5.zV:^*Lp0s͎i7CϥB/vrcCEP$HnLw@JH6#I&w:_۪ PtԘ>ꐎY3!_i6 ?$F\dsEnbm"vO3bdɶ{ԫTlr,c:31/뫷@J*pO}HJ
+lH_8E4
+endstream
+endobj
+4063 0 obj
+<< /Type /Page /Contents 4064 0 R /Resources 4062 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
4065 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4063 0 R /XYZ 78.37 808.885 null ] >>
endobj
4066 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 768.829 null ] >>
endobj
4067 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 757.87 null ] >>
endobj
4068 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 746.912 null ] >>
endobj
4069 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 735.953 null ] >>
endobj
4070 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 724.994 null ] >>
endobj
4071 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 714.035 null ] >>
endobj
4072 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 703.076 null ] >>
endobj
4073 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 692.117 null ] >>
endobj
4074 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 681.158 null ] >>
endobj
4075 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 670.199 null ] >>
endobj
4076 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 659.24 null ] >>
endobj
4077 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 648.281 null ] >>
endobj
4078 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 637.322 null ] >>
endobj
4079 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 626.364 null ] >>
endobj
4080 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 615.405 null ] >>
endobj
4081 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 604.446 null ] >>
endobj
4082 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 593.487 null ] >>
endobj
4083 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 582.528 null ] >>
endobj
4084 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 531.801 null ] >>
endobj
4085 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 520.842 null ] >>
endobj
4086 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 509.883 null ] >>
endobj
4087 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 498.925 null ] >>
endobj
4088 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 81.41 null ] >>
-endobj
-4032 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4063 0 R /XYZ 81.145 458.078 null ] >>
endobj
-4091 0 obj
-<< /Filter /FlateDecode /Length 1713 >>
-stream
-xZKoFWV7~dOzh
-(D
-e1;|hIJFv`"vvt3$ ~?ݵ#Ieng YM43#nWB:w~wڍ,qZ D8?0!U2I$%<YWYJ&eMQ()J&1 ڶpIm3t~jݳ?E./o[ͽid
-/YO"tCٮ$_۽,dNSf8'm ۖXэ?&',x
-8
-0F$p½m}mӸ|}(Ks;.|Vߵ]37r`k00ۿs\ai}f97*UwO&eFì*鯴O_5,1\n/z|I{.핺V٪l6]֯SUyY/%~h*'ۺ/uExow!rRk߮ιO/9+a踜wvUl/fEjsF3d5w-zC/=٭ FOn]py=+d[/pH@io{(q|ëRdU!Փ )N!êoVaq?_zp\q✎`"M0Ghp>Z#Jip"汛|ub<֔:_E9)iìq1j!ܜ*M|HZ/*>M^ee(Vge}o䢻LH:M`Dw~50WPbd
-(_3TZ|.BgmRXx&QaۖX sPy/̙F5/u>P]`pF: !'8[M'ƲXxB,b)N˲EZg_Iϫ:S43J >q&B=kg 1(!л]6ᄥb&T
-D谏ijr8H*\ ߯ei+\z(0̫i=\^ h'XE򪎓vN2bH-*b x^o;68j2s
-endstream
+4089 0 obj
+<< /D [ 4063 0 R /XYZ 81.145 447.119 null ] >>
endobj
4090 0 obj
-<< /Type /Page /Contents 4091 0 R /Resources 4089 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4063 0 R /XYZ 81.145 436.16 null ] >>
+endobj
+4091 0 obj
+<< /D [ 4063 0 R /XYZ 81.145 395.313 null ] >>
endobj
4092 0 obj
-<< /D [ 4090 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 384.354 null ] >>
endobj
4093 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 373.395 null ] >>
endobj
4094 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 332.548 null ] >>
endobj
4095 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 321.59 null ] >>
endobj
4096 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 310.631 null ] >>
endobj
4097 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 299.672 null ] >>
endobj
4098 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 288.713 null ] >>
endobj
4099 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 277.754 null ] >>
endobj
4100 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 266.795 null ] >>
endobj
4101 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 255.836 null ] >>
endobj
4102 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 244.877 null ] >>
endobj
4103 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 233.918 null ] >>
endobj
4104 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 222.959 null ] >>
endobj
4105 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 182.113 null ] >>
endobj
4106 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 171.154 null ] >>
endobj
4107 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 160.195 null ] >>
endobj
4108 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 149.236 null ] >>
endobj
4109 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 138.277 null ] >>
endobj
4110 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 127.318 null ] >>
endobj
4111 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 116.359 null ] >>
endobj
4112 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 4063 0 R /XYZ 81.145 105.4 null ] >>
endobj
-4113 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 507.811 null ] >>
-endobj
-4114 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 496.852 null ] >>
+4062 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4115 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 485.893 null ] >>
+<< /Filter /FlateDecode /Length 2419 >>
+stream
+x[Ɏ#7 WF#Q;h=ns߂\SmVr3VH#旿. /׏/B_<|EE\g^q V:%~'srn|xrp~+B^w"\;] O1Ļ#-ܡׯyyd9.ٵ
+vMmOЬҖo=|_eU
+^pkLy{gyR}?&Y@D3)Ɋb 19 w+5ǽG}L添H3L TVlڞH=Pd ZʪD~ۭ*mT)}eb{RA꜂TϔBϪR *j}I#2\=y#b]|Zݶ r gv+kKW[okLW֙9oOvEiZcbWj_$ywF ~ k&<@ʥ1QJV|ZUiɓoFb9Ť"[/9D)*+V2$[tj"Dŕ ׬O&>1ΔK b]-~6LIA킆s`,!O˝ Ef5_t
+hJs]gtl}e?p I*mFJQqME1V6?9𡂫zG FkE)I.$DS)],siIE5E>GQQIm=@ntGGJAn-ɊZ9>HP{0 o۽#5kͲfV8D!^@ՃhjYx%,d 5yZdo,@ЩKs|o(L]mkwj'g@A]jUBm>|ʜQ7N~{ 25) Kkeny%f<S
+j~㞲 漙)A[5FM5[D4WoX-*!e%d[TutxWZ
+G@Gqc氦ܵAaz)=t%oi;ݵعzQA5$`ڮMHqmpS)ǻ@N^> `Z{(8i&(@O
+C3ʇ=REJT2W:l$X2?~&J5-v }'ݯFl4E6jk2A\L){%ޙ_b:
+1P<Pܴq:̭'76 X6 aq 8.DI9}i
+~7G/m?<dx&ydAãnSyC}VQZ`kvMٍwKLn%3Aj6 : 9u&&ܟ,3BP2mnDi3@EN`-zIpY 5Pbߠ#Y <7ED¶hg"l=O c
+*u>&GVh޽؍6fÙvzrTi3Rڤ"_NZm<>=ӥ7Lwx=j8f#e6!{f?˲X~
+ϸOwŵ!$lIz4R@۳^k)azbC)w}v?a1!suVLXMXZL`%öGXy[Nj`'J'b@>FZhBKFLޞz
+$#kB
+
+endstream
+endobj
+4114 0 obj
+<< /Type /Page /Contents 4115 0 R /Resources 4113 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
4116 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 4114 0 R /XYZ 78.37 808.885 null ] >>
endobj
4117 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 742.926 null ] >>
endobj
4118 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 731.968 null ] >>
endobj
4119 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 703.076 null ] >>
endobj
4120 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 692.117 null ] >>
endobj
4121 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 681.158 null ] >>
endobj
4122 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 670.199 null ] >>
endobj
4123 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 659.24 null ] >>
endobj
4124 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 648.281 null ] >>
endobj
4125 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 637.322 null ] >>
endobj
4126 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 626.364 null ] >>
endobj
4127 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 615.405 null ] >>
endobj
4128 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 604.446 null ] >>
endobj
4129 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 593.487 null ] >>
endobj
4130 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 582.528 null ] >>
endobj
4131 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 571.569 null ] >>
endobj
4132 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 542.677 null ] >>
endobj
4133 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 531.719 null ] >>
endobj
4134 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 520.76 null ] >>
endobj
4135 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 509.801 null ] >>
endobj
4136 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 498.842 null ] >>
endobj
4137 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 457.995 null ] >>
endobj
4138 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 429.103 null ] >>
endobj
4139 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 418.144 null ] >>
endobj
4140 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 407.186 null ] >>
endobj
4141 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 366.339 null ] >>
endobj
4142 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 355.38 null ] >>
endobj
4143 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 344.421 null ] >>
endobj
4144 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 303.574 null ] >>
endobj
4145 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 292.615 null ] >>
endobj
4146 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 281.656 null ] >>
endobj
4147 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 270.697 null ] >>
endobj
4148 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 259.738 null ] >>
endobj
4149 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 248.78 null ] >>
endobj
4150 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 237.821 null ] >>
endobj
-4089 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4153 0 obj
-<< /Filter /FlateDecode /Length 2230 >>
-stream
-xڭZKo8WXa%J2Lb9 a{!(lkZ<'ݘU"EvcfHdLgzC+zͻI&LA':cDYvEŷyG*%-SCɎ(a[Il.ÇN_M=c)nsd0`*"L?9^B-R¤N eDNv&>Wz_.C[bydua"1>:|"\)+_'[EGViDlqlƈzL6lH$2z0=\^wY:K•t!qJ1(\~kwljhuzzaWC3ϟhD˵lG?tE;ޡTg[p&.A;t3Br *=$ɂwNu*n(#)h9}}=A6LO{*XY bUaf梿ˆQb:+ܬ!X6Qޒ 㡿^q$" 5Gb<13OŦf WeRs_ 4U/ڋsiJ(D7Zx/f~8n%ՏtWۋK%T\q| (q:e:-' H8zVޮ-Wulӥ9D?| 0Dw+ەKkk<fH豀|$K?e]{M6֬\-cFmԼo$-~)&
-YY.,#C֬9.H\0axk4K2;݊~& !}Wv8lXe_tcYh5<_vX)h)_Ki5$ 4T<M!̹YjhF?ns|xrZ nvCo ]+> qWV宨EtGT4']s*ӘjXAqUxRϗ:DAX)袍~ %fSA Emsu9rRQc6CV
- $ icL3,<nTQz!2?0=Qei6
-{ۦ:pB6@sWݯ
-w~Vj4Q%@ߒŢC[s7bSQA %DF86:Wi5Y:Pigqx>aev2^8RA#_%ocD
-݄-0C_7'<߿2շ|4EP \mHbdNW8"(i"KM%<L1=o1=mc\rY@m绉FqVӏu%\#a;ehF2'zpiQaL #&
-Whʚ,56K9ԶI [/C^7roL<xِۆZgy,1$v\Z4㬵;,Dl]j}6/&'wuU^5a zEPZ?FAٜvj Ty?CyƧ?U@u\OR(c搶:AМ!mO DZ"8~,Sj.l*51-]nQ\, Ua/2!ƞ&DQ$Уt"i7T@jk4p&*c%*GQS0Z,)8l6 +KHjea?rPgۦ-4uWgVEFd7ڊޗaX/cAzdp_
-endstream
+4151 0 obj
+<< /D [ 4114 0 R /XYZ 81.145 226.862 null ] >>
endobj
4152 0 obj
-<< /Type /Page /Contents 4153 0 R /Resources 4151 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4114 0 R /XYZ 81.145 215.903 null ] >>
+endobj
+4153 0 obj
+<< /D [ 4114 0 R /XYZ 81.145 204.944 null ] >>
endobj
4154 0 obj
-<< /D [ 4152 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 193.985 null ] >>
endobj
4155 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 183.026 null ] >>
endobj
4156 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 172.067 null ] >>
endobj
4157 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 161.108 null ] >>
endobj
4158 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 150.149 null ] >>
endobj
4159 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 139.19 null ] >>
endobj
4160 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 128.232 null ] >>
endobj
4161 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 117.273 null ] >>
endobj
4162 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4114 0 R /XYZ 81.145 106.314 null ] >>
endobj
-4163 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 641.393 null ] >>
-endobj
-4164 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 630.434 null ] >>
+4113 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4165 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 619.475 null ] >>
+<< /Filter /FlateDecode /Length 1900 >>
+stream
+xZr#)+dp(eI1g&:s6PP,B6HuAvŗx,bUhE| `\Wε8twa\Y;nd9'+;R3}Mqm?E$ſzyȝѽA LPb{<[q5@W&qzfxMۗQǫ~dzǤ~"=Ә?Zez<|nZmA M@Lhr`b!f@((Y4J&ه{sCy?X gR)Z&l6x3)>27H-O~U:{eJ)Ą]㼍E"*nDqh&:>DiZBܞ;'wB2?4^uq4( 'sA\yH))kS
+uCyl^Yuu6Uɴ0=QFXDtǓ O T͒pL0:͏trBMk&ʹ2E7x'LP t$0CЕd}|@ˆ\ d:fԳP\jIFRf\Pkk#[,|xTт$gd&<NEO2߹Y׎I}D*S/JV8*[)> fenB}6ECZR%B.6R Y QEhlh ޞ 0q!;VLlS[<<v
+lTS:/LOZ1YaDI`DF\Blޗb5+ײ#Or&^Pa~$I!Lnϩb@|l+]'U3&lDڗjodL5e\7+J!*lO؋5O;-Lh9
+APiB.6|VZOөR`a4j\ bRV'gTԊWI1m]
+Hb ҾJ,lQas;ma@Zo/zL۴%|S7 <;C fvNvГ6rpjop+y8׎ .~ V{gQ 6\2JC2Stb
+T0*%k(uBU StIH+sѬaΎLRF_Au|'Z+kj!ά'T;m
+endstream
+endobj
+4164 0 obj
+<< /Type /Page /Contents 4165 0 R /Resources 4163 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3754 0 R >>
endobj
4166 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 608.516 null ] >>
+<< /D [ 4164 0 R /XYZ 78.37 808.885 null ] >>
endobj
4167 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 567.669 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 742.926 null ] >>
endobj
4168 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 556.71 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 731.968 null ] >>
endobj
4169 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 545.751 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 721.009 null ] >>
endobj
4170 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 504.905 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 692.117 null ] >>
endobj
4171 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 493.946 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 681.158 null ] >>
endobj
4172 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 482.987 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 670.199 null ] >>
endobj
4173 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 442.14 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 659.24 null ] >>
endobj
4174 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 431.181 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 648.281 null ] >>
endobj
4175 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 420.222 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 637.322 null ] >>
endobj
4176 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 409.263 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 626.364 null ] >>
endobj
4177 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 398.304 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 615.405 null ] >>
endobj
4178 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 387.345 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 604.446 null ] >>
endobj
4179 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 376.386 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 593.487 null ] >>
endobj
4180 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 365.428 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 582.528 null ] >>
endobj
4181 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 354.469 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 571.569 null ] >>
endobj
4182 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 343.51 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 560.61 null ] >>
endobj
4183 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 332.551 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 511.876 null ] >>
endobj
4184 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 291.704 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 500.917 null ] >>
endobj
4185 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 280.745 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 489.958 null ] >>
endobj
4186 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 269.786 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 478.999 null ] >>
endobj
4187 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 258.827 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 468.04 null ] >>
endobj
4188 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 247.868 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 427.194 null ] >>
endobj
4189 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 236.91 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 416.235 null ] >>
endobj
4190 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 225.951 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 405.276 null ] >>
endobj
4191 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 214.992 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 354.549 null ] >>
endobj
4192 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 174.145 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 343.59 null ] >>
endobj
4193 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 163.186 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 332.631 null ] >>
endobj
4194 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 134.294 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 321.672 null ] >>
endobj
4195 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 123.335 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 310.713 null ] >>
endobj
4196 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 112.377 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 299.755 null ] >>
endobj
4197 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 101.418 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 288.796 null ] >>
endobj
4198 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 90.459 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 277.837 null ] >>
endobj
4199 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 79.5 null ] >>
-endobj
-4151 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4164 0 R /XYZ 81.145 266.878 null ] >>
endobj
-4202 0 obj
-<< /Filter /FlateDecode /Length 2155 >>
-stream
-xڭZKoFW2aL6I9G$Ȟ }fUJ3X_w͌~'QͿn}L4a7 n36K"xGЈvEDouz1Jg IH$>4 џc϶M[~m>wR}Uźvy)lU0[l%rVKO}m"%L
-Y^Yb"B_h<!,NL6Tp)@C4U>[UWkeQU͖ńsF8>v︾l]GSQ(RS2D;e#%@>tG҇) .DDV?mq{'va{mny<\ |n>9D97p] kD-NCW[wrQ+N8}m'"{xMni[g DH ZmQD$L&Lm`m}-|K|{8Ln큑RD*gbLG-%G2ٜ!{l!9ʭ4~ߜ5m[vZ=/$0g.@hL"a rځ~vDȎuYoZ6&_q[󐪬:0HHA Uúpn<!7Fxn5]^̏\j~[s[2쭳~{H|w>DQ؛wө뇄JRۣĖa]ە_n(|$9#1d!6s6MUdU b:z9{q}ÒjV.."'6Bm(̡Pb(\zcFy 砐ƏeU=֍^?~'\~l
-In<Ԗ*xA -)os㋷2$aWٽ*$t쒠-j:l\*m2S5+@Y?5|B3alRTkm^|MrE(86>ڲ$Aܽ$UI%g@~M`e@7֟Q+NgLZ q}Ѡ|3IAEDBn襤4 r]5l5i\ !@0)<G'4H̲,5&5Ô/]MBcu/ dOH]C\ z>z :m?4Gп;үE ˜A\R>݊IH
-.ku, ӝYuku a1 Oq:x<Fr+
-4^6I]"j*)4 łmP: %;@GN$4.>
-:
-Aџ^tk4D
-endstream
+4200 0 obj
+<< /D [ 4164 0 R /XYZ 81.145 255.919 null ] >>
endobj
4201 0 obj
-<< /Type /Page /Contents 4202 0 R /Resources 4200 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4164 0 R /XYZ 81.145 244.96 null ] >>
+endobj
+4202 0 obj
+<< /D [ 4164 0 R /XYZ 81.145 234.001 null ] >>
endobj
4203 0 obj
-<< /D [ 4201 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 218.061 null ] >>
endobj
4204 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 207.102 null ] >>
endobj
4205 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 196.143 null ] >>
endobj
4206 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 185.184 null ] >>
endobj
4207 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4164 0 R /XYZ 81.145 174.225 null ] >>
endobj
-4208 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 724.996 null ] >>
+53 0 obj
+<< /D [ 4164 0 R /XYZ 79.37 148.175 null ] >>
endobj
-4209 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 714.037 null ] >>
+4163 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4210 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 703.078 null ] >>
+<< /Filter /FlateDecode /Length 1957 >>
+stream
+xZ;6WL
+njG33ˤ6
+89-RYR!`Zyu灀: qZ[k/huV/ sx*a:jKVKFyDHHU}{o2}G 沊 `^IB| C> ZJ'#aN¤I2FE CT!DN
+^w%I
+evHŢI(;WSUdmrku]T \|5e{4`BayؘBJ=\#=qlGBP`lȒuOkP-S)1jxZhH 6߳l-Rx{fzN/@C
+
+c%9
+1Uq/7++*K^\_s(ĆQ"GfRYc=EN3;).%,%]C9AdE5,2R9{rnZf cAʚ`It"u@Y/층@u<tݔCG;k(>׿UqXLFi?IPȳ-ku@;Ԟ*ڴ=/ҵN+eT_S]c1󣺦[Ǒ=6"` 3#@h=' _ژȑ*uH\A@]sqZ]}#ݲ!`<K!ɽ-ENañCث-^f#<EeHo/ _I)rM[X"Iy2i&:|命\S"Cv
+V%02V[qͽpk6Ә,^g_Qh /G,v(]/^I I $WP"`@2J;5h NsiS{_Of(sdr(^j@~(XlMJ&FCޟ<(X*'h9.@RI'+s&(EU8AY$u@r 7++,U-`[N gS.ǐ,vHBXQA1.ޥ\qn]!њT9teҥ8[kq>a~ZD12tsHC˛WCyyi 2KO\-zũ+7I[Q!uOϷUDoYZ!}TggC ȕa}n` 5w}|W(+44wx/
+endstream
+endobj
+4209 0 obj
+<< /Type /Page /Contents 4210 0 R /Resources 4208 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4211 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 4209 0 R /XYZ 78.37 808.885 null ] >>
endobj
4212 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 735.177 null ] >>
endobj
4213 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 724.218 null ] >>
endobj
4214 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 713.259 null ] >>
endobj
4215 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 702.3 null ] >>
endobj
4216 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 691.341 null ] >>
endobj
4217 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 680.382 null ] >>
endobj
4218 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 669.423 null ] >>
endobj
4219 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 658.464 null ] >>
endobj
4220 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 647.505 null ] >>
endobj
4221 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 636.546 null ] >>
endobj
4222 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 625.588 null ] >>
endobj
4223 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 614.629 null ] >>
endobj
4224 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 603.67 null ] >>
endobj
4225 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 592.711 null ] >>
endobj
4226 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 581.752 null ] >>
endobj
4227 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 553.856 null ] >>
endobj
4228 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 542.898 null ] >>
endobj
4229 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 531.939 null ] >>
endobj
4230 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 520.98 null ] >>
endobj
4231 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 510.021 null ] >>
endobj
4232 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 499.062 null ] >>
endobj
4233 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 488.103 null ] >>
endobj
4234 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 477.144 null ] >>
endobj
4235 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 463.196 null ] >>
endobj
4236 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 452.238 null ] >>
endobj
4237 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 441.279 null ] >>
endobj
4238 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 430.32 null ] >>
endobj
4239 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 419.361 null ] >>
endobj
4240 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 408.402 null ] >>
endobj
4241 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 397.443 null ] >>
endobj
4242 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 386.484 null ] >>
endobj
4243 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 375.525 null ] >>
endobj
4244 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 364.566 null ] >>
endobj
4245 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 353.607 null ] >>
endobj
4246 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 342.649 null ] >>
endobj
4247 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 331.69 null ] >>
endobj
4248 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 320.731 null ] >>
endobj
4249 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 309.772 null ] >>
endobj
4250 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 298.813 null ] >>
endobj
4251 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-4200 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4209 0 R /XYZ 81.145 258.962 null ] >>
endobj
-4254 0 obj
-<< /Filter /FlateDecode /Length 1746 >>
-stream
-xڵYKo8W:OnhNȱ
--Dn,摂m8κjW'ˢ̟'Q VDx΀Hю~ t,Ӓp3Zub wC]T6mkq(gAmqڶ4p7 ;qmPL܌|QIBV+7{aLa˓51[h9AQg]X/ߦ|Z>woa L!:{ft9+O`[Cz.wy)q= GM2мJ,m"tEuՇs.ݖw#mWw EE֜.KQo~[д"Xؓq=6qY{?H
-endstream
+4252 0 obj
+<< /D [ 4209 0 R /XYZ 81.145 248.003 null ] >>
endobj
4253 0 obj
-<< /Type /Page /Contents 4254 0 R /Resources 4252 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4209 0 R /XYZ 81.145 237.045 null ] >>
+endobj
+4254 0 obj
+<< /D [ 4209 0 R /XYZ 81.145 226.086 null ] >>
endobj
4255 0 obj
-<< /D [ 4253 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 215.127 null ] >>
endobj
4256 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 204.168 null ] >>
endobj
4257 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 193.209 null ] >>
endobj
4258 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 182.25 null ] >>
endobj
4259 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 171.291 null ] >>
endobj
4260 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 160.332 null ] >>
endobj
4261 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 149.373 null ] >>
endobj
4262 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 666.565 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 138.414 null ] >>
endobj
4263 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 655.606 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 127.455 null ] >>
endobj
4264 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 644.647 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 116.497 null ] >>
endobj
4265 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 633.688 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 105.538 null ] >>
endobj
4266 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 622.729 null ] >>
+<< /D [ 4209 0 R /XYZ 81.145 94.579 null ] >>
endobj
-4267 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 582.122 null ] >>
+4208 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F71 185 0 R /F67 179 0 R /F15 180 0 R /F25 609 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4268 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 571.163 null ] >>
+4270 0 obj
+<< /Filter /FlateDecode /Length 2118 >>
+stream
+x[r#7 `aqWT%.ɭrԎq iRJ$z8/ߞ}0ϓ8XϤ=X#7g΍\^ ^I);r/u
+c8e1<.8by.-ɗo v4|2/doIzj' *`~ϦFYL*n I!GuT3}<7vc"Y-vG٥0vw$bU7gaox.=řlμjg
+܃챰4?1W7|ՙLb^\ƝRR8!@;<+傭c)M#J|: B3$uH:-1k('([tzaA0(\(Hp$BiDp:6!Wo{XR{ɀ{J7EebߛuճPN~lIXF+,uIB?$OL}=vJFȵeư4%}rץ=( 
+ɏ)P3Bs'bp t=^W~KT@"bt⛾G邊d+@tGO/g *Zwm
+LV}wT*aaf(GWxHv'd0?W)o)zG4U\3-iʔ-Q^]k’I]!*yB9 w3hq+LuR~W~f9QARҴCk|H}Xsf r*[TBOW;ݩZ-lt:hG9c)KF Qh uXn{e1K%Wa{$5K7sG3?:/l1 b.=ُ(rtM:Ev4A3OZ"P-c5Za]B%yT^2t)Hɩ:.%?~&/;ږUo?$d!sa"}Ra8O&$iSS`Bk2at[ÒI1ۊ%-PsP>k d+==qTdfķw~[=3Hr:j* "QG=&[C'9xԄFQ$/ i! μf
+EraI\3 O]>hWl
+buvxߑ-gpz1Mw.vKs:2\i
+8-[?kJl˙3"{R@~\'3F̯{qw"g{
+endstream
endobj
4269 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 560.204 null ] >>
-endobj
-4270 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 510.86 null ] >>
+<< /Type /Page /Contents 4270 0 R /Resources 4268 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4271 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 499.901 null ] >>
+<< /D [ 4269 0 R /XYZ 78.37 808.885 null ] >>
endobj
4272 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 488.942 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 757.87 null ] >>
endobj
4273 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 477.983 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 746.912 null ] >>
+endobj
+57 0 obj
+<< /D [ 4269 0 R /XYZ 79.37 723.363 null ] >>
endobj
4274 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 467.024 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 684.181 null ] >>
endobj
4275 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 456.065 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 673.222 null ] >>
endobj
4276 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 445.106 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 633.854 null ] >>
endobj
4277 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 434.147 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 622.896 null ] >>
endobj
4278 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 423.188 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 611.937 null ] >>
endobj
4279 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 412.229 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 600.978 null ] >>
endobj
4280 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 401.271 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 590.019 null ] >>
endobj
4281 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 390.312 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 579.06 null ] >>
endobj
4282 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 374.611 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 568.101 null ] >>
endobj
4283 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 363.652 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 557.142 null ] >>
endobj
4284 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 352.693 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 546.183 null ] >>
endobj
4285 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 341.734 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 535.224 null ] >>
endobj
4286 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 330.775 null ] >>
-endobj
-57 0 obj
-<< /D [ 4253 0 R /XYZ 79.37 305.442 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 524.265 null ] >>
endobj
4287 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 237.8 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 513.307 null ] >>
endobj
4288 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 226.841 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 502.348 null ] >>
endobj
4289 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 215.882 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 491.389 null ] >>
endobj
4290 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 204.923 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 480.43 null ] >>
endobj
4291 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 193.964 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 469.471 null ] >>
endobj
4292 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 183.005 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 458.512 null ] >>
endobj
4293 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 172.046 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 447.553 null ] >>
endobj
4294 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 161.087 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 436.594 null ] >>
endobj
4295 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 150.128 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 425.635 null ] >>
endobj
4296 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 139.169 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 414.676 null ] >>
endobj
4297 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 128.211 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 403.717 null ] >>
endobj
4298 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 117.252 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 392.759 null ] >>
endobj
4299 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 106.293 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 381.8 null ] >>
endobj
4300 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 95.334 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 370.841 null ] >>
endobj
-4252 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+4301 0 obj
+<< /D [ 4269 0 R /XYZ 81.145 359.882 null ] >>
endobj
-4304 0 obj
-<< /Filter /FlateDecode /Length 1894 >>
-stream
-xڽZo~_"/Nq኿%z@}/Ƶ@I%$' w(8^ˢif7)EY4"NjV>i>$)gŊ(gZQ):[mfsȫ~rI%$JS <0DPlˈЈ9
-gG\]K&R.McV,ʾͻTYӦHF{I̯;hxP]4h4<DmX81ζM cҹ
-"DmG0:γ"mEژv, j7ۛ-֮1uz9$2_uusH(*
-жo*(i[b9N{[oMoޅv4pH Qmiں3 2ۘԔ) EƠ'x
-P轨?L]-)ESP]\4:/%(I]gV(!屴 ;)o] ؙIi*"R@9o۷:Rv$tMf
-팀eu(Gўv|f>734iwn(g9yٶ0[SN°Q(3>s4ki;V@Ą@1k96/Ýg ,Յ\IFa.h/@ʿ_VLA/|WEeS^&6_WMfW V6?Eysu yAffQ?ob}Cd%s}$_ۦ:'('ZO/7}8噐,:KdD
-4+<ۺjͺ56|aKP%ަ׸\чv*<]C5Yxκf3j_(v$A{dQ/J$zou*fWdwPZik-g4sP_b`\=Go* m'38nw0x`0<j<o]s)m|s#%Q 7+]V 9G 1i X,l[ll1Yhߘ}C 0e` eg?g}Ӷ6yk:'CV zm L) +b'8~޶0>@j<Mo
-xGHܗF
-endstream
+4302 0 obj
+<< /D [ 4269 0 R /XYZ 81.145 348.923 null ] >>
endobj
4303 0 obj
-<< /Type /Page /Contents 4304 0 R /Resources 4302 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4269 0 R /XYZ 81.145 337.964 null ] >>
+endobj
+4304 0 obj
+<< /D [ 4269 0 R /XYZ 81.145 327.005 null ] >>
endobj
4305 0 obj
-<< /D [ 4303 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 316.046 null ] >>
endobj
4306 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 305.087 null ] >>
endobj
4307 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 294.128 null ] >>
endobj
4308 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 283.17 null ] >>
endobj
4309 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 272.211 null ] >>
endobj
4310 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 261.252 null ] >>
endobj
4311 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 250.293 null ] >>
endobj
4312 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 236.587 null ] >>
endobj
4313 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 225.628 null ] >>
endobj
4314 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 678.332 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 214.669 null ] >>
endobj
4315 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 662.713 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 203.71 null ] >>
endobj
4316 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 651.754 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 192.751 null ] >>
endobj
4317 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 640.795 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 181.792 null ] >>
endobj
4318 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 629.836 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 170.833 null ] >>
endobj
4319 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 618.877 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 144.388 null ] >>
endobj
4320 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 607.918 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 133.429 null ] >>
endobj
4321 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 596.959 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 122.47 null ] >>
endobj
4322 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 586 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 111.511 null ] >>
endobj
4323 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 575.041 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 100.552 null ] >>
endobj
4324 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 564.082 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 89.593 null ] >>
endobj
4325 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 553.124 null ] >>
-endobj
-4326 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 542.165 null ] >>
+<< /D [ 4269 0 R /XYZ 81.145 78.635 null ] >>
endobj
-4327 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 531.206 null ] >>
+4268 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F68 181 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4328 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 520.247 null ] >>
+<< /Filter /FlateDecode /Length 2293 >>
+stream
+x[Ɏ6WC`4ܷ [(Inzz,_~铩iX4Z\~\ u -ߟ\,sZH#I?%wST.3*^3H7IJR .
+SH:! 8&F\J"-عIn$Ż<4᳢ äh:՜-R,vz&J?XfPFK='gPmF)3i2=V$4Q\3(<Fx̠o'C `UwmFNw<g)< wيC%N nkfVitBm1I`\q >*٤o[Yől& O0~n%L`A7׿'8PǞ815J3TkW?͔+]FH%aDW#{yDGf(fc2zy,L9tHY>CPч-)DUF$˛y$0e9ZHήJgQw߈3nl74Z]fC}p[H}4$[>4rq?OcZU´rCUR鿪G   )cPjRt!ԍ&`.
+Y6J$CΏbQ Ltw;At{xϹS^!i =H+R}
+uq{q:~.KV`xZ"DZ4zVd<<݀&}-~ב&=yP'1'"܈vWTRAȋ1ܫEm1%^tE;smc|Tѽ ާIz/fGhɬU
+~}si,m%nm0 -& {&VR'S;olŭn4i_iP(֞\1I"X񡧭/$ǔq UGR^Qeg#&>p #:?WRTʏh:L[a59P)j m+:;##h6MO43*&G-RjƈYs!ʼnD89 {Zy Wg8@U~kqNP*#ARGJ#.ĵ݌OX7ARp:WЮx+y:NNH[JYҬYui9Zfu:bkiPl\ ,*6;=o?9PQ;hp.NHbr1} 0qf\tBL=d{{\Py
+GĚ=G[Fos|,a(pè4 Z$r
+w
+iT
+ήyQ!giimj!Lj./|WqJ_{/>>VT
+endstream
+endobj
+4327 0 obj
+<< /Type /Page /Contents 4328 0 R /Resources 4326 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4329 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 509.288 null ] >>
+<< /D [ 4327 0 R /XYZ 78.37 808.885 null ] >>
endobj
4330 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 498.329 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 768.829 null ] >>
endobj
4331 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 459.441 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 757.87 null ] >>
endobj
4332 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 448.482 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 746.912 null ] >>
endobj
4333 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 437.523 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 735.953 null ] >>
endobj
4334 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 426.564 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 724.994 null ] >>
endobj
4335 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 415.605 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 714.035 null ] >>
endobj
4336 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 404.646 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 703.076 null ] >>
endobj
4337 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 393.687 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 675.181 null ] >>
endobj
4338 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 382.728 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 664.222 null ] >>
endobj
4339 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 371.77 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 653.263 null ] >>
endobj
4340 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 360.811 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 642.304 null ] >>
endobj
4341 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 349.852 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 631.345 null ] >>
endobj
4342 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 338.893 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 620.386 null ] >>
endobj
4343 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 327.934 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 609.427 null ] >>
endobj
4344 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 316.975 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 598.468 null ] >>
endobj
4345 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 306.016 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 587.509 null ] >>
+endobj
+61 0 obj
+<< /D [ 4327 0 R /XYZ 79.37 560.769 null ] >>
endobj
4346 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 295.057 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 470.515 null ] >>
endobj
4347 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 258.001 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 459.556 null ] >>
endobj
4348 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 247.042 null ] >>
-endobj
-61 0 obj
-<< /D [ 4303 0 R /XYZ 79.37 223.137 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 448.597 null ] >>
endobj
4349 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 183.92 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 437.638 null ] >>
endobj
4350 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 172.961 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 426.679 null ] >>
endobj
4351 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 415.72 null ] >>
endobj
4352 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 404.762 null ] >>
endobj
4353 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 393.803 null ] >>
endobj
4354 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 382.844 null ] >>
endobj
4355 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 371.885 null ] >>
endobj
4356 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-4302 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4327 0 R /XYZ 81.145 360.926 null ] >>
endobj
-4359 0 obj
-<< /Filter /FlateDecode /Length 1555 >>
-stream
-xZn7}WKR4 =%m
-Ϸ'?NO^1b$L":b#ffd4#Tt=0R?{K|׋7ڍ,qZ pDW/&_Zodjxl¯n$~IKE <jiR‡V+lIed+K9:xPmle=7ylMwκ\Es᯻n 2pFn/Ɠ79bg11 \ݚ(.R4}Tu;%s4Zvjl~lN ^ohUV{$B@'CSAEK_Zs"EdYPzL%Ba&RҸNxHR!EM˟źòmkiyz*ImקC!TceqNL|a(%LN<m3-dYsV幯"CJ "ҮQ~FM'U0Q&f(k24zӕU0esTyw7*[~`%ц2p|sv9_~X]748Aĸ~ 5Aqbed}+`/[2bmd}8/x$jmpSP3"_k*zc?h=޶8eV:BiVzն<`@Ig ḱ1"`Hxj#</&n va& 82zخ͢V!Wՠ6C*I8f$*3tR6Vr>DҟvXC}?H)W6…aˆUY@ʦ8w-شPf:O6u=
-Ilf _)Ъ
-' 3t̖p@ۋjB9hPB% {Α@uoU5N:v^56д6VHO*/L}]<%PZ3$c
-bCKX#('@3"E}ϖ⿪mBCٗ3CXU;~x }侣&X3fu}'
-~-}7k/So?P#5f46hWK3cA\TG^N u4],nxF3kի L5:ҵÍS3hdo'qʲ01p߸f5\*v-WSN }lY.+ z5*R0^2 Ἷ)p#e`|#A?8}F'<\W2=C(8R\-#!3" !e& c /,պkƦO(xa)</'u,RB7\,)qн
-endstream
+4357 0 obj
+<< /D [ 4327 0 R /XYZ 81.145 349.967 null ] >>
endobj
4358 0 obj
-<< /Type /Page /Contents 4359 0 R /Resources 4357 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4327 0 R /XYZ 81.145 339.008 null ] >>
+endobj
+4359 0 obj
+<< /D [ 4327 0 R /XYZ 81.145 328.049 null ] >>
endobj
4360 0 obj
-<< /D [ 4358 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 317.09 null ] >>
endobj
4361 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 306.131 null ] >>
endobj
4362 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 295.173 null ] >>
endobj
4363 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 284.214 null ] >>
endobj
4364 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 273.255 null ] >>
endobj
4365 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 262.296 null ] >>
endobj
4366 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 251.337 null ] >>
endobj
4367 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 240.378 null ] >>
endobj
4368 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 229.419 null ] >>
endobj
4369 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 218.46 null ] >>
endobj
4370 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 207.501 null ] >>
endobj
4371 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 182.595 null ] >>
endobj
4372 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 171.636 null ] >>
endobj
4373 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 104.886 null ] >>
endobj
4374 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4327 0 R /XYZ 81.145 93.927 null ] >>
endobj
-4375 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 615.407 null ] >>
-endobj
-4376 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 604.448 null ] >>
+4326 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4377 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 593.489 null ] >>
+<< /Filter /FlateDecode /Length 2721 >>
+stream
+x[Ko#9hDF8sn_G[,\rU*>>o<?|*3oǿpz&s+84:\5\+&\aV鎂;2mQ9[Ι+
+Wz3"@6ZyAڼ|WC1<q^er8F($HX3 /TAҖ Knz$'<ѓ'v`t.q 9|
+^ iL=GF4Nv,qQ+ )
+P\.ƚU(Ivz,cK*2$2G?bw>g9=1ꩽHc@@
+3dW͒~"
+`ZkJMϝie$f.ᥚ)HI
+JwCqxWL%$Gf_ih*!4\ٝ/,wPѠ/Up/:z̧9\GFM'EU5:!iQ~5,d?8 ?&i@Y4/k^Dv&εD$ki EX024SfS|`EU(|̡i@fDTZm|^.8ݯODw^W-wkfFg9tg,\Ft g 0kHNLH#8˔56BRD,"]=n`8 ~RBŕpGA y~L7\J ,+'n))Gr&%$}h m 4ކ?;O&WcSOPj_Va_ܱ4ɚ0r-*9B3&} ]iD;z̓;vfezη&`Ѿt8̐.o^3ڄY `|3̸ҩ4jHhLH;vԫ !E)}"!}*,qVRsD|J6LrcV{j0wlYAV>|Ez4}-
+ *6}NK4{^lt>/t.)g {>jm̭:b-+z/)%'b:~=g hXsUq :@Lw?F:?}O.}c3u !([) 9
+SߒWRTuol+\~
+rNQJS_֗|{eY<8 a k)*浈haaghҺh_SUa~өxPT1Rz.09g8 U>xZEӆ"Ԋdت* .Bi=SRa94ce-!JUzzEnwT/>)Qa)^Yˤw6eΏu@C5Qoa/ugʹ\v4^ɕiHsUl%!np([U=QvM˪wҬlѭMוm]Ž^IXUHf* #T9Odigj8&l`xˬF;YN@VW [gR }oDQvR&,ڙ}ݷ?@Rn
+}'2M}WYz§ra0;J0Cg£0$0g-Ҭ2,Q _We<3`!YABhʍ'Gj'~Ti{ZHö7rX~O0CСhdxj=4vqEB>Up(9jj޷>>0SHVd+kyBhPSNքscbt
+:fӕ23Y9߄کi-Rl)M-=> # 2~gfuᰆ?A.~y
+endstream
+endobj
+4376 0 obj
+<< /Type /Page /Contents 4377 0 R /Resources 4375 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4378 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4376 0 R /XYZ 78.37 808.885 null ] >>
endobj
4379 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 695.245 null ] >>
endobj
4380 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 684.286 null ] >>
endobj
4381 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 643.718 null ] >>
endobj
4382 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 632.759 null ] >>
endobj
4383 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 598.447 null ] >>
endobj
4384 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 587.488 null ] >>
endobj
4385 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 563.279 null ] >>
endobj
4386 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 552.32 null ] >>
endobj
4387 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 541.361 null ] >>
endobj
4388 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 530.402 null ] >>
endobj
4389 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 519.443 null ] >>
endobj
4390 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 508.484 null ] >>
endobj
4391 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 437.076 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 497.525 null ] >>
endobj
4392 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 486.566 null ] >>
endobj
4393 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 475.607 null ] >>
endobj
4394 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 404.199 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 464.648 null ] >>
endobj
4395 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 453.69 null ] >>
endobj
4396 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 442.731 null ] >>
endobj
4397 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 388.354 null ] >>
endobj
4398 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 377.395 null ] >>
endobj
4399 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 366.436 null ] >>
endobj
4400 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 355.477 null ] >>
endobj
4401 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 344.519 null ] >>
endobj
4402 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 333.56 null ] >>
endobj
4403 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 322.601 null ] >>
endobj
4404 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 311.642 null ] >>
endobj
4405 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 300.683 null ] >>
endobj
4406 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 289.724 null ] >>
endobj
4407 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 278.765 null ] >>
endobj
4408 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 267.806 null ] >>
endobj
4409 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 256.847 null ] >>
endobj
4410 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 245.888 null ] >>
endobj
4411 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 234.93 null ] >>
endobj
4412 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 223.971 null ] >>
endobj
4413 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 213.012 null ] >>
endobj
4414 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 202.053 null ] >>
endobj
4415 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 167.741 null ] >>
endobj
4416 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 133.429 null ] >>
endobj
4417 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 122.47 null ] >>
endobj
4418 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 111.511 null ] >>
endobj
4419 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 100.552 null ] >>
endobj
4420 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 4376 0 R /XYZ 81.145 89.593 null ] >>
endobj
-4357 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+4421 0 obj
+<< /D [ 4376 0 R /XYZ 81.145 78.635 null ] >>
endobj
-4423 0 obj
-<< /Filter /FlateDecode /Length 2619 >>
-stream
-xZo~߿}:pş ػ{!>t AX,^;CR8;/Lq8Ï3DY4]4ypçͨ \(6}GC48%<2!"s{RJۮhW<n[uSʦ6-K޶W'R* l1nBmSU͂Dz3Mf 2ͫKi>i~.輨ͯnk;EEpq@x#kc)6W릭pvb<<(em6Ns$NuSpp[{F0$JF<nʾqC.輩w:75Dž2buDQBhMwޮ,!*9d- HBF$fAnV*A>S.~U
-e] Hs.<- 8}`kL#Nv)
-=F)KFw 0,cIH:q.?(-LG,Du3 SY5SNtyy9DvBiHR _e_` #9 2'tA+@%RWk삅6,HRE* m{`qSy
-h45tw㹝E^70#  S;ݜ2-0JQJaLD0nU/lB.'5MQ>p"*y1Ůy(znI@Mei
- '0@` $܆U WBk8ˁICUz8DoMP\x%C dY!,M>_U.; 8ߡ
-"tl4(P>]ú~,PX:O
-,f$8v:<){0[.x9foXe]jċ"M6{G6QѴREnlXQ/2^Ra푇Mx"l ~cpҧ޳<K M}j6{kV~'cŞEչEcg|ɀxP?3r+I/Y%`mN!RԗDz
-p81(V-"3!x~_Bڡm<K1Y xi7 @J_tcG-&"і6
-!K{k٨F/\5#pWuhe1'Enj GuL@Ha{B LWT’E&A|IDXכ +|TK˓胭);xY+u|K_R@>6Kfapb=7ኛa7~pʿE[Da7~|֓7yaiSFTF$ԯI
-endstream
+4375 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4422 0 obj
-<< /Type /Page /Contents 4423 0 R /Resources 4421 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+4425 0 obj
+<< /Filter /FlateDecode /Length 2841 >>
+stream
+x\K# ϯ\_USS5ʷ$s}˾d%ɿ&TwSrЮ OL|No_FLȜ'1Y4тq-oϏgΥ\=,Y2 !9
+.D=M83ZI#IJ/綾Z_
+T'z ߓʿFKGɞ4-&`&)ZI,$Pz_{ ê À潣</VXθ/+2CB>gEG_0\3кk3tݥa2 =
+nį,qIy4ǞGӷ68J[
+JKf:Zw߁+b7eZ++W(<DIWBT9D"%m]p$\49J,RHǀ26'~"BFۿ0XdfR\1y@"EhG 0y?
+P\)#;s"=#2Dmz~@63r ozP!&x>9S|W?BO9#*\0ܖ9C,c~~d <eɲlUa~y
+((F{D$"g@r^/Ozb'Os= d\W^7+dT$\5 ehـ)+P#JOVv9 bwx/$:21>{畖 য[OA_bOYTrf7Oh0/W.bA^fb^jg)偘dITFxŤؚHWW!rҬd,x. {DEj@I"6<-#xPBl:DÄӭR?On0E y} s-K@V)6BdQX xv莤'QW tc^Q#hXBT KFR*{
+`oq7 $2Z]Uc@Ԓ.:ح,-[<"Z/"*?olřkkvuKMsQ۵\OűhQ0M A6lNSxw-KO37*9Ɂ.莌r[/$S|ʨqGC?diB$;Rq}|R 4M?X<0iFL Wʲd<1Eَp Uז-̵+im6IԁZBRTQ >!J=t*K]ӢMϺb+^o/z'̡Er{Y.C #ŕfwuM`:$PXDDYj$CZW&/ Kz=\=% hq0A TBm7ِ<(.ecUlS_ %+yT`DP)A D}zU fTMejWVLFͺ-U7W@Aюpm{CQD2kiEKM\En$Y070[r J3xG
+}m;Q9yu5d}Yzds%HBSlE6<7Q̹ut@KsRLvb#%;Sޛ^ i 4 +<b;;-޷=J
+&m-
+d|IVi
+"g]ވnChubpJ
+ajv;;qAAI,*S؋G]+3URnO+(7+MC6^ZJ2Kqqd|%^Z`㱈p>z62SНtc4]XLe]A&t*:̥t\~&c~OA!(>3ÍFRR<wY|لC>[(
+f˿'S:;;",U>c__DZ|R*o;9ΗC'sjY'
+h%):}
+cQ-XG­s|^gsĊ·V47@֪;G;wX7vЉޕsU=yZ6{?-<Di1ͳ!;m
+endstream
endobj
4424 0 obj
-<< /D [ 4422 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 4425 0 R /Resources 4423 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R /Annots 4474 0 R >>
endobj
-65 0 obj
-<< /D [ 4422 0 R /XYZ 79.37 771.024 null ] >>
+4474 0 obj
+[ 4422 0 R ]
endobj
-4425 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 684.136 null ] >>
+4422 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.208 501.972 310.635 514.263 ]/A << /S /GoTo /D (Hfootnote.11) >> >>
endobj
4426 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 673.177 null ] >>
+<< /D [ 4424 0 R /XYZ 78.37 808.885 null ] >>
endobj
4427 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 662.218 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 768.829 null ] >>
endobj
4428 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 651.259 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 757.87 null ] >>
endobj
4429 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 640.3 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 746.912 null ] >>
endobj
4430 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 629.341 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 735.953 null ] >>
endobj
4431 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 618.382 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 724.994 null ] >>
endobj
4432 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 607.423 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 714.035 null ] >>
endobj
4433 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 596.464 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 703.076 null ] >>
endobj
4434 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 585.506 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 692.117 null ] >>
endobj
4435 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 574.547 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 681.158 null ] >>
endobj
4436 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 563.588 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 670.199 null ] >>
endobj
4437 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 552.629 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 659.24 null ] >>
endobj
4438 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 541.67 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 648.281 null ] >>
endobj
4439 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 530.711 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 637.322 null ] >>
endobj
4440 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 519.752 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 626.364 null ] >>
endobj
4441 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 508.793 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 615.405 null ] >>
endobj
4442 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 497.834 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 604.446 null ] >>
endobj
4443 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 486.875 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 593.487 null ] >>
endobj
4444 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 475.917 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 582.528 null ] >>
endobj
4445 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 464.958 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 571.569 null ] >>
endobj
4446 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 453.999 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 560.61 null ] >>
endobj
4447 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 443.04 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 549.651 null ] >>
endobj
4448 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 432.081 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 538.692 null ] >>
endobj
4449 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 421.122 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 527.733 null ] >>
endobj
4450 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 396.215 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 474.931 null ] >>
endobj
4451 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 385.256 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 463.973 null ] >>
endobj
4452 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 318.507 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 453.014 null ] >>
endobj
4453 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 307.548 null ] >>
-endobj
-4454 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 218.88 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 442.055 null ] >>
endobj
4455 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 207.921 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 377.298 null ] >>
endobj
4456 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 167.075 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 366.339 null ] >>
endobj
4457 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 156.116 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 355.38 null ] >>
endobj
4458 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 121.247 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 344.421 null ] >>
endobj
4459 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 110.288 null ] >>
-endobj
-4421 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4424 0 R /XYZ 81.145 333.462 null ] >>
endobj
-4462 0 obj
-<< /Filter /FlateDecode /Length 1735 >>
-stream
-xڵZnF+dCdu.( t,S
-TEN{z\٘9s_stɇ+;wwWonH,|rbD331n5=VwwnbZ1qJp1)zۤ|uzj,ӷok#8*J#?
-UZ[>=+pƭ;7ΈZkXw6wXpOF-7C0'B#[DG0
--z@t)9 ؈ay5 B9S9
-
-w⽍Q1+Y[_5sRH
-v~wP0ս;m7Z٦K~~jÃ]U 611y\yw30D%~1xX7:"/q!w߿ rtF7TiÃmpR:B>& UyC?dp9BV\YMw;zŢ]?kQFX-18c4h94=Ƣ"1BVܿ:PYOik#,AAzOS@%2\)Xn9.G>$~C:†JV8'H0gA@mqEƏm (PB%inPyz/鿄@o$ij8DeZ TFUL^lA2k-*"48
-3TPܧ}i )CAu%#CaDh9gDPQ/m9-c\pA gnu >i6%jp[c0ߗ@\FS4vh'g
-endstream
+4460 0 obj
+<< /D [ 4424 0 R /XYZ 81.145 317.522 null ] >>
endobj
4461 0 obj
-<< /Type /Page /Contents 4462 0 R /Resources 4460 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4424 0 R /XYZ 81.145 306.563 null ] >>
+endobj
+4462 0 obj
+<< /D [ 4424 0 R /XYZ 81.145 295.604 null ] >>
endobj
4463 0 obj
-<< /D [ 4461 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 284.645 null ] >>
endobj
4464 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 273.686 null ] >>
endobj
4465 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 262.727 null ] >>
endobj
4466 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 207.933 null ] >>
endobj
4467 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 196.974 null ] >>
endobj
4468 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 186.015 null ] >>
endobj
4469 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 175.056 null ] >>
endobj
4470 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 134.209 null ] >>
endobj
4471 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 123.25 null ] >>
endobj
4472 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4424 0 R /XYZ 81.145 112.291 null ] >>
endobj
4473 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4424 0 R /XYZ 93.716 81.944 null ] >>
endobj
-4474 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 659.243 null ] >>
+4423 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F16 422 0 R /F19 182 0 R /F25 609 0 R /F75 4454 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4475 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 648.284 null ] >>
+4477 0 obj
+<< /Filter /FlateDecode /Length 2878 >>
+stream
+xڽ[n+;+ѕ0q^gm4QKU)9cJbGD~7WÊb 0_fX#7˿wΥ ?oWa1ot=!EO)y{ՠ/9ׁx*^ E6\G [upM}&[kDe͙0&r
+((Jp!ŇI`T?z&łd%QQ7p ^|U^a,
+~:~Q )"U})&xyZ0YYX1$`
+ީ-0`C~okw=h=e-><FOXb̂6*׶m&8aT\Fl~**}4[ >Gk7* j*(mn,pn4H=i|nDJOH`zӈ"c23sAx%h7i2#W5L=:;CXYU˙5x$>89D(<Y<L7kYSwīV>ѫf=p=Z 5N{.䚢.ާZLFLX\Yh­G["qzBb 1`v6R`q u] m]:k,[}Jw?,)SS?-t#aspv;nh4dͥ(ŔwS.'B)ŧ9JԱqS.iKXX 4}sqSXMյ$1kRoQn)hQ$J-k\Wg. 1x(.ϴpu{[,xH<_k.Z~RbR'#FĂC R( {8&byn&ޔkI`:M+1!f`jLHEȾ G*`]b&
+BIJPϥ f(%Lu+[ͬވntԯ>R"S1
+n BXs#~Rlw9#SZ \J?pfCF-^0b*ZP::/@W9j}uq Dk>P/Fq&7+9s̋jVe'rCG W:r=!-).*<l%yTе:&宍~ǏC7`->R0i"oJA te 9uvi.)heTEm+* Dkb=`6 YKO۳T2Ӷ)I9-wk?WilE[ DA rr;J3RJӅ"9.P
+zx^˓TV3]Ň]P{i;?tM4r@M ƍiʼn*mI {W 0ThDP@@c#6bSO`aY)1RX;mѹ9v|~67ӐV ,;m{޶+!0-vdV\gyHǤ5öY1|J;g2}Ɋa*P28q3Ǥ#B`&T,.h/WJHj u]knZ#pc]!q sSn]?l9sKٖH/9B))f3=CB omuA0k0&d1b+ѓ>xK9/7
+yeLSZ4k8n9!R0tgf~BǶ.lvHF^rۯ+ Vp"}s$# 25_R
+:Թd8e2p;Zmm'˸
+m]45Ɣ :cKmL7ȐK78!אx[bT<gІh#'hȹеS4B T
+endstream
endobj
4476 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 593.489 null ] >>
-endobj
-4477 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 582.53 null ] >>
+<< /Type /Page /Contents 4477 0 R /Resources 4475 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4478 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4476 0 R /XYZ 78.37 808.885 null ] >>
endobj
4479 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 768.829 null ] >>
endobj
4480 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 757.87 null ] >>
endobj
4481 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 717.024 null ] >>
endobj
4482 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 652.266 null ] >>
endobj
4483 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 599.464 null ] >>
endobj
4484 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 583.524 null ] >>
endobj
4485 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 572.565 null ] >>
endobj
4486 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 561.606 null ] >>
endobj
4487 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 518.767 null ] >>
endobj
4488 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 507.808 null ] >>
endobj
4489 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 496.849 null ] >>
endobj
4490 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 485.89 null ] >>
endobj
4491 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 474.931 null ] >>
endobj
4492 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 463.973 null ] >>
endobj
4493 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 453.014 null ] >>
endobj
4494 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 442.055 null ] >>
endobj
4495 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 431.096 null ] >>
endobj
4496 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 420.137 null ] >>
endobj
4497 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 409.178 null ] >>
endobj
4498 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 398.219 null ] >>
endobj
4499 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 387.26 null ] >>
endobj
4500 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 376.301 null ] >>
endobj
4501 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 365.342 null ] >>
endobj
4502 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 354.384 null ] >>
endobj
4503 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 343.425 null ] >>
endobj
4504 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 332.466 null ] >>
endobj
4505 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 321.507 null ] >>
endobj
4506 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 310.548 null ] >>
endobj
4507 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 299.589 null ] >>
endobj
4508 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 288.63 null ] >>
endobj
4509 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 235.828 null ] >>
endobj
4510 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 194.981 null ] >>
endobj
4511 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 136.202 null ] >>
endobj
4512 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 4476 0 R /XYZ 81.145 125.243 null ] >>
endobj
-4513 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 140.189 null ] >>
+4475 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F72 266 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4514 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 129.23 null ] >>
+4516 0 obj
+<< /Filter /FlateDecode /Length 3453 >>
+stream
+xˎ񮯘}Ebߒf F\)>]avX7/]<MgހQ/ Lڋ5q#._^~y\\9WϜG s S_򫵄VL{1
+>sEX106C.!kQ4E oQ=<XΔKp9BVE<= ?ơ
+3̸ 45r,d=,( 'sq45cr:“@qi7s1C ϵJOI 1(nXyV"gRD: h "1 )*R.:ŵQz҆2as8W= ݫHjɄ7AO*#cVMY`ߟżZ0łdeODW^lC?݌8DHסY#H0ץhdJN`wP@g(4%+Y8~I Wd1:M, C
+$*%sL٫f$܍䱁%XA8Sl<{`=αl68,Tf=2f
+es=
+ 9JFORYW<#Yj{
+9zZm?^KZ9@ҝʎCGDMmɺgIH(L<(ѾH5#;pz- DfH
+b@ݪ]{s8>Y~[ʭxdXL=zF:рZ}ҞF$HyD=EiVN 5HH:h:@
++Y
+gk-g{Z@_
+f3]1v,Ck/Yα4rǮw DNJor$gB pa uNVw$ss?< $J)1^c\5ob5jXJ<F
+cHى
+7ǯ?|CmY"\~T$0/
+9
+6
+hj[ֲے%0:aF"A@ٮoוPblL_;R !df1^5F3"k'z(ɬ֨+Ql;ˮ=Als @ϗJu@z6@ *S0|Ǎn7Kzz; gV`K&(ClpV p\;S~cjH6RG6[U9O.oMyVxȡB3!;C-CsԆ)@lZϴ|H4\+ýCE!L]Z EYltO9<߯T^`0
+aj9x̍
+_os}PV@3Vg ~vmѵx6=ބPbn
+%H_CtB ؚe D~c1x!aN̼Mؐ.Nqk"Y eouF9n_8P7 W\_=,df[Ծ[G^a^1eh-8y qIQҋ]ةxNŽ;ͶuV+X9ޖJzgҩ.5)'r!kiC8k/e7SU
+8ۂ\|-g:4E]/*LkEEt[W~$xIa\X+ARQZ+'m$
+uj]E'
+A|sѪ:qѺ-=73͈R3ŧz'z jDX.5Ew+Q\`JJy/l+ђV&)Wن93@ mᭃ'~@ckx[z2= $5=)Ӂ^<ˇ*3xÿ_ů)fD_>)ͼ5Bͮ\>ݴX( (5Ù{xYV
+endstream
endobj
4515 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 118.271 null ] >>
+<< /Type /Page /Contents 4516 0 R /Resources 4514 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R /Annots 4551 0 R >>
endobj
-4516 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 107.312 null ] >>
+4551 0 obj
+[ 4513 0 R ]
+endobj
+4513 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 434.928 367.487 445.355 379.768 ]/A << /S /GoTo /D (Hfootnote.12) >> >>
endobj
4517 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 4515 0 R /XYZ 78.37 808.885 null ] >>
endobj
4518 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 730.971 null ] >>
endobj
-4460 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+4519 0 obj
+<< /D [ 4515 0 R /XYZ 81.145 720.012 null ] >>
endobj
-4522 0 obj
-<< /Filter /FlateDecode /Length 2848 >>
-stream
-xڭZKs8Wj#mޏLea2b$"IoA>{ BF?
-p<`
-
-ND.|V8}
-Ei;WxОlC8
-jlŀmwi*wFp&ip*''X18u4zH4|&ͧs;n:\:{ZZ+5  i3cso4Yqo$qO#%=BfV54I).نO6=;qu_8MW ( >LVS{;!bM?W nPFSC
-@ vܽ7^ o=}V>1kp(oī_Fy<~"y~r
-cy(_m~_pw,˺|! ِox xg9a+Dݸ+vpô9Y#+k H,@ح]j7Tm|YiV
-endstream
+4520 0 obj
+<< /D [ 4515 0 R /XYZ 81.145 709.053 null ] >>
endobj
4521 0 obj
-<< /Type /Page /Contents 4522 0 R /Resources 4520 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R /Annots 4558 0 R >>
-endobj
-4558 0 obj
-[ 4519 0 R ]
+<< /D [ 4515 0 R /XYZ 81.145 698.095 null ] >>
endobj
-4519 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.185 699.348 310.618 711.284 ]/A << /S /GoTo /D (Hfootnote.11) >> >>
+4522 0 obj
+<< /D [ 4515 0 R /XYZ 81.145 687.136 null ] >>
endobj
4523 0 obj
-<< /D [ 4521 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 628.356 null ] >>
endobj
4524 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 617.397 null ] >>
endobj
4525 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 606.438 null ] >>
endobj
4526 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 595.479 null ] >>
endobj
4527 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 584.52 null ] >>
endobj
4528 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 573.562 null ] >>
endobj
4529 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 672.194 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 562.603 null ] >>
endobj
4530 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 551.644 null ] >>
endobj
4531 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 540.685 null ] >>
endobj
4532 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 529.726 null ] >>
+endobj
+4533 0 obj
+<< /D [ 4515 0 R /XYZ 81.145 518.767 null ] >>
endobj
4534 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 507.808 null ] >>
endobj
4535 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 496.849 null ] >>
endobj
4536 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 485.89 null ] >>
endobj
4537 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 474.931 null ] >>
endobj
4538 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 463.973 null ] >>
endobj
4539 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 453.014 null ] >>
endobj
4540 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 442.055 null ] >>
endobj
4541 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 431.096 null ] >>
endobj
4542 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 481.908 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 406.189 null ] >>
endobj
4543 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 470.949 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 395.23 null ] >>
endobj
4544 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 459.99 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 328.481 null ] >>
endobj
4545 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 317.522 null ] >>
endobj
4546 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 252.765 null ] >>
endobj
4547 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 241.806 null ] >>
endobj
4548 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 129.228 null ] >>
endobj
4549 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 4515 0 R /XYZ 81.145 118.269 null ] >>
endobj
4550 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 4515 0 R /XYZ 93.716 88.523 null ] >>
endobj
-4551 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 309.554 null ] >>
+4514 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F16 422 0 R /F68 181 0 R /F73 267 0 R /F28 611 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4552 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 298.595 null ] >>
+4554 0 obj
+<< /Filter /FlateDecode /Length 2287 >>
+stream
+x[n6+!;`4`r-59)nҥ(/[j.끗O7c⢘wBE\a5q#.o^|<s^s\?6Ǽ1ҵ@8G$PKӈfU.{'Qy xQΈ2#H{xRyD>L]W7DI6yO-3RYE"< zx<?e+T5+tiIKRvd'bʔXx|jI{Cy7
+FAG)S[UY޷!:4^jIWe"O=230c$2mlK=hMUp&5i+)Rm$WX]x+tWʬV"fl
+՚i(RL'[̳uT)%[s˟ѝjhBoX8&F6izA kZ)61]S/j% `&ڏ(ϣilVs0ELt$yr2"hζ}P&P\qS{z@4 ߟKFcNr?9F{zY69gI"tmGn; #
+UJF9%{СJ >ɊA͗ɥK+g)NcjЃ)mwWb-Bc*ugOVYV3+5P&
+to+UD7).' gN> hU
+yֹwIU:zb=~9eI!z Q@X25z|Sn ؾ/!DXBopQѨ`[ ŊU 2ٹbUW!FU7lSb5ق"N5zKyV@e-d//LQqKy/FT}Fa=~(uSmn^͏'-{Ӷabg53y=\1in ׺UfV.l@[wk~iSǴ0=< ` e̍*7}ǹi&̍>H#&rkTcn HwMhj_ؐoYMZuK1vVM RiChUhRdo)J&^73k]S {]OS3S{#<S@'T(-3SȹV΀cmQp Y{t큾bG^43YjYsU\{us\l)潳]En39CUGN?|O8$Q 1 O @W
+$veepumEqYr6R>-j Sׯ 9DjsLRmLA[9T۔.:;a!6R2^J-dp='Y,a;gg'R
+&EhlKBĬv`3Ҝ=6'3A
+K eAn;&O3_L;z=[زIgM9wd@cK67f0K67v5-liL= g&_Ү췰$Ӝsh(颞 HߗA,u?ru3p`\xJpsh>>L8zB=X{Qq>ٟx:^- I#U6zgP Ye9趞΋/P}E{4u>%+
+S
+endstream
endobj
4553 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 287.636 null ] >>
-endobj
-4554 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 246.789 null ] >>
+<< /Type /Page /Contents 4554 0 R /Resources 4552 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4555 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 4553 0 R /XYZ 78.37 808.885 null ] >>
endobj
4556 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 768.829 null ] >>
endobj
4557 0 obj
-<< /D [ 4521 0 R /XYZ 94.613 98.396 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 757.87 null ] >>
endobj
-4520 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F22 473 0 R /F20 186 0 R /F23 660 0 R /F27 4533 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+4558 0 obj
+<< /D [ 4553 0 R /XYZ 81.145 746.912 null ] >>
endobj
-4561 0 obj
-<< /Filter /FlateDecode /Length 2674 >>
-stream
-xڭZ[~_ᗢ6WQFSld@\[c +K^Iw#J/6E\`?Xߟ|S'Dr6Y>R0$TNɿ<bz_>|RDH)”$+rc6I?6.C6xU)z
-q
-d
-HF򶱥&<Үy4}>fmw%2z6*$С+:emC!a.`mh7
-
-Vk?Cޔ>#
-4Qe<C4Γ(!}4d&\؊/H =KsioV^u:ӎء$YM1#?$z.o7)9Ѽ4! #:x_,'\R'Mo,cy#谧6!k(m
-.m2BvLN0M?s7yf0
-<M DssŠ+MB&>| - EЈ;!xӸl#-}I9nl.
-+GYށUroӉt_..cu Y$Lv6eqK ݾ|ĔFDy_.ёxp<}G;ynhMP3Cx᳸{>[)8oX;%Ti@D޽T[p2\._D [3ꇾ!'#JH
-endstream
+4559 0 obj
+<< /D [ 4553 0 R /XYZ 81.145 718.121 null ] >>
endobj
4560 0 obj
-<< /Type /Page /Contents 4561 0 R /Resources 4559 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4553 0 R /XYZ 81.145 707.162 null ] >>
+endobj
+4561 0 obj
+<< /D [ 4553 0 R /XYZ 81.145 696.203 null ] >>
endobj
4562 0 obj
-<< /D [ 4560 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 685.244 null ] >>
endobj
4563 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 674.285 null ] >>
endobj
4564 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 663.326 null ] >>
endobj
4565 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 652.367 null ] >>
endobj
4566 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 704.075 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 641.409 null ] >>
endobj
4567 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 693.116 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 630.45 null ] >>
endobj
4568 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 682.157 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 619.491 null ] >>
endobj
4569 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 671.198 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 608.532 null ] >>
endobj
4570 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 597.573 null ] >>
endobj
4571 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 586.614 null ] >>
endobj
4572 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 575.655 null ] >>
endobj
4573 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 564.696 null ] >>
endobj
4574 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 553.737 null ] >>
endobj
4575 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 489.283 null ] >>
endobj
4576 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 478.324 null ] >>
endobj
4577 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 467.365 null ] >>
endobj
4578 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 456.407 null ] >>
endobj
4579 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 445.448 null ] >>
endobj
4580 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 434.489 null ] >>
endobj
4581 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 423.53 null ] >>
endobj
4582 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 412.571 null ] >>
endobj
4583 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 401.612 null ] >>
endobj
4584 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 360.866 null ] >>
endobj
4585 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 349.907 null ] >>
endobj
4586 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 338.948 null ] >>
endobj
4587 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 327.99 null ] >>
endobj
4588 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 317.031 null ] >>
endobj
4589 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 306.072 null ] >>
endobj
4590 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 295.113 null ] >>
endobj
4591 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 284.154 null ] >>
endobj
4592 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 273.195 null ] >>
endobj
4593 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 262.236 null ] >>
endobj
4594 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 251.277 null ] >>
endobj
4595 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 220.747 null ] >>
endobj
4596 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 209.788 null ] >>
endobj
4597 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 198.829 null ] >>
endobj
4598 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 187.87 null ] >>
endobj
4599 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 176.911 null ] >>
endobj
4600 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 122.47 null ] >>
endobj
4601 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 111.511 null ] >>
endobj
4602 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 100.552 null ] >>
endobj
4603 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 4553 0 R /XYZ 81.145 89.593 null ] >>
endobj
-4559 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+4604 0 obj
+<< /D [ 4553 0 R /XYZ 81.145 78.635 null ] >>
+endobj
+4552 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F73 267 0 R /F19 182 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4607 0 obj
-<< /Filter /FlateDecode /Length 2753 >>
+<< /Filter /FlateDecode /Length 2225 >>
stream
-xڵZ[o~ϯ0u 7b:N 4E0d[IcKItԅ!M9<<WJtv?^I2l^x^$0gw &E3n*{Zo+;3*%̔&`zyl Y|-Ǯ۷]S,VX,'o(alkz:鴅%L6;62(n_myYZrCLVA<bbp y9% T-r}~*\ۼkϿWZTL5T$нRݢ)?B>H"xTIF#i}
-R6OrvsʷŢ~]T.3``)O~\]vKy,,ŕ.-`P!>Wnj3)XۼY=I.b.wyYȇw=C5UWQn7ƀjWl)3M#/W[s?8)dScbr/ ̳C5;q R_Op^ʀ EfY帥gώ+P,^T/kuoڷaa˻rYn`c/Sv }t "Bj.t=89R1Js
-(iÎ8v|"{<A4YQ2co8eFwMTdc"LJ:)<3>"v7mT] Q :.~
-f |;lz௜S&hi7a%݌$zÂeuuĘ *?a[o.'Ch85DOw]ѼpB::AgImp= _=$ճL
-Hә1g "'<w$}&;z8$d(d<`f#u>ǵNRsuI_Pff ,)Dj-H'hccdWr#&P* I+BOJivwUqy]mǨ a}~â޳"D;_ؖ.PJki;}:zʛ{<>!}kSE "~%
-ݦ^}<mL{dA?'-!0{ 1I>!
-rO8;RX
-rf /
-r]9
-pa_zv
+x[r6+3xVmʲT[*O
+[>]iF
+ӵ4U2LpDNx!ěVHD83z`<zc)o^'NF;]3˻)L<ep_im(Í! ~}e]Pҵ.ݻT0
+T-Tju̖MLξA75X?-ǻ!|{?) C"!!R)QdJ )4Z$E
+q !=4z RjكIFOD=`~ Ľ%4M}WE"#Ͻ#}3#~n ?-ɔ K rDqw! |TSarjm;!Q݃B4KagPɏP'-МИ`3+)"i| :AUVZCVmbsLq -dnysIۙ4}(bh ݖV3H /V=uh"vɿ0(CehQ<rRp|yoVh[iYty0շ4؁ZmSB C v]Wu]fqUu`)YutnH> <+_ΤEEDY|m|,VzZI o"N"f(J| 91 zDUCrFSjه]C;/~rJTEos,@xӷ5xº434]nc t򣶉ą&b[Kȍavl
+*'<-ײz^uE ݕXkqSVZǸǥeFuo!RQkdɿ"\ryI2rmʕWjui,
+-ҨVL*qyk+:0qhW9Z[d
+5<2 Ƒ
+ig:crpBa{G5T "> 1%ACis=OFL">*}LPaPA9-rp{z9LOAe,dfGKёC?t[bE\--r( anDQ0wQ3roN0joV7 d,GYi+2RQN-Sҕ;ut<|TοMs a Aa}3<.6vjF2U\9R L(kI+W}@/}dIfd"NԾYݗK'҇:oEOӭިMQ5DQC5AZj.SޛSkSCI:~rE|~(z-k +-ܩ7 t95ф) T죊Q=ou>j&Ls-Է 43u47^DGZ4ZT,(XƸ֗t䊙3j(Žڕĉȱ%w}E+_N]\Y+RKCTVk(ԉ+K:NFm3:մn E{ >peG7 yVNauߗ|BkkOs^ֽi?L
+Y[ 0>N :ZJ9oRV/SpxCZ}e2πqt}f;\gi~w[b ;pe#>4Qn-]8[t6@\M1 h`H:wa>i^x\)ݻ81;IjJ1DN8E~NH 48 != j!2)ƓIzUtk'x
endstream
endobj
4606 0 obj
-<< /Type /Page /Contents 4607 0 R /Resources 4605 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R /Annots 4650 0 R >>
-endobj
-4650 0 obj
-[ 4604 0 R ]
-endobj
-4604 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 434.917 577.501 445.35 589.438 ]/A << /S /GoTo /D (Hfootnote.12) >> >>
+<< /Type /Page /Contents 4607 0 R /Resources 4605 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4608 0 obj
<< /D [ 4606 0 R /XYZ 78.37 808.885 null ] >>
endobj
4609 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 768.829 null ] >>
endobj
4610 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 757.87 null ] >>
endobj
4611 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 746.912 null ] >>
endobj
4612 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 735.953 null ] >>
endobj
4613 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 724.994 null ] >>
endobj
4614 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 714.035 null ] >>
endobj
4615 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 703.076 null ] >>
endobj
4616 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 692.117 null ] >>
endobj
4617 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 681.158 null ] >>
endobj
4618 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 670.199 null ] >>
endobj
4619 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 659.24 null ] >>
endobj
4620 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 648.281 null ] >>
endobj
4621 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 637.322 null ] >>
endobj
4622 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 615.049 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 626.364 null ] >>
endobj
4623 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 604.09 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 615.405 null ] >>
endobj
4624 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 538.918 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 562.603 null ] >>
endobj
4625 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 527.959 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 551.644 null ] >>
endobj
4626 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 466.359 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 540.685 null ] >>
endobj
4627 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 455.4 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 529.726 null ] >>
endobj
4628 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 345.978 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 518.767 null ] >>
endobj
4629 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 335.019 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 507.808 null ] >>
endobj
4630 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 324.06 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 496.849 null ] >>
endobj
4631 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 313.102 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 485.89 null ] >>
endobj
4632 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 302.143 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 474.931 null ] >>
endobj
4633 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 274.303 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 463.973 null ] >>
endobj
4634 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 263.344 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 453.014 null ] >>
endobj
4635 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 252.385 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 442.055 null ] >>
endobj
4636 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 241.426 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 431.096 null ] >>
endobj
4637 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 230.468 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 420.137 null ] >>
endobj
4638 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 219.509 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 409.178 null ] >>
endobj
4639 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 208.55 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 368.331 null ] >>
endobj
4640 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 197.591 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 357.372 null ] >>
endobj
4641 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 186.632 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 346.413 null ] >>
endobj
4642 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 175.673 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 335.454 null ] >>
endobj
4643 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 164.714 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 324.496 null ] >>
endobj
4644 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 153.755 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 313.537 null ] >>
endobj
4645 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 142.796 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 272.69 null ] >>
endobj
4646 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 131.837 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 261.731 null ] >>
endobj
4647 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 120.879 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 250.772 null ] >>
endobj
4648 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 109.92 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 239.813 null ] >>
endobj
4649 0 obj
-<< /D [ 4606 0 R /XYZ 94.613 80.331 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 228.854 null ] >>
endobj
-4605 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F70 185 0 R /F76 318 0 R /F26 662 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+4650 0 obj
+<< /D [ 4606 0 R /XYZ 81.145 217.895 null ] >>
endobj
-4653 0 obj
-<< /Filter /FlateDecode /Length 2097 >>
-stream
-xڵZK8W62p0a=Lڢڑ%R?AE"?~,K~zC_G2iz:c3afF3B5]of'"wdgyU6޺,yc]W嗼+l_`p: ٕ~ٖngCHF
-̳oޮW;lf)L2jϜFR A4̹IW$)JP>RN˶qQYes&IIkдZT 0mn]3
-Y vx] P)[]iVOJa:q(vâhm{$:ZU<í%
- ot_-־C2Q5$Жg΄"\PSBrf
-~r(L,eOL5h.
-SǓf~}f)"2XmXoŲ)U]Q/wce]4˻;5@U0NU0z*#X/OU77w~*(\>,mG
-j*|IMd2S4krO G_ψ4T{<7,Y5U̹Nz훖f3 FІŃnΉq bssÓ`.',vPvCbOגoWdMv@] i5wB=rI"aWO(zbSNjOis}P fb3Gh 'f4؜[$=;϶iKaM͢!Bƛ<p$=@|
-2шsC7vΈoШ *7
-D:8Pဩt9PJDx"fHf
-h*R 5b
-f#!@h -Cp1Tx_m;]{quԾ& ۯN|L1I*](=?tbW
-endstream
+4651 0 obj
+<< /D [ 4606 0 R /XYZ 81.145 206.936 null ] >>
endobj
4652 0 obj
-<< /Type /Page /Contents 4653 0 R /Resources 4651 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4606 0 R /XYZ 81.145 195.978 null ] >>
+endobj
+4653 0 obj
+<< /D [ 4606 0 R /XYZ 81.145 185.019 null ] >>
endobj
4654 0 obj
-<< /D [ 4652 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 174.06 null ] >>
endobj
4655 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 163.101 null ] >>
endobj
4656 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 152.142 null ] >>
endobj
4657 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 141.183 null ] >>
endobj
4658 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 130.224 null ] >>
endobj
4659 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 119.265 null ] >>
endobj
4660 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 108.306 null ] >>
endobj
4661 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 97.347 null ] >>
endobj
4662 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 654.261 null ] >>
-endobj
-4663 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 4606 0 R /XYZ 81.145 86.388 null ] >>
endobj
-4664 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 602.456 null ] >>
+4605 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4665 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 591.497 null ] >>
+<< /Filter /FlateDecode /Length 4015 >>
+stream
+x\KoWq@\ cI f &SXEvL$;d},>M\; ?]bE˯w
+䢖腗q ^ )M2Ϗn(&rCJK-i  >Hl5~@ˬ_kdnPRo0j6T8 rX22D\1هP ˄OFeK˼̺N5"S%]6Vs3_|> @.
+źR2l ˾bƴgTB%epR<s$w9$Y~=(`$h! VZ DFZ+܌ƁGܬ߭a.4rNaaFnGˣFB]lbf0&x?E[$?pǢA0o ,e\iʤ-w\>/\( ӏ~#{.Lm9^(`Z L6Q :nYQPji,,]ΌEvAL-H7C<7M)EtM ˠlg3Yݩ4h՚[<O>MD3rJ0伎gin,oGz%-x'LGGum|JK'ߗj휀.܊認שOP-lL.E1QAcAM}[cP99vnc[FEaQ v"S,(,Vb5O⠈]oLO7Ɖtl<<l%|T'
+҉C6H9SIۉU~LԐt|s sC.2snsnez4֨58nE'J`uUqt+K~>r\Bd+tJy΀.Fa2>H4P@dHǢk)GrjXA^9
+9WBЌAlho># M#y5J jQ%)06H :1R#Ԍ =FR=aCב$ʨ Vx$ 6HWƹ>q5- ]
+0,,!c#H`i!ȅ^偓EgdLABD)89fH$yMlGPJ
+ VE;"2 (YNdI!$Dh#5rBc\ oV! Mc!9R3B`]
+%D"
+4EHƁty45cDB Mcݑ!6@jdC*/H +rK$al!)5l4V M
+Fa=D̞A^-p6Fq2A+d %D6 Tr.[Ea1
+2=!bu:
+ KqaoiPKR$kW^yf f;=!byPKlD
+shNZ:0:H:1|GK@$pؘ I0)
+MzLY@5e!C5 02H tS%Vȹ@HGC3Fc-k{B+|F,} '6`M#sLr5gj$)L :1R#Ԍ =oYhQ<E6&i? *eβBF!f@beSWc~7K+xdUvO $@텴F !
+4EHƁtdjĈA#MSaKz>o߱
+BXE[!
+gr=N_VO7;DzS=XÁc
+gr;^gH5s7[oOdI[p]
+g:}9.;|)ƯYHo)*5O|+M^5!@4cԶ1;pj57[u6* U8rЗfQ1yBpk)׼I‰BEq:OOM*"v{u>k5ߜ!B%k [&K{={bb<3 |GI) -3{2l&e֢$E/._~5hs~
+endstream
+endobj
+4664 0 obj
+<< /Type /Page /Contents 4665 0 R /Resources 4663 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4267 0 R >>
endobj
4666 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 580.538 null ] >>
+<< /D [ 4664 0 R /XYZ 78.37 808.885 null ] >>
endobj
4667 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 569.579 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 768.829 null ] >>
endobj
4668 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 757.87 null ] >>
+endobj
+65 0 obj
+<< /D [ 4664 0 R /XYZ 79.37 734.414 null ] >>
endobj
4669 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 354.166 null ] >>
endobj
4670 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 343.207 null ] >>
endobj
4671 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 312.323 null ] >>
endobj
4672 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 283.431 null ] >>
endobj
4673 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 272.472 null ] >>
endobj
4674 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 261.513 null ] >>
endobj
4675 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 250.555 null ] >>
endobj
4676 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 197.753 null ] >>
endobj
4677 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 186.794 null ] >>
endobj
4678 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 175.835 null ] >>
endobj
4679 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 164.876 null ] >>
endobj
4680 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 153.917 null ] >>
endobj
4681 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 352.393 null ] >>
-endobj
-4682 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4664 0 R /XYZ 81.145 142.958 null ] >>
endobj
-4683 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 330.476 null ] >>
+4663 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F73 267 0 R /F34 1759 0 R /F28 611 0 R /F25 609 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4684 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 319.517 null ] >>
+<< /Filter /FlateDecode /Length 2373 >>
+stream
+x[n$9WX-Q*`3kkBR0BNaKlOIQd<$OWeNA OyR'v'gV{糔Nxjxy67:H;:r=5- $ceK
+fߡ&"؊PNkjQl:u.tTo6QHH?iM(ybQxDhD)!R*
+]yX&H8ydF$ 1F
+gY~.M? Ѥ8%x2黸A h f#Rv#,yX1V,\Z'O
+*
+Lڈw +>V
+a<M2s,2
+ tOMZt4# X&pj1 >'\3t?8MD;)\
+mT6εT rjR%Vw یrH#c*&Z ^7IRʬʸ
+u*qF6#{k9lm<s{&bR>Z4_/hvXlPnTxeQ]j5ktMTk{q\+Pf
+?RغƢ\@)r#Sp7jQ)~tC~4"̎
+*E iݥ!.q&>!}]Lk @ck _p:>!}i \#hD_&o5 9 iش{ U8LH7i Bkǩq4HHCZg4(D9W6=#Xq.P[
++9|>FGZK*nPVk*H1cLxW)Hnt4!FnڻXNHUXs4kH0t/v XݯFq j>_T7˷6zAn1C7C})l>[n2_7ZPɺ}Т㮤N2*&Zw69{.k6-[u`*n_im 8zB(0OW}RaTRo< 0wN|ں$q [Mr8lh$ԛ= dH]-15df`]I/Pw&j_i=v[[P\mXu fQ{E'6Zgr7N aPo
+к n4͠wgD![/\gJw6d/#lWthCb+}
+endstream
+endobj
+4683 0 obj
+<< /Type /Page /Contents 4684 0 R /Resources 4682 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4685 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4683 0 R /XYZ 78.37 808.885 null ] >>
endobj
4686 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 742.944 null ] >>
endobj
4687 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 731.986 null ] >>
endobj
4688 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 721.027 null ] >>
endobj
4689 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 710.068 null ] >>
endobj
4690 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 699.109 null ] >>
endobj
4691 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 688.15 null ] >>
endobj
4692 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 677.191 null ] >>
endobj
4693 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 666.232 null ] >>
endobj
4694 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 655.273 null ] >>
endobj
4695 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 644.314 null ] >>
endobj
4696 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 633.355 null ] >>
endobj
4697 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 622.397 null ] >>
endobj
4698 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 611.438 null ] >>
endobj
4699 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 600.479 null ] >>
endobj
4700 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 589.52 null ] >>
endobj
4701 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 578.561 null ] >>
endobj
4702 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 567.602 null ] >>
endobj
-4651 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4705 0 obj
-<< /Filter /FlateDecode /Length 3903 >>
-stream
-x[o_!/6kڇ)WZR"qw9pwz@Np~?3$3>Ofkf/~!@[f9+bn=ƝݟmyU ř0wgJm^mmfWWW>nWHmp?t ZWrSw{Gū}ԺM@V~Z
-)!7mVPk2/l:i:e2^vILpfab> Ha|d=2m[Y׎tZ|)PE94cea_ers:3WV#nBtZ]_5돇o^zz3_7W29H>9rAUmMhM6]8؎C2IzL56"{y芆
-vy9|x(_;b{7BWNeI'nwf~8]_#k[,}ӅvMf{8V~<3s2 YS7vVg݃_tz؟xO0Y(}7r"9~mWdxM+w;= ,1/ol^ ׌4&SRne=Y: 2)n:F/N &H5
-ReHĎD}fJ=(=;Rô"SCсɜ=RI!#9d7V\W:DmiZE)WZOEs`͓۞vXYlE *o&5*Qۉ9n*vbx; ~,=̈\g3̘F&5(!*YaZduaZ-=>' &%:2lqZvQJ8J#Lg$t)Sʇ{ilzNFawwN-ws%_& r{84vi#$%%s<<G?vϒx?_y!bji܈fs$Hrb\<~r5a$MAa2thZ՗ qvW(/)/n&^>0m~'=ژ?a;͝]oooC_Kܻ;x6mGGfA>tOqlkZGk~d/Q$yK;lDcB3d3<j$kx^v^Z?+ZJ1+}êa~iY;%!~b3{vVbR]xm$DqSѾꂁ0ϋsU vCt™bloȣ#Q;7uD[խ6MɌY?݊5ZnjEeP#zm;3Ku'T,wgRҝlfRw*&RcDbMV%J=g H)IQ`i :fm`&E"TKc 
-6 j/5^^@YÔWmŒ1*-YFB7E1~[{9h֨M,/iϳƒ~d-ߎq\)]:z]Ai
-tUb!XQ+>F$8,q% 0b꧊5gw(F"ta)J'G}x
-NQ<!!I Q.1 &J=pA]]{TQ*>>$#xZ
-E d?fn*j%rt  p+a1h$G؀E GPNK7U>Q[` ^  œ$ZZ*:@ 8[\A Cvq)9cGO=
-Llb#E0tGtnQº!a='9$ڄzu/(Cp
-9UyBI*)9UBGO}
-tUb!XV#'W0"!!]#z"K@ ̂SZƵuiLf\7U:1[tZ=
-endstream
+4703 0 obj
+<< /D [ 4683 0 R /XYZ 81.145 556.643 null ] >>
endobj
4704 0 obj
-<< /Type /Page /Contents 4705 0 R /Resources 4703 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4683 0 R /XYZ 81.145 545.684 null ] >>
+endobj
+4705 0 obj
+<< /D [ 4683 0 R /XYZ 81.145 534.725 null ] >>
endobj
4706 0 obj
-<< /D [ 4704 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 523.766 null ] >>
endobj
4707 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 507.862 null ] >>
endobj
4708 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 477.032 null ] >>
endobj
4709 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 448.176 null ] >>
endobj
4710 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 437.218 null ] >>
endobj
4711 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 426.259 null ] >>
endobj
4712 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 415.3 null ] >>
endobj
4713 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 374.489 null ] >>
endobj
4714 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 363.53 null ] >>
endobj
4715 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 352.571 null ] >>
endobj
4716 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 341.612 null ] >>
endobj
4717 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 330.653 null ] >>
endobj
4718 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 319.694 null ] >>
endobj
4719 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 308.736 null ] >>
endobj
4720 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 297.777 null ] >>
endobj
4721 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 286.818 null ] >>
endobj
4722 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 275.859 null ] >>
endobj
4723 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 264.9 null ] >>
endobj
4724 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 253.941 null ] >>
endobj
4725 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 242.982 null ] >>
endobj
4726 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 232.023 null ] >>
endobj
4727 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 221.064 null ] >>
endobj
4728 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 210.105 null ] >>
endobj
4729 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 199.146 null ] >>
endobj
4730 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 188.188 null ] >>
endobj
4731 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 177.229 null ] >>
endobj
4732 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 166.27 null ] >>
endobj
4733 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 155.311 null ] >>
endobj
4734 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 4683 0 R /XYZ 81.145 78.635 null ] >>
endobj
-4735 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 402.207 null ] >>
+4682 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F82 699 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4736 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 391.248 null ] >>
+4738 0 obj
+<< /Filter /FlateDecode /Length 1818 >>
+stream
+x[r6+WUڪ}K嚜Ń 08>Дhh f %vד({Sh;p '9F5wP^63;@Z$0WM-Γ?1-}՚KM^S})(4-6AM*cT$"˳F:Oxj&u}V @Qy bX/`ޖ!@?fų]>+7=VvAS!\[iQ$05'K@ Иn_yFB˥b%l,* RE_>)GwIpt@u=X7@W1d 1xзHWPb{+
+Zɏ;.BC달LnIũE6TQetTQB"<G^zZmR%9G%N,
+%`{T1<+l)ň=s!oɂLl9~LW& 'dL҉aڻb_ELb9|c.ML ;;L._wph/1HB(f R{jtrŲ56,N˱V[qS#Ҧ|t%Jա*Ggw|K&7Hfs͗@i Gb020M{X_ioUh^й0op*sXz9$kZc6R28']['6w*V8)X]& ^wet5ҩ>OA&;[d/YwTǞ@~  x.A&~k"{x]r،:\Rԓip20T#=P&IdRL'S%|eUd{r˽٢*TUmf|/kX%حb0w\3XR3YD3-bi;*5 -ejϖg`lwH[v࿰9q[BwtfE<ƇMR|tO m:4ZfPr%f\see-cc_:#!J Rɯ11ٯHz9$W_t#ӬE(iM ^lEk{=#QeAi-]K7:E-]%ᚷlqBP95U>3=)twLTH䈸AsaΝIg
+GF5v Y moPkʋE©- 5ҍԥsd ҍADdt#"iVtj T=tk8FF )/m,"Q0 x0Wz*~v* ezSTi04dEsc^HfԎA_]K$24HW ^b
+7H)TM /?J҅:Q_0
+E۹zG‡v& tȔS
+l)KAB
++wԘLC*r3&م|W?~7
+
+endstream
endobj
4737 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 380.289 null ] >>
-endobj
-4738 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 369.33 null ] >>
+<< /Type /Page /Contents 4738 0 R /Resources 4736 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4739 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 4737 0 R /XYZ 78.37 808.885 null ] >>
endobj
4740 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 768.829 null ] >>
endobj
4741 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 757.87 null ] >>
endobj
4742 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 746.912 null ] >>
endobj
-69 0 obj
-<< /D [ 4704 0 R /XYZ 79.37 302.032 null ] >>
+4743 0 obj
+<< /D [ 4737 0 R /XYZ 81.145 735.953 null ] >>
endobj
-4703 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R /F32 1809 0 R /F26 662 0 R /F23 660 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+4744 0 obj
+<< /D [ 4737 0 R /XYZ 81.145 724.994 null ] >>
endobj
4745 0 obj
-<< /Filter /FlateDecode /Length 1956 >>
-stream
-xZ[o6~0)@.1  Ca Ŗdr.ߡHQآ[t}dJυ*ݫ77)$|vzE"HtJ$%⟻? 9&#CqqKVi}޼oꂦIkFʝ׵77TA)C,rX-J3$HˏB$ziGz|PnJ`ޖue?b֍b='*PM/=UlȾ{W7Z}[F>IE(>T&*2_KkKh K!>̇DL?(ؔy|(GtȞ!Vл,m"ERWSs}uFX?(3?ݛr+"QYNH"=C@``C,T c]}C=I^1) q<:xgۢdԣTs$H1i[2ޘIY-@wa?gzf9DmEqsDe
- yU<ηMB(W[QP=5]νE\U<^a)Qik#1ͩ~:& ET
-0Оd$z;_teH@LdyZ4H(K3U3z! MݽO%kRVAiI;@B4?2c̹+fhzUgFk!5pz7:XCHG<q КD͚~UW=x],JtNe=Wm~/RWNJ0"hٌ 2'{b(@5_.O"*;3p(\q>=p ͯTcV゙ MϮ+fyM)z/3c9OD|Q
-MOxT 3 D~OS DF
-(,Fy7bG $
-3}xyet**h4d 8}tl"TN6}je]4|7s( V$4ԅ^:1+v.&I.ziCSVkIs8=pd-D
-A.^h5&92T=IAL<?M/RTaDqTj#W
-endstream
-endobj
-4744 0 obj
-<< /Type /Page /Contents 4745 0 R /Resources 4743 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4737 0 R /XYZ 81.145 714.035 null ] >>
endobj
4746 0 obj
-<< /D [ 4744 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 703.076 null ] >>
endobj
4747 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 692.117 null ] >>
endobj
4748 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 681.158 null ] >>
endobj
4749 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 670.199 null ] >>
endobj
4750 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 659.24 null ] >>
endobj
4751 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 598.551 null ] >>
endobj
4752 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 569.659 null ] >>
endobj
4753 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 553.719 null ] >>
endobj
4754 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 542.76 null ] >>
endobj
4755 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 531.801 null ] >>
endobj
4756 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 520.842 null ] >>
endobj
4757 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 509.883 null ] >>
endobj
4758 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 467.044 null ] >>
endobj
4759 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 456.085 null ] >>
endobj
4760 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 388.259 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 445.126 null ] >>
endobj
4761 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 377.3 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 434.167 null ] >>
endobj
4762 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 405.276 null ] >>
endobj
4763 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 394.317 null ] >>
endobj
4764 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 383.358 null ] >>
endobj
4765 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 372.399 null ] >>
endobj
4766 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 361.44 null ] >>
endobj
4767 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 350.481 null ] >>
endobj
4768 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 339.522 null ] >>
endobj
4769 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 328.563 null ] >>
endobj
4770 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 317.605 null ] >>
endobj
4771 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 306.646 null ] >>
endobj
4772 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 295.687 null ] >>
endobj
4773 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 284.728 null ] >>
endobj
4774 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 273.769 null ] >>
endobj
4775 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 262.81 null ] >>
endobj
4776 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 251.851 null ] >>
endobj
4777 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 240.892 null ] >>
endobj
4778 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 229.933 null ] >>
endobj
4779 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 213.993 null ] >>
endobj
4780 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 203.034 null ] >>
endobj
4781 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 192.075 null ] >>
endobj
4782 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 181.116 null ] >>
endobj
4783 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 170.157 null ] >>
endobj
4784 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 159.199 null ] >>
endobj
-4743 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F19 184 0 R /F26 662 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+4785 0 obj
+<< /D [ 4737 0 R /XYZ 81.145 148.24 null ] >>
endobj
-4788 0 obj
-<< /Filter /FlateDecode /Length 1986 >>
-stream
-xڽY[۸~_a+;\/H tۇ<Ma(<-<I!)Q=d_Lw۹xp_cu#1 /V;xA J%Yd^j{X}튣cYRyIu7-FߟAb &*DN!/ӣ4 |%1SxYu}Tݻ\/|{2q&<ic .[S8K#-ɏu_ES}]2Ue2Prhl jnyO> ^غ^ƲɺwMGm z^ޓ
-gpსe&?
-1( snXۋ]}YSte)DOE;
-\ /zLh$Fq}x.Sbt8I]1:7 RA7M=A'lRD,ie&?7#5O8LH4641zǢ)"̓2k1i 4Ost2 V41:v5LE lPfޢaL3F#*fp0XO;9{W>OV䯝7ؿEC4sqD$4ѳƹDu<id+$K!T|$#r)Qʫy BŦ&|b
--fY&ogNNM$!ՅXe_mQl
-
-7/eSWO7`ɏV@u=3즓q?\+ˬLCOKVP2c`v8ܲ!c2,+|:|П=huwTj|O`nnZ4[F܌N& :9aR1*>9V4@BE h)eNΑ!ZJ8r7-1$eXh{)I҈1B!I4mw R:ć.H6H˴uN׭426)2 :]7H1Ht5 U4۷ zNpM !~34).<띃ĹkhwV~br#&4;6Sֶʶ<;?.%TMR֧  WTۤ2kr =Ivַ[DCTS&k\TurU*t& :b:8?5a]C&"NWT4zE%[ tBX=$ Vn5T<nfzS6=T׳OPVS70~ְ} ^U=OoLűr ܬ2sƾ bۺ˝{[i J{nkkhbk+~Pez&}8>}
-2g 5\pkVa
-endstream
+4786 0 obj
+<< /D [ 4737 0 R /XYZ 81.145 137.281 null ] >>
endobj
4787 0 obj
-<< /Type /Page /Contents 4788 0 R /Resources 4786 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4737 0 R /XYZ 81.145 126.322 null ] >>
+endobj
+4788 0 obj
+<< /D [ 4737 0 R /XYZ 81.145 115.363 null ] >>
endobj
4789 0 obj
-<< /D [ 4787 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 104.404 null ] >>
endobj
4790 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 93.445 null ] >>
endobj
4791 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 4737 0 R /XYZ 81.145 82.486 null ] >>
endobj
-4792 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 732.966 null ] >>
-endobj
-4793 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 722.007 null ] >>
+4736 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F82 699 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4794 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 681.16 null ] >>
+<< /Filter /FlateDecode /Length 2936 >>
+stream
+x\Ɏ)C
+ݯ7mN9m mqn:=př0cE+0r9zJx\{js͏@6^3Q RxhnhW+5}B~/f[L1r&&}SO $' S16 SEҁ:Tw_4YU1Q5t{)\ALgj4Ip@p{)+vIn
+X({jmItSVpKeJQe.p5H>0EUmtR" PN0~q4ޕs)8
+4H?-+];h=%♾Vc$4!gX{H=_.
+(1p&܆L)S)o _N47LK=jA)SA3enY@iOI'мƨ0SݭXŌS5\CeFJ/H 3] Y{BIgKT(xKuYoͼ]dR={J[ͷEY|g
+f!j})M%9s3Vaę}Sqx+1ꔕg
+:냂0 XøSV##כPpp}8& T7/@s
+{<T# 4?gg~͏ec%}[4@\D"5 N^e,2<i~|:o*BϥQ)e
+@qaK
+m\'TEDbFwM/Dd]I:Q#W G
++n2)-<R0@|'RXX|KτY-iV4"ouaDh'Hf[1mg)N:!!"#Z="pP#?)Ks[EN+rƁZ9T0t2-,)e[~"
+TRXƒ,!_}=&mV@jE6sTdѴ)?9}\5]nDU;@PLaDa$څ<`-cLwq:0"%*bu/:^_UEr>V).iD$IdYrjc@JuxxVtN9x}0kMzF"TFoHNˍ7v~Α_cO:Nb)puW v UPSZӻ/hD̫@Ԉ9WF/MPXqۗv4eUMJmp;s0=IqH)@>ed̵2J41Kp:` VMi,zNO‘?$q9moWۇ1{։h<1Lًv֮39<BW}IJ40L$ rn:td+,Ԕ5pq:'Ud6EyEhKP/-ybF"tk܁{Jb,Co['>f0M$$\{,AHh^[ 4/( !J'KOk]ˈɸ=϶NʚFaL5ÿ ZU ʓoHt^r-tsADo
+r1
+%M/*>wfjw>vc)'FQ$t=[$wQ[z5(<͠ݴNZE0ɲgJlŨ48#$}Iܦ#&(uF9mgdi4h 6"M[49d_Jbsدi_+Ȝȗ]D2ɩ2a׺&E2<$9 Qz|?ps0Ly޷3PYw BzsuX?`D&m2E@4r.?ʈ뿘a"nJ!@D<
+ SgÖ*݁~9j3Np7PwWnHQh BOA^ZDDBM[MboIDsɇ;
+޶.7.\S gCJ5PqJuk ~9p+7KId~
+ mOr 
+҉YLB!\YJ=.}P~`m|E XGy@C9e)'POO[r>INX&91E4RA]sU։T_+Vǧ22_޽MBVB2!u!WR2FX q'W7fj )6[qӚ+/WZ΅W;v 4![a1|0^
+mK`[-tLF%MA|Mf1űm HAMk l8$k)s~A_bJYƳڙ΅sO{Ċ? S\t1`T;IeO煿!W7s}eݽ-V1.*7')h
+0/
+endstream
+endobj
+4793 0 obj
+<< /Type /Page /Contents 4794 0 R /Resources 4792 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4795 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4793 0 R /XYZ 78.37 808.885 null ] >>
endobj
4796 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 768.829 null ] >>
endobj
4797 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 757.87 null ] >>
endobj
4798 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 746.912 null ] >>
endobj
4799 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 735.953 null ] >>
endobj
4800 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 724.994 null ] >>
endobj
4801 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 714.035 null ] >>
endobj
4802 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 703.076 null ] >>
endobj
4803 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 692.117 null ] >>
endobj
4804 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 681.158 null ] >>
endobj
4805 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 670.199 null ] >>
endobj
4806 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 659.24 null ] >>
endobj
4807 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 648.281 null ] >>
endobj
4808 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 637.322 null ] >>
endobj
4809 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 626.364 null ] >>
endobj
4810 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 615.405 null ] >>
endobj
4811 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 604.446 null ] >>
endobj
4812 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 593.487 null ] >>
endobj
4813 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 582.528 null ] >>
endobj
4814 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 571.569 null ] >>
endobj
4815 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 560.61 null ] >>
endobj
4816 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 549.651 null ] >>
endobj
4817 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 538.692 null ] >>
endobj
4818 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 527.733 null ] >>
endobj
4819 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 516.775 null ] >>
endobj
4820 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 505.816 null ] >>
endobj
4821 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 494.857 null ] >>
endobj
4822 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 452.017 null ] >>
endobj
4823 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 441.058 null ] >>
endobj
4824 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 430.1 null ] >>
endobj
4825 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 389.253 null ] >>
endobj
4826 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 378.294 null ] >>
endobj
4827 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 204.033 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 367.335 null ] >>
endobj
4828 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 193.074 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 356.376 null ] >>
endobj
4829 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 182.115 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 345.417 null ] >>
endobj
4830 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 171.156 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 334.458 null ] >>
endobj
4831 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 160.197 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 239.813 null ] >>
endobj
4832 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 149.238 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 228.854 null ] >>
endobj
4833 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 138.279 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 217.895 null ] >>
endobj
4834 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 127.32 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 206.936 null ] >>
endobj
4835 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 116.362 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 195.978 null ] >>
endobj
4836 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 105.403 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 185.019 null ] >>
endobj
4837 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 94.444 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 174.06 null ] >>
endobj
4838 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 83.485 null ] >>
+<< /D [ 4793 0 R /XYZ 81.145 103.325 null ] >>
endobj
-4786 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4841 0 obj
-<< /Filter /FlateDecode /Length 1589 >>
-stream
-xڽYMoFWPMCh #@,QSTH:qkw)R]r8BwgRdѻ+r܂lﻫ77XC9WDFtd(GZQ ?Ƃ2k֛eGR܄`ڠOdr'(vII]>.N<.)i4k_. P¼v:Lsa4<F㹙j8[ 51,eq_,7gB۫k?ܲtv/C0H\
-(G66v*:]Oae) SP/mMB
-d
-GI̥iƕJ5VJ j#9(OE#~nC+6:̫7iqh-= +XrI tNh-1\h0c0o#o'yY]bڀQ>#MF.sNh1
-YreHV:[`o0w-U % .dK-Njf=ԛ(' ' );Dw_@7G36q"4[YkO9!|a@kM-jGw-4K=D[rtQq:2iez΄"z;efjYfw@޻ Sg,vvv=>hoݻ,Ov7mQҲ-홱?Q,*7YY?,%s
-l: |9q?3t2u6۽Uh}:<9qovE[ڱ-akv>6ӲΖK.
-s]Kݘb~H6:)Ͷ>~ir_TIN<5Z.q#mk\htQnu8Ay/g%u[!x(n6
-I\|iskG5~]5s&B2WӴ%)aYs`&ɪݳ|YQG._R]^֭2hƞE}ӶIC2GκUj$X>=>
-endstream
+4839 0 obj
+<< /D [ 4793 0 R /XYZ 81.145 92.366 null ] >>
endobj
4840 0 obj
-<< /Type /Page /Contents 4841 0 R /Resources 4839 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4793 0 R /XYZ 81.145 81.407 null ] >>
endobj
-4842 0 obj
-<< /D [ 4840 0 R /XYZ 78.37 808.885 null ] >>
+4792 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4843 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2124 >>
+stream
+x[9o6+T&#gx mo3HW+ze;Ej%roȹ(ωO<͔<o/FL9+? ⓘfh?o\}#}ot_,sZ- ̀j)\%¹&>2Z4 o
+TmQ OJgr.KJ~fDA[)lZVS4_7a4[y
+$
+PcBb*9UMV
+,2 H&K:dѣOOďt>.씤G_O`<1@hed/`daԤ$` @
+fMb4.D JP6ީЗXЭt9hI@K
+i4
+FAKI@n.]2qJo1%ap E5۸v`",e7r~F2nu}~2%(?J%.0g6 Ԧkh=fݭ
+V<*B[(Z.~-l±Pr߻ %׌V7>#AK3z\fږGomZRkS:yݽ FkJ(Ju1w=(\+]-efOwwva
+/܉2 {GyD}LeiyR֕ 4R+*q_\uu n)l/t/[T՚YeSas[aR55Oe,ְI-]oy@Rx@6:^/e yӗEnxw)"i?RbQl4)eH
+a3*l kK(9G7 ڶ
+R+lkOJ
+`zǏsY ˱W9ks9IefI|iL:<?A@jqx=Mu{01g,;9mj p1h(%FRMo<}c`kQ(P
+.q# |.йȻ6;-.1ӽ9
+endstream
+endobj
+4842 0 obj
+<< /Type /Page /Contents 4843 0 R /Resources 4841 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4844 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4842 0 R /XYZ 78.37 808.885 null ] >>
endobj
4845 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 768.829 null ] >>
endobj
4846 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 757.87 null ] >>
endobj
4847 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 746.912 null ] >>
endobj
4848 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 706.065 null ] >>
endobj
4849 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 695.106 null ] >>
endobj
4850 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 684.147 null ] >>
endobj
4851 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 673.188 null ] >>
endobj
4852 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 662.229 null ] >>
endobj
4853 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 651.27 null ] >>
endobj
4854 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 367.335 null ] >>
endobj
4855 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 356.376 null ] >>
endobj
4856 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 345.417 null ] >>
endobj
4857 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 334.458 null ] >>
endobj
4858 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 323.499 null ] >>
endobj
4859 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 312.54 null ] >>
endobj
4860 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 301.582 null ] >>
endobj
4861 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 290.623 null ] >>
endobj
4862 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 279.664 null ] >>
endobj
4863 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 268.705 null ] >>
endobj
4864 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 257.746 null ] >>
endobj
4865 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 246.787 null ] >>
endobj
4866 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 235.828 null ] >>
endobj
4867 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 224.869 null ] >>
endobj
4868 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 213.91 null ] >>
endobj
4869 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 202.951 null ] >>
endobj
4870 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 191.992 null ] >>
endobj
4871 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 181.034 null ] >>
endobj
4872 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 170.075 null ] >>
endobj
4873 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 145.168 null ] >>
endobj
4874 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 134.209 null ] >>
endobj
4875 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 123.25 null ] >>
endobj
4876 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 112.291 null ] >>
endobj
4877 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 101.332 null ] >>
endobj
4878 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 90.374 null ] >>
endobj
4879 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4842 0 R /XYZ 81.145 79.415 null ] >>
endobj
-4880 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 363.352 null ] >>
-endobj
-4881 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 352.393 null ] >>
+4841 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4882 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 341.434 null ] >>
+<< /Filter /FlateDecode /Length 1674 >>
+stream
+x[Ms6 W! 3xlfzk{ĕH!YAn<MZ z
+|ṡOw%<4(aF~5ƾ^F|iUMObMl'NGSt#4aK(Oh@.-ql$ђ} 1itirRP[ }vr`n_ϋ#Xz]`> #iV>w6ӝťժfiW^Vy q6.ЏI-Ӈ-m)#d 2{̋@z2}$@J%Ӓ#3aGE+uV6@dJRP]woqKں]+&׎IMw@(VxcE)tл` yҗ(OyEɒbiݮݕs8$ ynU,6'YS:d
+$<mgn>%L,kcvH 8o
+q^r,7]ʊ paؾ<_d
+endstream
+endobj
+4881 0 obj
+<< /Type /Page /Contents 4882 0 R /Resources 4880 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4883 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4881 0 R /XYZ 78.37 808.885 null ] >>
endobj
4884 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 768.829 null ] >>
endobj
4885 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 757.87 null ] >>
endobj
4886 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 746.912 null ] >>
endobj
4887 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 735.953 null ] >>
endobj
4888 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 724.994 null ] >>
endobj
4889 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 714.035 null ] >>
endobj
4890 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 703.076 null ] >>
endobj
4891 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 692.117 null ] >>
endobj
4892 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 681.158 null ] >>
endobj
4893 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 670.199 null ] >>
endobj
4894 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 659.24 null ] >>
endobj
4895 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 648.281 null ] >>
endobj
4896 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 637.322 null ] >>
endobj
4897 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 626.364 null ] >>
endobj
4898 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 615.405 null ] >>
endobj
4899 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 604.446 null ] >>
endobj
4900 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 593.487 null ] >>
endobj
4901 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 103.327 null ] >>
-endobj
-4839 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4881 0 R /XYZ 81.145 582.528 null ] >>
endobj
-4904 0 obj
-<< /Filter /FlateDecode /Length 2730 >>
-stream
-xڽZ[o~ϯx]H{МuhB%:f":"셗%$ۙg
-/.wtg,H*xA*AL-$K-<Vn
-OAf! a</./OK$B!tOͨL$qJ&e1C<-8J4aIV
-S?~Bl $V~T ^ۮ>}ZE^v Fǻ{wyѿ#/ћap>z^yx}@$$N>zh|?W(fhfF{;ܕ737(ҝwn;mUl&@G[O&1x|lB"D `ưd/qp s"M<ʍUi<%pP㦬}yX0hI5Ac:_gKC}E5*)X<8#쇵/pG&bgzY[Ⴧ#9c^ոB'*nA
- LCY&.dḃ!ø4)vJ?%8 Rb
-4I[ȗUVAmxpuy%0j"A}JZ[l> j"aF>3svJl8)H*&c49#x /R L3mH<cLcD`TGqjS};y]*a#wk9wϛs ~$y'xFlu#Gq^q+Ayha{2Qp$+/Ճ5aR/XRAO}Xaz8.= ƺR>{\g{[Ovmyg;k)3LeBK4 ۀNc[
-ɦsw&sڻsn j0-/:h4'5^ֵq۲
-njvM]ߧƼ5l5*w6k77mJ%lħԶ
-,lW
-mgu<:`t@Q^@i=x8bt&z-Zg$1M>{ {7 gr=^~AHa1%6!dc7TS7B}5 ⶿kqg^q>T_웽 |!ˍ2;nNoiƶ} ʺwa66;Lu]yP)ӧ%ACC
-BFB!P=s.C!b
-ЪPP%9eSrDN}γ#OJ1|D
-s[?)CRwׁaθ}p3Ai oFS5M4R oOOH5GŇ$1T
-endstream
+4902 0 obj
+<< /D [ 4881 0 R /XYZ 81.145 571.569 null ] >>
endobj
4903 0 obj
-<< /Type /Page /Contents 4904 0 R /Resources 4902 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4881 0 R /XYZ 81.145 560.61 null ] >>
+endobj
+4904 0 obj
+<< /D [ 4881 0 R /XYZ 81.145 549.651 null ] >>
endobj
4905 0 obj
-<< /D [ 4903 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 538.692 null ] >>
endobj
4906 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 527.733 null ] >>
endobj
4907 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 516.775 null ] >>
endobj
4908 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 505.816 null ] >>
endobj
4909 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 489.875 null ] >>
endobj
4910 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 478.917 null ] >>
endobj
4911 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 467.958 null ] >>
endobj
4912 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 456.999 null ] >>
endobj
4913 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 446.04 null ] >>
endobj
4914 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 435.081 null ] >>
endobj
4915 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 424.122 null ] >>
endobj
4916 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 413.163 null ] >>
endobj
4917 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 402.204 null ] >>
endobj
4918 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 391.245 null ] >>
endobj
4919 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 380.286 null ] >>
endobj
4920 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 369.327 null ] >>
endobj
4921 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 358.369 null ] >>
endobj
4922 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 347.41 null ] >>
endobj
4923 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 336.451 null ] >>
endobj
4924 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 305.567 null ] >>
endobj
4925 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 294.608 null ] >>
endobj
4926 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 283.649 null ] >>
endobj
4927 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 272.69 null ] >>
endobj
4928 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 261.731 null ] >>
endobj
4929 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 250.772 null ] >>
endobj
4930 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 239.813 null ] >>
endobj
4931 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 223.873 null ] >>
endobj
4932 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 212.914 null ] >>
endobj
4933 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 201.955 null ] >>
endobj
4934 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 190.996 null ] >>
endobj
4935 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 180.037 null ] >>
endobj
4936 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 169.078 null ] >>
endobj
4937 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 158.119 null ] >>
endobj
4938 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 147.161 null ] >>
endobj
4939 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 136.202 null ] >>
endobj
4940 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 125.243 null ] >>
endobj
4941 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 114.284 null ] >>
endobj
4942 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 103.325 null ] >>
endobj
4943 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 92.366 null ] >>
endobj
4944 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 117.275 null ] >>
-endobj
-4945 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 4881 0 R /XYZ 81.145 81.407 null ] >>
endobj
-4946 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 95.357 null ] >>
+4880 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4947 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 84.398 null ] >>
-endobj
-4902 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4950 0 obj
-<< /Filter /FlateDecode /Length 1421 >>
+<< /Filter /FlateDecode /Length 2353 >>
stream
-xڵZMoF W؋t'|(h[0GNڒ6I-yvkI/,O"G#9>0۽ŕÑtq"9‚9 BZMW_Zy8msŕ #/)t<1GAC Uet @cLm}m "@ͬ*gM󶸛ܬFYS*v9殙Kh}blxޢm2$8JJ9z됻rHyrs3i9zJ~W '6mBX!&&aPZ
-k08AdE>:+euzNب% +6𢋢Dw&DP<}8'A` 6Չ ' :OŦ^nC.} P8<Gf'J)W;(u]Vm6Vpn'C`Cx*CRT scAȍ 22lmpRR4'QU^HeUEʀMy|~|eS6.QA^S:8'DJ/Ci){R7>C;
-!=幏ْʩdgm#&2g-A
-yP;bO3܅IC$RDOZ:]Liwfk+ $]do0&$hVg,iae=5ɼ`9e#U7uQ]..ǎ-fk#% Enj>[>q+3LFǜԴ:r\U1+4lS?*ߞmv|K*T'%_~dB gKOeNS.P)֛ kjYn<d?&I@_>쥙=&@PqJ':DsۛFv2#ˈu"0Gq;/tSd?cќL&dSMj%
-<Q4-UYMPnKgAxiM|Yy5&Cw/t"DYM!.)n>Ɔ#"˪.n.ݱvrth8W/u{yS?I#뫋i_ۣ݅ʏ޾nx\CYq9Wꦚn
-,
-SF@م1˒mdu"ϻ33OBD^AC$)jcQ4֧ڮѦ=ۻC%!qtk6kTU◢ -SEٶc~=gX>O؟r $J)di4hs^}}J"U">T[g
+x[r$' )!r٪}K嚜i{7 '埋|-L|
+>]ߟߝpyIN.V.gV]CJ4+w.%
+9!pi2vBC
+0Mk[ |_z oV\Z{}8J =7&xdF5緲f0R|%9h2֖ p>pIEĥ[x,+LdƂ>2|Fcp`8% 9ڷFEUkodfJHAO|vUeU;J}ىƕ'<PVWi[ZëZyjej/+
+
+P.
+6]F.Bz=Ps:8OIk^g ŋLSS|4NpPg%|1N;+=Q} n RdBe,񳌆T0h&m#ԗ" +ǯ54@ ^kIlKfhQMH8=\GUTvCLXc%I50:]@mzߐ[οBO)D(Sb[I %A.į ֖sW,UH:ǩKq^d"6$ݗ!h`<lj&j
+Zʤ,ѕǧAFD`ءGB#gKaO1($
+Lb]ֱ-[[*o2,l9-7{}ǁj+&Zn ==jG-b JZӘ=W`e@/hX'(N<0j̈P@3Rs!jNL+T=sB40ip)/SQJ&g35oOil*臅!.]H|=MwcY|F9]e=Tiw",$eN=aZzTu|Meși*(MĒCHIK:dNlmcEJMFV(5<dלUGIaHAslBnnnUBI/5׭
+d\y~/ f4h.ƹWeG72dѻhj!kADuC} A-޺,Obe}Q,R KmfYGO_A0Wgޏ;^KW>8M{VlЮ{ ~U %샎p?9Tf)Grae<.PuV _޶9x(ࡍ׌|֮l
endstream
endobj
+4946 0 obj
+<< /Type /Page /Contents 4947 0 R /Resources 4945 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
+endobj
+4948 0 obj
+<< /D [ 4946 0 R /XYZ 78.37 808.885 null ] >>
+endobj
4949 0 obj
-<< /Type /Page /Contents 4950 0 R /Resources 4948 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4946 0 R /XYZ 81.145 768.829 null ] >>
+endobj
+4950 0 obj
+<< /D [ 4946 0 R /XYZ 81.145 737.945 null ] >>
endobj
4951 0 obj
-<< /D [ 4949 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 726.986 null ] >>
endobj
4952 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 716.027 null ] >>
endobj
4953 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 705.068 null ] >>
endobj
4954 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 694.11 null ] >>
endobj
4955 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 722.097 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 683.151 null ] >>
endobj
4956 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 711.138 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 672.192 null ] >>
endobj
4957 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 700.18 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 611.502 null ] >>
endobj
4958 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 689.221 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 600.543 null ] >>
endobj
4959 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 678.262 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 589.585 null ] >>
endobj
4960 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 667.303 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 578.626 null ] >>
endobj
4961 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 656.344 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 567.667 null ] >>
endobj
4962 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 645.385 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 556.708 null ] >>
endobj
4963 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 634.426 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 515.861 null ] >>
endobj
4964 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 623.467 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 504.902 null ] >>
endobj
4965 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 612.508 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 493.943 null ] >>
endobj
4966 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 601.549 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 482.984 null ] >>
endobj
4967 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 590.591 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 472.025 null ] >>
endobj
4968 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 579.632 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 431.179 null ] >>
endobj
4969 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 568.673 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 420.22 null ] >>
endobj
4970 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 557.714 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 409.261 null ] >>
endobj
4971 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 546.755 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 398.302 null ] >>
endobj
4972 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 535.796 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 387.343 null ] >>
endobj
4973 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 524.837 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 376.384 null ] >>
endobj
4974 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 513.878 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 365.425 null ] >>
endobj
4975 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 502.919 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 354.466 null ] >>
endobj
4976 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 491.96 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 343.507 null ] >>
endobj
4977 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 481.001 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 169.161 null ] >>
endobj
4978 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 470.043 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 158.202 null ] >>
endobj
4979 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 459.084 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 147.243 null ] >>
endobj
4980 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 448.125 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 136.284 null ] >>
endobj
4981 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 437.166 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 125.326 null ] >>
endobj
4982 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 426.207 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 114.367 null ] >>
endobj
4983 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 415.248 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 103.408 null ] >>
endobj
4984 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 404.289 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 92.449 null ] >>
endobj
4985 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 393.33 null ] >>
+<< /D [ 4946 0 R /XYZ 81.145 81.49 null ] >>
endobj
-4986 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 382.371 null ] >>
-endobj
-4987 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 366.467 null ] >>
+4945 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4988 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 355.508 null ] >>
+<< /Filter /FlateDecode /Length 2736 >>
+stream
+x[n39)~I
+\q@sku4mmV,N/spbȏ///3߅l/?V\N|EI".0]~{<ʹ=kn1o YgJRJ" ?Hن2a-uY3ȯ>+Սs$a ҺYN'_)Ds&>)5f̜sOrzL)RU/e|\M:&DrMN-|nZ#шM|/G?q '@^XGe2lYBf[SH)󌤢TY|
+iT
+K; L x5o~k>r u$o<
+KJ%<RPqR)'%)w-fM?̣sDɰ(4'ctXpn]CKT
+UqBhӊF/ezĴs$'j M`ne!pό#1C3K6@Jx+K
+cEҞJԗ]jَn,b/'BOpb ZR.3'#
+RZ >:UjA"V9@+B8x3$#hEǷ+"ͼ:kk̨|2u b;Z,4S
+[Ҹ*@Vun Lo>h6l+бk+LUU( yE(`b$iB
+>Jp#}eU7V1s7>e*yڪ5ج͊P nfʎ]i*yb "CQZJm\]'puLudD#P.ꤑпBgr .GJ4DֆNCgyM֫=4?[/.Di>h}BR=ϖWB
+?Cu멩{duY0 ҳ=&B@
+fFZR(&8:Hy3|NL'\Cp=iVGl *)v,Cpn8NjwQ>x)Nܓs+^Y2.rk$4|LSh4hJo]Po%|`?BL}PaC\w>4[fM(=eG3(5$Vz3F>J3u(JVorԘ0i5kQ(@Ph fNV|i7L
+<Uj;v yJ).jttsI/@FS؉Tzc/[28,Ζ*ҙCw~(&D;-Quֵ(]/|W ;'P;_Hkt3Dp'ʭHa@[~5]UqVߊr 93R*qZ
+&LɘV5|oEJ/wk>ӹ>]&O?c(KUo2|+z,: SI/NAy0QZ[M=yoHoZw.m+<^T<0YgJT|thcDG%ѷZT~$xc̔,C.
+$(%3% þ)fO]?Wp4Ik):;'@"6//j
+-TZSHn"oǗT)CWm'JXZnO aѥtܜ=YD}w8WO7G:7_Imw|.,);L=S|^-&ۢA.}ˮ`sHnscq,^5j)Ikx5{b6Ƙ}ϗ?
+endstream
+endobj
+4987 0 obj
+<< /Type /Page /Contents 4988 0 R /Resources 4986 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
4989 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 344.549 null ] >>
+<< /D [ 4987 0 R /XYZ 78.37 808.885 null ] >>
endobj
4990 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 333.59 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 768.829 null ] >>
endobj
4991 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 322.632 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 757.87 null ] >>
endobj
4992 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 311.673 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 746.912 null ] >>
endobj
4993 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 300.714 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 735.953 null ] >>
endobj
4994 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 289.755 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 724.994 null ] >>
endobj
4995 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 278.796 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 714.035 null ] >>
endobj
4996 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 267.837 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 703.076 null ] >>
endobj
4997 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 256.878 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 650.274 null ] >>
endobj
4998 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 245.919 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 639.315 null ] >>
endobj
4999 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 234.96 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 628.356 null ] >>
endobj
5000 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 224.001 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 617.397 null ] >>
endobj
5001 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 213.043 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 606.438 null ] >>
endobj
5002 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 182.212 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 595.479 null ] >>
endobj
5003 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 171.253 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 584.52 null ] >>
endobj
5004 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 160.295 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 573.562 null ] >>
endobj
5005 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 149.336 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 562.603 null ] >>
endobj
5006 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 138.377 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 551.644 null ] >>
endobj
5007 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 127.418 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 510.797 null ] >>
endobj
5008 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 116.459 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 499.838 null ] >>
endobj
5009 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 488.879 null ] >>
endobj
5010 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 477.92 null ] >>
endobj
5011 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 466.961 null ] >>
endobj
-4948 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5014 0 obj
-<< /Filter /FlateDecode /Length 2070 >>
-stream
-xڭZMo6W؋n[2P (,ZAzh
-ADJrlޡ(Q󱦷H hr7&΢ኸ~Z]\I:a(1% Ch'@ˉEO_SFՎuq%I!h1e6ڦyY䥚e9;w/2]uӦu.NӭmfE#,[++!ǭ3<7MfM;A^yhmeT=M;_.ɐY282 c꣟m\{lGLU>Mù|_v_#[KDVaVp Ds1I죵E
-,%#h$-y! 裟s"fĮ+[ץd2Y.IІ`mUIί7t&(b<¬/L7|xS 1bҪ;AA7l՝Em澸$̅QPe8;N\ٲ4+
-+sTEјjm:b)ZjmgDN#D<*+OWWQxRG_50F$~8 B<jUrsBڻ~Ó +9 A<H{A.KVTј|]ߖF>R Ga+vюJZp$QZdimInߏ1le9C1%üEo2(6GZlC#%{eYh%es7es<uroz7ZVCcV6*6=Vת^>1ZnJkb^d\~nd D"<F4;Bb̬^ Qc\ysei@նͫ ,PlZD%U鶮Zlj~-vUgU6c:$z>EH 9 t"b;7 Q*l7ٿ~+9Q4<Xakt2\I*%S+e",9pAtax! Rjjj@f %a&4nkW<Y]$4n>%THΈ>̴@~{wje0rWVtyxT1^:3lK^ޙj3 f2u}5MD"np?֠i,铔]ۗnw:jOL? ծm:j5`VN]M=TqS.9=?,Sѡ^BzrL>TVzKL{uH%0:.zA澪79#$p‰&agک ,2;3>U?91wG(w?g1$PdFDgG :+Fu~_fuТ;VZpZ6z^$zQ3[#{˃IaL;^ɴ >tX
-endstream
+5012 0 obj
+<< /D [ 4987 0 R /XYZ 81.145 456.002 null ] >>
endobj
5013 0 obj
-<< /Type /Page /Contents 5014 0 R /Resources 5012 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4987 0 R /XYZ 81.145 395.313 null ] >>
+endobj
+5014 0 obj
+<< /D [ 4987 0 R /XYZ 81.145 384.354 null ] >>
endobj
5015 0 obj
-<< /D [ 5013 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 373.395 null ] >>
endobj
5016 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 362.436 null ] >>
endobj
5017 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 351.477 null ] >>
endobj
5018 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 340.519 null ] >>
endobj
5019 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 299.672 null ] >>
endobj
5020 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 288.713 null ] >>
endobj
5021 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 277.754 null ] >>
endobj
5022 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 266.795 null ] >>
endobj
5023 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 255.836 null ] >>
endobj
5024 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 214.989 null ] >>
endobj
5025 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 204.03 null ] >>
endobj
5026 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 193.072 null ] >>
endobj
5027 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 182.113 null ] >>
endobj
5028 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 171.154 null ] >>
endobj
5029 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 160.195 null ] >>
endobj
5030 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 149.236 null ] >>
endobj
5031 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 138.277 null ] >>
endobj
5032 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 573.564 null ] >>
-endobj
-5033 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 4987 0 R /XYZ 81.145 127.318 null ] >>
endobj
-5034 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 551.646 null ] >>
+4986 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5035 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 490.957 null ] >>
+<< /Filter /FlateDecode /Length 1709 >>
+stream
+x[ˎ6 WJ L&]Ϯ]dɶd#:څor<|ʈIL>MɃ7hhzI/$'/A ~E㏷ߖa-
+};.wYuMC<HK=3-Z}7:脑 4 R(wMR2;[4~"UN⇾Ejvf'R㢛
+=nH+JPJwx^Y%uIj?(t _=о$$Ikd Mr0#xz?Pi[9hNiKB3ΤSIs
+nzHm^Ffpy[:}R[bM*mof8y"+#bvg
+yC\-=Z<uHKLES_T]~$AnW4dH{sl^zu[
+excYr|tBAxh5@'$$Vc=KWnp R1~o5dxzS$a6H#$j 3KG\ zߍ
+ ҉
+R"ڕ(:gXIXWhLu"j) B;ګX҉jX슯>W#m~PSǚmm\E"4]?/S9OK#ݪk Ua 2}7tK
+IlL0g׻1IFvj ΂v++qr'hO0OkC>`D"sh?tf6
+endstream
+endobj
+5034 0 obj
+<< /Type /Page /Contents 5035 0 R /Resources 5033 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
5036 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 479.998 null ] >>
+<< /D [ 5034 0 R /XYZ 78.37 808.885 null ] >>
endobj
5037 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 469.039 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 670.199 null ] >>
endobj
5038 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 458.08 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 659.24 null ] >>
endobj
5039 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 447.121 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 648.281 null ] >>
endobj
5040 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 436.162 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 637.322 null ] >>
endobj
5041 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 395.315 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 626.364 null ] >>
endobj
5042 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 384.357 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 615.405 null ] >>
endobj
5043 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 373.398 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 604.446 null ] >>
endobj
5044 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 362.439 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 593.487 null ] >>
endobj
5045 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 351.48 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 582.528 null ] >>
endobj
5046 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 310.633 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 571.569 null ] >>
endobj
5047 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 299.674 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 560.61 null ] >>
endobj
5048 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 288.715 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 549.651 null ] >>
endobj
5049 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 277.756 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 538.692 null ] >>
endobj
5050 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 266.797 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 527.733 null ] >>
endobj
5051 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 255.839 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 516.775 null ] >>
endobj
5052 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 244.88 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 505.816 null ] >>
endobj
5053 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 233.921 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 494.857 null ] >>
endobj
5054 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 222.962 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 483.898 null ] >>
endobj
-5012 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5057 0 obj
-<< /Filter /FlateDecode /Length 2419 >>
-stream
-xڭZ]oܺ}ϯX>t ļ>(jhn[>4 k]i#io IQX\JQgΐNVwd˻^xXHY*V7wn$+
-³URtusXk}s..9]w,[?4v⒮Om=6]kjsC-> jknx,yn~&2")vz~zV"L4"!
-z([PnT#DJ2^]U=Cwtsm2O ™LL)Ls3Ih!l,!/B4Fe\|ô/!PMیM/jK|,R*㩳/':::>J ',bp+@uEeMZ0KQFhkԧc״ƮwqJ w^rCm5(g }~ḯ@Kis}n:fgwh:& "ssqsa]orwj?[7a4ڷ/r"ϋ(
-/ԮiR9/hzD
-ݑxA>ғɫȉJ&-XI>8ԔyѿMNe 5ɂ4wyQ+5@GL K7?%&eeL3vQ^)}q)_Z/%lu;u^z
-G^.iJpچ{՚[Pk9Z<Qk )/IH%q1a^' ՛C'ndP?4{gKJsCAV1q &Ff`c,%7-ڠNcRLwn->z:\ʩKhOz4]thӃo`s N_mE7NF]1Xy~o찏owij*i?a<(]IK9M]Q=@ľ~},۴c8Lq-@G'pdEF|ە[3gSeS~+%Igʅ;^M{{5r3V Rd~":1 *iΝo4jSAh&,nnژJ7w
-ГupFw3J|,%n @/H>+rIN K
-F^:riYt̥tE)
-Ҏ{eЙEAҏNs`I9>z+Ub|cm='l*0(@{Zu62r׀Ժtg=<Y^#En0AHE2uj:\쩃0Ë2!=)1 $c4Fj3fAiXӭI$xkk2U]~S XaN͑ǣ9aBit6(Շ4#M[|VDk&iN`" #Q_@>N=k}m{xt^) <vu4[bӌxl+7o'wv9 R-Y:#//b2ߝ˚LFїv޿7KӕHFҳݟ?߼?Й
-endstream
+5055 0 obj
+<< /D [ 5034 0 R /XYZ 81.145 472.939 null ] >>
endobj
5056 0 obj
-<< /Type /Page /Contents 5057 0 R /Resources 5055 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5034 0 R /XYZ 81.145 461.98 null ] >>
+endobj
+5057 0 obj
+<< /D [ 5034 0 R /XYZ 81.145 451.021 null ] >>
endobj
5058 0 obj
-<< /D [ 5056 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 440.062 null ] >>
endobj
5059 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 429.103 null ] >>
endobj
5060 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 418.144 null ] >>
endobj
5061 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 407.186 null ] >>
endobj
5062 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 396.227 null ] >>
endobj
5063 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 380.286 null ] >>
endobj
5064 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 369.327 null ] >>
endobj
5065 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 358.369 null ] >>
endobj
5066 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 347.41 null ] >>
endobj
5067 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 336.451 null ] >>
endobj
5068 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 325.492 null ] >>
endobj
5069 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 314.533 null ] >>
endobj
5070 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 303.574 null ] >>
endobj
5071 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 292.615 null ] >>
endobj
5072 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 281.656 null ] >>
endobj
5073 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 270.697 null ] >>
endobj
5074 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 259.738 null ] >>
endobj
5075 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 248.78 null ] >>
endobj
5076 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 237.821 null ] >>
endobj
5077 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 226.862 null ] >>
endobj
5078 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 215.903 null ] >>
endobj
5079 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 204.944 null ] >>
endobj
5080 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 193.985 null ] >>
endobj
5081 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 183.026 null ] >>
endobj
5082 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 172.067 null ] >>
endobj
5083 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 161.108 null ] >>
endobj
5084 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 150.149 null ] >>
endobj
5085 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 139.19 null ] >>
endobj
5086 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 128.232 null ] >>
endobj
5087 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 117.273 null ] >>
endobj
5088 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 106.314 null ] >>
endobj
5089 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 95.355 null ] >>
endobj
5090 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 5034 0 R /XYZ 81.145 84.396 null ] >>
endobj
-5091 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 282.738 null ] >>
-endobj
-5092 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 271.779 null ] >>
+5033 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5093 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 260.82 null ] >>
+<< /Filter /FlateDecode /Length 2160 >>
+stream
+x[n#7+! 0 -k} rMNkX͖͝=A#"jcU_˷'ޙOoOכd
+ /b5^kq3҅n_#~isi-m $` пεG#&w]n>ͯ{ sEJ"V$f*3:K 4 }_WMq&81 @OK"(1I3GZ\F$#Vj)n·Eԕqv}f̞5X&,^ΙEZOqRT(zCkԿk#s&3>ҕc`+Қ"Q(-bU!Κ^p1Ki:wfu/&0$)zM઴gL 2r:Ϊb
+
+4z$o)*F49vD&v| ؎;eloi5oMגPK6{HRE3$L9I/sNjC^Xc(ˤOw-YIfw"f6
+tyYO+# = 3H%ACC9öHŰdPU4!"E|(.!?t6v|9t)&'rY[84E6oBp"eʩ6sE:!
+7L!}#Rм$we!ljTdnω(?4QV1#ȘG)]pk4OAfH%hS/c]40; cHx>(-bh9H2s_w@)"?b*Qզ4QtT.d*M6.s9 a*3z))kMKE^:v>^Q0kev*m@'$8pssPM@c8&E dm(v(~\v sUH i%>W9,| .!^(vC&,E94|jkĽZ:/+S`,ՂmACkdTDB y٢.G-HlοcjˑPC9DCѠrGi4~oUj7%ֲl[ ǻ :wo@3s],Җɶ7iH0ʙ3?--"zהeVi |:0vT;2Q8+ۛ^5Ptlqml$o h:yxf8TLq;2\zLmҦX5 U5C[8([B cHܽD8g^>#1^i}. }
+Q9
+w#ܲHV5юȊqn# U4D'Eux;i%^U }:Jm:O 5upcHd<`*kM?2!dj[TI!yDC}T9U 0-0חSEuR *ۜ~\>Z00.Y:z *׸Ǘr4H S4^~3Ry88giH !tH<H+ھHczIY#eyњBH?6{@Yb{I"kfHɧ]Z5tdpM[|KW.:}!=Gp9#M>!m*Sn/{E,
+Nɡ!^ " Kr$&ԴF2p{CGeU֞YKƥ<u,
+|e12uD
+*w`8ʜU]}VQ-.q#AQI f8R}]BH̊ޮIHܭ`
+endstream
+endobj
+5092 0 obj
+<< /Type /Page /Contents 5093 0 R /Resources 5091 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
5094 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 249.861 null ] >>
+<< /D [ 5092 0 R /XYZ 78.37 808.885 null ] >>
endobj
5095 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 238.902 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 768.829 null ] >>
endobj
5096 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 227.943 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 757.87 null ] >>
endobj
5097 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 187.096 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 746.912 null ] >>
endobj
5098 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 176.137 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 735.953 null ] >>
endobj
5099 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 165.178 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 724.994 null ] >>
endobj
5100 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 154.22 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 714.035 null ] >>
endobj
5101 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 143.261 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 703.076 null ] >>
endobj
5102 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 102.414 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 692.117 null ] >>
endobj
5103 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 91.455 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 681.158 null ] >>
endobj
5104 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 80.496 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 670.199 null ] >>
endobj
-5055 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5107 0 obj
-<< /Filter /FlateDecode /Length 1587 >>
-stream
-xڵZ[OF~WXP0JUYRneyn;m{q2@ K||\\M'xwD?O~\\)pd4a4^;'$I% ’$E)T5=JD##%!p{S0OnҺ>;T>I9+ȻU0\_ yӵh'<#G ѽ<]YXv봹82۰fMլc6<{c ™X$=?.uwyU*~`VT#ceceWYݬeVs8bG#XG<FM%Rqs3Bs_\ eSg猱YX|9<Q' P{ہNuTUsF}Y Ų*ge7\嫛EQC:թg6 n!zk/0GTwKˮm8gխ#FdIEǒdeQg_ Ec(aU1uA#X*:&"'!hbF  Cb&Y]gUe;--
-9udzߖk{'kc-ɁD4j#״-zq X!ef5ID[,>x7חk(]fr.At#+joKi8P0MmW0Ct`tR  AXCtRz0$ڬcW)⃵_Ѝ\vF7P M~fK,{14wCBt\vw9ΨBZEP`b~C$2~N0Cc2gX,MS{>Z{} `S#.5 XWsk0w)BHPAiq Pu!]
-z
-![&-~ʘKDזi+D#4e8!a]Pt:^d-rDKtd ѻZ튥Yu]? ~_Ajo5]^}K$!\ڔ+BS z~eۥ) 1qIX~[pr9n/wtd[ԧOdk0=hCiݡ<21zlagL>VOXя@61WHOjd!z+Yݬ۱l=
-?p[ry[Du,G5V?qtmz?S
-endstream
+5105 0 obj
+<< /D [ 5092 0 R /XYZ 81.145 659.24 null ] >>
endobj
5106 0 obj
-<< /Type /Page /Contents 5107 0 R /Resources 5105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5092 0 R /XYZ 81.145 648.281 null ] >>
+endobj
+5107 0 obj
+<< /D [ 5092 0 R /XYZ 81.145 637.322 null ] >>
endobj
5108 0 obj
-<< /D [ 5106 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 626.364 null ] >>
endobj
5109 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 615.405 null ] >>
endobj
5110 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 604.446 null ] >>
endobj
5111 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 593.487 null ] >>
endobj
5112 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 582.528 null ] >>
endobj
5113 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 571.569 null ] >>
endobj
5114 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 560.61 null ] >>
endobj
5115 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 554.832 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 549.651 null ] >>
endobj
5116 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 543.873 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 538.692 null ] >>
endobj
5117 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 532.915 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 497.112 null ] >>
endobj
5118 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 521.956 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 486.153 null ] >>
endobj
5119 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 510.997 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 475.194 null ] >>
endobj
5120 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 500.038 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 464.235 null ] >>
endobj
5121 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 489.079 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 453.276 null ] >>
endobj
5122 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 478.12 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 442.318 null ] >>
endobj
5123 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 467.161 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 402.31 null ] >>
endobj
5124 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 456.202 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 391.351 null ] >>
endobj
5125 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 445.243 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 380.392 null ] >>
endobj
5126 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 434.284 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 369.433 null ] >>
endobj
5127 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 423.325 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 358.475 null ] >>
endobj
5128 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 412.367 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 347.516 null ] >>
endobj
5129 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 401.408 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 336.557 null ] >>
endobj
5130 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 390.449 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 325.598 null ] >>
endobj
5131 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 379.49 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 314.639 null ] >>
endobj
5132 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 368.531 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 303.68 null ] >>
endobj
5133 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 357.572 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 292.721 null ] >>
endobj
5134 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 346.613 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 281.762 null ] >>
endobj
5135 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 335.654 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 270.803 null ] >>
endobj
5136 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 324.695 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 259.844 null ] >>
endobj
5137 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 313.736 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 89.593 null ] >>
endobj
5138 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 302.778 null ] >>
-endobj
-5139 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 291.819 null ] >>
+<< /D [ 5092 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5140 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 280.86 null ] >>
+5091 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5141 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 264.938 null ] >>
+<< /Filter /FlateDecode /Length 2105 >>
+stream
+x[6+@qUTd.vܟo$
+D謏@GGG%g#ȹ
+#=b<7x]W]W$;hσ 7b+X@t!S+6nȌ ʟ[@m<9g$g:/c.N2^KefFR3: Άm4Qչ)4})aX*,i!BW,Zĵ<ws&WEF]FUE9 X!xD[Z}sD2aQrnxTS騶R⤷W{NvbRǼ y> h%"6w.tivI#6M}MiSHlOe!h_~镭,50SnsDg9z%k1Eߵ4W8ZsD_IPra
+kXcdd*⁒I0CfP/6Ti vITJ`FzdjPKlƒ֫<"ҏ)k_I$J]!8e=¿$R;=Z5_5$KWX{2 _dBDz__ך AL3pf!?!, 3LSޅʟC jrԫ 7{r
+F,a9MH㪂SeJU
+h\TG[ n =[u* 4!@ i0B:3FMjzD&'_hCxJT),cttѹqF$cATa\!c"Bua].JiaoJ;^W?Ƶ3Pcmg[XFn6B$vStس;Le >z&˒5RrWj9$X! $*wel_A(we\¾{1,R]!m0E+Bi2ǬBLYg>"[æʅG-B9Sėh"PttY
+q; g!v_-4<&2冝mRgB1<
+{oGAEj&BG-lKAdM~R!}?] s6cg-+r*ŗűP"*2dyB 4^Ջ@ ~UJi 73* gV %ڎV%/s?ޝ
+endstream
+endobj
+5140 0 obj
+<< /Type /Page /Contents 5141 0 R /Resources 5139 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4735 0 R >>
endobj
5142 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5140 0 R /XYZ 78.37 808.885 null ] >>
endobj
5143 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 755.052 null ] >>
endobj
5144 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 726.5 null ] >>
endobj
5145 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 715.541 null ] >>
endobj
5146 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 704.582 null ] >>
endobj
5147 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 693.623 null ] >>
endobj
5148 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 665.071 null ] >>
endobj
5149 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 654.112 null ] >>
endobj
5150 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 643.153 null ] >>
endobj
5151 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 632.194 null ] >>
endobj
5152 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 621.236 null ] >>
endobj
5153 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 610.277 null ] >>
endobj
5154 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 599.318 null ] >>
endobj
5155 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 588.359 null ] >>
endobj
5156 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 577.4 null ] >>
endobj
5157 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 566.441 null ] >>
endobj
5158 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5105 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5140 0 R /XYZ 81.145 555.482 null ] >>
endobj
-5161 0 obj
-<< /Filter /FlateDecode /Length 1928 >>
-stream
-xڵZKo8W苳aO deg!(6mkF<I6E:ɏU,ͶhU4>_r :͖+
-%(bEIlg.D˝ҳhx)DBWric⾼LvmEz{>y<+RHI1d|_вaTp';9OLIn9jm(њD8My!o(;Γtkvs!R)t8|OwF2zJwSKc룅姩<:ǝɷ;&ߦY]g0vJK£ح;@CNB;u4^v8LFC.E
-O4Nqꑗ6m9@l-,4n*`m_j+}ؕD(pG_jJv@SToR7vZIq,)KAeٔ_}DZ1W^Ѻt>Āi`hÒ8Np"@r*C Cnr2YU5ZwrM>/^\p
-,=vw6L=:mf"mg09B>/eQJxI&|_kyhPTgHFbdSTㆭ!!8ߗˏ@!b
-%gph*
-fIQ9@Gŋᇳ
-endstream
+5159 0 obj
+<< /D [ 5140 0 R /XYZ 81.145 526.93 null ] >>
endobj
5160 0 obj
-<< /Type /Page /Contents 5161 0 R /Resources 5159 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5140 0 R /XYZ 81.145 515.971 null ] >>
+endobj
+5161 0 obj
+<< /D [ 5140 0 R /XYZ 81.145 505.012 null ] >>
endobj
5162 0 obj
-<< /D [ 5160 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 494.054 null ] >>
endobj
5163 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 483.095 null ] >>
endobj
5164 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 472.136 null ] >>
endobj
5165 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 461.177 null ] >>
endobj
5166 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 432.625 null ] >>
endobj
5167 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 421.666 null ] >>
endobj
5168 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 410.707 null ] >>
endobj
5169 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 399.748 null ] >>
endobj
5170 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 388.789 null ] >>
endobj
5171 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 377.83 null ] >>
endobj
5172 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 366.872 null ] >>
endobj
5173 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 355.913 null ] >>
endobj
5174 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 315.406 null ] >>
endobj
5175 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 304.447 null ] >>
endobj
5176 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 293.488 null ] >>
endobj
5177 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 282.529 null ] >>
endobj
5178 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 271.57 null ] >>
endobj
5179 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 260.611 null ] >>
endobj
5180 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 249.652 null ] >>
endobj
5181 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 238.693 null ] >>
endobj
5182 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 227.734 null ] >>
endobj
5183 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 216.775 null ] >>
endobj
5184 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 205.817 null ] >>
endobj
5185 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 194.858 null ] >>
endobj
5186 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 166.306 null ] >>
endobj
5187 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 155.347 null ] >>
endobj
5188 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 144.388 null ] >>
endobj
5189 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 133.429 null ] >>
endobj
5190 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 122.47 null ] >>
endobj
5191 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 111.511 null ] >>
endobj
5192 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 100.552 null ] >>
endobj
5193 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 89.593 null ] >>
endobj
5194 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 424.124 null ] >>
-endobj
-5195 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 5140 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5196 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 370.326 null ] >>
+5139 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F28 611 0 R /F73 267 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5197 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 359.367 null ] >>
+<< /Filter /FlateDecode /Length 2223 >>
+stream
+x[n#7+! p[V} rMNkUsiDjADյU旿/ w'͈ 2g_/Oqin/F Ƶ|s\AxNMeNkikBBf)H/wǤ4ftzƏqm[P
+"<?Boa暨Z@%(I\xR8
+G az[eVchԐ9Va dOO53綾lddyMX\{M낟ޓW+PI1SKs(K9fUyY)O%u<[+&|9(6.wq]9b:(&8E
+)e
+s
+@i=pL9; 5NJӌ)l_Ou_gU%hŴtC%+'졐9D :B$%FQ5^GO^[`JLqG+sD !(~mMO/HC+G{-' r9beTRz,∕ETQZgE9ǬCV&Q ASz 2$g{BOpⱆ;ѦSzc V^_|Tq9wCSkm)(:a|FŁ}-eG"j..`Rtto(_972b=4WLI{'*쩦@ N9雯43c.̭'N+g^QjjڵEDr &\цPu]i]QH]fPWd βPWt>H;1dC%?]&7~ݻ"t5 "͏"3 sLIVOgU%"9l'Ѻ V<uScPV$CQ2 sŧ1,pEHhG]MϮNZqtxy9u#Wҵz_tbV2ޣ@*Va>5:gSO2焤Ӷϊx@
+k:v'JVw4&E7VQjxoJ \zR[iQĈ"*(TAvq?k+
+E H$jBrGZ%3{ ttefh(
+ܪ5J
+endstream
+endobj
+5196 0 obj
+<< /Type /Page /Contents 5197 0 R /Resources 5195 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5198 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 5196 0 R /XYZ 78.37 808.885 null ] >>
endobj
5199 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 768.829 null ] >>
endobj
5200 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 728.202 null ] >>
endobj
5201 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 285.644 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 717.243 null ] >>
endobj
5202 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 274.685 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 706.284 null ] >>
endobj
5203 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 263.726 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 695.325 null ] >>
endobj
5204 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 252.767 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 684.366 null ] >>
endobj
5205 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 241.808 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 673.407 null ] >>
endobj
5206 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 230.849 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 662.449 null ] >>
endobj
5207 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 219.89 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 651.49 null ] >>
endobj
5208 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 208.931 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 640.531 null ] >>
endobj
5209 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 629.572 null ] >>
endobj
5210 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 187.014 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 618.613 null ] >>
endobj
5211 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 176.055 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 607.654 null ] >>
endobj
5212 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 165.096 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 596.695 null ] >>
endobj
5213 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 154.137 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 585.736 null ] >>
endobj
5214 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 143.178 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 574.777 null ] >>
endobj
5215 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 132.219 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 563.818 null ] >>
endobj
-5159 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5218 0 obj
-<< /Filter /FlateDecode /Length 1875 >>
-stream
-xZMo6ϯF)bP`r
-r"<t)JT=)^BK#>/O^?޿{J#-;xEV JI$)R|L0GTф2!-+2?f߻L4]J&@y>uE([J(@EtaR !h5Ʉ"TBtH%T[r%"/2 Q1JRS10և, U뗢z4!S늺ֶY_|o=x^Xd}ݵ,HlHe؊#FD"i\P=Ӓԫ, D&!޵iM.oa}/(0u,_}h,AD2Q&T/ؙeh -*LeW}VGeQ 774YΆ[zюo}ƫk$kC[b:D'K4۪8]nV6 [e;fơ>mY.o8gC c.Cͧ'GgPOpt.+Tà^QwQeNZ0z `7:`|/sKͮ$MzOсLa,=)GjIY_D'`hSqhC RvZ_~yk2(׸f<@V
-Nm{ˈ?MI5eʈDZ~-1oH Sbl͒P )GPA$Hę0SUcVX6TEȪ9YCaЭY s
-0siN Z}h<Ji::-P(^DO
-L>){I>B/к*_71c9I kN"vr*sH~., H$ě޾t ?n=MQ]9n/T؇n`<m3_<%a eH2waC-E=707oeϙ\ "uOzp
-+w掫_ٌ6fߦd;ͬ@kSw%oȚ"52d
-|{U7=!(vRq'S4JEa>+ 4
-endstream
+5216 0 obj
+<< /D [ 5196 0 R /XYZ 81.145 468.42 null ] >>
endobj
5217 0 obj
-<< /Type /Page /Contents 5218 0 R /Resources 5216 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5196 0 R /XYZ 81.145 457.461 null ] >>
+endobj
+5218 0 obj
+<< /D [ 5196 0 R /XYZ 81.145 446.502 null ] >>
endobj
5219 0 obj
-<< /D [ 5217 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 435.543 null ] >>
endobj
5220 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 656.924 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 424.584 null ] >>
endobj
5221 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 645.965 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 413.625 null ] >>
endobj
5222 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 617.33 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 372.998 null ] >>
endobj
5223 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 588.695 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 362.039 null ] >>
endobj
5224 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 577.736 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 351.08 null ] >>
endobj
5225 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 566.777 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 340.121 null ] >>
endobj
5226 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 555.818 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 329.162 null ] >>
endobj
5227 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 527.183 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 318.203 null ] >>
endobj
5228 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 516.224 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 307.244 null ] >>
endobj
5229 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 505.265 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 296.285 null ] >>
endobj
5230 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 494.306 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 133.429 null ] >>
endobj
5231 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 483.347 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 122.47 null ] >>
endobj
5232 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 472.388 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 111.511 null ] >>
endobj
5233 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 461.429 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 100.552 null ] >>
endobj
5234 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 450.47 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 89.593 null ] >>
endobj
5235 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 439.512 null ] >>
+<< /D [ 5196 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5236 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 428.553 null ] >>
+5195 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5237 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 417.594 null ] >>
+5239 0 obj
+<< /Filter /FlateDecode /Length 2635 >>
+stream
+x[9# W(,jjwFfS;rn{HQvѨ  |
+TGGõ-o飹}M4=iҵpt-}OW*V|=ƈk1Њs:tZ:)yҵk̀)E˦ʠ(z%6,LUr@aDY~!"uL ame"[7ˉ0 b NȉcJl W|xK- &E{mEX6w_#[WFO).]5iRt;8w"HN'#u|Sg3+6U
+vx:ٷBdG}:s'ݽ~
+EA0Rd }*HœF;J;>"G13wYR!G!*hnң5̂85^ڒ qGHs2Vx"X'",JGEn&֍mĥNP(ȣTD{lX+Y6UZHYL. l1^үt;vΦb,jvF-9E`Di=
+'aMŘS1x`Ѡ
+Hhii$1r0D).@r%zZ0#e'][6J(M$\N0oddJ6n-tm68*3hϸ뫌~pɴ4rBvuAwt~|Hˊ%SNܞE}&J)IǢ2}Nh\LA
+̀f!ݠ}fqT/]У4x7ABiMS$.;HJ<C]!I 12&{*Wi9#F9 *U>9fQT3+Y۷9sFՏ},
+*&\
+sW!@xV LNVRb‘]{iY;iRhxN FLîe %.>2 [j[Z?‰zI0dv
+-~ܟ
+H(SDJ*n-RP0OM-NZA5}+EX59M:Ec 3͔@!U刧T۞)~-mK˒RjI6Di/%l 7$UgDiԊb(38Pv!؟x+Wγ(q5`03bLBMXy3ݪjNC!#!<et/O9=Mh&:B]83osLw7B'Mf@ =cQ3EBժbٱ}DR1MCղ]C%*dk8nJ5钡܋k#'ZHf'V+;>!gJixWx̨S}Zz(:H'j4'L嶅Yi(Vs"HI@5ƷƒJ|SHܩ|4YgXCX넺o(cyѮah1zi9i{e+lHV'BOp"V#N'JsNrdtASeo;Lrd
+
+^4Z$7pAKrT?G~UMo -)J${0՜Qoŵ& Է<6L *gmR&M#@ⳮ
+o?2ICX-Nh QJ>Vb]KfovoDGs}Z)eH:`itFB0>'b]`x-ՈSG:O̙=RxG::Ɖ2QșkBALe
+endstream
endobj
5238 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 388.959 null ] >>
-endobj
-5239 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 378 null ] >>
+<< /Type /Page /Contents 5239 0 R /Resources 5237 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5240 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 367.041 null ] >>
+<< /D [ 5238 0 R /XYZ 78.37 808.885 null ] >>
endobj
5241 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 356.082 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 768.829 null ] >>
endobj
5242 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 345.123 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 757.87 null ] >>
endobj
5243 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 334.164 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 746.912 null ] >>
endobj
5244 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 323.205 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 735.953 null ] >>
endobj
5245 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 294.57 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 724.994 null ] >>
endobj
5246 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 283.611 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 714.035 null ] >>
endobj
5247 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 272.652 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 703.076 null ] >>
endobj
5248 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 261.693 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 692.117 null ] >>
endobj
5249 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 250.734 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 650.722 null ] >>
endobj
5250 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 239.775 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 639.763 null ] >>
endobj
5251 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 228.816 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 628.804 null ] >>
endobj
5252 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 217.858 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 600.876 null ] >>
endobj
5253 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 549.037 null ] >>
endobj
5254 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 538.078 null ] >>
endobj
5255 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 527.119 null ] >>
endobj
5256 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 516.16 null ] >>
endobj
5257 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 505.201 null ] >>
endobj
5258 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 494.243 null ] >>
endobj
5259 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 454.359 null ] >>
endobj
5260 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 443.4 null ] >>
endobj
5261 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 432.441 null ] >>
endobj
5262 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5216 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5238 0 R /XYZ 81.145 421.482 null ] >>
endobj
-5265 0 obj
-<< /Filter /FlateDecode /Length 2035 >>
-stream
-xڽZMo8W $lK f&ܶ"ӱfd+ɝd߷(R4v'bg.Mb**q,~J'mF S^a,"OQEbxq_{xFVm*9iJs !zߒdyt4DnXL
-(GpV$[>]n(%'C6]݋m(AvvNvvξTsܷ]ɖjki /((KKR#PU(&<(޾EC@X@߶73[#r"6o'@^OޮoW7)>~,)A'N'Ey/S!N9"zA`9exqhr2TJr(u TJuvj_mSݺ5<Z ;ӌiN<Nq5]ݝyݳ߼37)b8u(_ 9<cq;=MNG)T8I>@ga.%
-(RaqAi`a UITLP{硓{[ٛ4jT/7huXP @m:i9\;&ڎqQ[.8(:c`
-[@bw:T~9Eu앳(
-g 2GRLֆO%)B|)'
-_W
-::B"Q1@Eb:^v]/j
-M]1&Cc/G)Ll<6?]7rM#Oy!a1{&e9lٺ87
- i2.
-9CNU_8tjKzH쫟}d˟h
-S FਸO" 2'D
-.I,*g .\G} pH
-l
-P[C==lG<=&o1 Ρku/ !4"\Jݕ0Y΅=a~|;Վ0^<xeG>ٽOAڕy)!q4h qFAU`pmBVuQE~-o\AG:NfV*SMpcFzy'K\GkM(#Ѫ@q=Vɢ
-N]*_P;["!yb =<]k
-endstream
+5263 0 obj
+<< /D [ 5238 0 R /XYZ 81.145 410.523 null ] >>
endobj
5264 0 obj
-<< /Type /Page /Contents 5265 0 R /Resources 5263 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5238 0 R /XYZ 81.145 399.564 null ] >>
+endobj
+5265 0 obj
+<< /D [ 5238 0 R /XYZ 81.145 388.605 null ] >>
endobj
5266 0 obj
-<< /D [ 5264 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 377.646 null ] >>
endobj
5267 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 366.688 null ] >>
endobj
5268 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 355.729 null ] >>
endobj
5269 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 728.981 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 344.77 null ] >>
endobj
5270 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 718.022 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 333.811 null ] >>
endobj
5271 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 707.063 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 322.852 null ] >>
endobj
5272 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 311.893 null ] >>
endobj
5273 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 250.025 null ] >>
endobj
5274 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 239.066 null ] >>
endobj
5275 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 228.107 null ] >>
endobj
5276 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 217.148 null ] >>
endobj
5277 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 206.19 null ] >>
endobj
5278 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 195.231 null ] >>
endobj
5279 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 155.347 null ] >>
endobj
5280 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 144.388 null ] >>
endobj
5281 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 133.429 null ] >>
endobj
5282 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 122.47 null ] >>
endobj
5283 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 111.511 null ] >>
endobj
5284 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 100.552 null ] >>
endobj
5285 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 89.593 null ] >>
endobj
5286 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 512.792 null ] >>
-endobj
-5287 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 5238 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5288 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 490.874 null ] >>
+5237 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F25 609 0 R /F75 4454 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5289 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 479.915 null ] >>
+<< /Filter /FlateDecode /Length 1606 >>
+stream
+xZr&+@w@k<v.mos$IL9 "_dO)8?!',ߟd+% N??UJ5]+
+ENsx!PzC:m01ǠZ!
+C,8hZ='
+.^4p/`6m%ޒG;* 3f}ݖluJ^%njC
+瀨*Ω!ULQiFToN $BV#͈P#_K3
+R8Oi"dJ-%-XhDk" ,~V)mKH(Q=xT'K)uo"QhiεHi:^]\_h@auv*o%~t,U,u'i b1o:R)ڧ-nX)5ҼZ
+)Pa5Ro
+aNԟ!3`*rxʌ5{גrSauN0zGˣWHFA0 GAz*
+Gn$_KN;тNsN35 x-?S WuwB)mh `)rJ S gL7j)~/U7qm4@,+yj.\֡蠌PR#z;1\Sڿ>wԃCu ~m`ZERYDZ,O!9Vl]N^n:všdK _=v0$;b POv]XG<Vn !IWN*9h;:Y
+endstream
+endobj
+5288 0 obj
+<< /Type /Page /Contents 5289 0 R /Resources 5287 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5290 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 5288 0 R /XYZ 78.37 808.885 null ] >>
endobj
5291 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 630.349 null ] >>
endobj
5292 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 619.39 null ] >>
endobj
5293 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 608.431 null ] >>
endobj
5294 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 597.472 null ] >>
endobj
5295 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 328.566 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 586.513 null ] >>
endobj
5296 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 317.607 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 575.554 null ] >>
endobj
5297 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 306.648 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 564.595 null ] >>
endobj
5298 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 295.689 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 553.636 null ] >>
endobj
5299 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 284.73 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 542.677 null ] >>
endobj
5300 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 273.771 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 531.719 null ] >>
endobj
5301 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 232.924 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 520.76 null ] >>
endobj
5302 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 221.966 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 509.801 null ] >>
endobj
5303 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 211.007 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 498.842 null ] >>
endobj
5304 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 200.048 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 487.883 null ] >>
endobj
5305 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 189.089 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 476.924 null ] >>
endobj
5306 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 178.13 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 465.965 null ] >>
endobj
5307 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 167.171 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 455.006 null ] >>
endobj
5308 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 156.212 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 444.047 null ] >>
endobj
-5263 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+5309 0 obj
+<< /D [ 5288 0 R /XYZ 81.145 433.088 null ] >>
endobj
-5312 0 obj
-<< /Filter /FlateDecode /Length 2139 >>
-stream
-xڭZ[o6~_a`^n]A
-)I%_m? P -2Idq_g|߻yh)rW4O.f7<!N#"Hh[@b}
-O>*:k2LPN{DJ|H>4( LȒ@Ѐ.؂#FCx.$B Q'. mBEKKǛ HkZ?Omu7ۧZP1u(wci⟛VɄ3hN<cqcJHE4PlmQT61G\TILkS3.c0"t)18t*pmwSh7^*j64G OJ
-!Fdr$Eq)ߓ I![t;{tŶmEYv,t͡C]o~sМTwCnf>3OY9G+ϓ%I=B'K1$ <XGH*oNHc %0(vvlMha{LZoYL;5󖕦YZyc릅O?U2Чa*gK}u͈X>W4[~꾭WӬ7t}FO`δeUGAa_<h}.[7s7]ntrh@pV2< zS<
-j5u3Yp-
-endstream
+5310 0 obj
+<< /D [ 5288 0 R /XYZ 81.145 422.129 null ] >>
endobj
5311 0 obj
-<< /Type /Page /Contents 5312 0 R /Resources 5310 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5288 0 R /XYZ 81.145 411.171 null ] >>
+endobj
+5312 0 obj
+<< /D [ 5288 0 R /XYZ 81.145 400.212 null ] >>
endobj
5313 0 obj
-<< /D [ 5311 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 389.253 null ] >>
endobj
5314 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 691.01 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 378.294 null ] >>
endobj
5315 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 680.051 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 367.335 null ] >>
endobj
5316 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 669.093 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 356.376 null ] >>
endobj
5317 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 658.134 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 345.417 null ] >>
endobj
5318 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 647.175 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 334.458 null ] >>
endobj
5319 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 636.216 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 323.499 null ] >>
endobj
5320 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 625.257 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 312.54 null ] >>
endobj
5321 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 614.298 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 301.582 null ] >>
endobj
5322 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 603.339 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 290.623 null ] >>
endobj
5323 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 592.38 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 279.664 null ] >>
endobj
5324 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 581.421 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 268.705 null ] >>
endobj
5325 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 570.462 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 257.746 null ] >>
endobj
5326 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 559.504 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 246.787 null ] >>
endobj
5327 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 548.545 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 235.828 null ] >>
endobj
5328 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 505.97 null ] >>
+<< /D [ 5288 0 R /XYZ 81.145 224.869 null ] >>
endobj
-5329 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 495.011 null ] >>
+69 0 obj
+<< /D [ 5288 0 R /XYZ 79.37 199.42 null ] >>
endobj
-5330 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 484.052 null ] >>
+5287 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5331 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 455.338 null ] >>
+<< /Filter /FlateDecode /Length 2111 >>
+stream
+x[n$7 WF"i;@ξ&5ڨR9J'|_~ƇۏPǜ-/o}LIu1Z0O?~/}g7,d`$r_w>*t.]K\G- ϚkLW4ՌOPw~lj{|;bnc/BtoTP
+qY*d5^L%УqXo[NipR і6w0{\T;YxwnLIm]" Xe"00J{YF:&0O^-S0S1E3j`tM ~u[{( I[ʼn~FܚLӄy('YaJϑkFh<6q ]jPD& S0pũ5zIquѥ.ld:dH",uwi)c gBkHP[G\ٛ5DQ/m{?"
+hN(
+t9Tu?& TY$5vk Wfat&|<)޹dI/H:2S,xSf ևqKYOqQvd>a4(v+qȈgO1Gm·3?4=}9ʃKkMzHjaLF&Oy.hˌգѐIə5L+
+2= "I[T-&tzmffдܳ" (w@35LhDhjdpm⯽lMN\:>0l.#GCSAz]#}= 4Y,lI[#V?Ux~RU}/aBȩ1k kD(cB驇1 /1KMb.eM (A!*#%2P82*.ύj܀iObj]h珛S^ⳁA-UC}4aw@=
+$MsO kkohl(&Qޑ~2$#cF撞s1B&Ft")OK Ǒ(T08ȩȏ )-q[#*|'f z@Bf* #Xlm Ȇ(vQ#Q:GbL qv{+ZD_t(KO$f٣4(Fz@{)ifhxVμ1Zv#yC x6%RNS<kj"oufrOoZ ֫$Uirtk)AOQu]/гKef-S ˩55+ BL`/h*n5``vxAˤ'3I@|=.Y Z.A ij
+QSSKatxk}:(S=Œ Rڡ@glw0(3~ eRFqmbNSI,R@E 6bPxHѢ1aΗv㱜ӌc/x,1nJ&y8d1=(J"ŒUvuf4*'IF1ԝ!G)
+oc[J ?h4v%9Hg3UW_뾲[O6mjaWYR` g̓
+A:cx3.Ih )7)5Lh֍6>5LN]OpCN/, 9JuFI G&7LL^S 7(i14WqY<Z9JB'nbl/D4=9z2qMlږ̰< N{PR &/HZLkXs^
+endstream
+endobj
+5330 0 obj
+<< /Type /Page /Contents 5331 0 R /Resources 5329 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5332 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 402.712 null ] >>
+<< /D [ 5330 0 R /XYZ 78.37 808.885 null ] >>
endobj
5333 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 391.753 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 668.207 null ] >>
endobj
5334 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 380.794 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 657.248 null ] >>
endobj
5335 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 369.836 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 646.289 null ] >>
endobj
5336 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 358.877 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 635.33 null ] >>
endobj
5337 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 347.918 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 624.371 null ] >>
endobj
5338 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 307.248 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 613.412 null ] >>
endobj
5339 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 296.289 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 602.453 null ] >>
endobj
5340 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 285.33 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 591.494 null ] >>
endobj
5341 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 274.371 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 580.535 null ] >>
endobj
5342 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 263.412 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 569.577 null ] >>
endobj
5343 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 252.453 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 520.76 null ] >>
endobj
5344 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 241.494 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 509.801 null ] >>
endobj
5345 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 230.535 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 498.842 null ] >>
endobj
5346 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 219.576 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 487.883 null ] >>
endobj
5347 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 208.617 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 476.924 null ] >>
endobj
5348 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 197.659 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 465.965 null ] >>
endobj
5349 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 410.174 null ] >>
endobj
5350 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 399.215 null ] >>
endobj
5351 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 388.256 null ] >>
endobj
5352 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 377.298 null ] >>
endobj
5353 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 366.339 null ] >>
endobj
5354 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5310 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F23 660 0 R /F27 4533 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5330 0 R /XYZ 81.145 355.38 null ] >>
endobj
-5357 0 obj
-<< /Filter /FlateDecode /Length 1544 >>
-stream
-xڭYˎ6Wn3& 
-4E tV5eY2$97HWMWIIE,vn^vfULj{Ca љVDV_CeU!+uZ}RlچSh3YIK7=̹>VUZM7>dUYwsV'k2YgvIX)&}{x~s>ߖUs,&O ]/gM?ScSg6վx
-tqSK|4ڊ`ac/zcQViAAJ`5t#g<$Ti]='!ʸ( N>T=Jmq[@ b]-Qz"A1RD+Z @_(qT.c eNy
-U󙢻k?WB@j5.@A' BlF[h
-endstream
+5355 0 obj
+<< /D [ 5330 0 R /XYZ 81.145 344.421 null ] >>
endobj
5356 0 obj
-<< /Type /Page /Contents 5357 0 R /Resources 5355 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5330 0 R /XYZ 81.145 333.462 null ] >>
+endobj
+5357 0 obj
+<< /D [ 5330 0 R /XYZ 81.145 322.503 null ] >>
endobj
5358 0 obj
-<< /D [ 5356 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 269.701 null ] >>
endobj
5359 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 258.742 null ] >>
endobj
5360 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 247.783 null ] >>
endobj
5361 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 236.824 null ] >>
endobj
5362 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 225.865 null ] >>
endobj
5363 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 214.907 null ] >>
endobj
5364 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 203.948 null ] >>
endobj
5365 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 192.989 null ] >>
endobj
5366 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 182.03 null ] >>
endobj
5367 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 171.071 null ] >>
endobj
5368 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 160.112 null ] >>
endobj
5369 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 149.153 null ] >>
endobj
5370 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 138.194 null ] >>
endobj
5371 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 127.235 null ] >>
endobj
5372 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 116.276 null ] >>
endobj
5373 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 435.083 null ] >>
-endobj
-5374 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5330 0 R /XYZ 81.145 105.318 null ] >>
endobj
-5375 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 413.165 null ] >>
+5329 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5376 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 402.207 null ] >>
+<< /Filter /FlateDecode /Length 2840 >>
+stream
+x[Io+ SDQ`?snESڨm4(NERN
+G/7#NȜNx!~'d`\ǿN=s.Z>Rp޴9Y洖\0.#ckι|1tGH xCDVQMF׌
+KTXFl"Agۅ3}3킠cTP`R@^?oB 4/Ǥ9
+`f^8hC@鿤뼎5ZT)cѫޥ]
+HZ dq$}:*w+p.έ2ALv&˙ ye؆q oFmJ ,QaNq}.F㮔keցI=>؍BY<Q|Yh?%E0WWEW;HguMۋr*{ pn ڼ'Z5M wr!M3Z-KR:z4p$15kkN4;ɉ̍g6df6תY,c,pf@HЂx$m|pW&ރ[&#&Mvq?IJ`j'P&)}$#PTV([Q)qLyl@
+̓&/wZ\#(Z\&ۻ&x [= 1\t#:sLk=#E1Re:HA9եVȲd1d܉IeRa픔I/՜ɓ`}AiK(RG1 \IGت$;e㡴fƺ;lԺ(J1%ŮIG: Y տY.f{$nդ1Kv@ZO*
+&e< fiX/`]u8x)CpCL߹$6k$TT ݭPcBp$9.c=?@ ]'GIƶ)cgh(œ&b֓h{}~lڢeJ|l-D954c/wY7f| sXQ*J8hFm4(y -i` z
+\U#CN6a*)-3NG2s 25]Gi8]0^uRK}@l::xM/)'d% Op KY۬IJd^1\7OkjsOkn}>WB!׶'V rF>W3u =#82?@1̾}cF
+RTl.yi8\ 0\ {MCd#ލ]U5;+e(Dn,[swOlS*f\w@si~*F В?7NO顱lA[P NMFQ#=KoTpLf'QRo\ 弦THiېmI\s]˶
+ a9uƱMa'9o6*;rDW%εJt.~d; 拏vMhQI )lt,'/v{38MߊHVj &:<2fD4^j]5ܦn%DS4dž;PKڠ-= &;ҳϿ+j9mH`Cp@z ocK;b}Gq8fru!i9 ڣoORh0a:+OP"EbB/ m=
+1 =U@ B:S 2j:G\I/8z*uT|ꁾ0s]xjwLhH&iT'Xim
+endstream
+endobj
+5375 0 obj
+<< /Type /Page /Contents 5376 0 R /Resources 5374 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5377 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5375 0 R /XYZ 78.37 808.885 null ] >>
endobj
5378 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 768.829 null ] >>
endobj
5379 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 757.87 null ] >>
endobj
5380 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 746.912 null ] >>
endobj
5381 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 662.229 null ] >>
endobj
5382 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 651.27 null ] >>
endobj
5383 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 640.311 null ] >>
endobj
5384 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 629.352 null ] >>
endobj
5385 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 618.393 null ] >>
endobj
5386 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 607.435 null ] >>
endobj
5387 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 596.476 null ] >>
endobj
5388 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 585.517 null ] >>
endobj
5389 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 574.558 null ] >>
endobj
5390 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 563.599 null ] >>
endobj
5391 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 552.64 null ] >>
endobj
5392 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 541.681 null ] >>
endobj
5393 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 530.722 null ] >>
endobj
5394 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 465.965 null ] >>
endobj
5395 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 455.006 null ] >>
endobj
5396 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 444.047 null ] >>
endobj
5397 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 433.088 null ] >>
endobj
5398 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 422.129 null ] >>
endobj
5399 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 393.238 null ] >>
endobj
5400 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 382.279 null ] >>
endobj
5401 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 371.32 null ] >>
endobj
-73 0 obj
-<< /D [ 5356 0 R /XYZ 79.37 102.779 null ] >>
+5402 0 obj
+<< /D [ 5375 0 R /XYZ 81.145 360.361 null ] >>
endobj
-5355 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+5403 0 obj
+<< /D [ 5375 0 R /XYZ 81.145 349.402 null ] >>
endobj
5404 0 obj
-<< /Filter /FlateDecode /Length 1945 >>
-stream
-xڭYn6+ tQH8|
-4EE.:ز#,L&ȿRt&RHuν4gx{t{ZqAg3xFfR#&g2QK2uoIA}~~gv΋iݢ-Lո˲?Z1m/{YTG>}G?48F SFk532LzJl6Yx_ XORcj)_@)ARͽٕK'k`fӕd 2 "v2urjht~9l]Y5WRle(|}Vw:r6Wj˙P*Ro, }4,I¢|IhL&+M&@dN&%5z*
-QKi<m˱¶hZ-zk%zLp&AAAMol$,\c$8I
-Q`m-|ذKT|Ր$Jȸϣ=
-?:֏1:Zp
-$@\HwM5_q3I#iHբ6Ş冷n/wu]rr_d;8HQ(
-FH-d2
-?~uɖ:st )8~hxJ84J*@w0VbY8G
- 3)=2}
-`L43B?<]߇'xO/}E4$jc4CKx&SRtH~EZIPbĠH؟eY
-endstream
-endobj
-5403 0 obj
-<< /Type /Page /Contents 5404 0 R /Resources 5402 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5375 0 R /XYZ 81.145 338.443 null ] >>
endobj
5405 0 obj
-<< /D [ 5403 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 327.484 null ] >>
endobj
5406 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 575.085 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 316.525 null ] >>
endobj
5407 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 564.127 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 305.567 null ] >>
endobj
5408 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 553.168 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 294.608 null ] >>
endobj
5409 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 542.209 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 283.649 null ] >>
endobj
5410 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 531.25 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 272.69 null ] >>
endobj
5411 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 520.291 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 261.731 null ] >>
endobj
5412 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 509.332 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 250.772 null ] >>
endobj
5413 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 498.373 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 209.925 null ] >>
endobj
5414 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 487.414 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 198.966 null ] >>
endobj
5415 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 476.455 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 188.007 null ] >>
endobj
5416 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 427.884 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 177.049 null ] >>
endobj
5417 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 416.925 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 166.09 null ] >>
endobj
5418 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 405.966 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 155.131 null ] >>
endobj
5419 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 395.007 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 139.19 null ] >>
endobj
5420 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 384.048 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 128.232 null ] >>
endobj
5421 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 373.089 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 117.273 null ] >>
endobj
5422 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 317.446 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 106.314 null ] >>
endobj
5423 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 306.487 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 95.355 null ] >>
endobj
5424 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 295.528 null ] >>
+<< /D [ 5375 0 R /XYZ 81.145 84.396 null ] >>
endobj
-5425 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 284.569 null ] >>
-endobj
-5426 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 273.61 null ] >>
+5374 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5427 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 262.651 null ] >>
+<< /Filter /FlateDecode /Length 2194 >>
+stream
+x[n+7*¼,˺@jwATIoe/->[Z.3õGׇ×U;)?*$wj0QB{o^JR
+zcr6v7] uQQc %|9||^p_MuiM.
+ G П@'lDnpB9vi̴%
+d ,"]%l|3,
+ Np td7z|xps-м˅i:ޚ/j+nS8昢tE"9 :LP!R@#CLb0Ƕ\!SaYV4#Ke,-')V;fX;-rC'|:;]$Љ6' Дq6(TC9[_; [p4 ~°h^5)EvH/>VZyɵGr3 Q5c
+[OܛDZQ8Y > k"` i|E\O37h䝐dG4nI!9:9+^
+F ;2>RW1#g7kZog^ݏYVL&zlb+&Wj|-o:&(
+?֭9 7=Ofdώzt <zm4ofE~d[Sd-|I57)D/>$) A,юD=/KRk=1ϙL8*zP &:*z}IO2NIY#7-1Kg}ZzE=jgUz͉hmLtx\|PA(-]cXVw2 i%Hh^Ve)5:#grWaGzډu{GV tA`L[똍* !4hs~;Q{A'tA-L-ٚS<{Fu]3獋^fadY;G
+dr@T;c洖ցA 
+Y-T*'|&<W
+B@ ̉Get1]rǮWykF^JVZ++m^;gcgcU@ҕ~lX6܅w sۮ.v /ayդ2-1O{+Fk]rڂr銁US9wytF]U@-BU@\sږZhZgWqXzy\m=]yJR/Ԭ-=W3*FA}h[L-ի۸@}-ڲD7ʒ
+DZ4uHgHqZY"|Dy;#J!Fq57.E{p2SH R4a굼pHeikJ˲"SR  +nnsCvI475{#&ħKDai<мy rs7kY 5_NjʡOp߯D,6'3|5B}\
+il鄸hsR*@?]ϕ4<]mꕭJf!^G?>}:
+endstream
+endobj
+5426 0 obj
+<< /Type /Page /Contents 5427 0 R /Resources 5425 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5428 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 251.692 null ] >>
+<< /D [ 5426 0 R /XYZ 78.37 808.885 null ] >>
endobj
5429 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 240.733 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 768.829 null ] >>
endobj
5430 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 229.775 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 757.87 null ] >>
endobj
5431 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 746.912 null ] >>
endobj
5432 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 735.953 null ] >>
endobj
5433 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 724.994 null ] >>
endobj
5434 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 714.035 null ] >>
endobj
5435 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 703.076 null ] >>
endobj
5436 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 692.117 null ] >>
endobj
5437 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 681.158 null ] >>
endobj
5438 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 670.199 null ] >>
endobj
5439 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 659.24 null ] >>
endobj
5440 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 648.281 null ] >>
endobj
-5402 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F73 189 0 R /F69 183 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5443 0 obj
-<< /Filter /FlateDecode /Length 2492 >>
-stream
-xڵZ[۸~ϯ0
-4I] %$g2 "E6'<nx.<<i[/xE_|ke)atq}@# T"IBI$mc}z-E2)Y:{jT$/m73UN!0"z=xstY׺[0Zr _(*,M,C38OYtF˦)")y9LYMΓ`pDTJ/;=GbXyT 10;@ˆ2?'<LnYmzuqf[O&I]y]m,-W5<yN,9uW<<f>8sezME*2@'@ϋ%K Ƨ6}cժ7zhǒmCZq)>$
-$Bݫnݴ/m
-(O 8┆֚]~+kn 63LîLaX0PES?4&c. >^t17Dں 0]DĐKzzմy_iz|($FiUB@,̭0׃])O\G' 0SRyhbЀA]P5t}79QqX,s\4$H6 ˆ{8C,#)9K40}gå1Z|l+g64E;B%g
-X6pm]6L:MAc.~B7<ŏb$D,?1K՛iYߋ%CVg=*M?QNP!Q0@)3B~f!
-̚@Q$hs;+/4(/Mm/4ڤ=KqqfaМ?G6DUT(H;|8·;%}S|
-zP&V|z,*1袕sSܧG3:NMoncW Tz~]̒b<g3x9Yj}"ɫHGhF2$@B-oA05U:*۶uFֿp&qŠiMaT67:Ndcnp#<0};m;Xy199CbD6¶`Z{/ +5WX ,cnp:j"S~EC7j6E[cf-[q5z4x}O|>\2^9ez_7FU%]Svuw)q,cջXL
-{ dT b%(j>{,~snO|e\"=wFc粼&iJ'ō}Z(ůc%f9drUd7M[~n>.FW=
-&QS=@PGk`Q>[8=`vn'GU¡n
-o+{A]Pp|gJ|sQk"΢9zbEmy^8E~=2Π ;cqϴ gIWrEA%_Y0GˆGqG:^=,*U!DԛmpU9" Ē)Z(/Srͷ[]<eUsC1y_T!( H)Fsn"ho]88>Z)O֫
-p_l$P$vW]AOL'+sH7ܚ0&7y^Ǿe(H4ҭªrj{&l}q\پL+rdIۦiI[wn
-endstream
+5441 0 obj
+<< /D [ 5426 0 R /XYZ 81.145 637.322 null ] >>
endobj
5442 0 obj
-<< /Type /Page /Contents 5443 0 R /Resources 5441 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5426 0 R /XYZ 81.145 626.364 null ] >>
+endobj
+5443 0 obj
+<< /D [ 5426 0 R /XYZ 81.145 615.405 null ] >>
endobj
5444 0 obj
-<< /D [ 5442 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 604.446 null ] >>
endobj
5445 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 593.487 null ] >>
endobj
5446 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 582.528 null ] >>
endobj
5447 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 571.569 null ] >>
endobj
5448 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 560.61 null ] >>
endobj
5449 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 549.651 null ] >>
endobj
5450 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 538.692 null ] >>
endobj
5451 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 527.733 null ] >>
endobj
5452 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 675.765 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 516.775 null ] >>
endobj
5453 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 664.806 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 505.816 null ] >>
endobj
5454 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 582.674 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 451.674 null ] >>
endobj
5455 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 571.716 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 440.715 null ] >>
endobj
5456 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 560.757 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 429.756 null ] >>
endobj
5457 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 549.798 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 389.096 null ] >>
endobj
5458 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 538.839 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 378.137 null ] >>
endobj
5459 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 527.88 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 367.178 null ] >>
endobj
5460 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 516.921 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 356.219 null ] >>
endobj
5461 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 505.962 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 345.26 null ] >>
endobj
5462 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 495.003 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 334.301 null ] >>
endobj
5463 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 484.044 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 323.342 null ] >>
endobj
5464 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 473.085 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 312.384 null ] >>
endobj
5465 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 462.127 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 301.425 null ] >>
endobj
5466 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 451.168 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 290.466 null ] >>
endobj
5467 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 387.431 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 279.507 null ] >>
endobj
5468 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 376.472 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 268.548 null ] >>
endobj
5469 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 365.513 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 257.589 null ] >>
endobj
5470 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 354.554 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 193.018 null ] >>
endobj
5471 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 343.595 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 182.06 null ] >>
endobj
5472 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 315.724 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 171.101 null ] >>
endobj
5473 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 304.765 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 160.142 null ] >>
endobj
5474 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 293.806 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 149.183 null ] >>
endobj
5475 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 282.847 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 138.224 null ] >>
endobj
5476 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 271.888 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 122.47 null ] >>
endobj
5477 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 260.929 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 111.511 null ] >>
endobj
5478 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 249.97 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 100.552 null ] >>
endobj
5479 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 239.011 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 89.593 null ] >>
endobj
5480 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 228.053 null ] >>
-endobj
-5481 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 217.094 null ] >>
+<< /D [ 5426 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5482 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 206.135 null ] >>
+5425 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5483 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 195.176 null ] >>
+<< /Filter /FlateDecode /Length 1837 >>
+stream
+x[Mo8 W#QPLbוdK&5d8x(QRៃ:|Rl>J>>{} A<|MSß/Js:G!@t΄56
+4@觇W|fM8
+YK,0PH oXO|I/8]ttt\ҷ}1굌E8=[abj0qZ#Ў~AxK6K݈;&V:ͤ&R3q0wBE[<1]z 4WLv%'Ky@ǒ嬌5yY~miNgV"+rn׸pсQLq1
+q$u A4~$rރOsF+3GNSʾe6$~
+iYD滖+Ӹ ݸk~]-@[ s
+YtDeyȫi5;׬|akۄƲrb4Hqk錳&JB}\Yp'<y #OiF?nsfqip\CʂU_%H,2{bQ2WKGSرid5Ri_6MTӗeImH7io9vlYu8۳6bg;Z@VP}<
+endstream
+endobj
+5482 0 obj
+<< /Type /Page /Contents 5483 0 R /Resources 5481 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5484 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 184.217 null ] >>
+<< /D [ 5482 0 R /XYZ 78.37 808.885 null ] >>
endobj
5485 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 173.258 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 768.829 null ] >>
endobj
5486 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 757.87 null ] >>
endobj
5487 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 746.912 null ] >>
endobj
5488 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 730.971 null ] >>
endobj
5489 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 715.031 null ] >>
endobj
5490 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 704.072 null ] >>
endobj
5491 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 673.188 null ] >>
endobj
-5441 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5494 0 obj
-<< /Filter /FlateDecode /Length 1926 >>
-stream
-xZ[o~ϯpxi;mawjb-2<(d>%b$~<9Q͂.~(7t}.X_a0.hY5#T~k&sC5 C`F,Ƅ|苦z*vj{l?|*M?ͺź`ZW^vyE <ggRв%L _&SlE_ ^b?<B0#9q9Q2E rlylK<JmuSuTu pbˡƯidn&~Df7!Va^aVAF);2t+]5K}onJYWm$]r.MEG1MpY4'RCř%FW+Fd"x#Ϋ%Lc!Z#_ws-²8ebw^f![\Ix9"Dt+q_w_0 x5QyVl"93A6.A$ K'$?&~ԫ l N}VkRy Ѿ$#P}wW\~ g]faidC>۰t%@Go{5<(kK7^irB KF{5a :ޢ jXjEq87_H% g<Pu+ w
-Őpu G>F7RpmN4ט&(aNbt0
-BUU|.lҔ7$3AS.\BZsKDN(tC߃ )<9aL+*TMJRKZK{j-F&{~͏Ҁܺۑ @x {}Sv*
-]Durc91qw=7rvY#wI`Мr M/?~b`t'$% 15 Ye/PmfucqmW _uۜ,N*P=bt{cW5a;'ц@Jۂk܁WpJnM&&4"W/Q,kk6m,t7) Nx8O%_o_/6]{GKUHA|< v45nέ%& WQ9CZ뫗)C`6R/F3^G.a#5\kb0waa(&4 c1D)xZWva̘!4
-RC/,tN`x! աj9'=J0240CBgkٚ8:1NX0djB hPh3g>֡Οu| k2K ߓ W9waxdF"|<2%M Sȹ Pg}U{?'jݘ幚  %z玖~"eKrwsZm'%SDTw4!H&T>䪮k=bV5z]pHb5Ǥs7CݳoWv74YYWQ1cьߺr-u+Cٻ0qC9}ӼIΓv8 /cS} WqB޴C'X:-=GӸzn uh;a+R J# waϻS)?ji޾Q,rI)&;wΜ8B1\:]ʮZ5w*th_~H@>`tqф_AA rJMUS
-}#*o`:;; kB^fSd/o׍D
-endstream
+5492 0 obj
+<< /D [ 5482 0 R /XYZ 81.145 662.229 null ] >>
endobj
5493 0 obj
-<< /Type /Page /Contents 5494 0 R /Resources 5492 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5482 0 R /XYZ 81.145 651.27 null ] >>
+endobj
+5494 0 obj
+<< /D [ 5482 0 R /XYZ 81.145 640.311 null ] >>
endobj
5495 0 obj
-<< /D [ 5493 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 629.352 null ] >>
endobj
5496 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 618.393 null ] >>
endobj
5497 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 607.435 null ] >>
endobj
5498 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 596.476 null ] >>
endobj
5499 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 585.517 null ] >>
endobj
5500 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 574.558 null ] >>
endobj
5501 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 527.733 null ] >>
endobj
5502 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 516.775 null ] >>
endobj
5503 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 505.816 null ] >>
endobj
5504 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 494.857 null ] >>
endobj
5505 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 483.898 null ] >>
endobj
5506 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 472.939 null ] >>
endobj
5507 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 461.98 null ] >>
endobj
5508 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 451.021 null ] >>
endobj
5509 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 440.062 null ] >>
endobj
5510 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 429.103 null ] >>
endobj
5511 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 386.264 null ] >>
endobj
5512 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 375.305 null ] >>
endobj
5513 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 364.346 null ] >>
endobj
5514 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 353.387 null ] >>
endobj
5515 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 342.428 null ] >>
endobj
5516 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 331.469 null ] >>
endobj
5517 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 320.511 null ] >>
endobj
5518 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 309.552 null ] >>
endobj
5519 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 298.593 null ] >>
endobj
5520 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 287.634 null ] >>
endobj
5521 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 276.675 null ] >>
endobj
5522 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 265.716 null ] >>
endobj
5523 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 254.757 null ] >>
endobj
5524 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 243.798 null ] >>
endobj
5525 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 232.839 null ] >>
endobj
5526 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 221.88 null ] >>
endobj
5527 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 424.311 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 210.921 null ] >>
endobj
5528 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 370.169 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 199.963 null ] >>
endobj
5529 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 359.21 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 189.004 null ] >>
endobj
5530 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 348.251 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 178.045 null ] >>
endobj
5531 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 307.591 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 167.086 null ] >>
endobj
5532 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 296.632 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 156.127 null ] >>
endobj
5533 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 285.673 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 145.168 null ] >>
endobj
5534 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 274.714 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 134.209 null ] >>
endobj
5535 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 263.756 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 123.25 null ] >>
endobj
5536 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 252.797 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 112.291 null ] >>
endobj
5537 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 241.838 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 101.332 null ] >>
endobj
5538 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 230.879 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 90.374 null ] >>
endobj
5539 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 219.92 null ] >>
+<< /D [ 5482 0 R /XYZ 81.145 79.415 null ] >>
endobj
-5540 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 208.961 null ] >>
-endobj
-5541 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 198.002 null ] >>
+5481 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5542 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 187.043 null ] >>
+<< /Filter /FlateDecode /Length 1592 >>
+stream
+xZr6 )Œ
+!fB{M4_$)I|=a]iR4U |Sm<pѯ2V8dIv1TMZH^Gy':QH;Q ?\=?cZ@Eu^ԡ9HР7R\[ -x
+}0:3WZv.=u΂QT<)#-bާ^& \NBqX3awaD=\B.^to~ŷ:~yZRLhzjF֊C|E*6CzMG[ w
+endstream
+endobj
+5541 0 obj
+<< /Type /Page /Contents 5542 0 R /Resources 5540 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5543 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 176.084 null ] >>
+<< /D [ 5541 0 R /XYZ 78.37 808.885 null ] >>
endobj
5544 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 768.829 null ] >>
endobj
5545 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 757.87 null ] >>
endobj
5546 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 725.21 null ] >>
endobj
5547 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5492 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5541 0 R /XYZ 81.145 714.251 null ] >>
endobj
-5550 0 obj
-<< /Filter /FlateDecode /Length 1631 >>
-stream
-xZnH+t&NOAq0sɷɀ-!@EquYV |$_WޫvnFg.+#f8].436hffF3B5]g&
->+f8) Ib+r[SbџwM}IjyNDHtHDDnLceuN ©(ܚLѱ'\J["BqH[*כ1\~ /ݻn)][vo;2­Y\S42ePv}wF.2Aܡh֖Hjw%ŞM^nmUˬYºmLˢt!R:;-?`5UύdDD>X fYۺڶn [g_2q):|ގs]gM!4uz^~LX6EO 3IJ[ x W SDwtL9Cs>_!jMrs=o2WCލ-Ǡ
-aSqMU;ɛaz!p~g;
-bwJ FnxOMpb=JpN'zMeUSf'LxIxhEO Ȇ'
-D8FtMCiAQ\S⠒o?MW5Y2CW1\S 52oIm)-GiB7JbGIRɛs ySE- B#5T7(@y- O}Lu7'u >Tjy|L'gM?n A5mR7ˢ|;<e>}/ ӣ{tWc#Ã^LCAFj*A۝̠띍Ap
-z'O9["X`*FhHPp?ѝM`y?-fR -n`;#O2EN)JQ4E}xܜ51`O3L!6*/=_Zp4 (}8oOCw5ΨE*)뾰7ϺӶ/5QKKݟC+>ap r/Dyl@Ƚ~‚G"pǓJ+ t;{
-<ę1_Ji
-endstream
+5548 0 obj
+<< /D [ 5541 0 R /XYZ 81.145 703.292 null ] >>
endobj
5549 0 obj
-<< /Type /Page /Contents 5550 0 R /Resources 5548 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5541 0 R /XYZ 81.145 692.333 null ] >>
+endobj
+5550 0 obj
+<< /D [ 5541 0 R /XYZ 81.145 681.374 null ] >>
endobj
5551 0 obj
-<< /D [ 5549 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 670.415 null ] >>
endobj
5552 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 659.456 null ] >>
endobj
5553 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 648.498 null ] >>
endobj
5554 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 741.933 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 637.539 null ] >>
endobj
5555 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 626.58 null ] >>
endobj
5556 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 615.621 null ] >>
endobj
5557 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 604.662 null ] >>
endobj
5558 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 593.703 null ] >>
endobj
5559 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 582.744 null ] >>
endobj
5560 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 571.785 null ] >>
endobj
5561 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 560.826 null ] >>
endobj
5562 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 549.867 null ] >>
endobj
5563 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 538.909 null ] >>
endobj
5564 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 527.95 null ] >>
endobj
5565 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 591.497 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 516.991 null ] >>
endobj
5566 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 580.538 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 506.032 null ] >>
endobj
5567 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 569.579 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 495.073 null ] >>
endobj
5568 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 484.114 null ] >>
endobj
5569 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 473.155 null ] >>
endobj
5570 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 462.196 null ] >>
endobj
5571 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 451.237 null ] >>
endobj
5572 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 440.278 null ] >>
endobj
5573 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 429.32 null ] >>
endobj
5574 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 418.361 null ] >>
endobj
5575 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 407.402 null ] >>
endobj
5576 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 396.443 null ] >>
endobj
5577 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 385.484 null ] >>
endobj
5578 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 374.525 null ] >>
endobj
5579 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 363.566 null ] >>
endobj
5580 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 352.607 null ] >>
endobj
5581 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 341.648 null ] >>
endobj
5582 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 330.689 null ] >>
endobj
5583 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 319.73 null ] >>
endobj
5584 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 308.772 null ] >>
endobj
5585 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 297.813 null ] >>
endobj
5586 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 286.854 null ] >>
endobj
5587 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 275.895 null ] >>
endobj
5588 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 264.936 null ] >>
endobj
5589 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 253.977 null ] >>
endobj
5590 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 243.018 null ] >>
endobj
5591 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 232.059 null ] >>
endobj
5592 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 221.1 null ] >>
endobj
5593 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 210.141 null ] >>
endobj
5594 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 199.183 null ] >>
endobj
5595 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 188.224 null ] >>
endobj
5596 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 177.265 null ] >>
endobj
5597 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 166.306 null ] >>
endobj
5598 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 155.347 null ] >>
endobj
5599 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 144.388 null ] >>
endobj
5600 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 133.429 null ] >>
endobj
5601 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 122.47 null ] >>
endobj
5602 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 111.511 null ] >>
endobj
5603 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 100.552 null ] >>
endobj
5604 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 89.593 null ] >>
endobj
5605 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 5541 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5548 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+5540 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5608 0 obj
-<< /Filter /FlateDecode /Length 1459 >>
-stream
-xZMo6WY@@{ʭ[-'BeɵAK9th/q`i7f&f_ǫN4Jήg?$f8,j5;}6<kO(8rgTnuQMVm۾;7lşզCὦVr6pB5F
-I4**
-RC .a AIC/]m2r[v/)5)fgB<c? *PPi
-h~l!A9<eX'Cɩ[zK p}x;Cc{6cO2^6~R?ֈQT/go˨Gy/TϚ)xǧj" XD<58qHOy3.P'Arf'3Hp􋉠yn95+)V$it<!hKN/fa#FAZ@ ]tuɪL
+<< /Filter /FlateDecode /Length 2661 >>
+stream
+x[r#94w ;Q$'blyX&@@izzP7U^%^H~'ˏd΂_fۃ<r.#/ojsi-l ?t#W>iNxHONჰ~-Dج38//&~T*3q#e`L}'L€2r8Ky񹑅³' Ͽk42 f'yGтhy=ajJ>aƹ =rP(bĈ .{L=^+^ލ+:>#-.K;7e٥e H<s4"L71-?OҵNgc
+I5ŠZS0-Ti @2Xt'qL,pe1?i% ֔1GL<
+>}1+g_Dg-o96?ʧ<I5'"ʏҵcb
+:8bG"ƒHt9Hop7
+XReӔ)zSRB n^"E۹R ܳnN~5܁1,/};$,"pn7M
+Fm)8h3d&EcM6IݹzOaDRU f$]-jEKԛ8d379Pp*hD(F$\̏a0J:Bd84p4r̉ -uC5pzo9EOCY WJǚkebM}hq.ecz1EAq괖&G7H=\%x5O`ˌP#~vQZ\ժKPaT=fշfEb}k>RZ"=_ts!i8--
+緌PZ*k&ly\w vW0YI΀dìbVv𤨥 8E&fAZtNŗo*O7U0nZ0Cs5J$zޠ(Tavpraקs-Ds)gJ|C0PPv6Cc9Чܠ2EKl_7BA/U7\ hǹ&}"
+ÐALe,Bohl8f:j(I]Qm7QT'n'fsmw]t墳OKlî"}>8K]Z Ϥ,p UaSI46 WX׼1L99-RM*43*6U
+4(sg"i!6Wͥ
+Ւ;V;?mzI)Zm<,AgWz StX2 |ʙ뎤|IQ<K[5Wc9#Xϔ2'(%L>‘ĽYw=\w"J_*"5} ynsŽۙitzlW%W]g
+ J2i{1
+ti3iHV$NEK7Z{UcM#|olu%X%fzZ7 5n0]@kfANZ8 =_Ư^,: mRes'}n[bvM[|\O35R_uAJSҷ2*#{R]&F ?OtvLM| T|kiqGzBD挛 Q
+(#yJ |9pV H׺C(O7ssD:Zp :p/Ke:j[6C]#%tͻbszm+Z$P4Li\sH?ysZ
+ ')rIۺٲ@<h._uҟںCZq
endstream
endobj
5607 0 obj
-<< /Type /Page /Contents 5608 0 R /Resources 5606 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /Type /Page /Contents 5608 0 R /Resources 5606 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5609 0 obj
<< /D [ 5607 0 R /XYZ 78.37 808.885 null ] >>
endobj
5610 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 768.829 null ] >>
endobj
5611 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 757.87 null ] >>
endobj
5612 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 746.912 null ] >>
endobj
5613 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 735.953 null ] >>
endobj
5614 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 724.994 null ] >>
endobj
5615 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 714.035 null ] >>
endobj
5616 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 703.076 null ] >>
endobj
5617 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 692.117 null ] >>
endobj
5618 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 681.158 null ] >>
endobj
5619 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 670.199 null ] >>
endobj
5620 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 637.541 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 659.24 null ] >>
endobj
5621 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 626.582 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 648.281 null ] >>
endobj
5622 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 615.623 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 637.322 null ] >>
endobj
5623 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 604.664 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 626.364 null ] >>
endobj
5624 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 593.705 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 615.405 null ] >>
+endobj
+73 0 obj
+<< /D [ 5607 0 R /XYZ 79.37 590.94 null ] >>
endobj
5625 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 582.747 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 417.049 null ] >>
endobj
5626 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 571.788 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 406.09 null ] >>
endobj
5627 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 395.131 null ] >>
endobj
5628 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 384.172 null ] >>
endobj
5629 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 373.213 null ] >>
endobj
5630 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 362.254 null ] >>
endobj
5631 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 351.295 null ] >>
endobj
5632 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 340.336 null ] >>
endobj
5633 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 329.377 null ] >>
endobj
5634 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 318.418 null ] >>
endobj
5635 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 307.46 null ] >>
endobj
5636 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 462.199 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 296.501 null ] >>
endobj
5637 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 451.24 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 285.542 null ] >>
endobj
5638 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 440.281 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 274.583 null ] >>
endobj
5639 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 429.322 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 263.624 null ] >>
endobj
5640 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 418.363 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 252.665 null ] >>
endobj
5641 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 407.404 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 241.706 null ] >>
endobj
5642 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 230.747 null ] >>
endobj
5643 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 385.486 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 219.788 null ] >>
endobj
5644 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 374.527 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 208.829 null ] >>
endobj
5645 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 197.87 null ] >>
endobj
5646 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 186.912 null ] >>
endobj
5647 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 155.347 null ] >>
endobj
5648 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 144.388 null ] >>
endobj
5649 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 133.429 null ] >>
endobj
5650 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 122.47 null ] >>
endobj
5651 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 111.511 null ] >>
endobj
5652 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 100.552 null ] >>
endobj
5653 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 89.593 null ] >>
endobj
5654 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 264.938 null ] >>
-endobj
-5655 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5607 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5656 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 243.021 null ] >>
+5606 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F73 267 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5657 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 232.062 null ] >>
+<< /Filter /FlateDecode /Length 1643 >>
+stream
+x[r8+`ilUS2-)U9i
+? R=RtizlHl-48OE!cw$2Y,KӠI6c`Xt-aeXSEBnrT?
+aD"*@-I;98@B/,eIoXejUkZ'w&YQ4n/kH6mg. ҃dUmfw@srm }U2/Ro"ΎLNTJKf29;z Q0S3ӔKQ S6൨{
+Jj,}V,~1g~q
+(0f *5PsmK_uenmg=9g_!xdr ۬ZMXoV)zJÅX 햋@A"eJog<踬j0]JQ,`ntn\cĺīׁM$JPDxAxsE6KȣF:qҍe2ߛśs77'$Zo?OA@&a%Lt@ҩ٫:`$Ëb5HYAk@!\0cJ7NtAa˃ $ jЄli
+Z{7<Sj ȽNCRBF!iE][V`HϤYB4^Iyɳhk(;Ԛk.
+#) ZkQڢ'_Z0vly.5,@Mhܺ+UF"2iﶠ-$#[m
+)S4Om>AOAyy !SIj~-t$Il5@%48$So#6 6PQ$"(p,}hfn%6X:oțu# \ndSuXi*۱*ıq
+B$J]~Dl
+endstream
+endobj
+5656 0 obj
+<< /Type /Page /Contents 5657 0 R /Resources 5655 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5236 0 R >>
endobj
5658 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 5656 0 R /XYZ 78.37 808.885 null ] >>
endobj
5659 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 768.829 null ] >>
endobj
5660 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 757.87 null ] >>
endobj
5661 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 746.912 null ] >>
endobj
5662 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 735.953 null ] >>
endobj
5663 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 724.994 null ] >>
endobj
5664 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 714.035 null ] >>
endobj
5665 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 703.076 null ] >>
endobj
5666 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 692.117 null ] >>
endobj
5667 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 681.158 null ] >>
endobj
5668 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 670.199 null ] >>
endobj
5669 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 637.395 null ] >>
endobj
5670 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 626.436 null ] >>
endobj
5671 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5606 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5656 0 R /XYZ 81.145 615.477 null ] >>
endobj
-5674 0 obj
-<< /Filter /FlateDecode /Length 2335 >>
-stream
-xڵZ]s}P}Xj5|Ϩ*U{TON^r
-#$E@Zq
-C ϔ@˙nvΙfj񯛿ڱ>}z1 `@AGe\TEۦaFyg{~Z,9op(.`?ޅ0ev2jkֻ7:%"['eNR g.v ڦ&h& MquuX~>}6BsDie^ArO޶Cik_h[#tOX'^HӵJ&ʷYF
-AVָsh=ʋI{1b
-W~ތ`B
-R\GU4Q;2LG*w,Y+pS" V6EU0B\[5J4*8At:l-0ߒۣ@"AF
-m<*-y<|y#\QZKNq#yA{3K2ceA
-,
-?voz8'H1O #h
-UmEAߴWMd| .k0dN^#
-=~@ayǮԈз8NŒJ>.u+ZP<dYtkJ6Ovst'yrߝ`=|gɼ[7>}zf^vq¡PܘQу/
-18kB+1H^P?Aw!MBQPx>k1h:9qiu4],N54 rMqҳB.Q1.Îs
-32šγ C2/L}<G#Jv戡ڪ\z4`78oNkmgnR8cUEϧIM)27U/[N`< y<P8 @Y-YFpU=t/OdKcHFS  Uz2*AyE+z~C#ľnin@/Uwכ.^92Ǘhq!QL3eYZ7T:QS3O<x~ btwQ˲E+G(0
--#XE ~_p4"K0rIIBDO ]aX*)@Cm-[9Fܰ_ɾI:)Gݦ4)-,oM ゞR񨋹+o7a\U˅6E4
- &SA@) (Uݡ(Ol͏*((#y:vUG^* .389,TK࠽uǰ,vt>Yu҄yQF'KQ$6K bs5c:vBrCਇuo3F;q&>WP/
-dj.}>,I\9wp|h."~r,?âl"';6cyAJUv)<Fke2Ͻ}/܁6s)ֆNQҹ^[#B7f;IUvx?_
-5H?vyTUQ&E(ߤUT~ F
-hA/$0NMiPZ:;~F8Ow_Yрlthd/
-endstream
+5672 0 obj
+<< /D [ 5656 0 R /XYZ 81.145 604.518 null ] >>
endobj
5673 0 obj
-<< /Type /Page /Contents 5674 0 R /Resources 5672 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5656 0 R /XYZ 81.145 593.559 null ] >>
+endobj
+5674 0 obj
+<< /D [ 5656 0 R /XYZ 81.145 582.6 null ] >>
endobj
5675 0 obj
-<< /D [ 5673 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 571.641 null ] >>
endobj
5676 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 560.682 null ] >>
endobj
5677 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 549.723 null ] >>
endobj
5678 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 538.764 null ] >>
endobj
5679 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 527.806 null ] >>
endobj
5680 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 516.847 null ] >>
endobj
5681 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 505.888 null ] >>
endobj
5682 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 494.929 null ] >>
endobj
5683 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 483.97 null ] >>
endobj
5684 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 473.011 null ] >>
endobj
5685 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 462.052 null ] >>
endobj
5686 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 451.093 null ] >>
endobj
5687 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 418.289 null ] >>
endobj
5688 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 407.33 null ] >>
endobj
5689 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 396.371 null ] >>
endobj
5690 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 385.412 null ] >>
endobj
5691 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 374.453 null ] >>
endobj
5692 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 363.494 null ] >>
endobj
5693 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 352.535 null ] >>
endobj
5694 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 341.576 null ] >>
endobj
5695 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 330.617 null ] >>
endobj
5696 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 319.658 null ] >>
endobj
5697 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 308.699 null ] >>
endobj
5698 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 527.736 null ] >>
-endobj
-77 0 obj
-<< /D [ 5673 0 R /XYZ 79.37 502.281 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 297.741 null ] >>
endobj
5699 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 327.642 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 286.782 null ] >>
endobj
5700 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 316.683 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 275.823 null ] >>
endobj
5701 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 305.724 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 264.864 null ] >>
endobj
5702 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 294.766 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 253.905 null ] >>
endobj
5703 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 283.807 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 242.946 null ] >>
endobj
5704 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 272.848 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 231.987 null ] >>
endobj
5705 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 261.889 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 221.028 null ] >>
endobj
5706 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 250.93 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 210.069 null ] >>
endobj
5707 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 239.971 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 199.11 null ] >>
endobj
5708 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 229.012 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 188.152 null ] >>
endobj
5709 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 218.053 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 177.193 null ] >>
endobj
5710 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 207.094 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 166.234 null ] >>
endobj
5711 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 196.135 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 155.275 null ] >>
endobj
5712 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 185.176 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 144.316 null ] >>
endobj
5713 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 174.218 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 111.511 null ] >>
endobj
5714 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 163.259 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 100.552 null ] >>
endobj
5715 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 152.3 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 89.593 null ] >>
endobj
5716 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 141.341 null ] >>
-endobj
-5717 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 130.382 null ] >>
+<< /D [ 5656 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5718 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 119.423 null ] >>
+5655 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5719 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 108.464 null ] >>
+<< /Filter /FlateDecode /Length 2409 >>
+stream
+x[Ɏ8WEF7 a s}9_E;
+胪E7gr|iq"f@8}&E$NF1I+|-tZ}gySdU
+M $2)ePPCs>WYCZߣI>-I#iIDA{Liꑴ=$yVWWwg zp?Dc˙%߯- kg5 ͜[ IZ)͟ޚ=,:]zVi^b
+0i&}E # #eZ9Z'D!w(sHO5xH#Qp2[`BFdkI%5MrUw]˻ǡmtI|*|qSn!,w6arV35@]z߁t5~)1FHVJw $
+䕟(نk1>uB5 T#鮇uj_g\&߇8Hj&BߏyUJzJUɴ0à)!=!&u
+Jr[!B?{9Rp$7p*Q  bNRn1dj^yx{L9Bڻ[S 'Jrf-=?e[몲VFr 4|g*}H0cp4@OX$i1(I&ɺ@Q} I
+bSڈ++}( ێ#uΆ=XJ
+,YiN
+/a
+s?̶_=0^ 3ˬ KdJ$?&K] #i>4䯫:yZ|LiIҼ&-8FCI~0B6,7^]n^}}qk8Q;[Wh95I-3?#cF KhqrZ3`;]ę-=nԫW2
+endstream
endobj
-5720 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 97.505 null ] >>
+5718 0 obj
+<< /Type /Page /Contents 5719 0 R /Resources 5717 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
-5672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+5720 0 obj
+<< /D [ 5718 0 R /XYZ 78.37 808.885 null ] >>
endobj
-5723 0 obj
-<< /Filter /FlateDecode /Length 1475 >>
-stream
-xZn6}Wؗ2 o
-
-\Yɪ+K4o/ex
-WB4~mʯF 6\;OQy_ci E*j 5TyT)+u7X$iWG,i$x,"?u$bdig]{r<&iVÎA>\E&`Z_C݋ R8Y!|g?!z
-N>L{>)* pP8]E1NP`=7(eNtRHXܱK!qʉ28-:jO
-endstream
+5721 0 obj
+<< /D [ 5718 0 R /XYZ 81.145 768.829 null ] >>
endobj
5722 0 obj
-<< /Type /Page /Contents 5723 0 R /Resources 5721 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5718 0 R /XYZ 81.145 757.87 null ] >>
+endobj
+5723 0 obj
+<< /D [ 5718 0 R /XYZ 81.145 746.912 null ] >>
endobj
5724 0 obj
-<< /D [ 5722 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 735.953 null ] >>
endobj
5725 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 724.994 null ] >>
endobj
5726 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 714.035 null ] >>
endobj
5727 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 703.076 null ] >>
endobj
5728 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 692.117 null ] >>
endobj
5729 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 681.158 null ] >>
endobj
5730 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 670.199 null ] >>
endobj
5731 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 659.24 null ] >>
endobj
5732 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 648.281 null ] >>
endobj
5733 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 637.322 null ] >>
endobj
5734 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 626.364 null ] >>
endobj
5735 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 615.405 null ] >>
endobj
5736 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 604.446 null ] >>
endobj
5737 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 593.487 null ] >>
endobj
5738 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 582.528 null ] >>
endobj
5739 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 571.569 null ] >>
endobj
5740 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 560.61 null ] >>
endobj
5741 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 549.651 null ] >>
endobj
5742 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 538.692 null ] >>
endobj
5743 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 549.762 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 483.954 null ] >>
endobj
5744 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 538.803 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 472.995 null ] >>
endobj
5745 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 527.844 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 462.036 null ] >>
endobj
5746 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 516.885 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 451.077 null ] >>
endobj
5747 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 505.926 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 440.118 null ] >>
endobj
5748 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 494.967 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 429.159 null ] >>
endobj
5749 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 484.008 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 388.361 null ] >>
endobj
5750 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 473.049 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 377.402 null ] >>
endobj
5751 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 462.09 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 366.443 null ] >>
endobj
5752 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 451.132 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 355.484 null ] >>
endobj
5753 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 440.173 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 344.525 null ] >>
endobj
5754 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 429.214 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 291.771 null ] >>
endobj
5755 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 418.255 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 221.1 null ] >>
endobj
5756 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 407.296 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 210.141 null ] >>
endobj
5757 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 396.337 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 199.183 null ] >>
endobj
5758 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 385.378 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 188.224 null ] >>
endobj
5759 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 374.419 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 177.265 null ] >>
endobj
5760 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 363.46 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 166.306 null ] >>
endobj
5761 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 155.347 null ] >>
endobj
5762 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 144.388 null ] >>
endobj
5763 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 133.429 null ] >>
endobj
5764 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 122.47 null ] >>
endobj
5765 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 111.511 null ] >>
endobj
5766 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 100.552 null ] >>
endobj
5767 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 89.593 null ] >>
endobj
5768 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5718 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5769 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 243.021 null ] >>
+5717 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5770 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 232.062 null ] >>
+5772 0 obj
+<< /Filter /FlateDecode /Length 2229 >>
+stream
+x[n#7+!" ,[ g߂\Sj 9h$XX ᧿No/ﯗϫ'd ?_{#nN$N_~\εuۂJd%2T99OP!"g|?~(P-ʿ,tΛwu` 3aDd
+E4A|G|_n鮌ؚbDQ;vvG /MRV㞡}.T"{%K?}qR oG~H)W5o?,УvrahM7B9 (V(~uJ+cȴNMq6ɐvZ ȘIrt(
+3|2Vl cˤa`F 'l~]ORţE2c43D4-°<$OLjSsWAZa@LRO*sA|k4Mo8<]_bVNw*kgCpV8g ra&15^2]&3G.3=|:'W%7#su2N㘞}P:2@Rm
+'po;yl2FYɭ2SfL?*Q~7L^1Z.=R$nf`EGƒθVFZvH\Ώ;b)rˉT
+JFrMh)AW'd>e8#;%\ L1Q2&KsZQx~1
+YF֌{A2:v 4_*ev$Ÿ4 ѨybjF|QF{x#uRӡfzh+/\l@$}:Iv6H wr.+3k lɑimTa,bJpϵ^nWœs pzSFzXz]8T甬BaѺΨ)){m$F]sTl}Vܽg~~Y VPyd+,GKX#z''l2ZW^㽥Aָ´)w:z<@UX1}.@HDG({s|6Zˡ(fPl
+endstream
endobj
5771 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 221.103 null ] >>
-endobj
-5772 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 210.144 null ] >>
+<< /Type /Page /Contents 5772 0 R /Resources 5770 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
5773 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5771 0 R /XYZ 78.37 808.885 null ] >>
endobj
5774 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 768.829 null ] >>
endobj
5775 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 757.87 null ] >>
endobj
5776 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 746.912 null ] >>
endobj
5777 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 735.953 null ] >>
endobj
5778 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 683.608 null ] >>
endobj
5779 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 672.65 null ] >>
endobj
5780 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 661.691 null ] >>
endobj
5781 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 650.732 null ] >>
endobj
5782 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 610.343 null ] >>
endobj
5783 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 599.384 null ] >>
endobj
5784 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 588.425 null ] >>
endobj
-5721 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5787 0 obj
-<< /Filter /FlateDecode /Length 2143 >>
-stream
-xڵZKoFϯ ! d8B@AK-kԒ8c۷ZlYŤD~Ud<O?}ç&M,'d%DM$K2Yl&
-,_>H3HLAwe'mJP>O>Nf<'K{k {
-^X>RX@ EMJŸ)F̱>%۪l첱8 LjU6uX"FRYh~ Yy&ʢ¾9ɺ//:H#렢,\mV<H{kncrIMܗ_.&uQ_V q0~oY"+dv^7,?g(EqoIKpQA'ɸn"@ٕnV(- kFIi$ iG~*R4G 4I̼,YF/yCtb9]υ/HOrd
-!:,B !w,
-
-1=B_Pϸ,G,-u>Ct EP21de
-m=D)'0;!ڝ}G8>li6U{SwKQ>+bV3,Lu<o]*تJ6b1^š9 G]Vp\ws<mç,xV܆oKUAkUq0DG͍FDT! {kC(}7G>Z<[?'m qI˕DDRTA>ESn^[ԻnT(U^K;.d
-=ަK;??\#1Y%x5Y(f~-C+LKBBlVS 90 V pOx؀ўk::RzޭG2>^
-?R -?Md>FnX@j()hlj _,6^O]w
-ͮa_gM{iQ9}p'G@0;aV,I yiһ]VMO]t=";f[/Y;
-e&ԕg="N&?8H#ݣ81&q_ IO.Aoo_CvBA\AAs-7bH=y
- t֡M+c7;OlOCs#pSsbNIyɩQhf!6q+}>Ud(`lgR1" SO:QXQKF}V'>6&5 O
-agXT451agx
-` :.8@{_pyQ,nbCi?B0q4Fl|Ulū_/Aۡ%<FvJ hv #-LBGr| ֻE6 ?.>P
-endstream
+5785 0 obj
+<< /D [ 5771 0 R /XYZ 81.145 577.466 null ] >>
endobj
5786 0 obj
-<< /Type /Page /Contents 5787 0 R /Resources 5785 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5771 0 R /XYZ 81.145 566.507 null ] >>
+endobj
+5787 0 obj
+<< /D [ 5771 0 R /XYZ 81.145 555.548 null ] >>
endobj
5788 0 obj
-<< /D [ 5786 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 544.589 null ] >>
endobj
5789 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 533.63 null ] >>
endobj
5790 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 522.672 null ] >>
endobj
5791 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 725.046 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 511.713 null ] >>
endobj
5792 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 714.087 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 500.754 null ] >>
endobj
5793 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 703.128 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 489.795 null ] >>
endobj
5794 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 692.169 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 478.836 null ] >>
endobj
5795 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 681.21 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 467.877 null ] >>
endobj
5796 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 670.251 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 456.918 null ] >>
endobj
5797 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 659.292 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 445.959 null ] >>
endobj
5798 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 648.333 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 435 null ] >>
endobj
5799 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 637.374 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 424.041 null ] >>
endobj
5800 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 626.415 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 413.083 null ] >>
endobj
5801 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 615.456 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 402.124 null ] >>
endobj
5802 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 604.498 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 391.165 null ] >>
endobj
5803 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 593.539 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 380.206 null ] >>
endobj
5804 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 582.58 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 369.247 null ] >>
endobj
5805 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 571.621 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 358.288 null ] >>
endobj
5806 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 560.662 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 347.329 null ] >>
endobj
5807 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 549.703 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 323.567 null ] >>
endobj
5808 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 538.744 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 312.608 null ] >>
endobj
5809 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 527.785 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 301.649 null ] >>
endobj
5810 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 516.826 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 290.69 null ] >>
endobj
5811 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 505.867 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 260.493 null ] >>
endobj
5812 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 494.909 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 249.534 null ] >>
endobj
5813 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 483.95 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 221.1 null ] >>
endobj
5814 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 472.991 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 210.141 null ] >>
endobj
5815 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 462.032 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 199.183 null ] >>
endobj
5816 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 451.073 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 188.224 null ] >>
endobj
5817 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 396.322 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 177.265 null ] >>
endobj
5818 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 385.363 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 166.306 null ] >>
endobj
5819 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 374.404 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 155.347 null ] >>
endobj
5820 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 363.445 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 144.388 null ] >>
endobj
5821 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 352.486 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 133.429 null ] >>
endobj
5822 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 341.527 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 122.47 null ] >>
endobj
5823 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 300.717 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 111.511 null ] >>
endobj
5824 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 289.758 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 100.552 null ] >>
endobj
5825 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 278.8 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 89.593 null ] >>
endobj
5826 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 267.841 null ] >>
+<< /D [ 5771 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5827 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 256.882 null ] >>
-endobj
-5828 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 204.117 null ] >>
+5770 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5829 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 133.431 null ] >>
+<< /Filter /FlateDecode /Length 2153 >>
+stream
+x[Ɏ6WCVq mk䚜א*E'An~z?.w'Ɉd
+//qin/F Ƶ|ysǹ|po}RpO\,sZ] eZ#(_wu@#û.o ;1"/ûxkliWu$'VYSѤ8(Ѝ"9Wb~eTſ;|}Y]{  $QQ2\t= e3N:&
+z[$0
+UCe)5LvH'$ECMCX,%z X_Y`
+1o oae)҉Ԙ-RMd2 \Jp4j9FAOA$^ VD7tv(V1#,%>""UMEmOPi$3+_cϥJ#\P-):_o0+hˑl+Y$A1oN7w$%nfn;-iwH^+v v gۏ7%KATcH}D܏%xZqM&yGDenld%80x&II LpCTjKxl B4 kni򓲘[^sT4t ʚ(9<'iƫǮ6<f萞pIrSQWzj֛s)x<ݤ\o8hA26NH
+2y^VZ%N5%4gߺU1hj*&ȨoI:JS~5X:A1cV %%I(&]'fJ5wfDlDn2s&{L&:x2쮫Tǝ޳wl8 !PE id0J:OIÕX.lmuf&y1ĴxBKa.5ZK);\/ҁQw&h7`s3Q;_UzDPCdźݽ7BO;c9BˉY|l4Y u06>_)BBh` իikF&~w ?:D!dw3֛!M<,'GN~*Qyȏr}ie2\ڹ.&Xfͺ{Q@㒀Y#%m0:#FeZ̄Sɠ3I3t/H9HCAgHegDJِ\)RP&Fn u+-ץZ;u?)(| jyߍ|}0/й⼳a2,CIxzkiN1/Tu v^p(ߠd~tH9i{y-bE f:mL@(&%Ak6FCҶl,MvlTAVKK#tH )w}\]Oޫ c.r._D!=ƞz8\X`@ 2xC:#i;'@=eNО>' ``V*Hy,NYOI:Sޭo/%Ec鄃KP)JC0x#gB#`jRͶ68#}rme !5N3Q%0RhlD?`WRh&%cJH_ߵ|WԺB,b4N2E{[nr8R9 -CҶ@0Փ N4t}X#ׇ՞V
+endstream
+endobj
+5828 0 obj
+<< /Type /Page /Contents 5829 0 R /Resources 5827 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
5830 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5828 0 R /XYZ 78.37 808.885 null ] >>
endobj
5831 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 768.829 null ] >>
endobj
5832 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 757.87 null ] >>
endobj
5833 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 746.912 null ] >>
endobj
5834 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 735.953 null ] >>
endobj
-5785 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+5835 0 obj
+<< /D [ 5828 0 R /XYZ 81.145 724.994 null ] >>
endobj
-5838 0 obj
-<< /Filter /FlateDecode /Length 1955 >>
-stream
-xZ]o6}ϯp1f8hM>"hvv Vlumɵ`>(Rq_E_,=$ﹼ4-GtDo7oIb&CtF&ьPFכѿNJZ{^i;JZ$! K?0!or=o'7q9{nVn6v=ؘ
->UQ(o2JO*11mz̤iUBMbsn]M项)jjOK D~(mh.Ε"p#~pm9Mt=dzs FC殭"]Za+I޶էYMT
-ȵ'5'R0߁ׁⵧ#Q1D 1(;13F~{kB%qE p.HnrIEI)
-KՀDo8,T"[Zíf,wG:L
-B9,ssq6OY'*mEPn,Ff$ƥt רּ&jV3iƧ~6p=W)L *C4ǍAoUֲtaE߽/ UOx.H#p*u7]i]|`
-Èwtʲ_59@͋QM(W!41=&QJb-cTɍNLe1u`U-a ]de&[Ţԅ)2@Z5qTl hyV"՛>1@b>fEMw賬u-l>֑6ǁ`חoYsos܌N)V֫18ׅhj]ni1icϫrlڴDqK,qu,vbDl:ݷTs:V?UC͓rS."Ey\K
- ="EQM$6$B9J)5écQyӼ&ehW:pڍ ~}p9Dg^np<XQAaDxBƫeDZ43(GhG-}[tĎ<H0J8oY3i\Y+qE:U5>}Su^ds|]i/Wx_I qu<
-8a@d'"H/r͋j[ɴoUޟd9e~/,5c)q,Ct?
-UD0Q -`-T?O NU[azݺCtXJ+h R^<}OEY 때
-ڸͩ]:DmO^YjnqC&_,٩+E(xGAQ %-C`( x.Guvc-a]r 7123DIw!µ? Xۮ:gP#tIL~$4!:(vdB݇"ڝFyo4m#H p2I"}\>Bm+WXv\RL]1M S/sW9AT2C4:`qwEr7(%wtޱ殆agK=[\14B@6/=^c&!;r庺w+ܿn$4UtU!ʫU9#tL÷*Ψj@Z/WЊa2DNc.78mni8M>99IwMFd{>+̻ß&`J~
-bLQ;4en>ϔ2Za vB祊F8$b(!a| mNo/$
-endstream
+5836 0 obj
+<< /D [ 5828 0 R /XYZ 81.145 714.035 null ] >>
endobj
5837 0 obj
-<< /Type /Page /Contents 5838 0 R /Resources 5836 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5828 0 R /XYZ 81.145 703.076 null ] >>
+endobj
+5838 0 obj
+<< /D [ 5828 0 R /XYZ 81.145 692.117 null ] >>
endobj
5839 0 obj
-<< /D [ 5837 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 681.158 null ] >>
endobj
5840 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 670.199 null ] >>
endobj
5841 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 659.24 null ] >>
endobj
5842 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 648.281 null ] >>
endobj
5843 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 637.322 null ] >>
endobj
5844 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 626.364 null ] >>
endobj
5845 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 615.405 null ] >>
endobj
5846 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 604.446 null ] >>
endobj
5847 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 593.487 null ] >>
endobj
5848 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 582.528 null ] >>
endobj
5849 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 571.569 null ] >>
endobj
5850 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 560.61 null ] >>
endobj
5851 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 549.651 null ] >>
endobj
5852 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 595.94 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 538.692 null ] >>
endobj
5853 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 584.981 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 522.752 null ] >>
endobj
5854 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 574.022 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 511.793 null ] >>
endobj
5855 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 563.063 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 500.834 null ] >>
endobj
5856 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 522.674 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 489.875 null ] >>
endobj
5857 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 511.715 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 478.917 null ] >>
endobj
5858 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 500.756 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 467.958 null ] >>
endobj
5859 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 489.797 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 456.999 null ] >>
endobj
5860 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 478.838 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 446.04 null ] >>
endobj
5861 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 467.879 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 435.081 null ] >>
endobj
5862 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 456.921 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 424.122 null ] >>
endobj
5863 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 445.962 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 413.163 null ] >>
endobj
5864 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 435.003 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 402.204 null ] >>
endobj
5865 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 424.044 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 391.245 null ] >>
endobj
5866 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 413.085 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 330.473 null ] >>
endobj
5867 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 402.126 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 319.514 null ] >>
endobj
5868 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 391.167 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 308.555 null ] >>
endobj
5869 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 380.208 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 277.671 null ] >>
endobj
5870 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 369.249 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 266.712 null ] >>
endobj
5871 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 358.29 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 255.753 null ] >>
endobj
5872 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 347.331 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 244.794 null ] >>
endobj
5873 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 336.373 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 233.836 null ] >>
endobj
5874 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 325.414 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 222.877 null ] >>
endobj
5875 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 314.455 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 211.918 null ] >>
endobj
5876 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 303.496 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 200.959 null ] >>
endobj
5877 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 292.537 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 190 null ] >>
endobj
5878 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 281.578 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 179.041 null ] >>
endobj
5879 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 270.619 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 168.082 null ] >>
endobj
5880 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 259.66 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 157.123 null ] >>
endobj
5881 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 235.898 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 146.164 null ] >>
endobj
5882 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 224.939 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 135.205 null ] >>
endobj
5883 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 213.98 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 124.247 null ] >>
endobj
5884 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 203.022 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 113.288 null ] >>
endobj
5885 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 172.824 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 102.329 null ] >>
endobj
5886 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 161.865 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 91.37 null ] >>
endobj
5887 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5828 0 R /XYZ 81.145 80.411 null ] >>
endobj
-5888 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 122.473 null ] >>
-endobj
-5889 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 111.514 null ] >>
+5827 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5890 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 100.555 null ] >>
+<< /Filter /FlateDecode /Length 1726 >>
+stream
+x[n6+!o ή]R$RㄣBpghZ9Y¦#0=<^:pzAMN ';%SO>I潏>^?a td& fQ 6#0: 7w{x8|#.,f J$P06p煏G: BM1QL{@*R1Q4j@$QV`)Ic*%$I"H9yB._%<^{7aռ%$W"7j_e 3 MMZ\DPt81s+ sČIRx)CN[ʄ(012DwyfOo͛l6[AKR\l/?HVu"JlhSVte'()xx|ڟAgU/9g?Ng9~s9^F{.pwӪKWu1tҀs52"eTuƽ!kj7a:weqT"}xl;:D p#e:Q%tgybZ+ S٩ڦc"*hv'('ꇒŗdyC65+!|%%VCGQXQJ<O
+,r|8H#ދ; @oWH4!\T3bPe(FxgH,IZZiII yZ]UsĦД|"PX Fr;M}h(Dr0LIKhzC򺿞޵}*w&Ja_o8i+ClHʳ5k7i̦r+zjģ zM VQB*Ei9!%[, Oiu_lXcwqCbfWTuHjJR ;
+-
+Lh&5:`*텕di^@ƒӴH
+iZ*J#xRâ6!j\ H!ݣQ 6sCޚW^ ow\yD5R(L"ݣ?L? &5JLIϦސbEC
+:CqؑE53T݇J00U5)X8NLt@m.KLv#9 =6 >6Lmb䚣ܠܾ+ʲ2@fxdM įJ(A3 -^r> O
+bسݎ"C'N CG:H-|$o}ݕ&֭$;zlXKFl~s*Æ׶Xܲx]q&> J xՠ^ ]N[<XW&M? 9"8GF
+m@ąP]WM!bb@t#E\K`he<
+endstream
+endobj
+5889 0 obj
+<< /Type /Page /Contents 5890 0 R /Resources 5888 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
5891 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5889 0 R /XYZ 78.37 808.885 null ] >>
endobj
5892 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5836 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5889 0 R /XYZ 81.145 768.829 null ] >>
endobj
-5895 0 obj
-<< /Filter /FlateDecode /Length 1872 >>
-stream
-xڽY[oF~}0-hPD"$8k :r/93ՄN
-~ū#&$ >`D331v3u◿ՍN&$Z HELȬN=u3no='QI#1 7Ĥ{VJq5>-趵u?fh%J/E>n6?Z a^MX9\5hQ!+/ƉG?Y?{oxo~-3Մke6p umQ{G^kf }[gRm%2j%8B4:õL5EE`~%FӜHIZ3!]Y[Ӧzr[Whi#xט'q}bP89EXX@8%P<b.r]TnV (bí4N}]}/%*Ξ!-<jjM"фˋ0]s&~YMQ 6("ܫvv&+ajQޏx;I n
-cLc?ŠI,| _@ vL]ᲹJMߗ݃eYXu@Ҿa_&orW]:
-YŪ_+n.-Ҥ1ؔEƒP=y+ih?*6n _9=KfX+v۠7fe%3A 'UF bМ:RF[ߗt}hԍ2{ظݩClAra}&$( Fh|MRTF}E cl,UuٸDؿ38tUʛMGlMW:[yʀf5ޟ_1V!ўXiC,ceIq<?=dod#S$4k5-mGG#ykЭdq~6{ywe.7E<׈"W wlHy7cաsģv8
-nB]ժ}3?D; p)'`)&?c@,h="8^):$
-endstream
+5893 0 obj
+<< /D [ 5889 0 R /XYZ 81.145 757.87 null ] >>
endobj
5894 0 obj
-<< /Type /Page /Contents 5895 0 R /Resources 5893 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5889 0 R /XYZ 81.145 746.912 null ] >>
+endobj
+5895 0 obj
+<< /D [ 5889 0 R /XYZ 81.145 735.953 null ] >>
endobj
5896 0 obj
-<< /D [ 5894 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 724.994 null ] >>
endobj
5897 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 697.546 null ] >>
endobj
5898 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 686.587 null ] >>
endobj
5899 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 675.628 null ] >>
endobj
5900 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 664.669 null ] >>
endobj
5901 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 635.821 null ] >>
endobj
5902 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 624.862 null ] >>
endobj
5903 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 597.327 null ] >>
endobj
5904 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 586.368 null ] >>
endobj
5905 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 575.409 null ] >>
endobj
5906 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 564.45 null ] >>
endobj
5907 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 553.492 null ] >>
endobj
5908 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 542.533 null ] >>
endobj
5909 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 531.574 null ] >>
endobj
5910 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 520.615 null ] >>
endobj
5911 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 509.656 null ] >>
endobj
5912 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 498.697 null ] >>
endobj
5913 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 487.738 null ] >>
endobj
5914 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 476.779 null ] >>
endobj
5915 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 465.82 null ] >>
endobj
5916 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 454.861 null ] >>
endobj
5917 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 443.903 null ] >>
endobj
5918 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 432.944 null ] >>
endobj
5919 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 421.985 null ] >>
endobj
5920 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 411.026 null ] >>
endobj
5921 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 400.067 null ] >>
endobj
5922 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 389.108 null ] >>
endobj
5923 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 378.149 null ] >>
endobj
5924 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 367.19 null ] >>
endobj
5925 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 356.231 null ] >>
endobj
5926 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 345.272 null ] >>
endobj
5927 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 334.314 null ] >>
endobj
5928 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 323.355 null ] >>
endobj
5929 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 312.396 null ] >>
endobj
5930 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 301.437 null ] >>
endobj
5931 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 290.478 null ] >>
endobj
5932 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 279.519 null ] >>
endobj
5933 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 268.56 null ] >>
endobj
5934 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 257.601 null ] >>
endobj
5935 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 246.642 null ] >>
endobj
5936 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 235.683 null ] >>
endobj
5937 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 224.724 null ] >>
endobj
5938 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 213.766 null ] >>
endobj
5939 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 199.183 null ] >>
endobj
5940 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 188.224 null ] >>
endobj
5941 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 177.265 null ] >>
endobj
5942 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 166.306 null ] >>
endobj
5943 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 155.347 null ] >>
endobj
5944 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 144.388 null ] >>
endobj
5945 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 133.429 null ] >>
endobj
5946 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 122.47 null ] >>
endobj
5947 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 111.511 null ] >>
endobj
5948 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 100.552 null ] >>
endobj
5949 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 89.593 null ] >>
endobj
5950 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 5889 0 R /XYZ 81.145 78.635 null ] >>
endobj
-5951 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 102.331 null ] >>
+5888 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5952 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 91.372 null ] >>
+5954 0 obj
+<< /Filter /FlateDecode /Length 2988 >>
+stream
+x[;#Wth I.">v*W[];],~,[|e/<|{zf ,Xi/E,.0gV,߾/?rěWWɷ/ZI$ ^8מsqrsqhO#6{;F*į0z>~ &hf; J
+rܫ@v 5 +*s:O[!݉<Ӵ3cUQR"4""g;әe{Hfс n[.vBp\Q.eڝ[_Dz/J׌_'t*:#FuZp:>'D?F]ZμSEg?zq ;1/&YIGGyiFEDA[:dg'4#t*DŽ)PnP9"y;+pJ;w9(lKRdQti1:8[bHWHPaFHa Z8(7H(r8pSaQx$b٨|[x8q|w$jiFJ~mMdyZ,oyξܽ}12K4, q^2vF!zѠ0c0*΄ {wDEPW9a@=0f?!=͈e|xs73<LPd{Ʊ;B+}K RGOO]%;3RwFmيi.oU݋Kiר9-ηaE-qˇR
+@ FжNn!w2-dFJpVLDb*ʟ=' I!m21f%Ze+r
+Ჶ˹w#qygA1>0 ! }
+RT6+;w[7qn&eB
+[wNjR2@c{Ga%ĦfE8CBy|C*ɜ6=4p;A *QqhL{6v-RHY^ѱ4GrHO 0a]Wvy& +X %ԽG zf6,@ W*b 'fzB( f)TKiٯ[lmEuVH?/NNtq7%Ws= IyX IZXo+lO
+6Y*'vj=UBUpضF/qږ"KsSI+"݉eK1j~fx-
+-Vp[)(#h,wvOGުJ| !8Wu:09S'fBLqnKҀgka֌*9zGz<^Z{^ @VզХBzIŬZ-$oHII^B GLĒQk\P;VOʱ1i&X-F a" $у?EafXl|A gξ,6meޥA1^at+x+퓾áo B6vZ("굷s ~0,a DGrmI}OX:JB!ozS:7=7^ES]JJ@xfQF:5^\#F@oI! ZrN*k3t0.콨xjku=Q:162ieI a ^¦Fg^"{Y&3݉4iRМʓf]ɍBhзe+)O24Դy.VOGX)5:D1Iՠ(Gip-k^)9^HT-v^sn&Rk y9) svo~?ۓ5z>МO<#NvعZ@<',_7 ''ZJf<zm#iI%vvP!Y =i;⑆?a<r}A1K#<6O"蜩FUxg+?¸_5؍g<܁ rjFDrczoIuQpƛLF:[95ZW"'5(Vz5u"q6vUSb^5EdnD;į V'B^}w<ZWC`v4F]zBGS3Sj&xYLui[RMk-P ۝My./vޟB11uut((~|{pB~c8{~k˟O&=_ tLx(kVݘZ_C[*sEcpP-H7)Ue$;44/9~Tɺl{b@:A% a,ϡU1G"]|uJc'I<7^FYKpo_^bp)қbătgx~19D!et;z~^4&~x6릶ݳ3 dOj-Bk|wSN
+endstream
endobj
5953 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 80.413 null ] >>
+<< /Type /Page /Contents 5954 0 R /Resources 5952 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R /Annots 5984 0 R >>
endobj
-5893 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+5984 0 obj
+[ 5951 0 R ]
endobj
-5956 0 obj
-<< /Filter /FlateDecode /Length 1423 >>
-stream
-xڽYMoFWȡ6ovvS@E
- dȤ*q #SZ#'!"->ۙ73KY\x'¬{?;vXh<*N/
- pP^%ߧzwlCE}
-GGmh0z9u~0G>84ܱYUOfAx,SK,?we
-˜(j$Ml&ЧBFJ UUTbvլ''fHOUH]GM{kF8q-cfkqZ(j+)gൣv^r</ɉuSwt^)ϲZ^M mAn}w dCYpA VxImSw?Wz]?/.AE=\ydr<t咽kkCJ)zY39y< '5" φx({cx}Vwuofb^Ϧ<i^\ә.IsҜ籆Hl*+<!<3O*\U~)yVosPmc3)7@B&/ -2P. DO/B Qb7MJ}QVU7+pа +)-$C/./<?VWmn7[|p9c4DaE✡t~IرG%qNч<Q;9Tc^Дn@GO-ySSg{aDw"ޢ,{w#)Qce]~.S^X%Z#ze 7Qy!N|OIK^pmX4Cm`hrR7d=Qӭo ](ڱV9}^YI~vcW?eiUުR{WCk ڥ`4
-fnJk%/Rt++ z[*En/)'IJij# ͶJ`:'qloYuY7bᕰ2
-{S7.VWdЄRv7R_l'f]H(ZR;n
-ӽs4
-endstream
+5951 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 357.826 270.061 368.253 282.791 ]/A << /S /GoTo /D (Hfootnote.13) >> >>
endobj
5955 0 obj
-<< /Type /Page /Contents 5956 0 R /Resources 5954 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5953 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+5956 0 obj
+<< /D [ 5953 0 R /XYZ 81.145 730.971 null ] >>
endobj
5957 0 obj
-<< /D [ 5955 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 720.012 null ] >>
endobj
5958 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 709.053 null ] >>
endobj
5959 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 651.815 null ] >>
endobj
5960 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 640.856 null ] >>
endobj
5961 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 629.898 null ] >>
endobj
5962 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 618.939 null ] >>
endobj
5963 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 607.98 null ] >>
endobj
5964 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 597.021 null ] >>
endobj
5965 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 586.062 null ] >>
endobj
5966 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 575.103 null ] >>
endobj
5967 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 544.219 null ] >>
endobj
5968 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 533.26 null ] >>
endobj
5969 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 522.301 null ] >>
endobj
5970 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 511.342 null ] >>
endobj
5971 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 500.383 null ] >>
endobj
5972 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 489.424 null ] >>
+endobj
+77 0 obj
+<< /D [ 5953 0 R /XYZ 79.37 463.975 null ] >>
endobj
5973 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 267.369 null ] >>
endobj
5974 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 256.41 null ] >>
endobj
5975 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 245.451 null ] >>
endobj
5976 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 234.492 null ] >>
endobj
5977 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 223.533 null ] >>
endobj
5978 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 212.575 null ] >>
endobj
5979 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 201.616 null ] >>
endobj
5980 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 190.657 null ] >>
endobj
5981 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 131.877 null ] >>
endobj
5982 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5953 0 R /XYZ 81.145 120.918 null ] >>
endobj
5983 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5953 0 R /XYZ 93.716 91.172 null ] >>
endobj
-5984 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 424.124 null ] >>
+5952 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F28 611 0 R /F73 267 0 R /F16 422 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5985 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 413.165 null ] >>
+5987 0 obj
+<< /Filter /FlateDecode /Length 2495 >>
+stream
+x[n8+* @[ :FogV[$E+p,SaXb?'~o&ʼn5'q2)nNZ ƕ8}+h8Wgyw
+EaV)45
+!X !7J#!
+>J-:MF(ԙcԑ=ҼRR004 =DFgI'!CJGb^z{U/&;P;: m}Iy=<ѣx
+!~*S\A JfL\!{³$2~e.'ڶMWfX_;{, hľH C%%nҳSO\~F*Nas4KVJ[HFD-q^F5-e]K,y%k'.Y%󹯺2mJKfkf@(^;_0^Z2ԯt! OA(THB*`L?CݣgF}uI9yL惚Jz@ꚐMZN̥LNC@/<|B(F~&pԂ\+) p<ᢸyQ"8 Z>B dRp^ bW&#ѨP]HG}dK *Ga I50w/!T>Rn޴5(\e|xn"<}Ǯ,Jm0#izjhtH-wFr?z09\KKmofY); WkZ[RpӴDIiݱjDT9С" hk4资ρ$uGqE;Vڞ:7q(
+ff= W_IY:6bQy;m,G)ǯ۳rکE*̸_r=K7 +ّ.->Cs<3EN'3vřO%:|gBDJ;>^6wǓ{amf-.J<Q .H4J>/VeEPOD1YýMqCřwH@kF}sK_9y:ss`ivqҐ]s]إʮik(u0韨C|?~b+'CC^uTTI=;Ǔ̦{UA6ͫ"֎t4lj5O
+lkCzJGVQ0|7 nsƛ9Ws-#m7HaKrh~cb~I0
+\cEAlsޖs S$OxLӜM})^ze*ԅdWk9JJ Bۼt|2
+endstream
endobj
5986 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 402.207 null ] >>
-endobj
-5987 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 391.248 null ] >>
+<< /Type /Page /Contents 5987 0 R /Resources 5985 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
5988 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5986 0 R /XYZ 78.37 808.885 null ] >>
endobj
5989 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 768.829 null ] >>
endobj
5990 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 757.87 null ] >>
endobj
5991 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 746.912 null ] >>
endobj
5992 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 735.953 null ] >>
endobj
5993 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 724.994 null ] >>
endobj
5994 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 714.035 null ] >>
endobj
5995 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 703.076 null ] >>
endobj
5996 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 692.117 null ] >>
endobj
5997 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 681.158 null ] >>
endobj
5998 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 670.199 null ] >>
endobj
5999 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 659.24 null ] >>
endobj
6000 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 648.281 null ] >>
endobj
6001 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 637.322 null ] >>
endobj
6002 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 626.364 null ] >>
endobj
6003 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 615.405 null ] >>
endobj
6004 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 604.446 null ] >>
endobj
6005 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 593.487 null ] >>
endobj
6006 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 577.547 null ] >>
endobj
6007 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 566.588 null ] >>
endobj
6008 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 555.629 null ] >>
endobj
6009 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 544.67 null ] >>
endobj
6010 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 533.711 null ] >>
endobj
6011 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 522.752 null ] >>
endobj
6012 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 511.793 null ] >>
endobj
6013 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 500.834 null ] >>
endobj
6014 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 469.95 null ] >>
endobj
6015 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 79.417 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 458.991 null ] >>
endobj
-5954 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+6016 0 obj
+<< /D [ 5986 0 R /XYZ 81.145 443.051 null ] >>
endobj
-6019 0 obj
-<< /Filter /FlateDecode /Length 2566 >>
-stream
-xڭZ[o6~c=xe]f]vd V&&$"u<ib~9箄mߝq;UDb) g@GA$0
-w+NDt^/DH Ai0g.z)˪Ζyvi[ۼn5,1|⟣ !(~OϦ1Œg'#?9h-lZ]oqQʷɫW+j"] az>4>LJO"S.G>.?;1MN;.Ekiݫ&iT{Yހ̌_LJM6 e)bh P/~M&jo/Q+
-I I[8לEj Q3?hMPf!-dS4TEё(G:Un /p
-#nvb(`-7*;T~cbEO_ x8TS2)ڻ gC$uZN{e{44SeMRPH8p6*lM-ݤͬv5*UބF 1xNO/X_YE%u6(!) AM8bLJ97jkrSi*}[8_vRb/3>ʪ I4+Όw]2Cc ^8螙iqP Ty7f_/U4F/bLeჀU]W5ϠHiQ Mx4BuD )  qo|z
-FF϶4t)B※.
-8[3>8`ǻT3>ܓX@@({g!ЯiaUZ&hfe\bD:O]
-ra]ơ6 ~_䪙@$l/PAtL57¸q
-vlz|ӷmbm2qEzỤioDcüj ֻ``'}uۅ"_X /XŭB9 1?l y~7{ 2x !G` +h{Spr9GB
-endstream
+6017 0 obj
+<< /D [ 5986 0 R /XYZ 81.145 432.092 null ] >>
endobj
6018 0 obj
-<< /Type /Page /Contents 6019 0 R /Resources 6017 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R /Annots 6052 0 R >>
-endobj
-6052 0 obj
-[ 6016 0 R ]
+<< /D [ 5986 0 R /XYZ 81.145 421.133 null ] >>
endobj
-6016 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 357.901 159.52 368.334 172.01 ]/A << /S /GoTo /D (Hfootnote.13) >> >>
+6019 0 obj
+<< /D [ 5986 0 R /XYZ 81.145 410.174 null ] >>
endobj
6020 0 obj
-<< /D [ 6018 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 355.38 null ] >>
endobj
6021 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 344.421 null ] >>
endobj
6022 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 333.462 null ] >>
endobj
6023 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 322.503 null ] >>
endobj
6024 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 311.544 null ] >>
endobj
6025 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 270.697 null ] >>
endobj
6026 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 259.738 null ] >>
endobj
6027 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 248.78 null ] >>
endobj
6028 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 237.821 null ] >>
endobj
6029 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 226.862 null ] >>
endobj
6030 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 620.388 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 215.903 null ] >>
endobj
6031 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 609.429 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 204.944 null ] >>
endobj
6032 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 598.471 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 193.985 null ] >>
endobj
6033 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 541.232 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 183.026 null ] >>
endobj
6034 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 530.274 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 172.067 null ] >>
endobj
6035 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 519.315 null ] >>
+<< /D [ 5986 0 R /XYZ 81.145 161.108 null ] >>
endobj
-6036 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 508.356 null ] >>
+81 0 obj
+<< /D [ 5986 0 R /XYZ 79.37 111.995 null ] >>
endobj
-6037 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 497.397 null ] >>
+5985 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6038 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 486.438 null ] >>
+<< /Filter /FlateDecode /Length 2493 >>
+stream
+x[n#7W!˲ٷ [qk砑E᧿Oϯ?~^ ? Pj8Cq (ˤN<pϜE1`9ǫoh^sg}e#a#
+m3ϰQfPUcN f'F~ {QV߮]+wUu̢WN{}wآqIM4*jHKҜ{/i7Za
+wД\s^4&H {]ԝcEi--A x}>/Ub,;@ .YY$83\gpu.f`6 q 9e݁ JfnQ2xEb1`7cN4/dIvf Mv4^>x[]#qVYtJ6*ȅEDGMavh7r?IɄ(G*TٰY5W+PuYS='9 ~
+;(f&)&Q Q2?*HQ#ޮCGmpAZq~Adt򾹜YHHR@(&27Q՗{+U.42+KژBڂWIBH&n)M#V;݁HJLnz9f#+oy6jQ;xGh{̧Ti7p$+5Cލ˜alj|wu}Lvb
+p6gE54
+VӔD O|(H'Fmp6Sqz q#
+F+p[K7;u~Bs;AJKck(*D{*c"htC#^)zn
+ZzY@(vsɊ(@۩إ2Hc k*o.%E*(ݎE@ѭZs nRF;XXX#XJLaKzYa: |j_F//]{hڣ+p$ r 䞲@݁K[xhʙ#_={gD,l˾
+#DΖ 8nύ3NmL!l-i)bB<ol a*A*& $B`vs>OQ<-V%_6#oWAQA[^UWIkᙺKs\٢H&[eFIUF[xܯ&ֱی!baڀ 5p{5^ـ<J(bU;̎3h]X#ʍҩ"~WfKChr}LæfL۾HJf<{;`R)zM\}?8 ےvO>G> H9Jm+ i-q7_ z6c5`9I4sM,gTR ޠR̹i],2I1/9 yzblj{oHhkLH˼;vCq勒r^R"JԐJA̬wg1IhS
+yvdm2ˌeNs48A N29}ijp*(AK>hcHL><RxAHVr\'Og ֣eKX $`=ZeXI+nk_ gNo`Yvxê鶟V h= A4 s"oʮ[2 nܮm H_p;CdX T'zI)yu񶃿tv7vXSTf/ho62SHI䐱?wI~}t+=uy2R`+v`l
+PzSMYF8v9 i=va9Jζs;=fP}h֓s>J^7[ c)OK9|ԓx[R[`KUwe̠AI(oZ;hcڵ`K:lknj ^R 1YNbvn/8 V qAR%zlb̡|}-2&H} i ןcSfx` 4)o_0牉'ə/1[+
+endstream
+endobj
+6037 0 obj
+<< /Type /Page /Contents 6038 0 R /Resources 6036 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
6039 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 475.479 null ] >>
+<< /D [ 6037 0 R /XYZ 78.37 808.885 null ] >>
endobj
6040 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 464.52 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 609.843 null ] >>
endobj
6041 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 433.636 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 598.884 null ] >>
endobj
6042 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 422.677 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 558.037 null ] >>
endobj
6043 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 411.718 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 547.078 null ] >>
endobj
6044 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 400.759 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 536.119 null ] >>
endobj
6045 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 389.8 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 525.16 null ] >>
endobj
6046 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 378.841 null ] >>
-endobj
-81 0 obj
-<< /D [ 6018 0 R /XYZ 79.37 353.387 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 514.201 null ] >>
endobj
6047 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 156.83 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 473.354 null ] >>
endobj
6048 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 145.871 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 462.395 null ] >>
endobj
6049 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 134.912 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 451.437 null ] >>
endobj
6050 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 123.953 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 410.59 null ] >>
endobj
6051 0 obj
-<< /D [ 6018 0 R /XYZ 94.613 94.364 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 399.631 null ] >>
endobj
-6017 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F26 662 0 R /F79 668 0 R /F76 318 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+6052 0 obj
+<< /D [ 6037 0 R /XYZ 81.145 388.672 null ] >>
endobj
-6055 0 obj
-<< /Filter /FlateDecode /Length 2266 >>
-stream
-xZ[o~ϯp1u wI
-NXCȴ#D4<I&2%:#&Œ(<g|wW$|򷫓OqB$ f$K2~ BFERp & #"~<=T r{8+X}M8[r7mYH׸p F"D8i1AqZ inqYZ<{F_hH{~Gve}u
-$@; yjҤX\ ăy@H?yF` e9pxo;΂/q`u/u\@'櫐,jpZVqެYV"?Vhʭzb]_fGٽI>e3$b㲼K^8﷕Vq
-3 iC0np^iF`1ANHRL3@udсgۅWwǐ23j)xS5kths&9Mt7]ӂ~HF ST- x ?# IY5j 3[0`pН%XCY -y
-U%(; ,Blgҏ1*w;n_
-BxH~8);P
-tSNGp,\?k&:h2tDeqIOtu~v!X#k,?/!?F2Q.Fg`BKn(b ~ݼL%$_tr)!h^CmO
-endstream
+6053 0 obj
+<< /D [ 6037 0 R /XYZ 81.145 363.765 null ] >>
endobj
6054 0 obj
-<< /Type /Page /Contents 6055 0 R /Resources 6053 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6037 0 R /XYZ 81.145 352.806 null ] >>
+endobj
+6055 0 obj
+<< /D [ 6037 0 R /XYZ 81.145 341.848 null ] >>
endobj
6056 0 obj
-<< /D [ 6054 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 330.889 null ] >>
endobj
6057 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 319.93 null ] >>
endobj
6058 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 308.971 null ] >>
endobj
6059 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 298.012 null ] >>
endobj
6060 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 287.053 null ] >>
endobj
6061 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 276.094 null ] >>
endobj
6062 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 265.135 null ] >>
endobj
6063 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 655.258 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 254.176 null ] >>
endobj
6064 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 243.217 null ] >>
endobj
6065 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 232.258 null ] >>
endobj
6066 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 221.3 null ] >>
endobj
6067 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 210.341 null ] >>
endobj
6068 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 199.382 null ] >>
endobj
6069 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 188.423 null ] >>
endobj
6070 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 177.464 null ] >>
endobj
6071 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 166.505 null ] >>
endobj
6072 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 155.546 null ] >>
endobj
6073 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 144.587 null ] >>
endobj
6074 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 133.628 null ] >>
endobj
6075 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 122.669 null ] >>
endobj
6076 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 512.792 null ] >>
-endobj
-6077 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 6037 0 R /XYZ 81.145 111.711 null ] >>
endobj
-6078 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 490.874 null ] >>
+6036 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F19 182 0 R /F15 180 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6079 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 479.915 null ] >>
+<< /Filter /FlateDecode /Length 2170 >>
+stream
+x[Ko7 W""% гoEZ=!iҮ7 gVߐ_5NIOONZ8N>)%yR'˂=VB:}YJR7sҸ?[p^؜ph@J*aHԯ<R{d~p=t./_(#J?.iE@gP U6!CDXVsD|͵ƞPz$3RU 圕P{yL
+*#Qݜ{܆VX]w),Y
+g:GלߒkGt9/29g)bI3#tX!Eq/Y,~S mZIjUR)G<%/ܡA]tE mH@.Cr] PۼBܖ/2 ׋J 4'&z##sz2^S/`M
++B} 6/J P! ])_,bhQmq4~Y ٭7z͚vK()Q m6Ӣt <*5'
+Zb0nlU>-qh{Z<4 rqN$!ŋ_<O.Wo*et#O eÈg8mvqdgV05A;}J ZK=M\nuˑ;RvE5;?MA7&bex@BdrQ +rT}ZDkgU3\6
+%1k#[ݖ\){eV:\t5Pv!B nP->}<ܱ 
+M}H? )G
+WWJ A-!z*}3~| Rwjn{xeS+.7== Rnn%lqF}S3m0``j-KC,?Yoii
+2uMm\~t(uy˟{yQ)eEO
+QAmt
+i ֹ^ um \M9a-֓MLH'W:V6>kU lp%"?8"L B_J6OBPY^:.vx.P=) 9wX@ye6{mi&V45+>j?\{ ^T4M14MӽUc\x)X!U6q\1O}
+U*Xt%]pbZe< 2{8(l٣T!s
+?c)=' S*_14JC2ɪ~ H \I&
+K2bXV?ˊ':BDS= l|1'j+UV6+i) Ng|'Ю뎶u@Xr՜,@7idn)r,kZf΅3K%
+endstream
+endobj
+6078 0 obj
+<< /Type /Page /Contents 6079 0 R /Resources 6077 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
6080 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 6078 0 R /XYZ 78.37 808.885 null ] >>
endobj
6081 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 768.829 null ] >>
endobj
6082 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 757.87 null ] >>
endobj
6083 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 746.912 null ] >>
endobj
6084 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 735.953 null ] >>
endobj
6085 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 724.994 null ] >>
endobj
6086 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 714.035 null ] >>
endobj
6087 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 703.076 null ] >>
endobj
6088 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 692.117 null ] >>
endobj
6089 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 681.158 null ] >>
endobj
6090 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 650.274 null ] >>
endobj
6091 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 639.315 null ] >>
endobj
6092 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 307.561 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 610.423 null ] >>
endobj
6093 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 296.603 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 599.464 null ] >>
endobj
6094 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 241.808 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 570.573 null ] >>
endobj
6095 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 230.849 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 559.614 null ] >>
endobj
6096 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 219.89 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 548.655 null ] >>
endobj
6097 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 208.931 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 537.696 null ] >>
endobj
6098 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 508.804 null ] >>
endobj
6099 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 497.846 null ] >>
endobj
6100 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 486.887 null ] >>
endobj
6101 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 475.928 null ] >>
endobj
6102 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 464.969 null ] >>
endobj
6103 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 454.01 null ] >>
endobj
6104 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 443.051 null ] >>
endobj
6105 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 432.092 null ] >>
endobj
6106 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 421.133 null ] >>
endobj
-6053 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6109 0 obj
-<< /Filter /FlateDecode /Length 2350 >>
-stream
-xڵZKϯ0Cd#%#d$}HdC0~d0=U^tfgҴ(Xfh㻨_w?ܽI IL9QX,VDQ=ӊHaB/s~T2IĔEDħLfUm]H&|yˊ4_~}Ih^8L15
--(ѭ@&XNMrL:@+j0="lU>j ;l~!!¼m6eO6͊28a*j6ϊVʢ5Wl`r4 R"g4ԃlל'7uXK_Pkt{K_FVHЉU\HMc,
-RBr ͗#' /4Qkp
-ʸ>&c
-`z$.@2w%gߋFQR-\q:^I'ͪv4OG
-²IJ-/|
-%(U+8s1` {-<jԋW*ӠI) #I"q
-R"JN
-}6w$(bPcn0+S sǶpʷVUhv9-X+
-$?ڣ5xUP۽)LzH,-
-8J: e,K`%P/Ro#>77yvCϿ] qV
-#Gh$o2 p|L:,7y
-F$ 9V8G{vQoʼl] 7+2wE{aʣIu/mX:|ʺ.I .Ps#顔JOT 5=`밌3&>997ּ":@: 1q
-oP}w^sQ2f|S
-endstream
+6107 0 obj
+<< /D [ 6078 0 R /XYZ 81.145 410.174 null ] >>
endobj
6108 0 obj
-<< /Type /Page /Contents 6109 0 R /Resources 6107 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6078 0 R /XYZ 81.145 399.215 null ] >>
+endobj
+6109 0 obj
+<< /D [ 6078 0 R /XYZ 81.145 388.256 null ] >>
endobj
6110 0 obj
-<< /D [ 6108 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 377.298 null ] >>
endobj
6111 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 348.406 null ] >>
endobj
6112 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 337.447 null ] >>
endobj
6113 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-85 0 obj
-<< /D [ 6108 0 R /XYZ 79.37 697.798 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 326.488 null ] >>
endobj
6114 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 505.974 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 315.529 null ] >>
endobj
6115 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 495.015 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 304.57 null ] >>
endobj
6116 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 454.168 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 293.611 null ] >>
endobj
6117 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 443.209 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 264.72 null ] >>
endobj
6118 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 432.25 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 253.761 null ] >>
endobj
6119 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 421.291 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 242.802 null ] >>
endobj
6120 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 380.444 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 231.843 null ] >>
endobj
6121 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 369.485 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 220.884 null ] >>
endobj
6122 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 358.526 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 191.992 null ] >>
endobj
6123 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 317.68 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 181.034 null ] >>
endobj
6124 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 306.721 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 170.075 null ] >>
endobj
6125 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 295.762 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 159.116 null ] >>
endobj
6126 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 284.803 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 148.157 null ] >>
endobj
6127 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 259.896 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 137.198 null ] >>
endobj
6128 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 248.937 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 126.239 null ] >>
endobj
6129 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 237.978 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 115.28 null ] >>
endobj
6130 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 227.02 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 104.321 null ] >>
endobj
6131 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 216.061 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 93.362 null ] >>
endobj
6132 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 205.102 null ] >>
+<< /D [ 6078 0 R /XYZ 81.145 82.403 null ] >>
endobj
-6133 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 194.143 null ] >>
-endobj
-6134 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 183.184 null ] >>
+6077 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6135 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 172.225 null ] >>
+<< /Filter /FlateDecode /Length 3042 >>
+stream
+x[K# ϯ19Vހ@{^ fC5(Urg&nDE~$UE^~"/=TD8s/
+oȋ(xtߗ_# R蓿ߤNuӵ|[ǮQ֊< o_WW|o{7ƽA+H1K=
+>)JK(;hC %MցG
+^]Ai)' oi+K@VL) HCvA{$&4$+vo_-3
+Nh
+x?
+kD(W_V cEf*yF8ej)]8&ILzZXA`fJ`qƒ5\4z~x"|;+ ,zhhوV{0{ݽ?y?6X>ejOV3e"1ð{u[dG@?P{l Zn6hg?&k-u312j4㩘<QʻxX16s vFsF9Z J9Nm8 ݊Щүϊ'
+ګ%' ||/9
+f(e5C]|*|%#ڏҌ1@)s⌔*ظuK'@M7e3^hRJh5b3=>kG9ئPm|x t E9%erŪJr;%;yZlRYx6RM%sn_."%bK z J1Knrx_Fg辗?s+QʨR'Y_es)Qk<
+m;Ky,Q>u
+mÄ u(I} h3>5DrS-iS{2vH8!A{dt ϋ?YײA^
+z_B~ZZz')(B*2^MJkІ}&􊉦qV6-H]vL MSwy@ޙAGPhnFZyhU_ݲ/5OɈ
+we瘋=(=ۓG,Vof7^L7Hx3`sG$xG-=U48ɯA1fCp5gH.i<&!
+jSS,wI+JJ.uz.ZrLzI7XI鵛zf5AN[\г+ܗ̨L?TbB8Y8.Q7螂z%3j>Ƨ1 |! q'g}<4[1+cR7x
+9RtxT[뮶5?D j$+rj:$Rn\mL޵>֔]U)%sǾe:,k
+L:x4[;-5Vz^[.I^YVvuw<ulcME/lZ\9y'*{# F9qr0g:~!R"D{f†U:ܡډGm< ' Nm⤝9Ԗvڭv1Oa>s\$׉RKn>ȱ?]Mi,2:,W}Ւ|rZmk.=29a[>(u>e> ;Z.#ӕP[&虯(U/B{X̘:M59[C3I{WGW^U22
+sMUtGwmHE,*xݰ0 Xgd@<,
+_GOJ͔;Vmy󍓢!%U_ζgfrGBJuTؕ. f5I{"}fL8>e58,&n3g"G:
+K$җk@"C߿mG%
+endstream
+endobj
+6134 0 obj
+<< /Type /Page /Contents 6135 0 R /Resources 6133 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
6136 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 161.266 null ] >>
+<< /D [ 6134 0 R /XYZ 78.37 808.885 null ] >>
endobj
6137 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 150.307 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 755.076 null ] >>
endobj
6138 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 139.348 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 744.118 null ] >>
endobj
6139 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 128.389 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 733.159 null ] >>
endobj
6140 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 117.431 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 722.2 null ] >>
endobj
6141 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 106.472 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 711.241 null ] >>
endobj
6142 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 95.513 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 700.282 null ] >>
endobj
6143 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 84.554 null ] >>
-endobj
-6107 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6134 0 R /XYZ 81.145 689.323 null ] >>
endobj
-6146 0 obj
-<< /Filter /FlateDecode /Length 1908 >>
-stream
-xڽZ[o6}ϯ0[.1bRt<`˞AP"K,粢 %#^*+!GO<y}+䇋M8R!atr:!I($$aI&ɟSB<gT))YGl.%'YtyȺ˗э~˨vd(0|h/^8"0"X_,}R]^xGg6":." ]tv97Lk"6N:*}R諳&KYiH-aG<͋qֳ0lLLD>z@?d,2~}vw 3̯aX(}Ԭ?jGWy!G^b8QqQ[RY1A`3^ }cotV78rƲp59v0A<0>w^#h)͈|.:μPvaHa?*}Lu\*ʏ/7"(ǭ~,J$U{t/Fb|&.<՟< CJ6?xxM.( %qArG 8
-Y-}vj"Y_H2 }H s&
-PD FCެfsش i!*%1 R! A^ǻٜSvW{8Ca >dͶ|8[aBZd~:c&jyRfpq;xMfTMr_0"77w&ͨЛjj". BDWx$.:nDjeR8t-9=Ugz~n`܈ΆЫxsͪ^oeT$ku6g[ȸ]`]+oGW2=f
-qėm J۞R#㑮P~j~2֩Ն%&atk=8|w˗ U}?7|Wyzd9̪6O7rf[oc '퟽~'oUrJb@9$)qZm(!CwɽA2 (ŘC@<a v4 !^\
-,k;hE7M#mC`N\()w>KK|0hN]1t b,v8h B=ꭸ
-$ڄn˝?sb1xDJagf:~+3ز淃hᄅЊ„{);$(ViUFIxȓ$32=rl2W/oO#B %z<&u"'3> =-uwxe&)$r[>z6iEdF5m(b]>=d|ʆy/s.y)$y/C}G{gG
-cmk70;v=U}ibf)>{~^xTA>mūRuH~ԯtco ^De0ޔ_7?p% ҸMF,^7jhUpi]%ٺ~̫t{L~ߙ2ko7 WNmJPs $ɷSg$ώ65E]E\7"Q76np/{Yu e۞wDm>ڿop[O9hHZaA@8WU
-endstream
+6144 0 obj
+<< /D [ 6134 0 R /XYZ 81.145 678.364 null ] >>
endobj
6145 0 obj
-<< /Type /Page /Contents 6146 0 R /Resources 6144 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6134 0 R /XYZ 81.145 649.862 null ] >>
+endobj
+6146 0 obj
+<< /D [ 6134 0 R /XYZ 81.145 638.903 null ] >>
endobj
6147 0 obj
-<< /D [ 6145 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 627.944 null ] >>
endobj
6148 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 616.985 null ] >>
endobj
6149 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 606.026 null ] >>
endobj
6150 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 595.067 null ] >>
endobj
6151 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 584.109 null ] >>
endobj
6152 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 573.15 null ] >>
endobj
6153 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 562.191 null ] >>
endobj
6154 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 551.232 null ] >>
endobj
6155 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 540.273 null ] >>
endobj
6156 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 529.314 null ] >>
endobj
6157 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 518.355 null ] >>
endobj
6158 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 507.396 null ] >>
endobj
6159 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 496.437 null ] >>
endobj
6160 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 485.478 null ] >>
endobj
6161 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 474.52 null ] >>
endobj
6162 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 463.561 null ] >>
endobj
6163 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 452.602 null ] >>
endobj
6164 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 441.643 null ] >>
+endobj
+85 0 obj
+<< /D [ 6134 0 R /XYZ 79.37 419.16 null ] >>
endobj
6165 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 111.511 null ] >>
endobj
6166 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 100.552 null ] >>
endobj
6167 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 89.593 null ] >>
endobj
6168 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 6134 0 R /XYZ 81.145 78.635 null ] >>
endobj
-6169 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 460.986 null ] >>
-endobj
-6170 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 450.027 null ] >>
+6133 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F15 180 0 R /F71 185 0 R /F67 179 0 R /F70 183 0 R /F81 505 0 R /F73 267 0 R /F28 611 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6171 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 439.068 null ] >>
+<< /Filter /FlateDecode /Length 2958 >>
+stream
+x\I W19XO 0poA)mTI,Uu=NxzjHm7Y~~[ŷ \ڽ9MJmD26H ڨx;+>Ҩ࿥[ڕ+V+~"B{:+/'R[eeՏP|˒$eyT(D(a hӯEϿ A l{X$e%LRc1]+Ztԍ>sشvsm]aJZu(hp t%QV4w{Bu;YN~l|۩>A;!]حx'3>aD!T
+>VIi/En@|w{/[{|F|Ey&[HEc+ =oqIm2[YG]2<?ֽȉR(mC ARԏmju(l[޽(U6{лrBۃ ܶNz>9 9JCz:'bn'{ң5~֦'Jd#|~~D/Kqlu35ɣAhIKi[Tբ`BoZtuW3ڷpuk/oZ?}{<7rjЭ@؝*(j<ctrIV=g/XJ,,'V$Ex7>MPa_vf!
+R(
+6FJ<HgYT(7ɪ/)<2[5Fm-ٸ(R?CL]ݴ%VviWgFB.@A5OMM}BބàY<?PqF``s6"[hlpm0P8~W^KXOOf1Z=ɿKBt(+msΨTɸgt, 8%34@~Jf5/J/ah(j.Ps 1
+j;DyȺ蠲H]6zíX;eݭ+D$\To㓦4x'LșHL YdB5{*MGuBy2x%rJP{ٔl_O|ؒ¬!1Lj#G}?r2XcixQZ1
+qr^U2DG,XO]XOvpy<hkQ_|qBhVy}]
+*[TSe?.U,Pذ рÔÕzGc!1S>s8QC'[σ)kE2D}^b7~bYev4
+Cvg'rwXU:N ;}%.+S;::(}c|j$'/0BI_BϦjuT(ȤH[JOf0:ikT5HQh(HJ{(>(251#ΑN󷘶wTOn%\85>ŝI׺S}KX 7X=LVi;M ^-C{jHzMnh9+徵xGQwۓ)?h|:J9G c Fsu2˜s*Sp
+|
+RP\vݡMȊQ^x=xk42kB!?=E߆e*\<xː1gJwSNraė#~Jܣ"Ͷ:ڜ+[?*{9!t<?NP*Vj}C0lN)4u @|iaΧ ;`AW}zgrOڏQOxT/ ʜae%LW
+!Nb^mQzA*"N\m9'@iNyWZ\ Pl_lq%J4v(z40N pqQp\LTL *84
+6 ];e'G>C7(7UZKQzg ~!(C( )+U)b\ 8C4]
+\sJʶVa%AqJs#$8tNﳵp, >>oV}4,$x)p?Q׬t+22Rz)Ҭ+6-+6xac|$H ڏ腯t״$Έ+v2c/12"hn/}/T;
+endstream
+endobj
+6170 0 obj
+<< /Type /Page /Contents 6171 0 R /Resources 6169 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5769 0 R >>
endobj
6172 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 6170 0 R /XYZ 78.37 808.885 null ] >>
endobj
6173 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 742.926 null ] >>
endobj
6174 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 388.259 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 702.08 null ] >>
endobj
6175 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 377.3 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 691.121 null ] >>
endobj
6176 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 680.162 null ] >>
endobj
6177 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 651.27 null ] >>
endobj
6178 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 640.311 null ] >>
endobj
6179 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 629.352 null ] >>
endobj
6180 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 600.461 null ] >>
endobj
6181 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 589.502 null ] >>
endobj
6182 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 578.543 null ] >>
endobj
6183 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 567.584 null ] >>
endobj
6184 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 526.737 null ] >>
endobj
6185 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 515.778 null ] >>
endobj
6186 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 474.931 null ] >>
endobj
6187 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 463.973 null ] >>
endobj
6188 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 453.014 null ] >>
endobj
6189 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 442.055 null ] >>
endobj
6190 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 413.163 null ] >>
endobj
6191 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 402.204 null ] >>
endobj
6192 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 391.245 null ] >>
endobj
6193 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 380.286 null ] >>
endobj
6194 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 369.327 null ] >>
endobj
6195 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 122.256 null ] >>
-endobj
-6144 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6170 0 R /XYZ 81.145 358.369 null ] >>
endobj
-6198 0 obj
-<< /Filter /FlateDecode /Length 2149 >>
-stream
-xڵZK6ϯ-2f"6{fȒWw0}$ &6X*WUTn?_~xOB#-;,FL-$KX&eٶ8,[D_C"1t{OK<Kԏs|\R^u=)H2Jژk=]WPt*3ХƠќl8]?ҽfV  0ruЊ-8)atN%\!BG NS?AKHAdib:D[٦>ƬjT\:&iqOh$"۴gءhT ek$QF0Ye~1;~Z%VU#(MQ7S㍄!(T:ʦ)b: ]AbVR|U ηvFr?vu1%HMn[T& )AD+lMhrc̳]TqLFm[4!YK5S^ɗhMFd8N!x:.SQe3)Q&7_
-4__l׌*?VCJXHr5R\م%pT0x{@IX2
-E{z.
-ЎV[=ebM8(&4F*j#hL%:De
-}S:dQEIvgoM}:f;j+EG<N)z<<A(@ɑgvIgWՍqmm*Ts⑶DJbT/PEa#{6¢nʩu_mdw%|ޏzHܿW[;tJ hn%gZ
-P0Y%f,
-IR 'Sk~`$``Z?~O^Mk^A̳1. c
-?sCpuR۰ڮ9mfFB5l{+m"<eppj ) ?yŎR{^u/[wqN!B%
-f?B\}:p,8tkB@B_JbRHoǥ@ʮvQjY\
-endstream
+6196 0 obj
+<< /D [ 6170 0 R /XYZ 81.145 347.41 null ] >>
endobj
6197 0 obj
-<< /Type /Page /Contents 6198 0 R /Resources 6196 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6170 0 R /XYZ 81.145 270.697 null ] >>
+endobj
+6198 0 obj
+<< /D [ 6170 0 R /XYZ 81.145 259.738 null ] >>
endobj
6199 0 obj
-<< /D [ 6197 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 248.78 null ] >>
endobj
6200 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 237.821 null ] >>
endobj
6201 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 226.862 null ] >>
endobj
6202 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 215.903 null ] >>
endobj
6203 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 204.944 null ] >>
endobj
6204 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 193.985 null ] >>
endobj
6205 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 183.026 null ] >>
endobj
6206 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 172.067 null ] >>
endobj
6207 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 161.108 null ] >>
endobj
6208 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 150.149 null ] >>
endobj
6209 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 139.19 null ] >>
endobj
6210 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 128.232 null ] >>
endobj
6211 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 117.273 null ] >>
endobj
6212 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 106.314 null ] >>
endobj
6213 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 95.355 null ] >>
endobj
6214 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 6170 0 R /XYZ 81.145 84.396 null ] >>
endobj
-6215 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 572.568 null ] >>
-endobj
-6216 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 561.609 null ] >>
+6169 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F25 609 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6217 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 550.65 null ] >>
+<< /Filter /FlateDecode /Length 2492 >>
+stream
+x[nc9+^J"qR@v6~\Fr=ō[H"I_ˏ'_7#.9+.~4_j-?9GKV{MeNk-!,C+GJ 9Wߋꩿ+WqNxiwJı;5DI?Sq&8LŔkbjÌs#%߾(PI`ѯ5
+B*`~c{(cLnWptLH 'xOe,d(V+08Rڨuo^m-
+6ƶJhkZXQƊӌ&6mwmCnflʌ2ނ!z{kgd͕7ARzGw:¿iʻrе *` )'w`zBq[#J]Bumg8@o567 Bi; Ljn9(-?t#X4LŘM!K)5Ro=L8O±rp=%H+EG#—7.-up!y,D |5̟ߐT\3p^x\3meXwd=~L@oԸ[`i8\AHTP9Ihm`nBsRZ1zf[Xӹu`@f;BBE?ϿVe
+&+H![)IW
+J6p*}0.CF\j*F:=R*5Y_Z&by?9Ӽ8vZ~'QA0SbLOh?V2r%'FJDB蚷Y憡3WөrOidD%Շ k<}k9+ 0ݸ9^;.pUg zuw\d>
+@hJd&Z^g4Ge^o䖷%eXo՛Q*#F(*gZy@}CCEGxF֡rr^!s65h#^=Ux9RYy>HSHRmj_ Bs<k>tg_&|L2 QBOc
+0ce5ˬ$*Ì)+v.{J0k)9 'ΛS[*Dd jqZo#DŬTSn ~O=B[ARަFwej%ԋ M:T2 5 dhe5>gTa8J ~_ZMR20Rz+W3NVKLz:a8uJ/(}o ]Xa.)cO>O-,)#*r$oDf]1
+Bm2fpPF)t⬖H1R'q4i,MNȫT)6i[+&mW"nNcz
+endstream
+endobj
+6216 0 obj
+<< /Type /Page /Contents 6217 0 R /Resources 6215 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6218 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 6216 0 R /XYZ 78.37 808.885 null ] >>
endobj
6219 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 768.829 null ] >>
endobj
6220 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 757.87 null ] >>
endobj
6221 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 746.912 null ] >>
endobj
6222 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 735.953 null ] >>
endobj
6223 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 724.994 null ] >>
endobj
6224 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 714.035 null ] >>
endobj
6225 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 703.076 null ] >>
endobj
6226 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 692.117 null ] >>
endobj
6227 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 681.158 null ] >>
endobj
6228 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 670.199 null ] >>
endobj
6229 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 659.24 null ] >>
endobj
6230 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 648.281 null ] >>
endobj
6231 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 637.322 null ] >>
endobj
6232 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 609.266 null ] >>
endobj
6233 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 598.307 null ] >>
endobj
6234 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 548.009 null ] >>
endobj
6235 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 537.05 null ] >>
endobj
6236 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 526.091 null ] >>
endobj
6237 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 515.132 null ] >>
endobj
6238 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 475.12 null ] >>
endobj
-89 0 obj
-<< /D [ 6197 0 R /XYZ 79.37 279.118 null ] >>
+6239 0 obj
+<< /D [ 6216 0 R /XYZ 81.145 464.161 null ] >>
endobj
-6196 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F78 556 0 R /F79 668 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+6240 0 obj
+<< /D [ 6216 0 R /XYZ 81.145 453.202 null ] >>
endobj
6241 0 obj
-<< /Filter /FlateDecode /Length 3133 >>
-stream
-xڵ[[۸~ϯ`AFP,vChnahlVזIIP㑭A2(\CrMr7ÛXbSa‡XJ7ZQ(zpWF=xODG/t2|`Uo۞veZb}mݔYrn*I1J.yFu% r_N#vs}9{JSHM,L3=1t$a6,R?>?}i%R7ieQ]ez$V.m#,*P|kUl?fU־~)e
-EԜDikn9-o!& MhfAGHMDDn?,~6 YR@}jjPsޫ_ip|9y\8(FQ(j:O /,qb=-w. 7积U}vBHɆ#ɵ%
-?>- %xDK4?'$A?9O/:J3,TO٦>jXL09+y@J1ъĄevF
-BxIEyiDY!@Vc}ڧaὄ/Uy:O /xa`9S`BXt|R(=1-cbgȞǪl2wdr2y@iu s8Ļ%@1˘PM +
-uuuv$4ʘ7@-yuPrFW+k gXL6VYLIa
-]bޅ=UZ};l#^6u C;_s8=O= <$LEUZ</B'PWPq:,ˉgG!aIozV䉨ȳ=eow# E{.[*z7R
- L&g;C4"g(e$$xy4> $xh721/$xNtiWPR?1/6s>,>hֹ۶ }n쒈rE,x^L-`>s-Zuq8OrOz
-;Hrmf?P :[>ͮd ycjN697hD>?<PF萾t9$jstϏKв<(^Veʯf3;CUF!lT,԰wh5 Gn ? V]񹭍&}Kk $+ݧ0YFB5H,#{p{SDž;<zF*= Zeiݸh~Vqxݺ zCxU3L{k#j^QlP<VPv&6*"Qh0BIQQlq6
-Fh(
-endstream
-endobj
-6240 0 obj
-<< /Type /Page /Contents 6241 0 R /Resources 6239 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6216 0 R /XYZ 81.145 442.244 null ] >>
endobj
6242 0 obj
-<< /D [ 6240 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 431.285 null ] >>
endobj
6243 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 420.326 null ] >>
endobj
6244 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 409.367 null ] >>
endobj
6245 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 398.408 null ] >>
endobj
6246 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 387.449 null ] >>
endobj
6247 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 376.49 null ] >>
endobj
6248 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 365.531 null ] >>
endobj
6249 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 354.572 null ] >>
endobj
6250 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 343.613 null ] >>
endobj
6251 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 332.655 null ] >>
endobj
6252 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 321.696 null ] >>
endobj
6253 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 310.737 null ] >>
endobj
6254 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 299.778 null ] >>
endobj
6255 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 288.819 null ] >>
endobj
6256 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 277.86 null ] >>
endobj
6257 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 266.901 null ] >>
endobj
6258 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 216.603 null ] >>
endobj
6259 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 205.645 null ] >>
endobj
6260 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 194.686 null ] >>
endobj
6261 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 183.727 null ] >>
endobj
6262 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 172.768 null ] >>
endobj
6263 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 161.809 null ] >>
endobj
6264 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 111.511 null ] >>
endobj
6265 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 100.552 null ] >>
endobj
6266 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 89.593 null ] >>
endobj
6267 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 6216 0 R /XYZ 81.145 78.635 null ] >>
endobj
-6268 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 214.909 null ] >>
+6215 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-6269 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 203.95 null ] >>
+6271 0 obj
+<< /Filter /FlateDecode /Length 1784 >>
+stream
+xZˎ(W{ҨRiiֵvf5m Tw^*!r&>}}&d% 9}"| I0NbOAr. ^ֽ9WnLm?y\(P#+Q܈Q1n>rAG4o#<ZWsBYu[&o`[e9TSw w !^`KZ&8*™1~ui1If@dẉbSAw>r#=4)b8Ӡj$Og8 >b 
+TuZ;k8Gݜ6W~FVUfu>b] $Zn#5#@RsѲoș5P: |ي 5>@ZU TkH{ԓ8k}̾ȱԟ Mm7柬`ſ|_8Q%K5XӉ$jYȢ5C7+kW0Ӥt%+^Vn?IW/Sb~*Gӽigk{/-,3k>|?$w&ʎ^ڛc f,H!9hDJJK]4!9aU[eMkh-SJT0%ca2U,yVHߧMoeIR(O0B1>J>>\Ǻbb”ۨ9u%:6VrGa2m CaZ'ҊĦ%fTH kFA,U(dm,*Rgᐯr+NB|:@F7yҎƫrVP9uRmj#w³uk y|+v" $0źWOgJϧi=4h>O
+fmLSt6ڒ%`KRЯR@]J^Z`b3=."$ӃWMFZJh] ă'2*;'HsEq/!9ƃTj`/4<hLB
+v1HC$.wkt^a[ :I3ձ1A*^&geѴdLAVHGW~!L@h]=J٫ Ntntt* U!Q-rRGU/r /I)QթդED_
+jC۹и%h4-K66+.9,G+ z&bwFsH#iu4o3VH/kdaڪcxF ,xI& fn.2R1+tsŬ0-K[Is$;e4C]B]efԜ_ w<*KѤk7
+%N-p,*_u#@@'.,imclsw'eR~N貎-"I)Ԭl7
+#RYS2Zwna]Z!-
+附0"{` frKc2$*Jo~z0
+wJB)j:<+t[[#w_ڬ`[>"t)GͤUC:a b8ݲD
+Kz N#w ]qP::J;"G|kau;<w]8yu]c'#ƏY`ڴK%)P;z{Q#8JYnvKq93<8p$2V/>_-f+
+XW=3Sle/
+endstream
endobj
6270 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 192.991 null ] >>
-endobj
-6271 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 116.279 null ] >>
+<< /Type /Page /Contents 6271 0 R /Resources 6269 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6272 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 6270 0 R /XYZ 78.37 808.885 null ] >>
endobj
6273 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 742.932 null ] >>
endobj
6274 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 731.973 null ] >>
endobj
-6239 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F23 660 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6277 0 obj
-<< /Filter /FlateDecode /Length 2004 >>
-stream
-xYKoW6)(0hѹhY\xQSx+K,=ԃ"ӌ̢XxGjK?]ys+Il_m|DWliYl9VmzQUF"3'&qplʺ+vab(aL1hSUOÇgt[wmtÆߧ,aa "f81:"<Y0a |/-=shmk|W޸JɰJ~*!0`1San;FCM5Z%1bC[E5B$҆es[Mz~X&F11Tix}DtH~-g0:_n:rS|4p獒5'R 1?b-n]9{I_XiFQ"ssK
-. f"EfQ6'㸹c4^6!Zd
-K=ܺmWmv J,iIIHИ CLò@Xh*#wP_ ~cSZId%K oI&$ d,bsS˃^r\ s3 Ct>AvJr\sK*r
-6 ?wf͂J e/c&qmU_1hx]ўmջ~]ǵsCNHG|v7B:kn|f] 01DiL CIGhz JG
-):>GsTRVp B;\}h7\֠q kq83A޹M\~PmA
- wPЗ_˶dsYD fʭhÕ X ƆDc;<>o^# kF~BǓXwXb2mcǝ=*M+EŇ"DsqўA(y
-=A_ˠCOiપb
-
-áo!c ܗ-pMc_4PueQ mT@MjAbb /^c7OY9veS#ݟ#ǁoUZׯת/Ԇ uҎxz<X݃=<ڝ|Ki,ems{rG۰??}3s|8}=¢S^nM%@7uZ$%֌=kus8 `
-endstream
+6275 0 obj
+<< /D [ 6270 0 R /XYZ 81.145 721.014 null ] >>
endobj
6276 0 obj
-<< /Type /Page /Contents 6277 0 R /Resources 6275 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6270 0 R /XYZ 81.145 710.055 null ] >>
+endobj
+6277 0 obj
+<< /D [ 6270 0 R /XYZ 81.145 699.096 null ] >>
endobj
6278 0 obj
-<< /D [ 6276 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 658.283 null ] >>
endobj
6279 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 647.324 null ] >>
endobj
6280 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 636.365 null ] >>
endobj
6281 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 625.406 null ] >>
endobj
6282 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 614.447 null ] >>
endobj
6283 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 583.602 null ] >>
endobj
6284 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 572.643 null ] >>
endobj
6285 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 561.684 null ] >>
endobj
6286 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 550.725 null ] >>
endobj
6287 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 539.766 null ] >>
endobj
6288 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 528.807 null ] >>
endobj
6289 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 486.007 null ] >>
endobj
6290 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 475.048 null ] >>
endobj
6291 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 464.089 null ] >>
endobj
6292 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 453.13 null ] >>
endobj
6293 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 442.171 null ] >>
endobj
6294 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 431.212 null ] >>
endobj
6295 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 420.253 null ] >>
endobj
6296 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 409.294 null ] >>
endobj
6297 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 398.336 null ] >>
endobj
6298 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 357.522 null ] >>
endobj
6299 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 346.563 null ] >>
endobj
6300 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 335.604 null ] >>
endobj
6301 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 324.645 null ] >>
endobj
6302 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 313.686 null ] >>
endobj
6303 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 302.727 null ] >>
endobj
6304 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 291.769 null ] >>
endobj
6305 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 280.81 null ] >>
endobj
6306 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 456.717 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 269.851 null ] >>
endobj
6307 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 445.758 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 229.037 null ] >>
endobj
6308 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 398.081 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 218.078 null ] >>
endobj
6309 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 387.122 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 207.119 null ] >>
endobj
6310 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 376.163 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 196.16 null ] >>
endobj
6311 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 365.204 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 185.202 null ] >>
endobj
6312 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 326.065 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 174.243 null ] >>
endobj
6313 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 315.106 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 163.284 null ] >>
endobj
6314 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 304.147 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 152.325 null ] >>
endobj
6315 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 293.189 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 141.366 null ] >>
endobj
6316 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 282.23 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 100.552 null ] >>
endobj
6317 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 271.271 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 89.593 null ] >>
endobj
6318 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 260.312 null ] >>
+<< /D [ 6270 0 R /XYZ 81.145 78.635 null ] >>
endobj
-6319 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 249.353 null ] >>
-endobj
-6320 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 238.394 null ] >>
+6269 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F15 180 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6321 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 227.435 null ] >>
+<< /Filter /FlateDecode /Length 2091 >>
+stream
+x[ɒ(WfI\9mb3kJ2\=sPY z"InPω~t8\>^ߌ8sV(yEF$Nr{2(Gq+q叿>XpМ,s@Bq&^:'pI/=qLk#IHs.-sm[:봘)yLL7]:n*$ jEX7i
+mn[iBeErsH-%]TDnykR!:wH9?M=$V٧+ R) G&9z"S=~K~8 ÏG`p+RuNNr7I'0eҾ--SP͊mu[a@:*UEvmgQ3= ):TFl$Pĵ[om5M,ٕ4мgGPLӞz"93ނtH<ppt`ԤY#0H޾x)h@I (hz_/++&Ik!kvh2ʽ.ӄ1fEM>% /j"| _Ӣu
+qͺu$0E9{!qCbn3Y 7Ej~tH_cBi&T X;GA%E3|9$5??ONѿFd:rR9[]GVOvnZt'Z
+%-B)po!)9Mi/Zv'ü(:fDh!花̢#25:N;3kH153|~
+w{|jY 2B̾:7|KZ^6IVRv%GZJ'^yvSս\G%H!Տo8RyKiNAmfJ#c
+~\GG &WMXJ8aymm,m6!ӥ-iA zUjyohMBzL]L_Jt|j)"ƒt)<+_smS_a d?ھw<)7a ^̸V9qmbpfi3;[C{έ]pv<|N!zHƨT=Ļ,I4+E6PXDPhG>C+-MwJ16? S52KyvHd6ׅcl]\mp_ ָW/>nǁm&Vc:y{HڎB-Pڒu?qքURd^rKyCf{=ˣldfo=j^Ź2l>hk6j7רTN;9[WVL%}xE"
+endstream
+endobj
+6320 0 obj
+<< /Type /Page /Contents 6321 0 R /Resources 6319 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6322 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 216.476 null ] >>
+<< /D [ 6320 0 R /XYZ 78.37 808.885 null ] >>
endobj
6323 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 205.517 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 768.829 null ] >>
endobj
6324 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 194.558 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 757.87 null ] >>
endobj
6325 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 183.599 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 746.912 null ] >>
endobj
6326 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 172.641 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 735.953 null ] >>
endobj
6327 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 161.682 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 724.994 null ] >>
endobj
6328 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 150.723 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 714.035 null ] >>
endobj
6329 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 139.764 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 673.188 null ] >>
endobj
6330 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 128.805 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 662.229 null ] >>
endobj
6331 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 117.846 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 651.27 null ] >>
endobj
-6275 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+6332 0 obj
+<< /D [ 6320 0 R /XYZ 81.145 640.311 null ] >>
endobj
-6335 0 obj
-<< /Filter /FlateDecode /Length 1672 >>
-stream
-xYMo8WxыČMX؏t[ZMBlɕA#SHN<i %%=͐fIwd,]lﻳ?&gWr6(| (hEI` n+eX 4r1]{HWUYifUq>Ln߾}NEY**W+?+3ssKⴹYB
-[%(ЍE:]_n[r ft([nxܻuvuz_Ÿ(Z^-ʿߗ]. zwO;ow6zI`ci7d 6EY\ۀ,ۆyl㸹1|2k ?bKpBC0exN('&X?vh0]QjF6~y8:Ck޸t|=.9lyXDH/!t8CwOİTUIE谒"l^;(GLڍ}
-MqC>oY(lxk$OkJZ>J%I*jy 1h|A-xvU/ۚeWkg kyeULp5Q<kHЂDJXIT"pRgn)#HbmgAmОzoQ#'B&\߿U 4eŠw[JS-6.M2n׿e^Wf*)tk[T`/ݦҨӝ|Z#U[YE]
-VUP4"4^;0|v.3PN E5 ]3'&:n T;1Ul֥Od
- 4&0 xHzm"O6-P"2hzQftPhtbXnϝ@DBJĄo{#t@[)!]"ߓ
-endstream
+6333 0 obj
+<< /D [ 6320 0 R /XYZ 81.145 629.352 null ] >>
endobj
6334 0 obj
-<< /Type /Page /Contents 6335 0 R /Resources 6333 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6320 0 R /XYZ 81.145 618.393 null ] >>
+endobj
+6335 0 obj
+<< /D [ 6320 0 R /XYZ 81.145 607.435 null ] >>
endobj
6336 0 obj
-<< /D [ 6334 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 596.476 null ] >>
endobj
6337 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 585.517 null ] >>
endobj
6338 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 574.558 null ] >>
endobj
6339 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 533.711 null ] >>
endobj
6340 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 522.752 null ] >>
endobj
6341 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 481.905 null ] >>
endobj
6342 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 470.946 null ] >>
endobj
6343 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 459.987 null ] >>
endobj
6344 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 449.029 null ] >>
endobj
6345 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 438.07 null ] >>
endobj
6346 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 407.186 null ] >>
endobj
6347 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 396.227 null ] >>
endobj
6348 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 385.268 null ] >>
endobj
6349 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 374.309 null ] >>
endobj
6350 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 554.635 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 363.35 null ] >>
endobj
6351 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 352.391 null ] >>
endobj
6352 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 341.432 null ] >>
endobj
6353 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 330.473 null ] >>
endobj
6354 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 319.514 null ] >>
endobj
6355 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 308.555 null ] >>
endobj
6356 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 297.596 null ] >>
endobj
6357 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 286.638 null ] >>
endobj
6358 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 275.679 null ] >>
endobj
6359 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 208.929 null ] >>
endobj
6360 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 197.97 null ] >>
endobj
6361 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 187.011 null ] >>
endobj
6362 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 176.052 null ] >>
endobj
6363 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 165.093 null ] >>
endobj
6364 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 154.134 null ] >>
endobj
6365 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 123.25 null ] >>
endobj
6366 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 112.291 null ] >>
endobj
6367 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 101.332 null ] >>
endobj
6368 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 90.374 null ] >>
endobj
6369 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 264.722 null ] >>
-endobj
-6370 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 6320 0 R /XYZ 81.145 79.415 null ] >>
endobj
-6371 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 242.804 null ] >>
+6319 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6372 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 201.957 null ] >>
+<< /Filter /FlateDecode /Length 3183 >>
+stream
+x\#9+d&AV4c./$dH1ԥ#$A`6/~oF\9+$\~X4Z\~7Υ/^&]eNkikA83zI{ \|{CW(?qH/gC߅tDzX^^d?\7f^ۨH#xg^\4 =]%Ma#ho{h#<]+եce:zt[S/zey #u%AŒ^TG3pAsX>?mL ?X&,W0L^PPoM1i.kf=: ~O$9U^Kd$NH@dZ^~X ,-\/Y4 1-V0[b6SL/0)#GgP4&u
+VE~{2bkyslwsśH$(#]kGIu)@AUC:DN)`!0NP8S>tA]PB1jW #BF.|X:K5ɏfp%5;6լuʔ2PR=Tae*kU(=b= 7G1ƎOW~GuZw1yǴGJ
+1w9VM|}_+H7*Vnn6Q1CYUV&Hb8s6VRL/BiFW?74]V Z44g;@EmY_3Ez*tLa+F$ fum
+;[t >lr&7ߘ%b]rRdB{-
++U/g
+>ȭEGo_8RsgIM0ėҐG v V>h=hW
+fԭi"4R!dM_5<|+đq&o#Y$QۢɆC):x<<퐿z>mÃ8#56}.Ŝ> 0ϭ'WNÐS*jG~]O$ؗh+HI5ZJz!z 2W ŌCHp VkNdakq&A},k3..E;~@Ju}&__<YKu>q
+u[e
+t{ܬ.ӹdy}~!&BMKa}F?iSd|Um^pmٲmVt0Nμ6 C6@NkwN8,fÃjdA/=\ł?*6{_EShrɶZA#ZmjWz94eؠ;z31?˹ٹϟ\P^
+endstream
+endobj
+6371 0 obj
+<< /Type /Page /Contents 6372 0 R /Resources 6370 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6373 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6371 0 R /XYZ 78.37 808.885 null ] >>
endobj
6374 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 768.829 null ] >>
endobj
6375 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 757.87 null ] >>
endobj
6376 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 746.912 null ] >>
endobj
6377 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 735.953 null ] >>
endobj
6378 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 629.252 null ] >>
endobj
6379 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 618.293 null ] >>
endobj
6380 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 114.286 null ] >>
-endobj
-6333 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6371 0 R /XYZ 81.145 590.158 null ] >>
endobj
-6383 0 obj
-<< /Filter /FlateDecode /Length 1546 >>
-stream
-xZMoFWEF~sW'i(ts i E*$]'߻%W4Gv"v̛{>هk={Ӈ3b^`xF|Iěνѯq_c|YGpHof]K|&Ư"UaƳ<͋eG?Z1[-X c$jOfyiEn$İ>"mBa(rbj]pM&~9=a]o^-7;V7L""5f"!Qᢗཀྵ@D 7gE> y0<ɮSC8LZzEnqp`%HW 0*VeegPVRSLoYay^wvoS?2Q.fiIIe.kv~i,'. JoLjcbePwFS7U!jԣO$H4OIòjdxG+X|TQ<v^"co#BLD=ʟ(eȒ8,K>=oA䠿: %OZPuph8uMB2F0b;6 Aj+&ɰnt.h#'H)fm{U4vo<z" H\c"I8D),~ E^Fq4Ydsjf9b΁y;hp)R-5 qЍfUgӷSM^zTKPVLT-90A`:K㰨|rKC/fAq(o?>頇PNabW˛c><5S8SnܖBa9GOL}N.7S
-Sso}0]tKi= 9M&^fŁ2m6EGm߱_/[d(;F&wWUXTqYIKz|܅seMHc'/T dHYRmu;ʩ@\}xs]55^Φx۔p
- nNpo hU>
-k^D û.twK\%ST+V@}<`bxmM8<bFRઽPX 4)`.$K,d1T
-sݧ^8ۧ' ۋΩWj*̻0,6hަľKF@I,6Y`O04X`.v$¦uZ_UnW 16囃;((kc^Fsx㜿>
-\,? upe6lT(sz!67l3*=5ǽ$ Ti4z'҇
-7 .a(i]`o4pBq .zW{qgGؒaCr 3$-6v55]w[68Fz?Ȏ2=i!D
-endstream
+6381 0 obj
+<< /D [ 6371 0 R /XYZ 81.145 579.199 null ] >>
endobj
6382 0 obj
-<< /Type /Page /Contents 6383 0 R /Resources 6381 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6371 0 R /XYZ 81.145 568.24 null ] >>
+endobj
+6383 0 obj
+<< /D [ 6371 0 R /XYZ 81.145 557.282 null ] >>
endobj
6384 0 obj
-<< /D [ 6382 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 546.323 null ] >>
endobj
6385 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 535.364 null ] >>
endobj
6386 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 495.274 null ] >>
endobj
6387 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 484.315 null ] >>
endobj
6388 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 473.356 null ] >>
endobj
6389 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 462.397 null ] >>
endobj
6390 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 422.307 null ] >>
endobj
6391 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 411.348 null ] >>
endobj
6392 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 400.389 null ] >>
endobj
6393 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 389.43 null ] >>
endobj
6394 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 378.471 null ] >>
endobj
6395 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 367.513 null ] >>
endobj
6396 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 339.378 null ] >>
endobj
6397 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 328.419 null ] >>
endobj
6398 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 317.46 null ] >>
endobj
6399 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 306.501 null ] >>
endobj
6400 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 295.542 null ] >>
endobj
6401 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 284.583 null ] >>
endobj
6402 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 244.493 null ] >>
endobj
6403 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 233.534 null ] >>
endobj
6404 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 222.575 null ] >>
endobj
6405 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 211.617 null ] >>
endobj
6406 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 200.658 null ] >>
endobj
6407 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 189.699 null ] >>
endobj
6408 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 178.74 null ] >>
endobj
6409 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 432.094 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 150.605 null ] >>
endobj
6410 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 421.136 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 122.47 null ] >>
endobj
6411 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 111.511 null ] >>
endobj
6412 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 100.552 null ] >>
endobj
6413 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 89.593 null ] >>
endobj
6414 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 347.412 null ] >>
-endobj
-6415 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 6371 0 R /XYZ 81.145 78.635 null ] >>
endobj
-6416 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 295.606 null ] >>
+6370 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F73 267 0 R /F72 266 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6417 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 284.647 null ] >>
+<< /Filter /FlateDecode /Length 2382 >>
+stream
+x[Ɏ#WC(T* s _:ܓdFȬ
+ -Ls{3h
+ǔeWGY޳hf ptt_1IF_D)gnQZvi]>ʿ(RfssRbFi,9 Y284sړMoT$ %9 x$Ғei̜LIN-ņ//]GZVpy`|e Jb[k~vw=ם>uͼ>/sdt-%;=OQM1-“
+y ^tzz ?G2;>*G"kR=nit.V#vyP5 Ul {yrC,./Z˸Uf* ݈th٪7G hͼWLUޗ )hY6mаܦEry|į$hT%Q!GLnρX~l2Ɉ Б$ONB0)Fm`y= 6B>޷qXG49 fw*Ь,Z"3(A
+3p@1}4=g:;fz?2c"DD9X">'Mf+Hپ$YBOw{߉{>NKrA"cݛk IW^#ƕ3隣4b|r+6<,<?ްxp%$#1 YyW} wKF=jRp=oώ^߶A9XBoˢa%)͋h
+
+WZšK'_,/lggN٘{ cHz%1veְ/[EŶXM2m3i+XpY24B
+5Y=Ѕx S(Jf %^HG'VʀMԱqt׽JIϵ =e%Gl ZŊhqp O8ci(:f 4
+endstream
+endobj
+6416 0 obj
+<< /Type /Page /Contents 6417 0 R /Resources 6415 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6418 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 6416 0 R /XYZ 78.37 808.885 null ] >>
endobj
6419 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 754.882 null ] >>
endobj
6420 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 743.923 null ] >>
endobj
6421 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 732.964 null ] >>
endobj
6422 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 704.072 null ] >>
endobj
6423 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 693.113 null ] >>
endobj
6424 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 682.154 null ] >>
endobj
6425 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 671.195 null ] >>
endobj
6426 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 660.237 null ] >>
endobj
6427 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 649.278 null ] >>
endobj
6428 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 638.319 null ] >>
endobj
6429 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 627.36 null ] >>
endobj
6430 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 616.401 null ] >>
endobj
6431 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 605.442 null ] >>
endobj
6432 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 100.339 null ] >>
-endobj
-6381 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6416 0 R /XYZ 81.145 594.483 null ] >>
endobj
-6435 0 obj
-<< /Filter /FlateDecode /Length 2674 >>
-stream
-xڭZߏ6~_C KtQ h-! խ,gH,zދeQȏ3̈xv7ó^awDRJ>^"
-1UDah:\\xﲢȊ;V/1L s[^eHJg"v]-@\!}ۊNݗ$7<q//4FrqIM+хQR%9Gj4ʺQ<1'h&v]Ԗy=i+:kۖgG&"DD/Ӳ*tSrAX<G-#a،#P@±D@!QHmn9 ,H{k6ڽһv[R#ˤm~{w_e݅NPD9'$MĨOcXh,崱)FS>IiwH&ɓkzܤ sqOBюw݅2/Wk~cV4mW]k8ߗqG٧܇8d{`#X/o*+(<+R/T宵\Qvϟn^ے$q> ZM^N,e~[l=A ZZҼnx<~&,l&CљI$ۼYDj$,C2V=aDCu4Qq͹"1{"
-c:Do9f(`ۗuUwzY7 Wh6{+:lR{TL 3#L'fF{0K`lx8DInrz*l3>8"XzUmƆ$K?eP8Ex\{\9cFnons4;|IR!GN޾>Rg}Q.3ǧ4YYKPAw㚣- AU1>٦hmdIM#(=f8I<ژn Y@ax8~  aꌲ(aTX2tngsTw&Ili|e0Ml2CN'B 9q06:bё4+p+'VDKz1BKODOM#׏~Hi|BQbXΏN.bTWh0-o<òNe.C䓌Ʀ6r0dcJI|:L:KmKM:ͺ&[e`/QγG!4:S^qO )g>ppꙶ5)
-H}気. h&&XW}=A<tGͲYJLjov}vd2FVCІxKRQ_aU3VVEIզ+=yeprs2Tº)YU 4J#*W.O4 n &ȗYќo!#܅ýh ܷUeLiLڇf_(&[ħuԷ[z8"6\wmXkP`?W$VG?uUH{Kĸ8HX\qnY,ڐ?Jz
-;5!T"nD*ȯySYcl{y'@<]F@)&s$h_EI/о/N ͽ.ٚ`i͙aM [gLh&wPUpЯ^*&ªrS@ׯ'
-endstream
+6433 0 obj
+<< /D [ 6416 0 R /XYZ 81.145 583.524 null ] >>
endobj
6434 0 obj
-<< /Type /Page /Contents 6435 0 R /Resources 6433 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6416 0 R /XYZ 81.145 572.565 null ] >>
+endobj
+6435 0 obj
+<< /D [ 6416 0 R /XYZ 81.145 561.606 null ] >>
endobj
6436 0 obj
-<< /D [ 6434 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 550.648 null ] >>
endobj
6437 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 539.689 null ] >>
endobj
6438 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 528.73 null ] >>
endobj
6439 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 517.771 null ] >>
endobj
6440 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 506.812 null ] >>
endobj
6441 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 495.853 null ] >>
endobj
6442 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 484.894 null ] >>
endobj
6443 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 473.935 null ] >>
endobj
6444 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 462.976 null ] >>
endobj
6445 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 452.017 null ] >>
endobj
6446 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 405.193 null ] >>
endobj
6447 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 394.234 null ] >>
endobj
6448 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 365.342 null ] >>
endobj
6449 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 354.384 null ] >>
endobj
6450 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 343.425 null ] >>
endobj
6451 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 332.466 null ] >>
endobj
6452 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 449.031 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 267.709 null ] >>
endobj
6453 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 438.072 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 256.75 null ] >>
endobj
6454 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 213.91 null ] >>
endobj
6455 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 202.951 null ] >>
endobj
6456 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 191.992 null ] >>
endobj
6457 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 181.034 null ] >>
endobj
6458 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 170.075 null ] >>
endobj
6459 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 137.198 null ] >>
endobj
6460 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 126.239 null ] >>
endobj
6461 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 115.28 null ] >>
endobj
6462 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 104.321 null ] >>
endobj
6463 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 93.362 null ] >>
endobj
6464 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 6416 0 R /XYZ 81.145 82.403 null ] >>
endobj
-6465 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 228.857 null ] >>
-endobj
-6466 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 217.898 null ] >>
+6415 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6467 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 206.939 null ] >>
+<< /Filter /FlateDecode /Length 2423 >>
+stream
+x[;7 WL
+$fnnd<LڤoK}NR[qA
+<-$z6JxKj4%~eZk)rt<5e4%1xZ*MCRYg)8QIik;iW2PY|f4UE_ݨCRFȬyfOHR.ꆓ%UCCkEtISձ]}YJ5V!Vֵm9&HC`4A,R/55teJ2GNB@rN)M(nRFjQ@XE'ex@%z6gbۻ\x sD5׮B9]hǸ<As%71>0Ti #8i9Jr
+Z,eTT^Jj)llqߍD΄՞<xV'G햝g}a
+68G%m,ɸ]G^i4S|FI]±zPcrIBrI{3&(gU D6~$0_+0tDtG:Nޒ{hPyimI2m&S8.@INS<uۨc%a_ۍQ
+ӛlAg#&';%U`:[g^ ¶'amS=W^ɧd `VLڄ̚#O},BgzދU?[Hir?7d*HoS%{Ow}KDz0v%JH*$؈:Zsst;uERlG7 | Nfw#]뜱EƖ+T*d1%AfH9{Kl}ၣ˸TGTAD37Li42SE$Gs4{v{,/4:74Q(8AeIE-=QٿMopU `扣 \%GAmo 뮉9\f`AsCd:Mad@;Lцxfi i$j#'B1o'VV䖑 F/2DOM߇w-c]IdlqKE%šHsu}pm3`wQ\p ,Qt.D2r أuUa
+b7
+80PXˌ gio0E,YiNz ׯ;(yt.,]F}'̙ d
+endstream
+endobj
+6466 0 obj
+<< /Type /Page /Contents 6467 0 R /Resources 6465 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6468 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 6466 0 R /XYZ 78.37 808.885 null ] >>
endobj
6469 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 768.829 null ] >>
endobj
6470 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 757.87 null ] >>
endobj
6471 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 746.912 null ] >>
endobj
6472 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 735.953 null ] >>
endobj
6473 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 693.113 null ] >>
endobj
6474 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 682.154 null ] >>
endobj
6475 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 671.195 null ] >>
endobj
-6433 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R /F75 317 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6478 0 obj
-<< /Filter /FlateDecode /Length 2380 >>
-stream
-xڭZ]۸}ϯ0/6voX춳m/a0d[%Gg{)){lsxxyy ~_tGL!%䳇wn%
-dH$}f?G)Tr٪+.HLY=]n};JNk-S|}nj7mg~4-3P ټ~ ډyQ]<-ga[s |֗~LY
-,>fӂs֟}gZr=
-*GpSF
-2FFK j5]Ye.4Pmnď2J7R>:odwrLd*hqjӼ7KUhm|u'9)7?IԟQu
-OV@͉w ( p
-Du./J *zaޜ }?a(֕=rAۻl>ϛ|sh,BD46jՕ&H=sӚ"ʾ
-3`*)|dT2% ::W&%KDh]o&tpwn+4GIn?1z 1P|ʨ_.yd ʕ
-h7
-|FMEuE=Hne;}ȫavV)`DLB0btII:aevYf͇.7o
-B<?, k p}E3nHtT;Cƭl8'h3՜I@m7)7EҔt,]PJ}FۦmǢ+5^CX`8J|=ӥ+T7Yp&OoqM
-b ~IY'E"
-endstream
+6476 0 obj
+<< /D [ 6466 0 R /XYZ 81.145 660.237 null ] >>
endobj
6477 0 obj
-<< /Type /Page /Contents 6478 0 R /Resources 6476 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6466 0 R /XYZ 81.145 649.278 null ] >>
+endobj
+6478 0 obj
+<< /D [ 6466 0 R /XYZ 81.145 638.319 null ] >>
endobj
6479 0 obj
-<< /D [ 6477 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 627.36 null ] >>
endobj
6480 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 743.569 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 616.401 null ] >>
endobj
6481 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 732.611 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 605.442 null ] >>
endobj
6482 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 721.652 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 594.483 null ] >>
endobj
6483 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 710.693 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 493.86 null ] >>
endobj
6484 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 699.734 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 482.902 null ] >>
endobj
6485 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 688.775 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 471.943 null ] >>
endobj
6486 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 677.816 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 460.984 null ] >>
endobj
6487 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 650.206 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 450.025 null ] >>
endobj
6488 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 622.595 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 439.066 null ] >>
endobj
6489 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 611.636 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 428.107 null ] >>
endobj
6490 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 600.677 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 417.148 null ] >>
endobj
6491 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 589.718 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 406.189 null ] >>
endobj
6492 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 578.759 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 395.23 null ] >>
endobj
6493 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 551.149 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 384.271 null ] >>
endobj
6494 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 540.19 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 373.313 null ] >>
endobj
6495 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 529.231 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 362.354 null ] >>
endobj
6496 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 501.621 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 351.395 null ] >>
endobj
6497 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 490.662 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 340.436 null ] >>
endobj
6498 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 479.703 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 287.634 null ] >>
endobj
6499 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 468.744 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 276.675 null ] >>
endobj
6500 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 457.785 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 265.716 null ] >>
endobj
6501 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 446.826 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 236.824 null ] >>
endobj
6502 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 435.867 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 225.865 null ] >>
endobj
6503 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 424.908 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 214.907 null ] >>
endobj
6504 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 413.95 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 203.948 null ] >>
endobj
6505 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 402.991 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 192.989 null ] >>
endobj
6506 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 392.032 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 182.03 null ] >>
endobj
6507 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 381.073 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 171.071 null ] >>
endobj
6508 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 370.114 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 160.112 null ] >>
endobj
6509 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 359.155 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 149.153 null ] >>
endobj
6510 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 348.196 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 138.194 null ] >>
endobj
6511 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 337.237 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 127.235 null ] >>
endobj
6512 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 326.278 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 116.276 null ] >>
endobj
6513 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 315.319 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 105.318 null ] >>
endobj
6514 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 304.36 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 94.359 null ] >>
endobj
6515 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 293.402 null ] >>
+<< /D [ 6466 0 R /XYZ 81.145 83.4 null ] >>
endobj
-6516 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 282.443 null ] >>
-endobj
-6517 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 271.484 null ] >>
+6465 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F25 609 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6518 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 260.525 null ] >>
+<< /Filter /FlateDecode /Length 2021 >>
+stream
+x[r6+
+sj o Hi'QKI[ux_>ƽA/wBwwh8_@Oyز3ͪb-JK1 L=(<.($iu)qǤiI=P_ fIE/!G*1R)~{*(0'%8#e͊z_7 !cfLmYiR
+7e8¨]}18&>㛝2[Mz("u6?=,Gh9Pj(y-mDLGyQ9{0" ϧdQ(R,UnJ;saXȳJ
+jzh=d4F˱RT!,sڟ,+5!EBa3K%C:Cz?
+nxe!=i%-hVEiXf:ג\HmP/)4M\nRwH~kԹ>=m'Ru yȄ<GhV$RQ$s-A@ RPDPLO.zj\y/qqI.5o]ܺTy<k~/}#Ʈj-u|~/`s#mwiԅ^E,KނG"#Ǒe,eXH8砲C޻أL?!1a(еޅ
+`=5[&Sܑ5G6E|-Bn6.[ҒS2D{)C]km.SdgZ3I5 2FSi:ZCm4Wt/BBrֲ@}/.ͻpyqq.͂ ]-N;9q,Da"}{ύ6HZ(C}s,!2 C:[S*ͻ5煶dszpk]YO\@o\XRƜwۡkӿ<Pp
+endstream
+endobj
+6517 0 obj
+<< /Type /Page /Contents 6518 0 R /Resources 6516 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6519 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 249.566 null ] >>
+<< /D [ 6517 0 R /XYZ 78.37 808.885 null ] >>
endobj
6520 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 205.304 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 768.829 null ] >>
endobj
6521 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 194.345 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 757.87 null ] >>
endobj
6522 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 183.386 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 746.912 null ] >>
endobj
6523 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 172.427 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 735.953 null ] >>
endobj
6524 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 161.468 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 724.994 null ] >>
endobj
6525 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 150.509 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 696.102 null ] >>
endobj
6526 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 685.143 null ] >>
endobj
6527 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6476 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6517 0 R /XYZ 81.145 674.184 null ] >>
endobj
-6530 0 obj
-<< /Filter /FlateDecode /Length 2055 >>
-stream
-xڭZMܸW4Xso,"94@@Ш3JRGRg5Sٔnk&"bztI7K~DMF2ŔQH7t3F+JRE7ߓ<y苲NXz+ǝs}x5Ʉ1Kep.1
-m3s1Pgz!H=WT -;5(
-&\Rs:6,RDH)h rQy[=Ǿrvdr1k~mk>Ew?%z^0/vۼӜ=6„ cf)<mu;ew8ŠosSM>9)a& )R诳=vC5n?Wm\7K0~d
-s"uϱSٵzh}jWT䈶^H"28-C 0A}m>m{)^q",3Էhj2x@#R=K4~`*1qHׂr}+?O]5^fm7/oh /Xq,(Ca\%&)p;B[eT9JKc:yG[ؘe8箒<F5 j<HziS:@m$5_n xMgdŃ]#ȦlTR[@|ky9ݩJ2$e! \,2 $'K|&?kh0Й \vo4^k/^f
-.q5B,zM{0q ̑\R6K a:X˱-r` X˱0T.Coɱؼ 9e2Dz9e29 ƶ]t׹pl[?K~v=QNE!q"CӸ.|D
-aˮyqX@uTO9^..|52#4IUֿ@ -QVw?
-
-;Rrzi,i9WI"_[
-2Y*EmuM^﷟mXK e<cEQ BvmDȭmh@d:H^Izu( A*d] I祺QICxf"uP%:/YH߉Ov
-CRM NkoTJOq!B}9ڿ(z=b K"Vp/oiʄȫ4j Fh[(h=BT4#4~ĺvA#4bGɷQT1STз0P|h.0O)Kz<Mz׾R{>};?'=-
-iʮ}L,J0'V@J")|=?urߺuRKه?NOI)֟ ԌB+gsBHF}wO]sPDB'rR` i8K~=C3fHN}s XÊVe .FC5E,EdMw|!g5~ t&I
-endstream
+6528 0 obj
+<< /D [ 6517 0 R /XYZ 81.145 663.225 null ] >>
endobj
6529 0 obj
-<< /Type /Page /Contents 6530 0 R /Resources 6528 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6517 0 R /XYZ 81.145 652.266 null ] >>
+endobj
+6530 0 obj
+<< /D [ 6517 0 R /XYZ 81.145 641.308 null ] >>
endobj
6531 0 obj
-<< /D [ 6529 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 630.349 null ] >>
endobj
6532 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 740.936 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 601.457 null ] >>
endobj
6533 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 729.977 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 590.498 null ] >>
endobj
6534 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 719.019 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 579.539 null ] >>
endobj
6535 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 708.06 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 568.58 null ] >>
endobj
6536 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 697.101 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 557.621 null ] >>
endobj
6537 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 664.224 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 546.662 null ] >>
endobj
6538 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 653.265 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 535.704 null ] >>
endobj
6539 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 642.306 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 524.745 null ] >>
endobj
6540 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 631.347 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 513.786 null ] >>
endobj
6541 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 620.388 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 502.827 null ] >>
endobj
6542 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 609.429 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 491.868 null ] >>
endobj
6543 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 598.471 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 480.909 null ] >>
endobj
6544 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 469.95 null ] >>
endobj
6545 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 458.991 null ] >>
endobj
6546 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 448.032 null ] >>
endobj
6547 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 437.073 null ] >>
endobj
6548 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 426.115 null ] >>
endobj
6549 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 415.156 null ] >>
endobj
6550 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 404.197 null ] >>
endobj
6551 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 393.238 null ] >>
endobj
6552 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 364.346 null ] >>
endobj
6553 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 353.387 null ] >>
endobj
6554 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 342.428 null ] >>
endobj
6555 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 331.469 null ] >>
endobj
6556 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 320.511 null ] >>
endobj
6557 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 323.502 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 309.552 null ] >>
endobj
6558 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 298.593 null ] >>
endobj
6559 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 287.634 null ] >>
endobj
6560 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 276.675 null ] >>
endobj
6561 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 265.716 null ] >>
endobj
6562 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 254.757 null ] >>
endobj
6563 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 243.798 null ] >>
endobj
6564 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 232.839 null ] >>
endobj
6565 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 221.88 null ] >>
endobj
6566 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 181.034 null ] >>
endobj
6567 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 170.075 null ] >>
endobj
6568 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 159.116 null ] >>
endobj
6569 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 148.157 null ] >>
endobj
6570 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 119.265 null ] >>
endobj
6571 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 108.306 null ] >>
endobj
6572 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 97.347 null ] >>
endobj
6573 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 6517 0 R /XYZ 81.145 86.388 null ] >>
endobj
-6574 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 95.357 null ] >>
-endobj
-6528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F23 660 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
+6516 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F19 182 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-6577 0 obj
-<< /Filter /FlateDecode /Length 1693 >>
-stream
-xZIoFWEF싀F:@:zh Be[E*(Yۣ} M;xA?^\2qiegpvX8"LhFfw++{w;yf[<Nl7WWWdOy-տ?.(Q%'#P2#LD3$ U1H׷u,ȣ Sb0!tY$<f4 ju&77 ]&E)4T0%#W\ŘZy#
-"JCd9),<RO1J# DW'74q&R78!W
-&bk˙
-q%<"Fm8n\$y<Ο&YeC>%ˢ VD y;;mT-(ЍLf?5X2Ӟ ):D>2(U!R|6'DF3 bOVwD8 ÝZ[LbhctaeQ@LD`L5Wp&"B`q,B6p}ַXx|0˓iV$KW<=IBi㺸zё T6ܡ"=BE2PӻPOg|+\>X[7G%]khC\Lt;Ks"/FIYp@/
- ÏQǮ/թKa`h턥
-5Dk@jşМ0k
-j#U<F5w (GhV}9`Jgɍ$Rp[}DkAZFG:WjV\2?̠"=Bu}?)yipEh/&--#4bެ0ah//-m#S-1͇|QQA5mEuvI%TF}[Us02_%8#({d;;xQ0H#3TDukQ/0Ƿh2lA8Sk罹~&;{dߒx}<-`,%|N.LDoD/-wh,/\$ {hw;mh8Ļ] u5kS:0&m z>q`й הi11EV>$+ljcC!8s3aZ-#̵
+6576 0 obj
+<< /Filter /FlateDecode /Length 2577 >>
+stream
+x\n#;+ CV Xt;[l7OG7ɦZd6h,"5_nF$sV CIfۓтq-N97h92˿Zpݴ9YF[ I]E<8_g{/K;ݛNK9Bx'
+\DPVetdh"[;qٗ#IFϗ(o > ]#(RRj徭R1!1xTTQJ$/J.B^젴E>ŗrkD,V89Nk̻4`pۤ_7NZМ@ 9FX$Ohf
+)Ź2^E{*Vrδ!i>V*|S^MU`ԚRę 6xM|G4eF4H1h#s>hXeVzjgnӄyfLש E*f24A:
+b*(uWh C
+1KD^ym pkȹ
+殈,.qH~HO-t'XJwQĨ'KB0Ɗkyr(R ]Qf]ǞV$
+h0!{)%4@en=$YcF2nnHgveX͞Z!>o*\.
+uɊ^V<
+o\;rƴRj&~Wj>қhu-yo.krra7c*rJkkKVLXf/b?{#qJ~]JFS;]J DY/{G#|#Mz٦@bAQRn>vyi|~thBAGOp[mJ&[y/*&t/8{pIhqÈ{/= Mos5D}!TVTxFRO_'R3\W³S&눽n] ¨d9
+G 6@?Z]jPqmû2wȴAj*"jCbn؜{M)jv}+gBXf Y Iauw= 2$/ kKefZ`m j\Ymolsjh8qxM'vN3k];nsT;&eި{Gq'gD
+lcsQ> ӛdAR|P׳B2%i,;4'{$6@kZ<|,@JtɑsH ŴZeӔ'I ]{ũQHB?YH1(}~b*r705\2Tds@C97k{{s9G66
+n{6; MdW5P@Y;[Wg=`z!@u6Sc]AL#QZa
+-\qϒ
endstream
endobj
-6576 0 obj
-<< /Type /Page /Contents 6577 0 R /Resources 6575 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+6575 0 obj
+<< /Type /Page /Contents 6576 0 R /Resources 6574 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
+endobj
+6577 0 obj
+<< /D [ 6575 0 R /XYZ 78.37 808.885 null ] >>
endobj
6578 0 obj
-<< /D [ 6576 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 768.829 null ] >>
endobj
6579 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 755.2 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 757.87 null ] >>
endobj
6580 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 744.241 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 746.912 null ] >>
endobj
6581 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 733.282 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 735.953 null ] >>
endobj
6582 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 722.323 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 707.061 null ] >>
endobj
6583 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 711.364 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 696.102 null ] >>
endobj
6584 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 700.405 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 685.143 null ] >>
endobj
6585 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 689.446 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 674.184 null ] >>
endobj
6586 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 678.487 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 663.225 null ] >>
endobj
6587 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 667.528 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 652.266 null ] >>
endobj
6588 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 656.569 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 641.308 null ] >>
endobj
6589 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 645.611 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 630.349 null ] >>
endobj
6590 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 634.652 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 619.39 null ] >>
endobj
6591 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 623.693 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 608.431 null ] >>
endobj
6592 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 612.734 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 597.472 null ] >>
endobj
6593 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 601.775 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 586.513 null ] >>
endobj
6594 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 590.816 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 575.554 null ] >>
endobj
6595 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 579.857 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 564.595 null ] >>
endobj
6596 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 568.898 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 553.636 null ] >>
endobj
6597 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 557.939 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 542.677 null ] >>
endobj
6598 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 546.98 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 531.719 null ] >>
endobj
6599 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 518.72 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 520.76 null ] >>
endobj
6600 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 507.761 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 467.958 null ] >>
endobj
6601 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 496.802 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 403.2 null ] >>
endobj
6602 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 485.843 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 392.242 null ] >>
endobj
6603 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 474.884 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 381.283 null ] >>
endobj
6604 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 463.925 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 370.324 null ] >>
endobj
6605 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 452.966 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 359.365 null ] >>
endobj
6606 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 424.706 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 330.473 null ] >>
endobj
6607 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 413.747 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 319.514 null ] >>
endobj
6608 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 402.788 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 308.555 null ] >>
endobj
6609 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 391.829 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 297.596 null ] >>
endobj
6610 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 380.87 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 286.638 null ] >>
endobj
6611 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 369.911 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 275.679 null ] >>
endobj
6612 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 358.952 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 210.921 null ] >>
endobj
6613 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 347.993 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 199.963 null ] >>
endobj
6614 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 337.035 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 189.004 null ] >>
endobj
6615 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 326.076 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 178.045 null ] >>
endobj
6616 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 315.117 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 167.086 null ] >>
endobj
6617 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 304.158 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 156.127 null ] >>
endobj
6618 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 293.199 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 145.168 null ] >>
endobj
6619 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 282.24 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 134.209 null ] >>
endobj
6620 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 271.281 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 123.25 null ] >>
endobj
6621 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 260.322 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 112.291 null ] >>
endobj
6622 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 249.363 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 101.332 null ] >>
endobj
6623 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 238.404 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 90.374 null ] >>
endobj
6624 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 227.445 null ] >>
+<< /D [ 6575 0 R /XYZ 81.145 79.415 null ] >>
endobj
-6625 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 216.487 null ] >>
-endobj
-6626 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 188.226 null ] >>
+6574 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F25 609 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6627 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 177.267 null ] >>
+<< /Filter /FlateDecode /Length 2279 >>
+stream
+x[˒۸Wv{wn>ER,Ljfؑ)<6q/<3?ѿ?^/_F\9+@^>"hLs{1Z0_9K/\__\,sZ ]oI/J* Iz}?qhF8w᭶6YZݕ2xdfOavZR .GP;8- )w?5CFk-
+9"SsZjW]UiB~M#@]Ӥ0NBd<ZmjKՖ Í j-uj+x$u-TJiajZ%OFÖIGߖ'xs|J$qͤsy4O!\ۄZ&xpq
+Ru Mb>QKDi Э
+КdHtpl5<%{mTb*9Fk D F=9HI`Ag(y.MRc}q EKd>cD\!qe
+\jRs8f׊Ƒ
+b[m;;BIX`Wޯ\`Jia30)5)X $ Z{0UO _A(]߁E-% q!ip>~Þ"Z!:*x~4OJ!muERnF9\w\H{g鬖|{ ?2V.:zG|kV0fޑ/d!D&_8蒈Kuk\%:CD DJj[0J/J7%6%󩢄%$VOn%H%F%9*J WN}B5 tL@a$ZC?__I0ωy1\L壌:'Ft~1,240ޜY`)Ȝ#:C'"S@L(m~Dc?ƒTzV}w3 ffgWw&~@:n
+ugZuYQ_P&֪r@"^?Z58Y#yҝŷMA7Ohh\+;P,'߮x"i?GWV{Yץ; _[u8tNǜXy;K?է_y6ϴqXPLYê[Ob7<f[M?(Āhg{UYYɋ"!q+vU#'80:s5zܜVWԔZ8XO[ MRdVgƌHZn,)")KSeP'or.'2fĉֺrˉ(t` Lm&?WM\%u*>\|/ذ|T%34 E{k~TKugPi3EWZK2I;V45SCUASp5{{szڙ Bwb.!GEo[CPQOPC#ۣdj>[ֿ'jåb[\Z;9y{7]K9sDÿtv
+
+endstream
+endobj
+6626 0 obj
+<< /Type /Page /Contents 6627 0 R /Resources 6625 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6628 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 6626 0 R /XYZ 78.37 808.885 null ] >>
endobj
6629 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 768.829 null ] >>
endobj
6630 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 757.87 null ] >>
endobj
6631 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 746.912 null ] >>
endobj
6632 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 735.953 null ] >>
endobj
6633 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 724.994 null ] >>
endobj
6634 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 714.035 null ] >>
endobj
6635 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 703.076 null ] >>
endobj
6636 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6575 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6626 0 R /XYZ 81.145 692.117 null ] >>
endobj
-6639 0 obj
-<< /Filter /FlateDecode /Length 2011 >>
-stream
-xZ[o~ Ѡ1wx>EaM!h5V#i%9"DQ<tx$υ<7o_ _M60 0 o&HxK$柑Hnw7Rmd&Ddh 6;6Kt8m&1*hK Q*b@rDzK'*5<Y7<%QUegEYډ4uYz7O
-_ܛ;"YfڧR]8z r
-a"ȿ"LbDAu1lh;^HΐP(p&~}7a+i+ʷ%1*ѬYsx8Ril Ob*Ip&BϧĐ/TD5tcZ܃@97/CAgc(q]6,N 2aKmgݗ?7>qȶq'A¸$"%D(Lj#ׄP֪|o^Hɼ,LB4?>4CQ![S8˜!*\z"D>d P "d>z;
-!}'At*# ꈪ]tEl}#Q5a* %1ʂ1 `nY ,gt`^d/x|Wq [w/§Eћf1Uצ'F1c}4/;{K%<(ou6؇Ƹ ,>fI~\JeN+eݸh_Ns{1#G814LLui+!=<Z7ZT삮iW<*4VD(?*7ejڑjPۙe)mw9^igR|X*rx^h$YbշFh؅橷ccBo썙c78r1j|<G8}y]ٖ fT] a.X8@@uhu]Z7CRS35J빏0n}/ٺ%1s[/&alܼ%"oyK8i|i3oapnƔ@;0XO&LAZs"oA9k{@l2<`ʉ)G\At|xQ#5k 9?].-j
-endstream
+6637 0 obj
+<< /D [ 6626 0 R /XYZ 81.145 681.158 null ] >>
endobj
6638 0 obj
-<< /Type /Page /Contents 6639 0 R /Resources 6637 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6626 0 R /XYZ 81.145 670.199 null ] >>
+endobj
+6639 0 obj
+<< /D [ 6626 0 R /XYZ 81.145 659.24 null ] >>
endobj
6640 0 obj
-<< /D [ 6638 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 606.438 null ] >>
endobj
6641 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 595.479 null ] >>
endobj
6642 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 584.52 null ] >>
endobj
6643 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 573.562 null ] >>
endobj
6644 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 706.067 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 562.603 null ] >>
endobj
6645 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 695.108 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 521.756 null ] >>
endobj
6646 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 684.149 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 510.797 null ] >>
endobj
6647 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 673.19 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 499.838 null ] >>
endobj
6648 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 488.879 null ] >>
endobj
6649 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 477.92 null ] >>
endobj
6650 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 425.118 null ] >>
endobj
6651 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 414.159 null ] >>
endobj
6652 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 403.2 null ] >>
endobj
6653 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 392.242 null ] >>
endobj
6654 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 381.283 null ] >>
endobj
6655 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 370.324 null ] >>
endobj
6656 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 359.365 null ] >>
endobj
6657 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 348.406 null ] >>
endobj
6658 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 337.447 null ] >>
endobj
6659 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 326.488 null ] >>
endobj
6660 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 315.529 null ] >>
endobj
6661 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 262.727 null ] >>
endobj
6662 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 251.768 null ] >>
endobj
6663 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 187.011 null ] >>
endobj
6664 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 176.052 null ] >>
endobj
6665 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 165.093 null ] >>
endobj
6666 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 154.134 null ] >>
endobj
6667 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 143.176 null ] >>
endobj
6668 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 132.217 null ] >>
endobj
6669 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 101.332 null ] >>
endobj
6670 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 385.27 null ] >>
-endobj
-6671 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 6626 0 R /XYZ 81.145 90.374 null ] >>
endobj
-6672 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 363.352 null ] >>
+6625 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6673 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 352.393 null ] >>
+<< /Filter /FlateDecode /Length 2862 >>
+stream
+xIn#9^MFp
+,j`ξ s_}2S\>Ȗ2{O?qӠ'q29-ӿq./?8G+_Q2/t+BXx`<Li"|sG?=!^8ńrNU<l4wH!H5k*bܱp4oh{oiZr4}$*<Nt8%v\2c"f Lݟp")TNz2λH NzEG
+`dGM߲,L X=u]dJ5
+aNN8?AP#SpTyO;N;&DO%
+g_OJ~BT:RR4,CIs d5݅,a>#qMb@V
+BͤR O?ڹis5[pOdik}"q '-,lTr#[f?BPu]PHzJ 8UL@6'vt:ԑ`&mJ$;tp2 zy{~
+d <ǏW9fOw-KuBhĦUB DK
+ O 6kX]$AC%wh)TV$޶V4rgSR-,>)G+^$;~U&ܡmteޞlBM:y'KD6nqEUs|7g3N\& F IFXPŋE\YZ2@8 ^[i7
+q!VK&WjuҊJ4lve>|o.~ x>0Ljd0{ևx#܇OB^GAXW˓ǔt$*KPoߠP۱Ô.$ 4!hP!*pMHK2o Kq oע
+y+{Ts9LZ:WKzٌZJ1a>}8j^D
+$ 6y͙>.z|oLR#>VneU1CfUkճZb#$ syr'vy;;0cbx8!A&K/Wks`IL's¹+mYϤEczB1jdP'YH6]Ps?0 cG>?P]ļ;Fhh2z%/s([..1za&_ S>D0"Sdz@w`?j<RbfGt,e\ۜ$VVLI<4 2vx)g.M0\Pխ)s\O840r7"Ӥf=6T3bb\^%!rq}lYzD]FFj\xpYŦ6OƱonyh;1NggIǰk85,H
+_Jtm7ia'<x*\8W-اF[}
+NXSgx 0aܩJɲߜW3G)٣ XF6t1 *HC -MSsmoOp[xä ]\JSj 3)p aB~#ܱړiHM 4?e3Ų_8+L]pmTєc='7 E/zJeaO2
+,ħЀq=e4A.uz8ӤߪaLew_gP*C6`(4ޮQL%@Kv~G&Ųs:@ZU'<-7HC׶ȕv>?w`<l;|Jh,C ,[;9:tyn}V=$#!jьb޹3airq)w4`jd+.%1:p4ghO*aɄye5>@hc<Gd9uSl!}hK޸+ۼa Sf*Xe
+
+endstream
+endobj
+6672 0 obj
+<< /Type /Page /Contents 6673 0 R /Resources 6671 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6268 0 R >>
endobj
6674 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 6672 0 R /XYZ 78.37 808.885 null ] >>
endobj
6675 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 683.151 null ] >>
endobj
6676 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 672.192 null ] >>
endobj
6677 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 661.233 null ] >>
endobj
6678 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 650.274 null ] >>
endobj
6679 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 609.427 null ] >>
endobj
6680 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 598.468 null ] >>
endobj
6681 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 587.509 null ] >>
endobj
6682 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 576.55 null ] >>
endobj
6683 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 565.591 null ] >>
endobj
6684 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 554.633 null ] >>
endobj
6685 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 543.674 null ] >>
endobj
6686 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 96.354 null ] >>
-endobj
-6637 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F23 660 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6672 0 R /XYZ 81.145 532.715 null ] >>
endobj
-6689 0 obj
-<< /Filter /FlateDecode /Length 2388 >>
-stream
-xZ[o~_/"~C1足@@`v(;䑔fԅ-δؗD9<<x(_w?~ faT;7,AL-$K~\~.V\]Umq1)n yo.VT/3Tg,
-~r*ʝkA6&Dݐv[4qz#>F[zM ^8zu.g&V,qШYٔe=ڇ>oܝ˛='px1W}*:.fh,MeSV뢸)2f&έcȭ.o٭#|1`8G #uSYgK8#~踟i(CLG&LzF&~04*b!`w!İ8ѳ Q SܯFbPˈq&ѡ!W)ζh6Ou+3FDT q!=Fwf^ XЏXė9wS
-x%6*ղ(+Xv 7K{H1خxر5G3b9f/`&m>1q5ֺ/j4mC`G5Kt)O5j0)@<?lSۃf-$mb4FO_o Iusژ}Jۅ !˾g[h[7a'%Hٖ`(̓7UY>L[שn|l98t"M`խuḠ}Ne‡tdj_G\-z눅l~.B%F ,CJQ26@#NJOwgrM\!e%0d $Dn]s_Sfw$j(&q;@ؐҐ4ʧnL46jlyZc $ ;qCU >:쓃†@ag2ހ|/AMncfM9 x<q\__ڞ59CuTPL3$N_羚)r!q:@_5]P 3$N_r u+CA>Kϳ}UCU c(n
-B).W gsxfYz#nC{:oΐ`bA>oAЊ<Q >@ϑAga'(DʄAvW&%Qv4_ 
-hAT8 ˬAAyBX6AvCkE@e,齷!=?lG~--;x9ԩ}K%꤭*@~#xYuⅽlԟvS{뵦vOlkwIeWG ^열ibyd\ۣ,F΍SjAQW[%@\dHyWt#+{Qk|o29n eQ~ `~
-endstream
+6687 0 obj
+<< /D [ 6672 0 R /XYZ 81.145 430.1 null ] >>
endobj
6688 0 obj
-<< /Type /Page /Contents 6689 0 R /Resources 6687 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6672 0 R /XYZ 81.145 419.141 null ] >>
+endobj
+6689 0 obj
+<< /D [ 6672 0 R /XYZ 81.145 408.182 null ] >>
endobj
6690 0 obj
-<< /D [ 6688 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 365.342 null ] >>
endobj
6691 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 731.316 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 354.384 null ] >>
endobj
6692 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 720.357 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 343.425 null ] >>
endobj
6693 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 709.398 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 332.466 null ] >>
endobj
6694 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 698.439 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 321.507 null ] >>
endobj
6695 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 687.48 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 310.548 null ] >>
endobj
6696 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 676.522 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 299.589 null ] >>
endobj
6697 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 665.563 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 288.63 null ] >>
endobj
6698 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 654.604 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 277.671 null ] >>
endobj
6699 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 643.645 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 266.712 null ] >>
endobj
6700 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 632.686 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 255.753 null ] >>
endobj
6701 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 621.727 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 244.794 null ] >>
endobj
6702 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 610.768 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 180.037 null ] >>
endobj
6703 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 599.809 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 169.078 null ] >>
endobj
6704 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 588.85 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 158.119 null ] >>
endobj
6705 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 577.891 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 147.161 null ] >>
endobj
6706 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 566.933 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 136.202 null ] >>
endobj
6707 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 555.974 null ] >>
-endobj
-6708 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 545.015 null ] >>
+<< /D [ 6672 0 R /XYZ 81.145 125.243 null ] >>
endobj
-6709 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 534.056 null ] >>
+6671 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6710 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 523.097 null ] >>
+<< /Filter /FlateDecode /Length 2793 >>
+stream
+x[=# WLI7`,9_ vA)ьg·DQ<~ׅ_x-aE1?D/ 3]qWΥ ɹ?J؋c(!sތ@¹ =P m{_.c]F""%)<G!;t'qqD5_f~/<<;͙0;yp`RDz&D.c
+rҺYS;! s-Kv\ɁH [`ּ[X7gLk=R:C]\TX `d˨Џu4<ZЎ;@(;ɒU"s؝ws&ya<X&1JAHmR*F}$'Y4-oG*Z%3A-`^`D\+G9Lrr;I'G3%%6PJ.W!mGW`'F걗rt ˜rSS:on)@)Q|,%hU|azhET'3C<f)_?5s%Wgs@dN=Q^Ÿi)%R2TFc\_v:4Ȭb\L}ESDFkz2򬨌dAGQx|)>Dg>8NCƽ d2Pz2(43V!%(>}6vn=vwK
+J/Bpos3VFb
+rMw'|ϻw ̝YO{";YN
+eSoq48,07њ2NY Xl(L#81*\⦧s8ɜӃ\dʬ]x/g!Na
+h4. ,صoikf(ya)xå uٕ^tl&ŕUqfksuM<z ͋'/u+
+l^6cĞ+)@bmFm!K7ڱ@>GRߎ@!m`5d8׬b9sEmL7jהi>kZXbI aL^I7MrR1kuLQe0Rq[#Jȟ_o)/
+endstream
+endobj
+6709 0 obj
+<< /Type /Page /Contents 6710 0 R /Resources 6708 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
6711 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 512.138 null ] >>
+<< /D [ 6709 0 R /XYZ 78.37 808.885 null ] >>
endobj
6712 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 501.179 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 768.829 null ] >>
endobj
6713 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 490.22 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 757.87 null ] >>
endobj
6714 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 479.261 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 746.912 null ] >>
endobj
6715 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 428.514 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 735.953 null ] >>
endobj
6716 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 417.555 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 724.994 null ] >>
endobj
6717 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 406.596 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 658.842 null ] >>
endobj
6718 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 395.637 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 647.883 null ] >>
endobj
6719 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 384.678 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 606.015 null ] >>
endobj
6720 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 344.516 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 595.056 null ] >>
endobj
6721 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 333.557 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 530.946 null ] >>
endobj
6722 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 322.598 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 519.987 null ] >>
endobj
6723 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 311.639 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 509.029 null ] >>
endobj
6724 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 300.68 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 498.07 null ] >>
endobj
6725 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 249.933 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 487.111 null ] >>
endobj
6726 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 238.974 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 476.152 null ] >>
endobj
6727 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 228.015 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 465.193 null ] >>
endobj
6728 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 217.056 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 436.575 null ] >>
endobj
6729 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 206.097 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 425.616 null ] >>
endobj
6730 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 195.138 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 414.657 null ] >>
endobj
6731 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 184.179 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 403.698 null ] >>
endobj
6732 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 173.22 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 392.74 null ] >>
endobj
6733 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 162.261 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 381.781 null ] >>
endobj
6734 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 151.302 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 370.822 null ] >>
endobj
6735 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 140.344 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 359.863 null ] >>
endobj
6736 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 348.904 null ] >>
endobj
6737 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6687 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6709 0 R /XYZ 81.145 337.945 null ] >>
endobj
-6740 0 obj
-<< /Filter /FlateDecode /Length 2676 >>
-stream
-xڵZo߿@
-`(7vW 3"AّŤ}HD7|Qa/~{n).d(JbE\^qΣ2[ʶrw(/'LSSQ%Uܟ9$!>Mvn4!B|r!FalG -,ջR4B#6KFQDGʔpyE
- zɒ<+%
-yvLsL?Z0|P7Ńm}s;)#cM (xY&y}0)1TuU5ɏ<N)vխ!Jc174 ARM9NQfm`BYeʤ?t۟Ӎynuؚd2z|{sm'~~ӎ}5} CVwK'f1Ix;֦P\#J4h 0HCjĴ74whA`H*!R: z^Ee'{"Bv
- ]"Uw8 11wU- ܗڬjs}/ _tRo<Z?T)2ga?ϰJ%+ 6h2&Js MaD:uf_LU60uyX՛]QMb2m\0 .S<7+k $ㅂ.WTL"$ u~֫_/Km`0uG&ByɛP;:`Č05Z2!4 8-'-{!LQɞ+Nd8,lZh<37]ؠTm6N%$Yfpc!6E[zWEJ@'1X튕)"|97% &jdvhDey0As,z_Sb\nk(cg"h)gxgLD3S`` фqFt2 J
-.pn/+<!hkL 9P12Ҽj$6ȘtnFã]p7hl6Wvh
-w)еn
-%wAWAiDYn(r}-=LLC:OHs*q7y.cmjAggw*pZ*mVxPJQ#v
-lUOR|SbųW1wxeP:QH}.
-ҮU=N*S/ͷ뛛~IKm^Nq: &0
--Sك<K Sj2&J(cqr-RMI'0 11M_H0௼)dJk#
-aC9Og5!}*Bk"  yifYn͟sİUh3ICJKѭ=:6
-z`7EtdaV6=P$"C94Ů(X+OC4G}+{#V͉蝡`aXQi:+k}4ISz"e!W o+_{VΞG6ERv%C!jll>||]%<D>ߘ{ zn4Yi\@oЛ]? cm؆h_'ȆSAcP@=N8ʅlc&Й6if}:ָuĎP\ajuw^iAc?bZ-P2ȌH-trAaE+.hbVPBڴ!M7ɐ1Dja
-,n#=a9p ϑ*K5IR1ۉ#9kfkC¸vǘIțk TE
- ih~5Cp`O5Ogݷ (V/acѝrXZ b4\%hꚘ%!ɴ\_T at/`\(rO6 ʳU⁒b&Zf5Ĕv* b`E"[{F C<$ĬF m1p)n?N]?JGr V݉!L1MĢ]O.O oM MZ#tvZ3o^i<Grk=8 ̰x\I8Œpo,̾`8cXbG2w_ez1OkLq2}d wJK|/Qrq8Y1߆@
-c}Gl|hW](j5J'UҀm7;',</䝼+ə q$D<_zf [Ӯl'gd|߃<2#*D_IuH<:W~A|tQ7X8DBR14$~Wh]`#U!y5oSLedtB҂ȴ2/ ÿ_Da(_P\wL1Iٿ޾/tQ
-endstream
+6738 0 obj
+<< /D [ 6709 0 R /XYZ 81.145 326.986 null ] >>
endobj
6739 0 obj
-<< /Type /Page /Contents 6740 0 R /Resources 6738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6709 0 R /XYZ 81.145 316.027 null ] >>
+endobj
+6740 0 obj
+<< /D [ 6709 0 R /XYZ 81.145 305.068 null ] >>
endobj
6741 0 obj
-<< /D [ 6739 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 294.109 null ] >>
endobj
6742 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 719.019 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 283.151 null ] >>
endobj
6743 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 708.06 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 272.192 null ] >>
endobj
6744 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 697.101 null ] >>
+<< /D [ 6709 0 R /XYZ 81.145 261.233 null ] >>
endobj
-6745 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 686.142 null ] >>
-endobj
-6746 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 675.183 null ] >>
+89 0 obj
+<< /D [ 6709 0 R /XYZ 79.37 237.726 null ] >>
endobj
-6747 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 664.224 null ] >>
+6708 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F70 183 0 R /F82 699 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6748 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 633.34 null ] >>
+<< /Filter /FlateDecode /Length 3112 >>
+stream
+x\ H]ڪV9Vf;@szGRjf x!ZIO_^.>
+/)!_tAJ}R}QOxƻWYOIT-~7,VVZ9H}U+>|RLEVbnE>j?ִ_ڿqD+  qXY4f|@^õC.}9{mOIad.FĠ4N 4 ШjJj__t)DKJ@^>u<N-އoD }!$[!y:8"ИԵ#A9Q-V(\_dbjyiA^B]Zes_Rn@_+"Mz;M赂v-y7ҭ]ɣ/S6Q]Yi\1ehG7W
+i5=;Ux>uXy[Dz[2I[&
+KJڗ>urTIL'3I!͵y{,YtDK\1\MIʹ[ Y`S͂0br&QXk34miMJFzz5ˠUc5b䒞n-f~LF L
+1 J^>cں@nqOHY,Y`!FPA1rI=Zwȴ4hC<r-x.pέhW*!/J2Kia3; & JR ܘ rkVsrD,Y]UP&yqa(ǭOJ=D/_3W(m3H.wUݰ J_vJaJJ^gY;L8ֽ2
+PKSd&=fUalTG24'`I>%zC 8>5#˔ڂ
+صf࣬bMYEoԾ
+>ZP%z!XSCAٵ=2.Wbݺ+k U]nrʕ)/C{nfFhQzI\VwoP$:j/u[eᗸa;C`F_X!ӺR VsZ5UUlC=m뎽O^ׯ2PimKA wCֿ(+L.̃΃R \y 3N>BZZ/5TRnAxgiszTl09}K`WK[H̎\ cmmX62ȭ3keY_Sm˹?XoHF膒v&am^`P<6nmܑ*Nܙtq4NMU? e;@* m7-Eg]'
+?d؎s|,ж|JgE3:.AJEh,2d^tY$::v_L&1h1M£M5OmR6!er==3%_wLR)ݬ^/r jkמK!/ ֞fw(a5(s` DQƼ 0Ie{uH5l3^RyQXug`SQ8d9,8l^ Tc:o`HXCJ_7硑Alۜ=2 (x6&^:G*:\Pa(fϪ~Qn f22uK5tjώ[ r4蘤z E}S y$;k4Q9#
+,
+Q,`5rj"{J#懜>pm1TH/Jӕg"Kh WR溱dO^=Z[G`dT<0EE8*zPNMrb^ A.rru SRU<& 5'~ |rQm.n8+-B6;&<ZGh-(Q5|
+endstream
+endobj
+6747 0 obj
+<< /Type /Page /Contents 6748 0 R /Resources 6746 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
6749 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 6747 0 R /XYZ 78.37 808.885 null ] >>
endobj
6750 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 754.882 null ] >>
endobj
6751 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 706.065 null ] >>
endobj
6752 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 695.106 null ] >>
endobj
6753 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 684.147 null ] >>
endobj
6754 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 673.188 null ] >>
endobj
6755 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 662.229 null ] >>
endobj
6756 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 651.27 null ] >>
endobj
6757 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 640.311 null ] >>
endobj
6758 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 629.352 null ] >>
endobj
6759 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 618.393 null ] >>
endobj
6760 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 607.435 null ] >>
endobj
6761 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 596.476 null ] >>
endobj
6762 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 585.517 null ] >>
endobj
6763 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 574.558 null ] >>
endobj
6764 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 504.819 null ] >>
endobj
6765 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 493.86 null ] >>
endobj
6766 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 482.902 null ] >>
endobj
6767 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 471.943 null ] >>
endobj
6768 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 460.984 null ] >>
endobj
6769 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 450.025 null ] >>
endobj
6770 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 439.066 null ] >>
endobj
6771 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 428.107 null ] >>
endobj
6772 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 417.148 null ] >>
endobj
6773 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 406.189 null ] >>
endobj
6774 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 395.23 null ] >>
endobj
6775 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 260.264 null ] >>
endobj
6776 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 249.305 null ] >>
endobj
-6738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6779 0 obj
-<< /Filter /FlateDecode /Length 2145 >>
-stream
-xڭZM8Wa6oI> d7Y zb vkF:'oHѢvВ(=XXE.6 u7/^c"'Z.n_0xAlDT3B5[nsu-JۺnxfM2)hk{wwuͳvqSBu]]t<KC}ۙ>r7Tmc=~O0g&,s¨ܬ^^=vfUk\ 8$34H~<IYYx,1w)ϓT'vlWx9}ՐQ+9ȧ/1H S. vSL]ZBUaLƾ* D_`T,$3&|L̀8SaGU5|g-3e9~՘=8Q;r0#S\oaF_~ՖѴ'\JO]F1"
-_džLecsJRh
-L-WUSWY v#¬+.+( _ 9ZUղ˗/KroyXgDSUQ$QuLK.i_rw*&8QMi] ל&s9M7ԫnXua>Ɵuc2J4?Rs oއ 8!V.1!U4A{Uaug<S5|t},nk17)PF(̓O܇re"de ]5 m1&8ȑ]Ry;(C-O2ĥ.S,1'ڞ%ùB:|+`gGuJUR vܭ)ix(#V
->E3\_̫ue uu?2` 1rڭMG(8d"}"$}7`U
-Pa %@7A 8 ;ہ4yJ[Ƶ;"ue;V*ຳdﱊZOÉ9#tHЏ&,]n]z[d|6-ڡe
-!OET2kfX!*Ms{o>|WC;5T*C &ͧ2*= З#sWl ;<Ofn*ԭ6yՃ ë
-(~byK*Rgi9vD۷IJt
-endstream
+6777 0 obj
+<< /D [ 6747 0 R /XYZ 81.145 238.346 null ] >>
endobj
6778 0 obj
-<< /Type /Page /Contents 6779 0 R /Resources 6777 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6747 0 R /XYZ 81.145 227.387 null ] >>
+endobj
+6779 0 obj
+<< /D [ 6747 0 R /XYZ 81.145 216.428 null ] >>
endobj
6780 0 obj
-<< /D [ 6778 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 205.469 null ] >>
endobj
6781 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 194.511 null ] >>
endobj
6782 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 183.552 null ] >>
endobj
6783 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 172.593 null ] >>
endobj
6784 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 161.634 null ] >>
endobj
6785 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 150.675 null ] >>
endobj
6786 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 6747 0 R /XYZ 81.145 139.716 null ] >>
endobj
-6787 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 651.273 null ] >>
-endobj
-6788 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 640.314 null ] >>
+6746 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R /F73 267 0 R /F30 172 0 R /F25 609 0 R /F82 699 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6789 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 629.355 null ] >>
+<< /Filter /FlateDecode /Length 3026 >>
+stream
+x\Ɏ#9WJ-Q;0 9oΜZȐj.EQ/˟?x})3op_z&^ƹ\9%SjKAoCLFܯ`G
+<jGdϘ3ceT1
+/ 9
+wg
+?x*@lC2]
+RpWv3HL%Z[f
+:ΆvoEMd+>y˜±j(vv8vכ^h6ӦD^vf򊛓G> T=^ϼSlVOr'r>i
+X1r
+{ZyojZ6a ,&g,Eol[r|Ez,J7V6&^ gDz5#!0'NECbvOyb) rRԤ95bѻ]1PX ojΡ:+ΉAr6c#_#d[!3kFX E:
+w6MJ$^ܱp*^K J{Eވmmw]U\bgQ2nL[,$,x^×~ʫ[uogw =O̷xf/Z
+endstream
+endobj
+6788 0 obj
+<< /Type /Page /Contents 6789 0 R /Resources 6787 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
6790 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 6788 0 R /XYZ 78.37 808.885 null ] >>
endobj
6791 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 740.934 null ] >>
endobj
6792 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 729.975 null ] >>
endobj
6793 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 719.016 null ] >>
endobj
6794 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 708.057 null ] >>
endobj
6795 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 697.098 null ] >>
endobj
6796 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 686.139 null ] >>
endobj
6797 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 675.181 null ] >>
endobj
6798 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 596.476 null ] >>
endobj
6799 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 585.517 null ] >>
endobj
6800 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 574.558 null ] >>
endobj
6801 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 563.599 null ] >>
endobj
6802 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 552.64 null ] >>
endobj
6803 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 541.681 null ] >>
endobj
6804 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 500.834 null ] >>
endobj
6805 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 489.875 null ] >>
endobj
6806 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 478.917 null ] >>
endobj
6807 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 467.958 null ] >>
endobj
6808 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 456.999 null ] >>
endobj
6809 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 446.04 null ] >>
endobj
6810 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 435.081 null ] >>
endobj
6811 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 424.122 null ] >>
endobj
6812 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 413.163 null ] >>
endobj
6813 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 402.204 null ] >>
endobj
6814 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 331.995 null ] >>
endobj
6815 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 321.036 null ] >>
endobj
6816 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 292.144 null ] >>
endobj
6817 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 281.186 null ] >>
endobj
6818 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 270.227 null ] >>
endobj
6819 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 137.2 null ] >>
-endobj
-93 0 obj
-<< /D [ 6778 0 R /XYZ 79.37 111.746 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 229.38 null ] >>
endobj
-6777 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+6820 0 obj
+<< /D [ 6788 0 R /XYZ 81.145 218.421 null ] >>
endobj
-6823 0 obj
-<< /Filter /FlateDecode /Length 2821 >>
-stream
-xڽ]o6}{ l\-hX`(֖RI-odQQl3W܋Eg3C&Y2]2~'fT.$]߽G23eW3j"]og3?zn&Ha¹₫ttm68"Yv=Tu*<ݟn7͇O:b$b0 !gy9+ʫbu_WF#
-,4L}`|5P ac5a?ibS !:I(ta|q 5Xu0n[$MEycu ޭ>?G#dJh*%"&
-%
-`2䬮AGQE8q~W|x
-$(;cJzݲMeǐ*/C$9'G Z@ ж
-bi[yݍg4$nBU捗<?\Vkrpi٩+EZ؄t%Ig`\].\pup{*X[얣 MSCeB#aԯT]Wưݢ8hP @t<aD(H$vu*ېŅTأO~L8N:"u\=ɧ%oDY]T{VBN۹[OE][',q-G@ZWEh;Q|(r[gm6Nɬ$׎꡻CHok#&#/pNmssNu:38*44\ItCX'\ iDx)t]N,G6'.to<΢-6 ɺ T6
-.*ECNR"eN ZGwx??TX${*9X<:td6pppBwS1ᔼ*(}F =<ڥ"`=sX#zd`usx$L/
-Hº|#a(őTN[BC8nwkt90
-3x3x(tۖc#cB=++G/,ACfzL6)HAf" x/]3^elAgz8ϳh0B:6ODl`? t b?sy&}e˜Jz1冟W
- "\& <шyP
-GH:0%='~7sqMJqBK7κ]K kGՌQ" QiC
-pCtSc<& ߘtg[r/\|
-о0ʨs7 M }MUT
-@GGa, :QW
-DpJF81#e
->LҎ?7wROl3G%h;_1"o)'\6.u\K.,
-CAdDWW-@|@oAd[7ob=;ZRGL5?!/KJ|u@=ww[ˊ]댼 ߛtx !B1ł
-endstream
+6821 0 obj
+<< /D [ 6788 0 R /XYZ 81.145 207.462 null ] >>
endobj
6822 0 obj
-<< /Type /Page /Contents 6823 0 R /Resources 6821 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6788 0 R /XYZ 81.145 196.503 null ] >>
+endobj
+6823 0 obj
+<< /D [ 6788 0 R /XYZ 81.145 180.563 null ] >>
endobj
6824 0 obj
-<< /D [ 6822 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 169.604 null ] >>
endobj
6825 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 617.038 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 126.765 null ] >>
endobj
6826 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 568.23 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 115.806 null ] >>
endobj
6827 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 557.271 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 104.847 null ] >>
endobj
6828 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 546.313 null ] >>
-endobj
-6829 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 535.354 null ] >>
+<< /D [ 6788 0 R /XYZ 81.145 93.888 null ] >>
endobj
-6830 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 524.395 null ] >>
+6787 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F82 699 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6831 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 513.436 null ] >>
+<< /Filter /FlateDecode /Length 2131 >>
+stream
+x[r6WtcrʲGSo\S ,I)|h<<&:ӷO<?~rӠOOdCs2Z0k9^ ?# g@z <[Q H =ُտGJ&p0F+#3\$<%9ds4Pf?-<\z͑m̟ 5+øӗfj]0
+0%:hL7IV Ƶ!s.@?}SȀ~VsB(-X p
+7ōtZ
+fJll +fc<pf FXG\`rQaBm/}{2ZOps(Czy$em| 5gɫqy ti`\qh@Qj!+iih6/&y{|rDI.J jLp8y.ݳCl OЯSuaL)2$^-E@ںBg^Z%|hsk$)FI;$E&Y Mc\ @;Ő
+) E,>mm-f%C(@m'e{fbDhk)F
+-f |=ŏ&1[KD1r _RђLR&ǫ.
+f>7zS#v Pҍv!7U-XYY\)/=</S/,S[RnZVh/ƮN97L&'k6izcHO2rD"-!n&->L?k ẛ5U*DgdF<Z,]Q$ m+ɧ|I1u;btAٵx&][?qkxcEm(t ՊSv!%@w^)b!HZ /Am?iԳ"V7F&8j:3Qw]UZ"}Q;|GR,ZaL֓6F>]G[RٝI S S%YPVmHLAuŒ@LqvU>WM%&HJ*-,o
+"M;QÙ\!Xp)g{>p) ^>މ`硏{i-V>Q#bT,@SVR>pB7 [RR"%}62L% HCf#R
+C-l06AW!Tc0;Y9NQA t WFS QLg,ٔi}Grl-|ś6t=y`UC9jڮ*Z(Sfs(;1"$1)s
+Kf&{(PLw_R6 0є}@:`
+L E_:RĮtzh%SΒ2QK@ S?W_e_ts*]XH: OOKzfw1j71٫@ b뎹DrN +?s O3gVc;g?4j
+endstream
+endobj
+6830 0 obj
+<< /Type /Page /Contents 6831 0 R /Resources 6829 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
6832 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 502.477 null ] >>
+<< /D [ 6830 0 R /XYZ 78.37 808.885 null ] >>
endobj
6833 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 491.518 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 719.016 null ] >>
endobj
6834 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 480.559 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 703.076 null ] >>
endobj
6835 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 469.6 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 692.117 null ] >>
endobj
6836 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 458.641 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 681.158 null ] >>
endobj
6837 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 447.682 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 670.199 null ] >>
endobj
6838 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 436.724 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 659.24 null ] >>
endobj
6839 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 366.992 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 648.281 null ] >>
endobj
6840 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 356.033 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 637.322 null ] >>
endobj
6841 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 345.075 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 626.364 null ] >>
endobj
6842 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 334.116 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 615.405 null ] >>
endobj
6843 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 323.157 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 604.446 null ] >>
endobj
6844 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 312.198 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 561.606 null ] >>
endobj
6845 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 301.239 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 550.648 null ] >>
endobj
6846 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 290.28 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 539.689 null ] >>
endobj
6847 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 279.321 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 528.73 null ] >>
endobj
6848 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 268.362 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 517.771 null ] >>
endobj
6849 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 257.403 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 506.812 null ] >>
endobj
6850 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 495.853 null ] >>
endobj
6851 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 484.894 null ] >>
endobj
6852 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 473.935 null ] >>
endobj
6853 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 462.976 null ] >>
endobj
6854 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 452.017 null ] >>
endobj
-6821 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F46 176 0 R /F23 660 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6857 0 obj
-<< /Filter /FlateDecode /Length 2810 >>
-stream
-xڵZmoܸ_}5+^ &m)E&mZiOzqDy]:w0$ 9y?^ݯ'xfջ͸GJ̢ H8 -7/^ YA0ؖٹb:[jp
-x ޒV}zGY "4C0tgڡoo99UWE^Iەz>^ +)kKV%>9D]k%u]W 3x|iTEӑXN}ߣQlˠꈃfp(y&FUu=ƫ5,ז~ZgIQ̟KD5jI :Rx4Uz7)e S\%tpuK
-n' L<m>LAHoULϑ<G5MDLW*|R<4Y<I8yިuU78E  jI kV(oIos91$)
-t/CʩG8uC:GH>FHzgfF#"P4QQLA*<QVH]I`~4cYWu}Lֺ ưI(Π:텝K>C9)wQp_0V(A)ִ52.p/Jv+y۩B#&MP#'=ÏrCbV=NFl=1[ Y_6$3E8Vk;az-Ej)LO%} %w EΈ;  a?m(H<ҭiv 06#ZPX Ge>3kUR
-e-}%j$ぁפ?S
-p@e׸@}~4S Z~ez=D̤A<ɕ'ƧH::`<`)yMksA5hw$ƬfblpY-iT}c';m [:g]ˋN/6\Ar̰l.@6>F+9
-q*{)<ppb]&|YnҞfnpM=f]7L} iw,>NS0MnY
-UiouMV<,aCxeY/yy] A#>=,3
-` r |ݾ{16 Gk'琁Ti[rnI˩" |&?nG4Lһ&JzZ=h8L>3DђE޴]mDxD$1]1  -GfuO nkt{ðL!5q\ Kz`Tp7j||3$G_A/s(T?ji !܈%=d3jAe5CQ(KzWޕվ<JI/w×4"JM4F%%DLy1_ ,4A^yg+p`Q
-FO]>zgJy(q߲t'w7iGxڬ.FY <焉5pz8K7C
-gloi?Α}^-lv?>l"v9%mhVe_mR嶴<q$swN+Ӓ~<a%08+ M](ᙦfmWڶyU GK\b]]e7yp"Gen$CaS}^?W{gAv]9E2,-3C7F(/-NI?Õ6IC24)3yUUҤѥ=F_w,q|ZWl}{YkB޳ݦԽ7"ȸ, r$YtAM$5`Vʰ*7} -ffe&%*f/իDXu|=}"B1TM4F0DKJ^NBrXHS!ECVKwK H%-n ۤ~Y.G&al-]?L^K93"^_@ 8Pw)IG
-I~e'-ҡ
-endstream
+6855 0 obj
+<< /D [ 6830 0 R /XYZ 81.145 441.058 null ] >>
endobj
6856 0 obj
-<< /Type /Page /Contents 6857 0 R /Resources 6855 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6830 0 R /XYZ 81.145 430.1 null ] >>
+endobj
+6857 0 obj
+<< /D [ 6830 0 R /XYZ 81.145 419.141 null ] >>
endobj
6858 0 obj
-<< /D [ 6856 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 408.182 null ] >>
endobj
6859 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 397.223 null ] >>
endobj
6860 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 386.264 null ] >>
endobj
6861 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 355.38 null ] >>
endobj
6862 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 344.421 null ] >>
endobj
6863 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 333.462 null ] >>
endobj
6864 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 322.503 null ] >>
endobj
6865 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 311.544 null ] >>
endobj
6866 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 615.779 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 300.585 null ] >>
endobj
6867 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 604.82 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 289.626 null ] >>
endobj
6868 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 593.861 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 278.667 null ] >>
endobj
6869 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 582.902 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 267.709 null ] >>
endobj
6870 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 571.943 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 256.75 null ] >>
endobj
6871 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 560.984 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 245.791 null ] >>
endobj
6872 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 550.025 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 234.832 null ] >>
endobj
6873 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 473.328 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 223.873 null ] >>
endobj
6874 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 462.369 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 212.914 null ] >>
endobj
6875 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 451.41 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 201.955 null ] >>
endobj
6876 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 440.451 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 190.996 null ] >>
endobj
6877 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 429.492 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 180.037 null ] >>
endobj
6878 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 418.534 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 169.078 null ] >>
endobj
6879 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 379.025 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 158.119 null ] >>
endobj
6880 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 368.066 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 147.161 null ] >>
endobj
6881 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 357.107 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 114.284 null ] >>
endobj
6882 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 346.148 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 103.325 null ] >>
endobj
6883 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 335.189 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 92.366 null ] >>
endobj
6884 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 324.23 null ] >>
+<< /D [ 6830 0 R /XYZ 81.145 81.407 null ] >>
endobj
-6885 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 313.272 null ] >>
-endobj
-6886 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 302.313 null ] >>
+6829 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6887 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 291.354 null ] >>
+<< /Filter /FlateDecode /Length 2013 >>
+stream
+x[Mo8 WFI}
+)zpLϙM1e^y˧9oz[1yrR.W;g Q"{ڧp]lxy،@!M&|yɟ6H(؋R.}h':17"89446*D7"r\uI~,z29^7"BեCWmgҚ do@4fbXWBjJRu
+G{Z3GMUюYg”DR!->=XSL(8SSC+ iGg9P
+P̷vFpu'돔t8JFC4:.3C^,KFEhH޶OPwuQDz1+ꚜ͟;^U;tB<9"#ϓe sL@yJpkdE^_1zTr|,2:z{/T]zq*dζ0H<n5/ eAUGvAR @r@`TCpCqi&yUCu=R \d}B=M(mwf'epk(JMfzP(US$6kiZ9ir=Ϙ|9yR
+: DK|P7J_<Qsww$;-Ks~j6w(V;Sg^LvT$LdM}#q#Y9KgʫX+ϭj7y
+~@R9jۤ.Zr"H]+$"n{5VcG/ +'KE"tҽ Qr) ,s2im8s:&s%&zҥdݚ%֠2Ʋ&:P iPx QWo@\qJ^/oUorV,("x@JO&+ FY 6dϳ H" N/0mjJvC>M@zV{ɚa1?ZRe龊~XHiJ(r4 ;uWtC)B a?MZ KLhH;lC
+Ȗe
+endstream
+endobj
+6886 0 obj
+<< /Type /Page /Contents 6887 0 R /Resources 6885 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
6888 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 280.395 null ] >>
+<< /D [ 6886 0 R /XYZ 78.37 808.885 null ] >>
endobj
6889 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 211.452 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 768.829 null ] >>
endobj
6890 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 200.493 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 757.87 null ] >>
endobj
6891 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 172.94 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 746.912 null ] >>
endobj
6892 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 161.981 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 735.953 null ] >>
endobj
6893 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 151.022 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 724.994 null ] >>
endobj
6894 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 714.035 null ] >>
endobj
6895 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 703.076 null ] >>
endobj
6896 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 692.117 null ] >>
endobj
6897 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6855 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F80 749 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6886 0 R /XYZ 81.145 649.278 null ] >>
endobj
-6900 0 obj
-<< /Filter /FlateDecode /Length 2113 >>
-stream
-xZ[o~ϯ0pj.-9hd<t Aq]YJl)EkǙ!gg3<
-wHoW?>(6hl}E`H5S ,lc.ԋx#L##%C0?7Ⱦ%M-Wbq-pO?}Jm%e#e95FS&!Q_ 3* b 1D ˓zO:oļ&L eLy/l^,?To=}3*o͏;0)ʷTfX!YoU*P̟v36tcV4,­A5/d5:G@ c(e,Ńg󺴟s?< U[Cͷm}h^5(NQ79wX `3u`)fBսΓCV/WeɽoɶC\ '򰭷eb͒F"7D;MuOjٲ(VHCVuϊ;7kqML`@_cVCqĴz8=藓Dqڑ . ]xy, ײlmY,)z(d١QcW5?N.lAU v%v{,Qr Zd3INfƶ~%WfT^TS[?oi"4c*ʻ,70Rx7 ~:1h=r((UVറy[O^#y-ֹ+ko-E^CJ[+.6*!Ù
-&63 [B,=?o͏f1>}h!CKlQ鉙KhČ]?*zti>,-lZmlo5e7fveі0k'h m]wuؖ)XHWe1fjN\zA? % w5ǥ6'#{3󘅗596h:cl|]>qhID* 54)809D$3+Ztl ˨8Ct4pjDH$@w)$lY{~%WCĄ!:~1w6e[zwwgQ\7б!|^3$ʦ
-]݌ ^}ј=8z_QqY1Ap15C@@HwܾfċZs(e.IX]ш(uH! /^<膋h(J8賵#eGDTpoonlsoG޺wk,s9Qe E'sBdѡJ8CLyb&4*TCA@<Q5C UJF SjA<^NqhG2PqOd"K 37s8cFtլHhOdbPZ
-endstream
+6898 0 obj
+<< /D [ 6886 0 R /XYZ 81.145 638.319 null ] >>
endobj
6899 0 obj
-<< /Type /Page /Contents 6900 0 R /Resources 6898 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6886 0 R /XYZ 81.145 627.36 null ] >>
+endobj
+6900 0 obj
+<< /D [ 6886 0 R /XYZ 81.145 616.401 null ] >>
endobj
6901 0 obj
-<< /D [ 6899 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 605.442 null ] >>
endobj
6902 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 594.483 null ] >>
endobj
6903 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 583.524 null ] >>
endobj
6904 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 715.033 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 572.565 null ] >>
endobj
6905 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 704.075 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 561.606 null ] >>
endobj
6906 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 693.116 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 550.648 null ] >>
endobj
6907 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 682.157 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 539.689 null ] >>
endobj
6908 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 528.73 null ] >>
endobj
6909 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 517.771 null ] >>
endobj
6910 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 506.812 null ] >>
endobj
6911 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 495.853 null ] >>
endobj
6912 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 484.894 null ] >>
endobj
6913 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 473.935 null ] >>
endobj
6914 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 462.976 null ] >>
endobj
6915 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 452.017 null ] >>
endobj
6916 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 441.058 null ] >>
endobj
6917 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 430.1 null ] >>
endobj
6918 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 419.141 null ] >>
endobj
6919 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 408.182 null ] >>
endobj
6920 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 397.223 null ] >>
endobj
6921 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 386.264 null ] >>
endobj
6922 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 375.305 null ] >>
endobj
6923 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 364.346 null ] >>
endobj
6924 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 353.387 null ] >>
endobj
6925 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 342.428 null ] >>
endobj
6926 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 331.469 null ] >>
endobj
6927 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 320.511 null ] >>
endobj
6928 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 309.552 null ] >>
endobj
6929 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 298.593 null ] >>
endobj
6930 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 287.634 null ] >>
endobj
6931 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 276.675 null ] >>
endobj
6932 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 265.716 null ] >>
endobj
6933 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 254.757 null ] >>
endobj
6934 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 243.798 null ] >>
endobj
6935 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 232.839 null ] >>
endobj
6936 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 221.88 null ] >>
endobj
6937 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 210.921 null ] >>
endobj
6938 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 199.963 null ] >>
endobj
6939 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 189.004 null ] >>
endobj
6940 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 178.045 null ] >>
endobj
6941 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 167.086 null ] >>
endobj
6942 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 156.127 null ] >>
endobj
6943 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 145.168 null ] >>
endobj
6944 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 134.209 null ] >>
endobj
6945 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 123.25 null ] >>
endobj
6946 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 112.291 null ] >>
endobj
6947 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 101.332 null ] >>
endobj
6948 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 90.374 null ] >>
endobj
6949 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 118.271 null ] >>
-endobj
-6950 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 6886 0 R /XYZ 81.145 79.415 null ] >>
endobj
-6951 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 96.354 null ] >>
+6885 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6952 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 85.395 null ] >>
+<< /Filter /FlateDecode /Length 2431 >>
+stream
+x[n#9+fq I(dY ٷ\OeHJR jiRcE0 ^^?^/F9+<|"M r{0(Gq7Qse>Uq,s@Brf$pɿ?{_&y?3,>z`/Sb&>,$BqLiupgpxUJ
+?W.-K?72?p5"p3n`OLOSʔ{]
+9WtTa64~?JRiELTaPgg6DeᎡpht`,?Zv@Z:B'_^uW t$oɶd%(w}t!Rqe98将.HA~, )PW)&4 JϯM)}[5zS
+}<FnjP3cI]fD ci*aZqUyB8ṈcW]AHk4H_ǦWic٧'{cH*zn$awkQ*YIa)R|B3 -GgMQa`nOG~4Ba*ϸ3UvCqϒfeIJqAuE)7KPkn)*=S^n(q_V
+R.WL z|IAv~=%1o#<Ƒ? IwGv3(F݅gY+[뢥)3mm:ƍ47kkveBHdB4H ZQ2X \_YȄ4/hyvEO k„sQ4JFW hW9J s+ \s>F?Lӌ. "RWj2!
+Y3zyJs`FS<u_i
+bўM h8V2H'`OH\ T̖xuu;vR^[+HIc83;
+?.͵*e6C .!ucs y\)DŽ`mRpᲤ=wvFNަ:O5;ѐu-&X4ݛq3BRi͜%b YR%*0hm<H--lLJhe`{̗~L؝h&K #ni̾F P
+1Ӱj0ܐ˛T$-4cߤ]܀K|unC̭&D]qj;wp<Mqh>B7grt캴{!э⡞[ԋY6dy}8Vw8)p.iw^@qm6{;c>~Oqs2!1
+ P=a-{J[[MU*H[:h,D&f^bc.14E{XlOmxOR&!uVo~vJXτkSLiGҰV+~9H .Ո;ZҊ._)Jrq'5{+}^4LKr/&U C..$s:vÚ9>3)jӠ L3L*WkU\l҃>>8_J#`(:B)-AsCsa9o/l_֒X<' +46'*Ht{Sx>=W2/<+Shv{m3BK`>jhI8%T4O{FvFbS)یXGh-|+Ie铡n"g[=NȾT([[9dHt13$uxaҁؖ@U5d))lK)i"q:Bl] ̢H~eS\o23V>4rÍ#ŻgS!P-}W{S~rz9S_)I.*ҋ~1;A -tX~,DX@ib<!H^<^Bmg)tD `jP2h4nNqwӊ6+^8Ҷ#EϽC6
+eZJS{߬莥
+hJ|ʟ$PKR>𓚴'F'z+?V:1pfwh"/9]QS_*ACN5#${^ڪz)5&̵8BoV 
+endstream
endobj
-6898 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+6951 0 obj
+<< /Type /Page /Contents 6952 0 R /Resources 6950 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
-6955 0 obj
-<< /Filter /FlateDecode /Length 1754 >>
-stream
-xڵZMo6Wd0&Cl(P
-n!(2%$&l~8ެǻDG!gP vwW$Oogg׷M8J4at2_#<!-$j$AX|5\\3ݍu}+FL` J˴8T@[\Fx{.ezsuSMsSmjI)#_.[nj]9޺OKͧV}>w}T# ջ.jw2+[3'NeLT88Ɗ"Ac0|j,M͏Z0$sD [77H5{7<nn"Eh܂ *VH /o|NMݙ3l]y紂,*̓۟/5d1B *N1e4/Mքq;iW<~IMizr$ą-0!h{=_PΊuM4~/ZUwI!O0 +$F`h'r:\ԝQ:Ebʉ;RM1"t'q"@hGhpő;u|.[պ{>Y*B2+ؑRMbeM4w$K8 2s NBŽP' &z$B!D%02
-
-;DvmݺdM=2,x]~V+e~P#%d+_zދzsWxkm{ˀӶ`)C7Yb9DEo,DSRWϗ]*59hfU}t̮}Z? #>KEٗ4+_Pj K>|Cc/_b_k[ 5&]O1GS~i7B'T(p-$,E,ۿCOEYe~hf46vEr[޲sOʬzk!S/gcL 4Fhxq/a'zxiԛuzg
-S̬A~JH$ĉ z'bw9yTb*տ)T0[BKe=[iˆcqa请\9Sjzn# :B !,*1z
-?P6_C5 )Q]JJĹuEaBbP ѻ3̬{hLe}if9I /Q<4Nz^҄ٵ{A="]2P76]doZ.$w`*Bvӽa\{ 'dw?϶
-endstream
+6953 0 obj
+<< /D [ 6951 0 R /XYZ 78.37 808.885 null ] >>
endobj
6954 0 obj
-<< /Type /Page /Contents 6955 0 R /Resources 6953 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6951 0 R /XYZ 81.145 768.829 null ] >>
+endobj
+6955 0 obj
+<< /D [ 6951 0 R /XYZ 81.145 757.87 null ] >>
endobj
6956 0 obj
-<< /D [ 6954 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 717.387 null ] >>
endobj
6957 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 706.428 null ] >>
endobj
6958 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 695.47 null ] >>
endobj
6959 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 684.511 null ] >>
endobj
6960 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 673.552 null ] >>
endobj
6961 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 662.593 null ] >>
endobj
6962 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 651.634 null ] >>
endobj
6963 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 640.675 null ] >>
endobj
6964 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 629.716 null ] >>
endobj
6965 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 618.757 null ] >>
endobj
6966 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 607.798 null ] >>
endobj
6967 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 596.839 null ] >>
endobj
6968 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 585.88 null ] >>
endobj
6969 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 574.922 null ] >>
endobj
6970 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 563.963 null ] >>
endobj
6971 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 553.004 null ] >>
endobj
6972 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 512.521 null ] >>
endobj
6973 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 501.562 null ] >>
endobj
6974 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 490.603 null ] >>
endobj
6975 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 437.922 null ] >>
endobj
6976 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 426.963 null ] >>
endobj
6977 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 416.004 null ] >>
endobj
6978 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 405.045 null ] >>
endobj
6979 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 394.087 null ] >>
endobj
6980 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 383.128 null ] >>
endobj
6981 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 372.169 null ] >>
endobj
6982 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 361.21 null ] >>
endobj
6983 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 350.251 null ] >>
endobj
6984 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 339.292 null ] >>
endobj
6985 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 328.333 null ] >>
endobj
6986 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 317.374 null ] >>
endobj
6987 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 306.415 null ] >>
endobj
6988 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 295.456 null ] >>
endobj
6989 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 284.497 null ] >>
endobj
6990 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 273.539 null ] >>
endobj
6991 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 262.58 null ] >>
endobj
6992 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 210.141 null ] >>
endobj
6993 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 199.183 null ] >>
endobj
6994 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 188.224 null ] >>
endobj
6995 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 177.265 null ] >>
endobj
6996 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 166.306 null ] >>
endobj
6997 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 155.347 null ] >>
endobj
6998 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 144.388 null ] >>
endobj
6999 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 133.429 null ] >>
endobj
7000 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 122.47 null ] >>
endobj
7001 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 111.511 null ] >>
endobj
7002 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 100.552 null ] >>
endobj
7003 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 89.593 null ] >>
endobj
7004 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 199.965 null ] >>
-endobj
-7005 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 6951 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7006 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 178.047 null ] >>
+6950 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7007 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 167.088 null ] >>
+<< /Filter /FlateDecode /Length 2546 >>
+stream
+x[͎9SF(0-:{Keܝd1]eHG*?x/SM2k/ 'q2Ĉ&8Ny
+_\_nOY"ijBBr&':Nyĉrt88Qp!=ɷu-sys8!|OJ_8&>,ϰ7l ?CC}>Jfpʆ֞ 5{ -t K 4?A7n~zx /q ד;{υ\d!?o5{`9%ٙ358{)"Qq+|i%; Dŝ~'[ϹLfR;[=NQ H}%"o ^P2
+}TUV3[pI׬( y  &*&~MOU7PKܕ;pdJ~mh;h2^9Gr֟w 0Rͪ$z7Iܱ`%{%}
++(n}XLYď՗M3fIX"fJqK5L/^Fr|;s7y{Їc({¤4z&7y0
+[-f_ S@b)\aQyPMe
+m=Y%zqĎҊmw8H>* TWR骥t$d;\<JKV5[Jf}`eس`/ǎ:SHL{)($$*{r4Ki eQӔkvRyKD3ZOG\%z&L CP1EKLbes]\l@7mi(^ׂ"Kqf⵩J8A!<$ mC]2[")a-P*9A\ND[=(Pc[ 5V0ODYϚrO5ho 7a75S(ȱ\7
+3(5BZy}>M2 [%A;a[E-~u3s:Js}aC>=JmcNگ,6hp.-],Lb(!ƜWV- Ͽ82@hN+͔BdYU`%f[Beg2vnn=YI wĸV*j{x!-<nGGԑ}MJGc4J%7.m\N`XZP)@ `=2sO2 G2]ԁ&?} kl<yᔛ}xM1,DƐ`j*NSsQ{Ĥ
+Hhj*E'ZJߢ͔6ښ818>QXXز: HQT:{O80"Mj,FRkt p\՚5rGK$L%iڬQң\ fU#+*mJI['4T&^ŞgTseJ0vzH!m)wFY?l!Ь]zߖOS
+)B1 1DM\mKnPr.adTCtrprB+j</
+endstream
+endobj
+7006 0 obj
+<< /Type /Page /Contents 7007 0 R /Resources 7005 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
7008 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 7006 0 R /XYZ 78.37 808.885 null ] >>
endobj
7009 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 768.829 null ] >>
endobj
7010 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 757.87 null ] >>
endobj
7011 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 675.706 null ] >>
endobj
7012 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 664.747 null ] >>
endobj
7013 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 635.856 null ] >>
endobj
7014 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 624.897 null ] >>
endobj
7015 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 79.417 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 613.938 null ] >>
endobj
-6953 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7018 0 obj
-<< /Filter /FlateDecode /Length 1919 >>
-stream
-xZKoFWV7&WE#E|k
-(E*ʎwV$\9<2&NV:pF_Hbb&zy`If$ҌP&כSs{m&11Zx fdBG;[.D„LjMzSf:P\M?*/pHf{,tI¤e)N1z$S/ݞD,K/É5F׫ζE>Om6+9ovݢ'^̋* Kq?FCM5Z36D
-~bDF>1*h:L%elH$;5uzm}ZFؠp8i]Sϳ(
-f;uVdii:M5[EgvKG tgП,lUn-J .Ϯ}:IC AS\2 оA T
-FbCo#bQ{! C f g<c4<&:Irqvo&[}8w
-iX6Ht~w~!]¾"ZdWg:;v#tܜs=}$9&<0?iXpҞCtSBGo.Hw
-{qe/'gP9;PTu&_d'!iz4ض1\;UԮS>u
-& i ;+Vah*a݉y7
-Ew1`ch~eA")΍1E  Ў-|d]Qlb 4Q%ҙB}bУnw6Z/_EMZֶ7~႙}偬/OR_3\_kw}
-endstream
+7016 0 obj
+<< /D [ 7006 0 R /XYZ 81.145 602.979 null ] >>
endobj
7017 0 obj
-<< /Type /Page /Contents 7018 0 R /Resources 7016 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7006 0 R /XYZ 81.145 592.02 null ] >>
+endobj
+7018 0 obj
+<< /D [ 7006 0 R /XYZ 81.145 581.061 null ] >>
endobj
7019 0 obj
-<< /D [ 7017 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 570.102 null ] >>
endobj
7020 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 554.162 null ] >>
endobj
7021 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 543.203 null ] >>
endobj
7022 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 532.244 null ] >>
endobj
7023 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 521.285 null ] >>
endobj
7024 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 478.446 null ] >>
endobj
7025 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 467.487 null ] >>
endobj
7026 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 456.528 null ] >>
endobj
7027 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 445.569 null ] >>
endobj
7028 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 380.812 null ] >>
endobj
7029 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 351.92 null ] >>
endobj
7030 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 340.961 null ] >>
endobj
7031 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 325.021 null ] >>
endobj
7032 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 314.062 null ] >>
endobj
7033 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 303.103 null ] >>
endobj
7034 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 292.144 null ] >>
endobj
7035 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 281.186 null ] >>
endobj
7036 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 270.227 null ] >>
endobj
7037 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 259.268 null ] >>
endobj
7038 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 248.309 null ] >>
endobj
7039 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 205.469 null ] >>
endobj
7040 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 194.511 null ] >>
endobj
7041 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 183.552 null ] >>
endobj
7042 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 172.593 null ] >>
endobj
7043 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 161.634 null ] >>
endobj
7044 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 150.675 null ] >>
endobj
7045 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 139.716 null ] >>
endobj
7046 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 128.757 null ] >>
endobj
7047 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 117.798 null ] >>
endobj
7048 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 432.094 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 106.839 null ] >>
endobj
7049 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 421.136 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 95.88 null ] >>
endobj
7050 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 410.177 null ] >>
-endobj
-7051 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 7006 0 R /XYZ 81.145 84.922 null ] >>
endobj
-7052 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 358.371 null ] >>
+7005 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F82 699 0 R /F15 180 0 R /F19 182 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7053 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 347.412 null ] >>
+<< /Filter /FlateDecode /Length 1836 >>
+stream
+x[n6+CV
+M$ĥ#Z>F%ڨ]T<ECYy NO~#%Vί/ksǷRGM-6#<) l:A\>!3sVY`ѾlViMrnLzεѥE奌 B=2Aϫdz-Yn$ˏ7=ҁHgJ)*p#D?91Nߔk-_;%V* zc(J,ӨI:i1J
+|rY iC)U`x^9Q-U-nzk'nTyU!_[M)wzMǹaMgcPyQ"Ԁ.,nSU)3ξ%9P@uҫ]sߎzWWԕXqh6jJwTF?@]#z/VL$$Ez>ew/}Ǚh ؊(ye$6^&d@ذB&KܿNJQ7;$6湢& rkఏhod{~fs_7 4o5>;QVg"w}h:Li
+nfQ6f{wyZ]7
+endstream
+endobj
+7052 0 obj
+<< /Type /Page /Contents 7053 0 R /Resources 7051 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
7054 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 7052 0 R /XYZ 78.37 808.885 null ] >>
endobj
7055 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 768.829 null ] >>
endobj
7056 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 757.87 null ] >>
endobj
7057 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 746.912 null ] >>
endobj
7058 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 735.953 null ] >>
endobj
7059 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 724.994 null ] >>
endobj
7060 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 694.11 null ] >>
endobj
7061 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 683.151 null ] >>
endobj
7062 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 672.192 null ] >>
endobj
7063 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 661.233 null ] >>
endobj
7064 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 650.274 null ] >>
endobj
7065 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 639.315 null ] >>
endobj
7066 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 628.356 null ] >>
endobj
7067 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 617.397 null ] >>
endobj
7068 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 606.438 null ] >>
endobj
7069 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 595.479 null ] >>
endobj
7070 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 119.268 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 584.52 null ] >>
endobj
7071 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 108.309 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 573.562 null ] >>
endobj
-7016 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7074 0 obj
-<< /Filter /FlateDecode /Length 2422 >>
-stream
-xڽZKoϯ0Ј$,0Ef
-8]sOu=E^,&c¨6Ph0
-|n6w`yv<ߩ F4n[A5=!
-M6 gTZ A:uՖv]*GKzϐC-CMGsh @(QW- I ni0n45{g/"E8>e$f0$ezuW@00
-$/u~ }Ҝ"w mOgk8~Q]`ŌG7YZaPMd*L $媲wհ5܇&{DE?Ǯm8:Ǚi~yz]`}U`O}<DiխpqظUhÖ>\MbǴ#Ǫ[ MhݱLűjIM N[$6ChnZͮ;ggC[mb8+zLwdү<bBbT4 KNIe-8R55
-*/[c@q &rۃ3r2?{V"y!<3wiR:X`-ر'zBIJ!_(l
-endstream
+7072 0 obj
+<< /D [ 7052 0 R /XYZ 81.145 562.603 null ] >>
endobj
7073 0 obj
-<< /Type /Page /Contents 7074 0 R /Resources 7072 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7052 0 R /XYZ 81.145 551.644 null ] >>
+endobj
+7074 0 obj
+<< /D [ 7052 0 R /XYZ 81.145 540.685 null ] >>
endobj
7075 0 obj
-<< /D [ 7073 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 529.726 null ] >>
endobj
7076 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 518.767 null ] >>
endobj
7077 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 507.808 null ] >>
endobj
7078 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 496.849 null ] >>
endobj
7079 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 485.89 null ] >>
endobj
7080 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 453.014 null ] >>
endobj
7081 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 442.055 null ] >>
endobj
7082 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 431.096 null ] >>
endobj
7083 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 420.137 null ] >>
endobj
7084 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 655.258 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 409.178 null ] >>
endobj
7085 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 398.219 null ] >>
endobj
7086 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 387.26 null ] >>
endobj
7087 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 376.301 null ] >>
endobj
7088 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 365.342 null ] >>
endobj
7089 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 354.384 null ] >>
endobj
7090 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 343.425 null ] >>
endobj
7091 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 507.361 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 332.466 null ] >>
endobj
7092 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 496.402 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 289.626 null ] >>
endobj
7093 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 467.511 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 278.667 null ] >>
endobj
7094 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 456.552 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 267.709 null ] >>
endobj
7095 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 445.593 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 256.75 null ] >>
endobj
7096 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 434.634 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 245.791 null ] >>
endobj
7097 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 423.675 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 234.832 null ] >>
endobj
7098 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 412.716 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 223.873 null ] >>
endobj
7099 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 401.757 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 212.914 null ] >>
endobj
7100 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 385.817 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 201.955 null ] >>
endobj
7101 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 374.858 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 190.996 null ] >>
endobj
7102 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 363.899 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 180.037 null ] >>
endobj
7103 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 352.94 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 169.078 null ] >>
endobj
7104 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 310.101 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 158.119 null ] >>
endobj
7105 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 299.142 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 147.161 null ] >>
endobj
7106 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 288.183 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 136.202 null ] >>
endobj
7107 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 277.224 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 125.243 null ] >>
endobj
7108 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 212.467 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 114.284 null ] >>
endobj
7109 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 201.508 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 103.325 null ] >>
endobj
7110 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 190.549 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 92.366 null ] >>
endobj
7111 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 179.59 null ] >>
+<< /D [ 7052 0 R /XYZ 81.145 81.407 null ] >>
endobj
-7112 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 168.631 null ] >>
-endobj
-7113 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 157.672 null ] >>
+7051 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7114 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 146.714 null ] >>
+<< /Filter /FlateDecode /Length 4636 >>
+stream
+x]Mo7W19l+@nEvrڿE6ɪb5ͱ.r%د='"/?=]ӧX2E]^KJH.>_~QJin?g.Q$M@$?Yolv8ڨwR>[gDcEQW9#w)uC?3wct˪v|LFmZvt"_Iމ iM|OnslEct11ocy._
+cӴZ\U%5ijj͙"_.z(?Pe3k9֨ 12qQ$#촫[~rgBZ,'k4'Qv_r+0-kܱ֥uJ0͞4i9>MH/B3s~F=GZx˅xr?Zݽ0`™f%RweK2+u%7yH.D"ya0dDo$H_*\ s 0nqn4 ՝_P)drQ4A)yҀϴi-S;1VRM99RHʨ%2HˑEMurNhtl59U#Ymjb[%bONؚTnm"XMC m'|7
+U&,~Xxд)q*e8mH}*Lt P#}+nX+.JdS҆Do$Uc2ƙ[Di*v\ x'rK^4>luYf6v+rϨp\"{\6-tN_jvV>zgbgcG*\%QʛWRa[?;SYKioA!A㋉FX#n,M*ooC횸}CrڞvkM2ވ^HxD_5hGm:㹣jбi5ϲuiGеhķO胑6x0?fڛGoTvƪgKNc-kOLs0oJ?"[{xɍ幷=!i_~|f]$ml&v-d]]v6 |zjڵf׊q0 wԇū$)\7mp6>ep .a5;,iE8j#me8Yc3,TG iMU,sAVjr~^
++e?;* ޽^^%`y\;=M7p~gKH++l@V/}~Rr Ǥ.<ҏ˷f}yKi8plP?mZ#O uMKKmj꫚T~&)#a2APV7rЏegc=a3Np3kr&-S ݚv4my4E8*/\ Wk@yyBWK9
+l-ۖsM nv
+ʄJ.IƫAWӖ6B9UK4$ڸt8dˤfbqMHז&G+EC"mJ˕5Zjh E#!TF+i0#$ڎmc2t~qw.PZxݯ\4>ihCMCCLmI iA faҁP*bPŁ4or#X2L3Ra05lH4* 2 Y96.o5B>aL^:l @iCOCL mi A:
+BP-$=
+9PW *5[b`>c<[bj%Ĝߊ-},1A_/1Kskՠ䯖UsӖ?ʳrBjsl@ ]}@Ɖ06,dg}@>7y>`n#}@^nmKȏoC;!+"mOС|~{s}Fo${e }m;>eO{ap2!p^`c#EH ;kǨ+hyCf/PHhCLCLC lڄ ˃O8/I-L{,BK(U")EX1/&Gu
+6pEXLb.P`
+* 6 Ze󘷉Hzihȸu{@IA
+zJI玣{+Ě@ Mf47DE
+X=VO,R=;f3kn
+:8Ų1G?1)Z[-mV=bm|:d5Af5k4A6mtPfV(LNscZ,i]6RѱCC(E#pGVˌR=Af8k4n>
+:8Ƽ.$.QbL6K[GyYM<6i:$CkOQ4}Ye cɁ`Je4Rhc_4$
+GdiGeGu
+6pE98<K^ *#f6 dN1T'YG@Vt?` RYoS2!8/@el2ICRŧО !`qiP?VOɔ1Ycv*:*` :hE YQ@6|D,dҌa{HYz-dO&ȼfZ(A[֎S@Q\O^i!t {$D!ƧQY=/' g#2`%GRdɛG CǚEDBuGVv| "p#n|T<G2?$
+lǯfW#RDdg;}oķkcitqdq7o乾Eq*ەm=u9LL~rlCN<Lw;e˘m3ތhe\D=o\?'0FgstTm9 hEi[NJJ\b?%D
+NʠUvl&Xlض~?VЭ-(f{^wsJI^k{HQOT>nw^پ2smq 3'm `M쬟7?@׺}8FBz;e@_Ea#hv7c6KKL\J̶/*nX7&iQ^.LtL쳛V9W3+7O/V",nw_8,$
+endstream
+endobj
+7113 0 obj
+<< /Type /Page /Contents 7114 0 R /Resources 7112 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
7115 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 135.755 null ] >>
+<< /D [ 7113 0 R /XYZ 78.37 808.885 null ] >>
endobj
7116 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 124.796 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 768.829 null ] >>
endobj
7117 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 113.837 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 757.87 null ] >>
endobj
7118 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 102.878 null ] >>
-endobj
-7072 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F80 749 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7113 0 R /XYZ 81.145 746.912 null ] >>
endobj
-7121 0 obj
-<< /Filter /FlateDecode /Length 1601 >>
-stream
-xZ]o6}ϯ! ? l(
-,=:J-TRIm2-tT鶗(ux%yϽDgoftgqk9[_1h36333l}3kŠy8.m]un6ݻƇ?ؼws쟽#׿WNʝ#}ńgϲUvye;גqbQOweUyZ“w]Mg7s4F﴾Dž8r9FNopAK:\~ p؈$2c&5g57wpX&,63É)\q}-j7{pFuU\747 ڱN
-g;FFۦzm-`==Lܦ͛b[SMhk?`$ PT`aFHi;ʹe 'bw5 C(
-t$]YnZ}_Bpb 觊2XZ$&ht (գ@Nj9͡>U!Dq ,v]v]銫6J0?]&Y"\67Q&K`HMjI) eTP _C^-w_5m/;"ZB:M a& 뒥hKb!.$! xװk4# D[+tPNm)}&85GiN[[ɺ_ըq#tRqey#'^uryqƻ?3h)gq!>Jَ0e=Ȳ1aJ-T. jb S RR"?A+z',dWkM+p|c4z1N8nm:H̳<u_HkZm7FSJN(1?RN5sdNt)jgQTT>!= pp(Z <
-:$Jx%m O0 AmkMpDm4޶B
-VV/˦펾U[3_.]͕o>iWTѻӮC<`I /F:#10)3lcqCtA&?àP,l0FEUCL3!Q00 )lO,>+t
-endstream
+7119 0 obj
+<< /D [ 7113 0 R /XYZ 81.145 735.953 null ] >>
endobj
7120 0 obj
-<< /Type /Page /Contents 7121 0 R /Resources 7119 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7113 0 R /XYZ 81.145 724.994 null ] >>
+endobj
+7121 0 obj
+<< /D [ 7113 0 R /XYZ 81.145 714.035 null ] >>
endobj
7122 0 obj
-<< /D [ 7120 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 703.076 null ] >>
endobj
7123 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 742.982 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 692.117 null ] >>
endobj
7124 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 732.023 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 681.158 null ] >>
endobj
7125 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 721.064 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 670.199 null ] >>
endobj
7126 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 710.105 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 659.24 null ] >>
endobj
7127 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 699.146 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 648.281 null ] >>
endobj
7128 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 688.187 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 637.322 null ] >>
endobj
7129 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 677.228 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 626.364 null ] >>
endobj
7130 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 666.269 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 615.405 null ] >>
endobj
7131 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 655.31 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 604.446 null ] >>
endobj
7132 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 644.351 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 593.487 null ] >>
endobj
7133 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 633.393 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 582.528 null ] >>
endobj
7134 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 622.434 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 571.569 null ] >>
endobj
7135 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 611.475 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 560.61 null ] >>
endobj
7136 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 600.516 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 549.651 null ] >>
endobj
7137 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 589.557 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 538.692 null ] >>
endobj
7138 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 578.598 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 527.733 null ] >>
endobj
7139 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 567.639 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 516.775 null ] >>
endobj
7140 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 537.124 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 505.816 null ] >>
endobj
7141 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 526.165 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 494.857 null ] >>
endobj
7142 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 515.206 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 483.898 null ] >>
endobj
7143 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 504.247 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 472.939 null ] >>
endobj
7144 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 493.288 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 461.98 null ] >>
endobj
7145 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 482.329 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 451.021 null ] >>
endobj
7146 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 471.37 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 440.062 null ] >>
endobj
7147 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 460.412 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 429.103 null ] >>
endobj
7148 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 449.453 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 418.144 null ] >>
endobj
7149 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 438.494 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 184.395 null ] >>
endobj
7150 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 427.535 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 173.436 null ] >>
endobj
7151 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 416.576 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 162.477 null ] >>
endobj
7152 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 405.617 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 151.518 null ] >>
endobj
7153 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 394.658 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 140.559 null ] >>
endobj
7154 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 383.699 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 129.6 null ] >>
endobj
7155 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 372.74 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 118.642 null ] >>
endobj
7156 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 361.781 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 107.683 null ] >>
endobj
7157 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 350.823 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 96.724 null ] >>
endobj
7158 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 339.864 null ] >>
-endobj
-7159 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 328.905 null ] >>
+<< /D [ 7113 0 R /XYZ 81.145 85.765 null ] >>
endobj
-7160 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 317.946 null ] >>
+7112 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F34 1759 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7161 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 306.987 null ] >>
+<< /Filter /FlateDecode /Length 2731 >>
+stream
+x\Ɏ#W}*[|}_[p 2j{`ԩJ=FJTxmzy5$L?ߘj=ϔj_*?Vp^9YbFRQ#96p_>TWm(
+F(3[MvV$8$#?WbU
+)22# 4TyZ̔kA6Bz}wK b@!0=[Yв\$'L#۵=@`čc9x~XF D5؛Hi=Nbxvא"U3J(2y1DH4Y*YyQK=p|c  JýqzbjzA|El[x-xkW6❮4Ŭ4 CI56'ߎw.MCwڡdir N QHCY k7E! #ZZTS%5sK'T,%W%/%C-ݱ7FX-GK~*WS 2,ZO
+wBQlynWA gGWp95Gʈu#*lRƾN'1@"ڷ.h y6G p;GSl{<TrE\NmZr% %nzqͬ4$ZCJ՘`mO% >^}G-$&}'ϔ;~+1Ю-Bߞc(L_<zN>u_lS.S6 j_<Qv͞]u/y3gyFBy5a.;?B4_y; 6sEw! fêJR=03FcYtڴ˭vhҁOMRN3|roһSuc`x ]0eնH fɕ$
+'.czYErzAyN]Вn*p hm
+Qx4humX3#R5bQYkKqizm׺:hMՀ[g&̌ %=GPWi$UČ3)k^7x
+JذȱGB}"y)#h}xyuQcK"zĵd!MK;ERsHe)]ؖDMva;w=ofy~7;1s)xm ͭ6-!,4)9'98§A\/:a5陶I:/<O26_oh
+endstream
+endobj
+7160 0 obj
+<< /Type /Page /Contents 7161 0 R /Resources 7159 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6745 0 R >>
endobj
7162 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 296.028 null ] >>
+<< /D [ 7160 0 R /XYZ 78.37 808.885 null ] >>
endobj
7163 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 285.069 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 768.829 null ] >>
endobj
7164 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 274.11 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 757.87 null ] >>
endobj
7165 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 241.655 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 746.912 null ] >>
endobj
7166 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 230.696 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 735.953 null ] >>
endobj
7167 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 219.737 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 724.994 null ] >>
endobj
7168 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 208.779 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 682.154 null ] >>
endobj
7169 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 197.82 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 671.195 null ] >>
endobj
7170 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 186.861 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 660.237 null ] >>
endobj
7171 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 175.902 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 649.278 null ] >>
endobj
7172 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 164.943 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 638.319 null ] >>
endobj
7173 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 153.984 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 627.36 null ] >>
endobj
7174 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 143.025 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 616.401 null ] >>
endobj
7175 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 132.066 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 605.442 null ] >>
endobj
7176 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 121.107 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 594.483 null ] >>
endobj
7177 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 583.524 null ] >>
endobj
-7119 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7180 0 obj
-<< /Filter /FlateDecode /Length 3207 >>
-stream
-x\Ko#7W^vLiI,
-:çaJE` v,nuL$s34\e%ᵎኢp3a8z \؈Jh.߯fຟ4'<Ŧ!wIO<nGm2> ):pnb~-{+hlE#@n"ofEƤ-겱ϵ/v|v ܋H~-+ "mbdő(Ks7)zٺw=
-\FOAIFwoV D+غ8I :nQVi2뗔P{{]&vi$De*~HBZHY%.f9]66K 8ʼnce'..>R2bDLd_8@/mB?̦u'Z )(1&V QV2kk.nŮXhi|`G SiY/e---]f+I3~ BLȺlbkK:_I;FXCjdEYYnb}YѤ61J^
-DiZb,EYt_?KZG$iF&{Bظ|HAUi{g=gp"0eȰWPsFVS`7]3kַvٮ8*Z"U1dY߻>dUSʭ%"mpEϬ hB03*+*v?,rYDؘUY]ɬSsGqJtVc H{rUvBȬ6]m~kO ŜT&l0-뱘Nl? sTZ% N:M^Oǔr$]ڠLzŭ
-h*@Y]ʬcx}l<#A0&f~]`.. :o
-cfb״(̺,.0mQ`Yef4h^qR+eO2kk;&$6_tY̬*:|>}H)KRXtYˬSϞ5{ RuYʬڻ]Z=/P6e`kv/Ҟ KBf=Q[K̕d-R*
-&Wwń[y~Y.7L\oH 0s>{U]5;ns34ïM׵[Çquo>vy=vDBs?pX({oeϯv>6`7nҟk.]pXj<O^ls6YcYˠP ܢÓm?LnZ!@z='b ݗYcm86G-~)'ceOjb_A-Ѩ#͉8,'6"J8d(̑ɲ4<Q hP]ZkeEHB{BZNoj,WluPW} ¸5XUsUCm`(xsZ!N2% ?lU %
-V*O_ =;>W>O-l38W_#K@PO
-.}8LSZכ%ikLSMS̃?NMijx0+& Qă x>M~6^mqk>6x푉&~f|;0gI)ьR|yD3:0'bJ1 e`" LS7_(|?
- m~I8h?Cކ{Bg'/KE $rD0$~= _de ={I4372Җr3UPRyèuz1"QW{Rj% "C%ca:" OUλũ;$QBD!f`RD0`{7 fDtYN
-w'oݣ !
-S%3$B i%q܌V h%: E7 0mb șfRFp 3X$wrKzDv֓}f,0w!Ҁ
-Rc̐饻Mc81E$ h9qÊD6pb8̕prRqF5:';}r$H7I%E ;@IN3
- X4?- XߪYscW91ܝ8^6HuO;$B i%q܌ V0= QJvZrʼnAHrE!QK=.NbzRIzzӌ€F),f׮>H 7)Jd;$B i@%q܌ V (}
-endstream
+7178 0 obj
+<< /D [ 7160 0 R /XYZ 81.145 572.565 null ] >>
endobj
7179 0 obj
-<< /Type /Page /Contents 7180 0 R /Resources 7178 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7160 0 R /XYZ 81.145 561.606 null ] >>
+endobj
+7180 0 obj
+<< /D [ 7160 0 R /XYZ 81.145 550.648 null ] >>
endobj
7181 0 obj
-<< /D [ 7179 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 539.689 null ] >>
endobj
7182 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 528.73 null ] >>
endobj
7183 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 517.771 null ] >>
endobj
7184 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 506.812 null ] >>
endobj
7185 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 454.01 null ] >>
endobj
7186 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 443.051 null ] >>
endobj
7187 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 432.092 null ] >>
endobj
7188 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 379.29 null ] >>
endobj
7189 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 368.331 null ] >>
endobj
7190 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 357.372 null ] >>
endobj
7191 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 346.413 null ] >>
endobj
7192 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 335.454 null ] >>
endobj
7193 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 324.496 null ] >>
endobj
7194 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 313.537 null ] >>
endobj
7195 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 302.578 null ] >>
endobj
7196 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 291.619 null ] >>
endobj
7197 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 280.66 null ] >>
endobj
7198 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 269.701 null ] >>
endobj
7199 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 258.742 null ] >>
endobj
7200 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 247.783 null ] >>
endobj
7201 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 236.824 null ] >>
endobj
7202 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 225.865 null ] >>
endobj
7203 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 214.907 null ] >>
endobj
7204 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 203.948 null ] >>
endobj
7205 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 139.19 null ] >>
endobj
7206 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 128.232 null ] >>
endobj
7207 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 117.273 null ] >>
endobj
7208 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 106.314 null ] >>
endobj
7209 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 95.355 null ] >>
endobj
7210 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 461.982 null ] >>
-endobj
-7211 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 7160 0 R /XYZ 81.145 84.396 null ] >>
endobj
-7212 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 440.065 null ] >>
+7159 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7213 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 429.106 null ] >>
+<< /Filter /FlateDecode /Length 2557 >>
+stream
+x[n8WegsmמuPHUNAδD>cc,L~ύᓙ-ǯ7͂J>! ~7o`܊o~ܚxO^WYVHt3`$u\K#^u+ gKD#H}i&"{ \\}>یiBڷvO*CT`B+!~!*2Bc Hτ$%oK@Ǥ4%Gfc0RoRI-*bU5fr+zp :ޟ{F7Z-֒k66#md^ޖdILmGBm0LqGڅYb'BB{.3tCv]bsڨ47cAyrS>359+}w^#!y͔B@(q)"ST:~=8GZ=q)wF27lhVJzq/&)(tM
+oCȠ#6O_> #J.O:\x`z+2{h*3)Jf1ӶiKf뽚"WWb>,oZWd`? ^[7m)k2xLϓ@LooU BN溻+o}_7}L?H1w7hh \;L>0+%~K ;Ը9S~+n=L}y+t!s),2"T뒵s͢X>Hϱvjt. p zedX
+!%&&|m0xgrV;{L !GLuei.(8riK,d 2Ao)9#9dMmӾVcгYg4e+1At`\ rNcb b$~fuV
+ߗ*!
+z5 C@(铔Z.PRA:!=wgV_)*ߧr/9tp6J,X9о[l{' 3qjHRhqOu]ьg2PL>NM@U3QC; t3z (9@!jjwmA Bӽm=)f9 7ǫj8K~/r/ ӂtgc?`65fA;#~g8+<Qgfڐl0̙p7K!%B J=f6$i%vODrwb:YK$Zw*Hf%uZ-5!Bgd/q"lY;UgVl6Cq>芛#} \] l[M:I&.:ӢZ9.( kݫW㫧!YsZ|[ct-S2EZ;rփ% R]k!e#$ mhD cg#cr$gvQuՍ;?4t}n`>lmTJM"ݛ|fW N=4kwdMk=.zOvgNx"~NyiPȉ^Sn#/uhvM+mwvX1i$F=^ZT{K׳LcG^f#1bDo}6lɍ͡BMkKڗY9Zxƾ=׾-b|>Nj'(R&ͫבv]Z2*\'E\DPeHvBˈjJxFx9cX힒$3NN!c*k-\Uo2G=:wRÎ;ޕ&!5ǔQh79,a1qYbݽ|Ha[><V/o7}SR0î^9W f3;,DNuHEjRُN^ wCrlɠāhb d"LJ9|8_1A3B"xyNowj}y2C`r[CΖ!3DSϬ 2%+(^g
+(Qc3f$\Y>F4
+ԵFץ
+j,6{R^EЏ1P728:z$.良!Ƕu3{x4
+-# 8/Od kn=o{/\]Pd=uۆ0J{+,x,e0$Dx!N P2OeOJ*(`\JƐ(NAS?ںЋ|S@ZǍ*a2r r) ?[fJ!y2/ q܌7x{\5q:k/ݱr~iGUƇ`t<u^J8XX%$ysI!s-L#̐ F#<Myőq۔TfV# ]J9f-gy֍u_ ͵.7ԣ/")7cfC>(0VP WJ9q#(C0m΄7Yp=O\
+endstream
+endobj
+7212 0 obj
+<< /Type /Page /Contents 7213 0 R /Resources 7211 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7214 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 7212 0 R /XYZ 78.37 808.885 null ] >>
endobj
7215 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 768.829 null ] >>
endobj
7216 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 757.87 null ] >>
endobj
7217 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 746.912 null ] >>
endobj
7218 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 735.953 null ] >>
endobj
7219 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 724.994 null ] >>
endobj
7220 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 714.035 null ] >>
endobj
7221 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 703.076 null ] >>
endobj
7222 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 692.117 null ] >>
endobj
7223 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 681.158 null ] >>
endobj
7224 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 646.6 null ] >>
endobj
7225 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 612.042 null ] >>
endobj
7226 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 601.083 null ] >>
endobj
7227 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 590.124 null ] >>
endobj
7228 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 579.165 null ] >>
endobj
7229 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 568.207 null ] >>
endobj
7230 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 557.248 null ] >>
endobj
7231 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 546.289 null ] >>
endobj
7232 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 535.33 null ] >>
endobj
7233 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 524.371 null ] >>
endobj
-7178 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F32 1809 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7236 0 obj
-<< /Filter /FlateDecode /Length 3632 >>
-stream
-x\o7_;1\Z\
-p[[%GZI7peYK=ggJ'7:ᄆO7']}[JN.O0 hKJFnOLȫY~u,m[|?ҊTqug/ܿJJEVݮu#7 ,`F" 젒;UU^/dd}/S+*NPIC 36 Y%xgqY"jJɧ äV 89YON>L$ְQBH _J?}q7^"LdĂAGSēO27~!x.πo`J) ߳gA_*{_?~%Ƣ3 y4vDP+(FOQN.QX's
-3VZoRH,jp uP&#ndo{q4s%r
-Cy6o`2gX҆H7Du r7M/% AjpLԈ}`t4z0@L +$T// !(CL`8lBR6]Tf.`DYajˆiƙ6@dB| g5 8jh^bD =5Q)vbTTHPKYDT tZ0//HpAD`9 }ÌCR7
-M",AU<mÌAж5x&*>D*S=TR0^+CY3MΨ&%`ǓEi\d`bD0==Ii-)8L x<g iqЙ  5xbr<Q]B ČFP7'*'a h(pi\0GTn*d|覆GB:4J: '2St$ӝA8'Azګ*Oyڤ;"\O0X l]?^~.{7n̚_acvVҚvqv0QcC(cqc!1vnoö.6DBf237b[wWs5mYo>+PA ebiomM0sV_Wr +=:UfY~l7iZ5{0(FŠ2Paigֲb=0 W3`
-?]Acbbl,|Ϸb}9OLGxR
-CbxQvd~>)KGoGGa x/p&]"|=)Tc1qYQ
-
-0qgc2nXwa{Ρf_6kyl7Ġh\ƅY`zsŇzd|%!5q7>2ombWw-"FBCٞҵoaDh37wo)~]T;C5aw{׊2<Ӓ{#0Acۃd.J7_\)DZQ&\¨}0s8E)..Ҹ>FxV _g ʭbFpUF),94o/-(eW!\9pV|XѸ]ѫv2JrIj̙*h7'\Y!FeKォghڿI=' Blvʅ.hp{ں.N]|}$ v>nVx>&p hm1Su*)sM?p<.AD-PhtI~5]_!iݎ@={g +#2O{;oߥS
- 9J@92?XGx^Y'*B&ٍkӟ)ٶ3@A ?nd$f(dev3鯨k?TKͤQuw~ɺ2[s TQ) 4o/> v]eM<Xs,CXb~Ա)fe P&.Q0Q ++EeR&]3&^ ~$P@+E4BR&XgFPeכ,HwLz,BC-_Ŭr3>&wqps!_@IlLϘumx
-endstream
+7234 0 obj
+<< /D [ 7212 0 R /XYZ 81.145 508.586 null ] >>
endobj
7235 0 obj
-<< /Type /Page /Contents 7236 0 R /Resources 7234 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7212 0 R /XYZ 81.145 492.802 null ] >>
+endobj
+7236 0 obj
+<< /D [ 7212 0 R /XYZ 81.145 481.843 null ] >>
endobj
7237 0 obj
-<< /D [ 7235 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 466.058 null ] >>
endobj
7238 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 687.148 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 455.099 null ] >>
endobj
7239 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 676.189 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 444.14 null ] >>
endobj
7240 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 665.23 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 433.182 null ] >>
endobj
7241 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 654.271 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 422.223 null ] >>
endobj
7242 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 643.312 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 411.264 null ] >>
endobj
7243 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 632.353 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 400.305 null ] >>
endobj
7244 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 621.394 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 389.346 null ] >>
endobj
7245 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 610.436 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 378.387 null ] >>
endobj
7246 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 599.477 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 367.428 null ] >>
endobj
7247 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 588.518 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 356.469 null ] >>
endobj
7248 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 577.559 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 345.51 null ] >>
endobj
7249 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 566.6 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 334.551 null ] >>
endobj
7250 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 555.641 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 323.592 null ] >>
endobj
7251 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 544.682 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 312.634 null ] >>
endobj
7252 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 533.723 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 301.675 null ] >>
endobj
7253 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 490.94 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 201.878 null ] >>
endobj
7254 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 479.981 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 190.919 null ] >>
endobj
7255 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 469.022 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 179.96 null ] >>
endobj
7256 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 458.063 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 169.001 null ] >>
endobj
7257 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 447.105 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 158.042 null ] >>
endobj
7258 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 436.146 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 147.084 null ] >>
endobj
7259 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 425.187 null ] >>
+<< /D [ 7212 0 R /XYZ 81.145 136.125 null ] >>
endobj
-7260 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 414.228 null ] >>
+7211 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F82 699 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7261 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 403.269 null ] >>
+7263 0 obj
+<< /Filter /FlateDecode /Length 2165 >>
+stream
+x[n8 +ՕH=@4̺lgVzN-"M!E
+?{?xyg*|x8?qYpzAF$NV3hN=q87?_WmN9Ѷ@83F$+^z.^Z?\//:Y(;Zmz9%<ȍ8)
+dXg?ˤ?˳wLm
+Hk@S8 Dz?'r/(f(LXIF #}7QpΑ~N/#% ?Y= [㚁#a
+iS D;Ő3 @sesxOucW6>wbKoݟv{R[P:?}Z/G_jFD_'<~kONQC;i?A4m/hpvء,dƁN@b6Ԇ: r\5Ņ .i0|gdikc|0%ɟc4l4j?
+fh۪? m=v~lD1g)jJ4@󳼒IK^TҀ#,fBy*ҧ8Fy'Rϔ0k<(tRxH#3bxYzeZc{7DkjTkϭ"ҜP֜B lo29).ubr~Jʾ,0Osh0yi{u֦EVB|~>8)k@zǍ&KLB
+V\jH%+:by'|\MO"JKU\]csyvjG82ĩ[,7)&~ >[,gpOUVWN^i<2ʡVCfN%EOBѾ.;ln\z gX@
+endstream
endobj
7262 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 392.31 null ] >>
-endobj
-7263 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 381.351 null ] >>
+<< /Type /Page /Contents 7263 0 R /Resources 7261 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7264 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 370.392 null ] >>
+<< /D [ 7262 0 R /XYZ 78.37 808.885 null ] >>
endobj
7265 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 359.433 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 768.829 null ] >>
endobj
7266 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 348.474 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 757.87 null ] >>
endobj
7267 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 337.515 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 746.912 null ] >>
endobj
7268 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 326.557 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 735.953 null ] >>
endobj
7269 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 315.598 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 724.994 null ] >>
endobj
7270 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 262.908 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 714.035 null ] >>
endobj
7271 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 251.949 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 703.076 null ] >>
endobj
7272 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 240.99 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 692.117 null ] >>
endobj
7273 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 681.158 null ] >>
endobj
7274 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 666.238 null ] >>
endobj
7275 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 655.279 null ] >>
endobj
7276 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 644.32 null ] >>
endobj
7277 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 633.361 null ] >>
endobj
7278 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 622.403 null ] >>
endobj
7279 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 611.444 null ] >>
endobj
7280 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 600.485 null ] >>
endobj
7281 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 589.526 null ] >>
endobj
7282 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 578.567 null ] >>
endobj
7283 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 549.771 null ] >>
endobj
-7234 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F32 1809 0 R /F23 660 0 R /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7286 0 obj
-<< /Filter /FlateDecode /Length 1919 >>
-stream
-xڭZMo8W3aߢ4vrX63IȒWN7OQ)Rq;.g/-鑯ŪWt,vDO\||&I)g
-/%3:KQTϴ$Qtv9Wt,%F)`Q.M7x)ovv29swf[ڬ+Io 5uv|]؁޷xk÷?Y?{|G {l`1D&!nɳU<yt;> >]^Tx?DO;?7K -0&]!jŖ M춍=7DER = =銚S"hC)wQz
-"ܿ!lxY&Di_Bѫ.p'*4P/E3+;kD˱ܞLy3}>ޓ08!:ZS^.WwG$όGI &!?`$>U ;DӍ`f̊oq}}5#CiȖev.XGh$$a36b.D9#jq]ݼa~4!4
-&DP"-ub®ojʩ=7n4s-Ɛdl)EhiJP#Bҫ~TWᜟثH8Gح
-R2υK^hvjڵq!y YO븊E ?BXt{ؾC&wa@FWҮ)e&
-K!|QD0$$-B;wl}lnr)t AH)y$36~qvD&pSz|ZOUv(!cBނKFG
-}~8Llj'͹iFQڗMd?71ǹQ%;4ǘۯLwIWU" @TCc=@Dح˺,ډ{c~s4%Ʃ!Ex:nX
-f5 K+P:BXo~I]oˮؔŲ^V9W˽8B},6ٓmb/hf;$*^w\y9y݃볦29/4geGCBߖx-p+B4Q
-/UBE 5I/:F(Ehh
-҅N.6!ZYȅi= Π}Fr ]S !_רHf52COQ*g&'p„%->]j Sjfn?~.
-endstream
+7284 0 obj
+<< /D [ 7262 0 R /XYZ 81.145 538.812 null ] >>
endobj
7285 0 obj
-<< /Type /Page /Contents 7286 0 R /Resources 7284 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7262 0 R /XYZ 81.145 527.854 null ] >>
+endobj
+7286 0 obj
+<< /D [ 7262 0 R /XYZ 81.145 486.545 null ] >>
endobj
7287 0 obj
-<< /D [ 7285 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 475.586 null ] >>
endobj
7288 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 464.627 null ] >>
endobj
7289 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 449.707 null ] >>
endobj
7290 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 438.748 null ] >>
endobj
7291 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 427.789 null ] >>
endobj
7292 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 416.83 null ] >>
endobj
7293 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 405.871 null ] >>
endobj
7294 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 394.912 null ] >>
endobj
7295 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 383.953 null ] >>
endobj
7296 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 372.995 null ] >>
endobj
7297 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 362.036 null ] >>
endobj
7298 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 351.077 null ] >>
endobj
7299 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 340.118 null ] >>
endobj
7300 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 329.159 null ] >>
endobj
7301 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 318.2 null ] >>
endobj
7302 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 307.241 null ] >>
endobj
7303 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 296.282 null ] >>
endobj
7304 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 285.323 null ] >>
endobj
7305 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 274.364 null ] >>
endobj
7306 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 263.406 null ] >>
endobj
7307 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 252.447 null ] >>
endobj
7308 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 241.488 null ] >>
endobj
7309 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 230.529 null ] >>
endobj
7310 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 219.57 null ] >>
endobj
7311 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 208.611 null ] >>
endobj
7312 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 404.199 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 155.347 null ] >>
endobj
7313 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 144.388 null ] >>
endobj
7314 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 133.429 null ] >>
endobj
7315 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 122.47 null ] >>
endobj
7316 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 111.511 null ] >>
endobj
7317 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 100.552 null ] >>
endobj
7318 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 89.593 null ] >>
endobj
7319 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 7262 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7320 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 306.565 null ] >>
-endobj
-7321 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 295.606 null ] >>
+7261 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7322 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 279.666 null ] >>
+<< /Filter /FlateDecode /Length 2789 >>
+stream
+x\n$9+J%ZJ}̵4mPC:3#EQd~_xTt}z3"7X4Z\w3Zq.}?*_o\,sZm:="(IZ揯+_1k*?O Ѥ5?>- 3z<$*o+<U^yMo|7@7`$ k Lb=(
+G* 2RCM󬁖-k14 k Aؚo_$(A Kho~ls 2 / n&qeG)" Fc&Zf14zĀI ) 3d Q~h$ fE 4ӑgWj-ٷX*%T W8C2c]=
+oUNw@*hzncG.ldٗ8OՉYC9v+ sAu˦E uI+7#q[֒]'qtyh'BgN\%"2)%AoJiXI#Lwj516Ƴf1.@RIG8Y&B529et.ϝYEVA)Zk&[<(Ť23I 83F$y ɲR
+1MQj{}e
+nmH\2Mh&E 2R2VFk㴶1/*
+~5
+z)W &z-4S>ޙkLu@eckPɠ%id`>Df]61vս1z?aAA\G:&ZLi6C1 Fsc?UetڝvC<DHDVS2#Ռ4G[bQ+L> lPf6l'{OG3-PÌQ9AfxbVYZwSS sS@0Ĕ |DcH?8005xDZjg f-F#+tMhu@f}g˞$^%>;</dΖy&Հx>NٲTRjń Qݳ>j-ií6(Ye0¶ސpBҞ$?;~-z>a
+3 ?2/yeO_
+S ~n,<v%x_U۔5=dC97sОz=H38?#S$ulHg(kf/4m-1s%ZclЩd2%'Iͯld.˹W?#nN1VilcxWp?J 12nٙ!fO>'i\kXeFJj0
+l$36O\ɞ<c]c}
+2on=kU=,܃;=;feToЙ%zazĨ3 $d૿;,sՕN9ޏEysi~$+)b]-<ʶjؖyq >xXLI.иo˯Pɹ)ur%@=_5lDry|ÁDHo8EA&& 8XFc" ]#XR<)-dʟzG)qKlBةmH5gr= G+j| KqpoU)W| BQzyզxlBdD֍dvGf 5?*V U.H*H!n^
+=M`thN1(LCˎ9=ރH$SaƷ}ꠘبȤ&'ґ_$C;)4<$?<bC3Y;W ];9x"Sx.4Ô|M]rC{g0+u@eu
+DiHXuFyx/މ?@bA?
+endstream
+endobj
+7321 0 obj
+<< /Type /Page /Contents 7322 0 R /Resources 7320 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7323 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 7321 0 R /XYZ 78.37 808.885 null ] >>
endobj
7324 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 768.829 null ] >>
endobj
7325 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 757.87 null ] >>
endobj
7326 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 685.143 null ] >>
endobj
7327 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 674.184 null ] >>
endobj
7328 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 663.225 null ] >>
endobj
7329 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 652.266 null ] >>
endobj
7330 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 641.308 null ] >>
endobj
7331 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 630.349 null ] >>
endobj
7332 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 619.39 null ] >>
endobj
7333 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 608.431 null ] >>
endobj
7334 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 597.472 null ] >>
endobj
7335 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 586.513 null ] >>
endobj
7336 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 575.554 null ] >>
endobj
7337 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 564.595 null ] >>
endobj
-7284 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+7338 0 obj
+<< /D [ 7321 0 R /XYZ 81.145 553.636 null ] >>
endobj
-7341 0 obj
-<< /Filter /FlateDecode /Length 2216 >>
-stream
-xڽZ[o~_a/0~1ŢEgECvbˉEr%y2=%zә%H~sSvg_} #;xFf fJ%]?~uCX]\2*:*>c悑{
-0+YS$u_3q/L$˼vMeF[悪-^dޕ%iLq1ieUcX!*L . r1$|&_yߖ_?mK a: `)"{ c^6B}r>(|By^m ם֪ƹHUCT)cHj3 nc"L<&/ EJPj쪏NSi<<ʽ<N˶6*Bg,pٻֲsmbwE͠Vo+ 㕀1?=&Q3
-1!T'#mX ~}ݴ?lq+ODZM#{ N!0\_^GFF)D_Gs)n~( npB`G`eciX,6p̂3'
-~1$sVJ=gugB"F?'-O2>mm
-7mEmr[\dUeVZf0*'h.4i<C <B3jF4DN*hϢ(Zz$fl,_O]WD4<QF4D[Byu=}v?;?о Pp#?kI,uu}q8Q˾8czrO{@FFpVm>8Kz״左-y\gj>4LVtnz7./Mƍ\'7&wNC <xy
-I ۾\$1]p<a~"nu5!y\%Aá9
-rb|áQ|. Ea!iB+~ nNj-6%[QRUt8&IN- Ku
-!x쿸]AqD1AIxB;R#a#W}
-endstream
+7339 0 obj
+<< /D [ 7321 0 R /XYZ 81.145 542.677 null ] >>
endobj
7340 0 obj
-<< /Type /Page /Contents 7341 0 R /Resources 7339 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7321 0 R /XYZ 81.145 531.719 null ] >>
+endobj
+7341 0 obj
+<< /D [ 7321 0 R /XYZ 81.145 520.76 null ] >>
endobj
7342 0 obj
-<< /D [ 7340 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 509.801 null ] >>
endobj
7343 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 694.652 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 498.842 null ] >>
endobj
7344 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 683.693 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 487.883 null ] >>
endobj
7345 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 672.734 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 447.036 null ] >>
endobj
7346 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 661.775 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 436.077 null ] >>
endobj
7347 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 650.816 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 425.118 null ] >>
endobj
7348 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 639.857 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 370.324 null ] >>
endobj
7349 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 628.898 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 359.365 null ] >>
endobj
7350 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 562.149 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 348.406 null ] >>
endobj
7351 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 551.19 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 337.447 null ] >>
endobj
7352 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 540.231 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 326.488 null ] >>
endobj
7353 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 529.272 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 315.529 null ] >>
endobj
7354 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 518.313 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 304.57 null ] >>
endobj
7355 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 507.354 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 293.611 null ] >>
endobj
7356 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 496.395 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 282.653 null ] >>
endobj
7357 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 485.436 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 271.694 null ] >>
endobj
7358 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 474.477 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 260.735 null ] >>
endobj
7359 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 458.537 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 249.776 null ] >>
endobj
7360 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 447.578 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 183.026 null ] >>
endobj
7361 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 436.619 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 172.067 null ] >>
endobj
7362 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 425.66 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 131.22 null ] >>
endobj
7363 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 414.701 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 120.261 null ] >>
endobj
7364 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 403.743 null ] >>
-endobj
-7365 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 392.784 null ] >>
+<< /D [ 7321 0 R /XYZ 81.145 109.303 null ] >>
endobj
-7366 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 381.825 null ] >>
+7320 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7367 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 370.866 null ] >>
+<< /Filter /FlateDecode /Length 2473 >>
+stream
+x[;# W(US[5=d O /HӔf6jE~?
+5U nʚJź9!Kf>$&{ʺ.}O{n D.%ls&2puinFKΫw-L5yʚ'V:&d܋W.^Vfιitյ/LNHvEUPFȁSOr,`л FZT*04˛VId5e|L2Ren
+{#T,ڊ14V[9$ Qsу"qbsͽ:<z$}@&Ve6o-k6[Za4鰗⿿#.;EAd^N~7-v5P\0͈T 9*ܥ.A!kV6,Pث|}-)vR8:f1N\y:@]@7L}R4oWl{;sX.oΜJ6ѧ%N~dSܘv(w&ݟV;U-MA{ 0FJY'8;f$Fh00Ԥc$9RHarRS(ad,F1+#ʀ__jHT—ZMVaBaP#^q 粋9l5߃Rw.;I6Ԧ8.S23)Hf3=PeFWL#gab{Bv͙r4${$Dx1cǧK?"=E]1wjDvbDѥ2]2@
+{t%~)X&Z|5,/-ny~9#h!:fz1:Ba @N1 Ѹ3^+qgR51{^͞5Mz^PGCDјhM3 @Hx%)KTd5蹱J*gHpwAY$'K"1K.Zr\-4zIU77EJo_KDR5MI(k@ !JRKOg.n?y9TTٚw Bʾ4
+8XGV=ӕnw+ף0 d#%93Α{,9_y;:#,6k%M0
+``UòVze0+GӬJX:
+DZ^lф`#фG i6ǿÎu9^+E-$"k<
+/x8=ޠgt0Fy//cv?uٽ**t@jxZi
+9`/ř6]V^~p
+endstream
+endobj
+7366 0 obj
+<< /Type /Page /Contents 7367 0 R /Resources 7365 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7368 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 337.989 null ] >>
+<< /D [ 7366 0 R /XYZ 78.37 808.885 null ] >>
endobj
7369 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 327.03 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 730.577 null ] >>
endobj
7370 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 284.191 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 719.618 null ] >>
endobj
7371 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 273.232 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 691.13 null ] >>
endobj
7372 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 262.273 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 680.171 null ] >>
endobj
7373 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 246.333 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 669.212 null ] >>
endobj
7374 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 235.374 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 658.253 null ] >>
endobj
7375 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 224.415 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 647.295 null ] >>
endobj
7376 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 213.456 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 636.336 null ] >>
endobj
7377 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 202.497 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 625.377 null ] >>
endobj
7378 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 191.538 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 614.418 null ] >>
endobj
7379 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 180.579 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 603.459 null ] >>
endobj
7380 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 169.621 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 592.5 null ] >>
endobj
7381 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 158.662 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 581.541 null ] >>
endobj
7382 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 147.703 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 570.582 null ] >>
endobj
7383 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 136.744 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 559.623 null ] >>
endobj
7384 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 125.785 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 548.664 null ] >>
endobj
7385 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 114.826 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 537.705 null ] >>
endobj
7386 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 103.867 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 498.456 null ] >>
endobj
7387 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 92.908 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 487.498 null ] >>
endobj
7388 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 81.949 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 476.539 null ] >>
endobj
-7339 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7391 0 obj
-<< /Filter /FlateDecode /Length 2329 >>
-stream
-xZo~_> K
-zEP@Цnb1k!Jrr!)Ѥ8f\+G G3ߌ''x H;?^]&lQF'׷'& ILIdr8ӟ:$E,eH
-.+!II(P& Zۦ)BՃv>ퟱcN$Nb'/G]gj>E;b8qJQJhg$d
-iVhqzh4!:s2s-{y[$E"s ̅ZFRg[dpM\DdGD)@
-}$e]#K V~{~uCd9x[w-pWĩ遏5辶d(Ŏ#9! {sw&>`2`h~3Vv?O\#UIyM"HS!HM)MBtImWH ,X;מAhOhP
-f
- dO \C`0긁}AbF  / mξwvx8[Gޭ#ÊPmVs8,ʊ<Ӓ<'QYh6d9.R^u ؛i<1><fݴ|(H7 GaΜ֌bceC^FaP}I\ o˟Tw!k 8bRwa9~GѠZ!t03Otw6ЯA`kV#'0\聥ίYf\rDbc
- l][:qVY7tֳ-Kef$Ai⒉KzSC}8>??-+_!}uѨP# @ӗP-f~[GM=rda2b(y?
-˄BpWALCptGL8F)İBtMD2*I(&3e+&"!Ey7 H]7l"f2{6Vʐ(+X>(W+10ΨqČR像8mA@x n%RNfGz>|0
-endstream
+7389 0 obj
+<< /D [ 7366 0 R /XYZ 81.145 465.58 null ] >>
endobj
7390 0 obj
-<< /Type /Page /Contents 7391 0 R /Resources 7389 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7366 0 R /XYZ 81.145 454.621 null ] >>
+endobj
+7391 0 obj
+<< /D [ 7366 0 R /XYZ 81.145 443.662 null ] >>
endobj
7392 0 obj
-<< /D [ 7390 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 432.703 null ] >>
endobj
7393 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 421.744 null ] >>
endobj
7394 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 410.785 null ] >>
endobj
7395 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 399.826 null ] >>
endobj
7396 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 388.867 null ] >>
endobj
7397 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 377.909 null ] >>
endobj
7398 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 366.95 null ] >>
endobj
7399 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 355.991 null ] >>
endobj
7400 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 345.032 null ] >>
endobj
7401 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 334.073 null ] >>
endobj
7402 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 323.114 null ] >>
endobj
7403 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 308.772 null ] >>
endobj
7404 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 297.813 null ] >>
endobj
7405 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 286.854 null ] >>
endobj
7406 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 275.895 null ] >>
endobj
7407 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 264.936 null ] >>
endobj
7408 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 253.977 null ] >>
endobj
7409 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 243.018 null ] >>
endobj
7410 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 232.059 null ] >>
endobj
7411 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 221.1 null ] >>
endobj
7412 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 210.141 null ] >>
endobj
7413 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 199.183 null ] >>
endobj
7414 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 188.224 null ] >>
endobj
7415 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 177.265 null ] >>
endobj
7416 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 166.306 null ] >>
endobj
7417 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 155.347 null ] >>
endobj
7418 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 144.388 null ] >>
endobj
7419 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 133.429 null ] >>
endobj
7420 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 122.47 null ] >>
endobj
7421 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 111.511 null ] >>
endobj
7422 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 100.552 null ] >>
endobj
7423 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 89.593 null ] >>
endobj
7424 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 7366 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7425 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 307.561 null ] >>
-endobj
-7426 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 296.603 null ] >>
+7365 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7427 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 285.644 null ] >>
+<< /Filter /FlateDecode /Length 2186 >>
+stream
+x[Ko6 WV"
+Ƙxv2Y
+ C?FÈt{9F$@=" I<P K#G^q/I8Pݹ,Xb`p9^
+x\:„'66rA{VpmRXM]Yi1b2 ls4#$[ ӯb{tx'R!Gc9k
+)ȣ1U2SD۪S˽]ƎV6Q*et{iFK'DZ-Wcr9611w5L4H!^<m$N_P:]Ab̆mkWPF ٶH9{9¶0b5ƛkU#6 k͔v 2[E%ǹ!N,(9Ju_W^*N(LTަ ݗhHy|uk8lppdh)W¢]^}cPGӬ-$B~nـUh&
+ [H)Qh3:BNHYI,).8"} ps
+8$r;{HA6rlp]lq;u@y1R|,crH'HA#7r)O9 (ǒg
+d@
+d8LPVh>=GV &!cф({5 ,!SEI$
+VaD@_|T8mYEǩ
+d@+pMjEX d H'H1 )sh%;
+㜠c T), 1t?+&eT̝N*-~@ Zq==μ
+endstream
+endobj
+7426 0 obj
+<< /Type /Page /Contents 7427 0 R /Resources 7425 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7428 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 274.685 null ] >>
+<< /D [ 7426 0 R /XYZ 78.37 808.885 null ] >>
endobj
7429 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 768.829 null ] >>
endobj
7430 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 757.87 null ] >>
endobj
7431 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 746.912 null ] >>
endobj
7432 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 716.027 null ] >>
endobj
7433 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 705.068 null ] >>
endobj
7434 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 694.11 null ] >>
endobj
7435 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 683.151 null ] >>
endobj
7436 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 672.192 null ] >>
endobj
7437 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 661.233 null ] >>
endobj
7438 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 650.274 null ] >>
endobj
7439 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 639.315 null ] >>
endobj
-7389 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7442 0 obj
-<< /Filter /FlateDecode /Length 2330 >>
-stream
-xZ[o6}ϯ0sx`m;-
-4 ,C[Be#ɤ(FJϼKlQ:x9 ~'_W?lƑV̔D@%ݯgͥ_w(L!-%Sc0L躨l.BP1GQM2Mdy؏&;)#iG:~1uRGo-ihkb?\ӈpBE]'6X&H~'?EVInd}CXn$4O^U(DϋĨp_D4@cH fRkDu;+XRce `~'u/Ke曞e-g5FuwfA3c([sJJ^%%inҺ QYFૹ `m}OGy3U
->kGKsDžJarpKNtГ 9y'.z1qmV
-t7;A<CZ!K`CJ>mfc}{WLԺ ԧ# eXxI>4 iL"LugM>WRm{-mFi.qBc;>~Iԃ9^1Hnqćp!Qe<!n`8-n2@TN`<" Ia
-w_C,٨*{.=ABʬ(v 9g 2=Ӟ@rɗ:*{ϲr C^ϱ\D$sR&tDX7ƍH6wXCF"w-k,ڱlͭ_)L\g{79`udM:hC.ʧ.]c??v#] CFq_3FDp}c|Is(=iGznIq\_JqDU%߼ĥiHEO7 Lř5XF A
-)5^ڞn|Cɱv!0\ÉNTS9oOԐ)+~'|~M@eHZzyԨHcय़Ϻ G 0,$GŅr()' Կf/.w'bs)mJG{Q>JW`;hå'tiYɤMi2 #s֙7] }S%"ڜoU :=>DTܴ?o$^/ E5~誎z7WYX7YPos+t/{
-z==Ao*6k10y[&}g?'yfws*e}W8ޤ%OZj<F{k?P^L Sݷ2ZJOL\Rθ19-gx?
-endstream
+7440 0 obj
+<< /D [ 7426 0 R /XYZ 81.145 628.356 null ] >>
endobj
7441 0 obj
-<< /Type /Page /Contents 7442 0 R /Resources 7440 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7426 0 R /XYZ 81.145 617.397 null ] >>
+endobj
+7442 0 obj
+<< /D [ 7426 0 R /XYZ 81.145 606.438 null ] >>
endobj
7443 0 obj
-<< /D [ 7441 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 595.479 null ] >>
endobj
7444 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 584.52 null ] >>
endobj
7445 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 568.58 null ] >>
endobj
7446 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 557.621 null ] >>
endobj
7447 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 463.502 null ] >>
endobj
7448 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 669.205 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 452.543 null ] >>
endobj
7449 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 658.246 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 441.584 null ] >>
endobj
7450 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 430.625 null ] >>
endobj
7451 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 419.666 null ] >>
endobj
7452 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 408.707 null ] >>
endobj
7453 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 397.748 null ] >>
endobj
7454 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 386.789 null ] >>
endobj
7455 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 375.831 null ] >>
endobj
7456 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 364.872 null ] >>
endobj
7457 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 353.913 null ] >>
endobj
7458 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 342.954 null ] >>
endobj
7459 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 331.995 null ] >>
endobj
7460 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 321.036 null ] >>
endobj
7461 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 292.144 null ] >>
endobj
7462 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 281.186 null ] >>
endobj
7463 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 270.227 null ] >>
endobj
7464 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 259.268 null ] >>
endobj
7465 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 248.309 null ] >>
endobj
7466 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 237.35 null ] >>
endobj
7467 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 226.391 null ] >>
endobj
7468 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 215.432 null ] >>
endobj
7469 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 204.473 null ] >>
endobj
7470 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 193.514 null ] >>
endobj
7471 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 182.555 null ] >>
endobj
7472 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 171.596 null ] >>
endobj
7473 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 160.638 null ] >>
endobj
7474 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 149.679 null ] >>
endobj
7475 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 133.738 null ] >>
endobj
7476 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 122.78 null ] >>
endobj
7477 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 111.821 null ] >>
endobj
7478 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 100.862 null ] >>
endobj
7479 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 89.903 null ] >>
endobj
7480 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 171.073 null ] >>
-endobj
-7481 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 7426 0 R /XYZ 81.145 78.944 null ] >>
endobj
-7482 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 149.155 null ] >>
+7425 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F82 699 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7483 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 138.197 null ] >>
+<< /Filter /FlateDecode /Length 2162 >>
+stream
+x[ɒ)W&ѡrĜ61יu%Bm TE=x?| rxv⠙wB?/88``_I9ǿ?\p]
+8
+ə\ uiH͌U=ō}j&=IFRcLL 1]ŝiކ z
+u786v妨PsDYlS#pftE'|W=U
+qzb5gn@BLc*^. ^@w)\%<JUǕJaQ[As"DyK!Ȼs(m{mpδSWkt,yyNHi7+gZZ<Nc1=͚b+4vۺB&Y'D {L>`}U;mРH2Ć"$|+8vP=ҽF]4yI!`L`QeNmV[UQIp<f XLΏYpgqk%/c 1jAPG(WH-6<t.4>-M׸Cuc,Wu h~j+5H_V^.o
+C
+N6Zͥ 
+]2Z.NOU9`P.ٟk{wd\$KL"V CѸUi!CeUsMIk`u5ildE KVa$}Z"Сn1r->Ru)B[VH'֭3HxI&vU%*"'^i8h
+ èd*vARuG[PͲHrXyN/3ۋ8VD3YZp!BVTvRm_#ȂU{jMq|-g e"zec#f4?}\ ˪@5 kZImŊ+u1b,e")̭OJ5OGIė?L 7iB;]m.#ܜFq]l泆-REITz
++Y#u@μY=Xb^N,)v 1-Ymv7}/Mge[Av6IQ5=E=GG*IEgzmu&
+endstream
+endobj
+7482 0 obj
+<< /Type /Page /Contents 7483 0 R /Resources 7481 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7484 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 7482 0 R /XYZ 78.37 808.885 null ] >>
endobj
7485 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 768.829 null ] >>
endobj
7486 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 757.87 null ] >>
endobj
-7440 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7489 0 obj
-<< /Filter /FlateDecode /Length 2058 >>
-stream
-xڭZo~_/No4zŢEs] AD,"{DnxC$S8pJn,~9K+rϗ)_b4lq}{FS "U$.ߗJQv>_*(u %S.]Vٮmbծ>LO|vWEXnA,L@T Tp&cwlnf di*>ͫX]62Z_>Lf;ueP-k>Eצ+ӖL*!m7MnMaJymS!P<uuXq|wr]m.}7ۋ9[3TF~5ף]]]~(-iNӓC"FJ9^4KNmG!8;+FШy>)eWWsϠO7ZwsD>10gƻn'vbR|@Rb{ҧvbR)c4BTi|g'4Z&)Qvvbhb4B5!T
-pΗ}nnjY|,;dI`K6$&1PS I1m^oiϮ׃bhrӸyvyݕMM˨abr*B[ Uv=Ђo41dCEܒh$$',pxN:``n@SuCP-hj2^!?ư`}}Rd!%ł)/,h< nB4>HE♑0BOq{XEC\ \UFچqEQ':%r}wMW&?
-3+7_(ӆ?EJ'IB&WʇUW\I/#4:vq)>~ "4^D70-B->c$ryE"4jdwL0l7O-bXm*$Y"D۾*zVцZM{ݝ6[K\{ܻ3>;o;\CLQu:Ee:z/9]i?ӝy.? 'oEw
-62Fsa3}ru? pc8MUB d<~[!Ӊ@WDs|)S!pD /^ ~ }('K!txfSVvobVaU?5;/tqW1^%z~ 3ߗ.ߨq$C${Җ@Ԯ밴yM5D17yfR0X56NG9 2EmoHi"(R}!o^q?_!!ت9Vԋ7#yK%eTtLQԻ ^f.HT9$?S !-
-:D$pC?
-s'
-endstream
+7487 0 obj
+<< /D [ 7482 0 R /XYZ 81.145 746.912 null ] >>
endobj
7488 0 obj
-<< /Type /Page /Contents 7489 0 R /Resources 7487 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7482 0 R /XYZ 81.145 735.953 null ] >>
+endobj
+7489 0 obj
+<< /D [ 7482 0 R /XYZ 81.145 724.994 null ] >>
endobj
7490 0 obj
-<< /D [ 7488 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 714.035 null ] >>
endobj
7491 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 703.076 null ] >>
endobj
7492 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 692.117 null ] >>
endobj
7493 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 681.158 null ] >>
endobj
7494 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 665.218 null ] >>
endobj
7495 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 654.259 null ] >>
endobj
7496 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 643.3 null ] >>
endobj
7497 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 632.341 null ] >>
endobj
7498 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 621.382 null ] >>
endobj
7499 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 610.423 null ] >>
endobj
7500 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 599.464 null ] >>
endobj
7501 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 588.506 null ] >>
endobj
7502 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 577.547 null ] >>
endobj
7503 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 566.588 null ] >>
endobj
7504 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 555.629 null ] >>
endobj
7505 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 544.67 null ] >>
endobj
7506 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 533.711 null ] >>
endobj
7507 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 522.752 null ] >>
endobj
7508 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 511.793 null ] >>
+endobj
+93 0 obj
+<< /D [ 7482 0 R /XYZ 79.37 486.344 null ] >>
endobj
7509 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 377.409 null ] >>
endobj
7510 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 366.45 null ] >>
endobj
7511 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 355.491 null ] >>
endobj
7512 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 344.532 null ] >>
endobj
7513 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 523.579 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 289.738 null ] >>
endobj
7514 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 512.62 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 278.779 null ] >>
endobj
7515 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 501.662 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 267.82 null ] >>
endobj
7516 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 472.015 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 256.861 null ] >>
endobj
7517 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 461.056 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 245.902 null ] >>
endobj
7518 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 450.097 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 234.943 null ] >>
endobj
7519 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 439.138 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 223.984 null ] >>
endobj
7520 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 428.179 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 213.026 null ] >>
endobj
7521 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 417.22 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 202.067 null ] >>
endobj
7522 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 406.261 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 191.108 null ] >>
endobj
7523 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 395.302 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 180.149 null ] >>
endobj
7524 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 384.343 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 169.19 null ] >>
endobj
7525 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 373.384 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 158.231 null ] >>
endobj
7526 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 362.426 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 147.272 null ] >>
endobj
7527 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 351.467 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 136.313 null ] >>
endobj
7528 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 340.508 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 125.354 null ] >>
endobj
7529 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 325.392 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 96.463 null ] >>
endobj
7530 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 314.433 null ] >>
-endobj
-7531 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 7482 0 R /XYZ 81.145 85.504 null ] >>
endobj
-7532 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 210.144 null ] >>
+7481 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7533 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 199.185 null ] >>
+<< /Filter /FlateDecode /Length 2592 >>
+stream
+xn$7Wl( zvMhƣIaFI\~/=y}}zӠד/E\c\kqy7΍z*=„QOs s &2/vvRp?ž~7SA`Wmqk#}! MxUp Oy [&\!{xN0o-D
+#`&( [Z/HHӉ |v
+s{4 U㢽ݑ8e8߇88oPoދ-ڏ[/C" جshERNEMo:kQnR|Sʹ6͙
+.sxBB ^!@2hJ2 ,{wm.ֳTK۝bIW#$l+q/[c»@d?
+Tf _^]Nw[f
+cB4[xSO.xGYTYȊ =m"5l78L*g@i$/86T 
+[)r`^~VSK2ȠOJ,zUΕbvNt1lxk
+`WŌiF\H-NDB?<>b*Fs\RnG
+c˞1mS.Ҁ߯W?`wxȑ1RV{5<Y0ho*w NFپ=c'hڭV:V Q\@V2V-|Z/X {cvBYp&Oyy8s+Woto[@2yʽ|v[m(aƇ00ʐÕLӵd& +;|ـ26ql2M{L]MhW 0ѐs2V2>v&+{eqN2jz-ť
+Y7
+]v/i*p@ (61/IeަXݢͩ(c4%4ljGE%\ Ȧۼg`^u< ><_f4cS!޾\ճ*6n)|f|:[]&>o$]}vtumR`b9|=KZ6l`>)
+oߘTjt> YKicR@ۊ!-NOɱK-c8 !j2VK՞ϧޑe2fh \ =B9'@)t9U$ O^Sݬ2"bjϦH{H먄DM:8C3iYC$g@,40DDyG40; 00cx~<"\ _3Wo^^h
+endstream
+endobj
+7532 0 obj
+<< /Type /Page /Contents 7533 0 R /Resources 7531 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7534 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 7532 0 R /XYZ 78.37 808.885 null ] >>
endobj
7535 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 730.971 null ] >>
endobj
7536 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 720.012 null ] >>
endobj
7537 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 709.053 null ] >>
endobj
7538 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 698.095 null ] >>
endobj
7539 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 687.136 null ] >>
endobj
7540 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 676.177 null ] >>
endobj
7541 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 665.218 null ] >>
endobj
7542 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 634.334 null ] >>
endobj
7543 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 623.375 null ] >>
endobj
7544 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-7487 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F80 749 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7532 0 R /XYZ 81.145 612.416 null ] >>
endobj
-7547 0 obj
-<< /Filter /FlateDecode /Length 1541 >>
-stream
-xYKo6W,nS-
-a+ +Wm8F{]l߼șH;f8͵-N|36333lq1;[C!D,/72suY-KgUY4dJW߃>#f8볚h
-!P_v3 ja`Fq,dB|[uX}W7ohl|͏ju~W2{¯_*
-Є)3cRZ7W9ui9%F÷ٶ\v1[xexk1cz.g3L.ttMsF. H*7vЉQ)A#)_@ v;g4g$"E-8OS,& a<~l>}g(E4! 0EGrncШݛ@Kƚo4g<HwUUM'˲)> NCZ_k022qc?Fus u$qcp ;Fu3E42֢nD:4Zu[% x:-9ђbLONAa0264PMR&c9$o('XʏĚD|ԉ=*TK@rNѭFђP =J_?H񱃼tϷ՜^Ta2TJ:0Akq&ᖎjP\*AEKX3+(.B 1'hn5sTaz&\>p}"Au E@D5ú) J{l<?z(1]Ƅ3DXAww\ Hs(В T e(:<Pk|KcbQB0 v4~}!a<H%h2s>uĨaq;R {(,1NFq;R ۂn܎T6֭&u׭𒡸v{PX3 lGq* \
-`Plv8}HCT|~V4zidr; PIͶjd]/\g76 2oʪ.IH* |t
-؜z{]Էet":>W{fyyYέȈwBdnf7ݠ{-ݛ
-W_"C:Aaܺ;{.^D/?.ߋ4Dn"tMV}>>Ghs!j9&)y e;.eMU]_HgNʱЧ0t+M򞴅k-BY7 9ڳ!=U'۝C]>-$*|H L\[m兟,6uJ<w>=Cn=N2~4!,c0nMi;g*%.oS̻
-endstream
+7545 0 obj
+<< /D [ 7532 0 R /XYZ 81.145 601.457 null ] >>
endobj
7546 0 obj
-<< /Type /Page /Contents 7547 0 R /Resources 7545 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7532 0 R /XYZ 81.145 590.498 null ] >>
+endobj
+7547 0 obj
+<< /D [ 7532 0 R /XYZ 81.145 579.539 null ] >>
endobj
7548 0 obj
-<< /D [ 7546 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 568.58 null ] >>
endobj
7549 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 557.621 null ] >>
endobj
7550 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 524.745 null ] >>
endobj
7551 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 513.786 null ] >>
endobj
7552 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 502.827 null ] >>
endobj
7553 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 491.868 null ] >>
endobj
7554 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 480.909 null ] >>
endobj
7555 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 469.95 null ] >>
endobj
7556 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 458.991 null ] >>
endobj
7557 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 301.582 null ] >>
endobj
7558 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 290.623 null ] >>
endobj
7559 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 211.918 null ] >>
endobj
7560 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 200.959 null ] >>
endobj
7561 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 190 null ] >>
endobj
7562 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 179.041 null ] >>
endobj
7563 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 168.082 null ] >>
endobj
7564 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 157.123 null ] >>
endobj
7565 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 146.164 null ] >>
endobj
7566 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 135.205 null ] >>
endobj
7567 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 124.247 null ] >>
endobj
7568 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 113.288 null ] >>
endobj
7569 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 102.329 null ] >>
endobj
7570 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 91.37 null ] >>
endobj
7571 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 508.807 null ] >>
-endobj
-7572 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 7532 0 R /XYZ 81.145 80.411 null ] >>
endobj
-7573 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 486.889 null ] >>
+7531 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7574 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 475.93 null ] >>
+<< /Filter /FlateDecode /Length 2054 >>
+stream
+x[r
+rʲMwm< pL@Kȣ~tOϯLwχ'ɜOd5ܞkqzGε|o-߯ڜ,sZ @ҁ+i P%p>{t~@+Y3]Ik%hQJU CEՆz$h %*B?,/#A#&aC($~ <f(A"CATVM #3G:
+X&(G9Q*{$P'GE14'#i0b%>F
+-D+ΎDg3J(y $.wNgذ2M1̲Vyk`\?|DՒ9ahNY!s${9/=j.3CuHa6ѕY?'AjK{:QZ4vu%M>/i]v)sh҅tükFkLiXW.$JZQYeĜij!#ȗP}xΠ$s|J3đj{֭T$\D*F瘓1TtN %GqH(uj:81e(KDC
+=Q'LDu[j`HYΘhx&/#/I;Jw!^!D`S%SL*W{-@0"ߊ;$#b`v-[uQL3 i$JԶdM1)Q':f {L}R˥PM&L"u&G\Arki3R^UxŤ !j%UyrxգQ1mqdYCE:
+Hr$,IJ'X҄йʴEmb S={8Z.H_АKNZ?s盫N9ڤ(,`T#,>=7C0[OߨC)2mb[UR"펂sO+p:
+v~?K />Wec!Xc:YTYޜj5nHTfwR+{ºcI >3tH <ןk?tGm
+:ߵG˙fd$EZϥmK;e@`5H):7Rt@{$!4l$̎(.=1Fa5HnfG]>Ǯ3J@ U[##ycPΔ}]oͳPk\SEW&9ê*\2*#Uf\'p}]-iɗ<6R m{-H؟DL74P/R<S;X`š(C:  DY!Es Ey^Wu@$/}!<@35j/QMxYf-b3.O #la'Z8Tƹ\գΤ .ry)K?.r^wgz6֊>cjH%>x57_r,g%\;|~j4 "G5gv5ar퍱ADa֯iph&WvH_JԟʪYUuNκ&
+XeL::Mu7P)ۚ5mlkl۲m^ \Gak2̸`۝Tb1qս}uQ9ymRl-a@>wIG ? mp?aٲePF=x6T*̡>'**=绔[v.9!T&
+endstream
+endobj
+7573 0 obj
+<< /Type /Page /Contents 7574 0 R /Resources 7572 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7575 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 7573 0 R /XYZ 78.37 808.885 null ] >>
endobj
7576 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 768.829 null ] >>
endobj
7577 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 757.87 null ] >>
endobj
7578 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 427.113 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 746.912 null ] >>
endobj
7579 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 416.154 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 735.953 null ] >>
endobj
7580 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 707.835 null ] >>
endobj
7581 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 696.876 null ] >>
endobj
7582 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 685.917 null ] >>
endobj
7583 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 674.958 null ] >>
endobj
7584 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 663.999 null ] >>
endobj
7585 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 653.04 null ] >>
endobj
7586 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 642.081 null ] >>
endobj
7587 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 328.483 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 631.122 null ] >>
endobj
7588 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 317.524 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 620.164 null ] >>
endobj
7589 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 609.205 null ] >>
endobj
7590 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 598.246 null ] >>
endobj
7591 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 587.287 null ] >>
endobj
7592 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 273.688 null ] >>
-endobj
-97 0 obj
-<< /D [ 7546 0 R /XYZ 79.37 248.234 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 576.328 null ] >>
endobj
7593 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 139.404 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 565.369 null ] >>
endobj
7594 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 128.445 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 554.41 null ] >>
endobj
7595 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 85.606 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 543.451 null ] >>
endobj
-7545 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7598 0 obj
-<< /Filter /FlateDecode /Length 2470 >>
-stream
-xڵZ[o~ϯ0˻$eq!=)Ŗueɕ\΢"E:clR~pf4x0ó_/PG^|ٌ4!n&%IbIdv#1a>Lg Jd &>0ʮ66+몬M=T 7˗lٴuv0S/#&->G,E38q 塕2͖yW,Z./:% " $p1a>:\;$F
-v|"A,M|1\ X"*% EwpvY>:1Nsȑax3m}m3--SӠ-zhogj[&1Q(EkW<>芘=ȹ;n7L6G1;ѥ3) E~ߙ}sXc) ۱6?9L#6P&רgnmQ
-caR{v%(Ժ-@|j
-cC%Y-Bg`[,3! 2= Q(՞+<nze
-p0Ia^ V$f4Rw^5j A}!Rv\%;~.Ty~]_l;_:]k0eXh7ݧ}xؓ8c}ERE_bđŘRrUyu0:.zL.ԷOR$(uu"]<M.g) '」GS:qr-
-= )C9۶M_,b֧ydƑGK`JfIЧt(ԩ>CJ )TPUy=4NTs":˨;7ȁi.e~_'F*rU扊ީ!ɖ:˨*n5.>Q@bYSMau]]D$
-HOܶŲTO.D4kS`)®JcSH`> 8DmI3dvo!/{bnKQ#eƪa"8ޞ
-M6:N"0#qڼԟthźR:k+(ú9d,ӽnv*<B!gl=RҖnjM} _2Ċq.XQ}{6*#Uo9BP~$LXmu9Is~$1M@oϢ/oWŹPog9 y& ><G`r=@@Z 7,/ _y9TV)jg >[~)m,_u<+mWCHc$a #U_B_ԯ e4X $G_>=tީbΩA>zWwT߅&L\0$A `DJ1%A#98b}MrP"3Qjv{?MA#
-endstream
+7596 0 obj
+<< /D [ 7573 0 R /XYZ 81.145 532.492 null ] >>
endobj
7597 0 obj
-<< /Type /Page /Contents 7598 0 R /Resources 7596 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7573 0 R /XYZ 81.145 504.374 null ] >>
+endobj
+7598 0 obj
+<< /D [ 7573 0 R /XYZ 81.145 493.416 null ] >>
endobj
7599 0 obj
-<< /D [ 7597 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 465.298 null ] >>
endobj
7600 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 454.339 null ] >>
endobj
7601 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 443.38 null ] >>
endobj
7602 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 432.421 null ] >>
endobj
7603 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 421.462 null ] >>
endobj
7604 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 410.503 null ] >>
endobj
7605 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 399.544 null ] >>
endobj
7606 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 388.585 null ] >>
endobj
7607 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 377.626 null ] >>
endobj
7608 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 366.668 null ] >>
endobj
7609 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 355.709 null ] >>
endobj
7610 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 344.75 null ] >>
endobj
7611 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 333.791 null ] >>
endobj
7612 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 322.832 null ] >>
endobj
7613 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 311.873 null ] >>
endobj
7614 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 300.914 null ] >>
endobj
7615 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 289.955 null ] >>
endobj
7616 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 278.996 null ] >>
endobj
7617 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 268.037 null ] >>
endobj
7618 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 257.078 null ] >>
endobj
7619 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 218.553 null ] >>
endobj
7620 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 7573 0 R /XYZ 81.145 207.594 null ] >>
endobj
-7621 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 478.919 null ] >>
+97 0 obj
+<< /D [ 7573 0 R /XYZ 79.37 161.242 null ] >>
endobj
-7622 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 467.96 null ] >>
+7572 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F25 609 0 R /F19 182 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7623 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 457.001 null ] >>
+<< /Filter /FlateDecode /Length 2240 >>
+stream
+x[r6 )%x2;sn^SZO"!Iol 'y$_a7ͩ+Oɓ:y+'gV^<zhĿϿ~Yw"XRR ,GBҨў߫R:7S@OzD }-ِ辰mtO_-:U47eN VuA;9BYXFU+~?Y_qQ]W_Ik*vθ!wշ"|6GEyCW4+/c e#cCniN_RUėb!1s`k/6NX
+UJ@IIlha$Hwa$ G~@xǪ_Ƒ@==uLd "8K׏$aҽps(v}6Xk^_%ފkdA:F:
+d/)Ă!o:z-l~WÙUP _iŐFщG#= ,p*GiQf[inI][=R^Y#ݭd.]~riЈ P/3@I2RZ˪ȺEuTHp
+;ٓGjbpnYա3($9H94tx^3QD8y"J#n|:BHVǑ2CƲ9'@!G{5ePa߽*"=]D
+fz^
+zk6zkc'%5&_l4oc:x`K%=NA4*f¬{U7۾$NETnwSKMHv2ᤄL#W.`'-st$wu=>(iQ<^RNQk]yt(1g@BPKaߛ4ƀ1j$8fjnxQ
++QqT=aʦ~kQ"=S5{é',3#MnNտ_TVQ)BRdNrL[$wPE֭9Z5R\[fjh[̸K,&('U
+Vug.ϨI;gFj[jꑎ aBME'uR dH֍D[*kcx6sЇE
+ E鵸=(Xw@qCO )x)2K^F>=[+\XY,rݺ.;
+n||O醵Ad;~, +?(FR8=Â qׁŀoRON7'P!g5G~z-Kv-'e7~4rF.
+C (VS?C,)nWAC>7?(Զ:fH;'9gb@$A%4Hɣq ZOմ%{[;
+ZuS#\e@U!s{RNm\u
+endstream
+endobj
+7622 0 obj
+<< /Type /Page /Contents 7623 0 R /Resources 7621 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7624 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 7622 0 R /XYZ 78.37 808.885 null ] >>
endobj
7625 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 768.829 null ] >>
endobj
7626 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 727.983 null ] >>
endobj
7627 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 717.024 null ] >>
endobj
7628 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 706.065 null ] >>
endobj
7629 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 695.106 null ] >>
endobj
7630 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 684.147 null ] >>
endobj
7631 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 673.188 null ] >>
endobj
7632 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 662.229 null ] >>
endobj
7633 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 651.27 null ] >>
endobj
7634 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 640.311 null ] >>
endobj
7635 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 609.427 null ] >>
endobj
7636 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 598.468 null ] >>
endobj
7637 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 587.509 null ] >>
endobj
7638 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-7596 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7622 0 R /XYZ 81.145 576.55 null ] >>
endobj
-7641 0 obj
-<< /Filter /FlateDecode /Length 1810 >>
-stream
-xڵZKo8W6,6S=l AvĨmR7 Ejh\7XyGN'tvDUWş﯍H,|r`D331v3w◟oZ%NkaC00hE~nd+J^'[Y"џ<_'JqUrKZ;k'i /ϽBmrv !Y26))CU/k.>0+t!/¹8 dndfn
-!OvnWF勣III$nR "4i!d,PL<Ղ Z&UnuM ˬYY9=ٷt=,DةrNT7
-TYM8@h25ώZ}J3C:C@3{8c`dT c>*kO az.0Bo`,Q>:
-^ ՞.iB
-ZW.bat$N P!/+BO#4^61A/IU[ht}=f_iMS54nj&]
-5uiX(Wa>@æ>[.*[Evǰ" TZb(AʀgՌy>VnGM' KB^Mmd(*CA ^_Jbθe tۯkr ?F$
-Q?5Q1(@ ?.hV?s|&\㬝Z_ ~R_u9 \QARɢc|Nz 9ItL Y:7ѱ2mvHvE^f2Yy!1a
-aM&&By&h)GFכ̺~*:J
-endstream
+7639 0 obj
+<< /D [ 7622 0 R /XYZ 81.145 565.591 null ] >>
endobj
7640 0 obj
-<< /Type /Page /Contents 7641 0 R /Resources 7639 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7622 0 R /XYZ 81.145 554.633 null ] >>
+endobj
+7641 0 obj
+<< /D [ 7622 0 R /XYZ 81.145 543.674 null ] >>
endobj
7642 0 obj
-<< /D [ 7640 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 532.715 null ] >>
endobj
7643 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 521.756 null ] >>
endobj
7644 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 510.797 null ] >>
endobj
7645 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 499.838 null ] >>
endobj
7646 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 488.879 null ] >>
endobj
7647 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 477.92 null ] >>
endobj
7648 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 466.961 null ] >>
endobj
7649 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 456.002 null ] >>
endobj
7650 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 445.044 null ] >>
endobj
7651 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 434.085 null ] >>
endobj
7652 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 423.126 null ] >>
endobj
7653 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 362.354 null ] >>
endobj
7654 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 351.395 null ] >>
endobj
7655 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 310.548 null ] >>
endobj
7656 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 299.589 null ] >>
endobj
7657 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 288.63 null ] >>
endobj
7658 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 277.671 null ] >>
endobj
7659 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 266.712 null ] >>
endobj
7660 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 255.753 null ] >>
endobj
7661 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 244.794 null ] >>
endobj
7662 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 233.836 null ] >>
endobj
7663 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 222.877 null ] >>
endobj
7664 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 193.985 null ] >>
endobj
7665 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 183.026 null ] >>
endobj
7666 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 172.067 null ] >>
endobj
7667 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 161.108 null ] >>
endobj
7668 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 150.149 null ] >>
endobj
7669 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 139.19 null ] >>
endobj
7670 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 7622 0 R /XYZ 81.145 128.232 null ] >>
endobj
-7671 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 408.184 null ] >>
+101 0 obj
+<< /D [ 7622 0 R /XYZ 79.37 116.73 null ] >>
endobj
-7672 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 397.225 null ] >>
+7621 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7673 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 386.266 null ] >>
+<< /Filter /FlateDecode /Length 2777 >>
+stream
+x\KW&V39E4AQwX]]Z~/Ϳ Pj|'A78be҈_s}߿5H XZpQ__Iw}8-ݑ+A}[xTòۗPǜ-\ZpS~SI6|h0txMO5>} [zBg"uw|OpS
+%cEmQhad(n Z,{dS;)VW<daݪL{Mfj#Bp],u.0N]UZ$;z%R\Y\9ےK; ]$**:e[Hʱ[4m43NfI
+Ɍ`տUM%hKB f4u][!x"]p%z³mjTLJ
+n/ ++Zc@#5<v&Uigpןv)*UۙQЖ˕dS,5.Jy\߁ 7*_HU+wz 6Lե]
+8N"-t$%|<JAb\-(;Sܔِ]lI^{_!`+eQ%iqIRGbqN"ef?%nlIk L֤ 뫼C$)nM(bg5 [&$gMqg3x< H}*
+(Yr9eZܟIAjX?g?!{v9^%`KLe_Cm;>Kn㪍,;μmHن{mPHO4 Tknoj=t-S\\dKά$JvAVva;?,r
+Z+19.Fs0(G*G B*l󿾀]pdfHxKZ耆50seS5K/ׄm@\Y݂0pcVnRDy*4oQd|ω#LQ,FuB_4JNNr 6~0Oz148viCh~eݐӆ"tHUe/Tc X-Vd‹3MTrWRQ/*ybQjԅj lMg^Y|@ m(-0QqQ
+endstream
+endobj
+7672 0 obj
+<< /Type /Page /Contents 7673 0 R /Resources 7671 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7260 0 R >>
endobj
7674 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 7672 0 R /XYZ 78.37 808.885 null ] >>
endobj
7675 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 684.562 null ] >>
endobj
7676 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 673.603 null ] >>
endobj
7677 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 662.645 null ] >>
endobj
7678 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 651.686 null ] >>
endobj
7679 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 640.727 null ] >>
endobj
7680 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 629.768 null ] >>
endobj
7681 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 618.809 null ] >>
endobj
7682 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 607.85 null ] >>
endobj
7683 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 596.891 null ] >>
endobj
7684 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 585.932 null ] >>
endobj
7685 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 347.825 null ] >>
endobj
7686 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 336.866 null ] >>
endobj
7687 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 325.907 null ] >>
endobj
7688 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 314.948 null ] >>
endobj
7689 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 303.989 null ] >>
endobj
7690 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 293.031 null ] >>
endobj
7691 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 282.072 null ] >>
endobj
7692 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 271.113 null ] >>
endobj
7693 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 260.154 null ] >>
endobj
7694 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 249.195 null ] >>
endobj
7695 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 238.236 null ] >>
endobj
7696 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-7639 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F23 660 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7672 0 R /XYZ 81.145 227.277 null ] >>
endobj
-7699 0 obj
-<< /Filter /FlateDecode /Length 1799 >>
-stream
-xڵY[o6~ϯbXh8_l-3뾤OMa(cK,7CQE;x$? y>}cKߏ?\`Lg೛EtfVhFfL[/W,qZ ;3A S2ER\eL\t[TEQ׋^ܭuW18&wXu
-<ZgN1"JxBch{hʈc {.exl,ry=q/N|LJV Z5zh b.epޞe3N;i9%F]
-goQ4p2Kɳ*lu"Zp8E%N((S ɉ^:{8⌊,0hE{O;BY u&O,ΦϞ|{\.Th:m bE{OBO!{\ M>xNd<X<Afs~U+lifq=Ee3 ۶i )/
-u$XNQѲDxF8C] pR'r ٰY<-]桼Fee})XG6&;?!/(wmӺ1~Sf@kyt0T٪Y×ɞ
-߇j+X5ڼږaqm7~hֻM ?,NS//5^:˼
-],UUZ'޴poqH*9sK&ht" E ڇ
-WC{'YCÏHS({'hscDјMpz:$7e2"4jO6Lx5qhuᝠ>}q8ug^ǴGRf /PRͬgQ4vb~˧6z}o0o^ ~Ip_|Aj }'p|Ý&ŨE z|.WuESr$VWh!+pGQzp588E$
-endstream
+7697 0 obj
+<< /D [ 7672 0 R /XYZ 81.145 216.318 null ] >>
endobj
7698 0 obj
-<< /Type /Page /Contents 7699 0 R /Resources 7697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7672 0 R /XYZ 81.145 205.359 null ] >>
+endobj
+7699 0 obj
+<< /D [ 7672 0 R /XYZ 81.145 194.4 null ] >>
endobj
7700 0 obj
-<< /D [ 7698 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 183.442 null ] >>
endobj
7701 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 154.55 null ] >>
endobj
7702 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 143.591 null ] >>
endobj
7703 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 742.541 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 132.632 null ] >>
endobj
7704 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 731.582 null ] >>
+<< /D [ 7672 0 R /XYZ 81.145 121.673 null ] >>
endobj
-7705 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 720.623 null ] >>
-endobj
-7706 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 709.664 null ] >>
+7671 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F28 611 0 R /F84 761 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7707 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 698.705 null ] >>
+<< /Filter /FlateDecode /Length 2386 >>
+stream
+x\Ko7W3|Ȳ[kR~~C|8_>8b$H~x?;(CPdJvx#QRjIc+ptl;~U!~{zEM_?selCJFl;FGH46nG+-;v@kʶc]=IS[l۞jtg¡u`ֽ;ؗGz<s#l1$s%7;:ƌå$J1t͝\T_v@ҁgs[&fIējW
+bv.qy?Rܵh@o ՏJW=}:F4WOţB悄SY SK"(Hhί_T6RD,2.02͜!BtEsސ/#~ O+-ϱ: 8TD#Y6? x a<\>y{=M'Dkk$>D̴u;PWxX
+WIcZ.ʏcgTLZ"
+!7ΎU,@D G2I?:g $NSIN !
+\!a\I[ܐ\3nh>%d >aoԊ
+zz()ʲGuH"ԡ k)Q6lçy<ۜz\sGZiI7\ %%uj~.T5U."8"TT?)W_Zkv)ќ/sD9$ uu
+-s3:}:mg%ɖ^Y"9C,ǭϡ6hSt)5?:XQȆeCқD+e}#uؼjlSq#C^ou~b0aw8W# #/_DBygF E!MV\mqo"dS;U6=kE߯ xC!3fz* ]zgw6fʯXs
+`f;ZU~eLƍA_L'lFZNonk4SU(ƆdmC*\vFX ֫Bn_
+bU!}Ԫ1Fj?UڷP!:=nٽ:M8CS,=,v•LSfPCa
+B))a90bL [,U6 9i ՜0L婻)3F U_ dJPIV\ȟ6uY{mdcc֛A)W:P͆=E(p &D葀ZʮO .x㾔  ?M5{޻'Lź[J3o sqVj&gK:u10JNJt4D#TC|,MfZ뇠P"É?pci !y*3-R`\BMYDMf^'H;&:gDmO9SfS~R-qohX"ogŽ*,[LEe9BGҬM$H{iq\ޒ]FuQ T-ňŢCZ_``1TMY*J:߆[ӉӉ^҉oЉ|N%IK:ZO İ([W 8j(Iebtx=ȏ#al+fvLzd{`ʢfުˬ
+j iiBJlZksxbKu;㥱gk^I3좏73DJ6›26♸WGT IӧKr@ƉC7[0Đ8F(>q?K& Joyۛ&G~q
+]/UY=j_8Ͽc<E%bˬ8#ᐹ`u ~!rOq}y
+endstream
+endobj
+7706 0 obj
+<< /Type /Page /Contents 7707 0 R /Resources 7705 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
7708 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 687.746 null ] >>
+<< /D [ 7706 0 R /XYZ 78.37 808.885 null ] >>
endobj
7709 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 676.787 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 743.369 null ] >>
endobj
7710 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 665.829 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 732.41 null ] >>
endobj
7711 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 654.87 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 721.451 null ] >>
endobj
7712 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 643.911 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 681.489 null ] >>
endobj
7713 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 632.952 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 670.53 null ] >>
endobj
7714 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 621.993 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 659.571 null ] >>
endobj
7715 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 611.034 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 648.612 null ] >>
endobj
7716 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 600.075 null ] >>
-endobj
-101 0 obj
-<< /D [ 7698 0 R /XYZ 79.37 576.445 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 637.653 null ] >>
endobj
7717 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 482.129 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 626.695 null ] >>
endobj
7718 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 443.107 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 615.736 null ] >>
endobj
7719 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 432.148 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 604.777 null ] >>
endobj
7720 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 421.189 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 593.818 null ] >>
endobj
7721 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 410.23 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 553.856 null ] >>
endobj
7722 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 399.271 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 542.897 null ] >>
endobj
7723 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 388.312 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 531.938 null ] >>
endobj
7724 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 377.354 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 520.979 null ] >>
endobj
7725 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 366.395 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 510.02 null ] >>
endobj
7726 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 355.436 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 499.061 null ] >>
endobj
7727 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 326.68 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 488.102 null ] >>
endobj
7728 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 315.722 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 477.144 null ] >>
endobj
7729 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 304.763 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 466.185 null ] >>
endobj
7730 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 293.804 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 455.226 null ] >>
endobj
7731 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 282.845 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 444.267 null ] >>
endobj
7732 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 271.886 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 404.305 null ] >>
endobj
7733 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 260.927 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 393.346 null ] >>
endobj
7734 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 249.968 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 382.387 null ] >>
endobj
7735 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 239.009 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 371.428 null ] >>
endobj
7736 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 228.05 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 360.469 null ] >>
endobj
7737 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 217.091 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 349.51 null ] >>
endobj
7738 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 206.132 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 338.551 null ] >>
endobj
7739 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 195.174 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 327.592 null ] >>
endobj
7740 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 184.215 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 316.634 null ] >>
endobj
7741 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 173.256 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 305.675 null ] >>
endobj
7742 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 162.297 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 294.716 null ] >>
endobj
7743 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 151.338 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 283.757 null ] >>
endobj
7744 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 140.379 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 272.798 null ] >>
endobj
7745 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 129.42 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 261.839 null ] >>
endobj
-7697 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7748 0 obj
-<< /Filter /FlateDecode /Length 2687 >>
-stream
-xڭZo߿oU W&p9@eG{䍃7,*-}dÙ!7ä"]!히7뇟>|tVI/@˅/$Bq|߇k}z!1QCto"7ǛHRR]~Yeps gͱ.ݝeD!(G+߶SJ#CujeXa([trl{+J3/oLuU{k>䕓R Ґ]vhYxQN1#1p~tNQ8z-h}+/#qC-"Yoh~̛4i.oװ)MnIfV~9S%Y ƒM:Tqʒts ӫs1Y}ko~`[Y +(N@X/K5"^Fy,d(nnuw
-f.Br"Z($Dlgֈçתڛ[{[_eǶZP6b> ER}^h1Oh&8bX.
-Qbk]y,cTev<G~9=?mvg-2g ryHJӄб1y'$CӤqF;"[JDȈlY횼]`d&@1`Q_w<8Nu.
-1
-Eڡ(eyQ9"
-\~,|= #M|͙XJVN3yBG{6e9l7ny4-Pf'40S@A!K#Fc, NVϫm 4D5w++L(Ae
--
-w sT7e\{(C]g._6)oǦ2%P|v(cM9(I)(CREY֐8Fz:zPþ~|e^,8A+#F+sOt.U9Ġb}@!,=wFd7>ֹ}![UM5sF2~ foCs~ T^w,!tZ!1"o,R .Y,@*.xuV8̈1N `}:`kޛ/{6E z4n!ᗔ=C C
-ZLqJ.wr$ ܳWvԼy%Шj֔Qf_*϶S2;6I\m("%b
-{^6BOMuL6EiH0MG>_r^m<A>ØG9LI(
-gxOwoyѐh+M A$ ?Z¥2!3~TʽImN`'2oe!1}B
-1dWF9ɐA~ %F 1g\R%
-endstream
+7746 0 obj
+<< /D [ 7706 0 R /XYZ 81.145 250.88 null ] >>
endobj
7747 0 obj
-<< /Type /Page /Contents 7748 0 R /Resources 7746 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7706 0 R /XYZ 81.145 239.921 null ] >>
+endobj
+7748 0 obj
+<< /D [ 7706 0 R /XYZ 81.145 228.962 null ] >>
endobj
7749 0 obj
-<< /D [ 7747 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 218.003 null ] >>
endobj
7750 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 207.045 null ] >>
endobj
7751 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 196.086 null ] >>
endobj
7752 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 717.026 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 185.127 null ] >>
endobj
7753 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 706.067 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 133.429 null ] >>
endobj
7754 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 695.108 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 122.47 null ] >>
endobj
7755 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 684.149 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 111.511 null ] >>
endobj
7756 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 673.19 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 100.552 null ] >>
endobj
7757 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 662.231 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 89.593 null ] >>
endobj
7758 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 651.273 null ] >>
-endobj
-7759 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 7706 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7760 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 629.355 null ] >>
+7705 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F28 611 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7761 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 600.463 null ] >>
+7763 0 obj
+<< /Filter /FlateDecode /Length 2502 >>
+stream
+x\r6)
+Pw nh 0SZiv]<EDx*c]
+pWg/e*ݥ+<6bKn`r2p7*ykJd;5 .F;9n¨oLo4䄎5vk@voÔ1^3(~#\GtLIRSӒfհ}J?Wf2[t^d,
+ e$:Nl>`YP\B\c6UB
+#ZGq -Xᥖ8IRy5Xf%A&ym싚ںFxg4AXngC(70P>itfi^6W:dx5Πmtx]Q
+z<0 '&;(K[2z!O:aGg#AM.st+)6]Uz2w`FPq17;GEv9MUt2V M CԂZd@q-~3.;B d޺r
+ P @q ¡1Ti}87p4>jj7֮42}.CZW8OeTwU豰WKz YC#h  E l$}x,=9JbD-My#h2^>gW^;aI9Sy5HZ
+
+} mA۲=O+o;i{O;uΞ-L7yu]jy<3ŕZ2EN$k%::oڂTC/̠lD }+`
+f[!-Q@<f֟9AJ<Y7/ qKN N+BP’j%@$ EX(%텲Btp+*e\ O==Vϴ!*AmMFk0;4nv8V;@aTl
+endstream
endobj
7762 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 589.504 null ] >>
+<< /Type /Page /Contents 7763 0 R /Resources 7761 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R /Annots 7808 0 R >>
endobj
-7763 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 578.545 null ] >>
+7808 0 obj
+[ 7760 0 R ]
+endobj
+7760 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 228.717 666.476 239.144 678.717 ]/A << /S /GoTo /D (Hfootnote.14) >> >>
endobj
7764 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 7762 0 R /XYZ 78.37 808.885 null ] >>
endobj
7765 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 742.926 null ] >>
endobj
7766 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 731.968 null ] >>
endobj
7767 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 534.71 null ] >>
-endobj
-105 0 obj
-<< /D [ 7747 0 R /XYZ 79.37 523.203 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 721.009 null ] >>
endobj
7768 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 443.209 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 710.05 null ] >>
endobj
7769 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 432.25 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 627.36 null ] >>
endobj
7770 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 367.493 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 616.401 null ] >>
endobj
7771 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 356.534 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 605.442 null ] >>
endobj
7772 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 345.575 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 594.483 null ] >>
endobj
7773 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 334.616 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 583.524 null ] >>
endobj
7774 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 323.657 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 572.565 null ] >>
endobj
7775 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 312.698 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 561.606 null ] >>
endobj
7776 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 301.739 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 550.648 null ] >>
endobj
7777 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 290.78 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 539.689 null ] >>
endobj
7778 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 279.822 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 528.73 null ] >>
endobj
7779 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 268.863 null ] >>
-endobj
-7746 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R /F26 662 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7762 0 R /XYZ 81.145 517.771 null ] >>
endobj
-7782 0 obj
-<< /Filter /FlateDecode /Length 2282 >>
-stream
-xZ[o6~_]hX/y
-/فNDt:cIgIdb
-UwQnA*ۻ_m?J]Q>jP}7JיZCc[dAf-K<Lc~&o*1»{=;!<\/t c[(O[qd4at I0ZjM\>}N%ؘ Cbp'y)͡| +zs{(m]k5RgCUo}qo>on2TϩcKmahlhb&ۙ)vӴaE.)uvSWOx}h{oӶj]-EJ!擠_6<FϪTHP 6H@Sm~Zgw6<kߓDaA+&xH` qTIQ 4K~0$A=Zmyc\$UPҤy>6HѐD N ctb4
-4 hkz4Td1 hĆ&<&5¡
-I˴\P\&).
-.Q!{
-aΨL=^%:\0)"ȹQh uS5ZԘbg6(a.]-کyi?dmY[k2;fmWV͙D
-LKr"LK3Q'}U(qqQgz<t>k>.sنk{^г!w]+9rΑGo!k}fQBfta? da(EZ B^)Pb=8p7oݥk;O^>z6s}aNyL`>bX# Pb]m]䏽)>м/JTkJtdAVnmΔ()$'*Eyi!O46Uv?YY9w#
-YN4ET ԅ'C"^R
-Qzv7[ONH P:s˶`LbؐdctrMz b/X41z(VzqZz/bXpsK!괵 MfuP wmKy',)]<S[L2N 0d67q^Vdə@"~ Y9)Ns0(#(3 
-56&J^(\ _ Nj6s<[_/bNj 8^Y"yGo(#_EݦqMEdGA]j0%eYѹۅSd4<k˗U)YG}eI^QJ$ G试Q,F#t2 #@,I'
-,5\dWA#")#{90ϸu6>0'MN _TJ
-:}l! _TJʼ:}l _<ʒ"LAykuXRGtp鞸B%nta_jwחFzݸZc)?)n@h[?ՎZ|:>:V>Qciq  )/I;5);I:''(LӾkτfKi9DJ1tl>[–8gNj_,XFcdwE }
-endstream
+7780 0 obj
+<< /D [ 7762 0 R /XYZ 81.145 501.831 null ] >>
endobj
7781 0 obj
-<< /Type /Page /Contents 7782 0 R /Resources 7780 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7762 0 R /XYZ 81.145 490.872 null ] >>
+endobj
+7782 0 obj
+<< /D [ 7762 0 R /XYZ 81.145 479.913 null ] >>
endobj
7783 0 obj
-<< /D [ 7781 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 468.954 null ] >>
endobj
7784 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 719.129 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 457.995 null ] >>
endobj
7785 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 708.17 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 447.036 null ] >>
endobj
7786 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 697.211 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 404.197 null ] >>
endobj
7787 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 686.252 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 393.238 null ] >>
endobj
7788 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 675.293 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 382.279 null ] >>
endobj
7789 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 664.334 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 371.32 null ] >>
endobj
7790 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 653.375 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 360.361 null ] >>
endobj
7791 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 642.416 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 349.402 null ] >>
endobj
7792 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 631.458 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 338.443 null ] >>
endobj
7793 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 620.499 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 285.641 null ] >>
endobj
7794 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 609.54 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 274.682 null ] >>
endobj
7795 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 598.581 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 263.723 null ] >>
endobj
7796 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 587.622 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 252.765 null ] >>
endobj
7797 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 576.663 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 211.918 null ] >>
endobj
7798 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 565.704 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 200.959 null ] >>
endobj
7799 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 554.745 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 190 null ] >>
endobj
7800 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 526.074 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 179.041 null ] >>
endobj
7801 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 515.115 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 168.082 null ] >>
endobj
7802 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 504.156 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 157.123 null ] >>
endobj
7803 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 493.197 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 146.164 null ] >>
endobj
7804 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 452.571 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 135.205 null ] >>
endobj
7805 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 441.612 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 124.247 null ] >>
endobj
7806 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 430.653 null ] >>
+<< /D [ 7762 0 R /XYZ 81.145 113.288 null ] >>
endobj
7807 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 390.027 null ] >>
+<< /D [ 7762 0 R /XYZ 93.716 83.481 null ] >>
endobj
-7808 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 379.068 null ] >>
+7761 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F16 422 0 R /F84 761 0 R /F80 425 0 R /F55 201 0 R /F83 720 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7809 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 368.109 null ] >>
+7811 0 obj
+<< /Filter /FlateDecode /Length 2634 >>
+stream
+x\r+Lt7^U.WYu]*d2 Eh& %<n4\'Y
+?]?}Yu!B|E]F5JH.y볔FKIRZ/%}˂f o HZ _7F~]Q G~>7~ח4)ȥ{AWđP2˓|oױzKxa=z߮i 8V~y vKA6di@"
+!Jڵ{[PF[f-pHg;Vr㓘gmSC餾2=@ 8 O{|j≡thtؘpx6h96״5GQ
+0+Feb mYJ`LOϙ),oIMş9{te(HW3CcH )za퐴&Ţ1%(1VX;
+DV;+\P~N-IΒ CrOFab*z4J|"M49"yА#CZ+rB{=TP3-[%08tӧ;Xi&0QV֤3iUn$1S
+;Lɷ!ڋD0+aH4c!sL;\[KjemPiO,4Mʂ0'jАUAÀ(4@/eLLVz3Ay4.o\ևͶ푛V.mn>AF9u&7ed2EHyh>jhRԂ !nH ]@vuM
+F˰_ Hж9ss"3VMnz*6#*FTO=-E}BoB? Jz[r*u@{J^jiAZE'ߑv@<o=en3`s]ו3܎5}`K@%QiekT81U)>]8jt\/`Sa\&% o u^Z EwMz
+``)'$ǘ'Rԙ>~LlhQ9ti.4px `T!4CLrwI{h1+Gtrq
+ZHy.it4ĮdN! 5Q.0Eu{zvS?
+)t(vE_-wW>ErW Ԝ<mЪr8++1C:Hy <R
+`$ijZR`)e_,-3k'j>8f&p6*"B
+j!ItwF\v;{@z⚹({0^֊] UPϨʻsFtKYMѨ-U?IX6ٰX5vOd{znH%oS5fi(~Q|_N!ڰRתit,SOk3r k#V֭ݯ#,E=q2l1Ğ2e7P4 N@7 (yq!{s?JW~nUgFe-X㉀5ELiYSv-O5{G%8?Op۩\S٤.}e6 יSٽ*Ίpx@"#ӿN}
+endstream
endobj
7810 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 357.15 null ] >>
-endobj
-7811 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 346.191 null ] >>
+<< /Type /Page /Contents 7811 0 R /Resources 7809 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
7812 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 335.232 null ] >>
+<< /D [ 7810 0 R /XYZ 78.37 808.885 null ] >>
endobj
7813 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 324.273 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 768.829 null ] >>
endobj
7814 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 313.314 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 757.87 null ] >>
endobj
7815 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 302.355 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 746.912 null ] >>
endobj
7816 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 261.729 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 735.953 null ] >>
endobj
7817 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 250.77 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 724.994 null ] >>
endobj
7818 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 239.811 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 714.035 null ] >>
endobj
7819 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 228.852 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 703.076 null ] >>
endobj
7820 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 217.893 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 692.117 null ] >>
endobj
7821 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 206.935 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 681.158 null ] >>
endobj
7822 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 195.976 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 670.199 null ] >>
endobj
7823 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 185.017 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 659.24 null ] >>
endobj
7824 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 174.058 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 648.281 null ] >>
endobj
7825 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 163.099 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 637.322 null ] >>
endobj
7826 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 152.14 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 626.364 null ] >>
endobj
7827 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 615.405 null ] >>
endobj
7828 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 604.446 null ] >>
endobj
7829 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 593.487 null ] >>
endobj
7830 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 565.129 null ] >>
endobj
-7780 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F26 662 0 R /F20 186 0 R /F82 811 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+7831 0 obj
+<< /D [ 7810 0 R /XYZ 81.145 554.17 null ] >>
endobj
-7835 0 obj
-<< /Filter /FlateDecode /Length 1936 >>
-stream
-xZKoFW(fM
-T%*.\YN8v Krٙݙofⶠ7Gn.^1Y&xq`0hf
-7◙v^>zFc0ЊwڊFyZM[[Y"ѿ2!_ku{]_^)@o*\u}y&Eo8;hrzɖY[mGv{jwz'Rn 2YpџuB2C8WR1OTuZ[L[[@<(kk&-)?~!燶?u~S]z8W/n;mmDHlS}hF@ ĥQj flwm}VFs"E"}aPΝku<T׋ x7\<˗na7A1"M>24$LcCe ~.{'K\ПRN3KK@r]|ƾT-Rʑt^\MJ924~ma6=11F ~k9G,aYdo=T\bUa
-ú]7uS۪*Z;Їé8FԽ6ՇnWMaW*7vFSѩ(N1m(:m70  "[*hv],]6.s{.-:`c|' SrAeLX`{28`Ԍhz"= .ʤWǬPJ%EĹכMw4~${Ɠq
-AFp9G*
-N
-XrN9)3`~ԍ0xz+2WϠkJz+2RJEMG RO+ $晄4:T7Ntg *@GwF=n ;MM3'J3Շ "!JTEIQ fHMe&$-GĜ8#>C1pG=_a t !x 8wF*3% zQn«Ef\װ(Y(EqE*cH?Ѧ=MxfuU-'LW?\W?es<p0#m?124+ 6L$\: ܃,82_p(Bb;]őI\H@7N n&I3nQ]Mt5hL51CSpMMF75)bFᚚ [I(\S_F;45
-dhjАR㚚 =s0uѝUcd(',Wfg̐O9(DU*{5П
-kofU8P0K+fh0ǡ֘ 2BYmvNڠ6.C3p(NLAQ~s*~I7sww2-2s
-T?-7(o9X̊wx ?Hw<6O?"f
-Qħ-uض+
-LG%)' N*.8XL
-endstream
+7832 0 obj
+<< /D [ 7810 0 R /XYZ 81.145 543.212 null ] >>
endobj
-7834 0 obj
-<< /Type /Page /Contents 7835 0 R /Resources 7833 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R /Annots 7882 0 R >>
+7833 0 obj
+<< /D [ 7810 0 R /XYZ 81.145 532.253 null ] >>
endobj
-7882 0 obj
-[ 7832 0 R ]
+7834 0 obj
+<< /D [ 7810 0 R /XYZ 81.145 521.294 null ] >>
endobj
-7832 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 228.711 364.603 239.144 376.54 ]/A << /S /GoTo /D (Hfootnote.14) >> >>
+7835 0 obj
+<< /D [ 7810 0 R /XYZ 81.145 510.335 null ] >>
endobj
7836 0 obj
-<< /D [ 7834 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 499.376 null ] >>
endobj
7837 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 400.356 null ] >>
endobj
7838 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 389.397 null ] >>
endobj
7839 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 378.438 null ] >>
endobj
7840 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 367.479 null ] >>
endobj
7841 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 356.52 null ] >>
endobj
7842 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 345.561 null ] >>
endobj
7843 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 317.204 null ] >>
endobj
7844 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 306.245 null ] >>
endobj
7845 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 295.286 null ] >>
endobj
7846 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 284.327 null ] >>
endobj
7847 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 273.368 null ] >>
endobj
7848 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 262.409 null ] >>
endobj
7849 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 251.45 null ] >>
endobj
7850 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 240.491 null ] >>
endobj
7851 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 229.533 null ] >>
endobj
7852 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 218.574 null ] >>
endobj
7853 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 207.615 null ] >>
endobj
7854 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 196.656 null ] >>
endobj
7855 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 185.697 null ] >>
endobj
7856 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 174.738 null ] >>
endobj
7857 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 122.47 null ] >>
endobj
7858 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 111.511 null ] >>
endobj
7859 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 100.552 null ] >>
endobj
7860 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 89.593 null ] >>
endobj
7861 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 430.102 null ] >>
-endobj
-7862 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 7810 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7863 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 408.184 null ] >>
+7809 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F84 761 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7864 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 325.494 null ] >>
+<< /Filter /FlateDecode /Length 2261 >>
+stream
+x[K7 9"Q uVڢQwnuswFHQ~;Sdzd
+ o`5kqx'ε9_鷗_*dz6˜n:M
+HW@ KC
+K'"яWg ;RzCZAoV&uL>1qk
+Q S}
+IA@/K"(ghÒH4]BSX0D^RNT.SNu~S%Y,T=W/Su*a2Od=PYG1i~z!L<tz==J?tŹ}
+s@dkfm9k) 4'e,Re/;eMc0zǧ~*0]zj ݕ(oc&|륈-}zDi<Sq+ 0SFR$T@*i] GSZvdQB!b'o5 A\4
+{;5G? |ӑ(: znU 2zhmPԀy}שxlkE1] J?҅0!4_v$sWhv1DY'5$xsqg*%ōO RG͓ ~g91L TrVفDKg '92Sۇ.NeR9}LR\M]\Wyl"U`%:܍[Gz3LKA"Anc%g\ŒH`5[b~lZp9}CCHZ>3
+ ҕv<*n҅07og˯8rob"s.?m8&; sWxnpʼa<+< Ṭlvp ߝ[~ mm)4.I%ӱ\R8֥lz z44S={=G;?r), Ha%b*@fUnԯ-}[pz[&AINؽl`=z6vX?) @1e4*~f VoL7"?
+ʔj8{cBrDH& ؑ # ۸Pߟ:ޤZejI
+ycVRr)t&J9&NT7fcY2xK,0%ƉeP $:GB hWʝ[oJ
+:=IKO`vI6UeuLJ̶\Trǒʃs*KHh$"6iF}P
+1WJv*4B':yǜ36}4 AlM0 IeV5)wZ6xDJݶs(m:w:c*ey,2Vk|Mư1Dô:ؖY3HW; SR=aު pKW4cd?_}!o!视6RUe
+$
+v<&g
+=R]N[J[&@(], wmU0팂"1ElU(nJ5J UEW=ԦN( KdԮ1#k8KVk vශrJZNzJ߳U '^Z$uQ?a9C5:A)}VJcuP(x$$\:A)}VF}_
+ BL] 
+5Fk!SZ)ďV5
+zPA_jүSꀙIJ.1g1"%z 5Y=Q'[T¡Ǚ҆" /G1l
+endstream
+endobj
+7863 0 obj
+<< /Type /Page /Contents 7864 0 R /Resources 7862 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
7865 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 7863 0 R /XYZ 78.37 808.885 null ] >>
endobj
7866 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 768.829 null ] >>
endobj
7867 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 757.87 null ] >>
endobj
7868 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 746.912 null ] >>
endobj
7869 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 735.953 null ] >>
endobj
7870 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 724.994 null ] >>
endobj
7871 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 670.677 null ] >>
endobj
7872 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 659.718 null ] >>
endobj
7873 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 648.759 null ] >>
endobj
7874 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 637.8 null ] >>
endobj
7875 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 626.841 null ] >>
endobj
7876 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 615.882 null ] >>
endobj
7877 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 604.923 null ] >>
endobj
7878 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 593.964 null ] >>
endobj
7879 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 583.006 null ] >>
endobj
7880 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 572.047 null ] >>
endobj
7881 0 obj
-<< /D [ 7834 0 R /XYZ 94.613 82.511 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 561.088 null ] >>
endobj
-7833 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+7882 0 obj
+<< /D [ 7863 0 R /XYZ 81.145 550.129 null ] >>
endobj
-7885 0 obj
-<< /Filter /FlateDecode /Length 2259 >>
-stream
-xZKo8W62Sc3氳Ԏ(,wzEQEQDw%D~*֛$^-+"a^YGFFIxAZ"IBI$~DEZgi) È"o!oҲzcT#ӧpnoisko_@^'m^7u59rV0gݳSMUyHUbFDsϞcoQb\t‹!DX"*gGcb
-і}>X籼H#Bb$کgb T!DĀԈc
-Z_ʻ=^brwںƤL>/J']RL[uuPMB%kBh1M 2$,LɥCHa@ \ `|ƈAԈhٷWE!2sZΰ42شh"a"
-I&8D2 {>f0e F +槫94\xyїN*'/їNIʳ!)=m?2Gj8Q3=3 _`sF%| w[^ܹȓ
-nHhaܞ^7v΂9(RDTba!1b=KMf9v7ruJ}nvs2kt)Pm4*`Lx#8 g$!q^N J$HG'|ۤlǰD׾x"qjv{{V tW8$n[3@Ϭ,ltsy Oy۸2@{h(Ȩc
-2 /6:xGqpl-ثR'M{@^lz;XryhN;ȃ)Ų 7]ƀAKm"04ȍ}fLNSEitb @V[(;=g];T4nag=* &<*gp1J!D ڼC7őH$ -2cf=#D 3^ljs z`68
-endstream
+7883 0 obj
+<< /D [ 7863 0 R /XYZ 81.145 539.17 null ] >>
endobj
7884 0 obj
-<< /Type /Page /Contents 7885 0 R /Resources 7883 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7863 0 R /XYZ 81.145 528.211 null ] >>
+endobj
+7885 0 obj
+<< /D [ 7863 0 R /XYZ 81.145 517.252 null ] >>
endobj
7886 0 obj
-<< /D [ 7884 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 506.293 null ] >>
+endobj
+105 0 obj
+<< /D [ 7863 0 R /XYZ 79.37 483.633 null ] >>
endobj
7887 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 341.648 null ] >>
endobj
7888 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 330.689 null ] >>
endobj
7889 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 319.73 null ] >>
endobj
7890 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 308.772 null ] >>
endobj
7891 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 297.813 null ] >>
endobj
7892 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 286.854 null ] >>
endobj
7893 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 275.895 null ] >>
endobj
7894 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 264.936 null ] >>
endobj
7895 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 253.977 null ] >>
endobj
7896 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 243.018 null ] >>
endobj
7897 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 232.059 null ] >>
endobj
7898 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 221.1 null ] >>
endobj
7899 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 210.141 null ] >>
endobj
7900 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 554.635 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 199.183 null ] >>
endobj
7901 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 188.224 null ] >>
endobj
7902 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 532.717 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 177.265 null ] >>
endobj
7903 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 521.758 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 166.306 null ] >>
endobj
7904 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 155.347 null ] >>
endobj
7905 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 144.388 null ] >>
endobj
7906 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 133.429 null ] >>
endobj
7907 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 122.47 null ] >>
endobj
7908 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 111.511 null ] >>
endobj
7909 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 100.552 null ] >>
endobj
7910 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 89.593 null ] >>
endobj
7911 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 7863 0 R /XYZ 81.145 78.635 null ] >>
endobj
-7912 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 423.128 null ] >>
-endobj
-7913 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 412.169 null ] >>
+7862 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7914 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 401.21 null ] >>
+<< /Filter /FlateDecode /Length 3367 >>
+stream
+x\Ko9WqE`p9^w JU]N0w%J(//f*|rn^/b5^kq?^9ȹqt޵X3#׷/J*IYs7?VF
+L#OW ^<xmZĴ2~椥esl>{y‰\)KB˴wƕ?!Ta"YNZ(_pͤKs")M*7^zv nCcDJ(y3WtR~V<7y
+9ùPr4U,Rxk QꖳŪ^j+T^s;BSOkxgs$=uҙTDf/N3o,CWBc~DL"Xֆ)0 ;L(=8J3eRq ѥ/0>a5b\Wã' WqӑΡr` A&)IlI̲H"PFo]D$d=k]Q_
+)4  ᓐƂ/f邭Z>9 &CI83C.鲟S<cfAQ`su^$jC7V
+XO%H
+*<]{Aia-tG5;FtCE|]W YjX]A߷<( &@ONO3;ڋ5~;G^lk&*($(Dá)cF3 %)SPf]B$p*_<q
+h], ? u}cc!Ўɖn)M|lw>3R4yܪ3+#Qi{{mZ9:@75@i6ɴ j]rSOSmqAx 4TB; [1גµ-4,C"#gr
+VP F1ĩۄ]
+*ݙoY^ gb~f NJoq:E@iqd(Rx& NLY()Sv .\/5FDo"˔\
+l.^mReoY"~б*Ȭqt kBa}-qܒx>n@Iێ؆~ fBwGPZ_گ"ǰv(3H$VwY`xb;jYb5Y6Nz^ QU4}klݲ)xkU:!* ~?ÕmSuAYsEobG䜙mo;}̐zPofP~S5
+
+endstream
+endobj
+7913 0 obj
+<< /Type /Page /Contents 7914 0 R /Resources 7912 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
7915 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 7913 0 R /XYZ 78.37 808.885 null ] >>
endobj
7916 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 768.829 null ] >>
endobj
7917 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 757.87 null ] >>
endobj
7918 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 746.912 null ] >>
endobj
7919 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 735.953 null ] >>
endobj
7920 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 724.994 null ] >>
endobj
7921 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 714.035 null ] >>
endobj
7922 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 703.076 null ] >>
endobj
7923 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 692.117 null ] >>
endobj
7924 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 681.158 null ] >>
endobj
7925 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 670.199 null ] >>
endobj
7926 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 659.24 null ] >>
endobj
7927 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 648.281 null ] >>
endobj
7928 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 637.322 null ] >>
endobj
7929 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 626.364 null ] >>
endobj
7930 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 615.405 null ] >>
endobj
7931 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 604.446 null ] >>
endobj
7932 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 549.651 null ] >>
endobj
7933 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 516.775 null ] >>
endobj
-7883 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7936 0 obj
-<< /Filter /FlateDecode /Length 2119 >>
-stream
-xZMo8WƮY~aQX`}
-BPm9Q+K$' wOq1M˒9oHμ!g3<xO$x퇀8Ҋ0:]x LI$I0 $AX~<D/og
-i)b0IVeۨHOiʲuX
-*i]K
-.ׇg晹[UIjL=M`D0Q<.oL[#__7yzƯy~+U(sӸqn3 * 4baHj
- Jvy+F90. cDeĦ Pi[׻ЌR[3(4ӌ]vX.n܇U(D%xh6ه2^m[퓴 }e,l兔8FEOIQ(I^I (q8zJʏ!z>#㣽B6U&0W'K>1$HW3a?hoy" El: D 6^pny&Qm&HdAs5.Esâ>?3/vYe&E_u}K5[xO߷C?^~|g SZ:0dD҈Y,Wj{xEQ|7<޸v 3jLSTpw@Rƨj7n"plU^$ѺudQ keu\C(wL4)+3"ãv
-WE_ji*(s6}$,gj`qҧ0
-|IꞶyLLjnؽT0K\۲֝|qض L5%&YH*ᶐ={N'bAY
-N
-U@} L='.I1J Yw!~>q!D&od
-[`?sm^Q#5AT~lH{tp[{woG T5`~Tm#s</R!fz_p?6"ذ3|$/+CZ}-"_ld
-qK!⧃qGit(w:D"kCGiA[%`AGiDs$>eJA?QŬϥ ?>L 8p}>ؓKW:(xpC
- K~1ֵ|_ { 5%V3.Ӵ9eKkSkc 4>¨?6"2c4|e% i,$Z,ɁAR&_n/ޢ9)$F6i}9i`f6)Pj|MN6QU$5gN 8iNa+#yHW~y?*n
-endstream
+7934 0 obj
+<< /D [ 7913 0 R /XYZ 81.145 505.816 null ] >>
endobj
7935 0 obj
-<< /Type /Page /Contents 7936 0 R /Resources 7934 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7913 0 R /XYZ 81.145 462.976 null ] >>
+endobj
+7936 0 obj
+<< /D [ 7913 0 R /XYZ 81.145 452.017 null ] >>
endobj
7937 0 obj
-<< /D [ 7935 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 441.058 null ] >>
endobj
7938 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 430.1 null ] >>
endobj
7939 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 419.141 null ] >>
endobj
7940 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 408.182 null ] >>
endobj
7941 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 397.223 null ] >>
endobj
7942 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 707.972 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 386.264 null ] >>
endobj
7943 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 697.013 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 375.305 null ] >>
endobj
7944 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 686.055 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 364.346 null ] >>
endobj
7945 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 675.096 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 353.387 null ] >>
endobj
7946 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 664.137 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 342.428 null ] >>
endobj
7947 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 653.178 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 295.604 null ] >>
endobj
7948 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 642.219 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 242.802 null ] >>
endobj
7949 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 631.26 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 231.843 null ] >>
endobj
7950 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 620.301 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 220.884 null ] >>
endobj
7951 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 609.342 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 209.925 null ] >>
endobj
7952 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 598.383 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 151.146 null ] >>
endobj
7953 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 587.424 null ] >>
-endobj
-7954 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 576.466 null ] >>
+<< /D [ 7913 0 R /XYZ 81.145 140.187 null ] >>
endobj
-7955 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 565.507 null ] >>
+7912 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F28 611 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7956 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 513.614 null ] >>
+<< /Filter /FlateDecode /Length 2963 >>
+stream
+x\nc9W(rvf5m!Ǚ4fằ,Q"EQ!o./_ܙb$H|? (C(?_)UMHd)EMQ>#BujuM8Ԅ'\練Vx7P
+ φfC._ +>c~%
+F+s_t&{27G<Ͼ[`ЯQpr?' Tk'o^A~q|1nF7ttʃ0*uJ/7~xJLn̊DR}Q\&t".(ƻ] Ģqꢭx%5!(=%uQ^tXkj>҉K.H13v;=!o/DmWFㆉ?Le*mU*unsNy4 ^;זca ̈́"`I(-V*dx|)%{,5GMm2ϐ4ptuE:Z0%Q(!HŌd:Bk>c+&rʻ^%SIRAEP%;F.
+p6R,[cFmR{[
+8@JπIz:R&NX8JFrnK3ic۾J[SY#VǬW| DG+C$ξ}c"{N+v4Ξ04Rcj]6u9kG&eҽ< T ]T5'RB,26fN<T$4_o 7F5~9VHˍUqi#JcQBKワ\ks!~QS힄(D{a6F=IbALӪéCjٹ9ڨI<27Z;-IF!6Dƹul{?;rN ,q45Q[ï9~/EPL=SLf2ռ+q/er$[M'm/-0=i$8JyѼֺt,j7op>FgIY2=`5̘ں@
+NJ;kAL
+ZZ3ha[Eb蟤~I i)( 4Fr
+J vUQD=I@GiT*fjKF(Oœu M[@39fYHYj
+ogJ鼶|R u xcd`
+VTg,BK%mAB}Jks1SH @*Lxݏt a 10D)18I~o _k_dngj1;DfȨ j`jeyB
+GF1Ԝ_'
+*ǘBa-!{Enq`F@(ߘպJC*SDŽ),#Ȁ+"t"ſ#pzvjnq&"N[lO|#+|G0FgXO $%<]R:{c_]~cZ[=u˘ 8}mZJ?eO|ekUs-J 'BN{2 !b m oӞ)R_B4AzIzҜut:حRZUt`
+| 9l
+endstream
+endobj
+7955 0 obj
+<< /Type /Page /Contents 7956 0 R /Resources 7954 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
7957 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 502.655 null ] >>
+<< /D [ 7955 0 R /XYZ 78.37 808.885 null ] >>
endobj
7958 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 491.696 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 742.926 null ] >>
endobj
7959 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 480.737 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 731.968 null ] >>
endobj
7960 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 469.778 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 721.009 null ] >>
endobj
7961 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 442.075 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 710.05 null ] >>
endobj
7962 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 431.117 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 699.091 null ] >>
endobj
7963 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 420.158 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 688.132 null ] >>
endobj
7964 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 409.199 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 677.173 null ] >>
endobj
7965 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 398.24 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 666.214 null ] >>
endobj
7966 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 344.809 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 655.255 null ] >>
endobj
7967 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 333.85 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 644.296 null ] >>
endobj
7968 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 322.891 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 609.427 null ] >>
endobj
7969 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 311.932 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 598.468 null ] >>
endobj
7970 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 300.973 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 587.509 null ] >>
endobj
7971 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 290.014 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 576.55 null ] >>
endobj
7972 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 279.055 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 565.591 null ] >>
endobj
7973 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 268.096 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 554.633 null ] >>
endobj
7974 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 257.138 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 543.674 null ] >>
endobj
7975 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 246.179 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 494.857 null ] >>
endobj
7976 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 235.22 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 478.917 null ] >>
endobj
7977 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 224.261 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 467.958 null ] >>
endobj
7978 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 213.302 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 456.999 null ] >>
endobj
7979 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 202.343 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 446.04 null ] >>
endobj
7980 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 191.384 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 435.081 null ] >>
endobj
7981 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 180.425 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 424.122 null ] >>
endobj
-109 0 obj
-<< /D [ 7935 0 R /XYZ 79.37 159.236 null ] >>
+7982 0 obj
+<< /D [ 7955 0 R /XYZ 81.145 413.163 null ] >>
endobj
-7934 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+7983 0 obj
+<< /D [ 7955 0 R /XYZ 81.145 316.525 null ] >>
endobj
7984 0 obj
-<< /Filter /FlateDecode /Length 2196 >>
-stream
-xZ]o6}_>m8HmQdv }.YfbMdɕ}/EU4l`y=hr?&?XMR1d~Ãh'B!*&"(dw:_k*4yUn5laӮFVi@p>~ŔUA#,Fшs^5=LziQVo#/{dovҺNᑱzSh0)#ҦcַΣ風ZΙ>쁻=PuҖ=FE 5St]vX
-puӀ~һcˆ>4tmװqI>6(ܵ=t8
-y7#CLqG
-A' ))Q)BmJD1 t}&"*r`&R奞`'|j/y6u^lKMDs,Q}kp"7G@Y_؋nf宬H.Ymm0^M}!ԎXEg[TUa&Mg#ƛe}̋X8"SZ<"_.u9cȩ\cX$Wu.#' Ęr0s!d
-\EuTs(G<a ]O a\쌮N5S:4̜!:#bDI0C_@
-X9ma4:]q!/ X!!t0п\\".0タÙ@ra*;iTDVnNt7C8R Y\<s$DCD E Y=뙢ޓ0Ћ3~q9 9a"w3J2Ld=]s9qt%DC\L!ˍa;S%Q WzOؽ0Oי.ݿuxO%cD#&zs8>.EQH)\:6bQ'E*L6=tV/$EL8=QG#d!Ͱ f7b{ fLA; Q<m56kV'ƈsHI
-Kv`YISSŒ#þdJldic*eӿ:g\V2h:qbaz⡇ZzyƴNq&)lM.&[%D11wq4@ܶa$
-!OURBFmH{`Jx޾ɐdѧAl{vÓhlEe>a Lq;lBv#nG>N"m?3(/-:ȌbbX'M%|dT fѥaU2^fc$AR<k{">lS5ϕ$};܄ 6%ycy:<Ό"^[ƛ7&W#yE'^ZHhF8K#tkn4-m= WZ?`JD;MWVMVpL(ƑR|n(#>ۃ@B@J fSﴩjsJ239֏Ƹ<nly7Ƀ:XYܩGM]5}Ao7"]..Pwk0Iw2Ȧe6“|-BEX N2y3_^o_j5\ S$Oل!nt7̹$
-a4|Vb,Eʍ98Ȁ!8xtl׌}Gqظ
-9E*f)a
-endstream
-endobj
-7983 0 obj
-<< /Type /Page /Contents 7984 0 R /Resources 7982 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7955 0 R /XYZ 81.145 305.567 null ] >>
endobj
7985 0 obj
-<< /D [ 7983 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 276.675 null ] >>
endobj
7986 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 265.716 null ] >>
endobj
7987 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 254.757 null ] >>
endobj
7988 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 243.798 null ] >>
endobj
7989 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 232.839 null ] >>
endobj
7990 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 156.127 null ] >>
endobj
7991 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 145.168 null ] >>
endobj
7992 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 134.209 null ] >>
endobj
7993 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 123.25 null ] >>
endobj
7994 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 112.291 null ] >>
endobj
7995 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 101.332 null ] >>
endobj
7996 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 90.374 null ] >>
endobj
7997 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 610.426 null ] >>
-endobj
-7998 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 7955 0 R /XYZ 81.145 79.415 null ] >>
endobj
-7999 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 588.508 null ] >>
+7954 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8000 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 577.549 null ] >>
+<< /Filter /FlateDecode /Length 3830 >>
+stream
+x\;+6,XԆ b5{:\`"W|׋|l|Kс3/?EzQhҩ}MJԏׯڇtE{)҄|!}ϟ{6RoRBd;o^ :OHG@^OiԷ[1xws &}
+y֙;x"GsM]FMܐs>s[NW褛bQLD{騇iAe+DJsaV;TVX*J9)>^yja1Iؘ^aQWŽrV>wt_bUY٢-XԘfh~/fg3l*<P Pm:Ni/ˬj˶2%:)2ߊ=wK˿~36\
+,;hmg ]sd]ŕUKٖB'V~x{5Ѱߩ,=]4ą *Z4⢾jp|(tѷfp_Oo#y92wߧEԗ0J!;yhm.+nٌ7T~:4NyA{r@hVʶBVQ˕ᬼR*37DV
+i +Zp]TTJ~Vdk*
+3# F%O]cZŭu{N bj <13IOgRțSسDmU5WR滊BrZ%ZP951]G,n%kO bW
+^ZLS'L+r3?ə1
+d>0gZYhԢP1,fѭv ,\].3b
+ <">VD
+z*;vN7IuEɀB#x`%9a8^#g7-ԝcR=릳[ Aҿgvvt3s:H/8,i$ d$On4Bmg:MEqJTwוC0N8 HsĔ&GZC~qJxChsy;ׁw^: Bkvvsy. 2c{NX(Sp=:~-}K}fB
+S.Õ"R^(Dwg;!v̔7gtB%: њ3(a8₻8oh>ƬnnRt*Ѫ\ \yz }NX>sX䆼'ݜ_}{]yk
+c75gGqN$+;vSNkgd)c~ e>%}90ږhkțaI$veDk^vHz*&MYr260XY}WU(^܍0e1lL ~N|deT^WK涕M`N6M?VqmKoVA$'ٞvZHNJ7t
+Dv7 !~"RpNDb~j~SҳjF>&nGd),2J?|[kF/Z&zzMG;/f|o
+a
+endstream
+endobj
+7999 0 obj
+<< /Type /Page /Contents 8000 0 R /Resources 7998 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
8001 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 7999 0 R /XYZ 78.37 808.885 null ] >>
endobj
8002 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 659.24 null ] >>
endobj
8003 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 648.281 null ] >>
endobj
8004 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 637.322 null ] >>
endobj
8005 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 626.364 null ] >>
endobj
8006 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 615.405 null ] >>
endobj
8007 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 604.446 null ] >>
endobj
8008 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 593.487 null ] >>
endobj
8009 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 582.528 null ] >>
endobj
8010 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 571.569 null ] >>
endobj
8011 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 560.61 null ] >>
endobj
8012 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 549.651 null ] >>
endobj
8013 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 538.692 null ] >>
endobj
8014 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 527.733 null ] >>
endobj
8015 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 516.775 null ] >>
endobj
8016 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 505.816 null ] >>
endobj
8017 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 494.857 null ] >>
endobj
8018 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 483.898 null ] >>
endobj
8019 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 472.939 null ] >>
endobj
8020 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 461.98 null ] >>
endobj
8021 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 397.223 null ] >>
endobj
8022 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 386.264 null ] >>
endobj
8023 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 375.305 null ] >>
endobj
8024 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 310.548 null ] >>
endobj
8025 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 299.589 null ] >>
endobj
8026 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 288.63 null ] >>
endobj
8027 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 235.828 null ] >>
endobj
8028 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 224.869 null ] >>
endobj
8029 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 213.91 null ] >>
endobj
8030 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 151.148 null ] >>
-endobj
-8031 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 7999 0 R /XYZ 81.145 202.951 null ] >>
endobj
-8032 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 129.23 null ] >>
+7998 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F73 267 0 R /F81 505 0 R /F28 611 0 R /F72 266 0 R /F71 185 0 R /F67 179 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8033 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 118.271 null ] >>
+<< /Filter /FlateDecode /Length 2693 >>
+stream
+x[9# W( KwjFѫzdS;O VSh> 3}?+|7n_?~=x u/xX#7߯+ǹ
+E7',Q:>f頋Y_8 =(材B3pw1օu 죰-_c/Ha=.'9R"ߎeFp~Yԏc t؀툅3H,E8+:j^RKO)ac娢z jQ]WEif"s"ˬ# h֎$vX(YfifaJBXxKѓ\]h0>x?3bt! F2ŔsAq%GJh50W#bSڝ1אN+Sqݚ=^@:ə55Ht=XSVNf1H)&8lsR?}cgOAlW)ebgok
+Udm;:Qiި7j%2a՝H$N# Th+Gɧ\To2+2d&dgF7S<hI񮁪ϵٽ$܆lQ Xd 4nIqnu.£##..'vv2c^6nuTӣÎ&91`˟vԔJ ը\w=O8TN$V6Ak`?{0P $Er0;FXvzރi}-)żu{)B"9yqudW;Êdvspvc$7J[W9a@iw=&mlDuZ 洛@b⼟vb.l^[ĬP[ηklV
+qf^gɜ<~J? F~5Iwh#U9jgHw|N8jtrү]?l^hl͸SLq(5VBԜqj?dOcUnG(K`V!8 3n(XC
+ Rw?l|x~PB[ܱ{[gH==1!7
+ҩ
+Ǡҏ>@OB$m?8\pfԤ%%,zVG @#!C
+^wtYh0 B HPn "ԂJΜ>[vz)c~zij(|=m׀@ QʬG%G g(ǕfpkUnhgs'2[=0 m+F/88ԡNZAlU-a]|x@کCҁ*=%pЉˉ$A@ǩ\h;NT nsk
+)e Lk;R
+3cie%3xɑ'D;Ç50ře ҩB~~/,
+endstream
+endobj
+8032 0 obj
+<< /Type /Page /Contents 8033 0 R /Resources 8031 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
8034 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 8032 0 R /XYZ 78.37 808.885 null ] >>
endobj
8035 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 637.322 null ] >>
endobj
8036 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-7982 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8032 0 R /XYZ 81.145 626.364 null ] >>
endobj
-8039 0 obj
-<< /Filter /FlateDecode /Length 2725 >>
-stream
-xڵZmo8_a6,_%@b{{Ez0d[iȒ+)uҢ/z(fˇX3<3cvO$˳7c6HId" nyL??޼L"ELDHĔѯb0yU75)aFNq0%߃f
-κG+b?ۏvhT""y'v|`*}t$Fnmyڄ (m~󞨙+Y"İ>`̛T_U9燬hmʢnMk=s ӻJ6w|9bim')p4:&[bp?OlR"SCb;H}^'bH
-9fv FҔսMVm<kFrĸ ؉t(ԯ#N+L">XM*b/ܬ^^ꣲE#qI~E<s1 IZ' س4\00|,Fr7z=ˡ}6_Hr9GA6zDմ I>Ŵp8A>`봀;%I/*"t~y4si-G[58t%c-B^.nLVIc|k<ujG}Uw٤u]Vv؄ mBԞIC',&̏nJ\x)g`Xq$eH 9te(czp?zmnAߺ3*!K ׻<{1śЂ0Dt4P
-&a!OV69XdQ wgNPN!
-qKL6oMp۸c&5OŖM&:5k1:2@<qJ<a
-2A ENnz % .hU'8QBoP>Cp+ȦԐ#kKHyj;B!JρDX1D;SG: dynMy2lٞFN1Og JF M
-1:)@+NN
->ʝ}`
-{Hi&ᢾ*$w,L8 &HW҇\L"!\O"bI}JȦII[nІ*"W_i|hkG%wYDQ}dDeKh;rDh &åߞHuRXOքZM Xi[`y`M>vY]wc]":uh>3,l(-P_0g qUS/2!P/wm(7JR
-[mh?u kjK38վJS(->^tDPq_]rp$s!;uڑ/Ӿ#:-ljk76' |1nԄ&nӏ#^eu@"z=$fS>ZuY<z*+H.CY3 CMʮV<)nVd ) =:eC@⺩gAbYAjV7T?TH顂=MrCjvd<L
-Kb<&4pԅM?|)XJt q*CCU?O<S<N\?E$S+I0V?IAp[\(nh@@XJǤn YNKڒŃ)ۧLLT_Mύy꾶fv<JHQC]ou/i<, )i Ц_LSDrDiZXMyhm0כ<ѯl+i޿rÑYU7NzP]#i^huaюXLp{P?S /o1C-[;S=nkK?0&H
-x&~)JI9Ix葔$Ucx!{e0e%0S3Htř2 G^ÆH8F*v{˳p'
-
-endstream
+8037 0 obj
+<< /D [ 8032 0 R /XYZ 81.145 615.405 null ] >>
endobj
8038 0 obj
-<< /Type /Page /Contents 8039 0 R /Resources 8037 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8032 0 R /XYZ 81.145 604.446 null ] >>
+endobj
+8039 0 obj
+<< /D [ 8032 0 R /XYZ 81.145 593.487 null ] >>
endobj
8040 0 obj
-<< /D [ 8038 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 582.528 null ] >>
endobj
8041 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 571.569 null ] >>
endobj
8042 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 560.61 null ] >>
endobj
8043 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 549.651 null ] >>
endobj
8044 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 538.692 null ] >>
endobj
8045 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 527.733 null ] >>
endobj
8046 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 516.775 null ] >>
endobj
8047 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 625.37 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 485.89 null ] >>
endobj
8048 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 614.411 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 474.931 null ] >>
endobj
8049 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 603.452 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 446.04 null ] >>
endobj
8050 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 405.193 null ] >>
endobj
8051 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 322.503 null ] >>
endobj
8052 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 311.544 null ] >>
endobj
8053 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 300.585 null ] >>
endobj
8054 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 289.626 null ] >>
endobj
8055 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 278.667 null ] >>
endobj
8056 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 237.821 null ] >>
endobj
8057 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 226.862 null ] >>
endobj
8058 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 215.903 null ] >>
endobj
8059 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 187.011 null ] >>
endobj
8060 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 176.052 null ] >>
endobj
8061 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 165.093 null ] >>
endobj
8062 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 136.202 null ] >>
endobj
8063 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 125.243 null ] >>
endobj
8064 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 114.284 null ] >>
endobj
8065 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 103.325 null ] >>
endobj
8066 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 92.366 null ] >>
endobj
8067 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 262.73 null ] >>
-endobj
-8068 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 8032 0 R /XYZ 81.145 81.407 null ] >>
endobj
-8069 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 240.812 null ] >>
+8031 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F71 185 0 R /F67 179 0 R /F15 180 0 R /F73 267 0 R /F30 172 0 R /F25 609 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8070 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 191.995 null ] >>
+<< /Filter /FlateDecode /Length 2304 >>
+stream
+x[ˎ#WF#Q h40n]d۫
+13x$}SU]~ݏqytL5aƹ)&Qeb
+!*Al2)H0=JFHk lo&EEuSI]ʅF6 SC8_!2t2~E(R2%AMb&H`RlrYI ۪"(]6˄(3eq pHKLJYŌ=&p6~Ү__"tǻka\ɛhgXFJs- A{iO==Z32S%TyQb䮶<ߨ]Ʒo,&JU-Zݔ1iqVP2#Ɍt[#Q3
+r {t$ ~T$,H {;0q r+gXJ9f eשzX>VƮr)k|S*+#s5E^,iaVKfԮRֈk!9,RzNHO8@wPp) J 8Y&U%:dȵ&ҿB+2*=!=!&)Q6\ Z0a)Ώ<!=*RǶsN0wQbDgMZvLHOX}#dqhC!GY~p2ͤ6[d_E|K]*C+O3*T3eV<\Iy664T׼[eH*lTuޘHj2C]V>(biz[\y.5(KJai=瞏duxr^ 2%u;5
+̥tѤoҕMHNtfDΜ2U
+`٘/չM~Bgr%S$Upf@HixHT ?}i`rf>TzN{hCTzh չAZ:bw)K.s5+q_"NJ^JK\HQaeG֚_z~daF@<!ّ0E97O*
+0'Hڌ@;( *jh4"=s@bRO}
+(փBn*iՂZ>C3I] c[|5 - Rwi
+endstream
+endobj
+8069 0 obj
+<< /Type /Page /Contents 8070 0 R /Resources 8068 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
8071 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 176.055 null ] >>
+<< /D [ 8069 0 R /XYZ 78.37 808.885 null ] >>
endobj
8072 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 165.096 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 768.829 null ] >>
endobj
8073 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 154.137 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 757.87 null ] >>
endobj
8074 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 143.178 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 746.912 null ] >>
endobj
8075 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 132.219 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 718.02 null ] >>
endobj
8076 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 121.26 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 707.061 null ] >>
endobj
8077 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 110.301 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 696.102 null ] >>
endobj
-8037 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F26 662 0 R /F70 185 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8080 0 obj
-<< /Filter /FlateDecode /Length 3330 >>
-stream
-xڽn}"
-$&!5 7)4Ikb¥t
-sD 14y89+#0ߗV,`+En_YR!:nyn7X8B؀ͨ$*"$KIM7 HO
-26P6>@¶*Uo=_T1RP*# ug(ݮ啥jqR %_#YFۮɃloU]8؂s"OC;˟6eL-l̴\Χ0X1A<A6$Z-V 5(RJ ~G;'h˳a?8A<4
-Y;wa|,yF~Fl ‘DCF#.3 zd ˈNȀe1v
-S.FUf>4 '̦P")IHB47C`Odݲ(w5T9"%)Q*(dB>"@Hr|KcrznSv_f/-VyB2H٤VzR<U ?5QZPB=`ȡRO%ؗ& WDe
-y0XBlXdH>Lg,Ru<V10<j; Fz7a{oznj OfZ@cu"\ @+"
-(gh5EB B_'?hzValy MW=?3@@}MBz-4$-l#;
-ҝW*Cnw>QL@A;2 lɃB1K?A~<
-=>j!e.WYoEr>yc8޵錷h<ګuI"gPsR:]|=u Q16hָA| 6%Љ$\@H֍HGxR,>v1l9J
-Qu<@`<4x8 t)EEwg\3D}/0!-wȘ2 U"ND7/؇+udڹ I9ŕ'bʢ٣Қkrro9Xsmy9Ir|Cc]lP x^}"QvĤ4] X{MhcK$!n!aQX;_a,B@OL(_I_I*>ce:1"vPL34,$Ol߷>W<.ե Pa[W>9": OM䥣YWT`H.=OEpJt vjdʴDq.{ Ac:b /'m1WK_S,_O $Lm$dw!:f3}f$x~$8qfD4#.CJe]gGI6 UFPݑ3J<B2E- _!H@F$ Ⴥ
-3UԘF<fP:c)/|42ZjP7dCXi%=)IWnV@Ͼ68Y}rU݋~\* %Pa2^r$QVvYj]d@mi)Bn!|Jc=j1Ƙ@b%&ͧwu\U|r%e1sfIΓ)RP׷ULVeHÀxaLCt>g޴ RQx>bZXz:h&{l<*Ч+dV2YcgQ@?fzg,Ss=‡rd`<rrd84y ? T]=-ymJe^ǫ#|hνlo#lY&9p;&qsK݁/>-V<1޼^&riz'`=K[)4}`]O,'mo*z0ʉ^GXV]=Q]FtH@bE51%ԝw"$d
-endstream
+8078 0 obj
+<< /D [ 8069 0 R /XYZ 81.145 685.143 null ] >>
endobj
8079 0 obj
-<< /Type /Page /Contents 8080 0 R /Resources 8078 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8069 0 R /XYZ 81.145 674.184 null ] >>
+endobj
+8080 0 obj
+<< /D [ 8069 0 R /XYZ 81.145 663.225 null ] >>
endobj
8081 0 obj
-<< /D [ 8079 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 652.266 null ] >>
endobj
8082 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 641.308 null ] >>
endobj
8083 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 630.349 null ] >>
endobj
8084 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 619.39 null ] >>
endobj
8085 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 608.431 null ] >>
endobj
8086 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 567.584 null ] >>
endobj
8087 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 556.625 null ] >>
endobj
8088 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 545.666 null ] >>
endobj
8089 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 534.707 null ] >>
endobj
8090 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 523.748 null ] >>
endobj
8091 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 512.789 null ] >>
endobj
8092 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 501.831 null ] >>
endobj
8093 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 490.872 null ] >>
endobj
8094 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 479.913 null ] >>
endobj
8095 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 468.954 null ] >>
endobj
8096 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 457.995 null ] >>
endobj
8097 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 447.036 null ] >>
endobj
8098 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 436.077 null ] >>
endobj
8099 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 371.32 null ] >>
endobj
8100 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 330.473 null ] >>
endobj
8101 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 319.514 null ] >>
endobj
8102 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 308.555 null ] >>
endobj
8103 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 297.596 null ] >>
endobj
8104 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 286.638 null ] >>
endobj
8105 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 275.679 null ] >>
endobj
8106 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 264.72 null ] >>
endobj
8107 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 253.761 null ] >>
endobj
8108 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 242.802 null ] >>
endobj
8109 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 231.843 null ] >>
endobj
8110 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 220.884 null ] >>
endobj
8111 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 209.925 null ] >>
endobj
8112 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 157.123 null ] >>
endobj
8113 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 146.164 null ] >>
endobj
8114 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 105.318 null ] >>
endobj
8115 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 94.359 null ] >>
endobj
8116 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 8069 0 R /XYZ 81.145 83.4 null ] >>
endobj
-8078 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F75 317 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F78 556 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+8068 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8119 0 obj
-<< /Filter /FlateDecode /Length 3046 >>
+<< /Filter /FlateDecode /Length 1999 >>
stream
-xڭZo6߿"Eq Y~aQම>,^>،[YI&ifHJe6b$7Cћ }ӛd+ysAa7:#BhUnww&dSwyg,;EXF4!ӜYBccZSaK rVTm 63ϪvCpdڏ=*#e|A)Y6! s+۝xto^.ǻ/wm^dq qmۼڸNNG&rDBt݊mu嚬y )|cg$AA2ZHLdRET$-Y^])U4P NYH't*. gl`E_NJ%2~/6ު}[?_TrߚO&;^`ɣY.'|n1Yp<Ej *lHQdV}~ nP|ٷV \[t :5w*Y)RJ{IY(`MC~Kۢ9V@ŁΛƙ<3܏f{PRE=<A6[ |4~)ɍa5UG yu=]
-#`<d+YS4ю?тfx_pr-Jc!D _׆(уukCYRij1W_h$%wu CQX%
-1
-ZGlͥ& !iͪ[`YV 9(t dAY&%$ j,-{fJ@έcjLm3bƨg&ݚb!9%Vϻa[a @~Df
-Â N`זA< ({ґ/Vͦ!wc>P =!T 4gSEd&q*5pN]Dƀ[ƯX)2/_gߞW8S09@}[_hh,RW\A4]m>J ݿ'{3Fa^g8ࡨ1 $Sio.^-7?%8% S|&l? hIٱ
-Q8.7^VL@نKq_4q2īT~1q%O&k
-B x]WJw-u{,JgUek"_ӋA)ARnӎnI xs1QB{x}7  I
-WI)K=c1e!<d*3-*1IITIEq=F 2e d+is 2xYtF\GT} 5߬|lh 9o2Fw
-b{bliXl>5k83Ό&yO>p cFD%
-
+xZn8+&`hqsm0יuDQC*i4Ї$D=>VZHY9'Y
+>O7N$S'urFN(!:{,!)5H??ܯ7cONxc@J0ֶH`h)Ǩҫ  nRх^_" /]4eBv)e BK"ʘJ?3#Y5OCDeK' pnI[PV
+\r|ԣ7:K0^
+ SnPq$|L%
+MG+%tGpt*ף2ZysrmP$1-H‘m2, ޵A
+,U)VL 7TdTuih`B(UyG-|դse2X1}"$㲡|*5/ _oJ<#z,@0¯ HsB N $4gpwt/Ж1(jS>GY+q;FEV|$uX:;k잿օKMNwr8)0 khiF12&[W('#فiSq~hh⍳Q3cr~ \,[$jb<;NvRT odND; s4;HMh^JX*_Dq=SW]xA\f9[I*JTdO CG.ޭ]rꤏ7vp{G0:ӝͣb;W9@eY~K_N)ĘJ]#/}v]gMbWK|b8v6x,x[1bYje]KS %>DHYilЊ,[kX`M{5vm4=B<\E7QH$Bş!1`}#dΎ)
+nnyy57JbHW9"S)Jmr\.z΀ʧQѹ-UlsFx=՜5H}"#F (\-dӌiV}=8[Zi-@vwmei[O7DR9ur\QJJuJHu9Ꚛ8kXiK~m$
+'nPuiЦ8zT/->qvӸ4Eb%3L/^i;wNFIȽKt HnQ=&1VX[q?C|OУKbS렰E:T޷9z[$0"YhZ^ ދ{ii3k'1ke T%Ǚ&Jhq.*T 3إ2w BRWxs}O40TN>/(@8u,il]Ŵ+Ex)""fWSC4s
+UMeL$yP eƹi'ʥHhO556}t7Hf{Me
endstream
endobj
8118 0 obj
-<< /Type /Page /Contents 8119 0 R /Resources 8117 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /Type /Page /Contents 8119 0 R /Resources 8117 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7759 0 R >>
endobj
8120 0 obj
<< /D [ 8118 0 R /XYZ 78.37 808.885 null ] >>
endobj
8121 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 742.94 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 768.829 null ] >>
endobj
8122 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 731.981 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 757.87 null ] >>
endobj
8123 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 721.022 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 746.912 null ] >>
endobj
8124 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 656.288 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 735.953 null ] >>
endobj
8125 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 645.329 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 724.994 null ] >>
endobj
8126 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 634.37 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 714.035 null ] >>
endobj
8127 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 581.591 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 703.076 null ] >>
endobj
8128 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 570.632 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 692.117 null ] >>
endobj
8129 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 559.673 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 681.158 null ] >>
endobj
8130 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 548.714 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 670.199 null ] >>
endobj
8131 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 537.755 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 659.24 null ] >>
endobj
8132 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 526.796 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 648.281 null ] >>
endobj
8133 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 515.838 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 637.322 null ] >>
endobj
8134 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 504.879 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 626.364 null ] >>
endobj
8135 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 493.92 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 615.405 null ] >>
endobj
8136 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 482.961 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 604.446 null ] >>
endobj
8137 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 454.092 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 593.487 null ] >>
endobj
8138 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 443.133 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 582.528 null ] >>
endobj
8139 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 414.264 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 571.569 null ] >>
endobj
8140 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 373.44 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 560.61 null ] >>
endobj
8141 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 290.796 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 549.651 null ] >>
endobj
8142 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 279.837 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 484.894 null ] >>
endobj
8143 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 268.878 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 473.935 null ] >>
endobj
8144 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 257.919 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 462.976 null ] >>
endobj
8145 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 246.96 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 434.085 null ] >>
endobj
8146 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 206.136 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 423.126 null ] >>
endobj
8147 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 195.177 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 412.167 null ] >>
endobj
8148 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 184.218 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 401.208 null ] >>
endobj
8149 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 390.249 null ] >>
endobj
8150 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 379.29 null ] >>
endobj
8151 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 368.331 null ] >>
endobj
8152 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 357.372 null ] >>
endobj
8153 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 346.413 null ] >>
endobj
8154 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 335.454 null ] >>
endobj
8155 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 324.496 null ] >>
endobj
8156 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 313.537 null ] >>
endobj
-8117 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R /F46 176 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8159 0 obj
-<< /Filter /FlateDecode /Length 2078 >>
-stream
-xڽZ]o}ϯ0PP Wݢ}ȓ߶rIE"mW(S$g4ΜΞf췛t%Ҵo7o>~LSf IrEf$Ut6ξ$c~D+L ZBߓ-SBSesD Pp1MxNR.fy{'Lg[7|4,'4^;9M;X0F[?S=
-*Ήڿ .9EhlƈM!D19.5EK)8?'iJI2SF˖&Y#8t<FOɊ2$sQIpiҤܻFݧL
-ٯܖ1O(7}iT%g$"7cn"̼xJ}* @!rs 2񙝨JJn|h;'Y TFƵ2}L'˶OvF}R_nm)I\}9J%1hv3P91laS{ޒ@Kꓗ8;DHiRz E! "[;K!$hdLD T6bQWtӦAkA8B3iE?'fB |8bJ LVVD/p3PFFhlEqggjQp
-; Z55CHS-DCqU0X;qU,ր<G'ҁ3Q)"(RFD|:ylǰ7G<:Zo6
-DeB1L7qfVg]SY
-x Ծ’B`mvߠPQ7퉀UJNf8B4~O8| 96h5wQ5avѥ76-zbxtd҈*hZ( xx(.hlw.>G) aqY{FFOWM쇂Ad,W+р= A?' g]O`f`ɲڙoZ@znjq i-H<Wڊ7~o=7>+ePK-`nx]U/VGݦ^]y÷;ǶAU!MܕpebeglG!MĤLLśRˈ᝘Mc1};CbFӂ0#Ia<85lTBmR|Q2=uzxrhO8+D_ѤqE
-endstream
+8157 0 obj
+<< /D [ 8118 0 R /XYZ 81.145 302.578 null ] >>
endobj
8158 0 obj
-<< /Type /Page /Contents 8159 0 R /Resources 8157 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8118 0 R /XYZ 81.145 291.619 null ] >>
+endobj
+8159 0 obj
+<< /D [ 8118 0 R /XYZ 81.145 260.735 null ] >>
endobj
8160 0 obj
-<< /D [ 8158 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 249.776 null ] >>
endobj
8161 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 238.817 null ] >>
endobj
8162 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 227.858 null ] >>
endobj
8163 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 216.899 null ] >>
endobj
8164 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 205.94 null ] >>
endobj
8165 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 707.063 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 194.981 null ] >>
endobj
8166 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 184.022 null ] >>
endobj
8167 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 173.063 null ] >>
endobj
8168 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 162.105 null ] >>
endobj
8169 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 151.146 null ] >>
endobj
8170 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 140.187 null ] >>
endobj
8171 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 129.228 null ] >>
endobj
8172 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 118.269 null ] >>
endobj
8173 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 107.31 null ] >>
endobj
8174 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 8118 0 R /XYZ 81.145 96.351 null ] >>
endobj
-8175 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 597.474 null ] >>
-endobj
-8176 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 556.627 null ] >>
+8117 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8177 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 545.669 null ] >>
+<< /Filter /FlateDecode /Length 2835 >>
+stream
+x[;$ WtxN0`z'3`^.dޝ*IE~(/^o<CcN? /bb`\׿/{K\B1»7@^ƹR?G=ڑx@+k}M8yf
+OlH}o&Gj
+)'C ۉ\ șL'oa"ONzq6>L\O*.Loxb7xRtPdy + o[17^‘רȴm9"H1 zi)6<83-qA欐Rin/F*&%:O?= D,\UK۱N<B
+$ st-%~@e~'ц6yV'%Ìd¹Q3a9
+ ^DH8cD9F3j =Q^y[^
+8uǔR# ?L-XޛE. *~݊i4 .-K7RiƖU!5S`k)
+i3Uu(H9ee^'~@N -zfصRiY1+TK~@hݬ+0k~@)
+oyOQ{ ~ZeUfN) AJ4^k] Z!AmA;)(W&ȥ]R]tErVD#x1PZZ3VΞ0rc649N\cӖ-B &⬃B ) LYK~f=v
+vtZ ^0xp7eW ur%
+|gaseMB| ((1b(#ϙޥb
+֜b ^bGabpnoaH҆KP'7g-ȋg$P3;J$&uj,CWn|uMWR25 *K}
+-SnSL+;2.mF7|"z.#NgxA骊oI%{KMTU%(=W"uv ]#@fFxo$T`hxLn=3`Z3~Z7Og ,7^@1Ɍ8->ֶ6Ϧ0 dk9@JocVq0]W=Oߥ(Rk++-U2祕DU|0%g
+0Z-#hbVӅ73Jm~ ql*OhrG$ǵ T1 篇.g
+
+L:5 ?t4o<.RO1bI7Q@F1 ˿5
+e` z}cf @g'c[9Iq'MٵkCBDž VBdtBn+2>ZUAOüٝrV$0P:_n2Yqӷ&l/Mk`
+;G(#D~g=]( Hb?HOfJ'
+4u vf;Ɍd/Kc]a]L^jH%- *`LKLZ(`G1RړBća*+X;r%Jۉ\7e rۖIᰧ4j {GJ-qcH5*~ rҿ `C)5c)ij,kA(s P٢ϺR҉0N0%E̸IFMҠkG׃zl62$w;1,poXW\SR֥CL1O%Gʸ0^>)tPM@aVgz#W9u3*y4. Hsm˻֌l2ft@cny+Oʺ# %:5MO1J+^;٤Sཉu<<AITO87Vz7a&䤦AMJA[\"ocָ}*ע8}_*<}7n"bJlb .~ߣd}pQ:6EK.$ l@}+a$5Uƙw/ș3NM4u%y
+endstream
+endobj
+8176 0 obj
+<< /Type /Page /Contents 8177 0 R /Resources 8175 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8178 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 8176 0 R /XYZ 78.37 808.885 null ] >>
endobj
8179 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 742.926 null ] >>
endobj
8180 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 731.968 null ] >>
endobj
8181 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 721.009 null ] >>
endobj
8182 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 710.05 null ] >>
endobj
8183 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 699.091 null ] >>
endobj
8184 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 688.132 null ] >>
endobj
8185 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 677.173 null ] >>
endobj
8186 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 666.214 null ] >>
endobj
8187 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 655.255 null ] >>
endobj
8188 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 644.296 null ] >>
endobj
8189 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 633.337 null ] >>
endobj
8190 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 622.379 null ] >>
endobj
8191 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 611.42 null ] >>
endobj
8192 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 600.461 null ] >>
endobj
8193 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 589.502 null ] >>
endobj
8194 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 578.543 null ] >>
endobj
8195 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 567.584 null ] >>
endobj
8196 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 556.625 null ] >>
endobj
8197 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 545.666 null ] >>
endobj
8198 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 534.707 null ] >>
endobj
8199 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 523.748 null ] >>
endobj
8200 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 512.789 null ] >>
endobj
8201 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 501.831 null ] >>
endobj
8202 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 490.872 null ] >>
endobj
8203 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 479.913 null ] >>
endobj
8204 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 468.954 null ] >>
endobj
8205 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-8157 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8176 0 R /XYZ 81.145 457.995 null ] >>
endobj
-8208 0 obj
-<< /Filter /FlateDecode /Length 1816 >>
-stream
-xZKo6W60P`@m9u Aq]Gr%evCJEjC/D gg݌ޝI^0b&LNtfVhFfosõY~Kv3KŽLJN7)e8W\ƻ͛zS>4}ANHRQ(ZiZ*Ac)ZpIei
-3sa(}`O&\(OmqBhol\aNAMTCLS1"KџҽtCK|{e=6rĠQ>keP|8<EANB1/Ys"E$HQ'#D4g1n,(L/#HQjGcWr
-DHE j -Cdf'Hi"AZ" He1
-0^-Q Kli$H;$282ҞHΜR3>Y|0EC7k#Gډ, qNJh.P0D~UO [b<k7acqDh@3lxRy{_3߬{n]We顁1JNՅYK( H4j/u8G1(8g?M\=>x@WmUw<`zwUmjowC *ztrǭ.&ifzT\kD}\$ T$>.CCqڅo
-K,;X';^h=Trg1M^bbH#ʩ8uAnh0g "Q$p<Yy--$D0\)2xe"Gm7 fLCM/R8A
-bx".KOx_I^C˽plY{e, ˏ L{)utWpI]^ΈTN>F)*.N* c07 - ;ho]g FKU㝋 IЏWg
-endstream
+8206 0 obj
+<< /D [ 8176 0 R /XYZ 81.145 447.036 null ] >>
endobj
8207 0 obj
-<< /Type /Page /Contents 8208 0 R /Resources 8206 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8176 0 R /XYZ 81.145 436.077 null ] >>
+endobj
+8208 0 obj
+<< /D [ 8176 0 R /XYZ 81.145 425.118 null ] >>
endobj
8209 0 obj
-<< /D [ 8207 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 312.54 null ] >>
endobj
8210 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 301.582 null ] >>
endobj
8211 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 290.623 null ] >>
endobj
8212 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 279.664 null ] >>
endobj
8213 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 268.705 null ] >>
endobj
8214 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 257.746 null ] >>
endobj
8215 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 246.787 null ] >>
endobj
8216 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 235.828 null ] >>
endobj
8217 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 224.869 null ] >>
endobj
8218 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 213.91 null ] >>
endobj
8219 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 202.951 null ] >>
endobj
8220 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 174.06 null ] >>
endobj
8221 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 163.101 null ] >>
endobj
8222 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 152.142 null ] >>
endobj
8223 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 141.183 null ] >>
endobj
8224 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8176 0 R /XYZ 81.145 130.224 null ] >>
endobj
-8225 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 604.448 null ] >>
+8175 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R /F28 611 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-8226 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 593.489 null ] >>
+8228 0 obj
+<< /Filter /FlateDecode /Length 1939 >>
+stream
+xZr7 +L
+yaeuU(5ժ B#Ţ
+=O:mĖ -%6 ܞYw>?ܦ uXdCRvP&:t_6P&ůEbQV Cp.
+C_s9zIRxtH'DNheG(- Y:\Oݪ2h~ EV($ Zhк\X͹pY`E85t?)>AN*uhakwK{9^08ZCVQJ)w%T
+smh
+\ʖA'~$AuAٺEFͯqoջ;J zn'J2kYZqN 0t>Zri}6\8\\^=߉#*Qj=PVk!
++9tH憼B[ ۀ%d6:UH^v5[SYBzy[
+CgƀJAw^8Me-Rl{kX3ϯLAL}Ms=q[:ݚ*HS<,n(H1҉ H1dRt#cqef?,3ͼkheq(pO‘4d9ۼ/ 8&_cTeY5jm!}!nKvD:$Vz Ib0 fݤ(#Ef<LB(LFHjYӴʍę9H /۪~b~lAb3<uS κu)H.C~0s0-t Mm*= Qi(
+endstream
endobj
8227 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 582.53 null ] >>
-endobj
-8228 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 571.571 null ] >>
+<< /Type /Page /Contents 8228 0 R /Resources 8226 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8229 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8227 0 R /XYZ 78.37 808.885 null ] >>
endobj
8230 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 742.998 null ] >>
endobj
8231 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 732.039 null ] >>
endobj
8232 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 721.08 null ] >>
endobj
8233 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 710.121 null ] >>
endobj
8234 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 699.162 null ] >>
endobj
8235 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 688.203 null ] >>
endobj
8236 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 677.244 null ] >>
endobj
8237 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 666.285 null ] >>
endobj
8238 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 655.327 null ] >>
endobj
8239 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 644.368 null ] >>
endobj
8240 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 633.409 null ] >>
endobj
8241 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 622.45 null ] >>
endobj
8242 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 593.701 null ] >>
endobj
8243 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 582.742 null ] >>
endobj
8244 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 553.993 null ] >>
endobj
8245 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 543.034 null ] >>
endobj
8246 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 532.075 null ] >>
endobj
8247 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 521.116 null ] >>
endobj
8248 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 510.157 null ] >>
endobj
8249 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 499.198 null ] >>
endobj
8250 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 488.239 null ] >>
endobj
8251 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 477.281 null ] >>
endobj
8252 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 466.322 null ] >>
endobj
8253 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 455.363 null ] >>
endobj
8254 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 444.404 null ] >>
endobj
8255 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 433.445 null ] >>
endobj
8256 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 422.486 null ] >>
endobj
8257 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 411.527 null ] >>
endobj
8258 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 400.568 null ] >>
endobj
8259 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 389.609 null ] >>
endobj
8260 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 378.65 null ] >>
endobj
8261 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 367.692 null ] >>
endobj
8262 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 356.733 null ] >>
endobj
8263 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 345.774 null ] >>
endobj
8264 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-8206 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8227 0 R /XYZ 81.145 305.355 null ] >>
endobj
-8267 0 obj
-<< /Filter /FlateDecode /Length 2575 >>
-stream
-xZKo80pd`>,rY$ؒG4OI=j{v!(~b~A?͛?|\s-7wo| 09fa4#Ta?lsܵ ܵo!tqW7]y]zKhm3A#[:܋Uw!0-ǫ 7´Wp{jeo*VW.3:[>ٺmb۩i7 ώ
-*DJ?!Y7įmŜWE#BBeQb!I1L̀Y6m~~E"ڔ_f]i7ݮ>˫kŕky}[5,tJfKbٱ,.c1"џi3Az2ڜQ"({/զLfrbgF]ƌ)?{-ݯAGt]Ove>5vqrs8S3o,_RsF2ٯV'v 2Qe$m\ᱨX ܼz=Jx_4-ӳp4di-H+Z iDxr&vVo!-3B2v
-{~MrrCa^K*wVFAhSI6OT6a/-+L\Nd% Je앬=']sv ._Fh&c#.~zt46S
- cy0ޝVcHɁ0?FTxB2b- [ {wn3N 5x8 ?N*;`y<[5/HHnxqL}vь޹tth
-9w&¸hc4`;u5ۗ.
-60dEFNcpJ̗q*`'whjY<E_(њQx~ ՄC_ ȧPQ]
-kN,L#"nɢ8TC/'WB\t`U8Cf:_f!hls
-7#xpZ
-E6`}CV{mD_?3pZ)tѸb~fĕ\p~!"Rއ8A 3:}DSqb*(gtO[PEjc祇Ru?69ML͟j
-endstream
+8265 0 obj
+<< /D [ 8227 0 R /XYZ 81.145 294.396 null ] >>
endobj
8266 0 obj
-<< /Type /Page /Contents 8267 0 R /Resources 8265 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8227 0 R /XYZ 81.145 283.437 null ] >>
+endobj
+8267 0 obj
+<< /D [ 8227 0 R /XYZ 81.145 272.478 null ] >>
endobj
8268 0 obj
-<< /D [ 8266 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 261.519 null ] >>
endobj
8269 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 743.447 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 250.56 null ] >>
endobj
8270 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 732.488 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 239.601 null ] >>
endobj
8271 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 721.529 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 228.643 null ] >>
endobj
8272 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 710.57 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 217.684 null ] >>
endobj
8273 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 699.611 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 206.725 null ] >>
endobj
8274 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 688.652 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 195.766 null ] >>
endobj
8275 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 677.693 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 184.807 null ] >>
endobj
8276 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 666.734 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 173.848 null ] >>
endobj
8277 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 655.775 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 162.889 null ] >>
endobj
8278 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 644.816 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 122.47 null ] >>
endobj
8279 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 633.858 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 111.511 null ] >>
endobj
8280 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 622.899 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 100.552 null ] >>
endobj
8281 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 611.94 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 89.593 null ] >>
endobj
8282 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 600.981 null ] >>
+<< /D [ 8227 0 R /XYZ 81.145 78.635 null ] >>
endobj
-8283 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 590.022 null ] >>
-endobj
-8284 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 579.063 null ] >>
+8226 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8285 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 568.104 null ] >>
+<< /Filter /FlateDecode /Length 2250 >>
+stream
+x[r8+FpD2;Ͼuu4mMHVWy)||\'~㉗L#ӏň2gj=-_/k#?mN9mtL)5"GB3&ޚl3qg%.ω#~}VYp LBEpZ GYMs4S~p푾NQoK˄EJmvIa
+&ak>V3Yu|!5#mƗejI#=2Z ~ ֒܍QfhJ+#(2YA񣽆4#Rg.FdJ8Ƭ
+1LyקP"ŲՋ*=N NKv)Jhf+^v[K96E:6vEm!ow( S* s((R:2=RO+Dk!a <wy.HXz9|/ᯬf"f6Xvfh: +Pє2 ] (Befi,/ḨjsTHȶCb+WkT8
+ɱ"Jt]2rZt uO4jr.9{!2s_ahV㜋IB&ե=L&!92zJF.΀Z0
+k@~׀3 vP+Lt@ehyݒr-v$):^zc4s,
+(Zf)YiLIJQJ/J\3Hjs.H7=T:(Jt9vc2/I2抢T2䤛kH;Q{P]SΒϵ7G$^WXzl6몴<uIMʑ&XM{%"rJ0-seۈetʺ9$m0LSq-<2Kp^mEiF=<ꎧRXft۫3
+m@:F|%玤ez֒ᦇ5cBwٽGD`X9Y_qgV"#,] rENyCy)'m2R{4xV楔]ZJoFe$s<yR`0dquPHSΤ>mҾYnF}1@4J|/EӛQUm ]Z[㰲Rfo{Z5ѕͅ9
+gT\K](exwk3[bOeJO\z6MaȆ$$YtIcI".tBHqyIEQ5,SL#2̭{]/,PPLo_-$G$)G7P*NNɕL)Sr 瀄;$پ{W9@M.I*M:.kW$!+ݾ6H\@jskάGWy.@sqUk*35F\?x
+endstream
+endobj
+8284 0 obj
+<< /Type /Page /Contents 8285 0 R /Resources 8283 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8286 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 557.145 null ] >>
+<< /D [ 8284 0 R /XYZ 78.37 808.885 null ] >>
endobj
8287 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 546.186 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 768.829 null ] >>
endobj
8288 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 535.227 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 757.87 null ] >>
endobj
8289 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 524.269 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 746.912 null ] >>
endobj
8290 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 513.31 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 735.953 null ] >>
endobj
8291 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 502.351 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 724.994 null ] >>
endobj
8292 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 491.392 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 653.046 null ] >>
endobj
8293 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 480.433 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 642.087 null ] >>
endobj
8294 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 469.474 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 631.128 null ] >>
endobj
8295 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 458.515 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 620.169 null ] >>
endobj
8296 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 447.556 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 609.21 null ] >>
endobj
8297 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 436.597 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 578.586 null ] >>
endobj
8298 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 425.638 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 567.627 null ] >>
endobj
8299 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 316.167 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 556.668 null ] >>
endobj
8300 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 305.208 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 545.709 null ] >>
endobj
8301 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 294.249 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 534.75 null ] >>
endobj
8302 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 283.291 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 523.791 null ] >>
endobj
8303 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 272.332 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 512.832 null ] >>
endobj
8304 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 261.373 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 501.874 null ] >>
endobj
8305 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 250.414 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 490.915 null ] >>
endobj
8306 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 239.455 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 479.956 null ] >>
endobj
8307 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 228.496 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 468.997 null ] >>
endobj
8308 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 217.537 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 458.038 null ] >>
endobj
8309 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 189.681 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 447.079 null ] >>
endobj
8310 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 178.722 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 436.12 null ] >>
endobj
8311 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 167.763 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 425.161 null ] >>
endobj
8312 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 156.804 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 414.202 null ] >>
endobj
8313 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 145.845 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 403.243 null ] >>
endobj
-8265 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+8314 0 obj
+<< /D [ 8284 0 R /XYZ 81.145 392.285 null ] >>
endobj
-8317 0 obj
-<< /Filter /FlateDecode /Length 1593 >>
-stream
-xZMo8W%9>=ช-ԶҴВ)2u5m)O>ywƏG~wfvꭕż)&3&0vb 0n`2L_XiٟqWo8捑.C@+?T7u.J }(^.rV}YuYP q՜UpάQ9aΗžwmwuٝ>T3P2Mсݾd1pqa\?A?ceBFfʊ_~ۺ^P]?v7ƽ6{rˮ7z7#yr0aLM.E?tzM 3Ex$q&")&-v>V29֤3sT"Rl8n62O9z=$pfwgJ&1i=hrtނx z&1r*QX^\\̛Țl+ u2:hˬ9#A_n㠂?7.Z.1O`Nk^7}p ꂧk&$ÁeqZr!eh:"ŴT99[Zu.Dp.n.WOː'3@Xc6~W.ګy̿a)t"H<7(վpLۺY4Шbq@ڊ k$ήltnd(NHJHgْy{K$OCnx S?U⟲Mk6LP`XjgsEq+3)sFy*zDK֟Kzp,2{ -:Α MWGP{RG{PV9mj)7; e
-SUIZӊR-v; x/I/g
-~adiH%&IUd>C"!Sc{kRRQoHE?C_ިޒ: M^藢*G Mm z@rZhzlGqR|#@$c\TMyc}{t_mS iSBE7AO3E_U@{qak3|NV1t>/մolA$z$' „.C>ؖŮ[Xn;XE.TmnC]>ߪ?ÜqR)܎I좌GV<To|stX}wݵE발в}Q
-DIq24yxؚkn^SZh.lah<RCj7mVie9Y:kn4)_见{deTx(TTHӘ$;5Ϗ=6(i$SuS2
-!
-!hr`^$DmI*
-endstream
+8315 0 obj
+<< /D [ 8284 0 R /XYZ 81.145 381.326 null ] >>
endobj
8316 0 obj
-<< /Type /Page /Contents 8317 0 R /Resources 8315 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8284 0 R /XYZ 81.145 370.367 null ] >>
+endobj
+8317 0 obj
+<< /D [ 8284 0 R /XYZ 81.145 359.408 null ] >>
endobj
8318 0 obj
-<< /D [ 8316 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 348.449 null ] >>
endobj
8319 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 337.49 null ] >>
endobj
8320 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 326.531 null ] >>
endobj
8321 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 315.572 null ] >>
endobj
8322 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 304.613 null ] >>
endobj
8323 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 293.654 null ] >>
endobj
8324 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 282.695 null ] >>
endobj
8325 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 271.737 null ] >>
endobj
8326 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 260.778 null ] >>
endobj
8327 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 249.819 null ] >>
endobj
8328 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 238.86 null ] >>
endobj
8329 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 227.901 null ] >>
endobj
8330 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 216.942 null ] >>
endobj
8331 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 620.415 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 205.983 null ] >>
endobj
8332 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 609.456 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 195.024 null ] >>
endobj
8333 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 581.588 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 166.306 null ] >>
endobj
8334 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 570.629 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 155.347 null ] >>
endobj
8335 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 559.67 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 144.388 null ] >>
endobj
8336 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 548.711 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 133.429 null ] >>
endobj
8337 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 537.753 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 122.47 null ] >>
endobj
8338 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 526.794 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 111.511 null ] >>
endobj
8339 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 515.835 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 100.552 null ] >>
endobj
8340 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 504.876 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 89.593 null ] >>
endobj
8341 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 493.917 null ] >>
-endobj
-8342 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 482.958 null ] >>
+<< /D [ 8284 0 R /XYZ 81.145 78.635 null ] >>
endobj
-8343 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 471.999 null ] >>
+8283 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8344 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 461.04 null ] >>
+<< /Filter /FlateDecode /Length 2809 >>
+stream
+x\Ɏ8W8}(0H n`6M,ʙ]%%dX ] B7] 'F3ˏ0;^EK"(^)~(_?tߥhbD]b@So-;qK#+pۿKc?~>=g]a$qhg<)cWbWe!̘.
+G@
+Jh=%Ǡ[[$fkX}VA~&wj2wûi\Ya6 #8asQ2>Z<Dz&L󡉋9H;J-eT- #H-%_ҲRI@ʡ-%_R84 U#H%Ґ.O@9AnjHW3iK1vW|n"42 =mO@s4˜%Vܒ=/EgH[ g,pd#.2eKIu1` cO`+:ktZP0#p=K@[H_Zhum%[μtCC26T[$s(ϼ}0MCÙ;JPh<J}'h6<cTr\SqܛYRJI6}eOB Vj^6 -c)QU$}QWMԆ_cYST77jst)ڄ72PV7QL {J_nL(NxL!SQ`5X.GU|n$$Mt֨ON[@4AxOg 35 {JȘ,WAtRW4_fyZ;z {>Fsij>3Fl+~gbK y2EPNhU`a#t_4\ƗpO͈:㜀~/3'WXc_#J8Rr2r}G$#
+c)cZ{*=LZ/s$mq2^DI{L퓪z1Zr3㭫"ԃ*7@^tE7z8u'mDі&)st<z_<8ktnV[g]7{]`=K@tX`rVږaT 3m
+f$l
+Ze. 3银 BEeЦd$k/CF`M)m#hu>2X-޳oۄ-Q\U9a
+sa&p9Xv#7~<&ɕ+XU4b?Q
+r.AtR2W}?JD%9rt`IXi FiB RZ^=|<! J _60V.n ͯ5'\ Wrp7֎Ro?X5+S"RSU/m}DZTua}ulD0>mOb>~;4woN7#Ŵ
+HfF
+dU(d6+ncj5V6g=uC"R/Z!!μJ#<mϷvqy 9Du9wglHkΑ^:XBm 9cSsU̩*W)רsۙ !ɡ]5;J)Jn%w$ jz6tGrRcAKl
+dk1*z*E׾<<-Tԭ8uk%H%P$Uybxb7R4JNQRB:QBc5Rn;uA4P gӾ!kj7uaus#!upǴs4v7Y%f߭böv[ѝR}A ?0S1ve^VyWwOJ筕<V
+цPD%
+endstream
+endobj
+8343 0 obj
+<< /Type /Page /Contents 8344 0 R /Resources 8342 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8345 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 450.081 null ] >>
+<< /D [ 8343 0 R /XYZ 78.37 808.885 null ] >>
endobj
8346 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 439.122 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 768.829 null ] >>
endobj
8347 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 428.163 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 757.87 null ] >>
endobj
8348 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 417.205 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 746.912 null ] >>
endobj
8349 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 406.246 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 735.953 null ] >>
endobj
8350 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 395.287 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 724.994 null ] >>
endobj
8351 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 384.328 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 714.035 null ] >>
endobj
8352 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 373.369 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 703.076 null ] >>
endobj
8353 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 335.592 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 692.117 null ] >>
endobj
8354 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 324.633 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 681.158 null ] >>
endobj
8355 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 313.674 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 670.199 null ] >>
endobj
8356 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 302.715 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 659.24 null ] >>
endobj
8357 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 291.756 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 648.281 null ] >>
endobj
8358 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 280.797 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 637.322 null ] >>
endobj
8359 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 269.839 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 626.364 null ] >>
endobj
8360 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 258.88 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 615.405 null ] >>
endobj
8361 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 247.921 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 604.446 null ] >>
endobj
8362 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 236.962 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 593.487 null ] >>
endobj
8363 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 226.003 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 582.528 null ] >>
endobj
8364 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 215.044 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 571.569 null ] >>
endobj
8365 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 204.085 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 560.61 null ] >>
endobj
8366 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 549.651 null ] >>
endobj
8367 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 538.692 null ] >>
endobj
8368 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 473.935 null ] >>
endobj
8369 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 462.976 null ] >>
endobj
8370 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 452.017 null ] >>
endobj
8371 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 441.058 null ] >>
endobj
8372 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 430.1 null ] >>
endobj
8373 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 419.141 null ] >>
endobj
8374 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 408.182 null ] >>
endobj
-8315 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8377 0 obj
-<< /Filter /FlateDecode /Length 1915 >>
-stream
-xڽYmo6_a` w b6 [}XAX-,+>R)qܜKH|NwI<W|FZR'W<2Q15Q ,r=s,blvD44Y2fvFu^"i^'|叆8PET"d0fU78}4
-IKduO68ͨiv>;OaƫmgR^|iiuU%} orN,Ҭ\'t2k~nbsjUΨ!`_c1ú!c6Ϻ]_{}QQx-$+1ljگ;u&4?͸eX|t"rBDt~s89Hb%a$lol‘ "b&%11W]z%|0imdx-";/kӏ?'uy=Kbk_I#3?$B"D-53)CtdY^]Y7m[\۬>M{`mlq^-&_(1f~,nU)&9AGZH]gur@Q̥&c: dtMb(Qbب6:X7uS̳E=ipHryj2?ɴ>Ħ.U~4Vz5i!0|I]pv]>ڳpϪ΋d]^/]iA&) ^d&]Wه]^e E<?(NaP7øn& 'b( .zb:H;gFG{).Qť Y^3L:u!0 <՜
-('ɜr9@@ <Ɯè@8;+>x$!]5N";q' U+L}Ua/{
-vfPKYjGN9G,9~^6?wa'@媬PEN4 U ʠv2 JGHG`|(ʹB$?UDN~mNyDIr-`lp|[nx ^0[X !H Vyvى.Ba_wkp0v.`'@|nG6pCz
-Sw]% Ы>bƬu8ќj9,]] kst:9@s&۾F 6FVI0.4<'݉Ԉ
-F"BDV|\s`}SnԔ oStOt=G?t~͹jfH{
-VՈ\ 4GSq+>͈ƼhLDP7
-V}zDc"
-n`>x[euYM7f)e\{rP+|.x
-endstream
+8375 0 obj
+<< /D [ 8343 0 R /XYZ 81.145 392.242 null ] >>
endobj
8376 0 obj
-<< /Type /Page /Contents 8377 0 R /Resources 8375 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8343 0 R /XYZ 81.145 381.283 null ] >>
+endobj
+8377 0 obj
+<< /D [ 8343 0 R /XYZ 81.145 370.324 null ] >>
endobj
8378 0 obj
-<< /D [ 8376 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 327.484 null ] >>
endobj
8379 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 723.127 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 316.525 null ] >>
endobj
8380 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 712.168 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 227.858 null ] >>
endobj
8381 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 701.209 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 216.899 null ] >>
endobj
8382 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 690.25 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 205.94 null ] >>
endobj
8383 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 679.291 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 194.981 null ] >>
endobj
8384 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 668.333 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 184.022 null ] >>
endobj
8385 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 657.374 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 173.063 null ] >>
endobj
8386 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 646.415 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 162.105 null ] >>
endobj
8387 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 635.456 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 151.146 null ] >>
endobj
8388 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 624.497 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 140.187 null ] >>
endobj
8389 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 613.538 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 129.228 null ] >>
endobj
8390 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 602.579 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 118.269 null ] >>
endobj
8391 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 591.62 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 107.31 null ] >>
endobj
8392 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 580.661 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 96.351 null ] >>
endobj
8393 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 569.702 null ] >>
+<< /D [ 8343 0 R /XYZ 81.145 85.392 null ] >>
endobj
-8394 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 558.744 null ] >>
-endobj
-8395 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 547.785 null ] >>
+8342 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8396 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 536.826 null ] >>
+<< /Filter /FlateDecode /Length 2253 >>
+stream
+x[ˎ:+aȪ fݻάçDReYTw;w-GbaQ_/^¿|}vB;pyɋ8#tkF]sw) I>4 '1Z Eٍ4DR( (zL: 5@@p ߍ^¸[Uʔo~ ׌qUg|ƈYZ-Y.?5P!ދwe:>-=9ɈcM"dsM=Rt.] Mf^fDQ1Ow-#+; N`,#} ı,b'߲ bjefMratBi.2='J/ɬx:e]G\|tBGɳS@X
+BBk=
+Jk@,1 o-n]`-QC=%U{`맲ȀwYD+A8M0L!'$/Fy/޷C`a%fՁJU 5VXG@Q9D<= aEts"HCj{G
+cH=oZ6A0H? N k3Hq"ZaV~l?JJNA8$sL&!'Ҩdf
+n#ق:=+ q~h,jǚ:*6bFV/R:qb]%X\󤨚vFu-(z){Jh3Nt
+I8E]r !(Cs&q$HbFz,`$
+~;htgcto _<܍'
+1D{5<ܳ>qkprv_,Gs!#%MXY}H촵cZ EͱPhlx(@TIC e{SkA<W/Hnd2yXA5'>i3
+endstream
+endobj
+8395 0 obj
+<< /Type /Page /Contents 8396 0 R /Resources 8394 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8397 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 525.867 null ] >>
+<< /D [ 8395 0 R /XYZ 78.37 808.885 null ] >>
endobj
8398 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 514.908 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 768.829 null ] >>
endobj
8399 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 503.949 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 757.87 null ] >>
endobj
8400 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 492.99 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 746.912 null ] >>
endobj
8401 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 482.031 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 735.953 null ] >>
endobj
8402 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 471.072 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 724.994 null ] >>
endobj
8403 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 460.113 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 714.035 null ] >>
endobj
8404 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 449.155 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 703.076 null ] >>
endobj
8405 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 438.196 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 692.117 null ] >>
endobj
8406 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 427.237 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 681.158 null ] >>
endobj
8407 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 416.278 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 670.199 null ] >>
endobj
8408 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 405.319 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 659.24 null ] >>
endobj
8409 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 394.36 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 648.281 null ] >>
endobj
8410 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 383.401 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 637.322 null ] >>
endobj
8411 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 372.442 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 626.364 null ] >>
endobj
8412 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 361.483 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 615.405 null ] >>
endobj
8413 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 350.524 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 604.446 null ] >>
endobj
8414 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 339.565 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 593.487 null ] >>
endobj
8415 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 328.607 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 582.528 null ] >>
endobj
8416 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 317.648 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 571.569 null ] >>
endobj
8417 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 306.689 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 560.61 null ] >>
endobj
8418 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 295.73 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 549.651 null ] >>
endobj
8419 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 284.771 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 490.872 null ] >>
endobj
8420 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 479.913 null ] >>
endobj
8421 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 451.021 null ] >>
endobj
8422 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 440.062 null ] >>
endobj
8423 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 429.103 null ] >>
endobj
8424 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 418.144 null ] >>
endobj
8425 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 377.298 null ] >>
endobj
8426 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 361.357 null ] >>
endobj
8427 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 350.398 null ] >>
endobj
8428 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 339.44 null ] >>
endobj
8429 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 328.481 null ] >>
endobj
8430 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 317.522 null ] >>
endobj
8431 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 306.563 null ] >>
endobj
8432 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 295.604 null ] >>
endobj
8433 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 284.645 null ] >>
endobj
8434 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 273.686 null ] >>
endobj
8435 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 262.727 null ] >>
endobj
8436 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-8375 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F76 318 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8395 0 R /XYZ 81.145 251.768 null ] >>
endobj
-8439 0 obj
-<< /Filter /FlateDecode /Length 2470 >>
-stream
-xڵZ[o8~0Їu ˻Hc;(bb CGS[r$4=)t;}dsxnTh1£_ኄxݧ8Ҋ0:}C`HlI$q}zL(F1嬨TѪIedxFR`D0$ivfa0~Si[tӮrt=Yֳ/S3\QF3/
-K%D|͗bz[77|^T;RAJ"{<kc^n*L]s.q!J'.҈耸sSoʦ@5cLceUveܡLNj<,\nv]̺˼iG0nzc*ESTQdf>
-km/
-;XOʡ|G&g$A0nY41Bb
-#۪a:nmZ ',T5 1G,' iFb+h"~2CLe\h2֫HʀNw
--
- yMe&]5qy p{bxh] 6,8:yf)spi-MkK.>jhxk1g8`J]CٹdSqϘJGR~EZ0j|cڞJTih"aq qw:NrȼqT>ذ_ KC#fePi!:ֶfmV{ƕ}z\oz0J0v&>}pŒC{ )]Ճ?z83P29țbR]UCz^~a<aPVd8Kj<#tЃIt%ԶUP~8S!"QM.3Mtڷ}~~G"D짡 ( ߢ!iBS$a!H#rslc˗OSgmAXUBty(ea'L#Cڟ.oSh}&Qe*!0֞ω$Ei|u,:
-dY'D'ۆh6 S_˧IFA{
-rb.AO8X]9Vմ&GID6$F@15)IO!e.ODY*g*(λp㹫e,gwOjGO6 dc)M=De#>1ev&;J8(@U]"AωݔOu:U=o?V"J>S!:}mb +
-endstream
+8437 0 obj
+<< /D [ 8395 0 R /XYZ 81.145 240.809 null ] >>
endobj
8438 0 obj
-<< /Type /Page /Contents 8439 0 R /Resources 8437 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8395 0 R /XYZ 81.145 229.851 null ] >>
+endobj
+8439 0 obj
+<< /D [ 8395 0 R /XYZ 81.145 218.892 null ] >>
endobj
8440 0 obj
-<< /D [ 8438 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 207.933 null ] >>
endobj
8441 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 196.974 null ] >>
endobj
8442 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 186.015 null ] >>
endobj
8443 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 175.056 null ] >>
endobj
8444 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 164.097 null ] >>
endobj
8445 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 153.138 null ] >>
endobj
8446 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 142.179 null ] >>
endobj
8447 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 131.22 null ] >>
endobj
8448 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 120.261 null ] >>
endobj
8449 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 109.303 null ] >>
endobj
8450 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 98.344 null ] >>
endobj
8451 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 659.243 null ] >>
-endobj
-8452 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8395 0 R /XYZ 81.145 87.385 null ] >>
endobj
-8453 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 637.325 null ] >>
+8394 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8454 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 626.366 null ] >>
+<< /Filter /FlateDecode /Length 1901 >>
+stream
+x[M6 CjL{ڞ%!m uisp쵥G
+>/h2t@Hp>&(=uJ`p#&ILEа,E88Zg.wԥ8I#'o8#J,ILڅ;aR)f%{&lɰPj^;l27XF#(ް+Q@mnlXZ7l5Kwk1?#Zpر^x"cT<)LygXD,4iRe)DII:xxx"<
+OuH}/];Z,hp6 'DvoLaQܴN雔Zf8-.#2lTS;vՐRAf>!U[!sԼ9H4W.^VHL.|o}ZUv^VZI([C=EӋYpVaܫZKP
+0&`h\;}ZZzk;yaQȠ{pmhAHiG٫LsX<3ya5*q׹H\ Wl A(FBVs%9JQAǤ&87t!clL4K@\~sI/OuH?BֱFI3u- (~SHG83r SEuH|*hGTx:yØ OtH&QG
+efЍ&#8?d#P{#ZDaU#O[tH|ZiG~H6,^n}X/GR|-l>|
+J&)nQET*(zrw]?8I%vǾ$!H[?Deo VH=1y=O'宊V 2^"mB/dP)'/F͗4VuH|%Ɖm
+Twt0yTZ c SrZr` @
+e+|CSQ
+"|Czcl$?H^bJR^ @32sT9)`p`JW!qkR1o<n=5ؼM N)!1L/!{$
+F4adJ 짤{tЉa2۫ud8'?)Bk5 rqJ= NtH6?f
+'h:0e_z:jfe)fǍP;L/Lxo[ [cw|,vC'-EX6wsM:?O
+endstream
+endobj
+8453 0 obj
+<< /Type /Page /Contents 8454 0 R /Resources 8452 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8455 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 8453 0 R /XYZ 78.37 808.885 null ] >>
endobj
8456 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 742.926 null ] >>
endobj
8457 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 731.968 null ] >>
endobj
8458 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 721.009 null ] >>
endobj
8459 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 710.05 null ] >>
endobj
8460 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 679.166 null ] >>
endobj
8461 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 668.207 null ] >>
endobj
8462 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 657.248 null ] >>
endobj
8463 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 646.289 null ] >>
endobj
8464 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 635.33 null ] >>
endobj
8465 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 624.371 null ] >>
endobj
8466 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 613.412 null ] >>
endobj
8467 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 582.528 null ] >>
endobj
8468 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 571.569 null ] >>
endobj
8469 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 560.61 null ] >>
endobj
8470 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 549.651 null ] >>
endobj
8471 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 538.692 null ] >>
endobj
8472 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 527.733 null ] >>
endobj
8473 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 516.775 null ] >>
endobj
8474 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 500.834 null ] >>
endobj
8475 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 489.875 null ] >>
endobj
8476 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 478.917 null ] >>
endobj
8477 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 467.958 null ] >>
endobj
8478 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 456.999 null ] >>
endobj
8479 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 446.04 null ] >>
endobj
8480 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 435.081 null ] >>
endobj
8481 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 424.122 null ] >>
endobj
8482 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 413.163 null ] >>
endobj
8483 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 402.204 null ] >>
endobj
8484 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 386.264 null ] >>
endobj
8485 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 375.305 null ] >>
endobj
8486 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 364.346 null ] >>
endobj
8487 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 353.387 null ] >>
endobj
8488 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 342.428 null ] >>
endobj
-8437 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8491 0 obj
-<< /Filter /FlateDecode /Length 2139 >>
-stream
-xZ]o8}ϯ&,Ie1``` 2]M;Beɕ$ݠ{)ʔ,Lzg^ zw8J4atv P LK$)Idv>W&o;4Jdz &
-5 ϗWY\ :r_)ǯmU}-zmC.Agh07#~$19o ™ַЈ%:D{X>T#CO#C9BTx*,bRQ)=GeT0OEִi]=y@ +GD !EUGsx8>c~ęS%ᙨ8&#<3_*:oAWG;ѷ3d9T#ޣ)!v }S>ћbX4ڔZ>duM9h]l_ʝ}y_>xÙIf ٩1 8J/{syp2_UEQ]R5˵+ZTMV.&)>$Z3 Ǽ(l /#jyY
-4!3:6~;mJN%K!ܣɄ.;:ө/ZqoðÏWeD [~|'X#J!ykS6F|gPDI`lGw60ny8ؖ<l%n>p)<+v 06Qmۼ*,8={ֻ9gwJ2E {E4F]p.yLu՚Ek7k>v,{aԏTq"}Yl "3=3u]'/EHJySuT;h"'c2F[*Cf.ocGda6`Qi1a՝MUu&; <UTh#΄I0x/?GGPYT_Yt#F$"xEr$WiQk گ}Bu,/.A@HHI򣥀!2r}iwQ58~l_Y^7weM^.)zvkwzC4%GDyt~1-!Asd~e;k h\`Dpzhz[8wDáB]Uvm37͜mnz[>#Ó8hϸ9^|@0G9
-II8Rct?S"$P8#pt%6>1a )@gݵiAŞZCzil՚:m甁W^J:~K!qKOW3P>]-z6-+oy˜qKMIlw6cIᝩq(ڰt׼A;\gϴr$E]x XCm|J\( ^*d_+WiM7qB]DHKVeP 4X)A. ~W)AJ@o޻8%P8%P*G8%J@@8N t|US
-dޘO;Xl֣->K.QS5yw->Jt_̻LIpy״0, { >|v"%!Q"tɞ=ԒP^08~q?Y߭\9|wiܫEجy_3+ʽoK(8VW`+cc`Z{{}R <pE<[UOi$'#>k~鞕#D!>NU\¬1%
-"VWhX"1OU\jōD 뭗M:Xf3\%rcptϚ#D(Lȵ'r1JT$5ۋb
-endstream
+8489 0 obj
+<< /D [ 8453 0 R /XYZ 81.145 331.469 null ] >>
endobj
8490 0 obj
-<< /Type /Page /Contents 8491 0 R /Resources 8489 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8453 0 R /XYZ 81.145 320.511 null ] >>
+endobj
+8491 0 obj
+<< /D [ 8453 0 R /XYZ 81.145 309.552 null ] >>
endobj
8492 0 obj
-<< /D [ 8490 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 298.593 null ] >>
endobj
8493 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 287.634 null ] >>
endobj
8494 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 276.675 null ] >>
endobj
8495 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 265.716 null ] >>
endobj
8496 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 254.757 null ] >>
endobj
8497 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 243.798 null ] >>
endobj
8498 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 232.839 null ] >>
endobj
8499 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 221.88 null ] >>
endobj
8500 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 210.921 null ] >>
endobj
8501 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 199.963 null ] >>
endobj
8502 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 189.004 null ] >>
endobj
8503 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 178.045 null ] >>
endobj
8504 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 167.086 null ] >>
endobj
8505 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 156.127 null ] >>
endobj
8506 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 145.168 null ] >>
endobj
8507 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 134.209 null ] >>
endobj
8508 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 123.25 null ] >>
endobj
8509 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 112.291 null ] >>
endobj
8510 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 101.332 null ] >>
endobj
8511 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 498.844 null ] >>
-endobj
-8512 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 8453 0 R /XYZ 81.145 90.374 null ] >>
endobj
-8513 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 442.057 null ] >>
+8452 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8514 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 431.098 null ] >>
+<< /Filter /FlateDecode /Length 3015 >>
+stream
+x\KoW,CȎ1 "6&Ah #rhZdՓBw4}ǻݻf 0;fъe{Jp?tߝ^ JqSb@R
+m=RgOz aF
+RfTϢ UN>bMfQo`Qs»9+By(}Fͮ}ԞY(7J0vҷ
+r:`*ΈV ` 4\DUkkiX̊J>tXħdyxMz}ʉk{9*{udt.us wOuHIwt6-1 hx)XcCh>]NT6PzltIL={qYbT0Ttu^N9IF]VTPj3g`2/';ѥ>^2sM|r)uϓ YCRFɂ,&BYqa5A=<F3GCDzu^Cv幍@~S ݉47њMՒ0{4vaZtY13yOChhe$$`V^Jvk}aVHIud
+]
+݃.W\n-tL@ Z^AjNQHT!` U<@ "\n<yQZ}buEKJJ%E<Cl2` u"'+w<E,D_ET oy1WG1Ha,'NǰMHI:OIAo)=Mhz
+z1$ 6 ú<Ƙ<M3%]ş
+l>+/PS ur
+=Z}
+C1 Hj@d由\RLb(q j<b5c=9;LZ_L!Bz<o:0o;TpF,&`08ژ_r,&qYl4QFrb j7ԋ59=k5b672C6
+gS&FtQ(Σ5zwI"
+d]wcB b] {1<Sh;bH6Kͧm7Yԃ
+endstream
+endobj
+8513 0 obj
+<< /Type /Page /Contents 8514 0 R /Resources 8512 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8515 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 8513 0 R /XYZ 78.37 808.885 null ] >>
endobj
8516 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 768.829 null ] >>
endobj
8517 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 757.87 null ] >>
endobj
8518 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 746.912 null ] >>
endobj
8519 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 735.953 null ] >>
endobj
8520 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 724.994 null ] >>
endobj
8521 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 714.035 null ] >>
endobj
8522 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 703.076 null ] >>
endobj
8523 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 692.117 null ] >>
endobj
8524 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 681.158 null ] >>
endobj
8525 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 670.199 null ] >>
endobj
8526 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 639.315 null ] >>
endobj
8527 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 628.356 null ] >>
endobj
8528 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 603.45 null ] >>
endobj
8529 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 592.491 null ] >>
endobj
8530 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 581.532 null ] >>
endobj
8531 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 570.573 null ] >>
endobj
8532 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 559.614 null ] >>
endobj
8533 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 548.655 null ] >>
endobj
8534 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 537.696 null ] >>
endobj
8535 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 526.737 null ] >>
endobj
8536 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 515.778 null ] >>
endobj
8537 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 504.819 null ] >>
endobj
8538 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 493.86 null ] >>
endobj
8539 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 482.902 null ] >>
endobj
8540 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 471.943 null ] >>
endobj
8541 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 214.338 null ] >>
endobj
8542 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 92.368 null ] >>
-endobj
-8489 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8513 0 R /XYZ 81.145 203.379 null ] >>
endobj
-8545 0 obj
-<< /Filter /FlateDecode /Length 1481 >>
-stream
-xZMOH+"H+VZFؑe'X;&[v;C*j.8yC' |>Õ|܈$2'/ XM43Mfc;2ӿ\%NkaC0b_LȦHeݮɩ~|,>iBk.*J僋
-U6 yFLKBȹgP}A ge%BJ+fAgJ85DJ+
-4DS,D*-VQ'Bm[荹q#֌q_]/8$PcֻS&7) hqJ_ ONyxH88H|d&7h?BEMmy%k@' 1*AF"ݓMϰ#v-U&oϻ ё9'lOҥj}E^.'a jlҼV4yd7!-'B:#ϗL+Bm KF"d
-g:
-endstream
+8543 0 obj
+<< /D [ 8513 0 R /XYZ 81.145 192.42 null ] >>
endobj
8544 0 obj
-<< /Type /Page /Contents 8545 0 R /Resources 8543 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8513 0 R /XYZ 81.145 181.461 null ] >>
+endobj
+8545 0 obj
+<< /D [ 8513 0 R /XYZ 81.145 170.503 null ] >>
endobj
8546 0 obj
-<< /D [ 8544 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 159.544 null ] >>
endobj
8547 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 148.585 null ] >>
endobj
8548 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 137.626 null ] >>
endobj
8549 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 126.667 null ] >>
endobj
8550 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 115.708 null ] >>
endobj
8551 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 724.996 null ] >>
-endobj
-8552 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8513 0 R /XYZ 81.145 104.749 null ] >>
endobj
-8553 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 703.078 null ] >>
+8512 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8554 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 672.93 null ] >>
+<< /Filter /FlateDecode /Length 2679 >>
+stream
+x[n#;WZW"
+f_m4q,g*BOosF\$sV 6gs 8V aMƫP/v)
+` %5EsSD΄
+1WhA(oI^ŀJ>'fY\0҆|_(( 1K#y{WsFnEۧZo֋+Pj? 4P4;Fgԏ@%NVG (X1Ihˤ#ɑ8%cӢ2mZi]&#vn2tOI'(ՠ[S(S f䣤E?9d .j&FIOp$rl)Y/:V4 Jf%g/L; EZYe3)a {VF'IO E;fC&Ay$ԓ򳰪>Dt$)V9%5R6%ojmx17L4W}"]MdylrC C D|f)nqTn<yl2=k?bGa]}ρ*JkTc <]{BfO ^
+k$)[:F&LvX] &G'Ţ~DD܈2YHNA0DEk$ k>=aUW16,FD_fnq'TM<BxCn..a&F5G[&qxFfm|֎5w,w LGX籸P} -gҒ"W?I8 ɬPpEOA
+k$ЭPc(L/d }^gѯ"E~4L]Fe͍a pTJx%M%5%r6~.,}8 c_
+(u IʃbzPr gIs=>ۯŗ7* =Eվv(o<T[tum2F~B1RY8(i}(Yaȡإ ?Izb(V0,ikp~t" Z3Ȃ"^;Tozg˻j5w)~ìwzoGX ҜA88+Z3(n(ѯ8v VH_*a'Cil<?INL dj+;e<LriT[
+#j8n2??a; C_geңG
+&H9~*$ij)ś$P3wϳ}ywNL %jgR#iĸNf\IusOp2ȜE$L=vy;2+8
+ߺ8kI\1$k+@dcjOɢQPStfh~Wp /3!eλ
+endstream
+endobj
+8553 0 obj
+<< /Type /Page /Contents 8554 0 R /Resources 8552 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8555 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 661.971 null ] >>
+<< /D [ 8553 0 R /XYZ 78.37 808.885 null ] >>
endobj
8556 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 651.013 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 730.971 null ] >>
endobj
8557 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 640.054 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 720.012 null ] >>
endobj
8558 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 629.095 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 709.053 null ] >>
endobj
8559 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 618.136 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 698.095 null ] >>
endobj
8560 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 607.177 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 687.136 null ] >>
endobj
8561 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 591.728 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 676.177 null ] >>
endobj
8562 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 580.769 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 665.218 null ] >>
endobj
8563 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 569.81 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 654.259 null ] >>
endobj
8564 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 558.851 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 643.3 null ] >>
endobj
8565 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 547.892 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 632.341 null ] >>
endobj
8566 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 536.933 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 621.382 null ] >>
endobj
8567 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 525.974 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 610.423 null ] >>
endobj
8568 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 515.015 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 599.464 null ] >>
endobj
8569 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 504.056 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 588.506 null ] >>
endobj
8570 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 493.097 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 577.547 null ] >>
endobj
8571 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 477.648 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 504.819 null ] >>
endobj
8572 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 466.689 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 493.86 null ] >>
endobj
8573 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 455.73 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 482.902 null ] >>
endobj
8574 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 444.771 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 440.062 null ] >>
endobj
8575 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 433.812 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 429.103 null ] >>
endobj
8576 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 422.853 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 388.256 null ] >>
endobj
8577 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 411.895 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 377.298 null ] >>
endobj
8578 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 400.936 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 366.339 null ] >>
endobj
8579 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 389.977 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 355.38 null ] >>
endobj
8580 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 379.018 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 344.421 null ] >>
endobj
8581 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 368.059 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 333.462 null ] >>
endobj
8582 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 357.1 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 322.503 null ] >>
endobj
8583 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 346.141 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 311.544 null ] >>
endobj
8584 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 335.182 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 300.585 null ] >>
endobj
8585 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 324.223 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 289.626 null ] >>
endobj
8586 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 313.264 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 248.78 null ] >>
endobj
8587 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 302.306 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 237.821 null ] >>
endobj
8588 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 291.347 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 226.862 null ] >>
endobj
8589 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 280.388 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 215.903 null ] >>
endobj
8590 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 269.429 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 204.944 null ] >>
endobj
8591 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 258.47 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 193.985 null ] >>
endobj
8592 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 247.511 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 183.026 null ] >>
endobj
8593 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 236.552 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 172.067 null ] >>
endobj
8594 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 225.593 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 161.108 null ] >>
endobj
8595 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 214.634 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 150.149 null ] >>
endobj
8596 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 203.675 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 139.19 null ] >>
endobj
8597 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 192.716 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 128.232 null ] >>
endobj
8598 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 181.758 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 117.273 null ] >>
endobj
8599 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 106.314 null ] >>
endobj
8600 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 95.355 null ] >>
endobj
8601 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 144.39 null ] >>
-endobj
-8602 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8553 0 R /XYZ 81.145 84.396 null ] >>
endobj
-8603 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 122.473 null ] >>
+8552 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8604 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 111.514 null ] >>
+<< /Filter /FlateDecode /Length 2061 >>
+stream
+x[n8+&Y\ @9\gN*TbNjmjaUO Lǿ¿^~^8)
+ňZBhJvqsܳ</a0N1P~TG[*QM PfH@`3)8Hi8Klנx^u1hd ELYNFv40dVayum}ޜd90
+s]gQ^(rH`>P3P*.*TZ"۶${$; ̆k@e刢mJ_h.qJ?'IIg% @I{ 7E 4gңlAXJn-PG? 阀/*m=RO[kX5s ~
+vv_.m؛Qck*dk0U+@)a1QfKRH
+u
+0:wRu@6Vk-Ԭ HSjEN5WT'+7)* 1Q( B+Ho"*Yv5rM2H@EQ4QzL)z̥K'k(-1QTȒ9lf;9H"=j'HѳjČ^0. M'/5Ť3?
+@@Jnp ֕ϨS9f¸]Ջ*$z!H[QQ)=
+aV[dauQjvigkzX,S
+e#hz * 5I-g er^xQ+`5is@:Pr4 Eըs 87 66W:,dY˳F5G`n[̨At(?EAf]M&o!1 OR5jf_/
+endstream
+endobj
+8603 0 obj
+<< /Type /Page /Contents 8604 0 R /Resources 8602 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8605 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8603 0 R /XYZ 78.37 808.885 null ] >>
endobj
8606 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 768.829 null ] >>
endobj
8607 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 757.87 null ] >>
endobj
-8543 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8610 0 obj
-<< /Filter /FlateDecode /Length 2899 >>
-stream
-x\[oܺ~P]]F
-y 5 J9 8.w<(I^ w78R`! sYt\dl5wis:g3<+Tio>,S"fESx${<.ʬ9,! HFt:"Wy&IT_wAĢڴ]uuP@dܟڴn6,W8_}?,%
-U2+y$skY}c<G}YW
-(0Da̍W7uoPơ|[LUuղ}o6^h[D@Y?Zmw;س $i&zVKH0:>׋T s$!W'
-&
-8pCy#HGܳy: Xq*y410[A=yOm뚟ژFwi c(ќ".Q˟dhJMb9pMSwjxC|cB2("*9.[yG|pʠ G$!EAOa`^lnc(&?&b`= >ǔ9끰: tgPV%0QϒC6# PNއQXr]}'ah>cH'tkj
-puQa.1&!
-a#g.[Wo;nI횂 ?zSu nY[ >Œ,gE6.C-ӧIQcr&owʶXߢf24`F)$$ʙ@S̢FE'X t o32$׵Cbc
-Ji2BɧVc
-]#"L6BC+1kN
-(<KV~L’c<9$fbyޓ<wx-_Qc1Ls.!XgsÉ_ZQ/ Hl(~$$_7 =o邢;ۀ,GӨܫ+euJ5Ke{yrUC2An
-uTp1A\Ir[5TY^׽wup fSaҹܶv]ո [I^4H^2[Dٹ[ݮni \a܇҇v{7Ctu)_q:V'$L\;z|prDw+;uq1_I¶Hy5w8脅Ird%9'~ )Ifrt'j9H?&C'k.3J*FłiZ|(tcdg:c
-I6g-7CXq^5Y,UpҊ*c;ÒE@nãq; dSΤk$̝n#f`,G-aޗJ@w| z^zfx,ZogFB:.0XT"QL]ah}soqw, {C q?>vˤa6$"lC_sz׾~,\=XPޓ! Qp'=%Ntr!H>
-endstream
+8608 0 obj
+<< /D [ 8603 0 R /XYZ 81.145 746.912 null ] >>
endobj
8609 0 obj
-<< /Type /Page /Contents 8610 0 R /Resources 8608 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8603 0 R /XYZ 81.145 735.953 null ] >>
+endobj
+8610 0 obj
+<< /D [ 8603 0 R /XYZ 81.145 724.994 null ] >>
endobj
8611 0 obj
-<< /D [ 8609 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 714.035 null ] >>
endobj
8612 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 703.076 null ] >>
endobj
8613 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 692.117 null ] >>
endobj
8614 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 681.158 null ] >>
endobj
8615 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 670.199 null ] >>
endobj
8616 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 659.24 null ] >>
endobj
8617 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 648.281 null ] >>
endobj
8618 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 637.322 null ] >>
endobj
8619 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 590.939 null ] >>
endobj
8620 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 579.98 null ] >>
endobj
8621 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 569.021 null ] >>
endobj
8622 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 558.062 null ] >>
endobj
8623 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 547.103 null ] >>
endobj
8624 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 536.144 null ] >>
endobj
8625 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 525.186 null ] >>
endobj
8626 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 514.227 null ] >>
endobj
8627 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 342.02 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 503.268 null ] >>
endobj
8628 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 331.061 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 492.309 null ] >>
endobj
8629 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 320.102 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 481.35 null ] >>
endobj
8630 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 309.143 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 470.391 null ] >>
endobj
8631 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 298.184 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 459.432 null ] >>
endobj
8632 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 287.225 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 448.473 null ] >>
endobj
8633 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 276.266 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 437.514 null ] >>
endobj
8634 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 265.307 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 407.402 null ] >>
endobj
8635 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 254.348 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 396.443 null ] >>
endobj
8636 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 243.39 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 385.484 null ] >>
endobj
8637 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 232.431 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 374.525 null ] >>
endobj
8638 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 179.629 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 363.566 null ] >>
endobj
8639 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 168.67 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 352.607 null ] >>
endobj
8640 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 157.711 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 341.648 null ] >>
endobj
8641 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 146.752 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 330.689 null ] >>
endobj
8642 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 135.793 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 319.73 null ] >>
endobj
8643 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 124.834 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 308.772 null ] >>
endobj
8644 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 113.875 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 297.813 null ] >>
endobj
8645 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 102.916 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 286.854 null ] >>
endobj
8646 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 91.957 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 275.895 null ] >>
endobj
8647 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 80.998 null ] >>
-endobj
-8608 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8603 0 R /XYZ 81.145 264.936 null ] >>
endobj
-8650 0 obj
-<< /Filter /FlateDecode /Length 2275 >>
-stream
-xZ[o8~0`W 0@ yX؇*r,Ԗ\KNZ"TL[;m_Ooϟͻ-8R0]! /B('Ţ 9YnfE^:W T3)#WmwWkf`M)3%/0F?]\
-*E˶~3gzf}*O$-dlKDDr?u84J&TcK| V]m~wMB<
-b1쌽.h=d9/hp-dVr0*7LqmK*ډmz\7~ڽi7ޗ*f?7v:۲; 36lF`qM;|_}S>Drĸ>V
-jy{z%PAzr$́0Hcyz**
-BwiJG`
-rNs{EINybT"X6wXkC)o-MJ)yl
-q499B`퓻faY ]5lwԒni:@&v[g#aF5A= CEs LAp=ށl쓲mq]]F
-Ml_W . b~+W,Cg-imQ>^c5%Ӹ:!|DC8h~q'HJG߰hRRo2w.mQCVHIbimx4ӺnzHA&ISEѭΛL]r/'_ɂN`({` ɜΕ'R?SZDO}I/u^ݴ׳Ĵ=lR=ʡWILќt ԙ$l,fhwN mEL я&%ν (M1D Ku3[Dw_;C3*(D12lI BMO*#9gK>OE<,f:[LmIWF˸{U'O2@wR,c{fqu 벷ClJ}ux|OZȩ@E?<q 0,^7%9~nGc?q*-+hvL%(W_9%VoS"`1G;O;{
-79U(&%<ID1UvWAܴ/Gqx
--2ANPHL P&U!1'àWm8O@BN g j.(V`!:US[Iڎ/઻i;<=1k\rJQi4m!,!๟ K1F,<moWI7F$U]?2x9,7%Im Il
-̕wCޢH!HR#%I$!RULGh1L <hbxAct_1#\x. $mb!M¿!>4e ֋L߮)Dx i<B'MA`X4}ǖ TI:}\ I _3(7:gg&r"trv&
-i{BRNKiX.@}] KC26(̐>R .T|SMA!%ny8לHr?fN $Fp. ?tͿV
-endstream
+8648 0 obj
+<< /D [ 8603 0 R /XYZ 81.145 253.977 null ] >>
endobj
8649 0 obj
-<< /Type /Page /Contents 8650 0 R /Resources 8648 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8603 0 R /XYZ 81.145 243.018 null ] >>
+endobj
+8650 0 obj
+<< /D [ 8603 0 R /XYZ 81.145 232.059 null ] >>
endobj
8651 0 obj
-<< /D [ 8649 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 221.1 null ] >>
endobj
8652 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 210.141 null ] >>
endobj
8653 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 199.183 null ] >>
endobj
8654 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 188.224 null ] >>
endobj
8655 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 177.265 null ] >>
endobj
8656 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 166.306 null ] >>
endobj
8657 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 155.347 null ] >>
endobj
8658 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 144.388 null ] >>
endobj
8659 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 133.429 null ] >>
endobj
8660 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 122.47 null ] >>
endobj
8661 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 111.511 null ] >>
endobj
8662 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 100.552 null ] >>
endobj
8663 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 89.593 null ] >>
endobj
8664 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 513.788 null ] >>
-endobj
-8665 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 8603 0 R /XYZ 81.145 78.635 null ] >>
endobj
-8666 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 491.87 null ] >>
+8602 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8667 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 480.911 null ] >>
+<< /Filter /FlateDecode /Length 1934 >>
+stream
+xZn6 ++Q$s+mWm%Y-3c:]8 IqDI_~U ^s N9.|uAZG~% [ cG$piBZ (DHCDS:|N&!C:zj2h9Qm<&jtJ')YBcHYΧYp6߃kU`j_PlgxGh`o2YQz`cuT|u?EBt’)p1HْPlL:OZ*[. :a ||] =ŃXM|s_GT#g.GgP>#oVP,ҧ|Ȥv¿
+,X>]OXI.+VƁBk8miCAٔnAFN8"N5cYQV`*/@%l7M\N>~X%~Qok1se+S| Q ٸh6
+^{gutZ!v:핳 s$ӔȔ |3HP=EemLr1ϛM,z M`=Dh@*<<G@:=P?kcm"7.^к#$2K?mѶ_nͷ1&+q'gUлQ|G**̄ <
+:B3 H4hT(p@zR9ހtj&&tD9+jc@IMJh)=RDBx9#z `A0e<'6Ơ4zEIE.++16wm3S"Vz^2 v:R\dѰ!QU LxWtXNVYNV(DD$pO~U%VWNb{E29 j)oW.,Ać;2'}R) " Hq^tl)s֝HNR߲]lLZR6'Ȋ2{$9E)bSp?7K(G'5H'F1}1z=^+8FV9G+hGb٦)'Ont
+mW)N3/"4Mȩ .*q ek<0g{fDȻd庽߲Bʪo(̐2z`BsI@cFFk*G Lʰ&s`܏xě52ﹶsvayoE%snr{)`ot?@~`'>ьԕț1+x_sXצD=>:kI
+"SЀ-==ebʶQ@^BsS~hg淒K;) 0e2=e1O]=S5ZnN M
+endstream
+endobj
+8666 0 obj
+<< /Type /Page /Contents 8667 0 R /Resources 8665 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8225 0 R >>
endobj
8668 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 8666 0 R /XYZ 78.37 808.885 null ] >>
endobj
8669 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 768.829 null ] >>
endobj
8670 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 757.87 null ] >>
endobj
8671 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 437.076 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 746.912 null ] >>
endobj
8672 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 735.953 null ] >>
endobj
8673 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 724.994 null ] >>
endobj
8674 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 714.035 null ] >>
endobj
8675 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 703.076 null ] >>
endobj
8676 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 692.117 null ] >>
endobj
8677 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 681.158 null ] >>
endobj
8678 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 670.199 null ] >>
endobj
8679 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 659.24 null ] >>
endobj
8680 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 648.281 null ] >>
endobj
8681 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 637.322 null ] >>
endobj
8682 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 626.364 null ] >>
endobj
8683 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 615.405 null ] >>
endobj
8684 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 604.446 null ] >>
endobj
8685 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 593.487 null ] >>
endobj
8686 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 582.528 null ] >>
endobj
8687 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 571.569 null ] >>
endobj
8688 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 560.61 null ] >>
endobj
8689 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 549.651 null ] >>
endobj
8690 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 538.692 null ] >>
endobj
8691 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 527.733 null ] >>
endobj
8692 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 516.775 null ] >>
endobj
8693 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 505.816 null ] >>
endobj
8694 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 494.857 null ] >>
endobj
8695 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 483.898 null ] >>
endobj
8696 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 472.939 null ] >>
endobj
8697 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 461.98 null ] >>
endobj
8698 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 451.021 null ] >>
endobj
8699 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 100.339 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 440.062 null ] >>
endobj
8700 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 89.38 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 429.103 null ] >>
endobj
-8648 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8703 0 obj
-<< /Filter /FlateDecode /Length 1799 >>
-stream
-xڽZKo6WPh)h,Þ|bˉ[r$9nzPz^g}bFI%>#2R15R ,h5c=2}ڼYiRm׏yx6]9'SǫOH3xS6ϊ)/)z<jҾO1s71b@vیZd*)ӿ "X6^eK7c"D#fb'b^Zd*eY7qSF63㍳8֨?qRviT~2%,ٵj(,\;cjT*8o*}. :{#A
-F#ڧY.@]rީZ!gQk9"tKHw6-ZBܸ9]Z8E%>_q[EMZr%]'N
-ĴO]>"t[=ֵ,BIGkwx %^ ov|W]b3\Qr̘3ĥW|aC4^@^慼 6^m/
-w=ÝiGR_1H/l{˄݂E讆V1{;aZ#_}3.pHT&`5B|ȋYt@$4!ڛiܕ;`6OAF*De$#kn)/e?mml6c}6"1l#<1j;eӆ$?BRJ6fYt?v< n¶F\")0B m}b to!wSZP.`q |`;Pe^ ġ9-ԈPߖSeDs/z>PW^R> W`R")D} Ё
-yrbtyQQaB4<<w'LS^ex1z~ݬAhA`vq%Q~Ոͯby fa`U7"t϶pyr<T8K"\8 BByiV
-F>Dݯdk F%
-?Q@îB[mQiVs+}fkvb!#) C
-endstream
+8701 0 obj
+<< /D [ 8666 0 R /XYZ 81.145 418.144 null ] >>
endobj
8702 0 obj
-<< /Type /Page /Contents 8703 0 R /Resources 8701 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8666 0 R /XYZ 81.145 407.186 null ] >>
+endobj
+8703 0 obj
+<< /D [ 8666 0 R /XYZ 81.145 396.227 null ] >>
endobj
8704 0 obj
-<< /D [ 8702 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 385.268 null ] >>
endobj
8705 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 743.205 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 374.309 null ] >>
endobj
8706 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 732.246 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 363.35 null ] >>
endobj
8707 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 721.287 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 352.391 null ] >>
endobj
8708 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 710.328 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 341.432 null ] >>
endobj
8709 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 699.369 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 330.473 null ] >>
endobj
8710 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 688.41 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 319.514 null ] >>
endobj
8711 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 677.452 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 308.555 null ] >>
endobj
8712 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 666.493 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 297.596 null ] >>
endobj
8713 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 655.534 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 286.638 null ] >>
endobj
8714 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 644.575 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 275.679 null ] >>
endobj
8715 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 633.616 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 264.72 null ] >>
endobj
8716 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 622.657 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 253.761 null ] >>
endobj
8717 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 611.698 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 222.877 null ] >>
endobj
8718 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 600.739 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 211.918 null ] >>
endobj
8719 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 589.78 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 200.959 null ] >>
endobj
8720 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 172.067 null ] >>
endobj
8721 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 161.108 null ] >>
endobj
8722 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 150.149 null ] >>
endobj
8723 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 139.19 null ] >>
endobj
8724 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 128.232 null ] >>
endobj
8725 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 117.273 null ] >>
endobj
8726 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 106.314 null ] >>
endobj
8727 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 95.355 null ] >>
endobj
8728 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 8666 0 R /XYZ 81.145 84.396 null ] >>
endobj
-8729 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 462.199 null ] >>
-endobj
-8730 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 451.24 null ] >>
+8665 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8731 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 440.281 null ] >>
+<< /Filter /FlateDecode /Length 2196 >>
+stream
+x[Ko6WK _@`9-HlIhdY4COI֣,t~{rD;pzIIF5JHNoxP ˟o/_ƞƠ)k(jPXR`EGs|s ^J-C77 :oǼ{ FEJX_ ] \~~[#jB2jz9OXz-86!Z#}
+[4pB9bYX"56RD^U3fm-H##XaFg1=<0stz1ol5^ 5@cvuHb(#QٓodF&ߑ@:G~ȿfy$"Z-9Ig1<iw{6:`)Kh c@* SCbIgQi[W:!VRF%R}e\ZV#C8)_5*SiAh%'uZoQM!s"q%;bx}H
+]Gqެ.E'd#e4?,tH%.`^{ƱLt8r{vSԉfɱ7=&֥ϦrcEk\<׮\ǤtЭڔTz1ݫ'_5_`H"ed(Cj'jm 
+_=Vy,!ce+Cic5@l|W|7R頭rb$zO)c5
+Lh>|+Xsoq}޿P)QO%˅I~(C(dC`~"~H#~0\LE'ţЦQ<hN#AB4Op!)\=-Pc% pXy<a! R(cN$_ ӿ/
+endstream
+endobj
+8730 0 obj
+<< /Type /Page /Contents 8731 0 R /Resources 8729 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
8732 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 429.322 null ] >>
+<< /D [ 8730 0 R /XYZ 78.37 808.885 null ] >>
endobj
8733 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 418.363 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 768.829 null ] >>
endobj
8734 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 407.404 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 757.87 null ] >>
endobj
8735 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 746.912 null ] >>
endobj
8736 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 385.486 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 735.953 null ] >>
endobj
8737 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 374.527 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 724.994 null ] >>
endobj
8738 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 714.035 null ] >>
endobj
8739 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 703.076 null ] >>
endobj
8740 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 692.117 null ] >>
endobj
8741 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 681.158 null ] >>
endobj
8742 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 670.199 null ] >>
endobj
8743 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 659.24 null ] >>
endobj
8744 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 648.281 null ] >>
endobj
8745 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 637.322 null ] >>
endobj
8746 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 626.364 null ] >>
endobj
8747 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 615.405 null ] >>
endobj
8748 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 604.446 null ] >>
endobj
8749 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 593.487 null ] >>
endobj
8750 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 582.528 null ] >>
endobj
8751 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 571.569 null ] >>
endobj
8752 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 518.767 null ] >>
endobj
8753 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 507.808 null ] >>
endobj
8754 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 496.849 null ] >>
endobj
8755 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 485.89 null ] >>
endobj
8756 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 474.931 null ] >>
endobj
8757 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 463.973 null ] >>
endobj
8758 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 453.014 null ] >>
endobj
8759 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 442.055 null ] >>
endobj
8760 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 431.096 null ] >>
endobj
8761 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 420.137 null ] >>
endobj
8762 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 395.23 null ] >>
endobj
8763 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 364.346 null ] >>
endobj
8764 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-8701 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8730 0 R /XYZ 81.145 335.454 null ] >>
endobj
-8767 0 obj
-<< /Filter /FlateDecode /Length 1700 >>
-stream
-xZn8+ tSG&fUY ;, oʒ(RIZ_$6ţ{xl=ó7'xD}s fM]Ngd%D͔$K2Ε_]/idd:5몼% ΊMQL= [*6msvYTǖe~^3p晩Ø 1~$(<VgW`'M*igܨCiUA>
-^ՈhaJ-zTiQj[oUCTx>}%R >LTȽ0FؕYV41< r .}@j7^6=Lv4F**Y=+:YC&i*۳d4a
-qX h;5lwi<W7Ys^=vR=au䟞_%wӈFVC:re !{7
-f)!.h$wFX
-I6ry[> [1 RD{#t\&8Rs`!h/{ΊV>y=0䋭o`"ͩa4CtGhBqf``ˆ?Eym,qBg"t]*lbc
-6Ѫ4Q7a>z4:W\+w~BBHID (N)Y8Eyd]#L?}us,-%lz<1;?!.QDw{r#4\6%1숄A*UۏImԞSe,9*? <r/gH-/f A™Kݣ Vq1] ĕU[~ȖMY 7W4H>B %Ւ&:
-d5.[
-endstream
+8765 0 obj
+<< /D [ 8730 0 R /XYZ 81.145 324.496 null ] >>
endobj
8766 0 obj
-<< /Type /Page /Contents 8767 0 R /Resources 8765 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8730 0 R /XYZ 81.145 313.537 null ] >>
+endobj
+8767 0 obj
+<< /D [ 8730 0 R /XYZ 81.145 302.578 null ] >>
endobj
8768 0 obj
-<< /D [ 8766 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 291.619 null ] >>
endobj
8769 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 262.727 null ] >>
endobj
8770 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 251.768 null ] >>
endobj
8771 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 240.809 null ] >>
endobj
8772 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 229.851 null ] >>
endobj
8773 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 189.004 null ] >>
endobj
8774 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 178.045 null ] >>
endobj
8775 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 167.086 null ] >>
endobj
8776 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 156.127 null ] >>
endobj
8777 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 145.168 null ] >>
endobj
8778 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 134.209 null ] >>
endobj
8779 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 123.25 null ] >>
endobj
8780 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 112.291 null ] >>
endobj
8781 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 101.332 null ] >>
endobj
8782 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 90.374 null ] >>
endobj
8783 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8730 0 R /XYZ 81.145 79.415 null ] >>
endobj
-8784 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 604.448 null ] >>
+8729 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-8785 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 593.489 null ] >>
+8787 0 obj
+<< /Filter /FlateDecode /Length 1767 >>
+stream
+xZ=o6+T&Gr|9R &U)$ٲ,,ujsRӏ'U@pzINjԤ'o*?9AY=55J)B<~}źC
+}TE O/y&UN20[
+Rx\AԠ"5HEEb{1H ҁy!DeP$IRrd(:D.,SIR=*
+&VLZ2 x4Sz:YϫlR47D16ZX$\r޸ a첽H46-R:r/Z_r&~q8/ztoFhZr9@Vs4"
+vBX.D8(_*gUODXjl) *zjli'l~!_K1Iy|v^$u}\4O̓QF3 RWTܾ0 ʺҝ™`rGWru
+^]:vh4-ιNicnH2xt RS& :
+-ߩl\ $l(txN-BV9FVkp+ɭpC0-[81%ǫ\ʀO|$hGG)0l-'kk5M]a)/2DwnO+Du{umnK>nu$jK2~W߿^Ҹ hk' eM9ڷ
+endstream
endobj
8786 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 582.53 null ] >>
-endobj
-8787 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 571.571 null ] >>
+<< /Type /Page /Contents 8787 0 R /Resources 8785 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
8788 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8786 0 R /XYZ 78.37 808.885 null ] >>
endobj
8789 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 768.829 null ] >>
endobj
8790 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 757.87 null ] >>
endobj
8791 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 746.912 null ] >>
endobj
8792 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 735.953 null ] >>
endobj
8793 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 724.994 null ] >>
endobj
8794 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 714.035 null ] >>
endobj
8795 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 703.076 null ] >>
endobj
8796 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 692.117 null ] >>
endobj
8797 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 681.158 null ] >>
endobj
8798 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 670.199 null ] >>
endobj
8799 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 659.24 null ] >>
endobj
8800 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 648.281 null ] >>
endobj
8801 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 637.322 null ] >>
endobj
8802 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 626.364 null ] >>
endobj
8803 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 615.405 null ] >>
endobj
8804 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 604.446 null ] >>
endobj
8805 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 593.487 null ] >>
endobj
8806 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 582.528 null ] >>
endobj
8807 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 571.569 null ] >>
endobj
8808 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 560.61 null ] >>
endobj
8809 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 549.651 null ] >>
endobj
8810 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 538.692 null ] >>
endobj
8811 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 527.733 null ] >>
endobj
8812 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 516.775 null ] >>
endobj
8813 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 505.816 null ] >>
endobj
8814 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 494.857 null ] >>
endobj
8815 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 483.898 null ] >>
endobj
8816 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 472.939 null ] >>
endobj
8817 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 461.98 null ] >>
endobj
8818 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 451.021 null ] >>
endobj
8819 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 435.081 null ] >>
endobj
8820 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 424.122 null ] >>
endobj
8821 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 413.163 null ] >>
endobj
8822 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 402.204 null ] >>
endobj
8823 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 391.245 null ] >>
endobj
8824 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 380.286 null ] >>
endobj
8825 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 369.327 null ] >>
endobj
8826 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 358.369 null ] >>
endobj
8827 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 347.41 null ] >>
endobj
8828 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 336.451 null ] >>
endobj
8829 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 325.492 null ] >>
endobj
8830 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-8765 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8786 0 R /XYZ 81.145 314.533 null ] >>
endobj
-8833 0 obj
-<< /Filter /FlateDecode /Length 1847 >>
-stream
-xڽYo6~_a  ? ('}Cqڭ"y,-}GSH7K|NJ#t~B'ݓ(rIeOf'  XM43Mf7 c9-uV%NkaS03p Y5WSU%<nVj]__ )J呝=6&x&E-G+r46Y(v6o{fy3_Tu=0͢.J6d>nTOڳlz>{/j/re}[&r-Sa&Q"F/)70@h U]m_t/ouy9=嶨tqY0)G+M-Ur7,7DX3[in`pqG@
-IPDMQݬ{jF{h,<TPBbYnKU
-?/J^\0݄_
-1bUj0z0x@aŭ_qWZK"yQqƬ_WD RB!pDR@n˪ul/}w(9Qt<G1EtU]}*aY}zg'QDv
-.EGE?ofo|8 6(_ж#h\@v6GWH߁FϽ^{WϞQ^]UWA93)g٢\Kx65`ϻD5İ)%E3g:c41*fxI/OtF+b\4C -)6F8)i₸Aj̇.~^5م-?f!i^Eqo0>T}67ɁϪ#$m~B|ڽ4Lx琭 N4㑢}ޟU唅+a:
-rP?C!O\#zwbx~{\a(<B&u-y>ZԨ &`\&V _= R7C{
-kҔ }H)4vZ =Ƕhzʊ'ZcL
-YxLk+'ڶƀJ?֘%24c`=
-oex2s|/k}| z{x&ɧ.=)yLL&NCf<Զ5pJ)5 A74&D氄s яȘ Ò!.9K3ʵ9,R/)xwBM \g*_%G EQJy_*"CQJ^p!N.Xxp8;3I9o[cd9JSp<FX-
-){j7X: _"
-Ml^K8QFuj,058N)8=CD)ExS0[ ɟPQ\D@(ce*" Oxt5T2CώI d2COdT57dF/PSdv;YUN#\KgaPFIr8L8T2$% 9K~
-endstream
+8831 0 obj
+<< /D [ 8786 0 R /XYZ 81.145 303.574 null ] >>
endobj
8832 0 obj
-<< /Type /Page /Contents 8833 0 R /Resources 8831 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8786 0 R /XYZ 81.145 292.615 null ] >>
+endobj
+8833 0 obj
+<< /D [ 8786 0 R /XYZ 81.145 281.656 null ] >>
endobj
8834 0 obj
-<< /D [ 8832 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 250.772 null ] >>
endobj
8835 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 234.832 null ] >>
endobj
8836 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 223.873 null ] >>
endobj
8837 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 212.914 null ] >>
endobj
8838 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 201.955 null ] >>
endobj
8839 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 190.996 null ] >>
endobj
8840 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 672.194 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 180.037 null ] >>
endobj
8841 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 169.078 null ] >>
endobj
8842 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 158.119 null ] >>
endobj
8843 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 147.161 null ] >>
endobj
8844 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 116.276 null ] >>
endobj
8845 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 105.318 null ] >>
endobj
8846 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 94.359 null ] >>
endobj
8847 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 595.482 null ] >>
-endobj
-8848 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 8786 0 R /XYZ 81.145 83.4 null ] >>
endobj
-8849 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 573.564 null ] >>
+8785 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8850 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 548.657 null ] >>
+<< /Filter /FlateDecode /Length 2204 >>
+stream
+xZMoW̲]\]
+ɓ:9#t'kF:燔D g߯ƞƠ끔z?#M;k>2EK$2"Y6P)菙b
+FWBp&fN/&86M
+7#LN j"RLG6B-М# ;@.EGY +@dEj%͚r0sJ0ϘȪ3[R1!=0.3e1mq_"k<kGSL_c'=ב^Ȅ$u䫲 3Gӈҏʉk$0E)GWGuS+!-xҘµ<7K1NE2*{⯭PX:RgL1oZH"OƩeQ$^Qb4=@$
+кBMB;Z򲴮LH\ke$ L>G]E+D1dJ.꽄xN;by  c,K[fD⪘\}]Տu{TJ/p\UW4V0"qN09 \Ek Vnf*O]ZING܆irN Xo_'3#}  W쑁EU0!.3 >e?Q%kIG#ҮD?o1zthU:7";"^kdf:
+MLqLXD'EUy>_I{-rebʁJc442QƤܪWŽ,*wAptڹ/ABiqH͖D~/9AԥE KTw50/v5زa{
+T۝ )^Y
+5{B6cz,@*TwӾ5(Қ{SٮGԶ74mMM-7
+endstream
+endobj
+8849 0 obj
+<< /Type /Page /Contents 8850 0 R /Resources 8848 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
8851 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 8849 0 R /XYZ 78.37 808.885 null ] >>
endobj
8852 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 768.829 null ] >>
endobj
8853 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 757.87 null ] >>
endobj
8854 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 746.912 null ] >>
endobj
8855 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 735.953 null ] >>
endobj
8856 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 724.994 null ] >>
endobj
8857 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 416.154 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 714.035 null ] >>
endobj
8858 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 703.076 null ] >>
endobj
8859 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 692.117 null ] >>
endobj
8860 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 681.158 null ] >>
endobj
8861 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 670.199 null ] >>
endobj
8862 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 641.308 null ] >>
endobj
8863 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 630.349 null ] >>
endobj
8864 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 619.39 null ] >>
endobj
8865 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 608.431 null ] >>
endobj
8866 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 597.472 null ] >>
endobj
8867 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 586.513 null ] >>
endobj
8868 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 575.554 null ] >>
endobj
8869 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 564.595 null ] >>
endobj
8870 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 553.636 null ] >>
endobj
8871 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 542.677 null ] >>
endobj
8872 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 531.719 null ] >>
endobj
8873 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 520.76 null ] >>
endobj
8874 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 509.801 null ] >>
endobj
8875 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 498.842 null ] >>
endobj
8876 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 487.883 null ] >>
endobj
8877 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 471.943 null ] >>
endobj
8878 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 460.984 null ] >>
endobj
8879 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 450.025 null ] >>
endobj
8880 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 439.066 null ] >>
endobj
8881 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 384.271 null ] >>
endobj
8882 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 373.313 null ] >>
endobj
8883 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 362.354 null ] >>
endobj
8884 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 351.395 null ] >>
endobj
8885 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 79.417 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 340.436 null ] >>
endobj
-8831 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
+8886 0 obj
+<< /D [ 8849 0 R /XYZ 81.145 329.477 null ] >>
endobj
-8889 0 obj
-<< /Filter /FlateDecode /Length 1570 >>
-stream
-xڽZKo8Wi`@S`9v!8u$WrݢE2E:q{4~3C|oL7gɻɛ3 ż @ aF؁5q#C33cp1X0+L4:R 5=,j}ݞ~onjxLpHHIŀM myb;h(N84LY餅eR`[d[xøBk7L(a/sΤTٴejn.oUYgr9Ç4$6TJd(lkZKгdkX`s24Nxҏ^H@bF,FW;id7h?4*|LEM-=:(8X2pL [& N[f 8P2)l[DHXhmǙa(ÅRt#ɫn|Mc<>MdoD?q ۤ-tU(bv]3VJ}<ZR<`0WiGtyq7n=L.941a}Ql17yWr̦y45jcJNM}(v;o}fQ BJ0$hm'")$ :'+;Rɒ P.($eLЋȫuj>DfٿyUfk2M  i[_C6誴 Et]eNf! 2)K0^-cUGKN4F1v%h(:.r5>Jk|L&^QA=@VxAnm92#DCgX1l%)
-vGfs:@lP+Z(a)Z-TJd)A7ғշb*gU5Z.eK:>V_#MUH͝\oJ|کۇtQj ɵΰYK4ҁ%7(9t[8i=.o6uuڤP̛Xaj]oV!f6kLΰR}P1Ek$L@Ek4Yu˜i-vw݄h?e|䞛~=7aW6Z 0#vGdiOB .T}n4E u#AϒEy}V?AiwL hbtpzZo_ ʪR rsSҤXGqڐt&B c3.'\''?]
-endstream
+8887 0 obj
+<< /D [ 8849 0 R /XYZ 81.145 318.518 null ] >>
endobj
8888 0 obj
-<< /Type /Page /Contents 8889 0 R /Resources 8887 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8849 0 R /XYZ 81.145 307.559 null ] >>
+endobj
+8889 0 obj
+<< /D [ 8849 0 R /XYZ 81.145 296.6 null ] >>
endobj
8890 0 obj
-<< /D [ 8888 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 285.641 null ] >>
endobj
8891 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 274.682 null ] >>
endobj
8892 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 263.723 null ] >>
endobj
8893 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 198.966 null ] >>
endobj
8894 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 188.007 null ] >>
endobj
8895 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 177.049 null ] >>
endobj
8896 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 166.09 null ] >>
endobj
8897 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 155.131 null ] >>
endobj
8898 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 144.172 null ] >>
endobj
8899 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 133.213 null ] >>
endobj
8900 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 122.254 null ] >>
endobj
8901 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 111.295 null ] >>
endobj
8902 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 100.336 null ] >>
endobj
8903 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8849 0 R /XYZ 81.145 89.377 null ] >>
endobj
-8904 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 626.366 null ] >>
-endobj
-8905 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 615.407 null ] >>
+8848 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8906 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 604.448 null ] >>
+<< /Filter /FlateDecode /Length 2362 >>
+stream
+x[K6 ȱ{XU0`L
+<-%3q!L~(鏓<E_~*s
+"Xx'urAhwrV iӯ/RRo0!LW.J_ܣ~Jm<^}ξK7Px?J g)M}?JUQH]GsG-I%%'L4ʌ ڢP+sD}h;j5pj[ٙjhv8t1V K*Iߝ/E6UI!o\E=+'>cJa:^iX{+P7x@Cǫu'w 1#R%&]5H&hL$߯ \+oY>UljKD0"AG2ג[t %5<;AVxQX^NǗq@|IlPB>IR80#RӤXwCM{a6F/m:,,=IJ^
+mIwX$6fF/ H#{n(xh)Q FwjvyKR0)ˡKyKYƼԷg=D}Co!= J)AG=5!\RSkɢȦS@95u5%Ll
+
+H<(Y\m7_ѱOGy&\>e̎F*SSnl֐@oY!~@z@3UBIJ8I֬: =`/džCJAߴi/LMNǓ4/z۟4RzL4?%t=qoȋ1Gy(:B>21}vO7CjHHU-)8=a"@RƣGzRv|bshf
+tC:`@4س5 ԞgZ=%ia鶏.1NF7hΜBnSPTQF ,|DA)^纞{$ ${47 .vuX4#GǗSԚTaA, rצXƱ^
+̌Z@[;!j>N=v-+Sڮy
+~ʦo?LךQñK4r1ϝJ@d ;y-9"fR Ӏgj4z'߲F_G|-MT77v`MUNp@ifa=]6d0P74 ލk%L=I¦ȣG]ȚϮFv/͙{{[fq54Qky%b5rܗ}
+푩,N-͞T_"k,i-`1#vv2x~rY{5gfjՁ3a u~֘C>4
+kE}\yi0FE.dYsO
+✣ X>kѱ7)+ndV#m@Լl3 HSsf^~t6eOkp,C¤?Qrq&eu  ~ "|ؘ-x9Kw&j&1a 8a@s#h EeCԼ#{
+endstream
+endobj
+8905 0 obj
+<< /Type /Page /Contents 8906 0 R /Resources 8904 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
8907 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 8905 0 R /XYZ 78.37 808.885 null ] >>
endobj
8908 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 742.926 null ] >>
endobj
8909 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 731.968 null ] >>
endobj
8910 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 721.009 null ] >>
endobj
8911 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 710.05 null ] >>
endobj
8912 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 699.091 null ] >>
endobj
8913 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 688.132 null ] >>
endobj
8914 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 677.173 null ] >>
endobj
8915 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 666.214 null ] >>
endobj
8916 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 655.255 null ] >>
endobj
8917 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 644.296 null ] >>
endobj
8918 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 633.337 null ] >>
endobj
8919 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 622.379 null ] >>
endobj
8920 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 611.42 null ] >>
endobj
8921 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 600.461 null ] >>
endobj
8922 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 589.502 null ] >>
endobj
8923 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 578.543 null ] >>
endobj
8924 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 567.584 null ] >>
endobj
8925 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 556.625 null ] >>
endobj
8926 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 545.666 null ] >>
endobj
8927 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 534.707 null ] >>
endobj
8928 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 523.748 null ] >>
endobj
8929 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 512.789 null ] >>
endobj
8930 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 501.831 null ] >>
endobj
8931 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 490.872 null ] >>
endobj
8932 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 479.913 null ] >>
endobj
8933 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 468.954 null ] >>
endobj
8934 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 457.995 null ] >>
endobj
8935 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 447.036 null ] >>
endobj
8936 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 436.077 null ] >>
endobj
8937 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 425.118 null ] >>
endobj
8938 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 414.159 null ] >>
endobj
8939 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 403.2 null ] >>
endobj
8940 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 392.242 null ] >>
endobj
8941 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 381.283 null ] >>
endobj
8942 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 370.324 null ] >>
endobj
8943 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 359.365 null ] >>
endobj
8944 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 348.406 null ] >>
endobj
8945 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 337.447 null ] >>
endobj
8946 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 326.488 null ] >>
endobj
8947 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 315.529 null ] >>
endobj
8948 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 286.638 null ] >>
endobj
8949 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 275.679 null ] >>
endobj
-8887 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8952 0 obj
-<< /Filter /FlateDecode /Length 2091 >>
-stream
-xڵZ]o6}_a/pa`An}YĚȒGI$Ӥ㸦}#G<^s)O~x޽@ #䓻w2Q15Q ,n=?WM5clv?jSk{eX\Q5}tiUa*oDZãl5\.Sv9<wЧ}2B|$Me/#{&#PH8
-1EEwn/ˬ[olY{'$"{tI!z؎lGk7?o<ɛ4!z$_K̂pDܱ<R!x`]EW/!gDԹ&Mϛ[d.&md
-W=զn3C %ӄ 3Y OϛHzm9#A qiBtO.%5g\)ӈ51_N j>oJF,DˢH%ҧCuN$~C,PUZAIm[-z3=H>^tm^%Z# CRLް ,>RHq_8ԙɛX9&F;WjLMrYR"pH"t@#Lv~xh&o̒pYA2*b'"؇f TGxț<;Q BG;&]?ڡϪ:Ij[sv$5|Jmu5=|, tVv[w}MQ
-M mK{ 7]X8U3>bn-\8Ƕ:r?>C =]/E^ʵc"[s81,v8|:qهp= w\*(rPXAovC:~C mߑNN҈}8S+aP$YU)4u.g@۽ߐ$~Ckle"S*)Edm΅D{UtRޏ?E9r/I͛WJfOYW&cжj4NeZeaYT6{*jT̛&nK62X0^4jf@vds[XOlFx[,y;wcqKHHN^if[ޝB]SE(xFcv=HgS+ull 23Lzzw:Wȍf[fMgjg'؅1]o퇿&BAleJ/gT&;YPkRꌁvnA=,@3lL<ߢ.H ^9yMꀀ V3N`#H8QoɯWBZPB3>Z8, P_v;z%'?w~rqLVDΉ2(R*q%ӻk8vwao} PI'DLY\XVHeŤq
-/Ƭ~ۥz_ NJL:}n͐ͤI6-D.(t>#tB,7<iF藃e
-Ze6F+^gQ&u#H近$5 SMZsIѨwgeu7+[͞FM }nI& e>S>2B;3<o쬺>z˒ ^O
-Y$E7B'
-g'e|VG.}\^vv^]& {Ѥz:צw+/y/]&:KO \LD)ەeS%t4NN.Ҩ?;̘@*g,y}m'W=ѴE#IKn<o4B#X <L.<- ’׺vm7+@`̏
-31?;%Gyqb@ H9N2kcE+
-endstream
+8950 0 obj
+<< /D [ 8905 0 R /XYZ 81.145 264.72 null ] >>
endobj
8951 0 obj
-<< /Type /Page /Contents 8952 0 R /Resources 8950 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8905 0 R /XYZ 81.145 253.761 null ] >>
+endobj
+8952 0 obj
+<< /D [ 8905 0 R /XYZ 81.145 242.802 null ] >>
endobj
8953 0 obj
-<< /D [ 8951 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 231.843 null ] >>
endobj
8954 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 220.884 null ] >>
endobj
8955 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 209.925 null ] >>
endobj
8956 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 198.966 null ] >>
endobj
8957 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 188.007 null ] >>
endobj
8958 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 123.25 null ] >>
endobj
8959 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 112.291 null ] >>
endobj
8960 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 101.332 null ] >>
endobj
8961 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 90.374 null ] >>
endobj
8962 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 667.213 null ] >>
-endobj
-8963 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 8905 0 R /XYZ 81.145 79.415 null ] >>
endobj
-8964 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 645.295 null ] >>
+8904 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8965 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 634.336 null ] >>
+<< /Filter /FlateDecode /Length 2003 >>
+stream
+x[Mo6W=d~AxY܊^[@$EJ"5NDI=8%|/>9Aݨzo7ǧϏNׄ?nt|H[ՠ><sN)Jx4xӯ3G@84=F$"DŽJNtn/5hJ
+ -0>W׼r<gb%pCQ<0FQ=P*(f(28FQ`^BTvvN:O{>
+aksjj0so3mwi|ڭF0&0F|t;z>NJ`\l$JsӵL]6 D>(y3уΑ0HكN1s$]E`ѾC{gQh`'.{;#]F _F#B\1de\D:NAubu>(8+&gi2{ :L NηxE<>Q#MtoYS'" K1ٜ8Nr`Ɋt=!´F*U9sxt?SZ /-զnm@9EE Xx}c8?x: lUfThq.%Jٙ: Fb<8;s푰b]O8cvqgtPY6NUzIezIlϕm&˻c#1^L{k-x`dT^:$1"Z}0BP_]3˩EQZuLAC2LXsOmz&ۭTn6|%Tt.
+^T*J)򿕽p>$ա2;1C8J3{{AEC8J3; HE~fGf EyLD1[Pg~ϤB"zo9?m;r1n hQW?C:stZv-~CgB
+)4\\̏љ0^c!,k Ij~Zٯh,\H !SbZܛK.x d\+t@DŒ;i${$Bv@e$9$
+-\noxŝh4EjT\=diIFb?>8^%*UYvqE(0'F\8gկ[
+oZjAEw^kNJbirۉ8@s)O''-˄)+1ڮQOLm`Y(s* *=9q=A'fuhhϋ-6V:4HyĘ
+3-Ys^fRI:z~>>]3Tu.^20ڸY/}z_Bи1(qڎXT9_^/+" k0Vשwf:2-ŴXjՍ䫳՜W 6V̤L_Htf?LZH6-;^Iq6yW"#B4D͠mo=A C_Y"FtAٿC:ĄX ds<U'c"E `1/Igk6l;5R5V"ͤjuFg#;y<8/&5h
+endstream
+endobj
+8964 0 obj
+<< /Type /Page /Contents 8965 0 R /Resources 8963 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
8966 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 8964 0 R /XYZ 78.37 808.885 null ] >>
endobj
8967 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 768.829 null ] >>
endobj
8968 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 757.87 null ] >>
endobj
8969 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 746.912 null ] >>
endobj
8970 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 735.953 null ] >>
endobj
8971 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 724.994 null ] >>
endobj
8972 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 714.035 null ] >>
endobj
8973 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 703.076 null ] >>
endobj
8974 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 692.117 null ] >>
endobj
8975 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 681.158 null ] >>
endobj
8976 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 670.199 null ] >>
endobj
8977 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 659.24 null ] >>
endobj
8978 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 648.281 null ] >>
endobj
8979 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 637.322 null ] >>
endobj
8980 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 626.364 null ] >>
endobj
8981 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 615.405 null ] >>
endobj
8982 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 604.446 null ] >>
endobj
8983 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 593.487 null ] >>
endobj
8984 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 582.528 null ] >>
endobj
8985 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 571.569 null ] >>
endobj
8986 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 560.61 null ] >>
endobj
8987 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 549.651 null ] >>
endobj
8988 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 538.692 null ] >>
endobj
8989 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 527.733 null ] >>
endobj
8990 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 516.775 null ] >>
endobj
8991 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 505.816 null ] >>
endobj
8992 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 494.857 null ] >>
endobj
8993 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 483.898 null ] >>
endobj
8994 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 472.939 null ] >>
endobj
8995 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 461.98 null ] >>
endobj
8996 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 451.021 null ] >>
endobj
8997 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 440.062 null ] >>
endobj
8998 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 429.103 null ] >>
endobj
8999 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 418.144 null ] >>
endobj
9000 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 407.186 null ] >>
endobj
9001 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 396.227 null ] >>
endobj
9002 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 385.268 null ] >>
endobj
9003 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 374.309 null ] >>
endobj
9004 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 363.35 null ] >>
endobj
9005 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 352.391 null ] >>
endobj
9006 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 341.432 null ] >>
endobj
9007 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 330.473 null ] >>
endobj
-8950 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9010 0 obj
-<< /Filter /FlateDecode /Length 1955 >>
-stream
-xZ]o:}ϯ0{[ 6we]$(*7;dtדKhQ<!9sF
-3krog_$b&Ij೫3͌&%D3B5]=57_?NgZ 2D&FbB~}nBq524m8X  2{^ uʬh/ l~TE ܛqhq]<d>///_PS_s{MWI
-}leVu^2f7UL GW|
-bem4\~OSPç dp(DA-1S) ~r. }DE
-u?z {eAqC#22^k)qA(*$mT|j햗v8C?/h_ >٭B}~׷.$M8!:X86c[RNCjEPzmYeM\G)'`[b 0h.GW,9}4=N#p ?B
-q`v|q+]EY HGrny"cXZO~K߄V;"ܶCʺ
-ǃ۶WàOTǢ.996i3R[D}+0"68俐*, S%:覐"%JN`;ʙs\Wc_ZDweލw\/v4Śdoh?/c]@IYֽ]vl)&:Abw|X3D*NFh>_NFo =ͼmg 5 aDq/3$NFh_8 ”(vSW8 ô ^mVQj̺A)K z֯S_ymrh
-ۜ/9_3Oq߽!&TsKag/?[[N)U$j|qc^l+O%1l;]oP7KN<ĤS:1ɂSp+B;l:DTDQ+_Q&>;(wJe&")QB"4 PЩU'}C7uW/*T
-ŵ)hg҉q2o^?:/
-endstream
+9008 0 obj
+<< /D [ 8964 0 R /XYZ 81.145 319.514 null ] >>
endobj
9009 0 obj
-<< /Type /Page /Contents 9010 0 R /Resources 9008 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8964 0 R /XYZ 81.145 308.555 null ] >>
+endobj
+9010 0 obj
+<< /D [ 8964 0 R /XYZ 81.145 243.798 null ] >>
endobj
9011 0 obj
-<< /D [ 9009 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 232.839 null ] >>
endobj
9012 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 221.88 null ] >>
endobj
9013 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 210.921 null ] >>
endobj
9014 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 199.963 null ] >>
endobj
9015 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 189.004 null ] >>
endobj
9016 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 178.045 null ] >>
endobj
9017 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 167.086 null ] >>
endobj
9018 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 156.127 null ] >>
endobj
9019 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 145.168 null ] >>
endobj
9020 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 134.209 null ] >>
endobj
9021 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 123.25 null ] >>
endobj
9022 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 112.291 null ] >>
endobj
9023 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 101.332 null ] >>
endobj
9024 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 90.374 null ] >>
endobj
9025 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 626.366 null ] >>
-endobj
-9026 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8964 0 R /XYZ 81.145 79.415 null ] >>
endobj
-9027 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 604.448 null ] >>
+8963 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9028 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 575.556 null ] >>
+<< /Filter /FlateDecode /Length 2124 >>
+stream
+x[r6+ت\lsr-kr_&My<N6)
+x^/n@ω~<re'` %O?Јf;Y#7GΕzzc{r\ $gZIB@ H-ɀ(3oZzmux&ṶM/kjm-s.^f|녾ߩzVw[k3F|Ӓ"#5ɂxKSg\s"l#ϩ/>G ya0gr*@ȗ LHd#1}#9oz$T$GZn*AFgHS&R;*'MMI9M;(L^:=$(8%SFv*J#E{>o6F?GafFFesضu_S
+,tOq u`;UovFx\d"պ*1G[曰E O
+Hgu /F:KV}Vi%g$k>H`aÂ;#᎙ް /GjQҶeŒнMmD:\ӑ< P[q59oRk2DAVWHٍ:o9UdT+25V3͌b!HQD-#2E6`TLfh4HDquf4A AV)7UdMf4(r#%/~ _R[&a=*k*}V7~Kn{>4hY?hH͗ 8;H[3eݢ<
+C"`~Xb
+"%C1d  @XKض-m `J  pX{Pɪ|sTahwӨFR˜Թ+LJ;n, <}wo[KSOӵpX>jwZ9`0d½aeEj)"QXyEʅl۪ȶe[.jCj{%kf 5.;D
+-kZvQEUs<NQOfT"ivтiof!Q;y/pfNVu_<~QhrUOH0|huȔfvд`Qi;.;9n~pv@y$O>tNx(dX#%9Se3Ә=I\1%8E?m3c \qS\V>ŵNG>f4diV޲SI8_j2W/nj.pxi}EB($5M<$B =g3V$Rk:ӈ]s_iYM$e˧U}Fdnʕ'㫋2X7U=*fD?mWEB;'o(ʡMT:xp{\萾YZŻt
+`wcԃ=ݗ2>9*zS.}nu0>9`CPRfdǷ#' lt*~h)19_C_P'ɁB F}v˴ߚ'bb.ZfԻ5,괜drRr!?h+E{ /W>? H%
+&'= 
+ Sz\=X6!1疑z|K]!$zLO!$[HN'V9ƺ^҈mwUBޓϗute0V𺻲̿:@0 vޢ:fz\ Hi"n$tuGmݳm-i%)*'l7qSK>-;)@%Mw_8T)T8G~| ȩio/k2s0eY
+endstream
+endobj
+9027 0 obj
+<< /Type /Page /Contents 9028 0 R /Resources 9026 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
9029 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 9027 0 R /XYZ 78.37 808.885 null ] >>
endobj
9030 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 768.829 null ] >>
endobj
9031 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 757.87 null ] >>
endobj
9032 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 746.912 null ] >>
endobj
9033 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 735.953 null ] >>
endobj
9034 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 720.012 null ] >>
endobj
9035 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 709.053 null ] >>
endobj
9036 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 698.095 null ] >>
endobj
9037 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 687.136 null ] >>
endobj
9038 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 676.177 null ] >>
endobj
9039 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 665.218 null ] >>
endobj
9040 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 654.259 null ] >>
endobj
9041 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 643.3 null ] >>
endobj
9042 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 632.341 null ] >>
endobj
9043 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 616.401 null ] >>
endobj
9044 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 605.442 null ] >>
endobj
9045 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 594.483 null ] >>
endobj
9046 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 583.524 null ] >>
endobj
9047 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 572.565 null ] >>
endobj
9048 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 561.606 null ] >>
endobj
9049 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 550.648 null ] >>
endobj
9050 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 539.689 null ] >>
endobj
9051 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 528.73 null ] >>
endobj
9052 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 517.771 null ] >>
endobj
9053 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 506.812 null ] >>
endobj
9054 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 495.853 null ] >>
endobj
9055 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 484.894 null ] >>
endobj
9056 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 473.935 null ] >>
endobj
9057 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 462.976 null ] >>
endobj
9058 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 447.036 null ] >>
endobj
9059 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 436.077 null ] >>
endobj
9060 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 425.118 null ] >>
endobj
9061 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 414.159 null ] >>
endobj
9062 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 403.2 null ] >>
endobj
9063 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 392.242 null ] >>
endobj
9064 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 381.283 null ] >>
endobj
9065 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 370.324 null ] >>
endobj
9066 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 359.365 null ] >>
endobj
9067 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 348.406 null ] >>
endobj
9068 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 337.447 null ] >>
endobj
-9008 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9071 0 obj
-<< /Filter /FlateDecode /Length 1923 >>
-stream
-xZn6+ A" hh1,3Er%̠R/t<_@7Ql^>i<x|"gpny&b3"Ζw32SI"Id|6WXߗ?H=SHKɔ&0~}&.xݘbty%ag\7_%##aD}tK4<nIW7Y$_/^큾=>2g꣏ɺ:G-+U(d%0Y}Hn6Ί<+̢(
-_
-[:R{)9XS-@;ZA"s35i"& mA52vq3UnQ҃|xn|NK 5G)I=L]|NaVyhV&
-'A`U!*Z.qxB!3XCǬ%ݦ06'x-<N}5ۋi"jBv{ۋu8<m@]MT+s.L&!5Ҵ o1ic֋ۭ3a; u&T*J%aGs75S"PǰlKBhv/J]nH@)dO
-1(П4UUV{`0kS9@$Ew 7Q*LMAv0inuz/531D'^MqQ
-A)bSEa
-cO_ƄtpX 1yLJajѯQ{3uX Cr*i(F嫲idzυTQM>MYeˢ9pԓ}5Qm״9)HE_^ L
-endstream
+9069 0 obj
+<< /D [ 9027 0 R /XYZ 81.145 326.488 null ] >>
endobj
9070 0 obj
-<< /Type /Page /Contents 9071 0 R /Resources 9069 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9027 0 R /XYZ 81.145 315.529 null ] >>
+endobj
+9071 0 obj
+<< /D [ 9027 0 R /XYZ 81.145 266.712 null ] >>
endobj
9072 0 obj
-<< /D [ 9070 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 255.753 null ] >>
endobj
9073 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 244.794 null ] >>
endobj
9074 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 233.836 null ] >>
endobj
9075 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 222.877 null ] >>
endobj
9076 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 211.918 null ] >>
endobj
9077 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 200.959 null ] >>
endobj
9078 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 190 null ] >>
endobj
9079 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 179.041 null ] >>
endobj
9080 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 168.082 null ] >>
endobj
9081 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 157.123 null ] >>
endobj
9082 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 146.164 null ] >>
endobj
9083 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 135.205 null ] >>
endobj
9084 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 124.247 null ] >>
endobj
9085 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 113.288 null ] >>
endobj
9086 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 102.329 null ] >>
endobj
9087 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 91.37 null ] >>
endobj
9088 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 9027 0 R /XYZ 81.145 80.411 null ] >>
endobj
-9089 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 593.489 null ] >>
-endobj
-9090 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 528.732 null ] >>
+9026 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9091 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 517.773 null ] >>
+<< /Filter /FlateDecode /Length 2570 >>
+stream
+x[n#9WMwa\A_{NapIIܘ>l䋅(zυ^A}1y*P^E[E+Fb_wJҸ'\S*„dos ;~n+O߾oacԁn KG[5~>"
+74r
+F1. WD6bH ZdȤOS&M֜̐GE{x3=' kAG-n#J^*/yDmpК]q("0e2nM6T"E3KqkTܔ@2bj@KmMw)2 Kݶ
+uޡFTrF%cJ' aDlZ5S
+֚N$Jp6D@q O)i?еOwQc=|=x~ƿwKNј&Z X]z~9s<Dy.v rM&%rhI+I"y3|T8Y~B6Td[?e#?J6P6[AzV>?c4DH=$ .mwk0{6ՄMo+"X Jߟ;Ze{ gj $r(X=~|
+P#]nEj8L k&B'QOh=3"s5XOdHwlַ9/&SZ V@j"lڅEXy=KJcB7@g5jw>RZb@W'ɟe#TF+Q%Ru#U2Fը$:#o<Y٠eFD|I'mu2ջ?Ymϭ6\Kteg5EcUu̫Ē-ЬyYqN!\,22}+]Gr>#Wv;%ͻ#.Qb(J@ Y~eYLP* 7\U
+.lqM e<3t5#;T p&}В
+;0l }^^~uwhw
+0qĢV.%l\'ifI`m0N4Ywڌ#B6Ѷ(T\L1 ^Vw :r~w锔)K93bݛw Ҵz_/Ts]`foi P+. ,&;,$+r "Fq6WkJQg5lnИI*blU4GR.cRu+ptE2Tu\0f䈉+i!CZ2"r{Shiή
+*k. G>^weXcC:5`[ygRU#}_U]F]MzA/þ~- @["IizlVkK J M6å,f?QUbw٨bRdz.MuGT%x<ҵKH$ԺF&C&}i)5RSl
+K.@v5O~F
+endstream
+endobj
+9090 0 obj
+<< /Type /Page /Contents 9091 0 R /Resources 9089 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
9092 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 9090 0 R /XYZ 78.37 808.885 null ] >>
endobj
9093 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 742.938 null ] >>
endobj
9094 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 731.979 null ] >>
endobj
9095 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 721.02 null ] >>
endobj
9096 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 710.061 null ] >>
endobj
9097 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 699.102 null ] >>
endobj
9098 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 688.143 null ] >>
endobj
9099 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 677.184 null ] >>
endobj
9100 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 666.226 null ] >>
endobj
9101 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 655.267 null ] >>
endobj
9102 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 644.308 null ] >>
endobj
9103 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 633.349 null ] >>
endobj
9104 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 622.39 null ] >>
endobj
9105 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 611.431 null ] >>
endobj
9106 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 600.472 null ] >>
endobj
9107 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 589.513 null ] >>
endobj
9108 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 578.554 null ] >>
endobj
9109 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 567.595 null ] >>
endobj
9110 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 556.636 null ] >>
endobj
9111 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 545.678 null ] >>
endobj
9112 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 534.719 null ] >>
endobj
9113 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 493.94 null ] >>
endobj
9114 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 482.981 null ] >>
endobj
9115 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 472.022 null ] >>
endobj
9116 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 461.063 null ] >>
endobj
9117 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 450.105 null ] >>
endobj
9118 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 439.146 null ] >>
endobj
9119 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 428.187 null ] >>
endobj
9120 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 313.696 null ] >>
endobj
9121 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 302.737 null ] >>
endobj
9122 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 291.778 null ] >>
endobj
9123 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 280.819 null ] >>
endobj
9124 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 269.86 null ] >>
endobj
9125 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 239.01 null ] >>
endobj
9126 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 228.051 null ] >>
endobj
9127 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 199.183 null ] >>
endobj
9128 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 188.224 null ] >>
endobj
9129 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 177.265 null ] >>
endobj
9130 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 166.306 null ] >>
endobj
-9069 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9133 0 obj
-<< /Filter /FlateDecode /Length 1851 >>
-stream
-xYo6~_a/0M)Àmr"Ė\Yn߾)8>5)>}ߙznD;܈$i G >=K4fj{ O?N{ II8%F1#r<˗0(/f÷oe5ɪp{]rnq|xE ;`s@
-_FU6ϫ&!O*j+7Z\يоl^GÄ"03,뺜m\C/mm,/i(oX35rbRK^7Ey[<mܞMxVD LFh79K{)@mNP\C -r6+ŕ}$r>KjM]]뚊Yd3R҅<>IY"ֱa-U&X:Vp;o9}[*ѶR4%&<5#&BF`u
-$
-'#tc!BgW@)M/2J₵Ư$ S+-0:MDL]i.Dh gN<ewaQqjRnoǨA& Xoi[&"F[ף`|2-uw''dWP JPP
-RNSµєz)I)s7dAI,)L|4͖tcjzTT)U3Y#.Hk+M$[mdm(ЏPcv~(O>(@-4яۿ 
-[o"4pJ#
-rҁrg_Oz賔[*Ojѓ2)X'0P8f_?i+>ոF@ IVJp6c'g4Uk\ B&
-endstream
+9131 0 obj
+<< /D [ 9090 0 R /XYZ 81.145 155.347 null ] >>
endobj
9132 0 obj
-<< /Type /Page /Contents 9133 0 R /Resources 9131 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9090 0 R /XYZ 81.145 144.388 null ] >>
+endobj
+9133 0 obj
+<< /D [ 9090 0 R /XYZ 81.145 133.429 null ] >>
endobj
9134 0 obj
-<< /D [ 9132 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 122.47 null ] >>
endobj
9135 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 111.511 null ] >>
endobj
9136 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 100.552 null ] >>
endobj
9137 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 89.593 null ] >>
endobj
9138 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 731.11 null ] >>
-endobj
-9139 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 720.151 null ] >>
+<< /D [ 9090 0 R /XYZ 81.145 78.635 null ] >>
endobj
-9140 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 709.192 null ] >>
+9089 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R /F73 267 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9141 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 698.233 null ] >>
+<< /Filter /FlateDecode /Length 2074 >>
+stream
+x[r8 +!
+ϋ'ìRdj HA!8$p.vGOOtXٯuN(/K}0,%{+Mr6VG 8#;GX>J,9dc5C P00b(l97)09y^"U~ *I ˹zlw:K/8rPUik{$YhzP\1Tj(?7(rsR@(+q=x7L;Z:$J:^A'.h tKҍ}`$lo9x30HeBh$NܻFz0Tb)0H)8X;. 7]»Z] }.(|0ahDZ\,N Zڤ&O"_?/ O֙JԦiHX&moDoxOĩE`Wy/ጔh &F*A('HS#=^<qxCGϑJժ.5Y)$'BɌ;1
+Ld8IꑤKbLþI
+٩x#h.<Ĺ(qQl <Q&)+p,45STJG(ά]\z¸M[d璯?:x*"vlQ*XwUUeRTae˓ʑDLG})8E + w3 ~*w|&QXVijsbq@vU Jekr?`>J3/i/
+)G.0tЃ[.|djsn<6!fѮlbD MՆZHv&;jFr)XKqp ۵|A&]=j@ y4skB j<E}43PXօHОƊ%u'|-z]*GH=rJ-P3FIJ2mԲYp\@Oe7/J)Xƨk]
+4A1[/Y-w:\sQs!iSRhZ)k7Hvd MM躨b [&M@!iuI#ZVvBF
+)KZ뒾U44iEQ=D-8bX|ؒZnNwp?Z&-:뢾U`D5joIE"}NIGؒZNGВ2!{Xe$SÙ:ׂlq0֗].Gt]|XRc[/S;JrKiɨdSM['CV:JPib~<wg1_~a<R=M~,Pܭ4`Rv(*O`o>2~l{Qm',75qbSgslaae0g4ҟzB`֩p34O`SS/9V N{Xa]FDŽ942CN.:t{
+/lDKaqKQ]ۑ&f]5opj
+endstream
+endobj
+9140 0 obj
+<< /Type /Page /Contents 9141 0 R /Resources 9139 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
9142 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 687.274 null ] >>
+<< /D [ 9140 0 R /XYZ 78.37 808.885 null ] >>
endobj
9143 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 676.315 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 768.829 null ] >>
endobj
9144 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 665.356 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 757.87 null ] >>
endobj
9145 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 654.397 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 746.912 null ] >>
endobj
9146 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 643.439 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 735.953 null ] >>
endobj
9147 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 632.48 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 724.994 null ] >>
endobj
9148 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 621.521 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 714.035 null ] >>
endobj
9149 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 610.562 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 703.076 null ] >>
endobj
9150 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 599.603 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 692.117 null ] >>
endobj
9151 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 551.126 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 667.21 null ] >>
endobj
9152 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 540.167 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 656.252 null ] >>
endobj
9153 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 529.209 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 589.502 null ] >>
endobj
9154 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 518.25 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 578.543 null ] >>
endobj
9155 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 507.291 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 567.584 null ] >>
endobj
9156 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 496.332 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 556.625 null ] >>
+endobj
+109 0 obj
+<< /D [ 9140 0 R /XYZ 79.37 545.124 null ] >>
endobj
9157 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 485.373 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 479.719 null ] >>
endobj
9158 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 474.414 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 468.761 null ] >>
endobj
9159 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 463.455 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 457.802 null ] >>
endobj
9160 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 452.496 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 446.843 null ] >>
endobj
9161 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 441.537 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 435.884 null ] >>
endobj
9162 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 430.578 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 424.925 null ] >>
endobj
9163 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 419.619 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 413.966 null ] >>
endobj
9164 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 408.661 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 403.007 null ] >>
endobj
9165 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 397.702 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 392.048 null ] >>
endobj
9166 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 386.743 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 381.089 null ] >>
endobj
9167 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 375.784 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 370.13 null ] >>
endobj
9168 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 364.825 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 359.172 null ] >>
endobj
9169 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 318.273 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 348.213 null ] >>
endobj
9170 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 307.314 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 337.254 null ] >>
endobj
9171 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 296.355 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 326.295 null ] >>
endobj
9172 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 285.396 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 315.336 null ] >>
endobj
9173 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 274.437 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 304.377 null ] >>
endobj
9174 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 263.478 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 293.418 null ] >>
+endobj
+113 0 obj
+<< /D [ 9140 0 R /XYZ 79.37 267.969 null ] >>
endobj
9175 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 252.519 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 212.847 null ] >>
endobj
9176 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 241.561 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 201.888 null ] >>
endobj
9177 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 230.602 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 190.929 null ] >>
endobj
9178 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 219.643 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 179.97 null ] >>
endobj
9179 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 208.684 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 169.012 null ] >>
endobj
9180 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 197.725 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 158.053 null ] >>
endobj
9181 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 186.766 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 147.094 null ] >>
endobj
9182 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 175.807 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 136.135 null ] >>
endobj
9183 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 164.848 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 125.176 null ] >>
endobj
9184 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 153.889 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 114.217 null ] >>
endobj
9185 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 142.93 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 103.258 null ] >>
endobj
9186 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 131.971 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 92.299 null ] >>
endobj
9187 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 121.013 null ] >>
-endobj
-9188 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 110.054 null ] >>
+<< /D [ 9140 0 R /XYZ 81.145 81.34 null ] >>
endobj
-9131 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+9139 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F70 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9191 0 obj
-<< /Filter /FlateDecode /Length 2033 >>
+9190 0 obj
+<< /Filter /FlateDecode /Length 2290 >>
stream
-xڭZ[o6~ϯ0ЇX.2Àغa2` bˉY2d嶮}L8y$ZϕBGW#:턮D;ɻ71&b~%:b#f(ьPFDZaN>_z^ۑ!Vka`F,bB䏫tϋ*?ɩj_΋ig6Ń~/zznfy#_+2AQ(&L`bla "
- svFPYx݊DIJvf^W[WlrLr"3-9|Dɚ.t
-D\TYh='*d8>'ٓz z-c_YAqiqU[41c'Sf %%O_,pz8\Sm7d(E8ܯ,%`1 [|5`Cg3p< TM+9.s .v绉co^t-j ("T`R)Yp=ַ=H69mQ^Kv#DXl{s8 pZzY?9
-<tYwbZðoa2Km2TM0YLPH[7?,Ӫ[/ _ˊn)Ĝ6t` &ѮơSChH{`+;J6!P CKVżUvMV8ݦ;58ՇoU?EYU=͑ذE<BF֒dR!z*4(M
-0Ժn0W:8CfA0׽ p: Pr- %.h<Pؼo,W<
+x[ˎ8WZW"
++f]l{VӖd&1Sۍ^䖯-SE<$OWtezqqE
+ۋIVJHN_;UJD) Hiu~׿VN^k@
+p`f$+#RKD7KXsYg/LD0Otlm?2gGk]A׾U~obW%W7 coP('y'
+uwcXtjɦPgJ_Q@5cK(@8&T;#e (ԺϢLR%dt?GSjoN=rbޫCU{z{TNR}7MZSمl6+#WFvQ4dkqKa Iq *+ͱ}4Y;Ko#xciv%{~Ά宦.@_z67w߻5G}ݩ275L ,6!e.ZؖW][B]z:u61hp@oIyl?.ʜBV\N8uXC_?F..0=^rkZ0dúe -X絵JѴ}Zm;4;FaWu}MHɈհkL5-l;XH96#s-u <4o9Z۵7▢vo?d<MH9(9oC)),B@չ0$1!kwnNc0oDMf=b^[vӏ)rn`%I`|VvFaF9I݅J舘W6m];„:џ(Ӟ";">M7|\kޘk;ǝL@Po(INHn t)YVHaLBy{;w@Y"($ ǫgp1zvNML
+*e Y# Ԇ:d G;N-!ӷI* 2Vl-+עcUҚKKwy'wbP2!gԼn>йKИֿn%嚉4ݘ+7-N
+l4&
+Q4yy +=$97ikÈjAӹ߷f4YO7yGQ@@Ӧ<p^xKKYg&|ygkZnj<8ť:ia"Za Ye+;dKmD@
+x %$̘gBjR2^V{|Ky98f6)tH<RF|
+4phr;0 'SB)K|8$HWW?'ʏ2F $* $ay|Bzn`Yb؞: rHjBz`SU^}T2(P&fxc;TT]qA>7鹃WY݀CF%>Oyl<}s5HVsMdA-2׻ks7K9!q `/+=>huVmə;mV+Җܒ8>J&'q1~ Æ{n t~{a<Rh^'3}I|x#C',w'Nӭ}̵h"5e
endstream
endobj
-9190 0 obj
-<< /Type /Page /Contents 9191 0 R /Resources 9189 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+9189 0 obj
+<< /Type /Page /Contents 9190 0 R /Resources 9188 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
+endobj
+9191 0 obj
+<< /D [ 9189 0 R /XYZ 78.37 808.885 null ] >>
endobj
9192 0 obj
-<< /D [ 9190 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 768.829 null ] >>
endobj
9193 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 757.87 null ] >>
endobj
9194 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 746.912 null ] >>
endobj
9195 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 730.971 null ] >>
endobj
9196 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 720.012 null ] >>
endobj
9197 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 709.053 null ] >>
endobj
9198 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 693.113 null ] >>
endobj
9199 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 682.154 null ] >>
endobj
9200 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 614.411 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 651.27 null ] >>
endobj
9201 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 603.452 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 640.311 null ] >>
endobj
9202 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 629.352 null ] >>
endobj
9203 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 581.534 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 618.393 null ] >>
endobj
9204 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 607.435 null ] >>
endobj
9205 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 559.616 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 596.476 null ] >>
endobj
9206 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 585.517 null ] >>
endobj
9207 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 574.558 null ] >>
endobj
9208 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 563.599 null ] >>
endobj
9209 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 552.64 null ] >>
endobj
9210 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 541.681 null ] >>
endobj
9211 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 530.722 null ] >>
endobj
9212 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 519.763 null ] >>
endobj
9213 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 508.804 null ] >>
endobj
9214 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 497.846 null ] >>
endobj
9215 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 486.887 null ] >>
endobj
9216 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 475.928 null ] >>
endobj
9217 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 423.126 null ] >>
endobj
9218 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 412.167 null ] >>
endobj
9219 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 401.208 null ] >>
endobj
9220 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 390.249 null ] >>
endobj
9221 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 379.29 null ] >>
endobj
9222 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 368.331 null ] >>
endobj
9223 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 357.372 null ] >>
endobj
9224 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 346.413 null ] >>
endobj
9225 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 335.454 null ] >>
endobj
9226 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 324.496 null ] >>
endobj
9227 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 313.537 null ] >>
endobj
9228 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 293.614 null ] >>
-endobj
-113 0 obj
-<< /D [ 9190 0 R /XYZ 79.37 279.517 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 302.578 null ] >>
endobj
9229 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 216.753 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 286.638 null ] >>
endobj
9230 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 205.794 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 275.679 null ] >>
endobj
9231 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 194.835 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 264.72 null ] >>
endobj
9232 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 183.876 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 253.761 null ] >>
endobj
9233 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 172.917 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 242.802 null ] >>
endobj
9234 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 161.958 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 231.843 null ] >>
endobj
9235 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 150.999 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 220.884 null ] >>
endobj
9236 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 140.04 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 209.925 null ] >>
endobj
9237 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 129.081 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 198.966 null ] >>
endobj
9238 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 118.122 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 183.026 null ] >>
endobj
9239 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 107.164 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 172.067 null ] >>
endobj
9240 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 96.205 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 161.108 null ] >>
endobj
9241 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 85.246 null ] >>
+<< /D [ 9189 0 R /XYZ 81.145 150.149 null ] >>
endobj
-9189 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9244 0 obj
-<< /Filter /FlateDecode /Length 2052 >>
-stream
-xZk6>
-;n3Mh<Z;x z{^?Qm.
-!X`"Ӭ2l -h7Yfwy]E
-vY}e+b\
-e>=3xQe\v^dHJY}u.V?$ ^oG3xG`.]U*&uΔZŜDbJ
-Xܤ@lj<K<[}#TO33Zb@Yl"'E AzS^iz꽞z͒<[8[я'lψ{Û~C립ͻ͖
-6RĴS]^~! \kT v16mvWhQ":0j~E-}&uu9mڮכԶ#XJÇ+5cͮ2 RۏP۶I$'u: &
-^f&)JWXGz'6O|Dh,S`6 ߅bC*)O";7IFI.G3;3<+(!& ׎hEF+G0qmuڪ"/$KUUq3ZݻD -e.hSFgW(T@'* Q_}{@"4v\k>Jz֣\~~>LOݯ¢ǭuXeqnn0xf\ҸZ[탟PƋȠN ũGCb87 g>KU=F2nv;a!
-fM9]
-gj5uTQB1ȮqzC݂XǍMX(%t4aÜU$[rzC>N]vYj-I?mWN+ǃG@tf"ZC9 B#,c#-])e8*~z/RuNͷX%$p}yeU4dC\QUOvZ[s[pF%5FTL,/
-j#]Sc">43cN*j Ħ+aXO7e
-endstream
+9242 0 obj
+<< /D [ 9189 0 R /XYZ 81.145 139.19 null ] >>
endobj
9243 0 obj
-<< /Type /Page /Contents 9244 0 R /Resources 9242 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9189 0 R /XYZ 81.145 96.351 null ] >>
endobj
-9245 0 obj
-<< /D [ 9243 0 R /XYZ 78.37 808.885 null ] >>
+9244 0 obj
+<< /D [ 9189 0 R /XYZ 81.145 85.392 null ] >>
endobj
-9246 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 768.832 null ] >>
+9188 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9247 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 757.873 null ] >>
+<< /Filter /FlateDecode /Length 2608 >>
+stream
+x[n#+H=#@*7p f;wu{EUNzUERyx^ oߟ/ˏɜϿ_o/b5^kq+爜8W7m.9Ѷpf@@zi${I]_Lw~^ҿ8Z#gLuSD6}js ]zf8Mzu.'|38!Iv :&$Nv1$2E,q.A>,ɜ ψ7>fg):0@7iak'm.e٤;7)ysݞ`0TT;V28梕fƾcv~ܑ6MЬIyu߰܃~)(~O riL֠[tscNM D:r˒Ȗc&#]6⥄b|+~.I
+3u<^"㰂xcF ;㙍92t#㙍<: uqh+" vO~t1JaW0׸$׊r~.f
+f.5
+xQRqP` ` A$'{4b-詹6n>XyksJz)<2J#69&w&Ѳ\s7,i;BK?_]& O
+J1>¯^]/ߥ> ZGp}"++E-Y~Ò@uRXs")i#,5HB&;kaDnB268IdB@1MZSyVD9 ng!NߚBF&|!3PIyh`/O43E0(axaF|'
+7{C
+TY 0LVX.-@0<mBY^-\bHQXtփ4ML rߜ]Z琦OLyhf\I{iʂ6Q5gخkx!JeLVQg)yr aN`7A/B5C^G' Gȫ#,3OLp[۽ɁY,5a(K;
++ӓtxi0:Q (1g4њSDNOO
+8_]a_Jq- AfK"0WwprebywQT6O0[3,GїڊéY}{l̸<nB nqJI@%;`wGAk='YgK
+ۉIyq=o ߐ[iM(}Nroן9if.s@{;lz9˄'NkE~AyZhcKCl3av9S6`>`|PFbQ@Zcʹ{ɑ ?/ƠdLGHK3V˃3KkqѦ~`s0:ItvjM ;2
+{GsQYeK-I~x-fܥ0zХOToPϔyU~$ݔxaw Lv<i9GybPyC\MHf0q3K6CB1Z';nFy}03( %33Zta趿q)ˏL~|ޢ
+endstream
+endobj
+9246 0 obj
+<< /Type /Page /Contents 9247 0 R /Resources 9245 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8784 0 R >>
endobj
9248 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9246 0 R /XYZ 78.37 808.885 null ] >>
endobj
9249 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 768.829 null ] >>
endobj
9250 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 724.996 null ] >>
-endobj
-117 0 obj
-<< /D [ 9243 0 R /XYZ 79.37 699.542 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 757.87 null ] >>
endobj
9251 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 644.44 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 746.912 null ] >>
endobj
9252 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 633.481 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 735.953 null ] >>
endobj
9253 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 622.522 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 724.994 null ] >>
+endobj
+117 0 obj
+<< /D [ 9246 0 R /XYZ 79.37 701.537 null ] >>
endobj
9254 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 611.563 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 633.144 null ] >>
endobj
9255 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 600.604 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 622.185 null ] >>
endobj
9256 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 589.645 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 611.226 null ] >>
endobj
9257 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 578.687 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 571.376 null ] >>
endobj
9258 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 567.728 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 560.417 null ] >>
endobj
9259 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 556.769 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 549.458 null ] >>
endobj
9260 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 545.81 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 499.645 null ] >>
endobj
9261 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 534.851 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 488.686 null ] >>
+endobj
+121 0 obj
+<< /D [ 9246 0 R /XYZ 79.37 463.983 null ] >>
endobj
9262 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 523.892 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 396.05 null ] >>
endobj
9263 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 512.933 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 385.091 null ] >>
endobj
9264 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 501.974 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 374.132 null ] >>
endobj
9265 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 491.015 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 363.173 null ] >>
endobj
9266 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 480.056 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 352.215 null ] >>
endobj
9267 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 464.116 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 341.256 null ] >>
endobj
9268 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 453.157 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 330.297 null ] >>
endobj
9269 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 442.198 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 319.338 null ] >>
endobj
9270 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 426.258 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 308.379 null ] >>
endobj
9271 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 415.299 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 229.674 null ] >>
endobj
9272 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 384.415 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 218.715 null ] >>
endobj
9273 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 373.456 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 207.756 null ] >>
endobj
9274 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 362.497 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 166.909 null ] >>
endobj
9275 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 351.538 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 155.951 null ] >>
endobj
9276 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 340.579 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 144.992 null ] >>
endobj
9277 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 329.621 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 134.033 null ] >>
endobj
9278 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 318.662 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 123.074 null ] >>
endobj
9279 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 307.703 null ] >>
+<< /D [ 9246 0 R /XYZ 81.145 112.115 null ] >>
endobj
-9280 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 296.744 null ] >>
+9245 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9281 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 285.785 null ] >>
+9283 0 obj
+<< /Filter /FlateDecode /Length 2253 >>
+stream
+x[˒&W.yUrh<NUֳKe²gf᫱,tshω~|vӠ?8Ǥ9-ϟk˹H)wěǕ-zO-^`ObhIùm捗0Jۭ@&[8&LAo>xLn1Y!uLs{2hEzt5evd-)(2FḮ¡QL zPL85Dc@ْ;m’>MUp-n.P1
+>F ]iwM/o9hxiOԷ5Ļk|e3C-ǚ5vG9552H^/$g
+n?(vS떒F+Q"}0Id%3%-ٵ~`[dБ
+A7`
+t- +-ld0]US91FF4Wb9.:$^ٕC>z1M]ǁv"`"b h=$
+A5#iK@3BP1K3)R0a`A͙`dU-L ,U5#DV:bL Z&hFn97H z r~oeVΓw̷^Eqty5 ͺkKr AYJ-%eSYs.hj|4S>+sԪ0ۉyH/5[#/uKۂNkxeG=ҳ Xv̀:=
+5&TK@ݑ
+endstream
endobj
9282 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 274.826 null ] >>
-endobj
-9283 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 263.867 null ] >>
+<< /Type /Page /Contents 9283 0 R /Resources 9281 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9284 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 252.908 null ] >>
+<< /D [ 9282 0 R /XYZ 78.37 808.885 null ] >>
endobj
9285 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 241.949 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 754.882 null ] >>
endobj
9286 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 230.99 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 743.923 null ] >>
endobj
9287 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 220.032 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 732.964 null ] >>
endobj
9288 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 209.073 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 656.252 null ] >>
endobj
9289 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 156.271 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 645.293 null ] >>
endobj
9290 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 145.312 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 634.334 null ] >>
endobj
9291 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 134.353 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 623.375 null ] >>
endobj
9292 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 123.394 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 612.416 null ] >>
endobj
9293 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 112.435 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 601.457 null ] >>
endobj
9294 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 101.476 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 590.498 null ] >>
endobj
9295 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 90.517 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 579.539 null ] >>
endobj
9296 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 79.558 null ] >>
-endobj
-9242 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9282 0 R /XYZ 81.145 568.58 null ] >>
endobj
-9299 0 obj
-<< /Filter /FlateDecode /Length 2059 >>
-stream
-xڵZ]o6}ϯu%(0.X/BPl&jKYIg6KI<+{.5xv?ó"aOW\G*'nt32%$e ,f78i׻RrdyhLFDk ނ\66(c*0[A6jmUAo]ge
-<P46@fP
-[[&yQd}vW
->ūoL,! 3<,'"98cGYۦfvˣ(Ld"C+T o ƺi Ot9+NNhmǘbR>N`#WfH0bIs:}lʑ|P4k"qd0oB֑?8+T ̧V" h_1B5HO`d&c&P&|vQ2 ch<_G=L*9ʔO&*KO`xi#f
-C4 v;u-clֿ`kv2 Ds#3N'QJb;jWm~-4]_ljzgy? c`@Xh#e䒂 @%[$/ .f߻}Nq.[:GeMY?L' )uRI$N_<0NU\\!$Zcx<:R4\_M*lU~%Xj?+s&"E`iZo53yRDftF8b@w_&yRY6 fL[MWMm5wNc~Z71&{-<0$r":^,Q]l`
-M2P6
-WihsѕT1E-OALag<;L>Nƥ0WeĤnLjסsLnjwnr w}t@ 6qgnMbxd@mP2ZӴdS0i(N</90x;Ym"3<*2LkDL:amuD-;b4mU2q e$⊬/T:'X6Ɵ@]DT֋@CGs.u {}}@zu˩EkU_;rM,u6`,!W۹ݰ.'
-endstream
+9297 0 obj
+<< /D [ 9282 0 R /XYZ 81.145 557.621 null ] >>
endobj
9298 0 obj
-<< /Type /Page /Contents 9299 0 R /Resources 9297 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9282 0 R /XYZ 81.145 546.662 null ] >>
+endobj
+9299 0 obj
+<< /D [ 9282 0 R /XYZ 81.145 535.704 null ] >>
endobj
9300 0 obj
-<< /D [ 9298 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 524.745 null ] >>
endobj
9301 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 513.786 null ] >>
endobj
9302 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 502.827 null ] >>
endobj
9303 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 491.868 null ] >>
endobj
9304 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 451.021 null ] >>
endobj
9305 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 440.062 null ] >>
endobj
9306 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 429.103 null ] >>
endobj
9307 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 418.144 null ] >>
endobj
9308 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 407.186 null ] >>
endobj
9309 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 396.227 null ] >>
endobj
9310 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 385.268 null ] >>
endobj
9311 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 374.309 null ] >>
endobj
9312 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 363.35 null ] >>
endobj
9313 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 352.391 null ] >>
endobj
9314 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 323.499 null ] >>
endobj
9315 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 312.54 null ] >>
endobj
9316 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 301.582 null ] >>
endobj
9317 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 290.623 null ] >>
endobj
9318 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 279.664 null ] >>
endobj
9319 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 268.705 null ] >>
endobj
9320 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 257.746 null ] >>
endobj
9321 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 246.787 null ] >>
endobj
9322 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 496.852 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 235.828 null ] >>
endobj
9323 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 224.869 null ] >>
endobj
9324 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 213.91 null ] >>
endobj
9325 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 463.975 null ] >>
-endobj
-121 0 obj
-<< /D [ 9298 0 R /XYZ 79.37 440.513 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 202.951 null ] >>
endobj
9326 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 372.17 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 191.992 null ] >>
endobj
9327 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 361.211 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 181.034 null ] >>
endobj
9328 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 350.252 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 170.075 null ] >>
endobj
9329 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 310.401 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 159.116 null ] >>
endobj
9330 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 299.443 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 148.157 null ] >>
endobj
9331 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 288.484 null ] >>
+<< /D [ 9282 0 R /XYZ 81.145 137.198 null ] >>
endobj
-9332 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 238.67 null ] >>
+125 0 obj
+<< /D [ 9282 0 R /XYZ 79.37 113.741 null ] >>
endobj
-9333 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 227.711 null ] >>
+9281 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F71 185 0 R /F67 179 0 R /F19 182 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-125 0 obj
-<< /D [ 9298 0 R /XYZ 79.37 203.004 null ] >>
+9335 0 obj
+<< /Filter /FlateDecode /Length 3151 >>
+stream
+x[Ioc9ׯZ"A70AnN20Ծ-NQg⦏/\|㷻!J =\LqW;
+B"1;O>FP'Mߕќs {&.~<p]cN I3/IۋT5?qa{|<n4 ߞLɏTaL FHh"k6Onu==+ ޳rJ99z::`fT Ń|1?<Tc7QQ \-F'MHF]&y,-/QȂ KB4 Em
+GX>BV+م?tB6"jxī{1M/n4 IkjNC̦*Z541v +q¢̹i*z>QܴʏX=7Z8;DT+
++h=\ 21\ګ|rT
+>|µ̢h*`ɽM~!&b?[/:u%"j,A+OeB[YsvR7w ЎQD$|Ly< Ӓj9yf <xL蠍\,vpm"=R
+{M~*!g:yϳuKgPV'+@ªQ~? V׿\>
+FMľg'l{` f/Xkb<%,TZqJ,pmF|U~ϻsSW}?~'gxǤ_%|NΡ_s6񭂃~MBsP4(O;m5"AA~؜wf54k/IGyE8$7̊pސ3HY*#C! qEdkIg2@hSl>;GJ:]$[R‘'7لo:N
+e!mF_g$ iC{0eJ:-u9"RF煞aY>PI^,y?EVj2UvL0⳼R6doD?">$c_{cg~9 &7 asjhԋz{J_lû8MIKq) 9&[xE3XQöғv(p4あ鼹LLM>U-NgŠ)F u* ~ͰlcΪHY<B)lEM;'Z.>Bk $)`ݥZuyHnL5O)"2:NzNLP@߄c֫KY_(a'N:ȓN
+t@^pHX*}%
+٘[.QjzF")㓱yJSP'_Ha(?'"oR[-+ɮ6)ugE=)텯3V=Xjj.0 BkH.W+a-'G Y(gV#CHhG`=o;#F RSzBnѲS<2'eV*XڏfՇMVYu05fk_Z[s>fQMI9^c+&@`
+rBWZmQu^MͅhjM1}Ŏm-gc>Gah?eMyTm"۹Rqd|z&>8|ܴK; hyj;iǀrA:AĔLin joc@{k9:qj1͒wNGr@5Z4g'եvO^".5H[rI~3n(k%g Wf"۱8)f MU`ؖM%$ ">bK|æJ8(.Jފ"6ag;<Rz2r%p:h4N|d9\t[ښ T@W s1[Vk9"$kV4C`lAin:}t楬9voKƞO1+֦yRԽ<O 0VK{h7?B,kvOkj,J3kATDs(7)(\OzVogY&O"5-}\k@id4U4w<f<)mQQx)L1 8_ޡH (/3l`KQA>` ?Ho=Z_$gԾЗ2]q|| <߄
+endstream
endobj
9334 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 135.2 null ] >>
+<< /Type /Page /Contents 9335 0 R /Resources 9333 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R /Annots 9358 0 R >>
endobj
-9335 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 124.241 null ] >>
+9358 0 obj
+[ 9280 0 R ]
+endobj
+9280 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 90 693.79 101.955 704.351 ]/A << /S /GoTo /D (section.0.12) >> >>
endobj
9336 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 113.282 null ] >>
+<< /D [ 9334 0 R /XYZ 78.37 808.885 null ] >>
endobj
9337 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 102.324 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 660.652 null ] >>
endobj
9338 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 91.365 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 611.835 null ] >>
endobj
9339 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 80.406 null ] >>
-endobj
-9297 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9334 0 R /XYZ 81.145 566.007 null ] >>
endobj
-9342 0 obj
-<< /Filter /FlateDecode /Length 2391 >>
-stream
-xڵZ[o~ϯ0цû
-D,"dZ,k(Uۦ>J:֪>b|]F24%q8dfv Qrzs4(g3S%˲|6Xe벧/op&9_Ԏv!gSQl/Sfg"W`ܪ
-9{ૢ"eHD֘6NxIdWɕ'SQh6&_뉔F(}v; ]}:*M 3e Mut]c€8<h;+3AV򲬬A,B9IS Y-6L&
-D݊
-"1\߉qau.]/fE&.AHGL_+ cZFY3ȼMT ;k[ }VeK5Tijr=]W~VYT*8s"S &M+Wjʗ3~С=˟=r{(W9pa",%zWlJf2XZXL$^:ˆhKU'T[BA.t`q;m5z2.лGuuvkN%& tQt>k+϶Wa|(/60.ڄ4]>}p2 0ӶLHK$o>|=
- 弌Β0.x/%.60.zCY?ԟOqn:*О1s&C?<94(ca=z`᠉81ɟ|8,ٹ(1Iꡯx=P1gץ^R^p]iecV20s{Sz}92>k:!}:̭j(
-G~(7R`4§Khc )-H7I 9_6Re铞8ǽ_vWr#5^
-oVD3pUuMqaDB+)~vn4
-O&ώd)- FE[2`>:~jcpcB1銰a"%SCOj9-L?A<g/7&"blL">+sp1;rC[]UR/ݛOτ1ħo~"TЖxUo_Oۨ/C֧njl"">}8qGgw9P}hZxk+PTq$LJg*ͪP}ж Ozs/ҍas _RlFСٌ `8~ Kc
-endstream
+9340 0 obj
+<< /D [ 9334 0 R /XYZ 81.145 555.048 null ] >>
endobj
9341 0 obj
-<< /Type /Page /Contents 9342 0 R /Resources 9340 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9334 0 R /XYZ 81.145 544.089 null ] >>
+endobj
+9342 0 obj
+<< /D [ 9334 0 R /XYZ 81.145 533.13 null ] >>
endobj
9343 0 obj
-<< /D [ 9341 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 522.171 null ] >>
endobj
9344 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 493.28 null ] >>
endobj
9345 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 482.321 null ] >>
endobj
9346 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 441.474 null ] >>
endobj
9347 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 668.209 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 430.515 null ] >>
endobj
9348 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 657.25 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 377.713 null ] >>
endobj
9349 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 646.291 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 366.754 null ] >>
endobj
9350 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 355.795 null ] >>
endobj
9351 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 344.836 null ] >>
endobj
9352 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 333.877 null ] >>
+endobj
+129 0 obj
+<< /D [ 9334 0 R /XYZ 79.37 322.376 null ] >>
endobj
9353 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 141.71 null ] >>
endobj
9354 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 130.751 null ] >>
endobj
9355 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 119.792 null ] >>
endobj
9356 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 521.758 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 108.833 null ] >>
endobj
9357 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 9334 0 R /XYZ 81.145 97.874 null ] >>
endobj
-9358 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 499.84 null ] >>
+9333 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F15 180 0 R /F19 182 0 R /F68 181 0 R /F73 267 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9359 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 423.128 null ] >>
+9361 0 obj
+<< /Filter /FlateDecode /Length 2080 >>
+stream
+x[=s7 +t
+$HG3>I2i*}]IqHӟ'yI˧NA4?>< BC%$_߾I FJx'];,|c(sϜ~5m)Ѥ*D [vvoVyVuO/
+X]_/zQA
+<bDJ޻M⛪Bu$2EłM]%ҳєn#
+SxD
+_vIJcP8CdgS~CL[C`(kg##h6Lv 7u.r% {籁Q
+Znدp'ELMS$9Z!&m| ֊hiٷ7W~)&Nm_}-9e;ޑMږ+>ϗgJ|0n/>Gg)eWszx:13.l3D4%c|&zP4/OH9dV)/J1\rH9R1hBhw o)d+˓O-u4$A˲nJO9em h~ `ˬx߯m[Ye\/tμӨq6 =>%t\+%Hb5yG `sਫ@J(Iib#X``}NY<ni_;|Gmt=sR偮^(<<AJ-c DKn`lh e^hofS:VSWƒ#UX,w자qcGOJƚ#Ҥ=i І@<kW| =Ge.\%A@FU֜d
+zt|mrZLHbc `/:Z[H]1v[dP8WqUx&ƄDEY 86{n؊+`
+PCfUbW3P36R'#EpNaR_>
+rAW
+endstream
endobj
9360 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 412.169 null ] >>
-endobj
-9361 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 401.21 null ] >>
+<< /Type /Page /Contents 9361 0 R /Resources 9359 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9362 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 9360 0 R /XYZ 78.37 808.885 null ] >>
endobj
9363 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 742.926 null ] >>
endobj
9364 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 731.968 null ] >>
endobj
9365 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 721.009 null ] >>
endobj
9366 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 710.05 null ] >>
endobj
9367 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 663.225 null ] >>
endobj
9368 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 652.266 null ] >>
endobj
9369 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 641.308 null ] >>
endobj
9370 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 630.349 null ] >>
endobj
9371 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 619.39 null ] >>
endobj
9372 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 608.431 null ] >>
endobj
9373 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 597.472 null ] >>
endobj
9374 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 586.513 null ] >>
endobj
9375 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 575.554 null ] >>
endobj
9376 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 564.595 null ] >>
endobj
9377 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 553.636 null ] >>
endobj
9378 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 542.677 null ] >>
endobj
9379 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 531.719 null ] >>
endobj
9380 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 520.76 null ] >>
endobj
9381 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 509.801 null ] >>
endobj
9382 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 480.909 null ] >>
endobj
9383 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 469.95 null ] >>
endobj
9384 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 119.268 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 458.991 null ] >>
endobj
9385 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 108.309 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 448.032 null ] >>
endobj
9386 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 97.35 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 437.073 null ] >>
endobj
9387 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 86.391 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 426.115 null ] >>
endobj
-9340 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+9388 0 obj
+<< /D [ 9360 0 R /XYZ 81.145 415.156 null ] >>
endobj
-9391 0 obj
-<< /Filter /FlateDecode /Length 2186 >>
-stream
-xڭYKo8Wt~;a
-K[M}
-D1N8H49n[0wҫҀT"߬hڱtJ'NUZ䈤0 ZH!CRPio@4fp*-VDҧu,WC$VH7ΝGDJu
- f+xX.XW{hjەo[Ze]!OTe}Ia{xUBJ ZՇC(1`1>u1CR$06٫{L1Cw Zb;~+Ȑkpg9nA=vQe~fږ]aڗ۝惛O󽷇J(Φ .Iit!L$DzC'T:' qB=s
-
-wZ٫@]")CrU@hmʯ꣔#-h,~(xhMv3)!&*{<}Y}U"z€$/A1D}x
-.1<Cjдv뮏 0UjUw@HƳcSwjxɲZYv~Dyl;JpGšƫZևr.QcI#9bd,lAeU<vN5Zl 神ű˲|}FBpF,GyC vP%eECv‘A O#E
-C`U|# Ζ
-*%! 닊9#ҔiO+bi0c11%87tH$$(d2l"̩3) O [u-˗ls[~=:,A(Kdq] ٣qƨdHp]17HB&]߃c^Wώ!٬־
-i|L´=ya 0ϡ<(ϡ$RƲ$&n˦uD!B2  Uƒ߄S oBMU|<%fQV+DS$I
-6 RhDp*)~GNCM
-Zk1XS  &>"߹@AGf0,IjWkn5c7pɿ}=f'ܱ99Ӄ} XY)mLX(!i"8M ovLDhZ)]ExULqBY<C#ʉ9y1#+<mUqԶG6| վM VݿD"2Cx#2I" I{[Vlmvep  UcLDXOpWsh
-O[>݀\7(8WnykxdClO$8Nβ WHđ_ɲyJ#4i#{RPHCN${Çz԰l+>TJ&m9S
-endstream
+9389 0 obj
+<< /D [ 9360 0 R /XYZ 81.145 404.197 null ] >>
endobj
9390 0 obj
-<< /Type /Page /Contents 9391 0 R /Resources 9389 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R /Annots 9425 0 R >>
+<< /D [ 9360 0 R /XYZ 81.145 393.238 null ] >>
endobj
-9425 0 obj
-[ 9388 0 R ]
-endobj
-9388 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 89.997 482.318 101.952 492.521 ]/A << /S /GoTo /D (section.0.13) >> >>
+9391 0 obj
+<< /D [ 9360 0 R /XYZ 81.145 382.279 null ] >>
endobj
9392 0 obj
-<< /D [ 9390 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 371.32 null ] >>
endobj
9393 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 360.361 null ] >>
endobj
9394 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 331.469 null ] >>
endobj
9395 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 320.511 null ] >>
endobj
9396 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 309.552 null ] >>
endobj
9397 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 298.593 null ] >>
endobj
9398 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 287.634 null ] >>
endobj
9399 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 276.675 null ] >>
endobj
9400 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 265.716 null ] >>
endobj
9401 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 254.757 null ] >>
endobj
9402 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 243.798 null ] >>
endobj
9403 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 232.839 null ] >>
endobj
9404 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 221.88 null ] >>
endobj
9405 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 210.921 null ] >>
endobj
9406 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 199.963 null ] >>
endobj
9407 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 615.407 null ] >>
-endobj
-129 0 obj
-<< /D [ 9390 0 R /XYZ 79.37 591.945 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 189.004 null ] >>
endobj
9408 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 449.186 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 178.045 null ] >>
endobj
9409 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 400.37 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 167.086 null ] >>
endobj
9410 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 354.541 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 156.127 null ] >>
endobj
9411 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 343.582 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 145.168 null ] >>
endobj
9412 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 332.624 null ] >>
+<< /D [ 9360 0 R /XYZ 81.145 134.209 null ] >>
endobj
-9413 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 321.665 null ] >>
+133 0 obj
+<< /D [ 9360 0 R /XYZ 79.37 122.708 null ] >>
endobj
-9414 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 310.706 null ] >>
+9359 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 182 0 R /F15 180 0 R /F28 611 0 R /F71 185 0 R /F67 179 0 R /F81 505 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9415 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 281.814 null ] >>
+<< /Filter /FlateDecode /Length 1951 >>
+stream
+x[r8 +AURՊsnSs9_hrv(<ɈA ?Ds_$Q2\'`rxwI=~z Qƒ[?SG:QZ
+Acȗp< wx.GJKьGtDIqpU('7h}ѷo %7-R4Lt1 Gssh]MQ)*-5Owso[)M4@9F
+Z"4q!JUJ̈́%w38"a)T11񉈔BR9
+}U5Rthl)Q2=t4-}
+$vG{N#hdGSTr`Y}7C9k?%K
+A1H-nw \({-=HNe"m":9S$cJEv%D8P }e}qg[PVrlUrE+v(GV
+@PIW8vl R
+BE]QS|?B Z:6Tw巓ԃ)C4iQYRߟzR-0䫳2(W(қ'N}il ^1y9OWڴvap-rsӷS[ۄpvf:^O7)J2<*{&2ZW#0C)|~TiqS-c>[h-[U4/jb4ϾǰK4@wgPh C*
+R 8;VZ)H/P5Ko_#"9Gù(7H_SޠJ5 N+@47"W΂О%o E)XRHv-4H4Tvqsb F$VpniRT,Kl)Jːxô f^?5t+ug=h[l"M.+(bwb/:Q\f|jyO
+!(E)[%o!Fo|*)ęU6R<[qX~մp]/'cČӸcڕhm6Tv3ƥtȸ2}aB* KFiGĥ
+pz5H;LA^ol]ŔiO!*c GV7 )E8oejk.ww:vSp R1kv/f}jz5wp8t/z057VΩ
+μYjr~~=;4t@eyg5<q
+endstream
+endobj
+9414 0 obj
+<< /Type /Page /Contents 9415 0 R /Resources 9413 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9416 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 270.855 null ] >>
+<< /D [ 9414 0 R /XYZ 78.37 808.885 null ] >>
endobj
9417 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 230.008 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 735.177 null ] >>
endobj
9418 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 219.049 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 724.218 null ] >>
endobj
9419 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 166.247 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 713.259 null ] >>
endobj
9420 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 155.289 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 702.3 null ] >>
endobj
9421 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 144.33 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 691.341 null ] >>
endobj
9422 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 133.371 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 680.382 null ] >>
endobj
9423 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 122.412 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 669.423 null ] >>
endobj
-133 0 obj
-<< /D [ 9390 0 R /XYZ 79.37 110.905 null ] >>
+9424 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 658.464 null ] >>
endobj
-9389 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+9425 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 647.505 null ] >>
endobj
-9428 0 obj
-<< /Filter /FlateDecode /Length 2677 >>
-stream
-xڥZK8WƤ>00@f`h`鶰Hr;o*H-=SYb+t0_ѣow>~I"d'ww *M┈xȘMv?BZ2H$SFnD+wyڼ)n&~?~f$%i#yH,QxMn++9y&%{„iѣE1Ј<ۭrE<mQCWsSrUe37_7>/|egtSeM?Ǎ.lG(=gG[VAGRzS̿P!hXa3hŦ
-:6nòbTC"$ ;$sNMF)s Vrp,:Q)yE2Ͷ5iѺPeـ#11>fi娱6U8+1~ > g-ow&11 H0Svv\+IE$UBjֆ超f^gKm7m?Gm;Xî_rq7NR:E\Սyɪ5 *aRPhmj}; 7 _Pnӳ=J
-TK}l$q-J^Wоsd7etB F h<!&a]i S[V4벃Yuٯ`J*"]E& i]xz0pŤ<c⊑9G#ۜ f]8>
-BxmF=ڠh ?ݚigzY EDvqfY 8>3ot )YZP[~q{IRh[nfu_e^4s_LQ3K!U4 #`nvpgJ_;9LcR֣fA=c[h
-H'04;Gt5sdӞڡšCỹK!2<$Kz%P*An#Tȿ#{h"A)Ih3`WM
-R(޴yI'm5TYQjWou0\Bٳ¶+L
-8$R<y.)A9Ҟp\q9! Xt /wtiW~WͦŒx+_e }g<,kǎ ] K\akE
-vHp"K(Iw'z ͛VD$Z0Dt(zmNgrpi\+X "5C8 @.s_:xǝt]=,K\?ǔ/sYsѦVpީIN>Ɨf@mVР Iw `]4mK pwlM
-wYnj^Ŏ+ݟ
-B pxN{FehC<Ӄ|ƓEDR6R_ܽ?nop
-endstream
+9426 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 636.546 null ] >>
endobj
9427 0 obj
-<< /Type /Page /Contents 9428 0 R /Resources 9426 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9414 0 R /XYZ 81.145 625.588 null ] >>
+endobj
+9428 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 614.629 null ] >>
endobj
9429 0 obj
-<< /D [ 9427 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 603.67 null ] >>
endobj
9430 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 619.932 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 592.711 null ] >>
endobj
9431 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 608.973 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 581.752 null ] >>
endobj
9432 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 598.014 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 570.793 null ] >>
endobj
9433 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 587.055 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 559.834 null ] >>
endobj
9434 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 576.096 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 548.875 null ] >>
endobj
9435 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 527.279 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 537.916 null ] >>
endobj
9436 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 516.32 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 526.957 null ] >>
endobj
9437 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 505.362 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 515.998 null ] >>
endobj
9438 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 494.403 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 505.04 null ] >>
endobj
9439 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 447.578 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 494.081 null ] >>
endobj
9440 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 436.619 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 483.122 null ] >>
endobj
9441 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 425.66 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 472.163 null ] >>
endobj
9442 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 414.702 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 461.204 null ] >>
endobj
9443 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 403.743 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 450.245 null ] >>
endobj
9444 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 392.784 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 439.286 null ] >>
endobj
9445 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 381.825 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 393.458 null ] >>
endobj
9446 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 370.866 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 382.499 null ] >>
endobj
9447 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 359.907 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 371.54 null ] >>
endobj
9448 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 348.948 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 360.581 null ] >>
endobj
9449 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 337.989 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 349.622 null ] >>
endobj
9450 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 327.03 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 338.663 null ] >>
endobj
9451 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 316.071 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 327.705 null ] >>
endobj
9452 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 305.113 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 316.746 null ] >>
endobj
9453 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 294.154 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 305.787 null ] >>
endobj
9454 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 265.262 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 294.828 null ] >>
endobj
9455 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 254.303 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 283.869 null ] >>
endobj
9456 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 243.344 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 272.91 null ] >>
endobj
9457 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 232.385 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 261.951 null ] >>
endobj
9458 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 221.426 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 250.992 null ] >>
endobj
9459 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 210.467 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 240.033 null ] >>
endobj
9460 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 199.509 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 229.074 null ] >>
endobj
9461 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 188.55 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 218.116 null ] >>
endobj
9462 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 177.591 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 207.157 null ] >>
endobj
9463 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 166.632 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 196.198 null ] >>
endobj
9464 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 155.673 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 185.239 null ] >>
endobj
9465 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 144.714 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 174.28 null ] >>
endobj
9466 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 115.822 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 163.321 null ] >>
endobj
9467 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 104.863 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 152.362 null ] >>
endobj
9468 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 93.905 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 141.403 null ] >>
endobj
9469 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 82.946 null ] >>
+<< /D [ 9414 0 R /XYZ 81.145 130.444 null ] >>
endobj
-9426 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9472 0 obj
-<< /Filter /FlateDecode /Length 1568 >>
-stream
-xYMoFWE~Ҁ@@Cuk
-BVt)IwHJ]I5b>ΛY6ɛ~oN~_HZ&x2]0XDXM43ьP͒:sbM:ibI!(W~DŽquP0= u _Z?[~o}zŲ*4 n 08!;=S\uW+߮!+OG*eD4F,:s}U)˼gE+=XpMT);.]Xγ\]utfOLR/{b vFht~k*O!uMUY(Q\ ӲޚkWּb#RkNeX
-!z֬-\޻H1"/XaRd{C2KTCZ˱8
-!z4fJ}G*D)F9.7ڡPCES) j@r
- witЛh/
-O5W\76k#
-bk#u2x>m1se,oQf{sFb)PQT #4R)>6l+6x_ qYzBZ#SC,t]{k8ʚ5 m]Vy^igTSoXpM-U:Dnٜ}ܬ%:-4'FH-!-
-,wiBEis:XkisxٳbtJ(S0}?Om)aq2BT>6Nx#*"ug!f
-aqc|pcK64{pI9#'e4SnSWP^葘K5<hɔ+Wo
-wkCIVn)T׳OdS)S}c( `(~UXhܻ:s~$%`jXxIdYEuC^޶_j\mC2u?cs1p۝7F,~ѥyqŲ*ZVf[jMKUXҴf51;BBMYwX/dQ'1q}t`!#cth(_wF| h=d +t84cCRI#43
-endstream
+9470 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 119.485 null ] >>
endobj
9471 0 obj
-<< /Type /Page /Contents 9472 0 R /Resources 9470 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9414 0 R /XYZ 81.145 108.526 null ] >>
endobj
-9473 0 obj
-<< /D [ 9471 0 R /XYZ 78.37 808.885 null ] >>
+9472 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 97.568 null ] >>
endobj
-9474 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 768.832 null ] >>
+9473 0 obj
+<< /D [ 9414 0 R /XYZ 81.145 86.609 null ] >>
endobj
-9475 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 757.873 null ] >>
+9413 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9476 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 746.914 null ] >>
+<< /Filter /FlateDecode /Length 2384 >>
+stream
+x[n:+jzqu%R#k@k=,rYTb[G!)L/]MD_ﯧC 'F3۟O>D/%T_dJvy_ϔ"ڏT?gܟ.)Q@ (Q Z$(~?," U)URv[L:|͡ksKH/is+][`c
+A Уq}dv((h [.pahHn r&U#\wxJQeLda4`A~.T!c~~?F?cY tBx+(sLʈ6rHS=*<9e8R5w݇Ec㩗5 K5B1:]X7
+4J@VAI8
+"Gw;9KJm̭R(|0: TDu016H`EI (|(isr4ih CrQ v=
+o&-(}sE2HSH/r ߟhC2e]cAW
+n|`2 ۯ5"뼉{O}~*7yRW+vUښTYz?AcCn"~P¤pJ.‡oOI4
+endstream
+endobj
+9475 0 obj
+<< /Type /Page /Contents 9476 0 R /Resources 9474 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9477 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9475 0 R /XYZ 78.37 808.885 null ] >>
endobj
9478 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 768.829 null ] >>
endobj
9479 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 757.87 null ] >>
endobj
9480 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 746.912 null ] >>
endobj
9481 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 721.009 null ] >>
endobj
9482 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 710.05 null ] >>
endobj
9483 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 699.091 null ] >>
endobj
9484 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 688.132 null ] >>
endobj
9485 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 677.173 null ] >>
endobj
9486 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 666.214 null ] >>
endobj
9487 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 655.255 null ] >>
endobj
9488 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 615.407 null ] >>
-endobj
-137 0 obj
-<< /D [ 9471 0 R /XYZ 79.37 603.9 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 644.296 null ] >>
endobj
9489 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 538.546 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 633.337 null ] >>
endobj
9490 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 527.587 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 622.379 null ] >>
endobj
9491 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 516.628 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 611.42 null ] >>
endobj
9492 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 505.669 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 600.461 null ] >>
endobj
9493 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 494.71 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 589.502 null ] >>
endobj
9494 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 483.751 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 578.543 null ] >>
endobj
9495 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 472.792 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 567.584 null ] >>
endobj
9496 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 461.834 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 556.625 null ] >>
endobj
9497 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 450.875 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 545.666 null ] >>
endobj
9498 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 439.916 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 534.707 null ] >>
endobj
9499 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 428.957 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 523.748 null ] >>
endobj
9500 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 417.998 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 512.789 null ] >>
endobj
9501 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 407.039 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 501.831 null ] >>
endobj
9502 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 396.08 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 485.89 null ] >>
endobj
9503 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 385.121 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 474.931 null ] >>
endobj
9504 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 374.162 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 463.973 null ] >>
endobj
9505 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 363.203 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 448.032 null ] >>
endobj
9506 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 352.244 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 437.073 null ] >>
endobj
9507 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 341.286 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 426.115 null ] >>
endobj
9508 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 330.327 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 415.156 null ] >>
endobj
9509 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 319.368 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 387.26 null ] >>
endobj
9510 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 308.409 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 376.301 null ] >>
endobj
9511 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 297.45 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 365.342 null ] >>
endobj
9512 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 286.491 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 354.384 null ] >>
endobj
9513 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 275.532 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 343.425 null ] >>
endobj
9514 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 264.573 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 332.466 null ] >>
endobj
9515 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 253.614 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 116.276 null ] >>
endobj
9516 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 242.655 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 105.318 null ] >>
endobj
9517 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 196.827 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 94.359 null ] >>
endobj
9518 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 185.868 null ] >>
+<< /D [ 9475 0 R /XYZ 81.145 83.4 null ] >>
endobj
-9519 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 174.91 null ] >>
-endobj
-9520 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 163.951 null ] >>
+9474 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9521 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 152.992 null ] >>
+<< /Filter /FlateDecode /Length 2420 >>
+stream
+x[˲(߯4+FEXm#f}wYo z!?$t~냧o&/Ł5pAbVq%_;sDwX? EaV)4%
+ř2}UAmYTWS(HZ urd}Nф%zdB3!ŷgȼ@ɣƉGΤ&#oVwi4ZnkZB$@iO[ b'3 \0cUU^,Ȕ3FYegO{ՇfI).-b6كp8suE?GyoHZ`Bo\Gu\uۮsgY*$ tnoBcF tꔗ?ۍLBh~_rN$ZGE1%ZIaP;[ 4iKI $cAj|369?awj-(~!etfQ6'jl 8 OXe誑~]Uefr;!]5RjlWR꽡1߶fTqW{I?8X0V*XbJ]^RTjo!/1SO2nDwU7GH&4f)U**RSJ3jxzܽNJU#^zR(4Ti9
+UZ&8$=&M Q]STE޷22ci?_IfhDċjʏ"׺ CV1ӝJS%h>iF2R+ M} R؛p{tpK.BŸNTI^rgUlY5"+WhVn)YJʗ-$|e%R|TNu OrfәumkJAٿtí[E$&M8O ҋ 2K !s|( %5REGVo
+ڑ^8ΒYM ҂
+o]٬%6M PSVOX΀C} =rbo:U=czx;(d Tb[6YjSϢ*_&n܄̨}~/"IIZ+3E BpkR3gsseyL{blDhZT{2Px" NԸ39R]M8Nlu5"TA1KΒg)鑜cjnGOw<Yif^c9GyQ&:I $0B G4U iNFz AڕbjׅH'h ͛}{a?x5?0:d]06i٧]lTdW_CLZd4њKQ/pJ꟥WznwRja3KFd4lRmGd!Ҫ}uaP~C 9fkvF
+endstream
+endobj
+9520 0 obj
+<< /Type /Page /Contents 9521 0 R /Resources 9519 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9522 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 142.033 null ] >>
+<< /D [ 9520 0 R /XYZ 78.37 808.885 null ] >>
endobj
9523 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 131.074 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 768.829 null ] >>
endobj
9524 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 120.115 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 757.87 null ] >>
endobj
9525 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 109.156 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 746.912 null ] >>
endobj
9526 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 98.197 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 735.953 null ] >>
endobj
9527 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 87.238 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 724.994 null ] >>
endobj
-9470 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9530 0 obj
-<< /Filter /FlateDecode /Length 1883 >>
-stream
-xڵZ]o6ϯ8/fߢ2lh׭ 0VYreIW}E8M|tsxx>H刎~<HxӗI&$:b#f(ьPF뱑9ٿK I&3A S2F̈́l,||8)O_OWuND@KHsL?E5GٳuU˟"?\N=@@IN)v aFzl?j{io]&<|tH'0¹jRhI&\k/['['^a*yy=130vd L|ԩ"&^ 3zVEϦmw狪V~qvF!SiNED;u5o5##yD
-G?D}X5Y_^jC1"*R-a}
-N/CP}Wdh|džeTy "#Wh
-4!ZhOaϔ) {0f}k{nh=JaLVFzU:$mڈ n޸36$x%NjhH pl[5W(ۄpkڴ&fMq(_-8!:`hU=6Dʷeu]w?:g# ZcWkPFhl7/zEIYuzef-|>-#Sz3A۹٨ FqhI((!]0B cP~m־6CYKh2: xs$]_0*" ",@o6
-Em;^4vKW3h}$xS)ږl*"3Fڞ|S<pWJXT}<biGhDS/;A5<ZFUҬ*z{Y;.YB6(_yLٌvY/CS 9G9DߋsׇpNQ#iʺpuy>VKW[iY`
- O
-хh&7˫}:Q'S9NiШ}N,z"gUUdMΕv(㠙zA$;OZб*D7h<'QECF'U IPʫB>/ X-hݱw]ѲyLm(1C (E`iuJҡ goo]=(y}٪
-v1/WPCG$8x!{RQ eC=[fj쬱'NpBB'D?O;`.knq4X BЫ
-
-ӗ,A\\2Kac{<B:[9݆fLD_Ĺu޻0(ӊ^qv<ΦN>nXŇ'{H<=+,ZNЈ\vAP~tӁbڷRnEҼl6kٳ1.Yap{ڃ?=y;]Д/h"->J>͉{C>{CAQ$CE"Lʜi AXuʅ焏6dVNnV['
-endstream
+9528 0 obj
+<< /D [ 9520 0 R /XYZ 81.145 714.035 null ] >>
endobj
9529 0 obj
-<< /Type /Page /Contents 9530 0 R /Resources 9528 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9520 0 R /XYZ 81.145 703.076 null ] >>
+endobj
+9530 0 obj
+<< /D [ 9520 0 R /XYZ 81.145 692.117 null ] >>
endobj
9531 0 obj
-<< /D [ 9529 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 681.158 null ] >>
endobj
9532 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 622.379 null ] >>
endobj
9533 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 611.42 null ] >>
endobj
9534 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 600.461 null ] >>
endobj
9535 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 584.52 null ] >>
endobj
9536 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 573.562 null ] >>
endobj
9537 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 562.603 null ] >>
endobj
9538 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 551.644 null ] >>
endobj
9539 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 540.685 null ] >>
endobj
9540 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 529.726 null ] >>
endobj
9541 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 518.767 null ] >>
endobj
9542 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 507.808 null ] >>
endobj
9543 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 496.849 null ] >>
endobj
9544 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 485.89 null ] >>
endobj
9545 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 474.931 null ] >>
endobj
9546 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 463.973 null ] >>
endobj
9547 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 453.014 null ] >>
endobj
9548 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 442.055 null ] >>
endobj
9549 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 431.096 null ] >>
endobj
9550 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 415.156 null ] >>
endobj
9551 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 404.197 null ] >>
endobj
9552 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 393.238 null ] >>
endobj
9553 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 362.354 null ] >>
endobj
9554 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 351.395 null ] >>
endobj
9555 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 340.436 null ] >>
endobj
9556 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 329.477 null ] >>
endobj
9557 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 318.518 null ] >>
endobj
9558 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 307.559 null ] >>
endobj
9559 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 296.6 null ] >>
endobj
9560 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 285.641 null ] >>
endobj
9561 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 274.682 null ] >>
endobj
9562 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 263.723 null ] >>
endobj
9563 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 252.765 null ] >>
endobj
9564 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 241.806 null ] >>
endobj
9565 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 230.847 null ] >>
endobj
9566 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 219.888 null ] >>
endobj
9567 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 208.929 null ] >>
endobj
9568 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 197.97 null ] >>
endobj
9569 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 169.078 null ] >>
endobj
9570 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 158.119 null ] >>
endobj
9571 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 147.161 null ] >>
endobj
9572 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 136.202 null ] >>
endobj
9573 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 125.243 null ] >>
endobj
9574 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 114.284 null ] >>
endobj
9575 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 103.325 null ] >>
endobj
9576 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 92.366 null ] >>
endobj
9577 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 250.774 null ] >>
-endobj
-9578 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 9520 0 R /XYZ 81.145 81.407 null ] >>
endobj
-9579 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 228.857 null ] >>
+9519 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9580 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 217.898 null ] >>
+<< /Filter /FlateDecode /Length 1984 >>
+stream
+xZn6+> @|_nU[>%ۤ.)x<~>rߟOǏ rj4?|w1DY[^s}>ksF[$6HB
+O_gƤ?Kg?;GK<]tthTc_hIxKgR!1jƹi(K$Ec( hemxLv+Z+ ֈVv) @9f:j<E<o?.-1׍W2-Ot)ςK*`dvP场[$YQ58&"pϊ#0SrZ<jmE=zgh
+R$vxsoE:IΩEg[PN!q!44g4jRsC+HWL\>&wc)wHUUtJ='<:ٯby7|zC>DVR(/9C!`1fIff-PzYNѲlSlk8%(C\@;ԨX)(IF``ڷCYqKF:% Ǡ`pYrI !)i| e=8@sP<y9􆲛"T%Ҙf'=INip+@{FL$DϔL*K=N\\h /-qrD}KteK|U~4}bo_d;sTtR1 4<it>bQZ?ו"ﭫʖ#H_Q/(|8'x_P!QGe@h9eE(ck~R%}^ʑʔslnuɖfnb*A Y(O|R$/巙UvH l{-~=+6*[F8δCڡA!De!y8jE7Jwx-ZhJ5sB*\^zX^Yz1e+ 
+Gz3_L>7)ҝGDvmMT1rgBK[fw
+}L{@; kqNF=9k$d:'T)egܬqe'v"#GsmTGWR0K3&
+2&9쐾r 5QҗKz=-=z=#u0OnwH,
+ 
+7*\
+_ ³i} Yjc?2DO
+endstream
+endobj
+9579 0 obj
+<< /Type /Page /Contents 9580 0 R /Resources 9578 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9581 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 9579 0 R /XYZ 78.37 808.885 null ] >>
endobj
9582 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 768.829 null ] >>
endobj
9583 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 757.87 null ] >>
endobj
9584 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 746.912 null ] >>
endobj
9585 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 735.953 null ] >>
endobj
9586 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 724.994 null ] >>
endobj
-9528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9589 0 obj
-<< /Filter /FlateDecode /Length 2161 >>
-stream
-xڭZ[o~ϯXO8.Ҧ ƾ4-AcD$NduF%%~!?ι9ߙQ_D>z1Sbq}hA1%RVD./?0ES` 5طtrBJ 1Yu~9_x/Ybcvpm7w%۴.O~ػ}WD'SSrqH6
-:
-HBőY 1|xxɉdӞ;WP"d|s}\¹-sp?ϼ3,~Vcqೈr͚(#B͌#ngb} 7Ulն)1p<U)}&)c^nVa*vuV+.4E #Jugjm*.j7nuVO7պv5N;kT3=O7P? Y'Zw ܀K@3v4O`lx
-UsçdC"Ux׃T[B)nY_;%Qnڦp% jb1%4DC&ʪN>ڠBlSH|K~88-g
-,"xl^A#1
-Wݤsq ɎΝSU(cwܕu#%_aj\w<tbiԮlb6w5ے}w(6͍ns8ބP v4`( g#!PwhJ}` Ba ; u bq/knQ>ri>++?E niCnWww
-^L˓_/"B磿iX44)/f)Ƙ ]RGm׵ W詏MQVƮ"4rcWWGO INz=[ҟBhXu3di4%NJxZ >z/.NIB=6t%z^7D)1pwP}CRue*O?ℚT-
-hJ8k܉Dvv/]ҜwfkQ 7h<U/Ai{՞Uw^:<W4zYTn"9cVR %oF^
- FJK믓,U]zp`k#MvBLIQB]_@=8hϪ^$;%ʏ{w,S 5_28=͊A?fpb>:eQ^S)ǝbh9lFWf*:`diHj/N'ӭMa12
-%v2}<lm}m_; %.,ǁ(""qi7
-endstream
+9587 0 obj
+<< /D [ 9579 0 R /XYZ 81.145 714.035 null ] >>
endobj
9588 0 obj
-<< /Type /Page /Contents 9589 0 R /Resources 9587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9579 0 R /XYZ 81.145 703.076 null ] >>
+endobj
+9589 0 obj
+<< /D [ 9579 0 R /XYZ 81.145 692.117 null ] >>
endobj
9590 0 obj
-<< /D [ 9588 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 681.158 null ] >>
endobj
9591 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 625.801 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 670.199 null ] >>
endobj
9592 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 614.842 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 659.24 null ] >>
endobj
9593 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 603.883 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 648.281 null ] >>
endobj
9594 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 592.924 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 637.322 null ] >>
endobj
9595 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 581.965 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 626.364 null ] >>
endobj
9596 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 571.006 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 615.405 null ] >>
endobj
9597 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 560.048 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 604.446 null ] >>
endobj
9598 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 549.089 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 593.487 null ] >>
endobj
9599 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 538.13 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 582.528 null ] >>
endobj
9600 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 527.171 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 571.569 null ] >>
endobj
9601 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 516.212 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 560.61 null ] >>
endobj
9602 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 505.253 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 549.651 null ] >>
endobj
9603 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 494.294 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 508.804 null ] >>
endobj
9604 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 436.161 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 497.846 null ] >>
endobj
9605 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 425.202 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 486.887 null ] >>
endobj
9606 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 414.243 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 475.928 null ] >>
endobj
9607 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 398.626 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 464.969 null ] >>
endobj
9608 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 387.667 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 454.01 null ] >>
endobj
9609 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 376.708 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 443.051 null ] >>
endobj
9610 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 365.749 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 432.092 null ] >>
endobj
9611 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 354.79 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 421.133 null ] >>
endobj
9612 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 343.832 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 410.174 null ] >>
endobj
9613 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 332.873 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 399.215 null ] >>
endobj
9614 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 321.914 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 388.256 null ] >>
endobj
9615 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 310.955 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 377.298 null ] >>
endobj
9616 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 299.996 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 366.339 null ] >>
endobj
9617 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 289.037 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 355.38 null ] >>
endobj
9618 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 278.078 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 344.421 null ] >>
endobj
9619 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 267.119 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 333.462 null ] >>
endobj
9620 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 256.16 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 322.503 null ] >>
endobj
9621 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 245.201 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 311.544 null ] >>
endobj
9622 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 229.584 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 300.585 null ] >>
endobj
9623 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 218.625 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 289.626 null ] >>
endobj
9624 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 207.667 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 278.667 null ] >>
endobj
9625 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 267.709 null ] >>
endobj
9626 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 256.75 null ] >>
endobj
9627 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 245.791 null ] >>
endobj
9628 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 234.832 null ] >>
endobj
9629 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 223.873 null ] >>
endobj
9630 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 212.914 null ] >>
endobj
9631 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 201.955 null ] >>
endobj
9632 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 190.996 null ] >>
endobj
9633 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 180.037 null ] >>
endobj
9634 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-9587 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9579 0 R /XYZ 81.145 169.078 null ] >>
endobj
-9637 0 obj
-<< /Filter /FlateDecode /Length 1857 >>
-stream
-xڽZKo6Wi.ߤ ,h!'BPl:QaK^Iybwd8b[>p^2 |Og>\1$Lxv!:`ff`4#Tx1sh5s}DkaC0 Qp+Bń\͖yz{D%rO∄Hnq몎в&/Xfwa1&(U1+YY_,xvf]BqBtǮvťjun^h$274yfʓg8!DR`ϣ<JӼ
-[۴t J8Y1/(/ҫ:BtO>ANF ^f9BKXb$LZ1:؀"/FE^||@^2_[ibkK?Ч3%!֓Q8Eǣ" M G/ MqA?ڝRj8ˎf$a^b8D\Y`)RNLe!zۗeϻ|YT$(ʞ#4~mK cүPYaƯ” WF͆M2 )^;;jVYc8 譳_UeͯbYu~;wߧjqծ?w&#,|Xa.Bp=<S1[ yR"bO0e*U~w0IoN V?ܦ]"ok":mba,Ϲ9wHo^[$Hه \'8BvƹHо/%c4^m[U[SbDW |XB5V>k*F\wMPwme&cȦ*f!_ja:59˄%l^CIm;k
-Tqp@tY6a;cZw{YƼ0V%ACXֆht`R@ \OYD2=$E#^۝kux#4~Yfew%tVUs0Z飖(CE[*67%UyWnK<sB-]| $̒t'myٿs
-endstream
+9635 0 obj
+<< /D [ 9579 0 R /XYZ 81.145 158.119 null ] >>
endobj
9636 0 obj
-<< /Type /Page /Contents 9637 0 R /Resources 9635 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9579 0 R /XYZ 81.145 147.161 null ] >>
+endobj
+9637 0 obj
+<< /D [ 9579 0 R /XYZ 81.145 136.202 null ] >>
endobj
9638 0 obj
-<< /D [ 9636 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 125.243 null ] >>
endobj
9639 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9579 0 R /XYZ 81.145 114.284 null ] >>
endobj
-9640 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 757.873 null ] >>
-endobj
-9641 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 746.914 null ] >>
+9578 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F19 182 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9642 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 735.955 null ] >>
+<< /Filter /FlateDecode /Length 2410 >>
+stream
+x\=o#7+T&yp8$ÀeYvM.ɥV;H
+x;|3μ=~xfp|v!p8bA`OK>s|\-ΤY"iJ iP-C:rN! }rn9dW7}VXtř3sHt̗ڡA4C7~q<??*P_W&9tr]O%-(tU#ݒm<h8s^}tJĆp1Ɩbャ ÄAT#.:X%L30O1@¯gth()N||é<Vc8(Pi#xR;j)|D~:ʏ>r(.-D)|hx{#c4xl"Cw \9g2?c-y)׻q1 Z|l9d3Ϗ/: 4줭Url[M4~jXiw#u;SGBf2N
+4S/v>y.xwfv$BЯI][ iKdHݥp˔R-R( z${.SvO/j_ ՁE
+my)r@mt/`
+u|3E7E/gr2
+)7 4ֶHW,=Bsŕ~Nml!leGh jeZTHd_[&qKjS12PgWѩܻ)WѺ\%SeSl\߹)x7'׶evM2Raך-Rۢ.B(fřLߊ,ӺhF{<24_RGSwHO񯤠 ~-g:眎9~lM:}~&FJv2}2ٹtw'53q\mSQ
+:t/97j}+=ZUfkقdlɣe&FMV
+dZp^wt\2gd] 5]Qa6eKZϰy$"CR6W3y'f:tV АZ Z0c՞Z j갿Vm>Z1:,u<4 jms a\}EViHFh㴻Č&4#nTF[TkUj OOh[d]k@ŬZsRUskq)TzS}Aý9
+L)uy­478u I3GhICTeuhߚs4` h OҬuoZfK-`Đn4h>Z cξ @0\AE[#/;~]њX^fZ}ULiF.vu5 vU-<u?nȔ-|&fJthWth)2C]iET܆,T7o~;ew2̔'ϯ;{Q$y +ij- Rɩp8twRZud׮3lon/^*
+endstream
+endobj
+9641 0 obj
+<< /Type /Page /Contents 9642 0 R /Resources 9640 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9643 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9641 0 R /XYZ 78.37 808.885 null ] >>
endobj
9644 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 768.829 null ] >>
endobj
9645 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 757.87 null ] >>
endobj
9646 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 746.912 null ] >>
endobj
9647 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 735.953 null ] >>
endobj
9648 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 683.151 null ] >>
endobj
9649 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 672.192 null ] >>
endobj
9650 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 661.233 null ] >>
endobj
9651 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 650.274 null ] >>
endobj
9652 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 639.315 null ] >>
endobj
9653 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 628.356 null ] >>
endobj
9654 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 617.397 null ] >>
endobj
9655 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 588.506 null ] >>
endobj
9656 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 577.547 null ] >>
endobj
9657 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 566.588 null ] >>
endobj
9658 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 555.629 null ] >>
endobj
9659 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 544.67 null ] >>
endobj
9660 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 533.711 null ] >>
endobj
9661 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 522.752 null ] >>
endobj
9662 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 475.928 null ] >>
endobj
9663 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 464.969 null ] >>
endobj
9664 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 454.01 null ] >>
endobj
9665 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 443.051 null ] >>
endobj
9666 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 432.092 null ] >>
endobj
9667 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 421.133 null ] >>
endobj
9668 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 410.174 null ] >>
endobj
9669 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 399.215 null ] >>
endobj
9670 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 388.256 null ] >>
endobj
9671 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 377.298 null ] >>
endobj
9672 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 366.339 null ] >>
endobj
9673 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 355.38 null ] >>
endobj
9674 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 344.421 null ] >>
endobj
9675 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 333.462 null ] >>
endobj
9676 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 322.503 null ] >>
endobj
9677 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 311.544 null ] >>
endobj
9678 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 300.585 null ] >>
endobj
9679 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 253.761 null ] >>
endobj
9680 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 242.802 null ] >>
endobj
9681 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 231.843 null ] >>
endobj
9682 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 220.884 null ] >>
endobj
9683 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 209.925 null ] >>
endobj
9684 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 198.966 null ] >>
endobj
9685 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 188.007 null ] >>
endobj
9686 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 177.049 null ] >>
endobj
9687 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 166.09 null ] >>
endobj
9688 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 155.131 null ] >>
endobj
9689 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 144.172 null ] >>
endobj
9690 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 115.28 null ] >>
endobj
9691 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 151.148 null ] >>
-endobj
-9692 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 9641 0 R /XYZ 81.145 86.388 null ] >>
endobj
-9693 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 129.23 null ] >>
+9640 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9694 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 118.271 null ] >>
+<< /Filter /FlateDecode /Length 2081 >>
+stream
+x[=7 WL
+$@G3L2i*}~~"j9vexp#냬Wa߯ϯVN!|PGIw$ux)$/?~[p?=8е@s$'&~̗Y||SE6E xdZb7}++߭mYjXFBIc}'ih2:Qx*d?/,sz4 S#gM'T`h`
+b
+bj =_dOX~4Nh<y ȈByi`_7D`,p4QC-UH_N:iB_
+jIa#* U>ccU$yV`uFFŤ8<T5vg "J[Q[uwq(hW5=s7D.Uwq:-u
+n]7ϦNe
+2#rep4=)dFJ*(%ET2FԚ|2_[7&Ȑxd#'f!f~іu)c[Aפtib!MjɦaՄku-K0qa){j-Kktu]YFFW írCrtUΟW}齽C<dȱݜXtٝqG*Yg h^t®Ϛ%{"ҎcݍL[=Ő~ypuSD=R1(b.{(FaPT&qnwdʰ =$sf pmLU0 U ֦{4AC=7}ptrvef AwZsʐ!_{"ܮ!
+pJUZ.^7"Z04 T Q*\AqV2y0xc /CUa'GN*^!a#^:'v{Zw!X@F ω]t%Z2vUFwZ@so֧e^-k/U~x-d?8Lg4z'=H/
+V}TN0w+qǩ#$y +_fE`SXpóD-,"^"@
+endstream
+endobj
+9693 0 obj
+<< /Type /Page /Contents 9694 0 R /Resources 9692 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
9695 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 9693 0 R /XYZ 78.37 808.885 null ] >>
endobj
9696 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 768.829 null ] >>
endobj
9697 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-9635 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9693 0 R /XYZ 81.145 757.87 null ] >>
endobj
-9700 0 obj
-<< /Filter /FlateDecode /Length 2137 >>
-stream
-xڵZ[oH~ϯ4/z\M]FhWVڼyY!␘i nI߾
-/3:ӊ(BEIlwP[23MR\` CNXWQ%Ҫ^W\<F&&dr{zl7x?i5yX dqUGiTg~O`G*x)k3MfRnK4|)oìVzsiHeE[mT%.)=yEZ@T/"&
- L[IiI˛ M$<{ʥ=4~m-_OLf7CN/--Q쁿Xv_RJ1"xęE 80a%xhg<SkZߡS q^j2.hOqYƯ>K^HwX!.5n]4>& 9"EBsR˻8>,ݦuRVx4kff`n;whgPL|\/84C_pbyi^s UFW]d!J?7.pVb1G2 I(a'T mE*.OEQODq]yn@ j]VҤDS1.k@\,Qj-ZYQڎ+DVq.J 9% iֹ] !X*℘8Lϋ:SןhY;V-*Y\$]|+xk:!+iY[;j_}I'GjCOh˒d@ϭHLG; LTևF׳YM/lݾZb;!@aBdڑ5')~kI~= i_[]fS^5]tHg$QJ35]E`Rϛ* ?:
-*\ 肭
- rw:iUCCJõ2(\K衭5s15.e~F1-\ёK1+Sw!|?T
- x)pa)x[/G V9Ζyou7+~ϙ"< p %UP
-ou]AaTCݔrggӻ jVUF!s4)ٹy}hУS&7!ÁL8/ AݵVSey $tb*㙐vчSl.pݹtuGtBIPBSE;jQxRJ9Prѝ*z}呜ȁ><4A+/PWaþCT49~Jѐ`!04onGoN iN!wkl&L|o)ޕ{Y%=+h<r2 A1QܖvOmGZc|Cv˘$4"R 3
-r *9xQs8q :$.A.mia}NIhpQ@ IMSv@/zhk`?Fq
-9zv,,Y5\憟=
-Ԑ`Zq 4S{"Nh }i#"@)eF)dOTt^|!qg`'d5 CcqAu`f?;^E@L6p?9^c(N']#$X_q *<42:\У*ˢGoe?}%Ϳ ͡ݫ=S;~6NxSh@rf
-c7E~.ZWxx 0<A\~Y)_xyޓv3B3+M*}!Ҫk;
-zX+ܙZC2iuY+_JYy.f]@ !
-endstream
+9698 0 obj
+<< /D [ 9693 0 R /XYZ 81.145 746.912 null ] >>
endobj
9699 0 obj
-<< /Type /Page /Contents 9700 0 R /Resources 9698 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9693 0 R /XYZ 81.145 735.953 null ] >>
+endobj
+9700 0 obj
+<< /D [ 9693 0 R /XYZ 81.145 724.994 null ] >>
endobj
9701 0 obj
-<< /D [ 9699 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 714.035 null ] >>
endobj
9702 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 703.076 null ] >>
endobj
9703 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 692.117 null ] >>
endobj
9704 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 663.225 null ] >>
endobj
9705 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 652.266 null ] >>
endobj
9706 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 641.308 null ] >>
endobj
9707 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 630.349 null ] >>
endobj
9708 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 619.39 null ] >>
endobj
9709 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 608.431 null ] >>
endobj
9710 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 597.472 null ] >>
endobj
9711 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 586.513 null ] >>
endobj
9712 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 575.554 null ] >>
endobj
9713 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 564.595 null ] >>
endobj
9714 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 553.636 null ] >>
endobj
9715 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 542.677 null ] >>
endobj
9716 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 531.719 null ] >>
endobj
9717 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 520.76 null ] >>
endobj
9718 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 473.935 null ] >>
endobj
9719 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 462.976 null ] >>
endobj
9720 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 452.017 null ] >>
endobj
9721 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 441.058 null ] >>
endobj
9722 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 430.1 null ] >>
endobj
9723 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 419.141 null ] >>
endobj
9724 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 408.182 null ] >>
endobj
9725 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 349.402 null ] >>
endobj
9726 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 338.443 null ] >>
endobj
9727 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 327.484 null ] >>
endobj
9728 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 316.525 null ] >>
endobj
9729 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 305.567 null ] >>
endobj
9730 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 294.608 null ] >>
endobj
9731 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 283.649 null ] >>
endobj
9732 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 272.69 null ] >>
endobj
9733 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 261.731 null ] >>
endobj
9734 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 250.772 null ] >>
endobj
9735 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 239.813 null ] >>
endobj
9736 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 204.944 null ] >>
endobj
9737 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 193.985 null ] >>
endobj
9738 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 183.026 null ] >>
endobj
9739 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 172.067 null ] >>
endobj
9740 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 161.108 null ] >>
endobj
9741 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 150.149 null ] >>
endobj
9742 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 139.19 null ] >>
endobj
9743 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 128.232 null ] >>
endobj
9744 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 117.273 null ] >>
endobj
9745 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 106.314 null ] >>
endobj
9746 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 95.355 null ] >>
endobj
9747 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 9693 0 R /XYZ 81.145 84.396 null ] >>
endobj
-9748 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 139.193 null ] >>
-endobj
-9749 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 128.234 null ] >>
+9692 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9750 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 117.275 null ] >>
+<< /Filter /FlateDecode /Length 3429 >>
+stream
+xˎ>_c0X|r[k_~E=ؒX_o<ϔF͈ 2g翾 z_j-?^8s86˜Ҷpf@
+| o-z Z=r=*Ku=$O'mDٓhkG_$k2[au($qefH)3֘CZ!2`8C]s  ܄8ZE1i.9P"hw鑁>}
+%[gn_bqo
+tLK9B1)v/
+Y)\Q[ ? =A$l7r80Q%LHX.[# =3G(;ءG;x3q/$9IFRuɝ7Tt4$o:FtsP$aC0Vtk
+nEGT|Z7{&J69L/n G!Ǹ1^y4nZ`vyxa\CeDY=up#/!d|xz4ҁ-#(j+4!W!^B[7hJT'tlֹ'1T 1sGSгs9u)1:O'D8Ep)x %撢6;B(aل<ny*91J Z
+E;Tt&/}NB0jʽ\ -(T$o.Tڇ{RԄj&@,ӳ8D*F%r8t,xQǍrB9 U5P0dt 92pإJMWYef!ҝhqS`lʄn-reI|)&lL+Q4R_٥dYd#\4OךZ!|ϊz/EOO _#2nɦo
+e]bJEV*Wk[;ŕWtS- "GL 58"UuZlkVV>(͙ƒZJ Hcj6͕ªk˶6N\ڸp3
+2_WܼiHh2"%ejN36'QVCu1G=v(>''bk{Vr0eErM\FSFlnk䚵U3V0BT[eB2e'6]^0baDKV;& ̥Լ\|櫶BV.=ePJئ6 Hd
+k},?ߕ:\iCj!OWQwIUӴMH8m9jFߕy'i'F9J{<qdIgU}bzجSNN1 <ԩ_;Y'(6SE ^R]l7GURWӁUGuܹr$N8^e|s퟼71y{*aNVl^dP>! F34Ny%T4 ȞI&qэyZGϾ&6`ーih=bREtUcK2k%I̾aP૾Q!U|!)ǥg[FX"ffjeUw^YtPA[Lg&zJZD^ҚMҚz/{ԡSؑdF4̈m[xVik9ߠM6eͽ:dzqs{ÐVgw=KD1 $ U|8xյ{-GZ\qX#=
+MWe6;wBۂs5( T(D cL==rp554LoKÎgѵsQU'HV^
+2 ? /AMYxQ!= M޶S:Y9WI
+endstream
endobj
-9698 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+9749 0 obj
+<< /Type /Page /Contents 9750 0 R /Resources 9748 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9332 0 R >>
endobj
-9753 0 obj
-<< /Filter /FlateDecode /Length 2075 >>
-stream
-xZ]o}ϯ0/TPAf}]#ʒGg&^J2%:ɶ/l~4<L]rw⯳wFL$,|2[^0xNjl2[O~Zfzw%ŽSbDeB6y-Jq77q>ǫ<+:^Y -CIM91
-(%r>/
-(%CPV4qݤ8+Eѵ='ugeVkipAѣN׉8+0+} \yљ#)@2'= X&\!CyIъ7lzTi.Ql7_KZ0WP(DPax4sDVȆIcٻ#sG Gg"B-RKj|kN`>X1ip>F,A>lJpTgݍc_a?b-&xʵ{j"" JK+b<Tvn)6U٤!+,0Nx 'mdx(7Ph$ʆp?솏 9f?Yq}NRȚ{UmɊ]H) u4"fl)6}>mFp`+B>^*5Mm*~ttw) {F T<Ewvi'c͢c g@Y%yAԞ}^ep7(È17DDǺER?;bQ\h4w)|G3qBt+UaRu7%,Aq\Pc/!P>"hv>=SnnbDƯ=č1oV.ui
-endstream
+9751 0 obj
+<< /D [ 9749 0 R /XYZ 78.37 808.885 null ] >>
endobj
9752 0 obj
-<< /Type /Page /Contents 9753 0 R /Resources 9751 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9749 0 R /XYZ 81.145 768.829 null ] >>
+endobj
+9753 0 obj
+<< /D [ 9749 0 R /XYZ 81.145 757.87 null ] >>
endobj
9754 0 obj
-<< /D [ 9752 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 746.912 null ] >>
endobj
9755 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 735.953 null ] >>
endobj
9756 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 657.248 null ] >>
endobj
9757 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 568.58 null ] >>
endobj
9758 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 557.621 null ] >>
endobj
9759 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 546.662 null ] >>
endobj
9760 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 535.704 null ] >>
endobj
9761 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 524.745 null ] >>
endobj
9762 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 459.987 null ] >>
endobj
9763 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 449.029 null ] >>
endobj
9764 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 396.227 null ] >>
endobj
9765 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 385.268 null ] >>
endobj
9766 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 374.309 null ] >>
endobj
9767 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 363.35 null ] >>
endobj
9768 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 352.391 null ] >>
endobj
9769 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 341.432 null ] >>
endobj
9770 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 330.473 null ] >>
endobj
9771 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 299.589 null ] >>
endobj
9772 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 288.63 null ] >>
endobj
9773 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 197.97 null ] >>
endobj
9774 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 187.011 null ] >>
endobj
9775 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 176.052 null ] >>
endobj
9776 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 165.093 null ] >>
endobj
9777 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 154.134 null ] >>
endobj
9778 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 143.176 null ] >>
endobj
9779 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 132.217 null ] >>
endobj
9780 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 121.258 null ] >>
endobj
9781 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 110.299 null ] >>
endobj
9782 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 99.34 null ] >>
endobj
9783 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 9749 0 R /XYZ 81.145 88.381 null ] >>
endobj
-9784 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 397.225 null ] >>
-endobj
-9785 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 386.266 null ] >>
+9748 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9786 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 375.307 null ] >>
+<< /Filter /FlateDecode /Length 2342 >>
+stream
+x[K# ϯq0Z"
+ۖiLP^_Op A o(?BK5<^H)t;h>/y(^EIزXEN:^i >4:ƹ%:+tD..$O0Åg}@Ma$V(VU&5g{۝t̊Ѯ&
+{B`^PɁJ=;58f%eGBR`an?-:gYe[ÜkuUSE8Ӕ4%9y#J/h7 r9jUvjܮ|[y-w}f16OpZcu|e@ 9[yv׊>7fH@am6ݺlj Mte7[hxiժ]s<X'd ni .ι bݲ !%(ƾ6$> BynX 9k' )m16uZ6'Ϊp$Z3R;BOYs~y[Udo;u* m)Tgqe۵{&PyjPyv3;\y O8V䕅k[Rڷ$UiKvAf[״[%
+~%N=1Ѩ\ㆲi6;W:XrUF
+liq) W_h!焕vf,b,N
+HrK^߽M]Rb7@WH$VS5%Oh = ga KumGT
+gLj1ހHp֎ݼJd5~!zMHZuG9 [y%t>ltŧS+>R-#jUyzZ-ZѠPgE2Q
+ʮaVl$A=/
+o`՝OՖ$!ez!Ǡ{{*NvM@by.ͽ1v&lxS"Sp+sH.=VO(PJ7l-BP'
+dXg2yuChjb(VoS >Usi2u;J?
+S@!TF>PϠ/ VXC dӬ!b0b̨`hiةIᠻ s$B)?@jxYmns#H2qW#d+TT'dU} Pr@͠8(9@7#PrCtܫkJ敄2? K80#8lxd;-0}j4cv0jc|#YI x3hΩq"jCVUQgV0yw0s굾$`{SZHLj>4(}Ax{Z-9G
+AhfνGJ+.aқ/'̒
+n*QxNI^Hms (>;AHSSKRP=1oƢj\
+HrF`r;)e9/3.z|B}DzT+
+p%Ȇ_
+/ 6O&
+endstream
+endobj
+9785 0 obj
+<< /Type /Page /Contents 9786 0 R /Resources 9784 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
9787 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9785 0 R /XYZ 78.37 808.885 null ] >>
endobj
9788 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 754.882 null ] >>
endobj
9789 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 743.923 null ] >>
endobj
9790 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 691.121 null ] >>
endobj
9791 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 680.162 null ] >>
endobj
9792 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 669.203 null ] >>
endobj
9793 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 658.244 null ] >>
endobj
9794 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 647.285 null ] >>
endobj
9795 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 636.326 null ] >>
endobj
9796 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 625.367 null ] >>
endobj
9797 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 596.476 null ] >>
endobj
9798 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 585.517 null ] >>
endobj
9799 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 574.558 null ] >>
endobj
9800 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 563.599 null ] >>
endobj
9801 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 552.64 null ] >>
endobj
9802 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 493.86 null ] >>
endobj
9803 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 482.902 null ] >>
endobj
9804 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 471.943 null ] >>
endobj
9805 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-9751 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9785 0 R /XYZ 81.145 460.984 null ] >>
endobj
-9808 0 obj
-<< /Filter /FlateDecode /Length 2653 >>
-stream
-xڭZ[ۺ~ϯ0z,e
-4-}9) +u"K$gw=CR7jYLbPx«_ ۂ_820۽!0JK$Z)IduwX{W{?Ҭ42R2=&& #"xHru-X$˦(M/K7<4U)C8;o9G_]eS3!e:-z[1w?20)|<2C UwW׌ic}ٻ|]e{;ti&Pr@^9:N9cjPFS%E+C`bQ{~L_bז!FD 6Hű̊hHMg,cCBY{"77f6q}" CSw`ؘMVdM6'Tr~#t/!؀:~mnW_Gހj
-w6<}Ա2DBĩjD| 9/!A-;T yـ:ȅ1ʭVcI#q0d\I/ V)ޯ-q2VzS&rs{;(pIݗU9᫛"ҽ$1h'm&զHo`lz{ލi;9IS6ɣYi{#TKBYaT迁ZiTj gy(>7j2~vuK2RpH \[R8 g?Q1BUy9$VϾ e._85ideQk_Wi\bmO ]۔f9쬰tU7(QL.+Y:t֪IU8f~d9dB2ڍ
-Wpf,wp`*;Ve-lphTgpJu:(S+ ;|IJqYCa=}[`ŠBBrf}O?՞},}Ƕ<cl틽7MϓM@`YJ4Ẇ$$w)nŖyd ^s26gm(0s]> kL!!Ch~H:Bv9`l;vE׻2̊;YCɳ‡pPbvLC"`
-fDm"X ́fC6XP%tX04-lJ]O DL_ {vr<ZM'fU}8A2\le|TMI8Wٰv=ต缬[]r40w{MD s8lC@"w ׫Cd ݃?}:Oy>Y3<Z&eOmgxPqC* u8GVPy<{=oZr8|6^;qU+>?5v:~SBZK$v K֗XMnn|e46TvdT9%2!J9q
-M_0HU G[0MQ67⠗P+NJ`HjvzDn0Iwn3<2mbnK~
-endstream
+9806 0 obj
+<< /D [ 9785 0 R /XYZ 81.145 450.025 null ] >>
endobj
9807 0 obj
-<< /Type /Page /Contents 9808 0 R /Resources 9806 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9785 0 R /XYZ 81.145 439.066 null ] >>
+endobj
+9808 0 obj
+<< /D [ 9785 0 R /XYZ 81.145 428.107 null ] >>
endobj
9809 0 obj
-<< /D [ 9807 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 417.148 null ] >>
endobj
9810 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 406.189 null ] >>
endobj
9811 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 395.23 null ] >>
endobj
9812 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 723.004 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 384.271 null ] >>
endobj
9813 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 712.045 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 373.313 null ] >>
endobj
9814 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 701.086 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 362.354 null ] >>
endobj
9815 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 690.127 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 351.395 null ] >>
endobj
9816 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 679.168 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 340.436 null ] >>
endobj
9817 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 668.209 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 329.477 null ] >>
endobj
9818 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 657.25 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 318.518 null ] >>
endobj
9819 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 646.291 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 307.559 null ] >>
endobj
9820 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 635.332 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 296.6 null ] >>
endobj
9821 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 624.373 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 285.641 null ] >>
endobj
9822 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 613.415 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 274.682 null ] >>
endobj
9823 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 602.456 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 263.723 null ] >>
endobj
9824 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 252.765 null ] >>
endobj
9825 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 193.985 null ] >>
endobj
9826 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 183.026 null ] >>
endobj
9827 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 172.067 null ] >>
endobj
9828 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 161.108 null ] >>
endobj
9829 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 150.149 null ] >>
endobj
9830 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 139.19 null ] >>
endobj
9831 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 128.232 null ] >>
endobj
9832 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 117.273 null ] >>
endobj
9833 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 106.314 null ] >>
endobj
9834 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 95.355 null ] >>
endobj
9835 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 9785 0 R /XYZ 81.145 84.396 null ] >>
endobj
-9836 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 213.913 null ] >>
+9784 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 180 0 R /F28 611 0 R /F19 182 0 R /F71 185 0 R /F67 179 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9837 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 202.954 null ] >>
+9839 0 obj
+<< /Filter /FlateDecode /Length 2340 >>
+stream
+x[Ko#7 W=V2q@Ϲhk1xlڠ=8E~")b?}t~X]8N(yzAA$N0N<rK˧_~^~{r\KH(ϴ#%(Xޗ@Ur@φg Ԝ .)6rMHIiV1VcH)"P
+/pZ zӬJDX`U9V{JUuYU髖*E>RfvTg^b@3K ˴2)5);&L)=RBd,t҉dCm{NaRP=%ʖN(5SܒBYfSIQSpыhV
+
+=4yeH"b$mqa=S0Wu1L
+fM4׹k"]O"`ʯh&NlJPԫ໼)S>Wnh`(.spDP,%Z̫\:<f
+ O⃁9y3RJ K%|-
+_voy8:@o 6~Cdq1c8J=N^]byG7x)?XǴ- >a#$uX>L`H0Ia_pE.kwMna,bf{5"|&⨤<`$cexaJzei M':Yo3Ն_V7Z'/]LO &&- |&<h;
+׊6@;A፸o<
+7W f6wh{kkRr5Rz
+endstream
endobj
9838 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 191.995 null ] >>
-endobj
-9839 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 181.036 null ] >>
+<< /Type /Page /Contents 9839 0 R /Resources 9837 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
9840 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 9838 0 R /XYZ 78.37 808.885 null ] >>
endobj
9841 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 768.829 null ] >>
endobj
9842 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 757.87 null ] >>
endobj
9843 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 746.912 null ] >>
endobj
9844 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 106.316 null ] >>
-endobj
-9806 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9838 0 R /XYZ 81.145 735.953 null ] >>
endobj
-9847 0 obj
-<< /Filter /FlateDecode /Length 2491 >>
-stream
-xڵZ[۸~ϯ0;\/([) ŦJdɐ53n{(R$}Y?xra0H*~ eS % ’,/2nζ,YܒenZ~9l#4
-ע@}n0 Br3Nmv~*뱬a0'
-4 Mhx!4$Zpʹ+ N98]T,sRp7_JI@B@nJ֕+˶q=݋Hj˧*! P.
-a2,|<-bD\xd<XmʻE d<+vd'd㟟!x
-;)'+˓RN/&ztؕ0Dy]^y&G/Mw<)N‡Oo{pob'&xH,<G1Cڢ}DZs(EUlH`ެ˵][~* Vz[E;+h(ZHX |@k9PJ0d:h)fRZە/w[T,~͖2HaXl<E=-U]97d*}]r]u{rN:W?`l{\UyV]pCG uph,E[&-[hČN ۪xXEod^b-r<9G`'&_O"jl.JuܶHG]T@XOE5GXԳr-J}dU#z <oUwVM 9f\#Lsk=FOl/_ J ^)6fT3qeR J"/aDbKZ?Ή|]ӸS$
-8,œ@ng!MSzNčH!? pBl"-y Ԕr^M'&
-)qU_eX(
-͖_ eKFd-MHHh*.tZ<o_&B ~*+&|$NYef]0ɪۗ.T^|' Ʃ7&ctsjR8/k60G
-xbḰ(R&:dRn"D1Ϧ(0NY
-)˼e N%L~Y )A\e䝸%x{N bxԉ?7׈2#
-=A^,Xicr_vJ@,n7n֮Ccu7Xډe><wb&"ki:Ŕnh'vڗR98%8 J@JP#~N9#S' h(:Χ*P>ڽR{NRGL每\[S|,t/K
-1M%衬
-M{Lk!+X!5Ab$d\Q4F\"Y2F;Qֶv!W
- UDe9'neuYw [
- .1ybN]8d>8Xm}PAML˵ǟOmWE1/R' \n`,>M qh;/K'hgClPtLy4/;i-=*v18)
-#-c2k1IŁ^@
-endstream
+9845 0 obj
+<< /D [ 9838 0 R /XYZ 81.145 724.994 null ] >>
endobj
9846 0 obj
-<< /Type /Page /Contents 9847 0 R /Resources 9845 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9838 0 R /XYZ 81.145 714.035 null ] >>
+endobj
+9847 0 obj
+<< /D [ 9838 0 R /XYZ 81.145 703.076 null ] >>
endobj
9848 0 obj
-<< /D [ 9846 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 692.117 null ] >>
endobj
9849 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 695.255 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 681.158 null ] >>
endobj
9850 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 684.297 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 670.199 null ] >>
endobj
9851 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 673.338 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 659.24 null ] >>
endobj
9852 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 662.379 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 648.281 null ] >>
endobj
9853 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 651.42 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 637.322 null ] >>
endobj
9854 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 640.461 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 626.364 null ] >>
endobj
9855 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 629.502 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 615.405 null ] >>
+endobj
+137 0 obj
+<< /D [ 9838 0 R /XYZ 79.37 591.995 null ] >>
endobj
9856 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 618.543 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 506.888 null ] >>
endobj
9857 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 607.584 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 495.929 null ] >>
endobj
9858 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 596.625 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 484.97 null ] >>
endobj
9859 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 585.666 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 474.011 null ] >>
endobj
9860 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 557.069 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 463.052 null ] >>
endobj
9861 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 546.11 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 447.13 null ] >>
endobj
9862 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 494.192 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 436.172 null ] >>
endobj
9863 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 483.233 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 425.213 null ] >>
endobj
9864 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 472.274 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 414.254 null ] >>
endobj
9865 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 461.315 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 403.295 null ] >>
endobj
9866 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 450.356 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 376.452 null ] >>
endobj
9867 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 439.397 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 365.493 null ] >>
endobj
9868 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 428.438 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 354.534 null ] >>
endobj
9869 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 399.841 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 343.575 null ] >>
endobj
9870 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 388.882 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 332.616 null ] >>
endobj
9871 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 377.923 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 321.657 null ] >>
endobj
9872 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 366.965 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 310.698 null ] >>
endobj
9873 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 356.006 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 299.74 null ] >>
endobj
9874 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 288.781 null ] >>
endobj
9875 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 277.822 null ] >>
endobj
9876 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 266.863 null ] >>
endobj
9877 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 255.904 null ] >>
endobj
9878 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 244.945 null ] >>
endobj
9879 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 233.986 null ] >>
endobj
9880 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 223.027 null ] >>
endobj
9881 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 212.068 null ] >>
endobj
9882 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 201.109 null ] >>
endobj
9883 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 152.339 null ] >>
endobj
9884 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 141.38 null ] >>
endobj
9885 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 130.422 null ] >>
endobj
9886 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 89.593 null ] >>
endobj
9887 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 155.349 null ] >>
-endobj
-9888 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9838 0 R /XYZ 81.145 78.635 null ] >>
endobj
-9889 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 133.431 null ] >>
+9837 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F28 611 0 R /F72 266 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9890 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 122.473 null ] >>
+<< /Filter /FlateDecode /Length 1861 >>
+stream
+x[n6 ++Q (.I2:vV-ے9y]LqLR!m?'uul^Kݝ~\>Ġ uҧpNrߕ2fY˟=8
+3a M=YyGJ~Oi9]Bmy뇴]K?oÇ*-(zz*iy-ר_jAeĿM)'-ЗX>{%|%`
+CAgN~ )^/SU)3N>o) ʃ3aTUVZ2~*8 R3 /USMkUIUV!ᲒYȭSo,{,z ^ΔQdTuHo<'˾H`COm*vr?ɷm <
+Gu:8 lV -C,)ٰ"!0 5)Xt<`0KA1d0_#cE+wS3'֞LJ,j0"zox4$,}h¸dHr)hbbdXEk7{`7dh9Aބ&5*Y-7RRK1t:[9uZ-# 3WKӓ4ւ +<"HPDI 6l̵H/e O95d0s1ƀsU}d1JC:0dOrsCd2|?
+i ;۟O0D8GULw$^)Vz",\޵ye_SRƽ G5[NRꬃhYEgm$vHH7n "YY,HL1 {!0 )$RS ٻaǷQ!hJ aCt w:j#M-.
+yƵ\uA$rE@6[]1ۼ\nZE7y-RȃqdYE:1〔aM Cڽ\xI[Ne֎g&M[7jaiLz g Kk
+D ;4zD,iNA#{
+!]'|
+:v~DGq|OtZ-N%q9WKbn\oJuD
+_n|8u7I>=#
+endstream
+endobj
+9889 0 obj
+<< /Type /Page /Contents 9890 0 R /Resources 9888 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
9891 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9889 0 R /XYZ 78.37 808.885 null ] >>
endobj
9892 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 768.829 null ] >>
endobj
9893 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 757.87 null ] >>
endobj
9894 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 746.912 null ] >>
endobj
-9845 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9897 0 obj
-<< /Filter /FlateDecode /Length 1875 >>
-stream
-xZ[o6~ϯ00/px`n
-^Eh(U٠i0g.= 힭g*k{p|%$*QUTua{}fܧlڗ<G3=JK/"Aн>Q3 h}5j 28!e0wX&x$D;&sXZH, <Qen%SR%YI)Pc^ юƪ uuA>fe|&!%T(OmHMLctla7t4gں:0^ӥ -|J MxM!-"D&?bb@ظpefכuy.c+Yr]l׳
-L|>臇St%T'1</ǚ
-Oq˽?prQ86TQG'ׂP*L9';?+5nsB C%\:%Zx4JB0:IǀQ ےڮm70kt\GINPžs8h5ӀMTr 7CEs"򙨦mbOؕO73fm Oe~m ϊ)Em s򵻒jvIk\cAYev~f K 4m.6sWָU "+$^mWU~]U6۫.9`3k4>} Ζ}pٮhȔs
-Җdff˪ ["ii$X tôW8_R }Țw*`c}kRNL(!8滶ldҟo>0LF#(Bi %[<_?mWh_ް-_ ș`P GA9p
-endstream
+9895 0 obj
+<< /D [ 9889 0 R /XYZ 81.145 735.953 null ] >>
endobj
9896 0 obj
-<< /Type /Page /Contents 9897 0 R /Resources 9895 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9889 0 R /XYZ 81.145 724.994 null ] >>
+endobj
+9897 0 obj
+<< /D [ 9889 0 R /XYZ 81.145 714.035 null ] >>
endobj
9898 0 obj
-<< /D [ 9896 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 703.076 null ] >>
endobj
9899 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 692.117 null ] >>
endobj
9900 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 681.158 null ] >>
endobj
9901 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 699.507 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 670.199 null ] >>
endobj
9902 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 688.548 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 659.24 null ] >>
endobj
9903 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 677.589 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 648.281 null ] >>
endobj
9904 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 666.63 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 637.322 null ] >>
endobj
9905 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 655.671 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 626.364 null ] >>
endobj
9906 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 644.712 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 615.405 null ] >>
endobj
9907 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 633.753 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 604.446 null ] >>
endobj
9908 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 622.794 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 593.487 null ] >>
endobj
9909 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 611.836 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 582.528 null ] >>
endobj
9910 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 600.877 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 571.569 null ] >>
endobj
9911 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 589.918 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 560.61 null ] >>
endobj
9912 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 578.959 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 549.651 null ] >>
endobj
9913 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 568 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 538.692 null ] >>
endobj
9914 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 557.041 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 527.733 null ] >>
endobj
9915 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 546.082 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 516.775 null ] >>
endobj
9916 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 535.123 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 505.816 null ] >>
endobj
9917 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 524.164 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 494.857 null ] >>
endobj
9918 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 513.205 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 483.898 null ] >>
endobj
9919 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 502.246 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 472.939 null ] >>
endobj
9920 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 491.288 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 461.98 null ] >>
endobj
9921 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 480.329 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 451.021 null ] >>
endobj
9922 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 469.37 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 440.062 null ] >>
endobj
9923 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 458.411 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 429.103 null ] >>
endobj
9924 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 447.452 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 418.144 null ] >>
endobj
9925 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 436.493 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 407.186 null ] >>
endobj
9926 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 425.534 null ] >>
-endobj
-141 0 obj
-<< /D [ 9896 0 R /XYZ 79.37 402.589 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 396.227 null ] >>
endobj
9927 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 317.91 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 385.268 null ] >>
endobj
9928 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 306.951 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 374.309 null ] >>
endobj
9929 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 295.992 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 363.35 null ] >>
endobj
9930 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 285.033 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 352.391 null ] >>
endobj
9931 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 274.074 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 341.432 null ] >>
endobj
9932 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 258.34 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 330.473 null ] >>
endobj
9933 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 247.382 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 319.514 null ] >>
endobj
9934 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 236.423 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 308.555 null ] >>
endobj
9935 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 225.464 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 297.596 null ] >>
endobj
9936 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 214.505 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 286.638 null ] >>
endobj
9937 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 275.679 null ] >>
endobj
9938 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 264.72 null ] >>
endobj
9939 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 253.761 null ] >>
endobj
9940 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 242.802 null ] >>
endobj
9941 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 231.843 null ] >>
endobj
9942 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 220.884 null ] >>
endobj
9943 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 209.925 null ] >>
endobj
9944 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 198.966 null ] >>
endobj
9945 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 188.007 null ] >>
endobj
9946 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 177.049 null ] >>
endobj
9947 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 166.09 null ] >>
endobj
-9895 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+9948 0 obj
+<< /D [ 9889 0 R /XYZ 81.145 155.131 null ] >>
endobj
-9951 0 obj
-<< /Filter /FlateDecode /Length 2175 >>
-stream
-xZ[o~ϯ0h8M$bE@/٧n!(hF<d')Ѥq|6LPJ&I2$3ד_O>\
-:aHILz~MOdR,&"(Iz9"=?>\j"JS*C0& Tw3tk5˺hr?C׬;P~/ON+`|Ctķ1enXK*%re2ku7zE̺*ϺXD",`|CtO,!|+>WC [>~tp~sؗe^7/4WX$E$MJ00FԨ$(!) !B!*&dFl?eG` (J E{~A<;=i;cҞz>ѳ./Y}Ή8At;Pdk!#JŘO{F AD ~ff%.dT)s'ɄD<eɔ9ZAA)W290 s؆9Q1ߜn?iJ0{Ʃ@TciGUWU^_yX['^jvl<w7Ey-tw{GDiGP8eQc"9g6U^4Q*Ai:SߓCݓb20]߉c?[W/]&ݨnG7$qL]
-QV %DBK+ F6M]f~VMݙPa2ժ̀qZܑGj̮<5bԟkDA2B?eS8e3PM^e7zQTӽЇDO+Ml^{YY6><EFuit2kEխ{Y3.#&maCdv}s̻x/nᮘYwn8wW#Ӈb̭7;
-%q@<BeaȆ?z~-kS)BtE6[Jay0a)"~[av ۱U!lST
-DCCDmîh%_6fml RIS DYp D&
-#!xhbq ۷/BASZFY2/г_KSNS%D1§.* j8#@X~/ GdRXg7u1C"_y_t'5&G7c>MGb ?T4< AKڰ<]](4 JE)șCrqGF[>/u,
-endstream
+9949 0 obj
+<< /D [ 9889 0 R /XYZ 81.145 144.172 null ] >>
endobj
9950 0 obj
-<< /Type /Page /Contents 9951 0 R /Resources 9949 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9889 0 R /XYZ 81.145 133.213 null ] >>
+endobj
+9951 0 obj
+<< /D [ 9889 0 R /XYZ 81.145 122.254 null ] >>
endobj
9952 0 obj
-<< /D [ 9950 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 111.295 null ] >>
endobj
9953 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 100.336 null ] >>
endobj
9954 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9889 0 R /XYZ 81.145 89.377 null ] >>
endobj
-9955 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-9956 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 735.955 null ] >>
+9888 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9957 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 724.996 null ] >>
+<< /Filter /FlateDecode /Length 1640 >>
+stream
+xZn6 )H$2Ifs+zmO}k%ٲ-وn=$qDRd^͟ǫ7 ׃IL)QڙߴF~,<xu~
+*:ad@+GJ(NH&]_5so>hM;\([Q6FŏWc"CT&%.^@O11/E$"]OXt׭\ʝ|ך(u~oerz^8/
+h9Nz44QTNzykm0N!U=dSMяJ$RL&w@jR Z&';ފΏp?*d^ŧmf+#dL!s
+iDH&eslϖM;Λ0 UtC:{,cVf@١ߠ=gDiOVv@'XRc"wH_;7V,Mј9ctW {٘W:}ހQd#V4N$l.78>c+&=6Qe#63y T=r]̟S!&wN(*npo
+endstream
+endobj
+9956 0 obj
+<< /Type /Page /Contents 9957 0 R /Resources 9955 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
9958 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9956 0 R /XYZ 78.37 808.885 null ] >>
endobj
9959 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 666.798 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 768.829 null ] >>
endobj
9960 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 655.839 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 757.87 null ] >>
endobj
9961 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 644.88 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 723.001 null ] >>
endobj
9962 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 604.664 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 712.042 null ] >>
endobj
9963 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 593.705 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 701.083 null ] >>
endobj
9964 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 582.747 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 690.124 null ] >>
endobj
9965 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 571.788 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 679.166 null ] >>
endobj
9966 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 668.207 null ] >>
endobj
9967 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 657.248 null ] >>
endobj
9968 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 646.289 null ] >>
endobj
9969 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 635.33 null ] >>
endobj
9970 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 624.371 null ] >>
endobj
9971 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 613.412 null ] >>
endobj
9972 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 602.453 null ] >>
endobj
9973 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 591.494 null ] >>
endobj
9974 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 580.535 null ] >>
endobj
9975 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 462.199 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 569.577 null ] >>
endobj
9976 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 451.24 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 558.618 null ] >>
endobj
9977 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 440.281 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 547.659 null ] >>
endobj
9978 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 429.322 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 536.7 null ] >>
endobj
9979 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 418.363 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 525.741 null ] >>
endobj
9980 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 407.404 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 514.782 null ] >>
endobj
9981 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 503.823 null ] >>
endobj
9982 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 385.486 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 492.864 null ] >>
endobj
9983 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 374.527 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 481.905 null ] >>
endobj
9984 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 470.946 null ] >>
endobj
9985 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 459.987 null ] >>
endobj
9986 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 449.029 null ] >>
endobj
9987 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 438.07 null ] >>
endobj
9988 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 427.111 null ] >>
endobj
9989 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 416.152 null ] >>
endobj
9990 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 405.193 null ] >>
endobj
9991 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 394.234 null ] >>
endobj
9992 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 383.275 null ] >>
endobj
9993 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 372.316 null ] >>
endobj
9994 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 361.357 null ] >>
endobj
9995 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 350.398 null ] >>
endobj
9996 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 339.44 null ] >>
endobj
9997 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 328.481 null ] >>
endobj
9998 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 317.522 null ] >>
endobj
9999 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 306.563 null ] >>
endobj
10000 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 295.604 null ] >>
endobj
10001 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 260.735 null ] >>
endobj
10002 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 249.776 null ] >>
endobj
10003 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 238.817 null ] >>
endobj
10004 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 227.858 null ] >>
endobj
10005 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 216.899 null ] >>
endobj
10006 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 205.94 null ] >>
endobj
10007 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 194.981 null ] >>
endobj
10008 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 184.022 null ] >>
endobj
10009 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 173.063 null ] >>
endobj
10010 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 162.105 null ] >>
endobj
-9949 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10013 0 obj
-<< /Filter /FlateDecode /Length 1591 >>
-stream
-xڵYMoFWEF~nmA2%H;F;a^L};}vDMBgtߟ86"Y&xX1DXM43ьP͒>sf/ﺺ.i-lfxaA_[Q(sisKiE-aRQ y[t(h:fcpUQ6i5/ƻݻ^7&=l˺Ɋ ǹ-tUeKyt]
-'oKq*/q_N]&Մkp عSDP3-鴹%F*Rjȁ z0*Cw-MOr{~.J"e!<jTG4i#`zϙ#å9 (A!Z΋"=dU߆sV’WH+8!sh4_:ZĹwY}*w Ø$W"t +:_s{C/7R8sQf(+4 -׬Us_gh.-|
-Jz)D])$ jtlڡ fLTO6bqw^c=p KR08x53 2DrliSn@agNy40/}㨇@QvwwW)l&_}u=:woCջ#F9$pK C.2f#Q"tȟ<,lQL .B767ر`&
-Ѷ@7m#t7/C+8{5ӔSuF~\3X<,F?J/W"؜jZ49ƽY#񟃂> @ysBfD$FhtH~:"?7|FnY;DWDpD()HEƞb*f\98_*!f6DaztRg[ [N9!mGCMP]m O{ljqjCm?ܵzIk53#
-endstream
+10011 0 obj
+<< /D [ 9956 0 R /XYZ 81.145 151.146 null ] >>
endobj
10012 0 obj
-<< /Type /Page /Contents 10013 0 R /Resources 10011 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9956 0 R /XYZ 81.145 140.187 null ] >>
+endobj
+10013 0 obj
+<< /D [ 9956 0 R /XYZ 81.145 129.228 null ] >>
endobj
10014 0 obj
-<< /D [ 10012 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 118.269 null ] >>
endobj
10015 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 107.31 null ] >>
endobj
10016 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 96.351 null ] >>
endobj
10017 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-10018 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9956 0 R /XYZ 81.145 85.392 null ] >>
endobj
-10019 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 724.996 null ] >>
+9955 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10020 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 714.037 null ] >>
+<< /Filter /FlateDecode /Length 1932 >>
+stream
+xZn#9 +H@` `3h--EJ خIqyd9ӷ^>
+oׇ7#N9+N??Ls{2Z0ӟ#r._ܸ_l_oڜ,sZm @z#Z^j#DT 
+DԆF$ˢcB"%̉b #Rd)i_(F_up}5/ʁe/$Ӛr=&G%E±]E NBBV ~"c jE暁֤vN;uN1t
+5'ӌ{O'k6_@,<'+/trJ|IeF$o&A(|Vh kM[>~Bb >l: I!Yj .&,Ve).(%;_7sV~n_&RkzZEǔH5w@"fkpY'X?Xl3>`|me#˔S<GX QKTnW ]pٟ {UKmw>w=a5eYP #Uz&\<q#+O1R(HdzaRKŀt:F2Cz$U2tA42Ls_`ȴjD{B2ix^Y,dz
+Tkj3|| (gPѾGJQn{A Z~Km"~<
+,i5HD2Z[KgG9чߪa7oCڨ~Ϥ79(ߖ}ȍHsb#Ûc0fnUVMX8yQ&4]2шC#XŜ"s,Kq
+&4eYJZ}?opHeDhK0ݛ:ؾSS?ߓ$\;~Y9H
+N4ey /1н®K%Ȥ%Kڬk
+/Ώ0 2|q4 ldf $z^fb.MpLվ=6
+LXژ*1/]W/U]*vaJ<*_^3\64۾|h<Ku
+//] K%<'b vD)(5pWIֈys̰ewzW׿7D(ŜA٨F䍾N8Í7^lZDh摴
+endstream
+endobj
+10019 0 obj
+<< /Type /Page /Contents 10020 0 R /Resources 10018 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
10021 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10019 0 R /XYZ 78.37 808.885 null ] >>
endobj
10022 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 768.829 null ] >>
endobj
10023 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 757.87 null ] >>
endobj
10024 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 746.912 null ] >>
endobj
10025 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 735.953 null ] >>
endobj
10026 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 724.994 null ] >>
endobj
10027 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 714.035 null ] >>
endobj
10028 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 703.076 null ] >>
endobj
10029 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 692.117 null ] >>
endobj
10030 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 681.158 null ] >>
endobj
10031 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 670.199 null ] >>
endobj
10032 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 659.24 null ] >>
endobj
10033 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 648.281 null ] >>
endobj
10034 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 637.322 null ] >>
endobj
10035 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 626.364 null ] >>
endobj
10036 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 615.405 null ] >>
endobj
10037 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 604.446 null ] >>
endobj
10038 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 593.487 null ] >>
endobj
10039 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 481.908 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 582.528 null ] >>
endobj
10040 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 470.949 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 571.569 null ] >>
endobj
10041 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 459.99 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 560.61 null ] >>
endobj
10042 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 449.031 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 549.651 null ] >>
endobj
10043 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 438.072 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 538.692 null ] >>
endobj
10044 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 427.113 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 527.733 null ] >>
+endobj
+141 0 obj
+<< /D [ 10019 0 R /XYZ 79.37 504.537 null ] >>
endobj
10045 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 416.154 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 436.189 null ] >>
endobj
10046 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 425.23 null ] >>
endobj
10047 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 414.271 null ] >>
endobj
10048 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 403.312 null ] >>
endobj
10049 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 392.354 null ] >>
endobj
10050 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 381.395 null ] >>
endobj
10051 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 370.436 null ] >>
endobj
10052 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 359.477 null ] >>
endobj
10053 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 328.483 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 348.518 null ] >>
endobj
10054 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 317.524 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 337.559 null ] >>
endobj
10055 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 326.6 null ] >>
endobj
10056 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 315.641 null ] >>
endobj
10057 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 304.682 null ] >>
endobj
10058 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 293.723 null ] >>
endobj
10059 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 282.765 null ] >>
endobj
10060 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 271.806 null ] >>
endobj
10061 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 260.847 null ] >>
endobj
10062 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 249.888 null ] >>
endobj
10063 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 238.929 null ] >>
endobj
10064 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 227.97 null ] >>
endobj
10065 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 217.011 null ] >>
endobj
10066 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 206.052 null ] >>
endobj
10067 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 195.093 null ] >>
endobj
10068 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 184.134 null ] >>
endobj
10069 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 173.175 null ] >>
endobj
10070 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 162.217 null ] >>
endobj
10071 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 151.258 null ] >>
endobj
10072 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 140.299 null ] >>
endobj
10073 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 10019 0 R /XYZ 81.145 129.34 null ] >>
endobj
-10011 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10076 0 obj
-<< /Filter /FlateDecode /Length 1450 >>
-stream
-xY]o6}ϯЗ[X^~+bC[`=ش#đEIoߥP[,jD{H{!ËuGt ?uvb)%^@ 3` kqؕ<{{;SHArZ.QՁK ^ۺ4p@P2ЇP9T }k ym7oU}=Tjo^Y
-8ӽYwo.U\N,BXZhzln0&va6SYR3mdQV C6~ެ7~T0f91J;FMSXHhd0Y͌LII2tȏu^W~]7gd*"R4*):Pw_tÎ<Lhb3hBR
-v.G_7!i"Xhʧ . ؁O_JifE%fREշkX|\zi{F(>wMa$s<D̩gpbpf jEiyзCs.뭦f譔!O7dJES#D-MKMKcZ9oU:UF$Fz=2gwQ:hڡ7n!|~sY_W$z1ߜs.&|"Bzm?!Yc4Zv
-/VL@T]$鱕dBG43G3%J+)(\
-H/
-,J*@=3=(64Oŵ%.t]<h5{wv'ii񢽺7Y}݉c<K72Tm+!8oMOg,F
-6=)[G!DnrA:>0%',Y\j`AV^?}W.
-endstream
+10074 0 obj
+<< /D [ 10019 0 R /XYZ 81.145 89.593 null ] >>
endobj
10075 0 obj
-<< /Type /Page /Contents 10076 0 R /Resources 10074 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10019 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10077 0 obj
-<< /D [ 10075 0 R /XYZ 78.37 808.885 null ] >>
+10018 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10078 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 1600 >>
+stream
+xZ͎6 SH$f
+endstream
+endobj
+10077 0 obj
+<< /Type /Page /Contents 10078 0 R /Resources 10076 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
10079 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10077 0 R /XYZ 78.37 808.885 null ] >>
endobj
10080 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 768.829 null ] >>
endobj
10081 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 757.87 null ] >>
endobj
10082 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 746.912 null ] >>
endobj
10083 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 735.953 null ] >>
endobj
10084 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 724.994 null ] >>
endobj
10085 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 714.035 null ] >>
endobj
10086 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 703.076 null ] >>
endobj
10087 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 692.117 null ] >>
endobj
10088 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 681.158 null ] >>
endobj
10089 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 670.199 null ] >>
endobj
10090 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 659.24 null ] >>
endobj
10091 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 648.281 null ] >>
endobj
10092 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 637.322 null ] >>
endobj
10093 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 626.364 null ] >>
endobj
10094 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 615.405 null ] >>
endobj
10095 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 604.446 null ] >>
endobj
10096 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 593.487 null ] >>
endobj
10097 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 582.528 null ] >>
endobj
10098 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 571.569 null ] >>
endobj
10099 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 560.61 null ] >>
endobj
10100 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 549.651 null ] >>
endobj
10101 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 538.692 null ] >>
endobj
10102 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 527.733 null ] >>
endobj
10103 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 516.775 null ] >>
endobj
10104 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 505.816 null ] >>
endobj
10105 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 494.857 null ] >>
endobj
10106 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 483.898 null ] >>
endobj
10107 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 472.939 null ] >>
endobj
10108 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 461.98 null ] >>
endobj
10109 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 451.021 null ] >>
endobj
10110 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 440.062 null ] >>
endobj
10111 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 407.188 null ] >>
-endobj
-145 0 obj
-<< /D [ 10075 0 R /XYZ 79.37 383.726 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 429.103 null ] >>
endobj
10112 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 315.383 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 418.144 null ] >>
endobj
10113 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 304.424 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 407.186 null ] >>
endobj
10114 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 293.465 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 396.227 null ] >>
endobj
10115 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 282.506 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 385.268 null ] >>
endobj
10116 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 271.547 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 374.309 null ] >>
endobj
10117 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 260.588 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 363.35 null ] >>
endobj
10118 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 249.629 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 352.391 null ] >>
endobj
10119 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 238.67 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 341.432 null ] >>
endobj
10120 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 227.711 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 330.473 null ] >>
endobj
10121 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 216.753 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 319.514 null ] >>
endobj
10122 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 205.794 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 308.555 null ] >>
endobj
10123 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 194.835 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 297.596 null ] >>
endobj
10124 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 183.876 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 286.638 null ] >>
endobj
10125 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 172.917 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 275.679 null ] >>
endobj
10126 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 161.958 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 264.72 null ] >>
endobj
10127 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 150.999 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 253.761 null ] >>
endobj
10128 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 140.04 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 242.802 null ] >>
endobj
10129 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 129.081 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 231.843 null ] >>
endobj
10130 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 118.122 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 220.884 null ] >>
endobj
10131 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 107.164 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 209.925 null ] >>
endobj
10132 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 96.205 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 198.966 null ] >>
endobj
10133 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 85.246 null ] >>
-endobj
-10074 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10077 0 R /XYZ 81.145 188.007 null ] >>
endobj
-10136 0 obj
-<< /Filter /FlateDecode /Length 1716 >>
-stream
-xڽZKoFW:MEC hKBq\#%rvfgfY#:zuDW}u܈$2G舍&ьPFcG;ѹ%=Pxz}2X 9n,7h^uZ\OWſrv^ͪj>yݳVފ>e" [!cDpѲ% )1:]fev9;րYk#f~%c4FTu-vDmʛMr-bUE;E5AR%B{U:fR<5m]'wsFZ1Xp*h*xU;X.ڑ*gu{fEZcnob>[~o)݄
-*K@\5u!jjMq]ȊK"C-* FhKuPhɪ&q2͇ۼ*oyq -PVֆ-VJiby`I0pޑdNrϐHETkZ}Gz<lfHv ZNu~5ɦ*ld6)Ɖs9\bXQNd(ay$umilRL̿%d=sZ:SM90 ͘<b/}֔ZUTUЪ@f`(5Zm|d.wh|duG)
-kMY3!wz2fy|I vNyZzۼW[}N9,9 =X|$ᙱ8Uh ;3 qQ.-Y+`A_(';Ac>ܳs6ٝa)Sf -]oNg~us_Wo'߈׺9q+)O!aIÞPGb2}H7z=/:!SRk)= n>уw0@ڭ¹pDkHLAH\ ORQ6LTc[ >wb[mv(FhlˉU./Dȥ/avv)q"`л=Dk$q& daotص@KFY`1'q1-cT!uՍDhl A-9E , Be[ Tpmz_ҡ'mLsF:
-endstream
+10134 0 obj
+<< /D [ 10077 0 R /XYZ 81.145 177.049 null ] >>
endobj
10135 0 obj
-<< /Type /Page /Contents 10136 0 R /Resources 10134 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10077 0 R /XYZ 81.145 166.09 null ] >>
+endobj
+10136 0 obj
+<< /D [ 10077 0 R /XYZ 81.145 155.131 null ] >>
endobj
10137 0 obj
-<< /D [ 10135 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 144.172 null ] >>
endobj
10138 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 133.213 null ] >>
endobj
10139 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 122.254 null ] >>
endobj
10140 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 111.295 null ] >>
endobj
10141 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10077 0 R /XYZ 81.145 100.336 null ] >>
endobj
-10142 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 724.996 null ] >>
-endobj
-10143 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 714.037 null ] >>
+10076 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10144 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 703.078 null ] >>
+<< /Filter /FlateDecode /Length 1761 >>
+stream
+xZ˲6 ߯!H5Ɍۙ:ݶ$J"'lY(c ?'u 9}z ӅG0m
+[g3:Hġڗ[+SڮAoj\Ɉy|oRZ\$9^NjN|$IB.^8}@Eʌtab0wWvXfӈg2kɼM"/pߥZ{|9d%9.qZ7ȨZjl6PqPU(3N~n ӵ4X.%| lmuYJJZi"T7M%$E>MEڴehN>5ҁ|F6:Ո5oLKN=S8*bTB -Syz}gr";h#I`sF Q!F SBFlQskvRU+6vGs~+QwQ;x$V3 y
+%3`R~5ieu|vha5(87ڥAn>.kרRK<kYa Δ^]0] ҘT zLêFW:˦mj6þ%\t|!$ 5$0 *faX)T@?҇D4Hjqzd#1+:5F$`&oX6ZAsD(Ø~2k:LUsc nDLU  X ,5g55%46r4'$ \XCd
+!iϘLN|B?lb
+Yy$ysCDPk
+
+,~HBf ej5}r+uCtt!}!$3FCt,Y6d
+AXCt$6eWU#  N
+d̔g&p.pN 5HPW}U|| RϼCeM-5Hg _?h>jY쪁
+~2|ccXlrJ|q)&t~:ENG~Kv+Ϯo4k
+endstream
+endobj
+10143 0 obj
+<< /Type /Page /Contents 10144 0 R /Resources 10142 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
10145 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 10143 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+145 0 obj
+<< /D [ 10143 0 R /XYZ 79.37 771.024 null ] >>
endobj
10146 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 735.177 null ] >>
endobj
10147 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 724.218 null ] >>
endobj
10148 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 713.259 null ] >>
endobj
10149 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 702.3 null ] >>
endobj
10150 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 691.341 null ] >>
endobj
10151 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 680.382 null ] >>
endobj
10152 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 669.423 null ] >>
endobj
10153 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 658.464 null ] >>
endobj
10154 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 647.505 null ] >>
endobj
10155 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 636.546 null ] >>
endobj
10156 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 625.588 null ] >>
endobj
10157 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 614.629 null ] >>
endobj
10158 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 603.67 null ] >>
endobj
10159 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 592.711 null ] >>
endobj
10160 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 581.752 null ] >>
endobj
10161 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 570.793 null ] >>
endobj
10162 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 559.834 null ] >>
endobj
10163 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 548.875 null ] >>
endobj
10164 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 537.916 null ] >>
endobj
10165 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 526.957 null ] >>
endobj
10166 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 515.998 null ] >>
endobj
10167 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 505.04 null ] >>
endobj
10168 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 494.081 null ] >>
endobj
10169 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 483.122 null ] >>
endobj
10170 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 472.163 null ] >>
endobj
10171 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 461.204 null ] >>
endobj
10172 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 450.245 null ] >>
endobj
10173 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 439.286 null ] >>
endobj
10174 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 428.327 null ] >>
endobj
10175 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 334.461 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 417.368 null ] >>
endobj
10176 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 323.502 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 406.409 null ] >>
endobj
10177 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 395.451 null ] >>
endobj
10178 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 384.492 null ] >>
endobj
10179 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 373.533 null ] >>
endobj
10180 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 362.574 null ] >>
endobj
10181 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 351.615 null ] >>
endobj
10182 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 340.656 null ] >>
endobj
10183 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 329.697 null ] >>
endobj
10184 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 318.738 null ] >>
endobj
10185 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 307.779 null ] >>
endobj
10186 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 296.82 null ] >>
endobj
10187 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 285.861 null ] >>
endobj
10188 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 274.903 null ] >>
endobj
10189 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 263.944 null ] >>
endobj
10190 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 252.985 null ] >>
endobj
10191 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 242.026 null ] >>
endobj
10192 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 231.067 null ] >>
endobj
10193 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 220.108 null ] >>
endobj
10194 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 209.149 null ] >>
endobj
10195 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 198.19 null ] >>
endobj
10196 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 187.231 null ] >>
endobj
10197 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 176.272 null ] >>
endobj
10198 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-10134 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10143 0 R /XYZ 81.145 165.314 null ] >>
endobj
-10201 0 obj
-<< /Filter /FlateDecode /Length 1583 >>
-stream
-xڵYMoFW%F~dmnmAJV#$m .#q(v|0ml03\A?ލ޾78,G1xx j 4V_;Ocb@߾n`i6sd[Xotx]_(>xyYƛ/ۢ7jqXфE\bd-P@-,p+mf[0vstE+;.rQ:=/.=7 B { V2G#4mѶ>ODN=#d&pb~h"tuG?]h7uu2g%t=C* Mm5mIݜFb:j`0*7~ѭ?@TVrNo9W!{ߒȤCegεܭ|j&8mWԿj&"R9 m:pM0PFŌk`e:FŪ7U-j6x"oZOѠlv!h$St'^$U cD$hW!iSi5ILP"W+Q)N@F (V(-2CE.PlϜk04)0>asvRG9q6 K#_O%u??Cb}/ti#Д6/-,<{d4StR*YGh7S8s Ep*r)io'{cy2e GSʡze1 +N1#STA:dD]:RUJFAI㗢-]`0vH J MD)rQ!Zg:
-endstream
+10199 0 obj
+<< /D [ 10143 0 R /XYZ 81.145 154.355 null ] >>
endobj
10200 0 obj
-<< /Type /Page /Contents 10201 0 R /Resources 10199 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10143 0 R /XYZ 81.145 143.396 null ] >>
+endobj
+10201 0 obj
+<< /D [ 10143 0 R /XYZ 81.145 132.437 null ] >>
endobj
10202 0 obj
-<< /D [ 10200 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 121.478 null ] >>
endobj
10203 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 110.519 null ] >>
endobj
10204 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 99.56 null ] >>
endobj
10205 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10143 0 R /XYZ 81.145 88.601 null ] >>
endobj
-10206 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 735.955 null ] >>
-endobj
-10207 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 724.996 null ] >>
+10142 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10208 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 714.037 null ] >>
+<< /Filter /FlateDecode /Length 2382 >>
+stream
+x[ɒ(W 8`VVfT9oms9_"CdF(??8g:x{~}[x(欐ϛ7xXdà`s9א^ ۊaCZ24G_#R#zt呥 u?AQt'Qjן V?5+x S͙0$G]#%NH(,rA!>?2}P<(%)&amU %G*I9Rtvu~Zʂeª}θ[b?B6;W [-#wg6\KH
+G#Q4\
+1, ;RUB?BRӎ.VCSPYSֽT61@cRW
+^ 3yN.C|Jd
+!
+n.E@Qnz?|g:GW!I`g;~>(XKDeS#tB'T\XJmcw}=Ǵ:)9AAkYMXĆ԰suCyUR:Yf*k0N-+ҹP΅'Υ5s {)Ϲ8w$o);ŖF[U቗?4J4hm\ -+ɰ>ۧDX
+:!spzXz
+㶇y2IaeU{ թ).W=S0I9Bء)on!D
+ipn H& EC]Cd u)x䠊7o߹l_og
+ S>4}B1ÇxuHH*?rH\$ntgkzOd4Z/e :\{2xG^[
+Z_ ~hW'YkY:0% "*1Wش@s !Ɏ6<~\ ]87AI
+endstream
+endobj
+10207 0 obj
+<< /Type /Page /Contents 10208 0 R /Resources 10206 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
10209 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10207 0 R /XYZ 78.37 808.885 null ] >>
endobj
10210 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 768.829 null ] >>
endobj
10211 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 681.16 null ] >>
-endobj
-149 0 obj
-<< /D [ 10200 0 R /XYZ 79.37 657.699 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 757.87 null ] >>
endobj
10212 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 617.236 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 746.912 null ] >>
endobj
10213 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 606.278 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 735.953 null ] >>
endobj
10214 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 595.319 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 724.994 null ] >>
endobj
10215 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 584.36 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 714.035 null ] >>
endobj
10216 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 573.401 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 703.076 null ] >>
endobj
10217 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 562.442 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 692.117 null ] >>
endobj
10218 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 551.483 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 681.158 null ] >>
endobj
10219 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 540.524 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 670.199 null ] >>
endobj
10220 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 529.565 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 659.24 null ] >>
endobj
10221 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 518.606 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 648.281 null ] >>
endobj
10222 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 507.647 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 637.322 null ] >>
endobj
10223 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 496.689 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 626.364 null ] >>
endobj
10224 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 485.73 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 615.405 null ] >>
endobj
10225 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 474.771 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 604.446 null ] >>
endobj
10226 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 463.812 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 593.487 null ] >>
endobj
10227 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 452.853 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 582.528 null ] >>
endobj
10228 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 441.894 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 571.569 null ] >>
endobj
10229 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 430.935 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 560.61 null ] >>
endobj
10230 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 419.976 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 549.651 null ] >>
endobj
10231 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 409.017 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 538.692 null ] >>
endobj
10232 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 398.058 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 527.733 null ] >>
endobj
10233 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 387.1 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 516.775 null ] >>
endobj
10234 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 376.141 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 505.816 null ] >>
endobj
10235 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 365.182 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 494.857 null ] >>
endobj
10236 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 354.223 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 483.898 null ] >>
endobj
10237 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 343.264 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 472.939 null ] >>
endobj
10238 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 332.305 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 461.98 null ] >>
endobj
10239 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 321.346 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 451.021 null ] >>
endobj
10240 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 310.387 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 440.062 null ] >>
endobj
10241 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 299.428 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 429.103 null ] >>
endobj
10242 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 288.469 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 418.144 null ] >>
+endobj
+149 0 obj
+<< /D [ 10207 0 R /XYZ 79.37 393.353 null ] >>
endobj
10243 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 277.51 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 272.249 null ] >>
endobj
10244 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 266.552 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 225.862 null ] >>
endobj
10245 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 255.593 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 210.141 null ] >>
endobj
10246 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 244.634 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 199.183 null ] >>
endobj
10247 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 233.675 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 188.224 null ] >>
endobj
10248 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 222.716 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 177.265 null ] >>
endobj
10249 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 211.757 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 166.306 null ] >>
endobj
10250 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 200.798 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 155.347 null ] >>
endobj
10251 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 189.839 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 144.388 null ] >>
endobj
10252 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 178.88 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 133.429 null ] >>
endobj
10253 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 167.921 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 122.47 null ] >>
endobj
10254 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 156.963 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 111.511 null ] >>
endobj
10255 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 146.004 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 100.552 null ] >>
endobj
10256 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 135.045 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 89.593 null ] >>
endobj
10257 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 124.086 null ] >>
-endobj
-10258 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 113.127 null ] >>
+<< /D [ 10207 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10259 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 102.168 null ] >>
+10206 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F70 183 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10260 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 91.209 null ] >>
+<< /Filter /FlateDecode /Length 2045 >>
+stream
+x[Ms(W 4_rjSܶ{h 0Պx搑%S~OϧW;#@~Rܩ]pɰN ݟ{)ͫVK鬔0=nj.95RJꁴϝ+cnYb0zlIXgT"LG&|<:D~ɿJױ!5b{7?yCBn c~008="YZ8Z%0ĬDK푐R\̮>ShC:9z$V/X@XP5Ϟl:֘L
+9.\oꛪU9PfstAGғPvN$8ML^o
+q'ՐErn1zsZ2|%KN;<=4fcвK&%CJ tm_ŠJL3AB1_XJt#DaIMɥa%
+C,yn%1 ~`KLh-anguH"1믕FN:CZՏ'1|!%IS
+endstream
endobj
-10261 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 80.25 null ] >>
+10259 0 obj
+<< /Type /Page /Contents 10260 0 R /Resources 10258 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
-10199 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+10261 0 obj
+<< /D [ 10259 0 R /XYZ 78.37 808.885 null ] >>
endobj
-10264 0 obj
-<< /Filter /FlateDecode /Length 1548 >>
-stream
-xڵZMoFW%i~d4moM!0JfA
-EI.-i+/&eqξ++ޝp;[+ q) _b/ma fxq*|/ot)k K^.κPʦ_ݺ]T_¢7ai=;hR]ߕ&2[mEO#=p%?ѷdw
-ml[Z+m=-<ѷ/^iGۛL]乜z>Vÿ;8K3 )R12]oyJ;r.A2L5)34ݶS Gۆ&3. J# Ks@T},01v$u4B)zh>tShʎitRtO\oC9>TůqThLST
-ƒ֨z2@{U'h*EAٗ̅Y0e)J&G}Z6w J鶝>RThmb9xps;^EyӮVes9.ؘ0joބ>/Wa}25nv8갳4hrA7鑊 UTۢf6iV.φyJajp)?Hu*:}8MT4zN#wD
-acMWm6rN)`cib~VHy[- w/I2~&
-˞y5ېY9 W\o3xם6<aa?MBF6E2u(V5gCQ(bTZ圂 Df1?ZNfI?&gmS4ݶ 9VjޭMU]r^33zb*X
-F :9oX\UJحbi,-sd qJe#A6$]K'cf$<+rWbY0E2~d%t 7VIC%ixl<4)(Hjc<{0`GF1E¦XYUJ Tq ::H.T0g y.kPH9# Mv0Td!E+LNhOՇ+9V.iS!5* MN:BsieWIp=㨛ܐ!C)ٳB2`u[F"w]~&GF7ES~]} rK NyGQcNÙ;8y{M)pJ q?FGqMh}L~J! $Ih3t׼יDmx>v6sfO<_h3]7mP)a|!\#hazpp4yƓI*;@L-Ia4Q~瑁4m*E_~+e?nrU՟h ]ȻށVn{
-,h<9u w)8ѐ^]||x’~O9k}UaTjUxܘBXcrqL!
-endstream
+10262 0 obj
+<< /D [ 10259 0 R /XYZ 81.145 768.829 null ] >>
endobj
10263 0 obj
-<< /Type /Page /Contents 10264 0 R /Resources 10262 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10259 0 R /XYZ 81.145 753.189 null ] >>
+endobj
+10264 0 obj
+<< /D [ 10259 0 R /XYZ 81.145 742.23 null ] >>
endobj
10265 0 obj
-<< /D [ 10263 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 731.271 null ] >>
endobj
10266 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 720.312 null ] >>
endobj
10267 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 709.354 null ] >>
endobj
10268 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 698.395 null ] >>
endobj
10269 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 687.436 null ] >>
endobj
10270 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 676.477 null ] >>
endobj
10271 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 665.518 null ] >>
endobj
10272 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 623.129 null ] >>
endobj
10273 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 612.17 null ] >>
endobj
10274 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 601.211 null ] >>
endobj
10275 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 590.252 null ] >>
endobj
10276 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 560.418 null ] >>
endobj
10277 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 549.459 null ] >>
endobj
10278 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 538.5 null ] >>
endobj
10279 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 527.541 null ] >>
endobj
10280 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 516.583 null ] >>
endobj
10281 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 505.624 null ] >>
endobj
10282 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 494.665 null ] >>
endobj
10283 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 483.706 null ] >>
endobj
10284 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 472.747 null ] >>
endobj
10285 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 457.107 null ] >>
endobj
10286 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 446.148 null ] >>
endobj
10287 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 435.189 null ] >>
endobj
10288 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 424.23 null ] >>
endobj
10289 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 413.271 null ] >>
endobj
10290 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 402.312 null ] >>
endobj
10291 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 391.353 null ] >>
endobj
10292 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 380.394 null ] >>
endobj
10293 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 369.436 null ] >>
endobj
10294 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 343.437 null ] >>
endobj
10295 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 332.478 null ] >>
endobj
10296 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 290.089 null ] >>
endobj
10297 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 279.13 null ] >>
endobj
10298 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 268.171 null ] >>
endobj
10299 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 257.212 null ] >>
endobj
10300 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 246.253 null ] >>
endobj
10301 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 235.294 null ] >>
endobj
10302 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 224.335 null ] >>
endobj
10303 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 213.376 null ] >>
endobj
10304 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 197.736 null ] >>
endobj
10305 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 186.777 null ] >>
endobj
10306 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 144.388 null ] >>
endobj
10307 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 133.429 null ] >>
endobj
10308 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 122.47 null ] >>
endobj
10309 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 111.511 null ] >>
endobj
10310 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 100.552 null ] >>
endobj
10311 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 89.593 null ] >>
endobj
10312 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 259.741 null ] >>
-endobj
-10313 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 10259 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10314 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 237.823 null ] >>
+10258 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F68 181 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10315 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 226.864 null ] >>
+<< /Filter /FlateDecode /Length 2277 >>
+stream
+x[n$9+J% 8[c3kk ]=UC:##BOIQ/O<3?7-.Ĭ? QLqsJ0~pNos y;ìRhj i=CC!{t>ʦ5އW7 2?uAt-=#b$gÌ%#C߄XՍe/%6q7?ofghBݣY= `DNi{?x7?U?ғk}ǿ= GD<sN2H|ww=ȥ<<qbFy5VϘkh 3޹g
+I*듈zEKGREO]o -z#j|'t+3weEÏ
+ƵJB+ʒV[.T]]m^c?r
+A/RV3%Eٕ $'G ԵI@-yI1}zu@ zj9kez!UX?t-27tLS޹yV:aa(0G$ )caQeZ_eQ9 LZ:_v"W КAgǸXt@EP3 dXMI5x-x]<ei?6oPv'< # AH~Y2I@15m:l >Iք~rg5;t-#$4Ŭ
+9`҃i,AxpVR%y
+MPLW<Z) J3l+` PAs>Q4SYg-L˿~_ьw vYy.ss;QcRBY],o
+sxS
+endstream
+endobj
+10314 0 obj
+<< /Type /Page /Contents 10315 0 R /Resources 10313 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9836 0 R >>
endobj
10316 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 10314 0 R /XYZ 78.37 808.885 null ] >>
endobj
10317 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 768.829 null ] >>
endobj
10318 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 757.87 null ] >>
+endobj
+153 0 obj
+<< /D [ 10314 0 R /XYZ 79.37 710.421 null ] >>
endobj
10319 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 613.414 null ] >>
endobj
10320 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 602.455 null ] >>
endobj
10321 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 591.496 null ] >>
endobj
10322 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 575.556 null ] >>
endobj
10323 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 564.597 null ] >>
endobj
10324 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 553.638 null ] >>
endobj
10325 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 542.679 null ] >>
endobj
10326 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 531.72 null ] >>
endobj
10327 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 95.357 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 520.762 null ] >>
endobj
10328 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 84.398 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 509.803 null ] >>
endobj
-10262 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+10329 0 obj
+<< /D [ 10314 0 R /XYZ 81.145 498.844 null ] >>
endobj
-10331 0 obj
-<< /Filter /FlateDecode /Length 1997 >>
-stream
-xڵZMoWdVh ma(6%%OMJ4Htxǹb_ÑH'XC9-(<TL(hEIn3}jg7CRܤ`,yCJ&oÛ7J?Z[tdAh"~%sWmn <ٖ(KsYϪ݇!zgffsMBT%M) 6Մ1m+TƤ`j~<
-ERFHmmV]M-W :2480|skes`Ven \H΢R(C+MiNx4-
-XYnUp5IV1"xHAQ=Qۦdਟ"煔%%BG G9E{ʋj3[7Gu|O MYc48)e,<5ZMpߙH)j \iTnn!YCK?KF 6v!qsKd72D@QNѯ聾Dhbf$\xXfFMMdfpRtU\jA1I.q}nM bc$%fhNJFBR2%l4% Yeƻ!>X/2Z0UT!XQ@bT] kYN!Ty}pc݋k(bJc>c >tzט"TxFDYg;ENR?hE(}ko[IB! ~
->L;/4~9_$!ط62)QUsBF"T~-0m2+c{P=R]Yl>T͇SJ*;E[6ci+YdCR"1DȨ
-:h
--r8g}i{H^b;p=a/~>Ԅ8|2C4 »CC+^6V:-=M?Լ+%a3ZÜE5/ZyFrn2sbiƎB@/#VJ“U۝H_@
-nqê? ١$:;4HO8[ɇ Y|V svkv
-t
-endstream
+157 0 obj
+<< /D [ 10314 0 R /XYZ 79.37 473.395 null ] >>
endobj
10330 0 obj
-<< /Type /Page /Contents 10331 0 R /Resources 10329 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10314 0 R /XYZ 81.145 405.002 null ] >>
+endobj
+10331 0 obj
+<< /D [ 10314 0 R /XYZ 81.145 394.043 null ] >>
endobj
10332 0 obj
-<< /D [ 10330 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 383.084 null ] >>
endobj
10333 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 372.125 null ] >>
endobj
10334 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 361.166 null ] >>
endobj
10335 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 350.207 null ] >>
endobj
10336 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 334.267 null ] >>
endobj
10337 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 323.308 null ] >>
endobj
10338 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 312.349 null ] >>
endobj
10339 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 301.39 null ] >>
endobj
10340 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 290.431 null ] >>
endobj
10341 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 279.472 null ] >>
endobj
10342 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 268.513 null ] >>
endobj
10343 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 257.555 null ] >>
endobj
10344 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 181.838 null ] >>
endobj
10345 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 170.88 null ] >>
endobj
10346 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 159.921 null ] >>
endobj
10347 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 148.962 null ] >>
endobj
10348 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 138.003 null ] >>
endobj
10349 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 127.044 null ] >>
endobj
10350 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 116.085 null ] >>
endobj
10351 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 105.126 null ] >>
endobj
10352 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 94.167 null ] >>
endobj
10353 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 10314 0 R /XYZ 81.145 83.208 null ] >>
endobj
-10354 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 538.695 null ] >>
-endobj
-10355 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 527.736 null ] >>
+10313 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R /F70 183 0 R /F68 181 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10356 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 516.777 null ] >>
+<< /Filter /FlateDecode /Length 2177 >>
+stream
+x[ɒ#'WdpLD%M}sjWEָ=sP" ^&/ -ī]_/*$p2SB:uxoR(W_/RJ !׋3}#oPc/߾h7KiUVX^V}>)sĻX>./.}R{k/b3Y[EKD5ɘDe0u
+e!Xǫx|;?*/*6~[\(8O7xsj9Ά5a0|b
+y gC;z}Jgv:k4ˈ3؏W4L
+Lmƥs
+"<W(eEj?mt>zjl\ˡĮM4g G6Z{Xp, i ?m!ly\[Vn `iH7ɣf.bi+Tnɡ#{2v0oS7JЎ&=y͛ι>A) QJHNȖ4%A)@[UV8J"!B66~ OޜvNP";
+!8+pQ(Sa}e+-rV~64wt
+F5OqBYN_!bOij{bY|J!TMuKls,͘׹uwN!hVOgf~4!Fhf=aj/by4z[P-&FAy ohǭ<kJ][!YQRhf0{Lbfq
+Ϫy;l0φͬK}&@0D,?:=sϔ!3lJ,m]%xoZM݁
+ Wouv: N›&w&}H;;PŎ0iĒu>4񩮙昭l~3}&0Hzm;l[vu$_i5S$Y_sh+ŔU v~_i3j
+k 5 A
+U:[K2Kx :$b~rF
+г]fAG“=m)9^k;v?:G)s#rx~
+endstream
+endobj
+10355 0 obj
+<< /Type /Page /Contents 10356 0 R /Resources 10354 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10357 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 10355 0 R /XYZ 78.37 808.885 null ] >>
endobj
10358 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 768.829 null ] >>
endobj
10359 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 742.926 null ] >>
endobj
10360 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 731.968 null ] >>
endobj
10361 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 721.009 null ] >>
endobj
10362 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 710.05 null ] >>
endobj
10363 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 699.091 null ] >>
endobj
10364 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 685.143 null ] >>
endobj
10365 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 674.184 null ] >>
endobj
10366 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 663.225 null ] >>
endobj
10367 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 652.266 null ] >>
endobj
10368 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 641.308 null ] >>
endobj
10369 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 630.349 null ] >>
endobj
10370 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 614.408 null ] >>
endobj
10371 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 603.45 null ] >>
endobj
10372 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 592.491 null ] >>
endobj
10373 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 581.532 null ] >>
endobj
10374 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 570.573 null ] >>
endobj
10375 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 559.614 null ] >>
endobj
10376 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 548.655 null ] >>
endobj
10377 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 532.715 null ] >>
endobj
10378 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 521.756 null ] >>
endobj
10379 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 264.722 null ] >>
-endobj
-153 0 obj
-<< /D [ 10330 0 R /XYZ 79.37 242.776 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 510.797 null ] >>
endobj
10380 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 123.122 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 499.838 null ] >>
endobj
10381 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 488.879 null ] >>
endobj
-10329 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10384 0 obj
-<< /Filter /FlateDecode /Length 1952 >>
-stream
-xZmo_o޾shE/M^A4@K+8<{gtFrΔ(>gvggftDO/HLkEtfF͒Y\Zn?{0S0XeBWw=ZqulӺ~s)/{nE|N;pih!%?%ƈ*Fm K861zq퀴w
-Aq!B 9!%M+ zoI;w>wq1`ϊȕEA4pY)< -/n?'G kêŝ)xGa[ N5R<EԕeQ_NRS" N4xTPň맲XB'h?YW7!3r`{Eԇ,<erʙ7 {CZa 7S4Z
-[R
- cQ@7ldQn+Dh{PNDh Ǭ,{וo5BVv.zT =^l1}xXvфSB2΅ )=Cy*@Dw: D=/VNFYH.D%cA |P2e
-cXFoF n9*.kDhP rP@XB@
-PcM7 <$(ӂ: x3!spo&'"QRcK[y%IZP"I"pi 8SWڀÔN d)z5rX (k QLjs簙 ទDhtu`A6T$GfE O+P'SDb
-{w깪}C]t>gt_EkO|9ȇ=b'6W\_>w}6\y/W gVb_~|aAS=>L8gPk
-L*B ~7!jC$o;Nk1ǐđ L2ȡݾX M}isEѢ%ө8R4 K{&W{4,أ$e@!P1`Ȏnx ($`'B93O|%q< Mx.FM$ȗF;Y+xh]By
-endstream
+10382 0 obj
+<< /D [ 10355 0 R /XYZ 81.145 477.92 null ] >>
endobj
10383 0 obj
-<< /Type /Page /Contents 10384 0 R /Resources 10382 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10355 0 R /XYZ 81.145 461.98 null ] >>
+endobj
+10384 0 obj
+<< /D [ 10355 0 R /XYZ 81.145 451.021 null ] >>
endobj
10385 0 obj
-<< /D [ 10383 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 440.062 null ] >>
endobj
10386 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 429.103 null ] >>
endobj
10387 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 418.144 null ] >>
endobj
10388 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 407.186 null ] >>
endobj
10389 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 396.227 null ] >>
endobj
10390 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 385.268 null ] >>
endobj
10391 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 374.309 null ] >>
endobj
10392 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 358.369 null ] >>
endobj
10393 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 347.41 null ] >>
endobj
10394 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 336.451 null ] >>
endobj
10395 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 325.492 null ] >>
endobj
10396 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 314.533 null ] >>
endobj
10397 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 303.574 null ] >>
endobj
10398 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 292.615 null ] >>
endobj
10399 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 281.656 null ] >>
endobj
10400 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 270.697 null ] >>
endobj
10401 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 599.772 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 259.738 null ] >>
endobj
10402 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 588.813 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 248.78 null ] >>
endobj
10403 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 577.854 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 237.821 null ] >>
endobj
10404 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 566.895 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 215.903 null ] >>
endobj
10405 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 555.936 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 204.944 null ] >>
endobj
10406 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 544.978 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 193.985 null ] >>
endobj
10407 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 534.019 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 183.026 null ] >>
endobj
10408 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 523.06 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 172.067 null ] >>
endobj
10409 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 512.101 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 161.108 null ] >>
endobj
10410 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 501.142 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 150.149 null ] >>
endobj
10411 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 490.183 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 139.19 null ] >>
endobj
10412 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 479.224 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 128.232 null ] >>
endobj
10413 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 468.265 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 117.273 null ] >>
endobj
10414 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 457.306 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 101.332 null ] >>
endobj
10415 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 425.651 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 90.374 null ] >>
endobj
10416 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 414.692 null ] >>
+<< /D [ 10355 0 R /XYZ 81.145 79.415 null ] >>
endobj
-10417 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 403.733 null ] >>
+10354 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F73 267 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-10418 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 392.774 null ] >>
+10420 0 obj
+<< /Filter /FlateDecode /Length 1785 >>
+stream
+x[Ms(Wl4WTű=U{mk $D-{2Aчnÿul>J>_]>Ġ ^yҩ:CpT8xA9}xw謔{Vb~!@t΄HvDrA)sI[Bio)]S%=M||N}& s{[F?Np+|8?hyOXTP\Q\.W{[Z!G;ruqfKXn~nv&q%nj~90BrCJfW ѩ!uyKhM*e5VP~'qLM ۳,l=g#t$/%|xMp-q%ڞײ9Xm=ھT;h
+eM鑾p|Qu^R%v:m&}t䀢暵)NY"[]cQXYjqCud +v
+ r5:>kykcybDFC_ZC6~
+]XQ>sYIrS/75\W}[H,DؚҀ4a2eV* 5DLM/yUjxDQTޒGn\Nf"b^c
+:)x~}z
+endstream
endobj
10419 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 381.815 null ] >>
-endobj
-10420 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 370.856 null ] >>
+<< /Type /Page /Contents 10420 0 R /Resources 10418 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10421 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 359.897 null ] >>
+<< /D [ 10419 0 R /XYZ 78.37 808.885 null ] >>
endobj
10422 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 348.938 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 768.829 null ] >>
endobj
10423 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 337.979 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 757.87 null ] >>
endobj
10424 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 322.344 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 746.912 null ] >>
endobj
10425 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 311.385 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 735.953 null ] >>
endobj
10426 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 300.427 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 724.994 null ] >>
endobj
10427 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 289.468 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 709.053 null ] >>
endobj
10428 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 278.509 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 698.095 null ] >>
endobj
10429 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 267.55 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 687.136 null ] >>
endobj
10430 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 256.591 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 676.177 null ] >>
endobj
10431 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 245.632 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 665.218 null ] >>
endobj
10432 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 234.673 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 654.259 null ] >>
endobj
10433 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 208.69 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 638.319 null ] >>
endobj
10434 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 197.731 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 627.36 null ] >>
endobj
10435 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 616.401 null ] >>
endobj
10436 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 605.442 null ] >>
endobj
10437 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 594.483 null ] >>
endobj
10438 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 583.524 null ] >>
endobj
10439 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 567.584 null ] >>
endobj
10440 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 556.625 null ] >>
endobj
10441 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 545.666 null ] >>
endobj
10442 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 534.707 null ] >>
endobj
-10382 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10445 0 obj
-<< /Filter /FlateDecode /Length 1721 >>
-stream
-xڵYMo6W6RP-6-ڴRV oP)q^"# 9f<^0wKat0x  H5P ,`=Fus B, &(&>uQ,lvq5 *y]2+:/jxeb^DT`D0uD>$ Q1bcHiH '˴ZЄrDףs:]DDHD/.M1sCU.UtRۇYѬnΐHňოެ"5w#mG`EU5P_J%! Qy̐gl)l{8>LQ}9f?[Nt|iC^yP2axx28.0`te/ Y'b\84xEҭ͎\;F~vsL'7\^>:T?I8U+?+&,ʋ;^.gbZfhY#¬{@{YJޜ c[>:|mEt2QEv]_
-P#vdC=B%Hr՗a`&Fd)~-&R$'9PΩ?1, VV*ޘ(y-"_>ػie/A8^o
- 6 AB]_tpk 3~<y:
-,h`EQ$uL|gAjPm_@ZA;<̑}tpe!\g*DP꡽GKxAlV{`O
- QQr;IRp冴cihSW5tLZYGb@N$;r}t,Bx&=׀**p";v̩EJW>Eq;(c'% }_o-&LRs]% B݋ª.A򪾸ʻщޥ2^F?T iRp S(w)PweByprF˺2L<tcEI7ˬ7lQq,7Mp7l~(u.-&1no-k+hQ7;?vMXGUI1K2A9(z!%:oߗ*M7c-(b.x88v IŮ^I& DgWP4K}ۑOFaC-#142NeTxtA{Jo/WGEkqU
-'8JivLHW:wd2{c6Q}
-endstream
+10443 0 obj
+<< /D [ 10419 0 R /XYZ 81.145 523.748 null ] >>
endobj
10444 0 obj
-<< /Type /Page /Contents 10445 0 R /Resources 10443 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10419 0 R /XYZ 81.145 512.789 null ] >>
+endobj
+10445 0 obj
+<< /D [ 10419 0 R /XYZ 81.145 496.849 null ] >>
endobj
10446 0 obj
-<< /D [ 10444 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 485.89 null ] >>
endobj
10447 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 474.931 null ] >>
endobj
10448 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 463.973 null ] >>
endobj
10449 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 715.033 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 453.014 null ] >>
endobj
10450 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 704.075 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 442.055 null ] >>
endobj
10451 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 693.116 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 426.115 null ] >>
endobj
10452 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 682.157 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 415.156 null ] >>
endobj
10453 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 671.198 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 404.197 null ] >>
endobj
10454 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 393.238 null ] >>
endobj
10455 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 382.279 null ] >>
endobj
10456 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 366.339 null ] >>
endobj
10457 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 627.362 null ] >>
-endobj
-157 0 obj
-<< /D [ 10444 0 R /XYZ 79.37 579.907 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 355.38 null ] >>
endobj
10458 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 483.059 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 344.421 null ] >>
endobj
10459 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 472.101 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 333.462 null ] >>
endobj
10460 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 461.142 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 322.503 null ] >>
endobj
10461 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 450.183 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 311.544 null ] >>
endobj
10462 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 434.243 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 295.604 null ] >>
endobj
10463 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 423.284 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 284.645 null ] >>
endobj
10464 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 412.325 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 273.686 null ] >>
endobj
10465 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 401.366 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 262.727 null ] >>
endobj
10466 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 390.407 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 251.768 null ] >>
endobj
10467 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 379.448 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 235.828 null ] >>
endobj
10468 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 368.489 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 224.869 null ] >>
endobj
10469 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 357.53 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 213.91 null ] >>
endobj
10470 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 346.571 null ] >>
-endobj
-161 0 obj
-<< /D [ 10444 0 R /XYZ 79.37 321.117 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 202.951 null ] >>
endobj
10471 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 252.774 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 191.992 null ] >>
endobj
10472 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 241.815 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 181.034 null ] >>
endobj
10473 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 230.856 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 165.093 null ] >>
endobj
10474 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 219.897 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 154.134 null ] >>
endobj
10475 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 208.938 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 143.176 null ] >>
endobj
10476 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 197.979 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 132.217 null ] >>
endobj
10477 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 182.039 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 121.258 null ] >>
endobj
10478 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 171.08 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 110.299 null ] >>
endobj
10479 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 160.121 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 94.359 null ] >>
endobj
10480 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 149.162 null ] >>
+<< /D [ 10419 0 R /XYZ 81.145 83.4 null ] >>
endobj
-10481 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 138.203 null ] >>
-endobj
-10482 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 127.244 null ] >>
+10418 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10483 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 116.285 null ] >>
+<< /Filter /FlateDecode /Length 1959 >>
+stream
+x[r()@ TmMU<jϹmuvQ+Lj[?}Oߟt}W~:<}sr*Ec9ET)QjZs~9C_+ST ȀV<E|_.W]0S~ߗ}~W^ӻռ-Ńl)#&:ElKz\
+U-嚪ɘ`,[{fI=c-_}{YϛdͲSeef{&Ig9Yf2uU|XLW0^)WMQMe*E-q~MMIG *}j2FYC %1O$v']hbB4_X<(q{xX._XsVcXa|-vs$^k8sϕ+0/5˷6L9e %+RXD/=5KBi5&Lt<;`H
+#O5N)'MK{}QJ=53pYlU٣bNbb̊aZjG$p-!UDϱc˲G˕7O*y-dAM-&A UfoFsjuKU-.NnzOsHE*jjvu<5 &gnI]/Azȷ)ƫEq *=
+ *$k8}?<Zr?wVyҺ =K9O{Rb?
+)ʜt`ymci:$/jA p;nBs`2<9x#,Y@K^iXId
+%Oz_ݢY3q/#=)m,҉%a NV(naޫ30k&AM0%ANt*Yn[J.L> 7Kkv[cqv+X[.fp78YVN#1
+@(gbiPSDA*|hnzIJul#޾GdT0[p7 )Ƽ`Xv -ze qw g*Y}C `S&mď8$bs aᤏ }LorpJF42MwiȽO(H,9X7SSޒjHNY9QA<쯎:a:f;gY65V{K٠Hγ@$ } fw_6'"HgWTP<?)V*ǩZ8ԢHflѣ4ܞۑ3z0')qk$V&g+czԫ_ϰ{j-n~,^&d}`U4{"@Rd%q"IF fM/eք/ ˹@JGD׵xp⩜;60 f(6@E\;8tdD}<K1 Q8!H?A;;m9Q A.sSVPl=}.wSsb
+;E:Hk i"~L|[@V|Y%Hu7}Yk,F1d3TLmPד1xY"'Z.Ob <٧ܙD6
+endstream
endobj
-10484 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 105.327 null ] >>
+10482 0 obj
+<< /Type /Page /Contents 10483 0 R /Resources 10481 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
-10443 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+10484 0 obj
+<< /D [ 10482 0 R /XYZ 78.37 808.885 null ] >>
endobj
-10487 0 obj
-<< /Filter /FlateDecode /Length 2331 >>
-stream
-xڽZ[o~ϯ[d ;9
--M
- b(i$K*I1o^F,(E_L7~1l&t;_<{'f&͵6 $ҌP&ݽѴPrgS[w<ݯwd=YaWn䫻lqz-A5Bʄqn˲(uQwvT~2BDp.BfcK"w޸N4$ aTwA{XuZ&i4]e{8*@r
-d<]᱘}h)%k8K9&n=0,&SKW.bLBC|X_WvNg\fTm]l $.QnēULwGKV
-4:!h$ P\>?<ILcM4
-}n>II j,jqvRoe 7=u,3֥16@;6$&D 8tUm5/s#eu|';;ӼK$1hws B
-gNmqOIvs=eeѱ/ȡ!oʽ>C}(x#Qt4 ߆J`ӆ!%V^hg]-J2yڡDLb6,@~ZwٶEYNM׼'>7 .>ۈK&7\ n
-ljگJRA\Trtgo1q12FC?0dY(PNJnݰ@! Ϛ%1Lah'2:Җz/׃n =٦m}c-"Ao$U(MhtRRF9P~ qO ň2ڳXOwܸn޾p~W)ȿ(.]@Q1 !M`Ն꾨
-&E.XLQ\IfP)} ҇ Q\ݘ9̓1+htR0h&r
-Ӹ@A,8H;$
-evUi|Mw –n yL gx )EߐWwT}vZ_k[z %#=pGW|$ٝ
-'0,ٻS3
-endstream
+10485 0 obj
+<< /D [ 10482 0 R /XYZ 81.145 768.829 null ] >>
endobj
10486 0 obj
-<< /Type /Page /Contents 10487 0 R /Resources 10485 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10482 0 R /XYZ 81.145 757.87 null ] >>
+endobj
+10487 0 obj
+<< /D [ 10482 0 R /XYZ 81.145 746.912 null ] >>
endobj
10488 0 obj
-<< /D [ 10486 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 735.953 null ] >>
endobj
10489 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 720.328 null ] >>
endobj
10490 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 709.369 null ] >>
endobj
10491 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 698.41 null ] >>
endobj
10492 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 687.451 null ] >>
endobj
10493 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 676.492 null ] >>
endobj
10494 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 665.533 null ] >>
endobj
10495 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 654.575 null ] >>
endobj
10496 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 638.95 null ] >>
endobj
10497 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 627.991 null ] >>
endobj
10498 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 617.032 null ] >>
endobj
10499 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 606.073 null ] >>
endobj
10500 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 595.114 null ] >>
endobj
10501 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 584.155 null ] >>
endobj
10502 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 573.196 null ] >>
endobj
10503 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 562.237 null ] >>
endobj
10504 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 551.279 null ] >>
endobj
10505 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 540.32 null ] >>
endobj
10506 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 524.695 null ] >>
endobj
10507 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 513.736 null ] >>
endobj
10508 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 502.777 null ] >>
endobj
10509 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 491.818 null ] >>
endobj
10510 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 480.859 null ] >>
endobj
10511 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 469.9 null ] >>
endobj
10512 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 454.276 null ] >>
endobj
10513 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 443.317 null ] >>
endobj
10514 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 432.358 null ] >>
endobj
10515 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 421.399 null ] >>
endobj
10516 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 410.44 null ] >>
endobj
10517 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 399.481 null ] >>
endobj
10518 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 388.522 null ] >>
endobj
10519 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 372.898 null ] >>
endobj
10520 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 361.939 null ] >>
endobj
10521 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 350.98 null ] >>
endobj
10522 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 340.021 null ] >>
endobj
10523 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 329.062 null ] >>
endobj
10524 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 318.103 null ] >>
endobj
10525 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 302.478 null ] >>
endobj
10526 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 291.52 null ] >>
endobj
10527 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 280.561 null ] >>
endobj
10528 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 269.602 null ] >>
endobj
10529 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 258.643 null ] >>
endobj
10530 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 247.684 null ] >>
endobj
10531 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 236.725 null ] >>
endobj
10532 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 225.766 null ] >>
endobj
10533 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 214.807 null ] >>
endobj
10534 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 203.848 null ] >>
endobj
10535 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 192.889 null ] >>
endobj
10536 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 181.931 null ] >>
endobj
10537 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 170.972 null ] >>
endobj
10538 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 160.013 null ] >>
endobj
10539 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 149.054 null ] >>
endobj
10540 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 138.095 null ] >>
endobj
10541 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 127.136 null ] >>
endobj
10542 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 116.177 null ] >>
endobj
10543 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 100.552 null ] >>
endobj
10544 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 10482 0 R /XYZ 81.145 89.593 null ] >>
endobj
-10485 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F74 264 0 R >> /ProcSet [ /PDF /Text ] >>
+10545 0 obj
+<< /D [ 10482 0 R /XYZ 81.145 78.635 null ] >>
+endobj
+10481 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10548 0 obj
-<< /Filter /FlateDecode /Length 1773 >>
+<< /Filter /FlateDecode /Length 2148 >>
stream
-xڵZM60CeMjOA$HPТ) M{c! 6%nGq/33H͌^'Q/OoIX&l`pD333l^zH=9֋7:Yh-8%F$1WumQ6ݺ+ҶTQwt7[un֕m杻o]ͻGxQ 1zX.=мzm <w$o *:/4!T>U7W4pnQ+xD/¤їڦ[nMg b۸ߞzZ_ {0+>nc'V]hEcލk)4PnnyySpa0i&4nc
-WBڦ9AӡpsƠzT][[AikSFA|(͢twe;OëbzNv b 6B9"xԉQH>ݱ .E8(0wʒ^t j {][T]UKY܋NT=6eZ+o/ɡv\Ӥ^Um5r9NHZ6 ==1KT4P )B{6 RӦm\
-_}1䜈a Zc4>`VvnZ++P$
-&0j
-SFW&>hDא,`
-p |XㆳW& mD3
-7Dh
-p C kpϣ\pBe04cph
-DT / FsFƪ}^ `F`qgq]X,ٰ 5%Yѿ?0MM-pu]sxZE|Pp7]!_, |rc-K1&C6P6?f$imd+ּJ۩*(V5F q"gu²lrԆ#Q"4%c0 q>N<^ђ_ jfYRA?:Pe7_b_bԥ nwjYs1ؕ4CO[$:{@BEvĴIJ+Zb7|=P
+xZ͎6 SX`=IynE%6%3;m{X)~/]oũǟof~H_%t`_v7m:|?>~[qC$C*B6 u ~~\`"^W\Xp.ʷ7XX6.y_aZie q~~ov~SXe\3->-
+hFFJ5*̱*&]/]֑9l6+<wʕAY%{ 9٨Pz= I#U_V$3mlk :hө!O:
+"Z`GlSdMH<t51G.PL CV1&6d\e@*x^6RT.5J_ɜDi@uI-Nύj<5olggwQ}JJIՒ{y֨ GRp=Ы
+l”ƅ֊)%5/h~w]if=ЉfҚQq#Eߧ 536hexԱLI;qX4ijTR)ۺfo1$7||'Χ_~RQ1s[RW^hQx#y{JϙM.%gM#"<[+Geccԋ2f ڑ>*]0f8JYz yt^+:yHoTv9 ,bGq)QX7}I>j;d\b9lVg
+!
+ +W*M%2Wo[%j"oh>JDD,Pv" HJDZ dbokt<):HFzyߪ1uJ~acVn(2]&{5 n.v\iݷ(!$e }uJv# /TTNrr5H+gOGdž7 qM|eƳSѬH?*DV4ef([ti?P%K/|&hģ:QtR﷍xo@vj&kWR bNܴ{Hˢ.[gzԷa%SƬJ[aEk)uqە69P2
endstream
endobj
10547 0 obj
-<< /Type /Page /Contents 10548 0 R /Resources 10546 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /Type /Page /Contents 10548 0 R /Resources 10546 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10549 0 obj
<< /D [ 10547 0 R /XYZ 78.37 808.885 null ] >>
endobj
10550 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 768.829 null ] >>
endobj
10551 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 757.87 null ] >>
endobj
10552 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 746.912 null ] >>
endobj
10553 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 735.953 null ] >>
endobj
10554 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 724.994 null ] >>
endobj
10555 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 714.035 null ] >>
endobj
10556 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 703.076 null ] >>
endobj
10557 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 692.117 null ] >>
endobj
10558 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 681.158 null ] >>
endobj
10559 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 670.199 null ] >>
endobj
10560 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 659.24 null ] >>
endobj
10561 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 648.281 null ] >>
endobj
10562 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 637.322 null ] >>
endobj
10563 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 621.382 null ] >>
endobj
10564 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 610.423 null ] >>
endobj
10565 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 599.464 null ] >>
endobj
10566 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 588.506 null ] >>
endobj
10567 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 577.547 null ] >>
endobj
10568 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 566.588 null ] >>
endobj
10569 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 555.629 null ] >>
endobj
10570 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 539.689 null ] >>
endobj
10571 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 528.73 null ] >>
endobj
10572 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 517.771 null ] >>
endobj
10573 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 506.812 null ] >>
endobj
10574 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 495.853 null ] >>
endobj
10575 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 479.913 null ] >>
endobj
10576 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 468.954 null ] >>
endobj
10577 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 457.995 null ] >>
endobj
10578 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 447.036 null ] >>
endobj
10579 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 436.077 null ] >>
endobj
10580 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 420.137 null ] >>
endobj
10581 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 409.178 null ] >>
endobj
10582 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 398.219 null ] >>
endobj
10583 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 387.26 null ] >>
endobj
10584 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 376.301 null ] >>
endobj
10585 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 365.342 null ] >>
endobj
10586 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 354.384 null ] >>
endobj
10587 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 338.443 null ] >>
endobj
10588 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 327.484 null ] >>
endobj
10589 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 316.525 null ] >>
endobj
10590 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 305.567 null ] >>
endobj
10591 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 294.608 null ] >>
endobj
10592 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 283.649 null ] >>
endobj
10593 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 272.69 null ] >>
endobj
10594 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 256.75 null ] >>
endobj
10595 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 245.791 null ] >>
endobj
10596 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 234.832 null ] >>
endobj
10597 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 223.873 null ] >>
endobj
10598 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 212.914 null ] >>
endobj
10599 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 201.955 null ] >>
endobj
10600 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 186.015 null ] >>
endobj
10601 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 175.056 null ] >>
endobj
10602 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 164.097 null ] >>
endobj
10603 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 153.138 null ] >>
endobj
10604 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 142.179 null ] >>
endobj
10605 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 131.22 null ] >>
endobj
10606 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 120.261 null ] >>
endobj
10607 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 98.346 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 109.303 null ] >>
endobj
10608 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 87.387 null ] >>
+<< /D [ 10547 0 R /XYZ 81.145 93.362 null ] >>
+endobj
+10609 0 obj
+<< /D [ 10547 0 R /XYZ 81.145 82.403 null ] >>
endobj
10546 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-10611 0 obj
-<< /Filter /FlateDecode /Length 2064 >>
-stream
-xڭMoFB{h
-7S6I[!h h 5HʮE()are|9gfv-nEt|e\\^<{mB$R,.|f]XYdb]$Q O6"f12<,Xŋm}sUfK-U:krWysvM۽'LO##.s&d2a\޶<϶(۵]iK״:k۬}='S7ʲ>B7|ھЂi ͨE% J3N|ܘXi֌fZp,9p
--IOi$b꧑MP{ivxh֏?.O`ըϜ~oQh@%0u]e~lڴBna-ŪT@6IΚBFY-0H,a)!g)i tCP )yܱqUyyn"MVKv$SAʳ!59mrޑCTh0DCİ6T|
->µd 'cƒuv~5kWE}^;^I
-B8VpK^-2"& $j2 =`
-RXẊPQ5/יoI>AcL%0WM[t2}3ⱽOR{C;šoI%$ &9d$,Oѱ ָx'2D M6'v&-7i7f}{cIb`X!|6# }OgN89C9FQj&+|~?+ۼ 7fY٘Μ"5Xf:>RqiծHC|fcZiliKs-TSj5$<VCCVͪ~=t +8(l
-'t;],\s%%DԓZ&fK(\0~KR+('N9紩ٻ6p7q?"O^50(Ч8Vҵu)ۀ/=k[Pk%L>KZ-|*nKR-o=oHU"gv;"Я
-7]~mJZ {LSH4RN@:S)W>.'8e̠T'
-ĂO^^ mjRF%hPLË|wYQl5 iq t@xZB/@92`FvL̐= 4 =Oi*= XP̩y珂cIԵPH2AS;Kݎ.@Av9\B((P9Ś KOM31M6摚IT$3s lLⳳ :#5\q"+<UפܓS.劶749i;HEH3@#xf'vMpǜ3pp7$Y[J O<h'
+10612 0 obj
+<< /Filter /FlateDecode /Length 2218 >>
+stream
+x[˲'߯l;䪬.mo j]M;k4#C<xU||}zu"e7'u
+ @%$??Ji/R:Ϗ7/W " #RxnT;KR}/tϤא~1]kڧWH.6#,{dBIM Ϭ)-yr6/MuմyMhLvIvOW{ܟs<F9>]vBYC,U]MK\}6E|k':"?k<t' kYݓaLsAb"/ 3:̜_%d{VSۼ!щ?LAP^B*i$c8?sl5gsk*N6Y
+^Pi2ԓhHnfQaUv
+
+笰@S"$3Egбjm+&ZVݝ%9,2VT8kSSvj5o2<bY)5'Z0dzA}5P3Z8ڧLec/`&F8M
+7Co>CN~;rSG"&[iZ6ޒT wVa%F'HJZҫj;rZ
+5zkpK8
+n2Wف^࣓ނa5#jCh?(.Zz|F[.8Z$!1!B`rU:gB+KW;v74 ~hvz˶]a#2|<i FQ~+j@f|55H,W>3iMT+C ܉ӤDՙT+fk?Γ]7ƟZ pCBH!bB AYWw>Lw*[sc\Jn$e\
+PU=WGG:׊ZʵGn ր0ÔϷ0KwgۧmŮu۟5؟a%/}-:<~~FJjyV>*D0@R Om"&yKbz'Me58׎,I{EX U*.wGn?n<&¤$$+
+;t1
+:chQٴUo|jvxm,~וڶ:le,XⱣu:aԒ5还55xº@1'يv|> lו;ŵvZr$UKu8~ptklD {`%a;m,2{_N&=^#OEE$0bIS"0
+f?*7|q.uJE"ʕY+J~Oy>cпC/>u MED2J+:EH:m(XN5O;C,tƉ<s
+4圽H,ꥯH9G=,@_lk`폏lVc;Cy7- [DHTWϕiɓIaؼk}0z4kyoy\|*
+m<6K߯Ƈ$4[!D-| 9^qs/$7T#g3/%9)2x||| Ŷyi JRDO/)ۿkS
endstream
endobj
-10610 0 obj
-<< /Type /Page /Contents 10611 0 R /Resources 10609 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
-endobj
-10612 0 obj
-<< /D [ 10610 0 R /XYZ 78.37 808.885 null ] >>
+10611 0 obj
+<< /Type /Page /Contents 10612 0 R /Resources 10610 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10613 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10611 0 R /XYZ 78.37 808.885 null ] >>
endobj
10614 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 768.829 null ] >>
endobj
10615 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 757.87 null ] >>
endobj
10616 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 746.912 null ] >>
endobj
10617 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 735.953 null ] >>
endobj
10618 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 709.191 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 724.994 null ] >>
endobj
10619 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 698.232 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 714.035 null ] >>
endobj
10620 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 687.273 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 698.41 null ] >>
endobj
10621 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 676.314 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 687.451 null ] >>
endobj
10622 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 665.355 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 676.492 null ] >>
endobj
10623 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 654.396 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 665.533 null ] >>
endobj
10624 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 638.591 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 654.575 null ] >>
endobj
10625 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 627.632 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 643.616 null ] >>
endobj
10626 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 616.673 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 632.657 null ] >>
endobj
10627 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 605.714 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 621.698 null ] >>
endobj
10628 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 594.755 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 610.739 null ] >>
endobj
10629 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 583.796 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 595.114 null ] >>
endobj
10630 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 567.991 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 584.155 null ] >>
endobj
10631 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 557.032 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 573.196 null ] >>
endobj
10632 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 546.073 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 562.237 null ] >>
endobj
10633 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 535.114 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 551.279 null ] >>
endobj
10634 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 524.155 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 540.32 null ] >>
endobj
10635 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 513.196 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 529.361 null ] >>
endobj
10636 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 497.391 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 518.402 null ] >>
endobj
10637 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 486.432 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 502.777 null ] >>
endobj
10638 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 475.473 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 491.818 null ] >>
endobj
10639 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 464.514 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 480.859 null ] >>
endobj
10640 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 453.555 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 469.9 null ] >>
endobj
10641 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 442.596 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 458.942 null ] >>
endobj
10642 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 431.637 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 447.983 null ] >>
endobj
10643 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 415.832 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 432.358 null ] >>
endobj
10644 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 404.873 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 421.399 null ] >>
endobj
10645 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 393.914 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 410.44 null ] >>
endobj
10646 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 382.955 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 399.481 null ] >>
endobj
10647 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 371.996 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 388.522 null ] >>
endobj
10648 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 361.037 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 377.563 null ] >>
endobj
10649 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 350.078 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 366.605 null ] >>
endobj
10650 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 339.119 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 355.646 null ] >>
endobj
10651 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 328.16 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 340.021 null ] >>
endobj
10652 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 317.201 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 329.062 null ] >>
endobj
10653 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 301.396 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 318.103 null ] >>
endobj
10654 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 290.437 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 307.144 null ] >>
endobj
10655 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 279.478 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 296.185 null ] >>
endobj
10656 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 268.519 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 285.226 null ] >>
endobj
10657 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 257.56 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 274.268 null ] >>
endobj
10658 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 246.601 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 258.643 null ] >>
endobj
10659 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 230.796 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 247.684 null ] >>
endobj
10660 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 219.837 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 236.725 null ] >>
endobj
10661 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 208.878 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 225.766 null ] >>
endobj
10662 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 197.919 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 214.807 null ] >>
endobj
10663 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 186.96 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 203.848 null ] >>
endobj
10664 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 176.001 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 192.889 null ] >>
endobj
10665 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 165.042 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 181.931 null ] >>
endobj
10666 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 149.237 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 170.972 null ] >>
endobj
10667 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 138.278 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 160.013 null ] >>
endobj
10668 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 127.319 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 144.388 null ] >>
endobj
10669 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 116.36 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 133.429 null ] >>
endobj
10670 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 105.401 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 122.47 null ] >>
endobj
10671 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 94.442 null ] >>
+<< /D [ 10611 0 R /XYZ 81.145 111.511 null ] >>
endobj
10672 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-10609 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10611 0 R /XYZ 81.145 100.552 null ] >>
endobj
-10675 0 obj
-<< /Filter /FlateDecode /Length 2196 >>
-stream
-xڽ[]o6}ϯ0m +~yv-Z,"hbkb!HrtP-tfgq.)'M&^too7XC9ܿGɆn"V$n?R/{/QvcUL)% eBh<7[)Tv+rP9gNgΔDJC51 /5Z<
-o!P +=6mu-2ӰJ-QjC3H(Dvձ{|{ʋ{xYW|q+|uPM`ęۇ4/CtbJaJyD?J5;Bˣ2pa=AFvoLMYK">}|U.Js(gZ6
-Ma!StWc#4JGe:=AGPLKgS^>uJ"k Ďu wiKODdTZC4:i0Yk<a3C9gL+¾N?4$9Q2"w Ma JkgBBτ}UWYLWDhB2tQBB/,~LC*[cBwNs۴i ՌH!ZL{%agBBׄ:fFz\
-PE8M^rmVfr">1LheM4#
-0jEse$zjT>*h-ɍ%";Z#ɡN:Z;r S:H"4Zs^TܱG+h9!0Mn
-)[ɜfF4U0K=5NnFcpμY8a:09D(BMso!.5Bjt 1hFsO뚳/k!m6(oD1qkXmA
-]ٝ(".Xق]] ysW% 2Ojo8KF@?zBS==w;
-!MX,rQl ?(E~a;nӧ)/{
-K{9/XN6~bDt;:;Wv*ew.)PKZ;4ANK]1q>ෟڍ(Sl>ñ4qg
-endstream
+10673 0 obj
+<< /D [ 10611 0 R /XYZ 81.145 89.593 null ] >>
endobj
10674 0 obj
-<< /Type /Page /Contents 10675 0 R /Resources 10673 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10611 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10676 0 obj
-<< /D [ 10674 0 R /XYZ 78.37 808.885 null ] >>
+10610 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10677 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2062 >>
+stream
+x[M&ϯ wUjF3V<T)@ ݚQ$][  #/]Njlw/˷W#bP.tKppN JiRs?>~pݜaR J(^JuKH1OkC=]M#0t y_8NykC~n0mPi=#0OU}iS{J8LX9F{Q39g<T,Z2VG3uXs{X!P]ݲo`^*JB|%
+ڿ ,BC
+gDyt*"4H% tB#vXY1[dk~]P-ph܇=ﳭ0GJLpG'++1Z`z*6/߆1\&9~R
+?TҰCzqDj|ߣ})^)-(GH+czҩGHvZb䍎⛃ ۳G}a5N(j !a3WͤeL8v_ lVI++@'rF;*jQDH*Mb[3&֬=
+ f /t6z!Ʋb !i((L^ oZ3XK(# 2J to"{jfl?l/JltGo(z+uǓQE\!=M(eqTHm۔QYg2{>YDw:יRp:OH
+ !i5æzTWHX>x#5 VAHTnsiyw[EFqo\{;ܺm
+ePfDNH7R] 3?KFXh49ˊ蓅ّ3qeJZ2,e)f !?4oۚﶩl>>Lq>hD!
+,5GOFYt궰g
+PRqk9% q^(GCHO[¸e]s' :{?ŜW :Ґ^~F!Ǩ}(ĵݝCH;7X+R (
+߮:YuTwj<OԙIu
+jc=>1
+vQYq'0@䕕1ҳ2Sm{|
+"Ef?[joU@xa
+6ǞN k+^
+!hPN[eE<oq<Cr` cłQfubw٦h~<$ʵQiCƕр.ԔꪚfSH# ghϸlCؓ1հ"ꨰ&e"<5f !z̞{|CHd9=^c !e'_ovqݲn<f O2 ZvjZ#>wy&O~XF"](0!G#_f#V?:޶<4Vx%=^)RN
+jO|=%}gkE@Da OR/Xa3U
+endstream
+endobj
+10676 0 obj
+<< /Type /Page /Contents 10677 0 R /Resources 10675 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10678 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10676 0 R /XYZ 78.37 808.885 null ] >>
endobj
10679 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 768.829 null ] >>
endobj
10680 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 757.87 null ] >>
endobj
10681 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 746.912 null ] >>
endobj
10682 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 735.953 null ] >>
endobj
10683 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 724.994 null ] >>
endobj
10684 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 709.053 null ] >>
endobj
10685 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 698.095 null ] >>
endobj
10686 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 687.136 null ] >>
endobj
10687 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 676.177 null ] >>
endobj
10688 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 665.218 null ] >>
endobj
10689 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 654.259 null ] >>
endobj
10690 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 643.3 null ] >>
endobj
10691 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 627.36 null ] >>
endobj
10692 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 616.401 null ] >>
endobj
10693 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 605.442 null ] >>
endobj
10694 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 594.483 null ] >>
endobj
10695 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 583.524 null ] >>
endobj
10696 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 567.584 null ] >>
endobj
10697 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 556.625 null ] >>
endobj
10698 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 545.666 null ] >>
endobj
10699 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 534.707 null ] >>
endobj
10700 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 523.748 null ] >>
endobj
10701 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 512.789 null ] >>
endobj
10702 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 501.831 null ] >>
endobj
10703 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 490.872 null ] >>
endobj
10704 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 474.931 null ] >>
endobj
10705 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 463.973 null ] >>
endobj
10706 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 453.014 null ] >>
endobj
10707 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 442.055 null ] >>
endobj
10708 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 431.096 null ] >>
endobj
10709 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 420.137 null ] >>
endobj
10710 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 404.197 null ] >>
endobj
10711 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 393.238 null ] >>
endobj
10712 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 382.279 null ] >>
endobj
10713 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 371.32 null ] >>
endobj
10714 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 360.361 null ] >>
endobj
10715 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 349.402 null ] >>
endobj
10716 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 338.443 null ] >>
endobj
10717 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 322.503 null ] >>
endobj
10718 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 311.544 null ] >>
endobj
10719 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 300.585 null ] >>
endobj
10720 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 289.626 null ] >>
endobj
10721 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 278.667 null ] >>
endobj
10722 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 267.709 null ] >>
endobj
10723 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 256.75 null ] >>
endobj
10724 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 240.809 null ] >>
endobj
10725 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 229.851 null ] >>
endobj
10726 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 218.892 null ] >>
endobj
10727 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 207.933 null ] >>
endobj
10728 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 196.974 null ] >>
endobj
10729 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 186.015 null ] >>
endobj
10730 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 175.056 null ] >>
endobj
10731 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 164.097 null ] >>
endobj
10732 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 148.157 null ] >>
endobj
10733 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 137.198 null ] >>
endobj
10734 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 126.239 null ] >>
endobj
10735 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 115.28 null ] >>
endobj
10736 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 104.321 null ] >>
endobj
10737 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 10676 0 R /XYZ 81.145 93.362 null ] >>
endobj
-10673 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+10738 0 obj
+<< /D [ 10676 0 R /XYZ 81.145 82.403 null ] >>
endobj
-10740 0 obj
-<< /Filter /FlateDecode /Length 2633 >>
+10675 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+10741 0 obj
+<< /Filter /FlateDecode /Length 2042 >>
stream
-xڭ[MW)q$r쪤R=$U,%Q
-ߢbrjj?ED*HM.ZǠ.cJ-GZV)NwVל{\ȉ#C8<$u8dHus°Xz5#i#TmWBnuBCd"H !Y2p^Ol(4b&qzC7udCDSLUL @>
-d !չ:$J5
-C^S3@͸@HVfJ;L&ى@CFbf%
-ŗ)YQyŤh!؉k(yaC伻!25o<"np2Ҕ(Bi{ d@skJIbBHk}m( 'lm7uZ_P?7eՍM
-{ѩBˆh~s =MG:n97xH'2ԭW l?'X;rsʀKdEBoM"@ D壻R#54AyNjt9̋$ZhWVςAm;bwʍԃq]uINͿ"=ISQ߽R jvhѬ*l?UEkC^&nhrzIE-I"BбŶD/Uz "Pži|ɥP̛]#޸9!'%>#4 ]b!གUd]5<kPBJ85'X;Y7Vy.do`2D4M-ΗwRb t6~o$Lv;/b
-˯daĄ*Њ7B;'?&o#:N"VOv$ C*2eR;x{KJW49 c%rum %lOu]S ~fPT+<["䅧!H{05<TI1EDOEsٿ6+M/9Nl'[nʾ) +xC!41iy q1DA@2mB85C0$]>KeHS!vZMn}chD dFDB=q@rhLiy]Qmw[7ߙo<"^
+x[r6 )
+(ӟkm/Z{|=ˋG ZḰg8%/W|My^ay_a"gya+XC|y^Ɩg><oew}Wʸ0\쳃(iP{wY_XM(4$吓H(^* Dee%IZp84i#4vd`,8ũjNr-p E&B )MPU9)}F*D(,LlyTb}bTW<pQO|Ѣ`/Ҭߴjn!wxk[x9f^(Jg 9_d+V$F)bjfbНgvU=ŌDWZآsė.VXSIa
+γ H*MւOcF:'!\4/˞inS|%dD_KX%PEWĕ%Av&Cw5t}5d l,[3Zu6%%kS5.?c/8V; "E-
+cm*ۖ]փH/җciel'߄ʍk>#*uYY եiUБoC^V#uLK+:7'_0C祪ϖ@kYu[g$.qg~zLt,1\ u
+,+ɭe`Ksi΢Uw<ۋfH,B$ŽA%:VwQ>r V鞆_3)QJWLr pQ52wKW&S{*mQ)1+Fh_FWS1K՟c/V ҧqۖ-J[k %A|!Ϛk1i0y+ )J[L XȪp]NY(xOG٨Uo QQ{k==8MxFK뤭 ?|NcZݙwDZDv*KnOF&jY }X~5-~vŎwl(&@$^x{*v#qݲ z3^%x#^?N_ UpSH?¾V$i2Ai$QG%~TܷLtd'A[
+GSua8uF\&6J-ңU4lڐlKT-3>7р<dI؉
+@P7G$іDK~RR.v'%HyN+߹LjB՛dS!I].3
+e!$r=FsvM G>sN!cq3<úE>T; f)E2כ.wX.j4lB-e,TR{{5%rs2?9ܔA*GYk\^܉_ذ~fݵ)UMʣ~ڊKlIPlz-^%2~u(C?J[EN،ӓY5?g!kxZ;gXק
endstream
endobj
-10739 0 obj
-<< /Type /Page /Contents 10740 0 R /Resources 10738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
-endobj
-10741 0 obj
-<< /D [ 10739 0 R /XYZ 78.37 808.885 null ] >>
+10740 0 obj
+<< /Type /Page /Contents 10741 0 R /Resources 10739 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10742 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10740 0 R /XYZ 78.37 808.885 null ] >>
endobj
10743 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 768.829 null ] >>
endobj
10744 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 757.87 null ] >>
endobj
10745 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 746.912 null ] >>
endobj
10746 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 735.953 null ] >>
endobj
10747 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 724.994 null ] >>
endobj
10748 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 714.035 null ] >>
endobj
10749 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 698.095 null ] >>
endobj
10750 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 687.136 null ] >>
endobj
10751 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 676.177 null ] >>
endobj
10752 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 665.218 null ] >>
endobj
10753 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 654.259 null ] >>
endobj
10754 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 643.3 null ] >>
endobj
10755 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 632.341 null ] >>
endobj
10756 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 621.382 null ] >>
endobj
10757 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 605.442 null ] >>
endobj
10758 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 594.483 null ] >>
endobj
10759 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 583.524 null ] >>
endobj
10760 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 572.565 null ] >>
endobj
10761 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 561.606 null ] >>
endobj
10762 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 550.648 null ] >>
endobj
10763 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 534.707 null ] >>
endobj
10764 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 523.748 null ] >>
endobj
10765 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 512.789 null ] >>
endobj
10766 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 501.831 null ] >>
endobj
10767 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 490.872 null ] >>
endobj
10768 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 479.913 null ] >>
endobj
10769 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 468.954 null ] >>
endobj
10770 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 453.014 null ] >>
endobj
10771 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 442.055 null ] >>
endobj
10772 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 431.096 null ] >>
endobj
10773 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 420.137 null ] >>
endobj
10774 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 409.178 null ] >>
endobj
10775 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 398.219 null ] >>
endobj
10776 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 387.26 null ] >>
endobj
10777 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 376.301 null ] >>
endobj
10778 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 365.342 null ] >>
endobj
10779 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 354.384 null ] >>
endobj
10780 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 343.425 null ] >>
endobj
10781 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 327.484 null ] >>
endobj
10782 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 316.525 null ] >>
endobj
10783 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 305.567 null ] >>
endobj
10784 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 294.608 null ] >>
endobj
10785 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 283.649 null ] >>
endobj
10786 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 272.69 null ] >>
endobj
10787 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 261.731 null ] >>
endobj
10788 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 245.791 null ] >>
endobj
10789 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 234.832 null ] >>
endobj
10790 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 223.873 null ] >>
endobj
10791 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 212.914 null ] >>
endobj
10792 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 201.955 null ] >>
endobj
10793 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 190.996 null ] >>
endobj
10794 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 180.037 null ] >>
endobj
10795 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 164.097 null ] >>
endobj
10796 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 153.138 null ] >>
endobj
10797 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 142.179 null ] >>
endobj
10798 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 131.22 null ] >>
endobj
10799 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 120.261 null ] >>
endobj
10800 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10740 0 R /XYZ 81.145 109.303 null ] >>
endobj
10801 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-10738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10740 0 R /XYZ 81.145 98.344 null ] >>
endobj
-10804 0 obj
-<< /Filter /FlateDecode /Length 2167 >>
-stream
-xڭZMoFWC`d)X`&; d.l-64HʎVbL(CƖǪ|uo?7~HJ3
-%W_+J-"Y%V0nj_kgu9kU: YF,mn9sO3eI]LIm+̈́lls}ٷ*~WU߼5|?M] LpC5ů{-\E -bsdB2umi4GOAa!z?725ћ>y]wM3F ;V갿?\_ztS:Bt4!0\4m3;ƕ"1))ɫMWoڮyi8Iv>4xe}ɫwn1e2G[}U,v^])MbI5ɴl JDJqXmq[~ž2i`貤k&Ik.L3qu1"[R Ƙ*a) i}1`,Csk9<eVEO -s4>˲Y|ؽWb\@ĕhþ")?1>:붮Mqzgn}P7-&|jbXb"1X xHF>ԇrK碃]A1/2S3N@@eCP\I4I acysMi2VEMi}gB<fcKUGGf&Q KdD'j\캇?+D{%=iSLF65<dObK  3mmb. ŎIA2>Tf,t`WYRe0#)1T tgp8:rø:tBc $F6@hQ)4pf{&eH& cmv-EG = U`/9
-Y@!V01^mРX׻Cy&"X4Lm>UƤA/1ڄ=zB!ySjZ*+ڬBS=_嘌sst cۮru?e
-TӂVhz S&gS6-"NQ< ?]Xۢz;ȟ M_ri3yIFh2I1dMkcYO$ L-{]lʌR5ZЯ9Qʲ@,-q CB^Q)HRIIb5'#g ? f2v51U=].YsVSI o0y—~VN1
-8 ETi:ח0@; ۠ \~dee-mhr2Ɖ]Ch:Am Na^^a
-D=#Ql
-#{H*mt'LQb
-C!t
-ZeJE3,B@K kK72ڿ} aՙZ`[4wDY;U
-HƎVj|3nꪛe[8 #2}9 }~p<zDCh2풓/ us[vyuW
-a,,:MIlM 6욃Ocq}*+ʹrL҆\y3-Bxhjz
-⍸讉bxׄ ~A_x՛B*M&zoxSRɴW7GO̘ɴԩ9vL9̐׾~sUZkfE9xx<'%
-P+>* kA1A72KS
-endstream
+10802 0 obj
+<< /D [ 10740 0 R /XYZ 81.145 87.385 null ] >>
endobj
-10803 0 obj
-<< /Type /Page /Contents 10804 0 R /Resources 10802 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+10739 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10805 0 obj
-<< /D [ 10803 0 R /XYZ 78.37 808.885 null ] >>
+<< /Filter /FlateDecode /Length 2114 >>
+stream
+x[n6+e(
+ı}+mWmI#q}s/pb1yfx搔ៃ>|{_r|/搂
+:b0JsxoZ+z ThR
+
+;=Sy_cyrN׫sIk\r9ۂM\ێOqŭrM W‚׮ysw`BVVqj3VFK}@9iKlVY%6*HS]_H|߾K=uIFu = ZwBϚӒy{[~[3=#ʵE5ЖǍz%e;ƞ,DL
+
+m\&{3?>9X(®9)zׄù.;Yg${^{jG7"^0ouz̅"Q?6dd:Њ!H_'.sh![&kqsU?Âv<a
+=dPQC&,) H^BH%WjKc,w
+[QUcUv\: RHVa9;ƸXAC>4sO(sAe~{tN8r )
++8 AF^+D
+fGSاfך|հ2VTO;ḿ׵!Pm,uͮ`~h$;#,(Z wK4'W4֊<q _^ Ly.c( 3]T_k<0'qŸg۵WW楜 ձ !B_RZ.dBK9-WW`s{ؑSoM_Y N
+ѳ6Am&"#2Hn*]Jg7AzF7RA"oU<wm4]
+BI1:[pbLHj*"PQ :G}e궗e=*B].sHnLʀZ"ti7"1=Ӂ #rH@M
+Z"t^:qh2I8'6 d 0e.v_掫rFAb5YhZ j)@Ęj
+irPgY_MLBJ25Iن/#9]ث4ĴuȎ1Yِ!-stx~m6:)3U#H^2eU e;x=`XӜ[R!
+endstream
+endobj
+10804 0 obj
+<< /Type /Page /Contents 10805 0 R /Resources 10803 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10806 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10804 0 R /XYZ 78.37 808.885 null ] >>
endobj
10807 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 768.829 null ] >>
endobj
10808 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 741.933 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 757.87 null ] >>
endobj
10809 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 746.912 null ] >>
endobj
10810 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 735.953 null ] >>
endobj
10811 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 724.994 null ] >>
endobj
10812 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 714.035 null ] >>
endobj
10813 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 703.076 null ] >>
endobj
10814 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 692.117 null ] >>
endobj
10815 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 676.492 null ] >>
endobj
10816 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 665.533 null ] >>
endobj
10817 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 654.575 null ] >>
endobj
10818 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 643.616 null ] >>
endobj
10819 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 632.657 null ] >>
endobj
10820 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 621.698 null ] >>
endobj
10821 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 610.739 null ] >>
endobj
10822 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 595.114 null ] >>
endobj
10823 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 584.155 null ] >>
endobj
10824 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 573.196 null ] >>
endobj
10825 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 562.237 null ] >>
endobj
10826 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 551.279 null ] >>
endobj
10827 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 540.32 null ] >>
endobj
10828 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 529.361 null ] >>
endobj
10829 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 518.402 null ] >>
endobj
10830 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 507.443 null ] >>
endobj
10831 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 496.484 null ] >>
endobj
10832 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 480.859 null ] >>
endobj
10833 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 469.9 null ] >>
endobj
10834 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 458.942 null ] >>
endobj
10835 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 447.983 null ] >>
endobj
10836 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 437.024 null ] >>
endobj
10837 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 426.065 null ] >>
endobj
10838 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 415.106 null ] >>
endobj
10839 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 399.481 null ] >>
endobj
10840 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 388.522 null ] >>
endobj
10841 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 377.563 null ] >>
endobj
10842 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 366.605 null ] >>
endobj
10843 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 355.646 null ] >>
endobj
10844 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 344.687 null ] >>
endobj
10845 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 333.728 null ] >>
endobj
10846 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 322.769 null ] >>
endobj
10847 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 307.144 null ] >>
endobj
10848 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 296.185 null ] >>
endobj
10849 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 285.226 null ] >>
endobj
10850 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 274.268 null ] >>
endobj
10851 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 263.309 null ] >>
endobj
10852 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 252.35 null ] >>
endobj
10853 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 241.391 null ] >>
endobj
10854 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 230.432 null ] >>
endobj
10855 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 219.473 null ] >>
endobj
10856 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 208.514 null ] >>
endobj
10857 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 192.889 null ] >>
endobj
10858 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 181.931 null ] >>
endobj
10859 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 170.972 null ] >>
endobj
10860 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 160.013 null ] >>
endobj
10861 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 149.054 null ] >>
endobj
10862 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 138.095 null ] >>
endobj
10863 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 127.136 null ] >>
endobj
10864 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 116.177 null ] >>
endobj
10865 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 10804 0 R /XYZ 81.145 100.552 null ] >>
endobj
-10802 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10868 0 obj
-<< /Filter /FlateDecode /Length 2121 >>
-stream
-xڭZ[o~M̈́s1"vhBM"{ϐҐ#ے Y|2ngdJ ~+gXC9ݬ/(|(љQDQ=ӊDf߯-|׷W Jq3Smܶmݴڵe?/i\զu[׮˪m\{N((^"4Q? /UB 1W(cI" JD+CڟŪ}S9'd˂'8c]V-Ls{fD3"ݼn[  o!2 b<HJp6
--plڏY fEYAk FmyPJ817l
-6VN(4{?@ly>^H&ܿ&\1kzy \%iiX&D!M *p"` EZbr<+m2C<[ZceZɉG! Đ}6mڮ)+K7
-ڳikyn, ,HpnbwV=VA9D (2A88F
-fwMLB77ř{\UA&L": EM[S@[c6gmq_v*~+ϠO\?}7
-Ӈ*y!v?FϗMЩ+dbGCqE2nU2Z}7F#VM :FV. t)H4:fWVeS¬M&f 4$U. :!CDkܠLI`Ja MjS"y%!%ؚj-C aԸ*+L5%CKqe} ('~& Fh|R1j9$A|
-<W)ʔ짚X;d n܋;! bDwS; 0o ~CR *Unof/+ݶW;fFk# e!aywj'x
-gOp\OXYubnش~N,O}[y?os(? Z;ƛ%a4
-ͰCH E(d|p63F  n5D7 nϧna.Y? NpKƟ:tC?qd`fcFH+b~O|
-endstream
+10866 0 obj
+<< /D [ 10804 0 R /XYZ 81.145 89.593 null ] >>
endobj
10867 0 obj
-<< /Type /Page /Contents 10868 0 R /Resources 10866 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10804 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10869 0 obj
-<< /D [ 10867 0 R /XYZ 78.37 808.885 null ] >>
+10803 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10870 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2031 >>
+stream
+x[ɒ6 W&**{U9-kr_-RDBMo@
+^?Jy;/WN&@t)8P.JRx^Ow>|4y\?/NXhm?O(˽|\ǧUl3f#)߻K/|8 \h L BU46MOh m>2 5찢lX#,fr${̎˺^kszC:Z6sC@Ėh%9K<E*s@χTI,/._ۻ.% Չ~ι[>x4 cgkF)d!%U#8ߓ|H`&t l⒯kv-Ka/wߗޜF^{Pvzeu(wD:&>.FfwMU,jDHfX+^<j޼_"[6i`Hw*ur|MvBW iOƁ3 Y6$/b^'p<ʫZ Q>\3y,Q5G~:n 2$.XQ\)_cg gDbOU[ZJy챴 bz<GPR;3=f^K[ɸ;ŜVs5Hkɳfh/l6ݱU>3;&Z"GbxڑC2Dz/ϫ5N
+47iH9ڼͯ-ɵcyGNWPeYęA%36d֠ ̯yv?*ꔔz,LbӉ'HʭCK-W*hYgw.{VRR{uyv'?ʰ˴/A%{rks W6 mH:XKUeOSfOV:@
+;p$@rUaD#HFUX4`0pү௿7sG ,2 J50ٺD\g\_Ĕ)mh>hXǏ4Jr!ge,<ju*nCquK-N_7<YF y2%NY"uˬ-=4MET5]rnͱc4|{wjrnv [YB=R'>l%> )XV w+UtVbt=GP$]z^r3e6|zV[M_qչQ¶]'Hgirevg1wvUdMC)@`秂$
+
+endstream
+endobj
+10869 0 obj
+<< /Type /Page /Contents 10870 0 R /Resources 10868 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10871 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10869 0 R /XYZ 78.37 808.885 null ] >>
endobj
10872 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 768.829 null ] >>
endobj
10873 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 757.87 null ] >>
endobj
10874 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 720.33 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 746.912 null ] >>
endobj
10875 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 709.371 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 735.953 null ] >>
endobj
10876 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 698.412 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 720.012 null ] >>
endobj
10877 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 687.454 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 709.053 null ] >>
endobj
10878 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 676.495 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 698.095 null ] >>
endobj
10879 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 665.536 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 687.136 null ] >>
endobj
10880 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 654.577 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 676.177 null ] >>
endobj
10881 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 638.952 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 665.218 null ] >>
endobj
10882 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 627.993 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 654.259 null ] >>
endobj
10883 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 617.034 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 643.3 null ] >>
endobj
10884 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 606.075 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 627.36 null ] >>
endobj
10885 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 595.117 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 616.401 null ] >>
endobj
10886 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 584.158 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 605.442 null ] >>
endobj
10887 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 573.199 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 594.483 null ] >>
endobj
10888 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 562.24 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 583.524 null ] >>
endobj
10889 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 546.615 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 572.565 null ] >>
endobj
10890 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 535.656 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 556.625 null ] >>
endobj
10891 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 524.697 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 545.666 null ] >>
endobj
10892 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 513.738 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 534.707 null ] >>
endobj
10893 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 502.78 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 523.748 null ] >>
endobj
10894 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 491.821 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 512.789 null ] >>
endobj
10895 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 480.862 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 501.831 null ] >>
endobj
10896 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 469.903 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 490.872 null ] >>
endobj
10897 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 458.944 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 479.913 null ] >>
endobj
10898 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 447.985 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 463.973 null ] >>
endobj
10899 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 437.026 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 453.014 null ] >>
endobj
10900 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 426.067 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 442.055 null ] >>
endobj
10901 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 415.108 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 431.096 null ] >>
endobj
10902 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 399.484 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 420.137 null ] >>
endobj
10903 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 388.525 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 409.178 null ] >>
endobj
10904 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 377.566 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 398.219 null ] >>
endobj
10905 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 366.607 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 382.279 null ] >>
endobj
10906 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 355.648 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 371.32 null ] >>
endobj
10907 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 344.689 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 360.361 null ] >>
endobj
10908 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 333.73 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 349.402 null ] >>
endobj
10909 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 322.771 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 338.443 null ] >>
endobj
10910 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 307.147 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 327.484 null ] >>
endobj
10911 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 296.188 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 316.525 null ] >>
endobj
10912 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 285.229 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 305.567 null ] >>
endobj
10913 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 274.27 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 289.626 null ] >>
endobj
10914 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 263.311 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 278.667 null ] >>
endobj
10915 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 252.352 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 267.709 null ] >>
endobj
10916 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 236.727 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 256.75 null ] >>
endobj
10917 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 225.768 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 245.791 null ] >>
endobj
10918 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 214.81 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 234.832 null ] >>
endobj
10919 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 203.851 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 223.873 null ] >>
endobj
10920 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 192.892 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 207.933 null ] >>
endobj
10921 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 181.933 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 196.974 null ] >>
endobj
10922 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 170.974 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 186.015 null ] >>
endobj
10923 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 175.056 null ] >>
endobj
10924 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 164.097 null ] >>
endobj
10925 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 153.138 null ] >>
endobj
10926 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 142.179 null ] >>
endobj
10927 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 131.22 null ] >>
endobj
10928 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 120.261 null ] >>
endobj
10929 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 104.321 null ] >>
endobj
10930 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 10869 0 R /XYZ 81.145 93.362 null ] >>
endobj
-10866 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+10931 0 obj
+<< /D [ 10869 0 R /XYZ 81.145 82.403 null ] >>
endobj
-10933 0 obj
-<< /Filter /FlateDecode /Length 1916 >>
+10868 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+10934 0 obj
+<< /Filter /FlateDecode /Length 1965 >>
stream
-xڵZnF}W&@%Oi$mѦC/)Zli]~{g)iU]8eA39gf(:3KTxߟxgHg舍&ьPF菧8Z/i7i-l%L}:^rA(.H ]_\e|sqΦWE+;+rK.;Npt:4z *cHPG)GȄ ? G1aa$RrQ:.i,—s^Vҟ~qQU>#h?%~AUƧ&˃m0۔Rp8W&bR/b[,Cʼɫ͛uh.uDXS$gtEamkGvJ}Q6m=C um\\vfEo3% HΔ%upMyM6)I DR#pi {䝃kSxs)]t[UV>@,%PՕѕA%~B
-cpfN.Z]4%Zh[2~,.Rmdtɠ\J.JRo87esoSXaQ'Jeڞ 70BZf5I]tp^璄7Hri~]|PFtHЭTldBiIg(4tU  _(Y<K8fӇ4M>Tu-a.kD:R"/u B逿/Z۝|\NlO7m1=D*By{v,C,{gaGbZ P4$)$F7r=tآ0\+osG (=V݀Ԛ*G!\"WGhH6`" ,O'Ȁ#Á,'5:isc r3njБ} 7'h4K  x~5>#R*el8N4ZGؒphGG$p['q:A%s|.q"tB.P꒠. .c;uI .P21](nڒ-Łڂז("#Ů MJDmV=kK;,2.r.D88; !"0͵ ()EJ*pXMn}['Ae<aϟ< VUyXI'v9bXTgSBZ2uˆY rAq/prە6a6@%?{!0
-2<A+[F:Fm0I@&jAV $\9"ܘ?v_=*lu#Uܻhm/+r]Lh&Й◰\XBy3[&\YL'z5)8'ޠsC%pꑠ[ -`hb9^d髿ޔng-5!9u/t
-VD5AGihcH%ݗ"=v >rDh)j  >n cr%4t
-3*(MJ.[:Li卑 L*h]l & z>'.&T?ajB~d0Pf$XD <0@ڃ IJ,0Ǯ@⺂]^U0ydK<IÈp;& `6?F=%bѤ> }h|wdn=Pz2qPYZ$%=x;>4KZf
+x[͒6 Sʐf:Yיyo^SZ"E7"Q@C>uҧo/dz﷗˗k4'd,>|1y>S
+*t(j޵_ۆ)%F ZEɚr:|^s|_>7yC歎ѭcg:\ ]xߙoke4pLu3R"kU[V651#Ӳ2βJMe (&D@zWB%s6R]ӡy\]mpq\9 'Z(N*IVr,X+q>UǺ{M 5nӠֈnF_ҕ 8 VجiCʃEoK{EXqQ!MDcqL3}m%40~C?6 $5!K )Oq SԌ࣊s
+g  9f̑Ugfg6,E˴Vr%1+CMFd8ܛԅ&kO
+kA[s&so>3#~r-Ǵmiٵ3R1'Yٽr 3a>iAv*%Ϫ]ց"HMtgђ4ߧ@(C[pfZI
+E=/$n9N-ygٖfДzخH˰-H\mZ"@rA%/a =O͏P˕ FhHaqϵ ՊwI-a b_{(}o)"hyijwAycpw(-z]Di-!d? &FQM2>̫R !4!kg8Q#gұrZkCw|bL2]{Ѷ
+7驂@hkWq@hgXqmmDPZwu$J }He(X>anB<drHD49='מ\')Ps'f 5ObU!!HT("g\/Ċ,
+H+C- kP^±H`cI1z񽡫fGd\5
+k
+f}6 'ߖFuf#~! j{a.s'蜁ޗZb?OB#
endstream
endobj
-10932 0 obj
-<< /Type /Page /Contents 10933 0 R /Resources 10931 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
-endobj
-10934 0 obj
-<< /D [ 10932 0 R /XYZ 78.37 808.885 null ] >>
+10933 0 obj
+<< /Type /Page /Contents 10934 0 R /Resources 10932 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10417 0 R >>
endobj
10935 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10933 0 R /XYZ 78.37 808.885 null ] >>
endobj
10936 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 768.829 null ] >>
endobj
10937 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 757.87 null ] >>
endobj
10938 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 746.912 null ] >>
endobj
10939 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 731.287 null ] >>
endobj
10940 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 720.328 null ] >>
endobj
10941 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 709.369 null ] >>
endobj
10942 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 698.41 null ] >>
endobj
10943 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 687.451 null ] >>
endobj
10944 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 676.492 null ] >>
endobj
10945 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 665.533 null ] >>
endobj
10946 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 649.909 null ] >>
endobj
10947 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 638.95 null ] >>
endobj
10948 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 627.991 null ] >>
endobj
10949 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 617.032 null ] >>
endobj
10950 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 606.073 null ] >>
endobj
10951 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 595.114 null ] >>
endobj
10952 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 579.49 null ] >>
endobj
10953 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 568.531 null ] >>
endobj
10954 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 557.572 null ] >>
endobj
10955 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 546.613 null ] >>
endobj
10956 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 535.654 null ] >>
endobj
10957 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 524.695 null ] >>
endobj
10958 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 513.736 null ] >>
endobj
10959 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 498.111 null ] >>
endobj
10960 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 487.152 null ] >>
endobj
10961 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 476.194 null ] >>
endobj
10962 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 465.235 null ] >>
endobj
10963 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 454.276 null ] >>
endobj
10964 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 443.317 null ] >>
endobj
10965 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 432.358 null ] >>
endobj
10966 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 416.733 null ] >>
endobj
10967 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 405.774 null ] >>
endobj
10968 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 394.815 null ] >>
endobj
10969 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 383.857 null ] >>
endobj
10970 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 372.898 null ] >>
endobj
10971 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 361.939 null ] >>
endobj
10972 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 350.98 null ] >>
endobj
10973 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 340.021 null ] >>
endobj
10974 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 329.062 null ] >>
endobj
10975 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 318.103 null ] >>
endobj
10976 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 307.144 null ] >>
endobj
10977 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 296.185 null ] >>
endobj
10978 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 285.226 null ] >>
endobj
10979 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 274.268 null ] >>
endobj
10980 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 263.309 null ] >>
endobj
10981 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 247.684 null ] >>
endobj
10982 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 236.725 null ] >>
endobj
10983 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 225.766 null ] >>
endobj
10984 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 214.807 null ] >>
endobj
10985 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 203.848 null ] >>
endobj
10986 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 192.889 null ] >>
endobj
10987 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 181.931 null ] >>
endobj
10988 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 170.972 null ] >>
endobj
10989 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 160.013 null ] >>
endobj
10990 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 149.054 null ] >>
endobj
10991 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 138.095 null ] >>
endobj
10992 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 127.136 null ] >>
endobj
10993 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 116.177 null ] >>
endobj
10994 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 10933 0 R /XYZ 81.145 100.552 null ] >>
endobj
-10931 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10997 0 obj
-<< /Filter /FlateDecode /Length 2019 >>
-stream
-xڽZMoHW6A26a.v-6a $*Y')٥5$l!,鱊UUu/|銏tOWWo?:,xby{%G|!2+YfW. ςʧ`!9s*`lݮrsJwWL:Lp]4R>O]j+yei<mTr0j5~Ҋi'IVZ[Tc߶]߿ݗum#bZ⴨V1-mz5.oJ/z&35T`A VCh}/-93uL% E5>k!˟[1)Mt\K{|-͚ddwe莟LjB)9ls뻪:ne&ooM^/>uϖɶgh[J?a
-Wׂ٘3 &\ͼ̛UΦe y0E@´yhMBTrЊ7m~)GWn=>W4|KpMV|(jԬiv_ZK]kI&tl@hi >c_zxv;僚6ezinh!<uC ԍ`rT7l0Y6|Cj;jGu}OWsX^bUsK#m Ϋ8RH$9c6\H%c i-(B T3hT,Jc5I~iɫhMBNIaC
-BUG
-F)N3g&ےB|攪xǟ EH\Y5BEH«W} )]8^@3Fh#}
-O>)ₑgqAj;iF~`f`џ`E\F[rR-|'chBZm]>D,"Op՘L<2S g0PjyMYT}OBhKt" >6f4_ȠcFhs7B1ϬD^g&ӤTC04rM
-=G~[TER.Ű&r>ļ_#r YG'p pw(`$mYIch'4={:D~PVd![5,;ɤ qZGЇ
-endstream
+10995 0 obj
+<< /D [ 10933 0 R /XYZ 81.145 89.593 null ] >>
endobj
10996 0 obj
-<< /Type /Page /Contents 10997 0 R /Resources 10995 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10933 0 R /XYZ 81.145 78.635 null ] >>
endobj
-10998 0 obj
-<< /D [ 10996 0 R /XYZ 78.37 808.885 null ] >>
+10932 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10999 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 1668 >>
+stream
+x[M6 (B$Hd2יyo^S5-B܍!ie xGH1=|Aד].2{ l!ᏏƸc-.[gȢ^"qF8/cz'[/;K; .Oߧz_{܋8Nh#X7ދ3r]/_Sk祭q>W6WDЌHŅkمbfg3<OyG2$!f]F]|.h)ьB:
+Ne"Jarh˞׈n&5;6NT9D[|%NzLtFM
+x
+`Ÿe+edQӆ=3X_I`e ]C 7m͵)N7W/R77Ͼlr bNSl[8Opl\DWowx)fOF?H ǟMuE[ٳHuŹc MqN6{s$ o}{뷦OPԢӌZH3b|Ĺ[GU^'V<7#m.k.(x?i[z=94NP&@d~ &vY9ic=MLק+\=T
+endstream
+endobj
+10998 0 obj
+<< /Type /Page /Contents 10999 0 R /Resources 10997 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11000 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10998 0 R /XYZ 78.37 808.885 null ] >>
endobj
11001 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 768.829 null ] >>
endobj
11002 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 757.87 null ] >>
endobj
11003 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 746.912 null ] >>
endobj
11004 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 735.953 null ] >>
endobj
11005 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 724.994 null ] >>
endobj
11006 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 714.035 null ] >>
endobj
11007 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 703.076 null ] >>
endobj
11008 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 692.117 null ] >>
endobj
11009 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 681.158 null ] >>
endobj
11010 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 670.199 null ] >>
endobj
11011 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 654.259 null ] >>
endobj
11012 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 643.3 null ] >>
endobj
11013 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 632.341 null ] >>
endobj
11014 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 621.382 null ] >>
endobj
11015 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 610.423 null ] >>
endobj
11016 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 599.464 null ] >>
endobj
11017 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 588.506 null ] >>
endobj
11018 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 577.547 null ] >>
endobj
11019 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 566.588 null ] >>
endobj
11020 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 555.629 null ] >>
endobj
11021 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 544.67 null ] >>
endobj
11022 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 533.711 null ] >>
endobj
11023 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 522.752 null ] >>
endobj
11024 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 511.793 null ] >>
endobj
11025 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 500.834 null ] >>
endobj
11026 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 484.894 null ] >>
endobj
11027 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 473.935 null ] >>
endobj
11028 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 462.976 null ] >>
endobj
11029 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 452.017 null ] >>
endobj
11030 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 441.058 null ] >>
endobj
11031 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 430.1 null ] >>
endobj
11032 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 419.141 null ] >>
endobj
11033 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 408.182 null ] >>
endobj
11034 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 397.223 null ] >>
endobj
11035 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 386.264 null ] >>
endobj
11036 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 375.305 null ] >>
endobj
11037 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 364.346 null ] >>
endobj
11038 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 353.387 null ] >>
endobj
11039 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 337.447 null ] >>
endobj
11040 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 326.488 null ] >>
endobj
11041 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 315.529 null ] >>
endobj
11042 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 304.57 null ] >>
endobj
11043 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 293.611 null ] >>
endobj
11044 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 282.653 null ] >>
endobj
11045 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 271.694 null ] >>
endobj
11046 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 260.735 null ] >>
endobj
11047 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 249.776 null ] >>
endobj
11048 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 238.817 null ] >>
endobj
11049 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 227.858 null ] >>
endobj
11050 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 216.899 null ] >>
endobj
11051 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 205.94 null ] >>
endobj
11052 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 194.981 null ] >>
endobj
11053 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 184.022 null ] >>
endobj
11054 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 173.063 null ] >>
endobj
11055 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 162.105 null ] >>
endobj
11056 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 151.146 null ] >>
endobj
11057 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 98.346 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 140.187 null ] >>
endobj
11058 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 87.387 null ] >>
-endobj
-10995 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10998 0 R /XYZ 81.145 129.228 null ] >>
endobj
-11061 0 obj
-<< /Filter /FlateDecode /Length 2177 >>
-stream
-xڭZߏ6~߿o (\
-+K$v %&T}Y'473ߐ]tEDϟ\_}c&V b%b\ͲUw~c Y*'Fk`F1,ʄ|zֵ}zU߾T\}ix*f߻MS5˲ʭyy=粢Q\\Oh&E.)d~wvk[7nY7^ͺWolU {1y:| .˰.[Wgu-*>BaW2aߏ+p+_OIl{۴{np9AU[w_<ZO{ϣOڣȉ"}[RvH|Ҟ1cOP S+kMPnU]]Bm4 aP?
-cFe64$>2feUwyEKM b۶mj;/Q"W.qw+ Lg~aPpSK=NO!cq?֛8iX5443k2$8Qg;z;"AIV)YKB!t*?4t.p r^~/7hr*ith^N7&>wNe
- LLb %\)č2!
-ecjƐCsBَ1V9Ni'KTN N)rjsTy0BQ 4Gv^Uƺmm
-x%D9*~zF ;1J(O+@sUT7A*AҒd&HkAQXݍm EqpQ$˲&x""^Lǃi*/Kkt1Πo BӢ뤒Yv#Fu"<@t:
-3oe'(÷
-(6 3H[rp4)FԌ<;JmC]8Цw=Z*ߗf8͐FY+WA sX9LC,0 Z$N$k_am5SyaڠkKIZƧ DD@]e%p
- T :J #.MH |:çLs<vn wP_FG] #
-ӥr~PZ D l o|R?~8Ʊ
-3cdi+WP7Ot~W{Sv Yvnw%"Wd <C@,3óYd9̺g/1WZ2?{;{
-endstream
+11059 0 obj
+<< /D [ 10998 0 R /XYZ 81.145 118.269 null ] >>
endobj
11060 0 obj
-<< /Type /Page /Contents 11061 0 R /Resources 11059 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10998 0 R /XYZ 81.145 102.329 null ] >>
+endobj
+11061 0 obj
+<< /D [ 10998 0 R /XYZ 81.145 91.37 null ] >>
endobj
11062 0 obj
-<< /D [ 11060 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10998 0 R /XYZ 81.145 80.411 null ] >>
endobj
-11063 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 768.832 null ] >>
+10997 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11064 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 757.873 null ] >>
+11066 0 obj
+<< /Filter /FlateDecode /Length 1676 >>
+stream
+x[ˎG WBw +i@{ rMN{nđ,*E؜>'3Yk'9Y_O|ɜ)&b`=s1ezy4&o>~y @i d@DϑB2^˫ rta:az_AWk/z./3tky~Wޖb?OC7ZEB Xb.D["{dIajq
+S}kH#543!N~N#I8N9Ocvzh]ϫzN\YZ&&I2m2%\I(Yd A$&uCE-CEXvq]>-l:Uw4lk;ŔR?׆/ddpV!Uj^ܝ'm!!,~"(W#8IƈAڑD֔u7@1}*v{x@pdEI|4۶.'Jߓ
+.8.[p) n~ޛ&qP+_$J{tDBVGjum;& 3xɦ AlwkRmΛ%S:"%I=$0$4ٿ32<*#^寗s9(IS4"^H^>%&ޭv2N Ho|j,8R+ܲ~7o87j\q.IRv,.  RHz!+Y@/X=ƊsPg饹pq-Cޗ-:ojfCV^eՖe]0x[?sy[!80Bev' sB\&0%+[ Ggҧ-X$&Z!lbt=ԒMoTi8!\$j+ޝ{Q7͟eo0YwRgkV{m cP~:/Đ%Yǥ
+J?yЃ72MbHc<;xsh}SI3{ y clFىt!=QwP^ɩ0$yu0޻ն2?4jL `sB#0[dx<v\Y 騤Ep 9,1
+@
+[=F~EQ:[piBpAgfYlJ^ն9.z^U#tl=<f¶̑B$Y& <=۔_ޞ~
+endstream
endobj
11065 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-11066 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 735.955 null ] >>
+<< /Type /Page /Contents 11066 0 R /Resources 11064 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11067 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 11065 0 R /XYZ 78.37 808.885 null ] >>
endobj
11068 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 768.829 null ] >>
endobj
11069 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 757.87 null ] >>
endobj
11070 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 746.912 null ] >>
endobj
11071 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 735.953 null ] >>
endobj
11072 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 724.994 null ] >>
endobj
11073 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 714.035 null ] >>
endobj
11074 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 703.076 null ] >>
endobj
11075 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 692.117 null ] >>
endobj
11076 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 681.158 null ] >>
endobj
11077 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 670.199 null ] >>
endobj
11078 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 659.24 null ] >>
endobj
11079 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 648.281 null ] >>
endobj
11080 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 637.322 null ] >>
endobj
11081 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 626.364 null ] >>
endobj
11082 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 615.405 null ] >>
endobj
11083 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 604.446 null ] >>
endobj
11084 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 593.487 null ] >>
endobj
11085 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 577.547 null ] >>
endobj
11086 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 566.588 null ] >>
endobj
11087 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 555.629 null ] >>
endobj
11088 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 544.67 null ] >>
endobj
11089 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 533.711 null ] >>
endobj
11090 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 522.752 null ] >>
endobj
11091 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 511.793 null ] >>
endobj
11092 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 500.834 null ] >>
endobj
11093 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 489.875 null ] >>
endobj
11094 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 478.917 null ] >>
endobj
11095 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 467.958 null ] >>
endobj
11096 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 456.999 null ] >>
endobj
11097 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 446.04 null ] >>
endobj
11098 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 435.081 null ] >>
endobj
11099 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 424.122 null ] >>
endobj
11100 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 413.163 null ] >>
endobj
11101 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 402.204 null ] >>
endobj
11102 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 391.245 null ] >>
endobj
11103 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 375.305 null ] >>
endobj
11104 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 364.346 null ] >>
endobj
11105 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 353.387 null ] >>
endobj
11106 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 342.428 null ] >>
endobj
11107 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 331.469 null ] >>
endobj
11108 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 320.511 null ] >>
endobj
11109 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 309.552 null ] >>
endobj
11110 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 298.593 null ] >>
endobj
11111 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 287.634 null ] >>
endobj
11112 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 276.675 null ] >>
endobj
11113 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 265.716 null ] >>
endobj
11114 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 254.757 null ] >>
endobj
11115 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 243.798 null ] >>
endobj
11116 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 232.839 null ] >>
endobj
11117 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 221.88 null ] >>
endobj
11118 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 210.921 null ] >>
endobj
11119 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 199.963 null ] >>
endobj
11120 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 189.004 null ] >>
endobj
11121 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 178.045 null ] >>
endobj
11122 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-11059 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11065 0 R /XYZ 81.145 167.086 null ] >>
endobj
-11125 0 obj
-<< /Filter /FlateDecode /Length 1696 >>
-stream
-xڵMoF: M9.=P4AKE" oďv4j 5eY36<P,bqq}_X'p`/.v?p.uw-,8ca.$ann W'j$p1}<$c#pٴa+}BtyݗePvUݥ]}_dĄE Og_f?C۷4/ҫ";L01UWrTS9H1[XV -vLC*C섶1}ͺq!¡hκLn^emzm#e1\K모%Yq$KF
-t2G?q 3򮹹,7eYZi}f?} I}\1oZZD49o&1oZZDt4%vED4uG?_s4pC ; <46+/*zy1lֱDXZ@t?"؟_!/*򛲪 >$fG)>+~Y>VI'좕wr:ɹEK%Dd߭ru6]..7d#jٝ/\d6uiXv"/3S¿^J+]6C>ui҃ժrmH.[GZv5?I[esWl`
-"C<0)'}g9tM>*I)SMN&G܌9ڄ4!Ip X9?=os9@ KC8N9< d!lB^97~9LχL6?6:?-%ȡ [Д) V8~Wb eYeB .!eODശsYȮU6+)vI@ FYDxl#) z}~",dڀNrDk+zlu daJZ=eBh{2B80ISl jxf5ʹ(qZH̔9-#F8EsA'9Dl2!?VUS㴾'/"Q`T8]C K{ m`ENBp)qrJ
-U
-endstream
+11123 0 obj
+<< /D [ 11065 0 R /XYZ 81.145 156.127 null ] >>
endobj
11124 0 obj
-<< /Type /Page /Contents 11125 0 R /Resources 11123 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11065 0 R /XYZ 81.145 145.168 null ] >>
+endobj
+11125 0 obj
+<< /D [ 11065 0 R /XYZ 81.145 134.209 null ] >>
endobj
11126 0 obj
-<< /D [ 11124 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 123.25 null ] >>
endobj
11127 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 112.291 null ] >>
endobj
11128 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 101.332 null ] >>
endobj
11129 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 90.374 null ] >>
endobj
11130 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 11065 0 R /XYZ 81.145 79.415 null ] >>
endobj
-11131 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 724.996 null ] >>
-endobj
-11132 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 714.037 null ] >>
+11064 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11133 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 703.078 null ] >>
+<< /Filter /FlateDecode /Length 1890 >>
+stream
+x[r6+;
+BQZGGU=j-?LYF([ţGQ~@++қe\yH\Z IiJ*dDGsh}$UGT53nH`HΔ8NtKIUwtL& ZLϒI<衉ހ6a@G ~}XӠl ȗO5kBhB qT`1'H54.m t.Iɣ}+aaJĤ4Vk~Pɫ"^̺JZ LG`<k䚻oR3$Q5#iKNkQ_PZKl# zL*ҍt-9VrrMmRE kxXpRy5"jnܹ:jlMql΍3<Ac`ݬ4 ^1 ނ~(W mvE=7^)HA 9d+Gեu4Ʒp뱪<5 )^'HSM
+a?"PtK  % D <ʉD/V RlпxheOI75<yގdgh=Χ{;ԮoU#6 Κ)Z>Vhm*M h2}Aԍly&xM'ڣ*U@x?-%Rd3ֳ:TCJ@\ϳKW
+M#@
+-\܃SWm-$A2c҂rʞlI\-Y5~ Ωix\AKTRARt.-j֗ͬny eaĕ] Z胴\Q-f 'hne&Tߵn=n墀q&Y GHaL:7[#hYyx
+9 ;^&h_4 JuvG?Ud`Az=E^='hGe}7Դ2
+{nނ fe<#>W H xPq2mqN?~!^
+endstream
+endobj
+11132 0 obj
+<< /Type /Page /Contents 11133 0 R /Resources 11131 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11134 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 11132 0 R /XYZ 78.37 808.885 null ] >>
endobj
11135 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 768.829 null ] >>
endobj
11136 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 757.87 null ] >>
endobj
11137 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 746.912 null ] >>
endobj
11138 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 735.953 null ] >>
endobj
11139 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 724.994 null ] >>
endobj
11140 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 714.035 null ] >>
endobj
11141 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 703.076 null ] >>
endobj
11142 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 692.117 null ] >>
endobj
11143 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 681.158 null ] >>
endobj
11144 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 670.199 null ] >>
endobj
11145 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 659.24 null ] >>
endobj
11146 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 648.281 null ] >>
endobj
11147 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 637.322 null ] >>
endobj
11148 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 626.364 null ] >>
endobj
11149 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 615.405 null ] >>
endobj
11150 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 604.446 null ] >>
endobj
11151 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 593.487 null ] >>
endobj
11152 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 582.528 null ] >>
endobj
11153 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 571.569 null ] >>
endobj
11154 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 462.979 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 560.61 null ] >>
endobj
11155 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 452.02 null ] >>
+<< /D [ 11132 0 R /XYZ 81.145 549.651 null ] >>
endobj
11156 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 441.061 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 538.692 null ] >>
endobj
11157 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 430.102 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 527.733 null ] >>
endobj
11158 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 419.143 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 516.775 null ] >>
endobj
11159 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 408.184 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 505.816 null ] >>
endobj
11160 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 397.225 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 494.857 null ] >>
endobj
11161 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 386.266 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 483.898 null ] >>
endobj
11162 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 375.307 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 444.047 null ] >>
endobj
11163 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 364.349 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 433.088 null ] >>
endobj
11164 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 353.39 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 422.129 null ] >>
endobj
11165 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 337.449 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 411.171 null ] >>
endobj
11166 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 326.49 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 400.212 null ] >>
endobj
11167 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 315.532 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 389.253 null ] >>
endobj
11168 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 304.573 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 378.294 null ] >>
endobj
11169 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 293.614 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 367.335 null ] >>
endobj
11170 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 282.655 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 356.376 null ] >>
endobj
11171 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 271.696 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 345.417 null ] >>
endobj
11172 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 260.737 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 334.458 null ] >>
endobj
11173 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 249.778 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 323.499 null ] >>
endobj
11174 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 238.819 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 312.54 null ] >>
endobj
11175 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 227.86 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 301.582 null ] >>
endobj
11176 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 216.901 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 290.623 null ] >>
endobj
11177 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 205.943 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 279.664 null ] >>
endobj
11178 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 194.984 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 268.705 null ] >>
endobj
11179 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 184.025 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 257.746 null ] >>
endobj
11180 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 168.085 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 246.787 null ] >>
endobj
11181 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 157.126 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 235.828 null ] >>
endobj
11182 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 146.167 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 224.869 null ] >>
endobj
11183 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 135.208 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 213.91 null ] >>
endobj
11184 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 124.249 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 202.951 null ] >>
endobj
11185 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 113.29 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 191.992 null ] >>
endobj
11186 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 102.331 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 181.034 null ] >>
endobj
11187 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 91.372 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 170.075 null ] >>
endobj
11188 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 80.413 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 159.116 null ] >>
endobj
-11123 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+11189 0 obj
+<< /D [ 11132 0 R /XYZ 82.468 148.157 null ] >>
endobj
-11192 0 obj
-<< /Filter /FlateDecode /Length 1906 >>
-stream
-xڽKoF5;9
-ƭ]nf+?[fk90Ƣeyݬbs09w gKsXղm_+C*0萣9n1ݶ>nOo`dg=LIdB1g NB7o6U^urnyeWn>_;nNsɬ7kN _mI7%p 4֏H?\M}B4116.OJ1',ŬTi0җm}60èiuD(_ľm\bKph/.*Uߴ 8aLWڐ6.Q*˂4G i똈4-!|إbX:m_l.)u_Tbr7U59qZacrЧ/ĆtiZ;&#<u#zr͸,TxJm1_f=}ʐ z]!>*d8I!)uUֱ=R!!"d6^2mMgj}8+%:zL &ܘbLq Rn]gvsLJGw، 򨏢Ly
-+Idd U+01!!Ҧj5/ D&(#,S`dMg*{BF0u,K r~3<F]cԅHFB3-ŔO.jrݷkE}-+W
-#J Mg 3Wɱ2R#Q>ydWǦ`"d7:DA3mAH#5hr|tt)fMMk;46uV$8yʤS\`.ii`?l:jicRH&kV!1q.o8sLJ%"Zi*`ki+si
-oOk
- <?$_)qZ_ixC
-endstream
+11190 0 obj
+<< /D [ 11132 0 R /XYZ 82.468 137.198 null ] >>
endobj
11191 0 obj
-<< /Type /Page /Contents 11192 0 R /Resources 11190 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11132 0 R /XYZ 82.468 126.239 null ] >>
+endobj
+11192 0 obj
+<< /D [ 11132 0 R /XYZ 82.468 115.28 null ] >>
endobj
11193 0 obj
-<< /D [ 11191 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 104.321 null ] >>
endobj
11194 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 93.362 null ] >>
endobj
11195 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11132 0 R /XYZ 82.468 82.403 null ] >>
endobj
-11196 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 746.914 null ] >>
-endobj
-11197 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 735.955 null ] >>
+11131 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11198 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 721.415 null ] >>
+<< /Filter /FlateDecode /Length 1942 >>
+stream
+xڽ[n6+w.CI|+mWmI#QC;]8V8CΛ:sR_O%蓃5ϿtI)ZHhO5(ԧO>+R!-[_cypAFA0KFPJ?ٽsc}Y;'WL=5qZC>0cL5c:_/9uU@;;g=ZV
+B6)*yv$r"re DBߣ"ذ΍FQh+8?ߣ1m^ނ\Sb&Vx&Лy1rN3=I3:. i:=Z<ӤJhLX:7YEyha@s2{.͸*5_@q\p<}$X~˷i;! R3`xF c/C#ѱuϛo(h>!EYfhE#*
+Q}s ;
+G{%&i`pDC#0>a$034sƷnyJ]Z<tv|CjЮQ[RKFG"10-؃]%{#f<o&*3YZІj{ɵvp„9Cv
+je!R d ,/FIa߃HAӉM`O'z[ɓer|| F
+endstream
+endobj
+11197 0 obj
+<< /Type /Page /Contents 11198 0 R /Resources 11196 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11199 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 710.456 null ] >>
+<< /D [ 11197 0 R /XYZ 78.37 808.885 null ] >>
endobj
11200 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 699.497 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 768.829 null ] >>
endobj
11201 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 688.538 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 757.87 null ] >>
endobj
11202 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 677.58 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 746.912 null ] >>
endobj
11203 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 666.621 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 735.953 null ] >>
endobj
11204 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 655.662 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 724.994 null ] >>
endobj
11205 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 644.703 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 714.035 null ] >>
endobj
11206 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 633.744 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 703.076 null ] >>
endobj
11207 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 622.785 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 692.117 null ] >>
endobj
11208 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 611.826 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 681.158 null ] >>
endobj
11209 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 600.867 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 670.199 null ] >>
endobj
11210 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 589.908 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 659.24 null ] >>
endobj
11211 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 578.949 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 648.281 null ] >>
endobj
11212 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 567.991 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 637.322 null ] >>
endobj
11213 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 557.032 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 626.364 null ] >>
endobj
11214 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 546.073 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 615.405 null ] >>
endobj
11215 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 535.114 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 604.446 null ] >>
endobj
11216 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 524.155 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 593.487 null ] >>
endobj
11217 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 513.196 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 582.528 null ] >>
endobj
11218 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 502.237 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 571.569 null ] >>
endobj
11219 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 487.697 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 560.61 null ] >>
endobj
11220 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 476.738 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 549.651 null ] >>
endobj
11221 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 465.779 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 538.692 null ] >>
endobj
11222 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 454.821 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 527.733 null ] >>
endobj
11223 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 443.862 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 516.775 null ] >>
endobj
11224 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 432.903 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 505.816 null ] >>
endobj
11225 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 421.944 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 462.196 null ] >>
endobj
11226 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 410.985 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 451.237 null ] >>
endobj
11227 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 400.026 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 440.278 null ] >>
endobj
11228 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 389.067 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 429.32 null ] >>
endobj
11229 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 378.108 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 418.361 null ] >>
endobj
11230 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 367.149 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 407.402 null ] >>
endobj
11231 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 356.19 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 396.443 null ] >>
endobj
11232 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 345.232 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 385.484 null ] >>
endobj
11233 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 334.273 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 374.525 null ] >>
endobj
11234 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 323.314 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 363.566 null ] >>
endobj
11235 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 312.355 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 352.607 null ] >>
endobj
11236 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 301.396 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 341.648 null ] >>
endobj
11237 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 290.437 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 330.689 null ] >>
endobj
11238 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 279.478 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 319.73 null ] >>
endobj
11239 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 264.938 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 308.772 null ] >>
endobj
11240 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 253.979 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 297.813 null ] >>
endobj
11241 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 243.021 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 286.854 null ] >>
endobj
11242 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 232.062 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 275.895 null ] >>
endobj
11243 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 221.103 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 264.936 null ] >>
endobj
11244 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 210.144 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 253.977 null ] >>
endobj
11245 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 199.185 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 243.018 null ] >>
endobj
11246 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 188.226 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 232.059 null ] >>
endobj
11247 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 177.267 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 221.1 null ] >>
endobj
11248 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 166.308 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 210.141 null ] >>
endobj
11249 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 155.349 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 199.183 null ] >>
endobj
11250 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 144.39 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 188.224 null ] >>
endobj
11251 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 133.431 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 177.265 null ] >>
endobj
11252 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 122.473 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 166.306 null ] >>
endobj
11253 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 111.514 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 155.347 null ] >>
endobj
11254 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 100.555 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 144.388 null ] >>
endobj
11255 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 89.596 null ] >>
+<< /D [ 11197 0 R /XYZ 82.468 133.429 null ] >>
endobj
11256 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 78.637 null ] >>
-endobj
-11190 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11197 0 R /XYZ 82.468 122.47 null ] >>
endobj
-11259 0 obj
-<< /Filter /FlateDecode /Length 1766 >>
-stream
-xڭ]o6+|9toɮ!Ud:CEGَIfi"cyCQdv=#g/췋7s>`4lv<KdFg,WfϜb.23 F)C5%#'Żwp}۶m3Mmݍ-~*WwǪkkb?hZ P| Z@)p&ctpn
-܅YpFIcyA04P-/Vv?X+I?%qK֗.0ٰsȩ„e\`<a94)Gk]}Os`nF>O1v73~<,-%)}sP~*VuzxEe$p{e1OKⶨ⪶i00
-g'?w?H~S#(hHqh䱝 ht$/u8L0A pHfXjbđ픤Y*_@'84vQmdC:=őh.k'W@ ő8qMHBI@v:ڗ}QT*N`;)Q@Cr$i} H %8f<I03piڦ, JǑ7nMpc@ɏ&wK]9mR<i Bzqz#yz|8F+ kjlH R’ z5f};w N
-(ǒ雁 F*qDȶZg#qzBhL$8P)cIZ2`]<%p)3MQ'0ך Re$w/@R/#yvj7(˔nL@;S.,T=yjfӽ56^뛹+e02QSjLNInv"d 909[~_A<Fp@ D#'Ϸ%7eoxr=og 7͙X:rDcđ8y zQ+𳜹Oc gc5K8)p3O)A
-endstream
+11257 0 obj
+<< /D [ 11197 0 R /XYZ 82.468 111.511 null ] >>
endobj
11258 0 obj
-<< /Type /Page /Contents 11259 0 R /Resources 11257 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11197 0 R /XYZ 82.468 100.552 null ] >>
endobj
-11260 0 obj
-<< /D [ 11258 0 R /XYZ 78.37 808.885 null ] >>
+11259 0 obj
+<< /D [ 11197 0 R /XYZ 82.468 89.593 null ] >>
endobj
-11261 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 768.832 null ] >>
+11260 0 obj
+<< /D [ 11197 0 R /XYZ 82.468 78.635 null ] >>
endobj
-11262 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 757.873 null ] >>
+11196 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R /F19 182 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11263 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 746.914 null ] >>
+<< /Filter /FlateDecode /Length 1710 >>
+stream
+xڽ[M&況W強T)j@jga-4zhx݀Ϣ/*Գ=ū/|I/fINepK4ߵV׿ر!.<.`jmh^P>oZ9B=y,'vC9ݳ|6s=-81Ԡі
+LJ2ޱh*-󺽵ͮۛ}M$QvYFvE6|DeˏqRAٯ]FI`$Ѱ{VoF^rZw
+9pԅJА:5z hZḳ޽I8`%UWn\O̓ f<m"4v]CZPzRP$V̟ Zv;2JԾzAU[܏s׿Uz⫩vz=+^E>ek%S_tITҬq
+ퟠaV*K3U+B'zRrUo`INl=G__~Po&꘠Iy&c`|"
+.'KY?RI>'}d%r
+I,'ESb1"F1RoX6s] ֗k?xۜ z>i1}-P
+J?$sF-MpqTtaTNu 3"
+`(MCHƧg14L}N~|-~0יѕ|4+
+endstream
+endobj
+11262 0 obj
+<< /Type /Page /Contents 11263 0 R /Resources 11261 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11264 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11262 0 R /XYZ 78.37 808.885 null ] >>
endobj
11265 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 768.829 null ] >>
endobj
11266 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 757.87 null ] >>
endobj
11267 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 746.912 null ] >>
endobj
11268 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 735.953 null ] >>
endobj
11269 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 724.994 null ] >>
endobj
11270 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 714.035 null ] >>
endobj
11271 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 703.076 null ] >>
endobj
11272 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 692.117 null ] >>
endobj
11273 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 681.158 null ] >>
endobj
11274 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 670.199 null ] >>
endobj
11275 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 659.24 null ] >>
endobj
11276 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 648.281 null ] >>
endobj
11277 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 637.322 null ] >>
endobj
11278 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 626.364 null ] >>
endobj
11279 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 615.405 null ] >>
endobj
11280 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 604.446 null ] >>
endobj
11281 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 593.487 null ] >>
endobj
11282 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 582.528 null ] >>
endobj
11283 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 571.569 null ] >>
endobj
11284 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 560.61 null ] >>
endobj
11285 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 549.651 null ] >>
endobj
11286 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 538.692 null ] >>
endobj
11287 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 527.733 null ] >>
endobj
11288 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 516.775 null ] >>
endobj
11289 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 461.982 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 505.816 null ] >>
endobj
11290 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 451.023 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 494.857 null ] >>
endobj
11291 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 440.065 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 480.909 null ] >>
endobj
11292 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 469.95 null ] >>
endobj
11293 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 458.991 null ] >>
endobj
11294 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 448.032 null ] >>
endobj
11295 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 437.073 null ] >>
endobj
11296 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 426.115 null ] >>
endobj
11297 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 415.156 null ] >>
endobj
11298 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 404.197 null ] >>
endobj
11299 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 393.238 null ] >>
endobj
11300 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 382.279 null ] >>
endobj
11301 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 371.32 null ] >>
endobj
11302 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 360.361 null ] >>
endobj
11303 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 349.402 null ] >>
endobj
11304 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 338.443 null ] >>
endobj
11305 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 327.484 null ] >>
endobj
11306 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 316.525 null ] >>
endobj
11307 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 305.567 null ] >>
endobj
11308 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 294.608 null ] >>
endobj
11309 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 283.649 null ] >>
endobj
11310 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 272.69 null ] >>
endobj
11311 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 261.731 null ] >>
endobj
11312 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 250.772 null ] >>
endobj
11313 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 239.813 null ] >>
endobj
11314 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 188.01 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 228.854 null ] >>
endobj
11315 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 177.051 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 217.895 null ] >>
endobj
11316 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 137.2 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 206.936 null ] >>
endobj
11317 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 126.241 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 195.978 null ] >>
endobj
11318 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 115.283 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 185.019 null ] >>
endobj
11319 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 104.324 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 174.06 null ] >>
endobj
11320 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 93.365 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 163.101 null ] >>
endobj
11321 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 82.406 null ] >>
-endobj
-11257 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11262 0 R /XYZ 82.468 152.142 null ] >>
endobj
-11324 0 obj
-<< /Filter /FlateDecode /Length 1744 >>
-stream
-xڭMoF:6n#@@{rOMaP"BI1wVn"g=&$G;wfh_ЇD#I,|v`!:c3+3lf4#Tf%L<w,qZ ?0!7oԟꦭ筿Ǜq'MȞR041,ƈ*E0)bp ʿsK18%$_1}=hv~j~X^foh^fo+py/> Tu8T^o~n D V!] qS}t"Hԋ)imq[/|5里Tmi(ň47'P]*c,8TLx#JE4 GWjCDlęj T-E48sLg<iM73L֥ˣ"وL㔭$¹o
-~D$=8]pN M< 笙|/~?-
-:}18Źl&Y{$(ҚHsL>`$U#sL>Z?n5z?~x'qud?$ߎx+\30
-%{pgS KIFcHJH$ L\nlc.n\n ' [$UT]pc+MJa&/T9p0vp!EW3d\j$;\jTULy ; \QN#  1\AG!U'X74+Ld~}(13a?f /0@C{XF<sP7PN8~  @6 G= kvؒjBnm8%t]?%c14W\_ޟEb
-P=Y牸t~9d!<&1MY ,~Iן_e  =/x̓%}60E0sp> I_eHBቍoo6 oW_>v]Cqxdx5
-y`%'B4mG53<<rtw Omg+Pa2$˶{=F&7~wZ^s
-,p[&?]:]ބ;7=`pkR[iۮ򅀖 [<kR&6zJ_(S`d uH{ʹ]_ D
-endstream
+11322 0 obj
+<< /D [ 11262 0 R /XYZ 82.468 141.183 null ] >>
endobj
11323 0 obj
-<< /Type /Page /Contents 11324 0 R /Resources 11322 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11262 0 R /XYZ 82.468 130.224 null ] >>
+endobj
+11324 0 obj
+<< /D [ 11262 0 R /XYZ 82.468 119.265 null ] >>
endobj
11325 0 obj
-<< /D [ 11323 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 108.306 null ] >>
endobj
11326 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 97.347 null ] >>
endobj
11327 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 757.873 null ] >>
-endobj
-11328 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11262 0 R /XYZ 82.468 86.388 null ] >>
endobj
-11329 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 735.955 null ] >>
+11261 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11330 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 724.996 null ] >>
+<< /Filter /FlateDecode /Length 2133 >>
+stream
+xڵZɎ#7 Wh_`s߂\SI%$Z6՝Cr3Iqy,.\7`*ˋVdI\%hN_ {7!Y!t'/!=thЄ&hnZFkq}Z뱶iLQdz*!YGZRꈖU?:4z%<1G43['DVd0K Om&rv,wA/[9<ehD6תFkMJ|s?af1sVN -\`Ag;5M5mJMxjhY"jM"z z)$%ބ3+-Z|i1ePLDXH= =%oݎ`\׭VJ0^emVTe%rj=Fs|bLM
+zLL ~?wA`Y:^4W
+W_2v):n4UbW,|m! DQ 5m_it2^'hYYZo病Y 21DG?Eme5"ڭ1>QةNwK>Zu|M{ހoVdRTGSorgiB`VǞXVA0j)G4ٽM1QP)^moDe?A+} )̓wS|ӫ]:
+D~ :~_mW=\c&/ڎZUR ²2A[D@|޵l[@i;j)!oLy4N<fa^-"ʦǟU6Yw_U9b\ݏ3n li|o!x˫ŻnJTKix56{~bVGyvtN\/dU≄ ks8JCcĦc5*8p q
+2hʨذ c?skTe<{#Jq)-q6kB`ľ$k՝mkͪy0zi1͊%JW$76O6p ]z `"h؍gz'_E8C.&cjrwCN,1"%5|jPLo ӀevcͭZd]Y6m1r-꼴O^5>(6FCcoC0 ӎ8x|ap;Ւths>ncxȏJ$aT<>FԆi)Z-%hAve!l?N c̼{3OYXB;O$]Wm*3-MHky.+FϜ{? `Q;؆+ӽhPkza-aҲ]{I3SԖkT[dX_0pT|+v
+
+endstream
+endobj
+11329 0 obj
+<< /Type /Page /Contents 11330 0 R /Resources 11328 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R >>
endobj
11331 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11329 0 R /XYZ 78.37 808.885 null ] >>
endobj
11332 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 768.829 null ] >>
endobj
11333 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 757.87 null ] >>
endobj
11334 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 746.912 null ] >>
endobj
11335 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 735.953 null ] >>
endobj
11336 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 724.994 null ] >>
endobj
11337 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 714.035 null ] >>
endobj
11338 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 703.076 null ] >>
endobj
11339 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 692.117 null ] >>
endobj
11340 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 681.158 null ] >>
endobj
11341 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 670.199 null ] >>
endobj
11342 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 659.24 null ] >>
endobj
11343 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 648.281 null ] >>
endobj
11344 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 637.322 null ] >>
endobj
11345 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 626.364 null ] >>
endobj
11346 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 615.405 null ] >>
endobj
11347 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 604.446 null ] >>
endobj
11348 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 593.487 null ] >>
endobj
11349 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 582.528 null ] >>
endobj
11350 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 571.569 null ] >>
endobj
11351 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 560.61 null ] >>
endobj
11352 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 549.651 null ] >>
endobj
11353 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 538.692 null ] >>
endobj
11354 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 461.982 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 527.733 null ] >>
endobj
11355 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 451.023 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 516.775 null ] >>
endobj
11356 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 440.065 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 505.816 null ] >>
endobj
11357 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 494.857 null ] >>
endobj
11358 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 483.898 null ] >>
endobj
11359 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 468.599 null ] >>
endobj
11360 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 457.64 null ] >>
endobj
11361 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 446.681 null ] >>
endobj
11362 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 435.722 null ] >>
endobj
11363 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 424.763 null ] >>
endobj
11364 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 413.804 null ] >>
endobj
11365 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 402.845 null ] >>
endobj
11366 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 391.886 null ] >>
endobj
11367 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 380.927 null ] >>
endobj
11368 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 369.968 null ] >>
endobj
11369 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 359.01 null ] >>
endobj
11370 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 348.051 null ] >>
endobj
11371 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 337.092 null ] >>
endobj
11372 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 326.133 null ] >>
endobj
11373 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 315.174 null ] >>
endobj
11374 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 304.215 null ] >>
endobj
11375 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 288.916 null ] >>
endobj
11376 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 277.957 null ] >>
endobj
11377 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 266.998 null ] >>
endobj
11378 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 256.039 null ] >>
endobj
11379 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 155.349 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 245.08 null ] >>
endobj
11380 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 144.39 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 234.121 null ] >>
endobj
11381 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 133.431 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 218.822 null ] >>
endobj
11382 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 122.473 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 207.863 null ] >>
endobj
11383 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 111.514 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 196.904 null ] >>
endobj
11384 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 100.555 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 185.945 null ] >>
endobj
11385 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 89.596 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 174.986 null ] >>
endobj
11386 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 78.637 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 164.028 null ] >>
endobj
-11322 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-11389 0 obj
-<< /Filter /FlateDecode /Length 1525 >>
-stream
-xڥMoF: PN{9
-JǥXwW<<I(-_YÁZVLOO)WJcKi9H1~A?*8₁%{?W_6q?f5\}SSC5?1M_+6m_S1IpXuWDO-Po23˜X^ʧ}t”$1!@xQ)-|׾mXվ94SF(+A&-SB'Y2v1LdWҤxgˣ9( (-QnCFƣ$?Ckq*#J:
-NLgy6#w7I.ŸU0 FFInd. 'iExXf`4XbXLwǜ$VMM)N FcQz`Ѕa!#T9y^|MCUtaQS4"!o!;dP(<E0p2TS4#rZCtqX IKQMETsQw&^;*k8)u_f \oSz57V x!jZs2) B'9T
-eԚy24"<JRLFMS*_%SY{Ed񮛪oI4MOXu[͈d-2LӔ:dLH>&Ӕ|L֠͜]5ͩNmmspJbfVov)OF)Є,*34"|ͽ"UQfT~<z*aiSqΑ,<V34"uáp%8fh~EП'/a8}fhEpjx~Ixڜ_k??id"lz ~_TPE+~I*|i`T W?"C$+Y>ƆqкaJ͘BR' h/І#e "<\!&c3oߝo BI>_~|WS5\6:]Һ!q e̎pdiM(N! /92!KkYoTwr|d%}fG./ٟ쁌/Bg.Շׇ: Oﻮ{[h_}nyyWSu9հ<@edSQ@V.o08KciEx4' GY|``L/6_p MJ2)-_ÐSú/q|້p|P:-!|YX\nv*j:oۦm獟9CheGkY_AGO|lEF=;NLJ THr !6܃W"^D
-endstream
+11387 0 obj
+<< /D [ 11329 0 R /XYZ 82.468 148.728 null ] >>
endobj
11388 0 obj
-<< /Type /Page /Contents 11389 0 R /Resources 11387 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11329 0 R /XYZ 82.468 137.769 null ] >>
+endobj
+11389 0 obj
+<< /D [ 11329 0 R /XYZ 82.468 126.811 null ] >>
endobj
11390 0 obj
-<< /D [ 11388 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 115.852 null ] >>
endobj
11391 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 104.893 null ] >>
endobj
11392 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 93.934 null ] >>
endobj
11393 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11329 0 R /XYZ 82.468 82.975 null ] >>
+endobj
+11328 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F71 185 0 R /F67 179 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+11427 0 obj
+<< /Filter /FlateDecode /Length 1388 >>
+stream
+xYɎ#7 WF#Q4 t-5s%6jsJ3
+vKI=/ߞxޟ d5\zbbehϜ Jp^;%%}_1AJB3VRp"[Z6\Ex "H+ӝ4t9FvQ{o'xoE`g"}#1=1aا͏`hJMQHhrk) zBn=.ffkF^~&ca)}d8kn͑n ̡hF%᭣"H̬af8AQvfhKףCv13$Xp82D;`7LpUE=!
+?e?PDDK$r,D[H 5UgZ3X Ii sĎ!f>zU*Mh٦*;,3gq]B5u(qxRɛ-Y}m\թ?WJ]j2?ԃ#9/"jkմ}_
+MjFQ$~&EGէ%s>f>·1JW'1"쌬G.[+. n+T_#K0cHV)i"T>5cE(V=\Rn_/'Ba@B<,g!tY"5٠ʽ壭a~:yBD%ɻeq04UNF-@@oCVQR,!UC@QDiiTDt,։qu߈'t
+endstream
+endobj
+11426 0 obj
+<< /Type /Page /Contents 11427 0 R /Resources 11425 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R /Annots 11429 0 R >>
+endobj
+11429 0 obj
+[ 11394 0 R 11395 0 R 11396 0 R 11397 0 R 11398 0 R 11399 0 R 11400 0 R 11401 0 R 11402 0 R 11403 0 R 11404 0 R 11405 0 R 11406 0 R 11407 0 R 11408 0 R 11409 0 R 11410 0 R 11411 0 R 11412 0 R 11413 0 R 11414 0 R 11415 0 R 11416 0 R 11417 0 R 11418 0 R 11419 0 R 11420 0 R 11421 0 R 11422 0 R 11423 0 R ]
endobj
11394 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 735.955 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 713.696 345.243 724.664 ]/A << /S /GoTo /D (section.0.1) >> >>
endobj
11395 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 724.996 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.778 195.863 702.717 ]/A << /S /GoTo /D (section.0.2) >> >>
endobj
11396 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 714.037 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 671.753 207.649 680.829 ]/A << /S /GoTo /D (section.0.3) >> >>
endobj
11397 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 703.078 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 649.835 162.389 658.771 ]/A << /S /GoTo /D (section.0.4) >> >>
endobj
11398 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 692.119 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 625.536 244.451 637.491 ]/A << /S /GoTo /D (section.0.5) >> >>
endobj
11399 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 681.16 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 604.106 313.442 615.075 ]/A << /S /GoTo /D (section.0.6) >> >>
endobj
11400 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 670.202 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.258 165.019 593.098 ]/A << /S /GoTo /D (section.0.7) >> >>
endobj
11401 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 659.243 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 559.783 356.899 571.738 ]/A << /S /GoTo /D (section.0.8) >> >>
endobj
11402 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 648.284 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 537.865 192.944 549.82 ]/A << /S /GoTo /D (section.0.9) >> >>
endobj
11403 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 637.325 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 515.947 318.772 527.902 ]/A << /S /GoTo /D (section.0.10) >> >>
endobj
11404 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 626.366 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 494.527 304.705 505.486 ]/A << /S /GoTo /D (section.0.11) >> >>
endobj
11405 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 615.407 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 472.111 271.161 484.067 ]/A << /S /GoTo /D (section.0.12) >> >>
endobj
11406 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 604.448 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 450.194 345.293 462.149 ]/A << /S /GoTo /D (section.0.13) >> >>
endobj
11407 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 593.489 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 428.276 370.767 440.231 ]/A << /S /GoTo /D (section.0.14) >> >>
endobj
11408 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 582.53 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 406.856 280.675 417.815 ]/A << /S /GoTo /D (section.0.15) >> >>
endobj
11409 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 571.571 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 386.821 232.476 395.837 ]/A << /S /GoTo /D (section.0.16) >> >>
endobj
11410 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 560.613 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 363.011 417.96 373.979 ]/A << /S /GoTo /D (section.0.17) >> >>
endobj
11411 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 549.654 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 342.986 359.828 352.002 ]/A << /S /GoTo /D (section.0.18) >> >>
endobj
11412 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 538.695 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 318.687 323.475 330.642 ]/A << /S /GoTo /D (section.0.19) >> >>
endobj
11413 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 527.736 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 296.769 233.691 308.724 ]/A << /S /GoTo /D (section.0.20) >> >>
endobj
11414 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 516.777 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 275.409 272.167 286.308 ]/A << /S /GoTo /D (section.0.21) >> >>
endobj
11415 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 505.818 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 255.364 269.696 264.331 ]/A << /S /GoTo /D (section.0.22) >> >>
endobj
11416 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 494.859 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 231.514 200.237 242.413 ]/A << /S /GoTo /D (section.0.23) >> >>
endobj
11417 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 483.9 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 209.098 292.112 221.053 ]/A << /S /GoTo /D (section.0.24) >> >>
endobj
11418 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 472.941 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 189.561 187.086 198.577 ]/A << /S /GoTo /D (section.0.25) >> >>
endobj
11419 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 461.982 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 167.643 159.609 176.659 ]/A << /S /GoTo /D (section.0.26) >> >>
endobj
11420 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 451.023 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 143.842 324.073 154.742 ]/A << /S /GoTo /D (section.0.27) >> >>
endobj
11421 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 440.065 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 121.925 192.645 132.864 ]/A << /S /GoTo /D (section.0.28) >> >>
endobj
11422 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 429.106 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 99.509 313.482 111.464 ]/A << /S /GoTo /D (section.0.29) >> >>
endobj
11423 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 418.147 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 77.591 225.413 89.546 ]/A << /S /GoTo /D (section.0.30) >> >>
endobj
-11424 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 407.188 null ] >>
+11428 0 obj
+<< /D [ 11426 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+161 0 obj
+<< /D [ 11426 0 R /XYZ 79.37 771.024 null ] >>
endobj
11425 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 396.229 null ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F70 183 0 R /F82 699 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11426 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 385.27 null ] >>
+11440 0 obj
+<< /Filter /FlateDecode /Length 568 >>
+stream
+xڭ0 <^:JD ėko$RrvP)$͏wy7 J_2 VE N?Q5`4_ \|1A
+.hr@MgoX
+endstream
endobj
-11427 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 374.311 null ] >>
+11439 0 obj
+<< /Type /Page /Contents 11440 0 R /Resources 11438 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11063 0 R /Annots 11442 0 R >>
endobj
-11428 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 363.352 null ] >>
+11442 0 obj
+[ 11424 0 R 11430 0 R 11431 0 R 11432 0 R 11433 0 R 11434 0 R 11435 0 R 11436 0 R 11437 0 R ]
endobj
-11429 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 352.393 null ] >>
+11424 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 757.574 232.546 769.529 ]/A << /S /GoTo /D (section.0.31) >> >>
endobj
11430 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 341.434 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 736.214 261.308 747.053 ]/A << /S /GoTo /D (section.0.32) >> >>
endobj
11431 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 330.476 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 713.738 240.376 725.694 ]/A << /S /GoTo /D (section.0.33) >> >>
endobj
11432 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 319.517 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.821 329.741 703.776 ]/A << /S /GoTo /D (section.0.34) >> >>
endobj
11433 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 308.558 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 670.401 252.152 681.33 ]/A << /S /GoTo /D (section.0.35) >> >>
endobj
11434 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 297.599 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 647.985 266.588 659.94 ]/A << /S /GoTo /D (section.0.36) >> >>
endobj
11435 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 286.64 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 626.555 318.683 637.464 ]/A << /S /GoTo /D (section.0.37) >> >>
endobj
11436 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 275.681 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 604.637 258.369 615.586 ]/A << /S /GoTo /D (section.0.38) >> >>
endobj
11437 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 264.722 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.72 257.472 593.689 ]/A << /S /GoTo /D (section.0.39) >> >>
endobj
-11438 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 253.763 null ] >>
+11441 0 obj
+<< /D [ 11439 0 R /XYZ 78.37 808.885 null ] >>
endobj
-11439 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 242.804 null ] >>
+11438 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F82 699 0 R /F15 180 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11440 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 231.845 null ] >>
+1 0 obj
+<< /pgf@bmMultiply<< /BM /Multiply>>>>
endobj
-11441 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 220.887 null ] >>
+2 0 obj
+<<>>
endobj
-11442 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 209.928 null ] >>
+3 0 obj
+<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
11443 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 198.969 null ] >>
+[647.8 579.4 ]
endobj
11444 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 188.01 null ] >>
+[875 875 666.7 666.7 666.7 666.7 0 0 0 0 0 0 0 0 0 0 875 875 ]
endobj
11445 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 174.062 null ] >>
-endobj
-11446 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 163.103 null ] >>
+[ 28 [ 525 ] 35 [ 525 ] 50 [ 525 ] 55 [ 525 ] 63 [ 525 ] 66 [ 525 ] 68 [ 525 ] 72 [ 525 ] 77 [ 525 ] 81 [ 525 ] 96 [ 525 ] 105 [ 525 ] 109 [ 525 ] 116 [ 525 ] ]
endobj
11447 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 152.144 null ] >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc```Pdhq`hp
+endstream
endobj
11448 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 141.185 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1769 >>
+stream
+xڍVPnw@O($"oC"1&Gbz&V-q S~E%N8
+wb6dZэt$5u];]?|wǔJ 7n^dҙmOgeld*&Ev <)$s$ LX IQTҭ“/eUQ
+W)Ԉ&`>'ϟģU}_P6|J0[%cp$<0,de-YVZ8+EJi4:.ЅuJV#ƚRƠ3l9ev+c^mVZ*iiaLiYXhmޤsY^o,cVȠi+zyf^a-咏5vf2r7i3)ڔ嬅36d|k"R3ֳL1یZLO`?cc/aZ,+~`F
+)$Z+N|n:S{|YDhuސ6.!0ZkzހD&rWgBPeUͽGXX;l=vFr]Pq>=ڝ{>2UCg
+9ES;/
+)n
+N=ϣϩ40WiR%v}>?[` ߛ\t:6QV xJ[h:AH`8KRJ7y-@ ÞhvԹ`=6cB
+TIDY,.%kD4tAq$ ܸN."~b
+\~i f^5WgY! KwU|8ёGRS`T8*[a0E˝=qULD[h+5%nT,(8Ivb6!And%?ᯑ^9ItY^A1up&p]>\cf"?4?*UKS̜]š.bW[T5eb8~[޾6J~kvw绾N<!8p
+endstream
+endobj
+11446 0 obj
+<< /Type /FontDescriptor /FontName /RRUGDW+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 11448 0 R /CIDSet 11447 0 R >>
endobj
11449 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 130.226 null ] >>
+<< /Filter /FlateDecode /Length 434 >>
+stream
+xڍn0~
+"RL!uHS!M*d.[bd,YkVh@|?3ZEB 2^CTlL&k͇} +tZRI{ĥ `T}-'>$ozZ~nZ骩MX&b>t/mBCM^А7^juO[ƘD[?pOK48J%̥szs$Br{sWB[&]e[sߐ0RZNX ]׀o2Tw=-ػQ
+w*-s4 `\ 軚 rڸ+'ħsQ#|<j%K"=34,ECʐHeEiD*HM au, 2%
+24w1YT%|TzeC
+endstream
+endobj
+761 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RRUGDW+LMMonoSlant10-Regular /DescendantFonts [ 11450 0 R ] /ToUnicode 11449 0 R >>
endobj
11450 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 119.268 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RRUGDW+LMMonoSlant10-Regular /FontDescriptor 11446 0 R /W 11445 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11451 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 108.309 null ] >>
+[531.3 531.3 ]
endobj
11452 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 97.35 null ] >>
+[826.4 ]
endobj
11453 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 86.391 null ] >>
+[ 27 [ 531 531 ] 33 [ 531 ] 35 [ 531 531 ] 38 [ 531 531 531 531 531 531 531 531 ] 47 [ 531 ] 50 [ 531 ] 55 [ 531 531 ] 59 [ 531 ] 63 [ 531 531 ] 66 [ 531 ] 70 [ 531 ] 72 [ 531 ] 75 [ 531 ] 77 [ 531 ] 81 [ 531 ] 84 [ 531 ] 88 [ 531 ] 91 [ 531 ] 96 [ 531 ] 98 [ 531 ] 105 [ 531 ] 109 [ 531 531 ] 112 [ 531 ] 114 [ 531 ] 116 [ 531 ] 118 [ 531 ] 120 [ 531 531 ] ]
endobj
-11387 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+11455 0 obj
+<< /Filter /FlateDecode /Length 25 >>
+stream
+xc``8q V
+endstream
endobj
11456 0 obj
-<< /Filter /FlateDecode /Length 1732 >>
-stream
-xڥ]o+|~\hw^f-ZfbaeɐwddM29 $laoطov{Zn8˥p#+|Sa8V~<Om,8cM\0Gv~ۅp?WY/;6m .2aFK 3*o*SնߦAd4T0N}
-HXVE CJۂ!t _§BD
-KH =q$cxG
-ۡ/
-r/ Ry vPu j 2a4D ]X
-RJFsFy8/hkfÙvs 8h/Xݷ4WZGSs4xᩀ[.l&|vhs΀9fr\dim5Fgr$9zjw
-N1[v-\o Д# fu %
-RJ0&nl&?>_ZDz!fl3T$C f1L̕G1M86:Yo&\(+ fq8W`M:AL>j2÷ b! La~q|!1{3H㋤@Թd[r SHwڑÛ:R ]ֹ̄:ZL~+ڀ df{\48{I|k,
-}Ab%3h?+V3f=U.
-{Lv".Ymwvkw;{QWR
-aL1y9MawpZJNݮq'B1~0~hU\&VSX~i|< mOKX?o9Ye88-8yZ.[Lf5h+T_8_vQ-@LNWWL}fW#mIw;<8!2/O<,So'uM$UBaCX_GuTB{g>{Yלּ*dO[քu9B\ g&S`-cXHʍAuW 
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3691 >>
+stream
+xڍX \֟2QS+Sg(V.RłhTUNYXl &,.bVZ~ھ3k{_m$Is=@ tMk\*OwQPRn
+7I,rr[T'IǗfH4 c-ƃt*$fpW:b"q/W,
+&<[|Ui꘨h|Y+rr8U&.FϖΖ/WWc/0Eth|\)RuZ#RtA1yJ'ՊxEF!)#j6Z![n|J/ W(5
+\Q(ZmZ]l:=Fo}Hnd eo.^T<RG(1gC*uBhw*LfBѦA^B8gb"1p!\YN!^&<"‹!K
+ x]{CkbfP]*P}/2j<jo-[?Y2F2TuZtDF=M;H LȟO{N x\P$FS\~98}I;mYr5O<
+~A^Y<O‹bǎ0[w-ذ24$+_<BfP;6$_3&9?aUQ ,)e g[Q-{QX$tAGEy,q9/SNͷh L~X"8y +|2?NM5y[Y({h zAI
+ZyZ^³ Oe(33PD֠h iY텲-cZv\!XU'T:2Ԡ<R>݅j/f?@Y;Qy_Y]؊xT|2XpgIJXWg226'/OS{#fgy졟5ł6TÂ2bp WLx]Gr2u[ &79oʠ
+1V Oκ׼.7dtXpPjSgAjW=Sa֧͉}|eO6Q7H~2<ev 0u.U䅚GMki
+1;"e3ԍY*+pt C VN@ &W2q%dMvZ &xpb<3%- @$KS[VZ^ }ВeKVx۫k;4*&&
+|f;f5
+zd45FLxik*8mi - /PGz^1%nF`Rl>&ٛVɱY꛶ZoD,iwۚ |ԑ}7Uh.yz/icR jŸ&ǁ
+GVYww<kW 3" P/r9)kI;Uj5.[+f<hDEv5O\z(n˫[wYcLL`crdJ_AAf۫ńG-U.hzp$.Jkqzgm.`‘ u/G5v&{"JZ(E¼ϒ-UJZi1IT]%L챏Q# woF<MqYf)[n-<gi ssE ŅF%*hoQ3 0oHy_B,T e{tKq0`E3?"WzFIR^+]G
+ŤǻkZnBՈjOO"f%9&s<opZ!WMF%:I'| NGdl%)n[jlᦨ CX5rBҢaGK\EEdA~ SrB_I+Yœ I>`&̞7Dm Fx rPU Yb|$kv{fԳ= ߊG2D
+hpcx]Q$Y;1C9zB:1)JN|akM)O.g1Pt t^R!.-ւ`_{szÀxf<_ӌJ%u#4lf ǿJ ȱ iAn,(oxHWSX)s+pDu,(w|ⱣfH'Tl&b8E5;j}j#ũHcb60Fa>mtlA D
+`"ar ǁ 0 E2<-
+F:\0
endstream
endobj
-11455 0 obj
-<< /Type /Page /Contents 11456 0 R /Resources 11454 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+11454 0 obj
+<< /Type /FontDescriptor /FontName /HYXDYG+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 11456 0 R /CIDSet 11455 0 R >>
endobj
11457 0 obj
-<< /D [ 11455 0 R /XYZ 78.37 808.885 null ] >>
+<< /Filter /FlateDecode /Length 547 >>
+stream
+x}[o0+H!Ź`
+ERv*h>d`#9~mJ+v@|xam8+==goֽ.(\l& uџIuD%h^u]lczVUwgת8%]n'Xۇ wx_~|n6'SCndL2W鶪#9'U. F^"]E*Uj YY'YOvt^CLld:Wm/N]0z%JDDVA9?ץV&|]br ҹ:R05MWʿI~M?C\B<2G GGqPX J HAMc C Zh(VL%1h Bw!@ AQR_fHQS@Kks)XcT}&H8/Ek-8(1@?L[.I_NH_KKaZ eKKxMrcޞ/z~+o6ucO爥U;HJ
+endstream
+endobj
+720 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HYXDYG+LMMono8-Regular /DescendantFonts [ 11458 0 R ] /ToUnicode 11457 0 R >>
endobj
11458 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 768.832 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HYXDYG+LMMono8-Regular /FontDescriptor 11454 0 R /W 11453 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11459 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 757.873 null ] >>
-endobj
-11460 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 746.914 null ] >>
+[ 27 [ 869 559 ] 32 [ 575 ] 34 [ 818 639 575 ] 38 [ 575 575 ] 42 [ 831 511 ] 45 [ 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 ] 95 [ 863 474 639 454 ] 100 [ 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 869 607 ] 118 [ 607 ] 120 [ 511 575 ] 125 [ 639 639 ] 284 [ 575 ] ]
endobj
11461 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 735.955 null ] >>
+<< /Filter /FlateDecode /Length 28 >>
+stream
+xc``m^o:ƀ 8
+
+endstream
endobj
11462 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 724.996 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6737 >>
+stream
+xڅy\8;i2,Y 1ƫb-
+RQza) {-MzSe:Fc1~1ܘ1<? j{}`fym3+d2ҍo,f⊕k<3|wI%B6BI#e?H$$|Eez$Eɐ=9r6_B 3QG@Irn)S.H
+
+Q2eʫ,*ɪe~;BCCT~aeU+'VǓ!qa*`;U;U7bUAQ'DãBU=*pw_t`*6, 0JZazՊaс*ww*:0P1#&6hrxTN&chj7,Zn䘄(U@`_ Iȋ\(5zCRnj"NM<WWר?Luj5Gͧ<j)ZNVRj-ZOPOPT0BB*"(**K\Hk>5d* 3Zo FyfS<Z:$/\CӇgæm̮ҡ0xl֝4Ell2<|#&br%s_uE"xYziI,~S4̹\鎷 2T+=4/aWz:A6߄,NZh;myow~ gS Tʯ2z%2wǯv9%oi=z0Rh5rBZ\*YDpH3hۍOkJQQ&zFmv (x>2Ⱦk%i #Gd-lV6GWk2ti<\N+#"HgLG2r5\|tBXXmI+xV:C kH)0Jyhm2e+WV/9՝ȧ;:̤jދ$.P) YmիUCM<P^ngx߷ 0o
+n+l[9SUiX=+8l׈pS+zYYr2Ús8!=h=%,> ^I{1 Q@d*+*w3z6`oAZyCEg Ǵ?|;m $2+
+2D2+,ۛd锂Z1l4Kk-?2H+,(K3wŨR hi0}x\ ;:̗6W1ZP*/o?
+c3Q25?Tmn
+DJN0S~ Ukڴܸ)霵vXL
+-Bίc֚JIJe5ZF^^; vOH4ܬz/
+@}kl.X1t;d۫ɫ8*W{_$,6-<PV{DɊu΂ַLz,2+P ʰ*)ز`W(<I0 -VTs9lItC8,p;CHђ&BH< DpSDIoWx1
+^IvN~w a/ z(Ir 5yb
+A //rvԠ`Y
+N ?VR kUNe'kmqkCqx^<-9y]1ߢ`޹j1NaO`[0
+)0=dY\<<`yu7xtH;;VR=
+<ma痧}Cݓ׎_{֭jx9>u$n f0^L "zK~~1dH{L18g@0~/ޏE cPwJzCU :>{<0ͻ?^ŀnfA
+#}jjGB>EmKh:ZCx ٓR9x+u ۨ a}Dwn,ԕi(G-Įݨn6E
+ AEdgQj]Yn^Q!lqw'r6+ snsC-})2Vv52[>,e/An%u"i_קAstai_ Q`$Wh'.j6 MoerށDh
+`EmnZ("**x:I-}g/D?~7hv>[EPm8q
+*ahR{2DCҧ%ELI`Gxd $p)JB%~HiI-Q@:-ςwF{Cb(e~6qX^?S5Z d@vڸ<Znv dep
+0Dt1Jr#ʉrxy?r⇜Ns,@_0sbJɍacO}'evFHM;;#&ܭ^YLb|y A.)7ωdh#P$Ǫ0c$;"iɛaMlbGq)"^ =br~ṁ$ .>9,L¯%'ʵ>Xr>t|Lk8A1a=ϓH;d{[R !]OsG2jpV_ΒFr8ʲ%9;/VZC\9el?:8V{%fbnNL2&
+aFN)lc4)gU´=PǪ4l'k} G~\؞'d]clߋ0rSn_*
+n?2 'LpȳƆ\t?g)Ƶ#y L7w|a=fCv:B.>Wfb%mbv>X$n_%JGʏ+ \rz-X.`+"N>!]hMa;|p8
+'b;P c}E9-=/<𩿰r;ʫƯ}~Eot
+,QG g)
+S77v$*vKLt9y{J5Ƕ;L>p`z>:j_/~&ק>5LۈY0qC޵BY &R[g/1[-rKsWQ~,41^F`F)7?q= @?"lմ%ձ:]gWAo >4.YDT^?i[ϧ OJ" vp{d降I:57Z5V@"othSd}<mCOA5\ LFjFq~Jo P`_y v+Mbk/y0.Eyeey%Q%剱 q㔋Fb{ dțޯtDq mS(+0|:O[i~
+P<4v'T3 .Nj gpژz!(;1b2>ߕQϘg^Z?ƁpsP
+%Wn[э*% ;+s#IE-QvT,42 Iq:M5kMŷa wv'qErԞ%._b:mKD63KBנ<4]aw:n:x\uO1Z}nLFw8~;>0HG [8v$;aw7^&Dol=raCI?v¸|WI#tlu^NH:Ul;uLNd^hKnYxh_p
+UQOd"C<j6 7l%Qi3Ͳ֨dŎ3YO@U%0/}Lu_) uU %fΉ%.YP؏NMCxe"fI- Q҃"Bz yOyȸ?x[GV `<;EjOZܐX4,|4Tϙ-xtNgXYhӇ5136om<Qݎ#t?-DYSy/=ôA|
+ _(-G
+x{6"Ej80hN,<UtYAG$@e4l n)20}7Bl&(Z,'2φ*-Ce\eX yW9;M7 rl7_D @Inuxo1b~0]Yij䂼F1@
+ .*5)kDJyJ[(:Ct2TKrL0K+fqB,4 >R<C&`ggɠ\HR̦dm']wFqrNz Zqw+Z܉FPVe;<t^,MdB>n_~]smvj=Hڡ h4in:sxL
+D v#1#w>;CoV*_T]۟x62OOMVU9Hl&`2ːt$M
+s =ٸ(5%jl-.l/|!`3dc#-+(1ml?l5
+endstream
+endobj
+11460 0 obj
+<< /Type /FontDescriptor /FontName /HVIDAQ+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 11462 0 R /CIDSet 11461 0 R >>
endobj
11463 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 714.037 null ] >>
+<< /Filter /FlateDecode /Length 632 >>
+stream
+x}[0)1%3eU}&>78 +(ss3 '0yl:`0ŹҦZiu=^G[ݳl5_+SJ_M47 Os5jg"N
+ٖό3vڼsn,Օ FQ-d{'9bʢ'Ee7`<f=?V4G6ZlMsN A36ۮl
+_){Zyl/fbZݙƶ<g69
+9h( ()h KP,A -
+endstream
+endobj
+699 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HVIDAQ+LMRoman10-Bold /DescendantFonts [ 11464 0 R ] /ToUnicode 11463 0 R >>
endobj
11464 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 703.078 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HVIDAQ+LMRoman10-Bold /FontDescriptor 11460 0 R /W 11459 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11465 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 692.119 null ] >>
+[777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416.7 528.6 429.2 432.8 0 0 0 0 0 344.5 411.8 520.6 298.4 0 600.2 0 0 0 0 0 0 0 0 0 571.5 490.3 ]
endobj
11466 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 681.16 null ] >>
+[833.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 ]
endobj
11467 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 670.202 null ] >>
-endobj
-11468 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 659.243 null ] >>
+[ 28 [ 613 ] 43 [ 591 ] 47 [ 624 ] 55 [ 536 ] 59 [ 641 ] 66 [ 302 ] 84 [ 558 ] 98 [ 458 ] ]
endobj
11469 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 648.284 null ] >>
+<< /Filter /FlateDecode /Length 19 >>
+stream
+xc```dP
+
+endstream
endobj
11470 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 637.325 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1346 >>
+stream
+x}LwꤖD
+w'adh:(Bm*RzxmA*fꅨ3d*1n޹/Yv.o~_|_%%6 &{ѱĘsL\,@\$*RLT\$DJ&r䳝h2Ew_J.SS X|cX35B3Rr>Y,NzRVLbSM=쨷&.t),y􋬝f,&[-V`8]DZFb=]n:f%16`̴nf8iauet!kw%`lv0 mq:_5:=j$aen,-.)/(-+;w;Z͌d9l_Rk0Vj؝Vg &I
+kI(%IbPX
+}3>F(2z@Pvڻ=^
+.q7^ҽ#VB L^?reL|If=$G<
+(Fƺ{ShlѢPߵ [3Zg@p=Μu(sXp;o"QG޽HVE魉<DZ4e,,dB_ԏ 8$\/oP:F8ŐU^z=xH^IZfj']UJD51
+73"lĔOc'qr,7aOb'\lߕdO+ Fü63
+^H\h*xSV!_WJ;QRGvV 0%$Fg`rf۴fxѽgnPq=计Y'q.k]WOU9<u?j~}&݉-rZ|1m@R Ƃshp28"Zohd(t$B#UԬzhHN(%s ^"K X
+s΍|>wTBx胁@  Cy
+endstream
+endobj
+11468 0 obj
+<< /Type /FontDescriptor /FontName /JJUFLC+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 11470 0 R /CIDSet 11469 0 R >>
endobj
11471 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 626.366 null ] >>
+<< /Filter /FlateDecode /Length 405 >>
+stream
+xڍ_k0)PM0:&^kru}_X1dzϽ99if a0PXc0HyIz'Śeȑwj+k'S&E}kęddžc[][
+^^>$x]U$/k<4\ԶnE}4-P5 + |x<QpE“imvv$>{$g7mUcɽ"9feQպuoI9j!пf7MYњJ8|[^ 6۫\m0tyLqʜAc JN}n¾smDC$- FROcGrh<nhJM|m:lk6!r! -Ui'B
+endstream
+endobj
+505 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JJUFLC+LMRomanCaps10-Regular /DescendantFonts [ 11472 0 R ] /ToUnicode 11471 0 R >>
endobj
11472 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 615.407 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JJUFLC+LMRomanCaps10-Regular /FontDescriptor 11468 0 R /W 11467 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11473 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 604.448 null ] >>
-endobj
-11474 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 593.489 null ] >>
+[ 51 [ 611 ] 56 [ 611 611 ] 78 [ 611 ] 82 [ 611 ] 100 [ 611 611 ] 106 [ 611 611 ] 121 [ 611 ] ]
endobj
11475 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 582.53 null ] >>
+<< /Filter /FlateDecode /Length 21 >>
+stream
+xc`
+ < 
+endstream
endobj
11476 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 571.571 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1695 >>
+stream
+xuU}PSW%+4-}O{BkQP`@E ZyI
+1%Yte\6-7MT.
+Hn1-q$-L e…b1'% p,*EY &c<,[=xBs0KxoeU&BǯXd%ީg+z.ЙJzb+Z- bf\&.73&35eהtnLW&=MQ ]^aLӷilިɔ:. C[,eU*KVɚYexfdVťmʍۘE0`Vog&ڰ^2ԢTa%b,,` V*ABL
+.z^?gA0Rh8X1½?{#pj\1Vzto{[#;~fuU$z-}ߛ1HMIG!0}(/C-( BD3"fs¿vFAٿp%)P۷/P0f1Ja?
+(V*$(i[q0|:~ev6X5k=Yͫ$>vhl:D P<Jz 0 }9%c^]@d* O&Jp2
+$ѠKq%V`$7d
+!.4[4ԇ-uOEb-bE[z/wuHX!EtbFptK`ó$[DmOyf$s#H5/,P YYDjvu_~7vm`8rSEMM]rG1Hbt
+E0Hw/l:NhW$
+I;??PgB %#{l~ @ [s7]~I$C![Wxz\Ǻ˻˜?6ߜHñ\˚H2[#\߼
+{>4`YQ$4d쭗6}hб{F}p$pxse\ɦ|D;2ukwW j@FQCCsA*<O0'Niu
+endstream
+endobj
+11474 0 obj
+<< /Type /FontDescriptor /FontName /XENFPT+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 11476 0 R /CIDSet 11475 0 R >>
endobj
11477 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 560.613 null ] >>
+<< /Filter /FlateDecode /Length 404 >>
+stream
+x}K0w.jSH'fTT5:]'0S=799Im\0)Pf?Ӝ4 Ū eFj1Vl%4"lq"ٵX"Sbq^mNe;TTvDy5`
+n/ԅPr QRj~,%̮ %ﳐ\߭'Q`ܓe&*ۼ%f<+2@hfEouQ y FPl6 !O*g#tG0S<eSyA21!&+s%Uthg(Tہ]3yĿ=<FOASSS>K.#?Vims=UnG}P-mV
+endstream
+endobj
+425 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XENFPT+LMRoman6-Regular /DescendantFonts [ 11478 0 R ] /ToUnicode 11477 0 R >>
endobj
11478 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 549.654 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XENFPT+LMRoman6-Regular /FontDescriptor 11474 0 R /W 11473 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11479 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 538.695 null ] >>
-endobj
-11480 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 527.736 null ] >>
+[ 51 [ 569 ] 56 [ 569 569 ] 78 [ 569 ] 82 [ 569 ] 100 [ 569 569 ] 106 [ 569 569 ] 121 [ 569 ] ]
endobj
11481 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 516.777 null ] >>
+<< /Filter /FlateDecode /Length 21 >>
+stream
+xc`
+ < 
+endstream
endobj
11482 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 505.818 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1685 >>
+stream
+xuUkPTGÈ(uG^QWCZ` 00 j3GAG@^X"")E0kZ]CP*X,PѾncgVmwӧ;uXL cLqs`<&N~9*
+qݗ or_v(G5:@[2}5z`x%] sڤ!Y "#DrO 3
+V"r?퇒?IX01tV-m*>vH5-k*c=|w !}9PfhrWN#^X:-Hס_{% W4P!XE$m]:zb38{]PunQrLgrXPO^`P:~+ #R7~Gy{f7p܉#/b|DL=\>F/܂/6+|(NZd-ؓW `
+GKtdžmBEx}gZ5g:\~Bc"ZOI
+NbC^r`)|*+%M 1=U8⦈kQʁR y Ķ˚Jmѹpr~_9&꾩R58WCW%#B)_o-Zȫ=%-/7l|D%2]DCbTߙir8lkQ(\-:Kϗ:Y
+endstream
+endobj
+11480 0 obj
+<< /Type /FontDescriptor /FontName /TFIASI+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 11482 0 R /CIDSet 11481 0 R >>
endobj
11483 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 494.859 null ] >>
+<< /Filter /FlateDecode /Length 405 >>
+stream
+x}]K0+wQSetPpC풳X$Q xzޓy[ͥc4ڴV`XhKQ#Y#rlv=gZ5}gZZwyvn,z]mMYic{*l]N5'R/UüяqNj S,}PZڋU;,Trn bYՍ={}oDw۪:)H<ДѺ(bLRU5rٝ+$Fb]mfOa+e:]C@tɵ$> i zݧ,<=yz4J<MFƁ&恆 <M/34܂\@Fiqe*o8hd_K}O
+endstream
+endobj
+422 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TFIASI+LMRoman7-Regular /DescendantFonts [ 11484 0 R ] /ToUnicode 11483 0 R >>
endobj
11484 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 483.9 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TFIASI+LMRoman7-Regular /FontDescriptor 11480 0 R /W 11479 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11485 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 472.941 null ] >>
-endobj
-11486 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 461.982 null ] >>
+[ 28 [ 511 ] 34 [ 704 460 ] 42 [ 716 460 307 ] 47 [ 511 ] 49 [ 678 460 ] 55 [ 307 ] 59 [ 460 ] 63 [ 511 358 ] 66 [ 307 ] 68 [ 307 ] 70 [ 460 ] 72 [ 256 ] 75 [ 818 ] 77 [ 562 ] 81 [ 511 ] 84 [ 511 ] 88 [ 307 ] 91 [ 460 ] 96 [ 422 ] 98 [ 409 ] 105 [ 332 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 125 [ 562 ] ]
endobj
11487 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 451.023 null ] >>
+<< /Filter /FlateDecode /Length 24 >>
+stream
+xc``0L\5cU,
+endstream
endobj
11488 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 440.065 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3877 >>
+stream
+xڭX XSg>1QjSω*jAm;:ZB(n $$! !OB@$laeSjjh8u;˽tpw枀VۧyNNa AAx"j[-WܵG(\&l4QK//IĿ'fID2z<ZD3k] ϣWKw?8p;id <,BL2P\Ƽ5k"IxiRγk<L`"gs8'21/8Nd8gW8g(>ㄊ$nz #JpsrlND#^ΉIesrE>pln
+'G•p\ֽop^ d0 p\NT*~ijiNZH:&{`Ձ^soFKRNHIJy"If`S(=+yyY,EV"gZYd=yyٌlCv h$ُB$d"bDHdŦ?Ł!VFcl32K҂Gy(`}1S8Ygo6s
+n{d#!}/E'&=0L.e;@Wh4o*;yxh{ 9hY0[|Ā_)&5zZn8j`É~Gօ4x}d]oyQ[lvK1aQ]w=zcQWZLto/B- i'o\uPy}
+02`qu@k v \r ^3ߍnUϓYz8e1ՖS ypxOmպ%FFKmz$+:{/MwGpPiR5y$
+͉m2@{Ï
+P%DH9 [>Ǹ8
+sb lW!0FiAs8
+H
+!٬zN~ElǟƋ7Ѐa]L^琽cgq'?kڱԾK˨}5 `/^_y4IF%zr Ð܀o0'$P2j= " WY'g$4\#T6kUc=s*$Y7Gajf:~ΪuJ-'7::Ս;Jd^ij
+T%di^TPG
+*,DL--'9SjūqTQC^VÍzSx
+}@*M2YKB|!5UrKԹXJcweN?PYk{ƦρPot(1;9t%j́7CQuSSx$5) j#q}>p].S7@0?=nL}իn:OX.rzG.[=ܯoťG[LV
++jn;˥\0kue|/넥Ed$USL'JaCQr0նj?p
+o>Wo\~x]<Ȧ r"?;>m =-oJAmw48[W!_,
+XqZ֐b\XT:N6ZZ; >V lN|7$N0 pњ g9NN%#घ?黼hmtwDmaߋnl\٠NK)¬CsCG{[܍&:X8KE;"NwY:: S?(/?KnJ쓑(SwVa&ޅը4ٷpk P֓j_?iu>zJk0||.Q8m\˾.XcMhLmomNNNZw-ĠfH7<mScV00R&>>\ CAcsIO1OKK~u.ޚGpɪuء["CXI42)s:V=vDt$F]款P}?WfZ0:7S'Ԗ!}(-R-Ʌx\`Dž/㤣ZF3| Ths4諆lXBfEdmŞ?+|Tg[[#n=}o9ƀk.T`5`vWO(H*Φ#,|&:LQ3G;ζnت*
+ܨؚKsaMDk/Tyn9'FM/O"bsI(+75ceqMKCQ(Sbj "Go5}I%x^S6!j2]cmdju~ȶ>~[S)0N݀4
+OBOB| %Wlt 8:N=Y|zxL
+? 30.o ey9/i~ǿ5#X<93c1}eZzn2YG'ֲ|
+endstream
+endobj
+11486 0 obj
+<< /Type /FontDescriptor /FontName /OHWBCZ+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 11488 0 R /CIDSet 11487 0 R >>
endobj
11489 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 429.106 null ] >>
+<< /Filter /FlateDecode /Length 509 >>
+stream
+x}o0WxH!IhU B"M{ "'JlN+UcH]Σ/op=g[K+)^&VTW"EjvO쭭z6U$Z/'-T{Wsl82j_gDfF9veXt97<kՕ &% VxL~eeFew׮*:dk]^`i> &gwi3Y?9St4fFEElbϕ>j׆X8aY+BR[33>gSp1SV(ʌi4ǎ1(ADThQRO
+endstream
+endobj
+267 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OHWBCZ+LMRoman10-Italic /DescendantFonts [ 11490 0 R ] /ToUnicode 11489 0 R >>
endobj
11490 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 418.147 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OHWBCZ+LMRoman10-Italic /FontDescriptor 11486 0 R /W 11485 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11491 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 407.188 null ] >>
-endobj
-11492 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 396.229 null ] >>
+[ 28 [ 500 ] 43 [ 444 ] 50 [ 444 ] 52 [ 778 ] 55 [ 306 ] 64 [ 333 ] 66 [ 278 ] 68 [ 306 ] 70 [ 528 ] 72 [ 278 ] 75 [ 833 ] 77 [ 556 ] 81 [ 500 ] 84 [ 556 389 389 ] 98 [ 394 ] 105 [ 389 ] 109 [ 556 ] 112 [ 528 ] 116 [ 528 ] 118 [ 528 ] ]
endobj
11493 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 385.27 null ] >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc```dX5ŏA
+endstream
endobj
11494 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 374.311 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2789 >>
+stream
+xڝWyTSW~^
+yMKDk0jVPVQhH d K֗¾a (uWĺRtj]e:v>fμ`NLcy&~^xmk#6yqyF,V(S fKFf:D20Y@o |кG>3=6 oş0ޱI)hoLO=0C4oo:o%, ]JHOMS BCKȕ!Ĥ}rr_:(K&ׅC(M'geIZ4qWlD$SL2.-]I}$H%JI2-K(HU\GT$L)!IR)i*UyT٩!rE'}R ^!r!\"WUbT3mo\( OD&KdtU=Ӱ", [^`zl#-,21U{kM*:=y >ƍ'<#c¬ P?cиQ_OD&/+,쵞0_'߻5;"50C״ t8[*ig@mVj fiᗊ+`hȩvHH2$+7!p@Dh,OO
+0kDQ2R^k! )`˲chqDaMxeAa,d@SW$NWz;9O|:
+P7ESN~$X˛NOU*vp>z<,fAr9q rDH?F7Q Kѯ
+en%<852T<ØI>g Xeze/HL'?:,O(P0qh9EaS56Hcч8Nv<t ~na^]WT:u;lnG]}Ix5vL8ћ(ZT} g`fǔK"ޏÜnOD+H" -'a4we0uMM!!<|'jet\:GV8:V!6xQE}5J&Ѱ!˷QO(W.^t*N6kaȳYz"9Z }^dq)
+Q:8DdRA|5Y63-|xmip2(9H N05"^_\Z.fn0*dgy_鑾xqah3p,6={b y\C>׃xg &a7pч='N .y,EK& so!#=Q*.+FwmnEXֲGK32~dfc]1 FޏBp7.\W,10-| Pܟ|tSm%4L(CVWr.X87.{/
+G"&3T^-oە5C8M;N䒼f*ah8~{;JHv,Ux'/
+۸-
+"\&%xhuz (cc^nva+/GϱBAAh5z{yqYt<}73=%TtfvK{5/ z^ W|PTA6}7J kJuA=#bK6V~ #];\_JjYbry֙LPd*3l6
+q
+q4cgq`kl!;'ۉr>/׎\Zq j\i7:"ѢZ]^y
+^F'9׏]/*شv%:g+c;m(Eh.p~X0'Vp[s 2L!q\FUI:iReNM=`uVO5
+7e3͖ H(Zf^h5@(qcCfSn&k1L'KbS~Kg. B}Oho8qucԔ2ZEb EZQߕU-fTbU4idzFo6EXQL4eo6
+@.XmZQԐSsAQ^&<Nf= "-9v[k]FA[FP+2tJ(M= x D2~o=7 ]<ŞKl jl.~8<DfvBF4MWج~n
+endstream
+endobj
+11492 0 obj
+<< /Type /FontDescriptor /FontName /YGHLCR+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 11494 0 R /CIDSet 11493 0 R >>
endobj
11495 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 363.352 null ] >>
+<< /Filter /FlateDecode /Length 474 >>
+stream
+xڍMk0C =nK04NkqXv4
+l!~%BYxޙwf̾W#WGWf/uf[ņyh@޵b2/m)Rf0-YO!
+\痽jkY541 pZilȉՐK %H|K)/$/TfhD$'!'G7J' fF߬sե7ЖDYF_7A9h!d~SkuEhݽ--6*f>3H9w5]3k~
+iiE0zZRO Ɩc=楏H)@*['Oi53B;$tH=^2ȶiΗ NX3Ú}sw٠=jI3>e:]HV#c
+endstream
+endobj
+266 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YGHLCR+LMRomanSlant10-Regular /DescendantFonts [ 11496 0 R ] /ToUnicode 11495 0 R >>
endobj
11496 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 352.393 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YGHLCR+LMRomanSlant10-Regular /FontDescriptor 11492 0 R /W 11491 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11497 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 341.434 null ] >>
-endobj
-11498 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 330.476 null ] >>
+[ 27 [ 796 531 ] 35 [ 590 ] 43 [ 472 ] 45 [ 295 ] 47 [ 590 ] 49 [ 723 472 ] 55 [ 325 ] 57 [ 531 ] 59 [ 531 ] 63 [ 590 ] 65 [ 383 295 ] 70 [ 561 664 295 ] 74 [ 973 885 ] 77 [ 590 531 ] 81 [ 531 531 ] 84 [ 590 413 413 ] 88 [ 295 ] 91 [ 561 ] 96 [ 414 590 419 ] 101 [ 531 531 ] 104 [ 767 413 ] 107 [ 531 ] 109 [ 590 ] 112 [ 561 1091 767 796 561 ] 118 [ 561 ] 120 [ 472 531 ] 125 [ 590 ] 283 [ 1063 ] 499 [ 502 502 ] 502 [ 295 ] ]
endobj
11499 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 319.517 null ] >>
+<< /Filter /FlateDecode /Length 32 >>
+stream
+xc``M Lޖ7ٕ_G0
+endstream
endobj
11500 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 308.558 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5373 >>
+stream
+xڝY \gڟAD:cgzTjۭ֪zTUG B8C}KPmmnV[Zھ/ހ=~uw Hy_ĤI@ x|>i[蠘ޒ%ʃgs+"'<sB^: Mvv4f==Ai4ɝso3}]:sG8;q 1&$pL</{g*b#•eK._8P%DEHbKnnQi,<H*UJwvKd ҰxEblBoJ%?erYPl41f,^ IܾCNn$Ȥ^^RiL& W*c_\D歈[c'8Z^^_ږy+(x~2(B[Abdb$4E,!!#V+Ujb XOl 6-6-bE& "D8ADD,G H"D|'x A_ˉL"S:.'9M!Z)("]H_y{'ɥh
+;%n)w]\?6ۭ N68gzнß6EJ%<_<yF;UQiO!7eZ9CTZRdmvC c7EIV0iPj նfP`*e6Ϣ":(H1Vp:ȍfZG`HNգ2lے3dԤPpɯ\ף뒛5-MlS03g_m bRETshX=KeLƿphàjY".7c/&֍ijBY ?1>rٳ/9ha(T<|^Dh]b 3ezG2{Cq/Y
+*>Qyt-W[v6xvͣc,Kf*)MM~MQg6/ O-ArSίoB)n;K)$
+pU3S{#b:K 6X*jut%T5:AQ G:0 AO;>|FRGj}䎄Mf8wa6+ X%D4v&pG5'w-] lgcuHmFpcmv8 AoF=
+{zA =ON>Ӊ߯طEɿSVnF¯< WG F-֢Qd#yݐ)ƪI6ӇM)oc-
+D\ERR\;HЪǹguw] Z 62R7.{.~ ֓rQ\ys<0 k~>:9= zfQ;O{"mgAUގ^9:8:ȟf Y²8)A3}@3[IƐ(ИQΔJKM,Eczcl=Hg̢N~:4$X)&V"u\WbS4yPk: KvUĘGo.Xf0SsZlnXYw7܅_yݥ)!\2{ z IyA=}DZ-`e۽FnSV%$d֟ pd#ٷxL]g"K9+; My-]Ċk \K*al7 t 8z|."tva!% en" Hdv5w$r]'#=[܍p'>k ' $B~=\-5{lcِ] wl-rcxbCM.G.;|
+lv Kh'lSߠefϓTD+}l d.c+HjC4OD}pQjܘENv^`^| 0gPrÃ*{%1XD-p  gzm3g;+E4*J#]z-*$kɗPw,4./JFMcϦy5ʓ"Pj+P@+"c-C'XgO?vI~R!tMj·.?ȡW^HRA8vK讃M#O>;.G/Y3LI#FIl15VY@
+pef+iycZmc]cJm6 Bnzkd^#C~{\݀،}NS 5MVl6# .:Ɗ yzjpِÝ3"vBNH|rle>01
+v;Q#
+(IYfqzjZaJf|^YViģJmW僎H}zeT;+V!&&P؀gcUd8H{aazQe䓠PZgd)i0Ы!T|,Sp:]޻lԷ{.9+I6,…vWxq./ ^uVm,Fo'g)GGr ̓l2jzl^sWTCUVt+gܙpȝ"W)USo5;a =frAS9<EYt4ωkkP+ye |@ſ9M<s=
+."r-=|bb/˾[/ ~'m,?`c?ء$Й:M^ FQn(taP}~
+.BEͅ9Las7m/t{x$. e
+8sACI+mMHT)=C#?Yb;9/6L~_w:d3ixa/-Et z]a}@9rt,:w4NBQk6`/K~ȸ_/HүXɮ>Ɂ͊'ˆRVz;;'i]Z$A{ kMLG)KkB`/Wv*paVׄe豬|,3u: O(|[[΁&gQͩ햮Ӿ/D{EN': _! q
+ مaAF4`|?m(v9m2g\z HV@EqQ}c|d:reUxLw\]CP`2No%d
+endstream
+endobj
+11498 0 obj
+<< /Type /FontDescriptor /FontName /FSKASW+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 11500 0 R /CIDSet 11499 0 R >>
endobj
11501 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 297.599 null ] >>
+<< /Filter /FlateDecode /Length 584 >>
+stream
+x}[0+$!sa"A
+q̑
+ %BZ@OA!B)B~
+tWA/"VT$$u$u"܉w"xح9IKz-ng{y V(ŠH&)nv<g87n<UZ MU^(Ye
+endstream
+endobj
+201 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FSKASW+LMRoman8-Regular /DescendantFonts [ 11502 0 R ] /ToUnicode 11501 0 R >>
endobj
11502 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 286.64 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FSKASW+LMRoman8-Regular /FontDescriptor 11498 0 R /W 11497 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11503 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 275.681 null ] >>
+[638.9 ]
endobj
11504 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 264.722 null ] >>
-endobj
-11505 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 253.763 null ] >>
+[ 28 [ 510 ] 43 [ 472 ] 50 [ 472 531 ] 56 [ 531 531 ] 66 [ 253 ] 75 [ 844 ] 77 [ 549 531 ] 82 [ 531 ] 96 [ 363 ] 100 [ 531 531 ] 105 [ 384 531 531 ] 116 [ 490 ] 121 [ 531 ] ]
endobj
11506 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 242.804 null ] >>
+<< /Filter /FlateDecode /Length 24 >>
+stream
+xc```08 S
+endstream
endobj
11507 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 231.845 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1902 >>
+stream
+xmU TW!LkL]€fpfE
+>+Xh\Z(jROO9ܳg{㘷7x@BmJƊ`mbd
+I tRa0!c@L JIʼ@@?0 ]@.$~{&Ȧ`>^` K2﷣BC# ,|>cgs*.^h[Ngs*.Q%⬁ 2| 3r|Wl-V.b..NSq+g7[bp|[<=3lְ7Yy.$<lsj[qlS>Vu['ڳ/$.9)#DY$)}VjrNtW7L2[6
+y7 2LlX0cQl,K$, [13`1#f$b:y-.^wxIxJJvKy~J,#ʉ\xt+L~cAڕҙXSWzKHM-P)O<A OIQ_”{: i+
+*ϊЉg]1{yY"^~
+ƪ[-X unz.c5 mf`@)Kp憁哉s{hE,{#=|jK %Dq#vC4,Df8) Ds]Z# yGU%B| _\!%r8T~'ܠN%N\~{NJ>w#W̉J2lkٮt}ʱĠ r/ %7 ȷg o_HzBwpz$+uI~
+/`RnmoB PCPTE*/;ѿ1 .PC}q=<}K8:Y4 _[ iyٝ{w94;}4ghcV&,s#-'[2<!?ypuCzܾwRȿe{+h$&8+|&OԤM10Sgn})3rV%v5%vnSQ2'N#"…m( DMBQh
+D3
+zTF< H0B](CFȚwh%&f۬lvek 0xJ^ǞMQMi "s֖nN kro{r@ҨvhT
+endstream
+endobj
+11505 0 obj
+<< /Type /FontDescriptor /FontName /QALPTW+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 11507 0 R /CIDSet 11506 0 R >>
endobj
11508 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 220.887 null ] >>
+<< /Filter /FlateDecode /Length 453 >>
+stream
+x}n0~
+"RH "4I%^2%jgK쓌`#>J ؗZ#=p6/UC&} { F}{y nmdwg /1v#q}
+endstream
+endobj
+185 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QALPTW+LMSans8-Regular /DescendantFonts [ 11509 0 R ] /ToUnicode 11508 0 R >>
endobj
11509 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 209.928 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QALPTW+LMSans8-Regular /FontDescriptor 11505 0 R /W 11504 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11510 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 198.969 null ] >>
-endobj
-11511 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 188.01 null ] >>
+[ 27 [ 850 547 ] 32 [ 563 ] 34 [ 800 625 575 ] 38 [ 575 575 ] 42 [ 813 500 ] 45 [ 313 862 625 ] 49 [ 738 513 563 ] 55 [ 344 563 563 ] 59 [ 563 ] 62 [ 880 625 375 419 313 ] 70 [ 594 676 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 112 [ 594 1162 813 850 594 ] 118 [ 594 ] 120 [ 500 563 ] 125 [ 625 ] ]
endobj
11512 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 177.051 null ] >>
+<< /Filter /FlateDecode /Length 25 >>
+stream
+xc``m^xo:
+endstream
endobj
11513 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 161.111 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6294 >>
+stream
+xڕY \SWxEYθպU[\*Z;v%9I}G6%qkZ֭֙괌~3wδ{sQH$rYlʭf߰)&?zc"m#9a<%L 0vWbqxɌq %B0q"4q0)=Q.K}O dY?n1a! ̲/P,TQE)k=<h0hE@Pd"&X%h"QR$ƪfx*
+
+T$F+BܼEX7(ZP(TAAЄ؅^^ !1!^d+rhvoXf7LHJP+"U῾- ZLKDj5JMܩIyQ9<j>ZDJ-R˨ZMQ /DmP{(%OPTJQTIEQTOJM%QTq yBbs=J= s=/W$Fz,f >]9rnqznjǜNuQ;GatK/:q>#s=rwr?OXvQ׵7m gUdo[#q΢qYNߧby:R>`\A|>JdӁQzx+cxs)2
+{$boe;B_<9Np8!vYVaŹ
+ϪY֢䡅o('Z߱JGDUl;%hNԼYB2
+3uUҁU rB>s9Y 5]?}]~`<4t#vdeaאG/yHn|;=":eAhq[j&<zj
+†()W>u wu=C6>j-鯽BD`#M}뵨t
+c]؞=)dg!S$V{z]OP7zD|HLv&Kd-b ̤eWm^DȏeZكm&s.M~"#( "<0PcoDրm5Va3J_\@ots9
+/HWpI\VQ^z%iP0x%]\x-*[ɖ#khz ]SQ]X#liqMF^;xC Y=UH;)UHHGJ(jVAL8*`,%*AlɎ1~]o?!۵~2;8big>RIF:ǺX'7d,#[^$ q>YcHfo_ j@YGpHC3q־"m-[[TVabMtb [-cxPCˮ=2a;WEr_^۰C`Dv/~BYv D}x1qy(q[y猐{dpX9 (ye0LV*hDfDA%.gořFC%یx6h4(LuuPbT/T_!ti7hooߒ=x38\?π Ba L;*q*f,0Rp~N.^zRRڊ:ئ=+/l,y9<G?rӦBNf_e8}yt m] nvMB1Sq<V=
+Gna*}-;n}wމk'?m~_?b4ƉPT"
+p$U bz=Ƴ񼹓 füÎeP9vA0!b]SuVݮؘZ~j)IL!88M"u˰飓ýEFLNĿGw[Y_!4Të4,˟y^x ɲleoYcHoPy~Ym9Z RB' T)+S*Dro#5؏.bWbEm#d29$.mϋTǰtW𹽺0ee<d=+Jd/
+cMwf5a(q5qsw Ox)xʷE]0B |a<XH> R.hyj&ҿ1lp.=KXRZZ,'H5z4aKw|>x
+vYêQA} Ue[,lizNqO=Zi ^kv g,:.PXћeuoe>4vE+M\i8+jP\=N tyҚ6
+#2F'vyBxxUo޶Q ?`Ly!(=$ ԋCOGuxNj08tl*]8D32B}L/ H-!riQ]T I^H_/f~Y݃JZ*Tq*&J\ZL !`yp88 ?` gxf^ƞc]|P~jL,ҚyR{_‹W?~
+ˌhѤuKt UsE8' 6|NXLgH5W4k| _J D J/׷h\2+%^m@ #e-DEG6qp&[dO>@NJm!qg'/~fe·nu0܎0MVߎ{r_/+><_pmO7i,Nt_CE7'**WD
+``"w6iy<a9_J +Q,x46,N*555%<, K>dQ~U4^5h,,ҋ#ĿFz&JOVDAl{ L !ߑx)6
+S̺F\\SrV S/+/!YI\Wl*:6ktY. cKFD|-?Wb%;|9.}Rsn*\7b
+g%""v SO&KB"By_?% '8m4sqm=vXo#XgҸbPU,q=`c ȹovO %!qaӑ)W>!_ƻpCvfAAh8}|!ۤu|e;YPE4> Y<vvm|$6nXWx1(A
+ĕ%wIkED"O}lW͝1Fi7'|B7DX4qzN7UߚmHW$O1+'4_%ڦINUh;xa Ute0><cU,w0V/Ӱa`J^fzt^l~&*MER<A/**,LҰ u # -2n93-vA"&51ZHR5;w ,1RtSExl$4FOSrq"sp&dAzZ!YiQQFU ߒZr9qէōlimhP[ܪ<wXoٸm>'e'41C.i"8F6:Uu]l:za{S
+#҅V-EPmj{9Z`N==ʜY!ženH/qD#Fh2tt.<]TZl6:,o
+endstream
+endobj
+11511 0 obj
+<< /Type /FontDescriptor /FontName /BAREVR+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 11513 0 R /CIDSet 11512 0 R >>
endobj
11514 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 150.152 null ] >>
+<< /Filter /FlateDecode /Length 611 >>
+stream
+x}[k0+RSB Wl/$c)YC,yȿ_IgB [Hɗ͜9cycΥ90}Nuږ*\M0LyߔJ}ܫ=,G*Րu?iΕNq}A s~ݙq.E;s_1v7|Ov/,~rij7[IO-dG'9&'ښo]>`:e v}{{+U[3{fMsQN ٌIu7oE 6Z|81ĖF)J5 xS& _*+/l(♧'J"O 3$<K$ Z樒НЏ61b98 teN@Tu*/(#-i!NdВa Z8B5I ApAg~9eq"(K.?Ais얣 B)P%v<Ǵ9p^a`a])CA]2"4-=pP@3/ /دW+$_uﴻ͕V_o4WBu x=
+endstream
+endobj
+183 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAREVR+LMRoman12-Bold /DescendantFonts [ 11515 0 R ] /ToUnicode 11514 0 R >>
endobj
11515 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 139.193 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAREVR+LMRoman12-Bold /FontDescriptor 11511 0 R /W 11510 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11516 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 128.234 null ] >>
-endobj
-11517 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 117.275 null ] >>
+[ 27 [ 525 525 525 525 ] 32 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 61 [ 525 525 525 525 525 525 ] 68 [ 525 ] 70 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 95 [ 525 525 525 525 ] 100 [ 525 525 525 ] 104 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 118 [ 525 ] 120 [ 525 525 ] ]
endobj
11518 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 106.316 null ] >>
+<< /Filter /FlateDecode /Length 25 >>
+stream
+xc``_|
+endstream
endobj
11519 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 95.357 null ] >>
-endobj
-11520 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 84.398 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7575 >>
+stream
+xڍz\W8&bƂbAz[XX:,Yzj;V,dILiI.y|IYv;w{sselLD"vXϰߘ;kGBn07EJxE$!g$XkLExԸ~BQsȆ`f:56Xe:2B( {Wd,&)/Λ=wa
+/O弹sezyhlKٖd5mep"C!z}We\cInnAnn
+K-^,gͲ rsT*̙ -Wxq'sM
+nֺw6ϲ~{mkg+UJKwM4&UfRQ%&U!ʒzHM&SS45uj:5I͢fSs<j>ZH-ޤSoQKrjZEYQ5:j=l-eGmޡ6S[6ʞN.jD)ʕr)Oʋ|(_ʏT
+Ϸ/x/ ]r=ɏWkڐ ƂڵqmU\|i&}Rꪕ|#-HUz|{Mi|`j`甬*TsUm\1,ӫص EO+eQWoPw(c3s9JfU횥. 21,~ 523PxqfشE֞,oa {-K EbZTH3z[^yIǷz{juz uq^T* T$%p ڌ☄Pi2;4knm[KGZ/[& |#qN Ct.Xe$(?a|\x
+|<bdLƓqjylB,o-1C^'Qxހ׃?m`v{=ԥc'OlYH@@_ RGǜB`)ssIQ}|:*F_5F
+|1i4XOGFG_TysU]v3fh^9ӂX+^:#!|Y9W8z!${KͦCC|er8>(í;c垏ΠW.\wed&asS`YhdxX|f\F"^^-,)+ `_))<=yJI Ʒ"Z8@6)4j'd[PRaߌՕjLBREGɲ+kIŢ\Z"K.}CGzDH]iJYbhb_mZ>W&xďw<.%i&\a4q(HvRI#ҡ V$ST[JWm>{xğSR~ubᲯdg%åMa DWC<I0ִwڇs7;kùF3>#S?'ᙃ֜z r:JV25U+yTz’ ܅txz]ڷ HhUpR/,).! &
+F};eXmF 0LylΏ:1A6q (:QJ[_i Ȫ՜"VV[UtwW'ǦLsPƙ0ah#x ~>n
+__GZZj1uk:V[5;G"F$ĥ%J#Kt#[Ҋꠜ(+ .`!LvyP%\uoT0XBOx< !;]x<625zNf1c<((d [<nv)/â311xukhjD&>(Klxeڶ9.^=ݺyF6{dv т+N3<5lTNh,#;xX>j7ܗWD 7 q4(SHcKu9icPY#y++$K"xEK3_WHܗ86[w>'=shw>؝{7"}qTZpҚX;۫c:I_ɇuaą XV]pAx8LU|!H3w(`{,'p43/H9 mX|* ޮV:e
+?xix$Ǵc ס50⫗nw+&XDiOuPC>VmZUONv^>\
+L%yx8PSgM2J9y邴и1Z.˫ )[ ľDFX7{Pt@G ?910`ǹ^[G,]o1MbX,#: PK"GrSai|3Jsm)%"mB`V?aN .Bd>l0^y<3+?l("{xr5)ߘ{IeeTJ!~jşc1vEiWIuu{rnMBr:()-4*XͧJZdaʎ5lؘP ^b
+I|-Њ蠞l.`,s1-YI4ڮ+1Uƅg%$zEf%2l:˰5pᗏ5Tr|heaFq5|wͼJUtWu[0(![`kT-cwyC0 ³bl֚Uy8FDFŊ$rJ _@e{ٝ ('ڹ Z:>O"K3Ӌ3Qje;=3oU)UfiLkee5M!FV''Χ/ f'_<w
+ciiV?Qw`%*z@/O %ҜQ"T1J%(&DǫʊҼ M^1p@][!}IOE_X.IBT d:=g_:K]ob  (юxzjO#B(NI ^*M@Wt> ɥ;rBC]A?kaAZwzy16CبgnӅmL3xD&GSBP B7
+Sq}s9x=_cžM}Otw`L]xP/JK /p,1ނ+~c{g['r 2HNHIvW#Fc l'Y{um=c&Y;FD6HY|ƋL1'̀_tF%P}'`8 0lhKl%AӁJ`~hBT>p$SA <zQ׍%Fg?jk":7QKɯ Gt5uJ$هXO21?M.H˓V<--j/w &/F$">H",Է;6%9*Pm1jDitPmRd &* ꍒ<ꗜyށI>3:WY䖕`]P(+*-2 &@Z!M.t
+E=$
+>pDl.#0h 9$£▿6CДpYYeڰ@EhO-HlhGxWoT"kjԬ*޼SoP}XkMT87
+p*Sfbf: T{M}vKc0ݺln=~rK+
+GsBfuκJR:2
+OكA|lKCrԅ|4)
+L_kvH\Cx~@W4Gu,*|_Yc!9gv㖹mC3=ONl3`t\!BV[sc=:$a>#CŖ{ ZT<V{@A:YueiC?Mip:/)<7<!9˗[8<sF J
+Gm. ehղENYā$@̔4&~@2̆ȹ!XZIYZZLߏᰅ\]|0FܐɝG=/wP5`4 f|Bw[/0k[ x /U1'Q\g';sn+x@I}rL7Wi/DRe0gg8VtBw
+P,XjRY^,!`M(k>tix@C]ZGCIY\RRRb4<t,%?#Hƫ!1~L -k6զK }ߧ$8!2:u℈4>^V^YSR׉sJ5| {B~,[dw|7ZcrF9
+KA-wW/һ<`ΖUi!.mkR?_ǁ,~H彵`3>{=J ح5?NOQ 1vWQV%tuuQU5eʼn)6'ଇ_g@0HH5ٚKCh&ٹ [6m{`E@.++'RZT(#}}Рq_<yj)$z@1)o[uRV̨羻 zשHt}l-{k{cl^¤"u:UrGݽڞÁxX%?BL<={ Lxxa%o mi YB
+y9I`12 />EƭWwV&'PR[r}0ނVկfy
+ z N3f _íSWzԋXLL3U/¤B 7 !fRaVepOH v/~!@k@٪j}&}Gi_ãB{9C<@_ #{HX\XNZaּv abochİ_}U*fCE? Mx8>7IHL3̪r2x< <,Ё' 9žAbPS앁?nZ7S\U(
+U?`2X=KM) MK zUHIWg%
+%W8<O3<G4 ůa˗0x ݻ{u< k 3
+EQK%5-.4c:7~4[eUffUgh*4[MGc_ R
+endstream
endobj
-11454 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+11517 0 obj
+<< /Type /FontDescriptor /FontName /UMWOIT+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 11519 0 R /CIDSet 11518 0 R >>
endobj
-11523 0 obj
-<< /Filter /FlateDecode /Length 1049 >>
+11520 0 obj
+<< /Filter /FlateDecode /Length 704 >>
stream
-xڝXnF}W l~"('(P'zHe$"Ů`xK]\U<zD<3sfU|Eb8
-&&o820͖n4CFLI$l`g}{X@L##%c4)fRO;kiĹJ!;yk7*vo[{5忟3:<H#j04>{FbHI4*N?YJCsU^.7QU]m[l/]Mee> "EeY*x
-ܳv/|UwK߭@Uc]\n{gGscAz#2 FE
-'
-cpaGpp,2'dg߽]]olhCJ#*r |(4u}ReCN^Srٳxq  Rjı˂c zt5*A}CE9uU7[_XR#L1\Oi\m]b;L $?\o4'qB#ft
-_T] r bHqŇ
-NV%8<DKPUs7u/H"µHX4NEz\_4 Z |u͋yvNwv!18~#0~ȸe_UNn){T4lM)N2φ͢ o
-xԈ(( (o 6R4-1so
+x}Ko0EEvıVVBJUǖ&I~K+UAqώZW6wtiY꟝+\qnK[+׋|6wWXswzp2#.wck9_qic9ZG["Lӵ]YWw"RbZ.1so˪hU $E|S׻üx,F~SH}mڲډ/2>cݐGh2}7'Fec֧Ɖ4py]T;}Dk.1m _oԹ)i?Y2 4 dH@=ҏR{PY$( 9Ift K2@7Ƕ[Ȑ`F\FYz8~?CO!_z*e!OqN)N?  F
+h,4e4BF `P *!u
+fHmHLMbj$J Yb75`HpPƮhH #K⮠.~)K~)izȩq rZrj8$A23a ~O
endstream
endobj
+182 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UMWOIT+LMMono10-Regular /DescendantFonts [ 11521 0 R ] /ToUnicode 11520 0 R >>
+endobj
+11521 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UMWOIT+LMMono10-Regular /FontDescriptor 11517 0 R /W 11516 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
11522 0 obj
-<< /Type /Page /Contents 11523 0 R /Resources 11521 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+[ 28 [ 481 ] 35 [ 517 ] 43 [ 444 ] 47 [ 517 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 ] 59 [ 500 ] 63 [ 517 333 ] 66 [ 239 ] 70 [ 489 ] 72 [ 239 ] 75 [ 794 ] 77 [ 517 ] 81 [ 500 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 105 [ 361 500 500 ] 109 [ 517 ] 112 [ 461 ] 114 [ 683 ] 116 [ 461 ] 118 [ 461 ] 122 [ 583 ] 126 [ 536 ] ]
endobj
11524 0 obj
-<< /D [ 11522 0 R /XYZ 78.37 808.885 null ] >>
+<< /Filter /FlateDecode /Length 24 >>
+stream
+xc``T \4%aA*%
+endstream
endobj
11525 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 768.832 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2491 >>
+stream
+xڕV{TW!LԈHLΌVk 7T/"0! @TWQ EEZk)`L+UK۳߰7g==s&w}=1q!!24$@̜eN*unF-[-4Jhn9چc+D/Jg$B;2'+1YlJߐ,.ܔm0sc0 .ħb
+|J{$t
+bQM <DM1Ҏ%6tpʖ-6.p/ CY9cAu[V흟^ΟY$hi,wL>?Td)86MtAJ\wAxݎ
+Ɩ;Tfc#ferd`-MPo_E'(#};_OPnTOC6)]xMFsx~xԏЗ 
+(<C\#N+4Ub<L4=@8̾}oMT2͊wD, EI'cӨ%#{OU]'h3|~G6>FzA0`o[G#@';]>L_IVSHlB\il)FįZ@z\;2dBRBߑ<Nˣ$) +2K3nZ#lz3ț~Pliږ+=>&+ί|d%+YC>_o8Q]`a1/R{=c<A'+JEmڶ99z?5V]d2҇EIَ?E-0hQI/m[g{*fSd {F/y%wtm8f[0<hJkf澨c5<[Txo[pY.D[ ČT- Sx eMwF B\/^ u8q^T/U*aȸrNkQR;Uٸiɛ ǿYhh/%HIpހ7w)Zc;:mD3}2Ɋ|`}432^FfRkSYpe57'T{)5|ekBvCOU ~ b@  @"49dgehz/8 3G/\Gӭgv^3/k%E'|R^X&"O#ba4;
+A ~Ǭu)uHVȨ<e}v-.S=y|X̪?Oo?hs$ez~ Hxq+]$~dY=ȉ<\iU?5CYwJZٚ*qlu W'vkzh4Ƨ@#渶iӒ۰XܶhcqgL{M]Bl9٭MuOv0-t8滽 wd[lmJ+<@%,E @D}A7/66Y͵v[(9ḀK7eG϶~y%oJLT煍aBX""kp~;)`/f# ư?l s1&.N>Bɢ"
+ᢓͣ#-߯us.u}r@WsTV߶P|᢯kъH@BZfq7/Z u1a;?[R7'
+8xkP:LN
+ 9"D.Ңը HA(󠇛o/mri`D쮊^"XmQQٛޚ̾PbWCsi%Ur7smisVsr}o;TPR\G%LOq}fi#W8J"^^@s8ao8 Cc3\$ӌgGE%Hzj+*+s~*t
+endstream
+endobj
+11523 0 obj
+<< /Type /FontDescriptor /FontName /XOJGCP+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 11525 0 R /CIDSet 11524 0 R >>
endobj
11526 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 757.873 null ] >>
+<< /Filter /FlateDecode /Length 502 >>
+stream
+x}ߏ0+z&KC.Ye_=)<f;?:|R4GgJ>k֛L j
+ˆzT&v=Թ<5bAzuU?yN P<O1L=ziJGY L֪>=pmDC,7Jyo@S'@'D0o&TF(̴Ibi#mfiĐWKt* ɩXQKi"%H+ i5<D"fg`v&ɰ{`CDg챋 '&N9M읹;v˖n)K)S3nv_|PJ/]pAfw* ;6?{yƋlh
+c.
+endstream
+endobj
+181 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XOJGCP+LMSans10-Regular /DescendantFonts [ 11527 0 R ] /ToUnicode 11526 0 R >>
endobj
11527 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 746.914 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XOJGCP+LMSans10-Regular /FontDescriptor 11523 0 R /W 11522 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11528 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 735.955 null ] >>
-endobj
-11529 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 724.996 null ] >>
+[ 27 [ 750 500 ] 33 [ 778 708 556 ] 40 [ 278 278 722 444 278 278 764 556 ] 49 [ 681 444 500 778 278 653 306 500 500 785 500 ] 61 [ 778 750 556 333 361 278 514 306 ] 70 [ 528 625 278 778 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 ] 91 [ 528 472 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 112 [ 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 199 [ 778 ] 283 [ 1000 500 ] 499 [ 472 472 278 278 ] ]
endobj
11530 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 714.037 null ] >>
+<< /Filter /FlateDecode /Length 36 >>
+stream
+xc``(_7
+@'
+
+endstream
endobj
11531 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 703.078 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8374 >>
+stream
+xڝZ\߿.zw8]ժh݊e/+L0BƓ၀ ޫ*uX罀Zo}/ =y",,0H4tڵ&^!8-h|dnaKH`0~gz񬘷@c-V]h0\1LT_xa F
+Ϸm>j f aC1{)"DD6"]vԩ3Ą񍰝>uI׹v+<wٺyڮ]cg68J8v\p[mF-pp[`YHx;ۍmm0
+
+<67"")S"d>va>S5SzO1nR'^EDGzzzE
+  t X+(bWD &0l6c$l2fMaӱLl6>cb "[-b˰
+l%
+[bۈ9a-Vl;s\17<1/va~?b!X(c Ģh,x,;/ED~=!+llE .WhS?-fZ[%%g+#hGɾV}XVV`ښr8e YnғaТAK-- C ;?$H_f?r.{϶sa#ō?G9>5c`ug2V%tYrtx~:+S)XSNįzHpfks: |@rMƵJBI:&7~h̑"Z5c9XtѦ:rD&Qa
+@wm٧iZtNJتZ>rs:MlQ}ZhpWf(bC i^v.P >8&%rpT[Xwʍގ0ۜ6A
+W6^dvN/@
+8B4mG >;_*TeB"*71ɒ85PمOJ4Nˠ#9p8\z!Ŕi+X2;_p
+B`b%qmss'=zA6?=;ym9x>gytb2>YEE/vP|εq,*"9v쟒:YJzwWH<*rKo`W@NvU>jLx
+#H'mvYkx 3B6+:<ė
+"tJ@cW%[NYC[^Lj>-bҖ /&=jAMqpvpn4џ&x֝2s2':# 㥹 +AIJDZe/<{/@ѽhlYD,R SF-G'Ay4~ Yh)l6D{;b~+MdRfV&zӛf쇳oN\4*E`ZUSUVSAOAKHA\FP<EwFZZ^T^[[YYˠ;f6H\WE+ZXXk`t׺T(4%ȻyBe
+IzP,^'@ZRv*EI8>i/,ўBhd5MGꨘ IژU-_49N=~f/9` MaXAQ#~];Ynˠ{{ ۮ^y1S%.Zyşt`Ck ¡-ЮEtsX(Oe Y JA!(),e,d!t(sugn,) c㻵ڔ<:WQeԿ'uŇ8xP(yܻy/G&~O' 7
+mQi3|W@%8!b@JANN~C7fu[)_x{78˒ jz/6UVƚ}SwdYW&ן!iCp(<qUùR]~;Q2Urw`L1}qF
+W8*| y>e@+5Nc ; hdӳ]|X EB>zEZr98oWO_hp7t8+21ҳd
+C_K745{YrFiuDU.܆T[Vc 3h-dF>i/wȭW9A*m{cv luĐ#Y}<oOUcpY0K.waIý_}f^_G,:܌Eݚx<<NJv'U 4ɬl Y"@~(S^VPMUŔDn>|O.=`A#-ޢއyWd-X[Nxp.-SO_=\<֦+Zr*(>ktx6(ĔT@8A oz*ψK#cXe<kk5Z!q!/ l4(g<^@KrjhC?1
+i/Ӆ?1`;N3'lfe$+o],%5f$f2]F_</3+@s*5HM
+*i)iTbv!M |ӆkb50 [
+/ TwG(t TD1,bo=m6hpTW/<!##96 kJ^)P5 F;$ƗuAxF<+Lp]Nߠ[&#o/bb=u[#מ,Bş!l=d6FJ
+4BBDS]pDFV'u=d 3a'f4KS ޮh4>Mp} -+FD|6}gW9m!~?Z\hm;[(aN!ٵ\x,.0sITà?;tή 3ؘ&pu*obVor.fIK,?}N3dUu133f~(h@=Weh2a¥p%g@gft᳧LD
+{Qo. -K1?{0OLSX,Q t̪53?@U.1ns-wM7W/r6 3ӂWH gSзd8V);z k~=d
+R3ho @6LB"P(E23g<6ź'FJD%s{8PQ=A?I<.+ uDM/3{RtEWMW匌$_F#'hࣱF-{Ou% 3 !;h
+/o$\*
+v̈́: #<ޓ
+ k3{i&0$ArY !Msi[ҡ*o\A$ѻ t!^'LUsMl_%L&$6S+GCi=C(E2~tih0ORzF[ B6?o~1~.gk<{6wkG㞴:K4:FJ wKLyu!08kD/}z $pog1h)<y#(@aAF) wvT&1݀Nt1b !Ay,=5ޖ塹~~Ԓg-8YRuIhILHa":C']%{4}1%uRpar삃'$1~unٖg;Wƴ
+u5/-kFq-g.Wiғ^J:[ 逮r?}=G ^~/^3Zdi ,`0"&5\DCFi";넚䡘"EJ V*0rM}Q<̬ Oǧ!c$| 8#NOed+
+| !9By,;;?AE]BKwxQL%!Dcm]Ffpm,ړ|4HBQ\K~CiZv5ևqܙA<_`c[%ԍ5S l3AR3W&%xZH݌ =7W_
+uH<` tFg4Xfۅ?)\eە0L  =X<(f Gqh] hڎWZJP\3
+-
+OL"hAoWU|[}Է3NOa1+3v3GFlZz} }*LcI W)TM%ǒoGÖ.,>6q}TcHYPV@~1Glw|;A{$LI]d4Z.y S!sS
+JB_4eQ/nkMQ\q,`sY[m\àˁ: i/k^̽{P=% LځC~-)$
+~G=go
+ x#xv|x<¸FΦE8兢ۈ
+|P?K( ^&EhK6QUEQ@6[Ϝd~~꘶H6b ,3߉cS'54#/,fQE
+tm{Z!8$]C**630cy>ɑ.ȒF}$9S@ v5 DBYOa⌝C-pkWxMz+;vҴP ӧ.`-}>fdܸIɓ.䫘I7:ӞL?ǰ9h
+mXu2J
+$qPoFvrv)V_d"OG+5Z-wrz$9 f[H?|}K̩5l2.)]0VTV1Io<oʕ]^y7aQ^ĉ_l8!dVA^it.`
+#XV 'L^ϴ$-=M>gP鼿2_"OYAnf&
+endstream
+endobj
+11529 0 obj
+<< /Type /FontDescriptor /FontName /NUSNNA+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 11531 0 R /CIDSet 11530 0 R >>
endobj
11532 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 692.119 null ] >>
+<< /Filter /FlateDecode /Length 737 >>
+stream
+xڅOo@C#BRKV:B-mQ#%owvx|u⑳77q-oES6֖k}^jxp8J{ww3|n6뷷 tȻcppdn}E?lWM̒Gι[Xe>P6HUuّZGIʪo`zD U?t!tz?邶=X/h:eݹ]6ѲtpCֲ4pESھ FW>eF.8˿cs*~坿(84PH{R@$8@ 4h-Zp$HA&21I '4n [HНp$(;92 rDb "<$( DHJ4<hT^ƒD%<h"@D(;y S H2rMVK
+ =EQJ!Ev)*6z
+ABj4D=Ƞ{l5t
+t&ȧ @h4D P-H T+F Ȑj3Z &ꢂK
+4Pm/
+dQ7XYViey[Ae>k$L'B
+endstream
+endobj
+180 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /NUSNNA+LMRoman10-Regular /DescendantFonts [ 11533 0 R ] /ToUnicode 11532 0 R >>
endobj
11533 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 676.179 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /NUSNNA+LMRoman10-Regular /FontDescriptor 11529 0 R /W 11528 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11534 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 665.22 null ] >>
-endobj
-11535 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 654.261 null ] >>
+[ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 68 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 93 [ 525 525 525 525 525 525 525 525 525 525 ] 104 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] ]
endobj
11536 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 643.302 null ] >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc``
+endstream
endobj
11537 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 632.344 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8004 >>
+stream
+xڍz`Ƕ
+{Whìi Hh mqlI$\{0 # p 7i=K9η@ bū&qvIL bŏ
+qTz9F ? Ɏr//G_B6wTg4g7n#`i$jor'YdMQ)!^=~)Zp4$pO"O*O "? ޥ X‘E&cqě[xmb1DL&Si;tb1xxE&sy|bXD,&ˈ
+b%p"Vkgb-B#&b3Jl#\NbC'Ex'@"2"!䄂P#myf6-C#}mt
+kf%˖O)TdW
+_]eBF(lSt^㪋']p *Mb7nqP.+ @g.!or *«3O|~|ZKAޖc\s~w; :fk6M
+.C>;$f{s[8H:N>M785սJyA|q
++_t[Tw֝%oXmk
+wHoHloKokT Zc8qY
+c|G:Ҳ:FqmAGqlU}>n! Qs[vűl䬲 =oѬ4\|4}߈--#D#O]uƷx=ő RØ6/FUe1R;%.NQQe0R&'=1+ maj= 嗨P|6ˢ
+f
+ߧ/x_{ܩi.1l
+RH8j=G0+ uỻ$x
+K&d;
+jAǚpʱk{>Gvns_q>o8-8W:<~ ̀.aG:Nܹᶍ-d՚k]qoϹewo Z6|$?>iFgT'彟e!OZY4ѶՇb}8o\ Q8 _ʯX^?Nj$mY@ ۘ6]qM Hݙ3\:ETPHʺti~ ~2XQ2L7p84u){;TA=RNnp(>0_J
+LjGz jM|
+IJ'AC9)#ڨW2  ߂o}y\Vׇ7!(hP Ah8 Ή#-,({qKF'Φ!B}>B*7+v%y_/3y%rV,S.է{Ԓ4kp Z6KӲI\^,1$Kҹ P6jMmE԰y(8\[TTlݻn}ȑӧ~A<lo/>ttI=n6kga*ObgFg
+&*өH}.["Lkaă!8uO\w
+cu!yb[פ p=Z׶׿a.d \Xh1V$; uP8 @ dl/f",ҭ>@qp=m}uZOƐG.1.k/#N1m-lޜ&^ü`4a1NLU81r+?Y3c]J#{yuIh+'*^ hC\@
+W9Yjep\$w'WITD ȟJ6r2sg_;}“ckJaCUwMfSq8vZ0"Jkmv4f
+M#1bFy!ɘ\(ړ*URTwi~JklF=QPewq Js Z&&Ӳ-u/#E5IGoN\Q~ArMYaAV]6=u+cܪW+qv?1}Qv`L+/:4~riZ]+u@FQS{wm".Ui̓ cw
+-bNy-ԺU }状 {-C׵tҒ4},T_ 8aqdoĜc 鏐ƭa>
+ɖxO5Xd dMtЯ`Ϋʙjn?^@-Yo-mxëWv'o7/]ps|$N1#<M݉6N>p,n:"{qVG]%UiiaӲNCEtSH)r*1H(ѳ<2{z6|?
+ zځTRm9m:țIRdcݒBD6x<kwXRyWǞGߐ^Yꏤt_t"&-vT\Ӣ1%܁,<6u9z@Ȋh+gW#2(!kճ!
+HeMdkCkpUuw/5֢ăB;8%z>_-]9eʪLbѭ!ƢңNҏ b?{HDxb=f*i]] ^x P688Ȭf[ (8}DrUR+Z[2T#(8b2GEE3
+ؔ v4An_
+n|LuEg|gY#|4d|s=F8LRң9 JؐRBrix̣q|S·dq`Y[ Y*?<[Br9V諿x
+!\BĻ+ǩ&k7?/ BhdA>+.-#Py&Qќ&:oXѺ 6UqpEHhP\sF}?cḫ?ܼyu I3vo$b;\AAN(t]>ήR/:n
+endstream
+endobj
+11535 0 obj
+<< /Type /FontDescriptor /FontName /GNMZBI+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 11537 0 R /CIDSet 11536 0 R >>
endobj
11538 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 621.385 null ] >>
+<< /Filter /FlateDecode /Length 731 >>
+stream
+x}]K@+f/M2_VJ*Vej2$$EN}
+Oŷu|Wo.׉xq]}lsW&XѹV<uv/˪e;zcG\_2ZU=_ߴq2,z-yEknEz$*aSs۲*Z)ކ4E7?: קweD|S*=kj'.NOYftDMp[hp_~O(ǒSD8Ey]T;M| <ixUo[pw?v(D@@} }zdAYw{& $"4$ dA ql I ~yҏ~$Gϐ'o@L/Cu%+gH~gA#D$@~So  FT0R胂!H
+FD#F$)8($3QNkȐ`$iLϒ1TI/C< =ː_JhY7@!C44 , ~Sx{8H,CT{e%+ n`dI'FniD4"+eWH0=ABW4Χ%%S܉xc:<>nrIS7ê8C
+endstream
+endobj
+179 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GNMZBI+LMMono9-Regular /DescendantFonts [ 11539 0 R ] /ToUnicode 11538 0 R >>
endobj
11539 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 605.444 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GNMZBI+LMMono9-Regular /FontDescriptor 11535 0 R /W 11534 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11540 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 594.486 null ] >>
-endobj
-11541 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 583.527 null ] >>
+[ 77 [ 577 ] 81 [ 525 ] 105 [ 341 ] ]
endobj
11542 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 572.568 null ] >>
+<< /Filter /FlateDecode /Length 16 >>
+stream
+xc`
+endstream
endobj
11543 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 561.609 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 842 >>
+stream
+xm]luvHf~$ܺ@
+aӾn44>
+endstream
+endobj
+11541 0 obj
+<< /Type /FontDescriptor /FontName /CKAXBO+LMRoman9-Italic /Flags 4 /FontBBox [ -469 -292 1419 1127 ] /Ascent 1127 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 105 /XHeight 431 /FontFile3 11543 0 R /CIDSet 11542 0 R >>
endobj
11544 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 550.65 null ] >>
+<< /Filter /FlateDecode /Length 373 >>
+stream
+x}R]k0}ϯ{6UP'T5@4}/IVh9Ӷ^v`~KUi|Z(V(#or ; "t8,86^|H{}S0fcWy*GAbL:Q̊Ձ%9 ~'R(9K)U+Ixa"$pvI.#eə`ȋ" {KF| jxJUQd
+endstream
+endobj
+178 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKAXBO+LMRoman9-Italic /DescendantFonts [ 11545 0 R ] /ToUnicode 11544 0 R >>
endobj
11545 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 534.71 null ] >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKAXBO+LMRoman9-Italic /FontDescriptor 11541 0 R /W 11540 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11546 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 523.751 null ] >>
-endobj
-11547 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 512.792 null ] >>
+[ 28 [ 494 ] 43 [ 457 ] 50 [ 457 ] 66 [ 245 ] 75 [ 816 ] 77 [ 531 ] 96 [ 351 ] 105 [ 371 ] 116 [ 474 ] ]
endobj
11548 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 501.833 null ] >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc```P`Pa`hp
+endstream
endobj
11549 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 490.874 null ] >>
-endobj
-11550 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 479.915 null ] >>
-endobj
-11551 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 468.956 null ] >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1004 >>
+stream
+xmLGg[aA@\#hA
+PWAR:I2;\~/
+
+endstream
endobj
-11521 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F74 264 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+11547 0 obj
+<< /Type /FontDescriptor /FontName /ZHPYMY+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 11549 0 R /CIDSet 11548 0 R >>
endobj
-11585 0 obj
-<< /Filter /FlateDecode /Length 1225 >>
+11550 0 obj
+<< /Filter /FlateDecode /Length 404 >>
stream
-xڝo6W/Ivah=tEfHtv>J$eIvOiwqr)I!I67g` $B4MR.K!VWu2=m>g%J(D(%I9(Wot^fMf
-Joi>;[Uۣ_n:mO 0!Sp-ă)̚WO[z"ƩN 2 [꫺,unֻs_{,aSY+yg]UY՟0eU1Aœ-s6yAxSS-"2w!?LvA\F& 1&b!K'`DpS7C!)Yu[zEԉZwP\PDt{kA%:{3 Gw_Nh_X7,v28vPP\U k"(RęI
-#0@k,]DaaG_-1
+x}]O0+$x1 D!d%Gz76am{Ib%xvӾ}& a0j4`Kk
+
+#6Z ky*E}mĩddžc,zăg[|>7ˏexhmڊhr o+J$Lvy [vBruM`uK
+mNUE*LEU|Mµ樅<@E#ɚ<$ pܛM>@Sn>¹e{*bǑǪ\LM4\ Aթ=A9*+vhfơt%GOGӭaKcOriш:== r>
+VMXn\$6 !gKKU.wJK~
endstream
endobj
-11584 0 obj
-<< /Type /Page /Contents 11585 0 R /Resources 11583 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R /Annots 11587 0 R >>
+177 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZHPYMY+LMSans9-Regular /DescendantFonts [ 11551 0 R ] /ToUnicode 11550 0 R >>
endobj
-11587 0 obj
-[ 11552 0 R 11553 0 R 11554 0 R 11555 0 R 11556 0 R 11557 0 R 11558 0 R 11559 0 R 11560 0 R 11561 0 R 11562 0 R 11563 0 R 11564 0 R 11565 0 R 11566 0 R 11567 0 R 11568 0 R 11569 0 R 11570 0 R 11571 0 R 11572 0 R 11573 0 R 11574 0 R 11575 0 R 11576 0 R 11577 0 R 11578 0 R 11579 0 R 11580 0 R 11581 0 R ]
+11551 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZHPYMY+LMSans9-Regular /FontDescriptor 11547 0 R /W 11546 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11552 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 713.79 345.275 724.684 ]/A << /S /GoTo /D (section.0.1) >> >>
-endobj
-11553 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.872 168.931 702.766 ]/A << /S /GoTo /D (section.0.2) >> >>
+[ 28 [ 514 ] 43 [ 457 286 ] 47 [ 571 ] 50 [ 457 ] 54 [ 671 314 ] 59 [ 514 ] 63 [ 571 ] 65 [ 371 286 ] 70 [ 542 642 286 ] 75 [ 856 ] 77 [ 571 ] 81 [ 514 ] 84 [ 571 400 400 ] 88 [ 286 ] 96 [ 402 ] 98 [ 405 ] 104 [ 742 400 ] 109 [ 571 ] 114 [ 742 771 ] 502 [ 286 ] ]
endobj
11554 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 669.954 195.879 680.848 ]/A << /S /GoTo /D (section.0.3) >> >>
+<< /Filter /FlateDecode /Length 27 >>
+stream
+xc```TLװi
+endstream
endobj
11555 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 649.973 207.669 658.93 ]/A << /S /GoTo /D (section.0.4) >> >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3265 >>
+stream
+xڕW XWAP팝IZEZj]OmZBI bR@`(hźk뽻u[ܮmoz=yDls}v$9}
+,|{b57傓Oz qጧ]Apnſ{M[6o!=|$>j_G~\ѩ
+' s\
+|E$re_JWFK
+) %^]8+fdlق1s0ϣ DUB~27k$5'OTOv;Ijx/|r.Mi]e4MQ^]Rl*KaԞ~r~GU(?E 4~t2Q
+1 ivQgP`%ww ` P:f Of?PuXl+j6LTb8u:0 2l85#U-jsƌ X%:N0@ 1nfGD,`5
+fW h )0JN0f&; bk '惊:pB8}XSӰ'+ߡGC<}skwLC4&Jv~tmICø??6e{MifJ!]/<PrFO"C6(;ooܷ Edɠr`6Qo?0d\ } X'QP
+;'*^vckO p *r 5sΐ<Z{gBcZLF!ϴl=w?:{?}(9BnT1[b?q߲5!ˤdϿCo?l$yNP'e.LGY0=nuv8Ct*e|ǘBopθW˰; U+7IN_;s՟.̦)=n…̳ 8j A-} X[I i>= H^¿IV树zM0}p|nUr{H$.A>dd A4?UD=娲;~.4 O@ c'G'|Tn59JvB%S9hZ(l('Mփ34}fwЗ;6?2<t9=*K|U&ۦ--aXM+OC1m͖Bn/llrob' LBN %cNZyXXSp1+me T#p27CPn\RRVաRU+)XzD|FcNg.3:Z:Q2Q|QU{Й/',EKs>?mkMjUcP ^
+4 DweM
+eFwy,ܪu2p7 :_R(6/Zhh)ܪ-kӖ48_Pyn&<>8'i;A۵%4;W)AAx4{:2ϋqஜ["FS"`KfT1[OLt(-=`ݬ@! ޺RTMdyQ8]DeMj'{V LtZ[l0+(Aߋ U&^WkgF~VO<v0lGcg /0Qtqje;Ż
+t
+pwK&,14H'2dmKX;|G xCorQ(:%Rᶉc1Zj"U
+2.fi-H<M'N\X
+90\r1gDݚ=`Vk%
+endstream
+endobj
+11553 0 obj
+<< /Type /FontDescriptor /FontName /EKCCSB+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 11555 0 R /CIDSet 11554 0 R >>
endobj
11556 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 628.056 162.385 637.012 ]/A << /S /GoTo /D (section.0.5) >> >>
+<< /Filter /FlateDecode /Length 498 >>
+stream
+x}K@-P513l:$RSt'qL0|8ܺL}hN9;P $?{-Zo24P߈Qهjʜz6u4F;hMJ~>lz_{k롩 t:VUG?iQ-TW5s`+E ;o\\IUv2ƽ d*{GLr~zxU׫uޕ U cmd0)t֥ފ̼^hosB -JRC)[/Htp9JBBA qp _@;h KbK@sj& W"@j:Bx BEzu؀6ha)R/C*1G^Sa.ڼK)%. 4;=2y1GksA)Fv-$}n{۴&^3?YC;+.
+endstream
+endobj
+176 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EKCCSB+LMRoman9-Regular /DescendantFonts [ 11557 0 R ] /ToUnicode 11556 0 R >>
endobj
11557 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 603.647 244.465 615.602 ]/A << /S /GoTo /D (section.0.6) >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EKCCSB+LMRoman9-Regular /FontDescriptor 11553 0 R /W 11552 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11558 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.283 313.465 593.177 ]/A << /S /GoTo /D (section.0.7) >> >>
-endobj
-11559 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 560.365 165.023 571.259 ]/A << /S /GoTo /D (section.0.8) >> >>
+[ 27 [ 893 575 ] 35 [ 657 ] 43 [ 526 ] 96 [ 488 ] 98 [ 467 ] 105 [ 460 ] ]
endobj
11560 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 537.894 356.927 549.849 ]/A << /S /GoTo /D (section.0.9) >> >>
+<< /Filter /FlateDecode /Length 18 >>
+stream
+xc```
+endstream
endobj
11561 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 515.976 192.945 527.931 ]/A << /S /GoTo /D (section.0.10) >> >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1258 >>
+stream
+xmTmLSW~"]^Gd-DeNNM)R*]mXAQc`lR>TmM [21 ?̖,f{em̖,9=9xiJ*hen(Hγdmo[M ˰)q)-rQ"/J"dZ)}qLKeK)nSO 21w+(&) POh  kګ=҅Vy-4W* 2L(Ӏ (ZJ FkW8jTPiq"Q«C
+F`B56@Jm{7
+jг{qU 9L*6bӈ<|Hn;`}]{Xn_M3&b-|,#c|)̺nЬ!0d*veX?`=D~M_Ͻ}Z[b# eɶ
+endstream
+endobj
+11559 0 obj
+<< /Type /FontDescriptor /FontName /RMWBFT+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 11561 0 R /CIDSet 11560 0 R >>
endobj
11562 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 494.058 318.799 506.013 ]/A << /S /GoTo /D (section.0.11) >> >>
+<< /Filter /FlateDecode /Length 388 >>
+stream
+x}RMk@ﯘ=lTEVT+^.ݰIQ(@B^ޛf{WNXV3 Vۼ"ZD9׊*]R4#N%;sQg!;~WɂAڒL4#Ggk!|x|J&BHodh\ܓfCx,SY(\Bx0d; 樅<CA#8UuAk(cXf/DmV4קٵB9yLqħ1,7 JTxhcOm(1}(DC+<ء)uh9#q=~e]U7Z:y6x?JU͢ 
+endstream
+endobj
+175 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMWBFT+LMRoman9-Bold /DescendantFonts [ 11563 0 R ] /ToUnicode 11562 0 R >>
endobj
11563 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 472.694 304.727 483.588 ]/A << /S /GoTo /D (section.0.12) >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMWBFT+LMRoman9-Bold /FontDescriptor 11559 0 R /W 11558 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11564 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 450.222 271.2 462.178 ]/A << /S /GoTo /D (section.0.13) >> >>
-endobj
-11565 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 428.305 345.319 440.26 ]/A << /S /GoTo /D (section.0.14) >> >>
+[ 28 [ 515 ] 33 [ 515 ] 47 [ 515 ] 55 [ 515 ] 59 [ 515 ] 66 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 105 [ 515 ] 114 [ 515 ] 118 [ 515 ] ]
endobj
11566 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 406.387 370.804 418.342 ]/A << /S /GoTo /D (section.0.15) >> >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc``p`dP`hhpP
+D)
+endstream
endobj
11567 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 385.022 280.698 395.917 ]/A << /S /GoTo /D (section.0.16) >> >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1845 >>
+stream
+xuV}TW!@5ʚiZ3K- _EAE%1LBD<u
+܎ ^!zSfEOj53|.K rPSnij!r5PVN(vut(CsX3_Xn ٲc}Qr8{7<o?GL(v4Vn*tEfs z<u=?%W}{bvNDCF`T'ݾaT~ i?\Ic
+CA)
+|ʆY|+;qD+Z>a//Y-OBv7T
+QS >I@ˉ Ŝ($PzG@}DtIwv~|Bn{&3pO8L>&V c򱕠z劂8jSdpmd?8z3S4cr RMvvAV\=P Y` {^)DŽA!?Xζn/VQb}]®=\DW elSf٤ 4HBaZDm>8{qwSg7ir޽G+T_Zzwj$go޲ԹsOK4E~'n??.[N ']%[^C!LƤL(,@C4b~?sG'5!c-Y,:?jza|':>yjE^)D SrY8B;?,7W$R95f!ٗQ~yʨ}􄤤_ݾѥKR"s<$v_ SBub:ܠ맠 "b6x
+t3Qɫ
+oRWɧ<| ƠP"{nPq%e}Gܮ(WȗN)QuoYUO&Pn^
+
+TQ}
+g48ԂE>*`zK@E%1άxh@,+&p_(N(/?=u0ݕLDB0O>`R Fon0km(V׮Җ ֐F"3DgϷ^?@%xSEV!6¶M:GӞ`x#qNf4e'_%#l|ZQuJeq?HR@8(fu\o!du8iw6s;YpoۚiPH&Ng y[j;rgRsJcOt~w@[fk9RM
+endstream
+endobj
+11565 0 obj
+<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 11567 0 R /CIDSet 11566 0 R >>
endobj
11568 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 365.042 232.492 373.999 ]/A << /S /GoTo /D (section.0.17) >> >>
+<< /Filter /FlateDecode /Length 428 >>
+stream
+x}]O0+`Dpf!q%Df,[֞&%.m{&F%pk z:=A[2,5P3
+endstream
+endobj
+174 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 11569 0 R ] /ToUnicode 11568 0 R >>
endobj
11569 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 341.187 418.007 352.081 ]/A << /S /GoTo /D (section.0.18) >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 11565 0 R /W 11564 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11570 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 321.206 359.856 330.163 ]/A << /S /GoTo /D (section.0.19) >> >>
-endobj
-11571 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 296.798 323.519 308.753 ]/A << /S /GoTo /D (section.0.20) >> >>
+[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 50 [ 435 ] 54 [ 639 ] 57 [ 490 ] 59 [ 490 ] 66 [ 272 ] 77 [ 544 490 ] 80 [ 762 490 ] 83 [ 666 ] 88 [ 272 ] 96 [ 381 ] 105 [ 381 ] 107 [ 490 ] 118 [ 517 ] 121 [ 490 ] ]
endobj
11572 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 274.88 233.701 286.835 ]/A << /S /GoTo /D (section.0.21) >> >>
+<< /Filter /FlateDecode /Length 24 >>
+stream
+xc``Q
+P`
+endstream
endobj
11573 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 253.516 272.181 264.41 ]/A << /S /GoTo /D (section.0.22) >> >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2556 >>
+stream
+xuV PWeT$23c)$#BT""ˏ. ‚.,0 /ğSCʋ/󨻛*+U{5fuOsuD"̭!!1|#
+բžQd}B|gwWD<3buE!1/w$yD/8}4}Sp5a31{[<Dv…KBԙx€ 6؏ SLSiBȆ~l HSyjLQ'$6Zk-Q3T-kPkXQ+Ze"W%*5.Eɮ͆U:6<uRU,U*.sN$' :ZgJZohCފ.G&5lRHMG>D5ՉۉJ.U {|2 M,"w&l KҰl,W,UX$F:UDv..7])WdD+)]%Y[ɆG4x|p & ۈ^ yA Җ(o{/}4%~;FxLZ~"3'/+1;qWRNZgg4Vy$zK#=-lo}ap-|V )|L'!i4)k2?!IR)O@ d:ݰ3}+ec&9Lf`9Hw_ Q4#CFFma?*4v/(+./+,c2b='1I A۔f箿տM{y?· k$VeØ  iͥDU>+Ӫl8x޿
+6.ē΀gHT*t )Za'oV@ r x5M68R6'm)ԢukWFu%3ED.MY:_~:[T^`euVySuS]=Q8H}{{L_GJXXj2
+kl4Z\\Ir2T
+ s F޸pjH,32rN1 GHhC?Dc~3q GEc7hߥ|kVKp: 3o@O@xbzw?#
+3$snCUJEOӸCӬ
+K_^ooTVWOxQ
+endstream
+endobj
+11571 0 obj
+<< /Type /FontDescriptor /FontName /YFCCUS+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 11573 0 R /CIDSet 11572 0 R >>
endobj
11574 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 233.535 269.72 242.492 ]/A << /S /GoTo /D (section.0.23) >> >>
+<< /Filter /FlateDecode /Length 459 >>
+stream
+xڅOo0!RzHa[EH[HH]=Z
+62pȷ_T5*(?ޛcnޫ{;Fp%Jտ=wy=TR `r}mzTOwSeZEqpM\N'kIL7 Z=1f_(t>#STŒie'QLH;-W\R4Y.ihW]o>- ߌ
+.'խ??ۆ
+endstream
+endobj
+173 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YFCCUS+LMRoman12-Regular /DescendantFonts [ 11575 0 R ] /ToUnicode 11574 0 R >>
endobj
11575 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 209.68 200.238 220.574 ]/A << /S /GoTo /D (section.0.24) >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YFCCUS+LMRoman12-Regular /FontDescriptor 11571 0 R /W 11570 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11576 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 187.209 292.135 199.164 ]/A << /S /GoTo /D (section.0.25) >> >>
+[777.8 0 0 500 ]
endobj
11577 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 167.782 187.086 176.738 ]/A << /S /GoTo /D (section.0.26) >> >>
-endobj
-11578 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 145.864 159.613 154.821 ]/A << /S /GoTo /D (section.0.27) >> >>
+[ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 66 [ 223 ] 75 [ 745 ] 77 [ 484 ] 96 [ 320 ] 105 [ 340 ] 116 [ 432 ] ]
endobj
11579 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 122.009 324.087 132.903 ]/A << /S /GoTo /D (section.0.28) >> >>
+<< /Filter /FlateDecode /Length 23 >>
+stream
+xc```P`Pa`hp
+endstream
endobj
11580 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 100.091 192.653 110.985 ]/A << /S /GoTo /D (section.0.29) >> >>
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1024 >>
+stream
+xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(H$!%1?gw1&{&Kz@DVCU弪zOHVhAʕJnfl
+u
+hݏ~ŌDzIWm2
++=!,`V[aVQ?"`[>.&mB/ z|H<C/B=nX&dXoC-%>Yn+vUF-lZm()/Gd"e?(YøFyŜWp|HZ6\4?uz4MG=6MbObva36^C81:jtɄ.R/΀=]A0\< N>u`熦sFe#QP=ZkqWS~f٠<9N*3s$w_U73>:ÞmD;lڅI?6[*QNAʆpOF[q&^QWG=]Q65ܳ~q}]f$Ǎ8 TwyIVad]X?c63GʴSƅBZ&AΡ*m?܃|B:ֿ+0{=e9A6tΡxܝ+ )r?J*Ex}.O_`RL|2}{ݗ=hF)'~աq%8Iީ xs"?b5Sc(#L,q:dv4d&;wŧѫ\f sUB)1ađɘy8ɨs b2ZȄA
+CoV< }>q%N鉴4=Z^d
+endstream
+endobj
+11578 0 obj
+<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 11580 0 R /CIDSet 11579 0 R >>
endobj
11581 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 77.62 313.527 89.575 ]/A << /S /GoTo /D (section.0.30) >> >>
+<< /Filter /FlateDecode /Length 404 >>
+stream
+x}]K0+6s2
+nU(MKf`MJ^ߛv8 xzޓyK<p`|Mkj`*֖(5"GW{xъpȈ3Ɏ-^h!$vn=Xmgz YG][!*\ u-Rj~<JT]aM%p\wVag(.Xӑ{DeS`ɽ"9ffQ7\H^h4y[UG~${3h]]~MU4K9lOB8XWC] &02WBP_uv{F
+*'Zq(K8thSL=RGđy9K-în90jmr;"aMTeNC2-m7 =
+endstream
endobj
-11586 0 obj
-<< /D [ 11584 0 R /XYZ 78.37 808.885 null ] >>
+171 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 11582 0 R ] /ToUnicode 11581 0 R >>
endobj
-165 0 obj
-<< /D [ 11584 0 R /XYZ 79.37 771.024 null ] >>
+11582 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 11578 0 R /W 11577 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11583 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F80 749 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+[ 28 [ 459 ] 43 [ 406 ] 47 [ 511 ] 50 [ 406 ] 55 [ 276 ] 59 [ 459 ] 63 [ 511 ] 70 [ 485 ] 81 [ 459 ] 84 [ 511 ] 104 [ 668 354 ] ]
endobj
-11599 0 obj
-<< /Filter /FlateDecode /Length 499 >>
+11585 0 obj
+<< /Filter /FlateDecode /Length 22 >>
stream
-xڍK0
-W `q&~9>č7X'т
-
+xc```Tdb``8
endstream
endobj
-11598 0 obj
-<< /Type /Page /Contents 11599 0 R /Resources 11597 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R /Annots 11601 0 R >>
+11586 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1856 >>
+stream
+x}U{PSg$j6t\zK-PjewaAZ\h%A j(\By AV2b|ZZtڮյ3ߥٛul{Μߙ#BH &&nٜIUFgb.c_%X,ŃYBKJ H(y+$h{1`'^z"y_J"QkPH$! z
+޷@e5vbRݕw|Čǫ/O;3@ȉItQs EBrs 1>C?hFViܷwɣ[0|Ͱt}xD'NUW;[#U?wu5a43)p!6[V Yqg (P䆯v#tY0(,w5"Un0u>Dr-|Y?n>[}
+endstream
endobj
-11601 0 obj
-[ 11582 0 R 11588 0 R 11589 0 R 11590 0 R 11591 0 R 11592 0 R 11593 0 R 11594 0 R 11595 0 R 11596 0 R ]
+11584 0 obj
+<< /Type /FontDescriptor /FontName /KBBPOR+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 11586 0 R /CIDSet 11585 0 R >>
endobj
-11582 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 757.574 225.426 769.529 ]/A << /S /GoTo /D (section.0.31) >> >>
+11587 0 obj
+<< /Filter /FlateDecode /Length 419 >>
+stream
+xڅQk0+w!:݆V7ۚ]&%m/Kr d>9M޼z=Hh|aihRTl0x4-Q7e_ambEk\\S+)ã-~=zβj٘,=6^Sɵ &zC[+!朻'-Y~PZ-w@*ttiy\7X`|[YՍ=W,^YV# /tM۶N gi
+nnkQ">\j(pBXW@[#0_'e:'@_DW% 7$4ʈDKIhF4%t3Nwh2%$DKI@6Ii߬?pEkK6oH4~݀T^puid9
+endstream
endobj
-11588 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 735.656 232.547 747.611 ]/A << /S /GoTo /D (section.0.32) >> >>
+170 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KBBPOR+LMRoman17-Regular /DescendantFonts [ 11588 0 R ] /ToUnicode 11587 0 R >>
endobj
-11589 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 714.292 261.342 725.186 ]/A << /S /GoTo /D (section.0.33) >> >>
+11588 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KBBPOR+LMRoman17-Regular /FontDescriptor 11584 0 R /W 11583 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11590 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.821 240.384 703.776 ]/A << /S /GoTo /D (section.0.34) >> >>
+<< /Length1 1584 /Length2 6602 /Length3 0 /Filter /FlateDecode /Length 7613 >>
+stream
+xڍvT>)! "2@aC;0b1FNEJR iI i zџy߳s>Ͻ)8 졪8(i
+F]ٔ+6v
+8
+ sUf
+Gy|?e
+>p̟'G oc8se"EDb
+
+<!OosK@W0^U
+
+B5
+>|+2WL30Sd\Ya#ԾN%Cisz׏Nl 4O|(TxDtH~53$v{8^w7jϻ>__ռ~V6ogl=>{rGy⅊1 'cF^ w,p)(iM`J
+GY=.,BQY"$z
+jJS緷{}
+٭E  jU !+A?4#6'O0U탂?` ]w4԰yfS ]&+^zF9'};Sے ͈Oآ鹮 9Q G@ĵO>p!4)?( ^vsyR(8! i+lg\ZzU_?ݢN8b9JsnIvxndBq 5bc_shZWGw<[U~fY2+kEI/'gu$'8(/{sıpoz]ufdTԤys'{ #&o뒃2nc#$_(Ry[ l2Q&^t+*RoKrv>dSbrrj#Q%2϶KӭEesR1KOcߏd
+yM-xv;lmI̹qkE~w9SI3|
+-_͇:*)WQ紙Iֶ1iyiXbٺv7sI4.Xf Yv%Ή9 hHiu.uiHV!Y/a{kG':"&RSV<e>,M/Il},x̺=:jܝx8$T] L%`5M(S_m}|km8tzm.]{́Mv E ٞlRѩ5Q=v
+r1.uË^MND0aŢb\0?.Ocbj-"j7aUDEg?,SO|2
+Vj6ZPz Q'm`<0.zYMS.Wg 6BRe6F;BM2:=ꉵϗL%T|SML;*
+]2EuG=#<&f}KOygSܯbD%-bjT GMBU]+D
+r 11?=.̷ .
+BпOUt|}sOq!(}~"L[}/hc;r~*)}kvh͏ik9m
+Ԛ 7R:0g3i[Ivhwo]wFLE:1A^0]مS
+IT.qjBk!UkjwaC/G.05]MTWD6{)#ɼcI[*VU0Vtq;)ɕ]KW$&ob9F[P3|k9esqnx.W!VX~;ӬVcԭl-roaq 褒paEA?#Ufrsk`ڎFʍ'2bY p
+{EftuSޫ*,E K׋]/nmq|}
+Wb3{:z<)$Qh8 ] ^_(Ĝ}!J0;=ɿ>ȏ
+]_=۰'Weи^ˁ~#Gwokowy}00\|#['@e CԯxɳWXQr ˫,I[~z t:C !]Hs*zdf}MHoyo(ϻvQ
+I>3-6>啼s*U 6B;3 նH1 $zS0;{hC-mEbԻ?T/=G?Ʈl7mOHŴyHYX+2
+8fC'rz6:%4vMQ5fڃVmP}jyy06sJ-keG&\`޼cfzx{!?e/>$U#AO I<ڧ(Sm2ꞧ
+Y$^[w=Ϭ%L\*!d;o]2q*l]Ħ&&$-y z!K縲 01az{wN"wiʓa~=:S0( Ǎx(,xd<=?sy꼫Ʊ'v3Յt7>$jFE͖SÄfndU$Z<RV6d,t3{9wy6! z5|;Z-Nx'PhV`Ő2砩e
+eԩ&-T(mۻXfK+%٢`q;P},/O&zM 52GSaԨBH;Emh}4G~Ov>^G{ #잝-J[)k!2='&ܬu
+' ]ZURԳ"~Bo#]jM(r|*/W*bZ[I=ҥcIg)zu|-]*SMLL ř
+sm^fkmE؋eg$95]+Rj>R49]I,gndPH!_*j)J3/o `$wD>fIn\ZIZ7 d*,ϚW4{Z-;+[O e (q>:K7f+S=HҌ>O3 x > . aS1^wE5BcQ6!sY&F/-+n˰a
+`.o٧Jb ƩVY]rV]4}f}oCOu
+ݒ ?[㍎?|G忔ow&%?O6L&%ޢ%|BW7:&h{Q9eoa^V>kdU|1眊[i(GtZO|Q s>!^5fQD
+n/0P.G+7TʒoV|4.5]SzýIB!Ugv>S9
+?rUenReU3mxܡ3f7C3q"!Nnrπէ(1s7vY솝Q=q|*g'?Ԡ
+endstream
endobj
-11591 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 669.903 329.738 681.858 ]/A << /S /GoTo /D (section.0.35) >> >>
+11589 0 obj
+<< /Type /FontDescriptor /FontName /LWMXQG+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /bracketleftbt /bracketlefttp /bracketrightbt /bracketrighttp /parenleftbt /parenlefttp /parenrightbt /parenrighttp) /FontFile 11590 0 R >>
endobj
11592 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 648.538 252.167 659.432 ]/A << /S /GoTo /D (section.0.36) >> >>
+<< /Length1 1588 /Length2 8190 /Length3 0 /Filter /FlateDecode /Length 9238 >>
+stream
+xڍTk6JJH )=C#ҝ 0tw+ ҍ() H4R͇'s5k<ugXtelVPEʩ+`0?`aу,PW C
+A![:Ty
+
+@>0D(P
+"@zѷq~Yy<( uYC@u|EXàhr&nF#EA www3j't:P j2P +5
+Gݚ<@]сj@M$'YO
+p93F~O
+':p￑- nc; H>,VGfE""@ am@ C[|7ަBo
+⹵Gw{֎ g EDzj}5N
+!OH"A7@=y @ߚ
+Ao;evA -<U箮Ecxo 7㒂B=րokڐjjw!qݴS#>Bs\t¨RnVj.^Esv Y+o<^NO>a$l3L-qТ&e!y\9JV(ڪQ]FN`٪OoUqw1U
+b}4 f\攸m"zJ*e]rZoe!lodûuFK%Ms-X+x2L)}Q%<TszsdjpOzuʶo=X70̖)+
+웾=NYl|&"izųOBZ*+2>?hkevǒx-yUw Tg^#tSd(},s+q\ BHz=*$%rW]KR@=V ~[i`+
+PaMiB{_nAd} /bZesjJ<y#sߎAz6 =Y…󞠁{ ?0W2>.B7Q!I,6|1ތ)Idw'?hYW2خN;U[sJDz>ʟq +!iC@fOϊKݴ4B.&-
+e$^"bӶA|A2nٱxЙٌ(2wWp*#DmYް@Gdȸlio+8aTb
+$^˝C踿[e@w}ȖuZ?䆣צ[]!$k#Ia"X:cFɞ$♨:>dM֥"Y-ޒ㱠܊rΈUKor懷=dI=sw=i̓t{.
+-CaSW#ձ1Å72ve5xl?Ӈ!?Kva<n*E/C^K QƺbDLkm8 G<jk8s4x$>PZ%xDi~b
+/{AYնQ ¸cm@-Qw˶ӼxezӹM|3 ss
+͌BW֨4*Y%=畮=Q9\?RżVe1P[zr>cXui\PQP>g=;B%`=H kB5;hV@VcĖJSJDM6vSg 1Tt[*
+ 1?w 4\R/q&eƻ<؂4IAU,=A~Rf"CM;1J5%:F\S«D1l,`dQAOCUу=BYPJoz*~k&mWnHk>aY1RcnzzFZ>_!E
+t?-IG!z=?ˤE5_uk~E̴XgK NOffcˆG^Ǡw~k ~:[}@5݊^SV_Vbn.2ɖa^m%?Ne xJ=:\l $&jId!Y(aؓ&vl}לݓXtxN9zNzޢP׎g-c$\:P<qyob;b~{{8F2W"2^ߎ~dbٴi1Q$!ZS6Q=-~%:kG zoGCfdrAI틀kbs!jөٵxUf]7=PNX<Pl<r^{`nܒ0VۼF/yà]w+6|>xZW;
+"Jȧp8w>4|{td"1+%(*:c/PcWtVaN`G+tр'?,:HYS.rMvǪfX4ʜ O|.Iثg;Uˊdz_s1CvTl
+
+Ly5kk X6ív*]:YîH 2zӰ\ߛ4| tBtKXjq@JmWVeN =ĩy=l} ?pɥ'bfBxy /4^
+1T^A?Qe0K\Q#,U>'^;F6>Ug]z
+, ]LZ~͐0VK襚 ګ?p/ƭ0h54N\JUc{6mU΢O7/~e
+6|ZNn/?.pNl}=X VWJU %~kvqigE d%0ջEɜ(tgJxG[x0jSjw4Q8/ͻP2(s!l*OzC4aWqla4ss-3Up~,}t,D֑EF8"Nb͢e{"3W^B堋|sTL±ү7MS ϯ<uᄐ}#.j5kmk~d}\#g+k" G bhyMZlҳt*ӹܕa C}aa@(1bq#Uw#$+ho$mɋuo<_zƇ"oX {YC7ʺo+ Oܲ\lRz5Ĝ˔}L'7l|fsP,$[mQ$o/|شd-to%TnT32XrD21|yL"0Ucs`Z_IF@h+;9XIõ9tc |aU!|ޭnL3<ZNF*ge+X'tVtJ(mDZ}J2b؝OxyOpgھ E^j3ӺC3JrXn` yO\ݵMΗKNqbC=kU1}ծLfkoAŊS!#Q^KNC@մanMJ|$qsɑi.0AZ7GP̗+iM_J^=` e׬0p'^B_z?$bc4c^WV?^x%B.
+dAS8=%j<R9i]K9 aޫBq"|$]8?Z3Դ `HA+Ԩ*bND)-C$Ы0xop
+D>4#=yr|ݾ4հ;bC)B0ρ}6'\]e?e#ȹso4pd)iԠI[":/gFkәZ#Y*=x/q7=Tx+ť |NWG1m֠;rgzV0#C=y*ubKzaDJi> ДM H(qT"՘s' fN"b@A;vcJ-$NQRcz*ĹBwaQFF DRÁ{ĩ<CHi`G cΏ^áZb?B^˦1k->F-j}Wm8wjw?),+b9KŮ;vDu5#Tk2*팋J:-ʔɻ+
+9u4}<w4<™
+y$ G2_T_-r$r)nV`$\i2EhQݰ^!2H*͢" [aիOh<YUNU*ΑKi#R
+*M?-2 &_
+slMѴ>f<bbsn<ϯlD S *"ڥ>$E>x0F7
+雖I
+?.+,ܯ1`E$td+~~"G{e!hGMY[<5p @J85eZVQѭ5equN_%~DzNusp3°ܣ
+Z̆{<ЦO=23C ) .>Ը^a;ٜ( L.wtg*5OēXlrеE53IŦޜc3칎|]Ŭ3&E .$4C<<
+k}=W ~gܣԌHF5S䜗Y0>H |y*`nBЇsV
+L 3_K;Y`x|b6m;WUOsQ&Sip8Oe[)ؼX
+endstream
endobj
-11593 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 626.067 266.6 638.022 ]/A << /S /GoTo /D (section.0.37) >> >>
+11591 0 obj
+<< /Type /FontDescriptor /FontName /MFFSWE+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /a /b /c /greater /i /j /k /l /lscript /n /x /y) /FontFile 11592 0 R >>
endobj
11594 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 604.703 318.705 615.597 ]/A << /S /GoTo /D (section.0.38) >> >>
+<< /Length1 1422 /Length2 6294 /Length3 0 /Filter /FlateDecode /Length 7259 >>
+stream
+xڍtTk/)!)]2 ]Ҡt0 0 1t#݂4t7HHH#" |u޿g@[Wa UF >@ACCE
+0/5>!K/7()(? 
+A]:^p[~8 JD
+@y@>A
+0
+~Cًϳ~덌M>B_fnOѧS~3ߗ(u@f%y'cc7J7F^,ޡ,G^poMf=!|B͞KYtfT9~W-i?COlg!KTIr^Qp*s7랟#2ǜS)eIFXA#ΛW9ršD]rt n|k?YR=a ӑX#x(^@ZJ"C 8H$ o@ AH-ƻ6!=R}6M+cR>MǤ>ѷi
+ࢎrP6*<0
+ %W1^$v2_\\;Wӑma=y(^r
+0T]~9A<ΰSr+ΒR 3vg{L #wMon92t:ʧ@ۢc%q攵E7h;?zb|+az%`Z.4Ȝ:ѼQg~R-mUG{X%zf7V
+/ *L .N,D=FW}'5\d9Oۛ'_GiLy"7?i|U0e6+k\j(#LojЏaOM$GGķԶ/KgGC_yvʻ '1b콻Ly [{j"EYMm)ςi2akpI
+WJ
+Vh -yB]o.ڊ tl"ToQ;30
+Ie U/3~`R
+iz%Pw"xk>NgsUq}/dfޫ *|?BX .=8{جHg y|4@Իc*֣/RcBV#r|T9;T4__sSD>5̝r#-7#s>VnR+:V0;wn 3H5;qSkYT2˓4 Vj m懲0OxY; &ĕY6ެ~-m2RB!Z=P]}LB5U8SsAsQ}W.z1"k36Jp"
+=UeJz!/1v&c@9.-GŇa5ZE_,f&ݙsS]lIr!|b(uVZU[)g$-OƬ$|ÑG礪䀟IUda~<{dC剹z-2",F|X}w}wDf0
+s(-9Q΢N. o|6l2 ܖšP+
+cSCZ\ו/$wP2<wfԜ׫Ƒh5–ꛖ!@\$hdAΏ`r%cg#`+)]GN{F,Zi4%6MYm
+vdUw6[!e+TI{cw^aDȗxy # O𰄢'Y<#_Is^KO,E[B/*sxU>)yTf-FfD;$<DG'7E_G8MdȽ&ה7Tv%8mUf[a=£փdƜ V pV4H밟V ip:rj;#w[3n TA)oяGvw,=cxV pa9;2<Ml#s5sCbnWcA"[ .%*4Hc0gC6wxݍ4=2e|q2Ӷ^Luv>6I'~zRz;BEDcE
+V#,l TLV ӖyHNsJpw4tyYy+ojHug>YNhsXr3itYlQ$l0sRK̋ǨE2TL3Tv@F4%ϋMq +䩕f7,!5غ $?g0o( ]1ԛ(#^ZFv]T$A,P6co7f~ .Zo&?dWa3 (ZOQҧ(J뫬d+NܮFs!u1%SydƲ[,E='=᎑'Mr;R5f3T4fl iz7tj:;1k zkZ!xΏqM|99F$L%2&I|xVW>^V &9psŻ csC&5߄QSNDl5H\N0 -srr$c{~l_/Mv"_"SJ:Ha!)3F^/8LJe7b ,a!21%3w(7_4h rȢ"QoLVg- ޼~WhtHIp͡⫻E4
+otτ=6.`\n5K''D&]i;ؙvmo%&Ч5-K~܂iuۗ.6VKP?`eetX-%N&*_IPZ)_1dB£Kmf7 v9R]?rh6+&NFݡ>ZcyKfxY '<q04!sބ~EøɇceYr)-
+/7WZLFΝ3^.~?w&^lfTiЩ0W>.E4 (dkGprNCz I{U"x'1a#zfRU|R,42ϭkOe?sìi]_: kݍE)'QdR~Uq+I݃u}63̓oh9x׏Fێu$
+߾` '
+֢&1d.j'' aeS9^30SI]?x8ћ-{8`t׸
+XB^;=w
+⾖uɔ;YR/)IqJ/xSܴJ4>" ^2QO#piUْjGc6Xͬ?Yӗ<9c93NgFRʨx^Gn
+fۧ>dlSD2bS8ЦnH`{i1y4TwjEgtڵ˘| drh׫BGќ:/PV,9͓k\
+,5&)aEc|Xzۃ'eC cj[o/wsX?8}::3'Ijse!no1HMǽ@lM`5):ZCpu5lH1=z?i.Px}t7Br2I_c|~WF= GG:Ө7zkogbLv
+Ӊ.&R^&ޟp"g)Lp4y#8UP7| Wiu/3m~E6Avc:aO=R»Z:a`^ sY9|p7 9n>%yp;[rEsTdǗt %} gc=Q!44zl=f^ۧI睴PӺ>hPqF˭e:4 ;t.#bժ. .AC$w鋩`zz3fȏEU.g0"^2ꛧd}簲]ϝǥuOt=itB 6{榹85/Ohm̵ebqvg5<UMLqo<^oJڂ꭫^ibkC|6xtBZWGrO ^<r+ŊEkjzg%[F=Q *cD79hA1?דRmī(x^lU1ewͽw N8 Q*1fH/^#Xu"̼x,G{08QK"&0gDI3F!ER'w䰟Xs־ĕbI\]hȡ6q賤to\)'hMߌ5|_]=h?457`zA;P(UX$Iѡ.{؉=:
+V@hV3bG~qK#{wXW#69_1:R$+=Ia*&1&2?ԫ,P/Z0ezw) \KDۤj7M C㯙N42!k{sB7$]ܡ;ϗf-\Cv!>2(>uU[Rl!r\ʶ;y`إp(~&|Q1j`4<[{.aGhwz;![BS|!O1
+'uӧ/_"oZ$>gq\kVU@Z?P
+endstream
endobj
-11595 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.785 258.373 593.679 ]/A << /S /GoTo /D (section.0.39) >> >>
+11593 0 obj
+<< /Type /FontDescriptor /FontName /OGDFWZ+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /x /y) /FontFile 11594 0 R >>
endobj
11596 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 560.867 257.469 571.761 ]/A << /S /GoTo /D (section.0.40) >> >>
-endobj
-11600 0 obj
-<< /D [ 11598 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-11597 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1 0 obj
-<< /pgf@bmMultiply<< /BM /Multiply>>>>
-endobj
-2 0 obj
-<<>>
-endobj
-3 0 obj
-<< /pgfprgb [/Pattern /DeviceRGB] >>
-endobj
-11603 0 obj
-[647.8 579.4 ]
-endobj
-11605 0 obj
-[875 875 666.7 666.7 666.7 666.7 0 0 0 0 0 0 0 0 0 0 875 875 ]
-endobj
-11607 0 obj
-[525 525 0 0 525 525 0 525 525 525 0 525 0 525 525 0 0 525 0 525 525 0 0 525 ]
-endobj
-11609 0 obj
-[531.3 531.3 ]
-endobj
-11611 0 obj
-[826.4 ]
-endobj
-11612 0 obj
-[531.3 531.3 531.3 0 531.3 0 0 0 0 531.3 0 0 0 0 531.3 0 0 0 0 0 531.3 531.3 0 531.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531.3 531.3 531.3 0 531.3 0 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 531.3 ]
-endobj
-11613 0 obj
-[575 0 0 0 0 0 0 638.9 638.9 0 0 0 0 0 0 0 0 0 0 0 0 575 0 319.5 383.3 0 0 575 575 575 575 575 575 575 575 575 575 0 0 0 0 0 0 0 869.4 818 830.6 881.9 755.5 723.6 904.2 900 436.1 0 0 691.7 1091.7 900 863.9 786.1 0 862.5 638.9 800 884.7 869.4 1188.9 869.4 0 0 0 575 0 0 0 0 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.5 0 607 319.5 958.3 638.9 575 638.9 0 473.6 453.6 447.2 638.9 607 830.6 607 607 511.1 575 0 575 ]
-endobj
-11615 0 obj
-[777.8 ]
-endobj
-11616 0 obj
-[777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416.7 528.6 429.2 432.8 0 0 0 0 0 344.5 411.8 520.6 298.4 0 600.2 0 0 0 0 0 0 0 0 0 571.5 490.3 ]
+<< /Length1 1540 /Length2 8101 /Length3 0 /Filter /FlateDecode /Length 9126 >>
+stream
+xڍTk6Lt 9tJw700-!"! JJ
+(-Jw7z{ok}7'#2
+:8ēS:m ҒJn$ @(# PJȹP2BB>>> 7OA/?rC<!Ho#7a> 3A"N /!!
+yC
+hq@L ~m3a^yBѯ?A傄Ga4wQ)?_^H$)Iu@ 08,Z|VG`e@;E:@.K' SfxNYk~L6jxeh<D49DehK}!jGycFڜy^Rw (}:5|wEVK_ěلweC 0'%=9NjE;(h;^81
+SV:L'}\4%ų_&}Y^
+\ɪ;yM}.Dp3|XN~WZOid3n@} aZ<|j8-=0Jbc_ڂ,(t)0:
+fCW/_j2c薡՜)D"4s3ɎCxY"-b 0Ƹ){jR) EY#dޑq- )&ĝQFapuH⽐xGf>1Ժ569Ɛ|+TxJρI4G`mHn`m x>\3P4 Vimb2{e>/br#,^:{#-jb<\뗟| ĀcLGsMiRYƆ pCW
+.4VUY3=ԏy&ij㪘7uݙǂ{﫯c/^Y W%xH,Цۜw
+='tNqzG֫J{:*q?kv[%
+:)`^og?l_*Jvn$6s9ۨ4d L*[Ky:T-1 Bq=/wXڬ;Cgݡ{|~y(X
+l}[^"I+ÝwݬuY;l@QB^rmou*[EUU:p
+O޿O^Hr:ȁp0+(
+ʕQS*.dą%bcDHO":Mix,nBtzv,n[Ho%BٶP,| ~K`R=!snCael 8 ʌAk/pfMzft{aoɩ[㻱Z s[tqC}q^YXGtUޞx]A'LӇ#C\/^D Fg/h$D5 AtfTvo_S~yXd_O^%0WGVi$Jnn.;. yA"YJ|9|#*"⥎iïOaa<0窶i9ֆԱo6?/@bF@}r oIw
+<g'WɌ3=zN_$).( W!)͡ JVtfIa>&LP7;!\2/2xD;*9d~VVwn2Q=5a1=Z BFrU;4^b Z6C*r+
+ZL8Ң]}= j_q[+sr,M/O "9qd*rWvug?7By)wR^G^|KSlGdC{k9M y=O{-꾃i
+W_-:?zmWg07e;Y)A>ѮP>(ʄGɄj>mkdqUIŎ$$سIDfjG7qu[H5k`>4R ՚ZDq.ߦfZJvr}syGa=:j`qm ]_bkS*լ}$g
+Q[ٷ}0 ޱ׭.|D0*2l
+&0q@,BtS|Ip~F|Wϓ}Db@81
+Kl
+q߱m<YFhsUܤ-#Uv#ՌǦ܍ds^x0'P0]`e'@>#qc8La9vbXhfbkMx 9^Ak"/#iq 혙hV.>l^-os 0-&(JWt:bm_YS}ZBMg
+ar&LM;޶(&Wf*jC(3B1Q0fa *u^4Te[ wu*a퀔<=wк-qؤ˖clݬ%;R^~Թ^DNA`>6`Gc9 w+1?xW2y ";gx aLn<Tx/v
+hD8ύ|hÙ`=يL2dKM9ޏ3TgQy*˭Ef7JsjgLХ MaN׏NCɹMU`~W,wNUWvm~?E%YO(mKA;ߪS eI#= IۑF SYr"&e-ǞRғ+2WEhraɩLB#3q1 Y EvgK?%Ϗޏ.?GxJ$Euꔂ,9}{?[e/Imv'L\ʑlOU<_uCl:X\>bj|6z6îP/{~>ꁘ{#r }pA wW ׯozƬuY|X?|. 7n5LaQ˯֤vXtz
+a?
+E[RSL.Ҋ(;g̬Wz\y,\N,j}hI4FCŴGg؉+0)0H7{wDӼg6kgLIJ
+2;{4k&ms*x\-ZĜU]f'ߛbښ 0G}7Q `W[BGOEGl>Lvnn~'ШeŇcr[&u?P$5'ElÒ6{JVٰLR쉚M9ZVv*<1\(ʫ"ZɕYqoվ3E7*QEGWYh|nfO@bd[eSղC'Ac&12NecnoڕDME:ǭ;O&_ig̾fd<oOӆ^]}C}rRZCPUWi{bF4"(*(zv^άRs~Ӭtyx{\s˶]x3<59
+PtX+
+
+?k{)65
+̯(#[Sxwk= =n7\fjKUmMv(RqHDXo\*g
+j^ u2$f]$)@^.X2xY!^2'jx')TIqg37(w&ef48Yq Y@ȧCST.-ovő$Y^x
+b!#A(P19 x 8V5
+:e%K:
+Vq8(q$ZX/*7)|V(e}'d䁲~+L'4X"焕),#>:v:w{OGꮁX1oRٓ}8]|'͈яMFY}'& %Mϼ_'iG VI>[Dz
+&_=CdXu= !p6"+R*dYr]8C̻Z S=M1 Lye]`0U q?\:n +\ fB*
+eIӅb:_H}]6|i|1[{<If&ejF{.՗NPVc ŷ!_m/ ǨL;g y 8~jB"O'g0n ̧ܵ[Yw6NMo|/2&ۃϫOgBgΏu vR[F$j4 joAcr z6.Ow5?ѡJzaQ[ڞ N Z\PKez3#&Rś,yv]dU?(jߺF}6U}Vt&ל5fjDWֱ|ZTr*oGrzCm*44?tH]1Y*b r`.^`O4vQe>3LؼgQ c!?8%PR}v~
+endstream
endobj
-11617 0 obj
-[833.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 ]
+11595 0 obj
+<< /Type /FontDescriptor /FontName /EHFZOR+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /Delta /five /four /one /plus /seven /six /three /two /zero) /FontFile 11596 0 R >>
endobj
-11618 0 obj
-[613.3 0 591.1 624.5 0 535.5 641.1 0 302.2 0 0 0 0 0 0 557.8 0 0 457.8 ]
+11598 0 obj
+<< /Length1 1396 /Length2 6108 /Length3 0 /Filter /FlateDecode /Length 7056 >>
+stream
+xڍt4kׯޢĐu z]t 1G"jB%DA$;kݻf<߳aa瑵[0$_ //@b
+( Ca`7
+F9nPPBq B_iP;;aH n`ԭ{ sl~Auw3A\
+yTك
+
+P/W%w77f߫{mf6kUyl KNl<y;~AQlD65Ec9koMuɺ-~WVzc-G{G
+0l];a6WcuuDOq٭US6?6Y%~l'0<x%:{ÀI~E2y|2AjQ-7V@B
+lо0N~*Qi[S˞]=j.=Ɂ,-*I1X'Tn|
+/rFIոBf:񔳒Q.;LP]qqX z6=I8Ϟٙ}Z)ho|}34Qz9s*U@+HdQ gR;`2p|YapJ9ɀ 4"7t/t5؃:ub3Av=~E XynYx%NuΩzեq^kR;˾UMfLɂu-00,<3 kZWt11I2G7˻],l'+d8W)I+SJvm1X3Vh[hPfUwk%kƥ_yi4GG߷iJN)6_&3p?.# 7G!Yn(=sRrK}''+F}Qsr(5QTʉZssZ6<G!_vEpnH 7>A*nNd
+xڭk7>ʫ'ap9o[H#Ĵmr\se1i 6*Ò'0X{ң\sq;6vw38pv(&Y
+?6F <WFrߘ);vJ'^O.cź bE\ykS\-1?r6#ߩaevg2[9nf)~0IOg7W?w=c"wE֗cjO.PV!Κ- X2^d9*tNN[m
+|#V!2-1&cw{\vУuDڼM*UZ݁Յ&]@hy(`8=Thq #N'
+]a WwhTuJ2 iwCW_d~l]?MB28HnmCO4Kz(c5AUK(Rex @1nF[.` j4]=$2CTľ3V)D6cyL]^ %_^E
+TԵb-D~ߑКcn'2&^k-;O;ul5x Dz:0V!&ayGצ!c]b|k~yGF#mV ZeVPJ/}(gW>naD2U)ñKjss&V|B2`|F| Ě(@W}XiY81
+x
+vP~g: =*sxXVu1'Xa$eDkx
+x vHMFsFD' $KЛE,F/o
+'%Mᄌ1CL;
+9.3;bŦĎPRߟMboχ{SL7Y1۔+yL*6r22 gWŲ>|_/F#$F#L+$X_OX~{=C*t\?#F\0p\GuXH4uZ}MVf-GQz;z{>3M %{pef v2qRQi@N%U<Jk[#MSd*D iF]*`oLzSqSwz&(~X
+L f`%q(Tr׶v9(.$7s4Lu$.ƃYZw?$.L
+%tN<D_%mpW+ZY(|0r AaOT_7䖊VZm]WE1 /+zTԗoQd\X]ʣhfKXupsY Y]0%3!q#҉!<HB,^ʗNjl4 ,rfm[R^ C˿\gpQ=RVSn۹jWصxp_M~ .P5{X۷2}9J:;}BͳjuO*io~!K=fQ1Ly U)܅--ˉ铰 *id
+[%FT>V-1hs*
+XM azGRm!%_Be*>)e]_<c1R8,kΤ
+lc.v|[ؐ~.Ve8_">zwWmETGmy-Y,OcǚRxy
+
+<΁v ~`cGXN{}XaN^UaC]^SM..N{!I3fv \f=ݎb}WW`m]v /VơT@W/J|├.-*#8t<sHvF%d_E~푅w_<i46S(N{Щs0OXTb5tvf
+j=vk)"CGVpWz||9 x[_-M` >/0@D=M.Ƅ^?{(,w=~ p3𱠤*^0w\59R5"WZ  Rf-"f_F^'<:W
+M"
+oՏ4*wF $l"e^-^؉a ~ y{+%nH, =HO/,yI)M
+ zfuh٥扎E.%5fn]QT^U;
+endstream
endobj
-11619 0 obj
-[611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 ]
+11597 0 obj
+<< /Type /FontDescriptor /FontName /CTDVAL+CMR8 /Flags 4 /FontBBox [ -36 -250 1070 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /one /zero) /FontFile 11598 0 R >>
endobj
-11620 0 obj
-[569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
+11600 0 obj
+<< /Length1 1425 /Length2 6102 /Length3 0 /Filter /FlateDecode /Length 7074 >>
+stream
+xڍxT6Ҥ#
+ AP"8P9ho1a`( D@
+ @~OcWOs]Ho+G]{ Rms@) q
+=<HD
+zH
+/fio3Y
+8@XDcB
+1,L-u|OrzjwWKTERϖ7OOs5
+KYT,--k^rda_kRgJ-uHi#&l$tM15O99!Xbn\
+L(fLt62-)LR1xL.I.^0ha[]o&:xjwX9ۗqGM5$^n*[NHN/+_Q=w|#I~R]<&s"x{vx7c_۹6|4.Nq5# -*cL@:m'M]OX] ulwQPY@I=HJlJ7K8,X=JXC4Bٱh =OSc)BഛUK-~?NQ^b? [KUBvlؘ?dT mƋTrDQh0@@JtNVUsR3͟Hg6wg'}@+\(K-x79aWjU'̓`
+l#g,yUQps@qBA2q.Gwg. [f߫ 6bSFV]?0Ϧu+tߌ(Г23=yޗPM2}a Hl]q|:Y\jEmlqDevWKdTVԜZ}%+7eю2RI-1Tu&'T!kwyP:7.ˢ*h h}~$~545Ъs)F1<"n+6aԺ,K~Nfxd
+wC ^IS}Φ%
+'u;
+)|^3r "U zbi1&u[" Q$@/#4_\$=:>vPux"V蟙6=xo.%ȭr컸Rcr ^J-A!w8їw]hw+Mɥ jib#$xc=φdk k#{𴄵רf‰++Yl&=! cʽevcʹKO[,"%L e9B/B*AUfBh2*aa@tLY0We`Ј;b`a~9^Y־3'{A
+yt/W>[*0ܑZbw?/HnA#$6
+'ٽ4| c
+fXss2JOa~{Ф`"_ZQ>SpE!#G[yaP_$Wͳ/
+ZBwbzS`W!,ݽZ[b׾$d!bQ* ,iEfG'R\d~fV`!ؼRSw6vvY#ߜ{%y^B譺)T%;G[+il&.ۋQXw𾋛E8n?4 <=%`Ѝʒ:,a\[O#bwrW
+x+R!*N2&m8y?,yЖz)#@0m- %vf$5y]vs?ڻW]Iiw4,VbHթbvq VB"GFP}ڎL\H}inrZW
+FX,mez8'aqojMg/J>LP Igϙ|ƈQ[S_~PLf%Uud7^.'ctGqnq ][KiާlҠ#pRf*>N%ݔ=$o
+cz᢯ț\lxiuɂ LC40=L*峍gO+b]r]}ea\9**Q ȗ+J6t+Tʝͮİmw^F yR7.6c1 ~
+s!rzn; H?ugǷc`صW{rE|n"1z_-zwr&3:ϕՕN55ر࢚U<]hXSwVa/1˥71<Pkw=D܉ء2M;ޟOFv3/h&~~'!7C#,T0B=oШIsnJj{yrF6Ca jɧqCrҾ5z|I_s Wr>(lC6b SLSX|L [Ey2*7<kDn\S0wFig+*[yqxOsX(
+ykx/n5E<j<SYZjԱByx'ѠZFk  V>~Z܀U{$2m²*I
+GOo,r˵u)GΝhh8[7j mG-N8nN]ްVVv>Ј, >AiŊc!y_R,7|ky$X{?GwrQLa&Iwisz^3nZ܌PfM&)J2X֒Qg3y EfexܸEd7!!hy_HP [vt/Gm8ƃ&P.I4 SOFמ[u2һڇ.)toNVg0oa6
+|
+8(4[*㯤(z]YY2rwc}'$?NERi\=GB8XOknTz/ТKW
+["A7zGN=`hvX>5SwZ5wL,{ ;i<CG5Vl)p),`/r8M?`M=뜏oII];t^N
+wMm8^`W9)<Nj&QHi1&I{ĚZpd@=.Y/sj]4~;])˓
+ϔ'0+{Js6jGT;UYF9f8)z8euYoĉb%S$_fjELwnҴx1ti l?)\HSW{Gr7};/7|l6] BL??@WA rpS,~
+Ohџ%7*'yCmKp4ve|՚>Sv88iz6svG.kE<.(כgbiٗN]MawŹ7t DjdsT7o7 _1)]zO ~^X!+ABT~nFl\Ѩm BD'(tiTC>`0oyNih,\x]>}-Bcpj%Qr;tZKi9
+c3Il@(z=W&-uqğÍ
+r&, 7ݖ
+~S^g\Sޤ&^F޾8C-} )t l X7xX\`E~+#m뫓owE?z*&:Ƃr{kAV-~AAaNaoix B??`M)-"sh%ԔD S);EuU;ml9}*~e{
+JVIXC'Jvջ8#'-2 b"UZR>/X\Nn4"Ѹ-| ^*V|۾ՁY;Q䬷t\<47LiСi_A`Ӕ+}Pҷ
+`p=tiRl
+endstream
endobj
-11621 0 obj
-[562.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357.8 306.7 0 0 0 0 0 0 0 0 0 0 0 306.7 0 0 0 0 0 0 0 703.9 715.6 0 678.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.5 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.5 ]
+11599 0 obj
+<< /Type /FontDescriptor /FontName /GIYQML+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /asteriskmath /minus) /FontFile 11600 0 R >>
endobj
-11622 0 obj
-[388.9 388.9 0 0 0 333.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 444.5 0 444.5 305.5 0 0 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 0 0 394.4 388.9 555.5 527.8 0 527.8 527.8 ]
+11602 0 obj
+<< /Length1 1399 /Length2 6085 /Length3 0 /Filter /FlateDecode /Length 7047 >>
+stream
+xڍvTSk.ҫ4
+^^38 QHPE XM QH
+AHg 0b}"
+kĥ4
+-oC
+8z|׿G9RLOB׆(y. /E&XuGHa>fjyC+M= gv<cۙp.M+KEe[^3:uLz66ɖ2]+UO0+r
+e.]4bk}hwwUgoYI~ހ5Q₃odUP۶ًV)_Pl_z.@H0>L`l%|~
+s}^i~)
+ћzj(L֢JR $gsa4ݏk\YmՊlbD@ ^$QN#^qJHW>д:ibKQ7l*}-jyàJ䌰E疗PQ*(W|r5a\RI*ZBZa+Y.^*h%9Y-;>G_MVmrQ6Y(
+%u
+EQӴ9aOT(%,wF{If"02kGY8H1̣,#mFP6yO=. z{ZDGYp;?->'@qa8bWb~rm c+7zR\[Z9upx}mS~&+n9K)HzZ=d"ݣ0O
+#fzUv؍
+!X~Pdܦe/J*<'`Y=͓I^f5X?*Ke88\>1RբMp;fac}\׺sƾ} }sL!Bqz}
+*u+uUsٳ$`wRnN:I
+R?Mbw^{) zNNSJPyd UӚk)#!|ږ-z])ᘔ\ϼl1H:٥rdEf5m&/ .S .i&y5)s~Aj#7\~c;;-qÞnlmk`b[q%Nk_z㜳71
+M,[>iP 3@jR7uv<z/{N6gy4c1,UqR!R+ \ZP0DU%fdLLCsy ls?Aw}Q­G Ac}6畅UU?Ofx2mVӸ[AHmK$IJ>_wYyW!>a2R't,yWÒu_uW73yS  we[s`4njU)#̝O駖}7<G2X.Z&d-\_ @[cJ}>$X!2}a,dR%i
+fRpʼZSD/5-EԄ~d 9{۰^kvǭ0>46 gn
+*N5 Dd
+\{cnB셮c>"[\9a?KQg޻̻Ǐ>!&b~
+2UErhf 1yJ]m U( _rHJzWyeF2%ME,Z_~ZTp?F*s2U듢os|bV飭* \ݥbzPza
+ގX7e$UIPfY2Ao>̷"yZP^0~^lǪ_`ig.ֶciF:aiF%B#\`>^exYgCZ-|d$A{gdwέ4yąz_ǩef.4> Q\O+ ]3aJJ-/;;껛A.}d}>j҈\ [~'2tH%n^ޙ}6M>}'bҵUBtfU>alo|0eɝ$bN./~rKKXN/sAͿm˲hk׫|ˇHnϳO;im]+aԮjLK`/Mp#-)2GהdH*8[L:go]TgU@^[X@ʩ 'Z[ƇXMԯ;ղ;fiL¾}˼?fv& Hۧ>MAӪtwV|ߦuX}4<6ݡiW'Ρ}'2٪ɯMrrW^_qGC;9!
+?LGV+/=„I2 P wȇIv[YW~j.J .)O &!zÕEk#j}aicXssѩs*׶}O4x_;
+`zOF61ߖ%:!#&Xi`V 1JY4ǩP3˥yģ9kHn
+eT!v7?tmZp
+2$|xSGtt]5,iTEl/MŽw5 9؉x.i_KW77£,j~`\EoL 1M _ ^)Z:7ԎJmҽ$ 픟ZJ9e$ ,qִJI(t
+P2C<Af[jK`J]4,t_P'tD[VI 4ˀq{d F1ҧ)y]!w@X\G<c!f#zK9{så6 JXbh)U45 d=V'Ûy1ElG$SőJyÓX.gC?wkW`"jY'ߊS6F4]}G'
+궘oCJ|U6s:[&(gʚqCoyZdt=AD&`#ĝ Vߜ/ |ll /g[CJJibjlס+E;oun׏Ji喇gw%/Xf_Wkfr:mZ`Tbdh 2x!aԕm2q,(&^;(60iFvY^oSlyօLE=K+4Ϥ]\}a9M]TQ{O~ 9wy^O=}3Cgh6OK׳c\%ARu]܂aN qP.7g%;٥l9-Ѫ~rwg7~ai8%CńGR%|LcsF۵ʏ};{Iw߇o7E44\n[ZfFt4_iرgtlZ"8>%H /M\ez'$,zJ$7L7nPsG`AQ}#C r?v9GYb:VQU޳u.D ޷+Z^Ϸ:Oքئ63*_S&[hvh%oakџQ- m*ؘs9^[7bmSʳߝwd+؀)cMIIOzʱ&5lz5uH}mi1_+τަoϤf{҂ޑzcn>:lB㠵Kknk
+#>J>|~#@ x93l0N RR8YɌra)MBIrFvmvɼ"o͔4s?pZ1=:_ʢ'10iqo9|sllLxT*գs&P8
+endstream
endobj
-11623 0 obj
-[525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 ]
+11601 0 obj
+<< /Type /FontDescriptor /FontName /GUOWTK+CMSY6 /Flags 4 /FontBBox [ -4 -948 1329 786 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 52 /XHeight 431 /CharSet( /asteriskmath) /FontFile 11602 0 R >>
endobj
-11624 0 obj
-[502.3 502.3 0 0 0 0 1062.5 0 0 0 0 0 590.3 0 0 0 0 0 0 0 0 0 0 295.1 413.2 413.2 0 0 295.1 0 295.1 531.3 531.3 531.3 531.3 0 531.3 0 531.3 0 531.3 531.3 0 0 0 0 0 0 0 795.9 0 0 0 722.6 0 0 0 382.6 0 0 663.5 972.9 0 0 0 0 0 590.3 767.4 0 0 1091 795.9 0 0 0 0 0 0 0 0 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 0 560.7 295.1 885.4 590.3 531.3 590.3 560.7 414.1 419.1 413.2 590.3 560.7 767.4 560.7 560.7 472.2 ]
+11604 0 obj
+<< /Length1 1393 /Length2 5903 /Length3 0 /Filter /FlateDecode /Length 6851 >>
+stream
+xڍuT6-N etctJwH0@6`QB@$DJZi DAB;x~9{v02V#4((,T30 0X cĹ < F
+h
+O?? !Q0 AHPS (@ χzB._75UP<?0 a.?!,
+vuEpX#1~>"7B{(Op7s'ocs@`Y)) Y 9,oi#sC H{z"8";}HxD7# 0{@lQ.>گ߈SUE{@aYII$PZZ2Y?SQeƀ8<Ђdp2m`K[
+1
+G7S P &j*'ȡC5_,67ŃKxv;Ivލ힐XPdnE 
+ѷi?Uwp6kyMATXW&qx!Hcc 4c1K$+KpIE›5vI:waw+5^q V y{ʩegJ%]`r\]HsKMVoN' tݜݶ.Ec!Gom;u79z_$WZ]%c|KY$>2HEJC7UZǣϦIBN?S%}v z"v"mtG#ȓ#
+S"q7N1AM['v(K ltCN*Gv%وj]Aj G5'I:j7 ~@Ї]ًLҫoܡ~>pذ㡁!J 2+y z\ aN7 [nZ! -@St2ƒ@^ek[{= ({HO[>trA;!d'!!\q@i<;&0.1\uۿsbֹǡ%h:\zF3;u#<LIi]QgEړ1_ϣB?۵HM YѮSXn[(=iJyShߟQ_BM$7R="
+n "gξW˻=VLiR;L!
+9X q[vZ殪⛊9aK{Ds'+οhI8Ǩ.xyuDt]UJHf<cba1E+-w]!_7-TI]#3/_)n@R{'ex+!
+a.WX$mq x1mܡ+uL#ˠ_s,s_~QlR#GtسauvR
+J6_<1`@}\|85Rcgo2oGQk,7:
+WWv#l錜Q< wR\:Jft2f»RG;/Xmz)lwt4\l ?Hj
+6H֗2MUtm:Q P}<°^y8!vufB'bo7ɝr DY [%@>sz{kԓlTDv$3߁15'Y/Ǐgi,#R"ؖYi &ܢ$><xZ!q|tyWl3MOF,ą!Mۄ/kmCYӣ/(zs)bqcaw7uG4 9(wzϿCDvQn1ÿ)C'aE1aH#$[]ņd =]=kfl2͉jd?y+&3eB7u3jnF\UAs;X (}Gn*Bai
+ޝRqoδm%DiI Gn &Z
+bTBQ w!,oi=s8+6;)832φ{%@gpV1zp0?T;_`Jý
+%{DlYK2SQUf)W48 aSԁS풃1Az&SohArD Hň Jsy?rRO>_F4*dXc?'ΑHhLQKˁb9ߵPjdYY[;R6qqw!z>C|TnG?C'gYn!$ꎳ۶Ƌ[yzɛ2˹RzvRe[*/K,";ߔdֱxE9+o#e GLnj'QSqG?s2pX@9|n8]ayzK1jjS \2R k.aRl߮ÁmJW-_?M'd4]h6 HK2ӌʜT*pXWF=dOR0Az O}&AC17s+fM,/*Py6?%097[\ȠshĤy)q*mֳÜZuJ2Kxr7-w1CJ?iZ !RNC'CktIǩxM~
+jO=[+HPIS!]&.ɹ;o;yv;SE-]+glr!yx@1П2r^7`ACJ4H1hY]~R5tR./46u׀>Dʸ;nՔy mZiWGԥΥ'sI6釣͹,`t -ʆ0><jr^[F] =9C*}z*9׃&/gFCtz0G}BJΎ
+j!:F9g[\tA)wE\I̫ѓ^h}l
+f]*5-r,?%e*x_VF 1ETǧ wL.!f`#~`p4Kj[ӓ][ɫIY*Ay*,Tz$)IM0GAհr:O;k$G #TUZn$_;Bd۾%ݯzu:9ݮ{+ss6z
+ J~S/k#q}5
+Kv_FDf¥Z}Z‡j{ugI<w'0xn7J:*q4VKdU#GąS>N-o{0zBv`xa9wJ 7 S[y>wk_ntwؘ'd*w ^&C%ZlUqA2B nP+fތ "/z(@>xߢ㯺o:]Z:R|@7trR |7n]nxRn^Ҽ[_BFuE9N 'گqS#}Y Yjȼ[f-UeTIÄ+dIt:Nߘ7;RFgղȧ ,pᘪ
+x{{ob d僴.v7Tcwm-:w@Q-)3ׯn2 C#wt+Vv*I)W UF8>Q]8YSo\sl9i'V\ Vj6kATR ۊ%vxs[ 5#)QwN^mL*3b+n"r5ۑז=s+'k1VIp0k$9\PuTC̀^}n8V %O!E 8h3*?ZĈup?}O/]i|+ahb15K ˲P]6Tuyi5ueCpgUƪٻs} >io{;
+e>|(􉻙6{OLݶ?3oQ~Kᙘh"j=h~ۭJ
+endstream
endobj
-11625 0 obj
-[638.9 ]
+11603 0 obj
+<< /Type /FontDescriptor /FontName /TMCDBM+CMSY8 /Flags 4 /FontBBox [ -30 -955 1185 779 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet( /minus) /FontFile 11604 0 R >>
endobj
-11626 0 obj
-[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 510.4 0 472.2 0 472.2 0 0 0 253.5 0 0 0 843.8 548.6 0 0 0 362.8 0 383.7 0 0 0 489.6 ]
+1759 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /LWMXQG+CMEX10 /FontDescriptor 11589 0 R /FirstChar 48 /LastChar 65 /Widths 11444 0 R >>
endobj
-11627 0 obj
-[625 0 0 0 0 0 0 0 0 0 0 0 0 0 562.5 0 312.5 375 0 0 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 0 0 0 0 0 0 0 849.5 799.7 812.5 862.3 738.4 0 0 879.6 419 0 0 675.9 1067.2 879.6 844.9 768.5 0 839.2 625 782.4 864.6 0 1162 849.5 0 0 0 575 0 0 0 0 546.9 625 500 625 513.3 343.7 562.5 625 312.5 0 593.7 312.5 937.5 625 562.5 625 0 459.5 443.7 437.5 625 593.7 812.5 593.7 593.7 500 575 0 575 ]
+611 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /MFFSWE+CMMI10 /FontDescriptor 11591 0 R /FirstChar 62 /LastChar 121 /Widths 11465 0 R >>
endobj
-11628 0 obj
-[525 0 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ]
+4454 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /OGDFWZ+CMMI7 /FontDescriptor 11593 0 R /FirstChar 120 /LastChar 121 /Widths 11443 0 R >>
endobj
-11629 0 obj
-[583.3 0 536.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333.3 0 0 0 500 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480.5 516.7 444.5 516.7 444.5 305.5 500 516.7 238.9 0 488.9 238.9 794.5 516.7 500 516.7 0 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 ]
+609 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /EHFZOR+CMR10 /FontDescriptor 11595 0 R /FirstChar 1 /LastChar 55 /Widths 11466 0 R >>
endobj
-11630 0 obj
-[472 472 0 0 0 500 1000 0 0 0 0 583.3 555.5 555.5 833.3 0 0 277.8 0 0 0 0 0 277.8 388.9 388.9 0 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 777.8 777.8 472.2 777.8 750 708.3 722.2 763.9 680.5 652.8 784.7 750 361.1 513.9 0 625 916.7 750 777.8 680.5 0 736.1 555.5 722.2 750 0 1027.8 750 750 611.1 277.8 0 277.8 0 0 277.8 500 555.5 444.5 555.5 444.5 305.5 500 555.5 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 527.8 391.7 394.4 388.9 555.5 527.8 722.2 527.8 527.8 444.5 ]
+722 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /CTDVAL+CMR8 /FontDescriptor 11597 0 R /FirstChar 48 /LastChar 49 /Widths 11451 0 R >>
endobj
-11631 0 obj
-[525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ]
+172 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /GIYQML+CMSY10 /FontDescriptor 11599 0 R /FirstChar 0 /LastChar 3 /Widths 11576 0 R >>
endobj
-11632 0 obj
-[577.2 524.7 0 0 0 0 341.1 ]
+200 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /GUOWTK+CMSY6 /FontDescriptor 11601 0 R /FirstChar 3 /LastChar 3 /Widths 11503 0 R >>
endobj
-11633 0 obj
-[493.8 0 456.8 0 456.8 0 0 0 245.4 0 0 0 816.3 530.8 0 0 0 351.1 0 371.1 0 0 0 473.8 ]
+721 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /TMCDBM+CMSY8 /FontDescriptor 11603 0 R /FirstChar 0 /LastChar 0 /Widths 11452 0 R >>
endobj
-11634 0 obj
-[285.5 399.7 399.7 0 0 0 0 285.5 0 0 0 0 0 0 0 0 0 0 0 285.5 0 0 0 0 0 0 0 0 0 0 0 670.8 0 0 371 0 0 642.3 0 0 0 0 0 0 0 742.3 0 0 0 770.7 0 0 0 0 0 0 0 0 513.9 0 456.8 571 457.2 314 513.9 571 285.5 0 542.4 285.5 856.4 571 513.9 571 0 402 405.4 399.7 571 0 742.3 ]
+202 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 165 0 R 204 0 R 254 0 R 287 0 R 331 0 R 376 0 R 429 0 R 474 0 R 512 0 R 533 0 R ] >>
endobj
-11635 0 obj
-[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575.2 657.4 525.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 488.1 466.7 460.2 ]
+579 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 553 0 R 581 0 R 605 0 R 635 0 R 651 0 R 680 0 R 706 0 R 725 0 R 758 0 R 779 0 R ] >>
endobj
-11636 0 obj
-[514.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514.6 0 0 514.6 0 514.6 514.6 0 514.6 0 0 0 0 514.6 514.6 514.6 0 514.6 0 514.6 0 0 514.6 0 514.6 ]
+869 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 822 0 R 871 0 R 915 0 R 960 0 R 1005 0 R 1033 0 R 1054 0 R 1094 0 R 1148 0 R 1210 0 R ] >>
endobj
-11637 0 obj
-[272 0 272 0 489.6 0 489.6 0 489.6 0 0 0 0 489.6 0 0 0 0 0 0 0 0 0 0 0 0 639 0 0 0 503 0 0 0 0 0 666.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489.6 0 0 0 435.2 0 489.6 0 272 0 0 0 0 544 0 0 0 0 0 380.8 544 0 0 0 516.8 ]
+1327 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 1265 0 R 1329 0 R 1388 0 R 1434 0 R 1489 0 R 1517 0 R 1548 0 R 1608 0 R 1652 0 R 1699 0 R ] >>
endobj
-11638 0 obj
-[777.8 0 0 500 ]
+1786 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 1752 0 R 1788 0 R 1846 0 R 1898 0 R 1940 0 R 1993 0 R 2031 0 R 2074 0 R 2114 0 R 2146 0 R ] >>
endobj
-11639 0 obj
-[450.9 0 417.9 0 417.9 0 0 0 222.6 0 0 0 745.1 483.9 0 0 0 320.3 0 339.6 0 0 0 431.6 ]
+2242 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 2187 0 R 2245 0 R 2305 0 R 2347 0 R 2388 0 R 2447 0 R 2498 0 R 2548 0 R 2585 0 R 2640 0 R ] >>
endobj
-11640 0 obj
-[667.6 0 0 0 0 0 0 0 0 0 0 0 0 458.6 0 406.4 510.9 406.4 275.8 458.6 510.9 0 0 484.7 0 0 0 458.6 510.9 0 0 0 354.1 ]
+2743 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 2686 0 R 2745 0 R 2799 0 R 2850 0 R 2893 0 R 2934 0 R 2985 0 R 3040 0 R 3097 0 R 3157 0 R ] >>
endobj
-11642 0 obj
-<< /Length1 2610 /Length2 30311 /Length3 0 /Filter /FlateDecode /Length 31774 >>
-stream
-xڴzeTup'8ww {pw ݝorν7 fvuÛTYQd
-922TA&, ;s
-pZ\
-L
-p:XmT`e? 
-t0q0;
-LWi\]\]XXwfDe$%
-.9I8̭,l\
-\k@p]@V?8qpI@wkLX\$P vwG
- tO_˟c_a5Wg-PWgkO=Q
-(Ry0r#/' ̬~k5n-
-a(yN+qe?MuC|_IU3PMmj\Ex_
-.yJn@gdg|_`~I
-B(SDd硥WEf)؛J[9R1!-?57A{yd\{2Z&>!.KR ̩ םHDF{,+ :y_>p80g%sh6!%').*['ۊE}.yxe;Qa`o;2?+Gt^߮VmŎnעQoh Ȉ|Ss'oL!7?',*Ε@pN-Uq|J}"Py\cGL.1T$kfF2^n}qIRWr>ySk!\rb
-E.p)! r
-
- vKx(mĵ!̠g1Y$f( GݍQeU*4S.$Ar2R<H`k;E>mO|p5}2|X5Z80/ +KANun%IV\{;mȨQO+!؟HG4C Ї::|L jM^`5@Mr^F$M>_%=rd]Vb
-`Gm͂##b䨰k.Ho@I$>LVcH,rÉmo9䯢q:6_Taj&ziGMH_pBܓÈ#)B t3sGϠYJ%['WC>;`6yL{/đ
-)_In)۝C)"XhKZDukwQr9/&,
-òWKӚXp8SOB]:,@)ʾt FwbȮ[u F\#sk5RAV2<wWS yeL+42ë4V<}b'OVMX˼Ϫ%$Dan0KOh,RNwO%D|XwW]bsuty[bΈӅ>W5!}H!Ї}ԑI#$=R4i
-ΨC
-?m.!8uZ Fޥ@pL?kǦ%ktٻtPwkA-֝7)`a}T_e5]>j<$ľXyE>*~MxA:8lJT[ʊμ)XѱL0N*"BA*24_M5qO?)}NTEMCco z/i#tβɇE%H%w㚬'&—s8BGR;0`Մ71)vW=XբmPcB,SK͌ċ@Z9(BmlW}*ۑXA C@ik~e
-@d-H0:֭c%aQPTw>X2"ρAXmBN Nu]4N@(?5VY}M_(TenWg+i=j FbI
-}ҍqAr&>^,)5萻~a31=
-Ź=V rܼp?AU&
-RyU kG
-e:$_rr96X5q̍XOT1儭 ]XsVur`
-h 6!+[^+bLӅ!e+|L+$P)t>>'_}8P"&+.= >
-] |ŕ
-r=Хyϼ{g,:>~9"
-ՇX(׌ViL (oBy'` & hЯe6eJI`J !]ez?tn4p [񭗸?Cu1J[97>^/:RP0+8ĺ+$/QvTbz gpCLN#߳hV 4tdw2un&6Khs0ԠSC`I0Ѐ0㱏T2NYNDi S&~~y}m
-C yg1WKP'N5D='
-9'ZiF6`ܶ
-6!_SItk{`mԖ%Ƥ5cX\$ZDi#0EZ'Rt$UOQ+hD⫝)Ox*LXl!9}x_T ó4ַ|x&iAXSI1 ;
-.Eu'^|O` .4P˟6E* ElVՀlW.-z6/`UF#bǸSJ챼Jr5`jR|xH+U~Ыdxn9dyL;a#avŹ`:0\,F
-C]FuGo<"zPr\;2\'>Trq
-o6 XI)F˧2"C]}=eL  bB\53ַB*a?)e[>5;rhS#C%&](1 1ƺL=2"Jx݄$Ǯ2|>Wu7¾NUw
-v&%gce(j inCF{-ݼp5''{SM\И*Au u⽌yKXw4 +^.^\zgNb~ NFJ$A߬_Bb#D7PE%cXQOj]O)LK[Z* 􆯩PUL Ï~yQ boԛ3WfP1[/cUf&]eWyg:h #5\"*[sn Wa_rf:-(}ٕn󣀩xXFgzcOzOO!Y)_o/A2]IKKyMo\ b a"Q`F^Y &:/0= t$o6r 44!A$LM2Ρ,v_:aw6\Ҧλ{uvCrIO= |RO-m<*1HL]@83Ce0x
-(}l:B`W7T)vWxZ`R>-sjm_iN(q0k@;MJ=JUǼ9ef"]y/+&-frxJ!ۓ, iM^K"!,}Ђ#S1h=#7#e7y-4g||[-F w&Î#sD3CƲ
-원,sGrQk1pKgƍ$"Pft<-ax^% "ЃCݶjzT?IZӆPSy0ܷL&,-
-lB!{w{2+ڗM6{ͫf1~Vgl]Y}ň<Ql"ܷ^%Yf{`=l `^';Q
-% qӇap"B-j[RM8JzK;&(f{;cNU5 ڙLz
-c(#2q(h
-Q\%V3
-\U/: uDk_;FtXMJ AǠG1\Ig%/5\!zVaW
- q4kk<ZE'i\6+ACd0xkqtm$Cu=|85
-RvᑅMkܛgP^@i^
-A=pZ
-醤c ×ʟ=KDi+
-zgIٻP_xP.Vjt?k yQ*sЀt)+4~䔨v^'Ɇ!ى}~8!&e"dSaIסSFz2*{CS~b}bFzA0˘ar߽[%ĵH4q
-&rV\^Æއ &_?v.+>h[^c7~k IP2 mk@7X/B#e`ub< ]Q
->S@ )+N/~yq0s.g܉rћ| bwn&_| MS`ar%QJ<k+q <p,xY]wDs^(Ÿ6߆(89ݶeu,PͼML Ü[g
-a
-WBvlQxύ4gWLGlG6ة~J/GFNy=iwݹg;Lf"."OfьEz3ueM*?Z9Q7KQ?՚_bsܑe(.7 Wo#0ybRESٴf@#d9c.ABXda? 0@xY<A7ԫhF3@_KFN wamͭڡ߼B¾=A4ջ/&, ۢRxTa液lxF@nANgah^
-<S.]q4xMݷ1P}$-x{ j諩rFIx谝)k?Cw#<t΀މa#ηŘ-o8HR$ٌjHvd|#YŸК"B}>-w jςbލD!q>䑷V6UydxYFf$3]7wAr:X@R`й08ƌ];0\NFͨoC:]@3.;u\][r h_Q 56QۗhCK0{KAv4u4}gDYrQtrqaIrx?xXrrU2H6o!hC;`[>(ӾiŰe.6_R7۞cSݼϨ
-_>D~ūahRa
-ٜ}1=1zlr#e!!Ã(&燱& h
-d l`il!擬,;v#4ЊJʭ& ,15JL݀f#'@dbyQSW-M`̅oP4_xyw%YD%Cae<\Zo/Wp JE_M,i7:5H)g6vYA5
-i-iB…,׌_ڍGʬZi|m0xDDvS m)z75$>6o Pl>p4捂ۼϺ(bUZ +{Nvwq+~
-vHH΀jmR:=3%q|AȂCm5dؒ&VTThL
-DQ'>u;^Vq5_b)8FHJ
-3n^\ix8"9,Uוfv4q0Dd9@{:hn\kNh7M`V S['a'mA&IcR5LfSM"Ivfm놸T IR3?n`['9(Hɧ]8cѻ7ggz.c(b&vE 2ayꐯ.G$sIwLs}ţ3(GJ2)t0$G筿Id1}WӤE4tsvO ^/6kcdnw!1Ҟ^s-eR?pkt{ǙҜ&Tǁҍ3˯bx wCw$8ffcG p~\R"x4Y5ߜ sED |~>M10x]0X\:燮)
-b'
- x
-C0 J3Е(.ZjCQ'uf+|A7'L]ZͨHW|z{2IR 0"10g2gf޽
-.H|EkɋT^kw;Ӽ] e8cY6VMzfJ"-XZs+%LHcx(ˤbЫ]8RXjNoNϲ[!pbXHK/ ?{67Z_QּbCX8!*|s1L|rN Bb~ר52gn'<*7KؠMJd燺ZØnTӗ0IQ"VqN`RW lҶ'kv; io\umuXWv3R<iQ]g)*Z 0{vYTe`l)lkp52ȓq|JHMջ+7m|7LFdjWS㾤5;c}țɜY<P_#t"ҡ=6ĝ-#jU$gNtKgwKFy5 -K*rČk9Ff3՗,=J,_ޠD'7_+ wLpZnrwsQ)M
-v:I8 {<O6{AY[c {"B<FTgnD"|~Og*٫zǚiX ֯E" k-Khj,
-GNSŻZQ#::(y}։enlM0uzh2:2ݖ~}R1S
-m[_6}qWݡvu+m3N jGcQ+MxxY'Oz7;&z 
-UEK8&mpB|<?Wm~^\L&Qүb y#=,nÙ w`iY93
-/NZe:iəwAե<pHxvJ=ױ; \eh6,sG{-TO47J ^^ /=9D!% k(Bz#3)% 5W-eg -x#hBfL*.uCyխvyhR i6R$ESD|2XVp1ZI|X2隺ĦJ,9ݲY[c ]ܩ҈.c;DҟaK ̱ NOMjẐQijgIa۶Zl4"sh*Jg3-;S˕Г3
-?E٤4!+l2x9#MK~i*6b<yl^u?<82!
-@Km2Un qbS8[ȥsbݮǝ-}=0ey-`lWwqVX~-\ ueP(D`zDO04A\.Ex}l&SBIGK-ҙ`D?oVhFZv
-F/mˇ!ucshN`.Bq#/EDvڛOI#|߭a !̩R ʾ*鐵H:"5]㫋+3Lzv_aOޛo46|1/bLttZ
-cguHX C-ٻ_Ϫj =w |#sk)v>hۙaCt}mdk$h́&v8kfRv^oQ[uإBW Ȫ踹 _KLJC_*<hTKVp%po@TKrb,3R/?=!8O Mcч'XݠZw&<
-PV8T l_+N/Q쵥cvV|GaO=!ÍP_%n&VzGc{
-ΰfç Д%4ġ&tu}{JZ@l<E/~AP@vʲ54|t6imԥď?m%扪xcա`q|fsJD'ja|2+L1^(}*ez`fC|x@xČtϽĴ 5e;1vX4B>\䊋(s9APe'tmpȑJ)7NY;0 +Ax'/^T:&LF[BGϻwG8݆l__Bڿ 글wU<BMĞ w'0GR{bE/P1̐nh5q$4+xb3]
-Xb?.t^ C &W=VK|tt`@ݏnv<:ZfIjQO%y[@b+Mvƪ>| oDi`o3J>}YA
-?T4VUJ8MP{0T9-OB^MkfM
-4L5h3K6ޞˋ}NJJ|QCˠFYuuGoWp,F9T [%t nX= FӂE=^W5j7UxXz V0^K' 0tY+Xy
-*xk}[?߫z׎ꅏ")k\FEkD ֶm۶m۶m۶m۶M.5ˎƇ篽5/cCzM5*yH!;7ɗ4^j^&0T}a*0_F<{,&NձVHnyӆC[) `<*E(B>(EƖ
-E>ESi/QB>r1+)$GSRvFU}_,=c
-N
-|)
-tQ
-1ju75#-LuPU&_zfJg^]y֯ U|/a[
-:EP*GUH#(bi)ۼI<*l>)%86ԞɻLGx#vơ-1#Mpʙ5qx‰|3"c~`"(RʏD)merYkr'D%reRB܎g|
-<ҌVOpN ~Ce=a~茹 CȬ πzHVzw}6&VtU))*<aX'.D{AyBp{>GKvdtp#PV/b*'WqVsX94c~ $Z3RYǢ&8zҟ%pG3 `E.#W-f䵃67DD 6y8&oB[uG0 `_/[6נщ+2x[1GadSrފWu(oȋx縈{y)_}8-'{mA=:Eկݰ}C K0FC6tQTd/Z˙]/4DxENTMv?u8l1B.Hv  \nq},g!a7S68lt`R6-4jJ 2>%^|2m/W@!0% *c(%HR8/Yğ|Nj:?wv \<O7b0hCSY(C4HZ2L0@zƅִ2{?\TA<(7Jz"st9{G>d$N2x*% a
-4"A
-`*I6E ߮-ʠJrax|ښ"ƻs]TCoX :jpBFV)vwR-͉?3FtjE̊|״MJg`6FAл?b<,vޖ$-ӎ]J+j?Ur9VxM/ְ-
-%&S19V/wk[,,Λs 3cf*{ˊdH%tq^IJ"G &
- bТ!Y٠n
- !evtI*Q& 엃D'gUm;:<\c.^@14pQyMͪ IDx
-~CCkd:̹Wy٦b@&
-ʔS[`NVͳ~ !VN4YT5%z fy<U`l*hN MO)
-L0puW2?!~ªϛOTNe4NDumf8tV )YKtkҏņHgrK|5镾( b`Fzƿ2Z.2 0Aɍ cE#_W]t40#՞fJy m>$T?0@ ,߆I/T\g_M~]29 ӣ2( U9e Ly"
-gI1ǼcQۜ#
-SVVY6~+ק{/jןd;*@;14 Еn~5z +_ّVL(s˗gp uS:ZivO2+1@ƫ(rfj+;&. 5L-z(ױ^{feAh2VA״
-ր\Xl:SQ~R|K*Z`gO۫m=Ecv O}b7鞪 /WJ%>JnSGd)
-ж$
-
-.9&;OּU
-y {<b- 8W?05K*Vq[>y{p=.C0aDˉϧp˚qId킁yq}rT~8wŐhgF=`0VSh5,_P[߿Z|8!NU?9IZa~ȴM͞JK5+XAUb/&|7!@-ƺzfw0&z*%'
-"@~ACFqJ
-<cPD sc0 ]m2"6kIІJiaz)=MVU-)*G/1|h]¢t/ZO=^S>;qs=iL&9xy@f ,KPH1tZ-tUx<=!Q{Q|: ~M;h&
-0ihnm<q6j;x쮃OJPf _k52h k&ⵠu^Z߁[< |6Xθ^ę3 qgM,K
-cC֚T(#i+L_/1+ۈ77Φ+
-aںh?6K;\t%}gb?\avM/veMՅ6Jewub=2k#ExؽX`vŜՉ{Dx0E E{fZrq'}P&V
-hBЖY}Nud
-Efɬj{}E<w4T1ATc U (qD$^QXRkɴ_֤@h_nXyY_{9XT;cre˫ZtHQ*+hc
-7_o[Ł=Qb
-9C^1c3 Ey‰I?0v;ЧTzG C'ofN|K|Ĩu}=?~EsCcKͺ7 <,k4W|NC֚Ƨ>iᏌ5MG&?c( cp[ Ҥ ||Lx5ExtN*L"7
-&UTn4ADa54_ϼHD/ /ۙh A<LMojdMCrG=Q27{?iR=^vKNwfH%:ѢiW>d՝?`z?AFrWUSoA/ "|!*G1)T&c91L\bޡܦi@nվ@1*'m y0 haj2oh*{jmߜ"Y>MtljC0 eg)S?%p@xFQ >F%sZfԕGޤV΄OO>n.ʾKflV$ 8Yl.,|dY)Mhy7Da4|u{K
-*j-F9QX},Fy7Y2<ɓ Dfͻoaےw4F𸪍<mX?~pC\lAvA|K'ϧw,Kă>i0W qf7p;Ȗ(+EvfgB٤AF>gVN@pavyF[ĆB:Uם `:8<"*VY06(rx]0iַlo
-fD|/J Ԯ]yQpIv8c[<+੨5aC M)tqA ȹ7-
-]NbJH1bFʌ?cg= +]dPP
-qsM.cgrC8u05R0B5d69D+G2/9M'+l ɯ]@)Ȇ2; "DfOZ%n ȲVWhշϗjHKFo-3Š3J-cz߉$?1OR8>w䳈G\qA`L' aGeCbS%:w0ًh|ɗc X!QDP̉ᄁ19 MH!rVV,=Z|t–qŃJ_m6H9
-x>oX?$_Wgy o蟥,YM\W<[wEE xvg\hWʑtYG%h;7S4#> w!`;'hRBݢTFwsCq:-3D|5rTQEf`9;8XR'!3
-oY H}ὒcN
-4w#V!:NsR Uh98E
--ڜ)1vw72$f)"0rR?%XCJ@J*\4q5ș8k7lg*Dgb&RCRƃ$m:z5\]u+QFʞ#-g>I9*MKyC#x~[ckܠ{#.A3.vOEo=-lޭ8هoo5lxjbgLW]B
-Ke[L3T>@*]Zr]yQvx9ʧ i`V\VI9 wyEH
-w%kÂW%){p9p5.K^
-7;"MYYcG
-ƺ= ";kC`Y/\ oegej?Hm+n`sN;ɥ4+Ąv@cJx$$fQ7Y(NWKq]l`\).gЅ iEtɐ*,$).B@NÂ52K QabLbm9]er҈KGFaǶ2_B|1PA3Yl/{b['E;ZtBYsRT2P`9`/vJe\N§^6BW<Ĕ)O'9pI7|/
-̧8w&EނƂL?2,' B0~,1Q-F6(vGIީo~ +֯};*9.OG&T!}"`ߨ
-LLKi="Yi<7)^A2`{u#`oM@;b~Z뢄>(Y-{Ex@ymՂc#)d+ЉMz-ia aE?s$ pv\:Ah+ˢn׊ /d4">4 Od)8scaAh{eR~)&,4YH=݊&f6Y.1enYBtDHU } q(ڋ(ZРEr,Mf2L/]2c9eky0
-2TX<ԡ?^z܉lvP7σ4tn||헺}9S
-Pٗ(QvԒuTs}듶WJageatث=bႜO]뛍ߡ
-%EuxjӭUBCZqC6gu;Aw*X( xD@b泗>-V8zk4TꐅqJk~CW2AѝA}AׇVaVvb+
-$d4ߺ7E ?N:N[}sa/uc3q d#j)"枺wG鶏Xl9.fLO&
-5Yhd qw
-_F'ޚbE
-'ٸ|,afvv_U-QBL=`b8Ir:RrC{KQ'rH9c6cɓCn Hd]jЁRVꆌƧ"?֑ ~&
-.wOZX vrJQVqk?nёC6"ʣDz D9'FO$m
-۠J믅r.V~XʌT~'gQ%CIK/5 t.8{ܨuE!UΰBD2K[p?ݹPU1ՕCR8 Y[n]zcLXTT
-Œ# f7.2GϘYC3Rrse \Sx*r!"`Ι. (JfwI1F.rRqvVbN
-ޛ׎oذsR"N
-|(U]0ky1˾ka iX
-Dmu44)BA?22nXщ0*%:1"-2" IHσYHYgen3yRU*ffr_BG&$]09OY>-dA+]tAy帯eɎ tF'-tsL)2;1'Q@iJqBTtkv89RgFrX c5B<Bn< `CB;A9
-9J<pgfie!fes1ۢc1KkM~yuݑĶiC٤_^h SD]m^Cg/SQ7(8BF- RfO#=k; C
-endstream
+3246 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 3213 0 R 3248 0 R 3294 0 R 3339 0 R 3394 0 R 3448 0 R 3499 0 R 3550 0 R 3595 0 R 3645 0 R ] >>
endobj
-11641 0 obj
-<< /Type /FontDescriptor /FontName /OCVDMH+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 699 /CapHeight 699 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /endash /f /fi /five /fl /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11642 0 R >>
+3754 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 3696 0 R 3756 0 R 3801 0 R 3840 0 R 3888 0 R 3944 0 R 4001 0 R 4063 0 R 4114 0 R 4164 0 R ] >>
endobj
-11644 0 obj
-<< /Length1 2532 /Length2 28425 /Length3 0 /Filter /FlateDecode /Length 29858 >>
-stream
-xڴzePݲ5
-181@Kk -Ew vFߑ~{1Ll=]m&
-?\54
-G+|TT
-`XY@,J oaǁ7+osGwL, J
-5qW% cos sv+ᄖlEi/
-1&A$ўTc\c86G<i5#)?j|\lT}{gA-1$_m /<!0*!-ݛ\<^~Eg07|f Dv#͍~[0A.jȜ,4Pqyop
-ޤ CP7+g'0CKF]5uHIʼs ;Ȇ&t?/;i9b?XbI&2|K)s7Is{y*`eQSc:%.jKupw[ ؛$s0R: l
-@98C24c%7!9ږ(=g^Bm<wö{!3)V (ɒi
-%0:
-ai87P.%hGs}=y
-æ6l<ʓn8e>eǩMya)$S n.6%wu`/'mdnnL2lإQLNxcfa7[egA -bBn\v6ܽݛ/"MuRNJhV=2to+&|Ё?7p_ ~A!
- 3An >RL38 ?\w'2 EE1.EOmG2^:fdܨ"ӆ>KT31OMJFeC=0c rWwh(HVْ(Qx}EؠD]+[k' [CXƁ/*8 2_?S$~h=]%^ D_|HD;uϋuĊƪ{gRZm{3hZv$wtG1BT?}ckUc4}6kugeJaCdg+՘=;*J[b<Bڃ'763u_nfwVըa``^gy).4FϭEIB Gv}-]^NO;Luvm}Omcw8/ bkTk{3QYm/g+C]$+~!0^nj2ͱsIVz|7ڠ1E놐I[x"e%LBmZ$'p<>Ne*͗b- R~][g d8'n'[XAhMqتSdj egX+cI7_O\3]EP=hi[7_<Q ,s|rI[$$0Bu`L95w5t8xuCZEH̺jɚ"pK#<_ꕖSZPԀ[崼2M)Q,yr5sEѪGdp {Er|J˗ GX|]A"Z8C,<(#nrp{oY^o?i;XcduȭsXo 4
- T%0u*T%Y8T?k;>E<CsG 1-eLZ=(C,v[_ɑACgP ߚ ByaE/ ΄oXDv_} =ѭˮ2?a|ƙe aʺK5}gdϣ߃ Q;Qo#
-pAFH1 ;HtWS̼DAT>DGGLrnV Y[a+GbN~廐<WAh i+'<3?5&ج<N|a
-(s03hʹ9U`!D2PZ2GPj:2$kBB4a36Z5D5 %4RlN{n,;Y_h[F"5AdPY#5JŢiFh(N,T(ǀxLt}PNxf~T/qc+Lq<m
-Jn.+%"$k/Uf4B. :KN9;(Iyv8^ѯwb4~b%Ɍ)κTwR!Ե^6b,=E=;F>ݾV &7MjI-CvfLoer0{X#}7 sa:gS}đgx-è޺bgu
- 4 9ΐ>~u~Qߩ3#4D^puB!'=x|9*az_g /"-N&|VW BWOC_3!
-+x,[6 yBxCzLtqoKN0[x^-[К9X*ۈ|F*PPpݵx?!: J჏|ŏXV榥-.ҞcN4w"v.;b?Q~qZHŁ+Hm*`8GN[ |,+SAВſ #[)gUE9|n|^ wjxĦ|˃o6{)"r7^T$񎃔(ǥ`A,г@ XJhϔH+Ɵw? B(Cʿ*
-1ubbZpE:P;wgTkKL#y-BtPZBuc2nm ܊}C_ODK^]'0 V>wSjnnxrа_K= Q>;FWBqk8UTv]98aTE}؛UlT)0˗'4}3oPtOqVvIV"xdW?B4/g1imf/}t|TZ
-sb/d4kɉD=z玶9mȆ%f<譙j3AnoKO]/'Qj*D"ze"A]N;qUYc~B,6˰F޽rƶˊi~#J7iuۢY;;M%}St;ߕ|`̸9 Lf
-ȴcC=g` 9` Z b'Ras0Y-҅T̟7c2E^c93tu˔Iɚ PGiP:F>L|o8#͉p=wXm=ݢ2pgqPӼM-3Aܤ|34OfP&Ao |12lQ;eiffP0,:/9˶gLo-7DbSmM *
-ݏ?ඩ["7/X:._)<q\B8]Zenŀh(AԑH?blD`Z.}F.zaj7~l:q} 7͜@ sj"N!3
-I d|Ʉ1L㝝%l. j
-u.H "EZ#lzHInO38WcWЖ<Cj{Jw&:;C+}ʉ.jb^@w84`l f,׹x Mۤӎ8FWz k1TCrDVK$,)vE}3j
-}\2\̖,6Bv+cBA0Uo[_s$fPRYx"huFYplN}4 >Td+v.9d^9W(;4]
-C\%p3QR'8OF2'}54_5t\oTnլZGyHހ+ow-xema- NL3΁q5Zcz씜y|U`'CKHo%88Vah)VhZ$3BC`$FZYLr :jf,ljJ2kͣ$9[]|=0J)?'phˉlUءpT/4.hW
-YY+kS.4d~p~"o`\!,E EץmP*"Wzq.`qX4`?Wp4QQ8$]50/0|._գwڅ0⛯]_K&e+G]"7H*Yntȱ7HuV6OmbBCKxՂᙆeӗF=YvX˜HC *LR]ыQNMʗcѝeV f*s`c~$oH5.!9Ey2twPi|`v5(Di4!ݝApIh/fdoKbTmo5~:oJe3/c3^AcSkv4RS-Q"ߞ^k ՝%F~umΫ
-*8/O3A<myxjk%B uh^Q&$ɼMwZ=R}sR);gc/>d l-Z}H1)nۀn `} R= i[eȉEr_'ii0(1
-"jF]巴
-}U;y RבʽEe'^/JZo0DNrkUJ{P u~8@ <O@--ܠC`=_,@ſs0Qʣ# S~9E;p(S}a6S`8!Pw}1za$44 HD )*I~|>o!aΖy~ f-cƔ}=*;E&;E~ppM[K5E0ġ5+a%D(XPZuJEܵ|/zӠْ.krQ Ka4+@$r`M=)RbhL4m㤔dm0,]ɾ|`!Nr;;.BӖHd\ q U꭫A_V5!j*߰&S:|4r,Sف27JUEO#X (nMQjy-ҳve<)Qi(hP4g " &<:di-^u|zƆ& mT_j0L7X<oTFIڟ
-`,lV7
-\Bh8i3gxŨوs-pT\UGVJg5->T:/T6NF1 a
-Ӧc49\i ~w=.LS c,-WeTy*).'U4+
-wuH#{
-~PveAȱ-:e]8J .U_2T?pIo 3?S>JD([+jGsgOM^I[#}D`B۾Ӊv8#wJ7mUr+w'Qe)1œ -&AZN
-V+*4 R|_gzZ_|nϛr*-WK۵v|V`vJUjHTP:h<<&l8%Z;/\!2R#5ݧUHi 3M4DdŢ{el7{?Hc<“۽PMV)c|e0QtWm N<_KZ E_{5MZa7LQ͎J0+\:P> 8=<(G}ph0ūse J>G&m6-9ݧ{w]y+q$eaDғ uJ6 e=MPY6n*xtKVsFj9
-;(,,Litbޗ q`o'4SG=le3uxY\!)eAg4 _8Gd2(CaKHXSuM 3<D55-0|:QEA'&YJ[l /5r\"j<)BīYs()5s?Gjm\=\–[˃bFJ7 'ywV:Շ:HKh1tWכft$FGQ ({1'.evkT%}xy> + )Q/yhX5sNpB?N80q gФ|A)XiVNK ˥Ⱦ]j#BҔY#$583TqI!N;V9?s0^G>8VL228ԃD-W'|1
-!Qiܗ$|ߡ2&zr["-K}T̍n~Nke-l̋X
-е$|>}1))xxӘMrΒ$aZIV:<Ԡ51#kcY1ҫ@Z[L`8san Pfl*~ZC[R<5A[QAkb++ŶH~Ue(er޼Car)E@潃Řͽ-RDq70ch_ &/6Vݏyg7LJq5 a}1
-ZZVRKaccv,N ,ΞP X>QNmazaVeKB? X VSFy
-9\
-S7=+nryi!WzU
--/-3#C#MГl>Ej e%e|$c$)p}X^^anmwAt"אJuեzvH<0_:1~3oHG5!z{b!:w71uF|ݚDمq#X审iyK'.Cc;l'XEgux>7=3g\M$P{ *ĦM@Bcb$;xoHgi!xK1= үWQcse[~&\0IFc PէeN
-ď\Q=KˡdVԵ6p-/dFpxE5*2j^ Tҿ6 e)Z)si1LiGXvzwo2Mp+jHrݖW7<G&'MIoN8+='Vq\yfh%q#4pqq 7G!Z »6G {ҽۖj)zNcouCt2OHalޠ=RD);|xd f3:w[&Ïp 5mѱ^0~MRʭ[F+Sg6|+aO)EG֜=7-B0m{gN
-6"C}Us˘jW<!=n5v͌u!̘2Ąazp<jHf]
-q&WA>eZsD&a&L,(X'fJgcqaR͏*[@)wnEߠ
-.Օ༨|HYԌQ8±rN n`ظ紏i(9cIfYkE>]BlCI0F(ygndZ>I% `Ԏ_ɚ pP7{5*Fڒ۴^}j&\ T~!?7Rq,[g`܏qr5}VjU}/U$5A%*},m~feGJcjie˜{)u7vBk,h<(h FҏhÀ9{H$oa_>\ N  iH_NsrYo`5.bPQx.(B.`ܙnfGi.ez\]ӦӒB4ޫ\ >)b?\=IӴ`{05de٪ NsQ*IVԏ7 N8W,.[492zwq8F"qSfmbK}xɋ.dKyr";VߤqT|<8ar_y0WXX?e9eWxy)~?~,,,]v&9ʨz'ϝa%nr_ǡƹD׺S@a!x(Y -Su%<r$ܱc.AI9V Vv&tR%q@rqck%%74(30g{4|F̠P(W Z*"=$%xۖؽ_^}:<mjlgrvSa⣵XH8ϕa2yYŁ#R~-Ka>4\Jq9(?/4ty|tYU6VwjoKh¹
-WSdzJE=ǵ":s){_ b}
-s~V q>N+/fD허;5Ft ֝'94Sz"$THv,Zqԯ Q1oMN4jTgIt(4f$V]3{H'2Dq2^MIqMx31M>!(}$9튎w*\aM%81t5V~vw Q XP䜑9Ro6pŭs ` ~"$-% O50|N)xdbaS Q R4puɑ| Yhi *{_tؾ-:Y
- Z͌aikt ԣVi.\r Uy#7^l_.PtàLEɘe`*:pEFDllJ D'56Jޢ0sdsFodp [oBAͧSjIqG`etyKWϽinݙ87춑KZYrY[韜?WY1_5q=^FܗBXsXKygeJc_ϻ-/#&I$#Yڞ؃):dqS%A$Hﯶ~]+`o(Xݜl߷CM\xY9USƽ#c1M>I2DAZ7hXh0*"5ᰑoTúA8U:|3́iUwOu&?/a>|^uHZnܥZT{6"̲[KbN<q
-򓋑h-5;Wg@6;
-Uu<k[9!Yk xK9^ ;PG`ut= I{Qޠ>l<0)[ּ8KbֳFQg+n?xao߳}Sޝ M$Q$3.y%Fd'Owi )K䷋deWS8xC7!:k=vfvcaI^oҚO$+' %arΏ-GBɸĢO3iٮrϲwN{\[Z\տд,.M}s;&â$֕h\jn w>zhpAf^+ akӫe[SjU~N 2iN_঩[[L*Mz7.̿o]IU6Xoy ;)ˉM;Сj~SzuCp\. ރ<y2/!JΎU{Ѵ;:"^r`nYΔDdF $3yb*%[?"~C>31^Xm:hs3)gd\;pP.}]6_fE:3 eݓ"nSTI0@tIfW&B, Љ%h.F[\/L#r?+jtUIy݀UcUÜ75kyeMuo%9֣=Z=.E-U t%òLSZt
-[ 7Y
->璗~n~W_U&߂<9
-
-oKH4~e%k0<Zc2W-rq U&
-թ!/ bDޅVXHyﷄ8<+c%dƟ~Q$ ?Y8vqadpfK.Yu,҉yŔjẸՔ-UW/SվY0Ȱ e5QLʶLp'.,9GkF5ğ:vSi~UZ@e3϶\_Ώ$ziXSQX
-#*xIW ~4 E7o9#!LdXȇ1H)ӂL?[ Kk#HCU~}BnCӻ9O?ly De>e0?6`I<#MXr.i=$Mȑٞs0 JdEqfsA/[SK>C%Je&#xkzror=XǣѪyQE&hgurd.qc;){䤛MO:4Vˢ~Ywu4qhJ4cp.s2N~zw,r,(#ϲުquX]
-mՈ5)5"+[z;ul(Hc&=Zay =
-U_Fnk F_Ԝ jj۶mkk۶mvmny9Lf$&CGZRBx{h|4T1|Ov%ehChyib7}1+єj\I_kIg֫Tҋ7~]ws"_ֿ͙v?R*dQkktpɲw ( +13b^މ]𫘧a(&]&[ %&@<[!]n܏M*fQ^j >b@XV:AO8~\GS8+ B8͟w"Stk/₭a9PP?qAF_Id
-Ag.)|l;,$+ox}V]qPoP"`ɻ.mT-ӷp%x.@m$f㡋Z
- )'pXRc_L "'G?I#uw6[Z,:XZ'mzd1䍸/(~u?R}'okLuH %bo~qUp PRh$(:XVf! F@盵dHGrj*}z(45Ѓ <҈drTrgK>q/<;^+.O]*y'D5lrtc^OW"'zP8Sְ] [jw٤dݱHx
-?V } Lv('z iʎ>Av~9ID+QޱR:n$>ld{=w7A + y5( tb]US\aT"UK#yRk%1)n6EUG!/Oʍ9(+hF#$kb\nFZa)!
-ֆ&'#Uf\%9ZRro󯾤HFa6@/Q
-@[#t܉Nc"^v}ZIg&O$NٟamGr'Mt(ď`# \H3 QM؝jsڄjl`wS {q[D.׺1U8!ju7{wI>U
-5tnsv \0>NFxh/Xo^Js>^Ku0M`XF |kO D<
-7?_̚z=
-`xD`:
-LWjSf9 @zM%I 5>,N婙FwW(ΕAaDiZ4.+2 R-Ƿ*wK8T_sѴwo=^]L[oe?4$ iAPoKs%F `ڱ AKw}魻RIx5x^ .b+'oʤA54TʯGݏi,8Ciz,0ߚo"N]m:l\6t0<S &b1t3fҜbR
-g+82r) g ķrfD"L3J"D6__g{=q~2S NT״"hX]% 킹]nb<A YuT`mP;q'xM.%ߵF~aew ݩ8Vl[@dl+#B-%r!U;d`ȹoo /x^
-f P7Lʥ1 Elb 5W0cBy
-%G㙢榠<ʃE,
-Q
-1# S
-I>%xꂧ^9l@s4?҇}]IT/6
- }" >IXaՋ"Bv+_'&G9阴. Bs>₥Cf}RJ?.o64I[11EQ5;8˅ٰs5F&ވ fgyq%ϡ:cW?[pYfן(B+ks4z/q{ӔޭrySmhd/UqW쬳GLpS(RifrGK?8P*CudGS t&d
-Wq"Hrq-c6U,h6t_=!U1(39DQ|ʫ=ryѻo6at %ت 3^WV`M+9p"S?)meIՋWagUSE'ˇD3I,[(3
-0#LCA7niAgbc [?Ee`?oG9ĘmFܭig@[F,^rOA HfZ(TJi6h0.+K7]Tj c ҲkP FJ'ϧ$ T\ch _g]yf&sJicT큰vLиF'2 b%j'L+B/޺?( ˖>NO2'`)j|0J:cUzθ/ה2#^oMEppoλ_Jw, :F9#%(]+fY^ZY?*,b,J*$_ͷ)oZqF92=Pi2 y!^]MoH,xI*1MX5#:ml{ʘ-p]X໓02Zfڙ{Mhc*au9cju:NAfs ׷*1bwUu]<8Z@*T'!Nsd޶7m@GFpI\.{Ep{[IQA- X=g-FA^.Z 7'(sx)|{[
-V._2ٞ- ) FQ; -L(ȯPt+j.Fr^t(AVnybVj@#"C -&bl1p/#+݄S tn|4So7uAK^ӊ",FՔqȪrfӧOrZDQ " c_G|p>XrH}Ji6Jp:W :0Y#{7p*.ugռ4mR1MKHPtaiM-YSSIƊcJ<4q1etѱ3u1d
-p'mrZ6XayW, P[sb*H7hG$`jD0|U.l%vЙSAXWɼgQC̒19N$%
-ݞx@կ
->#%_T&f
-\kR 㴣%4NDRxZbw 8/󈏱&uܲ8bw)<F/``hZw>ZT6W`3R {. ĶM.W7V(u6|NὥTXWP;1.Ф`ah`5rMe;
-[ZsQD)H/*+WOr|P Fl&1r ;2mXG1+[z;b
-wZf# F|~s+Zs!
-oPeD8te6ma qﴢghxuP֕63WYH*HK'TTO-BWI`Ot pyE\pv`DmliM/ȓ:gZ̜w-+Ǟ'6lE$;)%[BNk ,V j-(4(9V Tzp-p7N&,-
-fE^X1DlV N)`<z-_{D }k $-za<~
-ekG Nh8$<9ZGbC1& _ץb<BfZ3!͚pR
-Mxu:uDG~nt3[]>fZc, b,yO6!|MtfGxe()^و4q>+)qU LH25k:^kCݭvG'^mA{$U埆 VO#
-
-I7u,Рm aj(ؗBϺ.. r<GoZ]y\)1 Rä\!p+x
-f@{ 9j1lŏ=$8:(ܖ3e-[ݴ(dbuLbcg$Wju4Jp Lѳrvs¬92bUt:lHg0\*5 KLpZ, 5ζ_ivi J$$.=mV,
-pͩh~.?fųbS'W I"S\] D-}f?$`|TUð&ŌaZG9A$:pc
-h$ |GcG2䰯*TbC
- mm6TA2nNE*=ȔgK9iͪko("p{7mA֊!}Hy}ĩNcrb8(%gz0B [[3R2XK)l Mr!㊔uw|=kg6ɕk]e)h/sٲ֏-gn5֗ȹ;l_z @|8o!G=– %؁t"hX^_AJSp#Ԫrxyf N+,+Tj<ūM,&
-q¸qFdp&h&
-VK( 0 *, `rЇRO`Fs&u(+oqaKtpln/
-טV2f;y{?3sG- ;~^~Kvk,6N|
-3$eIZYʰ_1Т,kX35;j?yc-{so6C#t8Y3 MFDMS*\ Ard7wg.ƾM0>y"ŽSEH84J]ZuYQ|V,)o?P#dN<n<
-.쏼eU6.%'?-?
-mM
-0%$o|PĝaF;CuZӂ5jm2t4NNE.!4ٚA!+bjX$4+'ϱh%j~zV{K95:ilJEi~x_P+ ?ir c["rhIP4"c{H ۮ^@0[ՇU㾪[ɚ]!8\a4GKF
-><s,јd.׌r05um} YBs-w>&D0Mlx/q^=J
-TB1"
-'
-:dϤ2 qGNne(l-{q_et+' 8=e/jha9"h96#)7 宝B8mI:q{IgzRDG`{*:T7ݐ1BzZÍ}w%5>BC &`^NͿgjzUN IЅ0sHcvoYXDX:
-Sg6* tj&O>_?皀>Z!q>[2iG
-gewi2:
- 8@+"{:0 qP3ن=3wrlY\nT[pb.04cF~<"a
-"< ߅TQ?}'[91/wKޛNƄɚ PZj&k,xyT$ADk Հ /[TsѤ1@{ۥUn3G cHy- `:$6Rm"12eZ o4зw8hl =ac= G<> q6W@^d-n<Ap<$ILHy\wG㇟D:A'k?Y%2l
-a1_9R}=Q(-+H2Cw%js1ј=i g;?1@;U집&B}hoژj$חqc|}.en۩
-̮_;k&7?VvϪ-KBQmag!K^{U;ȟu~Ӵ~{&f(Rk ҧ\%='^VY<
-dT0خot`>Cl+_)|h٧ࣁx٥78 ƞUjdus$hueý- |I(9C 6V:aDt  LHژGlT҂r=w&d3_1FMf/5JK}JeQK*00S*0A.ᛰo*<9-v<yuO=l2?KUr'U5Is"\QTO9] ,GJb} ܫ| ɾASc$㌘si.-O.DȜxees.%zrI-Ruh tQ0) !sC
-dSwArH^m
-W(nQ[̋B̓-zPx)4ۀ=(_7` /(P<.YZՓ*􋖂<+*jm\{wе82}f`NYҋ59.[= t+թN65 l3(h :qCAқ#B ڿ;bZFt膳^tRS&1',mc@^c .~}g5XJ:،g9{AG/jEf<?(:5T)Vgmxwi]L[-HBqAÅme.?8-sl3z ^y+#+ܿ`b<gW'w-)W +h΂oIb.<$n\ng
-endstream
+4267 0 obj
+<< /Type /Pages /Parent 11605 0 R /Count 10 /Kids [ 4209 0 R 4269 0 R 4327 0 R 4376 0 R 4424 0 R 4476 0 R 4515 0 R 4553 0 R 4606 0 R 4664 0 R ] >>
endobj
-11643 0 obj
-<< /Type /FontDescriptor /FontName /LCRVQF+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 684 /CapHeight 684 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet( /A /B /C /D /E /H /I /L /M /N /O /P /R /S /T /U /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /f /fi /five /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11644 0 R >>
+4735 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 4683 0 R 4737 0 R 4793 0 R 4842 0 R 4881 0 R 4946 0 R 4987 0 R 5034 0 R 5092 0 R 5140 0 R ] >>
endobj
-11646 0 obj
-<< /Length1 1705 /Length2 21472 /Length3 0 /Filter /FlateDecode /Length 22554 >>
-stream
-xڴspݺ>LI2ѱmۜضmcLlۚdm֗y9sW]<}^׺UUPAV(fkDHU62010
-;
-
-2
-n
-]/_E2&mې4^b!?ӭT@!g8zW]zx.`//+L&|!ns3?<%SITDwD!G.Յxʇ%G#9aH"FC?!ϯ0X)NΜ^=2ݏ%U瑕 9Qp!Ki^j$'eW|Mw+~* zcޏN(_|%R؄WF1/,D?R$lgxAt8J8T2x3iDA@}ۛa$U] A$H(c-7;/6,U@b=X ПvTo1Kʧlk*iXI\C/3kTB,*Z7gZesdO&WXhQsx 7{ Dsm} xP&ȫz) iذ|kWR;̿LxE,gݬ6?}>9RYIH؎Hӧ٭sO(gdTI;}xt?
-)ۅ#,:-,Z>
-֝eM%5qhR ,cǭGjE68a G3'KyB Svj\QOR6eCvr]Qw(b7"Hwү$ݸU ӳŅ6T[{wpיe<bv?䪜ЁۼR |-*F^W#U#L'=[dpYRZ@rFt_jlO],"g3磺 ݝ
-y#ɗcb վ`x htG8s*<w3`$;cqWm:yR/ΒKnnfr^6%"<NJ!|8xqhV5}VS2ÍrCPiVEɌdn襇vIǿqjMVq$rld=p,RY
-$.KT^}'d_BE&nj@fXV5@ _V1cnM:dǰsc'se 8ۅ@})W.ޣ6[~VTkw*bK0 C2LdMXc:Kz&|1>S<4 wu 7G\peE4h Rau93 zYaRH\r D$%dXI/q1e2#hsxR_N`n+ߟ8HGKkloY%*y?8Qˡu%́۶ko l#׶Hxy eiؼ֝d9Y+'|מ$ġvdŠnlN~c5RDE(L OL;Q23U*hv#l /bfEqF4RxY9bĔ1vO'a@k /w%z k" %yY?GaFgauaw`\3d10R郳Q,5φq˫79aKo :h kҎ~w5it:O*VN`Mb }& ; Dξ~S])_b:h5>btN03wDU#d2v -0\d7Aa/'Bv>Utz[!69)
-~H{nmQ[X#d]Z{P x&t-1PiT*qْ29r ' I
-rIhoUjND
-c g<?M庶G+)CLH*/+MzS>}4BG``{ z<u= ;Q]ZvK9jC_WP
-a RilNny+>VJ"G!?;%Yn,ّa2/#vvK\8%BL-!>K⿍jT@(\ݷk,S؜Q@ssmZ7d9EeXDm0|۽î6Xk Al%(uWMԋ{Exs`QG0oTwMI)5_W)zf4fbUg_'=df\ivF@(K;}1$b|b- 7MF'"u{u D 4$3M2Bf5Mw3ڀi"k›%:Ȕņ9Q8#x3jnػy4rU"(! L*ӻͩ<ݟ=-
-skOΣ=`
-ю]ts]M623)Ժpvχ)UƔTeyC$ {llr}tߤqGw#j,K6fY판w2'pKWN~FxTA#"O2d S+XS$\fImYo
-C4ogp%ѷ0>
-i&+F}oU7{H4> >CfԲ&MPzBt%a<q6|8mHQ66 ud<:qcn"MD6WH\ҝ2>=foY[)A:Q@XV:I@.ʦ
-=k ;;6vtţ0v>f][l x%_g?}퐩q_ _}e($N H^9O
-O2%0;:ܡA?/RҷġVN9 4{cxҏl
-60D03vb?J7ZK
-aqW,E*XXǜ<l<װb ^U3Ipy΁ u/gJ(ǃ,W?w|iY n8.R3o[5] H I^F6i0ҬbC dnh>ʗf ya#2`jU~
-H<HFm;vzM 2 +JLi͌Kh7*>jy1
-ېt?Ӵw5
-f
-+sHya40!S-ʂRHo_CGv`8?vJ##̦dD8AZ-Ғ.UZ(
- ?`.ןX}Bd- _6%4
-'|]M5vlX\ο@ )nBk JHFջ;JzpKeDݽ$-BU+H-SĴjO!YȚ IDNҫX3AԨf`aS'{^4W΢
-='|_PwĶ@H{:twT$BL[$?jI<B#R`˝@TP-~ɰj1*6`t`k8B]@#Tii4b%k2 'Wf8򣺁FWRFF L<%9I ܆%gr^+DCom2vˠqr^u,ݭpư 1x@: R}
-|
-A
-4s`T 9'9.4jZ\ I^^BmSH9PV_}BJ`Ga$)` -5-p=1y' g%J-UdGboθFL{\M Q_N`1:BDoK&rV:~>ǸVَ/`
-wqŅs$E<6/Zo`pZo9')\^
-vcпϴhvJɊ)mdPz6k:4qN'xd^2١Pz+P]x ?!ve<(h;YRmUW*2~ky:-N h]05+_r_nxZ"3NgFdKo#xgO{I$X"УԒwK]ɥ8av" [5˳SN5HvgNn5i7
-b}٤B#)oFa;-
-d[\y Z!++w :H}2xC TDonm,c90Ca$lPwb,O6O=4GUpw3ާ"qx+7UI#xń>}7egtx*%3ھ,fOvR8'm6}&NpW7SO\\Qb<G:&W`1С!/K(^
-Oad P=N u/GuF[dMah#к.U2os15@tֈ ndI)GZF[#>ʵ:MsV*& ү5wn@Q67ė(
-,@nڅz
-g7%Yhu/:t8/ ~[6۷ۧcTj@)@ȇˋQ:KaZU#S"h%/*O=Gz$MEhT^\v㊡qI?JlNdL{f_Iܑfas$XDrIj SK\34jjT)TbY1‡NiH$d<+=lݶ5s֋pGRsb0XT; 5]RPg7XN
-[lAn={ÆJ: (? 3NI<e7 Okdwv%;4Yi 3x+FiL>Z"fIryżzh̾F]ͨ]": D!gҺȯ`}tR #lBt60@rn&aA ;/uW*"ehL䏈\,j@m"{Na 6:4P)||C = %_x7@7cOp$ 7R$ߧ`}#sV[QGQfw1gڌc8Y
-tid^+r$[u6 P_{nx pϝ@Jꤸow.|~q6gb$\ S]ן2spL\^8d{GaF{ꈆ͑& NA_>kyx;M?KTRaN:k({!S_ז7faӉ(]rjY>U(1O:G% Y)C9Si^Xb׎kU#T:\ H7#ETI 3TZ~b? lF0hƤOiy EHK/dd_F9uo9[)F:&+dŷQCa( `Dc
-q L_?W Q7$X
-'^ai-5aPPqK7z~{uo КMgZ!aoqcR1:Y{ Ƿ`R|yG=A, %l)O^LX<Ab˧ I9q8Lȉn$jLf#z5*Z Kmۤ[# YU$;.6Ta1<W[Ct3Vq*dPE^G=Mq;E+ju)~6JnV&%c:54?320qk
-L'yS&\aLu}si}" z݌:So])~v'pMM9˪`0,LDl2 a1<HB/:R]qCۣ
-%atoZ-(y
-Mȓcv:%a d_Tb;-Z$َCJ/Hp\]cBq'XX_Sz[=ϡHrܶbֈ=.~(s* qOt>uFgUFNIXuH>FD=O
-"#
-g&Q:@2pjKTKȷe&ȻjeJw;Y<ΞbkL"<l-^&o?.I]"n'%3äfTJƶҵ]9f
-g#x0hOt(d U$#N{ #0.)QhڔvgИkNf
-sNӫL+BNY|6c]1Pg e!Ҩܪeg~_18{Ց?|.s90m
-i̳;KAg}[ -/Qkh  --@ # xvl`yL1DR;+J>3\$PUAk
-&f'mUZSKWk(8)2\'+4'CeJJ@mOb(dRc̀}>6|'.RuK[r9u޸aːQs6"K\ZR7¯D32~3GX
-%+8Cv$_u͏0Gǰ2.>q5Rʂi0GuglVR Edi֖]w#x7a[3r YfR@;!Nbȭ6{kġ݃<߲D>~X3dؗ#oXlQeSjw@4"eLӓM;`MhQMш`&5- {~&vdÛsRGTXJLEVvg'3t|.W,iwvZf0i *Pl'M B&4ը")+JnJ
-2q4b4\oϳ1>e*lnJY]6;v016Ÿ[FQ.ӷc)n(Ofc\ ):g\SN}Ib\_
-
-,ǻ+2L ?}eN|2s%(DyD <&\r޻^$/C3ӻ8fXwxG#
-Gp_3Mm!%dF$IQϨ2[ )0DfRsAM'y:M8EwNEv+x8օ*#!-ľ*.xM2wȟtO:hOtv.K oվZ<e+cYt@1 X;Rz~tbTAdHo!4UuȡKT۞; ػn 4]:ҿCͪ4mLĐalt$ˡ#;ų(_eGDȌu0zw 24ސQ{Am)4DނZ"42!_Eiΰ&+hVe9եhGGVuy =%m1Kq_'Ґ%d<Ѻ;3#R} pb )<ӈ,+adP&jj'i h
-ϨEVT)GqcapY1
-G3 [όq;n3[Tdgby_ &Gg #0'؁sS7eQ;tMQ8Nj?갺m8C)DmԡXR<o
-o0| =S<e τ):"8ReЫ;>> +}a?iff૘"PjOe~qZkWE:7WD -xfTM#U_F{[T!r *E<DEXӪpBZ?t(ﶉ>$@WN(`~ABu,_3{dNMڟ#wwV8~%.ܻf.C+}/-
-v{Ѿ YIHIM(3W q|a/gbyD-Zsc/gbPPf
-8x @fo>qE,?DN_֑ڭ!dY $s@b!`'tHF.{cW/z2xWD;L+eAP8>!^)F0B)LeBz9EF-0RȻL=RD&oۊjX~?6KuhOTqH#WTN#
-5}(ǻb1) AUa흅c4cրu4+XunH1
-Չ}U:i_<d[N~@ W֟xl=>wv&ǺpPpFqM2w>ʙ$|筈QQ:{UMHnCU>,&w-EncLRHsgiuSm a|AYE:K c3Wp t3f{KB'*EXeRlï">="?I6 0Lx8n|*HNe.<HM:Q_Z)1
-k J^
-Kbswk<RɏwX(tFτ'7-]%i\!) ӈawScm˒>G pڨ';gZ0 HGsku? a㗌>Jr*)
-vU#jZI?مLNΰ^%I!'̽3aQݴ[A|=€{v} ;ZMX/ߔX.,^e*̻.3YVrLt>W_ylӏ=r07.9I:8S,PvZD `-qV}2ewؕ.<wDPR{}l!}lY~uXԯkC)zv޳ q2z,9;wv=1g oE%,*I"Z?Pw`q6go6uYm\6!S3(g " pIE0p|yި
-# 8@sm>Q"3`1o<xH`T`w
-
-F(,\ S·p =͘"O{EnC °/)4~k8M l٠oV(oLS ZO`{=d$iH;)U݋5B=D^xRmm84$ScE8eܾ-5,>gJS-d;}xޟ
-yHcl2n+cgRwv/n4:q 9}vT%mjvvgBf]ᣤ*iб d\<{ZA<lKM^cPwM?0`ǬġsS >nBri[wKa̘
-DY`UP7M n0*_tl8ƛ#12cZi6Blf.p`az89h6T 8`"e2 0zh
-fj'Dl7݇@h/OL2]G֪ ?-1Fg--E΀b,y'o`묃IY<UƐ;J[LAbf m
-T ?]Gx
-`K -ZP,NE}]~a>״W66d0^ߣ4~]L;&ģC
-9#7q{eWaCio5 d<+_T6q$v;%k*r_l[
-kD4O!&Oޡw6S[qʣJ5ϼ2+hsQi*[!u;HWg3hN]t+SͭcmPl}=>/i
-N3(P8քdl9RًUΤ]@FFҽ ؗ+gOl乁!AUc=Fc;EqEFJS\gRyt>u&*,!ևA6q#,nc+8;;t=hg(NTrlogOŬW Z:Xʁ"%B΁Rzi{֘Bhm1K88vS醞ntDɄ=$6QkP/}K
-ᩝQw]Z uSRv mDT~5F\$\ǹQ^D/oZ]`'g(kIb]6"CI;Nq<&AYXCť? EmTՏ?n?rf
-P
-zeE<$8Mjl N8.奵g[AR8 8/ח)Bk.h!kյ is'qnpҲ̠ G;,~ hZK?Qhi!zDVvEְ\W
-Kn٦j|$mG.1`
-g3R9˿mNm]yD ֨K1D<@ S]}w'қҡ!AoP7r񇐄 |J?Ju9`ޖe;.;(b摼ֲ p1->OC-byǖg!D̲rrϘv#y}Pe|1}v˪\$&-іXM'dPeex*r \5mf@J !!& CxWA\Q1 VPh<>cr+xކދ^S{hC*判4/0ɹ|}=Pe`u <Jzo- Jl A\˭#W.u]]a޿8j,5nٳgxB'jox䋁ԆY6bkpڣhR
- y f$v=ukK8PQDUu{1.Q͊<Kw>_._֍UMN5w% ߌtq nĆ#,a.#O50"R4Nłn! 1Fcp T$FV0ż]0 _^6:MK}@P/zʣD{&t?F}γu[@4zٖ81!H+w'/y'mw5F 7ʊGf1Pw'k"o:^Ξ<9 | |j%sl]e-TmShﻐՎ NSa#|!~XAvD~$mnX?mY83z2^f JHԱgB2`įnDqQ.}p7m~ċGI 05=vXZJGJ{Ţ3@#~jsPP]W4?1^fȂaYsQ,5̭Fd4V`SMz5zWzsJt {)NUB};_콤֥,1:!uX}w .u!7gצ\RH-n,W@yIX+_@&1ϱ>3TA4)m
-o=ӈ^,ȆkV!EʲJ<Nc48M,!-,paX|ѱK ޕN텿]*PH8PyJ)LcЦI|O$I1P
-`ωj %E[z.9>̳pO"@% b;˟we#xlO
-ѲQ>ɤͬH_ږY,`96%9c-"r;:z{':`eUSэY^Iin ǖW]G]SHL]D2֒lq&tB{l]=R[asW Cknz-|i&>BKUɋs%i&9
-mP?&sY- 7+`q钳S<B(I~}(w9;#_>B8
-K- M,ߋlC!(|2"4hYl)l]<[R4ɠ>ar "tz4w+29 die
-109gаjO\7pOc<ne#XoXr>CvaS<!v.T2Z_nq Cf!GcH8U* 655^؅KGM;=)E*8yXO cJUI8TkFE.haSCTIT
-*>D |/l.%|=u\/tEꨇ{1v
-7%G"2 Lç#\1P?+ i:L8
-endstream
+5236 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 5196 0 R 5238 0 R 5288 0 R 5330 0 R 5375 0 R 5426 0 R 5482 0 R 5541 0 R 5607 0 R 5656 0 R ] >>
endobj
-11645 0 obj
-<< /Type /FontDescriptor /FontName /WCAPHI+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 700 /CapHeight 700 /Descent -194 /ItalicAngle 0 /StemV 117 /XHeight 444 /CharSet( /A /a /b /c /r /s /t) /FontFile 11646 0 R >>
+5769 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 5718 0 R 5771 0 R 5828 0 R 5889 0 R 5953 0 R 5986 0 R 6037 0 R 6078 0 R 6134 0 R 6170 0 R ] >>
endobj
-11648 0 obj
-<< /Length1 1769 /Length2 19553 /Length3 0 /Filter /FlateDecode /Length 20656 >>
-stream
-xڴeXݶ6C ݽ).݋Cqw-Nqw(o{uy\ɓass{<I(HDL ,̼
-r7q\
-":,L
-~?Pt/f
-ݨW)C5e-԰B9=K^U-׽?Ӱ)#-Va;} p.7G[ Ke)wa:^JU];CM=
-xTԂg>½'eA.+r1–P+):Qّduyڛއة0 ##Δ? 09y"]=g}W]V[{H s%'. :ڇYPPp#KP6JsE?Mk5n^0D4C#6f ټhS_ o}~w M6
-M?E&{ D
- O/d}fItaGGq4'QCnI46܁ZJ6]q',$E=@U}j+V8Ply}j}r|[oPRNSzCe"r["+pnQˌ)+Fj8#4vi(
-':㈰l$`hK&aPBCZZy{×WdxT,]Dنn~?Dv_mBW}3Pk>9\xځa\˒]6BGwF1U(fNE˳./R
-Ϛj"zͺYb2ю>{pH͊F;핞p`0a4w#
-Rc,l`'c|md[#壆/g(`ٌKlI`a#VTaiYĸm1$Z[( oQQ ~Vx ΑzqG#qe 8HU!gK6cK/ ʒ qz<#+nWTxω1Cf 颁@i sh# -O[l r=XݝOs.?bNj>)=ФPbOeDb6C.Cj:.RvBSph__cUEdo\{%5E~#fZ._.?ˍ
-S( 
-7I׫^cL;(/x
-DHe[{=G1;,iT_+%<[F](~gKgsF#z2Q.!49Q;nԈJEk/)Bdee]T{i3uhG5h2h#j P r.V<9%O!qMٵlEI!tnl|_6AYsr&R_H/2"2$$mX!=xgqg=y WYG6Yf{8!9HȒgox8 I~
-*
-_`^C(0&m[X;ξ<nCj&K^,4xj;잼PmSX%SfףxО@Gy|^4 ל Z{^nP80/5lւt 4ۯ:BWގ{ -OU`$贽f{T-IcC`%HvQ_d-s*Z+;jج+;[bCo9'|ic= xaSa@ؐM.a[3*!R˕F̲eJ^-yP؏ F'I1֐>6mPT}oܫȁqj@`Bsm*g'S`UiZ# _R~C_oݏF8[0D$<!d4T "ي>GlT-a
-=r;[?x"; ;I{͙4]n#[356B~X:= gw9vKDZ/kffprdfM䱋 ) cZ8S wgC7D~a4E
-9, ),@?N{Ȇ]^*\HsÀ@baNn:C2ˑg:H_`S%#*SN3z]PߡO;WEbCڃ_5}go5l2Wq/?ǟJ(
-PbmaJ*Vf5j%7449=i
-Lcn=JuI|xX4KGQϬo P03F啚[/xMޒAj_<'ڎr>a6ݐ;wg |$Q96?{* 3,eB!?!6c  *LD붞$ "JQ884le)+820!d}1 +'|{*_'|1}9lpG
-[C96Moy)|^e-!6<LQ/-<t޹3 BipxTx7`Mt8z+(H%љC%T,9L`yץ<[+;VASGJhYXRAc>0%3z$1:%ܩr1+$_/h!NvV8*ڢo[#ܞ8ϙ#P_KC:ߺs]{w+r4'F9`˵w}~{w(6s؈C-
-2dcIaEŌ$T^{Y/ҐrTR VjdYi;aMC>V =0Bְ}y%$)6{m}S?Lx'^S)x[$Uw3Z6*G)TdNF%gC2w%dTUvB֛C+D|8َX0] V_%\1d=Z7(zԚe#g?5Sr~.@/BrCP*xbɺh/I%,FW-K~T/Fkz/de"U65ΞnϦ l‹
- ; ,n
-^X̭R,mwSkʔ.~LOvDK[n]6s9gy
-T|kz/:Tmͣ9@FQ.#7TDFMx<!N\rzBq!yO Fj;! qh۞8|ahɜ"A"@%mգAFxQ}c0 |rnu6EDɶ%Z_K_Ovіgp' 4Ə.L|/5hyY>-=Tb\(:d"lpS$8#=pUM6W$D3L[c|nG殞%wԒ] }uȏD1st<\Id* OYoo/e 3g̈sE!gг'mH )h:%`aI'd]#L=c%湄5UpU ݿ(JD\Zu
-*zm0 įe@f\u:zu|%a>a
-)"7)]dR`5z/۟?gn"
-;q)d^G`Q߾fKx-FJC\#.y⋛@P7(#axɰRښ≶;R,r#@/GY*Tvq $D]6\PX}R]6[t+dEGׯJ?(+^ &mp)b_#@3>: h25+%HA&2NkIW!` XteZҫP)wbH5z@nHW8&H|+ѻEIABU͵N
-=s'=q[lhJxEibTBe~smޚ 8tu
-K9|j9{0u6M 4jh= Z-mb.YHF[N0woss)#+#Q<[ cx"a˭tqF)ju`gJ%Zݮcd15?ٚ I)˻lL-{<HřA݆isrGq:ff_Q|d1 Rj0D_1)&< 8-'LK9U+5c}6BӨz;EhԔRηE蹼79
-DSV[
-U1MՔ2ۃt*T(<&ްV8Ȓεw/cFdQ/ɘ0 1ߚϩD){n+c_/\
-(=vyI=ΓH,yKj#4mƤ SӚIHu 7)}U7iڝw'ߵgo2hgæzB[N ϝIl* WLP)u@+J <UrY0HfJ"; OÏ<`-CVx
-3Pڬ4!vGy`&FJ;(e計ҳ'u%FZV:H*_k DFVsf\W4`4PT xfl'8kC=P3ưBd R~zBnxK[QBͧTÝ%74')Qď/T|f;lf;Jݖ9!ʇ_gĩ7DQɢv<CC-K:ìY<[#"fj#`6SH7`ÜM~0q9:TI&T̪c4MA\҈`r
-~Sq\<:ek!1`HI$97k\]׵Kd>i\:Q;B/P'Uw٭(lwܗe1%65TGaK@Cq?ApshPRXZa>p:; X7hRW7vnVߐT
-sԇpdLnNn+Y"NEp(KKkbz7vjﵾ]Nud`j0;kҶg`Ud
-nTu,tJ\W8M
-⡣Y*C¾+m/ 2 ң{gj9.㴮ʗDatW 9R9tb<3v-Zb_ahRNF$*&С'cM[N`k^bT;:Zzo*`ʅhK\AfuANICkMv-ÐYp38VCI#MIdbo7K+9i޶?G9{/Kz◑.0&m=ND''پ)M1RiUIS*ؘƥvg:
-♝w<+8l\DWHʧKHܨ&<{dZP3Q f㧒@i&w4@z~Tͦ
-qFZ[f'zgӈ%nqޜJ$ (:pRxE~\B_0py*[ŵE,{Bı
-2ɯ%YM@GEldڬ1*j$JOyTPL|<:=1 / ^h^q> ^Y(Ow6
-,3MP*Zhu-fh*ω@5{1N"R?ܯ4nk3Ŋıү.vի尢;X E6n(Z4E0gt@=ǁOя[ÊG{MagjĔ~Oit잴
-^ s5"(mg1G,DVDž~&0 n{!x+OJ!Z%g ZL3wUlIۇ eW$`18wFsxXF4jFңSLh*#hY*sx 6z s@en2gPSnZ_A|2miHY6aOp3xrPBɨa zL
-q㚏<{7p_2p޵</ݩ3AJ>K2>Ln.^DQ&Jq|܈~vFo[t|zfCtZMXr i{­jU҈#`4|Ct͠B|HGûKBT@'q9l{`Ay3 S슛'|
-]a~w(5cs:55ʋ_Q1!JBOf\-Ηr$uosp/r؉c1# t>Q I!EϛeXfc.U S'S!~CFFbɎ/`tq$QcT¿޲$,ȗN]VZ 0ٍR:Ca af~ y/5)* |^
-=Jfu=YJzG%_]prN}ɘTz*ngx %/bwzHF|L FVbp̟PLkIi q\Xm<\?9ߎ6C9_Wrza=&T գӥqL͸/O-sɹayІq9ldz)߽*BgJw7X-X
-A^NpOI%tzN @\GgcSԂ@ap95ᾨBZUͩk#j<,-Y2=Jn覉 E2dC8pcw_*RХ76qdiؼlbRkq=`[_ZZ\i
-n,O]no/ ]PV"q${iҩ_y% Vj⠶tg,(8-n66Q? W1so牜GwnE^\޲A'}`XcXx]1Εe
-&kLU/4 72#5пӥ4fSfr)Fbz c>6BnM0ӥn;9Ure$ m`*Om6q{(d"9ďrs10$(kzӜTBA U~T^v]</]_['{Y`?*-ߙ0Ơ" X%/]prmߕ0GfIN+P͒bK+~SbA C{>oV4GWkKӛ p#cZNs,0{N^'(K 7‚E-9-4%hjrw6BElD̊$;o)(>v/UT"</|[TWouDj$ u˕A19SJ{g7(dCjlR'yQ#+\!&HQRa4 }rUsW&\Bu P~[z:go^iCiLbI!ӅGMdK}cHGVI,^|bQ6 eQoT{CIWԇ|%N2P4<ٮןֺh^LA& @%BD됏{z=MVd\wKx[-☭luE_ (^ƺ-7ܿ=k|ҐyiAMxPƲNZ-\}b Qz皬@сiě}gk:PGO5Imz#AEh폝q.R(%$cbwBGyi"-kuiy)*Sub 4*HG W/3-vG1L"+LP8*32 +Ο7~W}yD.{9Ĝ홲|E PoB>< ́Mľ ug{ELTL `h"t1X`luJ𙨡QۺpfߠI 7 >|)뉸yCh?!@3^m_񥰊=@&egB1үxP._Vcϊ[ZD %6\&$v7ꬤLdu?N=e#(+H:}|9u".R׸a|//$-c8}j3 _qnwSOA^kݨT2a'ܟbpZ[{{oN&%@arG_ld׼m0eaQj09PǓzg %?U < :/0cD)<2h+U
-'s5Gd8OOG^%g2ebɕre׍G: (|k vđ7~bϴl='"u潢KFZA>{;؁2 ް>%ltqg4R26TGm<0Y-,Y2.[c6/*֟3PE6.TTR䈫9iPݑ+/k^NsdoJRLlJp $ri*=6$dbY4|tYWx'tB6Iy=gNcENS+z xMt~7-]ѩKwe콓mF/O5ߊ\3l{ "7Ԏ|[xI=9w%T!P<}UTWeM6=Eз0T~6*|:Ts DRݗbM#%k<CyEFfZfA/B1L'SSIC ^sA'<a-H89[QԱ'̂D"(-ams@.A'9{=E49qF7qYTT>:5Dljs{c`'y EL=)YCDѼ)%]5n/`! H!5yeTZ : rRwLYlU*Dm&M
-u 9[g'Yв]{PH~yecĊ 󡞍
-"d*ՓJGZ 7GXJ-$XӸ
-?98@7Jopcx芶$ `HU@ K;XIno.I F$od?K%18b[㎍jeio^o؂P'+"n`S#X՗+Bny zZ,-a}+nh_tci֛UsXhBu&{=TwkXd8U8mt=fc)]CGByI%q<z<]N
-2'? I>,Y:j~E*2r1
-H*
-._2s]t g}:MAT~5F\$\ǹQ_rxeIOw#wBGi; ,z@hַwc<񰣥ҿ!쩫|}O&O.jKǪֻ'+M¢jbӓ+b澶/W9 ,"TI,;@akbP%[и,B q8,~PF?QYLֆa=mMXk=k%z0Wݔ
-}D-뻀V򔤥y>N A>Q"p1\9Qid(Ÿ&6;: b ʀ%T5s {lF Z e%JO kNvh z
-LU~uBntvTXG5XT*ѕzUWmdM
-&BdL5?;|WE^$v|LKjnQP-t|ٱ
-oZb~a_HjϒG4IG\krx?$Bv@L" S޲핬1JőhnGվJ)i?lK$G$qp[3 '(AȽ Խ%
-a'<塡\v@o7UL* 0kufnr "s=qֹ+be}Cȗ,nq0wk
-IϐaЖbp}C
-#6ko)ބB ,4Wnȍ E(iRMlqGq>BSxw $5f+q-13ߌз?SKaBQ \ɘg>#{dpЇ<AGͻ(Dx,A'j[Rnt$W f1ƘUFɩ"q$YQhbh`*uӧC!9c~Oagxx
-44hH!YOeܼ!PQLAW$:RY ~w&TA۸u2y@ͿlOz4|R1*
-lتWRE%_X7bRb-+)=+;2]v?ύk;33}@,ˇӕ[Ck>'uK>%
-\%JN32[:}pP=Gs<Z
-j*6?z3.ǵ_Fa9$n?
-An[XZ@ԧAar2X
-x0 & 9Q_Xjx:ϒ'@h"ˤo]CCEJ[ƋR άUHyu!\?r
-As;7`03h #1|j#o7\رuN"1ZLC>*0]57^s"$gWSüB^"-ο[ -X0 3eVIGỤ7T\Gva/~`˝@`B9C$SSJBB˂;EL|՘
-n{Mqq>CHk"QW9)Bzc/$=2JY*sͽTc:Zք,ˋsd?F_'1阊t[=.<Gd8E<[BCKy`M|~/gQH BMtZ .Q,ZTP-.lEb=UxJ1坈ղT;mYŕu! M`M3@p^ɟK*:<5f
- M+8./yEM`s6Rwgճi5fL,(4Kc*eq 2@-DbEu|gMH(k9C? qG#Ov1;dpV0NN,2Yxfcj#Z"L}2~6b?&q: t*H
-{O{3LKjV4E 2\,l97I_ na"&j|Qc@'(;Z$A79@rmmPXtd\,a6Fx~_}aT 7b^N٘?(>PQq>x˹ caξ_(°oזueTEWX.uޑt:1 p)SP
-n ^C
-w 9ʺ&` $2"*Vb*ɪK v03=ph)͑ex%M++ 3
-DzTf2L~+,ү|j ڹxtqy0r%~smFm&vmGlF[hlj2WZ*V4Q@
-endstream
+6268 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 6216 0 R 6270 0 R 6320 0 R 6371 0 R 6416 0 R 6466 0 R 6517 0 R 6575 0 R 6626 0 R 6672 0 R ] >>
endobj
-11647 0 obj
-<< /Type /FontDescriptor /FontName /YSYFAJ+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 527 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /a /c /d /f /g /i /p /s) /FontFile 11648 0 R >>
+6745 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 6709 0 R 6747 0 R 6788 0 R 6830 0 R 6886 0 R 6951 0 R 7006 0 R 7052 0 R 7113 0 R 7160 0 R ] >>
endobj
-11650 0 obj
-<< /Length1 1881 /Length2 2001 /Length3 0 /Filter /FlateDecode /Length 3102 >>
-stream
-xڵUy<T{o_FԯLaΥ C 33gfq5JHRнEѢ}Rn"nJxό33g}=\/(Ѩ&6łf#2!LVr1nbB"1 a@C
-6pYNjJf˥RőqY <9L
- 9à(%A"_ˆBaw ҄@2%H !BBx#rRڈ  9X_!4_3PVc;!rYԈ|<5.P +="JՙyP:ފxN6 ЈK1LJ$jIQ>'!Q'"yED ˥>0T:}&7[0
-x-/w2;37m'-~?uKGw_Ȣ5k?/Iړh3t)~!Uxݼ+楔m'j=ƪua,v}Zo٣;[VWwȞPK-+kou:pϯSIjU~hhfɢFV=rRhtWUX(,pRtM=2AUzZ35.Ӭ쟨V-cm+R&t-SQNy=Y@yfBvs5. %!uɭ:;׫t|y72('ZN<U̸0X};'~ g]ݒ:Ն;WZ;J+{ˀKѦW֭_ay6ٹ*$4m:ÁK"ntGΎϷZڢf*S8ՋTk iUzFi <Qg4ruȪuXģ1/yaJV}rn)mDO~rʖHIpiZC?M?A}{+5Qg'MmP\Rɣ9s΂x͛VYN}ޘАM v'+Τ~Ό8z0k?mdFMi6ָz-p1M5/0Y:mz^2o[uOʐevuGM3b gL& =Z6W
-3Gkmd<Sʫ[ej]3<Dfh/6]isN1II?;xUP}pGWG5xfu?g\8骩~qrx hRSҗ soTVNʫǡcS/v\ͬv}kQT?>7%轄TjmCv4=bVi?!z(uH5GN,=}ˈG}g&HV5 ݧ[<١ Ӌ>GɻTo$i4.)-'? <3_$3h2dfENgS:.kxs;S|zeCI˯Oea5L9aֲ
-P=q{"|h\BS, ̸$N=\aQJ /,Oҡ'7f:74Ox~<MM#
-endstream
+7260 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 7212 0 R 7262 0 R 7321 0 R 7366 0 R 7426 0 R 7482 0 R 7532 0 R 7573 0 R 7622 0 R 7672 0 R ] >>
endobj
-11649 0 obj
-<< /Type /FontDescriptor /FontName /WOCBGC+LMMathExtension10-Regular /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleftbt /bracketlefttp /bracketrightbt /bracketrighttp /parenleftbt /parenlefttp /parenrightbt /parenrighttp) /FontFile 11650 0 R >>
+7759 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 7706 0 R 7762 0 R 7810 0 R 7863 0 R 7913 0 R 7955 0 R 7999 0 R 8032 0 R 8069 0 R 8118 0 R ] >>
endobj
-11652 0 obj
-<< /Length1 1853 /Length2 4159 /Length3 0 /Filter /FlateDecode /Length 5318 >>
-stream
-xڵUy8mG%"u6kֲcoc13%$[RBD-*= )Klef<~sw5NC4#h Z% C$`p#JPT甕5L2@
- 
-d`xP+v2utNPzbP
-L 
-mڢLY0G;(DآvF##i2Dٛ"`3
-4E Рd?BƇ
-
-?;G-P" *wb?[L B Ξ@"W*C? u(\MS6"}Wq1 "!!:|ҙ=
-DgmJK4(^Oya(8Zth=Ea"%53mYGg.BwK=NA&wc ߛs{c]R/!"33Im~leF9Ky0nX=vtj0U,+R)φ37FF):Zs`@rWs׮͵#:RLoj>p>.0Dط},f=ZŢfY-;MUO=o:|nӲvf-2Rq7s+ZMM\({۷$^׃O ~U|VTg {UQ%E:Z\ԁMڥ#5 ]h#uE}FN4
-7_EIQHVLu'4 E1}ܽ,B7}-ROsd=J?y#RǾhU3%oo޻`nlUcjȑ[Tt,׹uogβO${x}0o*Yppj҇Hnk2.1̑'uUks٩ OU"{tNi rZ*sG*<im5">ְs>Olp謯Dn2"5i:2
-I6^M]S.P֖9\#oS'|W-lخ^TE֨DD
-|4-h$"&L{ԸRloY/dMM| >9bӀk<|&=&V3DK󡀦dxEKX2ۍ+ V?uNtGS/Ű]n$+=wXtRQ1
-|/IC%ܻ |MgpDu  ~o?ᷨx.a|1ܼ|49IQW4ˢv,vbA[G6d- !)B+ʯylIRqG R=ulRmVAW ;Fؘz)לꍼ<P譿e-g'djM}AY^چ#SNTeˢE
-*ԛ77oq6N,Lsmy{񒾝wC֚PF!P%Oˇ
-hk>6NOMWېyض3*Qmڎ[+UAdBӊr_=)/wKʫAFPJAv~:'*'_6j52Ҷ8֮Sv lz$!KyygcvA&&ы?^+k:g#S[7}7yŬݲ5
-%=<U\xł<ɵ- kpO!2c}m79lz¤i&k n.cmC=zǫ"$rP{_OM~Wh*uFg-@f\nziFppWd=-)ٽs4`gG&t4#9xd+YqȕEÛ%Ş z[v"]%T9oO/Lǎlԧe)Nyլyf,N: vG3P\Nb0冀0Zxcט3{Y-c4XKR!tvMEUDH&"[czN|%Sr_7 qEȝ
-o<E> G$V]43ԇ#%x֣%vb+'N̈ƶX,[ct+{SEh
-fȹx,u:ՇL l竂%_n?Tl}K:i{Vsӛ?$MyulfQ[Cm:)|/XFWT %}Ru~Nf"[ד/Gw-lj9NJ?,(h[4/$
-. (ldy{L ™ ߹ÔRe|DKs,>SP_wn8㔦?4i2m3OOڳFA>BmCMwL3{i}rMv@DĮ{!y
-rW?JЧU'ΘcJlvب˅OX7RM͓R/ ]xUfA?pA?V8^+>&)MKE_>wr]|S+ ɏ^5 ]z%ذyvFR;
-=9ue
-hvVֳ@j_5Rjeؙpbqsh ń"h=`=!&uԳ)IL%bWa^@K^
-4"v<i+-ԾC6ڻ[
-=Vk&6Wt'̵s.I_imTQ i뙏@x
-'"Y{CWDYkW69ZKͣCs[a&^]2]n-H?tZf
-endstream
+8225 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 8176 0 R 8227 0 R 8284 0 R 8343 0 R 8395 0 R 8453 0 R 8513 0 R 8553 0 R 8603 0 R 8666 0 R ] >>
endobj
-11651 0 obj
-<< /Type /FontDescriptor /FontName /YCPAMU+LMMathItalic10-Regular /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 60 /XHeight 431 /CharSet( /a /b /c /greater /i /j /k /l /lscript /n /x /y) /FontFile 11652 0 R >>
+8784 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 8730 0 R 8786 0 R 8849 0 R 8905 0 R 8964 0 R 9027 0 R 9090 0 R 9140 0 R 9189 0 R 9246 0 R ] >>
endobj
-11654 0 obj
-<< /Length1 1688 /Length2 1921 /Length3 0 /Filter /FlateDecode /Length 2966 >>
-stream
-xڵT{<Ti/ITj)!$57\kV(3g1qLfQ(*Z"%-+* kRIEQ[yϜ3}xy4rBL,; ,^F^ , )4I_X8",t3!!B B,HB s@C8G*%_x"n h1b
-e5LdY%Y|4Lć
-|x_ @rbAcd`6 Y: !$;0\VS0DCK$ur!,!@E @n#~g@؋1L Wv( Vc!bql"\4V\X
-1M堈@
-8D@qBI,xB u|0+H;|\ZHBXq>XK yc*1 tS
-x+4!iZe᧍jeH$&rD2<q2nuŒW<a  30D#a`p:y$P))@(#
-ˍ~TOɫ{YȬ\CqĽ55\3O;RT|k-ʮ3שΕv^<̖ΚUDȜxVπj5J*%}6Ȼ^Ewilڽ*Lԛ}3b 3R+Z]- \e#iwY<!q܇wyˌbiS s5< qrU&rO\Ȼ0+p3;5I꾛uk8 ?K FͶ3"S %>(KpviEz`3יִz";80ygVVܘ_Wo?¡jk`ޙwۡOoZLJV_`ȪMag(F/,u@x嬨S/ zk%bm5նc=B6_ͫdsʕ<v"6ϵѢ-;`cx`UzL2wpjThj`6I {^|T^yq^_X ,hI[+rzoi@n5Vo\.h`:ѵ7H62v{Y^OhnϬvwvI_ݩV
-ĎcN,OB,h^ʔF3eDKoz
-3pL`?nւߕ'K45->ߵS)<yx/{^&8}Vן\(Ȋ<XAAKMO4eMOwoJkgu=nM\cWcrS_stG)Tڭ$:|~icF-/~kᎦ[ q+bEi33p+_E 'g`WV+g'N_`V9TŞq Rj!GxlŐ͚e cCS^ݝ1?m,[aߙXjsGdMEײ=s-yEk{; yۥn}*]Fʏ5*+{vH>(.ΜBKI1W{&ib4{˓/u6$*d<gM*L^),4֎9nroY{Ip{~`SlNkkn^|}jhz#8EzPf}lTUig)POXl
-i> >21%n.iv0N
-dfok2Gg)}$\tMΪu?Xg^Le%YwsB3ScJFliꙙCs{lP>Oᤓ> KݼWsNJ@rĪBlu^)q7)iZyb#ݶ܆h?TiJ_y4ΦpjBlE~Q ]d! x681} J|C(
-endstream
+9332 0 obj
+<< /Type /Pages /Parent 11606 0 R /Count 10 /Kids [ 9282 0 R 9334 0 R 9360 0 R 9414 0 R 9475 0 R 9520 0 R 9579 0 R 9641 0 R 9693 0 R 9749 0 R ] >>
endobj
-11653 0 obj
-<< /Type /FontDescriptor /FontName /JMCQJH+LMMathItalic7-Regular /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /x /y) /FontFile 11654 0 R >>
+9836 0 obj
+<< /Type /Pages /Parent 11607 0 R /Count 10 /Kids [ 9785 0 R 9838 0 R 9889 0 R 9956 0 R 10019 0 R 10077 0 R 10143 0 R 10207 0 R 10259 0 R 10314 0 R ] >>
endobj
-11656 0 obj
-<< /Length1 3033 /Length2 34723 /Length3 0 /Filter /FlateDecode /Length 36368 >>
-stream
-xڴuX= (ݰ
-d
-G"P 3i0(
-L
-&n.
-u9+ӷ3\?m
-`
- NڿM44gB(:8ۛg"e 4Wv5e]M/
-/Ư#e]c0rpK3[w܈)w^
-]7+ٕ#0oS|xO7iF`>!^0o30o'on3xЁv@?g&69`L``Z88~Ykbe 6e
-ޤ?[%'+.@{6 .b{`.v\V0o_j
-$ >DAg<nP^g6]Ӓ1dPg&Ѣor|ȁÐb J?- _+ƿ^u.uZ{V &g.R/ggpM{U7:<=Û\@m$(Ds<HCV]yĥ^,̕qˆmQ?dTBU_y`_ 64K_T]dt?ΌthǶ$7~9w8I0B_eAQV716JSL$Qi&zYg^S2/CX|>\
-Ec\'Mn?iEd5KT΅EZKvսyaV˯l!~哦aB= {0j`"A.wܝ9gz#36ݰV YggK"-w<݌Kҵ*WՓ q66Rl&l5cW+\P4WM]~ЂF?bG Hb {e[s N
-ƫdk 
-SH?-IQҋ]^dq%0{rd^&6wN|#o
-pcJ}r&Ɋ)LpH9#3!{3CSW:T&U& ('41pti._ '؁*<x31Ǵ3&@D55dmq٪AȀNkU҄$v<O$T)^czD@
-!Z㠯ζaiG)m)KViQJ/INz7Wde<WjYMkwMV5W҉xd7&HEW),EFXl}^sj)d,EN?qDT~
-|X)r"zۿ>T|Ӿ B
-͆="JW23L=HeO/ܐK SLpASsr\&c0#4RG]?ͼL3ľ`v޶8e<iraюJP8zI s=^0 IhLC-"L"&ѐ.8J
-!BiU2s/6yR}<I\}j8ǖX,[3)ԉ0|-Y 3An%,﷾
- zRYe>5ȹ[z6{ 3A-~?d_)zE\jĂU.$e-`n)k
-?+{\[p2J31B9uQ_̥ ;ueyIz7A$T1 Tln'zDogU\NEy#2g%QAPr +W0.pyeC;굓vΗk' 1#z;Z_g}2R4g],ʃtɽXSFI̖^Zrtv([5]16a|XeNġ2DtȞeuh%d>S|Ee.sP飤Z-̫ Nxne3.Q* Xg"M (0<W</d4E=IPVF RZ QxYјr
-//J #zHsǞYz%hI q+cAS-3֒9ЭHM/քQE񝎞3H< _̠N'%heA Rr"FS~ &]Q^x)Q^.WÃOui'pMh
-RdV2G]] UfEp"dGB?xLzp5 j}+KOF[i. S=DUB ϶VTDvYN,uRLvbʼcЃ;Oۢ]a }|^`)ϵq6fP?]oz}!mπ( &-"ӸJ%d6)y==}I^&>O$찆w,QPD? }VNFv'Ey` "Vk{r'/蔵0ԃ.Z?Jˌ$nTi5SE7df⫇Rt2%Zq><yɴ҆36 wU2CkG%go$ZV6Bx~7km[c$x+"%}LT˺4\2͗Q z4]ީf9_u޵;}MpAq+wo2$$R8 sEܞnMYM lቨ.تN:K~UD]_YC ~(tr\e1[(Kh6d:xÊធlGq4ۙ !YǙb P=c&&6 8UxoI۩3Ʋk);{+r/" PT|"v4 %.ʙ(mE
-/$&(7Ž+V?.^8L^A?OǪp<#^松wbkȞRɻ%%IO1 ""@"ܫ{;@yQ&%NQA 1 n/}aih~dF2?=dz%vڴ j0:^Q A悔k
-uK mXRM<UǯuT;YVdd^Ez2+>dKۋaHwfi"|ph)Pd'@rnY2<YShٶ Fa"%0Q\PQ7/Mno1 R4^b6')qrXM $CHW:N"nΠtJ(.1NW%)؏>#rDMG^w[D
-=^WnLr/a~h+-dzfE
-QL2aƳNXIb ƼV2!j'+4"?MSqcs>lw܃hh'>-g>&2],!!!t/K
-P<ي#/?64`^Aʜ@`>yB,pؾbo9|SoM.X2@r.4VeUZ3/zf6OA~~ct.#A"[+ۣ.C-aՍTx<"6{V(Fv\@;ڹ<ǏOFp EYIa<CΆ:6Fm"6_#E^XRP_As1cAq3ǢBA6vz"G?ú2BC(Vѩ*TJN*?,w!ʏ76!ҵ_,M,B}-5 |x 0QsF'DIG=!m 'usNWNYO,V-*>wcu_K
-NxvvӼҹqdٴ?Z3cVs.èj
-dA<]*sFGāqqy28I{">/UJV|yE"n9
-%b3Z| LVxZ1'wU\ Y2bx2^ЬaMe8zJ`y`ONDb1;'T9Xf%n<2̉X4U*-2t>l{\ &Ot*AaJp;[yBC ۪;c}}V`+(FoP*FQmw~^ Bk2q1^4J#B\ߘܞQ9vgʎ}QqtOuQ/sV՞^@PdndմOr(L~3
-o0 p9'"Üf/(BmUi
-aG_LpNU݈,<ZwVHEDfB WRnܳNg' ]G,犲mسU<l^WQep J@s֌\Fj̇>ǼrsN9r#%q P wXDA*_OtS*^j?򔛑-W$aq>tƇѾ+vU*sZl/|q סrqŢW<2SytgLeaTBXK'L3WN)]O> LW̸$;>#MNPՒI,j}T\#v%`~µ1K-L*!8VҳG^HQgBE[3Mw`ozHD":nEQbxނ>+Wg';_cw uW7G/oŰsu<\d. |#:sDh?[Jz;/B
-P Zp,\7A>|vd.kkir:,PױeSyVڻh{bZ;[r*],@^@yOM _5>KC{D&Q|GѩB\B;)᧛t#M!X4P sraH2+om{? g7! ~46LҒKA@'. \F)z26R ´l?GOƸ!]jc ?7}hPqN&o}yPMwJQB'aM(/iQ*˖|N;-JQCU8XJ#7!TUu^0uRgDX+Ty@t3{ɝɴ#Tnҏ%EY%Q)H[
-謮lJsl,p <6#.T{z+])2 qa#
-1ۯXT]zVƃs<lGAI7Q0Gs҄L
-l=h"9f衇m<?X92c?dgbe ;r!=+`3YF>lD-—c]D>p\T@AhyEAe>ܛY&ygGxо8>UDZ֑0-.+m|qA@ESnIG/Z
-Gv^x 7Y5 gf&ݖxFc\h=L*4&_Y~8V:V|AZԽai=bt AE+,,~| Ds
-}0 C\_uw#froχ-l!Շ'fċ0}"RUW Z]Án8}<ֱx*}ms
-؟(Ί
-Ev`)1*6}9\r3Dρ̶zk#nRj"0F{]$"]JxWyP>#۲j#;h7y.V`-4Iʘ_=;fV`ʭ)CT,i碱kn x\6ԳCl0Bj́uJ/`Lc%tOԛm~U o=a
-Arf 9۬!q3Ap[KSNk2nIVJSw2X.*.&,v㖓\Ka&z6aR:%(
-8ų-Z͂V l7353d䪄i&ng3RpdiRK£+*$5%o[L@n">$ఃk\v5y*iTKwuDmKS1O+!Δk&V@*RdK})K%́-=2?a-]]` N
-Ćd1nRr
-^h ό~*%Ī]*_ 1(~솘ጶn0ّk/..L Bu5h#BBZWڼOĻU0)}RJ`)U:V 2ҔmnSR _ _Np
-㪬3u;93fN4*f4u.
-boHΉMg\y̾J`&I(Ӄ>:ZVVY Vg&6-kDd 
-bݼwzI*pyƛYH4wŢGϢ`|va ΍9[ aZm.3 2He7m܌&&~6 ҿ'1:E럦v#ƞ" ߒ]0 ۙӈ$YJYn0o\Nv VΕ!Oh)2~eX1k$O/5=p&BU
-6^wЊl<6~lc[vs=^~:(H^ )wS_̌-U-,e|Rݤf) FGc}5|"Q(k
-T8}&+v&Z`($=:ɏ`1kxLż3Qx] ("=Qzҿ=@F 7X1'[Ke&vBmz;31n@f5NNTiPJcU0fVgF`e! hsBx
-g]bEbѮ HI=YFaՀ>}5DP ~rTu!3RxzB{[exg
-PMzU7A*S\4e6րiܗAd}sRԆRΰ$JuPAq
-yq3HZF%ӕ]$yyhg\sJS
-`7Xx|3ItFȐGnfe3pC3JSxWM3F2yw=VO c<1PVN]f rFA"7omҴ9+z]QVۼ᧾!5x;hX0}ϫ8A9vh`?0%E _rg˝5$gMPI8b]fi2Zv(F#~uQ=|F`&U9N ]$Ij`(5(Pkl\dz{ N$Iߣ;ʕD O}E7Cg] ڳ^لpު>Nf+@P\UmոƩrˡ\NȔ?vUp~#CK͐i,uw8R\NKPR^c |o>X>pԻB sX]5"(
-#i;6`;4D8 T`+>ږt+^u+-K,X~),{/[oWN*3 4; 44sA/ܐ[.8:}If~ua
-=T _(iwWge{Hg4`OK^$fT԰F{z'yGQ:6ڒ|j\3Y3-'F̊'7t7w%Tt1P&w4XQocy+YAWLOZ
-{Cn[rOPR}Oe2vL4B 1s%)cE[OuE9 BE9/'т/^j\nnN3Ki9){4qPۆdC}3_ 1KD& 4!ELcEuO$_* KXrL`$x>7RkʆlFK,hFA,АP#jKڢ^/+XNLf(Ŗ@mdsL{ߨ1XtYjɜYVcu]KZuY6nlEлK\\wB>/GV_P,:pf28|^n8s}T9WF~ISNڱgzU}r$sz!Qu_&R-"ylJ(ƸяdXm}y@ɡ j>6LWTf<%|?aUAbЀ~
-j_rf;lq%^D>FWcWT
-]7r)t,K"_"7 |(/v9b11ug[,;-v7my3=/;gqy
-X'K%Bvmh-^V\儯P!\~~aܭ鎩g`@DJhfcYk3y/_3H`L`BQDLriu{(^`J|w^<•ypܺP/`/;=R#뛾|Bi4>Exx#(lmA{%HGEL%o#v{{Mᡶ>aGI]ERT
-=1k%ֺ]4D&V=OKbWB^ 51re
->9]b4~ ֒s?]/˱ SʸXF-m@D߸.x䗚p7
-g$4eug5 ]4B\W7\Zq8n}#ϦlGkbaN6}"=if_xTa`Yc5~r̽aMwv$S,OVšr!Ck. LKCca\-M'gV'Ro^b).0e?$&g0D?PVk2S_@nfEYӜ' C܊[W+;D(w_6k |66 |v~xR<\UR)ꌵYQU? 9Ȱj+o^I~.36F2O|00H;G*N.ۿryn12̐6Sm]+h#@GV&꟢;n܌>FӁ>)cŋ_'2nvPT5) R+LmdWdzc$.V/d@q@/HLCH TF>DD`s&wj!}2t>4zoy^Ì+/L}D YEƿki}UC/Pȷj=Pǧ^e|Px]@si2] OdG&jz|i%VȾS__ 9 IcH==uJMՏN h֜[ife䭭ܲC\<PLޯj?o+ꖠajDO%UH< ],q3љ#Wɵⳋܾ\ISy@tLQGZ VQI[\_i*1ljeXk)NԚ X8y9lJZ+o#vϼP,~3v՚Pvfe?ž>B/+(D8yd=uo̽@D%uΚY}:mn
-7_o[QB*wې
-?SA.[ǧzr.7#/xinY@@40#2]ה#&TM'WNEK0ȼ4]15yoyw-h(Sr<{7
-79u+Ul~>`Y5:I=˅Lja! KvBfCD'.sZ*{pL+?#RA7L^|[*-B w0&D#]RЄ=~*s+^-פcd>$=Ԋ=6Sej,wb= ިsZ׮rtg[?YC5HS^
-|2B'UMi)ԡO çM 4Qhh3[TDv25dٲ4h38DCu6VWIhXu4pTҒm?
-Wm*~gRE Fiz>+D}M5ZEkih+F%c
-T*Χx~#XY.IcKFF>~#)N#Hk{|k" ($mf?F)No=0 k.)=g.!H-8VnN.-8諦A"ts\AnL <>#ݘroʵTv01ώ^ k
-=2y0`ZrdSeH E^Jߒbb9Uk..JDv7ذ{q $,{Hnx!YNvqOy翹ReAwp"YNV0ԏh^ћ="~E=R^q;>MDm(Ub- |P|(~䫐f/qwZq;[ީ=w{heϫK8:Mq2ҎmKScS0Y9Pa KЅ(N0A$>qہ9*+$XX2O%}jyeq_K
-ZTr]?c.@e[ꌥsv3; "+Y%mOϧH;vbG ,_=5:ʀ~pt c< }1#"U^Ml(2رEj|("Bw/v<Y`1OG',~~21q\]= +UyTAtTK퇀y ~Yk㗡<1MTc.d
-^ Ԏ7 ^lC0 c۶m۶m۶mwm۶m۶msYYL}ַM*"OC?fַݪt ŠC5XíS0}&ILmd$9+S#̀@(8c PDnן#EΒϑZ&̖}*tJЈ J6(Y*lΗz iebF>۫r9tG^6#YD'N5rN2"ss
-{AP6iV ǃVQB4TFAnm"/9ΗP0qDւtPVykuD9<ג3wTfY~"F'$xk>(H>*WX`-Df"67H~QjSJV/#
-؎$q{\ Vjɷ;*$.U5hd O*i_C.|(Ի@a rDh2R5%2nu@J1YHRIB:t's&TYȞ.b1/b;Wdώxm ݱf8=Y-1QJ}
-XfdivNp
-K5|نe%F{ 6?6nk~`{"* "LŢ6h'׃XP'ڀG|#B?XWzV\S/?xقa _ʪW'2M O_t4DdT ܂f/ػ~%w>EE"gbM0s&4mϿ;xOsA
-HtE#jf+l_Ϙs@'XsyxT!<C5UΙɞ3+Z~S[
-{3gljM5,i#чSfsM$#rEl3_x`K[ Q%$ ؐǤi%pV9ѽ>dl`l&u2v&Qb<,1Hm}7Ӏ]<irFԟ$ aA̓ۥ.GKB~0F{)j.
->׎Wq|ً>炳4)њӽ-f
--{!a料=zn/NCFVH'iXa̤P 7xClR?AuZکe1Flwn<] EeSM7Le =Co!\p$%ɇp9ܮEdF}SjtޛR{X <T2 )`LT=QhC^NCOSt҂*"B)xB"DW-h=G麈F7# 1
-DsYJOI@:-+0}FhmaIIמ0i(]Gn'i?"buty%0C
-:{y PCDgtg/e-,{)U`?d<\Jm۰hxť^y
-ϷcrDI$ ȫ~uxqfmmc,4^ify 6aWŸ]"
-(h`c=k- p+J`PoMa
-tU~_9>Nʹ.J`{_puR^,ٺ^)^w\=VOϓ:wq PmeN^N7@F'Gԣz"77>DM"(xG0  v-ʾGE
-"(S~ΌwI!iռAKC93;Qۖ(T*;\`&'Gն"w <֕H:P
-S3FK
-zu&!|ņC#kYfBݲCF@~xggjI8z6M/8<Kvs(sLWEP][) P}dQ-54,ߏ3q7ĆУ'7d'`ۥglJ8kuϊbe&6!#: Q
-9B?~`7S0eH#s>z]rڲۙ}0 .]^5f%"8{S
-<D0ġ@[۪"/>6b{ 8R;h t;H2rj!in&
-uW@HE~U}lql"-iZ{ISvOsuEqR-I̅TAH_ϘbuؖA=97${(q}7:ԅΜ
-
- KS4|_<kKwح])k3'o &аG(Wت)!,NHbL(ozN5Am=4+8W%4 RARwbt
-h5P%(-s^-Fh0 2LMF88 d'ogˡy>.?QUQѝ8þ0oGb}
-:ʀ[\ ۘGRJhO>U+;]Q:u`PEy!!s{tx_~c
-t\/OP}ъ)*>5Є>V4ph md^jr&w(@+ֵ0o>ϷRBA1I'1kGÁāFLp#ËyyA7dǚ{d?2u KsaB1j?
-]˹;I4sO*N: bE
-gmKӐ#eHѴs-.ws#brNo~[~&R}bщVYyo\X݄I
-ɳ@L2lxPt^ $u:Vб <p
-̥̋{(?/^˵Xayutjw=$G1WTj!NW4]xv[Fyv
-`KX"~ C";G%\r&P'+/L@7X@M=mE\qC,[-6aN6e{Je0T
-iE0`GD3~!g0B:̫"=u_hGH:N|FGWg0Rh%Z 8Ά_7h*nƋ)hW(ޤjFZ\oH><0B])APi܎XWk4J}\Q<f_oQ] K_w$ tB֞A6eOࣗd ؙҫ"
-Ф䬚`<Z
-7P
-h4[H~g -֬A'ith ݔEꅭgĪ=aQ39pEJNvBf`+6Kü&0gKP/E^?@8+4w /`P DS_iW.H`i5ܤH\9:L7 Y1{
-tvJ5X ,Q3jr Œ^" ]v<i`.:r^(?r5uCЅPB+ \A9a6ה'řzh-m/ףG`ZR7QIR1V] 2J*F
-[s!pg9qj!<@cO@=F/_[TMTsK+蒙L$z4QCgp{cn4ͽl<Ocyjf#F2~;l1y_4~0XٝIP%9&0;*% q=~1뾙9h:
-ZJ>?793&/zzk! + 4OBR+AncBܓbo]A#IYN1fQzhK\c}қ.o&;#G.+!#Ik0!Ik<8 &AeW_;N;qA=G[YGPX`?oAmnnRkc. >.cEt9_*bfǥd|uњl[woS*a74-#LZ@&J%ϦF5U e~Rn$NavDc Ldr[oajd}b91
-@f& |F(<tUR7xsPVV9TTś%е Lp[$8ycyլ>K$\<bpN:v ګWۦ >H,5^,Eڄ+L;:d<kvBpw=({md?NKK?m.Q&z
-P=d%V7; L+W/O "=+@ON:յ@ *
-5^4e+̒47FWWlgP##.ZEYEaek2G5QջK4}Sfoqs iO&ʳA
-aJ,G3NE]
-ÿ+%?ύ|t
-KMF{cI"ݗ ␓Ukp䐐%HSCi8]RpT^;T ")B?~ϋEeŢ-I NM0/OwWI:B*"jکT{uo"!F+ fwo[F0y5<&~]":CL4Ss[&)2<+=`͏.), ]MSDmrYdpt]NPrKd0I<
-XSgBb8Gj.i?psdV8
-KLNLH%[T"N "`YU2BxˆTY=o. J؏`O( v0JNE֗e/u4V4I}~"\U$$soz1Fd)2&t&y|O1ªKR\GzT6)`7"a#%ܫP~wEjm d:R,A=>/V?g߳/<솧&x,n&1 Ms)'V5چ:ZNq؜lj:Ka\!lU;F&$fi= (26Zՠ)i\tPigz,_r7b i.]}2,hğEAV%4^Ҩޗcl>S
-fjt̎,έQ.)Rr̾2jܢ3@9(cƈFƾ׳2kyC\[
-t벇azZ/nȮ3]Z ‡_PrqLYj={so嘻F76>s8qI7
-:82_x?'`б-E pI^2`Ly?;s9ƙ_u}:{HGZ;"'{=N"2,N]4+ҔX܏ "bǓ@LS<BBEd5/DUOZ5.ClK8Ѱ,@((kųN
-dET8Q[8K Мz"U%vHHw7 u!ٓ6#A?>޶Nz p?
-JYJ:&;-L[=;X+Y2t;ƾnJˋicg5?{h߮M,ch2,Z3CjP!6N==so}[#Q
-K-xcjwk; e y(7v=~\t"*%d
-2f!A \C&7z"1MJO•0~
-UUyRC!샒<MJ>aXB*,nR ԔI_D^f&]ݙ\)Nf})Ψr{
-KwXQZs`BΞO BL=4M̅
-tfԝʤPYNU]Ec' t0_EoҐw/] `ܡOTWE8;$FN><2",F(To% >O(/+7Ά܋n:9ZVn
-燺r%ak%:݂vPy Y{9hf`RIa@<k: XR_[`Kߡͦ9L/Hyza$U3&1]ܩxTŎJ w5q
-oM&
-9޳]eyPĖJzƲn[lyXT%Vgo11-J҅[L풪(]aS>o͠B{nx eQھgf(kkؤnǟgY$;9l!ȟ 5⽎w9t.5od^WTc8'Xmm(^Cz>:fԦCF> N\!:+n@ 'ЙVTsbB^{vFfBQmFEIӇYq+xO鐭wdT28(\Qk6>gj\w[A-S{ӘD
--;xoʀ\|O %2Nhc ): mNJ_W:*[X`D8[ݡs )<6'r/Otf]I̿CU
-$/# !0M/YqO1УAZ ALb419KxG5Ş94w1YEQ:
-3)'9p ES~{Ӂj)`1:X.8ץ){d=a}Ql^KK(NRNyuS
-S-PBFVONReY ȥJ,d*5} 9N_@wC=d& 3b}faIqSs+zgvXJXvTAHOsbӖac^]Mf
-fZ/go"c %7]gG*!H,m?}IQ1^@j#
-XFY8/E6p _
-.,j!,ǾȑUF!غq$ ABb[q\SȯtK鍍-a}?q,Eu~OwV;$9 BgmqpnSDOQz<,lXL|oq4$siKt :f|-fUYJuѬ/dHs>3yҰ
-u_Y}_h>-(*&eh\'\a42Em`'Կ点{",Owxrc .RMQ`.#a+Ayprl Ө4xI1 3Bߏ
-ߛ zG
-? <GZ7yK3L"1<p|.'BUtN]p#A#>öC\H[B2]M&Gp4@0Aky;81Lrp5>[nz<{ΤC9~QDԒ`|lir}(CUuJVV E=pY*Y Q&R+3D\TbS5# %sI8#T!ƒTU V .˲ϣz.X`>wB{jNlqݴ+Z
-<k8-Bcԡ+ۘ ;YQlvuxz݈#O MaB`Q56"һkq‰nc:ByJ$/M,pbZjRns:(-]Y$B@*i>y|wYTN0)e}
-: =VVXRR~6X %h$Ѱy
-˸\k7_DSvec,z0w qTiтB 0skZ{p+ǣh*M08P\_LjMiQHW< eew&QSl}b ! jx~P\1eKJU#sih޹)o.
- ~<E˱i=/
-L
-G+0|#pWI`_< z
-WP5>G`ڭ.G'h2% ^Tq9N? hNӽb [p7Xvs5!bak;:XC4a${4yR[r ރz(! ^y
-`m*fRNJg9'T
-|f÷!y g5 z/4į
-P}z8:Yw$~
-OO5`9V/y'2ӫ\<;N0?KA?J\|tPc?9mcJ%j$7JTgCuj(-^Z6qڮ -[?KV?:>1"""Gvr-XWk roy& CJiLjCC:NÙ%aݕ ǼhN:c=J?؂žQ|Sj[[GF孲,@I۰@ln{YLN#KCdz½ u"~ɟAL"$Ws2{ܬ̌HyAcvVmϏC<*uLigMK쁲O;@S}aqB"@=04EeX2Z
-Bz3QKű 1fRKPuF>ƋpZ C@{ ~P.w~7Sh=VbS8 ϧfqEoq<Q^ÎW@"fVT(/H>
-/][Uك )q\Jfg:s_
-4)EqZLs?\wGϽe~zRWQ(
-;1A˯=0V\4 /S{"~t[Ròxi>["q@h
-jM!;lظl/^D۳egf% Jax 7۹Smޫs,?HB|OtofZwyE*uL 4 EbOu?a4i+(GAh0Fl%vHQ52 VLvyg`c"Q朚j.\58)+/Fz8}v|bׅu'Hs bA`a0_?&w#\c6<:2uA>/CƍVO`4h  g^7}ɐîO#hH{klTj
-EDbj.6.я7KͻS~4gM
-Svmݯg,(D$s߭2 !g$ҕQDNۅWk3e (7>kqDpܧ4
-8W98SsݲQi^t<[&W~|f ~WM3텿 @6D,mC$"bf_`^p5''"ĉQ".s r$+ċXb
-ͧFGN U?<Kݣb80T?cI+:7 3O$iQ>ҡT./ü
-?l?#߲><yu u򈠋jAAQj=/mTFj{lJE‡CAC] }EJ(ֶ;-[r=jt nI$+JN-m|V6ߢL
-܃<[a2,6bj t9wI܀c&a'.]\tąP^_d?w{*3"A
-<Gz]n?N".SvK(ZZ ReY( rAA-<ņTwwŒwf
-TD+
-P:0nJr l:JIg^ Vz-aQ]ģL|nvaIG$=MyDuc&zDG7,omX"'uͤu's/~ S?9l;DD* kn˳\Á&Ŀv-hyI X2BF-EnƱH-o` cB-ԈRqWk`_bR{D^lC[u4kk/ݘò0&wyek?ZΌloݔKub,F=+BNy6ׯ?Z!M~s,qIX!ҔT[#q@iYi\b#CY Ga,7t7nzwp<cdH* ^;RKX2 3.Wh>ij@{:RqJGފ1lXt)p`Ār= "Z%Rl{}fI-)*SRBU4w=*dI>g66'
-xQd,)P`Dn8ɒ&{񙒩KTi/KL'3 ~};ƞ@Fժ#Htv<&Q &a2|ҡ{l;|YC)%*Y EY)h=Ǯ\vorI=um`Us
-/̞,:OSS&s'%@硸-s:0N%=>rH2gr1 u4@0k.# _TAoOlZ0x._=P#1
- m
-aK鲋VJBjW0JoՏ]˟ 7s*:C#ϭښ@@#ʱzPU!M_{v$<Uفw1*'ᘯSuVeg)W
--Y$>K#,N[P}t<A!H>w~s Fv&CmPEi$Λ?5צF2Q|!WY5xU[-y iVpzwzA,"׳\4zm/=g
-mu`WsarU]l+ 1C"N=٦4
-S6YPg (R ?e2 yNSKPC<>Wtj/P>"0Db*h4, 5!I1Lԑ^HZ9M7duRWz-,h0C&>2\`iٟ7vCcno;L<pʮ0C# uJ4xsd}N;~onw{^ 7#r^{ =&$"^Nf|{
-ܬ aʿv7v'@Ҙ|li~{DƌF3# B6<<+<6Ͷ xsdK
-֗
-p1*)K)7wσcƸuĂp!tj\,͏:Ϯ6~DĶB9&qL$nuN d {@aKTPQTs“
-/ef]#,ZrW-=꽝6jOBj) ßC?7Pogx`,df0.$QGriyA"P@^)/^.2 I"s)][Nܧ[ p!pz׆-XRA :Xhz.h3"2a^D0}P:X:inɨa/(# 0:L:e^F(儎Y8 txnX,m_°$b]ۃA& xy܀aB*Z$s ap~"*tJasip{%H]%SqX
-2ŻA4LKI9B$౨{'WNI
-𦃹
-YOly^V` QB,0y iIZ4m'y1坡!_C8 o' qm \΂\Ɲɻ ^,autpŻ%幦Pm~hX4)Aqܘ6VD߁'*;̵5dO.X_'0 f>3bP
-=zAqYyxJ^>RQd(յY;s^ ⍡g'/}{ n&J(s:_11-R<f
-b13X
-ojUu7ذ2T_,msCE<鷓=2Sw$u#ŁmXggw}SlO$'{Eg~56Δ
-~3^<@ sS:xư֧>O?`$Ic|քMDRQ|8g
-endstream
+10417 0 obj
+<< /Type /Pages /Parent 11607 0 R /Count 10 /Kids [ 10355 0 R 10419 0 R 10482 0 R 10547 0 R 10611 0 R 10676 0 R 10740 0 R 10804 0 R 10869 0 R 10933 0 R ] >>
endobj
-11655 0 obj
-<< /Type /FontDescriptor /FontName /CVXELO+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /Delta /E /F /G /H /I /J /L /M /N /O /P /R /S /T /U /W /X /Y /Z /a /at /b /bracketleft /bracketright /bullet /c /colon /comma /d /e /eight /emdash /endash /equal /exclam /f /ff /ffi /fi /five /fl /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /o /one /p /parenleft /parenright /period /plus /q /question /quotedblleft /quotedblright /quoteleft /quoteright /r /s /semicolon /seven /six /slash /t /three /two /u /v /w /x /y /z /zero) /FontFile 11656 0 R >>
+11063 0 obj
+<< /Type /Pages /Parent 11607 0 R /Count 8 /Kids [ 10998 0 R 11065 0 R 11132 0 R 11197 0 R 11262 0 R 11329 0 R 11426 0 R 11439 0 R ] >>
endobj
-11658 0 obj
-<< /Length1 1892 /Length2 20973 /Length3 0 /Filter /FlateDecode /Length 22119 >>
-stream
-xڴeP\55@#qw w@5%{GcgιjUuSi0ٛd,l
-@go0Ym
-rrSѼ! [_
-Ji-.KrR'>JL M- hϠ)W`WKkޜX1qm^lK&->͢P!'_+tFK\;ȑ$kgW̫d
-o-ynE8N6XDmċm{h`Ìq~(ވCW~%h. ^D78i2PJ3ozםZj<OXb +L6I8D;c(:(W|>P_X^BEԨ-Q{. +. dEՀI-Krp>Qv&-hKjYe ͝2 ғ>C` Ge&>C{6F☡?NN<mJn:j<g'<r^Dԉo43)g2t2zMDC[Fx3fS/FI'ws,T%2楕cVsEѳu_]ZyQ>"
-repL{H/h"}̧sqd53qٞAryy[GtL40J>u)5iQ"DU""pJ~h9Pq-q
- _b`T%PZY!LV@苚^}z3w6LW#- ˢ+itN8.-9K~uu[
-ul({BѓQze/!3g:f
-!)KlG./03N`Q.xc<̵҆Ԙo=Lޡ&Qz~4?F{ZX=4yҲ1O*tse] { BWNT(0~χA3_Gx
-Nեv~H`_! G?HEP ͊OKP QJaGcy3yvb/
-= ҁ+δ5ofji
-$,BFPZDv>KבqեOҌYHHe?#~#=+ ]׿B䌘`\ERV01Cˈ$=: - ~6ĺlSM?{4#âƎgr`cBq7ݡoĥ C=/@BGo#{[,kNkҬV֞*}gr W![''e?q9aE8aۧN-_ iC/RN]Ҡ ^eDn<W}]:@0Đ ?#P(:i;1PA'u5Ip`сUBg+&*ulـ",ૺN҈+!A&*zYF9VlW7|6w"'>/~͖7bwٟR$9Rה b#o Nz?9SLz$aV,D=FIi4>N\$MN"hkēg[93wf`/!?E=iO.1 jt;>iu PC#N:®edߙʩ|D)Mzm,BM#S6ȭ%QCH굁RNq*E+ҏHDt Hޝ !0 tȹk-!
-=X[W+
-^ 'gM#/.sЄ8߽12Fw+)C8:6A| ި:ن9ËY.CQ|@޶+Js3FrpgkHJqh)7*߹"%muYT{%JZb
-1Gh7 >|Px\o3?a,̝]}.>R64$F|d٢IZbasE }o_:8@|`CݒUk]"^[t'Sp4l2PڛæG-SpJ+KD7(3S(/`I3zi[kz=PVfkL|eM.a./&oaJF v#SIitԃS.Ncܭ}0,/*rghԊ'a:[|J+:sU5B:=S7m_;ACHPrR.R/ؾx (<YR0Ӽ€}%WAЭk㭉MA`E܌2ED=aj?{'oҭ?a蕝Hl/"(wпqצB
-8⸕
-TNqPy*ʴnյ7?Oۡu ;g=bsֹ6ի~J
-Mʋ0ticb#B,P kxkU}Y\qKؤ?Ҳ[Cه=4G*V944L7ڕv`W*˜W%ʲ )62?h rcm%uaȋq-nMpp+>JQ{%tk|m"K(kvX젨ߝCA g+$ 6\mP]ٜSxڿ =}.'UB)7,W2x~azB<`t,W̱ĉ׆MCex{c:0Ä[rhm 3'nu$ a*94n) EUDufMYZQGṢf j
--IK> P~t;ň,2ˠs`bW [([benP-!ܷyf{p$]9b<mн3xm.Qr561<d
-GE mٍa
-K>w\M;&Q8_4Ikx{Kö 8 jtWK ]YļaO),Tog wg'6I|ۼ_OҋH}؇ɃA:f'5.֯Oe5IAx[|Yv:SB]"agb"j~>u;-NB껇QKF,li<$s-"u
-_6@F1ya]V p^9ͰsڥG%W u;7FlĕH+"bz٥rɺ\`Y+tFoԂ㭬#^bW, D.H<7Q>ר])iJpQ2,*X(KA
- \
-u c)rﳢvߋsk-@ذ1";x&ίX
-}B*m(ok+Gw\3Am2\`9imƈUG+5xFjMBѮ>Kl}@{3%_׳<J$rF}
-R=p\.cn=qvŪ%$*okI8[`"gE]ӺV}:2e E49C#!lv#F-)~1$DB[rຊG[a[Wh_-&ܳ6v;焏k}#@߬&9xqKEUy_{YԺJ.׆O{ڞ`l.2|qSra!V _
-d,jbzQ9ɱSp{U^U?n
-u+q
-d wv8)C~{5K>_ZWIȫ'.@wM4_"
-xeKxDPRy% $t_yoHE`#8i|:<uz7,Q9rZmfnJlP`2y4=SlSJ )_ހ&<
-(JlfPd:3 eVNt~ǯHgwh(<¹%ͳ V'.]
-
-: C}u=RY.«W-eΑ olZDjz/3]l Qڠs4~Aߔ3Ex\x[FʋM;΢pQ̍WY?X~FI`h %0sU-f=z.P逢ck|C6_Bc,W.'ߗZ~Wj"<bN9i,gno4Rt?94֬Cm_t4g!Gc}egu$H "0G̢awu,y8oQ&¾ESD"j$Ԕ={psU|(pN Yׅ&XWAW;ۍ&FXקtaӌ}ugO .mh~Tcdd&n'E
-w-iF A$)I+:Y~bKuXgZ>S^̞!q)-
-dREfK)!1DHل԰
-|b~ Gsq4ߛtCU4hTI 5. ni*8U [K?Nپu,V'½""'bng͑vT0v[.S!<
-^ƅm`ƢtF."< -_wJ'aܐX2w7YSqF@'/5/Nc_[
-q0㖖 ]ܰ;}j7#`<B?LrG@J|uuHa_„P n2I]jd]ݔesⵛRxxo*;
-FW/S+M/\D{Kb9 ߽M%}M+6jGѪ C7=ԪЕ'։w|
-4CC&&ߨ3^Ao[n:.%H pi\&"V7*ɤ"tB {9!>98.لC&kd=đ
-Iqޓ97\0XLn*2dJO`o5Rbm}UiLvvAtMQ]ɇb8o (,Q%W ek,E^κQdtb IC&\݄5 CN6.ג/
-zWGh^]
-u[w0_1´ϙzx8e8xnY>D&a >-@gW"R=UpF.T( qP㧥Y3jV
-a$*,6& G@R\PXfmQ{itqKqe@ }' -%cӞu'+^D="]Vn$E>3vlԆɧdDeb8q;oX3"ez$Q6w"Kb C//֐0"D%'ZK+MT]8`-}fg|/<{ONQd$b)m4͂+ Wd{
-!U^-S6o~^wZ i!S|BCX}&# +4;i<sA)ĵ3=ae?;1qݣ AU,:# |N[Ɓ>1*VF/ʼn4Ŋ}
-bE$))48Îzb,KZ54,\FdD/
-B90JaHRvIS'e3<*+TUAH{S !ngE,X F.r joDd_V$a+0OGyUdO B5d⦻b';ZV*` !{} < yqlT?r7M8pXO).&MUXx
-I.n*zq+_ò .@/wObY`ӫ`wGfۦ3!ry!Q;|p"n{[ 1h= ܺ@ui;Etqw|O ۯԫGkcis֕"nt&`"pB@ifqR{IfQiX@'v%Nsv>!`E  B[[|3??
-Α8Ģ|<Fc4jlP<Szں'SU bfjv;l+ q6K&˻
-F.V$y ,31&l}g3h;n w]e)D\ξkoۭQX3W}ӈp[z'ģ eg 5L0FwZ m?.o'*1nF7~@-9-|L8u)ȸKtU)&d>% LqG݆u3s75c vGOc)FJapq!}>ɚIVOmbK5URil5yFi5pɘ #fq{:U
-#g!,ы1cGjub\rC5yi>lOE~NYlc~,Ln ;ccj{̴ vϾ'SڞG0h@V#{K`)'э4~\N1Q[4 ҹ#q!o1f4c=' 0b$N+3HbAD.zB6%U$z͆.|Sy{4U ߗ%&[},'u Wxq-Wȝqbey?ZM(s){iA"V0Oo#}0(:T"%IY<ē0EOc*ׅ:?;m8H)&v\OY''@TQܖΡm 0Ӕ\k9Uw
-Ύ|?}cs q:z/̲$Nd}ՙ+z(yKrbةȚͧ<3W&eh9) că[
-`
-UUK/&ߧ!~ [р}y
-$YuϮ̽02,.e%lfNRƘ $qDF8ւ;C ޶ӎE4A%dܶ>& (&@cgNk͖[j/]wD#VJ;hu[YV?- //4=ڿ ͘SDZg]Hiw)buҧjͷQ7Q/*Sn3(EE{q w]Ԝ,ry~PnFk ǯx}]Z+rW)Ewd~RI<AEi<,3hOԼMFhz7<pCئ)j8<#WD;S5GwbK}z_~KMS@-Ճ&ZU] zYpo#j
-';mgLp |RvA<Mp-Xا=6S;6> hI6 H<^nWɂ\v,ЅwuB_]ք Ho=IA̬PNhA3k.7/9S)%*йֽU(6:-qcbR)p"4!G b\$ڛS<]өn߱ΨR[[D}FMV)\fx\D4.fx]7,4 MiK,QV@s1VO06U9COD[~؅8{Csk]1ʡ[Ე)k0AgI⒟87VMBÁ GP˰Ӕz[]gfv}@!h@xI <Yy:21Ɲ
-~q~]f)ozVno4)Rcת~Awވ]Om4ﭗ,6k~L6yļ^"jb)t.sB<mɻ ׸/EXK{uD: 
-3s 9':hNy PgߝUVl%T:z")d/&1&(F/)._aj+иqm&_u`,6P6[Wv6UxW0sF,L ~׭:8^.g=)Wj2`aunW_JP3 򟥾,ߦ @|/#xj.nI<gn:MF B=Q/뼂us;g뗨ҳ;`>d6K@/*]5D,4Ϯ} e b{+ߩyse7-,ZYlk!T0ƭ9x]..f.EKXrEynS*u%`/SPauMse$pF4c)*F3MHťc64Ngp*s#',D%1V>x3ƨM1Cuc԰2JgN
-哃E;- "E9wIiRE~tL
-ݓ<+%">
-ر5PEX5L#i?Ys{F0-adM?Pv`ݪh8?b|c?:M9Ծj\cwzbfl|%~ (ETһE:\Ò(}\ο *k2/4W+o ڥ}͑/ܲOj?6UOPmt&yaKqe\1*'9<6L24 G%C+-7~x2 ۪сhx$R~}g8<m&TF\6+uū}&l
-dL=dxغb~o@WKJT a1wX<\?e0KŇ)$T
-usyck7HM&Ɖ<1#ҁ W7jH\]u2t,tl]sA#̌/tG.e #WU*Hh q!(nqZ2|YؑP n]o
-"F񅊻^{^MNHۇ*ņQEFV ‚-sjV<p=wCߘm[vatyYaNؼ#Γ:XBܿ
-E;\3Wly@DI5vH-Ļx./$cͪ-
-
-|Nd |~W^ΧL= f,ľ ?R݅iC C%ob 5C0[[d ɪ+TJ@SBt~n&TH-ƅVY*LCFMq꯹TI9ݰ^7&s#4-ŕAn'-X_m"#r93ؐUkfj3'MR#Mn]JpyF~dJb 4PW&<7Ҋ< (Uꗭaid^ ] .@Pfo1
-! uGG n\,YL7XF`ʳ?/P zppm93J=+1HK^5$x[),=۲?Xea让3n+f1089fϻ֤g!㓈[{p 2Mh M3 Ijlͽ10Y=ӭ;2!6+~T0#r ) quK6<6Kül\aeZw Ԫ<x~rrPsd[}I&:~n>;sd Ja w|KgptL{FZk++cLy
-vKY5*<A钯Rٳw9i5™(~c'ΫMٵF4sfA7xMj< /gB \'
-tKg<
-$Af)_Lʁ}/O0,,G+
-]?%S2҉ _vfnBW40rOr jKx񿤪)Ѩ@s7@wӝ[f"$E4U :6M=חoU*qIS#ߧhjI<Co a>ҞU>rD}3fCF\p2&pcuuPn6p駻[_{㩸 UI薊adQOMH
-Lf$CH/V1Gzŭj2Ls5.qlZ5->Ow:0oF*e%9oFTORLy|ymkO;X#M3 q?MD \D#y 7 1y:b*UzTK
-c_HRh?v?mXaޜV
-UpWe(B. FY*3b1f`z!w.ABF
-{%lYnۜå7wpMrPE( ;f?P4NLsZS/ި4Zgؼ|hхy,gQs0VIef*4~_S9i2'}St~^(=D\2YJ:&!y순 ]. \yt!gM2FkWY6]7s:g8K&'k6=(DV)?TlLO3GAt_uT:o&h4QVDL,T Pr
-Ӳy>]k/TlZ}eL1w,Be7 "
-"hmDvSΔ^8ҴJ[W/
-a8`d]v|; FYگG@V lҍWȓ;㻖pY>޶-AҚ(GAp jn:$ef# ڸ督>³)a̸C2C)V)-me4@?q̹7zCXq %)J¡aj I9i-Igׯ`U7MmCa oel8%s$ʒ$#aʀ,{Ƿh-D߻eɤ9 h;K°Etg9*GQj M#JSɫaη?m.o(*5 %^d߶uKId);0%6׿VϽPoÀeCZSUq]U ,l6meF#Y٭@CO_-븹`oikܯё3H_TT*_.(/3'FTpqODC[oslv;pkFUjoY#^)j:Wj0kn%b**6lI3{ϋ^Q:UjzVuR+t5}'5˳>1&DT7ЯǪbuF-g7eҹBM? ǼO%ԍ$Hq|ye<A(49
-endstream
+11605 0 obj
+<< /Type /Pages /Parent 11608 0 R /Count 100 /Kids [ 202 0 R 579 0 R 869 0 R 1327 0 R 1786 0 R 2242 0 R 2743 0 R 3246 0 R 3754 0 R 4267 0 R ] >>
endobj
-11657 0 obj
-<< /Type /FontDescriptor /FontName /MTUVDN+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /F /J /P /a /comma /e /four /g /i /n /nine /period /t /two /u /y /zero) /FontFile 11658 0 R >>
+11606 0 obj
+<< /Type /Pages /Parent 11608 0 R /Count 100 /Kids [ 4735 0 R 5236 0 R 5769 0 R 6268 0 R 6745 0 R 7260 0 R 7759 0 R 8225 0 R 8784 0 R 9332 0 R ] >>
endobj
-11660 0 obj
-<< /Length1 1804 /Length2 21821 /Length3 0 /Filter /FlateDecode /Length 22965 >>
-stream
-xڴct-mUlv۶ӱձm_]{>72{^w*2"%:!c[C=#7 "L
-CF&
-NFf_~)'O ٘Z?ߕc11ا,,m
-*RS|]ր%3] ,/`V[yå.WeHdS%W k"펲<LWnDP'iEʲl_p%[U6mAG|_Em;^7!݈:}3o|gg j<p{)swu}i䥘4VZ}~+fͽI޴<tS}83gr4@WMfDֹ&~pab.X'0HC
-'4д#Ԑ+{\0o\q&nup
-u@7/{T=}5dZ역cIWj<ڶkGOz0
-T2OwxwėZC9᭱f鶣y]wU!6jH,"7k+Ai逃in=%6R%AchBӈe։Ab&mP wiFѐʲ EwKy c3X+eȭ`~nHMp{V"HF@4haW KI@D8{CډW5 )%}%'B-1uFjZʤpvaSM=vlV\u*a:luaww^RZ-ᩑ^
-2#ki}ޝ>Gf}v`-hd){9Qt]f.R4~܊I_Ƒ#gۼ/|MJܺ#ѹiXXȠ ǒyH‘J F-b-^EySr{iv?ՔQ簋9G{[_רX ~;Dq#e
-nKy&?met|eZl*9%78e6lS:V⾝dnT+(zyfwdDˣHSCrYBSIPrAng/r+w1z~׎m©'vsn[ʢFo*얙u~tazi+U{S*"K#"_v:iu,ٱ
-1JbGpROh')~=J'S_0^m=asw_3D
-C!gkH$xVIYמѽF?N_$>a*qf?yFrLO&A|v8~s+{=:I T#?7 Q/m$m+]1hkeApp>$hL%)ee}/nt-_ JT4\o<–ŀTeC}o;svYX>
-E.bSW$9ӖCP6ܛJ,}sz3b&2܁+ tV
-]!h<A2O9y_)s\ {ɿYCC`԰'uT@1v`W(s(%7qۄwD#Lv®"hu2g0=`\~'}j4]YSUpTv%!Uz:#&! 31;:gܹ<Ϊ'W$ 䀚erթq˕t{6; Pp>O=_g\-(GQ\qjPa`P hEh!A
-bNhP%AX?LtK-1M dxT.8VX
-r=\tE;o7bIiþ y_
-> pODBq!ÍBxB76Wų?] ,Y\`'c(
-;ϟ#Rq/r u8ئ :
- z[ 8 SD5gFMɁq~rMUmUxv5ƖF&ąJmH
-~F&eB1sVKGS"G+v LwA=GGYIk@0 BWR'Dʺ*ߥA@
-yWnX'J K&K.jf l:9Ft%u"HP36T,0Qe̺p@eD]_y[{W=&Zc7ڻ<k-?8ljHAc
- * RՊb$9lO2Mr56RjZ+o6C < '9F|a=֤Mv>*Ë|bee1vM NӺǿ^_jZTΓԁD@F6; e4oG=tAk6$hQ&q{Z<)J0|dl|s5ld$Xmti넯s
-}f
-)'~vL{dr2(h!P_\ds;^CN8QTƴ)s+:YScf
-3=3XAf4|Žq!QrlPG
-ޏ aͿ>JpAftHI(Y 1Зtû^޺TV.y>p }85Q{ A'dqz&ˤ["1wfeh V57
-$S"q]Jwy̐I1Pd欞.W"9V*;l?;<n\.?5ۨy{KսʖPi7z>vMfIq cEeL8I5y4=Xr^y)Hȱ*Q4<dwYeV̥$dPpC))mS'o;`(d~{3d? UuD ®Zܽr{q0z/KȉCZP,OzzXI^Azq}h4
-9k91Y9m.v%na{`[jM q <f.8/"b
-)׺030FjKe ?G-y[؋Πdza*S&ju-C%WJ86Z2]^_kGv]#9ݩ3B @
-3.ɌnR(Kq20GsZS]hIR! x{ l_nދ=[ջEɓG=Tr+|="SMlJ̬uxbTzAQ_w \˛JxwZobPQE`cn~|L"XRXA0A` fp]J (J%׵u* Ʌ`
-QLN8UIwX/37͢>lm`8,M)̧$ەNTt͑4PyGO濘یuSXdNmPĿI|˙?TK;@@ mWfpRIcGw6UzJF!Twc!OxYu`+ XS81y*=`QtE7՗dMhP$8 G%+ QD:+dŇhJz%Մ 썦Hъ_gQT8of4,0or. e rԣ( p\ ~ heoWrȴ 'OL_YsQCiHO.),Nw8TC45<ڻn.d$)qTv#oـ(vO%|G^׊E›rH5S s<[w|0o CP >[fc5ыw 6:s<K1ɝDs͢^v-&E+&BTR[Au{<g$3(+9ૐTv $L9WQ!x3Lj}*D,;E*\Yq/0ݭY>zKC;((t=d{{ LY$/=$}Ke]tx,) :O
-wg#b,VbWikLPWGjtЁ7pr{2gRge'J[! l)VQV
-$~F̱kC7>Q5|vOHvb~YEF Zc[iF}}K_~]hS.2r_@w["v0ϋ &~ԩP-f
-va$X/bd)D}M?2=7Oȯ87m@5'72Q^9q؋Vs6d^+&@nW̔V \K)a~洛ULʪÎɁ `R@
-C8o/0tCT7XΑ:vRQ$ZW7 37!hhCy>KF[ˈW?鲰<[C(*sBih'3ޯ9R9Y7Hrɾ=} 80ڽo8t%6䇴C=NREjedEF<`JCo/J )1[c" ҋEAYl*m<bK%8cem>Ik\@pw獪JJw06әPU|_U+rIICȯ-|_~|({*_:ze0F o$*~
-)y榑yz9n~!֝AG& tږv[\;gI q!:`~.*Q .sOTh?{#-8YPQ
-ykeWqqj?ᆫYlSH}v/eߢ<4r۷;۽zc`%2S azf܍S/;;1WLb5 fT:MS$db,my-Q0OAhr3 R2ǣ<a9
-Β*'ՙ(|RN`Ov{^IE5/OE&i pФJbl>y)ޞ0E
-*a2s(M:F'=8=V=-@ i*|4[طeTIEJ| )E!lh?-n޳E9W]9$GfnḘrd&9GfhkRZ'@?A>t72q(L&ݕzO ̰ޣ qhޛUd='>҈^hFy=Q2֥)d0W|4Qa#' k"Z-Uw@05jqtzB@5(?IB#yd<V/ZQ2̽4j`TA^-Te5_Q7W|T q>d**Xg8D:JKe% _-CBZP> >?aT=! MÉm]0RkIc+Sa^35+ĤGo|P8l}毈^~s+=Ȳ*IuiN
-/ZUG%'șBU)JYsn㵑9'+&
-{V3uyl2Wu'P8uz .}2W;\eu}482'yz=G,yOQ#bk<ALJ'V^tXO4Gܨ~v sBk[R]e0SZZx,XtLa>׼cmWF<$eop_ ݗW.~KWu% e' m?F +x zjt]zTr>ukWɆD2uWHKv]Ç!3)<1U%A(x4
--WUB_QT]m,a7 WSӥ
-xj e~5C:]l&@b6U׼!iIxNKYUhΕΉjTCx9fmT JzcVJ,8xTU,p=@Qf,T&N H/DkjXs"V;U޳aC̓%^O,?^9-omkY0i2|o,<P$ݢMn6mfg"B|b+dPaÈ^<û(@ lB"AְPRiHc>
-ZC+%+0oYsCEEҗӢctOrg Nc&ܹowϟXpo(sq@3JBV|aV {1eBMEzP6<Yc݋t.o5DIvY&02
-pzc31-V1j(;\JlV#LY"!XKgE;HD|R^bǸnun#GoG`UX[Yh=zI}0(eO]e9+Fa-vdEqШ{ٿ5W8npvө=% 9KF(\^8UIq
- f.^΄Ew_3cӱ+?J57 LUSĊ%p\UfX89Fs:7 ~,W nw'tvEua.L3fGH)X !Ggc TzF:cei RHPrIY62˗M[uBrL"8MI H0uycNJQ ~/9#% tZuToumʈ'r%R\ c@ k5edB` c3o0U:$'EE yzbІ*Rw]=J*MzuOi+Yqt4"\
-)
-\R+^A-ε;2o
-Z2/wgйtAw M l=l][u݋;“ZUshĔjJISH{2js&8#G]̡k&;W+%j"Ouj1(4A1*
-:vѭ8ivm54I
-?WDY=$ZGсK /A'\Z
-'
-zcқּCPq-lXe$@{9N,dbc0M#¯E:<} RSljZhe$چZ?0b[B3U{lG 0g`qs/7oUC0dل7` q .dҬcU D<@. LyA 'PO*zI`=6 #Y$N+*anY&plc*}]WȞ]#")$D4 %8v\Gã?%y;oW
-)b ˗֯REF 6VT^OptLSQ0bnE3[[yeu%wsCJuyPBb#x<2BCH9^M雿VN8[aVQX!k.^[7І"+G\@xk/UEF?~I5B>NeBvYd1ƈdA1 HQE|K?>xWmGejr*Fm.%Gԩ2ɩE/]XDkb,h HZ볆atTb>ڞuW'b 0-i3ٔo߬rܗw5 4+0 Y\lp
- VlS5FfrTAWԽ|H Na!F(]A7L5$Pax'vB]a߇S3E>o^Ɂdչz Z6(g C^6^Ċ0AÜ%ա*`gߐic@ϔ*¯zJEdl{Q9~8b\Ej>f ۡMKXӧP?C@$U#2ܿ"V&Vg>8-pS9lN[?'Hyq^hfǧa"wE<%e+ឭϡvbM-EƸ {YHsSJf^ʩ ˡBa5 ҙ9]l-$k5k9F\to* .gÎ_Uj(
-5hɁVE 䭫FDFO4iՓs%cCNbw|+A@5F+]ZIiy˥Z^ga`QJڙgme4^yhIs^t
-
-
-"X yhK:+Q"97P 6G#p
-}DŽGp%j&od
-mw`" 7i45ipsGo]eQ"\JȬ~צ\.7nZ]fTϿ2& ڼj"E.Pe
-Ŕ`&@\ 8%U[ΨM_"l)9?Xֶ׿9r9
-{XQIvƢ‚:D,X2VJ ǂ=>0,cjƀ " 8<hBGLNg! Z}z/t
-[,eL'&jS袜qvKgӤK r'8 !AALgQY
->S/bo r %$/5[m'Ao-z'NqA[aȨ!7+
-32 ȵYSh@B}W 69AX~Ƨ%:|CsȄkw)0sJfY X b&?)w$p t&ey]PQ E[Ƌ{CI3$@:i[uE6DvL={$9%C^ fHMTTl{(hAnӺx:*oꕧ^9͘׶ Z6)x;aYBR֍uHe;pJ73ԫ\7|wzW%Ny,0E|–6.[z& Epo!,|_,5
-$];g3Ay 8Oc
-?x> _w} ,[㍋WukFf|ZʗX>\JI&p["v=WՀfXÞ4-']O-Q6)\T4貝m+zHDX1m)p_N\9m->wB442 Ȗ~yG_$ op,юi{W\9#<wQdά'#Kk\`+JM9ӳѡ#\PhɬH,톋CjH@B AYdĥ}N`Wk(SJH}㢒V<ېC=."N~UB?"%G.&چsjO@o LM! A,Ze*T'̞$kD32BVe˩٩hbm4S_#&"z"ʃux%'뗵RX{uMgjrcCi"n-.PYNʔoi3|:?ӥ֡G< NfHQ[#hÕ1V T Vt;msp Ч/CjdͤqϿ?SsͧATR-24nr;
-- .pxҏ _HzR;`mFAV։N?RG[*B/lϩՊ8f5h <_?rx 2Izn瓂gt
-
-&et- 4d[n.iC@e]ܓe,9[H yļM ✳wP~MAe!)Y,,M$jg >.^v"r#,s: Xg0
-;n?N] t+WFyꀓ'%PnC>]ցH<M@C D.nr6߲;A$RtPנl ΰ"l9:mYZ; 3(1O 86΂y,6 WTx2WxR`J
-S<|
-OfMقْnȸ:/\@ێؕO 绦
-?FkIͥ=S,r4Wm2`5q$FSԡ!?dB>X풪qv؇i
-krЪDȢtpScW;
-gs*=-QeyK#y6 pnѕm$ KE9U "UdER]_kC\,ەKn>U _f_-4gA+:<ۢnIݨP?\x4E#a _ݿ8ew"(x%sSw`\oaQ 8Nlc}!DI }&QRnjM3>776q~T˧T_41{roS{M{68J/)!* 'eh%1'DGr5STQsxWPx{y)I/Y,B#jw݉
-EIݒ `!:E@ie"OL
-G> -ZG#T,293cp׿| Q1̕eF9<_?駘؁RU7Z]C Tv#U-NaFSۀ#>vBQ~SV5QPM
-eU
-pyh~>E\7r/Vx\=>ZBŋ߱{1-h }zXL0F`j'=B`t 4R=9in(%5ˎ<SɮR^ԅ,,6t*s^Lc3$({
-r$`4TV+;_q/MAFGہė`WRޢ IGɶA5q$, zV<'Q'6UQ&tf=C-rq_Sa7E=r9|WxF9wIܶhhJ;̝UHaH@dg|3P.NDhzcsK3
-endstream
+11607 0 obj
+<< /Type /Pages /Parent 11608 0 R /Count 28 /Kids [ 9836 0 R 10417 0 R 11063 0 R ] >>
endobj
-11659 0 obj
-<< /Type /FontDescriptor /FontName /JTSGNV+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 683 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 18 /XHeight 430 /CharSet( /T /a /c /d /e /f /g /h /k /o /p /t) /FontFile 11660 0 R >>
+11608 0 obj
+<< /Type /Pages /Count 228 /Kids [ 11605 0 R 11606 0 R 11607 0 R ] >>
endobj
-11662 0 obj
-<< /Length1 1790 /Length2 21416 /Length3 0 /Filter /FlateDecode /Length 22479 >>
-stream
-xڴzeT\˺m ;ww ܡ=ww];<==RӚ5zMNL/dlkqgf`)Zm8@V@
-t
-FNLLp
-llٱaprsO>!QY
-)˟*$f8АXNj$M\/VVG'ߦH<u%rGILh4[A5 ]nɯH:;Om&5:z,2zDu-ҵp
-m oi#&+L3k5* eӅ~Pg9q]3V֨s}( 5q Ww)1I#4" ÅUD3p&{(FtqrK ph>0VBe@#V}*3NVbS:S7P.ke^"WiDޖg
-ڮfQ2A h̙iƯ~ZJK%EԿ͏TDWa !}Y/i1*B"["]w E/Z,[>NjhG^!{Z޹G/ 1i##歚be%ݺaAXGX~f-(/j4^|o^@tpz#eX.jg*gr &1#^k>vlyT~
-<`Hc'&y2:(]|4{-/MkN
-@,X2n5M̲N 0ͦ5Ƭ9}as}nR|z$%~~^w|>*(Oz3 4P=Q1ob.dĘi/CBjR)i.5b &GlwYaܚEO
-_GI71~WL{J$t>653R_I}dzY=ND@~ϊEVdtSW$eݽ
-m2_[hS5K3O=j]~ih@-XS؎/]߻hC;~EfO<(L?/٩i٫kCP
-!>"|k6MJ)+DZr\J^%pPTe37JeGu;6;N.0q^}AZ>ڂ^{5Q6NUNE
-Ջ`f=cBL?ܱ36c/cJ )FXOc
-KJ!$6+ ^}ِum2(Ws2!CьFdnh+[j]tA߯MELZObG$fP ExDgqSaTgi
-dWjh'ӡ9QѝӇ:}lЉϝ$7tD!1{,;,U$K9_OM 8R"T#+O0_ṯ.?V]pj1hs3{"'Ey .gW ZzXP׹H1I+Z-T/ԔF zU v58}$_(<zviĄaarڜ֯3[Fvѿ2|;>XBb:']$ QlUz1#aM5{
-JY|F-Mڿf\.5 W׵ ckQ֕k`#Nh1S)"{~v[0o<,p2չ앧~%} rnRC',YkGR%Fl=X=/ThvwJTlIq>DOeU˹< EjU ۨ梖4Y;W*Ȑe6,+/˻;&Tarp"]mc37&zI|az6!83,:fJ+7% #3e,*owdctt_ s ~+awY H89C-g拘_:i^$x#虭nQ
-@ƈjUh!Lwz FYuL|&Fb ϐc_^zf)js#(VUc#yFJ^ZI l}]' iIJꋶ\6!)p[ꄠKC4GZaU:^HI$g]zQژ#r *FW>LpIy(qqz:.n#/|B$wz;-z:z^"TG)fic5B? ۯ8Zm$3T*^
-il3e`I_R׵0oJ5"-86b;L)Rp=;ڳ~/~=,HZ" ՜;"R4I.7!a9CS..*wo1 9@@K.Cݫ-N<`^r'j싀 ^ L[454f-XRs?6y2Z@qmqMN>cr\1ʜv[\[ܩ\8\?{8^?㮘#}6d:+DXYɞ6 [\OcXpCD8"|0g#GV>дc:Ce. |A-X(lɮDQ nVo~m +)Y HFh|UrXN*:|U4,/7@ekxT,_ܓ%}E*4<x%IN1v/ȋ0iMf$⤾&pupo == >rp&E,CɞZh",w+uǮ/~:W؜!^,.rʄ:KӞ-y%ԟHsbf5貪&ZfA؊<Y7}NKȋ{k #zN^V(B5tϱ?B5B $S'1d38wgzȇ\gtw9§}=r.im^_0@5J!ъ&&!fL+U\2bvA#@G!s!~lΒE0-[pw-P# I^h.y3oe/fQ져fJ˯OMzK75_}r*G@Jh:UG}~.&.2ilwSRo|<ca]&a%HvO6َx:uk(@׋+-.A[MW,)m|݉o>P>r I~r8y55vP#u.+LF(#LփGCdh_7Έ]
-GYBTh~H/"wcܧ+M_xH_aSas|Vtw|{}.]/am*}h'ѕRm@չLS Q/Gz6|'Cy1
-
-3mSznᦚH^?_GWQq9YSejN&TхZͷmuwi942ʶmdG,9cB)iM)(:zo y"q}gH#6_silnS*2S-v L8aą([{%OT1E<}v#g>*'.4
-xuʊJb[mrsz"},HNTꘘ-_'O9Ҹp
-i# +866Ű )co|AMeb|IkJ|>ՒA*i*BGkӉ:5h@g828_
-Ea@Й[.x^k55`?7o
-H6覓 f@]IRiqkf13a'[$\'3B"*S昲1+4c@Z4)dn$NٕDk] TȌ JF=VPvx`1MؾmT*;4N2 aс
-%YPc8NåȞIw+4ܘTQC
-h;\FfV5O|cTXsKuGq.^8o*b*Ὠo~ζ,|ے7XmInA+ۯPn
-"PG:Љ f]d7.,`KUYK"Iukz=Q`˵43-E`!Z۱kcǒ߿z[$~su3̒Һ(>ڃzGZ{Oި/&'(j[$uǟۤD>KE)}J 8BÏxXlODgEEß~{9N&l킠4)){4qQ(|QoH||G6JP$AO_;阕8$me>wu)3mF̶[~2萟0rQ!o׳*ԥjnAyRAws cp=YFX0#+ZG&
-l ,9fI<ۅH5Û+9ϙv8% >tIK`~1mNپy@l;"p>7Q6yҖ>hu"}Q73|!\N0 O+c=kiiEΑ]e M  u4#ܦ_7吁 YWh
-Aj{N~0~=:+D6f].}y0ܥ OTE,Ꮚ2g\x
-VqcK~Bjs;z' 6HE
-4r
-o*ZDo~[Cf%S@2n=`KR,Upy ^e+UОfI"{}yoXG&=2"&h
-j?;9_
-t%Q&7=<kq CM"{ܠ!Q]2("V}|Pf
- [ *eߧsu`U, O%E2 g)PHݗYK^ $o_CD|͜)D뤻INvO߸T>r})>%u[\1︈DWpIN0[{/~zJ וV!ɡeW.{%G__Ъ^W^!J.
-g[
-ZCyG1n>CPe򒒽@$[㯑9`B9uHiozE$9CO/JPch$8EA4ȓmchTDH^gMe·}҃PBx 6߿ݺY/p)0t˻4TtOfK<[Ihsh+k6j\(*>BfP๪,ZhF1~1lQ/%";Z5M7XIe:j K>Kt'+
-JZ4a\?/j 1-3selWm'FڒC)R"+kY Ek\ڱg>y6Oă;F00Z5٦IXX#{_?
-^ÐW}gAj 8BBb Dz6 khSTٜ]Eyv kTLW9_TS-5FH[?XClH:BOlg!O<ZfΚ hi :pRy(܂6W(&\?߂2Žfy:?vғO ^<TnhvIә}lz?֤% qLCcAoBX{X`=\ 'Lo> ɁgnwtفY b Dc`혅5G~3g'`)ۃkeE)h~2
-J鮥L5YHްܮY$
-%'{MoOnZ;NNE wO[6|۔Oya%8Qp.*X_+_4<[ܫI;T޼ϐ|Z݂cLyu—jT7(6WdjNQQ;6"q5N< Fx$vЛs
-;0,;nid~"W7:0
-ft|=uBFPCLVсiߖMÄrGĵsSHtNЧ GF\6&0y:'0Cz>37ԋ`x>}b" R=|=5d&nBL]dwP6-HO`"<cs.m1*t\^$1F'x 5kUu$0GK[JaQ~ТB.ɴua3DpY*eB_|M%?)%av4ՌjIv&# D-U?,P,k/‡8u"{y1Cd93AcN|wgX[:M3 q&t @8ִv;hk2jI,:DIrEs =
-DzS$:/FB@f+9YN%$3X{7ϼ"XlQv ~r ևR~=pȮp4j %Wh 3 aw_ǶoY|ӡ`GDZo6 wq WL:#;&[7Z,Qr؛UB%"&GU8l}UVߦcAim"U_9_&$=! GzpRyD1|r1j~JOJ:/'mZ۪|<5V5`s9fsziZejQW agbgK8;JE?Sr`bS?hB;
-\eGe!cb=rzC7M.ʙlQDdOUgN<#u @c1u"b"QZq@g8|BWs q@3bah
-d}a ۚWFYޕ73طڑB)pͥ؍F1
-֛Gا%EHpPbzU8)0Xd 9tKl' [?V+ (=/< juY
-@Qbqt3x/^{u,Ivs%nV9?su'E׀N.y.-`AyDQL$p(t,X_E]w%,^J)Ig.Z%~ٷk}7Np gձ{< m5u
-ZT#KCm<gȎfV9VBv =XxKQ
-m1$Ǭ+a) {I wÖK}xоo-7vM-T=]KC'"XL9$)n>`> q+_6ZaGjЪ)q&W}{ Nohm47S1B(=|-RI2WV54A ǓEg1[UV,YfD|,0̏;%dWrsҫ%w ސeɊ7’Yu[?~#J4K+v6OQΪ q*5"AMuQ8z*\ urI ;5K!&65J:I٘}fN mE# _^QwAi>^ p
-fWmcVie~8FrݱXzD▧>mQ(<z}N/VrLDjvN*d|n~93/苙*>n9X{ƌ T4^^1kvv
-׃յvwf=Va1PawLn쮖FP
-UqO}RY͖A}v9E7oűǒ(Č쒩^haǬXiyK@rlJ>h@d}N%DvzՍ,@sRvvy TDI=(ЮA&3mֹ:bx 0c,,~ eL1A֬'ljQZ8/}' i%d_&x_86]n>QlIx gSΡ @<7lC4C<$\;F r"ħ&
-NX[#FQhV9?a\# mL%-)&`
-mQ+s0cg o#:|I<ř؝j5d})h[.?hX3^(˪Sչ8nv |.j57F)0LfsA -
-p)J3z'&X%bȢaQ/V..ۧ*Q=>l"א+uƊo}P );C-l !A.ovoSVA5ty_9!tdS{馟
-xnJ!VAçUu?!^uzHC@z7mdRɑR18p}a`% `S#Gm_[(6/;IoH񧑻*kOt'14m8}X2~;}v7|u"o ~%3WH;"AC%i]y; $ZO!x1@rڈk D
-c:!n(@?Ե`.ԗG^yҋ~2%\zʕ)HV{1ZUu2s5ޘ;Mzi_-ڕ44Q- މo,;J ?zLá)7YʍqpFa[S/;{fNOoM,%%&Fm%v*Q
-CRMDy{$‘I%*HۿeOXp(' F}wA@a|JcO)ȕ?XXK+JfgFY'W.OKafTrzI]]Қ5 %0Vø62йU'iƅŏJr5I
-M[:O4x-m%Jfn |QB aГl.Z|ǐ Ut>)enc}Y:{+1[LMw+cеЦyRf[|JXt@ED3,̨ kfh;>ԳI_LЈ >}Q%ا*4=n5>sӎQS+&hs<ʝG)_f'~(X7e/@$Q{~K"誀ONK|1^ xfŊ-{ٟ# Ϙ- 2aIHK17s!'*;A `Z7A!5.:roR)OǕ導Kĸn;{3pWR: R_gC]mtpaTwCqhIjfWtU!ˋfeau&$'OXJk5JMHOt_L <^8
-(NՂsO@"A}\3T,o lZ{|'[q7lS\I='cX`@4?^2~M"MJ߶ý#
-4{M2>%ĥ5`Y yCa$׶ 5ݝҼ]UR|q}5"%0<Kz%[Y~\= OT4)y\Ť_"0$`Ct5_ {G&䂈LnQ#Q4:: ezN^1>E4h
-'frlEAj}~{d
-*c9 jjZe`D*p4zH$sZ^ 'CV˄(qI;Dp܌_h}Ќ#_ArhO#񯟈R jn ehRdh(s6WEez~1س% C.f!@*$/ "N,'?t@َ[A}sbq(RUhpXOJî.g^1+P0/=~0HG&g^N2%i@Ή(Q3nP^ߑ{g.guo)śe)<r6īK}hCy;=jkINo<'=AvfW>t>C2"3՛a4 ok0uLMH']4y<j<5r YWĩ,T=y%ƽ| WC,R߽n
-,O8 I8.mBicxejܾvoi
-E-^hڲm*p
-diه06f3tH/Tv^ O~1jI`ӗ8Լ%Z۩5)K
-JǏuvk#K$.q(L_AZ0ȵJgY!ȣh$*s_+nb^O1γ_
-l&ypEcyoj_?tx;ҷs|Kt.HU"amZSd||O
-94m_Go]0
-Oqvd?uMit78zVkvʛ! 5tFϱ3+kfE-g
-8sLnd14cՊ Zf `Ӷ_EK^!GHP>U@;u
-N`Sg=a42x0G
-E)5}M` "0~$}B(
-?>>#J8EAC@Kyd OdР@{f1(iy~T>jM-aM64i~WrLT ](j'?-LCn1 A/ zԪ,G?x?n2σBC\*12f$F GpT\RvZ;hւ|c=DKJ,|+IptBgHj=..P> m[WyR R<Wst_Jƹꬋgs]J a6zsGO߾-3JӅ"4AfSc4m{fgܮb}#񊎢ZF<Hq>ԤzG4{>ݿz"bW&Nu9TX& xuv7t\cZl6YU)KNP`)p2N(|w .nu-l,o6LBSH{tvLE@݇ .M+Hm+=~pb%7SU: Fe k,km+Ԕ Vo_5%{q\cҾSuP4Zb$3.>[
-`
-6-6ˀ)
-T{ `xWu=@x67sAt Lf%qP{*Lc1d96\tНwB:TnK<0fxodH M#F+yɢ춫u}
-}t;K\^JnA.G͢q])T=zR>2le"_v3aĩ1*^`OPFl27'歀Ķ
-D`sw>~%Vdm}W[w\R@v&w0!|H\ń_Q3;Yp4{z}bC]VH%$4R첅͝i. E E6Riug >3T Y?fh)LA$s%H *&襞[3iE8{[^jw^o!y2/J
-)r#BԇGX`16xFkA pupo#ɫd9;#/DNP.ߗ _64_q1o9N]vڰk*Qi\W4pH}KSvvZIO AU"ݸ_{֭5AϺzD6o#W(+tnU}Ǵp4\F
-Hp{${9XGm犨L rEU%-DvnWP
-HrFWjXr
-endstream
+11609 0 obj
+<< /Type /Outlines /First 6 0 R /Last 162 0 R /Count 40 >>
endobj
-11661 0 obj
-<< /Type /FontDescriptor /FontName /HUFBEO+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11662 0 R >>
+162 0 obj
+<< /Title 163 0 R /A 160 0 R /Parent 11609 0 R /Prev 158 0 R >>
endobj
-11664 0 obj
-<< /Length1 1791 /Length2 20995 /Length3 0 /Filter /FlateDecode /Length 22169 >>
-stream
-xڴeX\ͺ-{pݝ
-`aEHF3'@2Vth(9M]>@{ +{ G%ovFƿF0dMm]l
-ju>ˋ i+2tv[?z >B͝)
-dj/bK?/loa X Cgߣ I]\
-ptG? a0[}
-z$ocs-Z;-\[i}
-?HrJjөN=m_ן
-> *jkA81r?%o]
-1Q1T061E!hrRЌQ]j5劁`AxPjλNMTQFp @>4uѓSǪQ_Q|AE\1MWrWs/Rr {[=w 7k϶M6\֨_"㛖a0J*6dDein+jȏ `IH}.s?VOj]x٫QH؂Kj+ɡɝlKelYew i=^UX"'qc{<e4Ioa]X硬0&{},X<j) o=%<Nx[Ě+Ūf> ްQyK#HAXB$s%!DxoTϾKŝUh}l=mb)aYXkיa ZE0)<5MttI]\BryF«2Pw
-q9ڨ2ӞBzH\s(|*Ƽf`vƿ~OȰxnECvt,f7tx~8Q6epѣ)偩^{|)<s.g`_Lnd pBʜn9&ǒ̉R $,9P'sM(ci/!v`n1ވuYkO
-e)¯%\eQ_:4 Y-Mn#`j =Պ;6PY-]KJ0Y;jr3owJӲd sQ`#Mns=.%?[D6(Ꝍ3\ܷۢ5A`a[؟|A
-!"& 敃y%1گ^/[e%zDJ7M&?T ҇9̹4-70QU=>,ռ#.xG
-ۊΝ1 ˛%pcD+jF&4>FSTsXSH6n(U,Gt6BMӏ!4='uYrGzT@-4k'&r]xԣ" ܎ qEkӅGH;HHo^w<tp%N
-Ha >u 4)ǫ$%L%C9G^y+MJ%/r`OLLC+A`dM^\[<9BxvW;dwAov?aY!>ySeKvEg7 kq<Q[Y3lt'u*/KqhVj+FDF{ׯJIЈ׭ T:Cl={Ex}.7ޮZJ*Y96#}|xRsnh2 9WQ|#p{[sͼۨbl
-Ӎ&pFpHVf2kSX4h#=t4X :gg[s+٘ٯ$^֖
-Ͽ"@1DS~M/l2TX+|ܬ,>2G(А:2Mc{VlےEĨy
- x /W?J.3YNpYl]{$A-ꁦ(Tq/zP[ :DznřE`,|YQŐW*b$bRQY)n 2%ku<#Cӂ\ng O[JWnE6,&ׄƙO42ߥ]QE3 3zhnp~a{螼hA&GxCڀq;02277"xiE!{mXOr`QM׸i xoSE ]>_$ƹf98AW7ӝ>,P=7^GsòD3[
-pm֜`6shqIaBRi4\z|BsSZ'b ]j`9"-rUcsሦ/<pr_ Ѥ<]4:tzܸ3^tP}9\ W 6wԠY\E^W'fr3\zx5PˋoJV
- H"+ o=hkw| \n60]0|D2ii-Ҍ Y{r,&9c%Ƥ pO FOuCv Od1 #ѵ@mə$XyA n!gѪր!~i'Rd]JJ_i?]$^A^WH|ߏ% 2.Ed^`xFwTAeuUg+V$ydZajj_z\{A*ˤRcx C'ӘI'
-ӛ35L(o6k_U~f@|矂aUۂ9^ƙ(2UotUޡo֨UM`: LC]@ph[\sevjk`v'b9װF3$"?^R|4qc㹒!ŰV8azek^0v ci
-/gTVd*mD,{[
-*kGq[8zgV7<pP8 ˊf!y)ƈ&oIԅZޒls@ȁ-u>xcՃx9,GUIπߩϏ.2Z4H|e4σdZw]tş/=#}ru>SuC]2AdcYz 5'KXس-E$E3Shҙdv^.GZ4!oC&Bڏt}g!ld򴿊ڂǭan#55g% Fq~S mOP[ /!ήm-mWfgm[2z9Ѫp&{M?wk5*`5j\/JwѝFY?_CjTeSCBlI7~29FAÆ U
-+b3h fdi,7Mn%
-mXs@Q!Nz\ѩ_?8OŚDM0 Hl|Jb1sWnWȴ*" :)[mxɎ:8dafWm+&rݣ C<Mz
-C&v " j|fҼyOm7Dlӭ~zRJe
-\-]l|G?|L%R{TZS"ukwUj!ù%i(bAAƲsLCUCCOA>r hCej>`{VT&(61Vͻ)Ty~=#rmʉPtYzgHvW<vľ4BrvV` Ky34hNB >ԯB#z:O$]韊~贵eX֌a^+Fwf[6Qxk*/TEtpe`SFzJ>Icwp2pf OB|TMKSw^wj/]̌5Yf>b􅺔
-GLtd<\F =A([}heit[ᤊ*'7) nI"4R31Uܚ y܈!4n {w_za#+XYxOf,gY!IWlo4Bg!vp._
-YԳ=#Y5u,63| 7cnhr6uXF^ocMAhjk@}=)^*?W_3|QsUng}gKS>tT}u~>mz&ҥri"\b,fhȕ2Tf[Ëwcf% EX^z.(h?B)[bp?"W[g`޳=ヶK !Dvb%&)4}qLyȜ/|َW Nxs$n}hWU|b tY}_bJ_;jv6+y}[jgo.FQE !n G#0'Ļ%Qx~^FB(M<ąA㉄
-b&}1OK+x;"]_uY[2ſ-I2}T(?7~VKe1*6[~뺺̙ͩmCvc4b9N~^{=f<qBޖ=\qqDEM= $x@brҐ"wR~Xzon[6$Jh*,UgEegg/2 8xtKY%Yq=Qoӂ  FN ,n TM䒞0SwJ[R=v2'0yŽ,XXU-_[)"ç1ܪ#/dް[(EaxK
-Utl-7%CQVFaM(~\S)`Rzj5+ǵ\"
-'&Gvi1A>[,+r!ۑU4ZؿȢ+mWTimZ+Y№-a_6Eu4 !(6<pgR&Ns#<ly,elzr;ܥ]g7I-3QgDp*
-4 7{I;*P',,b5[t[# nGƧeZ^ m~B[K;r.4p0U@'bW3NXYC̄,a*bzOrdCQhP-i)\jwYM4Qr[_(I6*--RAҋ^JُBv+F' &a]49ġhy nϦ
-w^d.vI 'ӄN,&!]ȗ֣uK q#5
-ۦo){NH?bpmi
-%HXdI:E#|*]ЩUGțAzǰUuVp,p#A݌h<ēL DA^2$Q1Z PZj ~7NŊ3ē`} $pd#^c 6x"UOm> |Qh
-刲&bAޒ3}_e@g`9ˇ!3_)Z; 4T\v잀#\x$4s/'eQ!v
-#9n_{;Q
-1hř|{?CsIRlWtn}q4\'zR
-|90>d;YD` I9 B:tVE չ7$˳-T\\DZ}-ɦ3I`0M^֑|Hw\{G.v?),vɽ35ɋJ~WW#G!E
-KǎD]Ne˺^_la49uzxeד1pjø, jbwʞb/$9T :/ P E}~RM'vH%t@ߏw )B}-Md@XڑDé;|vK+Cu~VËEum#:`XigǮJ-WD0c; Z:ȗ =TE'SEYv|tD~11}z)=DaC"=Bc ;~o4"-09m^ѻ;o@_@daߤy`4ax{zͭsq]B%_!1R=CO!]R0M|)X)^#m{[}Ñ")pvshƨ$
-I;FV2
-w6A9
-8x=Vݛ1@}DNcY#|\Xo}>@ ~t*ҩI~\ؾOYx^k͓(\5rpɗwy Hjl_5*%*H+
-DceAK3(9A[U#,ࣝ%㦶:LgTv
-TQ_
-: MsY왘,)ע#5e1$EǤ"huBdZWXsAYqy$yXI9h~S"c-e<+6!0J[|;
-Hk7*C"f]u3s~#Z
-rHl?LjdAp$5J)^g{Yj6GT7n!\-[ Vh'l`eRxIs&wU9
-Q !z:l0NX#ʨc%m:</ ZLTΊق0-IfM>PEL\#2$*sD^ti`jZF6:"ӭ&M%$[`FJ S+ݴf]@*fϴQpy'#w=L `Ҡ ,b鱶=b'*RB_Ӣ#+:!5bчՋ뢜()߰=lńW+0|wqEr%bq>6(@EeD>dَ [{N2ҳdigZ^͌%o 2&Y{Ws 2Fn_/ IV*RI;I9PA
-x6@V|T$<rEQ!kJDg (qd>Iu 뾝#̲EuLf/BG:k-ABQc>_?\'aI-G+ihSg`4&)l͗dqphY²B`.T>@6>0Q'SCm&Uݘb}bδhN޳!D`VOVzgG`6@tuQfI', A0*Z ڡi;J{q`2I&9b4IybfM ƈmHR  s/1W%ה
-\rȥPbIL&o,,D*%^eҕIմ5 ˽_gܱº-wnFE#0EtO8GXA2|N~'k,k8?v ]p]`YOit.Ge(;>`<9c<[%V0 Uð bB&U3
->7g8ך53uǃQ\y u&U I H}0穩ruR ^4n?fA2Nr G ~kWT{]aR$ ػ/.!8zLEfΡODDjᵃ1!Mۧ1qu HoҀHwLzTRFr*::2U6[Qt %3rM5Ұi`Otr%@򻗗I2}(UKc}P3ޛ#Pk.@o)
-G2lXCoft*G:s/1a!a͉9t '3y\ C^eKFad<EIjMe>\Y64B }״eʟ$j0jq$p9;"a^kN(l6aBv0+1#X[%<~.WNB`J0?t
-_|Uk7\m;:d)P)`(V\OL%+lec8GpC+)u}ym~{("AMǿVtMdئɅ̚V@<34{ (.'2Чѡi[[CF"׼1wI'?)@Z&ߊ,ę- ^q,9= vs\߹˗8[=Rũ<\:8{
-uyu nU2=!"2FƊ#R:)6p݋-j
-:^:3 s/t-NeaScd(R)E#P(O ]BGp{gk<6|) }~0Gh^VlDx\TóDbgr҃7ZqPߐu}ќhT4b8zfhe!5H7I/"/ê HMf0uP_a F1r\ jn9-?jsBecrDJn3)hzͺEWw80h#3rX BH|xB.6~rrثwԪ^+仇TgFi +uw6"tAWd68r*(}] ا]Մ]a
-E]Yc"H%??fn TZc_w
-^T4{/9̚K Ddi/+hpfѥ-UmpZM)dr徰U)5h\UhX>HK@^Tԥ}+F݈Z!_`lW
-o&&Ј`d>i}'OA}Wt߳5 zLn( ! > 6dUAOOʦ-op# <Dal)oyN*|ԧWm±|uK Q\~sE,ks}CrB(ٗHxj9<s@DU0Etkc6Y/vCef"XۋɧT)nŒ7Q7T4=<~K,
-mvh|s?KͤÔuG$fij+({ 6N)C/*
-ICsL2,TᤘӤqwy];ls 痮|-&yYð݊QtƃӇMBt du{ .(UlޫBI(k3Ԫ2Hl[)k{
-Fv_*䆌Ї%+#1f;JK"6 VNw_Ȗbl{vJOtIl. ;7"7{ғ2oX,F3uCz%%&r=SmeN|+BE (F<m<F
-ٴ*yR*)! sl'YNTdny Rq35^o%k/|.4 722PA[]oP2 Һ-Q힬p.Z%y>-b(&WDtBr`{\;B)*tBK5ߥxk‰K^AmAmk25nȄq ՗䜷<Nul."[D{`
-}ΟWr3qYЎ˞"v=fbkV(vTeT Pf Lꚬ'AO&GJfiBS̆60y/!&#\8WՏYU
-Շʚuu(fр*ucY";Pd'z#9sWgEB0#-suQO%%r
-`b$(\{c$ZiɌӱn<+yG:aLSh $C~'&,J=ȃwPŮNߥGt?zhn]U@0c
-qkϾHs'aVE $Ѧ-6+5f=Dt!O5_B"vebyrW yKtR޳ ŌD6vA@WqO
-´O9Ō5^¨C}*i6C7zlI-kF+ǾnГȴR O)>4$’L!I8p$EEm{<燑
-$/&eG`\xbuDHE7jq:߾z#
->]޿C6=~)ĖSx4Z縤FwHǵ *R
-QwMwxw"ç̻nP,6]BFun'烥SYkꋧDЬ9D^:rGd*_P4u1 ]X %>ǔa6q:=\J2ҏLgMn
-K~^glKCխ^^33mR"S+\U%Pcq[ܮEM*\"29-1zszxa$[yƣu<|ngSt>-&
-Ҏv*""uE&]m־^3ϽRuHl/F(lmSFߒ&x,Y*8: (6cKIwP6;&% GkQsb<p懝Z2[]Q(==2*gdR2
-yogxbƸa dK0߳X쒲zdˑ'q"-1HK\1uT>JKv(YfɟWZM+g.q}3_*Hӝ3烆pI7z` De
-VkI:j$/l֧GyǴ} ͇T?]IЧD7hSl䇱]gC<Rc 祖PW2wnX?i yXc\xfP7py=[œo9NkᏙ0HY Yvq jk5 _(CӽT%mK܄!{6X;AP"(g5^JnƠ5@Yj6yx"9*c[]vK q[)]VԻB?!fՓ&Saڻ8D%gR3TƏ8H[9w]уon1ŗd ozT! f}cL*5i&=9mS}+_ԔtَvU)~=/D(HHGfF0J\=oFu_Ճ~8%}2
-rph)e 3qy]ǦvoewN֌'݁ B0b0`Lfl A8Po$ݏUqVRxrm|F,PL*n^ HC2p=ѿ޼á!̒ ``c.8F,'>@.YȚv qTJ^mrj7Pst_bq\T";ljُ;<8D2cd
-< pHԘ'S^lo 1=W[i߀D)=96]-y/|yʫQMfƖm?Ĥ\P޻װη1ij"C j#< + b5/eqjĜ'N)}L[=W73=eqӴe-)8\zOG-*X>"kpė Av^FzY5ՇLITiyw g18`ۘ8 ]4ۚ8*Z"+h7]IN]x57ҵ|:V]s4^}H|͂Q$T"?Q,b#M4Ũ[ࢉ吃G plz A|>@;ַ8R_r,[SZ冼q["ZA_j@=}-.؋Xp7wB7U@͠PZjfL?VI4gI:Zijg/=+[(}DY(N Q B"8D}7^8u^MLnrȒR֣JW9~Ժ&⸖ ޿=%EmnLl@s1YLwLɒC7j(A\/XLE<nZMoP*TW(|0:
-O1PZӌ$| 5AOdK'g2~xAfm|WZӸK1W5Ш͞ ;e9$އ<ѸDg2'AyAi_`t49%B3Uexv̙#J3>G:yqqbEk#+tP&ql%wN:秤wpND-.H|%Ş }*fUUD+z<ʄ/]:_ޣϞu6*rI1#![[5<8l!9ɳ,rOB ț!:][wK
-S
-8yVyƳԥGwt0D
-pv-bDCÉ ,1e&VL~?Nu9B
-}\}=̲)Fz!8_&{#]a|4!eA-Ҵmӽqq[d4p,B}U[ 6 Oƣ<6 IU6‘ziz3Ch<=K} ˠIN["7>|e◰ۛ e3wH(=xpSɜԤoM@#}^Պ11;tk' Ҋ=.hwnkG=lܜŋ% /<hy~*kCHfx1j &Wmc%^#!.1/THBWGKt!
-jf,ڳ6dɏQv2"GHع,]D߲_oFi/1/z><n AT#-"lcppk`Rea3 U+#g{@?N-\U\ͣtOu6!c *>zG+ Rvw;yݜp*Xf76IlvyP1oL)8\fIUb"h"ՙ;0+jZI݋*b:CdD!+;/@"'OWڂ[#[d:"xf5-MUG"[ݸzK&I'cx88uQs@W:lD-8SL>~\)fv /,q@W vQ_Yq1ʕ깥?(!&x *c8vf\C 3UE2٥*8XI̹+܈PW\FXb"̻<>7v%36uIDn~,ٌ ԨŋE +u+oSlUIMB2/\<T8bi)=t\mqUş$kaC`_م LV*K'@Vj½uuY|Dʡ3<ĆXˁ6G6&r#풚!\4d$^TGakis8&]BM7 lR-c-)
-R{
-3{h"#9:{iʈqOםurg7Ed۽߶.{ô)WLh`fW&XMW=mf~直|4;dW
-1 HΫ8yQ+z-V&9^<.vٛuaa]PX
-endstream
+158 0 obj
+<< /Title 159 0 R /A 156 0 R /Parent 11609 0 R /Prev 154 0 R /Next 162 0 R >>
endobj
-11663 0 obj
-<< /Type /FontDescriptor /FontName /SXHXQW+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11664 0 R >>
+154 0 obj
+<< /Title 155 0 R /A 152 0 R /Parent 11609 0 R /Prev 150 0 R /Next 158 0 R >>
endobj
-11666 0 obj
-<< /Length1 2449 /Length2 28789 /Length3 0 /Filter /FlateDecode /Length 30195 >>
-stream
-xڴzeT˶-nin qw @pw .-x瞓Ͻ`@3Κ>"WRe37Jۃ\ؘY
-*v ^&J hbe4vx\,L]VV>$*; vL<
-@c5O /ddb vAV 8Ew &ߕ~g3dMmݝm
-v9ͿۃWgk;f ru6\=_
-MALQFZJUI<x &{: fr8!IفY;#O
-'k;ͭ@f濕7su`QY9e$'lBc
-djof
-ppr
-sI7sEta;PujP)/t3>j@RUj`׊p&-õA 9
-77΋l32's[QmŽV~a!
- ur%ZX#QAi5mZ\2%rmٹ M*V:9`?w ݐOQnm8ŹxKfo\ݗ]-c"y6+?=9~?#X/=-U׾~c2><A"a,_x$7Q@IW~&.ze3&\J"RL~ps~4ۭh.#_+Ք{]sq]:@ q-D{l NCr٢4bn
-l~H'}ӊ٧
-
-B`yP!p D^.~vPߓR&ɛP Cb_]ֈ`+//qP$[q9+9,U!y<A\p :aRT\.)TօR2󴛽I=+v-"rPrVVGp20(&.<vPc{_2Keulf'I څ{8L&bg :2Ml6ưg3TW<e?a)
-
-${ gNDB|R|dsqJܸWeh(^.B8,G^\VlH]#q3!GE(FQj aK3&}vӊ&Yi~ /w*S-:Uϱc0@p=̄ڪ/Ji/CԹ Ѧ KnH.s*K D5EE5~ԹU%W剰7 d{]䅾I~6ssUl[+mOkHaEu֍ѻGmsCH/bB'qs5dm7nη Ё頟 FcumIXwZ\]>Iפ``ABg0BvcR 2W#0#ϕ{M7=k6_$s>f!ǯ5m@&fލnfᆓsՌ)e%D:jLکsJQ;OhQ\3813) 熾|{_e5Д!̩>!<iF%4mtr6Cz2O%J
-_:Z/={6}ϡfb 晡nQa7SF²O
-es+FxRvŀiO>gS|Kѧyb46g\gIXk%r˔ ]m:w]>t , ƙص~ MwYBˡ.b߻i|$vѫM
-2L}}-KD6ޘ P?.:whm(9(rdM}kTb]m^7́aݬ[}S;*ĩ},/3)(p}
-}s"zz1.:
-B[ӡ*p\t"{m[gc~d2˔ҟv$lH?QO[-v`ۂ(@Vӱs 35&k=5GbCʼnU3& -'eTCi ܉MUb^]Lp<If^-TS%Al~n<\h*M@ 3В'Rt>#V/EsfkGkUs.YHPg::dwLQ57o-)فmt*Ca š鶸i2-Cx4)w$QCd7 Ӭuv~KYobW ;KX}4Ӹ_I}lTp+qu) {_ F!lVjaS&ͥge}y~c+]ZUP9BA҂,@5eUXSmk.5~>7JlDu="?{z뭢~4BJfT<?ShD0d*fdvATD%swCZu+u6ٳ[wN99?C[K.lux޼)0bL6X*{Z-t;20eCڧ\ist~$<izh>Fw4r)
-
-R3O޾50:)A7,(l>SN SN}t/rt#Ə~,</qf2s1Ͻ>b' 41ƁjZ ҉ &UvMlE[oܝNW7OL@>Xh<^&~&"S4BYϞ.3)zCbwj%K cb[
-8>1}q`7,c؆r% p<ĥC’IW-i2^Hi/<Y}o;]{L/GCsbSH oA[{o
-EX/P eԛraZWT{P>mLx&͑ sb?dT6[\|.~>I;L
-L*ݪ?o<
-Y<*OUy>kvt\ ~:L;iL_?y!yCY O0ƝKeDJ  ->fz&3]gfU9p^
-?_3dQ# 4}x
-fQLŵ.gX T}Igy% e>TX]@?b6lp>g| s[d'} aV-bp՚VHhWp{v\-HSaĄmϢ甡< y?,|ks9KlO
-:@S)'P|D4{s |ZN][}Ube-7{Q"8W#[\=OZ
-C`̯7(L5 [ޣ]뮄Wᗘi;u4>d{QݵpRml@B9WB#/\VҨ?"N
-3ֶbi")ceiBPo]]I1BE5L|QVR +k/&Rx.zu`e%|/݅/iAGgpJ:'?\_R>zsU"pBu6QKT8Ą)+ypЦXP@g>ItkvV\v;9']O-KPnTW
-Ku%0E~=0ڮŒ:oUPvK7`FyEyXh(_C382*K3cxw%/@sSw*E
-Qb!-+ g4t״֮kө~YџQ׷W " _oLP"+PT[{[TgC6:ń\>>{zsF u s
-߬055 b,ШyCNUյA1*9ew|1,|#WiLR)v6I<(~c $
-MTdga7=O2iAN-|yE}ۗïwm/qtg*viQ^VAfّD!y}WJS|u}J?ho~2Tey4"/W'<tC[Fq?77NPu (cdșא) -j-O-_xx`gg}/3qmؘ"oq278ͭ0~\jPw΢`QoA
-qR Cs8v˅MH l©O6}CQEsdޓyePQ?6{WѴgg~3rmJIoD .짰up~z)Goⷮ
-M
-ctOX/v l? ,jyr0_CF]M'C2<I,rTIl+"f oҐ=iC$ mU&5 QJ70-5MST\F^Oᲃڇ<)s){Zob8Q|6} 4Zy+Ʊs_GVH}N8*,?ܘn܈ ~'qLk ˈD2])܌`DiWL9_L֋iq*2հ6\~b0/y,tE ]D/Ԃk$;b!.S$nXa)Z/A6a2 _uў޶b55 Fd
-Ne-?eR0-J'J/B*qh_/,.WcPߍ&1Pׇ$1jqiSv(lTx;V̳C} VXtL'^.LD5 }hA,ۇ[V#J*IRƓ qVf槪ğl80Qp;{[IF~7<̜3t(DjM!w PlSbrmęg $= 7
-F8۵zxE +/14Wo)-Sߍ[{eܱSt0<'Ii*.wI?f4[J])0SQ"% t }7(8. NOHS?>i3~O
-SuF1ļY+ӈ%g^y;̌#vv]f.:_a~uayO}ʰ|pqD L E<\Yp(')Kx}x"AX\J?<bIg;kX,W΋ϞJQAF<
-y}j3In\0͂;]hX#j=˕ !^bd\?w{=<.O?7vs.!4Qɏ챇pnw_YȬWjY?=jdP^L6~/JuGdLw&B: qW7rj]]x]˒*wBv{XRjv[e JPX$V>ݕ8 54\l:FxR^)#Vy J%TӄS_V@7Ϙ*Ē"̶Մ`(J+r$t_ֿP{)Jl ?/ 0Hx89#Do;"Q&rmU-VmC3<׷UH^[F4 吴i͓oŸcܛϢ31np 21hI''ތ`<cfÍpF#33@U5Ԡ
-ϽW.t1ͼ
-/I;UtyTTZEc7R9~=/~Xt'W;,=7[r[ϓ=}oe;;K~4O4p:<%*'<;s֔b> 6 pl1} qBGrϤ=`qUN)D)Kɩ+mF3hed`jc_ja<Lf'5t <8;X;?q*Anf}(iN0L{5n(^QT*OnQKdl<y妣x:63C-5@|">'b*/a$"a">L#V-ؑP+[/֑OLaqDΊ^ Cq9E}
-<ɏ\ݟkt<1PH~&9lS\[MNeQȯz5*bx5CXCrXa)Hi 8ӓj覧vJER:ņqf s TuNki| ~dEDMZ>*X~x,T `gEhxj
-Qgv:y|eu,+T#? ӚeҐOmo[;j6a
-<1v/gn)b~J=<(?d肓p/ BjBv cv%K&''H_;rw3H!ገA=ӾLj[ D=hҬ3Ulbv?&TfUv)m'Us|w1~{@AX Wp*sXo5}[9}L ! pPTBLPD\wr{g4>3AxG5&^*[V <b0½yx
-ry60>4"Ym͆-h ͎ǥΉ{INSƉےmp8hA%1s܃D@C\{
-̼hrTFTgeRvsF-XnM狾ܒ:}\"
-:.ef'vEt{eij7 8 mWU PdV nq=4"RƭZ>>/L:xq]P(A6MR;qӬ2^ *̷3tWZga<6aYp?H߭(5HXyu}9R07m0YGf,{tǖ?>?vl7OEB„6u\ ǥfV(b罢fdHun2[G޷g 3Wo+]&&)lh%-gZ7(8B4ϡk ޝuVdv)r>p{ppMۊܤ6/5kKI+F=Mɴ=ᅩ>|#_B%y|> #EԫEћ7[}lA'NIвrJL)=&R+)"-Y+Kb+٘?RTvr ;Q;9Bz366!zLJ&f xi-{*1fjP]ĘAB7R<bM*7׍* 3H"H!jO5}A_BA@4
-x$~ZÆb%$5R(qU3 \8q0ͲX5Gcٺ
-XyC:fu:B2³hkm-=HYEuohX7MJ[HX$#s
-+H~(yxT'zL8i/Ē䑟&Nh-qx|3a7OoBwMQVq/B[~
-x0umwKy߃S9Szj;V|~t=my&"0~o:pMC ?;~dn-a)Wljt$)+ķ CB _dQd~$&D2PNU7?Gb% ~B*2gBAGy8& 3~dt!YVf5* Tw*J{{|܎;@.|)._"2HW6_ZϜ~B ^LI(buُ1N̩ WcO7|
-,@/zz=V0ّ(zPϷ
-cw\\>_M ,l_MK©5Qu gL}8#Q}W)iLbnU2̇pkےAf'2cuFnRşCm~6roM̭|j).mkn5"Nn6oY^2X">0[:ȕF(>V8E|I|Z8TOXBY]F4y:cè' ܒƴ o3šnEyڥ-!WXCi=ڎ?ZK`/UxG9#MMHfAMX
-MH Q-awړeYh@dKk&'1}6G>A'Axo>&V
-YS<UmF[6 46dpBKI@rI}= 튵LCϞYLg7?*=-iGF_)tCsn
-a{+Ԃ ]Wy)#Liuiv3ԮV_r\'Z~9dI_g.Gщppt;rod<-qUg+~xlr}3/Bri
-{%0=x(--+A!eWZ#f,9gxKRB`RQ' -G׳&NQQg\)ӷ{o!]p:T?5.-> z<I6{=㟕#"%~7zU:ʨ7˹>`H|08}@-#i+m*P p"hŪ|)t>qa{0'mgHIi{'V)Zntp~UV~,%jw?_rh?45Oݨ?V@+s
-c\|@YYCE0k'\xU<fRY){RbjT;CGN{h]zrȡ0 Ijo8rR~
-S`̮{ q>W ]^Aa9y9'>`=qr7>X~)+ 9%*( IMZ_ݸ)}Ue(VEe&Oh&Rs\3Bri-e\7M':DuㆠdX\s(mrc4z/ʦ) R3!Kcd
-s Ӏ{*&XfDVˇMh}[@sZs,/[wEJCZLMNB2g[T@u<?!t$Ol قsO;NOMP'9㽣T(߫P;j?bcQ@}1e([1wѭ-{8ngS4~mJq+xKgr'BU[ /1Q F^Eے_)ax#^_>L{ӳHcCWC tV
-5=]H"% P`+
-C+SYVnL5559{TA*{2\-_˔b*p$%|<1 02SM7 .븷u˹Sh U&~,jߒM %4=b(#qe }LaJ U;<SX,4˭ˏ)qL7xcĴ|֣4L&0VQ8DRyX [fe^Ku o5v`M
-^FciE~"K_ˁ0e1㘨N8lkafm-UܸA4a>@5 !X4]ufJZP
-& AH`-d
-n*|aoX
-GͷNEUO#Z3J#mlƄ`L$NC?z [I7)"qU8 c3ÆZQVweySgrĮh?XH eq?݈-g etuD)RlV)? l p,vg5SX1"'j}
-"[^H.
-_nOYNrz=;o8EoXZ6`20+®3|Lg M=J:4ZYdJG{)=1\ň@e
-Tiv9w5/w}҈gUO_ ܍iÓ:S'sY-}r<>c'jKRwYی6OqUW_decJ*La(kڳ7ԣk*7[K50b&;00bRTt<(^-R֛--6$vr,﫵g[[!^X
- QH"z[Ig4VͮN4f}&<$/jW&BΑV<MZLArIߪ%eutoK -OLT &=:9wq#b^-7RA##U k&dtU,JMwN`'&ezǬyË#TCaFp_`rZ;O|ŘoQ1:nI|4.{d<e{awp@]^n['!Hn_ƪ:Ѫf;;]ʂ7n&Ż["6a{^kRƛwjh6? ;оA
-^7{T<S6\٣BK_%Ͻi\֖1OO~j}Lmj"؊8tw'gy?qX눟)׸_^wؙ̪\EDqt\D*ƻ m ݛvXT8 9Qn
-g+1I0kM fA5ӓ k:k$g!jEyq^;}&K$ )--ܜnp_pD{R?yn 1;vڔլN0-95J sKPOKL &x3X?ASds2x!4K.'`F$
-*ֹibsvtˀX=#!zpG,_CVf
-BYG}cK)|K0*ҫ ?vL'1Ne8 <.My$}fH1V}
-vE]r1in=ΔV}*+6|Sd4 bJafud+"3>z)Ѻ^7|SLRow{
-VXFMbH'Cf+BP;VT 8Yϋk%F9c@!<IQԆS#iD&ъKI(Tp?ܶn:r=~9ba͡5OOXuVMtK.L
-(|܉Etthe+<4dVH%4$Et>JSM7muk:5G0!4¢|3Zi?uTRC5r,E*M]XԊTS
-&UH4:>:LVx&0r?Kj9^aє}"ix:땷ZYB=V.J4c'ﰊWk$FCTeWG4Rf2xMUWI( 3 \ĄFN쳭n(A1L* ;x܅ĠڂE||I\֙e[pݴ79^Qޯ{Pi]Kb/^ZbpmIS%3`*v!rK=L$i٧,B:Y$}LA:ɤZm}н{Gz~ԗ^ 5Х
-E+byNB ?g)h udM:] ^a$=|nj` TQI`RDuxXvhTukWK2!}F?j<MPCC/ Qq 1 sӰ *ݫx6U.[nUc˶^~me|['^9% _YСʏxΫeU[y
-<ES+ӂUVC:8UlJsTKDbz-X;/yWg55\
-&a;rۮC^M:VAIM!P?m
-M8j$`dV((C`<0eT~CY(45lg
-ӓgQDݒR Wh5}c1``ں ]^Wѹ+
-J<+y*GsizWND1O=y(*}m?0D)\S95bLx=D֏ukfch
-Ai\Cˁ$ Z
-Xf#e{
-)$h]јRaciNk
-iόcD=BLY@JReӷbIՠ/Dٵ>WCΑoVԻN~csW#Q=%V rkN-*--E˞׵+ iar^u2%YzQf:
-EZ.-)Dqm;?+5/ mP5VzռvGe|
-t (D~FctɊ&֧GdC OB:Lc.jmmwgOz tď@JԮ4tCQFz)
-R[4 /~mn9}*('Ǥ>3=P,c|OzOf$p/?f'b͕"CEQ7R򜸗 " $P' _:*8' ;"iOZ.oRy%
-w6O
-zdB<s,/{WJ5W!M4OU=
-̈́N3gM˸Z!էԓ*^dƶM|-|>(x}e% a>޹;
-i|\h$?~&j?WSWWd.k]H GSVb+롏ː.ybT])'Otv*jt׫շt$(
-g.mSt+c&p |Y @OXݐX.uע֣x.jeF}
-h
-04W^W> 3{I?.j#d!K@aY!35t`GF/J];.IP๽zim1_o{BbfQ!0U O<OѲ ^ @
-bDpD '$.77] :6>Bj$*Ga7-hȋW qu3/1+r }ھ\J?Hie
-`EWu Y;3Wa/7]s\R
-o6"thy :)E~vعN`:®8r(΢D"y'L?u/j&[K퍸Da̻rI?R r)PY&xNVYeI
-g(z1}(|`9M|K긥9p^(0#A_rZroUE ^ ju
-XapۓbbPG@ >hׄP%팖o80$V;Tr2 U4緹&ٔ-v'4ۗgBqv+x)2XdT7L
-# odMlbo\eN|#=g:w3&΁r6;J#lp*1}bbUK3ɥɲtOzylju-.M~v9+As"j4}qq[H.gUw&
-έ`EJ*$ej 4p+(32^>liO]}k@өqw|n)O=-OqsWwSad(f\ 5 S
-kѬ[tFS#
-DYkdz=JQ,GG/Q`V! Mq"|_B.fePW($ rlƕF Q¥|) @NG~DDLWP
-L@ϰ zEfp>B'+w>r޽BtA}H+iI5omEH1+bh8nU+XRinznM!3 -Xu9eMްfǽ}!\tte8
-0'$R+GX9װѶCvt8]4YBgRjPb֩^<Dge]#0xX,v6P3Lbd-Xh8V:-ުIar)0@W̘&>xcߩ>GRMأT$v+r}`z$6Rgʲ%3#0bF (AD;G،Ȁ&{j3͐iH0s'ubf:'*ه!١nfy ]hPe챴4"(-ٴ2\> O||Z׭Mܺz u/^I)0]QU'"8,&T|I Z4b~}fQMqV#eB̜ C7j[Fk.9 YS{{]̩p2uzCK^۝{9Šyӈ:KZ@sĖ~ٓ
-@?.F2p<M~VYrC|m04KBw_.#6jvmrD,OXDI
-`A ]XC-vGDTSKh_Jw@]G& %|fAsl
-H2@
-xc|b88*->g^:EV55q˻',lByX:fj+E-= Փe\MY)heS.(nXO
-
-Y⏇'K~ZKN) qLciOf@Qv$3x[eμê7=. IL*΢D5VMOv
-#ž3z$Ѥ+Y
- -L\{D??8E)U m(bȃ\`c } ^Rr\螠9U0e{^"_yԋ$oCeM,O18;o-~v[й8XQV d;:cqaQ
-c(
-Jwm{Usoe_Nt# Dyp&p +<ڽ&O}:m!ל|i?;L5[KZ3{+kX
-!(U V$w DNG +ƓѸ%#F gݜNC.AHyNf/I,!V
- oRDI؝Q\E::Z?xbM ߯ 9D+2C36Ko▲樍r9%w/aȫ\W܌uL;v·NL~XE.D't s>D+˻זs,H2ɔzeaU,|䣚P(6l7$H͕X)zzQC<Vj3]ʾ\2ZkP* X E86!h61g}IȈ׻a,M2 Q[?q/jOu])lrwZLƄOk|abh{{
-.xŘrY;aRwe_(I9zF0 x{]|W<&8 ON+ R(1-ڗu <OnG!=+v@*%ٛ:TTVM]bMAe Z|! "Jmu&p>k5SYc(.gہ&= ,;cNl3̅_"؏#}X؛kJ*Q,* )EFF6]fxzMsU+tܚ\?:e軁lnǕ!b#$r 8rNu HT!_/!7@*XVQݍR&o0!wXmc hm*H薮xw@p15qaYʧmDED$7 v>!r5&d!M`.FphH%^V6fv[JS| װճcܲ m݄tGe>Jܑj
-׎$kUN1rT*zJ
-)^2ň!+
-endstream
+150 0 obj
+<< /Title 151 0 R /A 148 0 R /Parent 11609 0 R /Prev 146 0 R /Next 154 0 R >>
endobj
-11665 0 obj
-<< /Type /FontDescriptor /FontName /PQFDKJ+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /E /I /L /M /S /T /W /X /a /b /c /comma /d /e /eight /emdash /f /fi /four /g /h /i /k /l /m /n /nine /o /one /p /parenleft /parenright /period /q /quotedblleft /quotedblright /quoteright /r /s /six /slash /t /two /u /v /w /x /y /z /zero) /FontFile 11666 0 R >>
+146 0 obj
+<< /Title 147 0 R /A 144 0 R /Parent 11609 0 R /Prev 142 0 R /Next 150 0 R >>
endobj
-11668 0 obj
-<< /Length1 2080 /Length2 24299 /Length3 0 /Filter /FlateDecode /Length 25582 >>
-stream
-xڴcx]>QcOlmۚض4Xݤqcvcu=L΅νo> 2P֙ #dgchI4s6t032‘ ; -lE \
-P, WWUPXX\UTi"r*
--@NGtYQAMQ&?{
-
-2
-8;
-5350a::z1~ӇM)@okwq99MvF
-`P
-F_S?Z3/hgT0x-D]J3}?^O
-g-[H݋@/_
-h$/M- F~[oM1Q1EUW ̔]/":-:ٖF
-G7.ht1Kn&(vS'<)^8"Q-O3<|4ȩ%@rR"'ej[S@e%0Ut0Պ+FS)3Ԭٝލ;Z"U$1I{Ze9
- иd
-#JTf1Ē/-cxA1nCJ'*0U6]WCCPh?UPļ'kG_}QvL\dfV'v]F۰e&<UJchWnԘ}C@Ӳu@>
-DFw<b0(w(у!Bez:Xw]icѻp(Z ?9`4Tv1
-/!y}o%;jN)4ʽ|G/kKzuaV2^ \IJ7 '7蝢?C:&
-R?2)S-lYDqBy9vw@6umBW;U0̴e"[ N>NTLh8+,ЪTJyZDsbNC"SebfwP)KO Zpb؋uɠΤ򟍝2y$#̼޸dCHK<pDn*ZY`<G<s˼/trszK֪b-?S}Ha`!S[- F\bԽUy@FFjEYac>_}J$"V vz-ԃbe<;]ZP\3Pt"mh*(Pf+dyV} 7`ۗ@q&:}9PappŽ 0K$|cTL%UD(&.P7
-X;S#[V>  8'9Ӫ!+t'~luQ^~mΌ2>~)mA ibHR(U>#xt[%|-jAXЎmG ˕;bRgTXң#lvxlNJv613:֑4ν~g*-a9-z)L evg~Xu xH9E1XF㸁sm{|<r(эவSWvBBjQvKzɑͫ^DBfj=ܗa8>K4(ĵ-owʄ^*m"j&v@;Ո0O
-զ\߄>3vpBOPPFi5{H[/iFydi=)@믦#Z5 _f =<Ž>rw$\MH":0VOa0}",9C1ka8пf=] u`hm H8,v`8S-f\6ryI&]2بw$klXc,+kJja軇ĚD1^1mT9o+ZuQ$"@]>fE@dbV~(kw0tG\
-8ped/ޟswQv=I^A]ә|Bfn Y{;e/` k/~6VR=8# ?:90I<r_LeI9^ϸp+V5I$Ey4vC,j/*s퍁Xе.+EMKPAN9?ղ]\)&UQO+kz׻=XrLc)|@'~* DY0LQހu{ S!&mYI $8wm%lJ,䉁$-35 _\Z`ǘo }|6x/Ձ›K&* H/ƭN2Zfsk鯚i*M_s#MU]Z@QXϯYQw6
-&5TVX7#h1LCId"mAǾOtug& o6̅g2W>;5ނKSK_rE3
-)bb 
-hJ0q~t/mꞡBY|@kuPUרب r41np\EAX-b[Tn(~hP;U[,0[nD <Ɲ51LciJAgc=?T ERE󭧐dp ==ysyru\9­蓶3'Po]]h_.(ԫr঑ʁ쨉Z!'5+7陆'SZl1m  [zyR(s]Q.>n %L _BôFTfY)YsS⃡AdAe{^O ]ˉG^7!|fNe1<\{T-e˺J =]Jjq0Hs?3zDILf|X?ڸ9Ʈ*|fS|\}fAB<fC&K Q]囡;v e`r s0[u$x $Wt"k˕иmA sᷫ DCdV1.ȉJ]G?K~o.Wo7N5
-P`P
-֕2mř'51ˢOpG_PFQxul 0
-#^A髊v v^rɂZCT:\}fu\X1jr LWpd-oϐ7]E(4c1X/aVT:[|Yv}LC;IN>LUU-R^Z,|GE2(~hPHf6,g2A hnG[&"~\)EzAW[h@_^$Bљ:~J:$vmgvtտ Պ.y]xIˠvy)Sozlse>_c`
-wa\vusl2Yh .{iY'E;} i{]b{e4̓
-Lm3ZW!4-gg띓0>,ͬD۩r9ad` dx'&#V߉_(. 1P۰iVB2jW*^y{H K᜕o7R\i{:YŅcފĐ5Ѧ](Dѯ-D8X&/ ޝ&JlЈ7E4-=^;5[iu%_/ġIxS+''.w^DCs?|WbX,2 K%sdly4n3m0y
-rC@ŏQFrtN(@JX Uim(Xj?g`ZgYh$`Wju*k6/6,'OGD:9pDjzlؾv2ZLDz!m9tFh5bۂqjyx<XΨZ#"gSo`^ ͧ^զ"Ͼз,qkb6xZDseXZB}\lb3Z([MJPIf.X}
-ڰ2!"UGlagpMȯ[5ܾ9'I(wuXP"t)}E j#^ρ.]D՞>.gL$V9 fos\RqK3{7qD3([l_=-*7h`;9lJhȾi{4&b)d;Gw(wlؑGpTğ?|)PA[<PQؼ$UԺ1QsopRNaO%5Ⱦp©+3*Q]S0_xCpS[[ޛsw5NVʈ!q2s؂JJ
-Z vJc.7Z*گ5sNn)~~Z)j"=1 <@?Kd)?={׸Q2AotT
-7imƼi^Y<'w 1noX_1JQ5-UFM"eL`~k
-n/{t2bN%mjs%;6ΪB1b؂ك`EBd 7QX6@L*ا*
-jV6S~]̴9Fc<U1
-r!|3jU{_Hb<MʷJnYfS.bGL,y{ @)I?Ihgx1Ax=d4h)6LpqX. ]7EnDPcӕ;"W)a7-ה`Rs#a"|M~L
-S[KL=c8*W+[fr'Bw
-lגX|umen]ַ]#1埽0?0/GJ5 QU D*hp9 >@kKoHBWJ7%B{oTeUjM8nE`zEE5 7hD&ǘEe8@G5R-t:*PlKbPH<In+0MZ0}xtϧ@(qH,\+m3<l$nKMn4˾~%P]G /s(V{b#|O2Sļm/S?da|7N[%f;.2=ݙ%E3J#蹵%%km6^;2Q詝8 ިS)nଆDd\u"ǩ
-p?߶'ۯ,TE[#~|V;L-Fi3[KQ{JFmtx<ghiGk=}d2*vLu]0m1馬W߇#Hz`v?TIjWQngHbN#cp`
-Ń#!p2:, Q3t78k3:JYgCmY>uzTp%)􂺧xHҠgTBa|2FNS_eA=1J2Yx(/T_jsR践+]yv.i?A]eѶgWi]cB[pc28lj(>&13k4S>y@x`ˤɥRhpԼLF#]qAkɲI|n"7XD|TV9[ }ńjظW/hJ
--ꢘ, X]It!
-v4K<c"ٙs0֫M:\0QKNZ}!Uшt,Q1ґV.[ihd\;%1j{5=2Qx
-ﵪ:y"ȶPqߣAIHhJ+geN=]qMةs5*yH/촔OuTKG^N8X2Vz;3^YKKv
-t_5CfkHա/Yʣ:P| {Ǽ QhWdFY4̃6s6}o = /&[Uj)o(-!.xmEZll&md_gIr~^v*.<dqg'yUu#3zɆH|<+< $̵+gGT
-rP[m8x< An%4OS_Owv䢾3I̤RS6Ǫ˨&*@'`lNιoq`) l2G_P9%nMѴ .O=U1oRA7(>1\dG|q" 14ǝX'kV'x\U fRd(|/vT\-/(hf>_,n xQZ09dPx
-^K{PK aXɴ
-r"'t.i72Kjh'Q5Ba`z{٤ ee+ ga^ %ێbF-U_}|9R \YXH[1w0tL:^?o'A軻4&6J?AA7/!3G[< r\Ux 3oֆ5H%-rd1`1hP!'?I
-aLJ? r`}$oņʝtifBJ?~{ \wHOec=n jWdA><,n>}u*;oԵB=*EhLɴ}0FsK<;g"
-_׻ lm|ap Mi]YJH^cjY;thUm>Cpc<NL o#$ˈ%ηӺ"gOXKX9Sb,rB_D'j޷5zl!.%7@>1~-$i$\W '-l*wY3 RU-xBEa
-_S 0FϦEuА+i.2"Oy:27.%MUv^_
-7Zxn,R~1<}Ihd1Υ}W xH.v`]f歀+è/y85'.&WY|'Aiy
-j!ꊚUC~x~ǎ `GkII\~$6PxS]1t_ߺZfАmcZy-vU0Y.FɘAWƟ
-=GU3o!o,oUL_Ԍ4yv~mRpB&C_0l`"Y9C
-?wʹWFYtHQJނ> Mnݵ!vGX[U%Ў.tL[P|
-J ~
-dUY6}4sj6BW!^0ZR$K2sDPCkъ\~$3^
-!H6ߥ
-֊ԶZT4F/׾/HOO%BXHNGj㦃"$Gô. R㊨oni$_ތš^W,ГMn
-L"$py'2kdU* U <yQ&N03&QC<1@ݬIo|zk,Z!-igy3u|.I9fIQd 0ڼFvXj[NNr2#`bM
-q3,&UujUN(NKfCd1Obd؎X~l-@bG܉#cȁ;V%Q3$`i*21uߛJ=
-~]y]xnwrե[(]>jBx׎V]b<CGůוjxwZjjJ%fz@٘kd}xTolKpմ
-=C:yvw[ֈxk~k1*0o}-uC\4 Z' )Kd>
-bkü;L}W+]t7 OLhrg#%{^\,>ӻf[?V,̽asF0QC >ncw;Hk 9;Iz~gO2Q6^D;P7dWArb U'\
-<S !8td_|Pevt\ țzOœ:5v!NxS~`V>]%@y>jYH96Co'U!|m<H
-تr2OUr@D?K[F*z/zyugdEV/:{qY^n@PDrVa6ۡvOT_<8TdIW@5<_ZaUnBN1hGA
-/Pz7bc`cH3)OIV^bj "mv;Av3@NF8FX4Ɋޕ\AP'Nd TS~=`劦w_;wk
-=wK?:<by
- Vh;c7z3T{,&XJLu_>?}z<H1?{4(gr)q$RE&IyM6L?VgHI(*?.f:VYX2/d; 2޽~[ѝs)э'8DSC%v6UML'hp-ɾAҲ>l/^N첑dYU#:tFϻ28:5ayuzG{hڠ+3T >prqQ7;֔1,y;l!5FkȒĹztV<
-֒~vZ th{7ɫ]2ukE@ӈ#Uͫ<pW@5>~ΠЕH8$Xx* kpI4}4)BJ
-jn@T)}ݤ
-&J`u
-b5ydBD7oQ3>4)ksb6p$ƙJd@=:,p5%?5WWز+C|xO@|8k͢=/ID_)NAK'XB_ν\lpZҨ=UzvmרμS35\%*zJAc8_ݍ9eԉn"%Rgk-UFдOW+UQ34]A[  BT}*A<cA8HHA>׭n(I/qs\c;^
-!<oK?wE(#d'MB| чҗ>1~S8/B^E7=0ַ<[# LɅ8Bdb X2ʴ˝'4LE {xo<qJ/)KvW) MNfh>Ik3VM݆Hb ΧQGw1% =#)T*B tkWL=e["Eɳ9VlٸtG93:asK>1C0K3 J@ꎪcdodjp@l(ApIl/H.o*(}W_'@3g8p]$Zy(cTѫNԘMl,Ʒl`5[iZ2}\/'c5ՃnԾ
-!v.6hHk,%54$"d&>7Mdu{Q$D;rciiurr~^rϻobe s[|"o)jg1鯻DHLV|BBWϞ1$wvZիƞ/}"…RVaWqcyWWN0cыFCcp"Ш&5Nplpy$0>Xl9
-k H-ʚs`:Pt_$iq  NE6I3%9E߷hT_CfEacekf`=q0~nP죳@Q-3ͧf=Z3v
-T+
-{kq?
-֨,; ?Cj'qȓo 556#=8OQFT_?dOih+OkQ;7H$: uaa=^ @ej
-@Kq a|AYE:K bAѴKEPxL08u }: G&7V LEbZKѯ[xYhg~ |9=˭:O0?$Pfق *J}Ɨp@Vm.~q?  :c$:"][/0mr 9?& ">v wRWTc;
-千\?N{{.(,3 Ou Z|6Nk?NТq8 m͓/ u)["gGY4_&@LL#ṘSSZ~\oA}sl%i!'zRȔv,3vxɰ#d%*g%;& nΈYgv WjGE~ M
-1<({bzgOTi "\'|]'Tﱄe6DNW"Oc5z/&
-
-=#DDtɴL֖ӗ# ΟYs&84S֑犤ht&FJ{d>GUD~)\ii5]}JzV-[W-Bo{J[ D&C$=Qy+
-B3*Jᙧg4ćTz
-ӆdVW<}۠ɡ9g;NЊ=Fcy2:q
-R OEW..z1;a8xsx1v:c6^ F{ -hpe&Tp:%o,N/ D&1  `4P!7oς <-IV3/|ܣ00񇏳9f.AX&WpDDJKɁ=]"
-O;AC k?o'~J]&5nf 7O *.H&"w2Μ}"eB&KO
-9'{{B9wЬ *8N;@_u'!b HwdK~' 9Èo6Z0xnY>,.d~1bfɷ2Wuo?BŚ*l
-iQ %_( D5L
-#`W"'5
-<P|tʙ׉h'np"Qǭkaw6Zzw/nt ᩎȱP0R]~Ԭ.̹ Q B"C= XMgY8+%ɨ5d-x^7ĉ}QV&pc5&O/ƾh3W諍O f?:5"$00q}{dZ}/ӂy]d\<o7h { 0mD l
-JP:Y6׻Mr~5  |@fq;
-3enBhiWB$J"к~u*GA6dWŴߌT3#5G_IX+3@Xˊl`Hƫi1C]ѠԜwśgvj>)m *Ղ,Dk렧YK>3%X褄ֈh>ҸxPJD[>6JK*SV8&PBhޗ#~c<(Bzw9Ӽ[#E8L H^V/݀UQ $dm-O45S +
-As;7`0Mk/m@@8˫MJEmo3_ B([L1%7?9%bR\AY9.*"8V% mC>Lh\ЧcR4-iċP`)}9+p`PusQeP{EI,3AEsЎ zijy_A-T4=/&m/ξ@Vkh[CYҒ+xލﻖFV
->C_FZ *(:"jQO|~S7:IWӊOS<
-CcqPO~!Wrrykr
-6vQ1L,Sq?8`[% S*#X* OT&T$ i%mOb
-|mQߊnh?IHl
-V|+# GqmHf}LCB/ێZF$AIu`uu꽶S[` ZlH 05+Fm {O,@=#W(VC&"ya1/Pq|*, ;tr}hPyy6oO I ZPd>gj\B--rq5vfv$1J1h8'<5Iԯ ש+'|cx'/NO6M uFL: *}[rtS3PAn|xCR#Йoc!HL@"JQx'NX^~kŲx
-ʊ^,Աn; * "5Xë*IjM/ {]FSA8 B!/+r:Uthiz8zZVdN]@_1aʨ<9p΄k3M0#:7RZŏF![4&\PvBg8 TN+Us
-CS]>^@4vT$DFq9d 3 iB%߽hvOԄ- :R(l^g^Tmu1Bhܸ\f|g
-Z7&r`SWm/
-+-&-oi* U -if@&J_pNL ;6_3[yCMqZ.aG<E)4ё.Wj܈Ip7">j44s`NeG Nh7
-31`l>2a+ß
-endstream
+142 0 obj
+<< /Title 143 0 R /A 140 0 R /Parent 11609 0 R /Prev 138 0 R /Next 146 0 R >>
endobj
-11667 0 obj
-<< /Type /FontDescriptor /FontName /BYGIQZ+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 90 /XHeight 431 /CharSet( /F /I /L /T /X /a /c /colon /d /e /f /g /h /i /k /l /m /n /o /p /parenleft /parenright /period /quoteright /r /s /t /u /w) /FontFile 11668 0 R >>
+138 0 obj
+<< /Title 139 0 R /A 136 0 R /Parent 11609 0 R /Prev 134 0 R /Next 142 0 R >>
endobj
-11670 0 obj
-<< /Length1 2115 /Length2 16804 /Length3 0 /Filter /FlateDecode /Length 18109 >>
-stream
-xڴeP]۶5;!H` pww n݂gsWLZ6hcZUPNF
-l
-rlmm5@X@FI
-g/߇4 -
-PcI@tF𽄓Po%cG]?7hJ $ϓYW_@)e|t`VS3PpyM$t~e5,P5Vg'C9`1U='{=d{FZ>SUfKe~M
-s}#ֽ-Q{vhW
-@Ws%wk)1?Ų~uډiWxJ )La.1Q9\'zaA|@}A}:?PtĒ2>4z]?@(tg:ULTd.A$ıJXħGf3m&[w4rh?h?+xPfCdɌpĄ>;.\y$th~(ZNJ ?9^_`E0D/:^{owWft W/l2޶,D=\״mݠ0 Z r
-t".C4'4xL\4(D
-ŘHM1wh/bdQ˙dAH#5]sxBm5!/l[z(dd6]lfHW':^!`BvH ww fu鮶_Pk3vAui:gT#=3b'nƦlCOʥGz[: H̤i/ld$ w>1ԗϱway2I9NLODI;g9O亝,7ĝ+0F$/nߗ/Tk_`\PVɤ{32.rEAjwӣ͜>]$}Z'BA3^l тd9nKeƃV |0tI*y{W-
-_rUaF %1ɹЪzœ1ßp0%{"GP"xL6}$^ vV;<n2N̯.*RY$re,dzD`fxdKQ -Kfs9J^AI5?櫗54YGzCgUQ\/ez1#\u`Gc+PԊ}r쀾\Tl :Hۏ0Ah`݁khPFoɌz< 0RB'3iMe]E,Wo tfs_j&j ;,yJ2hQQmA]d6;;3 Kd/HތU(rZTx] oA^x^z[!빓Ug1@;Z\tg2fN>AۥpD65ɾ`b-b*>
-64o_Մp,hZz'( vh>.G;I I/sȥnq~8ad4Ea0-Cڭs"v0ڐ#Uc}7gQaN9mF+(jtiK_ZT;*;#'B绺J r2:RgX7 rfsTZ ҈̣ >Be9Y Kq2p(GM#|NWba"MÿGk0xv$
-Ɖw^!;!v YW>"S_:RvplaQ ")[!VJ$IɗNtP
-cի/^J1 8 PS}֑Xt"^A'
-s؝v_8U.qw N+fQ-6eKFV]VmX!dh.Ne2u)JEÄThFMK_xfTTW;ߕ.v :bY Jˊ{<#&SE_a~U6OzK
-Fp:l#^9V648\]/%>^hQ-5}S_꿅SO+Gxt2x?d{2_^#ޚ`L&`Dfa;3PnX̕ ʒ4d-6
-( ,˷|TV\~!N;+vu>D{x&.[pމ|OoY8܎Jr B e</zK?3 I}
-42:~7I m<B߀QZjd_}᩹;=pֳﱦ Um@T%bi,ua\/MAE}(`GHfقF1eƗẝWG~cq#ZUy
-xM"R
- ,i M
-fpD) D`eYՔe&ܡA7YX @|7ov-řA 2<왋Gi|OV(0ցfp0(θDK:]QBvîe(JRv_"wqa~Di jۂ0T3ΖED_/"4>m\X |MO:rnŌ 4C}%ѩνMl}q IiAI9oj 
-W@}_jWM]DOb&C
-= >FYvY"ķ' qU ;QU)yqC6.'Y˫"%0CS~3Z\8S$fW_X^0k4 n塿 ϨR‹Z-(.ȄȫOa:7EX)&p&X{|wdf+lT~i};I"0`˛ 䕸<<>8?E7R__.
-̍_ Xls
-*תNsqjF ȸg3Nt+O,du-‚{1Y6xD~tdloM6ҋHIi]"`zobgub^ٵr|6Ǐw$ ˝3N3GlAIK>ŷ7wY 9_4侪'K[O[)$>} =prs: {~q1D[ p+czs3jb@}ASGql<Ub7 w܎T_ )
-C-)ǽ^@Xc~ڸ6QR>sl D`Įq=Z.nxtLOԜ 9LPz?@'6y8ңrQ97>#1Hb{P4T@oS:t
-,l7Tzsb('hTox$Aq= zF1qg|ycl.f1>=Os1tܠ_ Dp1 &<*JYxwIonxuQ7<s_atB2H)$I]"xu>jP-Yf*wZlS=z;,TpЄKIN^uԅ둇^K6'HzЖ[Dl"P4d<z;b PXШ)B[LDS']vQ{~7Gu|в΋V;1:S{fݜ_'xLϪ.rIaҝ=jn، Uxӂ\V}4a!hrU$g޸ T_g~Id6ETTMee~RJveDY=eczΟt V& [
-8f]p SIFC-R+Ж![>pJ imf Ajz3[PgÜ{B l8t9>xGO^ދa9-Sեj3
-bRJ̓{ʰxd;#q}C[wo't8T~@4`<=U %2W2Yb]):fHfWvW!p۹awR6Zus? 8wpP(G<2*Y7W26Jٰ;*VFjnv37E!#XH7_5՝`~sR|Gyf$iso·Uf-wXW|nNW -\
-/W-fETXh)|̍A[W \ȸ]]ތ2'Ec']J̒4
-c ovZڤ|߱osGk ڑ&5(2S;
-u9)Ƌ!.
-aqZZ;<?k3[Gd uW?Ԑ(7:n7KSghZv]$7K3kICw' ԙx#_CiXzM/fiHH,<i1 lsyZ[M;P_G{=žJ,=X޲?gALc* `=H^EAgwVIhKe)ǯug 3Ao;#!|#z`glE
-F05 1
-%;Pg PShwo: B LvjA*- KW%:ҨD_kú*7I_=͛5Tղ~`"g+ix3dE2ãd*C₡O0Rfҙ|쟠k0>ַd$BԸɮM:0:<RZTUOפSXcN&,#oz$5mv0Rb7˳ҋU,ip-8].գ6a+`Vq&p +9ɋ AW>Em5ϘTj qɍV(O"8:K@
-;He]e5}P }htzC0*\6;n.: ֦ku4q >W6 8F΁ˡAnHAZu;x8'LpDڛU5K5[$E gVfJL蠩a
-Jv. ƶ4~Yk:I>Z"Z =3uy>!yy*c>>t]m(;/[~%1X T} \Ku(9¾`ћ!o゚0J߭F e߸O(ŋ*_յshJ#M[֬~ ;IfVj ;cv*EISu7AO{Ps +o{(Dޢd Uen-}\Hܧqc6r.x{ muLGe&3s
->Łc]*&jPwh>F x6o%NO5anXn'C3GoIKW[A{ٕ+
-*p2MOhv]a-Z$BE+9\(*{=2+4l )Nx5!A(+dƦT省OE݊@OI8JngSvɂ|㷆!VCk3&/mzt:a<,0
-MN0XrEbۧ,;mBK ;P6OZe[3;Fa]պtHY~\DX?nrb&qdq72A`OUGMx־!- @8\5]$tI:,>>Y-h
-m@?VW?y=K<s *4w|At# bꀧж -d ğ;9B S/sfO۲e2рVx3PTdl @G~T }fkmB#/CgĽXxzz"5yIvj[w^J(-G@3.ϲ>en514c'
-VCCgQ[} -Z@.4S`OƑ/+zmdֵ'$d "fj-kK.=ֻl^z~.r\&O[ZƷjK_E@m|i7U*Eg6еu/)U=?QgEٟو~\BG>AJ%*!sYwx8vmhFljyYYkJl$$=gi d3ַ1Jޏݔ?i!o+W#nEͫv\`Qg~Ͳަ@EXEb]l>ОlQ,?ѫcI,) =-m$/>-xA:Ct$8:"1Ј0jۨ`zH›jxF,t>F657d> /,wq-YoX7i+ݑS~MU0}.{n޹[IpO*L҇&n _!>5-~kK=0ųϕZSwtG奾
-|ǴQ{U¿I')ry!x@.# [)~%&ZUᵸ$A HF:0w+YsQJFSjjԻU]soT 1n]M&]3g5%_f>;#.T{ 3)vPN Qf%߳nFMcJ˴ˤ:MnR̥Fd׬x12m@?5\UہW.?uNq3YNPc3#3E-t떄A,wOVf$1ZII֏@S4f0}~\2JK䒎5ۘ1?]r;3
-nkmc*լ0S+b=7yb0 !c*9mN
-jRivVJJ
-V89B`+&Ͻ3hKμ)4
-u%Jݣ0?s&b1abhȱ(t7 TTnGh R !<G[Ն]Ӽ,<lSEG|o*yzPF3dFrzjD
-\ƛr5r\ K۷"Nk  OU^<'x660q!~B a нFhGH9 EJ=t=؋֌'3+g5}
-l0j_ fþWC-zU I%gs=sp̾w ͈)i@TDmDo5+
--δv˾WCSn-`֟i{=%私3~7qo>x+v/v)Rb:ݲ^RQځoﰓO=l(ubL]I}ek.t$OV8" XBIA+&2/#y8" *7>ڝ#J`'.+SȜe':pUD *ղcFycg({Ӻ>q$e'5?]2HEfړ0Y~a*bEdr>B 5˲k}(<-
-hj#]E=EV5Ҿ: iTa/M1M(C5:U ,:5'#VD[,d] k v%1C!
-"e)*rSb"_s41/mB>Btt@Dps@ l"8"uN`ju^C>؁#`vз?MeUFgرg]Nmݚ
-Alg)vK{?-ky
-SN~Dtʐ8ƽZh5Rᕤ{Ph ̫kqދi'yGkd$\DFP֬ސQKi_}$؎Ʒ$ru Vr=.
-tiqN2~4ddSyaD=2,aW^v#>i_Kp-2I[}i,7$k;8pM-Ҭ!aSi(!/ZYM6 $aWn|Xү~v(BMJ˂vOI4C8Hd"| u,ڸ_!cJrT۴}_'FKC/xPRƛԓhR OBuR
-jT<ۻUCq;΄x>t@;AUKeFǎ?TY[h8;( ɰpwna1JV;pSDԵbI ruG; ³NEME VJJ&,3o;H|ym,}zы2?猔++LHܢ'Ĩnrkٵ`&ԝݮp33,DNՏK)$y\lN$ٗm(|r$t~ e(M֏d^iv渮.^un-Z~6,7"{ю2,=]sEg#4Z
-s66|%6"R(ne3WM_##.}2v@;0(R(O_Xz%<64,90]L*bP6; }\6Ddj9'l\-F tczCwk+QJ3;PwS&ht<ܻ>PmF,w*}yʪpe~eΤC|΢t"hO^ns@;ؠ=
-{3p/%׽' MFfPǩ;wTx0BL
-Cw`!CJnR` y3ayqsDx.>_ʥ2.hG#Yj'q۹я*P!:@Rv1$"z w7OAgK⠈?7uh""ŭ>ySV#xSi 6z@.Qˆu-gbuV Q./oM Uݚ~vu[ɩ!qM"L:x)8l}%iE-քJk۬uOw l`UB#E
-a̚;uPM`v{'k4x9*37ΨxVuV#^R
-endstream
+134 0 obj
+<< /Title 135 0 R /A 132 0 R /Parent 11609 0 R /Prev 130 0 R /Next 138 0 R >>
endobj
-11669 0 obj
-<< /Type /FontDescriptor /FontName /NRYMBG+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /B /C /E /a /b /c /colon /d /e /f /fi /g /h /hyphen /i /j /k /l /m /n /o /p /period /q /r /s /t /u /v /w /x /y) /FontFile 11670 0 R >>
+130 0 obj
+<< /Title 131 0 R /A 128 0 R /Parent 11609 0 R /Prev 126 0 R /Next 134 0 R >>
endobj
-11672 0 obj
-<< /Length1 1668 /Length2 6617 /Length3 0 /Filter /FlateDecode /Length 7718 >>
-stream
-xڵWuTKT>@:I`dIiDZD% N%%;9fM<]kؘ !H[ J:Hg0BO
-80J $((ICP6l
-{
-
-& ҉qipy&6@C/ԐX*EX?a\IP?8ѿkg0 ";l"qC6}7 PvC.g;1>nh柏mDah OG(`C/ѣ/ QPS50
-IJxb~g_STі$
-i.UǾ#VRBzI|BB
-F[YX,ebp͙>}L\t2r}gۋ8Cr_T4I/E6W;{12v߇e i
-e]:1ޒCx"X  9he r}A;g%P{ sboF%6jZ
-vė^}b^m004<mkerF~n"vfYJW@~1Ϳ)Ր67f$j1xĺS1sJ`@/$k*pHH^=V)Z e,L_)UePR踹0_rV/|oE>wFrgRO{.DF4guvLg%^ϑf
-e<.
-Pk|!3Hq'I~-Slp7wS0I45K? 9(sƧ>Db`]m'F/l_=tI-OLQ KL7idްrzFLjG>5@U*Wxҏ|B7m"'^1aUyHCxH 7w0^v9>­-`'0]z.vuWLN4Qu|5ٺSe</J&Za)CT݉VʼrtՏpeF8 CB@\C\l=(axF>wi!IDGl W6"dOJ`*sTI=4ö |,ީ/0q͎4ޱdJlG
-n9/R\ƚ7&гSƃ|{wZnFsp@(Fxb4-ɨ$Ɓ/!Mpc=TײzMC6Mb8,3#P',jt _GWzD:Q|TMp`Q?XLz|!%+wcX'NϚ(dۃI4FϩR6y}@c,z
-'Y|7=?QMG2KeQ>dW\^Rkq5~:]+UDq
-);Rth~ ɧq\ iUFy1IY:̷ze<dsxK"W{Q8Ϳy'ro6ͨESNXUs6n'to`.]rhgS c909":?
-(|*K[5 <9XW5[z)\tcf~VVJf9 Ggb69g-M_uP{Z;0YQ/&ge}!2\ѥnS{-*Y“N56n_D$[IZS(3G8h, DžnR)U$IGֱ@̑@_'nQ}w{u3,N…Fb@m{|4 kj{\ ܮQ +Vrel!\/(UyK$Z}iǯZgKdP꛲#o>;ڠ**N<8/o=.*]!Fɭ̳{K|#\O6d%)$FP{:5;傱7n n.{BCE : 85DFN0Ӎkϣ=8zh#*>R1\ll}WNOz ŶW\^cv~ͯr!`ܻZ7 mEG Yt U.͓ M;gCY Bգ*m*
-[),p']ްOa$|!q0܆
- I;(y/jg} &÷Z$r'_ɉ;CI\8wDWnM\I%HAYMS
-DUwpPާnYMW5$gsYl+uf]-@d!-/ϏQUk#=\,SNQ4Ym~!yY\N6%h [ 3IO>-@vO
-xCsCt ~lgh^=N UUSxbCiVLuץ~p
-<C34 󻭚0|Ȟ@YSp/cA x7wHҾf_7x ȋX~f7? 4<5}ϜGCK2mg;ܥ~ճ:T=7;kR9m&:2?UWU)V!4Үjww у>#woVb.L}
-|6,`|ܥrMm1/͜_ދ :x[j։W2|Y~Zνv碍gWFq+~,9fT뽎S,oO<ڜtG?d( ͧzUNա_Nq-NM؋W.]`%3jE!?{8 ShwBOd\8ڦ\ݹ&EABէp"3>Dl[S~)8Lz#R$r V][ݥ離!r(gTz侭-cLxG5<qFOj^;zTʫWxײ&L J˝/WwpvnP1mg("tBr7 qkؔæGh*Fxl>$߶Y^Ĥ%0'Rޠrb3cX߈OiP-<Suc3Ai GIXR]> 6giī^y88WRy8T8XMX4E |ojNh]24ֽBR5M_?`[)~TGMpA0ւDJpn)䐸Eu!9 VIw_I%|Y'T+9d"MTjGLN,8˴BQ`H΅kYX3k[xj<_nlwɋO{ l' Gyx;Wg$)6'a=^:7YTQ&2#CKkGķT)^P<Th\IyAJ2nL._SCkh%2&Ne:P*F쾮8%qu8(ɥp=pX}~޸s.]`kjE ɘV ?gkg-U`s@Cr|inVV̫2ǣjݛn'=ݟp}S*kz+zo- k.u]7 .'e_A/5eJ)\ߐa*i%QZnAIH/>5/]$ʖ*D9kQ:"Ix{y!2$>l;Ne ' ߸ӭ<jgH"L@^2s2z9nĵwm2n6$[(JSV9nk
-BU`9Cۀ= 3Ek.j?}rےTBGS j7Sؓ[c'.⋇>[n4 g 5:螿aA[Y)tG"5 2Q'ΘuqN'}oe$6.=O翶o)}T9[\vmW;/y&Gs1!e=7Dc
-#6SïׂŹLw[J1[*tlhU)M!r7>yDErɫsv<wyL~F_ZK.Q>MA ``u]˞iZ鶳seE8n?PWf9}"Z ǧN
-hH.gNQ'Yn{,%_USW$!ƞw46=Y<^2I/c;c*VL##ɿ.F\Fl uQAgҙiU[(%oRyUr^Mt+M_X+/y儩YQꛎ%N`H|(AE¹e|LykE+咩X|iDd͢&Y3emtlY"׋ЃH;pG~ψ"o rXy,j<I
-&lj|p[T^zP'*/Ʃ7iqE#F.4Aq:S_~fW]\[~V i& MLtitu/ o)Ru|<eN|֓$dXA47A)H&|_`[a;GiVnT4N*76(xE;S5Ϭp"t,17㙿z/e<К٘BWڿP{r5x/3O:#iHOQ]ĮLڤun7XfI^#{v:mj r[
-w')7sLx=QҘM3] 3㪞"l]퐀бߍߍ]kyyw3c;v8LroqvLt,ܺ6ݦ9̊˄S!Ѯi2-~2XU4VxHaHcȬߗR(]9 }b;oxS7͢؊h4 Iy$SQ??|.{Ė<&( tOwxozdN4hչ{`S8#wr'Nrpja,{F+ͪ/5f_ U𤖾_98ڿ(/6)2sکbf[}2{}muaD4Ӗ1d
-WHt=Ho
-H"s}|pC
-endstream
+126 0 obj
+<< /Title 127 0 R /A 124 0 R /Parent 11609 0 R /Prev 122 0 R /Next 130 0 R >>
endobj
-11671 0 obj
-<< /Type /FontDescriptor /FontName /TXCPTT+LMRoman9-Italic /Flags 4 /FontBBox [ -469 -292 1419 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /n /o /t) /FontFile 11672 0 R >>
+122 0 obj
+<< /Title 123 0 R /A 120 0 R /Parent 11609 0 R /Prev 118 0 R /Next 126 0 R >>
endobj
-11674 0 obj
-<< /Length1 2013 /Length2 26872 /Length3 0 /Filter /FlateDecode /Length 28072 >>
-stream
-xڴeT\5@nAC4]Kg3 螥sSU-,
-EaS;cș +lgkR1903(]lFΖv Q#g /`݂ ߕ
-˫
-tt?Q3ڻ_
-2}/
-`2_`
-*Ύv@ K9;Z0O˻_O/xع{1spXyۂ+|MM{7 Y
-_xֶnR#`(Hioف>d' £)h2c-Csމ(AV,b(QV:+k
-a >%I%9;wZurw]4CXc#LZښr\Z"ۙsSi!p)YUR͖si8du}]2rh&%&W#jrM X,?&*^t/m/۞cD@{vG.NuPrvS]
-Hgk;5Mm%IT- VZpRuUZs,銓fn}P' a <؅  ?E)]8;NoLa2ތb-^$t[sHżTtK{Y#a!wH`sz( me;I$[A Y6Ĕϡa0?!>uutje_ eMK:ż-opoMc1"UbJ#jKN+YQA`K/uN)=־'ϳ"Vo3ƢNyh2f@ k˜IBC_x?[ J!Iƹ #%vۏWQ-Q}/:H`ה
-Mr`ϡcܞ nb,Qq]N 1Xύ]Hy=Y7v:05!6juJC9כxD`&?vtjC)J\gǒѼ|"ϢZBJ編B50u
-Uct9?HͲ˔n"hf?е pV3QxyQ8>L:SR觿l#Q&P^ej X_I"
-9hlMU_$0'SܫJj<'~uE ̂钄s~ђ70E֮Z_5RhևhQ"Im={'%D"q9qL]_*xDU W[MvQX~YJ/Be%3Wbe<79m:="WyO;rfHAM;{;mS|xϺ_Hܗv@+ 'TC?Q~E٠r,.C5:(MB% VfA3V9ޟ)'fkݐJ"qR,O҆/Q5ؼ1
-?nb$$aSх 29h;76<h컴qR u8a$В_0:]5kGs!CpŊA&)J.H]"C1ܳ@€Li#!]W0tV8:As< =*FZ &Le-Gé8+Iu'[mG5`u1X''߲ӄ@[3薿lge?@t(aT^}IEXφJQt/V2[]@ǒ7]5Wg-R<p|Bad,GsMC 
-8GIѭN Zqdr4GDxiٺUF?fftjӁ抱[sƲ,~
-t̳A1vjeʢ㲄 <2)ÓvPj]`BǠb\ /+א0ڨ`)+,aƏ U&"u0DnY*)[e#1 G
-k.Ȁ4on%{]?u1Jj&y,l@=`=Dgk4;)Tي#e!vp>$_|+QnDc6aX~Zʉ)$IOM<Kc&B*IYHb;hTCPCw%9UlC؄b"|pٍ/:Ju8,z>]$!xchP}!uźO=ש8ge ~|@]d8R>;57?7n2ӻd#[%ҳR'Cъ= 3ʓ$D=hQ9ouxh(ǷCSF*%v_m&]sRna{%GrW?o$>vU#tȅ$Fҕ!3uߋUhs.BW}2zޝUCˌ S<?l)t$?ṵgEMۻZ q(uw=>Wq$\K^$FB%t,zg#jV9[n
-^$y$J<7h@|:h+ ]
-GlǥS G)utbD
-HWzCCq &[ ++UظGcU7Ǝ>\XH˰MZ TbT+z9aQs?iÀ 0 '@޼7c.<]f% 05G XԡP_m"km^L"BXZ҇Ϸ~]~C# ;^rhAl
-"9#i$'5
-ˣ]!z
-BGl~(dxhlz*(j.
-/"ۻSXδ.VpVNP):ͮBs3S 9;&DIU<#h퉒ޡ(F.5+.W#) 6"]ت@)S+jY
-j{R5W).
-+OR;W们Z*tjg>Kr/=?O<̭ۇ@U9e)f¦sVG-AL=˘ʔ==VI4*RsC2"a_k'^H-qv o<j'ToiS{Ѭp4ki?8
-'m1\҈gwJ' ~2<ɏlo z&k\#c72N0tJ:m< D[o?YM)&Wc:ALߦ2/hhlPQճ&yZ3ITSUc;]YTΒ;-W{cd/<" q<1|x{ cfJg0;,;cIlN$tR묕%8"$[o&lZ,B#%5'Qw$lvpS?4=>:|J5^j ^gk4 |{6υ6Pb=Z~x`\!<ekӄ5u&dQ9A565\0/N#ضI}-/8>a,
-cȼʃz<ad8l+{'9ugݣiˤoRFܦo-8Q}^^/
-r$2%/:˰1Y'i2O]Cxf76W%μ́J7U҉t*@ 4EKiWQ9]㮬΅""/~qݮgs45Ǿ}kQ%ް'(~']1?ołH1즗 5 <gY.m$2J
-n?^+?H~6k 촒[Îvr!&ӲP\Ԥv]T &w#Hڒ6ѫ%LP8N!ߑ5#=d+_o`Yõy䤶4 b1V^蓺okBvqGfn$
-Mv{L;º̖/?N`%9',aLr Nř"]B02өB
-eMX%&4 t Su)'4# ՕU; w#=U,셢ӊ"g DW1>6R_xrCSvW8Okl'ݬvU ~SBPM#@'BR`4'ҢbHI~lo`t'w`'FFHl ?T%0d!Wks׎P
-7^AH`L`JjUt,ɑfe|t,ur~qn=(-h]xJV6GWB|q;pƍM<}醆[YCկ~oO*KК4x3CglD\ vĬ
-Zww t_ݡPn=kXemtGڶl^`O(>}V?;q<)i E<}
-
-RB6ydOA Ю
-&"+pOE̞x;xL#8[t<*OR.Z.˚RunR0%Z_Ge۴2 0þ;3PE[ks y8IvhעJeֲb\[yA093tt\-SolF:{<jA
-ٯDw>@e Ak)ilZ+l"R5Lv3Ƭs>8\F{y_:#LH}bU p$fPg2ćL;
-HC'iVK|@
-8οB~ۣG=p9Kۂ*0mRM!.۟m!@f+/;"4GG8>3&g3~ȍq2LwH:V'E&|!Kt:3}JӤWU*ۈٲ"fEcWEd^pسm5g=M ڨ2*>PeGFJΑ ~ʣbcu`}Ct[Kp<,IA-\g=>^U4x]"(Rdx'+`+ 7d::,6?4Zċ
-=QoEX59J+*l*OE=WeG8\o5cƠ+A)9~/S~ VYٕ]=bàOmMn(<Letj@@L!}/Vc [jGg^YZf !ғwUuᱫyD;I:|V)(,05+ad%5xϷ{rկzu(uSeImi8%y $53|3!􅤐}X;3;t:xKW΄k>!^1=R2{/T8osa֟
-frJi@J# #rѩOMFxem+|*eף/F"iޒƭVFͥ2#}rFulEt)gE[׺6 {$b`Sƛ|M|ٓJ$8H$K.6N~-
-jo; '3[nӞF~I17:uWG^#5KCfo-Iq␨wFdE #-KsڄuscmiC3bE!4EuB`ei6s̓zE?c{jv)@
-.Le1/s U
-UbؒֈsMe&o2h%NEG_'|_F%
-x4{y.U4-76Nd\`N?d
-=d|?exz9#pYgڤ}#d&mÎ'!)uH>m P_4'V5R2*ë }\8Ic#cшBm|-3WįDȘVc4cYY/!ԐJQ
-[J-<Kuk[l!Su#Ya BV
-=(]hVFpcZ]Ғ6EƳ9v?[8vەr|kv囶WSuoV:0o
- 8p^5hI$)o̗l5J6wgu0c!D9'!b?_R9fHY
-՟{ynUT=BNA^d8?bm5 at-
-.𗐾'P V-<T!zB:W_3JVE%mmEu<z!E60[y$0r46(qSh,l8QD)WW\/2ZZ<BJ&~[?gy)V:<IJ:KxރNt?(0nSf;Skv,d6,);(\>$5JDL<BB9_uDˬq< \}ם@J(;T75\6U5,i(mX/nfC-a Fw?o4IJIe\/ӠH/!V^(GJ J*:RS$d4͒yV!H-lY#јkek?auӚRiESGhbo|b *v`&m(3! h
-f<$@w! fc#nʕ+fpd4NKZɚ]ro_kWjÃץ}|@ۅf-yF]G{s.8Amн_`5A)vvhAM *uA
-+1XDwDcֺceONʗU$)y0ζ 3\ܑD$49G6"tAoDkB6ק?=:qM<Cy'&fEuգ?Dˠ!i&UaU-3ϻuMC*fczɧ{$,mx(p=,_A@>U ݼ^AZ,j>ȃbV:\N=8(6OIY>p*քp{}0QP{O-nV;]n"˓ڀ y.n=}Y݋-G-T!?{ԍgjEjup̉+/%&,*3 Djfwy5ID~weMAvV?TW [4'|Hc 84RyNG ꎕH|is(ngo%6k+qcV&_}Ts[0 6)SJ5n[kb
-e3vP'9meϝ@pC,H7 2QjEYf241Hm*8w>juƗ)\9=3t!se&ilCfxf-N5ܾ\LT[_qBC7=*>󑃊N(HfL׿'Ux%<L}B$9%~i :h3}jK޺'0ͫFΐÛ|G=ݧkgлAh'.@uCp+J}@\,\ I*q/&%A0=T%dp$bJ( EXjk2 mGd'9%/"mF$"| @$Яm?wV
-}ɛ᜛ ֟SAW~Bݡ.a#oٰ?UF&}檩+*brQQMcP?22܇*&Jg_sgʆ^VB=.2dZa`<<Q%8\4x`Tn?t&0xOUtaL6tWA@(wp_G((#*jW>R^TzٸhǙ!KK$df_睤F{(4EoQ  l`TknpsYCXEu$lαY,&߰%Be4QiFmh9d. Iu^BQ +a8:.dG7PQMm8t{pq
-" .H['v`c6ƭӾ Dč&.IJG0pbK+]T+tۯ_] @Q4mb۶m۶m۶bvR1'=w e]&CWfk&uVx~3DX7T&p`\I{ʙC\x+L
-BT&ȝqҶ}]߭ɌCd4r<`ZipW/c$@i~ )m&Ou{
-;)Yu4MhTDa*;cV]`6dߝ ?A?VYZy?VoV<G~nP&rWg*Pxܟ"9nq!šg1TE8>u]$9$R h\1Ts7 W|pSۤ0 .-֢l*i (S5}{IJ}J֕WމzuN##pn^e(Sv̺al0n2|V腭3~X@^rK;Y3cphO+-[sWjʾIxl⭚}(CH=ܼJȷMgJs=)x h}?U~z4YUo湥aZB3kolƲaz1kۈrfȮ<5Fϸ
-P
-MPKDH3bթT;H LFW*y#8{ a,=bBX9JݑB3Au2O}&g8xtNdAT/]`Xǀg\ha oSWUbzRy-CƴM3ZC_߯5 ˠ3a 5sd5*CTN cX8Zd͋{}͙#G7ARo`eJ:s-" ֚*c@(Tєj) %XPvn]NIkOc Y VN -8}XW7:ֹ_Mf' /<6>
-1Rc2i9?eω4ݥ;L0~Y+'X=FmWQ@^l2k>A QXpFcDu~cFaV
-`E|H`5`bV߁صhS!;A`}="LhZ?saLPY,Xs|Z,}" FOުf%h<1 
-֛J+MʤOb \s*:!J/TvBZ̚Lߍ(̐9y\9YD3_[%Z'WFg#ʾBQ>
-taH-TPs
-6ً3Ru{؋`<G!MVIeAdG MHwY+f"$t uJROHڅ$(L^&*/y5,cܞ{b~76k}xGКmoug5
-jaw*<,PCyE[}G@fut{u_n:]L뤈-~݋4jbP&Gʖ9qA6!^! M캥M͞>`Eki΃(RDda8ow7JK~@
-CEZ[#ɳ nfQ5-
-/ :p}yŽ@H3 ~xUmQDɡ%#\MFgcMX3즥25tn_=AM1-
-nV9CVim{`q _n\`'l`H-s `XHC^g7F8|ݖ͌x ƾ_h%}ioӇ*)v6̾:v{1;4P(J@%x<!78b<5.><
-9P@O L 4 ;y ]vl|i=P$|soܨTռ]IWɹ` =-R) ,N@2~hRuP:\o;f2;YGQ. -[}α9VzΆL:Rb6&Md!U ꡲks]5h&r,{KvzC0ƎK!7Zk%@@ش ܁wMVa H]ryIR=, 6) wpXoKU ›??Q#OJ.=`<7CxF~Z#P8 <,=|JuܷWL~>TwUV|+GdbWTO\H%~^qG+}&~IK25?0' d s6!lu/ܪ4sSגʪlo5J[̫*UpP3(k"iuMg8‹P]MZ6 ߼M藨"e7&F?~b{hqZü1?C.N\{$',\ L}_pg3Yv1
-%tNX=hC,fv mzB9Xpj-}*
- TWOk-A!]I֙
-nHBkΗU=I.I7ѷsl?xyU"ha17^aE=is68Ʒq r虏|ZNm1()+uF_²rG&4Xq@c=dulNⷺq}Q{NdN
-O9ޛe,#uvX3]v=Zv7R-+xv>D*M\6жX0@sBzGtO@2ϙ QRf[\#E˔35mpk*,^PG
-&mUS3[yvx*ٔ+/}0͂h%VYn.o~I
-2@PCm7A ꂽ7=XP'C1_A.Y9Il]<NE.ѓw ܁J;ًkyC2)rڮeX +3XL0+wG)m36q7M^tNmj1_6I$;RHCM;ԠgecKEMMV4J
-P
-iҶ gm,x} 0J
-AA-eQ%mcs/&xb䓿r`RG.'6Ej+ip.OK0!<'XrY1c] Mk^ܚۻ<a9B>HX6"}ҷ?IӡS癶JFqWې.:h֝!p9;d,RzFom RR%zfԷW
-XVJHc_Ta8<wizؑ%/U$cHtEDGWbI/{Rmٽ?r;Ԣ'Xv{ ^+B/BJ
-b<3qۏ7'X̤stf
-LO-]TS/+ rdxڄfÙ!hQ! 5&:Ib*/4*!(m˩OK,x'V,KF[V?UD) Grk@qf0eD\=uzIhY,"`;Yy>=Y};)UH7?w@3"8H(S9^ <TcG ÚZ_7,[ .+g$\)8TJ8Bp(Uj4
- DmpI0yK%Z<]E42@E7>e6FTnhƂ{wx?]r6&U|[ {]MP*Qf`kU5vEV{2'c #
-*)Jiu7b_xN #yy_x[yߘRrULO'wQBC&մ$?2
-hV=:ޡ#| W/x͟ه4t`}E:GQѮFG %r[}L_ #K: ^ t~K $SNY)>~ukϢ|Q95%a˳/?>I솨>AU**,L(^tUm˛@Z5yPnn$7mz϶eB(˜o
-vkHEQ.ێ#N7
-Me2;rG5|%FLM/zB.>0
- 5H,w~G)ڼ6L&s7o<07[!i̴1H`&{K)54t P&ѻߡh,h*іh+p3VhP6F
-C݄4G[m R
-60h墤`\->$K,ᐖ{i c쯑T1¬u`Shi [9 R!t0n#ȥa
-1cL oH[} Occ;oJk<MLH=qu\K3jvpAFުW噌"Ɨtp{5kv_tۘz2 Hb6F'$5q0㺲/0$+~Qʇj|fg˜FdՍ0HwSUX{"j(F}g 7m"\&f.) a;x,C#m=aHD۔oY"T>CBYda*JP߰yȋ5W?NgG]KrʮVa0i"G eޙ#9S(iHL۠2E/><ЧWtT5.0s2,>!ՍQG0B7Hp/Zo+r\n`{5&Ī}giW[C4<rVk[olwǹ78vvuӻwmטuy/➡m/K%b;{RF(>'4/(^v
-8-6 3Qi;hZpaH߄%>{}da!`XnI;4>~E%;L>-r 7g֒qbG3D$J0+-ԟ2v[oݗȓÙLg`@`r%4Z.Gx tӌڤ;b_,x"f)./6N@t{{ʎ0Ld3I"EdDI|H>ce\;OzcT
-ڻp}*}
-.m`FM=4 t0l4FF?KF0W.Ie5KjZ2Q)ǁ ohOg*5C'蠆T{LkeZ- y/ FAt`nQbE#&GNut(_ΗX(0$b%؁CJѽ"xkzA 3'/3'Eߏ_h(ӷU|hA'W"?J4,SK\f8ͬF$.v1Ӻ_ <Tc-HoO6;
-*D%&iLk((T%O<8:a˰J]ؓf4(_;-! vjʗ̀~!goM!"]܏ԫ6!P1 :Hb[l%,ŧ
-)d$K?szf%"\aByG8Pr<U1(t ZnD@=>%tjbi-}[vRXb|V8b';i!MFQM!@gD_A?PJ>_>k\x#ٗX3WXEDL+ixOs[龙#娞"$?|AbG.e
-4@J'e矰41ry[gzACycAFojF{w\+,&Fv$xTm Er]ԯ6.&{&;wiH
-ZȲǼ
-Q[~]x<1\e\^l?ըi?5|JX 4T}~0* _xnn SZѵ(`_
-endstream
+118 0 obj
+<< /Title 119 0 R /A 116 0 R /Parent 11609 0 R /Prev 114 0 R /Next 122 0 R >>
endobj
-11673 0 obj
-<< /Type /FontDescriptor /FontName /IATCRU+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -9 /StemV 89 /XHeight 431 /CharSet( /a /c /e /equal /f /hyphen /i /j /k /l /m /n /o /p /parenleft /parenright /s /t /u /v /x /y) /FontFile 11674 0 R >>
+114 0 obj
+<< /Title 115 0 R /A 112 0 R /Parent 11609 0 R /Prev 110 0 R /Next 118 0 R >>
endobj
-11676 0 obj
-<< /Length1 2065 /Length2 17708 /Length3 0 /Filter /FlateDecode /Length 18980 >>
-stream
-xڴeTʶ5h !84];[>s tϥVͪ2!PƉ #l`H4u2p
-+;:eU Z
-̇ldm?cCWzB2
-t0
-NFfolLIqc1CF6@GG
-<aAbEw~#I_r|\o xl9Õ4sW$Ivyt:\s`ꀚ h"^_~7go1` 'Gi۾E˴sJM2:H5O|BxGf[%}x-ۚ\t[=HKvDmڧgr+SwdkC߳ 0oj>z˦|cMKk\ /2j(::3" ӲNTz4) o5~DuàZ I-#ilBFU*C s %? yi l)y4^о$=>f^xtanv~ǠZ02Is_k=s/*yyϲw1[CE_ʒf-ouLڵu*Qp+r0(%[m`Tp뚮v0&yUaG&t؈ PD`>t9tq?MW\1s})L}`VUH%(SH֌)ZFsǕV=X5:Ŝ:Y*M.GcF. /do:K~dۀ2?jW=3ewhWUf(}
-̯ʾ%:ղ3vݻ
-˜f
-Bl0r z8~9\wP(i3tAcg)etOhcPvxNXKo+XaL<.SsQ͠FHAAs0Y;zFteH;5v*nY}q!ٹ\v-Wޛ$c)YZ* KY1BaR6 f
-H\Aƃl!Go~c03_:
-_y8Š= [to<9]Y s5C&UlYh簠+{>39nt2RڡmMD
-4u"aւbKs-MxTS?[{R܁YRBlJ qN ,C޸_2ʩw[=*/ (\M9L%L]&yHY a\xsZ]0.o@۸@= ½.\G#Y͎zj;p)od/HNyJpU!ZϦ2݄<'|YEs}fx]CRsdg]۬s Wr1}LK7(#6I1,q]Ġƶe`p+}`C.qw S
-ݼԗ;p"u;1׻ffC-j+ǹ)#BH>bՠð[gzzHʍC´q\QS0Jw/ujpOp0M=צ]@"o`.TvaFqGzq`gm5f/I>A`ٝJ\#O1hMK|BVscr  B] WDG&@e}9:CU}߅սO޵mhO,S#M b% ;}fy[ȕX5Z`Xw&|'"V́I\.g3_̬j6x p;ؾ P<Mݒ6ڕztrw8a_t; 1&3Aj
-(%ލ8uIe">S]G%MI,ʮ,[L<OO$ ؟I%V| n2Uq[t1
- ؔ .ޕLb^9(ILQgTAN&5_b>mI%)Dkn"^Lwp:W\qb+"Bih0Qqg/IcqÂ߷kXڗrRTRw\hxg07g~c=`I2u<¯]3 \n
-T[~@WEk"(d?"Un,$ʯv#T᧳T>"$R\13~+ )c&R<OLyǑ5&}oe$I
-3$CMW3U!lk8{W0vbc.CM{2Sd]6 2/=\9{whl4M)1cZIb.QaaC&U;vi1ҕnk$x>0rx9!2K<`SI iOܢֲ-ބ8ӭARw{g C{`w{ٻ=a41D߷(^C[>Ğbe!cw d*rği׀?t:ٞS_ z@ݵxRބs%jwqL̘:?;yC-Ђ\~׹X.C *_E\=#).<$:i8JN[,)!Eu4cQJB"U5x巉Dd<j']AgilEk_r[O 4^|U?ZM ] 3X
-@I ḣDYvJk<=qw`ŦxjQ ?cOI{%3lWECܔ:ͷy&%1eŠޝvP_Co>0uSkӤ~}EZ^?S*Yz$jy#r^!&v$P>yĴLA
-3wbUT#W85S;OEؚjrYEq'fG?9Ԩ﬎ 㵅RQK9NwdM_gXL1.<$5A.OLgcΎXM9'~h p9LsKqtIj^.|BPYn2Dꡁ`p?2{](rKkEܱ@F6 xfZօ913z #łb7,\ǸWt 3bB.IU01(<b 15܏K ((I2.PΆd*I7JT u.v
- -Ȇ Y-w+,rczsye^8PQ<*؉Zbj
-R]/{i'{pKلĄ~E v^W-8g)#ij[= ϳJk<N:>SIfp+B-RC[/7s177$}?Wbb3ݽir7zBLZPR1مn 3ϣ3jպ['9PFc,հRJ|KCjz)G"bAXkMTbHg^I8 s
-PhCޖE3grGV{F{82TɅ)HNF:2ޔ7.q5\h9ts*RuqKDj*k/Kơqew"=B:~ڏ}=#_+ʕ?$%7e4t3KǩR̀_͹/EԏMBXyHjoVo*3?MhPҘVF!wX B~ouBr%wnΝ3/+ݏ$؂ަhf%6cMI~4mJ?*cO M{}uzꋣ" a^Max)Xh(<W@^.2j>ʈϰ
-XpqXP
-qI
-E~|ΚekOق
-_#%窧tR ^?DˏSSN
-(;F?YBq\\(>Iwb,bteխcW/eL]%!Nwm54fM3ϋhCwZofX0 0
-Q|sFK#M̰p R{^G ^pG @MN^E;]殍Dox LKygh08#"?}UӺ񸅏
-46i3]sAIn15*1Hm8gt"|}r/.#~Yd}0ͥ'(h!<j.: 7:1Yt fQDϞ*ww,lM w {>aus0_l{%m*ĩ{~E;{R|Hi3A2coS}YX;A}xYakyJ220_ Xƴ]hmxRasUYԹsDҮ2ؠ:uh U̯)hMܫd^q 8S4@/0΂[&|ݩcU4mqܞQHEљTUThꅂxzf:I@|عW:'/}hZX?
-f7g~ˇ6 O/$uKhf=Sޟ6{{o  qH {D} v er ,I#+l_|*+whK2Ago>[kl"vaXvoi}wޱ\Rp2ujHYR_@Ϊm*_y0]
-Xc7g㧔?JŝYD2 $Q2uH U~NƖ4fH,s]H?..R<(U!F}N .yѕi\l k3VT֪*)xA]岸ĥzgIFȴO ܁u'̺O݄v"}hXv׌zo.I'C#b%Z _EŰ3/M1&X_7Nvra.gg=ljQa "'b 2<#ʤ_ַjlܟO4Q֫5ƌu,W덡`yF6:\,m~\Ln}z=6퐦ȭUE|;HҼӗ=tGPhf0dQ|GRpƧ>s=R"ۂS8ôEk#[P~qļۊ)ad OX S/l/+EcÉE ]9'.Hg.~H8vCҧ`rOHM"kίE}=kҫ!f
-c3w ť]Y8&d g.iK(5!fU'M*OsV6Ur$ęrA5 Ȑ7tKʡ۲_K9mj&F(_ i{uJGYJGN4ÙaS6T%X:b(*^}j6~kSR/.GϢuq_B| HψmOExP(I[ݺW~PcUuAt1H Wf5dꨳS UD=&LDBkf1~_QzSȐr;
-_*
-"9"uiH6 1 5bf޹r)UV 3}Pd[ m"qۦ]&hy@ Aޯq])-Թ&V1)KEWjϤײQՖKwCtu_*XfWNFi%VHYKK9#qy:(. D:!]Мw/|K"( zVoO'W|qtm
-i]Srxm>h@s * ҋcuq@d+ayހkHr6qێq\q4:.$˺=I!VG!<ph!ZHQhpiLu_٬qF3Sja%v-nP#"[a84QV1ݩ*D.._b^GAb"2N("6={.>Kk/|f%n>WfcYh'!_[n8ę;x~_ ŢG^*Z, pWSd&3͈{ZYGWi 
--+oG ߽2B:Gw45R KnfQrki PY)cw6&1[fEpQ4WôLM:!SJY3O#i_HIcscIŨ/9e̢ʮ*Giun+#쩴!lxumd~!{tM"me[^K:4t7tN5}Wٲ 9 {7N!/C#rHE3FO`U_{ȔL*B/ὙqC!.#YJVEDZXȵBsr{_:[ŰqD2K?E{B`V3斷dV΍Y'ܞTQy E`<ԭ5e}3tr,OxߍA50;)TO_s?l7 XkK?\ C(u}ж'OQv!ă$iױ-}$u!v;U¥8VAc# .%Y.Ckjwveٷw, WqZ+!"VQ&Vw2吱n(
-3Gw
--k OVarEzXg ݰVG?[tCĹ3\ˈ}2
- ?łqcrxZEe9lf] gRGOfxE%B2έ~0yVI%z%.>ZP_4=0Rc<T\-M
-B=NqXYr~Mt m]@[M;,;(۞>p4A}`] tgJ\9Sk1 7U\.v9I8dz6Y0pe6t(Q}M*g<"Yci\tѩ#BBG x9)AWT炝]%qRla rH@Ĩo!q9)<ݲ:9V|{
-Lcgdx73B 9yKחk\&EU,W6EXYl3w{}5;:.9o|IZlͰ >$quq {3I +as>- ['-IΛiQhKfӧ9 _/O4
-
-
-Mg|@f*oũnx(TQ%3J_;x̔Mߎ9VWlW`L:K^Q*<cCe).ESK;A~kpBk9a#TIs&Gi031!ѣ8p"{ [:e&~7+ -9|cvD\"Zx=y&f5c:6kib>rz2S=_0YRi
-|qb%ʲNYL`[ExZ46x,uuz!naH/1_8}ݹ>w^M O8u4$v)Bjav'C'ǖ;S n|?lSg"i0, c?}A90XUɃ):ԓu“M -_-ƭ |b)Y7O4Qp-KŐ- #}eaվ!0af;5m
-+p;HMPl/}5Xr-tk!lɓІ/Zއ3 q)9"M^֎wfvRx.Is/5{eC7蝟 ))ܴ"1jǚu|6}"h-#䵛ֲ%?c0`*S
-`/iVT\,y$ߟD~2]FǏl|YUĴOM曠$Ë͗x^
-fy$T#/5 -Hu [HNRvc :j)w \VA&dRѐNIgt]> Ag<+xhg6Ld+0d],SX wYBƦQY6}cHez@X1t
-s߅\Z+Ca޷ XW^3]QU|. {ml+jG%x_eG>ӳp-= CR@tZ7wkcCM.I|%Ly`xj#;zag$+[v-ٗoI2O
-e`;U\Ƅ( =eAFoP;rhYzl}l!~Tpro@2|D׿m]F;КR' pH}ٗ.'<Rb25S5@CBjkkC{EW_"gSz`)L'X+?y4OsQJpiA!f k~aSo)zfWC54HϫM"NASP)4sfR=ZyéyDcFXD~Zcx Y,1Lg}DQd!$@ÓU!fbm{NRzW!И%;9
-P?,sĩ}Z.](4 M+
-10کG՟0FNbZ'CV}12ٹBJ?P!SDܞsь33
- w=z="׍Eqt> %ʆ,;KH5x?nhBZxMfVRf7iމ6\t">őB1w%P.rΊ Z'4DETBbm;FHq#Y\@UJ% ~ CHHWW34's~>5Q0]Ӽӕ^UXV#فMDJr_ێ/PYY{^lCW[b}\ShJԞ2hE}1"}̒}/|$s\Feog.E@0bן'&85Uݡiq&$n,c;aTÞ2
-z|'k@΋+V+>hN
-;?%^Kx+)=R@N<5Zњl|1il>r2XnL%By_uyd&eI߫(0#u7yVrcd2 ݹGCK,_ۅрŊn<.Zg]ݥF B/I+ZLKi&G4]va$t=J |I鈫axn2#? P(v*wmRJv/B.͎4A]4"~{ȁv c᯿7qb9 1$I05`̧F$ٶWܗZ0j;3XM
-`X79> 8r- "6YX8vG|[X5{JrW5J7|bσ
-Dw:V7F10$PHZܚ}qiGd:.2Ҕ2힂A!Dd\NjBF$ﻛBB;7P43:YȒW7eF9_eʩ\3hd(w
- O#|'㻻iע`-asuZ9K2iЇD|ޥRC'9c*$"7XДDgl/uDqH˒e908<1U kx&BӴVOTR侴 Ӝ<aWi)րȶOL'dr9#;p"WH %o ]tH4I4efŃ$%ʨ9<wZ{}lga'mVEf;x5_b[O3xNǟ9WJDC:M`WqR"Бe 'L;"sp
-mI2ܴ [{E'32O5GbzQCE Ĥ_2Vp!YuZݡŎm<rrlAUK&Up" .ّfW+=14YȎd5.@-[`50z~宸Nԓarug+lNkhP'⏵쁆)um Z11-}B{sWvk^Eᕽv
- Z8j.GA<MĖy`JӋpP Yrj#la MA-g{g- ̋*oE[6s$_.ZMqX(Tה
-b @_4׀nh|h{ <ߔH}^B/Xi|IGQO~^&>\er+&Wž˪i!Y2(yG5ҾErm\XdӅpdh/Sw&qmV5tQs(ǥ
-<{JBo5L?Vl7(L^O
-f֏8a$) a8MVɡb#:?2Es`yPU;X14i2Lj8}z U샭6ѫK}x#7Hٗrʛ Ňu;Zх v# ~S 7mKۺ&N_(+GuuY
-nB
-R}ia.^i,ԨLU/Wϻlei9,
-_P&T9q o/ֶa$
-+kIU۩QXʧ)IW-
-4
-YV]':qfo݄G(
-i%%bL Ekʗ1G#>\ ¢! rlS@!j8I?O`ōǬ4d'k{>b$
-Rz;pBg5Ϣ1`é%S +DƥnQIgS${#ш$2[#caQ6&F[ߝ oTg>~PW;2
-?FHN?E/)#􈱗ŵQN;\}jk>H-44Bs1 pg
-ٞTJ0[*"`X ` X_ Ti2C{5R}d [VAߦK.)DfQC~GjS-_Dj^@oc]H!1;;1"c%|,':m `\
- uxT!!d6ߪH~d h;7zcJ(~RP!uq%IT'RImTNj/ ^ =䅷vS5髈L 0Iorx%”õ
-
-󹬞"Upwq@Ow}XL!cu(w)kO5!9a=sb k(j?P,EƝ{n> ՅcKN%U#$QAK>ICQU7yѸ!۶%0]zqyoRLhc=.2hEeC8"NqfAΗ-5T)-[
-endstream
+110 0 obj
+<< /Title 111 0 R /A 108 0 R /Parent 11609 0 R /Prev 106 0 R /Next 114 0 R >>
endobj
-11675 0 obj
-<< /Type /FontDescriptor /FontName /DXGFLV+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet( /a /b /c /d /e /f /ff /fl /four /g /h /hyphen /i /k /l /m /n /o /one /p /r /s /t /three /two /u /v /w /x /y) /FontFile 11676 0 R >>
+106 0 obj
+<< /Title 107 0 R /A 104 0 R /Parent 11609 0 R /Prev 102 0 R /Next 110 0 R >>
endobj
-11678 0 obj
-<< /Length1 1754 /Length2 13064 /Length3 0 /Filter /FlateDecode /Length 14154 >>
-stream
-xڵzeT۶6Npwwŋ$+.-.šPh#FFf\zJFQdY
-
-ȮPy*
-xU ڿ +@UΫp9-)-wr\
-'w?P:Ƀ6:Boc@t[[sb߽S89Ζ`s0` bA @?Ln[K^Wfo;f ql}ٖ gw;w
-
-
-rs2wo`+_/l|ݔT񕷯gݟ WJZ:8_a_.CEM_EZp/79gK `fJn>>/+^1 
-
-Et__;ݖF?辋|H6ԶZY:Ղ㵄EI4 ~Kxo'yά(`\X7C|c~^MzGq\xFŏ$D&<\t(4 @5zV@ZvAe 1qW(Yn=3⯂o;X؈]ָ1!Ѧc%
-{gf”rsJE{қTl<QX}/_hcҭ&YY Qˮw?'Glp "B>OτA(f
-lJtfgmYQ;Ǎk߅Gُٗ&11m\eݷ~q:\ /Z+''n#:u| ,4b
-ChdѱDsފ Q@ l A ǩiY/gGbBVu]dcv/uV:&t,#QC<f)jV٩a14S/<'5LǕlyl7R/-
-aYg)`e˧
-є+*&W.=(ߞ-"/.vztu}8o>f}G
-omXߠ:ë[j," d uw(?g'`O*3˹3W
-6kcHIdo#SSrꖅ|GNP]zRS1cࣗ4iH>Adtpj.4o\EI_!h jJ7dtů]JŢ0g\
-2E`gA0*!gooe1m܄>oZs1;4W1!]oxDBR݉~Br4/Miw Q0BEܭt*ۓsYi
-H khriDٛ]\p!\z/St70#28bf5vzP VkHm~YB!2ª7a|դf"ӲGroeSEXG@NnKX6K 1i) !~6ԛhK#fz<`wCGe3 ^O/V]= YM8*k@,YU
-5u(s֓;CA^&i t1SJ Sk̳&>Nz\*y|PII:D+*9GÎPȵ^w,F6d:J<JyعknQI#vQw@Y4_@̿LgRg c.n>cmߟ'@:<;u)4&{\[7yXGQz"w`TzkѢ=-+V|uӷeѲ`'Vez.mlgR+ha[kƿ9Į!Ys,vϦr[*$ϫ=uՂAC^gHiS+܌|`@ѐ 2*B #G6HDuXURlV~&ZLW݆jCC?ؑp&:%mIg݀TIQB2ڤJxec03`y4PSut#e\1{$뚘w@C^FoAjXY^Y^Vܲai=]^6?O[VqZi@V&pcv;K^՜m>.zG"ƨO{]]%mޔ<(5.y Ս ^c2(̋O
-LOt
-qٽiSxl1QԷ{g.ۼfYǓ4:@ ,-3{]F찪 FmBb24>NI)3xhh]u$ˇźX?yϊ=,4|{ +1 N7.+ ^:QsCیm*GNL.;!ߙ:[/`
-p`E)Wem5aҊse{҈aFo͗{RK4 ]nV<K^Awa(f#%uGr&NJHﺸ[ebBYY]RN|&
-@Ċ\PiUpHɟv`l͕H6t8^W Vm яrhH6o0ǃZ(|ؠ/vokbrL8Aõ6;)9n&8X>+†ˊмԔ`>?!7DŰC 3Wq魫58Z'g2 f<2% FR&ajSdb(*p<SѾ\cXF0! NI4=`I/{mfHӛkx!,E/JH\qza4 hG<qwk55BgŤ{]is*]xI4rN OtЭG$њc)%^쌓([;>fr)wd*Jx#aJo}_1m\5ٌlLOq~2?.LDBpX^d$&"qﭾ*W*-CRQ`*+CW0xrhcWyBn;B
-=)oNA~rs‘_u([as.*
-4#+%=cdM͇('d.SëcF1
-ۤΨX]4{`Tq{6hyr}UV櫇 tċ“sϥOhX+}blv-4uqyf17>8s;1S}@{_ؾLKR~=1Tl
-%寖$ҷ
-ہ=51wZ > 5 I@Le>m
-.=γ`c iϮp7S +o(8"Ԧ~t`9"B p!n)}t&Qk(YB3d
-*-JɂkmS 39x
-{jy%S|o:zozF|Q{6{ofyuvVZt*.hy3nBf 9pL0b’"TwF`Dė:{f׽37V-ލ^'A,Ya̤˿=Pb1=޷d 3|gPgZyB-
-rOU3䳔"fk/u;Vi'rbLo7̬.:U,*a^X\s.aձyƤָ`9T5+DE
-؎(e
- 1l%dL끪y W֬jN-_~J0YPLP"CKx/ȵ9҃}4ݷuRἭEG5ۆyGзBN`(<01(҃yFMh=
-O!UES}Q
-R Pv4լ?j`7T@K@H=4H/7$b詻7x 6 2j;9vdr\'qNb}t{T? l#sDh m|B@"D/L+#'`s<IuG":cRݵ.xg`L$MEdoÏ eY&]b'jr''TAb'Et5ķ.n8{ EyyV9eLGc NdcEVGtK$7]<0\}F îu(\xز$= Fs٩fSD8S f6%ʵ K !q<MMpZU5qE"UUi@Sn)Z,5<Wu%L^s| kLжȌFpT.;{c?\DNv)fw Ts* "U _5IH[_
-3iOsI"XL
-wprFD'U%?
-(cSwg8DͮzSLX|L㳫ͱU7.gh_F9 Ob olpK14I )F41E p )$\/Ǐa%.? 2wxWC*猝
-#
-O+ iIihG&EyS2A
-6T S^Q0;{i#\JgA"K##;vkp
-]/X7qLi_4A$gc>D'7.~M2¢OjXїͽ=M?󒑰Dz(o>s K nNp1Cw'S{lZl#|?R'9{ ۶A#=A퉒w[e孙ZOm)rv92AŘ`r3!`
-Eblrq:5*A{y)c,V|gŠH9dD)g<+B)T_+B!˰+
-wiqsSuSBU_UCA Eˏv6ݎ*Rdt^#
-+
-Vuu
-& #ۛ ֩!D;}RhQ@Q>[>Qjƿ<Nz\‰`-scZrKT0
-N:pD& [M[sHOAQQBv֘Հ V}"]X\fHy \0]ҩ
- e:d7Tyk fCt,:{P6)S}X[fC. G;hh=2
-Nv0qthDBAںWaEfz{2xu$}+AE''U=Ebin#(GZɒ^'+&(T-2jJ4`m;Z8#F
-T6WAv=T3\ OO,eI
-,a|I uFOX`eN!bo>c>ts{]GTqG!@@_noI|pni'&` Jew.%e:ݽ:rCar1RfuS4dImh__j, kg=}?¸xϖ
-\$(Հ\ sZdkЄv>ݴ &K(-^ 髙B1?VZ>&DLP/4+_f¦v#p4_PQ~Grj7JY1bZXhu;̶Z]E ~k%TZmI2V=:h6wd;0\,#PDTHBg|ܝ6d+r
-.껻Y8F ׺7<GB;7cZ;Q^ecw6(N\1+SȬ!Ac%U_vyܕ
-L|*Axw3Rk2KX)<qGNa({rG#򿼟QC.}`0O $jZ붭Fh>d,h}ǂVrr+ bZGf?f ͆v9>ڹRGl5ZR쥘|^$.0: GdpaRc88P^h.`0'(^!=CsxygF0IF|r7f4Um-ۋh.Բ>؍oI$b/8xE6饪s67r-+?qЙZȧq}S+<E@!YYۡ8x{ݖRznKia䥇a
-)92u?qՏ߱ƕ/m7  f:N?w4›+<o
-<}ʤ}PwnՊxZǀf\1]e!5nV*98j><$Z;Q(5\Wd{n7QrAADX7nE2=U]G5+;ror_bfML<c f5O_~bgaexqYx_V̓V&)(h䲣pO־=Tv6R<uGHQ^ bA~|Aoq==z'(lţg#/
-endstream
+102 0 obj
+<< /Title 103 0 R /A 100 0 R /Parent 11609 0 R /Prev 98 0 R /Next 106 0 R >>
endobj
-11677 0 obj
-<< /Type /FontDescriptor /FontName /MOYMBT+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 705 /CapHeight 705 /Descent -195 /ItalicAngle 0 /StemV 76 /XHeight 430 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11678 0 R >>
+98 0 obj
+<< /Title 99 0 R /A 96 0 R /Parent 11609 0 R /Prev 94 0 R /Next 102 0 R >>
endobj
-11680 0 obj
-<< /Length1 1918 /Length2 13058 /Length3 0 /Filter /FlateDecode /Length 14258 >>
-stream
-xڵxeT˶-N]6X#AKp !@ܳy Xs٬YtTl`K)PQնpv`z8Z99yP݀YC
-w%!9%`!2p|獶ӗ֚z캡9+ULGJE<s9
-Yu'=ewbַE~j&{>QKz%;6KߛYw2M쾪XOm`X {OVBE}dGc*A{"Y46%3bV[9zW`!t}5iGb /'qSY/T< Wzq;aV͝ftGT??˴%DmPժ#H/ x^sLn1[B^:5wŲdj@8PfWqħj2G@.]Z̗:X)9qb,ҥ_9y33༛&g$H4)C .giQ* ]+śFꭶ&gK]NvLۣxs?+ArlgƔؕ{`;~c 5HݎI:ʆ!܁_q  9 "͗c>O|֐^R9C톧FSI1GO(6Ⴤ3Hyb+뱨;H٘S/Us.Ek &0cNSX~Gl*[`Ģkati,&M&.LmN aeA}u
- ߃6g)_(Ҡ@Џ]/?r:YӝVBѩ (9,ksM?szg,GSU.I틏d,nFd,AdåJC?;%hm@A~3 æϏun:& ۞EWBL"k׍Due(6}ޯ^F(IH i+TC#: tW Jܐ8LށPizr>=o0RG>Mphux>^`wXLLDRi=89$f8LL0
-K6=tNqC$ʏDC|. 4 pbq<.3(*w
-vʛJ|O=,d[7pFZ;∂lq!-/N 5U˘KaM
-%$r0H(_|-|86%}oz\tVQ".' N%AБgG;vslS:;HAOAʴX'&]
-C >p`r{<ޚCJ}4i2/8 
-%^6"{a4L.bT=',=`_< ~gu{" U~Ny <׆>ӓ2 Dۥxo\ r>W@V lڊfJ/HXo=uLm7{1 Sc~{ #(I}΄ɯf`B[hDX1JExwN =0\v6yw3?~Oh979 ;b) yj#$%ضpɔwwԊAق
-F'ɕv uI#ص^3Oγ+[l 7"POLjƉ ]i[vjInU:1Ծ,DXl2a;"'|݂g[EkHG}9<ja?κ|, 1e5t- %g^c7o.a3WL oZ
-o 'R[
-3\*1J!"L5ᮣ)4&|BEYN'0cb޶s_̆;ƕ-ke ~ ,Ef,TvN`Ҽ?߅zl*.G"\K6Bo <͠|=+BD\j76 Ԓن/YUd}M'l{(Ѷ<£YӢ}beg" Knr
-zYL^w^A~UBluaE[h%sxӭuѼF`#W;O$"ޔ᝗ƺ˜nŬv
-ѾA/SmP5y;d%[+uʧfJ%GF2GSL$vţiz6
-rqW`wjQ#1/yZiuqW "@؂%i)F+ޖ.)ݮXQ䒾T_\hr;C,ͽ4<~<ۻ&58jW+(sl\u^[yҴt@r]*wlL6?tK]ˁ 'C6_W%UpH7yoZYɓ/09<.}dܢwb^:Ǔjv]Ąȁ}<0,T\˳Va dZEP>U<l K4FL3F08*3LkT2|T["/a$])#C~xs4v9FC7ow:%'eZJLt>(P~=D'M,I
-EI(H' %Pqg B_X&,)2Heыa$! IY'Qv?؅wMvdCA< &ڦhS
-+c{4vVyglxdRaxRJ9L5gh6I#}֛~Fz/lBE˓>}\< 'W׭ 3O$Ss+vE?)I{B3-L%d|!ܒ-ǩ>mf[zJHz}l<w]`]үE=^NQ"g9.߁}ve
-
-rzD1ȇ.!b.cPlTNdbֱ{Dhcwɑ_DjT; #mP_S(o49m-^- 9[
-[ZQxk]$`־^!%RӤ7[2ћi6ُ^6>`9}Zd,o!rwa×|ۑ] &UotNs9 5 XFJ`͎YuLO?b7%K'~R:ibHI<˱ 6y{<Ŭٻ OI]МpFܜ)ON' Ӟ!p%)7K'j8H"9O-Us97Kєϵ `:@$kӖ#&oVuy-u~
-t9[iO:.<'kޔ?P'sOQUxTV@#S{/&zx5𑵳~ǹsյ%5&g^M`z7` :Q/w 5GdsgCWwN ͤV_w۽FIz<p'mV !a]ȜP$CZp^lgz3כ3۩?ge~$:ݝiÄ_| <kcRʛ1zyD[F1mf'K'{>!65%QPG1ǻf~vvc ]ى`QrJ YDӻ[eUQhrm[bg6l
- em#?L]~$\dsaWNWlQ)6 USR
-3\ҡn5$u['w*S(; v1X=̇k?d\c4rk;hYwW=P?;:U ĆN21gPbO ) CWӓ,)uV%$V)'U"mQۏ1fljV;Ήz
-tw?>[\cls?O{
-ݓ½Sk6cb[:bx(IHxN ں*Ba`xZ]JB/8JhzzK*_^[tW Wki`"i{A9p3umCdڵ5 Ze螻4
-2*ȑF
-*roJ~:u+杖S=1oܠ8fy芙!`\{ԒJGK=0Sh:.q_2\sv'H-}p]OI<wW Fr125]YD_JtȰy*;fF+K#k ϳZPwnv7@bxi;
-p1?G#
-YO,vQ>%uOoIjca#iƻC 6e+%8l$<t~xQ8{"5.n16<3 -tbzK5іBPtfKu
-;R#+<,dߏݴ)1)gAQ 1g-&h?|I5p9>FYُwT@D[ aO^Me" V(2ST;ƙ S6])y:gS -,?5N(q'>GyJ"?Y u9:A1QI촂xZV1æҨ;MX.Y!+pOsɵY=QcLcDv)K~b fѭ
-3/zGis5S5n4ӫuܿU<G=+4,ʷ̨I.ƕXӶpXl!֮}xXA>F9J: Z@: "rQ=*QOl佄F'@S'rӮM܆aٙ5
-!#تPL^@I 
-m;aVr54̰YޓU>\tCHNCuu.UO%C fLE)7
-[;.1ws®›f'}#]\сo G oR{Zܶh0&u'R)\e4`MGO$ 0
-}RH|eu{ھgBio*!Thl5ƒ]اblX'WO=nf/1*2NUo]_ؓ}0mCփ4ݹF%gP\d""6!PSܑDkjix_~ݨ HImfNW
-CF74s 39ӥ/nl-n]61AMd}ŏx3Nw? m~5uhN6W)l)C(_υFH"q><Qx;HW[kve=B<H!r 3̤ⷘ^V*KթǗ1ҳl#ee{fcv^FwW}Y(dv-N-(kTsDFw/ZdGc]vb(KotE:fwkffC‡v!c,*fb5?u`I0O7CR_R۔%F\&߭s{ggШ#cJlf.t4\FkHi^
-x2SFl$y84LV
-Caxda[G.kB(g"w.@l
-k$5-Oz`¿1)j` +Ѭz?fCo(-vP@_U~l< g 25H
-%>Yi]!+^PhpmzΩL"pΑ*7M9 oss~KI{ ۺa,щqKL뀓yVa$>v+[2,|sS*­Щ\SIhBԐ­&z"Ru5ąKKc]A?6Y
-it=z-Iˍ IYP#2%kbߺ@0D9NxfoJ2/ =n';#˫$AM ):ۧ ew䁊D
-]ɯ6)tW3Ttvk/e[?4u
-o`Pbd)" a&TTfNݢVkcdYePӕD~͋ 4܀I )':;kvy4.QڋPQ=0oO~O4<: ߢ:͓/1\ϓSV eۣaӄ~"Q@Aǵ`_֥ǯD1w"LQ|
-"H,Cy+o>>uS{Dm`ﯾW5K\+tԡ)LZm|(p҄ ִuQ]d'%/?ÍB!}F,v*+,s0/R83OE~pF,ÄA$ɇ J".qnu.rNt; ioeR@ (P'B\;.&Y jᇯdѕ9j\ܖOEWP$>F] XFnv_1fhKH+yPICx<#}}D]4$!^jF2}JA? x+PKRj3!Tϯ-(;8;Q?wG6`uTGS|9,kǓ:4ctM7.3&:d7
-rqʴ҂_"DlԸ6]P3ҹ1`Px[#YW\N(i6'<~ kYnVpl{.Ps+KnQgD`{48k1d{| t["^9Яۻ l`ڕ<'v-yFkG>i3?Ä7YX1 E+ᤩ|}6hp~ X>FEN4k_;9!q~ߌfU?Ux\웺vIȣK#iCU<fƫ'w%0Gu`N^IR3n=}Qn=.Ch?fD
-endstream
+94 0 obj
+<< /Title 95 0 R /A 92 0 R /Parent 11609 0 R /Prev 90 0 R /Next 98 0 R >>
endobj
-11679 0 obj
-<< /Type /FontDescriptor /FontName /MMROMK+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet( /a /c /e /eight /five /four /i /m /n /nine /one /r /seven /six /t /three /two /x /zero) /FontFile 11680 0 R >>
+90 0 obj
+<< /Title 91 0 R /A 88 0 R /Parent 11609 0 R /Prev 86 0 R /Next 94 0 R >>
endobj
-11682 0 obj
-<< /Length1 1748 /Length2 12258 /Length3 0 /Filter /FlateDecode /Length 13383 >>
-stream
-xڵuX[۶>\bHZܭkInťKqEkqѽ'O2|wcP3f i(&
-4
-@S#0KinpvtSC_&-š+36u玙B<^9v9
-:K 
-C,<
-{;üPG?[ `5[` `lo
- "o/׬g"3ۿA/Yi7pQ29ٞ~G8͓ `ykvnn5Lk
-w_
-{윐N)Dc`$Ou<-n1NYc rEP%Ro^vTz/[eb JJI VE(%#_)Ic?nSD(/4_e|e|;F ',c},.iϿ;蝰`zZ5ʒz<% s,),C_KC[2<SaW3U1p
-?C{dE<|"t}e|̆
-Ŷ;_
-ԏ]- n4_/r;Y3&'A. ?0Ww5(D0o՝PϕʜʟJ2r4;U|%_2ffe`bt./0/kVȾq< l`w q*~3eDF<c#+ ]k/Itߦ/o)B~p+pѨkN- /=@tRKofUY\eQ7j=36Nhgn~u۟E~wU~]`,\.jLW83m1MAّ)B~\qDqtE"V}ˍgT'ȕj(s,*h h4]< xU.N߰#%+9tZB>֣ȕu̗KJԚ M31jZ42EO1BKq37h%hklCUќ1:xHuǚXw#^FۯZM!RT&6h84rq&taTE'$@tOlN޳odt`!>8>1Ow&֞
-%ww;|_=4]P?<b\`x b~ԫq)In]GR)+fu2s<1R{`^ ~>M @zM R8PM JJ':65"cΦe.6D]<ݲVjv_/(9^@vLԂX[xCgS7XZ c8ʯKoJN\#Iy)eX<DD"'n!:x{/|Q"\Wܳ™F$6zP'޶SYY9쟫96W.m¸1=c%E3v@je]WR}~P/&XmsŠY,6d-) l_u7ӺTt`1rvAW{W诮F"!gVʽ{DGr-)ZaJOW 2P7_d;-ؕ/x9"4x>&a;Lf p~lMr5pHE~k]5qbJP~rE= AiJ"%C<bna~:,3~H+}۹y\ 2ߑ6G_.a9q}Q.;'])녩Ůtėq(c3
-ĝޛ׵M 4s5 س>]#vqtf[%;HHRPΰ+LFV3Aňy ;#ݴ6kӣGT>cq!k¹RLw<F\{g E&Wv_ {Ag5uS;bl[, sz
- |ƾCR Iv|92=>fd!Y(qVeŃ͢{tczi~cs1^I`gޣ1ioMJ?\%kreH Ved2/u2q- !C&H9޸wF
-I]14ҫ1tDӥi[rX8Ͼ `R4f%YZL7lyT="%LcX^vQ'7?P*4Hrzt<~NPV{樰kwtc]()dl
-Sͻ
-ʀ%*zsQH}PBsK~qE;4V~ n2bj1!h\zL-aXI(PgX ZXw: cbc׫>&à;^D3&$D-<
-ƾp\7 [c70yGZ7
-)%TVx?1Z˝#X[{ #' .$5TGyFIDPv<`aPsү,9Qu ϟvjV} c=b,c8=:4oG)o;M:}xОrgW;D4(u/OR'6A4_^lI
-tU$'2X@s$q?'
-a)͙ /ώ4w:dMVE;y>RlOQ&E"(NRD7 E(JOPg#n~@w{(tiU2CT(盧JHϐ(AYe>+hNHv5qNc5{͇jOIms\}f.zr/?R^¤|YnO|ug6 A.f2ȶYE{ i艱eh5Xn٘oLΙ噝4BHsc%l/pY%?|lR9<ޅv?j9 'P FVRyp+T$_NDSk7ljV?-LbWðj^;l2l΋g;(Lp(U2suR~4荘a1D Lm3^2dO$\E(x`._YLagT6oնݕÛ[6dGn7j~-15IA{eꪡqÚLe؂C]@t+%E > /dNU-FsŹ'>AL#b=u!9"̰u_^Ҳ(%juyҒZ+q
-}b7.OlBQ"GO{4&ɮl_FkYZyaGHCAj KxR0Xfz˪:[E;QR&8i,1|!]$/tw\.bH"g{XC
-婏F*
-Da+^Tk+]ښ+-mHgW/w͌~;ę=+fisc jDnLaѩ*vj>33`ayW:M(k5<g3<SY+ӡmL`YV=9šD%N^tTd>1g+:ZjQzQW*.\c\tÁ֪cMk^24c|D0HUbs Dr.*G^"DRz`:<YЄ%1mෂRUO&
-pSqu
-]<ΥTOҞ`6'DqkWen{m*r‰GP{_|$kT8aHɼ$/(HCrlqV]
-rqOgf{wd;GAOצ;q !VNgs֝4c"*p|U\* дgxj&`{$hu򱏑wEEnN!AݴS/>^6TZC=$~ϰ{ηߗdT;=0OkIXMv:
-Ě#¦Vʑq ^td+zIuYiɾ1J,]hʒΛ(j[ v[
- |T//j(i>R*z։R0IqANd) nX]Ẫy:f9XX }o&ߢ>!evCҌ;\+Z+<GSlZ{ R.Ӟ"t$1rG{_sJ/ޑ0}7df㑯/^JZNi赠&=z:Y,i@{ws݃VވϒMbja֏
-a[˖}@S檋_&=HͪFIWvMt
- Ph0$h(ܥu(PSý?SϡD>EEORNSHw#G44X|] OҢf^d\I(AuE5Fq
-Fw;Q" N8[ EU:!V' u䵠U~xxz{oB 8\ae{Տ́;
-3p mn/@)ga|5 m0d
-3r
-ykEfDzF%?
-
-Ly
-j MJmWw
-Ք/*Q-a*+i[IrȮ{+H3Oc2E#}Ch| GHpZJ?gq\w&Y`kEl,3h](29i~?ڠGLv Wn^
-r4֦G^3yҶ^&U]޽_nϡАrH4R_FH2WC PA8xږ߅<ɣ8ÿkO++ӫLbQ㠦=q#xf4^SqA/V׍5I
-? (&F'Oup|/pUV"5pP'jqgs,ݐqH9Z=|њW}<Q{dyÌLC!T\:2,[5{vR$3(~f6fFA'*n=ڋ.jpPݮH&  J;cN1me |P=˰[ޓ1r( $S(;EޒhV˄$Ynջì
-kN-_6)9F93o;+b_QˈpJ*VBV2Wwv>TQ$-čUE7},SAϗdΦߜ+4gN$x ]ǖ#z<Hx*,Rr}T`E_pY7i !`/Ǒ|Bu(;6+jd½TrIqŞaN0o#eZz#+ġo Tcy 8WWQp}j%]ifpU8|sKQqeG':?9ܨiGxPB[eخLKh֤>0A~$pic?wt#=+sX >%"guKFQ57.9wOppm?ioŅ슨 ÷=ymc.ȅVyTS/j$leG䉒{*( /?=E%<3Aw.",lL2Cy3TrKC"-{E3ѳUVco|B].?~1;RF3k~K& \[TIܸ3Fp7}7cPR۔Y ñy1DlVEiHG #_iHAnދW }J2P$ڢu+>UT:YM4g BZt2 _/'gC?κz\)PQѦR$4-QTQޙӸ/Mv>,9sm
-[1 5U`-hT{N^[h
-y]݈lUNkSFJenl;E0s
-7g.p/O;Mf/@-0Ma(AӋտF!7LqS{r *9? Ip ,%ʩ)MДVLXβR]Jn51oQwq\'JV<h'u,N}
-`(k| "Okz9l63:sw{Zw6
-*_a.Ͻ &9Aa+Zlt})C-ߧ,vB WQ8
-endstream
+86 0 obj
+<< /Title 87 0 R /A 84 0 R /Parent 11609 0 R /Prev 82 0 R /Next 90 0 R >>
endobj
-11681 0 obj
-<< /Type /FontDescriptor /FontName /JJEEWR+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 96 /XHeight 444 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11682 0 R >>
+82 0 obj
+<< /Title 83 0 R /A 80 0 R /Parent 11609 0 R /Prev 78 0 R /Next 86 0 R >>
endobj
-11684 0 obj
-<< /Length1 1716 /Length2 1755 /Length3 0 /Filter /FlateDecode /Length 2818 >>
-stream
-xڵT{<TiM5[L(3cu4 ׉J3d1qɥ*V)]h)]mlWQU)VZSH۟g>gy~i&=11."b$BL3miAp\
-FqX䉍di'%F6P( X?>H %`BHG"8TYW.jdH#w!NIO BxgrQ#8dA4"Uqՙ! X H4J' *8|T:".&q}'%18S)_T:\Ax9Ci|p<bjLlJjhHéH4L()8
-נèwl_dQ'f4ǹYؿ9OiYx}C-gM@.<֝Z}#*϶8yJG&NlnXm|z ~P'?i{?,K憐҅ˇ}+u72ɡK&Tkx~bLUSK{L{`qdVAזNԩmj-xeد-1u?bV,`uI4spjˤ[ݶmkRԇ 扏s q2_k'sSrqe~oq"|qJ&ZBFu>ay3;OӮJ+tnjY]g*1(
-Ŀ*O{3+ԶuW=\~n&ыmb4CuGV |k__/M~SMn81Ѿ[+WKWMSD^$OoB3+} B f1ZNr|SwoK[f,-@$s 䣔F+bw7j 1aǽ< ,khpA%ZS
-'
-<Lt76n89,lѝ߮?l+_(I.X}GL &>&<EsBCKBK mQXǛ[uw&9
-sZxӮ1nJ5"5J-$ Wp}fREj7ϳYd!fTܶB[-YF7~8Vz+wҺ'պ
-\=!-3cK8A-ek7|T1MoOx:%vB\_> ğEwy~e fBr4ǎb6>Ԭ[kQ{joP/#mISwy6>˾ x vWI?f8Wf&HMgJùF.vugFү\YYTEh޿kXC}\?WzZ6vXY)qo6E~[qQYpu'嬳t2t36+Zgy{dB
-zwr ?QUYU<?n]:l*VK;srܐcLHmPd nީSLGṔuu&}.S].;X t;=*W|޷x;7hrfpuI'~gt_~{֥IΪm([}_yi/&4d.WxҚǻլ]ba{?(*0u-MI//^guW=uW ]^u8:6kwF쳛-<ΜHXP}M{4C[2"/׋m*ȕڅ3֖S~vvJ+Z-{%`=8+SV7v٣C9ɮd|ϓeMᠼ윃U=;]}/(A$΂.izKYw;{ ?d[sugnq8٥1\JMUss'/ZiW3K=h2\u.i ~O$s{4_Y]%w^ܢrK˔>wf8
-endstream
+78 0 obj
+<< /Title 79 0 R /A 76 0 R /Parent 11609 0 R /Prev 74 0 R /Next 82 0 R >>
endobj
-11683 0 obj
-<< /Type /FontDescriptor /FontName /FACRCI+LMMathSymbols10-Regular /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /asteriskmath /minus) /FontFile 11684 0 R >>
+74 0 obj
+<< /Title 75 0 R /A 72 0 R /Parent 11609 0 R /Prev 70 0 R /Next 78 0 R >>
endobj
-11686 0 obj
-<< /Length1 1689 /Length2 1347 /Length3 0 /Filter /FlateDecode /Length 2378 >>
-stream
-xڵTyTv5R
-U.hP"$Ņ!I$3qfbB)Bq؂lʩ*k+-Uں*ٓ3~.C5d /(cDSi1Pg1b
-|}|8\D8` `@ 4%@
- L_2" 2f ܐD)"ҜH:=Jlv
-H :/@~
-dӥbEbL,f
-WClR4!*Q3CD0lMcw8!|Q2Y0a8@#( 6@n,rQy=D;oLJƬ=O #,gop$A4CwW@!f '6ih\B#RCcf녆GI@VbB#"M&'!pAZwy8ѲgA&k2%
-B? 090 Duub,՚e
-ckG<<[$[nt`1@Y(u/=_z;+ªqPî.ͼp9~KS|иEd]jw>ֿi=RseTEkܶŲnǯ; ~KmPi&&~~cƊ[ڃLȏ8ˎ%gg8]n˜g靃]$n#g}~hmjVN
-3EymR u\FZɊ5cb~wǍ$ՅnQ<:9/gT$Zdmwn~h~ɗ+~F<&=ytỦE gPiօ7(*kkcenHe[@U>8"ҍwsK瓢4[Ɩɳ:~e]du~Vy3 =?iw0K
-ArOc3wQ9eKf
-zFyrݮ,Б9vBG/Nr
-endstream
+70 0 obj
+<< /Title 71 0 R /A 68 0 R /Parent 11609 0 R /Prev 66 0 R /Next 74 0 R >>
endobj
-11685 0 obj
-<< /Type /FontDescriptor /FontName /DTFCKV+LMMathSymbols6-Regular /Flags 4 /FontBBox [ -4 -948 1329 786 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 52 /XHeight 431 /CharSet( /asteriskmath) /FontFile 11686 0 R >>
+66 0 obj
+<< /Title 67 0 R /A 64 0 R /Parent 11609 0 R /Prev 62 0 R /Next 70 0 R >>
endobj
-11688 0 obj
-<< /Length1 1684 /Length2 1579 /Length3 0 /Filter /FlateDecode /Length 2629 >>
-stream
-xڵT{\LvI1QYR6SS*SHjJhN3gf9g9S. B7eV&hlEmZTr۵L,9|_l՝^S4;bAcBj ,TJ 9(ffr pНp2r@0(fFa9p`8U`:4 6ᐂpèAaK"P5T|!R
-F)4l?B(@•
-̟? J#ePILAR3nFn
-D++@H`<3X>^LOh0Gh pttt!uDTJVPH<'lCbBc+@P<Rf"JCa| a8<-ZL'%q12LD!xQbP$ p1rE;> CTA` $]`aO#ɒZ>JT (N3s_RJ$wbD/_ĭI\
-I!
-/$'&yCLB 4;'aO9mBՄ'#B4.` q؁-qsCL`&*b!RQ;::!|>N
-4)~Y|AZIlQ οsi͘ecut{or];"Qj`Íjá'ft_]imsY-cE䥨)^w\!פ+spj0+)o﷌-~xs:gg IonN6YB/s~~-;CH;g|@xC_.qzW%L c3j7pe|Eփ%|ͧ5T_}mwt[IșG{۸?B/m$s]s5^,m9ӻRRlT$&fT䴝;zWU8}i[LB-Aϙ~ {av ˏ/nj!Ѵ*6EGWr19h%%6Zj1ik-VM8fPPܴJ4SczՐ!@o-gS%!ǞLz|aʤ5OnS} pm7MY<Iػø8?dAĖXvz$ 7K_᝺)[,J_9&R!I1YGP*7\Zfze<nj֐>j޹gP?<jmE-ouuGK)UNƲ^{1Cm.awj\6w٭c}E];wCAo7l[秓0{?w+ҚҘt?7.Dz䗴|X`>/_캐qPf§)~UG5<<ҧ<u갞/bE2w͙hRϫ*B*6][iX=3}C.޲`o9ؠs} oQY f:`
-endstream
+62 0 obj
+<< /Title 63 0 R /A 60 0 R /Parent 11609 0 R /Prev 58 0 R /Next 66 0 R >>
endobj
-11687 0 obj
-<< /Type /FontDescriptor /FontName /ANTVSN+LMMathSymbols8-Regular /Flags 4 /FontBBox [ -30 -955 1185 779 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet( /minus) /FontFile 11688 0 R >>
+58 0 obj
+<< /Title 59 0 R /A 56 0 R /Parent 11609 0 R /Prev 54 0 R /Next 62 0 R >>
endobj
-11690 0 obj
-<< /Length1 2980 /Length2 30802 /Length3 0 /Filter /FlateDecode /Length 32446 >>
-stream
-xڴuX>L ))94 %Hw 9[}~׳g͐+ ['zf&D 4s6t
-`bF$H
-he05H31
-d 0Z@
-6.'*(
-p-W_FꯍJ ޥ& [kw Qw7R/kghca/
-؁cdhlaal`l󏜍 `h_N}~#x+8Z:#efa%vC
-fצW'
-g+`ɹΪ4aV3fqEH2)@<z>%AoړgnM }|Qń&r2>UtP-*exP8깏f~AN!ѭȇu-^dnrp#ُN/XQB4 !pv}=iS T5O{=ڮ*-ok!f
-(/6 ,Ӊ)|Xaam6k Fq̳H%bMYN-u-m,OXugB'j{}2r{C,z+9D^rkp 8uDICWFSz.>4Jy8d7!pSv`lɣ~^q0G X!Lfc^Η
-aKeEZhׯ<oaBV="0Љ P1{#7~Y=d~J5\??~k汨ZS9*G΅i@5*ε_}7;fL؈2!70jc֛aYk'[Ol#E;ߦ1+;n5P( Yx*wxfF͇W8rOg\&,S)@Bl{g,pB,[!v \
-e6\u݂]j $;!&k=-K) ZfMIڷdn{":
-3XK>ͅS.j7DxWIJ@ݬD x&>1l}*RRII÷yMȯz8*Rҙ?q0K[o6*a꾅Ѧh0.'tqZMC M6-{HY<ߋg.ő
-d'gY'id:rSJ}3" UvFS4{5eoJşK PAK/sG13c{d@l/D'?_ax@_)_8'42Z`jWӃ2f~lV'Ǭ0t> iKV!59p1Z(]
-Xos^G^?] 8<t ^߯L\*ڞ~wuMst+AN/%s(ywɰ-2%&C*5aC0XXW=(Lh.jn 1Z"#\0F+Mn:[bS~3^ʄ $e|]lf-Zg]ݽ0ڎ_Bs:ﰣ=inqj[%;9$dq~Wj}Ğ.ϣem00}1_ i?@B+*Y1U9Jb@k]Z"mᣌ7Ѡl^= 3Ǚc&)3]"@Nmeo3#q^^e;2۬s>T fI E(!:G{J<y]U<JgS9x❷%)xѢURBmZ1OIB:
-΢U=)Du&AGX^4**.nG;aӏcb)<ʣrm5Ps6zzW5GZ
-[#B
-:: )z?\Lb{K r<v'
-D˞0ԗ#?nd:*yVE訐Y}{nAnY:01ZF,;5%&ZݿxĿߊ"?`˂$3~E(ѢGcQ>Y/#Ձ+Tz!Y?Brlb|u<p#JGgA2,4
-3XHM۴ꁚƧVkS>#wozvs
-1#{Rod 5DH%od54NAm`+QÁN™)>w^(QqN@)~|:~p+ ÀWIr_`9yyFN(Yo_Fw ءo/Xi1`VF~;xQW4kYIMOZc1/D,+oY7~n”H.1 e9!:O.Hg]I{_4CMI.${e#8WjdӭW*d[[&:
-Ė[~-~D2+B8/?7ެѽ`msؙ$
-hLl$w8:(d/N+kqe$=si°"o ʗ!8[wY%Gk@܊yA޼-Xýď|G%5BfgE|cNg9M.k%
-Q0 L5lɌ)Y.g[aIpzqx6Gx]Kcя xJ,(N) Bl童6djN?'Vt[ ԽF0ĺAZ]ʴA
-̼jh=e!}?6=ŎB/Z"StoS\ݎ"WLx5`A2n
-fLDC#|N[[PH*DFݖ՝l|lӆ}r,;ϡSN><:ҏJj*,핝p̒˾
-G>8MgJhI4=Ƀ*lreJn{ZzDKYUŠbbl`K;#|M!H_bS/{{2Tf Jo?}LHypwYKyQnYVOB.g%kޭ29TglhgDSk  Ʀrީ3# R.^Je/4$P6"Zo7jZRd;1ZҲjY
-GI !<!?d&~*!Z5+'tTgH=Y)"PtdZ SX$=sL36*So]&6 >ZVgbQvлV.ROǢGո w'rfv(wu+dM,J-`AXy{_'̺ZCC%pF^XBF8Bx`q>Jk>E> A oO-V%9ը%_ Z7Zwę3 FOAVgS7'8כƛvo
-ʴ3rж/?OJ""sAwBیP_}(nL M %ֵiJgkL0Ee{пmcAܩbqMLe65rLY)e\L袛إ/WPN\Z@2 gu Hoi+C4kjM4||{q4`MW6lENZ3}8;G2!t4JFt'p~4d||kDѴLep
-˞XsgjRp`.Os*(G
-Fck ǁoG%!މ`k@=KdGŝ>F޺0($w;(/'lڸ
-wT ;tk
-0+|eԄB6@\%MH(S?wU摎Мk_1.+9ԯ
-kzecj#|eD!gaViFVJǑ]#T򕫪kO #&D.(#:C#mGZ]-E"?߮v ƻ%Z{!Cwd5B#,qi\p>5\7R]GEooC`-DfrW̿TnސjSF(aFWMlscH,cd0u Cp6ю3(Hx'}O=S+,YA0?_B)X>.U8Z\dbbsݤޢL5`ggyIg %}z~b4.(wWJ8?tq,"稂&Svʲ;.j祏lPد1i8\EVOgqP6x̳r0<gt!P{"p| k笝x҇ia!$k'P?G #q,?kIv z;WdI/O  vxdѧqQ99xcCF>U(mF<P6XC2 f8u3Q3ڜΞwf#pJKKVejkujo)|M}Yԙt+lG_2$* -IKv{ew%UP[ Zbf~ 9~@z WyX&sEw)}rh4CoVݡ3C(nWVM r!8A?Sy.x5E V&&Sf1)VwIj
-
-B5hh"EYk]ըI,E|%Xѽ NlzØO:sbhe:0d'3N ֟q]8e[^<~Z+uJfd9#
-"Ba TJȒCDT _Ζ-?Rp,Z8mieUkD/p]%Ԏ\Vs?P G6DӸ.yG1,xeD7h ݲ4zyl,oqeVeE%ldXɮݿXA)O{+z]'sJ< J9[PWWݗ"%PL!ge‰Z.Y^fPeG:9|pg7'/ۡQǒ穑ْ7=k>zKgִe׃.{
- 1ѕAA{̴ШT5G\s{L";)f{TW}, K)%欲a^e&=ACWzp%n;qJKUMn+65
-hJQ2~gNc"`]
-w1aTkm쿌La̘Ojl hkzlM1sjƽ0W`t(υ_3j..zfLWtmBou"=ueZ942yɮ߳5%pgarX\cv;'lr!|&q3ţ>@B~6/I0-<pJ^!0#~Z4PNv]k@F'xz䛸~uAf,ڜ,i2heS{M!zC^w̭Ywi!wK֭xGRtXvQd8<a|</<͌8:lV
-?" rIy4j)W逍INK,w 7%t ( BRL!(jp%|s4Xm5ܹ|=+A_pNMH&_ͯA kd.ȢU:I銓)I=aH
-|\FLg G2+|,e; \Aip`k{!!8CAʅUPݮûX;Ksnya&Yr~ aoK+,.{5lwYSu_AR찾0$[T֬&9=,^*IKq&5#kg=h/7&{2RʺKm- ȜF:X_eg<
-W*
- oE:ٯN̰P޸G8ӝXӐ
-0Zu waihqjR{H~zZ0=uTj 쑅P18kGM)7rJE?12։ɐ3?k+yF2|cF-U&}Yn&m=͟MzIh%)WRxQ=yBxڌC361uĶk9y.^x9ZjYzis6^7?wR=;/9pQOWX(EѾ츴=T}Y{\(&nNlb񭘯3i+qC{ߥFfh;xQoveáO&2rS[l&qWWQ1c
-j3Rp(>No}j@uHb}R7̪;R59񅗈ۻ)^J/I>'~SnPmءX=vmEB.vt2桥ssZ:T#o,wj?s~'jW08L}pPw@>zy7n-g Kل)S~ʻnt% F/Xo_"\s*-Wnehc~
-M(mr_//$EEqarP׬rBM1hq9&)&zK5œ`2FX<0sH8*9yֹa}ĀC1dr4?Ňt(wՙ]s^6sc
-8Uk,©/h ꏖڨJ,
-4{CRn*Vۨy共XRnRbCh$[n! 3[S^GCio]ȾD}/}dYl$ eZRFl07Mm}Q1̥љt` Sq޽'Yk2Uǹ*l7  %ܾP`5b 
-J(2*"<Ul]|X+oeƃ>*L{n͍.(Rhl`-@#J_|^/)G3f#9s?XilQwX7vK'ED^]ߑ(K{
-U2侦L/5OD/L}Hk~~"Ǒ0s
-/_gjMd7ڧT5ڿ6VNK\|
-T#Dw>USt/2zk:&.[O]9k^w XR˭E)gZ4=Tf+BW-8 m84r{mh&|~ UN:<3u$4+rq667ơZ ïa5PG,i {1H9sNsdqΤ=Ij Meos* ǺIBDV`BXXN,3#Syn\>
-{ ldABb멹Cqa0`!ѫ
-(~;c fဝ5-!U/n7V&2p6,=!~^G"Oz/J~wD$ 3@8&mb̧5掯ݎ,"|VlXIvo}Z$EAfG^<PoVﯶ7TniҢ^N$No%q.y2. _H= wpZ^jgpe rNMaL\9;ŷd_{Iqmth$յd/- X%aVVdMl`^fgkNMq1 A*]AٰmƔL٥hYRޛ&~hƋv,75~u.qCS_jvRUsI>.a[=n[?vְSr_g m㹌V$W|B7yI?>q`fj,khw8^^ ;R6qF}xQK‘ XM0U\D52F)7istrc;NTAObPi9N_n9iɌ׼3&! ] ־II'VUy:ѳɼruH XS!E,ziT?CEfuuDZʄ+.`Trۛ m :1v~sHOTS;`]_
-]z!cs1U脉%k B+&²̹} R[b7=t.m<f*ڇ/d$c_t Jx5;Ǖ8l`zl^kzMvM8,mEg1K<a{tC b mD݆;Mo: zuէݮ ߷Bjpϔ2*!Hw0n4>BH9OT?&iBٌ+
-T0\U1U
-k;LO6^_l :]Hu8}:Ѹ-'|7`<6Yቡ'yH~H]#VI^͕˷ZԎĒhX_6UœP6ZV9zf3M]B5Y@~@ch9F'N\?$4wRwHWND+b*lv1O-d)%m$w1O_S7 @ JLt}jCLH?t]ww񑦅)4
-*[SKi,TGJB~ !00z:a)gɎ ڡώ\91{""(S_wi"ޝvJ GN?N~oTqBU-zߺ*Y 4ɀ wpja:QH$
-)tލ0ɚ8~3#
-exsb`շQ7{s6Eyˡ:NfFwt%Y\ { 'LR)
-sl
-ev+Xܸ$idrEs>t%#{Uc)ᝤUcVzRq4,F:<:KX:Fȩh@(ioѓ\ slPŽ(Ob90Ozhu=V6d^Tppdm;jnJߓUl ,&驽^ۜ&[8J=T䍬%hFaVZ!0XiH}D/JмfS3IyA1Uw^y}fm!lNBMgnJnk>
-/=Vf&b}nViol Nj{'&S5Vap|2).郞PAyZbeHHh%E)Gq&#bzEp*>&x S[y2cpjßZ>r--UUThu(sU)D/bo7=F0E[lN
-](VF/v>exoq
-A"bfwilIMiD{v0D$mio,EQR۱.割&«%j
-+?hea}6w` C MUİ֑+ zA]rH O<[ |b4T&Je;hcğCW(1?_F"=cR¦؅
-:~C7["%
-0=*5z-?or<'! ~6tk~ pq ߃5Jq[pr]IƇuve)bHg"1Ahs6/i"SF<͓ИRz| ^ عDŽR$DZ
-Q{F{6 qS\3vnj0U۟\$L,JN׵]KvQE/II3(YC#t'*Ue^
-?v%'eXj})O=%ܩ?;W$$4A[rm?jWJ#QM4dH@5;RI shΦ@XQ7!u[硰
-7 i2Jk,6r]FTmc)YI(vC
-^K8:9f+<o`Xs\+uɧ&Lx5 ;#c!}^ܘFKw s8Tr( BD
-%e` Rh\l=99wy{5iؗ:
-qoE7JE(#6$sxB_֚ /u= rTTI Ъz1O!aSkH"rl Y+}%dɹD<EN3ڛF`Px$Q5wAy3NvކZpz7w
-ɨ<?F8p?ĕQi8d̬1ǤK'^QF68@^Zhga%…Ydt9 %GkV h"ث5<F }K&NI!rj,r>D7qԹ![pnQD6[Qsyg1U?ہT䩪x1I.RΜѴ!a놹9ROEL7޶'dZDzFJs%vYROg!.o&K2tc)Rh"ʵCrӝ
-ZRp*_ߞ
- 3m,-"Ȳhu"(E
-xƣ'e])oY}
-}o9O󍏫s4Qc(ٱ;R+"{d;Ȇ8_
-I~`̹g<zV\6OXzB‡ ѼK79NRi@Q:qZ Rx%0qRVNՏ }z}ɡB
-`Y8
-P3viz1
->L'*Lq~  V
-}&$.\ڎG\Jh~6zXw0; G fARC9*O6u3`2L ,a~Ƶ^Ԭ oE/
-m({K:~%TYA3{p3=6iFZd]PqD]ܔvmqkW\RsTs+|f oAxW% q72lJ.{gk+
-|[0/Sd:
-? =ܔO{QZC!I#cGgw pc!N^Na v~^ν`&ўav}`/cU6#|)\V+/jӈ)t ]HNP;Aܝx2Pr
-Jd~i0/
-=zVh?|ojxwM';B Eq:_Bf‡ nݮ PyaLRBUt&GJt 5Z3 @;ĉx&,<HݠQo2ypc$UT@Mrghcn%"2c<'yv;鳻 I^ -XQې+8V CU<_kVMgl_ PJqCQyiM;c:CBipփi//9Ie_tZiJ9P}Yڹam. X=B_%RKkiSXfݑFn5)y5ADRiR[{'0N6b_:|1?W"#:S1'Q
-daCP!7]^.-Iϋr0ΧN`h-= B* ʣ$QSMC0(h, ]ASxe&IPFn
-z#`5铠XzdxޚrxzkmЌ)S 7I`2wS叩*Of#tMk.|i)[`mяZPqiwo[9#ݜs`ޡ-ܣ^,<7h"v+zSwfDqi i( =+n_o~[ªxynr>j/r[~aV՝}
-Suٰat~Z!MNIV6ꔺ7yI4 C(C\eGU`
-+݂腀 {Fzt, n\d@c?Ζ`z--DzfZƼ~ O,8I/'ֻr%WΤ_
-RITuGWSz6B76 ;`)&`.+%b (4Ű4/6AJn-
-}F3>Tm!GZ?1`T1z* ',-.eE~ kQ,Eu[zxS#\m0zGem任-c',.ȏ8rTP9OC4;Am#uݭrfgLN
-y;t.UNF:XQdL/N3(#N΂i:KQ4ZbÙf\qqp/^zY.t1ػNTޔ{7bHGli6$Nk!4iP_IK*AkFa-RzG Ó
-¹S%l?<
- @KY)EHdr~N{X6C) 6 \S
-oa-Xo9G~XPZv{hRβWB0fu,ʱ5͡r\
-O6'lj*}ӿ\sm&֧հ^>I`L{0yߔ?j}=^&,} m;sLHn}`c$(hsOO%Rm.}rO#0"\37 G}|]xN.Ee!Зl''mxr؇S|OAۊw%|Sn BL k
-+.En5ƿK=a;V8 ?(1)$m [%i<sc){<0\}murM`!A[PM)4zLl3J#ƓhW0QL5e!7 55a{XƂШa!eZvDNks.c2nm* A*
-fku#vʘ9h 5Yuj!qrEy]~feVW(+vs۫2[ v
-,7z;-S,LEp2ÌN5״<s
-=TuLi]¬4l#@\<~(>6[QS
->&x78J$dȪOKpv;1Z5>_C$8N
-iWfsZ̒w=K4Tc~tZc4lY aFC?<IU<%
-, r37IJM
-9Oِ75BD1:Y?t!f{@
-لpZhVli}v/& 21WRwn""UBe6 S-(ALi& qXe ErX/vIm
-\&D,f)>;h,]V|~@`# F-̨5s߶綺_QLYCdTE|
- l>1OTPD[ A>gH㧘
-@sVמ(,U dQ FaD"ռ!@)g/>q!xE7K7(= XPqAgt@== 69=e-m5pVA׎وyv1JBԀvCda~uV(G>'vS..ݒ [Įc]ս]͚-8i\Fti ᜫR(޹fg%;&f+HB(:qɺF2mDE﷒Dh#*57V bߦ,;
-j;o|&p~kǔE2HLшǵ_b-ܡѲƙ-(a)4?j 0;h["s 0mb'+OGe?9fA$t*pB^L!)ދ9!"APN wB.sZ! 6:4ȴ+'QkC$pE5%O* sGYGtE Y#e|weFݳGsyJQzS`՛YD'DV #D [RK~_8u!}<sGPw .iTS@٧ *= G9AZM֒xQ|^;DUc/`4v@,yy;lE#cDL}#&$?I_r1j]lZbDMJ-1Fyhkq _(ZwRmXxocSbH'e^QKzS2y;d pگ_{@\?: v3dy={e?2}F UZwӧ曀Ji{6"+)p4Zwj6rYFq#*ǧdcc0]ZpPM}eZþ:AP(&p`06wP}~8Pv=fUߑo;nT<YSacW"?CK7vm1C0{9~͝7k
-ɞBMo.!d/0u,wRvc
-Yf6Ed+' ǎF ՝XQ?TZ+ff2 Tmv ?FGlUU9x@? 9R_,$`-U4͈~NIgڰvVF`(ԩ
-|Yw6W QvJ"_G6,Y NYHNql3NvYjQY iߍ˸¢
-7$3
-5F( "be~bxx,v
-y;12GQ0j
-gE=*m21F2Qyp&lkz_VH-[Py4ѰB VΧ$'{ <\l=_ VMAI,
-eQ,NP](G;Z!t[D'%.wFю5<םy<KG}"SFG"}@XGЪL͞rXn+r o))R162Ӭڢ J\A%S4➇_RzܐR/jF~5(,$IGn2U,G!LG;ZڀE=qCuQ9|U=7C/O[<qf~7?4R_OZ\hk+_GrJ>H$
-,R*,."/͑%Ghxm`YhXb v18 d[^,5XՂMzIBJ-0X3ҝ.Wx \B LKY!"Zpe &|<o46-bd s !+뀐i8-|g䃵Y2n?~m7|XgBB'$.d J\@Ej{sB/"
-QrqC65br # 0R}pBQd/`,L{*r5%?,(A7 |}-ql/9 ~'E0U"C`IR
-.[DIEݽ\{(hGFq_X4y%Q47ݵdbQ1r xk<4r5wN[N89q ?lyzAg4Ўv' ,mW>zߟTt9txP5ahFA2 wkg֦RI!G]50Uռ|v;K# |PN&X =ÉQ(*7vw
-~zTQr*ids: 4 0\-XݖV.tN."͑A"h?uX"y̖ΐb1+ivw*-kH6։z[ٗˊHBP]1dc"i*Ǡ-v_ ~ ͑6y
-&; iJL,|goL!iqNCwd %v w1 taƧSLԼsNn:ÁQW3jlp%eU[iJkmV&dͱR tlwcU9Sq^DݿL-S(EnL-і!tJxSR{Wj?w!"(tƬx3Ў^:OY
-q*[HO`,$Zsrky(h`m9Y0ěRT;=niu慱ΈldۆTAxLS0
-.#AR͒Y!PQ~od`KJ_7|ii%AK^[
-cP_i@zeM
-ȴF
- WhK2;JWDIC6RDBqL$O6,8z8)#Wd`|Z{'e  hGOnU
-<vwSi[Iv|0®\1S=yyH)qoeYၓ[/-sM?'-vOe@
-2?_}0Z"-O:cmv
-b^԰<錩qy;<$Y4P=~ۮG4+MR\a=7zz%^k~Εa]soHآ(d?MQي mb(۱>I%R hUy->' 0>n*L&6%2H>5д9GOt Hr *#NN5'9I*eeĨ)M;Nad!M+>=]~0eb=[twU[f
-endstream
+54 0 obj
+<< /Title 55 0 R /A 52 0 R /Parent 11609 0 R /Prev 50 0 R /Next 58 0 R >>
endobj
-11689 0 obj
-<< /Type /FontDescriptor /FontName /HNJOVH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /ampersand /asciicircum /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /period /plus /q /r /s /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11690 0 R >>
+50 0 obj
+<< /Title 51 0 R /A 48 0 R /Parent 11609 0 R /Prev 46 0 R /Next 54 0 R >>
endobj
-11692 0 obj
-<< /Length1 1832 /Length2 18448 /Length3 0 /Filter /FlateDecode /Length 19593 >>
-stream
-xڴst\>n8m۶4v5vضmml7V/}οߚ53n^Y!'VR6s0J8ػ330
-j}>ˋ i+33]tv߸Q|2Tsg
-)7I?vR~&}]اkG8_m,]ɕSR[ٻM?]]\
-A9^n
-v@lWEhrRpp37'L,j9=Ǥ4~c]>'.
-Sl
-*rr&no`feo`a
-3 0wpܜ
-^yzG"s -*
-nl3h~50 (Ǿm[x3oC|ϺI [ex]DNJOΥG㛶gP\v{`IoQTNjiZ׏HXoTTeg{@"⭅7^? U=
-Yзsflv1q9W&rVLG2:" ~7zU!<D)E6z.X[]XmOʼ5T؂p,o9؝Ue 5Azd]>Y rmH.*pkOg"Ep26 ,>B!Pth;h .ܐv
-mm׶syg
-%Ĝ|Iiij_xwXB1&8i\wK`{WD[a6l4o&E%J_S8Z6r ZGci<qt?-;
-{PcpK6^X
-_Vs+-Ĺ{FOlOC(c
-:OzG(E_1Zntw HF4JpS \H%R{m GB9fZ(n-Ξljr#9Qe"k~dž|ߑgEy^9=%W
-,TD MwwRtShڍ2!æ_2EPKh:-1R i5 1SnSM "]?4y[q@`e/cSA+Pڑ#
-O)3zELyh3Sy`(}/.wx2)2Q32(1: AF
-m߳]NSJ֙7u-S_8
-1` mMʽR(Og/)I4+9gQe]x0Y Prj#GSv^+ReVZ÷2<© m)4ZEns^RK FSS'PJ_c㙅:)\dt?bX sr >űW"mE +R֒)4SR3C+tsj5q*S
-<RJPQݟ,qV& lN>G>іm"QQJU](w;m,a0Smݪ]DW$B5_|&,+ͻ٭"IM.VtO =vR?擰*-v=2iw6H>p
-,[ZOQK U *RK"ˑkT
-M#Mͬ Cۛm]"G쌻hP wM2?He[̙ < Z
-#VnϤǩ gdiҙt.ĽҥY Gc,ӵw
-iPnMᨹrRue8gprZm_~>^h*2T1oc^V0VSe pL0iPcq Oi-cpXoWO&tPQo!Wi?V$:I<M23֬k>Ց˫G!Kt7-嫸z&n9>sX{ Xqظe3Zwʈs>j2-2fc x:1J@ND%W\b\~9gOu+_?b:_+J-K^z{5 ЋyO}^
-r+eF8SjĀݩZ~1?9Qu̾l:C2L$kYSڜp[$8ԝGo߹ڽT;^AqQRT8ߩqh7Ynn;"AH/Pg\jH `{>\6[BeC XfFoՎN{LdjQ"d_wW;ņ&CJ<pU ZjgwYHZBf31C WDDTҼ[܆y
-bi ?@h`,*ӿЬϿi+s²#<Dزuk=(cc=XwU|kuٰHo9Y7^#/v' O[+|넬q406#$Oo;i @%=ZF)BR8m$up5M#
-V%1d`,1r@xn;bL$iʐwto?P̜s%YIE @yeծQui|GKpϙw>3RԻƟ| >+M+H喑Ͷ.]=Ť 3wSR`Z_2RVގH8c@i"U=m,=#B5e8R0^^*G
-9%B+Qʁ~YmdCy
-k>LwZAuU K7́:k DE
-/Jv9B_Q440?LcAEJ(HJr2]tUT?NH&qeZkE7/nNG:Q Gj"\ SkfKs:}pBvhuf)c]Z3VPq@m'D&d)Hܕn(#3r3N#tI0P;z;6(KO,oZ~bWFPݝ*.
-2,
-.:HϢПsnT R8R*45&nu2F%f ]<wDa^X|bQdWII $RMsD ̢D
-,WR%|Y>E(CJBRn)[B_@aEy΢z%R]2u
-ll* >-N2kkᛅДJcw L7lɒJvJ:B C 0?#oе'uy}
-pĩ#J<B׸0*_kv4ϥp;ALl6
-iR2dѮ:?u;kjrb
-cb2I4"CF/Z2$δj`.3wS0Fcϟm1uwə+j쭑F*D:gVڵIMFW"dk?TՔ+ƪ%wp*ZǴWޞdPLu'erFITVA]rY .ln7) |kf\s8! 넓~vd5$s CTۡu3.P0ypTAO8?z /+*A '%1}%'s%\mR(@}W(i?y$>y&Y/Wn 9!/s~Hܴ!3( /n\p\~!*}ilnۺG]Эn_ m22ūVX>58E,\=aYcKArt#ᒧ$`ݹfvI3ϏeIo^.)t؃A[Œ|VGt~
-jP<jig,:SroۘmMI)? ~H ,/.ICԃ}S5ƅ]d$<gܯsS[kK;/{m5ccՊSc&
-ewG>t?$
-
-&,Q%)ɽb.uNM%+IFQ,|$c2Њ!P<Z[E.]; k'݁^*Lzֆ6ݫUkhJ “ T/8D]j'+fsl(lnoz׹,^}zy(){^K#ՆDl8Q6XW?U.M,6qkt/h 1@#,"yIUGXkp0Q[!"6$ nA nCô}f
-z>T
-7e&pc&&1siP2/A[Q`UδWNt$5̍2EJg—O5q:Gm3:t):`fZ@
-հzn][n[?:L1{Ǔ'2O,Y:ct4<Ӌ}J{R[ն @V``Ĉ|h5vrdQ0L i=1Ate&VTH(jURE mGWӠ{pwY\\QTN\Σ0iE1= ri@\@'^*b v=z'"lM>Bټ/g'F {oRpI$?@gTg,~%<Ԯfm!~5jWвd9"ǔBpn;5@\k@
-5%Ecy _U3)կaIaw7{hk^YRJ
-?&F;/?HX)(.yFC~22A`LUsժf>T .1P1^"Vs%bUK !4?NTpɵd$,!~g-QvRe<v5ZsuhcHS4FUWF84JdY,#lKכޛSY!crP5S ncnR$,WusDKk'R G`􆷋A3Uj
-7B^OU
-gMuFDRHqd3ao:/CX; HT/`ʦ6aG Kpv[R}QnyFpVcZOzD:0g]m94Y0_c3
-ύJJG316!cu8ľB(mpRy KT<0"f]A`7|Lm՘t" ٱW~.ٲ&Q̚YJhj :&9Pƃ@*jrnnp
-Molh!žPy{ct>FU=nmj 7M`W%?3/4?t`$!G^TdmpRqi=%
-"ᾣVb ڜ 7ʰ䇛?Ҙ]NV+עaARHp>dx)[gn<'ۈ$"6L8˃$-Z^>SG-A~|ISLӨRAŕ!a?<`'lFRq/MpUS,%NDkW }ǩ >+'Py
- $C_6
-:tucrƐJt;#BWn1%W>r 9Pp+
-R.7X$2ڋhlԽBЩ7
-G?ag8{`^~!
-|!
-/A65UpcS@򙸭Hۇ>R2Hzl2S8ZqL)k_,AΎNSBHhHqҫHPhÂǛ4c/AgwTmnO7}~!|?6haH %7Ep_X:@w܊.N$2i}GQ?]P8]G6tTM?lhq91ռRh)h:9
-oeTH|WیcmŚf0%9 ġ8HJ2S=;Y3DI)8A<R %Z)g>(_Zb+u@su h66P<0E Ձ;-l4%/%0̸zjU+{b~yS2rAe^<U߂y5x9 =#u݂SVl {E7 ޫElmr>zļ&1mdOԸ z>:ͰQj
-sSVsm^ ;I*jUGTu(bvMNv:mfR[B[nT錙1,
-0_|^x^}ZTѤ(5^*jt3Z  -,q& +wĹXEҬmTF[LIHB[-͗ݒ5s5X`ObptPoT7(1^5p-awg!A~1K^0g|kc
-_
-PwRi@`7S{_y@?M
-H"SŐBH {//r}aG^EO<ꅜ㱎΁en0-~{} /{娸>S277sh:Hq~!pG鮢V;(bG7=PYG\3ENU/3DBpʌ]??{+UAI=/֨]>vL-%e(DCLwc
-sMgs(iKgShccwӥnwe ;^q ϓr ZZ2 ZxL<' ,rQXM ʢG>yԤ(÷Z EEcx$O"=f'E6E5EѪ")dRֿk<.; !`P[o{hNJ)lfx%1<rڬp*c27)[eLe Rnshf͐[8@o @,u2vۣ<
-E.Z(rx@4 @ӳlK)Gx8wJVR@ph~HsջduII|ƼCcxM/0j7R,,Ƿ՝p|V|ctdTb*bc/ežʟ2f _Ye _fך
-Gbr2_Jtt:~Sؐj
-ۚ?뱺-"%Թ/5-)vZ YR KUTa35~Oۺ- :U?VQEԾU%HQБݙ&5\#9P wGM?-~*$|R$XON>oPF]{#Nx.$ GxGnD=Z
-DXˬS.•rݦk[H-Kџ.A-Qna_>~7SUE2"W$ *>݁ꘛwOW+OYI7s
-]j̵:^?6C}5usCb"kwn(շJ$_B "{roη _6.];%c<9vq. \TM"*^!\6=71 "75޾^Аt<Z4-ݚءEfr-ϭ71XE \ y&atId
-9z?M
-;%Zz ftUcW }ܰb/v5 ۘ4ˈ!m<cz:fRcicCuѫU7R
- 9=6}Ah` ql> em{Y4=\rHu~a?Z* X?C;9|jvw0\traDL=:̏˙9d˫#0dLldU5@tL%Vu
-l
-[2s˒Z
-N#,#4m&z
-lBl,j#9>Otd=P)u9$=` ;\XG35utN Ih+ `.lZWt5 Ri$cܲª/ױ)"prsGA=dQv4w
-N3(P8քdl9S{s 1ܰ5݂GͥEyg{$EgCiHjӴ~&F9~B.m{7f]WwX>oU
-ij<P:'>M Kܫ$2Rv6hW=0@3c}T|LKc؍Sa31>pH|$_#;80;}G L|e W >qN |C(>$)c̚߉"βNep] JvQ_cI/!]";̟-P岝QQ_7:;@ƑqvΒ' .#9Õi#rn{&XY&dȈmXEM+d93H+) M?R؉ 2˅녱|UYl}
-|x!XrqYgTf^M1{q#Wiʾ} \_RR NwM#KWL ѰDPAsD67CEM@
- 6)<I4w[+rڥ0\  mꮚh= aNTq:PPĵ@VZpMx{j'Vw >R
-!j nЁyFV+G 8El)OkB:!$3SfbMLDBK2q^&1{Jki`'69ej꘢
-endstream
+46 0 obj
+<< /Title 47 0 R /A 44 0 R /Parent 11609 0 R /Prev 42 0 R /Next 50 0 R >>
endobj
-11691 0 obj
-<< /Type /FontDescriptor /FontName /NRLLYV+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 618 /CapHeight 618 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /a /at /d /f /g /i /n /o /p /period /r /t /w /y) /FontFile 11692 0 R >>
+42 0 obj
+<< /Title 43 0 R /A 40 0 R /Parent 11609 0 R /Prev 38 0 R /Next 46 0 R >>
endobj
-11694 0 obj
-<< /Length1 2277 /Length2 23448 /Length3 0 /Filter /FlateDecode /Length 24809 >>
-stream
-xڴeX
--8o܂Cи݂d;gr޿nRvzɈi A@Q= -='@ZFdbQ
-гskF[7
-n%iJ7kHں#Tq4 v(n/{ź b^zcNv,t+^+U MQb0KLwt}SvEf@4 B*ge[+jdD+^\38x̎o<DbyFm Fv2 i?1P98/ρupTp%ŕC}D#Q0g-#?]qHSt3Ʃѡ Xjj.
- sJ)b@"Sr
-"ኲ#Bz\x iz8bSuȰIH|L[qVP,TAxEC?ouUs\jYPHKD~
-4w$0fd٭ڽr9mԬ c3z |G3+D169-hZ!#po1CJ#$-.c>Z<F"`}Yt$7nk~W0=Put ^f/ @FF*hu>:EӺ+p|1:I5dV`C}O)nDAG|Վj;z.qm/96 !_G04fpm .7Mc\h}!<D4ˈwhOk4ȍxL
-s9BC͙V2ġ§I=
-V&qV62RPH6pqKvH6P
-ͣ"nZ.HuY[L8ۖ{~U`O_W ggjG3[0z }6''% XނJM>M?0J
-m&?ړ%>EFH ʯꙊ$<3!T(sg9~T
-p<)ޓev:IwL0A\5!%JN}N>Lna7sŎ֚^|a)~hut1D">8<2:qP'PUTx;߳J IӪi?&Koahr:tS!ywaMDugc‡ty$^ $~(ly/=&X:ZtN%A%monJIdi~C x$Ԯtᆵ09p!9J
-9ZnrKWYɁk
-KTbNmLg#xCFVYXwǨ+W
-a=3ԃû%9d+ϫ b S2c]MN,bz"l]$;Lb2_ Mzj\*WG8
->
-|%rO`J?BA?64e|d>;
-ì/,Jݨҵ؁U|aqşѻDDigF’e{*7 (.{02Askw -+책oi3*cvuV&;'rT) =[sRÔ3M]B=Y$(nŒ| $
-y.0%ʢ6()NdaaFTm
-鴿¨$eh.w.}[-K2+2f2A7~f˚ qo晫n×-,F݁K1
-6Ȩg4;Xn(*d=fm ћ|l%V/v`ܨ}gbi)(^V=Js)gci#+ޖ8-JV/S%% ج=ރ!j8phm X'b)~uD Ć^D>)FY^EwH}>uX
-D?">D-|.E1]<a7 TӜ 6ߍ}UL@!6tD-w:M$bQ|獮%rd62i4BTʎ Fi4huOXgpNw<_K
-ry'W>yk0P|W%Vl]\p.ȍIjӔ%OF&ތLqcceB0;p^j>"B-6%:EK9/;5`&I{<k7 <xOڄeR+rp]7|" ړ<G~{$ϣ]40jz(g`#
-O،OGf oUlBU.qw24ICOs2.Qok p XĦU^Micr`A
-3޷T`k?:h5<鵩 K=ebay 4](/9Q.^M0Z܅܄y[d]r6ɋଙ!]r*.ʗdƎ& ̧{5ϙ#"f*ߏ*Gg5Y/='<B^)>Z@ ESA$x
-{$2K4^ٜQDcLFt/1:TSzM0 oiFVR$'EC"$q^bh, c}印[RUfFt}erwmNd&תH2mja&% $_ű)wrzӍy|I؋O'K%4Xdhd VzP>Fx`ce:׮Ug7wM8L9Zmi 1 JG~V4 |hŦRq1(٧mI7SȮo,=+SmWy\"ؼX{*`Zl} $\#pTK/
-gq- LXK_G?]RaS BT.uҳoBLQCD+H18 \@H:7IQFȲda#F/re#ߒel.IriE{iz>Qݙd$P64[=${K P;)xܵ[nJX VMUZq!p[5G9_f39Ӱlf6Ebխ)CBsiMj?4M, {`:*iF=rhu#1.I9/Z$`&N3xǹX%:*|GDZ@gC nid|\u.s[Zh[|c+~W.jYK9)6K/-[uS 5D?yOqkrQIf}Re1bQ[+.OUv][vG*Oic}u=L4be=˥z
-"A/*)fH%<ezP +{ď訡KnlC7]J`h&19y(҃&Т(÷OZe<fk*t Uv5m.J4 A޸2~D:?EH5#~P ݞS^u ],G[w/>B<@?ϭVc9G=xeRF@nzB<kH48"K<)>T߯
-h3TgkӻDM~| 3q|LD/ާHfC3_
- _-Ǽ8ricծ=g2nqzUS{
-*qr'Y:,w|FBDNJ&:VߏӦ\JAH0pfͯ"](y ^Ԥ'YAdM?|U̝GG?x8C\hj2"vIkSquCܫav~mFu$IYy6~a4Q- rx *UiRV#eSK1(3|ӉnwbL1a˿a(,$mN]6ihr}֏Xːn.k-O dI2C?r`K~w/KYO#;IwyNb}Et3T
-.Eΐ Xya6_l0⏬iKo~ѣ>0ȻPqX!B޾#3: FPt>3g0k& @z\`m"P^6|A"(dى/pͱ zu8z$ciTuW`Dz7QĽ_g@$mlJ\FnNvvCptS3a)T \aS3&)R}jC{ ?}%+dVq&ǧ[u>c|h*<1a菒f'ɣvj}ʻqS}.qzN}c6TJ{4&\u8(2Aˏl NzN|~iYzU~R|ޮO+3噢>IȈu>t̗/A0:eĝɡn"[.*֦!_䏟Z` Y.LT#&x/-6K3Qx7+y "~eX%
-y{4ȓ }!xEkxB`4R!_+:A;_O
-9gBWF!@aQ-yv70[`vn7@_d5NDّ?_'} <LB~ TDAoRƼAÞV>lYYRguy@X= I f5
-S~Tcz-Xw:*2YHe{ys%^X012vD%)42tU69f8&ŝxEi(U1/H-!WLEZl9hˀ![#ȫ_ثI'z'Ԁ>|:{&f.kkVMӌ !w2hT(礊ڢeݠ3stM,#pSι:7nm ֱܱ?c@Fh_%Nnr:)򌊅݃e cKcȏrX/7
-_ ;ko$J^
-
- AK.u P7yf !wۏZ}Q
-F}RhUV|ѼeJY-/*JUNTW?W8W=ؐOґMC}0(p"#PnѻK
-}=(e6f )KfPI|DI̟Ue#?Nj{FNsk(8Oswg+`C']VR~,$ZMA{;ݗQTy ;2S(K$7#*[| 2͘ (
-öN. AAj7fKg`e卑8`>ѦJYÉ'ڼ `s^}FMٹHIpIJ8jG
-9]q
-^я2MŘPZ6 wF( U8>ohYuP&, ҂$Dt]G-8XVp%8Dd0"vӈ uׅ5d;]9 ~pfxB8=LylUD,@"/ k܊FN/k<bq
-0e*yBمJ:MmV\bW51 v<٣Cl#0 P
-/_`IO{m^w̜Q'$\ec(j\A;պA#03
-z)*EzP0-vhSj \saM*_H<j'DIsn=-K;T:^MF Jոr O(DA:B?EM#CXN!q748l20," }T9>FRC
-m $)@`3zZ
-Y쨵V :K{N?}*<f"; $~\> Gc!}<T,cHYuԛ5H͇1B;"2I. qi8ȟQJ0660xѻd̺ξ3TǾdr̀sGM
-=[w nmM<!w<|fi:m}$.|cKzxZ7W+S
-ufjl`.;XʐޙAxKM0=(xxCNhvS[N}@
-a!4͠nŠj>7rHBZ|O@Y)2Huz>,5E <I\5!=:6QE00C!Aͷ1b1ND :űzklMFm۵B*&9upX`p8 `ħX[F(yf kΒ_\8k3m譓_ L."6H_FĸG%p3]pB͒"{ApnKb]WDۑSt'w=6m_h%N[_26Wܢ̷MCߙefI]߆_(ޖxJiVCs<ؿ>[@ lQa=2B8'νn΋uaE-M?<B"pok{yENBʆ?+I0IʉBv\+wLH8D:l9`ۮ NܭB}ŕkbgY_W\
-1M3$-0JG{8$].b4X19-nVќ\/Äw._s=GLwTZ4ohٯ} -^XvS6/`:< dFE/zvs5FlΔO~ 
-dB_CU_.;bD"K?!KXf=zw֥u T7ו^5/˾4/߃ᥑaSv,Ձ*el]1V5hӰr[B:@xm.ˊ_2D|N_sc6ZP+#hm`gD J'"⺣ʺ 3ދ$<)c "_iX/%^F尿geŒ2:Gn
-]O=,XK+ 2>QIųsp5
-d҇tm\V66fLniw&'V[g8|z}EO9Mx, nm'2}%tnV@elEcx3HEy%.+7CuYVY~*}7ؓykHNdQoE-~A2TVעbUqN(gi>T;@[D'}x2J%Iۛ$GboJ-p9P&c .mD tW>xE
-q[#?`u:!뉫;:{ s\l']4Զ0UmGl&mF}~7蠘~Ÿ&
-:"6L}tK̟#ԋ҆U@\sB&lg< #T}0eCp㓽z]VH-*la0n
->wǐn3YRKe3\{9A2SkJbͲ
-AuDG>?\. {ӯ8i
-$okEv_"jf,0Wo*:~oj
-
-O{sk6z̰U?47^9,`I
-O?z{Qf90h"d!F\H7K3 Ֆ#KUFLJU rYs֗cvB^3]XdzE)[M{x\aV6yL{hZ
-}91nџa/h|fA__5͡&}㛱̫xY5z(D!c ^lL1`Fexw~+LtfEr(F
->$ӫX) (!ߎT ;*C-)F0N'˦MW|)i[x,pj q5Ip0!ْnٍ`yV2dO_[%M_}nL =
-o KuZZ͆K4y Dڣ8ܟ<lv#[X>9yb\6[x0B뉉?c;}>PbQ&=X
-U7*@kU޸p
-` }66UV@{Y}ьZj98Mh<?PC(WrbO 1ųJb=NN97#vRTM346tҌ|$x7\g(ִq.g f"O"Hƚ"]yQih,/S&#,BFv %ĩ`P2Wбö\^."?S(L'Sƽ'Ԓj_'+
-ܑӸSZa7ۼhAcjz_R([[y+.܄.1u6jD P LYKga`Eيefˑw
-h̝J~שn[3&BӘ b^|#
-% Xgoa~$1@ G+ܴ&u{ ctO=s-,`?%ϏsC=
-X<\#3p[țIh lS,/"u{fc%ZK|I!w+Q1cW,ǐ]! 5Ybp!lKX*.J'$rW11&?KꑹVeѭI@F-ԈRKx{N
-ᥜvXbys]6D:)GH#\ &]ͥ}%@tb]VUc\-Ć*bh0Dx<5zFZE+6QiqyZ&y *f&e8qYCMM̄17q탣^ǚB/%YpURj4؊U9&yU*]O\FMdzVbP R@6\ kU18lz_g>f&2NƨZ9d7`9zm/NN˩ U_.ߦH78(pW#R_5'1_/fFi]|1LMNXg ^bӣJۈ }3
-bnna ti9"F~eB'(nHLp0C$_$1nes#$\g1a;{|Cy|)$BLDKoV&RKc47j>/ܘl146vW_!CK #]FdRT YO˜58xe8 ڝƷ_]XLB4gpEk;5%:<3G0,0vCfw}Vmm$ E{/lpX ;UյeV`aܚ x<„'Q>&9c$!Nx9:T!C떁 PdOO[`T/;;a8o:퐡I7OG{"PO
-5yL1
-cm.@WQ,^l֟f{z7URM"X6MrlZ0mCќBtm]؃@KW~
- y4앧@D ҡbCKpK"3k:)qgzo4P ?qHq_X+NW[;
-js1J9
-U;(3UIipPLeb.ߨ}&X<^(:)Ԟ~~% @H, o"Qg zNnypWN~rT@Lt_GJ!'YTZ r 
- J ;\cI ^v~~i$
-k hs=1m#k|\R<.By;?vԮ:j{f!5߅Zk!m;lApl + 4gkG'KdNoY|˽,[
-S5Fg--E%C5qGƧ"JV9/UxI2R$'MD٢!)kB2s /;US^ Z1*IC)4[+/g,І,#6_W=vjٶ I
-7(Ui0Eǧn/y<l֧
-#;!WH@K8u aH2Ǐ*ji5(z9vljszI\9>'[fPCA_94T 2
-l C* ҈pUeGQ1e&
-q݀5%wxbVM [V.T~VH21I*eoőb=9Їy#^jfˌX_>רxos;1DA!6%b-&qI?9Q[vz ]9duFJhExR4=80Xu@S
-tFՆI0jۤyAn
-hs8 zX
-uö9M #ymsO:ᛗ$x ֧T/ ҂۶
-l]/.'**nƛa8w0r
-Sibh#wBrרs4.%zl']\DMZ/.%DL&nPlx)w;Ħ_8*j$ݫ*ύg>z05
-x!Sutx\ klN =b||ͩAN]4PUtndny7S8Pӓ`y=ڮ!?
-U<|Uk-KW
-u)E
-rr<X̸%D:g?T uuoiԭ )Byj07h_R,Xka2l%+4%&̙G !zzCcfa?T/PnɥlR[4(伐ȥzA)KI@
-8--#^4 .Y C񩐲T< GnRӋ;3)LO.Gsv
-endstream
+38 0 obj
+<< /Title 39 0 R /A 36 0 R /Parent 11609 0 R /Prev 34 0 R /Next 42 0 R >>
endobj
-11693 0 obj
-<< /Type /FontDescriptor /FontName /REBVUK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 601 /CapHeight 601 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /C /a /at /b /backslash /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /e /f /five /g /h /hyphen /i /k /l /m /n /o /p /period /q /r /s /t /u /underscore /v /w /x /y /z /zero) /FontFile 11694 0 R >>
+34 0 obj
+<< /Title 35 0 R /A 32 0 R /Parent 11609 0 R /Prev 30 0 R /Next 38 0 R >>
endobj
-11696 0 obj
-<< /Length1 3124 /Length2 30450 /Length3 0 /Filter /FlateDecode /Length 32183 >>
-stream
-xڴuXJtHoJBCCZE@;;K@ns|g;Y볨ȔUDMv. ,̼
-
-j"j,Lz
-`u]<\OD\<\
-L]mrodct9[ހ_I\~3FIr1v#?/:&NƦf>del t??2qK4ce- 3XJ1ffp=_]m~g>6H Vw9폴]X&[z
-yik
-<B啯93,:}bVy0~
-@ m_чI '^5lrX?Z9:P9Mt4Y RFotK7-Z\XR:eW=SNP9=ݦ S: z
-ŠM
-Oۓ*QTW(-a9>o7‡ z{UB^ҐCzSę  Pv|m 3jKSK9C%A24eK:@.9e2mlK;m4A՘RO d"oYgLZUco*z=4^3+sDYs:՝gA* ~YJ2
-U?F{*@b鎄C`zOY$n&G!e`bz+˥' u,=^Fg^~V<u9ZxRbN/"Bfn)%WudopA!JN<#ig5tRI
-JCT>IkwZvgMibMŔmzF L{-(D;*7=~ w' NS _Zb'ȋ', i;/o:H)0<%yg @> n$ʊVB<~14+ Ą(u9w<`'Ո{ໟdja 'w<:8ίoRTGO>XH%$@<h
-Qi.Ky o=ɳa@J^~ 91)~qbtd'Iѵw2R^ݫ(b~Y0q)M#XhB:K, E[+
-+4? dG!OsJ^ø}ʈCyӣsJǽYZ%Nő[XAbwWR/ vã2>iq!iCoD[Fӗ PdR=:(MϜ{Zm/ϋ?%LPaf'^gL]Jlrqﯴ$)H7wBzqjL7ZK։'
-TR6Kzw86m>x$#ٯ9r.˸Rmwizvz!Jel>֔H5:O4<#AtR:kVӶ@UÅ ^^Hr~47|Ţ-̑ezW=gJ("wq'Uj$u0MCql[VZu40k"
-Ȅ73ʣڛ)cmx vүho#qr,diy/c Zgͬ#vzR'|a"x&wy@wBU+4
-nl[PނtNJ\$ʂ):_eѵZVc]zݛ\V5mtc OrJRgnغ(ci-$ϧ-;c5ꭶq6EǛb VyG>%ɢ6~
- %%ú;'1Ah,[qWx1w*n) J~b00XV_gF֝WT" Wȼ*6µOI49+A+d9N0FFO3IS3Q9rʗN/Ze<CZM^˝Jy,R^䍖A|8 Ƀp5X0'_|
-kφKPJ)F^$|z2\uTo}eO;u<G8tT>owСQqr"}l+|cwQL÷2˕#/2/
-9Mit}͂ n!uƆ-D,rZ[9E+*^o2ɗjyZS?v6%oҏ΋ ~{aazsCw ^; (80’ mE)b+feЅA͵v2 d͉KTn~N<^]8JhŀsLu_"i59CPi'!D} A2%RGp)SYr?0^4I\0 *TUf{"o |~;ǃM= r\/`D.1[ݣ+MP{)~kݩpmo~kuv0r = =5t/:;AuC8j~<sAMjQ׷jLNMu+>Whn3A&(+()ܐ}`,•SGʗcc*}GÞ%%649P-r! ? l
-~/ꅐ
-[g;ŅerEl[YPl&] ,ҩd<zùg/?lLf}hcW/؋Iz_CP̝01'5pg܏^yB4C^hӐIYE N˱>-{3}SϵutS=tNTBQ7mdc;6u@5[n7!
-}jZ"Pz5 rߒHLhA_NeK<YqiUCY9_P1nw^.s-/1θ9O=Vɴn( mYeK\;99E'6 8z[SIϷZqnQO)8)~z#!6Dkٙ zmHm|M#TWd*vO{3bW5#ϽoWycng P( dq²&M+ s,y.IJ;yxW}QvrӼp:[E ɶv n|nL֢wEiBC#lo RytbmQBrmSuB\-K$_r `|kLJL%ZHl \2Y
-yx];-B-u;*ؚrJ@/oP0WiQFzVzÅB(}gCP
-e;p<b~(q{y+H'Q/1`Jjgl#6'<)ۡAmS+9UT<
-p\3
-oKO~7P͸,n77FVliX+?RH l+w5B4JV$~)Q ,bGh›ud6ޣ~kp^{lg'*uan}UqEaD
-fdny \d3)a 'K3׫"h%,nC` EOVH*Ϯ:/BpN~{5?onfU:O|CϷf Q4kNO.+ߒGݭ) ~`fA)P{{c4mI*.5Lo[')/5-)T-=]jXQNmB%kgҲo,z !bvZg&\W[J.ã*d y{SNCհnX5/|d=^)F3 !cAב(uoɦ{O
-K(ش ;9ŘU7y= t, B2g;I%b<oA]vp/?/j#lְAjlJ.OEcbw >_?ڗ
-ΏN͵v,&WP)?B@",fZ5iY5Ưs&d]2*Q!L/T@_
-Y ~sqOj0e?RW~lӰp[8Ebr @ $5^Bޡg?HŶe?:3el(3$ $`!h8 u^.`X.GJ+ᘱWFܢ=^+{鬟b= nf}y\C*["p9Vm/̀RtRQW`1E 4&mpBnIY0P7P`Pl2yŬ xx1^Xc?AېWY5LrcU¢ K)'J2n0lFlp6;aN|3<sVbPW{!Ѳ:$$%.쵻J;SAw_Nxr|UwfP^FP$'eJb
-WTj烚ՑQZQZ;= *atfJbʓ26J- ht%5:f賝J{Dۘ`>7PzI+ M a'{mF
-Pus7ك'=Läv!#7Svv 6"ޔ!%S@L+oqS"VC!С}8mHYL͒>9G.|[BwG?kw8>V R/)HK:eI~a(GΥZgoDV[yO>ӎ^JQ)WjTݞ[HC 9o8yqd46Bso\[t2Ǯ/yKfYg~Tݵ-X)dzpLDAPFUU{n[5˝,*[Ɨ2ix.l&,X)A*odY%T÷gʋW>ȔlàqsF;/OK B.RX S\(O|έ4YBϸyt6`~z$0KDgHZ?X7CӶkDk6--^MGn@HO0gK(77+Z>gNRl2KP|cs ?/BԾL?5v+@1रQa*E j\T糜?޿);0Fu@Ճ.- B=w/
-fKu;kY9v9Du&%9~ zJlJ6r,3hH4=s.(ۂ4HDtM@auY;SNjzn[`׋#Ljg\:.qx;92tcZoo ESƟ` Hٺܺձ-M5?[ LE~F
-~c3`J9<3=aWV_h%UɄeR3RTdGTƶ!ȺuK֘S@BA>@Ufp̶#Ȃ:;Zfp9+
-[Rn5
-=>uVJfqgQW-5K /D%OAMbq
-ԞöPQH8Q_);
-쉲@ZY3G &aF).a%mRpVf*{ȔYRitÅj!%RڼF?!9) 1;z{;O2^cW9uWAJɌPsjk{hv2H7&E5 =Q"*l^{]S*48a!saLtPrv<!̽>T
-w07JH6+•=}*?WNRMe3TcB[gN!K<X~‘Kq8whJB[eA6p)L
-e\0Sl OLZHNYu (錮`f՟1(}mPP?scg3wܬ
-@F*yL*jKtʢ'Sfb[7M1(cm|6U7Ju:!霶P-}mԻ&o`Jv?4g0ŕoAil$KˡPzv<yk(zbU۟?XH":Wmېa " ;zn=zvLƉK6 c:FӕyX]Ev
-خ0gBs!zjuÃ%1\5P
-uAQ3O_iY+OQ9Qj[4o2r$fƹiH|)SI3a_=)1QUF(6a)n+NzJ7m@OGw-$ynQ\7/(JuZwFOT45|*…<dg\`߆N܉6Ѫ!蝀0$\=:)Z0sڦJ]hYDvHoX~P|. M?M'ξa{-aRye/эjBֱNd鋯7j ,Zf)[E0g]
-w{™D۸!SaPN ^h"ڑḭQzxv~ /3l;Դ s)υ5N3@
-N$iOz<0UTKKŎNn' [`-YkX[tF]ck? FM
-1IjHп]jy3wӺy6W3댒_;s<1KՂX5n3tOTEh٫mSh(RPTN]Kgz@[m
-{E]ZVR3õ Zn_{2l"G&˗aJre!9O~qqWSp^BT
-駤c.o65`:Lۏ;镉J>kHM.4:/-_T QBx"Է-{`iF󔥣%b`7i7ЭZ+-&WL%ǐQr|p@6E
-yof
-#Y!!h 2 ,s1E6k:S]$}ub9`F8V|1';P(DK+BV*gqҴMqf 3uF׭TYF旼ɭC\ 24zb(oxz}l愴>ی*h+? W+5rU
-#b0/=4׊1G:NpJ_ˬdyB8
-8IB#{N
-3ߞ N'3ԙ[k9aHtTY668&-ix>aQaFÉ<jև2[9%pvs4!X͇ Q%/QPգqhҦl|57-T>eB}6艜!.!;7`tƩYרHooֻۑn "͗ƉЫC˖"";Kޕꮵ'?Z8PPJY-aJ" T8#L|+!^!q
-ϙULݘqlpŌ
-q3Eg!:#CU`c ŪCDZ @`z[/jDFO‰4+h L{j6'R{"RM;<%mW ט1QM3D(NSԾ77?Qq6#_˴΄P_]}u3> pRjwʭf=Vy7 ^u>hYl)'SO *5DTR]FCZz]$=@r}<msY%V~U^`gҠr\&-!KW Y>Ram1&No#Ds< ӵȣˀ%NAT4KF;գ*$C`mAQl$um__5g',5uf/qS"Yi0ʄ\nm7+o9;v5xu: h oϫ3͓ɕ?,fZ<dPbw<*[!mjI z lnV+LD>#=yp,i}NHP11Y1uZIyx;{~wphqׯp*Dž{ec A儩 {8PgRwR /w- THW:v-HԄC<p!
-JRԒx~ʨr
-0R럇k|; WZΏW (~ɯ.L>rxNwZr:)_M1˸n@&~؇.&52|T s{SR>\>y`qKaPUVTlPɛ[h=l6掦G7 `ϡƧ"L>
-.jDNGdzɯ䖋iޟ{L\&B{zxtco[[.2lmyk/L2>OCČQZ_?Z`G DC ?ƠەqӭOX gV%;uZJ
-6@̛ 92rug.kޅ2d{" Pz{ 3ΆsPɽǟB_
-X?ͰBj'_5I7m1&NwR͛J37RFvFt(;ǪA)븭ط9|Fws<ӟfouSܡEKӀ |Mӽm=NsP$'A_9 A.Vk:H1J% baCl
-:@nѥcHZt܈ĜEe20lhuZu
-um#0iR܊h,y@\<[H !7yLD
-zDҮ||v7o"x\*&sȩ2huOkϥ7#WP<&ӔS`M\h6n>+{8
-Kk%W:CcXߋXbN:9]P
-!ʍ*fqQ(ݥk{EmyMnPÕS]>%naBF)gA<'<m#
-WcW,X*5Ϟ0]T)
-HW<7ľܤ' YY%#PS. Vn1€F$o䂬tdycO:&5QW͍{HD[jy-[eTAbpd9dvy 3T*%Z(R:%u@
->7GSk&VbxҊ<=/đKN/_>.#7ѳ&B0{)|b9Š6ϼL *
-."WP5ei8;]}|Or@YL[ײ齁r'3F4Tʥ!Z+X'L$?0٬9D({VFa:BuYC}fcH3lo!v}~ٜ+?R!7Hݘ ǧ om?D6I8݊>H.-"wOG9;ab'qڼt
-ba|EdE߈% ̔ϲk<G
-x4& Poeb:OMsEw9}UY0/*`hfg(~\ZHc:,iŽ\mNa50|W|FDˉi*o_@r5ȠaZz]BN=ˣC -ڵHYDDxPW΂O
-ub xy
-)o߀!JL_zF+ #| x;fDh&(;FɉPtf0RwZ6-iN݉m#X/0T^, p]1KcE$2 2rloQ`TY U(q$y%ו+O2zj4H60lbuZkLnWsϚ!B:\Lg#Q6ԡ3r3MBγW[[_*jX%Qa}; Q[Vy袕
-j,T48"eMr8]q4>_fӊb*N)n8w^(~3$
-o7gqiЗ7-/nɤTaE HW~~xk,1;A;gO?h ^K~٪•)1A~b/z !,MHv=9qɈvmv1.Ϊ/"6kZEv
->tj /_wN Fқ,UUy G<<Ni]ջFo>{R1E.4kC@'@.lx3򞶄x*)/zZy (
-^uc
-jQ*)V%1ZYwHq4`cb4$[up୆S6[*\d]jоN]Ӱ\HxE]mʢ|0jJɎ)*FP*V?Cm0\vݜIϭ >diz񖽖G~+#X_\޵Tfߚ/o1h6B4tY5Db,| VOSB FxgқfMMGi`h0MMzc12~lĽC4$k̀b檯<4Ok~
-iPk{⒰">0*sWBZ/[+՘}M#G%<E4k9pCxR)DdJ!ZӰJ(UW$V-go9͏@=(3^H \ mr܃Ha
-5$'>Ү)GbkGFm@,hT#qJ 1|JN6 i{ŷjpa pnE~%xY^z3 XĪ(}"
-)dM  A$-!KrqmU/DXz jLmCNX6m
-41/)AiI""
-ʺWDSxo7N]1{1Mx"ɿ3 }ؘȎP]•86$HM ۂ<mȗ銑:0CdoN1onKy5G'I[{!쌖x.t7cNq0aۄm5\.-HM8}%+),Oaj͢8c<m .sRhkt>\4l,wrp2Tfu~MAj5[aL72bEu@<E!;$2 0WL9@Yeq NW!ʋR6q\V0(Π`MWYq2G"
-fi:8f T4u=ϞBT x<'sR‚Uqwk 8Ч Fq֛u,zqhsj/"?w<̳JB-͘!E;i"}<);yx7U[; kwbX:RkL~ӌD~4Ӱqݒ샢t&E6pviGFT&FY4gB[VvRlڞqhIxclNϛ c
-\RBUjך2sWZvh*W {i-uٞK/e@
-vgN >2 柯/u^ 38=`1$Srxr`ЬX52$+=#eeI
-bDű;N h 3Z):
-Nzإq`尉WSc }Z,8/?ՙũKa;SbmTWb
-y
- t~p h ZVt;A<ٳjZjRA!L(##=T`m."a<OKo$d#Fe{`;O\kfvaiK pp𫠅.}-ˬe:rcG03'\(4amXZD<7Lˈ+LeQ;1d`*x璠m&"0Ȍ^Ʃe
-?zq &qɓ7 !1Wݘ)nKtDn_8Ig|J1,{CgYx: v҄=QΔFq@捅0\(U̴(ft }kA۽[LJdmu@9E$kW*DhlfxҞ05)
- :U+hR
-'sk }+߁ZꞓFg պ7ęo^^a5a
-*Ty8͞{kX`+7*:lJ= ux8E26drٻv7j㱩97 _?;c.
-';;&<۰ek'f#SX1e¡H &۝A8j]JϔG"NJup=7ϟqx2<$I^d?5O1I B6/?ٞX_5Ÿ HЃ"W%*
-I۲ɵ_@,v7YT{.n bЪĽd~45e#PܿnycQ97}?9V{au D!)
-T
-ͬcBM(XQCn`+". S wDkY@&r
-ϯMTc<sF;YPۂ+$.PK\eQ<`x]->$L̙~7ow=B2ɧ
-=*!3ۚIKnY7p0$Rj~d˞;C&0.-µ\I13}zW]C}UbJ떴X#~dXs :vdn2DSJǮd
-Iyñ7ʹ`~Bc8ߞQ{gr'cݓt睋SWoR$gXɯp_oc~1@ÒTn@Qf|C.c:=2
-_MA%s\K.? vS2P9:Q =+sz iWyNdgk*7R&8]bN|{`y C$t(p/bG.{G`6r'WoUUfZolUt.EEު/ &@u'.L1
-Ȁof!
-42:otAvNcCC&yA-\(|3~|lc^}' q_Zyխ׾EZ  F &nX9T'y"e
- ޠּU&OۃE없176uʘ &26n/Ä́:v
-c G^bH`ͨRY1Ah:찄pF:D8cb AJy[5u`rOvVTQa"nιYVG43u*kȒ_6ɮV#vrpO2==2Cf#Ucįj*U"bsF$xXT-Bn-c`|{ɒ&QДJ'\Sɋ@w kh{-K qSZ+9!?ޣeS
-_~z|ז%2%ּwF9k(1{D15?>q׌*-F`ar?$*T ICm1lfzC{
-%'4g}мw+='3!dgξ\8$T;&PN]Т-mŸHKN[Rhb̉")9#tlqeNR
-3(an[k*MĮg&xDRm9FYOPi&!JxNء' ( %/ȋ[$PqPye9"AV}zȵv?Ezt'Ȥ,U8r?V5BN2H $?V*)sOq Y΋04Suc=oZ =͗hW/ "u%aM?AB~cVN
-~-]9eF|8a ҉]h/X颢1dSE[.1>JPBq$5TDh?(Y|]*he#.UB7)с4:aнr8_.P0v q&1)u3u& 귳[ &rQ›i~f Tջ[}d꤅ۢ m)u_u.CaU]M9.
-lH#حNH{`)D:A"n`KsK`vF@G]`Rִ"f&u_L`IASLvViXs{'4))xڏIbz}wso8
-=]KNmV-x9xE1pmMpJ4Ġh[@rh3i' P=\`#
-ioFdmꚤbkOl~(\F:\,>=Ɗ3;9غ\2h h9t /Yoۂ ʁZ= *063/TBzGeaǽ/QNBhV; fZz"_ @Z]nN~+6M^
-\JO7dd`~֞`lMqQSJ_Q*ْ\gNpvҰ|oe5\*xCPOX7s[s3+՛ $>.Ug)\-Y:I<0d9-(Z.`aF3 |#-YC&~AP&tN3T?6MFT
-ד9VF_ނQ|e>Q]?s>hjϧ6q^
-&J%7Hy=1N%u<v[;(aĊlDk\VT8)ډZp. ev/#[p1_sǜIZܛPiq"r=>πݤkY2j[K KAŁc&[(dl Gy3<_ uSmQdږ*!i_]#-ƿj$ID ‡?TMk3-$H Fx(RԻ(e|z7!v]O(y/U_V edV~$Cu+&*HM>}IiI1KC'lN5NvYZ7(h!DѶ8d2 ĭ h!J_52!`o_W,* ѴIqx<C72X9[DtRScHA%D;pcʳq9qc)_"ny+>Mɚ~hؗu)Yr NΟVTR?<ktaHgYÖ(=4>wĜRW,ي\ KG~.bQMg1^Z C GiN1q0~Tc+EG6.&)N¤4Zjc>"ռ '{&aLP]41Baߣ
->0[qZ^C2-{isj6!"O1
-WϚ' 'S\b&YF79/t!߸( #gBR8-r{H+*o<`PAg,|h{4k-[. b<AOn
-2__WUN"oj0cuAy5k)fFc@iz艌~rH,Th+gR9  h?P
-~:r4=7ސ5dp|r$Q$WiH[E.
-IP"HԇU);pX8folg7]l\Jl#̴~\DuEQm7r>ChF4rS:DT?j}Ȉ$Wـl kj7yĭ^ے6Q"RU8R׀Ww
-5mXrݔɫ}RK=<b| QDe
-,`QTGrL@3B2+L! Wocxjnt9J.) \9y}r;di9<=V*8>Z8حe9J׏昖N:K<<\2crB
-j'IUSF_:c"ld5 zN=ht?|pDCOk
-6_>Ύ!c20ǧS(&O+".;=??Aeg`_
-o!%B:>X1sa )AC1 ݘf\"SƻynwDIYg`,,h32;th8 si% 5DTQe
-CVBX 2%։H}/36m2lnzޥSeEa(|!buﶄrw(9Ufo*&+k7教^wN68џl¢8[uNڕRj
-/ +r& !M唟4C>X"B&ߴ)B[ ⇂N5!>n}jO0mš,V)>ˌ-=dm-+"⇚n~0Tέv^=ubBv/s8C@y t|IϐXfgVnd /̑]sW^ڐtҧ0
-z i-XBcАC-~bHAV0eq(cpK%S#T2N~.O)i4ڈٗ96྆#&߃Vt<~\m45AWDa_ ^jV-fQ)Go[=tlf-;
-endstream
+30 0 obj
+<< /Title 31 0 R /A 28 0 R /Parent 11609 0 R /Prev 26 0 R /Next 34 0 R >>
endobj
-11695 0 obj
-<< /Type /FontDescriptor /FontName /GVYJDY+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /K /L /M /N /O /P /R /S /T /U /V /W /X /Y /Z /a /ampersand /asciicircum /asciitilde /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /grave.ts1 /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /percent /period /plus /q /question /quotedbl /quotesingle.ts1 /r /s /semicolon /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11696 0 R >>
+26 0 obj
+<< /Title 27 0 R /A 24 0 R /Parent 11609 0 R /Prev 22 0 R /Next 30 0 R >>
endobj
-11698 0 obj
-<< /Length1 1863 /Length2 22779 /Length3 0 /Filter /FlateDecode /Length 23842 >>
-stream
-xڴyeX[m.Z܃CqwwwIp/P(E7߼3gsJv^ZOޡ&W`
- ]M]\
-?JXj>Uº0Y]D;@l,_j T:e=zBMtOɏMJl<_Y+([i)X>Hs&#5~">yFaXٱVia7t7v|&Eap E'}>mWGI"79r8?Պ機}2")7+Ɓt)˘6Q\1f$HiYQkV'1 Eӗ
-Ծ, .L(}PZSC ۊ=V2:FJޏ;X\tQxج<yVTst,/~TBd X4*.Ә?o|Vh*M;D o`ШTLX@SP7jrM~_ܣRZ'@ְ=n
-xB~5; ADҩ{~)BUr#"Ƈz#[vju5;1勾V7?ԇ;ˍʫF>%HpYR'=b38fYF:ջ|CкL$%aqpUhayV+"2ZXle_HDJO8~Ѡ8^G 4uR@@LBJ12oؕR:(Llgkgj}q: cw&?z͑MH}zV?BԳhr4F}x0>7R6,^e-sHOFX֛6/!Tx_mIx3ͻ-H5cͷ.˲xD
-i>7L%uT hg2˚՜CMtԵ^8e
-G%ghWw&6B܅'~B)i4. /򰞊,!N|t3>F٫&76=F:H dS{b \]K6_Fw!Cr K:L+ɼlUdSw=!xfMffd="n'ȗӄU\{wydO* үOQwߐ'Axɺ)K3D31弍cEjxV#YJbD{Ix(1^(<-LBDO{(Ar+ lJx!s^C:l0o{L^ I%0,
-U-ϰ$ $|4УP}T"G-\,OōWa`,$ 8ٟ0 4M!%&#C7|v{,DD>
-yGwRHi VQ0'ߵg9H Lxd)k`Ə591>Kfh} dBɰbXI5bt8EtChk63=FX07wZB?,>}&cK(:D!;tcku)Kb5$!=KHSъ r<V=F6 ~ٞib=>=$⿸ᄩMEAW[JxT6=$to%.rRvB!3f?`.Iӂ5A*nթR_ћ e EWkRTX\+Yc䞢̮m)ۂ@hLi0=]@Q]p FbFQx15=q2] b;{alU1#6le'[n;s^^<ӃXfشKbb%=)awւHŭNu݆}!K+/mlLżpM40.s&{m+~3Z (xܡ $Us~9# o\&ZXןco+(69݉ic궰N\4L_hǢ֨0x]ȮY1|0|ߓkP~ DIb&S>9>]e Jwc}8yitPwAtt&I\z~<5 F5Znb eiuCCɋAwI2Qp P[ՓFPN@">Du<?^
-$b4j7bzZ70# !`ɔ_B)!3/6' Ț'.xkC@0cDιu{ mYE>`8P6,C#QiJ!%O6zPȒPlU~Ž D
-nyVC6) m̲.Vbb%}
-iERר(VUΆ鐗셕{ʘhbN2 E rP&|P
-2iij<Qi֜l}˩ %`z^B?w(SE(c%xtF)d9<ˏئK? ]' i"Vi}CDad |Ж4e
-<d v6ڋ>'K+;ǁD\t7҅>Z bi[ Q -pHkDF+<8QR:(bLWJ:Ẍ́1;R/4 d×(XdnE`wL|xhLjfyA>''G}ac= jbj(7v'cLIG,)wc#ze ᕀGA4>JT-AbdO[IRԩiBx=5,o{,gxܷrD&t_ϱ1jYОb2'ߚ@|¡E.#%UO3儭EpI؊PGJr2!wu'TU#1.o볬1w <\
-E܉JN$V
-и찪>
-#?8LB!Ȝ͏0eD}ZoQIH]p 1,I&dFk
-cGq>z1q ظs[/耻h 'ĈOOr9>|1P@7f>ȨiHYM)XX9Ȗ? S>]?6>Lŗ{R<E`kɺ?ȶ%ۊai5
-M; _EI[٭]&4uW۳)$TG_Pvbl#~ڕ_v+t29읝NW{心,EvԕMth򬟂} bny<oy*!OInD@DaDZ1H
-A2]J`!|12[OGȷJc^>y0sɨ@?$:ntew+s 7nDUcYd4։z89k;<*uCS i(҇z}V|V^}tNc~D, %;Ü giI}égi!ug(?(M֗3۵j9}1`6?~D.aqH=Z$t\w% Zi*4 [.2İx$-eK=;mq;_K7qX<xVܭn;U hWٳt+ buuCeSF;mE܅r6Si[*7F BU0NK^wf>a9HQT: uƧtzݬ{<ML"ĸ~l`:V'i\H+eҢt:*n}(^E^=T}֜k9M$r6x' YL?O LlKԛa:3^bjXiZ~Ě!B8K vN"XdvpS>̟fim>aLmw2HVڒ' xx1/z 8netWYL"oSeڸ7 Nz%w=`sLib
-@$H1P(at<|m\c*l$6Y۠щ#=D D9w{XCn)m'6QXXK'RQ5
-ӒAE65[MUװZ%(< j[:OK~ #!Qz ugŪr.h$@m5gct_lc à2&*~3y`sjQ|CD_XǾD&/CbTKr8H5Q{U2v=<a+^FoRΧLi2r<M\dP;@ha|Óx䪿f=%bP ܒ׹  `9/*c&D|LL$_I!OOq&ӹ/+]wkPP-α78 9ݽ. IM#Nnq@b.gf#fS!
-,2;o}dT[)F n=r_P υ;2!R:Lcp:~D[QyV*eZU߭6ed{g9z _t$]Lc͐Dވmk} : Ґ[rM \ݨŸu;ӫzRD-:glW
-
-kLGUiLfl!y%M568Ȍ!j9\쉾`)ֳbbB GFe<о2!qWip!L8,R+'Ub [rE4{/Q?쀚(eD
-a?!'ڦm E*)>9iIW+٧(9(Wä5[C`Yڈ-ㆾч'y'dcJ <>Q`7*W+/^c ,i˿8{soZ"SCƋV;
-_nY_PshK[ 1TITAF/8AmLڒFJܹѐmd-jT$GU-9z-v)n^Å*?q)V@jZ6tO!;nh[Tɿ{Ȑ,BEͭ=>bO w1kF3g;GI8n"Yaȹj?W!ow",NV0_g _٪o#T3'$5N%-7<>pi+0!PES2eQAتoOH,D5s݅5䨵cY^Kh;CMMg3442kY{FIYFŽ=h^@ A1 ӯST z+TCzT]梂>r}Ú
-r}%J)!Ф"ʶp5>w/phz;F|_
-9uQkL4qK'~`v8pZ:bȣY7U],SG$ 5V坷<L um.#Qz' W~dlʍ4JH~xv^-ЍuD{~_<*s測4*ffe5A)Qf硞T-q8UN3_fGx|,F87[ziJh{%W~fF"1";O+q 5
-aMw!O<
-2`=P6^պg=7*lR[9Eȣ0r3zAtգyCU]ۘ2㯿eكusSߏɭ
-O!$YxlWYt#E1-hlSiP/97*o>/q?}m!Ʒ; A(SċA \Mڰйsԍ*Zdι!>[թ6 |RH#b`EvD
-[$ӗc ΃&
-LOq|RfiSw}x
-Ƒ~~s/PC/Ps\ ^oe|3̒Ɵg#+Qyo"=Ki_9GƺX†On]{TY-I?5n7{+zx
-3JhR *
-y0^E*AMpk6ۂvdȣbf1CV|LIEx:4C[ S-3%HtHUȢrf+}qfg)ύaD\eC)JzƟ;D\w-;ղ ޟjx=*PN*DΞ7IwEzg g=8@a満R+\UUo/._[
-
-acWeq
-ЋNsx9-j g# rP/v,4_JVѐ0L?۬hAh9>|M0Ju c^H_Td398Q%p5>z-l5 
-nX7n3v!g'9o+j:}cD|r|7
-MjMO:} ]gl̛Uܞqy
-?WO/G4 ӕ@|Bۍ'G/UukJV:ޭ攏 1"7I2fޒ}/\,XL&kh;0MvDzvr-@ X+}/8Io'̌zk7i~JzMkxD_]-pp nZ`sx__Һ6<%@yJi!Ѐ= ΢"*Cs=VnGE|]"&JD1c[Mz%ln/<=Ez
-8g#}k}H %mBI=R2ZXajW8|ͭ3\CzIʎEn.=a&Ϩiza-r|;3y72^ZObCдj_c+F*MvD/pOr8Vax {|Y,It5d2U&c0#EVU_6N[*rE%
-N31]7̝ݠQB6t6؛m ew& 2dɨYgPfr"+؉@ǒ_%K
-Մ*k!\ ݨ̀Žp^BC8wFu$D ޸hp f`/7Sp';&NEQA[4q(;;Uz]pODmФFj7V02GM6p<dmy^ ۅ [[kZ?
-|B<W_2]I[ö-VN)H%۠B[ m+XƳ|#
-lA4}2dT yڐ[ GĈb=>G4^^\.P:g|OtUBE'$.3 7QPKPu }Ιrϱ?*nďVupPS6=o));wӤ
-l(+<1pB$+h&ݕ^<sFF_k_SZm2q8n(z
-+;6jҼ3)x}ӵl1(>B
-PP]5QG)L$VkB_#:)%Aʎ|dャnAiޫROD #4,/z*9=Tؗ{45 ~3SZ~HJ^Jݮ;I}|8ms >ԄWUZ[?za#hI2LԈav/Rb?<SӍɦ%^6 h꼢Y_6IMMW4+OGi_c@=nF RU> mkJ<lU߰AOVH~UjWO&m֪>-GQ< q uY0xQo8<)K9c,묱t34Gk':r(Fkj$lu1n7%~6`]ƺrR aEĥn.l Եt)k0Nٸ5uG|dUBb|HRܽAd^CAϫmzėv_iA-(y{f ȶ$e^1sElEoEn^HL:i1 RIF0?Td횇S&*Q  QcN%]aīda1S„y&,Y''TA<缱LW|5nOhPhpGKTeF;2XK"Bǰ3&Ac(3YFQny+;SV)&Cvi93&sכL0pGp1 }<C͌i
-;ȿ k,[.p%8jn-U%^W5~cYM
-< ;mW<C'?$a.ר4ާ|~n/81g4Jˉ ['yXk\$Ͽ#a$h̎ ,"Opzژ’3(N1`D=٪Ŋ
-h$p(9]"oڗwyƓXQ(X OS8i@{ocvRoLHZ1:&cMbbHÑ+0cgNJxrd OI7
-6
-u΄oqQHG{Atmf>O:. ~"Gr-}u{%3 6WH:BΡGFuAE5 -Ã<܇x:ҋ_kwX6vn}f,NFL񡗿Tɗ~4:"i$ iSk_x(@ %i "n
-ޫ"G^M[ @${paK2QSWW#K{kRŪQwcC_rR?.Op%bm|,Ed`.՛ 'pWGbo 38w Ke/> 3Shrt%[ 0'R |<OH?p {߶̱-MXۑxg&|srgol;;J3Z\Qo/cʑ ]1ccIQq)ˌã[H1I"h݋ѕ^Xha~/צ!`,&h'Q.U;Ɍ$75YճiLD{lKv&<ܧ Rvf=|2F9#osvVomD!M}>hGAhpK6p\Vviu
-"S(uΓ#\}Nq
-:xg)O~NN#]D NhDjFtx[W{MD;@<gfQG2JXҍƳDC+q3+r0^হI!]_zFqXuKo8%c&c_-?)J9r ◎|y}/q(
-oR$1E$$x8H䱲YdGO~.uQ+n@7
-]D@Q#߱2yf;ME(ƺt*qNq0 ml6FLl۶Ƥm;۶mz^'k]VBZzҜ;,cP@Ʊ A?$MJw^Gӫc5]WqxbZ8S=RRԤ{}Ӡ)h%._'V`9*Aj 7yX,tAc)Iܔ(co#a;=-L"!z% z].σEjn˜ﭨ_LijB]f?;<-2˸GתPD44&39;gKRex;ˏ}ۈGOUNŗy;9D!X4ĩoA۝=Gv3D9e2qlC1!(Ĭf>bhq
-Q/s6Gh"+>IÞߍfּ)NAcLSxԟPsq,$>2XKQS} z3[gu*x)u9 r kRou!ʀ/_ib1ĮEǟIb7hGC>--ŏTŢE<>>r }2"59BOvy#*xxԘEڥ5
-iϕCo\N<PPWa/)}+;uCή6tNlT1[?uo9nbm
-R-VdZ!+HL)kΟO\]H3ۧ8C}(< 7.@W8v,1$cBH%)8f{bZ x^uEǾkCµ=&dbZj/,7f8G#%ϖI9uMC]@bXAI,pMm3^y
-TzK`/W=I&2dmB=;=6;TǠ3P[q G{U%F?HO7oC؁_ԀC#eU:OZ"u~ix bv ټ5{aQ.#+Rro~I<<l;dM.J>s7Z;w.w'bA%!P1Rz fWOyJ*b-;3GXGV=SY2)W˖CLsʖ\-tBq:K?愾54) Yoҋ/ EFa3L 9aRI?Mp4YMÚ՚U}a|!kWi&CA$$ZyˑbMI@'ڦ?Ck[
-Wn|b̾h^K?͹׷0H ݶ19N$ƨ5X 3tg5<H9WZc>0ڤ̃
-sϫ %bk Vf؀YY+Zx%gwLD?iJ~԰4O5;){Lx&5s=&N" lW5]ۥH܋@xsf1r
-
-.HŒG1Y +h6&F^.dl٩Xm`7|x(dm}NTNqJPԕŒTV_K
-j~iD)pϮ׾UmStԏ^ɉ qi4)#}Zs
-T~`D'~H(&}#r;Ĉ>0(GU.7H*Qjx]ʡCUD!w0s?yNy̵b63 yoh1ėi:͗Vg/COK,Hp( #DϚʪ^
-5K y\ Xe.GNprb6Hz!Ӣ&6f^/e(3)\
-E޳+n̨|z,('NWƧGϹVns2('N7nbl#6 @ ¼5'tv0t)e VGW9F$X%dfT fyBgs"EQ{͖*UjfUrrD'LFĔx`_%w˦xhˀlO7b}Q33d$9'kKX*b穢O1;؈!'T7.=CI4"yT گ<<ԅ=t~(DrE+&CJqmFܡlx=EW 1x/ cY4 1K* [8Џ3jzDap,,k]rX$Dcxmx8DH^`ÌW`]:<,{檐M*i2o׉B9!2 )?j[a<(PW'M?fXA
-jes`Aq|=:|Ŀ#+4NnQ1X R6JbL!qL?;N̶e(6Us%߅<-=h?v
-Jk$޽c[@{127>f:8_r}I-OBFeK覰**(P܏5M޽6zF0xs<=[-0-u!߰ǩ[91̌hYfHk2
-eBt~|EFwpASBC߅m?<Ut `dGckIoTR$jG7FR&鰲Žڕ|}-xnauX!9j\9}8j~E|
-C3_cY7])ir3.CѨ.A}qlF[DjUk
-;*ߍd8"93V1 5 ~I^jf<6MywAy+g5pϹseޒG{~f~Z?f*Yl8{]Sདྷ F6v?5,Tx($5W2ǟ>-o-j~P$2a3~N23!La\eP4Ĝ%d#t]}$2<X񓌑~+cs$r;lZ<~f>ܮYVk("OnwkieJ^
-mU1Wx%@,1Ё:㍛dIDts_g
-qp r~/n
-{t֦~X
-j2yuSd!Bbn1?Hy YSw\L kO`ӺܶY*՗9D)r9R줉TZG;o*{&+SBᮈ4~E rdbF=dT<~K&Zb_rQJxv~ݒ%E顈P?~?Ѧ}X)fGo8@
-p&Yנ- +j/7
-Al)
-oSD&UAUm͕fҎ]26JO%~kA$c!F%޵Iy*#;3KQ9FR߳gȽV:B =b_աZsT5r(|zCLE;@u#'D{5P,яr&]>B15KȂEcSqg|"5fYn*sKPb|qml8ɣ5|D=TÅS3w(g&|Wrο~lwrL AַqS
-4;dkTX+tU>\ht^4Hns=S=F
-9ׇjlz;x?#7SB;8>\ܳc^@=R<aX5u*xG&9J,-S`
-ip6?2M /2ܵKo~X:S\<=:\UTQ '2\lDa1wµd[,64ąWbJ]ΑQglB<URQjSC1.[Ͼ.V~h\1TeT6/ Fkhfʃ?߆mENd@en4Ķp8Qc/Lu Dn83xH0b
-NLVϺ(GkI4tըkgy[d]z.g0ѯ.BD J_KZZv+L퀩=YڰE@0,o(27&Z,=6C}"0 >PqvʵF 7hp h!7^>N0݈(994"E| \7*
-{H #taQ+MCfפ~\=謆n6F="T Q*7(Ɔ;GAZ=&X"\7=O#8̊䳏_6Yuw1BS2V1Yr=(+qs~`
-(3`*J>$C
-S)<fAg/R6Jſ=rZ cX%Bs>M
-/)1fXf5DJhl3:ei+-aʤe[
-endstream
+22 0 obj
+<< /Title 23 0 R /A 20 0 R /Parent 11609 0 R /Prev 18 0 R /Next 26 0 R >>
endobj
-11697 0 obj
-<< /Type /FontDescriptor /FontName /NWBRFF+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet( /a /b /e /f /h /i /j /l /n /o /r /t /u /x) /FontFile 11698 0 R >>
+18 0 obj
+<< /Title 19 0 R /A 16 0 R /Parent 11609 0 R /Prev 14 0 R /Next 22 0 R >>
endobj
-11606 0 obj
-<< /Type /Encoding /Differences [ 16 /quotedblleft /quotedblright 21 /endash /emdash 27 /ff /fi /fl /ffi 33 /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P 82 /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde ] >>
+14 0 obj
+<< /Title 15 0 R /A 12 0 R /Parent 11609 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
-11604 0 obj
-<< /Type /Encoding /Differences [ 48 /parenlefttp /parenrighttp /bracketlefttp /bracketrighttp /bracketleftbt /bracketrightbt 64 /parenleftbt /parenrightbt ] >>
+10 0 obj
+<< /Title 11 0 R /A 8 0 R /Parent 11609 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
-11602 0 obj
-<< /Type /Encoding /Differences [ 62 /greater 96 /lscript /a /b /c 105 /i /j /k /l 110 /n 120 /x /y ] >>
+6 0 obj
+<< /Title 7 0 R /A 4 0 R /Parent 11609 0 R /Next 10 0 R >>
endobj
11610 0 obj
-<< /Type /Encoding /Differences [ 0 /minus 3 /asteriskmath ] >>
-endobj
-11608 0 obj
-<< /Type /Encoding /Differences [ 1 /Delta 43 /plus 48 /zero /one /two /three /four /five /six /seven ] >>
+<< /Names [ (Doc-Start) 169 0 R (HD.1) 184 0 R (HD.10) 194 0 R (HD.100) 301 0 R (HD.1000) 1335 0 R (HD.10000) 11156 0 R (HD.10001) 11157 0 R (HD.10002) 11158 0 R (HD.10003) 11159 0 R (HD.10004) 11160 0 R (HD.10005) 11161 0 R (HD.10006) 11162 0 R (HD.10007) 11163 0 R (HD.10008) 11164 0 R (HD.10009) 11165 0 R (HD.1001) 1336 0 R (HD.10010) 11166 0 R (HD.10011) 11167 0 R (HD.10012) 11168 0 R (HD.10013) 11169 0 R (HD.10014) 11170 0 R (HD.10015) 11171 0 R (HD.10016) 11172 0 R (HD.10017) 11173 0 R (HD.10018) 11174 0 R (HD.10019) 11175 0 R (HD.1002) 1337 0 R (HD.10020) 11176 0 R (HD.10021) 11177 0 R (HD.10022) 11178 0 R (HD.10023) 11179 0 R (HD.10024) 11180 0 R ] /Limits [ (Doc-Start) (HD.10024) ] >>
endobj
-11614 0 obj
-<< /Type /Encoding /Differences [ 39 /quotesingle.ts1 96 /grave.ts1 136 /bullet ] >>
-endobj
-749 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /OCVDMH+LMRoman10-Bold /FontDescriptor 11641 0 R /FirstChar 21 /LastChar 125 /Widths 11613 0 R /Encoding 11606 0 R >>
-endobj
-187 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /LCRVQF+LMRoman12-Bold /FontDescriptor 11643 0 R /FirstChar 28 /LastChar 125 /Widths 11627 0 R /Encoding 11606 0 R >>
-endobj
-179 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WCAPHI+LMRoman9-Bold /FontDescriptor 11645 0 R /FirstChar 65 /LastChar 116 /Widths 11635 0 R /Encoding 11606 0 R >>
-endobj
-556 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /YSYFAJ+LMRomanCaps10-Regular /FontDescriptor 11647 0 R /FirstChar 97 /LastChar 115 /Widths 11618 0 R /Encoding 11606 0 R >>
-endobj
-184 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 16 /LastChar 122 /Widths 11630 0 R /Encoding 11606 0 R >>
-endobj
-177 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MTUVDN+LMRoman12-Regular /FontDescriptor 11657 0 R /FirstChar 44 /LastChar 121 /Widths 11637 0 R /Encoding 11606 0 R >>
-endobj
-174 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JTSGNV+LMRoman17-Regular /FontDescriptor 11659 0 R /FirstChar 84 /LastChar 116 /Widths 11640 0 R /Encoding 11606 0 R >>
-endobj
-480 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /HUFBEO+LMRoman6-Regular /FontDescriptor 11661 0 R /FirstChar 48 /LastChar 57 /Widths 11619 0 R /Encoding 11606 0 R >>
-endobj
-473 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /SXHXQW+LMRoman7-Regular /FontDescriptor 11663 0 R /FirstChar 48 /LastChar 57 /Widths 11620 0 R /Encoding 11606 0 R >>
-endobj
-205 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11665 0 R /FirstChar 16 /LastChar 122 /Widths 11624 0 R /Encoding 11606 0 R >>
+11611 0 obj
+<< /Names [ (HD.10025) 11181 0 R (HD.10026) 11182 0 R (HD.10027) 11183 0 R (HD.10028) 11184 0 R (HD.10029) 11185 0 R (HD.1003) 1338 0 R (HD.10030) 11186 0 R (HD.10031) 11187 0 R (HD.10032) 11188 0 R (HD.10033) 11189 0 R (HD.10034) 11190 0 R (HD.10035) 11191 0 R (HD.10036) 11192 0 R (HD.10037) 11193 0 R (HD.10038) 11194 0 R (HD.10039) 11195 0 R (HD.1004) 1339 0 R (HD.10040) 11200 0 R (HD.10041) 11201 0 R (HD.10042) 11202 0 R (HD.10043) 11203 0 R (HD.10044) 11204 0 R (HD.10045) 11205 0 R (HD.10046) 11206 0 R (HD.10047) 11207 0 R (HD.10048) 11208 0 R (HD.10049) 11209 0 R (HD.1005) 1340 0 R (HD.10050) 11210 0 R (HD.10051) 11211 0 R (HD.10052) 11212 0 R (HD.10053) 11213 0 R ] /Limits [ (HD.10025) (HD.10053) ] >>
endobj
-180 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /BYGIQZ+LMRoman9-Regular /FontDescriptor 11667 0 R /FirstChar 39 /LastChar 119 /Widths 11634 0 R /Encoding 11606 0 R >>
+11612 0 obj
+<< /Names [ (HD.10054) 11214 0 R (HD.10055) 11215 0 R (HD.10056) 11216 0 R (HD.10057) 11217 0 R (HD.10058) 11218 0 R (HD.10059) 11219 0 R (HD.1006) 1341 0 R (HD.10060) 11220 0 R (HD.10061) 11221 0 R (HD.10062) 11222 0 R (HD.10063) 11223 0 R (HD.10064) 11224 0 R (HD.10065) 11225 0 R (HD.10066) 11226 0 R (HD.10067) 11227 0 R (HD.10068) 11228 0 R (HD.10069) 11229 0 R (HD.1007) 1342 0 R (HD.10070) 11230 0 R (HD.10071) 11231 0 R (HD.10072) 11232 0 R (HD.10073) 11233 0 R (HD.10074) 11234 0 R (HD.10075) 11235 0 R (HD.10076) 11236 0 R (HD.10077) 11237 0 R (HD.10078) 11238 0 R (HD.10079) 11239 0 R (HD.1008) 1343 0 R (HD.10080) 11240 0 R (HD.10081) 11241 0 R (HD.10082) 11242 0 R ] /Limits [ (HD.10054) (HD.10082) ] >>
endobj
-318 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NRYMBG+LMRoman10-Italic /FontDescriptor 11669 0 R /FirstChar 28 /LastChar 121 /Widths 11621 0 R /Encoding 11606 0 R >>
+11613 0 obj
+<< /Names [ (HD.10083) 11243 0 R (HD.10084) 11244 0 R (HD.10085) 11245 0 R (HD.10086) 11246 0 R (HD.10087) 11247 0 R (HD.10088) 11248 0 R (HD.10089) 11249 0 R (HD.1009) 1344 0 R (HD.10090) 11250 0 R (HD.10091) 11251 0 R (HD.10092) 11252 0 R (HD.10093) 11253 0 R (HD.10094) 11254 0 R (HD.10095) 11255 0 R (HD.10096) 11256 0 R (HD.10097) 11257 0 R (HD.10098) 11258 0 R (HD.10099) 11259 0 R (HD.101) 302 0 R (HD.1010) 1345 0 R (HD.10100) 11260 0 R (HD.10101) 11265 0 R (HD.10102) 11266 0 R (HD.10103) 11267 0 R (HD.10104) 11268 0 R (HD.10105) 11269 0 R (HD.10106) 11270 0 R (HD.10107) 11271 0 R (HD.10108) 11272 0 R (HD.10109) 11273 0 R (HD.1011) 1346 0 R (HD.10110) 11274 0 R ] /Limits [ (HD.10083) (HD.10110) ] >>
endobj
-182 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TXCPTT+LMRoman9-Italic /FontDescriptor 11671 0 R /FirstChar 110 /LastChar 116 /Widths 11632 0 R /Encoding 11606 0 R >>
+11614 0 obj
+<< /Names [ (HD.10111) 11275 0 R (HD.10112) 11276 0 R (HD.10113) 11277 0 R (HD.10114) 11278 0 R (HD.10115) 11279 0 R (HD.10116) 11280 0 R (HD.10117) 11281 0 R (HD.10118) 11282 0 R (HD.10119) 11283 0 R (HD.1012) 1347 0 R (HD.10120) 11284 0 R (HD.10121) 11285 0 R (HD.10122) 11286 0 R (HD.10123) 11287 0 R (HD.10124) 11288 0 R (HD.10125) 11289 0 R (HD.10126) 11290 0 R (HD.10127) 11291 0 R (HD.10128) 11292 0 R (HD.10129) 11293 0 R (HD.1013) 1348 0 R (HD.10130) 11294 0 R (HD.10131) 11295 0 R (HD.10132) 11296 0 R (HD.10133) 11297 0 R (HD.10134) 11298 0 R (HD.10135) 11299 0 R (HD.10136) 11300 0 R (HD.10137) 11301 0 R (HD.10138) 11302 0 R (HD.10139) 11303 0 R (HD.1014) 1349 0 R ] /Limits [ (HD.10111) (HD.1014) ] >>
endobj
-317 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IATCRU+LMRomanSlant10-Regular /FontDescriptor 11673 0 R /FirstChar 40 /LastChar 121 /Widths 11622 0 R /Encoding 11606 0 R >>
+11615 0 obj
+<< /Names [ (HD.10140) 11304 0 R (HD.10141) 11305 0 R (HD.10142) 11306 0 R (HD.10143) 11307 0 R (HD.10144) 11308 0 R (HD.10145) 11309 0 R (HD.10146) 11310 0 R (HD.10147) 11311 0 R (HD.10148) 11312 0 R (HD.10149) 11313 0 R (HD.1015) 1350 0 R (HD.10150) 11314 0 R (HD.10151) 11315 0 R (HD.10152) 11316 0 R (HD.10153) 11317 0 R (HD.10154) 11318 0 R (HD.10155) 11319 0 R (HD.10156) 11320 0 R (HD.10157) 11321 0 R (HD.10158) 11322 0 R (HD.10159) 11323 0 R (HD.1016) 1351 0 R (HD.10160) 11324 0 R (HD.10161) 11325 0 R (HD.10162) 11326 0 R (HD.10163) 11327 0 R (HD.10164) 11332 0 R (HD.10165) 11333 0 R (HD.10166) 11334 0 R (HD.10167) 11335 0 R (HD.10168) 11336 0 R (HD.10169) 11337 0 R ] /Limits [ (HD.10140) (HD.10169) ] >>
endobj
-185 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /DXGFLV+LMSans10-Regular /FontDescriptor 11675 0 R /FirstChar 27 /LastChar 121 /Widths 11629 0 R /Encoding 11606 0 R >>
+11616 0 obj
+<< /Names [ (HD.1017) 1352 0 R (HD.10170) 11338 0 R (HD.10171) 11339 0 R (HD.10172) 11340 0 R (HD.10173) 11341 0 R (HD.10174) 11342 0 R (HD.10175) 11343 0 R (HD.10176) 11344 0 R (HD.10177) 11345 0 R (HD.10178) 11346 0 R (HD.10179) 11347 0 R (HD.1018) 1353 0 R (HD.10180) 11348 0 R (HD.10181) 11349 0 R (HD.10182) 11350 0 R (HD.10183) 11351 0 R (HD.10184) 11352 0 R (HD.10185) 11353 0 R (HD.10186) 11354 0 R (HD.10187) 11355 0 R (HD.10188) 11356 0 R (HD.10189) 11357 0 R (HD.1019) 1354 0 R (HD.10190) 11358 0 R (HD.10191) 11359 0 R (HD.10192) 11360 0 R (HD.10193) 11361 0 R (HD.10194) 11362 0 R (HD.10195) 11363 0 R (HD.10196) 11364 0 R (HD.10197) 11365 0 R (HD.10198) 11366 0 R ] /Limits [ (HD.1017) (HD.10198) ] >>
endobj
-175 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MOYMBT+LMSans17-Regular /FontDescriptor 11677 0 R /FirstChar 97 /LastChar 120 /Widths 11639 0 R /Encoding 11606 0 R >>
+11617 0 obj
+<< /Names [ (HD.10199) 11367 0 R (HD.102) 303 0 R (HD.1020) 1355 0 R (HD.10200) 11368 0 R (HD.10201) 11369 0 R (HD.10202) 11370 0 R (HD.10203) 11371 0 R (HD.10204) 11372 0 R (HD.10205) 11373 0 R (HD.10206) 11374 0 R (HD.10207) 11375 0 R (HD.10208) 11376 0 R (HD.10209) 11377 0 R (HD.1021) 1356 0 R (HD.10210) 11378 0 R (HD.10211) 11379 0 R (HD.10212) 11380 0 R (HD.10213) 11381 0 R (HD.10214) 11382 0 R (HD.10215) 11383 0 R (HD.10216) 11384 0 R (HD.10217) 11385 0 R (HD.10218) 11386 0 R (HD.10219) 11387 0 R (HD.1022) 1357 0 R (HD.10220) 11388 0 R (HD.10221) 11389 0 R (HD.10222) 11390 0 R (HD.10223) 11391 0 R (HD.10224) 11392 0 R (HD.10225) 11393 0 R (HD.1023) 1358 0 R ] /Limits [ (HD.10199) (HD.1023) ] >>
endobj
-189 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MMROMK+LMSans8-Regular /FontDescriptor 11679 0 R /FirstChar 48 /LastChar 120 /Widths 11626 0 R /Encoding 11606 0 R >>
+11618 0 obj
+<< /Names [ (HD.1024) 1359 0 R (HD.1025) 1360 0 R (HD.1026) 1361 0 R (HD.1027) 1362 0 R (HD.1028) 1363 0 R (HD.1029) 1364 0 R (HD.103) 304 0 R (HD.1030) 1365 0 R (HD.1031) 1366 0 R (HD.1032) 1367 0 R (HD.1033) 1368 0 R (HD.1034) 1369 0 R (HD.1035) 1370 0 R (HD.1036) 1371 0 R (HD.1037) 1372 0 R (HD.1038) 1373 0 R (HD.1039) 1374 0 R (HD.104) 305 0 R (HD.1040) 1375 0 R (HD.1041) 1376 0 R (HD.1042) 1377 0 R (HD.1043) 1378 0 R (HD.1044) 1379 0 R (HD.1045) 1380 0 R (HD.1046) 1381 0 R (HD.1047) 1382 0 R (HD.1048) 1383 0 R (HD.1049) 1384 0 R (HD.105) 306 0 R (HD.1050) 1385 0 R (HD.1051) 1386 0 R (HD.1052) 1391 0 R ] /Limits [ (HD.1024) (HD.1052) ] >>
endobj
-181 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JJEEWR+LMSans9-Regular /FontDescriptor 11681 0 R /FirstChar 97 /LastChar 120 /Widths 11633 0 R /Encoding 11606 0 R >>
+11619 0 obj
+<< /Names [ (HD.1053) 1392 0 R (HD.1054) 1393 0 R (HD.1055) 1394 0 R (HD.1056) 1395 0 R (HD.1057) 1396 0 R (HD.1058) 1397 0 R (HD.1059) 1398 0 R (HD.106) 307 0 R (HD.1060) 1399 0 R (HD.1061) 1400 0 R (HD.1062) 1401 0 R (HD.1063) 1402 0 R (HD.1064) 1403 0 R (HD.1065) 1404 0 R (HD.1066) 1405 0 R (HD.1067) 1406 0 R (HD.1068) 1407 0 R (HD.1069) 1408 0 R (HD.107) 308 0 R (HD.1070) 1409 0 R (HD.1071) 1410 0 R (HD.1072) 1411 0 R (HD.1073) 1412 0 R (HD.1074) 1413 0 R (HD.1075) 1414 0 R (HD.1076) 1415 0 R (HD.1077) 1416 0 R (HD.1078) 1417 0 R (HD.1079) 1418 0 R (HD.108) 309 0 R (HD.1080) 1419 0 R (HD.1081) 1420 0 R ] /Limits [ (HD.1053) (HD.1081) ] >>
endobj
-186 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /HNJOVH+LMMono10-Regular /FontDescriptor 11689 0 R /FirstChar 33 /LastChar 125 /Widths 11628 0 R /Encoding 11606 0 R >>
+11620 0 obj
+<< /Names [ (HD.1082) 1421 0 R (HD.1083) 1422 0 R (HD.1084) 1423 0 R (HD.1085) 1424 0 R (HD.1086) 1425 0 R (HD.1087) 1426 0 R (HD.1088) 1427 0 R (HD.1089) 1428 0 R (HD.109) 310 0 R (HD.1090) 1429 0 R (HD.1091) 1430 0 R (HD.1092) 1431 0 R (HD.1093) 1432 0 R (HD.1094) 1437 0 R (HD.1095) 1438 0 R (HD.1096) 1439 0 R (HD.1097) 1440 0 R (HD.1098) 1441 0 R (HD.1099) 1442 0 R (HD.11) 195 0 R (HD.110) 311 0 R (HD.1100) 1443 0 R (HD.1101) 1444 0 R (HD.1102) 1445 0 R (HD.1103) 1446 0 R (HD.1104) 1447 0 R (HD.1105) 1448 0 R (HD.1106) 1449 0 R (HD.1107) 1450 0 R (HD.1108) 1451 0 R (HD.1109) 1452 0 R (HD.111) 312 0 R ] /Limits [ (HD.1082) (HD.111) ] >>
endobj
-178 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NRLLYV+LMMono12-Regular /FontDescriptor 11691 0 R /FirstChar 46 /LastChar 121 /Widths 11636 0 R /Encoding 11606 0 R >>
+11621 0 obj
+<< /Names [ (HD.1110) 1453 0 R (HD.1111) 1454 0 R (HD.1112) 1455 0 R (HD.1113) 1456 0 R (HD.1114) 1457 0 R (HD.1115) 1458 0 R (HD.1116) 1459 0 R (HD.1117) 1460 0 R (HD.1118) 1461 0 R (HD.1119) 1462 0 R (HD.112) 313 0 R (HD.1120) 1463 0 R (HD.1121) 1464 0 R (HD.1122) 1465 0 R (HD.1123) 1466 0 R (HD.1124) 1467 0 R (HD.1125) 1468 0 R (HD.1126) 1469 0 R (HD.1127) 1470 0 R (HD.1128) 1471 0 R (HD.1129) 1472 0 R (HD.113) 314 0 R (HD.1130) 1473 0 R (HD.1131) 1474 0 R (HD.1132) 1475 0 R (HD.1133) 1476 0 R (HD.1134) 1477 0 R (HD.1135) 1478 0 R (HD.1136) 1479 0 R (HD.1137) 1480 0 R (HD.1138) 1481 0 R (HD.1139) 1482 0 R ] /Limits [ (HD.1110) (HD.1139) ] >>
endobj
-768 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /REBVUK+LMMono8-Regular /FontDescriptor 11693 0 R /FirstChar 44 /LastChar 125 /Widths 11612 0 R /Encoding 11606 0 R >>
+11622 0 obj
+<< /Names [ (HD.114) 315 0 R (HD.1140) 1483 0 R (HD.1141) 1484 0 R (HD.1142) 1485 0 R (HD.1143) 1486 0 R (HD.1144) 1487 0 R (HD.1145) 1492 0 R (HD.1146) 1493 0 R (HD.1147) 1494 0 R (HD.1148) 1495 0 R (HD.1149) 1496 0 R (HD.115) 316 0 R (HD.1150) 1497 0 R (HD.1151) 1498 0 R (HD.1152) 1499 0 R (HD.1153) 1500 0 R (HD.1154) 1501 0 R (HD.1155) 1502 0 R (HD.1156) 1503 0 R (HD.1157) 1504 0 R (HD.1158) 1505 0 R (HD.1159) 1506 0 R (HD.116) 317 0 R (HD.1160) 1507 0 R (HD.1161) 1508 0 R (HD.1162) 1509 0 R (HD.1163) 1510 0 R (HD.1164) 1511 0 R (HD.1165) 1512 0 R (HD.1166) 1513 0 R (HD.1167) 1514 0 R (HD.1168) 1515 0 R ] /Limits [ (HD.114) (HD.1168) ] >>
endobj
-183 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11695 0 R /FirstChar 33 /LastChar 126 /Widths 11631 0 R /Encoding 11606 0 R >>
+11623 0 obj
+<< /Names [ (HD.1169) 1520 0 R (HD.117) 318 0 R (HD.1170) 1521 0 R (HD.1171) 1522 0 R (HD.1172) 1523 0 R (HD.1173) 1524 0 R (HD.1174) 1525 0 R (HD.1175) 1526 0 R (HD.1176) 1527 0 R (HD.1177) 1528 0 R (HD.1178) 1529 0 R (HD.1179) 1530 0 R (HD.118) 319 0 R (HD.1180) 1531 0 R (HD.1181) 1532 0 R (HD.1182) 1533 0 R (HD.1183) 1534 0 R (HD.1184) 1535 0 R (HD.1185) 1536 0 R (HD.1186) 1537 0 R (HD.1187) 1538 0 R (HD.1188) 1539 0 R (HD.1189) 1540 0 R (HD.119) 320 0 R (HD.1190) 1541 0 R (HD.1191) 1542 0 R (HD.1192) 1543 0 R (HD.1193) 1544 0 R (HD.1194) 1545 0 R (HD.1195) 1546 0 R (HD.1196) 1551 0 R (HD.1197) 1552 0 R ] /Limits [ (HD.1169) (HD.1197) ] >>
endobj
-811 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NWBRFF+LMMonoSlant10-Regular /FontDescriptor 11697 0 R /FirstChar 97 /LastChar 120 /Widths 11607 0 R /Encoding 11606 0 R >>
+11624 0 obj
+<< /Names [ (HD.1198) 1553 0 R (HD.1199) 1554 0 R (HD.12) 196 0 R (HD.120) 321 0 R (HD.1200) 1555 0 R (HD.1201) 1556 0 R (HD.1202) 1557 0 R (HD.1203) 1558 0 R (HD.1204) 1559 0 R (HD.1205) 1560 0 R (HD.1206) 1561 0 R (HD.1207) 1562 0 R (HD.1208) 1563 0 R (HD.1209) 1564 0 R (HD.121) 322 0 R (HD.1210) 1565 0 R (HD.1211) 1566 0 R (HD.1212) 1567 0 R (HD.1213) 1568 0 R (HD.1214) 1569 0 R (HD.1215) 1570 0 R (HD.1216) 1571 0 R (HD.1217) 1572 0 R (HD.1218) 1573 0 R (HD.1219) 1574 0 R (HD.122) 323 0 R (HD.1220) 1575 0 R (HD.1221) 1576 0 R (HD.1222) 1577 0 R (HD.1223) 1578 0 R (HD.1224) 1579 0 R (HD.1225) 1580 0 R ] /Limits [ (HD.1198) (HD.1225) ] >>
endobj
-1809 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WOCBGC+LMMathExtension10-Regular /FontDescriptor 11649 0 R /FirstChar 48 /LastChar 65 /Widths 11605 0 R /Encoding 11604 0 R >>
+11625 0 obj
+<< /Names [ (HD.1226) 1581 0 R (HD.1227) 1582 0 R (HD.1228) 1583 0 R (HD.1229) 1584 0 R (HD.123) 324 0 R (HD.1230) 1585 0 R (HD.1231) 1586 0 R (HD.1232) 1587 0 R (HD.1233) 1588 0 R (HD.1234) 1589 0 R (HD.1235) 1590 0 R (HD.1236) 1591 0 R (HD.1237) 1592 0 R (HD.1238) 1593 0 R (HD.1239) 1594 0 R (HD.124) 325 0 R (HD.1240) 1595 0 R (HD.1241) 1596 0 R (HD.1242) 1597 0 R (HD.1243) 1598 0 R (HD.1244) 1599 0 R (HD.1245) 1600 0 R (HD.1246) 1601 0 R (HD.1247) 1602 0 R (HD.1248) 1603 0 R (HD.1249) 1604 0 R (HD.125) 326 0 R (HD.1250) 1605 0 R (HD.1251) 1606 0 R (HD.1252) 1611 0 R (HD.1253) 1612 0 R (HD.1254) 1613 0 R ] /Limits [ (HD.1226) (HD.1254) ] >>
endobj
-662 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /YCPAMU+LMMathItalic10-Regular /FontDescriptor 11651 0 R /FirstChar 62 /LastChar 121 /Widths 11616 0 R /Encoding 11602 0 R >>
+11626 0 obj
+<< /Names [ (HD.1255) 1614 0 R (HD.1256) 1615 0 R (HD.1257) 1616 0 R (HD.1258) 1617 0 R (HD.1259) 1618 0 R (HD.126) 327 0 R (HD.1260) 1619 0 R (HD.1261) 1620 0 R (HD.1262) 1621 0 R (HD.1263) 1622 0 R (HD.1264) 1623 0 R (HD.1265) 1624 0 R (HD.1266) 1625 0 R (HD.1267) 1626 0 R (HD.1268) 1627 0 R (HD.1269) 1628 0 R (HD.127) 328 0 R (HD.1270) 1629 0 R (HD.1271) 1630 0 R (HD.1272) 1631 0 R (HD.1273) 1632 0 R (HD.1274) 1633 0 R (HD.1275) 1634 0 R (HD.1276) 1635 0 R (HD.1277) 1636 0 R (HD.1278) 1637 0 R (HD.1279) 1638 0 R (HD.128) 329 0 R (HD.1280) 1639 0 R (HD.1281) 1640 0 R (HD.1282) 1641 0 R (HD.1283) 1642 0 R ] /Limits [ (HD.1255) (HD.1283) ] >>
endobj
-4533 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JMCQJH+LMMathItalic7-Regular /FontDescriptor 11653 0 R /FirstChar 120 /LastChar 121 /Widths 11603 0 R /Encoding 11602 0 R >>
+11627 0 obj
+<< /Names [ (HD.1284) 1643 0 R (HD.1285) 1644 0 R (HD.1286) 1645 0 R (HD.1287) 1646 0 R (HD.1288) 1647 0 R (HD.1289) 1648 0 R (HD.129) 334 0 R (HD.1290) 1649 0 R (HD.1291) 1650 0 R (HD.1292) 1655 0 R (HD.1293) 1656 0 R (HD.1294) 1657 0 R (HD.1295) 1658 0 R (HD.1296) 1659 0 R (HD.1297) 1660 0 R (HD.1298) 1661 0 R (HD.1299) 1662 0 R (HD.13) 197 0 R (HD.130) 335 0 R (HD.1300) 1663 0 R (HD.1301) 1664 0 R (HD.1302) 1665 0 R (HD.1303) 1666 0 R (HD.1304) 1667 0 R (HD.1305) 1668 0 R (HD.1306) 1669 0 R (HD.1307) 1670 0 R (HD.1308) 1671 0 R (HD.1309) 1672 0 R (HD.131) 336 0 R (HD.1310) 1673 0 R (HD.1311) 1674 0 R ] /Limits [ (HD.1284) (HD.1311) ] >>
endobj
-176 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /FACRCI+LMMathSymbols10-Regular /FontDescriptor 11683 0 R /FirstChar 0 /LastChar 3 /Widths 11638 0 R /Encoding 11610 0 R >>
+11628 0 obj
+<< /Names [ (HD.1312) 1675 0 R (HD.1313) 1676 0 R (HD.1314) 1677 0 R (HD.1315) 1678 0 R (HD.1316) 1679 0 R (HD.1317) 1680 0 R (HD.1318) 1681 0 R (HD.1319) 1682 0 R (HD.132) 337 0 R (HD.1320) 1683 0 R (HD.1321) 1684 0 R (HD.1322) 1685 0 R (HD.1323) 1686 0 R (HD.1324) 1687 0 R (HD.1325) 1688 0 R (HD.1326) 1689 0 R (HD.1327) 1690 0 R (HD.1328) 1691 0 R (HD.1329) 1692 0 R (HD.133) 338 0 R (HD.1330) 1693 0 R (HD.1331) 1694 0 R (HD.1332) 1695 0 R (HD.1333) 1696 0 R (HD.1334) 1697 0 R (HD.1335) 1702 0 R (HD.1336) 1703 0 R (HD.1337) 1704 0 R (HD.1338) 1705 0 R (HD.1339) 1706 0 R (HD.134) 339 0 R (HD.1340) 1707 0 R ] /Limits [ (HD.1312) (HD.1340) ] >>
endobj
-204 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /DTFCKV+LMMathSymbols6-Regular /FontDescriptor 11685 0 R /FirstChar 3 /LastChar 3 /Widths 11625 0 R /Encoding 11610 0 R >>
+11629 0 obj
+<< /Names [ (HD.1341) 1708 0 R (HD.1342) 1709 0 R (HD.1343) 1710 0 R (HD.1344) 1711 0 R (HD.1345) 1712 0 R (HD.1346) 1713 0 R (HD.1347) 1714 0 R (HD.1348) 1715 0 R (HD.1349) 1716 0 R (HD.135) 340 0 R (HD.1350) 1717 0 R (HD.1351) 1718 0 R (HD.1352) 1719 0 R (HD.1353) 1720 0 R (HD.1354) 1721 0 R (HD.1355) 1722 0 R (HD.1356) 1723 0 R (HD.1357) 1724 0 R (HD.1358) 1725 0 R (HD.1359) 1726 0 R (HD.136) 341 0 R (HD.1360) 1727 0 R (HD.1361) 1728 0 R (HD.1362) 1729 0 R (HD.1363) 1730 0 R (HD.1364) 1731 0 R (HD.1365) 1732 0 R (HD.1366) 1733 0 R (HD.1367) 1734 0 R (HD.1368) 1735 0 R (HD.1369) 1736 0 R (HD.137) 342 0 R ] /Limits [ (HD.1341) (HD.137) ] >>
endobj
-769 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /ANTVSN+LMMathSymbols8-Regular /FontDescriptor 11687 0 R /FirstChar 0 /LastChar 0 /Widths 11611 0 R /Encoding 11610 0 R >>
+11630 0 obj
+<< /Names [ (HD.1370) 1737 0 R (HD.1371) 1738 0 R (HD.1372) 1739 0 R (HD.1373) 1740 0 R (HD.1374) 1741 0 R (HD.1375) 1742 0 R (HD.1376) 1743 0 R (HD.1377) 1744 0 R (HD.1378) 1745 0 R (HD.1379) 1746 0 R (HD.138) 343 0 R (HD.1380) 1747 0 R (HD.1381) 1748 0 R (HD.1382) 1749 0 R (HD.1383) 1750 0 R (HD.1384) 1755 0 R (HD.1385) 1756 0 R (HD.1386) 1757 0 R (HD.1387) 1758 0 R (HD.1388) 1760 0 R (HD.1389) 1761 0 R (HD.139) 344 0 R (HD.1390) 1762 0 R (HD.1391) 1763 0 R (HD.1392) 1764 0 R (HD.1393) 1765 0 R (HD.1394) 1766 0 R (HD.1395) 1767 0 R (HD.1396) 1768 0 R (HD.1397) 1769 0 R (HD.1398) 1770 0 R (HD.1399) 1771 0 R ] /Limits [ (HD.1370) (HD.1399) ] >>
endobj
-660 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 1 /LastChar 55 /Widths 11617 0 R /Encoding 11608 0 R >>
+11631 0 obj
+<< /Names [ (HD.14) 198 0 R (HD.140) 345 0 R (HD.1400) 1772 0 R (HD.1401) 1773 0 R (HD.1402) 1774 0 R (HD.1403) 1775 0 R (HD.1404) 1776 0 R (HD.1405) 1777 0 R (HD.1406) 1778 0 R (HD.1407) 1779 0 R (HD.1408) 1780 0 R (HD.1409) 1781 0 R (HD.141) 346 0 R (HD.1410) 1782 0 R (HD.1411) 1783 0 R (HD.1412) 1784 0 R (HD.1413) 1785 0 R (HD.1414) 1791 0 R (HD.1415) 1792 0 R (HD.1416) 1793 0 R (HD.1417) 1794 0 R (HD.1418) 1795 0 R (HD.1419) 1796 0 R (HD.142) 347 0 R (HD.1420) 1797 0 R (HD.1421) 1798 0 R (HD.1422) 1799 0 R (HD.1423) 1800 0 R (HD.1424) 1801 0 R (HD.1425) 1802 0 R (HD.1426) 1803 0 R (HD.1427) 1804 0 R ] /Limits [ (HD.14) (HD.1427) ] >>
endobj
-770 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11665 0 R /FirstChar 48 /LastChar 49 /Widths 11609 0 R /Encoding 11608 0 R >>
+11632 0 obj
+<< /Names [ (HD.1428) 1805 0 R (HD.1429) 1806 0 R (HD.143) 348 0 R (HD.1430) 1807 0 R (HD.1431) 1808 0 R (HD.1432) 1809 0 R (HD.1433) 1810 0 R (HD.1434) 1811 0 R (HD.1435) 1812 0 R (HD.1436) 1813 0 R (HD.1437) 1814 0 R (HD.1438) 1815 0 R (HD.1439) 1816 0 R (HD.144) 349 0 R (HD.1440) 1817 0 R (HD.1441) 1818 0 R (HD.1442) 1819 0 R (HD.1443) 1820 0 R (HD.1444) 1821 0 R (HD.1445) 1822 0 R (HD.1446) 1823 0 R (HD.1447) 1824 0 R (HD.1448) 1825 0 R (HD.1449) 1826 0 R (HD.145) 350 0 R (HD.1450) 1827 0 R (HD.1451) 1828 0 R (HD.1452) 1829 0 R (HD.1453) 1830 0 R (HD.1454) 1831 0 R (HD.1455) 1832 0 R (HD.1456) 1833 0 R ] /Limits [ (HD.1428) (HD.1456) ] >>
endobj
-668 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 136 /LastChar 136 /Widths 11615 0 R /Encoding 11614 0 R >>
+11633 0 obj
+<< /Names [ (HD.1457) 1834 0 R (HD.1458) 1835 0 R (HD.1459) 1836 0 R (HD.146) 351 0 R (HD.1460) 1837 0 R (HD.1461) 1838 0 R (HD.1462) 1839 0 R (HD.1463) 1840 0 R (HD.1464) 1841 0 R (HD.1465) 1842 0 R (HD.1466) 1843 0 R (HD.1467) 1849 0 R (HD.1468) 1850 0 R (HD.1469) 1851 0 R (HD.147) 352 0 R (HD.1470) 1852 0 R (HD.1471) 1853 0 R (HD.1472) 1854 0 R (HD.1473) 1855 0 R (HD.1474) 1856 0 R (HD.1475) 1857 0 R (HD.1476) 1858 0 R (HD.1477) 1859 0 R (HD.1478) 1860 0 R (HD.1479) 1861 0 R (HD.148) 353 0 R (HD.1480) 1862 0 R (HD.1481) 1863 0 R (HD.1482) 1864 0 R (HD.1483) 1865 0 R (HD.1484) 1866 0 R (HD.1485) 1867 0 R ] /Limits [ (HD.1457) (HD.1485) ] >>
endobj
-264 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11695 0 R /FirstChar 39 /LastChar 96 /Widths 11623 0 R /Encoding 11614 0 R >>
+11634 0 obj
+<< /Names [ (HD.1486) 1868 0 R (HD.1487) 1869 0 R (HD.1488) 1870 0 R (HD.1489) 1871 0 R (HD.149) 354 0 R (HD.1490) 1872 0 R (HD.1491) 1873 0 R (HD.1492) 1874 0 R (HD.1493) 1875 0 R (HD.1494) 1876 0 R (HD.1495) 1877 0 R (HD.1496) 1878 0 R (HD.1497) 1879 0 R (HD.1498) 1880 0 R (HD.1499) 1881 0 R (HD.15) 199 0 R (HD.150) 355 0 R (HD.1500) 1882 0 R (HD.1501) 1883 0 R (HD.1502) 1884 0 R (HD.1503) 1885 0 R (HD.1504) 1886 0 R (HD.1505) 1887 0 R (HD.1506) 1888 0 R (HD.1507) 1889 0 R (HD.1508) 1890 0 R (HD.1509) 1891 0 R (HD.151) 356 0 R (HD.1510) 1892 0 R (HD.1511) 1893 0 R (HD.1512) 1894 0 R (HD.1513) 1895 0 R ] /Limits [ (HD.1486) (HD.1513) ] >>
endobj
-206 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 169 0 R 208 0 R 255 0 R 302 0 R 341 0 R 385 0 R 431 0 R 484 0 R 532 0 R 564 0 R ] >>
+11635 0 obj
+<< /Names [ (HD.1514) 1901 0 R (HD.1515) 1902 0 R (HD.1516) 1903 0 R (HD.1517) 1904 0 R (HD.1518) 1905 0 R (HD.1519) 1906 0 R (HD.152) 357 0 R (HD.1520) 1907 0 R (HD.1521) 1908 0 R (HD.1522) 1909 0 R (HD.1523) 1910 0 R (HD.1524) 1911 0 R (HD.1525) 1912 0 R (HD.1526) 1913 0 R (HD.1527) 1914 0 R (HD.1528) 1915 0 R (HD.1529) 1916 0 R (HD.153) 358 0 R (HD.1530) 1917 0 R (HD.1531) 1918 0 R (HD.1532) 1919 0 R (HD.1533) 1920 0 R (HD.1534) 1921 0 R (HD.1535) 1922 0 R (HD.1536) 1923 0 R (HD.1537) 1924 0 R (HD.1538) 1925 0 R (HD.1539) 1926 0 R (HD.154) 359 0 R (HD.1540) 1927 0 R (HD.1541) 1928 0 R (HD.1542) 1929 0 R ] /Limits [ (HD.1514) (HD.1542) ] >>
endobj
-603 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 584 0 R 605 0 R 632 0 R 656 0 R 679 0 R 699 0 R 726 0 R 754 0 R 773 0 R 808 0 R ] >>
+11636 0 obj
+<< /Names [ (HD.1543) 1930 0 R (HD.1544) 1931 0 R (HD.1545) 1932 0 R (HD.1546) 1933 0 R (HD.1547) 1934 0 R (HD.1548) 1935 0 R (HD.1549) 1943 0 R (HD.155) 360 0 R (HD.1550) 1944 0 R (HD.1551) 1945 0 R (HD.1552) 1946 0 R (HD.1553) 1947 0 R (HD.1554) 1948 0 R (HD.1555) 1949 0 R (HD.1556) 1950 0 R (HD.1557) 1951 0 R (HD.1558) 1952 0 R (HD.1559) 1953 0 R (HD.156) 361 0 R (HD.1560) 1954 0 R (HD.1561) 1955 0 R (HD.1562) 1956 0 R (HD.1563) 1957 0 R (HD.1564) 1958 0 R (HD.1565) 1959 0 R (HD.1566) 1960 0 R (HD.1567) 1961 0 R (HD.1568) 1962 0 R (HD.1569) 1963 0 R (HD.157) 362 0 R (HD.1570) 1964 0 R (HD.1571) 1965 0 R ] /Limits [ (HD.1543) (HD.1571) ] >>
endobj
-871 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 829 0 R 873 0 R 921 0 R 965 0 R 1010 0 R 1055 0 R 1083 0 R 1104 0 R 1144 0 R 1198 0 R ] >>
+11637 0 obj
+<< /Names [ (HD.1572) 1966 0 R (HD.1573) 1967 0 R (HD.1574) 1968 0 R (HD.1575) 1969 0 R (HD.1576) 1970 0 R (HD.1577) 1971 0 R (HD.1578) 1972 0 R (HD.1579) 1973 0 R (HD.158) 363 0 R (HD.1580) 1974 0 R (HD.1581) 1975 0 R (HD.1582) 1976 0 R (HD.1583) 1977 0 R (HD.1584) 1978 0 R (HD.1585) 1979 0 R (HD.1586) 1980 0 R (HD.1587) 1981 0 R (HD.1588) 1982 0 R (HD.1589) 1983 0 R (HD.159) 364 0 R (HD.1590) 1984 0 R (HD.1591) 1985 0 R (HD.1592) 1986 0 R (HD.1593) 1987 0 R (HD.1594) 1988 0 R (HD.1595) 1989 0 R (HD.1596) 1990 0 R (HD.1597) 1991 0 R (HD.1598) 1996 0 R (HD.1599) 1997 0 R (HD.16) 207 0 R (HD.160) 365 0 R ] /Limits [ (HD.1572) (HD.160) ] >>
endobj
-1316 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 1260 0 R 1318 0 R 1381 0 R 1440 0 R 1486 0 R 1541 0 R 1569 0 R 1618 0 R 1681 0 R 1715 0 R ] >>
+11638 0 obj
+<< /Names [ (HD.1600) 1998 0 R (HD.1601) 1999 0 R (HD.1602) 2000 0 R (HD.1603) 2001 0 R (HD.1604) 2002 0 R (HD.1605) 2003 0 R (HD.1606) 2004 0 R (HD.1607) 2005 0 R (HD.1608) 2006 0 R (HD.1609) 2007 0 R (HD.161) 366 0 R (HD.1610) 2008 0 R (HD.1611) 2009 0 R (HD.1612) 2010 0 R (HD.1613) 2011 0 R (HD.1614) 2012 0 R (HD.1615) 2013 0 R (HD.1616) 2014 0 R (HD.1617) 2015 0 R (HD.1618) 2016 0 R (HD.1619) 2017 0 R (HD.162) 367 0 R (HD.1620) 2018 0 R (HD.1621) 2019 0 R (HD.1622) 2020 0 R (HD.1623) 2021 0 R (HD.1624) 2022 0 R (HD.1625) 2023 0 R (HD.1626) 2024 0 R (HD.1627) 2025 0 R (HD.1628) 2026 0 R (HD.1629) 2027 0 R ] /Limits [ (HD.1600) (HD.1629) ] >>
endobj
-1810 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 1768 0 R 1812 0 R 1857 0 R 1914 0 R 1964 0 R 2007 0 R 2062 0 R 2099 0 R 2132 0 R 2170 0 R ] >>
+11639 0 obj
+<< /Names [ (HD.163) 368 0 R (HD.1630) 2028 0 R (HD.1631) 2029 0 R (HD.1632) 2034 0 R (HD.1633) 2035 0 R (HD.1634) 2036 0 R (HD.1635) 2037 0 R (HD.1636) 2038 0 R (HD.1637) 2039 0 R (HD.1638) 2040 0 R (HD.1639) 2041 0 R (HD.164) 369 0 R (HD.1640) 2042 0 R (HD.1641) 2043 0 R (HD.1642) 2044 0 R (HD.1643) 2045 0 R (HD.1644) 2046 0 R (HD.1645) 2047 0 R (HD.1646) 2048 0 R (HD.1647) 2049 0 R (HD.1648) 2050 0 R (HD.1649) 2051 0 R (HD.165) 370 0 R (HD.1650) 2052 0 R (HD.1651) 2053 0 R (HD.1652) 2054 0 R (HD.1653) 2055 0 R (HD.1654) 2056 0 R (HD.1655) 2057 0 R (HD.1656) 2058 0 R (HD.1657) 2059 0 R (HD.1658) 2060 0 R ] /Limits [ (HD.163) (HD.1658) ] >>
endobj
-2254 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 2213 0 R 2256 0 R 2313 0 R 2368 0 R 2409 0 R 2457 0 R 2513 0 R 2565 0 R 2607 0 R 2656 0 R ] >>
+11640 0 obj
+<< /Names [ (HD.1659) 2061 0 R (HD.166) 371 0 R (HD.1660) 2062 0 R (HD.1661) 2063 0 R (HD.1662) 2064 0 R (HD.1663) 2065 0 R (HD.1664) 2066 0 R (HD.1665) 2067 0 R (HD.1666) 2068 0 R (HD.1667) 2069 0 R (HD.1668) 2070 0 R (HD.1669) 2071 0 R (HD.167) 372 0 R (HD.1670) 2072 0 R (HD.1671) 2077 0 R (HD.1672) 2078 0 R (HD.1673) 2079 0 R (HD.1674) 2080 0 R (HD.1675) 2081 0 R (HD.1676) 2082 0 R (HD.1677) 2083 0 R (HD.1678) 2084 0 R (HD.1679) 2085 0 R (HD.168) 373 0 R (HD.1680) 2086 0 R (HD.1681) 2087 0 R (HD.1682) 2088 0 R (HD.1683) 2089 0 R (HD.1684) 2090 0 R (HD.1685) 2091 0 R (HD.1686) 2092 0 R (HD.1687) 2093 0 R ] /Limits [ (HD.1659) (HD.1687) ] >>
endobj
-2759 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 2705 0 R 2762 0 R 2817 0 R 2877 0 R 2929 0 R 2967 0 R 3017 0 R 3068 0 R 3123 0 R 3180 0 R ] >>
+11641 0 obj
+<< /Names [ (HD.1688) 2094 0 R (HD.1689) 2095 0 R (HD.169) 379 0 R (HD.1690) 2096 0 R (HD.1691) 2097 0 R (HD.1692) 2098 0 R (HD.1693) 2099 0 R (HD.1694) 2100 0 R (HD.1695) 2101 0 R (HD.1696) 2102 0 R (HD.1697) 2103 0 R (HD.1698) 2104 0 R (HD.1699) 2105 0 R (HD.17) 208 0 R (HD.170) 380 0 R (HD.1700) 2106 0 R (HD.1701) 2107 0 R (HD.1702) 2108 0 R (HD.1703) 2109 0 R (HD.1704) 2110 0 R (HD.1705) 2111 0 R (HD.1706) 2112 0 R (HD.1707) 2117 0 R (HD.1708) 2118 0 R (HD.1709) 2119 0 R (HD.171) 381 0 R (HD.1710) 2120 0 R (HD.1711) 2121 0 R (HD.1712) 2122 0 R (HD.1713) 2123 0 R (HD.1714) 2124 0 R (HD.1715) 2125 0 R ] /Limits [ (HD.1688) (HD.1715) ] >>
endobj
-3298 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 3240 0 R 3300 0 R 3335 0 R 3382 0 R 3427 0 R 3483 0 R 3539 0 R 3592 0 R 3637 0 R 3678 0 R ] >>
+11642 0 obj
+<< /Names [ (HD.1716) 2126 0 R (HD.1717) 2127 0 R (HD.1718) 2128 0 R (HD.1719) 2129 0 R (HD.172) 382 0 R (HD.1720) 2130 0 R (HD.1721) 2131 0 R (HD.1722) 2132 0 R (HD.1723) 2133 0 R (HD.1724) 2134 0 R (HD.1725) 2135 0 R (HD.1726) 2136 0 R (HD.1727) 2137 0 R (HD.1728) 2138 0 R (HD.1729) 2139 0 R (HD.173) 383 0 R (HD.1730) 2140 0 R (HD.1731) 2141 0 R (HD.1732) 2142 0 R (HD.1733) 2143 0 R (HD.1734) 2144 0 R (HD.1735) 2149 0 R (HD.1736) 2150 0 R (HD.1737) 2151 0 R (HD.1738) 2152 0 R (HD.1739) 2153 0 R (HD.174) 384 0 R (HD.1740) 2154 0 R (HD.1741) 2155 0 R (HD.1742) 2156 0 R (HD.1743) 2157 0 R (HD.1744) 2158 0 R ] /Limits [ (HD.1716) (HD.1744) ] >>
endobj
-3783 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 3734 0 R 3785 0 R 3845 0 R 3882 0 R 3922 0 R 3973 0 R 4033 0 R 4090 0 R 4152 0 R 4201 0 R ] >>
+11643 0 obj
+<< /Names [ (HD.1745) 2159 0 R (HD.1746) 2160 0 R (HD.1747) 2161 0 R (HD.1748) 2162 0 R (HD.1749) 2163 0 R (HD.175) 385 0 R (HD.1750) 2164 0 R (HD.1751) 2165 0 R (HD.1752) 2166 0 R (HD.1753) 2167 0 R (HD.1754) 2168 0 R (HD.1755) 2169 0 R (HD.1756) 2170 0 R (HD.1757) 2171 0 R (HD.1758) 2172 0 R (HD.1759) 2173 0 R (HD.176) 386 0 R (HD.1760) 2174 0 R (HD.1761) 2175 0 R (HD.1762) 2176 0 R (HD.1763) 2177 0 R (HD.1764) 2178 0 R (HD.1765) 2179 0 R (HD.1766) 2180 0 R (HD.1767) 2181 0 R (HD.1768) 2182 0 R (HD.1769) 2183 0 R (HD.177) 387 0 R (HD.1770) 2184 0 R (HD.1771) 2185 0 R (HD.1772) 2190 0 R (HD.1773) 2191 0 R ] /Limits [ (HD.1745) (HD.1773) ] >>
endobj
-4301 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 4253 0 R 4303 0 R 4358 0 R 4422 0 R 4461 0 R 4521 0 R 4560 0 R 4606 0 R 4652 0 R 4704 0 R ] >>
+11644 0 obj
+<< /Names [ (HD.1774) 2192 0 R (HD.1775) 2193 0 R (HD.1776) 2194 0 R (HD.1777) 2195 0 R (HD.1778) 2196 0 R (HD.1779) 2197 0 R (HD.178) 388 0 R (HD.1780) 2198 0 R (HD.1781) 2199 0 R (HD.1782) 2200 0 R (HD.1783) 2201 0 R (HD.1784) 2202 0 R (HD.1785) 2203 0 R (HD.1786) 2204 0 R (HD.1787) 2205 0 R (HD.1788) 2206 0 R (HD.1789) 2207 0 R (HD.179) 389 0 R (HD.1790) 2208 0 R (HD.1791) 2209 0 R (HD.1792) 2210 0 R (HD.1793) 2211 0 R (HD.1794) 2212 0 R (HD.1795) 2213 0 R (HD.1796) 2214 0 R (HD.1797) 2215 0 R (HD.1798) 2216 0 R (HD.1799) 2217 0 R (HD.18) 209 0 R (HD.180) 390 0 R (HD.1800) 2218 0 R (HD.1801) 2219 0 R ] /Limits [ (HD.1774) (HD.1801) ] >>
endobj
-4785 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 4744 0 R 4787 0 R 4840 0 R 4903 0 R 4949 0 R 5013 0 R 5056 0 R 5106 0 R 5160 0 R 5217 0 R ] >>
+11645 0 obj
+<< /Names [ (HD.1802) 2220 0 R (HD.1803) 2221 0 R (HD.1804) 2222 0 R (HD.1805) 2223 0 R (HD.1806) 2224 0 R (HD.1807) 2225 0 R (HD.1808) 2226 0 R (HD.1809) 2227 0 R (HD.181) 391 0 R (HD.1810) 2228 0 R (HD.1811) 2229 0 R (HD.1812) 2230 0 R (HD.1813) 2231 0 R (HD.1814) 2232 0 R (HD.1815) 2233 0 R (HD.1816) 2234 0 R (HD.1817) 2235 0 R (HD.1818) 2236 0 R (HD.1819) 2237 0 R (HD.182) 392 0 R (HD.1820) 2238 0 R (HD.1821) 2239 0 R (HD.1822) 2240 0 R (HD.1823) 2241 0 R (HD.1824) 2248 0 R (HD.1825) 2249 0 R (HD.1826) 2250 0 R (HD.1827) 2251 0 R (HD.1828) 2252 0 R (HD.1829) 2253 0 R (HD.183) 393 0 R (HD.1830) 2254 0 R ] /Limits [ (HD.1802) (HD.1830) ] >>
endobj
-5309 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 5264 0 R 5311 0 R 5356 0 R 5403 0 R 5442 0 R 5493 0 R 5549 0 R 5607 0 R 5673 0 R 5722 0 R ] >>
+11646 0 obj
+<< /Names [ (HD.1831) 2255 0 R (HD.1832) 2256 0 R (HD.1833) 2257 0 R (HD.1834) 2258 0 R (HD.1835) 2259 0 R (HD.1836) 2260 0 R (HD.1837) 2261 0 R (HD.1838) 2262 0 R (HD.1839) 2263 0 R (HD.184) 394 0 R (HD.1840) 2264 0 R (HD.1841) 2265 0 R (HD.1842) 2266 0 R (HD.1843) 2267 0 R (HD.1844) 2268 0 R (HD.1845) 2269 0 R (HD.1846) 2270 0 R (HD.1847) 2271 0 R (HD.1848) 2272 0 R (HD.1849) 2273 0 R (HD.185) 395 0 R (HD.1850) 2274 0 R (HD.1851) 2275 0 R (HD.1852) 2276 0 R (HD.1853) 2277 0 R (HD.1854) 2278 0 R (HD.1855) 2279 0 R (HD.1856) 2280 0 R (HD.1857) 2281 0 R (HD.1858) 2282 0 R (HD.1859) 2283 0 R (HD.186) 396 0 R ] /Limits [ (HD.1831) (HD.186) ] >>
endobj
-5835 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 5786 0 R 5837 0 R 5894 0 R 5955 0 R 6018 0 R 6054 0 R 6108 0 R 6145 0 R 6197 0 R 6240 0 R ] >>
+11647 0 obj
+<< /Names [ (HD.1860) 2284 0 R (HD.1861) 2285 0 R (HD.1862) 2286 0 R (HD.1863) 2287 0 R (HD.1864) 2288 0 R (HD.1865) 2289 0 R (HD.1866) 2290 0 R (HD.1867) 2291 0 R (HD.1868) 2292 0 R (HD.1869) 2293 0 R (HD.187) 397 0 R (HD.1870) 2294 0 R (HD.1871) 2295 0 R (HD.1872) 2296 0 R (HD.1873) 2297 0 R (HD.1874) 2298 0 R (HD.1875) 2299 0 R (HD.1876) 2300 0 R (HD.1877) 2308 0 R (HD.1878) 2309 0 R (HD.1879) 2310 0 R (HD.188) 398 0 R (HD.1880) 2311 0 R (HD.1881) 2312 0 R (HD.1882) 2313 0 R (HD.1883) 2314 0 R (HD.1884) 2315 0 R (HD.1885) 2316 0 R (HD.1886) 2317 0 R (HD.1887) 2318 0 R (HD.1888) 2319 0 R (HD.1889) 2320 0 R ] /Limits [ (HD.1860) (HD.1889) ] >>
endobj
-6332 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 6276 0 R 6334 0 R 6382 0 R 6434 0 R 6477 0 R 6529 0 R 6576 0 R 6638 0 R 6688 0 R 6739 0 R ] >>
+11648 0 obj
+<< /Names [ (HD.189) 399 0 R (HD.1890) 2321 0 R (HD.1891) 2322 0 R (HD.1892) 2323 0 R (HD.1893) 2324 0 R (HD.1894) 2325 0 R (HD.1895) 2326 0 R (HD.1896) 2327 0 R (HD.1897) 2328 0 R (HD.1898) 2329 0 R (HD.1899) 2330 0 R (HD.19) 210 0 R (HD.190) 400 0 R (HD.1900) 2331 0 R (HD.1901) 2332 0 R (HD.1902) 2333 0 R (HD.1903) 2334 0 R (HD.1904) 2335 0 R (HD.1905) 2336 0 R (HD.1906) 2337 0 R (HD.1907) 2338 0 R (HD.1908) 2339 0 R (HD.1909) 2340 0 R (HD.191) 401 0 R (HD.1910) 2341 0 R (HD.1911) 2342 0 R (HD.1912) 2343 0 R (HD.1913) 2350 0 R (HD.1914) 2351 0 R (HD.1915) 2352 0 R (HD.1916) 2353 0 R (HD.1917) 2354 0 R ] /Limits [ (HD.189) (HD.1917) ] >>
endobj
-6820 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 6778 0 R 6822 0 R 6856 0 R 6899 0 R 6954 0 R 7017 0 R 7073 0 R 7120 0 R 7179 0 R 7235 0 R ] >>
+11649 0 obj
+<< /Names [ (HD.1918) 2355 0 R (HD.1919) 2356 0 R (HD.192) 402 0 R (HD.1920) 2357 0 R (HD.1921) 2358 0 R (HD.1922) 2359 0 R (HD.1923) 2360 0 R (HD.1924) 2361 0 R (HD.1925) 2362 0 R (HD.1926) 2363 0 R (HD.1927) 2364 0 R (HD.1928) 2365 0 R (HD.1929) 2366 0 R (HD.193) 403 0 R (HD.1930) 2367 0 R (HD.1931) 2368 0 R (HD.1932) 2369 0 R (HD.1933) 2370 0 R (HD.1934) 2371 0 R (HD.1935) 2372 0 R (HD.1936) 2373 0 R (HD.1937) 2374 0 R (HD.1938) 2375 0 R (HD.1939) 2376 0 R (HD.194) 404 0 R (HD.1940) 2377 0 R (HD.1941) 2378 0 R (HD.1942) 2379 0 R (HD.1943) 2380 0 R (HD.1944) 2381 0 R (HD.1945) 2382 0 R (HD.1946) 2383 0 R ] /Limits [ (HD.1918) (HD.1946) ] >>
endobj
-7338 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 7285 0 R 7340 0 R 7390 0 R 7441 0 R 7488 0 R 7546 0 R 7597 0 R 7640 0 R 7698 0 R 7747 0 R ] >>
+11650 0 obj
+<< /Names [ (HD.1947) 2384 0 R (HD.1948) 2385 0 R (HD.1949) 2386 0 R (HD.195) 405 0 R (HD.1950) 2391 0 R (HD.1951) 2392 0 R (HD.1952) 2393 0 R (HD.1953) 2394 0 R (HD.1954) 2395 0 R (HD.1955) 2396 0 R (HD.1956) 2397 0 R (HD.1957) 2398 0 R (HD.1958) 2399 0 R (HD.1959) 2400 0 R (HD.196) 406 0 R (HD.1960) 2401 0 R (HD.1961) 2402 0 R (HD.1962) 2403 0 R (HD.1963) 2404 0 R (HD.1964) 2405 0 R (HD.1965) 2406 0 R (HD.1966) 2407 0 R (HD.1967) 2408 0 R (HD.1968) 2409 0 R (HD.1969) 2410 0 R (HD.197) 407 0 R (HD.1970) 2411 0 R (HD.1971) 2412 0 R (HD.1972) 2413 0 R (HD.1973) 2414 0 R (HD.1974) 2415 0 R (HD.1975) 2416 0 R ] /Limits [ (HD.1947) (HD.1975) ] >>
endobj
-7831 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 7781 0 R 7834 0 R 7884 0 R 7935 0 R 7983 0 R 8038 0 R 8079 0 R 8118 0 R 8158 0 R 8207 0 R ] >>
+11651 0 obj
+<< /Names [ (HD.1976) 2417 0 R (HD.1977) 2418 0 R (HD.1978) 2419 0 R (HD.1979) 2420 0 R (HD.198) 408 0 R (HD.1980) 2421 0 R (HD.1981) 2422 0 R (HD.1982) 2423 0 R (HD.1983) 2424 0 R (HD.1984) 2425 0 R (HD.1985) 2426 0 R (HD.1986) 2427 0 R (HD.1987) 2428 0 R (HD.1988) 2429 0 R (HD.1989) 2430 0 R (HD.199) 409 0 R (HD.1990) 2431 0 R (HD.1991) 2432 0 R (HD.1992) 2433 0 R (HD.1993) 2434 0 R (HD.1994) 2435 0 R (HD.1995) 2436 0 R (HD.1996) 2437 0 R (HD.1997) 2438 0 R (HD.1998) 2439 0 R (HD.1999) 2440 0 R (HD.2) 186 0 R (HD.20) 211 0 R (HD.200) 410 0 R (HD.2000) 2441 0 R (HD.2001) 2442 0 R (HD.2002) 2450 0 R ] /Limits [ (HD.1976) (HD.2002) ] >>
endobj
-8314 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 8266 0 R 8316 0 R 8376 0 R 8438 0 R 8490 0 R 8544 0 R 8609 0 R 8649 0 R 8702 0 R 8766 0 R ] >>
+11652 0 obj
+<< /Names [ (HD.2003) 2451 0 R (HD.2004) 2452 0 R (HD.2005) 2453 0 R (HD.2006) 2454 0 R (HD.2007) 2455 0 R (HD.2008) 2456 0 R (HD.2009) 2457 0 R (HD.201) 411 0 R (HD.2010) 2458 0 R (HD.2011) 2459 0 R (HD.2012) 2460 0 R (HD.2013) 2461 0 R (HD.2014) 2462 0 R (HD.2015) 2463 0 R (HD.2016) 2464 0 R (HD.2017) 2465 0 R (HD.2018) 2466 0 R (HD.2019) 2467 0 R (HD.202) 412 0 R (HD.2020) 2468 0 R (HD.2021) 2469 0 R (HD.2022) 2470 0 R (HD.2023) 2471 0 R (HD.2024) 2472 0 R (HD.2025) 2473 0 R (HD.2026) 2474 0 R (HD.2027) 2475 0 R (HD.2028) 2476 0 R (HD.2029) 2477 0 R (HD.203) 413 0 R (HD.2030) 2478 0 R (HD.2031) 2479 0 R ] /Limits [ (HD.2003) (HD.2031) ] >>
endobj
-8886 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 8832 0 R 8888 0 R 8951 0 R 9009 0 R 9070 0 R 9132 0 R 9190 0 R 9243 0 R 9298 0 R 9341 0 R ] >>
+11653 0 obj
+<< /Names [ (HD.2032) 2480 0 R (HD.2033) 2481 0 R (HD.2034) 2482 0 R (HD.2035) 2483 0 R (HD.2036) 2484 0 R (HD.2037) 2485 0 R (HD.2038) 2486 0 R (HD.2039) 2487 0 R (HD.204) 414 0 R (HD.2040) 2488 0 R (HD.2041) 2489 0 R (HD.2042) 2490 0 R (HD.2043) 2491 0 R (HD.2044) 2492 0 R (HD.2045) 2501 0 R (HD.2046) 2502 0 R (HD.2047) 2503 0 R (HD.2048) 2504 0 R (HD.2049) 2505 0 R (HD.205) 415 0 R (HD.2050) 2506 0 R (HD.2051) 2507 0 R (HD.2052) 2508 0 R (HD.2053) 2509 0 R (HD.2054) 2510 0 R (HD.2055) 2511 0 R (HD.2056) 2512 0 R (HD.2057) 2513 0 R (HD.2058) 2514 0 R (HD.2059) 2515 0 R (HD.206) 416 0 R (HD.2060) 2516 0 R ] /Limits [ (HD.2032) (HD.2060) ] >>
endobj
-9424 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 9390 0 R 9427 0 R 9471 0 R 9529 0 R 9588 0 R 9636 0 R 9699 0 R 9752 0 R 9807 0 R 9846 0 R ] >>
+11654 0 obj
+<< /Names [ (HD.2061) 2517 0 R (HD.2062) 2518 0 R (HD.2063) 2519 0 R (HD.2064) 2520 0 R (HD.2065) 2521 0 R (HD.2066) 2522 0 R (HD.2067) 2523 0 R (HD.2068) 2524 0 R (HD.2069) 2525 0 R (HD.207) 417 0 R (HD.2070) 2526 0 R (HD.2071) 2527 0 R (HD.2072) 2528 0 R (HD.2073) 2529 0 R (HD.2074) 2530 0 R (HD.2075) 2531 0 R (HD.2076) 2532 0 R (HD.2077) 2533 0 R (HD.2078) 2534 0 R (HD.2079) 2535 0 R (HD.208) 418 0 R (HD.2080) 2536 0 R (HD.2081) 2537 0 R (HD.2082) 2538 0 R (HD.2083) 2539 0 R (HD.2084) 2540 0 R (HD.2085) 2541 0 R (HD.2086) 2542 0 R (HD.2087) 2543 0 R (HD.2088) 2544 0 R (HD.2089) 2545 0 R (HD.209) 419 0 R ] /Limits [ (HD.2061) (HD.209) ] >>
endobj
-9948 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 10 /Kids [ 9896 0 R 9950 0 R 10012 0 R 10075 0 R 10135 0 R 10200 0 R 10263 0 R 10330 0 R 10383 0 R 10444 0 R ] >>
+11655 0 obj
+<< /Names [ (HD.2090) 2551 0 R (HD.2091) 2552 0 R (HD.2092) 2553 0 R (HD.2093) 2554 0 R (HD.2094) 2555 0 R (HD.2095) 2556 0 R (HD.2096) 2557 0 R (HD.2097) 2558 0 R (HD.2098) 2559 0 R (HD.2099) 2560 0 R (HD.21) 212 0 R (HD.210) 420 0 R (HD.2100) 2561 0 R (HD.2101) 2562 0 R (HD.2102) 2563 0 R (HD.2103) 2564 0 R (HD.2104) 2565 0 R (HD.2105) 2566 0 R (HD.2106) 2567 0 R (HD.2107) 2568 0 R (HD.2108) 2569 0 R (HD.2109) 2570 0 R (HD.211) 421 0 R (HD.2110) 2571 0 R (HD.2111) 2572 0 R (HD.2112) 2573 0 R (HD.2113) 2574 0 R (HD.2114) 2575 0 R (HD.2115) 2576 0 R (HD.2116) 2577 0 R (HD.2117) 2578 0 R (HD.2118) 2579 0 R ] /Limits [ (HD.2090) (HD.2118) ] >>
endobj
-10545 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 10 /Kids [ 10486 0 R 10547 0 R 10610 0 R 10674 0 R 10739 0 R 10803 0 R 10867 0 R 10932 0 R 10996 0 R 11060 0 R ] >>
+11656 0 obj
+<< /Names [ (HD.2119) 2580 0 R (HD.212) 423 0 R (HD.2120) 2581 0 R (HD.2121) 2582 0 R (HD.2122) 2583 0 R (HD.2123) 2588 0 R (HD.2124) 2589 0 R (HD.2125) 2590 0 R (HD.2126) 2591 0 R (HD.2127) 2592 0 R (HD.2128) 2593 0 R (HD.2129) 2594 0 R (HD.213) 424 0 R (HD.2130) 2595 0 R (HD.2131) 2596 0 R (HD.2132) 2597 0 R (HD.2133) 2598 0 R (HD.2134) 2599 0 R (HD.2135) 2600 0 R (HD.2136) 2601 0 R (HD.2137) 2602 0 R (HD.2138) 2603 0 R (HD.2139) 2604 0 R (HD.214) 432 0 R (HD.2140) 2605 0 R (HD.2141) 2606 0 R (HD.2142) 2607 0 R (HD.2143) 2608 0 R (HD.2144) 2609 0 R (HD.2145) 2610 0 R (HD.2146) 2611 0 R (HD.2147) 2612 0 R ] /Limits [ (HD.2119) (HD.2147) ] >>
endobj
-11189 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 9 /Kids [ 11124 0 R 11191 0 R 11258 0 R 11323 0 R 11388 0 R 11455 0 R 11522 0 R 11584 0 R 11598 0 R ] >>
+11657 0 obj
+<< /Names [ (HD.2148) 2613 0 R (HD.2149) 2614 0 R (HD.215) 433 0 R (HD.2150) 2615 0 R (HD.2151) 2616 0 R (HD.2152) 2617 0 R (HD.2153) 2618 0 R (HD.2154) 2619 0 R (HD.2155) 2620 0 R (HD.2156) 2621 0 R (HD.2157) 2622 0 R (HD.2158) 2623 0 R (HD.2159) 2624 0 R (HD.216) 434 0 R (HD.2160) 2625 0 R (HD.2161) 2626 0 R (HD.2162) 2627 0 R (HD.2163) 2628 0 R (HD.2164) 2629 0 R (HD.2165) 2630 0 R (HD.2166) 2631 0 R (HD.2167) 2632 0 R (HD.2168) 2633 0 R (HD.2169) 2634 0 R (HD.217) 435 0 R (HD.2170) 2635 0 R (HD.2171) 2636 0 R (HD.2172) 2637 0 R (HD.2173) 2643 0 R (HD.2174) 2644 0 R (HD.2175) 2645 0 R (HD.2176) 2646 0 R ] /Limits [ (HD.2148) (HD.2176) ] >>
endobj
-11699 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 100 /Kids [ 206 0 R 603 0 R 871 0 R 1316 0 R 1810 0 R 2254 0 R 2759 0 R 3298 0 R 3783 0 R 4301 0 R ] >>
+11658 0 obj
+<< /Names [ (HD.2177) 2647 0 R (HD.2178) 2648 0 R (HD.2179) 2649 0 R (HD.218) 436 0 R (HD.2180) 2650 0 R (HD.2181) 2651 0 R (HD.2182) 2652 0 R (HD.2183) 2653 0 R (HD.2184) 2654 0 R (HD.2185) 2655 0 R (HD.2186) 2656 0 R (HD.2187) 2657 0 R (HD.2188) 2658 0 R (HD.2189) 2659 0 R (HD.219) 437 0 R (HD.2190) 2660 0 R (HD.2191) 2661 0 R (HD.2192) 2662 0 R (HD.2193) 2663 0 R (HD.2194) 2664 0 R (HD.2195) 2665 0 R (HD.2196) 2666 0 R (HD.2197) 2667 0 R (HD.2198) 2668 0 R (HD.2199) 2669 0 R (HD.22) 213 0 R (HD.220) 438 0 R (HD.2200) 2670 0 R (HD.2201) 2671 0 R (HD.2202) 2672 0 R (HD.2203) 2673 0 R (HD.2204) 2674 0 R ] /Limits [ (HD.2177) (HD.2204) ] >>
endobj
-11700 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 100 /Kids [ 4785 0 R 5309 0 R 5835 0 R 6332 0 R 6820 0 R 7338 0 R 7831 0 R 8314 0 R 8886 0 R 9424 0 R ] >>
+11659 0 obj
+<< /Names [ (HD.2205) 2675 0 R (HD.2206) 2676 0 R (HD.2207) 2677 0 R (HD.2208) 2678 0 R (HD.2209) 2679 0 R (HD.221) 439 0 R (HD.2210) 2680 0 R (HD.2211) 2681 0 R (HD.2212) 2682 0 R (HD.2213) 2689 0 R (HD.2214) 2690 0 R (HD.2215) 2691 0 R (HD.2216) 2692 0 R (HD.2217) 2693 0 R (HD.2218) 2694 0 R (HD.2219) 2695 0 R (HD.222) 440 0 R (HD.2220) 2696 0 R (HD.2221) 2697 0 R (HD.2222) 2698 0 R (HD.2223) 2699 0 R (HD.2224) 2700 0 R (HD.2225) 2701 0 R (HD.2226) 2702 0 R (HD.2227) 2703 0 R (HD.2228) 2704 0 R (HD.2229) 2705 0 R (HD.223) 441 0 R (HD.2230) 2706 0 R (HD.2231) 2707 0 R (HD.2232) 2708 0 R (HD.2233) 2709 0 R ] /Limits [ (HD.2205) (HD.2233) ] >>
endobj
-11701 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 29 /Kids [ 9948 0 R 10545 0 R 11189 0 R ] >>
+11660 0 obj
+<< /Names [ (HD.2234) 2710 0 R (HD.2235) 2711 0 R (HD.2236) 2712 0 R (HD.2237) 2713 0 R (HD.2238) 2714 0 R (HD.2239) 2715 0 R (HD.224) 442 0 R (HD.2240) 2716 0 R (HD.2241) 2717 0 R (HD.2242) 2718 0 R (HD.2243) 2719 0 R (HD.2244) 2720 0 R (HD.2245) 2721 0 R (HD.2246) 2722 0 R (HD.2247) 2723 0 R (HD.2248) 2724 0 R (HD.2249) 2725 0 R (HD.225) 443 0 R (HD.2250) 2726 0 R (HD.2251) 2727 0 R (HD.2252) 2728 0 R (HD.2253) 2729 0 R (HD.2254) 2730 0 R (HD.2255) 2731 0 R (HD.2256) 2732 0 R (HD.2257) 2733 0 R (HD.2258) 2734 0 R (HD.2259) 2735 0 R (HD.226) 444 0 R (HD.2260) 2736 0 R (HD.2261) 2737 0 R (HD.2262) 2738 0 R ] /Limits [ (HD.2234) (HD.2262) ] >>
endobj
-11702 0 obj
-<< /Type /Pages /Count 229 /Kids [ 11699 0 R 11700 0 R 11701 0 R ] >>
+11661 0 obj
+<< /Names [ (HD.2263) 2739 0 R (HD.2264) 2740 0 R (HD.2265) 2741 0 R (HD.2266) 2742 0 R (HD.2267) 2748 0 R (HD.2268) 2749 0 R (HD.2269) 2750 0 R (HD.227) 445 0 R (HD.2270) 2751 0 R (HD.2271) 2752 0 R (HD.2272) 2753 0 R (HD.2273) 2754 0 R (HD.2274) 2755 0 R (HD.2275) 2756 0 R (HD.2276) 2757 0 R (HD.2277) 2758 0 R (HD.2278) 2759 0 R (HD.2279) 2760 0 R (HD.228) 446 0 R (HD.2280) 2761 0 R (HD.2281) 2762 0 R (HD.2282) 2763 0 R (HD.2283) 2764 0 R (HD.2284) 2765 0 R (HD.2285) 2766 0 R (HD.2286) 2767 0 R (HD.2287) 2768 0 R (HD.2288) 2769 0 R (HD.2289) 2770 0 R (HD.229) 447 0 R (HD.2290) 2771 0 R (HD.2291) 2772 0 R ] /Limits [ (HD.2263) (HD.2291) ] >>
endobj
-11703 0 obj
-<< /Type /Outlines /First 6 0 R /Last 166 0 R /Count 41 >>
+11662 0 obj
+<< /Names [ (HD.2292) 2773 0 R (HD.2293) 2774 0 R (HD.2294) 2775 0 R (HD.2295) 2776 0 R (HD.2296) 2777 0 R (HD.2297) 2778 0 R (HD.2298) 2779 0 R (HD.2299) 2780 0 R (HD.23) 214 0 R (HD.230) 448 0 R (HD.2300) 2781 0 R (HD.2301) 2782 0 R (HD.2302) 2783 0 R (HD.2303) 2784 0 R (HD.2304) 2785 0 R (HD.2305) 2786 0 R (HD.2306) 2787 0 R (HD.2307) 2788 0 R (HD.2308) 2789 0 R (HD.2309) 2790 0 R (HD.231) 449 0 R (HD.2310) 2791 0 R (HD.2311) 2792 0 R (HD.2312) 2793 0 R (HD.2313) 2794 0 R (HD.2314) 2795 0 R (HD.2315) 2796 0 R (HD.2316) 2797 0 R (HD.2317) 2802 0 R (HD.2318) 2803 0 R (HD.2319) 2804 0 R (HD.232) 450 0 R ] /Limits [ (HD.2292) (HD.232) ] >>
endobj
-166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 11703 0 R /Prev 162 0 R >>
+11663 0 obj
+<< /Names [ (HD.2320) 2805 0 R (HD.2321) 2806 0 R (HD.2322) 2807 0 R (HD.2323) 2808 0 R (HD.2324) 2809 0 R (HD.2325) 2810 0 R (HD.2326) 2811 0 R (HD.2327) 2812 0 R (HD.2328) 2813 0 R (HD.2329) 2814 0 R (HD.233) 451 0 R (HD.2330) 2815 0 R (HD.2331) 2816 0 R (HD.2332) 2817 0 R (HD.2333) 2818 0 R (HD.2334) 2819 0 R (HD.2335) 2820 0 R (HD.2336) 2821 0 R (HD.2337) 2822 0 R (HD.2338) 2823 0 R (HD.2339) 2824 0 R (HD.234) 452 0 R (HD.2340) 2825 0 R (HD.2341) 2826 0 R (HD.2342) 2827 0 R (HD.2343) 2828 0 R (HD.2344) 2829 0 R (HD.2345) 2830 0 R (HD.2346) 2831 0 R (HD.2347) 2832 0 R (HD.2348) 2833 0 R (HD.2349) 2834 0 R ] /Limits [ (HD.2320) (HD.2349) ] >>
endobj
-162 0 obj
-<< /Title 163 0 R /A 160 0 R /Parent 11703 0 R /Prev 158 0 R /Next 166 0 R >>
+11664 0 obj
+<< /Names [ (HD.235) 453 0 R (HD.2350) 2835 0 R (HD.2351) 2836 0 R (HD.2352) 2837 0 R (HD.2353) 2838 0 R (HD.2354) 2839 0 R (HD.2355) 2840 0 R (HD.2356) 2841 0 R (HD.2357) 2842 0 R (HD.2358) 2843 0 R (HD.2359) 2844 0 R (HD.236) 454 0 R (HD.2360) 2845 0 R (HD.2361) 2846 0 R (HD.2362) 2847 0 R (HD.2363) 2848 0 R (HD.2364) 2853 0 R (HD.2365) 2854 0 R (HD.2366) 2855 0 R (HD.2367) 2856 0 R (HD.2368) 2857 0 R (HD.2369) 2858 0 R (HD.237) 455 0 R (HD.2370) 2859 0 R (HD.2371) 2860 0 R (HD.2372) 2861 0 R (HD.2373) 2862 0 R (HD.2374) 2863 0 R (HD.2375) 2864 0 R (HD.2376) 2865 0 R (HD.2377) 2866 0 R (HD.2378) 2867 0 R ] /Limits [ (HD.235) (HD.2378) ] >>
endobj
-158 0 obj
-<< /Title 159 0 R /A 156 0 R /Parent 11703 0 R /Prev 154 0 R /Next 162 0 R >>
+11665 0 obj
+<< /Names [ (HD.2379) 2868 0 R (HD.238) 456 0 R (HD.2380) 2869 0 R (HD.2381) 2870 0 R (HD.2382) 2871 0 R (HD.2383) 2872 0 R (HD.2384) 2873 0 R (HD.2385) 2874 0 R (HD.2386) 2875 0 R (HD.2387) 2876 0 R (HD.2388) 2877 0 R (HD.2389) 2878 0 R (HD.239) 457 0 R (HD.2390) 2879 0 R (HD.2391) 2880 0 R (HD.2392) 2881 0 R (HD.2393) 2882 0 R (HD.2394) 2883 0 R (HD.2395) 2884 0 R (HD.2396) 2885 0 R (HD.2397) 2886 0 R (HD.2398) 2887 0 R (HD.2399) 2888 0 R (HD.24) 215 0 R (HD.240) 458 0 R (HD.2400) 2889 0 R (HD.2401) 2890 0 R (HD.2402) 2891 0 R (HD.2403) 2896 0 R (HD.2404) 2897 0 R (HD.2405) 2898 0 R (HD.2406) 2899 0 R ] /Limits [ (HD.2379) (HD.2406) ] >>
endobj
-154 0 obj
-<< /Title 155 0 R /A 152 0 R /Parent 11703 0 R /Prev 150 0 R /Next 158 0 R >>
+11666 0 obj
+<< /Names [ (HD.2407) 2900 0 R (HD.2408) 2901 0 R (HD.2409) 2902 0 R (HD.241) 459 0 R (HD.2410) 2903 0 R (HD.2411) 2904 0 R (HD.2412) 2905 0 R (HD.2413) 2906 0 R (HD.2414) 2907 0 R (HD.2415) 2908 0 R (HD.2416) 2909 0 R (HD.2417) 2910 0 R (HD.2418) 2911 0 R (HD.2419) 2912 0 R (HD.242) 460 0 R (HD.2420) 2913 0 R (HD.2421) 2914 0 R (HD.2422) 2915 0 R (HD.2423) 2916 0 R (HD.2424) 2917 0 R (HD.2425) 2918 0 R (HD.2426) 2919 0 R (HD.2427) 2920 0 R (HD.2428) 2921 0 R (HD.2429) 2922 0 R (HD.243) 461 0 R (HD.2430) 2923 0 R (HD.2431) 2924 0 R (HD.2432) 2925 0 R (HD.2433) 2926 0 R (HD.2434) 2927 0 R (HD.2435) 2928 0 R ] /Limits [ (HD.2407) (HD.2435) ] >>
endobj
-150 0 obj
-<< /Title 151 0 R /A 148 0 R /Parent 11703 0 R /Prev 146 0 R /Next 154 0 R >>
+11667 0 obj
+<< /Names [ (HD.2436) 2929 0 R (HD.2437) 2930 0 R (HD.2438) 2931 0 R (HD.2439) 2932 0 R (HD.244) 462 0 R (HD.2440) 2937 0 R (HD.2441) 2938 0 R (HD.2442) 2939 0 R (HD.2443) 2940 0 R (HD.2444) 2941 0 R (HD.2445) 2942 0 R (HD.2446) 2943 0 R (HD.2447) 2944 0 R (HD.2448) 2945 0 R (HD.2449) 2946 0 R (HD.245) 463 0 R (HD.2450) 2947 0 R (HD.2451) 2948 0 R (HD.2452) 2949 0 R (HD.2453) 2950 0 R (HD.2454) 2951 0 R (HD.2455) 2952 0 R (HD.2456) 2953 0 R (HD.2457) 2954 0 R (HD.2458) 2955 0 R (HD.2459) 2956 0 R (HD.246) 464 0 R (HD.2460) 2957 0 R (HD.2461) 2958 0 R (HD.2462) 2959 0 R (HD.2463) 2960 0 R (HD.2464) 2961 0 R ] /Limits [ (HD.2436) (HD.2464) ] >>
endobj
-146 0 obj
-<< /Title 147 0 R /A 144 0 R /Parent 11703 0 R /Prev 142 0 R /Next 150 0 R >>
+11668 0 obj
+<< /Names [ (HD.2465) 2962 0 R (HD.2466) 2963 0 R (HD.2467) 2964 0 R (HD.2468) 2965 0 R (HD.2469) 2966 0 R (HD.247) 465 0 R (HD.2470) 2967 0 R (HD.2471) 2968 0 R (HD.2472) 2969 0 R (HD.2473) 2970 0 R (HD.2474) 2971 0 R (HD.2475) 2972 0 R (HD.2476) 2973 0 R (HD.2477) 2974 0 R (HD.2478) 2975 0 R (HD.2479) 2976 0 R (HD.248) 466 0 R (HD.2480) 2977 0 R (HD.2481) 2978 0 R (HD.2482) 2979 0 R (HD.2483) 2980 0 R (HD.2484) 2981 0 R (HD.2485) 2982 0 R (HD.2486) 2983 0 R (HD.2487) 2988 0 R (HD.2488) 2989 0 R (HD.2489) 2990 0 R (HD.249) 467 0 R (HD.2490) 2991 0 R (HD.2491) 2992 0 R (HD.2492) 2993 0 R (HD.2493) 2994 0 R ] /Limits [ (HD.2465) (HD.2493) ] >>
endobj
-142 0 obj
-<< /Title 143 0 R /A 140 0 R /Parent 11703 0 R /Prev 138 0 R /Next 146 0 R >>
+11669 0 obj
+<< /Names [ (HD.2494) 2995 0 R (HD.2495) 2996 0 R (HD.2496) 2997 0 R (HD.2497) 2998 0 R (HD.2498) 2999 0 R (HD.2499) 3000 0 R (HD.25) 216 0 R (HD.250) 468 0 R (HD.2500) 3001 0 R (HD.2501) 3002 0 R (HD.2502) 3003 0 R (HD.2503) 3004 0 R (HD.2504) 3005 0 R (HD.2505) 3006 0 R (HD.2506) 3007 0 R (HD.2507) 3008 0 R (HD.2508) 3009 0 R (HD.2509) 3010 0 R (HD.251) 469 0 R (HD.2510) 3011 0 R (HD.2511) 3012 0 R (HD.2512) 3013 0 R (HD.2513) 3014 0 R (HD.2514) 3015 0 R (HD.2515) 3016 0 R (HD.2516) 3017 0 R (HD.2517) 3018 0 R (HD.2518) 3019 0 R (HD.2519) 3020 0 R (HD.252) 470 0 R (HD.2520) 3021 0 R (HD.2521) 3022 0 R ] /Limits [ (HD.2494) (HD.2521) ] >>
endobj
-138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 11703 0 R /Prev 134 0 R /Next 142 0 R >>
+11670 0 obj
+<< /Names [ (HD.2522) 3023 0 R (HD.2523) 3024 0 R (HD.2524) 3025 0 R (HD.2525) 3026 0 R (HD.2526) 3027 0 R (HD.2527) 3028 0 R (HD.2528) 3029 0 R (HD.2529) 3030 0 R (HD.253) 471 0 R (HD.2530) 3031 0 R (HD.2531) 3032 0 R (HD.2532) 3033 0 R (HD.2533) 3034 0 R (HD.2534) 3035 0 R (HD.2535) 3036 0 R (HD.2536) 3037 0 R (HD.2537) 3038 0 R (HD.2538) 3043 0 R (HD.2539) 3044 0 R (HD.254) 472 0 R (HD.2540) 3045 0 R (HD.2541) 3046 0 R (HD.2542) 3047 0 R (HD.2543) 3048 0 R (HD.2544) 3049 0 R (HD.2545) 3050 0 R (HD.2546) 3051 0 R (HD.2547) 3052 0 R (HD.2548) 3053 0 R (HD.2549) 3054 0 R (HD.255) 477 0 R (HD.2550) 3055 0 R ] /Limits [ (HD.2522) (HD.2550) ] >>
endobj
-134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 11703 0 R /Prev 130 0 R /Next 138 0 R >>
+11671 0 obj
+<< /Names [ (HD.2551) 3056 0 R (HD.2552) 3057 0 R (HD.2553) 3058 0 R (HD.2554) 3059 0 R (HD.2555) 3060 0 R (HD.2556) 3061 0 R (HD.2557) 3062 0 R (HD.2558) 3063 0 R (HD.2559) 3064 0 R (HD.256) 478 0 R (HD.2560) 3065 0 R (HD.2561) 3066 0 R (HD.2562) 3067 0 R (HD.2563) 3068 0 R (HD.2564) 3069 0 R (HD.2565) 3070 0 R (HD.2566) 3071 0 R (HD.2567) 3072 0 R (HD.2568) 3073 0 R (HD.2569) 3074 0 R (HD.257) 479 0 R (HD.2570) 3075 0 R (HD.2571) 3076 0 R (HD.2572) 3077 0 R (HD.2573) 3078 0 R (HD.2574) 3079 0 R (HD.2575) 3080 0 R (HD.2576) 3081 0 R (HD.2577) 3082 0 R (HD.2578) 3083 0 R (HD.2579) 3084 0 R (HD.258) 480 0 R ] /Limits [ (HD.2551) (HD.258) ] >>
endobj
-130 0 obj
-<< /Title 131 0 R /A 128 0 R /Parent 11703 0 R /Prev 126 0 R /Next 134 0 R >>
+11672 0 obj
+<< /Names [ (HD.2580) 3085 0 R (HD.2581) 3086 0 R (HD.2582) 3087 0 R (HD.2583) 3088 0 R (HD.2584) 3089 0 R (HD.2585) 3090 0 R (HD.2586) 3091 0 R (HD.2587) 3092 0 R (HD.2588) 3093 0 R (HD.2589) 3094 0 R (HD.259) 481 0 R (HD.2590) 3095 0 R (HD.2591) 3100 0 R (HD.2592) 3101 0 R (HD.2593) 3102 0 R (HD.2594) 3103 0 R (HD.2595) 3104 0 R (HD.2596) 3105 0 R (HD.2597) 3106 0 R (HD.2598) 3107 0 R (HD.2599) 3108 0 R (HD.26) 217 0 R (HD.260) 482 0 R (HD.2600) 3109 0 R (HD.2601) 3110 0 R (HD.2602) 3111 0 R (HD.2603) 3112 0 R (HD.2604) 3113 0 R (HD.2605) 3114 0 R (HD.2606) 3115 0 R (HD.2607) 3116 0 R (HD.2608) 3117 0 R ] /Limits [ (HD.2580) (HD.2608) ] >>
endobj
-126 0 obj
-<< /Title 127 0 R /A 124 0 R /Parent 11703 0 R /Prev 122 0 R /Next 130 0 R >>
+11673 0 obj
+<< /Names [ (HD.2609) 3118 0 R (HD.261) 483 0 R (HD.2610) 3119 0 R (HD.2611) 3120 0 R (HD.2612) 3121 0 R (HD.2613) 3122 0 R (HD.2614) 3123 0 R (HD.2615) 3124 0 R (HD.2616) 3125 0 R (HD.2617) 3126 0 R (HD.2618) 3127 0 R (HD.2619) 3128 0 R (HD.262) 484 0 R (HD.2620) 3129 0 R (HD.2621) 3130 0 R (HD.2622) 3131 0 R (HD.2623) 3132 0 R (HD.2624) 3133 0 R (HD.2625) 3134 0 R (HD.2626) 3135 0 R (HD.2627) 3136 0 R (HD.2628) 3137 0 R (HD.2629) 3138 0 R (HD.263) 485 0 R (HD.2630) 3139 0 R (HD.2631) 3140 0 R (HD.2632) 3141 0 R (HD.2633) 3142 0 R (HD.2634) 3143 0 R (HD.2635) 3144 0 R (HD.2636) 3145 0 R (HD.2637) 3146 0 R ] /Limits [ (HD.2609) (HD.2637) ] >>
endobj
-122 0 obj
-<< /Title 123 0 R /A 120 0 R /Parent 11703 0 R /Prev 118 0 R /Next 126 0 R >>
+11674 0 obj
+<< /Names [ (HD.2638) 3147 0 R (HD.2639) 3148 0 R (HD.264) 486 0 R (HD.2640) 3149 0 R (HD.2641) 3150 0 R (HD.2642) 3151 0 R (HD.2643) 3152 0 R (HD.2644) 3153 0 R (HD.2645) 3154 0 R (HD.2646) 3155 0 R (HD.2647) 3160 0 R (HD.2648) 3161 0 R (HD.2649) 3162 0 R (HD.265) 487 0 R (HD.2650) 3163 0 R (HD.2651) 3164 0 R (HD.2652) 3165 0 R (HD.2653) 3166 0 R (HD.2654) 3167 0 R (HD.2655) 3168 0 R (HD.2656) 3169 0 R (HD.2657) 3170 0 R (HD.2658) 3171 0 R (HD.2659) 3172 0 R (HD.266) 488 0 R (HD.2660) 3173 0 R (HD.2661) 3174 0 R (HD.2662) 3175 0 R (HD.2663) 3176 0 R (HD.2664) 3177 0 R (HD.2665) 3178 0 R (HD.2666) 3179 0 R ] /Limits [ (HD.2638) (HD.2666) ] >>
endobj
-118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 11703 0 R /Prev 114 0 R /Next 122 0 R >>
+11675 0 obj
+<< /Names [ (HD.2667) 3180 0 R (HD.2668) 3181 0 R (HD.2669) 3182 0 R (HD.267) 489 0 R (HD.2670) 3183 0 R (HD.2671) 3184 0 R (HD.2672) 3185 0 R (HD.2673) 3186 0 R (HD.2674) 3187 0 R (HD.2675) 3188 0 R (HD.2676) 3189 0 R (HD.2677) 3190 0 R (HD.2678) 3191 0 R (HD.2679) 3192 0 R (HD.268) 490 0 R (HD.2680) 3193 0 R (HD.2681) 3194 0 R (HD.2682) 3195 0 R (HD.2683) 3196 0 R (HD.2684) 3197 0 R (HD.2685) 3198 0 R (HD.2686) 3199 0 R (HD.2687) 3200 0 R (HD.2688) 3201 0 R (HD.2689) 3202 0 R (HD.269) 491 0 R (HD.2690) 3203 0 R (HD.2691) 3204 0 R (HD.2692) 3205 0 R (HD.2693) 3206 0 R (HD.2694) 3207 0 R (HD.2695) 3208 0 R ] /Limits [ (HD.2667) (HD.2695) ] >>
endobj
-114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 11703 0 R /Prev 110 0 R /Next 118 0 R >>
+11676 0 obj
+<< /Names [ (HD.2696) 3209 0 R (HD.2697) 3210 0 R (HD.2698) 3211 0 R (HD.2699) 3216 0 R (HD.27) 218 0 R (HD.270) 492 0 R (HD.2700) 3217 0 R (HD.2701) 3218 0 R (HD.2702) 3219 0 R (HD.2703) 3220 0 R (HD.2704) 3221 0 R (HD.2705) 3222 0 R (HD.2706) 3223 0 R (HD.2707) 3224 0 R (HD.2708) 3225 0 R (HD.2709) 3226 0 R (HD.271) 493 0 R (HD.2710) 3227 0 R (HD.2711) 3228 0 R (HD.2712) 3229 0 R (HD.2713) 3230 0 R (HD.2714) 3231 0 R (HD.2715) 3232 0 R (HD.2716) 3233 0 R (HD.2717) 3234 0 R (HD.2718) 3235 0 R (HD.2719) 3236 0 R (HD.272) 494 0 R (HD.2720) 3237 0 R (HD.2721) 3238 0 R (HD.2722) 3239 0 R (HD.2723) 3240 0 R ] /Limits [ (HD.2696) (HD.2723) ] >>
endobj
-110 0 obj
-<< /Title 111 0 R /A 108 0 R /Parent 11703 0 R /Prev 106 0 R /Next 114 0 R >>
+11677 0 obj
+<< /Names [ (HD.2724) 3241 0 R (HD.2725) 3242 0 R (HD.2726) 3243 0 R (HD.2727) 3244 0 R (HD.2728) 3245 0 R (HD.2729) 3251 0 R (HD.273) 495 0 R (HD.2730) 3252 0 R (HD.2731) 3253 0 R (HD.2732) 3254 0 R (HD.2733) 3255 0 R (HD.2734) 3256 0 R (HD.2735) 3257 0 R (HD.2736) 3258 0 R (HD.2737) 3259 0 R (HD.2738) 3260 0 R (HD.2739) 3261 0 R (HD.274) 496 0 R (HD.2740) 3262 0 R (HD.2741) 3263 0 R (HD.2742) 3264 0 R (HD.2743) 3265 0 R (HD.2744) 3266 0 R (HD.2745) 3267 0 R (HD.2746) 3268 0 R (HD.2747) 3269 0 R (HD.2748) 3270 0 R (HD.2749) 3271 0 R (HD.275) 497 0 R (HD.2750) 3272 0 R (HD.2751) 3273 0 R (HD.2752) 3274 0 R ] /Limits [ (HD.2724) (HD.2752) ] >>
endobj
-106 0 obj
-<< /Title 107 0 R /A 104 0 R /Parent 11703 0 R /Prev 102 0 R /Next 110 0 R >>
+11678 0 obj
+<< /Names [ (HD.2753) 3275 0 R (HD.2754) 3276 0 R (HD.2755) 3277 0 R (HD.2756) 3278 0 R (HD.2757) 3279 0 R (HD.2758) 3280 0 R (HD.2759) 3281 0 R (HD.276) 498 0 R (HD.2760) 3282 0 R (HD.2761) 3283 0 R (HD.2762) 3284 0 R (HD.2763) 3285 0 R (HD.2764) 3286 0 R (HD.2765) 3287 0 R (HD.2766) 3288 0 R (HD.2767) 3289 0 R (HD.2768) 3290 0 R (HD.2769) 3291 0 R (HD.277) 499 0 R (HD.2770) 3292 0 R (HD.2771) 3297 0 R (HD.2772) 3298 0 R (HD.2773) 3299 0 R (HD.2774) 3300 0 R (HD.2775) 3301 0 R (HD.2776) 3302 0 R (HD.2777) 3303 0 R (HD.2778) 3304 0 R (HD.2779) 3305 0 R (HD.278) 500 0 R (HD.2780) 3306 0 R (HD.2781) 3307 0 R ] /Limits [ (HD.2753) (HD.2781) ] >>
endobj
-102 0 obj
-<< /Title 103 0 R /A 100 0 R /Parent 11703 0 R /Prev 98 0 R /Next 106 0 R >>
+11679 0 obj
+<< /Names [ (HD.2782) 3308 0 R (HD.2783) 3309 0 R (HD.2784) 3310 0 R (HD.2785) 3311 0 R (HD.2786) 3312 0 R (HD.2787) 3313 0 R (HD.2788) 3314 0 R (HD.2789) 3315 0 R (HD.279) 501 0 R (HD.2790) 3316 0 R (HD.2791) 3317 0 R (HD.2792) 3318 0 R (HD.2793) 3319 0 R (HD.2794) 3320 0 R (HD.2795) 3321 0 R (HD.2796) 3322 0 R (HD.2797) 3323 0 R (HD.2798) 3324 0 R (HD.2799) 3325 0 R (HD.28) 219 0 R (HD.280) 502 0 R (HD.2800) 3326 0 R (HD.2801) 3327 0 R (HD.2802) 3328 0 R (HD.2803) 3329 0 R (HD.2804) 3330 0 R (HD.2805) 3331 0 R (HD.2806) 3332 0 R (HD.2807) 3333 0 R (HD.2808) 3334 0 R (HD.2809) 3335 0 R (HD.281) 503 0 R ] /Limits [ (HD.2782) (HD.281) ] >>
endobj
-98 0 obj
-<< /Title 99 0 R /A 96 0 R /Parent 11703 0 R /Prev 94 0 R /Next 102 0 R >>
+11680 0 obj
+<< /Names [ (HD.2810) 3336 0 R (HD.2811) 3337 0 R (HD.2812) 3342 0 R (HD.2813) 3343 0 R (HD.2814) 3344 0 R (HD.2815) 3345 0 R (HD.2816) 3346 0 R (HD.2817) 3347 0 R (HD.2818) 3348 0 R (HD.2819) 3349 0 R (HD.282) 504 0 R (HD.2820) 3350 0 R (HD.2821) 3351 0 R (HD.2822) 3352 0 R (HD.2823) 3353 0 R (HD.2824) 3354 0 R (HD.2825) 3355 0 R (HD.2826) 3356 0 R (HD.2827) 3357 0 R (HD.2828) 3358 0 R (HD.2829) 3359 0 R (HD.283) 506 0 R (HD.2830) 3360 0 R (HD.2831) 3361 0 R (HD.2832) 3362 0 R (HD.2833) 3363 0 R (HD.2834) 3364 0 R (HD.2835) 3365 0 R (HD.2836) 3366 0 R (HD.2837) 3367 0 R (HD.2838) 3368 0 R (HD.2839) 3369 0 R ] /Limits [ (HD.2810) (HD.2839) ] >>
endobj
-94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 11703 0 R /Prev 90 0 R /Next 98 0 R >>
+11681 0 obj
+<< /Names [ (HD.284) 507 0 R (HD.2840) 3370 0 R (HD.2841) 3371 0 R (HD.2842) 3372 0 R (HD.2843) 3373 0 R (HD.2844) 3374 0 R (HD.2845) 3375 0 R (HD.2846) 3376 0 R (HD.2847) 3377 0 R (HD.2848) 3378 0 R (HD.2849) 3379 0 R (HD.285) 508 0 R (HD.2850) 3380 0 R (HD.2851) 3381 0 R (HD.2852) 3382 0 R (HD.2853) 3383 0 R (HD.2854) 3384 0 R (HD.2855) 3385 0 R (HD.2856) 3386 0 R (HD.2857) 3387 0 R (HD.2858) 3388 0 R (HD.2859) 3389 0 R (HD.286) 509 0 R (HD.2860) 3390 0 R (HD.2861) 3391 0 R (HD.2862) 3392 0 R (HD.2863) 3397 0 R (HD.2864) 3398 0 R (HD.2865) 3399 0 R (HD.2866) 3400 0 R (HD.2867) 3401 0 R (HD.2868) 3402 0 R ] /Limits [ (HD.284) (HD.2868) ] >>
endobj
-90 0 obj
-<< /Title 91 0 R /A 88 0 R /Parent 11703 0 R /Prev 86 0 R /Next 94 0 R >>
+11682 0 obj
+<< /Names [ (HD.2869) 3403 0 R (HD.287) 510 0 R (HD.2870) 3404 0 R (HD.2871) 3405 0 R (HD.2872) 3406 0 R (HD.2873) 3407 0 R (HD.2874) 3408 0 R (HD.2875) 3409 0 R (HD.2876) 3410 0 R (HD.2877) 3411 0 R (HD.2878) 3412 0 R (HD.2879) 3413 0 R (HD.288) 515 0 R (HD.2880) 3414 0 R (HD.2881) 3415 0 R (HD.2882) 3416 0 R (HD.2883) 3417 0 R (HD.2884) 3418 0 R (HD.2885) 3419 0 R (HD.2886) 3420 0 R (HD.2887) 3421 0 R (HD.2888) 3422 0 R (HD.2889) 3423 0 R (HD.289) 516 0 R (HD.2890) 3424 0 R (HD.2891) 3425 0 R (HD.2892) 3426 0 R (HD.2893) 3427 0 R (HD.2894) 3428 0 R (HD.2895) 3429 0 R (HD.2896) 3430 0 R (HD.2897) 3431 0 R ] /Limits [ (HD.2869) (HD.2897) ] >>
endobj
-86 0 obj
-<< /Title 87 0 R /A 84 0 R /Parent 11703 0 R /Prev 82 0 R /Next 90 0 R >>
+11683 0 obj
+<< /Names [ (HD.2898) 3432 0 R (HD.2899) 3433 0 R (HD.29) 220 0 R (HD.290) 517 0 R (HD.2900) 3434 0 R (HD.2901) 3435 0 R (HD.2902) 3436 0 R (HD.2903) 3437 0 R (HD.2904) 3438 0 R (HD.2905) 3439 0 R (HD.2906) 3440 0 R (HD.2907) 3441 0 R (HD.2908) 3442 0 R (HD.2909) 3443 0 R (HD.291) 518 0 R (HD.2910) 3444 0 R (HD.2911) 3445 0 R (HD.2912) 3446 0 R (HD.2913) 3451 0 R (HD.2914) 3452 0 R (HD.2915) 3453 0 R (HD.2916) 3454 0 R (HD.2917) 3455 0 R (HD.2918) 3456 0 R (HD.2919) 3457 0 R (HD.292) 519 0 R (HD.2920) 3458 0 R (HD.2921) 3459 0 R (HD.2922) 3460 0 R (HD.2923) 3461 0 R (HD.2924) 3462 0 R (HD.2925) 3463 0 R ] /Limits [ (HD.2898) (HD.2925) ] >>
endobj
-82 0 obj
-<< /Title 83 0 R /A 80 0 R /Parent 11703 0 R /Prev 78 0 R /Next 86 0 R >>
+11684 0 obj
+<< /Names [ (HD.2926) 3464 0 R (HD.2927) 3465 0 R (HD.2928) 3466 0 R (HD.2929) 3467 0 R (HD.293) 520 0 R (HD.2930) 3468 0 R (HD.2931) 3469 0 R (HD.2932) 3470 0 R (HD.2933) 3471 0 R (HD.2934) 3472 0 R (HD.2935) 3473 0 R (HD.2936) 3474 0 R (HD.2937) 3475 0 R (HD.2938) 3476 0 R (HD.2939) 3477 0 R (HD.294) 521 0 R (HD.2940) 3478 0 R (HD.2941) 3479 0 R (HD.2942) 3480 0 R (HD.2943) 3481 0 R (HD.2944) 3482 0 R (HD.2945) 3483 0 R (HD.2946) 3484 0 R (HD.2947) 3485 0 R (HD.2948) 3486 0 R (HD.2949) 3487 0 R (HD.295) 522 0 R (HD.2950) 3488 0 R (HD.2951) 3489 0 R (HD.2952) 3490 0 R (HD.2953) 3491 0 R (HD.2954) 3492 0 R ] /Limits [ (HD.2926) (HD.2954) ] >>
endobj
-78 0 obj
-<< /Title 79 0 R /A 76 0 R /Parent 11703 0 R /Prev 74 0 R /Next 82 0 R >>
+11685 0 obj
+<< /Names [ (HD.2955) 3493 0 R (HD.2956) 3494 0 R (HD.2957) 3495 0 R (HD.2958) 3496 0 R (HD.2959) 3497 0 R (HD.296) 523 0 R (HD.2960) 3502 0 R (HD.2961) 3503 0 R (HD.2962) 3504 0 R (HD.2963) 3505 0 R (HD.2964) 3506 0 R (HD.2965) 3507 0 R (HD.2966) 3508 0 R (HD.2967) 3509 0 R (HD.2968) 3510 0 R (HD.2969) 3511 0 R (HD.297) 524 0 R (HD.2970) 3512 0 R (HD.2971) 3513 0 R (HD.2972) 3514 0 R (HD.2973) 3515 0 R (HD.2974) 3516 0 R (HD.2975) 3517 0 R (HD.2976) 3518 0 R (HD.2977) 3519 0 R (HD.2978) 3520 0 R (HD.2979) 3521 0 R (HD.298) 525 0 R (HD.2980) 3522 0 R (HD.2981) 3523 0 R (HD.2982) 3524 0 R (HD.2983) 3525 0 R ] /Limits [ (HD.2955) (HD.2983) ] >>
endobj
-74 0 obj
-<< /Title 75 0 R /A 72 0 R /Parent 11703 0 R /Prev 70 0 R /Next 78 0 R >>
+11686 0 obj
+<< /Names [ (HD.2984) 3526 0 R (HD.2985) 3527 0 R (HD.2986) 3528 0 R (HD.2987) 3529 0 R (HD.2988) 3530 0 R (HD.2989) 3531 0 R (HD.299) 526 0 R (HD.2990) 3532 0 R (HD.2991) 3533 0 R (HD.2992) 3534 0 R (HD.2993) 3535 0 R (HD.2994) 3536 0 R (HD.2995) 3537 0 R (HD.2996) 3538 0 R (HD.2997) 3539 0 R (HD.2998) 3540 0 R (HD.2999) 3541 0 R (HD.3) 187 0 R (HD.30) 221 0 R (HD.300) 527 0 R (HD.3000) 3542 0 R (HD.3001) 3543 0 R (HD.3002) 3544 0 R (HD.3003) 3545 0 R (HD.3004) 3546 0 R (HD.3005) 3547 0 R (HD.3006) 3548 0 R (HD.3007) 3553 0 R (HD.3008) 3554 0 R (HD.3009) 3555 0 R (HD.301) 528 0 R (HD.3010) 3556 0 R ] /Limits [ (HD.2984) (HD.3010) ] >>
endobj
-70 0 obj
-<< /Title 71 0 R /A 68 0 R /Parent 11703 0 R /Prev 66 0 R /Next 74 0 R >>
+11687 0 obj
+<< /Names [ (HD.3011) 3557 0 R (HD.3012) 3558 0 R (HD.3013) 3559 0 R (HD.3014) 3560 0 R (HD.3015) 3561 0 R (HD.3016) 3562 0 R (HD.3017) 3563 0 R (HD.3018) 3564 0 R (HD.3019) 3565 0 R (HD.302) 529 0 R (HD.3020) 3566 0 R (HD.3021) 3567 0 R (HD.3022) 3568 0 R (HD.3023) 3569 0 R (HD.3024) 3570 0 R (HD.3025) 3571 0 R (HD.3026) 3572 0 R (HD.3027) 3573 0 R (HD.3028) 3574 0 R (HD.3029) 3575 0 R (HD.303) 530 0 R (HD.3030) 3576 0 R (HD.3031) 3577 0 R (HD.3032) 3578 0 R (HD.3033) 3579 0 R (HD.3034) 3580 0 R (HD.3035) 3581 0 R (HD.3036) 3582 0 R (HD.3037) 3583 0 R (HD.3038) 3584 0 R (HD.3039) 3585 0 R (HD.304) 531 0 R ] /Limits [ (HD.3011) (HD.304) ] >>
endobj
-66 0 obj
-<< /Title 67 0 R /A 64 0 R /Parent 11703 0 R /Prev 62 0 R /Next 70 0 R >>
+11688 0 obj
+<< /Names [ (HD.3040) 3586 0 R (HD.3041) 3587 0 R (HD.3042) 3588 0 R (HD.3043) 3589 0 R (HD.3044) 3590 0 R (HD.3045) 3591 0 R (HD.3046) 3592 0 R (HD.3047) 3593 0 R (HD.3048) 3598 0 R (HD.3049) 3599 0 R (HD.305) 536 0 R (HD.3050) 3600 0 R (HD.3051) 3601 0 R (HD.3052) 3602 0 R (HD.3053) 3603 0 R (HD.3054) 3604 0 R (HD.3055) 3605 0 R (HD.3056) 3606 0 R (HD.3057) 3607 0 R (HD.3058) 3608 0 R (HD.3059) 3609 0 R (HD.306) 537 0 R (HD.3060) 3610 0 R (HD.3061) 3611 0 R (HD.3062) 3612 0 R (HD.3063) 3613 0 R (HD.3064) 3614 0 R (HD.3065) 3615 0 R (HD.3066) 3616 0 R (HD.3067) 3617 0 R (HD.3068) 3618 0 R (HD.3069) 3619 0 R ] /Limits [ (HD.3040) (HD.3069) ] >>
endobj
-62 0 obj
-<< /Title 63 0 R /A 60 0 R /Parent 11703 0 R /Prev 58 0 R /Next 66 0 R >>
+11689 0 obj
+<< /Names [ (HD.307) 538 0 R (HD.3070) 3620 0 R (HD.3071) 3621 0 R (HD.3072) 3622 0 R (HD.3073) 3623 0 R (HD.3074) 3624 0 R (HD.3075) 3625 0 R (HD.3076) 3626 0 R (HD.3077) 3627 0 R (HD.3078) 3628 0 R (HD.3079) 3629 0 R (HD.308) 539 0 R (HD.3080) 3630 0 R (HD.3081) 3631 0 R (HD.3082) 3632 0 R (HD.3083) 3633 0 R (HD.3084) 3634 0 R (HD.3085) 3635 0 R (HD.3086) 3636 0 R (HD.3087) 3637 0 R (HD.3088) 3638 0 R (HD.3089) 3639 0 R (HD.309) 540 0 R (HD.3090) 3640 0 R (HD.3091) 3641 0 R (HD.3092) 3642 0 R (HD.3093) 3643 0 R (HD.3094) 3648 0 R (HD.3095) 3649 0 R (HD.3096) 3650 0 R (HD.3097) 3651 0 R (HD.3098) 3652 0 R ] /Limits [ (HD.307) (HD.3098) ] >>
endobj
-58 0 obj
-<< /Title 59 0 R /A 56 0 R /Parent 11703 0 R /Prev 54 0 R /Next 62 0 R >>
+11690 0 obj
+<< /Names [ (HD.3099) 3653 0 R (HD.31) 222 0 R (HD.310) 541 0 R (HD.3100) 3654 0 R (HD.3101) 3655 0 R (HD.3102) 3656 0 R (HD.3103) 3657 0 R (HD.3104) 3658 0 R (HD.3105) 3659 0 R (HD.3106) 3660 0 R (HD.3107) 3661 0 R (HD.3108) 3662 0 R (HD.3109) 3663 0 R (HD.311) 542 0 R (HD.3110) 3664 0 R (HD.3111) 3665 0 R (HD.3112) 3666 0 R (HD.3113) 3667 0 R (HD.3114) 3668 0 R (HD.3115) 3669 0 R (HD.3116) 3670 0 R (HD.3117) 3671 0 R (HD.3118) 3672 0 R (HD.3119) 3673 0 R (HD.312) 543 0 R (HD.3120) 3674 0 R (HD.3121) 3675 0 R (HD.3122) 3676 0 R (HD.3123) 3677 0 R (HD.3124) 3678 0 R (HD.3125) 3679 0 R (HD.3126) 3680 0 R ] /Limits [ (HD.3099) (HD.3126) ] >>
endobj
-54 0 obj
-<< /Title 55 0 R /A 52 0 R /Parent 11703 0 R /Prev 50 0 R /Next 58 0 R >>
+11691 0 obj
+<< /Names [ (HD.3127) 3681 0 R (HD.3128) 3682 0 R (HD.3129) 3683 0 R (HD.313) 544 0 R (HD.3130) 3684 0 R (HD.3131) 3685 0 R (HD.3132) 3686 0 R (HD.3133) 3687 0 R (HD.3134) 3688 0 R (HD.3135) 3689 0 R (HD.3136) 3690 0 R (HD.3137) 3691 0 R (HD.3138) 3692 0 R (HD.3139) 3693 0 R (HD.314) 545 0 R (HD.3140) 3694 0 R (HD.3141) 3699 0 R (HD.3142) 3700 0 R (HD.3143) 3701 0 R (HD.3144) 3702 0 R (HD.3145) 3703 0 R (HD.3146) 3704 0 R (HD.3147) 3705 0 R (HD.3148) 3706 0 R (HD.3149) 3707 0 R (HD.315) 546 0 R (HD.3150) 3708 0 R (HD.3151) 3709 0 R (HD.3152) 3710 0 R (HD.3153) 3711 0 R (HD.3154) 3712 0 R (HD.3155) 3713 0 R ] /Limits [ (HD.3127) (HD.3155) ] >>
endobj
-50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 11703 0 R /Prev 46 0 R /Next 54 0 R >>
+11692 0 obj
+<< /Names [ (HD.3156) 3714 0 R (HD.3157) 3715 0 R (HD.3158) 3716 0 R (HD.3159) 3717 0 R (HD.316) 547 0 R (HD.3160) 3718 0 R (HD.3161) 3719 0 R (HD.3162) 3720 0 R (HD.3163) 3721 0 R (HD.3164) 3722 0 R (HD.3165) 3723 0 R (HD.3166) 3724 0 R (HD.3167) 3725 0 R (HD.3168) 3726 0 R (HD.3169) 3727 0 R (HD.317) 548 0 R (HD.3170) 3728 0 R (HD.3171) 3729 0 R (HD.3172) 3730 0 R (HD.3173) 3731 0 R (HD.3174) 3732 0 R (HD.3175) 3733 0 R (HD.3176) 3734 0 R (HD.3177) 3735 0 R (HD.3178) 3736 0 R (HD.3179) 3737 0 R (HD.318) 549 0 R (HD.3180) 3738 0 R (HD.3181) 3739 0 R (HD.3182) 3740 0 R (HD.3183) 3741 0 R (HD.3184) 3742 0 R ] /Limits [ (HD.3156) (HD.3184) ] >>
endobj
-46 0 obj
-<< /Title 47 0 R /A 44 0 R /Parent 11703 0 R /Prev 42 0 R /Next 50 0 R >>
+11693 0 obj
+<< /Names [ (HD.3185) 3743 0 R (HD.3186) 3744 0 R (HD.3187) 3745 0 R (HD.3188) 3746 0 R (HD.3189) 3747 0 R (HD.319) 550 0 R (HD.3190) 3748 0 R (HD.3191) 3749 0 R (HD.3192) 3750 0 R (HD.3193) 3751 0 R (HD.3194) 3752 0 R (HD.3195) 3753 0 R (HD.3196) 3759 0 R (HD.3197) 3760 0 R (HD.3198) 3761 0 R (HD.3199) 3762 0 R (HD.32) 223 0 R (HD.320) 551 0 R (HD.3200) 3763 0 R (HD.3201) 3764 0 R (HD.3202) 3765 0 R (HD.3203) 3766 0 R (HD.3204) 3767 0 R (HD.3205) 3768 0 R (HD.3206) 3769 0 R (HD.3207) 3770 0 R (HD.3208) 3771 0 R (HD.3209) 3772 0 R (HD.321) 556 0 R (HD.3210) 3773 0 R (HD.3211) 3774 0 R (HD.3212) 3775 0 R ] /Limits [ (HD.3185) (HD.3212) ] >>
endobj
-42 0 obj
-<< /Title 43 0 R /A 40 0 R /Parent 11703 0 R /Prev 38 0 R /Next 46 0 R >>
+11694 0 obj
+<< /Names [ (HD.3213) 3776 0 R (HD.3214) 3777 0 R (HD.3215) 3778 0 R (HD.3216) 3779 0 R (HD.3217) 3780 0 R (HD.3218) 3781 0 R (HD.3219) 3782 0 R (HD.322) 557 0 R (HD.3220) 3783 0 R (HD.3221) 3784 0 R (HD.3222) 3785 0 R (HD.3223) 3786 0 R (HD.3224) 3787 0 R (HD.3225) 3788 0 R (HD.3226) 3789 0 R (HD.3227) 3790 0 R (HD.3228) 3791 0 R (HD.3229) 3792 0 R (HD.323) 558 0 R (HD.3230) 3793 0 R (HD.3231) 3794 0 R (HD.3232) 3795 0 R (HD.3233) 3796 0 R (HD.3234) 3797 0 R (HD.3235) 3798 0 R (HD.3236) 3799 0 R (HD.3237) 3804 0 R (HD.3238) 3805 0 R (HD.3239) 3806 0 R (HD.324) 559 0 R (HD.3240) 3807 0 R (HD.3241) 3808 0 R ] /Limits [ (HD.3213) (HD.3241) ] >>
endobj
-38 0 obj
-<< /Title 39 0 R /A 36 0 R /Parent 11703 0 R /Prev 34 0 R /Next 42 0 R >>
+11695 0 obj
+<< /Names [ (HD.3242) 3809 0 R (HD.3243) 3810 0 R (HD.3244) 3811 0 R (HD.3245) 3812 0 R (HD.3246) 3813 0 R (HD.3247) 3814 0 R (HD.3248) 3815 0 R (HD.3249) 3816 0 R (HD.325) 560 0 R (HD.3250) 3817 0 R (HD.3251) 3818 0 R (HD.3252) 3819 0 R (HD.3253) 3820 0 R (HD.3254) 3821 0 R (HD.3255) 3822 0 R (HD.3256) 3823 0 R (HD.3257) 3824 0 R (HD.3258) 3825 0 R (HD.3259) 3826 0 R (HD.326) 561 0 R (HD.3260) 3827 0 R (HD.3261) 3828 0 R (HD.3262) 3829 0 R (HD.3263) 3830 0 R (HD.3264) 3831 0 R (HD.3265) 3832 0 R (HD.3266) 3833 0 R (HD.3267) 3834 0 R (HD.3268) 3835 0 R (HD.3269) 3836 0 R (HD.327) 562 0 R (HD.3270) 3837 0 R ] /Limits [ (HD.3242) (HD.3270) ] >>
endobj
-34 0 obj
-<< /Title 35 0 R /A 32 0 R /Parent 11703 0 R /Prev 30 0 R /Next 38 0 R >>
+11696 0 obj
+<< /Names [ (HD.3271) 3838 0 R (HD.3272) 3843 0 R (HD.3273) 3844 0 R (HD.3274) 3845 0 R (HD.3275) 3846 0 R (HD.3276) 3847 0 R (HD.3277) 3848 0 R (HD.3278) 3849 0 R (HD.3279) 3850 0 R (HD.328) 563 0 R (HD.3280) 3851 0 R (HD.3281) 3852 0 R (HD.3282) 3853 0 R (HD.3283) 3854 0 R (HD.3284) 3855 0 R (HD.3285) 3856 0 R (HD.3286) 3857 0 R (HD.3287) 3858 0 R (HD.3288) 3859 0 R (HD.3289) 3860 0 R (HD.329) 564 0 R (HD.3290) 3861 0 R (HD.3291) 3862 0 R (HD.3292) 3863 0 R (HD.3293) 3864 0 R (HD.3294) 3865 0 R (HD.3295) 3866 0 R (HD.3296) 3867 0 R (HD.3297) 3868 0 R (HD.3298) 3869 0 R (HD.3299) 3870 0 R (HD.33) 224 0 R ] /Limits [ (HD.3271) (HD.33) ] >>
endobj
-30 0 obj
-<< /Title 31 0 R /A 28 0 R /Parent 11703 0 R /Prev 26 0 R /Next 34 0 R >>
+11697 0 obj
+<< /Names [ (HD.330) 565 0 R (HD.3300) 3871 0 R (HD.3301) 3872 0 R (HD.3302) 3873 0 R (HD.3303) 3874 0 R (HD.3304) 3875 0 R (HD.3305) 3876 0 R (HD.3306) 3877 0 R (HD.3307) 3878 0 R (HD.3308) 3879 0 R (HD.3309) 3880 0 R (HD.331) 566 0 R (HD.3310) 3881 0 R (HD.3311) 3882 0 R (HD.3312) 3883 0 R (HD.3313) 3884 0 R (HD.3314) 3885 0 R (HD.3315) 3886 0 R (HD.3316) 3891 0 R (HD.3317) 3892 0 R (HD.3318) 3893 0 R (HD.3319) 3894 0 R (HD.332) 567 0 R (HD.3320) 3895 0 R (HD.3321) 3896 0 R (HD.3322) 3897 0 R (HD.3323) 3898 0 R (HD.3324) 3899 0 R (HD.3325) 3900 0 R (HD.3326) 3901 0 R (HD.3327) 3902 0 R (HD.3328) 3903 0 R ] /Limits [ (HD.330) (HD.3328) ] >>
endobj
-26 0 obj
-<< /Title 27 0 R /A 24 0 R /Parent 11703 0 R /Prev 22 0 R /Next 30 0 R >>
+11698 0 obj
+<< /Names [ (HD.3329) 3904 0 R (HD.333) 568 0 R (HD.3330) 3905 0 R (HD.3331) 3906 0 R (HD.3332) 3907 0 R (HD.3333) 3908 0 R (HD.3334) 3909 0 R (HD.3335) 3910 0 R (HD.3336) 3911 0 R (HD.3337) 3912 0 R (HD.3338) 3913 0 R (HD.3339) 3914 0 R (HD.334) 569 0 R (HD.3340) 3915 0 R (HD.3341) 3916 0 R (HD.3342) 3917 0 R (HD.3343) 3918 0 R (HD.3344) 3919 0 R (HD.3345) 3920 0 R (HD.3346) 3921 0 R (HD.3347) 3922 0 R (HD.3348) 3923 0 R (HD.3349) 3924 0 R (HD.335) 570 0 R (HD.3350) 3925 0 R (HD.3351) 3926 0 R (HD.3352) 3927 0 R (HD.3353) 3928 0 R (HD.3354) 3929 0 R (HD.3355) 3930 0 R (HD.3356) 3931 0 R (HD.3357) 3932 0 R ] /Limits [ (HD.3329) (HD.3357) ] >>
endobj
-22 0 obj
-<< /Title 23 0 R /A 20 0 R /Parent 11703 0 R /Prev 18 0 R /Next 26 0 R >>
+11699 0 obj
+<< /Names [ (HD.3358) 3933 0 R (HD.3359) 3934 0 R (HD.336) 571 0 R (HD.3360) 3935 0 R (HD.3361) 3936 0 R (HD.3362) 3937 0 R (HD.3363) 3938 0 R (HD.3364) 3939 0 R (HD.3365) 3940 0 R (HD.3366) 3941 0 R (HD.3367) 3942 0 R (HD.3368) 3947 0 R (HD.3369) 3948 0 R (HD.337) 572 0 R (HD.3370) 3949 0 R (HD.3371) 3950 0 R (HD.3372) 3951 0 R (HD.3373) 3952 0 R (HD.3374) 3953 0 R (HD.3375) 3954 0 R (HD.3376) 3955 0 R (HD.3377) 3956 0 R (HD.3378) 3957 0 R (HD.3379) 3958 0 R (HD.338) 573 0 R (HD.3380) 3959 0 R (HD.3381) 3960 0 R (HD.3382) 3961 0 R (HD.3383) 3962 0 R (HD.3384) 3963 0 R (HD.3385) 3964 0 R (HD.3386) 3965 0 R ] /Limits [ (HD.3358) (HD.3386) ] >>
endobj
-18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 11703 0 R /Prev 14 0 R /Next 22 0 R >>
+11700 0 obj
+<< /Names [ (HD.3387) 3966 0 R (HD.3388) 3967 0 R (HD.3389) 3968 0 R (HD.339) 574 0 R (HD.3390) 3969 0 R (HD.3391) 3970 0 R (HD.3392) 3971 0 R (HD.3393) 3972 0 R (HD.3394) 3973 0 R (HD.3395) 3974 0 R (HD.3396) 3975 0 R (HD.3397) 3976 0 R (HD.3398) 3977 0 R (HD.3399) 3978 0 R (HD.34) 225 0 R (HD.340) 575 0 R (HD.3400) 3979 0 R (HD.3401) 3980 0 R (HD.3402) 3981 0 R (HD.3403) 3982 0 R (HD.3404) 3983 0 R (HD.3405) 3984 0 R (HD.3406) 3985 0 R (HD.3407) 3986 0 R (HD.3408) 3987 0 R (HD.3409) 3988 0 R (HD.341) 576 0 R (HD.3410) 3989 0 R (HD.3411) 3990 0 R (HD.3412) 3991 0 R (HD.3413) 3992 0 R (HD.3414) 3993 0 R ] /Limits [ (HD.3387) (HD.3414) ] >>
endobj
-14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 11703 0 R /Prev 10 0 R /Next 18 0 R >>
+11701 0 obj
+<< /Names [ (HD.3415) 3994 0 R (HD.3416) 3995 0 R (HD.3417) 3996 0 R (HD.3418) 3997 0 R (HD.3419) 3998 0 R (HD.342) 577 0 R (HD.3420) 3999 0 R (HD.3421) 4004 0 R (HD.3422) 4005 0 R (HD.3423) 4006 0 R (HD.3424) 4007 0 R (HD.3425) 4008 0 R (HD.3426) 4009 0 R (HD.3427) 4010 0 R (HD.3428) 4011 0 R (HD.3429) 4012 0 R (HD.343) 578 0 R (HD.3430) 4013 0 R (HD.3431) 4014 0 R (HD.3432) 4015 0 R (HD.3433) 4016 0 R (HD.3434) 4017 0 R (HD.3435) 4018 0 R (HD.3436) 4019 0 R (HD.3437) 4020 0 R (HD.3438) 4021 0 R (HD.3439) 4022 0 R (HD.344) 584 0 R (HD.3440) 4023 0 R (HD.3441) 4024 0 R (HD.3442) 4025 0 R (HD.3443) 4026 0 R ] /Limits [ (HD.3415) (HD.3443) ] >>
endobj
-10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 11703 0 R /Prev 6 0 R /Next 14 0 R >>
+11702 0 obj
+<< /Names [ (HD.3444) 4027 0 R (HD.3445) 4028 0 R (HD.3446) 4029 0 R (HD.3447) 4030 0 R (HD.3448) 4031 0 R (HD.3449) 4032 0 R (HD.345) 585 0 R (HD.3450) 4033 0 R (HD.3451) 4034 0 R (HD.3452) 4035 0 R (HD.3453) 4036 0 R (HD.3454) 4037 0 R (HD.3455) 4038 0 R (HD.3456) 4039 0 R (HD.3457) 4040 0 R (HD.3458) 4041 0 R (HD.3459) 4042 0 R (HD.346) 586 0 R (HD.3460) 4043 0 R (HD.3461) 4044 0 R (HD.3462) 4045 0 R (HD.3463) 4046 0 R (HD.3464) 4047 0 R (HD.3465) 4048 0 R (HD.3466) 4049 0 R (HD.3467) 4050 0 R (HD.3468) 4051 0 R (HD.3469) 4052 0 R (HD.347) 587 0 R (HD.3470) 4053 0 R (HD.3471) 4054 0 R (HD.3472) 4055 0 R ] /Limits [ (HD.3444) (HD.3472) ] >>
endobj
-6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 11703 0 R /Next 10 0 R >>
+11703 0 obj
+<< /Names [ (HD.3473) 4056 0 R (HD.3474) 4057 0 R (HD.3475) 4058 0 R (HD.3476) 4059 0 R (HD.3477) 4060 0 R (HD.3478) 4061 0 R (HD.3479) 4066 0 R (HD.348) 588 0 R (HD.3480) 4067 0 R (HD.3481) 4068 0 R (HD.3482) 4069 0 R (HD.3483) 4070 0 R (HD.3484) 4071 0 R (HD.3485) 4072 0 R (HD.3486) 4073 0 R (HD.3487) 4074 0 R (HD.3488) 4075 0 R (HD.3489) 4076 0 R (HD.349) 589 0 R (HD.3490) 4077 0 R (HD.3491) 4078 0 R (HD.3492) 4079 0 R (HD.3493) 4080 0 R (HD.3494) 4081 0 R (HD.3495) 4082 0 R (HD.3496) 4083 0 R (HD.3497) 4084 0 R (HD.3498) 4085 0 R (HD.3499) 4086 0 R (HD.35) 226 0 R (HD.350) 590 0 R (HD.3500) 4087 0 R ] /Limits [ (HD.3473) (HD.3500) ] >>
endobj
11704 0 obj
-<< /Names [ (Doc-Start) 173 0 R (HD.1) 188 0 R (HD.10) 198 0 R (HD.100) 300 0 R (HD.1000) 1341 0 R (HD.10000) 11154 0 R (HD.10001) 11155 0 R (HD.10002) 11156 0 R (HD.10003) 11157 0 R (HD.10004) 11158 0 R (HD.10005) 11159 0 R (HD.10006) 11160 0 R (HD.10007) 11161 0 R (HD.10008) 11162 0 R (HD.10009) 11163 0 R (HD.1001) 1342 0 R (HD.10010) 11164 0 R (HD.10011) 11165 0 R (HD.10012) 11166 0 R (HD.10013) 11167 0 R (HD.10014) 11168 0 R (HD.10015) 11169 0 R (HD.10016) 11170 0 R (HD.10017) 11171 0 R (HD.10018) 11172 0 R (HD.10019) 11173 0 R (HD.1002) 1343 0 R (HD.10020) 11174 0 R (HD.10021) 11175 0 R (HD.10022) 11176 0 R (HD.10023) 11177 0 R (HD.10024) 11178 0 R ] /Limits [ (Doc-Start) (HD.10024) ] >>
+<< /Names [ (HD.3501) 4088 0 R (HD.3502) 4089 0 R (HD.3503) 4090 0 R (HD.3504) 4091 0 R (HD.3505) 4092 0 R (HD.3506) 4093 0 R (HD.3507) 4094 0 R (HD.3508) 4095 0 R (HD.3509) 4096 0 R (HD.351) 591 0 R (HD.3510) 4097 0 R (HD.3511) 4098 0 R (HD.3512) 4099 0 R (HD.3513) 4100 0 R (HD.3514) 4101 0 R (HD.3515) 4102 0 R (HD.3516) 4103 0 R (HD.3517) 4104 0 R (HD.3518) 4105 0 R (HD.3519) 4106 0 R (HD.352) 592 0 R (HD.3520) 4107 0 R (HD.3521) 4108 0 R (HD.3522) 4109 0 R (HD.3523) 4110 0 R (HD.3524) 4111 0 R (HD.3525) 4112 0 R (HD.3526) 4117 0 R (HD.3527) 4118 0 R (HD.3528) 4119 0 R (HD.3529) 4120 0 R (HD.353) 593 0 R ] /Limits [ (HD.3501) (HD.353) ] >>
endobj
11705 0 obj
-<< /Names [ (HD.10025) 11179 0 R (HD.10026) 11180 0 R (HD.10027) 11181 0 R (HD.10028) 11182 0 R (HD.10029) 11183 0 R (HD.1003) 1344 0 R (HD.10030) 11184 0 R (HD.10031) 11185 0 R (HD.10032) 11186 0 R (HD.10033) 11187 0 R (HD.10034) 11188 0 R (HD.10035) 11194 0 R (HD.10036) 11195 0 R (HD.10037) 11196 0 R (HD.10038) 11197 0 R (HD.10039) 11198 0 R (HD.1004) 1345 0 R (HD.10040) 11199 0 R (HD.10041) 11200 0 R (HD.10042) 11201 0 R (HD.10043) 11202 0 R (HD.10044) 11203 0 R (HD.10045) 11204 0 R (HD.10046) 11205 0 R (HD.10047) 11206 0 R (HD.10048) 11207 0 R (HD.10049) 11208 0 R (HD.1005) 1346 0 R (HD.10050) 11209 0 R (HD.10051) 11210 0 R (HD.10052) 11211 0 R (HD.10053) 11212 0 R ] /Limits [ (HD.10025) (HD.10053) ] >>
+<< /Names [ (HD.3530) 4121 0 R (HD.3531) 4122 0 R (HD.3532) 4123 0 R (HD.3533) 4124 0 R (HD.3534) 4125 0 R (HD.3535) 4126 0 R (HD.3536) 4127 0 R (HD.3537) 4128 0 R (HD.3538) 4129 0 R (HD.3539) 4130 0 R (HD.354) 594 0 R (HD.3540) 4131 0 R (HD.3541) 4132 0 R (HD.3542) 4133 0 R (HD.3543) 4134 0 R (HD.3544) 4135 0 R (HD.3545) 4136 0 R (HD.3546) 4137 0 R (HD.3547) 4138 0 R (HD.3548) 4139 0 R (HD.3549) 4140 0 R (HD.355) 595 0 R (HD.3550) 4141 0 R (HD.3551) 4142 0 R (HD.3552) 4143 0 R (HD.3553) 4144 0 R (HD.3554) 4145 0 R (HD.3555) 4146 0 R (HD.3556) 4147 0 R (HD.3557) 4148 0 R (HD.3558) 4149 0 R (HD.3559) 4150 0 R ] /Limits [ (HD.3530) (HD.3559) ] >>
endobj
11706 0 obj
-<< /Names [ (HD.10054) 11213 0 R (HD.10055) 11214 0 R (HD.10056) 11215 0 R (HD.10057) 11216 0 R (HD.10058) 11217 0 R (HD.10059) 11218 0 R (HD.1006) 1347 0 R (HD.10060) 11219 0 R (HD.10061) 11220 0 R (HD.10062) 11221 0 R (HD.10063) 11222 0 R (HD.10064) 11223 0 R (HD.10065) 11224 0 R (HD.10066) 11225 0 R (HD.10067) 11226 0 R (HD.10068) 11227 0 R (HD.10069) 11228 0 R (HD.1007) 1348 0 R (HD.10070) 11229 0 R (HD.10071) 11230 0 R (HD.10072) 11231 0 R (HD.10073) 11232 0 R (HD.10074) 11233 0 R (HD.10075) 11234 0 R (HD.10076) 11235 0 R (HD.10077) 11236 0 R (HD.10078) 11237 0 R (HD.10079) 11238 0 R (HD.1008) 1349 0 R (HD.10080) 11239 0 R (HD.10081) 11240 0 R (HD.10082) 11241 0 R ] /Limits [ (HD.10054) (HD.10082) ] >>
+<< /Names [ (HD.356) 596 0 R (HD.3560) 4151 0 R (HD.3561) 4152 0 R (HD.3562) 4153 0 R (HD.3563) 4154 0 R (HD.3564) 4155 0 R (HD.3565) 4156 0 R (HD.3566) 4157 0 R (HD.3567) 4158 0 R (HD.3568) 4159 0 R (HD.3569) 4160 0 R (HD.357) 597 0 R (HD.3570) 4161 0 R (HD.3571) 4162 0 R (HD.3572) 4167 0 R (HD.3573) 4168 0 R (HD.3574) 4169 0 R (HD.3575) 4170 0 R (HD.3576) 4171 0 R (HD.3577) 4172 0 R (HD.3578) 4173 0 R (HD.3579) 4174 0 R (HD.358) 598 0 R (HD.3580) 4175 0 R (HD.3581) 4176 0 R (HD.3582) 4177 0 R (HD.3583) 4178 0 R (HD.3584) 4179 0 R (HD.3585) 4180 0 R (HD.3586) 4181 0 R (HD.3587) 4182 0 R (HD.3588) 4183 0 R ] /Limits [ (HD.356) (HD.3588) ] >>
endobj
11707 0 obj
-<< /Names [ (HD.10083) 11242 0 R (HD.10084) 11243 0 R (HD.10085) 11244 0 R (HD.10086) 11245 0 R (HD.10087) 11246 0 R (HD.10088) 11247 0 R (HD.10089) 11248 0 R (HD.1009) 1350 0 R (HD.10090) 11249 0 R (HD.10091) 11250 0 R (HD.10092) 11251 0 R (HD.10093) 11252 0 R (HD.10094) 11253 0 R (HD.10095) 11254 0 R (HD.10096) 11255 0 R (HD.10097) 11256 0 R (HD.10098) 11261 0 R (HD.10099) 11262 0 R (HD.101) 305 0 R (HD.1010) 1351 0 R (HD.10100) 11263 0 R (HD.10101) 11264 0 R (HD.10102) 11265 0 R (HD.10103) 11266 0 R (HD.10104) 11267 0 R (HD.10105) 11268 0 R (HD.10106) 11269 0 R (HD.10107) 11270 0 R (HD.10108) 11271 0 R (HD.10109) 11272 0 R (HD.1011) 1352 0 R (HD.10110) 11273 0 R ] /Limits [ (HD.10083) (HD.10110) ] >>
+<< /Names [ (HD.3589) 4184 0 R (HD.359) 599 0 R (HD.3590) 4185 0 R (HD.3591) 4186 0 R (HD.3592) 4187 0 R (HD.3593) 4188 0 R (HD.3594) 4189 0 R (HD.3595) 4190 0 R (HD.3596) 4191 0 R (HD.3597) 4192 0 R (HD.3598) 4193 0 R (HD.3599) 4194 0 R (HD.36) 227 0 R (HD.360) 600 0 R (HD.3600) 4195 0 R (HD.3601) 4196 0 R (HD.3602) 4197 0 R (HD.3603) 4198 0 R (HD.3604) 4199 0 R (HD.3605) 4200 0 R (HD.3606) 4201 0 R (HD.3607) 4202 0 R (HD.3608) 4203 0 R (HD.3609) 4204 0 R (HD.361) 601 0 R (HD.3610) 4205 0 R (HD.3611) 4206 0 R (HD.3612) 4207 0 R (HD.3613) 4212 0 R (HD.3614) 4213 0 R (HD.3615) 4214 0 R (HD.3616) 4215 0 R ] /Limits [ (HD.3589) (HD.3616) ] >>
endobj
11708 0 obj
-<< /Names [ (HD.10111) 11274 0 R (HD.10112) 11275 0 R (HD.10113) 11276 0 R (HD.10114) 11277 0 R (HD.10115) 11278 0 R (HD.10116) 11279 0 R (HD.10117) 11280 0 R (HD.10118) 11281 0 R (HD.10119) 11282 0 R (HD.1012) 1353 0 R (HD.10120) 11283 0 R (HD.10121) 11284 0 R (HD.10122) 11285 0 R (HD.10123) 11286 0 R (HD.10124) 11287 0 R (HD.10125) 11288 0 R (HD.10126) 11289 0 R (HD.10127) 11290 0 R (HD.10128) 11291 0 R (HD.10129) 11292 0 R (HD.1013) 1354 0 R (HD.10130) 11293 0 R (HD.10131) 11294 0 R (HD.10132) 11295 0 R (HD.10133) 11296 0 R (HD.10134) 11297 0 R (HD.10135) 11298 0 R (HD.10136) 11299 0 R (HD.10137) 11300 0 R (HD.10138) 11301 0 R (HD.10139) 11302 0 R (HD.1014) 1355 0 R ] /Limits [ (HD.10111) (HD.1014) ] >>
+<< /Names [ (HD.3617) 4216 0 R (HD.3618) 4217 0 R (HD.3619) 4218 0 R (HD.362) 602 0 R (HD.3620) 4219 0 R (HD.3621) 4220 0 R (HD.3622) 4221 0 R (HD.3623) 4222 0 R (HD.3624) 4223 0 R (HD.3625) 4224 0 R (HD.3626) 4225 0 R (HD.3627) 4226 0 R (HD.3628) 4227 0 R (HD.3629) 4228 0 R (HD.363) 603 0 R (HD.3630) 4229 0 R (HD.3631) 4230 0 R (HD.3632) 4231 0 R (HD.3633) 4232 0 R (HD.3634) 4233 0 R (HD.3635) 4234 0 R (HD.3636) 4235 0 R (HD.3637) 4236 0 R (HD.3638) 4237 0 R (HD.3639) 4238 0 R (HD.364) 608 0 R (HD.3640) 4239 0 R (HD.3641) 4240 0 R (HD.3642) 4241 0 R (HD.3643) 4242 0 R (HD.3644) 4243 0 R (HD.3645) 4244 0 R ] /Limits [ (HD.3617) (HD.3645) ] >>
endobj
11709 0 obj
-<< /Names [ (HD.10140) 11303 0 R (HD.10141) 11304 0 R (HD.10142) 11305 0 R (HD.10143) 11306 0 R (HD.10144) 11307 0 R (HD.10145) 11308 0 R (HD.10146) 11309 0 R (HD.10147) 11310 0 R (HD.10148) 11311 0 R (HD.10149) 11312 0 R (HD.1015) 1356 0 R (HD.10150) 11313 0 R (HD.10151) 11314 0 R (HD.10152) 11315 0 R (HD.10153) 11316 0 R (HD.10154) 11317 0 R (HD.10155) 11318 0 R (HD.10156) 11319 0 R (HD.10157) 11320 0 R (HD.10158) 11321 0 R (HD.10159) 11326 0 R (HD.1016) 1357 0 R (HD.10160) 11327 0 R (HD.10161) 11328 0 R (HD.10162) 11329 0 R (HD.10163) 11330 0 R (HD.10164) 11331 0 R (HD.10165) 11332 0 R (HD.10166) 11333 0 R (HD.10167) 11334 0 R (HD.10168) 11335 0 R (HD.10169) 11336 0 R ] /Limits [ (HD.10140) (HD.10169) ] >>
+<< /Names [ (HD.3646) 4245 0 R (HD.3647) 4246 0 R (HD.3648) 4247 0 R (HD.3649) 4248 0 R (HD.365) 610 0 R (HD.3650) 4249 0 R (HD.3651) 4250 0 R (HD.3652) 4251 0 R (HD.3653) 4252 0 R (HD.3654) 4253 0 R (HD.3655) 4254 0 R (HD.3656) 4255 0 R (HD.3657) 4256 0 R (HD.3658) 4257 0 R (HD.3659) 4258 0 R (HD.366) 612 0 R (HD.3660) 4259 0 R (HD.3661) 4260 0 R (HD.3662) 4261 0 R (HD.3663) 4262 0 R (HD.3664) 4263 0 R (HD.3665) 4264 0 R (HD.3666) 4265 0 R (HD.3667) 4266 0 R (HD.3668) 4272 0 R (HD.3669) 4273 0 R (HD.367) 613 0 R (HD.3670) 4274 0 R (HD.3671) 4275 0 R (HD.3672) 4276 0 R (HD.3673) 4277 0 R (HD.3674) 4278 0 R ] /Limits [ (HD.3646) (HD.3674) ] >>
endobj
11710 0 obj
-<< /Names [ (HD.1017) 1358 0 R (HD.10170) 11337 0 R (HD.10171) 11338 0 R (HD.10172) 11339 0 R (HD.10173) 11340 0 R (HD.10174) 11341 0 R (HD.10175) 11342 0 R (HD.10176) 11343 0 R (HD.10177) 11344 0 R (HD.10178) 11345 0 R (HD.10179) 11346 0 R (HD.1018) 1359 0 R (HD.10180) 11347 0 R (HD.10181) 11348 0 R (HD.10182) 11349 0 R (HD.10183) 11350 0 R (HD.10184) 11351 0 R (HD.10185) 11352 0 R (HD.10186) 11353 0 R (HD.10187) 11354 0 R (HD.10188) 11355 0 R (HD.10189) 11356 0 R (HD.1019) 1360 0 R (HD.10190) 11357 0 R (HD.10191) 11358 0 R (HD.10192) 11359 0 R (HD.10193) 11360 0 R (HD.10194) 11361 0 R (HD.10195) 11362 0 R (HD.10196) 11363 0 R (HD.10197) 11364 0 R (HD.10198) 11365 0 R ] /Limits [ (HD.1017) (HD.10198) ] >>
+<< /Names [ (HD.3675) 4279 0 R (HD.3676) 4280 0 R (HD.3677) 4281 0 R (HD.3678) 4282 0 R (HD.3679) 4283 0 R (HD.368) 614 0 R (HD.3680) 4284 0 R (HD.3681) 4285 0 R (HD.3682) 4286 0 R (HD.3683) 4287 0 R (HD.3684) 4288 0 R (HD.3685) 4289 0 R (HD.3686) 4290 0 R (HD.3687) 4291 0 R (HD.3688) 4292 0 R (HD.3689) 4293 0 R (HD.369) 615 0 R (HD.3690) 4294 0 R (HD.3691) 4295 0 R (HD.3692) 4296 0 R (HD.3693) 4297 0 R (HD.3694) 4298 0 R (HD.3695) 4299 0 R (HD.3696) 4300 0 R (HD.3697) 4301 0 R (HD.3698) 4302 0 R (HD.3699) 4303 0 R (HD.37) 228 0 R (HD.370) 616 0 R (HD.3700) 4304 0 R (HD.3701) 4305 0 R (HD.3702) 4306 0 R ] /Limits [ (HD.3675) (HD.3702) ] >>
endobj
11711 0 obj
-<< /Names [ (HD.10199) 11366 0 R (HD.102) 306 0 R (HD.1020) 1361 0 R (HD.10200) 11367 0 R (HD.10201) 11368 0 R (HD.10202) 11369 0 R (HD.10203) 11370 0 R (HD.10204) 11371 0 R (HD.10205) 11372 0 R (HD.10206) 11373 0 R (HD.10207) 11374 0 R (HD.10208) 11375 0 R (HD.10209) 11376 0 R (HD.1021) 1362 0 R (HD.10210) 11377 0 R (HD.10211) 11378 0 R (HD.10212) 11379 0 R (HD.10213) 11380 0 R (HD.10214) 11381 0 R (HD.10215) 11382 0 R (HD.10216) 11383 0 R (HD.10217) 11384 0 R (HD.10218) 11385 0 R (HD.10219) 11386 0 R (HD.1022) 1363 0 R (HD.10220) 11391 0 R (HD.10221) 11392 0 R (HD.10222) 11393 0 R (HD.10223) 11394 0 R (HD.10224) 11395 0 R (HD.10225) 11396 0 R (HD.10226) 11397 0 R ] /Limits [ (HD.10199) (HD.10226) ] >>
+<< /Names [ (HD.3703) 4307 0 R (HD.3704) 4308 0 R (HD.3705) 4309 0 R (HD.3706) 4310 0 R (HD.3707) 4311 0 R (HD.3708) 4312 0 R (HD.3709) 4313 0 R (HD.371) 617 0 R (HD.3710) 4314 0 R (HD.3711) 4315 0 R (HD.3712) 4316 0 R (HD.3713) 4317 0 R (HD.3714) 4318 0 R (HD.3715) 4319 0 R (HD.3716) 4320 0 R (HD.3717) 4321 0 R (HD.3718) 4322 0 R (HD.3719) 4323 0 R (HD.372) 618 0 R (HD.3720) 4324 0 R (HD.3721) 4325 0 R (HD.3722) 4330 0 R (HD.3723) 4331 0 R (HD.3724) 4332 0 R (HD.3725) 4333 0 R (HD.3726) 4334 0 R (HD.3727) 4335 0 R (HD.3728) 4336 0 R (HD.3729) 4337 0 R (HD.373) 619 0 R (HD.3730) 4338 0 R (HD.3731) 4339 0 R ] /Limits [ (HD.3703) (HD.3731) ] >>
endobj
11712 0 obj
-<< /Names [ (HD.10227) 11398 0 R (HD.10228) 11399 0 R (HD.10229) 11400 0 R (HD.1023) 1364 0 R (HD.10230) 11401 0 R (HD.10231) 11402 0 R (HD.10232) 11403 0 R (HD.10233) 11404 0 R (HD.10234) 11405 0 R (HD.10235) 11406 0 R (HD.10236) 11407 0 R (HD.10237) 11408 0 R (HD.10238) 11409 0 R (HD.10239) 11410 0 R (HD.1024) 1365 0 R (HD.10240) 11411 0 R (HD.10241) 11412 0 R (HD.10242) 11413 0 R (HD.10243) 11414 0 R (HD.10244) 11415 0 R (HD.10245) 11416 0 R (HD.10246) 11417 0 R (HD.10247) 11418 0 R (HD.10248) 11419 0 R (HD.10249) 11420 0 R (HD.1025) 1366 0 R (HD.10250) 11421 0 R (HD.10251) 11422 0 R (HD.10252) 11423 0 R (HD.10253) 11424 0 R (HD.10254) 11425 0 R (HD.10255) 11426 0 R ] /Limits [ (HD.10227) (HD.10255) ] >>
+<< /Names [ (HD.3732) 4340 0 R (HD.3733) 4341 0 R (HD.3734) 4342 0 R (HD.3735) 4343 0 R (HD.3736) 4344 0 R (HD.3737) 4345 0 R (HD.3738) 4346 0 R (HD.3739) 4347 0 R (HD.374) 620 0 R (HD.3740) 4348 0 R (HD.3741) 4349 0 R (HD.3742) 4350 0 R (HD.3743) 4351 0 R (HD.3744) 4352 0 R (HD.3745) 4353 0 R (HD.3746) 4354 0 R (HD.3747) 4355 0 R (HD.3748) 4356 0 R (HD.3749) 4357 0 R (HD.375) 621 0 R (HD.3750) 4358 0 R (HD.3751) 4359 0 R (HD.3752) 4360 0 R (HD.3753) 4361 0 R (HD.3754) 4362 0 R (HD.3755) 4363 0 R (HD.3756) 4364 0 R (HD.3757) 4365 0 R (HD.3758) 4366 0 R (HD.3759) 4367 0 R (HD.376) 622 0 R (HD.3760) 4368 0 R ] /Limits [ (HD.3732) (HD.3760) ] >>
endobj
11713 0 obj
-<< /Names [ (HD.10256) 11427 0 R (HD.10257) 11428 0 R (HD.10258) 11429 0 R (HD.10259) 11430 0 R (HD.1026) 1367 0 R (HD.10260) 11431 0 R (HD.10261) 11432 0 R (HD.10262) 11433 0 R (HD.10263) 11434 0 R (HD.10264) 11435 0 R (HD.10265) 11436 0 R (HD.10266) 11437 0 R (HD.10267) 11438 0 R (HD.10268) 11439 0 R (HD.10269) 11440 0 R (HD.1027) 1368 0 R (HD.10270) 11441 0 R (HD.10271) 11442 0 R (HD.10272) 11443 0 R (HD.10273) 11444 0 R (HD.10274) 11445 0 R (HD.10275) 11446 0 R (HD.10276) 11447 0 R (HD.10277) 11448 0 R (HD.10278) 11449 0 R (HD.10279) 11450 0 R (HD.1028) 1369 0 R (HD.10280) 11451 0 R (HD.10281) 11452 0 R (HD.10282) 11453 0 R (HD.10283) 11458 0 R (HD.10284) 11459 0 R ] /Limits [ (HD.10256) (HD.10284) ] >>
+<< /Names [ (HD.3761) 4369 0 R (HD.3762) 4370 0 R (HD.3763) 4371 0 R (HD.3764) 4372 0 R (HD.3765) 4373 0 R (HD.3766) 4374 0 R (HD.3767) 4379 0 R (HD.3768) 4380 0 R (HD.3769) 4381 0 R (HD.377) 623 0 R (HD.3770) 4382 0 R (HD.3771) 4383 0 R (HD.3772) 4384 0 R (HD.3773) 4385 0 R (HD.3774) 4386 0 R (HD.3775) 4387 0 R (HD.3776) 4388 0 R (HD.3777) 4389 0 R (HD.3778) 4390 0 R (HD.3779) 4391 0 R (HD.378) 624 0 R (HD.3780) 4392 0 R (HD.3781) 4393 0 R (HD.3782) 4394 0 R (HD.3783) 4395 0 R (HD.3784) 4396 0 R (HD.3785) 4397 0 R (HD.3786) 4398 0 R (HD.3787) 4399 0 R (HD.3788) 4400 0 R (HD.3789) 4401 0 R (HD.379) 625 0 R ] /Limits [ (HD.3761) (HD.379) ] >>
endobj
11714 0 obj
-<< /Names [ (HD.10285) 11460 0 R (HD.10286) 11461 0 R (HD.10287) 11462 0 R (HD.10288) 11463 0 R (HD.10289) 11464 0 R (HD.1029) 1370 0 R (HD.10290) 11465 0 R (HD.10291) 11466 0 R (HD.10292) 11467 0 R (HD.10293) 11468 0 R (HD.10294) 11469 0 R (HD.10295) 11470 0 R (HD.10296) 11471 0 R (HD.10297) 11472 0 R (HD.10298) 11473 0 R (HD.10299) 11474 0 R (HD.103) 307 0 R (HD.1030) 1371 0 R (HD.10300) 11475 0 R (HD.10301) 11476 0 R (HD.10302) 11477 0 R (HD.10303) 11478 0 R (HD.10304) 11479 0 R (HD.10305) 11480 0 R (HD.10306) 11481 0 R (HD.10307) 11482 0 R (HD.10308) 11483 0 R (HD.10309) 11484 0 R (HD.1031) 1372 0 R (HD.10310) 11485 0 R (HD.10311) 11486 0 R (HD.10312) 11487 0 R ] /Limits [ (HD.10285) (HD.10312) ] >>
+<< /Names [ (HD.3790) 4402 0 R (HD.3791) 4403 0 R (HD.3792) 4404 0 R (HD.3793) 4405 0 R (HD.3794) 4406 0 R (HD.3795) 4407 0 R (HD.3796) 4408 0 R (HD.3797) 4409 0 R (HD.3798) 4410 0 R (HD.3799) 4411 0 R (HD.38) 229 0 R (HD.380) 626 0 R (HD.3800) 4412 0 R (HD.3801) 4413 0 R (HD.3802) 4414 0 R (HD.3803) 4415 0 R (HD.3804) 4416 0 R (HD.3805) 4417 0 R (HD.3806) 4418 0 R (HD.3807) 4419 0 R (HD.3808) 4420 0 R (HD.3809) 4421 0 R (HD.381) 627 0 R (HD.3810) 4427 0 R (HD.3811) 4428 0 R (HD.3812) 4429 0 R (HD.3813) 4430 0 R (HD.3814) 4431 0 R (HD.3815) 4432 0 R (HD.3816) 4433 0 R (HD.3817) 4434 0 R (HD.3818) 4435 0 R ] /Limits [ (HD.3790) (HD.3818) ] >>
endobj
11715 0 obj
-<< /Names [ (HD.10313) 11488 0 R (HD.10314) 11489 0 R (HD.10315) 11490 0 R (HD.10316) 11491 0 R (HD.10317) 11492 0 R (HD.10318) 11493 0 R (HD.10319) 11494 0 R (HD.1032) 1373 0 R (HD.10320) 11495 0 R (HD.10321) 11496 0 R (HD.10322) 11497 0 R (HD.10323) 11498 0 R (HD.10324) 11499 0 R (HD.10325) 11500 0 R (HD.10326) 11501 0 R (HD.10327) 11502 0 R (HD.10328) 11503 0 R (HD.10329) 11504 0 R (HD.1033) 1374 0 R (HD.10330) 11505 0 R (HD.10331) 11506 0 R (HD.10332) 11507 0 R (HD.10333) 11508 0 R (HD.10334) 11509 0 R (HD.10335) 11510 0 R (HD.10336) 11511 0 R (HD.10337) 11512 0 R (HD.10338) 11513 0 R (HD.10339) 11514 0 R (HD.1034) 1375 0 R (HD.10340) 11515 0 R (HD.10341) 11516 0 R ] /Limits [ (HD.10313) (HD.10341) ] >>
+<< /Names [ (HD.3819) 4436 0 R (HD.382) 628 0 R (HD.3820) 4437 0 R (HD.3821) 4438 0 R (HD.3822) 4439 0 R (HD.3823) 4440 0 R (HD.3824) 4441 0 R (HD.3825) 4442 0 R (HD.3826) 4443 0 R (HD.3827) 4444 0 R (HD.3828) 4445 0 R (HD.3829) 4446 0 R (HD.383) 629 0 R (HD.3830) 4447 0 R (HD.3831) 4448 0 R (HD.3832) 4449 0 R (HD.3833) 4450 0 R (HD.3834) 4451 0 R (HD.3835) 4452 0 R (HD.3836) 4453 0 R (HD.3837) 4455 0 R (HD.3838) 4456 0 R (HD.3839) 4457 0 R (HD.384) 630 0 R (HD.3840) 4458 0 R (HD.3841) 4459 0 R (HD.3842) 4460 0 R (HD.3843) 4461 0 R (HD.3844) 4462 0 R (HD.3845) 4463 0 R (HD.3846) 4464 0 R (HD.3847) 4465 0 R ] /Limits [ (HD.3819) (HD.3847) ] >>
endobj
11716 0 obj
-<< /Names [ (HD.10342) 11517 0 R (HD.10343) 11518 0 R (HD.10344) 11519 0 R (HD.10345) 11520 0 R (HD.10346) 11525 0 R (HD.10347) 11526 0 R (HD.10348) 11527 0 R (HD.10349) 11528 0 R (HD.1035) 1376 0 R (HD.10350) 11529 0 R (HD.10351) 11530 0 R (HD.10352) 11531 0 R (HD.10353) 11532 0 R (HD.10354) 11533 0 R (HD.10355) 11534 0 R (HD.10356) 11535 0 R (HD.10357) 11536 0 R (HD.10358) 11537 0 R (HD.10359) 11538 0 R (HD.1036) 1377 0 R (HD.10360) 11539 0 R (HD.10361) 11540 0 R (HD.10362) 11541 0 R (HD.10363) 11542 0 R (HD.10364) 11543 0 R (HD.10365) 11544 0 R (HD.10366) 11545 0 R (HD.10367) 11546 0 R (HD.10368) 11547 0 R (HD.10369) 11548 0 R (HD.1037) 1378 0 R (HD.10370) 11549 0 R ] /Limits [ (HD.10342) (HD.10370) ] >>
+<< /Names [ (HD.3848) 4466 0 R (HD.3849) 4467 0 R (HD.385) 631 0 R (HD.3850) 4468 0 R (HD.3851) 4469 0 R (HD.3852) 4470 0 R (HD.3853) 4471 0 R (HD.3854) 4472 0 R (HD.3855) 4479 0 R (HD.3856) 4480 0 R (HD.3857) 4481 0 R (HD.3858) 4482 0 R (HD.3859) 4483 0 R (HD.386) 632 0 R (HD.3860) 4484 0 R (HD.3861) 4485 0 R (HD.3862) 4486 0 R (HD.3863) 4487 0 R (HD.3864) 4488 0 R (HD.3865) 4489 0 R (HD.3866) 4490 0 R (HD.3867) 4491 0 R (HD.3868) 4492 0 R (HD.3869) 4493 0 R (HD.387) 633 0 R (HD.3870) 4494 0 R (HD.3871) 4495 0 R (HD.3872) 4496 0 R (HD.3873) 4497 0 R (HD.3874) 4498 0 R (HD.3875) 4499 0 R (HD.3876) 4500 0 R ] /Limits [ (HD.3848) (HD.3876) ] >>
endobj
11717 0 obj
-<< /Names [ (HD.10371) 11550 0 R (HD.10372) 11551 0 R (HD.1038) 1379 0 R (HD.1039) 1384 0 R (HD.104) 308 0 R (HD.1040) 1385 0 R (HD.1041) 1386 0 R (HD.1042) 1387 0 R (HD.1043) 1388 0 R (HD.1044) 1389 0 R (HD.1045) 1390 0 R (HD.1046) 1391 0 R (HD.1047) 1392 0 R (HD.1048) 1393 0 R (HD.1049) 1394 0 R (HD.105) 309 0 R (HD.1050) 1395 0 R (HD.1051) 1396 0 R (HD.1052) 1397 0 R (HD.1053) 1398 0 R (HD.1054) 1399 0 R (HD.1055) 1400 0 R (HD.1056) 1401 0 R (HD.1057) 1402 0 R (HD.1058) 1403 0 R (HD.1059) 1404 0 R (HD.106) 310 0 R (HD.1060) 1405 0 R (HD.1061) 1406 0 R (HD.1062) 1407 0 R (HD.1063) 1408 0 R (HD.1064) 1409 0 R ] /Limits [ (HD.10371) (HD.1064) ] >>
+<< /Names [ (HD.3877) 4501 0 R (HD.3878) 4502 0 R (HD.3879) 4503 0 R (HD.388) 638 0 R (HD.3880) 4504 0 R (HD.3881) 4505 0 R (HD.3882) 4506 0 R (HD.3883) 4507 0 R (HD.3884) 4508 0 R (HD.3885) 4509 0 R (HD.3886) 4510 0 R (HD.3887) 4511 0 R (HD.3888) 4512 0 R (HD.3889) 4518 0 R (HD.389) 639 0 R (HD.3890) 4519 0 R (HD.3891) 4520 0 R (HD.3892) 4521 0 R (HD.3893) 4522 0 R (HD.3894) 4523 0 R (HD.3895) 4524 0 R (HD.3896) 4525 0 R (HD.3897) 4526 0 R (HD.3898) 4527 0 R (HD.3899) 4528 0 R (HD.39) 230 0 R (HD.390) 640 0 R (HD.3900) 4529 0 R (HD.3901) 4530 0 R (HD.3902) 4531 0 R (HD.3903) 4532 0 R (HD.3904) 4533 0 R ] /Limits [ (HD.3877) (HD.3904) ] >>
endobj
11718 0 obj
-<< /Names [ (HD.1065) 1410 0 R (HD.1066) 1411 0 R (HD.1067) 1412 0 R (HD.1068) 1413 0 R (HD.1069) 1414 0 R (HD.107) 311 0 R (HD.1070) 1415 0 R (HD.1071) 1416 0 R (HD.1072) 1417 0 R (HD.1073) 1418 0 R (HD.1074) 1419 0 R (HD.1075) 1420 0 R (HD.1076) 1421 0 R (HD.1077) 1422 0 R (HD.1078) 1423 0 R (HD.1079) 1424 0 R (HD.108) 312 0 R (HD.1080) 1425 0 R (HD.1081) 1426 0 R (HD.1082) 1427 0 R (HD.1083) 1428 0 R (HD.1084) 1429 0 R (HD.1085) 1430 0 R (HD.1086) 1431 0 R (HD.1087) 1432 0 R (HD.1088) 1433 0 R (HD.1089) 1434 0 R (HD.109) 313 0 R (HD.1090) 1435 0 R (HD.1091) 1436 0 R (HD.1092) 1437 0 R (HD.1093) 1438 0 R ] /Limits [ (HD.1065) (HD.1093) ] >>
+<< /Names [ (HD.3905) 4534 0 R (HD.3906) 4535 0 R (HD.3907) 4536 0 R (HD.3908) 4537 0 R (HD.3909) 4538 0 R (HD.391) 641 0 R (HD.3910) 4539 0 R (HD.3911) 4540 0 R (HD.3912) 4541 0 R (HD.3913) 4542 0 R (HD.3914) 4543 0 R (HD.3915) 4544 0 R (HD.3916) 4545 0 R (HD.3917) 4546 0 R (HD.3918) 4547 0 R (HD.3919) 4548 0 R (HD.392) 642 0 R (HD.3920) 4549 0 R (HD.3921) 4556 0 R (HD.3922) 4557 0 R (HD.3923) 4558 0 R (HD.3924) 4559 0 R (HD.3925) 4560 0 R (HD.3926) 4561 0 R (HD.3927) 4562 0 R (HD.3928) 4563 0 R (HD.3929) 4564 0 R (HD.393) 643 0 R (HD.3930) 4565 0 R (HD.3931) 4566 0 R (HD.3932) 4567 0 R (HD.3933) 4568 0 R ] /Limits [ (HD.3905) (HD.3933) ] >>
endobj
11719 0 obj
-<< /Names [ (HD.1094) 1443 0 R (HD.1095) 1444 0 R (HD.1096) 1445 0 R (HD.1097) 1446 0 R (HD.1098) 1447 0 R (HD.1099) 1448 0 R (HD.11) 199 0 R (HD.110) 314 0 R (HD.1100) 1449 0 R (HD.1101) 1450 0 R (HD.1102) 1451 0 R (HD.1103) 1452 0 R (HD.1104) 1453 0 R (HD.1105) 1454 0 R (HD.1106) 1455 0 R (HD.1107) 1456 0 R (HD.1108) 1457 0 R (HD.1109) 1458 0 R (HD.111) 315 0 R (HD.1110) 1459 0 R (HD.1111) 1460 0 R (HD.1112) 1461 0 R (HD.1113) 1462 0 R (HD.1114) 1463 0 R (HD.1115) 1464 0 R (HD.1116) 1465 0 R (HD.1117) 1466 0 R (HD.1118) 1467 0 R (HD.1119) 1468 0 R (HD.112) 316 0 R (HD.1120) 1469 0 R (HD.1121) 1470 0 R ] /Limits [ (HD.1094) (HD.1121) ] >>
+<< /Names [ (HD.3934) 4569 0 R (HD.3935) 4570 0 R (HD.3936) 4571 0 R (HD.3937) 4572 0 R (HD.3938) 4573 0 R (HD.3939) 4574 0 R (HD.394) 644 0 R (HD.3940) 4575 0 R (HD.3941) 4576 0 R (HD.3942) 4577 0 R (HD.3943) 4578 0 R (HD.3944) 4579 0 R (HD.3945) 4580 0 R (HD.3946) 4581 0 R (HD.3947) 4582 0 R (HD.3948) 4583 0 R (HD.3949) 4584 0 R (HD.395) 645 0 R (HD.3950) 4585 0 R (HD.3951) 4586 0 R (HD.3952) 4587 0 R (HD.3953) 4588 0 R (HD.3954) 4589 0 R (HD.3955) 4590 0 R (HD.3956) 4591 0 R (HD.3957) 4592 0 R (HD.3958) 4593 0 R (HD.3959) 4594 0 R (HD.396) 646 0 R (HD.3960) 4595 0 R (HD.3961) 4596 0 R (HD.3962) 4597 0 R ] /Limits [ (HD.3934) (HD.3962) ] >>
endobj
11720 0 obj
-<< /Names [ (HD.1122) 1471 0 R (HD.1123) 1472 0 R (HD.1124) 1473 0 R (HD.1125) 1474 0 R (HD.1126) 1475 0 R (HD.1127) 1476 0 R (HD.1128) 1477 0 R (HD.1129) 1478 0 R (HD.113) 319 0 R (HD.1130) 1479 0 R (HD.1131) 1480 0 R (HD.1132) 1481 0 R (HD.1133) 1482 0 R (HD.1134) 1483 0 R (HD.1135) 1484 0 R (HD.1136) 1489 0 R (HD.1137) 1490 0 R (HD.1138) 1491 0 R (HD.1139) 1492 0 R (HD.114) 320 0 R (HD.1140) 1493 0 R (HD.1141) 1494 0 R (HD.1142) 1495 0 R (HD.1143) 1496 0 R (HD.1144) 1497 0 R (HD.1145) 1498 0 R (HD.1146) 1499 0 R (HD.1147) 1500 0 R (HD.1148) 1501 0 R (HD.1149) 1502 0 R (HD.115) 321 0 R (HD.1150) 1503 0 R ] /Limits [ (HD.1122) (HD.1150) ] >>
+<< /Names [ (HD.3963) 4598 0 R (HD.3964) 4599 0 R (HD.3965) 4600 0 R (HD.3966) 4601 0 R (HD.3967) 4602 0 R (HD.3968) 4603 0 R (HD.3969) 4604 0 R (HD.397) 647 0 R (HD.3970) 4609 0 R (HD.3971) 4610 0 R (HD.3972) 4611 0 R (HD.3973) 4612 0 R (HD.3974) 4613 0 R (HD.3975) 4614 0 R (HD.3976) 4615 0 R (HD.3977) 4616 0 R (HD.3978) 4617 0 R (HD.3979) 4618 0 R (HD.398) 648 0 R (HD.3980) 4619 0 R (HD.3981) 4620 0 R (HD.3982) 4621 0 R (HD.3983) 4622 0 R (HD.3984) 4623 0 R (HD.3985) 4624 0 R (HD.3986) 4625 0 R (HD.3987) 4626 0 R (HD.3988) 4627 0 R (HD.3989) 4628 0 R (HD.399) 649 0 R (HD.3990) 4629 0 R (HD.3991) 4630 0 R ] /Limits [ (HD.3963) (HD.3991) ] >>
endobj
11721 0 obj
-<< /Names [ (HD.1151) 1504 0 R (HD.1152) 1505 0 R (HD.1153) 1506 0 R (HD.1154) 1507 0 R (HD.1155) 1508 0 R (HD.1156) 1509 0 R (HD.1157) 1510 0 R (HD.1158) 1511 0 R (HD.1159) 1512 0 R (HD.116) 322 0 R (HD.1160) 1513 0 R (HD.1161) 1514 0 R (HD.1162) 1515 0 R (HD.1163) 1516 0 R (HD.1164) 1517 0 R (HD.1165) 1518 0 R (HD.1166) 1519 0 R (HD.1167) 1520 0 R (HD.1168) 1521 0 R (HD.1169) 1522 0 R (HD.117) 323 0 R (HD.1170) 1523 0 R (HD.1171) 1524 0 R (HD.1172) 1525 0 R (HD.1173) 1526 0 R (HD.1174) 1527 0 R (HD.1175) 1528 0 R (HD.1176) 1529 0 R (HD.1177) 1530 0 R (HD.1178) 1531 0 R (HD.1179) 1532 0 R (HD.118) 324 0 R ] /Limits [ (HD.1151) (HD.118) ] >>
+<< /Names [ (HD.3992) 4631 0 R (HD.3993) 4632 0 R (HD.3994) 4633 0 R (HD.3995) 4634 0 R (HD.3996) 4635 0 R (HD.3997) 4636 0 R (HD.3998) 4637 0 R (HD.3999) 4638 0 R (HD.4) 188 0 R (HD.40) 231 0 R (HD.400) 654 0 R (HD.4000) 4639 0 R (HD.4001) 4640 0 R (HD.4002) 4641 0 R (HD.4003) 4642 0 R (HD.4004) 4643 0 R (HD.4005) 4644 0 R (HD.4006) 4645 0 R (HD.4007) 4646 0 R (HD.4008) 4647 0 R (HD.4009) 4648 0 R (HD.401) 655 0 R (HD.4010) 4649 0 R (HD.4011) 4650 0 R (HD.4012) 4651 0 R (HD.4013) 4652 0 R (HD.4014) 4653 0 R (HD.4015) 4654 0 R (HD.4016) 4655 0 R (HD.4017) 4656 0 R (HD.4018) 4657 0 R (HD.4019) 4658 0 R ] /Limits [ (HD.3992) (HD.4019) ] >>
endobj
11722 0 obj
-<< /Names [ (HD.1180) 1533 0 R (HD.1181) 1534 0 R (HD.1182) 1535 0 R (HD.1183) 1536 0 R (HD.1184) 1537 0 R (HD.1185) 1538 0 R (HD.1186) 1539 0 R (HD.1187) 1544 0 R (HD.1188) 1545 0 R (HD.1189) 1546 0 R (HD.119) 325 0 R (HD.1190) 1547 0 R (HD.1191) 1548 0 R (HD.1192) 1549 0 R (HD.1193) 1550 0 R (HD.1194) 1551 0 R (HD.1195) 1552 0 R (HD.1196) 1553 0 R (HD.1197) 1554 0 R (HD.1198) 1555 0 R (HD.1199) 1556 0 R (HD.12) 200 0 R (HD.120) 326 0 R (HD.1200) 1557 0 R (HD.1201) 1558 0 R (HD.1202) 1559 0 R (HD.1203) 1560 0 R (HD.1204) 1561 0 R (HD.1205) 1562 0 R (HD.1206) 1563 0 R (HD.1207) 1564 0 R (HD.1208) 1565 0 R ] /Limits [ (HD.1180) (HD.1208) ] >>
+<< /Names [ (HD.402) 656 0 R (HD.4020) 4659 0 R (HD.4021) 4660 0 R (HD.4022) 4661 0 R (HD.4023) 4662 0 R (HD.4024) 4667 0 R (HD.4025) 4668 0 R (HD.4026) 4669 0 R (HD.4027) 4670 0 R (HD.4028) 4671 0 R (HD.4029) 4672 0 R (HD.403) 657 0 R (HD.4030) 4673 0 R (HD.4031) 4674 0 R (HD.4032) 4675 0 R (HD.4033) 4676 0 R (HD.4034) 4677 0 R (HD.4035) 4678 0 R (HD.4036) 4679 0 R (HD.4037) 4680 0 R (HD.4038) 4681 0 R (HD.4039) 4686 0 R (HD.404) 658 0 R (HD.4040) 4687 0 R (HD.4041) 4688 0 R (HD.4042) 4689 0 R (HD.4043) 4690 0 R (HD.4044) 4691 0 R (HD.4045) 4692 0 R (HD.4046) 4693 0 R (HD.4047) 4694 0 R (HD.4048) 4695 0 R ] /Limits [ (HD.402) (HD.4048) ] >>
endobj
11723 0 obj
-<< /Names [ (HD.1209) 1566 0 R (HD.121) 327 0 R (HD.1210) 1567 0 R (HD.1211) 1572 0 R (HD.1212) 1573 0 R (HD.1213) 1574 0 R (HD.1214) 1575 0 R (HD.1215) 1576 0 R (HD.1216) 1577 0 R (HD.1217) 1578 0 R (HD.1218) 1579 0 R (HD.1219) 1580 0 R (HD.122) 328 0 R (HD.1220) 1581 0 R (HD.1221) 1582 0 R (HD.1222) 1583 0 R (HD.1223) 1584 0 R (HD.1224) 1585 0 R (HD.1225) 1586 0 R (HD.1226) 1587 0 R (HD.1227) 1588 0 R (HD.1228) 1589 0 R (HD.1229) 1590 0 R (HD.123) 329 0 R (HD.1230) 1591 0 R (HD.1231) 1592 0 R (HD.1232) 1593 0 R (HD.1233) 1594 0 R (HD.1234) 1595 0 R (HD.1235) 1596 0 R (HD.1236) 1597 0 R (HD.1237) 1598 0 R ] /Limits [ (HD.1209) (HD.1237) ] >>
+<< /Names [ (HD.4049) 4696 0 R (HD.405) 659 0 R (HD.4050) 4697 0 R (HD.4051) 4698 0 R (HD.4052) 4699 0 R (HD.4053) 4700 0 R (HD.4054) 4701 0 R (HD.4055) 4702 0 R (HD.4056) 4703 0 R (HD.4057) 4704 0 R (HD.4058) 4705 0 R (HD.4059) 4706 0 R (HD.406) 660 0 R (HD.4060) 4707 0 R (HD.4061) 4708 0 R (HD.4062) 4709 0 R (HD.4063) 4710 0 R (HD.4064) 4711 0 R (HD.4065) 4712 0 R (HD.4066) 4713 0 R (HD.4067) 4714 0 R (HD.4068) 4715 0 R (HD.4069) 4716 0 R (HD.407) 661 0 R (HD.4070) 4717 0 R (HD.4071) 4718 0 R (HD.4072) 4719 0 R (HD.4073) 4720 0 R (HD.4074) 4721 0 R (HD.4075) 4722 0 R (HD.4076) 4723 0 R (HD.4077) 4724 0 R ] /Limits [ (HD.4049) (HD.4077) ] >>
endobj
11724 0 obj
-<< /Names [ (HD.1238) 1599 0 R (HD.1239) 1600 0 R (HD.124) 330 0 R (HD.1240) 1601 0 R (HD.1241) 1602 0 R (HD.1242) 1603 0 R (HD.1243) 1604 0 R (HD.1244) 1605 0 R (HD.1245) 1606 0 R (HD.1246) 1607 0 R (HD.1247) 1608 0 R (HD.1248) 1609 0 R (HD.1249) 1610 0 R (HD.125) 331 0 R (HD.1250) 1611 0 R (HD.1251) 1612 0 R (HD.1252) 1613 0 R (HD.1253) 1614 0 R (HD.1254) 1615 0 R (HD.1255) 1616 0 R (HD.1256) 1621 0 R (HD.1257) 1622 0 R (HD.1258) 1623 0 R (HD.1259) 1624 0 R (HD.126) 332 0 R (HD.1260) 1625 0 R (HD.1261) 1626 0 R (HD.1262) 1627 0 R (HD.1263) 1628 0 R (HD.1264) 1629 0 R (HD.1265) 1630 0 R (HD.1266) 1631 0 R ] /Limits [ (HD.1238) (HD.1266) ] >>
+<< /Names [ (HD.4078) 4725 0 R (HD.4079) 4726 0 R (HD.408) 662 0 R (HD.4080) 4727 0 R (HD.4081) 4728 0 R (HD.4082) 4729 0 R (HD.4083) 4730 0 R (HD.4084) 4731 0 R (HD.4085) 4732 0 R (HD.4086) 4733 0 R (HD.4087) 4734 0 R (HD.4088) 4740 0 R (HD.4089) 4741 0 R (HD.409) 663 0 R (HD.4090) 4742 0 R (HD.4091) 4743 0 R (HD.4092) 4744 0 R (HD.4093) 4745 0 R (HD.4094) 4746 0 R (HD.4095) 4747 0 R (HD.4096) 4748 0 R (HD.4097) 4749 0 R (HD.4098) 4750 0 R (HD.4099) 4751 0 R (HD.41) 232 0 R (HD.410) 664 0 R (HD.4100) 4752 0 R (HD.4101) 4753 0 R (HD.4102) 4754 0 R (HD.4103) 4755 0 R (HD.4104) 4756 0 R (HD.4105) 4757 0 R ] /Limits [ (HD.4078) (HD.4105) ] >>
endobj
11725 0 obj
-<< /Names [ (HD.1267) 1632 0 R (HD.1268) 1633 0 R (HD.1269) 1634 0 R (HD.127) 333 0 R (HD.1270) 1635 0 R (HD.1271) 1636 0 R (HD.1272) 1637 0 R (HD.1273) 1638 0 R (HD.1274) 1639 0 R (HD.1275) 1640 0 R (HD.1276) 1641 0 R (HD.1277) 1642 0 R (HD.1278) 1643 0 R (HD.1279) 1644 0 R (HD.128) 334 0 R (HD.1280) 1645 0 R (HD.1281) 1646 0 R (HD.1282) 1647 0 R (HD.1283) 1648 0 R (HD.1284) 1649 0 R (HD.1285) 1650 0 R (HD.1286) 1651 0 R (HD.1287) 1652 0 R (HD.1288) 1653 0 R (HD.1289) 1654 0 R (HD.129) 335 0 R (HD.1290) 1655 0 R (HD.1291) 1656 0 R (HD.1292) 1657 0 R (HD.1293) 1658 0 R (HD.1294) 1659 0 R (HD.1295) 1660 0 R ] /Limits [ (HD.1267) (HD.1295) ] >>
+<< /Names [ (HD.4106) 4758 0 R (HD.4107) 4759 0 R (HD.4108) 4760 0 R (HD.4109) 4761 0 R (HD.411) 665 0 R (HD.4110) 4762 0 R (HD.4111) 4763 0 R (HD.4112) 4764 0 R (HD.4113) 4765 0 R (HD.4114) 4766 0 R (HD.4115) 4767 0 R (HD.4116) 4768 0 R (HD.4117) 4769 0 R (HD.4118) 4770 0 R (HD.4119) 4771 0 R (HD.412) 666 0 R (HD.4120) 4772 0 R (HD.4121) 4773 0 R (HD.4122) 4774 0 R (HD.4123) 4775 0 R (HD.4124) 4776 0 R (HD.4125) 4777 0 R (HD.4126) 4778 0 R (HD.4127) 4779 0 R (HD.4128) 4780 0 R (HD.4129) 4781 0 R (HD.413) 667 0 R (HD.4130) 4782 0 R (HD.4131) 4783 0 R (HD.4132) 4784 0 R (HD.4133) 4785 0 R (HD.4134) 4786 0 R ] /Limits [ (HD.4106) (HD.4134) ] >>
endobj
11726 0 obj
-<< /Names [ (HD.1296) 1661 0 R (HD.1297) 1662 0 R (HD.1298) 1663 0 R (HD.1299) 1664 0 R (HD.13) 201 0 R (HD.130) 336 0 R (HD.1300) 1665 0 R (HD.1301) 1666 0 R (HD.1302) 1667 0 R (HD.1303) 1668 0 R (HD.1304) 1669 0 R (HD.1305) 1670 0 R (HD.1306) 1671 0 R (HD.1307) 1672 0 R (HD.1308) 1673 0 R (HD.1309) 1674 0 R (HD.131) 337 0 R (HD.1310) 1675 0 R (HD.1311) 1676 0 R (HD.1312) 1677 0 R (HD.1313) 1678 0 R (HD.1314) 1679 0 R (HD.1315) 1684 0 R (HD.1316) 1685 0 R (HD.1317) 1686 0 R (HD.1318) 1687 0 R (HD.1319) 1688 0 R (HD.132) 338 0 R (HD.1320) 1689 0 R (HD.1321) 1690 0 R (HD.1322) 1691 0 R (HD.1323) 1692 0 R ] /Limits [ (HD.1296) (HD.1323) ] >>
+<< /Names [ (HD.4135) 4787 0 R (HD.4136) 4788 0 R (HD.4137) 4789 0 R (HD.4138) 4790 0 R (HD.4139) 4791 0 R (HD.414) 668 0 R (HD.4140) 4796 0 R (HD.4141) 4797 0 R (HD.4142) 4798 0 R (HD.4143) 4799 0 R (HD.4144) 4800 0 R (HD.4145) 4801 0 R (HD.4146) 4802 0 R (HD.4147) 4803 0 R (HD.4148) 4804 0 R (HD.4149) 4805 0 R (HD.415) 669 0 R (HD.4150) 4806 0 R (HD.4151) 4807 0 R (HD.4152) 4808 0 R (HD.4153) 4809 0 R (HD.4154) 4810 0 R (HD.4155) 4811 0 R (HD.4156) 4812 0 R (HD.4157) 4813 0 R (HD.4158) 4814 0 R (HD.4159) 4815 0 R (HD.416) 670 0 R (HD.4160) 4816 0 R (HD.4161) 4817 0 R (HD.4162) 4818 0 R (HD.4163) 4819 0 R ] /Limits [ (HD.4135) (HD.4163) ] >>
endobj
11727 0 obj
-<< /Names [ (HD.1324) 1693 0 R (HD.1325) 1694 0 R (HD.1326) 1695 0 R (HD.1327) 1696 0 R (HD.1328) 1697 0 R (HD.1329) 1698 0 R (HD.133) 339 0 R (HD.1330) 1699 0 R (HD.1331) 1700 0 R (HD.1332) 1701 0 R (HD.1333) 1702 0 R (HD.1334) 1703 0 R (HD.1335) 1704 0 R (HD.1336) 1705 0 R (HD.1337) 1706 0 R (HD.1338) 1707 0 R (HD.1339) 1708 0 R (HD.134) 344 0 R (HD.1340) 1709 0 R (HD.1341) 1710 0 R (HD.1342) 1711 0 R (HD.1343) 1712 0 R (HD.1344) 1713 0 R (HD.1345) 1718 0 R (HD.1346) 1719 0 R (HD.1347) 1720 0 R (HD.1348) 1721 0 R (HD.1349) 1722 0 R (HD.135) 345 0 R (HD.1350) 1723 0 R (HD.1351) 1724 0 R (HD.1352) 1725 0 R ] /Limits [ (HD.1324) (HD.1352) ] >>
+<< /Names [ (HD.4164) 4820 0 R (HD.4165) 4821 0 R (HD.4166) 4822 0 R (HD.4167) 4823 0 R (HD.4168) 4824 0 R (HD.4169) 4825 0 R (HD.417) 671 0 R (HD.4170) 4826 0 R (HD.4171) 4827 0 R (HD.4172) 4828 0 R (HD.4173) 4829 0 R (HD.4174) 4830 0 R (HD.4175) 4831 0 R (HD.4176) 4832 0 R (HD.4177) 4833 0 R (HD.4178) 4834 0 R (HD.4179) 4835 0 R (HD.418) 672 0 R (HD.4180) 4836 0 R (HD.4181) 4837 0 R (HD.4182) 4838 0 R (HD.4183) 4839 0 R (HD.4184) 4840 0 R (HD.4185) 4845 0 R (HD.4186) 4846 0 R (HD.4187) 4847 0 R (HD.4188) 4848 0 R (HD.4189) 4849 0 R (HD.419) 673 0 R (HD.4190) 4850 0 R (HD.4191) 4851 0 R (HD.4192) 4852 0 R ] /Limits [ (HD.4164) (HD.4192) ] >>
endobj
11728 0 obj
-<< /Names [ (HD.1353) 1726 0 R (HD.1354) 1727 0 R (HD.1355) 1728 0 R (HD.1356) 1729 0 R (HD.1357) 1730 0 R (HD.1358) 1731 0 R (HD.1359) 1732 0 R (HD.136) 346 0 R (HD.1360) 1733 0 R (HD.1361) 1734 0 R (HD.1362) 1735 0 R (HD.1363) 1736 0 R (HD.1364) 1737 0 R (HD.1365) 1738 0 R (HD.1366) 1739 0 R (HD.1367) 1740 0 R (HD.1368) 1741 0 R (HD.1369) 1742 0 R (HD.137) 347 0 R (HD.1370) 1743 0 R (HD.1371) 1744 0 R (HD.1372) 1745 0 R (HD.1373) 1746 0 R (HD.1374) 1747 0 R (HD.1375) 1748 0 R (HD.1376) 1749 0 R (HD.1377) 1750 0 R (HD.1378) 1751 0 R (HD.1379) 1752 0 R (HD.138) 348 0 R (HD.1380) 1753 0 R (HD.1381) 1754 0 R ] /Limits [ (HD.1353) (HD.1381) ] >>
+<< /Names [ (HD.4193) 4853 0 R (HD.4194) 4854 0 R (HD.4195) 4855 0 R (HD.4196) 4856 0 R (HD.4197) 4857 0 R (HD.4198) 4858 0 R (HD.4199) 4859 0 R (HD.42) 233 0 R (HD.420) 674 0 R (HD.4200) 4860 0 R (HD.4201) 4861 0 R (HD.4202) 4862 0 R (HD.4203) 4863 0 R (HD.4204) 4864 0 R (HD.4205) 4865 0 R (HD.4206) 4866 0 R (HD.4207) 4867 0 R (HD.4208) 4868 0 R (HD.4209) 4869 0 R (HD.421) 675 0 R (HD.4210) 4870 0 R (HD.4211) 4871 0 R (HD.4212) 4872 0 R (HD.4213) 4873 0 R (HD.4214) 4874 0 R (HD.4215) 4875 0 R (HD.4216) 4876 0 R (HD.4217) 4877 0 R (HD.4218) 4878 0 R (HD.4219) 4879 0 R (HD.422) 676 0 R (HD.4220) 4884 0 R ] /Limits [ (HD.4193) (HD.4220) ] >>
endobj
11729 0 obj
-<< /Names [ (HD.1382) 1755 0 R (HD.1383) 1756 0 R (HD.1384) 1757 0 R (HD.1385) 1758 0 R (HD.1386) 1759 0 R (HD.1387) 1760 0 R (HD.1388) 1761 0 R (HD.1389) 1762 0 R (HD.139) 349 0 R (HD.1390) 1763 0 R (HD.1391) 1764 0 R (HD.1392) 1765 0 R (HD.1393) 1766 0 R (HD.1394) 1771 0 R (HD.1395) 1772 0 R (HD.1396) 1773 0 R (HD.1397) 1774 0 R (HD.1398) 1775 0 R (HD.1399) 1776 0 R (HD.14) 202 0 R (HD.140) 350 0 R (HD.1400) 1777 0 R (HD.1401) 1778 0 R (HD.1402) 1779 0 R (HD.1403) 1780 0 R (HD.1404) 1781 0 R (HD.1405) 1782 0 R (HD.1406) 1783 0 R (HD.1407) 1784 0 R (HD.1408) 1785 0 R (HD.1409) 1786 0 R (HD.141) 351 0 R ] /Limits [ (HD.1382) (HD.141) ] >>
+<< /Names [ (HD.4221) 4885 0 R (HD.4222) 4886 0 R (HD.4223) 4887 0 R (HD.4224) 4888 0 R (HD.4225) 4889 0 R (HD.4226) 4890 0 R (HD.4227) 4891 0 R (HD.4228) 4892 0 R (HD.4229) 4893 0 R (HD.423) 677 0 R (HD.4230) 4894 0 R (HD.4231) 4895 0 R (HD.4232) 4896 0 R (HD.4233) 4897 0 R (HD.4234) 4898 0 R (HD.4235) 4899 0 R (HD.4236) 4900 0 R (HD.4237) 4901 0 R (HD.4238) 4902 0 R (HD.4239) 4903 0 R (HD.424) 678 0 R (HD.4240) 4904 0 R (HD.4241) 4905 0 R (HD.4242) 4906 0 R (HD.4243) 4907 0 R (HD.4244) 4908 0 R (HD.4245) 4909 0 R (HD.4246) 4910 0 R (HD.4247) 4911 0 R (HD.4248) 4912 0 R (HD.4249) 4913 0 R (HD.425) 683 0 R ] /Limits [ (HD.4221) (HD.425) ] >>
endobj
11730 0 obj
-<< /Names [ (HD.1410) 1787 0 R (HD.1411) 1788 0 R (HD.1412) 1789 0 R (HD.1413) 1790 0 R (HD.1414) 1791 0 R (HD.1415) 1792 0 R (HD.1416) 1793 0 R (HD.1417) 1794 0 R (HD.1418) 1795 0 R (HD.1419) 1796 0 R (HD.142) 352 0 R (HD.1420) 1797 0 R (HD.1421) 1798 0 R (HD.1422) 1799 0 R (HD.1423) 1800 0 R (HD.1424) 1801 0 R (HD.1425) 1802 0 R (HD.1426) 1803 0 R (HD.1427) 1804 0 R (HD.1428) 1805 0 R (HD.1429) 1806 0 R (HD.143) 353 0 R (HD.1430) 1807 0 R (HD.1431) 1808 0 R (HD.1432) 1815 0 R (HD.1433) 1816 0 R (HD.1434) 1817 0 R (HD.1435) 1818 0 R (HD.1436) 1819 0 R (HD.1437) 1820 0 R (HD.1438) 1821 0 R (HD.1439) 1822 0 R ] /Limits [ (HD.1410) (HD.1439) ] >>
+<< /Names [ (HD.4250) 4914 0 R (HD.4251) 4915 0 R (HD.4252) 4916 0 R (HD.4253) 4917 0 R (HD.4254) 4918 0 R (HD.4255) 4919 0 R (HD.4256) 4920 0 R (HD.4257) 4921 0 R (HD.4258) 4922 0 R (HD.4259) 4923 0 R (HD.426) 684 0 R (HD.4260) 4924 0 R (HD.4261) 4925 0 R (HD.4262) 4926 0 R (HD.4263) 4927 0 R (HD.4264) 4928 0 R (HD.4265) 4929 0 R (HD.4266) 4930 0 R (HD.4267) 4931 0 R (HD.4268) 4932 0 R (HD.4269) 4933 0 R (HD.427) 685 0 R (HD.4270) 4934 0 R (HD.4271) 4935 0 R (HD.4272) 4936 0 R (HD.4273) 4937 0 R (HD.4274) 4938 0 R (HD.4275) 4939 0 R (HD.4276) 4940 0 R (HD.4277) 4941 0 R (HD.4278) 4942 0 R (HD.4279) 4943 0 R ] /Limits [ (HD.4250) (HD.4279) ] >>
endobj
11731 0 obj
-<< /Names [ (HD.144) 354 0 R (HD.1440) 1823 0 R (HD.1441) 1824 0 R (HD.1442) 1825 0 R (HD.1443) 1826 0 R (HD.1444) 1827 0 R (HD.1445) 1828 0 R (HD.1446) 1829 0 R (HD.1447) 1830 0 R (HD.1448) 1831 0 R (HD.1449) 1832 0 R (HD.145) 355 0 R (HD.1450) 1833 0 R (HD.1451) 1834 0 R (HD.1452) 1835 0 R (HD.1453) 1836 0 R (HD.1454) 1837 0 R (HD.1455) 1838 0 R (HD.1456) 1839 0 R (HD.1457) 1840 0 R (HD.1458) 1841 0 R (HD.1459) 1842 0 R (HD.146) 356 0 R (HD.1460) 1843 0 R (HD.1461) 1844 0 R (HD.1462) 1845 0 R (HD.1463) 1846 0 R (HD.1464) 1847 0 R (HD.1465) 1848 0 R (HD.1466) 1849 0 R (HD.1467) 1850 0 R (HD.1468) 1851 0 R ] /Limits [ (HD.144) (HD.1468) ] >>
+<< /Names [ (HD.428) 686 0 R (HD.4280) 4944 0 R (HD.4281) 4949 0 R (HD.4282) 4950 0 R (HD.4283) 4951 0 R (HD.4284) 4952 0 R (HD.4285) 4953 0 R (HD.4286) 4954 0 R (HD.4287) 4955 0 R (HD.4288) 4956 0 R (HD.4289) 4957 0 R (HD.429) 687 0 R (HD.4290) 4958 0 R (HD.4291) 4959 0 R (HD.4292) 4960 0 R (HD.4293) 4961 0 R (HD.4294) 4962 0 R (HD.4295) 4963 0 R (HD.4296) 4964 0 R (HD.4297) 4965 0 R (HD.4298) 4966 0 R (HD.4299) 4967 0 R (HD.43) 234 0 R (HD.430) 688 0 R (HD.4300) 4968 0 R (HD.4301) 4969 0 R (HD.4302) 4970 0 R (HD.4303) 4971 0 R (HD.4304) 4972 0 R (HD.4305) 4973 0 R (HD.4306) 4974 0 R (HD.4307) 4975 0 R ] /Limits [ (HD.428) (HD.4307) ] >>
endobj
11732 0 obj
-<< /Names [ (HD.1469) 1852 0 R (HD.147) 357 0 R (HD.1470) 1853 0 R (HD.1471) 1854 0 R (HD.1472) 1855 0 R (HD.1473) 1860 0 R (HD.1474) 1861 0 R (HD.1475) 1862 0 R (HD.1476) 1863 0 R (HD.1477) 1864 0 R (HD.1478) 1865 0 R (HD.1479) 1866 0 R (HD.148) 358 0 R (HD.1480) 1867 0 R (HD.1481) 1868 0 R (HD.1482) 1869 0 R (HD.1483) 1870 0 R (HD.1484) 1871 0 R (HD.1485) 1872 0 R (HD.1486) 1873 0 R (HD.1487) 1874 0 R (HD.1488) 1875 0 R (HD.1489) 1876 0 R (HD.149) 359 0 R (HD.1490) 1877 0 R (HD.1491) 1878 0 R (HD.1492) 1879 0 R (HD.1493) 1880 0 R (HD.1494) 1881 0 R (HD.1495) 1882 0 R (HD.1496) 1883 0 R (HD.1497) 1884 0 R ] /Limits [ (HD.1469) (HD.1497) ] >>
+<< /Names [ (HD.4308) 4976 0 R (HD.4309) 4977 0 R (HD.431) 689 0 R (HD.4310) 4978 0 R (HD.4311) 4979 0 R (HD.4312) 4980 0 R (HD.4313) 4981 0 R (HD.4314) 4982 0 R (HD.4315) 4983 0 R (HD.4316) 4984 0 R (HD.4317) 4985 0 R (HD.4318) 4990 0 R (HD.4319) 4991 0 R (HD.432) 690 0 R (HD.4320) 4992 0 R (HD.4321) 4993 0 R (HD.4322) 4994 0 R (HD.4323) 4995 0 R (HD.4324) 4996 0 R (HD.4325) 4997 0 R (HD.4326) 4998 0 R (HD.4327) 4999 0 R (HD.4328) 5000 0 R (HD.4329) 5001 0 R (HD.433) 691 0 R (HD.4330) 5002 0 R (HD.4331) 5003 0 R (HD.4332) 5004 0 R (HD.4333) 5005 0 R (HD.4334) 5006 0 R (HD.4335) 5007 0 R (HD.4336) 5008 0 R ] /Limits [ (HD.4308) (HD.4336) ] >>
endobj
11733 0 obj
-<< /Names [ (HD.1498) 1885 0 R (HD.1499) 1886 0 R (HD.15) 203 0 R (HD.150) 360 0 R (HD.1500) 1887 0 R (HD.1501) 1888 0 R (HD.1502) 1889 0 R (HD.1503) 1890 0 R (HD.1504) 1891 0 R (HD.1505) 1892 0 R (HD.1506) 1893 0 R (HD.1507) 1894 0 R (HD.1508) 1895 0 R (HD.1509) 1896 0 R (HD.151) 361 0 R (HD.1510) 1897 0 R (HD.1511) 1898 0 R (HD.1512) 1899 0 R (HD.1513) 1900 0 R (HD.1514) 1901 0 R (HD.1515) 1902 0 R (HD.1516) 1903 0 R (HD.1517) 1904 0 R (HD.1518) 1905 0 R (HD.1519) 1906 0 R (HD.152) 362 0 R (HD.1520) 1907 0 R (HD.1521) 1908 0 R (HD.1522) 1909 0 R (HD.1523) 1910 0 R (HD.1524) 1917 0 R (HD.1525) 1918 0 R ] /Limits [ (HD.1498) (HD.1525) ] >>
+<< /Names [ (HD.4337) 5009 0 R (HD.4338) 5010 0 R (HD.4339) 5011 0 R (HD.434) 692 0 R (HD.4340) 5012 0 R (HD.4341) 5013 0 R (HD.4342) 5014 0 R (HD.4343) 5015 0 R (HD.4344) 5016 0 R (HD.4345) 5017 0 R (HD.4346) 5018 0 R (HD.4347) 5019 0 R (HD.4348) 5020 0 R (HD.4349) 5021 0 R (HD.435) 693 0 R (HD.4350) 5022 0 R (HD.4351) 5023 0 R (HD.4352) 5024 0 R (HD.4353) 5025 0 R (HD.4354) 5026 0 R (HD.4355) 5027 0 R (HD.4356) 5028 0 R (HD.4357) 5029 0 R (HD.4358) 5030 0 R (HD.4359) 5031 0 R (HD.436) 694 0 R (HD.4360) 5032 0 R (HD.4361) 5037 0 R (HD.4362) 5038 0 R (HD.4363) 5039 0 R (HD.4364) 5040 0 R (HD.4365) 5041 0 R ] /Limits [ (HD.4337) (HD.4365) ] >>
endobj
11734 0 obj
-<< /Names [ (HD.1526) 1919 0 R (HD.1527) 1920 0 R (HD.1528) 1921 0 R (HD.1529) 1922 0 R (HD.153) 363 0 R (HD.1530) 1923 0 R (HD.1531) 1924 0 R (HD.1532) 1925 0 R (HD.1533) 1926 0 R (HD.1534) 1927 0 R (HD.1535) 1928 0 R (HD.1536) 1929 0 R (HD.1537) 1930 0 R (HD.1538) 1931 0 R (HD.1539) 1932 0 R (HD.154) 364 0 R (HD.1540) 1933 0 R (HD.1541) 1934 0 R (HD.1542) 1935 0 R (HD.1543) 1936 0 R (HD.1544) 1937 0 R (HD.1545) 1938 0 R (HD.1546) 1939 0 R (HD.1547) 1940 0 R (HD.1548) 1941 0 R (HD.1549) 1942 0 R (HD.155) 365 0 R (HD.1550) 1943 0 R (HD.1551) 1944 0 R (HD.1552) 1945 0 R (HD.1553) 1946 0 R (HD.1554) 1947 0 R ] /Limits [ (HD.1526) (HD.1554) ] >>
+<< /Names [ (HD.4366) 5042 0 R (HD.4367) 5043 0 R (HD.4368) 5044 0 R (HD.4369) 5045 0 R (HD.437) 695 0 R (HD.4370) 5046 0 R (HD.4371) 5047 0 R (HD.4372) 5048 0 R (HD.4373) 5049 0 R (HD.4374) 5050 0 R (HD.4375) 5051 0 R (HD.4376) 5052 0 R (HD.4377) 5053 0 R (HD.4378) 5054 0 R (HD.4379) 5055 0 R (HD.438) 696 0 R (HD.4380) 5056 0 R (HD.4381) 5057 0 R (HD.4382) 5058 0 R (HD.4383) 5059 0 R (HD.4384) 5060 0 R (HD.4385) 5061 0 R (HD.4386) 5062 0 R (HD.4387) 5063 0 R (HD.4388) 5064 0 R (HD.4389) 5065 0 R (HD.439) 697 0 R (HD.4390) 5066 0 R (HD.4391) 5067 0 R (HD.4392) 5068 0 R (HD.4393) 5069 0 R (HD.4394) 5070 0 R ] /Limits [ (HD.4366) (HD.4394) ] >>
endobj
11735 0 obj
-<< /Names [ (HD.1555) 1948 0 R (HD.1556) 1949 0 R (HD.1557) 1950 0 R (HD.1558) 1951 0 R (HD.1559) 1952 0 R (HD.156) 366 0 R (HD.1560) 1953 0 R (HD.1561) 1954 0 R (HD.1562) 1955 0 R (HD.1563) 1956 0 R (HD.1564) 1957 0 R (HD.1565) 1958 0 R (HD.1566) 1959 0 R (HD.1567) 1967 0 R (HD.1568) 1968 0 R (HD.1569) 1969 0 R (HD.157) 367 0 R (HD.1570) 1970 0 R (HD.1571) 1971 0 R (HD.1572) 1972 0 R (HD.1573) 1973 0 R (HD.1574) 1974 0 R (HD.1575) 1975 0 R (HD.1576) 1976 0 R (HD.1577) 1977 0 R (HD.1578) 1978 0 R (HD.1579) 1979 0 R (HD.158) 368 0 R (HD.1580) 1980 0 R (HD.1581) 1981 0 R (HD.1582) 1982 0 R (HD.1583) 1983 0 R ] /Limits [ (HD.1555) (HD.1583) ] >>
+<< /Names [ (HD.4395) 5071 0 R (HD.4396) 5072 0 R (HD.4397) 5073 0 R (HD.4398) 5074 0 R (HD.4399) 5075 0 R (HD.44) 235 0 R (HD.440) 698 0 R (HD.4400) 5076 0 R (HD.4401) 5077 0 R (HD.4402) 5078 0 R (HD.4403) 5079 0 R (HD.4404) 5080 0 R (HD.4405) 5081 0 R (HD.4406) 5082 0 R (HD.4407) 5083 0 R (HD.4408) 5084 0 R (HD.4409) 5085 0 R (HD.441) 700 0 R (HD.4410) 5086 0 R (HD.4411) 5087 0 R (HD.4412) 5088 0 R (HD.4413) 5089 0 R (HD.4414) 5090 0 R (HD.4415) 5095 0 R (HD.4416) 5096 0 R (HD.4417) 5097 0 R (HD.4418) 5098 0 R (HD.4419) 5099 0 R (HD.442) 701 0 R (HD.4420) 5100 0 R (HD.4421) 5101 0 R (HD.4422) 5102 0 R ] /Limits [ (HD.4395) (HD.4422) ] >>
endobj
11736 0 obj
-<< /Names [ (HD.1584) 1984 0 R (HD.1585) 1985 0 R (HD.1586) 1986 0 R (HD.1587) 1987 0 R (HD.1588) 1988 0 R (HD.1589) 1989 0 R (HD.159) 369 0 R (HD.1590) 1990 0 R (HD.1591) 1991 0 R (HD.1592) 1992 0 R (HD.1593) 1993 0 R (HD.1594) 1994 0 R (HD.1595) 1995 0 R (HD.1596) 1996 0 R (HD.1597) 1997 0 R (HD.1598) 1998 0 R (HD.1599) 1999 0 R (HD.16) 211 0 R (HD.160) 370 0 R (HD.1600) 2000 0 R (HD.1601) 2001 0 R (HD.1602) 2002 0 R (HD.1603) 2003 0 R (HD.1604) 2004 0 R (HD.1605) 2005 0 R (HD.1606) 2010 0 R (HD.1607) 2011 0 R (HD.1608) 2012 0 R (HD.1609) 2013 0 R (HD.161) 371 0 R (HD.1610) 2014 0 R (HD.1611) 2015 0 R ] /Limits [ (HD.1584) (HD.1611) ] >>
+<< /Names [ (HD.4423) 5103 0 R (HD.4424) 5104 0 R (HD.4425) 5105 0 R (HD.4426) 5106 0 R (HD.4427) 5107 0 R (HD.4428) 5108 0 R (HD.4429) 5109 0 R (HD.443) 702 0 R (HD.4430) 5110 0 R (HD.4431) 5111 0 R (HD.4432) 5112 0 R (HD.4433) 5113 0 R (HD.4434) 5114 0 R (HD.4435) 5115 0 R (HD.4436) 5116 0 R (HD.4437) 5117 0 R (HD.4438) 5118 0 R (HD.4439) 5119 0 R (HD.444) 703 0 R (HD.4440) 5120 0 R (HD.4441) 5121 0 R (HD.4442) 5122 0 R (HD.4443) 5123 0 R (HD.4444) 5124 0 R (HD.4445) 5125 0 R (HD.4446) 5126 0 R (HD.4447) 5127 0 R (HD.4448) 5128 0 R (HD.4449) 5129 0 R (HD.445) 709 0 R (HD.4450) 5130 0 R (HD.4451) 5131 0 R ] /Limits [ (HD.4423) (HD.4451) ] >>
endobj
11737 0 obj
-<< /Names [ (HD.1612) 2016 0 R (HD.1613) 2017 0 R (HD.1614) 2018 0 R (HD.1615) 2019 0 R (HD.1616) 2020 0 R (HD.1617) 2021 0 R (HD.1618) 2022 0 R (HD.1619) 2023 0 R (HD.162) 372 0 R (HD.1620) 2024 0 R (HD.1621) 2025 0 R (HD.1622) 2026 0 R (HD.1623) 2027 0 R (HD.1624) 2028 0 R (HD.1625) 2029 0 R (HD.1626) 2030 0 R (HD.1627) 2031 0 R (HD.1628) 2032 0 R (HD.1629) 2033 0 R (HD.163) 373 0 R (HD.1630) 2034 0 R (HD.1631) 2035 0 R (HD.1632) 2036 0 R (HD.1633) 2037 0 R (HD.1634) 2038 0 R (HD.1635) 2039 0 R (HD.1636) 2040 0 R (HD.1637) 2041 0 R (HD.1638) 2042 0 R (HD.1639) 2043 0 R (HD.164) 374 0 R (HD.1640) 2044 0 R ] /Limits [ (HD.1612) (HD.1640) ] >>
+<< /Names [ (HD.4452) 5132 0 R (HD.4453) 5133 0 R (HD.4454) 5134 0 R (HD.4455) 5135 0 R (HD.4456) 5136 0 R (HD.4457) 5137 0 R (HD.4458) 5138 0 R (HD.4459) 5143 0 R (HD.446) 710 0 R (HD.4460) 5144 0 R (HD.4461) 5145 0 R (HD.4462) 5146 0 R (HD.4463) 5147 0 R (HD.4464) 5148 0 R (HD.4465) 5149 0 R (HD.4466) 5150 0 R (HD.4467) 5151 0 R (HD.4468) 5152 0 R (HD.4469) 5153 0 R (HD.447) 711 0 R (HD.4470) 5154 0 R (HD.4471) 5155 0 R (HD.4472) 5156 0 R (HD.4473) 5157 0 R (HD.4474) 5158 0 R (HD.4475) 5159 0 R (HD.4476) 5160 0 R (HD.4477) 5161 0 R (HD.4478) 5162 0 R (HD.4479) 5163 0 R (HD.448) 712 0 R (HD.4480) 5164 0 R ] /Limits [ (HD.4452) (HD.4480) ] >>
endobj
11738 0 obj
-<< /Names [ (HD.1641) 2045 0 R (HD.1642) 2046 0 R (HD.1643) 2047 0 R (HD.1644) 2048 0 R (HD.1645) 2049 0 R (HD.1646) 2050 0 R (HD.1647) 2051 0 R (HD.1648) 2052 0 R (HD.1649) 2053 0 R (HD.165) 375 0 R (HD.1650) 2054 0 R (HD.1651) 2055 0 R (HD.1652) 2056 0 R (HD.1653) 2057 0 R (HD.1654) 2058 0 R (HD.1655) 2059 0 R (HD.1656) 2060 0 R (HD.1657) 2065 0 R (HD.1658) 2066 0 R (HD.1659) 2067 0 R (HD.166) 376 0 R (HD.1660) 2068 0 R (HD.1661) 2069 0 R (HD.1662) 2070 0 R (HD.1663) 2071 0 R (HD.1664) 2072 0 R (HD.1665) 2073 0 R (HD.1666) 2074 0 R (HD.1667) 2075 0 R (HD.1668) 2076 0 R (HD.1669) 2077 0 R (HD.167) 377 0 R ] /Limits [ (HD.1641) (HD.167) ] >>
+<< /Names [ (HD.4481) 5165 0 R (HD.4482) 5166 0 R (HD.4483) 5167 0 R (HD.4484) 5168 0 R (HD.4485) 5169 0 R (HD.4486) 5170 0 R (HD.4487) 5171 0 R (HD.4488) 5172 0 R (HD.4489) 5173 0 R (HD.449) 713 0 R (HD.4490) 5174 0 R (HD.4491) 5175 0 R (HD.4492) 5176 0 R (HD.4493) 5177 0 R (HD.4494) 5178 0 R (HD.4495) 5179 0 R (HD.4496) 5180 0 R (HD.4497) 5181 0 R (HD.4498) 5182 0 R (HD.4499) 5183 0 R (HD.45) 236 0 R (HD.450) 714 0 R (HD.4500) 5184 0 R (HD.4501) 5185 0 R (HD.4502) 5186 0 R (HD.4503) 5187 0 R (HD.4504) 5188 0 R (HD.4505) 5189 0 R (HD.4506) 5190 0 R (HD.4507) 5191 0 R (HD.4508) 5192 0 R (HD.4509) 5193 0 R ] /Limits [ (HD.4481) (HD.4509) ] >>
endobj
11739 0 obj
-<< /Names [ (HD.1670) 2078 0 R (HD.1671) 2079 0 R (HD.1672) 2080 0 R (HD.1673) 2081 0 R (HD.1674) 2082 0 R (HD.1675) 2083 0 R (HD.1676) 2084 0 R (HD.1677) 2085 0 R (HD.1678) 2086 0 R (HD.1679) 2087 0 R (HD.168) 378 0 R (HD.1680) 2088 0 R (HD.1681) 2089 0 R (HD.1682) 2090 0 R (HD.1683) 2091 0 R (HD.1684) 2092 0 R (HD.1685) 2093 0 R (HD.1686) 2094 0 R (HD.1687) 2095 0 R (HD.1688) 2096 0 R (HD.1689) 2097 0 R (HD.169) 379 0 R (HD.1690) 2102 0 R (HD.1691) 2103 0 R (HD.1692) 2104 0 R (HD.1693) 2105 0 R (HD.1694) 2106 0 R (HD.1695) 2107 0 R (HD.1696) 2108 0 R (HD.1697) 2109 0 R (HD.1698) 2110 0 R (HD.1699) 2111 0 R ] /Limits [ (HD.1670) (HD.1699) ] >>
+<< /Names [ (HD.451) 715 0 R (HD.4510) 5194 0 R (HD.4511) 5199 0 R (HD.4512) 5200 0 R (HD.4513) 5201 0 R (HD.4514) 5202 0 R (HD.4515) 5203 0 R (HD.4516) 5204 0 R (HD.4517) 5205 0 R (HD.4518) 5206 0 R (HD.4519) 5207 0 R (HD.452) 716 0 R (HD.4520) 5208 0 R (HD.4521) 5209 0 R (HD.4522) 5210 0 R (HD.4523) 5211 0 R (HD.4524) 5212 0 R (HD.4525) 5213 0 R (HD.4526) 5214 0 R (HD.4527) 5215 0 R (HD.4528) 5216 0 R (HD.4529) 5217 0 R (HD.453) 717 0 R (HD.4530) 5218 0 R (HD.4531) 5219 0 R (HD.4532) 5220 0 R (HD.4533) 5221 0 R (HD.4534) 5222 0 R (HD.4535) 5223 0 R (HD.4536) 5224 0 R (HD.4537) 5225 0 R (HD.4538) 5226 0 R ] /Limits [ (HD.451) (HD.4538) ] >>
endobj
11740 0 obj
-<< /Names [ (HD.17) 212 0 R (HD.170) 380 0 R (HD.1700) 2112 0 R (HD.1701) 2113 0 R (HD.1702) 2114 0 R (HD.1703) 2115 0 R (HD.1704) 2116 0 R (HD.1705) 2117 0 R (HD.1706) 2118 0 R (HD.1707) 2119 0 R (HD.1708) 2120 0 R (HD.1709) 2121 0 R (HD.171) 381 0 R (HD.1710) 2122 0 R (HD.1711) 2123 0 R (HD.1712) 2124 0 R (HD.1713) 2125 0 R (HD.1714) 2126 0 R (HD.1715) 2127 0 R (HD.1716) 2128 0 R (HD.1717) 2129 0 R (HD.1718) 2130 0 R (HD.1719) 2135 0 R (HD.172) 382 0 R (HD.1720) 2136 0 R (HD.1721) 2137 0 R (HD.1722) 2138 0 R (HD.1723) 2139 0 R (HD.1724) 2140 0 R (HD.1725) 2141 0 R (HD.1726) 2142 0 R (HD.1727) 2143 0 R ] /Limits [ (HD.17) (HD.1727) ] >>
+<< /Names [ (HD.4539) 5227 0 R (HD.454) 718 0 R (HD.4540) 5228 0 R (HD.4541) 5229 0 R (HD.4542) 5230 0 R (HD.4543) 5231 0 R (HD.4544) 5232 0 R (HD.4545) 5233 0 R (HD.4546) 5234 0 R (HD.4547) 5235 0 R (HD.4548) 5241 0 R (HD.4549) 5242 0 R (HD.455) 728 0 R (HD.4550) 5243 0 R (HD.4551) 5244 0 R (HD.4552) 5245 0 R (HD.4553) 5246 0 R (HD.4554) 5247 0 R (HD.4555) 5248 0 R (HD.4556) 5249 0 R (HD.4557) 5250 0 R (HD.4558) 5251 0 R (HD.4559) 5252 0 R (HD.456) 729 0 R (HD.4560) 5253 0 R (HD.4561) 5254 0 R (HD.4562) 5255 0 R (HD.4563) 5256 0 R (HD.4564) 5257 0 R (HD.4565) 5258 0 R (HD.4566) 5259 0 R (HD.4567) 5260 0 R ] /Limits [ (HD.4539) (HD.4567) ] >>
endobj
11741 0 obj
-<< /Names [ (HD.1728) 2144 0 R (HD.1729) 2145 0 R (HD.173) 383 0 R (HD.1730) 2146 0 R (HD.1731) 2147 0 R (HD.1732) 2148 0 R (HD.1733) 2149 0 R (HD.1734) 2150 0 R (HD.1735) 2151 0 R (HD.1736) 2152 0 R (HD.1737) 2153 0 R (HD.1738) 2154 0 R (HD.1739) 2155 0 R (HD.174) 388 0 R (HD.1740) 2156 0 R (HD.1741) 2157 0 R (HD.1742) 2158 0 R (HD.1743) 2159 0 R (HD.1744) 2160 0 R (HD.1745) 2161 0 R (HD.1746) 2162 0 R (HD.1747) 2163 0 R (HD.1748) 2164 0 R (HD.1749) 2165 0 R (HD.175) 389 0 R (HD.1750) 2166 0 R (HD.1751) 2167 0 R (HD.1752) 2168 0 R (HD.1753) 2173 0 R (HD.1754) 2174 0 R (HD.1755) 2175 0 R (HD.1756) 2176 0 R ] /Limits [ (HD.1728) (HD.1756) ] >>
+<< /Names [ (HD.4568) 5261 0 R (HD.4569) 5262 0 R (HD.457) 730 0 R (HD.4570) 5263 0 R (HD.4571) 5264 0 R (HD.4572) 5265 0 R (HD.4573) 5266 0 R (HD.4574) 5267 0 R (HD.4575) 5268 0 R (HD.4576) 5269 0 R (HD.4577) 5270 0 R (HD.4578) 5271 0 R (HD.4579) 5272 0 R (HD.458) 731 0 R (HD.4580) 5273 0 R (HD.4581) 5274 0 R (HD.4582) 5275 0 R (HD.4583) 5276 0 R (HD.4584) 5277 0 R (HD.4585) 5278 0 R (HD.4586) 5279 0 R (HD.4587) 5280 0 R (HD.4588) 5281 0 R (HD.4589) 5282 0 R (HD.459) 732 0 R (HD.4590) 5283 0 R (HD.4591) 5284 0 R (HD.4592) 5285 0 R (HD.4593) 5286 0 R (HD.4594) 5291 0 R (HD.4595) 5292 0 R (HD.4596) 5293 0 R ] /Limits [ (HD.4568) (HD.4596) ] >>
endobj
11742 0 obj
-<< /Names [ (HD.1757) 2177 0 R (HD.1758) 2178 0 R (HD.1759) 2179 0 R (HD.176) 390 0 R (HD.1760) 2180 0 R (HD.1761) 2181 0 R (HD.1762) 2182 0 R (HD.1763) 2183 0 R (HD.1764) 2184 0 R (HD.1765) 2185 0 R (HD.1766) 2186 0 R (HD.1767) 2187 0 R (HD.1768) 2188 0 R (HD.1769) 2189 0 R (HD.177) 391 0 R (HD.1770) 2190 0 R (HD.1771) 2191 0 R (HD.1772) 2192 0 R (HD.1773) 2193 0 R (HD.1774) 2194 0 R (HD.1775) 2195 0 R (HD.1776) 2196 0 R (HD.1777) 2197 0 R (HD.1778) 2198 0 R (HD.1779) 2199 0 R (HD.178) 392 0 R (HD.1780) 2200 0 R (HD.1781) 2201 0 R (HD.1782) 2202 0 R (HD.1783) 2203 0 R (HD.1784) 2204 0 R (HD.1785) 2205 0 R ] /Limits [ (HD.1757) (HD.1785) ] >>
+<< /Names [ (HD.4597) 5294 0 R (HD.4598) 5295 0 R (HD.4599) 5296 0 R (HD.46) 237 0 R (HD.460) 733 0 R (HD.4600) 5297 0 R (HD.4601) 5298 0 R (HD.4602) 5299 0 R (HD.4603) 5300 0 R (HD.4604) 5301 0 R (HD.4605) 5302 0 R (HD.4606) 5303 0 R (HD.4607) 5304 0 R (HD.4608) 5305 0 R (HD.4609) 5306 0 R (HD.461) 734 0 R (HD.4610) 5307 0 R (HD.4611) 5308 0 R (HD.4612) 5309 0 R (HD.4613) 5310 0 R (HD.4614) 5311 0 R (HD.4615) 5312 0 R (HD.4616) 5313 0 R (HD.4617) 5314 0 R (HD.4618) 5315 0 R (HD.4619) 5316 0 R (HD.462) 735 0 R (HD.4620) 5317 0 R (HD.4621) 5318 0 R (HD.4622) 5319 0 R (HD.4623) 5320 0 R (HD.4624) 5321 0 R ] /Limits [ (HD.4597) (HD.4624) ] >>
endobj
11743 0 obj
-<< /Names [ (HD.1786) 2206 0 R (HD.1787) 2207 0 R (HD.1788) 2208 0 R (HD.1789) 2209 0 R (HD.179) 393 0 R (HD.1790) 2210 0 R (HD.1791) 2211 0 R (HD.1792) 2216 0 R (HD.1793) 2217 0 R (HD.1794) 2218 0 R (HD.1795) 2219 0 R (HD.1796) 2220 0 R (HD.1797) 2221 0 R (HD.1798) 2222 0 R (HD.1799) 2223 0 R (HD.18) 213 0 R (HD.180) 394 0 R (HD.1800) 2224 0 R (HD.1801) 2225 0 R (HD.1802) 2226 0 R (HD.1803) 2227 0 R (HD.1804) 2228 0 R (HD.1805) 2229 0 R (HD.1806) 2230 0 R (HD.1807) 2231 0 R (HD.1808) 2232 0 R (HD.1809) 2233 0 R (HD.181) 395 0 R (HD.1810) 2234 0 R (HD.1811) 2235 0 R (HD.1812) 2236 0 R (HD.1813) 2237 0 R ] /Limits [ (HD.1786) (HD.1813) ] >>
+<< /Names [ (HD.4625) 5322 0 R (HD.4626) 5323 0 R (HD.4627) 5324 0 R (HD.4628) 5325 0 R (HD.4629) 5326 0 R (HD.463) 736 0 R (HD.4630) 5327 0 R (HD.4631) 5328 0 R (HD.4632) 5333 0 R (HD.4633) 5334 0 R (HD.4634) 5335 0 R (HD.4635) 5336 0 R (HD.4636) 5337 0 R (HD.4637) 5338 0 R (HD.4638) 5339 0 R (HD.4639) 5340 0 R (HD.464) 737 0 R (HD.4640) 5341 0 R (HD.4641) 5342 0 R (HD.4642) 5343 0 R (HD.4643) 5344 0 R (HD.4644) 5345 0 R (HD.4645) 5346 0 R (HD.4646) 5347 0 R (HD.4647) 5348 0 R (HD.4648) 5349 0 R (HD.4649) 5350 0 R (HD.465) 738 0 R (HD.4650) 5351 0 R (HD.4651) 5352 0 R (HD.4652) 5353 0 R (HD.4653) 5354 0 R ] /Limits [ (HD.4625) (HD.4653) ] >>
endobj
11744 0 obj
-<< /Names [ (HD.1814) 2238 0 R (HD.1815) 2239 0 R (HD.1816) 2240 0 R (HD.1817) 2241 0 R (HD.1818) 2242 0 R (HD.1819) 2243 0 R (HD.182) 396 0 R (HD.1820) 2244 0 R (HD.1821) 2245 0 R (HD.1822) 2246 0 R (HD.1823) 2247 0 R (HD.1824) 2248 0 R (HD.1825) 2249 0 R (HD.1826) 2250 0 R (HD.1827) 2251 0 R (HD.1828) 2252 0 R (HD.1829) 2253 0 R (HD.183) 397 0 R (HD.1830) 2259 0 R (HD.1831) 2260 0 R (HD.1832) 2261 0 R (HD.1833) 2262 0 R (HD.1834) 2263 0 R (HD.1835) 2264 0 R (HD.1836) 2265 0 R (HD.1837) 2266 0 R (HD.1838) 2267 0 R (HD.1839) 2268 0 R (HD.184) 398 0 R (HD.1840) 2269 0 R (HD.1841) 2270 0 R (HD.1842) 2271 0 R ] /Limits [ (HD.1814) (HD.1842) ] >>
+<< /Names [ (HD.4654) 5355 0 R (HD.4655) 5356 0 R (HD.4656) 5357 0 R (HD.4657) 5358 0 R (HD.4658) 5359 0 R (HD.4659) 5360 0 R (HD.466) 739 0 R (HD.4660) 5361 0 R (HD.4661) 5362 0 R (HD.4662) 5363 0 R (HD.4663) 5364 0 R (HD.4664) 5365 0 R (HD.4665) 5366 0 R (HD.4666) 5367 0 R (HD.4667) 5368 0 R (HD.4668) 5369 0 R (HD.4669) 5370 0 R (HD.467) 740 0 R (HD.4670) 5371 0 R (HD.4671) 5372 0 R (HD.4672) 5373 0 R (HD.4673) 5378 0 R (HD.4674) 5379 0 R (HD.4675) 5380 0 R (HD.4676) 5381 0 R (HD.4677) 5382 0 R (HD.4678) 5383 0 R (HD.4679) 5384 0 R (HD.468) 741 0 R (HD.4680) 5385 0 R (HD.4681) 5386 0 R (HD.4682) 5387 0 R ] /Limits [ (HD.4654) (HD.4682) ] >>
endobj
11745 0 obj
-<< /Names [ (HD.1843) 2272 0 R (HD.1844) 2273 0 R (HD.1845) 2274 0 R (HD.1846) 2275 0 R (HD.1847) 2276 0 R (HD.1848) 2277 0 R (HD.1849) 2278 0 R (HD.185) 399 0 R (HD.1850) 2279 0 R (HD.1851) 2280 0 R (HD.1852) 2281 0 R (HD.1853) 2282 0 R (HD.1854) 2283 0 R (HD.1855) 2284 0 R (HD.1856) 2285 0 R (HD.1857) 2286 0 R (HD.1858) 2287 0 R (HD.1859) 2288 0 R (HD.186) 400 0 R (HD.1860) 2289 0 R (HD.1861) 2290 0 R (HD.1862) 2291 0 R (HD.1863) 2292 0 R (HD.1864) 2293 0 R (HD.1865) 2294 0 R (HD.1866) 2295 0 R (HD.1867) 2296 0 R (HD.1868) 2297 0 R (HD.1869) 2298 0 R (HD.187) 401 0 R (HD.1870) 2299 0 R (HD.1871) 2300 0 R ] /Limits [ (HD.1843) (HD.1871) ] >>
+<< /Names [ (HD.4683) 5388 0 R (HD.4684) 5389 0 R (HD.4685) 5390 0 R (HD.4686) 5391 0 R (HD.4687) 5392 0 R (HD.4688) 5393 0 R (HD.4689) 5394 0 R (HD.469) 742 0 R (HD.4690) 5395 0 R (HD.4691) 5396 0 R (HD.4692) 5397 0 R (HD.4693) 5398 0 R (HD.4694) 5399 0 R (HD.4695) 5400 0 R (HD.4696) 5401 0 R (HD.4697) 5402 0 R (HD.4698) 5403 0 R (HD.4699) 5404 0 R (HD.47) 238 0 R (HD.470) 743 0 R (HD.4700) 5405 0 R (HD.4701) 5406 0 R (HD.4702) 5407 0 R (HD.4703) 5408 0 R (HD.4704) 5409 0 R (HD.4705) 5410 0 R (HD.4706) 5411 0 R (HD.4707) 5412 0 R (HD.4708) 5413 0 R (HD.4709) 5414 0 R (HD.471) 744 0 R (HD.4710) 5415 0 R ] /Limits [ (HD.4683) (HD.4710) ] >>
endobj
11746 0 obj
-<< /Names [ (HD.1872) 2301 0 R (HD.1873) 2302 0 R (HD.1874) 2303 0 R (HD.1875) 2304 0 R (HD.1876) 2305 0 R (HD.1877) 2306 0 R (HD.1878) 2307 0 R (HD.1879) 2308 0 R (HD.188) 402 0 R (HD.1880) 2309 0 R (HD.1881) 2310 0 R (HD.1882) 2316 0 R (HD.1883) 2317 0 R (HD.1884) 2318 0 R (HD.1885) 2319 0 R (HD.1886) 2320 0 R (HD.1887) 2321 0 R (HD.1888) 2322 0 R (HD.1889) 2323 0 R (HD.189) 403 0 R (HD.1890) 2324 0 R (HD.1891) 2325 0 R (HD.1892) 2326 0 R (HD.1893) 2327 0 R (HD.1894) 2328 0 R (HD.1895) 2329 0 R (HD.1896) 2330 0 R (HD.1897) 2331 0 R (HD.1898) 2332 0 R (HD.1899) 2333 0 R (HD.19) 214 0 R (HD.190) 404 0 R ] /Limits [ (HD.1872) (HD.190) ] >>
+<< /Names [ (HD.4711) 5416 0 R (HD.4712) 5417 0 R (HD.4713) 5418 0 R (HD.4714) 5419 0 R (HD.4715) 5420 0 R (HD.4716) 5421 0 R (HD.4717) 5422 0 R (HD.4718) 5423 0 R (HD.4719) 5424 0 R (HD.472) 745 0 R (HD.4720) 5429 0 R (HD.4721) 5430 0 R (HD.4722) 5431 0 R (HD.4723) 5432 0 R (HD.4724) 5433 0 R (HD.4725) 5434 0 R (HD.4726) 5435 0 R (HD.4727) 5436 0 R (HD.4728) 5437 0 R (HD.4729) 5438 0 R (HD.473) 746 0 R (HD.4730) 5439 0 R (HD.4731) 5440 0 R (HD.4732) 5441 0 R (HD.4733) 5442 0 R (HD.4734) 5443 0 R (HD.4735) 5444 0 R (HD.4736) 5445 0 R (HD.4737) 5446 0 R (HD.4738) 5447 0 R (HD.4739) 5448 0 R (HD.474) 747 0 R ] /Limits [ (HD.4711) (HD.474) ] >>
endobj
11747 0 obj
-<< /Names [ (HD.1900) 2334 0 R (HD.1901) 2335 0 R (HD.1902) 2336 0 R (HD.1903) 2337 0 R (HD.1904) 2338 0 R (HD.1905) 2339 0 R (HD.1906) 2340 0 R (HD.1907) 2341 0 R (HD.1908) 2342 0 R (HD.1909) 2343 0 R (HD.191) 405 0 R (HD.1910) 2344 0 R (HD.1911) 2345 0 R (HD.1912) 2346 0 R (HD.1913) 2347 0 R (HD.1914) 2348 0 R (HD.1915) 2349 0 R (HD.1916) 2350 0 R (HD.1917) 2351 0 R (HD.1918) 2352 0 R (HD.1919) 2353 0 R (HD.192) 406 0 R (HD.1920) 2354 0 R (HD.1921) 2355 0 R (HD.1922) 2356 0 R (HD.1923) 2357 0 R (HD.1924) 2358 0 R (HD.1925) 2359 0 R (HD.1926) 2360 0 R (HD.1927) 2361 0 R (HD.1928) 2362 0 R (HD.1929) 2363 0 R ] /Limits [ (HD.1900) (HD.1929) ] >>
+<< /Names [ (HD.4740) 5449 0 R (HD.4741) 5450 0 R (HD.4742) 5451 0 R (HD.4743) 5452 0 R (HD.4744) 5453 0 R (HD.4745) 5454 0 R (HD.4746) 5455 0 R (HD.4747) 5456 0 R (HD.4748) 5457 0 R (HD.4749) 5458 0 R (HD.475) 748 0 R (HD.4750) 5459 0 R (HD.4751) 5460 0 R (HD.4752) 5461 0 R (HD.4753) 5462 0 R (HD.4754) 5463 0 R (HD.4755) 5464 0 R (HD.4756) 5465 0 R (HD.4757) 5466 0 R (HD.4758) 5467 0 R (HD.4759) 5468 0 R (HD.476) 749 0 R (HD.4760) 5469 0 R (HD.4761) 5470 0 R (HD.4762) 5471 0 R (HD.4763) 5472 0 R (HD.4764) 5473 0 R (HD.4765) 5474 0 R (HD.4766) 5475 0 R (HD.4767) 5476 0 R (HD.4768) 5477 0 R (HD.4769) 5478 0 R ] /Limits [ (HD.4740) (HD.4769) ] >>
endobj
11748 0 obj
-<< /Names [ (HD.193) 407 0 R (HD.1930) 2371 0 R (HD.1931) 2372 0 R (HD.1932) 2373 0 R (HD.1933) 2374 0 R (HD.1934) 2375 0 R (HD.1935) 2376 0 R (HD.1936) 2377 0 R (HD.1937) 2378 0 R (HD.1938) 2379 0 R (HD.1939) 2380 0 R (HD.194) 408 0 R (HD.1940) 2381 0 R (HD.1941) 2382 0 R (HD.1942) 2383 0 R (HD.1943) 2384 0 R (HD.1944) 2385 0 R (HD.1945) 2386 0 R (HD.1946) 2387 0 R (HD.1947) 2388 0 R (HD.1948) 2389 0 R (HD.1949) 2390 0 R (HD.195) 409 0 R (HD.1950) 2391 0 R (HD.1951) 2392 0 R (HD.1952) 2393 0 R (HD.1953) 2394 0 R (HD.1954) 2395 0 R (HD.1955) 2396 0 R (HD.1956) 2397 0 R (HD.1957) 2398 0 R (HD.1958) 2399 0 R ] /Limits [ (HD.193) (HD.1958) ] >>
+<< /Names [ (HD.477) 750 0 R (HD.4770) 5479 0 R (HD.4771) 5480 0 R (HD.4772) 5485 0 R (HD.4773) 5486 0 R (HD.4774) 5487 0 R (HD.4775) 5488 0 R (HD.4776) 5489 0 R (HD.4777) 5490 0 R (HD.4778) 5491 0 R (HD.4779) 5492 0 R (HD.478) 751 0 R (HD.4780) 5493 0 R (HD.4781) 5494 0 R (HD.4782) 5495 0 R (HD.4783) 5496 0 R (HD.4784) 5497 0 R (HD.4785) 5498 0 R (HD.4786) 5499 0 R (HD.4787) 5500 0 R (HD.4788) 5501 0 R (HD.4789) 5502 0 R (HD.479) 752 0 R (HD.4790) 5503 0 R (HD.4791) 5504 0 R (HD.4792) 5505 0 R (HD.4793) 5506 0 R (HD.4794) 5507 0 R (HD.4795) 5508 0 R (HD.4796) 5509 0 R (HD.4797) 5510 0 R (HD.4798) 5511 0 R ] /Limits [ (HD.477) (HD.4798) ] >>
endobj
11749 0 obj
-<< /Names [ (HD.1959) 2400 0 R (HD.196) 410 0 R (HD.1960) 2401 0 R (HD.1961) 2402 0 R (HD.1962) 2403 0 R (HD.1963) 2404 0 R (HD.1964) 2405 0 R (HD.1965) 2412 0 R (HD.1966) 2413 0 R (HD.1967) 2414 0 R (HD.1968) 2415 0 R (HD.1969) 2416 0 R (HD.197) 411 0 R (HD.1970) 2417 0 R (HD.1971) 2418 0 R (HD.1972) 2419 0 R (HD.1973) 2420 0 R (HD.1974) 2421 0 R (HD.1975) 2422 0 R (HD.1976) 2423 0 R (HD.1977) 2424 0 R (HD.1978) 2425 0 R (HD.1979) 2426 0 R (HD.198) 412 0 R (HD.1980) 2427 0 R (HD.1981) 2428 0 R (HD.1982) 2429 0 R (HD.1983) 2430 0 R (HD.1984) 2431 0 R (HD.1985) 2432 0 R (HD.1986) 2433 0 R (HD.1987) 2434 0 R ] /Limits [ (HD.1959) (HD.1987) ] >>
+<< /Names [ (HD.4799) 5512 0 R (HD.48) 239 0 R (HD.480) 753 0 R (HD.4800) 5513 0 R (HD.4801) 5514 0 R (HD.4802) 5515 0 R (HD.4803) 5516 0 R (HD.4804) 5517 0 R (HD.4805) 5518 0 R (HD.4806) 5519 0 R (HD.4807) 5520 0 R (HD.4808) 5521 0 R (HD.4809) 5522 0 R (HD.481) 754 0 R (HD.4810) 5523 0 R (HD.4811) 5524 0 R (HD.4812) 5525 0 R (HD.4813) 5526 0 R (HD.4814) 5527 0 R (HD.4815) 5528 0 R (HD.4816) 5529 0 R (HD.4817) 5530 0 R (HD.4818) 5531 0 R (HD.4819) 5532 0 R (HD.482) 755 0 R (HD.4820) 5533 0 R (HD.4821) 5534 0 R (HD.4822) 5535 0 R (HD.4823) 5536 0 R (HD.4824) 5537 0 R (HD.4825) 5538 0 R (HD.4826) 5539 0 R ] /Limits [ (HD.4799) (HD.4826) ] >>
endobj
11750 0 obj
-<< /Names [ (HD.1988) 2435 0 R (HD.1989) 2436 0 R (HD.199) 413 0 R (HD.1990) 2437 0 R (HD.1991) 2438 0 R (HD.1992) 2439 0 R (HD.1993) 2440 0 R (HD.1994) 2441 0 R (HD.1995) 2442 0 R (HD.1996) 2443 0 R (HD.1997) 2444 0 R (HD.1998) 2445 0 R (HD.1999) 2446 0 R (HD.2) 190 0 R (HD.20) 215 0 R (HD.200) 414 0 R (HD.2000) 2447 0 R (HD.2001) 2448 0 R (HD.2002) 2449 0 R (HD.2003) 2450 0 R (HD.2004) 2451 0 R (HD.2005) 2452 0 R (HD.2006) 2453 0 R (HD.2007) 2454 0 R (HD.2008) 2460 0 R (HD.2009) 2461 0 R (HD.201) 415 0 R (HD.2010) 2462 0 R (HD.2011) 2463 0 R (HD.2012) 2464 0 R (HD.2013) 2465 0 R (HD.2014) 2466 0 R ] /Limits [ (HD.1988) (HD.2014) ] >>
+<< /Names [ (HD.4827) 5544 0 R (HD.4828) 5545 0 R (HD.4829) 5546 0 R (HD.483) 762 0 R (HD.4830) 5547 0 R (HD.4831) 5548 0 R (HD.4832) 5549 0 R (HD.4833) 5550 0 R (HD.4834) 5551 0 R (HD.4835) 5552 0 R (HD.4836) 5553 0 R (HD.4837) 5554 0 R (HD.4838) 5555 0 R (HD.4839) 5556 0 R (HD.484) 763 0 R (HD.4840) 5557 0 R (HD.4841) 5558 0 R (HD.4842) 5559 0 R (HD.4843) 5560 0 R (HD.4844) 5561 0 R (HD.4845) 5562 0 R (HD.4846) 5563 0 R (HD.4847) 5564 0 R (HD.4848) 5565 0 R (HD.4849) 5566 0 R (HD.485) 764 0 R (HD.4850) 5567 0 R (HD.4851) 5568 0 R (HD.4852) 5569 0 R (HD.4853) 5570 0 R (HD.4854) 5571 0 R (HD.4855) 5572 0 R ] /Limits [ (HD.4827) (HD.4855) ] >>
endobj
11751 0 obj
-<< /Names [ (HD.2015) 2467 0 R (HD.2016) 2468 0 R (HD.2017) 2469 0 R (HD.2018) 2470 0 R (HD.2019) 2471 0 R (HD.202) 416 0 R (HD.2020) 2472 0 R (HD.2021) 2473 0 R (HD.2022) 2474 0 R (HD.2023) 2475 0 R (HD.2024) 2476 0 R (HD.2025) 2477 0 R (HD.2026) 2478 0 R (HD.2027) 2479 0 R (HD.2028) 2480 0 R (HD.2029) 2481 0 R (HD.203) 417 0 R (HD.2030) 2482 0 R (HD.2031) 2483 0 R (HD.2032) 2484 0 R (HD.2033) 2485 0 R (HD.2034) 2486 0 R (HD.2035) 2487 0 R (HD.2036) 2488 0 R (HD.2037) 2489 0 R (HD.2038) 2490 0 R (HD.2039) 2491 0 R (HD.204) 418 0 R (HD.2040) 2492 0 R (HD.2041) 2493 0 R (HD.2042) 2494 0 R (HD.2043) 2495 0 R ] /Limits [ (HD.2015) (HD.2043) ] >>
+<< /Names [ (HD.4856) 5573 0 R (HD.4857) 5574 0 R (HD.4858) 5575 0 R (HD.4859) 5576 0 R (HD.486) 765 0 R (HD.4860) 5577 0 R (HD.4861) 5578 0 R (HD.4862) 5579 0 R (HD.4863) 5580 0 R (HD.4864) 5581 0 R (HD.4865) 5582 0 R (HD.4866) 5583 0 R (HD.4867) 5584 0 R (HD.4868) 5585 0 R (HD.4869) 5586 0 R (HD.487) 766 0 R (HD.4870) 5587 0 R (HD.4871) 5588 0 R (HD.4872) 5589 0 R (HD.4873) 5590 0 R (HD.4874) 5591 0 R (HD.4875) 5592 0 R (HD.4876) 5593 0 R (HD.4877) 5594 0 R (HD.4878) 5595 0 R (HD.4879) 5596 0 R (HD.488) 767 0 R (HD.4880) 5597 0 R (HD.4881) 5598 0 R (HD.4882) 5599 0 R (HD.4883) 5600 0 R (HD.4884) 5601 0 R ] /Limits [ (HD.4856) (HD.4884) ] >>
endobj
11752 0 obj
-<< /Names [ (HD.2044) 2496 0 R (HD.2045) 2497 0 R (HD.2046) 2498 0 R (HD.2047) 2499 0 R (HD.2048) 2500 0 R (HD.2049) 2501 0 R (HD.205) 419 0 R (HD.2050) 2502 0 R (HD.2051) 2503 0 R (HD.2052) 2504 0 R (HD.2053) 2505 0 R (HD.2054) 2506 0 R (HD.2055) 2507 0 R (HD.2056) 2516 0 R (HD.2057) 2517 0 R (HD.2058) 2518 0 R (HD.2059) 2519 0 R (HD.206) 420 0 R (HD.2060) 2520 0 R (HD.2061) 2521 0 R (HD.2062) 2522 0 R (HD.2063) 2523 0 R (HD.2064) 2524 0 R (HD.2065) 2525 0 R (HD.2066) 2526 0 R (HD.2067) 2527 0 R (HD.2068) 2528 0 R (HD.2069) 2529 0 R (HD.207) 421 0 R (HD.2070) 2530 0 R (HD.2071) 2531 0 R (HD.2072) 2532 0 R ] /Limits [ (HD.2044) (HD.2072) ] >>
+<< /Names [ (HD.4885) 5602 0 R (HD.4886) 5603 0 R (HD.4887) 5604 0 R (HD.4888) 5605 0 R (HD.4889) 5610 0 R (HD.489) 768 0 R (HD.4890) 5611 0 R (HD.4891) 5612 0 R (HD.4892) 5613 0 R (HD.4893) 5614 0 R (HD.4894) 5615 0 R (HD.4895) 5616 0 R (HD.4896) 5617 0 R (HD.4897) 5618 0 R (HD.4898) 5619 0 R (HD.4899) 5620 0 R (HD.49) 240 0 R (HD.490) 769 0 R (HD.4900) 5621 0 R (HD.4901) 5622 0 R (HD.4902) 5623 0 R (HD.4903) 5624 0 R (HD.4904) 5625 0 R (HD.4905) 5626 0 R (HD.4906) 5627 0 R (HD.4907) 5628 0 R (HD.4908) 5629 0 R (HD.4909) 5630 0 R (HD.491) 770 0 R (HD.4910) 5631 0 R (HD.4911) 5632 0 R (HD.4912) 5633 0 R ] /Limits [ (HD.4885) (HD.4912) ] >>
endobj
11753 0 obj
-<< /Names [ (HD.2073) 2533 0 R (HD.2074) 2534 0 R (HD.2075) 2535 0 R (HD.2076) 2536 0 R (HD.2077) 2537 0 R (HD.2078) 2538 0 R (HD.2079) 2539 0 R (HD.208) 422 0 R (HD.2080) 2540 0 R (HD.2081) 2541 0 R (HD.2082) 2542 0 R (HD.2083) 2543 0 R (HD.2084) 2544 0 R (HD.2085) 2545 0 R (HD.2086) 2546 0 R (HD.2087) 2547 0 R (HD.2088) 2548 0 R (HD.2089) 2549 0 R (HD.209) 423 0 R (HD.2090) 2550 0 R (HD.2091) 2551 0 R (HD.2092) 2552 0 R (HD.2093) 2553 0 R (HD.2094) 2554 0 R (HD.2095) 2555 0 R (HD.2096) 2556 0 R (HD.2097) 2557 0 R (HD.2098) 2558 0 R (HD.2099) 2559 0 R (HD.21) 216 0 R (HD.210) 424 0 R (HD.2100) 2560 0 R ] /Limits [ (HD.2073) (HD.2100) ] >>
+<< /Names [ (HD.4913) 5634 0 R (HD.4914) 5635 0 R (HD.4915) 5636 0 R (HD.4916) 5637 0 R (HD.4917) 5638 0 R (HD.4918) 5639 0 R (HD.4919) 5640 0 R (HD.492) 771 0 R (HD.4920) 5641 0 R (HD.4921) 5642 0 R (HD.4922) 5643 0 R (HD.4923) 5644 0 R (HD.4924) 5645 0 R (HD.4925) 5646 0 R (HD.4926) 5647 0 R (HD.4927) 5648 0 R (HD.4928) 5649 0 R (HD.4929) 5650 0 R (HD.493) 772 0 R (HD.4930) 5651 0 R (HD.4931) 5652 0 R (HD.4932) 5653 0 R (HD.4933) 5654 0 R (HD.4934) 5659 0 R (HD.4935) 5660 0 R (HD.4936) 5661 0 R (HD.4937) 5662 0 R (HD.4938) 5663 0 R (HD.4939) 5664 0 R (HD.494) 773 0 R (HD.4940) 5665 0 R (HD.4941) 5666 0 R ] /Limits [ (HD.4913) (HD.4941) ] >>
endobj
11754 0 obj
-<< /Names [ (HD.2101) 2568 0 R (HD.2102) 2569 0 R (HD.2103) 2570 0 R (HD.2104) 2571 0 R (HD.2105) 2572 0 R (HD.2106) 2573 0 R (HD.2107) 2574 0 R (HD.2108) 2575 0 R (HD.2109) 2576 0 R (HD.211) 425 0 R (HD.2110) 2577 0 R (HD.2111) 2578 0 R (HD.2112) 2579 0 R (HD.2113) 2580 0 R (HD.2114) 2581 0 R (HD.2115) 2582 0 R (HD.2116) 2583 0 R (HD.2117) 2584 0 R (HD.2118) 2585 0 R (HD.2119) 2586 0 R (HD.212) 426 0 R (HD.2120) 2587 0 R (HD.2121) 2588 0 R (HD.2122) 2589 0 R (HD.2123) 2590 0 R (HD.2124) 2591 0 R (HD.2125) 2592 0 R (HD.2126) 2593 0 R (HD.2127) 2594 0 R (HD.2128) 2595 0 R (HD.2129) 2596 0 R (HD.213) 427 0 R ] /Limits [ (HD.2101) (HD.213) ] >>
+<< /Names [ (HD.4942) 5667 0 R (HD.4943) 5668 0 R (HD.4944) 5669 0 R (HD.4945) 5670 0 R (HD.4946) 5671 0 R (HD.4947) 5672 0 R (HD.4948) 5673 0 R (HD.4949) 5674 0 R (HD.495) 774 0 R (HD.4950) 5675 0 R (HD.4951) 5676 0 R (HD.4952) 5677 0 R (HD.4953) 5678 0 R (HD.4954) 5679 0 R (HD.4955) 5680 0 R (HD.4956) 5681 0 R (HD.4957) 5682 0 R (HD.4958) 5683 0 R (HD.4959) 5684 0 R (HD.496) 775 0 R (HD.4960) 5685 0 R (HD.4961) 5686 0 R (HD.4962) 5687 0 R (HD.4963) 5688 0 R (HD.4964) 5689 0 R (HD.4965) 5690 0 R (HD.4966) 5691 0 R (HD.4967) 5692 0 R (HD.4968) 5693 0 R (HD.4969) 5694 0 R (HD.497) 782 0 R (HD.4970) 5695 0 R ] /Limits [ (HD.4942) (HD.4970) ] >>
endobj
11755 0 obj
-<< /Names [ (HD.2130) 2597 0 R (HD.2131) 2598 0 R (HD.2132) 2599 0 R (HD.2133) 2600 0 R (HD.2134) 2601 0 R (HD.2135) 2602 0 R (HD.2136) 2603 0 R (HD.2137) 2604 0 R (HD.2138) 2610 0 R (HD.2139) 2611 0 R (HD.214) 428 0 R (HD.2140) 2612 0 R (HD.2141) 2613 0 R (HD.2142) 2614 0 R (HD.2143) 2615 0 R (HD.2144) 2616 0 R (HD.2145) 2617 0 R (HD.2146) 2618 0 R (HD.2147) 2619 0 R (HD.2148) 2620 0 R (HD.2149) 2621 0 R (HD.215) 434 0 R (HD.2150) 2622 0 R (HD.2151) 2623 0 R (HD.2152) 2624 0 R (HD.2153) 2625 0 R (HD.2154) 2626 0 R (HD.2155) 2627 0 R (HD.2156) 2628 0 R (HD.2157) 2629 0 R (HD.2158) 2630 0 R (HD.2159) 2631 0 R ] /Limits [ (HD.2130) (HD.2159) ] >>
+<< /Names [ (HD.4971) 5696 0 R (HD.4972) 5697 0 R (HD.4973) 5698 0 R (HD.4974) 5699 0 R (HD.4975) 5700 0 R (HD.4976) 5701 0 R (HD.4977) 5702 0 R (HD.4978) 5703 0 R (HD.4979) 5704 0 R (HD.498) 783 0 R (HD.4980) 5705 0 R (HD.4981) 5706 0 R (HD.4982) 5707 0 R (HD.4983) 5708 0 R (HD.4984) 5709 0 R (HD.4985) 5710 0 R (HD.4986) 5711 0 R (HD.4987) 5712 0 R (HD.4988) 5713 0 R (HD.4989) 5714 0 R (HD.499) 784 0 R (HD.4990) 5715 0 R (HD.4991) 5716 0 R (HD.4992) 5721 0 R (HD.4993) 5722 0 R (HD.4994) 5723 0 R (HD.4995) 5724 0 R (HD.4996) 5725 0 R (HD.4997) 5726 0 R (HD.4998) 5727 0 R (HD.4999) 5728 0 R (HD.5) 189 0 R ] /Limits [ (HD.4971) (HD.5) ] >>
endobj
11756 0 obj
-<< /Names [ (HD.216) 435 0 R (HD.2160) 2632 0 R (HD.2161) 2633 0 R (HD.2162) 2634 0 R (HD.2163) 2635 0 R (HD.2164) 2636 0 R (HD.2165) 2637 0 R (HD.2166) 2638 0 R (HD.2167) 2639 0 R (HD.2168) 2640 0 R (HD.2169) 2641 0 R (HD.217) 436 0 R (HD.2170) 2642 0 R (HD.2171) 2643 0 R (HD.2172) 2644 0 R (HD.2173) 2645 0 R (HD.2174) 2646 0 R (HD.2175) 2647 0 R (HD.2176) 2648 0 R (HD.2177) 2649 0 R (HD.2178) 2650 0 R (HD.2179) 2651 0 R (HD.218) 437 0 R (HD.2180) 2652 0 R (HD.2181) 2653 0 R (HD.2182) 2659 0 R (HD.2183) 2660 0 R (HD.2184) 2661 0 R (HD.2185) 2662 0 R (HD.2186) 2663 0 R (HD.2187) 2664 0 R (HD.2188) 2665 0 R ] /Limits [ (HD.216) (HD.2188) ] >>
+<< /Names [ (HD.50) 241 0 R (HD.500) 785 0 R (HD.5000) 5729 0 R (HD.5001) 5730 0 R (HD.5002) 5731 0 R (HD.5003) 5732 0 R (HD.5004) 5733 0 R (HD.5005) 5734 0 R (HD.5006) 5735 0 R (HD.5007) 5736 0 R (HD.5008) 5737 0 R (HD.5009) 5738 0 R (HD.501) 786 0 R (HD.5010) 5739 0 R (HD.5011) 5740 0 R (HD.5012) 5741 0 R (HD.5013) 5742 0 R (HD.5014) 5743 0 R (HD.5015) 5744 0 R (HD.5016) 5745 0 R (HD.5017) 5746 0 R (HD.5018) 5747 0 R (HD.5019) 5748 0 R (HD.502) 787 0 R (HD.5020) 5749 0 R (HD.5021) 5750 0 R (HD.5022) 5751 0 R (HD.5023) 5752 0 R (HD.5024) 5753 0 R (HD.5025) 5754 0 R (HD.5026) 5755 0 R (HD.5027) 5756 0 R ] /Limits [ (HD.50) (HD.5027) ] >>
endobj
11757 0 obj
-<< /Names [ (HD.2189) 2666 0 R (HD.219) 438 0 R (HD.2190) 2667 0 R (HD.2191) 2668 0 R (HD.2192) 2669 0 R (HD.2193) 2670 0 R (HD.2194) 2671 0 R (HD.2195) 2672 0 R (HD.2196) 2673 0 R (HD.2197) 2674 0 R (HD.2198) 2675 0 R (HD.2199) 2676 0 R (HD.22) 217 0 R (HD.220) 439 0 R (HD.2200) 2677 0 R (HD.2201) 2678 0 R (HD.2202) 2679 0 R (HD.2203) 2680 0 R (HD.2204) 2681 0 R (HD.2205) 2682 0 R (HD.2206) 2683 0 R (HD.2207) 2684 0 R (HD.2208) 2685 0 R (HD.2209) 2686 0 R (HD.221) 440 0 R (HD.2210) 2687 0 R (HD.2211) 2688 0 R (HD.2212) 2689 0 R (HD.2213) 2690 0 R (HD.2214) 2691 0 R (HD.2215) 2692 0 R (HD.2216) 2693 0 R ] /Limits [ (HD.2189) (HD.2216) ] >>
+<< /Names [ (HD.5028) 5757 0 R (HD.5029) 5758 0 R (HD.503) 788 0 R (HD.5030) 5759 0 R (HD.5031) 5760 0 R (HD.5032) 5761 0 R (HD.5033) 5762 0 R (HD.5034) 5763 0 R (HD.5035) 5764 0 R (HD.5036) 5765 0 R (HD.5037) 5766 0 R (HD.5038) 5767 0 R (HD.5039) 5768 0 R (HD.504) 789 0 R (HD.5040) 5774 0 R (HD.5041) 5775 0 R (HD.5042) 5776 0 R (HD.5043) 5777 0 R (HD.5044) 5778 0 R (HD.5045) 5779 0 R (HD.5046) 5780 0 R (HD.5047) 5781 0 R (HD.5048) 5782 0 R (HD.5049) 5783 0 R (HD.505) 790 0 R (HD.5050) 5784 0 R (HD.5051) 5785 0 R (HD.5052) 5786 0 R (HD.5053) 5787 0 R (HD.5054) 5788 0 R (HD.5055) 5789 0 R (HD.5056) 5790 0 R ] /Limits [ (HD.5028) (HD.5056) ] >>
endobj
11758 0 obj
-<< /Names [ (HD.2217) 2694 0 R (HD.2218) 2695 0 R (HD.2219) 2696 0 R (HD.222) 441 0 R (HD.2220) 2697 0 R (HD.2221) 2698 0 R (HD.2222) 2699 0 R (HD.2223) 2700 0 R (HD.2224) 2701 0 R (HD.2225) 2702 0 R (HD.2226) 2703 0 R (HD.2227) 2708 0 R (HD.2228) 2709 0 R (HD.2229) 2710 0 R (HD.223) 442 0 R (HD.2230) 2711 0 R (HD.2231) 2712 0 R (HD.2232) 2713 0 R (HD.2233) 2714 0 R (HD.2234) 2715 0 R (HD.2235) 2716 0 R (HD.2236) 2717 0 R (HD.2237) 2718 0 R (HD.2238) 2719 0 R (HD.2239) 2720 0 R (HD.224) 443 0 R (HD.2240) 2721 0 R (HD.2241) 2722 0 R (HD.2242) 2723 0 R (HD.2243) 2724 0 R (HD.2244) 2725 0 R (HD.2245) 2726 0 R ] /Limits [ (HD.2217) (HD.2245) ] >>
+<< /Names [ (HD.5057) 5791 0 R (HD.5058) 5792 0 R (HD.5059) 5793 0 R (HD.506) 791 0 R (HD.5060) 5794 0 R (HD.5061) 5795 0 R (HD.5062) 5796 0 R (HD.5063) 5797 0 R (HD.5064) 5798 0 R (HD.5065) 5799 0 R (HD.5066) 5800 0 R (HD.5067) 5801 0 R (HD.5068) 5802 0 R (HD.5069) 5803 0 R (HD.507) 792 0 R (HD.5070) 5804 0 R (HD.5071) 5805 0 R (HD.5072) 5806 0 R (HD.5073) 5807 0 R (HD.5074) 5808 0 R (HD.5075) 5809 0 R (HD.5076) 5810 0 R (HD.5077) 5811 0 R (HD.5078) 5812 0 R (HD.5079) 5813 0 R (HD.508) 793 0 R (HD.5080) 5814 0 R (HD.5081) 5815 0 R (HD.5082) 5816 0 R (HD.5083) 5817 0 R (HD.5084) 5818 0 R (HD.5085) 5819 0 R ] /Limits [ (HD.5057) (HD.5085) ] >>
endobj
11759 0 obj
-<< /Names [ (HD.2246) 2727 0 R (HD.2247) 2728 0 R (HD.2248) 2729 0 R (HD.2249) 2730 0 R (HD.225) 444 0 R (HD.2250) 2731 0 R (HD.2251) 2732 0 R (HD.2252) 2733 0 R (HD.2253) 2734 0 R (HD.2254) 2735 0 R (HD.2255) 2736 0 R (HD.2256) 2737 0 R (HD.2257) 2738 0 R (HD.2258) 2739 0 R (HD.2259) 2740 0 R (HD.226) 445 0 R (HD.2260) 2741 0 R (HD.2261) 2742 0 R (HD.2262) 2743 0 R (HD.2263) 2744 0 R (HD.2264) 2745 0 R (HD.2265) 2746 0 R (HD.2266) 2747 0 R (HD.2267) 2748 0 R (HD.2268) 2749 0 R (HD.2269) 2750 0 R (HD.227) 446 0 R (HD.2270) 2751 0 R (HD.2271) 2752 0 R (HD.2272) 2753 0 R (HD.2273) 2754 0 R (HD.2274) 2755 0 R ] /Limits [ (HD.2246) (HD.2274) ] >>
+<< /Names [ (HD.5086) 5820 0 R (HD.5087) 5821 0 R (HD.5088) 5822 0 R (HD.5089) 5823 0 R (HD.509) 794 0 R (HD.5090) 5824 0 R (HD.5091) 5825 0 R (HD.5092) 5826 0 R (HD.5093) 5831 0 R (HD.5094) 5832 0 R (HD.5095) 5833 0 R (HD.5096) 5834 0 R (HD.5097) 5835 0 R (HD.5098) 5836 0 R (HD.5099) 5837 0 R (HD.51) 242 0 R (HD.510) 795 0 R (HD.5100) 5838 0 R (HD.5101) 5839 0 R (HD.5102) 5840 0 R (HD.5103) 5841 0 R (HD.5104) 5842 0 R (HD.5105) 5843 0 R (HD.5106) 5844 0 R (HD.5107) 5845 0 R (HD.5108) 5846 0 R (HD.5109) 5847 0 R (HD.511) 796 0 R (HD.5110) 5848 0 R (HD.5111) 5849 0 R (HD.5112) 5850 0 R (HD.5113) 5851 0 R ] /Limits [ (HD.5086) (HD.5113) ] >>
endobj
11760 0 obj
-<< /Names [ (HD.2275) 2756 0 R (HD.2276) 2757 0 R (HD.2277) 2765 0 R (HD.2278) 2766 0 R (HD.2279) 2767 0 R (HD.228) 447 0 R (HD.2280) 2768 0 R (HD.2281) 2769 0 R (HD.2282) 2770 0 R (HD.2283) 2771 0 R (HD.2284) 2772 0 R (HD.2285) 2773 0 R (HD.2286) 2774 0 R (HD.2287) 2775 0 R (HD.2288) 2776 0 R (HD.2289) 2777 0 R (HD.229) 448 0 R (HD.2290) 2778 0 R (HD.2291) 2779 0 R (HD.2292) 2780 0 R (HD.2293) 2781 0 R (HD.2294) 2782 0 R (HD.2295) 2783 0 R (HD.2296) 2784 0 R (HD.2297) 2785 0 R (HD.2298) 2786 0 R (HD.2299) 2787 0 R (HD.23) 218 0 R (HD.230) 449 0 R (HD.2300) 2788 0 R (HD.2301) 2789 0 R (HD.2302) 2790 0 R ] /Limits [ (HD.2275) (HD.2302) ] >>
+<< /Names [ (HD.5114) 5852 0 R (HD.5115) 5853 0 R (HD.5116) 5854 0 R (HD.5117) 5855 0 R (HD.5118) 5856 0 R (HD.5119) 5857 0 R (HD.512) 797 0 R (HD.5120) 5858 0 R (HD.5121) 5859 0 R (HD.5122) 5860 0 R (HD.5123) 5861 0 R (HD.5124) 5862 0 R (HD.5125) 5863 0 R (HD.5126) 5864 0 R (HD.5127) 5865 0 R (HD.5128) 5866 0 R (HD.5129) 5867 0 R (HD.513) 798 0 R (HD.5130) 5868 0 R (HD.5131) 5869 0 R (HD.5132) 5870 0 R (HD.5133) 5871 0 R (HD.5134) 5872 0 R (HD.5135) 5873 0 R (HD.5136) 5874 0 R (HD.5137) 5875 0 R (HD.5138) 5876 0 R (HD.5139) 5877 0 R (HD.514) 799 0 R (HD.5140) 5878 0 R (HD.5141) 5879 0 R (HD.5142) 5880 0 R ] /Limits [ (HD.5114) (HD.5142) ] >>
endobj
11761 0 obj
-<< /Names [ (HD.2303) 2791 0 R (HD.2304) 2792 0 R (HD.2305) 2793 0 R (HD.2306) 2794 0 R (HD.2307) 2795 0 R (HD.2308) 2796 0 R (HD.2309) 2797 0 R (HD.231) 450 0 R (HD.2310) 2798 0 R (HD.2311) 2799 0 R (HD.2312) 2800 0 R (HD.2313) 2801 0 R (HD.2314) 2802 0 R (HD.2315) 2803 0 R (HD.2316) 2804 0 R (HD.2317) 2805 0 R (HD.2318) 2806 0 R (HD.2319) 2807 0 R (HD.232) 451 0 R (HD.2320) 2808 0 R (HD.2321) 2809 0 R (HD.2322) 2810 0 R (HD.2323) 2811 0 R (HD.2324) 2812 0 R (HD.2325) 2813 0 R (HD.2326) 2814 0 R (HD.2327) 2815 0 R (HD.2328) 2820 0 R (HD.2329) 2821 0 R (HD.233) 452 0 R (HD.2330) 2822 0 R (HD.2331) 2823 0 R ] /Limits [ (HD.2303) (HD.2331) ] >>
+<< /Names [ (HD.5143) 5881 0 R (HD.5144) 5882 0 R (HD.5145) 5883 0 R (HD.5146) 5884 0 R (HD.5147) 5885 0 R (HD.5148) 5886 0 R (HD.5149) 5887 0 R (HD.515) 800 0 R (HD.5150) 5892 0 R (HD.5151) 5893 0 R (HD.5152) 5894 0 R (HD.5153) 5895 0 R (HD.5154) 5896 0 R (HD.5155) 5897 0 R (HD.5156) 5898 0 R (HD.5157) 5899 0 R (HD.5158) 5900 0 R (HD.5159) 5901 0 R (HD.516) 801 0 R (HD.5160) 5902 0 R (HD.5161) 5903 0 R (HD.5162) 5904 0 R (HD.5163) 5905 0 R (HD.5164) 5906 0 R (HD.5165) 5907 0 R (HD.5166) 5908 0 R (HD.5167) 5909 0 R (HD.5168) 5910 0 R (HD.5169) 5911 0 R (HD.517) 802 0 R (HD.5170) 5912 0 R (HD.5171) 5913 0 R ] /Limits [ (HD.5143) (HD.5171) ] >>
endobj
11762 0 obj
-<< /Names [ (HD.2332) 2824 0 R (HD.2333) 2825 0 R (HD.2334) 2826 0 R (HD.2335) 2827 0 R (HD.2336) 2828 0 R (HD.2337) 2829 0 R (HD.2338) 2830 0 R (HD.2339) 2831 0 R (HD.234) 453 0 R (HD.2340) 2832 0 R (HD.2341) 2833 0 R (HD.2342) 2834 0 R (HD.2343) 2835 0 R (HD.2344) 2836 0 R (HD.2345) 2837 0 R (HD.2346) 2838 0 R (HD.2347) 2839 0 R (HD.2348) 2840 0 R (HD.2349) 2841 0 R (HD.235) 454 0 R (HD.2350) 2842 0 R (HD.2351) 2843 0 R (HD.2352) 2844 0 R (HD.2353) 2845 0 R (HD.2354) 2846 0 R (HD.2355) 2847 0 R (HD.2356) 2848 0 R (HD.2357) 2849 0 R (HD.2358) 2850 0 R (HD.2359) 2851 0 R (HD.236) 455 0 R (HD.2360) 2852 0 R ] /Limits [ (HD.2332) (HD.2360) ] >>
+<< /Names [ (HD.5172) 5914 0 R (HD.5173) 5915 0 R (HD.5174) 5916 0 R (HD.5175) 5917 0 R (HD.5176) 5918 0 R (HD.5177) 5919 0 R (HD.5178) 5920 0 R (HD.5179) 5921 0 R (HD.518) 803 0 R (HD.5180) 5922 0 R (HD.5181) 5923 0 R (HD.5182) 5924 0 R (HD.5183) 5925 0 R (HD.5184) 5926 0 R (HD.5185) 5927 0 R (HD.5186) 5928 0 R (HD.5187) 5929 0 R (HD.5188) 5930 0 R (HD.5189) 5931 0 R (HD.519) 804 0 R (HD.5190) 5932 0 R (HD.5191) 5933 0 R (HD.5192) 5934 0 R (HD.5193) 5935 0 R (HD.5194) 5936 0 R (HD.5195) 5937 0 R (HD.5196) 5938 0 R (HD.5197) 5939 0 R (HD.5198) 5940 0 R (HD.5199) 5941 0 R (HD.52) 243 0 R (HD.520) 805 0 R ] /Limits [ (HD.5172) (HD.520) ] >>
endobj
11763 0 obj
-<< /Names [ (HD.2361) 2853 0 R (HD.2362) 2854 0 R (HD.2363) 2855 0 R (HD.2364) 2856 0 R (HD.2365) 2857 0 R (HD.2366) 2858 0 R (HD.2367) 2859 0 R (HD.2368) 2860 0 R (HD.2369) 2861 0 R (HD.237) 456 0 R (HD.2370) 2862 0 R (HD.2371) 2863 0 R (HD.2372) 2864 0 R (HD.2373) 2865 0 R (HD.2374) 2866 0 R (HD.2375) 2867 0 R (HD.2376) 2868 0 R (HD.2377) 2869 0 R (HD.2378) 2870 0 R (HD.2379) 2871 0 R (HD.238) 457 0 R (HD.2380) 2872 0 R (HD.2381) 2873 0 R (HD.2382) 2874 0 R (HD.2383) 2875 0 R (HD.2384) 2880 0 R (HD.2385) 2881 0 R (HD.2386) 2882 0 R (HD.2387) 2883 0 R (HD.2388) 2884 0 R (HD.2389) 2885 0 R (HD.239) 458 0 R ] /Limits [ (HD.2361) (HD.239) ] >>
+<< /Names [ (HD.5200) 5942 0 R (HD.5201) 5943 0 R (HD.5202) 5944 0 R (HD.5203) 5945 0 R (HD.5204) 5946 0 R (HD.5205) 5947 0 R (HD.5206) 5948 0 R (HD.5207) 5949 0 R (HD.5208) 5950 0 R (HD.5209) 5956 0 R (HD.521) 806 0 R (HD.5210) 5957 0 R (HD.5211) 5958 0 R (HD.5212) 5959 0 R (HD.5213) 5960 0 R (HD.5214) 5961 0 R (HD.5215) 5962 0 R (HD.5216) 5963 0 R (HD.5217) 5964 0 R (HD.5218) 5965 0 R (HD.5219) 5966 0 R (HD.522) 807 0 R (HD.5220) 5967 0 R (HD.5221) 5968 0 R (HD.5222) 5969 0 R (HD.5223) 5970 0 R (HD.5224) 5971 0 R (HD.5225) 5972 0 R (HD.5226) 5973 0 R (HD.5227) 5974 0 R (HD.5228) 5975 0 R (HD.5229) 5976 0 R ] /Limits [ (HD.5200) (HD.5229) ] >>
endobj
11764 0 obj
-<< /Names [ (HD.2390) 2886 0 R (HD.2391) 2887 0 R (HD.2392) 2888 0 R (HD.2393) 2889 0 R (HD.2394) 2890 0 R (HD.2395) 2891 0 R (HD.2396) 2892 0 R (HD.2397) 2893 0 R (HD.2398) 2894 0 R (HD.2399) 2895 0 R (HD.24) 219 0 R (HD.240) 459 0 R (HD.2400) 2896 0 R (HD.2401) 2897 0 R (HD.2402) 2898 0 R (HD.2403) 2899 0 R (HD.2404) 2900 0 R (HD.2405) 2901 0 R (HD.2406) 2902 0 R (HD.2407) 2903 0 R (HD.2408) 2904 0 R (HD.2409) 2905 0 R (HD.241) 460 0 R (HD.2410) 2906 0 R (HD.2411) 2907 0 R (HD.2412) 2908 0 R (HD.2413) 2909 0 R (HD.2414) 2910 0 R (HD.2415) 2911 0 R (HD.2416) 2912 0 R (HD.2417) 2913 0 R (HD.2418) 2914 0 R ] /Limits [ (HD.2390) (HD.2418) ] >>
+<< /Names [ (HD.523) 808 0 R (HD.5230) 5977 0 R (HD.5231) 5978 0 R (HD.5232) 5979 0 R (HD.5233) 5980 0 R (HD.5234) 5981 0 R (HD.5235) 5982 0 R (HD.5236) 5989 0 R (HD.5237) 5990 0 R (HD.5238) 5991 0 R (HD.5239) 5992 0 R (HD.524) 809 0 R (HD.5240) 5993 0 R (HD.5241) 5994 0 R (HD.5242) 5995 0 R (HD.5243) 5996 0 R (HD.5244) 5997 0 R (HD.5245) 5998 0 R (HD.5246) 5999 0 R (HD.5247) 6000 0 R (HD.5248) 6001 0 R (HD.5249) 6002 0 R (HD.525) 810 0 R (HD.5250) 6003 0 R (HD.5251) 6004 0 R (HD.5252) 6005 0 R (HD.5253) 6006 0 R (HD.5254) 6007 0 R (HD.5255) 6008 0 R (HD.5256) 6009 0 R (HD.5257) 6010 0 R (HD.5258) 6011 0 R ] /Limits [ (HD.523) (HD.5258) ] >>
endobj
11765 0 obj
-<< /Names [ (HD.2419) 2915 0 R (HD.242) 461 0 R (HD.2420) 2916 0 R (HD.2421) 2917 0 R (HD.2422) 2918 0 R (HD.2423) 2919 0 R (HD.2424) 2920 0 R (HD.2425) 2921 0 R (HD.2426) 2922 0 R (HD.2427) 2923 0 R (HD.2428) 2924 0 R (HD.2429) 2925 0 R (HD.243) 462 0 R (HD.2430) 2926 0 R (HD.2431) 2927 0 R (HD.2432) 2932 0 R (HD.2433) 2933 0 R (HD.2434) 2934 0 R (HD.2435) 2935 0 R (HD.2436) 2936 0 R (HD.2437) 2937 0 R (HD.2438) 2938 0 R (HD.2439) 2939 0 R (HD.244) 463 0 R (HD.2440) 2940 0 R (HD.2441) 2941 0 R (HD.2442) 2942 0 R (HD.2443) 2943 0 R (HD.2444) 2944 0 R (HD.2445) 2945 0 R (HD.2446) 2946 0 R (HD.2447) 2947 0 R ] /Limits [ (HD.2419) (HD.2447) ] >>
+<< /Names [ (HD.5259) 6012 0 R (HD.526) 811 0 R (HD.5260) 6013 0 R (HD.5261) 6014 0 R (HD.5262) 6015 0 R (HD.5263) 6016 0 R (HD.5264) 6017 0 R (HD.5265) 6018 0 R (HD.5266) 6019 0 R (HD.5267) 6020 0 R (HD.5268) 6021 0 R (HD.5269) 6022 0 R (HD.527) 812 0 R (HD.5270) 6023 0 R (HD.5271) 6024 0 R (HD.5272) 6025 0 R (HD.5273) 6026 0 R (HD.5274) 6027 0 R (HD.5275) 6028 0 R (HD.5276) 6029 0 R (HD.5277) 6030 0 R (HD.5278) 6031 0 R (HD.5279) 6032 0 R (HD.528) 813 0 R (HD.5280) 6033 0 R (HD.5281) 6034 0 R (HD.5282) 6035 0 R (HD.5283) 6040 0 R (HD.5284) 6041 0 R (HD.5285) 6042 0 R (HD.5286) 6043 0 R (HD.5287) 6044 0 R ] /Limits [ (HD.5259) (HD.5287) ] >>
endobj
11766 0 obj
-<< /Names [ (HD.2448) 2948 0 R (HD.2449) 2949 0 R (HD.245) 464 0 R (HD.2450) 2950 0 R (HD.2451) 2951 0 R (HD.2452) 2952 0 R (HD.2453) 2953 0 R (HD.2454) 2954 0 R (HD.2455) 2955 0 R (HD.2456) 2956 0 R (HD.2457) 2957 0 R (HD.2458) 2958 0 R (HD.2459) 2959 0 R (HD.246) 465 0 R (HD.2460) 2960 0 R (HD.2461) 2961 0 R (HD.2462) 2962 0 R (HD.2463) 2963 0 R (HD.2464) 2964 0 R (HD.2465) 2965 0 R (HD.2466) 2970 0 R (HD.2467) 2971 0 R (HD.2468) 2972 0 R (HD.2469) 2973 0 R (HD.247) 466 0 R (HD.2470) 2974 0 R (HD.2471) 2975 0 R (HD.2472) 2976 0 R (HD.2473) 2977 0 R (HD.2474) 2978 0 R (HD.2475) 2979 0 R (HD.2476) 2980 0 R ] /Limits [ (HD.2448) (HD.2476) ] >>
+<< /Names [ (HD.5288) 6045 0 R (HD.5289) 6046 0 R (HD.529) 814 0 R (HD.5290) 6047 0 R (HD.5291) 6048 0 R (HD.5292) 6049 0 R (HD.5293) 6050 0 R (HD.5294) 6051 0 R (HD.5295) 6052 0 R (HD.5296) 6053 0 R (HD.5297) 6054 0 R (HD.5298) 6055 0 R (HD.5299) 6056 0 R (HD.53) 244 0 R (HD.530) 815 0 R (HD.5300) 6057 0 R (HD.5301) 6058 0 R (HD.5302) 6059 0 R (HD.5303) 6060 0 R (HD.5304) 6061 0 R (HD.5305) 6062 0 R (HD.5306) 6063 0 R (HD.5307) 6064 0 R (HD.5308) 6065 0 R (HD.5309) 6066 0 R (HD.531) 816 0 R (HD.5310) 6067 0 R (HD.5311) 6068 0 R (HD.5312) 6069 0 R (HD.5313) 6070 0 R (HD.5314) 6071 0 R (HD.5315) 6072 0 R ] /Limits [ (HD.5288) (HD.5315) ] >>
endobj
11767 0 obj
-<< /Names [ (HD.2477) 2981 0 R (HD.2478) 2982 0 R (HD.2479) 2983 0 R (HD.248) 467 0 R (HD.2480) 2984 0 R (HD.2481) 2985 0 R (HD.2482) 2986 0 R (HD.2483) 2987 0 R (HD.2484) 2988 0 R (HD.2485) 2989 0 R (HD.2486) 2990 0 R (HD.2487) 2991 0 R (HD.2488) 2992 0 R (HD.2489) 2993 0 R (HD.249) 468 0 R (HD.2490) 2994 0 R (HD.2491) 2995 0 R (HD.2492) 2996 0 R (HD.2493) 2997 0 R (HD.2494) 2998 0 R (HD.2495) 2999 0 R (HD.2496) 3000 0 R (HD.2497) 3001 0 R (HD.2498) 3002 0 R (HD.2499) 3003 0 R (HD.25) 220 0 R (HD.250) 469 0 R (HD.2500) 3004 0 R (HD.2501) 3005 0 R (HD.2502) 3006 0 R (HD.2503) 3007 0 R (HD.2504) 3008 0 R ] /Limits [ (HD.2477) (HD.2504) ] >>
+<< /Names [ (HD.5316) 6073 0 R (HD.5317) 6074 0 R (HD.5318) 6075 0 R (HD.5319) 6076 0 R (HD.532) 817 0 R (HD.5320) 6081 0 R (HD.5321) 6082 0 R (HD.5322) 6083 0 R (HD.5323) 6084 0 R (HD.5324) 6085 0 R (HD.5325) 6086 0 R (HD.5326) 6087 0 R (HD.5327) 6088 0 R (HD.5328) 6089 0 R (HD.5329) 6090 0 R (HD.533) 818 0 R (HD.5330) 6091 0 R (HD.5331) 6092 0 R (HD.5332) 6093 0 R (HD.5333) 6094 0 R (HD.5334) 6095 0 R (HD.5335) 6096 0 R (HD.5336) 6097 0 R (HD.5337) 6098 0 R (HD.5338) 6099 0 R (HD.5339) 6100 0 R (HD.534) 819 0 R (HD.5340) 6101 0 R (HD.5341) 6102 0 R (HD.5342) 6103 0 R (HD.5343) 6104 0 R (HD.5344) 6105 0 R ] /Limits [ (HD.5316) (HD.5344) ] >>
endobj
11768 0 obj
-<< /Names [ (HD.2505) 3009 0 R (HD.2506) 3010 0 R (HD.2507) 3011 0 R (HD.2508) 3012 0 R (HD.2509) 3013 0 R (HD.251) 470 0 R (HD.2510) 3014 0 R (HD.2511) 3015 0 R (HD.2512) 3020 0 R (HD.2513) 3021 0 R (HD.2514) 3022 0 R (HD.2515) 3023 0 R (HD.2516) 3024 0 R (HD.2517) 3025 0 R (HD.2518) 3026 0 R (HD.2519) 3027 0 R (HD.252) 471 0 R (HD.2520) 3028 0 R (HD.2521) 3029 0 R (HD.2522) 3030 0 R (HD.2523) 3031 0 R (HD.2524) 3032 0 R (HD.2525) 3033 0 R (HD.2526) 3034 0 R (HD.2527) 3035 0 R (HD.2528) 3036 0 R (HD.2529) 3037 0 R (HD.253) 472 0 R (HD.2530) 3038 0 R (HD.2531) 3039 0 R (HD.2532) 3040 0 R (HD.2533) 3041 0 R ] /Limits [ (HD.2505) (HD.2533) ] >>
+<< /Names [ (HD.5345) 6106 0 R (HD.5346) 6107 0 R (HD.5347) 6108 0 R (HD.5348) 6109 0 R (HD.5349) 6110 0 R (HD.535) 820 0 R (HD.5350) 6111 0 R (HD.5351) 6112 0 R (HD.5352) 6113 0 R (HD.5353) 6114 0 R (HD.5354) 6115 0 R (HD.5355) 6116 0 R (HD.5356) 6117 0 R (HD.5357) 6118 0 R (HD.5358) 6119 0 R (HD.5359) 6120 0 R (HD.536) 825 0 R (HD.5360) 6121 0 R (HD.5361) 6122 0 R (HD.5362) 6123 0 R (HD.5363) 6124 0 R (HD.5364) 6125 0 R (HD.5365) 6126 0 R (HD.5366) 6127 0 R (HD.5367) 6128 0 R (HD.5368) 6129 0 R (HD.5369) 6130 0 R (HD.537) 826 0 R (HD.5370) 6131 0 R (HD.5371) 6132 0 R (HD.5372) 6137 0 R (HD.5373) 6138 0 R ] /Limits [ (HD.5345) (HD.5373) ] >>
endobj
11769 0 obj
-<< /Names [ (HD.2534) 3042 0 R (HD.2535) 3043 0 R (HD.2536) 3044 0 R (HD.2537) 3045 0 R (HD.2538) 3046 0 R (HD.2539) 3047 0 R (HD.254) 474 0 R (HD.2540) 3048 0 R (HD.2541) 3049 0 R (HD.2542) 3050 0 R (HD.2543) 3051 0 R (HD.2544) 3052 0 R (HD.2545) 3053 0 R (HD.2546) 3054 0 R (HD.2547) 3055 0 R (HD.2548) 3056 0 R (HD.2549) 3057 0 R (HD.255) 475 0 R (HD.2550) 3058 0 R (HD.2551) 3059 0 R (HD.2552) 3060 0 R (HD.2553) 3061 0 R (HD.2554) 3062 0 R (HD.2555) 3063 0 R (HD.2556) 3064 0 R (HD.2557) 3065 0 R (HD.2558) 3066 0 R (HD.2559) 3071 0 R (HD.256) 476 0 R (HD.2560) 3072 0 R (HD.2561) 3073 0 R (HD.2562) 3074 0 R ] /Limits [ (HD.2534) (HD.2562) ] >>
+<< /Names [ (HD.5374) 6139 0 R (HD.5375) 6140 0 R (HD.5376) 6141 0 R (HD.5377) 6142 0 R (HD.5378) 6143 0 R (HD.5379) 6144 0 R (HD.538) 827 0 R (HD.5380) 6145 0 R (HD.5381) 6146 0 R (HD.5382) 6147 0 R (HD.5383) 6148 0 R (HD.5384) 6149 0 R (HD.5385) 6150 0 R (HD.5386) 6151 0 R (HD.5387) 6152 0 R (HD.5388) 6153 0 R (HD.5389) 6154 0 R (HD.539) 828 0 R (HD.5390) 6155 0 R (HD.5391) 6156 0 R (HD.5392) 6157 0 R (HD.5393) 6158 0 R (HD.5394) 6159 0 R (HD.5395) 6160 0 R (HD.5396) 6161 0 R (HD.5397) 6162 0 R (HD.5398) 6163 0 R (HD.5399) 6164 0 R (HD.54) 245 0 R (HD.540) 829 0 R (HD.5400) 6165 0 R (HD.5401) 6166 0 R ] /Limits [ (HD.5374) (HD.5401) ] >>
endobj
11770 0 obj
-<< /Names [ (HD.2563) 3075 0 R (HD.2564) 3076 0 R (HD.2565) 3077 0 R (HD.2566) 3078 0 R (HD.2567) 3079 0 R (HD.2568) 3080 0 R (HD.2569) 3081 0 R (HD.257) 477 0 R (HD.2570) 3082 0 R (HD.2571) 3083 0 R (HD.2572) 3084 0 R (HD.2573) 3085 0 R (HD.2574) 3086 0 R (HD.2575) 3087 0 R (HD.2576) 3088 0 R (HD.2577) 3089 0 R (HD.2578) 3090 0 R (HD.2579) 3091 0 R (HD.258) 478 0 R (HD.2580) 3092 0 R (HD.2581) 3093 0 R (HD.2582) 3094 0 R (HD.2583) 3095 0 R (HD.2584) 3096 0 R (HD.2585) 3097 0 R (HD.2586) 3098 0 R (HD.2587) 3099 0 R (HD.2588) 3100 0 R (HD.2589) 3101 0 R (HD.259) 479 0 R (HD.2590) 3102 0 R (HD.2591) 3103 0 R ] /Limits [ (HD.2563) (HD.2591) ] >>
+<< /Names [ (HD.5402) 6167 0 R (HD.5403) 6168 0 R (HD.5404) 6173 0 R (HD.5405) 6174 0 R (HD.5406) 6175 0 R (HD.5407) 6176 0 R (HD.5408) 6177 0 R (HD.5409) 6178 0 R (HD.541) 830 0 R (HD.5410) 6179 0 R (HD.5411) 6180 0 R (HD.5412) 6181 0 R (HD.5413) 6182 0 R (HD.5414) 6183 0 R (HD.5415) 6184 0 R (HD.5416) 6185 0 R (HD.5417) 6186 0 R (HD.5418) 6187 0 R (HD.5419) 6188 0 R (HD.542) 831 0 R (HD.5420) 6189 0 R (HD.5421) 6190 0 R (HD.5422) 6191 0 R (HD.5423) 6192 0 R (HD.5424) 6193 0 R (HD.5425) 6194 0 R (HD.5426) 6195 0 R (HD.5427) 6196 0 R (HD.5428) 6197 0 R (HD.5429) 6198 0 R (HD.543) 832 0 R (HD.5430) 6199 0 R ] /Limits [ (HD.5402) (HD.5430) ] >>
endobj
11771 0 obj
-<< /Names [ (HD.2592) 3104 0 R (HD.2593) 3105 0 R (HD.2594) 3106 0 R (HD.2595) 3107 0 R (HD.2596) 3108 0 R (HD.2597) 3109 0 R (HD.2598) 3110 0 R (HD.2599) 3111 0 R (HD.26) 221 0 R (HD.260) 487 0 R (HD.2600) 3112 0 R (HD.2601) 3113 0 R (HD.2602) 3114 0 R (HD.2603) 3115 0 R (HD.2604) 3116 0 R (HD.2605) 3117 0 R (HD.2606) 3118 0 R (HD.2607) 3119 0 R (HD.2608) 3120 0 R (HD.2609) 3121 0 R (HD.261) 488 0 R (HD.2610) 3126 0 R (HD.2611) 3127 0 R (HD.2612) 3128 0 R (HD.2613) 3129 0 R (HD.2614) 3130 0 R (HD.2615) 3131 0 R (HD.2616) 3132 0 R (HD.2617) 3133 0 R (HD.2618) 3134 0 R (HD.2619) 3135 0 R (HD.262) 489 0 R ] /Limits [ (HD.2592) (HD.262) ] >>
+<< /Names [ (HD.5431) 6200 0 R (HD.5432) 6201 0 R (HD.5433) 6202 0 R (HD.5434) 6203 0 R (HD.5435) 6204 0 R (HD.5436) 6205 0 R (HD.5437) 6206 0 R (HD.5438) 6207 0 R (HD.5439) 6208 0 R (HD.544) 833 0 R (HD.5440) 6209 0 R (HD.5441) 6210 0 R (HD.5442) 6211 0 R (HD.5443) 6212 0 R (HD.5444) 6213 0 R (HD.5445) 6214 0 R (HD.5446) 6219 0 R (HD.5447) 6220 0 R (HD.5448) 6221 0 R (HD.5449) 6222 0 R (HD.545) 834 0 R (HD.5450) 6223 0 R (HD.5451) 6224 0 R (HD.5452) 6225 0 R (HD.5453) 6226 0 R (HD.5454) 6227 0 R (HD.5455) 6228 0 R (HD.5456) 6229 0 R (HD.5457) 6230 0 R (HD.5458) 6231 0 R (HD.5459) 6232 0 R (HD.546) 835 0 R ] /Limits [ (HD.5431) (HD.546) ] >>
endobj
11772 0 obj
-<< /Names [ (HD.2620) 3136 0 R (HD.2621) 3137 0 R (HD.2622) 3138 0 R (HD.2623) 3139 0 R (HD.2624) 3140 0 R (HD.2625) 3141 0 R (HD.2626) 3142 0 R (HD.2627) 3143 0 R (HD.2628) 3144 0 R (HD.2629) 3145 0 R (HD.263) 490 0 R (HD.2630) 3146 0 R (HD.2631) 3147 0 R (HD.2632) 3148 0 R (HD.2633) 3149 0 R (HD.2634) 3150 0 R (HD.2635) 3151 0 R (HD.2636) 3152 0 R (HD.2637) 3153 0 R (HD.2638) 3154 0 R (HD.2639) 3155 0 R (HD.264) 491 0 R (HD.2640) 3156 0 R (HD.2641) 3157 0 R (HD.2642) 3158 0 R (HD.2643) 3159 0 R (HD.2644) 3160 0 R (HD.2645) 3161 0 R (HD.2646) 3162 0 R (HD.2647) 3163 0 R (HD.2648) 3164 0 R (HD.2649) 3165 0 R ] /Limits [ (HD.2620) (HD.2649) ] >>
+<< /Names [ (HD.5460) 6233 0 R (HD.5461) 6234 0 R (HD.5462) 6235 0 R (HD.5463) 6236 0 R (HD.5464) 6237 0 R (HD.5465) 6238 0 R (HD.5466) 6239 0 R (HD.5467) 6240 0 R (HD.5468) 6241 0 R (HD.5469) 6242 0 R (HD.547) 836 0 R (HD.5470) 6243 0 R (HD.5471) 6244 0 R (HD.5472) 6245 0 R (HD.5473) 6246 0 R (HD.5474) 6247 0 R (HD.5475) 6248 0 R (HD.5476) 6249 0 R (HD.5477) 6250 0 R (HD.5478) 6251 0 R (HD.5479) 6252 0 R (HD.548) 837 0 R (HD.5480) 6253 0 R (HD.5481) 6254 0 R (HD.5482) 6255 0 R (HD.5483) 6256 0 R (HD.5484) 6257 0 R (HD.5485) 6258 0 R (HD.5486) 6259 0 R (HD.5487) 6260 0 R (HD.5488) 6261 0 R (HD.5489) 6262 0 R ] /Limits [ (HD.5460) (HD.5489) ] >>
endobj
11773 0 obj
-<< /Names [ (HD.265) 492 0 R (HD.2650) 3166 0 R (HD.2651) 3167 0 R (HD.2652) 3168 0 R (HD.2653) 3169 0 R (HD.2654) 3170 0 R (HD.2655) 3171 0 R (HD.2656) 3172 0 R (HD.2657) 3173 0 R (HD.2658) 3174 0 R (HD.2659) 3175 0 R (HD.266) 493 0 R (HD.2660) 3176 0 R (HD.2661) 3177 0 R (HD.2662) 3178 0 R (HD.2663) 3183 0 R (HD.2664) 3184 0 R (HD.2665) 3185 0 R (HD.2666) 3186 0 R (HD.2667) 3187 0 R (HD.2668) 3188 0 R (HD.2669) 3189 0 R (HD.267) 494 0 R (HD.2670) 3190 0 R (HD.2671) 3191 0 R (HD.2672) 3192 0 R (HD.2673) 3193 0 R (HD.2674) 3194 0 R (HD.2675) 3195 0 R (HD.2676) 3196 0 R (HD.2677) 3197 0 R (HD.2678) 3198 0 R ] /Limits [ (HD.265) (HD.2678) ] >>
+<< /Names [ (HD.549) 838 0 R (HD.5490) 6263 0 R (HD.5491) 6264 0 R (HD.5492) 6265 0 R (HD.5493) 6266 0 R (HD.5494) 6267 0 R (HD.5495) 6273 0 R (HD.5496) 6274 0 R (HD.5497) 6275 0 R (HD.5498) 6276 0 R (HD.5499) 6277 0 R (HD.55) 246 0 R (HD.550) 839 0 R (HD.5500) 6278 0 R (HD.5501) 6279 0 R (HD.5502) 6280 0 R (HD.5503) 6281 0 R (HD.5504) 6282 0 R (HD.5505) 6283 0 R (HD.5506) 6284 0 R (HD.5507) 6285 0 R (HD.5508) 6286 0 R (HD.5509) 6287 0 R (HD.551) 840 0 R (HD.5510) 6288 0 R (HD.5511) 6289 0 R (HD.5512) 6290 0 R (HD.5513) 6291 0 R (HD.5514) 6292 0 R (HD.5515) 6293 0 R (HD.5516) 6294 0 R (HD.5517) 6295 0 R ] /Limits [ (HD.549) (HD.5517) ] >>
endobj
11774 0 obj
-<< /Names [ (HD.2679) 3199 0 R (HD.268) 495 0 R (HD.2680) 3200 0 R (HD.2681) 3201 0 R (HD.2682) 3202 0 R (HD.2683) 3203 0 R (HD.2684) 3204 0 R (HD.2685) 3205 0 R (HD.2686) 3206 0 R (HD.2687) 3207 0 R (HD.2688) 3208 0 R (HD.2689) 3209 0 R (HD.269) 496 0 R (HD.2690) 3210 0 R (HD.2691) 3211 0 R (HD.2692) 3212 0 R (HD.2693) 3213 0 R (HD.2694) 3214 0 R (HD.2695) 3215 0 R (HD.2696) 3216 0 R (HD.2697) 3217 0 R (HD.2698) 3218 0 R (HD.2699) 3219 0 R (HD.27) 222 0 R (HD.270) 497 0 R (HD.2700) 3220 0 R (HD.2701) 3221 0 R (HD.2702) 3222 0 R (HD.2703) 3223 0 R (HD.2704) 3224 0 R (HD.2705) 3225 0 R (HD.2706) 3226 0 R ] /Limits [ (HD.2679) (HD.2706) ] >>
+<< /Names [ (HD.5518) 6296 0 R (HD.5519) 6297 0 R (HD.552) 841 0 R (HD.5520) 6298 0 R (HD.5521) 6299 0 R (HD.5522) 6300 0 R (HD.5523) 6301 0 R (HD.5524) 6302 0 R (HD.5525) 6303 0 R (HD.5526) 6304 0 R (HD.5527) 6305 0 R (HD.5528) 6306 0 R (HD.5529) 6307 0 R (HD.553) 842 0 R (HD.5530) 6308 0 R (HD.5531) 6309 0 R (HD.5532) 6310 0 R (HD.5533) 6311 0 R (HD.5534) 6312 0 R (HD.5535) 6313 0 R (HD.5536) 6314 0 R (HD.5537) 6315 0 R (HD.5538) 6316 0 R (HD.5539) 6317 0 R (HD.554) 843 0 R (HD.5540) 6318 0 R (HD.5541) 6323 0 R (HD.5542) 6324 0 R (HD.5543) 6325 0 R (HD.5544) 6326 0 R (HD.5545) 6327 0 R (HD.5546) 6328 0 R ] /Limits [ (HD.5518) (HD.5546) ] >>
endobj
11775 0 obj
-<< /Names [ (HD.2707) 3227 0 R (HD.2708) 3228 0 R (HD.2709) 3229 0 R (HD.271) 498 0 R (HD.2710) 3230 0 R (HD.2711) 3231 0 R (HD.2712) 3232 0 R (HD.2713) 3233 0 R (HD.2714) 3234 0 R (HD.2715) 3235 0 R (HD.2716) 3236 0 R (HD.2717) 3237 0 R (HD.2718) 3238 0 R (HD.2719) 3243 0 R (HD.272) 499 0 R (HD.2720) 3244 0 R (HD.2721) 3245 0 R (HD.2722) 3246 0 R (HD.2723) 3247 0 R (HD.2724) 3248 0 R (HD.2725) 3249 0 R (HD.2726) 3250 0 R (HD.2727) 3251 0 R (HD.2728) 3252 0 R (HD.2729) 3253 0 R (HD.273) 500 0 R (HD.2730) 3254 0 R (HD.2731) 3255 0 R (HD.2732) 3256 0 R (HD.2733) 3257 0 R (HD.2734) 3258 0 R (HD.2735) 3259 0 R ] /Limits [ (HD.2707) (HD.2735) ] >>
+<< /Names [ (HD.5547) 6329 0 R (HD.5548) 6330 0 R (HD.5549) 6331 0 R (HD.555) 844 0 R (HD.5550) 6332 0 R (HD.5551) 6333 0 R (HD.5552) 6334 0 R (HD.5553) 6335 0 R (HD.5554) 6336 0 R (HD.5555) 6337 0 R (HD.5556) 6338 0 R (HD.5557) 6339 0 R (HD.5558) 6340 0 R (HD.5559) 6341 0 R (HD.556) 845 0 R (HD.5560) 6342 0 R (HD.5561) 6343 0 R (HD.5562) 6344 0 R (HD.5563) 6345 0 R (HD.5564) 6346 0 R (HD.5565) 6347 0 R (HD.5566) 6348 0 R (HD.5567) 6349 0 R (HD.5568) 6350 0 R (HD.5569) 6351 0 R (HD.557) 846 0 R (HD.5570) 6352 0 R (HD.5571) 6353 0 R (HD.5572) 6354 0 R (HD.5573) 6355 0 R (HD.5574) 6356 0 R (HD.5575) 6357 0 R ] /Limits [ (HD.5547) (HD.5575) ] >>
endobj
11776 0 obj
-<< /Names [ (HD.2736) 3260 0 R (HD.2737) 3261 0 R (HD.2738) 3262 0 R (HD.2739) 3263 0 R (HD.274) 501 0 R (HD.2740) 3264 0 R (HD.2741) 3265 0 R (HD.2742) 3266 0 R (HD.2743) 3267 0 R (HD.2744) 3268 0 R (HD.2745) 3269 0 R (HD.2746) 3270 0 R (HD.2747) 3271 0 R (HD.2748) 3272 0 R (HD.2749) 3273 0 R (HD.275) 502 0 R (HD.2750) 3274 0 R (HD.2751) 3275 0 R (HD.2752) 3276 0 R (HD.2753) 3277 0 R (HD.2754) 3278 0 R (HD.2755) 3279 0 R (HD.2756) 3280 0 R (HD.2757) 3281 0 R (HD.2758) 3282 0 R (HD.2759) 3283 0 R (HD.276) 503 0 R (HD.2760) 3284 0 R (HD.2761) 3285 0 R (HD.2762) 3286 0 R (HD.2763) 3287 0 R (HD.2764) 3288 0 R ] /Limits [ (HD.2736) (HD.2764) ] >>
+<< /Names [ (HD.5576) 6358 0 R (HD.5577) 6359 0 R (HD.5578) 6360 0 R (HD.5579) 6361 0 R (HD.558) 847 0 R (HD.5580) 6362 0 R (HD.5581) 6363 0 R (HD.5582) 6364 0 R (HD.5583) 6365 0 R (HD.5584) 6366 0 R (HD.5585) 6367 0 R (HD.5586) 6368 0 R (HD.5587) 6369 0 R (HD.5588) 6374 0 R (HD.5589) 6375 0 R (HD.559) 848 0 R (HD.5590) 6376 0 R (HD.5591) 6377 0 R (HD.5592) 6378 0 R (HD.5593) 6379 0 R (HD.5594) 6380 0 R (HD.5595) 6381 0 R (HD.5596) 6382 0 R (HD.5597) 6383 0 R (HD.5598) 6384 0 R (HD.5599) 6385 0 R (HD.56) 247 0 R (HD.560) 849 0 R (HD.5600) 6386 0 R (HD.5601) 6387 0 R (HD.5602) 6388 0 R (HD.5603) 6389 0 R ] /Limits [ (HD.5576) (HD.5603) ] >>
endobj
11777 0 obj
-<< /Names [ (HD.2765) 3289 0 R (HD.2766) 3290 0 R (HD.2767) 3291 0 R (HD.2768) 3292 0 R (HD.2769) 3293 0 R (HD.277) 504 0 R (HD.2770) 3294 0 R (HD.2771) 3295 0 R (HD.2772) 3296 0 R (HD.2773) 3297 0 R (HD.2774) 3303 0 R (HD.2775) 3304 0 R (HD.2776) 3305 0 R (HD.2777) 3306 0 R (HD.2778) 3307 0 R (HD.2779) 3308 0 R (HD.278) 505 0 R (HD.2780) 3309 0 R (HD.2781) 3310 0 R (HD.2782) 3311 0 R (HD.2783) 3312 0 R (HD.2784) 3313 0 R (HD.2785) 3314 0 R (HD.2786) 3315 0 R (HD.2787) 3316 0 R (HD.2788) 3317 0 R (HD.2789) 3318 0 R (HD.279) 506 0 R (HD.2790) 3319 0 R (HD.2791) 3320 0 R (HD.2792) 3321 0 R (HD.2793) 3322 0 R ] /Limits [ (HD.2765) (HD.2793) ] >>
+<< /Names [ (HD.5604) 6390 0 R (HD.5605) 6391 0 R (HD.5606) 6392 0 R (HD.5607) 6393 0 R (HD.5608) 6394 0 R (HD.5609) 6395 0 R (HD.561) 850 0 R (HD.5610) 6396 0 R (HD.5611) 6397 0 R (HD.5612) 6398 0 R (HD.5613) 6399 0 R (HD.5614) 6400 0 R (HD.5615) 6401 0 R (HD.5616) 6402 0 R (HD.5617) 6403 0 R (HD.5618) 6404 0 R (HD.5619) 6405 0 R (HD.562) 851 0 R (HD.5620) 6406 0 R (HD.5621) 6407 0 R (HD.5622) 6408 0 R (HD.5623) 6409 0 R (HD.5624) 6410 0 R (HD.5625) 6411 0 R (HD.5626) 6412 0 R (HD.5627) 6413 0 R (HD.5628) 6414 0 R (HD.5629) 6419 0 R (HD.563) 852 0 R (HD.5630) 6420 0 R (HD.5631) 6421 0 R (HD.5632) 6422 0 R ] /Limits [ (HD.5604) (HD.5632) ] >>
endobj
11778 0 obj
-<< /Names [ (HD.2794) 3323 0 R (HD.2795) 3324 0 R (HD.2796) 3325 0 R (HD.2797) 3326 0 R (HD.2798) 3327 0 R (HD.2799) 3328 0 R (HD.28) 223 0 R (HD.280) 507 0 R (HD.2800) 3329 0 R (HD.2801) 3330 0 R (HD.2802) 3331 0 R (HD.2803) 3332 0 R (HD.2804) 3333 0 R (HD.2805) 3338 0 R (HD.2806) 3339 0 R (HD.2807) 3340 0 R (HD.2808) 3341 0 R (HD.2809) 3342 0 R (HD.281) 508 0 R (HD.2810) 3343 0 R (HD.2811) 3344 0 R (HD.2812) 3345 0 R (HD.2813) 3346 0 R (HD.2814) 3347 0 R (HD.2815) 3348 0 R (HD.2816) 3349 0 R (HD.2817) 3350 0 R (HD.2818) 3351 0 R (HD.2819) 3352 0 R (HD.282) 509 0 R (HD.2820) 3353 0 R (HD.2821) 3354 0 R ] /Limits [ (HD.2794) (HD.2821) ] >>
+<< /Names [ (HD.5633) 6423 0 R (HD.5634) 6424 0 R (HD.5635) 6425 0 R (HD.5636) 6426 0 R (HD.5637) 6427 0 R (HD.5638) 6428 0 R (HD.5639) 6429 0 R (HD.564) 853 0 R (HD.5640) 6430 0 R (HD.5641) 6431 0 R (HD.5642) 6432 0 R (HD.5643) 6433 0 R (HD.5644) 6434 0 R (HD.5645) 6435 0 R (HD.5646) 6436 0 R (HD.5647) 6437 0 R (HD.5648) 6438 0 R (HD.5649) 6439 0 R (HD.565) 854 0 R (HD.5650) 6440 0 R (HD.5651) 6441 0 R (HD.5652) 6442 0 R (HD.5653) 6443 0 R (HD.5654) 6444 0 R (HD.5655) 6445 0 R (HD.5656) 6446 0 R (HD.5657) 6447 0 R (HD.5658) 6448 0 R (HD.5659) 6449 0 R (HD.566) 855 0 R (HD.5660) 6450 0 R (HD.5661) 6451 0 R ] /Limits [ (HD.5633) (HD.5661) ] >>
endobj
11779 0 obj
-<< /Names [ (HD.2822) 3355 0 R (HD.2823) 3356 0 R (HD.2824) 3357 0 R (HD.2825) 3358 0 R (HD.2826) 3359 0 R (HD.2827) 3360 0 R (HD.2828) 3361 0 R (HD.2829) 3362 0 R (HD.283) 510 0 R (HD.2830) 3363 0 R (HD.2831) 3364 0 R (HD.2832) 3365 0 R (HD.2833) 3366 0 R (HD.2834) 3367 0 R (HD.2835) 3368 0 R (HD.2836) 3369 0 R (HD.2837) 3370 0 R (HD.2838) 3371 0 R (HD.2839) 3372 0 R (HD.284) 511 0 R (HD.2840) 3373 0 R (HD.2841) 3374 0 R (HD.2842) 3375 0 R (HD.2843) 3376 0 R (HD.2844) 3377 0 R (HD.2845) 3378 0 R (HD.2846) 3379 0 R (HD.2847) 3380 0 R (HD.2848) 3385 0 R (HD.2849) 3386 0 R (HD.285) 512 0 R (HD.2850) 3387 0 R ] /Limits [ (HD.2822) (HD.2850) ] >>
+<< /Names [ (HD.5662) 6452 0 R (HD.5663) 6453 0 R (HD.5664) 6454 0 R (HD.5665) 6455 0 R (HD.5666) 6456 0 R (HD.5667) 6457 0 R (HD.5668) 6458 0 R (HD.5669) 6459 0 R (HD.567) 856 0 R (HD.5670) 6460 0 R (HD.5671) 6461 0 R (HD.5672) 6462 0 R (HD.5673) 6463 0 R (HD.5674) 6464 0 R (HD.5675) 6469 0 R (HD.5676) 6470 0 R (HD.5677) 6471 0 R (HD.5678) 6472 0 R (HD.5679) 6473 0 R (HD.568) 857 0 R (HD.5680) 6474 0 R (HD.5681) 6475 0 R (HD.5682) 6476 0 R (HD.5683) 6477 0 R (HD.5684) 6478 0 R (HD.5685) 6479 0 R (HD.5686) 6480 0 R (HD.5687) 6481 0 R (HD.5688) 6482 0 R (HD.5689) 6483 0 R (HD.569) 858 0 R (HD.5690) 6484 0 R ] /Limits [ (HD.5662) (HD.5690) ] >>
endobj
11780 0 obj
-<< /Names [ (HD.2851) 3388 0 R (HD.2852) 3389 0 R (HD.2853) 3390 0 R (HD.2854) 3391 0 R (HD.2855) 3392 0 R (HD.2856) 3393 0 R (HD.2857) 3394 0 R (HD.2858) 3395 0 R (HD.2859) 3396 0 R (HD.286) 513 0 R (HD.2860) 3397 0 R (HD.2861) 3398 0 R (HD.2862) 3399 0 R (HD.2863) 3400 0 R (HD.2864) 3401 0 R (HD.2865) 3402 0 R (HD.2866) 3403 0 R (HD.2867) 3404 0 R (HD.2868) 3405 0 R (HD.2869) 3406 0 R (HD.287) 514 0 R (HD.2870) 3407 0 R (HD.2871) 3408 0 R (HD.2872) 3409 0 R (HD.2873) 3410 0 R (HD.2874) 3411 0 R (HD.2875) 3412 0 R (HD.2876) 3413 0 R (HD.2877) 3414 0 R (HD.2878) 3415 0 R (HD.2879) 3416 0 R (HD.288) 515 0 R ] /Limits [ (HD.2851) (HD.288) ] >>
+<< /Names [ (HD.5691) 6485 0 R (HD.5692) 6486 0 R (HD.5693) 6487 0 R (HD.5694) 6488 0 R (HD.5695) 6489 0 R (HD.5696) 6490 0 R (HD.5697) 6491 0 R (HD.5698) 6492 0 R (HD.5699) 6493 0 R (HD.57) 248 0 R (HD.570) 859 0 R (HD.5700) 6494 0 R (HD.5701) 6495 0 R (HD.5702) 6496 0 R (HD.5703) 6497 0 R (HD.5704) 6498 0 R (HD.5705) 6499 0 R (HD.5706) 6500 0 R (HD.5707) 6501 0 R (HD.5708) 6502 0 R (HD.5709) 6503 0 R (HD.571) 860 0 R (HD.5710) 6504 0 R (HD.5711) 6505 0 R (HD.5712) 6506 0 R (HD.5713) 6507 0 R (HD.5714) 6508 0 R (HD.5715) 6509 0 R (HD.5716) 6510 0 R (HD.5717) 6511 0 R (HD.5718) 6512 0 R (HD.5719) 6513 0 R ] /Limits [ (HD.5691) (HD.5719) ] >>
endobj
11781 0 obj
-<< /Names [ (HD.2880) 3417 0 R (HD.2881) 3418 0 R (HD.2882) 3419 0 R (HD.2883) 3420 0 R (HD.2884) 3421 0 R (HD.2885) 3422 0 R (HD.2886) 3423 0 R (HD.2887) 3424 0 R (HD.2888) 3425 0 R (HD.2889) 3430 0 R (HD.289) 516 0 R (HD.2890) 3431 0 R (HD.2891) 3432 0 R (HD.2892) 3433 0 R (HD.2893) 3434 0 R (HD.2894) 3435 0 R (HD.2895) 3436 0 R (HD.2896) 3437 0 R (HD.2897) 3438 0 R (HD.2898) 3439 0 R (HD.2899) 3440 0 R (HD.29) 224 0 R (HD.290) 517 0 R (HD.2900) 3441 0 R (HD.2901) 3442 0 R (HD.2902) 3443 0 R (HD.2903) 3444 0 R (HD.2904) 3445 0 R (HD.2905) 3446 0 R (HD.2906) 3447 0 R (HD.2907) 3448 0 R (HD.2908) 3449 0 R ] /Limits [ (HD.2880) (HD.2908) ] >>
+<< /Names [ (HD.572) 861 0 R (HD.5720) 6514 0 R (HD.5721) 6515 0 R (HD.5722) 6520 0 R (HD.5723) 6521 0 R (HD.5724) 6522 0 R (HD.5725) 6523 0 R (HD.5726) 6524 0 R (HD.5727) 6525 0 R (HD.5728) 6526 0 R (HD.5729) 6527 0 R (HD.573) 862 0 R (HD.5730) 6528 0 R (HD.5731) 6529 0 R (HD.5732) 6530 0 R (HD.5733) 6531 0 R (HD.5734) 6532 0 R (HD.5735) 6533 0 R (HD.5736) 6534 0 R (HD.5737) 6535 0 R (HD.5738) 6536 0 R (HD.5739) 6537 0 R (HD.574) 863 0 R (HD.5740) 6538 0 R (HD.5741) 6539 0 R (HD.5742) 6540 0 R (HD.5743) 6541 0 R (HD.5744) 6542 0 R (HD.5745) 6543 0 R (HD.5746) 6544 0 R (HD.5747) 6545 0 R (HD.5748) 6546 0 R ] /Limits [ (HD.572) (HD.5748) ] >>
endobj
11782 0 obj
-<< /Names [ (HD.2909) 3450 0 R (HD.291) 518 0 R (HD.2910) 3451 0 R (HD.2911) 3452 0 R (HD.2912) 3453 0 R (HD.2913) 3454 0 R (HD.2914) 3455 0 R (HD.2915) 3456 0 R (HD.2916) 3457 0 R (HD.2917) 3458 0 R (HD.2918) 3459 0 R (HD.2919) 3460 0 R (HD.292) 519 0 R (HD.2920) 3461 0 R (HD.2921) 3462 0 R (HD.2922) 3463 0 R (HD.2923) 3464 0 R (HD.2924) 3465 0 R (HD.2925) 3466 0 R (HD.2926) 3467 0 R (HD.2927) 3468 0 R (HD.2928) 3469 0 R (HD.2929) 3470 0 R (HD.293) 520 0 R (HD.2930) 3471 0 R (HD.2931) 3472 0 R (HD.2932) 3473 0 R (HD.2933) 3474 0 R (HD.2934) 3475 0 R (HD.2935) 3476 0 R (HD.2936) 3477 0 R (HD.2937) 3478 0 R ] /Limits [ (HD.2909) (HD.2937) ] >>
+<< /Names [ (HD.5749) 6547 0 R (HD.575) 864 0 R (HD.5750) 6548 0 R (HD.5751) 6549 0 R (HD.5752) 6550 0 R (HD.5753) 6551 0 R (HD.5754) 6552 0 R (HD.5755) 6553 0 R (HD.5756) 6554 0 R (HD.5757) 6555 0 R (HD.5758) 6556 0 R (HD.5759) 6557 0 R (HD.576) 865 0 R (HD.5760) 6558 0 R (HD.5761) 6559 0 R (HD.5762) 6560 0 R (HD.5763) 6561 0 R (HD.5764) 6562 0 R (HD.5765) 6563 0 R (HD.5766) 6564 0 R (HD.5767) 6565 0 R (HD.5768) 6566 0 R (HD.5769) 6567 0 R (HD.577) 866 0 R (HD.5770) 6568 0 R (HD.5771) 6569 0 R (HD.5772) 6570 0 R (HD.5773) 6571 0 R (HD.5774) 6572 0 R (HD.5775) 6573 0 R (HD.5776) 6578 0 R (HD.5777) 6579 0 R ] /Limits [ (HD.5749) (HD.5777) ] >>
endobj
11783 0 obj
-<< /Names [ (HD.2938) 3479 0 R (HD.2939) 3480 0 R (HD.294) 521 0 R (HD.2940) 3481 0 R (HD.2941) 3486 0 R (HD.2942) 3487 0 R (HD.2943) 3488 0 R (HD.2944) 3489 0 R (HD.2945) 3490 0 R (HD.2946) 3491 0 R (HD.2947) 3492 0 R (HD.2948) 3493 0 R (HD.2949) 3494 0 R (HD.295) 522 0 R (HD.2950) 3495 0 R (HD.2951) 3496 0 R (HD.2952) 3497 0 R (HD.2953) 3498 0 R (HD.2954) 3499 0 R (HD.2955) 3500 0 R (HD.2956) 3501 0 R (HD.2957) 3502 0 R (HD.2958) 3503 0 R (HD.2959) 3504 0 R (HD.296) 523 0 R (HD.2960) 3505 0 R (HD.2961) 3506 0 R (HD.2962) 3507 0 R (HD.2963) 3508 0 R (HD.2964) 3509 0 R (HD.2965) 3510 0 R (HD.2966) 3511 0 R ] /Limits [ (HD.2938) (HD.2966) ] >>
+<< /Names [ (HD.5778) 6580 0 R (HD.5779) 6581 0 R (HD.578) 867 0 R (HD.5780) 6582 0 R (HD.5781) 6583 0 R (HD.5782) 6584 0 R (HD.5783) 6585 0 R (HD.5784) 6586 0 R (HD.5785) 6587 0 R (HD.5786) 6588 0 R (HD.5787) 6589 0 R (HD.5788) 6590 0 R (HD.5789) 6591 0 R (HD.579) 868 0 R (HD.5790) 6592 0 R (HD.5791) 6593 0 R (HD.5792) 6594 0 R (HD.5793) 6595 0 R (HD.5794) 6596 0 R (HD.5795) 6597 0 R (HD.5796) 6598 0 R (HD.5797) 6599 0 R (HD.5798) 6600 0 R (HD.5799) 6601 0 R (HD.58) 249 0 R (HD.580) 874 0 R (HD.5800) 6602 0 R (HD.5801) 6603 0 R (HD.5802) 6604 0 R (HD.5803) 6605 0 R (HD.5804) 6606 0 R (HD.5805) 6607 0 R ] /Limits [ (HD.5778) (HD.5805) ] >>
endobj
11784 0 obj
-<< /Names [ (HD.2967) 3512 0 R (HD.2968) 3513 0 R (HD.2969) 3514 0 R (HD.297) 524 0 R (HD.2970) 3515 0 R (HD.2971) 3516 0 R (HD.2972) 3517 0 R (HD.2973) 3518 0 R (HD.2974) 3519 0 R (HD.2975) 3520 0 R (HD.2976) 3521 0 R (HD.2977) 3522 0 R (HD.2978) 3523 0 R (HD.2979) 3524 0 R (HD.298) 525 0 R (HD.2980) 3525 0 R (HD.2981) 3526 0 R (HD.2982) 3527 0 R (HD.2983) 3528 0 R (HD.2984) 3529 0 R (HD.2985) 3530 0 R (HD.2986) 3531 0 R (HD.2987) 3532 0 R (HD.2988) 3533 0 R (HD.2989) 3534 0 R (HD.299) 526 0 R (HD.2990) 3535 0 R (HD.2991) 3536 0 R (HD.2992) 3537 0 R (HD.2993) 3542 0 R (HD.2994) 3543 0 R (HD.2995) 3544 0 R ] /Limits [ (HD.2967) (HD.2995) ] >>
+<< /Names [ (HD.5806) 6608 0 R (HD.5807) 6609 0 R (HD.5808) 6610 0 R (HD.5809) 6611 0 R (HD.581) 875 0 R (HD.5810) 6612 0 R (HD.5811) 6613 0 R (HD.5812) 6614 0 R (HD.5813) 6615 0 R (HD.5814) 6616 0 R (HD.5815) 6617 0 R (HD.5816) 6618 0 R (HD.5817) 6619 0 R (HD.5818) 6620 0 R (HD.5819) 6621 0 R (HD.582) 876 0 R (HD.5820) 6622 0 R (HD.5821) 6623 0 R (HD.5822) 6624 0 R (HD.5823) 6629 0 R (HD.5824) 6630 0 R (HD.5825) 6631 0 R (HD.5826) 6632 0 R (HD.5827) 6633 0 R (HD.5828) 6634 0 R (HD.5829) 6635 0 R (HD.583) 877 0 R (HD.5830) 6636 0 R (HD.5831) 6637 0 R (HD.5832) 6638 0 R (HD.5833) 6639 0 R (HD.5834) 6640 0 R ] /Limits [ (HD.5806) (HD.5834) ] >>
endobj
11785 0 obj
-<< /Names [ (HD.2996) 3545 0 R (HD.2997) 3546 0 R (HD.2998) 3547 0 R (HD.2999) 3548 0 R (HD.3) 191 0 R (HD.30) 225 0 R (HD.300) 527 0 R (HD.3000) 3549 0 R (HD.3001) 3550 0 R (HD.3002) 3551 0 R (HD.3003) 3552 0 R (HD.3004) 3553 0 R (HD.3005) 3554 0 R (HD.3006) 3555 0 R (HD.3007) 3556 0 R (HD.3008) 3557 0 R (HD.3009) 3558 0 R (HD.301) 528 0 R (HD.3010) 3559 0 R (HD.3011) 3560 0 R (HD.3012) 3561 0 R (HD.3013) 3562 0 R (HD.3014) 3563 0 R (HD.3015) 3564 0 R (HD.3016) 3565 0 R (HD.3017) 3566 0 R (HD.3018) 3567 0 R (HD.3019) 3568 0 R (HD.302) 529 0 R (HD.3020) 3569 0 R (HD.3021) 3570 0 R (HD.3022) 3571 0 R ] /Limits [ (HD.2996) (HD.3022) ] >>
+<< /Names [ (HD.5835) 6641 0 R (HD.5836) 6642 0 R (HD.5837) 6643 0 R (HD.5838) 6644 0 R (HD.5839) 6645 0 R (HD.584) 878 0 R (HD.5840) 6646 0 R (HD.5841) 6647 0 R (HD.5842) 6648 0 R (HD.5843) 6649 0 R (HD.5844) 6650 0 R (HD.5845) 6651 0 R (HD.5846) 6652 0 R (HD.5847) 6653 0 R (HD.5848) 6654 0 R (HD.5849) 6655 0 R (HD.585) 879 0 R (HD.5850) 6656 0 R (HD.5851) 6657 0 R (HD.5852) 6658 0 R (HD.5853) 6659 0 R (HD.5854) 6660 0 R (HD.5855) 6661 0 R (HD.5856) 6662 0 R (HD.5857) 6663 0 R (HD.5858) 6664 0 R (HD.5859) 6665 0 R (HD.586) 880 0 R (HD.5860) 6666 0 R (HD.5861) 6667 0 R (HD.5862) 6668 0 R (HD.5863) 6669 0 R ] /Limits [ (HD.5835) (HD.5863) ] >>
endobj
11786 0 obj
-<< /Names [ (HD.3023) 3572 0 R (HD.3024) 3573 0 R (HD.3025) 3574 0 R (HD.3026) 3575 0 R (HD.3027) 3576 0 R (HD.3028) 3577 0 R (HD.3029) 3578 0 R (HD.303) 530 0 R (HD.3030) 3579 0 R (HD.3031) 3580 0 R (HD.3032) 3581 0 R (HD.3033) 3582 0 R (HD.3034) 3583 0 R (HD.3035) 3584 0 R (HD.3036) 3585 0 R (HD.3037) 3586 0 R (HD.3038) 3587 0 R (HD.3039) 3588 0 R (HD.304) 535 0 R (HD.3040) 3589 0 R (HD.3041) 3590 0 R (HD.3042) 3595 0 R (HD.3043) 3596 0 R (HD.3044) 3597 0 R (HD.3045) 3598 0 R (HD.3046) 3599 0 R (HD.3047) 3600 0 R (HD.3048) 3601 0 R (HD.3049) 3602 0 R (HD.305) 536 0 R (HD.3050) 3603 0 R (HD.3051) 3604 0 R ] /Limits [ (HD.3023) (HD.3051) ] >>
+<< /Names [ (HD.5864) 6670 0 R (HD.5865) 6675 0 R (HD.5866) 6676 0 R (HD.5867) 6677 0 R (HD.5868) 6678 0 R (HD.5869) 6679 0 R (HD.587) 881 0 R (HD.5870) 6680 0 R (HD.5871) 6681 0 R (HD.5872) 6682 0 R (HD.5873) 6683 0 R (HD.5874) 6684 0 R (HD.5875) 6685 0 R (HD.5876) 6686 0 R (HD.5877) 6687 0 R (HD.5878) 6688 0 R (HD.5879) 6689 0 R (HD.588) 882 0 R (HD.5880) 6690 0 R (HD.5881) 6691 0 R (HD.5882) 6692 0 R (HD.5883) 6693 0 R (HD.5884) 6694 0 R (HD.5885) 6695 0 R (HD.5886) 6696 0 R (HD.5887) 6697 0 R (HD.5888) 6698 0 R (HD.5889) 6699 0 R (HD.589) 883 0 R (HD.5890) 6700 0 R (HD.5891) 6701 0 R (HD.5892) 6702 0 R ] /Limits [ (HD.5864) (HD.5892) ] >>
endobj
11787 0 obj
-<< /Names [ (HD.3052) 3605 0 R (HD.3053) 3606 0 R (HD.3054) 3607 0 R (HD.3055) 3608 0 R (HD.3056) 3609 0 R (HD.3057) 3610 0 R (HD.3058) 3611 0 R (HD.3059) 3612 0 R (HD.306) 537 0 R (HD.3060) 3613 0 R (HD.3061) 3614 0 R (HD.3062) 3615 0 R (HD.3063) 3616 0 R (HD.3064) 3617 0 R (HD.3065) 3618 0 R (HD.3066) 3619 0 R (HD.3067) 3620 0 R (HD.3068) 3621 0 R (HD.3069) 3622 0 R (HD.307) 538 0 R (HD.3070) 3623 0 R (HD.3071) 3624 0 R (HD.3072) 3625 0 R (HD.3073) 3626 0 R (HD.3074) 3627 0 R (HD.3075) 3628 0 R (HD.3076) 3629 0 R (HD.3077) 3630 0 R (HD.3078) 3631 0 R (HD.3079) 3632 0 R (HD.308) 539 0 R (HD.3080) 3633 0 R ] /Limits [ (HD.3052) (HD.3080) ] >>
+<< /Names [ (HD.5893) 6703 0 R (HD.5894) 6704 0 R (HD.5895) 6705 0 R (HD.5896) 6706 0 R (HD.5897) 6707 0 R (HD.5898) 6712 0 R (HD.5899) 6713 0 R (HD.59) 250 0 R (HD.590) 884 0 R (HD.5900) 6714 0 R (HD.5901) 6715 0 R (HD.5902) 6716 0 R (HD.5903) 6717 0 R (HD.5904) 6718 0 R (HD.5905) 6719 0 R (HD.5906) 6720 0 R (HD.5907) 6721 0 R (HD.5908) 6722 0 R (HD.5909) 6723 0 R (HD.591) 885 0 R (HD.5910) 6724 0 R (HD.5911) 6725 0 R (HD.5912) 6726 0 R (HD.5913) 6727 0 R (HD.5914) 6728 0 R (HD.5915) 6729 0 R (HD.5916) 6730 0 R (HD.5917) 6731 0 R (HD.5918) 6732 0 R (HD.5919) 6733 0 R (HD.592) 886 0 R (HD.5920) 6734 0 R ] /Limits [ (HD.5893) (HD.5920) ] >>
endobj
11788 0 obj
-<< /Names [ (HD.3081) 3634 0 R (HD.3082) 3635 0 R (HD.3083) 3640 0 R (HD.3084) 3641 0 R (HD.3085) 3642 0 R (HD.3086) 3643 0 R (HD.3087) 3644 0 R (HD.3088) 3645 0 R (HD.3089) 3646 0 R (HD.309) 540 0 R (HD.3090) 3647 0 R (HD.3091) 3648 0 R (HD.3092) 3649 0 R (HD.3093) 3650 0 R (HD.3094) 3651 0 R (HD.3095) 3652 0 R (HD.3096) 3653 0 R (HD.3097) 3654 0 R (HD.3098) 3655 0 R (HD.3099) 3656 0 R (HD.31) 226 0 R (HD.310) 541 0 R (HD.3100) 3657 0 R (HD.3101) 3658 0 R (HD.3102) 3659 0 R (HD.3103) 3660 0 R (HD.3104) 3661 0 R (HD.3105) 3662 0 R (HD.3106) 3663 0 R (HD.3107) 3664 0 R (HD.3108) 3665 0 R (HD.3109) 3666 0 R ] /Limits [ (HD.3081) (HD.3109) ] >>
+<< /Names [ (HD.5921) 6735 0 R (HD.5922) 6736 0 R (HD.5923) 6737 0 R (HD.5924) 6738 0 R (HD.5925) 6739 0 R (HD.5926) 6740 0 R (HD.5927) 6741 0 R (HD.5928) 6742 0 R (HD.5929) 6743 0 R (HD.593) 887 0 R (HD.5930) 6744 0 R (HD.5931) 6750 0 R (HD.5932) 6751 0 R (HD.5933) 6752 0 R (HD.5934) 6753 0 R (HD.5935) 6754 0 R (HD.5936) 6755 0 R (HD.5937) 6756 0 R (HD.5938) 6757 0 R (HD.5939) 6758 0 R (HD.594) 888 0 R (HD.5940) 6759 0 R (HD.5941) 6760 0 R (HD.5942) 6761 0 R (HD.5943) 6762 0 R (HD.5944) 6763 0 R (HD.5945) 6764 0 R (HD.5946) 6765 0 R (HD.5947) 6766 0 R (HD.5948) 6767 0 R (HD.5949) 6768 0 R (HD.595) 889 0 R ] /Limits [ (HD.5921) (HD.595) ] >>
endobj
11789 0 obj
-<< /Names [ (HD.311) 542 0 R (HD.3110) 3667 0 R (HD.3111) 3668 0 R (HD.3112) 3669 0 R (HD.3113) 3670 0 R (HD.3114) 3671 0 R (HD.3115) 3672 0 R (HD.3116) 3673 0 R (HD.3117) 3674 0 R (HD.3118) 3675 0 R (HD.3119) 3676 0 R (HD.312) 543 0 R (HD.3120) 3681 0 R (HD.3121) 3682 0 R (HD.3122) 3683 0 R (HD.3123) 3684 0 R (HD.3124) 3685 0 R (HD.3125) 3686 0 R (HD.3126) 3687 0 R (HD.3127) 3688 0 R (HD.3128) 3689 0 R (HD.3129) 3690 0 R (HD.313) 544 0 R (HD.3130) 3691 0 R (HD.3131) 3692 0 R (HD.3132) 3693 0 R (HD.3133) 3694 0 R (HD.3134) 3695 0 R (HD.3135) 3696 0 R (HD.3136) 3697 0 R (HD.3137) 3698 0 R (HD.3138) 3699 0 R ] /Limits [ (HD.311) (HD.3138) ] >>
+<< /Names [ (HD.5950) 6769 0 R (HD.5951) 6770 0 R (HD.5952) 6771 0 R (HD.5953) 6772 0 R (HD.5954) 6773 0 R (HD.5955) 6774 0 R (HD.5956) 6775 0 R (HD.5957) 6776 0 R (HD.5958) 6777 0 R (HD.5959) 6778 0 R (HD.596) 890 0 R (HD.5960) 6779 0 R (HD.5961) 6780 0 R (HD.5962) 6781 0 R (HD.5963) 6782 0 R (HD.5964) 6783 0 R (HD.5965) 6784 0 R (HD.5966) 6785 0 R (HD.5967) 6786 0 R (HD.5968) 6791 0 R (HD.5969) 6792 0 R (HD.597) 891 0 R (HD.5970) 6793 0 R (HD.5971) 6794 0 R (HD.5972) 6795 0 R (HD.5973) 6796 0 R (HD.5974) 6797 0 R (HD.5975) 6798 0 R (HD.5976) 6799 0 R (HD.5977) 6800 0 R (HD.5978) 6801 0 R (HD.5979) 6802 0 R ] /Limits [ (HD.5950) (HD.5979) ] >>
endobj
11790 0 obj
-<< /Names [ (HD.3139) 3700 0 R (HD.314) 545 0 R (HD.3140) 3701 0 R (HD.3141) 3702 0 R (HD.3142) 3703 0 R (HD.3143) 3704 0 R (HD.3144) 3705 0 R (HD.3145) 3706 0 R (HD.3146) 3707 0 R (HD.3147) 3708 0 R (HD.3148) 3709 0 R (HD.3149) 3710 0 R (HD.315) 546 0 R (HD.3150) 3711 0 R (HD.3151) 3712 0 R (HD.3152) 3713 0 R (HD.3153) 3714 0 R (HD.3154) 3715 0 R (HD.3155) 3716 0 R (HD.3156) 3717 0 R (HD.3157) 3718 0 R (HD.3158) 3719 0 R (HD.3159) 3720 0 R (HD.316) 547 0 R (HD.3160) 3721 0 R (HD.3161) 3722 0 R (HD.3162) 3723 0 R (HD.3163) 3724 0 R (HD.3164) 3725 0 R (HD.3165) 3726 0 R (HD.3166) 3727 0 R (HD.3167) 3728 0 R ] /Limits [ (HD.3139) (HD.3167) ] >>
+<< /Names [ (HD.598) 892 0 R (HD.5980) 6803 0 R (HD.5981) 6804 0 R (HD.5982) 6805 0 R (HD.5983) 6806 0 R (HD.5984) 6807 0 R (HD.5985) 6808 0 R (HD.5986) 6809 0 R (HD.5987) 6810 0 R (HD.5988) 6811 0 R (HD.5989) 6812 0 R (HD.599) 893 0 R (HD.5990) 6813 0 R (HD.5991) 6814 0 R (HD.5992) 6815 0 R (HD.5993) 6816 0 R (HD.5994) 6817 0 R (HD.5995) 6818 0 R (HD.5996) 6819 0 R (HD.5997) 6820 0 R (HD.5998) 6821 0 R (HD.5999) 6822 0 R (HD.6) 190 0 R (HD.60) 251 0 R (HD.600) 894 0 R (HD.6000) 6823 0 R (HD.6001) 6824 0 R (HD.6002) 6825 0 R (HD.6003) 6826 0 R (HD.6004) 6827 0 R (HD.6005) 6828 0 R (HD.6006) 6833 0 R ] /Limits [ (HD.598) (HD.6006) ] >>
endobj
11791 0 obj
-<< /Names [ (HD.3168) 3729 0 R (HD.3169) 3730 0 R (HD.317) 548 0 R (HD.3170) 3731 0 R (HD.3171) 3732 0 R (HD.3172) 3737 0 R (HD.3173) 3738 0 R (HD.3174) 3739 0 R (HD.3175) 3740 0 R (HD.3176) 3741 0 R (HD.3177) 3742 0 R (HD.3178) 3743 0 R (HD.3179) 3744 0 R (HD.318) 549 0 R (HD.3180) 3745 0 R (HD.3181) 3746 0 R (HD.3182) 3747 0 R (HD.3183) 3748 0 R (HD.3184) 3749 0 R (HD.3185) 3750 0 R (HD.3186) 3751 0 R (HD.3187) 3752 0 R (HD.3188) 3753 0 R (HD.3189) 3754 0 R (HD.319) 550 0 R (HD.3190) 3755 0 R (HD.3191) 3756 0 R (HD.3192) 3757 0 R (HD.3193) 3758 0 R (HD.3194) 3759 0 R (HD.3195) 3760 0 R (HD.3196) 3761 0 R ] /Limits [ (HD.3168) (HD.3196) ] >>
+<< /Names [ (HD.6007) 6834 0 R (HD.6008) 6835 0 R (HD.6009) 6836 0 R (HD.601) 895 0 R (HD.6010) 6837 0 R (HD.6011) 6838 0 R (HD.6012) 6839 0 R (HD.6013) 6840 0 R (HD.6014) 6841 0 R (HD.6015) 6842 0 R (HD.6016) 6843 0 R (HD.6017) 6844 0 R (HD.6018) 6845 0 R (HD.6019) 6846 0 R (HD.602) 896 0 R (HD.6020) 6847 0 R (HD.6021) 6848 0 R (HD.6022) 6849 0 R (HD.6023) 6850 0 R (HD.6024) 6851 0 R (HD.6025) 6852 0 R (HD.6026) 6853 0 R (HD.6027) 6854 0 R (HD.6028) 6855 0 R (HD.6029) 6856 0 R (HD.603) 897 0 R (HD.6030) 6857 0 R (HD.6031) 6858 0 R (HD.6032) 6859 0 R (HD.6033) 6860 0 R (HD.6034) 6861 0 R (HD.6035) 6862 0 R ] /Limits [ (HD.6007) (HD.6035) ] >>
endobj
11792 0 obj
-<< /Names [ (HD.3197) 3762 0 R (HD.3198) 3763 0 R (HD.3199) 3764 0 R (HD.32) 227 0 R (HD.320) 551 0 R (HD.3200) 3765 0 R (HD.3201) 3766 0 R (HD.3202) 3767 0 R (HD.3203) 3768 0 R (HD.3204) 3769 0 R (HD.3205) 3770 0 R (HD.3206) 3771 0 R (HD.3207) 3772 0 R (HD.3208) 3773 0 R (HD.3209) 3774 0 R (HD.321) 552 0 R (HD.3210) 3775 0 R (HD.3211) 3776 0 R (HD.3212) 3777 0 R (HD.3213) 3778 0 R (HD.3214) 3779 0 R (HD.3215) 3780 0 R (HD.3216) 3781 0 R (HD.3217) 3782 0 R (HD.3218) 3788 0 R (HD.3219) 3789 0 R (HD.322) 553 0 R (HD.3220) 3790 0 R (HD.3221) 3791 0 R (HD.3222) 3792 0 R (HD.3223) 3793 0 R (HD.3224) 3794 0 R ] /Limits [ (HD.3197) (HD.3224) ] >>
+<< /Names [ (HD.6036) 6863 0 R (HD.6037) 6864 0 R (HD.6038) 6865 0 R (HD.6039) 6866 0 R (HD.604) 898 0 R (HD.6040) 6867 0 R (HD.6041) 6868 0 R (HD.6042) 6869 0 R (HD.6043) 6870 0 R (HD.6044) 6871 0 R (HD.6045) 6872 0 R (HD.6046) 6873 0 R (HD.6047) 6874 0 R (HD.6048) 6875 0 R (HD.6049) 6876 0 R (HD.605) 899 0 R (HD.6050) 6877 0 R (HD.6051) 6878 0 R (HD.6052) 6879 0 R (HD.6053) 6880 0 R (HD.6054) 6881 0 R (HD.6055) 6882 0 R (HD.6056) 6883 0 R (HD.6057) 6884 0 R (HD.6058) 6889 0 R (HD.6059) 6890 0 R (HD.606) 900 0 R (HD.6060) 6891 0 R (HD.6061) 6892 0 R (HD.6062) 6893 0 R (HD.6063) 6894 0 R (HD.6064) 6895 0 R ] /Limits [ (HD.6036) (HD.6064) ] >>
endobj
11793 0 obj
-<< /Names [ (HD.3225) 3795 0 R (HD.3226) 3796 0 R (HD.3227) 3797 0 R (HD.3228) 3798 0 R (HD.3229) 3799 0 R (HD.323) 554 0 R (HD.3230) 3800 0 R (HD.3231) 3801 0 R (HD.3232) 3802 0 R (HD.3233) 3803 0 R (HD.3234) 3804 0 R (HD.3235) 3805 0 R (HD.3236) 3806 0 R (HD.3237) 3807 0 R (HD.3238) 3808 0 R (HD.3239) 3809 0 R (HD.324) 555 0 R (HD.3240) 3810 0 R (HD.3241) 3811 0 R (HD.3242) 3812 0 R (HD.3243) 3813 0 R (HD.3244) 3814 0 R (HD.3245) 3815 0 R (HD.3246) 3816 0 R (HD.3247) 3817 0 R (HD.3248) 3818 0 R (HD.3249) 3819 0 R (HD.325) 557 0 R (HD.3250) 3820 0 R (HD.3251) 3821 0 R (HD.3252) 3822 0 R (HD.3253) 3823 0 R ] /Limits [ (HD.3225) (HD.3253) ] >>
+<< /Names [ (HD.6065) 6896 0 R (HD.6066) 6897 0 R (HD.6067) 6898 0 R (HD.6068) 6899 0 R (HD.6069) 6900 0 R (HD.607) 901 0 R (HD.6070) 6901 0 R (HD.6071) 6902 0 R (HD.6072) 6903 0 R (HD.6073) 6904 0 R (HD.6074) 6905 0 R (HD.6075) 6906 0 R (HD.6076) 6907 0 R (HD.6077) 6908 0 R (HD.6078) 6909 0 R (HD.6079) 6910 0 R (HD.608) 902 0 R (HD.6080) 6911 0 R (HD.6081) 6912 0 R (HD.6082) 6913 0 R (HD.6083) 6914 0 R (HD.6084) 6915 0 R (HD.6085) 6916 0 R (HD.6086) 6917 0 R (HD.6087) 6918 0 R (HD.6088) 6919 0 R (HD.6089) 6920 0 R (HD.609) 903 0 R (HD.6090) 6921 0 R (HD.6091) 6922 0 R (HD.6092) 6923 0 R (HD.6093) 6924 0 R ] /Limits [ (HD.6065) (HD.6093) ] >>
endobj
11794 0 obj
-<< /Names [ (HD.3254) 3824 0 R (HD.3255) 3825 0 R (HD.3256) 3826 0 R (HD.3257) 3827 0 R (HD.3258) 3828 0 R (HD.3259) 3829 0 R (HD.326) 558 0 R (HD.3260) 3830 0 R (HD.3261) 3831 0 R (HD.3262) 3832 0 R (HD.3263) 3833 0 R (HD.3264) 3834 0 R (HD.3265) 3835 0 R (HD.3266) 3836 0 R (HD.3267) 3837 0 R (HD.3268) 3838 0 R (HD.3269) 3839 0 R (HD.327) 559 0 R (HD.3270) 3840 0 R (HD.3271) 3841 0 R (HD.3272) 3842 0 R (HD.3273) 3843 0 R (HD.3274) 3848 0 R (HD.3275) 3849 0 R (HD.3276) 3850 0 R (HD.3277) 3851 0 R (HD.3278) 3852 0 R (HD.3279) 3853 0 R (HD.328) 560 0 R (HD.3280) 3854 0 R (HD.3281) 3855 0 R (HD.3282) 3856 0 R ] /Limits [ (HD.3254) (HD.3282) ] >>
+<< /Names [ (HD.6094) 6925 0 R (HD.6095) 6926 0 R (HD.6096) 6927 0 R (HD.6097) 6928 0 R (HD.6098) 6929 0 R (HD.6099) 6930 0 R (HD.61) 252 0 R (HD.610) 904 0 R (HD.6100) 6931 0 R (HD.6101) 6932 0 R (HD.6102) 6933 0 R (HD.6103) 6934 0 R (HD.6104) 6935 0 R (HD.6105) 6936 0 R (HD.6106) 6937 0 R (HD.6107) 6938 0 R (HD.6108) 6939 0 R (HD.6109) 6940 0 R (HD.611) 905 0 R (HD.6110) 6941 0 R (HD.6111) 6942 0 R (HD.6112) 6943 0 R (HD.6113) 6944 0 R (HD.6114) 6945 0 R (HD.6115) 6946 0 R (HD.6116) 6947 0 R (HD.6117) 6948 0 R (HD.6118) 6949 0 R (HD.6119) 6954 0 R (HD.612) 906 0 R (HD.6120) 6955 0 R (HD.6121) 6956 0 R ] /Limits [ (HD.6094) (HD.6121) ] >>
endobj
11795 0 obj
-<< /Names [ (HD.3283) 3857 0 R (HD.3284) 3858 0 R (HD.3285) 3859 0 R (HD.3286) 3860 0 R (HD.3287) 3861 0 R (HD.3288) 3862 0 R (HD.3289) 3863 0 R (HD.329) 561 0 R (HD.3290) 3864 0 R (HD.3291) 3865 0 R (HD.3292) 3866 0 R (HD.3293) 3867 0 R (HD.3294) 3868 0 R (HD.3295) 3869 0 R (HD.3296) 3870 0 R (HD.3297) 3871 0 R (HD.3298) 3872 0 R (HD.3299) 3873 0 R (HD.33) 228 0 R (HD.330) 562 0 R (HD.3300) 3874 0 R (HD.3301) 3875 0 R (HD.3302) 3876 0 R (HD.3303) 3877 0 R (HD.3304) 3878 0 R (HD.3305) 3879 0 R (HD.3306) 3880 0 R (HD.3307) 3885 0 R (HD.3308) 3886 0 R (HD.3309) 3887 0 R (HD.331) 567 0 R (HD.3310) 3888 0 R ] /Limits [ (HD.3283) (HD.3310) ] >>
+<< /Names [ (HD.6122) 6957 0 R (HD.6123) 6958 0 R (HD.6124) 6959 0 R (HD.6125) 6960 0 R (HD.6126) 6961 0 R (HD.6127) 6962 0 R (HD.6128) 6963 0 R (HD.6129) 6964 0 R (HD.613) 907 0 R (HD.6130) 6965 0 R (HD.6131) 6966 0 R (HD.6132) 6967 0 R (HD.6133) 6968 0 R (HD.6134) 6969 0 R (HD.6135) 6970 0 R (HD.6136) 6971 0 R (HD.6137) 6972 0 R (HD.6138) 6973 0 R (HD.6139) 6974 0 R (HD.614) 908 0 R (HD.6140) 6975 0 R (HD.6141) 6976 0 R (HD.6142) 6977 0 R (HD.6143) 6978 0 R (HD.6144) 6979 0 R (HD.6145) 6980 0 R (HD.6146) 6981 0 R (HD.6147) 6982 0 R (HD.6148) 6983 0 R (HD.6149) 6984 0 R (HD.615) 909 0 R (HD.6150) 6985 0 R ] /Limits [ (HD.6122) (HD.6150) ] >>
endobj
11796 0 obj
-<< /Names [ (HD.3311) 3889 0 R (HD.3312) 3890 0 R (HD.3313) 3891 0 R (HD.3314) 3892 0 R (HD.3315) 3893 0 R (HD.3316) 3894 0 R (HD.3317) 3895 0 R (HD.3318) 3896 0 R (HD.3319) 3897 0 R (HD.332) 568 0 R (HD.3320) 3898 0 R (HD.3321) 3899 0 R (HD.3322) 3900 0 R (HD.3323) 3901 0 R (HD.3324) 3902 0 R (HD.3325) 3903 0 R (HD.3326) 3904 0 R (HD.3327) 3905 0 R (HD.3328) 3906 0 R (HD.3329) 3907 0 R (HD.333) 569 0 R (HD.3330) 3908 0 R (HD.3331) 3909 0 R (HD.3332) 3910 0 R (HD.3333) 3911 0 R (HD.3334) 3912 0 R (HD.3335) 3913 0 R (HD.3336) 3914 0 R (HD.3337) 3915 0 R (HD.3338) 3916 0 R (HD.3339) 3917 0 R (HD.334) 570 0 R ] /Limits [ (HD.3311) (HD.334) ] >>
+<< /Names [ (HD.6151) 6986 0 R (HD.6152) 6987 0 R (HD.6153) 6988 0 R (HD.6154) 6989 0 R (HD.6155) 6990 0 R (HD.6156) 6991 0 R (HD.6157) 6992 0 R (HD.6158) 6993 0 R (HD.6159) 6994 0 R (HD.616) 910 0 R (HD.6160) 6995 0 R (HD.6161) 6996 0 R (HD.6162) 6997 0 R (HD.6163) 6998 0 R (HD.6164) 6999 0 R (HD.6165) 7000 0 R (HD.6166) 7001 0 R (HD.6167) 7002 0 R (HD.6168) 7003 0 R (HD.6169) 7004 0 R (HD.617) 911 0 R (HD.6170) 7009 0 R (HD.6171) 7010 0 R (HD.6172) 7011 0 R (HD.6173) 7012 0 R (HD.6174) 7013 0 R (HD.6175) 7014 0 R (HD.6176) 7015 0 R (HD.6177) 7016 0 R (HD.6178) 7017 0 R (HD.6179) 7018 0 R (HD.618) 912 0 R ] /Limits [ (HD.6151) (HD.618) ] >>
endobj
11797 0 obj
-<< /Names [ (HD.3340) 3918 0 R (HD.3341) 3919 0 R (HD.3342) 3920 0 R (HD.3343) 3925 0 R (HD.3344) 3926 0 R (HD.3345) 3927 0 R (HD.3346) 3928 0 R (HD.3347) 3929 0 R (HD.3348) 3930 0 R (HD.3349) 3931 0 R (HD.335) 571 0 R (HD.3350) 3932 0 R (HD.3351) 3933 0 R (HD.3352) 3934 0 R (HD.3353) 3935 0 R (HD.3354) 3936 0 R (HD.3355) 3937 0 R (HD.3356) 3938 0 R (HD.3357) 3939 0 R (HD.3358) 3940 0 R (HD.3359) 3941 0 R (HD.336) 572 0 R (HD.3360) 3942 0 R (HD.3361) 3943 0 R (HD.3362) 3944 0 R (HD.3363) 3945 0 R (HD.3364) 3946 0 R (HD.3365) 3947 0 R (HD.3366) 3948 0 R (HD.3367) 3949 0 R (HD.3368) 3950 0 R (HD.3369) 3951 0 R ] /Limits [ (HD.3340) (HD.3369) ] >>
+<< /Names [ (HD.6180) 7019 0 R (HD.6181) 7020 0 R (HD.6182) 7021 0 R (HD.6183) 7022 0 R (HD.6184) 7023 0 R (HD.6185) 7024 0 R (HD.6186) 7025 0 R (HD.6187) 7026 0 R (HD.6188) 7027 0 R (HD.6189) 7028 0 R (HD.619) 913 0 R (HD.6190) 7029 0 R (HD.6191) 7030 0 R (HD.6192) 7031 0 R (HD.6193) 7032 0 R (HD.6194) 7033 0 R (HD.6195) 7034 0 R (HD.6196) 7035 0 R (HD.6197) 7036 0 R (HD.6198) 7037 0 R (HD.6199) 7038 0 R (HD.62) 257 0 R (HD.620) 918 0 R (HD.6200) 7039 0 R (HD.6201) 7040 0 R (HD.6202) 7041 0 R (HD.6203) 7042 0 R (HD.6204) 7043 0 R (HD.6205) 7044 0 R (HD.6206) 7045 0 R (HD.6207) 7046 0 R (HD.6208) 7047 0 R ] /Limits [ (HD.6180) (HD.6208) ] >>
endobj
11798 0 obj
-<< /Names [ (HD.337) 573 0 R (HD.3370) 3952 0 R (HD.3371) 3953 0 R (HD.3372) 3954 0 R (HD.3373) 3955 0 R (HD.3374) 3956 0 R (HD.3375) 3957 0 R (HD.3376) 3958 0 R (HD.3377) 3959 0 R (HD.3378) 3960 0 R (HD.3379) 3961 0 R (HD.338) 574 0 R (HD.3380) 3962 0 R (HD.3381) 3963 0 R (HD.3382) 3964 0 R (HD.3383) 3965 0 R (HD.3384) 3966 0 R (HD.3385) 3967 0 R (HD.3386) 3968 0 R (HD.3387) 3969 0 R (HD.3388) 3970 0 R (HD.3389) 3971 0 R (HD.339) 575 0 R (HD.3390) 3976 0 R (HD.3391) 3977 0 R (HD.3392) 3978 0 R (HD.3393) 3979 0 R (HD.3394) 3980 0 R (HD.3395) 3981 0 R (HD.3396) 3982 0 R (HD.3397) 3983 0 R (HD.3398) 3984 0 R ] /Limits [ (HD.337) (HD.3398) ] >>
+<< /Names [ (HD.6209) 7048 0 R (HD.621) 919 0 R (HD.6210) 7049 0 R (HD.6211) 7050 0 R (HD.6212) 7055 0 R (HD.6213) 7056 0 R (HD.6214) 7057 0 R (HD.6215) 7058 0 R (HD.6216) 7059 0 R (HD.6217) 7060 0 R (HD.6218) 7061 0 R (HD.6219) 7062 0 R (HD.622) 920 0 R (HD.6220) 7063 0 R (HD.6221) 7064 0 R (HD.6222) 7065 0 R (HD.6223) 7066 0 R (HD.6224) 7067 0 R (HD.6225) 7068 0 R (HD.6226) 7069 0 R (HD.6227) 7070 0 R (HD.6228) 7071 0 R (HD.6229) 7072 0 R (HD.623) 921 0 R (HD.6230) 7073 0 R (HD.6231) 7074 0 R (HD.6232) 7075 0 R (HD.6233) 7076 0 R (HD.6234) 7077 0 R (HD.6235) 7078 0 R (HD.6236) 7079 0 R (HD.6237) 7080 0 R ] /Limits [ (HD.6209) (HD.6237) ] >>
endobj
11799 0 obj
-<< /Names [ (HD.3399) 3985 0 R (HD.34) 229 0 R (HD.340) 576 0 R (HD.3400) 3986 0 R (HD.3401) 3987 0 R (HD.3402) 3988 0 R (HD.3403) 3989 0 R (HD.3404) 3990 0 R (HD.3405) 3991 0 R (HD.3406) 3992 0 R (HD.3407) 3993 0 R (HD.3408) 3994 0 R (HD.3409) 3995 0 R (HD.341) 577 0 R (HD.3410) 3996 0 R (HD.3411) 3997 0 R (HD.3412) 3998 0 R (HD.3413) 3999 0 R (HD.3414) 4000 0 R (HD.3415) 4001 0 R (HD.3416) 4002 0 R (HD.3417) 4003 0 R (HD.3418) 4004 0 R (HD.3419) 4005 0 R (HD.342) 578 0 R (HD.3420) 4006 0 R (HD.3421) 4007 0 R (HD.3422) 4008 0 R (HD.3423) 4009 0 R (HD.3424) 4010 0 R (HD.3425) 4011 0 R (HD.3426) 4012 0 R ] /Limits [ (HD.3399) (HD.3426) ] >>
+<< /Names [ (HD.6238) 7081 0 R (HD.6239) 7082 0 R (HD.624) 922 0 R (HD.6240) 7083 0 R (HD.6241) 7084 0 R (HD.6242) 7085 0 R (HD.6243) 7086 0 R (HD.6244) 7087 0 R (HD.6245) 7088 0 R (HD.6246) 7089 0 R (HD.6247) 7090 0 R (HD.6248) 7091 0 R (HD.6249) 7092 0 R (HD.625) 923 0 R (HD.6250) 7093 0 R (HD.6251) 7094 0 R (HD.6252) 7095 0 R (HD.6253) 7096 0 R (HD.6254) 7097 0 R (HD.6255) 7098 0 R (HD.6256) 7099 0 R (HD.6257) 7100 0 R (HD.6258) 7101 0 R (HD.6259) 7102 0 R (HD.626) 924 0 R (HD.6260) 7103 0 R (HD.6261) 7104 0 R (HD.6262) 7105 0 R (HD.6263) 7106 0 R (HD.6264) 7107 0 R (HD.6265) 7108 0 R (HD.6266) 7109 0 R ] /Limits [ (HD.6238) (HD.6266) ] >>
endobj
11800 0 obj
-<< /Names [ (HD.3427) 4013 0 R (HD.3428) 4014 0 R (HD.3429) 4015 0 R (HD.343) 579 0 R (HD.3430) 4016 0 R (HD.3431) 4017 0 R (HD.3432) 4018 0 R (HD.3433) 4019 0 R (HD.3434) 4020 0 R (HD.3435) 4021 0 R (HD.3436) 4022 0 R (HD.3437) 4023 0 R (HD.3438) 4024 0 R (HD.3439) 4025 0 R (HD.344) 580 0 R (HD.3440) 4026 0 R (HD.3441) 4027 0 R (HD.3442) 4028 0 R (HD.3443) 4029 0 R (HD.3444) 4030 0 R (HD.3445) 4031 0 R (HD.3446) 4036 0 R (HD.3447) 4037 0 R (HD.3448) 4038 0 R (HD.3449) 4039 0 R (HD.345) 581 0 R (HD.3450) 4040 0 R (HD.3451) 4041 0 R (HD.3452) 4042 0 R (HD.3453) 4043 0 R (HD.3454) 4044 0 R (HD.3455) 4045 0 R ] /Limits [ (HD.3427) (HD.3455) ] >>
+<< /Names [ (HD.6267) 7110 0 R (HD.6268) 7111 0 R (HD.6269) 7116 0 R (HD.627) 925 0 R (HD.6270) 7117 0 R (HD.6271) 7118 0 R (HD.6272) 7119 0 R (HD.6273) 7120 0 R (HD.6274) 7121 0 R (HD.6275) 7122 0 R (HD.6276) 7123 0 R (HD.6277) 7124 0 R (HD.6278) 7125 0 R (HD.6279) 7126 0 R (HD.628) 926 0 R (HD.6280) 7127 0 R (HD.6281) 7128 0 R (HD.6282) 7129 0 R (HD.6283) 7130 0 R (HD.6284) 7131 0 R (HD.6285) 7132 0 R (HD.6286) 7133 0 R (HD.6287) 7134 0 R (HD.6288) 7135 0 R (HD.6289) 7136 0 R (HD.629) 927 0 R (HD.6290) 7137 0 R (HD.6291) 7138 0 R (HD.6292) 7139 0 R (HD.6293) 7140 0 R (HD.6294) 7141 0 R (HD.6295) 7142 0 R ] /Limits [ (HD.6267) (HD.6295) ] >>
endobj
11801 0 obj
-<< /Names [ (HD.3456) 4046 0 R (HD.3457) 4047 0 R (HD.3458) 4048 0 R (HD.3459) 4049 0 R (HD.346) 582 0 R (HD.3460) 4050 0 R (HD.3461) 4051 0 R (HD.3462) 4052 0 R (HD.3463) 4053 0 R (HD.3464) 4054 0 R (HD.3465) 4055 0 R (HD.3466) 4056 0 R (HD.3467) 4057 0 R (HD.3468) 4058 0 R (HD.3469) 4059 0 R (HD.347) 587 0 R (HD.3470) 4060 0 R (HD.3471) 4061 0 R (HD.3472) 4062 0 R (HD.3473) 4063 0 R (HD.3474) 4064 0 R (HD.3475) 4065 0 R (HD.3476) 4066 0 R (HD.3477) 4067 0 R (HD.3478) 4068 0 R (HD.3479) 4069 0 R (HD.348) 588 0 R (HD.3480) 4070 0 R (HD.3481) 4071 0 R (HD.3482) 4072 0 R (HD.3483) 4073 0 R (HD.3484) 4074 0 R ] /Limits [ (HD.3456) (HD.3484) ] >>
+<< /Names [ (HD.6296) 7143 0 R (HD.6297) 7144 0 R (HD.6298) 7145 0 R (HD.6299) 7146 0 R (HD.63) 258 0 R (HD.630) 928 0 R (HD.6300) 7147 0 R (HD.6301) 7148 0 R (HD.6302) 7149 0 R (HD.6303) 7150 0 R (HD.6304) 7151 0 R (HD.6305) 7152 0 R (HD.6306) 7153 0 R (HD.6307) 7154 0 R (HD.6308) 7155 0 R (HD.6309) 7156 0 R (HD.631) 929 0 R (HD.6310) 7157 0 R (HD.6311) 7158 0 R (HD.6312) 7163 0 R (HD.6313) 7164 0 R (HD.6314) 7165 0 R (HD.6315) 7166 0 R (HD.6316) 7167 0 R (HD.6317) 7168 0 R (HD.6318) 7169 0 R (HD.6319) 7170 0 R (HD.632) 930 0 R (HD.6320) 7171 0 R (HD.6321) 7172 0 R (HD.6322) 7173 0 R (HD.6323) 7174 0 R ] /Limits [ (HD.6296) (HD.6323) ] >>
endobj
11802 0 obj
-<< /Names [ (HD.3485) 4075 0 R (HD.3486) 4076 0 R (HD.3487) 4077 0 R (HD.3488) 4078 0 R (HD.3489) 4079 0 R (HD.349) 589 0 R (HD.3490) 4080 0 R (HD.3491) 4081 0 R (HD.3492) 4082 0 R (HD.3493) 4083 0 R (HD.3494) 4084 0 R (HD.3495) 4085 0 R (HD.3496) 4086 0 R (HD.3497) 4087 0 R (HD.3498) 4088 0 R (HD.3499) 4093 0 R (HD.35) 230 0 R (HD.350) 590 0 R (HD.3500) 4094 0 R (HD.3501) 4095 0 R (HD.3502) 4096 0 R (HD.3503) 4097 0 R (HD.3504) 4098 0 R (HD.3505) 4099 0 R (HD.3506) 4100 0 R (HD.3507) 4101 0 R (HD.3508) 4102 0 R (HD.3509) 4103 0 R (HD.351) 591 0 R (HD.3510) 4104 0 R (HD.3511) 4105 0 R (HD.3512) 4106 0 R ] /Limits [ (HD.3485) (HD.3512) ] >>
+<< /Names [ (HD.6324) 7175 0 R (HD.6325) 7176 0 R (HD.6326) 7177 0 R (HD.6327) 7178 0 R (HD.6328) 7179 0 R (HD.6329) 7180 0 R (HD.633) 931 0 R (HD.6330) 7181 0 R (HD.6331) 7182 0 R (HD.6332) 7183 0 R (HD.6333) 7184 0 R (HD.6334) 7185 0 R (HD.6335) 7186 0 R (HD.6336) 7187 0 R (HD.6337) 7188 0 R (HD.6338) 7189 0 R (HD.6339) 7190 0 R (HD.634) 932 0 R (HD.6340) 7191 0 R (HD.6341) 7192 0 R (HD.6342) 7193 0 R (HD.6343) 7194 0 R (HD.6344) 7195 0 R (HD.6345) 7196 0 R (HD.6346) 7197 0 R (HD.6347) 7198 0 R (HD.6348) 7199 0 R (HD.6349) 7200 0 R (HD.635) 933 0 R (HD.6350) 7201 0 R (HD.6351) 7202 0 R (HD.6352) 7203 0 R ] /Limits [ (HD.6324) (HD.6352) ] >>
endobj
11803 0 obj
-<< /Names [ (HD.3513) 4107 0 R (HD.3514) 4108 0 R (HD.3515) 4109 0 R (HD.3516) 4110 0 R (HD.3517) 4111 0 R (HD.3518) 4112 0 R (HD.3519) 4113 0 R (HD.352) 592 0 R (HD.3520) 4114 0 R (HD.3521) 4115 0 R (HD.3522) 4116 0 R (HD.3523) 4117 0 R (HD.3524) 4118 0 R (HD.3525) 4119 0 R (HD.3526) 4120 0 R (HD.3527) 4121 0 R (HD.3528) 4122 0 R (HD.3529) 4123 0 R (HD.353) 593 0 R (HD.3530) 4124 0 R (HD.3531) 4125 0 R (HD.3532) 4126 0 R (HD.3533) 4127 0 R (HD.3534) 4128 0 R (HD.3535) 4129 0 R (HD.3536) 4130 0 R (HD.3537) 4131 0 R (HD.3538) 4132 0 R (HD.3539) 4133 0 R (HD.354) 594 0 R (HD.3540) 4134 0 R (HD.3541) 4135 0 R ] /Limits [ (HD.3513) (HD.3541) ] >>
+<< /Names [ (HD.6353) 7204 0 R (HD.6354) 7205 0 R (HD.6355) 7206 0 R (HD.6356) 7207 0 R (HD.6357) 7208 0 R (HD.6358) 7209 0 R (HD.6359) 7210 0 R (HD.636) 934 0 R (HD.6360) 7215 0 R (HD.6361) 7216 0 R (HD.6362) 7217 0 R (HD.6363) 7218 0 R (HD.6364) 7219 0 R (HD.6365) 7220 0 R (HD.6366) 7221 0 R (HD.6367) 7222 0 R (HD.6368) 7223 0 R (HD.6369) 7224 0 R (HD.637) 935 0 R (HD.6370) 7225 0 R (HD.6371) 7226 0 R (HD.6372) 7227 0 R (HD.6373) 7228 0 R (HD.6374) 7229 0 R (HD.6375) 7230 0 R (HD.6376) 7231 0 R (HD.6377) 7232 0 R (HD.6378) 7233 0 R (HD.6379) 7234 0 R (HD.638) 936 0 R (HD.6380) 7235 0 R (HD.6381) 7236 0 R ] /Limits [ (HD.6353) (HD.6381) ] >>
endobj
11804 0 obj
-<< /Names [ (HD.3542) 4136 0 R (HD.3543) 4137 0 R (HD.3544) 4138 0 R (HD.3545) 4139 0 R (HD.3546) 4140 0 R (HD.3547) 4141 0 R (HD.3548) 4142 0 R (HD.3549) 4143 0 R (HD.355) 595 0 R (HD.3550) 4144 0 R (HD.3551) 4145 0 R (HD.3552) 4146 0 R (HD.3553) 4147 0 R (HD.3554) 4148 0 R (HD.3555) 4149 0 R (HD.3556) 4150 0 R (HD.3557) 4155 0 R (HD.3558) 4156 0 R (HD.3559) 4157 0 R (HD.356) 596 0 R (HD.3560) 4158 0 R (HD.3561) 4159 0 R (HD.3562) 4160 0 R (HD.3563) 4161 0 R (HD.3564) 4162 0 R (HD.3565) 4163 0 R (HD.3566) 4164 0 R (HD.3567) 4165 0 R (HD.3568) 4166 0 R (HD.3569) 4167 0 R (HD.357) 597 0 R (HD.3570) 4168 0 R ] /Limits [ (HD.3542) (HD.3570) ] >>
+<< /Names [ (HD.6382) 7237 0 R (HD.6383) 7238 0 R (HD.6384) 7239 0 R (HD.6385) 7240 0 R (HD.6386) 7241 0 R (HD.6387) 7242 0 R (HD.6388) 7243 0 R (HD.6389) 7244 0 R (HD.639) 937 0 R (HD.6390) 7245 0 R (HD.6391) 7246 0 R (HD.6392) 7247 0 R (HD.6393) 7248 0 R (HD.6394) 7249 0 R (HD.6395) 7250 0 R (HD.6396) 7251 0 R (HD.6397) 7252 0 R (HD.6398) 7253 0 R (HD.6399) 7254 0 R (HD.64) 259 0 R (HD.640) 938 0 R (HD.6400) 7255 0 R (HD.6401) 7256 0 R (HD.6402) 7257 0 R (HD.6403) 7258 0 R (HD.6404) 7259 0 R (HD.6405) 7265 0 R (HD.6406) 7266 0 R (HD.6407) 7267 0 R (HD.6408) 7268 0 R (HD.6409) 7269 0 R (HD.641) 939 0 R ] /Limits [ (HD.6382) (HD.641) ] >>
endobj
11805 0 obj
-<< /Names [ (HD.3571) 4169 0 R (HD.3572) 4170 0 R (HD.3573) 4171 0 R (HD.3574) 4172 0 R (HD.3575) 4173 0 R (HD.3576) 4174 0 R (HD.3577) 4175 0 R (HD.3578) 4176 0 R (HD.3579) 4177 0 R (HD.358) 598 0 R (HD.3580) 4178 0 R (HD.3581) 4179 0 R (HD.3582) 4180 0 R (HD.3583) 4181 0 R (HD.3584) 4182 0 R (HD.3585) 4183 0 R (HD.3586) 4184 0 R (HD.3587) 4185 0 R (HD.3588) 4186 0 R (HD.3589) 4187 0 R (HD.359) 599 0 R (HD.3590) 4188 0 R (HD.3591) 4189 0 R (HD.3592) 4190 0 R (HD.3593) 4191 0 R (HD.3594) 4192 0 R (HD.3595) 4193 0 R (HD.3596) 4194 0 R (HD.3597) 4195 0 R (HD.3598) 4196 0 R (HD.3599) 4197 0 R (HD.36) 231 0 R ] /Limits [ (HD.3571) (HD.36) ] >>
+<< /Names [ (HD.6410) 7270 0 R (HD.6411) 7271 0 R (HD.6412) 7272 0 R (HD.6413) 7273 0 R (HD.6414) 7274 0 R (HD.6415) 7275 0 R (HD.6416) 7276 0 R (HD.6417) 7277 0 R (HD.6418) 7278 0 R (HD.6419) 7279 0 R (HD.642) 940 0 R (HD.6420) 7280 0 R (HD.6421) 7281 0 R (HD.6422) 7282 0 R (HD.6423) 7283 0 R (HD.6424) 7284 0 R (HD.6425) 7285 0 R (HD.6426) 7286 0 R (HD.6427) 7287 0 R (HD.6428) 7288 0 R (HD.6429) 7289 0 R (HD.643) 941 0 R (HD.6430) 7290 0 R (HD.6431) 7291 0 R (HD.6432) 7292 0 R (HD.6433) 7293 0 R (HD.6434) 7294 0 R (HD.6435) 7295 0 R (HD.6436) 7296 0 R (HD.6437) 7297 0 R (HD.6438) 7298 0 R (HD.6439) 7299 0 R ] /Limits [ (HD.6410) (HD.6439) ] >>
endobj
11806 0 obj
-<< /Names [ (HD.360) 600 0 R (HD.3600) 4198 0 R (HD.3601) 4199 0 R (HD.3602) 4204 0 R (HD.3603) 4205 0 R (HD.3604) 4206 0 R (HD.3605) 4207 0 R (HD.3606) 4208 0 R (HD.3607) 4209 0 R (HD.3608) 4210 0 R (HD.3609) 4211 0 R (HD.361) 601 0 R (HD.3610) 4212 0 R (HD.3611) 4213 0 R (HD.3612) 4214 0 R (HD.3613) 4215 0 R (HD.3614) 4216 0 R (HD.3615) 4217 0 R (HD.3616) 4218 0 R (HD.3617) 4219 0 R (HD.3618) 4220 0 R (HD.3619) 4221 0 R (HD.362) 602 0 R (HD.3620) 4222 0 R (HD.3621) 4223 0 R (HD.3622) 4224 0 R (HD.3623) 4225 0 R (HD.3624) 4226 0 R (HD.3625) 4227 0 R (HD.3626) 4228 0 R (HD.3627) 4229 0 R (HD.3628) 4230 0 R ] /Limits [ (HD.360) (HD.3628) ] >>
+<< /Names [ (HD.644) 942 0 R (HD.6440) 7300 0 R (HD.6441) 7301 0 R (HD.6442) 7302 0 R (HD.6443) 7303 0 R (HD.6444) 7304 0 R (HD.6445) 7305 0 R (HD.6446) 7306 0 R (HD.6447) 7307 0 R (HD.6448) 7308 0 R (HD.6449) 7309 0 R (HD.645) 943 0 R (HD.6450) 7310 0 R (HD.6451) 7311 0 R (HD.6452) 7312 0 R (HD.6453) 7313 0 R (HD.6454) 7314 0 R (HD.6455) 7315 0 R (HD.6456) 7316 0 R (HD.6457) 7317 0 R (HD.6458) 7318 0 R (HD.6459) 7319 0 R (HD.646) 944 0 R (HD.6460) 7324 0 R (HD.6461) 7325 0 R (HD.6462) 7326 0 R (HD.6463) 7327 0 R (HD.6464) 7328 0 R (HD.6465) 7329 0 R (HD.6466) 7330 0 R (HD.6467) 7331 0 R (HD.6468) 7332 0 R ] /Limits [ (HD.644) (HD.6468) ] >>
endobj
11807 0 obj
-<< /Names [ (HD.3629) 4231 0 R (HD.363) 608 0 R (HD.3630) 4232 0 R (HD.3631) 4233 0 R (HD.3632) 4234 0 R (HD.3633) 4235 0 R (HD.3634) 4236 0 R (HD.3635) 4237 0 R (HD.3636) 4238 0 R (HD.3637) 4239 0 R (HD.3638) 4240 0 R (HD.3639) 4241 0 R (HD.364) 609 0 R (HD.3640) 4242 0 R (HD.3641) 4243 0 R (HD.3642) 4244 0 R (HD.3643) 4245 0 R (HD.3644) 4246 0 R (HD.3645) 4247 0 R (HD.3646) 4248 0 R (HD.3647) 4249 0 R (HD.3648) 4250 0 R (HD.3649) 4251 0 R (HD.365) 610 0 R (HD.3650) 4256 0 R (HD.3651) 4257 0 R (HD.3652) 4258 0 R (HD.3653) 4259 0 R (HD.3654) 4260 0 R (HD.3655) 4261 0 R (HD.3656) 4262 0 R (HD.3657) 4263 0 R ] /Limits [ (HD.3629) (HD.3657) ] >>
+<< /Names [ (HD.6469) 7333 0 R (HD.647) 945 0 R (HD.6470) 7334 0 R (HD.6471) 7335 0 R (HD.6472) 7336 0 R (HD.6473) 7337 0 R (HD.6474) 7338 0 R (HD.6475) 7339 0 R (HD.6476) 7340 0 R (HD.6477) 7341 0 R (HD.6478) 7342 0 R (HD.6479) 7343 0 R (HD.648) 946 0 R (HD.6480) 7344 0 R (HD.6481) 7345 0 R (HD.6482) 7346 0 R (HD.6483) 7347 0 R (HD.6484) 7348 0 R (HD.6485) 7349 0 R (HD.6486) 7350 0 R (HD.6487) 7351 0 R (HD.6488) 7352 0 R (HD.6489) 7353 0 R (HD.649) 947 0 R (HD.6490) 7354 0 R (HD.6491) 7355 0 R (HD.6492) 7356 0 R (HD.6493) 7357 0 R (HD.6494) 7358 0 R (HD.6495) 7359 0 R (HD.6496) 7360 0 R (HD.6497) 7361 0 R ] /Limits [ (HD.6469) (HD.6497) ] >>
endobj
11808 0 obj
-<< /Names [ (HD.3658) 4264 0 R (HD.3659) 4265 0 R (HD.366) 611 0 R (HD.3660) 4266 0 R (HD.3661) 4267 0 R (HD.3662) 4268 0 R (HD.3663) 4269 0 R (HD.3664) 4270 0 R (HD.3665) 4271 0 R (HD.3666) 4272 0 R (HD.3667) 4273 0 R (HD.3668) 4274 0 R (HD.3669) 4275 0 R (HD.367) 612 0 R (HD.3670) 4276 0 R (HD.3671) 4277 0 R (HD.3672) 4278 0 R (HD.3673) 4279 0 R (HD.3674) 4280 0 R (HD.3675) 4281 0 R (HD.3676) 4282 0 R (HD.3677) 4283 0 R (HD.3678) 4284 0 R (HD.3679) 4285 0 R (HD.368) 613 0 R (HD.3680) 4286 0 R (HD.3681) 4287 0 R (HD.3682) 4288 0 R (HD.3683) 4289 0 R (HD.3684) 4290 0 R (HD.3685) 4291 0 R (HD.3686) 4292 0 R ] /Limits [ (HD.3658) (HD.3686) ] >>
+<< /Names [ (HD.6498) 7362 0 R (HD.6499) 7363 0 R (HD.65) 260 0 R (HD.650) 948 0 R (HD.6500) 7364 0 R (HD.6501) 7369 0 R (HD.6502) 7370 0 R (HD.6503) 7371 0 R (HD.6504) 7372 0 R (HD.6505) 7373 0 R (HD.6506) 7374 0 R (HD.6507) 7375 0 R (HD.6508) 7376 0 R (HD.6509) 7377 0 R (HD.651) 949 0 R (HD.6510) 7378 0 R (HD.6511) 7379 0 R (HD.6512) 7380 0 R (HD.6513) 7381 0 R (HD.6514) 7382 0 R (HD.6515) 7383 0 R (HD.6516) 7384 0 R (HD.6517) 7385 0 R (HD.6518) 7386 0 R (HD.6519) 7387 0 R (HD.652) 950 0 R (HD.6520) 7388 0 R (HD.6521) 7389 0 R (HD.6522) 7390 0 R (HD.6523) 7391 0 R (HD.6524) 7392 0 R (HD.6525) 7393 0 R ] /Limits [ (HD.6498) (HD.6525) ] >>
endobj
11809 0 obj
-<< /Names [ (HD.3687) 4293 0 R (HD.3688) 4294 0 R (HD.3689) 4295 0 R (HD.369) 614 0 R (HD.3690) 4296 0 R (HD.3691) 4297 0 R (HD.3692) 4298 0 R (HD.3693) 4299 0 R (HD.3694) 4300 0 R (HD.3695) 4306 0 R (HD.3696) 4307 0 R (HD.3697) 4308 0 R (HD.3698) 4309 0 R (HD.3699) 4310 0 R (HD.37) 232 0 R (HD.370) 615 0 R (HD.3700) 4311 0 R (HD.3701) 4312 0 R (HD.3702) 4313 0 R (HD.3703) 4314 0 R (HD.3704) 4315 0 R (HD.3705) 4316 0 R (HD.3706) 4317 0 R (HD.3707) 4318 0 R (HD.3708) 4319 0 R (HD.3709) 4320 0 R (HD.371) 616 0 R (HD.3710) 4321 0 R (HD.3711) 4322 0 R (HD.3712) 4323 0 R (HD.3713) 4324 0 R (HD.3714) 4325 0 R ] /Limits [ (HD.3687) (HD.3714) ] >>
+<< /Names [ (HD.6526) 7394 0 R (HD.6527) 7395 0 R (HD.6528) 7396 0 R (HD.6529) 7397 0 R (HD.653) 951 0 R (HD.6530) 7398 0 R (HD.6531) 7399 0 R (HD.6532) 7400 0 R (HD.6533) 7401 0 R (HD.6534) 7402 0 R (HD.6535) 7403 0 R (HD.6536) 7404 0 R (HD.6537) 7405 0 R (HD.6538) 7406 0 R (HD.6539) 7407 0 R (HD.654) 952 0 R (HD.6540) 7408 0 R (HD.6541) 7409 0 R (HD.6542) 7410 0 R (HD.6543) 7411 0 R (HD.6544) 7412 0 R (HD.6545) 7413 0 R (HD.6546) 7414 0 R (HD.6547) 7415 0 R (HD.6548) 7416 0 R (HD.6549) 7417 0 R (HD.655) 953 0 R (HD.6550) 7418 0 R (HD.6551) 7419 0 R (HD.6552) 7420 0 R (HD.6553) 7421 0 R (HD.6554) 7422 0 R ] /Limits [ (HD.6526) (HD.6554) ] >>
endobj
11810 0 obj
-<< /Names [ (HD.3715) 4326 0 R (HD.3716) 4327 0 R (HD.3717) 4328 0 R (HD.3718) 4329 0 R (HD.3719) 4330 0 R (HD.372) 617 0 R (HD.3720) 4331 0 R (HD.3721) 4332 0 R (HD.3722) 4333 0 R (HD.3723) 4334 0 R (HD.3724) 4335 0 R (HD.3725) 4336 0 R (HD.3726) 4337 0 R (HD.3727) 4338 0 R (HD.3728) 4339 0 R (HD.3729) 4340 0 R (HD.373) 618 0 R (HD.3730) 4341 0 R (HD.3731) 4342 0 R (HD.3732) 4343 0 R (HD.3733) 4344 0 R (HD.3734) 4345 0 R (HD.3735) 4346 0 R (HD.3736) 4347 0 R (HD.3737) 4348 0 R (HD.3738) 4349 0 R (HD.3739) 4350 0 R (HD.374) 619 0 R (HD.3740) 4351 0 R (HD.3741) 4352 0 R (HD.3742) 4353 0 R (HD.3743) 4354 0 R ] /Limits [ (HD.3715) (HD.3743) ] >>
+<< /Names [ (HD.6555) 7423 0 R (HD.6556) 7424 0 R (HD.6557) 7429 0 R (HD.6558) 7430 0 R (HD.6559) 7431 0 R (HD.656) 954 0 R (HD.6560) 7432 0 R (HD.6561) 7433 0 R (HD.6562) 7434 0 R (HD.6563) 7435 0 R (HD.6564) 7436 0 R (HD.6565) 7437 0 R (HD.6566) 7438 0 R (HD.6567) 7439 0 R (HD.6568) 7440 0 R (HD.6569) 7441 0 R (HD.657) 955 0 R (HD.6570) 7442 0 R (HD.6571) 7443 0 R (HD.6572) 7444 0 R (HD.6573) 7445 0 R (HD.6574) 7446 0 R (HD.6575) 7447 0 R (HD.6576) 7448 0 R (HD.6577) 7449 0 R (HD.6578) 7450 0 R (HD.6579) 7451 0 R (HD.658) 956 0 R (HD.6580) 7452 0 R (HD.6581) 7453 0 R (HD.6582) 7454 0 R (HD.6583) 7455 0 R ] /Limits [ (HD.6555) (HD.6583) ] >>
endobj
11811 0 obj
-<< /Names [ (HD.3744) 4355 0 R (HD.3745) 4356 0 R (HD.3746) 4361 0 R (HD.3747) 4362 0 R (HD.3748) 4363 0 R (HD.3749) 4364 0 R (HD.375) 620 0 R (HD.3750) 4365 0 R (HD.3751) 4366 0 R (HD.3752) 4367 0 R (HD.3753) 4368 0 R (HD.3754) 4369 0 R (HD.3755) 4370 0 R (HD.3756) 4371 0 R (HD.3757) 4372 0 R (HD.3758) 4373 0 R (HD.3759) 4374 0 R (HD.376) 621 0 R (HD.3760) 4375 0 R (HD.3761) 4376 0 R (HD.3762) 4377 0 R (HD.3763) 4378 0 R (HD.3764) 4379 0 R (HD.3765) 4380 0 R (HD.3766) 4381 0 R (HD.3767) 4382 0 R (HD.3768) 4383 0 R (HD.3769) 4384 0 R (HD.377) 622 0 R (HD.3770) 4385 0 R (HD.3771) 4386 0 R (HD.3772) 4387 0 R ] /Limits [ (HD.3744) (HD.3772) ] >>
+<< /Names [ (HD.6584) 7456 0 R (HD.6585) 7457 0 R (HD.6586) 7458 0 R (HD.6587) 7459 0 R (HD.6588) 7460 0 R (HD.6589) 7461 0 R (HD.659) 957 0 R (HD.6590) 7462 0 R (HD.6591) 7463 0 R (HD.6592) 7464 0 R (HD.6593) 7465 0 R (HD.6594) 7466 0 R (HD.6595) 7467 0 R (HD.6596) 7468 0 R (HD.6597) 7469 0 R (HD.6598) 7470 0 R (HD.6599) 7471 0 R (HD.66) 261 0 R (HD.660) 958 0 R (HD.6600) 7472 0 R (HD.6601) 7473 0 R (HD.6602) 7474 0 R (HD.6603) 7475 0 R (HD.6604) 7476 0 R (HD.6605) 7477 0 R (HD.6606) 7478 0 R (HD.6607) 7479 0 R (HD.6608) 7480 0 R (HD.6609) 7485 0 R (HD.661) 963 0 R (HD.6610) 7486 0 R (HD.6611) 7487 0 R ] /Limits [ (HD.6584) (HD.6611) ] >>
endobj
11812 0 obj
-<< /Names [ (HD.3773) 4388 0 R (HD.3774) 4389 0 R (HD.3775) 4390 0 R (HD.3776) 4391 0 R (HD.3777) 4392 0 R (HD.3778) 4393 0 R (HD.3779) 4394 0 R (HD.378) 623 0 R (HD.3780) 4395 0 R (HD.3781) 4396 0 R (HD.3782) 4397 0 R (HD.3783) 4398 0 R (HD.3784) 4399 0 R (HD.3785) 4400 0 R (HD.3786) 4401 0 R (HD.3787) 4402 0 R (HD.3788) 4403 0 R (HD.3789) 4404 0 R (HD.379) 624 0 R (HD.3790) 4405 0 R (HD.3791) 4406 0 R (HD.3792) 4407 0 R (HD.3793) 4408 0 R (HD.3794) 4409 0 R (HD.3795) 4410 0 R (HD.3796) 4411 0 R (HD.3797) 4412 0 R (HD.3798) 4413 0 R (HD.3799) 4414 0 R (HD.38) 233 0 R (HD.380) 625 0 R (HD.3800) 4415 0 R ] /Limits [ (HD.3773) (HD.3800) ] >>
+<< /Names [ (HD.6612) 7488 0 R (HD.6613) 7489 0 R (HD.6614) 7490 0 R (HD.6615) 7491 0 R (HD.6616) 7492 0 R (HD.6617) 7493 0 R (HD.6618) 7494 0 R (HD.6619) 7495 0 R (HD.662) 964 0 R (HD.6620) 7496 0 R (HD.6621) 7497 0 R (HD.6622) 7498 0 R (HD.6623) 7499 0 R (HD.6624) 7500 0 R (HD.6625) 7501 0 R (HD.6626) 7502 0 R (HD.6627) 7503 0 R (HD.6628) 7504 0 R (HD.6629) 7505 0 R (HD.663) 965 0 R (HD.6630) 7506 0 R (HD.6631) 7507 0 R (HD.6632) 7508 0 R (HD.6633) 7509 0 R (HD.6634) 7510 0 R (HD.6635) 7511 0 R (HD.6636) 7512 0 R (HD.6637) 7513 0 R (HD.6638) 7514 0 R (HD.6639) 7515 0 R (HD.664) 966 0 R (HD.6640) 7516 0 R ] /Limits [ (HD.6612) (HD.6640) ] >>
endobj
11813 0 obj
-<< /Names [ (HD.3801) 4416 0 R (HD.3802) 4417 0 R (HD.3803) 4418 0 R (HD.3804) 4419 0 R (HD.3805) 4420 0 R (HD.3806) 4425 0 R (HD.3807) 4426 0 R (HD.3808) 4427 0 R (HD.3809) 4428 0 R (HD.381) 626 0 R (HD.3810) 4429 0 R (HD.3811) 4430 0 R (HD.3812) 4431 0 R (HD.3813) 4432 0 R (HD.3814) 4433 0 R (HD.3815) 4434 0 R (HD.3816) 4435 0 R (HD.3817) 4436 0 R (HD.3818) 4437 0 R (HD.3819) 4438 0 R (HD.382) 627 0 R (HD.3820) 4439 0 R (HD.3821) 4440 0 R (HD.3822) 4441 0 R (HD.3823) 4442 0 R (HD.3824) 4443 0 R (HD.3825) 4444 0 R (HD.3826) 4445 0 R (HD.3827) 4446 0 R (HD.3828) 4447 0 R (HD.3829) 4448 0 R (HD.383) 628 0 R ] /Limits [ (HD.3801) (HD.383) ] >>
+<< /Names [ (HD.6641) 7517 0 R (HD.6642) 7518 0 R (HD.6643) 7519 0 R (HD.6644) 7520 0 R (HD.6645) 7521 0 R (HD.6646) 7522 0 R (HD.6647) 7523 0 R (HD.6648) 7524 0 R (HD.6649) 7525 0 R (HD.665) 967 0 R (HD.6650) 7526 0 R (HD.6651) 7527 0 R (HD.6652) 7528 0 R (HD.6653) 7529 0 R (HD.6654) 7530 0 R (HD.6655) 7535 0 R (HD.6656) 7536 0 R (HD.6657) 7537 0 R (HD.6658) 7538 0 R (HD.6659) 7539 0 R (HD.666) 968 0 R (HD.6660) 7540 0 R (HD.6661) 7541 0 R (HD.6662) 7542 0 R (HD.6663) 7543 0 R (HD.6664) 7544 0 R (HD.6665) 7545 0 R (HD.6666) 7546 0 R (HD.6667) 7547 0 R (HD.6668) 7548 0 R (HD.6669) 7549 0 R (HD.667) 969 0 R ] /Limits [ (HD.6641) (HD.667) ] >>
endobj
11814 0 obj
-<< /Names [ (HD.3830) 4449 0 R (HD.3831) 4450 0 R (HD.3832) 4451 0 R (HD.3833) 4452 0 R (HD.3834) 4453 0 R (HD.3835) 4454 0 R (HD.3836) 4455 0 R (HD.3837) 4456 0 R (HD.3838) 4457 0 R (HD.3839) 4458 0 R (HD.384) 629 0 R (HD.3840) 4459 0 R (HD.3841) 4464 0 R (HD.3842) 4465 0 R (HD.3843) 4466 0 R (HD.3844) 4467 0 R (HD.3845) 4468 0 R (HD.3846) 4469 0 R (HD.3847) 4470 0 R (HD.3848) 4471 0 R (HD.3849) 4472 0 R (HD.385) 630 0 R (HD.3850) 4473 0 R (HD.3851) 4474 0 R (HD.3852) 4475 0 R (HD.3853) 4476 0 R (HD.3854) 4477 0 R (HD.3855) 4478 0 R (HD.3856) 4479 0 R (HD.3857) 4480 0 R (HD.3858) 4481 0 R (HD.3859) 4482 0 R ] /Limits [ (HD.3830) (HD.3859) ] >>
+<< /Names [ (HD.6670) 7550 0 R (HD.6671) 7551 0 R (HD.6672) 7552 0 R (HD.6673) 7553 0 R (HD.6674) 7554 0 R (HD.6675) 7555 0 R (HD.6676) 7556 0 R (HD.6677) 7557 0 R (HD.6678) 7558 0 R (HD.6679) 7559 0 R (HD.668) 970 0 R (HD.6680) 7560 0 R (HD.6681) 7561 0 R (HD.6682) 7562 0 R (HD.6683) 7563 0 R (HD.6684) 7564 0 R (HD.6685) 7565 0 R (HD.6686) 7566 0 R (HD.6687) 7567 0 R (HD.6688) 7568 0 R (HD.6689) 7569 0 R (HD.669) 971 0 R (HD.6690) 7570 0 R (HD.6691) 7571 0 R (HD.6692) 7576 0 R (HD.6693) 7577 0 R (HD.6694) 7578 0 R (HD.6695) 7579 0 R (HD.6696) 7580 0 R (HD.6697) 7581 0 R (HD.6698) 7582 0 R (HD.6699) 7583 0 R ] /Limits [ (HD.6670) (HD.6699) ] >>
endobj
11815 0 obj
-<< /Names [ (HD.386) 635 0 R (HD.3860) 4483 0 R (HD.3861) 4484 0 R (HD.3862) 4485 0 R (HD.3863) 4486 0 R (HD.3864) 4487 0 R (HD.3865) 4488 0 R (HD.3866) 4489 0 R (HD.3867) 4490 0 R (HD.3868) 4491 0 R (HD.3869) 4492 0 R (HD.387) 636 0 R (HD.3870) 4493 0 R (HD.3871) 4494 0 R (HD.3872) 4495 0 R (HD.3873) 4496 0 R (HD.3874) 4497 0 R (HD.3875) 4498 0 R (HD.3876) 4499 0 R (HD.3877) 4500 0 R (HD.3878) 4501 0 R (HD.3879) 4502 0 R (HD.388) 637 0 R (HD.3880) 4503 0 R (HD.3881) 4504 0 R (HD.3882) 4505 0 R (HD.3883) 4506 0 R (HD.3884) 4507 0 R (HD.3885) 4508 0 R (HD.3886) 4509 0 R (HD.3887) 4510 0 R (HD.3888) 4511 0 R ] /Limits [ (HD.386) (HD.3888) ] >>
+<< /Names [ (HD.67) 262 0 R (HD.670) 972 0 R (HD.6700) 7584 0 R (HD.6701) 7585 0 R (HD.6702) 7586 0 R (HD.6703) 7587 0 R (HD.6704) 7588 0 R (HD.6705) 7589 0 R (HD.6706) 7590 0 R (HD.6707) 7591 0 R (HD.6708) 7592 0 R (HD.6709) 7593 0 R (HD.671) 973 0 R (HD.6710) 7594 0 R (HD.6711) 7595 0 R (HD.6712) 7596 0 R (HD.6713) 7597 0 R (HD.6714) 7598 0 R (HD.6715) 7599 0 R (HD.6716) 7600 0 R (HD.6717) 7601 0 R (HD.6718) 7602 0 R (HD.6719) 7603 0 R (HD.672) 974 0 R (HD.6720) 7604 0 R (HD.6721) 7605 0 R (HD.6722) 7606 0 R (HD.6723) 7607 0 R (HD.6724) 7608 0 R (HD.6725) 7609 0 R (HD.6726) 7610 0 R (HD.6727) 7611 0 R ] /Limits [ (HD.67) (HD.6727) ] >>
endobj
11816 0 obj
-<< /Names [ (HD.3889) 4512 0 R (HD.389) 638 0 R (HD.3890) 4513 0 R (HD.3891) 4514 0 R (HD.3892) 4515 0 R (HD.3893) 4516 0 R (HD.3894) 4517 0 R (HD.3895) 4518 0 R (HD.3896) 4524 0 R (HD.3897) 4525 0 R (HD.3898) 4526 0 R (HD.3899) 4527 0 R (HD.39) 234 0 R (HD.390) 639 0 R (HD.3900) 4528 0 R (HD.3901) 4529 0 R (HD.3902) 4530 0 R (HD.3903) 4531 0 R (HD.3904) 4532 0 R (HD.3905) 4534 0 R (HD.3906) 4535 0 R (HD.3907) 4536 0 R (HD.3908) 4537 0 R (HD.3909) 4538 0 R (HD.391) 640 0 R (HD.3910) 4539 0 R (HD.3911) 4540 0 R (HD.3912) 4541 0 R (HD.3913) 4542 0 R (HD.3914) 4543 0 R (HD.3915) 4544 0 R (HD.3916) 4545 0 R ] /Limits [ (HD.3889) (HD.3916) ] >>
+<< /Names [ (HD.6728) 7612 0 R (HD.6729) 7613 0 R (HD.673) 975 0 R (HD.6730) 7614 0 R (HD.6731) 7615 0 R (HD.6732) 7616 0 R (HD.6733) 7617 0 R (HD.6734) 7618 0 R (HD.6735) 7619 0 R (HD.6736) 7620 0 R (HD.6737) 7625 0 R (HD.6738) 7626 0 R (HD.6739) 7627 0 R (HD.674) 976 0 R (HD.6740) 7628 0 R (HD.6741) 7629 0 R (HD.6742) 7630 0 R (HD.6743) 7631 0 R (HD.6744) 7632 0 R (HD.6745) 7633 0 R (HD.6746) 7634 0 R (HD.6747) 7635 0 R (HD.6748) 7636 0 R (HD.6749) 7637 0 R (HD.675) 977 0 R (HD.6750) 7638 0 R (HD.6751) 7639 0 R (HD.6752) 7640 0 R (HD.6753) 7641 0 R (HD.6754) 7642 0 R (HD.6755) 7643 0 R (HD.6756) 7644 0 R ] /Limits [ (HD.6728) (HD.6756) ] >>
endobj
11817 0 obj
-<< /Names [ (HD.3917) 4546 0 R (HD.3918) 4547 0 R (HD.3919) 4548 0 R (HD.392) 641 0 R (HD.3920) 4549 0 R (HD.3921) 4550 0 R (HD.3922) 4551 0 R (HD.3923) 4552 0 R (HD.3924) 4553 0 R (HD.3925) 4554 0 R (HD.3926) 4555 0 R (HD.3927) 4556 0 R (HD.3928) 4563 0 R (HD.3929) 4564 0 R (HD.393) 642 0 R (HD.3930) 4565 0 R (HD.3931) 4566 0 R (HD.3932) 4567 0 R (HD.3933) 4568 0 R (HD.3934) 4569 0 R (HD.3935) 4570 0 R (HD.3936) 4571 0 R (HD.3937) 4572 0 R (HD.3938) 4573 0 R (HD.3939) 4574 0 R (HD.394) 643 0 R (HD.3940) 4575 0 R (HD.3941) 4576 0 R (HD.3942) 4577 0 R (HD.3943) 4578 0 R (HD.3944) 4579 0 R (HD.3945) 4580 0 R ] /Limits [ (HD.3917) (HD.3945) ] >>
+<< /Names [ (HD.6757) 7645 0 R (HD.6758) 7646 0 R (HD.6759) 7647 0 R (HD.676) 978 0 R (HD.6760) 7648 0 R (HD.6761) 7649 0 R (HD.6762) 7650 0 R (HD.6763) 7651 0 R (HD.6764) 7652 0 R (HD.6765) 7653 0 R (HD.6766) 7654 0 R (HD.6767) 7655 0 R (HD.6768) 7656 0 R (HD.6769) 7657 0 R (HD.677) 979 0 R (HD.6770) 7658 0 R (HD.6771) 7659 0 R (HD.6772) 7660 0 R (HD.6773) 7661 0 R (HD.6774) 7662 0 R (HD.6775) 7663 0 R (HD.6776) 7664 0 R (HD.6777) 7665 0 R (HD.6778) 7666 0 R (HD.6779) 7667 0 R (HD.678) 980 0 R (HD.6780) 7668 0 R (HD.6781) 7669 0 R (HD.6782) 7670 0 R (HD.6783) 7675 0 R (HD.6784) 7676 0 R (HD.6785) 7677 0 R ] /Limits [ (HD.6757) (HD.6785) ] >>
endobj
11818 0 obj
-<< /Names [ (HD.3946) 4581 0 R (HD.3947) 4582 0 R (HD.3948) 4583 0 R (HD.3949) 4584 0 R (HD.395) 644 0 R (HD.3950) 4585 0 R (HD.3951) 4586 0 R (HD.3952) 4587 0 R (HD.3953) 4588 0 R (HD.3954) 4589 0 R (HD.3955) 4590 0 R (HD.3956) 4591 0 R (HD.3957) 4592 0 R (HD.3958) 4593 0 R (HD.3959) 4594 0 R (HD.396) 645 0 R (HD.3960) 4595 0 R (HD.3961) 4596 0 R (HD.3962) 4597 0 R (HD.3963) 4598 0 R (HD.3964) 4599 0 R (HD.3965) 4600 0 R (HD.3966) 4601 0 R (HD.3967) 4602 0 R (HD.3968) 4603 0 R (HD.3969) 4609 0 R (HD.397) 646 0 R (HD.3970) 4610 0 R (HD.3971) 4611 0 R (HD.3972) 4612 0 R (HD.3973) 4613 0 R (HD.3974) 4614 0 R ] /Limits [ (HD.3946) (HD.3974) ] >>
+<< /Names [ (HD.6786) 7678 0 R (HD.6787) 7679 0 R (HD.6788) 7680 0 R (HD.6789) 7681 0 R (HD.679) 981 0 R (HD.6790) 7682 0 R (HD.6791) 7683 0 R (HD.6792) 7684 0 R (HD.6793) 7685 0 R (HD.6794) 7686 0 R (HD.6795) 7687 0 R (HD.6796) 7688 0 R (HD.6797) 7689 0 R (HD.6798) 7690 0 R (HD.6799) 7691 0 R (HD.68) 263 0 R (HD.680) 982 0 R (HD.6800) 7692 0 R (HD.6801) 7693 0 R (HD.6802) 7694 0 R (HD.6803) 7695 0 R (HD.6804) 7696 0 R (HD.6805) 7697 0 R (HD.6806) 7698 0 R (HD.6807) 7699 0 R (HD.6808) 7700 0 R (HD.6809) 7701 0 R (HD.681) 983 0 R (HD.6810) 7702 0 R (HD.6811) 7703 0 R (HD.6812) 7704 0 R (HD.6813) 7709 0 R ] /Limits [ (HD.6786) (HD.6813) ] >>
endobj
11819 0 obj
-<< /Names [ (HD.3975) 4615 0 R (HD.3976) 4616 0 R (HD.3977) 4617 0 R (HD.3978) 4618 0 R (HD.3979) 4619 0 R (HD.398) 647 0 R (HD.3980) 4620 0 R (HD.3981) 4621 0 R (HD.3982) 4622 0 R (HD.3983) 4623 0 R (HD.3984) 4624 0 R (HD.3985) 4625 0 R (HD.3986) 4626 0 R (HD.3987) 4627 0 R (HD.3988) 4628 0 R (HD.3989) 4629 0 R (HD.399) 648 0 R (HD.3990) 4630 0 R (HD.3991) 4631 0 R (HD.3992) 4632 0 R (HD.3993) 4633 0 R (HD.3994) 4634 0 R (HD.3995) 4635 0 R (HD.3996) 4636 0 R (HD.3997) 4637 0 R (HD.3998) 4638 0 R (HD.3999) 4639 0 R (HD.4) 192 0 R (HD.40) 235 0 R (HD.400) 649 0 R (HD.4000) 4640 0 R (HD.4001) 4641 0 R ] /Limits [ (HD.3975) (HD.4001) ] >>
+<< /Names [ (HD.6814) 7710 0 R (HD.6815) 7711 0 R (HD.6816) 7712 0 R (HD.6817) 7713 0 R (HD.6818) 7714 0 R (HD.6819) 7715 0 R (HD.682) 984 0 R (HD.6820) 7716 0 R (HD.6821) 7717 0 R (HD.6822) 7718 0 R (HD.6823) 7719 0 R (HD.6824) 7720 0 R (HD.6825) 7721 0 R (HD.6826) 7722 0 R (HD.6827) 7723 0 R (HD.6828) 7724 0 R (HD.6829) 7725 0 R (HD.683) 985 0 R (HD.6830) 7726 0 R (HD.6831) 7727 0 R (HD.6832) 7728 0 R (HD.6833) 7729 0 R (HD.6834) 7730 0 R (HD.6835) 7731 0 R (HD.6836) 7732 0 R (HD.6837) 7733 0 R (HD.6838) 7734 0 R (HD.6839) 7735 0 R (HD.684) 986 0 R (HD.6840) 7736 0 R (HD.6841) 7737 0 R (HD.6842) 7738 0 R ] /Limits [ (HD.6814) (HD.6842) ] >>
endobj
11820 0 obj
-<< /Names [ (HD.4002) 4642 0 R (HD.4003) 4643 0 R (HD.4004) 4644 0 R (HD.4005) 4645 0 R (HD.4006) 4646 0 R (HD.4007) 4647 0 R (HD.4008) 4648 0 R (HD.4009) 4655 0 R (HD.401) 650 0 R (HD.4010) 4656 0 R (HD.4011) 4657 0 R (HD.4012) 4658 0 R (HD.4013) 4659 0 R (HD.4014) 4660 0 R (HD.4015) 4661 0 R (HD.4016) 4662 0 R (HD.4017) 4663 0 R (HD.4018) 4664 0 R (HD.4019) 4665 0 R (HD.402) 651 0 R (HD.4020) 4666 0 R (HD.4021) 4667 0 R (HD.4022) 4668 0 R (HD.4023) 4669 0 R (HD.4024) 4670 0 R (HD.4025) 4671 0 R (HD.4026) 4672 0 R (HD.4027) 4673 0 R (HD.4028) 4674 0 R (HD.4029) 4675 0 R (HD.403) 652 0 R (HD.4030) 4676 0 R ] /Limits [ (HD.4002) (HD.4030) ] >>
+<< /Names [ (HD.6843) 7739 0 R (HD.6844) 7740 0 R (HD.6845) 7741 0 R (HD.6846) 7742 0 R (HD.6847) 7743 0 R (HD.6848) 7744 0 R (HD.6849) 7745 0 R (HD.685) 987 0 R (HD.6850) 7746 0 R (HD.6851) 7747 0 R (HD.6852) 7748 0 R (HD.6853) 7749 0 R (HD.6854) 7750 0 R (HD.6855) 7751 0 R (HD.6856) 7752 0 R (HD.6857) 7753 0 R (HD.6858) 7754 0 R (HD.6859) 7755 0 R (HD.686) 988 0 R (HD.6860) 7756 0 R (HD.6861) 7757 0 R (HD.6862) 7758 0 R (HD.6863) 7765 0 R (HD.6864) 7766 0 R (HD.6865) 7767 0 R (HD.6866) 7768 0 R (HD.6867) 7769 0 R (HD.6868) 7770 0 R (HD.6869) 7771 0 R (HD.687) 989 0 R (HD.6870) 7772 0 R (HD.6871) 7773 0 R ] /Limits [ (HD.6843) (HD.6871) ] >>
endobj
11821 0 obj
-<< /Names [ (HD.4031) 4677 0 R (HD.4032) 4678 0 R (HD.4033) 4679 0 R (HD.4034) 4680 0 R (HD.4035) 4681 0 R (HD.4036) 4682 0 R (HD.4037) 4683 0 R (HD.4038) 4684 0 R (HD.4039) 4685 0 R (HD.404) 653 0 R (HD.4040) 4686 0 R (HD.4041) 4687 0 R (HD.4042) 4688 0 R (HD.4043) 4689 0 R (HD.4044) 4690 0 R (HD.4045) 4691 0 R (HD.4046) 4692 0 R (HD.4047) 4693 0 R (HD.4048) 4694 0 R (HD.4049) 4695 0 R (HD.405) 654 0 R (HD.4050) 4696 0 R (HD.4051) 4697 0 R (HD.4052) 4698 0 R (HD.4053) 4699 0 R (HD.4054) 4700 0 R (HD.4055) 4701 0 R (HD.4056) 4702 0 R (HD.4057) 4707 0 R (HD.4058) 4708 0 R (HD.4059) 4709 0 R (HD.406) 659 0 R ] /Limits [ (HD.4031) (HD.406) ] >>
+<< /Names [ (HD.6872) 7774 0 R (HD.6873) 7775 0 R (HD.6874) 7776 0 R (HD.6875) 7777 0 R (HD.6876) 7778 0 R (HD.6877) 7779 0 R (HD.6878) 7780 0 R (HD.6879) 7781 0 R (HD.688) 990 0 R (HD.6880) 7782 0 R (HD.6881) 7783 0 R (HD.6882) 7784 0 R (HD.6883) 7785 0 R (HD.6884) 7786 0 R (HD.6885) 7787 0 R (HD.6886) 7788 0 R (HD.6887) 7789 0 R (HD.6888) 7790 0 R (HD.6889) 7791 0 R (HD.689) 991 0 R (HD.6890) 7792 0 R (HD.6891) 7793 0 R (HD.6892) 7794 0 R (HD.6893) 7795 0 R (HD.6894) 7796 0 R (HD.6895) 7797 0 R (HD.6896) 7798 0 R (HD.6897) 7799 0 R (HD.6898) 7800 0 R (HD.6899) 7801 0 R (HD.69) 264 0 R (HD.690) 992 0 R ] /Limits [ (HD.6872) (HD.690) ] >>
endobj
11822 0 obj
-<< /Names [ (HD.4060) 4710 0 R (HD.4061) 4711 0 R (HD.4062) 4712 0 R (HD.4063) 4713 0 R (HD.4064) 4714 0 R (HD.4065) 4715 0 R (HD.4066) 4716 0 R (HD.4067) 4717 0 R (HD.4068) 4718 0 R (HD.4069) 4719 0 R (HD.407) 661 0 R (HD.4070) 4720 0 R (HD.4071) 4721 0 R (HD.4072) 4722 0 R (HD.4073) 4723 0 R (HD.4074) 4724 0 R (HD.4075) 4725 0 R (HD.4076) 4726 0 R (HD.4077) 4727 0 R (HD.4078) 4728 0 R (HD.4079) 4729 0 R (HD.408) 663 0 R (HD.4080) 4730 0 R (HD.4081) 4731 0 R (HD.4082) 4732 0 R (HD.4083) 4733 0 R (HD.4084) 4734 0 R (HD.4085) 4735 0 R (HD.4086) 4736 0 R (HD.4087) 4737 0 R (HD.4088) 4738 0 R (HD.4089) 4739 0 R ] /Limits [ (HD.4060) (HD.4089) ] >>
+<< /Names [ (HD.6900) 7802 0 R (HD.6901) 7803 0 R (HD.6902) 7804 0 R (HD.6903) 7805 0 R (HD.6904) 7806 0 R (HD.6905) 7813 0 R (HD.6906) 7814 0 R (HD.6907) 7815 0 R (HD.6908) 7816 0 R (HD.6909) 7817 0 R (HD.691) 993 0 R (HD.6910) 7818 0 R (HD.6911) 7819 0 R (HD.6912) 7820 0 R (HD.6913) 7821 0 R (HD.6914) 7822 0 R (HD.6915) 7823 0 R (HD.6916) 7824 0 R (HD.6917) 7825 0 R (HD.6918) 7826 0 R (HD.6919) 7827 0 R (HD.692) 994 0 R (HD.6920) 7828 0 R (HD.6921) 7829 0 R (HD.6922) 7830 0 R (HD.6923) 7831 0 R (HD.6924) 7832 0 R (HD.6925) 7833 0 R (HD.6926) 7834 0 R (HD.6927) 7835 0 R (HD.6928) 7836 0 R (HD.6929) 7837 0 R ] /Limits [ (HD.6900) (HD.6929) ] >>
endobj
11823 0 obj
-<< /Names [ (HD.409) 664 0 R (HD.4090) 4740 0 R (HD.4091) 4741 0 R (HD.4092) 4742 0 R (HD.4093) 4747 0 R (HD.4094) 4748 0 R (HD.4095) 4749 0 R (HD.4096) 4750 0 R (HD.4097) 4751 0 R (HD.4098) 4752 0 R (HD.4099) 4753 0 R (HD.41) 236 0 R (HD.410) 665 0 R (HD.4100) 4754 0 R (HD.4101) 4755 0 R (HD.4102) 4756 0 R (HD.4103) 4757 0 R (HD.4104) 4758 0 R (HD.4105) 4759 0 R (HD.4106) 4760 0 R (HD.4107) 4761 0 R (HD.4108) 4762 0 R (HD.4109) 4763 0 R (HD.411) 666 0 R (HD.4110) 4764 0 R (HD.4111) 4765 0 R (HD.4112) 4766 0 R (HD.4113) 4767 0 R (HD.4114) 4768 0 R (HD.4115) 4769 0 R (HD.4116) 4770 0 R (HD.4117) 4771 0 R ] /Limits [ (HD.409) (HD.4117) ] >>
+<< /Names [ (HD.693) 995 0 R (HD.6930) 7838 0 R (HD.6931) 7839 0 R (HD.6932) 7840 0 R (HD.6933) 7841 0 R (HD.6934) 7842 0 R (HD.6935) 7843 0 R (HD.6936) 7844 0 R (HD.6937) 7845 0 R (HD.6938) 7846 0 R (HD.6939) 7847 0 R (HD.694) 996 0 R (HD.6940) 7848 0 R (HD.6941) 7849 0 R (HD.6942) 7850 0 R (HD.6943) 7851 0 R (HD.6944) 7852 0 R (HD.6945) 7853 0 R (HD.6946) 7854 0 R (HD.6947) 7855 0 R (HD.6948) 7856 0 R (HD.6949) 7857 0 R (HD.695) 997 0 R (HD.6950) 7858 0 R (HD.6951) 7859 0 R (HD.6952) 7860 0 R (HD.6953) 7861 0 R (HD.6954) 7866 0 R (HD.6955) 7867 0 R (HD.6956) 7868 0 R (HD.6957) 7869 0 R (HD.6958) 7870 0 R ] /Limits [ (HD.693) (HD.6958) ] >>
endobj
11824 0 obj
-<< /Names [ (HD.4118) 4772 0 R (HD.4119) 4773 0 R (HD.412) 667 0 R (HD.4120) 4774 0 R (HD.4121) 4775 0 R (HD.4122) 4776 0 R (HD.4123) 4777 0 R (HD.4124) 4778 0 R (HD.4125) 4779 0 R (HD.4126) 4780 0 R (HD.4127) 4781 0 R (HD.4128) 4782 0 R (HD.4129) 4783 0 R (HD.413) 669 0 R (HD.4130) 4784 0 R (HD.4131) 4790 0 R (HD.4132) 4791 0 R (HD.4133) 4792 0 R (HD.4134) 4793 0 R (HD.4135) 4794 0 R (HD.4136) 4795 0 R (HD.4137) 4796 0 R (HD.4138) 4797 0 R (HD.4139) 4798 0 R (HD.414) 670 0 R (HD.4140) 4799 0 R (HD.4141) 4800 0 R (HD.4142) 4801 0 R (HD.4143) 4802 0 R (HD.4144) 4803 0 R (HD.4145) 4804 0 R (HD.4146) 4805 0 R ] /Limits [ (HD.4118) (HD.4146) ] >>
+<< /Names [ (HD.6959) 7871 0 R (HD.696) 998 0 R (HD.6960) 7872 0 R (HD.6961) 7873 0 R (HD.6962) 7874 0 R (HD.6963) 7875 0 R (HD.6964) 7876 0 R (HD.6965) 7877 0 R (HD.6966) 7878 0 R (HD.6967) 7879 0 R (HD.6968) 7880 0 R (HD.6969) 7881 0 R (HD.697) 999 0 R (HD.6970) 7882 0 R (HD.6971) 7883 0 R (HD.6972) 7884 0 R (HD.6973) 7885 0 R (HD.6974) 7886 0 R (HD.6975) 7887 0 R (HD.6976) 7888 0 R (HD.6977) 7889 0 R (HD.6978) 7890 0 R (HD.6979) 7891 0 R (HD.698) 1000 0 R (HD.6980) 7892 0 R (HD.6981) 7893 0 R (HD.6982) 7894 0 R (HD.6983) 7895 0 R (HD.6984) 7896 0 R (HD.6985) 7897 0 R (HD.6986) 7898 0 R (HD.6987) 7899 0 R ] /Limits [ (HD.6959) (HD.6987) ] >>
endobj
11825 0 obj
-<< /Names [ (HD.4147) 4806 0 R (HD.4148) 4807 0 R (HD.4149) 4808 0 R (HD.415) 671 0 R (HD.4150) 4809 0 R (HD.4151) 4810 0 R (HD.4152) 4811 0 R (HD.4153) 4812 0 R (HD.4154) 4813 0 R (HD.4155) 4814 0 R (HD.4156) 4815 0 R (HD.4157) 4816 0 R (HD.4158) 4817 0 R (HD.4159) 4818 0 R (HD.416) 672 0 R (HD.4160) 4819 0 R (HD.4161) 4820 0 R (HD.4162) 4821 0 R (HD.4163) 4822 0 R (HD.4164) 4823 0 R (HD.4165) 4824 0 R (HD.4166) 4825 0 R (HD.4167) 4826 0 R (HD.4168) 4827 0 R (HD.4169) 4828 0 R (HD.417) 673 0 R (HD.4170) 4829 0 R (HD.4171) 4830 0 R (HD.4172) 4831 0 R (HD.4173) 4832 0 R (HD.4174) 4833 0 R (HD.4175) 4834 0 R ] /Limits [ (HD.4147) (HD.4175) ] >>
+<< /Names [ (HD.6988) 7900 0 R (HD.6989) 7901 0 R (HD.699) 1001 0 R (HD.6990) 7902 0 R (HD.6991) 7903 0 R (HD.6992) 7904 0 R (HD.6993) 7905 0 R (HD.6994) 7906 0 R (HD.6995) 7907 0 R (HD.6996) 7908 0 R (HD.6997) 7909 0 R (HD.6998) 7910 0 R (HD.6999) 7911 0 R (HD.7) 191 0 R (HD.70) 265 0 R (HD.700) 1002 0 R (HD.7000) 7916 0 R (HD.7001) 7917 0 R (HD.7002) 7918 0 R (HD.7003) 7919 0 R (HD.7004) 7920 0 R (HD.7005) 7921 0 R (HD.7006) 7922 0 R (HD.7007) 7923 0 R (HD.7008) 7924 0 R (HD.7009) 7925 0 R (HD.701) 1003 0 R (HD.7010) 7926 0 R (HD.7011) 7927 0 R (HD.7012) 7928 0 R (HD.7013) 7929 0 R (HD.7014) 7930 0 R ] /Limits [ (HD.6988) (HD.7014) ] >>
endobj
11826 0 obj
-<< /Names [ (HD.4176) 4835 0 R (HD.4177) 4836 0 R (HD.4178) 4837 0 R (HD.4179) 4838 0 R (HD.418) 674 0 R (HD.4180) 4843 0 R (HD.4181) 4844 0 R (HD.4182) 4845 0 R (HD.4183) 4846 0 R (HD.4184) 4847 0 R (HD.4185) 4848 0 R (HD.4186) 4849 0 R (HD.4187) 4850 0 R (HD.4188) 4851 0 R (HD.4189) 4852 0 R (HD.419) 675 0 R (HD.4190) 4853 0 R (HD.4191) 4854 0 R (HD.4192) 4855 0 R (HD.4193) 4856 0 R (HD.4194) 4857 0 R (HD.4195) 4858 0 R (HD.4196) 4859 0 R (HD.4197) 4860 0 R (HD.4198) 4861 0 R (HD.4199) 4862 0 R (HD.42) 237 0 R (HD.420) 676 0 R (HD.4200) 4863 0 R (HD.4201) 4864 0 R (HD.4202) 4865 0 R (HD.4203) 4866 0 R ] /Limits [ (HD.4176) (HD.4203) ] >>
+<< /Names [ (HD.7015) 7931 0 R (HD.7016) 7932 0 R (HD.7017) 7933 0 R (HD.7018) 7934 0 R (HD.7019) 7935 0 R (HD.702) 1008 0 R (HD.7020) 7936 0 R (HD.7021) 7937 0 R (HD.7022) 7938 0 R (HD.7023) 7939 0 R (HD.7024) 7940 0 R (HD.7025) 7941 0 R (HD.7026) 7942 0 R (HD.7027) 7943 0 R (HD.7028) 7944 0 R (HD.7029) 7945 0 R (HD.703) 1009 0 R (HD.7030) 7946 0 R (HD.7031) 7947 0 R (HD.7032) 7948 0 R (HD.7033) 7949 0 R (HD.7034) 7950 0 R (HD.7035) 7951 0 R (HD.7036) 7952 0 R (HD.7037) 7953 0 R (HD.7038) 7958 0 R (HD.7039) 7959 0 R (HD.704) 1010 0 R (HD.7040) 7960 0 R (HD.7041) 7961 0 R (HD.7042) 7962 0 R (HD.7043) 7963 0 R ] /Limits [ (HD.7015) (HD.7043) ] >>
endobj
11827 0 obj
-<< /Names [ (HD.4204) 4867 0 R (HD.4205) 4868 0 R (HD.4206) 4869 0 R (HD.4207) 4870 0 R (HD.4208) 4871 0 R (HD.4209) 4872 0 R (HD.421) 677 0 R (HD.4210) 4873 0 R (HD.4211) 4874 0 R (HD.4212) 4875 0 R (HD.4213) 4876 0 R (HD.4214) 4877 0 R (HD.4215) 4878 0 R (HD.4216) 4879 0 R (HD.4217) 4880 0 R (HD.4218) 4881 0 R (HD.4219) 4882 0 R (HD.422) 682 0 R (HD.4220) 4883 0 R (HD.4221) 4884 0 R (HD.4222) 4885 0 R (HD.4223) 4886 0 R (HD.4224) 4887 0 R (HD.4225) 4888 0 R (HD.4226) 4889 0 R (HD.4227) 4890 0 R (HD.4228) 4891 0 R (HD.4229) 4892 0 R (HD.423) 683 0 R (HD.4230) 4893 0 R (HD.4231) 4894 0 R (HD.4232) 4895 0 R ] /Limits [ (HD.4204) (HD.4232) ] >>
+<< /Names [ (HD.7044) 7964 0 R (HD.7045) 7965 0 R (HD.7046) 7966 0 R (HD.7047) 7967 0 R (HD.7048) 7968 0 R (HD.7049) 7969 0 R (HD.705) 1011 0 R (HD.7050) 7970 0 R (HD.7051) 7971 0 R (HD.7052) 7972 0 R (HD.7053) 7973 0 R (HD.7054) 7974 0 R (HD.7055) 7975 0 R (HD.7056) 7976 0 R (HD.7057) 7977 0 R (HD.7058) 7978 0 R (HD.7059) 7979 0 R (HD.706) 1012 0 R (HD.7060) 7980 0 R (HD.7061) 7981 0 R (HD.7062) 7982 0 R (HD.7063) 7983 0 R (HD.7064) 7984 0 R (HD.7065) 7985 0 R (HD.7066) 7986 0 R (HD.7067) 7987 0 R (HD.7068) 7988 0 R (HD.7069) 7989 0 R (HD.707) 1013 0 R (HD.7070) 7990 0 R (HD.7071) 7991 0 R (HD.7072) 7992 0 R ] /Limits [ (HD.7044) (HD.7072) ] >>
endobj
11828 0 obj
-<< /Names [ (HD.4233) 4896 0 R (HD.4234) 4897 0 R (HD.4235) 4898 0 R (HD.4236) 4899 0 R (HD.4237) 4900 0 R (HD.4238) 4901 0 R (HD.4239) 4906 0 R (HD.424) 684 0 R (HD.4240) 4907 0 R (HD.4241) 4908 0 R (HD.4242) 4909 0 R (HD.4243) 4910 0 R (HD.4244) 4911 0 R (HD.4245) 4912 0 R (HD.4246) 4913 0 R (HD.4247) 4914 0 R (HD.4248) 4915 0 R (HD.4249) 4916 0 R (HD.425) 685 0 R (HD.4250) 4917 0 R (HD.4251) 4918 0 R (HD.4252) 4919 0 R (HD.4253) 4920 0 R (HD.4254) 4921 0 R (HD.4255) 4922 0 R (HD.4256) 4923 0 R (HD.4257) 4924 0 R (HD.4258) 4925 0 R (HD.4259) 4926 0 R (HD.426) 686 0 R (HD.4260) 4927 0 R (HD.4261) 4928 0 R ] /Limits [ (HD.4233) (HD.4261) ] >>
+<< /Names [ (HD.7073) 7993 0 R (HD.7074) 7994 0 R (HD.7075) 7995 0 R (HD.7076) 7996 0 R (HD.7077) 7997 0 R (HD.7078) 8002 0 R (HD.7079) 8003 0 R (HD.708) 1014 0 R (HD.7080) 8004 0 R (HD.7081) 8005 0 R (HD.7082) 8006 0 R (HD.7083) 8007 0 R (HD.7084) 8008 0 R (HD.7085) 8009 0 R (HD.7086) 8010 0 R (HD.7087) 8011 0 R (HD.7088) 8012 0 R (HD.7089) 8013 0 R (HD.709) 1015 0 R (HD.7090) 8014 0 R (HD.7091) 8015 0 R (HD.7092) 8016 0 R (HD.7093) 8017 0 R (HD.7094) 8018 0 R (HD.7095) 8019 0 R (HD.7096) 8020 0 R (HD.7097) 8021 0 R (HD.7098) 8022 0 R (HD.7099) 8023 0 R (HD.71) 268 0 R (HD.710) 1016 0 R (HD.7100) 8024 0 R ] /Limits [ (HD.7073) (HD.7100) ] >>
endobj
11829 0 obj
-<< /Names [ (HD.4262) 4929 0 R (HD.4263) 4930 0 R (HD.4264) 4931 0 R (HD.4265) 4932 0 R (HD.4266) 4933 0 R (HD.4267) 4934 0 R (HD.4268) 4935 0 R (HD.4269) 4936 0 R (HD.427) 687 0 R (HD.4270) 4937 0 R (HD.4271) 4938 0 R (HD.4272) 4939 0 R (HD.4273) 4940 0 R (HD.4274) 4941 0 R (HD.4275) 4942 0 R (HD.4276) 4943 0 R (HD.4277) 4944 0 R (HD.4278) 4945 0 R (HD.4279) 4946 0 R (HD.428) 688 0 R (HD.4280) 4947 0 R (HD.4281) 4952 0 R (HD.4282) 4953 0 R (HD.4283) 4954 0 R (HD.4284) 4955 0 R (HD.4285) 4956 0 R (HD.4286) 4957 0 R (HD.4287) 4958 0 R (HD.4288) 4959 0 R (HD.4289) 4960 0 R (HD.429) 689 0 R (HD.4290) 4961 0 R ] /Limits [ (HD.4262) (HD.4290) ] >>
+<< /Names [ (HD.7101) 8025 0 R (HD.7102) 8026 0 R (HD.7103) 8027 0 R (HD.7104) 8028 0 R (HD.7105) 8029 0 R (HD.7106) 8030 0 R (HD.7107) 8035 0 R (HD.7108) 8036 0 R (HD.7109) 8037 0 R (HD.711) 1017 0 R (HD.7110) 8038 0 R (HD.7111) 8039 0 R (HD.7112) 8040 0 R (HD.7113) 8041 0 R (HD.7114) 8042 0 R (HD.7115) 8043 0 R (HD.7116) 8044 0 R (HD.7117) 8045 0 R (HD.7118) 8046 0 R (HD.7119) 8047 0 R (HD.712) 1018 0 R (HD.7120) 8048 0 R (HD.7121) 8049 0 R (HD.7122) 8050 0 R (HD.7123) 8051 0 R (HD.7124) 8052 0 R (HD.7125) 8053 0 R (HD.7126) 8054 0 R (HD.7127) 8055 0 R (HD.7128) 8056 0 R (HD.7129) 8057 0 R (HD.713) 1019 0 R ] /Limits [ (HD.7101) (HD.713) ] >>
endobj
11830 0 obj
-<< /Names [ (HD.4291) 4962 0 R (HD.4292) 4963 0 R (HD.4293) 4964 0 R (HD.4294) 4965 0 R (HD.4295) 4966 0 R (HD.4296) 4967 0 R (HD.4297) 4968 0 R (HD.4298) 4969 0 R (HD.4299) 4970 0 R (HD.43) 238 0 R (HD.430) 690 0 R (HD.4300) 4971 0 R (HD.4301) 4972 0 R (HD.4302) 4973 0 R (HD.4303) 4974 0 R (HD.4304) 4975 0 R (HD.4305) 4976 0 R (HD.4306) 4977 0 R (HD.4307) 4978 0 R (HD.4308) 4979 0 R (HD.4309) 4980 0 R (HD.431) 691 0 R (HD.4310) 4981 0 R (HD.4311) 4982 0 R (HD.4312) 4983 0 R (HD.4313) 4984 0 R (HD.4314) 4985 0 R (HD.4315) 4986 0 R (HD.4316) 4987 0 R (HD.4317) 4988 0 R (HD.4318) 4989 0 R (HD.4319) 4990 0 R ] /Limits [ (HD.4291) (HD.4319) ] >>
+<< /Names [ (HD.7130) 8058 0 R (HD.7131) 8059 0 R (HD.7132) 8060 0 R (HD.7133) 8061 0 R (HD.7134) 8062 0 R (HD.7135) 8063 0 R (HD.7136) 8064 0 R (HD.7137) 8065 0 R (HD.7138) 8066 0 R (HD.7139) 8067 0 R (HD.714) 1020 0 R (HD.7140) 8072 0 R (HD.7141) 8073 0 R (HD.7142) 8074 0 R (HD.7143) 8075 0 R (HD.7144) 8076 0 R (HD.7145) 8077 0 R (HD.7146) 8078 0 R (HD.7147) 8079 0 R (HD.7148) 8080 0 R (HD.7149) 8081 0 R (HD.715) 1021 0 R (HD.7150) 8082 0 R (HD.7151) 8083 0 R (HD.7152) 8084 0 R (HD.7153) 8085 0 R (HD.7154) 8086 0 R (HD.7155) 8087 0 R (HD.7156) 8088 0 R (HD.7157) 8089 0 R (HD.7158) 8090 0 R (HD.7159) 8091 0 R ] /Limits [ (HD.7130) (HD.7159) ] >>
endobj
11831 0 obj
-<< /Names [ (HD.432) 692 0 R (HD.4320) 4991 0 R (HD.4321) 4992 0 R (HD.4322) 4993 0 R (HD.4323) 4994 0 R (HD.4324) 4995 0 R (HD.4325) 4996 0 R (HD.4326) 4997 0 R (HD.4327) 4998 0 R (HD.4328) 4999 0 R (HD.4329) 5000 0 R (HD.433) 693 0 R (HD.4330) 5001 0 R (HD.4331) 5002 0 R (HD.4332) 5003 0 R (HD.4333) 5004 0 R (HD.4334) 5005 0 R (HD.4335) 5006 0 R (HD.4336) 5007 0 R (HD.4337) 5008 0 R (HD.4338) 5009 0 R (HD.4339) 5010 0 R (HD.434) 694 0 R (HD.4340) 5011 0 R (HD.4341) 5016 0 R (HD.4342) 5017 0 R (HD.4343) 5018 0 R (HD.4344) 5019 0 R (HD.4345) 5020 0 R (HD.4346) 5021 0 R (HD.4347) 5022 0 R (HD.4348) 5023 0 R ] /Limits [ (HD.432) (HD.4348) ] >>
+<< /Names [ (HD.716) 1022 0 R (HD.7160) 8092 0 R (HD.7161) 8093 0 R (HD.7162) 8094 0 R (HD.7163) 8095 0 R (HD.7164) 8096 0 R (HD.7165) 8097 0 R (HD.7166) 8098 0 R (HD.7167) 8099 0 R (HD.7168) 8100 0 R (HD.7169) 8101 0 R (HD.717) 1023 0 R (HD.7170) 8102 0 R (HD.7171) 8103 0 R (HD.7172) 8104 0 R (HD.7173) 8105 0 R (HD.7174) 8106 0 R (HD.7175) 8107 0 R (HD.7176) 8108 0 R (HD.7177) 8109 0 R (HD.7178) 8110 0 R (HD.7179) 8111 0 R (HD.718) 1024 0 R (HD.7180) 8112 0 R (HD.7181) 8113 0 R (HD.7182) 8114 0 R (HD.7183) 8115 0 R (HD.7184) 8116 0 R (HD.7185) 8121 0 R (HD.7186) 8122 0 R (HD.7187) 8123 0 R (HD.7188) 8124 0 R ] /Limits [ (HD.716) (HD.7188) ] >>
endobj
11832 0 obj
-<< /Names [ (HD.4349) 5024 0 R (HD.435) 695 0 R (HD.4350) 5025 0 R (HD.4351) 5026 0 R (HD.4352) 5027 0 R (HD.4353) 5028 0 R (HD.4354) 5029 0 R (HD.4355) 5030 0 R (HD.4356) 5031 0 R (HD.4357) 5032 0 R (HD.4358) 5033 0 R (HD.4359) 5034 0 R (HD.436) 696 0 R (HD.4360) 5035 0 R (HD.4361) 5036 0 R (HD.4362) 5037 0 R (HD.4363) 5038 0 R (HD.4364) 5039 0 R (HD.4365) 5040 0 R (HD.4366) 5041 0 R (HD.4367) 5042 0 R (HD.4368) 5043 0 R (HD.4369) 5044 0 R (HD.437) 697 0 R (HD.4370) 5045 0 R (HD.4371) 5046 0 R (HD.4372) 5047 0 R (HD.4373) 5048 0 R (HD.4374) 5049 0 R (HD.4375) 5050 0 R (HD.4376) 5051 0 R (HD.4377) 5052 0 R ] /Limits [ (HD.4349) (HD.4377) ] >>
+<< /Names [ (HD.7189) 8125 0 R (HD.719) 1025 0 R (HD.7190) 8126 0 R (HD.7191) 8127 0 R (HD.7192) 8128 0 R (HD.7193) 8129 0 R (HD.7194) 8130 0 R (HD.7195) 8131 0 R (HD.7196) 8132 0 R (HD.7197) 8133 0 R (HD.7198) 8134 0 R (HD.7199) 8135 0 R (HD.72) 269 0 R (HD.720) 1026 0 R (HD.7200) 8136 0 R (HD.7201) 8137 0 R (HD.7202) 8138 0 R (HD.7203) 8139 0 R (HD.7204) 8140 0 R (HD.7205) 8141 0 R (HD.7206) 8142 0 R (HD.7207) 8143 0 R (HD.7208) 8144 0 R (HD.7209) 8145 0 R (HD.721) 1027 0 R (HD.7210) 8146 0 R (HD.7211) 8147 0 R (HD.7212) 8148 0 R (HD.7213) 8149 0 R (HD.7214) 8150 0 R (HD.7215) 8151 0 R (HD.7216) 8152 0 R ] /Limits [ (HD.7189) (HD.7216) ] >>
endobj
11833 0 obj
-<< /Names [ (HD.4378) 5053 0 R (HD.4379) 5054 0 R (HD.438) 702 0 R (HD.4380) 5059 0 R (HD.4381) 5060 0 R (HD.4382) 5061 0 R (HD.4383) 5062 0 R (HD.4384) 5063 0 R (HD.4385) 5064 0 R (HD.4386) 5065 0 R (HD.4387) 5066 0 R (HD.4388) 5067 0 R (HD.4389) 5068 0 R (HD.439) 703 0 R (HD.4390) 5069 0 R (HD.4391) 5070 0 R (HD.4392) 5071 0 R (HD.4393) 5072 0 R (HD.4394) 5073 0 R (HD.4395) 5074 0 R (HD.4396) 5075 0 R (HD.4397) 5076 0 R (HD.4398) 5077 0 R (HD.4399) 5078 0 R (HD.44) 239 0 R (HD.440) 704 0 R (HD.4400) 5079 0 R (HD.4401) 5080 0 R (HD.4402) 5081 0 R (HD.4403) 5082 0 R (HD.4404) 5083 0 R (HD.4405) 5084 0 R ] /Limits [ (HD.4378) (HD.4405) ] >>
+<< /Names [ (HD.7217) 8153 0 R (HD.7218) 8154 0 R (HD.7219) 8155 0 R (HD.722) 1028 0 R (HD.7220) 8156 0 R (HD.7221) 8157 0 R (HD.7222) 8158 0 R (HD.7223) 8159 0 R (HD.7224) 8160 0 R (HD.7225) 8161 0 R (HD.7226) 8162 0 R (HD.7227) 8163 0 R (HD.7228) 8164 0 R (HD.7229) 8165 0 R (HD.723) 1029 0 R (HD.7230) 8166 0 R (HD.7231) 8167 0 R (HD.7232) 8168 0 R (HD.7233) 8169 0 R (HD.7234) 8170 0 R (HD.7235) 8171 0 R (HD.7236) 8172 0 R (HD.7237) 8173 0 R (HD.7238) 8174 0 R (HD.7239) 8179 0 R (HD.724) 1030 0 R (HD.7240) 8180 0 R (HD.7241) 8181 0 R (HD.7242) 8182 0 R (HD.7243) 8183 0 R (HD.7244) 8184 0 R (HD.7245) 8185 0 R ] /Limits [ (HD.7217) (HD.7245) ] >>
endobj
11834 0 obj
-<< /Names [ (HD.4406) 5085 0 R (HD.4407) 5086 0 R (HD.4408) 5087 0 R (HD.4409) 5088 0 R (HD.441) 705 0 R (HD.4410) 5089 0 R (HD.4411) 5090 0 R (HD.4412) 5091 0 R (HD.4413) 5092 0 R (HD.4414) 5093 0 R (HD.4415) 5094 0 R (HD.4416) 5095 0 R (HD.4417) 5096 0 R (HD.4418) 5097 0 R (HD.4419) 5098 0 R (HD.442) 706 0 R (HD.4420) 5099 0 R (HD.4421) 5100 0 R (HD.4422) 5101 0 R (HD.4423) 5102 0 R (HD.4424) 5103 0 R (HD.4425) 5104 0 R (HD.4426) 5109 0 R (HD.4427) 5110 0 R (HD.4428) 5111 0 R (HD.4429) 5112 0 R (HD.443) 707 0 R (HD.4430) 5113 0 R (HD.4431) 5114 0 R (HD.4432) 5115 0 R (HD.4433) 5116 0 R (HD.4434) 5117 0 R ] /Limits [ (HD.4406) (HD.4434) ] >>
+<< /Names [ (HD.7246) 8186 0 R (HD.7247) 8187 0 R (HD.7248) 8188 0 R (HD.7249) 8189 0 R (HD.725) 1031 0 R (HD.7250) 8190 0 R (HD.7251) 8191 0 R (HD.7252) 8192 0 R (HD.7253) 8193 0 R (HD.7254) 8194 0 R (HD.7255) 8195 0 R (HD.7256) 8196 0 R (HD.7257) 8197 0 R (HD.7258) 8198 0 R (HD.7259) 8199 0 R (HD.726) 1036 0 R (HD.7260) 8200 0 R (HD.7261) 8201 0 R (HD.7262) 8202 0 R (HD.7263) 8203 0 R (HD.7264) 8204 0 R (HD.7265) 8205 0 R (HD.7266) 8206 0 R (HD.7267) 8207 0 R (HD.7268) 8208 0 R (HD.7269) 8209 0 R (HD.727) 1037 0 R (HD.7270) 8210 0 R (HD.7271) 8211 0 R (HD.7272) 8212 0 R (HD.7273) 8213 0 R (HD.7274) 8214 0 R ] /Limits [ (HD.7246) (HD.7274) ] >>
endobj
11835 0 obj
-<< /Names [ (HD.4435) 5118 0 R (HD.4436) 5119 0 R (HD.4437) 5120 0 R (HD.4438) 5121 0 R (HD.4439) 5122 0 R (HD.444) 708 0 R (HD.4440) 5123 0 R (HD.4441) 5124 0 R (HD.4442) 5125 0 R (HD.4443) 5126 0 R (HD.4444) 5127 0 R (HD.4445) 5128 0 R (HD.4446) 5129 0 R (HD.4447) 5130 0 R (HD.4448) 5131 0 R (HD.4449) 5132 0 R (HD.445) 709 0 R (HD.4450) 5133 0 R (HD.4451) 5134 0 R (HD.4452) 5135 0 R (HD.4453) 5136 0 R (HD.4454) 5137 0 R (HD.4455) 5138 0 R (HD.4456) 5139 0 R (HD.4457) 5140 0 R (HD.4458) 5141 0 R (HD.4459) 5142 0 R (HD.446) 710 0 R (HD.4460) 5143 0 R (HD.4461) 5144 0 R (HD.4462) 5145 0 R (HD.4463) 5146 0 R ] /Limits [ (HD.4435) (HD.4463) ] >>
+<< /Names [ (HD.7275) 8215 0 R (HD.7276) 8216 0 R (HD.7277) 8217 0 R (HD.7278) 8218 0 R (HD.7279) 8219 0 R (HD.728) 1038 0 R (HD.7280) 8220 0 R (HD.7281) 8221 0 R (HD.7282) 8222 0 R (HD.7283) 8223 0 R (HD.7284) 8224 0 R (HD.7285) 8230 0 R (HD.7286) 8231 0 R (HD.7287) 8232 0 R (HD.7288) 8233 0 R (HD.7289) 8234 0 R (HD.729) 1039 0 R (HD.7290) 8235 0 R (HD.7291) 8236 0 R (HD.7292) 8237 0 R (HD.7293) 8238 0 R (HD.7294) 8239 0 R (HD.7295) 8240 0 R (HD.7296) 8241 0 R (HD.7297) 8242 0 R (HD.7298) 8243 0 R (HD.7299) 8244 0 R (HD.73) 270 0 R (HD.730) 1040 0 R (HD.7300) 8245 0 R (HD.7301) 8246 0 R (HD.7302) 8247 0 R ] /Limits [ (HD.7275) (HD.7302) ] >>
endobj
11836 0 obj
-<< /Names [ (HD.4464) 5147 0 R (HD.4465) 5148 0 R (HD.4466) 5149 0 R (HD.4467) 5150 0 R (HD.4468) 5151 0 R (HD.4469) 5152 0 R (HD.447) 711 0 R (HD.4470) 5153 0 R (HD.4471) 5154 0 R (HD.4472) 5155 0 R (HD.4473) 5156 0 R (HD.4474) 5157 0 R (HD.4475) 5158 0 R (HD.4476) 5163 0 R (HD.4477) 5164 0 R (HD.4478) 5165 0 R (HD.4479) 5166 0 R (HD.448) 712 0 R (HD.4480) 5167 0 R (HD.4481) 5168 0 R (HD.4482) 5169 0 R (HD.4483) 5170 0 R (HD.4484) 5171 0 R (HD.4485) 5172 0 R (HD.4486) 5173 0 R (HD.4487) 5174 0 R (HD.4488) 5175 0 R (HD.4489) 5176 0 R (HD.449) 713 0 R (HD.4490) 5177 0 R (HD.4491) 5178 0 R (HD.4492) 5179 0 R ] /Limits [ (HD.4464) (HD.4492) ] >>
+<< /Names [ (HD.7303) 8248 0 R (HD.7304) 8249 0 R (HD.7305) 8250 0 R (HD.7306) 8251 0 R (HD.7307) 8252 0 R (HD.7308) 8253 0 R (HD.7309) 8254 0 R (HD.731) 1041 0 R (HD.7310) 8255 0 R (HD.7311) 8256 0 R (HD.7312) 8257 0 R (HD.7313) 8258 0 R (HD.7314) 8259 0 R (HD.7315) 8260 0 R (HD.7316) 8261 0 R (HD.7317) 8262 0 R (HD.7318) 8263 0 R (HD.7319) 8264 0 R (HD.732) 1042 0 R (HD.7320) 8265 0 R (HD.7321) 8266 0 R (HD.7322) 8267 0 R (HD.7323) 8268 0 R (HD.7324) 8269 0 R (HD.7325) 8270 0 R (HD.7326) 8271 0 R (HD.7327) 8272 0 R (HD.7328) 8273 0 R (HD.7329) 8274 0 R (HD.733) 1043 0 R (HD.7330) 8275 0 R (HD.7331) 8276 0 R ] /Limits [ (HD.7303) (HD.7331) ] >>
endobj
11837 0 obj
-<< /Names [ (HD.4493) 5180 0 R (HD.4494) 5181 0 R (HD.4495) 5182 0 R (HD.4496) 5183 0 R (HD.4497) 5184 0 R (HD.4498) 5185 0 R (HD.4499) 5186 0 R (HD.45) 240 0 R (HD.450) 714 0 R (HD.4500) 5187 0 R (HD.4501) 5188 0 R (HD.4502) 5189 0 R (HD.4503) 5190 0 R (HD.4504) 5191 0 R (HD.4505) 5192 0 R (HD.4506) 5193 0 R (HD.4507) 5194 0 R (HD.4508) 5195 0 R (HD.4509) 5196 0 R (HD.451) 715 0 R (HD.4510) 5197 0 R (HD.4511) 5198 0 R (HD.4512) 5199 0 R (HD.4513) 5200 0 R (HD.4514) 5201 0 R (HD.4515) 5202 0 R (HD.4516) 5203 0 R (HD.4517) 5204 0 R (HD.4518) 5205 0 R (HD.4519) 5206 0 R (HD.452) 716 0 R (HD.4520) 5207 0 R ] /Limits [ (HD.4493) (HD.4520) ] >>
+<< /Names [ (HD.7332) 8277 0 R (HD.7333) 8278 0 R (HD.7334) 8279 0 R (HD.7335) 8280 0 R (HD.7336) 8281 0 R (HD.7337) 8282 0 R (HD.7338) 8287 0 R (HD.7339) 8288 0 R (HD.734) 1044 0 R (HD.7340) 8289 0 R (HD.7341) 8290 0 R (HD.7342) 8291 0 R (HD.7343) 8292 0 R (HD.7344) 8293 0 R (HD.7345) 8294 0 R (HD.7346) 8295 0 R (HD.7347) 8296 0 R (HD.7348) 8297 0 R (HD.7349) 8298 0 R (HD.735) 1045 0 R (HD.7350) 8299 0 R (HD.7351) 8300 0 R (HD.7352) 8301 0 R (HD.7353) 8302 0 R (HD.7354) 8303 0 R (HD.7355) 8304 0 R (HD.7356) 8305 0 R (HD.7357) 8306 0 R (HD.7358) 8307 0 R (HD.7359) 8308 0 R (HD.736) 1046 0 R (HD.7360) 8309 0 R ] /Limits [ (HD.7332) (HD.7360) ] >>
endobj
11838 0 obj
-<< /Names [ (HD.4521) 5208 0 R (HD.4522) 5209 0 R (HD.4523) 5210 0 R (HD.4524) 5211 0 R (HD.4525) 5212 0 R (HD.4526) 5213 0 R (HD.4527) 5214 0 R (HD.4528) 5215 0 R (HD.4529) 5220 0 R (HD.453) 717 0 R (HD.4530) 5221 0 R (HD.4531) 5222 0 R (HD.4532) 5223 0 R (HD.4533) 5224 0 R (HD.4534) 5225 0 R (HD.4535) 5226 0 R (HD.4536) 5227 0 R (HD.4537) 5228 0 R (HD.4538) 5229 0 R (HD.4539) 5230 0 R (HD.454) 718 0 R (HD.4540) 5231 0 R (HD.4541) 5232 0 R (HD.4542) 5233 0 R (HD.4543) 5234 0 R (HD.4544) 5235 0 R (HD.4545) 5236 0 R (HD.4546) 5237 0 R (HD.4547) 5238 0 R (HD.4548) 5239 0 R (HD.4549) 5240 0 R (HD.455) 719 0 R ] /Limits [ (HD.4521) (HD.455) ] >>
+<< /Names [ (HD.7361) 8310 0 R (HD.7362) 8311 0 R (HD.7363) 8312 0 R (HD.7364) 8313 0 R (HD.7365) 8314 0 R (HD.7366) 8315 0 R (HD.7367) 8316 0 R (HD.7368) 8317 0 R (HD.7369) 8318 0 R (HD.737) 1047 0 R (HD.7370) 8319 0 R (HD.7371) 8320 0 R (HD.7372) 8321 0 R (HD.7373) 8322 0 R (HD.7374) 8323 0 R (HD.7375) 8324 0 R (HD.7376) 8325 0 R (HD.7377) 8326 0 R (HD.7378) 8327 0 R (HD.7379) 8328 0 R (HD.738) 1048 0 R (HD.7380) 8329 0 R (HD.7381) 8330 0 R (HD.7382) 8331 0 R (HD.7383) 8332 0 R (HD.7384) 8333 0 R (HD.7385) 8334 0 R (HD.7386) 8335 0 R (HD.7387) 8336 0 R (HD.7388) 8337 0 R (HD.7389) 8338 0 R (HD.739) 1049 0 R ] /Limits [ (HD.7361) (HD.739) ] >>
endobj
11839 0 obj
-<< /Names [ (HD.4550) 5241 0 R (HD.4551) 5242 0 R (HD.4552) 5243 0 R (HD.4553) 5244 0 R (HD.4554) 5245 0 R (HD.4555) 5246 0 R (HD.4556) 5247 0 R (HD.4557) 5248 0 R (HD.4558) 5249 0 R (HD.4559) 5250 0 R (HD.456) 720 0 R (HD.4560) 5251 0 R (HD.4561) 5252 0 R (HD.4562) 5253 0 R (HD.4563) 5254 0 R (HD.4564) 5255 0 R (HD.4565) 5256 0 R (HD.4566) 5257 0 R (HD.4567) 5258 0 R (HD.4568) 5259 0 R (HD.4569) 5260 0 R (HD.457) 721 0 R (HD.4570) 5261 0 R (HD.4571) 5262 0 R (HD.4572) 5267 0 R (HD.4573) 5268 0 R (HD.4574) 5269 0 R (HD.4575) 5270 0 R (HD.4576) 5271 0 R (HD.4577) 5272 0 R (HD.4578) 5273 0 R (HD.4579) 5274 0 R ] /Limits [ (HD.4550) (HD.4579) ] >>
+<< /Names [ (HD.7390) 8339 0 R (HD.7391) 8340 0 R (HD.7392) 8341 0 R (HD.7393) 8346 0 R (HD.7394) 8347 0 R (HD.7395) 8348 0 R (HD.7396) 8349 0 R (HD.7397) 8350 0 R (HD.7398) 8351 0 R (HD.7399) 8352 0 R (HD.74) 271 0 R (HD.740) 1050 0 R (HD.7400) 8353 0 R (HD.7401) 8354 0 R (HD.7402) 8355 0 R (HD.7403) 8356 0 R (HD.7404) 8357 0 R (HD.7405) 8358 0 R (HD.7406) 8359 0 R (HD.7407) 8360 0 R (HD.7408) 8361 0 R (HD.7409) 8362 0 R (HD.741) 1051 0 R (HD.7410) 8363 0 R (HD.7411) 8364 0 R (HD.7412) 8365 0 R (HD.7413) 8366 0 R (HD.7414) 8367 0 R (HD.7415) 8368 0 R (HD.7416) 8369 0 R (HD.7417) 8370 0 R (HD.7418) 8371 0 R ] /Limits [ (HD.7390) (HD.7418) ] >>
endobj
11840 0 obj
-<< /Names [ (HD.458) 722 0 R (HD.4580) 5275 0 R (HD.4581) 5276 0 R (HD.4582) 5277 0 R (HD.4583) 5278 0 R (HD.4584) 5279 0 R (HD.4585) 5280 0 R (HD.4586) 5281 0 R (HD.4587) 5282 0 R (HD.4588) 5283 0 R (HD.4589) 5284 0 R (HD.459) 723 0 R (HD.4590) 5285 0 R (HD.4591) 5286 0 R (HD.4592) 5287 0 R (HD.4593) 5288 0 R (HD.4594) 5289 0 R (HD.4595) 5290 0 R (HD.4596) 5291 0 R (HD.4597) 5292 0 R (HD.4598) 5293 0 R (HD.4599) 5294 0 R (HD.46) 241 0 R (HD.460) 724 0 R (HD.4600) 5295 0 R (HD.4601) 5296 0 R (HD.4602) 5297 0 R (HD.4603) 5298 0 R (HD.4604) 5299 0 R (HD.4605) 5300 0 R (HD.4606) 5301 0 R (HD.4607) 5302 0 R ] /Limits [ (HD.458) (HD.4607) ] >>
+<< /Names [ (HD.7419) 8372 0 R (HD.742) 1052 0 R (HD.7420) 8373 0 R (HD.7421) 8374 0 R (HD.7422) 8375 0 R (HD.7423) 8376 0 R (HD.7424) 8377 0 R (HD.7425) 8378 0 R (HD.7426) 8379 0 R (HD.7427) 8380 0 R (HD.7428) 8381 0 R (HD.7429) 8382 0 R (HD.743) 1057 0 R (HD.7430) 8383 0 R (HD.7431) 8384 0 R (HD.7432) 8385 0 R (HD.7433) 8386 0 R (HD.7434) 8387 0 R (HD.7435) 8388 0 R (HD.7436) 8389 0 R (HD.7437) 8390 0 R (HD.7438) 8391 0 R (HD.7439) 8392 0 R (HD.744) 1058 0 R (HD.7440) 8393 0 R (HD.7441) 8398 0 R (HD.7442) 8399 0 R (HD.7443) 8400 0 R (HD.7444) 8401 0 R (HD.7445) 8402 0 R (HD.7446) 8403 0 R (HD.7447) 8404 0 R ] /Limits [ (HD.7419) (HD.7447) ] >>
endobj
11841 0 obj
-<< /Names [ (HD.4608) 5303 0 R (HD.4609) 5304 0 R (HD.461) 729 0 R (HD.4610) 5305 0 R (HD.4611) 5306 0 R (HD.4612) 5307 0 R (HD.4613) 5308 0 R (HD.4614) 5314 0 R (HD.4615) 5315 0 R (HD.4616) 5316 0 R (HD.4617) 5317 0 R (HD.4618) 5318 0 R (HD.4619) 5319 0 R (HD.462) 730 0 R (HD.4620) 5320 0 R (HD.4621) 5321 0 R (HD.4622) 5322 0 R (HD.4623) 5323 0 R (HD.4624) 5324 0 R (HD.4625) 5325 0 R (HD.4626) 5326 0 R (HD.4627) 5327 0 R (HD.4628) 5328 0 R (HD.4629) 5329 0 R (HD.463) 731 0 R (HD.4630) 5330 0 R (HD.4631) 5331 0 R (HD.4632) 5332 0 R (HD.4633) 5333 0 R (HD.4634) 5334 0 R (HD.4635) 5335 0 R (HD.4636) 5336 0 R ] /Limits [ (HD.4608) (HD.4636) ] >>
+<< /Names [ (HD.7448) 8405 0 R (HD.7449) 8406 0 R (HD.745) 1059 0 R (HD.7450) 8407 0 R (HD.7451) 8408 0 R (HD.7452) 8409 0 R (HD.7453) 8410 0 R (HD.7454) 8411 0 R (HD.7455) 8412 0 R (HD.7456) 8413 0 R (HD.7457) 8414 0 R (HD.7458) 8415 0 R (HD.7459) 8416 0 R (HD.746) 1060 0 R (HD.7460) 8417 0 R (HD.7461) 8418 0 R (HD.7462) 8419 0 R (HD.7463) 8420 0 R (HD.7464) 8421 0 R (HD.7465) 8422 0 R (HD.7466) 8423 0 R (HD.7467) 8424 0 R (HD.7468) 8425 0 R (HD.7469) 8426 0 R (HD.747) 1061 0 R (HD.7470) 8427 0 R (HD.7471) 8428 0 R (HD.7472) 8429 0 R (HD.7473) 8430 0 R (HD.7474) 8431 0 R (HD.7475) 8432 0 R (HD.7476) 8433 0 R ] /Limits [ (HD.7448) (HD.7476) ] >>
endobj
11842 0 obj
-<< /Names [ (HD.4637) 5337 0 R (HD.4638) 5338 0 R (HD.4639) 5339 0 R (HD.464) 732 0 R (HD.4640) 5340 0 R (HD.4641) 5341 0 R (HD.4642) 5342 0 R (HD.4643) 5343 0 R (HD.4644) 5344 0 R (HD.4645) 5345 0 R (HD.4646) 5346 0 R (HD.4647) 5347 0 R (HD.4648) 5348 0 R (HD.4649) 5349 0 R (HD.465) 733 0 R (HD.4650) 5350 0 R (HD.4651) 5351 0 R (HD.4652) 5352 0 R (HD.4653) 5353 0 R (HD.4654) 5354 0 R (HD.4655) 5359 0 R (HD.4656) 5360 0 R (HD.4657) 5361 0 R (HD.4658) 5362 0 R (HD.4659) 5363 0 R (HD.466) 734 0 R (HD.4660) 5364 0 R (HD.4661) 5365 0 R (HD.4662) 5366 0 R (HD.4663) 5367 0 R (HD.4664) 5368 0 R (HD.4665) 5369 0 R ] /Limits [ (HD.4637) (HD.4665) ] >>
+<< /Names [ (HD.7477) 8434 0 R (HD.7478) 8435 0 R (HD.7479) 8436 0 R (HD.748) 1062 0 R (HD.7480) 8437 0 R (HD.7481) 8438 0 R (HD.7482) 8439 0 R (HD.7483) 8440 0 R (HD.7484) 8441 0 R (HD.7485) 8442 0 R (HD.7486) 8443 0 R (HD.7487) 8444 0 R (HD.7488) 8445 0 R (HD.7489) 8446 0 R (HD.749) 1063 0 R (HD.7490) 8447 0 R (HD.7491) 8448 0 R (HD.7492) 8449 0 R (HD.7493) 8450 0 R (HD.7494) 8451 0 R (HD.7495) 8456 0 R (HD.7496) 8457 0 R (HD.7497) 8458 0 R (HD.7498) 8459 0 R (HD.7499) 8460 0 R (HD.75) 272 0 R (HD.750) 1064 0 R (HD.7500) 8461 0 R (HD.7501) 8462 0 R (HD.7502) 8463 0 R (HD.7503) 8464 0 R (HD.7504) 8465 0 R ] /Limits [ (HD.7477) (HD.7504) ] >>
endobj
11843 0 obj
-<< /Names [ (HD.4666) 5370 0 R (HD.4667) 5371 0 R (HD.4668) 5372 0 R (HD.4669) 5373 0 R (HD.467) 735 0 R (HD.4670) 5374 0 R (HD.4671) 5375 0 R (HD.4672) 5376 0 R (HD.4673) 5377 0 R (HD.4674) 5378 0 R (HD.4675) 5379 0 R (HD.4676) 5380 0 R (HD.4677) 5381 0 R (HD.4678) 5382 0 R (HD.4679) 5383 0 R (HD.468) 736 0 R (HD.4680) 5384 0 R (HD.4681) 5385 0 R (HD.4682) 5386 0 R (HD.4683) 5387 0 R (HD.4684) 5388 0 R (HD.4685) 5389 0 R (HD.4686) 5390 0 R (HD.4687) 5391 0 R (HD.4688) 5392 0 R (HD.4689) 5393 0 R (HD.469) 737 0 R (HD.4690) 5394 0 R (HD.4691) 5395 0 R (HD.4692) 5396 0 R (HD.4693) 5397 0 R (HD.4694) 5398 0 R ] /Limits [ (HD.4666) (HD.4694) ] >>
+<< /Names [ (HD.7505) 8466 0 R (HD.7506) 8467 0 R (HD.7507) 8468 0 R (HD.7508) 8469 0 R (HD.7509) 8470 0 R (HD.751) 1065 0 R (HD.7510) 8471 0 R (HD.7511) 8472 0 R (HD.7512) 8473 0 R (HD.7513) 8474 0 R (HD.7514) 8475 0 R (HD.7515) 8476 0 R (HD.7516) 8477 0 R (HD.7517) 8478 0 R (HD.7518) 8479 0 R (HD.7519) 8480 0 R (HD.752) 1066 0 R (HD.7520) 8481 0 R (HD.7521) 8482 0 R (HD.7522) 8483 0 R (HD.7523) 8484 0 R (HD.7524) 8485 0 R (HD.7525) 8486 0 R (HD.7526) 8487 0 R (HD.7527) 8488 0 R (HD.7528) 8489 0 R (HD.7529) 8490 0 R (HD.753) 1067 0 R (HD.7530) 8491 0 R (HD.7531) 8492 0 R (HD.7532) 8493 0 R (HD.7533) 8494 0 R ] /Limits [ (HD.7505) (HD.7533) ] >>
endobj
11844 0 obj
-<< /Names [ (HD.4695) 5399 0 R (HD.4696) 5400 0 R (HD.4697) 5401 0 R (HD.4698) 5406 0 R (HD.4699) 5407 0 R (HD.47) 242 0 R (HD.470) 738 0 R (HD.4700) 5408 0 R (HD.4701) 5409 0 R (HD.4702) 5410 0 R (HD.4703) 5411 0 R (HD.4704) 5412 0 R (HD.4705) 5413 0 R (HD.4706) 5414 0 R (HD.4707) 5415 0 R (HD.4708) 5416 0 R (HD.4709) 5417 0 R (HD.471) 739 0 R (HD.4710) 5418 0 R (HD.4711) 5419 0 R (HD.4712) 5420 0 R (HD.4713) 5421 0 R (HD.4714) 5422 0 R (HD.4715) 5423 0 R (HD.4716) 5424 0 R (HD.4717) 5425 0 R (HD.4718) 5426 0 R (HD.4719) 5427 0 R (HD.472) 740 0 R (HD.4720) 5428 0 R (HD.4721) 5429 0 R (HD.4722) 5430 0 R ] /Limits [ (HD.4695) (HD.4722) ] >>
+<< /Names [ (HD.7534) 8495 0 R (HD.7535) 8496 0 R (HD.7536) 8497 0 R (HD.7537) 8498 0 R (HD.7538) 8499 0 R (HD.7539) 8500 0 R (HD.754) 1068 0 R (HD.7540) 8501 0 R (HD.7541) 8502 0 R (HD.7542) 8503 0 R (HD.7543) 8504 0 R (HD.7544) 8505 0 R (HD.7545) 8506 0 R (HD.7546) 8507 0 R (HD.7547) 8508 0 R (HD.7548) 8509 0 R (HD.7549) 8510 0 R (HD.755) 1069 0 R (HD.7550) 8511 0 R (HD.7551) 8516 0 R (HD.7552) 8517 0 R (HD.7553) 8518 0 R (HD.7554) 8519 0 R (HD.7555) 8520 0 R (HD.7556) 8521 0 R (HD.7557) 8522 0 R (HD.7558) 8523 0 R (HD.7559) 8524 0 R (HD.756) 1070 0 R (HD.7560) 8525 0 R (HD.7561) 8526 0 R (HD.7562) 8527 0 R ] /Limits [ (HD.7534) (HD.7562) ] >>
endobj
11845 0 obj
-<< /Names [ (HD.4723) 5431 0 R (HD.4724) 5432 0 R (HD.4725) 5433 0 R (HD.4726) 5434 0 R (HD.4727) 5435 0 R (HD.4728) 5436 0 R (HD.4729) 5437 0 R (HD.473) 741 0 R (HD.4730) 5438 0 R (HD.4731) 5439 0 R (HD.4732) 5440 0 R (HD.4733) 5445 0 R (HD.4734) 5446 0 R (HD.4735) 5447 0 R (HD.4736) 5448 0 R (HD.4737) 5449 0 R (HD.4738) 5450 0 R (HD.4739) 5451 0 R (HD.474) 742 0 R (HD.4740) 5452 0 R (HD.4741) 5453 0 R (HD.4742) 5454 0 R (HD.4743) 5455 0 R (HD.4744) 5456 0 R (HD.4745) 5457 0 R (HD.4746) 5458 0 R (HD.4747) 5459 0 R (HD.4748) 5460 0 R (HD.4749) 5461 0 R (HD.475) 743 0 R (HD.4750) 5462 0 R (HD.4751) 5463 0 R ] /Limits [ (HD.4723) (HD.4751) ] >>
+<< /Names [ (HD.7563) 8528 0 R (HD.7564) 8529 0 R (HD.7565) 8530 0 R (HD.7566) 8531 0 R (HD.7567) 8532 0 R (HD.7568) 8533 0 R (HD.7569) 8534 0 R (HD.757) 1071 0 R (HD.7570) 8535 0 R (HD.7571) 8536 0 R (HD.7572) 8537 0 R (HD.7573) 8538 0 R (HD.7574) 8539 0 R (HD.7575) 8540 0 R (HD.7576) 8541 0 R (HD.7577) 8542 0 R (HD.7578) 8543 0 R (HD.7579) 8544 0 R (HD.758) 1072 0 R (HD.7580) 8545 0 R (HD.7581) 8546 0 R (HD.7582) 8547 0 R (HD.7583) 8548 0 R (HD.7584) 8549 0 R (HD.7585) 8550 0 R (HD.7586) 8551 0 R (HD.7587) 8556 0 R (HD.7588) 8557 0 R (HD.7589) 8558 0 R (HD.759) 1073 0 R (HD.7590) 8559 0 R (HD.7591) 8560 0 R ] /Limits [ (HD.7563) (HD.7591) ] >>
endobj
11846 0 obj
-<< /Names [ (HD.4752) 5464 0 R (HD.4753) 5465 0 R (HD.4754) 5466 0 R (HD.4755) 5467 0 R (HD.4756) 5468 0 R (HD.4757) 5469 0 R (HD.4758) 5470 0 R (HD.4759) 5471 0 R (HD.476) 744 0 R (HD.4760) 5472 0 R (HD.4761) 5473 0 R (HD.4762) 5474 0 R (HD.4763) 5475 0 R (HD.4764) 5476 0 R (HD.4765) 5477 0 R (HD.4766) 5478 0 R (HD.4767) 5479 0 R (HD.4768) 5480 0 R (HD.4769) 5481 0 R (HD.477) 745 0 R (HD.4770) 5482 0 R (HD.4771) 5483 0 R (HD.4772) 5484 0 R (HD.4773) 5485 0 R (HD.4774) 5486 0 R (HD.4775) 5487 0 R (HD.4776) 5488 0 R (HD.4777) 5489 0 R (HD.4778) 5490 0 R (HD.4779) 5491 0 R (HD.478) 746 0 R (HD.4780) 5496 0 R ] /Limits [ (HD.4752) (HD.4780) ] >>
+<< /Names [ (HD.7592) 8561 0 R (HD.7593) 8562 0 R (HD.7594) 8563 0 R (HD.7595) 8564 0 R (HD.7596) 8565 0 R (HD.7597) 8566 0 R (HD.7598) 8567 0 R (HD.7599) 8568 0 R (HD.76) 273 0 R (HD.760) 1074 0 R (HD.7600) 8569 0 R (HD.7601) 8570 0 R (HD.7602) 8571 0 R (HD.7603) 8572 0 R (HD.7604) 8573 0 R (HD.7605) 8574 0 R (HD.7606) 8575 0 R (HD.7607) 8576 0 R (HD.7608) 8577 0 R (HD.7609) 8578 0 R (HD.761) 1075 0 R (HD.7610) 8579 0 R (HD.7611) 8580 0 R (HD.7612) 8581 0 R (HD.7613) 8582 0 R (HD.7614) 8583 0 R (HD.7615) 8584 0 R (HD.7616) 8585 0 R (HD.7617) 8586 0 R (HD.7618) 8587 0 R (HD.7619) 8588 0 R (HD.762) 1076 0 R ] /Limits [ (HD.7592) (HD.762) ] >>
endobj
11847 0 obj
-<< /Names [ (HD.4781) 5497 0 R (HD.4782) 5498 0 R (HD.4783) 5499 0 R (HD.4784) 5500 0 R (HD.4785) 5501 0 R (HD.4786) 5502 0 R (HD.4787) 5503 0 R (HD.4788) 5504 0 R (HD.4789) 5505 0 R (HD.479) 747 0 R (HD.4790) 5506 0 R (HD.4791) 5507 0 R (HD.4792) 5508 0 R (HD.4793) 5509 0 R (HD.4794) 5510 0 R (HD.4795) 5511 0 R (HD.4796) 5512 0 R (HD.4797) 5513 0 R (HD.4798) 5514 0 R (HD.4799) 5515 0 R (HD.48) 243 0 R (HD.480) 748 0 R (HD.4800) 5516 0 R (HD.4801) 5517 0 R (HD.4802) 5518 0 R (HD.4803) 5519 0 R (HD.4804) 5520 0 R (HD.4805) 5521 0 R (HD.4806) 5522 0 R (HD.4807) 5523 0 R (HD.4808) 5524 0 R (HD.4809) 5525 0 R ] /Limits [ (HD.4781) (HD.4809) ] >>
+<< /Names [ (HD.7620) 8589 0 R (HD.7621) 8590 0 R (HD.7622) 8591 0 R (HD.7623) 8592 0 R (HD.7624) 8593 0 R (HD.7625) 8594 0 R (HD.7626) 8595 0 R (HD.7627) 8596 0 R (HD.7628) 8597 0 R (HD.7629) 8598 0 R (HD.763) 1077 0 R (HD.7630) 8599 0 R (HD.7631) 8600 0 R (HD.7632) 8601 0 R (HD.7633) 8606 0 R (HD.7634) 8607 0 R (HD.7635) 8608 0 R (HD.7636) 8609 0 R (HD.7637) 8610 0 R (HD.7638) 8611 0 R (HD.7639) 8612 0 R (HD.764) 1078 0 R (HD.7640) 8613 0 R (HD.7641) 8614 0 R (HD.7642) 8615 0 R (HD.7643) 8616 0 R (HD.7644) 8617 0 R (HD.7645) 8618 0 R (HD.7646) 8619 0 R (HD.7647) 8620 0 R (HD.7648) 8621 0 R (HD.7649) 8622 0 R ] /Limits [ (HD.7620) (HD.7649) ] >>
endobj
11848 0 obj
-<< /Names [ (HD.481) 750 0 R (HD.4810) 5526 0 R (HD.4811) 5527 0 R (HD.4812) 5528 0 R (HD.4813) 5529 0 R (HD.4814) 5530 0 R (HD.4815) 5531 0 R (HD.4816) 5532 0 R (HD.4817) 5533 0 R (HD.4818) 5534 0 R (HD.4819) 5535 0 R (HD.482) 751 0 R (HD.4820) 5536 0 R (HD.4821) 5537 0 R (HD.4822) 5538 0 R (HD.4823) 5539 0 R (HD.4824) 5540 0 R (HD.4825) 5541 0 R (HD.4826) 5542 0 R (HD.4827) 5543 0 R (HD.4828) 5544 0 R (HD.4829) 5545 0 R (HD.483) 757 0 R (HD.4830) 5546 0 R (HD.4831) 5547 0 R (HD.4832) 5552 0 R (HD.4833) 5553 0 R (HD.4834) 5554 0 R (HD.4835) 5555 0 R (HD.4836) 5556 0 R (HD.4837) 5557 0 R (HD.4838) 5558 0 R ] /Limits [ (HD.481) (HD.4838) ] >>
+<< /Names [ (HD.765) 1079 0 R (HD.7650) 8623 0 R (HD.7651) 8624 0 R (HD.7652) 8625 0 R (HD.7653) 8626 0 R (HD.7654) 8627 0 R (HD.7655) 8628 0 R (HD.7656) 8629 0 R (HD.7657) 8630 0 R (HD.7658) 8631 0 R (HD.7659) 8632 0 R (HD.766) 1080 0 R (HD.7660) 8633 0 R (HD.7661) 8634 0 R (HD.7662) 8635 0 R (HD.7663) 8636 0 R (HD.7664) 8637 0 R (HD.7665) 8638 0 R (HD.7666) 8639 0 R (HD.7667) 8640 0 R (HD.7668) 8641 0 R (HD.7669) 8642 0 R (HD.767) 1081 0 R (HD.7670) 8643 0 R (HD.7671) 8644 0 R (HD.7672) 8645 0 R (HD.7673) 8646 0 R (HD.7674) 8647 0 R (HD.7675) 8648 0 R (HD.7676) 8649 0 R (HD.7677) 8650 0 R (HD.7678) 8651 0 R ] /Limits [ (HD.765) (HD.7678) ] >>
endobj
11849 0 obj
-<< /Names [ (HD.4839) 5559 0 R (HD.484) 758 0 R (HD.4840) 5560 0 R (HD.4841) 5561 0 R (HD.4842) 5562 0 R (HD.4843) 5563 0 R (HD.4844) 5564 0 R (HD.4845) 5565 0 R (HD.4846) 5566 0 R (HD.4847) 5567 0 R (HD.4848) 5568 0 R (HD.4849) 5569 0 R (HD.485) 759 0 R (HD.4850) 5570 0 R (HD.4851) 5571 0 R (HD.4852) 5572 0 R (HD.4853) 5573 0 R (HD.4854) 5574 0 R (HD.4855) 5575 0 R (HD.4856) 5576 0 R (HD.4857) 5577 0 R (HD.4858) 5578 0 R (HD.4859) 5579 0 R (HD.486) 760 0 R (HD.4860) 5580 0 R (HD.4861) 5581 0 R (HD.4862) 5582 0 R (HD.4863) 5583 0 R (HD.4864) 5584 0 R (HD.4865) 5585 0 R (HD.4866) 5586 0 R (HD.4867) 5587 0 R ] /Limits [ (HD.4839) (HD.4867) ] >>
+<< /Names [ (HD.7679) 8652 0 R (HD.768) 1082 0 R (HD.7680) 8653 0 R (HD.7681) 8654 0 R (HD.7682) 8655 0 R (HD.7683) 8656 0 R (HD.7684) 8657 0 R (HD.7685) 8658 0 R (HD.7686) 8659 0 R (HD.7687) 8660 0 R (HD.7688) 8661 0 R (HD.7689) 8662 0 R (HD.769) 1083 0 R (HD.7690) 8663 0 R (HD.7691) 8664 0 R (HD.7692) 8669 0 R (HD.7693) 8670 0 R (HD.7694) 8671 0 R (HD.7695) 8672 0 R (HD.7696) 8673 0 R (HD.7697) 8674 0 R (HD.7698) 8675 0 R (HD.7699) 8676 0 R (HD.77) 274 0 R (HD.770) 1084 0 R (HD.7700) 8677 0 R (HD.7701) 8678 0 R (HD.7702) 8679 0 R (HD.7703) 8680 0 R (HD.7704) 8681 0 R (HD.7705) 8682 0 R (HD.7706) 8683 0 R ] /Limits [ (HD.7679) (HD.7706) ] >>
endobj
11850 0 obj
-<< /Names [ (HD.4868) 5588 0 R (HD.4869) 5589 0 R (HD.487) 761 0 R (HD.4870) 5590 0 R (HD.4871) 5591 0 R (HD.4872) 5592 0 R (HD.4873) 5593 0 R (HD.4874) 5594 0 R (HD.4875) 5595 0 R (HD.4876) 5596 0 R (HD.4877) 5597 0 R (HD.4878) 5598 0 R (HD.4879) 5599 0 R (HD.488) 762 0 R (HD.4880) 5600 0 R (HD.4881) 5601 0 R (HD.4882) 5602 0 R (HD.4883) 5603 0 R (HD.4884) 5604 0 R (HD.4885) 5605 0 R (HD.4886) 5610 0 R (HD.4887) 5611 0 R (HD.4888) 5612 0 R (HD.4889) 5613 0 R (HD.489) 763 0 R (HD.4890) 5614 0 R (HD.4891) 5615 0 R (HD.4892) 5616 0 R (HD.4893) 5617 0 R (HD.4894) 5618 0 R (HD.4895) 5619 0 R (HD.4896) 5620 0 R ] /Limits [ (HD.4868) (HD.4896) ] >>
+<< /Names [ (HD.7707) 8684 0 R (HD.7708) 8685 0 R (HD.7709) 8686 0 R (HD.771) 1085 0 R (HD.7710) 8687 0 R (HD.7711) 8688 0 R (HD.7712) 8689 0 R (HD.7713) 8690 0 R (HD.7714) 8691 0 R (HD.7715) 8692 0 R (HD.7716) 8693 0 R (HD.7717) 8694 0 R (HD.7718) 8695 0 R (HD.7719) 8696 0 R (HD.772) 1086 0 R (HD.7720) 8697 0 R (HD.7721) 8698 0 R (HD.7722) 8699 0 R (HD.7723) 8700 0 R (HD.7724) 8701 0 R (HD.7725) 8702 0 R (HD.7726) 8703 0 R (HD.7727) 8704 0 R (HD.7728) 8705 0 R (HD.7729) 8706 0 R (HD.773) 1087 0 R (HD.7730) 8707 0 R (HD.7731) 8708 0 R (HD.7732) 8709 0 R (HD.7733) 8710 0 R (HD.7734) 8711 0 R (HD.7735) 8712 0 R ] /Limits [ (HD.7707) (HD.7735) ] >>
endobj
11851 0 obj
-<< /Names [ (HD.4897) 5621 0 R (HD.4898) 5622 0 R (HD.4899) 5623 0 R (HD.49) 244 0 R (HD.490) 764 0 R (HD.4900) 5624 0 R (HD.4901) 5625 0 R (HD.4902) 5626 0 R (HD.4903) 5627 0 R (HD.4904) 5628 0 R (HD.4905) 5629 0 R (HD.4906) 5630 0 R (HD.4907) 5631 0 R (HD.4908) 5632 0 R (HD.4909) 5633 0 R (HD.491) 765 0 R (HD.4910) 5634 0 R (HD.4911) 5635 0 R (HD.4912) 5636 0 R (HD.4913) 5637 0 R (HD.4914) 5638 0 R (HD.4915) 5639 0 R (HD.4916) 5640 0 R (HD.4917) 5641 0 R (HD.4918) 5642 0 R (HD.4919) 5643 0 R (HD.492) 766 0 R (HD.4920) 5644 0 R (HD.4921) 5645 0 R (HD.4922) 5646 0 R (HD.4923) 5647 0 R (HD.4924) 5648 0 R ] /Limits [ (HD.4897) (HD.4924) ] >>
+<< /Names [ (HD.7736) 8713 0 R (HD.7737) 8714 0 R (HD.7738) 8715 0 R (HD.7739) 8716 0 R (HD.774) 1088 0 R (HD.7740) 8717 0 R (HD.7741) 8718 0 R (HD.7742) 8719 0 R (HD.7743) 8720 0 R (HD.7744) 8721 0 R (HD.7745) 8722 0 R (HD.7746) 8723 0 R (HD.7747) 8724 0 R (HD.7748) 8725 0 R (HD.7749) 8726 0 R (HD.775) 1089 0 R (HD.7750) 8727 0 R (HD.7751) 8728 0 R (HD.7752) 8733 0 R (HD.7753) 8734 0 R (HD.7754) 8735 0 R (HD.7755) 8736 0 R (HD.7756) 8737 0 R (HD.7757) 8738 0 R (HD.7758) 8739 0 R (HD.7759) 8740 0 R (HD.776) 1090 0 R (HD.7760) 8741 0 R (HD.7761) 8742 0 R (HD.7762) 8743 0 R (HD.7763) 8744 0 R (HD.7764) 8745 0 R ] /Limits [ (HD.7736) (HD.7764) ] >>
endobj
11852 0 obj
-<< /Names [ (HD.4925) 5649 0 R (HD.4926) 5650 0 R (HD.4927) 5651 0 R (HD.4928) 5652 0 R (HD.4929) 5653 0 R (HD.493) 776 0 R (HD.4930) 5654 0 R (HD.4931) 5655 0 R (HD.4932) 5656 0 R (HD.4933) 5657 0 R (HD.4934) 5658 0 R (HD.4935) 5659 0 R (HD.4936) 5660 0 R (HD.4937) 5661 0 R (HD.4938) 5662 0 R (HD.4939) 5663 0 R (HD.494) 777 0 R (HD.4940) 5664 0 R (HD.4941) 5665 0 R (HD.4942) 5666 0 R (HD.4943) 5667 0 R (HD.4944) 5668 0 R (HD.4945) 5669 0 R (HD.4946) 5670 0 R (HD.4947) 5671 0 R (HD.4948) 5676 0 R (HD.4949) 5677 0 R (HD.495) 778 0 R (HD.4950) 5678 0 R (HD.4951) 5679 0 R (HD.4952) 5680 0 R (HD.4953) 5681 0 R ] /Limits [ (HD.4925) (HD.4953) ] >>
+<< /Names [ (HD.7765) 8746 0 R (HD.7766) 8747 0 R (HD.7767) 8748 0 R (HD.7768) 8749 0 R (HD.7769) 8750 0 R (HD.777) 1091 0 R (HD.7770) 8751 0 R (HD.7771) 8752 0 R (HD.7772) 8753 0 R (HD.7773) 8754 0 R (HD.7774) 8755 0 R (HD.7775) 8756 0 R (HD.7776) 8757 0 R (HD.7777) 8758 0 R (HD.7778) 8759 0 R (HD.7779) 8760 0 R (HD.778) 1092 0 R (HD.7780) 8761 0 R (HD.7781) 8762 0 R (HD.7782) 8763 0 R (HD.7783) 8764 0 R (HD.7784) 8765 0 R (HD.7785) 8766 0 R (HD.7786) 8767 0 R (HD.7787) 8768 0 R (HD.7788) 8769 0 R (HD.7789) 8770 0 R (HD.779) 1097 0 R (HD.7790) 8771 0 R (HD.7791) 8772 0 R (HD.7792) 8773 0 R (HD.7793) 8774 0 R ] /Limits [ (HD.7765) (HD.7793) ] >>
endobj
11853 0 obj
-<< /Names [ (HD.4954) 5682 0 R (HD.4955) 5683 0 R (HD.4956) 5684 0 R (HD.4957) 5685 0 R (HD.4958) 5686 0 R (HD.4959) 5687 0 R (HD.496) 779 0 R (HD.4960) 5688 0 R (HD.4961) 5689 0 R (HD.4962) 5690 0 R (HD.4963) 5691 0 R (HD.4964) 5692 0 R (HD.4965) 5693 0 R (HD.4966) 5694 0 R (HD.4967) 5695 0 R (HD.4968) 5696 0 R (HD.4969) 5697 0 R (HD.497) 780 0 R (HD.4970) 5698 0 R (HD.4971) 5699 0 R (HD.4972) 5700 0 R (HD.4973) 5701 0 R (HD.4974) 5702 0 R (HD.4975) 5703 0 R (HD.4976) 5704 0 R (HD.4977) 5705 0 R (HD.4978) 5706 0 R (HD.4979) 5707 0 R (HD.498) 781 0 R (HD.4980) 5708 0 R (HD.4981) 5709 0 R (HD.4982) 5710 0 R ] /Limits [ (HD.4954) (HD.4982) ] >>
+<< /Names [ (HD.7794) 8775 0 R (HD.7795) 8776 0 R (HD.7796) 8777 0 R (HD.7797) 8778 0 R (HD.7798) 8779 0 R (HD.7799) 8780 0 R (HD.78) 275 0 R (HD.780) 1098 0 R (HD.7800) 8781 0 R (HD.7801) 8782 0 R (HD.7802) 8783 0 R (HD.7803) 8789 0 R (HD.7804) 8790 0 R (HD.7805) 8791 0 R (HD.7806) 8792 0 R (HD.7807) 8793 0 R (HD.7808) 8794 0 R (HD.7809) 8795 0 R (HD.781) 1099 0 R (HD.7810) 8796 0 R (HD.7811) 8797 0 R (HD.7812) 8798 0 R (HD.7813) 8799 0 R (HD.7814) 8800 0 R (HD.7815) 8801 0 R (HD.7816) 8802 0 R (HD.7817) 8803 0 R (HD.7818) 8804 0 R (HD.7819) 8805 0 R (HD.782) 1100 0 R (HD.7820) 8806 0 R (HD.7821) 8807 0 R ] /Limits [ (HD.7794) (HD.7821) ] >>
endobj
11854 0 obj
-<< /Names [ (HD.4983) 5711 0 R (HD.4984) 5712 0 R (HD.4985) 5713 0 R (HD.4986) 5714 0 R (HD.4987) 5715 0 R (HD.4988) 5716 0 R (HD.4989) 5717 0 R (HD.499) 782 0 R (HD.4990) 5718 0 R (HD.4991) 5719 0 R (HD.4992) 5720 0 R (HD.4993) 5725 0 R (HD.4994) 5726 0 R (HD.4995) 5727 0 R (HD.4996) 5728 0 R (HD.4997) 5729 0 R (HD.4998) 5730 0 R (HD.4999) 5731 0 R (HD.5) 193 0 R (HD.50) 245 0 R (HD.500) 783 0 R (HD.5000) 5732 0 R (HD.5001) 5733 0 R (HD.5002) 5734 0 R (HD.5003) 5735 0 R (HD.5004) 5736 0 R (HD.5005) 5737 0 R (HD.5006) 5738 0 R (HD.5007) 5739 0 R (HD.5008) 5740 0 R (HD.5009) 5741 0 R (HD.501) 784 0 R ] /Limits [ (HD.4983) (HD.501) ] >>
+<< /Names [ (HD.7822) 8808 0 R (HD.7823) 8809 0 R (HD.7824) 8810 0 R (HD.7825) 8811 0 R (HD.7826) 8812 0 R (HD.7827) 8813 0 R (HD.7828) 8814 0 R (HD.7829) 8815 0 R (HD.783) 1101 0 R (HD.7830) 8816 0 R (HD.7831) 8817 0 R (HD.7832) 8818 0 R (HD.7833) 8819 0 R (HD.7834) 8820 0 R (HD.7835) 8821 0 R (HD.7836) 8822 0 R (HD.7837) 8823 0 R (HD.7838) 8824 0 R (HD.7839) 8825 0 R (HD.784) 1102 0 R (HD.7840) 8826 0 R (HD.7841) 8827 0 R (HD.7842) 8828 0 R (HD.7843) 8829 0 R (HD.7844) 8830 0 R (HD.7845) 8831 0 R (HD.7846) 8832 0 R (HD.7847) 8833 0 R (HD.7848) 8834 0 R (HD.7849) 8835 0 R (HD.785) 1103 0 R (HD.7850) 8836 0 R ] /Limits [ (HD.7822) (HD.7850) ] >>
endobj
11855 0 obj
-<< /Names [ (HD.5010) 5742 0 R (HD.5011) 5743 0 R (HD.5012) 5744 0 R (HD.5013) 5745 0 R (HD.5014) 5746 0 R (HD.5015) 5747 0 R (HD.5016) 5748 0 R (HD.5017) 5749 0 R (HD.5018) 5750 0 R (HD.5019) 5751 0 R (HD.502) 785 0 R (HD.5020) 5752 0 R (HD.5021) 5753 0 R (HD.5022) 5754 0 R (HD.5023) 5755 0 R (HD.5024) 5756 0 R (HD.5025) 5757 0 R (HD.5026) 5758 0 R (HD.5027) 5759 0 R (HD.5028) 5760 0 R (HD.5029) 5761 0 R (HD.503) 786 0 R (HD.5030) 5762 0 R (HD.5031) 5763 0 R (HD.5032) 5764 0 R (HD.5033) 5765 0 R (HD.5034) 5766 0 R (HD.5035) 5767 0 R (HD.5036) 5768 0 R (HD.5037) 5769 0 R (HD.5038) 5770 0 R (HD.5039) 5771 0 R ] /Limits [ (HD.5010) (HD.5039) ] >>
+<< /Names [ (HD.7851) 8837 0 R (HD.7852) 8838 0 R (HD.7853) 8839 0 R (HD.7854) 8840 0 R (HD.7855) 8841 0 R (HD.7856) 8842 0 R (HD.7857) 8843 0 R (HD.7858) 8844 0 R (HD.7859) 8845 0 R (HD.786) 1104 0 R (HD.7860) 8846 0 R (HD.7861) 8847 0 R (HD.7862) 8852 0 R (HD.7863) 8853 0 R (HD.7864) 8854 0 R (HD.7865) 8855 0 R (HD.7866) 8856 0 R (HD.7867) 8857 0 R (HD.7868) 8858 0 R (HD.7869) 8859 0 R (HD.787) 1105 0 R (HD.7870) 8860 0 R (HD.7871) 8861 0 R (HD.7872) 8862 0 R (HD.7873) 8863 0 R (HD.7874) 8864 0 R (HD.7875) 8865 0 R (HD.7876) 8866 0 R (HD.7877) 8867 0 R (HD.7878) 8868 0 R (HD.7879) 8869 0 R (HD.788) 1106 0 R ] /Limits [ (HD.7851) (HD.788) ] >>
endobj
11856 0 obj
-<< /Names [ (HD.504) 787 0 R (HD.5040) 5772 0 R (HD.5041) 5773 0 R (HD.5042) 5774 0 R (HD.5043) 5775 0 R (HD.5044) 5776 0 R (HD.5045) 5777 0 R (HD.5046) 5778 0 R (HD.5047) 5779 0 R (HD.5048) 5780 0 R (HD.5049) 5781 0 R (HD.505) 788 0 R (HD.5050) 5782 0 R (HD.5051) 5783 0 R (HD.5052) 5784 0 R (HD.5053) 5789 0 R (HD.5054) 5790 0 R (HD.5055) 5791 0 R (HD.5056) 5792 0 R (HD.5057) 5793 0 R (HD.5058) 5794 0 R (HD.5059) 5795 0 R (HD.506) 789 0 R (HD.5060) 5796 0 R (HD.5061) 5797 0 R (HD.5062) 5798 0 R (HD.5063) 5799 0 R (HD.5064) 5800 0 R (HD.5065) 5801 0 R (HD.5066) 5802 0 R (HD.5067) 5803 0 R (HD.5068) 5804 0 R ] /Limits [ (HD.504) (HD.5068) ] >>
+<< /Names [ (HD.7880) 8870 0 R (HD.7881) 8871 0 R (HD.7882) 8872 0 R (HD.7883) 8873 0 R (HD.7884) 8874 0 R (HD.7885) 8875 0 R (HD.7886) 8876 0 R (HD.7887) 8877 0 R (HD.7888) 8878 0 R (HD.7889) 8879 0 R (HD.789) 1107 0 R (HD.7890) 8880 0 R (HD.7891) 8881 0 R (HD.7892) 8882 0 R (HD.7893) 8883 0 R (HD.7894) 8884 0 R (HD.7895) 8885 0 R (HD.7896) 8886 0 R (HD.7897) 8887 0 R (HD.7898) 8888 0 R (HD.7899) 8889 0 R (HD.79) 276 0 R (HD.790) 1108 0 R (HD.7900) 8890 0 R (HD.7901) 8891 0 R (HD.7902) 8892 0 R (HD.7903) 8893 0 R (HD.7904) 8894 0 R (HD.7905) 8895 0 R (HD.7906) 8896 0 R (HD.7907) 8897 0 R (HD.7908) 8898 0 R ] /Limits [ (HD.7880) (HD.7908) ] >>
endobj
11857 0 obj
-<< /Names [ (HD.5069) 5805 0 R (HD.507) 790 0 R (HD.5070) 5806 0 R (HD.5071) 5807 0 R (HD.5072) 5808 0 R (HD.5073) 5809 0 R (HD.5074) 5810 0 R (HD.5075) 5811 0 R (HD.5076) 5812 0 R (HD.5077) 5813 0 R (HD.5078) 5814 0 R (HD.5079) 5815 0 R (HD.508) 791 0 R (HD.5080) 5816 0 R (HD.5081) 5817 0 R (HD.5082) 5818 0 R (HD.5083) 5819 0 R (HD.5084) 5820 0 R (HD.5085) 5821 0 R (HD.5086) 5822 0 R (HD.5087) 5823 0 R (HD.5088) 5824 0 R (HD.5089) 5825 0 R (HD.509) 792 0 R (HD.5090) 5826 0 R (HD.5091) 5827 0 R (HD.5092) 5828 0 R (HD.5093) 5829 0 R (HD.5094) 5830 0 R (HD.5095) 5831 0 R (HD.5096) 5832 0 R (HD.5097) 5833 0 R ] /Limits [ (HD.5069) (HD.5097) ] >>
+<< /Names [ (HD.7909) 8899 0 R (HD.791) 1109 0 R (HD.7910) 8900 0 R (HD.7911) 8901 0 R (HD.7912) 8902 0 R (HD.7913) 8903 0 R (HD.7914) 8908 0 R (HD.7915) 8909 0 R (HD.7916) 8910 0 R (HD.7917) 8911 0 R (HD.7918) 8912 0 R (HD.7919) 8913 0 R (HD.792) 1110 0 R (HD.7920) 8914 0 R (HD.7921) 8915 0 R (HD.7922) 8916 0 R (HD.7923) 8917 0 R (HD.7924) 8918 0 R (HD.7925) 8919 0 R (HD.7926) 8920 0 R (HD.7927) 8921 0 R (HD.7928) 8922 0 R (HD.7929) 8923 0 R (HD.793) 1111 0 R (HD.7930) 8924 0 R (HD.7931) 8925 0 R (HD.7932) 8926 0 R (HD.7933) 8927 0 R (HD.7934) 8928 0 R (HD.7935) 8929 0 R (HD.7936) 8930 0 R (HD.7937) 8931 0 R ] /Limits [ (HD.7909) (HD.7937) ] >>
endobj
11858 0 obj
-<< /Names [ (HD.5098) 5834 0 R (HD.5099) 5840 0 R (HD.51) 246 0 R (HD.510) 793 0 R (HD.5100) 5841 0 R (HD.5101) 5842 0 R (HD.5102) 5843 0 R (HD.5103) 5844 0 R (HD.5104) 5845 0 R (HD.5105) 5846 0 R (HD.5106) 5847 0 R (HD.5107) 5848 0 R (HD.5108) 5849 0 R (HD.5109) 5850 0 R (HD.511) 794 0 R (HD.5110) 5851 0 R (HD.5111) 5852 0 R (HD.5112) 5853 0 R (HD.5113) 5854 0 R (HD.5114) 5855 0 R (HD.5115) 5856 0 R (HD.5116) 5857 0 R (HD.5117) 5858 0 R (HD.5118) 5859 0 R (HD.5119) 5860 0 R (HD.512) 795 0 R (HD.5120) 5861 0 R (HD.5121) 5862 0 R (HD.5122) 5863 0 R (HD.5123) 5864 0 R (HD.5124) 5865 0 R (HD.5125) 5866 0 R ] /Limits [ (HD.5098) (HD.5125) ] >>
+<< /Names [ (HD.7938) 8932 0 R (HD.7939) 8933 0 R (HD.794) 1112 0 R (HD.7940) 8934 0 R (HD.7941) 8935 0 R (HD.7942) 8936 0 R (HD.7943) 8937 0 R (HD.7944) 8938 0 R (HD.7945) 8939 0 R (HD.7946) 8940 0 R (HD.7947) 8941 0 R (HD.7948) 8942 0 R (HD.7949) 8943 0 R (HD.795) 1113 0 R (HD.7950) 8944 0 R (HD.7951) 8945 0 R (HD.7952) 8946 0 R (HD.7953) 8947 0 R (HD.7954) 8948 0 R (HD.7955) 8949 0 R (HD.7956) 8950 0 R (HD.7957) 8951 0 R (HD.7958) 8952 0 R (HD.7959) 8953 0 R (HD.796) 1114 0 R (HD.7960) 8954 0 R (HD.7961) 8955 0 R (HD.7962) 8956 0 R (HD.7963) 8957 0 R (HD.7964) 8958 0 R (HD.7965) 8959 0 R (HD.7966) 8960 0 R ] /Limits [ (HD.7938) (HD.7966) ] >>
endobj
11859 0 obj
-<< /Names [ (HD.5126) 5867 0 R (HD.5127) 5868 0 R (HD.5128) 5869 0 R (HD.5129) 5870 0 R (HD.513) 796 0 R (HD.5130) 5871 0 R (HD.5131) 5872 0 R (HD.5132) 5873 0 R (HD.5133) 5874 0 R (HD.5134) 5875 0 R (HD.5135) 5876 0 R (HD.5136) 5877 0 R (HD.5137) 5878 0 R (HD.5138) 5879 0 R (HD.5139) 5880 0 R (HD.514) 797 0 R (HD.5140) 5881 0 R (HD.5141) 5882 0 R (HD.5142) 5883 0 R (HD.5143) 5884 0 R (HD.5144) 5885 0 R (HD.5145) 5886 0 R (HD.5146) 5887 0 R (HD.5147) 5888 0 R (HD.5148) 5889 0 R (HD.5149) 5890 0 R (HD.515) 798 0 R (HD.5150) 5891 0 R (HD.5151) 5892 0 R (HD.5152) 5897 0 R (HD.5153) 5898 0 R (HD.5154) 5899 0 R ] /Limits [ (HD.5126) (HD.5154) ] >>
+<< /Names [ (HD.7967) 8961 0 R (HD.7968) 8962 0 R (HD.7969) 8967 0 R (HD.797) 1115 0 R (HD.7970) 8968 0 R (HD.7971) 8969 0 R (HD.7972) 8970 0 R (HD.7973) 8971 0 R (HD.7974) 8972 0 R (HD.7975) 8973 0 R (HD.7976) 8974 0 R (HD.7977) 8975 0 R (HD.7978) 8976 0 R (HD.7979) 8977 0 R (HD.798) 1116 0 R (HD.7980) 8978 0 R (HD.7981) 8979 0 R (HD.7982) 8980 0 R (HD.7983) 8981 0 R (HD.7984) 8982 0 R (HD.7985) 8983 0 R (HD.7986) 8984 0 R (HD.7987) 8985 0 R (HD.7988) 8986 0 R (HD.7989) 8987 0 R (HD.799) 1117 0 R (HD.7990) 8988 0 R (HD.7991) 8989 0 R (HD.7992) 8990 0 R (HD.7993) 8991 0 R (HD.7994) 8992 0 R (HD.7995) 8993 0 R ] /Limits [ (HD.7967) (HD.7995) ] >>
endobj
11860 0 obj
-<< /Names [ (HD.5155) 5900 0 R (HD.5156) 5901 0 R (HD.5157) 5902 0 R (HD.5158) 5903 0 R (HD.5159) 5904 0 R (HD.516) 799 0 R (HD.5160) 5905 0 R (HD.5161) 5906 0 R (HD.5162) 5907 0 R (HD.5163) 5908 0 R (HD.5164) 5909 0 R (HD.5165) 5910 0 R (HD.5166) 5911 0 R (HD.5167) 5912 0 R (HD.5168) 5913 0 R (HD.5169) 5914 0 R (HD.517) 800 0 R (HD.5170) 5915 0 R (HD.5171) 5916 0 R (HD.5172) 5917 0 R (HD.5173) 5918 0 R (HD.5174) 5919 0 R (HD.5175) 5920 0 R (HD.5176) 5921 0 R (HD.5177) 5922 0 R (HD.5178) 5923 0 R (HD.5179) 5924 0 R (HD.518) 801 0 R (HD.5180) 5925 0 R (HD.5181) 5926 0 R (HD.5182) 5927 0 R (HD.5183) 5928 0 R ] /Limits [ (HD.5155) (HD.5183) ] >>
+<< /Names [ (HD.7996) 8994 0 R (HD.7997) 8995 0 R (HD.7998) 8996 0 R (HD.7999) 8997 0 R (HD.8) 192 0 R (HD.80) 277 0 R (HD.800) 1118 0 R (HD.8000) 8998 0 R (HD.8001) 8999 0 R (HD.8002) 9000 0 R (HD.8003) 9001 0 R (HD.8004) 9002 0 R (HD.8005) 9003 0 R (HD.8006) 9004 0 R (HD.8007) 9005 0 R (HD.8008) 9006 0 R (HD.8009) 9007 0 R (HD.801) 1119 0 R (HD.8010) 9008 0 R (HD.8011) 9009 0 R (HD.8012) 9010 0 R (HD.8013) 9011 0 R (HD.8014) 9012 0 R (HD.8015) 9013 0 R (HD.8016) 9014 0 R (HD.8017) 9015 0 R (HD.8018) 9016 0 R (HD.8019) 9017 0 R (HD.802) 1120 0 R (HD.8020) 9018 0 R (HD.8021) 9019 0 R (HD.8022) 9020 0 R ] /Limits [ (HD.7996) (HD.8022) ] >>
endobj
11861 0 obj
-<< /Names [ (HD.5184) 5929 0 R (HD.5185) 5930 0 R (HD.5186) 5931 0 R (HD.5187) 5932 0 R (HD.5188) 5933 0 R (HD.5189) 5934 0 R (HD.519) 802 0 R (HD.5190) 5935 0 R (HD.5191) 5936 0 R (HD.5192) 5937 0 R (HD.5193) 5938 0 R (HD.5194) 5939 0 R (HD.5195) 5940 0 R (HD.5196) 5941 0 R (HD.5197) 5942 0 R (HD.5198) 5943 0 R (HD.5199) 5944 0 R (HD.52) 247 0 R (HD.520) 803 0 R (HD.5200) 5945 0 R (HD.5201) 5946 0 R (HD.5202) 5947 0 R (HD.5203) 5948 0 R (HD.5204) 5949 0 R (HD.5205) 5950 0 R (HD.5206) 5951 0 R (HD.5207) 5952 0 R (HD.5208) 5953 0 R (HD.5209) 5958 0 R (HD.521) 804 0 R (HD.5210) 5959 0 R (HD.5211) 5960 0 R ] /Limits [ (HD.5184) (HD.5211) ] >>
+<< /Names [ (HD.8023) 9021 0 R (HD.8024) 9022 0 R (HD.8025) 9023 0 R (HD.8026) 9024 0 R (HD.8027) 9025 0 R (HD.8028) 9030 0 R (HD.8029) 9031 0 R (HD.803) 1121 0 R (HD.8030) 9032 0 R (HD.8031) 9033 0 R (HD.8032) 9034 0 R (HD.8033) 9035 0 R (HD.8034) 9036 0 R (HD.8035) 9037 0 R (HD.8036) 9038 0 R (HD.8037) 9039 0 R (HD.8038) 9040 0 R (HD.8039) 9041 0 R (HD.804) 1122 0 R (HD.8040) 9042 0 R (HD.8041) 9043 0 R (HD.8042) 9044 0 R (HD.8043) 9045 0 R (HD.8044) 9046 0 R (HD.8045) 9047 0 R (HD.8046) 9048 0 R (HD.8047) 9049 0 R (HD.8048) 9050 0 R (HD.8049) 9051 0 R (HD.805) 1123 0 R (HD.8050) 9052 0 R (HD.8051) 9053 0 R ] /Limits [ (HD.8023) (HD.8051) ] >>
endobj
11862 0 obj
-<< /Names [ (HD.5212) 5961 0 R (HD.5213) 5962 0 R (HD.5214) 5963 0 R (HD.5215) 5964 0 R (HD.5216) 5965 0 R (HD.5217) 5966 0 R (HD.5218) 5967 0 R (HD.5219) 5968 0 R (HD.522) 805 0 R (HD.5220) 5969 0 R (HD.5221) 5970 0 R (HD.5222) 5971 0 R (HD.5223) 5972 0 R (HD.5224) 5973 0 R (HD.5225) 5974 0 R (HD.5226) 5975 0 R (HD.5227) 5976 0 R (HD.5228) 5977 0 R (HD.5229) 5978 0 R (HD.523) 812 0 R (HD.5230) 5979 0 R (HD.5231) 5980 0 R (HD.5232) 5981 0 R (HD.5233) 5982 0 R (HD.5234) 5983 0 R (HD.5235) 5984 0 R (HD.5236) 5985 0 R (HD.5237) 5986 0 R (HD.5238) 5987 0 R (HD.5239) 5988 0 R (HD.524) 813 0 R (HD.5240) 5989 0 R ] /Limits [ (HD.5212) (HD.5240) ] >>
+<< /Names [ (HD.8052) 9054 0 R (HD.8053) 9055 0 R (HD.8054) 9056 0 R (HD.8055) 9057 0 R (HD.8056) 9058 0 R (HD.8057) 9059 0 R (HD.8058) 9060 0 R (HD.8059) 9061 0 R (HD.806) 1124 0 R (HD.8060) 9062 0 R (HD.8061) 9063 0 R (HD.8062) 9064 0 R (HD.8063) 9065 0 R (HD.8064) 9066 0 R (HD.8065) 9067 0 R (HD.8066) 9068 0 R (HD.8067) 9069 0 R (HD.8068) 9070 0 R (HD.8069) 9071 0 R (HD.807) 1125 0 R (HD.8070) 9072 0 R (HD.8071) 9073 0 R (HD.8072) 9074 0 R (HD.8073) 9075 0 R (HD.8074) 9076 0 R (HD.8075) 9077 0 R (HD.8076) 9078 0 R (HD.8077) 9079 0 R (HD.8078) 9080 0 R (HD.8079) 9081 0 R (HD.808) 1126 0 R (HD.8080) 9082 0 R ] /Limits [ (HD.8052) (HD.8080) ] >>
endobj
11863 0 obj
-<< /Names [ (HD.5241) 5990 0 R (HD.5242) 5991 0 R (HD.5243) 5992 0 R (HD.5244) 5993 0 R (HD.5245) 5994 0 R (HD.5246) 5995 0 R (HD.5247) 5996 0 R (HD.5248) 5997 0 R (HD.5249) 5998 0 R (HD.525) 814 0 R (HD.5250) 5999 0 R (HD.5251) 6000 0 R (HD.5252) 6001 0 R (HD.5253) 6002 0 R (HD.5254) 6003 0 R (HD.5255) 6004 0 R (HD.5256) 6005 0 R (HD.5257) 6006 0 R (HD.5258) 6007 0 R (HD.5259) 6008 0 R (HD.526) 815 0 R (HD.5260) 6009 0 R (HD.5261) 6010 0 R (HD.5262) 6011 0 R (HD.5263) 6012 0 R (HD.5264) 6013 0 R (HD.5265) 6014 0 R (HD.5266) 6015 0 R (HD.5267) 6021 0 R (HD.5268) 6022 0 R (HD.5269) 6023 0 R (HD.527) 816 0 R ] /Limits [ (HD.5241) (HD.527) ] >>
+<< /Names [ (HD.8081) 9083 0 R (HD.8082) 9084 0 R (HD.8083) 9085 0 R (HD.8084) 9086 0 R (HD.8085) 9087 0 R (HD.8086) 9088 0 R (HD.8087) 9093 0 R (HD.8088) 9094 0 R (HD.8089) 9095 0 R (HD.809) 1127 0 R (HD.8090) 9096 0 R (HD.8091) 9097 0 R (HD.8092) 9098 0 R (HD.8093) 9099 0 R (HD.8094) 9100 0 R (HD.8095) 9101 0 R (HD.8096) 9102 0 R (HD.8097) 9103 0 R (HD.8098) 9104 0 R (HD.8099) 9105 0 R (HD.81) 278 0 R (HD.810) 1128 0 R (HD.8100) 9106 0 R (HD.8101) 9107 0 R (HD.8102) 9108 0 R (HD.8103) 9109 0 R (HD.8104) 9110 0 R (HD.8105) 9111 0 R (HD.8106) 9112 0 R (HD.8107) 9113 0 R (HD.8108) 9114 0 R (HD.8109) 9115 0 R ] /Limits [ (HD.8081) (HD.8109) ] >>
endobj
11864 0 obj
-<< /Names [ (HD.5270) 6024 0 R (HD.5271) 6025 0 R (HD.5272) 6026 0 R (HD.5273) 6027 0 R (HD.5274) 6028 0 R (HD.5275) 6029 0 R (HD.5276) 6030 0 R (HD.5277) 6031 0 R (HD.5278) 6032 0 R (HD.5279) 6033 0 R (HD.528) 817 0 R (HD.5280) 6034 0 R (HD.5281) 6035 0 R (HD.5282) 6036 0 R (HD.5283) 6037 0 R (HD.5284) 6038 0 R (HD.5285) 6039 0 R (HD.5286) 6040 0 R (HD.5287) 6041 0 R (HD.5288) 6042 0 R (HD.5289) 6043 0 R (HD.529) 818 0 R (HD.5290) 6044 0 R (HD.5291) 6045 0 R (HD.5292) 6046 0 R (HD.5293) 6047 0 R (HD.5294) 6048 0 R (HD.5295) 6049 0 R (HD.5296) 6050 0 R (HD.5297) 6057 0 R (HD.5298) 6058 0 R (HD.5299) 6059 0 R ] /Limits [ (HD.5270) (HD.5299) ] >>
+<< /Names [ (HD.811) 1129 0 R (HD.8110) 9116 0 R (HD.8111) 9117 0 R (HD.8112) 9118 0 R (HD.8113) 9119 0 R (HD.8114) 9120 0 R (HD.8115) 9121 0 R (HD.8116) 9122 0 R (HD.8117) 9123 0 R (HD.8118) 9124 0 R (HD.8119) 9125 0 R (HD.812) 1130 0 R (HD.8120) 9126 0 R (HD.8121) 9127 0 R (HD.8122) 9128 0 R (HD.8123) 9129 0 R (HD.8124) 9130 0 R (HD.8125) 9131 0 R (HD.8126) 9132 0 R (HD.8127) 9133 0 R (HD.8128) 9134 0 R (HD.8129) 9135 0 R (HD.813) 1131 0 R (HD.8130) 9136 0 R (HD.8131) 9137 0 R (HD.8132) 9138 0 R (HD.8133) 9143 0 R (HD.8134) 9144 0 R (HD.8135) 9145 0 R (HD.8136) 9146 0 R (HD.8137) 9147 0 R (HD.8138) 9148 0 R ] /Limits [ (HD.811) (HD.8138) ] >>
endobj
11865 0 obj
-<< /Names [ (HD.53) 248 0 R (HD.530) 819 0 R (HD.5300) 6060 0 R (HD.5301) 6061 0 R (HD.5302) 6062 0 R (HD.5303) 6063 0 R (HD.5304) 6064 0 R (HD.5305) 6065 0 R (HD.5306) 6066 0 R (HD.5307) 6067 0 R (HD.5308) 6068 0 R (HD.5309) 6069 0 R (HD.531) 820 0 R (HD.5310) 6070 0 R (HD.5311) 6071 0 R (HD.5312) 6072 0 R (HD.5313) 6073 0 R (HD.5314) 6074 0 R (HD.5315) 6075 0 R (HD.5316) 6076 0 R (HD.5317) 6077 0 R (HD.5318) 6078 0 R (HD.5319) 6079 0 R (HD.532) 821 0 R (HD.5320) 6080 0 R (HD.5321) 6081 0 R (HD.5322) 6082 0 R (HD.5323) 6083 0 R (HD.5324) 6084 0 R (HD.5325) 6085 0 R (HD.5326) 6086 0 R (HD.5327) 6087 0 R ] /Limits [ (HD.53) (HD.5327) ] >>
+<< /Names [ (HD.8139) 9149 0 R (HD.814) 1132 0 R (HD.8140) 9150 0 R (HD.8141) 9151 0 R (HD.8142) 9152 0 R (HD.8143) 9153 0 R (HD.8144) 9154 0 R (HD.8145) 9155 0 R (HD.8146) 9156 0 R (HD.8147) 9157 0 R (HD.8148) 9158 0 R (HD.8149) 9159 0 R (HD.815) 1133 0 R (HD.8150) 9160 0 R (HD.8151) 9161 0 R (HD.8152) 9162 0 R (HD.8153) 9163 0 R (HD.8154) 9164 0 R (HD.8155) 9165 0 R (HD.8156) 9166 0 R (HD.8157) 9167 0 R (HD.8158) 9168 0 R (HD.8159) 9169 0 R (HD.816) 1134 0 R (HD.8160) 9170 0 R (HD.8161) 9171 0 R (HD.8162) 9172 0 R (HD.8163) 9173 0 R (HD.8164) 9174 0 R (HD.8165) 9175 0 R (HD.8166) 9176 0 R (HD.8167) 9177 0 R ] /Limits [ (HD.8139) (HD.8167) ] >>
endobj
11866 0 obj
-<< /Names [ (HD.5328) 6088 0 R (HD.5329) 6089 0 R (HD.533) 822 0 R (HD.5330) 6090 0 R (HD.5331) 6091 0 R (HD.5332) 6092 0 R (HD.5333) 6093 0 R (HD.5334) 6094 0 R (HD.5335) 6095 0 R (HD.5336) 6096 0 R (HD.5337) 6097 0 R (HD.5338) 6098 0 R (HD.5339) 6099 0 R (HD.534) 823 0 R (HD.5340) 6100 0 R (HD.5341) 6101 0 R (HD.5342) 6102 0 R (HD.5343) 6103 0 R (HD.5344) 6104 0 R (HD.5345) 6105 0 R (HD.5346) 6106 0 R (HD.5347) 6111 0 R (HD.5348) 6112 0 R (HD.5349) 6113 0 R (HD.535) 824 0 R (HD.5350) 6114 0 R (HD.5351) 6115 0 R (HD.5352) 6116 0 R (HD.5353) 6117 0 R (HD.5354) 6118 0 R (HD.5355) 6119 0 R (HD.5356) 6120 0 R ] /Limits [ (HD.5328) (HD.5356) ] >>
+<< /Names [ (HD.8168) 9178 0 R (HD.8169) 9179 0 R (HD.817) 1135 0 R (HD.8170) 9180 0 R (HD.8171) 9181 0 R (HD.8172) 9182 0 R (HD.8173) 9183 0 R (HD.8174) 9184 0 R (HD.8175) 9185 0 R (HD.8176) 9186 0 R (HD.8177) 9187 0 R (HD.8178) 9192 0 R (HD.8179) 9193 0 R (HD.818) 1136 0 R (HD.8180) 9194 0 R (HD.8181) 9195 0 R (HD.8182) 9196 0 R (HD.8183) 9197 0 R (HD.8184) 9198 0 R (HD.8185) 9199 0 R (HD.8186) 9200 0 R (HD.8187) 9201 0 R (HD.8188) 9202 0 R (HD.8189) 9203 0 R (HD.819) 1137 0 R (HD.8190) 9204 0 R (HD.8191) 9205 0 R (HD.8192) 9206 0 R (HD.8193) 9207 0 R (HD.8194) 9208 0 R (HD.8195) 9209 0 R (HD.8196) 9210 0 R ] /Limits [ (HD.8168) (HD.8196) ] >>
endobj
11867 0 obj
-<< /Names [ (HD.5357) 6121 0 R (HD.5358) 6122 0 R (HD.5359) 6123 0 R (HD.536) 825 0 R (HD.5360) 6124 0 R (HD.5361) 6125 0 R (HD.5362) 6126 0 R (HD.5363) 6127 0 R (HD.5364) 6128 0 R (HD.5365) 6129 0 R (HD.5366) 6130 0 R (HD.5367) 6131 0 R (HD.5368) 6132 0 R (HD.5369) 6133 0 R (HD.537) 832 0 R (HD.5370) 6134 0 R (HD.5371) 6135 0 R (HD.5372) 6136 0 R (HD.5373) 6137 0 R (HD.5374) 6138 0 R (HD.5375) 6139 0 R (HD.5376) 6140 0 R (HD.5377) 6141 0 R (HD.5378) 6142 0 R (HD.5379) 6143 0 R (HD.538) 833 0 R (HD.5380) 6148 0 R (HD.5381) 6149 0 R (HD.5382) 6150 0 R (HD.5383) 6151 0 R (HD.5384) 6152 0 R (HD.5385) 6153 0 R ] /Limits [ (HD.5357) (HD.5385) ] >>
+<< /Names [ (HD.8197) 9211 0 R (HD.8198) 9212 0 R (HD.8199) 9213 0 R (HD.82) 279 0 R (HD.820) 1138 0 R (HD.8200) 9214 0 R (HD.8201) 9215 0 R (HD.8202) 9216 0 R (HD.8203) 9217 0 R (HD.8204) 9218 0 R (HD.8205) 9219 0 R (HD.8206) 9220 0 R (HD.8207) 9221 0 R (HD.8208) 9222 0 R (HD.8209) 9223 0 R (HD.821) 1139 0 R (HD.8210) 9224 0 R (HD.8211) 9225 0 R (HD.8212) 9226 0 R (HD.8213) 9227 0 R (HD.8214) 9228 0 R (HD.8215) 9229 0 R (HD.8216) 9230 0 R (HD.8217) 9231 0 R (HD.8218) 9232 0 R (HD.8219) 9233 0 R (HD.822) 1140 0 R (HD.8220) 9234 0 R (HD.8221) 9235 0 R (HD.8222) 9236 0 R (HD.8223) 9237 0 R (HD.8224) 9238 0 R ] /Limits [ (HD.8197) (HD.8224) ] >>
endobj
11868 0 obj
-<< /Names [ (HD.5386) 6154 0 R (HD.5387) 6155 0 R (HD.5388) 6156 0 R (HD.5389) 6157 0 R (HD.539) 834 0 R (HD.5390) 6158 0 R (HD.5391) 6159 0 R (HD.5392) 6160 0 R (HD.5393) 6161 0 R (HD.5394) 6162 0 R (HD.5395) 6163 0 R (HD.5396) 6164 0 R (HD.5397) 6165 0 R (HD.5398) 6166 0 R (HD.5399) 6167 0 R (HD.54) 249 0 R (HD.540) 835 0 R (HD.5400) 6168 0 R (HD.5401) 6169 0 R (HD.5402) 6170 0 R (HD.5403) 6171 0 R (HD.5404) 6172 0 R (HD.5405) 6173 0 R (HD.5406) 6174 0 R (HD.5407) 6175 0 R (HD.5408) 6176 0 R (HD.5409) 6177 0 R (HD.541) 836 0 R (HD.5410) 6178 0 R (HD.5411) 6179 0 R (HD.5412) 6180 0 R (HD.5413) 6181 0 R ] /Limits [ (HD.5386) (HD.5413) ] >>
+<< /Names [ (HD.8225) 9239 0 R (HD.8226) 9240 0 R (HD.8227) 9241 0 R (HD.8228) 9242 0 R (HD.8229) 9243 0 R (HD.823) 1141 0 R (HD.8230) 9244 0 R (HD.8231) 9249 0 R (HD.8232) 9250 0 R (HD.8233) 9251 0 R (HD.8234) 9252 0 R (HD.8235) 9253 0 R (HD.8236) 9254 0 R (HD.8237) 9255 0 R (HD.8238) 9256 0 R (HD.8239) 9257 0 R (HD.824) 1142 0 R (HD.8240) 9258 0 R (HD.8241) 9259 0 R (HD.8242) 9260 0 R (HD.8243) 9261 0 R (HD.8244) 9262 0 R (HD.8245) 9263 0 R (HD.8246) 9264 0 R (HD.8247) 9265 0 R (HD.8248) 9266 0 R (HD.8249) 9267 0 R (HD.825) 1143 0 R (HD.8250) 9268 0 R (HD.8251) 9269 0 R (HD.8252) 9270 0 R (HD.8253) 9271 0 R ] /Limits [ (HD.8225) (HD.8253) ] >>
endobj
11869 0 obj
-<< /Names [ (HD.5414) 6182 0 R (HD.5415) 6183 0 R (HD.5416) 6184 0 R (HD.5417) 6185 0 R (HD.5418) 6186 0 R (HD.5419) 6187 0 R (HD.542) 837 0 R (HD.5420) 6188 0 R (HD.5421) 6189 0 R (HD.5422) 6190 0 R (HD.5423) 6191 0 R (HD.5424) 6192 0 R (HD.5425) 6193 0 R (HD.5426) 6194 0 R (HD.5427) 6195 0 R (HD.5428) 6200 0 R (HD.5429) 6201 0 R (HD.543) 838 0 R (HD.5430) 6202 0 R (HD.5431) 6203 0 R (HD.5432) 6204 0 R (HD.5433) 6205 0 R (HD.5434) 6206 0 R (HD.5435) 6207 0 R (HD.5436) 6208 0 R (HD.5437) 6209 0 R (HD.5438) 6210 0 R (HD.5439) 6211 0 R (HD.544) 839 0 R (HD.5440) 6212 0 R (HD.5441) 6213 0 R (HD.5442) 6214 0 R ] /Limits [ (HD.5414) (HD.5442) ] >>
+<< /Names [ (HD.8254) 9272 0 R (HD.8255) 9273 0 R (HD.8256) 9274 0 R (HD.8257) 9275 0 R (HD.8258) 9276 0 R (HD.8259) 9277 0 R (HD.826) 1144 0 R (HD.8260) 9278 0 R (HD.8261) 9279 0 R (HD.8262) 9285 0 R (HD.8263) 9286 0 R (HD.8264) 9287 0 R (HD.8265) 9288 0 R (HD.8266) 9289 0 R (HD.8267) 9290 0 R (HD.8268) 9291 0 R (HD.8269) 9292 0 R (HD.827) 1145 0 R (HD.8270) 9293 0 R (HD.8271) 9294 0 R (HD.8272) 9295 0 R (HD.8273) 9296 0 R (HD.8274) 9297 0 R (HD.8275) 9298 0 R (HD.8276) 9299 0 R (HD.8277) 9300 0 R (HD.8278) 9301 0 R (HD.8279) 9302 0 R (HD.828) 1146 0 R (HD.8280) 9303 0 R (HD.8281) 9304 0 R (HD.8282) 9305 0 R ] /Limits [ (HD.8254) (HD.8282) ] >>
endobj
11870 0 obj
-<< /Names [ (HD.5443) 6215 0 R (HD.5444) 6216 0 R (HD.5445) 6217 0 R (HD.5446) 6218 0 R (HD.5447) 6219 0 R (HD.5448) 6220 0 R (HD.5449) 6221 0 R (HD.545) 840 0 R (HD.5450) 6222 0 R (HD.5451) 6223 0 R (HD.5452) 6224 0 R (HD.5453) 6225 0 R (HD.5454) 6226 0 R (HD.5455) 6227 0 R (HD.5456) 6228 0 R (HD.5457) 6229 0 R (HD.5458) 6230 0 R (HD.5459) 6231 0 R (HD.546) 841 0 R (HD.5460) 6232 0 R (HD.5461) 6233 0 R (HD.5462) 6234 0 R (HD.5463) 6235 0 R (HD.5464) 6236 0 R (HD.5465) 6237 0 R (HD.5466) 6238 0 R (HD.5467) 6243 0 R (HD.5468) 6244 0 R (HD.5469) 6245 0 R (HD.547) 842 0 R (HD.5470) 6246 0 R (HD.5471) 6247 0 R ] /Limits [ (HD.5443) (HD.5471) ] >>
+<< /Names [ (HD.8283) 9306 0 R (HD.8284) 9307 0 R (HD.8285) 9308 0 R (HD.8286) 9309 0 R (HD.8287) 9310 0 R (HD.8288) 9311 0 R (HD.8289) 9312 0 R (HD.829) 1151 0 R (HD.8290) 9313 0 R (HD.8291) 9314 0 R (HD.8292) 9315 0 R (HD.8293) 9316 0 R (HD.8294) 9317 0 R (HD.8295) 9318 0 R (HD.8296) 9319 0 R (HD.8297) 9320 0 R (HD.8298) 9321 0 R (HD.8299) 9322 0 R (HD.83) 280 0 R (HD.830) 1152 0 R (HD.8300) 9323 0 R (HD.8301) 9324 0 R (HD.8302) 9325 0 R (HD.8303) 9326 0 R (HD.8304) 9327 0 R (HD.8305) 9328 0 R (HD.8306) 9329 0 R (HD.8307) 9330 0 R (HD.8308) 9331 0 R (HD.8309) 9337 0 R (HD.831) 1153 0 R (HD.8310) 9338 0 R ] /Limits [ (HD.8283) (HD.8310) ] >>
endobj
11871 0 obj
-<< /Names [ (HD.5472) 6248 0 R (HD.5473) 6249 0 R (HD.5474) 6250 0 R (HD.5475) 6251 0 R (HD.5476) 6252 0 R (HD.5477) 6253 0 R (HD.5478) 6254 0 R (HD.5479) 6255 0 R (HD.548) 843 0 R (HD.5480) 6256 0 R (HD.5481) 6257 0 R (HD.5482) 6258 0 R (HD.5483) 6259 0 R (HD.5484) 6260 0 R (HD.5485) 6261 0 R (HD.5486) 6262 0 R (HD.5487) 6263 0 R (HD.5488) 6264 0 R (HD.5489) 6265 0 R (HD.549) 844 0 R (HD.5490) 6266 0 R (HD.5491) 6267 0 R (HD.5492) 6268 0 R (HD.5493) 6269 0 R (HD.5494) 6270 0 R (HD.5495) 6271 0 R (HD.5496) 6272 0 R (HD.5497) 6273 0 R (HD.5498) 6274 0 R (HD.5499) 6279 0 R (HD.55) 250 0 R (HD.550) 845 0 R ] /Limits [ (HD.5472) (HD.550) ] >>
+<< /Names [ (HD.8311) 9339 0 R (HD.8312) 9340 0 R (HD.8313) 9341 0 R (HD.8314) 9342 0 R (HD.8315) 9343 0 R (HD.8316) 9344 0 R (HD.8317) 9345 0 R (HD.8318) 9346 0 R (HD.8319) 9347 0 R (HD.832) 1154 0 R (HD.8320) 9348 0 R (HD.8321) 9349 0 R (HD.8322) 9350 0 R (HD.8323) 9351 0 R (HD.8324) 9352 0 R (HD.8325) 9353 0 R (HD.8326) 9354 0 R (HD.8327) 9355 0 R (HD.8328) 9356 0 R (HD.8329) 9357 0 R (HD.833) 1155 0 R (HD.8330) 9363 0 R (HD.8331) 9364 0 R (HD.8332) 9365 0 R (HD.8333) 9366 0 R (HD.8334) 9367 0 R (HD.8335) 9368 0 R (HD.8336) 9369 0 R (HD.8337) 9370 0 R (HD.8338) 9371 0 R (HD.8339) 9372 0 R (HD.834) 1156 0 R ] /Limits [ (HD.8311) (HD.834) ] >>
endobj
11872 0 obj
-<< /Names [ (HD.5500) 6280 0 R (HD.5501) 6281 0 R (HD.5502) 6282 0 R (HD.5503) 6283 0 R (HD.5504) 6284 0 R (HD.5505) 6285 0 R (HD.5506) 6286 0 R (HD.5507) 6287 0 R (HD.5508) 6288 0 R (HD.5509) 6289 0 R (HD.551) 846 0 R (HD.5510) 6290 0 R (HD.5511) 6291 0 R (HD.5512) 6292 0 R (HD.5513) 6293 0 R (HD.5514) 6294 0 R (HD.5515) 6295 0 R (HD.5516) 6296 0 R (HD.5517) 6297 0 R (HD.5518) 6298 0 R (HD.5519) 6299 0 R (HD.552) 847 0 R (HD.5520) 6300 0 R (HD.5521) 6301 0 R (HD.5522) 6302 0 R (HD.5523) 6303 0 R (HD.5524) 6304 0 R (HD.5525) 6305 0 R (HD.5526) 6306 0 R (HD.5527) 6307 0 R (HD.5528) 6308 0 R (HD.5529) 6309 0 R ] /Limits [ (HD.5500) (HD.5529) ] >>
+<< /Names [ (HD.8340) 9373 0 R (HD.8341) 9374 0 R (HD.8342) 9375 0 R (HD.8343) 9376 0 R (HD.8344) 9377 0 R (HD.8345) 9378 0 R (HD.8346) 9379 0 R (HD.8347) 9380 0 R (HD.8348) 9381 0 R (HD.8349) 9382 0 R (HD.835) 1157 0 R (HD.8350) 9383 0 R (HD.8351) 9384 0 R (HD.8352) 9385 0 R (HD.8353) 9386 0 R (HD.8354) 9387 0 R (HD.8355) 9388 0 R (HD.8356) 9389 0 R (HD.8357) 9390 0 R (HD.8358) 9391 0 R (HD.8359) 9392 0 R (HD.836) 1158 0 R (HD.8360) 9393 0 R (HD.8361) 9394 0 R (HD.8362) 9395 0 R (HD.8363) 9396 0 R (HD.8364) 9397 0 R (HD.8365) 9398 0 R (HD.8366) 9399 0 R (HD.8367) 9400 0 R (HD.8368) 9401 0 R (HD.8369) 9402 0 R ] /Limits [ (HD.8340) (HD.8369) ] >>
endobj
11873 0 obj
-<< /Names [ (HD.553) 848 0 R (HD.5530) 6310 0 R (HD.5531) 6311 0 R (HD.5532) 6312 0 R (HD.5533) 6313 0 R (HD.5534) 6314 0 R (HD.5535) 6315 0 R (HD.5536) 6316 0 R (HD.5537) 6317 0 R (HD.5538) 6318 0 R (HD.5539) 6319 0 R (HD.554) 849 0 R (HD.5540) 6320 0 R (HD.5541) 6321 0 R (HD.5542) 6322 0 R (HD.5543) 6323 0 R (HD.5544) 6324 0 R (HD.5545) 6325 0 R (HD.5546) 6326 0 R (HD.5547) 6327 0 R (HD.5548) 6328 0 R (HD.5549) 6329 0 R (HD.555) 850 0 R (HD.5550) 6330 0 R (HD.5551) 6331 0 R (HD.5552) 6337 0 R (HD.5553) 6338 0 R (HD.5554) 6339 0 R (HD.5555) 6340 0 R (HD.5556) 6341 0 R (HD.5557) 6342 0 R (HD.5558) 6343 0 R ] /Limits [ (HD.553) (HD.5558) ] >>
+<< /Names [ (HD.837) 1159 0 R (HD.8370) 9403 0 R (HD.8371) 9404 0 R (HD.8372) 9405 0 R (HD.8373) 9406 0 R (HD.8374) 9407 0 R (HD.8375) 9408 0 R (HD.8376) 9409 0 R (HD.8377) 9410 0 R (HD.8378) 9411 0 R (HD.8379) 9412 0 R (HD.838) 1160 0 R (HD.8380) 9417 0 R (HD.8381) 9418 0 R (HD.8382) 9419 0 R (HD.8383) 9420 0 R (HD.8384) 9421 0 R (HD.8385) 9422 0 R (HD.8386) 9423 0 R (HD.8387) 9424 0 R (HD.8388) 9425 0 R (HD.8389) 9426 0 R (HD.839) 1161 0 R (HD.8390) 9427 0 R (HD.8391) 9428 0 R (HD.8392) 9429 0 R (HD.8393) 9430 0 R (HD.8394) 9431 0 R (HD.8395) 9432 0 R (HD.8396) 9433 0 R (HD.8397) 9434 0 R (HD.8398) 9435 0 R ] /Limits [ (HD.837) (HD.8398) ] >>
endobj
11874 0 obj
-<< /Names [ (HD.5559) 6344 0 R (HD.556) 851 0 R (HD.5560) 6345 0 R (HD.5561) 6346 0 R (HD.5562) 6347 0 R (HD.5563) 6348 0 R (HD.5564) 6349 0 R (HD.5565) 6350 0 R (HD.5566) 6351 0 R (HD.5567) 6352 0 R (HD.5568) 6353 0 R (HD.5569) 6354 0 R (HD.557) 852 0 R (HD.5570) 6355 0 R (HD.5571) 6356 0 R (HD.5572) 6357 0 R (HD.5573) 6358 0 R (HD.5574) 6359 0 R (HD.5575) 6360 0 R (HD.5576) 6361 0 R (HD.5577) 6362 0 R (HD.5578) 6363 0 R (HD.5579) 6364 0 R (HD.558) 853 0 R (HD.5580) 6365 0 R (HD.5581) 6366 0 R (HD.5582) 6367 0 R (HD.5583) 6368 0 R (HD.5584) 6369 0 R (HD.5585) 6370 0 R (HD.5586) 6371 0 R (HD.5587) 6372 0 R ] /Limits [ (HD.5559) (HD.5587) ] >>
+<< /Names [ (HD.8399) 9436 0 R (HD.84) 281 0 R (HD.840) 1162 0 R (HD.8400) 9437 0 R (HD.8401) 9438 0 R (HD.8402) 9439 0 R (HD.8403) 9440 0 R (HD.8404) 9441 0 R (HD.8405) 9442 0 R (HD.8406) 9443 0 R (HD.8407) 9444 0 R (HD.8408) 9445 0 R (HD.8409) 9446 0 R (HD.841) 1163 0 R (HD.8410) 9447 0 R (HD.8411) 9448 0 R (HD.8412) 9449 0 R (HD.8413) 9450 0 R (HD.8414) 9451 0 R (HD.8415) 9452 0 R (HD.8416) 9453 0 R (HD.8417) 9454 0 R (HD.8418) 9455 0 R (HD.8419) 9456 0 R (HD.842) 1164 0 R (HD.8420) 9457 0 R (HD.8421) 9458 0 R (HD.8422) 9459 0 R (HD.8423) 9460 0 R (HD.8424) 9461 0 R (HD.8425) 9462 0 R (HD.8426) 9463 0 R ] /Limits [ (HD.8399) (HD.8426) ] >>
endobj
11875 0 obj
-<< /Names [ (HD.5588) 6373 0 R (HD.5589) 6374 0 R (HD.559) 854 0 R (HD.5590) 6375 0 R (HD.5591) 6376 0 R (HD.5592) 6377 0 R (HD.5593) 6378 0 R (HD.5594) 6379 0 R (HD.5595) 6380 0 R (HD.5596) 6385 0 R (HD.5597) 6386 0 R (HD.5598) 6387 0 R (HD.5599) 6388 0 R (HD.56) 251 0 R (HD.560) 855 0 R (HD.5600) 6389 0 R (HD.5601) 6390 0 R (HD.5602) 6391 0 R (HD.5603) 6392 0 R (HD.5604) 6393 0 R (HD.5605) 6394 0 R (HD.5606) 6395 0 R (HD.5607) 6396 0 R (HD.5608) 6397 0 R (HD.5609) 6398 0 R (HD.561) 856 0 R (HD.5610) 6399 0 R (HD.5611) 6400 0 R (HD.5612) 6401 0 R (HD.5613) 6402 0 R (HD.5614) 6403 0 R (HD.5615) 6404 0 R ] /Limits [ (HD.5588) (HD.5615) ] >>
+<< /Names [ (HD.8427) 9464 0 R (HD.8428) 9465 0 R (HD.8429) 9466 0 R (HD.843) 1165 0 R (HD.8430) 9467 0 R (HD.8431) 9468 0 R (HD.8432) 9469 0 R (HD.8433) 9470 0 R (HD.8434) 9471 0 R (HD.8435) 9472 0 R (HD.8436) 9473 0 R (HD.8437) 9478 0 R (HD.8438) 9479 0 R (HD.8439) 9480 0 R (HD.844) 1166 0 R (HD.8440) 9481 0 R (HD.8441) 9482 0 R (HD.8442) 9483 0 R (HD.8443) 9484 0 R (HD.8444) 9485 0 R (HD.8445) 9486 0 R (HD.8446) 9487 0 R (HD.8447) 9488 0 R (HD.8448) 9489 0 R (HD.8449) 9490 0 R (HD.845) 1167 0 R (HD.8450) 9491 0 R (HD.8451) 9492 0 R (HD.8452) 9493 0 R (HD.8453) 9494 0 R (HD.8454) 9495 0 R (HD.8455) 9496 0 R ] /Limits [ (HD.8427) (HD.8455) ] >>
endobj
11876 0 obj
-<< /Names [ (HD.5616) 6405 0 R (HD.5617) 6406 0 R (HD.5618) 6407 0 R (HD.5619) 6408 0 R (HD.562) 857 0 R (HD.5620) 6409 0 R (HD.5621) 6410 0 R (HD.5622) 6411 0 R (HD.5623) 6412 0 R (HD.5624) 6413 0 R (HD.5625) 6414 0 R (HD.5626) 6415 0 R (HD.5627) 6416 0 R (HD.5628) 6417 0 R (HD.5629) 6418 0 R (HD.563) 858 0 R (HD.5630) 6419 0 R (HD.5631) 6420 0 R (HD.5632) 6421 0 R (HD.5633) 6422 0 R (HD.5634) 6423 0 R (HD.5635) 6424 0 R (HD.5636) 6425 0 R (HD.5637) 6426 0 R (HD.5638) 6427 0 R (HD.5639) 6428 0 R (HD.564) 859 0 R (HD.5640) 6429 0 R (HD.5641) 6430 0 R (HD.5642) 6431 0 R (HD.5643) 6432 0 R (HD.5644) 6437 0 R ] /Limits [ (HD.5616) (HD.5644) ] >>
+<< /Names [ (HD.8456) 9497 0 R (HD.8457) 9498 0 R (HD.8458) 9499 0 R (HD.8459) 9500 0 R (HD.846) 1168 0 R (HD.8460) 9501 0 R (HD.8461) 9502 0 R (HD.8462) 9503 0 R (HD.8463) 9504 0 R (HD.8464) 9505 0 R (HD.8465) 9506 0 R (HD.8466) 9507 0 R (HD.8467) 9508 0 R (HD.8468) 9509 0 R (HD.8469) 9510 0 R (HD.847) 1169 0 R (HD.8470) 9511 0 R (HD.8471) 9512 0 R (HD.8472) 9513 0 R (HD.8473) 9514 0 R (HD.8474) 9515 0 R (HD.8475) 9516 0 R (HD.8476) 9517 0 R (HD.8477) 9518 0 R (HD.8478) 9523 0 R (HD.8479) 9524 0 R (HD.848) 1170 0 R (HD.8480) 9525 0 R (HD.8481) 9526 0 R (HD.8482) 9527 0 R (HD.8483) 9528 0 R (HD.8484) 9529 0 R ] /Limits [ (HD.8456) (HD.8484) ] >>
endobj
11877 0 obj
-<< /Names [ (HD.5645) 6438 0 R (HD.5646) 6439 0 R (HD.5647) 6440 0 R (HD.5648) 6441 0 R (HD.5649) 6442 0 R (HD.565) 860 0 R (HD.5650) 6443 0 R (HD.5651) 6444 0 R (HD.5652) 6445 0 R (HD.5653) 6446 0 R (HD.5654) 6447 0 R (HD.5655) 6448 0 R (HD.5656) 6449 0 R (HD.5657) 6450 0 R (HD.5658) 6451 0 R (HD.5659) 6452 0 R (HD.566) 861 0 R (HD.5660) 6453 0 R (HD.5661) 6454 0 R (HD.5662) 6455 0 R (HD.5663) 6456 0 R (HD.5664) 6457 0 R (HD.5665) 6458 0 R (HD.5666) 6459 0 R (HD.5667) 6460 0 R (HD.5668) 6461 0 R (HD.5669) 6462 0 R (HD.567) 862 0 R (HD.5670) 6463 0 R (HD.5671) 6464 0 R (HD.5672) 6465 0 R (HD.5673) 6466 0 R ] /Limits [ (HD.5645) (HD.5673) ] >>
+<< /Names [ (HD.8485) 9530 0 R (HD.8486) 9531 0 R (HD.8487) 9532 0 R (HD.8488) 9533 0 R (HD.8489) 9534 0 R (HD.849) 1171 0 R (HD.8490) 9535 0 R (HD.8491) 9536 0 R (HD.8492) 9537 0 R (HD.8493) 9538 0 R (HD.8494) 9539 0 R (HD.8495) 9540 0 R (HD.8496) 9541 0 R (HD.8497) 9542 0 R (HD.8498) 9543 0 R (HD.8499) 9544 0 R (HD.85) 282 0 R (HD.850) 1172 0 R (HD.8500) 9545 0 R (HD.8501) 9546 0 R (HD.8502) 9547 0 R (HD.8503) 9548 0 R (HD.8504) 9549 0 R (HD.8505) 9550 0 R (HD.8506) 9551 0 R (HD.8507) 9552 0 R (HD.8508) 9553 0 R (HD.8509) 9554 0 R (HD.851) 1173 0 R (HD.8510) 9555 0 R (HD.8511) 9556 0 R (HD.8512) 9557 0 R ] /Limits [ (HD.8485) (HD.8512) ] >>
endobj
11878 0 obj
-<< /Names [ (HD.5674) 6467 0 R (HD.5675) 6468 0 R (HD.5676) 6469 0 R (HD.5677) 6470 0 R (HD.5678) 6471 0 R (HD.5679) 6472 0 R (HD.568) 863 0 R (HD.5680) 6473 0 R (HD.5681) 6474 0 R (HD.5682) 6475 0 R (HD.5683) 6480 0 R (HD.5684) 6481 0 R (HD.5685) 6482 0 R (HD.5686) 6483 0 R (HD.5687) 6484 0 R (HD.5688) 6485 0 R (HD.5689) 6486 0 R (HD.569) 864 0 R (HD.5690) 6487 0 R (HD.5691) 6488 0 R (HD.5692) 6489 0 R (HD.5693) 6490 0 R (HD.5694) 6491 0 R (HD.5695) 6492 0 R (HD.5696) 6493 0 R (HD.5697) 6494 0 R (HD.5698) 6495 0 R (HD.5699) 6496 0 R (HD.57) 252 0 R (HD.570) 865 0 R (HD.5700) 6497 0 R (HD.5701) 6498 0 R ] /Limits [ (HD.5674) (HD.5701) ] >>
+<< /Names [ (HD.8513) 9558 0 R (HD.8514) 9559 0 R (HD.8515) 9560 0 R (HD.8516) 9561 0 R (HD.8517) 9562 0 R (HD.8518) 9563 0 R (HD.8519) 9564 0 R (HD.852) 1174 0 R (HD.8520) 9565 0 R (HD.8521) 9566 0 R (HD.8522) 9567 0 R (HD.8523) 9568 0 R (HD.8524) 9569 0 R (HD.8525) 9570 0 R (HD.8526) 9571 0 R (HD.8527) 9572 0 R (HD.8528) 9573 0 R (HD.8529) 9574 0 R (HD.853) 1175 0 R (HD.8530) 9575 0 R (HD.8531) 9576 0 R (HD.8532) 9577 0 R (HD.8533) 9582 0 R (HD.8534) 9583 0 R (HD.8535) 9584 0 R (HD.8536) 9585 0 R (HD.8537) 9586 0 R (HD.8538) 9587 0 R (HD.8539) 9588 0 R (HD.854) 1176 0 R (HD.8540) 9589 0 R (HD.8541) 9590 0 R ] /Limits [ (HD.8513) (HD.8541) ] >>
endobj
11879 0 obj
-<< /Names [ (HD.5702) 6499 0 R (HD.5703) 6500 0 R (HD.5704) 6501 0 R (HD.5705) 6502 0 R (HD.5706) 6503 0 R (HD.5707) 6504 0 R (HD.5708) 6505 0 R (HD.5709) 6506 0 R (HD.571) 866 0 R (HD.5710) 6507 0 R (HD.5711) 6508 0 R (HD.5712) 6509 0 R (HD.5713) 6510 0 R (HD.5714) 6511 0 R (HD.5715) 6512 0 R (HD.5716) 6513 0 R (HD.5717) 6514 0 R (HD.5718) 6515 0 R (HD.5719) 6516 0 R (HD.572) 867 0 R (HD.5720) 6517 0 R (HD.5721) 6518 0 R (HD.5722) 6519 0 R (HD.5723) 6520 0 R (HD.5724) 6521 0 R (HD.5725) 6522 0 R (HD.5726) 6523 0 R (HD.5727) 6524 0 R (HD.5728) 6525 0 R (HD.5729) 6526 0 R (HD.573) 868 0 R (HD.5730) 6527 0 R ] /Limits [ (HD.5702) (HD.5730) ] >>
+<< /Names [ (HD.8542) 9591 0 R (HD.8543) 9592 0 R (HD.8544) 9593 0 R (HD.8545) 9594 0 R (HD.8546) 9595 0 R (HD.8547) 9596 0 R (HD.8548) 9597 0 R (HD.8549) 9598 0 R (HD.855) 1177 0 R (HD.8550) 9599 0 R (HD.8551) 9600 0 R (HD.8552) 9601 0 R (HD.8553) 9602 0 R (HD.8554) 9603 0 R (HD.8555) 9604 0 R (HD.8556) 9605 0 R (HD.8557) 9606 0 R (HD.8558) 9607 0 R (HD.8559) 9608 0 R (HD.856) 1178 0 R (HD.8560) 9609 0 R (HD.8561) 9610 0 R (HD.8562) 9611 0 R (HD.8563) 9612 0 R (HD.8564) 9613 0 R (HD.8565) 9614 0 R (HD.8566) 9615 0 R (HD.8567) 9616 0 R (HD.8568) 9617 0 R (HD.8569) 9618 0 R (HD.857) 1179 0 R (HD.8570) 9619 0 R ] /Limits [ (HD.8542) (HD.8570) ] >>
endobj
11880 0 obj
-<< /Names [ (HD.5731) 6532 0 R (HD.5732) 6533 0 R (HD.5733) 6534 0 R (HD.5734) 6535 0 R (HD.5735) 6536 0 R (HD.5736) 6537 0 R (HD.5737) 6538 0 R (HD.5738) 6539 0 R (HD.5739) 6540 0 R (HD.574) 869 0 R (HD.5740) 6541 0 R (HD.5741) 6542 0 R (HD.5742) 6543 0 R (HD.5743) 6544 0 R (HD.5744) 6545 0 R (HD.5745) 6546 0 R (HD.5746) 6547 0 R (HD.5747) 6548 0 R (HD.5748) 6549 0 R (HD.5749) 6550 0 R (HD.575) 870 0 R (HD.5750) 6551 0 R (HD.5751) 6552 0 R (HD.5752) 6553 0 R (HD.5753) 6554 0 R (HD.5754) 6555 0 R (HD.5755) 6556 0 R (HD.5756) 6557 0 R (HD.5757) 6558 0 R (HD.5758) 6559 0 R (HD.5759) 6560 0 R (HD.576) 876 0 R ] /Limits [ (HD.5731) (HD.576) ] >>
+<< /Names [ (HD.8571) 9620 0 R (HD.8572) 9621 0 R (HD.8573) 9622 0 R (HD.8574) 9623 0 R (HD.8575) 9624 0 R (HD.8576) 9625 0 R (HD.8577) 9626 0 R (HD.8578) 9627 0 R (HD.8579) 9628 0 R (HD.858) 1180 0 R (HD.8580) 9629 0 R (HD.8581) 9630 0 R (HD.8582) 9631 0 R (HD.8583) 9632 0 R (HD.8584) 9633 0 R (HD.8585) 9634 0 R (HD.8586) 9635 0 R (HD.8587) 9636 0 R (HD.8588) 9637 0 R (HD.8589) 9638 0 R (HD.859) 1181 0 R (HD.8590) 9639 0 R (HD.8591) 9644 0 R (HD.8592) 9645 0 R (HD.8593) 9646 0 R (HD.8594) 9647 0 R (HD.8595) 9648 0 R (HD.8596) 9649 0 R (HD.8597) 9650 0 R (HD.8598) 9651 0 R (HD.8599) 9652 0 R (HD.86) 283 0 R ] /Limits [ (HD.8571) (HD.86) ] >>
endobj
11881 0 obj
-<< /Names [ (HD.5760) 6561 0 R (HD.5761) 6562 0 R (HD.5762) 6563 0 R (HD.5763) 6564 0 R (HD.5764) 6565 0 R (HD.5765) 6566 0 R (HD.5766) 6567 0 R (HD.5767) 6568 0 R (HD.5768) 6569 0 R (HD.5769) 6570 0 R (HD.577) 877 0 R (HD.5770) 6571 0 R (HD.5771) 6572 0 R (HD.5772) 6573 0 R (HD.5773) 6574 0 R (HD.5774) 6579 0 R (HD.5775) 6580 0 R (HD.5776) 6581 0 R (HD.5777) 6582 0 R (HD.5778) 6583 0 R (HD.5779) 6584 0 R (HD.578) 878 0 R (HD.5780) 6585 0 R (HD.5781) 6586 0 R (HD.5782) 6587 0 R (HD.5783) 6588 0 R (HD.5784) 6589 0 R (HD.5785) 6590 0 R (HD.5786) 6591 0 R (HD.5787) 6592 0 R (HD.5788) 6593 0 R (HD.5789) 6594 0 R ] /Limits [ (HD.5760) (HD.5789) ] >>
+<< /Names [ (HD.860) 1182 0 R (HD.8600) 9653 0 R (HD.8601) 9654 0 R (HD.8602) 9655 0 R (HD.8603) 9656 0 R (HD.8604) 9657 0 R (HD.8605) 9658 0 R (HD.8606) 9659 0 R (HD.8607) 9660 0 R (HD.8608) 9661 0 R (HD.8609) 9662 0 R (HD.861) 1183 0 R (HD.8610) 9663 0 R (HD.8611) 9664 0 R (HD.8612) 9665 0 R (HD.8613) 9666 0 R (HD.8614) 9667 0 R (HD.8615) 9668 0 R (HD.8616) 9669 0 R (HD.8617) 9670 0 R (HD.8618) 9671 0 R (HD.8619) 9672 0 R (HD.862) 1184 0 R (HD.8620) 9673 0 R (HD.8621) 9674 0 R (HD.8622) 9675 0 R (HD.8623) 9676 0 R (HD.8624) 9677 0 R (HD.8625) 9678 0 R (HD.8626) 9679 0 R (HD.8627) 9680 0 R (HD.8628) 9681 0 R ] /Limits [ (HD.860) (HD.8628) ] >>
endobj
11882 0 obj
-<< /Names [ (HD.579) 879 0 R (HD.5790) 6595 0 R (HD.5791) 6596 0 R (HD.5792) 6597 0 R (HD.5793) 6598 0 R (HD.5794) 6599 0 R (HD.5795) 6600 0 R (HD.5796) 6601 0 R (HD.5797) 6602 0 R (HD.5798) 6603 0 R (HD.5799) 6604 0 R (HD.58) 253 0 R (HD.580) 880 0 R (HD.5800) 6605 0 R (HD.5801) 6606 0 R (HD.5802) 6607 0 R (HD.5803) 6608 0 R (HD.5804) 6609 0 R (HD.5805) 6610 0 R (HD.5806) 6611 0 R (HD.5807) 6612 0 R (HD.5808) 6613 0 R (HD.5809) 6614 0 R (HD.581) 881 0 R (HD.5810) 6615 0 R (HD.5811) 6616 0 R (HD.5812) 6617 0 R (HD.5813) 6618 0 R (HD.5814) 6619 0 R (HD.5815) 6620 0 R (HD.5816) 6621 0 R (HD.5817) 6622 0 R ] /Limits [ (HD.579) (HD.5817) ] >>
+<< /Names [ (HD.8629) 9682 0 R (HD.863) 1185 0 R (HD.8630) 9683 0 R (HD.8631) 9684 0 R (HD.8632) 9685 0 R (HD.8633) 9686 0 R (HD.8634) 9687 0 R (HD.8635) 9688 0 R (HD.8636) 9689 0 R (HD.8637) 9690 0 R (HD.8638) 9691 0 R (HD.8639) 9696 0 R (HD.864) 1186 0 R (HD.8640) 9697 0 R (HD.8641) 9698 0 R (HD.8642) 9699 0 R (HD.8643) 9700 0 R (HD.8644) 9701 0 R (HD.8645) 9702 0 R (HD.8646) 9703 0 R (HD.8647) 9704 0 R (HD.8648) 9705 0 R (HD.8649) 9706 0 R (HD.865) 1187 0 R (HD.8650) 9707 0 R (HD.8651) 9708 0 R (HD.8652) 9709 0 R (HD.8653) 9710 0 R (HD.8654) 9711 0 R (HD.8655) 9712 0 R (HD.8656) 9713 0 R (HD.8657) 9714 0 R ] /Limits [ (HD.8629) (HD.8657) ] >>
endobj
11883 0 obj
-<< /Names [ (HD.5818) 6623 0 R (HD.5819) 6624 0 R (HD.582) 882 0 R (HD.5820) 6625 0 R (HD.5821) 6626 0 R (HD.5822) 6627 0 R (HD.5823) 6628 0 R (HD.5824) 6629 0 R (HD.5825) 6630 0 R (HD.5826) 6631 0 R (HD.5827) 6632 0 R (HD.5828) 6633 0 R (HD.5829) 6634 0 R (HD.583) 883 0 R (HD.5830) 6635 0 R (HD.5831) 6636 0 R (HD.5832) 6641 0 R (HD.5833) 6642 0 R (HD.5834) 6643 0 R (HD.5835) 6644 0 R (HD.5836) 6645 0 R (HD.5837) 6646 0 R (HD.5838) 6647 0 R (HD.5839) 6648 0 R (HD.584) 884 0 R (HD.5840) 6649 0 R (HD.5841) 6650 0 R (HD.5842) 6651 0 R (HD.5843) 6652 0 R (HD.5844) 6653 0 R (HD.5845) 6654 0 R (HD.5846) 6655 0 R ] /Limits [ (HD.5818) (HD.5846) ] >>
+<< /Names [ (HD.8658) 9715 0 R (HD.8659) 9716 0 R (HD.866) 1188 0 R (HD.8660) 9717 0 R (HD.8661) 9718 0 R (HD.8662) 9719 0 R (HD.8663) 9720 0 R (HD.8664) 9721 0 R (HD.8665) 9722 0 R (HD.8666) 9723 0 R (HD.8667) 9724 0 R (HD.8668) 9725 0 R (HD.8669) 9726 0 R (HD.867) 1189 0 R (HD.8670) 9727 0 R (HD.8671) 9728 0 R (HD.8672) 9729 0 R (HD.8673) 9730 0 R (HD.8674) 9731 0 R (HD.8675) 9732 0 R (HD.8676) 9733 0 R (HD.8677) 9734 0 R (HD.8678) 9735 0 R (HD.8679) 9736 0 R (HD.868) 1190 0 R (HD.8680) 9737 0 R (HD.8681) 9738 0 R (HD.8682) 9739 0 R (HD.8683) 9740 0 R (HD.8684) 9741 0 R (HD.8685) 9742 0 R (HD.8686) 9743 0 R ] /Limits [ (HD.8658) (HD.8686) ] >>
endobj
11884 0 obj
-<< /Names [ (HD.5847) 6656 0 R (HD.5848) 6657 0 R (HD.5849) 6658 0 R (HD.585) 885 0 R (HD.5850) 6659 0 R (HD.5851) 6660 0 R (HD.5852) 6661 0 R (HD.5853) 6662 0 R (HD.5854) 6663 0 R (HD.5855) 6664 0 R (HD.5856) 6665 0 R (HD.5857) 6666 0 R (HD.5858) 6667 0 R (HD.5859) 6668 0 R (HD.586) 886 0 R (HD.5860) 6669 0 R (HD.5861) 6670 0 R (HD.5862) 6671 0 R (HD.5863) 6672 0 R (HD.5864) 6673 0 R (HD.5865) 6674 0 R (HD.5866) 6675 0 R (HD.5867) 6676 0 R (HD.5868) 6677 0 R (HD.5869) 6678 0 R (HD.587) 887 0 R (HD.5870) 6679 0 R (HD.5871) 6680 0 R (HD.5872) 6681 0 R (HD.5873) 6682 0 R (HD.5874) 6683 0 R (HD.5875) 6684 0 R ] /Limits [ (HD.5847) (HD.5875) ] >>
+<< /Names [ (HD.8687) 9744 0 R (HD.8688) 9745 0 R (HD.8689) 9746 0 R (HD.869) 1191 0 R (HD.8690) 9747 0 R (HD.8691) 9752 0 R (HD.8692) 9753 0 R (HD.8693) 9754 0 R (HD.8694) 9755 0 R (HD.8695) 9756 0 R (HD.8696) 9757 0 R (HD.8697) 9758 0 R (HD.8698) 9759 0 R (HD.8699) 9760 0 R (HD.87) 284 0 R (HD.870) 1192 0 R (HD.8700) 9761 0 R (HD.8701) 9762 0 R (HD.8702) 9763 0 R (HD.8703) 9764 0 R (HD.8704) 9765 0 R (HD.8705) 9766 0 R (HD.8706) 9767 0 R (HD.8707) 9768 0 R (HD.8708) 9769 0 R (HD.8709) 9770 0 R (HD.871) 1193 0 R (HD.8710) 9771 0 R (HD.8711) 9772 0 R (HD.8712) 9773 0 R (HD.8713) 9774 0 R (HD.8714) 9775 0 R ] /Limits [ (HD.8687) (HD.8714) ] >>
endobj
11885 0 obj
-<< /Names [ (HD.5876) 6685 0 R (HD.5877) 6686 0 R (HD.5878) 6691 0 R (HD.5879) 6692 0 R (HD.588) 888 0 R (HD.5880) 6693 0 R (HD.5881) 6694 0 R (HD.5882) 6695 0 R (HD.5883) 6696 0 R (HD.5884) 6697 0 R (HD.5885) 6698 0 R (HD.5886) 6699 0 R (HD.5887) 6700 0 R (HD.5888) 6701 0 R (HD.5889) 6702 0 R (HD.589) 889 0 R (HD.5890) 6703 0 R (HD.5891) 6704 0 R (HD.5892) 6705 0 R (HD.5893) 6706 0 R (HD.5894) 6707 0 R (HD.5895) 6708 0 R (HD.5896) 6709 0 R (HD.5897) 6710 0 R (HD.5898) 6711 0 R (HD.5899) 6712 0 R (HD.59) 258 0 R (HD.590) 890 0 R (HD.5900) 6713 0 R (HD.5901) 6714 0 R (HD.5902) 6715 0 R (HD.5903) 6716 0 R ] /Limits [ (HD.5876) (HD.5903) ] >>
+<< /Names [ (HD.8715) 9776 0 R (HD.8716) 9777 0 R (HD.8717) 9778 0 R (HD.8718) 9779 0 R (HD.8719) 9780 0 R (HD.872) 1194 0 R (HD.8720) 9781 0 R (HD.8721) 9782 0 R (HD.8722) 9783 0 R (HD.8723) 9788 0 R (HD.8724) 9789 0 R (HD.8725) 9790 0 R (HD.8726) 9791 0 R (HD.8727) 9792 0 R (HD.8728) 9793 0 R (HD.8729) 9794 0 R (HD.873) 1195 0 R (HD.8730) 9795 0 R (HD.8731) 9796 0 R (HD.8732) 9797 0 R (HD.8733) 9798 0 R (HD.8734) 9799 0 R (HD.8735) 9800 0 R (HD.8736) 9801 0 R (HD.8737) 9802 0 R (HD.8738) 9803 0 R (HD.8739) 9804 0 R (HD.874) 1196 0 R (HD.8740) 9805 0 R (HD.8741) 9806 0 R (HD.8742) 9807 0 R (HD.8743) 9808 0 R ] /Limits [ (HD.8715) (HD.8743) ] >>
endobj
11886 0 obj
-<< /Names [ (HD.5904) 6717 0 R (HD.5905) 6718 0 R (HD.5906) 6719 0 R (HD.5907) 6720 0 R (HD.5908) 6721 0 R (HD.5909) 6722 0 R (HD.591) 891 0 R (HD.5910) 6723 0 R (HD.5911) 6724 0 R (HD.5912) 6725 0 R (HD.5913) 6726 0 R (HD.5914) 6727 0 R (HD.5915) 6728 0 R (HD.5916) 6729 0 R (HD.5917) 6730 0 R (HD.5918) 6731 0 R (HD.5919) 6732 0 R (HD.592) 892 0 R (HD.5920) 6733 0 R (HD.5921) 6734 0 R (HD.5922) 6735 0 R (HD.5923) 6736 0 R (HD.5924) 6737 0 R (HD.5925) 6742 0 R (HD.5926) 6743 0 R (HD.5927) 6744 0 R (HD.5928) 6745 0 R (HD.5929) 6746 0 R (HD.593) 893 0 R (HD.5930) 6747 0 R (HD.5931) 6748 0 R (HD.5932) 6749 0 R ] /Limits [ (HD.5904) (HD.5932) ] >>
+<< /Names [ (HD.8744) 9809 0 R (HD.8745) 9810 0 R (HD.8746) 9811 0 R (HD.8747) 9812 0 R (HD.8748) 9813 0 R (HD.8749) 9814 0 R (HD.875) 1197 0 R (HD.8750) 9815 0 R (HD.8751) 9816 0 R (HD.8752) 9817 0 R (HD.8753) 9818 0 R (HD.8754) 9819 0 R (HD.8755) 9820 0 R (HD.8756) 9821 0 R (HD.8757) 9822 0 R (HD.8758) 9823 0 R (HD.8759) 9824 0 R (HD.876) 1198 0 R (HD.8760) 9825 0 R (HD.8761) 9826 0 R (HD.8762) 9827 0 R (HD.8763) 9828 0 R (HD.8764) 9829 0 R (HD.8765) 9830 0 R (HD.8766) 9831 0 R (HD.8767) 9832 0 R (HD.8768) 9833 0 R (HD.8769) 9834 0 R (HD.877) 1199 0 R (HD.8770) 9835 0 R (HD.8771) 9841 0 R (HD.8772) 9842 0 R ] /Limits [ (HD.8744) (HD.8772) ] >>
endobj
11887 0 obj
-<< /Names [ (HD.5933) 6750 0 R (HD.5934) 6751 0 R (HD.5935) 6752 0 R (HD.5936) 6753 0 R (HD.5937) 6754 0 R (HD.5938) 6755 0 R (HD.5939) 6756 0 R (HD.594) 894 0 R (HD.5940) 6757 0 R (HD.5941) 6758 0 R (HD.5942) 6759 0 R (HD.5943) 6760 0 R (HD.5944) 6761 0 R (HD.5945) 6762 0 R (HD.5946) 6763 0 R (HD.5947) 6764 0 R (HD.5948) 6765 0 R (HD.5949) 6766 0 R (HD.595) 895 0 R (HD.5950) 6767 0 R (HD.5951) 6768 0 R (HD.5952) 6769 0 R (HD.5953) 6770 0 R (HD.5954) 6771 0 R (HD.5955) 6772 0 R (HD.5956) 6773 0 R (HD.5957) 6774 0 R (HD.5958) 6775 0 R (HD.5959) 6776 0 R (HD.596) 896 0 R (HD.5960) 6781 0 R (HD.5961) 6782 0 R ] /Limits [ (HD.5933) (HD.5961) ] >>
+<< /Names [ (HD.8773) 9843 0 R (HD.8774) 9844 0 R (HD.8775) 9845 0 R (HD.8776) 9846 0 R (HD.8777) 9847 0 R (HD.8778) 9848 0 R (HD.8779) 9849 0 R (HD.878) 1200 0 R (HD.8780) 9850 0 R (HD.8781) 9851 0 R (HD.8782) 9852 0 R (HD.8783) 9853 0 R (HD.8784) 9854 0 R (HD.8785) 9855 0 R (HD.8786) 9856 0 R (HD.8787) 9857 0 R (HD.8788) 9858 0 R (HD.8789) 9859 0 R (HD.879) 1201 0 R (HD.8790) 9860 0 R (HD.8791) 9861 0 R (HD.8792) 9862 0 R (HD.8793) 9863 0 R (HD.8794) 9864 0 R (HD.8795) 9865 0 R (HD.8796) 9866 0 R (HD.8797) 9867 0 R (HD.8798) 9868 0 R (HD.8799) 9869 0 R (HD.88) 285 0 R (HD.880) 1202 0 R (HD.8800) 9870 0 R ] /Limits [ (HD.8773) (HD.8800) ] >>
endobj
11888 0 obj
-<< /Names [ (HD.5962) 6783 0 R (HD.5963) 6784 0 R (HD.5964) 6785 0 R (HD.5965) 6786 0 R (HD.5966) 6787 0 R (HD.5967) 6788 0 R (HD.5968) 6789 0 R (HD.5969) 6790 0 R (HD.597) 897 0 R (HD.5970) 6791 0 R (HD.5971) 6792 0 R (HD.5972) 6793 0 R (HD.5973) 6794 0 R (HD.5974) 6795 0 R (HD.5975) 6796 0 R (HD.5976) 6797 0 R (HD.5977) 6798 0 R (HD.5978) 6799 0 R (HD.5979) 6800 0 R (HD.598) 898 0 R (HD.5980) 6801 0 R (HD.5981) 6802 0 R (HD.5982) 6803 0 R (HD.5983) 6804 0 R (HD.5984) 6805 0 R (HD.5985) 6806 0 R (HD.5986) 6807 0 R (HD.5987) 6808 0 R (HD.5988) 6809 0 R (HD.5989) 6810 0 R (HD.599) 899 0 R (HD.5990) 6811 0 R ] /Limits [ (HD.5962) (HD.5990) ] >>
+<< /Names [ (HD.8801) 9871 0 R (HD.8802) 9872 0 R (HD.8803) 9873 0 R (HD.8804) 9874 0 R (HD.8805) 9875 0 R (HD.8806) 9876 0 R (HD.8807) 9877 0 R (HD.8808) 9878 0 R (HD.8809) 9879 0 R (HD.881) 1203 0 R (HD.8810) 9880 0 R (HD.8811) 9881 0 R (HD.8812) 9882 0 R (HD.8813) 9883 0 R (HD.8814) 9884 0 R (HD.8815) 9885 0 R (HD.8816) 9886 0 R (HD.8817) 9887 0 R (HD.8818) 9892 0 R (HD.8819) 9893 0 R (HD.882) 1204 0 R (HD.8820) 9894 0 R (HD.8821) 9895 0 R (HD.8822) 9896 0 R (HD.8823) 9897 0 R (HD.8824) 9898 0 R (HD.8825) 9899 0 R (HD.8826) 9900 0 R (HD.8827) 9901 0 R (HD.8828) 9902 0 R (HD.8829) 9903 0 R (HD.883) 1205 0 R ] /Limits [ (HD.8801) (HD.883) ] >>
endobj
11889 0 obj
-<< /Names [ (HD.5991) 6812 0 R (HD.5992) 6813 0 R (HD.5993) 6814 0 R (HD.5994) 6815 0 R (HD.5995) 6816 0 R (HD.5996) 6817 0 R (HD.5997) 6818 0 R (HD.5998) 6819 0 R (HD.5999) 6825 0 R (HD.6) 194 0 R (HD.60) 259 0 R (HD.600) 900 0 R (HD.6000) 6826 0 R (HD.6001) 6827 0 R (HD.6002) 6828 0 R (HD.6003) 6829 0 R (HD.6004) 6830 0 R (HD.6005) 6831 0 R (HD.6006) 6832 0 R (HD.6007) 6833 0 R (HD.6008) 6834 0 R (HD.6009) 6835 0 R (HD.601) 901 0 R (HD.6010) 6836 0 R (HD.6011) 6837 0 R (HD.6012) 6838 0 R (HD.6013) 6839 0 R (HD.6014) 6840 0 R (HD.6015) 6841 0 R (HD.6016) 6842 0 R (HD.6017) 6843 0 R (HD.6018) 6844 0 R ] /Limits [ (HD.5991) (HD.6018) ] >>
+<< /Names [ (HD.8830) 9904 0 R (HD.8831) 9905 0 R (HD.8832) 9906 0 R (HD.8833) 9907 0 R (HD.8834) 9908 0 R (HD.8835) 9909 0 R (HD.8836) 9910 0 R (HD.8837) 9911 0 R (HD.8838) 9912 0 R (HD.8839) 9913 0 R (HD.884) 1206 0 R (HD.8840) 9914 0 R (HD.8841) 9915 0 R (HD.8842) 9916 0 R (HD.8843) 9917 0 R (HD.8844) 9918 0 R (HD.8845) 9919 0 R (HD.8846) 9920 0 R (HD.8847) 9921 0 R (HD.8848) 9922 0 R (HD.8849) 9923 0 R (HD.885) 1207 0 R (HD.8850) 9924 0 R (HD.8851) 9925 0 R (HD.8852) 9926 0 R (HD.8853) 9927 0 R (HD.8854) 9928 0 R (HD.8855) 9929 0 R (HD.8856) 9930 0 R (HD.8857) 9931 0 R (HD.8858) 9932 0 R (HD.8859) 9933 0 R ] /Limits [ (HD.8830) (HD.8859) ] >>
endobj
11890 0 obj
-<< /Names [ (HD.6019) 6845 0 R (HD.602) 902 0 R (HD.6020) 6846 0 R (HD.6021) 6847 0 R (HD.6022) 6848 0 R (HD.6023) 6849 0 R (HD.6024) 6850 0 R (HD.6025) 6851 0 R (HD.6026) 6852 0 R (HD.6027) 6853 0 R (HD.6028) 6854 0 R (HD.6029) 6859 0 R (HD.603) 903 0 R (HD.6030) 6860 0 R (HD.6031) 6861 0 R (HD.6032) 6862 0 R (HD.6033) 6863 0 R (HD.6034) 6864 0 R (HD.6035) 6865 0 R (HD.6036) 6866 0 R (HD.6037) 6867 0 R (HD.6038) 6868 0 R (HD.6039) 6869 0 R (HD.604) 904 0 R (HD.6040) 6870 0 R (HD.6041) 6871 0 R (HD.6042) 6872 0 R (HD.6043) 6873 0 R (HD.6044) 6874 0 R (HD.6045) 6875 0 R (HD.6046) 6876 0 R (HD.6047) 6877 0 R ] /Limits [ (HD.6019) (HD.6047) ] >>
+<< /Names [ (HD.886) 1208 0 R (HD.8860) 9934 0 R (HD.8861) 9935 0 R (HD.8862) 9936 0 R (HD.8863) 9937 0 R (HD.8864) 9938 0 R (HD.8865) 9939 0 R (HD.8866) 9940 0 R (HD.8867) 9941 0 R (HD.8868) 9942 0 R (HD.8869) 9943 0 R (HD.887) 1213 0 R (HD.8870) 9944 0 R (HD.8871) 9945 0 R (HD.8872) 9946 0 R (HD.8873) 9947 0 R (HD.8874) 9948 0 R (HD.8875) 9949 0 R (HD.8876) 9950 0 R (HD.8877) 9951 0 R (HD.8878) 9952 0 R (HD.8879) 9953 0 R (HD.888) 1214 0 R (HD.8880) 9954 0 R (HD.8881) 9959 0 R (HD.8882) 9960 0 R (HD.8883) 9961 0 R (HD.8884) 9962 0 R (HD.8885) 9963 0 R (HD.8886) 9964 0 R (HD.8887) 9965 0 R (HD.8888) 9966 0 R ] /Limits [ (HD.886) (HD.8888) ] >>
endobj
11891 0 obj
-<< /Names [ (HD.6048) 6878 0 R (HD.6049) 6879 0 R (HD.605) 905 0 R (HD.6050) 6880 0 R (HD.6051) 6881 0 R (HD.6052) 6882 0 R (HD.6053) 6883 0 R (HD.6054) 6884 0 R (HD.6055) 6885 0 R (HD.6056) 6886 0 R (HD.6057) 6887 0 R (HD.6058) 6888 0 R (HD.6059) 6889 0 R (HD.606) 906 0 R (HD.6060) 6890 0 R (HD.6061) 6891 0 R (HD.6062) 6892 0 R (HD.6063) 6893 0 R (HD.6064) 6894 0 R (HD.6065) 6895 0 R (HD.6066) 6896 0 R (HD.6067) 6897 0 R (HD.6068) 6902 0 R (HD.6069) 6903 0 R (HD.607) 907 0 R (HD.6070) 6904 0 R (HD.6071) 6905 0 R (HD.6072) 6906 0 R (HD.6073) 6907 0 R (HD.6074) 6908 0 R (HD.6075) 6909 0 R (HD.6076) 6910 0 R ] /Limits [ (HD.6048) (HD.6076) ] >>
+<< /Names [ (HD.8889) 9967 0 R (HD.889) 1215 0 R (HD.8890) 9968 0 R (HD.8891) 9969 0 R (HD.8892) 9970 0 R (HD.8893) 9971 0 R (HD.8894) 9972 0 R (HD.8895) 9973 0 R (HD.8896) 9974 0 R (HD.8897) 9975 0 R (HD.8898) 9976 0 R (HD.8899) 9977 0 R (HD.89) 290 0 R (HD.890) 1216 0 R (HD.8900) 9978 0 R (HD.8901) 9979 0 R (HD.8902) 9980 0 R (HD.8903) 9981 0 R (HD.8904) 9982 0 R (HD.8905) 9983 0 R (HD.8906) 9984 0 R (HD.8907) 9985 0 R (HD.8908) 9986 0 R (HD.8909) 9987 0 R (HD.891) 1217 0 R (HD.8910) 9988 0 R (HD.8911) 9989 0 R (HD.8912) 9990 0 R (HD.8913) 9991 0 R (HD.8914) 9992 0 R (HD.8915) 9993 0 R (HD.8916) 9994 0 R ] /Limits [ (HD.8889) (HD.8916) ] >>
endobj
11892 0 obj
-<< /Names [ (HD.6077) 6911 0 R (HD.6078) 6912 0 R (HD.6079) 6913 0 R (HD.608) 908 0 R (HD.6080) 6914 0 R (HD.6081) 6915 0 R (HD.6082) 6916 0 R (HD.6083) 6917 0 R (HD.6084) 6918 0 R (HD.6085) 6919 0 R (HD.6086) 6920 0 R (HD.6087) 6921 0 R (HD.6088) 6922 0 R (HD.6089) 6923 0 R (HD.609) 909 0 R (HD.6090) 6924 0 R (HD.6091) 6925 0 R (HD.6092) 6926 0 R (HD.6093) 6927 0 R (HD.6094) 6928 0 R (HD.6095) 6929 0 R (HD.6096) 6930 0 R (HD.6097) 6931 0 R (HD.6098) 6932 0 R (HD.6099) 6933 0 R (HD.61) 260 0 R (HD.610) 910 0 R (HD.6100) 6934 0 R (HD.6101) 6935 0 R (HD.6102) 6936 0 R (HD.6103) 6937 0 R (HD.6104) 6938 0 R ] /Limits [ (HD.6077) (HD.6104) ] >>
+<< /Names [ (HD.8917) 9995 0 R (HD.8918) 9996 0 R (HD.8919) 9997 0 R (HD.892) 1218 0 R (HD.8920) 9998 0 R (HD.8921) 9999 0 R (HD.8922) 10000 0 R (HD.8923) 10001 0 R (HD.8924) 10002 0 R (HD.8925) 10003 0 R (HD.8926) 10004 0 R (HD.8927) 10005 0 R (HD.8928) 10006 0 R (HD.8929) 10007 0 R (HD.893) 1219 0 R (HD.8930) 10008 0 R (HD.8931) 10009 0 R (HD.8932) 10010 0 R (HD.8933) 10011 0 R (HD.8934) 10012 0 R (HD.8935) 10013 0 R (HD.8936) 10014 0 R (HD.8937) 10015 0 R (HD.8938) 10016 0 R (HD.8939) 10017 0 R (HD.894) 1220 0 R (HD.8940) 10022 0 R (HD.8941) 10023 0 R (HD.8942) 10024 0 R (HD.8943) 10025 0 R (HD.8944) 10026 0 R (HD.8945) 10027 0 R ] /Limits [ (HD.8917) (HD.8945) ] >>
endobj
11893 0 obj
-<< /Names [ (HD.6105) 6939 0 R (HD.6106) 6940 0 R (HD.6107) 6941 0 R (HD.6108) 6942 0 R (HD.6109) 6943 0 R (HD.611) 911 0 R (HD.6110) 6944 0 R (HD.6111) 6945 0 R (HD.6112) 6946 0 R (HD.6113) 6947 0 R (HD.6114) 6948 0 R (HD.6115) 6949 0 R (HD.6116) 6950 0 R (HD.6117) 6951 0 R (HD.6118) 6952 0 R (HD.6119) 6957 0 R (HD.612) 912 0 R (HD.6120) 6958 0 R (HD.6121) 6959 0 R (HD.6122) 6960 0 R (HD.6123) 6961 0 R (HD.6124) 6962 0 R (HD.6125) 6963 0 R (HD.6126) 6964 0 R (HD.6127) 6965 0 R (HD.6128) 6966 0 R (HD.6129) 6967 0 R (HD.613) 913 0 R (HD.6130) 6968 0 R (HD.6131) 6969 0 R (HD.6132) 6970 0 R (HD.6133) 6971 0 R ] /Limits [ (HD.6105) (HD.6133) ] >>
+<< /Names [ (HD.8946) 10028 0 R (HD.8947) 10029 0 R (HD.8948) 10030 0 R (HD.8949) 10031 0 R (HD.895) 1221 0 R (HD.8950) 10032 0 R (HD.8951) 10033 0 R (HD.8952) 10034 0 R (HD.8953) 10035 0 R (HD.8954) 10036 0 R (HD.8955) 10037 0 R (HD.8956) 10038 0 R (HD.8957) 10039 0 R (HD.8958) 10040 0 R (HD.8959) 10041 0 R (HD.896) 1222 0 R (HD.8960) 10042 0 R (HD.8961) 10043 0 R (HD.8962) 10044 0 R (HD.8963) 10045 0 R (HD.8964) 10046 0 R (HD.8965) 10047 0 R (HD.8966) 10048 0 R (HD.8967) 10049 0 R (HD.8968) 10050 0 R (HD.8969) 10051 0 R (HD.897) 1223 0 R (HD.8970) 10052 0 R (HD.8971) 10053 0 R (HD.8972) 10054 0 R (HD.8973) 10055 0 R (HD.8974) 10056 0 R ] /Limits [ (HD.8946) (HD.8974) ] >>
endobj
11894 0 obj
-<< /Names [ (HD.6134) 6972 0 R (HD.6135) 6973 0 R (HD.6136) 6974 0 R (HD.6137) 6975 0 R (HD.6138) 6976 0 R (HD.6139) 6977 0 R (HD.614) 914 0 R (HD.6140) 6978 0 R (HD.6141) 6979 0 R (HD.6142) 6980 0 R (HD.6143) 6981 0 R (HD.6144) 6982 0 R (HD.6145) 6983 0 R (HD.6146) 6984 0 R (HD.6147) 6985 0 R (HD.6148) 6986 0 R (HD.6149) 6987 0 R (HD.615) 915 0 R (HD.6150) 6988 0 R (HD.6151) 6989 0 R (HD.6152) 6990 0 R (HD.6153) 6991 0 R (HD.6154) 6992 0 R (HD.6155) 6993 0 R (HD.6156) 6994 0 R (HD.6157) 6995 0 R (HD.6158) 6996 0 R (HD.6159) 6997 0 R (HD.616) 916 0 R (HD.6160) 6998 0 R (HD.6161) 6999 0 R (HD.6162) 7000 0 R ] /Limits [ (HD.6134) (HD.6162) ] >>
+<< /Names [ (HD.8975) 10057 0 R (HD.8976) 10058 0 R (HD.8977) 10059 0 R (HD.8978) 10060 0 R (HD.8979) 10061 0 R (HD.898) 1224 0 R (HD.8980) 10062 0 R (HD.8981) 10063 0 R (HD.8982) 10064 0 R (HD.8983) 10065 0 R (HD.8984) 10066 0 R (HD.8985) 10067 0 R (HD.8986) 10068 0 R (HD.8987) 10069 0 R (HD.8988) 10070 0 R (HD.8989) 10071 0 R (HD.899) 1225 0 R (HD.8990) 10072 0 R (HD.8991) 10073 0 R (HD.8992) 10074 0 R (HD.8993) 10075 0 R (HD.8994) 10080 0 R (HD.8995) 10081 0 R (HD.8996) 10082 0 R (HD.8997) 10083 0 R (HD.8998) 10084 0 R (HD.8999) 10085 0 R (HD.9) 193 0 R (HD.90) 291 0 R (HD.900) 1226 0 R (HD.9000) 10086 0 R (HD.9001) 10087 0 R ] /Limits [ (HD.8975) (HD.9001) ] >>
endobj
11895 0 obj
-<< /Names [ (HD.6163) 7001 0 R (HD.6164) 7002 0 R (HD.6165) 7003 0 R (HD.6166) 7004 0 R (HD.6167) 7005 0 R (HD.6168) 7006 0 R (HD.6169) 7007 0 R (HD.617) 917 0 R (HD.6170) 7008 0 R (HD.6171) 7009 0 R (HD.6172) 7010 0 R (HD.6173) 7011 0 R (HD.6174) 7012 0 R (HD.6175) 7013 0 R (HD.6176) 7014 0 R (HD.6177) 7015 0 R (HD.6178) 7020 0 R (HD.6179) 7021 0 R (HD.618) 918 0 R (HD.6180) 7022 0 R (HD.6181) 7023 0 R (HD.6182) 7024 0 R (HD.6183) 7025 0 R (HD.6184) 7026 0 R (HD.6185) 7027 0 R (HD.6186) 7028 0 R (HD.6187) 7029 0 R (HD.6188) 7030 0 R (HD.6189) 7031 0 R (HD.619) 919 0 R (HD.6190) 7032 0 R (HD.6191) 7033 0 R ] /Limits [ (HD.6163) (HD.6191) ] >>
+<< /Names [ (HD.9002) 10088 0 R (HD.9003) 10089 0 R (HD.9004) 10090 0 R (HD.9005) 10091 0 R (HD.9006) 10092 0 R (HD.9007) 10093 0 R (HD.9008) 10094 0 R (HD.9009) 10095 0 R (HD.901) 1227 0 R (HD.9010) 10096 0 R (HD.9011) 10097 0 R (HD.9012) 10098 0 R (HD.9013) 10099 0 R (HD.9014) 10100 0 R (HD.9015) 10101 0 R (HD.9016) 10102 0 R (HD.9017) 10103 0 R (HD.9018) 10104 0 R (HD.9019) 10105 0 R (HD.902) 1228 0 R (HD.9020) 10106 0 R (HD.9021) 10107 0 R (HD.9022) 10108 0 R (HD.9023) 10109 0 R (HD.9024) 10110 0 R (HD.9025) 10111 0 R (HD.9026) 10112 0 R (HD.9027) 10113 0 R (HD.9028) 10114 0 R (HD.9029) 10115 0 R (HD.903) 1229 0 R (HD.9030) 10116 0 R ] /Limits [ (HD.9002) (HD.9030) ] >>
endobj
11896 0 obj
-<< /Names [ (HD.6192) 7034 0 R (HD.6193) 7035 0 R (HD.6194) 7036 0 R (HD.6195) 7037 0 R (HD.6196) 7038 0 R (HD.6197) 7039 0 R (HD.6198) 7040 0 R (HD.6199) 7041 0 R (HD.62) 261 0 R (HD.620) 924 0 R (HD.6200) 7042 0 R (HD.6201) 7043 0 R (HD.6202) 7044 0 R (HD.6203) 7045 0 R (HD.6204) 7046 0 R (HD.6205) 7047 0 R (HD.6206) 7048 0 R (HD.6207) 7049 0 R (HD.6208) 7050 0 R (HD.6209) 7051 0 R (HD.621) 925 0 R (HD.6210) 7052 0 R (HD.6211) 7053 0 R (HD.6212) 7054 0 R (HD.6213) 7055 0 R (HD.6214) 7056 0 R (HD.6215) 7057 0 R (HD.6216) 7058 0 R (HD.6217) 7059 0 R (HD.6218) 7060 0 R (HD.6219) 7061 0 R (HD.622) 926 0 R ] /Limits [ (HD.6192) (HD.622) ] >>
+<< /Names [ (HD.9031) 10117 0 R (HD.9032) 10118 0 R (HD.9033) 10119 0 R (HD.9034) 10120 0 R (HD.9035) 10121 0 R (HD.9036) 10122 0 R (HD.9037) 10123 0 R (HD.9038) 10124 0 R (HD.9039) 10125 0 R (HD.904) 1230 0 R (HD.9040) 10126 0 R (HD.9041) 10127 0 R (HD.9042) 10128 0 R (HD.9043) 10129 0 R (HD.9044) 10130 0 R (HD.9045) 10131 0 R (HD.9046) 10132 0 R (HD.9047) 10133 0 R (HD.9048) 10134 0 R (HD.9049) 10135 0 R (HD.905) 1231 0 R (HD.9050) 10136 0 R (HD.9051) 10137 0 R (HD.9052) 10138 0 R (HD.9053) 10139 0 R (HD.9054) 10140 0 R (HD.9055) 10141 0 R (HD.9056) 10146 0 R (HD.9057) 10147 0 R (HD.9058) 10148 0 R (HD.9059) 10149 0 R (HD.906) 1232 0 R ] /Limits [ (HD.9031) (HD.906) ] >>
endobj
11897 0 obj
-<< /Names [ (HD.6220) 7062 0 R (HD.6221) 7063 0 R (HD.6222) 7064 0 R (HD.6223) 7065 0 R (HD.6224) 7066 0 R (HD.6225) 7067 0 R (HD.6226) 7068 0 R (HD.6227) 7069 0 R (HD.6228) 7070 0 R (HD.6229) 7071 0 R (HD.623) 927 0 R (HD.6230) 7076 0 R (HD.6231) 7077 0 R (HD.6232) 7078 0 R (HD.6233) 7079 0 R (HD.6234) 7080 0 R (HD.6235) 7081 0 R (HD.6236) 7082 0 R (HD.6237) 7083 0 R (HD.6238) 7084 0 R (HD.6239) 7085 0 R (HD.624) 928 0 R (HD.6240) 7086 0 R (HD.6241) 7087 0 R (HD.6242) 7088 0 R (HD.6243) 7089 0 R (HD.6244) 7090 0 R (HD.6245) 7091 0 R (HD.6246) 7092 0 R (HD.6247) 7093 0 R (HD.6248) 7094 0 R (HD.6249) 7095 0 R ] /Limits [ (HD.6220) (HD.6249) ] >>
+<< /Names [ (HD.9060) 10150 0 R (HD.9061) 10151 0 R (HD.9062) 10152 0 R (HD.9063) 10153 0 R (HD.9064) 10154 0 R (HD.9065) 10155 0 R (HD.9066) 10156 0 R (HD.9067) 10157 0 R (HD.9068) 10158 0 R (HD.9069) 10159 0 R (HD.907) 1233 0 R (HD.9070) 10160 0 R (HD.9071) 10161 0 R (HD.9072) 10162 0 R (HD.9073) 10163 0 R (HD.9074) 10164 0 R (HD.9075) 10165 0 R (HD.9076) 10166 0 R (HD.9077) 10167 0 R (HD.9078) 10168 0 R (HD.9079) 10169 0 R (HD.908) 1234 0 R (HD.9080) 10170 0 R (HD.9081) 10171 0 R (HD.9082) 10172 0 R (HD.9083) 10173 0 R (HD.9084) 10174 0 R (HD.9085) 10175 0 R (HD.9086) 10176 0 R (HD.9087) 10177 0 R (HD.9088) 10178 0 R (HD.9089) 10179 0 R ] /Limits [ (HD.9060) (HD.9089) ] >>
endobj
11898 0 obj
-<< /Names [ (HD.625) 929 0 R (HD.6250) 7096 0 R (HD.6251) 7097 0 R (HD.6252) 7098 0 R (HD.6253) 7099 0 R (HD.6254) 7100 0 R (HD.6255) 7101 0 R (HD.6256) 7102 0 R (HD.6257) 7103 0 R (HD.6258) 7104 0 R (HD.6259) 7105 0 R (HD.626) 930 0 R (HD.6260) 7106 0 R (HD.6261) 7107 0 R (HD.6262) 7108 0 R (HD.6263) 7109 0 R (HD.6264) 7110 0 R (HD.6265) 7111 0 R (HD.6266) 7112 0 R (HD.6267) 7113 0 R (HD.6268) 7114 0 R (HD.6269) 7115 0 R (HD.627) 931 0 R (HD.6270) 7116 0 R (HD.6271) 7117 0 R (HD.6272) 7118 0 R (HD.6273) 7123 0 R (HD.6274) 7124 0 R (HD.6275) 7125 0 R (HD.6276) 7126 0 R (HD.6277) 7127 0 R (HD.6278) 7128 0 R ] /Limits [ (HD.625) (HD.6278) ] >>
+<< /Names [ (HD.909) 1235 0 R (HD.9090) 10180 0 R (HD.9091) 10181 0 R (HD.9092) 10182 0 R (HD.9093) 10183 0 R (HD.9094) 10184 0 R (HD.9095) 10185 0 R (HD.9096) 10186 0 R (HD.9097) 10187 0 R (HD.9098) 10188 0 R (HD.9099) 10189 0 R (HD.91) 292 0 R (HD.910) 1236 0 R (HD.9100) 10190 0 R (HD.9101) 10191 0 R (HD.9102) 10192 0 R (HD.9103) 10193 0 R (HD.9104) 10194 0 R (HD.9105) 10195 0 R (HD.9106) 10196 0 R (HD.9107) 10197 0 R (HD.9108) 10198 0 R (HD.9109) 10199 0 R (HD.911) 1237 0 R (HD.9110) 10200 0 R (HD.9111) 10201 0 R (HD.9112) 10202 0 R (HD.9113) 10203 0 R (HD.9114) 10204 0 R (HD.9115) 10205 0 R (HD.9116) 10210 0 R (HD.9117) 10211 0 R ] /Limits [ (HD.909) (HD.9117) ] >>
endobj
11899 0 obj
-<< /Names [ (HD.6279) 7129 0 R (HD.628) 932 0 R (HD.6280) 7130 0 R (HD.6281) 7131 0 R (HD.6282) 7132 0 R (HD.6283) 7133 0 R (HD.6284) 7134 0 R (HD.6285) 7135 0 R (HD.6286) 7136 0 R (HD.6287) 7137 0 R (HD.6288) 7138 0 R (HD.6289) 7139 0 R (HD.629) 933 0 R (HD.6290) 7140 0 R (HD.6291) 7141 0 R (HD.6292) 7142 0 R (HD.6293) 7143 0 R (HD.6294) 7144 0 R (HD.6295) 7145 0 R (HD.6296) 7146 0 R (HD.6297) 7147 0 R (HD.6298) 7148 0 R (HD.6299) 7149 0 R (HD.63) 262 0 R (HD.630) 934 0 R (HD.6300) 7150 0 R (HD.6301) 7151 0 R (HD.6302) 7152 0 R (HD.6303) 7153 0 R (HD.6304) 7154 0 R (HD.6305) 7155 0 R (HD.6306) 7156 0 R ] /Limits [ (HD.6279) (HD.6306) ] >>
+<< /Names [ (HD.9118) 10212 0 R (HD.9119) 10213 0 R (HD.912) 1238 0 R (HD.9120) 10214 0 R (HD.9121) 10215 0 R (HD.9122) 10216 0 R (HD.9123) 10217 0 R (HD.9124) 10218 0 R (HD.9125) 10219 0 R (HD.9126) 10220 0 R (HD.9127) 10221 0 R (HD.9128) 10222 0 R (HD.9129) 10223 0 R (HD.913) 1239 0 R (HD.9130) 10224 0 R (HD.9131) 10225 0 R (HD.9132) 10226 0 R (HD.9133) 10227 0 R (HD.9134) 10228 0 R (HD.9135) 10229 0 R (HD.9136) 10230 0 R (HD.9137) 10231 0 R (HD.9138) 10232 0 R (HD.9139) 10233 0 R (HD.914) 1240 0 R (HD.9140) 10234 0 R (HD.9141) 10235 0 R (HD.9142) 10236 0 R (HD.9143) 10237 0 R (HD.9144) 10238 0 R (HD.9145) 10239 0 R (HD.9146) 10240 0 R ] /Limits [ (HD.9118) (HD.9146) ] >>
endobj
11900 0 obj
-<< /Names [ (HD.6307) 7157 0 R (HD.6308) 7158 0 R (HD.6309) 7159 0 R (HD.631) 935 0 R (HD.6310) 7160 0 R (HD.6311) 7161 0 R (HD.6312) 7162 0 R (HD.6313) 7163 0 R (HD.6314) 7164 0 R (HD.6315) 7165 0 R (HD.6316) 7166 0 R (HD.6317) 7167 0 R (HD.6318) 7168 0 R (HD.6319) 7169 0 R (HD.632) 936 0 R (HD.6320) 7170 0 R (HD.6321) 7171 0 R (HD.6322) 7172 0 R (HD.6323) 7173 0 R (HD.6324) 7174 0 R (HD.6325) 7175 0 R (HD.6326) 7176 0 R (HD.6327) 7177 0 R (HD.6328) 7182 0 R (HD.6329) 7183 0 R (HD.633) 937 0 R (HD.6330) 7184 0 R (HD.6331) 7185 0 R (HD.6332) 7186 0 R (HD.6333) 7187 0 R (HD.6334) 7188 0 R (HD.6335) 7189 0 R ] /Limits [ (HD.6307) (HD.6335) ] >>
+<< /Names [ (HD.9147) 10241 0 R (HD.9148) 10242 0 R (HD.9149) 10243 0 R (HD.915) 1241 0 R (HD.9150) 10244 0 R (HD.9151) 10245 0 R (HD.9152) 10246 0 R (HD.9153) 10247 0 R (HD.9154) 10248 0 R (HD.9155) 10249 0 R (HD.9156) 10250 0 R (HD.9157) 10251 0 R (HD.9158) 10252 0 R (HD.9159) 10253 0 R (HD.916) 1242 0 R (HD.9160) 10254 0 R (HD.9161) 10255 0 R (HD.9162) 10256 0 R (HD.9163) 10257 0 R (HD.9164) 10262 0 R (HD.9165) 10263 0 R (HD.9166) 10264 0 R (HD.9167) 10265 0 R (HD.9168) 10266 0 R (HD.9169) 10267 0 R (HD.917) 1243 0 R (HD.9170) 10268 0 R (HD.9171) 10269 0 R (HD.9172) 10270 0 R (HD.9173) 10271 0 R (HD.9174) 10272 0 R (HD.9175) 10273 0 R ] /Limits [ (HD.9147) (HD.9175) ] >>
endobj
11901 0 obj
-<< /Names [ (HD.6336) 7190 0 R (HD.6337) 7191 0 R (HD.6338) 7192 0 R (HD.6339) 7193 0 R (HD.634) 938 0 R (HD.6340) 7194 0 R (HD.6341) 7195 0 R (HD.6342) 7196 0 R (HD.6343) 7197 0 R (HD.6344) 7198 0 R (HD.6345) 7199 0 R (HD.6346) 7200 0 R (HD.6347) 7201 0 R (HD.6348) 7202 0 R (HD.6349) 7203 0 R (HD.635) 939 0 R (HD.6350) 7204 0 R (HD.6351) 7205 0 R (HD.6352) 7206 0 R (HD.6353) 7207 0 R (HD.6354) 7208 0 R (HD.6355) 7209 0 R (HD.6356) 7210 0 R (HD.6357) 7211 0 R (HD.6358) 7212 0 R (HD.6359) 7213 0 R (HD.636) 940 0 R (HD.6360) 7214 0 R (HD.6361) 7215 0 R (HD.6362) 7216 0 R (HD.6363) 7217 0 R (HD.6364) 7218 0 R ] /Limits [ (HD.6336) (HD.6364) ] >>
+<< /Names [ (HD.9176) 10274 0 R (HD.9177) 10275 0 R (HD.9178) 10276 0 R (HD.9179) 10277 0 R (HD.918) 1244 0 R (HD.9180) 10278 0 R (HD.9181) 10279 0 R (HD.9182) 10280 0 R (HD.9183) 10281 0 R (HD.9184) 10282 0 R (HD.9185) 10283 0 R (HD.9186) 10284 0 R (HD.9187) 10285 0 R (HD.9188) 10286 0 R (HD.9189) 10287 0 R (HD.919) 1245 0 R (HD.9190) 10288 0 R (HD.9191) 10289 0 R (HD.9192) 10290 0 R (HD.9193) 10291 0 R (HD.9194) 10292 0 R (HD.9195) 10293 0 R (HD.9196) 10294 0 R (HD.9197) 10295 0 R (HD.9198) 10296 0 R (HD.9199) 10297 0 R (HD.92) 293 0 R (HD.920) 1246 0 R (HD.9200) 10298 0 R (HD.9201) 10299 0 R (HD.9202) 10300 0 R (HD.9203) 10301 0 R ] /Limits [ (HD.9176) (HD.9203) ] >>
endobj
11902 0 obj
-<< /Names [ (HD.6365) 7219 0 R (HD.6366) 7220 0 R (HD.6367) 7221 0 R (HD.6368) 7222 0 R (HD.6369) 7223 0 R (HD.637) 941 0 R (HD.6370) 7224 0 R (HD.6371) 7225 0 R (HD.6372) 7226 0 R (HD.6373) 7227 0 R (HD.6374) 7228 0 R (HD.6375) 7229 0 R (HD.6376) 7230 0 R (HD.6377) 7231 0 R (HD.6378) 7232 0 R (HD.6379) 7233 0 R (HD.638) 942 0 R (HD.6380) 7238 0 R (HD.6381) 7239 0 R (HD.6382) 7240 0 R (HD.6383) 7241 0 R (HD.6384) 7242 0 R (HD.6385) 7243 0 R (HD.6386) 7244 0 R (HD.6387) 7245 0 R (HD.6388) 7246 0 R (HD.6389) 7247 0 R (HD.639) 943 0 R (HD.6390) 7248 0 R (HD.6391) 7249 0 R (HD.6392) 7250 0 R (HD.6393) 7251 0 R ] /Limits [ (HD.6365) (HD.6393) ] >>
+<< /Names [ (HD.9204) 10302 0 R (HD.9205) 10303 0 R (HD.9206) 10304 0 R (HD.9207) 10305 0 R (HD.9208) 10306 0 R (HD.9209) 10307 0 R (HD.921) 1247 0 R (HD.9210) 10308 0 R (HD.9211) 10309 0 R (HD.9212) 10310 0 R (HD.9213) 10311 0 R (HD.9214) 10312 0 R (HD.9215) 10317 0 R (HD.9216) 10318 0 R (HD.9217) 10319 0 R (HD.9218) 10320 0 R (HD.9219) 10321 0 R (HD.922) 1248 0 R (HD.9220) 10322 0 R (HD.9221) 10323 0 R (HD.9222) 10324 0 R (HD.9223) 10325 0 R (HD.9224) 10326 0 R (HD.9225) 10327 0 R (HD.9226) 10328 0 R (HD.9227) 10329 0 R (HD.9228) 10330 0 R (HD.9229) 10331 0 R (HD.923) 1249 0 R (HD.9230) 10332 0 R (HD.9231) 10333 0 R (HD.9232) 10334 0 R ] /Limits [ (HD.9204) (HD.9232) ] >>
endobj
11903 0 obj
-<< /Names [ (HD.6394) 7252 0 R (HD.6395) 7253 0 R (HD.6396) 7254 0 R (HD.6397) 7255 0 R (HD.6398) 7256 0 R (HD.6399) 7257 0 R (HD.64) 263 0 R (HD.640) 944 0 R (HD.6400) 7258 0 R (HD.6401) 7259 0 R (HD.6402) 7260 0 R (HD.6403) 7261 0 R (HD.6404) 7262 0 R (HD.6405) 7263 0 R (HD.6406) 7264 0 R (HD.6407) 7265 0 R (HD.6408) 7266 0 R (HD.6409) 7267 0 R (HD.641) 945 0 R (HD.6410) 7268 0 R (HD.6411) 7269 0 R (HD.6412) 7270 0 R (HD.6413) 7271 0 R (HD.6414) 7272 0 R (HD.6415) 7273 0 R (HD.6416) 7274 0 R (HD.6417) 7275 0 R (HD.6418) 7276 0 R (HD.6419) 7277 0 R (HD.642) 946 0 R (HD.6420) 7278 0 R (HD.6421) 7279 0 R ] /Limits [ (HD.6394) (HD.6421) ] >>
+<< /Names [ (HD.9233) 10335 0 R (HD.9234) 10336 0 R (HD.9235) 10337 0 R (HD.9236) 10338 0 R (HD.9237) 10339 0 R (HD.9238) 10340 0 R (HD.9239) 10341 0 R (HD.924) 1250 0 R (HD.9240) 10342 0 R (HD.9241) 10343 0 R (HD.9242) 10344 0 R (HD.9243) 10345 0 R (HD.9244) 10346 0 R (HD.9245) 10347 0 R (HD.9246) 10348 0 R (HD.9247) 10349 0 R (HD.9248) 10350 0 R (HD.9249) 10351 0 R (HD.925) 1251 0 R (HD.9250) 10352 0 R (HD.9251) 10353 0 R (HD.9252) 10358 0 R (HD.9253) 10359 0 R (HD.9254) 10360 0 R (HD.9255) 10361 0 R (HD.9256) 10362 0 R (HD.9257) 10363 0 R (HD.9258) 10364 0 R (HD.9259) 10365 0 R (HD.926) 1252 0 R (HD.9260) 10366 0 R (HD.9261) 10367 0 R ] /Limits [ (HD.9233) (HD.9261) ] >>
endobj
11904 0 obj
-<< /Names [ (HD.6422) 7280 0 R (HD.6423) 7281 0 R (HD.6424) 7282 0 R (HD.6425) 7283 0 R (HD.6426) 7288 0 R (HD.6427) 7289 0 R (HD.6428) 7290 0 R (HD.6429) 7291 0 R (HD.643) 947 0 R (HD.6430) 7292 0 R (HD.6431) 7293 0 R (HD.6432) 7294 0 R (HD.6433) 7295 0 R (HD.6434) 7296 0 R (HD.6435) 7297 0 R (HD.6436) 7298 0 R (HD.6437) 7299 0 R (HD.6438) 7300 0 R (HD.6439) 7301 0 R (HD.644) 948 0 R (HD.6440) 7302 0 R (HD.6441) 7303 0 R (HD.6442) 7304 0 R (HD.6443) 7305 0 R (HD.6444) 7306 0 R (HD.6445) 7307 0 R (HD.6446) 7308 0 R (HD.6447) 7309 0 R (HD.6448) 7310 0 R (HD.6449) 7311 0 R (HD.645) 949 0 R (HD.6450) 7312 0 R ] /Limits [ (HD.6422) (HD.6450) ] >>
+<< /Names [ (HD.9262) 10368 0 R (HD.9263) 10369 0 R (HD.9264) 10370 0 R (HD.9265) 10371 0 R (HD.9266) 10372 0 R (HD.9267) 10373 0 R (HD.9268) 10374 0 R (HD.9269) 10375 0 R (HD.927) 1253 0 R (HD.9270) 10376 0 R (HD.9271) 10377 0 R (HD.9272) 10378 0 R (HD.9273) 10379 0 R (HD.9274) 10380 0 R (HD.9275) 10381 0 R (HD.9276) 10382 0 R (HD.9277) 10383 0 R (HD.9278) 10384 0 R (HD.9279) 10385 0 R (HD.928) 1254 0 R (HD.9280) 10386 0 R (HD.9281) 10387 0 R (HD.9282) 10388 0 R (HD.9283) 10389 0 R (HD.9284) 10390 0 R (HD.9285) 10391 0 R (HD.9286) 10392 0 R (HD.9287) 10393 0 R (HD.9288) 10394 0 R (HD.9289) 10395 0 R (HD.929) 1255 0 R (HD.9290) 10396 0 R ] /Limits [ (HD.9262) (HD.9290) ] >>
endobj
11905 0 obj
-<< /Names [ (HD.6451) 7313 0 R (HD.6452) 7314 0 R (HD.6453) 7315 0 R (HD.6454) 7316 0 R (HD.6455) 7317 0 R (HD.6456) 7318 0 R (HD.6457) 7319 0 R (HD.6458) 7320 0 R (HD.6459) 7321 0 R (HD.646) 950 0 R (HD.6460) 7322 0 R (HD.6461) 7323 0 R (HD.6462) 7324 0 R (HD.6463) 7325 0 R (HD.6464) 7326 0 R (HD.6465) 7327 0 R (HD.6466) 7328 0 R (HD.6467) 7329 0 R (HD.6468) 7330 0 R (HD.6469) 7331 0 R (HD.647) 951 0 R (HD.6470) 7332 0 R (HD.6471) 7333 0 R (HD.6472) 7334 0 R (HD.6473) 7335 0 R (HD.6474) 7336 0 R (HD.6475) 7337 0 R (HD.6476) 7343 0 R (HD.6477) 7344 0 R (HD.6478) 7345 0 R (HD.6479) 7346 0 R (HD.648) 952 0 R ] /Limits [ (HD.6451) (HD.648) ] >>
+<< /Names [ (HD.9291) 10397 0 R (HD.9292) 10398 0 R (HD.9293) 10399 0 R (HD.9294) 10400 0 R (HD.9295) 10401 0 R (HD.9296) 10402 0 R (HD.9297) 10403 0 R (HD.9298) 10404 0 R (HD.9299) 10405 0 R (HD.93) 294 0 R (HD.930) 1256 0 R (HD.9300) 10406 0 R (HD.9301) 10407 0 R (HD.9302) 10408 0 R (HD.9303) 10409 0 R (HD.9304) 10410 0 R (HD.9305) 10411 0 R (HD.9306) 10412 0 R (HD.9307) 10413 0 R (HD.9308) 10414 0 R (HD.9309) 10415 0 R (HD.931) 1257 0 R (HD.9310) 10416 0 R (HD.9311) 10422 0 R (HD.9312) 10423 0 R (HD.9313) 10424 0 R (HD.9314) 10425 0 R (HD.9315) 10426 0 R (HD.9316) 10427 0 R (HD.9317) 10428 0 R (HD.9318) 10429 0 R (HD.9319) 10430 0 R ] /Limits [ (HD.9291) (HD.9319) ] >>
endobj
11906 0 obj
-<< /Names [ (HD.6480) 7347 0 R (HD.6481) 7348 0 R (HD.6482) 7349 0 R (HD.6483) 7350 0 R (HD.6484) 7351 0 R (HD.6485) 7352 0 R (HD.6486) 7353 0 R (HD.6487) 7354 0 R (HD.6488) 7355 0 R (HD.6489) 7356 0 R (HD.649) 953 0 R (HD.6490) 7357 0 R (HD.6491) 7358 0 R (HD.6492) 7359 0 R (HD.6493) 7360 0 R (HD.6494) 7361 0 R (HD.6495) 7362 0 R (HD.6496) 7363 0 R (HD.6497) 7364 0 R (HD.6498) 7365 0 R (HD.6499) 7366 0 R (HD.65) 265 0 R (HD.650) 954 0 R (HD.6500) 7367 0 R (HD.6501) 7368 0 R (HD.6502) 7369 0 R (HD.6503) 7370 0 R (HD.6504) 7371 0 R (HD.6505) 7372 0 R (HD.6506) 7373 0 R (HD.6507) 7374 0 R (HD.6508) 7375 0 R ] /Limits [ (HD.6480) (HD.6508) ] >>
+<< /Names [ (HD.932) 1258 0 R (HD.9320) 10431 0 R (HD.9321) 10432 0 R (HD.9322) 10433 0 R (HD.9323) 10434 0 R (HD.9324) 10435 0 R (HD.9325) 10436 0 R (HD.9326) 10437 0 R (HD.9327) 10438 0 R (HD.9328) 10439 0 R (HD.9329) 10440 0 R (HD.933) 1259 0 R (HD.9330) 10441 0 R (HD.9331) 10442 0 R (HD.9332) 10443 0 R (HD.9333) 10444 0 R (HD.9334) 10445 0 R (HD.9335) 10446 0 R (HD.9336) 10447 0 R (HD.9337) 10448 0 R (HD.9338) 10449 0 R (HD.9339) 10450 0 R (HD.934) 1260 0 R (HD.9340) 10451 0 R (HD.9341) 10452 0 R (HD.9342) 10453 0 R (HD.9343) 10454 0 R (HD.9344) 10455 0 R (HD.9345) 10456 0 R (HD.9346) 10457 0 R (HD.9347) 10458 0 R (HD.9348) 10459 0 R ] /Limits [ (HD.932) (HD.9348) ] >>
endobj
11907 0 obj
-<< /Names [ (HD.6509) 7376 0 R (HD.651) 955 0 R (HD.6510) 7377 0 R (HD.6511) 7378 0 R (HD.6512) 7379 0 R (HD.6513) 7380 0 R (HD.6514) 7381 0 R (HD.6515) 7382 0 R (HD.6516) 7383 0 R (HD.6517) 7384 0 R (HD.6518) 7385 0 R (HD.6519) 7386 0 R (HD.652) 956 0 R (HD.6520) 7387 0 R (HD.6521) 7388 0 R (HD.6522) 7393 0 R (HD.6523) 7394 0 R (HD.6524) 7395 0 R (HD.6525) 7396 0 R (HD.6526) 7397 0 R (HD.6527) 7398 0 R (HD.6528) 7399 0 R (HD.6529) 7400 0 R (HD.653) 957 0 R (HD.6530) 7401 0 R (HD.6531) 7402 0 R (HD.6532) 7403 0 R (HD.6533) 7404 0 R (HD.6534) 7405 0 R (HD.6535) 7406 0 R (HD.6536) 7407 0 R (HD.6537) 7408 0 R ] /Limits [ (HD.6509) (HD.6537) ] >>
+<< /Names [ (HD.9349) 10460 0 R (HD.935) 1261 0 R (HD.9350) 10461 0 R (HD.9351) 10462 0 R (HD.9352) 10463 0 R (HD.9353) 10464 0 R (HD.9354) 10465 0 R (HD.9355) 10466 0 R (HD.9356) 10467 0 R (HD.9357) 10468 0 R (HD.9358) 10469 0 R (HD.9359) 10470 0 R (HD.936) 1262 0 R (HD.9360) 10471 0 R (HD.9361) 10472 0 R (HD.9362) 10473 0 R (HD.9363) 10474 0 R (HD.9364) 10475 0 R (HD.9365) 10476 0 R (HD.9366) 10477 0 R (HD.9367) 10478 0 R (HD.9368) 10479 0 R (HD.9369) 10480 0 R (HD.937) 1263 0 R (HD.9370) 10485 0 R (HD.9371) 10486 0 R (HD.9372) 10487 0 R (HD.9373) 10488 0 R (HD.9374) 10489 0 R (HD.9375) 10490 0 R (HD.9376) 10491 0 R (HD.9377) 10492 0 R ] /Limits [ (HD.9349) (HD.9377) ] >>
endobj
11908 0 obj
-<< /Names [ (HD.6538) 7409 0 R (HD.6539) 7410 0 R (HD.654) 958 0 R (HD.6540) 7411 0 R (HD.6541) 7412 0 R (HD.6542) 7413 0 R (HD.6543) 7414 0 R (HD.6544) 7415 0 R (HD.6545) 7416 0 R (HD.6546) 7417 0 R (HD.6547) 7418 0 R (HD.6548) 7419 0 R (HD.6549) 7420 0 R (HD.655) 959 0 R (HD.6550) 7421 0 R (HD.6551) 7422 0 R (HD.6552) 7423 0 R (HD.6553) 7424 0 R (HD.6554) 7425 0 R (HD.6555) 7426 0 R (HD.6556) 7427 0 R (HD.6557) 7428 0 R (HD.6558) 7429 0 R (HD.6559) 7430 0 R (HD.656) 960 0 R (HD.6560) 7431 0 R (HD.6561) 7432 0 R (HD.6562) 7433 0 R (HD.6563) 7434 0 R (HD.6564) 7435 0 R (HD.6565) 7436 0 R (HD.6566) 7437 0 R ] /Limits [ (HD.6538) (HD.6566) ] >>
+<< /Names [ (HD.9378) 10493 0 R (HD.9379) 10494 0 R (HD.938) 1268 0 R (HD.9380) 10495 0 R (HD.9381) 10496 0 R (HD.9382) 10497 0 R (HD.9383) 10498 0 R (HD.9384) 10499 0 R (HD.9385) 10500 0 R (HD.9386) 10501 0 R (HD.9387) 10502 0 R (HD.9388) 10503 0 R (HD.9389) 10504 0 R (HD.939) 1269 0 R (HD.9390) 10505 0 R (HD.9391) 10506 0 R (HD.9392) 10507 0 R (HD.9393) 10508 0 R (HD.9394) 10509 0 R (HD.9395) 10510 0 R (HD.9396) 10511 0 R (HD.9397) 10512 0 R (HD.9398) 10513 0 R (HD.9399) 10514 0 R (HD.94) 295 0 R (HD.940) 1270 0 R (HD.9400) 10515 0 R (HD.9401) 10516 0 R (HD.9402) 10517 0 R (HD.9403) 10518 0 R (HD.9404) 10519 0 R (HD.9405) 10520 0 R ] /Limits [ (HD.9378) (HD.9405) ] >>
endobj
11909 0 obj
-<< /Names [ (HD.6567) 7438 0 R (HD.6568) 7439 0 R (HD.6569) 7444 0 R (HD.657) 961 0 R (HD.6570) 7445 0 R (HD.6571) 7446 0 R (HD.6572) 7447 0 R (HD.6573) 7448 0 R (HD.6574) 7449 0 R (HD.6575) 7450 0 R (HD.6576) 7451 0 R (HD.6577) 7452 0 R (HD.6578) 7453 0 R (HD.6579) 7454 0 R (HD.658) 962 0 R (HD.6580) 7455 0 R (HD.6581) 7456 0 R (HD.6582) 7457 0 R (HD.6583) 7458 0 R (HD.6584) 7459 0 R (HD.6585) 7460 0 R (HD.6586) 7461 0 R (HD.6587) 7462 0 R (HD.6588) 7463 0 R (HD.6589) 7464 0 R (HD.659) 963 0 R (HD.6590) 7465 0 R (HD.6591) 7466 0 R (HD.6592) 7467 0 R (HD.6593) 7468 0 R (HD.6594) 7469 0 R (HD.6595) 7470 0 R ] /Limits [ (HD.6567) (HD.6595) ] >>
+<< /Names [ (HD.9406) 10521 0 R (HD.9407) 10522 0 R (HD.9408) 10523 0 R (HD.9409) 10524 0 R (HD.941) 1271 0 R (HD.9410) 10525 0 R (HD.9411) 10526 0 R (HD.9412) 10527 0 R (HD.9413) 10528 0 R (HD.9414) 10529 0 R (HD.9415) 10530 0 R (HD.9416) 10531 0 R (HD.9417) 10532 0 R (HD.9418) 10533 0 R (HD.9419) 10534 0 R (HD.942) 1272 0 R (HD.9420) 10535 0 R (HD.9421) 10536 0 R (HD.9422) 10537 0 R (HD.9423) 10538 0 R (HD.9424) 10539 0 R (HD.9425) 10540 0 R (HD.9426) 10541 0 R (HD.9427) 10542 0 R (HD.9428) 10543 0 R (HD.9429) 10544 0 R (HD.943) 1273 0 R (HD.9430) 10545 0 R (HD.9431) 10550 0 R (HD.9432) 10551 0 R (HD.9433) 10552 0 R (HD.9434) 10553 0 R ] /Limits [ (HD.9406) (HD.9434) ] >>
endobj
11910 0 obj
-<< /Names [ (HD.6596) 7471 0 R (HD.6597) 7472 0 R (HD.6598) 7473 0 R (HD.6599) 7474 0 R (HD.66) 266 0 R (HD.660) 968 0 R (HD.6600) 7475 0 R (HD.6601) 7476 0 R (HD.6602) 7477 0 R (HD.6603) 7478 0 R (HD.6604) 7479 0 R (HD.6605) 7480 0 R (HD.6606) 7481 0 R (HD.6607) 7482 0 R (HD.6608) 7483 0 R (HD.6609) 7484 0 R (HD.661) 969 0 R (HD.6610) 7485 0 R (HD.6611) 7486 0 R (HD.6612) 7491 0 R (HD.6613) 7492 0 R (HD.6614) 7493 0 R (HD.6615) 7494 0 R (HD.6616) 7495 0 R (HD.6617) 7496 0 R (HD.6618) 7497 0 R (HD.6619) 7498 0 R (HD.662) 970 0 R (HD.6620) 7499 0 R (HD.6621) 7500 0 R (HD.6622) 7501 0 R (HD.6623) 7502 0 R ] /Limits [ (HD.6596) (HD.6623) ] >>
+<< /Names [ (HD.9435) 10554 0 R (HD.9436) 10555 0 R (HD.9437) 10556 0 R (HD.9438) 10557 0 R (HD.9439) 10558 0 R (HD.944) 1274 0 R (HD.9440) 10559 0 R (HD.9441) 10560 0 R (HD.9442) 10561 0 R (HD.9443) 10562 0 R (HD.9444) 10563 0 R (HD.9445) 10564 0 R (HD.9446) 10565 0 R (HD.9447) 10566 0 R (HD.9448) 10567 0 R (HD.9449) 10568 0 R (HD.945) 1275 0 R (HD.9450) 10569 0 R (HD.9451) 10570 0 R (HD.9452) 10571 0 R (HD.9453) 10572 0 R (HD.9454) 10573 0 R (HD.9455) 10574 0 R (HD.9456) 10575 0 R (HD.9457) 10576 0 R (HD.9458) 10577 0 R (HD.9459) 10578 0 R (HD.946) 1276 0 R (HD.9460) 10579 0 R (HD.9461) 10580 0 R (HD.9462) 10581 0 R (HD.9463) 10582 0 R ] /Limits [ (HD.9435) (HD.9463) ] >>
endobj
11911 0 obj
-<< /Names [ (HD.6624) 7503 0 R (HD.6625) 7504 0 R (HD.6626) 7505 0 R (HD.6627) 7506 0 R (HD.6628) 7507 0 R (HD.6629) 7508 0 R (HD.663) 971 0 R (HD.6630) 7509 0 R (HD.6631) 7510 0 R (HD.6632) 7511 0 R (HD.6633) 7512 0 R (HD.6634) 7513 0 R (HD.6635) 7514 0 R (HD.6636) 7515 0 R (HD.6637) 7516 0 R (HD.6638) 7517 0 R (HD.6639) 7518 0 R (HD.664) 972 0 R (HD.6640) 7519 0 R (HD.6641) 7520 0 R (HD.6642) 7521 0 R (HD.6643) 7522 0 R (HD.6644) 7523 0 R (HD.6645) 7524 0 R (HD.6646) 7525 0 R (HD.6647) 7526 0 R (HD.6648) 7527 0 R (HD.6649) 7528 0 R (HD.665) 973 0 R (HD.6650) 7529 0 R (HD.6651) 7530 0 R (HD.6652) 7531 0 R ] /Limits [ (HD.6624) (HD.6652) ] >>
+<< /Names [ (HD.9464) 10583 0 R (HD.9465) 10584 0 R (HD.9466) 10585 0 R (HD.9467) 10586 0 R (HD.9468) 10587 0 R (HD.9469) 10588 0 R (HD.947) 1277 0 R (HD.9470) 10589 0 R (HD.9471) 10590 0 R (HD.9472) 10591 0 R (HD.9473) 10592 0 R (HD.9474) 10593 0 R (HD.9475) 10594 0 R (HD.9476) 10595 0 R (HD.9477) 10596 0 R (HD.9478) 10597 0 R (HD.9479) 10598 0 R (HD.948) 1278 0 R (HD.9480) 10599 0 R (HD.9481) 10600 0 R (HD.9482) 10601 0 R (HD.9483) 10602 0 R (HD.9484) 10603 0 R (HD.9485) 10604 0 R (HD.9486) 10605 0 R (HD.9487) 10606 0 R (HD.9488) 10607 0 R (HD.9489) 10608 0 R (HD.949) 1279 0 R (HD.9490) 10609 0 R (HD.9491) 10614 0 R (HD.9492) 10615 0 R ] /Limits [ (HD.9464) (HD.9492) ] >>
endobj
11912 0 obj
-<< /Names [ (HD.6653) 7532 0 R (HD.6654) 7533 0 R (HD.6655) 7534 0 R (HD.6656) 7535 0 R (HD.6657) 7536 0 R (HD.6658) 7537 0 R (HD.6659) 7538 0 R (HD.666) 974 0 R (HD.6660) 7539 0 R (HD.6661) 7540 0 R (HD.6662) 7541 0 R (HD.6663) 7542 0 R (HD.6664) 7543 0 R (HD.6665) 7544 0 R (HD.6666) 7549 0 R (HD.6667) 7550 0 R (HD.6668) 7551 0 R (HD.6669) 7552 0 R (HD.667) 975 0 R (HD.6670) 7553 0 R (HD.6671) 7554 0 R (HD.6672) 7555 0 R (HD.6673) 7556 0 R (HD.6674) 7557 0 R (HD.6675) 7558 0 R (HD.6676) 7559 0 R (HD.6677) 7560 0 R (HD.6678) 7561 0 R (HD.6679) 7562 0 R (HD.668) 976 0 R (HD.6680) 7563 0 R (HD.6681) 7564 0 R ] /Limits [ (HD.6653) (HD.6681) ] >>
+<< /Names [ (HD.9493) 10616 0 R (HD.9494) 10617 0 R (HD.9495) 10618 0 R (HD.9496) 10619 0 R (HD.9497) 10620 0 R (HD.9498) 10621 0 R (HD.9499) 10622 0 R (HD.95) 296 0 R (HD.950) 1280 0 R (HD.9500) 10623 0 R (HD.9501) 10624 0 R (HD.9502) 10625 0 R (HD.9503) 10626 0 R (HD.9504) 10627 0 R (HD.9505) 10628 0 R (HD.9506) 10629 0 R (HD.9507) 10630 0 R (HD.9508) 10631 0 R (HD.9509) 10632 0 R (HD.951) 1281 0 R (HD.9510) 10633 0 R (HD.9511) 10634 0 R (HD.9512) 10635 0 R (HD.9513) 10636 0 R (HD.9514) 10637 0 R (HD.9515) 10638 0 R (HD.9516) 10639 0 R (HD.9517) 10640 0 R (HD.9518) 10641 0 R (HD.9519) 10642 0 R (HD.952) 1282 0 R (HD.9520) 10643 0 R ] /Limits [ (HD.9493) (HD.9520) ] >>
endobj
11913 0 obj
-<< /Names [ (HD.6682) 7565 0 R (HD.6683) 7566 0 R (HD.6684) 7567 0 R (HD.6685) 7568 0 R (HD.6686) 7569 0 R (HD.6687) 7570 0 R (HD.6688) 7571 0 R (HD.6689) 7572 0 R (HD.669) 977 0 R (HD.6690) 7573 0 R (HD.6691) 7574 0 R (HD.6692) 7575 0 R (HD.6693) 7576 0 R (HD.6694) 7577 0 R (HD.6695) 7578 0 R (HD.6696) 7579 0 R (HD.6697) 7580 0 R (HD.6698) 7581 0 R (HD.6699) 7582 0 R (HD.67) 267 0 R (HD.670) 978 0 R (HD.6700) 7583 0 R (HD.6701) 7584 0 R (HD.6702) 7585 0 R (HD.6703) 7586 0 R (HD.6704) 7587 0 R (HD.6705) 7588 0 R (HD.6706) 7589 0 R (HD.6707) 7590 0 R (HD.6708) 7591 0 R (HD.6709) 7592 0 R (HD.671) 979 0 R ] /Limits [ (HD.6682) (HD.671) ] >>
+<< /Names [ (HD.9521) 10644 0 R (HD.9522) 10645 0 R (HD.9523) 10646 0 R (HD.9524) 10647 0 R (HD.9525) 10648 0 R (HD.9526) 10649 0 R (HD.9527) 10650 0 R (HD.9528) 10651 0 R (HD.9529) 10652 0 R (HD.953) 1283 0 R (HD.9530) 10653 0 R (HD.9531) 10654 0 R (HD.9532) 10655 0 R (HD.9533) 10656 0 R (HD.9534) 10657 0 R (HD.9535) 10658 0 R (HD.9536) 10659 0 R (HD.9537) 10660 0 R (HD.9538) 10661 0 R (HD.9539) 10662 0 R (HD.954) 1284 0 R (HD.9540) 10663 0 R (HD.9541) 10664 0 R (HD.9542) 10665 0 R (HD.9543) 10666 0 R (HD.9544) 10667 0 R (HD.9545) 10668 0 R (HD.9546) 10669 0 R (HD.9547) 10670 0 R (HD.9548) 10671 0 R (HD.9549) 10672 0 R (HD.955) 1285 0 R ] /Limits [ (HD.9521) (HD.955) ] >>
endobj
11914 0 obj
-<< /Names [ (HD.6710) 7593 0 R (HD.6711) 7594 0 R (HD.6712) 7595 0 R (HD.6713) 7600 0 R (HD.6714) 7601 0 R (HD.6715) 7602 0 R (HD.6716) 7603 0 R (HD.6717) 7604 0 R (HD.6718) 7605 0 R (HD.6719) 7606 0 R (HD.672) 980 0 R (HD.6720) 7607 0 R (HD.6721) 7608 0 R (HD.6722) 7609 0 R (HD.6723) 7610 0 R (HD.6724) 7611 0 R (HD.6725) 7612 0 R (HD.6726) 7613 0 R (HD.6727) 7614 0 R (HD.6728) 7615 0 R (HD.6729) 7616 0 R (HD.673) 981 0 R (HD.6730) 7617 0 R (HD.6731) 7618 0 R (HD.6732) 7619 0 R (HD.6733) 7620 0 R (HD.6734) 7621 0 R (HD.6735) 7622 0 R (HD.6736) 7623 0 R (HD.6737) 7624 0 R (HD.6738) 7625 0 R (HD.6739) 7626 0 R ] /Limits [ (HD.6710) (HD.6739) ] >>
+<< /Names [ (HD.9550) 10673 0 R (HD.9551) 10674 0 R (HD.9552) 10679 0 R (HD.9553) 10680 0 R (HD.9554) 10681 0 R (HD.9555) 10682 0 R (HD.9556) 10683 0 R (HD.9557) 10684 0 R (HD.9558) 10685 0 R (HD.9559) 10686 0 R (HD.956) 1286 0 R (HD.9560) 10687 0 R (HD.9561) 10688 0 R (HD.9562) 10689 0 R (HD.9563) 10690 0 R (HD.9564) 10691 0 R (HD.9565) 10692 0 R (HD.9566) 10693 0 R (HD.9567) 10694 0 R (HD.9568) 10695 0 R (HD.9569) 10696 0 R (HD.957) 1287 0 R (HD.9570) 10697 0 R (HD.9571) 10698 0 R (HD.9572) 10699 0 R (HD.9573) 10700 0 R (HD.9574) 10701 0 R (HD.9575) 10702 0 R (HD.9576) 10703 0 R (HD.9577) 10704 0 R (HD.9578) 10705 0 R (HD.9579) 10706 0 R ] /Limits [ (HD.9550) (HD.9579) ] >>
endobj
11915 0 obj
-<< /Names [ (HD.674) 982 0 R (HD.6740) 7627 0 R (HD.6741) 7628 0 R (HD.6742) 7629 0 R (HD.6743) 7630 0 R (HD.6744) 7631 0 R (HD.6745) 7632 0 R (HD.6746) 7633 0 R (HD.6747) 7634 0 R (HD.6748) 7635 0 R (HD.6749) 7636 0 R (HD.675) 983 0 R (HD.6750) 7637 0 R (HD.6751) 7638 0 R (HD.6752) 7643 0 R (HD.6753) 7644 0 R (HD.6754) 7645 0 R (HD.6755) 7646 0 R (HD.6756) 7647 0 R (HD.6757) 7648 0 R (HD.6758) 7649 0 R (HD.6759) 7650 0 R (HD.676) 984 0 R (HD.6760) 7651 0 R (HD.6761) 7652 0 R (HD.6762) 7653 0 R (HD.6763) 7654 0 R (HD.6764) 7655 0 R (HD.6765) 7656 0 R (HD.6766) 7657 0 R (HD.6767) 7658 0 R (HD.6768) 7659 0 R ] /Limits [ (HD.674) (HD.6768) ] >>
+<< /Names [ (HD.958) 1288 0 R (HD.9580) 10707 0 R (HD.9581) 10708 0 R (HD.9582) 10709 0 R (HD.9583) 10710 0 R (HD.9584) 10711 0 R (HD.9585) 10712 0 R (HD.9586) 10713 0 R (HD.9587) 10714 0 R (HD.9588) 10715 0 R (HD.9589) 10716 0 R (HD.959) 1289 0 R (HD.9590) 10717 0 R (HD.9591) 10718 0 R (HD.9592) 10719 0 R (HD.9593) 10720 0 R (HD.9594) 10721 0 R (HD.9595) 10722 0 R (HD.9596) 10723 0 R (HD.9597) 10724 0 R (HD.9598) 10725 0 R (HD.9599) 10726 0 R (HD.96) 297 0 R (HD.960) 1290 0 R (HD.9600) 10727 0 R (HD.9601) 10728 0 R (HD.9602) 10729 0 R (HD.9603) 10730 0 R (HD.9604) 10731 0 R (HD.9605) 10732 0 R (HD.9606) 10733 0 R (HD.9607) 10734 0 R ] /Limits [ (HD.958) (HD.9607) ] >>
endobj
11916 0 obj
-<< /Names [ (HD.6769) 7660 0 R (HD.677) 985 0 R (HD.6770) 7661 0 R (HD.6771) 7662 0 R (HD.6772) 7663 0 R (HD.6773) 7664 0 R (HD.6774) 7665 0 R (HD.6775) 7666 0 R (HD.6776) 7667 0 R (HD.6777) 7668 0 R (HD.6778) 7669 0 R (HD.6779) 7670 0 R (HD.678) 986 0 R (HD.6780) 7671 0 R (HD.6781) 7672 0 R (HD.6782) 7673 0 R (HD.6783) 7674 0 R (HD.6784) 7675 0 R (HD.6785) 7676 0 R (HD.6786) 7677 0 R (HD.6787) 7678 0 R (HD.6788) 7679 0 R (HD.6789) 7680 0 R (HD.679) 987 0 R (HD.6790) 7681 0 R (HD.6791) 7682 0 R (HD.6792) 7683 0 R (HD.6793) 7684 0 R (HD.6794) 7685 0 R (HD.6795) 7686 0 R (HD.6796) 7687 0 R (HD.6797) 7688 0 R ] /Limits [ (HD.6769) (HD.6797) ] >>
+<< /Names [ (HD.9608) 10735 0 R (HD.9609) 10736 0 R (HD.961) 1291 0 R (HD.9610) 10737 0 R (HD.9611) 10738 0 R (HD.9612) 10743 0 R (HD.9613) 10744 0 R (HD.9614) 10745 0 R (HD.9615) 10746 0 R (HD.9616) 10747 0 R (HD.9617) 10748 0 R (HD.9618) 10749 0 R (HD.9619) 10750 0 R (HD.962) 1292 0 R (HD.9620) 10751 0 R (HD.9621) 10752 0 R (HD.9622) 10753 0 R (HD.9623) 10754 0 R (HD.9624) 10755 0 R (HD.9625) 10756 0 R (HD.9626) 10757 0 R (HD.9627) 10758 0 R (HD.9628) 10759 0 R (HD.9629) 10760 0 R (HD.963) 1293 0 R (HD.9630) 10761 0 R (HD.9631) 10762 0 R (HD.9632) 10763 0 R (HD.9633) 10764 0 R (HD.9634) 10765 0 R (HD.9635) 10766 0 R (HD.9636) 10767 0 R ] /Limits [ (HD.9608) (HD.9636) ] >>
endobj
11917 0 obj
-<< /Names [ (HD.6798) 7689 0 R (HD.6799) 7690 0 R (HD.68) 268 0 R (HD.680) 988 0 R (HD.6800) 7691 0 R (HD.6801) 7692 0 R (HD.6802) 7693 0 R (HD.6803) 7694 0 R (HD.6804) 7695 0 R (HD.6805) 7696 0 R (HD.6806) 7701 0 R (HD.6807) 7702 0 R (HD.6808) 7703 0 R (HD.6809) 7704 0 R (HD.681) 989 0 R (HD.6810) 7705 0 R (HD.6811) 7706 0 R (HD.6812) 7707 0 R (HD.6813) 7708 0 R (HD.6814) 7709 0 R (HD.6815) 7710 0 R (HD.6816) 7711 0 R (HD.6817) 7712 0 R (HD.6818) 7713 0 R (HD.6819) 7714 0 R (HD.682) 990 0 R (HD.6820) 7715 0 R (HD.6821) 7716 0 R (HD.6822) 7717 0 R (HD.6823) 7718 0 R (HD.6824) 7719 0 R (HD.6825) 7720 0 R ] /Limits [ (HD.6798) (HD.6825) ] >>
+<< /Names [ (HD.9637) 10768 0 R (HD.9638) 10769 0 R (HD.9639) 10770 0 R (HD.964) 1294 0 R (HD.9640) 10771 0 R (HD.9641) 10772 0 R (HD.9642) 10773 0 R (HD.9643) 10774 0 R (HD.9644) 10775 0 R (HD.9645) 10776 0 R (HD.9646) 10777 0 R (HD.9647) 10778 0 R (HD.9648) 10779 0 R (HD.9649) 10780 0 R (HD.965) 1295 0 R (HD.9650) 10781 0 R (HD.9651) 10782 0 R (HD.9652) 10783 0 R (HD.9653) 10784 0 R (HD.9654) 10785 0 R (HD.9655) 10786 0 R (HD.9656) 10787 0 R (HD.9657) 10788 0 R (HD.9658) 10789 0 R (HD.9659) 10790 0 R (HD.966) 1296 0 R (HD.9660) 10791 0 R (HD.9661) 10792 0 R (HD.9662) 10793 0 R (HD.9663) 10794 0 R (HD.9664) 10795 0 R (HD.9665) 10796 0 R ] /Limits [ (HD.9637) (HD.9665) ] >>
endobj
11918 0 obj
-<< /Names [ (HD.6826) 7721 0 R (HD.6827) 7722 0 R (HD.6828) 7723 0 R (HD.6829) 7724 0 R (HD.683) 991 0 R (HD.6830) 7725 0 R (HD.6831) 7726 0 R (HD.6832) 7727 0 R (HD.6833) 7728 0 R (HD.6834) 7729 0 R (HD.6835) 7730 0 R (HD.6836) 7731 0 R (HD.6837) 7732 0 R (HD.6838) 7733 0 R (HD.6839) 7734 0 R (HD.684) 992 0 R (HD.6840) 7735 0 R (HD.6841) 7736 0 R (HD.6842) 7737 0 R (HD.6843) 7738 0 R (HD.6844) 7739 0 R (HD.6845) 7740 0 R (HD.6846) 7741 0 R (HD.6847) 7742 0 R (HD.6848) 7743 0 R (HD.6849) 7744 0 R (HD.685) 993 0 R (HD.6850) 7745 0 R (HD.6851) 7750 0 R (HD.6852) 7751 0 R (HD.6853) 7752 0 R (HD.6854) 7753 0 R ] /Limits [ (HD.6826) (HD.6854) ] >>
+<< /Names [ (HD.9666) 10797 0 R (HD.9667) 10798 0 R (HD.9668) 10799 0 R (HD.9669) 10800 0 R (HD.967) 1297 0 R (HD.9670) 10801 0 R (HD.9671) 10802 0 R (HD.9672) 10807 0 R (HD.9673) 10808 0 R (HD.9674) 10809 0 R (HD.9675) 10810 0 R (HD.9676) 10811 0 R (HD.9677) 10812 0 R (HD.9678) 10813 0 R (HD.9679) 10814 0 R (HD.968) 1298 0 R (HD.9680) 10815 0 R (HD.9681) 10816 0 R (HD.9682) 10817 0 R (HD.9683) 10818 0 R (HD.9684) 10819 0 R (HD.9685) 10820 0 R (HD.9686) 10821 0 R (HD.9687) 10822 0 R (HD.9688) 10823 0 R (HD.9689) 10824 0 R (HD.969) 1299 0 R (HD.9690) 10825 0 R (HD.9691) 10826 0 R (HD.9692) 10827 0 R (HD.9693) 10828 0 R (HD.9694) 10829 0 R ] /Limits [ (HD.9666) (HD.9694) ] >>
endobj
11919 0 obj
-<< /Names [ (HD.6855) 7754 0 R (HD.6856) 7755 0 R (HD.6857) 7756 0 R (HD.6858) 7757 0 R (HD.6859) 7758 0 R (HD.686) 994 0 R (HD.6860) 7759 0 R (HD.6861) 7760 0 R (HD.6862) 7761 0 R (HD.6863) 7762 0 R (HD.6864) 7763 0 R (HD.6865) 7764 0 R (HD.6866) 7765 0 R (HD.6867) 7766 0 R (HD.6868) 7767 0 R (HD.6869) 7768 0 R (HD.687) 995 0 R (HD.6870) 7769 0 R (HD.6871) 7770 0 R (HD.6872) 7771 0 R (HD.6873) 7772 0 R (HD.6874) 7773 0 R (HD.6875) 7774 0 R (HD.6876) 7775 0 R (HD.6877) 7776 0 R (HD.6878) 7777 0 R (HD.6879) 7778 0 R (HD.688) 996 0 R (HD.6880) 7779 0 R (HD.6881) 7784 0 R (HD.6882) 7785 0 R (HD.6883) 7786 0 R ] /Limits [ (HD.6855) (HD.6883) ] >>
+<< /Names [ (HD.9695) 10830 0 R (HD.9696) 10831 0 R (HD.9697) 10832 0 R (HD.9698) 10833 0 R (HD.9699) 10834 0 R (HD.97) 298 0 R (HD.970) 1300 0 R (HD.9700) 10835 0 R (HD.9701) 10836 0 R (HD.9702) 10837 0 R (HD.9703) 10838 0 R (HD.9704) 10839 0 R (HD.9705) 10840 0 R (HD.9706) 10841 0 R (HD.9707) 10842 0 R (HD.9708) 10843 0 R (HD.9709) 10844 0 R (HD.971) 1301 0 R (HD.9710) 10845 0 R (HD.9711) 10846 0 R (HD.9712) 10847 0 R (HD.9713) 10848 0 R (HD.9714) 10849 0 R (HD.9715) 10850 0 R (HD.9716) 10851 0 R (HD.9717) 10852 0 R (HD.9718) 10853 0 R (HD.9719) 10854 0 R (HD.972) 1302 0 R (HD.9720) 10855 0 R (HD.9721) 10856 0 R (HD.9722) 10857 0 R ] /Limits [ (HD.9695) (HD.9722) ] >>
endobj
11920 0 obj
-<< /Names [ (HD.6884) 7787 0 R (HD.6885) 7788 0 R (HD.6886) 7789 0 R (HD.6887) 7790 0 R (HD.6888) 7791 0 R (HD.6889) 7792 0 R (HD.689) 997 0 R (HD.6890) 7793 0 R (HD.6891) 7794 0 R (HD.6892) 7795 0 R (HD.6893) 7796 0 R (HD.6894) 7797 0 R (HD.6895) 7798 0 R (HD.6896) 7799 0 R (HD.6897) 7800 0 R (HD.6898) 7801 0 R (HD.6899) 7802 0 R (HD.69) 269 0 R (HD.690) 998 0 R (HD.6900) 7803 0 R (HD.6901) 7804 0 R (HD.6902) 7805 0 R (HD.6903) 7806 0 R (HD.6904) 7807 0 R (HD.6905) 7808 0 R (HD.6906) 7809 0 R (HD.6907) 7810 0 R (HD.6908) 7811 0 R (HD.6909) 7812 0 R (HD.691) 999 0 R (HD.6910) 7813 0 R (HD.6911) 7814 0 R ] /Limits [ (HD.6884) (HD.6911) ] >>
+<< /Names [ (HD.9723) 10858 0 R (HD.9724) 10859 0 R (HD.9725) 10860 0 R (HD.9726) 10861 0 R (HD.9727) 10862 0 R (HD.9728) 10863 0 R (HD.9729) 10864 0 R (HD.973) 1303 0 R (HD.9730) 10865 0 R (HD.9731) 10866 0 R (HD.9732) 10867 0 R (HD.9733) 10872 0 R (HD.9734) 10873 0 R (HD.9735) 10874 0 R (HD.9736) 10875 0 R (HD.9737) 10876 0 R (HD.9738) 10877 0 R (HD.9739) 10878 0 R (HD.974) 1304 0 R (HD.9740) 10879 0 R (HD.9741) 10880 0 R (HD.9742) 10881 0 R (HD.9743) 10882 0 R (HD.9744) 10883 0 R (HD.9745) 10884 0 R (HD.9746) 10885 0 R (HD.9747) 10886 0 R (HD.9748) 10887 0 R (HD.9749) 10888 0 R (HD.975) 1305 0 R (HD.9750) 10889 0 R (HD.9751) 10890 0 R ] /Limits [ (HD.9723) (HD.9751) ] >>
endobj
11921 0 obj
-<< /Names [ (HD.6912) 7815 0 R (HD.6913) 7816 0 R (HD.6914) 7817 0 R (HD.6915) 7818 0 R (HD.6916) 7819 0 R (HD.6917) 7820 0 R (HD.6918) 7821 0 R (HD.6919) 7822 0 R (HD.692) 1000 0 R (HD.6920) 7823 0 R (HD.6921) 7824 0 R (HD.6922) 7825 0 R (HD.6923) 7826 0 R (HD.6924) 7827 0 R (HD.6925) 7828 0 R (HD.6926) 7829 0 R (HD.6927) 7830 0 R (HD.6928) 7837 0 R (HD.6929) 7838 0 R (HD.693) 1001 0 R (HD.6930) 7839 0 R (HD.6931) 7840 0 R (HD.6932) 7841 0 R (HD.6933) 7842 0 R (HD.6934) 7843 0 R (HD.6935) 7844 0 R (HD.6936) 7845 0 R (HD.6937) 7846 0 R (HD.6938) 7847 0 R (HD.6939) 7848 0 R (HD.694) 1002 0 R (HD.6940) 7849 0 R ] /Limits [ (HD.6912) (HD.6940) ] >>
+<< /Names [ (HD.9752) 10891 0 R (HD.9753) 10892 0 R (HD.9754) 10893 0 R (HD.9755) 10894 0 R (HD.9756) 10895 0 R (HD.9757) 10896 0 R (HD.9758) 10897 0 R (HD.9759) 10898 0 R (HD.976) 1306 0 R (HD.9760) 10899 0 R (HD.9761) 10900 0 R (HD.9762) 10901 0 R (HD.9763) 10902 0 R (HD.9764) 10903 0 R (HD.9765) 10904 0 R (HD.9766) 10905 0 R (HD.9767) 10906 0 R (HD.9768) 10907 0 R (HD.9769) 10908 0 R (HD.977) 1307 0 R (HD.9770) 10909 0 R (HD.9771) 10910 0 R (HD.9772) 10911 0 R (HD.9773) 10912 0 R (HD.9774) 10913 0 R (HD.9775) 10914 0 R (HD.9776) 10915 0 R (HD.9777) 10916 0 R (HD.9778) 10917 0 R (HD.9779) 10918 0 R (HD.978) 1308 0 R (HD.9780) 10919 0 R ] /Limits [ (HD.9752) (HD.9780) ] >>
endobj
11922 0 obj
-<< /Names [ (HD.6941) 7850 0 R (HD.6942) 7851 0 R (HD.6943) 7852 0 R (HD.6944) 7853 0 R (HD.6945) 7854 0 R (HD.6946) 7855 0 R (HD.6947) 7856 0 R (HD.6948) 7857 0 R (HD.6949) 7858 0 R (HD.695) 1003 0 R (HD.6950) 7859 0 R (HD.6951) 7860 0 R (HD.6952) 7861 0 R (HD.6953) 7862 0 R (HD.6954) 7863 0 R (HD.6955) 7864 0 R (HD.6956) 7865 0 R (HD.6957) 7866 0 R (HD.6958) 7867 0 R (HD.6959) 7868 0 R (HD.696) 1004 0 R (HD.6960) 7869 0 R (HD.6961) 7870 0 R (HD.6962) 7871 0 R (HD.6963) 7872 0 R (HD.6964) 7873 0 R (HD.6965) 7874 0 R (HD.6966) 7875 0 R (HD.6967) 7876 0 R (HD.6968) 7877 0 R (HD.6969) 7878 0 R (HD.697) 1005 0 R ] /Limits [ (HD.6941) (HD.697) ] >>
+<< /Names [ (HD.9781) 10920 0 R (HD.9782) 10921 0 R (HD.9783) 10922 0 R (HD.9784) 10923 0 R (HD.9785) 10924 0 R (HD.9786) 10925 0 R (HD.9787) 10926 0 R (HD.9788) 10927 0 R (HD.9789) 10928 0 R (HD.979) 1309 0 R (HD.9790) 10929 0 R (HD.9791) 10930 0 R (HD.9792) 10931 0 R (HD.9793) 10936 0 R (HD.9794) 10937 0 R (HD.9795) 10938 0 R (HD.9796) 10939 0 R (HD.9797) 10940 0 R (HD.9798) 10941 0 R (HD.9799) 10942 0 R (HD.98) 299 0 R (HD.980) 1310 0 R (HD.9800) 10943 0 R (HD.9801) 10944 0 R (HD.9802) 10945 0 R (HD.9803) 10946 0 R (HD.9804) 10947 0 R (HD.9805) 10948 0 R (HD.9806) 10949 0 R (HD.9807) 10950 0 R (HD.9808) 10951 0 R (HD.9809) 10952 0 R ] /Limits [ (HD.9781) (HD.9809) ] >>
endobj
11923 0 obj
-<< /Names [ (HD.6970) 7879 0 R (HD.6971) 7880 0 R (HD.6972) 7887 0 R (HD.6973) 7888 0 R (HD.6974) 7889 0 R (HD.6975) 7890 0 R (HD.6976) 7891 0 R (HD.6977) 7892 0 R (HD.6978) 7893 0 R (HD.6979) 7894 0 R (HD.698) 1006 0 R (HD.6980) 7895 0 R (HD.6981) 7896 0 R (HD.6982) 7897 0 R (HD.6983) 7898 0 R (HD.6984) 7899 0 R (HD.6985) 7900 0 R (HD.6986) 7901 0 R (HD.6987) 7902 0 R (HD.6988) 7903 0 R (HD.6989) 7904 0 R (HD.699) 1007 0 R (HD.6990) 7905 0 R (HD.6991) 7906 0 R (HD.6992) 7907 0 R (HD.6993) 7908 0 R (HD.6994) 7909 0 R (HD.6995) 7910 0 R (HD.6996) 7911 0 R (HD.6997) 7912 0 R (HD.6998) 7913 0 R (HD.6999) 7914 0 R ] /Limits [ (HD.6970) (HD.6999) ] >>
+<< /Names [ (HD.981) 1311 0 R (HD.9810) 10953 0 R (HD.9811) 10954 0 R (HD.9812) 10955 0 R (HD.9813) 10956 0 R (HD.9814) 10957 0 R (HD.9815) 10958 0 R (HD.9816) 10959 0 R (HD.9817) 10960 0 R (HD.9818) 10961 0 R (HD.9819) 10962 0 R (HD.982) 1312 0 R (HD.9820) 10963 0 R (HD.9821) 10964 0 R (HD.9822) 10965 0 R (HD.9823) 10966 0 R (HD.9824) 10967 0 R (HD.9825) 10968 0 R (HD.9826) 10969 0 R (HD.9827) 10970 0 R (HD.9828) 10971 0 R (HD.9829) 10972 0 R (HD.983) 1313 0 R (HD.9830) 10973 0 R (HD.9831) 10974 0 R (HD.9832) 10975 0 R (HD.9833) 10976 0 R (HD.9834) 10977 0 R (HD.9835) 10978 0 R (HD.9836) 10979 0 R (HD.9837) 10980 0 R (HD.9838) 10981 0 R ] /Limits [ (HD.981) (HD.9838) ] >>
endobj
11924 0 obj
-<< /Names [ (HD.7) 195 0 R (HD.70) 270 0 R (HD.700) 1008 0 R (HD.7000) 7915 0 R (HD.7001) 7916 0 R (HD.7002) 7917 0 R (HD.7003) 7918 0 R (HD.7004) 7919 0 R (HD.7005) 7920 0 R (HD.7006) 7921 0 R (HD.7007) 7922 0 R (HD.7008) 7923 0 R (HD.7009) 7924 0 R (HD.701) 1013 0 R (HD.7010) 7925 0 R (HD.7011) 7926 0 R (HD.7012) 7927 0 R (HD.7013) 7928 0 R (HD.7014) 7929 0 R (HD.7015) 7930 0 R (HD.7016) 7931 0 R (HD.7017) 7932 0 R (HD.7018) 7933 0 R (HD.7019) 7938 0 R (HD.702) 1014 0 R (HD.7020) 7939 0 R (HD.7021) 7940 0 R (HD.7022) 7941 0 R (HD.7023) 7942 0 R (HD.7024) 7943 0 R (HD.7025) 7944 0 R (HD.7026) 7945 0 R ] /Limits [ (HD.7) (HD.7026) ] >>
+<< /Names [ (HD.9839) 10982 0 R (HD.984) 1314 0 R (HD.9840) 10983 0 R (HD.9841) 10984 0 R (HD.9842) 10985 0 R (HD.9843) 10986 0 R (HD.9844) 10987 0 R (HD.9845) 10988 0 R (HD.9846) 10989 0 R (HD.9847) 10990 0 R (HD.9848) 10991 0 R (HD.9849) 10992 0 R (HD.985) 1315 0 R (HD.9850) 10993 0 R (HD.9851) 10994 0 R (HD.9852) 10995 0 R (HD.9853) 10996 0 R (HD.9854) 11001 0 R (HD.9855) 11002 0 R (HD.9856) 11003 0 R (HD.9857) 11004 0 R (HD.9858) 11005 0 R (HD.9859) 11006 0 R (HD.986) 1316 0 R (HD.9860) 11007 0 R (HD.9861) 11008 0 R (HD.9862) 11009 0 R (HD.9863) 11010 0 R (HD.9864) 11011 0 R (HD.9865) 11012 0 R (HD.9866) 11013 0 R (HD.9867) 11014 0 R ] /Limits [ (HD.9839) (HD.9867) ] >>
endobj
11925 0 obj
-<< /Names [ (HD.7027) 7946 0 R (HD.7028) 7947 0 R (HD.7029) 7948 0 R (HD.703) 1015 0 R (HD.7030) 7949 0 R (HD.7031) 7950 0 R (HD.7032) 7951 0 R (HD.7033) 7952 0 R (HD.7034) 7953 0 R (HD.7035) 7954 0 R (HD.7036) 7955 0 R (HD.7037) 7956 0 R (HD.7038) 7957 0 R (HD.7039) 7958 0 R (HD.704) 1016 0 R (HD.7040) 7959 0 R (HD.7041) 7960 0 R (HD.7042) 7961 0 R (HD.7043) 7962 0 R (HD.7044) 7963 0 R (HD.7045) 7964 0 R (HD.7046) 7965 0 R (HD.7047) 7966 0 R (HD.7048) 7967 0 R (HD.7049) 7968 0 R (HD.705) 1017 0 R (HD.7050) 7969 0 R (HD.7051) 7970 0 R (HD.7052) 7971 0 R (HD.7053) 7972 0 R (HD.7054) 7973 0 R (HD.7055) 7974 0 R ] /Limits [ (HD.7027) (HD.7055) ] >>
+<< /Names [ (HD.9868) 11015 0 R (HD.9869) 11016 0 R (HD.987) 1317 0 R (HD.9870) 11017 0 R (HD.9871) 11018 0 R (HD.9872) 11019 0 R (HD.9873) 11020 0 R (HD.9874) 11021 0 R (HD.9875) 11022 0 R (HD.9876) 11023 0 R (HD.9877) 11024 0 R (HD.9878) 11025 0 R (HD.9879) 11026 0 R (HD.988) 1318 0 R (HD.9880) 11027 0 R (HD.9881) 11028 0 R (HD.9882) 11029 0 R (HD.9883) 11030 0 R (HD.9884) 11031 0 R (HD.9885) 11032 0 R (HD.9886) 11033 0 R (HD.9887) 11034 0 R (HD.9888) 11035 0 R (HD.9889) 11036 0 R (HD.989) 1319 0 R (HD.9890) 11037 0 R (HD.9891) 11038 0 R (HD.9892) 11039 0 R (HD.9893) 11040 0 R (HD.9894) 11041 0 R (HD.9895) 11042 0 R (HD.9896) 11043 0 R ] /Limits [ (HD.9868) (HD.9896) ] >>
endobj
11926 0 obj
-<< /Names [ (HD.7056) 7975 0 R (HD.7057) 7976 0 R (HD.7058) 7977 0 R (HD.7059) 7978 0 R (HD.706) 1018 0 R (HD.7060) 7979 0 R (HD.7061) 7980 0 R (HD.7062) 7981 0 R (HD.7063) 7986 0 R (HD.7064) 7987 0 R (HD.7065) 7988 0 R (HD.7066) 7989 0 R (HD.7067) 7990 0 R (HD.7068) 7991 0 R (HD.7069) 7992 0 R (HD.707) 1019 0 R (HD.7070) 7993 0 R (HD.7071) 7994 0 R (HD.7072) 7995 0 R (HD.7073) 7996 0 R (HD.7074) 7997 0 R (HD.7075) 7998 0 R (HD.7076) 7999 0 R (HD.7077) 8000 0 R (HD.7078) 8001 0 R (HD.7079) 8002 0 R (HD.708) 1020 0 R (HD.7080) 8003 0 R (HD.7081) 8004 0 R (HD.7082) 8005 0 R (HD.7083) 8006 0 R (HD.7084) 8007 0 R ] /Limits [ (HD.7056) (HD.7084) ] >>
+<< /Names [ (HD.9897) 11044 0 R (HD.9898) 11045 0 R (HD.9899) 11046 0 R (HD.99) 300 0 R (HD.990) 1320 0 R (HD.9900) 11047 0 R (HD.9901) 11048 0 R (HD.9902) 11049 0 R (HD.9903) 11050 0 R (HD.9904) 11051 0 R (HD.9905) 11052 0 R (HD.9906) 11053 0 R (HD.9907) 11054 0 R (HD.9908) 11055 0 R (HD.9909) 11056 0 R (HD.991) 1321 0 R (HD.9910) 11057 0 R (HD.9911) 11058 0 R (HD.9912) 11059 0 R (HD.9913) 11060 0 R (HD.9914) 11061 0 R (HD.9915) 11062 0 R (HD.9916) 11068 0 R (HD.9917) 11069 0 R (HD.9918) 11070 0 R (HD.9919) 11071 0 R (HD.992) 1322 0 R (HD.9920) 11072 0 R (HD.9921) 11073 0 R (HD.9922) 11074 0 R (HD.9923) 11075 0 R (HD.9924) 11076 0 R ] /Limits [ (HD.9897) (HD.9924) ] >>
endobj
11927 0 obj
-<< /Names [ (HD.7085) 8008 0 R (HD.7086) 8009 0 R (HD.7087) 8010 0 R (HD.7088) 8011 0 R (HD.7089) 8012 0 R (HD.709) 1021 0 R (HD.7090) 8013 0 R (HD.7091) 8014 0 R (HD.7092) 8015 0 R (HD.7093) 8016 0 R (HD.7094) 8017 0 R (HD.7095) 8018 0 R (HD.7096) 8019 0 R (HD.7097) 8020 0 R (HD.7098) 8021 0 R (HD.7099) 8022 0 R (HD.71) 271 0 R (HD.710) 1022 0 R (HD.7100) 8023 0 R (HD.7101) 8024 0 R (HD.7102) 8025 0 R (HD.7103) 8026 0 R (HD.7104) 8027 0 R (HD.7105) 8028 0 R (HD.7106) 8029 0 R (HD.7107) 8030 0 R (HD.7108) 8031 0 R (HD.7109) 8032 0 R (HD.711) 1023 0 R (HD.7110) 8033 0 R (HD.7111) 8034 0 R (HD.7112) 8035 0 R ] /Limits [ (HD.7085) (HD.7112) ] >>
+<< /Names [ (HD.9925) 11077 0 R (HD.9926) 11078 0 R (HD.9927) 11079 0 R (HD.9928) 11080 0 R (HD.9929) 11081 0 R (HD.993) 1323 0 R (HD.9930) 11082 0 R (HD.9931) 11083 0 R (HD.9932) 11084 0 R (HD.9933) 11085 0 R (HD.9934) 11086 0 R (HD.9935) 11087 0 R (HD.9936) 11088 0 R (HD.9937) 11089 0 R (HD.9938) 11090 0 R (HD.9939) 11091 0 R (HD.994) 1324 0 R (HD.9940) 11092 0 R (HD.9941) 11093 0 R (HD.9942) 11094 0 R (HD.9943) 11095 0 R (HD.9944) 11096 0 R (HD.9945) 11097 0 R (HD.9946) 11098 0 R (HD.9947) 11099 0 R (HD.9948) 11100 0 R (HD.9949) 11101 0 R (HD.995) 1325 0 R (HD.9950) 11102 0 R (HD.9951) 11103 0 R (HD.9952) 11104 0 R (HD.9953) 11105 0 R ] /Limits [ (HD.9925) (HD.9953) ] >>
endobj
11928 0 obj
-<< /Names [ (HD.7113) 8036 0 R (HD.7114) 8041 0 R (HD.7115) 8042 0 R (HD.7116) 8043 0 R (HD.7117) 8044 0 R (HD.7118) 8045 0 R (HD.7119) 8046 0 R (HD.712) 1024 0 R (HD.7120) 8047 0 R (HD.7121) 8048 0 R (HD.7122) 8049 0 R (HD.7123) 8050 0 R (HD.7124) 8051 0 R (HD.7125) 8052 0 R (HD.7126) 8053 0 R (HD.7127) 8054 0 R (HD.7128) 8055 0 R (HD.7129) 8056 0 R (HD.713) 1025 0 R (HD.7130) 8057 0 R (HD.7131) 8058 0 R (HD.7132) 8059 0 R (HD.7133) 8060 0 R (HD.7134) 8061 0 R (HD.7135) 8062 0 R (HD.7136) 8063 0 R (HD.7137) 8064 0 R (HD.7138) 8065 0 R (HD.7139) 8066 0 R (HD.714) 1026 0 R (HD.7140) 8067 0 R (HD.7141) 8068 0 R ] /Limits [ (HD.7113) (HD.7141) ] >>
+<< /Names [ (HD.9954) 11106 0 R (HD.9955) 11107 0 R (HD.9956) 11108 0 R (HD.9957) 11109 0 R (HD.9958) 11110 0 R (HD.9959) 11111 0 R (HD.996) 1326 0 R (HD.9960) 11112 0 R (HD.9961) 11113 0 R (HD.9962) 11114 0 R (HD.9963) 11115 0 R (HD.9964) 11116 0 R (HD.9965) 11117 0 R (HD.9966) 11118 0 R (HD.9967) 11119 0 R (HD.9968) 11120 0 R (HD.9969) 11121 0 R (HD.997) 1332 0 R (HD.9970) 11122 0 R (HD.9971) 11123 0 R (HD.9972) 11124 0 R (HD.9973) 11125 0 R (HD.9974) 11126 0 R (HD.9975) 11127 0 R (HD.9976) 11128 0 R (HD.9977) 11129 0 R (HD.9978) 11130 0 R (HD.9979) 11135 0 R (HD.998) 1333 0 R (HD.9980) 11136 0 R (HD.9981) 11137 0 R (HD.9982) 11138 0 R ] /Limits [ (HD.9954) (HD.9982) ] >>
endobj
11929 0 obj
-<< /Names [ (HD.7142) 8069 0 R (HD.7143) 8070 0 R (HD.7144) 8071 0 R (HD.7145) 8072 0 R (HD.7146) 8073 0 R (HD.7147) 8074 0 R (HD.7148) 8075 0 R (HD.7149) 8076 0 R (HD.715) 1027 0 R (HD.7150) 8077 0 R (HD.7151) 8082 0 R (HD.7152) 8083 0 R (HD.7153) 8084 0 R (HD.7154) 8085 0 R (HD.7155) 8086 0 R (HD.7156) 8087 0 R (HD.7157) 8088 0 R (HD.7158) 8089 0 R (HD.7159) 8090 0 R (HD.716) 1028 0 R (HD.7160) 8091 0 R (HD.7161) 8092 0 R (HD.7162) 8093 0 R (HD.7163) 8094 0 R (HD.7164) 8095 0 R (HD.7165) 8096 0 R (HD.7166) 8097 0 R (HD.7167) 8098 0 R (HD.7168) 8099 0 R (HD.7169) 8100 0 R (HD.717) 1029 0 R (HD.7170) 8101 0 R ] /Limits [ (HD.7142) (HD.7170) ] >>
+<< /Names [ (HD.9983) 11139 0 R (HD.9984) 11140 0 R (HD.9985) 11141 0 R (HD.9986) 11142 0 R (HD.9987) 11143 0 R (HD.9988) 11144 0 R (HD.9989) 11145 0 R (HD.999) 1334 0 R (HD.9990) 11146 0 R (HD.9991) 11147 0 R (HD.9992) 11148 0 R (HD.9993) 11149 0 R (HD.9994) 11150 0 R (HD.9995) 11151 0 R (HD.9996) 11152 0 R (HD.9997) 11153 0 R (HD.9998) 11154 0 R (HD.9999) 11155 0 R (Hfootnote.1) 426 0 R (Hfootnote.10) 2683 0 R (Hfootnote.11) 4473 0 R (Hfootnote.12) 4550 0 R (Hfootnote.13) 5983 0 R (Hfootnote.14) 7807 0 R (Hfootnote.2) 719 0 R (Hfootnote.3) 776 0 R (Hfootnote.4) 1936 0 R (Hfootnote.5) 1937 0 R (Hfootnote.6) 2301 0 R (Hfootnote.7) 2344 0 R (Hfootnote.8) 2493 0 R (Hfootnote.9) 2494 0 R ] /Limits [ (HD.9983) (Hfootnote.9) ] >>
endobj
11930 0 obj
-<< /Names [ (HD.7171) 8102 0 R (HD.7172) 8103 0 R (HD.7173) 8104 0 R (HD.7174) 8105 0 R (HD.7175) 8106 0 R (HD.7176) 8107 0 R (HD.7177) 8108 0 R (HD.7178) 8109 0 R (HD.7179) 8110 0 R (HD.718) 1030 0 R (HD.7180) 8111 0 R (HD.7181) 8112 0 R (HD.7182) 8113 0 R (HD.7183) 8114 0 R (HD.7184) 8115 0 R (HD.7185) 8116 0 R (HD.7186) 8121 0 R (HD.7187) 8122 0 R (HD.7188) 8123 0 R (HD.7189) 8124 0 R (HD.719) 1031 0 R (HD.7190) 8125 0 R (HD.7191) 8126 0 R (HD.7192) 8127 0 R (HD.7193) 8128 0 R (HD.7194) 8129 0 R (HD.7195) 8130 0 R (HD.7196) 8131 0 R (HD.7197) 8132 0 R (HD.7198) 8133 0 R (HD.7199) 8134 0 R (HD.72) 272 0 R ] /Limits [ (HD.7171) (HD.72) ] >>
+<< /Names [ (page.1) 168 0 R (page.10) 535 0 R (page.100) 4666 0 R (page.101) 4685 0 R (page.102) 4739 0 R (page.103) 4795 0 R (page.104) 4844 0 R (page.105) 4883 0 R (page.106) 4948 0 R (page.107) 4989 0 R (page.108) 5036 0 R (page.109) 5094 0 R (page.11) 555 0 R (page.110) 5142 0 R (page.111) 5198 0 R (page.112) 5240 0 R (page.113) 5290 0 R (page.114) 5332 0 R (page.115) 5377 0 R (page.116) 5428 0 R (page.117) 5484 0 R (page.118) 5543 0 R (page.119) 5609 0 R (page.12) 583 0 R (page.120) 5658 0 R (page.121) 5720 0 R (page.122) 5773 0 R (page.123) 5830 0 R (page.124) 5891 0 R (page.125) 5955 0 R (page.126) 5988 0 R (page.127) 6039 0 R ] /Limits [ (page.1) (page.127) ] >>
endobj
11931 0 obj
-<< /Names [ (HD.720) 1032 0 R (HD.7200) 8135 0 R (HD.7201) 8136 0 R (HD.7202) 8137 0 R (HD.7203) 8138 0 R (HD.7204) 8139 0 R (HD.7205) 8140 0 R (HD.7206) 8141 0 R (HD.7207) 8142 0 R (HD.7208) 8143 0 R (HD.7209) 8144 0 R (HD.721) 1033 0 R (HD.7210) 8145 0 R (HD.7211) 8146 0 R (HD.7212) 8147 0 R (HD.7213) 8148 0 R (HD.7214) 8149 0 R (HD.7215) 8150 0 R (HD.7216) 8151 0 R (HD.7217) 8152 0 R (HD.7218) 8153 0 R (HD.7219) 8154 0 R (HD.722) 1034 0 R (HD.7220) 8155 0 R (HD.7221) 8156 0 R (HD.7222) 8161 0 R (HD.7223) 8162 0 R (HD.7224) 8163 0 R (HD.7225) 8164 0 R (HD.7226) 8165 0 R (HD.7227) 8166 0 R (HD.7228) 8167 0 R ] /Limits [ (HD.720) (HD.7228) ] >>
+<< /Names [ (page.128) 6080 0 R (page.129) 6136 0 R (page.13) 607 0 R (page.130) 6172 0 R (page.131) 6218 0 R (page.132) 6272 0 R (page.133) 6322 0 R (page.134) 6373 0 R (page.135) 6418 0 R (page.136) 6468 0 R (page.137) 6519 0 R (page.138) 6577 0 R (page.139) 6628 0 R (page.14) 637 0 R (page.140) 6674 0 R (page.141) 6711 0 R (page.142) 6749 0 R (page.143) 6790 0 R (page.144) 6832 0 R (page.145) 6888 0 R (page.146) 6953 0 R (page.147) 7008 0 R (page.148) 7054 0 R (page.149) 7115 0 R (page.15) 653 0 R (page.150) 7162 0 R (page.151) 7214 0 R (page.152) 7264 0 R (page.153) 7323 0 R (page.154) 7368 0 R (page.155) 7428 0 R (page.156) 7484 0 R ] /Limits [ (page.128) (page.156) ] >>
endobj
11932 0 obj
-<< /Names [ (HD.7229) 8168 0 R (HD.723) 1035 0 R (HD.7230) 8169 0 R (HD.7231) 8170 0 R (HD.7232) 8171 0 R (HD.7233) 8172 0 R (HD.7234) 8173 0 R (HD.7235) 8174 0 R (HD.7236) 8175 0 R (HD.7237) 8176 0 R (HD.7238) 8177 0 R (HD.7239) 8178 0 R (HD.724) 1036 0 R (HD.7240) 8179 0 R (HD.7241) 8180 0 R (HD.7242) 8181 0 R (HD.7243) 8182 0 R (HD.7244) 8183 0 R (HD.7245) 8184 0 R (HD.7246) 8185 0 R (HD.7247) 8186 0 R (HD.7248) 8187 0 R (HD.7249) 8188 0 R (HD.725) 1037 0 R (HD.7250) 8189 0 R (HD.7251) 8190 0 R (HD.7252) 8191 0 R (HD.7253) 8192 0 R (HD.7254) 8193 0 R (HD.7255) 8194 0 R (HD.7256) 8195 0 R (HD.7257) 8196 0 R ] /Limits [ (HD.7229) (HD.7257) ] >>
+<< /Names [ (page.157) 7534 0 R (page.158) 7575 0 R (page.159) 7624 0 R (page.16) 682 0 R (page.160) 7674 0 R (page.161) 7708 0 R (page.162) 7764 0 R (page.163) 7812 0 R (page.164) 7865 0 R (page.165) 7915 0 R (page.166) 7957 0 R (page.167) 8001 0 R (page.168) 8034 0 R (page.169) 8071 0 R (page.17) 708 0 R (page.170) 8120 0 R (page.171) 8178 0 R (page.172) 8229 0 R (page.173) 8286 0 R (page.174) 8345 0 R (page.175) 8397 0 R (page.176) 8455 0 R (page.177) 8515 0 R (page.178) 8555 0 R (page.179) 8605 0 R (page.18) 727 0 R (page.180) 8668 0 R (page.181) 8732 0 R (page.182) 8788 0 R (page.183) 8851 0 R (page.184) 8907 0 R (page.185) 8966 0 R ] /Limits [ (page.157) (page.185) ] >>
endobj
11933 0 obj
-<< /Names [ (HD.7258) 8197 0 R (HD.7259) 8198 0 R (HD.726) 1038 0 R (HD.7260) 8199 0 R (HD.7261) 8200 0 R (HD.7262) 8201 0 R (HD.7263) 8202 0 R (HD.7264) 8203 0 R (HD.7265) 8204 0 R (HD.7266) 8205 0 R (HD.7267) 8210 0 R (HD.7268) 8211 0 R (HD.7269) 8212 0 R (HD.727) 1039 0 R (HD.7270) 8213 0 R (HD.7271) 8214 0 R (HD.7272) 8215 0 R (HD.7273) 8216 0 R (HD.7274) 8217 0 R (HD.7275) 8218 0 R (HD.7276) 8219 0 R (HD.7277) 8220 0 R (HD.7278) 8221 0 R (HD.7279) 8222 0 R (HD.728) 1040 0 R (HD.7280) 8223 0 R (HD.7281) 8224 0 R (HD.7282) 8225 0 R (HD.7283) 8226 0 R (HD.7284) 8227 0 R (HD.7285) 8228 0 R (HD.7286) 8229 0 R ] /Limits [ (HD.7258) (HD.7286) ] >>
+<< /Names [ (page.186) 9029 0 R (page.187) 9092 0 R (page.188) 9142 0 R (page.189) 9191 0 R (page.19) 760 0 R (page.190) 9248 0 R (page.191) 9284 0 R (page.192) 9336 0 R (page.193) 9362 0 R (page.194) 9416 0 R (page.195) 9477 0 R (page.196) 9522 0 R (page.197) 9581 0 R (page.198) 9643 0 R (page.199) 9695 0 R (page.2) 206 0 R (page.20) 781 0 R (page.200) 9751 0 R (page.201) 9787 0 R (page.202) 9840 0 R (page.203) 9891 0 R (page.204) 9958 0 R (page.205) 10021 0 R (page.206) 10079 0 R (page.207) 10145 0 R (page.208) 10209 0 R (page.209) 10261 0 R (page.21) 824 0 R (page.210) 10316 0 R (page.211) 10357 0 R (page.212) 10421 0 R (page.213) 10484 0 R ] /Limits [ (page.186) (page.213) ] >>
endobj
11934 0 obj
-<< /Names [ (HD.7287) 8230 0 R (HD.7288) 8231 0 R (HD.7289) 8232 0 R (HD.729) 1041 0 R (HD.7290) 8233 0 R (HD.7291) 8234 0 R (HD.7292) 8235 0 R (HD.7293) 8236 0 R (HD.7294) 8237 0 R (HD.7295) 8238 0 R (HD.7296) 8239 0 R (HD.7297) 8240 0 R (HD.7298) 8241 0 R (HD.7299) 8242 0 R (HD.73) 273 0 R (HD.730) 1042 0 R (HD.7300) 8243 0 R (HD.7301) 8244 0 R (HD.7302) 8245 0 R (HD.7303) 8246 0 R (HD.7304) 8247 0 R (HD.7305) 8248 0 R (HD.7306) 8249 0 R (HD.7307) 8250 0 R (HD.7308) 8251 0 R (HD.7309) 8252 0 R (HD.731) 1043 0 R (HD.7310) 8253 0 R (HD.7311) 8254 0 R (HD.7312) 8255 0 R (HD.7313) 8256 0 R (HD.7314) 8257 0 R ] /Limits [ (HD.7287) (HD.7314) ] >>
+<< /Names [ (page.214) 10549 0 R (page.215) 10613 0 R (page.216) 10678 0 R (page.217) 10742 0 R (page.218) 10806 0 R (page.219) 10871 0 R (page.22) 873 0 R (page.220) 10935 0 R (page.221) 11000 0 R (page.222) 11067 0 R (page.223) 11134 0 R (page.224) 11199 0 R (page.225) 11264 0 R (page.226) 11331 0 R (page.227) 11428 0 R (page.228) 11441 0 R (page.23) 917 0 R (page.24) 962 0 R (page.25) 1007 0 R (page.26) 1035 0 R (page.27) 1056 0 R (page.28) 1096 0 R (page.29) 1150 0 R (page.3) 256 0 R (page.30) 1212 0 R (page.31) 1267 0 R (page.32) 1331 0 R (page.33) 1390 0 R (page.34) 1436 0 R (page.35) 1491 0 R (page.36) 1519 0 R (page.37) 1550 0 R ] /Limits [ (page.214) (page.37) ] >>
endobj
11935 0 obj
-<< /Names [ (HD.7315) 8258 0 R (HD.7316) 8259 0 R (HD.7317) 8260 0 R (HD.7318) 8261 0 R (HD.7319) 8262 0 R (HD.732) 1044 0 R (HD.7320) 8263 0 R (HD.7321) 8264 0 R (HD.7322) 8269 0 R (HD.7323) 8270 0 R (HD.7324) 8271 0 R (HD.7325) 8272 0 R (HD.7326) 8273 0 R (HD.7327) 8274 0 R (HD.7328) 8275 0 R (HD.7329) 8276 0 R (HD.733) 1045 0 R (HD.7330) 8277 0 R (HD.7331) 8278 0 R (HD.7332) 8279 0 R (HD.7333) 8280 0 R (HD.7334) 8281 0 R (HD.7335) 8282 0 R (HD.7336) 8283 0 R (HD.7337) 8284 0 R (HD.7338) 8285 0 R (HD.7339) 8286 0 R (HD.734) 1046 0 R (HD.7340) 8287 0 R (HD.7341) 8288 0 R (HD.7342) 8289 0 R (HD.7343) 8290 0 R ] /Limits [ (HD.7315) (HD.7343) ] >>
+<< /Names [ (page.38) 1610 0 R (page.39) 1654 0 R (page.4) 289 0 R (page.40) 1701 0 R (page.41) 1754 0 R (page.42) 1790 0 R (page.43) 1848 0 R (page.44) 1900 0 R (page.45) 1942 0 R (page.46) 1995 0 R (page.47) 2033 0 R (page.48) 2076 0 R (page.49) 2116 0 R (page.5) 333 0 R (page.50) 2148 0 R (page.51) 2189 0 R (page.52) 2247 0 R (page.53) 2307 0 R (page.54) 2349 0 R (page.55) 2390 0 R (page.56) 2449 0 R (page.57) 2500 0 R (page.58) 2550 0 R (page.59) 2587 0 R (page.6) 378 0 R (page.60) 2642 0 R (page.61) 2688 0 R (page.62) 2747 0 R (page.63) 2801 0 R (page.64) 2852 0 R (page.65) 2895 0 R (page.66) 2936 0 R ] /Limits [ (page.38) (page.66) ] >>
endobj
11936 0 obj
-<< /Names [ (HD.7344) 8291 0 R (HD.7345) 8292 0 R (HD.7346) 8293 0 R (HD.7347) 8294 0 R (HD.7348) 8295 0 R (HD.7349) 8296 0 R (HD.735) 1047 0 R (HD.7350) 8297 0 R (HD.7351) 8298 0 R (HD.7352) 8299 0 R (HD.7353) 8300 0 R (HD.7354) 8301 0 R (HD.7355) 8302 0 R (HD.7356) 8303 0 R (HD.7357) 8304 0 R (HD.7358) 8305 0 R (HD.7359) 8306 0 R (HD.736) 1048 0 R (HD.7360) 8307 0 R (HD.7361) 8308 0 R (HD.7362) 8309 0 R (HD.7363) 8310 0 R (HD.7364) 8311 0 R (HD.7365) 8312 0 R (HD.7366) 8313 0 R (HD.7367) 8319 0 R (HD.7368) 8320 0 R (HD.7369) 8321 0 R (HD.737) 1049 0 R (HD.7370) 8322 0 R (HD.7371) 8323 0 R (HD.7372) 8324 0 R ] /Limits [ (HD.7344) (HD.7372) ] >>
+<< /Names [ (page.67) 2987 0 R (page.68) 3042 0 R (page.69) 3099 0 R (page.7) 431 0 R (page.70) 3159 0 R (page.71) 3215 0 R (page.72) 3250 0 R (page.73) 3296 0 R (page.74) 3341 0 R (page.75) 3396 0 R (page.76) 3450 0 R (page.77) 3501 0 R (page.78) 3552 0 R (page.79) 3597 0 R (page.8) 476 0 R (page.80) 3647 0 R (page.81) 3698 0 R (page.82) 3758 0 R (page.83) 3803 0 R (page.84) 3842 0 R (page.85) 3890 0 R (page.86) 3946 0 R (page.87) 4003 0 R (page.88) 4065 0 R (page.89) 4116 0 R (page.9) 514 0 R (page.90) 4166 0 R (page.91) 4211 0 R (page.92) 4271 0 R (page.93) 4329 0 R (page.94) 4378 0 R (page.95) 4426 0 R ] /Limits [ (page.67) (page.95) ] >>
endobj
11937 0 obj
-<< /Names [ (HD.7373) 8325 0 R (HD.7374) 8326 0 R (HD.7375) 8327 0 R (HD.7376) 8328 0 R (HD.7377) 8329 0 R (HD.7378) 8330 0 R (HD.7379) 8331 0 R (HD.738) 1050 0 R (HD.7380) 8332 0 R (HD.7381) 8333 0 R (HD.7382) 8334 0 R (HD.7383) 8335 0 R (HD.7384) 8336 0 R (HD.7385) 8337 0 R (HD.7386) 8338 0 R (HD.7387) 8339 0 R (HD.7388) 8340 0 R (HD.7389) 8341 0 R (HD.739) 1051 0 R (HD.7390) 8342 0 R (HD.7391) 8343 0 R (HD.7392) 8344 0 R (HD.7393) 8345 0 R (HD.7394) 8346 0 R (HD.7395) 8347 0 R (HD.7396) 8348 0 R (HD.7397) 8349 0 R (HD.7398) 8350 0 R (HD.7399) 8351 0 R (HD.74) 274 0 R (HD.740) 1052 0 R (HD.7400) 8352 0 R ] /Limits [ (HD.7373) (HD.7400) ] >>
+<< /Names [ (page.96) 4478 0 R (page.97) 4517 0 R (page.98) 4555 0 R (page.99) 4608 0 R (section.0.1) 5 0 R (section.0.10) 41 0 R (section.0.11) 45 0 R (section.0.12) 49 0 R (section.0.13) 53 0 R (section.0.14) 57 0 R (section.0.15) 61 0 R (section.0.16) 65 0 R (section.0.17) 69 0 R (section.0.18) 73 0 R (section.0.19) 77 0 R (section.0.2) 9 0 R (section.0.20) 81 0 R (section.0.21) 85 0 R (section.0.22) 89 0 R (section.0.23) 93 0 R (section.0.24) 97 0 R (section.0.25) 101 0 R (section.0.26) 105 0 R (section.0.27) 109 0 R (section.0.28) 113 0 R (section.0.29) 117 0 R (section.0.3) 13 0 R (section.0.30) 121 0 R (section.0.31) 125 0 R (section.0.32) 129 0 R (section.0.33) 133 0 R (section.0.34) 137 0 R ] /Limits [ (page.96) (section.0.34) ] >>
endobj
11938 0 obj
-<< /Names [ (HD.7401) 8353 0 R (HD.7402) 8354 0 R (HD.7403) 8355 0 R (HD.7404) 8356 0 R (HD.7405) 8357 0 R (HD.7406) 8358 0 R (HD.7407) 8359 0 R (HD.7408) 8360 0 R (HD.7409) 8361 0 R (HD.741) 1053 0 R (HD.7410) 8362 0 R (HD.7411) 8363 0 R (HD.7412) 8364 0 R (HD.7413) 8365 0 R (HD.7414) 8366 0 R (HD.7415) 8367 0 R (HD.7416) 8368 0 R (HD.7417) 8369 0 R (HD.7418) 8370 0 R (HD.7419) 8371 0 R (HD.742) 1058 0 R (HD.7420) 8372 0 R (HD.7421) 8373 0 R (HD.7422) 8374 0 R (HD.7423) 8379 0 R (HD.7424) 8380 0 R (HD.7425) 8381 0 R (HD.7426) 8382 0 R (HD.7427) 8383 0 R (HD.7428) 8384 0 R (HD.7429) 8385 0 R (HD.743) 1059 0 R ] /Limits [ (HD.7401) (HD.743) ] >>
+<< /Names [ (section.0.35) 141 0 R (section.0.36) 145 0 R (section.0.37) 149 0 R (section.0.38) 153 0 R (section.0.39) 157 0 R (section.0.4) 17 0 R (section.0.5) 21 0 R (section.0.6) 25 0 R (section.0.7) 29 0 R (section.0.8) 33 0 R (section.0.9) 37 0 R (toc1.1) 161 0 R ] /Limits [ (section.0.35) (toc1.1) ] >>
endobj
11939 0 obj
-<< /Names [ (HD.7430) 8386 0 R (HD.7431) 8387 0 R (HD.7432) 8388 0 R (HD.7433) 8389 0 R (HD.7434) 8390 0 R (HD.7435) 8391 0 R (HD.7436) 8392 0 R (HD.7437) 8393 0 R (HD.7438) 8394 0 R (HD.7439) 8395 0 R (HD.744) 1060 0 R (HD.7440) 8396 0 R (HD.7441) 8397 0 R (HD.7442) 8398 0 R (HD.7443) 8399 0 R (HD.7444) 8400 0 R (HD.7445) 8401 0 R (HD.7446) 8402 0 R (HD.7447) 8403 0 R (HD.7448) 8404 0 R (HD.7449) 8405 0 R (HD.745) 1061 0 R (HD.7450) 8406 0 R (HD.7451) 8407 0 R (HD.7452) 8408 0 R (HD.7453) 8409 0 R (HD.7454) 8410 0 R (HD.7455) 8411 0 R (HD.7456) 8412 0 R (HD.7457) 8413 0 R (HD.7458) 8414 0 R (HD.7459) 8415 0 R ] /Limits [ (HD.7430) (HD.7459) ] >>
+<< /Kids [ 11610 0 R 11611 0 R 11612 0 R 11613 0 R 11614 0 R 11615 0 R 11616 0 R 11617 0 R 11618 0 R 11619 0 R 11620 0 R 11621 0 R 11622 0 R 11623 0 R 11624 0 R 11625 0 R 11626 0 R 11627 0 R 11628 0 R 11629 0 R 11630 0 R 11631 0 R 11632 0 R 11633 0 R 11634 0 R 11635 0 R 11636 0 R 11637 0 R 11638 0 R 11639 0 R 11640 0 R 11641 0 R ] /Limits [ (Doc-Start) (HD.1715) ] >>
endobj
11940 0 obj
-<< /Names [ (HD.746) 1062 0 R (HD.7460) 8416 0 R (HD.7461) 8417 0 R (HD.7462) 8418 0 R (HD.7463) 8419 0 R (HD.7464) 8420 0 R (HD.7465) 8421 0 R (HD.7466) 8422 0 R (HD.7467) 8423 0 R (HD.7468) 8424 0 R (HD.7469) 8425 0 R (HD.747) 1063 0 R (HD.7470) 8426 0 R (HD.7471) 8427 0 R (HD.7472) 8428 0 R (HD.7473) 8429 0 R (HD.7474) 8430 0 R (HD.7475) 8431 0 R (HD.7476) 8432 0 R (HD.7477) 8433 0 R (HD.7478) 8434 0 R (HD.7479) 8435 0 R (HD.748) 1064 0 R (HD.7480) 8436 0 R (HD.7481) 8441 0 R (HD.7482) 8442 0 R (HD.7483) 8443 0 R (HD.7484) 8444 0 R (HD.7485) 8445 0 R (HD.7486) 8446 0 R (HD.7487) 8447 0 R (HD.7488) 8448 0 R ] /Limits [ (HD.746) (HD.7488) ] >>
+<< /Kids [ 11642 0 R 11643 0 R 11644 0 R 11645 0 R 11646 0 R 11647 0 R 11648 0 R 11649 0 R 11650 0 R 11651 0 R 11652 0 R 11653 0 R 11654 0 R 11655 0 R 11656 0 R 11657 0 R 11658 0 R 11659 0 R 11660 0 R 11661 0 R 11662 0 R 11663 0 R 11664 0 R 11665 0 R 11666 0 R 11667 0 R 11668 0 R 11669 0 R 11670 0 R 11671 0 R 11672 0 R 11673 0 R ] /Limits [ (HD.1716) (HD.2637) ] >>
endobj
11941 0 obj
-<< /Names [ (HD.7489) 8449 0 R (HD.749) 1065 0 R (HD.7490) 8450 0 R (HD.7491) 8451 0 R (HD.7492) 8452 0 R (HD.7493) 8453 0 R (HD.7494) 8454 0 R (HD.7495) 8455 0 R (HD.7496) 8456 0 R (HD.7497) 8457 0 R (HD.7498) 8458 0 R (HD.7499) 8459 0 R (HD.75) 275 0 R (HD.750) 1066 0 R (HD.7500) 8460 0 R (HD.7501) 8461 0 R (HD.7502) 8462 0 R (HD.7503) 8463 0 R (HD.7504) 8464 0 R (HD.7505) 8465 0 R (HD.7506) 8466 0 R (HD.7507) 8467 0 R (HD.7508) 8468 0 R (HD.7509) 8469 0 R (HD.751) 1067 0 R (HD.7510) 8470 0 R (HD.7511) 8471 0 R (HD.7512) 8472 0 R (HD.7513) 8473 0 R (HD.7514) 8474 0 R (HD.7515) 8475 0 R (HD.7516) 8476 0 R ] /Limits [ (HD.7489) (HD.7516) ] >>
+<< /Kids [ 11674 0 R 11675 0 R 11676 0 R 11677 0 R 11678 0 R 11679 0 R 11680 0 R 11681 0 R 11682 0 R 11683 0 R 11684 0 R 11685 0 R 11686 0 R 11687 0 R 11688 0 R 11689 0 R 11690 0 R 11691 0 R 11692 0 R 11693 0 R 11694 0 R 11695 0 R 11696 0 R 11697 0 R 11698 0 R 11699 0 R 11700 0 R 11701 0 R 11702 0 R 11703 0 R 11704 0 R 11705 0 R ] /Limits [ (HD.2638) (HD.3559) ] >>
endobj
11942 0 obj
-<< /Names [ (HD.7517) 8477 0 R (HD.7518) 8478 0 R (HD.7519) 8479 0 R (HD.752) 1068 0 R (HD.7520) 8480 0 R (HD.7521) 8481 0 R (HD.7522) 8482 0 R (HD.7523) 8483 0 R (HD.7524) 8484 0 R (HD.7525) 8485 0 R (HD.7526) 8486 0 R (HD.7527) 8487 0 R (HD.7528) 8488 0 R (HD.7529) 8493 0 R (HD.753) 1069 0 R (HD.7530) 8494 0 R (HD.7531) 8495 0 R (HD.7532) 8496 0 R (HD.7533) 8497 0 R (HD.7534) 8498 0 R (HD.7535) 8499 0 R (HD.7536) 8500 0 R (HD.7537) 8501 0 R (HD.7538) 8502 0 R (HD.7539) 8503 0 R (HD.754) 1070 0 R (HD.7540) 8504 0 R (HD.7541) 8505 0 R (HD.7542) 8506 0 R (HD.7543) 8507 0 R (HD.7544) 8508 0 R (HD.7545) 8509 0 R ] /Limits [ (HD.7517) (HD.7545) ] >>
+<< /Kids [ 11706 0 R 11707 0 R 11708 0 R 11709 0 R 11710 0 R 11711 0 R 11712 0 R 11713 0 R 11714 0 R 11715 0 R 11716 0 R 11717 0 R 11718 0 R 11719 0 R 11720 0 R 11721 0 R 11722 0 R 11723 0 R 11724 0 R 11725 0 R 11726 0 R 11727 0 R 11728 0 R 11729 0 R 11730 0 R 11731 0 R 11732 0 R 11733 0 R 11734 0 R 11735 0 R 11736 0 R 11737 0 R ] /Limits [ (HD.356) (HD.4480) ] >>
endobj
11943 0 obj
-<< /Names [ (HD.7546) 8510 0 R (HD.7547) 8511 0 R (HD.7548) 8512 0 R (HD.7549) 8513 0 R (HD.755) 1071 0 R (HD.7550) 8514 0 R (HD.7551) 8515 0 R (HD.7552) 8516 0 R (HD.7553) 8517 0 R (HD.7554) 8518 0 R (HD.7555) 8519 0 R (HD.7556) 8520 0 R (HD.7557) 8521 0 R (HD.7558) 8522 0 R (HD.7559) 8523 0 R (HD.756) 1072 0 R (HD.7560) 8524 0 R (HD.7561) 8525 0 R (HD.7562) 8526 0 R (HD.7563) 8527 0 R (HD.7564) 8528 0 R (HD.7565) 8529 0 R (HD.7566) 8530 0 R (HD.7567) 8531 0 R (HD.7568) 8532 0 R (HD.7569) 8533 0 R (HD.757) 1073 0 R (HD.7570) 8534 0 R (HD.7571) 8535 0 R (HD.7572) 8536 0 R (HD.7573) 8537 0 R (HD.7574) 8538 0 R ] /Limits [ (HD.7546) (HD.7574) ] >>
+<< /Kids [ 11738 0 R 11739 0 R 11740 0 R 11741 0 R 11742 0 R 11743 0 R 11744 0 R 11745 0 R 11746 0 R 11747 0 R 11748 0 R 11749 0 R 11750 0 R 11751 0 R 11752 0 R 11753 0 R 11754 0 R 11755 0 R 11756 0 R 11757 0 R 11758 0 R 11759 0 R 11760 0 R 11761 0 R 11762 0 R 11763 0 R 11764 0 R 11765 0 R 11766 0 R 11767 0 R 11768 0 R 11769 0 R ] /Limits [ (HD.4481) (HD.5401) ] >>
endobj
11944 0 obj
-<< /Names [ (HD.7575) 8539 0 R (HD.7576) 8540 0 R (HD.7577) 8541 0 R (HD.7578) 8542 0 R (HD.7579) 8547 0 R (HD.758) 1074 0 R (HD.7580) 8548 0 R (HD.7581) 8549 0 R (HD.7582) 8550 0 R (HD.7583) 8551 0 R (HD.7584) 8552 0 R (HD.7585) 8553 0 R (HD.7586) 8554 0 R (HD.7587) 8555 0 R (HD.7588) 8556 0 R (HD.7589) 8557 0 R (HD.759) 1075 0 R (HD.7590) 8558 0 R (HD.7591) 8559 0 R (HD.7592) 8560 0 R (HD.7593) 8561 0 R (HD.7594) 8562 0 R (HD.7595) 8563 0 R (HD.7596) 8564 0 R (HD.7597) 8565 0 R (HD.7598) 8566 0 R (HD.7599) 8567 0 R (HD.76) 276 0 R (HD.760) 1076 0 R (HD.7600) 8568 0 R (HD.7601) 8569 0 R (HD.7602) 8570 0 R ] /Limits [ (HD.7575) (HD.7602) ] >>
+<< /Kids [ 11770 0 R 11771 0 R 11772 0 R 11773 0 R 11774 0 R 11775 0 R 11776 0 R 11777 0 R 11778 0 R 11779 0 R 11780 0 R 11781 0 R 11782 0 R 11783 0 R 11784 0 R 11785 0 R 11786 0 R 11787 0 R 11788 0 R 11789 0 R 11790 0 R 11791 0 R 11792 0 R 11793 0 R 11794 0 R 11795 0 R 11796 0 R 11797 0 R 11798 0 R 11799 0 R 11800 0 R 11801 0 R ] /Limits [ (HD.5402) (HD.6323) ] >>
endobj
11945 0 obj
-<< /Names [ (HD.7603) 8571 0 R (HD.7604) 8572 0 R (HD.7605) 8573 0 R (HD.7606) 8574 0 R (HD.7607) 8575 0 R (HD.7608) 8576 0 R (HD.7609) 8577 0 R (HD.761) 1077 0 R (HD.7610) 8578 0 R (HD.7611) 8579 0 R (HD.7612) 8580 0 R (HD.7613) 8581 0 R (HD.7614) 8582 0 R (HD.7615) 8583 0 R (HD.7616) 8584 0 R (HD.7617) 8585 0 R (HD.7618) 8586 0 R (HD.7619) 8587 0 R (HD.762) 1078 0 R (HD.7620) 8588 0 R (HD.7621) 8589 0 R (HD.7622) 8590 0 R (HD.7623) 8591 0 R (HD.7624) 8592 0 R (HD.7625) 8593 0 R (HD.7626) 8594 0 R (HD.7627) 8595 0 R (HD.7628) 8596 0 R (HD.7629) 8597 0 R (HD.763) 1079 0 R (HD.7630) 8598 0 R (HD.7631) 8599 0 R ] /Limits [ (HD.7603) (HD.7631) ] >>
+<< /Kids [ 11802 0 R 11803 0 R 11804 0 R 11805 0 R 11806 0 R 11807 0 R 11808 0 R 11809 0 R 11810 0 R 11811 0 R 11812 0 R 11813 0 R 11814 0 R 11815 0 R 11816 0 R 11817 0 R 11818 0 R 11819 0 R 11820 0 R 11821 0 R 11822 0 R 11823 0 R 11824 0 R 11825 0 R 11826 0 R 11827 0 R 11828 0 R 11829 0 R 11830 0 R 11831 0 R 11832 0 R 11833 0 R ] /Limits [ (HD.6324) (HD.7245) ] >>
endobj
11946 0 obj
-<< /Names [ (HD.7632) 8600 0 R (HD.7633) 8601 0 R (HD.7634) 8602 0 R (HD.7635) 8603 0 R (HD.7636) 8604 0 R (HD.7637) 8605 0 R (HD.7638) 8606 0 R (HD.7639) 8607 0 R (HD.764) 1080 0 R (HD.7640) 8612 0 R (HD.7641) 8613 0 R (HD.7642) 8614 0 R (HD.7643) 8615 0 R (HD.7644) 8616 0 R (HD.7645) 8617 0 R (HD.7646) 8618 0 R (HD.7647) 8619 0 R (HD.7648) 8620 0 R (HD.7649) 8621 0 R (HD.765) 1081 0 R (HD.7650) 8622 0 R (HD.7651) 8623 0 R (HD.7652) 8624 0 R (HD.7653) 8625 0 R (HD.7654) 8626 0 R (HD.7655) 8627 0 R (HD.7656) 8628 0 R (HD.7657) 8629 0 R (HD.7658) 8630 0 R (HD.7659) 8631 0 R (HD.766) 1086 0 R (HD.7660) 8632 0 R ] /Limits [ (HD.7632) (HD.7660) ] >>
+<< /Kids [ 11834 0 R 11835 0 R 11836 0 R 11837 0 R 11838 0 R 11839 0 R 11840 0 R 11841 0 R 11842 0 R 11843 0 R 11844 0 R 11845 0 R 11846 0 R 11847 0 R 11848 0 R 11849 0 R 11850 0 R 11851 0 R 11852 0 R 11853 0 R 11854 0 R 11855 0 R 11856 0 R 11857 0 R 11858 0 R 11859 0 R 11860 0 R 11861 0 R 11862 0 R 11863 0 R 11864 0 R 11865 0 R ] /Limits [ (HD.7246) (HD.8167) ] >>
endobj
11947 0 obj
-<< /Names [ (HD.7661) 8633 0 R (HD.7662) 8634 0 R (HD.7663) 8635 0 R (HD.7664) 8636 0 R (HD.7665) 8637 0 R (HD.7666) 8638 0 R (HD.7667) 8639 0 R (HD.7668) 8640 0 R (HD.7669) 8641 0 R (HD.767) 1087 0 R (HD.7670) 8642 0 R (HD.7671) 8643 0 R (HD.7672) 8644 0 R (HD.7673) 8645 0 R (HD.7674) 8646 0 R (HD.7675) 8647 0 R (HD.7676) 8652 0 R (HD.7677) 8653 0 R (HD.7678) 8654 0 R (HD.7679) 8655 0 R (HD.768) 1088 0 R (HD.7680) 8656 0 R (HD.7681) 8657 0 R (HD.7682) 8658 0 R (HD.7683) 8659 0 R (HD.7684) 8660 0 R (HD.7685) 8661 0 R (HD.7686) 8662 0 R (HD.7687) 8663 0 R (HD.7688) 8664 0 R (HD.7689) 8665 0 R (HD.769) 1089 0 R ] /Limits [ (HD.7661) (HD.769) ] >>
+<< /Kids [ 11866 0 R 11867 0 R 11868 0 R 11869 0 R 11870 0 R 11871 0 R 11872 0 R 11873 0 R 11874 0 R 11875 0 R 11876 0 R 11877 0 R 11878 0 R 11879 0 R 11880 0 R 11881 0 R 11882 0 R 11883 0 R 11884 0 R 11885 0 R 11886 0 R 11887 0 R 11888 0 R 11889 0 R 11890 0 R 11891 0 R 11892 0 R 11893 0 R 11894 0 R 11895 0 R 11896 0 R 11897 0 R ] /Limits [ (HD.8168) (HD.9089) ] >>
endobj
11948 0 obj
-<< /Names [ (HD.7690) 8666 0 R (HD.7691) 8667 0 R (HD.7692) 8668 0 R (HD.7693) 8669 0 R (HD.7694) 8670 0 R (HD.7695) 8671 0 R (HD.7696) 8672 0 R (HD.7697) 8673 0 R (HD.7698) 8674 0 R (HD.7699) 8675 0 R (HD.77) 277 0 R (HD.770) 1090 0 R (HD.7700) 8676 0 R (HD.7701) 8677 0 R (HD.7702) 8678 0 R (HD.7703) 8679 0 R (HD.7704) 8680 0 R (HD.7705) 8681 0 R (HD.7706) 8682 0 R (HD.7707) 8683 0 R (HD.7708) 8684 0 R (HD.7709) 8685 0 R (HD.771) 1091 0 R (HD.7710) 8686 0 R (HD.7711) 8687 0 R (HD.7712) 8688 0 R (HD.7713) 8689 0 R (HD.7714) 8690 0 R (HD.7715) 8691 0 R (HD.7716) 8692 0 R (HD.7717) 8693 0 R (HD.7718) 8694 0 R ] /Limits [ (HD.7690) (HD.7718) ] >>
+<< /Kids [ 11898 0 R 11899 0 R 11900 0 R 11901 0 R 11902 0 R 11903 0 R 11904 0 R 11905 0 R 11906 0 R 11907 0 R 11908 0 R 11909 0 R 11910 0 R 11911 0 R 11912 0 R 11913 0 R 11914 0 R 11915 0 R 11916 0 R 11917 0 R 11918 0 R 11919 0 R 11920 0 R 11921 0 R 11922 0 R 11923 0 R 11924 0 R 11925 0 R 11926 0 R 11927 0 R 11928 0 R 11929 0 R ] /Limits [ (HD.909) (Hfootnote.9) ] >>
endobj
11949 0 obj
-<< /Names [ (HD.7719) 8695 0 R (HD.772) 1092 0 R (HD.7720) 8696 0 R (HD.7721) 8697 0 R (HD.7722) 8698 0 R (HD.7723) 8699 0 R (HD.7724) 8700 0 R (HD.7725) 8705 0 R (HD.7726) 8706 0 R (HD.7727) 8707 0 R (HD.7728) 8708 0 R (HD.7729) 8709 0 R (HD.773) 1093 0 R (HD.7730) 8710 0 R (HD.7731) 8711 0 R (HD.7732) 8712 0 R (HD.7733) 8713 0 R (HD.7734) 8714 0 R (HD.7735) 8715 0 R (HD.7736) 8716 0 R (HD.7737) 8717 0 R (HD.7738) 8718 0 R (HD.7739) 8719 0 R (HD.774) 1094 0 R (HD.7740) 8720 0 R (HD.7741) 8721 0 R (HD.7742) 8722 0 R (HD.7743) 8723 0 R (HD.7744) 8724 0 R (HD.7745) 8725 0 R (HD.7746) 8726 0 R (HD.7747) 8727 0 R ] /Limits [ (HD.7719) (HD.7747) ] >>
+<< /Kids [ 11930 0 R 11931 0 R 11932 0 R 11933 0 R 11934 0 R 11935 0 R 11936 0 R 11937 0 R 11938 0 R ] /Limits [ (page.1) (toc1.1) ] >>
endobj
11950 0 obj
-<< /Names [ (HD.7748) 8728 0 R (HD.7749) 8729 0 R (HD.775) 1095 0 R (HD.7750) 8730 0 R (HD.7751) 8731 0 R (HD.7752) 8732 0 R (HD.7753) 8733 0 R (HD.7754) 8734 0 R (HD.7755) 8735 0 R (HD.7756) 8736 0 R (HD.7757) 8737 0 R (HD.7758) 8738 0 R (HD.7759) 8739 0 R (HD.776) 1096 0 R (HD.7760) 8740 0 R (HD.7761) 8741 0 R (HD.7762) 8742 0 R (HD.7763) 8743 0 R (HD.7764) 8744 0 R (HD.7765) 8745 0 R (HD.7766) 8746 0 R (HD.7767) 8747 0 R (HD.7768) 8748 0 R (HD.7769) 8749 0 R (HD.777) 1097 0 R (HD.7770) 8750 0 R (HD.7771) 8751 0 R (HD.7772) 8752 0 R (HD.7773) 8753 0 R (HD.7774) 8754 0 R (HD.7775) 8755 0 R (HD.7776) 8756 0 R ] /Limits [ (HD.7748) (HD.7776) ] >>
+<< /Kids [ 11939 0 R 11940 0 R 11941 0 R 11942 0 R 11943 0 R 11944 0 R 11945 0 R 11946 0 R 11947 0 R 11948 0 R 11949 0 R ] /Limits [ (Doc-Start) (toc1.1) ] >>
endobj
11951 0 obj
-<< /Names [ (HD.7777) 8757 0 R (HD.7778) 8758 0 R (HD.7779) 8759 0 R (HD.778) 1098 0 R (HD.7780) 8760 0 R (HD.7781) 8761 0 R (HD.7782) 8762 0 R (HD.7783) 8763 0 R (HD.7784) 8764 0 R (HD.7785) 8769 0 R (HD.7786) 8770 0 R (HD.7787) 8771 0 R (HD.7788) 8772 0 R (HD.7789) 8773 0 R (HD.779) 1099 0 R (HD.7790) 8774 0 R (HD.7791) 8775 0 R (HD.7792) 8776 0 R (HD.7793) 8777 0 R (HD.7794) 8778 0 R (HD.7795) 8779 0 R (HD.7796) 8780 0 R (HD.7797) 8781 0 R (HD.7798) 8782 0 R (HD.7799) 8783 0 R (HD.78) 278 0 R (HD.780) 1100 0 R (HD.7800) 8784 0 R (HD.7801) 8785 0 R (HD.7802) 8786 0 R (HD.7803) 8787 0 R (HD.7804) 8788 0 R ] /Limits [ (HD.7777) (HD.7804) ] >>
+<< /Dests 11950 0 R >>
endobj
11952 0 obj
-<< /Names [ (HD.7805) 8789 0 R (HD.7806) 8790 0 R (HD.7807) 8791 0 R (HD.7808) 8792 0 R (HD.7809) 8793 0 R (HD.781) 1101 0 R (HD.7810) 8794 0 R (HD.7811) 8795 0 R (HD.7812) 8796 0 R (HD.7813) 8797 0 R (HD.7814) 8798 0 R (HD.7815) 8799 0 R (HD.7816) 8800 0 R (HD.7817) 8801 0 R (HD.7818) 8802 0 R (HD.7819) 8803 0 R (HD.782) 1102 0 R (HD.7820) 8804 0 R (HD.7821) 8805 0 R (HD.7822) 8806 0 R (HD.7823) 8807 0 R (HD.7824) 8808 0 R (HD.7825) 8809 0 R (HD.7826) 8810 0 R (HD.7827) 8811 0 R (HD.7828) 8812 0 R (HD.7829) 8813 0 R (HD.783) 1107 0 R (HD.7830) 8814 0 R (HD.7831) 8815 0 R (HD.7832) 8816 0 R (HD.7833) 8817 0 R ] /Limits [ (HD.7805) (HD.7833) ] >>
+<< /Type /Catalog /Pages 11608 0 R /Outlines 11609 0 R /Names 11951 0 R /PageMode/UseOutlines /OpenAction 164 0 R >>
endobj
11953 0 obj
-<< /Names [ (HD.7834) 8818 0 R (HD.7835) 8819 0 R (HD.7836) 8820 0 R (HD.7837) 8821 0 R (HD.7838) 8822 0 R (HD.7839) 8823 0 R (HD.784) 1108 0 R (HD.7840) 8824 0 R (HD.7841) 8825 0 R (HD.7842) 8826 0 R (HD.7843) 8827 0 R (HD.7844) 8828 0 R (HD.7845) 8829 0 R (HD.7846) 8830 0 R (HD.7847) 8835 0 R (HD.7848) 8836 0 R (HD.7849) 8837 0 R (HD.785) 1109 0 R (HD.7850) 8838 0 R (HD.7851) 8839 0 R (HD.7852) 8840 0 R (HD.7853) 8841 0 R (HD.7854) 8842 0 R (HD.7855) 8843 0 R (HD.7856) 8844 0 R (HD.7857) 8845 0 R (HD.7858) 8846 0 R (HD.7859) 8847 0 R (HD.786) 1110 0 R (HD.7860) 8848 0 R (HD.7861) 8849 0 R (HD.7862) 8850 0 R ] /Limits [ (HD.7834) (HD.7862) ] >>
-endobj
-11954 0 obj
-<< /Names [ (HD.7863) 8851 0 R (HD.7864) 8852 0 R (HD.7865) 8853 0 R (HD.7866) 8854 0 R (HD.7867) 8855 0 R (HD.7868) 8856 0 R (HD.7869) 8857 0 R (HD.787) 1111 0 R (HD.7870) 8858 0 R (HD.7871) 8859 0 R (HD.7872) 8860 0 R (HD.7873) 8861 0 R (HD.7874) 8862 0 R (HD.7875) 8863 0 R (HD.7876) 8864 0 R (HD.7877) 8865 0 R (HD.7878) 8866 0 R (HD.7879) 8867 0 R (HD.788) 1112 0 R (HD.7880) 8868 0 R (HD.7881) 8869 0 R (HD.7882) 8870 0 R (HD.7883) 8871 0 R (HD.7884) 8872 0 R (HD.7885) 8873 0 R (HD.7886) 8874 0 R (HD.7887) 8875 0 R (HD.7888) 8876 0 R (HD.7889) 8877 0 R (HD.789) 1113 0 R (HD.7890) 8878 0 R (HD.7891) 8879 0 R ] /Limits [ (HD.7863) (HD.7891) ] >>
-endobj
-11955 0 obj
-<< /Names [ (HD.7892) 8880 0 R (HD.7893) 8881 0 R (HD.7894) 8882 0 R (HD.7895) 8883 0 R (HD.7896) 8884 0 R (HD.7897) 8885 0 R (HD.7898) 8891 0 R (HD.7899) 8892 0 R (HD.79) 279 0 R (HD.790) 1114 0 R (HD.7900) 8893 0 R (HD.7901) 8894 0 R (HD.7902) 8895 0 R (HD.7903) 8896 0 R (HD.7904) 8897 0 R (HD.7905) 8898 0 R (HD.7906) 8899 0 R (HD.7907) 8900 0 R (HD.7908) 8901 0 R (HD.7909) 8902 0 R (HD.791) 1115 0 R (HD.7910) 8903 0 R (HD.7911) 8904 0 R (HD.7912) 8905 0 R (HD.7913) 8906 0 R (HD.7914) 8907 0 R (HD.7915) 8908 0 R (HD.7916) 8909 0 R (HD.7917) 8910 0 R (HD.7918) 8911 0 R (HD.7919) 8912 0 R (HD.792) 1116 0 R ] /Limits [ (HD.7892) (HD.792) ] >>
-endobj
-11956 0 obj
-<< /Names [ (HD.7920) 8913 0 R (HD.7921) 8914 0 R (HD.7922) 8915 0 R (HD.7923) 8916 0 R (HD.7924) 8917 0 R (HD.7925) 8918 0 R (HD.7926) 8919 0 R (HD.7927) 8920 0 R (HD.7928) 8921 0 R (HD.7929) 8922 0 R (HD.793) 1117 0 R (HD.7930) 8923 0 R (HD.7931) 8924 0 R (HD.7932) 8925 0 R (HD.7933) 8926 0 R (HD.7934) 8927 0 R (HD.7935) 8928 0 R (HD.7936) 8929 0 R (HD.7937) 8930 0 R (HD.7938) 8931 0 R (HD.7939) 8932 0 R (HD.794) 1118 0 R (HD.7940) 8933 0 R (HD.7941) 8934 0 R (HD.7942) 8935 0 R (HD.7943) 8936 0 R (HD.7944) 8937 0 R (HD.7945) 8938 0 R (HD.7946) 8939 0 R (HD.7947) 8940 0 R (HD.7948) 8941 0 R (HD.7949) 8942 0 R ] /Limits [ (HD.7920) (HD.7949) ] >>
-endobj
-11957 0 obj
-<< /Names [ (HD.795) 1119 0 R (HD.7950) 8943 0 R (HD.7951) 8944 0 R (HD.7952) 8945 0 R (HD.7953) 8946 0 R (HD.7954) 8947 0 R (HD.7955) 8948 0 R (HD.7956) 8949 0 R (HD.7957) 8954 0 R (HD.7958) 8955 0 R (HD.7959) 8956 0 R (HD.796) 1120 0 R (HD.7960) 8957 0 R (HD.7961) 8958 0 R (HD.7962) 8959 0 R (HD.7963) 8960 0 R (HD.7964) 8961 0 R (HD.7965) 8962 0 R (HD.7966) 8963 0 R (HD.7967) 8964 0 R (HD.7968) 8965 0 R (HD.7969) 8966 0 R (HD.797) 1121 0 R (HD.7970) 8967 0 R (HD.7971) 8968 0 R (HD.7972) 8969 0 R (HD.7973) 8970 0 R (HD.7974) 8971 0 R (HD.7975) 8972 0 R (HD.7976) 8973 0 R (HD.7977) 8974 0 R (HD.7978) 8975 0 R ] /Limits [ (HD.795) (HD.7978) ] >>
-endobj
-11958 0 obj
-<< /Names [ (HD.7979) 8976 0 R (HD.798) 1122 0 R (HD.7980) 8977 0 R (HD.7981) 8978 0 R (HD.7982) 8979 0 R (HD.7983) 8980 0 R (HD.7984) 8981 0 R (HD.7985) 8982 0 R (HD.7986) 8983 0 R (HD.7987) 8984 0 R (HD.7988) 8985 0 R (HD.7989) 8986 0 R (HD.799) 1123 0 R (HD.7990) 8987 0 R (HD.7991) 8988 0 R (HD.7992) 8989 0 R (HD.7993) 8990 0 R (HD.7994) 8991 0 R (HD.7995) 8992 0 R (HD.7996) 8993 0 R (HD.7997) 8994 0 R (HD.7998) 8995 0 R (HD.7999) 8996 0 R (HD.8) 196 0 R (HD.80) 280 0 R (HD.800) 1124 0 R (HD.8000) 8997 0 R (HD.8001) 8998 0 R (HD.8002) 8999 0 R (HD.8003) 9000 0 R (HD.8004) 9001 0 R (HD.8005) 9002 0 R ] /Limits [ (HD.7979) (HD.8005) ] >>
-endobj
-11959 0 obj
-<< /Names [ (HD.8006) 9003 0 R (HD.8007) 9004 0 R (HD.8008) 9005 0 R (HD.8009) 9006 0 R (HD.801) 1125 0 R (HD.8010) 9007 0 R (HD.8011) 9012 0 R (HD.8012) 9013 0 R (HD.8013) 9014 0 R (HD.8014) 9015 0 R (HD.8015) 9016 0 R (HD.8016) 9017 0 R (HD.8017) 9018 0 R (HD.8018) 9019 0 R (HD.8019) 9020 0 R (HD.802) 1126 0 R (HD.8020) 9021 0 R (HD.8021) 9022 0 R (HD.8022) 9023 0 R (HD.8023) 9024 0 R (HD.8024) 9025 0 R (HD.8025) 9026 0 R (HD.8026) 9027 0 R (HD.8027) 9028 0 R (HD.8028) 9029 0 R (HD.8029) 9030 0 R (HD.803) 1127 0 R (HD.8030) 9031 0 R (HD.8031) 9032 0 R (HD.8032) 9033 0 R (HD.8033) 9034 0 R (HD.8034) 9035 0 R ] /Limits [ (HD.8006) (HD.8034) ] >>
-endobj
-11960 0 obj
-<< /Names [ (HD.8035) 9036 0 R (HD.8036) 9037 0 R (HD.8037) 9038 0 R (HD.8038) 9039 0 R (HD.8039) 9040 0 R (HD.804) 1128 0 R (HD.8040) 9041 0 R (HD.8041) 9042 0 R (HD.8042) 9043 0 R (HD.8043) 9044 0 R (HD.8044) 9045 0 R (HD.8045) 9046 0 R (HD.8046) 9047 0 R (HD.8047) 9048 0 R (HD.8048) 9049 0 R (HD.8049) 9050 0 R (HD.805) 1129 0 R (HD.8050) 9051 0 R (HD.8051) 9052 0 R (HD.8052) 9053 0 R (HD.8053) 9054 0 R (HD.8054) 9055 0 R (HD.8055) 9056 0 R (HD.8056) 9057 0 R (HD.8057) 9058 0 R (HD.8058) 9059 0 R (HD.8059) 9060 0 R (HD.806) 1130 0 R (HD.8060) 9061 0 R (HD.8061) 9062 0 R (HD.8062) 9063 0 R (HD.8063) 9064 0 R ] /Limits [ (HD.8035) (HD.8063) ] >>
-endobj
-11961 0 obj
-<< /Names [ (HD.8064) 9065 0 R (HD.8065) 9066 0 R (HD.8066) 9067 0 R (HD.8067) 9068 0 R (HD.8068) 9073 0 R (HD.8069) 9074 0 R (HD.807) 1131 0 R (HD.8070) 9075 0 R (HD.8071) 9076 0 R (HD.8072) 9077 0 R (HD.8073) 9078 0 R (HD.8074) 9079 0 R (HD.8075) 9080 0 R (HD.8076) 9081 0 R (HD.8077) 9082 0 R (HD.8078) 9083 0 R (HD.8079) 9084 0 R (HD.808) 1132 0 R (HD.8080) 9085 0 R (HD.8081) 9086 0 R (HD.8082) 9087 0 R (HD.8083) 9088 0 R (HD.8084) 9089 0 R (HD.8085) 9090 0 R (HD.8086) 9091 0 R (HD.8087) 9092 0 R (HD.8088) 9093 0 R (HD.8089) 9094 0 R (HD.809) 1133 0 R (HD.8090) 9095 0 R (HD.8091) 9096 0 R (HD.8092) 9097 0 R ] /Limits [ (HD.8064) (HD.8092) ] >>
-endobj
-11962 0 obj
-<< /Names [ (HD.8093) 9098 0 R (HD.8094) 9099 0 R (HD.8095) 9100 0 R (HD.8096) 9101 0 R (HD.8097) 9102 0 R (HD.8098) 9103 0 R (HD.8099) 9104 0 R (HD.81) 281 0 R (HD.810) 1134 0 R (HD.8100) 9105 0 R (HD.8101) 9106 0 R (HD.8102) 9107 0 R (HD.8103) 9108 0 R (HD.8104) 9109 0 R (HD.8105) 9110 0 R (HD.8106) 9111 0 R (HD.8107) 9112 0 R (HD.8108) 9113 0 R (HD.8109) 9114 0 R (HD.811) 1135 0 R (HD.8110) 9115 0 R (HD.8111) 9116 0 R (HD.8112) 9117 0 R (HD.8113) 9118 0 R (HD.8114) 9119 0 R (HD.8115) 9120 0 R (HD.8116) 9121 0 R (HD.8117) 9122 0 R (HD.8118) 9123 0 R (HD.8119) 9124 0 R (HD.812) 1136 0 R (HD.8120) 9125 0 R ] /Limits [ (HD.8093) (HD.8120) ] >>
-endobj
-11963 0 obj
-<< /Names [ (HD.8121) 9126 0 R (HD.8122) 9127 0 R (HD.8123) 9128 0 R (HD.8124) 9129 0 R (HD.8125) 9130 0 R (HD.8126) 9135 0 R (HD.8127) 9136 0 R (HD.8128) 9137 0 R (HD.8129) 9138 0 R (HD.813) 1137 0 R (HD.8130) 9139 0 R (HD.8131) 9140 0 R (HD.8132) 9141 0 R (HD.8133) 9142 0 R (HD.8134) 9143 0 R (HD.8135) 9144 0 R (HD.8136) 9145 0 R (HD.8137) 9146 0 R (HD.8138) 9147 0 R (HD.8139) 9148 0 R (HD.814) 1138 0 R (HD.8140) 9149 0 R (HD.8141) 9150 0 R (HD.8142) 9151 0 R (HD.8143) 9152 0 R (HD.8144) 9153 0 R (HD.8145) 9154 0 R (HD.8146) 9155 0 R (HD.8147) 9156 0 R (HD.8148) 9157 0 R (HD.8149) 9158 0 R (HD.815) 1139 0 R ] /Limits [ (HD.8121) (HD.815) ] >>
-endobj
-11964 0 obj
-<< /Names [ (HD.8150) 9159 0 R (HD.8151) 9160 0 R (HD.8152) 9161 0 R (HD.8153) 9162 0 R (HD.8154) 9163 0 R (HD.8155) 9164 0 R (HD.8156) 9165 0 R (HD.8157) 9166 0 R (HD.8158) 9167 0 R (HD.8159) 9168 0 R (HD.816) 1140 0 R (HD.8160) 9169 0 R (HD.8161) 9170 0 R (HD.8162) 9171 0 R (HD.8163) 9172 0 R (HD.8164) 9173 0 R (HD.8165) 9174 0 R (HD.8166) 9175 0 R (HD.8167) 9176 0 R (HD.8168) 9177 0 R (HD.8169) 9178 0 R (HD.817) 1141 0 R (HD.8170) 9179 0 R (HD.8171) 9180 0 R (HD.8172) 9181 0 R (HD.8173) 9182 0 R (HD.8174) 9183 0 R (HD.8175) 9184 0 R (HD.8176) 9185 0 R (HD.8177) 9186 0 R (HD.8178) 9187 0 R (HD.8179) 9188 0 R ] /Limits [ (HD.8150) (HD.8179) ] >>
-endobj
-11965 0 obj
-<< /Names [ (HD.818) 1142 0 R (HD.8180) 9193 0 R (HD.8181) 9194 0 R (HD.8182) 9195 0 R (HD.8183) 9196 0 R (HD.8184) 9197 0 R (HD.8185) 9198 0 R (HD.8186) 9199 0 R (HD.8187) 9200 0 R (HD.8188) 9201 0 R (HD.8189) 9202 0 R (HD.819) 1147 0 R (HD.8190) 9203 0 R (HD.8191) 9204 0 R (HD.8192) 9205 0 R (HD.8193) 9206 0 R (HD.8194) 9207 0 R (HD.8195) 9208 0 R (HD.8196) 9209 0 R (HD.8197) 9210 0 R (HD.8198) 9211 0 R (HD.8199) 9212 0 R (HD.82) 282 0 R (HD.820) 1148 0 R (HD.8200) 9213 0 R (HD.8201) 9214 0 R (HD.8202) 9215 0 R (HD.8203) 9216 0 R (HD.8204) 9217 0 R (HD.8205) 9218 0 R (HD.8206) 9219 0 R (HD.8207) 9220 0 R ] /Limits [ (HD.818) (HD.8207) ] >>
-endobj
-11966 0 obj
-<< /Names [ (HD.8208) 9221 0 R (HD.8209) 9222 0 R (HD.821) 1149 0 R (HD.8210) 9223 0 R (HD.8211) 9224 0 R (HD.8212) 9225 0 R (HD.8213) 9226 0 R (HD.8214) 9227 0 R (HD.8215) 9228 0 R (HD.8216) 9229 0 R (HD.8217) 9230 0 R (HD.8218) 9231 0 R (HD.8219) 9232 0 R (HD.822) 1150 0 R (HD.8220) 9233 0 R (HD.8221) 9234 0 R (HD.8222) 9235 0 R (HD.8223) 9236 0 R (HD.8224) 9237 0 R (HD.8225) 9238 0 R (HD.8226) 9239 0 R (HD.8227) 9240 0 R (HD.8228) 9241 0 R (HD.8229) 9246 0 R (HD.823) 1151 0 R (HD.8230) 9247 0 R (HD.8231) 9248 0 R (HD.8232) 9249 0 R (HD.8233) 9250 0 R (HD.8234) 9251 0 R (HD.8235) 9252 0 R (HD.8236) 9253 0 R ] /Limits [ (HD.8208) (HD.8236) ] >>
-endobj
-11967 0 obj
-<< /Names [ (HD.8237) 9254 0 R (HD.8238) 9255 0 R (HD.8239) 9256 0 R (HD.824) 1152 0 R (HD.8240) 9257 0 R (HD.8241) 9258 0 R (HD.8242) 9259 0 R (HD.8243) 9260 0 R (HD.8244) 9261 0 R (HD.8245) 9262 0 R (HD.8246) 9263 0 R (HD.8247) 9264 0 R (HD.8248) 9265 0 R (HD.8249) 9266 0 R (HD.825) 1153 0 R (HD.8250) 9267 0 R (HD.8251) 9268 0 R (HD.8252) 9269 0 R (HD.8253) 9270 0 R (HD.8254) 9271 0 R (HD.8255) 9272 0 R (HD.8256) 9273 0 R (HD.8257) 9274 0 R (HD.8258) 9275 0 R (HD.8259) 9276 0 R (HD.826) 1154 0 R (HD.8260) 9277 0 R (HD.8261) 9278 0 R (HD.8262) 9279 0 R (HD.8263) 9280 0 R (HD.8264) 9281 0 R (HD.8265) 9282 0 R ] /Limits [ (HD.8237) (HD.8265) ] >>
-endobj
-11968 0 obj
-<< /Names [ (HD.8266) 9283 0 R (HD.8267) 9284 0 R (HD.8268) 9285 0 R (HD.8269) 9286 0 R (HD.827) 1155 0 R (HD.8270) 9287 0 R (HD.8271) 9288 0 R (HD.8272) 9289 0 R (HD.8273) 9290 0 R (HD.8274) 9291 0 R (HD.8275) 9292 0 R (HD.8276) 9293 0 R (HD.8277) 9294 0 R (HD.8278) 9295 0 R (HD.8279) 9296 0 R (HD.828) 1156 0 R (HD.8280) 9301 0 R (HD.8281) 9302 0 R (HD.8282) 9303 0 R (HD.8283) 9304 0 R (HD.8284) 9305 0 R (HD.8285) 9306 0 R (HD.8286) 9307 0 R (HD.8287) 9308 0 R (HD.8288) 9309 0 R (HD.8289) 9310 0 R (HD.829) 1157 0 R (HD.8290) 9311 0 R (HD.8291) 9312 0 R (HD.8292) 9313 0 R (HD.8293) 9314 0 R (HD.8294) 9315 0 R ] /Limits [ (HD.8266) (HD.8294) ] >>
-endobj
-11969 0 obj
-<< /Names [ (HD.8295) 9316 0 R (HD.8296) 9317 0 R (HD.8297) 9318 0 R (HD.8298) 9319 0 R (HD.8299) 9320 0 R (HD.83) 283 0 R (HD.830) 1158 0 R (HD.8300) 9321 0 R (HD.8301) 9322 0 R (HD.8302) 9323 0 R (HD.8303) 9324 0 R (HD.8304) 9325 0 R (HD.8305) 9326 0 R (HD.8306) 9327 0 R (HD.8307) 9328 0 R (HD.8308) 9329 0 R (HD.8309) 9330 0 R (HD.831) 1159 0 R (HD.8310) 9331 0 R (HD.8311) 9332 0 R (HD.8312) 9333 0 R (HD.8313) 9334 0 R (HD.8314) 9335 0 R (HD.8315) 9336 0 R (HD.8316) 9337 0 R (HD.8317) 9338 0 R (HD.8318) 9339 0 R (HD.8319) 9344 0 R (HD.832) 1160 0 R (HD.8320) 9345 0 R (HD.8321) 9346 0 R (HD.8322) 9347 0 R ] /Limits [ (HD.8295) (HD.8322) ] >>
-endobj
-11970 0 obj
-<< /Names [ (HD.8323) 9348 0 R (HD.8324) 9349 0 R (HD.8325) 9350 0 R (HD.8326) 9351 0 R (HD.8327) 9352 0 R (HD.8328) 9353 0 R (HD.8329) 9354 0 R (HD.833) 1161 0 R (HD.8330) 9355 0 R (HD.8331) 9356 0 R (HD.8332) 9357 0 R (HD.8333) 9358 0 R (HD.8334) 9359 0 R (HD.8335) 9360 0 R (HD.8336) 9361 0 R (HD.8337) 9362 0 R (HD.8338) 9363 0 R (HD.8339) 9364 0 R (HD.834) 1162 0 R (HD.8340) 9365 0 R (HD.8341) 9366 0 R (HD.8342) 9367 0 R (HD.8343) 9368 0 R (HD.8344) 9369 0 R (HD.8345) 9370 0 R (HD.8346) 9371 0 R (HD.8347) 9372 0 R (HD.8348) 9373 0 R (HD.8349) 9374 0 R (HD.835) 1163 0 R (HD.8350) 9375 0 R (HD.8351) 9376 0 R ] /Limits [ (HD.8323) (HD.8351) ] >>
-endobj
-11971 0 obj
-<< /Names [ (HD.8352) 9377 0 R (HD.8353) 9378 0 R (HD.8354) 9379 0 R (HD.8355) 9380 0 R (HD.8356) 9381 0 R (HD.8357) 9382 0 R (HD.8358) 9383 0 R (HD.8359) 9384 0 R (HD.836) 1164 0 R (HD.8360) 9385 0 R (HD.8361) 9386 0 R (HD.8362) 9387 0 R (HD.8363) 9393 0 R (HD.8364) 9394 0 R (HD.8365) 9395 0 R (HD.8366) 9396 0 R (HD.8367) 9397 0 R (HD.8368) 9398 0 R (HD.8369) 9399 0 R (HD.837) 1165 0 R (HD.8370) 9400 0 R (HD.8371) 9401 0 R (HD.8372) 9402 0 R (HD.8373) 9403 0 R (HD.8374) 9404 0 R (HD.8375) 9405 0 R (HD.8376) 9406 0 R (HD.8377) 9407 0 R (HD.8378) 9408 0 R (HD.8379) 9409 0 R (HD.838) 1166 0 R (HD.8380) 9410 0 R ] /Limits [ (HD.8352) (HD.8380) ] >>
-endobj
-11972 0 obj
-<< /Names [ (HD.8381) 9411 0 R (HD.8382) 9412 0 R (HD.8383) 9413 0 R (HD.8384) 9414 0 R (HD.8385) 9415 0 R (HD.8386) 9416 0 R (HD.8387) 9417 0 R (HD.8388) 9418 0 R (HD.8389) 9419 0 R (HD.839) 1167 0 R (HD.8390) 9420 0 R (HD.8391) 9421 0 R (HD.8392) 9422 0 R (HD.8393) 9423 0 R (HD.8394) 9430 0 R (HD.8395) 9431 0 R (HD.8396) 9432 0 R (HD.8397) 9433 0 R (HD.8398) 9434 0 R (HD.8399) 9435 0 R (HD.84) 284 0 R (HD.840) 1168 0 R (HD.8400) 9436 0 R (HD.8401) 9437 0 R (HD.8402) 9438 0 R (HD.8403) 9439 0 R (HD.8404) 9440 0 R (HD.8405) 9441 0 R (HD.8406) 9442 0 R (HD.8407) 9443 0 R (HD.8408) 9444 0 R (HD.8409) 9445 0 R ] /Limits [ (HD.8381) (HD.8409) ] >>
-endobj
-11973 0 obj
-<< /Names [ (HD.841) 1169 0 R (HD.8410) 9446 0 R (HD.8411) 9447 0 R (HD.8412) 9448 0 R (HD.8413) 9449 0 R (HD.8414) 9450 0 R (HD.8415) 9451 0 R (HD.8416) 9452 0 R (HD.8417) 9453 0 R (HD.8418) 9454 0 R (HD.8419) 9455 0 R (HD.842) 1170 0 R (HD.8420) 9456 0 R (HD.8421) 9457 0 R (HD.8422) 9458 0 R (HD.8423) 9459 0 R (HD.8424) 9460 0 R (HD.8425) 9461 0 R (HD.8426) 9462 0 R (HD.8427) 9463 0 R (HD.8428) 9464 0 R (HD.8429) 9465 0 R (HD.843) 1171 0 R (HD.8430) 9466 0 R (HD.8431) 9467 0 R (HD.8432) 9468 0 R (HD.8433) 9469 0 R (HD.8434) 9474 0 R (HD.8435) 9475 0 R (HD.8436) 9476 0 R (HD.8437) 9477 0 R (HD.8438) 9478 0 R ] /Limits [ (HD.841) (HD.8438) ] >>
-endobj
-11974 0 obj
-<< /Names [ (HD.8439) 9479 0 R (HD.844) 1172 0 R (HD.8440) 9480 0 R (HD.8441) 9481 0 R (HD.8442) 9482 0 R (HD.8443) 9483 0 R (HD.8444) 9484 0 R (HD.8445) 9485 0 R (HD.8446) 9486 0 R (HD.8447) 9487 0 R (HD.8448) 9488 0 R (HD.8449) 9489 0 R (HD.845) 1173 0 R (HD.8450) 9490 0 R (HD.8451) 9491 0 R (HD.8452) 9492 0 R (HD.8453) 9493 0 R (HD.8454) 9494 0 R (HD.8455) 9495 0 R (HD.8456) 9496 0 R (HD.8457) 9497 0 R (HD.8458) 9498 0 R (HD.8459) 9499 0 R (HD.846) 1174 0 R (HD.8460) 9500 0 R (HD.8461) 9501 0 R (HD.8462) 9502 0 R (HD.8463) 9503 0 R (HD.8464) 9504 0 R (HD.8465) 9505 0 R (HD.8466) 9506 0 R (HD.8467) 9507 0 R ] /Limits [ (HD.8439) (HD.8467) ] >>
-endobj
-11975 0 obj
-<< /Names [ (HD.8468) 9508 0 R (HD.8469) 9509 0 R (HD.847) 1175 0 R (HD.8470) 9510 0 R (HD.8471) 9511 0 R (HD.8472) 9512 0 R (HD.8473) 9513 0 R (HD.8474) 9514 0 R (HD.8475) 9515 0 R (HD.8476) 9516 0 R (HD.8477) 9517 0 R (HD.8478) 9518 0 R (HD.8479) 9519 0 R (HD.848) 1176 0 R (HD.8480) 9520 0 R (HD.8481) 9521 0 R (HD.8482) 9522 0 R (HD.8483) 9523 0 R (HD.8484) 9524 0 R (HD.8485) 9525 0 R (HD.8486) 9526 0 R (HD.8487) 9527 0 R (HD.8488) 9532 0 R (HD.8489) 9533 0 R (HD.849) 1177 0 R (HD.8490) 9534 0 R (HD.8491) 9535 0 R (HD.8492) 9536 0 R (HD.8493) 9537 0 R (HD.8494) 9538 0 R (HD.8495) 9539 0 R (HD.8496) 9540 0 R ] /Limits [ (HD.8468) (HD.8496) ] >>
-endobj
-11976 0 obj
-<< /Names [ (HD.8497) 9541 0 R (HD.8498) 9542 0 R (HD.8499) 9543 0 R (HD.85) 285 0 R (HD.850) 1178 0 R (HD.8500) 9544 0 R (HD.8501) 9545 0 R (HD.8502) 9546 0 R (HD.8503) 9547 0 R (HD.8504) 9548 0 R (HD.8505) 9549 0 R (HD.8506) 9550 0 R (HD.8507) 9551 0 R (HD.8508) 9552 0 R (HD.8509) 9553 0 R (HD.851) 1179 0 R (HD.8510) 9554 0 R (HD.8511) 9555 0 R (HD.8512) 9556 0 R (HD.8513) 9557 0 R (HD.8514) 9558 0 R (HD.8515) 9559 0 R (HD.8516) 9560 0 R (HD.8517) 9561 0 R (HD.8518) 9562 0 R (HD.8519) 9563 0 R (HD.852) 1180 0 R (HD.8520) 9564 0 R (HD.8521) 9565 0 R (HD.8522) 9566 0 R (HD.8523) 9567 0 R (HD.8524) 9568 0 R ] /Limits [ (HD.8497) (HD.8524) ] >>
-endobj
-11977 0 obj
-<< /Names [ (HD.8525) 9569 0 R (HD.8526) 9570 0 R (HD.8527) 9571 0 R (HD.8528) 9572 0 R (HD.8529) 9573 0 R (HD.853) 1181 0 R (HD.8530) 9574 0 R (HD.8531) 9575 0 R (HD.8532) 9576 0 R (HD.8533) 9577 0 R (HD.8534) 9578 0 R (HD.8535) 9579 0 R (HD.8536) 9580 0 R (HD.8537) 9581 0 R (HD.8538) 9582 0 R (HD.8539) 9583 0 R (HD.854) 1182 0 R (HD.8540) 9584 0 R (HD.8541) 9585 0 R (HD.8542) 9586 0 R (HD.8543) 9591 0 R (HD.8544) 9592 0 R (HD.8545) 9593 0 R (HD.8546) 9594 0 R (HD.8547) 9595 0 R (HD.8548) 9596 0 R (HD.8549) 9597 0 R (HD.855) 1183 0 R (HD.8550) 9598 0 R (HD.8551) 9599 0 R (HD.8552) 9600 0 R (HD.8553) 9601 0 R ] /Limits [ (HD.8525) (HD.8553) ] >>
-endobj
-11978 0 obj
-<< /Names [ (HD.8554) 9602 0 R (HD.8555) 9603 0 R (HD.8556) 9604 0 R (HD.8557) 9605 0 R (HD.8558) 9606 0 R (HD.8559) 9607 0 R (HD.856) 1184 0 R (HD.8560) 9608 0 R (HD.8561) 9609 0 R (HD.8562) 9610 0 R (HD.8563) 9611 0 R (HD.8564) 9612 0 R (HD.8565) 9613 0 R (HD.8566) 9614 0 R (HD.8567) 9615 0 R (HD.8568) 9616 0 R (HD.8569) 9617 0 R (HD.857) 1185 0 R (HD.8570) 9618 0 R (HD.8571) 9619 0 R (HD.8572) 9620 0 R (HD.8573) 9621 0 R (HD.8574) 9622 0 R (HD.8575) 9623 0 R (HD.8576) 9624 0 R (HD.8577) 9625 0 R (HD.8578) 9626 0 R (HD.8579) 9627 0 R (HD.858) 1186 0 R (HD.8580) 9628 0 R (HD.8581) 9629 0 R (HD.8582) 9630 0 R ] /Limits [ (HD.8554) (HD.8582) ] >>
-endobj
-11979 0 obj
-<< /Names [ (HD.8583) 9631 0 R (HD.8584) 9632 0 R (HD.8585) 9633 0 R (HD.8586) 9634 0 R (HD.8587) 9639 0 R (HD.8588) 9640 0 R (HD.8589) 9641 0 R (HD.859) 1187 0 R (HD.8590) 9642 0 R (HD.8591) 9643 0 R (HD.8592) 9644 0 R (HD.8593) 9645 0 R (HD.8594) 9646 0 R (HD.8595) 9647 0 R (HD.8596) 9648 0 R (HD.8597) 9649 0 R (HD.8598) 9650 0 R (HD.8599) 9651 0 R (HD.86) 286 0 R (HD.860) 1188 0 R (HD.8600) 9652 0 R (HD.8601) 9653 0 R (HD.8602) 9654 0 R (HD.8603) 9655 0 R (HD.8604) 9656 0 R (HD.8605) 9657 0 R (HD.8606) 9658 0 R (HD.8607) 9659 0 R (HD.8608) 9660 0 R (HD.8609) 9661 0 R (HD.861) 1189 0 R (HD.8610) 9662 0 R ] /Limits [ (HD.8583) (HD.8610) ] >>
-endobj
-11980 0 obj
-<< /Names [ (HD.8611) 9663 0 R (HD.8612) 9664 0 R (HD.8613) 9665 0 R (HD.8614) 9666 0 R (HD.8615) 9667 0 R (HD.8616) 9668 0 R (HD.8617) 9669 0 R (HD.8618) 9670 0 R (HD.8619) 9671 0 R (HD.862) 1190 0 R (HD.8620) 9672 0 R (HD.8621) 9673 0 R (HD.8622) 9674 0 R (HD.8623) 9675 0 R (HD.8624) 9676 0 R (HD.8625) 9677 0 R (HD.8626) 9678 0 R (HD.8627) 9679 0 R (HD.8628) 9680 0 R (HD.8629) 9681 0 R (HD.863) 1191 0 R (HD.8630) 9682 0 R (HD.8631) 9683 0 R (HD.8632) 9684 0 R (HD.8633) 9685 0 R (HD.8634) 9686 0 R (HD.8635) 9687 0 R (HD.8636) 9688 0 R (HD.8637) 9689 0 R (HD.8638) 9690 0 R (HD.8639) 9691 0 R (HD.864) 1192 0 R ] /Limits [ (HD.8611) (HD.864) ] >>
-endobj
-11981 0 obj
-<< /Names [ (HD.8640) 9692 0 R (HD.8641) 9693 0 R (HD.8642) 9694 0 R (HD.8643) 9695 0 R (HD.8644) 9696 0 R (HD.8645) 9697 0 R (HD.8646) 9702 0 R (HD.8647) 9703 0 R (HD.8648) 9704 0 R (HD.8649) 9705 0 R (HD.865) 1193 0 R (HD.8650) 9706 0 R (HD.8651) 9707 0 R (HD.8652) 9708 0 R (HD.8653) 9709 0 R (HD.8654) 9710 0 R (HD.8655) 9711 0 R (HD.8656) 9712 0 R (HD.8657) 9713 0 R (HD.8658) 9714 0 R (HD.8659) 9715 0 R (HD.866) 1194 0 R (HD.8660) 9716 0 R (HD.8661) 9717 0 R (HD.8662) 9718 0 R (HD.8663) 9719 0 R (HD.8664) 9720 0 R (HD.8665) 9721 0 R (HD.8666) 9722 0 R (HD.8667) 9723 0 R (HD.8668) 9724 0 R (HD.8669) 9725 0 R ] /Limits [ (HD.8640) (HD.8669) ] >>
-endobj
-11982 0 obj
-<< /Names [ (HD.867) 1195 0 R (HD.8670) 9726 0 R (HD.8671) 9727 0 R (HD.8672) 9728 0 R (HD.8673) 9729 0 R (HD.8674) 9730 0 R (HD.8675) 9731 0 R (HD.8676) 9732 0 R (HD.8677) 9733 0 R (HD.8678) 9734 0 R (HD.8679) 9735 0 R (HD.868) 1196 0 R (HD.8680) 9736 0 R (HD.8681) 9737 0 R (HD.8682) 9738 0 R (HD.8683) 9739 0 R (HD.8684) 9740 0 R (HD.8685) 9741 0 R (HD.8686) 9742 0 R (HD.8687) 9743 0 R (HD.8688) 9744 0 R (HD.8689) 9745 0 R (HD.869) 1201 0 R (HD.8690) 9746 0 R (HD.8691) 9747 0 R (HD.8692) 9748 0 R (HD.8693) 9749 0 R (HD.8694) 9750 0 R (HD.8695) 9755 0 R (HD.8696) 9756 0 R (HD.8697) 9757 0 R (HD.8698) 9758 0 R ] /Limits [ (HD.867) (HD.8698) ] >>
-endobj
-11983 0 obj
-<< /Names [ (HD.8699) 9759 0 R (HD.87) 287 0 R (HD.870) 1202 0 R (HD.8700) 9760 0 R (HD.8701) 9761 0 R (HD.8702) 9762 0 R (HD.8703) 9763 0 R (HD.8704) 9764 0 R (HD.8705) 9765 0 R (HD.8706) 9766 0 R (HD.8707) 9767 0 R (HD.8708) 9768 0 R (HD.8709) 9769 0 R (HD.871) 1203 0 R (HD.8710) 9770 0 R (HD.8711) 9771 0 R (HD.8712) 9772 0 R (HD.8713) 9773 0 R (HD.8714) 9774 0 R (HD.8715) 9775 0 R (HD.8716) 9776 0 R (HD.8717) 9777 0 R (HD.8718) 9778 0 R (HD.8719) 9779 0 R (HD.872) 1204 0 R (HD.8720) 9780 0 R (HD.8721) 9781 0 R (HD.8722) 9782 0 R (HD.8723) 9783 0 R (HD.8724) 9784 0 R (HD.8725) 9785 0 R (HD.8726) 9786 0 R ] /Limits [ (HD.8699) (HD.8726) ] >>
-endobj
-11984 0 obj
-<< /Names [ (HD.8727) 9787 0 R (HD.8728) 9788 0 R (HD.8729) 9789 0 R (HD.873) 1205 0 R (HD.8730) 9790 0 R (HD.8731) 9791 0 R (HD.8732) 9792 0 R (HD.8733) 9793 0 R (HD.8734) 9794 0 R (HD.8735) 9795 0 R (HD.8736) 9796 0 R (HD.8737) 9797 0 R (HD.8738) 9798 0 R (HD.8739) 9799 0 R (HD.874) 1206 0 R (HD.8740) 9800 0 R (HD.8741) 9801 0 R (HD.8742) 9802 0 R (HD.8743) 9803 0 R (HD.8744) 9804 0 R (HD.8745) 9805 0 R (HD.8746) 9810 0 R (HD.8747) 9811 0 R (HD.8748) 9812 0 R (HD.8749) 9813 0 R (HD.875) 1207 0 R (HD.8750) 9814 0 R (HD.8751) 9815 0 R (HD.8752) 9816 0 R (HD.8753) 9817 0 R (HD.8754) 9818 0 R (HD.8755) 9819 0 R ] /Limits [ (HD.8727) (HD.8755) ] >>
-endobj
-11985 0 obj
-<< /Names [ (HD.8756) 9820 0 R (HD.8757) 9821 0 R (HD.8758) 9822 0 R (HD.8759) 9823 0 R (HD.876) 1208 0 R (HD.8760) 9824 0 R (HD.8761) 9825 0 R (HD.8762) 9826 0 R (HD.8763) 9827 0 R (HD.8764) 9828 0 R (HD.8765) 9829 0 R (HD.8766) 9830 0 R (HD.8767) 9831 0 R (HD.8768) 9832 0 R (HD.8769) 9833 0 R (HD.877) 1209 0 R (HD.8770) 9834 0 R (HD.8771) 9835 0 R (HD.8772) 9836 0 R (HD.8773) 9837 0 R (HD.8774) 9838 0 R (HD.8775) 9839 0 R (HD.8776) 9840 0 R (HD.8777) 9841 0 R (HD.8778) 9842 0 R (HD.8779) 9843 0 R (HD.878) 1210 0 R (HD.8780) 9844 0 R (HD.8781) 9849 0 R (HD.8782) 9850 0 R (HD.8783) 9851 0 R (HD.8784) 9852 0 R ] /Limits [ (HD.8756) (HD.8784) ] >>
-endobj
-11986 0 obj
-<< /Names [ (HD.8785) 9853 0 R (HD.8786) 9854 0 R (HD.8787) 9855 0 R (HD.8788) 9856 0 R (HD.8789) 9857 0 R (HD.879) 1211 0 R (HD.8790) 9858 0 R (HD.8791) 9859 0 R (HD.8792) 9860 0 R (HD.8793) 9861 0 R (HD.8794) 9862 0 R (HD.8795) 9863 0 R (HD.8796) 9864 0 R (HD.8797) 9865 0 R (HD.8798) 9866 0 R (HD.8799) 9867 0 R (HD.88) 288 0 R (HD.880) 1212 0 R (HD.8800) 9868 0 R (HD.8801) 9869 0 R (HD.8802) 9870 0 R (HD.8803) 9871 0 R (HD.8804) 9872 0 R (HD.8805) 9873 0 R (HD.8806) 9874 0 R (HD.8807) 9875 0 R (HD.8808) 9876 0 R (HD.8809) 9877 0 R (HD.881) 1213 0 R (HD.8810) 9878 0 R (HD.8811) 9879 0 R (HD.8812) 9880 0 R ] /Limits [ (HD.8785) (HD.8812) ] >>
-endobj
-11987 0 obj
-<< /Names [ (HD.8813) 9881 0 R (HD.8814) 9882 0 R (HD.8815) 9883 0 R (HD.8816) 9884 0 R (HD.8817) 9885 0 R (HD.8818) 9886 0 R (HD.8819) 9887 0 R (HD.882) 1214 0 R (HD.8820) 9888 0 R (HD.8821) 9889 0 R (HD.8822) 9890 0 R (HD.8823) 9891 0 R (HD.8824) 9892 0 R (HD.8825) 9893 0 R (HD.8826) 9894 0 R (HD.8827) 9899 0 R (HD.8828) 9900 0 R (HD.8829) 9901 0 R (HD.883) 1215 0 R (HD.8830) 9902 0 R (HD.8831) 9903 0 R (HD.8832) 9904 0 R (HD.8833) 9905 0 R (HD.8834) 9906 0 R (HD.8835) 9907 0 R (HD.8836) 9908 0 R (HD.8837) 9909 0 R (HD.8838) 9910 0 R (HD.8839) 9911 0 R (HD.884) 1216 0 R (HD.8840) 9912 0 R (HD.8841) 9913 0 R ] /Limits [ (HD.8813) (HD.8841) ] >>
-endobj
-11988 0 obj
-<< /Names [ (HD.8842) 9914 0 R (HD.8843) 9915 0 R (HD.8844) 9916 0 R (HD.8845) 9917 0 R (HD.8846) 9918 0 R (HD.8847) 9919 0 R (HD.8848) 9920 0 R (HD.8849) 9921 0 R (HD.885) 1217 0 R (HD.8850) 9922 0 R (HD.8851) 9923 0 R (HD.8852) 9924 0 R (HD.8853) 9925 0 R (HD.8854) 9926 0 R (HD.8855) 9927 0 R (HD.8856) 9928 0 R (HD.8857) 9929 0 R (HD.8858) 9930 0 R (HD.8859) 9931 0 R (HD.886) 1218 0 R (HD.8860) 9932 0 R (HD.8861) 9933 0 R (HD.8862) 9934 0 R (HD.8863) 9935 0 R (HD.8864) 9936 0 R (HD.8865) 9937 0 R (HD.8866) 9938 0 R (HD.8867) 9939 0 R (HD.8868) 9940 0 R (HD.8869) 9941 0 R (HD.887) 1219 0 R (HD.8870) 9942 0 R ] /Limits [ (HD.8842) (HD.8870) ] >>
-endobj
-11989 0 obj
-<< /Names [ (HD.8871) 9943 0 R (HD.8872) 9944 0 R (HD.8873) 9945 0 R (HD.8874) 9946 0 R (HD.8875) 9947 0 R (HD.8876) 9953 0 R (HD.8877) 9954 0 R (HD.8878) 9955 0 R (HD.8879) 9956 0 R (HD.888) 1220 0 R (HD.8880) 9957 0 R (HD.8881) 9958 0 R (HD.8882) 9959 0 R (HD.8883) 9960 0 R (HD.8884) 9961 0 R (HD.8885) 9962 0 R (HD.8886) 9963 0 R (HD.8887) 9964 0 R (HD.8888) 9965 0 R (HD.8889) 9966 0 R (HD.889) 1221 0 R (HD.8890) 9967 0 R (HD.8891) 9968 0 R (HD.8892) 9969 0 R (HD.8893) 9970 0 R (HD.8894) 9971 0 R (HD.8895) 9972 0 R (HD.8896) 9973 0 R (HD.8897) 9974 0 R (HD.8898) 9975 0 R (HD.8899) 9976 0 R (HD.89) 289 0 R ] /Limits [ (HD.8871) (HD.89) ] >>
-endobj
-11990 0 obj
-<< /Names [ (HD.890) 1222 0 R (HD.8900) 9977 0 R (HD.8901) 9978 0 R (HD.8902) 9979 0 R (HD.8903) 9980 0 R (HD.8904) 9981 0 R (HD.8905) 9982 0 R (HD.8906) 9983 0 R (HD.8907) 9984 0 R (HD.8908) 9985 0 R (HD.8909) 9986 0 R (HD.891) 1223 0 R (HD.8910) 9987 0 R (HD.8911) 9988 0 R (HD.8912) 9989 0 R (HD.8913) 9990 0 R (HD.8914) 9991 0 R (HD.8915) 9992 0 R (HD.8916) 9993 0 R (HD.8917) 9994 0 R (HD.8918) 9995 0 R (HD.8919) 9996 0 R (HD.892) 1224 0 R (HD.8920) 9997 0 R (HD.8921) 9998 0 R (HD.8922) 9999 0 R (HD.8923) 10000 0 R (HD.8924) 10001 0 R (HD.8925) 10002 0 R (HD.8926) 10003 0 R (HD.8927) 10004 0 R (HD.8928) 10005 0 R ] /Limits [ (HD.890) (HD.8928) ] >>
-endobj
-11991 0 obj
-<< /Names [ (HD.8929) 10006 0 R (HD.893) 1225 0 R (HD.8930) 10007 0 R (HD.8931) 10008 0 R (HD.8932) 10009 0 R (HD.8933) 10010 0 R (HD.8934) 10015 0 R (HD.8935) 10016 0 R (HD.8936) 10017 0 R (HD.8937) 10018 0 R (HD.8938) 10019 0 R (HD.8939) 10020 0 R (HD.894) 1226 0 R (HD.8940) 10021 0 R (HD.8941) 10022 0 R (HD.8942) 10023 0 R (HD.8943) 10024 0 R (HD.8944) 10025 0 R (HD.8945) 10026 0 R (HD.8946) 10027 0 R (HD.8947) 10028 0 R (HD.8948) 10029 0 R (HD.8949) 10030 0 R (HD.895) 1227 0 R (HD.8950) 10031 0 R (HD.8951) 10032 0 R (HD.8952) 10033 0 R (HD.8953) 10034 0 R (HD.8954) 10035 0 R (HD.8955) 10036 0 R (HD.8956) 10037 0 R (HD.8957) 10038 0 R ] /Limits [ (HD.8929) (HD.8957) ] >>
-endobj
-11992 0 obj
-<< /Names [ (HD.8958) 10039 0 R (HD.8959) 10040 0 R (HD.896) 1228 0 R (HD.8960) 10041 0 R (HD.8961) 10042 0 R (HD.8962) 10043 0 R (HD.8963) 10044 0 R (HD.8964) 10045 0 R (HD.8965) 10046 0 R (HD.8966) 10047 0 R (HD.8967) 10048 0 R (HD.8968) 10049 0 R (HD.8969) 10050 0 R (HD.897) 1229 0 R (HD.8970) 10051 0 R (HD.8971) 10052 0 R (HD.8972) 10053 0 R (HD.8973) 10054 0 R (HD.8974) 10055 0 R (HD.8975) 10056 0 R (HD.8976) 10057 0 R (HD.8977) 10058 0 R (HD.8978) 10059 0 R (HD.8979) 10060 0 R (HD.898) 1230 0 R (HD.8980) 10061 0 R (HD.8981) 10062 0 R (HD.8982) 10063 0 R (HD.8983) 10064 0 R (HD.8984) 10065 0 R (HD.8985) 10066 0 R (HD.8986) 10067 0 R ] /Limits [ (HD.8958) (HD.8986) ] >>
-endobj
-11993 0 obj
-<< /Names [ (HD.8987) 10068 0 R (HD.8988) 10069 0 R (HD.8989) 10070 0 R (HD.899) 1231 0 R (HD.8990) 10071 0 R (HD.8991) 10072 0 R (HD.8992) 10073 0 R (HD.8993) 10078 0 R (HD.8994) 10079 0 R (HD.8995) 10080 0 R (HD.8996) 10081 0 R (HD.8997) 10082 0 R (HD.8998) 10083 0 R (HD.8999) 10084 0 R (HD.9) 197 0 R (HD.90) 290 0 R (HD.900) 1232 0 R (HD.9000) 10085 0 R (HD.9001) 10086 0 R (HD.9002) 10087 0 R (HD.9003) 10088 0 R (HD.9004) 10089 0 R (HD.9005) 10090 0 R (HD.9006) 10091 0 R (HD.9007) 10092 0 R (HD.9008) 10093 0 R (HD.9009) 10094 0 R (HD.901) 1233 0 R (HD.9010) 10095 0 R (HD.9011) 10096 0 R (HD.9012) 10097 0 R (HD.9013) 10098 0 R ] /Limits [ (HD.8987) (HD.9013) ] >>
-endobj
-11994 0 obj
-<< /Names [ (HD.9014) 10099 0 R (HD.9015) 10100 0 R (HD.9016) 10101 0 R (HD.9017) 10102 0 R (HD.9018) 10103 0 R (HD.9019) 10104 0 R (HD.902) 1234 0 R (HD.9020) 10105 0 R (HD.9021) 10106 0 R (HD.9022) 10107 0 R (HD.9023) 10108 0 R (HD.9024) 10109 0 R (HD.9025) 10110 0 R (HD.9026) 10111 0 R (HD.9027) 10112 0 R (HD.9028) 10113 0 R (HD.9029) 10114 0 R (HD.903) 1235 0 R (HD.9030) 10115 0 R (HD.9031) 10116 0 R (HD.9032) 10117 0 R (HD.9033) 10118 0 R (HD.9034) 10119 0 R (HD.9035) 10120 0 R (HD.9036) 10121 0 R (HD.9037) 10122 0 R (HD.9038) 10123 0 R (HD.9039) 10124 0 R (HD.904) 1236 0 R (HD.9040) 10125 0 R (HD.9041) 10126 0 R (HD.9042) 10127 0 R ] /Limits [ (HD.9014) (HD.9042) ] >>
-endobj
-11995 0 obj
-<< /Names [ (HD.9043) 10128 0 R (HD.9044) 10129 0 R (HD.9045) 10130 0 R (HD.9046) 10131 0 R (HD.9047) 10132 0 R (HD.9048) 10133 0 R (HD.9049) 10138 0 R (HD.905) 1237 0 R (HD.9050) 10139 0 R (HD.9051) 10140 0 R (HD.9052) 10141 0 R (HD.9053) 10142 0 R (HD.9054) 10143 0 R (HD.9055) 10144 0 R (HD.9056) 10145 0 R (HD.9057) 10146 0 R (HD.9058) 10147 0 R (HD.9059) 10148 0 R (HD.906) 1238 0 R (HD.9060) 10149 0 R (HD.9061) 10150 0 R (HD.9062) 10151 0 R (HD.9063) 10152 0 R (HD.9064) 10153 0 R (HD.9065) 10154 0 R (HD.9066) 10155 0 R (HD.9067) 10156 0 R (HD.9068) 10157 0 R (HD.9069) 10158 0 R (HD.907) 1239 0 R (HD.9070) 10159 0 R (HD.9071) 10160 0 R ] /Limits [ (HD.9043) (HD.9071) ] >>
-endobj
-11996 0 obj
-<< /Names [ (HD.9072) 10161 0 R (HD.9073) 10162 0 R (HD.9074) 10163 0 R (HD.9075) 10164 0 R (HD.9076) 10165 0 R (HD.9077) 10166 0 R (HD.9078) 10167 0 R (HD.9079) 10168 0 R (HD.908) 1240 0 R (HD.9080) 10169 0 R (HD.9081) 10170 0 R (HD.9082) 10171 0 R (HD.9083) 10172 0 R (HD.9084) 10173 0 R (HD.9085) 10174 0 R (HD.9086) 10175 0 R (HD.9087) 10176 0 R (HD.9088) 10177 0 R (HD.9089) 10178 0 R (HD.909) 1241 0 R (HD.9090) 10179 0 R (HD.9091) 10180 0 R (HD.9092) 10181 0 R (HD.9093) 10182 0 R (HD.9094) 10183 0 R (HD.9095) 10184 0 R (HD.9096) 10185 0 R (HD.9097) 10186 0 R (HD.9098) 10187 0 R (HD.9099) 10188 0 R (HD.91) 291 0 R (HD.910) 1242 0 R ] /Limits [ (HD.9072) (HD.910) ] >>
-endobj
-11997 0 obj
-<< /Names [ (HD.9100) 10189 0 R (HD.9101) 10190 0 R (HD.9102) 10191 0 R (HD.9103) 10192 0 R (HD.9104) 10193 0 R (HD.9105) 10194 0 R (HD.9106) 10195 0 R (HD.9107) 10196 0 R (HD.9108) 10197 0 R (HD.9109) 10198 0 R (HD.911) 1243 0 R (HD.9110) 10203 0 R (HD.9111) 10204 0 R (HD.9112) 10205 0 R (HD.9113) 10206 0 R (HD.9114) 10207 0 R (HD.9115) 10208 0 R (HD.9116) 10209 0 R (HD.9117) 10210 0 R (HD.9118) 10211 0 R (HD.9119) 10212 0 R (HD.912) 1244 0 R (HD.9120) 10213 0 R (HD.9121) 10214 0 R (HD.9122) 10215 0 R (HD.9123) 10216 0 R (HD.9124) 10217 0 R (HD.9125) 10218 0 R (HD.9126) 10219 0 R (HD.9127) 10220 0 R (HD.9128) 10221 0 R (HD.9129) 10222 0 R ] /Limits [ (HD.9100) (HD.9129) ] >>
-endobj
-11998 0 obj
-<< /Names [ (HD.913) 1245 0 R (HD.9130) 10223 0 R (HD.9131) 10224 0 R (HD.9132) 10225 0 R (HD.9133) 10226 0 R (HD.9134) 10227 0 R (HD.9135) 10228 0 R (HD.9136) 10229 0 R (HD.9137) 10230 0 R (HD.9138) 10231 0 R (HD.9139) 10232 0 R (HD.914) 1246 0 R (HD.9140) 10233 0 R (HD.9141) 10234 0 R (HD.9142) 10235 0 R (HD.9143) 10236 0 R (HD.9144) 10237 0 R (HD.9145) 10238 0 R (HD.9146) 10239 0 R (HD.9147) 10240 0 R (HD.9148) 10241 0 R (HD.9149) 10242 0 R (HD.915) 1247 0 R (HD.9150) 10243 0 R (HD.9151) 10244 0 R (HD.9152) 10245 0 R (HD.9153) 10246 0 R (HD.9154) 10247 0 R (HD.9155) 10248 0 R (HD.9156) 10249 0 R (HD.9157) 10250 0 R (HD.9158) 10251 0 R ] /Limits [ (HD.913) (HD.9158) ] >>
-endobj
-11999 0 obj
-<< /Names [ (HD.9159) 10252 0 R (HD.916) 1248 0 R (HD.9160) 10253 0 R (HD.9161) 10254 0 R (HD.9162) 10255 0 R (HD.9163) 10256 0 R (HD.9164) 10257 0 R (HD.9165) 10258 0 R (HD.9166) 10259 0 R (HD.9167) 10260 0 R (HD.9168) 10261 0 R (HD.9169) 10266 0 R (HD.917) 1249 0 R (HD.9170) 10267 0 R (HD.9171) 10268 0 R (HD.9172) 10269 0 R (HD.9173) 10270 0 R (HD.9174) 10271 0 R (HD.9175) 10272 0 R (HD.9176) 10273 0 R (HD.9177) 10274 0 R (HD.9178) 10275 0 R (HD.9179) 10276 0 R (HD.918) 1250 0 R (HD.9180) 10277 0 R (HD.9181) 10278 0 R (HD.9182) 10279 0 R (HD.9183) 10280 0 R (HD.9184) 10281 0 R (HD.9185) 10282 0 R (HD.9186) 10283 0 R (HD.9187) 10284 0 R ] /Limits [ (HD.9159) (HD.9187) ] >>
-endobj
-12000 0 obj
-<< /Names [ (HD.9188) 10285 0 R (HD.9189) 10286 0 R (HD.919) 1251 0 R (HD.9190) 10287 0 R (HD.9191) 10288 0 R (HD.9192) 10289 0 R (HD.9193) 10290 0 R (HD.9194) 10291 0 R (HD.9195) 10292 0 R (HD.9196) 10293 0 R (HD.9197) 10294 0 R (HD.9198) 10295 0 R (HD.9199) 10296 0 R (HD.92) 292 0 R (HD.920) 1252 0 R (HD.9200) 10297 0 R (HD.9201) 10298 0 R (HD.9202) 10299 0 R (HD.9203) 10300 0 R (HD.9204) 10301 0 R (HD.9205) 10302 0 R (HD.9206) 10303 0 R (HD.9207) 10304 0 R (HD.9208) 10305 0 R (HD.9209) 10306 0 R (HD.921) 1253 0 R (HD.9210) 10307 0 R (HD.9211) 10308 0 R (HD.9212) 10309 0 R (HD.9213) 10310 0 R (HD.9214) 10311 0 R (HD.9215) 10312 0 R ] /Limits [ (HD.9188) (HD.9215) ] >>
-endobj
-12001 0 obj
-<< /Names [ (HD.9216) 10313 0 R (HD.9217) 10314 0 R (HD.9218) 10315 0 R (HD.9219) 10316 0 R (HD.922) 1254 0 R (HD.9220) 10317 0 R (HD.9221) 10318 0 R (HD.9222) 10319 0 R (HD.9223) 10320 0 R (HD.9224) 10321 0 R (HD.9225) 10322 0 R (HD.9226) 10323 0 R (HD.9227) 10324 0 R (HD.9228) 10325 0 R (HD.9229) 10326 0 R (HD.923) 1255 0 R (HD.9230) 10327 0 R (HD.9231) 10328 0 R (HD.9232) 10333 0 R (HD.9233) 10334 0 R (HD.9234) 10335 0 R (HD.9235) 10336 0 R (HD.9236) 10337 0 R (HD.9237) 10338 0 R (HD.9238) 10339 0 R (HD.9239) 10340 0 R (HD.924) 1256 0 R (HD.9240) 10341 0 R (HD.9241) 10342 0 R (HD.9242) 10343 0 R (HD.9243) 10344 0 R (HD.9244) 10345 0 R ] /Limits [ (HD.9216) (HD.9244) ] >>
-endobj
-12002 0 obj
-<< /Names [ (HD.9245) 10346 0 R (HD.9246) 10347 0 R (HD.9247) 10348 0 R (HD.9248) 10349 0 R (HD.9249) 10350 0 R (HD.925) 1257 0 R (HD.9250) 10351 0 R (HD.9251) 10352 0 R (HD.9252) 10353 0 R (HD.9253) 10354 0 R (HD.9254) 10355 0 R (HD.9255) 10356 0 R (HD.9256) 10357 0 R (HD.9257) 10358 0 R (HD.9258) 10359 0 R (HD.9259) 10360 0 R (HD.926) 1258 0 R (HD.9260) 10361 0 R (HD.9261) 10362 0 R (HD.9262) 10363 0 R (HD.9263) 10364 0 R (HD.9264) 10365 0 R (HD.9265) 10366 0 R (HD.9266) 10367 0 R (HD.9267) 10368 0 R (HD.9268) 10369 0 R (HD.9269) 10370 0 R (HD.927) 1263 0 R (HD.9270) 10371 0 R (HD.9271) 10372 0 R (HD.9272) 10373 0 R (HD.9273) 10374 0 R ] /Limits [ (HD.9245) (HD.9273) ] >>
-endobj
-12003 0 obj
-<< /Names [ (HD.9274) 10375 0 R (HD.9275) 10376 0 R (HD.9276) 10377 0 R (HD.9277) 10378 0 R (HD.9278) 10379 0 R (HD.9279) 10380 0 R (HD.928) 1264 0 R (HD.9280) 10381 0 R (HD.9281) 10386 0 R (HD.9282) 10387 0 R (HD.9283) 10388 0 R (HD.9284) 10389 0 R (HD.9285) 10390 0 R (HD.9286) 10391 0 R (HD.9287) 10392 0 R (HD.9288) 10393 0 R (HD.9289) 10394 0 R (HD.929) 1265 0 R (HD.9290) 10395 0 R (HD.9291) 10396 0 R (HD.9292) 10397 0 R (HD.9293) 10398 0 R (HD.9294) 10399 0 R (HD.9295) 10400 0 R (HD.9296) 10401 0 R (HD.9297) 10402 0 R (HD.9298) 10403 0 R (HD.9299) 10404 0 R (HD.93) 293 0 R (HD.930) 1266 0 R (HD.9300) 10405 0 R (HD.9301) 10406 0 R ] /Limits [ (HD.9274) (HD.9301) ] >>
-endobj
-12004 0 obj
-<< /Names [ (HD.9302) 10407 0 R (HD.9303) 10408 0 R (HD.9304) 10409 0 R (HD.9305) 10410 0 R (HD.9306) 10411 0 R (HD.9307) 10412 0 R (HD.9308) 10413 0 R (HD.9309) 10414 0 R (HD.931) 1267 0 R (HD.9310) 10415 0 R (HD.9311) 10416 0 R (HD.9312) 10417 0 R (HD.9313) 10418 0 R (HD.9314) 10419 0 R (HD.9315) 10420 0 R (HD.9316) 10421 0 R (HD.9317) 10422 0 R (HD.9318) 10423 0 R (HD.9319) 10424 0 R (HD.932) 1268 0 R (HD.9320) 10425 0 R (HD.9321) 10426 0 R (HD.9322) 10427 0 R (HD.9323) 10428 0 R (HD.9324) 10429 0 R (HD.9325) 10430 0 R (HD.9326) 10431 0 R (HD.9327) 10432 0 R (HD.9328) 10433 0 R (HD.9329) 10434 0 R (HD.933) 1269 0 R (HD.9330) 10435 0 R ] /Limits [ (HD.9302) (HD.9330) ] >>
-endobj
-12005 0 obj
-<< /Names [ (HD.9331) 10436 0 R (HD.9332) 10437 0 R (HD.9333) 10438 0 R (HD.9334) 10439 0 R (HD.9335) 10440 0 R (HD.9336) 10441 0 R (HD.9337) 10442 0 R (HD.9338) 10447 0 R (HD.9339) 10448 0 R (HD.934) 1270 0 R (HD.9340) 10449 0 R (HD.9341) 10450 0 R (HD.9342) 10451 0 R (HD.9343) 10452 0 R (HD.9344) 10453 0 R (HD.9345) 10454 0 R (HD.9346) 10455 0 R (HD.9347) 10456 0 R (HD.9348) 10457 0 R (HD.9349) 10458 0 R (HD.935) 1271 0 R (HD.9350) 10459 0 R (HD.9351) 10460 0 R (HD.9352) 10461 0 R (HD.9353) 10462 0 R (HD.9354) 10463 0 R (HD.9355) 10464 0 R (HD.9356) 10465 0 R (HD.9357) 10466 0 R (HD.9358) 10467 0 R (HD.9359) 10468 0 R (HD.936) 1272 0 R ] /Limits [ (HD.9331) (HD.936) ] >>
-endobj
-12006 0 obj
-<< /Names [ (HD.9360) 10469 0 R (HD.9361) 10470 0 R (HD.9362) 10471 0 R (HD.9363) 10472 0 R (HD.9364) 10473 0 R (HD.9365) 10474 0 R (HD.9366) 10475 0 R (HD.9367) 10476 0 R (HD.9368) 10477 0 R (HD.9369) 10478 0 R (HD.937) 1273 0 R (HD.9370) 10479 0 R (HD.9371) 10480 0 R (HD.9372) 10481 0 R (HD.9373) 10482 0 R (HD.9374) 10483 0 R (HD.9375) 10484 0 R (HD.9376) 10489 0 R (HD.9377) 10490 0 R (HD.9378) 10491 0 R (HD.9379) 10492 0 R (HD.938) 1274 0 R (HD.9380) 10493 0 R (HD.9381) 10494 0 R (HD.9382) 10495 0 R (HD.9383) 10496 0 R (HD.9384) 10497 0 R (HD.9385) 10498 0 R (HD.9386) 10499 0 R (HD.9387) 10500 0 R (HD.9388) 10501 0 R (HD.9389) 10502 0 R ] /Limits [ (HD.9360) (HD.9389) ] >>
-endobj
-12007 0 obj
-<< /Names [ (HD.939) 1275 0 R (HD.9390) 10503 0 R (HD.9391) 10504 0 R (HD.9392) 10505 0 R (HD.9393) 10506 0 R (HD.9394) 10507 0 R (HD.9395) 10508 0 R (HD.9396) 10509 0 R (HD.9397) 10510 0 R (HD.9398) 10511 0 R (HD.9399) 10512 0 R (HD.94) 294 0 R (HD.940) 1276 0 R (HD.9400) 10513 0 R (HD.9401) 10514 0 R (HD.9402) 10515 0 R (HD.9403) 10516 0 R (HD.9404) 10517 0 R (HD.9405) 10518 0 R (HD.9406) 10519 0 R (HD.9407) 10520 0 R (HD.9408) 10521 0 R (HD.9409) 10522 0 R (HD.941) 1277 0 R (HD.9410) 10523 0 R (HD.9411) 10524 0 R (HD.9412) 10525 0 R (HD.9413) 10526 0 R (HD.9414) 10527 0 R (HD.9415) 10528 0 R (HD.9416) 10529 0 R (HD.9417) 10530 0 R ] /Limits [ (HD.939) (HD.9417) ] >>
-endobj
-12008 0 obj
-<< /Names [ (HD.9418) 10531 0 R (HD.9419) 10532 0 R (HD.942) 1278 0 R (HD.9420) 10533 0 R (HD.9421) 10534 0 R (HD.9422) 10535 0 R (HD.9423) 10536 0 R (HD.9424) 10537 0 R (HD.9425) 10538 0 R (HD.9426) 10539 0 R (HD.9427) 10540 0 R (HD.9428) 10541 0 R (HD.9429) 10542 0 R (HD.943) 1279 0 R (HD.9430) 10543 0 R (HD.9431) 10544 0 R (HD.9432) 10550 0 R (HD.9433) 10551 0 R (HD.9434) 10552 0 R (HD.9435) 10553 0 R (HD.9436) 10554 0 R (HD.9437) 10555 0 R (HD.9438) 10556 0 R (HD.9439) 10557 0 R (HD.944) 1280 0 R (HD.9440) 10558 0 R (HD.9441) 10559 0 R (HD.9442) 10560 0 R (HD.9443) 10561 0 R (HD.9444) 10562 0 R (HD.9445) 10563 0 R (HD.9446) 10564 0 R ] /Limits [ (HD.9418) (HD.9446) ] >>
-endobj
-12009 0 obj
-<< /Names [ (HD.9447) 10565 0 R (HD.9448) 10566 0 R (HD.9449) 10567 0 R (HD.945) 1281 0 R (HD.9450) 10568 0 R (HD.9451) 10569 0 R (HD.9452) 10570 0 R (HD.9453) 10571 0 R (HD.9454) 10572 0 R (HD.9455) 10573 0 R (HD.9456) 10574 0 R (HD.9457) 10575 0 R (HD.9458) 10576 0 R (HD.9459) 10577 0 R (HD.946) 1282 0 R (HD.9460) 10578 0 R (HD.9461) 10579 0 R (HD.9462) 10580 0 R (HD.9463) 10581 0 R (HD.9464) 10582 0 R (HD.9465) 10583 0 R (HD.9466) 10584 0 R (HD.9467) 10585 0 R (HD.9468) 10586 0 R (HD.9469) 10587 0 R (HD.947) 1283 0 R (HD.9470) 10588 0 R (HD.9471) 10589 0 R (HD.9472) 10590 0 R (HD.9473) 10591 0 R (HD.9474) 10592 0 R (HD.9475) 10593 0 R ] /Limits [ (HD.9447) (HD.9475) ] >>
-endobj
-12010 0 obj
-<< /Names [ (HD.9476) 10594 0 R (HD.9477) 10595 0 R (HD.9478) 10596 0 R (HD.9479) 10597 0 R (HD.948) 1284 0 R (HD.9480) 10598 0 R (HD.9481) 10599 0 R (HD.9482) 10600 0 R (HD.9483) 10601 0 R (HD.9484) 10602 0 R (HD.9485) 10603 0 R (HD.9486) 10604 0 R (HD.9487) 10605 0 R (HD.9488) 10606 0 R (HD.9489) 10607 0 R (HD.949) 1285 0 R (HD.9490) 10608 0 R (HD.9491) 10613 0 R (HD.9492) 10614 0 R (HD.9493) 10615 0 R (HD.9494) 10616 0 R (HD.9495) 10617 0 R (HD.9496) 10618 0 R (HD.9497) 10619 0 R (HD.9498) 10620 0 R (HD.9499) 10621 0 R (HD.95) 295 0 R (HD.950) 1286 0 R (HD.9500) 10622 0 R (HD.9501) 10623 0 R (HD.9502) 10624 0 R (HD.9503) 10625 0 R ] /Limits [ (HD.9476) (HD.9503) ] >>
-endobj
-12011 0 obj
-<< /Names [ (HD.9504) 10626 0 R (HD.9505) 10627 0 R (HD.9506) 10628 0 R (HD.9507) 10629 0 R (HD.9508) 10630 0 R (HD.9509) 10631 0 R (HD.951) 1287 0 R (HD.9510) 10632 0 R (HD.9511) 10633 0 R (HD.9512) 10634 0 R (HD.9513) 10635 0 R (HD.9514) 10636 0 R (HD.9515) 10637 0 R (HD.9516) 10638 0 R (HD.9517) 10639 0 R (HD.9518) 10640 0 R (HD.9519) 10641 0 R (HD.952) 1288 0 R (HD.9520) 10642 0 R (HD.9521) 10643 0 R (HD.9522) 10644 0 R (HD.9523) 10645 0 R (HD.9524) 10646 0 R (HD.9525) 10647 0 R (HD.9526) 10648 0 R (HD.9527) 10649 0 R (HD.9528) 10650 0 R (HD.9529) 10651 0 R (HD.953) 1289 0 R (HD.9530) 10652 0 R (HD.9531) 10653 0 R (HD.9532) 10654 0 R ] /Limits [ (HD.9504) (HD.9532) ] >>
-endobj
-12012 0 obj
-<< /Names [ (HD.9533) 10655 0 R (HD.9534) 10656 0 R (HD.9535) 10657 0 R (HD.9536) 10658 0 R (HD.9537) 10659 0 R (HD.9538) 10660 0 R (HD.9539) 10661 0 R (HD.954) 1290 0 R (HD.9540) 10662 0 R (HD.9541) 10663 0 R (HD.9542) 10664 0 R (HD.9543) 10665 0 R (HD.9544) 10666 0 R (HD.9545) 10667 0 R (HD.9546) 10668 0 R (HD.9547) 10669 0 R (HD.9548) 10670 0 R (HD.9549) 10671 0 R (HD.955) 1291 0 R (HD.9550) 10672 0 R (HD.9551) 10677 0 R (HD.9552) 10678 0 R (HD.9553) 10679 0 R (HD.9554) 10680 0 R (HD.9555) 10681 0 R (HD.9556) 10682 0 R (HD.9557) 10683 0 R (HD.9558) 10684 0 R (HD.9559) 10685 0 R (HD.956) 1292 0 R (HD.9560) 10686 0 R (HD.9561) 10687 0 R ] /Limits [ (HD.9533) (HD.9561) ] >>
-endobj
-12013 0 obj
-<< /Names [ (HD.9562) 10688 0 R (HD.9563) 10689 0 R (HD.9564) 10690 0 R (HD.9565) 10691 0 R (HD.9566) 10692 0 R (HD.9567) 10693 0 R (HD.9568) 10694 0 R (HD.9569) 10695 0 R (HD.957) 1293 0 R (HD.9570) 10696 0 R (HD.9571) 10697 0 R (HD.9572) 10698 0 R (HD.9573) 10699 0 R (HD.9574) 10700 0 R (HD.9575) 10701 0 R (HD.9576) 10702 0 R (HD.9577) 10703 0 R (HD.9578) 10704 0 R (HD.9579) 10705 0 R (HD.958) 1294 0 R (HD.9580) 10706 0 R (HD.9581) 10707 0 R (HD.9582) 10708 0 R (HD.9583) 10709 0 R (HD.9584) 10710 0 R (HD.9585) 10711 0 R (HD.9586) 10712 0 R (HD.9587) 10713 0 R (HD.9588) 10714 0 R (HD.9589) 10715 0 R (HD.959) 1295 0 R (HD.9590) 10716 0 R ] /Limits [ (HD.9562) (HD.9590) ] >>
-endobj
-12014 0 obj
-<< /Names [ (HD.9591) 10717 0 R (HD.9592) 10718 0 R (HD.9593) 10719 0 R (HD.9594) 10720 0 R (HD.9595) 10721 0 R (HD.9596) 10722 0 R (HD.9597) 10723 0 R (HD.9598) 10724 0 R (HD.9599) 10725 0 R (HD.96) 296 0 R (HD.960) 1296 0 R (HD.9600) 10726 0 R (HD.9601) 10727 0 R (HD.9602) 10728 0 R (HD.9603) 10729 0 R (HD.9604) 10730 0 R (HD.9605) 10731 0 R (HD.9606) 10732 0 R (HD.9607) 10733 0 R (HD.9608) 10734 0 R (HD.9609) 10735 0 R (HD.961) 1297 0 R (HD.9610) 10736 0 R (HD.9611) 10737 0 R (HD.9612) 10742 0 R (HD.9613) 10743 0 R (HD.9614) 10744 0 R (HD.9615) 10745 0 R (HD.9616) 10746 0 R (HD.9617) 10747 0 R (HD.9618) 10748 0 R (HD.9619) 10749 0 R ] /Limits [ (HD.9591) (HD.9619) ] >>
-endobj
-12015 0 obj
-<< /Names [ (HD.962) 1298 0 R (HD.9620) 10750 0 R (HD.9621) 10751 0 R (HD.9622) 10752 0 R (HD.9623) 10753 0 R (HD.9624) 10754 0 R (HD.9625) 10755 0 R (HD.9626) 10756 0 R (HD.9627) 10757 0 R (HD.9628) 10758 0 R (HD.9629) 10759 0 R (HD.963) 1299 0 R (HD.9630) 10760 0 R (HD.9631) 10761 0 R (HD.9632) 10762 0 R (HD.9633) 10763 0 R (HD.9634) 10764 0 R (HD.9635) 10765 0 R (HD.9636) 10766 0 R (HD.9637) 10767 0 R (HD.9638) 10768 0 R (HD.9639) 10769 0 R (HD.964) 1300 0 R (HD.9640) 10770 0 R (HD.9641) 10771 0 R (HD.9642) 10772 0 R (HD.9643) 10773 0 R (HD.9644) 10774 0 R (HD.9645) 10775 0 R (HD.9646) 10776 0 R (HD.9647) 10777 0 R (HD.9648) 10778 0 R ] /Limits [ (HD.962) (HD.9648) ] >>
-endobj
-12016 0 obj
-<< /Names [ (HD.9649) 10779 0 R (HD.965) 1301 0 R (HD.9650) 10780 0 R (HD.9651) 10781 0 R (HD.9652) 10782 0 R (HD.9653) 10783 0 R (HD.9654) 10784 0 R (HD.9655) 10785 0 R (HD.9656) 10786 0 R (HD.9657) 10787 0 R (HD.9658) 10788 0 R (HD.9659) 10789 0 R (HD.966) 1302 0 R (HD.9660) 10790 0 R (HD.9661) 10791 0 R (HD.9662) 10792 0 R (HD.9663) 10793 0 R (HD.9664) 10794 0 R (HD.9665) 10795 0 R (HD.9666) 10796 0 R (HD.9667) 10797 0 R (HD.9668) 10798 0 R (HD.9669) 10799 0 R (HD.967) 1303 0 R (HD.9670) 10800 0 R (HD.9671) 10801 0 R (HD.9672) 10806 0 R (HD.9673) 10807 0 R (HD.9674) 10808 0 R (HD.9675) 10809 0 R (HD.9676) 10810 0 R (HD.9677) 10811 0 R ] /Limits [ (HD.9649) (HD.9677) ] >>
-endobj
-12017 0 obj
-<< /Names [ (HD.9678) 10812 0 R (HD.9679) 10813 0 R (HD.968) 1304 0 R (HD.9680) 10814 0 R (HD.9681) 10815 0 R (HD.9682) 10816 0 R (HD.9683) 10817 0 R (HD.9684) 10818 0 R (HD.9685) 10819 0 R (HD.9686) 10820 0 R (HD.9687) 10821 0 R (HD.9688) 10822 0 R (HD.9689) 10823 0 R (HD.969) 1305 0 R (HD.9690) 10824 0 R (HD.9691) 10825 0 R (HD.9692) 10826 0 R (HD.9693) 10827 0 R (HD.9694) 10828 0 R (HD.9695) 10829 0 R (HD.9696) 10830 0 R (HD.9697) 10831 0 R (HD.9698) 10832 0 R (HD.9699) 10833 0 R (HD.97) 297 0 R (HD.970) 1306 0 R (HD.9700) 10834 0 R (HD.9701) 10835 0 R (HD.9702) 10836 0 R (HD.9703) 10837 0 R (HD.9704) 10838 0 R (HD.9705) 10839 0 R ] /Limits [ (HD.9678) (HD.9705) ] >>
-endobj
-12018 0 obj
-<< /Names [ (HD.9706) 10840 0 R (HD.9707) 10841 0 R (HD.9708) 10842 0 R (HD.9709) 10843 0 R (HD.971) 1307 0 R (HD.9710) 10844 0 R (HD.9711) 10845 0 R (HD.9712) 10846 0 R (HD.9713) 10847 0 R (HD.9714) 10848 0 R (HD.9715) 10849 0 R (HD.9716) 10850 0 R (HD.9717) 10851 0 R (HD.9718) 10852 0 R (HD.9719) 10853 0 R (HD.972) 1308 0 R (HD.9720) 10854 0 R (HD.9721) 10855 0 R (HD.9722) 10856 0 R (HD.9723) 10857 0 R (HD.9724) 10858 0 R (HD.9725) 10859 0 R (HD.9726) 10860 0 R (HD.9727) 10861 0 R (HD.9728) 10862 0 R (HD.9729) 10863 0 R (HD.973) 1309 0 R (HD.9730) 10864 0 R (HD.9731) 10865 0 R (HD.9732) 10870 0 R (HD.9733) 10871 0 R (HD.9734) 10872 0 R ] /Limits [ (HD.9706) (HD.9734) ] >>
-endobj
-12019 0 obj
-<< /Names [ (HD.9735) 10873 0 R (HD.9736) 10874 0 R (HD.9737) 10875 0 R (HD.9738) 10876 0 R (HD.9739) 10877 0 R (HD.974) 1310 0 R (HD.9740) 10878 0 R (HD.9741) 10879 0 R (HD.9742) 10880 0 R (HD.9743) 10881 0 R (HD.9744) 10882 0 R (HD.9745) 10883 0 R (HD.9746) 10884 0 R (HD.9747) 10885 0 R (HD.9748) 10886 0 R (HD.9749) 10887 0 R (HD.975) 1311 0 R (HD.9750) 10888 0 R (HD.9751) 10889 0 R (HD.9752) 10890 0 R (HD.9753) 10891 0 R (HD.9754) 10892 0 R (HD.9755) 10893 0 R (HD.9756) 10894 0 R (HD.9757) 10895 0 R (HD.9758) 10896 0 R (HD.9759) 10897 0 R (HD.976) 1312 0 R (HD.9760) 10898 0 R (HD.9761) 10899 0 R (HD.9762) 10900 0 R (HD.9763) 10901 0 R ] /Limits [ (HD.9735) (HD.9763) ] >>
-endobj
-12020 0 obj
-<< /Names [ (HD.9764) 10902 0 R (HD.9765) 10903 0 R (HD.9766) 10904 0 R (HD.9767) 10905 0 R (HD.9768) 10906 0 R (HD.9769) 10907 0 R (HD.977) 1313 0 R (HD.9770) 10908 0 R (HD.9771) 10909 0 R (HD.9772) 10910 0 R (HD.9773) 10911 0 R (HD.9774) 10912 0 R (HD.9775) 10913 0 R (HD.9776) 10914 0 R (HD.9777) 10915 0 R (HD.9778) 10916 0 R (HD.9779) 10917 0 R (HD.978) 1314 0 R (HD.9780) 10918 0 R (HD.9781) 10919 0 R (HD.9782) 10920 0 R (HD.9783) 10921 0 R (HD.9784) 10922 0 R (HD.9785) 10923 0 R (HD.9786) 10924 0 R (HD.9787) 10925 0 R (HD.9788) 10926 0 R (HD.9789) 10927 0 R (HD.979) 1315 0 R (HD.9790) 10928 0 R (HD.9791) 10929 0 R (HD.9792) 10930 0 R ] /Limits [ (HD.9764) (HD.9792) ] >>
-endobj
-12021 0 obj
-<< /Names [ (HD.9793) 10935 0 R (HD.9794) 10936 0 R (HD.9795) 10937 0 R (HD.9796) 10938 0 R (HD.9797) 10939 0 R (HD.9798) 10940 0 R (HD.9799) 10941 0 R (HD.98) 298 0 R (HD.980) 1321 0 R (HD.9800) 10942 0 R (HD.9801) 10943 0 R (HD.9802) 10944 0 R (HD.9803) 10945 0 R (HD.9804) 10946 0 R (HD.9805) 10947 0 R (HD.9806) 10948 0 R (HD.9807) 10949 0 R (HD.9808) 10950 0 R (HD.9809) 10951 0 R (HD.981) 1322 0 R (HD.9810) 10952 0 R (HD.9811) 10953 0 R (HD.9812) 10954 0 R (HD.9813) 10955 0 R (HD.9814) 10956 0 R (HD.9815) 10957 0 R (HD.9816) 10958 0 R (HD.9817) 10959 0 R (HD.9818) 10960 0 R (HD.9819) 10961 0 R (HD.982) 1323 0 R (HD.9820) 10962 0 R ] /Limits [ (HD.9793) (HD.9820) ] >>
-endobj
-12022 0 obj
-<< /Names [ (HD.9821) 10963 0 R (HD.9822) 10964 0 R (HD.9823) 10965 0 R (HD.9824) 10966 0 R (HD.9825) 10967 0 R (HD.9826) 10968 0 R (HD.9827) 10969 0 R (HD.9828) 10970 0 R (HD.9829) 10971 0 R (HD.983) 1324 0 R (HD.9830) 10972 0 R (HD.9831) 10973 0 R (HD.9832) 10974 0 R (HD.9833) 10975 0 R (HD.9834) 10976 0 R (HD.9835) 10977 0 R (HD.9836) 10978 0 R (HD.9837) 10979 0 R (HD.9838) 10980 0 R (HD.9839) 10981 0 R (HD.984) 1325 0 R (HD.9840) 10982 0 R (HD.9841) 10983 0 R (HD.9842) 10984 0 R (HD.9843) 10985 0 R (HD.9844) 10986 0 R (HD.9845) 10987 0 R (HD.9846) 10988 0 R (HD.9847) 10989 0 R (HD.9848) 10990 0 R (HD.9849) 10991 0 R (HD.985) 1326 0 R ] /Limits [ (HD.9821) (HD.985) ] >>
-endobj
-12023 0 obj
-<< /Names [ (HD.9850) 10992 0 R (HD.9851) 10993 0 R (HD.9852) 10994 0 R (HD.9853) 10999 0 R (HD.9854) 11000 0 R (HD.9855) 11001 0 R (HD.9856) 11002 0 R (HD.9857) 11003 0 R (HD.9858) 11004 0 R (HD.9859) 11005 0 R (HD.986) 1327 0 R (HD.9860) 11006 0 R (HD.9861) 11007 0 R (HD.9862) 11008 0 R (HD.9863) 11009 0 R (HD.9864) 11010 0 R (HD.9865) 11011 0 R (HD.9866) 11012 0 R (HD.9867) 11013 0 R (HD.9868) 11014 0 R (HD.9869) 11015 0 R (HD.987) 1328 0 R (HD.9870) 11016 0 R (HD.9871) 11017 0 R (HD.9872) 11018 0 R (HD.9873) 11019 0 R (HD.9874) 11020 0 R (HD.9875) 11021 0 R (HD.9876) 11022 0 R (HD.9877) 11023 0 R (HD.9878) 11024 0 R (HD.9879) 11025 0 R ] /Limits [ (HD.9850) (HD.9879) ] >>
-endobj
-12024 0 obj
-<< /Names [ (HD.988) 1329 0 R (HD.9880) 11026 0 R (HD.9881) 11027 0 R (HD.9882) 11028 0 R (HD.9883) 11029 0 R (HD.9884) 11030 0 R (HD.9885) 11031 0 R (HD.9886) 11032 0 R (HD.9887) 11033 0 R (HD.9888) 11034 0 R (HD.9889) 11035 0 R (HD.989) 1330 0 R (HD.9890) 11036 0 R (HD.9891) 11037 0 R (HD.9892) 11038 0 R (HD.9893) 11039 0 R (HD.9894) 11040 0 R (HD.9895) 11041 0 R (HD.9896) 11042 0 R (HD.9897) 11043 0 R (HD.9898) 11044 0 R (HD.9899) 11045 0 R (HD.99) 299 0 R (HD.990) 1331 0 R (HD.9900) 11046 0 R (HD.9901) 11047 0 R (HD.9902) 11048 0 R (HD.9903) 11049 0 R (HD.9904) 11050 0 R (HD.9905) 11051 0 R (HD.9906) 11052 0 R (HD.9907) 11053 0 R ] /Limits [ (HD.988) (HD.9907) ] >>
-endobj
-12025 0 obj
-<< /Names [ (HD.9908) 11054 0 R (HD.9909) 11055 0 R (HD.991) 1332 0 R (HD.9910) 11056 0 R (HD.9911) 11057 0 R (HD.9912) 11058 0 R (HD.9913) 11063 0 R (HD.9914) 11064 0 R (HD.9915) 11065 0 R (HD.9916) 11066 0 R (HD.9917) 11067 0 R (HD.9918) 11068 0 R (HD.9919) 11069 0 R (HD.992) 1333 0 R (HD.9920) 11070 0 R (HD.9921) 11071 0 R (HD.9922) 11072 0 R (HD.9923) 11073 0 R (HD.9924) 11074 0 R (HD.9925) 11075 0 R (HD.9926) 11076 0 R (HD.9927) 11077 0 R (HD.9928) 11078 0 R (HD.9929) 11079 0 R (HD.993) 1334 0 R (HD.9930) 11080 0 R (HD.9931) 11081 0 R (HD.9932) 11082 0 R (HD.9933) 11083 0 R (HD.9934) 11084 0 R (HD.9935) 11085 0 R (HD.9936) 11086 0 R ] /Limits [ (HD.9908) (HD.9936) ] >>
-endobj
-12026 0 obj
-<< /Names [ (HD.9937) 11087 0 R (HD.9938) 11088 0 R (HD.9939) 11089 0 R (HD.994) 1335 0 R (HD.9940) 11090 0 R (HD.9941) 11091 0 R (HD.9942) 11092 0 R (HD.9943) 11093 0 R (HD.9944) 11094 0 R (HD.9945) 11095 0 R (HD.9946) 11096 0 R (HD.9947) 11097 0 R (HD.9948) 11098 0 R (HD.9949) 11099 0 R (HD.995) 1336 0 R (HD.9950) 11100 0 R (HD.9951) 11101 0 R (HD.9952) 11102 0 R (HD.9953) 11103 0 R (HD.9954) 11104 0 R (HD.9955) 11105 0 R (HD.9956) 11106 0 R (HD.9957) 11107 0 R (HD.9958) 11108 0 R (HD.9959) 11109 0 R (HD.996) 1337 0 R (HD.9960) 11110 0 R (HD.9961) 11111 0 R (HD.9962) 11112 0 R (HD.9963) 11113 0 R (HD.9964) 11114 0 R (HD.9965) 11115 0 R ] /Limits [ (HD.9937) (HD.9965) ] >>
-endobj
-12027 0 obj
-<< /Names [ (HD.9966) 11116 0 R (HD.9967) 11117 0 R (HD.9968) 11118 0 R (HD.9969) 11119 0 R (HD.997) 1338 0 R (HD.9970) 11120 0 R (HD.9971) 11121 0 R (HD.9972) 11122 0 R (HD.9973) 11127 0 R (HD.9974) 11128 0 R (HD.9975) 11129 0 R (HD.9976) 11130 0 R (HD.9977) 11131 0 R (HD.9978) 11132 0 R (HD.9979) 11133 0 R (HD.998) 1339 0 R (HD.9980) 11134 0 R (HD.9981) 11135 0 R (HD.9982) 11136 0 R (HD.9983) 11137 0 R (HD.9984) 11138 0 R (HD.9985) 11139 0 R (HD.9986) 11140 0 R (HD.9987) 11141 0 R (HD.9988) 11142 0 R (HD.9989) 11143 0 R (HD.999) 1340 0 R (HD.9990) 11144 0 R (HD.9991) 11145 0 R (HD.9992) 11146 0 R (HD.9993) 11147 0 R (HD.9994) 11148 0 R ] /Limits [ (HD.9966) (HD.9994) ] >>
-endobj
-12028 0 obj
-<< /Names [ (HD.9995) 11149 0 R (HD.9996) 11150 0 R (HD.9997) 11151 0 R (HD.9998) 11152 0 R (HD.9999) 11153 0 R (Hfootnote.1) 481 0 R (Hfootnote.10) 2758 0 R (Hfootnote.11) 4557 0 R (Hfootnote.12) 4649 0 R (Hfootnote.13) 6051 0 R (Hfootnote.14) 7881 0 R (Hfootnote.2) 767 0 R (Hfootnote.3) 826 0 R (Hfootnote.4) 1960 0 R (Hfootnote.5) 1961 0 R (Hfootnote.6) 2364 0 R (Hfootnote.7) 2406 0 R (Hfootnote.8) 2508 0 R (Hfootnote.9) 2561 0 R (page.1) 172 0 R (page.10) 566 0 R (page.100) 4706 0 R (page.101) 4746 0 R (page.102) 4789 0 R (page.103) 4842 0 R (page.104) 4905 0 R (page.105) 4951 0 R (page.106) 5015 0 R (page.107) 5058 0 R (page.108) 5108 0 R (page.109) 5162 0 R (page.11) 586 0 R ] /Limits [ (HD.9995) (page.11) ] >>
-endobj
-12029 0 obj
-<< /Names [ (page.110) 5219 0 R (page.111) 5266 0 R (page.112) 5313 0 R (page.113) 5358 0 R (page.114) 5405 0 R (page.115) 5444 0 R (page.116) 5495 0 R (page.117) 5551 0 R (page.118) 5609 0 R (page.119) 5675 0 R (page.12) 607 0 R (page.120) 5724 0 R (page.121) 5788 0 R (page.122) 5839 0 R (page.123) 5896 0 R (page.124) 5957 0 R (page.125) 6020 0 R (page.126) 6056 0 R (page.127) 6110 0 R (page.128) 6147 0 R (page.129) 6199 0 R (page.13) 634 0 R (page.130) 6242 0 R (page.131) 6278 0 R (page.132) 6336 0 R (page.133) 6384 0 R (page.134) 6436 0 R (page.135) 6479 0 R (page.136) 6531 0 R (page.137) 6578 0 R (page.138) 6640 0 R (page.139) 6690 0 R ] /Limits [ (page.110) (page.139) ] >>
-endobj
-12030 0 obj
-<< /Names [ (page.14) 658 0 R (page.140) 6741 0 R (page.141) 6780 0 R (page.142) 6824 0 R (page.143) 6858 0 R (page.144) 6901 0 R (page.145) 6956 0 R (page.146) 7019 0 R (page.147) 7075 0 R (page.148) 7122 0 R (page.149) 7181 0 R (page.15) 681 0 R (page.150) 7237 0 R (page.151) 7287 0 R (page.152) 7342 0 R (page.153) 7392 0 R (page.154) 7443 0 R (page.155) 7490 0 R (page.156) 7548 0 R (page.157) 7599 0 R (page.158) 7642 0 R (page.159) 7700 0 R (page.16) 701 0 R (page.160) 7749 0 R (page.161) 7783 0 R (page.162) 7836 0 R (page.163) 7886 0 R (page.164) 7937 0 R (page.165) 7985 0 R (page.166) 8040 0 R (page.167) 8081 0 R (page.168) 8120 0 R ] /Limits [ (page.14) (page.168) ] >>
-endobj
-12031 0 obj
-<< /Names [ (page.169) 8160 0 R (page.17) 728 0 R (page.170) 8209 0 R (page.171) 8268 0 R (page.172) 8318 0 R (page.173) 8378 0 R (page.174) 8440 0 R (page.175) 8492 0 R (page.176) 8546 0 R (page.177) 8611 0 R (page.178) 8651 0 R (page.179) 8704 0 R (page.18) 756 0 R (page.180) 8768 0 R (page.181) 8834 0 R (page.182) 8890 0 R (page.183) 8953 0 R (page.184) 9011 0 R (page.185) 9072 0 R (page.186) 9134 0 R (page.187) 9192 0 R (page.188) 9245 0 R (page.189) 9300 0 R (page.19) 775 0 R (page.190) 9343 0 R (page.191) 9392 0 R (page.192) 9429 0 R (page.193) 9473 0 R (page.194) 9531 0 R (page.195) 9590 0 R (page.196) 9638 0 R (page.197) 9701 0 R ] /Limits [ (page.169) (page.197) ] >>
-endobj
-12032 0 obj
-<< /Names [ (page.198) 9754 0 R (page.199) 9809 0 R (page.2) 210 0 R (page.20) 810 0 R (page.200) 9848 0 R (page.201) 9898 0 R (page.202) 9952 0 R (page.203) 10014 0 R (page.204) 10077 0 R (page.205) 10137 0 R (page.206) 10202 0 R (page.207) 10265 0 R (page.208) 10332 0 R (page.209) 10385 0 R (page.21) 831 0 R (page.210) 10446 0 R (page.211) 10488 0 R (page.212) 10549 0 R (page.213) 10612 0 R (page.214) 10676 0 R (page.215) 10741 0 R (page.216) 10805 0 R (page.217) 10869 0 R (page.218) 10934 0 R (page.219) 10998 0 R (page.22) 875 0 R (page.220) 11062 0 R (page.221) 11126 0 R (page.222) 11193 0 R (page.223) 11260 0 R (page.224) 11325 0 R (page.225) 11390 0 R ] /Limits [ (page.198) (page.225) ] >>
-endobj
-12033 0 obj
-<< /Names [ (page.226) 11457 0 R (page.227) 11524 0 R (page.228) 11586 0 R (page.229) 11600 0 R (page.23) 923 0 R (page.24) 967 0 R (page.25) 1012 0 R (page.26) 1057 0 R (page.27) 1085 0 R (page.28) 1106 0 R (page.29) 1146 0 R (page.3) 257 0 R (page.30) 1200 0 R (page.31) 1262 0 R (page.32) 1320 0 R (page.33) 1383 0 R (page.34) 1442 0 R (page.35) 1488 0 R (page.36) 1543 0 R (page.37) 1571 0 R (page.38) 1620 0 R (page.39) 1683 0 R (page.4) 304 0 R (page.40) 1717 0 R (page.41) 1770 0 R (page.42) 1814 0 R (page.43) 1859 0 R (page.44) 1916 0 R (page.45) 1966 0 R (page.46) 2009 0 R (page.47) 2064 0 R (page.48) 2101 0 R ] /Limits [ (page.226) (page.48) ] >>
-endobj
-12034 0 obj
-<< /Names [ (page.49) 2134 0 R (page.5) 343 0 R (page.50) 2172 0 R (page.51) 2215 0 R (page.52) 2258 0 R (page.53) 2315 0 R (page.54) 2370 0 R (page.55) 2411 0 R (page.56) 2459 0 R (page.57) 2515 0 R (page.58) 2567 0 R (page.59) 2609 0 R (page.6) 387 0 R (page.60) 2658 0 R (page.61) 2707 0 R (page.62) 2764 0 R (page.63) 2819 0 R (page.64) 2879 0 R (page.65) 2931 0 R (page.66) 2969 0 R (page.67) 3019 0 R (page.68) 3070 0 R (page.69) 3125 0 R (page.7) 433 0 R (page.70) 3182 0 R (page.71) 3242 0 R (page.72) 3302 0 R (page.73) 3337 0 R (page.74) 3384 0 R (page.75) 3429 0 R (page.76) 3485 0 R (page.77) 3541 0 R ] /Limits [ (page.49) (page.77) ] >>
-endobj
-12035 0 obj
-<< /Names [ (page.78) 3594 0 R (page.79) 3639 0 R (page.8) 486 0 R (page.80) 3680 0 R (page.81) 3736 0 R (page.82) 3787 0 R (page.83) 3847 0 R (page.84) 3884 0 R (page.85) 3924 0 R (page.86) 3975 0 R (page.87) 4035 0 R (page.88) 4092 0 R (page.89) 4154 0 R (page.9) 534 0 R (page.90) 4203 0 R (page.91) 4255 0 R (page.92) 4305 0 R (page.93) 4360 0 R (page.94) 4424 0 R (page.95) 4463 0 R (page.96) 4523 0 R (page.97) 4562 0 R (page.98) 4608 0 R (page.99) 4654 0 R (section.0.1) 5 0 R (section.0.10) 41 0 R (section.0.11) 45 0 R (section.0.12) 49 0 R (section.0.13) 53 0 R (section.0.14) 57 0 R (section.0.15) 61 0 R (section.0.16) 65 0 R ] /Limits [ (page.78) (section.0.16) ] >>
-endobj
-12036 0 obj
-<< /Names [ (section.0.17) 69 0 R (section.0.18) 73 0 R (section.0.19) 77 0 R (section.0.2) 9 0 R (section.0.20) 81 0 R (section.0.21) 85 0 R (section.0.22) 89 0 R (section.0.23) 93 0 R (section.0.24) 97 0 R (section.0.25) 101 0 R (section.0.26) 105 0 R (section.0.27) 109 0 R (section.0.28) 113 0 R (section.0.29) 117 0 R (section.0.3) 13 0 R (section.0.30) 121 0 R (section.0.31) 125 0 R (section.0.32) 129 0 R (section.0.33) 133 0 R (section.0.34) 137 0 R (section.0.35) 141 0 R (section.0.36) 145 0 R (section.0.37) 149 0 R (section.0.38) 153 0 R (section.0.39) 157 0 R (section.0.4) 17 0 R (section.0.40) 161 0 R (section.0.5) 21 0 R (section.0.6) 25 0 R (section.0.7) 29 0 R (section.0.8) 33 0 R (section.0.9) 37 0 R ] /Limits [ (section.0.17) (section.0.9) ] >>
-endobj
-12037 0 obj
-<< /Names [ (toc1.1) 165 0 R ] /Limits [ (toc1.1) (toc1.1) ] >>
-endobj
-12038 0 obj
-<< /Kids [ 11704 0 R 11705 0 R 11706 0 R 11707 0 R 11708 0 R 11709 0 R 11710 0 R 11711 0 R 11712 0 R 11713 0 R 11714 0 R 11715 0 R 11716 0 R 11717 0 R 11718 0 R 11719 0 R 11720 0 R 11721 0 R 11722 0 R 11723 0 R 11724 0 R 11725 0 R 11726 0 R 11727 0 R 11728 0 R 11729 0 R 11730 0 R 11731 0 R 11732 0 R 11733 0 R 11734 0 R 11735 0 R ] /Limits [ (Doc-Start) (HD.1583) ] >>
-endobj
-12039 0 obj
-<< /Kids [ 11736 0 R 11737 0 R 11738 0 R 11739 0 R 11740 0 R 11741 0 R 11742 0 R 11743 0 R 11744 0 R 11745 0 R 11746 0 R 11747 0 R 11748 0 R 11749 0 R 11750 0 R 11751 0 R 11752 0 R 11753 0 R 11754 0 R 11755 0 R 11756 0 R 11757 0 R 11758 0 R 11759 0 R 11760 0 R 11761 0 R 11762 0 R 11763 0 R 11764 0 R 11765 0 R 11766 0 R 11767 0 R ] /Limits [ (HD.1584) (HD.2504) ] >>
-endobj
-12040 0 obj
-<< /Kids [ 11768 0 R 11769 0 R 11770 0 R 11771 0 R 11772 0 R 11773 0 R 11774 0 R 11775 0 R 11776 0 R 11777 0 R 11778 0 R 11779 0 R 11780 0 R 11781 0 R 11782 0 R 11783 0 R 11784 0 R 11785 0 R 11786 0 R 11787 0 R 11788 0 R 11789 0 R 11790 0 R 11791 0 R 11792 0 R 11793 0 R 11794 0 R 11795 0 R 11796 0 R 11797 0 R 11798 0 R 11799 0 R ] /Limits [ (HD.2505) (HD.3426) ] >>
-endobj
-12041 0 obj
-<< /Kids [ 11800 0 R 11801 0 R 11802 0 R 11803 0 R 11804 0 R 11805 0 R 11806 0 R 11807 0 R 11808 0 R 11809 0 R 11810 0 R 11811 0 R 11812 0 R 11813 0 R 11814 0 R 11815 0 R 11816 0 R 11817 0 R 11818 0 R 11819 0 R 11820 0 R 11821 0 R 11822 0 R 11823 0 R 11824 0 R 11825 0 R 11826 0 R 11827 0 R 11828 0 R 11829 0 R 11830 0 R 11831 0 R ] /Limits [ (HD.3427) (HD.4348) ] >>
-endobj
-12042 0 obj
-<< /Kids [ 11832 0 R 11833 0 R 11834 0 R 11835 0 R 11836 0 R 11837 0 R 11838 0 R 11839 0 R 11840 0 R 11841 0 R 11842 0 R 11843 0 R 11844 0 R 11845 0 R 11846 0 R 11847 0 R 11848 0 R 11849 0 R 11850 0 R 11851 0 R 11852 0 R 11853 0 R 11854 0 R 11855 0 R 11856 0 R 11857 0 R 11858 0 R 11859 0 R 11860 0 R 11861 0 R 11862 0 R 11863 0 R ] /Limits [ (HD.4349) (HD.527) ] >>
-endobj
-12043 0 obj
-<< /Kids [ 11864 0 R 11865 0 R 11866 0 R 11867 0 R 11868 0 R 11869 0 R 11870 0 R 11871 0 R 11872 0 R 11873 0 R 11874 0 R 11875 0 R 11876 0 R 11877 0 R 11878 0 R 11879 0 R 11880 0 R 11881 0 R 11882 0 R 11883 0 R 11884 0 R 11885 0 R 11886 0 R 11887 0 R 11888 0 R 11889 0 R 11890 0 R 11891 0 R 11892 0 R 11893 0 R 11894 0 R 11895 0 R ] /Limits [ (HD.5270) (HD.6191) ] >>
-endobj
-12044 0 obj
-<< /Kids [ 11896 0 R 11897 0 R 11898 0 R 11899 0 R 11900 0 R 11901 0 R 11902 0 R 11903 0 R 11904 0 R 11905 0 R 11906 0 R 11907 0 R 11908 0 R 11909 0 R 11910 0 R 11911 0 R 11912 0 R 11913 0 R 11914 0 R 11915 0 R 11916 0 R 11917 0 R 11918 0 R 11919 0 R 11920 0 R 11921 0 R 11922 0 R 11923 0 R 11924 0 R 11925 0 R 11926 0 R 11927 0 R ] /Limits [ (HD.6192) (HD.7112) ] >>
-endobj
-12045 0 obj
-<< /Kids [ 11928 0 R 11929 0 R 11930 0 R 11931 0 R 11932 0 R 11933 0 R 11934 0 R 11935 0 R 11936 0 R 11937 0 R 11938 0 R 11939 0 R 11940 0 R 11941 0 R 11942 0 R 11943 0 R 11944 0 R 11945 0 R 11946 0 R 11947 0 R 11948 0 R 11949 0 R 11950 0 R 11951 0 R 11952 0 R 11953 0 R 11954 0 R 11955 0 R 11956 0 R 11957 0 R 11958 0 R 11959 0 R ] /Limits [ (HD.7113) (HD.8034) ] >>
-endobj
-12046 0 obj
-<< /Kids [ 11960 0 R 11961 0 R 11962 0 R 11963 0 R 11964 0 R 11965 0 R 11966 0 R 11967 0 R 11968 0 R 11969 0 R 11970 0 R 11971 0 R 11972 0 R 11973 0 R 11974 0 R 11975 0 R 11976 0 R 11977 0 R 11978 0 R 11979 0 R 11980 0 R 11981 0 R 11982 0 R 11983 0 R 11984 0 R 11985 0 R 11986 0 R 11987 0 R 11988 0 R 11989 0 R 11990 0 R 11991 0 R ] /Limits [ (HD.8035) (HD.8957) ] >>
-endobj
-12047 0 obj
-<< /Kids [ 11992 0 R 11993 0 R 11994 0 R 11995 0 R 11996 0 R 11997 0 R 11998 0 R 11999 0 R 12000 0 R 12001 0 R 12002 0 R 12003 0 R 12004 0 R 12005 0 R 12006 0 R 12007 0 R 12008 0 R 12009 0 R 12010 0 R 12011 0 R 12012 0 R 12013 0 R 12014 0 R 12015 0 R 12016 0 R 12017 0 R 12018 0 R 12019 0 R 12020 0 R 12021 0 R 12022 0 R 12023 0 R ] /Limits [ (HD.8958) (HD.9879) ] >>
-endobj
-12048 0 obj
-<< /Kids [ 12024 0 R 12025 0 R 12026 0 R 12027 0 R 12028 0 R 12029 0 R 12030 0 R 12031 0 R 12032 0 R 12033 0 R 12034 0 R 12035 0 R 12036 0 R 12037 0 R ] /Limits [ (HD.988) (toc1.1) ] >>
-endobj
-12049 0 obj
-<< /Kids [ 12038 0 R 12039 0 R 12040 0 R 12041 0 R 12042 0 R 12043 0 R 12044 0 R 12045 0 R 12046 0 R 12047 0 R 12048 0 R ] /Limits [ (Doc-Start) (toc1.1) ] >>
-endobj
-12050 0 obj
-<< /Dests 12049 0 R >>
-endobj
-12051 0 obj
-<< /Type /Catalog /Pages 11702 0 R /Outlines 11703 0 R /Names 12050 0 R /PageMode/UseOutlines /OpenAction 168 0 R >>
-endobj
-12052 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000c\000o\000d\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629143946+02'00') /ModDate (D:20240629143946+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000c\000o\000d\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20241029183841+01'00') /ModDate (D:20241029183841+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 12053
+0 11954
0000000000 65535 f
-0001305862 00000 n
-0001305916 00000 n
-0001305936 00000 n
+0001352355 00000 n
+0001352409 00000 n
+0001352429 00000 n
0000000020 00000 n
-0000012824 00000 n
-0001895173 00000 n
+0000012789 00000 n
+0001542178 00000 n
0000000067 00000 n
0000000355 00000 n
-0000019117 00000 n
-0001895085 00000 n
+0000022626 00000 n
+0001542090 00000 n
0000000402 00000 n
-0000000511 00000 n
-0000027612 00000 n
-0001894995 00000 n
-0000000559 00000 n
-0000000693 00000 n
-0000028805 00000 n
-0001894905 00000 n
-0000000741 00000 n
-0000000890 00000 n
-0000055792 00000 n
-0001894815 00000 n
-0000000938 00000 n
-0000001029 00000 n
-0000101646 00000 n
-0001894725 00000 n
-0000001077 00000 n
-0000001247 00000 n
-0000128392 00000 n
-0001894635 00000 n
-0000001295 00000 n
-0000001546 00000 n
-0000133986 00000 n
-0001894545 00000 n
-0000001594 00000 n
-0000001693 00000 n
-0000193350 00000 n
-0001894455 00000 n
-0000001741 00000 n
-0000002028 00000 n
-0000268848 00000 n
-0001894365 00000 n
-0000002077 00000 n
-0000002204 00000 n
-0000291658 00000 n
-0001894275 00000 n
-0000002253 00000 n
-0000002496 00000 n
-0000321712 00000 n
-0001894185 00000 n
-0000002545 00000 n
-0000002799 00000 n
-0000410858 00000 n
-0001894095 00000 n
-0000002848 00000 n
-0000003066 00000 n
-0000508736 00000 n
-0001894005 00000 n
-0000003115 00000 n
-0000003407 00000 n
-0000514851 00000 n
-0001893915 00000 n
-0000003456 00000 n
-0000003769 00000 n
-0000524392 00000 n
-0001893825 00000 n
-0000003818 00000 n
-0000004054 00000 n
-0000562493 00000 n
-0001893735 00000 n
-0000004103 00000 n
-0000004281 00000 n
-0000633002 00000 n
-0001893645 00000 n
-0000004330 00000 n
-0000004713 00000 n
-0000665269 00000 n
-0001893555 00000 n
-0000004762 00000 n
-0000005061 00000 n
-0000700508 00000 n
-0001893465 00000 n
-0000005110 00000 n
-0000005384 00000 n
-0000709934 00000 n
-0001893375 00000 n
-0000005433 00000 n
-0000005593 00000 n
-0000722555 00000 n
-0001893285 00000 n
-0000005642 00000 n
-0000005868 00000 n
-0000789037 00000 n
-0001893195 00000 n
-0000005917 00000 n
-0000006140 00000 n
-0000876767 00000 n
-0001893104 00000 n
-0000006189 00000 n
-0000006326 00000 n
-0000891534 00000 n
-0001893010 00000 n
-0000006376 00000 n
-0000006600 00000 n
-0000897782 00000 n
-0001892915 00000 n
-0000006650 00000 n
-0000006778 00000 n
-0000921180 00000 n
-0001892820 00000 n
-0000006828 00000 n
-0000006928 00000 n
-0001055792 00000 n
-0001892725 00000 n
-0000006978 00000 n
-0000007253 00000 n
-0001059536 00000 n
-0001892630 00000 n
-0000007303 00000 n
-0000007433 00000 n
-0001066716 00000 n
-0001892535 00000 n
-0000007483 00000 n
-0000007756 00000 n
-0001067297 00000 n
-0001892440 00000 n
-0000007806 00000 n
-0000007962 00000 n
-0001077264 00000 n
-0001892345 00000 n
-0000008012 00000 n
-0000008178 00000 n
-0001078365 00000 n
-0001892250 00000 n
-0000008228 00000 n
-0000008437 00000 n
-0001087204 00000 n
-0001892155 00000 n
-0000008487 00000 n
-0000008653 00000 n
-0001134326 00000 n
-0001892060 00000 n
-0000008703 00000 n
-0000008963 00000 n
-0001152306 00000 n
-0001891965 00000 n
-0000009013 00000 n
-0000009191 00000 n
-0001162718 00000 n
-0001891870 00000 n
-0000009241 00000 n
-0000009427 00000 n
-0001177896 00000 n
-0001891775 00000 n
-0000009477 00000 n
-0000009747 00000 n
-0001187226 00000 n
-0001891680 00000 n
-0000009797 00000 n
-0000009993 00000 n
-0001188160 00000 n
-0001891585 00000 n
-0000010043 00000 n
-0000010247 00000 n
-0001303010 00000 n
-0001891504 00000 n
-0000010291 00000 n
-0000010360 00000 n
-0000012579 00000 n
-0000013827 00000 n
-0000010424 00000 n
-0000012700 00000 n
-0000012762 00000 n
-0001882271 00000 n
-0001883878 00000 n
-0001885859 00000 n
-0001882092 00000 n
-0001884588 00000 n
-0001881555 00000 n
-0001882982 00000 n
-0001884233 00000 n
-0001883338 00000 n
-0001884943 00000 n
-0001881913 00000 n
-0001883700 00000 n
-0001884410 00000 n
-0001881379 00000 n
-0000012884 00000 n
-0001884056 00000 n
-0000012947 00000 n
-0000013009 00000 n
-0000013072 00000 n
-0000013135 00000 n
-0000013198 00000 n
-0000013261 00000 n
-0000013324 00000 n
-0000013387 00000 n
-0000013450 00000 n
-0000013513 00000 n
-0000013576 00000 n
-0000013639 00000 n
-0000013702 00000 n
-0000013765 00000 n
-0001886041 00000 n
-0001882804 00000 n
-0001887113 00000 n
-0000019177 00000 n
-0000016231 00000 n
-0000014159 00000 n
-0000016352 00000 n
-0000016414 00000 n
-0000016477 00000 n
-0000016540 00000 n
-0000016603 00000 n
-0000016666 00000 n
-0000016729 00000 n
-0000016792 00000 n
-0000016855 00000 n
-0000016918 00000 n
-0000016980 00000 n
-0000017043 00000 n
-0000017106 00000 n
-0000017169 00000 n
-0000017232 00000 n
-0000017295 00000 n
-0000017358 00000 n
-0000017421 00000 n
-0000017484 00000 n
-0000017547 00000 n
-0000017609 00000 n
-0000017672 00000 n
-0000017735 00000 n
-0000017798 00000 n
-0000017861 00000 n
-0000017923 00000 n
-0000017986 00000 n
-0000018049 00000 n
-0000018112 00000 n
-0000018175 00000 n
-0000018238 00000 n
-0000018301 00000 n
-0000018364 00000 n
-0000018427 00000 n
-0000018488 00000 n
-0000018551 00000 n
-0000018614 00000 n
-0000018677 00000 n
-0000018740 00000 n
-0000018803 00000 n
-0000018866 00000 n
-0000018929 00000 n
-0000018992 00000 n
-0000019055 00000 n
-0000024628 00000 n
-0000021807 00000 n
-0000019340 00000 n
-0000021928 00000 n
-0000021990 00000 n
-0000022053 00000 n
-0000022116 00000 n
-0000022179 00000 n
-0000022242 00000 n
-0000022305 00000 n
-0001886937 00000 n
-0000022368 00000 n
-0000022431 00000 n
-0000022493 00000 n
-0000022556 00000 n
-0000022618 00000 n
-0000022681 00000 n
-0000022744 00000 n
-0000022807 00000 n
-0000022870 00000 n
-0000022933 00000 n
-0000022996 00000 n
-0000023059 00000 n
-0000023122 00000 n
-0000023185 00000 n
-0000023247 00000 n
-0000023310 00000 n
-0000023372 00000 n
-0000023435 00000 n
-0000023498 00000 n
-0000023561 00000 n
-0000023624 00000 n
-0000023687 00000 n
-0000023750 00000 n
-0000023813 00000 n
-0000023876 00000 n
-0000023937 00000 n
-0000024000 00000 n
-0000024063 00000 n
-0000024126 00000 n
-0000024189 00000 n
-0000024252 00000 n
-0000024315 00000 n
-0000024378 00000 n
-0000024441 00000 n
-0000024504 00000 n
-0000024566 00000 n
-0000029053 00000 n
-0000026674 00000 n
-0000024830 00000 n
-0000026795 00000 n
-0000026857 00000 n
-0000026920 00000 n
-0000026983 00000 n
-0000027046 00000 n
-0000027109 00000 n
-0000027172 00000 n
-0000027235 00000 n
-0000027298 00000 n
-0000027361 00000 n
-0000027423 00000 n
-0000027486 00000 n
-0000027549 00000 n
-0001883516 00000 n
-0001883160 00000 n
-0000027673 00000 n
-0000027736 00000 n
-0000027798 00000 n
-0000027861 00000 n
-0000027924 00000 n
-0000027987 00000 n
-0000028050 00000 n
-0000028113 00000 n
-0000028176 00000 n
-0000028239 00000 n
-0000028302 00000 n
-0000028364 00000 n
-0000028427 00000 n
-0000028490 00000 n
-0000028553 00000 n
-0000028616 00000 n
-0000028679 00000 n
-0000028742 00000 n
-0000028866 00000 n
-0000028929 00000 n
-0000028991 00000 n
-0000034564 00000 n
-0000031863 00000 n
-0000029255 00000 n
-0000031984 00000 n
-0000032046 00000 n
-0000032109 00000 n
-0000032172 00000 n
-0000032235 00000 n
-0000032298 00000 n
-0000032361 00000 n
-0000032424 00000 n
-0000032487 00000 n
-0000032550 00000 n
-0000032612 00000 n
-0000032675 00000 n
-0000032738 00000 n
-0000032801 00000 n
-0000032864 00000 n
-0000032927 00000 n
-0000032990 00000 n
-0000033053 00000 n
-0000033116 00000 n
-0000033179 00000 n
-0000033242 00000 n
-0000033305 00000 n
-0000033368 00000 n
-0000033431 00000 n
-0000033493 00000 n
-0000033556 00000 n
-0000033619 00000 n
-0000033682 00000 n
-0000033745 00000 n
-0000033808 00000 n
-0000033871 00000 n
-0000033934 00000 n
-0000033997 00000 n
-0000034060 00000 n
-0000034123 00000 n
-0000034186 00000 n
-0000034249 00000 n
-0000034312 00000 n
-0000034375 00000 n
-0000034438 00000 n
-0000034501 00000 n
-0000040313 00000 n
-0000037551 00000 n
-0000034753 00000 n
-0000037672 00000 n
-0000037734 00000 n
-0000037797 00000 n
-0000037859 00000 n
-0000037922 00000 n
-0000037985 00000 n
-0000038048 00000 n
-0000038111 00000 n
-0000038174 00000 n
-0000038237 00000 n
-0000038300 00000 n
-0000038363 00000 n
-0000038426 00000 n
-0000038489 00000 n
-0000038552 00000 n
-0000038615 00000 n
-0000038678 00000 n
-0000038741 00000 n
-0000038804 00000 n
-0000038867 00000 n
-0000038929 00000 n
-0000038992 00000 n
-0000039055 00000 n
-0000039118 00000 n
-0000039181 00000 n
-0000039244 00000 n
-0000039307 00000 n
-0000039370 00000 n
-0000039433 00000 n
-0000039496 00000 n
-0000039558 00000 n
-0000039621 00000 n
-0000039684 00000 n
-0000039747 00000 n
-0000039810 00000 n
-0000039873 00000 n
-0000039936 00000 n
-0000039999 00000 n
-0000040062 00000 n
-0000040125 00000 n
-0000040188 00000 n
-0000040251 00000 n
-0000043176 00000 n
-0000046286 00000 n
-0000043010 00000 n
-0000040489 00000 n
-0000043332 00000 n
-0000043394 00000 n
-0000043457 00000 n
-0000043520 00000 n
-0000043583 00000 n
-0000043646 00000 n
-0000043709 00000 n
-0000043772 00000 n
-0000043834 00000 n
-0000043897 00000 n
-0000043960 00000 n
-0000044023 00000 n
-0000044086 00000 n
-0000044149 00000 n
-0000044212 00000 n
-0000044275 00000 n
-0000044338 00000 n
-0000044401 00000 n
-0000044464 00000 n
-0000044526 00000 n
-0000044589 00000 n
-0000044652 00000 n
-0000044715 00000 n
-0000044778 00000 n
-0000044841 00000 n
-0000044904 00000 n
-0000044967 00000 n
-0000045030 00000 n
-0000045092 00000 n
-0000045155 00000 n
-0000045218 00000 n
-0000045280 00000 n
-0000045343 00000 n
-0000045406 00000 n
-0000045469 00000 n
-0000045532 00000 n
-0000045595 00000 n
-0000045658 00000 n
-0000045721 00000 n
-0000045784 00000 n
-0001882627 00000 n
-0000045846 00000 n
-0000045909 00000 n
-0000045972 00000 n
-0000046035 00000 n
-0000046098 00000 n
-0000046161 00000 n
-0001882450 00000 n
-0000046224 00000 n
-0000043147 00000 n
-0000051950 00000 n
-0000049003 00000 n
-0000046527 00000 n
-0000049124 00000 n
-0000049186 00000 n
-0000049249 00000 n
-0000049310 00000 n
-0000049373 00000 n
-0000049436 00000 n
-0000049499 00000 n
-0000049560 00000 n
-0000049623 00000 n
-0000049686 00000 n
-0000049749 00000 n
-0000049812 00000 n
-0000049875 00000 n
-0000049938 00000 n
-0000050001 00000 n
-0000050064 00000 n
-0000050126 00000 n
-0000050189 00000 n
-0000050252 00000 n
-0000050315 00000 n
-0000050378 00000 n
-0000050441 00000 n
-0000050504 00000 n
-0000050567 00000 n
-0000050630 00000 n
-0000050693 00000 n
-0000050756 00000 n
-0000050819 00000 n
-0000050882 00000 n
-0000050945 00000 n
-0000051008 00000 n
-0000051071 00000 n
-0000051134 00000 n
-0000051197 00000 n
-0000051260 00000 n
-0000051323 00000 n
-0000051386 00000 n
-0000051449 00000 n
-0000051512 00000 n
-0000051574 00000 n
-0000051637 00000 n
-0000051700 00000 n
-0000051763 00000 n
-0000051826 00000 n
-0000051888 00000 n
-0000056293 00000 n
-0000054350 00000 n
-0000052139 00000 n
-0000054471 00000 n
-0000054533 00000 n
-0000054596 00000 n
-0000054658 00000 n
-0000054721 00000 n
-0000054784 00000 n
-0000054847 00000 n
-0000054910 00000 n
-0000054973 00000 n
-0000055036 00000 n
-0000055099 00000 n
-0000055162 00000 n
-0000055225 00000 n
-0000055288 00000 n
-0000055351 00000 n
-0000055414 00000 n
-0000055477 00000 n
-0000055540 00000 n
-0000055603 00000 n
-0000055666 00000 n
-0000055729 00000 n
-0000055853 00000 n
-0001881730 00000 n
-0000055916 00000 n
-0000055979 00000 n
-0000056042 00000 n
-0000056105 00000 n
-0000056168 00000 n
-0000056230 00000 n
-0000060748 00000 n
-0000059559 00000 n
-0000056508 00000 n
-0000059680 00000 n
-0000059742 00000 n
-0000059805 00000 n
-0000059867 00000 n
-0000059930 00000 n
-0000059993 00000 n
-0000060056 00000 n
-0000060119 00000 n
-0000060182 00000 n
-0000060245 00000 n
-0000060308 00000 n
-0000060371 00000 n
-0000060434 00000 n
-0000060497 00000 n
-0000060560 00000 n
-0000060622 00000 n
-0000060685 00000 n
-0000064767 00000 n
-0000063579 00000 n
-0000060924 00000 n
-0000063700 00000 n
-0000063762 00000 n
-0000063825 00000 n
-0000063888 00000 n
-0000063951 00000 n
-0000064014 00000 n
-0000064077 00000 n
-0000064140 00000 n
-0000064202 00000 n
-0000064265 00000 n
-0000064328 00000 n
-0000064391 00000 n
-0000064453 00000 n
-0000064516 00000 n
-0000064579 00000 n
-0000064642 00000 n
-0000064705 00000 n
-0001887267 00000 n
-0000069178 00000 n
-0000067549 00000 n
-0000064956 00000 n
-0000067670 00000 n
-0000067732 00000 n
-0000067795 00000 n
-0000067858 00000 n
-0000067921 00000 n
-0000067984 00000 n
-0000068047 00000 n
-0000068110 00000 n
-0000068173 00000 n
-0000068236 00000 n
-0000068299 00000 n
-0000068362 00000 n
-0000068425 00000 n
-0000068488 00000 n
-0000068551 00000 n
-0000068614 00000 n
-0000068677 00000 n
-0000068740 00000 n
-0000068803 00000 n
-0000068866 00000 n
-0000068927 00000 n
-0000068990 00000 n
-0000069053 00000 n
-0000069116 00000 n
-0000073738 00000 n
-0000072299 00000 n
-0000069367 00000 n
-0000072420 00000 n
-0000072482 00000 n
-0000072545 00000 n
-0000072608 00000 n
-0000072671 00000 n
-0000072734 00000 n
-0000072797 00000 n
-0000072859 00000 n
-0000072922 00000 n
-0000072985 00000 n
-0000073048 00000 n
-0000073110 00000 n
-0000073173 00000 n
-0000073236 00000 n
-0000073299 00000 n
-0000073362 00000 n
-0000073425 00000 n
-0000073487 00000 n
-0000073550 00000 n
-0000073613 00000 n
-0000073676 00000 n
-0000078236 00000 n
-0000077047 00000 n
-0000073940 00000 n
-0000077168 00000 n
-0000077230 00000 n
-0001886403 00000 n
-0000077293 00000 n
-0001885490 00000 n
-0000077356 00000 n
-0000077419 00000 n
-0000077482 00000 n
-0000077545 00000 n
-0000077608 00000 n
-0001886757 00000 n
-0000077671 00000 n
-0000077733 00000 n
-0000077796 00000 n
-0000077859 00000 n
-0000077921 00000 n
-0000077984 00000 n
-0000078047 00000 n
-0000078110 00000 n
-0000078173 00000 n
-0000082943 00000 n
-0000081755 00000 n
-0000078464 00000 n
-0000081876 00000 n
-0000081938 00000 n
-0000082001 00000 n
-0000082064 00000 n
-0000082127 00000 n
-0000082190 00000 n
-0000082253 00000 n
-0000082316 00000 n
-0000082379 00000 n
-0000082442 00000 n
-0000082505 00000 n
-0000082568 00000 n
-0000082631 00000 n
-0000082692 00000 n
-0000082755 00000 n
-0000082817 00000 n
-0000082880 00000 n
-0000088116 00000 n
-0000086485 00000 n
-0000083132 00000 n
-0000086606 00000 n
-0000086668 00000 n
-0000086731 00000 n
-0000086794 00000 n
-0000086857 00000 n
-0000086920 00000 n
-0000086983 00000 n
-0000087046 00000 n
-0000087109 00000 n
-0000087172 00000 n
-0000087235 00000 n
-0000087298 00000 n
-0000087361 00000 n
-0000087424 00000 n
-0000087487 00000 n
-0000087550 00000 n
-0000087613 00000 n
-0000087676 00000 n
-0000087739 00000 n
-0000087802 00000 n
-0000087865 00000 n
-0000087928 00000 n
-0000087991 00000 n
-0000088054 00000 n
-0000092765 00000 n
-0000091200 00000 n
-0000088318 00000 n
-0000091321 00000 n
-0000091383 00000 n
-0000091445 00000 n
-0000091508 00000 n
-0000091571 00000 n
-0000091634 00000 n
-0000091697 00000 n
-0000091760 00000 n
-0000091823 00000 n
-0000091886 00000 n
-0000091949 00000 n
-0000092012 00000 n
-0000092075 00000 n
-0000092138 00000 n
-0000092201 00000 n
-0000092264 00000 n
-0000092327 00000 n
-0000092389 00000 n
-0000092452 00000 n
-0000092515 00000 n
-0000092578 00000 n
-0001881203 00000 n
-0000092641 00000 n
-0000092703 00000 n
-0000096090 00000 n
-0000096997 00000 n
-0000095924 00000 n
-0000092967 00000 n
-0000096245 00000 n
-0000096307 00000 n
-0000096369 00000 n
-0000096432 00000 n
-0000096495 00000 n
-0000096558 00000 n
-0000096621 00000 n
-0000096684 00000 n
-0000096746 00000 n
-0000096809 00000 n
-0000096872 00000 n
-0000096935 00000 n
-0001884766 00000 n
-0001886222 00000 n
-0001886580 00000 n
-0000096061 00000 n
-0000101707 00000 n
-0000099577 00000 n
-0000097290 00000 n
-0000099698 00000 n
-0000099760 00000 n
-0000099823 00000 n
-0000099886 00000 n
-0000099949 00000 n
-0000100012 00000 n
-0000100075 00000 n
-0000100138 00000 n
-0000100201 00000 n
-0000100264 00000 n
-0000100327 00000 n
-0000100390 00000 n
-0000100453 00000 n
-0000100515 00000 n
-0000100578 00000 n
-0000100641 00000 n
-0000100704 00000 n
-0000100767 00000 n
-0000100830 00000 n
-0000100893 00000 n
-0000100956 00000 n
-0000101019 00000 n
-0000101080 00000 n
-0000101143 00000 n
-0000101206 00000 n
-0000101269 00000 n
-0000101332 00000 n
-0000101395 00000 n
-0000101458 00000 n
-0000101521 00000 n
-0000101584 00000 n
-0000105517 00000 n
-0000106678 00000 n
-0000105351 00000 n
-0000101922 00000 n
-0000105673 00000 n
-0001885120 00000 n
-0000105735 00000 n
-0000105798 00000 n
-0000105860 00000 n
-0000105923 00000 n
-0000105986 00000 n
-0000106049 00000 n
-0000106112 00000 n
-0000106175 00000 n
-0000106238 00000 n
-0000106301 00000 n
-0000106364 00000 n
-0000106426 00000 n
-0000106489 00000 n
-0000106552 00000 n
-0000106615 00000 n
-0000105488 00000 n
-0000112386 00000 n
-0000109754 00000 n
-0000106971 00000 n
-0000109875 00000 n
-0000109937 00000 n
-0000110000 00000 n
-0000110063 00000 n
-0000110125 00000 n
-0000110188 00000 n
-0000110251 00000 n
-0000110314 00000 n
-0000110377 00000 n
-0000110440 00000 n
-0000110502 00000 n
-0000110565 00000 n
-0000110628 00000 n
-0000110691 00000 n
-0000110754 00000 n
-0000110817 00000 n
-0000110880 00000 n
-0000110943 00000 n
-0000111006 00000 n
-0000111067 00000 n
-0000111130 00000 n
-0000111193 00000 n
-0000111256 00000 n
-0000111319 00000 n
-0000111382 00000 n
-0000111445 00000 n
-0000111508 00000 n
-0000111571 00000 n
-0000111634 00000 n
-0000111697 00000 n
-0000111760 00000 n
-0000111822 00000 n
-0000111885 00000 n
-0000111948 00000 n
-0000112011 00000 n
-0000112074 00000 n
-0000112137 00000 n
-0000112200 00000 n
-0000112263 00000 n
-0000112325 00000 n
-0001887421 00000 n
-0000118031 00000 n
-0000115081 00000 n
-0000112562 00000 n
-0000115202 00000 n
-0000115264 00000 n
-0000115327 00000 n
-0000115390 00000 n
-0000115453 00000 n
-0000115516 00000 n
-0000115579 00000 n
-0000115642 00000 n
-0000115705 00000 n
-0000115768 00000 n
-0000115830 00000 n
-0000115893 00000 n
-0000115956 00000 n
-0000116019 00000 n
-0000116082 00000 n
-0000116145 00000 n
-0000116208 00000 n
-0000116271 00000 n
-0000116334 00000 n
-0000116397 00000 n
-0000116459 00000 n
-0000116522 00000 n
-0000116585 00000 n
-0000116648 00000 n
-0000116711 00000 n
-0000116774 00000 n
-0000116837 00000 n
-0000116900 00000 n
-0000116963 00000 n
-0000117026 00000 n
-0000117089 00000 n
-0000117152 00000 n
-0000117215 00000 n
-0000117278 00000 n
-0000117341 00000 n
-0000117404 00000 n
-0000117467 00000 n
-0000117530 00000 n
-0000117593 00000 n
-0000117655 00000 n
-0000117718 00000 n
-0000117781 00000 n
-0000117844 00000 n
-0000117907 00000 n
-0000117969 00000 n
-0000123692 00000 n
-0000120993 00000 n
-0000118207 00000 n
-0000121114 00000 n
-0000121176 00000 n
-0000121239 00000 n
-0000121302 00000 n
-0000121365 00000 n
-0000121428 00000 n
-0000121491 00000 n
-0000121554 00000 n
-0000121617 00000 n
-0000121680 00000 n
-0000121742 00000 n
-0000121805 00000 n
-0000121868 00000 n
-0000121931 00000 n
-0000121994 00000 n
-0000122057 00000 n
-0000122120 00000 n
-0000122183 00000 n
-0000122246 00000 n
-0000122309 00000 n
-0000122372 00000 n
-0000122435 00000 n
-0000122498 00000 n
-0000122561 00000 n
-0000122624 00000 n
-0000122687 00000 n
-0000122750 00000 n
-0000122812 00000 n
-0000122875 00000 n
-0000122938 00000 n
-0000123001 00000 n
-0000123064 00000 n
-0000123127 00000 n
-0000123190 00000 n
-0000123253 00000 n
-0000123316 00000 n
-0000123379 00000 n
-0000123442 00000 n
-0000123505 00000 n
-0000123568 00000 n
-0000123630 00000 n
-0000129151 00000 n
-0000126322 00000 n
-0000123881 00000 n
-0000126443 00000 n
-0000126505 00000 n
-0000126568 00000 n
-0000126631 00000 n
-0000126694 00000 n
-0000126757 00000 n
-0000126819 00000 n
-0000126882 00000 n
-0000126945 00000 n
-0000127008 00000 n
-0000127071 00000 n
-0000127134 00000 n
-0000127197 00000 n
-0000127260 00000 n
-0000127323 00000 n
-0000127386 00000 n
-0000127449 00000 n
-0000127512 00000 n
-0000127575 00000 n
-0000127637 00000 n
-0000127700 00000 n
-0000127763 00000 n
-0000127826 00000 n
-0000127889 00000 n
-0000127952 00000 n
-0000128015 00000 n
-0000128078 00000 n
-0000128141 00000 n
-0000128203 00000 n
-0000128266 00000 n
-0000128329 00000 n
-0000128452 00000 n
-0000128515 00000 n
-0000128578 00000 n
-0000128642 00000 n
-0000128706 00000 n
-0000128769 00000 n
-0000128833 00000 n
-0000128897 00000 n
-0000128961 00000 n
-0000129025 00000 n
-0000129088 00000 n
-0000134371 00000 n
-0000131463 00000 n
-0000129340 00000 n
-0000131587 00000 n
-0000131651 00000 n
-0000131716 00000 n
-0000131781 00000 n
-0000131846 00000 n
-0000131911 00000 n
-0000131976 00000 n
-0000132041 00000 n
-0000132106 00000 n
-0000132171 00000 n
-0000132235 00000 n
-0000132300 00000 n
-0000132365 00000 n
-0000132430 00000 n
-0000132495 00000 n
-0000132558 00000 n
-0000132623 00000 n
-0000132688 00000 n
-0000132753 00000 n
-0000132818 00000 n
-0000132883 00000 n
-0000132948 00000 n
-0000133013 00000 n
-0000133078 00000 n
-0000133142 00000 n
-0000133207 00000 n
-0000133272 00000 n
-0000133337 00000 n
-0000133402 00000 n
-0000133467 00000 n
-0000133532 00000 n
-0000133597 00000 n
-0000133662 00000 n
-0000133726 00000 n
-0000133791 00000 n
-0000133856 00000 n
-0000133921 00000 n
-0000134048 00000 n
-0000134112 00000 n
-0000134177 00000 n
-0000134242 00000 n
-0000134307 00000 n
-0000139157 00000 n
-0000137412 00000 n
-0000134561 00000 n
-0000137536 00000 n
-0000137600 00000 n
-0000137665 00000 n
-0000137730 00000 n
-0000137795 00000 n
-0000137860 00000 n
-0000137925 00000 n
-0000137990 00000 n
-0000138055 00000 n
-0000138120 00000 n
-0000138185 00000 n
-0000138250 00000 n
-0000138315 00000 n
-0000138380 00000 n
-0000138445 00000 n
-0000138510 00000 n
-0000138575 00000 n
-0000138640 00000 n
-0000138705 00000 n
-0000138770 00000 n
-0000138835 00000 n
-0000138900 00000 n
-0000138964 00000 n
-0000139029 00000 n
-0000139093 00000 n
-0000143283 00000 n
-0000141992 00000 n
-0000139334 00000 n
-0000142116 00000 n
-0000142180 00000 n
-0000142245 00000 n
-0000142310 00000 n
-0000142375 00000 n
-0000142440 00000 n
-0000142505 00000 n
-0000142569 00000 n
-0000142634 00000 n
-0000142699 00000 n
-0000142764 00000 n
-0000142829 00000 n
-0000142894 00000 n
-0000142959 00000 n
-0000143023 00000 n
-0000143088 00000 n
-0000143153 00000 n
-0000143218 00000 n
-0000148766 00000 n
-0000146244 00000 n
-0000143460 00000 n
-0000146368 00000 n
-0000146432 00000 n
-0000146497 00000 n
-0000146562 00000 n
-0000146627 00000 n
-0000146692 00000 n
-0000146757 00000 n
-0000146822 00000 n
-0000146887 00000 n
-0000146952 00000 n
-0000147017 00000 n
-0000147082 00000 n
-0000147147 00000 n
-0000147211 00000 n
-0000147276 00000 n
-0000147341 00000 n
-0000147406 00000 n
-0000147471 00000 n
-0000147536 00000 n
-0000147601 00000 n
-0000147666 00000 n
-0000147731 00000 n
-0000147796 00000 n
-0000147860 00000 n
-0000147925 00000 n
-0000147990 00000 n
-0000148055 00000 n
-0000148120 00000 n
-0000148185 00000 n
-0000148250 00000 n
-0000148315 00000 n
-0000148380 00000 n
-0000148443 00000 n
-0000148508 00000 n
-0000148573 00000 n
-0000148638 00000 n
-0000148702 00000 n
-0000154749 00000 n
-0000151319 00000 n
-0000148943 00000 n
-0000151443 00000 n
-0000151507 00000 n
-0000151572 00000 n
-0000151637 00000 n
-0000151702 00000 n
-0000151767 00000 n
-0000151832 00000 n
-0000151897 00000 n
-0000151962 00000 n
-0000152027 00000 n
-0000152091 00000 n
-0000152156 00000 n
-0000152221 00000 n
-0000152286 00000 n
-0000152351 00000 n
-0000152415 00000 n
-0000152480 00000 n
-0000152545 00000 n
-0000152610 00000 n
-0000152675 00000 n
-0000152740 00000 n
-0000152805 00000 n
-0000152869 00000 n
-0000152934 00000 n
-0000152999 00000 n
-0000153064 00000 n
-0000153129 00000 n
-0000153194 00000 n
-0000153259 00000 n
-0000153324 00000 n
-0000153388 00000 n
-0000153453 00000 n
-0000153518 00000 n
-0000153583 00000 n
-0000153648 00000 n
-0000153713 00000 n
-0000153778 00000 n
-0000153843 00000 n
-0000153908 00000 n
-0000153972 00000 n
-0000154037 00000 n
-0000154102 00000 n
-0000154167 00000 n
-0000154232 00000 n
-0000154297 00000 n
-0000154362 00000 n
-0000154427 00000 n
-0000154492 00000 n
-0000154556 00000 n
-0000154621 00000 n
-0000154685 00000 n
-0000160904 00000 n
-0000156954 00000 n
-0000154913 00000 n
-0000157078 00000 n
-0000157142 00000 n
-0000157207 00000 n
-0000157272 00000 n
-0000157337 00000 n
-0000157402 00000 n
-0000157467 00000 n
-0000157532 00000 n
-0000157597 00000 n
-0000157662 00000 n
-0000157726 00000 n
-0000157791 00000 n
-0000157856 00000 n
-0000157921 00000 n
-0000157986 00000 n
-0000158051 00000 n
-0000158116 00000 n
-0000158181 00000 n
-0000158246 00000 n
-0000158310 00000 n
-0000158375 00000 n
-0000158440 00000 n
-0000158505 00000 n
-0000158570 00000 n
-0000158635 00000 n
-0000158700 00000 n
-0000158765 00000 n
-0000158830 00000 n
-0000158893 00000 n
-0000158958 00000 n
-0000159023 00000 n
-0000159088 00000 n
-0000159153 00000 n
-0000159218 00000 n
-0000159283 00000 n
-0000159348 00000 n
-0000159413 00000 n
-0000159478 00000 n
-0000159543 00000 n
-0000159608 00000 n
-0000159673 00000 n
-0000159738 00000 n
-0000159802 00000 n
-0000159867 00000 n
-0000159932 00000 n
-0000159997 00000 n
-0000160062 00000 n
-0000160127 00000 n
-0000160192 00000 n
-0000160257 00000 n
-0000160322 00000 n
-0000160386 00000 n
-0000160451 00000 n
-0000160516 00000 n
-0000160581 00000 n
-0000160646 00000 n
-0000160711 00000 n
-0000160776 00000 n
-0000160840 00000 n
-0000166892 00000 n
-0000163265 00000 n
-0000161068 00000 n
-0000163390 00000 n
-0000163454 00000 n
-0000163519 00000 n
-0000163584 00000 n
-0000163649 00000 n
-0000163714 00000 n
-0000163779 00000 n
-0000163844 00000 n
+0000000536 00000 n
+0000023818 00000 n
+0001542000 00000 n
+0000000584 00000 n
+0000000733 00000 n
+0000052532 00000 n
+0001541910 00000 n
+0000000781 00000 n
+0000000872 00000 n
+0000101696 00000 n
+0001541820 00000 n
+0000000920 00000 n
+0000001090 00000 n
+0000129881 00000 n
+0001541730 00000 n
+0000001138 00000 n
+0000001389 00000 n
+0000135634 00000 n
+0001541640 00000 n
+0000001437 00000 n
+0000001536 00000 n
+0000198448 00000 n
+0001541550 00000 n
+0000001584 00000 n
+0000001871 00000 n
+0000280650 00000 n
+0001541460 00000 n
+0000001919 00000 n
+0000002041 00000 n
+0000305439 00000 n
+0001541370 00000 n
+0000002090 00000 n
+0000002333 00000 n
+0000335774 00000 n
+0001541280 00000 n
+0000002382 00000 n
+0000002636 00000 n
+0000424497 00000 n
+0001541190 00000 n
+0000002685 00000 n
+0000002903 00000 n
+0000527920 00000 n
+0001541100 00000 n
+0000002952 00000 n
+0000003244 00000 n
+0000536651 00000 n
+0001541010 00000 n
+0000003293 00000 n
+0000003606 00000 n
+0000543891 00000 n
+0001540920 00000 n
+0000003655 00000 n
+0000003891 00000 n
+0000586907 00000 n
+0001540830 00000 n
+0000003940 00000 n
+0000004118 00000 n
+0000660558 00000 n
+0001540740 00000 n
+0000004167 00000 n
+0000004550 00000 n
+0000694174 00000 n
+0001540650 00000 n
+0000004599 00000 n
+0000004898 00000 n
+0000731118 00000 n
+0001540560 00000 n
+0000004947 00000 n
+0000005221 00000 n
+0000737964 00000 n
+0001540470 00000 n
+0000005270 00000 n
+0000005430 00000 n
+0000754680 00000 n
+0001540380 00000 n
+0000005479 00000 n
+0000005705 00000 n
+0000824550 00000 n
+0001540290 00000 n
+0000005754 00000 n
+0000005977 00000 n
+0000915809 00000 n
+0001540200 00000 n
+0000006026 00000 n
+0000006163 00000 n
+0000928156 00000 n
+0001540109 00000 n
+0000006212 00000 n
+0000006435 00000 n
+0000933905 00000 n
+0001540015 00000 n
+0000006485 00000 n
+0000006613 00000 n
+0000961581 00000 n
+0001539920 00000 n
+0000006663 00000 n
+0000006763 00000 n
+0001106669 00000 n
+0001539825 00000 n
+0000006813 00000 n
+0000007088 00000 n
+0001107901 00000 n
+0001539730 00000 n
+0000007138 00000 n
+0000007268 00000 n
+0001118349 00000 n
+0001539635 00000 n
+0000007318 00000 n
+0000007591 00000 n
+0001118932 00000 n
+0001539540 00000 n
+0000007641 00000 n
+0000007797 00000 n
+0001125930 00000 n
+0001539445 00000 n
+0000007847 00000 n
+0000008013 00000 n
+0001130831 00000 n
+0001539350 00000 n
+0000008063 00000 n
+0000008272 00000 n
+0001137016 00000 n
+0001539255 00000 n
+0000008322 00000 n
+0000008488 00000 n
+0001188784 00000 n
+0001539160 00000 n
+0000008538 00000 n
+0000008798 00000 n
+0001207149 00000 n
+0001539065 00000 n
+0000008848 00000 n
+0000009026 00000 n
+0001217690 00000 n
+0001538970 00000 n
+0000009076 00000 n
+0000009262 00000 n
+0001226797 00000 n
+0001538875 00000 n
+0000009312 00000 n
+0000009582 00000 n
+0001236625 00000 n
+0001538780 00000 n
+0000009632 00000 n
+0000009828 00000 n
+0001237425 00000 n
+0001538685 00000 n
+0000009878 00000 n
+0000010082 00000 n
+0001349603 00000 n
+0001538604 00000 n
+0000010126 00000 n
+0000010195 00000 n
+0000012544 00000 n
+0000013793 00000 n
+0000010259 00000 n
+0000012665 00000 n
+0000012727 00000 n
+0001468372 00000 n
+0001465037 00000 n
+0001533792 00000 n
+0001462536 00000 n
+0001458375 00000 n
+0001455017 00000 n
+0001452373 00000 n
+0001447414 00000 n
+0001444974 00000 n
+0001442798 00000 n
+0001432728 00000 n
+0001422201 00000 n
+0001417963 00000 n
+0001408339 00000 n
+0000012849 00000 n
+0001400117 00000 n
+0000012912 00000 n
+0000012975 00000 n
+0000013038 00000 n
+0000013101 00000 n
+0000013164 00000 n
+0000013227 00000 n
+0000013290 00000 n
+0000013353 00000 n
+0000013416 00000 n
+0000013478 00000 n
+0000013541 00000 n
+0000013604 00000 n
+0000013667 00000 n
+0000013730 00000 n
+0001533937 00000 n
+0001396629 00000 n
+0001534225 00000 n
+0000019696 00000 n
+0000016622 00000 n
+0000014125 00000 n
+0000016743 00000 n
+0000016805 00000 n
+0000016868 00000 n
+0000016931 00000 n
+0000016994 00000 n
+0000017057 00000 n
+0000017120 00000 n
+0000017183 00000 n
+0000017246 00000 n
+0000017309 00000 n
+0000017372 00000 n
+0000017435 00000 n
+0000017498 00000 n
+0000017561 00000 n
+0000017623 00000 n
+0000017684 00000 n
+0000017747 00000 n
+0000017810 00000 n
+0000017873 00000 n
+0000017936 00000 n
+0000017999 00000 n
+0000018062 00000 n
+0000018125 00000 n
+0000018188 00000 n
+0000018251 00000 n
+0000018313 00000 n
+0000018376 00000 n
+0000018439 00000 n
+0000018502 00000 n
+0000018565 00000 n
+0000018627 00000 n
+0000018690 00000 n
+0000018753 00000 n
+0000018816 00000 n
+0000018879 00000 n
+0000018942 00000 n
+0000019005 00000 n
+0000019068 00000 n
+0000019131 00000 n
+0000019193 00000 n
+0000019256 00000 n
+0000019319 00000 n
+0000019382 00000 n
+0000019445 00000 n
+0000019508 00000 n
+0000019571 00000 n
+0000019634 00000 n
+0000023879 00000 n
+0000021877 00000 n
+0000019872 00000 n
+0000021998 00000 n
+0000022060 00000 n
+0000022123 00000 n
+0000022186 00000 n
+0000022249 00000 n
+0000022311 00000 n
+0000022374 00000 n
+0000022437 00000 n
+0000022500 00000 n
+0000022563 00000 n
+0001389294 00000 n
+0001384856 00000 n
+0000022686 00000 n
+0000022749 00000 n
+0000022812 00000 n
+0000022875 00000 n
+0000022936 00000 n
+0000022999 00000 n
+0000023062 00000 n
+0000023125 00000 n
+0000023188 00000 n
+0000023251 00000 n
+0000023314 00000 n
+0000023377 00000 n
+0000023440 00000 n
+0000023503 00000 n
+0000023566 00000 n
+0000023629 00000 n
+0000023692 00000 n
+0000023755 00000 n
+0000029784 00000 n
+0000027087 00000 n
+0000024081 00000 n
+0000027208 00000 n
+0000027270 00000 n
+0000027333 00000 n
+0000027396 00000 n
+0000027458 00000 n
+0000027521 00000 n
+0000027584 00000 n
+0000027647 00000 n
+0000027710 00000 n
+0000027773 00000 n
+0000027836 00000 n
+0000027899 00000 n
+0000027962 00000 n
+0000028024 00000 n
+0000028087 00000 n
+0000028150 00000 n
+0000028213 00000 n
+0000028276 00000 n
+0000028339 00000 n
+0000028402 00000 n
+0000028465 00000 n
+0000028528 00000 n
+0000028591 00000 n
+0000028654 00000 n
+0000028717 00000 n
+0000028780 00000 n
+0000028843 00000 n
+0000028906 00000 n
+0000028969 00000 n
+0000029032 00000 n
+0000029095 00000 n
+0000029158 00000 n
+0000029220 00000 n
+0000029283 00000 n
+0000029346 00000 n
+0000029409 00000 n
+0000029472 00000 n
+0000029534 00000 n
+0000029597 00000 n
+0000029660 00000 n
+0000029722 00000 n
+0000035795 00000 n
+0000033097 00000 n
+0000029986 00000 n
+0000033218 00000 n
+0000033280 00000 n
+0000033343 00000 n
+0000033406 00000 n
+0000033469 00000 n
+0000033532 00000 n
+0000033595 00000 n
+0000033658 00000 n
+0000033721 00000 n
+0000033784 00000 n
+0000033847 00000 n
+0000033910 00000 n
+0000033973 00000 n
+0000034035 00000 n
+0000034098 00000 n
+0000034161 00000 n
+0000034224 00000 n
+0000034287 00000 n
+0000034350 00000 n
+0000034413 00000 n
+0000034476 00000 n
+0000034539 00000 n
+0000034601 00000 n
+0000034664 00000 n
+0000034727 00000 n
+0000034790 00000 n
+0000034853 00000 n
+0000034916 00000 n
+0000034979 00000 n
+0000035042 00000 n
+0000035105 00000 n
+0000035167 00000 n
+0000035229 00000 n
+0000035292 00000 n
+0000035355 00000 n
+0000035418 00000 n
+0000035481 00000 n
+0000035544 00000 n
+0000035607 00000 n
+0000035670 00000 n
+0000035733 00000 n
+0000038849 00000 n
+0000041959 00000 n
+0000038683 00000 n
+0000035971 00000 n
+0000039005 00000 n
+0000039067 00000 n
+0000039130 00000 n
+0000039193 00000 n
+0000039256 00000 n
+0000039319 00000 n
+0000039382 00000 n
+0000039445 00000 n
+0000039507 00000 n
+0000039570 00000 n
+0000039633 00000 n
+0000039696 00000 n
+0000039759 00000 n
+0000039822 00000 n
+0000039885 00000 n
+0000039947 00000 n
+0000040010 00000 n
+0000040073 00000 n
+0000040136 00000 n
+0000040199 00000 n
+0000040262 00000 n
+0000040325 00000 n
+0000040388 00000 n
+0000040451 00000 n
+0000040514 00000 n
+0000040577 00000 n
+0000040640 00000 n
+0000040701 00000 n
+0000040764 00000 n
+0000040827 00000 n
+0000040890 00000 n
+0000040953 00000 n
+0000041016 00000 n
+0000041079 00000 n
+0000041142 00000 n
+0000041205 00000 n
+0000041268 00000 n
+0000041331 00000 n
+0000041394 00000 n
+0000041457 00000 n
+0000041520 00000 n
+0000041583 00000 n
+0000041646 00000 n
+0000041709 00000 n
+0001379208 00000 n
+0000041772 00000 n
+0000041835 00000 n
+0001376093 00000 n
+0000041897 00000 n
+0000038820 00000 n
+0000048001 00000 n
+0000045242 00000 n
+0000042187 00000 n
+0000045363 00000 n
+0000045425 00000 n
+0000045488 00000 n
+0000045550 00000 n
+0000045613 00000 n
+0000045676 00000 n
+0000045739 00000 n
+0000045802 00000 n
+0000045865 00000 n
+0000045928 00000 n
+0000045991 00000 n
+0000046054 00000 n
+0000046117 00000 n
+0000046180 00000 n
+0000046243 00000 n
+0000046306 00000 n
+0000046368 00000 n
+0000046431 00000 n
+0000046494 00000 n
+0000046557 00000 n
+0000046620 00000 n
+0000046683 00000 n
+0000046746 00000 n
+0000046809 00000 n
+0000046872 00000 n
+0000046935 00000 n
+0000046998 00000 n
+0000047059 00000 n
+0000047122 00000 n
+0000047185 00000 n
+0000047248 00000 n
+0000047311 00000 n
+0000047374 00000 n
+0000047437 00000 n
+0000047500 00000 n
+0000047563 00000 n
+0000047626 00000 n
+0000047689 00000 n
+0000047751 00000 n
+0000047814 00000 n
+0000047877 00000 n
+0000047939 00000 n
+0000052969 00000 n
+0000050651 00000 n
+0000048190 00000 n
+0000050772 00000 n
+0000050834 00000 n
+0000050897 00000 n
+0000050959 00000 n
+0000051022 00000 n
+0000051085 00000 n
+0000051148 00000 n
+0000051211 00000 n
+0000051274 00000 n
+0000051337 00000 n
+0000051400 00000 n
+0000051463 00000 n
+0000051526 00000 n
+0000051589 00000 n
+0000051652 00000 n
+0000051715 00000 n
+0000051777 00000 n
+0000051840 00000 n
+0000051903 00000 n
+0000051966 00000 n
+0000052029 00000 n
+0000052091 00000 n
+0000052154 00000 n
+0000052217 00000 n
+0000052280 00000 n
+0000052343 00000 n
+0000052406 00000 n
+0000052469 00000 n
+0000052593 00000 n
+0001372959 00000 n
+0000052656 00000 n
+0000052719 00000 n
+0000052782 00000 n
+0000052845 00000 n
+0000052907 00000 n
+0000057929 00000 n
+0000056678 00000 n
+0000053184 00000 n
+0000056799 00000 n
+0000056861 00000 n
+0000056923 00000 n
+0000056986 00000 n
+0000057049 00000 n
+0000057112 00000 n
+0000057175 00000 n
+0000057238 00000 n
+0000057301 00000 n
+0000057364 00000 n
+0000057427 00000 n
+0000057490 00000 n
+0000057553 00000 n
+0000057616 00000 n
+0000057679 00000 n
+0000057742 00000 n
+0000057805 00000 n
+0000057867 00000 n
+0000062224 00000 n
+0000061035 00000 n
+0000058105 00000 n
+0000061156 00000 n
+0000061218 00000 n
+0000061281 00000 n
+0000061344 00000 n
+0000061407 00000 n
+0000061470 00000 n
+0000061533 00000 n
+0000061595 00000 n
+0000061658 00000 n
+0000061721 00000 n
+0000061784 00000 n
+0000061847 00000 n
+0000061910 00000 n
+0000061973 00000 n
+0000062036 00000 n
+0000062099 00000 n
+0000062162 00000 n
+0000066916 00000 n
+0000065288 00000 n
+0000062413 00000 n
+0000065409 00000 n
+0000065471 00000 n
+0000065534 00000 n
+0000065596 00000 n
+0000065659 00000 n
+0000065722 00000 n
+0000065785 00000 n
+0000065848 00000 n
+0000065911 00000 n
+0000065974 00000 n
+0000066037 00000 n
+0000066100 00000 n
+0000066163 00000 n
+0000066226 00000 n
+0000066289 00000 n
+0000066352 00000 n
+0000066415 00000 n
+0000066478 00000 n
+0000066541 00000 n
+0000066604 00000 n
+0000066667 00000 n
+0000066730 00000 n
+0000066791 00000 n
+0000066854 00000 n
+0001534379 00000 n
+0000071817 00000 n
+0000070379 00000 n
+0000067105 00000 n
+0000070500 00000 n
+0000070562 00000 n
+0000070624 00000 n
+0000070687 00000 n
+0000070750 00000 n
+0000070813 00000 n
+0000070876 00000 n
+0000070939 00000 n
+0000071002 00000 n
+0000071064 00000 n
+0000071127 00000 n
+0000071190 00000 n
+0000071253 00000 n
+0000071316 00000 n
+0000071379 00000 n
+0000071442 00000 n
+0000071504 00000 n
+0000071567 00000 n
+0000071629 00000 n
+0000071692 00000 n
+0000071755 00000 n
+0000076874 00000 n
+0000075182 00000 n
+0000072019 00000 n
+0000075303 00000 n
+0000075365 00000 n
+0001533502 00000 n
+0000075428 00000 n
+0001533205 00000 n
+0000075491 00000 n
+0000075554 00000 n
+0000075617 00000 n
+0000075680 00000 n
+0000075743 00000 n
+0000075806 00000 n
+0000075869 00000 n
+0000075932 00000 n
+0000075995 00000 n
+0000076058 00000 n
+0000076121 00000 n
+0000076184 00000 n
+0000076247 00000 n
+0000076310 00000 n
+0000076373 00000 n
+0000076436 00000 n
+0000076499 00000 n
+0000076562 00000 n
+0000076624 00000 n
+0000076687 00000 n
+0000076750 00000 n
+0000076812 00000 n
+0000082108 00000 n
+0000081175 00000 n
+0000077076 00000 n
+0000081296 00000 n
+0000081358 00000 n
+0000081421 00000 n
+0000081483 00000 n
+0000081546 00000 n
+0000081609 00000 n
+0000081672 00000 n
+0000081735 00000 n
+0000081798 00000 n
+0000081861 00000 n
+0000081923 00000 n
+0000081982 00000 n
+0000082045 00000 n
+0000087881 00000 n
+0000086131 00000 n
+0000082323 00000 n
+0000086252 00000 n
+0000086314 00000 n
+0000086377 00000 n
+0000086440 00000 n
+0000086502 00000 n
+0000086565 00000 n
+0000086628 00000 n
+0000086689 00000 n
+0000086752 00000 n
+0000086815 00000 n
+0000086878 00000 n
+0000086940 00000 n
+0000087003 00000 n
+0000087066 00000 n
+0000087129 00000 n
+0000087192 00000 n
+0000087255 00000 n
+0000087318 00000 n
+0000087380 00000 n
+0000087443 00000 n
+0000087505 00000 n
+0000087568 00000 n
+0000087631 00000 n
+0000087694 00000 n
+0000087757 00000 n
+0000087819 00000 n
+0000092372 00000 n
+0000090933 00000 n
+0000088070 00000 n
+0000091054 00000 n
+0000091116 00000 n
+0000091179 00000 n
+0000091242 00000 n
+0000091305 00000 n
+0000091368 00000 n
+0000091430 00000 n
+0000091493 00000 n
+0000091556 00000 n
+0000091619 00000 n
+0000091682 00000 n
+0000091745 00000 n
+0000091808 00000 n
+0000091871 00000 n
+0000091933 00000 n
+0000091996 00000 n
+0000092059 00000 n
+0001369842 00000 n
+0000092122 00000 n
+0000092185 00000 n
+0000092248 00000 n
+0000092310 00000 n
+0000095847 00000 n
+0000096757 00000 n
+0000095681 00000 n
+0000092561 00000 n
+0000096003 00000 n
+0000096065 00000 n
+0000096127 00000 n
+0000096190 00000 n
+0000096253 00000 n
+0000096316 00000 n
+0000096379 00000 n
+0000096442 00000 n
+0000096505 00000 n
+0000096568 00000 n
+0000096631 00000 n
+0000096694 00000 n
+0001361132 00000 n
+0001534081 00000 n
+0001533647 00000 n
+0000095818 00000 n
+0000101757 00000 n
+0000099751 00000 n
+0000097037 00000 n
+0000099872 00000 n
+0000099934 00000 n
+0000099997 00000 n
+0000100060 00000 n
+0000100123 00000 n
+0000100186 00000 n
+0000100249 00000 n
+0000100312 00000 n
+0000100375 00000 n
+0000100438 00000 n
+0000100501 00000 n
+0000100564 00000 n
+0000100627 00000 n
+0000100690 00000 n
+0000100753 00000 n
+0000100816 00000 n
+0000100879 00000 n
+0000100942 00000 n
+0000101005 00000 n
+0000101068 00000 n
+0000101131 00000 n
+0000101194 00000 n
+0000101257 00000 n
+0000101320 00000 n
+0000101383 00000 n
+0000101446 00000 n
+0000101509 00000 n
+0000101570 00000 n
+0000101633 00000 n
+0000105866 00000 n
+0000107026 00000 n
+0000105700 00000 n
+0000101946 00000 n
+0000106021 00000 n
+0001355531 00000 n
+0000106083 00000 n
+0000106146 00000 n
+0000106209 00000 n
+0000106272 00000 n
+0000106335 00000 n
+0000106397 00000 n
+0000106460 00000 n
+0000106523 00000 n
+0000106586 00000 n
+0000106649 00000 n
+0000106712 00000 n
+0000106775 00000 n
+0000106838 00000 n
+0000106900 00000 n
+0000106963 00000 n
+0000105837 00000 n
+0000112993 00000 n
+0000110358 00000 n
+0000107306 00000 n
+0000110479 00000 n
+0000110541 00000 n
+0000110604 00000 n
+0000110667 00000 n
+0000110730 00000 n
+0000110792 00000 n
+0000110855 00000 n
+0000110918 00000 n
+0000110981 00000 n
+0000111044 00000 n
+0000111107 00000 n
+0000111170 00000 n
+0000111232 00000 n
+0000111295 00000 n
+0000111358 00000 n
+0000111421 00000 n
+0000111484 00000 n
+0000111547 00000 n
+0000111610 00000 n
+0000111673 00000 n
+0000111736 00000 n
+0000111798 00000 n
+0000111861 00000 n
+0000111924 00000 n
+0000111987 00000 n
+0000112050 00000 n
+0000112113 00000 n
+0000112176 00000 n
+0000112239 00000 n
+0000112302 00000 n
+0000112365 00000 n
+0000112428 00000 n
+0000112491 00000 n
+0000112554 00000 n
+0000112617 00000 n
+0000112680 00000 n
+0000112743 00000 n
+0000112806 00000 n
+0000112869 00000 n
+0000112931 00000 n
+0000118883 00000 n
+0000115936 00000 n
+0000113169 00000 n
+0000116057 00000 n
+0000116119 00000 n
+0000116182 00000 n
+0000116244 00000 n
+0000116307 00000 n
+0000116370 00000 n
+0000116433 00000 n
+0000116496 00000 n
+0000116559 00000 n
+0000116622 00000 n
+0000116685 00000 n
+0000116748 00000 n
+0000116811 00000 n
+0000116874 00000 n
+0000116936 00000 n
+0000116999 00000 n
+0000117062 00000 n
+0000117125 00000 n
+0000117188 00000 n
+0000117251 00000 n
+0000117314 00000 n
+0000117377 00000 n
+0000117440 00000 n
+0000117502 00000 n
+0000117565 00000 n
+0000117628 00000 n
+0000117691 00000 n
+0000117754 00000 n
+0000117817 00000 n
+0000117880 00000 n
+0000117943 00000 n
+0000118006 00000 n
+0000118067 00000 n
+0000118130 00000 n
+0000118193 00000 n
+0000118256 00000 n
+0000118319 00000 n
+0000118382 00000 n
+0000118445 00000 n
+0000118508 00000 n
+0000118571 00000 n
+0000118633 00000 n
+0000118696 00000 n
+0000118759 00000 n
+0000118821 00000 n
+0001534533 00000 n
+0000124888 00000 n
+0000122192 00000 n
+0000119059 00000 n
+0000122313 00000 n
+0000122375 00000 n
+0000122438 00000 n
+0000122500 00000 n
+0000122563 00000 n
+0000122626 00000 n
+0000122689 00000 n
+0000122752 00000 n
+0000122815 00000 n
+0000122878 00000 n
+0000122941 00000 n
+0000123004 00000 n
+0000123066 00000 n
+0000123128 00000 n
+0000123191 00000 n
+0000123254 00000 n
+0000123317 00000 n
+0000123380 00000 n
+0000123443 00000 n
+0000123506 00000 n
+0000123569 00000 n
+0000123632 00000 n
+0000123695 00000 n
+0000123758 00000 n
+0000123821 00000 n
+0000123884 00000 n
+0000123947 00000 n
+0000124010 00000 n
+0000124073 00000 n
+0000124135 00000 n
+0000124198 00000 n
+0000124261 00000 n
+0000124324 00000 n
+0000124387 00000 n
+0000124449 00000 n
+0000124512 00000 n
+0000124575 00000 n
+0000124638 00000 n
+0000124701 00000 n
+0000124764 00000 n
+0000124826 00000 n
+0000130632 00000 n
+0000127813 00000 n
+0000125077 00000 n
+0000127934 00000 n
+0000127996 00000 n
+0000128059 00000 n
+0000128121 00000 n
+0000128184 00000 n
+0000128247 00000 n
+0000128310 00000 n
+0000128373 00000 n
+0000128436 00000 n
+0000128499 00000 n
+0000128562 00000 n
+0000128625 00000 n
+0000128687 00000 n
+0000128750 00000 n
+0000128813 00000 n
+0000128876 00000 n
+0000128939 00000 n
+0000129002 00000 n
+0000129065 00000 n
+0000129127 00000 n
+0000129190 00000 n
+0000129253 00000 n
+0000129316 00000 n
+0000129379 00000 n
+0000129442 00000 n
+0000129505 00000 n
+0000129568 00000 n
+0000129631 00000 n
+0000129693 00000 n
+0000129756 00000 n
+0000129818 00000 n
+0000129942 00000 n
+0000130005 00000 n
+0000130068 00000 n
+0000130131 00000 n
+0000130194 00000 n
+0000130257 00000 n
+0000130320 00000 n
+0000130382 00000 n
+0000130445 00000 n
+0000130508 00000 n
+0000130570 00000 n
+0000136012 00000 n
+0000133188 00000 n
+0000130821 00000 n
+0000133309 00000 n
+0000133371 00000 n
+0000133434 00000 n
+0000133496 00000 n
+0000133559 00000 n
+0000133622 00000 n
+0000133685 00000 n
+0000133748 00000 n
+0000133811 00000 n
+0000133874 00000 n
+0000133937 00000 n
+0000134000 00000 n
+0000134062 00000 n
+0000134125 00000 n
+0000134188 00000 n
+0000134251 00000 n
+0000134314 00000 n
+0000134376 00000 n
+0000134439 00000 n
+0000134502 00000 n
+0000134565 00000 n
+0000134628 00000 n
+0000134691 00000 n
+0000134754 00000 n
+0000134817 00000 n
+0000134880 00000 n
+0000134942 00000 n
+0000135005 00000 n
+0000135068 00000 n
+0000135131 00000 n
+0000135194 00000 n
+0000135257 00000 n
+0000135320 00000 n
+0000135383 00000 n
+0000135446 00000 n
+0000135508 00000 n
+0000135571 00000 n
+0000135695 00000 n
+0000135758 00000 n
+0000135821 00000 n
+0000135885 00000 n
+0000135949 00000 n
+0000141114 00000 n
+0000139370 00000 n
+0000136201 00000 n
+0000139494 00000 n
+0000139558 00000 n
+0000139623 00000 n
+0000139688 00000 n
+0000139753 00000 n
+0000139818 00000 n
+0000139883 00000 n
+0000139948 00000 n
+0000140013 00000 n
+0000140078 00000 n
+0000140143 00000 n
+0000140208 00000 n
+0000140273 00000 n
+0000140336 00000 n
+0000140401 00000 n
+0000140466 00000 n
+0000140531 00000 n
+0000140596 00000 n
+0000140661 00000 n
+0000140726 00000 n
+0000140791 00000 n
+0000140856 00000 n
+0000140921 00000 n
+0000140986 00000 n
+0000141050 00000 n
+0000145531 00000 n
+0000144242 00000 n
+0000141291 00000 n
+0000144366 00000 n
+0000144430 00000 n
+0000144495 00000 n
+0000144560 00000 n
+0000144625 00000 n
+0000144690 00000 n
+0000144755 00000 n
+0000144820 00000 n
+0000144885 00000 n
+0000144949 00000 n
+0000145012 00000 n
+0000145076 00000 n
+0000145141 00000 n
+0000145206 00000 n
+0000145271 00000 n
+0000145336 00000 n
+0000145401 00000 n
+0000145466 00000 n
+0000151372 00000 n
+0000148850 00000 n
+0000145708 00000 n
+0000148974 00000 n
+0000149038 00000 n
+0000149103 00000 n
+0000149168 00000 n
+0000149232 00000 n
+0000149297 00000 n
+0000149362 00000 n
+0000149427 00000 n
+0000149492 00000 n
+0000149557 00000 n
+0000149622 00000 n
+0000149687 00000 n
+0000149752 00000 n
+0000149817 00000 n
+0000149882 00000 n
+0000149947 00000 n
+0000150011 00000 n
+0000150076 00000 n
+0000150141 00000 n
+0000150206 00000 n
+0000150271 00000 n
+0000150336 00000 n
+0000150401 00000 n
+0000150466 00000 n
+0000150531 00000 n
+0000150595 00000 n
+0000150660 00000 n
+0000150725 00000 n
+0000150790 00000 n
+0000150855 00000 n
+0000150920 00000 n
+0000150985 00000 n
+0000151050 00000 n
+0000151115 00000 n
+0000151179 00000 n
+0000151244 00000 n
+0000151308 00000 n
+0000157698 00000 n
+0000154270 00000 n
+0000151549 00000 n
+0000154394 00000 n
+0000154458 00000 n
+0000154523 00000 n
+0000154587 00000 n
+0000154652 00000 n
+0000154717 00000 n
+0000154782 00000 n
+0000154847 00000 n
+0000154912 00000 n
+0000154977 00000 n
+0000155042 00000 n
+0000155107 00000 n
+0000155171 00000 n
+0000155236 00000 n
+0000155301 00000 n
+0000155366 00000 n
+0000155431 00000 n
+0000155496 00000 n
+0000155561 00000 n
+0000155626 00000 n
+0000155691 00000 n
+0000155756 00000 n
+0000155821 00000 n
+0000155886 00000 n
+0000155951 00000 n
+0000156016 00000 n
+0000156081 00000 n
+0000156146 00000 n
+0000156211 00000 n
+0000156276 00000 n
+0000156341 00000 n
+0000156406 00000 n
+0000156470 00000 n
+0000156535 00000 n
+0000156600 00000 n
+0000156665 00000 n
+0000156730 00000 n
+0000156795 00000 n
+0000156860 00000 n
+0000156925 00000 n
+0000156990 00000 n
+0000157051 00000 n
+0000157116 00000 n
+0000157181 00000 n
+0000157246 00000 n
+0000157311 00000 n
+0000157376 00000 n
+0000157441 00000 n
+0000157506 00000 n
+0000157571 00000 n
+0000157634 00000 n
+0000164102 00000 n
+0000160156 00000 n
+0000157862 00000 n
+0000160280 00000 n
+0000160344 00000 n
+0000160409 00000 n
+0000160473 00000 n
+0000160538 00000 n
+0000160603 00000 n
+0000160668 00000 n
+0000160733 00000 n
+0000160798 00000 n
+0000160863 00000 n
+0000160928 00000 n
+0000160993 00000 n
+0000161057 00000 n
+0000161122 00000 n
+0000161187 00000 n
+0000161252 00000 n
+0000161317 00000 n
+0000161382 00000 n
+0000161447 00000 n
+0000161512 00000 n
+0000161577 00000 n
+0000161641 00000 n
+0000161706 00000 n
+0000161771 00000 n
+0000161836 00000 n
+0000161901 00000 n
+0000161966 00000 n
+0000162031 00000 n
+0000162096 00000 n
+0000162161 00000 n
+0000162225 00000 n
+0000162290 00000 n
+0000162355 00000 n
+0000162420 00000 n
+0000162485 00000 n
+0000162550 00000 n
+0000162615 00000 n
+0000162680 00000 n
+0000162745 00000 n
+0000162810 00000 n
+0000162875 00000 n
+0000162940 00000 n
+0000163005 00000 n
+0000163070 00000 n
+0000163134 00000 n
+0000163199 00000 n
+0000163264 00000 n
+0000163329 00000 n
+0000163394 00000 n
+0000163459 00000 n
+0000163524 00000 n
+0000163589 00000 n
+0000163654 00000 n
+0000163715 00000 n
+0000163780 00000 n
+0000163845 00000 n
0000163909 00000 n
0000163974 00000 n
0000164038 00000 n
-0000164103 00000 n
-0000164168 00000 n
-0000164233 00000 n
-0000164298 00000 n
-0000164363 00000 n
-0000164428 00000 n
-0000164493 00000 n
-0000164558 00000 n
-0000164622 00000 n
-0000164687 00000 n
-0000164752 00000 n
-0000164817 00000 n
-0000164882 00000 n
-0000164947 00000 n
-0000165012 00000 n
-0000165077 00000 n
-0000165142 00000 n
-0000165207 00000 n
-0000165272 00000 n
-0000165337 00000 n
-0000165401 00000 n
-0000165466 00000 n
-0000165531 00000 n
-0000165596 00000 n
-0000165661 00000 n
-0000165726 00000 n
-0000165791 00000 n
-0000165856 00000 n
-0000165921 00000 n
-0000165986 00000 n
-0000166051 00000 n
-0000166116 00000 n
-0000166180 00000 n
-0000166245 00000 n
-0000166310 00000 n
-0000166375 00000 n
-0000166440 00000 n
-0000166505 00000 n
-0000166570 00000 n
-0000166634 00000 n
-0000166699 00000 n
-0000166764 00000 n
-0000166828 00000 n
-0001887581 00000 n
-0000172825 00000 n
-0000168809 00000 n
-0000167069 00000 n
-0000168934 00000 n
-0000168998 00000 n
-0000169063 00000 n
-0000169128 00000 n
-0000169193 00000 n
-0000169258 00000 n
-0000169323 00000 n
-0000169388 00000 n
-0000169453 00000 n
-0000169518 00000 n
-0000169583 00000 n
-0000169647 00000 n
-0000169712 00000 n
-0000169777 00000 n
-0000169842 00000 n
-0000169907 00000 n
-0000169972 00000 n
-0000170037 00000 n
-0000170102 00000 n
-0000170167 00000 n
-0000170231 00000 n
-0000170296 00000 n
-0000170361 00000 n
-0000170426 00000 n
-0000170491 00000 n
-0000170556 00000 n
-0000170621 00000 n
-0000170686 00000 n
-0000170751 00000 n
-0000170815 00000 n
-0000170880 00000 n
-0000170945 00000 n
-0000171010 00000 n
-0000171075 00000 n
-0000171140 00000 n
-0000171205 00000 n
-0000171270 00000 n
-0000171335 00000 n
-0000171399 00000 n
-0000171464 00000 n
-0000171529 00000 n
-0000171594 00000 n
-0000171659 00000 n
-0000171724 00000 n
-0000171789 00000 n
-0000171854 00000 n
-0000171919 00000 n
-0000171982 00000 n
-0000172047 00000 n
-0000172112 00000 n
-0000172177 00000 n
-0000172242 00000 n
-0000172307 00000 n
-0000172372 00000 n
-0000172437 00000 n
-0000172502 00000 n
-0000172567 00000 n
-0000172632 00000 n
-0000172697 00000 n
-0000172761 00000 n
-0000178530 00000 n
-0000174774 00000 n
-0000172976 00000 n
-0000174899 00000 n
-0000174963 00000 n
-0000175028 00000 n
-0000175093 00000 n
-0000175158 00000 n
-0000175223 00000 n
-0000175288 00000 n
-0000175353 00000 n
-0000175418 00000 n
-0000175483 00000 n
-0000175547 00000 n
-0000175612 00000 n
-0000175677 00000 n
-0000175742 00000 n
-0000175807 00000 n
-0000175872 00000 n
-0000175937 00000 n
-0000176002 00000 n
-0000176067 00000 n
-0000176131 00000 n
-0000176196 00000 n
-0000176261 00000 n
-0000176326 00000 n
-0000176391 00000 n
-0000176456 00000 n
-0000176521 00000 n
-0000176586 00000 n
-0000176651 00000 n
-0000176714 00000 n
-0000176779 00000 n
-0000176844 00000 n
-0000176909 00000 n
-0000176974 00000 n
-0000177039 00000 n
-0000177104 00000 n
-0000177169 00000 n
-0000177234 00000 n
-0000177298 00000 n
-0000177363 00000 n
-0000177428 00000 n
-0000177492 00000 n
-0000177557 00000 n
-0000177622 00000 n
-0000177687 00000 n
-0000177752 00000 n
-0000177817 00000 n
-0000177882 00000 n
-0000177947 00000 n
-0000178012 00000 n
-0000178076 00000 n
-0000178141 00000 n
-0000178206 00000 n
-0000178271 00000 n
-0000178336 00000 n
-0000178401 00000 n
-0000178466 00000 n
-0000183991 00000 n
-0000181075 00000 n
-0000178707 00000 n
-0000181200 00000 n
-0000181264 00000 n
-0000181329 00000 n
-0000181394 00000 n
-0000181459 00000 n
-0000181524 00000 n
-0000181588 00000 n
-0000181653 00000 n
-0000181718 00000 n
-0000181783 00000 n
-0000181848 00000 n
-0000181913 00000 n
-0000181978 00000 n
-0000182042 00000 n
-0000182107 00000 n
-0000182172 00000 n
-0000182237 00000 n
-0000182302 00000 n
-0000182367 00000 n
-0000182432 00000 n
-0000182497 00000 n
-0000182562 00000 n
-0000182627 00000 n
-0000182692 00000 n
-0000182757 00000 n
-0000182822 00000 n
-0000182887 00000 n
-0000182952 00000 n
-0000183017 00000 n
-0000183082 00000 n
-0000183147 00000 n
-0000183212 00000 n
-0000183277 00000 n
-0000183342 00000 n
-0000183407 00000 n
-0000183472 00000 n
-0000183537 00000 n
-0000183602 00000 n
-0000183667 00000 n
-0000183732 00000 n
-0000183796 00000 n
-0000183861 00000 n
-0000183926 00000 n
-0000189716 00000 n
-0000186218 00000 n
-0000184168 00000 n
-0000186343 00000 n
-0000186407 00000 n
+0000170396 00000 n
+0000166900 00000 n
+0000164266 00000 n
+0000167024 00000 n
+0000167088 00000 n
+0000167153 00000 n
+0000167217 00000 n
+0000167282 00000 n
+0000167347 00000 n
+0000167412 00000 n
+0000167477 00000 n
+0000167542 00000 n
+0000167607 00000 n
+0000167672 00000 n
+0000167737 00000 n
+0000167801 00000 n
+0000167866 00000 n
+0000167931 00000 n
+0000167996 00000 n
+0000168061 00000 n
+0000168126 00000 n
+0000168191 00000 n
+0000168256 00000 n
+0000168321 00000 n
+0000168386 00000 n
+0000168451 00000 n
+0000168516 00000 n
+0000168581 00000 n
+0000168646 00000 n
+0000168711 00000 n
+0000168776 00000 n
+0000168841 00000 n
+0000168906 00000 n
+0000168971 00000 n
+0000169036 00000 n
+0000169101 00000 n
+0000169166 00000 n
+0000169231 00000 n
+0000169296 00000 n
+0000169360 00000 n
+0000169425 00000 n
+0000169490 00000 n
+0000169555 00000 n
+0000169620 00000 n
+0000169685 00000 n
+0000169749 00000 n
+0000169814 00000 n
+0000169879 00000 n
+0000169944 00000 n
+0000170009 00000 n
+0000170074 00000 n
+0000170138 00000 n
+0000170203 00000 n
+0000170268 00000 n
+0000170332 00000 n
+0000176597 00000 n
+0000172583 00000 n
+0000170573 00000 n
+0000172708 00000 n
+0000172772 00000 n
+0000172837 00000 n
+0000172901 00000 n
+0000172966 00000 n
+0000173031 00000 n
+0000173096 00000 n
+0000173161 00000 n
+0000173226 00000 n
+0000173291 00000 n
+0000173356 00000 n
+0000173421 00000 n
+0000173486 00000 n
+0000173549 00000 n
+0000173614 00000 n
+0000173679 00000 n
+0000173744 00000 n
+0000173809 00000 n
+0000173874 00000 n
+0000173939 00000 n
+0000174004 00000 n
+0000174069 00000 n
+0000174133 00000 n
+0000174198 00000 n
+0000174263 00000 n
+0000174328 00000 n
+0000174393 00000 n
+0000174458 00000 n
+0000174523 00000 n
+0000174588 00000 n
+0000174653 00000 n
+0000174717 00000 n
+0000174782 00000 n
+0000174847 00000 n
+0000174912 00000 n
+0000174977 00000 n
+0000175042 00000 n
+0000175107 00000 n
+0000175172 00000 n
+0000175237 00000 n
+0000175301 00000 n
+0000175366 00000 n
+0000175431 00000 n
+0000175496 00000 n
+0000175561 00000 n
+0000175626 00000 n
+0000175691 00000 n
+0000175756 00000 n
+0000175821 00000 n
+0000175886 00000 n
+0000175951 00000 n
+0000176015 00000 n
+0000176080 00000 n
+0000176145 00000 n
+0000176210 00000 n
+0000176275 00000 n
+0000176339 00000 n
+0000176404 00000 n
+0000176469 00000 n
+0000176533 00000 n
+0001534693 00000 n
+0000182545 00000 n
+0000178790 00000 n
+0000176748 00000 n
+0000178915 00000 n
+0000178979 00000 n
+0000179044 00000 n
+0000179108 00000 n
+0000179173 00000 n
+0000179238 00000 n
+0000179303 00000 n
+0000179368 00000 n
+0000179433 00000 n
+0000179498 00000 n
+0000179563 00000 n
+0000179628 00000 n
+0000179692 00000 n
+0000179757 00000 n
+0000179822 00000 n
+0000179887 00000 n
+0000179952 00000 n
+0000180017 00000 n
+0000180082 00000 n
+0000180147 00000 n
+0000180212 00000 n
+0000180276 00000 n
+0000180341 00000 n
+0000180406 00000 n
+0000180471 00000 n
+0000180536 00000 n
+0000180601 00000 n
+0000180666 00000 n
+0000180731 00000 n
+0000180796 00000 n
+0000180860 00000 n
+0000180925 00000 n
+0000180990 00000 n
+0000181055 00000 n
+0000181120 00000 n
+0000181185 00000 n
+0000181250 00000 n
+0000181315 00000 n
+0000181380 00000 n
+0000181445 00000 n
+0000181510 00000 n
+0000181575 00000 n
+0000181639 00000 n
+0000181704 00000 n
+0000181769 00000 n
+0000181834 00000 n
+0000181899 00000 n
+0000181964 00000 n
+0000182029 00000 n
+0000182094 00000 n
+0000182159 00000 n
+0000182220 00000 n
+0000182285 00000 n
+0000182350 00000 n
+0000182415 00000 n
+0000182480 00000 n
+0000188480 00000 n
+0000185568 00000 n
+0000182722 00000 n
+0000185693 00000 n
+0000185757 00000 n
+0000185822 00000 n
+0000185887 00000 n
+0000185952 00000 n
+0000186017 00000 n
+0000186081 00000 n
+0000186146 00000 n
+0000186211 00000 n
+0000186276 00000 n
+0000186341 00000 n
+0000186406 00000 n
0000186471 00000 n
0000186536 00000 n
-0000186601 00000 n
-0000186666 00000 n
+0000186600 00000 n
+0000186665 00000 n
0000186730 00000 n
0000186795 00000 n
0000186860 00000 n
0000186925 00000 n
0000186990 00000 n
0000187055 00000 n
-0000187120 00000 n
-0000187185 00000 n
-0000187250 00000 n
-0000187315 00000 n
-0000187380 00000 n
-0000187445 00000 n
-0000187510 00000 n
-0000187575 00000 n
-0000187640 00000 n
-0000187705 00000 n
-0000187770 00000 n
-0000187835 00000 n
-0000187900 00000 n
-0000187965 00000 n
-0000188030 00000 n
-0000188095 00000 n
-0000188160 00000 n
-0000188225 00000 n
-0000188290 00000 n
-0000188354 00000 n
-0000188419 00000 n
-0000188484 00000 n
-0000188549 00000 n
-0000188614 00000 n
-0000188679 00000 n
-0000188744 00000 n
-0000188809 00000 n
-0000188874 00000 n
-0000188939 00000 n
-0000189004 00000 n
-0000189069 00000 n
-0000189134 00000 n
-0000189199 00000 n
-0000189264 00000 n
-0000189328 00000 n
-0000189393 00000 n
-0000189458 00000 n
-0000189523 00000 n
-0000189588 00000 n
-0000189652 00000 n
-0000194257 00000 n
-0000192446 00000 n
-0000189880 00000 n
-0000192571 00000 n
-0000192635 00000 n
-0000192700 00000 n
-0000192765 00000 n
-0000192830 00000 n
-0000192895 00000 n
-0000192960 00000 n
-0000193025 00000 n
-0000193090 00000 n
-0000193155 00000 n
-0000193220 00000 n
-0000193285 00000 n
-0000193412 00000 n
-0000193477 00000 n
-0000193542 00000 n
-0000193607 00000 n
-0000193672 00000 n
-0000193737 00000 n
-0000193802 00000 n
-0000193867 00000 n
-0000193932 00000 n
-0000193997 00000 n
-0000194062 00000 n
-0000194127 00000 n
-0000194192 00000 n
-0000199735 00000 n
-0000196625 00000 n
-0000194473 00000 n
-0000196750 00000 n
-0000196814 00000 n
-0000196879 00000 n
-0000196944 00000 n
-0000197009 00000 n
-0000197074 00000 n
-0000197139 00000 n
-0000197204 00000 n
-0000197269 00000 n
-0000197334 00000 n
-0000197399 00000 n
-0000197464 00000 n
-0000197529 00000 n
-0000197594 00000 n
-0000197659 00000 n
-0000197723 00000 n
-0000197788 00000 n
-0000197853 00000 n
-0000197918 00000 n
-0000197983 00000 n
-0000198048 00000 n
-0000198113 00000 n
-0000198178 00000 n
-0000198243 00000 n
-0000198308 00000 n
-0000198373 00000 n
-0000198438 00000 n
-0000198503 00000 n
-0000198568 00000 n
-0000198633 00000 n
-0000198698 00000 n
-0000198763 00000 n
-0000198826 00000 n
-0000198891 00000 n
-0000198956 00000 n
-0000199021 00000 n
-0000199086 00000 n
-0000199151 00000 n
-0000199216 00000 n
-0000199281 00000 n
-0000199346 00000 n
-0000199410 00000 n
-0000199475 00000 n
-0000199540 00000 n
-0000199605 00000 n
-0000199670 00000 n
-0000205767 00000 n
-0000201751 00000 n
-0000199925 00000 n
-0000201876 00000 n
-0000201940 00000 n
-0000202005 00000 n
-0000202070 00000 n
-0000202135 00000 n
-0000202200 00000 n
-0000202265 00000 n
-0000202330 00000 n
-0000202394 00000 n
-0000202459 00000 n
-0000202524 00000 n
-0000202589 00000 n
-0000202654 00000 n
-0000202719 00000 n
-0000202784 00000 n
-0000202849 00000 n
-0000202914 00000 n
-0000202978 00000 n
-0000203043 00000 n
-0000203108 00000 n
-0000203173 00000 n
-0000203238 00000 n
-0000203303 00000 n
-0000203368 00000 n
-0000203433 00000 n
-0000203498 00000 n
-0000203563 00000 n
-0000203627 00000 n
-0000203692 00000 n
-0000203757 00000 n
-0000203822 00000 n
-0000203887 00000 n
-0000203952 00000 n
-0000204017 00000 n
-0000204082 00000 n
-0000204147 00000 n
-0000204211 00000 n
-0000204276 00000 n
-0000204341 00000 n
-0000204406 00000 n
-0000204471 00000 n
-0000204536 00000 n
-0000204601 00000 n
-0000204666 00000 n
-0000204731 00000 n
-0000204796 00000 n
-0000204861 00000 n
-0000204925 00000 n
-0000204990 00000 n
-0000205055 00000 n
-0000205120 00000 n
-0000205185 00000 n
-0000205250 00000 n
-0000205315 00000 n
-0000205380 00000 n
-0000205445 00000 n
-0000205509 00000 n
-0000205574 00000 n
-0000205639 00000 n
-0000205703 00000 n
-0000211070 00000 n
-0000208936 00000 n
-0000205931 00000 n
-0000209061 00000 n
-0000209125 00000 n
-0000209190 00000 n
-0000209255 00000 n
-0000209320 00000 n
-0000209385 00000 n
-0000209450 00000 n
-0000209515 00000 n
-0000209580 00000 n
-0000209645 00000 n
-0000209709 00000 n
-0000209774 00000 n
-0000209839 00000 n
-0000209904 00000 n
-0000209969 00000 n
-0000210034 00000 n
-0000210098 00000 n
-0000210163 00000 n
-0000210228 00000 n
-0000210293 00000 n
-0000210358 00000 n
-0000210423 00000 n
-0000210488 00000 n
-0000210553 00000 n
-0000210618 00000 n
-0000210682 00000 n
-0000210747 00000 n
-0000210812 00000 n
-0000210877 00000 n
-0000210942 00000 n
-0000211006 00000 n
-0000216683 00000 n
-0000213314 00000 n
-0000211286 00000 n
-0000213439 00000 n
-0000213503 00000 n
-0000213568 00000 n
-0000213633 00000 n
-0000213698 00000 n
-0000213763 00000 n
-0000213828 00000 n
-0000213893 00000 n
-0000213958 00000 n
-0000214023 00000 n
-0000214088 00000 n
-0000214153 00000 n
-0000214218 00000 n
-0000214283 00000 n
-0000214348 00000 n
-0000214413 00000 n
-0000214477 00000 n
-0000214542 00000 n
-0000214607 00000 n
-0000214672 00000 n
-0000214737 00000 n
-0000214802 00000 n
-0000214867 00000 n
-0000214932 00000 n
-0000214997 00000 n
-0000215061 00000 n
-0000215126 00000 n
-0000215191 00000 n
-0000215256 00000 n
-0000215321 00000 n
-0000215386 00000 n
-0000215451 00000 n
-0000215516 00000 n
-0000215581 00000 n
-0000215646 00000 n
-0000215711 00000 n
-0000215776 00000 n
-0000215840 00000 n
-0000215905 00000 n
-0000215970 00000 n
-0000216035 00000 n
-0000216100 00000 n
-0000216165 00000 n
-0000216230 00000 n
-0000216295 00000 n
-0000216360 00000 n
-0000216425 00000 n
-0000216490 00000 n
-0000216555 00000 n
-0000216619 00000 n
-0000223820 00000 n
-0000221166 00000 n
-0000216860 00000 n
-0000221291 00000 n
-0000221355 00000 n
-0000221420 00000 n
-0000221485 00000 n
-0000221550 00000 n
-0000221615 00000 n
-0000221680 00000 n
-0000221745 00000 n
-0000221810 00000 n
-0000221875 00000 n
-0000221940 00000 n
-0000222005 00000 n
-0000222069 00000 n
-0000222134 00000 n
-0000222199 00000 n
-0000222264 00000 n
-0000222329 00000 n
-0000222394 00000 n
-0000222459 00000 n
-0000222524 00000 n
-0000222589 00000 n
-0000222654 00000 n
-0000222719 00000 n
-0000222784 00000 n
-0000222848 00000 n
-0000222913 00000 n
-0000222978 00000 n
-0000223043 00000 n
-0000223108 00000 n
-0000223173 00000 n
-0000223238 00000 n
-0000223303 00000 n
-0000223368 00000 n
-0000223432 00000 n
-0000223497 00000 n
-0000223562 00000 n
-0000223627 00000 n
-0000223692 00000 n
-0000223755 00000 n
-0001885303 00000 n
-0001887746 00000 n
-0000229485 00000 n
-0000226637 00000 n
-0000224024 00000 n
-0000226762 00000 n
-0000226826 00000 n
-0000226891 00000 n
-0000226956 00000 n
-0000227021 00000 n
-0000227086 00000 n
-0000227151 00000 n
-0000227216 00000 n
-0000227280 00000 n
-0000227345 00000 n
-0000227410 00000 n
-0000227475 00000 n
-0000227540 00000 n
-0000227604 00000 n
-0000227669 00000 n
-0000227734 00000 n
-0000227799 00000 n
-0000227864 00000 n
-0000227929 00000 n
-0000227994 00000 n
-0000228059 00000 n
-0000228124 00000 n
-0000228189 00000 n
-0000228254 00000 n
-0000228319 00000 n
-0000228384 00000 n
-0000228448 00000 n
-0000228513 00000 n
-0000228577 00000 n
-0000228642 00000 n
-0000228707 00000 n
-0000228772 00000 n
-0000228837 00000 n
-0000228902 00000 n
-0000228967 00000 n
-0000229032 00000 n
-0000229097 00000 n
-0000229162 00000 n
-0000229227 00000 n
-0000229292 00000 n
-0000229357 00000 n
-0000229421 00000 n
-0000235217 00000 n
-0000231721 00000 n
-0000229662 00000 n
-0000231846 00000 n
-0000231910 00000 n
-0000231975 00000 n
-0000232040 00000 n
-0000232105 00000 n
-0000232170 00000 n
-0000232235 00000 n
-0000232300 00000 n
-0000232365 00000 n
-0000232430 00000 n
-0000232494 00000 n
-0000232559 00000 n
-0000232624 00000 n
-0000232689 00000 n
-0000232754 00000 n
-0000232819 00000 n
-0000232884 00000 n
-0000232949 00000 n
-0000233014 00000 n
-0000233078 00000 n
-0000233143 00000 n
-0000233208 00000 n
-0000233272 00000 n
-0000233337 00000 n
-0000233402 00000 n
-0000233467 00000 n
-0000233532 00000 n
-0000233597 00000 n
-0000233662 00000 n
-0000233727 00000 n
-0000233792 00000 n
-0000233856 00000 n
-0000233921 00000 n
-0000233986 00000 n
-0000234051 00000 n
-0000234116 00000 n
-0000234181 00000 n
-0000234246 00000 n
-0000234311 00000 n
-0000234376 00000 n
-0000234439 00000 n
-0000234504 00000 n
-0000234569 00000 n
-0000234634 00000 n
-0000234699 00000 n
-0000234764 00000 n
-0000234829 00000 n
-0000234894 00000 n
-0000234959 00000 n
-0000235022 00000 n
-0000235087 00000 n
-0000235152 00000 n
-0000238420 00000 n
-0000238577 00000 n
-0000241720 00000 n
-0000238238 00000 n
-0000235433 00000 n
-0000238734 00000 n
-0000238798 00000 n
-0000238863 00000 n
-0000238928 00000 n
-0000238993 00000 n
-0000239058 00000 n
-0000239123 00000 n
-0000239188 00000 n
-0000239253 00000 n
-0000239318 00000 n
-0000239383 00000 n
-0000239448 00000 n
-0000239513 00000 n
-0000239578 00000 n
-0000239643 00000 n
-0000239708 00000 n
-0000239773 00000 n
-0000239838 00000 n
-0000239903 00000 n
-0000239968 00000 n
-0000240033 00000 n
-0000240098 00000 n
-0000240163 00000 n
-0000240228 00000 n
-0000240293 00000 n
-0000240358 00000 n
-0000240423 00000 n
-0000240487 00000 n
-0000240552 00000 n
-0000240617 00000 n
-0000240682 00000 n
-0000240747 00000 n
-0000240812 00000 n
-0000240877 00000 n
-0000240942 00000 n
-0000241007 00000 n
-0000241072 00000 n
-0000241137 00000 n
-0000241202 00000 n
-0000241267 00000 n
-0000241332 00000 n
-0000241397 00000 n
-0000241461 00000 n
-0000241526 00000 n
-0000241591 00000 n
-0000241656 00000 n
-0000238380 00000 n
-0000247234 00000 n
-0000244516 00000 n
-0000241962 00000 n
-0000244641 00000 n
-0000244705 00000 n
-0000244770 00000 n
-0000244834 00000 n
-0000244899 00000 n
-0000244964 00000 n
-0000245029 00000 n
-0000245094 00000 n
-0000245159 00000 n
-0000245224 00000 n
-0000245289 00000 n
-0000245354 00000 n
-0000245419 00000 n
-0000245483 00000 n
-0000245548 00000 n
-0000245613 00000 n
-0000245678 00000 n
-0000245743 00000 n
-0000245808 00000 n
-0000245873 00000 n
-0000245937 00000 n
-0000246001 00000 n
-0000246066 00000 n
-0000246131 00000 n
-0000246196 00000 n
-0000246261 00000 n
-0000246326 00000 n
-0000246391 00000 n
-0000246456 00000 n
-0000246521 00000 n
-0000246586 00000 n
-0000246651 00000 n
-0000246716 00000 n
-0000246781 00000 n
-0000246846 00000 n
-0000246911 00000 n
-0000246976 00000 n
-0000247041 00000 n
-0000247106 00000 n
-0000247171 00000 n
-0000253488 00000 n
-0000249991 00000 n
-0000247424 00000 n
-0000250116 00000 n
-0000250180 00000 n
-0000250245 00000 n
-0000250309 00000 n
-0000250374 00000 n
-0000250439 00000 n
-0000250504 00000 n
-0000250569 00000 n
-0000250634 00000 n
-0000250699 00000 n
-0000250763 00000 n
-0000250828 00000 n
-0000250893 00000 n
-0000250958 00000 n
-0000251023 00000 n
-0000251088 00000 n
-0000251153 00000 n
-0000251218 00000 n
-0000251283 00000 n
-0000251348 00000 n
-0000251413 00000 n
-0000251478 00000 n
-0000251542 00000 n
-0000251607 00000 n
-0000251672 00000 n
-0000251737 00000 n
-0000251802 00000 n
-0000251867 00000 n
-0000251932 00000 n
-0000251997 00000 n
-0000252062 00000 n
-0000252126 00000 n
-0000252191 00000 n
-0000252256 00000 n
-0000252321 00000 n
-0000252386 00000 n
-0000252451 00000 n
-0000252516 00000 n
-0000252581 00000 n
-0000252646 00000 n
-0000252711 00000 n
-0000252776 00000 n
-0000252841 00000 n
-0000252906 00000 n
-0000252971 00000 n
-0000253036 00000 n
-0000253101 00000 n
-0000253166 00000 n
-0000253231 00000 n
-0000253296 00000 n
-0000253360 00000 n
-0000253425 00000 n
-0000258944 00000 n
-0000256613 00000 n
-0000253665 00000 n
-0000256738 00000 n
-0000256802 00000 n
-0000256867 00000 n
-0000256932 00000 n
-0000256997 00000 n
-0000257062 00000 n
-0000257127 00000 n
-0000257192 00000 n
-0000257257 00000 n
-0000257322 00000 n
-0000257387 00000 n
-0000257452 00000 n
-0000257517 00000 n
-0000257582 00000 n
-0000257647 00000 n
-0000257712 00000 n
-0000257777 00000 n
-0000257842 00000 n
-0000257907 00000 n
-0000257972 00000 n
-0000258037 00000 n
-0000258102 00000 n
-0000258167 00000 n
-0000258232 00000 n
-0000258297 00000 n
-0000258361 00000 n
-0000258426 00000 n
-0000258491 00000 n
-0000258556 00000 n
-0000258621 00000 n
-0000258686 00000 n
-0000258751 00000 n
-0000258816 00000 n
-0000258880 00000 n
-0000263896 00000 n
-0000261826 00000 n
-0000259147 00000 n
-0000261951 00000 n
-0000262015 00000 n
-0000262080 00000 n
-0000262145 00000 n
-0000262209 00000 n
-0000262274 00000 n
-0000262339 00000 n
-0000262404 00000 n
-0000262469 00000 n
-0000262534 00000 n
-0000262599 00000 n
-0000262664 00000 n
-0000262729 00000 n
-0000262794 00000 n
-0000262859 00000 n
-0000262924 00000 n
-0000262988 00000 n
-0000263053 00000 n
-0000263118 00000 n
-0000263183 00000 n
-0000263248 00000 n
-0000263313 00000 n
-0000263378 00000 n
-0000263443 00000 n
-0000263508 00000 n
-0000263573 00000 n
-0000263638 00000 n
-0000263703 00000 n
-0000263768 00000 n
-0000263833 00000 n
-0000268910 00000 n
-0000266452 00000 n
-0000264112 00000 n
-0000266577 00000 n
-0000266641 00000 n
-0000266706 00000 n
-0000266771 00000 n
-0000266836 00000 n
-0000266901 00000 n
-0000266966 00000 n
-0000267031 00000 n
-0000267096 00000 n
-0000267161 00000 n
-0000267226 00000 n
-0000267289 00000 n
-0000267354 00000 n
-0000267419 00000 n
-0000267484 00000 n
-0000267549 00000 n
-0000267614 00000 n
-0000267679 00000 n
-0000267743 00000 n
-0000267808 00000 n
-0000267873 00000 n
-0000267938 00000 n
-0000268003 00000 n
-0000268068 00000 n
-0000268133 00000 n
-0000268198 00000 n
-0000268263 00000 n
-0000268328 00000 n
-0000268393 00000 n
-0000268458 00000 n
-0000268523 00000 n
-0000268588 00000 n
-0000268653 00000 n
-0000268718 00000 n
-0000268783 00000 n
-0000274391 00000 n
-0000271671 00000 n
-0000269087 00000 n
-0000271796 00000 n
-0000271860 00000 n
-0000271925 00000 n
-0000271990 00000 n
-0000272054 00000 n
-0000272119 00000 n
-0000272184 00000 n
-0000272249 00000 n
-0000272314 00000 n
-0000272379 00000 n
-0000272444 00000 n
-0000272509 00000 n
-0000272574 00000 n
-0000272639 00000 n
-0000272704 00000 n
-0000272769 00000 n
-0000272834 00000 n
-0000272899 00000 n
-0000272964 00000 n
-0000273029 00000 n
-0000273094 00000 n
-0000273159 00000 n
-0000273224 00000 n
-0000273289 00000 n
-0000273354 00000 n
-0000273419 00000 n
-0000273484 00000 n
-0000273549 00000 n
-0000273614 00000 n
-0000273679 00000 n
-0000273744 00000 n
-0000273809 00000 n
-0000273874 00000 n
-0000273939 00000 n
-0000274003 00000 n
-0000274068 00000 n
-0000274133 00000 n
-0000274198 00000 n
-0000274263 00000 n
-0000274327 00000 n
-0000280155 00000 n
-0000277504 00000 n
-0000274581 00000 n
-0000277629 00000 n
-0000277693 00000 n
-0000277758 00000 n
-0000277823 00000 n
-0000277888 00000 n
-0000277953 00000 n
-0000278018 00000 n
-0000278083 00000 n
-0000278148 00000 n
-0000278213 00000 n
-0000278277 00000 n
-0000278342 00000 n
-0000278407 00000 n
-0000278472 00000 n
-0000278537 00000 n
-0000278602 00000 n
-0000278667 00000 n
-0000278732 00000 n
-0000278796 00000 n
-0000278861 00000 n
-0000278926 00000 n
-0000278990 00000 n
-0000279055 00000 n
-0000279120 00000 n
-0000279183 00000 n
-0000279248 00000 n
-0000279313 00000 n
-0000279378 00000 n
-0000279443 00000 n
-0000279508 00000 n
-0000279573 00000 n
-0000279638 00000 n
-0000279703 00000 n
-0000279768 00000 n
-0000279833 00000 n
-0000279898 00000 n
-0000279963 00000 n
-0000280028 00000 n
-0000280091 00000 n
-0001887911 00000 n
-0000286080 00000 n
-0000282516 00000 n
-0000280358 00000 n
-0000282641 00000 n
-0000282705 00000 n
-0000282770 00000 n
-0000282835 00000 n
-0000282900 00000 n
-0000282965 00000 n
-0000283030 00000 n
-0000283095 00000 n
-0000283160 00000 n
-0000283225 00000 n
-0000283290 00000 n
-0000283355 00000 n
-0000283420 00000 n
-0000283485 00000 n
-0000283550 00000 n
-0000283615 00000 n
-0000283680 00000 n
-0000283745 00000 n
-0000283808 00000 n
-0000283873 00000 n
-0000283938 00000 n
-0000284003 00000 n
-0000284068 00000 n
-0000284133 00000 n
-0000284198 00000 n
-0000284263 00000 n
-0000284328 00000 n
-0000284392 00000 n
-0000284457 00000 n
-0000284522 00000 n
-0000284587 00000 n
-0000284652 00000 n
-0000284717 00000 n
-0000284782 00000 n
-0000284847 00000 n
-0000284912 00000 n
-0000284976 00000 n
-0000285041 00000 n
-0000285106 00000 n
-0000285171 00000 n
-0000285236 00000 n
-0000285301 00000 n
-0000285366 00000 n
-0000285431 00000 n
-0000285496 00000 n
-0000285560 00000 n
-0000285625 00000 n
-0000285690 00000 n
-0000285755 00000 n
-0000285820 00000 n
-0000285885 00000 n
-0000285950 00000 n
-0000286015 00000 n
-0000288515 00000 n
-0000291979 00000 n
-0000288342 00000 n
-0000286244 00000 n
-0000288672 00000 n
-0000288736 00000 n
-0000288801 00000 n
-0000288866 00000 n
-0000288931 00000 n
-0000288996 00000 n
-0000289061 00000 n
-0000289126 00000 n
-0000289191 00000 n
-0000289256 00000 n
-0000289320 00000 n
-0000289385 00000 n
-0000289450 00000 n
-0000289515 00000 n
-0000289580 00000 n
-0000289645 00000 n
-0000289710 00000 n
-0000289775 00000 n
-0000289840 00000 n
-0000289905 00000 n
-0000289970 00000 n
-0000290035 00000 n
-0000290099 00000 n
-0000290164 00000 n
-0000290229 00000 n
-0000290294 00000 n
-0000290359 00000 n
-0000290424 00000 n
-0000290489 00000 n
-0000290554 00000 n
-0000290619 00000 n
-0000290684 00000 n
-0000290749 00000 n
-0000290814 00000 n
-0000290879 00000 n
-0000290943 00000 n
-0000291008 00000 n
-0000291073 00000 n
-0000291138 00000 n
-0000291203 00000 n
-0000291268 00000 n
-0000291333 00000 n
-0000291398 00000 n
-0000291463 00000 n
-0000291528 00000 n
-0000291593 00000 n
-0000291720 00000 n
-0000291785 00000 n
-0000291850 00000 n
-0000291915 00000 n
-0000288484 00000 n
-0000295450 00000 n
-0000298006 00000 n
-0000295277 00000 n
-0000292208 00000 n
-0000295606 00000 n
-0000295670 00000 n
-0000295735 00000 n
-0000295800 00000 n
-0000295865 00000 n
-0000295930 00000 n
-0000295995 00000 n
-0000296060 00000 n
-0000296125 00000 n
-0000296190 00000 n
-0000296255 00000 n
-0000296320 00000 n
-0000296384 00000 n
-0000296449 00000 n
-0000296514 00000 n
-0000296579 00000 n
-0000296644 00000 n
-0000296709 00000 n
-0000296774 00000 n
-0000296839 00000 n
-0000296904 00000 n
-0000296969 00000 n
-0000297034 00000 n
-0000297099 00000 n
-0000297164 00000 n
-0000297228 00000 n
-0000297293 00000 n
-0000297358 00000 n
-0000297423 00000 n
-0000297488 00000 n
-0000297553 00000 n
-0000297618 00000 n
-0000297683 00000 n
-0000297747 00000 n
-0000297812 00000 n
-0000297877 00000 n
-0000297942 00000 n
-0000295419 00000 n
-0000303805 00000 n
-0000300825 00000 n
-0000298261 00000 n
-0000300950 00000 n
-0000301014 00000 n
-0000301079 00000 n
-0000301144 00000 n
-0000301209 00000 n
-0000301274 00000 n
-0000301339 00000 n
-0000301404 00000 n
-0000301469 00000 n
-0000301534 00000 n
-0000301599 00000 n
-0000301664 00000 n
-0000301729 00000 n
-0000301794 00000 n
-0000301859 00000 n
-0000301924 00000 n
-0000301989 00000 n
-0000302054 00000 n
-0000302119 00000 n
-0000302184 00000 n
-0000302249 00000 n
-0000302314 00000 n
-0000302379 00000 n
-0000302444 00000 n
-0000302509 00000 n
-0000302574 00000 n
-0000302639 00000 n
-0000302704 00000 n
-0000302768 00000 n
-0000302833 00000 n
-0000302898 00000 n
-0000302963 00000 n
-0000303028 00000 n
-0000303093 00000 n
-0000303158 00000 n
-0000303223 00000 n
-0000303288 00000 n
-0000303352 00000 n
-0000303417 00000 n
-0000303482 00000 n
-0000303547 00000 n
-0000303612 00000 n
-0000303677 00000 n
-0000303741 00000 n
+0000187119 00000 n
+0000187184 00000 n
+0000187249 00000 n
+0000187314 00000 n
+0000187379 00000 n
+0000187444 00000 n
+0000187509 00000 n
+0000187574 00000 n
+0000187639 00000 n
+0000187703 00000 n
+0000187768 00000 n
+0000187833 00000 n
+0000187898 00000 n
+0000187963 00000 n
+0000188028 00000 n
+0000188093 00000 n
+0000188158 00000 n
+0000188223 00000 n
+0000188287 00000 n
+0000188352 00000 n
+0000188416 00000 n
+0000194438 00000 n
+0000190941 00000 n
+0000188657 00000 n
+0000191066 00000 n
+0000191130 00000 n
+0000191195 00000 n
+0000191260 00000 n
+0000191325 00000 n
+0000191390 00000 n
+0000191455 00000 n
+0000191520 00000 n
+0000191584 00000 n
+0000191649 00000 n
+0000191714 00000 n
+0000191779 00000 n
+0000191844 00000 n
+0000191909 00000 n
+0000191974 00000 n
+0000192039 00000 n
+0000192104 00000 n
+0000192169 00000 n
+0000192234 00000 n
+0000192299 00000 n
+0000192364 00000 n
+0000192429 00000 n
+0000192494 00000 n
+0000192559 00000 n
+0000192623 00000 n
+0000192688 00000 n
+0000192753 00000 n
+0000192818 00000 n
+0000192883 00000 n
+0000192948 00000 n
+0000193013 00000 n
+0000193078 00000 n
+0000193143 00000 n
+0000193208 00000 n
+0000193273 00000 n
+0000193338 00000 n
+0000193403 00000 n
+0000193468 00000 n
+0000193533 00000 n
+0000193596 00000 n
+0000193661 00000 n
+0000193726 00000 n
+0000193791 00000 n
+0000193856 00000 n
+0000193921 00000 n
+0000193986 00000 n
+0000194051 00000 n
+0000194116 00000 n
+0000194180 00000 n
+0000194245 00000 n
+0000194310 00000 n
+0000194374 00000 n
+0000199353 00000 n
+0000197544 00000 n
+0000194602 00000 n
+0000197669 00000 n
+0000197733 00000 n
+0000197798 00000 n
+0000197863 00000 n
+0000197928 00000 n
+0000197993 00000 n
+0000198058 00000 n
+0000198123 00000 n
+0000198188 00000 n
+0000198253 00000 n
+0000198318 00000 n
+0000198383 00000 n
+0000198509 00000 n
+0000198574 00000 n
+0000198639 00000 n
+0000198704 00000 n
+0000198769 00000 n
+0000198834 00000 n
+0000198899 00000 n
+0000198964 00000 n
+0000199029 00000 n
+0000199094 00000 n
+0000199159 00000 n
+0000199223 00000 n
+0000199288 00000 n
+0000203529 00000 n
+0000201589 00000 n
+0000199569 00000 n
+0000201714 00000 n
+0000201778 00000 n
+0000201843 00000 n
+0000201908 00000 n
+0000201973 00000 n
+0000202038 00000 n
+0000202102 00000 n
+0000202167 00000 n
+0000202232 00000 n
+0000202297 00000 n
+0000202362 00000 n
+0000202427 00000 n
+0000202492 00000 n
+0000202557 00000 n
+0000202622 00000 n
+0000202687 00000 n
+0000202752 00000 n
+0000202817 00000 n
+0000202882 00000 n
+0000202947 00000 n
+0000203012 00000 n
+0000203077 00000 n
+0000203141 00000 n
+0000203206 00000 n
+0000203271 00000 n
+0000203336 00000 n
+0000203401 00000 n
+0000203465 00000 n
+0000209806 00000 n
+0000205986 00000 n
+0000203719 00000 n
+0000206111 00000 n
+0000206175 00000 n
+0000206240 00000 n
+0000206304 00000 n
+0000206369 00000 n
+0000206434 00000 n
+0000206499 00000 n
+0000206564 00000 n
+0000206629 00000 n
+0000206694 00000 n
+0000206759 00000 n
+0000206824 00000 n
+0000206888 00000 n
+0000206953 00000 n
+0000207018 00000 n
+0000207083 00000 n
+0000207148 00000 n
+0000207213 00000 n
+0000207278 00000 n
+0000207343 00000 n
+0000207408 00000 n
+0000207473 00000 n
+0000207538 00000 n
+0000207603 00000 n
+0000207668 00000 n
+0000207733 00000 n
+0000207798 00000 n
+0000207863 00000 n
+0000207928 00000 n
+0000207993 00000 n
+0000208058 00000 n
+0000208123 00000 n
+0000208187 00000 n
+0000208252 00000 n
+0000208317 00000 n
+0000208381 00000 n
+0000208446 00000 n
+0000208511 00000 n
+0000208576 00000 n
+0000208641 00000 n
+0000208706 00000 n
+0000208771 00000 n
+0000208836 00000 n
+0000208901 00000 n
+0000208964 00000 n
+0000209029 00000 n
+0000209094 00000 n
+0000209159 00000 n
+0000209224 00000 n
+0000209289 00000 n
+0000209354 00000 n
+0000209419 00000 n
+0000209484 00000 n
+0000209548 00000 n
+0000209613 00000 n
+0000209678 00000 n
+0000209742 00000 n
+0000215288 00000 n
+0000212506 00000 n
+0000209970 00000 n
+0000212631 00000 n
+0000212695 00000 n
+0000212760 00000 n
+0000212824 00000 n
+0000212888 00000 n
+0000212953 00000 n
+0000213018 00000 n
+0000213083 00000 n
+0000213148 00000 n
+0000213213 00000 n
+0000213278 00000 n
+0000213343 00000 n
+0000213408 00000 n
+0000213471 00000 n
+0000213536 00000 n
+0000213601 00000 n
+0000213666 00000 n
+0000213731 00000 n
+0000213796 00000 n
+0000213861 00000 n
+0000213926 00000 n
+0000213991 00000 n
+0000214055 00000 n
+0000214120 00000 n
+0000214185 00000 n
+0000214250 00000 n
+0000214315 00000 n
+0000214380 00000 n
+0000214444 00000 n
+0000214509 00000 n
+0000214574 00000 n
+0000214639 00000 n
+0000214704 00000 n
+0000214769 00000 n
+0000214834 00000 n
+0000214899 00000 n
+0000214964 00000 n
+0000215029 00000 n
+0000215094 00000 n
+0000215159 00000 n
+0000215223 00000 n
+0000221214 00000 n
+0000218234 00000 n
+0000215491 00000 n
+0000218359 00000 n
+0000218423 00000 n
+0000218488 00000 n
+0000218553 00000 n
+0000218618 00000 n
+0000218683 00000 n
+0000218748 00000 n
+0000218812 00000 n
+0000218877 00000 n
+0000218942 00000 n
+0000219007 00000 n
+0000219072 00000 n
+0000219137 00000 n
+0000219202 00000 n
+0000219267 00000 n
+0000219332 00000 n
+0000219397 00000 n
+0000219461 00000 n
+0000219526 00000 n
+0000219591 00000 n
+0000219656 00000 n
+0000219721 00000 n
+0000219786 00000 n
+0000219851 00000 n
+0000219916 00000 n
+0000219981 00000 n
+0000220046 00000 n
+0000220111 00000 n
+0000220176 00000 n
+0000220240 00000 n
+0000220305 00000 n
+0000220370 00000 n
+0000220435 00000 n
+0000220500 00000 n
+0000220565 00000 n
+0000220630 00000 n
+0000220695 00000 n
+0000220760 00000 n
+0000220825 00000 n
+0000220890 00000 n
+0000220955 00000 n
+0000221020 00000 n
+0000221085 00000 n
+0000221149 00000 n
+0000227328 00000 n
+0000223961 00000 n
+0000221391 00000 n
+0000224086 00000 n
+0000224150 00000 n
+0000224215 00000 n
+0000224280 00000 n
+0000224345 00000 n
+0000224409 00000 n
+0000224474 00000 n
+0000224539 00000 n
+0000224604 00000 n
+0000224669 00000 n
+0000224734 00000 n
+0000224799 00000 n
+0000224863 00000 n
+0000224928 00000 n
+0000224993 00000 n
+0000225058 00000 n
+0000225123 00000 n
+0000225188 00000 n
+0000225253 00000 n
+0000225318 00000 n
+0000225383 00000 n
+0000225448 00000 n
+0000225512 00000 n
+0000225577 00000 n
+0000225642 00000 n
+0000225707 00000 n
+0000225772 00000 n
+0000225837 00000 n
+0000225902 00000 n
+0000225967 00000 n
+0000226032 00000 n
+0000226096 00000 n
+0000226161 00000 n
+0000226226 00000 n
+0000226291 00000 n
+0000226356 00000 n
+0000226421 00000 n
+0000226486 00000 n
+0000226551 00000 n
+0000226616 00000 n
+0000226681 00000 n
+0000226746 00000 n
+0000226811 00000 n
+0000226876 00000 n
+0000226941 00000 n
+0000227006 00000 n
+0000227071 00000 n
+0000227136 00000 n
+0000227200 00000 n
+0000227264 00000 n
+0000234908 00000 n
+0000232773 00000 n
+0000227505 00000 n
+0000232898 00000 n
+0000232962 00000 n
+0000233027 00000 n
+0000233091 00000 n
+0000233156 00000 n
+0001533057 00000 n
+0000233221 00000 n
+0000233286 00000 n
+0000233351 00000 n
+0000233416 00000 n
+0000233481 00000 n
+0000233546 00000 n
+0000233611 00000 n
+0000233676 00000 n
+0000233741 00000 n
+0000233806 00000 n
+0000233871 00000 n
+0000233936 00000 n
+0000234001 00000 n
+0000234066 00000 n
+0000234130 00000 n
+0000234195 00000 n
+0000234260 00000 n
+0000234325 00000 n
+0000234390 00000 n
+0000234455 00000 n
+0000234520 00000 n
+0000234585 00000 n
+0000234650 00000 n
+0000234715 00000 n
+0000234780 00000 n
+0000234844 00000 n
+0001534858 00000 n
+0000241023 00000 n
+0000237399 00000 n
+0000235125 00000 n
+0000237524 00000 n
+0000237588 00000 n
+0000237653 00000 n
+0000237718 00000 n
+0000237783 00000 n
+0000237848 00000 n
+0000237913 00000 n
+0000237978 00000 n
+0000238043 00000 n
+0000238108 00000 n
+0000238173 00000 n
+0000238236 00000 n
+0000238301 00000 n
+0000238366 00000 n
+0000238431 00000 n
+0000238496 00000 n
+0000238561 00000 n
+0000238625 00000 n
+0000238690 00000 n
+0000238755 00000 n
+0000238820 00000 n
+0000238885 00000 n
+0000238950 00000 n
+0000239015 00000 n
+0000239080 00000 n
+0000239145 00000 n
+0000239209 00000 n
+0000239274 00000 n
+0000239339 00000 n
+0000239404 00000 n
+0000239469 00000 n
+0000239534 00000 n
+0000239599 00000 n
+0000239664 00000 n
+0000239729 00000 n
+0000239793 00000 n
+0000239858 00000 n
+0000239923 00000 n
+0000239988 00000 n
+0000240053 00000 n
+0000240117 00000 n
+0000240182 00000 n
+0000240247 00000 n
+0000240312 00000 n
+0000240377 00000 n
+0000240442 00000 n
+0000240507 00000 n
+0000240572 00000 n
+0000240637 00000 n
+0000240701 00000 n
+0000240765 00000 n
+0000240830 00000 n
+0000240895 00000 n
+0000240959 00000 n
+0000250487 00000 n
+0000247071 00000 n
+0000243830 00000 n
+0000241213 00000 n
+0000243955 00000 n
+0000244019 00000 n
+0000244084 00000 n
+0000244148 00000 n
+0000244213 00000 n
+0000244278 00000 n
+0000244343 00000 n
+0000244408 00000 n
+0000244473 00000 n
+0000244538 00000 n
+0000244603 00000 n
+0000244667 00000 n
+0000244732 00000 n
+0000244797 00000 n
+0000244862 00000 n
+0000244927 00000 n
+0000244992 00000 n
+0000245057 00000 n
+0000245122 00000 n
+0000245187 00000 n
+0000245252 00000 n
+0000245316 00000 n
+0000245381 00000 n
+0000245446 00000 n
+0000245511 00000 n
+0000245576 00000 n
+0000245641 00000 n
+0000245706 00000 n
+0000245771 00000 n
+0000245836 00000 n
+0000245901 00000 n
+0000245966 00000 n
+0000246031 00000 n
+0000246096 00000 n
+0000246161 00000 n
+0000246226 00000 n
+0000246291 00000 n
+0000246356 00000 n
+0000246421 00000 n
+0000246486 00000 n
+0000246551 00000 n
+0000246616 00000 n
+0000246681 00000 n
+0000246746 00000 n
+0000246811 00000 n
+0000246876 00000 n
+0000246941 00000 n
+0000247006 00000 n
+0000250640 00000 n
+0000253258 00000 n
+0000250305 00000 n
+0000247287 00000 n
+0000250794 00000 n
+0000250858 00000 n
+0000250923 00000 n
+0000250988 00000 n
+0000251053 00000 n
+0000251117 00000 n
+0000251182 00000 n
+0000251247 00000 n
+0000251312 00000 n
+0000251377 00000 n
+0000251442 00000 n
+0000251507 00000 n
+0000251572 00000 n
+0000251636 00000 n
+0000251701 00000 n
+0000251766 00000 n
+0000251831 00000 n
+0000251896 00000 n
+0000251961 00000 n
+0000252026 00000 n
+0000252091 00000 n
+0000252156 00000 n
+0000252221 00000 n
+0000252286 00000 n
+0000252351 00000 n
+0000252416 00000 n
+0000252481 00000 n
+0000252546 00000 n
+0000252611 00000 n
+0000252676 00000 n
+0000252741 00000 n
+0000252806 00000 n
+0000252870 00000 n
+0000252935 00000 n
+0000253000 00000 n
+0000253065 00000 n
+0000253130 00000 n
+0000253194 00000 n
+0000250447 00000 n
+0000259562 00000 n
+0000256196 00000 n
+0000253487 00000 n
+0000256321 00000 n
+0000256385 00000 n
+0000256450 00000 n
+0000256514 00000 n
+0000256579 00000 n
+0000256644 00000 n
+0000256709 00000 n
+0000256774 00000 n
+0000256839 00000 n
+0000256904 00000 n
+0000256969 00000 n
+0000257034 00000 n
+0000257098 00000 n
+0000257163 00000 n
+0000257228 00000 n
+0000257293 00000 n
+0000257358 00000 n
+0000257423 00000 n
+0000257488 00000 n
+0000257553 00000 n
+0000257618 00000 n
+0000257683 00000 n
+0000257748 00000 n
+0000257813 00000 n
+0000257878 00000 n
+0000257943 00000 n
+0000258008 00000 n
+0000258072 00000 n
+0000258137 00000 n
+0000258202 00000 n
+0000258266 00000 n
+0000258331 00000 n
+0000258396 00000 n
+0000258461 00000 n
+0000258526 00000 n
+0000258591 00000 n
+0000258656 00000 n
+0000258721 00000 n
+0000258786 00000 n
+0000258850 00000 n
+0000258915 00000 n
+0000258980 00000 n
+0000259045 00000 n
+0000259110 00000 n
+0000259175 00000 n
+0000259240 00000 n
+0000259305 00000 n
+0000259370 00000 n
+0000259434 00000 n
+0000259498 00000 n
+0000265769 00000 n
+0000263374 00000 n
+0000259752 00000 n
+0000263499 00000 n
+0000263563 00000 n
+0000263628 00000 n
+0000263692 00000 n
+0000263757 00000 n
+0000263822 00000 n
+0000263887 00000 n
+0000263952 00000 n
+0000264017 00000 n
+0000264082 00000 n
+0000264147 00000 n
+0000264212 00000 n
+0000264276 00000 n
+0000264341 00000 n
+0000264406 00000 n
+0000264471 00000 n
+0000264536 00000 n
+0000264601 00000 n
+0000264666 00000 n
+0000264731 00000 n
+0000264796 00000 n
+0000264861 00000 n
+0000264926 00000 n
+0000264991 00000 n
+0000265056 00000 n
+0000265121 00000 n
+0000265186 00000 n
+0000265250 00000 n
+0000265315 00000 n
+0000265380 00000 n
+0000265445 00000 n
+0000265510 00000 n
+0000265575 00000 n
+0000265640 00000 n
+0000265705 00000 n
+0000271482 00000 n
+0000268764 00000 n
+0000265985 00000 n
+0000268889 00000 n
+0000268953 00000 n
+0000269018 00000 n
+0000269082 00000 n
+0000269147 00000 n
+0000269212 00000 n
+0000269277 00000 n
+0000269342 00000 n
+0000269406 00000 n
+0000269471 00000 n
+0000269535 00000 n
+0000269600 00000 n
+0000269665 00000 n
+0000269730 00000 n
+0000269795 00000 n
+0000269860 00000 n
+0000269925 00000 n
+0000269990 00000 n
+0000270055 00000 n
+0000270120 00000 n
+0000270185 00000 n
+0000270249 00000 n
+0000270314 00000 n
+0000270379 00000 n
+0000270444 00000 n
+0000270509 00000 n
+0000270574 00000 n
+0000270639 00000 n
+0000270704 00000 n
+0000270769 00000 n
+0000270833 00000 n
+0000270898 00000 n
+0000270963 00000 n
+0000271028 00000 n
+0000271093 00000 n
+0000271158 00000 n
+0000271223 00000 n
+0000271288 00000 n
+0000271353 00000 n
+0000271418 00000 n
+0000277273 00000 n
+0000274749 00000 n
+0000271672 00000 n
+0000274874 00000 n
+0000274938 00000 n
+0000275003 00000 n
+0000275068 00000 n
+0000275133 00000 n
+0000275197 00000 n
+0000275262 00000 n
+0000275327 00000 n
+0000275392 00000 n
+0000275457 00000 n
+0000275522 00000 n
+0000275587 00000 n
+0000275651 00000 n
+0000275716 00000 n
+0000275781 00000 n
+0000275846 00000 n
+0000275911 00000 n
+0000275976 00000 n
+0000276041 00000 n
+0000276106 00000 n
+0000276171 00000 n
+0000276236 00000 n
+0000276301 00000 n
+0000276366 00000 n
+0000276431 00000 n
+0000276496 00000 n
+0000276561 00000 n
+0000276626 00000 n
+0000276691 00000 n
+0000276756 00000 n
+0000276821 00000 n
+0000276886 00000 n
+0000276951 00000 n
+0000277015 00000 n
+0000277080 00000 n
+0000277145 00000 n
+0000277209 00000 n
+0000282400 00000 n
+0000280331 00000 n
+0000277476 00000 n
+0000280456 00000 n
+0000280520 00000 n
+0000280585 00000 n
+0000280712 00000 n
+0000280777 00000 n
+0000280842 00000 n
+0000280907 00000 n
+0000280971 00000 n
+0000281036 00000 n
+0000281101 00000 n
+0000281166 00000 n
+0000281231 00000 n
+0000281296 00000 n
+0000281361 00000 n
+0000281426 00000 n
+0000281491 00000 n
+0000281555 00000 n
+0000281620 00000 n
+0000281685 00000 n
+0000281750 00000 n
+0000281815 00000 n
+0000281880 00000 n
+0000281945 00000 n
+0000282010 00000 n
+0000282075 00000 n
+0000282140 00000 n
+0000282205 00000 n
+0000282270 00000 n
+0000282335 00000 n
+0000288606 00000 n
+0000286019 00000 n
+0000282590 00000 n
+0000286144 00000 n
+0000286208 00000 n
+0000286273 00000 n
+0000286337 00000 n
+0000286402 00000 n
+0000286467 00000 n
+0000286532 00000 n
+0000286597 00000 n
+0000286662 00000 n
+0000286727 00000 n
+0000286792 00000 n
+0000286857 00000 n
+0000286921 00000 n
+0000286986 00000 n
+0000287051 00000 n
+0000287116 00000 n
+0000287181 00000 n
+0000287246 00000 n
+0000287311 00000 n
+0000287376 00000 n
+0000287441 00000 n
+0000287505 00000 n
+0000287570 00000 n
+0000287635 00000 n
+0000287700 00000 n
+0000287765 00000 n
+0000287830 00000 n
+0000287895 00000 n
+0000287960 00000 n
+0000288025 00000 n
+0000288090 00000 n
+0000288155 00000 n
+0000288220 00000 n
+0000288285 00000 n
+0000288349 00000 n
+0000288414 00000 n
+0000288479 00000 n
+0000288542 00000 n
+0000294972 00000 n
+0000291412 00000 n
+0000288809 00000 n
+0000291537 00000 n
+0000291601 00000 n
+0000291666 00000 n
+0000291730 00000 n
+0000291795 00000 n
+0000291860 00000 n
+0000291925 00000 n
+0000291990 00000 n
+0000292055 00000 n
+0000292120 00000 n
+0000292185 00000 n
+0000292249 00000 n
+0000292314 00000 n
+0000292379 00000 n
+0000292444 00000 n
+0000292509 00000 n
+0000292574 00000 n
+0000292639 00000 n
+0000292704 00000 n
+0000292769 00000 n
+0000292834 00000 n
+0000292899 00000 n
+0000292964 00000 n
+0000293029 00000 n
+0000293094 00000 n
+0000293159 00000 n
+0000293223 00000 n
+0000293288 00000 n
+0000293353 00000 n
+0000293418 00000 n
+0000293483 00000 n
+0000293547 00000 n
+0000293612 00000 n
+0000293677 00000 n
+0000293742 00000 n
+0000293807 00000 n
+0000293872 00000 n
+0000293937 00000 n
+0000294002 00000 n
+0000294067 00000 n
+0000294130 00000 n
+0000294195 00000 n
+0000294260 00000 n
+0000294325 00000 n
+0000294390 00000 n
+0000294455 00000 n
+0000294520 00000 n
+0000294585 00000 n
+0000294650 00000 n
+0000294714 00000 n
+0000294779 00000 n
+0000294844 00000 n
+0000294908 00000 n
+0001535023 00000 n
+0000297611 00000 n
+0000301334 00000 n
+0000297438 00000 n
+0000295136 00000 n
+0000297768 00000 n
+0000297832 00000 n
+0000297897 00000 n
+0000297961 00000 n
+0000298026 00000 n
+0000298091 00000 n
+0000298156 00000 n
+0000298221 00000 n
+0000298286 00000 n
+0000298351 00000 n
+0000298416 00000 n
+0000298481 00000 n
+0000298545 00000 n
+0000298610 00000 n
+0000298675 00000 n
+0000298740 00000 n
+0000298805 00000 n
+0000298869 00000 n
+0000298934 00000 n
+0000298999 00000 n
+0000299064 00000 n
+0000299129 00000 n
+0000299194 00000 n
+0000299259 00000 n
+0000299324 00000 n
+0000299389 00000 n
+0000299453 00000 n
+0000299518 00000 n
+0000299583 00000 n
+0000299648 00000 n
+0000299713 00000 n
+0000299778 00000 n
+0000299843 00000 n
+0000299908 00000 n
+0000299973 00000 n
+0000300037 00000 n
+0000300102 00000 n
+0000300167 00000 n
+0000300232 00000 n
+0000300297 00000 n
+0000300362 00000 n
+0000300427 00000 n
+0000300492 00000 n
+0000300557 00000 n
+0000300621 00000 n
+0000300686 00000 n
+0000300751 00000 n
+0000300816 00000 n
+0000300881 00000 n
+0000300945 00000 n
+0000301010 00000 n
+0000301075 00000 n
+0000301140 00000 n
+0000301205 00000 n
+0000301270 00000 n
+0000297580 00000 n
+0000304766 00000 n
+0000307448 00000 n
+0000304593 00000 n
+0000301550 00000 n
+0000304921 00000 n
+0000304985 00000 n
+0000305050 00000 n
+0000305114 00000 n
+0000305179 00000 n
+0000305244 00000 n
+0000305309 00000 n
+0000305374 00000 n
+0000305501 00000 n
+0000305566 00000 n
+0000305631 00000 n
+0000305696 00000 n
+0000305761 00000 n
+0000305826 00000 n
+0000305891 00000 n
+0000305956 00000 n
+0000306021 00000 n
+0000306086 00000 n
+0000306151 00000 n
+0000306216 00000 n
+0000306281 00000 n
+0000306346 00000 n
+0000306411 00000 n
+0000306476 00000 n
+0000306541 00000 n
0000306606 00000 n
-0000310005 00000 n
-0000306433 00000 n
-0000303969 00000 n
-0000306763 00000 n
-0000306827 00000 n
-0000306892 00000 n
-0000306957 00000 n
-0000307022 00000 n
-0000307087 00000 n
-0000307152 00000 n
-0000307217 00000 n
-0000307282 00000 n
-0000307346 00000 n
-0000307411 00000 n
-0000307476 00000 n
-0000307541 00000 n
-0000307606 00000 n
-0000307671 00000 n
-0000307736 00000 n
-0000307801 00000 n
-0000307866 00000 n
-0000307930 00000 n
-0000307995 00000 n
-0000308060 00000 n
-0000308125 00000 n
-0000308190 00000 n
-0000308255 00000 n
-0000308320 00000 n
-0000308385 00000 n
-0000308450 00000 n
-0000308514 00000 n
-0000308579 00000 n
-0000308644 00000 n
-0000308709 00000 n
-0000308773 00000 n
-0000308838 00000 n
-0000308903 00000 n
-0000308968 00000 n
-0000309033 00000 n
-0000309098 00000 n
-0000309163 00000 n
-0000309228 00000 n
-0000309293 00000 n
-0000309358 00000 n
-0000309422 00000 n
-0000309487 00000 n
-0000309551 00000 n
-0000309616 00000 n
-0000309681 00000 n
-0000309746 00000 n
-0000309811 00000 n
-0000309876 00000 n
-0000309941 00000 n
-0000306575 00000 n
-0000313157 00000 n
-0000313315 00000 n
-0000316521 00000 n
-0000312975 00000 n
-0000310247 00000 n
-0000313472 00000 n
-0000313536 00000 n
-0000313601 00000 n
-0000313666 00000 n
-0000313731 00000 n
-0000313796 00000 n
-0000313861 00000 n
-0000313926 00000 n
-0000313991 00000 n
-0000314056 00000 n
-0000314120 00000 n
-0000314185 00000 n
-0000314250 00000 n
-0000314315 00000 n
-0000314380 00000 n
-0000314445 00000 n
-0000314510 00000 n
-0000314575 00000 n
-0000314639 00000 n
-0000314704 00000 n
-0000314769 00000 n
-0000314834 00000 n
-0000314899 00000 n
-0000314964 00000 n
-0000315029 00000 n
-0000315094 00000 n
-0000315158 00000 n
-0000315223 00000 n
-0000315288 00000 n
-0000315353 00000 n
-0000315418 00000 n
-0000315483 00000 n
-0000315548 00000 n
-0000315613 00000 n
-0000315678 00000 n
-0000315743 00000 n
-0000315808 00000 n
-0000315873 00000 n
-0000315938 00000 n
-0000316003 00000 n
-0000316068 00000 n
-0000316133 00000 n
-0000316198 00000 n
-0000316262 00000 n
-0000316327 00000 n
-0000316392 00000 n
-0000316457 00000 n
-0000313117 00000 n
-0000319416 00000 n
-0000322097 00000 n
-0000319243 00000 n
-0000316802 00000 n
-0000319573 00000 n
-0000319637 00000 n
-0000319702 00000 n
-0000319767 00000 n
-0000319832 00000 n
-0000319897 00000 n
-0000319962 00000 n
-0000320027 00000 n
-0000320092 00000 n
-0000320157 00000 n
-0000320222 00000 n
-0000320287 00000 n
-0000320350 00000 n
-0000320415 00000 n
-0000320480 00000 n
-0000320545 00000 n
-0000320610 00000 n
-0000320675 00000 n
-0000320740 00000 n
-0000320805 00000 n
-0000320870 00000 n
-0000320934 00000 n
-0000320999 00000 n
-0000321064 00000 n
-0000321129 00000 n
-0000321194 00000 n
-0000321259 00000 n
-0000321324 00000 n
-0000321388 00000 n
-0000321453 00000 n
-0000321518 00000 n
-0000321583 00000 n
-0000321647 00000 n
-0000321774 00000 n
-0000321839 00000 n
-0000321904 00000 n
-0000321969 00000 n
-0000322033 00000 n
-0000319385 00000 n
-0000327607 00000 n
-0000324564 00000 n
-0000322287 00000 n
-0000324689 00000 n
-0000324753 00000 n
-0000324818 00000 n
-0000324883 00000 n
-0000324948 00000 n
-0000325013 00000 n
-0000325077 00000 n
-0000325142 00000 n
-0000325207 00000 n
-0000325271 00000 n
-0000325336 00000 n
-0000325401 00000 n
-0000325466 00000 n
-0000325531 00000 n
-0000325596 00000 n
-0000325661 00000 n
-0000325726 00000 n
-0000325791 00000 n
-0000325856 00000 n
-0000325921 00000 n
-0000325986 00000 n
-0000326051 00000 n
-0000326116 00000 n
-0000326181 00000 n
-0000326246 00000 n
-0000326311 00000 n
-0000326376 00000 n
-0000326441 00000 n
-0000326506 00000 n
-0000326571 00000 n
-0000326636 00000 n
-0000326701 00000 n
-0000326765 00000 n
-0000326830 00000 n
-0000326895 00000 n
-0000326960 00000 n
-0000327025 00000 n
-0000327090 00000 n
-0000327155 00000 n
-0000327220 00000 n
-0000327285 00000 n
-0000327349 00000 n
-0000327414 00000 n
-0000327479 00000 n
-0000327543 00000 n
-0000335477 00000 n
-0000333020 00000 n
-0000329913 00000 n
-0000327784 00000 n
-0000330038 00000 n
-0000330102 00000 n
-0000330167 00000 n
-0000330231 00000 n
-0000330296 00000 n
-0000330361 00000 n
-0000330426 00000 n
-0000330491 00000 n
-0000330556 00000 n
-0000330621 00000 n
-0000330686 00000 n
-0000330749 00000 n
-0000330814 00000 n
-0000330879 00000 n
-0000330944 00000 n
-0000331009 00000 n
-0000331074 00000 n
-0000331139 00000 n
-0000331204 00000 n
-0000331269 00000 n
-0000331333 00000 n
-0000331398 00000 n
-0000331463 00000 n
-0000331528 00000 n
-0000331593 00000 n
-0000331658 00000 n
-0000331723 00000 n
-0000331788 00000 n
-0000331853 00000 n
-0000331917 00000 n
-0000331982 00000 n
-0000332047 00000 n
-0000332112 00000 n
-0000332177 00000 n
-0000332242 00000 n
-0000332307 00000 n
-0000332372 00000 n
-0000332437 00000 n
-0000332501 00000 n
-0000332566 00000 n
-0000332631 00000 n
-0000332695 00000 n
-0000332760 00000 n
-0000332825 00000 n
-0000332890 00000 n
-0000332955 00000 n
-0000339005 00000 n
-0000335304 00000 n
-0000333184 00000 n
-0000335634 00000 n
-0000335698 00000 n
-0000335763 00000 n
-0000335828 00000 n
-0000335892 00000 n
-0000335957 00000 n
-0000336022 00000 n
-0000336087 00000 n
-0000336151 00000 n
-0000336216 00000 n
-0000336281 00000 n
-0000336346 00000 n
-0000336411 00000 n
-0000336476 00000 n
-0000336541 00000 n
-0000336606 00000 n
-0000336671 00000 n
-0000336736 00000 n
-0000336801 00000 n
-0000336866 00000 n
-0000336930 00000 n
-0000336995 00000 n
-0000337060 00000 n
-0000337125 00000 n
-0000337189 00000 n
-0000337254 00000 n
-0000337318 00000 n
-0000337383 00000 n
-0000337448 00000 n
-0000337513 00000 n
-0000337578 00000 n
-0000337643 00000 n
-0000337708 00000 n
-0000337773 00000 n
-0000337838 00000 n
-0000337902 00000 n
-0000337967 00000 n
-0000338032 00000 n
-0000338097 00000 n
-0000338162 00000 n
-0000338227 00000 n
-0000338292 00000 n
-0000338357 00000 n
-0000338422 00000 n
-0000338487 00000 n
-0000338552 00000 n
-0000338617 00000 n
-0000338681 00000 n
-0000338746 00000 n
-0000338811 00000 n
-0000338876 00000 n
-0000338941 00000 n
-0001888076 00000 n
-0000335446 00000 n
-0000344570 00000 n
-0000341076 00000 n
-0000339234 00000 n
-0000341201 00000 n
-0000341265 00000 n
-0000341330 00000 n
-0000341395 00000 n
-0000341460 00000 n
-0000341525 00000 n
-0000341589 00000 n
-0000341654 00000 n
-0000341719 00000 n
-0000341783 00000 n
-0000341848 00000 n
-0000341913 00000 n
-0000341978 00000 n
-0000342043 00000 n
-0000342108 00000 n
-0000342172 00000 n
-0000342237 00000 n
-0000342302 00000 n
-0000342367 00000 n
-0000342432 00000 n
-0000342497 00000 n
-0000342562 00000 n
-0000342625 00000 n
-0000342690 00000 n
-0000342755 00000 n
-0000342820 00000 n
-0000342885 00000 n
-0000342950 00000 n
-0000343015 00000 n
-0000343079 00000 n
-0000343144 00000 n
-0000343209 00000 n
-0000343274 00000 n
-0000343339 00000 n
-0000343404 00000 n
-0000343469 00000 n
-0000343534 00000 n
-0000343599 00000 n
-0000343663 00000 n
-0000343728 00000 n
-0000343793 00000 n
-0000343858 00000 n
-0000343923 00000 n
-0000343987 00000 n
-0000344052 00000 n
-0000344117 00000 n
-0000344182 00000 n
-0000344247 00000 n
-0000344312 00000 n
-0000344377 00000 n
-0000344442 00000 n
-0000344506 00000 n
-0000350470 00000 n
-0000346646 00000 n
-0000344734 00000 n
-0000346771 00000 n
-0000346835 00000 n
-0000346900 00000 n
-0000346965 00000 n
-0000347030 00000 n
-0000347095 00000 n
-0000347160 00000 n
-0000347225 00000 n
-0000347290 00000 n
-0000347355 00000 n
-0000347420 00000 n
-0000347485 00000 n
-0000347550 00000 n
-0000347615 00000 n
-0000347680 00000 n
-0000347745 00000 n
-0000347810 00000 n
-0000347875 00000 n
-0000347940 00000 n
-0000348004 00000 n
-0000348069 00000 n
-0000348134 00000 n
-0000348199 00000 n
-0000348264 00000 n
-0000348329 00000 n
-0000348394 00000 n
-0000348459 00000 n
-0000348524 00000 n
-0000348588 00000 n
-0000348653 00000 n
-0000348718 00000 n
-0000348783 00000 n
-0000348848 00000 n
-0000348913 00000 n
-0000348978 00000 n
-0000349043 00000 n
-0000349108 00000 n
-0000349172 00000 n
-0000349237 00000 n
-0000349302 00000 n
-0000349367 00000 n
-0000349432 00000 n
-0000349497 00000 n
-0000349562 00000 n
-0000349627 00000 n
-0000349692 00000 n
-0000349757 00000 n
-0000349822 00000 n
-0000349887 00000 n
-0000349952 00000 n
-0000350017 00000 n
-0000350082 00000 n
-0000350147 00000 n
-0000350212 00000 n
-0000350277 00000 n
-0000350342 00000 n
-0000350406 00000 n
-0000356367 00000 n
-0000353065 00000 n
-0000350647 00000 n
-0000353190 00000 n
-0000353254 00000 n
-0000353319 00000 n
-0000353384 00000 n
-0000353449 00000 n
-0000353514 00000 n
-0000353579 00000 n
-0000353644 00000 n
-0000353709 00000 n
-0000353773 00000 n
-0000353838 00000 n
-0000353903 00000 n
-0000353967 00000 n
-0000354032 00000 n
-0000354097 00000 n
-0000354162 00000 n
-0000354227 00000 n
-0000354292 00000 n
-0000354357 00000 n
-0000354422 00000 n
-0000354487 00000 n
-0000354551 00000 n
-0000354616 00000 n
-0000354681 00000 n
-0000354746 00000 n
-0000354811 00000 n
-0000354876 00000 n
-0000354941 00000 n
-0000355006 00000 n
-0000355071 00000 n
-0000355135 00000 n
-0000355200 00000 n
-0000355265 00000 n
-0000355330 00000 n
-0000355395 00000 n
-0000355460 00000 n
-0000355525 00000 n
-0000355590 00000 n
-0000355655 00000 n
-0000355719 00000 n
-0000355784 00000 n
-0000355849 00000 n
-0000355914 00000 n
-0000355979 00000 n
-0000356044 00000 n
-0000356109 00000 n
-0000356174 00000 n
-0000356239 00000 n
-0000356303 00000 n
-0000362150 00000 n
-0000359756 00000 n
-0000356544 00000 n
-0000359881 00000 n
-0000359945 00000 n
-0000360010 00000 n
-0000360075 00000 n
-0000360140 00000 n
-0000360205 00000 n
-0000360270 00000 n
-0000360335 00000 n
-0000360400 00000 n
-0000360465 00000 n
-0000360529 00000 n
-0000360594 00000 n
-0000360659 00000 n
-0000360724 00000 n
-0000360789 00000 n
-0000360854 00000 n
-0000360919 00000 n
-0000360983 00000 n
-0000361048 00000 n
-0000361113 00000 n
-0000361178 00000 n
-0000361243 00000 n
-0000361308 00000 n
-0000361373 00000 n
-0000361438 00000 n
-0000361503 00000 n
-0000361568 00000 n
-0000361632 00000 n
-0000361697 00000 n
-0000361762 00000 n
-0000361827 00000 n
-0000361892 00000 n
-0000361957 00000 n
-0000362022 00000 n
-0000362086 00000 n
-0000367857 00000 n
-0000364683 00000 n
-0000362340 00000 n
-0000364808 00000 n
-0000364872 00000 n
-0000364937 00000 n
-0000365002 00000 n
-0000365067 00000 n
-0000365132 00000 n
-0000365197 00000 n
-0000365262 00000 n
-0000365327 00000 n
-0000365392 00000 n
-0000365457 00000 n
-0000365522 00000 n
-0000365587 00000 n
-0000365652 00000 n
-0000365717 00000 n
-0000365781 00000 n
-0000365846 00000 n
-0000365911 00000 n
-0000365976 00000 n
-0000366041 00000 n
-0000366106 00000 n
-0000366171 00000 n
-0000366236 00000 n
-0000366301 00000 n
-0000366365 00000 n
-0000366430 00000 n
-0000366495 00000 n
-0000366560 00000 n
-0000366625 00000 n
-0000366690 00000 n
-0000366755 00000 n
-0000366820 00000 n
-0000366885 00000 n
-0000366950 00000 n
-0000367015 00000 n
-0000367080 00000 n
-0000367145 00000 n
-0000367210 00000 n
-0000367275 00000 n
-0000367340 00000 n
-0000367404 00000 n
-0000367469 00000 n
-0000367534 00000 n
-0000367599 00000 n
-0000367664 00000 n
-0000367729 00000 n
-0000367793 00000 n
-0000373543 00000 n
-0000370306 00000 n
-0000368034 00000 n
-0000370431 00000 n
-0000370495 00000 n
-0000370560 00000 n
-0000370624 00000 n
-0000370689 00000 n
-0000370754 00000 n
-0000370819 00000 n
-0000370884 00000 n
-0000370949 00000 n
-0000371014 00000 n
-0000371079 00000 n
-0000371144 00000 n
-0000371209 00000 n
-0000371274 00000 n
-0000371339 00000 n
-0000371403 00000 n
-0000371468 00000 n
-0000371533 00000 n
-0000371598 00000 n
-0000371663 00000 n
-0000371728 00000 n
-0000371793 00000 n
-0000371858 00000 n
-0000371923 00000 n
-0000371987 00000 n
-0000372052 00000 n
-0000372117 00000 n
-0000372182 00000 n
-0000372247 00000 n
-0000372312 00000 n
-0000372377 00000 n
-0000372442 00000 n
-0000372507 00000 n
-0000372572 00000 n
-0000372636 00000 n
-0000372701 00000 n
-0000372766 00000 n
-0000372831 00000 n
-0000372896 00000 n
-0000372961 00000 n
-0000373026 00000 n
-0000373091 00000 n
-0000373156 00000 n
-0000373221 00000 n
-0000373284 00000 n
-0000373349 00000 n
-0000373414 00000 n
-0000373479 00000 n
-0000379260 00000 n
-0000375763 00000 n
-0000373733 00000 n
-0000375888 00000 n
-0000375952 00000 n
-0000376017 00000 n
-0000376082 00000 n
-0000376147 00000 n
-0000376212 00000 n
-0000376277 00000 n
-0000376342 00000 n
-0000376406 00000 n
-0000376471 00000 n
-0000376536 00000 n
-0000376601 00000 n
-0000376666 00000 n
-0000376731 00000 n
-0000376796 00000 n
-0000376861 00000 n
-0000376926 00000 n
-0000376990 00000 n
-0000377055 00000 n
-0000377120 00000 n
-0000377185 00000 n
-0000377250 00000 n
-0000377315 00000 n
-0000377380 00000 n
-0000377444 00000 n
-0000377509 00000 n
-0000377574 00000 n
-0000377639 00000 n
-0000377704 00000 n
-0000377769 00000 n
-0000377834 00000 n
-0000377898 00000 n
-0000377963 00000 n
-0000378028 00000 n
-0000378093 00000 n
-0000378158 00000 n
-0000378223 00000 n
-0000378288 00000 n
-0000378353 00000 n
-0000378418 00000 n
-0000378483 00000 n
-0000378548 00000 n
-0000378613 00000 n
-0000378678 00000 n
-0000378743 00000 n
-0000378808 00000 n
-0000378873 00000 n
-0000378938 00000 n
-0000379002 00000 n
-0000379067 00000 n
-0000379132 00000 n
-0000379196 00000 n
-0000385055 00000 n
-0000381430 00000 n
-0000379437 00000 n
-0000381555 00000 n
-0000381619 00000 n
-0000381684 00000 n
-0000381749 00000 n
-0000381814 00000 n
-0000381879 00000 n
-0000381943 00000 n
-0000382008 00000 n
-0000382073 00000 n
-0000382138 00000 n
-0000382202 00000 n
-0000382267 00000 n
-0000382332 00000 n
-0000382397 00000 n
-0000382462 00000 n
-0000382527 00000 n
-0000382592 00000 n
-0000382657 00000 n
-0000382722 00000 n
-0000382786 00000 n
-0000382851 00000 n
-0000382916 00000 n
-0000382981 00000 n
-0000383046 00000 n
-0000383111 00000 n
-0000383176 00000 n
-0000383241 00000 n
-0000383305 00000 n
-0000383370 00000 n
-0000383435 00000 n
-0000383500 00000 n
-0000383565 00000 n
-0000383630 00000 n
-0000383695 00000 n
-0000383760 00000 n
-0000383825 00000 n
-0000383890 00000 n
-0000383954 00000 n
-0000384019 00000 n
-0000384084 00000 n
-0000384149 00000 n
-0000384213 00000 n
-0000384278 00000 n
-0000384343 00000 n
-0000384408 00000 n
-0000384473 00000 n
-0000384538 00000 n
-0000384603 00000 n
-0000384668 00000 n
-0000384733 00000 n
-0000384797 00000 n
-0000384862 00000 n
-0000384927 00000 n
-0000384991 00000 n
-0000391068 00000 n
-0000387245 00000 n
-0000385232 00000 n
-0000387370 00000 n
-0000387434 00000 n
-0000387499 00000 n
-0000387564 00000 n
-0000387629 00000 n
-0000387694 00000 n
-0000387759 00000 n
-0000387824 00000 n
-0000387889 00000 n
-0000387954 00000 n
-0000388019 00000 n
-0000388084 00000 n
-0000388149 00000 n
-0000388214 00000 n
-0000388279 00000 n
-0000388343 00000 n
-0000388408 00000 n
-0000388473 00000 n
-0000388538 00000 n
-0000388603 00000 n
-0000388668 00000 n
-0000388733 00000 n
-0000388798 00000 n
-0000388863 00000 n
-0000388928 00000 n
-0000388992 00000 n
-0000389057 00000 n
-0000389122 00000 n
-0000389187 00000 n
-0000389252 00000 n
-0000389317 00000 n
-0000389382 00000 n
-0000389447 00000 n
-0000389512 00000 n
-0000389576 00000 n
-0000389641 00000 n
-0000389706 00000 n
-0000389771 00000 n
-0000389836 00000 n
-0000389901 00000 n
-0000389966 00000 n
-0000390031 00000 n
-0000390096 00000 n
-0000390161 00000 n
-0000390226 00000 n
-0000390291 00000 n
-0000390356 00000 n
-0000390421 00000 n
-0000390486 00000 n
-0000390551 00000 n
-0000390616 00000 n
-0000390680 00000 n
-0000390745 00000 n
-0000390810 00000 n
-0000390875 00000 n
-0000390940 00000 n
-0000391004 00000 n
-0000396992 00000 n
-0000393235 00000 n
-0000391232 00000 n
-0000393360 00000 n
-0000393424 00000 n
-0000393489 00000 n
-0000393554 00000 n
-0000393619 00000 n
-0000393684 00000 n
-0000393749 00000 n
-0000393813 00000 n
-0000393878 00000 n
-0000393942 00000 n
-0000394007 00000 n
-0000394072 00000 n
-0000394137 00000 n
-0000394202 00000 n
-0000394267 00000 n
-0000394332 00000 n
-0000394397 00000 n
-0000394462 00000 n
-0000394526 00000 n
-0000394591 00000 n
-0000394656 00000 n
-0000394721 00000 n
-0000394786 00000 n
-0000394851 00000 n
-0000394916 00000 n
-0000394981 00000 n
-0000395046 00000 n
-0000395111 00000 n
-0000395176 00000 n
-0000395241 00000 n
-0000395306 00000 n
-0000395371 00000 n
-0000395436 00000 n
-0000395501 00000 n
-0000395566 00000 n
-0000395631 00000 n
-0000395696 00000 n
-0000395760 00000 n
-0000395825 00000 n
-0000395890 00000 n
-0000395955 00000 n
-0000396020 00000 n
-0000396085 00000 n
-0000396150 00000 n
-0000396215 00000 n
-0000396280 00000 n
-0000396345 00000 n
-0000396410 00000 n
-0000396475 00000 n
-0000396540 00000 n
-0000396604 00000 n
-0000396669 00000 n
-0000396734 00000 n
-0000396799 00000 n
-0000396864 00000 n
-0000396928 00000 n
-0001888241 00000 n
-0000402325 00000 n
-0000400122 00000 n
-0000397156 00000 n
-0000400247 00000 n
-0000400311 00000 n
-0000400376 00000 n
-0000400441 00000 n
-0000400506 00000 n
-0000400571 00000 n
-0000400636 00000 n
-0000400701 00000 n
-0000400766 00000 n
-0000400831 00000 n
-0000400896 00000 n
-0000400961 00000 n
-0000401026 00000 n
-0000401091 00000 n
-0000401156 00000 n
-0000401221 00000 n
-0000401286 00000 n
-0000401350 00000 n
-0000401415 00000 n
-0000401480 00000 n
-0000401545 00000 n
-0000401610 00000 n
-0000401675 00000 n
-0000401740 00000 n
-0000401805 00000 n
-0000401870 00000 n
-0000401935 00000 n
-0000402000 00000 n
-0000402065 00000 n
-0000402130 00000 n
-0000402195 00000 n
-0000402260 00000 n
-0000407896 00000 n
-0000404918 00000 n
-0000402528 00000 n
-0000405043 00000 n
-0000405107 00000 n
-0000405172 00000 n
-0000405236 00000 n
-0000405301 00000 n
-0000405366 00000 n
-0000405431 00000 n
-0000405496 00000 n
-0000405561 00000 n
-0000405626 00000 n
-0000405691 00000 n
-0000405756 00000 n
-0000405820 00000 n
-0000405885 00000 n
-0000405950 00000 n
-0000406015 00000 n
-0000406080 00000 n
-0000406145 00000 n
-0000406210 00000 n
-0000406275 00000 n
-0000406339 00000 n
-0000406404 00000 n
-0000406469 00000 n
-0000406534 00000 n
-0000406599 00000 n
-0000406664 00000 n
-0000406729 00000 n
-0000406794 00000 n
-0000406859 00000 n
-0000406923 00000 n
-0000406988 00000 n
-0000407053 00000 n
-0000407118 00000 n
-0000407183 00000 n
-0000407248 00000 n
-0000407313 00000 n
-0000407378 00000 n
-0000407443 00000 n
-0000407508 00000 n
-0000407572 00000 n
-0000407637 00000 n
-0000407702 00000 n
-0000407767 00000 n
-0000407832 00000 n
-0000413256 00000 n
-0000410345 00000 n
-0000408060 00000 n
-0000410470 00000 n
-0000410534 00000 n
-0000410599 00000 n
-0000410664 00000 n
-0000410729 00000 n
-0000410793 00000 n
-0000410920 00000 n
-0000410985 00000 n
-0000411050 00000 n
-0000411115 00000 n
-0000411180 00000 n
-0000411245 00000 n
-0000411309 00000 n
-0000411374 00000 n
-0000411439 00000 n
-0000411504 00000 n
-0000411569 00000 n
-0000411634 00000 n
-0000411699 00000 n
-0000411764 00000 n
-0000411829 00000 n
-0000411894 00000 n
-0000411959 00000 n
-0000412024 00000 n
-0000412089 00000 n
-0000412154 00000 n
-0000412219 00000 n
-0000412284 00000 n
-0000412349 00000 n
-0000412414 00000 n
-0000412479 00000 n
-0000412544 00000 n
-0000412609 00000 n
-0000412674 00000 n
-0000412739 00000 n
-0000412804 00000 n
-0000412868 00000 n
-0000412933 00000 n
-0000412998 00000 n
-0000413063 00000 n
-0000413128 00000 n
-0000413192 00000 n
-0000418870 00000 n
-0000415309 00000 n
-0000413459 00000 n
-0000415434 00000 n
-0000415498 00000 n
-0000415563 00000 n
-0000415628 00000 n
-0000415693 00000 n
-0000415758 00000 n
-0000415823 00000 n
-0000415887 00000 n
-0000415952 00000 n
-0000416017 00000 n
-0000416082 00000 n
-0000416147 00000 n
-0000416212 00000 n
-0000416277 00000 n
-0000416342 00000 n
-0000416407 00000 n
-0000416472 00000 n
-0000416537 00000 n
-0000416602 00000 n
-0000416667 00000 n
-0000416732 00000 n
-0000416795 00000 n
-0000416860 00000 n
-0000416925 00000 n
-0000416990 00000 n
-0000417055 00000 n
-0000417120 00000 n
-0000417185 00000 n
-0000417250 00000 n
-0000417315 00000 n
-0000417379 00000 n
-0000417444 00000 n
-0000417509 00000 n
-0000417574 00000 n
-0000417639 00000 n
-0000417704 00000 n
-0000417769 00000 n
-0000417834 00000 n
-0000417899 00000 n
-0000417963 00000 n
-0000418028 00000 n
-0000418093 00000 n
-0000418158 00000 n
-0000418223 00000 n
-0000418288 00000 n
-0000418353 00000 n
-0000418417 00000 n
-0000418482 00000 n
-0000418547 00000 n
-0000418612 00000 n
-0000418677 00000 n
-0000418742 00000 n
-0000418806 00000 n
-0000424179 00000 n
-0000420618 00000 n
-0000419034 00000 n
-0000420743 00000 n
-0000420807 00000 n
-0000420872 00000 n
-0000420937 00000 n
-0000421002 00000 n
-0000421067 00000 n
-0000421132 00000 n
-0000421197 00000 n
-0000421261 00000 n
-0000421326 00000 n
-0000421391 00000 n
-0000421456 00000 n
-0000421521 00000 n
-0000421586 00000 n
-0000421651 00000 n
-0000421716 00000 n
-0000421781 00000 n
-0000421845 00000 n
-0000421910 00000 n
-0000421975 00000 n
-0000422040 00000 n
-0000422105 00000 n
-0000422170 00000 n
-0000422235 00000 n
-0000422300 00000 n
-0000422365 00000 n
-0000422429 00000 n
-0000422494 00000 n
-0000422559 00000 n
-0000422624 00000 n
-0000422689 00000 n
-0000422754 00000 n
-0000422819 00000 n
-0000422884 00000 n
-0000422949 00000 n
-0000423014 00000 n
-0000423079 00000 n
-0000423144 00000 n
-0000423207 00000 n
-0000423272 00000 n
-0000423337 00000 n
-0000423402 00000 n
-0000423467 00000 n
-0000423532 00000 n
-0000423597 00000 n
-0000423662 00000 n
-0000423727 00000 n
-0000423791 00000 n
-0000423856 00000 n
-0000423921 00000 n
-0000423986 00000 n
-0000424051 00000 n
-0000424115 00000 n
-0000429961 00000 n
-0000426593 00000 n
-0000424343 00000 n
-0000426718 00000 n
-0000426782 00000 n
-0000426847 00000 n
-0000426912 00000 n
-0000426977 00000 n
-0000427042 00000 n
-0000427107 00000 n
-0000427170 00000 n
-0000427235 00000 n
-0000427300 00000 n
-0000427365 00000 n
-0000427430 00000 n
-0000427495 00000 n
-0000427560 00000 n
-0000427625 00000 n
-0000427690 00000 n
-0000427754 00000 n
-0000427819 00000 n
-0000427884 00000 n
-0000427949 00000 n
-0000428014 00000 n
-0000428079 00000 n
-0000428144 00000 n
-0000428209 00000 n
-0000428274 00000 n
-0000428339 00000 n
-0000428404 00000 n
-0000428469 00000 n
-0000428534 00000 n
-0000428599 00000 n
-0000428664 00000 n
-0000428729 00000 n
-0000428794 00000 n
-0000428859 00000 n
-0000428924 00000 n
-0000428989 00000 n
-0000429054 00000 n
-0000429119 00000 n
-0000429184 00000 n
-0000429249 00000 n
-0000429314 00000 n
-0000429379 00000 n
-0000429444 00000 n
-0000429509 00000 n
-0000429573 00000 n
-0000429638 00000 n
-0000429703 00000 n
-0000429768 00000 n
-0000429833 00000 n
-0000429897 00000 n
-0000435506 00000 n
-0000432654 00000 n
-0000430138 00000 n
-0000432779 00000 n
-0000432843 00000 n
-0000432908 00000 n
-0000432973 00000 n
-0000433038 00000 n
-0000433103 00000 n
-0000433168 00000 n
-0000433233 00000 n
-0000433298 00000 n
-0000433363 00000 n
-0000433428 00000 n
-0000433493 00000 n
-0000433558 00000 n
-0000433623 00000 n
-0000433688 00000 n
-0000433753 00000 n
-0000433816 00000 n
-0000433881 00000 n
-0000433946 00000 n
-0000434011 00000 n
-0000434076 00000 n
-0000434141 00000 n
-0000434206 00000 n
-0000434271 00000 n
-0000434336 00000 n
-0000434401 00000 n
-0000434466 00000 n
-0000434531 00000 n
-0000434596 00000 n
-0000434661 00000 n
+0000306671 00000 n
+0000306735 00000 n
+0000306800 00000 n
+0000306865 00000 n
+0000306930 00000 n
+0000306995 00000 n
+0000307060 00000 n
+0000307125 00000 n
+0000307190 00000 n
+0000307255 00000 n
+0000307320 00000 n
+0000307384 00000 n
+0000304735 00000 n
+0000313458 00000 n
+0000310870 00000 n
+0000307716 00000 n
+0000310995 00000 n
+0000311059 00000 n
+0000311124 00000 n
+0000311188 00000 n
+0000311253 00000 n
+0000311318 00000 n
+0000311383 00000 n
+0000311448 00000 n
+0000311513 00000 n
+0000311578 00000 n
+0000311643 00000 n
+0000311708 00000 n
+0000311773 00000 n
+0000311838 00000 n
+0000311903 00000 n
+0000311968 00000 n
+0000312033 00000 n
+0000312098 00000 n
+0000312163 00000 n
+0000312227 00000 n
+0000312292 00000 n
+0000312357 00000 n
+0000312422 00000 n
+0000312487 00000 n
+0000312552 00000 n
+0000312617 00000 n
+0000312682 00000 n
+0000312746 00000 n
+0000312811 00000 n
+0000312876 00000 n
+0000312941 00000 n
+0000313006 00000 n
+0000313071 00000 n
+0000313136 00000 n
+0000313200 00000 n
+0000313265 00000 n
+0000313330 00000 n
+0000313394 00000 n
+0000319646 00000 n
+0000316084 00000 n
+0000313622 00000 n
+0000316209 00000 n
+0000316273 00000 n
+0000316338 00000 n
+0000316402 00000 n
+0000316467 00000 n
+0000316532 00000 n
+0000316597 00000 n
+0000316662 00000 n
+0000316727 00000 n
+0000316792 00000 n
+0000316857 00000 n
+0000316922 00000 n
+0000316986 00000 n
+0000317051 00000 n
+0000317116 00000 n
+0000317181 00000 n
+0000317245 00000 n
+0000317310 00000 n
+0000317375 00000 n
+0000317440 00000 n
+0000317505 00000 n
+0000317570 00000 n
+0000317635 00000 n
+0000317700 00000 n
+0000317764 00000 n
+0000317829 00000 n
+0000317894 00000 n
+0000317959 00000 n
+0000318024 00000 n
+0000318089 00000 n
+0000318154 00000 n
+0000318219 00000 n
+0000318284 00000 n
+0000318348 00000 n
+0000318413 00000 n
+0000318478 00000 n
+0000318543 00000 n
+0000318608 00000 n
+0000318673 00000 n
+0000318738 00000 n
+0000318803 00000 n
+0000318868 00000 n
+0000318933 00000 n
+0000318998 00000 n
+0000319063 00000 n
+0000319128 00000 n
+0000319193 00000 n
+0000319258 00000 n
+0000319323 00000 n
+0000319388 00000 n
+0000319453 00000 n
+0000319518 00000 n
+0000319582 00000 n
+0000323190 00000 n
+0000323347 00000 n
+0000323505 00000 n
+0000326645 00000 n
+0000322999 00000 n
+0000319836 00000 n
+0000323662 00000 n
+0000323726 00000 n
+0000323791 00000 n
+0000323855 00000 n
+0000323920 00000 n
+0000323985 00000 n
+0000324050 00000 n
+0000324115 00000 n
+0000324180 00000 n
+0000324245 00000 n
+0000324310 00000 n
+0000324375 00000 n
+0000324440 00000 n
+0000324505 00000 n
+0000324570 00000 n
+0000324635 00000 n
+0000324700 00000 n
+0000324765 00000 n
+0000324830 00000 n
+0000324895 00000 n
+0000324960 00000 n
+0000325025 00000 n
+0000325088 00000 n
+0000325153 00000 n
+0000325218 00000 n
+0000325283 00000 n
+0000325348 00000 n
+0000325413 00000 n
+0000325478 00000 n
+0000325543 00000 n
+0000325608 00000 n
+0000325672 00000 n
+0000325737 00000 n
+0000325802 00000 n
+0000325867 00000 n
+0000325932 00000 n
+0000325997 00000 n
+0000326062 00000 n
+0000326127 00000 n
+0000326192 00000 n
+0000326257 00000 n
+0000326322 00000 n
+0000326387 00000 n
+0000326452 00000 n
+0000326517 00000 n
+0000326581 00000 n
+0000323141 00000 n
+0000329888 00000 n
+0000333029 00000 n
+0000329715 00000 n
+0000326926 00000 n
+0000330046 00000 n
+0000330110 00000 n
+0000330175 00000 n
+0000330240 00000 n
+0000330304 00000 n
+0000330369 00000 n
+0000330434 00000 n
+0000330499 00000 n
+0000330564 00000 n
+0000330629 00000 n
+0000330694 00000 n
+0000330759 00000 n
+0000330824 00000 n
+0000330888 00000 n
+0000330953 00000 n
+0000331018 00000 n
+0000331083 00000 n
+0000331147 00000 n
+0000331212 00000 n
+0000331277 00000 n
+0000331341 00000 n
+0000331406 00000 n
+0000331471 00000 n
+0000331536 00000 n
+0000331601 00000 n
+0000331666 00000 n
+0000331731 00000 n
+0000331796 00000 n
+0000331860 00000 n
+0000331925 00000 n
+0000331990 00000 n
+0000332055 00000 n
+0000332120 00000 n
+0000332185 00000 n
+0000332250 00000 n
+0000332315 00000 n
+0000332379 00000 n
+0000332444 00000 n
+0000332509 00000 n
+0000332574 00000 n
+0000332639 00000 n
+0000332704 00000 n
+0000332769 00000 n
+0000332834 00000 n
+0000332899 00000 n
+0000332964 00000 n
+0000329857 00000 n
+0000337980 00000 n
+0000335585 00000 n
+0000333193 00000 n
+0000335710 00000 n
+0000335836 00000 n
+0000335901 00000 n
+0000335966 00000 n
+0000336031 00000 n
+0000336096 00000 n
+0000336161 00000 n
+0000336226 00000 n
+0000336291 00000 n
+0000336356 00000 n
+0000336421 00000 n
+0000336486 00000 n
+0000336551 00000 n
+0000336616 00000 n
+0000336681 00000 n
+0000336746 00000 n
+0000336811 00000 n
+0000336876 00000 n
+0000336940 00000 n
+0000337005 00000 n
+0000337070 00000 n
+0000337135 00000 n
+0000337200 00000 n
+0000337265 00000 n
+0000337330 00000 n
+0000337395 00000 n
+0000337460 00000 n
+0000337525 00000 n
+0000337590 00000 n
+0000337655 00000 n
+0000337720 00000 n
+0000337785 00000 n
+0000337850 00000 n
+0000337915 00000 n
+0000343887 00000 n
+0000340456 00000 n
+0000338170 00000 n
+0000340581 00000 n
+0000340645 00000 n
+0000340710 00000 n
+0000340775 00000 n
+0000340840 00000 n
+0000340905 00000 n
+0000340970 00000 n
+0000341035 00000 n
+0000341100 00000 n
+0000341165 00000 n
+0000341228 00000 n
+0000341293 00000 n
+0000341358 00000 n
+0000341423 00000 n
+0000341488 00000 n
+0000341553 00000 n
+0000341618 00000 n
+0000341683 00000 n
+0000341748 00000 n
+0000341813 00000 n
+0000341878 00000 n
+0000341943 00000 n
+0000342007 00000 n
+0000342072 00000 n
+0000342137 00000 n
+0000342202 00000 n
+0000342267 00000 n
+0000342332 00000 n
+0000342397 00000 n
+0000342462 00000 n
+0000342526 00000 n
+0000342591 00000 n
+0000342656 00000 n
+0000342721 00000 n
+0000342786 00000 n
+0000342851 00000 n
+0000342916 00000 n
+0000342981 00000 n
+0000343046 00000 n
+0000343110 00000 n
+0000343175 00000 n
+0000343240 00000 n
+0000343305 00000 n
+0000343370 00000 n
+0000343435 00000 n
+0000343500 00000 n
+0000343565 00000 n
+0000343630 00000 n
+0000343694 00000 n
+0000343759 00000 n
+0000343823 00000 n
+0000347086 00000 n
+0000349967 00000 n
+0000346913 00000 n
+0000344064 00000 n
+0000347243 00000 n
+0000347307 00000 n
+0000347372 00000 n
+0000347436 00000 n
+0000347501 00000 n
+0000347565 00000 n
+0000347630 00000 n
+0000347695 00000 n
+0000347760 00000 n
+0000347825 00000 n
+0000347890 00000 n
+0000347955 00000 n
+0000348020 00000 n
+0000348085 00000 n
+0000348150 00000 n
+0000348215 00000 n
+0000348280 00000 n
+0000348345 00000 n
+0000348409 00000 n
+0000348474 00000 n
+0000348539 00000 n
+0000348604 00000 n
+0000348669 00000 n
+0000348734 00000 n
+0000348799 00000 n
+0000348864 00000 n
+0000348929 00000 n
+0000348994 00000 n
+0000349059 00000 n
+0000349123 00000 n
+0000349188 00000 n
+0000349253 00000 n
+0000349318 00000 n
+0000349383 00000 n
+0000349448 00000 n
+0000349513 00000 n
+0000349578 00000 n
+0000349643 00000 n
+0000349708 00000 n
+0000349773 00000 n
+0000349838 00000 n
+0000349903 00000 n
+0000347055 00000 n
+0000355761 00000 n
+0000352073 00000 n
+0000350196 00000 n
+0000352198 00000 n
+0000352262 00000 n
+0000352327 00000 n
+0000352391 00000 n
+0000352456 00000 n
+0000352521 00000 n
+0000352586 00000 n
+0000352651 00000 n
+0000352716 00000 n
+0000352781 00000 n
+0000352846 00000 n
+0000352911 00000 n
+0000352976 00000 n
+0000353039 00000 n
+0000353104 00000 n
+0000353169 00000 n
+0000353234 00000 n
+0000353299 00000 n
+0000353364 00000 n
+0000353429 00000 n
+0000353494 00000 n
+0000353559 00000 n
+0000353623 00000 n
+0000353688 00000 n
+0000353753 00000 n
+0000353817 00000 n
+0000353882 00000 n
+0000353947 00000 n
+0000354012 00000 n
+0000354077 00000 n
+0000354142 00000 n
+0000354207 00000 n
+0000354272 00000 n
+0000354337 00000 n
+0000354402 00000 n
+0000354467 00000 n
+0000354532 00000 n
+0000354597 00000 n
+0000354660 00000 n
+0000354725 00000 n
+0000354790 00000 n
+0000354855 00000 n
+0000354920 00000 n
+0000354985 00000 n
+0000355050 00000 n
+0000355115 00000 n
+0000355180 00000 n
+0000355245 00000 n
+0000355310 00000 n
+0000355374 00000 n
+0000355439 00000 n
+0000355504 00000 n
+0000355569 00000 n
+0000355634 00000 n
+0000355697 00000 n
+0001535188 00000 n
+0000361753 00000 n
+0000358323 00000 n
+0000355925 00000 n
+0000358448 00000 n
+0000358512 00000 n
+0000358577 00000 n
+0000358641 00000 n
+0000358706 00000 n
+0000358771 00000 n
+0000358836 00000 n
+0000358901 00000 n
+0000358966 00000 n
+0000359031 00000 n
+0000359096 00000 n
+0000359161 00000 n
+0000359225 00000 n
+0000359290 00000 n
+0000359355 00000 n
+0000359420 00000 n
+0000359485 00000 n
+0000359550 00000 n
+0000359615 00000 n
+0000359679 00000 n
+0000359744 00000 n
+0000359809 00000 n
+0000359874 00000 n
+0000359939 00000 n
+0000360004 00000 n
+0000360069 00000 n
+0000360132 00000 n
+0000360197 00000 n
+0000360262 00000 n
+0000360327 00000 n
+0000360392 00000 n
+0000360457 00000 n
+0000360522 00000 n
+0000360587 00000 n
+0000360652 00000 n
+0000360716 00000 n
+0000360781 00000 n
+0000360846 00000 n
+0000360911 00000 n
+0000360976 00000 n
+0000361041 00000 n
+0000361106 00000 n
+0000361171 00000 n
+0000361236 00000 n
+0000361301 00000 n
+0000361366 00000 n
+0000361431 00000 n
+0000361496 00000 n
+0000361560 00000 n
+0000361625 00000 n
+0000361689 00000 n
+0000367840 00000 n
+0000364604 00000 n
+0000361930 00000 n
+0000364729 00000 n
+0000364793 00000 n
+0000364858 00000 n
+0000364922 00000 n
+0000364987 00000 n
+0000365052 00000 n
+0000365117 00000 n
+0000365182 00000 n
+0000365246 00000 n
+0000365311 00000 n
+0000365376 00000 n
+0000365441 00000 n
+0000365506 00000 n
+0000365571 00000 n
+0000365636 00000 n
+0000365701 00000 n
+0000365766 00000 n
+0000365830 00000 n
+0000365895 00000 n
+0000365960 00000 n
+0000366025 00000 n
+0000366090 00000 n
+0000366155 00000 n
+0000366220 00000 n
+0000366285 00000 n
+0000366350 00000 n
+0000366415 00000 n
+0000366479 00000 n
+0000366544 00000 n
+0000366609 00000 n
+0000366674 00000 n
+0000366739 00000 n
+0000366804 00000 n
+0000366869 00000 n
+0000366934 00000 n
+0000366999 00000 n
+0000367063 00000 n
+0000367128 00000 n
+0000367193 00000 n
+0000367258 00000 n
+0000367323 00000 n
+0000367388 00000 n
+0000367453 00000 n
+0000367518 00000 n
+0000367583 00000 n
+0000367647 00000 n
+0000367712 00000 n
+0000367776 00000 n
+0000374162 00000 n
+0000371447 00000 n
+0000368017 00000 n
+0000371572 00000 n
+0000371636 00000 n
+0000371701 00000 n
+0000371765 00000 n
+0000371830 00000 n
+0000371895 00000 n
+0000371960 00000 n
+0000372025 00000 n
+0000372089 00000 n
+0000372154 00000 n
+0000372219 00000 n
+0000372284 00000 n
+0000372349 00000 n
+0000372413 00000 n
+0000372478 00000 n
+0000372543 00000 n
+0000372608 00000 n
+0000372673 00000 n
+0000372738 00000 n
+0000372803 00000 n
+0000372867 00000 n
+0000372932 00000 n
+0000372997 00000 n
+0000373062 00000 n
+0000373127 00000 n
+0000373192 00000 n
+0000373257 00000 n
+0000373322 00000 n
+0000373387 00000 n
+0000373451 00000 n
+0000373515 00000 n
+0000373580 00000 n
+0000373645 00000 n
+0000373710 00000 n
+0000373775 00000 n
+0000373840 00000 n
+0000373904 00000 n
+0000373969 00000 n
+0000374034 00000 n
+0000374098 00000 n
+0000379926 00000 n
+0000377339 00000 n
+0000374352 00000 n
+0000377464 00000 n
+0000377528 00000 n
+0000377593 00000 n
+0000377658 00000 n
+0000377723 00000 n
+0000377788 00000 n
+0000377853 00000 n
+0000377918 00000 n
+0000377982 00000 n
+0000378047 00000 n
+0000378111 00000 n
+0000378176 00000 n
+0000378241 00000 n
+0000378305 00000 n
+0000378370 00000 n
+0000378435 00000 n
+0000378500 00000 n
+0000378565 00000 n
+0000378630 00000 n
+0000378695 00000 n
+0000378760 00000 n
+0000378825 00000 n
+0000378890 00000 n
+0000378955 00000 n
+0000379020 00000 n
+0000379085 00000 n
+0000379149 00000 n
+0000379214 00000 n
+0000379279 00000 n
+0000379344 00000 n
+0000379409 00000 n
+0000379474 00000 n
+0000379539 00000 n
+0000379604 00000 n
+0000379669 00000 n
+0000379734 00000 n
+0000379798 00000 n
+0000379862 00000 n
+0000385854 00000 n
+0000382619 00000 n
+0000380103 00000 n
+0000382744 00000 n
+0000382808 00000 n
+0000382873 00000 n
+0000382938 00000 n
+0000383003 00000 n
+0000383067 00000 n
+0000383132 00000 n
+0000383197 00000 n
+0000383261 00000 n
+0000383326 00000 n
+0000383391 00000 n
+0000383456 00000 n
+0000383521 00000 n
+0000383586 00000 n
+0000383651 00000 n
+0000383716 00000 n
+0000383781 00000 n
+0000383844 00000 n
+0000383909 00000 n
+0000383974 00000 n
+0000384039 00000 n
+0000384104 00000 n
+0000384169 00000 n
+0000384234 00000 n
+0000384299 00000 n
+0000384364 00000 n
+0000384429 00000 n
+0000384492 00000 n
+0000384557 00000 n
+0000384622 00000 n
+0000384687 00000 n
+0000384752 00000 n
+0000384817 00000 n
+0000384882 00000 n
+0000384947 00000 n
+0000385012 00000 n
+0000385076 00000 n
+0000385141 00000 n
+0000385206 00000 n
+0000385271 00000 n
+0000385336 00000 n
+0000385401 00000 n
+0000385466 00000 n
+0000385531 00000 n
+0000385596 00000 n
+0000385661 00000 n
+0000385725 00000 n
+0000385790 00000 n
+0000391806 00000 n
+0000388311 00000 n
+0000386044 00000 n
+0000388436 00000 n
+0000388500 00000 n
+0000388565 00000 n
+0000388630 00000 n
+0000388695 00000 n
+0000388760 00000 n
+0000388825 00000 n
+0000388890 00000 n
+0000388955 00000 n
+0000389020 00000 n
+0000389083 00000 n
+0000389148 00000 n
+0000389213 00000 n
+0000389278 00000 n
+0000389343 00000 n
+0000389408 00000 n
+0000389473 00000 n
+0000389538 00000 n
+0000389603 00000 n
+0000389667 00000 n
+0000389732 00000 n
+0000389797 00000 n
+0000389862 00000 n
+0000389927 00000 n
+0000389992 00000 n
+0000390057 00000 n
+0000390121 00000 n
+0000390186 00000 n
+0000390251 00000 n
+0000390316 00000 n
+0000390381 00000 n
+0000390446 00000 n
+0000390511 00000 n
+0000390576 00000 n
+0000390641 00000 n
+0000390706 00000 n
+0000390771 00000 n
+0000390836 00000 n
+0000390901 00000 n
+0000390966 00000 n
+0000391031 00000 n
+0000391096 00000 n
+0000391161 00000 n
+0000391225 00000 n
+0000391290 00000 n
+0000391354 00000 n
+0000391419 00000 n
+0000391484 00000 n
+0000391549 00000 n
+0000391614 00000 n
+0000391678 00000 n
+0000391742 00000 n
+0000397893 00000 n
+0000394265 00000 n
+0000391983 00000 n
+0000394390 00000 n
+0000394454 00000 n
+0000394519 00000 n
+0000394584 00000 n
+0000394649 00000 n
+0000394714 00000 n
+0000394779 00000 n
+0000394844 00000 n
+0000394909 00000 n
+0000394974 00000 n
+0000395039 00000 n
+0000395104 00000 n
+0000395168 00000 n
+0000395233 00000 n
+0000395298 00000 n
+0000395363 00000 n
+0000395428 00000 n
+0000395493 00000 n
+0000395558 00000 n
+0000395623 00000 n
+0000395688 00000 n
+0000395752 00000 n
+0000395817 00000 n
+0000395882 00000 n
+0000395947 00000 n
+0000396012 00000 n
+0000396077 00000 n
+0000396142 00000 n
+0000396207 00000 n
+0000396272 00000 n
+0000396337 00000 n
+0000396402 00000 n
+0000396467 00000 n
+0000396532 00000 n
+0000396597 00000 n
+0000396662 00000 n
+0000396727 00000 n
+0000396792 00000 n
+0000396857 00000 n
+0000396922 00000 n
+0000396987 00000 n
+0000397052 00000 n
+0000397117 00000 n
+0000397181 00000 n
+0000397246 00000 n
+0000397311 00000 n
+0000397376 00000 n
+0000397441 00000 n
+0000397506 00000 n
+0000397571 00000 n
+0000397635 00000 n
+0000397700 00000 n
+0000397765 00000 n
+0000397829 00000 n
+0000404114 00000 n
+0000400295 00000 n
+0000398070 00000 n
+0000400420 00000 n
+0000400484 00000 n
+0000400549 00000 n
+0000400613 00000 n
+0000400678 00000 n
+0000400743 00000 n
+0000400808 00000 n
+0000400873 00000 n
+0000400938 00000 n
+0000401003 00000 n
+0000401068 00000 n
+0000401133 00000 n
+0000401198 00000 n
+0000401263 00000 n
+0000401328 00000 n
+0000401393 00000 n
+0000401458 00000 n
+0000401523 00000 n
+0000401587 00000 n
+0000401652 00000 n
+0000401717 00000 n
+0000401782 00000 n
+0000401847 00000 n
+0000401912 00000 n
+0000401977 00000 n
+0000402042 00000 n
+0000402107 00000 n
+0000402170 00000 n
+0000402235 00000 n
+0000402300 00000 n
+0000402365 00000 n
+0000402430 00000 n
+0000402495 00000 n
+0000402560 00000 n
+0000402625 00000 n
+0000402689 00000 n
+0000402754 00000 n
+0000402819 00000 n
+0000402884 00000 n
+0000402949 00000 n
+0000403014 00000 n
+0000403079 00000 n
+0000403144 00000 n
+0000403209 00000 n
+0000403272 00000 n
+0000403337 00000 n
+0000403402 00000 n
+0000403467 00000 n
+0000403532 00000 n
+0000403597 00000 n
+0000403662 00000 n
+0000403727 00000 n
+0000403792 00000 n
+0000403856 00000 n
+0000403921 00000 n
+0000403986 00000 n
+0000404050 00000 n
+0000409947 00000 n
+0000406385 00000 n
+0000404278 00000 n
+0000406510 00000 n
+0000406574 00000 n
+0000406639 00000 n
+0000406703 00000 n
+0000406768 00000 n
+0000406833 00000 n
+0000406898 00000 n
+0000406963 00000 n
+0000407028 00000 n
+0000407093 00000 n
+0000407158 00000 n
+0000407223 00000 n
+0000407288 00000 n
+0000407352 00000 n
+0000407417 00000 n
+0000407482 00000 n
+0000407547 00000 n
+0000407612 00000 n
+0000407677 00000 n
+0000407742 00000 n
+0000407807 00000 n
+0000407872 00000 n
+0000407936 00000 n
+0000408001 00000 n
+0000408066 00000 n
+0000408131 00000 n
+0000408196 00000 n
+0000408261 00000 n
+0000408326 00000 n
+0000408391 00000 n
+0000408456 00000 n
+0000408521 00000 n
+0000408585 00000 n
+0000408650 00000 n
+0000408715 00000 n
+0000408780 00000 n
+0000408845 00000 n
+0000408910 00000 n
+0000408975 00000 n
+0000409040 00000 n
+0000409105 00000 n
+0000409170 00000 n
+0000409234 00000 n
+0000409299 00000 n
+0000409364 00000 n
+0000409429 00000 n
+0000409494 00000 n
+0000409559 00000 n
+0000409624 00000 n
+0000409689 00000 n
+0000409754 00000 n
+0000409818 00000 n
+0000409883 00000 n
+0000415466 00000 n
+0000413331 00000 n
+0000410111 00000 n
+0000413456 00000 n
+0000413520 00000 n
+0000413585 00000 n
+0000413649 00000 n
+0000413714 00000 n
+0000413779 00000 n
+0000413844 00000 n
+0000413909 00000 n
+0000413974 00000 n
+0000414039 00000 n
+0000414104 00000 n
+0000414168 00000 n
+0000414233 00000 n
+0000414298 00000 n
+0000414363 00000 n
+0000414428 00000 n
+0000414493 00000 n
+0000414558 00000 n
+0000414623 00000 n
+0000414688 00000 n
+0000414753 00000 n
+0000414818 00000 n
+0000414883 00000 n
+0000414947 00000 n
+0000415012 00000 n
+0000415077 00000 n
+0000415141 00000 n
+0000415206 00000 n
+0000415271 00000 n
+0000415336 00000 n
+0000415401 00000 n
+0001535353 00000 n
+0000421247 00000 n
+0000418331 00000 n
+0000415669 00000 n
+0000418456 00000 n
+0000418520 00000 n
+0000418585 00000 n
+0000418650 00000 n
+0000418715 00000 n
+0000418779 00000 n
+0000418844 00000 n
+0000418909 00000 n
+0000418974 00000 n
+0000419039 00000 n
+0000419104 00000 n
+0000419169 00000 n
+0000419234 00000 n
+0000419299 00000 n
+0000419363 00000 n
+0000419428 00000 n
+0000419493 00000 n
+0000419558 00000 n
+0000419623 00000 n
+0000419688 00000 n
+0000419753 00000 n
+0000419818 00000 n
+0000419883 00000 n
+0000419948 00000 n
+0000420013 00000 n
+0000420078 00000 n
+0000420143 00000 n
+0000420208 00000 n
+0000420273 00000 n
+0000420338 00000 n
+0000420403 00000 n
+0000420468 00000 n
+0000420533 00000 n
+0000420598 00000 n
+0000420663 00000 n
+0000420728 00000 n
+0000420793 00000 n
+0000420858 00000 n
+0000420923 00000 n
+0000420988 00000 n
+0000421053 00000 n
+0000421117 00000 n
+0000421182 00000 n
+0000426891 00000 n
+0000423984 00000 n
+0000421411 00000 n
+0000424109 00000 n
+0000424173 00000 n
+0000424238 00000 n
+0000424303 00000 n
+0000424368 00000 n
+0000424433 00000 n
+0000424559 00000 n
+0000424624 00000 n
+0000424689 00000 n
+0000424753 00000 n
+0000424818 00000 n
+0000424883 00000 n
+0000424948 00000 n
+0000425013 00000 n
+0000425078 00000 n
+0000425143 00000 n
+0000425208 00000 n
+0000425273 00000 n
+0000425338 00000 n
+0000425403 00000 n
+0000425468 00000 n
+0000425533 00000 n
+0000425596 00000 n
+0000425661 00000 n
+0000425726 00000 n
+0000425791 00000 n
+0000425856 00000 n
+0000425921 00000 n
+0000425986 00000 n
+0000426049 00000 n
+0000426114 00000 n
+0000426179 00000 n
+0000426244 00000 n
+0000426309 00000 n
+0000426374 00000 n
+0000426439 00000 n
+0000426504 00000 n
+0000426569 00000 n
+0000426633 00000 n
+0000426698 00000 n
+0000426763 00000 n
+0000426827 00000 n
+0000432823 00000 n
+0000429328 00000 n
+0000427094 00000 n
+0000429453 00000 n
+0000429517 00000 n
+0000429582 00000 n
+0000429646 00000 n
+0000429711 00000 n
+0000429775 00000 n
+0000429840 00000 n
+0000429905 00000 n
+0000429970 00000 n
+0000430035 00000 n
+0000430100 00000 n
+0000430165 00000 n
+0000430230 00000 n
+0000430295 00000 n
+0000430360 00000 n
+0000430424 00000 n
+0000430489 00000 n
+0000430554 00000 n
+0000430619 00000 n
+0000430684 00000 n
+0000430749 00000 n
+0000430814 00000 n
+0000430879 00000 n
+0000430944 00000 n
+0000431008 00000 n
+0000431073 00000 n
+0000431138 00000 n
+0000431202 00000 n
+0000431267 00000 n
+0000431332 00000 n
+0000431397 00000 n
+0000431462 00000 n
+0000431527 00000 n
+0000431592 00000 n
+0000431657 00000 n
+0000431722 00000 n
+0000431786 00000 n
+0000431851 00000 n
+0000431916 00000 n
+0000431981 00000 n
+0000432046 00000 n
+0000432111 00000 n
+0000432176 00000 n
+0000432241 00000 n
+0000432306 00000 n
+0000432370 00000 n
+0000432435 00000 n
+0000432500 00000 n
+0000432565 00000 n
+0000432630 00000 n
+0000432695 00000 n
+0000432759 00000 n
+0000438157 00000 n
0000434726 00000 n
-0000434791 00000 n
-0000434856 00000 n
-0000434921 00000 n
-0000434986 00000 n
-0000435051 00000 n
-0000435116 00000 n
-0000435181 00000 n
-0000435246 00000 n
-0000435311 00000 n
-0000435376 00000 n
-0000435441 00000 n
-0000440917 00000 n
-0000438328 00000 n
-0000435696 00000 n
-0000438453 00000 n
-0000438517 00000 n
-0000438582 00000 n
-0000438646 00000 n
-0000438711 00000 n
-0000438776 00000 n
-0000438841 00000 n
-0000438906 00000 n
-0000438971 00000 n
-0000439036 00000 n
-0000439101 00000 n
-0000439166 00000 n
-0000439231 00000 n
-0000439295 00000 n
-0000439360 00000 n
-0000439425 00000 n
-0000439490 00000 n
-0000439555 00000 n
-0000439620 00000 n
-0000439685 00000 n
-0000439750 00000 n
-0000439815 00000 n
-0000439880 00000 n
-0000439945 00000 n
-0000440010 00000 n
-0000440075 00000 n
-0000440140 00000 n
-0000440204 00000 n
-0000440269 00000 n
-0000440334 00000 n
-0000440399 00000 n
-0000440464 00000 n
-0000440529 00000 n
-0000440594 00000 n
-0000440659 00000 n
-0000440724 00000 n
-0000440789 00000 n
-0000440854 00000 n
-0000446933 00000 n
-0000443371 00000 n
-0000441094 00000 n
-0000443496 00000 n
-0000443560 00000 n
-0000443625 00000 n
-0000443690 00000 n
-0000443755 00000 n
-0000443819 00000 n
-0000443884 00000 n
-0000443949 00000 n
-0000444014 00000 n
-0000444079 00000 n
-0000444144 00000 n
-0000444209 00000 n
-0000444274 00000 n
-0000444339 00000 n
-0000444404 00000 n
-0000444469 00000 n
-0000444533 00000 n
-0000444598 00000 n
-0000444663 00000 n
-0000444728 00000 n
-0000444793 00000 n
-0000444858 00000 n
-0000444923 00000 n
-0000444988 00000 n
-0000445053 00000 n
-0000445118 00000 n
-0000445183 00000 n
-0000445247 00000 n
-0000445312 00000 n
-0000445376 00000 n
-0000445441 00000 n
-0000445506 00000 n
-0000445571 00000 n
-0000445636 00000 n
-0000445701 00000 n
-0000445766 00000 n
-0000445831 00000 n
-0000445896 00000 n
-0000445961 00000 n
-0000446026 00000 n
-0000446090 00000 n
-0000446155 00000 n
-0000446220 00000 n
-0000446285 00000 n
-0000446350 00000 n
-0000446415 00000 n
-0000446480 00000 n
-0000446545 00000 n
-0000446610 00000 n
-0000446674 00000 n
-0000446739 00000 n
-0000446804 00000 n
-0000446869 00000 n
-0000452767 00000 n
-0000449594 00000 n
-0000447110 00000 n
-0000449719 00000 n
-0000449783 00000 n
-0000449848 00000 n
-0000449913 00000 n
-0000449978 00000 n
-0000450043 00000 n
-0000450108 00000 n
-0000450173 00000 n
-0000450238 00000 n
-0000450303 00000 n
-0000450368 00000 n
-0000450433 00000 n
-0000450498 00000 n
-0000450562 00000 n
-0000450627 00000 n
-0000450692 00000 n
-0000450757 00000 n
-0000450822 00000 n
-0000450887 00000 n
-0000450952 00000 n
-0000451017 00000 n
-0000451082 00000 n
-0000451147 00000 n
-0000451212 00000 n
-0000451277 00000 n
-0000451342 00000 n
-0000451407 00000 n
-0000451472 00000 n
-0000451537 00000 n
-0000451602 00000 n
-0000451667 00000 n
-0000451732 00000 n
-0000451796 00000 n
-0000451861 00000 n
-0000451926 00000 n
-0000451991 00000 n
-0000452056 00000 n
-0000452121 00000 n
-0000452186 00000 n
-0000452251 00000 n
-0000452316 00000 n
-0000452381 00000 n
-0000452444 00000 n
-0000452509 00000 n
-0000452574 00000 n
-0000452639 00000 n
-0000452703 00000 n
-0001888406 00000 n
-0000458703 00000 n
-0000454879 00000 n
-0000452944 00000 n
-0000455004 00000 n
-0000455068 00000 n
-0000455133 00000 n
-0000455198 00000 n
-0000455263 00000 n
-0000455328 00000 n
-0000455393 00000 n
-0000455458 00000 n
-0000455523 00000 n
-0000455588 00000 n
-0000455652 00000 n
-0000455717 00000 n
-0000455782 00000 n
-0000455847 00000 n
-0000455912 00000 n
-0000455977 00000 n
-0000456042 00000 n
-0000456107 00000 n
-0000456172 00000 n
-0000456236 00000 n
-0000456301 00000 n
-0000456366 00000 n
-0000456431 00000 n
-0000456496 00000 n
-0000456561 00000 n
-0000456626 00000 n
-0000456691 00000 n
-0000456756 00000 n
-0000456821 00000 n
-0000456886 00000 n
-0000456951 00000 n
-0000457016 00000 n
-0000457081 00000 n
-0000457146 00000 n
-0000457211 00000 n
-0000457276 00000 n
-0000457341 00000 n
-0000457406 00000 n
-0000457471 00000 n
-0000457536 00000 n
-0000457601 00000 n
-0000457665 00000 n
-0000457730 00000 n
-0000457795 00000 n
-0000457860 00000 n
-0000457925 00000 n
-0000457990 00000 n
-0000458055 00000 n
-0000458120 00000 n
-0000458185 00000 n
-0000458249 00000 n
-0000458314 00000 n
-0000458379 00000 n
-0000458444 00000 n
-0000458509 00000 n
-0000458574 00000 n
-0000458639 00000 n
-0000464147 00000 n
-0000461817 00000 n
-0000458867 00000 n
-0000461942 00000 n
-0000462006 00000 n
-0000462071 00000 n
-0000462136 00000 n
-0000462201 00000 n
-0000462266 00000 n
-0000462331 00000 n
-0000462396 00000 n
-0000462461 00000 n
-0000462525 00000 n
-0000462590 00000 n
-0000462655 00000 n
-0000462720 00000 n
-0000462785 00000 n
-0000462850 00000 n
-0000462915 00000 n
-0000462979 00000 n
-0000463044 00000 n
-0000463109 00000 n
-0000463174 00000 n
-0000463239 00000 n
-0000463304 00000 n
-0000463369 00000 n
-0000463434 00000 n
-0000463499 00000 n
-0000463564 00000 n
-0000463629 00000 n
-0000463694 00000 n
-0000463759 00000 n
-0000463824 00000 n
-0000463889 00000 n
-0000463953 00000 n
-0000464018 00000 n
-0000464083 00000 n
-0000469811 00000 n
-0000467288 00000 n
-0000464337 00000 n
-0000467413 00000 n
-0000467477 00000 n
-0000467542 00000 n
-0000467607 00000 n
-0000467672 00000 n
-0000467737 00000 n
-0000467802 00000 n
-0000467867 00000 n
-0000467931 00000 n
-0000467996 00000 n
-0000468061 00000 n
-0000468125 00000 n
-0000468190 00000 n
-0000468255 00000 n
-0000468320 00000 n
-0000468385 00000 n
-0000468450 00000 n
-0000468515 00000 n
-0000468580 00000 n
-0000468644 00000 n
-0000468709 00000 n
-0000468774 00000 n
-0000468839 00000 n
-0000468904 00000 n
-0000468969 00000 n
-0000469034 00000 n
-0000469099 00000 n
-0000469164 00000 n
-0000469229 00000 n
-0000469294 00000 n
-0000469358 00000 n
-0000469423 00000 n
-0000469488 00000 n
-0000469553 00000 n
-0000469618 00000 n
-0000469683 00000 n
-0000469747 00000 n
-0000475632 00000 n
-0000472394 00000 n
-0000470001 00000 n
-0000472519 00000 n
-0000472583 00000 n
-0000472648 00000 n
-0000472713 00000 n
-0000472778 00000 n
-0000472843 00000 n
-0000472908 00000 n
-0000472973 00000 n
-0000473038 00000 n
-0000473103 00000 n
-0000473167 00000 n
-0000473232 00000 n
-0000473297 00000 n
-0000473362 00000 n
-0000473427 00000 n
-0000473492 00000 n
-0000473557 00000 n
-0000473622 00000 n
-0000473687 00000 n
-0000473752 00000 n
-0000473817 00000 n
-0000473882 00000 n
-0000473947 00000 n
-0000474011 00000 n
-0000474076 00000 n
-0000474141 00000 n
-0000474206 00000 n
-0000474271 00000 n
-0000474335 00000 n
-0000474400 00000 n
-0000474465 00000 n
-0000474530 00000 n
-0000474595 00000 n
-0000474660 00000 n
-0000474725 00000 n
-0000474790 00000 n
-0000474855 00000 n
-0000474919 00000 n
-0000474984 00000 n
-0000475049 00000 n
-0000475114 00000 n
-0000475179 00000 n
-0000475244 00000 n
-0000475309 00000 n
-0000475374 00000 n
-0000475439 00000 n
-0000475504 00000 n
-0000475568 00000 n
-0000481571 00000 n
-0000477750 00000 n
-0000475809 00000 n
-0000477875 00000 n
-0000477939 00000 n
-0000478004 00000 n
-0000478069 00000 n
-0000478134 00000 n
-0000478199 00000 n
-0000478264 00000 n
-0000478329 00000 n
-0000478394 00000 n
-0000478459 00000 n
-0000478523 00000 n
-0000478588 00000 n
-0000478653 00000 n
-0000478718 00000 n
-0000478783 00000 n
-0000478848 00000 n
-0000478913 00000 n
-0000478978 00000 n
-0000479043 00000 n
-0000479107 00000 n
-0000479172 00000 n
-0000479237 00000 n
-0000479302 00000 n
-0000479367 00000 n
-0000479432 00000 n
-0000479497 00000 n
-0000479562 00000 n
-0000479627 00000 n
-0000479690 00000 n
-0000479755 00000 n
-0000479820 00000 n
-0000479885 00000 n
-0000479950 00000 n
-0000480015 00000 n
-0000480080 00000 n
-0000480145 00000 n
-0000480210 00000 n
-0000480275 00000 n
-0000480340 00000 n
-0000480405 00000 n
-0000480470 00000 n
-0000480535 00000 n
-0000480600 00000 n
-0000480665 00000 n
-0000480729 00000 n
-0000480794 00000 n
-0000480859 00000 n
-0000480924 00000 n
-0000480989 00000 n
-0000481054 00000 n
-0000481119 00000 n
-0000481184 00000 n
-0000481249 00000 n
-0000481313 00000 n
-0000481378 00000 n
-0000481443 00000 n
-0000481507 00000 n
-0000487343 00000 n
-0000483718 00000 n
-0000481735 00000 n
-0000483843 00000 n
-0000483907 00000 n
-0000483972 00000 n
-0000484037 00000 n
-0000484102 00000 n
-0000484167 00000 n
-0000484232 00000 n
-0000484297 00000 n
-0000484362 00000 n
-0000484427 00000 n
-0000484491 00000 n
-0000484556 00000 n
-0000484621 00000 n
-0000484686 00000 n
-0000484751 00000 n
-0000484816 00000 n
-0000484881 00000 n
-0000484945 00000 n
-0000485010 00000 n
-0000485075 00000 n
-0000485140 00000 n
-0000485205 00000 n
-0000485270 00000 n
-0000485335 00000 n
-0000485400 00000 n
-0000485465 00000 n
-0000485530 00000 n
-0000485595 00000 n
-0000485659 00000 n
-0000485724 00000 n
-0000485789 00000 n
-0000485853 00000 n
-0000485918 00000 n
-0000485983 00000 n
-0000486048 00000 n
-0000486113 00000 n
-0000486178 00000 n
-0000486243 00000 n
-0000486308 00000 n
-0000486373 00000 n
-0000486437 00000 n
-0000486502 00000 n
-0000486567 00000 n
-0000486632 00000 n
-0000486697 00000 n
-0000486761 00000 n
-0000486826 00000 n
-0000486891 00000 n
-0000486956 00000 n
-0000487021 00000 n
-0000487086 00000 n
-0000487151 00000 n
-0000487216 00000 n
-0000487280 00000 n
-0000493254 00000 n
-0000489303 00000 n
-0000487507 00000 n
-0000489428 00000 n
-0000489492 00000 n
-0000489557 00000 n
-0000489622 00000 n
-0000489687 00000 n
-0000489752 00000 n
-0000489817 00000 n
-0000489882 00000 n
-0000489947 00000 n
-0000490012 00000 n
-0000490077 00000 n
-0000490142 00000 n
-0000490205 00000 n
-0000490270 00000 n
-0000490335 00000 n
-0000490400 00000 n
-0000490465 00000 n
-0000490530 00000 n
-0000490595 00000 n
-0000490660 00000 n
-0000490725 00000 n
-0000490790 00000 n
-0000490855 00000 n
-0000490920 00000 n
-0000490985 00000 n
-0000491050 00000 n
-0000491115 00000 n
-0000491180 00000 n
-0000491245 00000 n
-0000491310 00000 n
-0000491375 00000 n
-0000491439 00000 n
-0000491504 00000 n
-0000491569 00000 n
-0000491634 00000 n
-0000491699 00000 n
-0000491764 00000 n
-0000491829 00000 n
-0000491894 00000 n
-0000491959 00000 n
-0000492024 00000 n
-0000492089 00000 n
-0000492154 00000 n
-0000492219 00000 n
-0000492284 00000 n
-0000492348 00000 n
-0000492413 00000 n
-0000492478 00000 n
-0000492543 00000 n
-0000492608 00000 n
-0000492673 00000 n
-0000492738 00000 n
-0000492803 00000 n
-0000492868 00000 n
-0000492931 00000 n
-0000492996 00000 n
-0000493061 00000 n
-0000493126 00000 n
-0000493190 00000 n
-0000498837 00000 n
-0000495731 00000 n
-0000493418 00000 n
-0000495856 00000 n
-0000495920 00000 n
-0000495985 00000 n
-0000496050 00000 n
-0000496115 00000 n
-0000496180 00000 n
-0000496245 00000 n
-0000496310 00000 n
-0000496375 00000 n
-0000496440 00000 n
-0000496505 00000 n
-0000496570 00000 n
-0000496635 00000 n
-0000496700 00000 n
-0000496765 00000 n
-0000496829 00000 n
-0000496894 00000 n
-0000496959 00000 n
-0000497024 00000 n
-0000497089 00000 n
-0000497153 00000 n
-0000497218 00000 n
-0000497283 00000 n
-0000497348 00000 n
-0000497413 00000 n
-0000497478 00000 n
-0000497543 00000 n
-0000497608 00000 n
-0000497673 00000 n
-0000497737 00000 n
-0000497802 00000 n
-0000497867 00000 n
-0000497932 00000 n
-0000497997 00000 n
-0000498062 00000 n
-0000498127 00000 n
-0000498191 00000 n
-0000498256 00000 n
-0000498321 00000 n
-0000498386 00000 n
-0000498451 00000 n
-0000498516 00000 n
-0000498581 00000 n
-0000498646 00000 n
-0000498711 00000 n
-0000498775 00000 n
-0000504540 00000 n
-0000501239 00000 n
-0000499001 00000 n
-0000501364 00000 n
-0000501428 00000 n
-0000501493 00000 n
-0000501558 00000 n
-0000501623 00000 n
-0000501688 00000 n
-0000501753 00000 n
-0000501818 00000 n
-0000501883 00000 n
-0000501948 00000 n
-0000502013 00000 n
-0000502078 00000 n
-0000502142 00000 n
-0000502207 00000 n
-0000502272 00000 n
-0000502337 00000 n
-0000502402 00000 n
-0000502467 00000 n
-0000502532 00000 n
-0000502597 00000 n
-0000502661 00000 n
-0000502726 00000 n
-0000502791 00000 n
-0000502856 00000 n
-0000502921 00000 n
-0000502986 00000 n
-0000503051 00000 n
-0000503115 00000 n
-0000503180 00000 n
-0000503245 00000 n
-0000503310 00000 n
-0000503375 00000 n
-0000503440 00000 n
-0000503505 00000 n
-0000503570 00000 n
-0000503635 00000 n
-0000503698 00000 n
-0000503763 00000 n
-0000503828 00000 n
-0000503893 00000 n
-0000503958 00000 n
-0000504023 00000 n
-0000504088 00000 n
-0000504153 00000 n
-0000504218 00000 n
-0000504283 00000 n
-0000504347 00000 n
-0000504412 00000 n
-0000504476 00000 n
-0000509705 00000 n
-0000506533 00000 n
-0000504704 00000 n
-0000506658 00000 n
-0000506722 00000 n
-0000506787 00000 n
-0000506852 00000 n
-0000506917 00000 n
-0000506982 00000 n
-0000507047 00000 n
-0000507112 00000 n
-0000507177 00000 n
-0000507242 00000 n
-0000507307 00000 n
-0000507372 00000 n
-0000507437 00000 n
-0000507502 00000 n
-0000507567 00000 n
-0000507632 00000 n
-0000507696 00000 n
-0000507761 00000 n
-0000507826 00000 n
-0000507891 00000 n
-0000507956 00000 n
-0000508021 00000 n
-0000508086 00000 n
-0000508151 00000 n
-0000508216 00000 n
-0000508281 00000 n
-0000508346 00000 n
-0000508411 00000 n
-0000508476 00000 n
-0000508541 00000 n
-0000508606 00000 n
-0000508671 00000 n
-0000508798 00000 n
-0000508861 00000 n
-0000508926 00000 n
-0000508991 00000 n
-0000509056 00000 n
-0000509121 00000 n
-0000509186 00000 n
-0000509251 00000 n
-0000509316 00000 n
-0000509381 00000 n
-0000509446 00000 n
-0000509511 00000 n
-0000509576 00000 n
-0000509641 00000 n
-0001888571 00000 n
-0000515430 00000 n
-0000511872 00000 n
-0000509895 00000 n
-0000511997 00000 n
-0000512061 00000 n
-0000512126 00000 n
-0000512191 00000 n
-0000512256 00000 n
-0000512321 00000 n
-0000512386 00000 n
-0000512451 00000 n
-0000512516 00000 n
-0000512581 00000 n
-0000512646 00000 n
-0000512711 00000 n
-0000512776 00000 n
-0000512841 00000 n
-0000512906 00000 n
-0000512971 00000 n
-0000513036 00000 n
-0000513101 00000 n
-0000513162 00000 n
-0000513227 00000 n
-0000513292 00000 n
-0000513357 00000 n
-0000513422 00000 n
-0000513487 00000 n
-0000513552 00000 n
-0000513617 00000 n
-0000513682 00000 n
-0000513747 00000 n
-0000513812 00000 n
-0000513877 00000 n
-0000513942 00000 n
-0000514007 00000 n
-0000514072 00000 n
-0000514137 00000 n
-0000514202 00000 n
-0000514266 00000 n
-0000514331 00000 n
-0000514396 00000 n
-0000514461 00000 n
-0000514526 00000 n
-0000514591 00000 n
-0000514656 00000 n
-0000514721 00000 n
-0000514786 00000 n
-0000514913 00000 n
-0000514977 00000 n
-0000515042 00000 n
-0000515107 00000 n
-0000515172 00000 n
-0000515237 00000 n
-0000515302 00000 n
-0000515366 00000 n
-0000521350 00000 n
-0000517271 00000 n
-0000515633 00000 n
-0000517396 00000 n
-0000517460 00000 n
-0000517525 00000 n
-0000517590 00000 n
-0000517655 00000 n
-0000517720 00000 n
-0000517785 00000 n
-0000517850 00000 n
-0000517915 00000 n
-0000517980 00000 n
-0000518044 00000 n
-0000518109 00000 n
-0000518174 00000 n
-0000518239 00000 n
-0000518304 00000 n
-0000518369 00000 n
-0000518434 00000 n
-0000518499 00000 n
-0000518564 00000 n
-0000518628 00000 n
-0000518693 00000 n
-0000518758 00000 n
-0000518823 00000 n
-0000518888 00000 n
-0000518953 00000 n
-0000519018 00000 n
-0000519083 00000 n
-0000519148 00000 n
-0000519211 00000 n
-0000519276 00000 n
-0000519341 00000 n
-0000519406 00000 n
-0000519471 00000 n
-0000519536 00000 n
-0000519601 00000 n
-0000519666 00000 n
-0000519730 00000 n
-0000519795 00000 n
-0000519860 00000 n
-0000519925 00000 n
-0000519990 00000 n
-0000520055 00000 n
-0000520119 00000 n
-0000520184 00000 n
-0000520249 00000 n
-0000520314 00000 n
-0000520379 00000 n
-0000520444 00000 n
-0000520509 00000 n
-0000520574 00000 n
-0000520639 00000 n
-0000520703 00000 n
-0000520768 00000 n
-0000520833 00000 n
-0000520898 00000 n
-0000520963 00000 n
-0000521028 00000 n
-0000521092 00000 n
-0000521157 00000 n
-0000521222 00000 n
-0000521286 00000 n
-0000526724 00000 n
-0000524203 00000 n
-0000521501 00000 n
-0000524328 00000 n
-0000524454 00000 n
-0000524519 00000 n
-0000524584 00000 n
-0000524649 00000 n
-0000524714 00000 n
-0000524777 00000 n
-0000524842 00000 n
-0000524907 00000 n
-0000524972 00000 n
-0000525037 00000 n
-0000525102 00000 n
-0000525167 00000 n
-0000525232 00000 n
-0000525297 00000 n
-0000525361 00000 n
-0000525426 00000 n
-0000525491 00000 n
-0000525556 00000 n
-0000525621 00000 n
-0000525686 00000 n
-0000525751 00000 n
-0000525816 00000 n
-0000525881 00000 n
-0000525945 00000 n
-0000526010 00000 n
-0000526075 00000 n
-0000526140 00000 n
-0000526205 00000 n
-0000526270 00000 n
-0000526335 00000 n
-0000526399 00000 n
-0000526464 00000 n
-0000526529 00000 n
-0000526594 00000 n
-0000526659 00000 n
-0000532500 00000 n
-0000528745 00000 n
-0000526927 00000 n
-0000528870 00000 n
-0000528934 00000 n
-0000528999 00000 n
-0000529064 00000 n
-0000529129 00000 n
-0000529194 00000 n
-0000529259 00000 n
-0000529324 00000 n
-0000529389 00000 n
-0000529454 00000 n
-0000529518 00000 n
-0000529583 00000 n
-0000529648 00000 n
-0000529713 00000 n
-0000529778 00000 n
-0000529842 00000 n
-0000529907 00000 n
-0000529972 00000 n
-0000530037 00000 n
-0000530102 00000 n
-0000530167 00000 n
-0000530232 00000 n
-0000530297 00000 n
-0000530362 00000 n
-0000530425 00000 n
-0000530490 00000 n
-0000530555 00000 n
-0000530620 00000 n
-0000530685 00000 n
-0000530750 00000 n
-0000530815 00000 n
-0000530880 00000 n
-0000530945 00000 n
-0000531010 00000 n
-0000531074 00000 n
-0000531139 00000 n
-0000531204 00000 n
-0000531269 00000 n
-0000531334 00000 n
-0000531399 00000 n
-0000531464 00000 n
-0000531529 00000 n
-0000531594 00000 n
-0000531658 00000 n
-0000531723 00000 n
-0000531788 00000 n
-0000531853 00000 n
-0000531918 00000 n
-0000531983 00000 n
-0000532048 00000 n
-0000532113 00000 n
-0000532178 00000 n
-0000532242 00000 n
-0000532307 00000 n
-0000532372 00000 n
-0000532436 00000 n
-0000535768 00000 n
-0000538131 00000 n
-0000535595 00000 n
-0000532664 00000 n
-0000535926 00000 n
-0000535990 00000 n
-0000536055 00000 n
-0000536120 00000 n
-0000536185 00000 n
-0000536250 00000 n
-0000536315 00000 n
-0000536380 00000 n
-0000536445 00000 n
-0000536510 00000 n
-0001885674 00000 n
-0000536575 00000 n
-0000536639 00000 n
-0000536704 00000 n
-0000536769 00000 n
-0000536834 00000 n
-0000536899 00000 n
-0000536964 00000 n
-0000537029 00000 n
-0000537094 00000 n
-0000537159 00000 n
-0000537224 00000 n
-0000537288 00000 n
-0000537353 00000 n
-0000537418 00000 n
-0000537483 00000 n
-0000537548 00000 n
-0000537613 00000 n
-0000537678 00000 n
-0000537743 00000 n
-0000537808 00000 n
-0000537873 00000 n
-0000537938 00000 n
-0000538003 00000 n
-0000538067 00000 n
-0000535737 00000 n
-0000543978 00000 n
-0000541131 00000 n
-0000538374 00000 n
-0000541256 00000 n
-0000541320 00000 n
-0000541385 00000 n
-0000541450 00000 n
-0000541515 00000 n
-0000541580 00000 n
-0000541645 00000 n
-0000541710 00000 n
-0000541775 00000 n
-0000541840 00000 n
-0000541904 00000 n
-0000541969 00000 n
-0000542034 00000 n
-0000542099 00000 n
-0000542164 00000 n
-0000542229 00000 n
-0000542294 00000 n
-0000542359 00000 n
-0000542424 00000 n
-0000542488 00000 n
-0000542553 00000 n
-0000542618 00000 n
-0000542683 00000 n
-0000542748 00000 n
-0000542813 00000 n
-0000542878 00000 n
-0000542943 00000 n
-0000543008 00000 n
-0000543073 00000 n
-0000543137 00000 n
-0000543201 00000 n
-0000543266 00000 n
-0000543331 00000 n
-0000543396 00000 n
-0000543461 00000 n
-0000543526 00000 n
-0000543591 00000 n
-0000543656 00000 n
-0000543721 00000 n
-0000543786 00000 n
-0000543850 00000 n
-0000543914 00000 n
-0000547177 00000 n
-0000550055 00000 n
-0000547004 00000 n
-0000544168 00000 n
-0000547334 00000 n
-0000547398 00000 n
-0000547463 00000 n
-0000547528 00000 n
-0000547593 00000 n
-0000547658 00000 n
-0000547723 00000 n
-0000547788 00000 n
-0000547853 00000 n
-0000547918 00000 n
-0000547982 00000 n
-0000548047 00000 n
-0000548112 00000 n
-0000548177 00000 n
-0000548242 00000 n
-0000548307 00000 n
-0000548371 00000 n
-0000548436 00000 n
-0000548501 00000 n
-0000548566 00000 n
-0000548629 00000 n
-0000548694 00000 n
-0000548759 00000 n
-0000548823 00000 n
-0000548888 00000 n
-0000548953 00000 n
-0000549018 00000 n
-0000549083 00000 n
-0000549148 00000 n
-0000549213 00000 n
-0000549278 00000 n
-0000549343 00000 n
-0000549407 00000 n
-0000549472 00000 n
-0000549537 00000 n
-0000549602 00000 n
-0000549667 00000 n
-0000549732 00000 n
-0000549797 00000 n
-0000549862 00000 n
-0000549927 00000 n
-0000549991 00000 n
-0000547146 00000 n
-0000555792 00000 n
-0000552490 00000 n
-0000550310 00000 n
-0000552615 00000 n
-0000552679 00000 n
-0000552744 00000 n
-0000552809 00000 n
-0000552874 00000 n
-0000552939 00000 n
-0000553004 00000 n
-0000553069 00000 n
-0000553133 00000 n
-0000553198 00000 n
-0000553263 00000 n
-0000553328 00000 n
-0000553393 00000 n
-0000553458 00000 n
-0000553523 00000 n
-0000553587 00000 n
-0000553652 00000 n
-0000553717 00000 n
-0000553782 00000 n
-0000553847 00000 n
-0000553912 00000 n
-0000553977 00000 n
-0000554042 00000 n
-0000554107 00000 n
-0000554172 00000 n
-0000554237 00000 n
-0000554302 00000 n
-0000554367 00000 n
-0000554432 00000 n
-0000554497 00000 n
-0000554562 00000 n
-0000554627 00000 n
-0000554692 00000 n
-0000554757 00000 n
-0000554821 00000 n
-0000554886 00000 n
-0000554951 00000 n
-0000555016 00000 n
-0000555081 00000 n
-0000555146 00000 n
-0000555211 00000 n
-0000555276 00000 n
-0000555341 00000 n
-0000555405 00000 n
-0000555470 00000 n
-0000555535 00000 n
-0000555599 00000 n
-0000555664 00000 n
-0000555728 00000 n
-0000562555 00000 n
-0000559968 00000 n
-0000555982 00000 n
-0000560093 00000 n
-0000560157 00000 n
-0000560222 00000 n
-0000560287 00000 n
-0000560352 00000 n
-0000560417 00000 n
-0000560482 00000 n
-0000560547 00000 n
-0000560612 00000 n
-0000560677 00000 n
-0000560741 00000 n
-0000560806 00000 n
-0000560871 00000 n
-0000560936 00000 n
-0000561001 00000 n
-0000561066 00000 n
-0000561131 00000 n
-0000561195 00000 n
-0000561260 00000 n
-0000561325 00000 n
-0000561390 00000 n
-0000561455 00000 n
-0000561520 00000 n
-0000561585 00000 n
-0000561649 00000 n
-0000561714 00000 n
-0000561779 00000 n
-0000561844 00000 n
-0000561909 00000 n
-0000561974 00000 n
-0000562039 00000 n
-0000562104 00000 n
-0000562169 00000 n
-0000562233 00000 n
-0000562298 00000 n
-0000562363 00000 n
-0000562428 00000 n
-0000567490 00000 n
-0000564837 00000 n
-0000562798 00000 n
-0000564962 00000 n
-0000565026 00000 n
-0000565091 00000 n
-0000565154 00000 n
-0000565219 00000 n
-0000565284 00000 n
-0000565349 00000 n
-0000565414 00000 n
-0000565479 00000 n
-0000565544 00000 n
-0000565609 00000 n
-0000565674 00000 n
-0000565739 00000 n
-0000565804 00000 n
-0000565869 00000 n
-0000565934 00000 n
-0000565997 00000 n
-0000566062 00000 n
-0000566127 00000 n
-0000566192 00000 n
-0000566257 00000 n
-0000566322 00000 n
-0000566387 00000 n
-0000566452 00000 n
-0000566517 00000 n
-0000566581 00000 n
-0000566646 00000 n
-0000566711 00000 n
-0000566776 00000 n
-0000566841 00000 n
-0000566906 00000 n
-0000566971 00000 n
-0000567036 00000 n
-0000567101 00000 n
-0000567165 00000 n
-0000567230 00000 n
-0000567295 00000 n
-0000567360 00000 n
-0000567425 00000 n
-0001888736 00000 n
-0000573127 00000 n
-0000569762 00000 n
-0000567693 00000 n
-0000569887 00000 n
-0000569951 00000 n
-0000570016 00000 n
-0000570081 00000 n
+0000433000 00000 n
+0000434851 00000 n
+0000434915 00000 n
+0000434980 00000 n
+0000435044 00000 n
+0000435109 00000 n
+0000435173 00000 n
+0000435238 00000 n
+0000435303 00000 n
+0000435368 00000 n
+0000435433 00000 n
+0000435498 00000 n
+0000435563 00000 n
+0000435628 00000 n
+0000435693 00000 n
+0000435758 00000 n
+0000435823 00000 n
+0000435888 00000 n
+0000435953 00000 n
+0000436018 00000 n
+0000436083 00000 n
+0000436148 00000 n
+0000436213 00000 n
+0000436278 00000 n
+0000436343 00000 n
+0000436408 00000 n
+0000436473 00000 n
+0000436538 00000 n
+0000436603 00000 n
+0000436668 00000 n
+0000436733 00000 n
+0000436798 00000 n
+0000436863 00000 n
+0000436928 00000 n
+0000436992 00000 n
+0000437057 00000 n
+0000437122 00000 n
+0000437187 00000 n
+0000437252 00000 n
+0000437317 00000 n
+0000437382 00000 n
+0000437447 00000 n
+0000437512 00000 n
+0000437575 00000 n
+0000437640 00000 n
+0000437705 00000 n
+0000437770 00000 n
+0000437835 00000 n
+0000437899 00000 n
+0000437964 00000 n
+0000438029 00000 n
+0000438093 00000 n
+0000444102 00000 n
+0000440866 00000 n
+0000438321 00000 n
+0000440991 00000 n
+0000441055 00000 n
+0000441120 00000 n
+0000441184 00000 n
+0000441249 00000 n
+0000441314 00000 n
+0000441379 00000 n
+0000441444 00000 n
+0000441509 00000 n
+0000441574 00000 n
+0000441639 00000 n
+0000441704 00000 n
+0000441768 00000 n
+0000441833 00000 n
+0000441898 00000 n
+0000441962 00000 n
+0000442027 00000 n
+0000442092 00000 n
+0000442157 00000 n
+0000442220 00000 n
+0000442285 00000 n
+0000442350 00000 n
+0000442415 00000 n
+0000442480 00000 n
+0000442545 00000 n
+0000442610 00000 n
+0000442675 00000 n
+0000442740 00000 n
+0000442805 00000 n
+0000442870 00000 n
+0000442935 00000 n
+0000443000 00000 n
+0000443065 00000 n
+0000443130 00000 n
+0000443195 00000 n
+0000443260 00000 n
+0000443325 00000 n
+0000443390 00000 n
+0000443455 00000 n
+0000443520 00000 n
+0000443585 00000 n
+0000443650 00000 n
+0000443715 00000 n
+0000443780 00000 n
+0000443844 00000 n
+0000443909 00000 n
+0000443974 00000 n
+0000444038 00000 n
+0000450185 00000 n
+0000446946 00000 n
+0000444279 00000 n
+0000447071 00000 n
+0000447135 00000 n
+0000447200 00000 n
+0000447264 00000 n
+0000447329 00000 n
+0000447394 00000 n
+0000447459 00000 n
+0000447524 00000 n
+0000447589 00000 n
+0000447654 00000 n
+0000447719 00000 n
+0000447784 00000 n
+0000447848 00000 n
+0000447913 00000 n
+0000447978 00000 n
+0000448043 00000 n
+0000448108 00000 n
+0000448173 00000 n
+0000448238 00000 n
+0000448303 00000 n
+0000448368 00000 n
+0000448432 00000 n
+0000448497 00000 n
+0000448562 00000 n
+0000448627 00000 n
+0000448692 00000 n
+0000448757 00000 n
+0000448822 00000 n
+0000448887 00000 n
+0000448952 00000 n
+0000449017 00000 n
+0000449082 00000 n
+0000449147 00000 n
+0000449212 00000 n
+0000449277 00000 n
+0000449342 00000 n
+0000449406 00000 n
+0000449471 00000 n
+0000449536 00000 n
+0000449601 00000 n
+0000449666 00000 n
+0000449731 00000 n
+0000449796 00000 n
+0000449861 00000 n
+0000449926 00000 n
+0000449991 00000 n
+0000450056 00000 n
+0000450121 00000 n
+0000455954 00000 n
+0000453105 00000 n
+0000450375 00000 n
+0000453230 00000 n
+0000453294 00000 n
+0000453359 00000 n
+0000453424 00000 n
+0000453489 00000 n
+0000453554 00000 n
+0000453619 00000 n
+0000453684 00000 n
+0000453749 00000 n
+0000453814 00000 n
+0000453877 00000 n
+0000453942 00000 n
+0000454007 00000 n
+0000454072 00000 n
+0000454137 00000 n
+0000454202 00000 n
+0000454266 00000 n
+0000454331 00000 n
+0000454396 00000 n
+0000454461 00000 n
+0000454526 00000 n
+0000454591 00000 n
+0000454656 00000 n
+0000454721 00000 n
+0000454786 00000 n
+0000454851 00000 n
+0000454916 00000 n
+0000454981 00000 n
+0000455046 00000 n
+0000455111 00000 n
+0000455176 00000 n
+0000455241 00000 n
+0000455305 00000 n
+0000455370 00000 n
+0000455435 00000 n
+0000455500 00000 n
+0000455565 00000 n
+0000455630 00000 n
+0000455695 00000 n
+0000455760 00000 n
+0000455825 00000 n
+0000455890 00000 n
+0000462289 00000 n
+0000459118 00000 n
+0000456131 00000 n
+0000459243 00000 n
+0000459307 00000 n
+0000459372 00000 n
+0000459437 00000 n
+0000459502 00000 n
+0000459567 00000 n
+0000459632 00000 n
+0000459697 00000 n
+0000459762 00000 n
+0000459827 00000 n
+0000459892 00000 n
+0000459957 00000 n
+0000460022 00000 n
+0000460086 00000 n
+0000460151 00000 n
+0000460216 00000 n
+0000460281 00000 n
+0000460346 00000 n
+0000460411 00000 n
+0000460476 00000 n
+0000460541 00000 n
+0000460606 00000 n
+0000460671 00000 n
+0000460736 00000 n
+0000460801 00000 n
+0000460864 00000 n
+0000460929 00000 n
+0000460994 00000 n
+0000461059 00000 n
+0000461123 00000 n
+0000461188 00000 n
+0000461253 00000 n
+0000461318 00000 n
+0000461383 00000 n
+0000461448 00000 n
+0000461513 00000 n
+0000461578 00000 n
+0000461642 00000 n
+0000461707 00000 n
+0000461772 00000 n
+0000461837 00000 n
+0000461902 00000 n
+0000461967 00000 n
+0000462032 00000 n
+0000462096 00000 n
+0000462161 00000 n
+0000462225 00000 n
+0000468523 00000 n
+0000465287 00000 n
+0000462466 00000 n
+0000465412 00000 n
+0000465476 00000 n
+0000465541 00000 n
+0000465605 00000 n
+0000465670 00000 n
+0000465735 00000 n
+0000465800 00000 n
+0000465865 00000 n
+0000465930 00000 n
+0000465995 00000 n
+0000466060 00000 n
+0000466125 00000 n
+0000466189 00000 n
+0000466254 00000 n
+0000466319 00000 n
+0000466384 00000 n
+0000466449 00000 n
+0000466513 00000 n
+0000466578 00000 n
+0000466643 00000 n
+0000466708 00000 n
+0000466773 00000 n
+0000466838 00000 n
+0000466903 00000 n
+0000466968 00000 n
+0000467033 00000 n
+0000467098 00000 n
+0000467163 00000 n
+0000467228 00000 n
+0000467293 00000 n
+0000467358 00000 n
+0000467423 00000 n
+0000467486 00000 n
+0000467551 00000 n
+0000467616 00000 n
+0000467681 00000 n
+0000467746 00000 n
+0000467811 00000 n
+0000467876 00000 n
+0000467941 00000 n
+0000468006 00000 n
+0000468070 00000 n
+0000468135 00000 n
+0000468200 00000 n
+0000468265 00000 n
+0000468330 00000 n
+0000468395 00000 n
+0000468459 00000 n
+0000474762 00000 n
+0000471006 00000 n
+0000468700 00000 n
+0000471131 00000 n
+0000471195 00000 n
+0000471260 00000 n
+0000471325 00000 n
+0000471390 00000 n
+0000471454 00000 n
+0000471519 00000 n
+0000471584 00000 n
+0000471649 00000 n
+0000471714 00000 n
+0000471779 00000 n
+0000471844 00000 n
+0000471909 00000 n
+0000471974 00000 n
+0000472038 00000 n
+0000472103 00000 n
+0000472168 00000 n
+0000472233 00000 n
+0000472298 00000 n
+0000472363 00000 n
+0000472428 00000 n
+0000472493 00000 n
+0000472558 00000 n
+0000472623 00000 n
+0000472688 00000 n
+0000472753 00000 n
+0000472818 00000 n
+0000472883 00000 n
+0000472948 00000 n
+0000473013 00000 n
+0000473078 00000 n
+0000473143 00000 n
+0000473208 00000 n
+0000473271 00000 n
+0000473336 00000 n
+0000473401 00000 n
+0000473466 00000 n
+0000473531 00000 n
+0000473596 00000 n
+0000473661 00000 n
+0000473726 00000 n
+0000473791 00000 n
+0000473856 00000 n
+0000473920 00000 n
+0000473985 00000 n
+0000474050 00000 n
+0000474115 00000 n
+0000474180 00000 n
+0000474245 00000 n
+0000474310 00000 n
+0000474375 00000 n
+0000474440 00000 n
+0000474504 00000 n
+0000474569 00000 n
+0000474634 00000 n
+0000474698 00000 n
+0001535518 00000 n
+0000480709 00000 n
+0000477863 00000 n
+0000474926 00000 n
+0000477988 00000 n
+0000478052 00000 n
+0000478117 00000 n
+0000478181 00000 n
+0000478246 00000 n
+0000478311 00000 n
+0000478376 00000 n
+0000478441 00000 n
+0000478506 00000 n
+0000478571 00000 n
+0000478636 00000 n
+0000478701 00000 n
+0000478765 00000 n
+0000478830 00000 n
+0000478895 00000 n
+0000478959 00000 n
+0000479024 00000 n
+0000479089 00000 n
+0000479154 00000 n
+0000479219 00000 n
+0000479284 00000 n
+0000479349 00000 n
+0000479413 00000 n
+0000479478 00000 n
+0000479543 00000 n
+0000479608 00000 n
+0000479673 00000 n
+0000479738 00000 n
+0000479803 00000 n
+0000479868 00000 n
+0000479932 00000 n
+0000479997 00000 n
+0000480062 00000 n
+0000480127 00000 n
+0000480192 00000 n
+0000480257 00000 n
+0000480322 00000 n
+0000480387 00000 n
+0000480451 00000 n
+0000480516 00000 n
+0000480581 00000 n
+0000480645 00000 n
+0000486783 00000 n
+0000484324 00000 n
+0000480886 00000 n
+0000484449 00000 n
+0000484513 00000 n
+0000484578 00000 n
+0000484643 00000 n
+0000484708 00000 n
+0000484773 00000 n
+0000484838 00000 n
+0000484903 00000 n
+0000484968 00000 n
+0000485033 00000 n
+0000485098 00000 n
+0000485163 00000 n
+0000485228 00000 n
+0000485293 00000 n
+0000485358 00000 n
+0000485421 00000 n
+0000485486 00000 n
+0000485551 00000 n
+0000485616 00000 n
+0000485681 00000 n
+0000485746 00000 n
+0000485811 00000 n
+0000485876 00000 n
+0000485941 00000 n
+0000486006 00000 n
+0000486071 00000 n
+0000486136 00000 n
+0000486201 00000 n
+0000486266 00000 n
+0000486331 00000 n
+0000486396 00000 n
+0000486461 00000 n
+0000486525 00000 n
+0000486590 00000 n
+0000486655 00000 n
+0000486719 00000 n
+0000492888 00000 n
+0000489846 00000 n
+0000486986 00000 n
+0000489971 00000 n
+0000490035 00000 n
+0000490100 00000 n
+0000490165 00000 n
+0000490230 00000 n
+0000490295 00000 n
+0000490360 00000 n
+0000490425 00000 n
+0000490490 00000 n
+0000490554 00000 n
+0000490619 00000 n
+0000490684 00000 n
+0000490749 00000 n
+0000490814 00000 n
+0000490879 00000 n
+0000490944 00000 n
+0000491009 00000 n
+0000491074 00000 n
+0000491138 00000 n
+0000491203 00000 n
+0000491268 00000 n
+0000491333 00000 n
+0000491398 00000 n
+0000491463 00000 n
+0000491528 00000 n
+0000491593 00000 n
+0000491657 00000 n
+0000491722 00000 n
+0000491787 00000 n
+0000491852 00000 n
+0000491917 00000 n
+0000491982 00000 n
+0000492047 00000 n
+0000492112 00000 n
+0000492176 00000 n
+0000492241 00000 n
+0000492306 00000 n
+0000492371 00000 n
+0000492436 00000 n
+0000492501 00000 n
+0000492566 00000 n
+0000492631 00000 n
+0000492696 00000 n
+0000492760 00000 n
+0000492824 00000 n
+0000499061 00000 n
+0000495500 00000 n
+0000493065 00000 n
+0000495625 00000 n
+0000495689 00000 n
+0000495754 00000 n
+0000495818 00000 n
+0000495883 00000 n
+0000495947 00000 n
+0000496012 00000 n
+0000496077 00000 n
+0000496142 00000 n
+0000496207 00000 n
+0000496272 00000 n
+0000496337 00000 n
+0000496401 00000 n
+0000496466 00000 n
+0000496531 00000 n
+0000496596 00000 n
+0000496661 00000 n
+0000496726 00000 n
+0000496791 00000 n
+0000496856 00000 n
+0000496921 00000 n
+0000496986 00000 n
+0000497051 00000 n
+0000497116 00000 n
+0000497181 00000 n
+0000497246 00000 n
+0000497311 00000 n
+0000497376 00000 n
+0000497441 00000 n
+0000497506 00000 n
+0000497571 00000 n
+0000497634 00000 n
+0000497699 00000 n
+0000497764 00000 n
+0000497829 00000 n
+0000497894 00000 n
+0000497959 00000 n
+0000498024 00000 n
+0000498089 00000 n
+0000498154 00000 n
+0000498218 00000 n
+0000498283 00000 n
+0000498348 00000 n
+0000498413 00000 n
+0000498478 00000 n
+0000498543 00000 n
+0000498608 00000 n
+0000498673 00000 n
+0000498738 00000 n
+0000498803 00000 n
+0000498868 00000 n
+0000498933 00000 n
+0000498997 00000 n
+0000504974 00000 n
+0000501349 00000 n
+0000499238 00000 n
+0000501474 00000 n
+0000501538 00000 n
+0000501603 00000 n
+0000501667 00000 n
+0000501732 00000 n
+0000501797 00000 n
+0000501862 00000 n
+0000501927 00000 n
+0000501992 00000 n
+0000502057 00000 n
+0000502122 00000 n
+0000502187 00000 n
+0000502251 00000 n
+0000502316 00000 n
+0000502381 00000 n
+0000502446 00000 n
+0000502511 00000 n
+0000502576 00000 n
+0000502641 00000 n
+0000502706 00000 n
+0000502771 00000 n
+0000502835 00000 n
+0000502900 00000 n
+0000502965 00000 n
+0000503030 00000 n
+0000503095 00000 n
+0000503160 00000 n
+0000503225 00000 n
+0000503289 00000 n
+0000503354 00000 n
+0000503419 00000 n
+0000503482 00000 n
+0000503547 00000 n
+0000503612 00000 n
+0000503677 00000 n
+0000503742 00000 n
+0000503807 00000 n
+0000503872 00000 n
+0000503937 00000 n
+0000504002 00000 n
+0000504066 00000 n
+0000504131 00000 n
+0000504195 00000 n
+0000504260 00000 n
+0000504325 00000 n
+0000504390 00000 n
+0000504455 00000 n
+0000504520 00000 n
+0000504585 00000 n
+0000504650 00000 n
+0000504715 00000 n
+0000504779 00000 n
+0000504844 00000 n
+0000504909 00000 n
+0000511245 00000 n
+0000507294 00000 n
+0000505138 00000 n
+0000507419 00000 n
+0000507483 00000 n
+0000507548 00000 n
+0000507612 00000 n
+0000507677 00000 n
+0000507742 00000 n
+0000507807 00000 n
+0000507872 00000 n
+0000507937 00000 n
+0000508002 00000 n
+0000508067 00000 n
+0000508132 00000 n
+0000508196 00000 n
+0000508261 00000 n
+0000508326 00000 n
+0000508391 00000 n
+0000508456 00000 n
+0000508521 00000 n
+0000508586 00000 n
+0000508651 00000 n
+0000508716 00000 n
+0000508781 00000 n
+0000508846 00000 n
+0000508911 00000 n
+0000508975 00000 n
+0000509040 00000 n
+0000509105 00000 n
+0000509170 00000 n
+0000509235 00000 n
+0000509300 00000 n
+0000509365 00000 n
+0000509430 00000 n
+0000509495 00000 n
+0000509559 00000 n
+0000509624 00000 n
+0000509689 00000 n
+0000509754 00000 n
+0000509819 00000 n
+0000509884 00000 n
+0000509949 00000 n
+0000510014 00000 n
+0000510079 00000 n
+0000510143 00000 n
+0000510208 00000 n
+0000510273 00000 n
+0000510338 00000 n
+0000510403 00000 n
+0000510468 00000 n
+0000510533 00000 n
+0000510598 00000 n
+0000510663 00000 n
+0000510728 00000 n
+0000510793 00000 n
+0000510858 00000 n
+0000510923 00000 n
+0000510988 00000 n
+0000511052 00000 n
+0000511117 00000 n
+0000511181 00000 n
+0000517084 00000 n
+0000513846 00000 n
+0000511409 00000 n
+0000513971 00000 n
+0000514035 00000 n
+0000514100 00000 n
+0000514164 00000 n
+0000514229 00000 n
+0000514294 00000 n
+0000514359 00000 n
+0000514424 00000 n
+0000514489 00000 n
+0000514554 00000 n
+0000514619 00000 n
+0000514684 00000 n
+0000514748 00000 n
+0000514813 00000 n
+0000514878 00000 n
+0000514943 00000 n
+0000515008 00000 n
+0000515073 00000 n
+0000515138 00000 n
+0000515203 00000 n
+0000515268 00000 n
+0000515333 00000 n
+0000515398 00000 n
+0000515463 00000 n
+0000515528 00000 n
+0000515593 00000 n
+0000515657 00000 n
+0000515722 00000 n
+0000515787 00000 n
+0000515852 00000 n
+0000515917 00000 n
+0000515981 00000 n
+0000516046 00000 n
+0000516111 00000 n
+0000516176 00000 n
+0000516241 00000 n
+0000516306 00000 n
+0000516371 00000 n
+0000516436 00000 n
+0000516501 00000 n
+0000516566 00000 n
+0000516631 00000 n
+0000516696 00000 n
+0000516761 00000 n
+0000516826 00000 n
+0000516891 00000 n
+0000516956 00000 n
+0000517021 00000 n
+0000522924 00000 n
+0000519750 00000 n
+0000517248 00000 n
+0000519875 00000 n
+0000519939 00000 n
+0000520004 00000 n
+0000520069 00000 n
+0000520134 00000 n
+0000520199 00000 n
+0000520264 00000 n
+0000520329 00000 n
+0000520393 00000 n
+0000520458 00000 n
+0000520523 00000 n
+0000520588 00000 n
+0000520653 00000 n
+0000520718 00000 n
+0000520783 00000 n
+0000520848 00000 n
+0000520913 00000 n
+0000520978 00000 n
+0000521043 00000 n
+0000521107 00000 n
+0000521172 00000 n
+0000521237 00000 n
+0000521302 00000 n
+0000521367 00000 n
+0000521432 00000 n
+0000521497 00000 n
+0000521562 00000 n
+0000521626 00000 n
+0000521691 00000 n
+0000521756 00000 n
+0000521821 00000 n
+0000521886 00000 n
+0000521951 00000 n
+0000522016 00000 n
+0000522080 00000 n
+0000522145 00000 n
+0000522210 00000 n
+0000522275 00000 n
+0000522340 00000 n
+0000522405 00000 n
+0000522470 00000 n
+0000522535 00000 n
+0000522600 00000 n
+0000522665 00000 n
+0000522729 00000 n
+0000522794 00000 n
+0000522859 00000 n
+0000527982 00000 n
+0000525071 00000 n
+0000523088 00000 n
+0000525196 00000 n
+0000525260 00000 n
+0000525325 00000 n
+0000525390 00000 n
+0000525455 00000 n
+0000525520 00000 n
+0000525585 00000 n
+0000525650 00000 n
+0000525714 00000 n
+0000525779 00000 n
+0000525844 00000 n
+0000525909 00000 n
+0000525974 00000 n
+0000526039 00000 n
+0000526104 00000 n
+0000526169 00000 n
+0000526234 00000 n
+0000526298 00000 n
+0000526363 00000 n
+0000526428 00000 n
+0000526493 00000 n
+0000526558 00000 n
+0000526622 00000 n
+0000526687 00000 n
+0000526752 00000 n
+0000526817 00000 n
+0000526882 00000 n
+0000526946 00000 n
+0000527011 00000 n
+0000527076 00000 n
+0000527141 00000 n
+0000527206 00000 n
+0000527271 00000 n
+0000527336 00000 n
+0000527401 00000 n
+0000527466 00000 n
+0000527530 00000 n
+0000527595 00000 n
+0000527660 00000 n
+0000527725 00000 n
+0000527790 00000 n
+0000527855 00000 n
+0000533942 00000 n
+0000530186 00000 n
+0000528146 00000 n
+0000530311 00000 n
+0000530375 00000 n
+0000530440 00000 n
+0000530505 00000 n
+0000530570 00000 n
+0000530633 00000 n
+0000530698 00000 n
+0000530763 00000 n
+0000530828 00000 n
+0000530893 00000 n
+0000530958 00000 n
+0000531023 00000 n
+0000531088 00000 n
+0000531153 00000 n
+0000531217 00000 n
+0000531282 00000 n
+0000531347 00000 n
+0000531412 00000 n
+0000531477 00000 n
+0000531542 00000 n
+0000531606 00000 n
+0000531671 00000 n
+0000531736 00000 n
+0000531801 00000 n
+0000531866 00000 n
+0000531931 00000 n
+0000531996 00000 n
+0000532061 00000 n
+0000532125 00000 n
+0000532190 00000 n
+0000532255 00000 n
+0000532320 00000 n
+0000532385 00000 n
+0000532450 00000 n
+0000532515 00000 n
+0000532580 00000 n
+0000532645 00000 n
+0000532709 00000 n
+0000532774 00000 n
+0000532839 00000 n
+0000532904 00000 n
+0000532969 00000 n
+0000533034 00000 n
+0000533099 00000 n
+0000533164 00000 n
+0000533229 00000 n
+0000533294 00000 n
+0000533359 00000 n
+0000533423 00000 n
+0000533488 00000 n
+0000533553 00000 n
+0000533618 00000 n
+0000533683 00000 n
+0000533748 00000 n
+0000533813 00000 n
+0000533878 00000 n
+0001535683 00000 n
+0000540084 00000 n
+0000536333 00000 n
+0000534132 00000 n
+0000536458 00000 n
+0000536522 00000 n
+0000536586 00000 n
+0000536713 00000 n
+0000536778 00000 n
+0000536843 00000 n
+0000536908 00000 n
+0000536973 00000 n
+0000537038 00000 n
+0000537103 00000 n
+0000537168 00000 n
+0000537232 00000 n
+0000537297 00000 n
+0000537362 00000 n
+0000537427 00000 n
+0000537492 00000 n
+0000537557 00000 n
+0000537622 00000 n
+0000537687 00000 n
+0000537752 00000 n
+0000537816 00000 n
+0000537881 00000 n
+0000537946 00000 n
+0000538011 00000 n
+0000538076 00000 n
+0000538141 00000 n
+0000538206 00000 n
+0000538271 00000 n
+0000538336 00000 n
+0000538399 00000 n
+0000538464 00000 n
+0000538529 00000 n
+0000538594 00000 n
+0000538659 00000 n
+0000538724 00000 n
+0000538789 00000 n
+0000538854 00000 n
+0000538919 00000 n
+0000538983 00000 n
+0000539048 00000 n
+0000539113 00000 n
+0000539178 00000 n
+0000539243 00000 n
+0000539308 00000 n
+0000539373 00000 n
+0000539437 00000 n
+0000539502 00000 n
+0000539567 00000 n
+0000539632 00000 n
+0000539697 00000 n
+0000539762 00000 n
+0000539826 00000 n
+0000539891 00000 n
+0000539956 00000 n
+0000540020 00000 n
+0000545834 00000 n
+0000542663 00000 n
+0000540287 00000 n
+0000542788 00000 n
+0000542852 00000 n
+0000542917 00000 n
+0000542981 00000 n
+0000543046 00000 n
+0000543111 00000 n
+0000543176 00000 n
+0000543241 00000 n
+0000543306 00000 n
+0000543371 00000 n
+0000543436 00000 n
+0000543501 00000 n
+0000543566 00000 n
+0000543631 00000 n
+0000543696 00000 n
+0000543761 00000 n
+0000543826 00000 n
+0000543953 00000 n
+0000544018 00000 n
+0000544083 00000 n
+0000544148 00000 n
+0000544213 00000 n
+0000544278 00000 n
+0000544342 00000 n
+0000544407 00000 n
+0000544472 00000 n
+0000544537 00000 n
+0000544602 00000 n
+0000544667 00000 n
+0000544732 00000 n
+0000544797 00000 n
+0000544862 00000 n
+0000544926 00000 n
+0000544991 00000 n
+0000545056 00000 n
+0000545121 00000 n
+0000545186 00000 n
+0000545251 00000 n
+0000545316 00000 n
+0000545381 00000 n
+0000545446 00000 n
+0000545510 00000 n
+0000545575 00000 n
+0000545640 00000 n
+0000545705 00000 n
+0000545770 00000 n
+0000551818 00000 n
+0000548841 00000 n
+0000546037 00000 n
+0000548966 00000 n
+0000549030 00000 n
+0000549095 00000 n
+0000549160 00000 n
+0000549225 00000 n
+0000549290 00000 n
+0000549355 00000 n
+0000549420 00000 n
+0000549485 00000 n
+0000549549 00000 n
+0000549614 00000 n
+0000549679 00000 n
+0000549744 00000 n
+0000549809 00000 n
+0000549874 00000 n
+0000549939 00000 n
+0000550004 00000 n
+0000550069 00000 n
+0000550133 00000 n
+0000550198 00000 n
+0000550263 00000 n
+0000550328 00000 n
+0000550393 00000 n
+0000550458 00000 n
+0000550523 00000 n
+0000550587 00000 n
+0000550652 00000 n
+0000550717 00000 n
+0000550782 00000 n
+0000550847 00000 n
+0000550912 00000 n
+0000550977 00000 n
+0000551042 00000 n
+0000551107 00000 n
+0000551171 00000 n
+0000551236 00000 n
+0000551301 00000 n
+0000551366 00000 n
+0000551431 00000 n
+0000551496 00000 n
+0000551560 00000 n
+0000551625 00000 n
+0000551690 00000 n
+0000551754 00000 n
+0000555079 00000 n
+0000558285 00000 n
+0000554906 00000 n
+0000551982 00000 n
+0000555237 00000 n
+0000555301 00000 n
+0000555366 00000 n
+0000555430 00000 n
+0000555495 00000 n
+0000555560 00000 n
+0000555625 00000 n
+0000555690 00000 n
+0000555755 00000 n
+0000555820 00000 n
+0000555885 00000 n
+0000555950 00000 n
+0000556014 00000 n
+0000556079 00000 n
+0000556144 00000 n
+0000556209 00000 n
+0000556274 00000 n
+0000556339 00000 n
+0000556404 00000 n
+0000556469 00000 n
+0000556534 00000 n
+0000556598 00000 n
+0000556663 00000 n
+0000556728 00000 n
+0000556793 00000 n
+0000556858 00000 n
+0000556923 00000 n
+0000556988 00000 n
+0001533353 00000 n
+0000557053 00000 n
+0000557118 00000 n
+0000557183 00000 n
+0000557247 00000 n
+0000557312 00000 n
+0000557377 00000 n
+0000557442 00000 n
+0000557507 00000 n
+0000557572 00000 n
+0000557637 00000 n
+0000557702 00000 n
+0000557767 00000 n
+0000557832 00000 n
+0000557897 00000 n
+0000557962 00000 n
+0000558027 00000 n
+0000558092 00000 n
+0000558156 00000 n
+0000558221 00000 n
+0000555048 00000 n
+0000563884 00000 n
+0000561489 00000 n
+0000558528 00000 n
+0000561614 00000 n
+0000561678 00000 n
+0000561743 00000 n
+0000561807 00000 n
+0000561872 00000 n
+0000561937 00000 n
+0000562002 00000 n
+0000562067 00000 n
+0000562132 00000 n
+0000562197 00000 n
+0000562262 00000 n
+0000562327 00000 n
+0000562392 00000 n
+0000562456 00000 n
+0000562521 00000 n
+0000562586 00000 n
+0000562651 00000 n
+0000562716 00000 n
+0000562781 00000 n
+0000562846 00000 n
+0000562911 00000 n
+0000562976 00000 n
+0000563040 00000 n
+0000563105 00000 n
+0000563170 00000 n
+0000563235 00000 n
+0000563300 00000 n
+0000563365 00000 n
+0000563430 00000 n
+0000563495 00000 n
+0000563560 00000 n
+0000563624 00000 n
+0000563689 00000 n
+0000563754 00000 n
+0000563819 00000 n
+0000567783 00000 n
0000570146 00000 n
-0000570211 00000 n
-0000570275 00000 n
-0000570340 00000 n
-0000570405 00000 n
-0000570470 00000 n
-0000570535 00000 n
-0000570600 00000 n
-0000570665 00000 n
-0000570730 00000 n
-0000570795 00000 n
-0000570859 00000 n
-0000570924 00000 n
-0000570989 00000 n
-0000571054 00000 n
-0000571119 00000 n
-0000571184 00000 n
-0000571249 00000 n
-0000571314 00000 n
-0000571379 00000 n
-0000571442 00000 n
-0000571507 00000 n
-0000571572 00000 n
-0000571636 00000 n
-0000571701 00000 n
-0000571766 00000 n
-0000571831 00000 n
-0000571896 00000 n
-0000571961 00000 n
-0000572026 00000 n
-0000572091 00000 n
-0000572156 00000 n
-0000572220 00000 n
-0000572285 00000 n
-0000572350 00000 n
-0000572415 00000 n
-0000572480 00000 n
-0000572545 00000 n
-0000572610 00000 n
-0000572675 00000 n
-0000572740 00000 n
-0000572805 00000 n
-0000572869 00000 n
-0000572934 00000 n
-0000572999 00000 n
-0000573063 00000 n
-0000578980 00000 n
-0000574963 00000 n
-0000573291 00000 n
-0000575088 00000 n
-0000575152 00000 n
-0000575217 00000 n
-0000575282 00000 n
-0000575347 00000 n
-0000575412 00000 n
-0000575477 00000 n
-0000575542 00000 n
-0000575607 00000 n
-0000575672 00000 n
-0000575736 00000 n
-0000575801 00000 n
-0000575866 00000 n
-0000575931 00000 n
-0000575996 00000 n
-0000576061 00000 n
-0000576126 00000 n
-0000576191 00000 n
-0000576256 00000 n
-0000576320 00000 n
-0000576385 00000 n
-0000576450 00000 n
-0000576515 00000 n
-0000576580 00000 n
-0000576645 00000 n
-0000576710 00000 n
-0000576775 00000 n
-0000576840 00000 n
-0000576903 00000 n
-0000576968 00000 n
-0000577033 00000 n
-0000577098 00000 n
-0000577163 00000 n
-0000577228 00000 n
-0000577293 00000 n
-0000577358 00000 n
-0000577423 00000 n
-0000577487 00000 n
-0000577552 00000 n
-0000577617 00000 n
-0000577682 00000 n
-0000577747 00000 n
-0000577812 00000 n
-0000577877 00000 n
-0000577942 00000 n
-0000578007 00000 n
-0000578071 00000 n
-0000578136 00000 n
-0000578201 00000 n
-0000578266 00000 n
-0000578331 00000 n
-0000578396 00000 n
-0000578461 00000 n
-0000578526 00000 n
-0000578591 00000 n
-0000578655 00000 n
-0000578720 00000 n
-0000578785 00000 n
-0000578850 00000 n
-0000578915 00000 n
-0000584869 00000 n
-0000581957 00000 n
-0000579144 00000 n
-0000582082 00000 n
-0000582146 00000 n
-0000582211 00000 n
-0000582276 00000 n
-0000582341 00000 n
-0000582406 00000 n
-0000582471 00000 n
-0000582536 00000 n
-0000582601 00000 n
-0000582666 00000 n
-0000582731 00000 n
-0000582796 00000 n
-0000582861 00000 n
-0000582925 00000 n
-0000582990 00000 n
-0000583055 00000 n
-0000583120 00000 n
-0000583185 00000 n
-0000583249 00000 n
-0000583314 00000 n
-0000583379 00000 n
-0000583444 00000 n
-0000583509 00000 n
-0000583574 00000 n
-0000583639 00000 n
-0000583704 00000 n
-0000583767 00000 n
-0000583832 00000 n
-0000583897 00000 n
-0000583962 00000 n
-0000584027 00000 n
-0000584092 00000 n
-0000584157 00000 n
-0000584222 00000 n
-0000584287 00000 n
-0000584351 00000 n
-0000584416 00000 n
-0000584481 00000 n
-0000584546 00000 n
-0000584611 00000 n
-0000584676 00000 n
-0000584741 00000 n
-0000584805 00000 n
-0000590645 00000 n
-0000586563 00000 n
-0000585059 00000 n
-0000586688 00000 n
-0000586752 00000 n
-0000586817 00000 n
-0000586882 00000 n
-0000586947 00000 n
-0000587012 00000 n
-0000587077 00000 n
-0000587141 00000 n
-0000587206 00000 n
-0000587271 00000 n
-0000587336 00000 n
-0000587401 00000 n
-0000587466 00000 n
-0000587531 00000 n
-0000587596 00000 n
-0000587661 00000 n
-0000587726 00000 n
-0000587791 00000 n
-0000587856 00000 n
-0000587921 00000 n
-0000587986 00000 n
-0000588051 00000 n
-0000588116 00000 n
-0000588181 00000 n
-0000588246 00000 n
-0000588311 00000 n
-0000588375 00000 n
-0000588440 00000 n
-0000588505 00000 n
-0000588570 00000 n
-0000588635 00000 n
-0000588700 00000 n
-0000588765 00000 n
-0000588830 00000 n
-0000588895 00000 n
-0000588959 00000 n
-0000589024 00000 n
-0000589089 00000 n
-0000589154 00000 n
-0000589219 00000 n
-0000589283 00000 n
-0000589348 00000 n
-0000589413 00000 n
-0000589478 00000 n
-0000589543 00000 n
-0000589608 00000 n
-0000589673 00000 n
-0000589738 00000 n
-0000589803 00000 n
-0000589867 00000 n
-0000589932 00000 n
-0000589997 00000 n
-0000590062 00000 n
-0000590127 00000 n
-0000590192 00000 n
-0000590257 00000 n
-0000590322 00000 n
-0000590387 00000 n
-0000590452 00000 n
-0000590517 00000 n
-0000590581 00000 n
-0000595667 00000 n
-0000592949 00000 n
-0000590796 00000 n
-0000593074 00000 n
-0000593138 00000 n
-0000593203 00000 n
-0000593268 00000 n
-0000593333 00000 n
-0000593398 00000 n
-0000593463 00000 n
-0000593528 00000 n
-0000593593 00000 n
-0000593658 00000 n
-0000593722 00000 n
-0000593787 00000 n
-0000593852 00000 n
-0000593917 00000 n
-0000593980 00000 n
-0000594045 00000 n
-0000594110 00000 n
-0000594175 00000 n
-0000594240 00000 n
-0000594305 00000 n
-0000594370 00000 n
-0000594435 00000 n
-0000594500 00000 n
-0000594565 00000 n
-0000594629 00000 n
-0000594694 00000 n
-0000594759 00000 n
-0000594824 00000 n
-0000594889 00000 n
-0000594954 00000 n
-0000595019 00000 n
-0000595083 00000 n
-0000595148 00000 n
-0000595213 00000 n
-0000595278 00000 n
-0000595343 00000 n
-0000595408 00000 n
-0000595473 00000 n
-0000595537 00000 n
-0000595602 00000 n
-0000601518 00000 n
-0000598346 00000 n
-0000595844 00000 n
-0000598471 00000 n
-0000598535 00000 n
-0000598600 00000 n
-0000598665 00000 n
-0000598730 00000 n
-0000598795 00000 n
-0000598860 00000 n
-0000598925 00000 n
-0000598990 00000 n
-0000599055 00000 n
-0000599120 00000 n
-0000599185 00000 n
-0000599250 00000 n
-0000599315 00000 n
-0000599380 00000 n
-0000599445 00000 n
-0000599510 00000 n
-0000599573 00000 n
-0000599638 00000 n
-0000599702 00000 n
-0000599767 00000 n
-0000599832 00000 n
-0000599897 00000 n
-0000599962 00000 n
-0000600027 00000 n
-0000600092 00000 n
-0000600157 00000 n
-0000600222 00000 n
-0000600287 00000 n
-0000600352 00000 n
-0000600417 00000 n
-0000600482 00000 n
-0000600547 00000 n
-0000600612 00000 n
-0000600677 00000 n
-0000600742 00000 n
-0000600806 00000 n
-0000600871 00000 n
-0000600936 00000 n
-0000601001 00000 n
-0000601066 00000 n
-0000601131 00000 n
-0000601196 00000 n
-0000601260 00000 n
-0000601325 00000 n
-0000601390 00000 n
-0000601454 00000 n
-0000606785 00000 n
-0000603352 00000 n
-0000601682 00000 n
-0000603477 00000 n
-0000603541 00000 n
-0000603606 00000 n
-0000603671 00000 n
-0000603736 00000 n
-0000603801 00000 n
-0000603866 00000 n
-0000603931 00000 n
-0000603996 00000 n
-0000604061 00000 n
-0000604126 00000 n
-0000604191 00000 n
-0000604256 00000 n
-0000604321 00000 n
-0000604386 00000 n
-0000604450 00000 n
-0000604515 00000 n
-0000604580 00000 n
-0000604645 00000 n
-0000604710 00000 n
-0000604775 00000 n
-0000604840 00000 n
-0000604905 00000 n
-0000604970 00000 n
-0000605034 00000 n
-0000605099 00000 n
-0000605164 00000 n
-0000605229 00000 n
-0000605294 00000 n
-0000605359 00000 n
-0000605424 00000 n
-0000605489 00000 n
-0000605554 00000 n
-0000605618 00000 n
-0000605683 00000 n
-0000605748 00000 n
-0000605813 00000 n
-0000605878 00000 n
-0000605943 00000 n
-0000606008 00000 n
-0000606073 00000 n
-0000606138 00000 n
-0000606203 00000 n
-0000606268 00000 n
-0000606333 00000 n
-0000606397 00000 n
-0000606462 00000 n
-0000606527 00000 n
-0000606592 00000 n
-0000606657 00000 n
-0000606721 00000 n
-0000612602 00000 n
-0000608973 00000 n
-0000606962 00000 n
-0000609098 00000 n
-0000609162 00000 n
-0000609227 00000 n
-0000609292 00000 n
-0000609357 00000 n
-0000609422 00000 n
-0000609487 00000 n
-0000609552 00000 n
-0000609617 00000 n
-0000609682 00000 n
-0000609746 00000 n
-0000609811 00000 n
-0000609876 00000 n
-0000609941 00000 n
-0000610006 00000 n
-0000610071 00000 n
-0000610136 00000 n
-0000610201 00000 n
-0000610266 00000 n
-0000610331 00000 n
-0000610395 00000 n
-0000610460 00000 n
-0000610525 00000 n
-0000610590 00000 n
-0000610655 00000 n
-0000610720 00000 n
-0000610785 00000 n
-0000610850 00000 n
-0000610915 00000 n
-0000610979 00000 n
-0000611044 00000 n
-0000611109 00000 n
-0000611174 00000 n
-0000611239 00000 n
-0000611304 00000 n
-0000611369 00000 n
-0000611434 00000 n
-0000611499 00000 n
-0000611564 00000 n
-0000611628 00000 n
-0000611693 00000 n
-0000611758 00000 n
-0000611823 00000 n
-0000611888 00000 n
-0000611953 00000 n
-0000612018 00000 n
-0000612082 00000 n
-0000612147 00000 n
-0000612212 00000 n
-0000612277 00000 n
-0000612342 00000 n
-0000612407 00000 n
-0000612472 00000 n
-0000612537 00000 n
-0000617711 00000 n
-0000614737 00000 n
-0000612779 00000 n
-0000614862 00000 n
-0000614926 00000 n
-0000614991 00000 n
-0000615056 00000 n
-0000615120 00000 n
-0000615185 00000 n
-0000615250 00000 n
-0000615315 00000 n
-0000615380 00000 n
-0000615445 00000 n
-0000615510 00000 n
-0000615575 00000 n
-0000615640 00000 n
-0000615705 00000 n
-0000615770 00000 n
-0000615835 00000 n
-0000615899 00000 n
-0000615964 00000 n
-0000616029 00000 n
-0000616094 00000 n
-0000616159 00000 n
-0000616220 00000 n
-0000616285 00000 n
-0000616350 00000 n
-0000616415 00000 n
-0000616480 00000 n
-0000616545 00000 n
-0000616609 00000 n
-0000616674 00000 n
-0000616739 00000 n
-0000616804 00000 n
-0000616869 00000 n
-0000616934 00000 n
-0000616999 00000 n
-0000617064 00000 n
-0000617129 00000 n
-0000617194 00000 n
-0000617259 00000 n
-0000617323 00000 n
-0000617388 00000 n
-0000617453 00000 n
-0000617518 00000 n
-0000617583 00000 n
-0000617647 00000 n
-0000622946 00000 n
-0000620032 00000 n
-0000617914 00000 n
-0000620157 00000 n
-0000620221 00000 n
-0000620286 00000 n
-0000620351 00000 n
-0000620416 00000 n
-0000620481 00000 n
-0000620546 00000 n
-0000620611 00000 n
-0000620676 00000 n
-0000620741 00000 n
-0000620806 00000 n
-0000620871 00000 n
-0000620935 00000 n
-0000621000 00000 n
-0000621065 00000 n
-0000621130 00000 n
-0000621195 00000 n
-0000621260 00000 n
-0000621325 00000 n
-0000621389 00000 n
-0000621454 00000 n
-0000621519 00000 n
-0000621584 00000 n
-0000621649 00000 n
-0000621714 00000 n
-0000621779 00000 n
-0000621844 00000 n
-0000621909 00000 n
-0000621973 00000 n
-0000622038 00000 n
-0000622103 00000 n
-0000622168 00000 n
-0000622233 00000 n
-0000622298 00000 n
-0000622362 00000 n
-0000622427 00000 n
-0000622492 00000 n
-0000622557 00000 n
-0000622622 00000 n
-0000622687 00000 n
-0000622752 00000 n
-0000622816 00000 n
-0000622881 00000 n
-0001888901 00000 n
-0000628193 00000 n
-0000625345 00000 n
-0000623123 00000 n
-0000625470 00000 n
-0000625534 00000 n
-0000625598 00000 n
-0000625663 00000 n
-0000625728 00000 n
-0000625793 00000 n
-0000625858 00000 n
-0000625923 00000 n
-0000625988 00000 n
-0000626053 00000 n
-0000626118 00000 n
-0000626182 00000 n
-0000626247 00000 n
-0000626312 00000 n
-0000626377 00000 n
-0000626442 00000 n
-0000626506 00000 n
-0000626571 00000 n
-0000626636 00000 n
-0000626701 00000 n
-0000626766 00000 n
-0000626831 00000 n
-0000626896 00000 n
-0000626961 00000 n
-0000627026 00000 n
-0000627091 00000 n
-0000627156 00000 n
-0000627221 00000 n
-0000627285 00000 n
-0000627350 00000 n
-0000627415 00000 n
-0000627480 00000 n
-0000627545 00000 n
-0000627610 00000 n
-0000627675 00000 n
-0000627740 00000 n
-0000627805 00000 n
-0000627870 00000 n
-0000627935 00000 n
-0000628000 00000 n
-0000628065 00000 n
-0000628129 00000 n
-0000633064 00000 n
+0000567610 00000 n
+0000564074 00000 n
+0000567941 00000 n
+0000568005 00000 n
+0000568070 00000 n
+0000568135 00000 n
+0000568200 00000 n
+0000568265 00000 n
+0000568330 00000 n
+0000568395 00000 n
+0000568460 00000 n
+0000568525 00000 n
+0000568590 00000 n
+0000568654 00000 n
+0000568719 00000 n
+0000568784 00000 n
+0000568849 00000 n
+0000568914 00000 n
+0000568979 00000 n
+0000569044 00000 n
+0000569109 00000 n
+0000569174 00000 n
+0000569238 00000 n
+0000569303 00000 n
+0000569368 00000 n
+0000569433 00000 n
+0000569498 00000 n
+0000569563 00000 n
+0000569628 00000 n
+0000569692 00000 n
+0000569757 00000 n
+0000569822 00000 n
+0000569887 00000 n
+0000569952 00000 n
+0000570017 00000 n
+0000570082 00000 n
+0000567752 00000 n
+0000576137 00000 n
+0000572771 00000 n
+0000570401 00000 n
+0000572896 00000 n
+0000572960 00000 n
+0000573025 00000 n
+0000573089 00000 n
+0000573154 00000 n
+0000573219 00000 n
+0000573284 00000 n
+0000573349 00000 n
+0000573414 00000 n
+0000573479 00000 n
+0000573544 00000 n
+0000573609 00000 n
+0000573674 00000 n
+0000573738 00000 n
+0000573803 00000 n
+0000573868 00000 n
+0000573933 00000 n
+0000573998 00000 n
+0000574063 00000 n
+0000574128 00000 n
+0000574193 00000 n
+0000574258 00000 n
+0000574323 00000 n
+0000574388 00000 n
+0000574453 00000 n
+0000574518 00000 n
+0000574583 00000 n
+0000574647 00000 n
+0000574712 00000 n
+0000574777 00000 n
+0000574842 00000 n
+0000574907 00000 n
+0000574972 00000 n
+0000575036 00000 n
+0000575101 00000 n
+0000575166 00000 n
+0000575231 00000 n
+0000575296 00000 n
+0000575361 00000 n
+0000575426 00000 n
+0000575491 00000 n
+0000575556 00000 n
+0000575621 00000 n
+0000575686 00000 n
+0000575750 00000 n
+0000575815 00000 n
+0000575879 00000 n
+0000575944 00000 n
+0000576009 00000 n
+0000576073 00000 n
+0000582327 00000 n
+0000578635 00000 n
+0000576327 00000 n
+0000578760 00000 n
+0000578824 00000 n
+0000578889 00000 n
+0000578953 00000 n
+0000579018 00000 n
+0000579083 00000 n
+0000579148 00000 n
+0000579213 00000 n
+0000579278 00000 n
+0000579343 00000 n
+0000579408 00000 n
+0000579473 00000 n
+0000579537 00000 n
+0000579602 00000 n
+0000579667 00000 n
+0000579732 00000 n
+0000579797 00000 n
+0000579862 00000 n
+0000579927 00000 n
+0000579992 00000 n
+0000580057 00000 n
+0000580122 00000 n
+0000580187 00000 n
+0000580252 00000 n
+0000580316 00000 n
+0000580381 00000 n
+0000580446 00000 n
+0000580511 00000 n
+0000580576 00000 n
+0000580641 00000 n
+0000580706 00000 n
+0000580771 00000 n
+0000580836 00000 n
+0000580901 00000 n
+0000580966 00000 n
+0000581031 00000 n
+0000581096 00000 n
+0000581161 00000 n
+0000581225 00000 n
+0000581290 00000 n
+0000581355 00000 n
+0000581420 00000 n
+0000581485 00000 n
+0000581550 00000 n
+0000581615 00000 n
+0000581680 00000 n
+0000581745 00000 n
+0000581809 00000 n
+0000581874 00000 n
+0000581939 00000 n
+0000582004 00000 n
+0000582069 00000 n
+0000582134 00000 n
+0000582199 00000 n
+0000582263 00000 n
+0000587814 00000 n
+0000586589 00000 n
+0000582491 00000 n
+0000586714 00000 n
+0000586778 00000 n
+0000586843 00000 n
+0000586969 00000 n
+0000587034 00000 n
+0000587099 00000 n
+0000587164 00000 n
+0000587229 00000 n
+0000587294 00000 n
+0000587359 00000 n
+0000587424 00000 n
+0000587489 00000 n
+0000587554 00000 n
+0000587619 00000 n
+0000587684 00000 n
+0000587749 00000 n
+0000593865 00000 n
+0000590500 00000 n
+0000588044 00000 n
+0000590625 00000 n
+0000590689 00000 n
+0000590754 00000 n
+0000590819 00000 n
+0000590884 00000 n
+0000590949 00000 n
+0000591014 00000 n
+0000591078 00000 n
+0000591143 00000 n
+0000591208 00000 n
+0000591273 00000 n
+0000591338 00000 n
+0000591403 00000 n
+0000591468 00000 n
+0000591533 00000 n
+0000591598 00000 n
+0000591662 00000 n
+0000591727 00000 n
+0000591792 00000 n
+0000591857 00000 n
+0000591922 00000 n
+0000591987 00000 n
+0000592052 00000 n
+0000592117 00000 n
+0000592182 00000 n
+0000592247 00000 n
+0000592312 00000 n
+0000592377 00000 n
+0000592440 00000 n
+0000592505 00000 n
+0000592569 00000 n
+0000592634 00000 n
+0000592699 00000 n
+0000592764 00000 n
+0000592829 00000 n
+0000592894 00000 n
+0000592959 00000 n
+0000593024 00000 n
+0000593089 00000 n
+0000593152 00000 n
+0000593217 00000 n
+0000593282 00000 n
+0000593347 00000 n
+0000593412 00000 n
+0000593477 00000 n
+0000593542 00000 n
+0000593607 00000 n
+0000593672 00000 n
+0000593736 00000 n
+0000593801 00000 n
+0001535848 00000 n
+0000599517 00000 n
+0000595956 00000 n
+0000594055 00000 n
+0000596081 00000 n
+0000596145 00000 n
+0000596210 00000 n
+0000596274 00000 n
+0000596339 00000 n
+0000596404 00000 n
+0000596469 00000 n
+0000596534 00000 n
+0000596599 00000 n
+0000596664 00000 n
+0000596729 00000 n
+0000596794 00000 n
+0000596858 00000 n
+0000596923 00000 n
+0000596988 00000 n
+0000597053 00000 n
+0000597117 00000 n
+0000597182 00000 n
+0000597247 00000 n
+0000597312 00000 n
+0000597377 00000 n
+0000597442 00000 n
+0000597507 00000 n
+0000597572 00000 n
+0000597637 00000 n
+0000597702 00000 n
+0000597767 00000 n
+0000597832 00000 n
+0000597896 00000 n
+0000597961 00000 n
+0000598026 00000 n
+0000598091 00000 n
+0000598156 00000 n
+0000598221 00000 n
+0000598286 00000 n
+0000598351 00000 n
+0000598416 00000 n
+0000598480 00000 n
+0000598545 00000 n
+0000598610 00000 n
+0000598675 00000 n
+0000598740 00000 n
+0000598805 00000 n
+0000598870 00000 n
+0000598935 00000 n
+0000599000 00000 n
+0000599065 00000 n
+0000599129 00000 n
+0000599194 00000 n
+0000599259 00000 n
+0000599324 00000 n
+0000599389 00000 n
+0000599453 00000 n
+0000605819 00000 n
+0000602713 00000 n
+0000599694 00000 n
+0000602838 00000 n
+0000602902 00000 n
+0000602967 00000 n
+0000603031 00000 n
+0000603096 00000 n
+0000603161 00000 n
+0000603226 00000 n
+0000603291 00000 n
+0000603356 00000 n
+0000603421 00000 n
+0000603486 00000 n
+0000603551 00000 n
+0000603615 00000 n
+0000603680 00000 n
+0000603745 00000 n
+0000603810 00000 n
+0000603875 00000 n
+0000603940 00000 n
+0000604005 00000 n
+0000604070 00000 n
+0000604135 00000 n
+0000604199 00000 n
+0000604264 00000 n
+0000604329 00000 n
+0000604394 00000 n
+0000604459 00000 n
+0000604524 00000 n
+0000604589 00000 n
+0000604654 00000 n
+0000604719 00000 n
+0000604782 00000 n
+0000604847 00000 n
+0000604912 00000 n
+0000604977 00000 n
+0000605042 00000 n
+0000605107 00000 n
+0000605172 00000 n
+0000605237 00000 n
+0000605302 00000 n
+0000605367 00000 n
+0000605432 00000 n
+0000605497 00000 n
+0000605562 00000 n
+0000605626 00000 n
+0000605691 00000 n
+0000605755 00000 n
+0000610660 00000 n
+0000608203 00000 n
+0000605996 00000 n
+0000608328 00000 n
+0000608392 00000 n
+0000608457 00000 n
+0000608521 00000 n
+0000608586 00000 n
+0000608651 00000 n
+0000608716 00000 n
+0000608781 00000 n
+0000608846 00000 n
+0000608911 00000 n
+0000608975 00000 n
+0000609040 00000 n
+0000609105 00000 n
+0000609170 00000 n
+0000609235 00000 n
+0000609300 00000 n
+0000609364 00000 n
+0000609429 00000 n
+0000609494 00000 n
+0000609559 00000 n
+0000609624 00000 n
+0000609689 00000 n
+0000609754 00000 n
+0000609819 00000 n
+0000609884 00000 n
+0000609948 00000 n
+0000610013 00000 n
+0000610078 00000 n
+0000610143 00000 n
+0000610208 00000 n
+0000610273 00000 n
+0000610338 00000 n
+0000610402 00000 n
+0000610467 00000 n
+0000610532 00000 n
+0000610596 00000 n
+0000616740 00000 n
+0000612594 00000 n
+0000610837 00000 n
+0000612719 00000 n
+0000612783 00000 n
+0000612848 00000 n
+0000612912 00000 n
+0000612977 00000 n
+0000613042 00000 n
+0000613107 00000 n
+0000613172 00000 n
+0000613237 00000 n
+0000613302 00000 n
+0000613367 00000 n
+0000613432 00000 n
+0000613496 00000 n
+0000613561 00000 n
+0000613626 00000 n
+0000613691 00000 n
+0000613756 00000 n
+0000613821 00000 n
+0000613886 00000 n
+0000613951 00000 n
+0000614016 00000 n
+0000614080 00000 n
+0000614145 00000 n
+0000614210 00000 n
+0000614275 00000 n
+0000614340 00000 n
+0000614405 00000 n
+0000614470 00000 n
+0000614535 00000 n
+0000614600 00000 n
+0000614665 00000 n
+0000614729 00000 n
+0000614794 00000 n
+0000614859 00000 n
+0000614924 00000 n
+0000614989 00000 n
+0000615054 00000 n
+0000615119 00000 n
+0000615184 00000 n
+0000615249 00000 n
+0000615313 00000 n
+0000615378 00000 n
+0000615443 00000 n
+0000615508 00000 n
+0000615573 00000 n
+0000615637 00000 n
+0000615702 00000 n
+0000615767 00000 n
+0000615832 00000 n
+0000615897 00000 n
+0000615962 00000 n
+0000616027 00000 n
+0000616092 00000 n
+0000616157 00000 n
+0000616222 00000 n
+0000616287 00000 n
+0000616352 00000 n
+0000616417 00000 n
+0000616482 00000 n
+0000616547 00000 n
+0000616612 00000 n
+0000616676 00000 n
+0000621916 00000 n
+0000619327 00000 n
+0000616891 00000 n
+0000619452 00000 n
+0000619516 00000 n
+0000619581 00000 n
+0000619646 00000 n
+0000619711 00000 n
+0000619776 00000 n
+0000619841 00000 n
+0000619905 00000 n
+0000619970 00000 n
+0000620035 00000 n
+0000620100 00000 n
+0000620165 00000 n
+0000620230 00000 n
+0000620295 00000 n
+0000620360 00000 n
+0000620425 00000 n
+0000620490 00000 n
+0000620555 00000 n
+0000620620 00000 n
+0000620685 00000 n
+0000620750 00000 n
+0000620815 00000 n
+0000620879 00000 n
+0000620944 00000 n
+0000621009 00000 n
+0000621074 00000 n
+0000621139 00000 n
+0000621204 00000 n
+0000621269 00000 n
+0000621334 00000 n
+0000621399 00000 n
+0000621464 00000 n
+0000621529 00000 n
+0000621594 00000 n
+0000621659 00000 n
+0000621724 00000 n
+0000621789 00000 n
+0000621853 00000 n
+0000627879 00000 n
+0000624899 00000 n
+0000622080 00000 n
+0000625024 00000 n
+0000625088 00000 n
+0000625153 00000 n
+0000625217 00000 n
+0000625282 00000 n
+0000625347 00000 n
+0000625412 00000 n
+0000625477 00000 n
+0000625542 00000 n
+0000625607 00000 n
+0000625672 00000 n
+0000625737 00000 n
+0000625802 00000 n
+0000625867 00000 n
+0000625932 00000 n
+0000625996 00000 n
+0000626061 00000 n
+0000626126 00000 n
+0000626191 00000 n
+0000626256 00000 n
+0000626321 00000 n
+0000626386 00000 n
+0000626450 00000 n
+0000626515 00000 n
+0000626580 00000 n
+0000626645 00000 n
+0000626710 00000 n
+0000626775 00000 n
+0000626840 00000 n
+0000626905 00000 n
+0000626970 00000 n
+0000627035 00000 n
+0000627100 00000 n
+0000627165 00000 n
+0000627230 00000 n
+0000627295 00000 n
+0000627360 00000 n
+0000627424 00000 n
+0000627489 00000 n
+0000627554 00000 n
+0000627619 00000 n
+0000627684 00000 n
+0000627749 00000 n
+0000627814 00000 n
+0000633526 00000 n
+0000629835 00000 n
+0000628043 00000 n
+0000629960 00000 n
0000630024 00000 n
-0000628397 00000 n
-0000630149 00000 n
-0000630213 00000 n
-0000630278 00000 n
-0000630342 00000 n
-0000630407 00000 n
-0000630472 00000 n
-0000630537 00000 n
-0000630602 00000 n
-0000630667 00000 n
-0000630732 00000 n
-0000630797 00000 n
-0000630862 00000 n
-0000630927 00000 n
-0000630991 00000 n
-0000631056 00000 n
-0000631121 00000 n
-0000631186 00000 n
-0000631251 00000 n
-0000631316 00000 n
-0000631381 00000 n
-0000631446 00000 n
-0000631511 00000 n
-0000631575 00000 n
-0000631640 00000 n
-0000631705 00000 n
-0000631770 00000 n
-0000631835 00000 n
-0000631900 00000 n
-0000631965 00000 n
-0000632030 00000 n
-0000632095 00000 n
-0000632158 00000 n
-0000632223 00000 n
-0000632288 00000 n
-0000632353 00000 n
-0000632418 00000 n
-0000632483 00000 n
-0000632548 00000 n
-0000632613 00000 n
-0000632678 00000 n
-0000632742 00000 n
-0000632807 00000 n
-0000632872 00000 n
-0000632937 00000 n
-0000637728 00000 n
-0000635269 00000 n
-0000633241 00000 n
-0000635394 00000 n
-0000635458 00000 n
-0000635523 00000 n
-0000635588 00000 n
-0000635653 00000 n
-0000635718 00000 n
-0000635782 00000 n
-0000635847 00000 n
-0000635912 00000 n
-0000635977 00000 n
-0000636042 00000 n
-0000636107 00000 n
-0000636172 00000 n
-0000636237 00000 n
-0000636302 00000 n
-0000636367 00000 n
-0000636432 00000 n
-0000636497 00000 n
-0000636562 00000 n
-0000636627 00000 n
-0000636692 00000 n
-0000636757 00000 n
-0000636821 00000 n
-0000636886 00000 n
-0000636951 00000 n
-0000637016 00000 n
-0000637081 00000 n
-0000637146 00000 n
-0000637211 00000 n
-0000637276 00000 n
-0000637340 00000 n
-0000637405 00000 n
-0000637470 00000 n
-0000637535 00000 n
-0000637600 00000 n
-0000637664 00000 n
-0000643746 00000 n
-0000640506 00000 n
-0000637931 00000 n
-0000640631 00000 n
-0000640695 00000 n
-0000640760 00000 n
-0000640825 00000 n
-0000640890 00000 n
-0000640955 00000 n
-0000641020 00000 n
-0000641085 00000 n
-0000641150 00000 n
-0000641215 00000 n
-0000641280 00000 n
-0000641345 00000 n
-0000641410 00000 n
-0000641475 00000 n
-0000641540 00000 n
-0000641605 00000 n
-0000641669 00000 n
-0000641734 00000 n
-0000641799 00000 n
-0000641864 00000 n
-0000641929 00000 n
-0000641994 00000 n
-0000642059 00000 n
-0000642124 00000 n
-0000642189 00000 n
-0000642254 00000 n
-0000642319 00000 n
-0000642384 00000 n
-0000642449 00000 n
-0000642514 00000 n
-0000642579 00000 n
-0000642644 00000 n
-0000642709 00000 n
-0000642774 00000 n
-0000642839 00000 n
-0000642903 00000 n
-0000642968 00000 n
-0000643033 00000 n
-0000643098 00000 n
-0000643163 00000 n
-0000643228 00000 n
-0000643293 00000 n
-0000643358 00000 n
-0000643423 00000 n
-0000643488 00000 n
-0000643553 00000 n
-0000643618 00000 n
-0000643682 00000 n
-0000649519 00000 n
-0000645958 00000 n
-0000643949 00000 n
-0000646083 00000 n
-0000646147 00000 n
-0000646212 00000 n
-0000646277 00000 n
-0000646342 00000 n
-0000646407 00000 n
-0000646472 00000 n
-0000646537 00000 n
-0000646602 00000 n
-0000646667 00000 n
-0000646731 00000 n
-0000646796 00000 n
-0000646861 00000 n
-0000646926 00000 n
-0000646991 00000 n
-0000647056 00000 n
-0000647121 00000 n
-0000647186 00000 n
-0000647251 00000 n
-0000647315 00000 n
-0000647380 00000 n
-0000647445 00000 n
-0000647510 00000 n
-0000647575 00000 n
-0000647640 00000 n
-0000647705 00000 n
-0000647770 00000 n
-0000647835 00000 n
-0000647898 00000 n
-0000647963 00000 n
-0000648028 00000 n
-0000648093 00000 n
-0000648158 00000 n
-0000648223 00000 n
-0000648288 00000 n
-0000648352 00000 n
-0000648417 00000 n
-0000648482 00000 n
-0000648547 00000 n
-0000648612 00000 n
-0000648677 00000 n
-0000648742 00000 n
-0000648807 00000 n
-0000648872 00000 n
-0000648937 00000 n
-0000649001 00000 n
-0000649066 00000 n
-0000649131 00000 n
-0000649196 00000 n
-0000649261 00000 n
-0000649326 00000 n
-0000649391 00000 n
-0000649455 00000 n
-0000655100 00000 n
-0000651410 00000 n
-0000649696 00000 n
-0000651535 00000 n
-0000651599 00000 n
-0000651664 00000 n
-0000651729 00000 n
-0000651794 00000 n
-0000651859 00000 n
-0000651924 00000 n
-0000651989 00000 n
-0000652054 00000 n
-0000652119 00000 n
-0000652184 00000 n
-0000652248 00000 n
-0000652312 00000 n
-0000652376 00000 n
-0000652441 00000 n
-0000652506 00000 n
-0000652571 00000 n
-0000652636 00000 n
-0000652700 00000 n
-0000652765 00000 n
-0000652830 00000 n
-0000652895 00000 n
-0000652960 00000 n
-0000653025 00000 n
-0000653090 00000 n
-0000653155 00000 n
-0000653220 00000 n
-0000653285 00000 n
-0000653350 00000 n
-0000653415 00000 n
-0000653480 00000 n
-0000653545 00000 n
-0000653609 00000 n
-0000653674 00000 n
-0000653739 00000 n
-0000653804 00000 n
-0000653869 00000 n
-0000653934 00000 n
-0000653999 00000 n
-0000654064 00000 n
-0000654129 00000 n
-0000654194 00000 n
-0000654258 00000 n
-0000654323 00000 n
-0000654388 00000 n
-0000654453 00000 n
-0000654518 00000 n
-0000654583 00000 n
-0000654648 00000 n
-0000654713 00000 n
-0000654778 00000 n
-0000654842 00000 n
-0000654907 00000 n
-0000654972 00000 n
-0000655036 00000 n
-0000661018 00000 n
-0000656806 00000 n
-0000655264 00000 n
-0000656931 00000 n
-0000656995 00000 n
-0000657060 00000 n
-0000657125 00000 n
-0000657190 00000 n
-0000657255 00000 n
-0000657320 00000 n
-0000657385 00000 n
-0000657450 00000 n
-0000657515 00000 n
-0000657579 00000 n
-0000657644 00000 n
-0000657709 00000 n
-0000657774 00000 n
-0000657839 00000 n
-0000657904 00000 n
-0000657969 00000 n
-0000658034 00000 n
-0000658099 00000 n
-0000658164 00000 n
-0000658228 00000 n
-0000658293 00000 n
-0000658358 00000 n
-0000658423 00000 n
-0000658488 00000 n
-0000658553 00000 n
-0000658618 00000 n
-0000658683 00000 n
-0000658748 00000 n
-0000658812 00000 n
-0000658877 00000 n
-0000658942 00000 n
-0000659007 00000 n
-0000659072 00000 n
-0000659137 00000 n
-0000659202 00000 n
-0000659267 00000 n
-0000659332 00000 n
-0000659396 00000 n
-0000659461 00000 n
-0000659526 00000 n
-0000659591 00000 n
-0000659656 00000 n
-0000659721 00000 n
-0000659786 00000 n
-0000659851 00000 n
-0000659916 00000 n
-0000659981 00000 n
-0000660046 00000 n
-0000660111 00000 n
-0000660176 00000 n
-0000660241 00000 n
-0000660306 00000 n
-0000660371 00000 n
-0000660436 00000 n
-0000660501 00000 n
-0000660566 00000 n
-0000660630 00000 n
-0000660695 00000 n
-0000660760 00000 n
-0000660825 00000 n
-0000660890 00000 n
-0000660954 00000 n
-0000666757 00000 n
-0000663587 00000 n
-0000661169 00000 n
-0000663712 00000 n
-0000663776 00000 n
-0000663841 00000 n
-0000663906 00000 n
-0000663971 00000 n
-0000664036 00000 n
-0000664101 00000 n
-0000664166 00000 n
-0000664231 00000 n
-0000664296 00000 n
-0000664360 00000 n
-0000664425 00000 n
-0000664490 00000 n
-0000664555 00000 n
-0000664620 00000 n
-0000664685 00000 n
-0000664750 00000 n
-0000664815 00000 n
-0000664880 00000 n
-0000664944 00000 n
-0000665009 00000 n
-0000665074 00000 n
-0000665139 00000 n
-0000665204 00000 n
-0000665331 00000 n
-0000665396 00000 n
-0000665461 00000 n
-0000665526 00000 n
-0000665591 00000 n
-0000665656 00000 n
-0000665721 00000 n
-0000665786 00000 n
-0000665850 00000 n
-0000665915 00000 n
-0000665980 00000 n
-0000666045 00000 n
-0000666110 00000 n
-0000666175 00000 n
-0000666240 00000 n
-0000666305 00000 n
-0000666370 00000 n
-0000666433 00000 n
-0000666498 00000 n
-0000666563 00000 n
-0000666628 00000 n
-0000666693 00000 n
-0000672613 00000 n
-0000668531 00000 n
-0000666973 00000 n
-0000668656 00000 n
-0000668720 00000 n
-0000668785 00000 n
-0000668850 00000 n
-0000668915 00000 n
-0000668980 00000 n
-0000669045 00000 n
-0000669110 00000 n
-0000669175 00000 n
-0000669240 00000 n
-0000669304 00000 n
-0000669369 00000 n
-0000669434 00000 n
-0000669499 00000 n
-0000669564 00000 n
-0000669629 00000 n
-0000669694 00000 n
-0000669759 00000 n
-0000669824 00000 n
-0000669888 00000 n
-0000669953 00000 n
-0000670018 00000 n
-0000670083 00000 n
-0000670148 00000 n
-0000670213 00000 n
-0000670278 00000 n
-0000670343 00000 n
-0000670408 00000 n
-0000670472 00000 n
-0000670537 00000 n
-0000670602 00000 n
-0000670667 00000 n
-0000670732 00000 n
-0000670797 00000 n
-0000670862 00000 n
-0000670927 00000 n
-0000670992 00000 n
-0000671056 00000 n
-0000671121 00000 n
-0000671186 00000 n
-0000671251 00000 n
-0000671316 00000 n
-0000671381 00000 n
-0000671446 00000 n
-0000671511 00000 n
-0000671576 00000 n
-0000671641 00000 n
-0000671706 00000 n
-0000671771 00000 n
-0000671836 00000 n
-0000671901 00000 n
-0000671966 00000 n
-0000672031 00000 n
-0000672096 00000 n
-0000672161 00000 n
-0000672225 00000 n
-0000672290 00000 n
-0000672355 00000 n
-0000672420 00000 n
-0000672485 00000 n
-0000672549 00000 n
-0000678162 00000 n
-0000674990 00000 n
-0000672764 00000 n
-0000675115 00000 n
-0000675179 00000 n
-0000675244 00000 n
-0000675309 00000 n
-0000675374 00000 n
-0000675439 00000 n
-0000675504 00000 n
-0000675569 00000 n
-0000675633 00000 n
-0000675698 00000 n
-0000675763 00000 n
-0000675828 00000 n
-0000675893 00000 n
-0000675958 00000 n
-0000676023 00000 n
-0000676088 00000 n
-0000676153 00000 n
-0000676217 00000 n
-0000676282 00000 n
-0000676347 00000 n
-0000676412 00000 n
-0000676477 00000 n
-0000676542 00000 n
-0000676607 00000 n
-0000676672 00000 n
-0000676737 00000 n
-0000676801 00000 n
-0000676866 00000 n
-0000676931 00000 n
-0000676996 00000 n
-0000677061 00000 n
-0000677126 00000 n
-0000677191 00000 n
-0000677256 00000 n
-0000677321 00000 n
-0000677386 00000 n
-0000677451 00000 n
-0000677516 00000 n
-0000677579 00000 n
-0000677644 00000 n
-0000677709 00000 n
-0000677774 00000 n
-0000677839 00000 n
-0000677904 00000 n
-0000677969 00000 n
-0000678034 00000 n
-0000678098 00000 n
-0001889066 00000 n
-0000684004 00000 n
-0000680377 00000 n
-0000678339 00000 n
+0000630089 00000 n
+0000630153 00000 n
+0000630218 00000 n
+0000630283 00000 n
+0000630348 00000 n
+0000630413 00000 n
+0000630478 00000 n
+0000630543 00000 n
+0000630608 00000 n
+0000630673 00000 n
+0000630737 00000 n
+0000630802 00000 n
+0000630867 00000 n
+0000630932 00000 n
+0000630997 00000 n
+0000631062 00000 n
+0000631127 00000 n
+0000631192 00000 n
+0000631257 00000 n
+0000631321 00000 n
+0000631386 00000 n
+0000631451 00000 n
+0000631516 00000 n
+0000631581 00000 n
+0000631646 00000 n
+0000631711 00000 n
+0000631776 00000 n
+0000631841 00000 n
+0000631906 00000 n
+0000631970 00000 n
+0000632035 00000 n
+0000632100 00000 n
+0000632165 00000 n
+0000632230 00000 n
+0000632295 00000 n
+0000632360 00000 n
+0000632425 00000 n
+0000632490 00000 n
+0000632554 00000 n
+0000632619 00000 n
+0000632684 00000 n
+0000632749 00000 n
+0000632814 00000 n
+0000632879 00000 n
+0000632944 00000 n
+0000633009 00000 n
+0000633074 00000 n
+0000633139 00000 n
+0000633203 00000 n
+0000633268 00000 n
+0000633333 00000 n
+0000633398 00000 n
+0000633462 00000 n
+0000638975 00000 n
+0000635933 00000 n
+0000633690 00000 n
+0000636058 00000 n
+0000636122 00000 n
+0000636187 00000 n
+0000636251 00000 n
+0000636316 00000 n
+0000636381 00000 n
+0000636446 00000 n
+0000636511 00000 n
+0000636576 00000 n
+0000636641 00000 n
+0000636706 00000 n
+0000636771 00000 n
+0000636835 00000 n
+0000636900 00000 n
+0000636965 00000 n
+0000637030 00000 n
+0000637095 00000 n
+0000637160 00000 n
+0000637225 00000 n
+0000637290 00000 n
+0000637355 00000 n
+0000637419 00000 n
+0000637484 00000 n
+0000637549 00000 n
+0000637614 00000 n
+0000637679 00000 n
+0000637744 00000 n
+0000637809 00000 n
+0000637874 00000 n
+0000637939 00000 n
+0000638003 00000 n
+0000638068 00000 n
+0000638133 00000 n
+0000638198 00000 n
+0000638263 00000 n
+0000638328 00000 n
+0000638393 00000 n
+0000638458 00000 n
+0000638523 00000 n
+0000638587 00000 n
+0000638652 00000 n
+0000638717 00000 n
+0000638782 00000 n
+0000638847 00000 n
+0000638911 00000 n
+0000644886 00000 n
+0000641327 00000 n
+0000639139 00000 n
+0000641452 00000 n
+0000641516 00000 n
+0000641581 00000 n
+0000641644 00000 n
+0000641709 00000 n
+0000641774 00000 n
+0000641839 00000 n
+0000641904 00000 n
+0000641969 00000 n
+0000642034 00000 n
+0000642099 00000 n
+0000642164 00000 n
+0000642229 00000 n
+0000642294 00000 n
+0000642359 00000 n
+0000642422 00000 n
+0000642487 00000 n
+0000642552 00000 n
+0000642616 00000 n
+0000642681 00000 n
+0000642746 00000 n
+0000642811 00000 n
+0000642876 00000 n
+0000642941 00000 n
+0000643006 00000 n
+0000643071 00000 n
+0000643136 00000 n
+0000643201 00000 n
+0000643266 00000 n
+0000643331 00000 n
+0000643395 00000 n
+0000643460 00000 n
+0000643525 00000 n
+0000643590 00000 n
+0000643655 00000 n
+0000643720 00000 n
+0000643785 00000 n
+0000643849 00000 n
+0000643914 00000 n
+0000643979 00000 n
+0000644044 00000 n
+0000644109 00000 n
+0000644174 00000 n
+0000644239 00000 n
+0000644304 00000 n
+0000644369 00000 n
+0000644434 00000 n
+0000644499 00000 n
+0000644564 00000 n
+0000644628 00000 n
+0000644693 00000 n
+0000644758 00000 n
+0000644822 00000 n
+0000649970 00000 n
+0000647382 00000 n
+0000645076 00000 n
+0000647507 00000 n
+0000647571 00000 n
+0000647636 00000 n
+0000647701 00000 n
+0000647766 00000 n
+0000647831 00000 n
+0000647896 00000 n
+0000647961 00000 n
+0000648026 00000 n
+0000648091 00000 n
+0000648155 00000 n
+0000648220 00000 n
+0000648285 00000 n
+0000648350 00000 n
+0000648415 00000 n
+0000648480 00000 n
+0000648545 00000 n
+0000648610 00000 n
+0000648675 00000 n
+0000648739 00000 n
+0000648804 00000 n
+0000648869 00000 n
+0000648934 00000 n
+0000648999 00000 n
+0000649064 00000 n
+0000649129 00000 n
+0000649194 00000 n
+0000649258 00000 n
+0000649323 00000 n
+0000649388 00000 n
+0000649453 00000 n
+0000649518 00000 n
+0000649583 00000 n
+0000649648 00000 n
+0000649712 00000 n
+0000649777 00000 n
+0000649842 00000 n
+0000649906 00000 n
+0001536013 00000 n
+0000656022 00000 n
+0000652852 00000 n
+0000650134 00000 n
+0000652977 00000 n
+0000653041 00000 n
+0000653106 00000 n
+0000653170 00000 n
+0000653235 00000 n
+0000653300 00000 n
+0000653365 00000 n
+0000653430 00000 n
+0000653495 00000 n
+0000653560 00000 n
+0000653625 00000 n
+0000653690 00000 n
+0000653755 00000 n
+0000653820 00000 n
+0000653885 00000 n
+0000653950 00000 n
+0000654015 00000 n
+0000654079 00000 n
+0000654144 00000 n
+0000654209 00000 n
+0000654274 00000 n
+0000654337 00000 n
+0000654402 00000 n
+0000654467 00000 n
+0000654532 00000 n
+0000654597 00000 n
+0000654662 00000 n
+0000654727 00000 n
+0000654792 00000 n
+0000654857 00000 n
+0000654921 00000 n
+0000654986 00000 n
+0000655051 00000 n
+0000655116 00000 n
+0000655181 00000 n
+0000655246 00000 n
+0000655311 00000 n
+0000655376 00000 n
+0000655440 00000 n
+0000655505 00000 n
+0000655570 00000 n
+0000655635 00000 n
+0000655700 00000 n
+0000655764 00000 n
+0000655829 00000 n
+0000655894 00000 n
+0000655958 00000 n
+0000660619 00000 n
+0000657902 00000 n
+0000656213 00000 n
+0000658027 00000 n
+0000658091 00000 n
+0000658156 00000 n
+0000658220 00000 n
+0000658285 00000 n
+0000658350 00000 n
+0000658415 00000 n
+0000658480 00000 n
+0000658545 00000 n
+0000658610 00000 n
+0000658675 00000 n
+0000658740 00000 n
+0000658804 00000 n
+0000658869 00000 n
+0000658934 00000 n
+0000658999 00000 n
+0000659064 00000 n
+0000659129 00000 n
+0000659194 00000 n
+0000659259 00000 n
+0000659324 00000 n
+0000659389 00000 n
+0000659454 00000 n
+0000659519 00000 n
+0000659584 00000 n
+0000659649 00000 n
+0000659714 00000 n
+0000659779 00000 n
+0000659844 00000 n
+0000659909 00000 n
+0000659974 00000 n
+0000660038 00000 n
+0000660103 00000 n
+0000660168 00000 n
+0000660233 00000 n
+0000660298 00000 n
+0000660363 00000 n
+0000660428 00000 n
+0000660493 00000 n
+0000665840 00000 n
+0000662990 00000 n
+0000660796 00000 n
+0000663115 00000 n
+0000663179 00000 n
+0000663244 00000 n
+0000663309 00000 n
+0000663374 00000 n
+0000663438 00000 n
+0000663503 00000 n
+0000663568 00000 n
+0000663633 00000 n
+0000663698 00000 n
+0000663763 00000 n
+0000663828 00000 n
+0000663892 00000 n
+0000663957 00000 n
+0000664022 00000 n
+0000664087 00000 n
+0000664152 00000 n
+0000664217 00000 n
+0000664282 00000 n
+0000664347 00000 n
+0000664412 00000 n
+0000664477 00000 n
+0000664542 00000 n
+0000664606 00000 n
+0000664671 00000 n
+0000664736 00000 n
+0000664801 00000 n
+0000664866 00000 n
+0000664931 00000 n
+0000664996 00000 n
+0000665061 00000 n
+0000665126 00000 n
+0000665191 00000 n
+0000665256 00000 n
+0000665321 00000 n
+0000665385 00000 n
+0000665450 00000 n
+0000665515 00000 n
+0000665580 00000 n
+0000665645 00000 n
+0000665710 00000 n
+0000665775 00000 n
+0000672175 00000 n
+0000668940 00000 n
+0000666017 00000 n
+0000669065 00000 n
+0000669129 00000 n
+0000669194 00000 n
+0000669258 00000 n
+0000669323 00000 n
+0000669388 00000 n
+0000669452 00000 n
+0000669517 00000 n
+0000669582 00000 n
+0000669647 00000 n
+0000669712 00000 n
+0000669777 00000 n
+0000669842 00000 n
+0000669907 00000 n
+0000669972 00000 n
+0000670036 00000 n
+0000670101 00000 n
+0000670166 00000 n
+0000670231 00000 n
+0000670296 00000 n
+0000670361 00000 n
+0000670426 00000 n
+0000670491 00000 n
+0000670556 00000 n
+0000670621 00000 n
+0000670685 00000 n
+0000670750 00000 n
+0000670815 00000 n
+0000670880 00000 n
+0000670945 00000 n
+0000671010 00000 n
+0000671075 00000 n
+0000671140 00000 n
+0000671205 00000 n
+0000671269 00000 n
+0000671334 00000 n
+0000671399 00000 n
+0000671464 00000 n
+0000671529 00000 n
+0000671594 00000 n
+0000671659 00000 n
+0000671723 00000 n
+0000671788 00000 n
+0000671852 00000 n
+0000671917 00000 n
+0000671982 00000 n
+0000672047 00000 n
+0000672111 00000 n
+0000678216 00000 n
+0000674655 00000 n
+0000672378 00000 n
+0000674780 00000 n
+0000674844 00000 n
+0000674909 00000 n
+0000674973 00000 n
+0000675038 00000 n
+0000675103 00000 n
+0000675168 00000 n
+0000675233 00000 n
+0000675298 00000 n
+0000675363 00000 n
+0000675428 00000 n
+0000675493 00000 n
+0000675557 00000 n
+0000675622 00000 n
+0000675687 00000 n
+0000675752 00000 n
+0000675817 00000 n
+0000675882 00000 n
+0000675947 00000 n
+0000676012 00000 n
+0000676077 00000 n
+0000676141 00000 n
+0000676206 00000 n
+0000676271 00000 n
+0000676336 00000 n
+0000676401 00000 n
+0000676466 00000 n
+0000676531 00000 n
+0000676596 00000 n
+0000676661 00000 n
+0000676726 00000 n
+0000676791 00000 n
+0000676856 00000 n
+0000676921 00000 n
+0000676985 00000 n
+0000677050 00000 n
+0000677115 00000 n
+0000677180 00000 n
+0000677245 00000 n
+0000677310 00000 n
+0000677375 00000 n
+0000677440 00000 n
+0000677505 00000 n
+0000677570 00000 n
+0000677634 00000 n
+0000677699 00000 n
+0000677764 00000 n
+0000677829 00000 n
+0000677894 00000 n
+0000677958 00000 n
+0000678023 00000 n
+0000678088 00000 n
+0000678152 00000 n
+0000684070 00000 n
+0000680313 00000 n
+0000678393 00000 n
+0000680438 00000 n
0000680502 00000 n
-0000680566 00000 n
+0000680567 00000 n
0000680631 00000 n
0000680696 00000 n
0000680761 00000 n
@@ -46764,20 +45009,20 @@ xref
0000680891 00000 n
0000680956 00000 n
0000681021 00000 n
-0000681086 00000 n
+0000681085 00000 n
0000681150 00000 n
0000681215 00000 n
0000681280 00000 n
0000681345 00000 n
-0000681409 00000 n
-0000681474 00000 n
-0000681539 00000 n
-0000681604 00000 n
-0000681669 00000 n
-0000681734 00000 n
-0000681799 00000 n
-0000681864 00000 n
-0000681929 00000 n
+0000681410 00000 n
+0000681475 00000 n
+0000681540 00000 n
+0000681605 00000 n
+0000681670 00000 n
+0000681735 00000 n
+0000681800 00000 n
+0000681865 00000 n
+0000681930 00000 n
0000681994 00000 n
0000682059 00000 n
0000682124 00000 n
@@ -46788,6189 +45033,6444 @@ xref
0000682449 00000 n
0000682514 00000 n
0000682579 00000 n
-0000682643 00000 n
-0000682708 00000 n
-0000682773 00000 n
-0000682838 00000 n
-0000682903 00000 n
-0000682968 00000 n
-0000683033 00000 n
-0000683098 00000 n
-0000683163 00000 n
-0000683227 00000 n
-0000683292 00000 n
-0000683357 00000 n
-0000683421 00000 n
-0000683486 00000 n
-0000683551 00000 n
-0000683616 00000 n
-0000683681 00000 n
-0000683746 00000 n
-0000683811 00000 n
-0000683876 00000 n
-0000683940 00000 n
-0000690009 00000 n
-0000686123 00000 n
-0000684168 00000 n
-0000686248 00000 n
-0000686312 00000 n
-0000686377 00000 n
-0000686442 00000 n
-0000686507 00000 n
-0000686572 00000 n
-0000686637 00000 n
-0000686702 00000 n
-0000686767 00000 n
-0000686832 00000 n
-0000686896 00000 n
-0000686961 00000 n
-0000687026 00000 n
-0000687091 00000 n
-0000687156 00000 n
-0000687221 00000 n
-0000687286 00000 n
-0000687351 00000 n
-0000687416 00000 n
-0000687480 00000 n
-0000687545 00000 n
-0000687610 00000 n
-0000687675 00000 n
-0000687740 00000 n
-0000687805 00000 n
-0000687870 00000 n
-0000687935 00000 n
-0000688000 00000 n
-0000688063 00000 n
-0000688128 00000 n
-0000688193 00000 n
-0000688258 00000 n
-0000688323 00000 n
-0000688388 00000 n
-0000688453 00000 n
-0000688518 00000 n
-0000688583 00000 n
-0000688648 00000 n
-0000688712 00000 n
-0000688777 00000 n
-0000688842 00000 n
-0000688907 00000 n
-0000688972 00000 n
-0000689037 00000 n
-0000689102 00000 n
-0000689167 00000 n
-0000689232 00000 n
-0000689297 00000 n
-0000689362 00000 n
-0000689427 00000 n
-0000689492 00000 n
-0000689557 00000 n
-0000689622 00000 n
-0000689687 00000 n
-0000689752 00000 n
-0000689816 00000 n
-0000689881 00000 n
-0000689945 00000 n
-0000695629 00000 n
-0000691679 00000 n
-0000690173 00000 n
-0000691804 00000 n
-0000691868 00000 n
-0000691933 00000 n
-0000691998 00000 n
-0000692063 00000 n
-0000692128 00000 n
-0000692193 00000 n
-0000692258 00000 n
-0000692323 00000 n
-0000692388 00000 n
-0000692452 00000 n
-0000692517 00000 n
-0000692582 00000 n
-0000692647 00000 n
-0000692712 00000 n
-0000692777 00000 n
-0000692842 00000 n
-0000692906 00000 n
-0000692971 00000 n
-0000693036 00000 n
-0000693101 00000 n
-0000693166 00000 n
-0000693231 00000 n
-0000693296 00000 n
-0000693360 00000 n
-0000693425 00000 n
-0000693490 00000 n
-0000693555 00000 n
-0000693620 00000 n
-0000693685 00000 n
-0000693750 00000 n
-0000693815 00000 n
-0000693880 00000 n
-0000693944 00000 n
-0000694009 00000 n
-0000694074 00000 n
-0000694139 00000 n
-0000694204 00000 n
-0000694269 00000 n
-0000694334 00000 n
-0000694399 00000 n
-0000694464 00000 n
-0000694527 00000 n
-0000694592 00000 n
-0000694657 00000 n
-0000694722 00000 n
-0000694787 00000 n
-0000694852 00000 n
-0000694917 00000 n
-0000694982 00000 n
-0000695047 00000 n
-0000695111 00000 n
-0000695176 00000 n
-0000695241 00000 n
-0000695306 00000 n
-0000695371 00000 n
-0000695436 00000 n
-0000695501 00000 n
-0000695565 00000 n
-0000698602 00000 n
-0000700893 00000 n
-0000698429 00000 n
-0000695780 00000 n
-0000698758 00000 n
-0000698822 00000 n
-0000698887 00000 n
-0000698952 00000 n
-0000699017 00000 n
-0000699082 00000 n
-0000699147 00000 n
-0000699212 00000 n
-0000699277 00000 n
-0000699342 00000 n
-0000699406 00000 n
-0000699471 00000 n
-0000699536 00000 n
-0000699601 00000 n
-0000699666 00000 n
-0000699731 00000 n
-0000699796 00000 n
-0000699861 00000 n
-0000699926 00000 n
-0000699991 00000 n
-0000700056 00000 n
-0000700120 00000 n
-0000700185 00000 n
-0000700250 00000 n
-0000700315 00000 n
-0000700380 00000 n
-0000700443 00000 n
-0000700570 00000 n
-0000700634 00000 n
-0000700699 00000 n
-0000700764 00000 n
-0000700829 00000 n
-0000698571 00000 n
-0000706940 00000 n
-0000703510 00000 n
-0000701161 00000 n
-0000703635 00000 n
-0000703699 00000 n
-0000703764 00000 n
-0000703829 00000 n
-0000703894 00000 n
-0000703959 00000 n
-0000704024 00000 n
-0000704089 00000 n
-0000704154 00000 n
-0000704219 00000 n
-0000704283 00000 n
-0000704348 00000 n
-0000704413 00000 n
-0000704478 00000 n
-0000704543 00000 n
-0000704608 00000 n
-0000704673 00000 n
-0000704738 00000 n
-0000704803 00000 n
-0000704867 00000 n
-0000704932 00000 n
-0000704997 00000 n
-0000705062 00000 n
-0000705127 00000 n
-0000705192 00000 n
-0000705257 00000 n
-0000705322 00000 n
-0000705387 00000 n
-0000705452 00000 n
-0000705517 00000 n
-0000705581 00000 n
-0000705646 00000 n
-0000705711 00000 n
-0000705776 00000 n
-0000705840 00000 n
-0000705905 00000 n
-0000705969 00000 n
-0000706034 00000 n
-0000706099 00000 n
-0000706164 00000 n
-0000706229 00000 n
-0000706293 00000 n
-0000706358 00000 n
-0000706423 00000 n
-0000706488 00000 n
-0000706553 00000 n
-0000706618 00000 n
-0000706683 00000 n
-0000706747 00000 n
-0000706812 00000 n
-0000706876 00000 n
-0000711941 00000 n
-0000709550 00000 n
-0000707117 00000 n
-0000709675 00000 n
-0000709739 00000 n
-0000709804 00000 n
-0000709869 00000 n
-0000709996 00000 n
-0000710061 00000 n
-0000710126 00000 n
-0000710191 00000 n
-0000710256 00000 n
-0000710320 00000 n
-0000710385 00000 n
-0000710450 00000 n
-0000710515 00000 n
-0000710580 00000 n
-0000710644 00000 n
-0000710709 00000 n
-0000710774 00000 n
-0000710839 00000 n
-0000710904 00000 n
-0000710969 00000 n
-0000711034 00000 n
-0000711098 00000 n
-0000711163 00000 n
-0000711228 00000 n
-0000711293 00000 n
-0000711358 00000 n
-0000711423 00000 n
-0000711488 00000 n
-0000711553 00000 n
-0000711618 00000 n
-0000711683 00000 n
-0000711748 00000 n
-0000711813 00000 n
-0000711877 00000 n
-0000717426 00000 n
-0000714122 00000 n
-0000712131 00000 n
-0000714247 00000 n
-0000714311 00000 n
-0000714376 00000 n
-0000714441 00000 n
-0000714506 00000 n
-0000714571 00000 n
-0000714636 00000 n
-0000714701 00000 n
-0000714766 00000 n
-0000714831 00000 n
-0000714896 00000 n
-0000714961 00000 n
-0000715026 00000 n
-0000715091 00000 n
-0000715156 00000 n
-0000715221 00000 n
-0000715286 00000 n
-0000715350 00000 n
-0000715415 00000 n
-0000715480 00000 n
-0000715545 00000 n
-0000715610 00000 n
-0000715675 00000 n
-0000715740 00000 n
-0000715805 00000 n
-0000715870 00000 n
-0000715935 00000 n
-0000716000 00000 n
-0000716065 00000 n
-0000716128 00000 n
-0000716193 00000 n
-0000716258 00000 n
-0000716323 00000 n
-0000716388 00000 n
-0000716453 00000 n
-0000716518 00000 n
-0000716583 00000 n
-0000716648 00000 n
-0000716712 00000 n
-0000716777 00000 n
-0000716842 00000 n
-0000716906 00000 n
-0000716971 00000 n
-0000717036 00000 n
-0000717101 00000 n
-0000717166 00000 n
-0000717231 00000 n
-0000717296 00000 n
-0000717361 00000 n
-0000722617 00000 n
-0000719835 00000 n
-0000717603 00000 n
-0000719960 00000 n
-0000720024 00000 n
-0000720089 00000 n
-0000720154 00000 n
-0000720219 00000 n
-0000720284 00000 n
-0000720349 00000 n
-0000720414 00000 n
-0000720479 00000 n
-0000720544 00000 n
-0000720609 00000 n
-0000720674 00000 n
-0000720739 00000 n
-0000720804 00000 n
-0000720869 00000 n
-0000720934 00000 n
-0000720999 00000 n
-0000721064 00000 n
-0000721129 00000 n
-0000721193 00000 n
-0000721258 00000 n
-0000721323 00000 n
-0000721387 00000 n
-0000721452 00000 n
-0000721517 00000 n
-0000721582 00000 n
-0000721647 00000 n
-0000721712 00000 n
-0000721777 00000 n
-0000721842 00000 n
-0000721907 00000 n
-0000721971 00000 n
-0000722036 00000 n
-0000722101 00000 n
-0000722166 00000 n
-0000722231 00000 n
-0000722296 00000 n
-0000722361 00000 n
-0000722426 00000 n
-0000722491 00000 n
-0000728312 00000 n
-0000726049 00000 n
-0000722833 00000 n
-0000726174 00000 n
-0000726238 00000 n
-0000726303 00000 n
-0000726368 00000 n
-0000726433 00000 n
-0000726497 00000 n
-0000726562 00000 n
-0000726627 00000 n
-0000726692 00000 n
-0000726757 00000 n
-0000726822 00000 n
-0000726887 00000 n
-0000726952 00000 n
-0000727017 00000 n
-0000727082 00000 n
-0000727146 00000 n
-0000727211 00000 n
-0000727276 00000 n
-0000727341 00000 n
-0000727406 00000 n
-0000727471 00000 n
-0000727536 00000 n
-0000727601 00000 n
-0000727666 00000 n
-0000727731 00000 n
-0000727796 00000 n
-0000727861 00000 n
-0000727926 00000 n
-0000727990 00000 n
-0000728055 00000 n
-0000728120 00000 n
-0000728184 00000 n
-0000728248 00000 n
-0000734270 00000 n
-0000730641 00000 n
-0000728554 00000 n
-0000730766 00000 n
-0000730830 00000 n
-0000730895 00000 n
-0000730960 00000 n
-0000731025 00000 n
-0000731090 00000 n
-0000731155 00000 n
-0000731220 00000 n
-0000731285 00000 n
-0000731350 00000 n
-0000731414 00000 n
-0000731479 00000 n
-0000731544 00000 n
-0000731609 00000 n
-0000731674 00000 n
-0000731739 00000 n
-0000731804 00000 n
-0000731869 00000 n
-0000731934 00000 n
-0000731998 00000 n
-0000732063 00000 n
-0000732128 00000 n
-0000732193 00000 n
-0000732258 00000 n
-0000732323 00000 n
-0000732388 00000 n
-0000732453 00000 n
-0000732518 00000 n
-0000732581 00000 n
-0000732646 00000 n
-0000732711 00000 n
-0000732776 00000 n
-0000732841 00000 n
-0000732906 00000 n
-0000732971 00000 n
-0000733036 00000 n
-0000733101 00000 n
-0000733166 00000 n
-0000733231 00000 n
-0000733295 00000 n
-0000733360 00000 n
-0000733425 00000 n
-0000733490 00000 n
-0000733555 00000 n
-0000733620 00000 n
-0000733685 00000 n
-0000733750 00000 n
-0000733815 00000 n
-0000733880 00000 n
-0000733945 00000 n
-0000734010 00000 n
-0000734075 00000 n
-0000734140 00000 n
-0000734205 00000 n
-0001889231 00000 n
-0000739248 00000 n
-0000736202 00000 n
-0000734447 00000 n
-0000736327 00000 n
-0000736391 00000 n
-0000736456 00000 n
-0000736521 00000 n
-0000736586 00000 n
-0000736651 00000 n
-0000736716 00000 n
-0000736781 00000 n
-0000736846 00000 n
-0000736911 00000 n
-0000736976 00000 n
-0000737041 00000 n
-0000737106 00000 n
-0000737171 00000 n
-0000737236 00000 n
-0000737301 00000 n
-0000737366 00000 n
-0000737431 00000 n
-0000737495 00000 n
-0000737560 00000 n
-0000737625 00000 n
-0000737690 00000 n
-0000737755 00000 n
-0000737820 00000 n
-0000737885 00000 n
-0000737950 00000 n
-0000738015 00000 n
-0000738080 00000 n
-0000738145 00000 n
-0000738210 00000 n
-0000738275 00000 n
-0000738340 00000 n
-0000738404 00000 n
-0000738469 00000 n
-0000738534 00000 n
-0000738599 00000 n
-0000738664 00000 n
-0000738729 00000 n
-0000738794 00000 n
-0000738858 00000 n
-0000738923 00000 n
-0000738988 00000 n
-0000739053 00000 n
-0000739118 00000 n
-0000739183 00000 n
-0000744346 00000 n
-0000741041 00000 n
-0000739412 00000 n
-0000741166 00000 n
-0000741230 00000 n
-0000741295 00000 n
-0000741360 00000 n
-0000741425 00000 n
-0000741490 00000 n
-0000741555 00000 n
-0000741620 00000 n
-0000741685 00000 n
-0000741750 00000 n
-0000741815 00000 n
-0000741880 00000 n
-0000741945 00000 n
-0000742010 00000 n
-0000742075 00000 n
-0000742139 00000 n
-0000742204 00000 n
-0000742269 00000 n
-0000742334 00000 n
-0000742399 00000 n
-0000742464 00000 n
-0000742529 00000 n
-0000742593 00000 n
-0000742658 00000 n
-0000742723 00000 n
-0000742788 00000 n
-0000742853 00000 n
-0000742918 00000 n
-0000742983 00000 n
-0000743048 00000 n
-0000743113 00000 n
-0000743178 00000 n
-0000743243 00000 n
-0000743308 00000 n
-0000743373 00000 n
-0000743438 00000 n
-0000743502 00000 n
-0000743567 00000 n
-0000743632 00000 n
-0000743697 00000 n
-0000743762 00000 n
-0000743826 00000 n
-0000743891 00000 n
-0000743956 00000 n
-0000744021 00000 n
-0000744086 00000 n
-0000744151 00000 n
-0000744216 00000 n
-0000744281 00000 n
-0000749985 00000 n
-0000747267 00000 n
-0000744510 00000 n
-0000747392 00000 n
-0000747456 00000 n
-0000747521 00000 n
-0000747586 00000 n
-0000747651 00000 n
-0000747716 00000 n
-0000747781 00000 n
-0000747846 00000 n
-0000747911 00000 n
-0000747976 00000 n
-0000748041 00000 n
-0000748106 00000 n
-0000748171 00000 n
-0000748234 00000 n
-0000748299 00000 n
-0000748364 00000 n
-0000748429 00000 n
-0000748494 00000 n
-0000748559 00000 n
-0000748623 00000 n
-0000748688 00000 n
-0000748753 00000 n
-0000748818 00000 n
-0000748883 00000 n
-0000748948 00000 n
-0000749013 00000 n
-0000749077 00000 n
-0000749142 00000 n
-0000749207 00000 n
-0000749272 00000 n
-0000749337 00000 n
-0000749402 00000 n
-0000749467 00000 n
-0000749531 00000 n
-0000749596 00000 n
-0000749661 00000 n
-0000749725 00000 n
-0000749790 00000 n
-0000749855 00000 n
-0000749920 00000 n
-0000755968 00000 n
-0000752664 00000 n
-0000750201 00000 n
-0000752789 00000 n
-0000752853 00000 n
-0000752918 00000 n
-0000752983 00000 n
-0000753048 00000 n
-0000753113 00000 n
-0000753178 00000 n
-0000753243 00000 n
-0000753308 00000 n
-0000753373 00000 n
-0000753438 00000 n
-0000753503 00000 n
-0000753568 00000 n
-0000753633 00000 n
-0000753698 00000 n
-0000753763 00000 n
-0000753827 00000 n
-0000753892 00000 n
-0000753957 00000 n
-0000754022 00000 n
-0000754087 00000 n
-0000754152 00000 n
-0000754217 00000 n
-0000754282 00000 n
-0000754347 00000 n
-0000754412 00000 n
-0000754476 00000 n
-0000754541 00000 n
-0000754606 00000 n
-0000754671 00000 n
-0000754736 00000 n
-0000754801 00000 n
-0000754866 00000 n
-0000754931 00000 n
-0000754996 00000 n
-0000755061 00000 n
-0000755125 00000 n
-0000755190 00000 n
-0000755255 00000 n
-0000755320 00000 n
-0000755385 00000 n
-0000755450 00000 n
-0000755515 00000 n
-0000755580 00000 n
-0000755645 00000 n
-0000755710 00000 n
-0000755775 00000 n
-0000755840 00000 n
-0000755904 00000 n
-0000761250 00000 n
-0000758270 00000 n
-0000756132 00000 n
-0000758395 00000 n
-0000758459 00000 n
-0000758524 00000 n
-0000758589 00000 n
-0000758654 00000 n
-0000758718 00000 n
-0000758783 00000 n
-0000758848 00000 n
-0000758913 00000 n
-0000758978 00000 n
-0000759043 00000 n
-0000759108 00000 n
-0000759173 00000 n
-0000759238 00000 n
-0000759303 00000 n
-0000759368 00000 n
-0000759433 00000 n
-0000759498 00000 n
-0000759563 00000 n
-0000759628 00000 n
-0000759693 00000 n
-0000759758 00000 n
-0000759822 00000 n
-0000759887 00000 n
-0000759952 00000 n
-0000760017 00000 n
-0000760082 00000 n
-0000760147 00000 n
-0000760212 00000 n
-0000760277 00000 n
-0000760342 00000 n
-0000760407 00000 n
-0000760472 00000 n
-0000760537 00000 n
-0000760602 00000 n
-0000760666 00000 n
-0000760731 00000 n
-0000760796 00000 n
-0000760861 00000 n
-0000760926 00000 n
-0000760991 00000 n
-0000761056 00000 n
-0000761121 00000 n
-0000761186 00000 n
-0000767179 00000 n
-0000763229 00000 n
-0000761453 00000 n
-0000763354 00000 n
-0000763418 00000 n
-0000763481 00000 n
-0000763546 00000 n
-0000763611 00000 n
-0000763676 00000 n
-0000763741 00000 n
-0000763806 00000 n
-0000763871 00000 n
-0000763936 00000 n
-0000764001 00000 n
-0000764066 00000 n
-0000764131 00000 n
-0000764196 00000 n
-0000764261 00000 n
-0000764326 00000 n
-0000764391 00000 n
-0000764456 00000 n
-0000764521 00000 n
-0000764586 00000 n
-0000764651 00000 n
-0000764715 00000 n
-0000764779 00000 n
-0000764844 00000 n
-0000764909 00000 n
-0000764974 00000 n
-0000765039 00000 n
-0000765104 00000 n
-0000765169 00000 n
-0000765234 00000 n
-0000765299 00000 n
-0000765364 00000 n
-0000765429 00000 n
-0000765493 00000 n
-0000765558 00000 n
-0000765623 00000 n
-0000765688 00000 n
-0000765753 00000 n
-0000765818 00000 n
-0000765883 00000 n
-0000765948 00000 n
-0000766013 00000 n
-0000766077 00000 n
-0000766142 00000 n
-0000766207 00000 n
-0000766272 00000 n
-0000766337 00000 n
-0000766402 00000 n
-0000766467 00000 n
-0000766532 00000 n
-0000766597 00000 n
-0000766662 00000 n
-0000766727 00000 n
-0000766791 00000 n
-0000766856 00000 n
-0000766921 00000 n
-0000766986 00000 n
-0000767051 00000 n
-0000767115 00000 n
-0000772608 00000 n
-0000769437 00000 n
-0000767343 00000 n
-0000769562 00000 n
-0000769626 00000 n
-0000769691 00000 n
-0000769756 00000 n
-0000769821 00000 n
-0000769886 00000 n
-0000769951 00000 n
-0000770016 00000 n
-0000770080 00000 n
-0000770145 00000 n
-0000770209 00000 n
-0000770274 00000 n
-0000770339 00000 n
-0000770404 00000 n
-0000770469 00000 n
-0000770534 00000 n
-0000770599 00000 n
-0000770664 00000 n
-0000770729 00000 n
-0000770794 00000 n
-0000770859 00000 n
-0000770924 00000 n
-0000770987 00000 n
-0000771052 00000 n
-0000771117 00000 n
-0000771182 00000 n
-0000771247 00000 n
-0000771312 00000 n
-0000771377 00000 n
-0000771442 00000 n
-0000771507 00000 n
-0000771571 00000 n
-0000771636 00000 n
-0000771701 00000 n
-0000771766 00000 n
-0000771831 00000 n
-0000771896 00000 n
-0000771961 00000 n
-0000772026 00000 n
-0000772091 00000 n
-0000772156 00000 n
-0000772220 00000 n
-0000772285 00000 n
-0000772350 00000 n
-0000772414 00000 n
-0000772479 00000 n
-0000772544 00000 n
-0000778506 00000 n
-0000775269 00000 n
-0000772798 00000 n
-0000775394 00000 n
-0000775458 00000 n
-0000775523 00000 n
-0000775588 00000 n
-0000775653 00000 n
-0000775718 00000 n
-0000775782 00000 n
-0000775847 00000 n
-0000775912 00000 n
-0000775977 00000 n
-0000776042 00000 n
-0000776107 00000 n
-0000776172 00000 n
-0000776237 00000 n
-0000776302 00000 n
-0000776366 00000 n
-0000776431 00000 n
-0000776496 00000 n
-0000776561 00000 n
-0000776626 00000 n
-0000776691 00000 n
-0000776756 00000 n
-0000776821 00000 n
-0000776886 00000 n
-0000776950 00000 n
-0000777015 00000 n
-0000777080 00000 n
-0000777145 00000 n
-0000777210 00000 n
-0000777275 00000 n
-0000777340 00000 n
-0000777405 00000 n
-0000777470 00000 n
-0000777535 00000 n
-0000777600 00000 n
-0000777664 00000 n
-0000777729 00000 n
-0000777794 00000 n
-0000777859 00000 n
-0000777924 00000 n
-0000777989 00000 n
-0000778054 00000 n
-0000778119 00000 n
-0000778183 00000 n
-0000778248 00000 n
-0000778313 00000 n
-0000778378 00000 n
-0000778442 00000 n
-0000783899 00000 n
-0000781442 00000 n
-0000778683 00000 n
-0000781567 00000 n
-0000781631 00000 n
-0000781696 00000 n
-0000781760 00000 n
-0000781825 00000 n
-0000781890 00000 n
-0000781955 00000 n
-0000782020 00000 n
-0000782084 00000 n
-0000782149 00000 n
-0000782214 00000 n
-0000782279 00000 n
-0000782344 00000 n
-0000782409 00000 n
-0000782474 00000 n
-0000782539 00000 n
-0000782604 00000 n
-0000782669 00000 n
-0000782734 00000 n
-0000782799 00000 n
-0000782864 00000 n
-0000782928 00000 n
-0000782993 00000 n
-0000783058 00000 n
-0000783123 00000 n
-0000783188 00000 n
-0000783253 00000 n
-0000783317 00000 n
-0000783382 00000 n
-0000783447 00000 n
-0000783512 00000 n
-0000783577 00000 n
-0000783642 00000 n
-0000783707 00000 n
-0000783772 00000 n
-0000783836 00000 n
-0000789099 00000 n
-0000786317 00000 n
-0000784089 00000 n
-0000786442 00000 n
-0000786506 00000 n
-0000786571 00000 n
-0000786636 00000 n
-0000786701 00000 n
-0000786766 00000 n
-0000786831 00000 n
-0000786896 00000 n
-0000786961 00000 n
-0000787026 00000 n
-0000787091 00000 n
-0000787156 00000 n
-0000787221 00000 n
-0000787286 00000 n
-0000787351 00000 n
-0000787416 00000 n
-0000787481 00000 n
-0000787545 00000 n
-0000787610 00000 n
-0000787675 00000 n
-0000787740 00000 n
-0000787805 00000 n
-0000787870 00000 n
-0000787935 00000 n
-0000788000 00000 n
-0000788065 00000 n
-0000788130 00000 n
-0000788195 00000 n
-0000788260 00000 n
-0000788325 00000 n
-0000788390 00000 n
-0000788454 00000 n
-0000788519 00000 n
-0000788584 00000 n
-0000788649 00000 n
-0000788714 00000 n
-0000788779 00000 n
-0000788844 00000 n
-0000788909 00000 n
-0000788974 00000 n
-0001889396 00000 n
-0000794313 00000 n
-0000792180 00000 n
-0000789276 00000 n
-0000792305 00000 n
-0000792369 00000 n
-0000792434 00000 n
-0000792498 00000 n
-0000792563 00000 n
-0000792628 00000 n
-0000792693 00000 n
-0000792758 00000 n
-0000792823 00000 n
-0000792888 00000 n
-0000792953 00000 n
-0000793018 00000 n
-0000793081 00000 n
-0000793146 00000 n
-0000793211 00000 n
-0000793276 00000 n
-0000793341 00000 n
-0000793406 00000 n
-0000793471 00000 n
-0000793536 00000 n
-0000793601 00000 n
-0000793666 00000 n
-0000793731 00000 n
-0000793795 00000 n
-0000793860 00000 n
-0000793925 00000 n
-0000793990 00000 n
-0000794055 00000 n
-0000794120 00000 n
-0000794185 00000 n
-0000794249 00000 n
-0000800179 00000 n
-0000797461 00000 n
-0000794568 00000 n
-0000797586 00000 n
-0000797650 00000 n
-0000797715 00000 n
-0000797780 00000 n
-0000797845 00000 n
-0000797910 00000 n
-0000797975 00000 n
-0000798040 00000 n
-0000798105 00000 n
-0000798170 00000 n
-0000798234 00000 n
-0000798299 00000 n
-0000798364 00000 n
-0000798429 00000 n
-0000798494 00000 n
-0000798559 00000 n
-0000798624 00000 n
-0000798689 00000 n
-0000798753 00000 n
-0000798818 00000 n
-0000798883 00000 n
-0000798948 00000 n
-0000799013 00000 n
-0000799078 00000 n
-0000799143 00000 n
-0000799208 00000 n
-0000799273 00000 n
-0000799337 00000 n
-0000799402 00000 n
-0000799467 00000 n
-0000799532 00000 n
-0000799597 00000 n
-0000799662 00000 n
-0000799727 00000 n
-0000799791 00000 n
-0000799856 00000 n
-0000799921 00000 n
-0000799986 00000 n
-0000800051 00000 n
-0000800115 00000 n
-0000806061 00000 n
-0000802565 00000 n
-0000800369 00000 n
-0000802690 00000 n
-0000802754 00000 n
-0000802819 00000 n
-0000802884 00000 n
-0000802949 00000 n
-0000803014 00000 n
-0000803079 00000 n
-0000803144 00000 n
-0000803207 00000 n
-0000803272 00000 n
-0000803337 00000 n
-0000803402 00000 n
-0000803467 00000 n
-0000803532 00000 n
-0000803597 00000 n
-0000803662 00000 n
-0000803727 00000 n
-0000803792 00000 n
-0000803857 00000 n
-0000803922 00000 n
-0000803987 00000 n
-0000804052 00000 n
-0000804117 00000 n
-0000804182 00000 n
-0000804247 00000 n
-0000804311 00000 n
-0000804376 00000 n
-0000804441 00000 n
-0000804506 00000 n
-0000804571 00000 n
-0000804636 00000 n
-0000804701 00000 n
-0000804766 00000 n
-0000804831 00000 n
-0000804895 00000 n
-0000804960 00000 n
-0000805025 00000 n
-0000805090 00000 n
-0000805155 00000 n
-0000805219 00000 n
-0000805284 00000 n
-0000805349 00000 n
-0000805414 00000 n
-0000805479 00000 n
-0000805544 00000 n
-0000805609 00000 n
-0000805674 00000 n
-0000805739 00000 n
-0000805803 00000 n
-0000805868 00000 n
-0000805933 00000 n
-0000805997 00000 n
-0000812080 00000 n
-0000808062 00000 n
-0000806225 00000 n
-0000808187 00000 n
-0000808251 00000 n
-0000808316 00000 n
-0000808381 00000 n
-0000808446 00000 n
-0000808511 00000 n
-0000808576 00000 n
-0000808641 00000 n
-0000808706 00000 n
-0000808771 00000 n
-0000808836 00000 n
-0000808901 00000 n
-0000808966 00000 n
-0000809031 00000 n
-0000809096 00000 n
-0000809161 00000 n
-0000809226 00000 n
-0000809290 00000 n
-0000809355 00000 n
-0000809420 00000 n
-0000809485 00000 n
-0000809550 00000 n
-0000809615 00000 n
-0000809680 00000 n
-0000809745 00000 n
-0000809810 00000 n
-0000809874 00000 n
-0000809939 00000 n
-0000810004 00000 n
-0000810069 00000 n
-0000810134 00000 n
-0000810199 00000 n
-0000810264 00000 n
-0000810329 00000 n
-0000810394 00000 n
-0000810458 00000 n
-0000810523 00000 n
-0000810588 00000 n
-0000810653 00000 n
-0000810718 00000 n
-0000810783 00000 n
-0000810848 00000 n
-0000810913 00000 n
+0000682644 00000 n
+0000682709 00000 n
+0000682774 00000 n
+0000682839 00000 n
+0000682904 00000 n
+0000682969 00000 n
+0000683034 00000 n
+0000683099 00000 n
+0000683164 00000 n
+0000683228 00000 n
+0000683293 00000 n
+0000683358 00000 n
+0000683423 00000 n
+0000683488 00000 n
+0000683553 00000 n
+0000683618 00000 n
+0000683683 00000 n
+0000683748 00000 n
+0000683812 00000 n
+0000683877 00000 n
+0000683942 00000 n
+0000684006 00000 n
+0000690117 00000 n
+0000685909 00000 n
+0000684234 00000 n
+0000686034 00000 n
+0000686098 00000 n
+0000686163 00000 n
+0000686227 00000 n
+0000686291 00000 n
+0000686356 00000 n
+0000686421 00000 n
+0000686486 00000 n
+0000686551 00000 n
+0000686616 00000 n
+0000686681 00000 n
+0000686746 00000 n
+0000686811 00000 n
+0000686875 00000 n
+0000686940 00000 n
+0000687005 00000 n
+0000687070 00000 n
+0000687135 00000 n
+0000687200 00000 n
+0000687265 00000 n
+0000687330 00000 n
+0000687395 00000 n
+0000687459 00000 n
+0000687524 00000 n
+0000687589 00000 n
+0000687654 00000 n
+0000687719 00000 n
+0000687784 00000 n
+0000687849 00000 n
+0000687914 00000 n
+0000687979 00000 n
+0000688043 00000 n
+0000688108 00000 n
+0000688173 00000 n
+0000688238 00000 n
+0000688303 00000 n
+0000688368 00000 n
+0000688433 00000 n
+0000688498 00000 n
+0000688563 00000 n
+0000688628 00000 n
+0000688692 00000 n
+0000688757 00000 n
+0000688822 00000 n
+0000688887 00000 n
+0000688952 00000 n
+0000689017 00000 n
+0000689082 00000 n
+0000689147 00000 n
+0000689212 00000 n
+0000689275 00000 n
+0000689340 00000 n
+0000689405 00000 n
+0000689470 00000 n
+0000689535 00000 n
+0000689600 00000 n
+0000689665 00000 n
+0000689730 00000 n
+0000689795 00000 n
+0000689859 00000 n
+0000689924 00000 n
+0000689989 00000 n
+0000690053 00000 n
+0000696179 00000 n
+0000693012 00000 n
+0000690268 00000 n
+0000693137 00000 n
+0000693201 00000 n
+0000693266 00000 n
+0000693330 00000 n
+0000693395 00000 n
+0000693460 00000 n
+0000693525 00000 n
+0000693590 00000 n
+0000693655 00000 n
+0000693720 00000 n
+0000693785 00000 n
+0000693850 00000 n
+0000693914 00000 n
+0000693979 00000 n
+0000694044 00000 n
+0000694109 00000 n
+0000694235 00000 n
+0000694300 00000 n
+0000694364 00000 n
+0000694429 00000 n
+0000694494 00000 n
+0000694559 00000 n
+0000694624 00000 n
+0000694689 00000 n
+0000694754 00000 n
+0000694819 00000 n
+0000694884 00000 n
+0000694948 00000 n
+0000695013 00000 n
+0000695078 00000 n
+0000695143 00000 n
+0000695208 00000 n
+0000695273 00000 n
+0000695338 00000 n
+0000695403 00000 n
+0000695468 00000 n
+0000695533 00000 n
+0000695597 00000 n
+0000695662 00000 n
+0000695727 00000 n
+0000695792 00000 n
+0000695857 00000 n
+0000695921 00000 n
+0000695986 00000 n
+0000696051 00000 n
+0000696115 00000 n
+0000702072 00000 n
+0000698121 00000 n
+0000696395 00000 n
+0000698246 00000 n
+0000698310 00000 n
+0000698375 00000 n
+0000698439 00000 n
+0000698504 00000 n
+0000698569 00000 n
+0000698634 00000 n
+0000698699 00000 n
+0000698764 00000 n
+0000698829 00000 n
+0000698894 00000 n
+0000698959 00000 n
+0000699024 00000 n
+0000699089 00000 n
+0000699154 00000 n
+0000699219 00000 n
+0000699284 00000 n
+0000699347 00000 n
+0000699412 00000 n
+0000699477 00000 n
+0000699542 00000 n
+0000699607 00000 n
+0000699672 00000 n
+0000699737 00000 n
+0000699802 00000 n
+0000699867 00000 n
+0000699931 00000 n
+0000699996 00000 n
+0000700061 00000 n
+0000700126 00000 n
+0000700191 00000 n
+0000700255 00000 n
+0000700320 00000 n
+0000700385 00000 n
+0000700450 00000 n
+0000700515 00000 n
+0000700580 00000 n
+0000700645 00000 n
+0000700710 00000 n
+0000700775 00000 n
+0000700840 00000 n
+0000700905 00000 n
+0000700970 00000 n
+0000701035 00000 n
+0000701100 00000 n
+0000701165 00000 n
+0000701230 00000 n
+0000701295 00000 n
+0000701360 00000 n
+0000701425 00000 n
+0000701489 00000 n
+0000701554 00000 n
+0000701619 00000 n
+0000701684 00000 n
+0000701749 00000 n
+0000701814 00000 n
+0000701879 00000 n
+0000701944 00000 n
+0000702008 00000 n
+0000708016 00000 n
+0000704715 00000 n
+0000702223 00000 n
+0000704840 00000 n
+0000704904 00000 n
+0000704969 00000 n
+0000705033 00000 n
+0000705098 00000 n
+0000705163 00000 n
+0000705228 00000 n
+0000705293 00000 n
+0000705358 00000 n
+0000705423 00000 n
+0000705488 00000 n
+0000705553 00000 n
+0000705617 00000 n
+0000705682 00000 n
+0000705747 00000 n
+0000705812 00000 n
+0000705877 00000 n
+0000705942 00000 n
+0000706007 00000 n
+0000706072 00000 n
+0000706137 00000 n
+0000706201 00000 n
+0000706266 00000 n
+0000706331 00000 n
+0000706396 00000 n
+0000706461 00000 n
+0000706526 00000 n
+0000706591 00000 n
+0000706656 00000 n
+0000706721 00000 n
+0000706786 00000 n
+0000706851 00000 n
+0000706916 00000 n
+0000706981 00000 n
+0000707046 00000 n
+0000707111 00000 n
+0000707174 00000 n
+0000707239 00000 n
+0000707304 00000 n
+0000707369 00000 n
+0000707434 00000 n
+0000707499 00000 n
+0000707564 00000 n
+0000707629 00000 n
+0000707694 00000 n
+0000707758 00000 n
+0000707823 00000 n
+0000707888 00000 n
+0000707952 00000 n
+0001536178 00000 n
+0000714126 00000 n
+0000710505 00000 n
+0000708193 00000 n
+0000710630 00000 n
+0000710694 00000 n
+0000710759 00000 n
+0000710823 00000 n
+0000710888 00000 n
+0000710953 00000 n
+0000711018 00000 n
+0000711082 00000 n
+0000711147 00000 n
+0000711212 00000 n
+0000711277 00000 n
+0000711342 00000 n
+0000711407 00000 n
+0000711472 00000 n
+0000711537 00000 n
+0000711602 00000 n
+0000711667 00000 n
+0000711731 00000 n
+0000711796 00000 n
+0000711861 00000 n
+0000711926 00000 n
+0000711991 00000 n
+0000712056 00000 n
+0000712121 00000 n
+0000712186 00000 n
+0000712251 00000 n
+0000712312 00000 n
+0000712377 00000 n
+0000712442 00000 n
+0000712507 00000 n
+0000712572 00000 n
+0000712637 00000 n
+0000712702 00000 n
+0000712767 00000 n
+0000712832 00000 n
+0000712897 00000 n
+0000712962 00000 n
+0000713027 00000 n
+0000713091 00000 n
+0000713156 00000 n
+0000713221 00000 n
+0000713284 00000 n
+0000713349 00000 n
+0000713414 00000 n
+0000713479 00000 n
+0000713544 00000 n
+0000713609 00000 n
+0000713674 00000 n
+0000713739 00000 n
+0000713804 00000 n
+0000713868 00000 n
+0000713933 00000 n
+0000713998 00000 n
+0000714062 00000 n
+0000720409 00000 n
+0000716526 00000 n
+0000714290 00000 n
+0000716651 00000 n
+0000716715 00000 n
+0000716780 00000 n
+0000716844 00000 n
+0000716909 00000 n
+0000716974 00000 n
+0000717039 00000 n
+0000717104 00000 n
+0000717169 00000 n
+0000717234 00000 n
+0000717299 00000 n
+0000717364 00000 n
+0000717428 00000 n
+0000717493 00000 n
+0000717558 00000 n
+0000717623 00000 n
+0000717688 00000 n
+0000717753 00000 n
+0000717818 00000 n
+0000717883 00000 n
+0000717948 00000 n
+0000718012 00000 n
+0000718077 00000 n
+0000718142 00000 n
+0000718207 00000 n
+0000718272 00000 n
+0000718337 00000 n
+0000718402 00000 n
+0000718467 00000 n
+0000718532 00000 n
+0000718597 00000 n
+0000718661 00000 n
+0000718726 00000 n
+0000718791 00000 n
+0000718856 00000 n
+0000718921 00000 n
+0000718986 00000 n
+0000719051 00000 n
+0000719116 00000 n
+0000719181 00000 n
+0000719246 00000 n
+0000719311 00000 n
+0000719376 00000 n
+0000719441 00000 n
+0000719506 00000 n
+0000719571 00000 n
+0000719636 00000 n
+0000719701 00000 n
+0000719762 00000 n
+0000719827 00000 n
+0000719892 00000 n
+0000719957 00000 n
+0000720022 00000 n
+0000720087 00000 n
+0000720152 00000 n
+0000720217 00000 n
+0000720282 00000 n
+0000720345 00000 n
+0000726398 00000 n
+0000722382 00000 n
+0000720573 00000 n
+0000722507 00000 n
+0000722571 00000 n
+0000722636 00000 n
+0000722700 00000 n
+0000722765 00000 n
+0000722830 00000 n
+0000722895 00000 n
+0000722960 00000 n
+0000723025 00000 n
+0000723090 00000 n
+0000723155 00000 n
+0000723220 00000 n
+0000723285 00000 n
+0000723350 00000 n
+0000723415 00000 n
+0000723480 00000 n
+0000723544 00000 n
+0000723609 00000 n
+0000723674 00000 n
+0000723739 00000 n
+0000723804 00000 n
+0000723869 00000 n
+0000723934 00000 n
+0000723999 00000 n
+0000724064 00000 n
+0000724128 00000 n
+0000724193 00000 n
+0000724258 00000 n
+0000724323 00000 n
+0000724388 00000 n
+0000724453 00000 n
+0000724518 00000 n
+0000724583 00000 n
+0000724648 00000 n
+0000724712 00000 n
+0000724777 00000 n
+0000724842 00000 n
+0000724907 00000 n
+0000724972 00000 n
+0000725037 00000 n
+0000725102 00000 n
+0000725167 00000 n
+0000725232 00000 n
+0000725296 00000 n
+0000725361 00000 n
+0000725426 00000 n
+0000725491 00000 n
+0000725556 00000 n
+0000725621 00000 n
+0000725686 00000 n
+0000725751 00000 n
+0000725816 00000 n
+0000725881 00000 n
+0000725946 00000 n
+0000726011 00000 n
+0000726076 00000 n
+0000726140 00000 n
+0000726205 00000 n
+0000726270 00000 n
+0000726334 00000 n
+0000729793 00000 n
+0000731893 00000 n
+0000729620 00000 n
+0000726549 00000 n
+0000729951 00000 n
+0000730015 00000 n
+0000730080 00000 n
+0000730145 00000 n
+0000730210 00000 n
+0000730275 00000 n
+0000730340 00000 n
+0000730405 00000 n
+0000730470 00000 n
+0000730534 00000 n
+0000730599 00000 n
+0000730664 00000 n
+0000730729 00000 n
+0000730794 00000 n
+0000730858 00000 n
+0000730923 00000 n
+0000730988 00000 n
+0000731053 00000 n
+0000731180 00000 n
+0000731245 00000 n
+0000731309 00000 n
+0000731374 00000 n
+0000731439 00000 n
+0000731504 00000 n
+0000731569 00000 n
+0000731634 00000 n
+0000731699 00000 n
+0000731764 00000 n
+0000731829 00000 n
+0000729762 00000 n
+0000738026 00000 n
+0000734726 00000 n
+0000732148 00000 n
+0000734851 00000 n
+0000734915 00000 n
+0000734980 00000 n
+0000735044 00000 n
+0000735109 00000 n
+0000735174 00000 n
+0000735239 00000 n
+0000735304 00000 n
+0000735369 00000 n
+0000735434 00000 n
+0000735499 00000 n
+0000735564 00000 n
+0000735628 00000 n
+0000735693 00000 n
+0000735758 00000 n
+0000735823 00000 n
+0000735888 00000 n
+0000735953 00000 n
+0000736018 00000 n
+0000736083 00000 n
+0000736148 00000 n
+0000736213 00000 n
+0000736277 00000 n
+0000736342 00000 n
+0000736407 00000 n
+0000736472 00000 n
+0000736537 00000 n
+0000736601 00000 n
+0000736666 00000 n
+0000736731 00000 n
+0000736796 00000 n
+0000736861 00000 n
+0000736926 00000 n
+0000736990 00000 n
+0000737055 00000 n
+0000737120 00000 n
+0000737185 00000 n
+0000737250 00000 n
+0000737315 00000 n
+0000737380 00000 n
+0000737444 00000 n
+0000737509 00000 n
+0000737574 00000 n
+0000737639 00000 n
+0000737704 00000 n
+0000737769 00000 n
+0000737834 00000 n
+0000737899 00000 n
+0000743368 00000 n
+0000740779 00000 n
+0000738203 00000 n
+0000740904 00000 n
+0000740968 00000 n
+0000741033 00000 n
+0000741098 00000 n
+0000741163 00000 n
+0000741228 00000 n
+0000741293 00000 n
+0000741357 00000 n
+0000741422 00000 n
+0000741487 00000 n
+0000741552 00000 n
+0000741617 00000 n
+0000741681 00000 n
+0000741746 00000 n
+0000741811 00000 n
+0000741876 00000 n
+0000741941 00000 n
+0000742006 00000 n
+0000742071 00000 n
+0000742135 00000 n
+0000742200 00000 n
+0000742265 00000 n
+0000742330 00000 n
+0000742395 00000 n
+0000742460 00000 n
+0000742525 00000 n
+0000742590 00000 n
+0000742655 00000 n
+0000742718 00000 n
+0000742783 00000 n
+0000742848 00000 n
+0000742913 00000 n
+0000742978 00000 n
+0000743043 00000 n
+0000743108 00000 n
+0000743173 00000 n
+0000743238 00000 n
+0000743303 00000 n
+0000749373 00000 n
+0000745811 00000 n
+0000743558 00000 n
+0000745936 00000 n
+0000746000 00000 n
+0000746065 00000 n
+0000746129 00000 n
+0000746194 00000 n
+0000746259 00000 n
+0000746324 00000 n
+0000746389 00000 n
+0000746454 00000 n
+0000746519 00000 n
+0000746584 00000 n
+0000746649 00000 n
+0000746714 00000 n
+0000746779 00000 n
+0000746844 00000 n
+0000746909 00000 n
+0000746974 00000 n
+0000747039 00000 n
+0000747104 00000 n
+0000747169 00000 n
+0000747234 00000 n
+0000747299 00000 n
+0000747364 00000 n
+0000747429 00000 n
+0000747493 00000 n
+0000747558 00000 n
+0000747623 00000 n
+0000747688 00000 n
+0000747753 00000 n
+0000747818 00000 n
+0000747883 00000 n
+0000747948 00000 n
+0000748013 00000 n
+0000748078 00000 n
+0000748143 00000 n
+0000748208 00000 n
+0000748272 00000 n
+0000748337 00000 n
+0000748401 00000 n
+0000748466 00000 n
+0000748531 00000 n
+0000748596 00000 n
+0000748661 00000 n
+0000748726 00000 n
+0000748791 00000 n
+0000748856 00000 n
+0000748921 00000 n
+0000748986 00000 n
+0000749051 00000 n
+0000749116 00000 n
+0000749180 00000 n
+0000749245 00000 n
+0000749309 00000 n
+0000754999 00000 n
+0000752675 00000 n
+0000749550 00000 n
+0000752800 00000 n
+0000752864 00000 n
+0000752929 00000 n
+0000752994 00000 n
+0000753059 00000 n
+0000753122 00000 n
+0000753187 00000 n
+0000753252 00000 n
+0000753317 00000 n
+0000753382 00000 n
+0000753447 00000 n
+0000753512 00000 n
+0000753577 00000 n
+0000753642 00000 n
+0000753707 00000 n
+0000753772 00000 n
+0000753837 00000 n
+0000753901 00000 n
+0000753966 00000 n
+0000754031 00000 n
+0000754096 00000 n
+0000754161 00000 n
+0000754226 00000 n
+0000754291 00000 n
+0000754356 00000 n
+0000754421 00000 n
+0000754485 00000 n
+0000754550 00000 n
+0000754615 00000 n
+0000754741 00000 n
+0000754806 00000 n
+0000754871 00000 n
+0000754935 00000 n
+0000761181 00000 n
+0000758269 00000 n
+0000755228 00000 n
+0000758394 00000 n
+0000758458 00000 n
+0000758523 00000 n
+0000758587 00000 n
+0000758652 00000 n
+0000758717 00000 n
+0000758781 00000 n
+0000758846 00000 n
+0000758911 00000 n
+0000758976 00000 n
+0000759041 00000 n
+0000759106 00000 n
+0000759171 00000 n
+0000759236 00000 n
+0000759301 00000 n
+0000759366 00000 n
+0000759431 00000 n
+0000759496 00000 n
+0000759561 00000 n
+0000759626 00000 n
+0000759691 00000 n
+0000759756 00000 n
+0000759821 00000 n
+0000759886 00000 n
+0000759951 00000 n
+0000760015 00000 n
+0000760080 00000 n
+0000760145 00000 n
+0000760209 00000 n
+0000760274 00000 n
+0000760339 00000 n
+0000760404 00000 n
+0000760469 00000 n
+0000760534 00000 n
+0000760599 00000 n
+0000760664 00000 n
+0000760729 00000 n
+0000760794 00000 n
+0000760858 00000 n
+0000760923 00000 n
+0000760988 00000 n
+0000761053 00000 n
+0000761117 00000 n
+0000767338 00000 n
+0000763972 00000 n
+0000761397 00000 n
+0000764097 00000 n
+0000764161 00000 n
+0000764226 00000 n
+0000764290 00000 n
+0000764355 00000 n
+0000764420 00000 n
+0000764485 00000 n
+0000764550 00000 n
+0000764615 00000 n
+0000764680 00000 n
+0000764745 00000 n
+0000764810 00000 n
+0000764874 00000 n
+0000764939 00000 n
+0000765004 00000 n
+0000765069 00000 n
+0000765134 00000 n
+0000765199 00000 n
+0000765263 00000 n
+0000765328 00000 n
+0000765393 00000 n
+0000765457 00000 n
+0000765522 00000 n
+0000765587 00000 n
+0000765652 00000 n
+0000765717 00000 n
+0000765782 00000 n
+0000765847 00000 n
+0000765912 00000 n
+0000765977 00000 n
+0000766041 00000 n
+0000766106 00000 n
+0000766171 00000 n
+0000766236 00000 n
+0000766301 00000 n
+0000766366 00000 n
+0000766431 00000 n
+0000766496 00000 n
+0000766561 00000 n
+0000766625 00000 n
+0000766690 00000 n
+0000766755 00000 n
+0000766820 00000 n
+0000766885 00000 n
+0000766950 00000 n
+0000767015 00000 n
+0000767080 00000 n
+0000767145 00000 n
+0000767210 00000 n
+0000767274 00000 n
+0001536343 00000 n
+0000772556 00000 n
+0000769382 00000 n
+0000767515 00000 n
+0000769507 00000 n
+0000769571 00000 n
+0000769636 00000 n
+0000769701 00000 n
+0000769766 00000 n
+0000769831 00000 n
+0000769896 00000 n
+0000769961 00000 n
+0000770026 00000 n
+0000770091 00000 n
+0000770156 00000 n
+0000770221 00000 n
+0000770286 00000 n
+0000770351 00000 n
+0000770416 00000 n
+0000770481 00000 n
+0000770546 00000 n
+0000770611 00000 n
+0000770676 00000 n
+0000770741 00000 n
+0000770806 00000 n
+0000770870 00000 n
+0000770935 00000 n
+0000771000 00000 n
+0000771065 00000 n
+0000771130 00000 n
+0000771195 00000 n
+0000771260 00000 n
+0000771325 00000 n
+0000771390 00000 n
+0000771455 00000 n
+0000771520 00000 n
+0000771585 00000 n
+0000771650 00000 n
+0000771714 00000 n
+0000771779 00000 n
+0000771844 00000 n
+0000771909 00000 n
+0000771974 00000 n
+0000772038 00000 n
+0000772103 00000 n
+0000772168 00000 n
+0000772233 00000 n
+0000772298 00000 n
+0000772363 00000 n
+0000772428 00000 n
+0000772492 00000 n
+0000778130 00000 n
+0000774894 00000 n
+0000772720 00000 n
+0000775019 00000 n
+0000775083 00000 n
+0000775148 00000 n
+0000775212 00000 n
+0000775277 00000 n
+0000775342 00000 n
+0000775407 00000 n
+0000775472 00000 n
+0000775537 00000 n
+0000775602 00000 n
+0000775666 00000 n
+0000775731 00000 n
+0000775796 00000 n
+0000775861 00000 n
+0000775926 00000 n
+0000775991 00000 n
+0000776056 00000 n
+0000776121 00000 n
+0000776186 00000 n
+0000776251 00000 n
+0000776316 00000 n
+0000776381 00000 n
+0000776446 00000 n
+0000776511 00000 n
+0000776575 00000 n
+0000776640 00000 n
+0000776705 00000 n
+0000776770 00000 n
+0000776835 00000 n
+0000776899 00000 n
+0000776964 00000 n
+0000777029 00000 n
+0000777094 00000 n
+0000777159 00000 n
+0000777224 00000 n
+0000777289 00000 n
+0000777354 00000 n
+0000777419 00000 n
+0000777484 00000 n
+0000777548 00000 n
+0000777613 00000 n
+0000777678 00000 n
+0000777743 00000 n
+0000777808 00000 n
+0000777872 00000 n
+0000777937 00000 n
+0000778002 00000 n
+0000778066 00000 n
+0000784406 00000 n
+0000781560 00000 n
+0000778294 00000 n
+0000781685 00000 n
+0000781749 00000 n
+0000781814 00000 n
+0000781878 00000 n
+0000781943 00000 n
+0000782008 00000 n
+0000782073 00000 n
+0000782138 00000 n
+0000782203 00000 n
+0000782268 00000 n
+0000782332 00000 n
+0000782397 00000 n
+0000782462 00000 n
+0000782527 00000 n
+0000782592 00000 n
+0000782657 00000 n
+0000782722 00000 n
+0000782787 00000 n
+0000782852 00000 n
+0000782917 00000 n
+0000782982 00000 n
+0000783046 00000 n
+0000783111 00000 n
+0000783176 00000 n
+0000783241 00000 n
+0000783306 00000 n
+0000783370 00000 n
+0000783435 00000 n
+0000783500 00000 n
+0000783565 00000 n
+0000783630 00000 n
+0000783695 00000 n
+0000783760 00000 n
+0000783825 00000 n
+0000783890 00000 n
+0000783955 00000 n
+0000784019 00000 n
+0000784084 00000 n
+0000784148 00000 n
+0000784213 00000 n
+0000784278 00000 n
+0000784342 00000 n
+0000790259 00000 n
+0000787087 00000 n
+0000784622 00000 n
+0000787212 00000 n
+0000787276 00000 n
+0000787341 00000 n
+0000787406 00000 n
+0000787471 00000 n
+0000787536 00000 n
+0000787601 00000 n
+0000787666 00000 n
+0000787731 00000 n
+0000787796 00000 n
+0000787861 00000 n
+0000787926 00000 n
+0000787990 00000 n
+0000788055 00000 n
+0000788120 00000 n
+0000788185 00000 n
+0000788250 00000 n
+0000788315 00000 n
+0000788380 00000 n
+0000788445 00000 n
+0000788510 00000 n
+0000788574 00000 n
+0000788639 00000 n
+0000788704 00000 n
+0000788769 00000 n
+0000788834 00000 n
+0000788899 00000 n
+0000788964 00000 n
+0000789029 00000 n
+0000789094 00000 n
+0000789159 00000 n
+0000789224 00000 n
+0000789289 00000 n
+0000789354 00000 n
+0000789419 00000 n
+0000789484 00000 n
+0000789548 00000 n
+0000789612 00000 n
+0000789677 00000 n
+0000789742 00000 n
+0000789807 00000 n
+0000789872 00000 n
+0000789937 00000 n
+0000790002 00000 n
+0000790066 00000 n
+0000790131 00000 n
+0000790195 00000 n
+0000796177 00000 n
+0000792942 00000 n
+0000790436 00000 n
+0000793067 00000 n
+0000793131 00000 n
+0000793196 00000 n
+0000793260 00000 n
+0000793325 00000 n
+0000793390 00000 n
+0000793455 00000 n
+0000793520 00000 n
+0000793585 00000 n
+0000793650 00000 n
+0000793715 00000 n
+0000793780 00000 n
+0000793844 00000 n
+0000793909 00000 n
+0000793974 00000 n
+0000794039 00000 n
+0000794103 00000 n
+0000794168 00000 n
+0000794233 00000 n
+0000794298 00000 n
+0000794363 00000 n
+0000794428 00000 n
+0000794493 00000 n
+0000794558 00000 n
+0000794623 00000 n
+0000794687 00000 n
+0000794752 00000 n
+0000794817 00000 n
+0000794882 00000 n
+0000794947 00000 n
+0000795012 00000 n
+0000795077 00000 n
+0000795142 00000 n
+0000795207 00000 n
+0000795272 00000 n
+0000795337 00000 n
+0000795402 00000 n
+0000795467 00000 n
+0000795532 00000 n
+0000795596 00000 n
+0000795661 00000 n
+0000795726 00000 n
+0000795791 00000 n
+0000795856 00000 n
+0000795921 00000 n
+0000795986 00000 n
+0000796051 00000 n
+0000796115 00000 n
+0000802177 00000 n
+0000798484 00000 n
+0000796380 00000 n
+0000798609 00000 n
+0000798673 00000 n
+0000798738 00000 n
+0000798802 00000 n
+0000798867 00000 n
+0000798932 00000 n
+0000798997 00000 n
+0000799062 00000 n
+0000799127 00000 n
+0000799192 00000 n
+0000799257 00000 n
+0000799322 00000 n
+0000799387 00000 n
+0000799452 00000 n
+0000799517 00000 n
+0000799582 00000 n
+0000799647 00000 n
+0000799711 00000 n
+0000799776 00000 n
+0000799841 00000 n
+0000799906 00000 n
+0000799971 00000 n
+0000800036 00000 n
+0000800101 00000 n
+0000800166 00000 n
+0000800231 00000 n
+0000800295 00000 n
+0000800360 00000 n
+0000800425 00000 n
+0000800490 00000 n
+0000800555 00000 n
+0000800620 00000 n
+0000800685 00000 n
+0000800750 00000 n
+0000800815 00000 n
+0000800880 00000 n
+0000800945 00000 n
+0000801010 00000 n
+0000801075 00000 n
+0000801140 00000 n
+0000801205 00000 n
+0000801270 00000 n
+0000801335 00000 n
+0000801400 00000 n
+0000801465 00000 n
+0000801530 00000 n
+0000801595 00000 n
+0000801659 00000 n
+0000801724 00000 n
+0000801789 00000 n
+0000801854 00000 n
+0000801919 00000 n
+0000801984 00000 n
+0000802049 00000 n
+0000802113 00000 n
+0000808237 00000 n
+0000805001 00000 n
+0000802341 00000 n
+0000805126 00000 n
+0000805190 00000 n
+0000805255 00000 n
+0000805319 00000 n
+0000805384 00000 n
+0000805449 00000 n
+0000805514 00000 n
+0000805579 00000 n
+0000805644 00000 n
+0000805709 00000 n
+0000805774 00000 n
+0000805839 00000 n
+0000805904 00000 n
+0000805969 00000 n
+0000806033 00000 n
+0000806098 00000 n
+0000806163 00000 n
+0000806228 00000 n
+0000806293 00000 n
+0000806358 00000 n
+0000806423 00000 n
+0000806488 00000 n
+0000806553 00000 n
+0000806617 00000 n
+0000806682 00000 n
+0000806745 00000 n
+0000806810 00000 n
+0000806875 00000 n
+0000806940 00000 n
+0000807005 00000 n
+0000807070 00000 n
+0000807135 00000 n
+0000807200 00000 n
+0000807265 00000 n
+0000807330 00000 n
+0000807395 00000 n
+0000807460 00000 n
+0000807525 00000 n
+0000807590 00000 n
+0000807655 00000 n
+0000807720 00000 n
+0000807785 00000 n
+0000807850 00000 n
+0000807915 00000 n
+0000807979 00000 n
+0000808044 00000 n
+0000808109 00000 n
+0000808173 00000 n
+0000813701 00000 n
+0000810789 00000 n
+0000808427 00000 n
+0000810914 00000 n
0000810978 00000 n
0000811043 00000 n
-0000811108 00000 n
-0000811173 00000 n
-0000811238 00000 n
-0000811303 00000 n
-0000811368 00000 n
-0000811433 00000 n
-0000811498 00000 n
-0000811563 00000 n
-0000811628 00000 n
-0000811692 00000 n
-0000811757 00000 n
-0000811822 00000 n
-0000811887 00000 n
-0000811952 00000 n
-0000812016 00000 n
-0000817812 00000 n
-0000814246 00000 n
-0000812244 00000 n
-0000814371 00000 n
-0000814435 00000 n
-0000814500 00000 n
-0000814565 00000 n
-0000814630 00000 n
-0000814695 00000 n
-0000814760 00000 n
-0000814825 00000 n
-0000814890 00000 n
-0000814955 00000 n
-0000815019 00000 n
-0000815084 00000 n
-0000815149 00000 n
-0000815214 00000 n
-0000815279 00000 n
-0000815344 00000 n
-0000815409 00000 n
-0000815474 00000 n
-0000815539 00000 n
-0000815604 00000 n
-0000815669 00000 n
-0000815734 00000 n
-0000815799 00000 n
-0000815864 00000 n
-0000815929 00000 n
-0000815994 00000 n
-0000816058 00000 n
-0000816123 00000 n
-0000816188 00000 n
-0000816253 00000 n
-0000816318 00000 n
-0000816383 00000 n
-0000816448 00000 n
-0000816513 00000 n
-0000816578 00000 n
-0000816643 00000 n
-0000816708 00000 n
-0000816773 00000 n
-0000816838 00000 n
-0000816903 00000 n
-0000816968 00000 n
-0000817033 00000 n
-0000817098 00000 n
-0000817163 00000 n
-0000817228 00000 n
-0000817292 00000 n
-0000817357 00000 n
-0000817422 00000 n
-0000817487 00000 n
-0000817552 00000 n
-0000817617 00000 n
-0000817682 00000 n
-0000817747 00000 n
-0000823474 00000 n
-0000820494 00000 n
-0000817989 00000 n
-0000820619 00000 n
-0000820683 00000 n
-0000820748 00000 n
-0000820812 00000 n
-0000820877 00000 n
-0000820942 00000 n
-0000821007 00000 n
-0000821072 00000 n
-0000821137 00000 n
-0000821202 00000 n
-0000821267 00000 n
-0000821332 00000 n
-0000821396 00000 n
-0000821461 00000 n
-0000821526 00000 n
-0000821591 00000 n
-0000821656 00000 n
-0000821721 00000 n
-0000821786 00000 n
-0000821851 00000 n
-0000821916 00000 n
-0000821981 00000 n
-0000822046 00000 n
-0000822111 00000 n
-0000822176 00000 n
-0000822241 00000 n
-0000822306 00000 n
-0000822371 00000 n
-0000822436 00000 n
-0000822500 00000 n
-0000822565 00000 n
-0000822630 00000 n
-0000822695 00000 n
-0000822760 00000 n
-0000822825 00000 n
-0000822890 00000 n
-0000822955 00000 n
-0000823019 00000 n
-0000823084 00000 n
-0000823149 00000 n
-0000823214 00000 n
-0000823279 00000 n
-0000823344 00000 n
-0000823409 00000 n
-0000829106 00000 n
-0000825348 00000 n
-0000823664 00000 n
-0000825473 00000 n
-0000825537 00000 n
-0000825602 00000 n
-0000825667 00000 n
-0000825732 00000 n
-0000825797 00000 n
-0000825862 00000 n
-0000825927 00000 n
-0000825992 00000 n
-0000826057 00000 n
-0000826121 00000 n
-0000826186 00000 n
-0000826251 00000 n
-0000826316 00000 n
-0000826381 00000 n
-0000826446 00000 n
-0000826511 00000 n
-0000826576 00000 n
-0000826641 00000 n
-0000826706 00000 n
-0000826771 00000 n
-0000826836 00000 n
-0000826901 00000 n
-0000826966 00000 n
-0000827031 00000 n
-0000827095 00000 n
-0000827160 00000 n
-0000827225 00000 n
-0000827290 00000 n
-0000827355 00000 n
-0000827420 00000 n
-0000827485 00000 n
-0000827550 00000 n
-0000827615 00000 n
-0000827679 00000 n
-0000827744 00000 n
-0000827809 00000 n
-0000827874 00000 n
-0000827939 00000 n
-0000828004 00000 n
-0000828069 00000 n
-0000828134 00000 n
-0000828199 00000 n
-0000828263 00000 n
-0000828328 00000 n
-0000828393 00000 n
-0000828458 00000 n
-0000828523 00000 n
-0000828587 00000 n
-0000828652 00000 n
-0000828717 00000 n
-0000828782 00000 n
-0000828847 00000 n
-0000828912 00000 n
-0000828977 00000 n
-0000829042 00000 n
-0000836123 00000 n
-0000832560 00000 n
-0000829270 00000 n
-0000832685 00000 n
-0000832749 00000 n
-0000832814 00000 n
-0000832879 00000 n
-0000832944 00000 n
-0000833009 00000 n
-0000833074 00000 n
-0000833139 00000 n
-0000833204 00000 n
-0000833269 00000 n
-0000833333 00000 n
-0000833398 00000 n
-0000833463 00000 n
-0000833528 00000 n
-0000833593 00000 n
-0000833658 00000 n
-0000833723 00000 n
-0000833788 00000 n
-0000833853 00000 n
-0000833917 00000 n
-0000833982 00000 n
-0000834047 00000 n
-0000834112 00000 n
-0000834177 00000 n
-0000834242 00000 n
-0000834307 00000 n
-0000834372 00000 n
-0000834437 00000 n
-0000834500 00000 n
-0000834565 00000 n
-0000834630 00000 n
-0000834695 00000 n
-0000834760 00000 n
-0000834825 00000 n
-0000834890 00000 n
-0000834955 00000 n
-0000835020 00000 n
-0000835084 00000 n
-0000835149 00000 n
-0000835214 00000 n
-0000835279 00000 n
-0000835344 00000 n
-0000835409 00000 n
-0000835474 00000 n
-0000835539 00000 n
-0000835604 00000 n
-0000835668 00000 n
-0000835733 00000 n
-0000835798 00000 n
-0000835863 00000 n
-0000835928 00000 n
-0000835993 00000 n
-0000836058 00000 n
-0000843199 00000 n
-0000840029 00000 n
-0000836314 00000 n
-0000840154 00000 n
-0000840218 00000 n
-0000840283 00000 n
-0000840348 00000 n
-0000840412 00000 n
-0000840477 00000 n
-0000840542 00000 n
-0000840607 00000 n
-0000840672 00000 n
-0000840737 00000 n
-0000840802 00000 n
-0000840867 00000 n
-0000840932 00000 n
-0000840995 00000 n
-0000841060 00000 n
-0000841125 00000 n
-0000841190 00000 n
-0000841254 00000 n
-0000841319 00000 n
-0000841384 00000 n
-0000841449 00000 n
-0000841514 00000 n
-0000841579 00000 n
-0000841644 00000 n
-0000841709 00000 n
-0000841774 00000 n
-0000841838 00000 n
-0000841903 00000 n
-0000841968 00000 n
-0000842033 00000 n
-0000842098 00000 n
-0000842163 00000 n
-0000842228 00000 n
-0000842293 00000 n
-0000842358 00000 n
-0000842423 00000 n
-0000842487 00000 n
-0000842552 00000 n
-0000842617 00000 n
-0000842682 00000 n
-0000842747 00000 n
-0000842811 00000 n
-0000842876 00000 n
-0000842941 00000 n
-0000843006 00000 n
-0000843071 00000 n
-0000843135 00000 n
-0000848851 00000 n
-0000845418 00000 n
-0000843416 00000 n
-0000845543 00000 n
-0000845607 00000 n
-0000845672 00000 n
-0000845737 00000 n
-0000845802 00000 n
-0000845867 00000 n
-0000845932 00000 n
-0000845997 00000 n
-0000846061 00000 n
-0000846126 00000 n
-0000846191 00000 n
-0000846256 00000 n
-0000846321 00000 n
-0000846386 00000 n
-0000846451 00000 n
-0000846516 00000 n
-0000846581 00000 n
-0000846645 00000 n
-0000846710 00000 n
-0000846775 00000 n
-0000846840 00000 n
-0000846905 00000 n
-0000846970 00000 n
-0000847035 00000 n
-0000847100 00000 n
-0000847165 00000 n
-0000847230 00000 n
-0000847294 00000 n
-0000847359 00000 n
-0000847424 00000 n
-0000847489 00000 n
-0000847554 00000 n
-0000847619 00000 n
-0000847684 00000 n
-0000847749 00000 n
-0000847814 00000 n
-0000847879 00000 n
-0000847944 00000 n
-0000848009 00000 n
-0000848074 00000 n
-0000848138 00000 n
-0000848203 00000 n
-0000848268 00000 n
-0000848333 00000 n
-0000848398 00000 n
-0000848463 00000 n
-0000848528 00000 n
-0000848593 00000 n
-0000848658 00000 n
-0000848721 00000 n
-0000848786 00000 n
-0001889561 00000 n
-0000854501 00000 n
-0000851327 00000 n
-0000849028 00000 n
-0000851452 00000 n
-0000851516 00000 n
-0000851581 00000 n
-0000851646 00000 n
-0000851711 00000 n
-0000851776 00000 n
-0000851841 00000 n
-0000851906 00000 n
-0000851971 00000 n
-0000852036 00000 n
-0000852100 00000 n
-0000852165 00000 n
-0000852230 00000 n
-0000852295 00000 n
-0000852360 00000 n
-0000852425 00000 n
-0000852490 00000 n
-0000852555 00000 n
-0000852620 00000 n
-0000852685 00000 n
-0000852750 00000 n
-0000852814 00000 n
-0000852879 00000 n
-0000852944 00000 n
-0000853009 00000 n
-0000853074 00000 n
-0000853139 00000 n
-0000853204 00000 n
-0000853268 00000 n
-0000853333 00000 n
-0000853398 00000 n
-0000853463 00000 n
-0000853528 00000 n
-0000853593 00000 n
-0000853658 00000 n
-0000853723 00000 n
-0000853788 00000 n
-0000853853 00000 n
-0000853918 00000 n
-0000853983 00000 n
-0000854048 00000 n
-0000854113 00000 n
-0000854178 00000 n
-0000854243 00000 n
-0000854308 00000 n
-0000854373 00000 n
-0000854437 00000 n
-0000860341 00000 n
-0000857103 00000 n
-0000854691 00000 n
-0000857228 00000 n
-0000857292 00000 n
-0000857357 00000 n
-0000857422 00000 n
-0000857487 00000 n
-0000857552 00000 n
-0000857617 00000 n
-0000857682 00000 n
-0000857747 00000 n
-0000857812 00000 n
-0000857877 00000 n
-0000857942 00000 n
-0000858007 00000 n
-0000858072 00000 n
-0000858137 00000 n
-0000858201 00000 n
-0000858266 00000 n
-0000858331 00000 n
-0000858396 00000 n
-0000858461 00000 n
-0000858526 00000 n
-0000858591 00000 n
-0000858656 00000 n
-0000858721 00000 n
-0000858786 00000 n
-0000858851 00000 n
-0000858916 00000 n
-0000858981 00000 n
-0000859046 00000 n
-0000859111 00000 n
-0000859176 00000 n
-0000859241 00000 n
-0000859306 00000 n
-0000859370 00000 n
-0000859435 00000 n
-0000859500 00000 n
-0000859565 00000 n
-0000859630 00000 n
-0000859695 00000 n
-0000859760 00000 n
-0000859824 00000 n
-0000859889 00000 n
-0000859954 00000 n
-0000860019 00000 n
-0000860084 00000 n
-0000860148 00000 n
-0000860213 00000 n
-0000860277 00000 n
-0000865897 00000 n
-0000862918 00000 n
-0000860505 00000 n
-0000863043 00000 n
-0000863107 00000 n
-0000863172 00000 n
-0000863237 00000 n
-0000863302 00000 n
-0000863367 00000 n
-0000863432 00000 n
-0000863497 00000 n
-0000863560 00000 n
-0000863625 00000 n
-0000863690 00000 n
-0000863755 00000 n
-0000863820 00000 n
-0000863885 00000 n
-0000863950 00000 n
-0000864015 00000 n
-0000864080 00000 n
-0000864145 00000 n
-0000864210 00000 n
-0000864274 00000 n
-0000864339 00000 n
-0000864404 00000 n
-0000864469 00000 n
-0000864534 00000 n
-0000864599 00000 n
-0000864664 00000 n
-0000864729 00000 n
-0000864794 00000 n
-0000864859 00000 n
-0000864924 00000 n
-0000864989 00000 n
-0000865054 00000 n
-0000865119 00000 n
-0000865184 00000 n
-0000865249 00000 n
-0000865313 00000 n
-0000865378 00000 n
-0000865443 00000 n
-0000865508 00000 n
-0000865573 00000 n
-0000865638 00000 n
-0000865703 00000 n
-0000865768 00000 n
-0000865833 00000 n
-0000871920 00000 n
-0000868228 00000 n
-0000866087 00000 n
-0000868353 00000 n
-0000868417 00000 n
-0000868482 00000 n
-0000868547 00000 n
-0000868612 00000 n
-0000868677 00000 n
-0000868742 00000 n
-0000868807 00000 n
-0000868872 00000 n
-0000868937 00000 n
-0000869001 00000 n
-0000869066 00000 n
-0000869131 00000 n
-0000869196 00000 n
-0000869261 00000 n
-0000869326 00000 n
-0000869391 00000 n
-0000869456 00000 n
-0000869521 00000 n
-0000869585 00000 n
-0000869650 00000 n
-0000869715 00000 n
-0000869780 00000 n
-0000869845 00000 n
-0000869910 00000 n
-0000869974 00000 n
-0000870039 00000 n
-0000870104 00000 n
-0000870169 00000 n
-0000870234 00000 n
-0000870299 00000 n
-0000870364 00000 n
-0000870428 00000 n
-0000870493 00000 n
-0000870558 00000 n
-0000870623 00000 n
-0000870688 00000 n
-0000870753 00000 n
-0000870818 00000 n
-0000870883 00000 n
-0000870948 00000 n
-0000871013 00000 n
-0000871078 00000 n
-0000871143 00000 n
-0000871208 00000 n
-0000871273 00000 n
-0000871338 00000 n
-0000871403 00000 n
-0000871468 00000 n
-0000871532 00000 n
-0000871597 00000 n
-0000871662 00000 n
-0000871727 00000 n
-0000871792 00000 n
-0000871856 00000 n
-0000877023 00000 n
-0000873721 00000 n
-0000872097 00000 n
-0000873846 00000 n
-0000873910 00000 n
-0000873975 00000 n
-0000874040 00000 n
-0000874105 00000 n
-0000874170 00000 n
-0000874235 00000 n
-0000874300 00000 n
-0000874365 00000 n
-0000874430 00000 n
-0000874495 00000 n
-0000874560 00000 n
-0000874625 00000 n
-0000874690 00000 n
-0000874755 00000 n
-0000874820 00000 n
-0000874885 00000 n
-0000874950 00000 n
-0000875014 00000 n
-0000875079 00000 n
-0000875144 00000 n
-0000875209 00000 n
-0000875274 00000 n
-0000875339 00000 n
-0000875404 00000 n
-0000875469 00000 n
-0000875534 00000 n
-0000875598 00000 n
-0000875663 00000 n
-0000875728 00000 n
-0000875793 00000 n
-0000875858 00000 n
-0000875923 00000 n
-0000875988 00000 n
-0000876053 00000 n
-0000876118 00000 n
-0000876183 00000 n
-0000876247 00000 n
-0000876312 00000 n
-0000876377 00000 n
-0000876442 00000 n
-0000876507 00000 n
-0000876572 00000 n
-0000876637 00000 n
-0000876702 00000 n
-0000876829 00000 n
-0000876894 00000 n
-0000876959 00000 n
-0000882471 00000 n
-0000879753 00000 n
-0000877200 00000 n
-0000879878 00000 n
-0000879942 00000 n
-0000880007 00000 n
-0000880072 00000 n
-0000880137 00000 n
-0000880202 00000 n
-0000880267 00000 n
-0000880332 00000 n
-0000880397 00000 n
-0000880462 00000 n
-0000880526 00000 n
-0000880591 00000 n
-0000880656 00000 n
-0000880721 00000 n
-0000880786 00000 n
-0000880851 00000 n
-0000880916 00000 n
-0000880981 00000 n
-0000881046 00000 n
-0000881111 00000 n
-0000881176 00000 n
-0000881241 00000 n
-0000881306 00000 n
-0000881371 00000 n
-0000881435 00000 n
-0000881500 00000 n
-0000881565 00000 n
-0000881630 00000 n
-0000881694 00000 n
-0000881759 00000 n
-0000881824 00000 n
-0000881889 00000 n
-0000881954 00000 n
-0000882019 00000 n
-0000882084 00000 n
-0000882149 00000 n
-0000882214 00000 n
-0000882278 00000 n
-0000882343 00000 n
-0000882407 00000 n
-0000888247 00000 n
-0000884554 00000 n
-0000882661 00000 n
-0000884679 00000 n
-0000884743 00000 n
-0000884808 00000 n
-0000884873 00000 n
-0000884938 00000 n
-0000885003 00000 n
-0000885068 00000 n
-0000885133 00000 n
-0000885198 00000 n
-0000885263 00000 n
-0000885328 00000 n
-0000885393 00000 n
-0000885457 00000 n
-0000885522 00000 n
-0000885587 00000 n
-0000885652 00000 n
-0000885717 00000 n
-0000885782 00000 n
-0000885847 00000 n
-0000885912 00000 n
-0000885977 00000 n
-0000886041 00000 n
-0000886106 00000 n
-0000886171 00000 n
-0000886236 00000 n
-0000886301 00000 n
-0000886366 00000 n
-0000886431 00000 n
-0000886496 00000 n
-0000886561 00000 n
-0000886626 00000 n
-0000886691 00000 n
-0000886756 00000 n
-0000886821 00000 n
-0000886886 00000 n
-0000886950 00000 n
-0000887015 00000 n
-0000887080 00000 n
-0000887145 00000 n
-0000887210 00000 n
-0000887275 00000 n
-0000887340 00000 n
-0000887405 00000 n
-0000887470 00000 n
-0000887535 00000 n
-0000887600 00000 n
-0000887665 00000 n
-0000887730 00000 n
-0000887795 00000 n
-0000887860 00000 n
-0000887925 00000 n
-0000887990 00000 n
-0000888054 00000 n
-0000888119 00000 n
-0000888183 00000 n
-0000893478 00000 n
-0000890306 00000 n
-0000888424 00000 n
-0000890431 00000 n
-0000890495 00000 n
-0000890560 00000 n
-0000890625 00000 n
-0000890690 00000 n
-0000890755 00000 n
-0000890820 00000 n
-0000890885 00000 n
-0000890950 00000 n
-0000891015 00000 n
-0000891080 00000 n
-0000891145 00000 n
-0000891209 00000 n
-0000891274 00000 n
-0000891339 00000 n
-0000891404 00000 n
-0000891469 00000 n
-0000891597 00000 n
-0000891662 00000 n
-0000891727 00000 n
-0000891792 00000 n
-0000891857 00000 n
-0000891921 00000 n
-0000891986 00000 n
-0000892051 00000 n
-0000892116 00000 n
-0000892181 00000 n
-0000892246 00000 n
-0000892310 00000 n
-0000892375 00000 n
-0000892440 00000 n
-0000892505 00000 n
-0000892570 00000 n
-0000892635 00000 n
-0000892700 00000 n
-0000892765 00000 n
-0000892830 00000 n
-0000892894 00000 n
-0000892959 00000 n
-0000893024 00000 n
-0000893089 00000 n
-0000893154 00000 n
-0000893219 00000 n
-0000893284 00000 n
-0000893349 00000 n
-0000893414 00000 n
-0000898623 00000 n
-0000896425 00000 n
-0000893655 00000 n
-0000896550 00000 n
-0000896614 00000 n
-0000896679 00000 n
-0000896744 00000 n
-0000896809 00000 n
-0000896874 00000 n
-0000896939 00000 n
-0000897004 00000 n
-0000897068 00000 n
-0000897133 00000 n
-0000897198 00000 n
-0000897263 00000 n
-0000897328 00000 n
-0000897393 00000 n
-0000897458 00000 n
-0000897523 00000 n
-0000897588 00000 n
-0000897653 00000 n
-0000897718 00000 n
-0000897845 00000 n
-0000897910 00000 n
-0000897974 00000 n
-0000898039 00000 n
-0000898104 00000 n
-0000898169 00000 n
-0000898234 00000 n
-0000898299 00000 n
-0000898364 00000 n
-0000898429 00000 n
-0000898493 00000 n
-0000898558 00000 n
-0000904441 00000 n
-0000901204 00000 n
-0000898839 00000 n
-0000901329 00000 n
-0000901393 00000 n
-0000901458 00000 n
-0000901522 00000 n
-0000901587 00000 n
-0000901652 00000 n
-0000901717 00000 n
-0000901782 00000 n
-0000901847 00000 n
-0000901912 00000 n
-0000901977 00000 n
-0000902042 00000 n
-0000902106 00000 n
-0000902171 00000 n
-0000902236 00000 n
-0000902301 00000 n
-0000902366 00000 n
-0000902431 00000 n
-0000902496 00000 n
-0000902561 00000 n
-0000902626 00000 n
-0000902691 00000 n
-0000902756 00000 n
-0000902821 00000 n
-0000902886 00000 n
-0000902951 00000 n
-0000903016 00000 n
-0000903081 00000 n
-0000903145 00000 n
-0000903210 00000 n
-0000903275 00000 n
-0000903340 00000 n
-0000903405 00000 n
-0000903470 00000 n
-0000903535 00000 n
-0000903599 00000 n
-0000903664 00000 n
-0000903729 00000 n
-0000903794 00000 n
-0000903859 00000 n
-0000903924 00000 n
-0000903989 00000 n
-0000904054 00000 n
-0000904119 00000 n
-0000904183 00000 n
-0000904248 00000 n
-0000904313 00000 n
-0000904377 00000 n
-0001889726 00000 n
-0000906823 00000 n
-0000909962 00000 n
-0000906650 00000 n
-0000904631 00000 n
-0000906980 00000 n
-0000907044 00000 n
-0000907109 00000 n
-0000907174 00000 n
-0000907239 00000 n
-0000907304 00000 n
-0000907369 00000 n
-0000907434 00000 n
-0000907499 00000 n
-0000907564 00000 n
-0000907628 00000 n
-0000907693 00000 n
-0000907758 00000 n
-0000907823 00000 n
-0000907888 00000 n
-0000907953 00000 n
-0000908018 00000 n
-0000908083 00000 n
-0000908148 00000 n
-0000908213 00000 n
-0000908278 00000 n
-0000908343 00000 n
-0000908408 00000 n
-0000908473 00000 n
-0000908536 00000 n
-0000908601 00000 n
-0000908666 00000 n
-0000908731 00000 n
-0000908796 00000 n
-0000908861 00000 n
-0000908926 00000 n
-0000908991 00000 n
-0000909056 00000 n
-0000909121 00000 n
-0000909184 00000 n
-0000909249 00000 n
-0000909314 00000 n
-0000909379 00000 n
-0000909444 00000 n
-0000909509 00000 n
-0000909574 00000 n
-0000909639 00000 n
-0000909704 00000 n
-0000909769 00000 n
-0000909834 00000 n
-0000909898 00000 n
-0000906792 00000 n
-0000915756 00000 n
-0000912520 00000 n
-0000910178 00000 n
-0000912645 00000 n
-0000912709 00000 n
-0000912774 00000 n
-0000912839 00000 n
-0000912904 00000 n
-0000912969 00000 n
-0000913034 00000 n
-0000913099 00000 n
-0000913164 00000 n
-0000913229 00000 n
-0000913294 00000 n
-0000913359 00000 n
-0000913422 00000 n
-0000913487 00000 n
-0000913552 00000 n
-0000913617 00000 n
-0000913682 00000 n
-0000913747 00000 n
-0000913812 00000 n
-0000913877 00000 n
-0000913941 00000 n
-0000914006 00000 n
-0000914071 00000 n
-0000914136 00000 n
-0000914201 00000 n
-0000914266 00000 n
-0000914331 00000 n
-0000914396 00000 n
-0000914461 00000 n
-0000914525 00000 n
-0000914590 00000 n
-0000914655 00000 n
-0000914720 00000 n
-0000914785 00000 n
-0000914850 00000 n
-0000914915 00000 n
-0000914980 00000 n
-0000915045 00000 n
-0000915109 00000 n
-0000915174 00000 n
-0000915238 00000 n
-0000915303 00000 n
-0000915368 00000 n
-0000915433 00000 n
-0000915498 00000 n
-0000915563 00000 n
-0000915628 00000 n
-0000915692 00000 n
-0000921243 00000 n
-0000918135 00000 n
-0000915933 00000 n
-0000918260 00000 n
-0000918324 00000 n
-0000918389 00000 n
-0000918454 00000 n
-0000918519 00000 n
-0000918584 00000 n
-0000918649 00000 n
-0000918714 00000 n
-0000918779 00000 n
-0000918844 00000 n
-0000918909 00000 n
-0000918974 00000 n
-0000919039 00000 n
-0000919103 00000 n
-0000919168 00000 n
-0000919233 00000 n
-0000919298 00000 n
-0000919363 00000 n
-0000919428 00000 n
-0000919493 00000 n
-0000919558 00000 n
-0000919623 00000 n
-0000919688 00000 n
-0000919753 00000 n
-0000919818 00000 n
-0000919883 00000 n
-0000919948 00000 n
-0000920013 00000 n
-0000920078 00000 n
-0000920142 00000 n
-0000920207 00000 n
-0000920271 00000 n
-0000920336 00000 n
-0000920401 00000 n
-0000920466 00000 n
-0000920531 00000 n
-0000920596 00000 n
-0000920661 00000 n
-0000920726 00000 n
-0000920791 00000 n
-0000920855 00000 n
-0000920920 00000 n
-0000920985 00000 n
-0000921050 00000 n
-0000921115 00000 n
-0000927209 00000 n
-0000923712 00000 n
-0000921433 00000 n
-0000923837 00000 n
-0000923901 00000 n
-0000923966 00000 n
-0000924031 00000 n
-0000924096 00000 n
-0000924161 00000 n
-0000924226 00000 n
-0000924291 00000 n
-0000924355 00000 n
-0000924420 00000 n
-0000924485 00000 n
-0000924550 00000 n
-0000924615 00000 n
-0000924680 00000 n
-0000924745 00000 n
-0000924810 00000 n
-0000924875 00000 n
-0000924939 00000 n
-0000925004 00000 n
-0000925069 00000 n
-0000925134 00000 n
-0000925199 00000 n
-0000925264 00000 n
-0000925329 00000 n
-0000925394 00000 n
-0000925459 00000 n
-0000925523 00000 n
-0000925588 00000 n
-0000925653 00000 n
-0000925718 00000 n
-0000925783 00000 n
-0000925848 00000 n
-0000925913 00000 n
-0000925978 00000 n
-0000926043 00000 n
-0000926107 00000 n
-0000926172 00000 n
-0000926237 00000 n
-0000926302 00000 n
-0000926367 00000 n
-0000926432 00000 n
-0000926497 00000 n
-0000926562 00000 n
-0000926627 00000 n
-0000926692 00000 n
-0000926757 00000 n
-0000926822 00000 n
-0000926887 00000 n
-0000926951 00000 n
-0000927016 00000 n
-0000927081 00000 n
-0000927145 00000 n
-0000932797 00000 n
-0000930207 00000 n
-0000927399 00000 n
-0000930332 00000 n
-0000930396 00000 n
-0000930461 00000 n
-0000930526 00000 n
-0000930591 00000 n
-0000930656 00000 n
-0000930721 00000 n
-0000930786 00000 n
-0000930850 00000 n
-0000930915 00000 n
-0000930980 00000 n
-0000931045 00000 n
-0000931110 00000 n
-0000931175 00000 n
-0000931240 00000 n
-0000931305 00000 n
-0000931370 00000 n
-0000931435 00000 n
-0000931500 00000 n
-0000931564 00000 n
-0000931629 00000 n
-0000931694 00000 n
-0000931759 00000 n
-0000931824 00000 n
-0000931889 00000 n
-0000931954 00000 n
-0000932019 00000 n
-0000932084 00000 n
-0000932148 00000 n
-0000932213 00000 n
-0000932278 00000 n
-0000932343 00000 n
-0000932408 00000 n
-0000932473 00000 n
-0000932538 00000 n
-0000932603 00000 n
-0000932668 00000 n
-0000932732 00000 n
-0000938887 00000 n
-0000936426 00000 n
-0000933013 00000 n
-0000936551 00000 n
-0000936615 00000 n
-0000936680 00000 n
-0000936745 00000 n
-0000936810 00000 n
-0000936875 00000 n
-0000936940 00000 n
-0000937005 00000 n
-0000937070 00000 n
-0000937135 00000 n
-0000937200 00000 n
-0000937265 00000 n
-0000937330 00000 n
-0000937395 00000 n
-0000937459 00000 n
-0000937524 00000 n
-0000937589 00000 n
-0000937654 00000 n
-0000937719 00000 n
-0000937784 00000 n
-0000937849 00000 n
-0000937914 00000 n
-0000937978 00000 n
-0000938043 00000 n
-0000938108 00000 n
-0000938173 00000 n
-0000938238 00000 n
-0000938303 00000 n
-0000938368 00000 n
-0000938433 00000 n
-0000938498 00000 n
-0000938562 00000 n
-0000938627 00000 n
-0000938692 00000 n
-0000938757 00000 n
-0000938822 00000 n
-0000944753 00000 n
-0000942232 00000 n
-0000939103 00000 n
-0000942357 00000 n
-0000942421 00000 n
-0000942485 00000 n
-0000942550 00000 n
-0000942615 00000 n
-0000942680 00000 n
-0000942745 00000 n
-0000942809 00000 n
-0000942874 00000 n
-0000942939 00000 n
-0000943004 00000 n
-0000943069 00000 n
-0000943134 00000 n
-0000943199 00000 n
-0000943264 00000 n
-0000943329 00000 n
-0000943393 00000 n
-0000943458 00000 n
-0000943523 00000 n
-0000943588 00000 n
-0000943653 00000 n
-0000943717 00000 n
-0000943782 00000 n
-0000943847 00000 n
-0000943912 00000 n
-0000943977 00000 n
-0000944041 00000 n
-0000944106 00000 n
-0000944171 00000 n
-0000944236 00000 n
-0000944301 00000 n
-0000944365 00000 n
-0000944430 00000 n
-0000944495 00000 n
-0000944560 00000 n
-0000944625 00000 n
-0000944689 00000 n
-0000950238 00000 n
-0000947130 00000 n
-0000944969 00000 n
-0000947255 00000 n
-0000947319 00000 n
-0000947384 00000 n
-0000947449 00000 n
-0000947514 00000 n
-0000947579 00000 n
-0000947644 00000 n
-0000947709 00000 n
-0000947774 00000 n
-0000947839 00000 n
-0000947904 00000 n
-0000947969 00000 n
-0000948033 00000 n
-0000948098 00000 n
-0000948163 00000 n
-0000948228 00000 n
-0000948293 00000 n
-0000948358 00000 n
-0000948423 00000 n
-0000948487 00000 n
-0000948552 00000 n
-0000948617 00000 n
-0000948682 00000 n
-0000948747 00000 n
-0000948812 00000 n
-0000948877 00000 n
-0000948942 00000 n
-0000949007 00000 n
-0000949071 00000 n
-0000949136 00000 n
-0000949201 00000 n
-0000949266 00000 n
-0000949331 00000 n
-0000949396 00000 n
-0000949460 00000 n
-0000949525 00000 n
-0000949590 00000 n
-0000949655 00000 n
-0000949720 00000 n
-0000949785 00000 n
-0000949850 00000 n
-0000949915 00000 n
-0000949980 00000 n
-0000950045 00000 n
-0000950110 00000 n
-0000950174 00000 n
-0000956056 00000 n
-0000952301 00000 n
-0000950402 00000 n
-0000952426 00000 n
-0000952490 00000 n
-0000952555 00000 n
-0000952620 00000 n
-0000952685 00000 n
-0000952750 00000 n
-0000952815 00000 n
-0000952880 00000 n
-0000952945 00000 n
-0000953010 00000 n
-0000953074 00000 n
-0000953139 00000 n
-0000953204 00000 n
-0000953269 00000 n
-0000953334 00000 n
-0000953399 00000 n
-0000953464 00000 n
-0000953529 00000 n
-0000953594 00000 n
-0000953658 00000 n
-0000953723 00000 n
-0000953788 00000 n
-0000953853 00000 n
-0000953918 00000 n
-0000953983 00000 n
-0000954048 00000 n
-0000954112 00000 n
-0000954177 00000 n
-0000954242 00000 n
-0000954306 00000 n
-0000954371 00000 n
-0000954436 00000 n
-0000954501 00000 n
-0000954566 00000 n
-0000954631 00000 n
-0000954696 00000 n
-0000954761 00000 n
-0000954826 00000 n
-0000954890 00000 n
-0000954955 00000 n
-0000955020 00000 n
-0000955085 00000 n
-0000955150 00000 n
-0000955214 00000 n
-0000955279 00000 n
-0000955344 00000 n
-0000955409 00000 n
-0000955474 00000 n
-0000955539 00000 n
-0000955604 00000 n
-0000955669 00000 n
-0000955734 00000 n
-0000955798 00000 n
-0000955863 00000 n
-0000955928 00000 n
-0000955992 00000 n
-0000961989 00000 n
-0000958878 00000 n
-0000956220 00000 n
-0000959003 00000 n
-0000959067 00000 n
-0000959132 00000 n
-0000959197 00000 n
-0000959262 00000 n
-0000959326 00000 n
-0000959391 00000 n
-0000959456 00000 n
-0000959521 00000 n
-0000959586 00000 n
-0000959651 00000 n
-0000959716 00000 n
-0000959781 00000 n
-0000959846 00000 n
-0000959910 00000 n
-0000959975 00000 n
-0000960040 00000 n
-0000960105 00000 n
-0000960170 00000 n
-0000960235 00000 n
-0000960300 00000 n
-0000960365 00000 n
-0000960430 00000 n
-0000960494 00000 n
-0000960559 00000 n
-0000960624 00000 n
-0000960689 00000 n
-0000960754 00000 n
-0000960819 00000 n
-0000960884 00000 n
-0000960949 00000 n
-0000961014 00000 n
-0000961079 00000 n
-0000961144 00000 n
-0000961209 00000 n
-0000961274 00000 n
-0000961339 00000 n
-0000961404 00000 n
-0000961469 00000 n
-0000961534 00000 n
-0000961599 00000 n
-0000961664 00000 n
-0000961729 00000 n
-0000961794 00000 n
-0000961859 00000 n
-0000961924 00000 n
-0001889891 00000 n
-0000967690 00000 n
-0000963868 00000 n
-0000962192 00000 n
-0000963993 00000 n
-0000964057 00000 n
-0000964122 00000 n
-0000964187 00000 n
-0000964252 00000 n
-0000964317 00000 n
-0000964382 00000 n
-0000964447 00000 n
-0000964512 00000 n
-0000964577 00000 n
-0000964641 00000 n
-0000964706 00000 n
-0000964771 00000 n
-0000964836 00000 n
-0000964901 00000 n
-0000964966 00000 n
-0000965031 00000 n
-0000965096 00000 n
-0000965160 00000 n
-0000965225 00000 n
-0000965290 00000 n
-0000965355 00000 n
-0000965420 00000 n
-0000965485 00000 n
-0000965550 00000 n
-0000965615 00000 n
-0000965680 00000 n
-0000965744 00000 n
-0000965809 00000 n
-0000965874 00000 n
-0000965939 00000 n
-0000966004 00000 n
-0000966069 00000 n
-0000966134 00000 n
-0000966199 00000 n
-0000966264 00000 n
-0000966329 00000 n
-0000966394 00000 n
-0000966459 00000 n
-0000966524 00000 n
-0000966589 00000 n
-0000966654 00000 n
-0000966719 00000 n
-0000966783 00000 n
-0000966848 00000 n
-0000966913 00000 n
-0000966978 00000 n
-0000967043 00000 n
-0000967108 00000 n
-0000967173 00000 n
-0000967238 00000 n
-0000967302 00000 n
-0000967367 00000 n
-0000967432 00000 n
-0000967497 00000 n
-0000967562 00000 n
-0000967626 00000 n
-0000973816 00000 n
-0000969865 00000 n
-0000967867 00000 n
-0000969990 00000 n
-0000970054 00000 n
-0000970119 00000 n
-0000970184 00000 n
-0000970249 00000 n
-0000970313 00000 n
-0000970378 00000 n
-0000970443 00000 n
-0000970508 00000 n
-0000970573 00000 n
-0000970638 00000 n
-0000970703 00000 n
-0000970768 00000 n
-0000970833 00000 n
-0000970897 00000 n
-0000970962 00000 n
-0000971027 00000 n
-0000971092 00000 n
-0000971157 00000 n
-0000971222 00000 n
-0000971287 00000 n
-0000971352 00000 n
-0000971417 00000 n
-0000971481 00000 n
-0000971546 00000 n
-0000971611 00000 n
-0000971676 00000 n
-0000971741 00000 n
-0000971806 00000 n
-0000971871 00000 n
-0000971936 00000 n
-0000972001 00000 n
-0000972065 00000 n
-0000972130 00000 n
-0000972195 00000 n
-0000972260 00000 n
-0000972325 00000 n
-0000972390 00000 n
-0000972455 00000 n
-0000972520 00000 n
-0000972585 00000 n
-0000972649 00000 n
-0000972714 00000 n
-0000972779 00000 n
-0000972844 00000 n
-0000972909 00000 n
-0000972974 00000 n
-0000973039 00000 n
-0000973104 00000 n
-0000973169 00000 n
-0000973234 00000 n
-0000973299 00000 n
-0000973364 00000 n
-0000973428 00000 n
-0000973493 00000 n
-0000973558 00000 n
-0000973623 00000 n
-0000973688 00000 n
-0000973752 00000 n
-0000979861 00000 n
-0000976559 00000 n
-0000974006 00000 n
-0000976684 00000 n
-0000976748 00000 n
-0000976813 00000 n
-0000976878 00000 n
-0000976943 00000 n
-0000977008 00000 n
-0000977073 00000 n
-0000977138 00000 n
-0000977203 00000 n
-0000977268 00000 n
-0000977332 00000 n
-0000977397 00000 n
-0000977462 00000 n
-0000977527 00000 n
-0000977592 00000 n
-0000977657 00000 n
-0000977722 00000 n
-0000977786 00000 n
-0000977851 00000 n
-0000977916 00000 n
-0000977981 00000 n
-0000978046 00000 n
-0000978111 00000 n
-0000978176 00000 n
-0000978241 00000 n
-0000978306 00000 n
-0000978371 00000 n
-0000978435 00000 n
-0000978500 00000 n
-0000978565 00000 n
-0000978630 00000 n
-0000978695 00000 n
-0000978760 00000 n
-0000978825 00000 n
-0000978890 00000 n
-0000978955 00000 n
-0000979019 00000 n
-0000979084 00000 n
-0000979149 00000 n
-0000979214 00000 n
-0000979279 00000 n
-0000979344 00000 n
-0000979409 00000 n
-0000979474 00000 n
-0000979539 00000 n
-0000979603 00000 n
-0000979668 00000 n
-0000979733 00000 n
-0000979797 00000 n
-0000985694 00000 n
-0000982260 00000 n
-0000980038 00000 n
-0000982385 00000 n
-0000982449 00000 n
-0000982514 00000 n
-0000982579 00000 n
-0000982644 00000 n
-0000982709 00000 n
-0000982774 00000 n
-0000982839 00000 n
-0000982904 00000 n
-0000982969 00000 n
-0000983033 00000 n
-0000983098 00000 n
-0000983163 00000 n
-0000983228 00000 n
-0000983293 00000 n
-0000983358 00000 n
-0000983423 00000 n
-0000983488 00000 n
-0000983553 00000 n
-0000983618 00000 n
-0000983683 00000 n
-0000983748 00000 n
-0000983813 00000 n
-0000983878 00000 n
-0000983943 00000 n
-0000984007 00000 n
-0000984072 00000 n
-0000984137 00000 n
-0000984202 00000 n
-0000984267 00000 n
-0000984332 00000 n
-0000984397 00000 n
-0000984462 00000 n
-0000984527 00000 n
-0000984591 00000 n
-0000984656 00000 n
-0000984721 00000 n
-0000984786 00000 n
-0000984851 00000 n
-0000984916 00000 n
-0000984981 00000 n
-0000985046 00000 n
-0000985111 00000 n
-0000985175 00000 n
-0000985240 00000 n
-0000985305 00000 n
-0000985370 00000 n
-0000985435 00000 n
-0000985500 00000 n
-0000985565 00000 n
-0000985630 00000 n
-0000991580 00000 n
-0000987435 00000 n
-0000985871 00000 n
-0000987560 00000 n
-0000987624 00000 n
-0000987689 00000 n
-0000987754 00000 n
-0000987819 00000 n
-0000987884 00000 n
-0000987949 00000 n
-0000988014 00000 n
-0000988079 00000 n
-0000988143 00000 n
-0000988208 00000 n
-0000988273 00000 n
-0000988338 00000 n
-0000988403 00000 n
-0000988468 00000 n
-0000988533 00000 n
-0000988598 00000 n
-0000988663 00000 n
-0000988727 00000 n
-0000988792 00000 n
-0000988857 00000 n
-0000988922 00000 n
-0000988987 00000 n
-0000989052 00000 n
-0000989117 00000 n
-0000989182 00000 n
-0000989247 00000 n
-0000989312 00000 n
-0000989376 00000 n
-0000989441 00000 n
-0000989506 00000 n
-0000989571 00000 n
-0000989636 00000 n
-0000989701 00000 n
-0000989766 00000 n
-0000989831 00000 n
-0000989896 00000 n
-0000989959 00000 n
-0000990024 00000 n
-0000990089 00000 n
-0000990154 00000 n
-0000990219 00000 n
-0000990284 00000 n
-0000990349 00000 n
-0000990414 00000 n
-0000990479 00000 n
-0000990543 00000 n
-0000990608 00000 n
-0000990673 00000 n
-0000990738 00000 n
-0000990803 00000 n
-0000990868 00000 n
-0000990933 00000 n
-0000990998 00000 n
-0000991063 00000 n
-0000991128 00000 n
-0000991192 00000 n
-0000991257 00000 n
-0000991322 00000 n
-0000991387 00000 n
-0000991452 00000 n
-0000991516 00000 n
-0000997249 00000 n
-0000994726 00000 n
-0000991744 00000 n
-0000994851 00000 n
-0000994915 00000 n
-0000994980 00000 n
-0000995045 00000 n
-0000995110 00000 n
-0000995175 00000 n
-0000995240 00000 n
-0000995305 00000 n
-0000995370 00000 n
-0000995435 00000 n
-0000995499 00000 n
-0000995564 00000 n
-0000995629 00000 n
-0000995694 00000 n
-0000995759 00000 n
-0000995824 00000 n
-0000995889 00000 n
-0000995953 00000 n
-0000996018 00000 n
-0000996083 00000 n
-0000996148 00000 n
-0000996213 00000 n
-0000996278 00000 n
-0000996343 00000 n
-0000996408 00000 n
-0000996473 00000 n
-0000996537 00000 n
-0000996602 00000 n
-0000996667 00000 n
-0000996731 00000 n
-0000996796 00000 n
-0000996861 00000 n
-0000996926 00000 n
-0000996991 00000 n
-0000997056 00000 n
-0000997121 00000 n
-0000997185 00000 n
-0001003151 00000 n
-0000999784 00000 n
-0000997426 00000 n
-0000999909 00000 n
-0000999973 00000 n
-0001000038 00000 n
-0001000103 00000 n
-0001000168 00000 n
-0001000233 00000 n
-0001000298 00000 n
-0001000363 00000 n
-0001000427 00000 n
-0001000492 00000 n
-0001000557 00000 n
-0001000622 00000 n
-0001000687 00000 n
-0001000752 00000 n
-0001000817 00000 n
-0001000882 00000 n
-0001000946 00000 n
-0001001011 00000 n
-0001001076 00000 n
-0001001141 00000 n
-0001001206 00000 n
-0001001271 00000 n
-0001001336 00000 n
-0001001400 00000 n
-0001001465 00000 n
-0001001530 00000 n
-0001001595 00000 n
-0001001660 00000 n
-0001001725 00000 n
-0001001790 00000 n
-0001001855 00000 n
-0001001920 00000 n
-0001001984 00000 n
-0001002049 00000 n
-0001002114 00000 n
-0001002179 00000 n
-0001002244 00000 n
-0001002309 00000 n
-0001002374 00000 n
-0001002439 00000 n
-0001002504 00000 n
-0001002568 00000 n
-0001002633 00000 n
-0001002698 00000 n
-0001002763 00000 n
-0001002828 00000 n
-0001002893 00000 n
-0001002958 00000 n
-0001003023 00000 n
-0001003088 00000 n
-0001009291 00000 n
-0001005210 00000 n
-0001003328 00000 n
-0001005335 00000 n
-0001005399 00000 n
-0001005464 00000 n
-0001005529 00000 n
-0001005594 00000 n
-0001005659 00000 n
-0001005724 00000 n
-0001005788 00000 n
-0001005853 00000 n
-0001005918 00000 n
-0001005983 00000 n
-0001006048 00000 n
-0001006113 00000 n
-0001006178 00000 n
-0001006243 00000 n
-0001006308 00000 n
-0001006372 00000 n
-0001006437 00000 n
-0001006501 00000 n
-0001006566 00000 n
-0001006631 00000 n
-0001006696 00000 n
-0001006761 00000 n
-0001006826 00000 n
-0001006891 00000 n
-0001006956 00000 n
-0001007021 00000 n
-0001007085 00000 n
-0001007150 00000 n
-0001007215 00000 n
-0001007280 00000 n
-0001007345 00000 n
-0001007410 00000 n
-0001007475 00000 n
-0001007540 00000 n
-0001007605 00000 n
-0001007669 00000 n
-0001007734 00000 n
-0001007799 00000 n
-0001007864 00000 n
-0001007929 00000 n
-0001007994 00000 n
-0001008059 00000 n
-0001008124 00000 n
-0001008189 00000 n
-0001008254 00000 n
-0001008319 00000 n
-0001008384 00000 n
-0001008449 00000 n
-0001008514 00000 n
-0001008579 00000 n
-0001008644 00000 n
-0001008709 00000 n
-0001008774 00000 n
-0001008839 00000 n
-0001008903 00000 n
-0001008968 00000 n
-0001009033 00000 n
-0001009098 00000 n
-0001009163 00000 n
-0001009227 00000 n
-0001015460 00000 n
-0001011251 00000 n
-0001009468 00000 n
-0001011376 00000 n
-0001011440 00000 n
-0001011505 00000 n
-0001011570 00000 n
-0001011635 00000 n
-0001011700 00000 n
-0001011765 00000 n
-0001011830 00000 n
-0001011895 00000 n
-0001011960 00000 n
-0001012024 00000 n
-0001012089 00000 n
-0001012154 00000 n
-0001012219 00000 n
-0001012284 00000 n
-0001012349 00000 n
-0001012414 00000 n
-0001012479 00000 n
-0001012544 00000 n
-0001012608 00000 n
-0001012673 00000 n
-0001012738 00000 n
-0001012803 00000 n
-0001012868 00000 n
-0001012933 00000 n
-0001012998 00000 n
-0001013063 00000 n
-0001013128 00000 n
-0001013191 00000 n
-0001013256 00000 n
-0001013321 00000 n
-0001013386 00000 n
-0001013451 00000 n
-0001013516 00000 n
-0001013581 00000 n
-0001013646 00000 n
-0001013711 00000 n
-0001013775 00000 n
-0001013840 00000 n
-0001013905 00000 n
-0001013970 00000 n
-0001014035 00000 n
-0001014099 00000 n
-0001014164 00000 n
-0001014229 00000 n
-0001014294 00000 n
-0001014359 00000 n
-0001014424 00000 n
-0001014489 00000 n
-0001014554 00000 n
-0001014619 00000 n
-0001014683 00000 n
-0001014748 00000 n
-0001014813 00000 n
-0001014878 00000 n
-0001014943 00000 n
-0001015008 00000 n
-0001015073 00000 n
-0001015138 00000 n
-0001015203 00000 n
-0001015267 00000 n
-0001015332 00000 n
-0001015396 00000 n
-0001021053 00000 n
-0001017554 00000 n
-0001015624 00000 n
-0001017679 00000 n
-0001017743 00000 n
-0001017808 00000 n
-0001017873 00000 n
-0001017938 00000 n
-0001018003 00000 n
-0001018068 00000 n
-0001018133 00000 n
-0001018198 00000 n
-0001018263 00000 n
-0001018328 00000 n
-0001018393 00000 n
-0001018456 00000 n
-0001018521 00000 n
-0001018586 00000 n
-0001018651 00000 n
-0001018716 00000 n
-0001018781 00000 n
-0001018846 00000 n
-0001018911 00000 n
-0001018976 00000 n
-0001019041 00000 n
-0001019106 00000 n
-0001019171 00000 n
-0001019236 00000 n
-0001019301 00000 n
-0001019366 00000 n
-0001019431 00000 n
-0001019496 00000 n
-0001019561 00000 n
-0001019626 00000 n
-0001019691 00000 n
-0001019756 00000 n
-0001019821 00000 n
-0001019886 00000 n
-0001019951 00000 n
-0001020016 00000 n
-0001020081 00000 n
-0001020146 00000 n
-0001020211 00000 n
-0001020276 00000 n
-0001020341 00000 n
-0001020406 00000 n
-0001020471 00000 n
-0001020536 00000 n
-0001020601 00000 n
-0001020665 00000 n
-0001020730 00000 n
-0001020795 00000 n
-0001020860 00000 n
-0001020925 00000 n
-0001020989 00000 n
-0001890056 00000 n
-0001026899 00000 n
-0001022883 00000 n
-0001021230 00000 n
-0001023008 00000 n
-0001023072 00000 n
-0001023137 00000 n
-0001023202 00000 n
-0001023267 00000 n
-0001023332 00000 n
-0001023397 00000 n
-0001023462 00000 n
-0001023527 00000 n
-0001023592 00000 n
-0001023656 00000 n
-0001023721 00000 n
-0001023786 00000 n
-0001023851 00000 n
-0001023916 00000 n
-0001023981 00000 n
-0001024046 00000 n
-0001024111 00000 n
-0001024176 00000 n
-0001024241 00000 n
-0001024305 00000 n
-0001024370 00000 n
-0001024435 00000 n
-0001024500 00000 n
-0001024565 00000 n
-0001024630 00000 n
-0001024695 00000 n
-0001024760 00000 n
-0001024825 00000 n
-0001024889 00000 n
-0001024954 00000 n
-0001025019 00000 n
-0001025084 00000 n
-0001025149 00000 n
-0001025214 00000 n
-0001025279 00000 n
-0001025344 00000 n
-0001025409 00000 n
-0001025474 00000 n
-0001025539 00000 n
-0001025604 00000 n
-0001025669 00000 n
-0001025734 00000 n
-0001025799 00000 n
-0001025863 00000 n
-0001025928 00000 n
-0001025993 00000 n
-0001026058 00000 n
-0001026123 00000 n
-0001026187 00000 n
-0001026252 00000 n
-0001026317 00000 n
-0001026382 00000 n
-0001026447 00000 n
-0001026512 00000 n
-0001026577 00000 n
-0001026642 00000 n
-0001026707 00000 n
-0001026771 00000 n
+0000811107 00000 n
+0000811172 00000 n
+0000811237 00000 n
+0000811302 00000 n
+0000811367 00000 n
+0000811432 00000 n
+0000811497 00000 n
+0000811562 00000 n
+0000811627 00000 n
+0000811691 00000 n
+0000811756 00000 n
+0000811821 00000 n
+0000811885 00000 n
+0000811950 00000 n
+0000812015 00000 n
+0000812080 00000 n
+0000812145 00000 n
+0000812210 00000 n
+0000812275 00000 n
+0000812339 00000 n
+0000812404 00000 n
+0000812469 00000 n
+0000812532 00000 n
+0000812597 00000 n
+0000812662 00000 n
+0000812727 00000 n
+0000812792 00000 n
+0000812857 00000 n
+0000812922 00000 n
+0000812987 00000 n
+0000813052 00000 n
+0000813117 00000 n
+0000813182 00000 n
+0000813247 00000 n
+0000813312 00000 n
+0000813377 00000 n
+0000813442 00000 n
+0000813507 00000 n
+0000813572 00000 n
+0000813637 00000 n
+0000819153 00000 n
+0000816823 00000 n
+0000813878 00000 n
+0000816948 00000 n
+0000817012 00000 n
+0000817077 00000 n
+0000817142 00000 n
+0000817207 00000 n
+0000817272 00000 n
+0000817337 00000 n
+0000817402 00000 n
+0000817467 00000 n
+0000817531 00000 n
+0000817596 00000 n
+0000817661 00000 n
+0000817726 00000 n
+0000817791 00000 n
+0000817854 00000 n
+0000817919 00000 n
+0000817984 00000 n
+0000818049 00000 n
+0000818114 00000 n
+0000818179 00000 n
+0000818244 00000 n
+0000818309 00000 n
+0000818374 00000 n
+0000818439 00000 n
+0000818503 00000 n
+0000818568 00000 n
+0000818633 00000 n
+0000818698 00000 n
+0000818763 00000 n
+0000818828 00000 n
+0000818893 00000 n
+0000818958 00000 n
+0000819023 00000 n
+0000819088 00000 n
+0000824612 00000 n
+0000822219 00000 n
+0000819343 00000 n
+0000822344 00000 n
+0000822408 00000 n
+0000822473 00000 n
+0000822537 00000 n
+0000822602 00000 n
+0000822667 00000 n
+0000822732 00000 n
+0000822797 00000 n
+0000822862 00000 n
+0000822927 00000 n
+0000822992 00000 n
+0000823057 00000 n
+0000823122 00000 n
+0000823187 00000 n
+0000823251 00000 n
+0000823316 00000 n
+0000823381 00000 n
+0000823446 00000 n
+0000823511 00000 n
+0000823576 00000 n
+0000823641 00000 n
+0000823706 00000 n
+0000823770 00000 n
+0000823835 00000 n
+0000823900 00000 n
+0000823965 00000 n
+0000824030 00000 n
+0000824095 00000 n
+0000824160 00000 n
+0000824225 00000 n
+0000824290 00000 n
+0000824355 00000 n
+0000824420 00000 n
+0000824485 00000 n
+0001536508 00000 n
+0000830627 00000 n
+0000828036 00000 n
+0000824841 00000 n
+0000828161 00000 n
+0000828225 00000 n
+0000828290 00000 n
+0000828355 00000 n
+0000828420 00000 n
+0000828485 00000 n
+0000828550 00000 n
+0000828615 00000 n
+0000828679 00000 n
+0000828744 00000 n
+0000828809 00000 n
+0000828874 00000 n
+0000828939 00000 n
+0000829004 00000 n
+0000829069 00000 n
+0000829134 00000 n
+0000829199 00000 n
+0000829263 00000 n
+0000829328 00000 n
+0000829393 00000 n
+0000829458 00000 n
+0000829523 00000 n
+0000829588 00000 n
+0000829653 00000 n
+0000829718 00000 n
+0000829783 00000 n
+0000829847 00000 n
+0000829912 00000 n
+0000829977 00000 n
+0000830042 00000 n
+0000830107 00000 n
+0000830172 00000 n
+0000830237 00000 n
+0000830302 00000 n
+0000830367 00000 n
+0000830432 00000 n
+0000830497 00000 n
+0000830562 00000 n
+0000836633 00000 n
+0000833978 00000 n
+0000830869 00000 n
+0000834103 00000 n
+0000834167 00000 n
+0000834232 00000 n
+0000834297 00000 n
+0000834362 00000 n
+0000834427 00000 n
+0000834492 00000 n
+0000834557 00000 n
+0000834622 00000 n
+0000834687 00000 n
+0000834752 00000 n
+0000834817 00000 n
+0000834882 00000 n
+0000834946 00000 n
+0000835011 00000 n
+0000835076 00000 n
+0000835141 00000 n
+0000835206 00000 n
+0000835271 00000 n
+0000835336 00000 n
+0000835400 00000 n
+0000835465 00000 n
+0000835530 00000 n
+0000835595 00000 n
+0000835660 00000 n
+0000835725 00000 n
+0000835790 00000 n
+0000835855 00000 n
+0000835920 00000 n
+0000835985 00000 n
+0000836049 00000 n
+0000836114 00000 n
+0000836179 00000 n
+0000836244 00000 n
+0000836309 00000 n
+0000836374 00000 n
+0000836439 00000 n
+0000836504 00000 n
+0000836569 00000 n
+0000842598 00000 n
+0000839037 00000 n
+0000836823 00000 n
+0000839162 00000 n
+0000839226 00000 n
+0000839291 00000 n
+0000839356 00000 n
+0000839421 00000 n
+0000839486 00000 n
+0000839551 00000 n
+0000839615 00000 n
+0000839680 00000 n
+0000839745 00000 n
+0000839810 00000 n
+0000839875 00000 n
+0000839940 00000 n
+0000840005 00000 n
+0000840070 00000 n
+0000840135 00000 n
+0000840199 00000 n
+0000840264 00000 n
+0000840329 00000 n
+0000840394 00000 n
+0000840459 00000 n
+0000840524 00000 n
+0000840589 00000 n
+0000840654 00000 n
+0000840719 00000 n
+0000840782 00000 n
+0000840847 00000 n
+0000840912 00000 n
+0000840977 00000 n
+0000841042 00000 n
+0000841106 00000 n
+0000841171 00000 n
+0000841236 00000 n
+0000841301 00000 n
+0000841366 00000 n
+0000841431 00000 n
+0000841496 00000 n
+0000841561 00000 n
+0000841626 00000 n
+0000841690 00000 n
+0000841755 00000 n
+0000841820 00000 n
+0000841885 00000 n
+0000841950 00000 n
+0000842015 00000 n
+0000842080 00000 n
+0000842145 00000 n
+0000842210 00000 n
+0000842275 00000 n
+0000842340 00000 n
+0000842405 00000 n
+0000842470 00000 n
+0000842534 00000 n
+0000849003 00000 n
+0000844858 00000 n
+0000842762 00000 n
+0000844983 00000 n
+0000845047 00000 n
+0000845112 00000 n
+0000845176 00000 n
+0000845241 00000 n
+0000845306 00000 n
+0000845371 00000 n
+0000845436 00000 n
+0000845501 00000 n
+0000845566 00000 n
+0000845631 00000 n
+0000845696 00000 n
+0000845760 00000 n
+0000845825 00000 n
+0000845890 00000 n
+0000845955 00000 n
+0000846020 00000 n
+0000846085 00000 n
+0000846150 00000 n
+0000846215 00000 n
+0000846280 00000 n
+0000846344 00000 n
+0000846409 00000 n
+0000846474 00000 n
+0000846539 00000 n
+0000846604 00000 n
+0000846669 00000 n
+0000846734 00000 n
+0000846799 00000 n
+0000846864 00000 n
+0000846927 00000 n
+0000846992 00000 n
+0000847057 00000 n
+0000847122 00000 n
+0000847187 00000 n
+0000847252 00000 n
+0000847317 00000 n
+0000847382 00000 n
+0000847447 00000 n
+0000847512 00000 n
+0000847577 00000 n
+0000847642 00000 n
+0000847707 00000 n
+0000847772 00000 n
+0000847837 00000 n
+0000847902 00000 n
+0000847967 00000 n
+0000848032 00000 n
+0000848097 00000 n
+0000848161 00000 n
+0000848226 00000 n
+0000848291 00000 n
+0000848356 00000 n
+0000848421 00000 n
+0000848486 00000 n
+0000848551 00000 n
+0000848616 00000 n
+0000848681 00000 n
+0000848745 00000 n
+0000848810 00000 n
+0000848875 00000 n
+0000848939 00000 n
+0000855177 00000 n
+0000851681 00000 n
+0000849167 00000 n
+0000851806 00000 n
+0000851870 00000 n
+0000851935 00000 n
+0000851999 00000 n
+0000852064 00000 n
+0000852129 00000 n
+0000852193 00000 n
+0000852258 00000 n
+0000852323 00000 n
+0000852388 00000 n
+0000852453 00000 n
+0000852518 00000 n
+0000852583 00000 n
+0000852648 00000 n
+0000852713 00000 n
+0000852778 00000 n
+0000852842 00000 n
+0000852907 00000 n
+0000852972 00000 n
+0000853037 00000 n
+0000853102 00000 n
+0000853167 00000 n
+0000853232 00000 n
+0000853297 00000 n
+0000853362 00000 n
+0000853427 00000 n
+0000853492 00000 n
+0000853557 00000 n
+0000853622 00000 n
+0000853687 00000 n
+0000853751 00000 n
+0000853816 00000 n
+0000853881 00000 n
+0000853946 00000 n
+0000854011 00000 n
+0000854076 00000 n
+0000854141 00000 n
+0000854206 00000 n
+0000854271 00000 n
+0000854335 00000 n
+0000854400 00000 n
+0000854465 00000 n
+0000854530 00000 n
+0000854595 00000 n
+0000854660 00000 n
+0000854725 00000 n
+0000854790 00000 n
+0000854855 00000 n
+0000854919 00000 n
+0000854984 00000 n
+0000855049 00000 n
+0000855113 00000 n
+0000860896 00000 n
+0000857983 00000 n
+0000855354 00000 n
+0000858108 00000 n
+0000858172 00000 n
+0000858237 00000 n
+0000858301 00000 n
+0000858366 00000 n
+0000858431 00000 n
+0000858496 00000 n
+0000858561 00000 n
+0000858626 00000 n
+0000858691 00000 n
+0000858755 00000 n
+0000858820 00000 n
+0000858885 00000 n
+0000858950 00000 n
+0000859015 00000 n
+0000859080 00000 n
+0000859145 00000 n
+0000859210 00000 n
+0000859275 00000 n
+0000859340 00000 n
+0000859405 00000 n
+0000859470 00000 n
+0000859534 00000 n
+0000859599 00000 n
+0000859664 00000 n
+0000859729 00000 n
+0000859794 00000 n
+0000859859 00000 n
+0000859924 00000 n
+0000859989 00000 n
+0000860054 00000 n
+0000860119 00000 n
+0000860184 00000 n
+0000860249 00000 n
+0000860314 00000 n
+0000860379 00000 n
+0000860444 00000 n
+0000860509 00000 n
+0000860574 00000 n
+0000860639 00000 n
+0000860704 00000 n
+0000860769 00000 n
+0000860832 00000 n
+0000866891 00000 n
+0000863005 00000 n
+0000861086 00000 n
+0000863130 00000 n
+0000863194 00000 n
+0000863259 00000 n
+0000863323 00000 n
+0000863388 00000 n
+0000863453 00000 n
+0000863518 00000 n
+0000863582 00000 n
+0000863647 00000 n
+0000863712 00000 n
+0000863777 00000 n
+0000863842 00000 n
+0000863907 00000 n
+0000863972 00000 n
+0000864037 00000 n
+0000864102 00000 n
+0000864167 00000 n
+0000864231 00000 n
+0000864296 00000 n
+0000864361 00000 n
+0000864426 00000 n
+0000864491 00000 n
+0000864556 00000 n
+0000864621 00000 n
+0000864686 00000 n
+0000864751 00000 n
+0000864815 00000 n
+0000864880 00000 n
+0000864945 00000 n
+0000865010 00000 n
+0000865075 00000 n
+0000865140 00000 n
+0000865205 00000 n
+0000865269 00000 n
+0000865334 00000 n
+0000865399 00000 n
+0000865464 00000 n
+0000865529 00000 n
+0000865594 00000 n
+0000865659 00000 n
+0000865724 00000 n
+0000865789 00000 n
+0000865853 00000 n
+0000865918 00000 n
+0000865983 00000 n
+0000866048 00000 n
+0000866113 00000 n
+0000866178 00000 n
+0000866243 00000 n
+0000866308 00000 n
+0000866373 00000 n
+0000866438 00000 n
+0000866503 00000 n
+0000866568 00000 n
+0000866633 00000 n
+0000866698 00000 n
+0000866763 00000 n
+0000866827 00000 n
+0000874750 00000 n
+0000871774 00000 n
+0000867055 00000 n
+0000871899 00000 n
+0000871963 00000 n
+0000872028 00000 n
+0000872092 00000 n
+0000872157 00000 n
+0000872222 00000 n
+0000872287 00000 n
+0000872352 00000 n
+0000872417 00000 n
+0000872482 00000 n
+0000872547 00000 n
+0000872612 00000 n
+0000872676 00000 n
+0000872741 00000 n
+0000872806 00000 n
+0000872871 00000 n
+0000872936 00000 n
+0000873001 00000 n
+0000873066 00000 n
+0000873131 00000 n
+0000873196 00000 n
+0000873260 00000 n
+0000873325 00000 n
+0000873390 00000 n
+0000873455 00000 n
+0000873520 00000 n
+0000873585 00000 n
+0000873650 00000 n
+0000873715 00000 n
+0000873780 00000 n
+0000873844 00000 n
+0000873909 00000 n
+0000873974 00000 n
+0000874039 00000 n
+0000874104 00000 n
+0000874169 00000 n
+0000874234 00000 n
+0000874299 00000 n
+0000874364 00000 n
+0000874429 00000 n
+0000874492 00000 n
+0000874557 00000 n
+0000874622 00000 n
+0000874686 00000 n
+0000881055 00000 n
+0000877755 00000 n
+0000874941 00000 n
+0000877880 00000 n
+0000877944 00000 n
+0000878009 00000 n
+0000878073 00000 n
+0000878138 00000 n
+0000878203 00000 n
+0000878268 00000 n
+0000878333 00000 n
+0000878398 00000 n
+0000878463 00000 n
+0000878528 00000 n
+0000878593 00000 n
+0000878657 00000 n
+0000878722 00000 n
+0000878787 00000 n
+0000878852 00000 n
+0000878917 00000 n
+0000878982 00000 n
+0000879047 00000 n
+0000879112 00000 n
+0000879177 00000 n
+0000879241 00000 n
+0000879306 00000 n
+0000879371 00000 n
+0000879435 00000 n
+0000879500 00000 n
+0000879565 00000 n
+0000879629 00000 n
+0000879694 00000 n
+0000879759 00000 n
+0000879824 00000 n
+0000879889 00000 n
+0000879954 00000 n
+0000880019 00000 n
+0000880084 00000 n
+0000880149 00000 n
+0000880213 00000 n
+0000880278 00000 n
+0000880343 00000 n
+0000880408 00000 n
+0000880473 00000 n
+0000880538 00000 n
+0000880603 00000 n
+0000880668 00000 n
+0000880732 00000 n
+0000880797 00000 n
+0000880862 00000 n
+0000880927 00000 n
+0000880991 00000 n
+0000886992 00000 n
+0000883885 00000 n
+0000881245 00000 n
+0000884010 00000 n
+0000884074 00000 n
+0000884139 00000 n
+0000884203 00000 n
+0000884268 00000 n
+0000884333 00000 n
+0000884398 00000 n
+0000884463 00000 n
+0000884528 00000 n
+0000884593 00000 n
+0000884658 00000 n
+0000884721 00000 n
+0000884786 00000 n
+0000884851 00000 n
+0000884916 00000 n
+0000884981 00000 n
+0000885046 00000 n
+0000885111 00000 n
+0000885176 00000 n
+0000885240 00000 n
+0000885305 00000 n
+0000885370 00000 n
+0000885435 00000 n
+0000885500 00000 n
+0000885565 00000 n
+0000885630 00000 n
+0000885694 00000 n
+0000885759 00000 n
+0000885824 00000 n
+0000885889 00000 n
+0000885954 00000 n
+0000886019 00000 n
+0000886084 00000 n
+0000886149 00000 n
+0000886214 00000 n
+0000886278 00000 n
+0000886343 00000 n
+0000886408 00000 n
+0000886473 00000 n
+0000886538 00000 n
+0000886603 00000 n
+0000886668 00000 n
+0000886732 00000 n
+0000886797 00000 n
+0000886862 00000 n
+0000886927 00000 n
+0001536673 00000 n
+0000893198 00000 n
+0000889443 00000 n
+0000887195 00000 n
+0000889568 00000 n
+0000889632 00000 n
+0000889697 00000 n
+0000889761 00000 n
+0000889826 00000 n
+0000889891 00000 n
+0000889956 00000 n
+0000890021 00000 n
+0000890086 00000 n
+0000890151 00000 n
+0000890216 00000 n
+0000890281 00000 n
+0000890346 00000 n
+0000890410 00000 n
+0000890475 00000 n
+0000890540 00000 n
+0000890605 00000 n
+0000890670 00000 n
+0000890735 00000 n
+0000890800 00000 n
+0000890865 00000 n
+0000890930 00000 n
+0000890995 00000 n
+0000891060 00000 n
+0000891125 00000 n
+0000891190 00000 n
+0000891255 00000 n
+0000891320 00000 n
+0000891385 00000 n
+0000891449 00000 n
+0000891514 00000 n
+0000891579 00000 n
+0000891644 00000 n
+0000891709 00000 n
+0000891774 00000 n
+0000891839 00000 n
+0000891904 00000 n
+0000891969 00000 n
+0000892032 00000 n
+0000892097 00000 n
+0000892162 00000 n
+0000892227 00000 n
+0000892292 00000 n
+0000892357 00000 n
+0000892422 00000 n
+0000892487 00000 n
+0000892552 00000 n
+0000892616 00000 n
+0000892681 00000 n
+0000892746 00000 n
+0000892811 00000 n
+0000892876 00000 n
+0000892940 00000 n
+0000893005 00000 n
+0000893070 00000 n
+0000893134 00000 n
+0000899083 00000 n
+0000896234 00000 n
+0000893362 00000 n
+0000896359 00000 n
+0000896423 00000 n
+0000896488 00000 n
+0000896552 00000 n
+0000896617 00000 n
+0000896682 00000 n
+0000896747 00000 n
+0000896812 00000 n
+0000896877 00000 n
+0000896942 00000 n
+0000897006 00000 n
+0000897071 00000 n
+0000897136 00000 n
+0000897201 00000 n
+0000897266 00000 n
+0000897331 00000 n
+0000897396 00000 n
+0000897461 00000 n
+0000897526 00000 n
+0000897590 00000 n
+0000897655 00000 n
+0000897720 00000 n
+0000897785 00000 n
+0000897850 00000 n
+0000897915 00000 n
+0000897980 00000 n
+0000898045 00000 n
+0000898110 00000 n
+0000898175 00000 n
+0000898240 00000 n
+0000898305 00000 n
+0000898370 00000 n
+0000898434 00000 n
+0000898499 00000 n
+0000898564 00000 n
+0000898629 00000 n
+0000898694 00000 n
+0000898759 00000 n
+0000898824 00000 n
+0000898889 00000 n
+0000898953 00000 n
+0000899018 00000 n
+0000905635 00000 n
+0000901816 00000 n
+0000899260 00000 n
+0000901941 00000 n
+0000902005 00000 n
+0000902070 00000 n
+0000902135 00000 n
+0000902199 00000 n
+0000902264 00000 n
+0000902329 00000 n
+0000902394 00000 n
+0000902459 00000 n
+0000902524 00000 n
+0000902589 00000 n
+0000902654 00000 n
+0000902719 00000 n
+0000902782 00000 n
+0000902847 00000 n
+0000902912 00000 n
+0000902977 00000 n
+0000903042 00000 n
+0000903107 00000 n
+0000903172 00000 n
+0000903237 00000 n
+0000903302 00000 n
+0000903366 00000 n
+0000903431 00000 n
+0000903496 00000 n
+0000903561 00000 n
+0000903626 00000 n
+0000903691 00000 n
+0000903756 00000 n
+0000903821 00000 n
+0000903886 00000 n
+0000903950 00000 n
+0000904015 00000 n
+0000904080 00000 n
+0000904145 00000 n
+0000904210 00000 n
+0000904275 00000 n
+0000904340 00000 n
+0000904405 00000 n
+0000904470 00000 n
+0000904535 00000 n
+0000904600 00000 n
+0000904665 00000 n
+0000904730 00000 n
+0000904793 00000 n
+0000904858 00000 n
+0000904923 00000 n
+0000904988 00000 n
+0000905053 00000 n
+0000905118 00000 n
+0000905183 00000 n
+0000905248 00000 n
+0000905313 00000 n
+0000905377 00000 n
+0000905442 00000 n
+0000905507 00000 n
+0000905571 00000 n
+0000911642 00000 n
+0000908081 00000 n
+0000905812 00000 n
+0000908206 00000 n
+0000908270 00000 n
+0000908335 00000 n
+0000908399 00000 n
+0000908464 00000 n
+0000908529 00000 n
+0000908594 00000 n
+0000908658 00000 n
+0000908723 00000 n
+0000908788 00000 n
+0000908853 00000 n
+0000908918 00000 n
+0000908983 00000 n
+0000909048 00000 n
+0000909113 00000 n
+0000909178 00000 n
+0000909243 00000 n
+0000909307 00000 n
+0000909371 00000 n
+0000909436 00000 n
+0000909501 00000 n
+0000909566 00000 n
+0000909631 00000 n
+0000909696 00000 n
+0000909761 00000 n
+0000909826 00000 n
+0000909891 00000 n
+0000909956 00000 n
+0000910021 00000 n
+0000910086 00000 n
+0000910151 00000 n
+0000910216 00000 n
+0000910281 00000 n
+0000910346 00000 n
+0000910411 00000 n
+0000910476 00000 n
+0000910541 00000 n
+0000910606 00000 n
+0000910671 00000 n
+0000910735 00000 n
+0000910800 00000 n
+0000910865 00000 n
+0000910930 00000 n
+0000910995 00000 n
+0000911060 00000 n
+0000911125 00000 n
+0000911190 00000 n
+0000911255 00000 n
+0000911320 00000 n
+0000911384 00000 n
+0000911449 00000 n
+0000911514 00000 n
+0000911578 00000 n
+0000917296 00000 n
+0000914064 00000 n
+0000911819 00000 n
+0000914189 00000 n
+0000914253 00000 n
+0000914318 00000 n
+0000914382 00000 n
+0000914447 00000 n
+0000914512 00000 n
+0000914577 00000 n
+0000914642 00000 n
+0000914707 00000 n
+0000914772 00000 n
+0000914837 00000 n
+0000914902 00000 n
+0000914967 00000 n
+0000915030 00000 n
+0000915095 00000 n
+0000915160 00000 n
+0000915225 00000 n
+0000915290 00000 n
+0000915355 00000 n
+0000915420 00000 n
+0000915485 00000 n
+0000915550 00000 n
+0000915614 00000 n
+0000915679 00000 n
+0000915744 00000 n
+0000915871 00000 n
+0000915936 00000 n
+0000916000 00000 n
+0000916065 00000 n
+0000916130 00000 n
+0000916195 00000 n
+0000916260 00000 n
+0000916324 00000 n
+0000916389 00000 n
+0000916454 00000 n
+0000916519 00000 n
+0000916584 00000 n
+0000916649 00000 n
+0000916714 00000 n
+0000916779 00000 n
+0000916844 00000 n
+0000916908 00000 n
+0000916973 00000 n
+0000917038 00000 n
+0000917103 00000 n
+0000917168 00000 n
+0000917232 00000 n
+0000922733 00000 n
+0000920148 00000 n
+0000917473 00000 n
+0000920273 00000 n
+0000920337 00000 n
+0000920402 00000 n
+0000920467 00000 n
+0000920532 00000 n
+0000920597 00000 n
+0000920662 00000 n
+0000920727 00000 n
+0000920792 00000 n
+0000920857 00000 n
+0000920922 00000 n
+0000920987 00000 n
+0000921052 00000 n
+0000921117 00000 n
+0000921182 00000 n
+0000921246 00000 n
+0000921311 00000 n
+0000921376 00000 n
+0000921441 00000 n
+0000921506 00000 n
+0000921571 00000 n
+0000921636 00000 n
+0000921700 00000 n
+0000921765 00000 n
+0000921830 00000 n
+0000921895 00000 n
+0000921960 00000 n
+0000922025 00000 n
+0000922086 00000 n
+0000922151 00000 n
+0000922216 00000 n
+0000922281 00000 n
+0000922346 00000 n
+0000922411 00000 n
+0000922476 00000 n
+0000922541 00000 n
+0000922606 00000 n
+0000922669 00000 n
+0000928218 00000 n
+0000925047 00000 n
+0000922910 00000 n
+0000925172 00000 n
+0000925236 00000 n
+0000925301 00000 n
+0000925365 00000 n
+0000925430 00000 n
+0000925495 00000 n
+0000925560 00000 n
+0000925625 00000 n
+0000925690 00000 n
+0000925755 00000 n
+0000925820 00000 n
+0000925884 00000 n
+0000925949 00000 n
+0000926014 00000 n
+0000926079 00000 n
+0000926144 00000 n
+0000926209 00000 n
+0000926274 00000 n
+0000926339 00000 n
+0000926404 00000 n
+0000926468 00000 n
+0000926533 00000 n
+0000926598 00000 n
+0000926663 00000 n
+0000926728 00000 n
+0000926793 00000 n
+0000926858 00000 n
+0000926922 00000 n
+0000926987 00000 n
+0000927052 00000 n
+0000927117 00000 n
+0000927182 00000 n
+0000927247 00000 n
+0000927312 00000 n
+0000927377 00000 n
+0000927442 00000 n
+0000927506 00000 n
+0000927571 00000 n
+0000927636 00000 n
+0000927701 00000 n
+0000927766 00000 n
+0000927831 00000 n
+0000927896 00000 n
+0000927961 00000 n
+0000928026 00000 n
+0000928091 00000 n
+0000933967 00000 n
+0000930731 00000 n
+0000928408 00000 n
+0000930856 00000 n
+0000930920 00000 n
+0000930985 00000 n
+0000931050 00000 n
+0000931115 00000 n
+0000931180 00000 n
+0000931245 00000 n
+0000931310 00000 n
+0000931375 00000 n
+0000931440 00000 n
+0000931504 00000 n
+0000931569 00000 n
+0000931634 00000 n
+0000931699 00000 n
+0000931764 00000 n
+0000931828 00000 n
+0000931893 00000 n
+0000931958 00000 n
+0000932023 00000 n
+0000932088 00000 n
+0000932153 00000 n
+0000932218 00000 n
+0000932283 00000 n
+0000932348 00000 n
+0000932412 00000 n
+0000932477 00000 n
+0000932542 00000 n
+0000932607 00000 n
+0000932672 00000 n
+0000932737 00000 n
+0000932802 00000 n
+0000932867 00000 n
+0000932932 00000 n
+0000932997 00000 n
+0000933061 00000 n
+0000933126 00000 n
+0000933191 00000 n
+0000933256 00000 n
+0000933321 00000 n
+0000933386 00000 n
+0000933451 00000 n
+0000933516 00000 n
+0000933581 00000 n
+0000933646 00000 n
+0000933711 00000 n
+0000933776 00000 n
+0000933840 00000 n
+0000939139 00000 n
+0000937004 00000 n
+0000934144 00000 n
+0000937129 00000 n
+0000937193 00000 n
+0000937258 00000 n
+0000937323 00000 n
+0000937388 00000 n
+0000937453 00000 n
+0000937518 00000 n
+0000937583 00000 n
+0000937648 00000 n
+0000937712 00000 n
+0000937777 00000 n
+0000937842 00000 n
+0000937907 00000 n
+0000937972 00000 n
+0000938037 00000 n
+0000938102 00000 n
+0000938167 00000 n
+0000938232 00000 n
+0000938297 00000 n
+0000938362 00000 n
+0000938427 00000 n
+0000938492 00000 n
+0000938557 00000 n
+0000938622 00000 n
+0000938687 00000 n
+0000938752 00000 n
+0000938815 00000 n
+0000938880 00000 n
+0000938944 00000 n
+0000939009 00000 n
+0000939074 00000 n
+0000945242 00000 n
+0000941811 00000 n
+0000939342 00000 n
+0000941936 00000 n
+0000942000 00000 n
+0000942065 00000 n
+0000942129 00000 n
+0000942194 00000 n
+0000942259 00000 n
+0000942323 00000 n
+0000942388 00000 n
+0000942453 00000 n
+0000942518 00000 n
+0000942583 00000 n
+0000942648 00000 n
+0000942713 00000 n
+0000942778 00000 n
+0000942843 00000 n
+0000942908 00000 n
+0000942973 00000 n
+0000943038 00000 n
+0000943102 00000 n
+0000943167 00000 n
+0000943232 00000 n
+0000943297 00000 n
+0000943362 00000 n
+0000943427 00000 n
+0000943492 00000 n
+0000943557 00000 n
+0000943622 00000 n
+0000943687 00000 n
+0000943752 00000 n
+0000943817 00000 n
+0000943881 00000 n
+0000943946 00000 n
+0000944011 00000 n
+0000944076 00000 n
+0000944141 00000 n
+0000944206 00000 n
+0000944271 00000 n
+0000944336 00000 n
+0000944401 00000 n
+0000944465 00000 n
+0000944530 00000 n
+0000944595 00000 n
+0000944660 00000 n
+0000944725 00000 n
+0000944790 00000 n
+0000944855 00000 n
+0000944920 00000 n
+0000944984 00000 n
+0000945049 00000 n
+0000945114 00000 n
+0000945178 00000 n
+0001536838 00000 n
+0000948177 00000 n
+0000951185 00000 n
+0000948004 00000 n
+0000945419 00000 n
+0000948335 00000 n
+0000948399 00000 n
+0000948464 00000 n
+0000948529 00000 n
+0000948594 00000 n
+0000948658 00000 n
+0000948722 00000 n
+0000948787 00000 n
+0000948852 00000 n
+0000948917 00000 n
+0000948982 00000 n
+0000949047 00000 n
+0000949112 00000 n
+0000949177 00000 n
+0000949242 00000 n
+0000949306 00000 n
+0000949371 00000 n
+0000949436 00000 n
+0000949501 00000 n
+0000949566 00000 n
+0000949631 00000 n
+0000949696 00000 n
+0000949761 00000 n
+0000949826 00000 n
+0000949891 00000 n
+0000949956 00000 n
+0000950020 00000 n
+0000950085 00000 n
+0000950150 00000 n
+0000950215 00000 n
+0000950280 00000 n
+0000950345 00000 n
+0000950410 00000 n
+0000950475 00000 n
+0000950540 00000 n
+0000950605 00000 n
+0000950666 00000 n
+0000950731 00000 n
+0000950796 00000 n
+0000950861 00000 n
+0000950926 00000 n
+0000950991 00000 n
+0000951056 00000 n
+0000951121 00000 n
+0000948146 00000 n
+0000957497 00000 n
+0000954131 00000 n
+0000951414 00000 n
+0000954256 00000 n
+0000954320 00000 n
+0000954385 00000 n
+0000954449 00000 n
+0000954514 00000 n
+0000954579 00000 n
+0000954644 00000 n
+0000954709 00000 n
+0000954774 00000 n
+0000954839 00000 n
+0000954904 00000 n
+0000954969 00000 n
+0000955033 00000 n
+0000955098 00000 n
+0000955163 00000 n
+0000955228 00000 n
+0000955293 00000 n
+0000955358 00000 n
+0000955423 00000 n
+0000955488 00000 n
+0000955552 00000 n
+0000955617 00000 n
+0000955682 00000 n
+0000955747 00000 n
+0000955812 00000 n
+0000955877 00000 n
+0000955942 00000 n
+0000956007 00000 n
+0000956072 00000 n
+0000956137 00000 n
+0000956201 00000 n
+0000956266 00000 n
+0000956331 00000 n
+0000956396 00000 n
+0000956461 00000 n
+0000956526 00000 n
+0000956591 00000 n
+0000956656 00000 n
+0000956720 00000 n
+0000956785 00000 n
+0000956850 00000 n
+0000956915 00000 n
+0000956980 00000 n
+0000957045 00000 n
+0000957110 00000 n
+0000957175 00000 n
+0000957239 00000 n
+0000957304 00000 n
+0000957369 00000 n
+0000957433 00000 n
+0000963263 00000 n
+0000960031 00000 n
+0000957687 00000 n
+0000960156 00000 n
+0000960220 00000 n
+0000960285 00000 n
+0000960349 00000 n
+0000960414 00000 n
+0000960479 00000 n
+0000960544 00000 n
+0000960609 00000 n
+0000960674 00000 n
+0000960739 00000 n
+0000960802 00000 n
+0000960867 00000 n
+0000960932 00000 n
+0000960997 00000 n
+0000961062 00000 n
+0000961127 00000 n
+0000961192 00000 n
+0000961257 00000 n
+0000961322 00000 n
+0000961386 00000 n
+0000961451 00000 n
+0000961516 00000 n
+0000961644 00000 n
+0000961709 00000 n
+0000961774 00000 n
+0000961838 00000 n
+0000961903 00000 n
+0000961968 00000 n
+0000962033 00000 n
+0000962098 00000 n
+0000962163 00000 n
+0000962228 00000 n
+0000962293 00000 n
+0000962358 00000 n
+0000962421 00000 n
+0000962486 00000 n
+0000962551 00000 n
+0000962616 00000 n
+0000962681 00000 n
+0000962746 00000 n
+0000962811 00000 n
+0000962876 00000 n
+0000962941 00000 n
+0000963005 00000 n
+0000963070 00000 n
+0000963135 00000 n
+0000963199 00000 n
+0000969558 00000 n
+0000966903 00000 n
+0000963453 00000 n
+0000967028 00000 n
+0000967092 00000 n
+0000967157 00000 n
+0000967221 00000 n
+0000967286 00000 n
+0000967351 00000 n
+0000967416 00000 n
+0000967481 00000 n
+0000967546 00000 n
+0000967611 00000 n
+0000967676 00000 n
+0000967741 00000 n
+0000967805 00000 n
+0000967870 00000 n
+0000967935 00000 n
+0000968000 00000 n
+0000968065 00000 n
+0000968130 00000 n
+0000968195 00000 n
+0000968260 00000 n
+0000968325 00000 n
+0000968390 00000 n
+0000968455 00000 n
+0000968520 00000 n
+0000968583 00000 n
+0000968648 00000 n
+0000968713 00000 n
+0000968778 00000 n
+0000968843 00000 n
+0000968908 00000 n
+0000968973 00000 n
+0000969038 00000 n
+0000969103 00000 n
+0000969168 00000 n
+0000969233 00000 n
+0000969298 00000 n
+0000969363 00000 n
+0000969428 00000 n
+0000969493 00000 n
+0000975590 00000 n
+0000972807 00000 n
+0000969761 00000 n
+0000972932 00000 n
+0000972996 00000 n
+0000973061 00000 n
+0000973126 00000 n
+0000973191 00000 n
+0000973255 00000 n
+0000973320 00000 n
+0000973385 00000 n
+0000973450 00000 n
+0000973515 00000 n
+0000973580 00000 n
+0000973645 00000 n
+0000973710 00000 n
+0000973775 00000 n
+0000973840 00000 n
+0000973904 00000 n
+0000973969 00000 n
+0000974034 00000 n
+0000974099 00000 n
+0000974164 00000 n
+0000974229 00000 n
+0000974294 00000 n
+0000974359 00000 n
+0000974423 00000 n
+0000974488 00000 n
+0000974553 00000 n
+0000974618 00000 n
+0000974683 00000 n
+0000974748 00000 n
+0000974813 00000 n
+0000974878 00000 n
+0000974943 00000 n
+0000975008 00000 n
+0000975073 00000 n
+0000975138 00000 n
+0000975203 00000 n
+0000975268 00000 n
+0000975332 00000 n
+0000975397 00000 n
+0000975462 00000 n
+0000975526 00000 n
+0000981762 00000 n
+0000979693 00000 n
+0000975780 00000 n
+0000979818 00000 n
+0000979882 00000 n
+0000979946 00000 n
+0000980011 00000 n
+0000980076 00000 n
+0000980141 00000 n
+0000980206 00000 n
+0000980271 00000 n
+0000980336 00000 n
+0000980401 00000 n
+0000980466 00000 n
+0000980530 00000 n
+0000980595 00000 n
+0000980660 00000 n
+0000980725 00000 n
+0000980790 00000 n
+0000980855 00000 n
+0000980920 00000 n
+0000980985 00000 n
+0000981050 00000 n
+0000981114 00000 n
+0000981179 00000 n
+0000981244 00000 n
+0000981309 00000 n
+0000981374 00000 n
+0000981439 00000 n
+0000981503 00000 n
+0000981568 00000 n
+0000981633 00000 n
+0000981697 00000 n
+0000987096 00000 n
+0000984767 00000 n
+0000981991 00000 n
+0000984892 00000 n
+0000984956 00000 n
+0000985021 00000 n
+0000985086 00000 n
+0000985151 00000 n
+0000985216 00000 n
+0000985281 00000 n
+0000985346 00000 n
+0000985411 00000 n
+0000985475 00000 n
+0000985540 00000 n
+0000985605 00000 n
+0000985670 00000 n
+0000985735 00000 n
+0000985799 00000 n
+0000985864 00000 n
+0000985928 00000 n
+0000985993 00000 n
+0000986058 00000 n
+0000986123 00000 n
+0000986188 00000 n
+0000986253 00000 n
+0000986318 00000 n
+0000986383 00000 n
+0000986448 00000 n
+0000986513 00000 n
+0000986578 00000 n
+0000986643 00000 n
+0000986708 00000 n
+0000986773 00000 n
+0000986838 00000 n
+0000986903 00000 n
+0000986968 00000 n
+0000987032 00000 n
+0000992791 00000 n
+0000989686 00000 n
+0000987299 00000 n
+0000989811 00000 n
+0000989875 00000 n
+0000989940 00000 n
+0000990004 00000 n
+0000990069 00000 n
+0000990133 00000 n
+0000990198 00000 n
+0000990263 00000 n
+0000990328 00000 n
+0000990393 00000 n
+0000990458 00000 n
+0000990523 00000 n
+0000990588 00000 n
+0000990653 00000 n
+0000990717 00000 n
+0000990782 00000 n
+0000990847 00000 n
+0000990912 00000 n
+0000990977 00000 n
+0000991042 00000 n
+0000991107 00000 n
+0000991172 00000 n
+0000991237 00000 n
+0000991302 00000 n
+0000991367 00000 n
+0000991432 00000 n
+0000991497 00000 n
+0000991562 00000 n
+0000991627 00000 n
+0000991691 00000 n
+0000991756 00000 n
+0000991821 00000 n
+0000991886 00000 n
+0000991951 00000 n
+0000992016 00000 n
+0000992081 00000 n
+0000992145 00000 n
+0000992210 00000 n
+0000992275 00000 n
+0000992340 00000 n
+0000992405 00000 n
+0000992470 00000 n
+0000992535 00000 n
+0000992600 00000 n
+0000992665 00000 n
+0000992729 00000 n
+0000998729 00000 n
+0000995037 00000 n
+0000992955 00000 n
+0000995162 00000 n
+0000995226 00000 n
+0000995291 00000 n
+0000995355 00000 n
+0000995420 00000 n
+0000995485 00000 n
+0000995550 00000 n
+0000995615 00000 n
+0000995680 00000 n
+0000995745 00000 n
+0000995810 00000 n
+0000995875 00000 n
+0000995939 00000 n
+0000996004 00000 n
+0000996069 00000 n
+0000996134 00000 n
+0000996199 00000 n
+0000996264 00000 n
+0000996329 00000 n
+0000996394 00000 n
+0000996459 00000 n
+0000996523 00000 n
+0000996588 00000 n
+0000996653 00000 n
+0000996718 00000 n
+0000996783 00000 n
+0000996848 00000 n
+0000996913 00000 n
+0000996978 00000 n
+0000997043 00000 n
+0000997108 00000 n
+0000997172 00000 n
+0000997237 00000 n
+0000997302 00000 n
+0000997367 00000 n
+0000997432 00000 n
+0000997497 00000 n
+0000997562 00000 n
+0000997627 00000 n
+0000997692 00000 n
+0000997757 00000 n
+0000997822 00000 n
+0000997887 00000 n
+0000997952 00000 n
+0000998017 00000 n
+0000998081 00000 n
+0000998146 00000 n
+0000998211 00000 n
+0000998276 00000 n
+0000998341 00000 n
+0000998406 00000 n
+0000998471 00000 n
+0000998536 00000 n
+0000998601 00000 n
+0000998665 00000 n
+0001004985 00000 n
+0001001811 00000 n
+0000998893 00000 n
+0001001936 00000 n
+0001002000 00000 n
+0001002065 00000 n
+0001002130 00000 n
+0001002195 00000 n
+0001002259 00000 n
+0001002324 00000 n
+0001002389 00000 n
+0001002454 00000 n
+0001002519 00000 n
+0001002584 00000 n
+0001002649 00000 n
+0001002714 00000 n
+0001002779 00000 n
+0001002843 00000 n
+0001002908 00000 n
+0001002973 00000 n
+0001003038 00000 n
+0001003103 00000 n
+0001003168 00000 n
+0001003233 00000 n
+0001003298 00000 n
+0001003363 00000 n
+0001003428 00000 n
+0001003493 00000 n
+0001003558 00000 n
+0001003623 00000 n
+0001003688 00000 n
+0001003753 00000 n
+0001003818 00000 n
+0001003883 00000 n
+0001003948 00000 n
+0001004012 00000 n
+0001004077 00000 n
+0001004142 00000 n
+0001004207 00000 n
+0001004272 00000 n
+0001004337 00000 n
+0001004402 00000 n
+0001004467 00000 n
+0001004532 00000 n
+0001004596 00000 n
+0001004661 00000 n
+0001004725 00000 n
+0001004790 00000 n
+0001004855 00000 n
+0001004920 00000 n
+0001537003 00000 n
+0001010837 00000 n
+0001007210 00000 n
+0001005188 00000 n
+0001007335 00000 n
+0001007399 00000 n
+0001007464 00000 n
+0001007529 00000 n
+0001007593 00000 n
+0001007658 00000 n
+0001007723 00000 n
+0001007788 00000 n
+0001007853 00000 n
+0001007918 00000 n
+0001007983 00000 n
+0001008048 00000 n
+0001008113 00000 n
+0001008177 00000 n
+0001008242 00000 n
+0001008307 00000 n
+0001008372 00000 n
+0001008437 00000 n
+0001008502 00000 n
+0001008567 00000 n
+0001008632 00000 n
+0001008697 00000 n
+0001008762 00000 n
+0001008827 00000 n
+0001008892 00000 n
+0001008957 00000 n
+0001009022 00000 n
+0001009087 00000 n
+0001009152 00000 n
+0001009217 00000 n
+0001009282 00000 n
+0001009347 00000 n
+0001009411 00000 n
+0001009476 00000 n
+0001009541 00000 n
+0001009606 00000 n
+0001009671 00000 n
+0001009736 00000 n
+0001009801 00000 n
+0001009866 00000 n
+0001009931 00000 n
+0001009995 00000 n
+0001010060 00000 n
+0001010125 00000 n
+0001010190 00000 n
+0001010255 00000 n
+0001010320 00000 n
+0001010385 00000 n
+0001010450 00000 n
+0001010515 00000 n
+0001010579 00000 n
+0001010644 00000 n
+0001010709 00000 n
+0001010773 00000 n
+0001017102 00000 n
+0001013347 00000 n
+0001011014 00000 n
+0001013472 00000 n
+0001013536 00000 n
+0001013601 00000 n
+0001013665 00000 n
+0001013730 00000 n
+0001013795 00000 n
+0001013860 00000 n
+0001013925 00000 n
+0001013990 00000 n
+0001014055 00000 n
+0001014120 00000 n
+0001014184 00000 n
+0001014249 00000 n
+0001014314 00000 n
+0001014379 00000 n
+0001014444 00000 n
+0001014508 00000 n
+0001014573 00000 n
+0001014638 00000 n
+0001014703 00000 n
+0001014768 00000 n
+0001014833 00000 n
+0001014898 00000 n
+0001014963 00000 n
+0001015028 00000 n
+0001015092 00000 n
+0001015157 00000 n
+0001015222 00000 n
+0001015287 00000 n
+0001015352 00000 n
+0001015417 00000 n
+0001015482 00000 n
+0001015547 00000 n
+0001015612 00000 n
+0001015676 00000 n
+0001015741 00000 n
+0001015806 00000 n
+0001015871 00000 n
+0001015936 00000 n
+0001016001 00000 n
+0001016066 00000 n
+0001016131 00000 n
+0001016196 00000 n
+0001016260 00000 n
+0001016325 00000 n
+0001016390 00000 n
+0001016455 00000 n
+0001016520 00000 n
+0001016585 00000 n
+0001016650 00000 n
+0001016715 00000 n
+0001016780 00000 n
+0001016844 00000 n
+0001016909 00000 n
+0001016974 00000 n
+0001017038 00000 n
+0001023484 00000 n
+0001020184 00000 n
+0001017292 00000 n
+0001020309 00000 n
+0001020373 00000 n
+0001020438 00000 n
+0001020502 00000 n
+0001020567 00000 n
+0001020632 00000 n
+0001020697 00000 n
+0001020762 00000 n
+0001020827 00000 n
+0001020892 00000 n
+0001020957 00000 n
+0001021022 00000 n
+0001021086 00000 n
+0001021151 00000 n
+0001021216 00000 n
+0001021281 00000 n
+0001021346 00000 n
+0001021411 00000 n
+0001021476 00000 n
+0001021541 00000 n
+0001021606 00000 n
+0001021670 00000 n
+0001021735 00000 n
+0001021800 00000 n
+0001021865 00000 n
+0001021930 00000 n
+0001021995 00000 n
+0001022060 00000 n
+0001022123 00000 n
+0001022188 00000 n
+0001022253 00000 n
+0001022318 00000 n
+0001022383 00000 n
+0001022448 00000 n
+0001022513 00000 n
+0001022578 00000 n
+0001022643 00000 n
+0001022708 00000 n
+0001022772 00000 n
+0001022837 00000 n
+0001022902 00000 n
+0001022967 00000 n
+0001023032 00000 n
+0001023097 00000 n
+0001023162 00000 n
+0001023227 00000 n
+0001023292 00000 n
+0001023356 00000 n
+0001023420 00000 n
+0001029689 00000 n
+0001025997 00000 n
+0001023661 00000 n
+0001026122 00000 n
+0001026186 00000 n
+0001026251 00000 n
+0001026315 00000 n
+0001026380 00000 n
+0001026445 00000 n
+0001026510 00000 n
+0001026575 00000 n
+0001026640 00000 n
+0001026705 00000 n
+0001026770 00000 n
0001026835 00000 n
-0001032942 00000 n
-0001029250 00000 n
-0001027076 00000 n
-0001029375 00000 n
-0001029439 00000 n
-0001029504 00000 n
-0001029569 00000 n
-0001029634 00000 n
-0001029699 00000 n
-0001029764 00000 n
-0001029829 00000 n
-0001029894 00000 n
-0001029959 00000 n
-0001030024 00000 n
-0001030089 00000 n
-0001030154 00000 n
-0001030219 00000 n
-0001030284 00000 n
-0001030349 00000 n
-0001030414 00000 n
-0001030479 00000 n
-0001030543 00000 n
-0001030608 00000 n
-0001030673 00000 n
-0001030738 00000 n
-0001030803 00000 n
-0001030868 00000 n
-0001030933 00000 n
-0001030998 00000 n
-0001031063 00000 n
-0001031128 00000 n
-0001031192 00000 n
-0001031257 00000 n
-0001031322 00000 n
-0001031387 00000 n
-0001031452 00000 n
-0001031517 00000 n
-0001031582 00000 n
-0001031646 00000 n
-0001031711 00000 n
-0001031776 00000 n
-0001031841 00000 n
-0001031906 00000 n
-0001031971 00000 n
-0001032036 00000 n
-0001032101 00000 n
-0001032166 00000 n
-0001032230 00000 n
-0001032295 00000 n
-0001032360 00000 n
-0001032425 00000 n
-0001032490 00000 n
-0001032555 00000 n
-0001032620 00000 n
-0001032685 00000 n
-0001032750 00000 n
-0001032814 00000 n
-0001032878 00000 n
-0001039043 00000 n
-0001035157 00000 n
-0001033119 00000 n
-0001035282 00000 n
-0001035346 00000 n
-0001035411 00000 n
-0001035476 00000 n
-0001035541 00000 n
-0001035606 00000 n
-0001035671 00000 n
-0001035736 00000 n
-0001035801 00000 n
-0001035866 00000 n
-0001035930 00000 n
-0001035995 00000 n
-0001036060 00000 n
-0001036125 00000 n
-0001036190 00000 n
-0001036255 00000 n
-0001036320 00000 n
-0001036385 00000 n
-0001036450 00000 n
-0001036515 00000 n
-0001036580 00000 n
-0001036644 00000 n
-0001036709 00000 n
-0001036774 00000 n
-0001036839 00000 n
-0001036904 00000 n
-0001036969 00000 n
-0001037034 00000 n
-0001037099 00000 n
-0001037163 00000 n
-0001037228 00000 n
-0001037293 00000 n
-0001037358 00000 n
-0001037423 00000 n
-0001037488 00000 n
-0001037553 00000 n
-0001037618 00000 n
-0001037683 00000 n
-0001037747 00000 n
-0001037812 00000 n
-0001037877 00000 n
-0001037942 00000 n
-0001038007 00000 n
-0001038072 00000 n
-0001038137 00000 n
-0001038202 00000 n
-0001038267 00000 n
-0001038331 00000 n
-0001038396 00000 n
-0001038461 00000 n
-0001038526 00000 n
-0001038591 00000 n
-0001038656 00000 n
-0001038721 00000 n
-0001038786 00000 n
-0001038851 00000 n
-0001038915 00000 n
-0001038979 00000 n
-0001045178 00000 n
-0001041226 00000 n
-0001039220 00000 n
-0001041351 00000 n
-0001041415 00000 n
-0001041480 00000 n
-0001041545 00000 n
-0001041610 00000 n
-0001041675 00000 n
-0001041740 00000 n
-0001041805 00000 n
-0001041870 00000 n
-0001041935 00000 n
-0001041999 00000 n
-0001042064 00000 n
-0001042129 00000 n
-0001042194 00000 n
-0001042259 00000 n
-0001042324 00000 n
-0001042389 00000 n
-0001042454 00000 n
-0001042519 00000 n
-0001042584 00000 n
-0001042649 00000 n
-0001042714 00000 n
-0001042779 00000 n
-0001042844 00000 n
-0001042909 00000 n
-0001042974 00000 n
-0001043038 00000 n
-0001043103 00000 n
-0001043168 00000 n
-0001043233 00000 n
-0001043298 00000 n
-0001043363 00000 n
-0001043428 00000 n
-0001043493 00000 n
-0001043558 00000 n
-0001043622 00000 n
-0001043687 00000 n
-0001043752 00000 n
-0001043817 00000 n
-0001043882 00000 n
-0001043947 00000 n
-0001044012 00000 n
-0001044077 00000 n
-0001044142 00000 n
-0001044207 00000 n
-0001044272 00000 n
-0001044336 00000 n
-0001044401 00000 n
-0001044466 00000 n
-0001044531 00000 n
-0001044596 00000 n
-0001044661 00000 n
-0001044726 00000 n
-0001044791 00000 n
-0001044856 00000 n
-0001044921 00000 n
-0001044985 00000 n
-0001045050 00000 n
-0001045114 00000 n
-0001050984 00000 n
-0001047289 00000 n
-0001045355 00000 n
-0001047414 00000 n
-0001047478 00000 n
-0001047543 00000 n
-0001047608 00000 n
-0001047673 00000 n
-0001047737 00000 n
-0001047802 00000 n
-0001047867 00000 n
-0001047932 00000 n
-0001047997 00000 n
-0001048062 00000 n
-0001048127 00000 n
-0001048192 00000 n
-0001048257 00000 n
-0001048321 00000 n
-0001048386 00000 n
-0001048451 00000 n
-0001048516 00000 n
-0001048581 00000 n
-0001048646 00000 n
-0001048711 00000 n
-0001048775 00000 n
-0001048840 00000 n
-0001048905 00000 n
-0001048970 00000 n
-0001049035 00000 n
-0001049100 00000 n
-0001049165 00000 n
-0001049230 00000 n
-0001049295 00000 n
-0001049360 00000 n
-0001049425 00000 n
-0001049490 00000 n
-0001049555 00000 n
-0001049620 00000 n
-0001049685 00000 n
-0001049750 00000 n
-0001049815 00000 n
-0001049880 00000 n
-0001049945 00000 n
-0001050010 00000 n
-0001050075 00000 n
-0001050140 00000 n
-0001050205 00000 n
-0001050270 00000 n
-0001050335 00000 n
-0001050400 00000 n
-0001050465 00000 n
-0001050530 00000 n
-0001050595 00000 n
-0001050660 00000 n
-0001050725 00000 n
-0001050789 00000 n
-0001050854 00000 n
-0001050919 00000 n
-0001056697 00000 n
-0001053264 00000 n
-0001051148 00000 n
-0001053389 00000 n
-0001053453 00000 n
-0001053518 00000 n
-0001053583 00000 n
-0001053648 00000 n
-0001053713 00000 n
-0001053778 00000 n
-0001053843 00000 n
-0001053908 00000 n
-0001053973 00000 n
-0001054038 00000 n
-0001054103 00000 n
-0001054168 00000 n
-0001054233 00000 n
-0001054298 00000 n
-0001054363 00000 n
-0001054428 00000 n
-0001054492 00000 n
-0001054557 00000 n
-0001054622 00000 n
-0001054687 00000 n
-0001054752 00000 n
-0001054817 00000 n
-0001054882 00000 n
-0001054947 00000 n
-0001055012 00000 n
-0001055077 00000 n
-0001055142 00000 n
-0001055207 00000 n
-0001055272 00000 n
-0001055337 00000 n
-0001055402 00000 n
-0001055467 00000 n
-0001055532 00000 n
-0001055597 00000 n
-0001055662 00000 n
-0001055727 00000 n
-0001055855 00000 n
-0001055920 00000 n
-0001055985 00000 n
-0001056050 00000 n
-0001056115 00000 n
-0001056180 00000 n
-0001056245 00000 n
-0001056310 00000 n
-0001056374 00000 n
-0001056439 00000 n
-0001056504 00000 n
-0001056569 00000 n
-0001056633 00000 n
-0001062584 00000 n
-0001059022 00000 n
-0001056887 00000 n
-0001059147 00000 n
-0001059211 00000 n
-0001059276 00000 n
-0001059341 00000 n
-0001059406 00000 n
-0001059471 00000 n
-0001059599 00000 n
-0001059663 00000 n
-0001059728 00000 n
-0001059793 00000 n
-0001059858 00000 n
-0001059923 00000 n
-0001059988 00000 n
-0001060053 00000 n
-0001060118 00000 n
-0001060183 00000 n
-0001060247 00000 n
-0001060312 00000 n
-0001060377 00000 n
-0001060442 00000 n
-0001060507 00000 n
-0001060572 00000 n
-0001060637 00000 n
-0001060702 00000 n
-0001060767 00000 n
-0001060832 00000 n
-0001060897 00000 n
-0001060962 00000 n
-0001061027 00000 n
-0001061092 00000 n
-0001061157 00000 n
-0001061222 00000 n
-0001061287 00000 n
-0001061352 00000 n
-0001061417 00000 n
-0001061482 00000 n
-0001061547 00000 n
-0001061612 00000 n
-0001061677 00000 n
-0001061742 00000 n
-0001061807 00000 n
-0001061872 00000 n
-0001061936 00000 n
-0001062001 00000 n
-0001062066 00000 n
-0001062131 00000 n
-0001062196 00000 n
-0001062261 00000 n
-0001062326 00000 n
-0001062391 00000 n
-0001062456 00000 n
-0001062520 00000 n
-0001067746 00000 n
-0001064903 00000 n
-0001062761 00000 n
-0001065028 00000 n
-0001065092 00000 n
-0001065157 00000 n
-0001065222 00000 n
-0001065287 00000 n
-0001065352 00000 n
-0001065417 00000 n
-0001065482 00000 n
-0001065547 00000 n
-0001065612 00000 n
-0001065677 00000 n
-0001065741 00000 n
-0001065806 00000 n
-0001065871 00000 n
-0001065936 00000 n
-0001066001 00000 n
-0001066066 00000 n
-0001066131 00000 n
-0001066196 00000 n
-0001066261 00000 n
-0001066326 00000 n
-0001066391 00000 n
-0001066456 00000 n
-0001066521 00000 n
-0001066586 00000 n
-0001066651 00000 n
-0001066779 00000 n
-0001066843 00000 n
-0001066908 00000 n
-0001066973 00000 n
-0001067038 00000 n
-0001067103 00000 n
-0001067168 00000 n
-0001067232 00000 n
-0001067360 00000 n
-0001067423 00000 n
-0001067488 00000 n
-0001067553 00000 n
-0001067618 00000 n
-0001067682 00000 n
-0001073450 00000 n
+0001026899 00000 n
+0001026964 00000 n
+0001027029 00000 n
+0001027094 00000 n
+0001027159 00000 n
+0001027224 00000 n
+0001027289 00000 n
+0001027354 00000 n
+0001027419 00000 n
+0001027483 00000 n
+0001027548 00000 n
+0001027613 00000 n
+0001027678 00000 n
+0001027743 00000 n
+0001027808 00000 n
+0001027873 00000 n
+0001027938 00000 n
+0001028003 00000 n
+0001028068 00000 n
+0001028133 00000 n
+0001028197 00000 n
+0001028262 00000 n
+0001028327 00000 n
+0001028392 00000 n
+0001028457 00000 n
+0001028522 00000 n
+0001028587 00000 n
+0001028652 00000 n
+0001028717 00000 n
+0001028782 00000 n
+0001028847 00000 n
+0001028912 00000 n
+0001028977 00000 n
+0001029042 00000 n
+0001029107 00000 n
+0001029172 00000 n
+0001029237 00000 n
+0001029302 00000 n
+0001029367 00000 n
+0001029431 00000 n
+0001029496 00000 n
+0001029561 00000 n
+0001029625 00000 n
+0001035672 00000 n
+0001031850 00000 n
+0001029866 00000 n
+0001031975 00000 n
+0001032039 00000 n
+0001032104 00000 n
+0001032169 00000 n
+0001032234 00000 n
+0001032298 00000 n
+0001032363 00000 n
+0001032428 00000 n
+0001032493 00000 n
+0001032558 00000 n
+0001032622 00000 n
+0001032687 00000 n
+0001032752 00000 n
+0001032817 00000 n
+0001032882 00000 n
+0001032946 00000 n
+0001033011 00000 n
+0001033076 00000 n
+0001033141 00000 n
+0001033206 00000 n
+0001033271 00000 n
+0001033336 00000 n
+0001033401 00000 n
+0001033466 00000 n
+0001033531 00000 n
+0001033595 00000 n
+0001033660 00000 n
+0001033725 00000 n
+0001033790 00000 n
+0001033855 00000 n
+0001033920 00000 n
+0001033985 00000 n
+0001034050 00000 n
+0001034115 00000 n
+0001034180 00000 n
+0001034245 00000 n
+0001034310 00000 n
+0001034375 00000 n
+0001034440 00000 n
+0001034505 00000 n
+0001034570 00000 n
+0001034635 00000 n
+0001034700 00000 n
+0001034765 00000 n
+0001034830 00000 n
+0001034894 00000 n
+0001034959 00000 n
+0001035024 00000 n
+0001035089 00000 n
+0001035154 00000 n
+0001035219 00000 n
+0001035284 00000 n
+0001035349 00000 n
+0001035414 00000 n
+0001035478 00000 n
+0001035543 00000 n
+0001035608 00000 n
+0001041459 00000 n
+0001038934 00000 n
+0001035836 00000 n
+0001039059 00000 n
+0001039123 00000 n
+0001039188 00000 n
+0001039252 00000 n
+0001039317 00000 n
+0001039382 00000 n
+0001039447 00000 n
+0001039512 00000 n
+0001039577 00000 n
+0001039642 00000 n
+0001039707 00000 n
+0001039772 00000 n
+0001039837 00000 n
+0001039902 00000 n
+0001039966 00000 n
+0001040031 00000 n
+0001040096 00000 n
+0001040161 00000 n
+0001040226 00000 n
+0001040291 00000 n
+0001040356 00000 n
+0001040421 00000 n
+0001040486 00000 n
+0001040551 00000 n
+0001040615 00000 n
+0001040680 00000 n
+0001040745 00000 n
+0001040810 00000 n
+0001040875 00000 n
+0001040939 00000 n
+0001041004 00000 n
+0001041069 00000 n
+0001041134 00000 n
+0001041199 00000 n
+0001041264 00000 n
+0001041329 00000 n
+0001041394 00000 n
+0001047569 00000 n
+0001044398 00000 n
+0001041636 00000 n
+0001044523 00000 n
+0001044587 00000 n
+0001044652 00000 n
+0001044717 00000 n
+0001044782 00000 n
+0001044847 00000 n
+0001044912 00000 n
+0001044977 00000 n
+0001045042 00000 n
+0001045107 00000 n
+0001045170 00000 n
+0001045235 00000 n
+0001045300 00000 n
+0001045365 00000 n
+0001045430 00000 n
+0001045495 00000 n
+0001045560 00000 n
+0001045625 00000 n
+0001045689 00000 n
+0001045754 00000 n
+0001045819 00000 n
+0001045884 00000 n
+0001045949 00000 n
+0001046014 00000 n
+0001046079 00000 n
+0001046143 00000 n
+0001046208 00000 n
+0001046273 00000 n
+0001046338 00000 n
+0001046403 00000 n
+0001046468 00000 n
+0001046533 00000 n
+0001046597 00000 n
+0001046662 00000 n
+0001046727 00000 n
+0001046792 00000 n
+0001046857 00000 n
+0001046922 00000 n
+0001046987 00000 n
+0001047052 00000 n
+0001047117 00000 n
+0001047182 00000 n
+0001047246 00000 n
+0001047311 00000 n
+0001047376 00000 n
+0001047441 00000 n
+0001047505 00000 n
+0001053904 00000 n
+0001049890 00000 n
+0001047746 00000 n
+0001050015 00000 n
+0001050079 00000 n
+0001050144 00000 n
+0001050208 00000 n
+0001050273 00000 n
+0001050338 00000 n
+0001050403 00000 n
+0001050468 00000 n
+0001050533 00000 n
+0001050598 00000 n
+0001050663 00000 n
+0001050728 00000 n
+0001050792 00000 n
+0001050857 00000 n
+0001050922 00000 n
+0001050987 00000 n
+0001051051 00000 n
+0001051116 00000 n
+0001051181 00000 n
+0001051246 00000 n
+0001051311 00000 n
+0001051376 00000 n
+0001051441 00000 n
+0001051506 00000 n
+0001051571 00000 n
+0001051635 00000 n
+0001051700 00000 n
+0001051765 00000 n
+0001051830 00000 n
+0001051895 00000 n
+0001051960 00000 n
+0001052025 00000 n
+0001052090 00000 n
+0001052155 00000 n
+0001052220 00000 n
+0001052285 00000 n
+0001052350 00000 n
+0001052415 00000 n
+0001052479 00000 n
+0001052544 00000 n
+0001052609 00000 n
+0001052674 00000 n
+0001052739 00000 n
+0001052804 00000 n
+0001052869 00000 n
+0001052934 00000 n
+0001052999 00000 n
+0001053062 00000 n
+0001053127 00000 n
+0001053192 00000 n
+0001053257 00000 n
+0001053322 00000 n
+0001053387 00000 n
+0001053452 00000 n
+0001053517 00000 n
+0001053582 00000 n
+0001053646 00000 n
+0001053711 00000 n
+0001053776 00000 n
+0001053840 00000 n
+0001060178 00000 n
+0001056098 00000 n
+0001054081 00000 n
+0001056223 00000 n
+0001056287 00000 n
+0001056352 00000 n
+0001056416 00000 n
+0001056481 00000 n
+0001056546 00000 n
+0001056611 00000 n
+0001056676 00000 n
+0001056741 00000 n
+0001056806 00000 n
+0001056871 00000 n
+0001056936 00000 n
+0001057000 00000 n
+0001057065 00000 n
+0001057130 00000 n
+0001057195 00000 n
+0001057260 00000 n
+0001057325 00000 n
+0001057390 00000 n
+0001057455 00000 n
+0001057520 00000 n
+0001057584 00000 n
+0001057649 00000 n
+0001057714 00000 n
+0001057779 00000 n
+0001057844 00000 n
+0001057909 00000 n
+0001057974 00000 n
+0001058039 00000 n
+0001058104 00000 n
+0001058168 00000 n
+0001058233 00000 n
+0001058298 00000 n
+0001058363 00000 n
+0001058428 00000 n
+0001058493 00000 n
+0001058558 00000 n
+0001058623 00000 n
+0001058688 00000 n
+0001058752 00000 n
+0001058817 00000 n
+0001058882 00000 n
+0001058947 00000 n
+0001059012 00000 n
+0001059077 00000 n
+0001059142 00000 n
+0001059207 00000 n
+0001059272 00000 n
+0001059336 00000 n
+0001059401 00000 n
+0001059466 00000 n
+0001059531 00000 n
+0001059596 00000 n
+0001059661 00000 n
+0001059726 00000 n
+0001059791 00000 n
+0001059855 00000 n
+0001059920 00000 n
+0001059985 00000 n
+0001060050 00000 n
+0001060114 00000 n
+0001066118 00000 n
+0001062621 00000 n
+0001060342 00000 n
+0001062746 00000 n
+0001062810 00000 n
+0001062875 00000 n
+0001062939 00000 n
+0001063004 00000 n
+0001063069 00000 n
+0001063134 00000 n
+0001063199 00000 n
+0001063264 00000 n
+0001063329 00000 n
+0001063394 00000 n
+0001063459 00000 n
+0001063523 00000 n
+0001063588 00000 n
+0001063653 00000 n
+0001063718 00000 n
+0001063783 00000 n
+0001063848 00000 n
+0001063913 00000 n
+0001063978 00000 n
+0001064043 00000 n
+0001064108 00000 n
+0001064173 00000 n
+0001064238 00000 n
+0001064302 00000 n
+0001064367 00000 n
+0001064432 00000 n
+0001064497 00000 n
+0001064562 00000 n
+0001064627 00000 n
+0001064692 00000 n
+0001064756 00000 n
+0001064821 00000 n
+0001064886 00000 n
+0001064951 00000 n
+0001065016 00000 n
+0001065081 00000 n
+0001065146 00000 n
+0001065211 00000 n
+0001065276 00000 n
+0001065341 00000 n
+0001065406 00000 n
+0001065471 00000 n
+0001065536 00000 n
+0001065601 00000 n
+0001065666 00000 n
+0001065731 00000 n
+0001065796 00000 n
+0001065860 00000 n
+0001065925 00000 n
+0001065990 00000 n
+0001066054 00000 n
+0001537168 00000 n
+0001072160 00000 n
+0001068145 00000 n
+0001066295 00000 n
+0001068270 00000 n
+0001068334 00000 n
+0001068399 00000 n
+0001068463 00000 n
+0001068528 00000 n
+0001068593 00000 n
+0001068658 00000 n
+0001068723 00000 n
+0001068788 00000 n
+0001068853 00000 n
+0001068918 00000 n
+0001068983 00000 n
+0001069047 00000 n
+0001069112 00000 n
+0001069177 00000 n
+0001069242 00000 n
+0001069307 00000 n
+0001069372 00000 n
+0001069437 00000 n
+0001069502 00000 n
+0001069567 00000 n
+0001069631 00000 n
+0001069696 00000 n
+0001069761 00000 n
+0001069826 00000 n
+0001069891 00000 n
+0001069956 00000 n
+0001070021 00000 n
+0001070086 00000 n
+0001070151 00000 n
+0001070215 00000 n
+0001070280 00000 n
+0001070345 00000 n
0001070410 00000 n
-0001067936 00000 n
-0001070535 00000 n
-0001070599 00000 n
-0001070664 00000 n
-0001070729 00000 n
-0001070794 00000 n
-0001070859 00000 n
-0001070923 00000 n
-0001070988 00000 n
-0001071053 00000 n
-0001071118 00000 n
-0001071183 00000 n
-0001071248 00000 n
-0001071313 00000 n
-0001071377 00000 n
-0001071442 00000 n
-0001071507 00000 n
-0001071571 00000 n
-0001071636 00000 n
-0001071701 00000 n
-0001071765 00000 n
-0001071830 00000 n
-0001071895 00000 n
-0001071960 00000 n
-0001072025 00000 n
-0001072090 00000 n
-0001072155 00000 n
-0001072220 00000 n
-0001072285 00000 n
-0001072349 00000 n
-0001072414 00000 n
-0001072479 00000 n
-0001072544 00000 n
-0001072609 00000 n
-0001072674 00000 n
-0001072739 00000 n
-0001072803 00000 n
-0001072868 00000 n
-0001072933 00000 n
-0001072998 00000 n
-0001073063 00000 n
-0001073128 00000 n
-0001073193 00000 n
-0001073258 00000 n
-0001073323 00000 n
-0001073386 00000 n
-0001076069 00000 n
-0001078428 00000 n
-0001075896 00000 n
-0001073627 00000 n
-0001076226 00000 n
-0001076290 00000 n
-0001076355 00000 n
-0001076420 00000 n
-0001076485 00000 n
-0001076550 00000 n
-0001076615 00000 n
-0001076680 00000 n
-0001076745 00000 n
-0001076810 00000 n
-0001076874 00000 n
-0001076939 00000 n
-0001077004 00000 n
-0001077069 00000 n
-0001077134 00000 n
-0001077199 00000 n
-0001077327 00000 n
-0001077392 00000 n
-0001077456 00000 n
-0001077521 00000 n
-0001077586 00000 n
-0001077651 00000 n
-0001077716 00000 n
-0001077781 00000 n
-0001077846 00000 n
-0001077911 00000 n
-0001077976 00000 n
-0001078041 00000 n
-0001078106 00000 n
-0001078171 00000 n
-0001078235 00000 n
-0001078300 00000 n
-0001890221 00000 n
-0001076038 00000 n
-0001084174 00000 n
-0001081391 00000 n
-0001078631 00000 n
+0001070475 00000 n
+0001070540 00000 n
+0001070605 00000 n
+0001070670 00000 n
+0001070735 00000 n
+0001070800 00000 n
+0001070864 00000 n
+0001070929 00000 n
+0001070994 00000 n
+0001071059 00000 n
+0001071124 00000 n
+0001071189 00000 n
+0001071254 00000 n
+0001071319 00000 n
+0001071384 00000 n
+0001071449 00000 n
+0001071514 00000 n
+0001071579 00000 n
+0001071644 00000 n
+0001071709 00000 n
+0001071774 00000 n
+0001071839 00000 n
+0001071904 00000 n
+0001071969 00000 n
+0001072034 00000 n
+0001072098 00000 n
+0001078186 00000 n
+0001074624 00000 n
+0001072337 00000 n
+0001074749 00000 n
+0001074813 00000 n
+0001074878 00000 n
+0001074942 00000 n
+0001075007 00000 n
+0001075072 00000 n
+0001075137 00000 n
+0001075202 00000 n
+0001075267 00000 n
+0001075332 00000 n
+0001075397 00000 n
+0001075462 00000 n
+0001075527 00000 n
+0001075592 00000 n
+0001075656 00000 n
+0001075721 00000 n
+0001075786 00000 n
+0001075851 00000 n
+0001075916 00000 n
+0001075981 00000 n
+0001076046 00000 n
+0001076111 00000 n
+0001076176 00000 n
+0001076240 00000 n
+0001076305 00000 n
+0001076370 00000 n
+0001076435 00000 n
+0001076500 00000 n
+0001076565 00000 n
+0001076630 00000 n
+0001076695 00000 n
+0001076760 00000 n
+0001076825 00000 n
+0001076890 00000 n
+0001076955 00000 n
+0001077020 00000 n
+0001077085 00000 n
+0001077150 00000 n
+0001077215 00000 n
+0001077278 00000 n
+0001077343 00000 n
+0001077408 00000 n
+0001077473 00000 n
+0001077538 00000 n
+0001077603 00000 n
+0001077668 00000 n
+0001077732 00000 n
+0001077797 00000 n
+0001077862 00000 n
+0001077927 00000 n
+0001077992 00000 n
+0001078057 00000 n
+0001078122 00000 n
+0001084564 00000 n
+0001080808 00000 n
+0001078363 00000 n
+0001080933 00000 n
+0001080997 00000 n
+0001081062 00000 n
+0001081127 00000 n
+0001081192 00000 n
+0001081256 00000 n
+0001081321 00000 n
+0001081386 00000 n
+0001081451 00000 n
0001081516 00000 n
-0001081580 00000 n
-0001081645 00000 n
-0001081710 00000 n
-0001081775 00000 n
+0001081581 00000 n
+0001081646 00000 n
+0001081711 00000 n
+0001081776 00000 n
0001081840 00000 n
0001081905 00000 n
0001081970 00000 n
-0001082034 00000 n
-0001082099 00000 n
-0001082164 00000 n
-0001082229 00000 n
-0001082294 00000 n
-0001082358 00000 n
-0001082423 00000 n
-0001082488 00000 n
-0001082553 00000 n
-0001082618 00000 n
-0001082683 00000 n
-0001082748 00000 n
-0001082813 00000 n
-0001082878 00000 n
-0001082942 00000 n
-0001083007 00000 n
-0001083072 00000 n
-0001083137 00000 n
-0001083202 00000 n
-0001083267 00000 n
-0001083332 00000 n
-0001083397 00000 n
-0001083462 00000 n
-0001083527 00000 n
-0001083592 00000 n
-0001083656 00000 n
-0001083721 00000 n
-0001083786 00000 n
-0001083851 00000 n
-0001083916 00000 n
-0001083981 00000 n
-0001084046 00000 n
-0001084110 00000 n
-0001089794 00000 n
-0001086041 00000 n
-0001084390 00000 n
-0001086166 00000 n
-0001086230 00000 n
-0001086295 00000 n
-0001086360 00000 n
-0001086425 00000 n
-0001086490 00000 n
-0001086555 00000 n
-0001086620 00000 n
-0001086685 00000 n
-0001086750 00000 n
-0001086814 00000 n
-0001086879 00000 n
-0001086944 00000 n
-0001087009 00000 n
-0001087074 00000 n
-0001087139 00000 n
-0001087265 00000 n
-0001087330 00000 n
-0001087395 00000 n
-0001087460 00000 n
-0001087525 00000 n
-0001087589 00000 n
-0001087654 00000 n
-0001087719 00000 n
-0001087784 00000 n
-0001087849 00000 n
-0001087914 00000 n
-0001087979 00000 n
-0001088044 00000 n
-0001088109 00000 n
-0001088173 00000 n
-0001088238 00000 n
-0001088303 00000 n
-0001088368 00000 n
-0001088433 00000 n
-0001088498 00000 n
-0001088563 00000 n
-0001088628 00000 n
-0001088693 00000 n
-0001088757 00000 n
-0001088822 00000 n
-0001088887 00000 n
-0001088952 00000 n
-0001089017 00000 n
-0001089082 00000 n
-0001089147 00000 n
-0001089212 00000 n
-0001089276 00000 n
-0001089341 00000 n
-0001089406 00000 n
-0001089471 00000 n
-0001089536 00000 n
-0001089601 00000 n
-0001089666 00000 n
-0001089730 00000 n
-0001095697 00000 n
-0001091937 00000 n
-0001089971 00000 n
-0001092062 00000 n
-0001092126 00000 n
-0001092191 00000 n
-0001092256 00000 n
-0001092321 00000 n
-0001092386 00000 n
-0001092451 00000 n
-0001092516 00000 n
-0001092581 00000 n
-0001092646 00000 n
-0001092710 00000 n
-0001092775 00000 n
-0001092840 00000 n
-0001092905 00000 n
-0001092970 00000 n
-0001093035 00000 n
-0001093100 00000 n
-0001093165 00000 n
-0001093230 00000 n
-0001093294 00000 n
-0001093359 00000 n
-0001093424 00000 n
-0001093489 00000 n
-0001093554 00000 n
-0001093619 00000 n
-0001093684 00000 n
-0001093749 00000 n
-0001093814 00000 n
-0001093879 00000 n
-0001093944 00000 n
-0001094009 00000 n
-0001094073 00000 n
-0001094138 00000 n
-0001094203 00000 n
-0001094268 00000 n
-0001094333 00000 n
-0001094398 00000 n
-0001094463 00000 n
-0001094528 00000 n
-0001094593 00000 n
-0001094658 00000 n
-0001094722 00000 n
-0001094787 00000 n
-0001094852 00000 n
-0001094917 00000 n
-0001094982 00000 n
-0001095047 00000 n
-0001095112 00000 n
-0001095177 00000 n
-0001095242 00000 n
-0001095307 00000 n
-0001095372 00000 n
-0001095437 00000 n
-0001095502 00000 n
-0001095567 00000 n
-0001095632 00000 n
-0001101161 00000 n
-0001098118 00000 n
-0001095874 00000 n
-0001098243 00000 n
-0001098307 00000 n
-0001098372 00000 n
-0001098437 00000 n
-0001098502 00000 n
-0001098567 00000 n
-0001098632 00000 n
-0001098697 00000 n
-0001098762 00000 n
-0001098827 00000 n
-0001098891 00000 n
-0001098956 00000 n
-0001099021 00000 n
-0001099086 00000 n
-0001099151 00000 n
-0001099216 00000 n
-0001099281 00000 n
-0001099346 00000 n
-0001099411 00000 n
-0001099476 00000 n
-0001099541 00000 n
-0001099606 00000 n
-0001099670 00000 n
-0001099735 00000 n
-0001099800 00000 n
-0001099865 00000 n
-0001099930 00000 n
-0001099995 00000 n
-0001100060 00000 n
-0001100125 00000 n
-0001100190 00000 n
-0001100254 00000 n
-0001100319 00000 n
-0001100384 00000 n
-0001100449 00000 n
-0001100514 00000 n
-0001100579 00000 n
-0001100644 00000 n
-0001100709 00000 n
-0001100773 00000 n
-0001100838 00000 n
-0001100903 00000 n
-0001100968 00000 n
-0001101033 00000 n
-0001101097 00000 n
-0001107307 00000 n
-0001103291 00000 n
-0001101351 00000 n
-0001103416 00000 n
-0001103480 00000 n
-0001103545 00000 n
-0001103610 00000 n
-0001103675 00000 n
-0001103740 00000 n
-0001103805 00000 n
-0001103870 00000 n
-0001103935 00000 n
-0001104000 00000 n
-0001104065 00000 n
-0001104130 00000 n
-0001104194 00000 n
-0001104259 00000 n
-0001104324 00000 n
-0001104389 00000 n
-0001104454 00000 n
-0001104519 00000 n
-0001104584 00000 n
-0001104649 00000 n
-0001104714 00000 n
-0001104778 00000 n
-0001104843 00000 n
-0001104908 00000 n
-0001104973 00000 n
-0001105038 00000 n
-0001105103 00000 n
-0001105168 00000 n
-0001105233 00000 n
-0001105298 00000 n
-0001105362 00000 n
-0001105427 00000 n
-0001105492 00000 n
-0001105557 00000 n
-0001105622 00000 n
-0001105687 00000 n
-0001105752 00000 n
-0001105817 00000 n
-0001105881 00000 n
-0001105946 00000 n
-0001106011 00000 n
-0001106076 00000 n
-0001106141 00000 n
-0001106206 00000 n
-0001106271 00000 n
-0001106336 00000 n
-0001106401 00000 n
-0001106465 00000 n
-0001106530 00000 n
-0001106595 00000 n
-0001106660 00000 n
-0001106725 00000 n
-0001106790 00000 n
-0001106855 00000 n
-0001106920 00000 n
-0001106985 00000 n
-0001107049 00000 n
-0001107114 00000 n
-0001107179 00000 n
-0001107243 00000 n
-0001113058 00000 n
-0001109691 00000 n
-0001107471 00000 n
-0001109816 00000 n
-0001109880 00000 n
-0001109945 00000 n
-0001110010 00000 n
-0001110075 00000 n
-0001110140 00000 n
-0001110205 00000 n
-0001110270 00000 n
-0001110335 00000 n
-0001110400 00000 n
-0001110464 00000 n
-0001110529 00000 n
-0001110594 00000 n
-0001110659 00000 n
-0001110724 00000 n
-0001110789 00000 n
-0001110854 00000 n
-0001110918 00000 n
-0001110983 00000 n
-0001111048 00000 n
-0001111112 00000 n
-0001111177 00000 n
-0001111242 00000 n
-0001111307 00000 n
-0001111372 00000 n
-0001111437 00000 n
-0001111502 00000 n
-0001111567 00000 n
-0001111632 00000 n
-0001111697 00000 n
-0001111762 00000 n
-0001111826 00000 n
-0001111891 00000 n
-0001111956 00000 n
-0001112021 00000 n
-0001112086 00000 n
-0001112149 00000 n
-0001112214 00000 n
-0001112279 00000 n
-0001112344 00000 n
-0001112409 00000 n
-0001112474 00000 n
-0001112539 00000 n
-0001112604 00000 n
-0001112669 00000 n
-0001112733 00000 n
-0001112798 00000 n
-0001112863 00000 n
-0001112928 00000 n
-0001112993 00000 n
-0001118875 00000 n
-0001115380 00000 n
-0001113222 00000 n
-0001115505 00000 n
-0001115569 00000 n
-0001115634 00000 n
-0001115699 00000 n
-0001115764 00000 n
-0001115829 00000 n
-0001115894 00000 n
-0001115959 00000 n
-0001116024 00000 n
-0001116089 00000 n
-0001116153 00000 n
-0001116218 00000 n
-0001116283 00000 n
-0001116348 00000 n
-0001116413 00000 n
-0001116476 00000 n
-0001116541 00000 n
-0001116606 00000 n
-0001116671 00000 n
-0001116736 00000 n
-0001116801 00000 n
-0001116866 00000 n
-0001116931 00000 n
-0001116996 00000 n
-0001117061 00000 n
-0001117126 00000 n
-0001117190 00000 n
-0001117255 00000 n
-0001117320 00000 n
-0001117385 00000 n
-0001117450 00000 n
-0001117515 00000 n
-0001117580 00000 n
-0001117645 00000 n
-0001117710 00000 n
-0001117774 00000 n
-0001117839 00000 n
-0001117904 00000 n
-0001117969 00000 n
-0001118034 00000 n
-0001118098 00000 n
-0001118163 00000 n
-0001118228 00000 n
-0001118293 00000 n
-0001118358 00000 n
-0001118423 00000 n
-0001118488 00000 n
-0001118553 00000 n
-0001118618 00000 n
-0001118683 00000 n
-0001118747 00000 n
-0001118811 00000 n
-0001124250 00000 n
-0001121788 00000 n
-0001119052 00000 n
-0001121913 00000 n
-0001121977 00000 n
-0001122042 00000 n
-0001122107 00000 n
-0001122172 00000 n
-0001122237 00000 n
-0001122302 00000 n
-0001122367 00000 n
-0001122432 00000 n
-0001122497 00000 n
-0001122561 00000 n
-0001122626 00000 n
-0001122691 00000 n
-0001122756 00000 n
-0001122821 00000 n
-0001122886 00000 n
-0001122951 00000 n
-0001123016 00000 n
-0001123081 00000 n
-0001123146 00000 n
-0001123211 00000 n
-0001123276 00000 n
-0001123341 00000 n
-0001123406 00000 n
-0001123470 00000 n
-0001123535 00000 n
-0001123600 00000 n
-0001123665 00000 n
-0001123730 00000 n
-0001123795 00000 n
-0001123860 00000 n
-0001123925 00000 n
-0001123990 00000 n
-0001124055 00000 n
-0001124120 00000 n
-0001124185 00000 n
-0001130188 00000 n
-0001127014 00000 n
-0001124440 00000 n
-0001127139 00000 n
-0001127203 00000 n
-0001127268 00000 n
-0001127333 00000 n
-0001127398 00000 n
-0001127463 00000 n
-0001127527 00000 n
-0001127592 00000 n
-0001127657 00000 n
-0001127722 00000 n
-0001127787 00000 n
-0001127852 00000 n
-0001127917 00000 n
-0001127982 00000 n
-0001128046 00000 n
-0001128111 00000 n
-0001128176 00000 n
-0001128241 00000 n
-0001128306 00000 n
-0001128371 00000 n
-0001128436 00000 n
-0001128501 00000 n
-0001128566 00000 n
-0001128631 00000 n
-0001128696 00000 n
-0001128761 00000 n
-0001128826 00000 n
-0001128891 00000 n
-0001128956 00000 n
-0001129021 00000 n
-0001129086 00000 n
-0001129151 00000 n
-0001129216 00000 n
-0001129281 00000 n
-0001129346 00000 n
-0001129411 00000 n
-0001129476 00000 n
-0001129541 00000 n
-0001129606 00000 n
-0001129671 00000 n
-0001129736 00000 n
-0001129800 00000 n
-0001129865 00000 n
-0001129930 00000 n
-0001129995 00000 n
-0001130060 00000 n
-0001130124 00000 n
-0001135749 00000 n
-0001132323 00000 n
-0001130365 00000 n
-0001132448 00000 n
-0001132512 00000 n
-0001132577 00000 n
-0001132642 00000 n
-0001132707 00000 n
-0001132772 00000 n
-0001132837 00000 n
-0001132901 00000 n
-0001132966 00000 n
-0001133031 00000 n
-0001133096 00000 n
-0001133161 00000 n
-0001133226 00000 n
-0001133291 00000 n
-0001133356 00000 n
-0001133421 00000 n
-0001133482 00000 n
-0001133547 00000 n
-0001133612 00000 n
-0001133677 00000 n
-0001133742 00000 n
-0001133807 00000 n
-0001133872 00000 n
-0001133937 00000 n
-0001134002 00000 n
-0001134066 00000 n
-0001134131 00000 n
-0001134196 00000 n
-0001134261 00000 n
-0001134389 00000 n
-0001134453 00000 n
-0001134518 00000 n
-0001134583 00000 n
-0001134648 00000 n
-0001134713 00000 n
-0001134777 00000 n
-0001134842 00000 n
-0001134907 00000 n
-0001134972 00000 n
-0001135037 00000 n
-0001135102 00000 n
-0001135167 00000 n
-0001135232 00000 n
-0001135297 00000 n
-0001135361 00000 n
-0001135426 00000 n
-0001135491 00000 n
-0001135556 00000 n
-0001135621 00000 n
-0001135685 00000 n
-0001890386 00000 n
-0001142147 00000 n
-0001138184 00000 n
-0001135926 00000 n
-0001138309 00000 n
-0001138373 00000 n
-0001138438 00000 n
-0001138503 00000 n
-0001138568 00000 n
-0001138633 00000 n
-0001138698 00000 n
-0001138763 00000 n
-0001138828 00000 n
-0001138893 00000 n
-0001138957 00000 n
-0001139022 00000 n
-0001139087 00000 n
-0001139152 00000 n
-0001139217 00000 n
-0001139282 00000 n
-0001139346 00000 n
-0001139411 00000 n
-0001139476 00000 n
-0001139541 00000 n
-0001139606 00000 n
-0001139671 00000 n
-0001139736 00000 n
-0001139801 00000 n
-0001139866 00000 n
-0001139930 00000 n
-0001139995 00000 n
-0001140060 00000 n
-0001140125 00000 n
-0001140190 00000 n
-0001140255 00000 n
-0001140320 00000 n
-0001140385 00000 n
-0001140450 00000 n
-0001140514 00000 n
-0001140579 00000 n
-0001140644 00000 n
-0001140709 00000 n
-0001140774 00000 n
-0001140839 00000 n
-0001140904 00000 n
-0001140969 00000 n
-0001141034 00000 n
-0001141099 00000 n
-0001141164 00000 n
-0001141229 00000 n
-0001141294 00000 n
-0001141359 00000 n
-0001141424 00000 n
-0001141490 00000 n
-0001141556 00000 n
-0001141622 00000 n
-0001141688 00000 n
-0001141753 00000 n
-0001141819 00000 n
-0001141885 00000 n
-0001141951 00000 n
-0001142017 00000 n
-0001142082 00000 n
-0001148152 00000 n
-0001144012 00000 n
-0001142337 00000 n
-0001144140 00000 n
-0001144206 00000 n
-0001144273 00000 n
-0001144340 00000 n
-0001144407 00000 n
-0001144474 00000 n
-0001144541 00000 n
-0001144608 00000 n
-0001144675 00000 n
-0001144742 00000 n
-0001144808 00000 n
-0001144875 00000 n
-0001144942 00000 n
-0001145009 00000 n
-0001145076 00000 n
-0001145143 00000 n
-0001145210 00000 n
-0001145277 00000 n
-0001145344 00000 n
-0001145410 00000 n
-0001145477 00000 n
-0001145544 00000 n
-0001145611 00000 n
-0001145678 00000 n
-0001145745 00000 n
-0001145812 00000 n
-0001145879 00000 n
-0001145946 00000 n
-0001146012 00000 n
-0001146079 00000 n
-0001146146 00000 n
-0001146213 00000 n
+0001082035 00000 n
+0001082100 00000 n
+0001082165 00000 n
+0001082230 00000 n
+0001082295 00000 n
+0001082360 00000 n
+0001082425 00000 n
+0001082490 00000 n
+0001082555 00000 n
+0001082620 00000 n
+0001082685 00000 n
+0001082750 00000 n
+0001082815 00000 n
+0001082880 00000 n
+0001082945 00000 n
+0001083010 00000 n
+0001083073 00000 n
+0001083138 00000 n
+0001083203 00000 n
+0001083268 00000 n
+0001083333 00000 n
+0001083398 00000 n
+0001083463 00000 n
+0001083528 00000 n
+0001083593 00000 n
+0001083658 00000 n
+0001083723 00000 n
+0001083787 00000 n
+0001083852 00000 n
+0001083917 00000 n
+0001083982 00000 n
+0001084047 00000 n
+0001084112 00000 n
+0001084177 00000 n
+0001084242 00000 n
+0001084306 00000 n
+0001084371 00000 n
+0001084436 00000 n
+0001084500 00000 n
+0001090842 00000 n
+0001086827 00000 n
+0001084741 00000 n
+0001086952 00000 n
+0001087016 00000 n
+0001087081 00000 n
+0001087145 00000 n
+0001087210 00000 n
+0001087275 00000 n
+0001087340 00000 n
+0001087405 00000 n
+0001087470 00000 n
+0001087535 00000 n
+0001087600 00000 n
+0001087665 00000 n
+0001087729 00000 n
+0001087794 00000 n
+0001087859 00000 n
+0001087924 00000 n
+0001087989 00000 n
+0001088054 00000 n
+0001088119 00000 n
+0001088184 00000 n
+0001088249 00000 n
+0001088313 00000 n
+0001088378 00000 n
+0001088443 00000 n
+0001088508 00000 n
+0001088573 00000 n
+0001088638 00000 n
+0001088703 00000 n
+0001088768 00000 n
+0001088833 00000 n
+0001088897 00000 n
+0001088962 00000 n
+0001089027 00000 n
+0001089092 00000 n
+0001089157 00000 n
+0001089222 00000 n
+0001089287 00000 n
+0001089352 00000 n
+0001089417 00000 n
+0001089481 00000 n
+0001089546 00000 n
+0001089611 00000 n
+0001089676 00000 n
+0001089741 00000 n
+0001089806 00000 n
+0001089871 00000 n
+0001089936 00000 n
+0001090000 00000 n
+0001090065 00000 n
+0001090130 00000 n
+0001090195 00000 n
+0001090260 00000 n
+0001090325 00000 n
+0001090390 00000 n
+0001090455 00000 n
+0001090520 00000 n
+0001090584 00000 n
+0001090649 00000 n
+0001090714 00000 n
+0001090778 00000 n
+0001097237 00000 n
+0001093226 00000 n
+0001091019 00000 n
+0001093351 00000 n
+0001093415 00000 n
+0001093480 00000 n
+0001093544 00000 n
+0001093609 00000 n
+0001093674 00000 n
+0001093739 00000 n
+0001093804 00000 n
+0001093869 00000 n
+0001093934 00000 n
+0001093999 00000 n
+0001094064 00000 n
+0001094129 00000 n
+0001094192 00000 n
+0001094257 00000 n
+0001094322 00000 n
+0001094387 00000 n
+0001094452 00000 n
+0001094517 00000 n
+0001094582 00000 n
+0001094647 00000 n
+0001094712 00000 n
+0001094777 00000 n
+0001094841 00000 n
+0001094906 00000 n
+0001094971 00000 n
+0001095036 00000 n
+0001095101 00000 n
+0001095166 00000 n
+0001095231 00000 n
+0001095296 00000 n
+0001095361 00000 n
+0001095426 00000 n
+0001095491 00000 n
+0001095554 00000 n
+0001095619 00000 n
+0001095684 00000 n
+0001095749 00000 n
+0001095814 00000 n
+0001095879 00000 n
+0001095944 00000 n
+0001096009 00000 n
+0001096074 00000 n
+0001096139 00000 n
+0001096204 00000 n
+0001096269 00000 n
+0001096334 00000 n
+0001096399 00000 n
+0001096464 00000 n
+0001096529 00000 n
+0001096590 00000 n
+0001096655 00000 n
+0001096720 00000 n
+0001096785 00000 n
+0001096850 00000 n
+0001096915 00000 n
+0001096980 00000 n
+0001097045 00000 n
+0001097110 00000 n
+0001097173 00000 n
+0001103225 00000 n
+0001100054 00000 n
+0001097401 00000 n
+0001100179 00000 n
+0001100243 00000 n
+0001100308 00000 n
+0001100373 00000 n
+0001100437 00000 n
+0001100502 00000 n
+0001100567 00000 n
+0001100632 00000 n
+0001100697 00000 n
+0001100762 00000 n
+0001100827 00000 n
+0001100892 00000 n
+0001100957 00000 n
+0001101021 00000 n
+0001101086 00000 n
+0001101151 00000 n
+0001101216 00000 n
+0001101281 00000 n
+0001101346 00000 n
+0001101411 00000 n
+0001101476 00000 n
+0001101541 00000 n
+0001101605 00000 n
+0001101670 00000 n
+0001101735 00000 n
+0001101800 00000 n
+0001101865 00000 n
+0001101930 00000 n
+0001101995 00000 n
+0001102060 00000 n
+0001102125 00000 n
+0001102190 00000 n
+0001102255 00000 n
+0001102319 00000 n
+0001102383 00000 n
+0001102448 00000 n
+0001102513 00000 n
+0001102578 00000 n
+0001102643 00000 n
+0001102708 00000 n
+0001102773 00000 n
+0001102838 00000 n
+0001102903 00000 n
+0001102967 00000 n
+0001103032 00000 n
+0001103097 00000 n
+0001103161 00000 n
+0001108805 00000 n
+0001105572 00000 n
+0001103415 00000 n
+0001105697 00000 n
+0001105761 00000 n
+0001105826 00000 n
+0001105890 00000 n
+0001105955 00000 n
+0001106020 00000 n
+0001106085 00000 n
+0001106150 00000 n
+0001106215 00000 n
+0001106280 00000 n
+0001106344 00000 n
+0001106409 00000 n
+0001106474 00000 n
+0001106539 00000 n
+0001106604 00000 n
+0001106732 00000 n
+0001106797 00000 n
+0001106862 00000 n
+0001106927 00000 n
+0001106992 00000 n
+0001107057 00000 n
+0001107122 00000 n
+0001107187 00000 n
+0001107252 00000 n
+0001107317 00000 n
+0001107382 00000 n
+0001107446 00000 n
+0001107511 00000 n
+0001107576 00000 n
+0001107641 00000 n
+0001107706 00000 n
+0001107771 00000 n
+0001107836 00000 n
+0001107964 00000 n
+0001108029 00000 n
+0001108094 00000 n
+0001108159 00000 n
+0001108223 00000 n
+0001108288 00000 n
+0001108353 00000 n
+0001108418 00000 n
+0001108483 00000 n
+0001108548 00000 n
+0001108613 00000 n
+0001108678 00000 n
+0001108742 00000 n
+0001114981 00000 n
+0001111355 00000 n
+0001108982 00000 n
+0001111480 00000 n
+0001111544 00000 n
+0001111609 00000 n
+0001111673 00000 n
+0001111738 00000 n
+0001111803 00000 n
+0001111868 00000 n
+0001111933 00000 n
+0001111998 00000 n
+0001112063 00000 n
+0001112127 00000 n
+0001112192 00000 n
+0001112257 00000 n
+0001112322 00000 n
+0001112387 00000 n
+0001112452 00000 n
+0001112517 00000 n
+0001112582 00000 n
+0001112647 00000 n
+0001112711 00000 n
+0001112776 00000 n
+0001112841 00000 n
+0001112906 00000 n
+0001112971 00000 n
+0001113036 00000 n
+0001113101 00000 n
+0001113166 00000 n
+0001113231 00000 n
+0001113296 00000 n
+0001113361 00000 n
+0001113426 00000 n
+0001113490 00000 n
+0001113555 00000 n
+0001113620 00000 n
+0001113685 00000 n
+0001113750 00000 n
+0001113815 00000 n
+0001113880 00000 n
+0001113945 00000 n
+0001114010 00000 n
+0001114075 00000 n
+0001114139 00000 n
+0001114204 00000 n
+0001114269 00000 n
+0001114334 00000 n
+0001114399 00000 n
+0001114464 00000 n
+0001114529 00000 n
+0001114594 00000 n
+0001114659 00000 n
+0001114724 00000 n
+0001114789 00000 n
+0001114853 00000 n
+0001114917 00000 n
+0001120164 00000 n
+0001117836 00000 n
+0001115145 00000 n
+0001117961 00000 n
+0001118025 00000 n
+0001118090 00000 n
+0001118154 00000 n
+0001118219 00000 n
+0001118284 00000 n
+0001118412 00000 n
+0001118477 00000 n
+0001118542 00000 n
+0001118607 00000 n
+0001118672 00000 n
+0001118737 00000 n
+0001118802 00000 n
+0001118867 00000 n
+0001118995 00000 n
+0001119059 00000 n
+0001119124 00000 n
+0001119189 00000 n
+0001119254 00000 n
+0001119319 00000 n
+0001119384 00000 n
+0001119449 00000 n
+0001119514 00000 n
+0001119579 00000 n
+0001119644 00000 n
+0001119709 00000 n
+0001119774 00000 n
+0001119839 00000 n
+0001119904 00000 n
+0001119969 00000 n
+0001120034 00000 n
+0001120099 00000 n
+0001129577 00000 n
+0001125993 00000 n
+0001122690 00000 n
+0001120354 00000 n
+0001122815 00000 n
+0001122879 00000 n
+0001122944 00000 n
+0001123009 00000 n
+0001123074 00000 n
+0001123139 00000 n
+0001123204 00000 n
+0001123269 00000 n
+0001123334 00000 n
+0001123399 00000 n
+0001123464 00000 n
+0001123529 00000 n
+0001123594 00000 n
+0001123658 00000 n
+0001123723 00000 n
+0001123788 00000 n
+0001123853 00000 n
+0001123918 00000 n
+0001123983 00000 n
+0001124048 00000 n
+0001124113 00000 n
+0001124178 00000 n
+0001124243 00000 n
+0001124308 00000 n
+0001124373 00000 n
+0001124438 00000 n
+0001124503 00000 n
+0001124568 00000 n
+0001124633 00000 n
+0001124697 00000 n
+0001124762 00000 n
+0001124827 00000 n
+0001124891 00000 n
+0001124956 00000 n
+0001125021 00000 n
+0001125086 00000 n
+0001125151 00000 n
+0001125216 00000 n
+0001125281 00000 n
+0001125346 00000 n
+0001125411 00000 n
+0001125475 00000 n
+0001125540 00000 n
+0001125605 00000 n
+0001125670 00000 n
+0001125735 00000 n
+0001125800 00000 n
+0001125865 00000 n
+0001537333 00000 n
+0001131217 00000 n
+0001129404 00000 n
+0001126170 00000 n
+0001129729 00000 n
+0001129793 00000 n
+0001129858 00000 n
+0001129923 00000 n
+0001129988 00000 n
+0001130053 00000 n
+0001130118 00000 n
+0001130182 00000 n
+0001130247 00000 n
+0001130311 00000 n
+0001130376 00000 n
+0001130441 00000 n
+0001130506 00000 n
+0001130571 00000 n
+0001130636 00000 n
+0001130701 00000 n
+0001130766 00000 n
+0001130894 00000 n
+0001130958 00000 n
+0001131023 00000 n
+0001131088 00000 n
+0001131153 00000 n
+0001129546 00000 n
+0001137079 00000 n
+0001133583 00000 n
+0001131420 00000 n
+0001133708 00000 n
+0001133772 00000 n
+0001133837 00000 n
+0001133902 00000 n
+0001133967 00000 n
+0001134031 00000 n
+0001134096 00000 n
+0001134161 00000 n
+0001134226 00000 n
+0001134291 00000 n
+0001134355 00000 n
+0001134420 00000 n
+0001134485 00000 n
+0001134550 00000 n
+0001134615 00000 n
+0001134680 00000 n
+0001134745 00000 n
+0001134810 00000 n
+0001134875 00000 n
+0001134939 00000 n
+0001135004 00000 n
+0001135069 00000 n
+0001135133 00000 n
+0001135198 00000 n
+0001135263 00000 n
+0001135328 00000 n
+0001135393 00000 n
+0001135458 00000 n
+0001135523 00000 n
+0001135588 00000 n
+0001135653 00000 n
+0001135717 00000 n
+0001135782 00000 n
+0001135847 00000 n
+0001135912 00000 n
+0001135977 00000 n
+0001136042 00000 n
+0001136107 00000 n
+0001136172 00000 n
+0001136237 00000 n
+0001136302 00000 n
+0001136367 00000 n
+0001136432 00000 n
+0001136496 00000 n
+0001136561 00000 n
+0001136626 00000 n
+0001136691 00000 n
+0001136756 00000 n
+0001136821 00000 n
+0001136886 00000 n
+0001136951 00000 n
+0001143188 00000 n
+0001139303 00000 n
+0001137269 00000 n
+0001139428 00000 n
+0001139492 00000 n
+0001139557 00000 n
+0001139622 00000 n
+0001139687 00000 n
+0001139750 00000 n
+0001139815 00000 n
+0001139880 00000 n
+0001139945 00000 n
+0001140010 00000 n
+0001140075 00000 n
+0001140140 00000 n
+0001140205 00000 n
+0001140270 00000 n
+0001140334 00000 n
+0001140399 00000 n
+0001140464 00000 n
+0001140529 00000 n
+0001140594 00000 n
+0001140659 00000 n
+0001140724 00000 n
+0001140789 00000 n
+0001140854 00000 n
+0001140918 00000 n
+0001140983 00000 n
+0001141048 00000 n
+0001141113 00000 n
+0001141178 00000 n
+0001141243 00000 n
+0001141308 00000 n
+0001141373 00000 n
+0001141438 00000 n
+0001141502 00000 n
+0001141567 00000 n
+0001141632 00000 n
+0001141697 00000 n
+0001141762 00000 n
+0001141827 00000 n
+0001141892 00000 n
+0001141957 00000 n
+0001142022 00000 n
+0001142086 00000 n
+0001142151 00000 n
+0001142216 00000 n
+0001142281 00000 n
+0001142346 00000 n
+0001142411 00000 n
+0001142476 00000 n
+0001142541 00000 n
+0001142606 00000 n
+0001142670 00000 n
+0001142735 00000 n
+0001142800 00000 n
+0001142865 00000 n
+0001142930 00000 n
+0001142995 00000 n
+0001143060 00000 n
+0001143124 00000 n
+0001148677 00000 n
+0001145832 00000 n
+0001143365 00000 n
+0001145957 00000 n
+0001146021 00000 n
+0001146086 00000 n
+0001146150 00000 n
+0001146215 00000 n
0001146280 00000 n
-0001146347 00000 n
-0001146414 00000 n
-0001146481 00000 n
-0001146548 00000 n
-0001146614 00000 n
-0001146681 00000 n
-0001146748 00000 n
-0001146815 00000 n
-0001146882 00000 n
-0001146949 00000 n
-0001147016 00000 n
-0001147083 00000 n
-0001147150 00000 n
-0001147216 00000 n
-0001147283 00000 n
-0001147350 00000 n
-0001147417 00000 n
-0001147484 00000 n
-0001147551 00000 n
-0001147618 00000 n
-0001147685 00000 n
-0001147752 00000 n
-0001147819 00000 n
-0001147886 00000 n
-0001147953 00000 n
-0001148020 00000 n
-0001148086 00000 n
-0001153840 00000 n
-0001149838 00000 n
-0001148304 00000 n
-0001149966 00000 n
-0001150032 00000 n
-0001150099 00000 n
-0001150166 00000 n
-0001150233 00000 n
-0001150300 00000 n
-0001150367 00000 n
-0001150434 00000 n
-0001150501 00000 n
-0001150568 00000 n
-0001150634 00000 n
-0001150701 00000 n
-0001150768 00000 n
-0001150835 00000 n
-0001150902 00000 n
-0001150969 00000 n
-0001151036 00000 n
-0001151103 00000 n
-0001151170 00000 n
-0001151236 00000 n
-0001151303 00000 n
-0001151370 00000 n
-0001151437 00000 n
-0001151504 00000 n
-0001151571 00000 n
-0001151638 00000 n
-0001151705 00000 n
-0001151772 00000 n
-0001151837 00000 n
-0001151904 00000 n
-0001151971 00000 n
-0001152038 00000 n
-0001152105 00000 n
-0001152172 00000 n
-0001152239 00000 n
-0001152370 00000 n
-0001152437 00000 n
-0001152504 00000 n
-0001152571 00000 n
-0001152638 00000 n
-0001152705 00000 n
-0001152772 00000 n
-0001152839 00000 n
-0001152905 00000 n
+0001146344 00000 n
+0001146409 00000 n
+0001146474 00000 n
+0001146539 00000 n
+0001146604 00000 n
+0001146669 00000 n
+0001146734 00000 n
+0001146799 00000 n
+0001146864 00000 n
+0001146928 00000 n
+0001146993 00000 n
+0001147058 00000 n
+0001147123 00000 n
+0001147188 00000 n
+0001147253 00000 n
+0001147318 00000 n
+0001147383 00000 n
+0001147448 00000 n
+0001147513 00000 n
+0001147578 00000 n
+0001147642 00000 n
+0001147707 00000 n
+0001147772 00000 n
+0001147837 00000 n
+0001147902 00000 n
+0001147967 00000 n
+0001148032 00000 n
+0001148096 00000 n
+0001148161 00000 n
+0001148226 00000 n
+0001148291 00000 n
+0001148356 00000 n
+0001148421 00000 n
+0001148486 00000 n
+0001148551 00000 n
+0001148615 00000 n
+0001155112 00000 n
+0001151357 00000 n
+0001148854 00000 n
+0001151482 00000 n
+0001151546 00000 n
+0001151611 00000 n
+0001151675 00000 n
+0001151740 00000 n
+0001151805 00000 n
+0001151870 00000 n
+0001151935 00000 n
+0001152000 00000 n
+0001152065 00000 n
+0001152130 00000 n
+0001152195 00000 n
+0001152259 00000 n
+0001152324 00000 n
+0001152388 00000 n
+0001152453 00000 n
+0001152518 00000 n
+0001152583 00000 n
+0001152648 00000 n
+0001152713 00000 n
+0001152778 00000 n
+0001152843 00000 n
+0001152908 00000 n
0001152972 00000 n
-0001153039 00000 n
-0001153106 00000 n
-0001153173 00000 n
-0001153240 00000 n
-0001153307 00000 n
-0001153374 00000 n
-0001153441 00000 n
-0001153507 00000 n
-0001153574 00000 n
-0001153641 00000 n
-0001153708 00000 n
-0001153774 00000 n
-0001160077 00000 n
-0001155805 00000 n
-0001154005 00000 n
-0001155933 00000 n
-0001155999 00000 n
-0001156066 00000 n
-0001156133 00000 n
-0001156200 00000 n
-0001156267 00000 n
-0001156334 00000 n
-0001156401 00000 n
-0001156468 00000 n
-0001156535 00000 n
-0001156602 00000 n
-0001156668 00000 n
-0001156735 00000 n
-0001156802 00000 n
-0001156869 00000 n
-0001156936 00000 n
-0001157003 00000 n
-0001157070 00000 n
-0001157137 00000 n
-0001157204 00000 n
-0001157270 00000 n
-0001157337 00000 n
-0001157404 00000 n
-0001157471 00000 n
-0001157538 00000 n
-0001157605 00000 n
-0001157672 00000 n
-0001157739 00000 n
-0001157806 00000 n
-0001157872 00000 n
-0001157939 00000 n
-0001158006 00000 n
-0001158073 00000 n
-0001158140 00000 n
-0001158207 00000 n
-0001158274 00000 n
-0001158341 00000 n
-0001158408 00000 n
-0001158474 00000 n
-0001158541 00000 n
-0001158608 00000 n
-0001158675 00000 n
-0001158742 00000 n
-0001158809 00000 n
-0001158876 00000 n
-0001158943 00000 n
-0001159010 00000 n
-0001159077 00000 n
-0001159143 00000 n
-0001159210 00000 n
-0001159277 00000 n
-0001159344 00000 n
-0001159411 00000 n
+0001153037 00000 n
+0001153102 00000 n
+0001153167 00000 n
+0001153232 00000 n
+0001153297 00000 n
+0001153362 00000 n
+0001153427 00000 n
+0001153492 00000 n
+0001153557 00000 n
+0001153622 00000 n
+0001153687 00000 n
+0001153752 00000 n
+0001153817 00000 n
+0001153882 00000 n
+0001153945 00000 n
+0001154010 00000 n
+0001154075 00000 n
+0001154140 00000 n
+0001154205 00000 n
+0001154270 00000 n
+0001154335 00000 n
+0001154400 00000 n
+0001154465 00000 n
+0001154529 00000 n
+0001154594 00000 n
+0001154659 00000 n
+0001154724 00000 n
+0001154789 00000 n
+0001154854 00000 n
+0001154919 00000 n
+0001154984 00000 n
+0001155048 00000 n
+0001161296 00000 n
+0001157343 00000 n
+0001155276 00000 n
+0001157468 00000 n
+0001157532 00000 n
+0001157597 00000 n
+0001157661 00000 n
+0001157726 00000 n
+0001157791 00000 n
+0001157856 00000 n
+0001157921 00000 n
+0001157986 00000 n
+0001158051 00000 n
+0001158116 00000 n
+0001158181 00000 n
+0001158245 00000 n
+0001158310 00000 n
+0001158375 00000 n
+0001158440 00000 n
+0001158505 00000 n
+0001158570 00000 n
+0001158635 00000 n
+0001158700 00000 n
+0001158765 00000 n
+0001158829 00000 n
+0001158894 00000 n
+0001158959 00000 n
+0001159024 00000 n
+0001159089 00000 n
+0001159154 00000 n
+0001159219 00000 n
+0001159283 00000 n
+0001159348 00000 n
+0001159413 00000 n
0001159478 00000 n
-0001159545 00000 n
-0001159612 00000 n
-0001159679 00000 n
-0001159744 00000 n
-0001159811 00000 n
-0001159878 00000 n
-0001159945 00000 n
-0001160011 00000 n
-0001166123 00000 n
-0001161922 00000 n
-0001160255 00000 n
-0001162050 00000 n
-0001162116 00000 n
-0001162183 00000 n
-0001162250 00000 n
-0001162317 00000 n
-0001162384 00000 n
-0001162451 00000 n
-0001162518 00000 n
-0001162585 00000 n
-0001162652 00000 n
-0001162782 00000 n
-0001162849 00000 n
-0001162916 00000 n
-0001162983 00000 n
-0001163049 00000 n
-0001163116 00000 n
-0001163183 00000 n
-0001163250 00000 n
-0001163317 00000 n
-0001163384 00000 n
-0001163451 00000 n
-0001163518 00000 n
-0001163585 00000 n
-0001163651 00000 n
-0001163718 00000 n
-0001163785 00000 n
-0001163852 00000 n
-0001163919 00000 n
-0001163986 00000 n
-0001164053 00000 n
-0001164120 00000 n
-0001164187 00000 n
-0001164252 00000 n
-0001164319 00000 n
-0001164386 00000 n
-0001164453 00000 n
-0001164520 00000 n
-0001164587 00000 n
-0001164654 00000 n
-0001164721 00000 n
-0001164788 00000 n
-0001164855 00000 n
+0001159543 00000 n
+0001159608 00000 n
+0001159673 00000 n
+0001159738 00000 n
+0001159803 00000 n
+0001159867 00000 n
+0001159932 00000 n
+0001159997 00000 n
+0001160062 00000 n
+0001160127 00000 n
+0001160192 00000 n
+0001160257 00000 n
+0001160322 00000 n
+0001160387 00000 n
+0001160451 00000 n
+0001160516 00000 n
+0001160581 00000 n
+0001160646 00000 n
+0001160711 00000 n
+0001160776 00000 n
+0001160841 00000 n
+0001160906 00000 n
+0001160971 00000 n
+0001161036 00000 n
+0001161101 00000 n
+0001161166 00000 n
+0001161231 00000 n
+0001167255 00000 n
+0001163953 00000 n
+0001161460 00000 n
+0001164078 00000 n
+0001164142 00000 n
+0001164207 00000 n
+0001164271 00000 n
+0001164336 00000 n
+0001164401 00000 n
+0001164466 00000 n
+0001164531 00000 n
+0001164596 00000 n
+0001164661 00000 n
+0001164726 00000 n
+0001164791 00000 n
+0001164856 00000 n
0001164921 00000 n
-0001164988 00000 n
-0001165055 00000 n
-0001165122 00000 n
-0001165189 00000 n
-0001165256 00000 n
-0001165323 00000 n
-0001165390 00000 n
-0001165457 00000 n
-0001165523 00000 n
-0001165590 00000 n
-0001165657 00000 n
-0001165724 00000 n
-0001165791 00000 n
-0001165858 00000 n
-0001165925 00000 n
-0001165992 00000 n
-0001166058 00000 n
-0001172326 00000 n
-0001167920 00000 n
-0001166288 00000 n
-0001168048 00000 n
-0001168114 00000 n
-0001168181 00000 n
-0001168248 00000 n
-0001168315 00000 n
-0001168382 00000 n
-0001168449 00000 n
-0001168516 00000 n
-0001168583 00000 n
-0001168650 00000 n
-0001168716 00000 n
-0001168783 00000 n
-0001168850 00000 n
-0001168917 00000 n
-0001168984 00000 n
-0001169051 00000 n
-0001169118 00000 n
-0001169185 00000 n
-0001169252 00000 n
-0001169319 00000 n
-0001169385 00000 n
-0001169452 00000 n
-0001169519 00000 n
-0001169586 00000 n
-0001169653 00000 n
-0001169720 00000 n
-0001169787 00000 n
-0001169854 00000 n
-0001169921 00000 n
-0001169987 00000 n
-0001170054 00000 n
-0001170121 00000 n
-0001170188 00000 n
-0001170255 00000 n
-0001170322 00000 n
-0001170389 00000 n
-0001170456 00000 n
-0001170523 00000 n
-0001170589 00000 n
-0001170656 00000 n
-0001170723 00000 n
-0001170790 00000 n
-0001170857 00000 n
-0001170924 00000 n
-0001170991 00000 n
-0001171058 00000 n
-0001171125 00000 n
-0001171190 00000 n
-0001171257 00000 n
-0001171324 00000 n
-0001171391 00000 n
-0001171458 00000 n
-0001171525 00000 n
-0001171592 00000 n
-0001171659 00000 n
-0001171726 00000 n
-0001171792 00000 n
-0001171859 00000 n
-0001171926 00000 n
-0001171993 00000 n
-0001172060 00000 n
-0001172127 00000 n
-0001172194 00000 n
-0001172260 00000 n
-0001178093 00000 n
-0001174559 00000 n
-0001172478 00000 n
-0001174687 00000 n
-0001174753 00000 n
-0001174820 00000 n
-0001174887 00000 n
-0001174954 00000 n
-0001175021 00000 n
-0001175088 00000 n
-0001175155 00000 n
-0001175222 00000 n
-0001175289 00000 n
-0001175355 00000 n
-0001175422 00000 n
-0001175489 00000 n
-0001175556 00000 n
-0001175623 00000 n
-0001175690 00000 n
-0001175757 00000 n
-0001175824 00000 n
-0001175891 00000 n
-0001175957 00000 n
-0001176024 00000 n
-0001176091 00000 n
-0001176158 00000 n
-0001176225 00000 n
-0001176292 00000 n
-0001176359 00000 n
-0001176426 00000 n
-0001176493 00000 n
-0001176558 00000 n
-0001176625 00000 n
-0001176692 00000 n
-0001176759 00000 n
-0001176826 00000 n
-0001176893 00000 n
-0001176960 00000 n
-0001177027 00000 n
-0001177094 00000 n
-0001177160 00000 n
-0001177227 00000 n
-0001177294 00000 n
-0001177361 00000 n
-0001177428 00000 n
-0001177495 00000 n
-0001177562 00000 n
-0001177629 00000 n
-0001177696 00000 n
-0001177762 00000 n
-0001177829 00000 n
-0001177960 00000 n
-0001178027 00000 n
-0001184313 00000 n
-0001180307 00000 n
-0001178271 00000 n
-0001180435 00000 n
-0001180501 00000 n
-0001180568 00000 n
-0001180635 00000 n
-0001180702 00000 n
-0001180769 00000 n
-0001180836 00000 n
-0001180903 00000 n
-0001180970 00000 n
-0001181037 00000 n
-0001181103 00000 n
-0001181170 00000 n
-0001181237 00000 n
-0001181304 00000 n
-0001181371 00000 n
-0001181438 00000 n
-0001181505 00000 n
-0001181572 00000 n
-0001181639 00000 n
-0001181706 00000 n
-0001181773 00000 n
-0001181840 00000 n
-0001181907 00000 n
-0001181974 00000 n
+0001164986 00000 n
+0001165051 00000 n
+0001165116 00000 n
+0001165180 00000 n
+0001165245 00000 n
+0001165310 00000 n
+0001165375 00000 n
+0001165440 00000 n
+0001165504 00000 n
+0001165569 00000 n
+0001165634 00000 n
+0001165699 00000 n
+0001165764 00000 n
+0001165829 00000 n
+0001165894 00000 n
+0001165959 00000 n
+0001166024 00000 n
+0001166088 00000 n
+0001166153 00000 n
+0001166218 00000 n
+0001166283 00000 n
+0001166348 00000 n
+0001166413 00000 n
+0001166478 00000 n
+0001166543 00000 n
+0001166608 00000 n
+0001166673 00000 n
+0001166738 00000 n
+0001166803 00000 n
+0001166868 00000 n
+0001166933 00000 n
+0001166997 00000 n
+0001167062 00000 n
+0001167127 00000 n
+0001167191 00000 n
+0001173156 00000 n
+0001169596 00000 n
+0001167432 00000 n
+0001169721 00000 n
+0001169785 00000 n
+0001169850 00000 n
+0001169914 00000 n
+0001169979 00000 n
+0001170044 00000 n
+0001170109 00000 n
+0001170174 00000 n
+0001170239 00000 n
+0001170304 00000 n
+0001170369 00000 n
+0001170434 00000 n
+0001170499 00000 n
+0001170564 00000 n
+0001170628 00000 n
+0001170693 00000 n
+0001170758 00000 n
+0001170823 00000 n
+0001170888 00000 n
+0001170953 00000 n
+0001171018 00000 n
+0001171083 00000 n
+0001171148 00000 n
+0001171212 00000 n
+0001171277 00000 n
+0001171342 00000 n
+0001171407 00000 n
+0001171472 00000 n
+0001171535 00000 n
+0001171600 00000 n
+0001171665 00000 n
+0001171730 00000 n
+0001171795 00000 n
+0001171860 00000 n
+0001171925 00000 n
+0001171990 00000 n
+0001172055 00000 n
+0001172120 00000 n
+0001172184 00000 n
+0001172249 00000 n
+0001172314 00000 n
+0001172379 00000 n
+0001172444 00000 n
+0001172509 00000 n
+0001172574 00000 n
+0001172639 00000 n
+0001172704 00000 n
+0001172769 00000 n
+0001172833 00000 n
+0001172898 00000 n
+0001172963 00000 n
+0001173028 00000 n
+0001173092 00000 n
+0001179106 00000 n
+0001176845 00000 n
+0001173333 00000 n
+0001176970 00000 n
+0001177034 00000 n
+0001177099 00000 n
+0001177163 00000 n
+0001177228 00000 n
+0001177293 00000 n
+0001177358 00000 n
+0001177422 00000 n
+0001177487 00000 n
+0001177552 00000 n
+0001177617 00000 n
+0001177682 00000 n
+0001177747 00000 n
+0001177812 00000 n
+0001177877 00000 n
+0001177942 00000 n
+0001178007 00000 n
+0001178071 00000 n
+0001178136 00000 n
+0001178201 00000 n
+0001178266 00000 n
+0001178331 00000 n
+0001178395 00000 n
+0001178459 00000 n
+0001178524 00000 n
+0001178589 00000 n
+0001178654 00000 n
+0001178719 00000 n
+0001178784 00000 n
+0001178849 00000 n
+0001178914 00000 n
+0001178979 00000 n
+0001179042 00000 n
+0001185022 00000 n
+0001181721 00000 n
+0001179296 00000 n
+0001181846 00000 n
+0001181910 00000 n
+0001181975 00000 n
0001182040 00000 n
-0001182107 00000 n
-0001182174 00000 n
-0001182241 00000 n
-0001182308 00000 n
-0001182375 00000 n
-0001182442 00000 n
-0001182509 00000 n
-0001182576 00000 n
-0001182643 00000 n
-0001182710 00000 n
-0001182777 00000 n
-0001182844 00000 n
-0001182911 00000 n
-0001182978 00000 n
-0001183045 00000 n
-0001183112 00000 n
-0001183179 00000 n
-0001183246 00000 n
-0001183313 00000 n
-0001183380 00000 n
-0001183446 00000 n
-0001183513 00000 n
-0001183580 00000 n
-0001183647 00000 n
-0001183713 00000 n
-0001183780 00000 n
-0001183847 00000 n
-0001183913 00000 n
-0001183980 00000 n
-0001184047 00000 n
-0001184114 00000 n
-0001184181 00000 n
-0001184247 00000 n
-0001189161 00000 n
-0001186296 00000 n
-0001184491 00000 n
-0001186424 00000 n
-0001186490 00000 n
-0001186557 00000 n
-0001186624 00000 n
-0001186691 00000 n
-0001186758 00000 n
-0001186825 00000 n
-0001186892 00000 n
-0001186959 00000 n
-0001187026 00000 n
-0001187092 00000 n
-0001187159 00000 n
-0001187290 00000 n
-0001187357 00000 n
-0001187424 00000 n
-0001187491 00000 n
-0001187558 00000 n
-0001187625 00000 n
-0001187692 00000 n
-0001187759 00000 n
-0001187826 00000 n
-0001187893 00000 n
-0001187960 00000 n
-0001188027 00000 n
-0001188093 00000 n
-0001188224 00000 n
-0001188291 00000 n
-0001188358 00000 n
-0001188425 00000 n
-0001188492 00000 n
-0001188559 00000 n
-0001188626 00000 n
-0001188693 00000 n
-0001188759 00000 n
-0001188826 00000 n
-0001188893 00000 n
-0001188960 00000 n
-0001189027 00000 n
-0001189094 00000 n
-0001195718 00000 n
-0001191780 00000 n
+0001182105 00000 n
+0001182170 00000 n
+0001182235 00000 n
+0001182300 00000 n
+0001182365 00000 n
+0001182430 00000 n
+0001182495 00000 n
+0001182560 00000 n
+0001182625 00000 n
+0001182690 00000 n
+0001182755 00000 n
+0001182819 00000 n
+0001182883 00000 n
+0001182948 00000 n
+0001183013 00000 n
+0001183078 00000 n
+0001183143 00000 n
+0001183208 00000 n
+0001183273 00000 n
+0001183338 00000 n
+0001183403 00000 n
+0001183467 00000 n
+0001183532 00000 n
+0001183597 00000 n
+0001183662 00000 n
+0001183727 00000 n
+0001183792 00000 n
+0001183857 00000 n
+0001183922 00000 n
+0001183987 00000 n
+0001184050 00000 n
+0001184115 00000 n
+0001184180 00000 n
+0001184245 00000 n
+0001184310 00000 n
+0001184375 00000 n
+0001184440 00000 n
+0001184505 00000 n
+0001184570 00000 n
+0001184635 00000 n
+0001184699 00000 n
+0001184764 00000 n
+0001184829 00000 n
+0001184894 00000 n
+0001184958 00000 n
+0001537498 00000 n
+0001190921 00000 n
+0001187622 00000 n
+0001185199 00000 n
+0001187747 00000 n
+0001187811 00000 n
+0001187876 00000 n
+0001187940 00000 n
+0001188005 00000 n
+0001188070 00000 n
+0001188135 00000 n
+0001188200 00000 n
+0001188265 00000 n
+0001188330 00000 n
+0001188395 00000 n
+0001188460 00000 n
+0001188524 00000 n
+0001188589 00000 n
+0001188654 00000 n
+0001188719 00000 n
+0001188847 00000 n
+0001188912 00000 n
+0001188977 00000 n
+0001189041 00000 n
+0001189106 00000 n
+0001189171 00000 n
+0001189235 00000 n
+0001189300 00000 n
0001189365 00000 n
-0001191909 00000 n
-0001191975 00000 n
-0001192042 00000 n
-0001192109 00000 n
-0001192176 00000 n
-0001192243 00000 n
-0001192310 00000 n
-0001192377 00000 n
-0001192444 00000 n
-0001192511 00000 n
-0001192578 00000 n
-0001192645 00000 n
-0001192712 00000 n
-0001192779 00000 n
-0001192844 00000 n
-0001192911 00000 n
-0001192978 00000 n
-0001193045 00000 n
-0001193112 00000 n
-0001193179 00000 n
-0001193246 00000 n
-0001193313 00000 n
-0001193380 00000 n
-0001193447 00000 n
-0001193514 00000 n
-0001193580 00000 n
-0001193647 00000 n
-0001193714 00000 n
-0001193781 00000 n
-0001193848 00000 n
-0001193915 00000 n
-0001193982 00000 n
-0001194049 00000 n
-0001194116 00000 n
-0001194183 00000 n
-0001194250 00000 n
-0001194316 00000 n
-0001194382 00000 n
-0001194449 00000 n
-0001194516 00000 n
-0001194583 00000 n
-0001194650 00000 n
-0001194717 00000 n
-0001194784 00000 n
-0001194851 00000 n
-0001194918 00000 n
-0001194985 00000 n
-0001195051 00000 n
-0001195118 00000 n
-0001195185 00000 n
-0001195252 00000 n
-0001195319 00000 n
-0001195386 00000 n
-0001195453 00000 n
-0001195520 00000 n
-0001195587 00000 n
-0001195653 00000 n
-0001890559 00000 n
-0001201907 00000 n
-0001197766 00000 n
-0001195909 00000 n
-0001197895 00000 n
-0001197961 00000 n
-0001198028 00000 n
-0001198095 00000 n
-0001198162 00000 n
-0001198229 00000 n
-0001198296 00000 n
-0001198363 00000 n
-0001198430 00000 n
-0001198496 00000 n
-0001198563 00000 n
-0001198630 00000 n
-0001198697 00000 n
-0001198764 00000 n
-0001198831 00000 n
-0001198898 00000 n
-0001198965 00000 n
-0001199032 00000 n
-0001199099 00000 n
-0001199165 00000 n
-0001199232 00000 n
-0001199299 00000 n
-0001199366 00000 n
-0001199433 00000 n
-0001199500 00000 n
-0001199567 00000 n
-0001199634 00000 n
-0001199701 00000 n
-0001199768 00000 n
-0001199834 00000 n
-0001199901 00000 n
-0001199968 00000 n
-0001200035 00000 n
-0001200102 00000 n
-0001200169 00000 n
-0001200236 00000 n
-0001200303 00000 n
-0001200370 00000 n
-0001200437 00000 n
-0001200504 00000 n
-0001200571 00000 n
-0001200637 00000 n
-0001200704 00000 n
-0001200771 00000 n
-0001200838 00000 n
-0001200905 00000 n
-0001200972 00000 n
-0001201039 00000 n
-0001201106 00000 n
-0001201173 00000 n
-0001201240 00000 n
-0001201307 00000 n
-0001201373 00000 n
-0001201440 00000 n
-0001201507 00000 n
-0001201574 00000 n
-0001201641 00000 n
-0001201708 00000 n
-0001201775 00000 n
-0001201841 00000 n
-0001208429 00000 n
-0001204220 00000 n
-0001202072 00000 n
-0001204349 00000 n
-0001204415 00000 n
-0001204482 00000 n
-0001204549 00000 n
-0001204616 00000 n
-0001204683 00000 n
-0001204750 00000 n
-0001204817 00000 n
-0001204884 00000 n
-0001204951 00000 n
-0001205018 00000 n
-0001205085 00000 n
-0001205152 00000 n
-0001205219 00000 n
-0001205286 00000 n
-0001205353 00000 n
-0001205420 00000 n
-0001205487 00000 n
-0001205554 00000 n
-0001205621 00000 n
-0001205688 00000 n
-0001205755 00000 n
-0001205822 00000 n
-0001205889 00000 n
-0001205956 00000 n
-0001206023 00000 n
-0001206090 00000 n
-0001206157 00000 n
-0001206224 00000 n
-0001206291 00000 n
-0001206358 00000 n
-0001206425 00000 n
-0001206492 00000 n
-0001206559 00000 n
-0001206626 00000 n
-0001206693 00000 n
-0001206760 00000 n
-0001206827 00000 n
-0001206894 00000 n
-0001206961 00000 n
-0001207027 00000 n
-0001207094 00000 n
-0001207161 00000 n
-0001207228 00000 n
-0001207295 00000 n
-0001207362 00000 n
-0001207428 00000 n
-0001207495 00000 n
-0001207562 00000 n
-0001207629 00000 n
-0001207696 00000 n
-0001207763 00000 n
-0001207829 00000 n
-0001207896 00000 n
-0001207963 00000 n
-0001208030 00000 n
-0001208097 00000 n
-0001208164 00000 n
-0001208230 00000 n
-0001208297 00000 n
-0001208363 00000 n
-0001215147 00000 n
-0001210874 00000 n
-0001208594 00000 n
-0001211003 00000 n
-0001211069 00000 n
-0001211136 00000 n
-0001211203 00000 n
-0001211270 00000 n
-0001211337 00000 n
-0001211404 00000 n
-0001211471 00000 n
-0001211538 00000 n
-0001211605 00000 n
-0001211671 00000 n
-0001211738 00000 n
-0001211805 00000 n
-0001211872 00000 n
-0001211939 00000 n
-0001212006 00000 n
-0001212073 00000 n
-0001212140 00000 n
-0001212207 00000 n
-0001212274 00000 n
-0001212340 00000 n
-0001212407 00000 n
-0001212474 00000 n
-0001212541 00000 n
-0001212608 00000 n
-0001212675 00000 n
-0001212742 00000 n
-0001212809 00000 n
-0001212876 00000 n
-0001212942 00000 n
-0001213009 00000 n
-0001213076 00000 n
-0001213143 00000 n
-0001213210 00000 n
-0001213277 00000 n
-0001213344 00000 n
-0001213411 00000 n
-0001213478 00000 n
-0001213545 00000 n
-0001213611 00000 n
-0001213678 00000 n
-0001213745 00000 n
-0001213812 00000 n
-0001213879 00000 n
-0001213946 00000 n
-0001214013 00000 n
-0001214080 00000 n
-0001214147 00000 n
-0001214214 00000 n
-0001214281 00000 n
-0001214348 00000 n
-0001214414 00000 n
-0001214480 00000 n
-0001214547 00000 n
-0001214614 00000 n
-0001214681 00000 n
-0001214748 00000 n
-0001214815 00000 n
-0001214882 00000 n
-0001214949 00000 n
-0001215016 00000 n
-0001215082 00000 n
-0001222235 00000 n
-0001218029 00000 n
-0001215312 00000 n
-0001218158 00000 n
-0001218224 00000 n
-0001218291 00000 n
-0001218358 00000 n
-0001218425 00000 n
-0001218492 00000 n
-0001218559 00000 n
-0001218626 00000 n
-0001218693 00000 n
-0001218760 00000 n
-0001218827 00000 n
-0001218894 00000 n
-0001218960 00000 n
-0001219027 00000 n
-0001219094 00000 n
-0001219161 00000 n
-0001219228 00000 n
-0001219295 00000 n
-0001219362 00000 n
-0001219429 00000 n
-0001219496 00000 n
-0001219563 00000 n
-0001219629 00000 n
-0001219696 00000 n
-0001219763 00000 n
-0001219830 00000 n
-0001219897 00000 n
-0001219964 00000 n
-0001220031 00000 n
-0001220098 00000 n
-0001220165 00000 n
-0001220232 00000 n
-0001220299 00000 n
-0001220365 00000 n
-0001220432 00000 n
-0001220499 00000 n
-0001220566 00000 n
-0001220633 00000 n
-0001220700 00000 n
-0001220767 00000 n
-0001220834 00000 n
-0001220901 00000 n
-0001220968 00000 n
-0001221034 00000 n
-0001221100 00000 n
-0001221167 00000 n
-0001221234 00000 n
-0001221301 00000 n
-0001221368 00000 n
-0001221435 00000 n
-0001221502 00000 n
-0001221569 00000 n
-0001221636 00000 n
-0001221703 00000 n
-0001221770 00000 n
-0001221837 00000 n
-0001221902 00000 n
-0001221969 00000 n
-0001222036 00000 n
-0001222103 00000 n
-0001222169 00000 n
-0001228859 00000 n
-0001224651 00000 n
-0001222400 00000 n
-0001224780 00000 n
-0001224846 00000 n
-0001224913 00000 n
-0001224980 00000 n
-0001225047 00000 n
-0001225114 00000 n
-0001225181 00000 n
-0001225248 00000 n
-0001225315 00000 n
-0001225382 00000 n
-0001225449 00000 n
-0001225516 00000 n
-0001225582 00000 n
-0001225649 00000 n
-0001225716 00000 n
-0001225783 00000 n
-0001225850 00000 n
-0001225917 00000 n
-0001225984 00000 n
-0001226051 00000 n
-0001226118 00000 n
-0001226185 00000 n
-0001226251 00000 n
-0001226318 00000 n
-0001226385 00000 n
-0001226452 00000 n
-0001226519 00000 n
-0001226586 00000 n
-0001226653 00000 n
-0001226720 00000 n
-0001226787 00000 n
-0001226853 00000 n
-0001226920 00000 n
-0001226986 00000 n
-0001227053 00000 n
-0001227120 00000 n
-0001227187 00000 n
-0001227254 00000 n
-0001227321 00000 n
-0001227388 00000 n
-0001227455 00000 n
-0001227522 00000 n
-0001227589 00000 n
-0001227655 00000 n
-0001227722 00000 n
-0001227789 00000 n
-0001227856 00000 n
-0001227923 00000 n
-0001227990 00000 n
-0001228057 00000 n
-0001228124 00000 n
-0001228191 00000 n
-0001228258 00000 n
-0001228325 00000 n
-0001228392 00000 n
-0001228459 00000 n
-0001228526 00000 n
-0001228593 00000 n
-0001228660 00000 n
-0001228727 00000 n
-0001228793 00000 n
-0001235502 00000 n
-0001231229 00000 n
-0001229024 00000 n
-0001231358 00000 n
-0001231424 00000 n
-0001231491 00000 n
-0001231558 00000 n
-0001231625 00000 n
-0001231692 00000 n
-0001231758 00000 n
-0001231825 00000 n
-0001231892 00000 n
-0001231959 00000 n
-0001232026 00000 n
-0001232093 00000 n
-0001232160 00000 n
-0001232227 00000 n
-0001232294 00000 n
-0001232361 00000 n
-0001232428 00000 n
-0001232495 00000 n
-0001232562 00000 n
-0001232629 00000 n
-0001232695 00000 n
-0001232762 00000 n
-0001232829 00000 n
-0001232896 00000 n
-0001232963 00000 n
-0001233029 00000 n
-0001233096 00000 n
-0001233163 00000 n
-0001233230 00000 n
-0001233297 00000 n
-0001233364 00000 n
-0001233431 00000 n
-0001233498 00000 n
-0001233565 00000 n
-0001233632 00000 n
-0001233699 00000 n
-0001233766 00000 n
-0001233833 00000 n
-0001233900 00000 n
-0001233967 00000 n
-0001234033 00000 n
-0001234100 00000 n
-0001234167 00000 n
-0001234234 00000 n
-0001234301 00000 n
-0001234367 00000 n
-0001234434 00000 n
-0001234501 00000 n
-0001234568 00000 n
-0001234635 00000 n
-0001234701 00000 n
-0001234768 00000 n
-0001234835 00000 n
-0001234902 00000 n
-0001234969 00000 n
-0001235036 00000 n
-0001235102 00000 n
-0001235169 00000 n
-0001235236 00000 n
-0001235303 00000 n
-0001235370 00000 n
-0001235436 00000 n
-0001241876 00000 n
-0001237667 00000 n
-0001235667 00000 n
-0001237796 00000 n
-0001237862 00000 n
-0001237929 00000 n
-0001237996 00000 n
-0001238063 00000 n
-0001238130 00000 n
-0001238197 00000 n
-0001238264 00000 n
-0001238331 00000 n
-0001238398 00000 n
-0001238465 00000 n
-0001238531 00000 n
-0001238598 00000 n
-0001238665 00000 n
-0001238732 00000 n
-0001238799 00000 n
-0001238866 00000 n
-0001238933 00000 n
-0001239000 00000 n
-0001239067 00000 n
-0001239134 00000 n
-0001239201 00000 n
-0001239267 00000 n
-0001239334 00000 n
-0001239401 00000 n
-0001239468 00000 n
-0001239535 00000 n
-0001239602 00000 n
-0001239669 00000 n
-0001239736 00000 n
-0001239803 00000 n
-0001239870 00000 n
-0001239937 00000 n
-0001240003 00000 n
-0001240070 00000 n
-0001240137 00000 n
-0001240204 00000 n
-0001240271 00000 n
-0001240338 00000 n
-0001240405 00000 n
-0001240472 00000 n
-0001240539 00000 n
-0001240606 00000 n
-0001240673 00000 n
-0001240739 00000 n
-0001240806 00000 n
-0001240873 00000 n
-0001240940 00000 n
-0001241007 00000 n
-0001241074 00000 n
-0001241141 00000 n
-0001241208 00000 n
-0001241275 00000 n
-0001241342 00000 n
-0001241409 00000 n
-0001241476 00000 n
-0001241543 00000 n
-0001241610 00000 n
-0001241677 00000 n
-0001241744 00000 n
-0001241810 00000 n
-0001248351 00000 n
-0001244144 00000 n
-0001242041 00000 n
-0001244273 00000 n
-0001244339 00000 n
-0001244406 00000 n
-0001244473 00000 n
-0001244540 00000 n
-0001244607 00000 n
-0001244674 00000 n
-0001244741 00000 n
-0001244808 00000 n
-0001244875 00000 n
-0001244942 00000 n
-0001245008 00000 n
-0001245075 00000 n
-0001245142 00000 n
-0001245209 00000 n
-0001245276 00000 n
-0001245343 00000 n
-0001245410 00000 n
-0001245477 00000 n
-0001245544 00000 n
-0001245611 00000 n
-0001245677 00000 n
-0001245744 00000 n
-0001245811 00000 n
-0001245878 00000 n
-0001245945 00000 n
-0001246012 00000 n
-0001246079 00000 n
-0001246146 00000 n
-0001246213 00000 n
-0001246280 00000 n
-0001246346 00000 n
-0001246413 00000 n
-0001246479 00000 n
-0001246546 00000 n
-0001246613 00000 n
-0001246680 00000 n
-0001246747 00000 n
-0001246814 00000 n
-0001246881 00000 n
-0001246948 00000 n
-0001247015 00000 n
-0001247082 00000 n
-0001247148 00000 n
-0001247215 00000 n
-0001247282 00000 n
-0001247349 00000 n
-0001247416 00000 n
-0001247483 00000 n
-0001247550 00000 n
-0001247617 00000 n
-0001247684 00000 n
-0001247751 00000 n
-0001247817 00000 n
-0001247884 00000 n
-0001247951 00000 n
-0001248018 00000 n
-0001248085 00000 n
-0001248152 00000 n
-0001248219 00000 n
-0001248285 00000 n
-0001254985 00000 n
-0001250777 00000 n
-0001248516 00000 n
-0001250906 00000 n
-0001250972 00000 n
-0001251039 00000 n
-0001251106 00000 n
-0001251173 00000 n
-0001251240 00000 n
-0001251307 00000 n
-0001251374 00000 n
-0001251441 00000 n
-0001251508 00000 n
-0001251575 00000 n
-0001251641 00000 n
-0001251708 00000 n
-0001251775 00000 n
-0001251842 00000 n
-0001251909 00000 n
-0001251976 00000 n
-0001252043 00000 n
-0001252110 00000 n
-0001252177 00000 n
-0001252244 00000 n
-0001252310 00000 n
-0001252377 00000 n
-0001252444 00000 n
-0001252511 00000 n
-0001252578 00000 n
-0001252645 00000 n
-0001252712 00000 n
-0001252779 00000 n
-0001252846 00000 n
-0001252913 00000 n
-0001252979 00000 n
-0001253046 00000 n
-0001253112 00000 n
-0001253179 00000 n
-0001253246 00000 n
-0001253313 00000 n
-0001253380 00000 n
-0001253447 00000 n
-0001253514 00000 n
-0001253581 00000 n
-0001253648 00000 n
-0001253715 00000 n
-0001253781 00000 n
-0001253848 00000 n
-0001253915 00000 n
-0001253982 00000 n
-0001254049 00000 n
-0001254116 00000 n
-0001254183 00000 n
-0001254250 00000 n
-0001254317 00000 n
-0001254384 00000 n
-0001254451 00000 n
-0001254518 00000 n
-0001254585 00000 n
-0001254652 00000 n
-0001254719 00000 n
-0001254786 00000 n
-0001254853 00000 n
-0001254919 00000 n
-0001261270 00000 n
-0001256930 00000 n
-0001255150 00000 n
-0001257059 00000 n
-0001257125 00000 n
-0001257192 00000 n
-0001257259 00000 n
-0001257326 00000 n
-0001257393 00000 n
-0001257460 00000 n
-0001257527 00000 n
-0001257594 00000 n
-0001257661 00000 n
-0001257727 00000 n
-0001257794 00000 n
-0001257861 00000 n
-0001257928 00000 n
-0001257995 00000 n
-0001258062 00000 n
-0001258129 00000 n
-0001258196 00000 n
-0001258263 00000 n
-0001258330 00000 n
-0001258396 00000 n
-0001258463 00000 n
-0001258530 00000 n
-0001258597 00000 n
-0001258664 00000 n
-0001258731 00000 n
-0001258798 00000 n
-0001258865 00000 n
-0001258932 00000 n
-0001258999 00000 n
-0001259065 00000 n
-0001259132 00000 n
-0001259199 00000 n
-0001259266 00000 n
-0001259333 00000 n
-0001259400 00000 n
-0001259467 00000 n
-0001259534 00000 n
-0001259601 00000 n
-0001259667 00000 n
-0001259734 00000 n
-0001259800 00000 n
-0001259867 00000 n
-0001259934 00000 n
-0001260001 00000 n
-0001260068 00000 n
-0001260135 00000 n
-0001260202 00000 n
-0001260269 00000 n
-0001260336 00000 n
-0001260402 00000 n
-0001260469 00000 n
-0001260536 00000 n
-0001260603 00000 n
-0001260670 00000 n
-0001260737 00000 n
-0001260804 00000 n
-0001260871 00000 n
-0001260938 00000 n
-0001261005 00000 n
-0001261071 00000 n
-0001261138 00000 n
-0001261204 00000 n
-0001890735 00000 n
-0001267836 00000 n
-0001263425 00000 n
-0001261435 00000 n
-0001263554 00000 n
-0001263620 00000 n
-0001263687 00000 n
-0001263754 00000 n
-0001263821 00000 n
-0001263888 00000 n
-0001263955 00000 n
-0001264022 00000 n
-0001264089 00000 n
-0001264156 00000 n
-0001264222 00000 n
-0001264289 00000 n
-0001264356 00000 n
-0001264423 00000 n
-0001264490 00000 n
-0001264557 00000 n
-0001264624 00000 n
-0001264691 00000 n
-0001264758 00000 n
-0001264825 00000 n
-0001264892 00000 n
-0001264959 00000 n
-0001265026 00000 n
-0001265093 00000 n
-0001265160 00000 n
-0001265227 00000 n
-0001265294 00000 n
-0001265361 00000 n
-0001265428 00000 n
-0001265495 00000 n
-0001265562 00000 n
-0001265629 00000 n
-0001265696 00000 n
-0001265763 00000 n
-0001265830 00000 n
-0001265897 00000 n
-0001265964 00000 n
-0001266031 00000 n
-0001266098 00000 n
-0001266164 00000 n
-0001266231 00000 n
-0001266298 00000 n
-0001266365 00000 n
-0001266432 00000 n
-0001266499 00000 n
-0001266566 00000 n
-0001266633 00000 n
-0001266700 00000 n
-0001266767 00000 n
-0001266834 00000 n
-0001266901 00000 n
-0001266968 00000 n
-0001267035 00000 n
-0001267102 00000 n
-0001267169 00000 n
-0001267236 00000 n
-0001267303 00000 n
-0001267370 00000 n
-0001267436 00000 n
-0001267503 00000 n
-0001267570 00000 n
-0001267637 00000 n
-0001267704 00000 n
-0001267770 00000 n
-0001274122 00000 n
-0001269851 00000 n
-0001268001 00000 n
-0001269980 00000 n
-0001270046 00000 n
-0001270113 00000 n
-0001270180 00000 n
-0001270247 00000 n
-0001270314 00000 n
-0001270381 00000 n
-0001270448 00000 n
-0001270515 00000 n
-0001270582 00000 n
-0001270648 00000 n
-0001270715 00000 n
-0001270782 00000 n
-0001270849 00000 n
-0001270916 00000 n
-0001270983 00000 n
-0001271050 00000 n
-0001271117 00000 n
-0001271184 00000 n
-0001271250 00000 n
-0001271317 00000 n
-0001271384 00000 n
-0001271451 00000 n
-0001271518 00000 n
-0001271585 00000 n
-0001271652 00000 n
-0001271719 00000 n
-0001271786 00000 n
-0001271851 00000 n
-0001271918 00000 n
-0001271985 00000 n
-0001272052 00000 n
-0001272119 00000 n
-0001272186 00000 n
-0001272253 00000 n
-0001272320 00000 n
-0001272387 00000 n
-0001272453 00000 n
-0001272520 00000 n
-0001272587 00000 n
-0001272654 00000 n
-0001272721 00000 n
-0001272788 00000 n
-0001272855 00000 n
-0001272922 00000 n
-0001272989 00000 n
-0001273055 00000 n
-0001273122 00000 n
-0001273189 00000 n
-0001273256 00000 n
-0001273323 00000 n
-0001273390 00000 n
-0001273457 00000 n
-0001273524 00000 n
-0001273591 00000 n
-0001273657 00000 n
-0001273724 00000 n
-0001273789 00000 n
-0001273856 00000 n
-0001273923 00000 n
-0001273990 00000 n
-0001274056 00000 n
-0001280401 00000 n
-0001276128 00000 n
-0001274300 00000 n
-0001276257 00000 n
-0001276323 00000 n
-0001276390 00000 n
-0001276457 00000 n
-0001276524 00000 n
-0001276591 00000 n
-0001276658 00000 n
-0001276725 00000 n
-0001276792 00000 n
-0001276859 00000 n
-0001276925 00000 n
-0001276992 00000 n
-0001277059 00000 n
-0001277126 00000 n
-0001277193 00000 n
-0001277260 00000 n
-0001277327 00000 n
-0001277394 00000 n
-0001277461 00000 n
-0001277527 00000 n
-0001277594 00000 n
-0001277661 00000 n
-0001277728 00000 n
-0001277795 00000 n
-0001277862 00000 n
-0001277929 00000 n
-0001277996 00000 n
-0001278063 00000 n
-0001278128 00000 n
-0001278195 00000 n
-0001278262 00000 n
-0001278329 00000 n
-0001278396 00000 n
-0001278463 00000 n
-0001278530 00000 n
-0001278597 00000 n
-0001278664 00000 n
-0001278730 00000 n
-0001278797 00000 n
-0001278864 00000 n
-0001278931 00000 n
-0001278998 00000 n
-0001279065 00000 n
-0001279132 00000 n
-0001279199 00000 n
-0001279266 00000 n
-0001279332 00000 n
-0001279399 00000 n
-0001279466 00000 n
-0001279533 00000 n
-0001279600 00000 n
-0001279667 00000 n
-0001279734 00000 n
-0001279801 00000 n
-0001279868 00000 n
-0001279935 00000 n
-0001280001 00000 n
-0001280068 00000 n
-0001280135 00000 n
-0001280202 00000 n
-0001280269 00000 n
-0001280335 00000 n
-0001286594 00000 n
-0001282188 00000 n
-0001280579 00000 n
-0001282317 00000 n
-0001282383 00000 n
-0001282450 00000 n
-0001282517 00000 n
-0001282584 00000 n
-0001282651 00000 n
-0001282718 00000 n
-0001282785 00000 n
-0001282852 00000 n
-0001282919 00000 n
-0001282985 00000 n
-0001283052 00000 n
-0001283119 00000 n
-0001283186 00000 n
-0001283253 00000 n
-0001283320 00000 n
-0001283387 00000 n
-0001283454 00000 n
-0001283521 00000 n
-0001283587 00000 n
-0001283654 00000 n
-0001283721 00000 n
-0001283788 00000 n
-0001283855 00000 n
-0001283922 00000 n
-0001283989 00000 n
-0001284056 00000 n
-0001284123 00000 n
-0001284188 00000 n
-0001284255 00000 n
-0001284322 00000 n
-0001284389 00000 n
-0001284456 00000 n
-0001284523 00000 n
-0001284590 00000 n
-0001284657 00000 n
-0001284724 00000 n
-0001284790 00000 n
-0001284857 00000 n
-0001284924 00000 n
-0001284991 00000 n
-0001285058 00000 n
-0001285125 00000 n
-0001285192 00000 n
-0001285259 00000 n
-0001285326 00000 n
-0001285392 00000 n
-0001285459 00000 n
-0001285526 00000 n
-0001285593 00000 n
-0001285660 00000 n
-0001285727 00000 n
-0001285794 00000 n
-0001285861 00000 n
-0001285928 00000 n
-0001285994 00000 n
-0001286061 00000 n
-0001286128 00000 n
-0001286195 00000 n
-0001286262 00000 n
-0001286329 00000 n
-0001286396 00000 n
-0001286463 00000 n
-0001286528 00000 n
-0001292982 00000 n
-0001288575 00000 n
-0001286759 00000 n
-0001288704 00000 n
-0001288770 00000 n
-0001288837 00000 n
-0001288904 00000 n
-0001288971 00000 n
-0001289038 00000 n
-0001289105 00000 n
-0001289172 00000 n
-0001289239 00000 n
-0001289306 00000 n
-0001289372 00000 n
-0001289439 00000 n
-0001289506 00000 n
-0001289573 00000 n
-0001289640 00000 n
-0001289707 00000 n
-0001289774 00000 n
-0001289841 00000 n
-0001289908 00000 n
-0001289974 00000 n
-0001290041 00000 n
-0001290108 00000 n
-0001290175 00000 n
-0001290242 00000 n
-0001290309 00000 n
-0001290376 00000 n
-0001290443 00000 n
-0001290510 00000 n
-0001290575 00000 n
-0001290642 00000 n
-0001290709 00000 n
-0001290776 00000 n
-0001290843 00000 n
-0001290910 00000 n
-0001290977 00000 n
-0001291044 00000 n
-0001291111 00000 n
-0001291177 00000 n
-0001291244 00000 n
-0001291311 00000 n
-0001291378 00000 n
-0001291445 00000 n
-0001291512 00000 n
-0001291579 00000 n
-0001291646 00000 n
-0001291713 00000 n
-0001291779 00000 n
-0001291846 00000 n
-0001291913 00000 n
-0001291980 00000 n
-0001292047 00000 n
-0001292114 00000 n
-0001292181 00000 n
-0001292248 00000 n
-0001292315 00000 n
-0001292381 00000 n
-0001292448 00000 n
-0001292515 00000 n
-0001292582 00000 n
-0001292649 00000 n
-0001292716 00000 n
-0001292783 00000 n
-0001292850 00000 n
-0001292916 00000 n
-0001296281 00000 n
-0001294280 00000 n
-0001293147 00000 n
-0001294409 00000 n
-0001294475 00000 n
-0001294542 00000 n
-0001294609 00000 n
-0001294676 00000 n
-0001294743 00000 n
-0001294810 00000 n
-0001294877 00000 n
-0001294944 00000 n
-0001295011 00000 n
-0001295078 00000 n
-0001295144 00000 n
-0001295211 00000 n
-0001295278 00000 n
-0001295345 00000 n
-0001295412 00000 n
-0001295479 00000 n
-0001295546 00000 n
-0001295613 00000 n
-0001295680 00000 n
-0001295747 00000 n
-0001295813 00000 n
-0001295879 00000 n
-0001295946 00000 n
-0001296013 00000 n
-0001296080 00000 n
-0001296147 00000 n
-0001296214 00000 n
-0001298225 00000 n
-0001298381 00000 n
-0001298538 00000 n
-0001298695 00000 n
-0001298851 00000 n
-0001299008 00000 n
-0001299165 00000 n
-0001299322 00000 n
-0001299479 00000 n
-0001299636 00000 n
-0001299794 00000 n
-0001299952 00000 n
-0001300110 00000 n
-0001300266 00000 n
-0001300423 00000 n
-0001300581 00000 n
-0001300739 00000 n
-0001300897 00000 n
-0001301055 00000 n
-0001301213 00000 n
-0001301371 00000 n
-0001301528 00000 n
-0001301685 00000 n
-0001301842 00000 n
-0001301999 00000 n
-0001302157 00000 n
-0001302315 00000 n
-0001302473 00000 n
-0001302631 00000 n
-0001302789 00000 n
-0001304079 00000 n
-0001303074 00000 n
-0001297755 00000 n
-0001296446 00000 n
-0001302944 00000 n
-0001297902 00000 n
-0001304237 00000 n
-0001304395 00000 n
-0001304553 00000 n
-0001304711 00000 n
-0001304869 00000 n
-0001305027 00000 n
-0001305183 00000 n
-0001305341 00000 n
-0001305499 00000 n
-0001305723 00000 n
-0001303809 00000 n
-0001303226 00000 n
-0001305657 00000 n
-0001303956 00000 n
-0001880766 00000 n
-0001305989 00000 n
-0001880586 00000 n
-0001306023 00000 n
-0001879931 00000 n
-0001306105 00000 n
-0001880973 00000 n
-0001306203 00000 n
-0001880890 00000 n
-0001306237 00000 n
-0001306265 00000 n
-0001306611 00000 n
-0001881099 00000 n
-0001307049 00000 n
-0001307077 00000 n
-0001307267 00000 n
-0001307423 00000 n
-0001307515 00000 n
-0001307597 00000 n
-0001307679 00000 n
-0001308003 00000 n
-0001308273 00000 n
-0001308415 00000 n
+0001189430 00000 n
+0001189495 00000 n
+0001189560 00000 n
+0001189625 00000 n
+0001189690 00000 n
+0001189755 00000 n
+0001189820 00000 n
+0001189885 00000 n
+0001189950 00000 n
+0001190014 00000 n
+0001190079 00000 n
+0001190144 00000 n
+0001190209 00000 n
+0001190274 00000 n
+0001190339 00000 n
+0001190404 00000 n
+0001190469 00000 n
+0001190534 00000 n
+0001190599 00000 n
+0001190664 00000 n
+0001190728 00000 n
+0001190793 00000 n
+0001190857 00000 n
+0001197344 00000 n
+0001193068 00000 n
+0001191124 00000 n
+0001193193 00000 n
+0001193257 00000 n
+0001193322 00000 n
+0001193386 00000 n
+0001193451 00000 n
+0001193516 00000 n
+0001193581 00000 n
+0001193646 00000 n
+0001193711 00000 n
+0001193776 00000 n
+0001193841 00000 n
+0001193906 00000 n
+0001193970 00000 n
+0001194035 00000 n
+0001194100 00000 n
+0001194165 00000 n
+0001194230 00000 n
+0001194295 00000 n
+0001194360 00000 n
+0001194425 00000 n
+0001194490 00000 n
+0001194554 00000 n
+0001194619 00000 n
+0001194684 00000 n
+0001194749 00000 n
+0001194814 00000 n
+0001194879 00000 n
+0001194944 00000 n
+0001195009 00000 n
+0001195074 00000 n
+0001195138 00000 n
+0001195203 00000 n
+0001195268 00000 n
+0001195333 00000 n
+0001195398 00000 n
+0001195463 00000 n
+0001195528 00000 n
+0001195593 00000 n
+0001195658 00000 n
+0001195722 00000 n
+0001195787 00000 n
+0001195852 00000 n
+0001195917 00000 n
+0001195982 00000 n
+0001196047 00000 n
+0001196112 00000 n
+0001196177 00000 n
+0001196242 00000 n
+0001196306 00000 n
+0001196371 00000 n
+0001196436 00000 n
+0001196501 00000 n
+0001196566 00000 n
+0001196631 00000 n
+0001196696 00000 n
+0001196761 00000 n
+0001196826 00000 n
+0001196890 00000 n
+0001196955 00000 n
+0001197020 00000 n
+0001197085 00000 n
+0001197150 00000 n
+0001197215 00000 n
+0001197280 00000 n
+0001203250 00000 n
+0001199218 00000 n
+0001197495 00000 n
+0001199343 00000 n
+0001199407 00000 n
+0001199472 00000 n
+0001199536 00000 n
+0001199601 00000 n
+0001199666 00000 n
+0001199731 00000 n
+0001199796 00000 n
+0001199861 00000 n
+0001199926 00000 n
+0001199991 00000 n
+0001200056 00000 n
+0001200120 00000 n
+0001200185 00000 n
+0001200250 00000 n
+0001200315 00000 n
+0001200380 00000 n
+0001200445 00000 n
+0001200510 00000 n
+0001200575 00000 n
+0001200640 00000 n
+0001200703 00000 n
+0001200768 00000 n
+0001200833 00000 n
+0001200898 00000 n
+0001200963 00000 n
+0001201028 00000 n
+0001201093 00000 n
+0001201158 00000 n
+0001201223 00000 n
+0001201287 00000 n
+0001201352 00000 n
+0001201417 00000 n
+0001201482 00000 n
+0001201547 00000 n
+0001201612 00000 n
+0001201677 00000 n
+0001201742 00000 n
+0001201807 00000 n
+0001201871 00000 n
+0001201936 00000 n
+0001202001 00000 n
+0001202066 00000 n
+0001202132 00000 n
+0001202198 00000 n
+0001202264 00000 n
+0001202330 00000 n
+0001202396 00000 n
+0001202462 00000 n
+0001202527 00000 n
+0001202593 00000 n
+0001202659 00000 n
+0001202725 00000 n
+0001202791 00000 n
+0001202857 00000 n
+0001202923 00000 n
+0001202989 00000 n
+0001203055 00000 n
+0001203120 00000 n
+0001203185 00000 n
+0001209283 00000 n
+0001205417 00000 n
+0001203401 00000 n
+0001205545 00000 n
+0001205611 00000 n
+0001205678 00000 n
+0001205744 00000 n
+0001205811 00000 n
+0001205878 00000 n
+0001205945 00000 n
+0001206012 00000 n
+0001206079 00000 n
+0001206146 00000 n
+0001206213 00000 n
+0001206280 00000 n
+0001206346 00000 n
+0001206413 00000 n
+0001206480 00000 n
+0001206547 00000 n
+0001206614 00000 n
+0001206681 00000 n
+0001206748 00000 n
+0001206815 00000 n
+0001206882 00000 n
+0001206948 00000 n
+0001207015 00000 n
+0001207082 00000 n
+0001207213 00000 n
+0001207280 00000 n
+0001207346 00000 n
+0001207413 00000 n
+0001207480 00000 n
+0001207547 00000 n
+0001207614 00000 n
+0001207681 00000 n
+0001207748 00000 n
+0001207815 00000 n
+0001207882 00000 n
+0001207947 00000 n
+0001208014 00000 n
+0001208081 00000 n
+0001208148 00000 n
+0001208215 00000 n
+0001208282 00000 n
+0001208349 00000 n
+0001208416 00000 n
+0001208483 00000 n
+0001208549 00000 n
+0001208616 00000 n
+0001208683 00000 n
+0001208750 00000 n
+0001208817 00000 n
+0001208884 00000 n
+0001208951 00000 n
+0001209018 00000 n
+0001209085 00000 n
+0001209151 00000 n
+0001209217 00000 n
+0001215499 00000 n
+0001211158 00000 n
+0001209474 00000 n
+0001211286 00000 n
+0001211352 00000 n
+0001211419 00000 n
+0001211485 00000 n
+0001211552 00000 n
+0001211619 00000 n
+0001211686 00000 n
+0001211753 00000 n
+0001211820 00000 n
+0001211887 00000 n
+0001211954 00000 n
+0001212021 00000 n
+0001212087 00000 n
+0001212154 00000 n
+0001212221 00000 n
+0001212288 00000 n
+0001212355 00000 n
+0001212422 00000 n
+0001212489 00000 n
+0001212556 00000 n
+0001212623 00000 n
+0001212689 00000 n
+0001212756 00000 n
+0001212823 00000 n
+0001212890 00000 n
+0001212957 00000 n
+0001213024 00000 n
+0001213091 00000 n
+0001213158 00000 n
+0001213225 00000 n
+0001213291 00000 n
+0001213358 00000 n
+0001213425 00000 n
+0001213492 00000 n
+0001213559 00000 n
+0001213626 00000 n
+0001213693 00000 n
+0001213760 00000 n
+0001213827 00000 n
+0001213893 00000 n
+0001213960 00000 n
+0001214027 00000 n
+0001214094 00000 n
+0001214161 00000 n
+0001214228 00000 n
+0001214295 00000 n
+0001214362 00000 n
+0001214429 00000 n
+0001214495 00000 n
+0001214562 00000 n
+0001214629 00000 n
+0001214696 00000 n
+0001214763 00000 n
+0001214830 00000 n
+0001214897 00000 n
+0001214964 00000 n
+0001215031 00000 n
+0001215097 00000 n
+0001215164 00000 n
+0001215231 00000 n
+0001215298 00000 n
+0001215365 00000 n
+0001215432 00000 n
+0001221765 00000 n
+0001217496 00000 n
+0001215651 00000 n
+0001217624 00000 n
+0001217754 00000 n
+0001217821 00000 n
+0001217888 00000 n
+0001217955 00000 n
+0001218020 00000 n
+0001218087 00000 n
+0001218154 00000 n
+0001218221 00000 n
+0001218288 00000 n
+0001218355 00000 n
+0001218422 00000 n
+0001218489 00000 n
+0001218556 00000 n
+0001218622 00000 n
+0001218689 00000 n
+0001218756 00000 n
+0001218823 00000 n
+0001218890 00000 n
+0001218957 00000 n
+0001219024 00000 n
+0001219091 00000 n
+0001219158 00000 n
+0001219224 00000 n
+0001219291 00000 n
+0001219358 00000 n
+0001219425 00000 n
+0001219492 00000 n
+0001219559 00000 n
+0001219626 00000 n
+0001219693 00000 n
+0001219760 00000 n
+0001219827 00000 n
+0001219894 00000 n
+0001219961 00000 n
+0001220028 00000 n
+0001220095 00000 n
+0001220162 00000 n
+0001220229 00000 n
+0001220296 00000 n
+0001220363 00000 n
+0001220430 00000 n
+0001220496 00000 n
+0001220563 00000 n
+0001220630 00000 n
+0001220697 00000 n
+0001220764 00000 n
+0001220831 00000 n
+0001220898 00000 n
+0001220965 00000 n
+0001221032 00000 n
+0001221098 00000 n
+0001221165 00000 n
+0001221232 00000 n
+0001221299 00000 n
+0001221366 00000 n
+0001221433 00000 n
+0001221500 00000 n
+0001221567 00000 n
+0001221634 00000 n
+0001221699 00000 n
+0001227863 00000 n
+0001224396 00000 n
+0001221930 00000 n
+0001224524 00000 n
+0001224590 00000 n
+0001224657 00000 n
+0001224723 00000 n
+0001224790 00000 n
+0001224857 00000 n
+0001224924 00000 n
+0001224991 00000 n
+0001225058 00000 n
+0001225125 00000 n
+0001225192 00000 n
+0001225259 00000 n
+0001225325 00000 n
+0001225392 00000 n
+0001225459 00000 n
+0001225526 00000 n
+0001225593 00000 n
+0001225660 00000 n
+0001225727 00000 n
+0001225794 00000 n
+0001225861 00000 n
+0001225927 00000 n
+0001225994 00000 n
+0001226061 00000 n
+0001226128 00000 n
+0001226195 00000 n
+0001226262 00000 n
+0001226329 00000 n
+0001226396 00000 n
+0001226463 00000 n
+0001226529 00000 n
+0001226596 00000 n
+0001226663 00000 n
+0001226730 00000 n
+0001226861 00000 n
+0001226928 00000 n
+0001226995 00000 n
+0001227062 00000 n
+0001227129 00000 n
+0001227196 00000 n
+0001227263 00000 n
+0001227330 00000 n
+0001227397 00000 n
+0001227464 00000 n
+0001227531 00000 n
+0001227597 00000 n
+0001227664 00000 n
+0001227731 00000 n
+0001227797 00000 n
+0001233772 00000 n
+0001230170 00000 n
+0001228041 00000 n
+0001230298 00000 n
+0001230364 00000 n
+0001230431 00000 n
+0001230498 00000 n
+0001230564 00000 n
+0001230631 00000 n
+0001230698 00000 n
+0001230765 00000 n
+0001230832 00000 n
+0001230899 00000 n
+0001230966 00000 n
+0001231033 00000 n
+0001231100 00000 n
+0001231166 00000 n
+0001231233 00000 n
+0001231300 00000 n
+0001231367 00000 n
+0001231434 00000 n
+0001231499 00000 n
+0001231566 00000 n
+0001231633 00000 n
+0001231700 00000 n
+0001231767 00000 n
+0001231834 00000 n
+0001231901 00000 n
+0001231968 00000 n
+0001232035 00000 n
+0001232102 00000 n
+0001232168 00000 n
+0001232235 00000 n
+0001232302 00000 n
+0001232369 00000 n
+0001232436 00000 n
+0001232503 00000 n
+0001232570 00000 n
+0001232637 00000 n
+0001232704 00000 n
+0001232770 00000 n
+0001232837 00000 n
+0001232904 00000 n
+0001232971 00000 n
+0001233038 00000 n
+0001233105 00000 n
+0001233172 00000 n
+0001233239 00000 n
+0001233306 00000 n
+0001233373 00000 n
+0001233440 00000 n
+0001233506 00000 n
+0001233573 00000 n
+0001233640 00000 n
+0001233706 00000 n
+0001239093 00000 n
+0001236298 00000 n
+0001233937 00000 n
+0001236426 00000 n
+0001236492 00000 n
+0001236559 00000 n
+0001236689 00000 n
+0001236756 00000 n
+0001236823 00000 n
+0001236890 00000 n
+0001236957 00000 n
+0001237024 00000 n
+0001237091 00000 n
+0001237158 00000 n
+0001237224 00000 n
+0001237291 00000 n
+0001237358 00000 n
+0001237489 00000 n
+0001237556 00000 n
+0001237623 00000 n
+0001237690 00000 n
+0001237757 00000 n
+0001237824 00000 n
+0001237891 00000 n
+0001237958 00000 n
+0001238025 00000 n
+0001238092 00000 n
+0001238158 00000 n
+0001238225 00000 n
+0001238292 00000 n
+0001238359 00000 n
+0001238426 00000 n
+0001238493 00000 n
+0001238559 00000 n
+0001238626 00000 n
+0001238693 00000 n
+0001238760 00000 n
+0001238827 00000 n
+0001238894 00000 n
+0001238961 00000 n
+0001239027 00000 n
+0001245697 00000 n
+0001241558 00000 n
+0001239297 00000 n
+0001241687 00000 n
+0001241753 00000 n
+0001241820 00000 n
+0001241887 00000 n
+0001241954 00000 n
+0001242021 00000 n
+0001242087 00000 n
+0001242154 00000 n
+0001242221 00000 n
+0001242288 00000 n
+0001242355 00000 n
+0001242422 00000 n
+0001242489 00000 n
+0001242556 00000 n
+0001242623 00000 n
+0001242689 00000 n
+0001242756 00000 n
+0001242823 00000 n
+0001242890 00000 n
+0001242957 00000 n
+0001243024 00000 n
+0001243091 00000 n
+0001243158 00000 n
+0001243225 00000 n
+0001243292 00000 n
+0001243359 00000 n
+0001243425 00000 n
+0001243491 00000 n
+0001243558 00000 n
+0001243625 00000 n
+0001243692 00000 n
+0001243759 00000 n
+0001243826 00000 n
+0001243893 00000 n
+0001243960 00000 n
+0001244027 00000 n
+0001244094 00000 n
+0001244160 00000 n
+0001244227 00000 n
+0001244294 00000 n
+0001244361 00000 n
+0001244428 00000 n
+0001244495 00000 n
+0001244562 00000 n
+0001244629 00000 n
+0001244696 00000 n
+0001244762 00000 n
+0001244829 00000 n
+0001244896 00000 n
+0001244963 00000 n
+0001245030 00000 n
+0001245097 00000 n
+0001245164 00000 n
+0001245231 00000 n
+0001245298 00000 n
+0001245364 00000 n
+0001245431 00000 n
+0001245498 00000 n
+0001245565 00000 n
+0001245631 00000 n
+0001537669 00000 n
+0001251870 00000 n
+0001247731 00000 n
+0001245862 00000 n
+0001247860 00000 n
+0001247926 00000 n
+0001247993 00000 n
+0001248059 00000 n
+0001248126 00000 n
+0001248193 00000 n
+0001248260 00000 n
+0001248327 00000 n
+0001248394 00000 n
+0001248461 00000 n
+0001248528 00000 n
+0001248595 00000 n
+0001248662 00000 n
+0001248729 00000 n
+0001248795 00000 n
+0001248862 00000 n
+0001248929 00000 n
+0001248996 00000 n
+0001249063 00000 n
+0001249130 00000 n
+0001249197 00000 n
+0001249264 00000 n
+0001249331 00000 n
+0001249398 00000 n
+0001249465 00000 n
+0001249532 00000 n
+0001249598 00000 n
+0001249665 00000 n
+0001249732 00000 n
+0001249799 00000 n
+0001249866 00000 n
+0001249933 00000 n
+0001250000 00000 n
+0001250067 00000 n
+0001250134 00000 n
+0001250201 00000 n
+0001250268 00000 n
+0001250334 00000 n
+0001250401 00000 n
+0001250468 00000 n
+0001250535 00000 n
+0001250602 00000 n
+0001250669 00000 n
+0001250736 00000 n
+0001250803 00000 n
+0001250870 00000 n
+0001250937 00000 n
+0001251004 00000 n
+0001251071 00000 n
+0001251137 00000 n
+0001251204 00000 n
+0001251271 00000 n
+0001251338 00000 n
+0001251405 00000 n
+0001251472 00000 n
+0001251539 00000 n
+0001251606 00000 n
+0001251673 00000 n
+0001251740 00000 n
+0001251806 00000 n
+0001258336 00000 n
+0001254065 00000 n
+0001252022 00000 n
+0001254194 00000 n
+0001254260 00000 n
+0001254327 00000 n
+0001254393 00000 n
+0001254460 00000 n
+0001254527 00000 n
+0001254594 00000 n
+0001254661 00000 n
+0001254727 00000 n
+0001254794 00000 n
+0001254861 00000 n
+0001254928 00000 n
+0001254995 00000 n
+0001255061 00000 n
+0001255128 00000 n
+0001255195 00000 n
+0001255262 00000 n
+0001255329 00000 n
+0001255396 00000 n
+0001255463 00000 n
+0001255530 00000 n
+0001255597 00000 n
+0001255663 00000 n
+0001255730 00000 n
+0001255797 00000 n
+0001255864 00000 n
+0001255931 00000 n
+0001255998 00000 n
+0001256063 00000 n
+0001256130 00000 n
+0001256197 00000 n
+0001256264 00000 n
+0001256331 00000 n
+0001256397 00000 n
+0001256464 00000 n
+0001256531 00000 n
+0001256598 00000 n
+0001256665 00000 n
+0001256731 00000 n
+0001256798 00000 n
+0001256865 00000 n
+0001256932 00000 n
+0001256999 00000 n
+0001257065 00000 n
+0001257132 00000 n
+0001257199 00000 n
+0001257266 00000 n
+0001257333 00000 n
+0001257400 00000 n
+0001257467 00000 n
+0001257534 00000 n
+0001257601 00000 n
+0001257668 00000 n
+0001257735 00000 n
+0001257802 00000 n
+0001257869 00000 n
+0001257936 00000 n
+0001258003 00000 n
+0001258070 00000 n
+0001258137 00000 n
+0001258204 00000 n
+0001258270 00000 n
+0001264926 00000 n
+0001260720 00000 n
+0001258488 00000 n
+0001260849 00000 n
+0001260915 00000 n
+0001260982 00000 n
+0001261048 00000 n
+0001261115 00000 n
+0001261182 00000 n
+0001261249 00000 n
+0001261316 00000 n
+0001261383 00000 n
+0001261450 00000 n
+0001261517 00000 n
+0001261584 00000 n
+0001261650 00000 n
+0001261717 00000 n
+0001261784 00000 n
+0001261851 00000 n
+0001261918 00000 n
+0001261985 00000 n
+0001262052 00000 n
+0001262119 00000 n
+0001262186 00000 n
+0001262253 00000 n
+0001262320 00000 n
+0001262386 00000 n
+0001262453 00000 n
+0001262520 00000 n
+0001262587 00000 n
+0001262654 00000 n
+0001262721 00000 n
+0001262788 00000 n
+0001262855 00000 n
+0001262922 00000 n
+0001262989 00000 n
+0001263056 00000 n
+0001263123 00000 n
+0001263189 00000 n
+0001263256 00000 n
+0001263323 00000 n
+0001263390 00000 n
+0001263457 00000 n
+0001263524 00000 n
+0001263591 00000 n
+0001263658 00000 n
+0001263725 00000 n
+0001263792 00000 n
+0001263858 00000 n
+0001263924 00000 n
+0001263991 00000 n
+0001264058 00000 n
+0001264125 00000 n
+0001264192 00000 n
+0001264259 00000 n
+0001264326 00000 n
+0001264393 00000 n
+0001264460 00000 n
+0001264527 00000 n
+0001264594 00000 n
+0001264660 00000 n
+0001264727 00000 n
+0001264794 00000 n
+0001264860 00000 n
+0001271653 00000 n
+0001267380 00000 n
+0001265078 00000 n
+0001267509 00000 n
+0001267575 00000 n
+0001267642 00000 n
+0001267708 00000 n
+0001267775 00000 n
+0001267842 00000 n
+0001267909 00000 n
+0001267976 00000 n
+0001268042 00000 n
+0001268109 00000 n
+0001268176 00000 n
+0001268243 00000 n
+0001268310 00000 n
+0001268377 00000 n
+0001268444 00000 n
+0001268511 00000 n
+0001268578 00000 n
+0001268645 00000 n
+0001268712 00000 n
+0001268779 00000 n
+0001268846 00000 n
+0001268913 00000 n
+0001268979 00000 n
+0001269046 00000 n
+0001269113 00000 n
+0001269180 00000 n
+0001269247 00000 n
+0001269314 00000 n
+0001269379 00000 n
+0001269446 00000 n
+0001269513 00000 n
+0001269580 00000 n
+0001269647 00000 n
+0001269713 00000 n
+0001269780 00000 n
+0001269847 00000 n
+0001269914 00000 n
+0001269981 00000 n
+0001270048 00000 n
+0001270115 00000 n
+0001270182 00000 n
+0001270249 00000 n
+0001270316 00000 n
+0001270383 00000 n
+0001270450 00000 n
+0001270517 00000 n
+0001270584 00000 n
+0001270651 00000 n
+0001270718 00000 n
+0001270785 00000 n
+0001270852 00000 n
+0001270919 00000 n
+0001270986 00000 n
+0001271053 00000 n
+0001271120 00000 n
+0001271187 00000 n
+0001271254 00000 n
+0001271321 00000 n
+0001271387 00000 n
+0001271454 00000 n
+0001271521 00000 n
+0001271587 00000 n
+0001278157 00000 n
+0001273951 00000 n
+0001271805 00000 n
+0001274080 00000 n
+0001274146 00000 n
+0001274213 00000 n
+0001274279 00000 n
+0001274346 00000 n
+0001274413 00000 n
+0001274480 00000 n
+0001274547 00000 n
+0001274614 00000 n
+0001274681 00000 n
+0001274748 00000 n
+0001274815 00000 n
+0001274882 00000 n
+0001274947 00000 n
+0001275013 00000 n
+0001275080 00000 n
+0001275147 00000 n
+0001275214 00000 n
+0001275281 00000 n
+0001275348 00000 n
+0001275415 00000 n
+0001275482 00000 n
+0001275549 00000 n
+0001275616 00000 n
+0001275683 00000 n
+0001275750 00000 n
+0001275817 00000 n
+0001275884 00000 n
+0001275951 00000 n
+0001276018 00000 n
+0001276085 00000 n
+0001276152 00000 n
+0001276219 00000 n
+0001276286 00000 n
+0001276353 00000 n
+0001276420 00000 n
+0001276486 00000 n
+0001276553 00000 n
+0001276620 00000 n
+0001276687 00000 n
+0001276754 00000 n
+0001276821 00000 n
+0001276888 00000 n
+0001276955 00000 n
+0001277022 00000 n
+0001277089 00000 n
+0001277155 00000 n
+0001277222 00000 n
+0001277289 00000 n
+0001277356 00000 n
+0001277423 00000 n
+0001277490 00000 n
+0001277557 00000 n
+0001277624 00000 n
+0001277691 00000 n
+0001277758 00000 n
+0001277825 00000 n
+0001277892 00000 n
+0001277958 00000 n
+0001278025 00000 n
+0001278091 00000 n
+0001284642 00000 n
+0001280435 00000 n
+0001278309 00000 n
+0001280564 00000 n
+0001280630 00000 n
+0001280697 00000 n
+0001280763 00000 n
+0001280830 00000 n
+0001280897 00000 n
+0001280964 00000 n
+0001281031 00000 n
+0001281098 00000 n
+0001281165 00000 n
+0001281232 00000 n
+0001281299 00000 n
+0001281366 00000 n
+0001281431 00000 n
+0001281498 00000 n
+0001281565 00000 n
+0001281632 00000 n
+0001281699 00000 n
+0001281766 00000 n
+0001281833 00000 n
+0001281900 00000 n
+0001281967 00000 n
+0001282034 00000 n
+0001282101 00000 n
+0001282168 00000 n
+0001282235 00000 n
+0001282302 00000 n
+0001282369 00000 n
+0001282436 00000 n
+0001282503 00000 n
+0001282570 00000 n
+0001282637 00000 n
+0001282704 00000 n
+0001282771 00000 n
+0001282838 00000 n
+0001282904 00000 n
+0001282971 00000 n
+0001283038 00000 n
+0001283105 00000 n
+0001283172 00000 n
+0001283239 00000 n
+0001283306 00000 n
+0001283373 00000 n
+0001283440 00000 n
+0001283507 00000 n
+0001283573 00000 n
+0001283640 00000 n
+0001283707 00000 n
+0001283774 00000 n
+0001283841 00000 n
+0001283908 00000 n
+0001283975 00000 n
+0001284042 00000 n
+0001284109 00000 n
+0001284176 00000 n
+0001284243 00000 n
+0001284310 00000 n
+0001284376 00000 n
+0001284443 00000 n
+0001284510 00000 n
+0001284576 00000 n
+0001291267 00000 n
+0001286992 00000 n
+0001284794 00000 n
+0001287121 00000 n
+0001287187 00000 n
+0001287254 00000 n
+0001287320 00000 n
+0001287387 00000 n
+0001287454 00000 n
+0001287521 00000 n
+0001287588 00000 n
+0001287655 00000 n
+0001287722 00000 n
+0001287789 00000 n
+0001287856 00000 n
+0001287923 00000 n
+0001287990 00000 n
+0001288057 00000 n
+0001288124 00000 n
+0001288191 00000 n
+0001288258 00000 n
+0001288325 00000 n
+0001288392 00000 n
+0001288459 00000 n
+0001288526 00000 n
+0001288592 00000 n
+0001288659 00000 n
+0001288726 00000 n
+0001288793 00000 n
+0001288860 00000 n
+0001288927 00000 n
+0001288992 00000 n
+0001289059 00000 n
+0001289126 00000 n
+0001289193 00000 n
+0001289260 00000 n
+0001289327 00000 n
+0001289394 00000 n
+0001289461 00000 n
+0001289528 00000 n
+0001289595 00000 n
+0001289662 00000 n
+0001289729 00000 n
+0001289796 00000 n
+0001289863 00000 n
+0001289930 00000 n
+0001289997 00000 n
+0001290064 00000 n
+0001290131 00000 n
+0001290198 00000 n
+0001290264 00000 n
+0001290331 00000 n
+0001290398 00000 n
+0001290465 00000 n
+0001290532 00000 n
+0001290599 00000 n
+0001290666 00000 n
+0001290733 00000 n
+0001290800 00000 n
+0001290867 00000 n
+0001290934 00000 n
+0001291001 00000 n
+0001291068 00000 n
+0001291135 00000 n
+0001291201 00000 n
+0001297740 00000 n
+0001293534 00000 n
+0001291419 00000 n
+0001293663 00000 n
+0001293729 00000 n
+0001293796 00000 n
+0001293862 00000 n
+0001293929 00000 n
+0001293996 00000 n
+0001294063 00000 n
+0001294130 00000 n
+0001294197 00000 n
+0001294264 00000 n
+0001294331 00000 n
+0001294398 00000 n
+0001294465 00000 n
+0001294530 00000 n
+0001294596 00000 n
+0001294663 00000 n
+0001294730 00000 n
+0001294797 00000 n
+0001294864 00000 n
+0001294931 00000 n
+0001294998 00000 n
+0001295065 00000 n
+0001295132 00000 n
+0001295199 00000 n
+0001295266 00000 n
+0001295333 00000 n
+0001295400 00000 n
+0001295467 00000 n
+0001295534 00000 n
+0001295601 00000 n
+0001295668 00000 n
+0001295735 00000 n
+0001295802 00000 n
+0001295869 00000 n
+0001295936 00000 n
+0001296003 00000 n
+0001296069 00000 n
+0001296136 00000 n
+0001296203 00000 n
+0001296270 00000 n
+0001296337 00000 n
+0001296404 00000 n
+0001296471 00000 n
+0001296538 00000 n
+0001296605 00000 n
+0001296672 00000 n
+0001296738 00000 n
+0001296805 00000 n
+0001296872 00000 n
+0001296939 00000 n
+0001297006 00000 n
+0001297073 00000 n
+0001297140 00000 n
+0001297207 00000 n
+0001297274 00000 n
+0001297341 00000 n
+0001297408 00000 n
+0001297474 00000 n
+0001297541 00000 n
+0001297608 00000 n
+0001297674 00000 n
+0001304216 00000 n
+0001299941 00000 n
+0001297892 00000 n
+0001300070 00000 n
+0001300136 00000 n
+0001300203 00000 n
+0001300269 00000 n
+0001300336 00000 n
+0001300403 00000 n
+0001300470 00000 n
+0001300537 00000 n
+0001300603 00000 n
+0001300670 00000 n
+0001300737 00000 n
+0001300804 00000 n
+0001300871 00000 n
+0001300937 00000 n
+0001301004 00000 n
+0001301071 00000 n
+0001301138 00000 n
+0001301205 00000 n
+0001301271 00000 n
+0001301338 00000 n
+0001301405 00000 n
+0001301472 00000 n
+0001301539 00000 n
+0001301606 00000 n
+0001301673 00000 n
+0001301740 00000 n
+0001301807 00000 n
+0001301874 00000 n
+0001301941 00000 n
+0001302008 00000 n
+0001302075 00000 n
+0001302142 00000 n
+0001302209 00000 n
+0001302276 00000 n
+0001302343 00000 n
+0001302410 00000 n
+0001302477 00000 n
+0001302544 00000 n
+0001302610 00000 n
+0001302677 00000 n
+0001302744 00000 n
+0001302811 00000 n
+0001302878 00000 n
+0001302945 00000 n
+0001303012 00000 n
+0001303079 00000 n
+0001303146 00000 n
+0001303213 00000 n
+0001303280 00000 n
+0001303347 00000 n
+0001303414 00000 n
+0001303481 00000 n
+0001303548 00000 n
+0001303615 00000 n
+0001303682 00000 n
+0001303749 00000 n
+0001303816 00000 n
+0001303883 00000 n
+0001303950 00000 n
+0001304017 00000 n
+0001304084 00000 n
+0001304150 00000 n
+0001310458 00000 n
+0001306120 00000 n
+0001304368 00000 n
+0001306249 00000 n
+0001306315 00000 n
+0001306382 00000 n
+0001306448 00000 n
+0001306515 00000 n
+0001306582 00000 n
+0001306649 00000 n
+0001306716 00000 n
+0001306783 00000 n
+0001306850 00000 n
+0001306917 00000 n
+0001306984 00000 n
+0001307051 00000 n
+0001307116 00000 n
+0001307183 00000 n
+0001307250 00000 n
+0001307317 00000 n
+0001307384 00000 n
+0001307451 00000 n
+0001307518 00000 n
+0001307585 00000 n
+0001307652 00000 n
+0001307718 00000 n
+0001307785 00000 n
+0001307852 00000 n
+0001307919 00000 n
+0001307986 00000 n
+0001308053 00000 n
+0001308120 00000 n
+0001308187 00000 n
+0001308254 00000 n
+0001308321 00000 n
+0001308386 00000 n
+0001308453 00000 n
+0001308520 00000 n
+0001308587 00000 n
+0001308654 00000 n
+0001308721 00000 n
+0001308788 00000 n
0001308855 00000 n
-0001308883 00000 n
-0001309127 00000 n
-0001309551 00000 n
-0001309923 00000 n
-0001310243 00000 n
-0001310775 00000 n
-0001311165 00000 n
-0001311213 00000 n
-0001311319 00000 n
-0001311603 00000 n
-0001311757 00000 n
-0001311987 00000 n
-0001312219 00000 n
-0001312255 00000 n
-0001312361 00000 n
-0001344395 00000 n
-0001312497 00000 n
-0001374881 00000 n
-0001344899 00000 n
-0001398042 00000 n
-0001375364 00000 n
-0001419076 00000 n
-0001398296 00000 n
-0001422562 00000 n
-0001419337 00000 n
-0001428359 00000 n
-0001422918 00000 n
-0001431737 00000 n
-0001428648 00000 n
-0001468474 00000 n
-0001431982 00000 n
-0001491401 00000 n
-0001469158 00000 n
-0001514797 00000 n
-0001491708 00000 n
-0001537672 00000 n
-0001515069 00000 n
-0001560260 00000 n
-0001537967 00000 n
-0001590874 00000 n
-0001560555 00000 n
-0001617055 00000 n
-0001591349 00000 n
-0001635645 00000 n
-0001617412 00000 n
-0001643834 00000 n
-0001635993 00000 n
-0001672275 00000 n
-0001644079 00000 n
-0001691713 00000 n
-0001672609 00000 n
-0001706334 00000 n
-0001692056 00000 n
-0001720978 00000 n
-0001706596 00000 n
-0001734806 00000 n
-0001721299 00000 n
-0001738008 00000 n
-0001735067 00000 n
-0001740772 00000 n
-0001738271 00000 n
-0001743778 00000 n
-0001741026 00000 n
-0001776596 00000 n
-0001744026 00000 n
-0001796980 00000 n
-0001777263 00000 n
-0001822195 00000 n
-0001797262 00000 n
-0001854935 00000 n
-0001822628 00000 n
-0001879649 00000 n
-0001855683 00000 n
-0001890900 00000 n
-0001891064 00000 n
-0001891231 00000 n
-0001891336 00000 n
-0001891426 00000 n
-0001895247 00000 n
-0001895968 00000 n
-0001896704 00000 n
-0001897440 00000 n
-0001898172 00000 n
-0001898907 00000 n
-0001899645 00000 n
-0001900380 00000 n
-0001901112 00000 n
-0001901848 00000 n
-0001902584 00000 n
-0001903316 00000 n
-0001904052 00000 n
-0001904788 00000 n
-0001905463 00000 n
-0001906133 00000 n
-0001906800 00000 n
-0001907470 00000 n
-0001908139 00000 n
-0001908808 00000 n
-0001909478 00000 n
-0001910148 00000 n
-0001910818 00000 n
-0001911485 00000 n
-0001912155 00000 n
-0001912825 00000 n
-0001913491 00000 n
-0001914163 00000 n
-0001914832 00000 n
-0001915502 00000 n
-0001916169 00000 n
-0001916839 00000 n
-0001917509 00000 n
-0001918176 00000 n
-0001918846 00000 n
-0001919515 00000 n
-0001920187 00000 n
-0001920852 00000 n
-0001921522 00000 n
-0001922192 00000 n
-0001922859 00000 n
-0001923529 00000 n
-0001924199 00000 n
-0001924865 00000 n
-0001925537 00000 n
-0001926206 00000 n
-0001926876 00000 n
-0001927539 00000 n
-0001928209 00000 n
-0001928879 00000 n
-0001929546 00000 n
-0001930215 00000 n
-0001930887 00000 n
-0001931556 00000 n
-0001932223 00000 n
-0001932893 00000 n
-0001933563 00000 n
-0001934230 00000 n
-0001934900 00000 n
-0001935570 00000 n
-0001936239 00000 n
-0001936908 00000 n
-0001937578 00000 n
-0001938248 00000 n
-0001938915 00000 n
-0001939585 00000 n
-0001940255 00000 n
-0001940925 00000 n
-0001941591 00000 n
-0001942263 00000 n
-0001942932 00000 n
-0001943599 00000 n
-0001944269 00000 n
-0001944939 00000 n
-0001945609 00000 n
-0001946276 00000 n
-0001946946 00000 n
-0001947615 00000 n
-0001948284 00000 n
-0001948954 00000 n
-0001949624 00000 n
-0001950294 00000 n
-0001950957 00000 n
-0001951627 00000 n
-0001952297 00000 n
-0001952966 00000 n
-0001953635 00000 n
-0001954305 00000 n
-0001954975 00000 n
-0001955642 00000 n
-0001956312 00000 n
-0001956982 00000 n
-0001957649 00000 n
-0001958318 00000 n
-0001958990 00000 n
-0001959659 00000 n
-0001960326 00000 n
-0001960996 00000 n
-0001961666 00000 n
-0001962333 00000 n
-0001963003 00000 n
-0001963673 00000 n
-0001964340 00000 n
-0001965009 00000 n
-0001965679 00000 n
-0001966349 00000 n
-0001967016 00000 n
-0001967686 00000 n
-0001968356 00000 n
-0001969023 00000 n
-0001969692 00000 n
-0001970364 00000 n
-0001971033 00000 n
-0001971700 00000 n
-0001972370 00000 n
-0001973040 00000 n
-0001973703 00000 n
-0001974373 00000 n
-0001975042 00000 n
-0001975714 00000 n
-0001976380 00000 n
-0001977050 00000 n
-0001977720 00000 n
-0001978387 00000 n
-0001979057 00000 n
-0001979727 00000 n
-0001980397 00000 n
-0001981066 00000 n
-0001981735 00000 n
-0001982405 00000 n
-0001983072 00000 n
-0001983742 00000 n
-0001984412 00000 n
-0001985082 00000 n
-0001985749 00000 n
-0001986418 00000 n
-0001987090 00000 n
-0001987756 00000 n
-0001988426 00000 n
-0001989096 00000 n
-0001989766 00000 n
-0001990433 00000 n
-0001991103 00000 n
-0001991773 00000 n
-0001992442 00000 n
-0001993111 00000 n
-0001993781 00000 n
-0001994451 00000 n
-0001995118 00000 n
-0001995788 00000 n
-0001996458 00000 n
-0001997120 00000 n
-0001997792 00000 n
-0001998461 00000 n
-0001999131 00000 n
-0001999798 00000 n
-0002000468 00000 n
-0002001138 00000 n
-0002001805 00000 n
-0002002475 00000 n
-0002003144 00000 n
-0002003816 00000 n
-0002004481 00000 n
-0002005151 00000 n
-0002005821 00000 n
-0002006488 00000 n
-0002007158 00000 n
-0002007828 00000 n
-0002008494 00000 n
-0002009166 00000 n
-0002009835 00000 n
-0002010505 00000 n
-0002011172 00000 n
-0002011842 00000 n
-0002012512 00000 n
-0002013179 00000 n
-0002013849 00000 n
-0002014518 00000 n
-0002015190 00000 n
-0002015856 00000 n
-0002016526 00000 n
-0002017196 00000 n
-0002017863 00000 n
-0002018533 00000 n
-0002019203 00000 n
-0002019873 00000 n
-0002020538 00000 n
-0002021208 00000 n
-0002021878 00000 n
-0002022545 00000 n
-0002023215 00000 n
-0002023885 00000 n
-0002024555 00000 n
-0002025221 00000 n
-0002025893 00000 n
-0002026562 00000 n
-0002027229 00000 n
-0002027899 00000 n
-0002028569 00000 n
-0002029239 00000 n
-0002029906 00000 n
-0002030576 00000 n
-0002031245 00000 n
-0002031914 00000 n
-0002032584 00000 n
-0002033254 00000 n
-0002033924 00000 n
-0002034591 00000 n
-0002035261 00000 n
-0002035931 00000 n
-0002036597 00000 n
-0002037269 00000 n
-0002037938 00000 n
-0002038608 00000 n
-0002039275 00000 n
-0002039945 00000 n
-0002040615 00000 n
-0002041282 00000 n
-0002041955 00000 n
-0002042627 00000 n
-0002043301 00000 n
-0002043964 00000 n
-0002044637 00000 n
-0002045310 00000 n
-0002045980 00000 n
-0002046653 00000 n
-0002047326 00000 n
-0002047995 00000 n
-0002048667 00000 n
-0002049340 00000 n
-0002050013 00000 n
-0002050683 00000 n
-0002051356 00000 n
-0002052029 00000 n
-0002052699 00000 n
-0002053371 00000 n
-0002054045 00000 n
-0002054717 00000 n
-0002055387 00000 n
-0002056060 00000 n
-0002056733 00000 n
-0002057403 00000 n
-0002058076 00000 n
-0002058749 00000 n
-0002059421 00000 n
-0002060092 00000 n
-0002060765 00000 n
-0002061438 00000 n
-0002062108 00000 n
-0002062781 00000 n
-0002063454 00000 n
-0002064127 00000 n
-0002064796 00000 n
-0002065470 00000 n
-0002066142 00000 n
-0002066808 00000 n
-0002067481 00000 n
-0002068154 00000 n
-0002068827 00000 n
-0002069497 00000 n
-0002070169 00000 n
-0002070843 00000 n
-0002071512 00000 n
-0002072185 00000 n
-0002072858 00000 n
-0002073531 00000 n
-0002074201 00000 n
-0002074874 00000 n
-0002075547 00000 n
-0002076218 00000 n
-0002076890 00000 n
-0002077563 00000 n
-0002078236 00000 n
-0002078906 00000 n
-0002079579 00000 n
-0002080252 00000 n
-0002080922 00000 n
-0002081594 00000 n
-0002082268 00000 n
-0002082940 00000 n
-0002083610 00000 n
-0002084283 00000 n
-0002084956 00000 n
-0002085626 00000 n
-0002086299 00000 n
-0002086972 00000 n
-0002087641 00000 n
-0002088319 00000 n
-0002089021 00000 n
-0002089723 00000 n
-0002090416 00000 n
-0002091118 00000 n
-0002091820 00000 n
-0002092517 00000 n
-0002093221 00000 n
-0002093922 00000 n
-0002094624 00000 n
-0002095322 00000 n
-0002096024 00000 n
-0002096726 00000 n
-0002097424 00000 n
-0002098126 00000 n
-0002098827 00000 n
-0002099531 00000 n
-0002100228 00000 n
-0002100930 00000 n
-0002101632 00000 n
-0002102330 00000 n
-0002103032 00000 n
-0002103734 00000 n
-0002104436 00000 n
-0002105136 00000 n
-0002105837 00000 n
-0002106539 00000 n
-0002107237 00000 n
-0002107939 00000 n
-0002108641 00000 n
-0002109343 00000 n
-0002110041 00000 n
-0002110742 00000 n
-0002111446 00000 n
-0002112143 00000 n
-0002112845 00000 n
-0002113547 00000 n
-0002114249 00000 n
-0002114994 00000 n
-0002115700 00000 n
-0002116403 00000 n
-0002117107 00000 n
-0002117831 00000 n
-0002118510 00000 n
-0002119180 00000 n
-0002119879 00000 n
-0002120667 00000 n
-0002120750 00000 n
-0002121139 00000 n
-0002121526 00000 n
-0002121913 00000 n
-0002122300 00000 n
-0002122686 00000 n
-0002123073 00000 n
-0002123460 00000 n
-0002123847 00000 n
-0002124234 00000 n
-0002124621 00000 n
-0002124826 00000 n
-0002125004 00000 n
-0002125046 00000 n
-0002125182 00000 n
+0001308922 00000 n
+0001308989 00000 n
+0001309056 00000 n
+0001309122 00000 n
+0001309189 00000 n
+0001309256 00000 n
+0001309323 00000 n
+0001309390 00000 n
+0001309457 00000 n
+0001309524 00000 n
+0001309591 00000 n
+0001309658 00000 n
+0001309724 00000 n
+0001309791 00000 n
+0001309858 00000 n
+0001309925 00000 n
+0001309992 00000 n
+0001310059 00000 n
+0001310126 00000 n
+0001310193 00000 n
+0001310260 00000 n
+0001310327 00000 n
+0001310392 00000 n
+0001537845 00000 n
+0001316778 00000 n
+0001312370 00000 n
+0001310610 00000 n
+0001312499 00000 n
+0001312565 00000 n
+0001312632 00000 n
+0001312698 00000 n
+0001312765 00000 n
+0001312832 00000 n
+0001312899 00000 n
+0001312966 00000 n
+0001313033 00000 n
+0001313100 00000 n
+0001313167 00000 n
+0001313234 00000 n
+0001313300 00000 n
+0001313367 00000 n
+0001313434 00000 n
+0001313501 00000 n
+0001313568 00000 n
+0001313635 00000 n
+0001313702 00000 n
+0001313769 00000 n
+0001313836 00000 n
+0001313903 00000 n
+0001313969 00000 n
+0001314036 00000 n
+0001314103 00000 n
+0001314170 00000 n
+0001314237 00000 n
+0001314304 00000 n
+0001314371 00000 n
+0001314438 00000 n
+0001314505 00000 n
+0001314571 00000 n
+0001314638 00000 n
+0001314705 00000 n
+0001314772 00000 n
+0001314839 00000 n
+0001314906 00000 n
+0001314973 00000 n
+0001315040 00000 n
+0001315107 00000 n
+0001315174 00000 n
+0001315241 00000 n
+0001315308 00000 n
+0001315375 00000 n
+0001315442 00000 n
+0001315509 00000 n
+0001315576 00000 n
+0001315643 00000 n
+0001315710 00000 n
+0001315777 00000 n
+0001315844 00000 n
+0001315910 00000 n
+0001315977 00000 n
+0001316044 00000 n
+0001316111 00000 n
+0001316178 00000 n
+0001316245 00000 n
+0001316312 00000 n
+0001316379 00000 n
+0001316446 00000 n
+0001316512 00000 n
+0001316579 00000 n
+0001316646 00000 n
+0001316712 00000 n
+0001323178 00000 n
+0001318904 00000 n
+0001316930 00000 n
+0001319033 00000 n
+0001319099 00000 n
+0001319166 00000 n
+0001319232 00000 n
+0001319299 00000 n
+0001319366 00000 n
+0001319433 00000 n
+0001319500 00000 n
+0001319567 00000 n
+0001319634 00000 n
+0001319701 00000 n
+0001319768 00000 n
+0001319834 00000 n
+0001319901 00000 n
+0001319968 00000 n
+0001320035 00000 n
+0001320102 00000 n
+0001320169 00000 n
+0001320236 00000 n
+0001320303 00000 n
+0001320370 00000 n
+0001320436 00000 n
+0001320503 00000 n
+0001320570 00000 n
+0001320637 00000 n
+0001320704 00000 n
+0001320771 00000 n
+0001320838 00000 n
+0001320905 00000 n
+0001320972 00000 n
+0001321039 00000 n
+0001321106 00000 n
+0001321173 00000 n
+0001321240 00000 n
+0001321307 00000 n
+0001321374 00000 n
+0001321441 00000 n
+0001321508 00000 n
+0001321575 00000 n
+0001321642 00000 n
+0001321709 00000 n
+0001321775 00000 n
+0001321842 00000 n
+0001321909 00000 n
+0001321976 00000 n
+0001322043 00000 n
+0001322110 00000 n
+0001322177 00000 n
+0001322244 00000 n
+0001322311 00000 n
+0001322377 00000 n
+0001322444 00000 n
+0001322511 00000 n
+0001322578 00000 n
+0001322645 00000 n
+0001322712 00000 n
+0001322779 00000 n
+0001322846 00000 n
+0001322913 00000 n
+0001322979 00000 n
+0001323046 00000 n
+0001323112 00000 n
+0001329641 00000 n
+0001325369 00000 n
+0001323343 00000 n
+0001325498 00000 n
+0001325564 00000 n
+0001325631 00000 n
+0001325697 00000 n
+0001325764 00000 n
+0001325831 00000 n
+0001325898 00000 n
+0001325965 00000 n
+0001326032 00000 n
+0001326099 00000 n
+0001326166 00000 n
+0001326233 00000 n
+0001326299 00000 n
+0001326366 00000 n
+0001326433 00000 n
+0001326500 00000 n
+0001326567 00000 n
+0001326634 00000 n
+0001326701 00000 n
+0001326768 00000 n
+0001326835 00000 n
+0001326901 00000 n
+0001326968 00000 n
+0001327035 00000 n
+0001327102 00000 n
+0001327169 00000 n
+0001327236 00000 n
+0001327303 00000 n
+0001327370 00000 n
+0001327437 00000 n
+0001327503 00000 n
+0001327570 00000 n
+0001327637 00000 n
+0001327704 00000 n
+0001327771 00000 n
+0001327838 00000 n
+0001327905 00000 n
+0001327972 00000 n
+0001328039 00000 n
+0001328106 00000 n
+0001328172 00000 n
+0001328239 00000 n
+0001328306 00000 n
+0001328373 00000 n
+0001328440 00000 n
+0001328507 00000 n
+0001328574 00000 n
+0001328641 00000 n
+0001328708 00000 n
+0001328773 00000 n
+0001328840 00000 n
+0001328907 00000 n
+0001328974 00000 n
+0001329041 00000 n
+0001329108 00000 n
+0001329175 00000 n
+0001329242 00000 n
+0001329309 00000 n
+0001329375 00000 n
+0001329442 00000 n
+0001329509 00000 n
+0001329575 00000 n
+0001336007 00000 n
+0001331600 00000 n
+0001329806 00000 n
+0001331729 00000 n
+0001331795 00000 n
+0001331862 00000 n
+0001331928 00000 n
+0001331995 00000 n
+0001332062 00000 n
+0001332129 00000 n
+0001332196 00000 n
+0001332263 00000 n
+0001332330 00000 n
+0001332397 00000 n
+0001332464 00000 n
+0001332530 00000 n
+0001332597 00000 n
+0001332664 00000 n
+0001332731 00000 n
+0001332798 00000 n
+0001332865 00000 n
+0001332932 00000 n
+0001332999 00000 n
+0001333066 00000 n
+0001333132 00000 n
+0001333199 00000 n
+0001333266 00000 n
+0001333333 00000 n
+0001333400 00000 n
+0001333467 00000 n
+0001333534 00000 n
+0001333601 00000 n
+0001333667 00000 n
+0001333734 00000 n
+0001333801 00000 n
+0001333868 00000 n
+0001333935 00000 n
+0001334002 00000 n
+0001334069 00000 n
+0001334136 00000 n
+0001334203 00000 n
+0001334269 00000 n
+0001334336 00000 n
+0001334403 00000 n
+0001334470 00000 n
+0001334537 00000 n
+0001334604 00000 n
+0001334671 00000 n
+0001334738 00000 n
+0001334805 00000 n
+0001334871 00000 n
+0001334938 00000 n
+0001335005 00000 n
+0001335072 00000 n
+0001335139 00000 n
+0001335206 00000 n
+0001335273 00000 n
+0001335340 00000 n
+0001335407 00000 n
+0001335473 00000 n
+0001335540 00000 n
+0001335607 00000 n
+0001335674 00000 n
+0001335741 00000 n
+0001335808 00000 n
+0001335875 00000 n
+0001335941 00000 n
+0001342717 00000 n
+0001338376 00000 n
+0001336159 00000 n
+0001338505 00000 n
+0001338571 00000 n
+0001338638 00000 n
+0001338704 00000 n
+0001338771 00000 n
+0001338838 00000 n
+0001338905 00000 n
+0001338972 00000 n
+0001339039 00000 n
+0001339106 00000 n
+0001339173 00000 n
+0001339240 00000 n
+0001339306 00000 n
+0001339373 00000 n
+0001339440 00000 n
+0001339507 00000 n
+0001339574 00000 n
+0001339641 00000 n
+0001339708 00000 n
+0001339775 00000 n
+0001339842 00000 n
+0001339908 00000 n
+0001339975 00000 n
+0001340042 00000 n
+0001340109 00000 n
+0001340176 00000 n
+0001340243 00000 n
+0001340310 00000 n
+0001340377 00000 n
+0001340444 00000 n
+0001340510 00000 n
+0001340577 00000 n
+0001340644 00000 n
+0001340711 00000 n
+0001340778 00000 n
+0001340845 00000 n
+0001340912 00000 n
+0001340979 00000 n
+0001341046 00000 n
+0001341112 00000 n
+0001341179 00000 n
+0001341246 00000 n
+0001341313 00000 n
+0001341380 00000 n
+0001341447 00000 n
+0001341514 00000 n
+0001341581 00000 n
+0001341648 00000 n
+0001341715 00000 n
+0001341781 00000 n
+0001341848 00000 n
+0001341915 00000 n
+0001341982 00000 n
+0001342049 00000 n
+0001342116 00000 n
+0001342183 00000 n
+0001342250 00000 n
+0001342317 00000 n
+0001342384 00000 n
+0001342451 00000 n
+0001342518 00000 n
+0001342585 00000 n
+0001342651 00000 n
+0001344811 00000 n
+0001344968 00000 n
+0001345125 00000 n
+0001345282 00000 n
+0001345439 00000 n
+0001345596 00000 n
+0001345753 00000 n
+0001345910 00000 n
+0001346067 00000 n
+0001346223 00000 n
+0001346381 00000 n
+0001346539 00000 n
+0001346697 00000 n
+0001346855 00000 n
+0001347013 00000 n
+0001347171 00000 n
+0001347329 00000 n
+0001347486 00000 n
+0001347644 00000 n
+0001347802 00000 n
+0001347960 00000 n
+0001348118 00000 n
+0001348276 00000 n
+0001348434 00000 n
+0001348592 00000 n
+0001348750 00000 n
+0001348908 00000 n
+0001349066 00000 n
+0001349224 00000 n
+0001349381 00000 n
+0001350731 00000 n
+0001349667 00000 n
+0001344341 00000 n
+0001342869 00000 n
+0001349537 00000 n
+0001344488 00000 n
+0001350889 00000 n
+0001351047 00000 n
+0001351205 00000 n
+0001351363 00000 n
+0001351520 00000 n
+0001351677 00000 n
+0001351835 00000 n
+0001351993 00000 n
+0001352216 00000 n
+0001350471 00000 n
+0001349819 00000 n
+0001352150 00000 n
+0001350618 00000 n
+0001352482 00000 n
+0001352516 00000 n
+0001352598 00000 n
+0001354762 00000 n
+0001352778 00000 n
+0001352885 00000 n
+0001355013 00000 n
+0001355696 00000 n
+0001355909 00000 n
+0001355943 00000 n
+0001355971 00000 n
+0001360258 00000 n
+0001356350 00000 n
+0001356459 00000 n
+0001360501 00000 n
+0001361291 00000 n
+0001361498 00000 n
+0001368883 00000 n
+0001361926 00000 n
+0001362038 00000 n
+0001369126 00000 n
+0001370000 00000 n
+0001370206 00000 n
+0001370396 00000 n
+0001370552 00000 n
+0001372220 00000 n
+0001370663 00000 n
+0001370766 00000 n
+0001372470 00000 n
+0001373124 00000 n
+0001373337 00000 n
+0001375360 00000 n
+0001373452 00000 n
+0001373557 00000 n
+0001375605 00000 n
+0001376253 00000 n
+0001376461 00000 n
+0001378474 00000 n
+0001376576 00000 n
+0001376681 00000 n
+0001378719 00000 n
+0001379368 00000 n
+0001379576 00000 n
+0001384016 00000 n
+0001379923 00000 n
+0001380031 00000 n
+0001384263 00000 n
+0001385016 00000 n
+0001385224 00000 n
+0001388484 00000 n
+0001385480 00000 n
+0001385587 00000 n
+0001388736 00000 n
+0001389460 00000 n
+0001389674 00000 n
+0001395717 00000 n
+0001390120 00000 n
+0001390236 00000 n
+0001395961 00000 n
+0001396789 00000 n
+0001396997 00000 n
+0001397025 00000 n
+0001399337 00000 n
+0001397219 00000 n
+0001397327 00000 n
+0001399580 00000 n
+0001400276 00000 n
+0001400483 00000 n
+0001407401 00000 n
+0001400890 00000 n
+0001400999 00000 n
+0001407644 00000 n
+0001408497 00000 n
+0001408703 00000 n
+0001416931 00000 n
+0001409139 00000 n
+0001409248 00000 n
+0001417175 00000 n
+0001418123 00000 n
+0001418331 00000 n
+0001421371 00000 n
+0001418664 00000 n
+0001418772 00000 n
+0001421615 00000 n
+0001422361 00000 n
+0001422569 00000 n
+0001431662 00000 n
+0001423060 00000 n
+0001423180 00000 n
+0001431907 00000 n
+0001432889 00000 n
+0001433098 00000 n
+0001441740 00000 n
+0001433521 00000 n
+0001433628 00000 n
+0001441983 00000 n
+0001442957 00000 n
+0001443164 00000 n
+0001444271 00000 n
+0001443221 00000 n
+0001443321 00000 n
+0001444517 00000 n
+0001445133 00000 n
+0001445340 00000 n
+0001446683 00000 n
+0001445464 00000 n
+0001445571 00000 n
+0001446926 00000 n
+0001447573 00000 n
+0001447780 00000 n
+0001451547 00000 n
+0001448063 00000 n
+0001448174 00000 n
+0001451791 00000 n
+0001452533 00000 n
+0001452741 00000 n
+0001454303 00000 n
+0001452835 00000 n
+0001452937 00000 n
+0001454545 00000 n
+0001455174 00000 n
+0001455379 00000 n
+0001457619 00000 n
+0001455559 00000 n
+0001455666 00000 n
+0001457863 00000 n
+0001458535 00000 n
+0001458743 00000 n
+0001461748 00000 n
+0001458976 00000 n
+0001459084 00000 n
+0001461993 00000 n
+0001462697 00000 n
+0001462906 00000 n
+0001462942 00000 n
+0001464305 00000 n
+0001463066 00000 n
+0001463173 00000 n
+0001464549 00000 n
+0001465197 00000 n
+0001465405 00000 n
+0001467624 00000 n
+0001465554 00000 n
+0001465660 00000 n
+0001467869 00000 n
+0001468533 00000 n
+0001476478 00000 n
+0001468742 00000 n
+0001486176 00000 n
+0001476815 00000 n
+0001493831 00000 n
+0001486449 00000 n
+0001503309 00000 n
+0001494060 00000 n
+0001510770 00000 n
+0001503591 00000 n
+0001518199 00000 n
+0001511002 00000 n
+0001525615 00000 n
+0001518445 00000 n
+0001532826 00000 n
+0001525852 00000 n
+0001538000 00000 n
+0001538164 00000 n
+0001538331 00000 n
+0001538436 00000 n
+0001538526 00000 n
+0001542252 00000 n
+0001542973 00000 n
+0001543709 00000 n
+0001544445 00000 n
+0001545177 00000 n
+0001545912 00000 n
+0001546650 00000 n
+0001547385 00000 n
+0001548114 00000 n
+0001548784 00000 n
+0001549454 00000 n
+0001550120 00000 n
+0001550792 00000 n
+0001551461 00000 n
+0001552131 00000 n
+0001552798 00000 n
+0001553468 00000 n
+0001554138 00000 n
+0001554805 00000 n
+0001555475 00000 n
+0001556144 00000 n
+0001556816 00000 n
+0001557481 00000 n
+0001558151 00000 n
+0001558821 00000 n
+0001559488 00000 n
+0001560158 00000 n
+0001560828 00000 n
+0001561494 00000 n
+0001562166 00000 n
+0001562835 00000 n
+0001563505 00000 n
+0001564172 00000 n
+0001564842 00000 n
+0001565512 00000 n
+0001566179 00000 n
+0001566849 00000 n
+0001567518 00000 n
+0001568190 00000 n
+0001568856 00000 n
+0001569526 00000 n
+0001570196 00000 n
+0001570859 00000 n
+0001571529 00000 n
+0001572199 00000 n
+0001572868 00000 n
+0001573537 00000 n
+0001574207 00000 n
+0001574877 00000 n
+0001575544 00000 n
+0001576214 00000 n
+0001576884 00000 n
+0001577554 00000 n
+0001578220 00000 n
+0001578892 00000 n
+0001579561 00000 n
+0001580228 00000 n
+0001580898 00000 n
+0001581568 00000 n
+0001582238 00000 n
+0001582905 00000 n
+0001583575 00000 n
+0001584244 00000 n
+0001584913 00000 n
+0001585583 00000 n
+0001586253 00000 n
+0001586923 00000 n
+0001587590 00000 n
+0001588260 00000 n
+0001588930 00000 n
+0001589596 00000 n
+0001590268 00000 n
+0001590937 00000 n
+0001591607 00000 n
+0001592274 00000 n
+0001592944 00000 n
+0001593614 00000 n
+0001594277 00000 n
+0001594946 00000 n
+0001595618 00000 n
+0001596287 00000 n
+0001596954 00000 n
+0001597624 00000 n
+0001598294 00000 n
+0001598961 00000 n
+0001599631 00000 n
+0001600301 00000 n
+0001600968 00000 n
+0001601637 00000 n
+0001602307 00000 n
+0001602977 00000 n
+0001603644 00000 n
+0001604314 00000 n
+0001604984 00000 n
+0001605651 00000 n
+0001606320 00000 n
+0001606992 00000 n
+0001607661 00000 n
+0001608328 00000 n
+0001608998 00000 n
+0001609668 00000 n
+0001610335 00000 n
+0001611005 00000 n
+0001611675 00000 n
+0001612344 00000 n
+0001613013 00000 n
+0001613683 00000 n
+0001614353 00000 n
+0001615020 00000 n
+0001615690 00000 n
+0001616360 00000 n
+0001617030 00000 n
+0001617695 00000 n
+0001618364 00000 n
+0001619034 00000 n
+0001619701 00000 n
+0001620371 00000 n
+0001621041 00000 n
+0001621711 00000 n
+0001622378 00000 n
+0001623047 00000 n
+0001623719 00000 n
+0001624385 00000 n
+0001625055 00000 n
+0001625725 00000 n
+0001626395 00000 n
+0001627062 00000 n
+0001627732 00000 n
+0001628402 00000 n
+0001629071 00000 n
+0001629740 00000 n
+0001630410 00000 n
+0001631080 00000 n
+0001631747 00000 n
+0001632417 00000 n
+0001633087 00000 n
+0001633754 00000 n
+0001634423 00000 n
+0001635095 00000 n
+0001635764 00000 n
+0001636431 00000 n
+0001637101 00000 n
+0001637771 00000 n
+0001638438 00000 n
+0001639108 00000 n
+0001639778 00000 n
+0001640443 00000 n
+0001641108 00000 n
+0001641778 00000 n
+0001642448 00000 n
+0001643115 00000 n
+0001643785 00000 n
+0001644455 00000 n
+0001645121 00000 n
+0001645793 00000 n
+0001646462 00000 n
+0001647132 00000 n
+0001647799 00000 n
+0001648469 00000 n
+0001649139 00000 n
+0001649806 00000 n
+0001650476 00000 n
+0001651145 00000 n
+0001651817 00000 n
+0001652483 00000 n
+0001653153 00000 n
+0001653823 00000 n
+0001654490 00000 n
+0001655160 00000 n
+0001655830 00000 n
+0001656500 00000 n
+0001657169 00000 n
+0001657838 00000 n
+0001658508 00000 n
+0001659175 00000 n
+0001659845 00000 n
+0001660515 00000 n
+0001661185 00000 n
+0001661852 00000 n
+0001662521 00000 n
+0001663193 00000 n
+0001663855 00000 n
+0001664525 00000 n
+0001665195 00000 n
+0001665865 00000 n
+0001666532 00000 n
+0001667202 00000 n
+0001667871 00000 n
+0001668540 00000 n
+0001669210 00000 n
+0001669880 00000 n
+0001670550 00000 n
+0001671217 00000 n
+0001671887 00000 n
+0001672557 00000 n
+0001673223 00000 n
+0001673895 00000 n
+0001674564 00000 n
+0001675234 00000 n
+0001675901 00000 n
+0001676571 00000 n
+0001677241 00000 n
+0001677908 00000 n
+0001678578 00000 n
+0001679247 00000 n
+0001679919 00000 n
+0001680584 00000 n
+0001681254 00000 n
+0001681924 00000 n
+0001682591 00000 n
+0001683261 00000 n
+0001683931 00000 n
+0001684597 00000 n
+0001685269 00000 n
+0001685938 00000 n
+0001686609 00000 n
+0001687275 00000 n
+0001687948 00000 n
+0001688621 00000 n
+0001689291 00000 n
+0001689963 00000 n
+0001690637 00000 n
+0001691309 00000 n
+0001691979 00000 n
+0001692652 00000 n
+0001693325 00000 n
+0001693995 00000 n
+0001694668 00000 n
+0001695341 00000 n
+0001696013 00000 n
+0001696684 00000 n
+0001697357 00000 n
+0001698030 00000 n
+0001698700 00000 n
+0001699373 00000 n
+0001700046 00000 n
+0001700719 00000 n
+0001701388 00000 n
+0001702062 00000 n
+0001702734 00000 n
+0001703404 00000 n
+0001704077 00000 n
+0001704750 00000 n
+0001705423 00000 n
+0001706093 00000 n
+0001706766 00000 n
+0001707438 00000 n
+0001708109 00000 n
+0001708782 00000 n
+0001709455 00000 n
+0001710128 00000 n
+0001710794 00000 n
+0001711467 00000 n
+0001712140 00000 n
+0001712811 00000 n
+0001713483 00000 n
+0001714156 00000 n
+0001714829 00000 n
+0001715499 00000 n
+0001716172 00000 n
+0001716845 00000 n
+0001717515 00000 n
+0001718187 00000 n
+0001718861 00000 n
+0001719533 00000 n
+0001720203 00000 n
+0001720876 00000 n
+0001721549 00000 n
+0001722219 00000 n
+0001722892 00000 n
+0001723565 00000 n
+0001724234 00000 n
+0001724906 00000 n
+0001725579 00000 n
+0001726252 00000 n
+0001726922 00000 n
+0001727595 00000 n
+0001728268 00000 n
+0001728938 00000 n
+0001729610 00000 n
+0001730284 00000 n
+0001730956 00000 n
+0001731626 00000 n
+0001732323 00000 n
+0001733025 00000 n
+0001733718 00000 n
+0001734420 00000 n
+0001735121 00000 n
+0001735825 00000 n
+0001736522 00000 n
+0001737224 00000 n
+0001737926 00000 n
+0001738624 00000 n
+0001739326 00000 n
+0001740028 00000 n
+0001740730 00000 n
+0001741430 00000 n
+0001742131 00000 n
+0001742833 00000 n
+0001743531 00000 n
+0001744233 00000 n
+0001744935 00000 n
+0001745637 00000 n
+0001746335 00000 n
+0001747036 00000 n
+0001747740 00000 n
+0001748437 00000 n
+0001749139 00000 n
+0001749841 00000 n
+0001750543 00000 n
+0001751241 00000 n
+0001751943 00000 n
+0001752645 00000 n
+0001753345 00000 n
+0001754046 00000 n
+0001754748 00000 n
+0001755450 00000 n
+0001756148 00000 n
+0001756850 00000 n
+0001757552 00000 n
+0001758306 00000 n
+0001759005 00000 n
+0001759709 00000 n
+0001760413 00000 n
+0001761123 00000 n
+0001761825 00000 n
+0001762495 00000 n
+0001763165 00000 n
+0001763935 00000 n
+0001764265 00000 n
+0001764654 00000 n
+0001765041 00000 n
+0001765428 00000 n
+0001765814 00000 n
+0001766201 00000 n
+0001766588 00000 n
+0001766975 00000 n
+0001767362 00000 n
+0001767749 00000 n
+0001768139 00000 n
+0001768294 00000 n
+0001768472 00000 n
+0001768514 00000 n
+0001768650 00000 n
trailer
-<< /Size 12053 /Root 12051 0 R /Info 12052 0 R /ID [ <CA251DB2BC22EE21E6499B02093467F6> <CA251DB2BC22EE21E6499B02093467F6> ] >>
+<< /Size 11954 /Root 11952 0 R /Info 11953 0 R /ID [ <3DFC83A0C0CFBF3D722388D45A2EFE43> <3DFC83A0C0CFBF3D722388D45A2EFE43> ] >>
startxref
-2125816
+1769284
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 1365e805e3..034669362c 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
@@ -627,56 +627,42 @@ endobj
<< /S /GoTo /D [ 361 0 R /Fit ] >>
endobj
364 0 obj
-<< /Filter /FlateDecode /Length 10172 >>
-stream
-x}I%9=;VZ2^@c.9]Fѝ5.Dg#2+tgI-&3O?ywfl _~s7ger_oɘ}OxgLƤo3 E?+~'pC,kt5-!ڃv1ڬDeЖ]B$5cR|7y˃X>
-$ o)ggPH*
-}ksfs&XBZ?ĸU iawV@h Xq<ZMJ ]lץ2:}bh]<egE#-߷K頋⮍~-_Me$?E]8,(Q״6IAO)ڢS_utF
-&1Ќi} A4!Zc(Tjf!^9n{A8rcb?#u jUFuחS7x/~:~8s ȺOD#; <8 V<SG2BHc,6H(ZC{t0ﮢ eR|nL\;l=N]a]>P'sa`SQkР O5< h1l1ˠ g@u+hEuО 8fp3b3gP_p|!b) "~8r0q?@*eQ+vZF\#=ǠE38A{0#'0qX#v)&1ƿZq3&\e3.]~}ew*D& 'v6pڏ>09uvVxvgm~9{qnYv QjJ~ 3+o0B,0\VTnr7I.G'37` yô -}x N7MA~:/l9((c3
- 
-ǡ/m>MSa]1ALʢAQHRP> KRkJa/su(᧰:k%4XL"ip$zWS ,%<JwoK$ dn;xO+d \B!Ru!rHF WL:BǩJ;4PUI"ﰒ@@~IXtb 9z[')%W
- Wڬ7U'mDN6I6rfJ @e$<Y-W%b0y<E¿
-lb$0܊ġ*L*̩P_vSd+YԩOFidde*vS#IaWGdQKJtm=Wwc sg$BUe'-2IF\Iq *x+l)qu{o
-_] &oYՌ)Sd)YGS(.6٦G$jS2b*A]LK!3
-∕,hT֧"/%$mpsz&L1uZ("DuoAWRG8N2N&\]9@Isj:%;k)I3KS֩Widn;xP1X9dN3N*Op]$ Ê<UhX:Y$r5GBM+L Fc<RB.S|5+@L$|GQ81A)
-bsXͳFݰ6="Q!Pnq51Qpkh!f;>H̳IMa dso Q5h5͋!mՆF 0FOQGd0}2 ć5[&1*o)\hSмPO QD!!AO[' Q8&4k7&#8
-!!T
-H_B
-*(wJeoւ(# i9WJUU!Bf5ei3JZd/
-pFȀGx $BLEe Hb$TMY KE*RΨo,^Cyc:<xbD7H
-A%X*x(#q; !t
-ŕuz0.\p 6J`f,y)m6Jް2Uؐ}OFv8B& 'E\R15T('K󲱝 IyC1BaΤVy"`v8ˆBJGC"&pˢpb5
-Gv;Ev~A)
-
-x0:= k 0 ȏaH0gLPzJqLR*gV+a{6e-19QW
-) _MJEH$U(Fvk94'
-U _*4.TFS8&)huҦϬVMFېvh O g8\F*T8&Ip$3Sg'ٷ!mZhF?&N_fS)D0R"1IA#6=f
-o2NφյQp?/T7LPpz"1I#ݗ)e6n KQ<BP R@#CU`ZEcBFP7,mj4lddXZ(8۟P\(pQ|\ˆ"
-KbwF4m2
-kYLBP b@Bu`jEcFP;,mj8lddXZHD]z_T[_<W6fr "h-V]T8\j;i"DzBj's:"{uSVTzY/'B y(UB&($TrkʛO
-idސȽYϨ=kA?* 5ꕢX{USHIX)Ldv 0TNHw]g<ՆS*"`
-FQah,I&ϦȉԮNV !ߡFbШ+ըiŠԊ6R *adĝXZ( =2
-zQx !5M
-'R2NgoU9oy5
-FQFV,ԀV"DŽH@hP C'tD}{Fɳ^3ʐ5"HRRł$ bqX4mӗ)qu[VK嶿)ͻ>xU{whfkl|cx^'Ƣ*J-9ď֢"f)_'/&EU~[q_iZƫ|ٸ?'O[Ѧ~Pl̽=]4_Kj`WŏK%kVCůC&f.!FH@(^
-,}i 5[]1/,G!؞ݿ_߿d{~dk7gۿ𳸄2\~kMx]kN9l\E=<> ?= nb9
-[Wt|Nb|rI_7(ާ7byAm8zBNDs|ĿD |Itva1'z$h#-|a;XҳۇzIT|U\`S {70[z?pxVc@}^*;@`
-#NhL:K+\}'YU0w,HEp59RH:rbu
-0? ?#_Cf,w_fMr g
-sh)tŦ0_39?^Ma,ׇًxRiZ&.#>L]%Z<L\G~Ǽ-f0MW{kMCLKk%xcNC}0g=)) ~<zϠO%x^ nZCaR_&ڗȊ4" GdD6yIAݥk(S
- oM,29[{ZH.OJ
-UGy&,l<`YkB.
-;j m&ؔ!3ې
- $s7;oR6Ü&]{qŌ,v#~z|aLĔ69)N'h;|^x:ї;udl>s7!2ާS};OE[S>
-nٳ,%8pk[h@*>{o?u\uB(yFxFc1_9Fikh+ \[PhOb;u{ErGԤ%7cL6?ۜX6]H=qk[?Y4fzRpB Lt(cp8ҟd>QO_ByUCz󍙎e0ߐY/Ym-qմ- e!j&W:ijfvOkj!Ƌ]
-'0Ek~.v@kKŭm)i'27օ7{Now㕑Yu0;ϼdUx."48x"I,mĝY'vFg}f7jisk{}؂{*XypYh0) 40ITʌ1;Ix/fnYvw/
-VJNj[3~hR6rh2tu1_l |K$9K;*Yd7Ϯ
-B9ɯ-qܴ>i<Ml<B(9Lm"R.'w.ЇD, w;q-A΃†
-"gΘڅKK l]ݵ s丳jja NrU9-흢:[\SU!q_xx0`Г\6GRp
-f[.j`B-p? #hN;6g33YՎ9 U4reߙǢL?2߃zٰKhޥ$)gvj]njT_ ۜ] 䱺 sRdVnCK1׸}aKY3*#B0F6#*<!;>UF@ףŜm?n.bqltɷMmo/\:u_fR/@*y &VMqb|hM("aGR4Ճ*\Atַ JX@g)/h3px*h b!'ҚU]8Jct-)ho3־3Uٛh~ܶH?%p!kp\n O+N ѧ Ƒ'kM[Ϥ})c/KpqBlƫ$D D$8Y.MVu¨&|Á
-<%T-|
-adG.|thKjE>Z>ڵ7<P~c7~ J9bNruՊ:QѪz1;2QVGI~3"A>]oht%-2]KۣHxr^[G\=#$B,n^HpV Sԉ}|
-B~ Z+%Pn0X 2W7_cޜlHV+GbS|N.BZtШ9h8j$w3t#]~QT?l, ;Z&Ar^iH??~8YlFYC4FVh#`dd#l[(a1?\ė$S1EH)Q͙cLM̛ahu4%Wr^ZaҘcw o@7|\|Wk›T輋1wyȾԤ[gKyw2Gxtf|iЄ2 #cl'x'CV_;ʡ5:
+<< /Filter /FlateDecode /Length 10294 >>
+stream
+x}I%7]}$PdTИukݪ9LPu?f$m!=9Haas̸8r3?`n_~s7gerdLƾ'c3&cR?7?xo߉" /] hma n5FСEeЖ]B$5cR|7y˃X>
+奥2cP~b h]LNeoG$-!¿߷tyq'G`.௦2 4(% r؎''ԇmsFd(܁qV1np¢Ьd(9B|=)ic)a3vX (ì}~t[y?
+B퇿~V0\nb2twa~dluI?2$?0KF
+ڢ:hOF[~ 3g|?P/Q
+Uc!ƹ:)%aސ; I_.e'a'c 5'Fb$k'D[V搸| &=%<2mhwx`Oe<0
+]ubk&qL1O=
+{>H- ;E\$0XWďmhAna a-![ܛQlWVBGC"J
+Ei$nj7L#8Q|7[00[@gf߽2n&4S+"TqX \~&Mh(F1pzҦcf*̴+& ,- ֽQL!*@Ǡa Tj Z)fXQEv`
+,K`y,
+RK$Se'2IG\MQqUuU6jVqQ$n`Z-^
+AєĴ0r)Y-b< @Ӣ:4DL>MDALwyHѰ&lZ}(wOR;C 12{_`L٤NI&ް][d$JPP6ZO,mՆF 0FƋGD\C Hb:!ęh7\EJH.t
+4H)h^(yV(ѐ(L@S lZ}(wiԴ=dbp<fH&DL!ҩ
+5C{0/."L(]hHĒ"@*;lFI۹J(?_̩lT6Z^rIHLMϚؘ\8&VQ13rz4Q;7%xPئP"#Z
+@Y5E`6=6B6PԪ|jߙ1d$;25ƶf!
+N PFG SqXIO&=HፈcEG ԌI[GT({+3x0. n ό%1)iFQ'. Ok$m-d2 pR%A[cKaLrd</Iњ;#Lj.f`*%(t4$b2',
+'fAnbcHOYd
+
+^`M9yaH)+*={diB y(ubmL$*JQ-' )RX7$r\gy5jC\JX{US&&XM(,efHZ(=2y֫ 7!Ы+:gM䙈D*!}..k|:F]FMV|A=<R"]C VI9>KkDG&ZA2^ep8~4'J-)޳ 'R33"p{7
+|<FQFV,=<S"
+^_(;@`PV\H>=};[ׇzK.S!r=xkЫ]\?}-^j۹j;qg9\$}.ճǾJY:r_|Yw@Sr??YJ6~e\zUz?[/ Jr>ǵ7%7w?jrtŦ0?^
+
+ЕZ-qPվ0M L({Nb`V+}730qwg.A1]C`bMCwy50g9M#^;
+9);j5 MhOٱ)C
+>˒7(iH/#E^X :aֲWMkވoa4l^eCa$W:Stq'5
+vP7MvxD/`/{Gqy[
+~̍"u&MlAqxud.)s?~p^*2Jȏ,R,Nʃj;z.YEMyZ7ڪ^uߺ?@`eodz,2H:ҴOs AH܏IT0c7B
+?Ix0nqD,s+ $4gܯ}ʛ {j6~a?^|?[Aj,mNVjhiLIyDB
+mȳPoSٕzv9YsCiu},v<ĵ6ud6,m?1뙖d:6 RΑ>ΧM&t=68KQ=V,wʴZ%'KzIu.
+“3;퇞+g^7yikW07$Vk>BAh>$2*;m؜MtQ;C6DrU_IcMWI^l%f%UY%2;.]l5KrCI`/MrXV1נې
+@̥%?"zٚۗ٬xW (@_~$OQ[ɃCjy@O缫pNzokEã+,b@fZ~^e>O[΋T^/6;-)UoyiӆZZ%AOϺ`N'[6p-B?X⒄+a*V`~oM}[ebQV-
+BN5e](v1:_t%!=n[hv\\2;bɪؽ::&0hiKUq_X'26imp$x!?Q/ɭ(/Nb@˓ItLg*L3xb?c8C ydS;psw];uvQ/D1SLfoLCQ{l{z0ZRy
+4$eOGi{UPݝ}uv}pWձ^GuŀWwueKNXJvݼ2I(\k)7,\X~hV~X)iXV?j{
+ɭ\FK?xm#Vż<h\v,l2>F/[mXzoXFZ7F]ܝYG_ɹ 3vɮlrY=yq%i<Z:w qD c ?(u|Uy|7|C.2<!Vxw1E wG20rTB:Wm*n_K[_vlo%ޯPQP`/-zTIs8W2dva޿bP{ޜyW,Ņz:; ih(NSHGꝣl]a0
+
endstream
endobj
361 0 obj
@@ -686,8 +672,8 @@ endobj
[ 362 0 R ]
endobj
362 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.495 499.819 87.953 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty)>>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 85.96 306.319 97.417 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/fpantigny/nicematrix/releases)>>
>>
endobj
365 0 obj
@@ -697,43 +683,34 @@ endobj
<< /D [ 361 0 R /XYZ 79.37 771.024 null ] >>
endobj
363 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 367 0 R /F29 368 0 R /F38 369 0 R /F47 370 0 R /F52 371 0 R /F51 372 0 R /F53 373 0 R /F54 374 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F21 378 0 R /F19 379 0 R /F17 380 0 R /F15 381 0 R /F16 382 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F65 387 0 R /F66 388 0 R /F67 389 0 R /F49 390 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 367 0 R /F17 368 0 R /F30 369 0 R /F39 370 0 R /F48 371 0 R /F47 372 0 R /F49 373 0 R /F50 374 0 R /F29 375 0 R /F52 376 0 R /F41 377 0 R /F42 378 0 R /F23 379 0 R /F51 380 0 R /F15 381 0 R /F20 382 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F64 387 0 R /F65 388 0 R /F66 389 0 R /F45 390 0 R /F40 391 0 R /F46 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
400 0 obj
-<< /Filter /FlateDecode /Length 4030 >>
-stream
-x5hgR0u`h
-XG7a ( /PvJtBO|}$R? [#,FY" [~_~yT_\籌2bGKCj,zU0^R·by1vvx~o˯46qjd~W<w tcjqi\M ‰tm&8 _
-'O)e&X
-P+yiPL~̦D+F5l>`ъPj10A3v%Uow3̶^Ak<b[ֈiG= 'l~Bـ!ną iDn&"R~7;
-dp6ɞV p,~5sɡuPK
-o^CЊ,M$HSl  +ؙRGpS/Xx[i@qa8m
-`>{ 1ڶz9T/Qr,&`[y-bZżHVo9o]kYSa!&Ƹ~+ljS1}(فpG%
-Rn}!6jV0dCDo$Xڵ@$?M " T} uw] c\tM%,ʳZ.G|6pI`"!n۱A#p"ayGL%Ԁ>XzˆA/鍡DC*Яm#AEBh В(pr}öU@ح˶ٕk 끔#iyy3Y;2OJ[yp9p=[?Q&'Z[!,^((8⌰j c&[zE MŀЄ
-mC}
-?"aJ 'K ]*pFU۪qͥDŽD["^ϲqĬ96 &f5Ȫ
-emز˨qVTy]eNfkѾFR-z #zD4-!R+,q%&w T RU t)..*M.aHܤH49^P#R1*M0\Zc'>Ve(iYa Z!
-AXm&Cq6 "m:Dze7S9
-Dv. eSp">ձ]nxV<r
-eV6v[-ͱYoQEjh}-$^懞]'zjλ3;y#;gBt!*p'dKX|}e2a–Ziwg꛵[@#܁xzHLSCL􇚝;U2a܏9A: aJr~kR)}ECf\I4?@CW
-3sP*[Zp
-Ju01 ryL,
-)z:-̮kN/=9$&!-`"F5F<hcx.ʰG,ze~-AdEoeT5jZEX:VTMc(a͊>p7@M$v_=yQL}JyTC4h'"qqb³&ܫyiƪG<j"? W||@x,MKl:K?
-ms7"x
-6A^
+<< /Filter /FlateDecode /Length 3974 >>
+stream
+xd1xFAS`0{9Zx3Il9:xw!Xp0ŪbE] >_^j0I| taqD(Ka˗ˏo*<QFhi(RO¨M^%-|*ǟ0܎CW|KcFqոb+S#Ns-'hjMoDr6@D&1іe&X؋oϳ+@3v)!T|rtߩwn?6E)8al
+x;2i"ˆ3z2i;lp-qTMݒ-SĴ#Ҋ }B@!lafpڱ[ Vz? Q>N 6gA BLeiŪ6ė3Ef4
+yح̅_swtE!F@NmL:hS9VVGTArl~96J8ܑ mɱbnXa_uGʳ&!7b,ZA&(:]ByUWe$a5iRK
+C H2|Ϙ2י`,hYWn#ckC]<½]Ths׌8VG|c\ALķ|
+Rk*IJܼ= Q70WperFҳ.up֐F*۪q͹nj9ECȝ/g8b~WU01TV]4oQ<*0i%<HoMyB,<jE.#ϕab&*
+lחA> %DVy%aT=!Αkݞ+\`^A9MKc0Q-7^E d;^\4;Yڒ\!峳
+AP-6mٴg1!.(Oc4:?$?rK~׼<j+DaR暬Uo1vшWakӽ̚X%Rpfb7~3|Xn>QlN-_S+]|d7>o\Fl&x-:l̎4ʨ+'uq
+̢X'8O-oqPUc>d &/m20c[MeKa%kH7MY#l*_|:O9B1"Cƕ;+wa^(m?5:b] mM [aQSj9ik:^j+m9[XRBxүCP丷DeAWsi@&.*MQ{1Q<<qB|HԿQ
+peR^.S: 'J&>8'|&<.wocSᅆ]1ȁן(%Wfp/D1|eaʟ|cDkǟF~],kxsgq V׌/W HG)TRM%I>e3@G*GF0wD+]FUib!㞊_YJjӨAwwpU4Vl]tHpM8[]cU{b A $l00Cm{AWҁXo5$(!cb>S"#uO3N[(KdSTsy EF N6QB0ww=n)2<I]W>D?3|&@IgR9*.7YFnn\X4!kc|#$U&=BJBWub3[#8;I' uJ;Hea} W4gcZyUVn \4v%QД0=ncM8lv`ⴟ|FfsCG$5ksYw=K̟׾~ c"%C!|,y^4Up|KxDʈ8o"ZҞޥsPѺ
+`:߲OkbEt='j_~utSzuMQ-tmqZPJ7q/ Ob:
+wFÓnW[GO@8:);^- !ҲfPJԸ FFYiϤڟY<%jnY> kKT98hJcOpC#wD2
+W\.drXt],7`qgD5޹~Vwɻ\Ps7\)Y0x#.9@
+QR\*;V/vY"J(V^ۓ>l8_$c;<z]<E]F!RCUm*2FݱƤrj93e .:o>jh$cహ)ErN)VM 2CZ7V|ȏץḐMHF۠LS+EkSI?vS kٯٶ-ڶs$hLid۵K&++fZXZoev"1Ph{S/t@:]߈C3ڦ<_NmΗ^+ʓu nF6"L`]"! +
endstream
endobj
399 0 obj
<< /Type /Page /Contents 400 0 R /Resources 398 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 405 0 R >>
endobj
405 0 obj
-[ 397 0 R 396 0 R ]
-endobj
-397 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.926 133.102 201.881 145.058 ]/A << /S /GoTo /D (section.7) >> >>
+[ 396 0 R ]
endobj
396 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 317.374 85.96 327.831 97.417 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 317.374 94.659 327.831 106.116 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
401 0 obj
<< /D [ 399 0 R /XYZ 78.37 808.885 null ] >>
@@ -742,2890 +719,2978 @@ endobj
<< /D [ 399 0 R /XYZ 79.37 771.024 null ] >>
endobj
9 0 obj
-<< /D [ 399 0 R /XYZ 79.37 443.151 null ] >>
+<< /D [ 399 0 R /XYZ 79.37 430.712 null ] >>
endobj
398 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F67 389 0 R /F70 403 0 R /F65 387 0 R /F25 375 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F66 389 0 R /F69 403 0 R /F64 387 0 R /F29 375 0 R /F51 380 0 R /F26 404 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
408 0 obj
-<< /Filter /FlateDecode /Length 5117 >>
-stream
-x]K$ׯ ~
-r%i)tp\ ϣ ߣQ<W ±U}Qa9B.?h ߃daעӁFc`Q.
-~C <phxD.-FNnm`?]vV|K`8Ɖ)TaIԑk`~Gܚ_^|;sshN@za0v&|<9VX|l2Du]fV*h0_5^ b1OspD|8ZX_2Ff,dݹ:)}oћ5?S/goӡ4
-K8t^zdm: `/Jjg&%nvƚ5Z&hM*F$uE-&б儗VvFkeKvGkf$ M(9Ț9L9:KO!72Btsfc{9k٣^bo?CM<m7bQoފΟo| navq6+;<nB6l|Unv۹w.b,4 $R+d94v>>9A&^aSDCVp]x&"-1<T&*8M⌲ٱؤxJ5u JjxSK[Աmɛ lŎ$WV?.o\N%p۶E-Dqv%NKp HEoy;Vz>)u C40뒽47:$ē)&-XШpL`*I_=70y\vp;7TeɟKjNJRi:^:DnU/InNޕ%z)500{{wDnO\w\JͰ!R)m|D v3ɿA:cKӍrJDSj:p#U%1#[[VG0N~޽K(URR
-7%>0F)n%B*%xIJ җj&ym_O`&(55zTFRb%%ҌK!
-OI 4|S!%JY5& l6mT9]3iCk2SPPt#Pa
-R:{rst;E(H ǓVt `u5x0mL9ǨCZeG7+y_RHe#\;Qjuqy-:dŦRFkl]~}
-v'WlZ,80 NZV Qy3j'Sغ<W/]os,R;MRXBYBEY]D~5n
-ҦqBH+\TɇI%@+bK}%[@ ,_ >/:۽{oWY_f )W,WJˑh"rEP:EsGl4whL?o4!T ya!DS60<tz>!Y6. 7RM
-0rS+pɧ8Z
-/ .'Ԭxb*(enb:)O؝!ʈ\`ay ;L#U.Znr>9%p\ۘ+5&2ؖBqD3$bm
- ZqEv/a[NK@j?s&:c```B:뙀"0C}qkѢL<9]:~|2k ﰚ
-M`oA-3G5Ik}{j f`FfOz>4DZ.
-^hVeg"NafC
--pχaF$,
-,YY
-l\j5iz$2].& Ys3Xah;qK 0%&]!)OCzwS+ն^dn;=v8/RNEkK8
-(N5y?y
+<< /Filter /FlateDecode /Length 4393 >>
+stream
+xˎ>_G
+-BZ+̡x4LѣًްK0VXH)d ,%(
+7)=cQ2%v,A$OP~;|V:^ a5웢:G<ş{EEx%p{=e
+ƑCk#!Y,PI&ZxhdMjmd1bK-!jj#ъcX&)ralQd=d
+ǘc$Z2
+ WH+g_?O_Dlj(^)䂪0`U`
+JQ8`tZ)&b>%K_%徟 9U9K ^OgtNjzހ ߈9,]0 C,$
+.g9HKT-ʟ<
+dJY '( >N'0= ÇS{LOr5Wu BaY@`;\ Y~zD232S\G\=#)jG!6>CU>"%fbIY+uO`Z@_Ǔ@O'c'r8x&*SaFAIP A4:}EH⚈b
+0'A+ -5Ѓ57-5{K*!G\jzr_i=?. tM
+s; x䜿n*"N熈8LVGvΨ&G)Q'bnMJNn5 R֞ݚTH&ZpLa0;vZIQ 60D8YB.3O:b>fԎЄ¼)Ôkrii"Qr袄O-Ol)> 4_KF)K:Nzoj@;AP63ϋy|$٠m#j9H ˹؞Aa >Q:oe%X=Dxbs<IpoU4921yܠ<!ֆ#(R%FOG!9;ލ׊M|C YW 8)ERumJX?d̖H=E+놁TY<\'uԔ:&6?mv VpFN뱃`haX0uV0sUEflm̄3wJB{EK]>YOS T[\` ²
+]j_5@5 Se.jx󶼙p?j7c@Aҳ$^NwHƯܑy)=F81NMRa<hbu2mc1jvy3Wn5N7E&>oB]0ҴWljH]R[7bF|pqN̂Si%fgj.KXI-Dm,sw^ )NMyx w!jha츞#69U}]@m\<~OM4` ~h]~d1R7lwnoA' Di?/횬p3[fH. >WlLb ݉ȽAxIݭuҨǢ2ak_G [ +K%]NWeoKX_/ҋH5+}_(dh&Oе v]J-Ѱ>Bҋv|@z;<"T>BU[e
+|GZz*} |QE0$@ǨY _b+?}4@n6vjY%yрl;":c!y{s
+HqV
+WjRl#Y.,pI^~]/d(Z͆4I.(5Z"+V7S
+v~N Qn=O* 7
+-ߠO* 7
+حߠ/O* 7
+-W@yhCu;S~r?W9D})8d"!(o%픠n%{K |J=+S
+AVn%S9 _+`^?JXwVɟ@o4__$Xq
+^PJ@zVE'](6
endstream
endobj
407 0 obj
-<< /Type /Page /Contents 408 0 R /Resources 406 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
+<< /Type /Page /Contents 408 0 R /Resources 406 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 415 0 R >>
+endobj
+415 0 obj
+[ 397 0 R ]
+endobj
+397 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.926 745.619 201.881 757.574 ]/A << /S /GoTo /D (section.7) >> >>
endobj
409 0 obj
<< /D [ 407 0 R /XYZ 78.37 808.885 null ] >>
endobj
13 0 obj
-<< /D [ 407 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 407 0 R /XYZ 79.37 712.727 null ] >>
endobj
411 0 obj
-<< /D [ 407 0 R /XYZ 337.806 486.345 null ] >>
+<< /D [ 407 0 R /XYZ 337.806 421.364 null ] >>
endobj
412 0 obj
-<< /D [ 407 0 R /XYZ 337.806 474.894 null ] >>
+<< /D [ 407 0 R /XYZ 337.806 409.913 null ] >>
endobj
413 0 obj
-<< /D [ 407 0 R /XYZ 337.806 317.011 null ] >>
+<< /D [ 407 0 R /XYZ 337.806 249.539 null ] >>
endobj
414 0 obj
-<< /D [ 407 0 R /XYZ 337.806 305.56 null ] >>
+<< /D [ 407 0 R /XYZ 337.806 238.088 null ] >>
endobj
406 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F17 380 0 R /F26 410 0 R /F20 376 0 R /F18 377 0 R /F22 404 0 R /F65 387 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-421 0 obj
-<< /Filter /FlateDecode /Length 5798 >>
-stream
-x=ˎ$9n8*VPhkr}[k7)"2;3SAQ|$]ӓ>/_xuqfƩ/OE.>/ކx|u:~˗[
-+\}#PC ԇg-( A+Db%=H3ArJ?H58O6Ĩv( Uq>
-!?q4r??&$J5:̄&WLcZZ%ݤ!Ke^?(AT¨ܮ.% "&9^uŧJ;R nL-JIT3oWƮ Iךω$N(
-*BHQT!ᩁ Lq3u-T5܂q"0ҮakUDM&2B'+XP>/Ÿ{KtSHDlZ0Ms;IX*1*Ri)5Z5URTTV5k FuyB3Y#>*>Lua*V%^`Y҃3G#k!MizU1WZR&lK?n^=Qw+"%[d5ÈJ+C*4*7n)]o:Usq~5uCMRy6툍!S
-iGwwv>mg7۾]EMqOd}f`v~| ؏ }7gC Unl56QtaW۬>Z/uHTQ+[Խ_39ݿ3}Wq[Ҝt"iNeji<|]?Bƴ2@Jb"pR|g6hF!* =0jW(&w8H?ʠ]ip4E :2> .NSWϼVeiL`|ܿBt ROK)Wi3ecR+/Qs6'gj! Zq8}x?%f 326Jo~U}FoWDTFk.>pU_<᫐.=kZzO|kZ oMhn*
-}N [oVQ,0 ?~3
-
-}^{FC5a0係>mmG=z>է$DcW]E L|hwl>0pdR 3a-Tsx.7-jm*mX}xSPڝ/MjWH,. n2ύmGAN+t0:<5Q}Xtqal@Xhk$ IOԒG>S=n*^R50<FFpYI?6uAK]gӳDm#
-1EAx
-al6 4.@H~jȁbUast6[R\Թ<o|U0|Bm6|AXC Ŭ!;CWzp+cE^&fs\(о&fkQ/$&*Ս\&"9n:@/.J.RkEX8`aբj'Q;ϤvgRK:Xcb%2܉Pe.[MF)d2 :9X@)cr
-
-#L+x";5މ䠅8]YjiwăڄueҪAJPlP;0&%Vxbq.%" ¸ỈV)ߜzFc
-l$~oxi<Q(O`͎j2iI{XD7]ߖR1ݼϵbd 7$( f48!vڣ{rRvj6~l}{ADMNR6S1֎JFj ?(c pWqo1ۨh]K\(qjTfG+рD C,x!P[MUy=Ym?ԘW+ǜck޴M;>M9&O˸M2tټyD̙#IX9V$q{NGߝlat0臖]1Wֻg
-K|El.vq lw@xd@ٺٺᑭ}d>uٺlG#[}d>uٺlG#[nf*Hn @}HK)[[~NdBu|}~<Oc?֪/8R(w˚*]6_G|-)D|Aw
-zfzMOm*lܝqΨw]&\&t`jKnrnbMN2uvV#/Shm!Ye~S>B}::zY^'ufuR"^ľm#|>Pj2/),<};N?"f<6l)mD{29b팶=;cDyߜqOg9f}|Iؿd/>G2LLH}h
-ȳAK,AW0iYw[gOsX7xwz 5_%kz}kZ';,Xo<&>l FLn8! +9{֐;h0d4`M<;ϐ#=ix nOr#֩uYφp7-CvYARbj-\Y]RytCpiM<Deq wK&O|= qX:uGb:")`fëּ']CM$ykPfzu5t
-
-澐bh (#{Ȓi8s=(7Fa$=ã2ױv ew&mۜ=`Ǣ!Q38.mۄxZg/'J s;F^ȼZKU:ΑsSHvǜ#dʶs{
-m _ٌĥ<Ϻu҆S+DGA)FgV27n#g]`@\ V򥕺`9Nh{I+hV %6LSl%{RnHvBn=
-QMN7?QwLĠYSK 1):.=HqRBn@Vv+2]/S0tG_ѵhr×?68ܝǀؖ~T62NW:':[Oj$<2Q*@iUt§쐫ͅ[7 Q`.E8«C)&N~i Gӱo᧔\wzԮ1;&YPg)(j c<ƥɳ;EG޿oj
-cU+44䱮)6d} qS);Rэ[3Ne2,xslP{V׽hnb=Ӻ;=G<XQs^<{܎|+_ü'#oaԃӋ
-\T51T6to&dMQ 7
-endstream
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F68 402 0 R /F55 383 0 R /F23 379 0 R /F20 382 0 R /F29 375 0 R /F51 380 0 R /F54 410 0 R /F52 376 0 R /F41 377 0 R /F26 404 0 R /F64 387 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
420 0 obj
-<< /Type /Page /Contents 421 0 R /Resources 419 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 424 0 R >>
+<< /Filter /FlateDecode /Length 5878 >>
+stream
+x]I9rW}` I1MIorDL X|OꑧI$HRPb1;AVv7cOa VY8}D"q'NӗӟByAEXap2+C*SDC'7KD QZgPS_J+9|*EuX7d@X@mLrCU!5R.̿Gun[=Bfm߬ԋU߭v\GuO.!(&b]/].EpSz4؛ [GUĴ??}jD,2J˻_O(ϧ(79}<zRj T
+K҈y+ vt"lEKK᩵%PO.p z5ڼ~ Zv6/tHs);22j`Y?9%N)8,"
+M>l6?Ve˓v37 w_ ZFYdoad_'K*8anרC(Hn{e3Ø3bU?
+?aN|wxN67o ?[`$.w\'@/bUϭǞG+XUϭD\ņ8Rs07c? 㜫֚umݫ/p5Gw&8K^zNmeP$z{sh&aр{$vQ=]^aG'ZVIyJu鹟X"C/[$1M$vq=ȍ8 hw$hz\$Kz:woߧGg%6oТr)׽Tw
+4QԮn}}im|s\4S)^G1c#5]aek.R6|ܒuB!Ld<0_䇪%7pi—":[}6:Eja 8clP(R=c0C{$5re HϧS_H]K\ BEjfb +?^6vg!bNxqn1EbU(nBl"&)Bs.oBb/pMPv+6 NwqDԴ_bߡхB1)j|}(aXYn p}9߉-1%mO#[M?sG's\~>sesHAE.Ț6b*62!J;fkrUjSh _u:!>y*[6@1X86zqT<\l =uQArv) ÅyB=P((ƒXxy.Iۥ6jƃWgދx`tAn3^Iߢb!'"k?žpf>4qPƂ\< h<M<od2dryd&zuLhvի=@њ%fN*O㰵zh'LC~`6&[6GĒC=:Rv^%e&R4<Զ4fⵯ[a5E:3DA)Zr$6*Lqq8Xd@Q{]E5p78n ix$^{p34f 
+zB궪Żh%Twl4d܋
+AՕ]&& wg͂]@j-|7 '6vڙ%2ƝqJ)lȪRӠhNn(!bj-5rAg F4lZAj`0~b͕]8 vLh?v KX
+RT;fYS+lID[Է] qC+Z/G݀\R66uLA`gIfoᰚ@dۥ 1H(sbf[0CzF. f&&@*A js\1]~jG/GZ8f,{F;8N;G_AX՜ѼW`c~SjitIb)'EDӵ{ْI Ppf%C<RPsp}]S|J*G e6p6S0W4L@YMF\F;*DnTCO| V|69No
+<~Te䢻=@|K7 mGX4vf (< n>,b™cDZ巁iGsip'fHsܠp<jTX V[ <?DzઑxC
+lQeHt wb?S.<+`bs΀"s,Z#uıcouru [u{LB~L{ԿtcQ;7nl' o 0lH)zNZke`
+^y|\`a'TǛ [a]*^͓RcWP~jo[;]h]mΤwu)pkKqSƛGNG޾PKܴ]uAdzůKNS|捙 3. +[4eP$$5w򢷺%-юWtSIfpF 3LNt8r6z>,n(qkw$3ZC2r'Kw7%)R~ٸ/܁ (b<J/-3ͷ̬2Pz^ \~JRO-+ow1`y̤+`P01MfҍLͷ\E^gzuhvj-AL~Yݶ+ӊ^KKuzyeJXa-gn&Z
+endstream
endobj
-424 0 obj
-[ 415 0 R 416 0 R 417 0 R 418 0 R ]
+419 0 obj
+<< /Type /Page /Contents 420 0 R /Resources 418 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 423 0 R >>
endobj
-415 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.018 85.96 250.058 97.417 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+423 0 obj
+[ 416 0 R 417 0 R ]
endobj
416 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 263.113 85.96 273.57 97.417 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.018 67.03 250.058 78.488 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
417 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.999 67.03 417.223 78.488 ]/A << /S /GoTo /D (section.5) >> >>
-endobj
-418 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.927 67.03 438.384 78.488 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 263.113 67.03 273.57 78.488 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-422 0 obj
-<< /D [ 420 0 R /XYZ 78.37 808.885 null ] >>
+421 0 obj
+<< /D [ 419 0 R /XYZ 78.37 808.885 null ] >>
endobj
17 0 obj
-<< /D [ 420 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 419 0 R /XYZ 79.37 654.853 null ] >>
endobj
21 0 obj
-<< /D [ 420 0 R /XYZ 79.37 734.627 null ] >>
+<< /D [ 419 0 R /XYZ 79.37 617.46 null ] >>
endobj
-419 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F57 385 0 R /F32 423 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+418 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F23 379 0 R /F20 382 0 R /F29 375 0 R /F68 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F57 385 0 R /F21 422 0 R /F64 387 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-436 0 obj
-<< /Filter /FlateDecode /Length 4708 >>
-stream
-xڵ$-߯D
-_?ehnJΠMJJ).]J}]A*aY<Jf]ᬈ-]ӈ|+w jeCq
-H9V@7?@+$S: jbX)lU7%oWWoym`%Lp3ooF#yyCHLITݖt]ZE~.dc+:O++TP ˮNeWR޻MHR0Z 'ݴUqQh|!FL<P:W(:ڙ6/,#Zkhle<'QH9\oވOWY+ ~¨mpPigiLp'fzYfr懮$>7#"rջW
-Fv(lWWf@j}}66^On\
-D WC+ad1z$=Neќ</ QY#4|w$[anEx~^y]yh
-oV6g ?+,oݭ̢Dk+e-=2"<*LEnWRtg0eշFzrŦh9HPGV*ՙF*7x8@O-sx0Ruu:h e[EAIsI?( 1NЬ2Akw+*tlWJ KE4d< w $nǗWo_0ciBi$_ml,DmLĠ|[=ٽn#BFܖU UU<y{Ms!#} Q יA&^
-RG
- -}4i J[QV1I[u
-
-mvxg 20ԗzH;B{~cR{ -G<M9&6my"=3ۣ1yLćlVoێqYQ4gXHa%-^ָ.9,O0B?㝓VdRU(>f7O]Yd\M+>L.LTv ݶQx,j2- Q"ތOmg%5@/U5EY 8zL9h]`h6ux: zف]^_l"m)89I
-~`otܙL,zȚ}Nc֡()wrBN
-9q~X 2Y K49BYmqx q\UӹXU;X3f,do#WRDѡC[7$r{ʺmeiK]E'OuI..m/[Jף+C5]7Ԝma/3E ;zgS,3$ZYmrz5IrՕs|}p*+Z^+JJ^q&iw}-U?g~z2AӾbʈSrپJ v~2=zw
-C@O@+Fw[ٕ@]V<O/Nu^{1lae; o?ucX"Kߎ}?dm;Jk2 _ h)7@lޖAL@x4<yddut@YLI͟¨:k l`ݵ _۷|e7.d|=GΒtwH_{W*ab\*Y4 H+2ޅu$n $mh~n3W^mrni}-i}:COx_͙=R?O{W#E(#߅<GT򐂦C6NBFۧ~?.#ˇJO)y</G,Dc/*)pfģN<b 0x f$s7u,RlȃP83}pE;)6rm#03-aK_8sJo/9])Yǃq2Ċg[X?0< 3 DWhTF5_7OT 8xj&G%1xpN3WeuTFo6}5&չ[S4cpf?g494ĭ`J%34a:w-vu=|l/2ѽϜY&0=1, ۥJ9ne?^ 'Ӻ*9W
+437 0 obj
+<< /Filter /FlateDecode /Length 4969 >>
+stream
+x$1߯D>
+;gȝʾ;G#YE>I:::$twPE<~g?'G{̝-w? uWf<sX/RjGwS,ŽB@!0r$Nf1,dr<x<|u(K.ElIבuUfكEgL2Qyǐhm<:Iydmo15N
+m挗hbLᙒsz`2^cQ8IQ$jЈz>]R׫OtzMwLU_`E*sU. QU0Hw75 rv0ht
+iU$\ki0t;$Ky^otDnM5i0Xx)jSa{Wo.rQ~u=bԟ 8xf#鎵
+O2骪&QJTlRtA]ظ.m)ؽL&?8<QPO5R&h;^2`ދ]7Z10=]u'EOhZm̻qxn^ʨ!T4LMn4WS$ۓߞ|U$VOLڪ%(o kx+4\A;JZxLz.V xO=GG:$<!x8L'L)N!۴id8G)73 ,[i6BMOd̂|NȈJ7C8Abt@#ݧfARrEisJ''#%`˓YU$Y<_Uյ.jAv'Q䨴*`BAߏՌ ոz>L_U+ ɿҬݠj]!Ϡq8T#Fv5<ZcM6\y5XlF(D9M^ $L(C|^Ͱ ,
+ts(vPV&^Nj<FNY`O߰2 R?nFyFK$XNvzweގ]T_rx'Sea_;^<t H!}
+}|2S|"7F';Nc`~RCQ!y
+Z_Oٕgv XxK}x~&3# n wT$<w|gXJO.u&wmYV/ΖTTsBU үZ5ꘐS؟(فխ ɻdeԐE^`X茘|P4?NF=[+pM ~Y͑zj-\ @wY(S
+wߡ}
+~sRo{j"`&VKGs|{`x-pAK T^5gb.\>Kwh.\>{٥疘-{ɰxSiy֢qٟK+dz<~o82k.aR#!~:0у^#$g}'}x%ѓҟ|Qu]EjAn<{ 2Jsőe
+Myw=e): %ՒEuw*ybBLFǔF(O$IUŎf
+eJ3aWT9LƒS|l+VъX }NH;A}` 5 g \fiUMk7};.=&m{/>^?lSuhejjàUk|acZK}Ji~aCAsZkMzWyn2]lj=ߠ 6L-@Sª!.U+t$:fITabKx
+R! Yt܂fR1^QHWfm0Hp4{ N,uN&<9Ui=UZ*Zs@M9-4N竐4 JDZ*.vz9ͻo`aܜ.|9~R*ձ|/l؏SZBg?Σ-kC;34/m_UiPnRE[W@ Jx"kxJ(tZ RM
endstream
endobj
-435 0 obj
-<< /Type /Page /Contents 436 0 R /Resources 434 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 439 0 R >>
-endobj
-439 0 obj
-[ 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R ]
+436 0 obj
+<< /Type /Page /Contents 437 0 R /Resources 435 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 440 0 R >>
endobj
-425 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.934 600.532 340.889 612.487 ]/A << /S /GoTo /D (subsection.18.6) >> >>
+440 0 obj
+[ 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 424 0 R 425 0 R ]
endobj
426 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 214.424 550.783 226.379 561.662 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.934 495.25 340.889 507.205 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
427 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 302.553 443.49 314.508 455.446 ]/A << /S /GoTo /D (section.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 214.424 444.552 226.379 455.431 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
428 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 389.91 143.51 403.426 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 302.553 333.788 314.508 345.743 ]/A << /S /GoTo /D (section.12) >> >>
endobj
429 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.461 389.91 168.416 403.426 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 278.31 143.51 291.826 ]/A << /S /GoTo /D (section.5) >> >>
endobj
430 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.43 377.937 267.136 388.896 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.461 278.31 168.416 291.826 ]/A << /S /GoTo /D (section.5) >> >>
endobj
431 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 294.474 377.937 306.429 388.896 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.43 265.863 267.136 276.821 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
432 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 95.809 337.903 110.533 349.858 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 294.474 265.863 306.429 276.821 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
433 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 123.485 337.903 130.459 349.858 ]/A << /S /GoTo /D (subsection.4.5) >> >>
-endobj
-437 0 obj
-<< /D [ 435 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 95.809 224.406 110.533 236.361 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
434 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F66 388 0 R /F65 387 0 R /F16 382 0 R /F67 389 0 R /F48 391 0 R /F72 438 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 123.485 224.406 130.459 236.361 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-449 0 obj
-<< /Filter /FlateDecode /Length 5236 >>
-stream
-x=ێ\Jhp]߂<"
-@M0|?_n + A6 ᑾD9I?c7}%*`R9k4hsğ2vO~_͇Y诸۲@8ϔQFސM홐aJl4KumDq\EܼF!"5T)}$Vڀ##B1`([⢴ piZ=B)W[@ѵ)s󏮕V(H)O;<b[YeI S\l,8AIc9mPԳQ
-[@S;,G뢎kd/J+f9, > INQI|^@dП:\P7is;f ;e8+ifN9иAY@mV`ւeVm( sPDzi˅EpQ9-`R AJJ٢Cx3[wV#Am=-yD(\\pn$YM?*NJV՞`JaZ]Ӽ\\"#Ada[TwM#b/f
-|XxT7{}A)&:æ`[gzW3tC!h۩o$N1cJ_ Vg<o` q ^R3'þR3 pa颇zsCϘzH-ē@n4'BG[!/^A^8[^>n VY Ygd6y)Bd ɰ->Uos-2״"Aa"l9>1 vgV_O[W|CcZ8PB~Uf69 1ފM3c!40o<BI֞Z}k*m#(2L
-ku]Mm""Ej-Z8K'UKyhn;J%j$.OY2Y#X0¶z&xEFcz/xk#E:4l"kTY4g//Odz)Ӛai<r`(!$C+GR:&*C1顄)6W337)bAa4BM+jjo(>#'gNI8׭(Qhy!""}nB҈6%*Wf9]刐x#VQ% ,Z絗;':Bawrl*@Bq3-Yڃ
-eZP˙_IIh biYg;IYց,B!m $b즥457A/۽;=<ݻTq!g{Y}wPn@04G*ĞHH3r$ކ#aO2Yqte
-t'*y=`' 1%)b豴C]յekݚOҨӣΠ\u;1闭OٻO ]j⻭{GG11iD57~[|yntÖakKBqnI<ޫo=KN *3rK5IT TC#!k[>
-ׇ ;ܷM hkǘcf_9t *lÓרSn?W~џ)
-yi5{hgrGg XD=b]#rdDkDĺMм3'*VSMѩr;A,dyyR\FÂN3pSgnOn[3X򽳁CG,DuZL\gGd>nJ6 wlK$itɫ0ގлzkwnG@Jo5t/_'KXlީb ]I%@vY/zϻkTQpaoga|| '&>9#]FZ5z.(J_wN i<1U~o
-.3GkrƱJ)pOnY/,N^3!؞ء6.1 Ha ӲdSin$egU# oZla
-"zAo#xO/|MڛX_i뻱B!ZU{R: Mlʣ>%  jƗfDt|}j:+xZjno->Rhk[i9Fu05A&&ry _%qﮗҽfU(URַ9\es_β5 9gtCnU[*Euw_K{3aY5qdY>콫7_и+<>^ͅ'΄W-" |
-Ƙ)~[ HUBch~
-{w 'qGg"C3iw&j?g&ָaN3r 5^'0AI8Aݤn,f
-Z J@N<y! .NsvOw1aB$LdvS3Q?1R(p3Q'Bu [(ԟc*|(WÏ P
-jToh 31
-[wQЫqú]]R-=c!5텓r=ĿDħ)F|BqhA .m̄H ̄;5':f4_]]<m*֐RkTD$}LX>tQ*4i7!SjuTL
-};aѦp>KGD?ed61q؏ȉH ^i{_FTIXIR! ݍ”p+k^Y2PuCjkQ1ըLIk9siAEfI_er()Aƹw:Q
-ꋠS9-"
-8K-[.epYE%b
-T@q/_VCouhǢ %4#NP耩Ř`'W_Pl_3ހ uaw/ 3CoitAHqeA/k}V>>VMFU鶬B'e!t(GqxS3:֛}CN#gÛzj uYin?2pQ!)hNg39C<QQk5+ՕP3)RB[`ʹ/։)#E6Q!VYҘ˜?;
-vjZj>:C.*{' ]/Y!)Uv+c_ȠɰYv%:1 y"EzyjSޞc/[#ı2i~X:j]]OnP֑ˮ~1: Ξ,Pv숹UZiR9Z­`
-8(MC̀~eTtCYUDtșW*֭25
-;T,ϜME>;KD>N5y<wZm^ }UZ Ngj/FyQB..0!V N"_K0^`Ef-N$sqOe8uC]<2`XOwy{O*mWᵜwxHz4m w=(
-endstream
+424 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.999 128.24 417.223 139.697 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-448 0 obj
-<< /Type /Page /Contents 449 0 R /Resources 447 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 451 0 R >>
+425 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.927 128.24 438.384 139.697 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-451 0 obj
-[ 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R ]
+438 0 obj
+<< /D [ 436 0 R /XYZ 78.37 808.885 null ] >>
endobj
-440 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.731 565.42 184.456 576.369 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+435 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F65 388 0 R /F64 387 0 R /F20 382 0 R /F66 389 0 R /F40 391 0 R /F46 392 0 R /F59 393 0 R /F71 439 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+447 0 obj
+<< /Filter /FlateDecode /Length 4632 >>
+stream
+xˎ$_Q?Њ`gۀsZ{oO
+Ʃh2,J |`R1 $%-E[FnM`2 Ǔ+r:4yƉ5~c^W;೸ߺs6N3NDz3u$a_e򲝅E6+N9|ӗXøS9)_~
+L6MXͼL$k]k[D<5$y.88
+p٦6\b10[mr o@FP9!+mVYi
+&SLs1Q{Y0 NG<AL|lwU'5pgr m7'@}4ZL갱fdEqH#hYA8fq[ސf˦L8<G#3F^?, =X&f/vh31cVe(%X&Ŕ9-ojV2f&y L);6kK-DzLcs-.qk \OkDLR^ǩpDEx||;n=A(u ;ia)قO2[:ϼֻ lBzvvcd{[mjMz$2 Td>aפ1"hf
+^A
+}ڗ|(Doo,D~םfp^<X{W4x]ha`!q c=2{q4xm`(V\\O`&8*2;ک77l$8L3WDžC{XH|R+ZoOxDr66<2=Y [CO B0'fJEs\ׇ
+A`hm~&aw=RuwxU{c1fNSeW{͌TufXcޡfx<sV7>X>5nR>=uU\X(")9#O,('M<%[ElB3XZY"E' γVpbR,<=?җVK+>޴gFxPIXI]f
+6g".8ѵfw8f"%V%Q֞z3STiAiE2%3 ~M7pk-,TqNwQG 韪JJ4׊Z&#1
+SѤ;I%=IJ՘D/VqƓ]MEev=,IQ_)_IɸP#VL:ٿQԚ,J?͓S(/Oa#d$ކ'βC>Nw_ hk<FLa
+=ʲ_Թ|ڥbmGs//d}ٻO׽~YKcciDw{<rA7˽
+<\6Iͨ0ΘL!dїy(ډ($QmZӪjqJ=cZ˧xPH L}ۙHøcx%^wAlC?Jav4x؃6ugAt\ؚɽ(Tע9!W9YXS_d\=:ӄlnKqAl g3Da7q aB3J&it>`s7w`[b.S8`њ&G(UJ-ۢLU[͕i[0{?b;դ|;qIP_]y*mײ?~afNKxɳ*u$J%RJU)`$7/_[ {k1EuˊIO>Qesb To>k暼[toR&Oη#IZڠ&p qmhY{hd^{h 3QOͤUݓ
+ڄ aQ"(J6M>DQL<f+l
+y] Bl X$WO3LZD X뭼/=^^YT^W|9"6-߯-olAV;H'שDtfͩ\8cUYv+&#SfCq}O\-$ܫyz_sYY
+Μ'f&z6Aϱ&Kg<l!?oEw[O0]9</-s=fx-[Չul% շ|J:ސgγ,Ԛ>f{=*U`T`snK|IǸ6?F0!;*yxm`WL_MzT
+9s
+%\v`pomw gv~$6L ES^\2i{@ܱVq{ v^PK씇*,tTT(0LgQo/-=|Xu1"zDO9Oh3_F]qؼ=9)bIzkFPio,5#-3>*֛~a&Rx=Vޟ9fϛ֛zQqL?}%jiZ-VrmF8e*HD)5;Ѡu۾4-|_+Cao* U aCogⲅӜY4̡wry92BJc3-h#BMNG>}'rli5oKӯMcUVi|b—Wg/濧_kl|06OU
+ڧ% YՉ*]B4`?&\tFRoR=z -USS,AYYC9luO}x4w,.jkQZ\zZrO!쎵VTų(AFo;mO}ȶr48*R1dy1ǥ®8?%eNyUǎvЊ2?
+ їIT,gnF,WOh;NdLgE];,<gvt%AxB?ڣVbNϾ_z
+endstream
+endobj
+446 0 obj
+<< /Type /Page /Contents 447 0 R /Resources 445 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 449 0 R >>
+endobj
+449 0 obj
+[ 441 0 R 442 0 R 443 0 R 444 0 R ]
endobj
441 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.408 565.42 204.381 576.369 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.731 405.519 184.456 416.468 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
442 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 284.581 280.218 299.305 292.173 ]/A << /S /GoTo /D (subsection.4.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.408 405.519 204.381 416.468 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
443 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 315.026 280.218 322 292.173 ]/A << /S /GoTo /D (subsection.4.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 284.581 117.827 299.305 129.782 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
444 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 320.625 152.064 335.35 164.019 ]/A << /S /GoTo /D (subsection.4.5) >> >>
-endobj
-445 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 348.302 152.064 355.276 164.019 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 315.026 117.827 322 129.782 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
-446 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 323.989 67.047 334.446 78.504 ]/A << /S /GoTo /D (subsection.6.3) >> >>
-endobj
-450 0 obj
-<< /D [ 448 0 R /XYZ 78.37 808.885 null ] >>
+448 0 obj
+<< /D [ 446 0 R /XYZ 78.37 808.885 null ] >>
endobj
25 0 obj
-<< /D [ 448 0 R /XYZ 79.37 703.88 null ] >>
+<< /D [ 446 0 R /XYZ 79.37 543.98 null ] >>
endobj
29 0 obj
-<< /D [ 448 0 R /XYZ 79.37 350.873 null ] >>
+<< /D [ 446 0 R /XYZ 79.37 188.482 null ] >>
endobj
-33 0 obj
-<< /D [ 448 0 R /XYZ 79.37 261.892 null ] >>
+445 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F16 367 0 R /F68 402 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-447 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F69 402 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+455 0 obj
+<< /Filter /FlateDecode /Length 5304 >>
+stream
+x]M$ϯshY`n 9ͮ %%QTמ w[EQ#J$G^v>ˇ>^9.AyQ ^]~zG)ME_~n|Q8Z6@ -ן&8(JSP>{BT,7CKko[)K!Б R H){Ԛ|l |fį.?H=g>((zwnVF..T[.u2c|56/[EI'73 ꖒ]uzZs€52X.ڙSdT[{7l qko # jW$
+KNWxӯ#^ZlWݭк`mc7 EI%:^L/t^qn\QQ%\=
+M
+m`SЄBhwl[tؘ@gYZ_M y#`}uma~84½Lhl)r{&Iqպ!;:wg<*ĩ[A@9gE\k/ kKVH_~?]25I/>_<ll_8$`L )t?*ú
+s{&Q[HhɃ
+u+'W
+kUx\&h#"ŀ,)Q杷ya'F}YuA Bp" K'ksHt `vL} DP񹹎"mO-R 4
+MfxoNIF"|qN~f' dZ^ D
+^FF5:p~*Xȉp޷ʑdL<L3+yjK@UwVre$<+ +8 h܊cKMxk ÚV3yhC_kEʈ;|H%:oضGݓxdß句{#;f
+#GS7)LO+XpIVXw2WO~=xɟ6wo,& Q
+ڮYIM)̑x<8a"/N3q)fV`k]k5l+Wt:oOvk>ٯ{:6zӆ(v3gtT绗)m;
+gv~*'ED}Q3
+7/NC3OSs;Df೷f ̮2PDNd7FѺGڡy۫.` &Rwn% "X Шr K ,"H߇@i(H㣌9SWĊ&^!` -] 0]Z3aM=pn?ߜ"Vְ(jk;][*F'/rzu?olUFĻVm5'Zqyh_c]v #]M
+8W^6$j VL qE_*ysn$Vٵ"jmRxKJȺZӬ'{i[
+oY*a] 6eA³uGX`{ ƍFX8aU"juå ;47*0dM)4i9#
+-( N"7L>v!9VbBʼnV,7^kSi2yc.#/Evv}:ˍA tͣntSԠ; #LNbJ|e^u.''tW뼱頴e)U%|`D &ҨsG^PbM'Ʊ(u1;eצs]ath᠔a$AYq6&%HjJpMqe^ڕ.%$m:ǍSN>eV; $i AM'JRcS5qbrvҮOgѼ4(!S&{,Na,90,ƌaaR+5n]Q*Fiˆ7PM'-*YhcLܢ0bƉ4eX+mZ1M{8I>F
+ԠT:JI+h^nL@2`:e^ڵ.''%}:ˍWAbFanaɄ8qD7&-8R/*u]RQveÍר`/)*AW弯eI&& g@5AsPPb]α(199)Yn4@ J$>?W})ʩ-[VzVϋ#rFvedOCti-[ڰ3ȳ3䋒;QD\: 6iYZt`i
+/ws{"Nzp3Go äA1A7;2hDQt}5wG'$7q݌,n6W?(֗v96K&{S^; |a'9S
+9bam0^:D-fr,bBngl\ I_B/kFv 1`w'WZs>=X}n֗c_sT.KϳdɎg_ E"\AjxCɟDj%.ǓEeocb\7=YfߛGŐNo%,E9BԷsL϶Q[sb#&>ءoy+͞<Wy۶Ѧ`ORߺ雓;kv͸|m19G/x MzҿH_nH(a XoSØMFЪ`J1^)HeYA'`^]` hwD;A9||WۙDmj:"I୻\%[/T:']YQ UwgOf. ۞m^cJXP@uږQ.;elRRnAms/ͦ)* ;f~c?62^۸^1ȸm/_k r YKa~vY޽.l6VM?<
+endstream
endobj
454 0 obj
-<< /Filter /FlateDecode /Length 5835 >>
-stream
-x]Kd'ׯȥ{y?RI7}}-yV+ϸGH
->Y.%r=-
-D
-[4$+O͢HVrj1ڌ5NR@z!ҙXFrq\ҁ2y@=
-Ɇ* 2ǻ%]TcD9<h`#ŗj \?Ѩw, D>
-<O72c Oʺ(=W`Q<} ɹ-ՃZdBeK֤_*<j7/4%0hy ]<c6t_>Z k ]M4j
-3a*5Egÿye/ڛ$}-ͩ&Jj^ʑ^k6_nҨC"N{ (^72=2QmSuI2I\a7nֹxƨ?"w Bm
-EKc#=JLT KFŴDc[Eh -oTmO ^$'fW;vDfymSȥuN]S{"."f$v+~
-*^e_wt7}哋NCjDxμ99Q'_fupzc5{\YԽdòj [O6,~aUg꬛@vδĖ|6B|݆,>hhjȉzF \IE53OOć!DM;I I6͌\ؚ0x!Éf*DDhԵE󒗳nu|w,&wo@#yn9LUl%S[;dz$7
-QNo
-Lr VK5
-SZj8V[z2),W:h<5T`P]_sG``$OKVq(Drc#bKJ0ǕЄQ+OEwE$E8/d A4
-9=ó[@ܖeVQjRY(Ȳs-JM=[RY$/@uB$OSm
- yLM+xoky,Zpdʹb=>d
-
-#;wY31Lc,U?aױLmH.HqCgf1H9_)ʫCD][V,V}i\^K9! s ,IkS)BMKyY7AR)X]%fUjPбY[OwpY*ŁoBD$
-)$B+ }];!QeX&0x ܣ 0/%%9_jFkDSU& 5 قW~Mn~)G±ZrSd+8`ȅ*?r\S{eܻ̾揊^xp]droEl(oC@6Kd%)\Jf{w
-YqێݺFe?TGXe%*1qFW>P.9[xXB|Z鶮 < &ztwCȥYƿeZۥ;^,Xl/jkj-hN V[Ƕ㧽EnFKˌy1m̛^l|:9lNf!xY<oSޗI~S~#oИyt^J/>ꮍ;ŝY}D7;7mv?sy\;Cm07}&jG^j[ީ쁼*z\׾zokɞ>y}/A=y_
-]Qx*z9.abMߜ(
-պu'T0Kk<{-
-vW-GwTt+2Ϻgz
-Iw1Tr];`q#ޞ-JpWJ-2/}䉜rG
-t̸+0g=\|=B
-'Q Oc2;;%0 ]btO\O`07ȷ`v1ӺWLm[FutGW򱑯z0Fb(1SQȉ{ScplE'
-2=똡## {3)Fz:2O"9H@RÎweOaRmFsC
-qxs;O
-<UFɻ*JI<]|>C-U"FZGwUgf*a\JBYu/^>f%Zu<WBR\+X: 2;<dE[ڨEkj~@fzZG.y:o!x)]h+^+yyn&0\^֬7{b֚"gx;)̷6ulϰBMjKY3wxX}
-+)-T:W?h9_y9`lN3rK߻RjL秕g3o0gʣَ` W źf)_CL*g߮ _C8]}33QZTt^uQ#^3'
-n噴/Tײ=쳇zgA ,2p*@ x#tcRi+1Vdw32ҝ*ڍ]@{i6Lg{a\ۯm
-endstream
+<< /Type /Page /Contents 455 0 R /Resources 453 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 457 0 R >>
endobj
-453 0 obj
-<< /Type /Page /Contents 454 0 R /Resources 452 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
+457 0 obj
+[ 450 0 R 451 0 R 452 0 R ]
endobj
-455 0 obj
-<< /D [ 453 0 R /XYZ 78.37 808.885 null ] >>
+450 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 320.625 667.733 335.35 679.688 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-37 0 obj
-<< /D [ 453 0 R /XYZ 79.37 616.605 null ] >>
+451 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 348.302 667.733 355.276 679.688 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
452 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F25 375 0 R /F16 382 0 R /F32 423 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 323.989 76.495 334.446 87.952 ]/A << /S /GoTo /D (subsection.6.3) >> >>
endobj
-458 0 obj
-<< /Filter /FlateDecode /Length 5026 >>
-stream
-x]IoWtPOOOs'}ϫ}aY9EZz[˗/?<]??.bToBeSaI_<bL9\ cFbߏ^{1&=Sy( *p,K?BuW/O6T*$M} ydbp^!t-v>]nDW( 1g
-w_r"u$Kn
-_~ e
-BG;0Ue:T$ zL{0 eZk'QaeS
-Ǡy]'@>z<irhɿg{(Gmv&myNC8u::]'N~
-kS{N {ss'G$O9|c'?Ip}H<C&G4'-uQN~>C;wS$=
-\&޹%>(yஓ$;)P_䏃rɇ5
-D5m Sf[@RA +B̄* dQaÐ2X HnItÅ1ۤ'\fWg-j%}<]δ\`]5\d<y
-XEo]>zM]}+`26iKbϑx3k۞iVBÓy3ܶ '~ݮv>|5 h#¨P7^ƹ#>fw`Dd^&*UϘh06K{~h!裷-n luc#vQK9i~  i`;!3NӸ^qBlho/1*$CB!4 :׼yG}躲{x{:'f}!f)Ș4+&x@~tt\yV.i\>PS6/'S^ݱ>KP<IHrkNt H=[wseoFjw[bVKHB"_,O:–J2hLi=Q
-TF[R@IzrBk
-!~bB7TQlsbDȺvy%0/Ͽk6%dS@J=x]V{ÑlɅv!)С*z~~"RIG$R:->2 Xx٪X:v˜%=^0aqfwV\γ/i36=Y̦U7o)]VرM#Qi"k*Oi*􁚖Ku;C758^>ܓt;ǽ)w9 )69Jf“"
-sĴ7[j]\mOL}A3F@&1l-ua+0Qx?n41>ȖЦ 쌀d͍oaPמ[N [=DOѼ|Z.h^w<+iBnWG\Cje:a
-6/@ոSI\B#B^ݱ%ҖFJDƈ|=n{ū,ZjW~x^1WFCfGZ>~[u$VS
-qZK .*`^UM),㘚j$5Ytaʩ
-ޓӆfr,~oSd1!oe|]3^ QIrpT2œ1ze/eWGd
-<Us ;и?)Lb81Ho0 #{ &+ mސ! UlHw2.u=
-shB$"F*Q*=lNxV!(~@c˝
-ȬS]7s !uBSGަ;QY7:1bb5wZaZqѨt~SCJ'a >K'Wzk6Z5P] +Sǡ89! if}[򩞯Sݫ*`|.,g6)p#es L(WS{8DmNj9|PDUʷ;SaQ.{+M8t+AW% *JgkŒDǤnUn}3 Sńi蜾)i?Q}iH&s9JskUIw.<Yۋ͂v!vIª`bpbmjK *LAXӬǐ@Eb3^^BTM<
--:8oS.(t~^pQSK7 ESxM\|~'{QV^U<lŗ#N<X3̐ڀ4Hë;sCTi1_!T`ºs_0*d?qx[fU^CVc}XGH9S՗Sk#orN=<H\s]35O_Tg3!pֺ md%]_܅>2;R~"&Ғ1GW&MN~.nʒu^FU
-'׌l6`7f$OA5hG[/sݴE)fQb$L #'ƠMI4eT0mwtDч & <vpZm)aR #rqŗ Dل` 8~.-%!}f\'X`n7Q؉n 0}K?3/ڮAy/K@xN^%^.֠ ~۶[=lH!FI7s}ܦc ]
-)&(.u],->GK1uz;faQNc@b_Spn9~ k$F䑺p_/ACX~H 'ԅÆq -PTdN?-Zg`gQDm]#yӓCa;4PVg "3f[>~db?9<Rw5s8Wb=8{XY<")<Z578wp4掆>rDC
-"/v0 I&mSfGcȜyg8mU$~Y" m
-tUknċ=8QZW'q,s
-endstream
+456 0 obj
+<< /D [ 454 0 R /XYZ 78.37 808.885 null ] >>
endobj
-457 0 obj
-<< /Type /Page /Contents 458 0 R /Resources 456 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
+33 0 obj
+<< /D [ 454 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+37 0 obj
+<< /D [ 454 0 R /XYZ 79.37 465.169 null ] >>
+endobj
+453 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F29 375 0 R /F20 382 0 R /F21 422 0 R /F57 385 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+460 0 obj
+<< /Filter /FlateDecode /Length 4778 >>
+stream
+x]n,+DsjۀvWvE8~.*VI*oN"| r!"E)0߾<y/N#feT-<_邑2
+З U (/,L(Bm& N|3K?0l[{TB##]q1pJ~ O;{ cv}O> CSA1>2XQ#&t)b~(Ч"
+aB7ЏQ:O!m |T itJ eZ PdZ$4^A j!gQ fmA612d ށalm6$@L{0 -aL ޠdNNe? ؂F*%8 ? Qʺ=bb+A8yaQs;
+u/<PnXţ*8D-&&}D(3N; y?aJ3Hs@eB!@6(=IJQ߁"}wD#lzN)fD՟7OAr@efk q 9u9HBh(I
+cHNۧ0Iy }?*@y`<'%S[#()D}zfVp8ȫ#Aċv,1 S3~*됭Cl}
+pX(Kocpsl#.D!
+37gYͰSĘGDl-'3GQ4=h}f"zQiCAA ꟻ,ֲ$"^zMsg6QD7OBG{b#@r>IrzVp> J¢}`
+@+^b+
+}+&VK*KGpNBnAKؒ%;.V]Xi9ܿDp}%mLZ^Eh͕8DVz9'U:90pK@#
+WbWieoi
+• ߪo)>3iG#}fl55jsXqoQ6Ri{bޯiV`m /f8ps~k1Q?뗪C ]
+r{Vղcj`NdTCKCzCbeڎ!Bza7A燩){0môzFz!Uaah
+$ϲlшb={M 5"ijȷIOQ5·+&,]lLوh2 ߲X.p5 Õ$RPo
+ v+N,M
+?ȷ;qW\gagNG@4n݉٦&w皏#b$l0}Άk%!6/#kmix=3qDI{(=PyVCS$Q'=0pYK aA-a5[TdDW4+f/xGfzX܂W'0E鈍߈ODb LzI|b n99NKI[X2u%-sJ
+jSi(m(5[M{tg{fy%Ftf/7*I;>ם/'F,Ja[h&3RG ˦IHP!sSaP˦TT'z{̱e睦9Y_ktfe
+J^w b;mPAr\⚏'/Kغ:: ulN>i6Pz*8^6Y 0jW<ێ^ߡv`Wm x3KipX҅rM
+]
+∵"D*_%epq,.,,g!df%Kև.ZC5a XF?nym2!54EǪ `%7*QհU~ Q_VUJ+lf0A[K"լáXI݊yK}w>13-" $)' (iK ~NWw*5]ILJ&f$N%JM%UiVKLJbS[h
+K.JmuN#Uh- ҳE)lo[2K4Z_JqacӖIF %thzQq*82x0,dh*HK5NE\*c3+5F`bDr`RH3Zq<ym>΋хJ.%շ.ks㔕 =.jp|Z+.l)uX-EFR.2fߌGXXY6&u`-hS
+5z<!gݑAtS=p ld5U,ÜHsVNצ~^Vˇ2)r.ˮmrv7 < Xjr卯\oDnR8, d* ꯖT8VEx Dr|P".i[R؃*9xGgνKHlϼܫoyU2]ua47?p kҕi$}k"āݭƒk/oU% vfYV`ݿeֵ
+endstream
endobj
459 0 obj
-<< /D [ 457 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 460 0 R /Resources 458 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
+endobj
+461 0 obj
+<< /D [ 459 0 R /XYZ 78.37 808.885 null ] >>
endobj
41 0 obj
-<< /D [ 457 0 R /XYZ 79.37 429.973 null ] >>
+<< /D [ 459 0 R /XYZ 79.37 245.657 null ] >>
endobj
-456 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F67 389 0 R /F69 402 0 R /F58 386 0 R /F28 367 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+458 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F66 389 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-462 0 obj
-<< /Filter /FlateDecode /Length 4964 >>
-stream
-x˒_?0 ߏ*<R>%Re_Ivn$@
-@B^m_
-bl L+T$#in'(kaz5Z1)m7ĶE`
-Zb(f#qwe\ CI
-b5 Kb6ਉf_[=R̤j3_NJܜf<Umwxm Aww$GhTԍ1\eܱw~&ˍr_μ;$~Gn 3P=G-ųf
-+$%d0Lb<2>{zkYa,N|qþ
- vO)Rq}銂:;t:3/]-x`^qZ~BYbB+9zx͂>4K3y:w#!Z(j-,bD(~ O SB!CC!DRQPr0FBr5B4A0jB*@l7a!Z D9
-y-Pa­ TTȫ N@Qn B^ O3h OB>!z$~Ӂ4D3s0C@B>A@HH ČB7QPG!@HP D!(ʃ
-T]}c@!~ȃ@;a6IpFu
-y}Έ&[A4XkAT$AuD%p
-T]Ճ0B :AJgo )"#̎@U1Ϸb P ۍGR 9G. z1_l]'kAVHQ5^ Rq$31 ՂAނ oA?R79
-$8ܯBX'i yMZA/vVLDoy`kG9
-v˹LJ"\IO
-\yяx<[ƯTA@ׅІ0R Fjp GAW7a,HD(] Rm:),y3 d2@ Wϥ:D-+>Qb> 1 E I14UfRyՌϧy:LL/' ':3][)\
-uӰR Lp0 
-*.;
-8N),,p+|Mncj]ͬu芵e6*DtϤṕUȟχR*3Ϸ1qѹj8BcEl\
-K(B[B$d{+BrC%Ӷ3KNT+B FwA  GW'ХS
-c
-ک9&nXΊPuQ kn8G"EaV/]ZF\O$ ڵ_
-'<LA]E፡qwH]; q\\ٱfX Zv_!f$pm+e 3Ag̨Ykq/_M @Uř(WO?߮QZ6-Zv㖵l"h$U.暡J dL6nNp<tIR襣2>v#Lp[~5е:^8Y9WD~PuI_v-jyΞ8f\Pڱ,C٥ИƔcMSS. CL=~WVK ~{r"bJN/XRՏRJcXT)Jp҂nSnU{{@tBw:Ŋ|a v[{uLKB}P=w<Zx'E ?|=Y<FI;jy"BphdKB\'ڽx;A'*_s^yuŒS3u`]gb;6]fB"\)CÓ_OO=W
- pw#tָZnqy L#ֈN٘첺4J틳ZDw :]Vw0C )z*Cj3ΜF;Cڟ{^ǒP/w9Y:!=k1Ƃ/IT,%k:+L/Asm s4G҄2U0xG/[) QrFPSMwiȗ<. ^i$D3w$HZ^kr[D"|2[(C>LXj2*lcZ n*nI%?s65%`ˎ=f/;o,\pQ=S:] BηC8Bo΍cC8W>BuaxGӶ‘85ڴ%`WH|6qO־iZHɣE(8J[ۨldHBMᐚ'.AG+n+ʡ>8*EߺغSku~yϋ=`'ЪE/o;0E"(锶b5x{;ڶmtsn(8B8l1xGՎ:W7k>B.܀x8l_vWǿJD1m28} ;iXk
-{V5/}qfs`[@ +={ qD.Ѽ6[5V뚭ah ovflsfk1e 5֌y|~dZ)I6 ,ܚ o?ϏS3(I4jp 0_5-0g(tbocs9cΡ!'Yκ'Lo28u",Gp}<]0ch<Gon^.Qĵ猗e.q&=,VvN (LY
-\䊤,^OVV2$wX({AcBs*PiWl YV2qVZLlIjy dUB
-<
-VݩiXjPf4fĄ.r⛜AT.L᭒^yeJ> ]rd,nӄZ5mƷЀY'&hWP?[LĒt#auhne{9PѰucSmxkF(1uvۭI"复v
-@&f>W8qML^tCm!ߔE]ok?e|zNN&m:<Z%*\û?<[}e*G;jJ}aL1e1
+464 0 obj
+<< /Filter /FlateDecode /Length 3647 >>
+stream
+x]K80 q<)-4䰛f.%Yfݝ@n[H֋E~>ě㗧<F|}xbp)kF _|Dž8˯#}n,80imӚck!t$
+61~rN]0O_&?}y^ V[fD7,R᠘±)zM_h@32rpْ qrZ Jb?=E6^t<Ra3u'(i%Éf~)OG\XOW'.؉5 JiHe+H1c}f`@NKtG@{e&RkWV.*-*ͩ*ުUE8@ybH
+}h.K7Pf%/@i8Y*
+"&6v,Bq릃@)rr
+q5~wtBR 7"^:#Iy {HjfB,w΋ϩ@j^i<sxk:U8(1ʧ
+)*8V-Gc
+kj]YE+1jZ341cpxc6%0<Ee2+Kj|Ceytϒ|xQN%8CbhJ|,?SK"H3Y}eC2r\ᵍIEWў8$pri
+E- QU2F<ƭ:ڎvw+'"&\!e ^"dVI]{\VB& LڱmNt)qIkG|2cMFf
+l%<ޏ#4}%~Srͬ)p-ü{d(]᩽f­7;WN叉\r@[m
+9\BiS h[EB*{ݹ&˘n0ǵDJ^/Ch32y֎ nI=~Ds_ G)qy#D\h[d떸{:'ꊸ/1.hc(mqE]b̡{śތ}iړJ2C9gpCs2槯h@^1)nϹG69ŪcZ<z vr
+8L\h?s҇t8G"nؐN{Gi
+Wp1
+P6m0 =n2/GmT:HbIIӘ[aP?3w2
+q)!x'H:)[w裙]k<kkx>}s]Ek=ސïS4h'w??=eWꧮz
+(~}uE5wҙ"`_c?xDw)Ύ⎝XD'>@h1Vvt.'Is'9.7sxMgD2ha1| H3uiWh4{-C ۻ" {#05@Q
+
+wAB JI&~9
+i㝿VU.q8&{qAH ٭8Hn~Rх؟qܴ^ކ]8HՎDDj֧ARnt t
+V$7R HI F $5@JGo$ܺG m'ao?dO>)I_Hj|
+m@!=2`?vc?vc?vGGuSAh\(..Ǔ5YBE*bNsM)kO'ab::L D1-~>f}P/1#
+@b7U5'3 (9ɔF iL$:) <](ƣ[]z)4Wl;`Ka|*ʆM.H4_fJ)\p?5%ts%t+9a7~wظU1%
+k^[}pֲBŚkOZ05T<@.rC4@I3N NC9rg[ ɘj\mٸtpaALeBG@7`E*AW.\/spcg^hhx=֗#1vbd8AU6KmtbjZhJ% ,}Ab>RQ,!J˂+I*Cߩ9էhbCG
endstream
endobj
-461 0 obj
-<< /Type /Page /Contents 462 0 R /Resources 460 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
-endobj
463 0 obj
-<< /D [ 461 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 464 0 R /Resources 462 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R >>
+endobj
+465 0 obj
+<< /D [ 463 0 R /XYZ 78.37 808.885 null ] >>
endobj
45 0 obj
-<< /D [ 461 0 R /XYZ 79.37 431.402 null ] >>
+<< /D [ 463 0 R /XYZ 79.37 191.956 null ] >>
endobj
-460 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F28 367 0 R /F15 381 0 R /F69 402 0 R /F67 389 0 R /F55 383 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+462 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 367 0 R /F68 402 0 R /F66 389 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-469 0 obj
-<< /Filter /FlateDecode /Length 5084 >>
-stream
-x=ˎ$<ڇ~
-m|yfvs0BӖgM*,LHpTs'G<)h)M2\fgGjKS;z&ԝXY)oEoEJsg cwLۦSEUwв fQ>q.ƭԑl]g6fXSٰ#+ >]18 xÍF^r6 kqˌ1#yD%=TɃJ^=OTk9ohfvMWT(ڽ5u| ­ϚtD;zc/MާhƳ_we W?ų̆²
-Uv2.q,̩ _uώʀ_[\.yއ%_T*ʰn|{p?"0x__/fI{{y׌|SDS
-24la@@_3 Pm"9: >(X72
-R,4jH`Nk
-\1B
-hhbK)#^)DN,0gL[b!JQ9> >(e=T@d"R3֌RbtӊM ȽB)LX4g2~{WaA8J@P a 8
-gZ K&e5nV7QbJ$6/`цbF]ҡw2< mFL):pFO-:ĶA7692Ը!]4]$uV}NtƚŁ˹fpw.mhaW@+ M &o[spi^X٣ק=v?C|2-ƭ|Zl<eJi
-k3hRN,6/GL\"] 2jZ25qsa=ia1%&<PGs5kHGVv~FC\lᬂi>JFQ!Ȓ)02EW)4SdcZWuS VۻD>z@>~'vJ5oE>:#zHG_`|o{wy[ƄEgF<􌷭ʱnLѪTiE6ؾVpo˂x+[F9Pz/zZ^ʼnv@EvL*veQVV˹%"8R% u5u뚎eqtcOX(,K2o 3m85BkG٨ V\ErՔUJ[}*JJyua=RBɡ`Tˉ\8WaR
-^RZSH];~4/*6HVK%##ťZT[jVmZ{<S~;hv$0O H9P''t.WiFd*m*ƍZFBu?#.kuN60L_ ly ]&[cIfMNt^XJz m@`*S+uZw
--#OEt >ɲXHtKSVd/"ȡbw+qe$ToEqXA` *a ɍI#0bOG]nNIJNu)ͤDxR`햴5 ゙dޙښЛTk[!v wWݿt߁
-"(Fbsy2d~ʎ-~ bc+Uc^ĦёYfG[{YOԠ Pk s)-_ $֏ҢN X`B.LK>7K&C<  9N =cdͳ#9 Y}#[ʹ
-#_FAf\&:G:XS볪Gztdh; v{;"m F.Wǵ"/-"
-Ucj U';<`qNv0uy;dGKD([0J+uCuW=q>eI/u
-yk[~R<b Vv6餍C ahzLsAv<&]P5i3/%JD֫8͢uۅBpBQýfv⛽mfw74\<շ\ۏŶA);Pz$=ޫDj͘K𠓥mL`?XR]$op
-#GٻBs9s\/VAfJyQh<aHSr=g-d e7n != /Sr,}Yxd "u> ҍRʟ9>JIFIRB xUARwZ_>;lkq Z6xҶ]$Ϛݴsq%`R,V-
-ob,Rm5r*Eо0]wXq22ܒ˦ahLS7ʲv- +R0!¢Ϧ7
-E K?fp6Ϥ gN/x)Qg6ӂ%DH.`BwE+>ܩZ^7^G;L$VT
-Z]k79VXܼN
- k1zk~h){jeWPrj@<P̪ }:I4}a3efw}bv0{wBB]6J0ݬ
-xQ=Rx'>py;z͜7Z'`ߑ
-zTټ +]H.\$t\/ݛ&)MfPuެx%a:n6_Şk#7%vl: 1'/Tx:⣼uAv}ҫmK.=!>CSC#_g@lo׿u0z4ڿ]3%uTc')o)xc?s^fNyP
-αS94ЯV2#&ޙrM]˗ |Wɨ w&@S%).o>^/AԊQ9J 37
-E܆݋b(tO`a>RE<jTc^~-+ۈm{~)kf@[8OΑvg"b)p䕵G.6JJIϘԈM՟ʿ|OWY3f#l (p v >_9`GoV[vkn\fN¸n4nm/+N'N)*[seH*QEE@)nuGnjVݑ<l!"s.?E;ޥL>敯U3\<g7^ao{=#x\ЏV2Zz[VZ3y(/F9竹@Ngp$iǼ)$\HOyt*S4f=( 0/4v2 FJvY\v䷫ jo\羗G5,ao%/мNJ4Uĺ+*k~uN)MR'ER9XܔJ'=}]zOSzHeTtxZl[NXh$ _DCa[i'?29X"-f5{GIPɠ?:#LB'Hk*cI
--~7R
+471 0 obj
+<< /Filter /FlateDecode /Length 5705 >>
+stream
+x=ɮh
+H4j9x 6 f^+J@{8\=_59- e+eyS3bQ\[gմH:ܕGGkW[(o$YYcUzvRbFmBg(VP'Y80/´~\6ʀ[w r>p iNd{LiT~H#*&vU}m#Bz\/6{c-H* 4HIe)W^luI0L[8B)VODڐ祳`Ng)QZZJ'(I!t;wUޖ98/h(XJe'(
+$"l}LOG1-aڞE(޷ MEMN mxѝSWj٦F'k5z^Ks&yQJBX_0h3*hsNaCHQ?JS%AeC? jUn<Ci@ԟ <t<DdUƧ
+ﻯrثV3,L쌥E
+,`P7@ Șue`>9Vkw}  j퇑y (vYvn5E9&mb\ƄCWiS>B%eTѽFx].wVT MC鼁>}b.[F\˷
+r`B@ ^)^6A^ڃS԰t3^ueWԭ󢶿3Q E+!5#aᘂG0O`>Ac'!80<DW9AW:H^fq,_o/waXc^k#n_:8?n/ kˆ^J
+J?G8G
+J48Pq%Q,pR(Z|3XXn/pfQc3P-o#Z&}`ms{
+|pZ &e&w;e?|
+i~H ~d+daE~'V<epӶHLoֱ`ִdڷ!qd/wsq;+Aaa28n3#21KV",)53p7.rEz8i)ta:Mfb
+h|owa
+T#~KG39{{6k`^wLmLqq);0S0cp a.ʝWP:}NGlD&W8u? UF xX,K.8*Jy#HdG!>Qt`iᄩϸy\\7u~e-eܕub^2jGOE7t_6o5DQ5-A"F{O%f.=lߥ N75?h֦8u q1 Oma )jk jrv0Pck&#6XhY? J"%1=O4Ґ\80W k<+OӄLigz14EZ ˤIX00
+B.dMzR](ڧl8֖D`jk$$ڦsF?$=z5ʉbуXY)j%d]f'\|$USr,-gِ~b yec$RAlR*Lʏ񶴜B1#vi?)6WWRfr-i+C$}v)-Hg҂hJorʐviR\9?[sT!{ipTݟ8Ug>^0~>5\}8-k" }8-ka U፩E:r9*|9֋; b=AǍDd׌Kf@
+8ՌND(Q(#Kfhb$LpX(ec{}&Mi,%aÒД(cQdp:}{3drҘX0a`
+$8Zu [vD$iM5A繳XY0s v4Wv]"={'JF̳tbS½7?:lFau,f#foՇWq
+]p{vBdԖ6`!yt%at2IKa"__ 0a
+h
+:CBҖ-ݖ _Cg՚3NO@n{8Rjh TwTdA/y`
+R t)Rr~@>,/Vmyo6\n3_++nAWi8m,r-.eDmwƋ_厁xsx)*VЉe
+ǿ<nW :,}1&8?_[yɠ _>-u^dt kÀw $; W4DΟ; &?^Wk"Ęt
+8¬eȒȋWYoTocsma9^30T
+}~60ELe L>֌i}b99y d94s1Ϗ] oP{× \b:NjބeH5WGRTZ m&4F$qm~.3WQjeZ%
+<,tp~xW1&-ʏCW/Us50U\+t3qetLsCP l8/b9R(r}Z*wUQ%r4!Ó` &̺es0 f=K#[߇ řKȷa wYvR.T"XfnΥAhFMeW<oGDd
+K]IDq4w|`}7U -d'w!^4fHsS8PhǠٷ2muX2>=?}8Uh<5~čV c *>T+ZhDrh$rhcθK%j.=ka{[\fz_xc~ڎ۞%`*gB49AIH6p7Ս:xγA%1fhvZSM@pPݿU2WM_"GnQ߆
endstream
endobj
-468 0 obj
-<< /Type /Page /Contents 469 0 R /Resources 467 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 471 0 R >>
+470 0 obj
+<< /Type /Page /Contents 471 0 R /Resources 469 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 394 0 R /Annots 473 0 R >>
endobj
-471 0 obj
-[ 464 0 R 465 0 R 466 0 R ]
+473 0 obj
+[ 466 0 R 467 0 R 468 0 R ]
endobj
-464 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 506.052 333.048 513.026 345.003 ]/A << /S /GoTo /D (section.4) >> >>
+466 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 506.052 152.709 513.026 164.664 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-465 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.205 321.093 412.16 333.048 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+467 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.205 140.754 412.16 152.709 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-466 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.259 309.138 398.215 321.093 ]/A << /S /GoTo /D (section.9) >> >>
+468 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.259 128.799 398.215 140.754 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-470 0 obj
-<< /D [ 468 0 R /XYZ 78.37 808.885 null ] >>
+472 0 obj
+<< /D [ 470 0 R /XYZ 78.37 808.885 null ] >>
endobj
49 0 obj
-<< /D [ 468 0 R /XYZ 79.37 598.057 null ] >>
+<< /D [ 470 0 R /XYZ 79.37 416.043 null ] >>
endobj
53 0 obj
-<< /D [ 468 0 R /XYZ 79.37 499.17 null ] >>
+<< /D [ 470 0 R /XYZ 79.37 318.893 null ] >>
endobj
57 0 obj
-<< /D [ 468 0 R /XYZ 79.37 474.383 null ] >>
-endobj
-61 0 obj
-<< /D [ 468 0 R /XYZ 79.37 129.534 null ] >>
+<< /D [ 470 0 R /XYZ 79.37 294.106 null ] >>
endobj
-467 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F69 402 0 R /F55 383 0 R /F67 389 0 R /F19 379 0 R /F16 382 0 R >> /ProcSet [ /PDF /Text ] >>
+469 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F57 385 0 R /F68 402 0 R /F55 383 0 R /F66 389 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
476 0 obj
-<< /Filter /FlateDecode /Length 4371 >>
-stream
-x<ˎ]H u}] dVF LtPy]=rΑ(K$u7~內/zӠ/^Ǥ-_?qg\?~
- s.@~9 9#$v *= {xd- wa# <NaĦ1.P\p~q zy EhW
-90B  XVLd>>23 AR1u^*)a=NL o[_`{ܿvn:RSf{$L9S^_6!Q!9sL1Hqϼc*Fu2D:QꟃYqY8ƅDF,(8y_^ DCϵpv7M+j‹_kxjҾEuGYIHqT>"L2Ӡj%< dBug93iHfߪ0
-朼mKcъL2.]eWAzkZoꌐ\#ɘYc%V$Iϱ(F0KE6޷OU˗mbYzYX"?d wbxbpru/z#Әa.F'<T>e R5N+ULޮT V0qx߿C%+gvC P<[<aP$doϘGvqQ+KS|G6'2
-(RE? bU㟼+.ٳarqZ1y\H4a%C a&_9h;%OX2u#f#*fn8rmd@ o7-&6Hgo/|5>^c=g*-'hQpc0;_ş!E6ԩ)y%4 85dr?6b2'y,gy<
-ɉR
-U˵7PCóڡl&3_[r\nT$G\N.,\bǽC,aڝ n.|Ž7AWir~ٲ_'ř}5&EA$b![$?XE{k$@`z(e&;rw\dhE)I;= Jxs/0H"]+S,8G;Y
- 5(F<ߖiTU"뼻8B
-p*
-VQ=q}eArg:Kmw.>;7Eg
-1]5hV*\D$TrY:PMX{eز6޲i
-ȸs
-'z#-նvsAlHQ%L[&<ɍ<FղsGRh&{|8͍4~Hɝ + IO&z`_SB$ svOA]:cMvoV\-~9˝<|:aάxV9/]l`JCOyTL ͪ2u?
-M$q}KgW,iQY)ĻfkũN\Wr/6/͔wOﵕUν?:Bw_پ,pQW4)63V&R1U[6<ezؾ\RZY'H
-jVAri?H]?Tu-a&)yh[fӖJ¥g@-)=88r\dmmQ5!Cc2B޶|`_t(\ I[weeo[=ڣ hO!m퀔StvWOf=͗h[gal!Zjh} aaα¡
-mIq7rQg̵gWcbE38(`8S0A <G9b_zLxFZX &Z pt
-!Arp+K YJoZܼv5#Ys~.E-@Y~~e!;6ֈs ֶ 'k j/BVKd{1s=ã8u#t=
-w; 4N {uG<CɈ!Of>9Dʗ$6]K{ޟ _z?0
-@O3?$f}|6}k݆>m$A56ER0ȴhCI2*FADT4O׆ 7zrU'
-
--a'q݀Xy!Vs\JnĴx&A4.+iw#Cn㜸`荛{<$)Ղ:򙃔,s56reFj/N7>3|f5͹*
+<< /Filter /FlateDecode /Length 4928 >>
+stream
+x]K$ׯ=(sS}3|>سezKRdeP]ER$E_~߷o/?݅x4pE\g^q/89+h,kּOy>yj?.6Ǻ׿~ի
+-0rY׫ta5qZ"uWLsLWm=3fm Y !2J5Da<GJeZzYL|;]nQy?Ň,'P`ba_uC fZ,H["]'<0o>ΠA;d&9]i&4כ&C|Ƨ4iݥI)<EI;!qd!s@~!oXJI|Ud,Rh T@{Dy q@@ӠFDYNMKZһsmQ2 ebyfvF-?_|?T;όˁRfӾU!d<J4)5gVk_KdhP\)eZ$2%A5`2I0Nw=AكZx [j&.WIխǮ5RE
+f_#B:ƥ[àNhΙ ys!Mqe%Rie'UKd>)<Rܲ6a5rÈtb0BCȴ`ğdŻ90H
+<z3ؙ661EO%IJ׬+T Nj[Lt0 u 4y
+H;צ֣
+K
+
+ՁV@j)
+Z
+(\/p̴E eAYqamR/"`;lL hw"'~$5N-ߊn<S+[zǣGZM˟wַ^ɽyRܼ_mg#˸?5ćֶѸ#cЁ敟 4d@3'ǁfS'L_BG+q9-hϡ8Мc ;@=7f+лz >':
+Z&Nڌ^k߯=m.8Sk:P!*سt袶 $eTG[~;ٜr)/I`l
+|%/^zBi@W6*ʁr^z^J/'t*uOؐjnKJ 4񰸞D!d;'"\r·lpTrE(UCu) E9M&TmRPzO-Q3a
+3c zzp)9RyXR<
+(ɠ%?/=]=|r2 Lt(asy\H/xw6e4*1*p(,o/#
+DK16s2G=͑+1`8(M nu/5" (MNc"S}ʽT&"3
+v[;%95Xgx^b 69[ ?L;+fկ"9s0r@"fMFV}s Q3>.ـ-jW.:zNi9z*5ns ,sR9r@#|Ը? 'RQBGDXG9a.{C~mV}LЀ*&
+ȼu 'KY5_oZb4 ӉYn[׬kS}0#uuà^l 5t 
+k:ybq(fu:x{݄:;v80j*:HG|aAa| N16 8ŜT<.+Z WGW(LJU%9`"\m
+WS:(gqtϠp,B~'; 09I&l!\9Wz}`H)#.U"#ڞ֮#4F=F;h?
+Wky8@EߴB7Åb|q#ABtiQF2 17䤤wǁ77׉ul_UAث
+I{PSf+T^aqLYp+39@햠^%sNеM"{u9j<$F ;v0dXi z䡚I(<aTۀ}.!\c1#J 2M{8969#\u1eED^e6Ъkd5KYqD7eud=BĂRFJπ^R(i} nCs9EŦ]sL,¾+ӞK_hcL vzm)]K`2OVa]s]ZI0C
+gHS3׳4w=9, MA8Z~ P_EᚔQ)yK\&y?!;S7擸q'D ֠NY8j=%o?
+B
+vac+9p4, / (x[3eo
+V fߕ񫻑Ɗ$kFnu8O/G5cƟ| )^lin` &PgrMT{Ma&Q$y
+Bjx)j}UFS!\ep>a})0tun.Eq]ЇNcy4Zj&yY_3=r
endstream
endobj
475 0 obj
-<< /Type /Page /Contents 476 0 R /Resources 474 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 480 0 R >>
-endobj
-480 0 obj
-[ 472 0 R ]
-endobj
-472 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.788 109.87 417.762 122.041 ]/A << /S /GoTo /D (section.4) >> >>
+<< /Type /Page /Contents 476 0 R /Resources 474 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
endobj
477 0 obj
<< /D [ 475 0 R /XYZ 78.37 808.885 null ] >>
endobj
-65 0 obj
-<< /D [ 475 0 R /XYZ 79.37 546.329 null ] >>
+61 0 obj
+<< /D [ 475 0 R /XYZ 79.37 584.773 null ] >>
endobj
-69 0 obj
-<< /D [ 475 0 R /XYZ 79.37 254.904 null ] >>
+65 0 obj
+<< /D [ 475 0 R /XYZ 79.37 298.261 null ] >>
endobj
474 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F74 478 0 R /F69 402 0 R /F67 389 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F23 379 0 R /F20 382 0 R /F66 389 0 R /F74 478 0 R /F68 402 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-486 0 obj
-<< /Filter /FlateDecode /Length 5326 >>
-stream
-x=ɮ$7<ڇ KӀTuk=\f!K)"]ω9%"(J(R(]za?\]4hy? p'Pb4_.8OA=q:h703*wEZjkH髒*ho/`>{*MQ)=au;=UַkR
-jro͕S)}ZQd%ax-†=ؗLo߉^;L?poAi
-R%
-
-n3dr=hA6/Ԗ2պ×5%.9#xCvC=|EU*qiL'6kXLjL][OXϤh\HФĭH( r};6/$?OZM(
-MIϱFao?.THMBϚi$/iIXRָv8 hQa ήo>%
-O.0. " \QT&8ıQN :*Ӻ~O= 8
-yƜdu8;, @+г {Ɓ+"K-5qEeyUVN#˖zn? Oǂ`L˕>i#9=+`8P
-݂ˇ#_p~{R埗)ϿFym\aۮ$(<!*8257&ě\c5,gfL2
-őDdeguI<g4i/U;x͖3Iz;7_?x 9]jX=oۦ<
-^4鰓 Sy =ۮ pcϨQ^ZWF(;E2e3Q|}W{WJ;]kKA]_JYī$
-&{ZԂ;jqm$-fڪ*@~ePk~e%/}P6=_3z4er([G!p$y8밶=
-ޒ8bgb}5'樏EH[rNٝ@ȝWoA ҉Ω+ԷKk/2P}/uITN8k&ttseTff2Mrݱ[KXˆK^*_lu+ݚK%HkhU-zy4ݞG"_6)du3i%pz{[uXj]xIXoy&6J'0p(7H7<WMScr$SRڛ=9o[.xkn$[ QՖ5ojrZ_'\䥹`c|Wlߦ i\yy bD?@9{;.oe%z;.2_<Ⱥ(j~mvj-.NLRE|RnyϏJ`;qIjyo7ۺ yX};8฀I>!¥y,Znyh .9V>egv?A#פxPa)px/V*N/Q?7U;99
-(z{
-Y"`t Lvk?)ovR#ɣsݠ;ԅv@_Elgܤ\B8Xvu؇!?:%;̒ QQeKYܱ*nnQD9ܱl+G"w sZoЇ(bP _;t8q痏=Ɲ_>; 1ܡǙnp˸Ziђ7T[]RNڛ]{g}"!P S.SRi)Iisl.jl O:mÊj]9>hb$@ =p#+g#M8 9.3Wt MD$X3<#UY*%èfQcLǞ ǧ6kJ L(hTC
-9¤
-PHVjɇh.C6;2$B~5:ZǕ-ER?
-"|L:%T?aiq=Xh"k:3cnbz:۷K1<q--pt[Nsu,Yrz4Ƕ@Ks 1x†NP@6߸_y5L ]?:]f4pP`™#S܉)
-rd>H}}|N;h(|Ў<-x7.|K.f
-8r$K y 5 6yJ XKyo)OO_6l<vp9LJBgAz)06cd)T=|șQQtۙlc+gmʶ>gl+͌{3gZXYOגWrh
-q,o-# ?y rLykP}:dtt8i/UoWY <~Jʝ8Nqʨړ7nԗȕl%t'TsJr RܪY峋w2I1AܨK? ՚sR<Z(ܫHX&H[%2pfאՇXYUx|J-+rb+^O[/N|!jL^'Zڻo%$r-A#WHrlW)Y??]ue[U0É?|
--i/ 3EZ
-g
-sMQ: ]ϗ7
-fݛ/}>j-*J4;E0QO{meF&̶$ŖoO
-:~MlF"7Aۂ+$,0ie:L)tǕicUԷ -*E{KBmg%륪%nur3$Ac{ǝCw4rH2if7aT55%|} ڍKeV;Q%͂VGtV߾E'pɶ!)H]߿ԨBIeG(?NY gU
+487 0 obj
+<< /Filter /FlateDecode /Length 4771 >>
+stream
+xnd}Mw@pN-)e~Kq{|[k9H~XdkcHˏ~nB_<|".3i/ƍ|rRp^\|'Cy@yz66<OU·?+Wl)c(ϟ@QZ0|6[\0yN2ScoU`-=˟"?el o9%>"wss frSB2!̈́s {3M=O %=?J OIz"9Q3 I)(9eu:asFx}>ghy"/9LSڑq^ $p-wdT娎2
+~E<Pk7Q^=qP7؅a,\(6J^5;HL"]Z",ʩ442ZO<\g]؀M8D݌.-y./"q1<RO4V-To50O+jNaF||na2i9Y<Ui*PRf.ryqݺ
+j6O\m)C¤2c9
+_rAEd 4rK=5KA'V6S 0KLA;cza4ʏGYbĔ w̆9뀗f2Amy/'A#
+-'7-fܘ5q< nme}#bɖnj@9Z+\X
+!1rK#ַݚev"zKfg:qkz ubf3ʚė`+Dm,wHÄt~Exbu8bC%<,Fb!U&0mit8^Ё
+pѥT~ʬpm!%lWTW"ZѨʧdѶ0oƹc[Qa
+i1*f|+Vrl߸}+pk
+bψs۸pl&6۸,
+waxL3fpizZ@ N{Dq>xh_8Aò%lmeAڎg`mWVX_ VnszW'6FW7Xԁ)mzMkO=n%lN-K2a<Xw=gJ:./Fdhq>}r&ߗ?$c%zwCo$(Lo裡8ġXӄ#o҇oJ?A0ܧnx2-,̙MvM0,rѮ ,_ +h1ZwrnRaK)i%2pCQ?h? 1}FScCND{K`$S=aEfFmߐ F0 (7D>9܈-TS9D-(KJ@4KwTG6Ll$.
+ڤ XۦBB~dė )zbB:ygls驘qK=#̙۵n)5m:#_%PsyepCL6*vJO)S9'j1G7ǢʮqW
+;G\N'‹6M.?=h-K<ʏ_9DItð ب1zW:$# Mzݪ"[KzfCZ6DN=BN(p y!2ۙ-9 ~%qz{c?r/za|"> 5c [f!6H@*ꌲ8J7
+ _ *Z^lߥGgLwdۇV$
+p|^k=kkYѸk.
+. z'.Bq?3T]pVV%2'$߶
+8 ƀ]2
+/
+EFK.qJ]e̜*QB\x:(|H0 \_nXH;:|,MF2#pTyunZZN ʬTpun[d}sU¥J{p_60Շ( 1㄃wy6qƝmӌ{.߆;͸yRqw Ic{(:3+pIӿD/aUT<Hոdͥ˼Ys_x"́tsR*?p$VVvp :~
+Bryf6μm !Ewݩ0?T8MaA &}۾D xSޒ(i xs\Gx?=+;k1r;$]T,z)ǩጦvj+:ТɀpBb9r_ۨvqF "+Uq 젉E؊CG ^ZRK:IOa)^(͍Yi,%=SV"`;MtöE GL.#/cݲZ^S  ^~Z=;**K3Np;LZ9(2&p(GDoBz9/}f@ʯ0;41idD<s)oIz ա+&4{LZTU=\g鈿o;kԵnEn~j-+/Ink3X~ɛJ2$izUEQLci:!Pf"=,Y&|[HhzZvt7]lԄcM7r Q
+WIͬ~o7^ rv72cnጃŭWp,x':5JR
endstream
endobj
-485 0 obj
-<< /Type /Page /Contents 486 0 R /Resources 484 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 489 0 R >>
+486 0 obj
+<< /Type /Page /Contents 487 0 R /Resources 485 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 490 0 R >>
endobj
-489 0 obj
-[ 473 0 R 481 0 R 482 0 R 483 0 R ]
+490 0 obj
+[ 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R ]
endobj
-473 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.75 746.177 224.705 757.126 ]/A << /S /GoTo /D (section.10) >> >>
+480 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.788 564.156 417.762 576.328 ]/A << /S /GoTo /D (section.4) >> >>
endobj
481 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.112 730.786 432.068 741.735 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.75 538.529 224.705 549.478 ]/A << /S /GoTo /D (section.10) >> >>
endobj
482 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.126 715.277 319.081 726.345 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.112 523.138 432.068 534.087 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
483 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 492.084 664.14 504.039 676.395 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.126 507.629 319.081 518.697 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-487 0 obj
-<< /D [ 485 0 R /XYZ 78.37 808.885 null ] >>
+484 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 492.084 456.492 504.039 468.747 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-73 0 obj
-<< /D [ 485 0 R /XYZ 79.37 529.966 null ] >>
+488 0 obj
+<< /D [ 486 0 R /XYZ 78.37 808.885 null ] >>
endobj
-77 0 obj
-<< /D [ 485 0 R /XYZ 79.37 241.685 null ] >>
+69 0 obj
+<< /D [ 486 0 R /XYZ 79.37 711.741 null ] >>
endobj
-484 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 387 0 R /F58 386 0 R /F67 389 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
+73 0 obj
+<< /D [ 486 0 R /XYZ 79.37 319.827 null ] >>
endobj
-498 0 obj
-<< /Filter /FlateDecode /Length 6100 >>
-stream
-x]KWq}(@RO =wZƗgYɬj*+"H~ F ~⧯ƿO$c2sqOP}=ENyDX0tLY3>mވτ*w~SԷ,4Y (/œVZ}J_ ?r΍%J~jI~d֛mC;&<B2nr${\{PtUtI=:IKx\L#3FO0 O&ŗ7꒠R2}G+H B{hHl`f*P5^./[BjYr1#
-unP6/cYύ۪ ô7Ϲ񎲹a1pTq2adyޤSʫS{=ǯX
-~JoY7T%Rҁ
-sdn]Mw1?s{Tk`>ZZ!&-K_jT#_řB63ћBaz#
-vB,Z
-:q]kL9D,LVcS1ZNyR*@^m69)WXlKLFs 8(ƭF}FlVv
-wur$D%CKliA RyEy١ Rw:зԇѻijCe/,b:_(;elm>=|:*EX6 8JjB%+[pZX猯uU
-I1hKel,]Yx :%Wnp uk7OkZays)3E nQFO$f#4^0 >PLp@We,4!E#/E
-'ZwrC!H 忠.Z^r8bZ8;y1>mȢJ5پP)
-j+&s,iW @kyVw<0|^ὺ5no'US0;m07aOrIP'A0!tΟ}rgn<WܟaJ37a 3 Z6n<ȗA1ǘ记MG(Xylۄ7-^3x~7,/m'_5Y*1L*p~>%?hvJ܃@
-&[Kw }K 'E$ o@D(P3
-`ƺݎ^ u578F~C-r9Hq4.7GMx!>Q0a\x&/ .!*Lc1:0(hƁg<oMU, ݬeykgN҉tUf-]tM[9 Mc00<ài w hX W>i5y,=X`{iP>2<0Ui FĠ:9 O``xn'4A) 0(>eṝŧLc000)Y'PNh
-Sf1 aP|4s;9 O``xn'4A) 0(>eV'腯aY -pxbP1aP 4Ó.g@;PONĿOį,;$f
-Kf1|u>z4O|Hds;_2gK1aP|4s;) /`dxqmo[L;k{'s/tmŔNc00ܸ:?cqY*fS
-z&߈g5P#?˧Bf<^Ï {<V`"|)  =A<6l>ucu?ˇ'l3!^uS<f`<'OHmH# \Vc|Tq\ph&_=7oJPsΜSt Ϭ;f{݊9%YύwQ+>ȇQTsrŒ=ؑrYwCu[Y|ι[-Üy|y|i4qgcDaÔpLr Ҡ27N'%5dc-KoLvy)R׷ MKr7C..=Ep4Ӣ2d%lo cPӷ;yv)TcTw*|A]]M^5yw˅қz3AWc:OFZ˜6SIg@A)K?l^_kKh) kظ-9MF..IpgIblnΫQT/Վ&(G-lX$֦v{E7V[Ⱥz7.[\|[hǂn]&HmԩK ՙ\Zn2p,ekviT4,Opf};7=KaCKK%R+m+Sxz$w(p
-!^k@ea1E]f\82}0U_oh#Vͬ@[p9<Dž` ΰEcMYZdS+ٗ41^*ύ="f/W.қE3Uƶ`y.WnҺE*rnQ% CkL"/b˷gW*{.۵z]
-endstream
+485 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F68 402 0 R /F66 389 0 R /F58 386 0 R /F64 387 0 R /F29 375 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R /F71 439 0 R /F33 489 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-497 0 obj
-<< /Type /Page /Contents 498 0 R /Resources 496 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 500 0 R >>
+499 0 obj
+<< /Filter /FlateDecode /Length 6167 >>
+stream
+x]K$7rP41J=-`}ݹ`kW:2g(fUК̈ 1A2ˉ~|חzXן_<'qr)wrV0n믧r¹J;kʾq.~'|/OǻJ^ҝ˧~#lZRC=qkJQYz(d9/amȲsH~I(RT>NuOgȏeb*HBsn+ ໐)L)96Tjm.Z r)}3bE+SfuEսPb`E=ԁ nk[Pt֔9<YWG.2?5j8IzT
+
+( =M5+ -:]S0WtT=Oƫ-KO .w oyi(k :YD_kߜuUR0RcURRg]+{ YU ɢa8ui͐%wO:!]\g&!򟛣
+ƜC+mQe
+iFo9>TngF[f%Lҟx_DZF/{v/pXJPcop`k[@ɪ𺯽 N_Az6 ۖ8<.xc#UP~l I>aӯ/S$P^T<ҝ:M3
+L8$/6z1y}wCl\k@f@
+5-{9J:;Af+ER1X}ŠT7 $ΌՐ:Xzzv8^*u<;)cS!=
+$385bq?0C̖,mf\"~~~,"i0)VqgVɊ?~K/ocU1v;!klA"%7c -̳tHPj ,>Iғ4(Oƾi
+jó`+7 ]I ڝ<BiL^W-VoRF,6)QI{b"LG@&DgԣC3&b*<<|gl"56IH߷a~Vy7~”CNB>
+nfkUK cr̃ wh֙cJi@2
+(~L>-Ɗy AЁȭ>7Fp j| &0noh pF)iW~)Uo+#3e\" >
+4 T
+XSC.7K(D0^x1}aXm5 ܍<(
+6́w*n:X[fX|SpV Lf=zQRLɍgJƕ^+W >̆ItVZeD7 
+,'0 I-Rq%)bʑ3O7 WSnދ)LZԕ$#/T`"]) cxLYj4%;q/$saƷқEPd7حQ0sۨ0v
+rutIf%{s;ma#p^2Ŗ6yY{@F;=ubw/q 
+(-,cb/52 x[ׄLYQD?ٷnNw.tr<D:y;iA綣<9)/  ՗5kZ.*X.e؛[w v= Ɓ?%G_͐il}I2ql_+o
+(u Zԥ'~͇jrv\>/%|ETMv2:_%um#4^_Lzʄ8\s^R7R) ֝?2ݚJz|[^f<a8S9T<t{]?erYNh]?7*C-t/1dc]/ʘqioc~hW<^TxwcrEa*yhM,CduL~&̣|̔_kڏ܄y%{ 5,`ިLxGP
+:sP|&̃|VgD_ (Cis"03eVԞM7[u%oߘ7K<y[݋y/5ԋ?#f, $f ]w$CYWD
+Oc9 \;SgphM
+q#ֺMBM"!㉡Y 2<#ˏ:5=}|,14Ĺ=~[-*#ADEi FxaP4S{9GFn4@q( 0(eVn@=p(S{&=աb02<à8i @sd2@OhP!aP4{۶_~ #s?k~3maP4S99FMoŌ$rH:t8G%~cL<u~ 3t#po|캽]G1ϘM|6$e@|`PKm)`
+7x_y>ʦ=S2Pprx]H-Yʹ_!S[e?`0bC"]=7/c8;)VU_s̙)esdV*~ +ά;FyP`V<W1LI"k%SZT*B6+T^lYf0K q8/m6W㉷VmL|l!i^?p"0R.[HʨШ\?8&Ep-Z`܍zQMPdtޑۏ(.u:4--#!JәPV#J}ze%߮m_VX%Zt Kߪz{(wYVfT\Fgj3#&_
+<:@yHk s/d1~|XOa)'ǂÙ"{bm6JL6 \j^=!zƕ'5J4_"3I,rL1ӯu돚)&ѨiZ=`˲r՟w2r5q3]
+endstream
endobj
-500 0 obj
-[ 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R ]
+498 0 obj
+<< /Type /Page /Contents 499 0 R /Resources 497 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 501 0 R >>
endobj
-490 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.217 679.377 387.923 690.326 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+501 0 obj
+[ 491 0 R 492 0 R 493 0 R 494 0 R ]
endobj
491 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.644 679.377 415.599 690.326 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.217 424.232 387.923 435.18 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
492 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 266.008 637.534 277.963 648.373 ]/A << /S /GoTo /D (subsection.18.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.644 424.232 415.599 435.18 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
493 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.956 86.169 284.413 97.626 ]/A << /S /GoTo /D (subsection.17.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 266.008 382.388 277.963 393.228 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
494 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.51 77.998 514.551 88.162 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.956 70.405 284.413 81.862 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-495 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 67.24 98.706 78.697 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+500 0 obj
+<< /D [ 498 0 R /XYZ 78.37 808.885 null ] >>
endobj
-499 0 obj
-<< /D [ 497 0 R /XYZ 78.37 808.885 null ] >>
+77 0 obj
+<< /D [ 498 0 R /XYZ 79.37 637.576 null ] >>
endobj
81 0 obj
-<< /D [ 497 0 R /XYZ 79.37 618.598 null ] >>
+<< /D [ 498 0 R /XYZ 79.37 363.452 null ] >>
endobj
-496 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F56 384 0 R /F55 383 0 R /F67 389 0 R /F57 385 0 R /F58 386 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+497 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F23 379 0 R /F20 382 0 R /F66 389 0 R /F16 367 0 R /F55 383 0 R /F57 385 0 R /F58 386 0 R /F26 404 0 R /F40 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-505 0 obj
-<< /Filter /FlateDecode /Length 5319 >>
-stream
-x]K\WԲ€շYt{`
-z_yGHQ7i}n[jCc]Y&>!Ϯoc8s: Ħ}bm&]D]r۲T%r=+W2f9@QM02kTJÌ֔V܎Ōc{)jQZa}`-W!0}^1'Ue]qi/kZ*r&k/:t`gV\>Dj00/o>^j9 'rm/(Oߟ~$FIZ<'A*GAapj [J
-pt2< N@YK̺ocq1GNԅX= m'8~y ezWѧ
-yy/SV]۶iFS^~I(-MLc/uyFKR rF>}w$mMl
-V -zk[.xl*Z
-7'kz)C%s p
-
-@Z%s)~.gS{$=D"GNvEfin`Z?sR7cTLc-462J~8G?39>lqXz<cYUE{>-VRikuɅ;5ߌ3!a
-I݉& ģ_Azc'̈i35Ӧ=BSdsMYg1W-aL&/ 3PDos
-(9)T
-8 |_H;TX lP
--N* O*`78{?
-(>-~E{a@׳
->-~ŕ DŴ2y_RϻwVucH:0qfnťx~Pqf?O?PT7n#1B)]%ԯ8ޏ5ZidN-~u ࡊƜ2y{`Kg;|.О8ӃkNHL-Q|L]Q|2#}je lRTx1
-myYO!N`֟d֒c Ɣ~R׹h-3?bg[hK\S?.P?5vqmihV1_1+1]y߲;ʃRXd Aǘ1 1OcFק1Oly}nc!b,j C08NL,1LLy2R2Xk]MR*O:Ŧ>~,f<řOZf9!/*õf|0c~Q•0slnSk5<Z,:?Ë 0 T7ش
-5!('e#5t=fh̺CA $+!L%Bw87Pב
-WP[iISӊ\(j" 67-eF?R?[^<IsIJ}{D|ְ~@.wzrzVZqvi
-Yyr821#E ћ!ǂ+AݑPVG'WBC-47*ZMGm{<iLv9ar{Ե~T<t
-`Xx5()~T:5] Xbߺ[-Y
-G{[gFI?'gY)H r[&T>.WM$)mɮwgRrgghHCnΗB`){/ ~G5KgXկ+>Unw y`tD)hS?Kc&OY;ӝ9&TOܺkY q:9ɐ7 OzzޭXMg׮ߕ_pER|w1Ӄn03f7<=[Ru?“r|''hIs{Ol9rjPcY-hiڬ% 2$ X/fu3݀u":[ɄQ 7 r~z[}zRL?i:|(0LZ0)W
-
-\FD4nWltNX̆"߷6‚94-O?V
+506 0 obj
+<< /Filter /FlateDecode /Length 5552 >>
+stream
+x]IP4_0> aFO~{ / KnYY# 3 &߅^~x_84/O @/bb4#T˧_.zG@~}OUH_͟-^y(qAki K 1V\>
+ܚ 쿸k0m?\4<`/O/uI!U~*W39~]VJ_1BGiHؐzϿ\ZQVppv`bv%K'2`xd#
+x#vY@$`P8%e0p҉7=4`_NȠkcqs 3g:m462eitk̟7!11`P8uCb
+;1x 614I#0jvo(M>#o7xknij6ރ)1Hx SbP yIAc0({ a4¹ yIAc0({ a4·5(A
+%iT͟x a4¹ yIAc0({ a4¹ yIAc0({ a4ۯAǞ'2 Ig`91Νq䄊`Pxs?pQ/90b_}`6NxE^OnϢbZz;]^”!̱l"9ͦ[U??-0"9B[{ngkYFNz6:R¹A+Fq/A:37Z=3Ѱ{Qj{gG1bZuGEb"o;^`Nת;؆UBItҼ2d5GޡE Y>/+M NmjM JM{ V95)
+/O1 $Da<K#/ǽct4`WY.W1'3rq耇јI  38Naxw[.12<:#`|zw)8Wy\9˯pW[3 _i8;ul{Sg. Nɺ`[lUndL*TM +ﯡ%wSaED:txo.E
+n(TL }TST VJ9^l/[*k卢%H(f+%Q\IO6mk?gT5G)ꄢ#Zwj[rb+|dj -D닣\@ޕ2ci憭!dЬ%YM4dAK S;T'38RǠjW؜[mnͦ-Loh
+ZE׽^nZUPvqvWyGuljaMUǍ}^Lf&VYARG*s-ѡJ%jV`puoQWmjI(#nCqpK6TyݖϸJIOlA>c<,I.Sy;
+;Vz‰V'N;J-46$i|کϛvp,C fYDiA"=ZmGAI;8rAG3
+DsLHd0(HFvdG;w|VH
+oG!V
+C,HfYbg~* DYY牲(:*HvRL Gg]")stzlsypz_voڞo[_l}~o=% 絰@r{na\nC]G.v@)؎/w|`|/z5fGeURl<Y:<fSǻB<0$ݹwlNxt~?ED;nJ
+}N({SY9q6o&yϕcQ8a?WEy3fvz]]͎
+xN%v I hlgW/'(8
+v?#0*,
+u*>!]Da*O`
+(ɉcCge^;aucZH\ݸ4p^$K-M扎N^coMQ=W<سKaUhK8',Q=az2Q=#'Y
+l,c5vCđ
endstream
endobj
-504 0 obj
-<< /Type /Page /Contents 505 0 R /Resources 503 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 507 0 R >>
-endobj
-507 0 obj
-[ 501 0 R 502 0 R ]
+505 0 obj
+<< /Type /Page /Contents 506 0 R /Resources 504 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 508 0 R >>
endobj
-501 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.415 625.868 324.37 637.823 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+508 0 obj
+[ 502 0 R 503 0 R 495 0 R 496 0 R ]
endobj
502 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 279.848 613.913 291.804 625.868 ]/A << /S /GoTo /D (subsection.12.4) >> >>
-endobj
-506 0 obj
-<< /D [ 504 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-85 0 obj
-<< /D [ 504 0 R /XYZ 79.37 601.029 null ] >>
-endobj
-89 0 obj
-<< /D [ 504 0 R /XYZ 79.37 436.2 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.415 385.417 324.37 397.372 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
503 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F19 379 0 R /F67 389 0 R /F55 383 0 R /F65 387 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 279.848 373.462 291.804 385.417 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-510 0 obj
-<< /Filter /FlateDecode /Length 4149 >>
-stream
-x\I7̡ h <-)3!q2HTk;C("OD/,|/ z|I#gV,?-?<q!^mRKD05מsKzsutV6_qy?X"8SڟY~~WH{hjdjSWrntz^ٹ'-Jw~jjЪ3Ja >KU@)Ԟ[.nUְod~'r*|,3W+ c Zc%4oXuSt5:0mm5R o6UF U%\\?1D??su
-YFL%1"Bq݊2xr+꩝y% Ң:j!Qk"e/QV(
-*$u*0=Oo.?)pÔZHBZK1
-6@P RNOè-3Ɗ+72L괅/Fih+[.I-?5HP6Yq/YJYmN>B}lhï`_7,S0x;KjTk><)&uaV{hڶ12":[B!L+?5:r`͡,Y[Ҳȩ|<>rs+ <2ʔlJ-$!ܩ V֐6h1B|vn*ÙdmZ?{*C)&r;m(,TծE4 ްRj_ZaV0T|ŻIM j R8V_${N'Uy&kRu}>p@*CraLtaLt]6 p+AtkꅬtuϺdHRI<*E+]ԙk!S.wF 31YCU|@-N:I1|ʹth
-ҳF_Ys,R4801"c ~ő= :ܣ>vC1*x{ֺ(yblVJoX%RBB"c<~ .SEߖ!@ f,@%;lz̥3|ڔ|υ:R OTSl+/i&ݓBhDݫ'I  ǂ{/}WF:Lo#{OX{م+`F2wz|T}ey:keކH#WU˄* @YPOR $Y+z{NUU܁2T!$emcZ_`Ac";-L>l} 2moQіϊ eE#ǏW
-ܳ+U( ,Dek%!D5.6QNɪb +yRB9eC5HA^*e\uQK~T%ؽ:Ge X)Z:%
-9?Ĩu0
- 2u]=FAb!F])T4&ZžvP 0-ӈ6Í8crT$N;*T׷
-Ƭﳴ ۥc)]u||;,m6Rĩ.e|NLJs[5%Y1S{4咠|w֊;qhQL-*iשWn3Ezz+Z)#S)${u]&LsƩO
- (%ҤpH}`thVƹ9ᜆ0~D?hü 痜4^%9&΢
-^;z5F12 ݒPxȏ"%"DsaaAH&4n
-e
-ȼѲuB0aίh J~y48N ᰃuLwIc+oTU{ -OJPR靍m3 =xq0Jk焑{a4jS}+ys
-@,ԥ"loY
-'!n]>ƒ3fu4DŅ\<fO2Ų^t(`iCb\ڛG ʧJ>ac>i&cZEOlϖ (~P28JExl=33fY_:4PN{*x6,[ e5Tr [~ނl\|o.[O[ziy ątOp\/!!|x9@Pq~Lb5d6ϓv\yKvrʗJ
-\>͍k9J{UHU}: gf-驺~MCԉK.mZ5vTv,p{ ={J;AҜ2*Cy5t7qL=8_05\" W+"#FU!$4[ PsՆ̙
-endstream
+495 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.51 77.995 514.551 88.159 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-509 0 obj
-<< /Type /Page /Contents 510 0 R /Resources 508 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
+496 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 67.237 98.706 78.695 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-511 0 obj
-<< /D [ 509 0 R /XYZ 78.37 808.885 null ] >>
+507 0 obj
+<< /D [ 505 0 R /XYZ 78.37 808.885 null ] >>
endobj
-508 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F55 383 0 R /F57 385 0 R /F66 388 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+85 0 obj
+<< /D [ 505 0 R /XYZ 79.37 360.503 null ] >>
endobj
-515 0 obj
-<< /Filter /FlateDecode /Length 5989 >>
-stream
-x]M$7!5
-r 0{joO, x/DRDdFVu{ ]UL{(JPj.h_?h 
-⥨m`@I_hlJ\~zIkៅߟvڀ,g |,ۏ?mM(#Sg㾶KjR[uk _n/?;_ ʔpT-S*HwMnu+{ٯLes_[-U
-J5ߗg^voL.<{i_ ʄc(J?_B[uدӶlo mNIt&1(o7@tԺ4!6no̍$mjeP{y-*/}ȃ%½„BH4vFT({_$I՗X`jAEXmBZKǴ|6g5uԦoiqiFX~pɗY}oPjCwb]>×;sfb9]*pW S OKԀ6Y}(:7:iO{RR*~YipQN`@ۈpکY"H}!bGgB$-#›;HQ7i;G^&R2(6\a2TU%1^?<,#lް}s8W
-4LŷӠ\(g!y;s⽣ƷQsSsS!K5
-hwO`!l10iRo8ГsKl~W/3uZfj]mdC5JG<s'BTSG!RjܜW!Cd6Fj􀨕s;
-H2_yNt9'bC"/qwB} nw&y8؜wc
-ww+zLG:˜ ݚg=nqio0
-Z;K*AZz]?{/N%Xo$y LC[ɮגnE] nĠ]&+]g|T`yc!BpIޯk^dk@z:qY\j3OS9Sbgƫl"m&Vzf Wp!2^ l0xS }#'pqO0 cXߏX(!Iq ,4O\MϷS(Ua)e2;.o %e0>4%N#|rH4.*QXӃ`]g~9y/|i^1B)Żg\u(}.n=yIDwGS3 O-o-u:R0gk5;ZJ|Ļ7=lUwԴ b;8_zv/
-VƇ׹>9'on~l@EFt~ӞCˣp}WCӗ1>~٢8AƳqkW8˶q9%t7#sPq q:%r/~ޏgl[lPNo>783ohѤy4жBwsPQ; ;bXwCmS'FvVߒmMl>
-^#>ke}s<ZxȧP_̴D*rӺ䳃uW1ZO=唉b)?T+{;N<N{v/yEJ)t%OEl=e˃|\tmzVt]/M|#є
-‹1XL) ,y҂ K,at;!U&i R: sYuGB^CJ"`tIt Q.Ojt.#
-`s|G>H6Z }b8i # pV'1_ 0!T`a8$tdcY`^V2˲Kw|<\+,FoJl  ]F,GC&++2bgĦb-[w$-1 b R<[XHO7er '%24:EN 7hh#}%푐ȢQ
- Jr+?'S$r$$ dh$P"
-`hh gll*▙A-Dy^cWe9H\n,D@B@xoW7mM6Nuzlpθƶp\*ʁ\b)b\LC rY1bUeFƚW$VݙDvo)\
-1Z YgpBX"!!!KvT82}ILv2ѻciP~
-D2g=[VZQˀ%E"R5G
-)|Ӧo6^3nfǭ
-ʕ~S_+‡0?z/xkZTz1$З^Kx>_ MPO Rvā6H^e'Y6Y#;-mWPN/WʻZKv$9ƕ=\}M7 J\mޞvzږ}<~*+&_bz =~^x<pSqk`T׎>doC؅^0o 7wp;}@ػ̗!6]#ܐ_@|)Mm9jaZ:W ݛEܜ7qmS൉xu |MXXPo
+504 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F23 379 0 R /F66 389 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+512 0 obj
+<< /Filter /FlateDecode /Length 5005 >>
+stream
+x]K$P@g
+gn=ӡ6eǿ7ˌԬcy͌UQdV5g[Y3uXZSqKJY˄9'
+Yw0LS40 D~mɜbI_b'NyY!9RGز@ DH@ 9`pg eze
+,'_*ǯkh|r^!fr7H}֗q
+YqMʡim_Zo_a{<X5Zesspc^><w{{S̻:8f\AV]zrɗZdь pue_ZuSC&Ҍ5&B^Uڮh %PPcVcJ|%wba~RcNsz*CkIID˚]Zr=
+"bM(3!l\0'^oHSbP0 Z-&G32͖i'LÏ%%j)Gf
+Yrl ZD`꜌*&=#,QT'7|eJ(`IJ-W[)$(WRh;X'
+ꨘIi dɗ.nS뒥W|*T+cbJ3?Kt aZ[ìX5DeO *:[ |{3y1Wu)Q1N]
++B5J#w' rj4yUi=g+nJ۝ 9)4ͤ*
+H|-Vћ"aɼd}[0Ր= Y4'ߴX|VCqRM/OXǂJFm30 Xo>q9X.
+rƝr$w$nX0L` C8ΊbW\̬G9JQ{1
+ƙu'~`V%)i^?JKg.9?s^(< g.H#n16= ]JN+Uw'梆 Cgn~+~zP/^\=%ks2k釾5c6BG
+4m\LyA$f%AZ]i)!Ta鎒`J]VG݅
+λk*!v}Fk[v+3KuYmm9c"'+J/C/eӱ"T
+"lQ!5Seͬ,FSTY0G!\l`>"b}0XS?XÅLOo WLA>4>N WzL(8Hj0'D $brtOĈi(*bșrG>_ˆɕ5k2ܑM_yՕkr'ַ}
+gsUE=6:[;@.אh T@]'\--,n#"Y~Zه3>$xQZT[ כ;W
+sqݾHZh7J
+<x'{1r}jk&w9f`{qmsoً0`Oj\˓xw30 zE/n
+Oa;kGt*^27RqxnAE(w}g^4d9}"ñeeu-m:unkc#hw7E뛤mٯWTL+W #JG6uc7"L֠ws.A`j=kb@ 끱f 3- 쪸
+o2߶;7
+R&Fk~<R<O ?Po~ރ
+^޴>I
+2E)kj|;j5
+ؖSQ@yT qBlmd4Z6T!Ebx"A)]0WxL:~E LoU=JʗL\ű$p7f
+z6I%k hw#)qͮlpL騇Ɣ LKRd|~vHQY"˺^1ktd7J#5ԡfxrY6kGP 0ɠv5"@oXɌ^TkY詽69Q(9KO;/([ڹ|dsښxML}АK>Kϰшҽѧ̣4({H4ɚ9xϑ I 埈Sn/e8>UnG",EQS*b'eFZ2-@`xp56= ïWLC&>t.7v~
+⤴J6߉ fVr\X
+4_ . \M@ZțSIHoolPyMWp}9.p׃;G\IbdKs
+͒ByGwf `3|ݳ^o#EUƴT -VGOH1j~]T×%UE+;v{W3%jzd8!w`z{DطN }R4~& q;PLLҘ%*]"lQ+l+ՋKGQ ̛^BDa**F,Ukt
endstream
endobj
+511 0 obj
+<< /Type /Page /Contents 512 0 R /Resources 510 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 514 0 R >>
+endobj
514 0 obj
-<< /Type /Page /Contents 515 0 R /Resources 513 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 517 0 R >>
+[ 509 0 R ]
endobj
-517 0 obj
-[ 512 0 R ]
+509 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 495.888 623.985 507.843 635.94 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-512 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.738 432.711 150.693 444.666 ]/A << /S /GoTo /D (section.10) >> >>
+513 0 obj
+<< /D [ 511 0 R /XYZ 78.37 808.885 null ] >>
endobj
-516 0 obj
-<< /D [ 514 0 R /XYZ 78.37 808.885 null ] >>
+89 0 obj
+<< /D [ 511 0 R /XYZ 79.37 611.026 null ] >>
endobj
-513 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F55 383 0 R /F58 386 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+510 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F23 379 0 R /F55 383 0 R /F66 389 0 R /F64 387 0 R /F58 386 0 R /F57 385 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-521 0 obj
-<< /Filter /FlateDecode /Length 4839 >>
-stream
-x=ˎ$9n<z`}o=洿oA""#jsLEŗ򏋼$U7/I$| yQ%!\WªH-)^y)<_똾V)x>Ì/-8 ->G'Mk+\3i_ޘD˄n(mYt[}+l9"= ¦+z7`'LqHWN8y-cw++#\LT Q}7/b%p i
-`MNm1fB3.k|Q.#Nsn ?'
-U٤p.Ȥ!r>("g0!y}Ƀ $M!BGh 9">&We.
-˨
-& DႡp_e`*jLcY^WGha-βٖ^)լJJiL:<fTll38Q40yd ]$1.|R";4kU#pol4 NjZ(Ƶ7!d0AP/lkWN<[2P?PԫgCgs˭ Q>} H] W,*RS"9†tj-2R#75z8b}2m!b?ڛXBz0/:6Ryi*uo AJ8uuNl*Ȍ*qn8  y/X=(9៙UMAP</2/:d&#
-'TOY1g8(X$_qyl]#ikcϾ=B"r'MAʎͭ:Kh<móDe `X$8#S_ tU'FR.GH`/;17hN2{yG/<$ >>qTx~{P^P
-o1B 'pF)RNMՕK)HU "t;\Wi ,am@l5!:DnюkC^nw:VEzs=Bλ\AkfwkwMv* dПw暿hDok9 /Csr/hFRM݃·`n!Lm<9-UOғq#%:1'FCW/,Lli[ħIvMK͘8w,v줵
-BG5Mr{D[GƤJOxkNV*CE}1);/>SJfw(tZS90Rk긩JBr6 ~]xv%^BK\tg05ĜMRﲩicV1by4\GXS]҈\K5#Ff ju}mn
-uF2L;}mI5w Bl-єBkUl{g+d +ڧ8} rJu H^G
-֥q⎥b]gIWvhV(L(N7nذY>\DOS8kll^)I3jT%9*+vp4|`
-#;JzTc1F/X}xpXn(g<C"2^sط=y>ֶW03c^cbdhuoNs#솳37zUbRq`LWhi$mhF~{l\ۻ-#Mu/4>jC*zSD豪)["5N_j1&_5DšlӍΘǟ[^=U~9v6Y\5h uI3y[;-)e©%_[RYkGϮ7RNؓ
-cњ8QG]ѝk&&Dn3c,?~fTy5c{fZ.B˾Ag{긏]8^'K LFӇC'+bvHŨj nxSZޥw#VUsFk_BnKfPұgNo_F{tcnU]RBu5
-L:@ ?+h&̂3”$$nhF؋6']J8'8qYI~0| }3hdMTgg,/uh$W'x<0j+-6UXrkiDm1ZhKa,]DoLsqeKr^,fzB t-}E4>춆whRhX& l*asv@AKgK*"pi+
-B3A:#gPۛp=aga^; g&]zuԀE K 6G}ﺻU"(Pziبblf('L.b|6r{ֲdj9ӺBNxT@d~\/c!:4ͫlМv[Gn$_CcѨy+Byu<c=Qu,|QOd4t|A]۷s5!V&:{N+0af
-9ۡH[j4FnhʱY~5_q⋾R
-Q`&b)4J)) |= cqu-IvN%@LcƢ)ۋA6J1μssx뤅PHv
+517 0 obj
+<< /Filter /FlateDecode /Length 3418 >>
+stream
+x\nW C߀`@cy $+%Y^{8/v+BuOY<$U%S"/?^}Vn.?ܥ,
+>}0b*6}:@)r?S><-| }W(#3RQyO~#%jQLOV;5VK뇆^lQiv>E[lׄ$ީؾ*0C\X¨ZLkdm䇥q8χ
+XH2wpgAWeAfYElgߞg@ɦK~ZDΤ[k~}5]K85
+gI4IqDۄ'/ -Mt5tYS7|8ywB_'A:~<geI,jQzϤtZHrW\q%K$u][e' ԏ߿N0E)(p M!KaOqv« j=L+0p|yX>A10t
+-s 9
+עAX"<CTWgo?IF$ aҞ#W4&(؃% -ڡ:F ,!^
+<[YBTf22XvQZ{s7{ǿĮvYX K@S41BZt|lvUJVyB Nɔ|HT.ޣ(C>J!𰚧nʾ-yy6bD[EëiY[8$HRC9T<q! 7Gt )Ǟ\FYLQxDL.'b) & %ɓF#ҴYoٵ[;r/N2~2J]-B̝=^7m_pRVӑ_;aMTUtfk/7hdkJ&D&NS
+lm;١j̬vbzE"[knqD^vЀCZG1 ?}EiawGZ_w8^܋A?󭪊5K~<ySQai{NӲUx
+&&(1=ZWNj#n&gF2ez◥{ЯUGkҏ._=Z]!P͚Y
+$f|"-p+ZYUCU)iW} 1.,!\fQR7M|]wGƕHHi-NFOw|.y@9!pv
+x>V𓛁(^\+Nl)
+8 _^n.3Cp|5<:2$J#bBY{$ cv
+/9<(E .6n\
+`*ox Gg|ug#X0
+Nf7bc3?ދ4zYWV(-c2\Մxd)~ ՍoE8vN㧥ypQ8&f5~#骝^*ISbpW/$g"N2~׹/
+MGFeZy]yR ͪ*å@rzڢw)7V՜w^y]C(pt_?[W
endstream
endobj
-520 0 obj
-<< /Type /Page /Contents 521 0 R /Resources 519 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
+516 0 obj
+<< /Type /Page /Contents 517 0 R /Resources 515 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
endobj
-522 0 obj
-<< /D [ 520 0 R /XYZ 78.37 808.885 null ] >>
+518 0 obj
+<< /D [ 516 0 R /XYZ 78.37 808.885 null ] >>
endobj
-93 0 obj
-<< /D [ 520 0 R /XYZ 79.37 675.694 null ] >>
+515 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F55 383 0 R /F65 388 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-97 0 obj
-<< /D [ 520 0 R /XYZ 79.37 638.301 null ] >>
+522 0 obj
+<< /Filter /FlateDecode /Length 6913 >>
+stream
+x]M$7!c4` <]` x/DRDdFdu \,{(JP__[Ȟ~.ywE_r^TЗQ𬔃yQʚƿ ?J)VϧF蟪e[fZGϊԿgjqѾc5&Zª}i\ 회_tTdȦK؊T90>#M<Gv.QE}_@/ /w?_/q8/״ؐ{W
+msE/]
+h24htn:7й*%uS!bיa4~쒣;JOD#zHDf,Je$/Ѥ 1mQ~
+bGF!הf!Z-^@Υ{ò`wNF^)мv&0~>%'bioGB׎é%A8GSS.S93o4@5O|T͉ngZ"Z-#ꤽ'˱ e4a=O|ؗO&}᭡) ̜0O&'Ps'N6rSOqsx(PacI&g
+is
+ӥI4̦Ž_> K9Ehʣӗߤ
+ ˇ^]%p,X%KoUMpubVw'f33zM-4,|?ň'?[ [k"z u5ҹK/_o{tz|HpT2VՒ^K..~IKyfJIPBUTЗ_G{{8%+qټڡ ?&z'efmb_v(_B=SAF%+Q$yo" jemСeJ'dAQŬX7m'WrnHJJ_*RyA]MKƎ`1ϼ$[u [rj > IxݶJD] Pq~n.8MHF~DTV6w[#lgY\gy*Wbr+4Z^pMk<xܙ~fL8nv4ZC<UwԴ-\wr
+uҍ:_z)t[8b!RH.Iɭ1LTo&> RT/vHKk{cn4[E{F3 Ʊ|6X@ [N a٧I[KCO؈Vf:ͮ#|w 1Vܟ(y@1W9ZU` &=7WdHt<9ϊ.gElZ~A6-`o?Q%cIi3A9y6y2'tv3Эy rTgVrX)oxfM%5N [(\r'q!sJaQs}xKj{uQN+iU
+*)mvY/_
+;Knevvl^՟aqfi{*Qb(Ût8CBLvpM-6Cjc$kFYHlyX@Y&Jȉ)[絉E" yMWDC{ ֥
+PwG=<o{qVF.v}נjt>Ľ!qnQlP>nd÷0 BnJ@sU:Af6fd6QAbtdzJ@+ov6=Ap/o4mr7+[,S>[t'fĽ pct>-χHe_' pO覣Nǰ?#[1I0L~l~kk`@F/6dײ/:όoVo d˳7' `GEE*Jj B0g{^\ u<{𩬮|PVJe![NXQ۳HU'B)I{<՝^P ?xbH|?Y{_"L@vIM xKWE?*XAM}wO`ptyqỌ&Ea)ý(- {<iK^"1M[O@z {UƝJ~p7m]:h*I]#?Y ӏ>Ň7aeתNڕI쨾&[} XoQH}dF;n'+
+JPfGH:!,dlar}J5
+ }>qûx7.Na2czƤ
+j QZ|U+|0ɣ>;vn{.|>ٮ{RwnZ})s7.{b+9n[F/ItUZ=
+ܺ,L4:ģaiwA~a~ݫ0{
+/|^foSw2̾yఔc
+so0
+GN,|zɉ7{Q%IFN
+I00ҵdiF8ѱ Q#Pbʖ"$ؐZT%Tc)ަ7B lt,'66Źd,` 6`ԡ1 lH
+SZ"Ip` l\!FokdޓD&vH!u0 RDg ',H*ZQ/x2,q&Z`.2:CAZN*FIL\2*GHJk,Վ@Tچ!
+ZLu,zY[f/d')EkdfHϠ`I f0(uhHhJdq{fIh] j}Ƞ~w륤=o,
+endstream
endobj
-101 0 obj
-<< /D [ 520 0 R /XYZ 79.37 340.527 null ] >>
+521 0 obj
+<< /Type /Page /Contents 522 0 R /Resources 520 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 524 0 R >>
+endobj
+524 0 obj
+[ 519 0 R ]
endobj
519 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F69 402 0 R /F15 381 0 R /F55 383 0 R /F66 388 0 R /F58 386 0 R /F74 478 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.738 553.535 150.693 565.49 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-530 0 obj
-<< /Filter /FlateDecode /Length 4986 >>
-stream
-x]K$ׯ!e@S O3'c^`|_Ro)Aۇ쮌(")R|z߽284r0ьP͖_?>ST)$|7JT~6|ojy 1p5%<RO2<RnijSAJ &$|^BͩB5m2p;lҵMMm(+Wo =lN@hveĵ&*&d*KG} Vs%k"\qo H.GmGfr;.@vq=+AgۣJ+ztawOhsV^BX06
-Nm |* F_R-zciC^lW%-)|PC}x Q-^(,9=A;+>yl?/'s
-bSRH/ÌTRJ.i@8ȂԝS3bK^0*ٯrb׭9*ule<h3d_irq4tP%w-s?
-sXe_.t=2]r^+LN뜀e}d~eS)H4pK{NPיjIiwSeys[䪕^ RZ/_6VKhUoV B''T3JsЫ"pV}"g Szs4L1
-8 VZ>WV1Y y|}YCq8SDݕ&HsT`ө\D zT5%G㦣 q\v^orciZ2HV W| q!,l'Qu1*YCn mӮ=ZFZ/<‰fܷ+H$w83Z웋g(Q>xQ>hxk
-4&E.@i0AbequԠ\3>T-񅫲?u d]]pɆIw},]+VAO򏥫. РfR]
--'y:0 s.q\ 
-ggc yCdR` sPQ$BA|V'O,Yrh(H-&°%-1ÿw5lE}0hun6;{&y. s2qK_mR[" "HI@3N-B6+
-n!y!θs
-AtbYǢ䣉Qy
-~B'_~\)x 7ɗ/O.O+ <㷇8)1$3!TG<f-1A!i1ojWkT){ME
-HoA8s 2mL^OzG/nLSt.J?ijyVuxxzDw<L;nyo,](FS 586c3w`GX;q3FБx aes[嘪
-l@Q&MF.:  to 9o ܷ$FBmo m
-ËJ-H(,.*6p<_ =_8x
-)94Ghx4SϜy'cgK'
-<")h:=̣;ΝD}#H'H1-sI'/ !T>› wF'E_Jgꪟ&AZ1\ & (х+M<V?<c^I+%1Lڝ/C 1u؁MO<[8.sm3FfpƨԴɕE/5dL/@a=(5ڈW4<%dNZu.?0;sGD|CozƂ3; A'o`~Ŝ? }CF?7~IuH3*8vG_&)z.7$`ܝݔ{݂q|rfxB9LumA;(/)/UD;젨ӎ7%90yܶ#8ME~#@{>œ$V\} },f
-7Pry˨=,zcNBLv
-Jf1m% &iRpP#<b3gaX*x 'dqtUA(,_da ͖mԋh'qJpQADTGtQ$pcT)$X|T!e "]-=QiaѹMhAhb>SVlx(;}]2 Dg 8'D3X^xmg+AM8z\gC; 1plx[Z
-ut;޺*1)VbU?W"(m~-1;h5-zf,$ag\~42( 1PGv& mkgWWU;3ZJh9:4@*M"?4N15a<ݢjj4Mvn|Tv`>?N }O3ڒrWjlS~bcD%f JI/X^d:x )-\M6¼`G%~؜ݟR=r>A4BB([ޏd*y&HܣQ|W'/q 퉿I.xðQ! Qc
-Sxg .VYSp^6Z
-w=I$_R$(ߔX]07MΠmN(q,,nAI:Y0+$Y!?ijr/Jmw0R:ߍ oߐ>k<b׾Z\VጏһRRWbʒM!GA[5+dꎮ_a-(}cՊ8|(ٿ?15t_"F/hz`Du]jSpT[u_-W~}Uh|x_!@[
-M
-Q'w۲i:Sm޷d#S>q; )@X?H|
-endstream
+523 0 obj
+<< /D [ 521 0 R /XYZ 78.37 808.885 null ] >>
endobj
-529 0 obj
-<< /Type /Page /Contents 530 0 R /Resources 528 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 532 0 R >>
+520 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F55 383 0 R /F58 386 0 R /F29 375 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-532 0 obj
-[ 523 0 R 524 0 R 525 0 R 526 0 R 518 0 R ]
+531 0 obj
+<< /Filter /FlateDecode /Length 4243 >>
+stream
+xڵ\ˮ=n)F u & f5AY%RUu'cwWI,ȏjyd~Ӆa yS77o
+SjvDkס9Fٯ{_AcxΥz4:6V960+qHs:g;UOiz#E:1{J6Ӵ3f=ms4)jخ;/ /inZ+/tP|6FCUrĝUtqma4n2<y5ebbg1\`HX9Ф~z埮<kM'Z(>3}Jqꖢ${e5uѲR?gS=ճw"Mv4ӳ_#~9!kO)K,] 55Z|%kb~<Z/W&5]9:tINGfM]uREY/TB
+<R#hJ$*g3.6o
+< G5;Jy<W6ôΖ(HN +0'*Ah ɶ{z`:58>F4Ge6~
+W,b^{lS=!Е@DN{
+6[%xqwv )^-=rzoЀW MM3+],YXB E~Qt-hV@2bKF
+K],Q][w*@GG&<@2whR(ZwG_D\<##r#Ng-w@@K8%PG@FqV&,}n+|b3^猈'sKIMrzv Ψ]ww)-lGzb ]c49ǐˡlf(%
+&Q{S>MNk)Rɗ8-)b?1N煇'phdOٿpp}Ip',<E  7KE0O|
+C<K 1Ƽf .b[U 8 sNrgpZHpiVG5%Ի Si8s׀ /W=]M8;ץ01pR?maаr`għ9!EWDfb|뢕fs+pZ SX@R[nuƍVFLT0WS os,Ĝ^sRtQIPБ<y6K<S f+$nLӞ{Nb5<i VR%g@\ E^SjDޗ˯ZߋEhcȃhRZF˗}p$i{J*Ac_L0s"MSaq2:lYbG
+X2 {_Z~/.2voO3&KR?ʯ8_țO^4CeEJ&Ju_Hnq?opTi]e_j<#Sϸ9AG1PjP$T]=>Hs:14Uw p?KML80W;7w:R/F`*dD.KI6ǘ
+endstream
endobj
-523 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 291.425 694.371 303.38 705.32 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+530 0 obj
+<< /Type /Page /Contents 531 0 R /Resources 529 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 533 0 R >>
endobj
-524 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.426 677.873 514.132 689.828 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+533 0 obj
+[ 526 0 R 525 0 R ]
+endobj
+526 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 291.425 138.851 303.38 149.799 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
525 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 665.918 101.955 677.873 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.993 77.082 318.45 88.539 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-526 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.42 272.601 366.375 284.556 ]/A << /S /GoTo /D (section.9) >> >>
+532 0 obj
+<< /D [ 530 0 R /XYZ 78.37 808.885 null ] >>
endobj
-518 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.993 84.779 318.45 96.236 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+93 0 obj
+<< /D [ 530 0 R /XYZ 79.37 771.024 null ] >>
endobj
-531 0 obj
-<< /D [ 529 0 R /XYZ 78.37 808.885 null ] >>
+97 0 obj
+<< /D [ 530 0 R /XYZ 79.37 734.627 null ] >>
endobj
-528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F74 478 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R /F66 388 0 R >> /ProcSet [ /PDF /Text ] >>
+101 0 obj
+<< /D [ 530 0 R /XYZ 79.37 436.853 null ] >>
endobj
-536 0 obj
-<< /Filter /FlateDecode /Length 4763 >>
-stream
-x]ˎWh9^ 1ߝEF
-}c`)V
-GgO>BC(K,W1d0vM.`lUi?: n^G)U/US}ekǞbMq|Z-bHzPvXCDv2\ζʷk^KhjaB #}ԃT9D֒ꙤЗ+v&lOwzhrq4OEѐ2Em8QK6
--av+v$
-~Y\NP̨
-J(ƞjWG5 qUCU_*R~</A䯓_*+f_*kI\w){3F
-~e? w"r3cA}X %,=8_3 (@\Nm.ki٨K淹N%d;V@],1Lе]>恮Jp
-l:9؈y ^)O%D}@A
-L
-U!u
-5b0X%'
-5`?X/s_:bXKO*:sEt9ZwSe)>
-\ A+h۳D%I{/W+&q@NBUJ!npsuTg_8%<:>lXgXVhΞK4a\i%["K()gKӥZ T`XjjE: auAY
-!͎*iI_ﮖL$5Ijp0(5I*ˋBǛdzř"
-͟o>')Ilp{*cP.&7PYnp,Wp\|у2n[VkljQ WofJMy= 6l~+<+j'S۴sjnmHPFKb.nl H}7_<^wrĺ.M
-ͯHITм5dL*-lŸ=dko!3bCSYQYQTh*5hl$[Ny]~+B`z\
-쥅d=g IrWYRžb1ma?U<V&U0ؕE0 @DʻTdB#L˰4y.YhYA^/y(C'> c9ٽDIy暌mn$7Gӝ<E<jXt֪Nk3~
-vE]2޵Z#Ug x֤Q˗TEUTưrXȮw XJWHU4rDZ-E;p4R[a2\=6$N׎fCrU[("Md!Cq0ϒnt\%qO<NHu]&c)nfX'K{2.Kϛ|(*&m[+pѮxq+aEMVDfUDVXar 2v1R5J=ˤ?LU&Oߑ>KfQngKV#rB\Bkm+Ntg f
-*|y9ʊ6qJ̮
-{w= +>0m GʥI{)|~*y*4fP.VJg/ozSS+t
-~".UEb{8`œڒZ>M9!'r`K^f鲎OKD̟7޶ yF.
-[Mu0U#M1Gbd'^Z&KZ'f /)mӲEvqE$vf+`Ofuկvwv7#R+Ә1ԯz Mb+i}gxdi%ZHqC2X%ӮVPZ>}-K[<KPN9|u`tr^-fi`AY's?@maygK-Ɛ_%I"em~9ү #nn9be9)b=<a0{}M;<h1U3립&6bf1=*]ooɷ'P\VyJavn@Qw4@NuLQ9Fmz5h@%zjASJ/O..=7G'͋ip M1W^UKcUN:\v ĔZ;J׊ ѤזPl=rOW͉F\sB;%D@tߣS{^ݵۓ LSZVj{a?ߌ[&APeIE[7J,"`+d@ ]waZ3Uz}\cksxB'$Mo _+z-B4nߓS,?9$4k@pj0
-t<9WŶq7EQoXQQbgi~;!$ۧzS‚I=&8CҷK),MPWamVTCݽ]\2XH]K}]0jOE[.Q/$LJA|͘u Vo{W)Y`޹Ժ:!wU:,Di _Y+of ×0ЦH
-̟映+ TnzRѝDW橖<:-gJRɽGlPsɩH\(^?I)Ժf}f2)W[z%溑Iv cBN4X)ʔC0
+529 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F65 388 0 R /F58 386 0 R /F74 478 0 R /F64 387 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+538 0 obj
+<< /Filter /FlateDecode /Length 4414 >>
+stream
+x]K$ ϯ}E0dzdzsZ{oONl$/!%Q%^Yc`3]U$%Q$%+ħw<|ˋ0S`J? x'1[1}4}|\Iέ|ך Fp/#gRS
+
+U~УbE4 tm)U3k<UF^ct<%58rZE9l(EES'{PRyIJ,fҹ:FKmu/VZe_l]-Rv34)4_`tr?JApH͙ PH_1pL|=
+c!~^2u0)gc"9N{CҮċM:zY-냥vLM(5|uiWJ{!RKݻ
+yj]J)*(F<´2hސ-U}Fe*٬2`9:uzu<xByо f_S Nyrly얗7kB)wV`l ͊Q<]\9P)-ZS./pT!Z4jܯLJ_}e.zfa6k!;ç;|`
+OsC+Τ֝@
+}i$,"tZk;Y JY\7hg3x$Rã^rSuN% K$*N0w-]LWƱ)/y7=)3x/Rړmd(y*UGsHjpE% Rbk,%Ed6rgYښRվSP/nXc5?(KSп
+ c̝ 3B2iU1WtJUCIV}D_b1]%{͒0W@Rf͍p 4­d=ujԧjsd4:rq^ 7>Oi,1m%kaZ] gEE:Q
+t`;p_BM`dML
+c]Kx`Yj}(>Fg?XHf_0^94 d&_Ll̒\fRe^<-ZS
+594Ixh/~O+bq )ɰj˽ojGNZ͝_.adBiO֜3q ˿rh_^*Y6v'}҇ivZ&N)^Kq-,afZYRAR!ft.g7CY%Az@"H|i%%r 㒫u5&̨8vH$0 B^H vn{8v_04
+`SSd0U5NS02 ^阮+^>.9beF3w O;70OC)Li/CL>c>({sgLim
+ n
+h9U<Pȉmkլ4sԇ't
+4 è
+ST[*zP4
+2y˦
+:^ @b؆`;tBi0ƝQB@uàҠttHNe\san:N'Z0Y2: ^nZVUow;:-
+2y]N9{(} .U[qfp9$'2sL?q\q*C* NZy\{\wKQ0I*HԽ5!q8;;03Ga!Mw}:;y ,R72˓ LfyH39©Rx_8;D,vM;.9[s#~A S*oƵ>M1'+?Ow^-UcFn,K=mR.Mrkvhܶm9ZM2CYi"'RBjjAz9U&֦v'߃xo
+jwA7߹XA1# x3x+r旮/s|ח}AYl-40K ֚ؑiֱWjJ
+sLy3vɹ>e]a>
+|XQ' bF{f;`!Q)^3RN2^3RL@3\U0#0&uQŻ WbFf3_3`,@1K<f1`^Gq̣,u
+8+c0Q< {<:x[0Ϡ
+2yCg `yQaJyT@
+au-gP̳AaPw5Pw5DyDyDyvQjYQ0FQ<RWEy,s Wj:ܭ(ou\*ϖ;*+mD}kN"-KI|(q{UdsچDA
+{Ά[qr}\mK㘝mṃJ\ e(-𼓻gKmկR*HE[!;9;w|{:Rr0_ޣwHޓVҞd<WuIN vA7/dNHȿt<W6X'qaǞw/@rd8. i9sW̽|'0y8l3wZ!g,;n/y$Ξ)-Ǽ(L(1*s4 9SBׄ
+_/RH @I$$u@34y=+{pU
+dagP]@p ڕN3㞉ヌSJ0J4 <}{!c!^VaL˸TG6^O{ͱZg9[6՞HY~Ҥr}K:/*whQnl;9$AZAw `;*x|?Xbtzjw ,?@ݠm_F~M)ajuB0#ac ~'<IwJW,f "4f-_3 $
endstream
endobj
-535 0 obj
-<< /Type /Page /Contents 536 0 R /Resources 534 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 538 0 R >>
+537 0 obj
+<< /Type /Page /Contents 538 0 R /Resources 536 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 540 0 R >>
endobj
-538 0 obj
-[ 527 0 R 533 0 R ]
+540 0 obj
+[ 527 0 R 528 0 R 534 0 R 535 0 R ]
endobj
527 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 477.218 757.574 489.173 769.529 ]/A << /S /GoTo /D (subsection.14.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.426 757.574 514.132 769.529 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-533 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 298.08 212.267 305.054 224.222 ]/A << /S /GoTo /D (section.4) >> >>
-endobj
-537 0 obj
-<< /D [ 535 0 R /XYZ 78.37 808.885 null ] >>
+528 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 745.619 101.955 757.574 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
534 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F65 387 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.42 319.633 366.375 331.588 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-542 0 obj
-<< /Filter /FlateDecode /Length 5028 >>
-stream
-x]KW8a`r]Urg7@fIzIU/hTHO:巅¿? =WGZ.~Ā.laTnb4#-߾/}K
-ϔJ_; 1<𽶔?z 42>)& -x>I}e]ITJ_7&ߖ& %i(P 4*r$F^
-KM~v6ڠ[|F}ԓ Ew)>k(S+ IkWlk_Yi+ds^tnn ʺ+mQ<ԗW@u>L-kAB"iMR ^BIJOڤfkdL[G|o/*EAgY͌! 4 Ck*z={{eZjEo?|LZY͔ )Dƞ,5P+ɈUo/J<;oӚvFF#Yj'ƕ&D8-(4'E;d,_ xj~Y{9xd=P>D /_=ץ
-rW_;m ȷ8s#wz7;Gswˇ~)AufR~䮘wsI(>JH*//̻򥅜^_[ʿ;|K|M ,*N D6 RCeйSā.9DK]rkn]82}K(a- s==zM9$ =d%W3"Ձ8Μ$UZc05I:5i *RfauÚ5H IIb|UDU01pp9̅8;8q|{00w
-©uHd)V[բK*ٸKr^vI0TN"#ľ; o%Iw>OjDwbuj:T@f2l~FSw;AD%M_Gղ?>6l(GVGa|70{meLz&gFd\/zc)VY՚uȖZ8Yb:ɩ;n*"%LJPu;PB$uH:ѩ+juU-Y!iT(OIvV'am7䳔(31D+>kG=1R'O]<RlE[4<RNV9ՂKn*j<+7q[ Cff&肫F@h-_RTS^,!%岵#4LTt0 $
-DjC-yo=m,/^Brex.Gyh+k'4,V0v8P~?"5 [rƺ2.6墙!..ٹR /aԔ8D m!|܀O1D}>bSuc:[0?P.YQxc8Qzrg=2c/ۂگɸY3g+N6E̴q6-pJ\0 J@6+p}avOVHȗ_O_5Du0T<sR9+2ыZ<>Qh~USjOBe=!R&=jܹQ7%ۭn)rJCdjd痷d7P[0Jy/ 7DMj5N0rSw7u Tb=bFcyrt%Y5֮RSIg&JhD FRqI4gw1k36_/5ɹ;oWA&x1 Yښ#hMn.!6EԒpkMGKzJpa\%L
-{*ɤ̎`1!te0)|dH|XҌޢ0Na,aMwcoqtilo஘W^FQj+]FEyWUi ¼+YEwO:"&bޕ3 EyWPYvQ~aޕ/a%ECgl<g?)Ӹy?$C\IW$BD3C4Q9E&u%_ ; AnNs~qWB&Q
-TGO<Q_;,ەi'PֹI;H]˩KWt߹UPwK&n(Δeq/}W(Ͱn"yeǰ|LV==R
-6ƌMJ8fH"n_ ̂9VB`]0 ~0`_qxS@|h8Erf\M\%3&at5$6NŸad#_X;ׄ6ƇYdv:y6J56!7@^rz J} xP #̍౷/_i*.[ӳ{
-6h]ƟZ}epݸtk^ Cp4QV5WVLW0qp3m"sdz8µ($Q2&Oۣp}8?e6-hsZ.Cu0e~#4t1۟o?3TmsU~ل|Kwڕ -c>^Rk켺Ϸ*R EzqGl]7ʺFvMD9T:/r}
-z /ke푈-52ķbedLJF<|R6”&ҮF\#p(yr:9O@<7ؔ=EHKM<&f)[3Cdhڼ/x`)X_?}mF?܁^)ᑒSwp
-*M*%"hP_ x=-&VXaFj ӃMO&=iyRN{\u
-H~4R1q
-Ξ o*Dh!'0=+]
-WEyW^k |cayyWÙ=&0&bS? @~m)Rp}_ \P[[ d&iIuc
-W31 !$ f&dQX7%_$nJkUΜrm5Qq[. Z+ dpx5c<
-Lt̆դ^ҸMD'\jk](ll _$l^xI7t59]5vEf/QگKMkZyPyi{6\Fn-2,nlC
-ݼ-M&uzj6=8#8`OS#JQ*E
-ڌ'pHZɫ_ qO
-%yo~7ؤlPꩂ
-a5u=wS^Cfsʬ2
-
-endstream
+535 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 477.218 146.944 489.173 158.899 ]/A << /S /GoTo /D (subsection.14.4) >> >>
endobj
-541 0 obj
-<< /Type /Page /Contents 542 0 R /Resources 540 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 544 0 R >>
+539 0 obj
+<< /D [ 537 0 R /XYZ 78.37 808.885 null ] >>
endobj
-544 0 obj
-[ 539 0 R ]
+536 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F74 478 0 R /F58 386 0 R /F23 379 0 R /F29 375 0 R /F20 382 0 R /F26 404 0 R /F40 391 0 R /F65 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-539 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.916 111.883 155.373 123.34 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+544 0 obj
+<< /Filter /FlateDecode /Length 4667 >>
+stream
+x]Ɏ$Wuh4蚞 ƚ%Kmwp n1+FAC/"#Lj E_':}@O__qk9}tbuD1ly2vyços{̨$ܘ6Rݓ
+^ A%ʯ
+%o?|z(3H& 1VL?}~oHaN<XZA3ÈqpIW#'ekr.b$9S+x"Xb{ kheF4F.%-g%D06ksvQ
+,}6JԬG_%O+4(@h -k$ü Z4~dJB?EG>bT5д.F)iFmHzudX01؞b"}qկY(3gPTmc2kh }t0R[z %z_mXJQ1@.{zx% _h\,2Q(ь_m
+"pHȂۊ9H)
+zb=Iw@i5/m&iׄlb\d%u.uzԫG;;a7qI3Ѓn *~3@Y59m'/L>)W4 ]OOCۏSߺj/`)| uԺjg0XܟPSq'ǭRMOe$4\6٥t7]. þIzi&XCxvM:6t`umK[xSЛo?~rtXn76H(SaQ^tΓDK2eFB]`">ApXO6橮jLq
+k8 C
+$}75q 0HI+%V%U-o=d<0F,Uo0q3`5Y,t?W 7 d> 烐
+fĞc@(W
+ 0XvAA%$:
+ 7Qd/8r"TXJlz`r@sf5f0Y9`5d0YF p7#j
+U63(HF2۴sf>fm,fbcs26 ZN>y6B ,ս.MDrùz gzMojΈK %2[LxHAZ'Ueh}›M?fZg=s9OB*wN>Mj?[ghLl1rDF\Qb^GH؊I]H7%`
+#}l6-]s0F?h~CF-I ;m>g L7d )L([9|@
+ \7ڤpiriq 6EeZ7f2l'JX1VLiY1ff3; <VȢջl3
+mo<[Cnmp>EQ_ދRb]vSgl}34 ,װX<Rwnl,] ,p^rs6Dr¸Cike=:GFak#fC\Bs;*8MR|9Sce -
+3ʶ] /VQ:pEPa8>-Wb(S.?}/Roݟ.9 Hז: h6(۵cu(3=|;}Hתv G{_[Bmt?j_nZM<O(,T\vC@œ^?D@ҵ ܩ0˭[h7]G=v(2k좭mB#V p
+On<׎UʙBݨt3x5oY?A+
+5ysD$vZOO9c4n& qRK
+endstream
endobj
543 0 obj
-<< /D [ 541 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 544 0 R /Resources 542 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 546 0 R >>
endobj
-540 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+546 0 obj
+[ 541 0 R ]
endobj
-548 0 obj
-<< /Filter /FlateDecode /Length 5243 >>
-stream
-x]I#9ڗ@Nf"'JRmY75~.gfIrR̙|?W|mݾ~͛V_
-eB[Z,x,kl(6 v/^u'LߡXKÌs3Vy80fY8;mmѲbۍ<e?4k5̪>o.ƕYW S{b;1>9ǜThͨfy9;VaⴱTrОQ̋{hQڠA6Mf $d޷5#<6{cA6YĞ++ܰd3
-+=U!{iTZo58nY..ӿ/ KV/53F]VA.Z >,ڿC5%j7UPLY N)GFyվ?jԽퟔW{ǤR^`"7鏗t9?ߗF)4 Ca=6pny/qXl3# .Ji|-NjŴ
-R<8^K1_*=Wl8ck<^,io#u;_"iHtQ >Y^"Z ?vN{HnY_̍. 5[ŎMV`%fi(M(XK !R}sSGV3i8]K1 }8Ӡ w
-7E7g00X:1aCB#}| *aA(]/d}}
-p;r(uzZ<a~jwK|NC6wd Y=`
-"CPmAa
-)Gx6?B
-t/C0,!cP j6F``M">bෞhΘd  fAkv
->S3#CE=O';~N XlTAy死灎_<)=H=(h!=aSY2I.ٰ3YaW'ڃ©ÎFQ!V!8S0("p%' \A`P GBƥfgZLSO]ގ
-N<40*gJ<4 0`P8uAy p.u YLi.5&=^iy̡m )wgJc$}'~TK<Ͷ{,5cF?Qx.@^@q cok(һ©+ ,=*
- ,d7~jCJĠ`$ePqhh<DSʣ֞aT OTh8`YĨplx:M͍‘H7-AQqޟ
-4*g4 `P8w=auyɠtzL¡nz;!}Y4>ULġQ?GM%Fs?bF
-ј%ݑ5 {՗T.~PIު<]UH6,5pwMGD]*7νbg]ɷ6Io߳fSk{78':)ѵs; ނ$Ml,1)z)pi-7/c+9\V84 | /Q~vE-ud6VCjސ&:VPdP,EZHR1'8=F0A\7p
-ʾN|X@pCByTIFxm%OI-Z&I2m&u(a#ҦJhZJ)mZ+i“Z>J1L;ɦ 눠8`qR#oyM׼ ZՠZ A(]k`6Kku-[̾VYT5q?Iz;/Fww;/slwVN)OwkxL?T ěCbކGD3 X.tvj횏ܡ2H };TTN*z
-_\wVSdܡG@qBc«;THϤ2/;4CD#;
- .}졍{o#t׸C0Uq6kܡEcwwh*`&C5Pɡ)Z(qG'w;C:,xo^t|.[Dlwbg
-;r[n JzKTqM=5d*y'bP ÿ3MSCpoN @]*^3|wA0اb3>9y"E|`>'OĠKzoUba2d_ޣ']O 3T&6n4
-0I,AIZ.h.adiÎA uNvD 8 3/6q
-O֒x+1$&G3ij
- #d7Nxh`!C0(y#aTxb@&6ϛ|i`.! $UΔ|i`.%pK
-<i2QkcB=^LW
-4 ~@!j]lC-/Zq8Q+"~FSqK ©@#bP5bTx>ZDO'Q듨I$j}>ZQֆ`44ϤZZ 9\KbLKK ^i̦+{nYrq4QY _(+\"<3pBpo遖 QܕJӳ14UҘ jlO။@Z/$)4+jVdsyk6LEo)Fm<І|"
-&v="=Lgٖ̊55>o!k&kzȮH)|b
+541 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 298.08 231.144 305.054 243.1 ]/A << /S /GoTo /D (section.4) >> >>
+endobj
+545 0 obj
+<< /D [ 543 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+542 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F23 379 0 R /F51 380 0 R /F57 385 0 R /F64 387 0 R /F58 386 0 R /F40 391 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+550 0 obj
+<< /Filter /FlateDecode /Length 5032 >>
+stream
+x]K7ϯ?Њ``Ȟf"&H.K]T5!IJ")>(Qox {݋ғ#Ns-Ͽ>0 3͈d/ӿ))-@Fg wYP
+I݇?tD*9GJ_7&|%
+.M"KҴ?OIQ:;Q0I'L5mA2' |VT:eL!2@39i ] ~z}e%ssuQֵ\Ith⡾_ts\wgͼl^ ʈIkZhJR"x&4[ f:M{T)bDx
+:6Їjf 1\L8L`1cMg]6멥VhVCK˧PښU/L bxO&2dZIFz3} V≈ށִ50љvb\iB$ߧϹ@91OI"~?LpVMM;_'Y77m1ſ/_<4 2FZ -#wBig ufLzX[ZC0
+4+MKIySPAW9'0oʗ_M =#~M ,X,^ QHoTLqBpD()Ҳ _ܩښTF'{~
+a>{!!AaO7э8g렪3l<Pj@Wuh0x
+B 7Ũµ()Ҍ
+,\ J>*.^,;D
+ >{D|T<>=tZ*GLBS8|S bj\Oe/ 5芔1/W+/.ɭvKʨܷ%!bBU_^=붻Z^ݤHl6nP^7@l*i{#ĦR8/#69݈M`DQԃPwDH" CdJ{M%w1qu;Nl.y@7gx\1\3xj ڔn-?.mكNSŒUS`wń=F\l9@SR
+u嘻bgÐ]1o}~cN/̛-'QN/̛1¼%_zW̛ͨ'MAS'MΝ_Kv>gӟM?itHNQPvҠm~ȃt'gtE)ͤ$81̟K4䲨+a >1>DnJqHp F)L(չC=:Ե?qF{^}ghMA̲)='XV(֘l(ٽʉrv0
+:qS牺0}~qӃqwq&,/fw_4O1ɱ97Lߨ7"|z7zք&x5g7HrF sot6~1~}5QT6>R׹I:ԕ.ŞKahJEM1H6
+*U Ԑs%E (
+6"'xHH,N^]j%ip3OQkŒyĒ*kuxj8BnI?9raS%޶Q_a J H(/4
+ZkIrƁ»XW<Tό+Rf!ayrX`a[Я"W0q- 'b3 gµ($Q2&ۣp6N9-!~2??_zϗ4`|I*v8RC_exBz&w>5c>؅u9L6sY%u]+*f‹E]U,#j‡I#..mXh HSSi(C+&RFVIsHdĵg/Zt<6|>FFVI@:A@ ܸo|a)9{6Bx*M8͔[7
+](c3xtU퐺I*SUuиF]iW~ 1!?Rc!%~JK.KkvK6KknCZ3I5y5~h&7n#VYCSXzV&8ZP zSxꟐOqQ9\@ dJUû)k%gK7u$WyCkWl8+SRQg磢c ^*qGg&qo"%s/"n峐sld>REq|#ֹ{z+%,hH`.EHW2,!.ʨpȱd{Ra%J)q[slO0xpqOd4콪>U| `z$=?o$pPx]|#/\o|H`x!Bm|L$1M1|%/̛5(ĺ)p^{aޔo=IwS:۠I~@m)Rp t
+D+Kx4OW$:H1VJp")Q ƙYB HrvH2[PBPr7,b7-TlEE>~%_mCأyJeWj s?n`If~Ҭ,:REp'3"y>VΚ5[QCHd jȾ`ɠMBϩg./Y 'sF
+&`S0|]X$'ل,"'{樅5ZV" ʚ 7PH7NpD@S}1/gz+<s8af&Qy+a‡;Ara]l 窜9WѫZ\`dguʝr|3Tu>V[G8iE,Gwi$S˛..|LteVm/>m]xI6tqE.lo,`/ڒf>JTu Q~{Voefg=RfjwK_EWxb+O~܇פv?<39wYķf6,&8t0բTwR7:\1l&0/3]KSgMM3@Ά/xe#6O[TXj `34JnHVKA`B
+ \(js5{5ԕmQe]ȹf90 {>'95HJޚCOUd+'ڕ)ByX^0`RRnٗ8Z)9i[\Zev 2"HB$F0
endstream
endobj
+549 0 obj
+<< /Type /Page /Contents 550 0 R /Resources 548 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 553 0 R >>
+endobj
+553 0 obj
+[ 547 0 R ]
+endobj
547 0 obj
-<< /Type /Page /Contents 548 0 R /Resources 546 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 551 0 R >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.916 104.411 155.373 115.868 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
551 0 obj
-[ 545 0 R ]
+<< /D [ 549 0 R /XYZ 78.37 808.885 null ] >>
endobj
-545 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.027 345.178 272.982 357.133 ]/A << /S /GoTo /D (section.9) >> >>
+548 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-549 0 obj
-<< /D [ 547 0 R /XYZ 78.37 808.885 null ] >>
+557 0 obj
+<< /Filter /FlateDecode /Length 4998 >>
+stream
+x]I云ȣ}H4r xNӷl<2\CwV*#BXHQę?~{w/ VZ}/ML:wsV0-n?~WΥs%>3|~sIނAK7DY?OFwgι2A7\!5_$$ߺQmmԖ &*c[-oˌdmw^&9͌]ӄ/+gq'gLߡXKÌs'Qjp'p;`.뗝dda_|Pl[lxn~(33aOVsMxsv1̺W=_@ ^sR5X9JjSA{F1/JDrѢA MimHT,I:op&Y]dd%iR<={ A>"
+JZc &/_%iplm0ںGcƨ*Ϥњ`c/I[ה(WA1e-7 }nW[Ʉ'WUN3϶*s_WppUy;
+7?n>c:ϿF94̔FCł m2p}뭄b̈́09*Ti7̦ǃٴLK)jZfo#eÞi!5N3[fwŴ"u;?}fA4. ZJ:ހ̟xKKtN{HN!HY fFpnNbj00_@%Q,PI28rqC(TU@2 á>iP!&cpdqޜi`d730xV` u`XuPq5b7&8JA&v>
+?xׂ0
+6^MVC(P8TqypAڍ`,<ڍh4ֈZy6+7uRJvǬg;ZWӨܵG(@Fyw ( ,^&ig( kW0"wPyd5]䄁ٱbE.]ەҚIrR <k- iwiiaf"$+X;`"t;=])}ٓٓm<w$n~+XBc9t5@t+cb"0 jZtAa\_6_8M|da1*!XC
+oU|4  Ayʠ4
+ +Ԑ.M
+-0JS^yM&̦gW9UUwxG
+#%&%Y@a*}٢T32jdm24j oh~>W6/g0&D bc*[fctWю,+ؒeCHZVB6UpPUׂTWTzOe*Uiabn08U9{D
+^|i;Oaիz[.?Imf2,}H>=gO\ג
+G0}%-Jn#!bR+4I!2EgI#[Y$,,$ӳsmsąpטLoBLGPҢc +*RM2z;n+&㛹D̑R*e$[Jn]g8"mZ.؋rѶ<E룔˻9:;ɪ K8`qMR#+¼٦kބ]jP %lz-5
+T*Ρ]À?J+[I@5 ǒuCk<5DEC [x,pz'aQaj r-o^( "^k^ B:&Dr3(DWL0 ٷ1+qF^m8Da6aҬ(q
+#h!*,$r!*\$KHD5Q:cmXD%f)ڍ''' ZEWp;L q\njz[Dλg1rv[ q| ˒oI.L*,ɤ2O SCpgd}R4P|D`=x5"Y|`D&x[d]Ro'B@%e='oWyj/] $Sd41٧d!~Ddm (M&em_h!<%B
+HY?`.SFi2)kcAG
+ L"d/uh`!#0(\ 'pNS3ԴdɄuS.?J/l)INiw̙mWz'XBK{/~R01{񓄫
+ d/LF ϼB Hh8!FKqB QʻD891
+' W?5 Z4p1ZL
+endstream
endobj
-546 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F16 382 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+556 0 obj
+<< /Type /Page /Contents 557 0 R /Resources 555 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 559 0 R >>
+endobj
+559 0 obj
+[ 554 0 R ]
+endobj
+554 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.027 334.008 272.982 345.963 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+558 0 obj
+<< /D [ 556 0 R /XYZ 78.37 808.885 null ] >>
endobj
555 0 obj
-<< /Filter /FlateDecode /Length 5069 >>
-stream
-x]KWG x $+%Y%k[gfZFgU,~'ᷟn;^~3xw/ VZ};M\`ݜLۗoϹ8W~ko~J==s)FДKioV?}Ǘ?bѝ97%'e˥c?Jx)tuy" Һ<?X̉o3ӷ1g`}o,0#[eC|#yrŌalPI}ȑ fU7K6$&hB=/n#]A6qO,&&+<2#.'X瘓j:t6^Ud+@Y7&ÙTLNkQ|!&2C\Cn~eͰF1/zTu^;:Q!#Qi
-z@:^^7Z w(cAQEèP/gG`|=>3rE憅 :{3g]5> =Iqrwe'r ((Cq_Vn~ln#//LȊ7Ff!zOWvA}pr̛-Q1jo`eR8ʷXzyX/g) !QwޠDT\x=!3 y8d&<?9~u qsN1%pW) 5!+0Ԅx!6r gjB<:B_P⑿L;f^_P]PՃ1<Q&!HWH4!PV0ݏjB O1Tb.a) ZYb'ςw5,H#-ZGpһtt8p _gtA{lsԠ7}Đ8#ԹgUewˏ^SQD5PtU\( @KC 3! ㍌+s(f2`޺<K<{Hτߝfpn}Q\h
-*0qF=D$!Ψ8Ƹ"l4/K4=i|3itG0RC)V1(G #A|k֮dmA
- Vw!Ά};} O_Z4kQ.:Զ[]g.v3$
-8*SsO}[~ ;uMђ2}Ae %:6kEKU 743´.!6Еw;򋛗},w GU^y'성ؚk}A@ kͿAa(b$f7ap.Μ"˖X!P!<+c"eJ֛߲Cc"튞qR }T:#M]J2{<B>6mJ"ͱm]D$v250 v,陗e4eʧB:W)qS##}] ƒpohoFt(C8]-8iN}xRJϐ}8(SWU?_ {#)O\*}dʇ]T`C@(g` ރ<\VgJslm{[ qV""w!`nS<0 %o(gSP|Jv{qdܝi1ΔO.
-&EQm*xʯ}~前mkg:0|@KZTu]<YON<#u"+C-i89C?e{00+2|rUH%)cm +f)v`]Vm&
-)+ A)!JyK;K!ܦ_ x:!*[
-Ee" E MעIވ;>*>8r8]ZY"G*φi,#2ɇMZvp U`Npģӡ nƨ)Z7d/WȡtmW40棯 "Z%[
-m .huT?¨12E6{\m4~`pWl-SAQ o]|j[դ MÂ%3+u\PN&YF N1Ď1
-/YDgrQ!N
-՘"CRO =lmK,i.}RE~e_#Eg$}J7RȁiwYM'
-0τtP硨%QKg7U-1'Oo{9*4*$3}QG^Qcf:i6ČmBGU^T}j_c,RP+ֲ828Unjs?D$VE\as
-Tݪ{>ϊGԲ0|_4APOQ;Tut ^:)UQ_q EKxUd7A4QmړɲYzDǛ
-&{R ܎{r~/Ǎg Q_oWn+wq_glF^,KЮ~p\oeZ{( oeBR_]y?S}_k#Ao=XIZrE2K 0 S^2yFҳ)T;1Q\jw&FybT{V:Ыc{
-M(ߧ>rzxۮ(v,<O҈z4"߀"-x
- aG5F6v#lI5=CP޿;9T~2ȩ?
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F20 382 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+563 0 obj
+<< /Filter /FlateDecode /Length 5477 >>
+stream
+x]K$ϯthb0zZ} ݕ
+Y=}H/F_0T ZB#w J
+[QDU48.~|'t">CfB  6+}gT!x07\"EaV(Q1OM" |;ÔY/{q|[x&b j6Pq`mӼMݻ|}%\Vi]EGOfc'oO TA>$hanMY{aiRs`f_o[l ,߷ '$Q[0GcϷM:KNހ/I瑾's*ܛt/;/B_{} B^|M:fb'/I]<g:ïwD̛u;H4! PV~O3P@c AwIRk##Il5E)|w@'8݄_:
+oUpp5> wQAcD4?M>d^w݀*zi_awi*Ba$!p
+*
+$%qIҼ.~:婿67Jj.Ly-5 :bP= = | %F12
+"͸u%Gp]QKU:eu.0mY^8i~y,K8qnrOS}uJcy2͒ChYłxGH܂"\zkOZk6Қ|RRI_| O33E5 *¹5؝}] PhJUZwۋοo=3nQ-+x:ڤ
+uV5|nCaǮZ 3:hW9U0 : Gd
+fNPOe
+9Zz`ae̘ J?l<gFEӕw<ߟX;cm+`.3c5;!-L0!f j2 f )|.v90S9 sQw< j|$_=
+,yawfGK
+&EnTp^4>ᒅRիOQt@S.(I[c/<'ҹ˝g EBݡs)R> c gZudz_
++)XqX]@{-T9
+t@V}n*j
+ח 7PeIr*Bܾo*g()5>Z|pOU?4U6~6TTkI
+X$/8!VK8'<P.xi |_EAVjMa `ӟɜVP+t=w TԾ~/DYtM5)AcʮK>1р!^\+}:]fθxao)%H+ԫxeV}Rގ ׌l{q,XBl tRǰmJ9YPMP$VL
+3x88O 0A 1C]#V,7ٍeClQ}I֦ !K1雕m- 
+ݘCŏE; @֣er.gҘT^YHc0CqU^%1-؝mn B@!DFawW}lBf&ă"ajl쇩krxA`*DsI5 [@u<fba=TV\Z ([}}w/C7V
+Oݠ-OV{z%3;C)U= $$f%dn@PNb:9x5[9 r8u10G>&5[|#QGœ$ 8u5sP7+
+k4?xb!9Xȥy&rMmRMIJcF4Tq^+N22ڏe,dh*9 rcۜeTM ҾU/1r h9D"<{uD8j΁H ¬; 0ȫNpjA Ê.;DSe ~X
+K"~ZXmQ(Hcǰa\3?aĆjNCFg* <k1v|JpRHy%Cbn!]Wba=^ttH^]bNv̳Q>ZàhOe=uxwXѧs
+,oiV\'}
+Kpfd.
+vK+'A w`\i5^S>B![q"Z. "8K^^~ &7"xD9=W2X)W[f6=ZFQ׊|Rhr9y)UOd9E2m߸0Q|
+NRlz懢6lR9LqɅ)5olkKFp,r%;1!|$mԇ\t&$;x_#XLȉ鬅Og˄2ܔ3dG
+wJXy5˽vE"(fLU,ݼ"rhaTJdTԋJI G4k7 skE^Y~oZa}*aF4d6M[U)u3g8Yㅖ~>LcO4K:,<gF˜۰~ K]ޗ+D\DtҶ7[CZh`ZVz -co˭T`vnυzvν̬'
+beØ%aݽS ZEҫB0թ=sRFV'nJU1Ѩ[ʒя<ەp[o a
+
+@ZA7=_wH=U>:q|>#(>YB)KrtCU"<x o_eC
+װO<.z6-n
+q.#<'T̓&XZMFJ w|(Œb@rzX~>9G9}; gRi]X7һ0icꥅ6+kg$5xiq(׿մ ($d܎}Q" <07;&I{+('cdh:6_x<
endstream
endobj
-554 0 obj
-<< /Type /Page /Contents 555 0 R /Resources 553 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 557 0 R >>
+562 0 obj
+<< /Type /Page /Contents 563 0 R /Resources 561 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 565 0 R >>
endobj
-557 0 obj
-[ 552 0 R ]
+565 0 obj
+[ 560 0 R ]
endobj
-552 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.975 87.384 150.432 98.841 ]/A << /S /GoTo /D (section.7) >> >>
+560 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.975 85.96 150.432 97.417 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-556 0 obj
-<< /D [ 554 0 R /XYZ 78.37 808.885 null ] >>
+564 0 obj
+<< /D [ 562 0 R /XYZ 78.37 808.885 null ] >>
endobj
105 0 obj
-<< /D [ 554 0 R /XYZ 79.37 505.126 null ] >>
-endobj
-553 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R /F50 392 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 562 0 R /XYZ 79.37 472.961 null ] >>
endobj
561 0 obj
-<< /Filter /FlateDecode /Length 4476 >>
-stream
-xڵˎ#7_Q?`E@q=%"lfl.%sLRER$Egz}7N7wm&ϼ/ ⓘgNƍ|ιK?H#7<~7E~?{w>5WO%Mx! }_&k-f'U7%x5ϲG?o/-"OD1>)Uiϛ2ׅ̈́geL\h][M-!El
-={b"y?+` MELP8nE[Vy@NXZC~$zGn-.k?1C(b^0&G f Z\TYjU5K4S>-l ny6Ρ5l
-4jjDDa鳢ЈnY$A:mk63$f&- 4S) >HF$=){7X/q_]8p/V3i^iɢMm3l8ǜOvFp߈F SF&ꘖbˈx.##6Wi 6S3'Y7c% )K4}e!]MOhjʌu5'] vt2 3Q)z~3)[u'^b,_N4= IsS6[2#)6L[i:knAi=mߔgoL2->
-a}b{bY=m&P'm\2^ eAB*SeFu6e6nљaPPCq<sJ17<gRp u a-8&Lk[B |P.]zfٳf.FT'
-ٯWJ|R(f.4GۏUUFN#<bkKf06}гpZXl62w[@ |PWrɅG 2m^2Nۼa|a@·M~}LɛwBppRQbx?Ǵ\25=VPJu<#^*xy3ef$KEO3LheDKA)f#ʧ4# q(i"%AHGo4
-NXk!Y{F9_GiwKMvx-gB'*1DX#p|Kg}qcd3u
-Ls?r*PV/oB$|XfjqHiV%ɕؔ~M'Ee
--糳6 {6l*Bk#iUϪj>W@ݒТLP>hnL
-L5 ym5+"HjVFT-Kݯ-l8 ׇ/H(sOdM%ERΖiV8ֳe&cJ]LkYLgD!ړSZU7_ՔrdȬt2dNYf%cj6\H:@B7t %\gtV 3ک_RpWF.vPq1
- . κ]mիYKڷC桌P8F1vajNC
-K~6c7ȫ0wѰЯȫ>޳WWU2O/QG=W'WUjI-O1@O..Hҡ]Dy
-[I{;dd j}|0bA?|
-v?:/&p{73xQ8zlfKG{ ͖3,zᶈ[&BWWx3
-o0ȸ(fC <C/&TEuLUo7Sл0xH+j&1=zܚP/wH8j `&Gx@(pT+UɌ;A-D1'ZЖh
-øljV%PCqe+ )餢0}?%I}ALo?LG<|rPER.Lh{ӣgFM)ʤUO<}vN׫F}mڞt~ NgÝ<3Mg9Sפ
-EۜI?; A=J%t7la|G,!Abz>8[8;F0!|-1!̋ L(,Xa%W0CKsNxifQEqnKWm3[7G]jjWH#sN
-
-kV\$(`Z_ʺZ7jG˨RP_Q" #Ƽex䍥d4HE2z7%[ǎoQk=UF9LŌJijgryQVV
-b}SPW[w,d\Ψvo/ TWekOfےtڽյiѾO4szm./ bc2o emg
-'c7KZ8l͐Se~
-mڼ,VZ}ԇz`+_40q]k3(M#"Ћ+4W+X?c 鷷zR!˷)2 ,{
-S xg-, Fˇk79VvXGr^QjxV2Dxy"i-"QeALYh?MBrGɖ_q
-Ba}ɥ^S.?
-endstream
-endobj
-560 0 obj
-<< /Type /Page /Contents 561 0 R /Resources 559 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 563 0 R >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F20 382 0 R /F23 379 0 R /F68 402 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R /F71 439 0 R /F46 392 0 R /F33 489 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-563 0 obj
-[ 558 0 R ]
+569 0 obj
+<< /Filter /FlateDecode /Length 4324 >>
+stream
+xڵn%7x@@ϩ9e& }jT{`((*'ޅWӿ޴<$ObI;Y#7bmsZsc9UK|圿? #$᭽ C/~NpT{_^'h.Z— ]x%>~Cd-{/ N 2{s̈́uMlOW@~,Oʁ!ç9E\6!ɺ~L
+@v[[RIy6HlUѪ-ʢ#gDZ^8> \7|Lxjơ{|^-
+|X:GȍI @gD ݳc-hJKf Z&yhaB]hWqꌆ׏_[f &뷧'4E`tcoZJ馝d
+"5tl}뷈e8 @_9NgOyȽy)QO L2N
+斐 2mS톋?5+˾cOL?=ŕBOx8E.~[+@A~NWԡp\OEq;`Q,Cj_
+w?z?[-oO|(`^]*`ķ YQ"YȚ pb e<:F׀xiԈO WEò0jwߪ`"dlfiÒQ@5H)8*>H zrR>||פ9KJ`&͛dæ>P@BOs;1w'q"mg=j ?r@l%2x'U/c% =MOhii@1 9{X:|t՗tm\&^bt&Z y; %[2#CjĞqG zBO&NM KnLƍ
+(CKwGkһ0puK&=(݋'b}dh)nfږi ɴq6z&wnv..na%;zqaZGA;7&qB2(˻M'8(-{m\* .nϼQ)QJ1YmZr@M?2WM#ﯘVW+-n:Ǹ?`@ϒyRF8mo>6:womᰀ2(.^R[JlOӻm^2.ۼAQA>@#w*h0`d3pg7/IJGxǨy tϬ!k:[H<V1p=p<I=X011'+ VQ{ʨٳE>U9 g5()C1 )V6Ma\;DPW'/7<>O1"I}29ǙrƉJQLgX1#fkg}qG:;Okpxt]/p)ks&%_S@].Y|4_;,Vem
+̋ZiLrc{r[r&
+T*߄3/`<kTP2zN^iHYQ朗[$d(ӰV)4B;㳙}lIT6ɡ(W/st! R!(ry8dɦSV [e l.GTrM,@ر6vxO5 Ǒj@50|nI!T3 %˴B)uMBީf0BHʄW~7Uxow
+>& 6\Д1_n)YS Y)gKEaV8Fu-Գek&^Lj\{@|hvd;4j>qȢt
+d9D{]rI֥>mGY8ޥ$ݲqҸ\/hL5b{Kcn) 3HS#ejV"w/xFءHt@3=@2ED}h뒔Zբ :2Y<:K񢭪ɸk01LX \{\o<:>w+y8=gι36A^}J_hH!˼7U
+ˋ*} 8E 0w#b`
+Btx*=FQ6@n2T*F<|B֜?Nc<Nwحe=)g} X9YEcy~tTXg|/gkUӉi"'Wu}E67^WC-SDabYM~~PL$[/BOd02e82rJ/tŽp% ^'{I<L^lu'6
+}e Ut=]f HRqíxAWΞyW+:odLzHy:G|VohIAzᑞW1'ҌzkÁG1HF[C]PλB.Rv{p\dޟR,tq.8ԚK
++ )
+oa<=EVI=w2vO&ѭ_^TRAG~ynȞuI~Qq; oA9t:oA_'\Na+Tg&lV"
+#/:6.w(Um)vn*L`B;Ο˕Č0ϸg0f,ϘΊ.,jBZʅ\\.I`>^|t635Ktͫi&x. &¯6 B0nImK#VP|)}QBȫ7:A<|Hv*JwtOh}]{US-:l?
+
+tޑcM>QGdKԸj2hiqe,fTjjQVjٲn(Kttj0ʥ'擻;>lk~5@v4n|?Ҿw #ښ/MܿmT%q Fj'iC -%FL:.zb4jQ7hĖZ@9|}p8ۃ2d\2g>6 GF-_Vo#rYF{thjIg3l[0iݦ ؊{+bGlK YP3&m6'<$nGL6Kbl9k૛oh[ي,E#Ӹ0[VGx&G;xPH@2C{Z0mr׹Sޓio
+xz\{Ztg<RUQ`|Ԯ -Jh!ZJ*Ccmv+GvK>"qs[U߸C֥=HMas-V+ Q%GxxEGWXEZdcZgV, &9=x2Š<+Y_٬ꙴ]F+(s*jdE̡h?$x f/fz5*W/%uȅa:߷H×0U!
+endstream
endobj
-558 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.097 123.183 415.071 135.138 ]/A << /S /GoTo /D (section.2) >> >>
+568 0 obj
+<< /Type /Page /Contents 569 0 R /Resources 567 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R >>
endobj
-562 0 obj
-<< /D [ 560 0 R /XYZ 78.37 808.885 null ] >>
+570 0 obj
+<< /D [ 568 0 R /XYZ 78.37 808.885 null ] >>
endobj
109 0 obj
-<< /D [ 560 0 R /XYZ 79.37 380.034 null ] >>
+<< /D [ 568 0 R /XYZ 79.37 339.187 null ] >>
endobj
113 0 obj
-<< /D [ 560 0 R /XYZ 79.37 258.993 null ] >>
+<< /D [ 568 0 R /XYZ 79.37 218.146 null ] >>
endobj
-559 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F55 383 0 R /F65 387 0 R /F48 391 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+567 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F68 402 0 R /F55 383 0 R /F64 387 0 R /F40 391 0 R /F71 439 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-568 0 obj
-<< /Filter /FlateDecode /Length 5527 >>
-stream
-x]Idm!iQ.DOcMI "}ܗfVCugA#
-:iMjGLѨ/W^$"{%FAw~!t|SíRƧ%} ebz"mXVf +"(PIez} 5Iwmkf9 מx"7l֎0jhxKyD})ߖP~
-HSm~Fr` PbjQ PeRL/gk.ӈR%m,Cݟ Lmm/ן - ۥoWvFɮg^I#"TS)]]x)Uu%Λ&*DGS5=/#+ 2 )S VUWsaTdEԁtB-mh?C}٢ϒAeT#h4B FY!9|[DO6ȊeC#@dnՖQAӺJ8k42%uQ,}ss_Czf>ۛ#6[Al_,8;Q | 3x\equ%fKpzB¿9R_8㻓SJ+ϥ##ǓO?.ߕ3tQ"\qg6EW>gF\F"9 kD]~ c뢗iӟ/P
-~司Re5a':0 d7գiqMoFe|
-/W:HNCxC?nl3yޝ&hdoji2rQðz<=jV%P:=5\K[sPXSa}X-n0zuumgZXV@+oNX#EQph Hn/NXty\Z)dʋ#Pɿb[S%\dR2XzlGL]ֳZniM7o:A~L4gØ$sd(x
-Ɣ8=0"|Du0$߅d(x\H:e NnÅhP?np)MPdٵ[<S} 7yny*Ϝ1I3&ѵy
-=b'pɫϡ<IES2H [w,ZK6A兲ֆJh)ީl-lzV8-J>[xXO&Ji{4UGm-ɉMuM/!&bv<F[jJ6J
-([cd(e/)66Ni94+UP5!^ ˓0o׆<zx˴p Q,?"FTL[*|; g Ѭzn$`-rmmJ&R*CN2hBmmrvM\ -i)-Ny]aFLXba@iB.I(eY4VlG2,L݆䲫B.Z5욫Ɋ Ħ{Kn đq7InMuJg c)vT /%qT
- .DR)o>嘀>uۮOZyoe)$]As 7 s䚐Ԥil홝NcRzN$q"C{hRRIA궙 qzxk|L *eF!3P{0!MjD'fuMQf}M+y+C)4WIiϹ]ν[oPd^UeQODa⌻ESU\mI#
-vw6'CnW1*m䰳䙺H4ib90Momyw$nQ\]D8xijr~6}P"E8ua#Jq <MWfP&8O,ki%;Õ
-kϤ1HĎ
-'CSʪ
-LQyNaG51%QX2
-E&0NqQ%yJ3{F=zVMD<:x G9WЋZi:D4J?O]2>DǫfZ RETϣg8͆@Ke7ގIb*Σ|"&Z!(E˧9eQDPO|-fMf=2-KK'٢)U1n]A( {y 81/Ob&M"1^ю1ƭTJ/OCĭhbn[PM0+C;s,M9tt1*5b
-0!Vzb)jH:ȿ.QEY^%iWsbl2r#u=ɇdz7x,Գam<2'*
-Cmgqg(|>r@isD?HXVŷk[Cdo=1m,'e-ڊ_3db1i-nZ50om(˰c-C /Kba2E՛d8Lr7<rJ޿K +]8axX)5<݉
-=X 6#? 90Kg$.|=ڊ\Wlh)5O6%c;ܲr\.PK[{ptwsu&5omz_ኡM0m]wE:ɓ?TkѳQv}Kq<yq<~@9@3KBo$qsr''qI`<s"!?p5)1.<<Sz;Ɍ@ ?DwcSP͹(ޣbJ/Rwߏ ^_Bo] ϓ:O ᑫtnwQHwCx=I)yeaQMG
-KlEz#鷏 ,ּ),-z
-uӓ7rO.!V%Ǜ ܀U_vn9?o0]h#^'*/›@X@N5/hfatVU:]+4(w 8yp硕Cb<59b"~t֎W9B 3⟯ry_b*xxbu/L0L})i 5yauA'NE[=3sq
-w,gKqY`ƋXǔ2٪o͢lRI ,lXﻔKVN1*+JKNQty*oMWdi!+{Zl78 [4D CUhLLaD垔[QG2]^Sx˸V \=ьRm#%uI,}G馼.JS%9 QCFdLWRNpٜBZu;UfxG pGǩ7KtЪMg>G4˘ [&N52.njTTU7uc'T#Oɰ|ݥbs9Qi8Yihzdlf̯6|ݵ]L/k1g4Iܧ)mvp 5bVkWx_4w\;$AJs{7?&uʯ-S'N9Ssn^h{=g&wW4p s'
+575 0 obj
+<< /Filter /FlateDecode /Length 5643 >>
+stream
+x]I#9nׯcAlKċ
+?F>n9s#}ܗ(MJJ\> L}/hۧL-8͵\tauDl}e~QI15R)˅K OZJWԗE|ӷO
+#\(C߾?PM4KT?鷶JI
+%Pl:6Ql0
+>s~;>XoתyȸV8'ܱ@C3q@C
+MέS*/>ŶcqVx-ÞAϭRqHT*ߕO֌oB{R7R 3Z#@#)R+5֡`Z쁍ä0KًMV ͷ`U0@G%Zd5̎`.0)[^0BQ¬зN.Y>GՂ>Eg4JQewYȴJyH*iC]TꇕT(c1xAHbcy%unhs汥 JMr@"Nzʹ
+Zj42<5oDw f1[Rve妚*`X%8}ݷuk\XEچ>SK$,j3;*F|[oB# ]21KyZSXh Xk)oqGD(=X$UmLal ռe)˃4_/TKoJU2M6Jn_e0* w Yj|g`4UdTl.[?~91ZͧE{v>]{QKWf;Ҋ{`{X7-64"BGhŒaWx߅F+fD*3}s}_*BkT>Y#֦Y<D+0[茖(kqc_O   ]v.Xzh c~- DWw4+ߺ)P0aF+?rW]
+ 7+?qW}\AG~1@?c
+j.Ro6Vz8R#G D0rtYldMpDCۢP\`?3
+&D}8EzcQ
+V0VX2q@چ-gZ
+-ۀ,NOX)GD
+!w$Luj00dfb,y9t*EK|Jw8q '/֮l[i*Id#k|5%hۋStgS<*B7~̒YKOH: h/;TK\P[*&[JIViP]I(?ߵ!5_$BRFDO6|k7']'2df#TL1lJYz.m8Y2{AҬ:BH!C-sSPZ2 :XGm`*YK2-3n
+u#@Jڧ\3)\5@;f{3^.Wrm! -c1}!%TYޢJ&|`_v"g8B5hG2$qD?`H.0$E3ĊۆHe
+:m>呂3իUnM1
+z',:۰+fQa0p$\GI5(3]]l.0\ٺ0iIK=UuqؾS9p& WtY0S ~}dzh彖Q&/}[t4½DSa(Cg l^Ķ)k:GFVż u7ہ X,w=Vٰt0O
+ݚ] +4:_|D5
+Nͨ!uGQ2罼 @J_M=MmdjڿvQC~\݋%䌓4I0Ѫ^&څS~"BE xF[kqr|D>MQ3^Ί|2v"}|FjyK:H0hlҹ: Stt"neX2E2N`>< Lp)f!mb[m6;gձ$(z$m@)0ZM`B:z3z7*>bj ҄i%V`&0X#ԑxwFTᶌnJOU`Qbd*Ee}V٦+O,08; Knai pU|HDzY=5D"YQO,\Nds8D='ؖE n:ٚ`$ m|_d;-h]I-_.# 48q-s HՉM>U2hkB=R05e\MsNOdC}0w%%z6/<r^2kP%)5s,VAU+$~˯˧9&$_˧??^MB@k[?Y,+zโkdW{x/oJO+<4mS7toUKX{Ed[*:#*ɪ@۞S<v .ODL^((2"b`# /+o}|E6y_@4X& +ǭCǏ"(]4[hJ'ZaK(Hw$.dO1<ZGQ8iq%_qZא7tȹU|${P|Y˽5n=}V>
+fTlN[d֋P ,[?oU|s%m_tE㖣˂G_|V'Xk!Slc*`o6ͣωO(~׼y>wW
+ԑ#>oypZx$t= du{y`vEg6?}0!+N_O\usXm8с&6Qkj#)b0 Kic%T儙 >P]G
+&OX(vD @0#
+E}Ah9_W]q6SKݮ_~\fwpxuv&9շwcۗc|rIfZ^Ad9v^צg#x+e5aECx#>4lyI3%Uw?7Ì؋1yr̍Mf ` GwRv (RO8JSx8@l#um]K="8ޣ!$Mc=u8P䵕6N B2a?%HGy> R>zĬ
+}d;ƒeFThwzFGfW(۩gm?RP٦RڎA'ja(X*by fyICy{#Ȥ=DyM^x/6`897O5 MµQ gf|Y/U#'OJ_opz˒ ,I 73Hpپ-+J 礠~C}+e3/}ux[-d[b7ZOc6_I.@0K~pe;r{R@3R_Wy[Aʙ
+̝_I0gXxRd%׵ow)
+O9+ J5ۀ0p0ܗ>wvtrl]{ʺGRnmy~=qP۵-j#z:KwwŁOuu^]]n%9 64
+l}L7հ2!قiho29,!0♧r(,7L[{Gm(&6UY[&L5<
endstream
endobj
-567 0 obj
-<< /Type /Page /Contents 568 0 R /Resources 566 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 570 0 R >>
+574 0 obj
+<< /Type /Page /Contents 575 0 R /Resources 573 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 577 0 R >>
endobj
-570 0 obj
-[ 564 0 R 565 0 R ]
+577 0 obj
+[ 566 0 R 571 0 R 572 0 R ]
endobj
-564 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 253.318 608.534 265.273 619.413 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+566 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.097 745.619 415.071 757.574 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-565 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.188 387.244 399.143 399.199 ]/A << /S /GoTo /D (section.9) >> >>
+571 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 253.318 582.126 265.273 593.005 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-569 0 obj
-<< /D [ 567 0 R /XYZ 78.37 808.885 null ] >>
+572 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.188 359.899 399.143 371.854 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+576 0 obj
+<< /D [ 574 0 R /XYZ 78.37 808.885 null ] >>
endobj
117 0 obj
-<< /D [ 567 0 R /XYZ 79.37 581.869 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 555.736 null ] >>
endobj
121 0 obj
-<< /D [ 567 0 R /XYZ 79.37 542.025 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 515.893 null ] >>
endobj
-566 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+573 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F68 402 0 R /F57 385 0 R /F29 375 0 R /F20 382 0 R /F26 404 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-574 0 obj
-<< /Filter /FlateDecode /Length 4584 >>
-stream
-xd1
-"xjrf{;׀"Yٲt{ūXwəO3f}u_~~ǜ-/$+q1-/߿ps~S\3w}W2>ϔmulYzF嵾f@@D߯%xǏuk J5
-6^r@QK!Ydhs,eEH:@JRC߷ 2ݹSá=\_t2lEֈ܆M}؁}ɬ*Za
-Jxeʯ~Li$x~jCLG)o񬎦HBw}ߴt SQGw3kΒ w(U y7'C>Q-,,ҊkByDKǵmj錬V(h+\:do{ޑ懗{DGbL!Vw`_bH 2`ihn ZXWX-/Su= a s](r+(yd$U۶!Vy+#LB-|D,ᝂYi
-ʯ+\U0qx uƷӶmޮoؚ+dL:L!L.dz[{_zzvd:[C.ϒ TK)ӼzB0 Vy2TGz*:"嚴JuZa#^E 'u\>V\H+1J{lx0 ?2 Jɽ^#A<$5ь+6ܯԒWB&Y0sS) Pz4#"Cҍ~ai˵Z=_IEYd)"}t$J6CLzR5RoI=eVcۄ+dp}("D=GOKIL9Z?y5!gD iRFUp9Rԁ O(]xq;`Ω#
-ٷ`%p1+j&O9eI1- ,RdW.3$'7B=d7q&Ļcy;I5|@_|Zg6od9f:Fq|OƓN3T5^Ma3fCF{']wHƊ!`L 'Y~ >|8 ̉OlO.JS\IJ2xrx,K*޾|tN+x~aV0hhì;Nfb;;& w]$d0jgrAkJk)n~wu<_Þ| Qgni>gnIDx<$NL|K˽00L[ jTP 2G]rESӍ(w#QK+6fdՌ$mS͠YC;9ou/$GKa [}VRmd&=ڙnVLeZb!O
-
-J}-ALSSZh~J2AB!XZqYBf8Yp듈{i_f8JOѐfVMfd?7
-$#bΞ!rZ_^kq>=\ߧ[M|ݯ3AIaYWT[]ĆMFCak8׶A8MX7fK iOr l8&)^B&K\Ѧ^K"RZs.M2|yN2DADʥBDf).Rh>Mm:J]H@Mz4~*zؤ,Jhz y>}5H.\rįP QbeѺ/,,M~c{ۊ
-9XNYİlh -Ԥ:'SdUm*4X1r!T]S,M4)mqd6ћ%fl@ ЍA#]=9O5S3+#+R1T/muY˕v>xw(+j35Yz;WVu/]D/#b@٢'3B*+LZe+:ۂKjոT2ݥ)\iQxLwvVE<`Dq~VX@2N)V9BmpjgE;>/B`H>Z< r6UURɖN|aMG:}/sMJ{~koe5::f\VmڸZ㙣"we5RHcը؈֍wmQY= i`PI 6|GivaOU ,R{z)T[%)q3zV 9hf\ g)nَ(`س[ޣ"S,)42ު
-xBK&=t 1l|<`d~TN6MNk()T] 
-i+;ޯt +XoƂ:P=^EdH@J9OzA+KW
-Ui@|zBo9-^|nL'UFS årdkDj-qαMwtoE(ÔC[ "$6\eIX|Iѳz!.~LU0Qؽ?Q0Zani3լ+p3_VT
+581 0 obj
+<< /Filter /FlateDecode /Length 4869 >>
+stream
+x=Ɏd9n8HP`|*n9=6оکmY"=J(n")O?>y uO_YϤY#7۟^9~\ !< O8ZO?x+r|Mb[_k\"+H@IG8UK^s~%=þu[l|-}OOÛƀq .F<HqyganyebX@oc5~13h
+ۧBz[Oov bW(m@r-l5<[ho 2Z2ݗ</HRd1C2 *UE8AS0-/ '>3"w#
+j?Ms!M:25깥F=0VnCfQq4xL5N320 X~,v\HIv)Q9dP<SRU+b{~q/Bk 8wfPi5-5漄*(DT<!F`
+N 
+TaglQRm ʙSp:dLLNfƙANt?[~sfd]'e9ꘄ1#jn#AGmw*0vxVMO\A? hx
+cVrl){) h!?7\V[WXؚ[OO>ȹrՄ=hS ߥjC:ۑ0 ԡL=WVhecMЪ^U/ɩtlu-,Wiƅ$:ם<e*nFr@NWL=.;Lef]X_5FVys*|̎oY;T'L*P֠ۼ-oN\\_ˆh0Fja/.<VnUI该kfz\Js.([z3Ŏǜ+# JVT3o?nNhI8)<(+f%Q}QzR񥯮`FШ!q9~^uS{G.wRzQ)Yal^a,ulMX@ڽaA7Vi($[EܛzԊԁG-$Q4b W1ʅw qh+ 6"V-M9eyM6wXhyIy+.!*YǝW (=bz,YϢĢ5iqQP?У! خdU{납%XMͥ [W}gܡėNYyjhw$n{T֩LVzE䧹RP ~_aZܖx\j/fw/+Pz=.)T%n븾
+cCx]nm<4)vWݼ$H+M{wk5h922
+(&̊.i*jtc93<Dtg[G;;v}ȾjeWZl^&]zeDwS8O˴ŞZ~L%SXzď!.'V|c#)PK31(hmC|%r I
+3>.zǂazj*M/TQt`Mֲ2/HdljV&3-Y_,1Jǽ%
+J_Ξ{id6nH b./Y-R?Ŭ9H;ᯆ4.X/F\4{Kw8oJV@5gQ*Ww%F*{tL)pKEO[3uB+7^3Vɸ *7cuDu(cmf1TyB!sW*S %XM/_V\}X2쑼
+ڱH#%=)|dIXuKf=-SNQdW[<7e._}> Ifc՝ciFd=!5L'`Z3\Wػn7Ls (XSH?62h oxY ZUnp; 4n,1{
+4N]U1]q/+3h8qʩx8<cU'd.\#=d:]t"~R-j'Jn禔]ݙpmSg?hX
endstream
endobj
-573 0 obj
-<< /Type /Page /Contents 574 0 R /Resources 572 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 576 0 R >>
+580 0 obj
+<< /Type /Page /Contents 581 0 R /Resources 579 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 583 0 R >>
endobj
-576 0 obj
-[ 571 0 R ]
+583 0 obj
+[ 578 0 R ]
endobj
-571 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.992 607.586 261.965 619.542 ]/A << /S /GoTo /D (section.4) >> >>
+578 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.992 573.992 261.965 585.948 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-575 0 obj
-<< /D [ 573 0 R /XYZ 78.37 808.885 null ] >>
+582 0 obj
+<< /D [ 580 0 R /XYZ 78.37 808.885 null ] >>
endobj
125 0 obj
-<< /D [ 573 0 R /XYZ 79.37 460.244 null ] >>
+<< /D [ 580 0 R /XYZ 79.37 424.159 null ] >>
endobj
-572 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F22 404 0 R /F69 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+579 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F29 375 0 R /F23 379 0 R /F20 382 0 R /F58 386 0 R /F26 404 0 R /F68 402 0 R /F55 383 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R /F71 439 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-582 0 obj
-<< /Filter /FlateDecode /Length 3554 >>
-stream
-xɮah+ i 8'>9ȂX|笠/̓n6kcQ|ħ^ʿ擘7#9F0/jTiFOˌ'ʹ~/pnOׯSճu4Y*
-DG `*wXE2Du&kH}VAڥ {,2Fp C
-/oUJL. 8:RLș?q4G\}5*`Ybw4TԦ\f>EK2skŔw
-' @%J@`z`T <?4-/܊a=2[C/oޭզ0fvQb2H&E&!#5Ƒ# zsEfCg-)p,ir@vӨ P$(}+o'!"#jRG| ԭę4L:[[-/5|kHH80 R?ҍ(6b493ؠ Akی%c n
-($[rhqe]l
-<~,AJ_ߢ%{/*aKxufVa-N^ݢQh
-'њNAR-![!X8xCOZ6, t&YU=B˚JŅ//7% `F{.)3/o)攎_'(ϕ駗MaΈE&7.VB`ˌKˎKM&Vʣ\*ŰO3R"C܄K$~.cKO2U6|yn%>Rx >4Lg?6Y}nm$4}FoeM Qه12q7Zh9\u* F_c%lF~Ok݃!}(]`*z}¢y~.b|Z-iY>cJofDdDlG#`+ĥ ̿8E/wXZaYw*Bz˿!+J g]˵% (E|
-J=w_G+0f赲4rR)?BS; #3U+e Iˉ#f#*tܫ\0܊e(fs~ K9rtlͳ۲uR#zWy.x
-jdz伔Y`>'}=\;tAr.))s#ԮlEx:}7lւ8t'=wd9lے2Rf} B0kX_% z:V2X],Ks O1H^rvTGə|)#G #Kt@%CIǞ1mwqY!MoT8m}~;  d e?IMϾ_M|D`gR]JMQ鶔kLf,_=H}]ߜMOwvj[ݟ^l=]5Y&9S  pèF䪄Aqr{yxN7TGp}g׬aHa} @DcW5;BSq4Zo3[ mWW8ɬoޒƺ! aI73]ixuP}4<K7F$N21Fǩz,hpj5;Ì'Z0 O0ahӿX̝nOs/u/f0 ɞ8RI.}qLde7Nxds <՜C dϽ<?6m(;*ڶybXwťk>=h&NjnkSՆ
-
- H vP̱|v=4P=VF>B1]+%( /yzmn$fn =éiUpQ
-#{Op5jܣ])l)?鮿\
-Զ~X/21NMD3'pTJV
-dg2#݌FV|Э1*J (*\έJݴJ)wTw9TzG]"Qu"p(+ׄxL:~\Ƽ%VmۊJv'z~yK<4s'n۵G:Zw~/S.f~29oP`Kg\(0nNP*+Yc*qrK-O84=W;=BBVrA/\dgQ6ןݖ%3ʓFYmef&mS Dq
-ӡ
+589 0 obj
+<< /Filter /FlateDecode /Length 2889 >>
+stream
+xˎ6_cr(E`jz*i9el&KYoYvU`]LQ$EQ$EqNίO?\s4Nx'1Ǥk1~~~$9/PỶ^ w`H1(q׿eJg y!ƥ_I4@@m-L[Sc?K,O1vE h9~s c%?qU"smgxip~ܹ|s>ʘ4xC&Ǽp$PL8uD&=M3s9깈{ċ 6$I~j@M~?Vփ3nܤ2뗧8дΥjcz}z<~ӉL6;͜k>dQڄ/S@8}uF<ٜ 52 <A7*$|M|ށ}[h.n]j-ˮQLAfQ#_]5uXS0I+Jij{HVՐ~TC8{ 7ofUtҞ!vEԬ~ZͪaY'i4nt۶t"8E胖ԺmهB7mv5C:\g&dޓw)N~Bh
+"ἀjT J-vK_2HZCy6#L 
+*/F:#agG%`| :Fg1i-gB^RsމoI?.ŭb1e1nfڱPI s5uSN'~T)jՓxLR?M}i@B_CCq&7$!cʉ@'SF'-q=s3VPMy \uy?(芟+ޏ"#-Wt1Et=,H\*UFhQ0tY J,r>^eyƖzj,l ڿy6DE*+<4A[q~Y"ć=d\jj[m2ˏρ-/Kd/ IC9)Լ0/c2n?TWGì1L[\ r ,tk},i/m(R4)J{ޥFL6ٰlIZR>ഢ2g]Rv:Z>ٷ,V8-TJ"ĖI UBi$NѾǍi&$ǽ=}^Hg)ޑS9m^=Y,=&p]|7АͮsJ0~3:>hztDrZC!(}m悮E//վ,?1$)Cvqi[ }RM-(4Ik6HEh(,Qa֟wRn!
+v
+ohh X{. scil%iCi
+2}7^
+Rcs9]1uV,p`8|?G*$_.m*f]hm?R> #\%0C9;F5+*j3 hʁ#'kL*"gS2f>%wJ2HiڸwT%+Rg9mH#
endstream
endobj
-581 0 obj
-<< /Type /Page /Contents 582 0 R /Resources 580 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 584 0 R >>
-endobj
-584 0 obj
-[ 577 0 R 578 0 R 579 0 R ]
-endobj
-577 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.302 135.32 408.257 146.388 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
-endobj
-578 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.96 105.613 216.685 116.492 ]/A << /S /GoTo /D (subsection.8.2) >> >>
-endobj
-579 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.406 105.613 244.361 116.492 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+588 0 obj
+<< /Type /Page /Contents 589 0 R /Resources 587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R >>
endobj
-583 0 obj
-<< /D [ 581 0 R /XYZ 78.37 808.885 null ] >>
+590 0 obj
+<< /D [ 588 0 R /XYZ 78.37 808.885 null ] >>
endobj
129 0 obj
-<< /D [ 581 0 R /XYZ 79.37 678.801 null ] >>
+<< /D [ 588 0 R /XYZ 79.37 602.71 null ] >>
endobj
-580 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F69 402 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F22 404 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+587 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F68 402 0 R /F55 383 0 R /F57 385 0 R /F26 404 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-590 0 obj
-<< /Filter /FlateDecode /Length 6932 >>
-stream
-x]Ke7nKgQz?B#U} dcĻ,
-401@h&pUS4u)EK5(->l:ϋ~rd bChf~fzBj;dB®rj1ʬ6G<wUM]|DЕ̋odJFYk.cW|FIeʃ48)Nl eցƉ{Fwu~oMUIP] ,ISj jj+ Rǹꠙ JŬ쨱XZdP'=
-m{~oZڧg$Co!?Q_qslU 'Q}KkB6=GL&iI0*
-ߙUs#7ynͨeN^Z9}yԪaE7]9{A܈r"b)U+o~xaQuZxbTse(cXbʷ_ V-js>7-9SZlP O~7nۏݚqXAFH3ED]y\nܝ0-'9F]DXW[!~u"`}0 NBs{M,سCOu<;ם_<x ̟;;rWءaG
-rIvIe3_]Qpx?{d$Z4uNjq*0h /D" aߩ@XyDÝ2ldJ]a9x=ȴd`,!ie`l
-qLj͎x,2gq!q4#
-6fdmg||fqIc$cw9Q!y38 F`#FFSWlAPf&f3*l%0@SNcw6DYRնGtVQ#<t F$+C'Wm)[_ԸD;K׃4A$,HT:E7 rh= iM V6$6!h4LUi Lƨ,Ɏ 2=J$A&=ݐ(IԢL^BIh^G2[j| H$TEH"ZbA9y1Bm@IhLBzSePLF11I$ ̂m<]_24a$1PtCL( "0'B)#x$D4Y6SQ&<rj3ZƒRO(7P2Z 'Aq
-[6́4 #RLdJ!L; O4: .4 d6J%d1i$(+\4@:(72FR VD5a&ę|vkӸ|l
-MPIOEcDl`>B=*~P! i$Tı 'aB29}j&E`Y-ǜ&pFA*ZdjUb4K[[+ߧ"8~
-RCY2*#PPADcHLؐvl@q+c;6R@*Xoh 0OƑI6k'l4D긒1(N:8!QV"<B(-n .FKT?"< , Yln#] +( #
- ʙMQhdYl zȡ эwgqD*ZCfjw
- Jۧ1n)_yH6&d61e(HAE{H[M(@q+{!JS>aSYV UrlU\G-F%$ x!qd5+a%#ŭHDާ"<B32pFPӏwgqDbx$!ql5;C
-20ŭExP}2*K3{]^bWHQD%ӆjtdmU4l{(H 2"ZuɚTr
-Q,
-Ai?VwT9[*bڀ$]$%RBMb7,K ,v օ
-KґUH PI2"~n}eVa%J\>#$T.'X$@Q*9&,!%NddQ
-ՑUH HI2"
-ViXHB@.JVܰ}.'T%3XXJ2wdm(iHF[bEUډ"׶󀊨כqk؛ܶ\"'2_@:<:Z;8lm}ozs=)x_9ϼnI_>ӭ
-:::a+sV 3co%x.Ϸ#4Ԝww^^ >ѝ/xE2]%M<xoK ٻGbn):a'0GrܳѧaxcsxLz3K/1*-=9 dVRx
-I7\Ne?[Gv6>"W9Rlϔq>a}a|->Y+V.hL}OW[n 3Ju]8nOO}i7_({ !FL/>|Z+ۉ[E#ԚZ"T쀏k#y涬[s{\irhk\4T1=gǁdPio~ay
-"J,t_G8Q|U jgg.&LJx .?* !O%YaIÕ:z/tXdѹfTA?sv/ETh/jwjs^d_:%טz{~y}8'jYxP$tT4 E?&5ewM2e|>rQOdE.[ WG=9I+Wl&=Ea Vjt&U++]9rt}kڧխM>Ljb+QƹD]4OW}
-9mWd>XF[ Cz)f\_Ik Wz'@δ][&'B5 ts,As⠟2? \{p㓔V
-o;xW"0<>ihvCe^pwgoxzmӯnRU_*pG:w^U;6 >~۽my$ʍ,Z d;0ly7NVLbm;UWԁD( %cWi+uX(aTd [hݴ_)pQ L[1._q |{GsZQ;yׯsk4ùnIRwWo(*rؐGiOMsԕ{OUU'S\ PҞKx.DTNl)/˖?*`|Qw|):Su[-V
-?7HڛYҖɋU9xF'I5Gy+}r5xռuڐۈ)!L4+r;pf5JF
-Xr}]^TQf+۲
-V4SEƥ|\}+)qo>+q i7mSbw}L"xt%8׆M<z\:e%#/x>t<:HGڪwx~t-h@wӭ~Ge F[._?ܾ-.9*˽~IyǭmN &5ҿ7&a.@,Qy07n%RiRvk;!=(^ig8Ɛ\}kq<-pw&diN,4_jI!ȹgPmwԦ\Mjgo\NK>3-p[
-FF sd(sL"'n%
+596 0 obj
+<< /Filter /FlateDecode /Length 7055 >>
+stream
+x]I%GnxGP9/@Cp=U?c_6![6`ˀ|o%"jmT|L%K䫤M~Lpuӷo1E}_>*e>)Pʽ)/&%so<<
+?)|?ê~sUb-9d[!5guW #dh
+cMܔO{UA7uE}`[7q=$h!",P/bزfc!cаxOJEbO
+5jf8i~QW\l2
+}ۄI.U(R{~7Ӫh } }[Z$+C: XۊvlRm$JQ8=eUJֱ{Zri?f,,Ko'U5g뇟FvPIƴ0S߬x )}ѭV% 0%
+ z:WCE K ~!+PuW]8@^^l^ ڥKXXcU|}j%8dUJ؂y2`{Xq\ch1vвdߝNk ڔ6dKL3RDQ6қ\ޏ4^^Voh /eR9^jFUN£MF;tw4g,׶$iwv,2RK[|ض}t
+x=YèWت~@;w/񆡙|3T}1
+X*/b}b '%ƃnҪg!c5yk0zcN a*_
+a2A} *,uw^J+NϪs5e2
+cLa[;[`,_mbU<3h}3j2EǸOTk|癵l9Wp[vC
+?ty`_/mg"`h?I]
+ߙU9ϑoow0f\۲O[:||^&j:<4yJ_
+~~UC
+ۇ}ƕdO}{I*hu>%c ?߿vk3bm8kPdԦƎze9ҥɞ.ΗK<(e1 ( :aO3d̅`V[bO`f[\#fny똽@/yN [j0ĩ;;rWة]9rp 8 gN=-0 2tu^t1a@
+,uٟl3`J
+]1b9fwd!ֳa;M3<s 1!L3@viޱq'@d3vlwo tDck `^sU;5>?6ģ%ؠG}x 0>w
+ 1zu櫼Shd:?8^NdIܤ .auu
+V$Άޗ'6 'ԢApRS1ASM8 x!iL`y( f#Pd
+M7h@IP
+yHqBڲ#*~B,1$78.F`#YA&cWlP5; $3sOL'M#ð8$UG`:D ĆTJ,H.[$@VZ,rogH,E
+Z]{D)ho%</5rm!desHd
+m<Ңj%XGjvdv8"B8݀Pȡ6!$X@8ۼH+g2h}Di L,vɎ̗"Jo)dI)L{!QhEP/Ѽex9%\2I'62$!E&)Ăr0b"=uۀ&7,јH=(ˠPcbBH
+8 1 Cג #x$d0i2~RrcynH7tבn:JAH4LPdn
+2WEomyb;Q]wN3[=pJiVՀgF_M?cPljJJGV}* D  )PH>kYH$5$MedH=GFd")sܧvkb9" 6Jb|i<a䋩V`#HAEkPLJlX=bFtikk!T
+3P^DGe \)$ n+%M2
+c#EM2(mejGF
+6OEcR(Zq lLq"۔Flʫ(qD*CjZwdFa[ً Кje  %ʲKjB92<jq6*M%I#h#y] +(Ɍ.nmoG
+@#>H΀C
+
+ΑuR$$-c
+dj wH8mDkw;]24 )lWGՎ"6 %hd
+x/ Ɵ IdV\L7
endstream
endobj
-589 0 obj
-<< /Type /Page /Contents 590 0 R /Resources 588 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 592 0 R >>
+595 0 obj
+<< /Type /Page /Contents 596 0 R /Resources 594 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 598 0 R >>
endobj
-592 0 obj
-[ 585 0 R 587 0 R 586 0 R ]
+598 0 obj
+[ 584 0 R 585 0 R 586 0 R 591 0 R 593 0 R 592 0 R ]
endobj
-585 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.528 481.923 414.484 492.921 ]/A << /S /GoTo /D (section.10) >> >>
+584 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.302 734.102 408.257 745.17 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-587 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 332.029 340.922 343.984 352.877 ]/A << /S /GoTo /D (subsection.14.8) >> >>
+585 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.96 704.334 216.685 715.213 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
586 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 330.524 67.03 340.981 78.488 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.406 704.334 244.361 715.213 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
591 0 obj
-<< /D [ 589 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.528 340.171 414.484 351.17 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-133 0 obj
-<< /D [ 589 0 R /XYZ 79.37 771.024 null ] >>
+593 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 332.029 198.745 343.984 210.7 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
-588 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F16 382 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F58 386 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+592 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 330.524 83.015 340.981 94.472 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-600 0 obj
-<< /Filter /FlateDecode /Length 11374 >>
-stream
-x}K&^[v/n:&0uU.xŠ
- Aе[4I]'f+2$ WmU7Po@L,OH  xŽ~l)g'!n9{::ށtz
-DpEƠ}A2zd0UO36_`,8h3k*Y/HaF7b[sYBDq@X<? =nj_r$?k|mj K0GZ+9&7;2=G:^`&ñ钰e<x<OƧHh2=^<*?S_
-?;_
-؍~&R-< ޘ2mij$-$)c#K 7,$hl9Uf̤D8s$n-+i)$HeZc4\Yb"`k 5,0k3mvLbl0M|r@ɛC"KRd`lB=rFNSrk!Tib;pt;AYjlM쀴f F+Ya G|@Ll`3aNBV)" CP\XaBpti- )UWG?ܯXL!M"3a]2A*r5R5+KJ"ÙΡM@Fq)- Yx+t94G#-"["D6C9SC H4&2` -O̢9LW<=0QĬD؊dHB 2KF33e#JtiNc
-v5]'%dj$
-#J733 hA~sp0}ɘAvBa!KJÊ!-8Ba)-
- p g(B2JYa8p&y6#CŤVGKo:P
-pV`.5(i%rR2Q[!Re%-$lLW G&$e1N:9*_BF >' TfX9QB+{5px+l29oT.$Nlͮ'z)zH/Z81N5-)XdmE:iQ&
-ԥnU_=pcfE հBi=%,REd%^ H Y>@2cev?!#EiQB.9լHpaMkD*{2+Bzl}BVA ,P( CJ82ȘĚ9)6 'MbT O9NJ/*ҪКnJIw& VwjRj@d}(Vκ#&dTi[ȢbPRͨMj"K Ļ!KժLUek;bBFŜfJ,*#I)Ia@$PV5k幰2KDEϵ剋FJe“(1)ŻIԚ쭘jtaj;bEEOZMmROZLĤ' TT5 2yľV'2.TYL2 LdĹJ)Y<"_օ* Ո?U~ UԊ2HѤ rqkHEU#!Gk%kxQ2вEU6e”Od$3kT#]XQp!
-SJ6e,-&dbR, T
- 1b_+^
-҉ K FKVuԴڤ UF<q)_yT@EU!kPB1զO5Z\mQSZLĤ)Sk
-"_+c WwYX.TQQk5G2E01)s͔
-5 iR-/P!yGLLQesibWkΊXT"IK $1jU"WkmQ57Ya~jO#*.8SoGo%<v-׻Ŧo WG1}6s/>d N4~_;}ϻne:q\̯EKYΐ$6߾OS;ƙ
-#ǽP岲 ];9.j9%
-7}Icgcgڙn?)Q>)iqbsqt<'
-`&{x;v^QuzMB80ummsK#؇y CڻG7Y9$u/B^w}~5tXGu`kx%}E1)j #ԦQPqo gHxFe?YŠB?IB h+k>UJ!N0~cx|7o
- 1]t9MAgpq'9Sna &s>H3afKC0d _gNfwhr0a_|P~?
-I"怜pfE{ЍTI?~z
-ذxgIP34z~/̽245$8ѻGPg94|
-r|3UOg#Μ?H~ʈ:P,\{
-KLM$Ri̊ſY~pxC
-puڬ󂀧r_M[ݻ)K9HkbUԉQ
-\R j8רzտ.ڲx_: cMj+wm,zspK^Ã%"d.}⶜}6'lh<_]}y:t??S\ػJԞ:,+Cg6?[m rb]xγ<\Ϻ4C5yYdQ0' \g,=kq5}M~a|M>_~k8zF\n\lVi}<nM*UhC%_@
-~X0ڥ
-~@ml+ϔ17ZA->@i| t4<K,*NR%'vMb:p(a .DY:" /֟Ŗg[ +wNip9zI?
-‘?Gf{
-e3f9{1 +3[qF꧜<P4\6`=Tږ[}%tW_8)f$!EUSS?ʅ.TtEt* ]]JEUDib=R,cOf(K6kgK#ܭ 5xM]lW~0(L+t&M"pev'<a-/5KOX)ir"m
-t콽;q'PphnZ쫲J|]ŘcQw;/enl6eUR^I4/ቢ1Xi0e(Ax{#,3Zq"X4ZjPyDQdb)#*;n0\m%ßᗸ)dE T[.IdhQ*|2wrA
-2=psdsdUI(DӼYf11)rt
-FY$aY
-J, 4 hI FPŔ 7 9/KNIdX1@-PWb.8ugN7|`Ƿt$"s,"VSmE܂@90-x$w$"sJ4Zz~[_7-G2@>0tLpo
-
-mWe>ʒ/CzqF4͉!;ڛ|
-#3鄭W3He95ACV|ATq_xR^#gĸw'H /C2I&P$_2" y06|)>yكHoL"2bɠ`ݎn5%0I U<wOj$ZYУ۷тH!!B)c8/I0a3-lO*cJͻBsEB
-|M ?I&feF-[L]+Y2>f[8i[bK|DMa(iSmeQ8n~Jh8 ؤ1!>E_ƕ-<+BۯKӹ: =MYM@%t;zKĊ2s(4GƎ-4T hXRsUƔd8aqyMe46Kmgl(8jE M\
-"
-] (psKZJ$LyMww.Ҝz5 '"e0dK GFJ=9$NMc.cDŽWtWke!eTRij&  "Qq @J#1,hͲZ:Q/\C2X㗔+$ 9 +"%8bm"BFJ?9\P8av)$2^ :S!]ZR<LgK%E<FTHR/;Upl4g3+HDA]K'
-\9Isr0XŖgk,NDJ`ڄ+Nt8z6s@I ýR]ՙރgdl7+kJHa)ak|*N82љѳJ"E z</z7DYR@Xp$ [Xş"af`T+ej{
-Y;'tdS1ɭJK ~͖ +S`
-R PFD1#BB/4plZT"FpR & wy$&aaQj+hͱH҉G1j
-?_3XQRB15paLsGD2Dp;ӁSЏ)fb Atut(gab`K#>vXN>ߧtm7w՛{9 ,xH6uޤ=<o@N;]'6}wؿPmaLx_kxsZ~7m=Tӆ_pvCElyP=}
-rlT]Sfm1)yѳ{\1G݌mQn9^"#x@?4蒏Ο#pLQ/IfMdbȟla/NA9F(fΥ8RSI|DnOtldYFgCO1>QٟSwvzՑn*zJ"[P=NI7w憻yTo+R^Şבn}s.y_%?ć9ݴ#zlPwx,kog3}bj ~RxEdN/È䲊{k/MS/4,"9y=Mͤ5=ѳvwp.Q=b\we;ƃ_{s5ѿ=3)M=ѻm:7L1eX|VR^ǃm0{SD` EW
-endstream
+597 0 obj
+<< /D [ 595 0 R /XYZ 78.37 808.885 null ] >>
endobj
-599 0 obj
-<< /Type /Page /Contents 600 0 R /Resources 598 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 603 0 R >>
+133 0 obj
+<< /D [ 595 0 R /XYZ 79.37 641.554 null ] >>
endobj
-603 0 obj
-[ 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R ]
+594 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F68 402 0 R /F20 382 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-593 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.532 553.81 437.487 565.765 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+606 0 obj
+<< /Filter /FlateDecode /Length 7222 >>
+stream
+x]KGW>t:@[6ًwta]{/`_/ALekVXLF|_DȬrSߨw/򒃁׏?6abЋ
+*+򤔆W մ^.M坆wִCFwLzLqraM|s~*tLл[T~vZ+jkFiqMyh%zXˋV{왞;Wp
+KP~] Oޚx_n?6fv`T%Tc7ir%&Q+]L+ҢzO|ԋfO,GI$]~3^/NKbߚxҏF8p`nh=~ṡv'-t̅ е [ Jːr:jqt]9ڙ(X >Y6Ӻ_$w]]pwt\ɝ$O8ق$!]f/q>Ӕ5+%(=3fv s{A3
+|Q}(5Fs r1RQj)Jby(J G QiC.QJv?J]^񌇺=(po?_~eǵK!shs.k_q~e{ѝ#c; GuȻ|}Mc.SFSv_O8Coy3ǜx~t}zqn>:F 0$6I9z!@KNQFq<gg#uHt4 HH$H/ͯxt>>ե07_QtۈȮwn:;wKu..ktY]܇=`n鞣/t
+\Nq=0O>SX<l,\~øv&l~+ɲMu
+G>d= z"ԥ)+C<aR`d3&졇LQ|y ~1-9:W+ohEFd->DQcwhht h@@o 垙D=(Ǥ4d=2F?LH cqǘBB:*Ѡ3D=H#7;L #Є| !ᠷ5b=ٰ$V
+Z@jC_|C1(zF vrZF &nqPYwH|
+?>\yn$&DdlV+;G5ia&[I;BDbo(wTv,no,[CiaBB\l2:GzVB X+5Cs<6`+Ye&Chh %3H5 Sm"*9Ճ`܅dkbf9dϙu w#2EJՖJCZdG딹qulr@hr}('V0:#2L8Mda2U1g&ňl Y\u
+Xy.e).F\?ZLQ?3,XrBへˉ*Ljf}9U\ƨb6Lq&i
+8)[(D@LafS)dkd"(27M\u`gs-a9'YaouETן,Nm/<` oƓY0s%Y]b/<:+wJ"@f +h$rH+oR|UFƃAj qNdӤXVGfFQ$l+,LT"T
+̈cqY*WZy,[UW˝SZ1ezb( T=8u08烹+;awy6 Q%k 3<f7Tt`{c~pփd]@+*'V޾[owZFn Fm}Li"l-afgunXw2s0c&M"U HR)iX(Pn3SVdYusUOS$ngruTԯhkK9^ޯck)Xwֳ뮶qg氵qW0][,:z]dUc[
+^_O)c:2*l9\oDZIng#yD.{bN)lDwAT2
+b I>kq;h恨:/g. ՜<‹!iu%֬)9}l)T-o2yfKJ f},kLV: yWO<ĶZfqV7)<=13#SNgrܮ\&l.M>%䞔vFڝ]>|3sUG 
+[]a@+[}IA"ve9NnӅ[tteA3#as4?L76yR0~XxCpY#*18hMߩ[}<G.mnug}H6o5W|6fj>e.XqHjdp.͍\:ݕX'n!k{ƧH846- ѐ_v4"!*^Z*0z.xrB<C kʶ?Li|mW~S煽8uy[OŴ^P'eLiRUw}]'
+)
+zˑD0.{x{޹;WQC4bUdž<m2?%rhMNhslxb
+OxQw[HKw fؖ~V0eٜN
+endstream
endobj
-594 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.344 499.119 390.299 511.074 ]/A << /S /GoTo /D (section.8) >> >>
+605 0 obj
+<< /Type /Page /Contents 606 0 R /Resources 604 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 608 0 R >>
endobj
-595 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 198.474 435.908 210.429 447.864 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+608 0 obj
+[ 599 0 R 600 0 R 601 0 R 602 0 R ]
endobj
-596 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 458.926 88.775 469.383 100.232 ]/A << /S /GoTo /D (subsection.17.2) >> >>
+599 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.532 388.883 437.487 400.838 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-597 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.62 69.846 339.076 81.303 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+600 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.344 334.192 390.299 346.147 ]/A << /S /GoTo /D (section.8) >> >>
endobj
601 0 obj
-<< /D [ 599 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-137 0 obj
-<< /D [ 599 0 R /XYZ 79.37 408.994 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 198.474 270.981 210.429 282.936 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-598 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F15 381 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F75 602 0 R >> /ProcSet [ /PDF /Text ] >>
+602 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 458.926 76.612 469.383 88.069 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
607 0 obj
-<< /Filter /FlateDecode /Length 10102 >>
-stream
-x]M$WQ:t:MFNۣvXݼ>͆׻6'_0I
-bXW0b\.ŅutL+Fˎr3f^_e]NM\2́45tTx<ɇ8O|4 Kݪ%CN)~E.IE۵%GLYSsNe.;{SCv1>Ҹ,{d(&]v ez2iг-$D:R5$頼D.\H%FK#CnIkdzҔ <ź } @J^]7,@5FFL3X%q;!> q!4M y$nzE42(ڄr~Xl3(ۓ>U-hEc ;0#ED#3(u pgEӖ 90/r' 9!iYa;Ÿ @") (d8JX7K3Ee}c2A%E9|Pj
-te}lFG($JqM9exfd#0yrԪ`m<U֧< "{#%L0}KͥLl
-L<13E(P)A-v&*al)Bį́b JAj N 쓛P<L) vgBYSj&-[ODi+u_B$mH$EMdڸݽlS"aJODtʢ-*
-.6KU\Xt_O Rkt2Ih~ F1 j5Ai:Ef48U\ln3FU肴%ifHZ@8Ę-1&66dN·tb LXlZJQƐh!a
-ÞӁ?ߎ==ɗw+p~
-+TN'l޽O~oAXyynGsc[Ѳz8h;(DRү@fweU^Z?54zstQ2_oݎhmW~cHY!ȾhGUeTmNsL]Ì]YGb|1GS6~][>"d1u;.oe)١mWH>L|+ڠU{&>D znE\x~y+y5wt_S{(]իv{cy=LιvK7) K8" eĝw3zc2m-ߵS}p!v28E=ç%IzO~Өnswm3x8'RRNR./;`ib]}u)UB!-u+;}Ǯ|Zx1&„ٰ"z־~R)+O~)ޏ;1쾰4Ia־
-15mǖ}*1zZ29
-EYp5A޶gҎ9E\͑}+j6G*&#>(RrT*pԜVȎCr}"j״:k*\%suG[*jXP%+^$2T ((k.b카c!e(dcKMLy!i0HhDʍJ
-1.cs~>|QМ пwPM{xW%'ڿ*2_[maV
-[|
-k:ܽ|.ϚSa?n[ _%}MAe,ưu%ߧ"ִOGסS3t:x'`y jYƱҮF)FTv
-v%o7
-MU3W'}:>GhzQEK_~ -r|^6
-.D\T`>Q%D3]]sriCo;ŧm=ߖV1'vBCӚʶ9'v6x=yڵzIG3?G/:Ցc %5S&*ڤ
-傊~ u@kkEbkUE[=@T0o:1\ ŻE,9W<(\+.洠\ *
- 6û琈\~޵\,5֠TK\/2Z.J^`άǢlr1x2s5BT1-6CQ[9`(V!c);kX.@T)h}Mi9{J90TkL!P}rRu_bZ\gV} 1 65Y8<oXk$]aP5@*Պs1et(_P#Ps;31' u""v.j*
-j5'"dGi"u;K(,=D  v.j*
-j5"kѣ:|`]PڮUyGl*w@
-!X,q\դʰ}٤]EU$g:c%ד^5YÈD*jeDVGwU|QES`==O@ЈiHUy>;̀t1MtOaILDw " _L6@<Lw nfs#CTTTTTTTTT_3:H9~EL(2j1"QڲjƩz]  }u̔'JXe-7rPJw5_G$dD| m` $gK͒hL7f%[-8T
-F)dq;P#񩢀Ps; `Q"*x.mpHBD%fGr" SQeFD, \hhWk;ܜ`
-a d+[UokD P#R"T1$mR k960$qY|Ӫ]{]PZ%@HZyP@cRn@_\y4>s@L_i_Y[>`U1҆M(3*U0bM!ہOۡզEhGCy5v|QuHFlr^hx' ls=x &S5EbbTd(boyz31r{s)? OUkѤʔ#
-&5@
-G,p(Bd~.U
- H8R!Rc"C!21<
-إm7x[i̳W7&n09_m9N]`qd/c$?\~y6ZMM~N>xxc/S_'Su2%ȭo)JF1]/{xnK}V<90/=~__|]iTMuwO1Bދm(c?&֮"rcot6֬z WuݤV˴3:noIO;Js{pwY1^qV~yp{3L(yS0344lv5Hn[ی?6şn&Z.kaI\aɁ+Pc<[zdWlq&dykZ.UVҳwdȿ5ueJ[cD]4]{˔ix=z=滶uCcm_7]gg4 vnS7+mdw#de=wrA'sFl#Y@}L{LlܽArh=k9.oPB+X{OW ķ{93Ւν Qr}IX:zk; oiu[*!W[&S DG\
-endstream
+<< /D [ 605 0 R /XYZ 78.37 808.885 null ] >>
endobj
-606 0 obj
-<< /Type /Page /Contents 607 0 R /Resources 605 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R /Annots 609 0 R >>
-endobj
-609 0 obj
-[ 604 0 R ]
+137 0 obj
+<< /D [ 605 0 R /XYZ 79.37 244.067 null ] >>
endobj
604 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.697 90.241 218.154 101.698 ]/A << /S /GoTo /D (section.8) >> >>
-endobj
-608 0 obj
-<< /D [ 606 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-141 0 obj
-<< /D [ 606 0 R /XYZ 79.37 276.233 null ] >>
-endobj
-605 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F69 402 0 R /F19 379 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F64 387 0 R /F56 384 0 R /F15 381 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F57 385 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
612 0 obj
-<< /Filter /FlateDecode /Length 8674 >>
-stream
-x]˒ݸ+R^cBUϪýx4^y>2  y/UI]TYDC Y.7?7ӥ.5.?'s\/9%ˏ/g78gL~:٘
-Qۢc}w}voW]{ǹzx{ #v-'ÜP17K1vRX`X?S(y/֧޸ z.C
-k{.8OwocNN6{|4S'NZzS 
-]:D,#:L3>9͸ OCvgO;7ٝr`oO9N )Ŕ>p)K)?*Ǻ$gWo~H`X
-7{yEjR<ŧr @IO/-PcO2#%&1{wx铩 !.f,)Coxa ƞO?៽G* .;ο#t>C&p;A1-ї'?%Uo?yWi}C<
-'݁NP;vnQ`+zh$4P#b1 FGK7l0N s71J($8S٤rl`L6,Ԓ \^-;KYW3mn*p8`v57v0$oGQDXE/cر0G֔M
-&сNN`%jpT|[yh`2;WFjr^d{B2^/mnp$v5;v0$ogGQDrքc+i}A0PtQ2\q91Y9d0K s782 K($B峞֎LP .%` nRYBE0mvx$v5=v0$oGQD! h.%`
-Grs$]IVA3; #h3XFA6d;_ǵF=VR+p9+>A0mnh$Cv57 $m'GcQ4b!˦Jo/.& 6)r*p8fn8=cm(BseBM֎L9X}a]nH]bF0mRܰUP4̭jn$=vmQP Cpl%rX$i5O*HS."ܰQp,̍pvڱc&D`NVBc,`V>+Ǩ6)v*x8vz8AqdnQ`+Fo2f]K
-0 rX$S&GG1jiW# jCvz4E졑Xe .ctۉʱ8&Wڤapď0H*./R N)TNVQw0Wp$܈H8,jn$AapN91c+N*<9 lގ~)A;l8N@S91AKlNx`e,4a+L'u ĢQkR(yMI97hTzFp0磷BOP{xETe!2QͅU" E5?a(8l(c%K ]WX *
-UǼ#)d;挠Gʽ(2iHk#cU:#aMWe>#9( $&u+툺GnXyGCh 1DU+PC+>ߑ؄筿ߚ4qcKIıiHu9#d+V397-&"?@E?%BT7x `+GvɭY5/]-gUF0w-\bͺ/uK?5RJ;:ң=߅E9
-1mRU+z8spH($ QP+᭄Vh%AKOBnq͙|ulR/DÉ_ t -)E7
-Be%8p]~2_2vxMjZEnفNOD۠%rvJc+ɐ2TF?I2L
-kEMxYKXksuMJVQ5q85qԎ7%Yge#!TVh/f>&Rq2[ W | &@m3
-/@VR!,b0%,j*K4ܷ@:ؤDMl;8Aap^5)08[Ͳm%<pM>
-"NUr>m%<ư(L.
-'فNOu:ڄ(JVgEY_L`b0 j W j/eRj/>É^82 Kr/Fa[ӼO[ 膚삝p_kX\tn֑EqCF-]k0790ùiǎ@m3
-Ҽtc+TeŒ+:r5Bet &W:2)1[EDr8NP%9s]GО3r<LO=2*BQN-X D$a5kU{w$z\ΚޔŹ Hf@.hMU@
-27̨iM/8Lu&~;Btd#8aVa]zbVq%w+C>M F[lJ;cR9z^kTv]#=+c6o|,<8T,vi"mF#,W鞶=RRBc%YJ*5\I"\q7Wp% xIՇKXB)G}Uu`!JB0Wcj\}{{X}E(1>u?z7
-X}NjUKW 7][~B_3n
--G>
-_`xڗ{/7JyMsya4m͹u2؛ܦ.혲:QԯNiޢ0GPwx8OVx6]-\}a}IU Sk37 ďf`m{p{^Kl^,VaF,yÏbɁoWl`J0cy &J0LuFpsl{nj&P|7pϱs`~aw;[)m+pG]voT0)/eNtgSrn]lSF/pe>NA!Zh=<a&V., lDlSqM ݫ3/g3`:dGCy:'~sw1XC.>S`5}CZۗ7.Q _ `q] Zj3|ۋ]&T0ۺ<.pc긷1q]icMp_ #eg{xzQMa#h*6J=OγS[2SC GY>w+&WIEil9M@wLޯ
-8ZjTĢ `PZĭ.&D
-W"l1p(-j6(/RH3BZU+r#C
-P8c+ū6$YdJ6(-%Ҍ`
-Z,B JK(u4#$:3T_0%y
-NߨeW{=95EAFA(8Ai1A㖚xd(lʆ2R[
-M A #0 \pNFyK-_}R7W:>ܨfY3lVN-άNS{$:cWbծ$R[ze+@N{HgJu cq`
-m
-d{ [DpNys fMF<ŕ&sMy %[SH5Y3L=@%Z:
-Nb20uДڃ谴2x*u)ށ =M۾Bwkomq٬9濐gy+;"~so F@3"%n91uB4@?:E\ܖSg7˖
-Y)+< #Eve#;6kr~gvõf.,c]A̟@N~#!t2|d~!ypꊽr:WʹM n :;D<(f:͉-0ޞEŎދ}x$yڥ6
+<< /Filter /FlateDecode /Length 14609 >>
+stream
+x}M$q坿ҡB`
+~Cl[I*zɣ-z{{}U쾌6V!$|blukքW"GO?Hԓ _=a~gX#🇽$ayfr ?2)+e.Cu{3JѤ<\ښ Gǹ<"zjiBƈ]Ji*oQQ79ܷķ*?2QSn<t]k;1?>VGR%qΉ@q~rͣ~#/^qäWr)?4{!÷[mF+_;?Cq5n~W8G|$/~/W ~C.튣|W~e|O}ؒgj[t˿|.SBR]6!%7#E+C7&{ݎN^FhxloȤ-ΤTt.&#XHфo?R;o7x֪{{'!rEi`Mߺ륁Bw{h`Ǵч1(XLW-!{l(⟲Vb>?"Y>" =ذ`1qb`Fw/T-n/i-O_i/Ҡ2}<;MVbLnu^.4-z |Yc.mOI&-yŴE?;[t~m-}\g\B7wr&X??)<y}=ۓ H6zIol=[B۳-fb~v2mfq߷f̀Oi}iY?vA?
+AMpATMpAtg k\YD7& J(Roak=y37(64~]w ||=.}k)hRhsq^xhoK3ͺcRtڥxkoJI;[J!y+t_V9)жWG="CtL|m%4覞)t*賫o,R%QH o+WJ*k'4SЇӪ@2h8;zYG 4iCyCWY3TΥCъR ͠~H
+4;\e&;/V44i#z+زA):?T>Vh ;=s)u~Oqy- N\@LҠY'']hV? (ffɋ%PhK q# W̻7A&AЬ3EW ;Aju{ "
+2 bfZ9\rq*zEI:A}~a;d:ɗB=$
+9}.Ax*4AܝȮܨ@8vBBPQ(Фd8X;zY9TmFY5S
+D̵m ·=W5zYA)tuCap, q=isĥ%O`Uĩy+63KzY#Z8 >LaL`jI;U ݹ+\VG˖FZ@R`(@xѩ(8TJVlL<>t-M
+Kv-XWf&ӡҰ}C c4
+42*sP]р2KG9x),*ksĝI[4^<i55l3
+򠡒3w ߓ<Bд RuB (\ph ǝi[ P[|cli?hLBе4!pY`sBxҤJ*IY(KMJE~]E)45r~NZ?Iە[2SS\"֣/bU:OZQ+ K-JQw+Nׂ,?҄WfTɃK$8 EX?)`T4+XʟyOyˍrq<6SV{ϊQjceX6 Lɪ$p2#3˛:dn ٳ23c#V~C#pI=:h<LBR'!/z:AGmfND" 4WiH|Lb{ cRß*Ookot$Z8۷BdEcnf:"Dž(uiYzZj|CC̭23fFeFͻ|̅2b
+Tl{Lt HMB#;DC+ V_<i}| 8 W'C[o Z0*|.pu+>Fhi@_-c0_wЛB#q)f эM
+4NhUи} DPUbA#}K?3R>D҃ ;xU]卌R=ݑv*
+}\np/sIWdړD ܇XT|/a7iهBDc-u !I!Κ7 Vw\;P>@ֺi0htGnf4W?'C"$PG5hP lyi:h~4ɝB JG c
+hnbOH
+6ZPDS3zY)ʓ `
+hnbO{$LDe-:xDQA5NEbG!(l 1MlFRVFӇ]JhkxDbZD!4ggJv7LC84HW7' P
+ G=} \F6m hbKÛ!EQ%ބQ473髛H=--S=:X𓃘PBbϚZ(0<n<ib1o5M45͉-Чx|~
+ *Oa{N9xDQT٨7!,1AlFRD1
+
+|VhWb}E!vM1 D= HSW7'`;eڞQ!a4^}ihbiѕvQU:MkPEs39u0}: =CoYJeZԾQ^^DdQT蘷؂,iVJBSPg Ɵgc;*! 7S+?]LVFBt8 u\hC\a\gvATeAoqI>T_jM\y =:
+<>NY[\4C!N|eNA0;LД e e-ɋ7@@3wRFCAA|-<EgW{T\4aG^&vl)
+qJ J!P)9*f:l/K8_ܪQ7o1j(~y1/_gj*)mX|zG(>s}/U\97zV|T1Uޝ "(wZK՞/.]*5:.XJߪ29
+ސۇ΂IԳ9]G+e>n__Yg>cmfmvS>fs5.pTqւo:&iÖ[ǰrccع"Qxh?
+N=:^Raoi=D{F'!O؋J` L>qݣNTR#IYݬ b"I4 ttZ v.O<h(QLrnV2 +S`mP\a)ɃQn
+ML5ǝv3?7wy;#jI1ˉ iu9M Ws Eo4gӢPK r=)snpSQ%f2v*;ՕnՈQT33I\WA.NJS6#0Q}ogSPF5#33j%pIxDhPuGu
+Aj4g9Ԃ&RK ;Q]
++
+)2umNgvR7МÉzrnjq>i\c7) 0L 6&k":60k$jhDݝ\
+0M ɒ9%/cYS/D4lTC$7ܝs|i.or}.Ѭ 7= YLLڪh莃 *JLJpw_eqVp@w _"-:!XqHi0' 1T;emqQK ;*J诣r pY"]f/r(j|ԝָ< nkU |\bo nV&$}\3\wM2e U*N [\TF3A|-<z
+OkHg¡.v<wxQȨ;#,a']4=$* S!XޡMsm؋#V'l~X3,f=2q U:NI[\T4CaN|!h]Zu*YTCCvxE&_4jI Gl!j)+EG~'.ͺ)):Utic1w<* swk 6p
+M!'&l]<GqQwYNhhY/V*·.^Rqv^4
+_8ug5.c PwgVXɀDZޣ"O~;BhV.ja#ScQwYNHvh6(W9bLTiyyspFd3/p6-T}ZA,KįaA+u1KtsY)Ϧ}.3
+TCcc׵"BK&H_fR}ـci
+)#y/::Me. 6^R[pAܝXY?)#y/:ɒb6+ 1`#f. M16NY$X`/3Y']],B!b\*}2i`&LۙdԸ>L?vöo)CN&4Xu4\s~YY&Gtƹ>#4uqTᅰ,W[r8s>yq$sC?KݹP"͇g#_IN+QPyg?<8pBx&Ig=y}-yk~w]E8_uF5yq8L%46 o4*vP:\K(Rig(9'9?uҶVJ=)o9×H#zۍxP!9<MC 9-Q)u
+͟uhpik=_5~q5m|HG]Z[;?[gWuI<;+;48%H@bEk\D3o":?W1PsUJ.ڷ[Ro|:gmc?]9.s8ޑ|-<Zv)p]B:mnMJx#6Cr2-_[}{ZE'냈sA1Jj;˃}}+39]ui WᯁuͰrf-5k7۬/_Bo q-y>T&qDþoI~˼pz)x3L\
+D2WBL]G<nn|PY;9rN\ar;:Piߓ<BǰCa
+ݚV3k҂Ik5v@Cxx7 N:#vtݢO-Q45I+VwT޹ lĪ5OM_E,35%b="VmaҪ޹U hQ
+ pw} 0Mee/t1pѠlTWRW؊AA+]hi jAq-tUUUUUUUUU/R
+̧:2:68Q7>`(B6KGϪ͛L-*N5;1A?Q=)L Mr78ߢР!l5AH!$=4ّ ٷ
+x>C-:Р"g r [eMPFQ#ތPI[ >[!3A-Xgq25i޴ vtW` 0eT&IZDRCÑy; @\{tp4 4%I>/D.\m{nMD@Ez3vG3C%aNlEb2$J= _h8;oe6La܍C@@Ez3űH3[+\@5pqh6^kbZ,pap"bjlԛqְ8* swb+) o*dh#IwH-܏VkkFQcތٙoVVCyHޣ
+!!BJ/w̠[Vm)N
+!Y#qY/ٴ?v]f̡QؓHx>ѥ=:8
+*w2Ah*t{}2 2܂H4 sy$O/f]"f"̡1ؓH*u^Ljs{t0@\%s HwDD
+#p-4*d9P Ȭ<-GE!y#E#y11PdŞD4)
+eG\ڿw'?oP~sx}cq踿Zt4No"X_:ӾC]p[ᶪiOaTʧWFQD*c-Z- SRf zJ5\e,-OGURu߯\͎A8'{T.2*= mւ<ʃU)9_Hm̥zOi\UUtnt9>+4P7Z>jT\cei!E)E<M[+HrjeoÏ5$9J>/nQ:4'hV.hkb=]**RsN1ʊUBoRm<sb?TeK凪]kX+-fLJHR"VZlQsGhf"79?4dOu:s{W餳|`O˒ה~O?O|eu}$ԪGa7^q,ׂRhדSmph!Ri>iJO^+1К=v7]>vngsr?h RNufse
+M1Yzx?2ʬ?W[+Os咵m{i^&N"Zc`w*hu9Z"j,^oXv>n<MS?vmч0ϩm?=\拆$r+G4_k ߬ MfeZEɊ(Z ?x1
endstream
endobj
611 0 obj
-<< /Type /Page /Contents 612 0 R /Resources 610 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 550 0 R >>
+<< /Type /Page /Contents 612 0 R /Resources 610 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 552 0 R /Annots 615 0 R >>
+endobj
+615 0 obj
+[ 603 0 R 609 0 R ]
+endobj
+603 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.62 95.424 339.076 106.881 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+endobj
+609 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.697 67.03 218.154 78.488 ]/A << /S /GoTo /D (section.8) >> >>
endobj
613 0 obj
<< /D [ 611 0 R /XYZ 78.37 808.885 null ] >>
endobj
-145 0 obj
-<< /D [ 611 0 R /XYZ 79.37 460.075 null ] >>
-endobj
610 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F15 381 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F52 376 0 R /F20 382 0 R /F55 383 0 R /F40 391 0 R /F59 393 0 R /F75 614 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-617 0 obj
-<< /Filter /FlateDecode /Length 22480 >>
-stream
-xݽO$%xO;O
-R)ѭBl5O׌=GDFJF]/I:<>ߟ? 㼝5[jQ_~##|Ǒq|οП?_]xae2ğ+7aBky1:P9;sɓs+/8IӗTˏ%eʑaӳXNrHuD-^)z=I~ #sߏ2kYg:v/:v_BU_U<)o~k0tH?ڎFMI+._*(+*:>RɹzN.)yu;PhjT+X^FkԆ?Z?clL񷏭R;p|yo{qKga\u
-9N 5; f fԔVN<ak~ɣojnZtm\ww_0/ߙ ~u|wwճ(Gmڵu=yGNkec{/7{*eS{yF9_cVo\yuBw9M~׷eYԪ>K$\oٷ~n=GO~,[|t?{*l]Oo6]1uf ooqb(ݜ7Ol ;򶺔iE=|[hu#Q0|XNW{|؜g=8ۑgBOǣ!O;C<fKomjyo-y*#ܵ=[j3Dc|xFG*4ξ?az[/S}B=<>z!9= 9X<$i.ۄDmaz;<=< Q@8R-T秿Q.t織4$𞆤FK! D1mX
-=Z
-Q ^>zYPǗpQ_1R?>?, _?&ռTFj_J&ڙcLggD5sw( KBLwK#q;["_z@U1R gojVa\Aa]hvw,bulA^wZ+uUժ#oTHuꂽQubGna\h],/V}9՗ )׷*Dk>閎zFw
-1WQVߩ)Sf/yUNNUN%J;LF8Hv^UyA絠NN4ib^_YX.U$U}U9|k|*KU9s;U9BBߩ9QkT;59B5H߫əR;S|&AM~\J
-q+ό\P‹5{wjvyPTߨwqBrq˗}븴e<YW7 ߷'ݽD/%P5]F'%Nx]N8UŽSo.ɷr> ynf_ַ=m&<탣˯ws]>8=YjyH5;5a/bީ9%?:=(alŪ|:{_N7ztǝ{{4f#oT^Qý޴L'|;JvPgZ4ZvlrޑMHW;Z}@;ӛB|&K5;!wjry}&s7`̽z9rY3l8ߩTȋ3zF
-Ezټ^#=bK9G# z7F帶GG7@~@X%{5&wjr{5'ީ<)/ƟWeMF[-2`+C7nK:w?[k۝7<nu7qcensxRKPڻGKwjWNyx^4o-sgn EVd?'W/sgQ/`{]|oΡ~@c+s V;%Ł^@), |}8L<,7~3 4 xbo o#^ҁ~RJ+Sީ2fzN:mZu
-~[>_#*>%5UU_U!UՃQ|U z_U=
-WUBG!UՃA~U(z_U=
-WUB𫪲Ub"?=/>DU텇=<r d 8M.~wJMu(e_~w@Wң$^&Muxcce?okҍ1K˺.ݸ\DjQ{Z/=br{ǯ,HcPEmjG2s]|T 8Jfr,;@hаKLJ_!:tVI -':Sn
-?rBk=9F'ARx-$yBƋr
-T'᤟/5j=Kc4&<;XhP .?L5:F*UPV8:i%1nʗU(
-- V]tߟjܭsPBM k$BU ^DI =Eahyy[8%`(+ݙe%Qn,[LO`UFϐSr$@Gp9VņPz,~F R)%8{4QUA@yѮf,pяxLYlk)6mt]%$,u*%``(+ݙe%(/,0_(Q5
-9|,iw/ZB[kֈS
-,ZwJHQl 4!~c,¨i)Z)NQorsݿ` L)MD]dWbBWHMf ftQȮ Ma+BK@V K(M"U ^tQ& vC/O`uPڣ(N^ӰEC ׿@EןE}T)עQ ]j"\M`Ib5?EWԨõ>PY bChϹR1`Sf怕̲D!TEЕVe#t
-gbnhFT,UEM>pjͲM׶<
-T=- U ^to6=#&.R̀H՛ap
-vG,{)>S):F+@قl6A Q‹ݦ~9xK4٩A[¦lG&,ө ᏇTwIFL%\ГH]KM=Ԡ՞𞸰)Ց 4Kdn{GS~Y
-m0d͘k3]<^O[AKP𶸰EzSЀF",ޢEnb7cZ%Pe}/8:Cv:<
-]/O og% O w͛?4mT/p&,4rP [b͡{NX<K(P CJ"zBS> N5{xOEBS>tI 6-2ZO 3h3 CQ^=={hN/xZ%vƛ@4*>8RgiǪ{:f_:f n, zp1 H)]Gt3c4cXqG:Q'%*@l bLGV(C,9 \
-nA%<N7k`q bz,PU@6
-@d8C8xywec5,Rul8P&"`
-6.l avMGV*#,; \n{ v|C&U@i @c((Nܵ_z
-BD
-bM.'wd-3\E煬9܍жC
-ORS(Yw*ޏݭwʇ8Ty$~9x5:6Ug8xdgjlFC؜CJ"ZiQ];X^Ah`\u)¦*4P(㐞8!t l]Kg#uHC6m8U2mTl!A!JKX l
-/#h@at^ }#\ JX>5Նi
-@Umt
-Ýs4r@:fB#ղ
-l&Yi>\Z|>,:ch~: V7f]vbl. BEQ^-ޏ Go{Gl>ew |
-g<7jq~J6ls0;8wOIݍ=@a3jq$q>xICګwȆpHӷr2Bǐq*-WKdbaؼaZje w{|CX7UC 5m
-]}riF qiU+
-]Cy.X|
-9# 2
-,,F.¥`I|/PpƦs]jxJvTOF2epGx( ۵|[DZ+.J~%B hP0^h@^<>&:j˅ 3teEN@(-
-JvL\}W
-"[}b0
->I4\<ι?RѭW!6K'WܴE6>I E˵XPBǧJ%\y!(EnhH%7^zD_.: ^6:C;}3ϧ,ZVekq,*l%MTZBdlgR}&RJUueϼԐʐYR}\dl=
-&\R(7+jg<H(_Fu<AFu<G*fGwc' ełIGC W`+ U5Jy.N!1ZB dێ>/_؟Fܯ3+@Tlf;!ۨ%`pZ0'Ǵ.}BUR)e4.hjmTF:¨b3Wj/Cj} -k9Q\.%?Y)p>W+O 5=FyQF({;)lE]vYcʧiѼ^㈴pUF7-*@fJE@]}tWr
-"uJ8#J
-9^Yj0]8JԃvCyIrᕋu'n^r7pTR:~*4E:Z񁽶55IZE3Ut䎩+кv%(n];@
-FPOWؐ k9-a}>:s+@cw'h9.0Q6wRw#*'Y M2L>B!
-IZE<بiy ,VϙDբe.S)} 1ONPgjng i$\ Kl
-t\V*L"Z鑷3S e .ՃIi+IT1@x-a',;Jr }{_0VV Rqp4-8JVj@Ib3-Inp𕧅J(W,I>_S WڔKzgr{O)&흵w9:РYoit<s7ٺ(BCp
-9Z] \90P-^HHщ[ױ6=S=&a8GidPx R&xn<:%`t\aL|<XKs%Pj+Tj:cO!eΒ~6X|[ ,RS };MIzFfٺ@>J'؀
-u+? RtѫpEʖB+J5=$$Wސ=?:$9~ 2]cnBRdКyn>9,=H BS]/=(h5W-Cל|Pe@_yИ3K3h;5g*rrrg.Pd
-)R 5mL?C7 aA4vlA`m۸;bt
-ٹvIAx>΢_-+LC6Q!
-zrW;ځ((sS</h o1x΅boamC_wJfᄩsrm\;Ҡt(`܅O
--{!}ChBb<%bSaOy̥YhTL
-ם.NF~۳p Fe
-cm"Z(uϵ!'8)gUxypdW+A!`Yb B7J &<]1B/6C\>iZ3%:ʄ
-: 0
-:p,Gig5p K3剖RL$]5azuAyϘ+
-}ky_s,̞Yqz" m/d2uH7\/)8_k{嵦8+0?7ȭ `u,4>pmFälpzQ 51& ~bEr+EW^ 88y`a\c C;/HF <IK
-$ (Yi>"B$G
-/5sjkw8 0!U-cm?@uއW^WEp0q|'?`ad&(w 5Ԇ9Bcx)aVjCN%z C7>٪<EvωL`NqRfM"K(._3]XZxV!^ݩ·UݤEHY-@PJJpTY e|ӲbOa«bY|r
-,{ `Avz:|v%뼁^H-6;s2>_A-
-Uf?,[?DX[ߪu^C8z0㳉t
-P"f)N0Jʆ^d &f]eO )Bq:@9xuu,NQ#ǽO?yl>JĬuRDP8 M5w.@Q;wԉOpgOnjY^>
-N)j[)BU P^Ç - 㛈V]+=RvH R)%8{4QEF!}<DEuψ]`oN~3( 6]Fitg%
-w0y,aDZ>Vx41Ja_KVi.t ʋv5 d+ncXPRU#KY U.4ZsJ@:}`"/x ğkn: 4!N) ” ҽU ]>VY
-#r ,ʨs
-v>YZ"[|BEj|@MíDt"Tӏxn?~]wVJ~M(SV.d Z0^Zŀ<F!(j"` P϶=x+%@`FL1p@6/V)BMMxD]j9cQ}Q%q=,/CUѩd+,NEEL! =FEş(h^7ښ:)Ixӗf93RFø%66$R~3z.5ant;8OTl̀-B`&GLXh2T Qxb/`.j}{pUб8^JnR@MP`-9aRlT1TCT,mPxKZ7gx?q-Q(r= oUK!Ϙctᕕw]xiśP820CUѩj+1p0^E1cS)!u6(&;ٙ3N(&0RfYD{0{0F$R"2iǰhҙЮs-%cZ3
-&Tj$KA]4_67d1dFf`!%`h"LM|,1PEe"'Q1 ]'XK:CTT \Bx2FoeKa5_&67d1d`!%`KM\,1PEes&a%0]UK:#'T \Bx2FEI!Hާ6/d1d|f` %`hKM\,1PEeS%a/ ^SO2#ď'LtR6UnŢEa(Lnrș蒤s/&\SC:d!:5R N@¢H煼k(BddE&r P{ %FThv&
-ܧ:I]Bd4Ep\6DcV*آiXLlw@GD[@B $
-
-5e?1*8 8\S0sS0|(|,!,lfIY]g
-Uea ǟ~"o%g?p }z=o-׏v~?_RNv]=]y/Oӗ
-Gѿ"!B""ԧ:3_+E\} 6@YX&d-(}K+Iƹ_RiYĘE/7.?ATAu@/Wm
-وL+9OE(׏
-@mٻJmV/`'B~1]8UumcFgx5
-uIC7/TFRy A5:!>n'2ό{?W~K7T̯ o gw.rHkD/u5ݒ
-NDqM1*6*|tSzeOTtM|y
-fq,ٕf0+=·6=c2vKGx߁ LZbIX{Euo_L~wНjx.Ϝ.);N,ށ"{>Lw>notκ3˃ViLOV~Un:e9]6n־vCq|k.lx*\6H:5|z'% ޟ|?YY|/_m˜ߔ<>| [~Ko8m[Ckuކc$ 8f֮:~h/ϝ~57< kyHrGQc4Ѩ<y-?ͅ+$?e58iśU/_oa_,8Z?16iۤkB}js9bIwX,Kwy]-SS ^./i߂c'qO|э=FCQaVf,4OjVþPigqSY_˺˪j/詖^9Wk1)54!xkWkכo5o7ood/La0 7.x;/9G>4/>fuǖy[p$`wAG`gA~r7>
-93Yi]Z@WBdr
-&4:uްܥ2y ӓJMd,Ϲf~PQE*zaQ+s#Vܓn%iejʴLxj
- ? -%$3 [y1@ԭP#\
-= "]#oc F EzJm4PQnIٛIVO#%UJ̛dQ//.!_ elc^nk<ygrOcd'۞/Ze^uHJc4E)OB-bj$;;kV*&sNmAR3ѹаԅeѮr£w0Z)܎
-隣7$@Q lb78#;&-"A^_ /F˭p&B"5 e~Po9N>=CuJ‘yMx4]*zYsnQZB>g+9SBu*zV^(BwñR5- Or&Z6M(Uh@`
->ȊY h̲d;$.DfiHXTp40h<+D; 1ֱ f6'GGƦU44w:\lMP։+7RY"Tv)0B0GR>zvo>u7ypq4F|F]`UF6u5V |dgjc.Q
-0]'cv:BAzn䱣HHhV# kgiTׅU??С@A>g3/ Ӯp@y;ȤJC/ {n c[FviddGqxesu2d.0FRr;;?x|<gV$/]x!l(;15%=F
-FWJcn?6^L,ȍtavQ&Vqe~ ˜X:0A>g3' -i'Fi&jV^x$Ѹ<xo?O1FȌj9jtPnD k[JBіy2Qs830"L^2Tp'1&[t^PN0F[ūR뀌
-4\YZJR8 H25#rGZsOPd0F4g@<^/
-but HXQ(|eBMP^QHlŸM_yc¨Ɖ,TacL<
-6 [1-𸻍ҰYxdGte 9S4-5
-[&+Vmx@p[3 JFB-лDl;a4Fz.RK*z\|BQbɚ]quJ7L.y̹鄔s~ аTdMĻ~bXmQ2K\N0$<br2Ѩ(]ХIIJ˳%{/;A.rKkwgQ6Fܕf~-Ț ǏaHV*Cfs A[;N^@y Xͬ h&4^M!H&5J>剉9&=9{1 5 s8t
-]A(P& Zly, %cAo;Cc?֔
-IZEsN<ftjm.dM'4 Ex Cna4 yKed7Š5;psvޝ'F,w\gFG=^h%66àbqIޒ֘qw0*A?1@À
-PP"J9c2Q) }d޽ONP5pER-qirirLHP#
-7'#w<ΛijSJ`
-cQ:S:{4A \2W 8|P|bö$嚶Gy
-c@q{5=Jg\g&h*.zcFYCpw)x27 1E*R')BfTX8U.^Mp~+cTDަt5W\-uKB`&FL뜑,L%E%+hK A <+WMٶUk%R_drNE[h%K]:Q#
-]>4iν`% ~I?U7nQ<kE!!ӗ:]UED
+618 0 obj
+<< /Filter /FlateDecode /Length 7492 >>
+stream
+x]˒6rWekQG]*D+EJ<,G7;@>
+߿xKM.,}Vc>F JSU~<<ce>GDG
+d dՏl$~:d7sc IRTj ~]{~V)K
+E)>y͜꾭ܦOPu~tXZWև=$C!%-@3iIߌst~n5,.Xh,w .n_g?_ә|)]CA֏>wO
+?r\MwÒ|$۪,Eڹ\ g͊wP؅uB\9tնw <=rsR!>̵wjyZ#:x|h.?1ێEܒuc"`.`]ׅٹ߲0۰~lbm>}[ƺZc5M[V|(h׳hUppf5Q ݓu3K֮>ǺlZsk!*lһ'|8%?ϔۏ5֤6I4^uə$4pMcמ`|I"neK: xeR}mi]9KQ>!9r6}/ۢc^uJr&޻ŗ ok9r }jŻ7HpQ6g!)ABp#ߕG~>ƝZR
+9|iFiFmr.y-pn0ws_Lw2/03O,˝>rx?a}:'f
+gaBٛ3HXH)zCnA_Mǯʱ.ձX
+/᧋}Oeك`f'q ?riƇO8)cO[g^N}O&lػK!C\س}#_e!%x">BL 9$`;
+gǍp`ait(pί 7{3܄jc " ?z|
+7lNݣ,Гj lDBl?-IN%⦐lk\CZ'U H`#0,͊_1\132(վB) 1dBepG#bTUx
+>7=2Y
+L)LB u0U){L>F <: 1$2" ]M$( Cmv~4E>w[ OXbi%6LBU:2)z*x8vz8AaH ^G"
+롑@!YA6, atpIqV2;pCc`DB83M*Ld2J-َj!G\ʺip#V3c!6x;="b,)'v,̑5ehG?c" djt? 6X"d8U&+&Iz޹2R K~ip#V#ّc!6x;;"N&[ .%`
+iP6\q91Y9d0K s782 K($B峞֎LP .%` nRYBE0mvx$v5=v0$oGQD! h.% H_r= 6)r*h8`vr8Aq$mK((Bs<kkG&(ZKR{&V|]8`.]´I+p Yp~گhEZV28.TT~K~q1!8]IV45;phD@+j:v4`[.tC
+V5i↭ dnUs#鱣h[čhslV"ZJj*HS."ܰQp,̍pvڱc&D`NVBc,+MRn;ck&[@'( Cm=
+t.#ZXF+$txbm&)2 =be<QKIP;v:܄ӣ("|egBe,dwcNw1bUM
+'݁O1
+pbJ)ɻMMukuse_N2 ǘ]͍$; n`pѱsaoTS6oGpM
+'فNOD۠%rz6
+' VzY2r?0x 'u ĢQkR(yMI97hTzFp0磷BO險Փzqik!ݪW$ ]_7U}*+T\Z )ӢUh(I!1g8TEI, GZ.
+
+ҕvTݣHE k(
+ww`%DᇘҪ_ZZۼiZbm~6W9wX`}Oc8{_c\̪. bK\r
+b0^јkBW>40x`F]M_s'[<o17KO+o1p#tc}^cn#\Bbbw|>-1j&X`>:חù>s? }V^p;< q5M{dᢸ=Р;yRy}u9fN@PΖ'q9Nh=ZqT1KHwd-B" my {žgm9Ԛ}u
+3XG"۴r DN
+1kSDf_a:ؤTl;ȩ8Aap^S)08[͂!m%<pl>
+uqXTnU1-ѤQ& [ED$b*OaqJPH[
+FU`qѹQG h ;J(Jm%ꎭ$KPøW0uk4Lt8eR2<rÉx82 KB<=gh7x>c?kJ[:f5S:`+jH ::4
+gh_eڿڗW{S6>>@,hME@
+9rķ4Ftl ;*|iƇ* xw/q H^"`pvZiKZY=&ȭd0)]4` <|(3#ǽ~Pi sEuMC[
+2z 9Α=ćO ,+OwF>y5&J `b3(eCwhs7z1MO`V-;<Nǹ>J°+^kfڝ=ED Zyl;m[wgcɎ65=?j$Ü[ 9*DX3Lf~3*|cq9W
+fВc-}e E⊳YKkDukK[<L[$-ՖvkK#-
+;.\K|FRsV3M #8ZjTĢ `PZĭ.&D
+^&PBKCV_\QW!ldrNL%ԌV
+H EXL1FU(GB Vj$Y!dJR!QjHpetňc
+*(6((5Z3@3<Z*+rd$2"J` &,.!Y 6
+
+%0{xQiFHt0
+ͦ.[E~RJ֒5HwR,,jWYOZtZZ uc}uM ޱta
+8XUtmr]!_ UK toE@i[_ů1o1=\=hS.A?HUar(/O
+ehyd
endstream
endobj
-616 0 obj
-<< /Type /Page /Contents 617 0 R /Resources 615 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R >>
+617 0 obj
+<< /Type /Page /Contents 618 0 R /Resources 616 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R >>
endobj
-618 0 obj
-<< /D [ 616 0 R /XYZ 78.37 808.885 null ] >>
+619 0 obj
+<< /D [ 617 0 R /XYZ 78.37 808.885 null ] >>
endobj
-149 0 obj
-<< /D [ 616 0 R /XYZ 79.37 400.5 null ] >>
+141 0 obj
+<< /D [ 617 0 R /XYZ 79.37 771.024 null ] >>
endobj
-615 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F54 374 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F17 380 0 R /F20 376 0 R /F69 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+145 0 obj
+<< /D [ 617 0 R /XYZ 79.37 316.433 null ] >>
endobj
-625 0 obj
-<< /Filter /FlateDecode /Length 5486 >>
-stream
-x=M7w:]0{2`O,
-H.'<
-0t ɷe4<!7Ws%$,} qptoB7aesx;;(ux0mm%E't"9`LHAO*И| '# $qpj(V7߈!y !W0Ƥ[hUJ4K#"R"j%{ bYH"cSH
-$fNpnxXn:J$$^R>h51>2y;7OZAyS{hTG4 ZٗN%*v ڞ#_cm2H~ihÿ`:OS{C5eԚ,s{CR|i@(ˆ.zWݎìkz?GSܕB\Qc >s!^tim
-Dh^/6 J~Cc& @[Q4:X/e\aWFM13\Qƅ/{s$AH[)8'&2dI|pW6P?6YH%he6
-9{O+fyr'$LrtN&\]m=k
-~
- ;(,`0¼ü~u>C89'\\H]}<13XҧFm*A!:ܗXʧJ:pn |FqwmOM}[>YzgZ]a] YjD '.Xyhmia(]cWAB[FBRNv Th A6gʔ¬8aq-@)l@0oIC|(i!LF="
-c@B[R\AAh]d A6y2rհG!NL@PAdPV6H$1KVTf m
-_
- ^ 6>0>bWE|mгX+ `(Llډ€U #
-JbZ-_!BgWAB[
-OR\;s=yk@
-eUd ;Ǵ CXpRu:
-FO 8:8!FiIAL2ކU !az4VfКH,jjԑ 2a -wF|LfW0
-Hǜkp!K&3DX5Hn163'Hk-YU2#+4NMa*B CfT8a)^!D+dl
-ʭ
- JG0vh%Df^ӁpM }F`k#T;y2v"2$HfrBJΌrB!$7Y(A^ET f]4MfȏXU* dg:M cLUehZrf,t u c -qĢ@cєh& X.DZ؂1~y2 oa`%G 4G28β֓ 2@
-+
-aʏ`+ar1'hO2C%a!P՘1 F6.e$}1k`/Yxr=Vwg\Kډ[$}A6
-%3V
-,"11F?nGE$0! 7%Q9Dιc<xPDjCW;׶ʳ\ VCrTԳs%kHwI_CW2ɹFjHﷆ3jH_D^9WCEy I]AQ~EPZ߫!Q}ՐאG5$5$歆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆_$@(x%kjHD J*jݵ,ĵV>(>!t>U|q$Ovp ٭q59q)Maq 5=zzMh8&t$]tجCf&oŋu݋l8NٸwߑgLTc _1g4yx^20zp9gmW#>Lx/VrZ:e3/J,ƝK^~')zF9H5WZl`zFRU
-).BjGב4{i\pj _w x;
-xRa @F.5MGBΖ&R}58K\ҽkHKЕLRz~҄.#=b ;&sètL+~V_RwhI#]
-YzJ<"Eh[>;륌tewѭqiw<J},eq\oSGW{NΘ?N
-\f_vZ~۞]OMC!=efxH+گ6w:ccܖǧp 2]A<h}+uitnu>X#  m83k⾌4a#ml͑ގ]Mf=]W7^L=^u+6n Jr`57v8/ꍯO{k9YŒ&Z;]ůgݚ zmīwx2Džu*
-ki_JGʷ](WgeWo䷒H [=(ҩN}<rc+ RztԻ
-]]Dy3?^~=`m<
-7+;ŷB2` !%Jsb.Sj
-O8Ƿ $"پe*$A‚7Tް{2JC<5,53XF#,w僧8aV3;9^u_ 1`43[Kcrac5Lv2M~f+DXf(K7+tʸ[zD[!nIF\jC=L+HG wӚNMorq̍|TP⪿p-/ JS dM2滓ZN۩VI/ ឆxf|ˁ.},;9nU,fQU IBjtRxtL[Oz<%"ў^ 8)*Tuڂz_>>X_tڢR#W_Ve-q۞e9 psS C q,dxuknnug +o:w|+1Rz]q39m\3gJq׉.qL#0~:/Ц])SlX5&̯
-endstream
+616 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F23 379 0 R /F20 382 0 R /F29 375 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-624 0 obj
-<< /Type /Page /Contents 625 0 R /Resources 623 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 627 0 R >>
+623 0 obj
+<< /Filter /FlateDecode /Length 19437 >>
+stream
+xݽM$%ׯ˪ōv(ԬZZ r
+X)H
+X?/{mb=oһO?>⢾_?z*x'i\nSFf_N
+9(d{h-Fm<7i%w{vMyf#H5wyrm?n|T\<S ycx|SM/l<z[
+o:(=M&%EmGJ|ǎ[ۑY)-edH/n>7z;BK=Qujeۡ@A8{Xf57G=%zo[}LT3O +Ej4k􀙕ֲSB0# 蔐lĎC(qzM4zCaJ[ᵠVQ9#YӑQZihe'Bhƙ~jDrίkHHiGmNw
+ NWPQT,zqc 4'f#ptM! zcM?Gs$oy SwvT{lQͬƜbZf ēIja(b%mKd@HB'@H )f''[ȣ]+CT ŔzRZ qو]9S `G]Dԇ9
+ёc73]`~.-s˨fVѤĕ!`F@<I)I!qnɸcuH^Rwbӏ_~( o_roXǟ~xϭ~+'"]͟,ŏ?Ľ۱Jq_y/+ 4Keb^4/OhC%ի B';O#uq;x)go1J߬c٨aʕP8/4-BϣԾi-n1Ɠowa Rm? ,—:")[o?#%ySx
+0fF!8탘(Cڨj&"3vѢɌc/2r̥@>ȟ_d͏ص/CzڧѫHw^q% !끺eܾ^u+ .LHqyԸB%Ca-+B-La__mD.DbI 3E_Sf}xN$Bo޸z-lWV?Cd5H1wmb KW2m7o6{5Tzd:ӽq@TOW)i UWgZJYf /@5ϋ^RkdS}Bح(Dm'5-a~XxL?lNwYܬ[9w xc{Fk(>~,%޸B;F58ߏ}orԨ/JC5^}_ݟG_QU֧op _;ߗ,BOa#y>Z+첇=~P%k?>~ffrox-J➫:>k{$p|%cJ[w|^UF1)ZO)M(n-{!\5\i^}ŷ {2荍\pZ^b٢@ٺ 'rGZƟiϫd)e<v/R_nO tBiG jI&{;oM</ߗ-
+=Ϣ9v>_\8m[gD(J=b㿇綊2/'`NUS?lssHoHtP:{vQ.2r;>{O[I4u-v$G7{|Y\Z:엻2﬍k 8wg o74H}Owc[Ol52;Q= vz]׍w^z>Se-j~6}w5j
+es}wy.~Poٜí-j-&󷼕 qӅj^oH>'͟oT}nۼZ$~{?&Mx9qxhRŹ&~<4)VXxmt{l
+n쇟~x7=Td1"x7JE1ߎ^ȹo:^<M|W{hbEvRy[BIxyj[i?YJpfǧƻϏ%c_Sn3/O)H,U/dcgژ[뇣a.O_|4}{䃡-oy7ϵN{LSE{F‰n:5Ԋ'ܰTV{''饖v_؃q_Hu_ZtM/T+2gW*r`Ŋ_1ۑXyGzÖr<YJ4l: o Y7lEj2_ɜ^jrK5'^<ϻWe 煪z_ =2FW>cDqϜ?>ùO"i'Z7g=a'аxOᕆʼnR\K ᙟj\++ɋ ap^hX97r -+W;> ލ!ܥ o=E)>ֺB]>6o1Q|žLD=\y.Q;^LS%JkA[W !3qr"8qarΓ+ ̟8qzfO*$N/TlI^ؚTgBz=_%zX&R^?H=W:gObB͖Dꅚ- 5[3j$R/TmI^U{&Vؚɼ&L^b&V8}$V5N$zIbBCL% K|CD$Z0eW}D?0z*u2}6%z~sy>WJ_?
+L,>uY8ՙ/UX%? 2-vX] bue[.LpՅ l-V&X] bue[.LpՕ loX]+bU-VǺJ|٧t5>^g0}rP[/^ Ͼë!`FK/^!Ͼë@Oʳ_-gV3nϋ⛪ }5|gƎNDJ}_c<k;*V{=ƹ'hu#[kMXMMž·jqTys ({<0eLon+]0)}L;бAyf
+]Šc8B[TD?p8R3si
+XN, ԙNB]BZJ?H`eFSr
+[ |T" Y^ˇkψX
+3u
+h^, L<qWzo0#,g'h|ERĦO)\W W5 2ؘKSJwbYt'"BU_(ר>?s* i(0TJa.8R؀Õ@J?_
+0TJa .@$d.E,I <U,,
+uAa:iUC@*xRJK%OU(5{tq*_E7EuX?`E{4Jg:ـq
+8$},JNl!,+Epf==ޥb\VS%.OE,%2awuR.X@ol0Ka`.A-݋:I\X@ T#Qu{uJ拠
+ 'wPQ"kem;#je @Fx2#ZPp|M)DG-4 U/7ܽCF^k]6]/2'ދLWz$p3|dqqOA*6^dJ|TN&/ YdC OWqNh.ZG%٩AKmLQׇ/ Wƌ$|s\DϞ%ЃFA=kULQ$s(
+U’n
+e3V0%n>X?N[HKP8} ҋSvDߐKqoJU낆.daJ9UYg312Q{K7߄f<4\]wΧzV <`yB~ :op9c("MΛbE{W%(YE!0T&DzB id Jњ=cy6VE)o:NLlmO #h M:=kjv)xZ%6l
+9S95pDsv/#h L8=kp l4a0Gt |Sd؎ri^_ef|~
+KD մivabbdSdrOt#:S+]3 91Cem
+kp%j`4r1
+Jz$ Шhn<Uq L T̄2
+UYKW@i!kWƲŴ-ma(N<
+V"cNVS.Gu(.=\4XJ:nԀt36jvᴶrH>•ZtjBU:Y e-(܂cn:VZ.rGp5.K\ӵXQ:tԀt36ji*\
+sQG">…oD)t⪛tKJܚ vFM&sH'>U:Y褛db:[:pW
+3ehRgN5}t#\JHB7.
+x,\9\8[SbpA`YU"YW.ҩ!KWd3-(܂vFMݞu8\$5`a$Q ]/Lsqk panM 10S'N+;><-B!z4>, \꘢%,X c;h@}b_e>Mi(I%`ty||aLʗJ ~L'!py>sB~90H+QwKv
+
+!Ѻ)X@sH+p M;U"t c:.ʛ*u2?)u!Io
+[B
+}(+GJTIC]S+M<?)Ty$9xvt1:iϋa3ztCUoGC؝C`Lቴ"r`s y'v刎WI B?!g'g+CgkXlN]?.a >ߪ3핡T!@0"p|B
+6G%l?Ҟzլ:%Wz@pn˛\6J1P=:)R' ۑw&Q1gUE,g:
+1Cem
+A͏G<<H9S!'
+kp(ChZ@\ĉf|-dWm.TH}HqyP~ft1
+1Cel
+,FYݞu8 \J~>.N:ch~E:4V5-#Enډ#آ3Z,YKu<=G[-ڶCp Mpk aլܨ}FT?j*36.98(Cvp#eF\uc"8bX+@JJr1('5t{r Mq,-2MIT {8Ϟ<jc1rUgN96{|CXuoЛ!'`ֵ,ݐ9
+~ 4Scr]a0 1kFΙN bЧ9t=P(,;4 :=ѿ#؅0ءy|<Q;4L 0 NG=Z "EcNܑl,qu,Y2PߓY
+Tٹ5{3Ϟj1`1RVgN)Dz|v>RuhO5-֩!.z
+#~ 5Se.UT/aYcא3зyxCU{, 7=pG }{01voA
+$E˳RgӏSwFjO`θg`
+㉶Ajo|h\'؎q>~O!q6ơKWܴX6W4gMJv u=cSO'pd^\r[¶]G:mA׋XGh7<şbhyZa%g ceQqe &(بq8KI$Oƫ.+u|c 8fF(o'4RJ|OW֘oO ]2O
+Zx̞fE/GjI3<g:Y8 aU;|\$@oFy=AT-9S78vgOΣAlyXм5ޜ(ՠ!lqE uF>tF]R%2c||F̄2qMx^yb#Z>i|N?F\  c
+<nTb:cq:S.W2I
+ >|W~ZUj|N#\uRlJeHm_L ZtX/\.%+J u>4Sc.OU( %F'ȣԶ<G~Tv<:׋|G"m"ΝѪ3F?v ozg=,fW@_G383DuL@j{6Y
+
+0>q3Z£zKm)qx|Ѣ3RJc,&B糊~xy1Xx{th&A]Nqk3Ux[QaR&\
+IYE5njX@_G3@3rwʃNU>F'%_W~W&rX>TbJp?2~ޡblyz4zG>פMlZ@ , 8<0PA6zA ȣ(50V&Vh|6
+Oqp4-8Ӏ>f#$gf,剹
+~Azޡ5pOzi%caSq{Gwgُ:ΡA񬡡>PƑZbRћ*
+BO
+(ʏ돵tg`
+剻QZ]*u1zN!e̒~7X,:9&AzRFæ(<7#%N|U JsTRheAǔG$_
+$ώ
+~>Kv\,3W32( UQJյ
+L,r8Ô:Έ
+ _bGvոOdG_qihV=6ʕ.0pijmFKV {@E]XJo?۸#C::0/WgJ=SBF\ ݏ0*V<lJc-\3'u2HBcq)u'A܎RkZ19@Sեbp=p489Z6N<:Ҡt(
+WJBm!}AhBQj9dHT4p
+ŹTL
+ד.N+GI3Ng*$͡ $WO=kyϕҀG'~qrY>.Jx}%(z~ l>x<Aqz BJ &8168zA~kP0VX+.
+}_B1(G)xNOf{GҀ.V_%XA/c^S7qAw3 ;5PSNZ$AL< ' c&"q7=Mp8}yY[^P5~,γ'w-ո`xă-GsSO} Bcn:t%`bpϥO1^fH]N`[lD ؗy[#ִz5p =f'Z
+KA0q ႭgT8r^
+2L?I9~/Nj5rQY^ ({<8}=8k/D0#u.u$2C]Pp~gMC~-'/Wn[K?lk_hPiimI/_g3Vg+<J]B W{ؗ0Ծ}}(q
+
+hE<iDt $^w?p!|rOP0d}D[aC-Lx<1JJ)J8tvQ1ƗXeEpd&1 P G4A883s
+I$gW9
+C#3ݝiN)C~;@9xu/AQݑS-o՚1=cp)c"(FO&
+w&.@;>7CڣriZ6R˷s=`FK1x0ZR;#`pY>`+x)xLHldk әN:+)ЄV}K5,^'
+0Ja`.A-݋:I\X@ Ti%*h?#o|*T<;M4/T 2xKo;,P0>q%WJ
+%mbW+
+JLS_z?P*ZJu<qW+6\¬G(@xGOG*Rl̥R%*px /kXi%ުK.wkAhC RK@KRit'Zi*<10MlA5]̼[O;RX;#o;,F0U.D[tBF*ltkiN^!$lS;-?fƗB&J)w+U
+69tPЗ=$q5:HKN & i'b*~L%:Tiwm[^c<iS-{0@E3Z.cPwg6פd@yxs^{ݗWwgK]#ĴQи+#E:e464 BUfLh@?U4}
+E  P OgRN@E3ZG4CaN|m/1!x)sF'^Y ˍ[^V|)̻=cc1wEy,@44݉"7ر>Ð_qDskL$v'rsHh)3CQD\a`F $gTۉiˡ(װpҙs-^%}Z{Dt2w
+F,D3&4u!'װRd.s,H2σ2.C
+!:87!n@Du̩+Pȴ ЕL䀡L;@@'TE3a<uJ $$"S.VQ,: LxdAt1oJY48Ӊ:KTt S(^;o
+K'4o!{c~3d Aj:XN2 -y\P1hÉb{ ;li@ ,fqmQzE4sd^U
+:x=Th]Q!/ktf~t)<P6QδqW8 P]6u amjG@$'+ܭlIT;`2BҴhىO}
+gqW%,xmsͨyR\,tx4 dBx2^F,FC*ۙկNM g[I0> %@"uN%>,L~k3<xGaeL%L[h
+D>2GJ|fu-BW1h~$ޔYj<3cygv OF+8q+DŨR~жa1(l C#3ݝiÞ%}q[)qy|6n:aܴTSH<t}.hӕyaEKi**hn g:'a^2ĕ9!,
+^W3^K/qehɼ)ٹ&H
+Vb}ӝL:Ivs* dBX8C%;,DDLzypjX
+~ -K镼e騒MN%;P%ONPC(FQ\if _JLzI&
+hn` P!Ό$ى3̃R+XXYJ-KGl u**9xJF H45L4 ݿ\~o"
+|
+_pP_{*;
+b^m?/ө-#=]|K(!zZa+J/Ӣn/yHDFU[bJ?qQ=W>ioQXN`͂1"V QҗLOJ;Y;c3?ɟgęG ]4~09 )wuy "ewSQKMǚ@mU_Ď6*W/`'B~1]8ɪֽmĕ*
+'_?A{;;Tv\U┰~Lt<duOZ\ZVֲ̇(%yVGquUqxQ{Eç"ύ̫Dկki/!pum?hhؽAp§C-`zGԫ{x_ݟ7L%|a7pGW>^"F+!N<T !ymG(~gp?#O~$ׇ-q(&U'O[ڽ Ӡ_,?%x.ZC?_j|zK^pj|\tԧ5V0s.t
+߷ǯHi|k8J S<1~ljm2~#!&/|crҁGC#ו2kU'OGsT\9\j~NOk#5^k1'5:>ǜG'9{|݉oX~} -_'O'fp\~[˧9uS~/w1<z{<)Gĭ%/|8xA_xq6QcuRE8HL!LHf#麈ٝ6I!ɸMsʙJPhZB21xL{+U"JQTysےCBC^}i!-=;_~IfSI >w_{c_(LZ_b\F p֎FSeE8m撿9>$;q@¢g=6uy }s,&v2=zݗ)F{_Jc$l&?XQح(}Sz?ȂvLDKK2̳y5ENɁ:sƞRV~來pi%Rs#JΟJ,3:w@}yKHohsag>JOiزձܯrڞa^q8Y Kӓ~&?h58i.?=8
+*O7^"m+%l]ݗ4yc-* ?҉&J%ߛ.&>fSb!T~x/vvgiDD?t> ?oXd%ɺj)edf<"/ʦH0
+m? y?e
+endstream
endobj
-627 0 obj
-[ 614 0 R 620 0 R 621 0 R 622 0 R ]
+622 0 obj
+<< /Type /Page /Contents 623 0 R /Resources 621 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R >>
endobj
-614 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 314.182 725.076 326.138 737.031 ]/A << /S /GoTo /D (subsection.12.1) >> >>
+624 0 obj
+<< /D [ 622 0 R /XYZ 78.37 808.885 null ] >>
endobj
-620 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.444 662.311 258.399 674.266 ]/A << /S /GoTo /D (subsection.18.5) >> >>
+149 0 obj
+<< /D [ 622 0 R /XYZ 79.37 246.083 null ] >>
endobj
621 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.723 426.788 380.678 438.743 ]/A << /S /GoTo /D (subsection.12.1) >> >>
-endobj
-622 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 174.195 98.189 186.15 109.258 ]/A << /S /GoTo /D (section.9) >> >>
-endobj
-626 0 obj
-<< /D [ 624 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-153 0 obj
-<< /D [ 624 0 R /XYZ 79.37 771.024 null ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F29 375 0 R /F20 382 0 R /F57 385 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F50 374 0 R /F23 379 0 R /F51 380 0 R /F52 376 0 R /F68 402 0 R /F40 391 0 R /F46 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-157 0 obj
-<< /D [ 624 0 R /XYZ 79.37 473.533 null ] >>
+630 0 obj
+<< /Filter /FlateDecode /Length 9881 >>
+stream
+x]ˎ%GnWܥfQx?Fê.
+_?3{:Pݑ?nLWe cpfbzkI3DIRo=DGxU$|]Ao\@媩O&[)HHaBKt8xˇ]>|Ds<]m;s_DIc.~'V VCm1c,d+, }]cZ˽Y>= S[2pXңF?l=ͽUqġy0 f(?Q1q?um@I*{dÆ-{ɓ}{ [`P*oy}5ۍp5Ke{.=Ԅ:bǏ+omR37;͖XBO>Jy۱HY۱}NBH[Ή[q֑swh#*TI~u'9<xWc蓔]t4\B)aAT ~?'kTLk7)X.?`FsDMfSu8bCLVW,iG9̂'6uTv>@C(uv;2=p`e+U(_и|,0Z
+ ҵ>ƺ`p=l6˖-鮊)ZMt{S4`xm1TAE\7UFt,D<E 5GMytd\^\W  (Nob|REjP`E 'e~Wf
+1MhSPo蜧*p+HZ#
+Wf΅400p^Rn26GheQ0)l&S d9H"8]t@~$ 5F'Xւ{n&@59xaxe}0
+[XpI#dд)G
+vsK\)x"E+5$#nƕtY$n&2y-HTusL`q$l a w&\BU;l90Zjm\-RYځ.\.
+\eDRc+}9
+vK=$Asx Vf(@Ma2TDX>@*^Zzh3&
+v@au uE[%;L 1ETrdFA
+(,aE <NPH8hϾu7n cSVrS
+mbTv!rQ#2Jkw|SRi(*
+jbKu' UV@hRh^5FePw_
+X@X:TvfDtG(@;h5w-ZX*m
+V,ڙ(eŞ`ᯬ2i΀U49( BX`4.VgW0YB)`F@;<OXꦨ[ BJTeiKwҴ2x(>;-X:cH8-жmHN1Ҽ x  1|
+2nO MqagJ fDZ`mDžcȴ%f nD`d+2%f=6\'b sThKUc{}bK״@: у(3p
+@M3Pں\=~035q[`A+ujf
+jd EAEr
+q,m,6uTvńFoùuVe赻9Erl) "YK6'ظ 7DjhϖUQ Fz4MSi5C#`NkD @ikZxu(5
+NZ:kl/XV6kuEpkݢRn
+ llDyqm^즈jr͛Z4+08ױ`\}SXP&ѴygKTjҌ6ƥ[
+l;E18iR]H6z4 7}V@b͵؀';ࣱX!Q%HH;p_DG
+Oͨ>6-A'gen`i:5NAl+PEik{^[%wJ M3OKT
+CS)aFa݁ A%x"3T/J|K4Ue쒃Zhhu _adT y~K\8t 0
+2 dюfTDFuTP Fў8P1tT4 4kKS| ,KPEVm'Ԙ$ o'
+[Y5^6WkY*;ж2= !#x6i
+ <<Xk0xJ7
+k`]l$zqB0 TX uA u{β:_bƎ+0q984>hj\p'&1I`'fJ%@WRnAa#e!TH2WP& nX&5N _iQ<ɭUjLI`%*}1$n*A"#ve!$8_}fR;:9ev0ѭq2xNE8 ,D/uMTlN*$_Er &ZAW: fĩ*uz7[V1m&Q1Ѷ'-KAhD㧋|CAT8|vibƭSaziq:vN`-JG<vEk^ֿ7LuOw;ؔx5"7?Aٞu"r-jVڝ+WG2u]b-xȾ󘦩O_Gg<y>f[լ=~{!oa>Ȅj-]m#m
+Gc;P
+zqG9E~Oa|,!?ØTRدݧ!`b;e)];"īL?K3jԖ0:W.p֡^G75b]-kwFyڅhl!]r߲4bܘ%K'Pc*S*
+~}|]m[}.oA~ZP2s[~>WVZlwqu,}Nk<P
+Amk$}Y=~0YU&[/t͇gI;橷#ueD(O$("G=ʟ("GKf)xglwx{0}/$e *:̖B~L5|E7ee7Ǽc)ø2>6z3b&!I>
+Db h&uv@]-cP#{][wP V㫾a*~
+f@J]7 u7}}MiAGLE_-cl` eO;IB&lsPД\lt xe+E!#Ǵ -<ԕ"RfX C}2/Jx2{:gc<LgAK ۥ:|{c:Y:6K$ vd968׶``0Lpf-eW:5R | S6I*P}cĪiIFH :hǡ]&e!J;>>-xS6} :c!%ho AaQ1o_E xgc{ٝbLU
+`x^tWv OөSrr09'(9Q*WM`߲ʳ+V_ʢxzCW<nA<qǩx(:,ί(NoIEptz i/K|NV&ι:KwE~?r{ O |'X§{IwE`/
+j׉Pw&Bm-/GϙG=<K^RR<ފt*Y9O$F1}G*'(#ض_G^HΪ9%sz-x$3 B]SbR6ٞϝ轖]=.pS 01sxa{_>/'N5/*^V_%h7JK]]rᖮ2B۲n6pTҽinxS[ȭFxX<ļ1Y('_1׍'TuGS%[TZ܊-7nw:^Ni\ka]5x@e^195孡+ 8t`EA#M qY/Vќ
+s۸ZiQ;Td$u-tck'#nygcU:W>m_x']F@`Tv|-G5G}Z?ZڝT
+ǥҖۧObqYl%GᑼMqwZt^WcGVeh2zH vto T rS/]NӍ) Gܖldo^4W2}k_kU^>OrӺg yn;11z9枵7S#Qaq%7Tiê |)qO_]
+endstream
endobj
-623 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F58 386 0 R /F65 387 0 R /F19 379 0 R >> /ProcSet [ /PDF /Text ] >>
+629 0 obj
+<< /Type /Page /Contents 630 0 R /Resources 628 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 632 0 R >>
endobj
632 0 obj
-<< /Filter /FlateDecode /Length 7272 >>
-stream
-x=M$n}|>t=}Ew<^N K~HI(!dz(")JE?.Q~~7i/qN9shN.ˏ_/?aZ ǫ6
-Z Zo ?tWRE}@HVEpKSn݌r)=V#
-(q(I2j X/"OfJ%,ѿiYiJ*oJ#}T%ɲh%jifO߰=!,sn¥+<+?oU`ʭ(L\p\PI"GMѽb]]Vk^/|"SO:(~HL$TP;7
-7Ϡj<Ga S,HqR[Q E&WkBM!⣵E+u(
-OfYT 7螏$9Y4f]gY4@v=黽!@өv12t=9Z'#E
-Z:#O-8cI(Y4WA 抔#Rg~NsZ$ݵ4fi3ʟ",KJԔƆ ϑIӞE@Dz xu|`jݍHNǽ.'`[<&)MHx4D/ y5/͊-FJ"M:dע\@?^L_ßF}KS-^xܧlѹ^<t9Fkז72V.vй;.XXG˾3e*^xR˲n/ |%&\vk./|f#`w*rk.ּ5@W 4Ӽmw<z";qFKe!iDb0kSQRԗo1km5 lzXǍqc2 Sǵ2SKIyO∨oaK%U䛐v>,s'
-LIuԲET
-B0
-Sȿ+&|># GN͵7ͱ H)T^Jny[ J@Bda5).R`79RJk&8j ~ {{,҈TG6vf-ժtBcl܌!=*4&/-5-.κרoێ_ZGݳ-O)}hkv^qf'}5p`#TZ{7J4=`w4k hDZGYVūz2E9ҙ
-}co\lQWϦ /RԠ18VW1{Q綎앐0ﮞ_$Y|-c0>އc|vpc"d{vg&>OGexh{G!<⦅m1}I>{w}zsh-y<fO6O_y:gS3Y`߂?iѽrڌհ8L*!nzBJAdʑ v.d>-^5G*L)RDj_;oJfA^!xZ_1o]sXL@1SMIP|*o
-Ԁb·WM*s9%:q 8Aگyze}'.QN
-1?I\I+;INR I;I
-$lT1>ƹ\ Hr[~FqrmhO`}/A{d5p{^7 Oz|چ
-惴q>/ neg$TL#e,wR@clB)I0|T:j*elV׀?Ώ(piSN
-{jE%<mZqM96fEy}93`Q#F;{U{ׂ'N_Ź7}=y+URFbd"TP=˧O`(2L 1-@FH
-*Zx#-JڡcRoK}r{VwU0ue P Ln}a?iSnhc=B^r$V?[q0|u6RHVҞ T /98SX1[cC)W}}M0Vnٔґ*y񎬦i[\FRFjU'^גC[1iglMU!Kh,ơl*ŪXyn+ݯ^<5~e
-Gu@Ե];S߳5#>%
-B<NwT㢶P5m>?>?8&n䷴(0@~] <=Ɖ/َqj0d%ޛI}C.ohs<c+22Z,}[yfɵ#KoUY3 "eR.3L߈cvQ<uufzUnXhVց+\G71;ƛ.]h[Ax <
--lqK&7eF Z`j*ܹb
-qYP9'AqM$Jָic a
-j·AC6K[RJ,568R#CV tQI&N[6[K :N{9JI.Β61QRo%{Rr. s[Eb1csCk
-o !t.BsY'4AK[SZxj+md.$F#lEHmOGlgu6
-P7mPKk$yR#r m[a
-'fk ڜxmQbK`uG Y,lmLN]kaܳqI(WAuxH0JڸD 2
-
-ebhspJjUظowjt6P%\qNxH4LnMvCK4AHʣOc,!lmLH]ka*GF:MOtlm >;oma?,hdޣ6.$JL56x'Fg\$(Ds]Š?o(E'NS˒PkN?<{+o*I88r:
-nZ|ŀg?|
-äaLzt\ /ǠWvya
- įMx^9uR;_TdƦ]Vv3*u$̯)O*gB<ꐹY.]ZU: b}_DPTrIEw糡!Ə # ʁ#y[+!kwu-^R3e1l"s4 s%=z5ϩ1齪ƌWrTE)#~ G^קJc'܏]WٍWwW:(dӝu gZƎ+~%wr;]Meiri)Kveq X?/Bp԰0 #vT.5Q+[.)OWNXgRl{HEҼ$/4/-'
-ՊfjDeRx6a:e|.!ZS5Rt3oiw%[j5嘷{>w7P#eȥ-!7?p{\Jӱ-땋gϹ
-2+QgPdba wbD"_PnRD64Sa9N;;%r[9Zu9qzRU'tUWj7t<n`-qHqp?#
-endstream
+[ 625 0 R 626 0 R 627 0 R ]
endobj
-631 0 obj
-<< /Type /Page /Contents 632 0 R /Resources 630 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 635 0 R >>
+625 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 314.182 538.051 326.138 550.006 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-635 0 obj
-[ 628 0 R 629 0 R ]
+626 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.444 475.443 258.399 487.398 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-628 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 84.682 416.581 96.139 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848/tikz-line-with-large-dots)>>
- >>
+627 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.723 239.33 380.678 251.285 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-629 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 324.371 75.217 334.828 86.674 ]/A << /S /GoTo /D (subsection.12.1) >> >>
+631 0 obj
+<< /D [ 629 0 R /XYZ 78.37 808.885 null ] >>
endobj
-633 0 obj
-<< /D [ 631 0 R /XYZ 78.37 808.885 null ] >>
+153 0 obj
+<< /D [ 629 0 R /XYZ 79.37 584.796 null ] >>
endobj
-161 0 obj
-<< /D [ 631 0 R /XYZ 79.37 336.159 null ] >>
+157 0 obj
+<< /D [ 629 0 R /XYZ 79.37 286.075 null ] >>
endobj
-630 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F58 386 0 R /F67 389 0 R /F77 634 0 R /F57 385 0 R /F55 383 0 R /F25 375 0 R /F69 402 0 R /F32 423 0 R /F48 391 0 R /F59 393 0 R /F66 388 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
+628 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F29 375 0 R /F20 382 0 R /F68 402 0 R /F57 385 0 R /F52 376 0 R /F58 386 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-644 0 obj
-<< /Filter /FlateDecode /Length 4958 >>
-stream
-x]K[WhiWJlV,l\U^:LW?
-XUebP_4HVxac[ O
-җc"8t 1UPqi[s )nd) bN"Ar5' (Kn?68QF
-ctr"\tH*c
-α9 2wJTI^G O(UJE +i5Ach5MvM9|$⎍8s X!d=7ED4*#H) W@@~ʧA
- `,gB`q`;$tC? +0N}y1,S)1 o̩r xi*I~}
-B]}ҡ׺, ݶ6|< w]Fk/&`y{-5V-g[%97Xڪ|3 X? س"BM~
-7)wvfc
-<
-Vɖ3_-n06'Z%,4Ӭha3ZyT%a+=Vi դm7x ۪ O5:/ +\agD`reh9GAKD>d;+,@e?8)bҼ}t0#KS/Nʞ ԫx?niú-$VSW퀍Oo`p"jMzٺ$Vt淴/E0u =0Qϱ<iIz<K4o+kyw+
-Lm̯{f$ nw}fƆBL$1 >bBf{eo7b_bP㣓kk 롊Z@`޻rsCi'VQ
-y̬beM`1 {v3hV.C@tj& dj&pO\-cO`&$嵐r׵ʘ[u-rЫn Rqq{~<'~
-X`HJ˜5o$PNS2eM\3(
-\ϯ'I3+h"kha44b "SܬD>D2D2Hrx*D`V:¬kgm0xvZxwVr8-}ut^C~]Qp)EzާzjnoϤ1މ^n@Zi3)Zɪ")uq박.mI_s&*_kGɏxvQgrмlDJm;"\\˹2ޢF}G9M6;\9,d9
-uPۙ|*TU*w3I |SkmoƇocꇲ,So}=FNwҙDn+] +,NH)S[kuaK)9i_XjCMTMqR=nuTww=Q{"x9ߘ؆d?ޛT9F2}*KRnF0d_?I.TG׹>8FYUCKh⢋*LG$2b5y-E~t|fJL~nVH\ӂ/lǼ)tpp{D)
-L85W~?;UO\{m0lvar
-k<hwXrEz}+~"],ޭ4Dպ'?2sTM3woTgVP1DE<ԙ+
+638 0 obj
+<< /Filter /FlateDecode /Length 5735 >>
+stream
+x=ˎ$:Z~,OMا&Z>س$dk:,tg`$#~޾.%`՗/x/SJ][q+o_\n쬱Iis#8~$XᜋOgo.6<a=[෪HˇIZ*z;4y ~LF˷j>fsZ<koUq3cJ6Tǫb&w{|^1ˎ(΂Xh֫`"WL/! a:tJKF]~v;x8[`TeQͣz\鯩_7zR~JEV';4bҲ[ŀc/6&(
+$׎->ely8>X皸]/EC=? ([#Y.
+bn4 ՠ0#ME ˢՎgҠJȱK*g98Y2`%?m9X?28k9d}Ԗj>S]kס
+ɤ16J׎{I}[vE:+W~+;A X
+
+O-7KWEVk[}+@+hnS
+;A[ģLaF㔳2qK?D*!.KFMML(TRG$؅UEzZUѥ+[縄Q vf?lvq-q<xc^bu 4vRxK>$&hTZifM3eD?~4-as kc6Uh ܴ+bVs^&98 E}g0bs`8rQX93$DrYGx$Ax6JIle.N6/n7Q"GZ6N[ +Zq6N
+u
+*[5FY
+7<4 3P`)4u]
+ݞZ
+:$ғ^ҬĔ&+%Q#\H\hRLϧJsNFe#RjګD8l2 ˣǐHniTs: t[OB )!\nS<yA!ȳc+GSW^;h9`q9Xn&xXq4ۤtZq;.`YfIQJ
+QQݹ&-AXtqqg84=dTJ 8F𙫧^qɔc_T5*i|r|Kp}g @<}R].U;H.s/ܽ31ץ/A`F:lּ47ڌ#m&Aq%I?-FøS)_p`_촏YYysg&mxV1kˢ<=7O{gnp8,{;}̑<$)0g]tMf5φْu`mtNftYs*>2pp%F;q
+O~ձ8P4bB\2xG '|fdFh3 w eҴ'|9KsȢLiYE) xiYM8FTs
+'ǜ^k7Pss+*&0iO97--"kW)@aMKχ e>bQ\`p"( ) 0vo"^c"?@z1',׊3u{g ^gyEWm4
+P޹8+
+„D8e9>!)8l0 S²ӕd!ca8Nu_OZ o/) R? <~&q~`lo|~sOa zN(cAo>ZAp!ƴv{< .
+X)I EBvVɸ bEph;l+=r>D7 ~V i9|*Kgpg&V~-i\X>y,#qSWixH+i׸lPiqFIO:?`͞Ql'̞ƳܲWXMdWqnY+V+(OJA( ^Gi:p}"СҖ+XK`2R1bKA`OWrʫh9~eXekC1!Wo( KE2'/sWEߗ嶺 ig,)c[I.NUd?Ü˟\^#<sAKk4aYdzMe:0-+Ze&x]DF ]Mx%o
+}~$:LptY:EBUj a P+qP,Ar,< 
+dBP?k|=[xc4R
+^w<e5t5P;VhVVmr,yjȕࢻ%U<EV/XWwsj\kx⧢
+bwRMmvH}P*Y?
+HvVXWTJ%X\c1]&v~]|O'FbjOT7LgTXjqƊ<িc뱔XeĮ=T $6^L_e~8Ehh>VpӥeRjiS=3և4ÝչRkȘ)Q-]zA;F4.ޟڀ$; bT 5OϰZ֗1RnRL_5aL~OS?ǂ
+)
+vtZhdccR Y]*stTmߙ_C\ ]&/vo/V5, g%*ͥ6'U>)i)k`1ּH QC͊<Sm,UUV+%IZƴJAV"a,Vl"dT
+]JOU)F֔}Nн=kY.
+gB"KEɘۈCwTѴ4k"ߌ-R^PR8x1.>n|M^GW|ʟGUW"XQ({Y}\x=ׯ<55Mӓ(
endstream
endobj
-643 0 obj
-<< /Type /Page /Contents 644 0 R /Resources 642 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 647 0 R >>
-endobj
-647 0 obj
-[ 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R ]
+637 0 obj
+<< /Type /Page /Contents 638 0 R /Resources 636 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 641 0 R >>
endobj
-636 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.38 524.299 473.068 536.254 ]/A << /S /GoTo /D (subsection.14.10) >> >>
+641 0 obj
+[ 633 0 R 634 0 R ]
endobj
-637 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.233 524.299 501.188 536.254 ]/A << /S /GoTo /D (subsection.14.10) >> >>
+633 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 502.177 620.926 514.132 632.881 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-638 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.598 512.343 190.553 524.299 ]/A << /S /GoTo /D (section.9) >> >>
+634 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 67.03 292.197 78.488 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848)>>
+ >>
endobj
639 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.148 128.799 224.855 139.638 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+<< /D [ 637 0 R /XYZ 78.37 808.885 null ] >>
endobj
-640 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.576 128.799 252.531 139.638 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+636 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F20 382 0 R /F23 379 0 R /F58 386 0 R /F66 389 0 R /F77 640 0 R /F57 385 0 R /F55 383 0 R /F29 375 0 R /F40 391 0 R /F59 393 0 R /F65 388 0 R /F50 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-645 0 obj
-<< /D [ 643 0 R /XYZ 78.37 808.885 null ] >>
+647 0 obj
+<< /Filter /FlateDecode /Length 5816 >>
+stream
+x]ͯ9n裍k8^Lr1ַ=9z9%~HI(ywa~)(R]7by槇 )h/ȋ"|v{!GpßRyQ=)Xx!4TvU{%@5_d&3o!{ƪț?wV'Oi/qN930UǸ=u/Ы3ucȥԀXSwxys}+?e2KQ)c&OLJΚ +bRlߖA+26aKX)[aCXWr&JGK|xEkblQzGVkJRԚU>qubG<S+=U.+bJCewq/"UGn=۩ neEp Auj<'̭wWb-Nn8\{)ZqB7sۨLۗRX,} Lm?E0ҏ+?<x5
+D<<..֪X{̟][T"aRK~q5Ɩ9kT\IX=U̦a~D Z+eZPY@chcK$:k2|b .n^[ZRusP2 :<DtX?22\ҦWbd`*?݋ނ1?cnAgw9Sfq?,ȸ571c`+q"B74M,GZ4O\ԶT/MV SmE#qliewe2q"2M{04=MegmeO
+z-O0õ^C
+I(\R.^{M3I0"hA6"~$=ta/ory@^+h%Xv:L kd%sW
+IĴWb:rNXwf#5fJ2?
+Waeܜ%齢#9D+^6Q|Ͳ_k0(YiNYwm%z$<c ;!1 <8.Ҝ4\~y7LfOrzmu-z.9ޥj9pVrU*α.u[g9qF1X/W0 A)-os$-u4+VWXk{Bg0Jej5[RD [ZJfytU8zBmV~
+t4qi֬e.[M%j((kXٴVRp
+vu[C+-:1Uu8G)qwc
+6)+_Z\Qˆ'+0RRql׶;HWzLm
+5nUo.IqtЀ~VҦw sƽaXRVcӾ5l\KbҜ|+$i/MIYZ2qd7@Yq @`ec$D#X2TWZbq6-JTǷAgBM+LK%(3 3Co;3IJqx)i86[PMFʵ$+ (ηB~Vu
+Jҭ%!vN[K>K5{WO'^ʴ-V\jƯ^eor)$pËCCvG Ճ\^>s>,&ׂS% qq$6Ŀ5#{Rp4OMBPiyץ CKn,ga1} {] {3KQ#7>chfFC$%lR&~]TjOWn|[ zK@t-4# HhRf5s2> <.{k!'`;LEXq;⼰0RM䠼3rDX(~:~;"<z;X'2j է6 `
+y`!bxB7O$3ks
+x= O)l`ZâgL # #uN062
++T*a"\R9ޥVa
+jrzPY+|ݥʜģmUϩx&^e'b.VؿF丁܊$
+ޑv1!XD*>(yqY< zqy+CzɎ9I+m>%C0Һ/ֲaN*oK򼦪c7y*G`Ԇ?A$GrǎirʫmZӡs WW(C;{qXŘ&2KsU>%d9-/2:5F~g*/f[]tD]~?߰(]@qa={.\kU+<93p+ 8jL=L‹0 k<A=^Ym5mJ[if<g\(Y1GyƑYƕd5>7p9`<fWܬ&`qiA>[<$<M|控tJFr MA$mx ؘpH0זn[q;Ï"An<r^5S"O֕%Br)EYz#Glw WRO"G,'NB=slĢ(nSE5 VeD˫,Uǂ1E#kК̚jXF<V9Τ"Z,9Ƞŀ|qJP!PRf(S(,0ANKu2`
+sI1L!<>h
+VE<Q'~63o۴IQr4<]d{h`Q9-{+W~ez)
+lG9^W9?s_5GPq\^Jwhw\:?Stz<m!eŝ/̇jajޠhZVvbuaQAe0'
+C23'JzPY]
+8Ho6 u t dzucBXd9aZkN~g>A<A>}4?G~Igz bE|ohSkۈF@%f!ݡWW5xGDm$rkn'tasoL^%@AbZ\}\k˸Se&sėSR
+"ot5 vP$QutV]PK{jbf`[G+&ͨuZdmeۻ}c-ib)ѤЃCnun?<6*mvG;N -sw*{O fu3Spn2{E^窱 Lm$3M7囚t()t1` :}w[s2N89g6KO<).FݫN>Iza\m y0/G9[6==TocsV?uesޅSw8fiӉԒDfƁ\
+>{ׯ2SM7BBJӿ$C7VN\f\6o˰cģ;*B !iVV8q]`
+endstream
endobj
-165 0 obj
-<< /D [ 643 0 R /XYZ 79.37 771.024 null ] >>
+646 0 obj
+<< /Type /Page /Contents 647 0 R /Resources 645 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 650 0 R >>
endobj
-642 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F19 379 0 R /F22 404 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+650 0 obj
+[ 642 0 R 643 0 R 644 0 R 635 0 R ]
endobj
-653 0 obj
-<< /Filter /FlateDecode /Length 16839 >>
-stream
-x}ˎ,7^_EF9$ ԭ[Uak*
-7{OzTwADQoPQWSp?M&@g*ϟ<!#\+OԙH孾딄4?ÍV%!ڄ*vC}ҙ? ovVE{ iIH# 1wGpxXu/w+dWߨ*>YkyB3G=6b{O5-_kZ}[Wd͍{kb&ȰHU6%!7X)-mBM1<UAA'fJmb0Q=q*ڗ{Vqx-\Ig~Zצ=}L|uԑoekB=X%:{ejk^導]ǩv|7: "(uj=^~Zٟߜz@`8ݫnQRwFS֣*u͟=!1݃Dւv)ջEgݩj9JǶ5e:h}߇iK%L;kZ7B^SL<)hb>'iڷrU`ca9BO=7?1;q4Q>*$'BN^zU$| +%qNM#RģT(CjM</\Yor3J|Dm^jQ\j=;
-'A5SI%]Dw[7vdٵ?ZGpyxXdU K_>^[{9)zݮ{۝-!8gq_,<0~%m%=˹$ec2Yj}8<Q 6v! y <|5{H5Ctٟ<
-gOtҭCl-2hubQR6eҧ':)S>a-Vܯ6p%&.v1. ('kטwA9l=/PU^j%RSZd
-gґLr~isPU}>L#Oh3-}}>7Lc旛bm]{8gďPM։ 59l@e5_WZcўySw*{%)xmrӝb N }r"bs5 'g 5onIAcf%kOcIqOd<cӆ#sYҺ;|ș:|xS|0%BF,"fxdO>i ~?T^]UH ( 9:o
-O=<}hm}_\c'SpZO&bה2i[c;7&~tm6kdp0 KN—{56yޤɳB~Y^s57{b|>vkxYo<=#yj/ϣ߽?ù7aTg}&Ta.Na__pEaM&}17ω8aŔu]|7ZuH}%XM(mb}(qM(orQSt F^L:q!!zj\vh.oѓÌ6?W"\!]sw\ROX%Vk}v"_ o8;<H"Pz@> /COF;P~~j|[NՏrNе~Rz;[;W3j
--?\CXfz5t;32_ _hljYOw !}Jo:R{0VPi.hY_ק?iԧiM.-|M)إk]ݞW:i"wҿ3530~\Rs>Tέk'xCz*E TOz0z+[Gon1 ~oG&0z{`G&6z4z#GTq>:J&u%FKڿ97tvxlx^&Wn~FO:Wʅ{ >?ot [roˆ9tבI,#u7 7`m.f磮K 3_[R8Y="uF[QHa
-5Shk{]]+** sw{ܻm`#9QA
-3zdHӨnS_ P-L=2Yt13_\4wQO4`lRGZQZ (f)d9@oc"Ig'q\rPg/BZ=lp5Yq ?5'Ȣhc+aNp9<AJb
-)uQ݅yAZ[iĄVvWJ0FVe;F2T=GixtCᤁ6'y <wX܊RU 35qzѫB3E1VC+q)[UؘˍI&R"ǎA?~XJP%8H@ 쨯/3CFB|qmE
-tP)9]48x)"IOhME[Wxsߨ3Dؑ aW;yͰrŝByR xqԉ gtjUQ<\ipG]dzZ[9"zqѧ})
-whhjbB
-8M1IwJWrhίPo3BIu8f<oyq\< *)PLa9С:=5Wok>IriED?w)l^3 z(pQ*d(IqdfD<DshUEn+J 9Qsa(v(SPi'lG!=2˪;yrwQS\n# *9qw+#FpB1&ʴ҅w UHϛ1R]B&2=OT"=٤F+ixD
- C≨8P ̌xJ^k94yꠤyT/,HV9S%"=>R3S.x@ |QO%6A
-F#PIMwgSt
-P"u>c#DsO9t? 
-4$62. Ϸ&Ͼ3
-]X+.,N#ݑ!=L^-v˒QZ`zDH]H){;ZƢp,y<Arq.3
-l,1q1g2lBF utG2Y\IXP`sלg ,uͬLsMGzbAVSq)[9N0ؘo 9 SG)PDki $oMkYcu4~)%4gGK;FM<t-~+,wh¼d)Sgv
- lx<(,P-.]K]28Ȥ1Tɘ;eŢ2M
-U*1 zjDICT Ċ{VvMp$x4p Σ;@E3Z"hJܝ:@Ƅ:b1:T";`}ғUBiK< 1mT.J [f`xBrz
-zjr,ܔ<] @ Gk-wGDIm|aRGȘV(1<F'[ <40jl"@ Gk-
-М0p1w'2ÁL3xr^
-(0ؘ3qHBùR[| -!ї\Whf#WPH%ĭPTCaa΄-6.&e.x5cч6.mL[_VL
-O)ܹWm^x9D~&֯U4ZE;~OOo)jTQiS?
-KäM,G[>]:>)*dY4z3ϟ&cuy(eDl,J(W(kr-RYbNx Β0h ZM50--.\&׷9ATuS>cpn16gP]iϬ䐰x
-YJ[|S)wA%H-w75p
-#u<ir^!.-TKPh; 4ؒCshIb:LY2+-9,4KiT
- uk7r-RIbYM-18,|in \Z
- 1,&eu{ܞo:U
-j槮Fri! Y=m:ܧ I`325 Tg/j`6+@4SlduHS?-sD K ikq6&DDNdO<aN( n lP0Mč&xRIfIp.?MJN@'Qɠկ_03l&hA8)s=D,f'qIh
-}tg(z-RQcV+_E*0D6L;/htFC.wQWהqrt[1!)Ur}%\R\Vn3w".b!'7 xzهaS~cXsG$:j+6`JUFryp}.tn3j剻@;؇o9Ù&}_ڡpͼIH@/V蹸Rh**|a:;V@r,x<3VJ\ gORsX:^pO<$CM<C] sa@`XÏCa}^6A)pQ'"rBAx W@Ri}KO< NSa`5tb#Hy+Дy
-]K''MQyo[_git@ j;>%=cMAp㹙F% nZ>̡!=~Jo;FZA q,vx+|KmX@Ro1,V1* xx OoG~BBrKRRG jX
-A\v|\:!}UKm<33`v @ +5Nhs_"gЈgx60sjǑ͠Q\;P>⬟e9r͐{| v*qA?p gC!g97xCymS f'݌EFqf(u\)(o7zHYߕt
-&Ic1VhE8r܍=)Jܼ3X
-փ%8.uE哇}-awkXL.a;o 9 u]Oȩ r2HwZ?10<B{)6bi# p X/\(=m[tq[f3N0U>rgB)z\M:R(ITk<Xu vl˛E)gmqh(Z(1'' V`q1\㉶@χ,|y7.NϖcH
-h!Ư;F:(-830RDn3
-jЀ|g_AM<J_S鍙&Fn2wmjʃ6nSu?`G\rZZ^JLJ.r㮃$j?eWt9̡tp
-@<'>Ss1-|H e7ߌ\!* py"
-!8)vv1Rϒ+9=ic3>,Q`2)ֶ~>%xh RltGBXJ6A)PT;m
-PG䓖|G:1}v{'0"hWfyf#
-'*U''0#,|0(ͶkG;U
-OFT/hE( rd7]B 1VZ^XZw̒fZcָ<:ZJ\XJ@bCXX|ו;a3Qx<y6]u He13e.<qex>t?qY>-yefZxcu00S'3(-P%M *BlaAKK[j ?[\]0P`e.(q.a!wښ%
-0R@_
-_u0RseR Y\-O`EX>x1OXm]H(TT
-1uiXVb: 3wZJz>a+Q9?Ňg<1velVkN#*x:hM)D'/KGEPv~T,pKvPuI
-GOôPv,.~K$ mL U7@E3Zćv:[04()/'E$S*|ΤUcK uLax`+Eȴ1T;l6* sw;A2 $Ky
-Oc[Dwl}rc|-R(jtԝbq4<$ۉcTL\ A36lVi䖁!%-c3@LRV$
-c20o'r2
-H]c)C,8ȳa#-s<ugE  ' sw+
-nI ٵqVg
-8fE 씂9;qiiVr$GtjL{ =^Jr eSFAbXth89Y9!
-ts
-ϟ.Huuv)̲:SQ;c.hf4݉dL?T1:jYys/<,J#YuŰ[LB&)k+
-᪗B%`!k.xIp:!`窫]BdD/FA|
-/'<Kq1<+|GsSG1%JcR}Y'x
-F *\% .OzC.Z5W~)6- ܪᢩZ|"WoUj86^ͻq_[Q7Á51,E7 L<{WOP!G[U#OdW
-x3n<^
-TCccUMRs!&M,aG@&TV8ʤQݤ6
-G,L546L|_i_%ѥ'k@_Wt}Me]"fJ
-w&/o̥Ǩ]7d|5+G@&TV8ʤQR1o'6+ O`}nemXVT%b0iMךKֵqCac}r|O?un{.x/}{_d Xg_s
-jUY!,2IuU~ _HL[my*CD?[G4ʎwJ'hΜGD͎w͙!y
-F<T' gM_I<&] ihh~$t9/U7gFV+m;C;%v" x4J9wqnk`l~AE;!sihǻFMY̜ H|OosJdN|NK/ubqS}2 D0DFcɄue1-o<ySHʝ*y]sR'2ggt`ĦUVAQxwyWJt߇bP(}/]Z}mRЎE7g2uǚ#^?(O9'>B3a$v6-{#xO~QԄWqg޲H'aj`xV_ RPtVZ=(Ȝ0W;Gw>;[yxzD'.L.WIvz=2>2rLC
-*ܗuX<Q׏|,i)8itv hNrAzd:/Ue<FӨ0bF3>3f֧S;Hf4}Cb  yqR2;/Ű2O|c) qYb*[4Dw*8 \A=7!@y5srnިGVD Nt"*
-hNKft㙹L )$rW#=3X` Huq
-<h}c]zHG?LMi5g7tL_%P3EB]BZ
-H٧y|^c`~h98bP D9ր
-<=xr~A4q% C@M3=b^ZPbɦ# j_1_ifj|剹 DDqEܞz+aDğ›/?r#?T㛟 c9Ig~~!qV:aXqXF%R0%W 6G.HRw{>䒔&>2WO篔Yv(йz}N Òt&+yNt|^T􂮙es2TQ>n_p슬"Z79,mvEh?M|FJU}q!"mG|1-E.~~$YtȼY<VyS+.-u9 @eʨi$OGk#Fd'N˵?#2Zӿ?
-"OrFG/ PB_.>^+<c $skiwy]kuHQIz865
-{2yS*Yo}om"יT|]:~]:]1C`= ~ye7.Q|YdzZ2OS [o}h,%7AW}>[-:j v }mTz;^}>.wY[<ןO,ujyzڊBk0%z1MF6w' &iF_w|>i|<ja|xK
-endstream
+642 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.38 332.002 473.068 343.957 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-652 0 obj
-<< /Type /Page /Contents 653 0 R /Resources 651 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 655 0 R >>
+643 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.233 332.002 501.188 343.957 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-655 0 obj
-[ 641 0 R 648 0 R 649 0 R 650 0 R ]
+644 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.598 320.047 190.553 332.002 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-641 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.725 723.678 166.68 734.627 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+635 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 324.371 109.337 334.828 120.794 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
648 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 358.772 639.872 370.728 650.941 ]/A << /S /GoTo /D (section.15) >> >>
+<< /D [ 646 0 R /XYZ 78.37 808.885 null ] >>
endobj
-649 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 306.379 485.652 318.334 497.607 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+161 0 obj
+<< /D [ 646 0 R /XYZ 79.37 771.024 null ] >>
endobj
-650 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 385.311 334.678 397.266 346.633 ]/A << /S /GoTo /D (subsection.17.1) >> >>
+165 0 obj
+<< /D [ 646 0 R /XYZ 79.37 590.565 null ] >>
endobj
-654 0 obj
-<< /D [ 652 0 R /XYZ 78.37 808.885 null ] >>
+645 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F29 375 0 R /F20 382 0 R /F21 422 0 R /F52 376 0 R /F41 377 0 R /F53 649 0 R /F51 380 0 R /F23 379 0 R /F26 404 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-169 0 obj
-<< /D [ 652 0 R /XYZ 79.37 771.024 null ] >>
+660 0 obj
+<< /Filter /FlateDecode /Length 8501 >>
+stream
+x=ˎ%ntY0dzmf5^"hy l(RǩI`}x((T,uFߏ?Y[^r0~퍆/Mb^lŠO*eWJP=)̻-@]RʖOq+N`3}o'hD'q+-ߺ;dJR Oj?Fɣ "m~zg"
+`[;Hygئ=DĔzAR-U)Ց+zP]1OUTP/?iP h*>PvB6D$q'Rwmŧoq8,.}*Öi,q4lP9UUjۆnPSn $WNFQϏ$MpX  |_eVǹ +Ik|WU [iG؄a3ݤ 3xXɥ s]rL3?8^GĂzh=${IlJG?Nxd?.2nK7*-)-ݠ[);l]2YGh.nk?~[?nqʊ=Sڦw@=`S 9,n g7n
+wQHnmRUbU-Mk¢ujߨo%{؊b9D0#b}A'B
+9AIB/?a8b^X}3c<
+E1d"sl!O>?9i>k+0s/j?Nԕ yeE7[pu]#ޚO>?G*(Et ZXb;ofq6jQL{9>RCW%u}
+}BYuVASZ02?lbH]ncHU&z'ɦWRA$^ʼXZ0Ɓ]6lVIdTٔ:UZ˚N̲eG7̎rhLhCM#S 7Q'8zX6ϪafGٷ͎o:І:F^9b_L+?
+]3#oVcP)Z j}&ekP8\JM-44e;@Z/m?oC8Ud#[{tה)j%9x#
+vmL+Ԙrz]zg~9ވ J)k:a38q?V}E^Mܪ:^*Mq%9ЂJl;յ; Oj2}Mߝ_MV@j#r^N8aC#C?!jRͽu{ߞrwHy$Nc-#ʃ!I[7%5*j=4|eƃ߼h,JTU!W "[$@V
+fjOMv`<o<f05l->%>#yl1AVPAz4&xo6+Q{6lY{nIkVXfz_w~wٕߍQ[5œlϼ`95{_vp]8cIl6ܜ&5y0nim&8: Eyf;z|fqa3 ݜZ< 6:;-aɋ[ci%@l;Sy%Ygn{t J~: 3 npc4*ڽml݊2.1-~<-^Aۙza#m\&_rA©GSSpB{b770u2-pnp˴rrJ^2p߁ Ú-nļ`QMj\^%ۏdK ˉ\/UVypr48 .B`oSOꉓ7ۧAx* ]FTMId_+q>w|jHCcp5R2D[F&-ڹ2[Y.l`LyL^;2髟h氒rv?w+\h*ߎ{8|5C'$([I]O{XrKKZMy 5\V+Ce]
+
+vZ# J4fZkm&RdcU\<J8})ZGB}.\mgΫB~'>k`,|idoN$fbw|Z}X[{^a^Tm,59L 6o:W}s܋X;ic7z&<HQ#PPf3po
+̊ҽ}*X?<_?X3Fmdxn#$ v';=X#7T7`iOSϞRIi)O0MV2_}<mFf|R)~Ͼfյ!|'snwӎnmM;JN;_@ox`m;l.76iieN"ղY=V}7,3.ۓq/(x\0ζ/c/.v!y9kc~.Əׇu'%{6CxN_((8y cEa#50VIƓKj;3^<٭-DUcD d%%c wOiK:vz XP:/|QB/Wo8NuN B'좩jiS%"z(N婟
+*TS
+JXhy'n4C2CMR70r4IIQ;I-uPwT% 9 @zVԳ [ L@r$bYR#HtPMƢ`%Sh?Ŝ)D;]&#%ZYdЈDJR=
+qKhԥ6D3YYo4}$41Xi 2@k3B Uj3Xs)ջ#Ƞ Fci*IY,o
+Aw7uE IÄ?e@Rc*袏 B^μ ,<@1v@mnLJ-9ez6$bDma*A34yUUUķ*a5SAM|K՘*uPP!MPKK}AZ]G"4R+QI3";X: 
+˟ДNd|fM \hI[eGDo
+(x |_!1v] &7KD" q~ w
+{
+)BLtgꬵ XuXa,YDbeX4F`,s-0=?xԹxU5p9J~;kF,{J.uv$9sD/^*ύA؅#r+y)cD"JhZ`~: 3 }u RMH4rVi%P-N@4, &#Keh,Q% XRJAP
+(h.'T-RwZu4DakG@kʮL zV.T#iE
+@摄lGRg gPa3,!6:"n\~[ޜ,Ӄ%Pkd.[KE Hd`0:D N
+AvюAI`$΀!S1NNjm ,`A^*FtJ!+ₑ`ƅq@á `u/^A&A"]f OJR~ I&6IKE[=#!,G,CPc`D )l./f/)IX&0,A+)TkxdL)&5 >Z]C,;
+X)wF5ல$)a֜!iMt R'F%* $ײX)sN> >Z]J3ZºPa ̛PƆ`%i:&$ZIPj/uˣA^A0ӎrkʲ0ŵؔ6IB
+=!LqǛ,q6A7$ӡ,O'R~t%bC:$ +Bh> p_W6L|،#mNzHCYNJ0z0]մjʚjgw
+4(ؘ٫
+KVRq<U.*M50ykN`唐Ibym
+0 \j oM)C#A%HsdGcIZhw:4c&n j8$x5؝/{W%L,IG0ؤ'!6ִ?79(dxYO
+&#jUd>#p[ma' 8iBk$j. I
+ M 6;"Kւ11U۩4xB9 U96{c`Ry,)+ qa{l['a: ݵv40܍)aج6K <+W8'Rd_DP
+O|,(30a\ܱСgm<n^H9rᯓ!@5#&]JI ;&nV._Z6pgE/Āk޾RYh{ԒH FD#:5qG#gǦddj&?c,*bׁX>Mΐ#O/ |+S}Qcӿ ox7'<4Ox$|+5ُQmRS5)0 4 dQo(O1ueT8TP.h[ySZϝN1nxoTc-P<o)׉WF7Uq]/L=<:|:Wa +K+r_^$51Sw^ -.Yן<|;#PJZ*Q۔ʘ|IM ǏL^W-=-&LZʐq("!x]P\
+endstream
endobj
-173 0 obj
-<< /D [ 652 0 R /XYZ 79.37 591.439 null ] >>
+659 0 obj
+<< /Type /Page /Contents 660 0 R /Resources 658 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 662 0 R >>
endobj
-177 0 obj
-<< /D [ 652 0 R /XYZ 79.37 161.114 null ] >>
+662 0 obj
+[ 651 0 R 652 0 R 653 0 R 654 0 R 656 0 R 655 0 R ]
endobj
651 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F55 383 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.148 574.474 224.855 585.313 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-660 0 obj
-<< /Filter /FlateDecode /Length 5685 >>
-stream
-x=ˮ$m^,Z r 8Afx_?&>ԛRT=]EQ"EREI=v/_?=uDq2ϧ|]^~ץ|fTnLMT𗳠 ~)I z-A[}P .
-8~R%>>R+ꆧ|9ssHl. tmNAXm+J5t#[y\%(<=I:$“bW7GŔ&RR82,]!PbQne8q8}(z>5"Q}_}'pD!1M~ "#; 6g &m 6$I۸Wa[4"YEOM<]X:kFGv7R+"XڶKBb(z`LC"kPEC F"Nߒ4q+J
-FN I$CXՖQW0T׺AZ
-oGKl`aQ會vD
-֍(NxȀ=&Q2SiOjWWx18f 4]/+@3d</ksMC]`a C\ -ޔgęE˒mp?/j5s
-:e㜜zqg|ј@n_q zn7<@I'${:OjQ,?#:[9yS(5撶laQ BgpxXKuS8t+AIշq(
-s R|+S]/y~r*LLg92-N뱛*˵p;k_vT׷muԧ'o}_G;KbXwqqgoO]Y
-T64:by~v7&C)P&&B [4?k g0a[y]wޡF2?|rbk/N?
-D`ߧ9}rLldb'T3fϧ 6%T GLxdie-4e4 ]
-\ujDz B M93$5%dpy+#cyo6]P\{~ʠy-%O W}t!oZ4VVH`MהXnM^N.
-kW(;!-}JnEj2w3u ǂ墝-CXd;~+g yrd4o %w)b_JhJCU, ~G 8DDIY'G2M%F.:/t}9vM3HuD{ͻxn((s5$L9|iܛ!aCܻ/h>e3`jP@I$]%үL2y@apt)#JqCfG 1{- 2 O2~ PK@d@.3_ @< ^V9@4հN56FAD3܃T0=!a,~{&3RHٻJgùLgs(;} `j_5<C?ťv'I~. .{f@q) fu)3{f"`ɀUsu`ث|V2܂Agid钾utdL
-L."~߫):I6~q>Bw,} =ײ}F4[
-Qf&R_QdQ)1ĩ`*e|.w֢:Q8ew0
-$R>NH V@<6!@] 6ZMEdǹ/E88/UsL /yyY\,g/#;Df33<+¯۲m-YC&%Tf]pu:RVB/Ӯ{8ֱuҮ4[q쟸W#"t^?oN˧kZ/3>N@z,o&We<:AzV6(ڔ E((RQp++ߔL-Î$ZbyJ icŒSFPiޝ,~}Me_?h/^u.zުsnjm{l^-G]9;5]Y5]M,$ kuFp v _h'^{VK61Hݡ%qX⿬(;yDE"dzTdVeH \ `
-sIB:RaPP
-B)z㯏NmdD8c(אY|*RɻG
-s8qFCzhsJGcI\먁2z%‚k 6 ޴542<+[nY%(M#$\,zp.$8q܃{.U7]cvEk'3R6@CަI붒ׯQTN5[H[3!IcE;O5m[1 ]2ʨ茻-_w&AۻU3xJ3߼V~T pIױim5Ɏh
-g}my
-}Eʍd$
-IsRXD[{c
-qרSK 67UR C'jxO+e/52ϋSq̊: 4UjSB%['z؍Ӓw?>!~̯99]Dy4vG;v%~M_a qnQĭ'[~v+BP[y[F1I"s6e&+~c`ێp}ù:3`A\
-endstream
+652 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.576 574.474 252.531 585.313 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-659 0 obj
-<< /Type /Page /Contents 660 0 R /Resources 658 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 662 0 R >>
+653 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.282 496.071 166.237 508.484 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-662 0 obj
-[ 656 0 R 657 0 R ]
+654 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 358.772 405.217 370.728 416.285 ]/A << /S /GoTo /D (section.15) >> >>
endobj
656 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.656 487.577 392.611 499.532 ]/A << /S /GoTo /D (section.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 306.379 240.863 318.334 252.818 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-657 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.423 487.577 421.378 499.532 ]/A << /S /GoTo /D (section.11) >> >>
+655 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 117.993 67.03 310.432 78.488 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848)>>
+ >>
endobj
661 0 obj
<< /D [ 659 0 R /XYZ 78.37 808.885 null ] >>
endobj
+169 0 obj
+<< /D [ 659 0 R /XYZ 79.37 548.328 null ] >>
+endobj
+173 0 obj
+<< /D [ 659 0 R /XYZ 79.37 343.519 null ] >>
+endobj
658 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F19 379 0 R /F65 387 0 R /F58 386 0 R /F57 385 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F20 382 0 R /F68 402 0 R /F57 385 0 R /F58 386 0 R /F55 383 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-668 0 obj
-<< /Filter /FlateDecode /Length 4642 >>
-stream
-x=M$+zo6-}Ky~A8=l{ٿ%JRu]EQEYߗ򻗥{\_<Fu7 8Ϥk8[ |o m姂/ k/V[fK!%V]&/ZHmFDE.ˢ||ޖE_# Dqce<`~~f^{Ja÷7!\ 2#zG7p+`9c4c~qzgyRiW >4RM!]-8kƎ—JFJr ]/j+~<RDQ)yGxWA|W⭌TxWl#<Q
-+6J)V땛[S\gq |C0~}mP"uF $+,@?DeU?"]H
-.C3VS,vb#[MjSB?f@y>,kxږ$s:}u[l;9vx[m2Cd7L"O16=3ڢ @ՓD'9.8m`3gl~Tٌɡ@3p@KNDiʸHpFNsTiUu5dhpunk) a01\'Lw)'{@\$2 m 
-ZZVWiNF2#USzcXo6K)hT[&4ZxQ킣W`hTm7r "EJnw݈rx?H}X{'Va*Uf~k%E`BՇWn1HM-w7&,fk)yQ4
-H6ஔ8Goڻ!'x'\]kk3mL?`5
->98՝A
- wЪJI":@v)?Dr>Ff[Ĭw&V,|6)xHx}Ꚉ8l_WZƸ}pt{f>ʦȗmO-,L  .9IZYe`,[42Q?G?η-;_ACuu#zd\;_Dtm8K[<^f4?LHa0W/8moB\5?̿ǿ@(_ri{}n<2E;89nt]"4{靾埗OAO^|ajӣ$$3
-};v<As~K>*)2uj+3211o%FwB'AQoȚ'
-N&>vKX?^$LOSSCXT2oķB[TU`z_U3%ܿ ّI=ΤдF>YZ1XinuY=гrZ2fULϪ}B+fI~KKQVcW;B
->+>,,C_:
-m_BR^+g
-3RyM 7v^sh^?5#RܩbR!+%O X.yO.W㘓i#',)ֱZA%.PskIz}uy-C[4%aOiʄs4>-%h*% ,>5
-%DcUfWLni%ݣD{s)c. ngvL.̪.-|RWae|D9*wr
--Zکh m#=Tg{ݬ0wzQ[8P gxrSn٨FvB# V˜dg3VsÎ,*tZ`پ,gKZ%ꬵ^31Vl-M/* h6U@S]ِ{uk\/
-"Ȳaӝ۴]Qv>=Prz==*Yi}}eve5
-hrknm">s,l:`׮FV:s0B6>A3m1*D-jGڱB}s9T(tYu{֧wڛ+̊;=b+$V%<v骧"c%s.8vg}a%7rv/շgޗPdTnOj~SCh6U- Rg}ᜡ[*[bҨ$/Q ݉*HOu Wi 1WUSpԦbpNkUQRa
-Wf%
-˵gʠZ@Um|RAwcҵńNj'CR>j2p1ϚLmwMek<4J]!\lGޣﴝP{w|1_S2TYMe蕦ơ̓4VI#ܯ5E5fN,(a{ޘ
-B-#%*|LYbU%`5>UQsQAPZ3WoH*pB!Q[7 *x:Gt(% gHx?3AM8cӝX
+667 0 obj
+<< /Filter /FlateDecode /Length 14581 >>
+stream
+x}M$7~ECF; lJIXsݞݝ
+RU47{N'N.z._.]}_/ʥdwݲ/?l[pk/~ MU~'@|ٺn߯fQи+ZiɍK6E\ru ]I!uÞ\[$
+0'տiW?)0xW^?W?__W=զTK#Lc=<q%/X}{*r
+mnIo2 (SMp[n x x: Tk朊cΟ|j]׼KW҉oӸ.eMkO:赫HoN t fϺʕg篩0)W>{\l.r͔~q]._+_xv}ͼ_{IϕkV/< Ki+558r]nRrCF.9
+n*]t2UBȝ.Ã:
+\HEXyKbX`
+KzX\;2EbTtfh0OGAB:LQ8[$2Sm.k/
+kaM>-"dtN7WX8ݣ@Ff@Y!jY}/+4=L;=s[JBJ k dF͔n?Ja&\2jn!c͚LHH4e#. bҘ6wg^xL",ϴbFb.2$]}sck/fⵄmsS-R)`. Ҡ4@O-bM3Yp?uGZG&S:+-b)`.륯5!\k嚌vۣ
+aI ˎgU $lrK%<K)5Gʓ%`o",ɡ$JM t2UB]CǷTS,%9 TsT@AierV @=10BTC+ߒHs:L7MDGvh-|œLx\yu)Ȕf* oizMB ;K#)
+ AO&0c8.!bMx26Q5yW8zqQJsISc:eJp0ɠҔQKRS3~:p#)p$Rm%u
+"O]PQCz8P[tM$Fej0_lSWhXԑ~ZAomL ɞxœPNP`٠`M,% 5k]k9&)8O6N]/?`gHă&qR
+zYJf}
+j¥jZ0S`6+E0s0I:\i*%bΦ0JҬ/WAnrtTiz7є
+άheUD-#Y%QC%@tU
+S.+Lp z2,l&%ϺpaGGpHFM\!Zߓ/&ORS-LN^"O10R>bB FwvPFwhF2-MN(yB5dQA``SEC.ď"܆%6fP(5Y
+}tgX/z_{:Jĩ|&٨#V Jk3z $\4c{9ۊ .[LB^\$KjkS
+}iFX %ѝ߈AӘ+svS0\-﫧Fa2*U#%^\Fׇ lp+ +6ΦJH]X@ TI;oŒmOm/G8s`jzJHL! T=&'+e+zrTdzG,W zgHC<D
+#p<vI<@Rvߦ 8ߪn,WF( M!:C0pgP/Wh!ݸ{<X@F=:3
+j*
+Q`\
+JίGx+\L\P@
+$4eSaJ$%S
+T>?@hSAC8R+@%'-'2ݱ)^!'5q6'tgP/W(v^i*u o# sR@ AUp@Cm+Vg4!2}ێ,Ց|CmzHyЬS0W+UUx4̡@sfjv>0uL&sonSS}wD{jJ\k%'eSI#t\.uPDo].}ܼȭ"a CΛSH9gú-/C`L㛾L.
+a*]0C[aVҚn%g#1++gJ󌲏n'#ըٴ-%`(@L]-}JS%.U,$N`aFXJ*
+XXd:wXvPZ
+B+aeMݧև<Dzŋ
+
+0Ja .M
+J)
+ׂg4F0U.@[uF*ND-J!:x\*۶Nonj6N@I)s+5p@o [ T@k8$|qYujm dj|ԝr'y4@3TW2 -w *|h=A9Nw2&N<ugI   ty Q~јGx0fK瀶fy*Op"d|̝rQ ; W\.
+Ga(;ꋋ_IBw&T7@E3Zćv:04()}2lLJ[ߖԑX>6*s\4Ca|<HWW})QqܧⶥM.4ئ|OxQ;#-Nhxh7H[Ǩ
+\tlq*W>^5-4#il)RQW׊Da,63T@u<@Q.x2i2wIi<0 Ci!GQ;ɣa|E cB$[!8|4I;Cᖾ*YTCRd|̝rQ ; Www>ƌ#RJ-tbaKB Gk-wGDA<@Ƅh tAa'>&mcYvZ8 OySQȨ;NH|jفL@p}tmG U7 9F^F| a&2m 5:8k; y|
+G4 g($f*nvoFY
+N)Wƈn+[2pPirT0,P&i
+̆)(j|ԝr'y4@3TW2&o/*e|_LK|8y <zT]1+wIC1T;em< wȃd@'P]Pn=2Mm[~<M!FQ#;i#p0g+Uh,H2wWo* %]ułr-|\ix`*PQTw6 N W&K IWR}TWq,5u=6f{9SW*q YyK
+
+9|]apJFxsy+ FܪJfѢe49k'P
+t^AdU,:21$kN<jt 13*JYjhlߑH" `%+H_dMe]"Jl̥
+`R&
+_gIt<h1Y)]M5D̔XK
+ L546H|]^$kQ!5/246zD d2hKeoL% *m.xj
+xp%eijLL=ltB
+ L546H|]^$Вe?d-ea="Bl̥ײQ' 섋;^g=tq<Hj3%Y'Y-*7:D2TI;Fsw伮/jX8ɚ3RE$YFSYFN3sXᨔ $Z
+G4J3*y]=_Ԑ]gtMei]"f2l̥ҷA& ;_Idu,d5E=U١aK=*{-UΘ#eM}VCי.\w]Up4K Pe< *A`(Tߑ!`!% ]VdQ|6kK@(TpTTCccוY]z~
+ezIgӾ>{4 d2hKeoL)v༮/S
+on||rP>@_ Ԡ[dPVy`J7vԵqk_Dngi
+{a|e>Ȁ|
+Usn8nxv;9CE7F2s. 1=y(U1=C;%&V2k.M>0~[Pny!'2
+pk5H&s__C>֏6w
+IZEs0o|c.X@L̔puj4ȕ>jtv>]tΡ$(16(v.A{sjlRЎE׏g2un_ocf'Șq0O+Gt>#qNGS^ᖳ"-<5Y3Z}WHBGE+z/P cfH\Es}>>W([q"reMdw6>"^fB| %9O<) C1W+7甹Evɾf⣔|߀y/H,|
+Y%Gp$7.Ts?YDAz)񳐓IUs=_C]+o ;gZWN ԅocoJ3œ!q kx'[GeVp1ԝ}lvWr~wXvgqz3*#?5%zQo2A
+NzsNB;*U~co鱐rַOf*ۇ
+#!w6> <M} qʻmjHLc_BCd^ )KJԊ*X]E_|c) qYb*vl?[mUXQ%
+;2oP1`l&P/v\h͜7j:1ރS+ 0<,@<+c>]V,`x
+hLKft㑹L )$rS#=)g|wcy#\hã+XmkCS}3Kzrwt<N փ@ #w
+i*E6ȳn߇wrwA-V_ u6̱H/v\:C
+Λ\@']zf̕#Sn3rEOQv^M^>^)םo ӿN %I&n }_ kg/pV{(qµ=0ӌ
+y-,Q]+9
+E'L< Ah HYāWASr폭Ln䵍/iKsww–ͭ4^jw/?
+|MU!V?ux䵗uضҷk擄Brn!=r378ĦjZN6#/w2i(cBx0>6ye2퇫
+lYZn4
+ZqY,JsVy|_A }ۋ҈?#Bb;=n|nb(o?i`oƀ>:\ شJ<wj_SݯfSkiCk=ԮW𨣈Eg;HSN7_,h.I.Я6i;-ɋ[rW>hOΧ5&A/l?jW_%HY2ӽ6P}>T>N7ÊwS ~W}XW{ւHK?=,,z YiQ+Ac;?jw9[GԼԡ)wttWj>XuBGͼߦ-ʳmd.<# ەqҬJwLwsy{,_2edA=6n x3Y/AJwT{fU:<YߨO6ړɗ)MKbN(MB3ᾰj_(CF5ݧ_Q0Nzۦ?p9E|Vfqk}ikTKSduIXLP|Q+Wtb1nAK#p+8=XoR|{ ~zBg^WN2ב'frsHAI8U5O);cdwܛ0#{Q":Ƽ!-#_c@f$5ɍMf4lfQ~kRv91ZKtk
+Y+Whܨ+󨤉M3*
+rv~gu+Kh_^26g @Z!}zV
+a:^<Ww8e&s߽ޱ<2I|h&\֛ϛN(yZȇzV51Tsa5~c1A>NFYhR (D<90PGn5uTMQQW>}yrV>ShQUT-WQ1yUD
+ݨ&FH.F^e?ɖv m+P(&-FӺnW=>h z^޴ذtm7K {edOaM1ɃKu!3m
+J?n ];^m^rč,>}{w!ՉZC(!kURfP;}nҢ%VyOQ"w^}'WfCn]}MyC]?>m3XKgO!e7Bo_!E;+17Vu6<kXIٰ Vo"x6{ݻ[3\? ~K5}ݗ{2p|>bp_cI?lrZWnvGI=&|nq-Ms^29y|僣ݩb,"us~ox6gM
+
+;={\b׮k|?o<y\8尾ƹ~2q]J1R?82TgD6nγ_a/tusX&Є|{U^ibtM^T /{o擠J7}m1AAo,vMn
+Mho^zwڅS.(Ӏ"ƙ%7g_=벁imˢSOrH]wח3
+uk=ړʧ"th,,;p}x
+|rX  ===ukG.A9"}bj: 2Q:;5^;U7aB>I ip"wUET%Rgv΍Nx8J[<vAp&_;N9hI)99K6G>dK%z8|\q_a~\Y MEpEhͮ:Z9j~NZelWUp.Q|lߪ#Qu]d3JuǟO?]$%nہLVS(1%$ͣW;gwS5GڛvO87ƕsrp6FʸJr_FDYG:ȟD/zIRǮO9G89YY/'p8smESr~zxoD,3ƞQmy74,lX^8֣_{ħQv3k
endstream
endobj
-667 0 obj
-<< /Type /Page /Contents 668 0 R /Resources 666 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 670 0 R >>
+666 0 obj
+<< /Type /Page /Contents 667 0 R /Resources 665 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 669 0 R >>
endobj
-670 0 obj
-[ 663 0 R 664 0 R 665 0 R ]
+669 0 obj
+[ 657 0 R 663 0 R 664 0 R ]
+endobj
+657 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 385.311 745.619 397.266 757.574 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
663 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.269 316.805 414.224 327.754 ]/A << /S /GoTo /D (subsection.15.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.656 232.819 392.611 244.774 ]/A << /S /GoTo /D (section.11) >> >>
endobj
664 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.2 245.074 197.906 255.913 ]/A << /S /GoTo /D (subsection.18.9) >> >>
-endobj
-665 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 210.857 245.074 222.812 255.913 ]/A << /S /GoTo /D (subsection.18.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.423 232.819 421.378 244.774 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-669 0 obj
-<< /D [ 667 0 R /XYZ 78.37 808.885 null ] >>
+668 0 obj
+<< /D [ 666 0 R /XYZ 78.37 808.885 null ] >>
endobj
-666 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F17 380 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R >> /ProcSet [ /PDF /Text ] >>
+177 0 obj
+<< /D [ 666 0 R /XYZ 79.37 564.292 null ] >>
endobj
-674 0 obj
-<< /Filter /FlateDecode /Length 4958 >>
-stream
-xˎ$>_Ge`{s|rb#7} ǿgTX7CN)()zDO(tU#Ns-O~c=qDьPN>]*k?S*Vo
-D i :x"rWzFfqqiZUYɷեZt+eW1Nc
-HXoi2kdBᇹ^
-+e)),NTLet
-g),WK8%)sR2π 'QV)4OdkScjMI$s3ɓ
-^
-%Zl.PۆI8A7L-]?|>J5GrZ4(Q<{go:{kjۮcNЦnmm %`tbǸ
-a'e ~|c "2Ca c.5>i[d۰+bXYy·WץkN"
-QX'MDMK0ibUv*DaU[k&1XAUPmZpSnn"miONh<f`
-D_.t!.G}/yr<u`B^=yF%OW.ت+Z荚kem܈ƈpzmE(Oh7|}bh<9tݵ7?KYDh̒{`WWWVk7[ܣ*@ũP*J
-(]T
-jyUmNlnkwM50֫~3eБ%ַy=
-C=W,duU <eFQ@~҄JzxZ_KX(CaiA,e/%F iVKk e(,ň6wɜ%5hr}RRN?|N~x*ttDh7Iq☁?;Rϧ)2r-PvVv FܝW!0ͥhެI(DSq!k8['MP`b[
-6DÞj[ <AaB XnS ]n[,9T @.__n|v!r+oxM /)зP-
-
-xfWrMY dPfoPOr3 u 84,s5׈:Gwڠޗj^4ܴFCkYi\WlО0hgF#ȎJ'|YWd3 َ+t9йP
--qХVlWZA?+
-"m#N*Y9%7.䀹]b
-!w5laӁ E/! !e0"c KК=#A]0hS9JتB[)BD9;kr 93pD\%/ωKɈеtS\z LRL +xw(f>O Ok~C<5@z^hXDU 8o=J_7/M3h fKm[a Q e6a(`qh7ŲY^"̳1^pXwZ蚜M,F鋺N= eATU&-㜲O[4YѡO/}y;K )=Ui{jK+y9urhe6P#! ,*<S>S
-QQV{2ٹVu~"[T)h{7g^ V–ιͤ1t6Y$AG[d>B֥bK;Vx RR&&G\:aP;o`Ro‹6 S(O kء_+Y9y: Oq֏#:[:$TNV뉗nsCc\S_l[_^'tI=Q7XhpKU`!r2~e6|Z/1.PR\n.Ś02: G0qg1Q̴ŦefkDFf}\7^g] ckvJ MJ;\=jvj,*nrzPq6c2qLa
-ݤşX,D+%t3&Ci^P)IAW
-hl3}G;ʽq#9՛5 xaqnw>GEg=vSVoD:2DSӍZ\)~[/!adE$duȾ%,cO8e?^NQA4cp,<Y)2~nHll$-4*,@Õy3,t=,:=$#Lgsthl[qik}6vk# +
-nOZUe8QnVM',r]0R @YJ0sкô hWb73
-Py,- )? g$Qh 1Sa 4k+xz\*Oyf^rDSٞzao}ƙ] rgȅ۟z)`8|R7foS,`拭CotifAY n+ VsQxns*.J/^9Ngcw+3/#2ǿ9l 8{_],S
-Nxkg_
-j6 _j;~L}OP3Z{me [_O/aFopDRi}}
-5Bb͛VfnaT{ ]>fKɅ&8/r&lew"1nDK5<z'eCQ"c J0Do-9mz+vd:k.8QGl;~kuN71,֗ĵuœԾ~6*^7׆6FbGy9slۓ#2{Jzu>NV,a/I8܄ *>LwC)fy``|6EҞ H꯺(Ҵ<Ģ*>XХmV2o$(j˽Cmh܈Tf%p;bĻhu?ۘWa K!ҫ_Go;DؠA$iJ9{d=qֺ:*dtVVi4iJ7'ĉZ&]=?\L)Uj%^~t^3Q.'xtVZEU#ljV> d=#B\
-endstream
+665 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F29 375 0 R /F20 382 0 R /F68 402 0 R /F23 379 0 R /F64 387 0 R /F58 386 0 R /F57 385 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
673 0 obj
-<< /Type /Page /Contents 674 0 R /Resources 672 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 676 0 R >>
-endobj
-676 0 obj
-[ 671 0 R ]
+<< /Filter /FlateDecode /Length 4833 >>
+stream
+x=ˎ$9nmFj~
+M#wH|în~;-.yfs4UMk/9=Be'uP:?(~|8{#DjW!TFW7K/"2[
+~gC <٨7{u1۬/rB IV"$Z u2:k#! d˄Hgeya ~0ȈEmT,Do=kkgrfHQB񌱰6m̲]U2(]g68|AŦ?T gѵ0hEo^[dl2ks]4 _
+PHtDO9NKe wRZu5}GxRG2\.EBqFU}9*a:('}fڴK3XNLZ);}4[:OS[P BC*^`]G*y4!koueVKP6Ȫ9g1'ՍgjYjZnH.g'6zU?wꗄo{bkA:b1bua
+TDa` 5i8拨A&}*/mz 0ulѹfrlPC[9:L}j=+i2iuaD{r+f}61o0/W fa&&rOk9y}Յ~!e?n_9 Q׃ڛ|jxJy꼰Ѵ]Ç4eZ~8.Ik gi%} R]O-/.cT
+l22pý@tGJ~s*D͝>ÉKӜ Ҿ f$=G,.LdɝY<׷ `s̔)C;%kǒٯhTZ8hMG"g8F5ݪ#V~G`7AzĜðؙm:sPuncj|iy1ɭkqą% 5T,1k0`GJEk_fRoK |^MjoVRpaƘxul-/2K%K&JZ>Ug-!tyw*>T|2rP Wv
+
+ekWtMd=`1mpn\Medh{~DORZ;y`%ڶZ&\r{?#S2,|i
+5XFy-+>Nx3P[]R/J}0
+׭Z/+^B+r-mQN
+hZx%odwIY"=L,E%]NjY;x8LUK/O(Y7/
+R&r2mZ
+H19}B}^MU/ͲTh`oT
+m{wc\҂ϰkh6s,!xئVcg WX=̊^` jݵ7,_>uq
+~.1+={ABQW^#/"nv5NOgOPK[?,Q#\^KsGDsce \Q M<]z2PֽudD+ wTi-?p`hpDs%
+-Q
+*A<Òp0six~ [ KB_tujK+uB膡*Uްf!ߠD=N>8jۑ֧3%jUn0j2mMsnx2Yi~J؞& [u~D[Z͝˅"ŏNʩvD $s"OwѼ)axG~5 |Oۤg%|ʼnKjJ}
+endstream
endobj
-671 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 161.072 86.225 357.742 97.682 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
- >>
+672 0 obj
+<< /Type /Page /Contents 673 0 R /Resources 671 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 675 0 R >>
endobj
675 0 obj
-<< /D [ 673 0 R /XYZ 78.37 808.885 null ] >>
+[ 670 0 R ]
endobj
-181 0 obj
-<< /D [ 673 0 R /XYZ 79.37 420.104 null ] >>
+670 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.269 67.937 414.224 78.886 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F57 385 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F22 404 0 R /F16 382 0 R /F25 375 0 R /F69 402 0 R /F19 379 0 R /F55 383 0 R /F66 388 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+674 0 obj
+<< /D [ 672 0 R /XYZ 78.37 808.885 null ] >>
endobj
-683 0 obj
-<< /Filter /FlateDecode /Length 4627 >>
-stream
-x]K# 1{"Q h4^o/["
-c˱k VR|[#M6߲/g/ZzZ*^=05 #mMzKV5żBE}T9<\8~
-.F,V[9-V0pG/KԲ,|KGzUbۥdkY*ޫ͟*MoCu,Zkk3%Z U*$Ϙu.,9v=x5uE53"IY_sjXByuSx9#4 D0|EsmraN= J~{E-6RbI?0us CTd)>I#B~lGd觡;=GAŠ:6Ms
-!9LSZϜSt|h0m0t6%OX̱X-smyda
-FzH(206ZTit =v )lڽvH C^;v/41tKnty
-oZ}潅z[;zn7c@Re,ڕV>&
-WL[ ;jXQ`L >;Bn伴 S_%@^%S{ġ8T\4zx1f}2yr+N6_Sf"%'-յ5}L^eM줮eal8eV_oO~.rߺ2;nKH
-ߢk4TťFf|8QFrnձA۸hOlzK7hr݊~59Q*-抚,Y.ZQ>`bf˯Ksj\3$8[o$m{!AU
-I&& YA)LXȟ57=B+IsF 'Vw-R]AMp+EswK>g 0օo<l['7T"o߬\&y W-aoBz
-oE/o7M@B>Ψr]_ڙ8uZȟxF1( :[ Kok M C![`MK #q< iP7ҌKNE:0Қ$0OP4md;
-p "iuQoTSH;!sgQvN +IFV
-t {CͨCn̗:p'.>OީygGfF-B7Cʶ!Uw/(rí@Wm%Z8.FAh[gEeK {gRA'r)|۩,S(Iej &C O e"` f׋-U/^/́niLI%v6
-eYD9PjxX&À_+r#'[z̰F]'$eb@vZ^I)ANBVC.Yfse;k'ϓogz\L
-pw>lJLx{9ީȥV.(+d\_6қ}
- u اa)o/d uEJN^7Ȱև .OHg ;kKX&k6PŘ-|-g}\G湧e6[5~}()pbuᵌ}'4[AeWsAI5Tjpȱ
-,L ( nֹf?!ZИʩz'-7I1{CBw/l0mK$^`woBiͨBH*t"%h.{JI_^V=R:;M,sv5v75/6M.)3;&v{\Jc0saM}a~ ۶Ё;I,&<Eƣ\;cs! k3q_q}7Msm֣m=>Y=̒cOH䞚٫ a4R-5\ǵC(#TzT
-{
-ȏ ( X8xϵJ:4WۃpX3W|5 Yk-3mߨ̂
-2''Y9'-uo re ݢ%/ͅR?uA|GO[ nDLJY)S ®OYH¡ ;z t</ h8X;juUԼxisR(} ܭ8m`M݃#L;7*8b
-bqIKZmD=Az^jBdϲ RPԶON˒\;U/}N>^_B6Boq JHDɐF|APФ{4vax'7JRP¯Gfm#i/G^Ξ!쾑+llƊب:=:- k=9?'8yJY%zQm|C^m.m'՝VH._q6h"+(X&j7Ƨzf 8M:!\ qDy
+671 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F29 375 0 R /F20 382 0 R /F23 379 0 R /F52 376 0 R /F15 381 0 R /F55 383 0 R /F51 380 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+680 0 obj
+<< /Filter /FlateDecode /Length 4876 >>
+stream
+x]KﯘupNus|rb#流o]kVɪŪb_N?]:94?;G9GJ}oBbPz [|+wкң֙4O]\R؊֞BR#cc9D/[PSKc|oC~5'zQR%ߟ}`<<tn(l%#ʊX) O>Q,Grc$7P+94]u
+
+Y@`WL ^&Ox#IKk
+ T{oƭ 2!.ȝӕa\E\~:Ӛ;B /6DXLܿD .pv$ bIP zLDx"X X˷`lt"Mf
+̄sݠG"DjBsmNl۪%qBbʀX6Msd`]mG`S%'}rb9Qz~=i@}$~KS.[n<+kZl(Q:?DZs01p()p?MA8:%FRST+1./?z`2P^*Q)8\CĮ=* 48DŽHVy4<'+ =*ĺߊIh6堜8n4m[
+\KIaǖw>h 3B羙)`go.ԈYVOeO2 *[PۮNvm5 .n?=GyX#ю@\~ ><1p(Uszt1JOg#Ï3@D_NV=}s.7yD0o~+皜( ?Ml<LFn)Qfg7N?(v[BmH6i,8CXzv$\vـDY=Ӝan^y+J+.5 V We&U&RG+ UvSX@ߣ^]w,9o XTi`o)Sӓ;R/FjʼЈ_Xs 8{npA!Qҩ tGz%҉mlLTV jBk+RdGuPc3n㦺7a8qf&@rMaDy3V"df`
+tfB(@nLtOpAq7R[^wvn IA)+gTBi1_7?3vŅGK9=ǾZbkߣuMT>OOZE| [n&R-NOErݸ:Me@ 4 4V-euBo͜=sGR݈x!+gh֫v#a1C #f|D V'X#\P6;';v I1\IDi[$lFzT']j9BMQ'nKh NAma
+@G=zWLMM;FpX?5NڃMק[K=טnS
+R!
+7ZZflD
+LQ9(#K1B2cstXNcs۵mѱB<xz.uKI;vyU'0DkyP3W;r[~Z$Qa@9u[~ 0WؙG.r`ݹȹj׬
+-qХVlWJACdJcl]|| .M][[7+\.hI/S)k:~_|.,!>~eR}kUnB?EwXE0Qqa=5U媨0Ww̗,q]Iy@5t>%sRRޜ
+P/VgBJqYyI/?J2[7{ lzO{)C$"ggb3spRAtU ڼ7j"'Vxv
+I%9U7|`sbIFmѿmlKlsdH;j3l ׳~3~$ߔzd c8;2K$g_m:b)-RbJ"~)'XmVVZ@( ]&,emn,rf Us4׮hBn*Rl?ʐ3_IsyI
+4l
+6+s n2!5_ڀ$Z,#2_NwTc灮!
endstream
endobj
+679 0 obj
+<< /Type /Page /Contents 680 0 R /Resources 678 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 682 0 R >>
+endobj
682 0 obj
-<< /Type /Page /Contents 683 0 R /Resources 681 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 685 0 R >>
+[ 676 0 R 677 0 R ]
endobj
-685 0 obj
-[ 677 0 R 678 0 R ]
+676 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.2 710.311 197.906 721.151 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
677 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.071 483.206 513.026 495.161 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 210.857 710.311 222.812 721.151 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-678 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.774 471.251 441.729 483.206 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+681 0 obj
+<< /D [ 679 0 R /XYZ 78.37 808.885 null ] >>
endobj
-684 0 obj
-<< /D [ 682 0 R /XYZ 78.37 808.885 null ] >>
+181 0 obj
+<< /D [ 679 0 R /XYZ 79.37 175.955 null ] >>
endobj
-185 0 obj
-<< /D [ 682 0 R /XYZ 79.37 553.861 null ] >>
+678 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F29 375 0 R /F57 385 0 R /F58 386 0 R /F26 404 0 R /F20 382 0 R /F68 402 0 R /F23 379 0 R /F40 391 0 R /F59 393 0 R /F71 439 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-189 0 obj
-<< /D [ 682 0 R /XYZ 79.37 163.506 null ] >>
+688 0 obj
+<< /Filter /FlateDecode /Length 4722 >>
+stream
+xnd>_ Kq#4؇&Y=ŽǷtGQ
+rr)PxN*ԶSmePOp
+Ei׍n0420])l+a a6Ym;DugRd;EE%뷫R8'c$:.5i> i@2M[ Cxο's#9KctXehM|>O=-ߕuܤHtyJ
+XlAREQ9ObG>~OgNͱؚ5G~Jvw] Gڅf&{h 흔A㚒hW-H?u2 j6FZTZcPn΄vhB]Ø=>0>vzӻF+O)7 |}s~ иE~=%Lj!Lڌ:=0y5צx]#W:`<'H~eEGr2FjjzI584~X~Ga(*7h
+a? T5.PH *YOs@)Ckq%d'
+ܹCi:`vVL}ܴ0#7aM0CmcM0KlMsSɯk}IŜM&1Nq#]!5M=SUiO_]l&,6d% .4&o:lIwEy _Ȃ7]#l'7ݣTAjt-Oa%[.aAI
+/#vO38{r9=@65 噔{{8Ĥ ǽms$[@wқ
+[_ tq|<g|7dg3wPx15_s̒V:r`p8ɫ_fg7:lz65$vG~l4]Bԝ
+4ʔp$&3@j2
+d3%)."=E|=>OGϥ/]לV;Nic>g8jrD_Ye v]2zЍ,<}(ߙC R3*`g#jXqEL> j ܫXuԅ9:jIa+Ryye8%O3PkUSpQC OK*EHӏV:iQVx,.G❹Ce G`B}` v\`27Ņc3&+
+WM}Nػl?HdJ_"Cmomrݸ
+->3<O^6SXR&t5C72|q
+rPixQ_r~خ&'ceѐn!Ɓp75Ē+C,)4̡^қ0kas: sF !{Z4qmrL? W<ʭ ̱*GVcJGm
+Wa#E3O)QuR {5ŸI6hXX_6e\9 c T_ʑҞ @*l=}p*›+
+®VЯaGKpE
+W
+( 27W)p.xqҖ onK L7иۊ~59x\%_M̗,E* tF ^}ۊ'ApVIR po^"K\(%[/q ѿ[/* xaA3xGn:o^^-@8Ȁ 1`^ @8H߭
+n= FuQlQ Z[x9;ZZ;6~Fn[j
+7җm¡OI?n(nMأ@'MK0u
+)CJNmdqhZ6؉yIJYHQ.d%Oķ=Q дo"R -&A,qJS8k
+h~Wzճ \.YVC~8.EЩ>zw #|
+9O2hKgTW=G!+L.~m?0xȄZ@j3zvm+}mb/kwqJEu
+endstream
endobj
-193 0 obj
-<< /D [ 682 0 R /XYZ 79.37 124.001 null ] >>
+687 0 obj
+<< /Type /Page /Contents 688 0 R /Resources 686 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 690 0 R >>
endobj
-681 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F69 402 0 R /F65 387 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+690 0 obj
+[ 684 0 R 685 0 R 683 0 R ]
endobj
-692 0 obj
-<< /Filter /FlateDecode /Length 3409 >>
-stream
-x#1  v`S"Gwx֨,} ?\ VZ}o^8+ߗ]9׎O 38oɹߥ Fj{˫.?-aqV$}ݷ"x&qO΍nXKbD\
-M'lM=?)%-E-q*|p_SKX7G|P^3F>yg.LUq}u>o%ӛ0Q&'}x'g ˉ{{tlr}=32J j{o^*OJ1rtbHitT 
-ӝ'n4_g4|Q3պ
-F 崳3'qYFJ)5_Y흍Ol#QvvߋzZR$!Q/
-SEh 25)gm}J5Gԋ3F'hH|#bRo,* !M+>GВy.dzܯ; 1d:4c܅vޯ|L6nO(] [ݽokym'p F$yj-̵ NKk+n9PT֐W<K>Vi󲺦^),ͣ6f"qGsj '=pF's%9~j2z yS-{ &Q?3~^u Ǹ+gP_)#IbIkFXI4u!qdTxɨOӔ$"3yGR14М-Yۡ~RjƅrIzzІİ7`
-
-Pp=n>PU{9W(<:EIT$fNhOsC _K={0UMë)SXodUujBNXd}fHſ,ޠW%vւd?]qς #^+=P(˙mFZ#
-*UD
-;B~$`oDaZ8^+-kڷoHw6iEMlU㖋: {ˬh<SEIӇ dO|k\eJV)f]X a ^  nJIτIr?:%wT?#Āk<w,00Ă z @U7,1RQ}`.<jD"A%Vm9Lã,1LƙUQ}fy2Z*'V,jZ&Qz+JZ>J unt'~2~/mj>BzPj쬡aFe!g0aGˆg<uӌ||/x7„micppOI?R;Ō3kj JG))w^U^ø$gԙSo?vNx@ՋT10 N͚hsb ~h+dŽ@yC+ȼ|pت9Y/[&enW}d!h?bYf1BV5mT'ku,^}{M-f\2cdžFaBd$.,~)ӪynSIztdvl/xJuAuf};c Ђ
-Zue |O!V " YkCm(9d AaQBy:)Ep]NQ ! SWV!Nc8tu.iE. p _Ri:\騉(::\PN܉mO]Fi@-X:6~u4uReTLK؅O\<yfD!cȅuK앤Ho"7Ҡcj@R^`*@=$>t򍮃J蝒}8\ƢBmgף@+k))N+Md;c jY~;aw
-Aۯ(}=)nJ9PԚ!~_b!nkY~trLULON@C#Kцi.o `i
-'urS_6Q\PFCcfZeuQu:D_Ԁ<:Dpߏ:'7?JSn'
-ǡ~spL l"wQtꁻ3ɸ5I˖Ғ߃\9-RCvO}ZӖNƭ`C%p{_
-z:xi5a}04֞5 #.WQy%uzč<
-NOfRBzFu&Ky^eĔN`OHlJ|\IF iVp4II;6pۺ*Pf? @G9pX큿akC!Xz3kf?O~: bt86Ҷ~:=RO2</Kz~6T}3.L5Dɜ=Qp]:it}T3\i5g3x8%zFjnosФ],
-WP}jP}7'Mw3j!mץWҳi
-5[..M}zpuEoO4EPLnƯb0 >uV!^q=-m#g<쇛1m _@<@!X.<{,&;צbl_u(
-endstream
+684 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.071 234.849 513.026 246.805 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-691 0 obj
-<< /Type /Page /Contents 692 0 R /Resources 690 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 694 0 R >>
+685 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.774 222.894 441.729 234.849 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-694 0 obj
-[ 679 0 R 680 0 R 686 0 R 687 0 R 688 0 R 689 0 R ]
+683 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 161.072 94.097 357.742 105.554 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
+ >>
endobj
-679 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.306 733.664 212.28 745.619 ]/A << /S /GoTo /D (section.9) >> >>
+689 0 obj
+<< /D [ 687 0 R /XYZ 78.37 808.885 null ] >>
endobj
-680 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.048 733.664 240.003 745.619 ]/A << /S /GoTo /D (section.9) >> >>
+185 0 obj
+<< /D [ 687 0 R /XYZ 79.37 306.64 null ] >>
endobj
686 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 124.899 653.245 131.873 664.403 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F65 388 0 R /F56 384 0 R /F66 389 0 R /F29 375 0 R /F20 382 0 R /F23 379 0 R /F58 386 0 R /F64 387 0 R /F68 402 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-687 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.594 653.245 159.549 664.403 ]/A << /S /GoTo /D (table.caption.1) >> >>
+699 0 obj
+<< /Filter /FlateDecode /Length 5128 >>
+stream
+x=K=nw =,9-i|ԣ$TULJ$EQ$EQ%6g7O/o VZ}OM\`ݜL{\j-\Ik|pn=ҟog!.g,Pig%\w_eQny*SOi9 [ѾYG|/9ı!0Q9C(<Zk?,SHk[ǯ)gؿkh/05ey0E8/}ƱG ,?f.U  >}[u/Yo@.ҥ瘓C0=BJP2Ѥ}6SN+j,Î)ۑuYMXl:tvWui5YYNq+9ߗL@kwO
+a
+@RUL> 9LiT!&C<!NqBLBz0@?qǧo=10pCGeL|Kw+M!s(ԅ!&X暬:,]D2$z<ߘ}kAcU,#SZƘ2
+շoJvL+}kj̱zɆ Z{*>=i/K^̸'`٪UGVϹE
+Yh*绰8~Υ4zhûl1x=)jI0x*fbڷaٰ:ej׆զN6em#uhmm
+g*%ǃd5׾g朧gF甆+|6<S5syz9?c>k1C:J˾<Ńuȇ0,@,J~#ym ƭb^VrćWgԁ~Q[Ygzƃ|̝|Gjp8sx]楳xm,ݯ8Lk>c !BA>jOget8f]jSl62 <M372T|G2X_@f;!E,( 28}b#P,dX{QZ@,Ĭ
+8ՃͳY@e0 .V0- N`[_"`em".x]h9\8i\̉E;{닐W0p" j!F砀
+8{ΧE_O:eLs;- Nde@ȱqe|mx.;<><gwBT{:Ӱ;q慃QI;|}#"/v#n-9XD7y=- Ne5H_#eP -oɠr 0ې;o
+8'7.N{>ma#ܯv
+=p4mW#r_ $s3K;{]p1,j9^q m=S3ƃaaO^̈IɍWp6Hg܊Jh`"]-ϳWgnEˎiƏxuꢉ&rCn{TWF=edFJǢsDA{|-J1M&[$ƅ$a f!4<GUaWGe:Ksē
+=4>G<:-- ^/O<K n訵q&\ZWc
+lxaTPΌbb+ĵ0f&TofuOi.=b'n׾PJ3UU^/0Kծ^w1zΦ@Sbtê:9t/HTXئ.VYn] +A>ݾn[!_+|=1~6M÷ЙOlɀ-DUEU,ZfJكMFk ]=EhXZF7cw&Xn VqͫJjv)\XW˥uO 'B kiZҡ|KדD%ӖKћQײ[|%E+)aN"{}/XƲ܃y9Č]"8Z tҤ
+M`EɓCi*t g!#<8 P'(R!I|ڎ3{ QGW",òVGiNhrЗe_/ZZ%SUҩGOqw
+Ս o$yLŜ#'F9Z6P4GR 1PB7V3r*T5Yc3ZU)Wm!!:W<jV_qK\hVJ56 R3<%g5>S*C k'BXZ?~2u]ď6l=liV}Y$*ڠbQ%Bmx¹y|A3
+^{|g{wqpԹ{HʍۆA ~N(|I8J"(B;9&!b!4kJ5$x%ћ0eoȤ^ 4l{R<k,v Y:wIX6sW>A1/VT'2%Ǟ疁$cj`*U{ձ^ÊR,4}x ҃&+ۃ;
+ⅆOo0ֳ&$:r%Տ(}H+`ɦ8#b'ahR,#K6jRnBr` ǚMXJN}65aX0!H5{w4%e˒6? =LRښm^;̈́$K
+endstream
endobj
-688 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.528 363.024 417.502 374.979 ]/A << /S /GoTo /D (section.9) >> >>
+698 0 obj
+<< /Type /Page /Contents 699 0 R /Resources 697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 702 0 R >>
endobj
-689 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.1 363.024 446.055 374.979 ]/A << /S /GoTo /D (section.9) >> >>
+702 0 obj
+[ 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R ]
+endobj
+691 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.658 609.339 254.364 621.295 ]/A << /S /GoTo /D (subsection.17.2) >> >>
+endobj
+692 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.085 609.339 282.04 621.295 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
693 0 obj
-<< /D [ 691 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.306 280.631 212.28 292.587 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-197 0 obj
-<< /D [ 691 0 R /XYZ 79.37 620.254 null ] >>
+694 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.048 280.631 240.003 292.587 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-201 0 obj
-<< /D [ 691 0 R /XYZ 79.37 422.869 null ] >>
+695 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 124.899 201.068 131.873 212.226 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-690 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F69 402 0 R >> /ProcSet [ /PDF /Text ] >>
+696 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.594 201.068 159.549 212.226 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
700 0 obj
-<< /Filter /FlateDecode /Length 4565 >>
-stream
-xڽ\Ɏ$W4} Luȧ&$C>2%KU|L2H#^l^/|㯀E\D[}qN0.?yV?]R/志/|v9xXK|"_~ g.8hc;f/hg!X0p6u ngkBZâaRGe=^]/m3wK\~y\sn:ʏ7;0~Ya9"0'sF2Y^`Fqn9+vė1*{3Z3-֟ 68#\o/ʫxN"b-]k/'A{NO| YX(3FfNwpDGt'qG<\y$ѠTfIJ"#&}W݋()ip,8 8NКJ|787 hnγ2GA[+l*1EUuLkM\1cL$2i%,{TGW^oG=*S?@i+OwY֐(&7, (.K*
-Tmߏ7(;YJ#WI!z?0:cfa
-i!46$sz# 2@g6@EٔpE dtl(ViK )!@/!LJ
-~%Kh.MP.l2lz{d D>8}( "D;WZW%ݳ|tw7.RD$VM
-#pĈ t F!'࿋(sח@pf.]_j߁6@L
-g;Ԟ=]
-(^r\2fADƠH9gfY9x8:=ډxd4.W]
-ȴDb;S@r `慠3QSd-'{c G$anY9Duo0j svd
- o63b7
-A,0bjR$[uGrO7Mˍ6Q^ojHu5ZA4P xBtbC !T N딸*1i ZGǪ}_=aZߪ8s:@һ&?Y%$sxmmH;^rQ
- Cpc̐VqN`6|A:-p.*%_3h2W3k˜L[[t=#{\`ԒcI4≹=0iFC!' B1/jʾ LΦ>qU'C]꭯S:< g p&;aV8_
->ة\BK|B[,;G| L/Bxp7*Z!e~rjVô`;NӞ䠔
-?RIz } =dsT5svf'(ӱ߂~+M ܉zȊG)Ϩ 뙐X$6ɡ
-zMJkzC|M]:VQ`1;ƨi%vk:8AXZR|z y#;Lxu JWs^q>ВUN3#Z
-:S$tV1t?Xݘ\B(9[c6>}Rz.G'0?yl/v[K,ui i(m;P!rV)Ô|m0Y$^WQR]Vt-hZz$կLFM܇^aISjίu)IV1oF 0S=f:_Ey*)~z+`޵s*ܴ-K>Ҿ;RVq26F8@j|]R ͼ#(3R/O[e(%+v]Ta!b8k6/߷ֵhف|ug!Q}^MMU;u-$kK3r]|!B$q˝ª7u}|đjjӦUMaLTMLrhp~jNSmBW#̄SMi-ƘJ`''
-6Thϛ$CHy[eWTY{JB c5_FJ TGRe-uABfO | 󙒊 l-?+O8_f5'CK5ہgum@V`&w7o }K0T@sJ`J^b  z.낌
-Ň^|Tқ-j2M`lKtr,k5ԃ\uBZ~5YnlcLVLWNځO$ֻג
-endstream
+<< /D [ 698 0 R /XYZ 78.37 808.885 null ] >>
endobj
-699 0 obj
-<< /Type /Page /Contents 700 0 R /Resources 698 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 708 0 R >>
+189 0 obj
+<< /D [ 698 0 R /XYZ 79.37 405.45 null ] >>
endobj
-708 0 obj
-[ 696 0 R 697 0 R ]
+193 0 obj
+<< /D [ 698 0 R /XYZ 79.37 365.945 null ] >>
endobj
-696 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.915 246.818 161.889 257.766 ]/A << /S /GoTo /D (table.caption.1) >> >>
+197 0 obj
+<< /D [ 698 0 R /XYZ 79.37 168.607 null ] >>
endobj
697 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.741 246.818 190.696 257.766 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F68 402 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-701 0 obj
-<< /D [ 699 0 R /XYZ 78.37 808.885 null ] >>
+708 0 obj
+<< /Filter /FlateDecode /Length 4416 >>
+stream
+xڽ<Ɏc9
+@/@:.甘5T=ҿ?BZbGtGQ] ׅ_~}헇0V_~M ~rgV\~~ko?̲]L;6ؐsy\o xMP G]p}|.y>
+l@ l,R% w?ﻖ xg7 {},fNN|Q Y<1ga\ƑI
+ @5`6Y)D/Fh<S ~?]8q4}%`6&t6
+Y,SuS8֒ |W̬e&i@;zݑtb5r?9)I;&O Ǥ;ZzGItD?fiY30#r✲:'Y
+u}+ j)ԹSBtBmQou
+y'!{tE틺CN2`n4SJr.Gttd+N2N6c_d{)"ç. Iɴ #f!*O9T~Ci8 V+W"ĸ/wZPډzᵠ#(^{~2٘ 𤎠떖Py\
+8fD pYaeG蛰P#
+5Ufj%N92C|l[BWOp9>"I>h2JG4_KIDFb?2b<uՖjӊ"_4ޥM*^E䭼5;?!ѯ-eߋj2a_{zQfuW&y׀};EN qp]m_g>l ?ɶH5!r\1LAq_/ _o.eE/e׿Ͽ/+};fo?h㴰bi mр `|^گѼ#U
+U8R ShMbZH7Ya9OB.)^4tV܍s[| |!=Sg⺎,g|L;&>@vc=''N ,Nkik?62:LvDm9gG9OLpq^{i2A(6:Y /.)@3iyf—vh$Ƥu|iYV_AZ5wȈ&ҝ7RC^4MEQ8أ|]s貛x7&h@޳rabJLg $gV=15u`% ҟz3=.Eܶ
+$V 6%*477[cz&V1~*mU恷ݡeXrj1Lza
+PUgܤ.ZKAZw{V埡)>uWqq:(S![kGZ¬
+f)UUۦ\I<5fmbM Y;vJc}ʧTm7(;J٣-VU x@Ȇ/> nYeZ$L*M,ib"[ B>ox׽e@<*H
+"N?!Pqndw|(ի(
+\]Z emQJKx6 qVz0!d$#DŢƆ3l|{"v!Pk4*)g
+xGw6љdc:"0X3a
+X3M'./:
+:(贰c H[P9j> /dTfeߓEQ:yqBSEJEj"7\ _͢W~q%ER׊MkjsǮ7}y o}tFlQ>NXsA !|tíU]]Vq?rupsuR3Ih˴^ jy2:]/{{f@cQ'>qSAe:nK,ڿi*kxNg<u>!Jػiff ,Э5Q^JsU|LztT q'ȖMg
+endstream
endobj
-702 0 obj
-<< /D [ 699 0 R /XYZ 230.167 742.105 null ] >>
+707 0 obj
+<< /Type /Page /Contents 708 0 R /Resources 706 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 715 0 R >>
+endobj
+715 0 obj
+[ 704 0 R 705 0 R ]
endobj
704 0 obj
-<< /D [ 699 0 R /XYZ 235.836 730.056 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.528 615.95 417.502 627.905 ]/A << /S /GoTo /D (section.9) >> >>
endobj
705 0 obj
-<< /D [ 699 0 R /XYZ 198.864 697.254 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.1 615.95 446.055 627.905 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-706 0 obj
-<< /D [ 699 0 R /XYZ 198.864 677.06 null ] >>
-endobj
-698 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R /F79 703 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+709 0 obj
+<< /D [ 707 0 R /XYZ 78.37 808.885 null ] >>
endobj
-711 0 obj
-<< /Filter /FlateDecode /Length 3083 >>
-stream
-x\Ko$ W19X06A|[iL9U]
-*~%T/]2 d
-={.&_H<hh )'=h,StK4wD&5:k)ymYq4>S5ZF6e+dYR|es=)'e峵O}/ϏR6_LMۄE}>?
-u_m<B)37ȧf_sLU+P@5Y{ \|p=Ou*SIغSCçFBF,t|D+K%<"Z3u8*02˟ky{~?<5DszzyGWw~Ơ #ѷl#O{Z33ޕ&G}x`4|f^krXXᪿ-* ˼ G4`~y' H=,zt 1ú6w}U4"yF^ҟ&2]#2624pt'2ubD!08ce\iDEt@)$f+яa ]XㆄX7qCyJ&?n.ƍHU4Riڍ#
- V]H. m}/RQ7p0Sщ8qb݉8%ڱ1MӅѸu?ٙZc1J s9t⋁i
-zpGXf|ײ!W'`_^DꦖױXO}K|/Χn_
-BZ7ߊ~gAEgU9u)|@aFN|PJ٢iрeS9#lBYp) n:2Ce]\:F]uއ .>v
-Xe@9
-GyS* tCϭM*`8DI_3=˳H#<'\):"i;l2!TݴX~-np&$de` QIhJJ43]iPa|R-6yZ[isQ|IBOjq-pU
-MsN1DF}ma{: ›g#&` FÛ{oogĦO!ڨ.$&
-0*&n>xҝּVNZC"}s'=/gz8L-OXG- 4w)NY(J|da2<{|/4h,hټF|7 & qWΐ[M9 ^M~-Rׄ$9#sڵ"/B! o׺FOH~9x-mېKʎJOkhXFmp 2i-6X4S(}
-k](|/ӳBy 'E[
-*ų`O+/7^y1#ǙQuZ["VYKh3)“$Gֶ!DL!qK)', ~=rI9wQKL+C{!
-g#p=nINVlU|L]Z0j΅g7sϕ.i0OUM*ʄ/{zMiP9Tʭ&)6OCqyDΈ{ n!!TXOc:--X>N's&{'i]ðIa V{k7;pryUl
-#̽b7ܛbF%PD2u :pIN[o RCb4R9|
-
-yZ)*D:J
- >60@½c30nժގAq՛R29X]Ybs Eڮq#'HX0)ʁjW` qu;6U)s$С>3ŲI6gr]/$%G%{J\ʝ:q 4(Z'z4?!Mʦ9#o{o&-# L ,XA0YԦmî𤪰FqĹD/h3IzbXw-'^Kn?Vxz;eEXd?Z~mv׊RїWkGtHs |2N d:o$e;w
-endstream
+201 0 obj
+<< /D [ 707 0 R /XYZ 79.37 676.931 null ] >>
endobj
710 0 obj
-<< /Type /Page /Contents 711 0 R /Resources 709 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R >>
+<< /D [ 707 0 R /XYZ 230.167 374.977 null ] >>
endobj
712 0 obj
-<< /D [ 710 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-695 0 obj
-<< /D [ 710 0 R /XYZ 79.37 608.164 null ] >>
+<< /D [ 707 0 R /XYZ 235.836 362.928 null ] >>
endobj
713 0 obj
-<< /D [ 710 0 R /XYZ 257.051 527.346 null ] >>
+<< /D [ 707 0 R /XYZ 198.864 330.125 null ] >>
endobj
714 0 obj
-<< /D [ 710 0 R /XYZ 316.728 527.346 null ] >>
+<< /D [ 707 0 R /XYZ 198.864 309.931 null ] >>
endobj
-715 0 obj
-<< /D [ 710 0 R /XYZ 365.552 515.297 null ] >>
+706 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F68 402 0 R /F66 389 0 R /F79 711 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-716 0 obj
-<< /D [ 710 0 R /XYZ 304.972 503.342 null ] >>
+720 0 obj
+<< /Filter /FlateDecode /Length 3245 >>
+stream
+x9$W}
+L2*`lTD+U>M }!ۜt4̖T$աA7e%(ww^Fd
+~.FfEљWYSds`Od'>yx-L{|}A?3iz|lU:b'ʮAϧ_Nz1뤀{.XIV 1P :ٮ:OBj^1.]pWek<ʗo)`2{1{}/: W
+͵s=YߓκmT}ǹ
+P(IX2ZĘ6qWD־27(B5FxMDfE D(py-$m;x
+9=ƩY2J"!
+ kbOALuL',(~3~(bĂ;i=!YǓ(ajԀK}6ƴG?^k0;4HT<hجt<&:z2h-T2IH@
+LriqڎgrhAhEdkC q [n W
+bľN"MH5>QkL .XQf̀eK+yNHp3c-zWsW *Fv߾p<qςZI=4}MTof&ǭ`I:ԏ^s6kZƶ~μ3R}F]a̛ q󼽗vۮ:~n>_BVT^.yE1b"3]G#Nv)pU5SՄfkڹBf3
+3UTLZ7 ~Ѽ:1ůqVb{gkASYWR'^Q n_u늱ku-xuiZyxluE>^zowæ
+OֳEMdL7n(Шo6V;>>5*+XqEͮ穼D3V?Lvs w\:B0P[ImNi]ÝƽJQdw&ݻNx`jF}i?d
+N}gvaNO4DYݻ ꑖ_<B' !J5k=°{r+^5繡QO6]7x7 ѮI߲h+u/uS -5‰2EtLajKH<X_Y}N7^{4l}o?po XO=e+o}ԐbypFLeqc"8'?56UI .BLf$sο_K83"mhoZij4[ :齅uB.BI`@KEY|3, KКiϐ3Obó<'g ?3
+endstream
endobj
-717 0 obj
-<< /D [ 710 0 R /XYZ 207.228 446.904 null ] >>
+719 0 obj
+<< /Type /Page /Contents 720 0 R /Resources 718 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 722 0 R >>
endobj
-718 0 obj
-<< /D [ 710 0 R /XYZ 207.228 424.937 null ] >>
+722 0 obj
+[ 716 0 R 717 0 R ]
endobj
-719 0 obj
-<< /D [ 710 0 R /XYZ 207.228 411.158 null ] >>
+716 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.915 568.432 161.889 579.381 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-720 0 obj
-<< /D [ 710 0 R /XYZ 207.228 389.071 null ] >>
+717 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.741 568.432 190.696 579.381 ]/A << /S /GoTo /D (table.caption.1) >> >>
+endobj
+721 0 obj
+<< /D [ 719 0 R /XYZ 78.37 808.885 null ] >>
endobj
205 0 obj
-<< /D [ 710 0 R /XYZ 79.37 339.96 null ] >>
+<< /D [ 719 0 R /XYZ 79.37 257.642 null ] >>
endobj
-709 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F66 388 0 R /F15 381 0 R /F56 384 0 R /F20 376 0 R /F79 703 0 R /F58 386 0 R /F69 402 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+718 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F57 385 0 R /F55 383 0 R /F58 386 0 R /F50 374 0 R /F68 402 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
725 0 obj
-<< /Filter /FlateDecode /Length 3487 >>
-stream
-x\ˎ ++Q  vwA*zQU]mO,hJ$")j0o~߿}[=Z~닊zsAhҪyǻ@KiT'}[.{)5Զ<BI22#]x<B}e4^֘JP{Cmhw^s/+suy[SK~~wmڍ
-pYΥYN9H:- ,BΨ-d | 4L*ID薵„*c b PGeme7DR(r$Cm
-,ϒ޳]_n,ʰʵLBR~fF{>M"h em Z֯rGL։rSKo_،u~4p+Le7є8}}d8JRZ 'ȡ@s C0þ:'VX52߱ =}
-" <?m6%`u5Gk
-V(0K`/ l` ~EݙqiohKH&{Gr*] ʒ{y1ި.0S3xfت(4q4"tjwZB~ߐh98q6qJMTPB̕c+'٩41ޔaLG!yY50a` ·Y5fpZ"<ⱙAk')I0M_ jM5[,f[eW-gEX.[ D0q(ͽs6$:%,p MOCry䷰R%4
-蟪0@e{f( Hܷ~1![`|8
-rg[i_D0"w-kx[Bγ1-98`!W #-U-~VO!|!h7
-Ž[1Mu331KPC
-/a~+]̛ ;Y (B ;o<GCϣ`M qĐNq=_
-ȥ@ɾpG|ǵ>(US W//58;䯠̛<nǸXb eG눓+"9nH}QB0fv3ħla)EZd@渾FNwdd|`HwO tup?Fuiz
-r]s|y<>d5i/
-FG+x$֒Bh7X*sH$d,G
-!Qդ~G*:;S<Of˾rG;>J2q3[,;5rz\ |ݏoi­C:jbP.
-P~Kw7Xn><C39)[WD0 _ w4Sp20ZrXE$OF3㯘UgR(\-M U Y7vp"oC?| W
+<< /Filter /FlateDecode /Length 3550 >>
+stream
+x\;WthKQ|54s$Xᢳ[9 F], E7}|;ߗO)YbW} SM87V()__(Uf)R0
+ BS_ds=O޿> #w
+*S|} ^}~.5u#HF>G7[ +7q'*j] y_Fjv|GB N7E7"XX?ϮIGd&L/O_7$y'JE۞=}N^ft{v//iY %Yߟ>Ս#VѤ _h7ZkrFa%N6@&5Yp<ޱcqm}\ G Sٙ m .Bh`_ezHޡ!E3'tL:d (A ed&DP+VI23+iwТVt@IApf]+tvh7EYp{d5 j7"ugRaL]Ԏnw
+˹)%d
+4zqqqCWu=3Ns ֍~Ɖ3bYqd0!WSN?eAgq?=U2@FG]t%jVҹ[0< *z6#2X]%k` )ñSe+FLѻe# pd[?G*"E/׉S/
+҅t!|WXc 6p8}Gڊ{zx
+EA-<r'%>ʖ3v5'19N&qJOb?qVeܫyi ჊Ik>e8*>KҀTtD$#KJa:ZO0DMJZb+$m 'K`NI$4% K4-J%1ֱf=i-T{:gsbtԗMB|UԔx}S6KF`'v4XR!jE>M툉sQQ
+J;3m.ԕD !;sWqRZAD K1;^VVJ9" }*7vġv$OUgDz,N$~
+2`(JNSvSo=Ɖ**B`Rmw S//D<П:<!!Z),P-<匍KOw\P;HƽcҶa}}cҴ6Dq}WVC`iy/j`('J˰vpfWrVByWZ$V3[Sb׺k=H7dK۩"Vq,̢Viwdݐݡ6u]计civЛC QTl6֭C?D PO({^- w[ܲ''Y &w>/O+MʏWfu
+2~N5<.R=E3IUng1D3Vhr(EkZڒtctvzt\b}tpn`\e(+&֚K=pTGKG\JJ>)y'%V4nO Ɣgy]\7ZtѶ"UzMP !̨:gRfIsMbKF]k:߹6nWqOOfa-e0JʺJ `1q"o:]=Á S%d`wP^*AfNmO>qG5?YCxl:g Gd QVV]n/Sib:B%Q_huF}KS>I_bIǛ:Z!@ۣicIq0C,ri ve V8XÌq"wrOyl2 }܅h|yi~)uvM#sy >&=/*arVS
+̳_Hf΃>ic;f|t ݮ>67)#c9BbwdnB~{2/DN]1ØwYH:pQ@RTQ)׌a[&PjVgQĞN_G>}.OQx5ּ>I蟶0G_ܢh+
+4nR$=(u.*s${d
+p}n'u;r5
+f̣bU
+^kVǜ1ј`yz؊1 >k VmL ĹF䛍0 y/m8*0-ҺTL*ë2GO^Kd
+ee/ > JtVT ZGe'xڙ a;_)IBH+B0OJS)/o ]\EBh]^\ˈ7MJ sI@Uu}8>û.YC [/ƛ?nscPjܻ[9r<-wVݠa͓֘RsRe]]4Q4W u>6 q*y| gj|2@ǶJu2:YLszzxo)aiqLxkj$R=|})Av(v=GAv?B2\ᒃÅ.Z @Z)fQ)-\ՁThw|1@luȜ
+VOJC!VUVy[LF+ 5hazo
+ ͈aiSuB1$͆K,tRU*mg'z-В&gaXT|Y%ȍn-44z=} ӟU.R u @ pURcI{-6-*_XΨ"uZ#)1kq/ZZ
endstream
endobj
724 0 obj
-<< /Type /Page /Contents 725 0 R /Resources 723 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 727 0 R >>
-endobj
-727 0 obj
-[ 721 0 R 722 0 R ]
-endobj
-721 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 507.158 110.852 514.132 122.807 ]/A << /S /GoTo /D (table.caption.1) >> >>
-endobj
-722 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 114.907 98.897 126.862 110.852 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Page /Contents 725 0 R /Resources 723 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R >>
endobj
726 0 obj
<< /D [ 724 0 R /XYZ 78.37 808.885 null ] >>
endobj
-723 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-735 0 obj
-<< /Filter /FlateDecode /Length 3525 >>
-stream
-xڽ[͎ )`^`oA|[)rGDn:qTERG%/˯{闇 g.I.[ZwJH.߾_~Jno|O4FKT_>MGúJD.UR .gphcҵew=g eb13DzF*hCs$$A#7\-+>ho௴:zsԻ̎8QjH5e޳3lע
-_5MM2Ea4uaظpú+)<-J"YU4\xN2eKv™Fna#wPVGwSuŁHךY}ZzW/A4ovQЀpj3w7:|ݽ":Sݒ"LA4or',`ZtA:ڨ9(ا&D#U0R.}iJE|Eb)+FQZ$%{'hRi;f _
-,.JuD3D)Bߕ F+VD( W}Mg9>Ao|lCJҵJ; 6yU@dW@ svVytgiy~ϒ[%0Y@NT8BOA
-Ā(*%(T45 Y OȯοZ]ij~25'޹glGgWg2Uȇ?XfnP- v)PR8}T
-3/Z*B kFZ?oĝ4Ywљ HO5]INLMuάMa =/ōAŘSflB1#'B,^w/)FLeҏs<T~Rm;*5[7u++D nz%ؘI?m헎I&1LvoZP \&*/nnZ qqv"=ji ڍ$[E8r٥+,&&,ҖuN7^k }hr}#)B^'sף۫LG<L͝ƛ2ccE~On˝@eFi8þ2|L`D;n;<aTOA^bTjK_d^b)Hn)j`Au8w6 0}ip}ga@?;nk<1J:Hv(SPّ,mӿZ[0Qߺ{4SO jWK݆r@}\w5cKZf$UR&aAݣ?0oOF)$ZaNB_ϵWj^9FI,mS'{2<Co-F%h* i߫bخ?[5l8:k" znO~T`Yy<"DA܇$jA6WUGn¡!T{ˏjбEV3C<&XhO1Zۧ HAi%L?xE
-p
-?n6G^vLXD|e 0՛ {<֌VdO}е[sHu`r[4VR\=a?rꙢZf03~uxpHv=C[t@Xzt:| kϻ L>
-ȸˉex=ŗi
-endstream
-endobj
-734 0 obj
-<< /Type /Page /Contents 735 0 R /Resources 733 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 737 0 R >>
+703 0 obj
+<< /D [ 724 0 R /XYZ 79.37 777.001 null ] >>
endobj
-737 0 obj
-[ 728 0 R 729 0 R 730 0 R 731 0 R 732 0 R ]
+727 0 obj
+<< /D [ 724 0 R /XYZ 257.051 696.183 null ] >>
endobj
728 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.124 508.381 381.079 519.22 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+<< /D [ 724 0 R /XYZ 316.728 696.183 null ] >>
endobj
729 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 351.241 357.472 370.947 369.427 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+<< /D [ 724 0 R /XYZ 365.552 684.135 null ] >>
endobj
730 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.668 357.472 398.623 369.427 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+<< /D [ 724 0 R /XYZ 304.972 672.179 null ] >>
endobj
731 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 310.412 244.527 332.887 256.482 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /D [ 724 0 R /XYZ 207.228 615.742 null ] >>
endobj
732 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 348.609 244.527 360.564 256.482 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
-endobj
-736 0 obj
-<< /D [ 734 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-209 0 obj
-<< /D [ 734 0 R /XYZ 79.37 490.054 null ] >>
+<< /D [ 724 0 R /XYZ 207.228 593.774 null ] >>
endobj
-213 0 obj
-<< /D [ 734 0 R /XYZ 79.37 330.558 null ] >>
+733 0 obj
+<< /D [ 724 0 R /XYZ 207.228 579.996 null ] >>
endobj
-217 0 obj
-<< /D [ 734 0 R /XYZ 79.37 291.272 null ] >>
+734 0 obj
+<< /D [ 724 0 R /XYZ 207.228 557.908 null ] >>
endobj
-733 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 387 0 R /F69 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+723 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 388 0 R /F15 381 0 R /F56 384 0 R /F52 376 0 R /F79 711 0 R /F58 386 0 R /F64 387 0 R /F50 374 0 R /F55 383 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
740 0 obj
-<< /Filter /FlateDecode /Length 8481 >>
-stream
-x]K$qW<tF9&6Q|Z>X>86LZ6I[zg״+$}x?*1_~̗3>o^M,m拹er钢h.|yyK컫<>3JWtIb_AI)& /U#,%1Fd)fb')/l2U/MYtsc;ϽJ
-vrf͗>J<Ե7ϓ] [66 ҶJ#^٧)ݒ/7dR\#91ZssIyUڏu=`>[bI;X:rzSZ9Z%rݡS0Մ)
-
-=8- t%;؈ze$mL9/0*4 ΢1-u Y@5^|iJ&0} Iz1A\{`{c)Z# ?#!t1'&.Ը7Z
-++f@!f =f 3f^7jaT|!ny=CoДїhZt80'7cU~DO$q,n9ZCp8疲5U~,7/yc<a%rvo<}ВrZx}%1h/|sUiAqQ`XKFbJ)ܬ%,}8@Qj^~
-_J/&@>$mSwW[m4z;g&};F-8 l~Z\7{?dR<',˛@m~ jpHe>+Nn문HW%@q . !T =K:%NCܟo;[N e*uuR^m1,CMGv냅,T9εO=X6-R&6w7ύaWN̷PY̐ͿSX|t*ytF7,Y2 﫮4wnQ%{M`hj5J #oPu+/
-~/75/W >Fݎ,gXOZO8zCygUDE9RnXPkR8ZG#zNOeRfĩU\߄J @,oNj~\Ϫ
-<K>'7_򔖱Hؒ8a~3O!1 ^…iݖBQ:k.gwcFk%ܯ^CS6zKټpAU}oZ*byVS/}[yf;G}]~Ӽ7JG%S7&DEG=z&tjTo]}jy29} z(QwvVN9pƛ_w
-7 ;lzk": }nk=~a'kWm8)_C瞒9ě2-6qd3ڷnWT3#i7偻 \2jߌ[70gk*`&푻[eպm۸׺qo}>ֺIX~uL6[} X~2=ھ@߁.lpMm}Tww6o׶^eZR8v̻06/ulH?_qZKev,syWuheq59lN`ƕ]8Fa}=6ݷ>GןSKky^e&uweM:k2;@AHޅDr4M-j.U::L oIyԺ0kۚRNջR!."ѝ>u
-eAiz_Zpysz^u.wܹY]ȣ?);GwkE;λc2O~Y~
-GaaU]EjCTWRנV}o&TvkYue]ZWw`\%ė^gKϹkww0lGN_VrNvn}a)l/QbUtS{Z7u=e*z*C*[dTi/HHJܜW9\+UwsZ4U2LUxwf.>WXٺ<fϭmO޵+]7$F~v~Gt}~)k_ t;-m<}`V<n1ߺto+7\z;;iIT]|򔭿a'ߖht8R|\ TWe} Tm]]S|nʅt7?]"F%{H
-~D!5,Hӣ-R%o<ioeM7"a6 S(7.$էzd]N kDeM [MOwbf;s7ޥ@U!e0n[?;1w<hݱT}} 0&$`>N :X {~IC+wurIWuҮͱ6l:oӽOHLFh6 GPZG馭T8X:w U|BUCkz Lh6v:T:"IݡW
-~ 3^,~o:iM Pb*g_wDSq:}#RrZ_(O^nIvaNOn>&R1nrOђr=&7_`Np_(9N&c$<rI(Ӗ/v%? S9j
-SBbh[o Z D$8zIɳdpA*CtL(Wl,!1(F"b9F͇*@PPv
-O֔HQ dʶc=9bSX)2ە64{Ŕc8?8DZZ$hiC䪹"kƍ6h0߇})1/fݨ0copsu5(nDH`ؖ@L;n;QT
-,q
- .K8*cǍèbfۨ ;Z9F-jzA0
-oGUD@qծX} d2c~"n^1Hѣ jηḘ=ʨaLʻ†$rkA%ê|ʕ+ ~u"!GK1ǘ%_M8 Y6jIłiaٗXa8BZ/-sԍT3JJX؜
-0LC.{f8^om:c$QA!K3ԤcoV(eQl[`Wp`0SP`]2H 0Q'H̵9%^kYrÜwJ!4S+4SPF#J g`
-GdU1#)5LOYTXF2
- >uDhKfXQ>閩E%mX\5-kЈ8Q>5Qw eq8kľc^5%Vk3Uo
-x=̺Qj [cȜfSj M Pi,*K[wZK5ӼL.cN1Vɜ)^ak sռw&'1?9=PC?bE m iȺՀVY6)2ʽ[ߴx$@ 9v[Lk654j^L{M1 xɸI|U ,a˅Dzj<,_Z@7d$3rd)G$k
-b`ջbAFt
-'\m64}`Zڢ:`I/wL0qS]1O(^1u]-LՉ.eK'hjdq|X }W,hʯL~Zڤ:I!@rG#qҳs]1#㥀ffYmmkzX1 xX|db{\ L~W,<@~/5*-HIi:1!€ޑ%jU)&G2f`
-?-hѫ56)*-&\bRKU⨨*dq|\tp@Oo<QT4(>e 2~^cd']/܍ڸ85h_oǜWleL51NF^w D9m 0XEb6vĄF nX6^Nk m>ozot\Ca\(tfbS>BE v˭C˜4"WYxmTRt|J:<m?"oHzl鲄 M*nIoԛ$ MM^nsNZf!cnxqqqy˯{]McyENgֽO-ue\=^%Hr Xiif,_C݉ #!Cׂ1<@mv-,ux1D~<P`X~oMh>Suj{6GVAԪ3$3A8d@[^Œ^~oRō&ZVZ5CЗv]gzXaǝ*LCuH~a\ߛ[l;W8!p)yv@2ZO
-疕~\nШtwC&o7lt}W>mvaϕpdCrj?`x’v89r'Väa$/3{QҪ6)>nI0cٍyg0S8Wi9O~ɏfm| ;c3[U۱`f]!l(٣cۊn>7gZ2.X}-X<&|^c}547ZCC_@
-ǍXj~_񘸼u5Rׇp>Dۘʼn^<9ZŵOF΃[gwezڛ݉k-ȫQ/V/FahNf
- גsrp- 6dw%POUw<W-CXMG[o\6)OeSˀ2^F&dew๵-Zq^ \#&O;Yv0dCuˎlP|yM 1Uכڷ=\ޡv~ ۔hɾvTڦ}9YS}nܸ}~΢:c~osɫuzE,C
+<< /Filter /FlateDecode /Length 3710 >>
+stream
+x\ˎc WF(
+( л 3Y$ޢW.WYtWյDQE> tӠo/"820b`\ˏ?.{KxEJw0w9GK?U~ J'4@+\|s' jeLXZ-ꖎBW@~x+b)CCLđFĵnf[~Mڕ? WJ2b: Lj ~
+a0F7:&.+輛:,wo9ڷEVh <䶲
+zGFDgI <;o׼F(A|S)pkl@^N:r~LZ 52'a*
+O|`Vˋ0KyKo> GL3M9P{
+K(f&IRpdy܃O43>1qt<'нRU4CQVRi+Dppރĕy; FC{ hRdfۜIitj EiH"vʶ$ IyR\d]Ս7.%oE2Se'X"8ya`` g6(XH<eSOid*h|"PZ2#O'B<|<Q s }:o#zJִ;Nt5h4ڮ:5i!wڸ.B A17sa}%sҜ.P+0]ls]/qB
+DJL}ݣy1q'pNdُspvאAΛܯǸXnp5#IΈ {<]zQkmǑu}FwnS() >4f>V1v3nsѠs+g<֣
+bQV~+=]kylLyzk~F0E a]Ў@0_$^>ۄy4, 1m}PN1.RbYI;sܛe.o=VIW;UXc2ٻB.,-}ܿ<x4L;
+W"e?Uwʐ}Xr|4̢)mmn1sF~vGW]ucYZjk0%X9ĴYx+dA\>ꎏ4g,'%)84jt@S7A=T/ENP^,>%1 y}c=fZR,1_b[RqGY-z5 @XV-mr 6Sz؈0rZvҥxtZZAOC'լV y<<"0gJ-OiM<(8V<UB8Y[,0_*u;AZ1o@V;(Ueb9]U)t#Q]+ ?sIi~
+HZV0zt_
+N^|l`$3%B|alK؄dҥRt~ښ"Ӂ e{`Es</"ޝ0Q./Wn#cſ
+)qWy) -Tnm6qJV"l-\)mfq75v$S;)/-2[ydrFUj. ;䕩HFmSs+I$Ժ{Խ}JvUq?'d'E4PCY*pmuɶ[GtBO[}ғ%D2$)x Cc8;m֒lAS>H{k=X p 뺣ZN2f'Y7lhs.\Q ȾylWLfԖv}-(53h?a&|Cyq]?`Sӽq_u *7
+k4QD輒
+);klu6kYU
+[يLp)hifʼ/-?TleYOzGě`O8܏&q'(m=aNK_r ?y>MșuXO/Bޢ4ӕaN_A%
+O 9ؽ|=|3P&3/X6LV{Ar=%n/.<ԹpX|B<o1MEV
endstream
endobj
739 0 obj
-<< /Type /Page /Contents 740 0 R /Resources 738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R >>
+<< /Type /Page /Contents 740 0 R /Resources 738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 742 0 R >>
endobj
-741 0 obj
-<< /D [ 739 0 R /XYZ 78.37 808.885 null ] >>
+742 0 obj
+[ 735 0 R 736 0 R 737 0 R ]
endobj
-221 0 obj
-<< /D [ 739 0 R /XYZ 79.37 616.209 null ] >>
+735 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 507.158 421.907 514.132 433.862 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-225 0 obj
-<< /D [ 739 0 R /XYZ 79.37 446.032 null ] >>
+736 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 114.907 409.952 126.862 421.907 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-229 0 obj
-<< /D [ 739 0 R /XYZ 79.37 260.473 null ] >>
+737 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.124 109.503 381.079 120.342 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+endobj
+741 0 obj
+<< /D [ 739 0 R /XYZ 78.37 808.885 null ] >>
endobj
738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F69 402 0 R /F19 379 0 R /F66 388 0 R /F70 403 0 R /F25 375 0 R /F17 380 0 R /F20 376 0 R /F16 382 0 R /F57 385 0 R /F22 404 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-745 0 obj
-<< /Filter /FlateDecode /Length 5114 >>
-stream
-x]Ko$ Wq3{<^` sKrS~H=(J qWSHQ%}T~/wzacN/| LYӗ97s̫0iۂq.>~(g O#> ʙJsny!Q@I)`՝kΌ~j@5(5<pZKO|_ēMO݉CȒE.(ș֊53'|ef-R\1Us3J1qiIet0Yo:
-?yM*zVӻzzӳ46[5z }Qc')cklnc3clhRnCs2<87 tŌB竚d`8 x6kj=ie/fi8@T¥{QWl0˺i%Z#48׃[!64Vl!O'Å/ߋV!=/Ʀ'^?YqUr+Β3)3軓f=6ԩmLI هސx%o]th7i_JljҙNts{K;Kyge`3g@e!6_SV́"y3)k&]_3zG.ākic0%'@j?W^{bVz.Cg2',9̏Y|<#(zr!SP&eu҇OԍկC=ZS]=?oخ_:斠77voVoS8'Ы0#(34[U*2&t')iyRN Z)}S׹h*Pĥ D &uM9⬤P_~@((Qe3}r,x1]4rbBߡy!jX3ONSZYt.J?$VY|F1S6nnfowyD[IJEpE$+%ĪWdWJ,Zw fКNAݗ_ ^=~r2vTL*LIL}j}M[_.1ak)fxl.$a"-Pp6Hp*V1OfBM_a]9V5iss`azXRT@C. + W
-P
-hO(
-q#tMrUڿu8?#o\}zzD' *%/8
-OskDBB.8O*_'~`)6f4[TV>-@e97hxZ4@
-bI0)]4c?ޏDZYs 2j>dCXSiU qXya WXC 8ArABaJ`dI00e$$J G`&Xfp
-]\bKI ç3r!JDFilBC͵<VW\ZQ:a9-1芢`ºv-R&'
-QD\~/@u۶g?pcZn0!Vk@NҁgYpE=G
-XX:5lY56h8S{,|P@u=J3mZa^:G%,wgg
-LgG}j#P5oJa~Bvm?)„hFǼ>tp&0+yZ˹oܶ]FS1s˷m*I"dh ^e _C쪦'iR[}q9r
-f-+=oNݳ! 6sm89DAc<a506ҹ1z4`/ .ȻeQ$)'v)Lհhۻ1ov3F nD״ZleYll<#{6v&hM_WZ3[+xʶ#8
-(ȯm#6f&쌒A2gk~ff0|_]i}xVf(E.rro=x%bܖ}ZYLhw/e˪9W5fa2H9=?=Eځ/F*<>\r"e6|‰kY04*-f+zhB^Q-u q̊a<<Oي/UWD]IG0Gڸ[
-7U*#>Se1g&+7- P
-+a!Xz j" ^PGXW$aiӚ\Q_/Q}qmřڍ VjgڦMu}ـQC!nC< á@ 7LT~q
-cP`L2PP`Ler
--
-xP`L<SQ()V( ,HX 
-$󡺦0X`m%86v0JN+<mg S7-Cg̹0:~Pg$wr,e-Y0LFj!Nv$j+u?s;xbèI\>S)z6RnR॔lL9\.^[_/sk.Y
-6|ѬoK/-AjQ.&0!+}%btg[c<LD0\fxFis{?vL: h+@gU9d%M"6'ا
-{A
-:0x|OS>@z] l}»opL8r:}Ի05*Tlt6K&^+Ym6Y7g ɔX|6[p)sSnK6晖T"efVާ"c,blNC ϙ"< |~b\ ,~c+ؿ}N09яL3om4$6UFūěӜ'%IΖrr~qnr(d#Dy-<23Ej70k%9+z ~x;ļ)vҼz DX
-U
+749 0 obj
+<< /Filter /FlateDecode /Length 5057 >>
+stream
+x=ˎ9r:z4wMM0>iW= k}; ny!2 FIFˉ~}O֟`N~YON~H |{ΕOUXI;v?'pGFY9=+ !땅g?vOs!\_=Wz?(ߎo8zM} ~np9~88`*)`iΌHRddED5bn+]Kd#<TϹ߄;KT8w<e'>sʍQ.cVm60ZrMsm?-=ڎ#YQksj,SĭY̢bl.ftޫN0ī͊& +}8G,ۘ"eO"E2 D[Z_hxd $2˫0:&u+Ldḧ^@j%*yDlF1L3&Ff;'dщn*9Mll
+6MLpDa_}.Q]zΜ<.}=ҷ w}yg?`dj=shBgHhKL!O%I'A;5<} p%"Яq&Ş B0 rtGFxJ EF.lo>|CD% ǣkX "gyq eՎdr -N
+y+3yd+bja  hH zlLïVrťx[̈́\pSf^kS79Oђz^}D~T!=7yj0Er)A&8&ٮ
+,%Eۚ>`ԖdfJfDutmeCG Pɜy[uo͛E!Br-u6 2D }\q o;b0sɩ,<t8Q,J
+&<E{dyHmI:n[ֺq1 J-}RY`: h3 6 /ZfGI-nK+hm- 7 J25^UI+y (VS?%jJ3'#R0~fgsZ趘g!&Q._>=}'3 y9} ,%g
+o=HWBmjA2CbݮVٙaifi[kiW2*/ $IaNiV1Rw4]
+He3enjkm/-gP%5q攼pG+ܷS9|~/c+2R F^
+P,邻ܕ:i, qY!qnh9^%@ܛ0ҝj.Sˢ:}?Os6yҵ\KqS(StIaīdDr˰ [Ǥ]")w.- %#~.3d4)4܎[pd "gW}
+mm
+Tz*/mUxs]8tl["=:(& ȓVhOsdD
+q0rP9ˀTL1%r(54t\oR\]M57IeRLQʘb:-z+dLzAeY{W_>t Cߟ=}?A_O5(
+ivuF`÷`4<uuN:\5(䷁ϽI}B| ɺ ~M::WPh`rK9L ķ
+mAtnrн /nZ1å1,+r]C["b-&B{Z2@U݆v 80@F`E q6LX鿿}9?n`!&#|ɔ{O/; ];8f
+zaNA]61->^,NɌw_Vܼ&E۪cR kq: 
+ Γq,u'"t+`Zو^ 6bhdhbNU0 p]b-:Hl˒|S%vz#+..ۮji!BQϤh\ ZJv7-o(Ր3j g%ZA0&~R*Aq-qZSkmlcQ2ظ=aF)R#T}Gsxt5SV֎Ar֦2qӛw`g{kRz[68o'*2Ha{.Hag
+q>y$٫y;սe'4? r0F6VWnŸ;MB 8o *8`FWʴ0|ύ\)ƈkmj&rԂjGZ.Z(,vbM>Vt}T+o~|ʻ:5&/i4ZZu݋Os[g2.Q_ؕy?V ׌AS!cFGݿ \Ku1[^JMކmƺNe()'Ո1yyExK7n
+\HEPfxO{}Na\ WQt~*WMKQiYm-V3%s!4觶.o`eaϽ8SGon3qzln<+̅*2E[U9KRto,HD
+4Mߧ;5LuborҚ"+Z)u fA^-H[[ᖽg+ޕ1A6L^{@JѺƵm?ƅTJ߲VPݲI([sGcNm FioFJݺk֮ˊ;E$A0U{Zsu  7>[ao*5Dss; L^7O]I'zEI+P{"U\m ry߮W4YѽtT< Eŵx.l{Gytv w^ü}x'X?~}T/Sf7FyWJ`Ep*_ncx?7HL@c#3ÿ?jȸ|C`nyavVn]xhH?RSV!#cϸ<üܺ4gȼLQfABto;+ji  a^n^Z{Yψ#2F<7%}8qɽ.G 2WJ[FiK!Nxݾ~Af]{k ~ %v# 3Jm\J2ܸpvAݨ}{6y^!zջ 2UJ*1=]޾(}w:YLC_ѿS"0XU3+ӟ`$Q"-)`+嚟 C'B7ĪŚNCKeset>-Zt%ct="Y;#=mD/sH1ߑU6
+Tㇳ(LOprN
+Cl},H0,Lg)L(/"g_ tZ\7s/bvf6["WlFTJ̴ IZA5% =|q
+Zcp'ڴq`ūG87@nݝBfkF GD
endstream
endobj
-744 0 obj
-<< /Type /Page /Contents 745 0 R /Resources 743 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 748 0 R >>
-endobj
748 0 obj
-[ 742 0 R ]
+<< /Type /Page /Contents 749 0 R /Resources 747 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 751 0 R >>
endobj
-742 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.438 67.03 282.895 78.488 ]/A << /S /GoTo /D (section.7) >> >>
-endobj
-746 0 obj
-<< /D [ 744 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-233 0 obj
-<< /D [ 744 0 R /XYZ 79.37 771.024 null ] >>
-endobj
-237 0 obj
-<< /D [ 744 0 R /XYZ 79.37 353.704 null ] >>
+751 0 obj
+[ 743 0 R 744 0 R 745 0 R 746 0 R ]
endobj
743 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F58 386 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F17 380 0 R /F23 646 0 R /F21 378 0 R /F24 747 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 351.241 638.899 370.947 650.854 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-756 0 obj
-<< /Filter /FlateDecode /Length 5030 >>
-stream
-x]9d9W9k}@3A6`m0KZ}RGJ)=m0jԑ>T/o_>EK`J/_A ~R`܊˗.|B>jy$\3@͵\IέtqnOW d3JlX}owGzZ3;ZNƆ7$cgRr;/u36h9s@ia4S2-X5*Ofݚ֘J'fyĿc瑑L#e! 3>dSm;|tT >yXR8ߔaZBJFaN7[,KbdyG3U!-:|Jf=Δ C<ɜ~ۺm;){LќbΎ*W <xEQ oyؽa0'>
- uh^7G k5 E$
-oqyOZ"ϱHӛ;A[wT0lq
-x jGYxs ˔ ^ܡ0uȚ~&Dt@6<r/T.opwCCC6_@7KY^2\V'/,`ZQMI[JihZ} 6V8m r/2&yt`vb\et53O
-sp%p
-RZZ%oCq")ųЋMxCiюnpEJMpk#3Oā)u~/3fjkG8@[3͑\Xf*R^R7~nI26H7_ ^SiChtq~OFs- $RKY:xk?%ŚS)~!:]R4o;ZU01癶m~&Ό>]SN8a%vQpO𮆮[K!(%Aehk`ssy.
-ۜ.q%Ӧ@lF_W ̴[[]\ȼ[iS/:'nN=щX o~ZOk80 5qWp٠zgd̀m~/FOdw}]]KܒXCȅtf4hf\uzWt
-+0Gt WY?nL݆ǸXv2j\2YEg'K7EcmMFr,boߞmX+{lpJA6٦% zy_UǩX%ziDZHy6{Ӓ?2SdK/H Fn=֧HV+ey<Ʀƅkzvt;řբB%}Xz5~@vc}!f~TUq.AT[۱ll~&ل鹉 uzc]>-vp6=nYjd^3dX/oԩI?jO|gu\oqLr5򁧓uߎ:sa[muo2&8}N˷fwgu߰$n:ݖ4LhfR'q%:~?,a8rlȡۤ峸-,S[P' Roz".,rHovԊU|8#+gwn\Bѵ
-e7/*Hf kZOhpˇ.id3-$aPnԈZ0xV>s
- n/W%N:RSarN7Tzj{w#)b
-y'W0PP{=X
-q(
-v%eAȱilGdMœҰ tۀ'3Ԍqo]9(1<X䮅㜓])(YV2%EP8)0c& vS^a|ܕL|rO4?շ\@0*6չgO8D9ݜڞD끖$G ۠CQ!;d<ֶ}-a2.I {`)՛2-Q; q_3 oO Khh\7
-Řvj\RKR? 7z%%:`a?n_փ;vC]п2yP'8>euVw-]×ݽ$[K wok9{uBlo!!t;Ũi Z& jDȩ{Gm Xr /]zpo];$[dof[␺q7"Y )ړn\,)(o}.HATM];MZ3 ?/II:_  qؚ"sWߖO_ yF,Wb81yc_"~isx,ʽŚW3Q+Zlq`:u\.F%k2B}L:XԤX\g{Yn"1IOi /uWWmxAG$8@)u`+yX'N[6gt)$ VUGJ?R$a 
-eDR{x֦ś.r
-endstream
-endobj
-755 0 obj
-<< /Type /Page /Contents 756 0 R /Resources 754 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 759 0 R >>
+744 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.668 638.899 398.623 650.854 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-759 0 obj
-[ 749 0 R 750 0 R 751 0 R 752 0 R 753 0 R ]
+745 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 310.412 526.61 332.887 538.565 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-749 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.065 666.125 242.02 678.08 ]/A << /S /GoTo /D (section.11) >> >>
+746 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 348.609 526.61 360.564 538.565 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
750 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 257.741 666.125 269.696 678.08 ]/A << /S /GoTo /D (section.11) >> >>
+<< /D [ 748 0 R /XYZ 78.37 808.885 null ] >>
endobj
-751 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.692 551.065 217.647 563.02 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+209 0 obj
+<< /D [ 748 0 R /XYZ 79.37 771.024 null ] >>
endobj
-752 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.086 551.065 367.041 563.02 ]/A << /S /GoTo /D (section.12) >> >>
+213 0 obj
+<< /D [ 748 0 R /XYZ 79.37 612.64 null ] >>
endobj
-753 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.024 539.109 329.979 551.065 ]/A << /S /GoTo /D (section.9) >> >>
+217 0 obj
+<< /D [ 748 0 R /XYZ 79.37 573.354 null ] >>
endobj
-757 0 obj
-<< /D [ 755 0 R /XYZ 78.37 808.885 null ] >>
+221 0 obj
+<< /D [ 748 0 R /XYZ 79.37 273.291 null ] >>
endobj
-241 0 obj
-<< /D [ 755 0 R /XYZ 79.37 647.799 null ] >>
+747 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F58 386 0 R /F23 379 0 R /F65 388 0 R /F69 403 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-245 0 obj
-<< /D [ 755 0 R /XYZ 79.37 197.296 null ] >>
+755 0 obj
+<< /Filter /FlateDecode /Length 7419 >>
+stream
+x]M$q#u"Q70B>m7I'Z6u3QHjw(m(̈tg'Qܾg?57k%Fo?/foy|d'퇟oƘ I6[84&L?J@׿YGK_?){_ڷDz;To,F~JvVS^ׯ6ޖiI.dΙ,)y*\$JS7fקms5_ H޻./ }&_WB\;"jf>oVmo^ѴkY'bj}x!^ n\}GˑZۖ+np_JX|Rpb@iUFPE<XAX[Yĭ}u9?-!s<-O)O{~v%onjEUwmbşC3e-jSsC*}n|ĕ+$oTvHK0JyUwdZ;. W+R_jߴi2o8Ss8ٍ>}buM9ƨʐ<E6ܕ̓+?ta\_Ig\m_l1}{rLK?nrCOFX&g6)ثlWo:qqk3UV7W$[e-..=" Ff*4YJ]&g_ֿ4>l}@N
+>ACL6r'Isrs'//Д5/⇟sCxӥ/ۑ$ۺR&_ew6jSs^J_ߠwW} ?i4-JWT4ȇeJ~/7/sݟo>޴Ӡ>'*2ZMPuGU~mZQ?|[-+')OiT!=(K4w vAވAHLprZo>yǑд*,M.O,<9L)saZL9gc=g
+E^56ZSZ84PA[# 1{`܄mhAYáP5DLOs 1bǾuzReW#JQA #GFB+TpS=w}JrnKPájl5C(۩
+6,I`qP*h(]7|Giy"SȒmGMs6rԦ3iΡ'iyb3KOI}t#U^@䠴Qs 쨃0(A
+S?|BLeOtzaL h[~-1T4CZgXZh64]iri?rs]́HAiţjQU` J"dfTHHD0=N#ڪb_"Q= <͜nv4QPs^*PҊD1fi
+uOͶ+X"S-_Glz(Ae=
+9:FIB熤/uWMTņ"S-ߎVb"p@%iz,0oiH"?\+XPRA)dɶcz
+9jSYTRm>V4$UD)i <?8ǩ(RnPZ4k ܨ{@m TVTeTXglTMva/Yz|gM%
+L[7;U bnVʂϓҊ1N!QŞO3)S**qFQ젴Qs ` J"5X*x9`_B[0V2fsE@HO3[=AUbnWJy>V4$ # HDtVST^U\&ks RrPZѨYErATbm[A}^_Z Kn 1X-$l(f@*X9,vTT
+9""3e@t
+̨w TS2͗T`R4(sɌ93 p4@6PT4dK+e@H)~LQ`.Vg^)HA
+G dQ@A6PeJC
+2$W\`̑'pS5X"V#%2G?+.#~T"Ue&UQb&
+ 2Ȫk^?&jf<MX-,!2?+O0
+Y<O"/'wYK5]79yU<za9FڄCSy5z>Fl0ON:X$~tCk0Udѿ pyb:ZE8=o;~wt >66fvimSZ~5lrUõ@ۃ?T0vői[jB%4WJFVyӞȇr{aPʉ[5ȃMc~I6LRA{5(,!7cq8%Q_04ݪ-ʅ/wcq13"͖ ),'Z3n[~UcT]裥7?R|?#{tl`nE3YFTMS}JkX ۂj U0fUS%$i }}ҏ;삉$|5Qxԇz}1 SXzpbB*<>q% -IM\b zl;M?X0%d@S}R88Mhh|5ᓤܐyw
+$w֌ ͲʏΣO=8lfֆ b;S-[cuJV
+{v?&bD~a/6 as0cى-7bp6{ȊQ½3^YuQ<Y- كݎGb~Wy޴=/~Γ~|ːPNh}6=]OOF.0n1-~\hl>]h3OqgОh^F'>me~|G&ʥa>'RIn%#铏7=ǚw'<&C`7 낔u2=T ar^v5|/ z7ܮ {ó nqxzw&\w{6ls.` A9?c{^-;3  sswH3ܠ5D&Zs1euM8jsMwsoO>ZukSd&[C>E1Ejχ~7Tn ,Qҗ ϕ]^x6xv]_ohi'rMl? #׫.,e|!g@}m}'6:}}ʅyՓ/`x{M|wd.rp#$;.zȼRY#EnO}Jʍ x?8;ܵ<&^;J^{r9zO{;zMc$߁
+~.S{eS7\?z ߳X&Հ/e*h_S |ϚͻujN-qsyŭ8OD]e"h"4E2.fl~Z̧0 _IG",Yޱyn4f&!S:toY||6cFs"
+n&On칊ڶ/j'M;14`%oT/ˑd7o]o<P
+ J@gZ]R/4>QsS>v棖k&YtүRNOv7dz Mykxن Fyx
+(۩fdY{m5T5+log}{
+endstream
endobj
754 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F25 375 0 R /F82 758 0 R /F17 380 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Page /Contents 755 0 R /Resources 753 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 757 0 R >>
endobj
-765 0 obj
-<< /Filter /FlateDecode /Length 4322 >>
-stream
-xˎ>_GA
-}*B 珧) ULNjSr <+g ?&27eR
-P Ťq]0=ڶ_Eϰs@}3 l%'s ;gum&-5-
-R{lM$Gr[ ۳b{:8eq8G1أɺCPĬM;KD9hN!|a;MROؽ`ll툽 z ,bw;,&m.Pu@St<'쾖9s= .v;u>?+N
-XK@sY(/,}bhr1ܭ;Y8\onZc䏡NydQU/~(sV4'\1ɩ4t{o,c&M(Os˓9&2坆e(bHa^QUH0ZJ6).3B}͓ODJ)!^S|kb-KbSakU St_z!b[,ZPJM)!뀆ЕC~i!c0(IJXnYHP2GJd76T0ObQʸBS*ɷ**WER]~bт2&cɲZIQ3[e`YQ
-6@#Vecej5F7n6" b3PF.=B23tZwk"I>% 5I\Y\<C2{HD $:I*! Ba\ ^Fj!NբuNnzmURhmRNe_dhNj,tZF9_W&ngLE㕓_P݋ug%]`?,m˵8$i-2ϫ\y*J菚n Py3uȼoYWu7\WGE\q^k,5:[>"P[$/誰Jj͐-+kz)<i% a&j!m91HD^Iq qJ/rF׍qKAI~Oih έlKq!?u_c
-!`7'ٻsqONd_,W=
-W`a PԣHTNMnoF*Qc*pȄjc܂n8 խ9Kŀ3&uE[5Ehd4 3d.q]N6[\XمKf،)RA*
-P^k8gb
-ۥ|ȧygYaxrX3C~UaS/'~ɳ-XSЋ&L=RD-7}*SF3hWKs
-w(]'oJOB%iB!e-qZ}WDz#]·V!mi
-g~p
-u@knJá'mVS`w^nDI8 dzv lj~˽Op,J`}Ɓ2>DZOeAԮ&(
-m*@?r2:kb>GCHKW+)kf201I"DRi=(wn#ƒH ҥ~x"s:u@IsA+{%2n9늹Fݠ5Scs2b 'ȯ6'Fg<-rQEԫ$›Q
-~\m*ϒWJSc撰ˉzbnԡnA8Tdk[R=M w!WNN,SBC**"~rpX@qjqTf9eԎ˻G;^3\)؊M>wIHwNo8iDn0^(oWG:!]ꢖϴD8M*%y?<6Q9ֱҤb"GV<gHs"Q{!J.K)5P8>9%iól:p;^f,;pV~
-nC֫7_.6Tg۵kZǎ&^ ^N\.+|DKٲM+BbZr ;Œ^ՂklV0f eOD cҴI[S95>lvG)>,]>ml5fl>is:-;JRs6^/)sCX&pQZ%nIU;nXTo/J!o ͝`p X'vmZĚjçHVMQud=[ƒi 8Kb ?9p׫p[*>Բy[*"!8wvD@:,ږ@tǾ'N%iL9#53tv
- <Cq }R- ޚ=@a r' _,ABK; rx7gi'W*f*kf C̬rlp(zblr(f̎t45}gáM3[1}'ˡ-3;{cfShL+=y,۝di! ,fd9C $Cv!h1/fTwUuMFcM4\vsPZ+M&؏:<f`/g쁻M8|\3YM=$_ji{Rꍵ 蘲Bsm绎h .4!Jؗݰ`1gM(<*f] 4Iݕ<Ku囯*~2Ǖh/ /̽&EYjZw`R>jHw5^5{vͱ<9ҴK[W\?d\@+7LNnT.ەv(Qӟ}(
-]i(Vsנ˸NYS[rHPz%X.OAd1=72ug†7ݢћoWo5rJޓмx` 0]LH|L-.K,8n\x9lk
-c?|\.'_k&-B,ObQ# 8o?afJωh, Kd{Q;:IC )mo:(z\΀-!?P@RԌǻ-e(<39oDs4Vl#$G n΁Gۜ[<FtNFneϨ|#P>Oq]>[tmfKT⑆0A#Qc6,JLTƧ%p3xw+7q|%~Z^“"d# tڍ. sNLCUxx4 P\ӘlN.\Ɋb<Zv
-ؽz&FۤE|CJx͕{aF>Sv"2O42j6<J Zn͠evI7ڸ^ ,
-9z@>
-H
-endstream
+757 0 obj
+[ 752 0 R ]
endobj
-764 0 obj
-<< /Type /Page /Contents 765 0 R /Resources 763 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 767 0 R >>
+752 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.438 151.337 282.895 162.794 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-767 0 obj
-[ 760 0 R 761 0 R 762 0 R ]
+756 0 obj
+<< /D [ 754 0 R /XYZ 78.37 808.885 null ] >>
endobj
-760 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.687 468.035 429.642 479.99 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+225 0 obj
+<< /D [ 754 0 R /XYZ 79.37 771.024 null ] >>
endobj
-761 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.973 456.08 439.928 468.035 ]/A << /S /GoTo /D (section.11) >> >>
+229 0 obj
+<< /D [ 754 0 R /XYZ 79.37 583.771 null ] >>
+endobj
+233 0 obj
+<< /D [ 754 0 R /XYZ 79.37 398.889 null ] >>
+endobj
+753 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F52 376 0 R /F20 382 0 R /F57 385 0 R /F26 404 0 R /F58 386 0 R /F41 377 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
762 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 233.622 196.653 434.369 207.841 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(tex.stackexchange.com/questions/488566)>>
- >>
+<< /Filter /FlateDecode /Length 5131 >>
+stream
+x=ɒdm<#).E}P$dvXEo+ǷUT>LK
+Jh,nfV 2듩~+rLAG_ 0K
+0]R \)#y|%ЂG?%QJ:H=
+0(PޒeF]j;)p9%(h*5b>;»sLY~Wz)$Aiz/#%$pݮOj\ti(~-;c_C%w4`7QtN=*
+hXKwn,jb(&^h_G@x\-=: KL_2x>"sg
+pTqYX[-=~+yeV΋lCOX&vx:"H`3@nv1W=(ƙQ;>6y[ђC6, 'kRyCyeiǤ?I:V/,t]|!+J4 @דl?} K[ [P% w^Ux.!6α9:f O8&/Z,xmY2ėuVzyQrͷ"44tV޳wĕ]JHH&s`.2}Kb/*k*P&%"]m8fq0gt90RyARS#e+ߞm_B3 V$YauxT@& Rڽn#S܉Fc9wꈌK#iKEldԞM"RqV7Xl)jATJUuogZ(ɢӢ sBCzZ>u<)oFbV9eEi,*cFNzm"$Bd;>.b7rp<dQ|_VS{a
+7f ֯ؼ#g4Y{/8JW=Zob[pG.+ 2.DD2Meo7ţ5kO(qYgnϽ4 JHKqcނ5B[tfcOKm߉6VZ=}v,NJqv,UG,xJv~!l^I# 8q+ҷ.A]I驉Qߐng1'qA46lB\5r
+< ַݥc~ftTȷ\b
+
+KەZB6I@
+dY
+Kv%ҳ Q:f< C\eTec8aL`Tpa*šP]{DCvuwUΔeB2W(azCR !Đ\DRj5!Vϟ>Bv`8'px4ϥ"L| QzYZ@ eGVd3#!epԗ-˛f-nYƈTlT
+hbl?B%܂8+ZRxno3 K9mgSDjdqdl&acFQ?8GȤomRwT|ldH6 bMٻACdA|n[$SAL߭o4 6srPElxmkH3TFBi'YăfෛT1/WNO Fnrc-@7kvV uk1?4l0ĭP-i9X TN/LmL')F4԰ ʏ)1Q{];Gy` }oYC¸*IO=q=GAd]%eC:{ES;Wtΐ0Yf3.\]X;qlQd^xЍ|Й-k<ю<rsyiń2 nW_vLoK !?ƗRCNd*0o͉)'b~aGKE"84Ҫ nAYH/
+ wXmO
+͎;;Sڕ vgLu9|Z~SŸ8
+$裩@/S
+C?x*pH
+դsNp&^9(}O^yǧ旼I桛r5ZJ<\?n{NtsO۞1HvwRuثjceXdU0&v뛿a얢G}?O1g,*צt:wԏv+~ur˾';1۾zN5%@ҹs&w|-v#A9;E(|;r6{JsϽ9)r9IMUq}jt0wo҃hvFY.I,t-NX k X!&2Pl7qJp#C ~H!P<p)O$s}kVSy'6?$;iBtd+5&*N͢="*c1g[;Gl#~G-`q]EW<_e#h؜B[ o[ݴ/^of9df1v(.ȿY#j9=:=on &<C◲w<YS8qCK_>|-TxخJnـg;W?9&F7va 4B6ͱ!ďc f_<Ԟ9Oq:-, ֗ogV.vG'jhZK [bkk"l=9SHz?Bj7H0t3;WdY{"t},?G7dD69Q-Wg]EkzP
+endstream
endobj
-766 0 obj
-<< /D [ 764 0 R /XYZ 78.37 808.885 null ] >>
+761 0 obj
+<< /Type /Page /Contents 762 0 R /Resources 760 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 765 0 R >>
endobj
-249 0 obj
-<< /D [ 764 0 R /XYZ 79.37 589.26 null ] >>
+765 0 obj
+[ 758 0 R 759 0 R ]
endobj
-253 0 obj
-<< /D [ 764 0 R /XYZ 79.37 437.753 null ] >>
+758 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.065 179.471 242.02 191.426 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-257 0 obj
-<< /D [ 764 0 R /XYZ 79.37 267.098 null ] >>
+759 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 257.741 179.471 269.696 191.426 ]/A << /S /GoTo /D (section.11) >> >>
endobj
763 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 761 0 R /XYZ 78.37 808.885 null ] >>
endobj
-774 0 obj
-<< /Filter /FlateDecode /Length 4963 >>
-stream
-x=Ɏd8vRH$QYـp ژ{ i~dUCVTC&o?}?xSFh?(|!omƫ/<JiAJOmjda}Ŀ(&O=
-?_^q
-o1NJ~zY>5;5/s07JDk_PΏTkj(+/9`'|R0o2 + B-$]d*{3V\ RB{ë(gԓJԫ+0qKrlAx|5~}VGi42sby,'{<v7rps"z,&"Lmr ,Eb}rK%2qi"yWB7YڤIc.AVh#" ؈όޓuTT޼5Y&AB-@$
-2o+ḯC:װ݂P!揶ꨵq
-U' #S{DAKc#.ȰJ[V~䀾L,?%5h9+;_1COGޓ;'9om^-1K$$øqEAɤBv;ÅGd9[j j&)B֌b:vԻC5fJGm3 1Ja2c#4~%3gH!I6X*%*258` N\"YB> `+4{
-ݨ&` yG]hv\ s!
-k%CiR0MB0gG.pHќŁX"t<3\$V$ ,5k"l`4}D7>КoIi3>j@[W>Lv&Js8~&ݬ5ondd\]!|B\-敋*UtDo̰`SR97lA_"Lc$)훶*Cr/"_@
-:[%n6ti}i
-z-2&Ypsx}=Q>V)z\+^㙉sQdnK\u '':p{d.e6;!~F!k}
-e[0/!ƣ`&Pq j@bA<; TvfġJXzyR^:ogB̈́'A#x"PǪN~u~(eo2Ffʄy|2*Ktez/}eDۙ_7bSl^SvF5 Nl"}sו Pv'h12:Sh݀!`Ȧ)C4lx̻?TZ)uߍB$*;0"{Z3D.ώ.ǵcg=1) ndlN!ou* &ߨ?rGᵿ^k@8Kŀ[MAtj'qi<mBC "oq;Fo5'cg85S 4<E:~ﲒ!>vQG>z<.>m SM::9maN]E" &0>KoϥmJlaU5zWK&]0ub;t)}H|9VJy"3NtAD4I)ZWA(+iꥈ0wT|5v)Of-Qb9Ra24n\-Kɴ
- a>}ڭ(ͩu&/#^B )]bB鿊~m>wZ_'(.!l_#i=KFt(iu&9>kW3I{7I>ߝJڛ 𻖴d؝jӨu&?46D5$iѯ㙤
-WXi#=|G:c4]K6'3TVfx11z_5(kY铬ImoY$)Z{Zքnw._ZeM5t|4kv&4#KeMWҮ_5y7I>4kv&`PMeMWҮ_5y7I>4kv_˚IŬ&{5I&i(Eb˜fH@e Ɠ$m%IT:X Iz4K~Ќc c >ڌ$eIYI*O?0>͓DT\WDuQ ]a }q6T"~UpSJ0xQVJ K܆*lqvʻeq(b?TbkYKifcVC3(uh-RmViyS 5R0'I)-9,T٦P|FGd43xe ^ʞ^>n]>q*{F$RPs^$H5!ݾ>c[a݆^`FݺVO!Hm7#QQB[=: ܫBuF^{1Wv.s"^nm.Br,W܎(Ի[u;iG_יhMW|7-G_pp*۟?\ 7*ln|J⇥PuQ6_oYu`v2 SBV∛"ȮF0|˭U劐:U63%tpBڣ),[C8cKq-xqYIN. B
- TrFi*AVZjGڞW)yru{w"K f/y>EQ'"l#g4*٬lYAzy=ެdgMb5ݥ= \ L)smNR0o {n.[s2525+O2 "=QIo-+Fѳ57^7'KLmRN"GM[Nf`ajp"[^'DYձvoU؃FD~f>'!s>w~(L8p(OuQ#SO?z4U|MO6L]m}/ToD:•'[~.OWy-:߳FlX+ߔ ˸@nE:z,noWz[;ekopڒkqe*U0^\[ZPip uacTt =rVS< t#QK#5yӰ2MLSqoj]۳v}յ-?Sm-!cu<\J
-endstream
-endobj
-773 0 obj
-<< /Type /Page /Contents 774 0 R /Resources 772 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 776 0 R >>
+237 0 obj
+<< /D [ 761 0 R /XYZ 79.37 552.043 null ] >>
endobj
-776 0 obj
-[ 768 0 R 769 0 R 770 0 R 771 0 R ]
+241 0 obj
+<< /D [ 761 0 R /XYZ 79.37 161.274 null ] >>
endobj
-768 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 256.857 85.96 267.313 97.417 ]/A << /S /GoTo /D (section.10) >> >>
+760 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F23 379 0 R /F20 382 0 R /F29 375 0 R /F52 376 0 R /F41 377 0 R /F58 386 0 R /F15 381 0 R /F68 402 0 R /F55 383 0 R /F51 380 0 R /F53 649 0 R /F42 378 0 R /F43 764 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-769 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 419.713 85.96 430.17 97.417 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+771 0 obj
+<< /Filter /FlateDecode /Length 5521 >>
+stream
+x]I\qWq.w͞d쑥=>;$U7)ZbK,Ö/ˏx{o^x uOqI{F0n_.q58WtUS]7>=ӦHoogsc*2︰wl?uߗ'pM
+iZw:R +&s5V6) x\eƫ}O$%c,oV ()L7ՙuŴU1"NR A2;^R;d ul+t1ifV%-CM-%Kb:9C}N'MWr֬e\ dĤo*| -Ʉ}>!r=±}\lf[`n lt6V5C+'
+6sLɉ:_>֊hDRcs ,L`Bhh@
+fL|zJ^ Xyi.z]~i6YnsURY{gsEKɮfԙ3seemZκơKJVZu&ܮŠ _t̑.S*_ܓTĐ>ّlӅ,u=>`p۷}ܵ>D=sK/A.wJ&'Bxb߽w*/Eu4>}YZs}0RdUܘhT3;x
+eI˸*gjfviD<{IةD-!?]j58):Ld.|e/"EsdBSە pR׎4&,_zwtHkSiٷf0/yXqzPܥ#vF{^ۼpOa`5cɉ1H
+S`嗖Nzro'
+2m0Ij GA U+xj7=ص9iҫ+܎xBO}ŋ>rސgzY
+6$Wч)g@"_YT~EE?6ueAQK"p.(CO'kޜYDbwVrd8 `0r\:
+LJA:mQj9vüEFi)oB i*,[<4. Hz+?℀+BR3Ya_AF Pȼ~34r?Ȍ~w9Ij1o ;ybe1zN.5l9X
+nu<ٛ%OR#Z\JR*/sojSO?Nz9QTU Bt5cIln+R7e.6$m^X@W9|U_Rf˾so7LDm7Pؑ&ΑO(f-❅S9ɸ_"tH"i݈$bINU
+[suSsHm>8XŨfL(b]K_4.G=SǼߴGv$e^7͡Fߎ6::Isr/pPQ >[RMlsr"Dp ]v"cpwCk&EmhfE> y|P)*u5GXWb.ҧ[@ڽ/Tϗ)BgO*
+ ]
+Ҧ 5ɉXdJ`S&ugN"0-B jv+N17kcrQ3^TWnvZԃj<`׎%PhZ@>Z*";=^_[/[pX/D~F/R3z.nkE!ueݱ^!r
+mF@3 9BJٷn'AJx5]FU눩]'Hr)ݜ:fG uܴS~:@Y,Gn
+{QEc a&>rx
+<@v1"QK|k 8T޺'Wf@<Nslq
+~b?Vj n/
+5J.yVg!> VuiW5(Ȕ6a*#kwƗ0|(wʁcI+4Qb77${Sk,:,eڊ֎/}&tg-gVǤ`O?U3RTL]*qGM uhKP<m oxi ՈFUގ8!:LlxI^i>=8N'rS;Q>=t]]b$bRW{pI9`BYVPjS5JΞ|J(j{ttrZ+넰M6 IWԯSNhE׀{SiV׳hW4hu>m~gpg5G+'ri"r+.uh@ ȝSn"'L=uz8j3"F@{
+贾DsٺR+
+ivEgee8jk!cuUptk[ǯޅ狼t2kYV'9ITU3TTh|B)'h6uj#1QOI(ဘJ{9&p$ڪT>pM `-cbIrS"aQ%dٕ_lZ9by ^T3>bn8?3g3x(1FZSCa^*fx!{7y\u/D2Z^-8ܓ]%w{Mr"5fB-pK:q@*Q~蘻[{e{Ŧf?%Tr> > @c!.x>2.$5ה
+DxKLRLnDqqaj?i0k܆UV4ǽ
+endstream
endobj
770 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.372 67.03 253.597 78.488 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Page /Contents 771 0 R /Resources 769 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 774 0 R >>
endobj
-771 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 266.652 67.03 277.109 78.488 ]/A << /S /GoTo /D (section.9) >> >>
+774 0 obj
+[ 766 0 R 767 0 R 768 0 R ]
endobj
-775 0 obj
-<< /D [ 773 0 R /XYZ 78.37 808.885 null ] >>
+766 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.692 733.664 217.647 745.619 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-261 0 obj
-<< /D [ 773 0 R /XYZ 79.37 771.024 null ] >>
+767 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.086 733.664 367.041 745.619 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-265 0 obj
-<< /D [ 773 0 R /XYZ 79.37 734.627 null ] >>
+768 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.024 721.708 329.979 733.664 ]/A << /S /GoTo /D (section.9) >> >>
endobj
772 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F67 389 0 R /F56 384 0 R /F19 379 0 R /F65 387 0 R /F66 388 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 770 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+245 0 obj
+<< /D [ 770 0 R /XYZ 79.37 356.752 null ] >>
+endobj
+769 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F20 382 0 R /F56 384 0 R /F55 383 0 R /F29 375 0 R /F82 773 0 R /F23 379 0 R /F51 380 0 R /F52 376 0 R /F68 402 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
782 0 obj
-<< /Filter /FlateDecode /Length 4201 >>
-stream
-xM$9> !q'MsC`E ÉJUW8*ql_IF^vyw(g.N yQ0Nh/F᜻|__o F uMCY)d0yAd6Ic_ӥ\O#pȈ<GH?7׌ʋ"_/Q2
-e߿R.
-.Woa,}/%,Y"<Hx
-x5ąQYEU
-Pxgq:FJAEYSh+B0#{f0{&\р"\ϻP# \hПK\>iyUK<t4"6geG z 偷/w#nЙyz" PlVϹNݜ9sZw3ILYUsϋkX*>
-¡
-&)z4]|᪍$|#lMjX''X n ~?WY
-kfKgbN H@056ӊzFAcc/s+浡N1U2'IWԆK
-|$qkp EY$OO&ʨ9D.gP[Vɸ ]vg99*q%&wJBofQڣ8Yf0IQ43K +Xх':--0Yܓ<Ynfin{v&MH9^|֘gNW'[wB!”1 c]eχ~S.4Q Z{^J[K^EޝnKJa^ 0CU1Z_d{J[m~?6)\} ]zi+#:f+evAjX(7ؚ^,oEʹ.tnϧ1IU*'}MiĐ f.Suvy1Ick:'-;b?6`7\DN!"p$%5&O[wByrr`:4wYSyy԰82LBy祧BwA4D~;rjjpVDiJV,%/OV}>ISlefKsfYyKe1
-4o[A"RS0qr n$t~ D{R7^⍲'W(x#ӛy5oiMlM[joD,kfTʒ&f̈́QO$xd0q;c4[ kDcVqs>Q}O
-&+e>q3fj&<sjߘq:Ly]Vh"g<Є{b-ggst<Gu]0ey6Uۑ)cejrp`9- .d@v·gg,QnH!-X"R/뻣rB(cqwd3$[|GBu)|4K(mD0|äbn]RHpC5ͷ<
-u#_-v;N}Eg~[c7O}Gjoolv[qKwwGFRQ=u)94/T}>A3TTn]PTmsh.Zj=dsŊ3!^/-svXa/\JG ?XJa7XY
-x)<
-/JRz=A2W%noD :a
-Y[B$k5&ʮc͏ܹlT|A8Ϻbgviصb JS'']!)5yO.y߷sy1=1!{+Zmt iExlhEoL"i =G%v,s;+*ݎUVx ՆK}<^L7y6Hi7v<4G7Hɢ^ ʗ~./m36k:._}佅_pBpSˇS!c|Msm 8P6^$#JvqDiy~$ݣq{_{@L6q}{vBQWo9b;Kg˯qmxǭiC` -Tj7I-Hc|c |q6ĪJaPi7uÎgvj,ȣ}o~Z+:cw
-y}/XD tE~D;9\.d_+Mw}&ۋ ʤg/ആ0UxB Y(<Jnt AW`E_Iֿ,k}қ^ӓYyJJSWY׀ L|IgNM fb9U*~\Zm2KSXJmxC-x]T\ T{DtE撨ԊEo;Y ikO ii?͒.Tx*!Ijmin
-hMҹ{wb@R0sZm@f^MN?-ғo`(.=9MM7Jp)k
+<< /Filter /FlateDecode /Length 4235 >>
+stream
+xˎ>_`ii9>9/N>GERK=ccXH")ֻX闉MX}+דFM~~M|~vGƔet8ò~-rgdOg'Y~K"ݲ6-s͜^lc+ ~=kKǿkI*c5%yskB\ tVT=JQΌÿ VO' 
+
+,r>K3֢\
+)i@Ǟߐmm!Y3vjN3 $V`15[=Ul؆k19;WjY= Ch^H'c3Ҫܹ+Z+A0pɺ]lb"a@/Kpȧj>&csޡMAXaܿY2P[̠Y,$6I9+xex0ݖz3b{ck9x썐4KbԪ$t,ƻȏ%qqrKh,ekPstGyCޢ.] Vvtց+&cXK|zjZ!_f *[i wZxq%WÑ9F9j4X- v-33w~Wkj.Zu`0 cT'1Ճifb~pJ~GL|agS"Ηw45/>H62?xG* ;,\aOz uPY8%Ɠ
+ߧL/S7{ǧ(\p#N'2< )"'%VHP3<1c+ [}%1Eyve K SOA3Sv7*b*yQqV9䬝PٚGWs.< <wYo+'xy)n++RǦ@ԴPtQ~/W
+bD>չyp&bלl^EOX# t#%UNJ^)Rj³g1#Uc5ТrXJZݷ*Y{"ev* [? XmbޒWRv' '\`ᗌpUΫ9*RO!D
+w`
+bwoN/Ϫ" XרD2m5r&*vOyh=һ
+&ϒހ\(2u+aÎ5H2+\%XA~m\;H&aM+exKc ʫYz3uzFwgjAcV#;8
+yXfc52Db=h5o-YruRt,jL121IdшkQ࿤qD7Ț'!C`.5 {PwR_!hpZD>smue:/=|e(N%]o]Uyؗ"{vLIѭ f.VUкE9DhK:4^ŀ$Dtpɝ GNevIJ7::Xa';w䕕p.?^Pp-vLYpyAJ/
+|;x ]zL!7cw~m.櫓.EG˖|յ\?
+ _U}
+%eGaoI1K86b1\=TMZ=pgY`[bu B?'-$Yo r&wNm<2bPʐC@z#!!@x"
+zk5Upıyzs<0X[:<ʠ,r
+uw M-3, 'BȒ Ci,_Kj0&ֳ#m-EBqiTHw9L\s"@ v緷?B끂wf힃33uP4c:(2:T=Z/m{ `:6wčMi}Ʈ8iv /5SK}0CZUby)YIImu WcZ &y1i O F1]ݖZଦIkHzߐ]0G% {.k~mxkI]hBnnnoG<#Ac#*`h=]]VН=6]dޕtꖒbWtf9u9h(¢nZŨHQ,r閎<xzQEUp,ACrH)I
+9Ԅv q'Ci;FR9Et8ہ<j0C3E^ Bq9ENj*0@oŅ M;tc7-&o" +^x0(ŧbg!s:nn"({9G~m!ItCaTK`m}b']٥oZ45ɚ7== KlD'& _9l[neqAZ9qhz[x6C.AL4^D[՘Ƕ$^QƘnxx`创ĕGr\J0(!H+ԡ;֗vpdӪk-|\:"QDWi
+oZ8"s S6 l8|g#:vNw1lfo$̫܊.Qߵ5I]Y4δZ[5nQw,F0o,Uw`@'.&g;/l4V=| X+=ж^M\|*Zە!N
+I[VlqLcei}}7ĺ`;e_Jp3E@6w%PBĆWҭGZ=g&GukbE#ԫP>VGI~Gk v5G($ZĪaīnfRp9;7_8CGs
endstream
endobj
781 0 obj
-<< /Type /Page /Contents 782 0 R /Resources 780 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 707 0 R /Annots 784 0 R >>
+<< /Type /Page /Contents 782 0 R /Resources 780 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 701 0 R /Annots 784 0 R >>
endobj
784 0 obj
-[ 777 0 R 778 0 R 779 0 R ]
+[ 775 0 R 776 0 R 777 0 R 778 0 R 779 0 R ]
+endobj
+775 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.687 590.396 429.642 602.351 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+endobj
+776 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.973 578.441 439.928 590.396 ]/A << /S /GoTo /D (section.11) >> >>
endobj
777 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.502 521.07 298.19 531.91 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 233.622 315.387 434.369 326.575 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(tex.stackexchange.com/questions/488566)>>
+ >>
endobj
778 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 313.911 521.07 325.866 531.91 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 256.857 90.396 267.313 101.853 ]/A << /S /GoTo /D (section.10) >> >>
endobj
779 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 486.065 147.626 498.02 158.575 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 419.713 90.396 430.17 101.853 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
783 0 obj
<< /D [ 781 0 R /XYZ 78.37 808.885 null ] >>
endobj
-269 0 obj
-<< /D [ 781 0 R /XYZ 79.37 508.112 null ] >>
+249 0 obj
+<< /D [ 781 0 R /XYZ 79.37 715.337 null ] >>
endobj
-273 0 obj
-<< /D [ 781 0 R /XYZ 79.37 415.636 null ] >>
+253 0 obj
+<< /D [ 781 0 R /XYZ 79.37 560.114 null ] >>
endobj
-277 0 obj
-<< /D [ 781 0 R /XYZ 79.37 129.3 null ] >>
+257 0 obj
+<< /D [ 781 0 R /XYZ 79.37 386.969 null ] >>
+endobj
+261 0 obj
+<< /D [ 781 0 R /XYZ 79.37 288.473 null ] >>
+endobj
+265 0 obj
+<< /D [ 781 0 R /XYZ 79.37 248.978 null ] >>
endobj
780 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F56 384 0 R /F67 389 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F68 402 0 R /F29 375 0 R /F20 382 0 R /F55 383 0 R /F66 389 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
789 0 obj
-<< /Filter /FlateDecode /Length 6928 >>
-stream
-x]KWe
-+J/(JкTļO.ᯱȰcYC?q1j.ԓ}Qkʟ~=`(aL(x;1xEggD 9oClq '$]] cKS=0f#%05D'X[aU+ea'g|?C?#`9]i !{!@j|ʦ_u[x)eJxRK=銷wކvhBl7zϽ7#.Ҿe=#cKbE e]3B%vdBDM$+L|a;)]zKy&i -LlvtxB} ƤR@8W{uǻ|}mvڢZTk*A΍v`fDe~^B3G|~@?G[G G Y!!_`-ŮEҵÃwlUkP?•ޒw,
-ա~x_$/ÎK5|=𗨟͒We1ٖFĘgk];y+#bJgύ<S&:VP?0#L>P"t}\N9_1q f 㣪JsC3_"+N?s8+*Oҕ0T,1Pꢍ(Rd0})# J]ge'Hg ʢ# oGsZ S($nYTf "zϞ>`8nX8QDba]EPc']+(=`mĮ/IzKF 
-F=Ċ-+ ؎̗6D+Ķ$&V
-b;V2b?}WϿ/Y"uҏKU!T aURY<>Mԃ)WFRvJ^+3zÓXID84bJMjVl;^]83TnÎZ6FPX^.YVj_{OU+b^Sl<G
-DUJEj: X%0q3VPαrZjZ^b%W=iS;߫:j骾VqR+>.M+too}Qo z0'+8Me!Y Rz,SUmƒ!t*
->BW
-EF˅`_Eї";5caڱ3 Ra͖YHm-BQT{rv<՞6E )- ذbЍ>B*ŒYMrBR
-W"AəRC1Y$E;(xw2]EQ;C`O #=Y*ފuwLk;M%,%](̺fkbuZ[
-J.K ڰmjĶ]amuPQǡarB>S㎈zʳ˸BD=%,4#UGD=ixzE4-^%^izJ:b٣PU*+kgV"aJؤf"<AlJBlb c%#6%#ЬDO۲X)XɈV4= 
-A/T=G yZN<(ǀ{j`z*ne`)4-a^.wizՊ{g<=aB܄,%L_OO1.5/z1Ioy,WK1j)Ao{-AFv: wRj3o܆<K`h\-GXxm<*/g},W}Ḧy18zyJbbe:t暑.9~ϔ%mo|/ǃe 2M
-tC}hG6ԣDQªn%OQ%ϵ'7ԣ'xrώ(:џ1#&x͎ŘXR C*AߨxOT~ꌊ<a*<.I:c#irESI_Ԟt-kH\[I9"WUjޢ|yj4,*?J4[0c @ygK7Sd;,ӕIslҐYQeL>jb(U2XJ#]-͍[qWx: UfbzQxEa29(e9ZV9EǤLIH)؅"DM,1:ZVdJs(( q׫ i4L)XdӃi ]R競W4_};LI~S°̆9.VT go%ojFlm} :Tp+-LBX§Sxz[񥛍#~g=YQkc<vǶfC7$-_מф)SUJaqKPGo̺/y[ufW&`-`Eb?3֗\xXs5'JW=3ΫX~5'JW=7*L%,eJW`޹=r00ve'] ',zM t*~GS~pvm
-s0Ď]pesb=CC?Q*/] ٛ0HggVcܴdĤ&\"V'mYIMvdfdĔ6+Ķ$&V
-b;V2b?I6saMVk.==Ͱ 9&G-U?0b7 1X`%nB`9c3ߤG-[*7<baeJv_v9T98*7n[5σEnpj{1ZrZsrq995 [`E`E 'wc
-[y<I"OQ=l`zQk)6dddX` c~twhrNgXsZې +~ P
-d&;e~5<]fƁF;+Ɖpie.p ĩਲ_`@fL= ͥA•JZ"Ѝ%s"X.^d^'BbJ7k PTfj(ُ?y&(FW9N{>K|-_RAOk19_4o2*7:\0Ej}`'5xïm!jklEj>F`I\kz .seM*& n\.ҕ|*<eI{*&H$kҕzT(;bر4(;b9&egTA:J/ҏ #V=*&ʞS1S$lQ11O- (|n|FY2١bhcFX+\ܦYat7$/1 X e%!6R۱0r"<AlJBlb c%#[Q1MAq׸A61-̈d u151Bl w1s\c 2j#db\cbKcF-{|- 21Z%\.12of%ƐdhHɌ|GCUN&6MNfrkj}LKuNǠv̼7$}|ڟ~ d
-*S$R%DS2
-<הBB@M1E?DŲ6R >:ݞsIa>i*dX7sdweO#9g놨Fͷg;}<:JL]::Ɖ3N tf}/W= #_Yց3LђSPaz}vǗbj֘'J1z[U2zҧ?q/D`9i7cq,}Glttd/O'`⮼ŰrIaVQ-(AV$ /)!ec(şQȴz:h* ؒWڝV^YwZ!;^%.[xFhf"iPI]2K}Шp޻Nvcx9Ĵ󎱩^@A0_RH̥w]#̪ދŇi-~~ZBٵq
-~Xmnrփd5fJA<r$u@ƍ(/?K+,zNF$==ch Y?j*\ kPE'v2G~2ra+A*ff`#f==KUo܄3˔?zҿ Hp\ 8D[}<3Khƣ?xCst|aD= ;/'/izn^:EmɝԤ7;H)Jjyp'=͞!==:uh-Z^wm;zt*iS Iݿz-L57|p~T_M3xfm}8/x=Je=aOXD `u figE.!,%ނw};v0U$YhM%"cs,.:h=ƲYs:Mo>F䝉,,caR:v此o*Wˏ܋/.)10\2O-}S< |N > bc9-߇Yx$ ;=ϊvEH
+<< /Filter /FlateDecode /Length 4981 >>
+stream
+xˎ_1G 2d h4` vDK~?w~z%,.f'~w
+}0;/IgҞqzks-8WOýo\ dws~=#䶗
+u=@aW.o%7
+ԛa|傟[xYJ*VuFukJ4)Yaꣴ4/*૫L]_]6|ZLM0HѮblʞ2:Φ3} 8nrۦFY`N-Xx^M6%p6C|tIfy.(1wWs2;eq EzSi<0)|I/SBl>v <:E JR9 0+dGWR0/GĠ)"X̳ԍU6\;hoh)p"Pba~٤OqŸR#}Uwt71U1PF!qލ6Ew!R@\\<i>m|Z!,uҺ*ʀ 1Tqw@l1Sցev'`6Z? T\l3H7եjqXr4!!= ͟+ȀUHnі̦eqB~K.5l0 -e<6Q>J>GE땥H&
+vUA]6)T|OEwCnN[ 束!-ZUVؘpAu-}C 7;e~򡡤d
+[GA.+qj-[-= ]Q'eŋkg ?v{9g1@1 /[oPCف<^/0ε< e+<۲wA<]Aq,x8\Olo(HlH)ϠYl𭸶l؝jʖ7mv!f5_
+n/nU ZMlԠ\|Z:B6lN(UR!Zʹ*ȠRtgCbn-g/< UX=+lC~<p=:mG ǙE?K#!;;;el@$Jk9#֔'+Կ'+ޚL .<)Yb bzWqz 7UL=+GֱJM8jzRӄpl`<[FZ@nWF <ab)UyGܾja!(z,f ܐzeEɚx^4C#v&V_%Ø }hB~ 'ɋ$;w&3NJK7qI!%/jch/FC-Lm`;8ZX>V+!}\;F6J^ES_t(V+ `Œ.*_-Q,ŒʈaB
+™ra-*FJg6
+HmDFʃ6RrF<ʈ}q`F
+m'̗׆V|=Xh^I9[R[l%MB>E"7Lvʠ}IJSqfoNoMؙgJ m[-RM  c
+fA[<Ri& Whv#uSAjxQ Ӽ+ )ycF'yr:O䖫u y{'7tb $vW1lcR˖H2MOff])=Rv W|gbzwWtt+w׌eJ?D3R]Yf~Gk,"&s+)rrJߥՆ#l_4#&cv F ic)o ,:v?~6G~ f+07iQX *_ȵ\+UH/h k(9T{/iZcj?!)8Ak׊l;'%lںq0#9rrw #n4; v+x *~>yo7ܲ9ZaDNf2({&$Q#rv _޼< DZL;}s3/N*^3ۻwiUWr|No! p=3t-n@?gl׊.ҧj
+17n.e`уNncg<#v8Ki"D-'7Yv1~@U@jUAUPc{+|J65uGmΠH9==S >\jNP xNЌ)Fm
endstream
endobj
788 0 obj
<< /Type /Page /Contents 789 0 R /Resources 787 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 792 0 R >>
endobj
792 0 obj
-[ 785 0 R ]
+[ 785 0 R 786 0 R ]
endobj
785 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 121.109 98.706 132.566 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.372 79.828 253.597 91.285 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+786 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 266.652 79.828 277.109 91.285 ]/A << /S /GoTo /D (section.9) >> >>
endobj
790 0 obj
<< /D [ 788 0 R /XYZ 78.37 808.885 null ] >>
endobj
787 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F67 389 0 R /F38 369 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F23 379 0 R /F58 386 0 R /F64 387 0 R /F65 388 0 R /F29 375 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R /F71 439 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-796 0 obj
-<< /Filter /FlateDecode /Length 5734 >>
-stream
-x]K$7rϯȣFQ|?jw綻CwK#H&dx
-ZAhMU&" "#iohoZqk| taqDH%wJ%?
-)U >?ip]}76{zϏ wgOWs+H}Wڶ_}0Yc<==.
-@F# #74F(tU&4RLr=4k_[bmTgRr̓gLo~Y_D8ߖe$u
-7pih4\^IyCc(CqI;\U!ԠS
-H
-Qp|8՘:<{SsDd
-cȯ-1̞EPu=
-NnQN'7819}>λ><1؝}lf/l`NU QeM͓&E%;s Q_z[s͍ 8߶țQؽۇ z
-0N}XN݃[wiwvѩԛ ;ptP|tMhO=2Q"XŠqq|}/K4l5ž^J:@c{+OnS^JGI;5;˛?OS?-m~Հ45QSָvxM%o7Q&I͚xz ]P.S ۥkdccފ*T-_)]9KCܻ!%@K5:'*e]H`x,B?]{nƫ5@ZsӁ;ɱ?ռu6CJƭChU($} &al =E(xy< d]!CderjkN'sUSm ao:u]u:ֆܩvչ^iJ =YK>8} bp`Urv
-.]9rF3!} А<Bt 4
-٣2E\\=X!d,#R%#M^W$ގRX[ը-c&VƝj^AkO] -Vjc'ĸ6*7 BZbmqU0m- km`EO>6IcfGg%ʭEd~'̱IC|ր8T'N rf%^Z}: J 8|äpK`L|SJw=WﯹBoFsCF ƪ&P#
-xФU݆c9D]ɧނJT#WOQKUz@ %.C ct '$ֱnЏ-$Uc9Q0ɫ6elP|[/x #Scy<<>&["|NktBzҵ D
-$3bZt0m RleNk^o[6^_L7.e)Dk5u5!ķ)>Ĩ!Gʟq܏yǃ`L)B)>Q)}Ѕ
-MŨZZ.o֧հˀ`ڣM;%h
-^W%Rz}b^Zœ %?7%r?K׋e[$v†:\-2F뗛
-o15
- 5RU9pŗd%*hL"J="hSEyF>~2ЖںX)@lͯ䮋<AFՊ:*ː9Ӄƶw`R?Ȕ
-yq-#
-&o=oDR@OubFP.<쮴7OX bIP
-메>+?"ʳΣU} c%nWkײzkWe9Dtź^]vOp,5T#z;je W80`bl<ls T@%91P9ʶC 4J@Lmg1k UugmUތJ"e]r6W W4Zi^*Nie5.[ bizq(Y TgAؠp?UT<s;ʳ;!,E+k[Jp]k_ɔQr! U_K׿XxS0j "«Ffs?ypQQLO|[| lE
-~xUz<UzPlWAW  PcEzUPVHiK6 3ީx;q!Y?٧n,ގcJ
+799 0 obj
+<< /Filter /FlateDecode /Length 5173 >>
+stream
+x=ˎ$8`@]|+ok_f /KJPz :3"EQ$ERTn$?HLJSkoo}QINj
+I0jW)}˟^gv63w/8`Pҟ8.Q4=h1A(*Z()BCaT_SӍY)G~d_qr_n:G!I-n-˽
+K)$W†xA~qG>Ce*{nEo INx;I/:U~wWijU(^hF:tf嚷KSHFOIɞ ǟ&G%|#zIB%&zeb Z3|fu"Js/t~tƫEt<Egqh.S0rAfN80Y׉3
+E
+]iJDg8w1Xk7}r$rTҿ7fl0ڀR__zbeZM/sU8wBa)1&3)\|{'¨d 5gXf,
+dsᛕy[lh*pP=:ب< |ka4,5#}ň)(U+} C7=f0uzy?
+?24${bw4V qn#1u5Ц[(¶Il*\f8>VVS[6LT 2*7<۱߲ т o[æ3ysZIZpGs֖">ueJ9Z I>aI:7B#N޷l+fį2ce
+o䊶 >ٓ
+`^WZ̟ɽajM ;6[DIN[ӷltaZd*V¿qͣyJ \U`2 Vˑu CTIzM`~cw<2iLd#|;{tf5ط–]iLU=7m:Kj`V/02s53L!y
+KA0n([@ E+ٸY)Su;[5ͷ<<Z׃Y<&ד?ȗ:%8
+;*}vpQ)nrPj61jcU.0eQ@&qKl5;zbɒR
+C2+6O*J<'Ӣʲ;_T}OĂw޹a~0lb=Y|FC)qO[}c1 s5ZYI !Տg4b[?lh ^~$^>|LG`[PV߶;Xo%?:L$-- F%đXp$j꾩32>`y<i4u+X5}aXk8Tڶ[u%;fOR[SHԒ{`\ܻ3C7tEGم;?m2R
+9,,Jr*eҝmVX
+3a=O@y2<R#W+t3#<2"Y<!7EN{Y~~}ُ^APC-9cvlJo((q\O5q!:U6'6_4s*ǹɀ0q0P5{T=)eō~VYص K#]i*
+ܘϪl%+TQzڏ~*[pY9Ԋ1XAOrZGҍ_2.~od>MCpӰIEx{NN*V%ݣ}Kㆭ^Kfj^vث[]ctysG.ӵT//QTBF)p:B]p[~#e=5lY|_
+}47tgBЇsi%qpQct=3J\KX>SF{fƱqO>-T
+V
+(dH^ze.jL_u 5a]c9>,W"
+:6ݰ;Â9W,OҎ4D75^ҸO{4+'i'y; qyAϊKC4/I'ay&+K9ITI
+Hytx'D;ܮ Up<'*&+2)һ4қN9+K5U7
+o,irU#t M3=XSc`~`ٙ2|X] H=[z_v@XuY{Şa{y^H^[WEd.l:;}
+65Za
+Y|xYAov55@cK5*S#TУh}Iǡ'W]4+.&ZH
+#.-iuء| |BingA~o6Vrfp>G 2T_.Oe]1+ R
endstream
endobj
-795 0 obj
-<< /Type /Page /Contents 796 0 R /Resources 794 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 798 0 R >>
-endobj
798 0 obj
-[ 786 0 R 793 0 R ]
+<< /Type /Page /Contents 799 0 R /Resources 797 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 801 0 R >>
endobj
-786 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 256.944 734.5 268.899 746.455 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+801 0 obj
+[ 793 0 R 794 0 R 795 0 R ]
endobj
793 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 592.245 101.955 604.2 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.502 667.343 298.19 678.183 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-797 0 obj
-<< /D [ 795 0 R /XYZ 78.37 808.885 null ] >>
+794 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 313.911 667.343 325.866 678.183 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-281 0 obj
-<< /D [ 795 0 R /XYZ 79.37 188.613 null ] >>
+795 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 486.065 299.414 498.02 310.363 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-794 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F38 369 0 R /F19 379 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F20 376 0 R /F23 646 0 R /F69 402 0 R /F55 383 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+800 0 obj
+<< /D [ 798 0 R /XYZ 78.37 808.885 null ] >>
endobj
-802 0 obj
-<< /Filter /FlateDecode /Length 6278 >>
-stream
-x=I9nw9}Ƽ98-IڃI >vۤz >KER$EQF嗅.?;Kp 7b1i(Ϊw]}Z
- LjKr"~G@_'
-&/dQw/UD>1_=l^Mu[[ \h+QzxN4 o}Kn u\I鹃Ttr%ʌ+'wODSw%)6Q`,s||Dp}A8@0X3
-~0Nþ#2 q;a;`fl=>%
-m t+@)_Fb|uy/C@MPsEƙTQ5HaU*x]u;mR5z^sk9[?4%i)was#RQ/Y!\jG2D*`jmHT{B S$aɺX30KS[ 5K|fẤ0AqމPUn0 210@e8`ЪcB켮Q:>v r^u
-aD B1FJ*
-c|Xև2cb(4B5yۑbՠP 8HT{B &)5Ǣ/fLւ'٭0~{ BZ+:;3'v|;}Ľdy7PU
-FeN)8.ČXf-0e~1mc |&R;B̢e9|p`%A*Zhz6 l<˯E6ZF_@!Ό6'y0_ r^# 3_8pjm0JM)m
-b 0`$HlZ;ZÞ㌩`N$(J%>X
-9T-I1S#%2H%Q酋FëY$F`щ*9=N8юDkQKw*K]͡@"!+ୱMxC,iTRaUd+Z UC
-3N)Be :54!x8$.eb-Eh1̀W2ʍJBD,`T:e_
-4PQe&W3Q}LTr/*3 :3ItA,퀩
-*3#^i2f, ;WpEa.kBu>̥`HA<S3*p z k:yYk⵬k~Q+'7 J3 :pءx r1[k\oJT6qx!"3"6R_-@S77j-AUI+-
-bPxO]$у2>NVrؓ7ڳv m<a6'H%yTRTf*Fa$v9jdЙq<&{[FD(?b\q j8d]} |NXaᑫ^FwJ+]YRB:(٩a Vf>2Fw#^KG˭Bq{ƞm\5^@^M=ʰ>v(qFgiK`FAY#PtDJdx,YGA2qUag<lh#wT< Q}8cj{#2NOxN7 KՆNeU)$L=FI{x| ><Uv^]ޅۨG˶Vx^iWFa`y?Rs{Uu-~xΣqˣ\e;+~eYnq3Y<oj-kM-zaoSƙƚQ "©srg琘eEaA:y-aWќql~ĮA׸1l
-, a|\-P;}ĮW{h`=R)1~Į6
-;ic
-H}V8i
-=mL)P3
-Q~,q=^˿h$&]9ߕ
-QGM}ǎfLu
-f^ь) Z+͘u@=hM)B|t!O˿GG동 Gtzwh\g
-=85pgǠ"x"5Ǡ"xC"} Q1>h==C~~cCA}cИ2k $` P1*ݷ¹/,3SjGKGdx0" .~4sJ„p/%bj{)=u*!<3
-Y#
->JqǷ Z̔0燏 c$=`΀]p)A]4 <"fMΈO|;ӕ0qS0Ћ+ad 3x>a Aah?[{=_0DOXoB8̒ t#Ka|\PGFi= DM -r#xuzbEaJw>U{Ͼ;}bl]1o_3&~+1$Q+L+56F=k*wkЃwkŏT@opk0kdcٞ@\ JV*A9fR˚Im'VjL<ZAԂKDɕz)ߢLyn?`^2j w[;G:f~QK1p ?p,zs MlOc4JEӛ÷T:µ!b.]eV \X}ln"|
-1jo+\WyXY_0'сR x^M;f
-J>c~3)%Ж 0WKq8J<Ӑ3-%
-g-s(y*< *f@MU(/2dlz.>Yfo1؊5@@OܾbOvzKC>$n?f4T!jkzhٺWbyݳ{ByŜ
-x-*\يC_?&[:~h+`{y̭-֎}cDύF1:n74ڧJjozjё(y,}MCms(0jj{a|{Jp<qP_f@Iɜ{E5t!  (RfRdrkSeJ| It˛f{`F(WtՁޟI4gWYS@>xwCɆ-ZV&IGㄚW|Й{aOs9dyL/;% q-tS!y1Q?khpنA6a4q|?9gN{JjOԿݶoݿO$QwsvYxWr^=ut)@jޱ#Js:ı7@cDj@rQQt},
->X%ؘET}FιP""S=7X[q呯+$;1Ǚ<=Եy/{e9#vKQuko #`$Կq#0S B ¬ Y!@0G0ft&#!4uRAOEr|qOa-
-|=o]^-ÐSf9јvPQہ_Ο1~u,|8j 7RjFw#SMT WQN3<,ܸt;95X_0|]k<AyZ>7uapVA DFB߃'7p;C*nV̫1$7)Oδ
-nu;~vO, 8u@ZV:3gi B7Rٳٛ*~yC*HЭ]=ߔ0{{3&~l?o-a0o('Zj1sXEr8&~.J~fHHot?3&~nl3?)K65,L 
-endstream
+269 0 obj
+<< /D [ 798 0 R /XYZ 79.37 654.973 null ] >>
endobj
-801 0 obj
-<< /Type /Page /Contents 802 0 R /Resources 800 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 805 0 R >>
+273 0 obj
+<< /D [ 798 0 R /XYZ 79.37 563.086 null ] >>
+endobj
+277 0 obj
+<< /D [ 798 0 R /XYZ 79.37 281.677 null ] >>
+endobj
+797 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F66 389 0 R /F55 383 0 R /F68 402 0 R /F57 385 0 R /F58 386 0 R /F29 375 0 R /F23 379 0 R /F20 382 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+806 0 obj
+<< /Filter /FlateDecode /Length 7381 >>
+stream
+x]KݸWe
+B#CdnIBC΄P
+s?|{Y DW8p=#bs:42`U jjd9\cvZ
+6wpgX m'RnK"Vgރ!o Vw)VP )҇*N2)`&i@O
+fqUwS
+ӡ19:tR>CbC'Y:k8pUARSUaQ>fդ>%#f+My!fdĎb! Ӌs}|򁏌֌Rn}zqcO,KsdiNS[ux-Lƒ,<IjdajUx :]Y/Fd9dA/,hJMɲςnȂNVXД*HR3$hV9 p,:
+qρN}|6<@S/_qrn.:5}4ݽ5VDW|k$fd$#X~b`(Rc@T}=3J'P&t#/Ȁ^17WˀǓ MNK7̀C;1W*c !Wf@'NDؐF!],? X33GIfi^8˂ /=E$&&S|jס Ԍx`=9A%&}.1E9
+W^lpuhIbH9h UDMB˳=tE%CXw.0f{ҼgՖ mayCRT͚_ ]񰩵GB8%OTyC@MGztfDz{.I•^U!o
+%e[Q:Χj=Oa+ZQ/iӪ';2ؿhiyV0Y2pV+8ŏ\2mLd7zXUEV`O,)Bsq__43OHr_ ,%9-隆%2+P~$fnhp];6@GRpiC
+5[w꺆m<&'Rm.FmHdP¥5lbv;a]4O-|@ 6PV
+K{{J@boow[hJ,_dַrk|Sa뚻ri>[0iW|S]P㖝峢vMa{6UNDJyo
+#Ϲʻ{PzWXx0.5a<t8.[7}Tݷo9\u S|SL]6(9=*Pyo
+/tnXvLG^^{BڇbSUyA#/)/}KF,RĦb^
+b3^2b”Zv.E+xݢgyQrdeVvxO9iΖS=9)fi)Ei2G=l9=M|1)[
+t9E>~XgSn~Jr}"3n}Sd"nc\ylOЋt[cxquctb駃x#Je~R9q~6(}f@g trD?_/_c'''檍O쳱'!OkAirL?-\8\oА,? o~:?J/( \rsӤz> 4*qOee|4٧4OS3Өy=(gȧI}̱O4!4E>GSh|#)Yʦ o!4}h(RhtاI#1T]jbřJ]s*ŋx ٹR5KbW<i>U/N̬y Ul>V}z
+R$5oʱaI+>HneÁ
+<l?6N$.Eŏ|Gn.[HfG^ږ4vb'^}FT3+p&KtsJ\HKD., U]*ǫĺCMWʀo?z:q갨e&
+7s7^ﰻRz'9GZ\KFM9IPdc5t.R=G?? 2-z)˦Fg'tPVY:RfGE WYp ObǻAuOؤcm0|LG.- ;m/>NV "pO^̩ĘX7O#F:uyO8FLy(yunZh'
+\꛾qZeW-KbfM`Ae*Ϥ(}p>>ltJ\+!i<t3f&nq#`ԅ[ou G%kWʒTkz;ɓ(Fsm,yXAٰp>$MI adHA?7l!yx2y@FŪЄVuР| Oc
+q͕Je\N֩=թZ|z5:Qzr4vzB`'0L]cx ,{Ê<}chnz
+nн,֜}5uaBnuhBB.)V~VbnG%hf%YͿY #YKVk\;l|J4KcF'9+۫C peR<P
+wZa+?n~yޤm,W_X {ՙd㋴m
+Agw֋v9BefpjyKto86x\?W,7hcQ& [)Exu5:5^
+5i7K8XSab])o5+vÖ}Oڕrk" ͢O>$e^j^[4@^0\Pap [Rɴz`{*pϤpYzcx,BWm,sYv_jB] 4H:rnd-Xs0}hrΕ?di+_3|> 2sܞ2϶g<
+ p>B3g!o-7I|z׸ƃ,Ǜ<(>(ɽ l1c>)ےq7#n=(D4o9yno`|<y}jxXCz-+bHZxxk6jВ&qo멠[s[4腂(WE7 զ.HVM$~lYc<Qzz`Friٶzڨ>BpD*I=JDPD/͝
+sە6Bu~cRx.:R(eNW-&Ԝ=C\* 8gD)]
+D\P
+z(XLTϔ\МPRR ;ROz!C/0I/}%#&B12Bڇ^9/} &a'sR>@lKFKFl !zԋ,\.DxL|;7*!5بL܋S#[UCs]QMOjd;HfpQÌ滰 .[ Br;q%[9t̙º*i4̕۽ȭ5\Tm{kϘ9_f:`1m:)?x6;b§{%ir)gvN}}9_晜%eG+uኙDSߗ <7}|>1eleg㾌BCl~_R+L `O}%y>O}ć^ܗ>6'ױR
+!M; i|ttt-:ZaxVJb 3*(,~xWI;Ⱥzc—ab.}<]+%<X3JšI[
+z&O'[4/?ވ@LRC!װUgrG^={
+ Rxcb%b=g?["3JP~sJcbuؗ-V`J
+m(C'ķáŊaRD&ĐsĉGr_6i7imfڤ*ݜHƛUu(K^U\JV#$ST
+hbR
+endstream
endobj
805 0 obj
-[ 799 0 R ]
+<< /Type /Page /Contents 806 0 R /Resources 804 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 808 0 R >>
endobj
-799 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.633 215.502 426.588 226.381 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+808 0 obj
+[ 802 0 R 803 0 R 796 0 R ]
endobj
-803 0 obj
-<< /D [ 801 0 R /XYZ 78.37 808.885 null ] >>
+802 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 256.944 280.518 268.899 292.474 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-285 0 obj
-<< /D [ 801 0 R /XYZ 79.37 249.733 null ] >>
+803 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 138.263 101.955 150.219 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-800 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F76 804 0 R /F55 383 0 R /F66 388 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F69 402 0 R /F74 478 0 R >> /ProcSet [ /PDF /Text ] >>
+796 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 95.424 98.706 106.881 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-809 0 obj
-<< /Filter /FlateDecode /Length 3561 >>
-stream
-xˎ7>_Q?Њ``-)a(QGWLtH⛒re˧9~}٧EYaן E-! ࢰA-_-?<J鴔޽FL"Vo
-(IC6JipMO@"wG
-qe2Z&ё[H^{0턑OzN
-'YWŋLt|&JG{z=IZx?lp0f `IR
-V&lIKx
-, b>tǐN ̡7G
-_*M(ngaiŝ+XcL[nZI'iڕH+=-<.XXhܻ =#Kgr+-)%NXޱSNډxuz
-Ḱ,PEu eECEX h^4B?΋)ԕI!WS`
-=G58J ׈wkC}+l;_!<ATߘlfȓL pRu>x٬>`n1N8ϬԍT%T5RR<<="3Rhէ&&o1j`|U2 {,:A(ռ-ZJ%d3esM;X2mj炚"J*^k'{1`ƀZFK}wJHP@[Z=fsxӁ<gI3{,jfm,j o(a*OzYǡa^dw<aX!o+kӬY iBMulPC]J8T=_O #lҴW5o]Ƀi!I9$ֆJڭuhH&<NXٙT iD# ֬#U8t/2n%$&La.AUYL]<QS=#9Dvy:UfI-87\gkibٸlJz.S_Yh؍%X&Rn\#ee6!6/eϹ(r)jh)aTFnc1W6 H ްb >Qeɝ\o*hLM b/yfFOV'qv޶t.aK"݊9Vcr R3! +WU̺fq n(c؎V Xlf|l/Xc+[UMu;O1$H\k9Ե" z
-.{ǷUؽ[m[?&%19fV vg)"B$qk.}i+ɇI8f,@Oq&>ż-˴Jx򹣊sYnjr8S(Da$t: Ԫ$tfu3N3uZw<99nyi
-,=ZfyM
-wJ>[kJd!c=4ᰴC{PŃűV".`E]2o$VkR&mP\3{sDs>~8?ٛosSCEZ =CI
-iʵg-
-MfWsYmo7"_sr|`R*S&uJb׵'=!"4ˡFӲ0|Y`i
- "Op[-o>g}OB`pxso,jv ZDٖ4J$36m2|)𥽰U-7U*1o
-|)ݔ6ӵCXKzro~ht莙
-|h}`yȫռhXh1pzqAT=E##w H[?9&g޻$7Guz10vff @?r^/EӨbQӝc41O^peݙ(N۴ `c?
-Ӽ؃K_٧X$; ӧӥ;Ck-T/3т/UD<l 5 !IEYvs|&\_xeMAտT}5 miSz4h(V_Am{j@p5MstΝdM}-Oi]|P,w%xɤ*:ΌjL~Rǯ,<7Tvo
-s^% %nF#8A߬\TVRVH h,Y$uk0P"_n5{4@/\-oZg"@cZk3LF\gERGe$QW^PzsR=bu*:̃2\.2_h=`M~KDF0 YuЌPA&zYju_B<u?I4hWKC(X":&w -|)U/*sh }[+KBuB׫(ΫҜ:R;_ȶ˥5Kgs ֏/H=}L74huAa_Ia"
-endstream
+807 0 obj
+<< /D [ 805 0 R /XYZ 78.37 808.885 null ] >>
endobj
-808 0 obj
-<< /Type /Page /Contents 809 0 R /Resources 807 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 811 0 R >>
+804 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F29 375 0 R /F23 379 0 R /F20 382 0 R /F66 389 0 R /F30 369 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
811 0 obj
-[ 806 0 R ]
-endobj
-806 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.424 267.823 426.379 279.778 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+<< /Filter /FlateDecode /Length 5920 >>
+stream
+x]K$7rϯ(xi
+ʣبBJ(T=`${d%Qn'K˨X[Kn^J4CO~BIB9}1cwR.= k)ba[Ajz^sʰkk.
+g:ˁHs6؏HRrMG-Z,x1Z}2Wj D0_8y+m߷C'a0/ŮAXAen_U1HXdRr7oTqAd"@-AeH,DoI<\hw+C-jсFA#{j{U!oL7G72:BVQ$2<JI^\X8Кno x
+<: BZb\ejC}mǂW#<
+(٭\x,sf<ςc^9
+ ?>MZ@ |&Xψ6g98 ;c1Nx
+
+xơaܤH׏瘝(Nz߼NQ?y/>[)/}Pc
+S|=aoe1:>0?Yg6ɳ7elg;tj穊oU%_R4)^A~hmHQ!} 񟌱 &|2Ɗ4N͒j32 |Q4U.&BZë1LˢO)ۖ5X
+<f~#,ǩZӫnn?S~.p_񅻧7?w7=委P9=Q.1PCZKh׏*!3D͉Q"5xWz.b|]ry|(\z]4|Z_+jF,?r ^*ׂpX_fD
+<?.R#yFkuh^X f%koWiVy-8
+sJ=GR &I_q !U5^K= \5j!VjA¬̩bխ
+a`k<^esqr>#oF3'C\yù:W}^>)j)Ƀ]H/ւ!:~a:F
+.Dž}=3eeJ
+E!6>5R>nI7s
+A#ϴJU `9ʁbD'ҧ&UnBX>!&av0<+l[j'Y%& NQrREѵଂwc٩3$jʢ)Vz2jǹ#Q[$ [T%%\Jk`'Jk#b:w|(d75CpllI1wC䤏ZQ
+X C˘uCӵ:*!8y+! 
+τ>(fu5{dR^WH@S ^Pu\d22ylq}`sXQS'y%X2yluR
++j3_fTkkSSj|c)Kmڱ-r#ɺX! aRp[ u
+럚 QC %
+֊51\0{1*w5yumHM,sYj=TA_ҡ 7ǢP9Y+%3 CKnAc[Q
+A/0n#yvVoXuZޅ49U´7+ ˱ZSX"| Qn(a2Rۡv*xGgtCKĸ27 >7X^߄فu^72PUba0Qm6RGmOPZSKF0Z
+Xr8* FTZALTtI|z"&Gx5L:[)
+78Z-HFD1yv,ZpFmY=,vva]+VQx;NK0!b nk })?%n$RK %*ͦ"_7WB֡q^  \!g0c7u6L-LY=(pO혀GƫWK(LNJ*Ӹ$v_քbYU}-oH<R1éƷez"JT,Fj0>>?L%m /ܢ5'Da߫,7AݬO(Ɍ`k0%*e53P 7˒dt]6\j`rfB\*vHYL>ハdgޟ/KK*gyŵyՒwQGa#0u)v`b,ZX\x6 g࢜x0ѭgqק?okןL8[du
+hUVDGYTOO挊Z6 DJOZin Q}NL8lr[e^w5z4 [V;pNZػ ּN<)e9g51<6vNt#'^UNNvNV=*]G>ۈ_͛>%g<~\ޘit0bFZ8@ l?k N%ycآ+cZR+=>OV!Y[k7<~8oxj9w盋v%̧8/p9m./ݲЧs#K*' $tO4Wݵ٢tB珫 7}ѷAݸK k ±CE!QG[0WVUoLn
+endstream
endobj
810 0 obj
-<< /D [ 808 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 811 0 R /Resources 809 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R >>
endobj
-289 0 obj
-<< /D [ 808 0 R /XYZ 79.37 771.024 null ] >>
+812 0 obj
+<< /D [ 810 0 R /XYZ 78.37 808.885 null ] >>
endobj
-807 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F57 385 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+281 0 obj
+<< /D [ 810 0 R /XYZ 79.37 363.407 null ] >>
+endobj
+809 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F23 379 0 R /F51 380 0 R /F26 404 0 R /F20 382 0 R /F52 376 0 R /F53 649 0 R /F68 402 0 R /F55 383 0 R /F66 389 0 R /F76 813 0 R /F65 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
817 0 obj
-<< /Filter /FlateDecode /Length 12534 >>
-stream
-x}[%z`t 0nkZ%`4X-.C6`=w#dsԌ'T}d{/O߹otT˟?RKHտ޹+
-͹ҫsh
--_%vaMA)G`5Ns?zξ[X' T?ߞ,|>BJ#sN2_eSC-@SOF|;z`Hoez;j<2Rhtrgw_J G}^%8|c0Q2>ڌf$uf} QM ǜ2So?꾧.WD'$G)/܂\Յ/z?0ѯ63埯C#u1Bj̤'DZH9G͌a䧬]4qԪ̾嫬k`0O5ݍǶ3"F^$KIf=ѣ1 ч1ޜg뵀5+H활AkvkD+zx{{sa# f_֓qVkp/#Y<+]M, 4CFalPA$l 4_Z uY<\nͦ0\<لkXy^rC 髍`ۣxHDbkAK\tE' N:z Y%,<D%R:yruGµ[[l*T *e'RW.ߋv.@^ Ќ _)#1vipձ^uN^I5{罧g
-<i y`-gBfj-+L\#c Wf0`&w H^Wpbض_nmUVǕ|@l>\WGD摭a#7K딟v?jC~Y~:4xpy~ vWfYa^t,_ޛ7>Лύg[ _O*v+m/ =v5Ny 1@Y4$^6j8j"X&6S@];"H%= ֧P$#X$M㟍xK,ѿ__ zIk4vX!ݏ/z#O툥?(Ÿ?
-Ƨ>@
-*i@"<oǝ* o<9>sEw_CށDԧM::vǧ;ZOgۊ|#emIEz=Z;zܚ'irJoGimէSmrν
-Ӓhz٠nMO7$⸘>8>6[ PʳC?2l'm!<; 5Cb:*O&Z?hXG im{2ѻOHtEd3%f^=}<5MDz4$;Ğo)Aus#MuNo}յK9El!S[1N/\<;EK9 KeV'm*x#>[~M7/ZW ?IM5ezK~"Q[I>VVZ}/g3BkZk,>[m"v1Qc֮@1r(CN^&P51V\6NhI"Hm"Kb|9Z)XDrhmJDB\W{{>nctFRe6Za9JfatF*QOvkU%%*-SNn(&V,5f;1MYa(Lդ[QqL6`*ͅJh oOŭQ]uc\a#D
-M,ͳR?X-Al*5CE[L{b
-#`5lRi3A4X1
-R5 .k\Bd]0r*ۣSr;|FiSM
-9ohMxUۄꚘ|9ղ|T8В\PO~TXob`R@ivК+6m@s] mWl4*9G*=ef":!"TvqS5CD[ґ}qmI G ź`kT(
-OadKRq&~O40
-NcVWU{aʂ?(tDmQ8a%<SPZb%\nBbw  QC],38QwwΝDd=zmv2nddOU!kfRfFd
-f
-r)3sٸWA_:lh͎
-ΰU1 mb9bE2xFE9
-N{*7Pmh%AfF| ÚS$(A',7*cJqƐԗ1YA)r&4vsct,'$ ^Nhk^Afa~УI~f븧Pz@dp4htN[hL
-F1+7Wm[iwЉW\Oh&U@ h-4wj׻LFFAhfPc/ Zqas씕-DIF< OtAБ+^[2qGKi)D("Hcz'g3+S@08H!`
-+s}QEXRD9!4 -xH$Ciܩ桀0DOQ6vx*$* |-r@rMMwj
-AఏT"dq4T0T,ܧ&j"=yef saP!(+n` CG|$h᝝S6x001R
-MU)B!va;uxSQmN蝼%A
-h؏Hw p֯9n(ζ
-
-K%
-Vrc,qDr'+|cf(
-A@U02| x"VVH d[N' ֆPbFz'w94S 5EZ ;8iEp+6"(N1UF1=&Df-}/F]+eUPPm{B<z|_;F)$,gJ́ /c`I5
-&©ĨUqsS%Mdj5 _ƃTz>G?ǗP> Aı:wj y!sLF ӣEkxd4BtfVr
-נ%GVbϳ`N'A \4,FPM!zPQ"
-uGih12I,+w z;9N9 ej;-Tl@3sqK\$5"5C_H |cKF
-
-aT ߓ$MGVV=khz"~/Bi9+8ltC$
-d
-e\ɪ@dNVa^68`CmSz":M
-AAQ
-5u:OJH[ytY,~< DVD{nX:,ǓjW >i!TNce{ 7XI \
- 7T
-m7ӘDL&|<@ &NhH,iΆQy: @g4O
-Aتeתf:І3%hN F!O G3j$(Zh\-p WnfT={΄AI/.Ej+-*-F堆ae`Tœuغ8jE% r]On4]ŽdT|8Bn*]tA~i0d|ZqSE\:Ynhg:^+Ǹ;
-w,A(Tt4hn]Q%7-wf5}ıF!]韕 -Z8c1iJ8h1X4XʕV} d3Q gӠ쒛 T)Z%B (G^,
-Vrc",vzr4 xI@(<_rh7*~fGQ]uPg_0D@w}1D3 xPPI[C<9uQg j4S<.əZABfw}Twt쵂wۆ3;^+U5<[MfT!OKnĿ)ALmhԌŤ!˹G9`^,jA>_!9h3&GQ gӠŬ͍g8vVGi(3 |7Վt' [DOF>س#/;ML_d3
-bd]nO1`н&Qq6i%oܭ1iJ6{| <vWU<YIaKUոɓqS5҈L>|'iÒ1VAh7$'ejK>i Q))*CݺcR:KDmXIM
-(m3IRXR3|5nӤnNAF<٘4%]<9,ՆX)-SCeIT*4I؍]$@=fݼk8&߮,1yB2 QI}i;`5`&O
-kdr&@LSPQ}%S6&M hG0X%/S]yޏoxmL3eQ) 0MFPus1͔EI_n~~Ogp="NJì&N-a*J_Jo({SWN?Ahi[^ԭj>D#A0rK~ xiA0lƎCY(oow ]p8.SG7:E)~`\"\ߍ?pU&BO]&ϑ.MIj"Gǟ\{)b !!d|{if~-H \w~<?^lKSl#L/mۻwDL!|OwDl!|X?~r_?|_?|_?|_?+HSB-,x/v8^p!Sco)Ox׈ajʠaM
-=yIA۞6TcP~͒b⺨#'5t` XW?<{{H0 $ f: ]0qL=Xh 2_D Ug5E f*8NАOhHĨw!CC?f RVyFdO`Ryҋ*w3S= eymRGf&AT6񁓔N$qނ
-3H^2ަܨeUfWs:T!EVH՚H]7+8#mP ( KxyOpfytdc$x!ak 
-kX1$vD#`6mC+eU'N*Tjev4
-9@eN+kԕh
-f?+8ڶh|dbҀ=E¡΍# |B[
-k]e!ӘMaQi1έЛ֛0ةqTQk<G^ R1?%8a  E4?a
-*벫Fņin-hF>a$b\0a0!7Ur
-Tdc~
-(5]3 QwW_oJM"0e! =74aO,zz5 L 1^[[YoUǐmXl2"<3SQs*K|!ra_F<tj _GG:${j-
-$~Q5Z)
-M((QS"G
-5z,L;~gC;aDGT K
-z~UfUa|4{zyl4/}iCnDLtIVi+xaۗVvv|ԝGzc#6d_UEn(`L*M4ҙb⼨cWH;\ Q/F3[GK}p47v Px$)pCjӊkU b
-ar /{=pLF$%!PcǒF,%`zMq0'(]'PXA$EFّ`E#a=EBdwUGZތYA,r3vV[ d!CqB4%BuP
-⛈=$@dNĂךBn2NwFjF NJbF(
-l2^j DF-c zV Ze䝼%?l!* AcG~VkǢJ(^TCmT*S8.pAڪP»gD@d0QlS`
-vA+8Pu[431Ϗ2NySw(񱲈e nxпRunpjӨįqD,uF<.MV%4Aa6cD"Ƥay`6 rPwQU@0<7D!vմ`\TQEUÖ<٘4!?8F k8t>]`EgatĠ{xQRR@d 1KF2W ØMVTQ{Bb@m׏VQ! ~g ö`˝ػqfE5'$xGP,HՌմ`x6HQy\{Tl E)L8+i&>cㅃ#ń7jJ:7WA3mTqŇ%w#pC3c2))cFSCZH7=4Fs_J#Yei4*& Տ*+Sָ@BnZIR4#73%?|3_?|3_?|3_?|3_?|3_?|3_?\~3'!E"y|!}&g
-VT]I\RdrWZJVȬp]ۨnPwh
-"\ T)ZKҚZb_(kM^E򫬃 b"FiWS6| QRud
->߽ET΄&Nꛬd_O T=rB[E`OL </*cjQo né2ИcVnڶ81Yiwug\OhUaJ6EL[{7"__Kި1c:b Zs2q)+7=WU[DD#G.wVFW'xt4^]!aX=b Rlr;i":kgkP ~=*;D3
-
-$v
-D)TɌDs/:V<ƽHa#0iۈs!0[U7!2m[/]-;jۃKM(& 聏=o(^$볜gBA(e'w4/{D{m|\TsJ\a.7g?U(
-Oa ʪ$dKD0=}Os \w,Wz<Ǵh0=Z[GKF#DG1c즕5h}OYl ~Si„o7d=-ih12.s $N4nmUgrI(S9hC<7>8v}pcǮ]|pӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋N*M7t#>P: 9XshuOs7&5̺ȈKRQ(e)R>˩ompXu؝ ho&-t(=J~ N+=+į! M"
- l
-.QY|:vwI̛,J|8QAϢTxnߋ.|sT*= mR22KroLY?i13
-ʩ͋~o
-rM o7 gL OUq6F _E4 !173rܟcT/>Xu{"e/>PV? _ :?4Ar Kfi~cE]DŽ|d]'Mߘ/[×هҡv(u 1)֮ZbI}{{5ӝ߇9I7f}Nԡ75};{~"zk'P@A8^lc D$c~h!հKN_΋n/}`
-&ůџ_o1VC7mzEJ$Zp.x% L%g?L%AE1n%u@_I/v:}aU"-vgeJ;iI?^N&J+iz.kBe9P\=hl˼XgĒYzG[Lһ}MFFweWuSlڸSA\>P6?yv&UvQ&YGe|]ǻ2ڒ/y׏,UG'_y"5VεwJ7)>&Xcb+G;#G
-o͂oӫVũA=2Okβ~m)hP8~bB]V>xs;S'ԓn^ޖ _hDMk9D-~, _o:FX<}T+[+:8翦e3|٨Moݿ+`}!t{:v埿NnR{G\X J\q34J سYNi+̝۞&K5uڑҬߊg<|Ql]wMsDPDF͈&Tݱikwo7:l%NGJ~8SvSx.BJ=ZA>wAk.oM^ ;]=Yl
+<< /Filter /FlateDecode /Length 4904 >>
+stream
+x]Ko$9rWqP ` ۷^^m#dfVUjhZʊd| d332qwgw?<;z
+rW̟:0>1 1yqik|:' rP|f^x{3eAxHV3&=1WtVvX^p+w+N>t+v+NW0r@Ď O+|iΠᯥy >ך
+ҡ; S tg5 @T
+9 Mj=N7^0q}&N7nh
+zo6
+^cPfP)--pTZ &žz$GIc&/351XdpA5
+Lm;2z!!PTS\,@!=Hԥ-@@$EXF/ 1{ ߶IǶz%CvqF0=qHbq{ZW_Y&Pz+^> pmϼ5gnI9{Z/ Y3i[9O3k'ق_k2Iֆq%r `b]XMkS٘L 'eL*3Ȼ^[`YQ29A4WƩE}dRX+I.?$Oϟϩ ~9?ao#hhH:a6O,7HřsWx/ۆHtbP)B-t<!~fs Ռ,ӈOZL(Gtƒ>KUF)<7PҜZ4bu"4LOJ'bsZ_ב)!
+[sNPUs>rXnS-yuA) oT_%U1ۧTy [,ִ'zy~iz:4ߊqtE߽f@mw,߁sdw dKV
+ʥuC<,ms. CU+2.c9h15=4:mzlOm ?SdY(
+VAi$H\/R!R+-kzZ;zVYouZsŤ `qZ ɞWZx6n]w7=; w z
+f{'0MY;AsR:p8O3k'YT2~d֙? O1]wa}ӀδJri˭. [&Wx=2_ǻl2cH/ʢk.+é[lv㈁i[`ᝲIw 3{#rl˴7_'6Oi>J+$ez={޾)HY&|!/*^v
+
+"rX?J12O\:˰||;0Z< 2?IO eWޙ4\k>{u<Ox>x[E= HYv2k޴VO7H˼+)xPl_,WDYa7F
+bqAI!*P0o+h"sb&\$]58DĚII)Ys_8~0̎8?
+^'-m.&.%,Uk14
+ )J֘I`lINhE'u
+"4y19,2F*$^/Z@Ρ
+yN{;v׸jj&M\EqUD2yܿ#CF _ZAE7(mkZUI"!d:z:'%X?<v$oNeߺ$D
+t;6D8*M:zΫ>C*A
+uӯu>QNCwpT Ũ| Kjd8=}}In9/Ԉ'[Gkn4MU?S:3PG?5~phM?Cj=yF ^ #o8)'5(1 ϙF]6uIꍺznߦ $9QaJ+[fǿU*'TD|H?NQi0}6ZOk!ά3^\u_0#1s~*-h")H2Ppqu0
+tҢ3WrA]up{[;Tyi&GI!S;}u/|7/?_NdhoXgppo ,;>XiۿMw?O 6O_:ɢ,d/Mt 0LEE.w~Y7Oaf 1GۛCu*fe;UsݜslPn,LlrgELvҢd6I)C֯RSsb}H1 sU1ex_%4%sA#^Yó>5b%L:,>TuƄU笻rTG̙#<ţw{ܤ<$uy)dm6%[yJsz3~x
+ۣ&?lP
+~}!]ġq[tYj$J,ńSt.] {`U@6
+@/>%9N~cDop2 `KP2Xm8_`lKeyғ9:Ӣ_=09A+1w|rRw1;P ]P-yate]d$ޤVwi q/ٶ % K]&چRۄE
+ a5 8
endstream
endobj
816 0 obj
<< /Type /Page /Contents 817 0 R /Resources 815 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 819 0 R >>
endobj
819 0 obj
-[ 812 0 R ]
+[ 814 0 R ]
endobj
-812 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.495 251.269 375.45 263.224 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+814 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.633 373.26 426.588 384.139 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
818 0 obj
<< /D [ 816 0 R /XYZ 78.37 808.885 null ] >>
endobj
-293 0 obj
-<< /D [ 816 0 R /XYZ 79.37 771.024 null ] >>
-endobj
-297 0 obj
-<< /D [ 816 0 R /XYZ 79.37 693.277 null ] >>
+285 0 obj
+<< /D [ 816 0 R /XYZ 79.37 407.492 null ] >>
endobj
-301 0 obj
-<< /D [ 816 0 R /XYZ 79.37 298.711 null ] >>
+289 0 obj
+<< /D [ 816 0 R /XYZ 79.37 207.307 null ] >>
endobj
815 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F20 382 0 R /F15 381 0 R /F23 379 0 R /F29 375 0 R /F68 402 0 R /F74 478 0 R /F55 383 0 R /F58 386 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-826 0 obj
-<< /Filter /FlateDecode /Length 4503 >>
-stream
-xnd_hj .k܂-S9P\$jw$>ɧ>ɧ__>Ev Sҩ?Y*uyz$4[ZCt/ D 8qJї2/4F蛋w^/sBu}ifA=5J?HVY %GZUYϲFp*wUɉM*'7iһ
-gK,98h4bj1 zBޒs."Żx+5 +́ں*PѣE:AC8ҶCKgrcQ Q.ҮGۘ[yR=Ҵ\^Bсxyd!^MJR]]&4Uf_
-W'[(nF#ULCt |9MP #;wܹFs9rIJ:;&UF,½e(W&ꕑ[ΪRQ%EXQ߰(RӦU7"i5/؏>+!7B[lv} }:YG D NwB3^k^Z1NJ 4e+22+*ZoZ[hHB%)[2" rӽTP½dwQe6\[{iqtoq`w?8f] -قTk/C:+>4Z4x&
-=Y-橘+T$ ЁeLJV]=<V%C~QF[^"xU |OkGIʿ Zc5i^h/]0.)A2F2(JUhW~τOJ*R! Ӵ$;P4 - =F] m? =7&&Ha_d!*By \%O_,І]*7ːCѬk9r;頖(9Fx[QUJre0 ›bO= fk؝WUE*6
-%#Jx&i#=QGwIB\4(IЈgD]R1s4gmXn:%vG#e*D])͸^׍B;cvY5 bpuo9}'9 !v=fG iA
-3#:֝%xpw=Viwd>>Iڟ &Ƥ
-5X<k.f\j6ET&q
-@cJ:}ՍH5ݴHLA49|znWR RnWߕB@<ߕOin jᴂ;hI5>t=fAnEݢ4aOՠٻ7Wýұ$xUl?=no]t;[Э}N6CE퍝͔P)Yr!M2bx,W|_۾ނJ恵WFPj z~T@Ia6aL Z=emCJy59D@V'g9v^/}j'4[mx9\ͅt<k)SIT ÓwB86@fO;5*PB`\ 4(TyM^9
-6 ,C%Qf"5cxyW\efClQxRfi !r]kA~HN-Ԩ*LW'5[5f^);7ə;oBX)4ol][;G/7Q-mrI탊<+94+'JK7(ʅ@4kދi4*8i
-gFbY PV%MZR:JA|`s&kFggb(<<c>0˄G-İOu])FHF ?ܼ
->. s6uo_qaaSSG;OtPԫ7aǛ^&XXVBE<ÅVyjîK2zFzEE绞1hoF
-Q39cwc~̍PHTMX-ђ%)hFFsj=ΙqE d62u@Ga.@']9Z
+823 0 obj
+<< /Filter /FlateDecode /Length 3255 >>
+stream
+x[Ɏ$W} tMM dItǀu;dARK%*I/v)_|y˟-I$]A.j Ijm۫]J'A9'x*|G{鳔NA'_Jo{yѨBf,4Wסd/eo?}BZbePeY ~7BaB}>pNԕīs9Ӳ),U]=DO|C̜]Hr/0էҊbjAB[(`w6 idVU`=GU8Iai(3\)f/
+x(Enk~Ѻj\ZVppdRL<Kx٬>`nی1N8qfP('!B&Ia(g{)|RRK{)S}Tha.Đ<J)WibUeP`"y1[fΏ TKvPX6tK  n![)ĩ8x=V:ODӛD;gߊíe$:'cy "^iz  *'78=< σzzu-N&'Zܢ,77O0'=@ǐ߰ɠ/`0MUFhKm^e1\rE6H$ 'FSDO|=} R&2\)Ůo&024{ڐȜvP7urGGJ$]Whp+@_!\]&bH=uP6Җ>5a e8Drpfʡ{f?c2sq!>^Za
+ؙbvdže+*[MV\i\7d1>EjMl`3{Os#dsvUC'd v)kj<VWDkOmUoM(v~zә$P83V!0B>6FԊLksA \-#'yr0<z4umiN¹e+*Q-Tg(6l**%tfrRju)ͽYÜ3,/Jᶖgh"H;/ET)w 2 B*rn'#08lgcajK.dEm onml)07VBٚ3d@j&M&!Jp~`>zLI+A%m\֚[u3~ Q
+͌p-ռ]p)|mҿgkM>bKOCckǹ 6s6cS>볭Pǽy>Xs}W[T՚3~uTӚhn#<{ |n޸8rf _Drk
+}mBazU
+]D[ _n*vN]K,ʄ$Vy{#R46,B3՟Ԙ23VXfc܄*[BpqȚ(tP츠eMoMcTOPGF9_{RV!xKM-{̛ʛmN3M&lvhHoEgg<o[ll1}  1fN0k;(J3-_pg
+w\8"{cy0nwCT+;|0oop+, rn/?:2QݵhmmJu@Mn'ΥL0~N&'=oCd?Լ}~K٧+ ӧs1 =ygDJo g?_`F.K0_CҎo\;^v)FrC b?rVŗZcAmGrA#5d}鴴"4‘j`$;S>DF 1}FnsF;@3^8 !ʜtR
+/?{,7
+LplIIܿvh0Flcd+[18qHXgNUtwX1v7#K&QDC {Na҅{ѡ:LlWA'++n+n
+
+0Y?"z
+(՟%i}eLwxE|4(A>ᱺjMkL–sZ7<r u 8!͒y`\|`
+<x wy`,zZCO}T %0Xs^:ԆN <xtF~5^
+k"|KE\W}["+K^C!#[VINٓDAE6GrD7z4*֎ӏ/^l ޞ~Q(}@JZVwt,,VǢ D\x_#_w(~ZKGFA6b{2#[n>|{%{vK{]R; M\NCMτlto/e ;t
endstream
endobj
+822 0 obj
+<< /Type /Page /Contents 823 0 R /Resources 821 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 825 0 R >>
+endobj
825 0 obj
-<< /Type /Page /Contents 826 0 R /Resources 824 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 829 0 R >>
+[ 820 0 R ]
+endobj
+820 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.424 353.24 426.379 365.195 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+endobj
+824 0 obj
+<< /D [ 822 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+293 0 obj
+<< /D [ 822 0 R /XYZ 79.37 201.355 null ] >>
+endobj
+821 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F57 385 0 R /F64 387 0 R /F55 383 0 R /F68 402 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+831 0 obj
+<< /Filter /FlateDecode /Length 13174 >>
+stream
+x}K$9޽Eg T TPgW
+SLSs6xc@9[E1#&Lcѡv0Rћ4_zx{}sa# f~%^ş[ _C鿌d \v5:dGlh>4 jf6#ƙuY<\nͦ0\<؄?m%Wk镯69KO!1 Hd{/3#1< S!O<yω Kuwi%|+}˂Q%
+bZD
+hQ7s0-΄phF||hدiOSx9af{'4^JV^c|L!rs' Yc!tյWlS01>JsْKnw'.g 1`&;G$/P8?$51i )[ҵl?}2#[Fo Zg0)?p ч}Y~:߇rM)6\uݴ|4;hwmXXzޛ5>Лύg[acIŎ>~l =v5h OK@p7[1ҢlQaDF2Q~o0%`Vh"Ym= J{"py*~Ͽ)dq0?e$a_.zk̗OK{$E?iBәO.JΠq
+tg<1g
+yΰO'ߥO zQ4ڱ+qܟζ`הqEfoS,.#Dڵǭ&t\ԫOk{:%^ 秝O.cg}!WgG d
+ /f.dL'm˪Jv#>[~M73
++憟COw?T[Expy(͍˭$+K`+cxp87xHk+-aU뽦Uf m'u} <&TNce{ݩ_a4v0ҬqpBKbAh3Y] l8 V\KF6%"!==CA]S۱:I\.d=hM(U5&hG >ڭUF09~XdZiR%Ȓ+Fa&Eޒ
+CdZ^\{T
+;^k.XlK0;,X`(8R!?%~X&|X-Al*5CE[L{b.$k Ҍg,ibj2\ d]0r*ۣSr;| 04.r(֣s:(К+ 51T2DrvLhIi`ykAVXob`R@ivК+6m@s] mWl4*9G*=df">!"TvqS5CD[5ڒ$9XlMJE!ClBi^*Dfbf E#@jOc$lZو+,<5UEnH ><VS,-jQ7rb伪c䬘nS GϊBGI NX TᄖA ר](lb4vA-Ygp;8{< dp:Ț)6# B&̔K)'1ד5*К+CNdZ_G|?__R5;*8Vu:F6t>;0/l=VTCǰvBp.=# W!aױ.ؚ*#P#[y|hʪj\mɲ<~Lʘq1@Ya@2(w޸:RE(=&2 ל\m-%@d2qyNu0V1+y Bi(
+Vv>F'4kOJRt\)UCbN4S_:wd
+M=3Cd6<!o r@[B2 +\
+H9E0焌Ӵ'7#TL!E{| Uq
+P<E@ء H|756Aިa+G*u>RUPPp`g`sǧ5<΅f†B.PW< 210µ9wvNDs874fĠ:H *4UYVԅD97|[)
+X1^ΎUj8p@a
+Pҙ$:E,qX DFDs9_6cZfT JnR-`~Q
+Y>ʀBI=v 2m*!Q]vNMdD9yx@{VB-GlaZ6>
+A
+v yQLު YnhwŨPv
+JmScC1Y8E~
+ 3';RvrGs`˄ǘ=m6>XRmnp*1*arՇź`ܜTI(<-YZMB`6w ? (2 Aı:7j y!sLF ӣEkxd4BtfVr
+נ%GVbϳ`N_ A \4,FPM!zPQ"
+uGih12I,+w z9N9 ej;-Tl@3sqKA]'I(#BMH"e<R ؒB/U42ǧ.dk((|CaS#U&dNjPC
+6`d(I):5MLl⼑P;&A 7@4 U+A|B> +ӘJ(A#\{适C@ `Z
+JmVn:P4 t.(GPSC ϊ܌;X>nT[HsF͐ծqVu4@_EOAF%|kT4XʕV} d3Q gӠ쒛 T!Z%B 6qh
+RmVoOP4 =͸cTt ޸R[øEۄLn&LuFrvVKXL2}b$Q!^C6irp: Zܨ{VPmh~2w\xN|x°M$mĻ=;Šy5Vt\!|STZ) ,$*z~1ΐܦb7Dc큛U3&M lJxm.A1@!yƫ(\-!/yɓq'j0S1j|@O܇%Ocڡxo|IRMO(˸+xt}$XR3v1mS4=4RUu Ǥ:-tv> jߓ 6Q):8-fƥ*gjܦIݜ;.y1iJ`
+-sysXA-׫ HkmTPY+2
+ iRtF$vc$xh%nY7ɆǷc~KLк6Hv},{p_$cZEr /ɓ P6ShT1pɔIS9a|˔{p|2ce6^h[LxFfTJq)h=pkL3%(-&OBI9zG#B\#x oA&e zh؋W%Ma0$_k a^<G+ G|OCߜdP_"~3+2ֽDŽF~ !p~ 3cGhSFK\"\7R3o"N5k5W{U?4yui.I~ !pRb !!d?4D-H?ݧKK 8#%T·遗J;"#b+;"'b*#[;70 E'=I|'=I|'=I|'=I]Wd)@gq;S\/ )|'Vzk05e0&ȞɠmE5 ߲$.E@#/+7`èl=Dϯ9B1' HY!B-g1ŭL}\S/>Zk79ѧ)fBaUQMQh
+04d6#r /*,ܐmPOY1HT^Q
+Z +fgv$Iu0U/ N,O{$t|Dc2$daXVr :.h5^Y̦m<{v
+D!^JM"26"3ՎVP~6 b5 @g>XA|}3`iӢtemY,ggSrPLq](عq/c\h+SaL"R7?cSR)K1*-Fֹ¹zQU4z91.Ѳ*jaUի9A&|'!!S[b^L@Ex[vը0ͭH0BT# |X &&J`T<j#lodBmX1@o/<H5r U䁠(Tv afO T&/JAQxSe3>"bG")!x QOVȪ0 ôMTqzZNHGпEnİ([C5#>긥;;Z7?O}0O_R
+o |!3fS+!ykW !-! CշRKICO ʘz5 ̫BN
+1^[[YoUǐmXl2"43CQs*KR9{#ȝ]:no#TrNKUG8mQgav45+SUAfn?
+(T&)L
+5z,L;~fC;aDGL K
+\/VU̪Xa>Xh^0ӆ ܈<b٩&ւ |ؾ#3 ";.FHmH@!o37bÛ7!P06UUۛh,
+¥39fyQǨoh%v=ߋf {W@Zꃂ#MA{$
+VV_P [*M`,
+u29bcBK 4AtB[ ZEfG~M\"WU 2
++8+:YvOfB'*hJ<,,#
+1K &5ǩ@d2:fbamЬUF[rnJSr4vgˏEP(8ڨTfqx] Uw ψT.a 7n:]Vpxhfc/e60$P*[et%$.*\3QX1a8jE5NQy]re3#Ki|l9mƈ<n9Al:H8\]ģN!2,`rM>
+K.⤊j,Ƥ }6
+ #7׈ׅ%>nRQRC'qcVp$0 g\@TJ-X50٫DЏLN-B@L`n<ľJ`u_- l!SEn1npAy6.sϘ:Njp.tQ+$bͻd4Mq!76A
+7 F~W*&=@eMr &i$sn!`7_c0jnhLDKoľ"D,rC)gd3f䖊i<hOuwb΄Cmn\1s` HU)Bl' ߛc͑WFHjyafŽI~99v0Å+G|,ڜ)I ӘKmlF"d[mVS쫱9!~|[)
+K%'`kIݰ
+1Md8N$J)8W]"t6Es֪@̸ީA& ҀTĠE@#'z,eTxz*>q2mm2$ħjT #TD JfL$|5EZ ;8iPs Fw yQL⪺ Ynhw-gV}h
+mA(TjB1Y86wx/!YN3 ;Wk=m6>XRmnpYD%XX*ibUij2^1&JTׂ>Msx9Dl.+CD=ncZ4Zl-Zǣ%ϝケqvJ`T1Jg6\
+ l[?©4d̎^7j
+lŞQC`>JFqc&,zwk_l3$/]FNBڎA
+LgO>;?}v~ٿOľ'I{ľ'I{ľ'I{ľ'I{ľ'I{ľ'I{ľN} Oľn<83ybQ,J%T+_d%)ExONQ5x`tHg"} z!RXVY'ڕcxe.ؐ &d60fH N,>IZq$pU%Ag%Rd-乱C˞R +#=
+WA.O>OËx<sh!mX5@<T[ Cu __232&L}9&|(… kC.ܞcD0*pZmR$~
+M'T,&c޸/{C"fy,׉sr't'w RƔ,r-|oݵ!Lz+p5=B詶k凗f]Ik.cH'NtvȚi?f.DF'v)!,zt-\Y;xɊMLqgL_'i6dtSlfe?w8=%uw$M
+f>g&ʴ=ٚ]-E(Y,E3O/f1vZ_P6ިI`LFho۶-0ٸ5b6&ᫎBԟ$)'š^ȩ3EB-~^l,>*ye
+~ ?wFh
+Srķke
+4[5vϒktc|>|&tN{ٜϒ- i狉g4gkFߛ3/x`!uUf<>;WU{~)\* `Vi;^$¿.+Lxc?ڱnx;P\id->>[з$<LxzYo#0ufm-HH}fIxiw53cՃ,+JLWGm쭊{g1Gmt#Q5-I}0z)Ajqupp#WfP{QjA9nY-Xjqs~YAZ*r*s2׏NtNb/PZwYunrq 3ӷ_
+znˊMeZra ؇cj/M!XKkMu<Nt71yY;Zs|t/ 9ahM
+endstream
+endobj
+830 0 obj
+<< /Type /Page /Contents 831 0 R /Resources 829 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 833 0 R >>
+endobj
+833 0 obj
+[ 826 0 R 827 0 R 828 0 R ]
+endobj
+826 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.327 312.886 401.283 324.841 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+endobj
+827 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.303 81.788 444.76 93.245 ]/A << /S /GoTo /D (subsection.8.3) >> >>
+endobj
+828 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.628 72.324 213.085 83.781 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+endobj
+832 0 obj
+<< /D [ 830 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+297 0 obj
+<< /D [ 830 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+301 0 obj
+<< /D [ 830 0 R /XYZ 79.37 371.496 null ] >>
endobj
829 0 obj
-[ 813 0 R 814 0 R 820 0 R ]
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F58 386 0 R /F56 384 0 R /F23 379 0 R /F20 382 0 R /F29 375 0 R /F55 383 0 R /F40 391 0 R /F59 393 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-813 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.303 163.448 444.76 174.905 ]/A << /S /GoTo /D (subsection.8.3) >> >>
+840 0 obj
+<< /Filter /FlateDecode /Length 4419 >>
+stream
+xIn$7W
+ƭ|~ q}Ou>\307;J|Qy\S+񩅧Z8Έ8E)ķqN~3}:ͽ(X-a3vEI.G:ojDFkV*aFR"B:˔$Y
+\Рo]QU׌YT13XEg-jZ!.
+/p
+vJ#]j$TxW#_j"UQoW.[9\S׆g$8ꑃŅݪ5\1/ݡ5h {h(3.)_1=r&t%
+[#IWI9qK ¦lQ?҂'T Hc W#lE<*Ҽ*rղ2n596|gn4f q_qnT,%` WmC }R['
+nQ:~=Y+}Ӏvegaf$ ZK3MeZ☤üpr VJZ ̈́Yd!_lLQ̴{0B%! MC=А<vws"o ZM<xc*W8w2%ȻpS{AD&jQ;!HV54_iL9$l{Jb_iAKFvCrÈN4Z,DU *DM(UdPUĭpT
+<J==1o
+͌jnΊir*P1s&58 bݘD^ Uynʥ *#:dEո: vz\V$9މI&h ryVvbbȵxotP2&Nрg0UgAm&ѕ8eNjE ̮ܻqzFq
+4K{pUT/gY@'- вC-A?O+Ҭ b#w:TR2%x Cg::Fv30 :Hۢ%nҟ?v-`m U[ NXIHnFNJ^jm
+ m?9<0e<y^'Á x.Y_i" ̊#cQ8Q^ʦ8p⮩FUUTeO) $.i "lWYZ{HULު)F
+r2WUx@*Vl#7kvw?z`R<ٞ4ɬ#tF"#y~8J Xsģî0$A1Ph#Çu秮ӈT-,Bhbx+2*yd+|}kZV!iHS<u9ԩi"SLRY ~^p,˔=<cfb$Ӡn֮t*;=V ZM=T@?5#BufJ!NC) f_9Y/BY.<3BXN<niS򓃜pz.Sƈ6PUj8Km`pW -Iel=[kܘy{!iXt1АK9B>ҘZ|CNdz{9MKmazTdōT>gz^AnTX9p4ؽ !{uurhK/W*5ڟ!!NrCTџ6VIzPm@( k#]x =TXSy2=r ޗyk߁34dUa;@du*j_wϜֺc]ӌPK0^>&;Ǵ#rrtUGvLpcI_:w-!jyTGv0RS#"F:d~uF] =5K2N{ Z*=2q_0cmnO4k'B/m)yךE ݅=%-5UR5ۦ? %(f:7Vh,J؝QCHᕜs(;}A_UxsY*1Asw>fȳ~ѻ ~+z=EONn8]\eIy˂Xeg¼3`@ai4H~z>|w0uX^C\zcH&JvmW[0#Qގ.T`\
+Y.AZY&ULJ{Bbȓter@V;ilC6 ]Cn-hK~ƋM[FěP'.hYzZ.~r7%"92È#w!А w/FHZ2Y0JEci諢הj![&ňgȁ!mE͟i{E֋G!XM 6X!xE@&nc-6pLG)Eξuo{uZ;V(sKi{(D[{}ې{'me8rn֝uv46>ˢFjQ第h?uUQect
+}`.1G` `Z/zL |޽<4WJy|uV}cǜތh=c 
+W9râ<)1yOP
+eq\
+ɯ5+|' F3 bNT SΝv/I
+#,U Sj Al zd`q
+endstream
endobj
-814 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.628 153.984 213.085 165.441 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+839 0 obj
+<< /Type /Page /Contents 840 0 R /Resources 838 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 843 0 R >>
endobj
-820 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 117.993 97.196 482.208 108.654 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class)>>
+843 0 obj
+[ 835 0 R 834 0 R ]
+endobj
+835 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.069 158.642 241.024 170.597 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+endobj
+834 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 117.993 77.945 314.664 89.402 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/528975)>>
>>
endobj
-827 0 obj
-<< /D [ 825 0 R /XYZ 78.37 808.885 null ] >>
+841 0 obj
+<< /D [ 839 0 R /XYZ 78.37 808.885 null ] >>
endobj
305 0 obj
-<< /D [ 825 0 R /XYZ 79.37 591.896 null ] >>
+<< /D [ 839 0 R /XYZ 79.37 658.542 null ] >>
endobj
309 0 obj
-<< /D [ 825 0 R /XYZ 79.37 418.093 null ] >>
+<< /D [ 839 0 R /XYZ 79.37 484.739 null ] >>
endobj
-824 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F72 438 0 R /F88 828 0 R >> /ProcSet [ /PDF /Text ] >>
+838 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F57 385 0 R /F40 391 0 R /F46 392 0 R /F71 439 0 R /F59 393 0 R /F88 842 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-830 0 obj
+844 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 45 >>
stream
x+T030U(2 8LXX) @`@
endstream
endobj
-831 0 obj
+845 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 53 >>
stream
x+T030U(2 ,-,,r ,,Lt–fF
@@ -3635,1990 +3700,1978 @@ x+T030U(2 ,-,,r ,,Lt–fF
endstream
endobj
-832 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 833 0 R /Filter /FlateDecode /Length 15 >>
+846 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 847 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-833 0 obj
+847 0 obj
<< /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [0.0 50.00064] /Coords [50.00064 50.00064 0.0 50.00064 50.00064 50.00064] /Function << /FunctionType 3 /Domain [0.0 50.00064] /Functions [ << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 1 1] /C1 [1 0.5 0.5] /N 1 >> << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 0.5 0.5] /C1 [1 0.5 0.5] /N 1 >> ] /Bounds [ 25.00032] /Encode [0 1 0 1] >> /Extend [true false] >> >> /ProcSet [ /PDF ] >>
endobj
-834 0 obj
+848 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0.0 0.0 8.50403 8.50403] /XStep 8.50403 /YStep 8.50403 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 79 >>
stream
x=0W Y".RRҿ^( U b1H<ܪY`2rir:"B,Yr߻qB
endstream
endobj
-835 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 836 0 R /Filter /FlateDecode /Length 15 >>
+849 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 850 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-836 0 obj
+850 0 obj
<< /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 100.00128] /Coords [0 0.0 0 100.00128] /Function << /FunctionType 3 /Domain [0.0 100.00128] /Functions [ << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [1 1 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [0.75 0.75 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.75 0.75 1] /C1 [0.5 0.5 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.5 0.5 1] /C1 [0.5 0.5 1] /N 1 >> ] /Bounds [ 25.00032 50.00064 75.00096] /Encode [0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >>
endobj
-841 0 obj
-<< /Filter /FlateDecode /Length 4237 >>
-stream
-x\K ϯ?в`0^`s2@=$g'RU?`VIE~")$x ?'eoN VZ냀|'v.0v
-ƭ}|ȹ~˹xs+JK/%'TJ sZGZ"!=#rЉ*ұ]ӡKm)e.qxPiBzH )]>|cjiHS"G|4a2;
-ϔ:R2cHɤVbBy&n#IrPy ~LIe RN7&c ʶ
-vC\k&xgmPrܲG:)Xia s:$T:?Hep3q$xklkPa{bR|ԗ*+t챷=QxjS'Z3a:o;@Q:TWNe SJ%UY< ߬ W]R0c @[y ph=|Tg%6y,Zm%PvZ^ ˓bb3 ϶*D\ZviiWtE'ovn[103V܀GIuV<I+GuVe](u;eֆ 0. llPg
-
-@% _"mڌDtyc#0"g ;D 9Rqb,<Uo e=OImn~y"UvIi$x¤iǣp1;I:–!G֑vnHN&贤juEG^˷I7TWaiO~E\ͭZkcKALc{ ޑྭWZ@PErO%I_t(8bsrNzq!ꮹnSFC %CllGDͥ<*xBe||S(~
-\uE%)C{F 7 rls 9ZxRڬȚnԲL%b=E ;K]_Z M) T
-
-ܞL "*,?E((C_L} wk8oaq6\L'`Q+{H]0~nEc*4*l2)%+pMΝ@+o ɻXyN28҂<SfM *(|W5Bg’?p`|~U:&Kpt'Fh2.uNW_gRNcoMvʦiT60{xٽapq5Ckx-I.\7grxXnj.8ƌ6̆-
-u<&EHVf?wuP:̀'2 HQ] %ۯ,?fS"[EL
-~&O@M"& T
- rReQ;\=,r`26-A1^i;?!1B
-DT1؊<$ a{`3(|i7;Cwd~ϛ_5gژͼ7 i^=P3Q:40f\-AwZDT؞ڲb8!Uv=S{Vr\ lL]<7
-rCl:ҿ\sqou
-W)wgr}V%nB2tvV=McU
- vER,;sqU6\hD6^UG8OhQVMeOj+w_}uQ'KviH%:(u
-sYkJ#V}xBǃ\uWS=ıDCď)>yUwU]*)f=W%"ӡCX#Sw[J+ѐ(v){2va>,˕s nALL|AWZՂecv*cJfOZ_魮u|t{A;B`I
+855 0 obj
+<< /Filter /FlateDecode /Length 4669 >>
+stream
+x]Yo~ׯ?04x<͓yXCd@流7hÐGMU%:4Owoqk9} :8"d4#T=P)R#)../;~bOm5̈́ PnF(s
+]h\3KP|#=F= K^5qwy>RosE> X3ޅ>p{hsz eo!iI5 &㏁x Lfc!K)fT+,V/f^=j@:A'i])Z20T(|:>(0RP_<@&tG1bI4(SwW)"BȞ҉weRI MbO"֏TyNB2ֹx8yѦn4txb@ݓiZ]zX-V5LCh7=[4X5ަz?Ta*;Cu}([PʞɪA^4 Z㹖Ȧ5[hѾK|sT:ihg#Qq'* l% Ρ70VS]%uWZ{PU68dLU9X]Jm
+-0KUSs5h$͋%&[(cPye _f=ׁkUw*H
+<P4r.#ŏ39V "Į_^+e Ջ9[_G+?"t}4$<}y$MARK%{kœ[Tq~kHo mί Mv ! ~*&OmĄ
+Sm&
+]}>BB"8VDS OD`H'l)<toCRJ!IOߟ*>ӳ/L,qEiVhW \z<͝*e?W܀$ſ_)OQ/?o?sz=yDΤ!Ь}?z|1G
+|Vz=
+`:!l3 ;_7Z~0EV),JOMwjJ6{FKy@tZ<M}yZA$<VN,s&{jS;qmy~JԊ? Ol"t?1@-?C0fK5O|sbK|PU], |ϕ24SQ5Zq8lz_K^`d
+  6يrۨO,gYMg7k%IJg9y<DjO/o>1?88eLe¶߆^iL4R>8ԍ?<<(>1Mq,~sҿK-w?1l%Ӿʞkf 1̮;1
+
+Tl=JGcFE+뛧ґ)V"IUͮ#
+הo.izmTsN~x #1,BSrRÀU>5Cwb;3O7ϏV'˔6o8ƯN 1
+^Bd18En&Pi7iUڭg*;i6$H>H~bT >㾳yjEc5Xi`6
+{I4Hl+c*J7sqګN{Uτ/.=|BN m(npRua.#NmfB%lG*b-&uZToݱ88]zl
+n߁ńɛX G-J«",[z^KGR `XbN.m<Lʭ@NtB؞vk0&x'd.϶bosn5<!x(r״&۹ PXC:<CTz/˶rC.Kqf[w'KY+c&$w.u܅H*d%!2FNOwv={R}^wze^}]Lv&vn:\wṕbՎdQ^:R:eR{Hb$rvLħR͵ghǚ\ ӌR\Z+].oS<;ZbH/ Yg~J_BLNL7?xZ숧/#AlG;?}YrN֥:r#H>__*~/>VU}<qfI',J.9D1޶V[rXA?du|RZ%I zҶo,taX> V/1BAc\$S,q妫/mx]%Wk]{\h4׽.h1lU%hi"m(;캼?-..pV/&yK\~K
+
endstream
endobj
-840 0 obj
-<< /Type /Page /Contents 841 0 R /Resources 839 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 843 0 R >>
-endobj
-843 0 obj
-[ 821 0 R 822 0 R 823 0 R 837 0 R 838 0 R ]
-endobj
-821 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.069 727.686 241.024 739.641 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+854 0 obj
+<< /Type /Page /Contents 855 0 R /Resources 853 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 857 0 R >>
endobj
-822 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 393.199 673.888 415.675 685.843 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+857 0 obj
+[ 836 0 R 837 0 R 851 0 R 852 0 R ]
endobj
-823 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.088 673.888 444.043 685.843 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+836 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 393.199 721.708 415.675 733.664 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
837 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.299 69.726 469.523 81.183 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.088 721.708 444.043 733.664 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-838 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.227 69.726 490.684 81.183 ]/A << /S /GoTo /D (section.5) >> >>
+851 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.299 69.212 469.523 80.669 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-842 0 obj
-<< /D [ 840 0 R /XYZ 78.37 808.885 null ] >>
+852 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.227 69.212 490.684 80.669 ]/A << /S /GoTo /D (section.5) >> >>
+endobj
+856 0 obj
+<< /D [ 854 0 R /XYZ 78.37 808.885 null ] >>
endobj
313 0 obj
-<< /D [ 840 0 R /XYZ 79.37 605.131 null ] >>
+<< /D [ 854 0 R /XYZ 79.37 652.951 null ] >>
endobj
317 0 obj
-<< /D [ 840 0 R /XYZ 79.37 565.845 null ] >>
+<< /D [ 854 0 R /XYZ 79.37 613.666 null ] >>
endobj
-839 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F69 402 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F50 392 0 R /F66 388 0 R /F59 393 0 R >> /XObject << /Fm1 832 0 R /Fm2 835 0 R >> /ProcSet [ /PDF /Text ] >>
+853 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F68 402 0 R /F58 386 0 R /F50 374 0 R /F40 391 0 R /F46 392 0 R /F65 388 0 R /F59 393 0 R >> /XObject << /Fm1 846 0 R /Fm2 849 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-848 0 obj
-<< /Filter /FlateDecode /Length 3552 >>
-stream
-xڵ\ێ7}(Y`wڀiyHfcXO ԽTiJ#R"%vy;-_>b*rx~{^363nтcq _OK}&uC犁q_ &9?Q7a%S㟩b|P]p%53cJ m,~kmWʕW?SYi@0
-DdJR} ~tL͸ HBS(]w mw ^kHnFlR2L^OIm2 )I8%B3]1@"_It&Xzm #"d0 w]Vn4`BNc!8Us)))ÿDϙN*XN O׳mst7l3tbڦŀ
-paM{iyJ.;KM'|7,Er@k-lZ(t%`KuנS3Ф)d .5Fi=y-ߴc~K4)5=<kAC8Rd )Nפ;:դ'BcJ\M A̹3KQ gwU8Dsn$q2(ȁb,3A OcdmVHb~aQ̒
-UeJ"93;YaxȍsI#hԼ5 b֙;(.ۙ<H<r6RMOH%覿yul:͟unl%$Ѫ @YaiA9IS} ؤN# a Gh!j{jZ}xzCRkx>1]}u=Rd/.2ɢYa8:E_BukғnJ58z2$t4sWMab+:$>CIac6>$1wʬ]"e-(*a} M ! I$?#DǿaiI.ٸ{"=,
-pV '7oqe A]OMY`®OEU6M#뛵qu,Io`7`lkJc0~sv
-InhdL-<Fün nְ~hu o+q2cơ
-U5mUG(H΄K̂SznA=lI1LK m/Ai}x;4,01s5rLsC+[yn+10X~xw{)u6wo/U|k+>|OYQ}-pGL_023L- 1J1a>X&, ÝtmYzm:}w6
-q~m"Қ6fnnWLJD]L}]CߧL +E `i2q&%m+7]`Az aYWrK`nB^CK}͵:LQvǭ!'vsU
-:kG
-KVXa"%Ls"%fjI}̳2/wXR.s:d\Ф4ˇ;e!h}FÝqw!SC6W)ضnF{F=xOpG*+)-v8Xiǰ]x,Nʹc%,W(DpF(Bҙu`n"-߽?C2חm4Ip cP~CFm<af fj%S:; gtҺ=ߡ1%+RSk>^r0eŦoM;B:x7j*uR]UKdzkWECZ;@FAiT.ҫow%
-14=t7ښ2g:,q'
-Np)'2eMqt5-q.I0LrC긹:5 4kB52,Ao%nP`|׶ae wjPa^@~C W _aqg ?E2t7ploDq1_O·vt/'ZUɷWCϸ>:[քapipҎdĸi9(#kZ%~PR;J2 .r8E!TZK @FJ
+862 0 obj
+<< /Filter /FlateDecode /Length 3080 >>
+stream
+xڵ[K ϯ?вD`iY{X8gu!d]=R"HGN_&9{Û R"Z_&wJH//RZRkRӯ߷*RV [D) .`BvQl*<˓Ve8Ws I8[UMU)-V&)Dz8dFNFӨd1ې@& |Juu([&?h)6h
+?!:%WcOX:wޒv,ح堚.9 7 }[pʎs C<PIP-Ǵ)suk4&>iB˚\sGĢe%H[趶J&~⤱al 6zەE7E!H<t\ GbY`dNh.:`m}eD?Z_k{AD\`؆ifnNg#xZk1[78g|a#rX󚵵n㣢P1C @u#
+>RM<fk( a1e|;FjmWczu1Ѷ
+pjgƹ'}&
+Bsm^;hasI
+gܮukAA/\KK-dݒ>x:n-g$֒m#!ӖH1~4>s<<,gܔQ}{W#DZf-d?l>Jٻ"U">POEܸG9#bpӧ?'nJ1/2oۛ|ӧ0M_KSdXs^#kyDäD+A'hO |
+BcΦ:
+rњUR*F+|JY] zU*-=}4=שHyzPT>%Zqېn3(WaZ0 @wu\a
+!\P8k\!hŞO3^r*i;/s餥K\+ݯ_
+{,l@9 |:tfޫ`B|躞퇣
+J
+D4.[^ln4&n>n8k=ԋhQ$%0`L%(;{y^<G9gBX:&s;%uKL8}1#[:L`Mk,l֛kkv92Bf j:821Ȕ2;_d
+gTXOP"󢭈[.]+?倫czN3_RLtN??|G$3BS2gQ4o5FD3kkׂf|ih٫1XzPGx2eiq#Y+N:#*uv.Nj+ˡ@S fH21
+?s"׿* z~
+=7ZޘO6>z5j0f+P z \47Z{[,^ ,`
endstream
endobj
-847 0 obj
-<< /Type /Page /Contents 848 0 R /Resources 846 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 850 0 R >>
+861 0 obj
+<< /Type /Page /Contents 862 0 R /Resources 860 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R /Annots 864 0 R >>
endobj
-850 0 obj
-[ 844 0 R 845 0 R ]
+864 0 obj
+[ 858 0 R 859 0 R ]
endobj
-844 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.259 143.155 462.215 154.034 ]/A << /S /GoTo /D (section.13) >> >>
+858 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.259 198.244 462.215 209.123 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-845 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.166 143.155 487.121 154.034 ]/A << /S /GoTo /D (section.13) >> >>
+859 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.166 198.244 487.121 209.123 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-849 0 obj
-<< /D [ 847 0 R /XYZ 78.37 808.885 null ] >>
+863 0 obj
+<< /D [ 861 0 R /XYZ 78.37 808.885 null ] >>
endobj
321 0 obj
-<< /D [ 847 0 R /XYZ 79.37 714.242 null ] >>
+<< /D [ 861 0 R /XYZ 79.37 771.024 null ] >>
endobj
325 0 obj
-<< /D [ 847 0 R /XYZ 79.37 180.575 null ] >>
+<< /D [ 861 0 R /XYZ 79.37 235.663 null ] >>
endobj
-846 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F69 402 0 R /F56 384 0 R /F55 383 0 R /F67 389 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+860 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F66 389 0 R /F58 386 0 R /F40 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-853 0 obj
-<< /Filter /FlateDecode /Length 3469 >>
-stream
-xڽn,񮯘crMw@P,!f 9$/;S\,==hdْ^Y_~xWEt?>uQhN /ORZ)y{~
-62
-*\PvPxᡉW'RJa¿?VByŭU$v]#yx4TsBOc l8PUeo+"1/p׮
-׼X,#1+X+$9`gKu,Ϡr)sq>s|&ZVx{9q< hZ}I0}wš.=QO
-Sjӻӧn`J)c{UM='zʕz"Ε1_SyRe^o]Ѱ[0hiDvmS(8@,OāPC@t]Ne=;y~[9C[h3C9\C-E燜B\R {/=r
-IarYW&-vya4s!̠,@]A[KeB^^1Y|KT.# OE 0og}e7s HH
-)M )\_ a
-1}_|>2WsnFRGӣHU X;`7j%?KU?\\Gr;?E%{/6r}i(Y-О
-(n%bWea!~8}av݈q;gnՊR=qPs.7(T jEPog4$ k 1bcqv"*3ϸqġxzRG yD
-|e,BjJ;Cgz\y%3{,R /ٽ!0vkdƿ> %
-G nsݭt=*[lV&tgX,+0Iq0qsOM!]Aot
-j9d_HD#@{%stS|F9r~tKe cW`]Ex51jEu.Ԇ3{=kBk85iOI:&#UptKMBTPdfkx;¤ZbXsIU12oG1ut#Wu:YwŜ
-QF?=ǯl ۷钡Qu ?/۴~/'² s,jߗ=|>z6ݕ k{~dJVI- C+s|e[7 X2kr̬Z`̇xI^ċ]_I&0j6ACڝLj05Or'ΌIC -.q"yё '~$TX,Zik7~Ġo9G H=KtdKB¡իߋwq
-V
-+JaovOp 7uF3u}s&կ6ө$u|}ԗs[brv)hic&8TYuʞn~P3 LJx]UJ,bvVxDJoG7u=JgVkjiA<m_OǖF~ t\=̧q=K>qm&f ʛ=,$+ V}?.`jaHgN|9qJb*3(?M_EW^>_Lcջr5?
+867 0 obj
+<< /Filter /FlateDecode /Length 3337 >>
+stream
+xڽ1Ph lppv`]|Y(Գv-X7pf.Mߞ>݌] VZ|Ǔ
+k%>Y#ckCYɔ_I~-",S*xG{*D'*D/IK}/4' e~_q‰5۠2ZڈC`e#h; bB<=CAc4Н TU{9 _1b%X#(y-kǦ N-ib Wֶ`ղze2?,;+8`<^0ͫ/HfF~^[0de6i:|̷;2P74,R )5?E}+Aɲ ;9-o)tQRD)g9i]ͺ&7i|_Hl.r JLx@ˍ αAuf _%܊hJRTw\ *0Q)R35k|Fɪ 7w_-dn%)#&ɚXJ"Ԑ}qT^üQ#4's˾ZfXIb>Ƨ<g/ VJ!Z2p(!mZ4TSfdQ*LLԖ/߉=*{5Zt}0Y=h~Vs yJb1o?_͌:L:$F6G #Nc 3zjS27Rz JAZuj[) Q,~$fP(˂#yΧ$
+Eӓ|(=G]WYNV(U-ZsyF+m0B1`x<w,p7v?$(`zJDuɂ،l&Ji%z˃õOh{w4.tфa M
+dC۵>='\ cr-8gƴ4'$VѤ-3*dLIeo=L=}t~"Ēd;kϳ9ZifԵE^~PZpX˼7ۥu'>#kEOC,\a黶TĜz`TL~SsrJ @6+w&܉@[I!I͇}dj}1ږVE북BmPf\uܳSUdj|f`R6ez%1gLq#8gCuU 9`srOϺx>̹}\:(a_~hIFʟcqyYuh qE]3x]Wӟx跒yj/O5abkOokd }]27Sd{(Xt5m%_dl[f]X,0
+1AGH.@~{W:({ԴP@
endstream
endobj
-852 0 obj
-<< /Type /Page /Contents 853 0 R /Resources 851 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R >>
+866 0 obj
+<< /Type /Page /Contents 867 0 R /Resources 865 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
-854 0 obj
-<< /D [ 852 0 R /XYZ 78.37 808.885 null ] >>
+868 0 obj
+<< /D [ 866 0 R /XYZ 78.37 808.885 null ] >>
endobj
-855 0 obj
-<< /D [ 852 0 R /XYZ 227.982 267.704 null ] >>
+869 0 obj
+<< /D [ 866 0 R /XYZ 227.982 293.107 null ] >>
endobj
-856 0 obj
-<< /D [ 852 0 R /XYZ 233.651 255.749 null ] >>
+870 0 obj
+<< /D [ 866 0 R /XYZ 233.651 281.152 null ] >>
endobj
-857 0 obj
-<< /D [ 852 0 R /XYZ 196.679 222.946 null ] >>
+871 0 obj
+<< /D [ 866 0 R /XYZ 196.679 248.35 null ] >>
endobj
-858 0 obj
-<< /D [ 852 0 R /XYZ 196.679 202.752 null ] >>
+872 0 obj
+<< /D [ 866 0 R /XYZ 196.679 228.155 null ] >>
endobj
329 0 obj
-<< /D [ 852 0 R /XYZ 79.37 156.042 null ] >>
+<< /D [ 866 0 R /XYZ 79.37 181.678 null ] >>
endobj
-851 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F67 389 0 R /F20 376 0 R /F69 402 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+865 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F55 383 0 R /F66 389 0 R /F52 376 0 R /F68 402 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-861 0 obj
-<< /Filter /FlateDecode /Length 19584 >>
-stream
-x}M%9rݾ[j*MBS] ;I #/܂g<A}v[1S'2Hf$y˿\_ڭeΑ^JR]ٽ?ux]_Wv]?ǯ/ ?]o%0~ζ eϗ]d8\Dy eGV6?lg:lס5} IڽBw~$>ֲbÚ~x/&n=&61ǏC7ַ!vg? 7-}_gB?r7_ϟ)~=] a\TzѴ/փqX3q}s}Ş颟rEQ/H!d?}vr2O>ݛor/9^ϗ֩U<w||hoŷ\au+%~dE--`ZU>GV5jZ]Z?lW֏ra>JJ꺵ab])?
-i~,_nW;?!OƳ秗_ .z %QO?e]}yu4]"uBzle
-֔TS>~e0[/԰kcaSwOsj.]Bu7<^B& &nrg^UPs]2w+'D h4|ϊ&F}W-9h]4 yw kZ>ݫ&W@_1^=?ӫ/et՜s~J4t(ړ)vګyzw.p7I
- ?X?z4)҇#3QI@ɧGa:m!}QoxJ?$zp噁 <z4\'ZzoA嘡O 5CYܳM=[%jF)#-ێOi)j8ǁ=;|b'ߚ>=V֩ǵ'LN>A6wkAc֡g5sٿ;|$f_MAѭC'ح_o>7~&j}MJgn"6gS"_osM9 g%s#O ԧf}oj@>">w=!\Y/.J%Ϲ[&}"rÆEdzwyYV."/EdzyYV."/EdzwyYV."/Ed5zwyYV-"z<Zzr6pĤSu]=_}5&yu]phg>}]WEdg絯⍽4zɸ\Wo4RT'ǥʍϱ$v]&ps_%Ӥ\XH<֮X&kY6/o͈Yd(
-d2 mJݗ$Qf尡9N4VÃR J@'%C3xLĪf2@a@?dR:UJ8.>*H;Rr&&A9SVmˌh1gdWN|s#JFơ`Nq0{xEKڈ4$~N2
-dYh[2)w-E+ 5 ;=+M.EJw4oyՇT54ye8ٗ
-Wg
-r_#IۅjpW^{&AHl Fe&a*?#+=v9PpKp40wIO>;zx(BU)!d
-]PCV6Eī&R
-^utM4h *ȱkԩ[q&bQ3 yq4ZmGԦ|s^ڠaڀ
-kBJyr:X]XP Wé@= $D$ϳSHkMt)JW@4W2` '?DnGbN(ato-UJ:P"6[ ef=+I(P=Rn0HѶUWLSdZ+E0ɔh4/3TX*]۔Bd<#?z ´xѕҌRHR6
-Q"֝[<M@Qf1:W*eLg<@yD~*uW^k$^)1NȪ W¶qiDiK>hW6cbFh3CGr
-5p not'XmJ-ӥDlxĪ4X+3BPbW%гJjӂفg?պŬX`
-
-!#UxFfpdalk.%b&V?T3xl MW@By~u_蹈>"
-ғgDÎWYT
-yT
+876 0 obj
+<< /Filter /FlateDecode /Length 19536 >>
+stream
+xM-7:ׯCN~@ລR O
+>@XW#A2+ȽGRɲ_7T]7rcm&̌${wo?~?|k}#nCWv\㾿.???\Wr7ǏLo3woS_b+GϮEg=+K׈Ku~3ݵ$qp4|."1ms×/QW_~=zO:ʍ(]YUҧVJ̪l3ڮ>ϬR?rw_?mWL𹪁zH]!C]PoO=1~k_gJcݓ?;ώ_~/~|ZMuo{v藽W{ͅߗX<D`^a5߅xDni.]޵~{+h.'S'O8ؠ̛jcYKrAPлU܈?>-Hѽ(`M=D{st-S-_t/{5ܫWzu R>ի9^hP{Kyv8o󛷜=7o4ߨ{L.ӑgs߈~p/<4~ai!}Q3-G6k;gϕHxQ5쿏z>KuYiXǃ5ey
+98L3JCmǁ45{q@ܧ~qQ_ӗڇ^{[Otk4ޭ=Wu( )Uh?>>{
+ ֡)v37gz7Q4gD[Wn"6WS~:Wp>N7s:Ϳ!J&FO!Ԁry~z}C<r辸(>!>DsCd!2!Z}yY}Y>|V>D^V=DV"/"ՇÇ꣇jCeCd!Z}yY}Y>|>yB4ջ'G7U_!M sڷu_7L^E\_e׾wv
+} eL5Fq:==._OsCg5`[2| V'yJ urd| fu PnB=&\y@j<Y۴SU
+~򠡆!tG<)H2\}(L<`(Q@ïQC
+r_#IۅjpWQ{&AHl Fe&a*?#-;)vAʳ
+=h>a< >;Z<Znr*2v_.`!+"J) ?utM4h *ȱkԩ[q&bQ3 yq4Zm#j9NYmpư`m@-Yˍ{!ēXQNu*0y8DPѐyv^t
+ynzU_GgP#^ɀܴĜP l [L5tDlx*m{ V$0P3=z`~S12Ҷjdli&SѼDPIQr.ئ0')M)L'])(t_!lSj%bݹt9ecX,1sŬRtGR%zr?9f Y
+]"n7(mGMXfLTlMWBy}LBNίئ2]
+,JĆMJ~Ɉո0ڟIM,4] )cUUR<-<xU.b*
+ A=Pg-oƻ`Xh3SǪD5qT<@%vR̊
+ W ጳyJ iՇ\Z֥2pC:¸Pg`~+<`^S*.l %b|h/OM7{.S H(ا^&TZrԪѪմVM+4¦M*F*o8ljbByD~*PpS?a{j@yT
eLg
-s@<e#uoѹ`V(0pP&v8{{PtF+zrȦ2&!ldZK,&2<3w:aOe\Ӽ)Rө
-_5\0{ 5RV?'%[uoZpW- 0D~ji o-(:u^= sm{ Ba;V)=Z ͈US;R@([z=G.0jMkh r<Qyhwe jVKr%$Nw3aK2]6/<cJ Glx+iLâW0ﳡtd(E, Uq.5^k% GVcQFso4YWci6 r¾i99Q@fgL##f 8A ?hV+iBY$#9ǾʵߍF zC ԭf>gzn4勿XzDC  E& 9*6Y6F_pľzDR/6Ӛiڲ rJ Z Ƶ`rl%B4JyB1JBDr4[{~?ؚ;@d _6!{W(%GS. *,##`\xA %0]0>i,g8q\@7.jWn0?ws0ʆ]kɘ@crVIIVN>lT.` ⵇTN{-3RBHRP.#07;} z/Wuu],C+45Τ[.W9R:`fN{MDaL¯je1W.K&QG69O}X֋gնYV-ĵ\+hw!UǂųC3l Q iR 0bgȜJPr^?S&"ۼRQ-S[h8?6 aOK4߳Tc-l]8P4h2-qYwwmK0XI Fsij;cJÔJĻ\p޽ ř/φSS)U, Uː'O?!2?h(]\CZ'k
-f(jEy|wr.ll'B<JG.J!/HBg*3(v4HKϙ_qh'MtxkW]n4ʵt0rxq+lhIGh(רtGm/[xHKx<p_Yۼz.
-+Dʔu
-W[(} 5^kďW/fwBJESOQ׿q"oejAM#̩
-2B&/#@S_,xsЍA%YXoC|z,kHX:y./q Wyl2\QH
-׍k;߂/5*/W|9CpUBoږ y.:oܜtMe,
-4xE ]BPy`
-q~h_Og}_/jW&fOihP7B:y>ш볖׉ց0P2p?Hw4yyEQ\$WWiW7+ ƬKd
-6;4Ev*h K_yxN] >5D(9~9FY Fzg8chh-Nw^(v(t
-h_浳#);z=%姈S//w{~ZITtKi"l24kG^Q[dkNNgnHE({WKdFF.b%=6#ѸHoQrRD\+#}^d?3]FSFsgP#TH*s g;JDλNx
-4[f"2蹷le <BޯВ l 1uNVArIhXƵ`M!<>@6An;)OZ_C
-`K1u h*H n A/ BJBk:2[G%UE!Ni!RB6J4Tl: <xӳjt.-Ru VA-0*qg|e
-2k9j;ܖSX«\ [ 2 V{/FɋX/PւXQa)'&m-qhyւ))gG-ȦC8`K'Jcp_
- Zna1bM)m%P-X oHYԡ(f+A6J"55ǷÑ;ha :4TL:y$S.-R V2('\CKRk<!bQB Z2$l! H.Flwz" !;BދA6-&zwXP}1e ưw
-h]J8xg9ⱪB1Sa-{%h6ڿw[t([`Qα "u /uiarB1[сRw[Ap +(޹J35T-cSE^ؙA
-%5ي42 `,m-簦RqFix+TٴoVx2 ’NJ
-l95EHxpiQk6h
-q*Qб"5}zЫwp|_%PuXQa(mqG9$`l+f+<-%
-a [p eůB2=^9t))
-@x *C MhTA"XfrR Nbh4J: ~_(aG()
-NJjN&2 pu[S
-RWɄB 
-Q;
-ȔCbhTA+"[|$`
-._BB 71N2P#޽
-!U8KP
-@(wS˫6δ*+dC!Sa GE)ҝJa葱@>1ULڿ0AvkZRA#T^`=p, ԣY1B=՗T
-`*=Jl[ \@1@QTO}Gb<o, ʃO7 &<7dZ9y:l{e(SrTt٬ o9c"XʡFBGwqmk#׭wAu*Xw3ɦC1[aMGxf<`)kϤk fK9#cDFK>╋/@ 4
-4S CĒ*6`KQx袧(]=T^MTzG eSgUeP? xs)}BԃW ,D*W "8ڰx
-g&VnFG~"d?ZVbmgA
-.PUh3i`[
-bzpԯlh^<
-BZT( - [ 1+?
-kB]%
-~b(=u4jH-~" 3,tԨ Ϧ~00F#r8 ZRcYG{M&Tz'
-H(*MOI3p}c9-G?*Rk8J`TpH#M?"Q=Ò
-Dΐm͌BI ^oK)=/}B9Y&R.;737dF~7n炙4x|/HIOlSi`jQU޲ SQR, 禮P6@>u͖sLupq|$J>)6`A U-}f|b*XYAS)AʅwSsӓڰc{B'^c2W~u7]C[FJ-L556Hmr(MƆ˻`Pq:Fzw__^pCz~ޮBX_h]LP)AKrBP3ıԋqt
--Hk}ViV.u"ou` 3ԩ2Ӏ&.Q>)2oYept VSEYP
-dAҝ"y,;<\2gP N!qk!0#ħpjhv
-<7knh*\WQf+^BdD^eEt
-duAҝ׀+~*J8UطZ$~<qUkL_<hM3CBp<6Q>3<_cQ!#2ԨBï'˓^Ѹ(o
-ĒÁ uxwcpeTȳ 5Ek!Ȩ+ F4:4݆:4{BV5\*݂įQ8Wo*jܤ;=+oU?רodb
-qƬl9# EEVaQHc 5Iwĺ+s_zFj( /љ&2VJ he 4`έaꠐ 5IwFzrW޽,咮9|7ү`fR2<]d+ͤqWnwOi˅oK0KKQ<XV2=|ZZxL&3`&M##uY6'ND['6A j* ã18cL2vJ$P?َ0wMڷ[ʻy.P 5E k!">OIʀF6`wi}o9/\Fl_6jBV:_ <lI+U 5Iw{s_.9(^iA-T7(Uh%`ӹըhTj!YrRB=O)?k
-'fs $h8T^xr#fp-ئX&坰O »R C<$w*fZKEi݊ fwXTR;b=R% $]Xڐnmb)(7rv^BФ)}UFĝ<wGFPl:4n
-}S<XޙN1+1NXTIp('Lw}I`n6PJ X\g~%&X:۝OAו  hP `Jj
-+-7Ik&lKTr&)}Ub䯏^$-#R`Ve
- M(z(,#&ۄBͤ<>PRO8-2 diAJfw@Ǒ.@ˤ(m"w>UGfe_IzlC⏄7_1+2]
-,J V:ZZx %.˘&PȫVr9-Ǘ_w+ A^~^h*/?Op]_ !mϱr""[f<\#~3Ȳ?|/?w ?Q)
-y7? w|awr.<4}"d|:\O-fJgbӏcF3fwNgo;޽oqTc Oί
-?Pp9y=υ/" _—_]OůSۑ
-v|m\o§ږx۹T%N+(Ymm=^[g8~ &G[+=gW['])w_31_p_>ײL#x-^>ײ_ˆh懭p#3P(W}S~b|6c\.λEߏ$U.ݙĆ6W׾wBB3Ȉ?=|K7Ɵ$o5z\-2uTܘsݻoU>yO ҏ{kxk(|&hOy•\}#P)Q^r;y`'ȀN!;U4G4Wu"ou`M#T)q{7ݸk8,CwZ]7gaZߙWA0h!!= &_I :ޛI[,r>A(Lb]TG# .V@ZxG?EL"=]2yn`!ΆZkʳvT~Q5LZ.T{G+o c9{g bYf+p)$N(C ;d軭-]FtP܂ݥyB"ǔW~1.F:P^t
-~wݙ<7Ζ-Cm";]Mkm ?g$.w=@ KB'.BGY]!_Ȏ@]*':A4F^{?:_ bzKu[z^@oF1f/#]{>X P;V
-h6D.AK#VN 2O=C{n~7`ec\z`@'L`xC1xpLBT#2V/=]A[TAz͇b脠E\`ے5|>1
-b_fBG7W{<(=u8~+"F=J`C-^y9Pr`M_dG"Oy F^ڽ.UA0r D|]h13(duYWOpDy"a hJa^!F%iuhR.aV.LWYG8ep}9m9-mδ0БoBjFc7f
-iL1@!<>Dz$GCr;a>QY?tvŌJh8G>gR'@G$RCbYuV>%Mt#:{TW#s?k7tI 70ˁ^T uQk2(X sѮe.T[;–LHuϕ< p
-t
-MEE𾉕}"9˻`X3Sx>
-(S ("=] {87Nn28yx+2N 9cDC/l5"Bv\ 0uoѸL|6K mĪ.-ZȧrE
-dy97,.ζ-CK؎P4H
-$z/loX.)-8
-[d&#+W@x ۭ-fG}vV :S=w!r7zGAFSGl4~Q1NA =ߓd?kBzx!nԂwXm\[)crȶ, Ѐ58 P9 GMqh!,:q, ñ>݅ Y'u~+,ܿe8rB|b+АӍ:U EYVѼeB\{S74ZK4b^w$k‹aa۸Oxm s;O3L'~p:h:-CCm"z |j.TS~oiHqwGJUHRESp/ƙC?|D
-6Z;4&ڂEO.Q
-0cH&9$6KWR(r]]l"Ԥ,]t*p
-dR\04|c]HZK>:U
-T %:_np3)5HyO{ :~qy~ K^6 |䴋 侎w\lK
-hY{G
-lՐܐyw]>]Q1ә#bݵ̈́ŋ`L4wsL6 A 1D>B0j+~l&|Vo-c&`(.4<\ Y1iȊ 3cbقW?:@b̯]g=hRMzqa&ggx`"=#MF5z̟aҳ+Y}q1D' ]U!0AȤʀJtWHqjR=R $nǝdˊzI\͖ kd.̓p de@%O&S֦3 l"R
-a*\dd91cTHVflwY)WbZ<3-ʕ>{jCSƤGDi|tNnK0 <d;PF3M.-dL'JVm$#f
-i?fLZ)AQvI)겜F\\Ƈ"FF
-Zqha,-5)3茧 晱y*gΚЋ% 3apCelBTVـpKQqJQrD߿yА"!PGVȣ DC CxE ]B̻Բ 8ήɷm"4Q35,uvxhɃgi/ʳ ! ;56 U!+P` \XZwggNP1;[1[#%`ûۏ:^^++ Y !;>t#Ȝ`3/W:}tFydFy
-G(c/;Pc̫MѲ.ꆸhAl!\%=$Pѐԡ__z~K
-c5yroz~S 4\"%jQ klWivŗwprZfC8O\n-5ꆸF jm51`e=UPݐrB7ɔg#UvxẅM9~.+ŒnKݠx [QzkW!?o,~_y:SKnu0αˀ !1.ZPcJ Ҟ:tH]wg|H`9w.`oMfC
-ۗ&5ݻnB՘X Ü {Kݳv_H2{ɵގ ىվ0;}}!?W{OnjgvZyG|z*8{6^5y;۸>,imo)S {~ϲ~|wśc~\7}[NU<>v|Gު0^Vϩw=97n^h
+s@<ec2sP`3Mq
+zlibByF}X|i͝Nw@uoy3R(f2SDlxbj(V0Y3Cg;sQX^.CV6TX Xg'Цb O\r[7QT)j|V",SyʹQ*6Vi93?3e,#lI0"m~KMʤ2!,.L@[9.SCS/f3P*6M b9LvS(m.I rD6|91Q'}71^6ą&ʐ3eCPJw\nH]Pc)ha*Znݛ}ӂ#?k%a_0SvȫZZg֒-FԹ\0eHPӵ ݣ`
+HAhimhF4.e
+_oHIL}YgC)$g쪕[U2o-$Ng3aK2]>/<cJ Glx+iLEIC` &gC PnXB7]NI+WEp-}QXɚ@}_i`5Z*6˅V4w4sJw\a(ez ݳ`4]]yQ+ǾePHα?e;j4)Eԭf>gzn4嫴 zDC  E& 9*6ylp+ >H}׉06R/6Ӛiڲ rJ4Z Ƶ`rl%B4JyB1JBDr4[{~?ؚ;@d _6!{W(%GS. *,##`\xAݐF]0>i,g8q\@7.?2ey->(f:D1uSY%%m`X9D Spi&􋊟=U 8}x6ϘjpJy,
+!1JATfȟL(׫gش_E/se2m<(jMSL
+r+f]N\(1 *Q^VnpXb/4A*6?jyÊ^<Ͳm $ZA畮w :L.m\0aN@PL;RN;SGVB{L@ZJF^1
+(( M\.^Phh!!C$/3+y o- ۂ[v4@8
+qŭ ţy`'A
+3_2ҿl!GP<W}k> &WE څB_hXݡ_h10ƫ,RdzNʟ:
+-rOKdFF.b%=xHDx/Az=MF3U<Jq9T4ỳ7]Nz͝CCKPE ]S!ksU(8:QI+(ԗ1}Na 
+ Zna1bM)m%P-X oHhoP TJQb%ޚaJSZcAX=CbM)` yij fAƩGG=UE+# ! P#np~(C![b-G6|ۊ$ # 6_u=Sf! R[B=^˻J,>E2c؋;kyx4 4*\,
+9[gax?>+3FRMЖ~lU8
+@@X&?ɂ
+11h6:H~U2~𫐋[>[=ƽ/U\]e?Di Ȃ?v:P?nVv
+M
+pC(@QL
+̚.͎U!qE+8)c9PQanM)$Id؁_LЄmv/
+0(GO6.2cQ,:^*hE`#Dž+صK闬P)
+c8*:M~P
+CKu4R!T},3iK>LR_w wkI^Py!XVRñ2Rf/=8Tz4}1B?7̷c2*Ĕy,3)XT Mn8L4xt7l;hru*u-Z˼Q48R!@Y!< l5o
+sPoI-c-DCVhXQ2G[UfM!bÚ K91nk9zxRIf9̖r))GG%ǦT3rk'<u7.¿̖20 h8Eo~V~ZL bÚj,@}qXAS+^8 4FX0RahmƵ_
+i`7fA64A@[ȔP(h]I ai!eW#s)X-lG!]V0G+wg0SbL1\%=5؋Cvuh&آl[np>_kW-bmf܋@6VF Lõ> [05#.RGҘ\hP7uʑc,E!u~b6$ 2_hH6,ZJ#Y^:{?]kőTm~cqX(1ƣ\Đ.hǺFK9ai8˻d3^A)Qh3+0QM }9MgAciҏښxTVG l ?+cY"8ۂԘQ 1N\L
+4S CĒ*6`KQxUEZ.pFc>,HYU/oN<žO(zS- pJAUk6)\l,+Dz ^b%4C<Ju!my@Q 19*4UP۰ť?#vΛP*VU_s|вW:fJF*VCVF P}.*hc4^Y ki>}^ _G <ۊW,HAJ`.*?)&-
+GʦVn՞: 5M[ kQ
+"8ڰU~s]XW@*X
+ hw
++XxP\{"?hJ-~" 3,tԨ Ϧ~00F#
+p.ƲM+
+*(;򞌫1qŘRd[86U/ ޸▬_L bBx׾lrz^3rm7jvSFf
+`(l M rf^<\3e0h
+^ I"!}P!0TX0SR炔u"k0hA? fbă[{]D Ex]+XJI_i,Ǡ %bQ10 >ݐ[wL5] ^%"#}d[87rܬ2Y) M ^끌4#L @ X)pZ3ҷ/Ԛk:jb,ºsS=hj}CF`wh}Fp.ASG(B+ԙ?6[9aŭbdDl87u5طJk dk{[&TI
+AZR/޻eHPJ(@ ;U4m[Y׺׉ց6PzH^L] |2R@eb1`ʨ
+X~2Oz]gA5+ gJw{PH<Xwx
+չxCe
+@V5\A+BֈC`,G&e#O+V!#1&CxnT<J%FVBpiut-؏T  M]^WQǩǾG WJ kH~{+ 5Iw{P] gF'~2*dYCh5~y+-PjwC5X紐&:Z$~<xH:ъBV4&!C!Xr8nzl
+yF~<ÁuE7HfAg:uy
+*mTEYmPtg<g3BFe1+"AHC"+vk2Ca<րuC#H GtL-H<ZY 94/sk:(deAC kҝ<w/%`kߍ+ث1¨T F_.,-Y.x
+bDA3i:by{]Sr!g*LvAl",f+L6᡹ĵֽj% IDd~c,X'"Z鉃M#iJhxL.yR!#1O#]lc7y٬ 2,Cx-Hi%IR6) V0&.p^@-ˈM⫐F WJkǚ7\?i\~ꠡ1xy E>~ZP8M7J+fZ+E tn5%y3ڼZƹ`V&cgPO$SJO5oQdC] 4o* LRr#fp-ئX&僰O »R C<$w*fZKEi݊ fCYb?zJvI![?YRSP@) 6obx1bQW- +I SǪ';y/̍6ө)LuJi݊xfXޙN1+1AXTIp('Lw}I`n6PJ X\g~%&X:ۃOAו  hP `Jj
++-7Ik&lKTr&|)cUb䯏^pIZGHb=TFuכP(<F55U3L* +Iy}&,˟p*}[h!ce&4ȕ`&@Ǒ.@ˤ(m">UzGfe_IzlC⏄7_1+2]
+,J V:ZZx %.˘&PɫVw{!?gN`O}' ǡ[/ u?]Wo!SMwF7=wgpr&Gly;˹4XsGEǟyge~G?nS~clQb )F{÷問QN۰qF+nA={Ӱo:8
+uEʸ>r;~ uӖ}Lݷa6g:\g<!_Gwokmo|)q{Џ|IKW9SiNDQGmg_ o>үL|jX?{KK/H/H܅/9K
+"~/}=i2WsoB?#\x?h?Y}mԐNu!4Af> k̈<ٰp̆Xh|bGO<5)
+&ߞWC(MFk*ԄR-xp?v?V='e=pӳ
+6sqaJ߯^ď?eLjS3~iۍ]?
+
+0]B:_ 'J?zy!],//_%Ȯm4_w˓=IXxngyAy&nEK Co}AߖڢG_?.O}1nk/b־u歨k?=1׼OL5|d}byk?yC 4`}re^tB"o ڷu_7vzEy\3!mǻ)~{^.ٯ~ M#%M.ݘn_s<)kRrc%}勍׮K(羕7!.˗׊&>K>+|634Y*_*ԫXyD>
+dYhPќNVѯ@V40~G/[?:'̀Ґ {@G_8
+ϭc,hn*Y1k|ަd];HڝsPyl2/#еFHm|yld1
+>.{b~Oɹ"
+duY~!;=ty
+">.4eۙ&}K,CJȎ@]+|y <0 hJa^!F%iuhR.a.LWYG8eղcCpn9P c8CG gQ䣍
+ Bq+ئ2
+t
+MEE𾉕}#˻`X3SǪx>S7=XˈDFf^6&@݊)-}# %jh96$8q׭VZ"]rF|D/s.'܄(H/_:]vOkf
+9K}[sӄF=F7jByx_\ޅN 91!e Ոl
+q1cfV.FZ0=h,%< Bh:"UA6\(W
+ jK#(mZ/$"c+ "NзdT* oܸ\
+>;۶ !.a;B )hh_ܭ)ooX.)]8p
+H2eYPp l TuZ񦫹 _
+σ4ҐO3ʫFݑP)$祊^l3~z}v4niLµ)
+dR\04|]HZK>68;2.J t
+"õ~~:V̤T##=Zh2 qJ.Yl %]l &%5M_T~`[+E|V !?AWF#ifs4}TtXwm3fq]\0 %#{GBj<O%Le>5s? DO>з1EU b0t
+&=O0ilJmkV_=m BokHyj?P22*emhTrB  qg2ٲ+%(^i0leZ(K
+Q*Ĩ |/p0w4y{&юC֫KndgD*#`+XSŨ1DiLg8xDRAP WkZ+6SImzafʌ|dsjs)oͶQ*k5JM;&P0Հ]E6/ 4̉B*5dzgLyiQlϴ(W M M^i<ٻ-4HoCCX6fT1ub([YgMc0ƪ j>_@5bM\RC˕S7%J~7%͔MP"Ag TsL#rY"f~2ODgdՍ;|&n܉3zb([9G 3+ 6.3 DEd\R~#zi3aԂu#ܛ!u0 <ŨrY84R-MA"L@-y.͊kXW+! v`h q9rcM3P6
+
+z{BvVCF莰92' G΃FQQPG<P^A@01(sέ
+#!X;d5K͠qm2=E% !V$2ႡL@ G4dhLCTGm4Щ):CљqQFZc8fdh)gI+(Zf¤:BgmԠ!P~N@61 ,5ןy| gvP}NgJv<?cAJc|]hI;&hi1^!%"-%S"ћR8Gխ߁c~-nkXmi{UC AjO)SysMl훞?,lvI`T0*kZF}]"\4!nc!*+HZ`u[c XYOT7$?ҎW
+~96:6
+q1ae=}5>oiu46קvEdžwYvoprD?#W%>(|S<.\+w?!0./ڙh$B"W37ߦH?09:q)!{RW^dUtpտ)@m2-٘}byfl<'?s}z0VihЙzKqKgM;3 `6Jତs0w=OIr%?령J斲wm5E翥|$6.$]up?jޘ>w+ǯO|LP{*fgaR%;tOg̾6#΁
+evNϧg0`gvfc`豭vD0"
+^m)m\^47|4em))}=hYf~8 ~DP>=o獖1Ϲ~׼%rܟ{{%kf(wz'0Uz)Wsy?˩w_Ow|$3Ӊ-IsOZ#ElSQ WØL%xjr5[ƛ[mMWߎ:
endstream
endobj
-860 0 obj
-<< /Type /Page /Contents 861 0 R /Resources 859 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 791 0 R >>
+875 0 obj
+<< /Type /Page /Contents 876 0 R /Resources 874 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
-862 0 obj
-<< /D [ 860 0 R /XYZ 78.37 808.885 null ] >>
+877 0 obj
+<< /D [ 875 0 R /XYZ 78.37 808.885 null ] >>
endobj
333 0 obj
-<< /D [ 860 0 R /XYZ 79.37 230.916 null ] >>
+<< /D [ 875 0 R /XYZ 79.37 304.435 null ] >>
endobj
-859 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F20 376 0 R /F15 381 0 R /F16 382 0 R /F18 377 0 R /F23 646 0 R /F21 378 0 R /F69 402 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
+874 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F52 376 0 R /F15 381 0 R /F20 382 0 R /F41 377 0 R /F53 649 0 R /F42 378 0 R /F68 402 0 R /F50 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-865 0 obj
-<< /Filter /FlateDecode /Length 5472 >>
-stream
-x=ˎ$Ƈ~
-Ru[ZW<Sg뷒`O6~H<}866vG|GspYgᘔfNgbv^,rˤ<yPfM`[򒷗M )(d:}}w]GE^F oHۼ!g/YM
-??RiEm Ŕ
-{1e.`*30 L]9bڈ= X!aWn~Ä0cƛ] ,ߕfPLlD$ͤfY~ru@]{q/ՃׄA~9*'(Oӗ%J U_V Ƒ. 4ss%tŽjhghojiT~Ex;m<:;sXGyͤgΪPjUm{ ¬ا*M+!ƆjNL?[C WdNMNa5? F3̷1y'MCi%ӌ0 ,5w=Lc4Rn&w;uasݮFA^A+.yyi!ku8W
-(s1ft¾`+y88Gqyȼ| eۛ׌Nub^<PaH`kL=QY3 w᳉%jțe=b-7;Lnoys۞w)8UIPY 8|3:a*c <p)w92`
->Y2+cOS3r{t?
-'`?.3= 9&w&Eyi
- Z-1w!1CM촂21ؗ<`+8%X%Ei.9 hlP AqV (,
-'c½UU ֞2LY)%!.AOyp_5g!WAq[RdBV!t FjQ!9h]n! !{fm,Z`}XC9&/(-
-cz+(r-z> k)K%lPMdQWLԒmlWE)JSp
-#(W*"F:"U 2,P np%vE[zJf*b;Q5%ZlA5%_SƝJ`v1_&r" 6慈^Ci!ApTCxb;DՐs҃ eM$9I٢V%V$ &PmYd1y>d<< ;tEqzM@`<` Q, EODM<ĬDTs2UK gP Y`:@Ug]9w4f
-b@5!6$+,3ϣ+I6#V&cN$;YQ[-dn1 ,;rkr܀m"jT6DQ& Հն<Y:F iUM$m]˜@9bV-+Qlncm>+!x;6R xb %P`QRHH^o 3X-f QyIѐJZd_.[q
-2oMXvMΗ?@<t&ɆO0ݕM{g2}7>ދfa Eۑ>Y^r!@*;PF;Hw E-l+T=Ұ g8ue$;{dޓю OIa+?[VI,+DJѲAw`*Ob,vJ>Ћ(A;Q@"]$;҃2wz)y}P"فCIvdH'DX慙ԣMaWjv
-VM%}﹀῱\R6lF,O[|j\k)Rs P62tͻkP70KK:`NF
-Tɜa۶l ;4/#Mvmش?S'zO }j9PYy<6~4!᪇܊mViD/- 3
-_}GohJ(Pnm@3nCntaEy:(yy~XlԬž:Ly}sOqH?+kǧ)O)aryU<le:kiSV>~F?kId ' 0`_a
-Sȷiԧ9}\u|ёVbW!%"-!OEچFI3MGIdI طis7i'Դ)ҺEڌ<i+sSH;g
-.ݝ^KŚ~XGLy2#"ʂ=ysw\ݦ{~A(-K/97l@#J('HW2Ptp;V3*?Q^ ~BK(%gN?+n\ґ vEKϽ(?uBop{ $ndXPo)B7|a=HlgM@`aF7@:0 ;p(b-"~աqt)O0Smtc0^zlBE>
-- ~|GTX܋
-6AYkoy4}+N֭~Ss4UnjjιE[Ջe$Zikb$?V-
+880 0 obj
+<< /Filter /FlateDecode /Length 5999 >>
+stream
+x]I%7rHd
+δ Z;?OAhɄ P w gR3Bx&EH&CpˤՃs&Aؠ{zXRj!2f,SnWiWoxF2mB[CƿE?5 ͤ
+ÿakT"GpB7Wv[ ]j0`kPè6/\#\ӗ5xsu DƮ&SÁRjJϡC;YK6^
+&K}޾m]:B+szx v;9='.0)<0q-e5 }PzVg_b&|t$З1|>:p>5Efϯ8nxfw\xfx\ut\gqÒ./x`&_3[c6Gޏ=*cSV&cP'<GPF1 KhyTN胊 ?BCTo7rr#8v,@~7r"Jńȏi7b_CTZT]q[k!Qo*|0=$ o:2>zo.Ad,hޭet/1A
+@x\ üx{.;=w '&Qεp:UnIW\v{°
+rH4eDwCb.3#QU-ǡrD8U5BjMPZPg~%xpbT
+ Ag+)G\^W C˖T ©Bj©eQ`8kI~3̉V0tL+#|,-IhI>H4%>!S, *eE˱l*]Bcų,g=hcNayc9̡XD195^soiyT1:`!=, -xlc 5z`Вt*^"ybh|&H'SV>+@
+ۋ
+WX`Fko^
+SChqOd&IOp6OXv*O-raB0HrVq-4,;ƍ?4BFyG 78?Z\-)iI/ -j dJ,-J(e%fᓰF,ўYX"!KE-sa0D {K"5YagcHD4a]IIU$\ *!Вp*^JdVa 8XZDzʪg5bNxcyT[\ ~cqg†12m*jbfҞriu bBZD•ە_`F2Hpq$KvKI ꋀg~
+UFA6
+!2Mـ+|hH˄eҩħ.aX[ lhf 
+c孎FOv!`@!A2rL}9@[8W1DyJ%eZY@zac+LތpH%v0
+Q^aDIa j`0OUY$Ƃmq&S"q%
+Ƒ'*j gFN*b/i Аx!F~+QP9 jU"F:bU($2,TAdpe~N[DzJf*ݘ2->%)ƝJxD+%f]ai^E48//c!\P5bjAPFh=%IZ$g_-7.a .Z-":27ODBPKТ0xt}G\5D35}B$r D˥I
+m$ZƍO8ɠKN\;Y-tN E 'L7 -j+2VjBlXVZKW*t9|F5L<B
+'SҝJbyc9y[\]A@5yܐm\"kT6DQ& ՐR`[,R Fc êLXB
+ʺV8pREV++쩖o<Xjp_\a-
+gგ+[
+?LZ fp{zrt>QU$o|jĽ(G)%4cˬV_zbV2}Iw80OMAQ3z|W0<;j~ߡ﹤13*<CfX%AG[/iA;#2|ʑv3_:wH"w,#;׎c9}H;d?!;#;όH묻puXj0fX/i̧9fvs
+x>tLᥴ trkiozj-q[ßd\PJ<$<mD_W '֣lNZU~2R Cf6
+MpV_Wi_*BQJV ka'^G ZZlU뛾v¥4~>ui\7"{D'8^gN8[֍w㊹<8r I%!.'Em^JkRX#!| b5?Ocs9My~ %^9KV%Q>'A1RsH)v&#& bըK_Xշk;qʄtŕb^(`%tEu tEiKقWs$^
+Aom31ūb#Y/$j'F~ >
+X4!K ؔ|h[&ŃFr+* z
+Mэ_M>oķ}i=i0[8ՙSom
endstream
endobj
-864 0 obj
-<< /Type /Page /Contents 865 0 R /Resources 863 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
+879 0 obj
+<< /Type /Page /Contents 880 0 R /Resources 878 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
-866 0 obj
-<< /D [ 864 0 R /XYZ 78.37 808.885 null ] >>
+881 0 obj
+<< /D [ 879 0 R /XYZ 78.37 808.885 null ] >>
endobj
-863 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F19 379 0 R /F23 646 0 R /F15 381 0 R /F58 386 0 R /F56 384 0 R /F17 380 0 R /F48 391 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+878 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F29 375 0 R /F20 382 0 R /F26 404 0 R /F23 379 0 R /F53 649 0 R /F15 381 0 R /F58 386 0 R /F56 384 0 R /F51 380 0 R /F40 391 0 R /F46 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-870 0 obj
-<< /Filter /FlateDecode /Length 4188 >>
+884 0 obj
+<< /Filter /FlateDecode /Length 3094 >>
stream
-x]Kcrh jº9>9q$
-\S|tWH|,ֻrfL~vlx'iVOy$`ʊϴOӏYP6C!J`&Dz؆(ƹބˬt,g܅9ϟ~@MI%37=gzx8*a@4QoɣtR$!~C ʫ)S~҆Zø@<H">N6&Hxa( <
-/@eZ'_ M)T'*`@PaJP@i3_Iä"?‰hf7iU`B+b-@[ϝiic?ϝii
-IS>u%ɏɓ$
-IS>u%ɏɓ$
-}h;'*9ԅy-Q>uOUV`ZpX0>F;]p\ :/=s`ORe*3weؐ*1
-VI5̕&>ԕ&?֎^~[inJC֎^~[i^44vD{Ih&5>m&RƦ{/4y.rdBrUp{ `,ml]N1lh<^~[^!f.O4fD<N|sGK&D>my&>M~<?O}"D#ԕ&?֎^~[i+Tv
-л~ӕFiE>*hbiO[ihc?O]ihc?O]iHAD/v+qJCS
-IWAA-ve?-PMwKM.4%3l y/E~ ;= >fkD H6έ:#$e
-bQZ<-DmQ@͏OŢo  `}jmݢi+k/O%"`<(HɀKz'ʨkvZS[&L,ī>![\(*i~ԡNݪe!;6zN/!bvYO EtTOOG&ꩡzZvYR dPϮGӦ-Ftja|m6qS7mwԈW)R Yf-tVak%c=~ozK޺+Vl~jq6g\Qg¼-٣/,
-vD7 @5l*!}r"Iϗ9c9'/<+ {5{R1RoPS*x[lA| trQe/fu'W{.RzR{,FJA ;]|1eivT)㱺R ə׭%SJ^*Kx[ݙ%JM pzJ kZ\)?lV![-0>C洁`9qET?{ëQn/Oo`(-Od)ZSCv˔nB&zeuN9EƗS&2uo8}eS-"t.[~C1B׹%<+^[lcKWx|K_OXD/X{, yW
+x\K# xH6{ 9d'C=(z49xU(~$O)O,#;IL.0&gVLO?_pn$JsnOI;6>'w+ʙ/NΆ,ky1? VZ`o؟.Z8۬op68~o}Y߽VyBi#2԰D sQ<-A;c|  /
+9(Lʃ#um03ڎC-ש. r`dcvY}͹5}eÑS\륊W\֖ p2aE0mMI"L4^r :xUlt̽`Gb6b}v/櫃ef(#Bim}Z*GΪ?0 Is鈙{ƓL%IaOR2~fޮso+h֒(͸> .,xN4\Y}j v(NQw%C
+B>RwX ?"hrñH S/$R
+bQJg 8 pHVa3VK8YP PZ闘(%J!ʹM-<꨹A%}eKvQ[?Z/K./%00NfQ^ӧO hooU_LJ=,V³KRqr&jY˿DOO嚨: 5lɒdqgs:|Q{Y6FtlѰCnysBM0CY>VA&{7F0KJ<R+_d)Λ`eϬ
+@%rkez7oRqOow,'G\ٰRCӕ*變0>VEޖPah0$؟*C,FbϗuUٍb ;Պ#K+Kyg
++66daZ4v
+<S#†pu vŒb0Y9;#tS*uJJbmrQŦT0N[Iݪ
+l7 [O}$\_`RO.x.4<3ԥra0/}`AjCX(ا:ӐLzL+أ߰jJ",ؒl
+ƈ`
+t[i&oCX[}IUL
+)c&'<1s@hdcQ1-֘}IŎ\i5 )}Źm·(ΔНn͆ */%5ÿ'ڼ~LKSpf UZ٪7`խaLSbd
endstream
endobj
-869 0 obj
-<< /Type /Page /Contents 870 0 R /Resources 868 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
+883 0 obj
+<< /Type /Page /Contents 884 0 R /Resources 882 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
-871 0 obj
-<< /D [ 869 0 R /XYZ 78.37 808.885 null ] >>
+885 0 obj
+<< /D [ 883 0 R /XYZ 78.37 808.885 null ] >>
endobj
337 0 obj
-<< /D [ 869 0 R /XYZ 79.37 679.821 null ] >>
+<< /D [ 883 0 R /XYZ 79.37 771.024 null ] >>
endobj
341 0 obj
-<< /D [ 869 0 R /XYZ 79.37 407.279 null ] >>
-endobj
-868 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F16 382 0 R /F17 380 0 R /F69 402 0 R /F15 381 0 R /F56 384 0 R /F22 404 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-874 0 obj
-<< /Filter /FlateDecode /Length 3190 >>
-stream
-xM+bz "\^nmOC
-iKN9xII3pwvE1o ?E,35q#Opn=V/9kZo߫o$<L:|Ke 褵?V͙r+++
-SՁ<ohmTL(SM~eGLkOh
-<1T'E%/.
-?<~gU\ xon4^PHG
-LU5M6A<~'!KSYiz|8@Gldb,00pŴd
-vz~?ť7D:]k_lLkV8͖[ffK 3*6\k9ͬp_8o|Ӗ 5GL 3 aia);)794)hvU/C( ѝ]
-- J3)T:I'ֺgM{=%* Hz\|"h0^a
-gPSdWH$KcKG(A3227t;Tcna
-3NN$L>n!5Bkۦ9 Hs|CIHuiHwmmO,pQ
-s1d!{50of}X$ӊqCCXROyKSܱdӜ'SFPI`2G9af ];O$ `~
-"p c@[|<%ލLs}5ʄ/yAS}@9;֕L;qa<3! e2uZvkX&;j|n&35A3\4X5tzDYMscINuuifE%RB(bQSsb(C1iC̉ FLf^n2X.bzĪq}BBLc6-n.7u,$-bB:X:BGhT\r#=嶛`r&icj,~.0T-k ɅRU`i{T|O=~7[<VQ`-|͛8*_v_' g{Z;p_̔}p1 x}c7An4XFU1Z8o%ƜwnBw51y[ՍC1;o^ 38B]+΍3Sw_pE
-Q1g'܂M(A jxB^q*ZO gmFyt1ʤwdLo(aRD~* lx`n<C噜a 䙎S-xh%s Gu3\];f
-iF̤D؀6_%nLqhLKۆ?\f6Jŏed/P2@7h՗I}N}ؗ~n> wvuG;6~rmc8-WC4zZ-4ѮǑP-&DOfx 4@&M a*ɬWh0B|(T.iƈGJJrssC❋I7pZæY 9яW^jZej(O Ǘ,XCഖ=rXB|(ۗ/K;”]:O^O
-߃Ղ9 [-/`=
-,0\rgT_6J\ZTWNkHֈJ67+]+ZLiQ<~E+ut. #ǰzv˖ N\9:_ӅuWISwXn9sߝnxO㚧`{< o]0UJ}9v~EJd:U7N N b;:<lٹfжjU{>I,rl&q5&u=407zE7ߝL<n, /oP[~ =
-endstream
-endobj
-873 0 obj
-<< /Type /Page /Contents 874 0 R /Resources 872 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
-endobj
-875 0 obj
-<< /D [ 873 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-872 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-878 0 obj
-<< /Filter /FlateDecode /Length 2877 >>
-stream
-x\KϯPnkM7`,ҽ&{Kr2 \SŗH5%Qʤsú[R}zU׉O^x}y7`o/IL3)d-g)|/?=Phɸ֥P !7)RoQḦ́v[u)~(>~)D4A_6>M/IC">Bz\b5V0Z3u"
-w A)_8 j@ 8aYֽt;f@m5l
--X0bv mKnOjS B Ah?W4HTkDi9n Tp"cbJs X$gA$נA['F)l~sIأKb0%p2]HIB< dLDT93v@XŴ-v? 00E鐂S/]!}YJ"OŇM{ +`jI;NAN`I!m>>Ic?VHd@m.7l[1$)=G_Y {q7){{^f;' a \I\89!3pUS2wP-Cz9Sa_aizIH9uxczS'Act^82'݁Ouq=[I6)lQ^sx L}=h0A: LxZb^%xQ۶4 vbm1 nBOFrD SQ7'cJӆYfmX"!Mi䢎E0<hJ!bYqH4Ml=i^Ȧ8IzN`X|1s4_q7vrBDCQc3-\Pkwl5(9\(v J۳9_sy< sUp4sMlgoz 8"/=m/:;yMC2 dx.ӠJc{hɒ5J%ﱅr6 >k.cɫ9vrqVm'o9s(UT+8&Եھ FmoD# @;No
-m~?2r;ȩii?T=
-IԮT]
-I>L
-S⑻yF3ֻ0EF y)<oG:LP^
-v YSB͚paSL&qSЧϛͼݙ7ؼT?o2J`M=%`k y QP>4
-1㣠ux ڒgQPըQPNJXJD+r<jD\H?]8)Nڹ^dvMҹ^ctQer\i;5pEk*K`)uU+`<Ts
- tSFPK2O=6)e5gѺ{^%FYN 
-O_pu oM& :9}L:v {vRXEzqtųtk%Ɂ3~-ѓ[ãɁ5{r>c󽀿A'vΘ5߬52|O!F˽xSl2Vzk\f/V6N؞nչފ| {mg tma~9E ^;VB~F1̞~Kel=v SiK˟Au6 p"w/Q]{\};qa<3vAOBORQr΋5@-tݕS)F&G֥!M(_Qk]i#˅
-_IkS\$уmՆ)&x]J3x[bʫPZv׶ $`|!oBYZVgpx y[N__Q
-endstream
-endobj
-877 0 obj
-<< /Type /Page /Contents 878 0 R /Resources 876 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
-endobj
-879 0 obj
-<< /D [ 877 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-876 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 883 0 R /XYZ 79.37 490.41 null ] >>
endobj
882 0 obj
-<< /Filter /FlateDecode /Length 3850 >>
-stream
-x]K ϯ,ZF=$I|KrZ {H`sU$Tڳ9O$EQc [8
-M j P}^VJjyf0F8h.ION|ɨ{$V]8DS\je\<Ӌ#Ns-/PoewM/]r6@
-UP39(bF~X̔-f&tKL%GaTP/9% ,i/t&酠HKv٧}d~c%Aԏ &u>r:+A:N,fJr.6J*A s@ htŢ`l^*<JrPU T_p\&mT\bP( US_a֌2XH]3" 38׈T?9sVca7v!kX#{< ?|x>G
-Lp:vت+FA
-.\nƜЪ+#Ъ+u8W8qluw6{nlEbdm}ކ[eq-7n˙ݶ&d'k<&
-V[*!~g;T(SY?lM[{lJs~B5#n6pGq{ik͵xto-g֚r-fjh9Q[ g}.6զeJ r6; MKt#(p$5pYg}qX' ) LcnXLK`dϕ|<Qp J?y/;s-fG\I<,D¤zy+~PI-kzy+
-Y/;o[6O){mˆġqv$]7ΞΰVާrdȅwqv$k|}Svd[nDs܈B[!\AOF52d_WE{UKᖰ+\$7@D8XvH ^
-泣о٠̑__jIZߏH#AtlֵbcӰn5㢀C$C!aEE 9Aq((ep˅8Ti4S64<pа٢Чw9]WwTvFEJdz3T:.w&J;4jt~Ѱ$#VU |D 7nX^LpH-*(wy6ٔ ~Q¾j/~NPSK,
-jA()e(OPa{TW 4\
-g$] dNPqv$[Ĕxn@M:S
-­Z?u.$ly-eS6K/vւ79]ҵ^܋r-$?d$uxM4"0h뎖J^l1ykdļRGۄ?D2mos-z+`jz?^I =es1u=a4NJ{K9^_Kފ!HiSk45X>|z
-endstream
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F29 375 0 R /F20 382 0 R /F26 404 0 R /F50 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-881 0 obj
-<< /Type /Page /Contents 882 0 R /Resources 880 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
-endobj
-883 0 obj
-<< /D [ 881 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-880 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F25 375 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-887 0 obj
-<< /Filter /FlateDecode /Length 6092 >>
-stream
-x]K$mϯ(PTGĄ6Be:8dk:bo$LUZzz Hxa?ÿ/+w-˟l]>ʷXc/WK- ߘZQ>K?%Ju-*8ñ/.?e&g~7\~]i_{
-x/gF~9?_T0E;C6vf4r¸|S׋XHPa"&Z?0щ`Ac,oFwU¾F.uV7E`w}hz_#MC S#=\9OdI[˯Nh%[6mWS^~Pj_;5Q4&*klػ>^Y( IJ`Fwlk.eN-.nf;N,{}CwYp/ܒ'ROM jݠ邾`7W6"&Ppct> Dg7O)h'
-ד4IPISד&=j3ד' szy%=WBx Se͟z%Ӌ g g^IWRBJU3vI#{%5<v 8[qN2V,Z,Z{aiLݱ8N,V)q[؝!Wb̼PA<bf>QS3kO835yf~g'k
-Q]ͩ IJۼQP/.B%i|m(?dxM+S1VZ~MD] YەkqZxrXf:"dA5d+[R牨OčgZypr0
-a0Ԡ^C=$/RQ[Ҙ
-u]4~THjX$5us^5*0-dm\Aᄔt>-/ p ԥ!baܡNstz؎VTV&RFe*Q.J  ֽJzt-Jx\8 O2N|
-_Xk$נN't
-f^;VyBdLDՅ}.lAl۱'65hC5\ F^ѮdL ƤǾf30q-HhH|*~<.v/ðLO'""mtOMl9TZ<>)b;@"3Ȇ_2@/J|\ XH݁2DH>i/I%e4rH VqhJ)HeW!kz@X-h 'a?"qz25.PT-'[~mӯ<ti#8{>x4-e=2GV/%ŽRrpd7\,jےց;(Z"YJ<jʬȉ[tK5L(Xe^oQ-< ZdH]8>ARLtA d¿ߟȵwMF0eۇgK-eQM,@/ij TDw~3W֍emcc*%N*x:%۟ɤᇭk!|j(o={(z ̀wi&D fWEkQ/wתIspHF&H>~kB QnǑ%\ (>jp|R&GQ 44t]t?j X׍f xI7#iQg"R 4_1=V2RK}7ch1)n}~+9GOa:XpXQRE)2rq~7:WH4?&9=d}(t* *^KK
-"LI@B>_<wA<xs F^xmx4эd]7buEF Va~1~4:SVXJ*9i
-'SvC™n /YT;M!A9q
-9R.0^Zo{wSff<X; fSa"Ae6lzYnRo482]2Usum4AOWuH{ WBө
-y]YKVg
-gqQU ^JO3 +e{saZXw'31RX-PݫH-D:$:5~#N/.QEٯEIРXLTE¹o>Y+]t(pQ l&hU ׎Ҩ#
-_d
-,^աȺrjśO
-ˉ|Zdh`&Gjt~[Փf"*ʿ
-u]\wGuTrH$MT>IUTQϽ/)5Y^]pJR a@7]9/
-R}? i^I_bHbR'6 š YPO)0!ːt&|7n*^I(wSEňKVZ~&B羖dRCՒ
-iv n | RmPc27j_ڒ@Lr$<LUǕJtDÿLPy* |VAN^%ۀe| 1=b?0}[5TG^Q@GT
-Ւ`'#η>,(ZT"źίSם+3F17RHZQXs
-gy1G-E4ʖ:L:LuƽJه^bV:<\U+:Cicbo' \%#7[%ʔp:\sJ7\׍H(J[cu,<|7WyO._lW/[{V
-*Zxssrq).HXhe]pl5eOm w=<Ti*$BLu*RisS}l: ,E n.wN+\6n9akL<eV^]a t`|Qs
-/SQ;.\ <(NmSw#ehx+]qii%x!i{:CzXR{{V0Xc|!/u2$o|ٰ"\$9~~:upR|1S7ﱗ*"7tuх+{q43'\ɬ`b^yv<~jdo硺N!jȼ+0.w\*J@ oF=FBO4÷دuQp0a
-j+]~lWi>KIW&ɺtCz7EWn2M֕`ƨwaCEQW?+Ltu醨+n4ue+M7c]by
-MuԪHkҠꇜz%&R%ZK<*C-ƇwO~:]0-J~r7r",3S_&X&.#ttea)QF؜\(
-֊tLIJm%U`mQZsz܇"ԚR=$>jzclE,*,lW,_3][a{8|RcIs
+888 0 obj
+<< /Filter /FlateDecode /Length 3422 >>
+stream
+xˎ$>_QaLlprdoqNFC֗~H=jUT۶=tO5I)lQ闉8}w'Ǽ1M~'1Yϔ10s-97g|Y΁sT< +W<{IXל .3} <t|1OW PMvy,M⅞]ȜB(`e- _:&dX$+~D4>72HSIqaҘrΑ
+LAx%MrF:s*K,װL->0s-#펍ńWs(#(́3qQaOտYs+@F"‚'7֮.O+i\deF+~ߔ3 Q6bL; !nBHU
+@(ûiFV$\uc!`Ze
+{ -]g D2Ȁ8h1F8?dHPcoN hZՖd+Q"?EÄA%"3pLPT(*3Uc ҡBE%DR"<m LJ%rǀlX{ì+IН:t?8N}&^!%j\![!]S* с{Bow|P;}>>{7 L _6'1r5.h -Zu~[]RHS~U1GA@pr
+VҾV/k=ɩPeQrjYn2͙Ӯ\
+KLsFEqoΪj
+Y>J=Ψkڴ+q(TS'O;mjzd P
+3ͻNRh+8b(Ǝ_Q 3:j~kg/$X]t)5VQqHY
+OSn+
+97w5T]0Wښl8xS,>2b]K9ӵ>0bU1ompXiEV?觵+[벆/ƥ5m]g\`UUl/_U˧9hyγGiRAAk;&W^V`zזBՊu&/s7Fܹ4W٬5o
+}˰e:Y-vV{ybxA'n1u!`~_8^h;];4ĥJ/,N-%Op7ytjkƨ"|?<\@"_d~[}/}Єu ys¢\*dy8o'M(8w HAR;0 O`N~۪חe<!'_,0;/N~㥾.4҂
+k` )؏0~&Dpϴ5}gB2@w}ʼYc++x)*$kJ>^"ީ04`>_"ݨ06L:_"mާQ,ܖ<`\PvߤP"^@Q¬?U>SEo6@pc7 eQDW(W( fYޡղDOEqq
+7(.P1E
+:NxILc$wR9
endstream
endobj
-886 0 obj
-<< /Type /Page /Contents 887 0 R /Resources 885 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R /Annots 889 0 R >>
+887 0 obj
+<< /Type /Page /Contents 888 0 R /Resources 886 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
889 0 obj
-[ 884 0 R ]
-endobj
-884 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.144 69.91 286.601 81.367 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
-endobj
-888 0 obj
-<< /D [ 886 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-345 0 obj
-<< /D [ 886 0 R /XYZ 79.37 539.971 null ] >>
+<< /D [ 887 0 R /XYZ 78.37 808.885 null ] >>
endobj
-885 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F25 375 0 R /F69 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F19 379 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+886 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F50 374 0 R /F29 375 0 R /F20 382 0 R /F26 404 0 R /F52 376 0 R /F41 377 0 R /F53 649 0 R /F51 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
892 0 obj
-<< /Filter /FlateDecode /Length 5221 >>
-stream
-x]͏n_-gI.| rH
-e.7r]\s5!% V+-V&[t!D}IUU d%.G]C&OymE臽⚭M,V9ЧR Y
- 6~nh RMk?QjlM~ѩi&X喕=lrHA%uS&惌zb\fF6EȌ-qǙj,CNEf9U_;3䌍DeJƪH/;"$%
-o8<Joi@z!Oz L-62hQ5BH^Yy>JpUfø1↡C.f4ib]_畃(JђyJFǁ5}grG[G~2YRɩW)4#'&PUbTX H&Ѵ+*hA.WҌnZ>ZbAKB#B'`Bz~d2 4" > ,+;śX247 ՛4߅ĠJ¼1Q.pvr> г%0 4hcմ/.B a򉃄#>g#eܖ7ŎMy>H$cZFThL7mZ=¢KXN+,KJNjOֽww哢ZpL-8p.HUSgNlV[
-fƆpd~i{EyLk)gBCr%>=keUr_a~&DֵGiRDwYB~h}AC:1=C~型):oy/067[Ĉˍ^U?Wq|\&gUGfq\5qg95Nu.-6n.8t/ֽoQ`E]<k$ 5 |ΫxAAΟݿ*}ECs(t+p0 kzP馵-n!d߆<9qMe:Vҧ(8[Ʀ~Pto6m x0ҩ>~8lP&-=?Yq{>ݢ dPkv)Rd]Mx6%`ҴGi7֢Ik
-E9h<˷FQVkc.! *y{kmzm?mȇPX1
-C0E_& G 3A u).)
-#Z MXWA9*~L%
-ːhKjh9S3
-7lMҹ_KMš0T8
-IlMs+w1<rWo`4;* 13qWե[?XM>:w~uu?X;G!3c->2O<lǣq5!k137kƔ; %op5voaW)V4v\a,rE5Dnօb`g̹~kzm-=1.C8h-ta.I'Y)|":-0T@YCԔ1+}
-)hB'`[pM0r1e'H֖vI`FH/U禠dd$nn%ESةdo j
-j*l뷜>XP&8el)}Tq𰸎
-JFAVx<B(wa`:ݘqpyzZDV%ʐ;.SjC&!pDQYGEDҸd#IԌq;bCrʓ|+jR " bܣ4+ٺ$j8g{d4RbIyneFiKaN$$äk4$WӜM<-as!6&5i Ω&^)(@(=Jkb+OfsfS!
-z)% E;.SA:Pz BI6RD\,s~!6)/iʝW)5:! 1 ;`:[כ$;dC$:JJV-(Sv6J]Tst" Q)8l<1V`5Ç,D]t2^yh/+)
-qT.Pa,.7FҮdc $kvN8+RNq2g62ƚWqL궑Ԇ#н[a $kvZ#^ca({
-FJB *aq! I39\KmH8up"k1FR. naz&093VK%0dJmm(
-FJB *aq ac Y+silpN9 ;,<#J7 6,,Yf&'Q+s @lJH(3
-FP8AT4w+m 6@V`-e=XиWbVTeprTUOJGld c]aNG[=z!7(}8UVG뛅衔WV?V<hZP;`Z6+#nܫꅧE&sa-ASI`UiFyR>,ys+3{CӹYΕc;5]ĿvrJ1EVRы!d="S&
-*!Ÿt
-sN>%]E)Ofd\c'R.5(}PߛD S$&D$o!0x a>)`+S_ {n]﷑ߎ~;P~atVѦ?n`-}^[aCJ&+9]/8eaN1|6I\|E*O\ށ=,*ɣ:Z4OԤ,Qæyj-h<^;N\kkoU
-p2Z˰"ZY:Lk' C:Û1L0R$ wLhLC /BO&,)&`L/)U DHlH>U81&Rc, .z]++.LjR]'kNzxU$M4i9hw]5R龾jM}̈́%AVJ
-oNJ`%*RV")eU@,,5zi|}Y?T[Ga~&3^qB׈'In >E\ 1lIkk7! gE/u AP>4($=T$ECs-gVN*
-ic ,CEŊ%.*t),;tx߁ܢu}NgSt}4[۟Mk6v.{OaW.y4<j
-3MM^ ̻YmLVq)LI =h/θ7`㠇r=8eqڎY|z Rv??s0O @C`|G&ɚ{ifSJ,
-vV%;Rа [8F|v~+$"|. J<V6
+<< /Filter /FlateDecode /Length 5033 >>
+stream
+x]ͯ#¹``E@0sy${ݾ)
+S[b,((~(Â*`xD8.y%1 +cS<0]F3nPԉ:
+]kƎ5gXL,q/"$)vSQ"ND
+˅A!6N5EK:0zʜR
+.ܹ_dm$kZ
+R7v)Q~G]̇/j5x\23 H
+_M5 L
+EDE3ȅ>eGkbm%s
+a lQtdMd MJG G0D
+ /D R~D?:ypODbNAIÊC>h4:њjXpD
+[)}VDYN%r<x;]}kqa ṱtXSjWI
+WM''t!ii_Y5చCKZZw/RQLoݒK /6Uq~+qGNjb`5
+sj17L=abfAT̔IYrgu KAe!aʒRY8Π,Ge]  ]Djd]~K?}YIu-iyJ~:%/+A:N,&W%%U%]̞*A 5RURUrIpRbQB2UI*)AAV%yabxz&UI%&
+w\1
+f֔B:aRݤQXѸFM/ȅ :_'^i<]ͷ͗OK|';yL.wCy)ɯ[y~zl}}mKsMiEnI=X6Cu_[~|
+W51zOՅdj+
+eٙs _QNIΜ#59'81«ug΁d/L=7;@IY\Avmv<>y'Z؈*P#(uǓFrn8PW ;%~>ںcSI\@ǻGfAپqܧKTA.U'B 7W֏e$%$%#I ə8XGv˹b
+}P&CxXdzw}ݷQd(Qv+ TNE)"Pt)^cuIv$#KZK²7V㺼%#7j_xi̠pZӦ؝-(Oiiﰎ5/^Y}SJ/\i Cq)ͤ33!U\
endstream
endobj
891 0 obj
-<< /Type /Page /Contents 892 0 R /Resources 890 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
+<< /Type /Page /Contents 892 0 R /Resources 890 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
893 0 obj
<< /D [ 891 0 R /XYZ 78.37 808.885 null ] >>
endobj
890 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F66 388 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F17 380 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F29 375 0 R /F20 382 0 R /F26 404 0 R /F52 376 0 R /F41 377 0 R /F53 649 0 R /F51 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
896 0 obj
-<< /Filter /FlateDecode /Length 11745 >>
-stream
-x}M%^-%7'Mtuu 0q /HZg8dfw*MC3Z^`0! 2} o~AçV?ΐfR\zKl{4o?ϟ.3wciηCoH/ģ<䶗s%/uۗÅ?K |;vω| n?t_ITtV )A:UnR<+cf1?6o=\f}j
- ֟_u/~3ԭ;Ù+)?Sk=͇֋?'\!Z~UZ[ flz)jS ruv&ݢ-[=[D!? \iϋ}پ7Ob9DMxμ׿Z"on>긵7-}
-ŕ7chiBVA+}"3UByVl}%u7K{c2e}^vTA)eCzx^~ o{yV}Ȗ:}"O:`ќ'@nk}^ZL6Z?VK/.c]e_l-NT;hRhjR-.16%RڝijvymWj^-]^EeoSuPrho>EwOfi2$OL!ͭB> q3p|Ď uMD )RYLrm ^v[y!%%m֚*HZlhɿp %JwےSP{**z3LᩍEM,"7bIwZo 60gXŌ |3["^hF E]2Iԍ ,>b3nN5_ܶb䥖25B@綜ˮ淘(Mͥ(5)hO*:l!yH{T"q{8ФÕ;~q# W6>nQ7Ym8d$?nXꐥcU 7|5T|2;93s.>^nѹRKHҢR z ӔS2vWDvf'
-r9 RFӣQ)?n ||jatY
-ZSWr5;5POs%V=-RwZZ$>o^}yIٗEB/T piK,Ƞ6
-q Sl5$9L&p+{]n? "4~H*U};R+`BāXF<aՖJњ[өv,m*gt@'g~bNBOJōw쩟)1?v6^ϙ_ħ L}ĿsC%ұ4r_6FYQN5<W8uIi{Ul/w)󣢟)+z^gV5 ݾkOOzLGd[Wc
-]hDkpьw|k{ fJ`E0vѻM'HEAҖ}S2>!u04So<|z6 ?V4>}dŻg|Px曷qGKCվ.d)zr jjSڑg率jVxPxO1c͔={fkH]6ʕ= Czߴ0](XSsTPvmURHG
-C٫I
-.|筑7[϶F+{PRw]W@p(|.o_˾fqzXZ^_1'_Eߴ5kxOŸZ1W+heËk0czY|^Z -Cc4ܟ~ֲ]tzᵆzĩN[pr3>[=_t %nh0NbzpU(tAhy
-F$JJ=ߝϓC&gZaX4@J,XȺC[.ewZqf;;!m^-䍟}qfF<s^p7IF:O&R%Z,2;1)z H2T_LB2@k ֪6y{MgpXdl+A+_qs+؄ݿLkԠW`͗Ӧg4)_onv^9%Vs&<}hsb7zߒO=ro?M%4HX}б?So]b~Іw)Ȟ`2=?{T4?
-NS-%?Fhgg?."-E"M]&,C)a֥
-riK(c ]{:`*7 jA_lJTO
-[M}b(kibaܖE#Y tOŪps6'LS71_0]o$m(/Ϭ￾:=9kPFC#Cewc}fl<Χa3{y__f_L'>[cYSտǓ r+sxc6(CԫNjf\n.=[=/F(2%=LrWB5װr6OHWzнٗ땹$?S ;>y1Ӝb%bW_{gp
-"obTVVI|n%K$dhҔ'dVc-B<Gy4PD*ڂx`AnFZ3)jL%҉e糁{Uhf;@=0sO݅/X%[Z!3!1J=')MXUhbfRue|ҰP;HE41zYU:1÷{zo~ ;i̬R, ߌZJlU=c":V0&^'2bxlSSBML06\I97s4Q$]D \5VĊ\2B]Κa~fZP#@k 1CH Mcn9{K&V;QR'SbIMLZ[0w3JERH1ءi=T*a&MT p'ߩP4w''~|AdӞ?Ro [kgUĞ+%=ϊ4|AsC$CJqș70)xb^}n>wU=#.&ك4]KS>aE4ӃQwЊyةǚ%37Cm@P̜r@x"fm'`!`07DR μj+PpbwE(%)Vd4 h\wx(eZ̐@‹%i=НZv7b0֎1VJMԴAcKC+
-oLV%ԜwQaDKC)
-%ISKSZy7[8$3Uj._, "\LI.A}0[I84oA-I}w8%ԫbHsuoWCK4; 3ĘƪLr^biyPҐ@/BͻŔ&Rwx> V&N`O體W82riJ0~vJ@6kj)nhŵppwJU&uRp15?u`iH OfbJoqJӻ_CK<Vx+WM#nβS/0K)ɚ[ֆW:X$ ):E!VM)(01b]3SL'!{>H#YEjL}D 5` D҉:QW2!*P b
-'h'qnyflV͇:̷YNfnvCPm=p)!nqT$XmĨ˭2!/Ytsa5:d߆аKkZ= MΨ$0~h
-je@sD y":En(QC(bH$uϣ8˜M\B
-v5VLזT&4~!L:g?MW(tBx[鱔f&U!@MVPEqQG B"fUQLϛM2ĨPUI
-?0Iq]d QsVxS<V
-=HB*vjNER?7Hu Rf:V-'PEbWHjR!e)y-K!\Br_fU|XB"!UkU.K!TVh`q)tIQ}<S5 ɲW&eac2J4S{ϫ!\e6y8@9CGy|= ,-Bݬ٘ͪPGbD_闝:-āG]6GA!D~-#eW&eb2[?RG氳 "\eD&V,-0tKsYzfCaNԤ-~
-r+(+*z@dg\xq ,OAN!NACD"5! 
-ʈjX=Rp;Yjyoۨ7kR#^ASUUH`H%5ShV`y
-mo<LF {
-RJ$F}b
-BeQRDjZ9<*P)?\|#Oj СBA!8":/Vs2)iAN@؁`<r2 TZeDe&+T
- DS 1m_; cZG6FNjx)( (4=H
-"85Y
- [dG? <,4i9/Ϻy T<E%jWAYA#؄ ƌ>?w;3;9$ >̢iSBT0NʂLY!< _L{rAoڛXyW_v{P.U!*D ʊLY&xHt+u$xToL4wO~d(DT*p.ĩ SGqrN/Ă_>"Iŭ}P_jU>D k.Xj@P6aCn ݓxSŇBIʸc:~K0BdMP̚;) 2zda >O^!:#tZ`Ĵ6j}0Qm 
-QLʀlX=aaf{W.X vW$,?ie|G$@*p.Lā SG Jݖ"oxNIq=)[ݾKdI :[l=e pgUjYcV*lgX}]j\=XoAYq# c}PhCrHB("{7'&v!2$mܰ,@e, N@dH -K|P.RF=܆x$\̫Mk jPf[PV\`H !?Ԩ[pw㾅PY27QϽЄ.#|D!r
-`M=0xCx?$WP, NM8;pw m$cqQǃEm W|`U
-6Q\Ue<ho'ef$ Mq-t[CiH"j?$[zIi)qȶyCs(S@<
-3:)p>I#H`n@%pQU<3piW=raF@J MbMf-yMx{(TԢ׺'KT4hr.L!($dާK#a
-Ӳ"y"IlL|/UUѨ#p9v::ܓ
-.pⵖc3MVxObe@ZTZDp5;5x,!"eS֖{dIDS}얔fVPL!iO2IŊJ-*xi/*&O Sj^FWZ#~$eHRE68+v&Q-o}WQ6Ă'4*}o~"BBJ
-|o? g'm_xEeisYW jWSQS@j~7 */&ޕ`|'p}xF"WA(DT
-%m3\PІ6*~r'1K`OeJEHH6(Q
-[aG݈s%_/\#S|M=
-07HPd(@ժ_ꩨ) 5v?BT $\#b[8r%/HzP6aۓRBTB|&
-~;wO,HF5
-.`+[h)u>vCB h]w}E|;xdnŻoک,-
-_?^?\׏W=_2T'߇A~\Q{Sn~[>(]^">z>ofx_ W*@DgO>֨1ceۖ#qm3 gSSpPp#oѤQ3Tx!cNG-SuO7SBb(*,v5jhP0}&F͍[<Ewy  BR/Tw>k_6׼lcyF6Czب*FU.P;li35n
-VƇelD=%cD{ ?CˆuBkU0Z<ijO|HV%}V8e~v-ܧwY/^eq١퇦c~$͎ڏOB YxR8GҖ5k)\:ͧjZly]5m?G+O46\ObitQsm S;. f&iTAϣ/ =˖gu'|Pl#wn>tN;U߽
-nC[K CC7zr7jY,13?b_|PWswqk g~] 5N>n:Cw $0o'mOm/k>
- 1!+Þ:y}67f+}@BU~i |<T{:HB}z\ŏ.=X &A1)XP?i/SA{l/9`^kdulMmq
-gdڹneptߊSx85|U |]{5
-ᾮWs-?luƧlbY]:|kcӝ{
- {T>ԞczO/ӫnUͽ~i\b-=Յ>:-܅Kw(q?1
+<< /Filter /FlateDecode /Length 3961 >>
+stream
+x]K$ ϯl
+d|4Ro2/D%ZǓ)fBc"<+ QdFcT,oF$$&*ۓA^Wz4vaƶr_Z*3ߢ](U7-k[8)S''x1~b
+u^$G#U(d@:+Y)~P/s͂kc>OO2 ?OOJy8tC_̩!v-m%
+jF'[] ÌV
+K֖~;y)#pFMkpǤrW3߮yiəQFvrs<L'bJU;@v'ZB<sv /YI>VluEA2ͽȻ&O9&n{֪dbZ+̈́3sڌZ%
+FZq7>Z k[}եQ1m20͞,#(7s* QNc|^^7L}f Sc"e8ھ&:4-At5}/v~Kk\3j7Ɵ. Ϭ.)ߠyF80織uhm*e=`j11 <by]?8f]s<FUc<Zߖmև\ (ܶm&F}rmX%x5}R0}ُu>+|nLτʾg}<0oȾzR_Ƣ~ߛ?ZE!ĸ!n}{6&g:8[_kѵ̟k<qnLhJsn8=*WP )b]u[re¶rpٞ{+C-?kƶt65t(:pɤCZ9K
+>w/*yrp5J5&LaFo{U m
+Z&?-DwSA6X
+mXwW[s$~JM[Rڟ3;_~_$?׎u>'Yϴ ډ-3[`~3@jXB89c
+}kwBh
+}˴w5+d 635ii~nӼ@4/M6l'k'
+-MI_0:>y@P
+H?)#;0czFŭ7' 8(9J;$ }@3fb_3N04L<s^kQ2e[fU!'fPXEGQ@5w 쨴s6Pc(9
+;r1li{GHOހ]ItD]
+놷HŲ8Y(*b1}XSEXk&\AW֩#zA!Th!F>k"rNWZ}%V 1X%[C;C0N&w1;]7<&&I^g+>(r hA~]bA!YRTAS"IV[6 ,N2ckv Nmxɜ1GlIٜJ\xcJYg~ dPDM=M߄4F`4#@?M\&lg;M9N>
+Y7xˡiYb*gB , 3@Ӑ7DHh\=
+
+W  C`p-Up ce@ įp=$Jb|
+h~]@#AvH0hC#}<8.26ťKA/6yt<@rYQDAqv)`[ŎksSdGipk$XVtqK -0%
+pK6 ;Ng sۣNu<vu2 ɆꄴrnZ8Ԣnߡ:ͤLM% Om ][K`?u9d
endstream
endobj
895 0 obj
-<< /Type /Page /Contents 896 0 R /Resources 894 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
+<< /Type /Page /Contents 896 0 R /Resources 894 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
897 0 obj
<< /D [ 895 0 R /XYZ 78.37 808.885 null ] >>
endobj
-349 0 obj
-<< /D [ 895 0 R /XYZ 79.37 615.945 null ] >>
-endobj
894 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F17 380 0 R /F69 402 0 R /F15 381 0 R /F20 376 0 R /F21 378 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F20 382 0 R /F26 404 0 R /F52 376 0 R /F41 377 0 R /F53 649 0 R /F51 380 0 R /F29 375 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-900 0 obj
-<< /Filter /FlateDecode /Length 2924 >>
-stream
-x\͎S%xi9-{H&%*-EU},~*-ħ//;>^~8? N'1YϤ1}|#8.~o?+
-=y 2ř.+ի8h*^vfI䯚lx@i>=^']B }/
-[^ ȡ|^1I
-[f) sZܨ4.8T4sBPoEƥ4b8n΍ͤ;^@#x&Cړ4V> 82spLYPLfd>ǩT!FJ-,h
-6J)$;2$ˢʹCCY4zTl[ae4| շm߅o|)D)V %Vpw2dO#EgD,G(4ͪ bcrm)WRu_BQx(nH )hgSK2 ӷ x=N1M')xh(ҕcw 65ECLo:h ¿_N`t1AGU%f3ge=fM*fe'l5Z?韪opCsKabW~4&
-sf)Hm'~ILs*w^l2XQaI+q3%=
-0ܩ=s grvQ0qr5kL1s/e&3)\̃|
-3;
-uDD,7=Ջ[&cp\$2t.z.AvxN|qk]Eߺ8NyYϳ#/3𬓿e;lb-0x/O{` ђwN󝲾f$=VvJϘ |F^3;Ǹ3i瑴Z6LTKf+Auz$[rLnf(e }bQ9i)G7In߹nEafx7.gty~?V]wq"; h"Fü]ޜޣcyz>|KDIynCzG},)ύv <>~+VYyn{|O[w'=};>Ks- Zc|)/UVűS:(;UF6:9va'ٖ>gJ:+L?M/1*Ŕs0}i_n
-ءBo~'ڋotK{%]´fL͂ $p1xb~=,@`ns%zoE]@
+901 0 obj
+<< /Filter /FlateDecode /Length 4466 >>
+stream
+x\K|6`ȎFc9pb/~wWJ
+!-r)n"t}sgnq2JI
+V0R\o)llFP{?+oRa۝aG`&>A0x2))<[1r3B=<"Ki4`OQ1A^f#Wg
+
+s#"祲~ƴ euwsBibϭP=Xf
+sWEPҊ:/zϚ"*~.nRXW g Ui(FHB/ PX2IôVwK1dVh'x-w*lpfś?–5½&-p߃MifKHƸXMRȣ VtOfp3\;Z9W
+؃-lڸ2)_"-[c`&Gj.O0JɔI&jt@ĕ
+CXXE*(T`iH!Uo*$s_LJ eW@@_8ƽ{>Y?vLh,'7zT Pkkddn\)UX9sb-G
+߁=c;-vuvbl[
+#hq%.H4f*Ê"j+>Խ9\$ $ YogC(j tLU?ZPG q
++YI
+*ۺ:X]Ľ2^4UV&dJ ?\Mȫuh&]gapUD?
+L1n'XG,Z:f) ,f n4VcS!v*}М;}2j
+/$Ζc &.3/ӚsS3HyŰ_a9TELMZ *ao@UmSb23<!FGʭ#?e 6Û+V_+%blhD3b KKɉHLa)%O)y2.%I#e;M`R}4шYѣy$ D˧D9!&gJ#f0SŔTi 19W1۹a-)3*L(PAT~ʔq)9Q)2,I#e0Oƥ4ilt7cg CuPx҅Pq
+Jax[}v(LB$ g0r8"s|8/;?oe@>X&K߽j^bD&8sp
+(8$P_g,^ }؃_) IоKBȳؑPTT"BIJ3Y~l`H)7Y3ւآL̛F f:k@@)G [c&txhcQC>VmXLloor[}hZ89NKacdhbxԖºGJ:`M!A%ė~\*uNXq]BW+{oRF
+yo;Sk7OemKg^?anm c~gj)Ȳxm˪JAQ@$$v+ Ƴ-p#`}Rz%T<M^IW(EcIHmk-$(ߖƖq|<;x [IƓ$Qct`rVlW(
+چYq8ET&jU|1BPVi B l,mV(ͪvKM _PFvI(VT)( I]-Ц#`[n+ZگjB tpׯ$<[[dcY\8fz_ 8^
+WO-G7_kh`7{!۽tGtRZҭ='@?MT̽G aխHvrEbw2uƨEP G-&޼벵䂝P :Vᢷj!g +Tlղ8mk͂oybT,n$cB-itO,=FpÔaelHSwEG=yR|EwJ4nf*QAlu9RPq~ b9R޷[@q,_pT1Ȅc^tzy/E?̊/H'\v?-fV@G/R&3\|s@ Ɨ!ۿ>G MP[|E|4>ఢYۗƼiC~&';'dc]ujVovzeQ˦M֯ɻ]4pQ|jAѲ-CfYbC_DB,輦̪%צĕkv(%VC]<IͱLIlLkt
+^ ]_GTn1-k ǜbM~TfS3Uޮ|KԝjLL`>u2,yxs
endstream
endobj
-899 0 obj
-<< /Type /Page /Contents 900 0 R /Resources 898 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R >>
-endobj
-901 0 obj
-<< /D [ 899 0 R /XYZ 78.37 808.885 null ] >>
+900 0 obj
+<< /Type /Page /Contents 901 0 R /Resources 899 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R /Annots 903 0 R >>
endobj
-353 0 obj
-<< /D [ 899 0 R /XYZ 79.37 771.024 null ] >>
+903 0 obj
+[ 898 0 R ]
endobj
898 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-1019 0 obj
-<< /Filter /FlateDecode /Length 3308 >>
-stream
-x\͎# SF+Q0h=܂\SRU(UpHHQo?i|폇O7ʢۯ|3􁾙[Hʆ[Z9ۿ~hZCk Z|nԈT%<xIxɫPD-xx@}8f 0nDvGT!BԐx7؅3o!2[~FLqsey BUH(<3r:7?y$2>I,Op+C<&ܶ}E/ۅ>]A
-StT1@o
-%B0
-?UOLJ;*s9&BV;V X81}#WR|J.I$&R|'5mthº\r"n+%؀CRƤwl?CN%v6LO`T,{,%P%+C%wj![U?1LG,"UQkR+U aGX;آSMp{.{=AcMVzD #H.=[IB9\+c"׊mkp4?(M٠s6nZ;wnʼn sghY%mQm0BǒRgT@r0&[]3ɡїw{cRmﭐMrhY;T"R5Ƽ IXHh#m wVB? :p,B&uUdsmTz Iox aoI}W &p
->SvR
-'' zfQ% '[3
-h'fr냵\e^hVho91>.vr}e
-trGy!-rϤ%2z+ {ķX]ӥ^9ڭ]vp?֨'h
-=\[bsp@ne:
-чK6V+A_`(JJQU"l ZLDkVȧv1y.1IH`#gKB/hܯVm2eb.%Juqu3ͫ*yZq[1:i Q<SJC0Y,[ J[/~J eIK#ER:,P7IPw ~4K!(,me[n"]:۱+NrVRw<e c`(|܁Vf.uuk$</jw Mw퇻vBa.g/e^=@c?ZNg5cLkGo\5m>v&i<RewH;De' ⍛*4RÑmBpTIpD5VJ?nP:yyc:Jt[6UZ|XͲld'
-y|- gbmQ4AG"g
-N9k:m6C(:m$T$4-NU@^&A&NOUW]FM
-EU7q߳kU8KLD^fV>no~sFяe< #FXFY#l;Mx r;H6v&1̎0J%o-Nm^(I7)! cdІ"1EO3 6%Ʉv$ 4F<!AEqv
-р'%R`?On4=r x6.W@-(MpԠ@ .VuЩ'i\QlWhã
-tAygAf0!O@m*m|=%@)6tĎCpnw_+nDV:EO~V%+TVX^{b¡
-I?jCыg } WƻmVu~}qf}pufNvC2.C;B GiC+!%c)Cm4ZTj=rHm9r;byw"%׉\FEne_-RtUPZ e[|qy論pb nبtzHSA_
-1I]bи8TSy)ƫ&.hbSq٥J3U\5T0
-x$^?=m?ľ<-g4.ps suЯϧE
-q.5RfTȁA?W틉<)P.7*NXwXP QPr~z`欍>(Vx98wi
-^CLOdh_*uL4XΫX0O֌^1܃6a Im陫/-7͜`G0Z8UndITW>#Q(v QScǚm㱰(`=Hc ET1z^R) e_] }u!-ÝؤAKI98sJ
-endstream
-endobj
-1018 0 obj
-<< /Type /Page /Contents 1019 0 R /Resources 1017 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R /Annots 1021 0 R >>
-endobj
-1021 0 obj
-[ 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R ]
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.144 107.03 286.601 118.487 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
902 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 141.029 692.928 ]/A << /S /GoTo /D (page.9) >> >>
+<< /D [ 900 0 R /XYZ 78.37 808.885 null ] >>
endobj
-903 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 180.69 659.422 ]/A << /S /GoTo /D (page.9) >> >>
-endobj
-904 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.152 636.07 288.107 648.025 ]/A << /S /GoTo /D (page.18) >> >>
+345 0 obj
+<< /D [ 900 0 R /XYZ 79.37 771.024 null ] >>
endobj
-905 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.11) >> >>
+899 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F29 375 0 R /F23 379 0 R /F51 380 0 R /F57 385 0 R /F55 383 0 R /F65 388 0 R /F40 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
906 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Filter /FlateDecode /Length 5292 >>
+stream
+x]K$9nϯȣFz?F]S ؾ40vܳ}7 E)#2Q=3 LMU2Ip^$?WdO?O$/?(Pu Ip ^ _/y'R$ ^FWX7O8z\ͯzُW^맪~u_mJzهocBMl1Z3Ƹ B9[Ğt
+~?<x[\luRаjm3>՟m oy|vbr271(#-[-j?pu.WGe0T#MzV*:CU,{pRkK*exs0!/1{(=曎mmh2D)YZmr:Ryw e,-Bs
+LR+\7RVAuۡ|# %&V '-JܳDWʟr:hSt֜I8Gq:}| CW!vȷ}>~֧ ~waMS!^^~.Kц.w}&.wf7V?_nfb4nE)ufƳv> 17vica<TW]֙cC\~oP
+}
+p$xa<^]1$Avg&B(d׀
+%r҆:2ɱ8Q*i:z9ߝ rE<3=-3)A޾d _J@gKSf,%~rK"rQӸCz(@H0 ^LsJn);ywG2ig]%C3jآ.#f5rXUPs5 ]αSK6 )<\6e
+%=!LP+BJ#P`]fsN-C %vl`j؆.aB:LqFko6a@=`R[٠jPҳ "4"zj8w;6!בb#]a% Hq!!WՌq;aCA͎R ɵJ{厚gtC i0 ollF;Bf5;eWv]u KG"
+tՑCB00o^!!cNR
+ŋZ9H4\͔c:uA
+KH(M2]F عY+m`uԹPk_ܑKAaYnzx0sкԞvbݓ)beޘ%I #4,O FǴ
+uvnCJ2!7b҅g(a†\!>"KKXܯ`3ە" .61-i"c掉Xf;MPxL0sY~ q
+Aۂ0_H xrc$e`Cf}z4 &Ja{(=}?=JzeX~nǬu~dje`m< +ύ~̷&w≃ٚ:]K,4
+
+~iW;S4#+d:9@Od Y,B7fg^sUR/F">I%ᔵi@9hg)͎Nr XBO' /Xc
+W.I˵zTJpUZ^mj B[!hZ%5BJVd1{J8\ZEIBȟ.IKj/Ű
+1σ"&Sc);6-m|3lO {3xQF<se~ \iL=JPeSQ)^k->bJETIcRah &XrIQBևho6#SyNN8lw
+Wvp!XXY4le;p7'm߂#:y6Ǜ#gSHl; ݳi6Q?vL拋e&@!̀>ZF4iPLMG``yb̓s{*otv _jM@4yt$T¡QL$ux٭|&m5a}>fy][+&3`q1cT9u44;|bͷ:su {Vw_g]MBU,ڋGuGWt5`Zŏ ?
+gL,nJnWc:~up-ϸL ,5<1:?:(ny۴kҶTj+E*Y@~i-|,O2"?/o}W
+>zb+wEy'LL~ U/p{ DMBE^Icc&s~TzumɩfkgҒՖdΈ
+`ʛY:4FU i5&PfJ" pʝ_cZu''7h*?> RгcY訽a0 }1M}#X }0yBc/&H4$Y~B?2JeY;|c,b5v.з%Mz|:HLBokzfkAmϗ-GsnF>)~k7mmKFef 2)-|]W5&/aG%foڒ!4?4/O-</B1m7
+A$P-d90L8ZM!D
+
+qjw;%{,=[GOϏ;IOwb)'+p?`?ȏhZ[{Ffv v
+m~ ?!sCi'e蔟/6뤴?͔g
+endstream
endobj
-907 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.223 600.204 ]/A << /S /GoTo /D (page.25) >> >>
+905 0 obj
+<< /Type /Page /Contents 906 0 R /Resources 904 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
-908 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.318 588.249 257.492 600.204 ]/A << /S /GoTo /D (page.63) >> >>
+907 0 obj
+<< /D [ 905 0 R /XYZ 78.37 808.885 null ] >>
endobj
-909 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 576.862 174.872 587.691 ]/A << /S /GoTo /D (page.47) >> >>
+904 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F29 375 0 R /F20 382 0 R /F15 381 0 R /F23 379 0 R /F51 380 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
910 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.752 543.007 253.726 554.962 ]/A << /S /GoTo /D (page.3) >> >>
+<< /Filter /FlateDecode /Length 10715 >>
+stream
+x}ˎm7\_q]ܵ +؞*tO '%
+hU\ Z|_폷oOs7#%Wn?7w+ʭd~}{{N_Rι"s'G?>LU[$;{~S
+x 腵U #Zk}Qq ;ui㞜#M}'i!}^Z6+( Jͩ
+eb׃`K|OzE?X(0gl4n/!JĹN^CRQ|*h ?76M%$Z
+0Бv{_D7Pb4
+z^siR4 }1O]~Op@X G>F@_zƒVj\I^´GE2|[K{:2qG;ai4+e݁KWUL
+awihio gDћr^D"weRњ"zW%U͕R1)~>32S]T>4/wU^BZU\7'coo;߼R]2%[G^ھ+voR fZ?Ÿ~q=b-VWb 6cŎ==xPe :=_E.g||tESy}2gdEtK h/]b4띢 gD.phx~*>3}&N.$Wy4uTdGojp 驉2X%=ӯ?Yc~f걅Hp #fkHqpOocX?[MG
+)]/2pW\[G
+~YRJ^~Dag=Q
+-_G筲9$ݽyr.mSLgc:mWEgҞv!jMy?#scs-5ǽ2>߯Y~F2[d'|_I󼠦fi9~|[[^h+5_Y${
+f@+;3'g_\99;vȰ~6{ub%fһغt}P;)0Fog"?l f/Hw|ٗA3@
+(K'
+݌i?&eg4yr^wt>*[{-zϾEZ$ꓱK-|,R>vn˾hw+X7/Zt30Yn?(Qbyj?“5z#phV|G=բmas|jgez̷,?{p/E׶<^(5,;{Y-Kz)qsu3)WàG.|<xCNK/yoNiO[9C4Ċ9aG`h8Wo ~׋qz%Oh$e[q{@FL^Q:݁e)ƀU
+dA
+dQ;e(1:Pob'UEFg!y䒽epT{闽j|+ $`73AFt<%=V(NRәrM?n>4h"E!7Ep(E턮:SWjT <9d.]i~BV4 B$̥P*Cb971b1L+a+~6oN-M?Pc2IH-WI[D~Qs;PL^QK4!%% 1! mzR4w{;5-%1h!k5f8R~ aƐT<݄Qv4ww&|8W/=9qw;BWBB (?6uEF( kuPhϼuڭkfM
+ՉIK h/-hvrANN<8!1݄^ al+ ;]A!xhQ?LRd4 h\xiM6>Q*m@q3(()x<_3ԴҰL3S`$oUjj/@<Mv
+J=@6>jY{IpZ4ku$Uj.L.&yY+MFD>V)oeQ/s9 _}I>`<!dÞ;JME`
+>H<_ȼi [֥n!L^QמCe1 Y'
+VNq-~ b[kNӉ6QGv;ih<Iד
+7
+jz=Kp:f|LDW&6evC6!G459 ce^/Ժ .FӔzsڤhm`BCX&u3To3z:Z\I6e8U{Xb&=_EMju!tD(.nT 35J"AQ4ZhL-b(./b%Z#rF,ݑE(1C*,=~3XpK&TTKzV&Zʜ?ʁ2hӃXŬT`: 3XתOU<;.\RjeLE
++l"e+4e+dƺUǰl"e+D U.rV=p
+ݕ cz9HyW錱a*cXWX,G*#Åtw$JS:)'Ϸc$|w=0ax"5jX
+Vybe*'"*/y]}v~;9($LvLpƭ=U%kRG6W׳
+@˱)I70y&ts7cm:Ls
+t.uނ$g lp 䔢RaԥNYP V0FVY cǯe"H`Rv~m:Ln
+<.|RggJc6lԦ8k H=DY Bc$%N\hj^|Kq{`
+Nn 8DUJC-8p,Q}
+LєHoiz ;N1jtuD#Ƹ}H>)<ɩGj7A`Y
+"CGչdȏ#Q"?1U|u18nDWp1f@I#X$U5Z]4q ^U>Odj>Lu<NEʩ\3X2̧[Q5ŕz%4kz=0Cz 6: CP;aimV7iVcɭN
+ VUV󬀈PI/t첝#z-<Va} 1lJO]ZM5BK%!7Pj~oF;W'nO(enGAnDWpB)C0۲Cv".j#\tiL;
+
+%9Ҡ@ywz CO(acM=+Hk0w'F' 5 ܞEY3ZumH B2薞F(m%#Տ{b*x
+@ݨ
+:\8 #Udީ
+`?z)G<F(7d'ye(T٨3qyI<oB~ 3ϧ.rKnQ|j
+tJ*_{2x7=lcٵ%ۛbxnT
+TSe.$#Tx?'k9D{O ʳ[!2)ԣr׺L3HTታhTHm{<-h&Fvu9,)oͼtiXR f dRXYG%uL46qQ
+IMaWbd7޹`xrae?S}$
+e'^ɂN9[C{b4yą@Te.?'~@i/5Z%~N+Xn
+@*ĨfBn䃊PӅT_/ܮRҿn7Ht0n
+8ƴn; j> !ԯjAb6y:PIO5K[P
+`.e؇y>FA}dRk؂uI*#ڈ_7/>M]=QCukWީ07;KXLPM@{ j U[tm[|p8j~xFi7t ׾nbi&.4S*E_teL-h7H#ZM\{qѺ][4f^۱nii߳
+|Y1<,_0z«r￳w:4{^bE o7~GU؇%om}e[:
+^iOjm._cn a1~֎AfZܳƨ6im½0 }_{9MU,/%X^55(}W%>V.ú7IGɘ)\UY~Rw>umߵ1.[A/ <u܏~x)\ql߈ 9!Ç8'(Uׯy̔Ur50ؽh6MǑNp?-=cMeL7^U))XPgj/w
+ZkK-ߝG~bCۊX?dpX?ۇ5y-s_W^uz|oyܯ0߷mx[`[z=/kMvrk5ϻ;_}k\)m)͆=m
+y<ӧ/ӫ%?okZc]Y6},BG?W9է׼. 1>:AT>=__K}t @ xҾ:;-G$(x9֙>? &z̶9+pSNr|9p b=y)yzIs9'>Y] /s2nNB'.[ΧPqG֔yrm,dE+Br~PgEQk56su8Ų8?% Yoz~k`d~X:>-7K6>\_ rr6,V;\_x6㯧IKQ..F(Ɍ^goNM3K/LU_ Hv|4KJTqds^XP鷝87k.M*_k,5? }F_Y\4+OaP.zUHt8ʟVr58R}4V*l&<];yɬv^2 u^VRRQN[oA{c}͹)+Zq4H=wcj^~pC{U7[%sI-Wi?N:B.">Z?̯Mޞ(Y}$~W+qGWD%+ Wkݘʚ zN*Cn\C_Bӱ}uU]P+k?u{'Žy}ԗE叚wA7nc
+endstream
+endobj
+909 0 obj
+<< /Type /Page /Contents 910 0 R /Resources 908 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 873 0 R >>
endobj
911 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 531.62 180.102 542.449 ]/A << /S /GoTo /D (page.47) >> >>
+<< /D [ 909 0 R /XYZ 78.37 808.885 null ] >>
endobj
-912 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.47) >> >>
+349 0 obj
+<< /D [ 909 0 R /XYZ 79.37 771.024 null ] >>
endobj
-913 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.104 507.142 181.059 519.097 ]/A << /S /GoTo /D (page.34) >> >>
+353 0 obj
+<< /D [ 909 0 R /XYZ 79.37 193.14 null ] >>
+endobj
+908 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F52 376 0 R /F42 378 0 R /F23 379 0 R /F51 380 0 R /F29 375 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
914 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 495.754 122.817 506.584 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Filter /FlateDecode /Length 2371 >>
+stream
+x\ˮ6߯!Y|
+!S`ƪT<0fBqG<pvj,dj -~Z'=M:.9d4b>tn4<WK|w
+`RlZ"hUrIoi@6#)3KCGSd2fF^!?GӨM8?۱ 2giI{^82 \
+xaS>P\3K_0 Msk fӚ> Zw)E~nJ.}/"/JH1Wfq˚P*CwKƒ<.!Yvs+l=HaPÛS9~ZIR)r8Mv?iW=Z JLx?iW̠ґ|Rt;tL#7 %na8i9r*+Wn+1my9FJo{)_ݛ6t_G7a0-Li ̚?qeZAOZA*z̡PYa={ߌV2UdI$Hx_kk̩$ĸ41h`HYbaHcZjM0t$Y-%nd'm+H#).пRZg9+CAumPT_],z<yPA.[_bzѝfݱ(:-qujks#-s%zѾBfBVdjm:pρM| 4:jh0먩1G kZy)q5(/
+2+⊫bX
+},S sqWn6O=3qČعf&3)<3R
+&(ǘ
+93n(̈́$qf:Sf337R yi(<0i`$>NL<̀ pd&3+<O%7LgSK2p`'OV9^p唤+t3j1ou
+Jh͚I3W^v[0̶w:؅p{
+VU[Kf`OcmD~Nc$閚LV0ŗ֌gѴZ6LR-3^@㘐b xۋvJ {k$s77D!xWiF7Io?! m01Q-+8f]\ZbUHIx77u%xxc|
+R=JW*<MZi]ħk\Yy;|$N z2_7ZT;dL-=of_Kkc$?wZt;lnû
+{>oNѡY6n[ ϒB;e$v%MgtO⧓g<vRNEq櫟LԹǟT
+endstream
+endobj
+913 0 obj
+<< /Type /Page /Contents 914 0 R /Resources 912 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R >>
endobj
915 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.472 483.799 208.446 494.629 ]/A << /S /GoTo /D (page.4) >> >>
+<< /D [ 913 0 R /XYZ 78.37 808.885 null ] >>
endobj
-916 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.435 483.799 223.39 494.629 ]/A << /S /GoTo /D (page.10) >> >>
+912 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+1034 0 obj
+<< /Filter /FlateDecode /Length 3282 >>
+stream
+x\͎# SF+0h=܂\SJU(UpHHQo?i|폇 7C
+@GQ+nwCkxhFI[TсA,NyKcj1|M/@&EBH Q,zּ}83Ą_0gΟ+˃WP(k`ϴpV>Y,Op+c݉\ZY.5
+
+:nf5V9aql=F
+4*Mg֗nue/~H@'Fv.{(N:p"Ίj5hs(E# i[sAJvLκ?EN!I+ÄKY~4.ufĔKInj1NEyOfmPD[jtdYKu^J4߃ثԐwGdɟ%eK𫚒욮f޺![=<v<752Yp<̕VbJ}\iW3qւdr$*RGW&7>Š'/m([3pR ~oH-!w %h[NRX^1ž\0rծb}Qg0.y­K/
+$C}/"UcTmq$ #b3-YNg_Ʌc15sZ'[k{^Kz˩`AG}e`MbUt'\J zfAE '[3
+h'|
+I%u\6` eᄈ;
+,#tk$MV,LE7!>s !5gu9-$ aZU;KɞY<xz
+4\%rY%TN.gT%M 5U4jR$,zZ5y"a0{qc6C6Ľ/a
+.c
+j&w,Hi
+F9F$z?0ј%RPDeG;UGu_ʏBG{d|*i֓?jS EFnS\/:~TrڽS s@EH]QRrNNyA+g0 mGhU^6F6u=д]#a&E7*+|kO[9tƒQ>X)}6SSRm(zlr*@YgV(8
+z{[g|O!2S.*pY`1r}k#Kk+ő]1*Il&/"5V',r*c9K@EvDp%핍E2˾ZLW\HV&kZ[1J K0֭ A8ֳA_
+yʯI$ R%ɪP.^ki0-ι??ƟJ}blGkZLgr 10g\_ϧ Ç(}KM(Bǿ<r .j &; Ҧ;Fޫ,;5ƺ~b%j?i$f8҄Vι~d|FTuL4^ΫX(֌^1CȆ|6޳-SeљF+rRܞJ<{X%unpOI=5B
+|?
+c9AS?]uA(7 &]DH6_T,6W-hd -W'%nPD6MaT*_!o
+endstream
+endobj
+1033 0 obj
+<< /Type /Page /Contents 1034 0 R /Resources 1032 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1036 0 R >>
+endobj
+1036 0 obj
+[ 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R ]
endobj
917 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 471.495 154.2 482.674 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 141.029 692.928 ]/A << /S /GoTo /D (page.9) >> >>
endobj
918 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 459.54 154.2 470.718 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 180.69 659.422 ]/A << /S /GoTo /D (page.9) >> >>
endobj
919 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 447.934 159.43 458.763 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.152 636.07 288.107 648.025 ]/A << /S /GoTo /D (page.18) >> >>
endobj
920 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 435.979 159.43 446.808 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.11) >> >>
endobj
921 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.926 411.5 201.881 423.456 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.11) >> >>
endobj
922 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 174.165 399.545 186.12 411.5 ]/A << /S /GoTo /D (page.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.223 600.204 ]/A << /S /GoTo /D (page.26) >> >>
endobj
923 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.624 387.59 194.598 399.545 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.318 588.249 257.492 600.204 ]/A << /S /GoTo /D (page.65) >> >>
endobj
924 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.032 375.635 244.987 387.59 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 576.862 174.872 587.691 ]/A << /S /GoTo /D (page.49) >> >>
endobj
925 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.848 342.348 235.804 354.303 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.752 543.007 253.726 554.962 ]/A << /S /GoTo /D (page.3) >> >>
endobj
926 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 330.951 156.75 341.79 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 531.62 180.102 542.449 ]/A << /S /GoTo /D (page.49) >> >>
endobj
927 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.479 318.438 248.434 330.393 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.49) >> >>
endobj
928 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 307.05 127.799 317.88 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.104 507.142 181.059 519.097 ]/A << /S /GoTo /D (page.35) >> >>
endobj
929 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 295.095 159.181 305.925 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 495.754 122.817 506.584 ]/A << /S /GoTo /D (page.4) >> >>
endobj
930 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 283.13 191.38 293.969 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.472 483.799 208.446 494.629 ]/A << /S /GoTo /D (page.4) >> >>
endobj
931 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 283.13 207.43 293.969 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.435 483.799 223.39 494.629 ]/A << /S /GoTo /D (page.10) >> >>
endobj
932 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 271.175 160.157 282.014 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 471.495 154.2 482.674 ]/A << /S /GoTo /D (page.2) >> >>
endobj
933 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 271.175 176.207 282.014 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 459.54 154.2 470.718 ]/A << /S /GoTo /D (page.2) >> >>
endobj
934 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 259.22 173.946 270.059 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 447.934 159.43 458.763 ]/A << /S /GoTo /D (page.2) >> >>
endobj
935 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 259.22 189.995 270.059 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 435.979 159.43 446.808 ]/A << /S /GoTo /D (page.2) >> >>
endobj
936 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 235.319 238.075 246.149 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.926 411.5 201.881 423.456 ]/A << /S /GoTo /D (page.25) >> >>
endobj
937 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 223.364 211.535 234.194 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 174.165 399.545 186.12 411.5 ]/A << /S /GoTo /D (page.11) >> >>
endobj
938 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 172.481 210.841 179.455 222.796 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.624 387.59 194.598 399.545 ]/A << /S /GoTo /D (page.5) >> >>
endobj
939 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 186.931 245.826 198.886 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.032 375.635 244.987 387.59 ]/A << /S /GoTo /D (page.43) >> >>
endobj
940 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 186.931 262.095 198.886 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.848 342.348 235.804 354.303 ]/A << /S /GoTo /D (page.41) >> >>
endobj
941 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.465 174.976 231.42 186.931 ]/A << /S /GoTo /D (page.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 330.951 156.75 341.79 ]/A << /S /GoTo /D (page.41) >> >>
endobj
942 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.694 163.021 207.649 174.976 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.479 318.438 248.434 330.393 ]/A << /S /GoTo /D (page.15) >> >>
endobj
943 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 151.633 139.614 162.572 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 307.05 127.799 317.88 ]/A << /S /GoTo /D (page.29) >> >>
endobj
944 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 127.713 233.193 138.592 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 295.095 159.181 305.925 ]/A << /S /GoTo /D (page.17) >> >>
endobj
945 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.594 115.768 204.549 126.637 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 283.13 191.38 293.969 ]/A << /S /GoTo /D (page.2) >> >>
endobj
946 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 103.813 167.37 114.752 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 283.13 207.43 293.969 ]/A << /S /GoTo /D (page.24) >> >>
endobj
947 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 91.847 170.997 102.796 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 271.175 160.157 282.014 ]/A << /S /GoTo /D (page.2) >> >>
endobj
948 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 91.847 187.266 102.796 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 271.175 176.207 282.014 ]/A << /S /GoTo /D (page.24) >> >>
endobj
949 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 91.847 203.535 102.796 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 259.22 173.946 270.059 ]/A << /S /GoTo /D (page.2) >> >>
endobj
950 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 79.892 165.677 90.841 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 259.22 189.995 270.059 ]/A << /S /GoTo /D (page.24) >> >>
endobj
951 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 79.892 181.946 90.841 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 235.319 238.075 246.149 ]/A << /S /GoTo /D (page.18) >> >>
endobj
952 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 79.892 198.215 90.841 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 223.364 211.535 234.194 ]/A << /S /GoTo /D (page.23) >> >>
endobj
953 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 79.892 215.021 90.841 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 172.481 210.841 179.455 222.796 ]/A << /S /GoTo /D (page.2) >> >>
endobj
954 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 67.937 169.303 78.886 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 186.931 245.826 198.886 ]/A << /S /GoTo /D (page.18) >> >>
endobj
955 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 67.937 185.572 78.886 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 186.931 262.095 198.886 ]/A << /S /GoTo /D (page.70) >> >>
endobj
956 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 360.014 693.835 371.969 704.664 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.465 174.976 231.42 186.931 ]/A << /S /GoTo /D (page.11) >> >>
endobj
957 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.958 693.835 386.913 704.664 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.694 163.021 207.649 174.976 ]/A << /S /GoTo /D (page.38) >> >>
endobj
958 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.008 693.835 403.182 704.664 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 151.633 139.614 162.572 ]/A << /S /GoTo /D (page.36) >> >>
endobj
959 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.705 681.531 411.66 692.709 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 127.713 233.193 138.592 ]/A << /S /GoTo /D (page.18) >> >>
endobj
960 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.755 681.531 427.929 692.709 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.594 115.768 204.549 126.637 ]/A << /S /GoTo /D (page.43) >> >>
endobj
961 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 431.028 681.531 443.202 692.709 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 103.813 167.37 114.752 ]/A << /S /GoTo /D (page.29) >> >>
endobj
962 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.821 669.357 404.776 681.312 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 91.847 170.997 102.796 ]/A << /S /GoTo /D (page.29) >> >>
endobj
963 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.871 669.357 421.045 681.312 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 91.847 187.266 102.796 ]/A << /S /GoTo /D (page.47) >> >>
endobj
964 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.585 646.004 390.559 656.844 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 91.847 203.535 102.796 ]/A << /S /GoTo /D (page.63) >> >>
endobj
965 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.703 634.049 409.658 644.889 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 79.892 165.677 90.841 ]/A << /S /GoTo /D (page.29) >> >>
endobj
966 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 610.149 394.206 621.018 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 79.892 181.946 90.841 ]/A << /S /GoTo /D (page.47) >> >>
endobj
967 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.622 598.194 492.577 609.063 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 79.892 198.215 90.841 ]/A << /S /GoTo /D (page.62) >> >>
endobj
968 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.923 585.89 414.878 597.108 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 79.892 215.021 90.841 ]/A << /S /GoTo /D (page.63) >> >>
endobj
969 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 574.283 433.227 585.153 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 67.937 169.303 78.886 ]/A << /S /GoTo /D (page.29) >> >>
endobj
970 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.079 562.199 464.034 573.197 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 67.937 185.572 78.886 ]/A << /S /GoTo /D (page.47) >> >>
endobj
971 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.072 550.363 479.028 561.242 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 360.014 693.835 371.969 704.664 ]/A << /S /GoTo /D (page.36) >> >>
endobj
972 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 538.418 369.01 549.247 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.958 693.835 386.913 704.664 ]/A << /S /GoTo /D (page.41) >> >>
endobj
973 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 538.418 385.279 549.247 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.008 693.835 403.182 704.664 ]/A << /S /GoTo /D (page.70) >> >>
endobj
974 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 390.539 525.895 402.495 537.85 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.705 681.531 411.66 692.709 ]/A << /S /GoTo /D (page.18) >> >>
endobj
975 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.644 513.94 502.599 525.895 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.755 681.531 427.929 692.709 ]/A << /S /GoTo /D (page.69) >> >>
endobj
976 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 379.381 478.642 391.336 489.192 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.562 681.531 444.736 692.709 ]/A << /S /GoTo /D (page.70) >> >>
endobj
977 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.369 466.687 461.324 477.516 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.821 669.357 404.776 681.312 ]/A << /S /GoTo /D (page.13) >> >>
endobj
978 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.419 466.687 477.593 477.516 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.871 669.357 421.045 681.312 ]/A << /S /GoTo /D (page.70) >> >>
endobj
979 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.229 454.164 501.185 466.119 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.585 646.004 390.559 656.844 ]/A << /S /GoTo /D (page.5) >> >>
endobj
980 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 442.776 383.376 453.606 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.703 634.049 409.658 644.889 ]/A << /S /GoTo /D (page.46) >> >>
endobj
981 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.305 430.253 467.26 442.209 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 610.149 394.206 621.018 ]/A << /S /GoTo /D (page.5) >> >>
endobj
982 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 451.481 418.298 463.436 430.253 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.622 598.194 492.577 609.063 ]/A << /S /GoTo /D (page.40) >> >>
endobj
983 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.531 418.298 479.705 430.253 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.923 585.89 414.878 597.108 ]/A << /S /GoTo /D (page.25) >> >>
endobj
984 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.018 394.946 434.973 405.895 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 574.283 433.227 585.153 ]/A << /S /GoTo /D (page.15) >> >>
endobj
985 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.28 383.001 458.236 393.87 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.079 562.199 464.034 573.197 ]/A << /S /GoTo /D (page.33) >> >>
endobj
986 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.374 371.045 377.329 381.984 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.072 550.363 479.028 561.242 ]/A << /S /GoTo /D (page.50) >> >>
endobj
987 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 473.372 358.522 485.327 370.478 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 538.418 369.01 549.247 ]/A << /S /GoTo /D (page.23) >> >>
endobj
988 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.698 358.522 500.873 370.478 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 538.418 385.279 549.247 ]/A << /S /GoTo /D (page.68) >> >>
endobj
989 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.727 358.522 516.902 370.478 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 390.539 525.895 402.495 537.85 ]/A << /S /GoTo /D (page.18) >> >>
endobj
990 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 347.135 399.466 357.965 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.644 513.94 502.599 525.895 ]/A << /S /GoTo /D (page.20) >> >>
endobj
991 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 335.05 398.081 346.009 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 379.381 478.642 391.336 489.192 ]/A << /S /GoTo /D (page.23) >> >>
endobj
992 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 323.225 411.889 334.054 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.369 466.687 461.324 477.516 ]/A << /S /GoTo /D (page.18) >> >>
endobj
993 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 323.225 428.158 334.054 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.419 466.687 477.593 477.516 ]/A << /S /GoTo /D (page.59) >> >>
endobj
994 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 470.241 310.702 482.415 322.657 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.229 454.164 501.185 466.119 ]/A << /S /GoTo /D (page.47) >> >>
endobj
995 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 299.314 369.528 310.144 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 442.776 383.376 453.606 ]/A << /S /GoTo /D (page.25) >> >>
endobj
996 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 299.314 384.472 310.144 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.305 430.253 467.26 442.209 ]/A << /S /GoTo /D (page.15) >> >>
endobj
997 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 267.317 352.542 278.146 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 451.481 418.298 463.436 430.253 ]/A << /S /GoTo /D (page.13) >> >>
endobj
998 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 267.317 368.592 278.146 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.531 418.298 479.705 430.253 ]/A << /S /GoTo /D (page.22) >> >>
endobj
999 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 267.317 384.861 278.146 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.018 394.946 434.973 405.895 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1000 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 500.497 254.794 512.452 266.749 ]/A << /S /GoTo /D (page.20) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.28 383.001 458.236 393.87 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1001 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 230.884 454.779 242.839 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.374 371.045 377.329 381.984 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1002 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.876 218.928 480.831 230.884 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 473.372 358.522 485.327 370.478 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1003 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 206.973 401.309 218.928 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.698 358.522 500.873 370.478 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1004 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.071 195.576 458.026 206.455 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.727 358.522 516.902 370.478 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1005 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 481.476 183.063 493.432 195.018 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 347.135 399.466 357.965 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1006 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 171.317 361.508 182.505 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 335.05 398.081 346.009 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1007 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.476 159.153 453.432 171.108 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 323.225 411.889 334.054 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1008 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.715 147.197 406.689 159.153 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 323.225 428.158 334.054 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1009 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.784 147.197 422.958 159.153 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 470.241 310.702 482.415 322.657 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1010 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.825 135.242 483.78 147.197 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 299.314 369.528 310.144 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1011 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.336 103.245 459.292 115.2 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 299.314 384.472 310.144 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1012 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 479.725 91.29 491.68 103.245 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 267.317 352.542 278.146 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1013 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 67.379 426.156 79.334 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 267.317 368.592 278.146 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1014 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 67.379 442.425 79.334 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 267.317 384.861 278.146 ]/A << /S /GoTo /D (page.62) >> >>
endobj
-1020 0 obj
-<< /D [ 1018 0 R /XYZ 78.37 808.885 null ] >>
+1015 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 500.497 254.794 512.452 266.749 ]/A << /S /GoTo /D (page.21) >> >>
endobj
-357 0 obj
-<< /D [ 1018 0 R /XYZ 79.37 706.717 null ] >>
+1016 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 230.884 454.779 242.839 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1017 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F67 389 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.876 218.928 480.831 230.884 ]/A << /S /GoTo /D (page.50) >> >>
endobj
-1128 0 obj
-<< /Filter /FlateDecode /Length 3265 >>
-stream
-x\Ɏ$7W
-I "rtЮX(%,&&ˏoݔ}":)!ԛ7Nۿ~h)5=[?<C׼1XKOP Mo)o/enߵs&Nwѱqt?DYɊ [icS-AJ絴\K35dg/,CCS.ua%˓d&ysz'i}
- W-k_+͸+煉ML ~dcUIi)>pK.uLX~7-*p7x`nnxt~eQ7Eg5ftB$ŵ>^蹴nz*
-U巤UFRY+b\%ׅ;c[l2xFg9vsINt
-)x+piCgq95zIzRS^<] B&(]`VwJFt(p,d=JH+f N6T;D#_7W(j>GPnVBAP7n>]Yu (YuSd;޷`AV; jUZ5Z([eLOl 45vG˻g'z{7Bd
-`6S
-+ЈPmT8ui9\u
-&5"RY,w8B]s2
-Rz ӈ\[[B
-_UKV)f3&ybL
-[FjT3//X6#Nuv{_ }Ri]'N]
-Bi=*߷o[qb@/w^5N"'4t8abJbAh5е&fu ZhpHU{'%Lp:)LHadWd:+!);Ğnȏr{{+aa=[8NK3 83d{*L=N? I󳜲ؙ_N-K&; M?|R'A4 -֠L4
-'>}b$H2-} 9ǦQC_`ipZՀpn}w"p5[>aNl b|fqPƒg .n-[/ۭoMҘu?d&G1Chv3r&5\yYwA^EDɿa-۩*nG</f]V]:8LMf;aTQQuN
-ulìj#΃nBaBjKYԆk)% EȅkS>G["_̐@$)CLvW?F&X4GNU}e^T]ul{}ĝQG=ZQ̵Oч3)_]
- PyǷ
-endstream
-endobj
-1127 0 obj
-<< /Type /Page /Contents 1128 0 R /Resources 1126 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1131 0 R >>
+1018 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 206.973 401.309 218.928 ]/A << /S /GoTo /D (page.65) >> >>
endobj
-1131 0 obj
-[ 1015 0 R 1016 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R ]
+1019 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.071 195.576 458.026 206.455 ]/A << /S /GoTo /D (page.35) >> >>
endobj
-1015 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.361 757.574 261.316 769.529 ]/A << /S /GoTo /D (page.42) >> >>
+1020 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 481.476 183.063 493.432 195.018 ]/A << /S /GoTo /D (page.43) >> >>
endobj
-1016 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 265.411 757.574 277.585 769.529 ]/A << /S /GoTo /D (page.58) >> >>
+1021 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 171.317 361.508 182.505 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1022 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.085 745.619 284.041 757.574 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.476 159.153 453.432 171.108 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1023 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.715 147.197 406.689 159.153 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1024 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.66 721.708 240.615 733.664 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.784 147.197 422.958 159.153 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1025 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.825 135.242 483.78 147.197 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1026 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.336 103.245 459.292 115.2 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1027 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.279 665.027 214.234 675.857 ]/A << /S /GoTo /D (page.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 479.725 91.29 491.68 103.245 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1028 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.223 665.027 229.178 675.857 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 67.379 426.156 79.334 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1029 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.205 652.504 173.178 664.459 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 67.379 442.425 79.334 ]/A << /S /GoTo /D (page.60) >> >>
endobj
-1030 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 641.117 129.153 652.056 ]/A << /S /GoTo /D (page.27) >> >>
+1035 0 obj
+<< /D [ 1033 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1031 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 629.152 132.78 640.101 ]/A << /S /GoTo /D (page.27) >> >>
+357 0 obj
+<< /D [ 1033 0 R /XYZ 79.37 706.717 null ] >>
endobj
1032 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 629.152 149.049 640.101 ]/A << /S /GoTo /D (page.46) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F66 389 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1033 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 171.305 616.639 183.261 628.594 ]/A << /S /GoTo /D (page.40) >> >>
+1143 0 obj
+<< /Filter /FlateDecode /Length 3264 >>
+stream
+x\r$ W"&Rn_jI&I$}  d˷ɷ7eߢN;x7zQҩO):_?bGK-5~i+_S-wzCӛAۥ<o~KOܟ~~;IEt,gG ̄֏dȍy19D{^KuSRsIv&B"<44"kZG.Y<If8{'.1#.*.H+[8QyWb] fqW 9# ǪS*
+Sze#t^v;eŒ1 Qqs=ίC6<;̺ܿfLP(Wg+=>MR]]E<W!pR=H*kEy{Gs x@,'n.B)1FܩVWt֧4s\B5H[R=.
+=f<l ;.ȌPZOL w޻1dܙC 3١U6abe@'͕fZ;X% %͵ Rx×{2m
+]hsJƍZ
+QFw)-X=RPa]#rcyBooRN'dWG=e)'Q‚370FXcX݆ڐzJ7`dA+%20R
+ &(P~E.doV$V4=e
+\…;`"&j; k4Jj;K
+o<ެ
+rKj¸ `AMy
+Tn.I \S-lUw
+C$5 9_
+[FjT3//X6#Nuv{_ }Ri]'N]
+.`
+3rP,E]H\;7PFnkiU5
+T1"4\''U:bF3m<W&&/<QVAGV唆~aHPN
+~pR\n"Ŕ41֣IfPm\^W/33}胭`A4(C.zX74QzB4<qCn0/V6: b<'/Mrh^n#l-mI
+-ۖy78n 8s9˝WSu ]#NDù͟ԳT{BV
++#[[ȴ=2JG |-%:iW¹{[ܕsl=lY;,m4$њAA -[?Z^[Ͼ1i u/bG1Chv3r&5\yYwA^EDgÈew;XŭH}'WcEҬ>JspXK'5<
++ᑚ*F7ԫ% PީvfO(*vRZ"ڄD
+(D633E*(}
+endstream
endobj
-1034 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.131 604.683 155.086 616.639 ]/A << /S /GoTo /D (page.40) >> >>
+1142 0 obj
+<< /Type /Page /Contents 1143 0 R /Resources 1141 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1145 0 R >>
endobj
-1035 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.309 592.728 206.264 604.683 ]/A << /S /GoTo /D (page.40) >> >>
+1145 0 obj
+[ 1030 0 R 1031 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R ]
endobj
-1036 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.799 580.773 179.754 592.728 ]/A << /S /GoTo /D (page.40) >> >>
+1030 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.361 757.574 261.316 769.529 ]/A << /S /GoTo /D (page.43) >> >>
+endobj
+1031 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 265.411 757.574 277.585 769.529 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1037 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.681 547.644 237.637 558.832 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.085 745.619 284.041 757.574 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1038 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.912 535.688 242.867 546.876 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1039 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 502.708 143.49 513.538 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.66 721.708 240.615 733.664 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1040 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 490.753 159.181 501.582 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1041 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 466.275 189.896 478.23 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1042 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 454.888 127.799 465.717 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.279 665.027 214.234 675.857 ]/A << /S /GoTo /D (page.10) >> >>
endobj
1043 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 430.977 170.957 441.846 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.223 665.027 229.178 675.857 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1044 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 419.022 196.86 429.891 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.205 652.504 173.178 664.459 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1045 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 407.057 233.193 417.936 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 641.117 129.153 652.056 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1046 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 384.86 130.18 393.707 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 629.152 132.78 640.101 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1047 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 370.912 133.029 382.031 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 629.152 149.049 640.101 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1048 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 347.291 170.957 358.16 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 171.305 616.639 183.261 628.594 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1049 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 335.336 196.86 346.205 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.131 604.683 155.086 616.639 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1050 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 323.371 233.193 334.25 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.309 592.728 206.264 604.683 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1051 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 311.416 193.442 322.255 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.799 580.773 179.754 592.728 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1052 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 311.416 209.711 322.255 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.681 547.644 237.637 558.832 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1053 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 278.087 134.523 288.916 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.912 535.688 242.867 546.876 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1054 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 278.087 150.573 288.916 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 502.708 143.49 513.538 ]/A << /S /GoTo /D (page.31) >> >>
endobj
1055 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.538 266.122 166.493 277.001 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 490.753 159.181 501.582 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1056 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.207 253.609 252.162 265.564 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 466.275 189.896 478.23 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1057 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.3 241.653 203.256 253.609 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 454.888 127.799 465.717 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1058 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.295 208.315 199.251 220.27 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 430.977 170.957 441.846 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1059 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.501 174.976 224.456 186.931 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 419.022 196.86 429.891 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1060 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.61 163.021 245.565 174.976 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 407.057 233.193 417.936 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1061 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 251.861 151.065 263.816 163.021 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 384.86 130.18 393.707 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1062 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.716 139.598 201.672 150.507 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 370.912 133.029 382.031 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1063 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.66 139.598 216.616 150.507 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 347.291 170.957 358.16 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1064 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 127.713 127.46 138.552 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 335.336 196.86 346.205 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1065 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 127.713 143.729 138.552 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 323.371 233.193 334.25 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1066 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 127.713 159.998 138.552 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 311.416 193.442 322.255 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1067 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 115.758 131.086 126.597 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 311.416 209.711 322.255 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1068 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 115.758 147.355 126.597 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 278.087 134.523 288.916 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1069 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 103.813 127.799 114.642 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 278.087 150.573 288.916 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1070 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 67.937 223.071 78.816 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.538 266.122 166.493 277.001 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1071 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.62 758.012 367.576 769.081 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.207 253.609 252.162 265.564 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1072 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 733.664 420.925 745.619 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.3 241.653 203.256 253.609 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1073 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.15 721.708 453.105 733.664 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.295 208.315 199.251 220.27 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1074 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.386 710.241 427.341 721.25 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.501 174.976 224.456 186.931 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1075 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.515 697.798 448.47 709.753 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.61 163.021 245.565 174.976 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1076 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 359.247 686.281 371.202 697.24 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 251.861 151.065 263.816 163.021 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1077 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.81 674.326 415.765 685.285 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.716 139.598 201.672 150.507 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1078 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.434 649.977 473.389 661.933 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.66 139.598 216.616 150.507 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1079 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 482.016 638.022 493.972 649.977 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 127.713 127.46 138.552 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1080 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.066 638.022 510.241 649.977 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 127.713 143.729 138.552 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1081 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.111 626.067 429.085 638.022 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 127.713 159.998 138.552 ]/A << /S /GoTo /D (page.62) >> >>
endobj
1082 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.51 592.194 410.465 604.149 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 115.758 131.086 126.597 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1083 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 474.542 580.239 486.498 592.194 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 115.758 147.355 126.597 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1084 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.344 568.284 475.3 580.239 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 103.813 127.799 114.642 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1085 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 523.024 394.206 533.893 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 67.937 223.071 78.816 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1086 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 511.068 420.109 521.938 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.62 758.012 367.576 769.081 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1087 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 499.103 456.442 509.982 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 733.664 420.925 745.619 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1088 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.909 486.59 439.864 498.545 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.15 721.708 453.105 733.664 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1089 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.244 474.854 372.218 486.032 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.386 710.241 427.341 721.25 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1090 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 462.899 429.503 474.077 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.515 697.798 448.47 709.753 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1091 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 451.293 377.449 462.122 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 359.247 686.281 371.202 697.24 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1092 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 439.337 408.582 450.167 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.81 674.326 415.765 685.285 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1093 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 439.337 424.851 450.167 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.434 649.977 473.389 661.933 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1094 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 427.382 413.812 438.212 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 482.016 638.022 493.972 649.977 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1095 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 415.138 408.831 426.256 ]/A << /S /GoTo /D (page.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.066 638.022 510.241 649.977 ]/A << /S /GoTo /D (page.62) >> >>
endobj
1096 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 403.472 382.679 414.301 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.111 626.067 429.085 638.022 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1097 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 391.517 387.909 402.346 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.51 592.194 410.465 604.149 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1098 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 379.562 392.891 390.391 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 474.542 580.239 486.498 592.194 ]/A << /S /GoTo /D (page.65) >> >>
endobj
1099 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 367.606 375.894 378.436 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.344 568.284 475.3 580.239 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1100 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 355.651 351.526 366.481 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 523.024 394.206 533.893 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1101 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.719 343.128 410.674 355.083 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 511.068 420.109 521.938 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1102 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.663 343.128 425.618 355.083 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 499.103 456.442 509.982 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1103 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.714 331.173 478.669 343.128 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.909 486.59 439.864 498.545 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1104 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.654 319.786 438.609 330.615 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.244 474.854 372.218 486.032 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1105 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.598 319.786 453.553 330.615 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 462.899 429.503 474.077 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1106 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.648 319.786 469.822 330.615 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 451.293 377.449 462.122 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1107 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 307.482 366.739 318.66 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 439.327 408.582 450.167 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1108 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.546 283.352 395.501 295.307 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 439.327 424.851 450.167 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1109 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.595 283.352 411.77 295.307 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 427.382 413.812 438.212 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1110 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 271.845 368.721 282.904 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 415.138 408.831 426.256 ]/A << /S /GoTo /D (page.1) >> >>
endobj
1111 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 237.743 419.043 248.921 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 403.472 382.679 414.301 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1112 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.854 213.614 462.828 225.569 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 391.517 387.909 402.346 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1113 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 189.703 432.044 201.659 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 379.562 392.891 390.391 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1114 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 165.793 446.938 177.748 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 367.606 375.894 378.436 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1115 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.22 131.92 439.175 143.875 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 355.651 351.526 366.481 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1116 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 120.403 388.935 131.362 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.719 343.128 410.674 355.083 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1117 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 108.289 403.351 119.407 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.663 343.128 425.618 355.083 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1118 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 96.493 380.278 107.562 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.714 331.173 478.669 343.128 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1119 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 96.493 396.547 107.562 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.654 319.786 438.609 330.615 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1120 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 84.319 377.449 95.497 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.598 319.786 453.553 330.615 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1121 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 72.423 382.679 83.542 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.648 319.786 469.822 330.615 ]/A << /S /GoTo /D (page.60) >> >>
endobj
-1129 0 obj
-<< /D [ 1127 0 R /XYZ 78.37 808.885 null ] >>
+1122 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 307.482 366.739 318.66 ]/A << /S /GoTo /D (page.13) >> >>
endobj
-1126 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F57 385 0 R /F56 384 0 R /F67 389 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+1123 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.546 283.352 395.501 295.307 ]/A << /S /GoTo /D (page.43) >> >>
endobj
-1221 0 obj
-<< /Filter /FlateDecode /Length 3250 >>
-stream
-x\ˎ W\E40=}+@ֳ MVmHY*K*OrE]2_㐒[yӷ|۟>ܒJz7C7BRnoX٧9.?O "]C߀O~,OwϿtͤ3)(Qg0EO4
-T#}Ф]מ6zEn<h$e-}SSAe|2%k"{5-ݯ3|P9\)np&Bcg͙="A ]
-Fy)zOECT΃iQ"t?E$2g4[Oa=sה.4͛_ ~y.,}狀l`&Bv]L{XNRMqf.}\|q 8a
-1IjM
-;rqެiWBKPscb I6l keʦI/ $9^0&}G'
-!tEA䙗0_/V1"ɠ#%OUr/GψErZ4X%GZt]EU*]}n`A['p.TRِ9OHT
-`JGwY Eǒv:S 
-OC^T(#sg)teHJ :3 J_^0~3&[n[AadtD gR.jTfŀd"\! @n' 2~^XpHK+0z~
-?FwD?&_Wx(ؖ98<o4V*'Ƴ~ĮWu gSԚpشhqEœͦ@VeDOVA,ڲ Xf5jgLRl^q-VT]8iMU;,}əvWJ ]L[EHgv?mQ|) & 2=!J$k'<MPp,c:85ު6eDsXӔ, b?p[5*|bDKjP6ۘ\jޔ]
-`j6"XH. FM$OE')oF6P5~rj3z<HHzlTo|%'T|MWٓJ5zJ"9ԦZ>K9ݸΉړMu~#p2(v EM>ƥ9}&l.kNjrbxW,@k<mz= b쾎/(_U^>Rr}4Ilʐw.{[v
-
-/C5A &_l6t.6zv4=9չּ~̑])m<rO$G%;33|VRS=;p3=';8 NhsUӹ:`zOLdr'ʣNL\o6ng_v2$̇tQdNW
-HP-n',}#ux8aHg R=F $ DƳ]չPV'l',;Ӗ "z޴Y(=c[>B4isƥ"۾ CA[4jFM{2sD9#XFWM mPoazη&dN G)+.K0[IH
-ax7@]ɫjH63 l0z MKQaE%Z>9O$
-
-'7;sMЇLy4Ӱ^w9R
-Mb;'t9pJ(8<+!(phy`TK.OKIߕRp>t_1?`Ts&Sf(i]1(l?hixh~f 鱃:򰬮Zuil 2H@"Û5Cy   $dEqRܮUA="ydyPk֊= = >.$(h Gt`c $ͩQ3~l='Z(:GۿWt
-endstream
+1124 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.595 283.352 411.77 295.307 ]/A << /S /GoTo /D (page.60) >> >>
endobj
-1220 0 obj
-<< /Type /Page /Contents 1221 0 R /Resources 1219 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1223 0 R >>
+1125 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 271.845 368.721 282.904 ]/A << /S /GoTo /D (page.31) >> >>
endobj
-1223 0 obj
-[ 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R ]
+1126 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 237.743 419.043 248.921 ]/A << /S /GoTo /D (page.50) >> >>
endobj
-1122 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.339 757.584 214.294 769.529 ]/A << /S /GoTo /D (page.28) >> >>
+1127 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.854 213.614 462.828 225.569 ]/A << /S /GoTo /D (page.5) >> >>
endobj
-1123 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.283 757.584 229.238 769.529 ]/A << /S /GoTo /D (page.33) >> >>
+1128 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 189.703 432.044 201.659 ]/A << /S /GoTo /D (page.19) >> >>
endobj
-1124 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.333 757.584 245.507 769.529 ]/A << /S /GoTo /D (page.59) >> >>
+1129 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 165.793 446.938 177.748 ]/A << /S /GoTo /D (page.39) >> >>
endobj
-1125 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.633 723.701 258.588 735.656 ]/A << /S /GoTo /D (page.32) >> >>
+1130 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.22 131.92 439.175 143.875 ]/A << /S /GoTo /D (page.43) >> >>
+endobj
+1131 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 120.403 388.935 131.362 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1132 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 702.062 130.18 710.909 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 108.289 403.351 119.407 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1133 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.584 688.403 143.54 699.233 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 96.493 380.278 107.562 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1134 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.354 676.448 154.309 686.999 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 96.493 396.547 107.562 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1135 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.018 663.925 283.973 675.88 ]/A << /S /GoTo /D (page.20) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 84.319 377.449 95.497 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1136 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 241.682 651.97 248.655 663.925 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 72.423 382.679 83.542 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1137 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 628.06 197.677 640.015 ]/A << /S /GoTo /D (page.19) >> >>
+1144 0 obj
+<< /D [ 1142 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1138 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 280.187 616.104 292.142 628.06 ]/A << /S /GoTo /D (page.19) >> >>
+1141 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F57 385 0 R /F56 384 0 R /F66 389 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1139 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 580.797 223.071 591.676 ]/A << /S /GoTo /D (page.34) >> >>
+1235 0 obj
+<< /Filter /FlateDecode /Length 3264 >>
+stream
+x\͒# S
+͓Q׿n>W5ZS߇qُ }͟7W[&Z;c;>,q#LbDEJ|~2'sӉ#P&Ome+y ,zj0zeBXxi1Yf+A /ŏ6̋_Г7hZyϳSkYOTcD򾪒>҅Ya'U$KfJpKd4OkWkB?~N<&jWEkOHwϋ&*kOoN+@Ѱ}8dϲiZG #꙲<}o"
+y6O\z>%ĮWyHzʫ^YCP@iw>IL2fΑNX9[ϼKȨ7.a,7> iz,,uƛQS6"hׅϴSxIJ ̅O²MS QV6J[N]#|7K"&_7'yk 8ZBE3Z’i v# c"۷'|")H+ϼ-ͅ94[8ȋk&J~,| 3AGFtñ7G(%8'aR<`H.:^բ,5q_5kv(Htu
+΂n׊E$XqLJK=uIf Y6![傄#4Fظ` ȥ^~vu׈
+APz7䶒d
+ $)h,9TydPc :;Ӑa@pUHo<\9z9|Er2cSHkMiC$8ڌ^dҧٷ$M1H!ùvr%h_D*P3\'<C4 uB@I
+ڊ\! bG݆#E^>pSat>Z&#~u:;͖lɰjq3zVaJDP:Iz|UٽZQ2EKש-r\<)Eœ'<p'U;u4jdVޙDMs^l~¤O!{/nMv+.)n +jxz
+֩!z@9 HNb6FB41JTڒUq-5*NGU`Ms$/ ȵi=1uJZZw=W=},Dͮ^ /*Fr1j{*:Iy1*k-h.'?TM xHPwzv3:d.:ɥ8kNN;+pJ ǕVvM|45NTO6s2mEv}92dQf 'N\U.KM>ƥ9|*XNQ.Nl~ںiHzs/H֤ vi]Q͓O׶3.C>ϓC
+YiӬD@)NJrpr)jۥ6Y*?־p1d%K!rM͛8b _|@AaExm:u$A4`T.&y!duvN'Tt% 0XJ-fF4f ]9A1 vn'1 ˦ck "z޴i?3M3?Sȣ2q }/}(hF"
+؎cfzqK4\"4а }R\sz䵨Y-&$1G|8G&ޟN ԯB4&wk/'oA-/{t''pAส1T&w\FNKFOO@ҿkQYAq׸
+@>sf};ybr8^ѱARqNUkZ+HAF[`kMb*"zLѧT(@%x IM39oZp|Ij~!/KXu{ې數G3Qmº8[$A2!"O12Gʜ̑Rn},#Oz蓔,Zh!hv"0]m#'_́m
+ߖÓ\::di?0ð^wn8T휄uuf](¡ XJFd:0])^ Oq?gs
+EC7:
+endstream
endobj
-1140 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.046 568.722 151.002 579.681 ]/A << /S /GoTo /D (page.51) >> >>
+1234 0 obj
+<< /Type /Page /Contents 1235 0 R /Resources 1233 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1237 0 R >>
endobj
-1141 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 544.373 197.677 556.329 ]/A << /S /GoTo /D (page.38) >> >>
+1237 0 obj
+[ 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R ]
endobj
-1142 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.576 532.418 236.531 544.373 ]/A << /S /GoTo /D (page.36) >> >>
+1137 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.339 757.584 214.294 769.529 ]/A << /S /GoTo /D (page.29) >> >>
endobj
-1143 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 521.021 133.248 531.86 ]/A << /S /GoTo /D (page.22) >> >>
+1138 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.283 757.584 229.238 769.529 ]/A << /S /GoTo /D (page.35) >> >>
endobj
-1144 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 521.021 149.517 531.86 ]/A << /S /GoTo /D (page.24) >> >>
+1139 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.333 757.584 245.507 769.529 ]/A << /S /GoTo /D (page.61) >> >>
endobj
-1145 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 521.021 165.567 531.86 ]/A << /S /GoTo /D (page.46) >> >>
+1140 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.633 723.701 258.588 735.656 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1146 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 497.121 170.957 507.99 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 702.062 130.18 710.909 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1147 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.596 485.166 212.551 496.035 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.584 688.403 143.54 699.233 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1148 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 461.255 238.075 472.085 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.354 676.448 154.309 686.999 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1149 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.17 461.255 254.344 472.085 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.018 663.925 283.973 675.88 ]/A << /S /GoTo /D (page.21) >> >>
endobj
1150 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 449.3 211.535 460.129 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 241.682 651.97 248.655 663.925 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1151 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.629 449.3 227.804 460.129 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 628.06 197.677 640.015 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1152 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 436.777 219.355 448.732 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 280.187 616.104 292.142 628.06 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1153 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.567 424.822 281.522 436.777 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 580.797 223.071 591.676 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1154 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 403.183 130.18 412.03 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.046 568.722 151.002 579.681 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1155 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 389.175 143.49 400.354 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 544.373 197.677 556.329 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1156 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.944 377.001 244.899 388.956 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.576 532.418 236.531 544.373 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1157 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.994 377.001 261.168 388.956 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 521.031 133.248 531.86 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1158 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.611 343.128 216.785 355.083 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 521.031 149.517 531.86 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1159 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.88 343.128 232.835 355.083 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 521.031 165.567 531.86 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1160 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.26 331.173 240.215 343.128 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 497.121 170.957 507.99 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1161 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 319.776 154.07 330.615 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.596 485.166 212.551 496.035 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1162 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.162 307.263 264.117 319.218 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 461.255 238.075 472.085 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1163 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.982 295.307 282.937 307.263 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.17 461.255 254.344 472.085 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1164 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.043 283.352 287.998 295.307 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 449.3 211.535 460.129 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1165 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 259.442 223.689 271.397 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.629 449.3 227.804 460.129 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1166 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.335 247.487 175.29 259.442 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 436.777 219.355 448.732 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1167 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.811 235.532 205.766 247.487 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.567 424.822 281.522 436.777 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1168 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 235.126 223.576 247.081 235.532 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 403.183 130.18 412.03 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1169 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 211.621 293.653 223.576 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 389.175 143.49 400.354 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1170 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 200.234 157.946 211.063 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.944 377.001 244.899 388.956 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1171 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.539 187.711 216.494 199.666 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.994 377.001 261.168 388.956 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1172 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.589 187.711 232.763 199.666 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.611 343.128 216.785 355.083 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1173 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 166.072 130.18 174.919 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.88 343.128 232.835 355.083 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1174 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 139.89 225.183 151.845 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.26 331.173 240.215 343.128 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1175 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.278 139.89 241.233 151.845 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 319.776 154.07 330.615 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1176 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.328 139.89 257.502 151.845 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.162 307.263 264.117 319.218 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1177 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.597 139.89 273.771 151.845 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.982 295.307 282.937 307.263 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1178 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 115.98 225.183 127.935 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.043 283.352 287.998 295.307 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1179 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 82.675 159.181 93.504 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 259.442 223.689 271.397 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1180 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 82.675 175.45 93.504 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.335 247.487 175.29 259.442 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1181 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.15 70.152 254.105 82.107 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.811 235.532 205.766 247.487 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1182 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 758.142 387.66 768.971 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 235.126 223.576 247.081 235.532 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1183 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 393.1 745.619 405.055 757.574 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 211.621 293.653 223.576 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1184 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.732 733.664 409.907 745.619 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 200.234 157.946 211.063 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1185 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.528 721.708 429.483 733.664 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.539 187.711 216.494 199.666 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1186 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.109 709.753 464.064 721.708 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.589 187.711 232.763 199.666 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1187 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 686.411 394.206 697.28 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 166.072 130.18 174.919 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1188 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.3 686.411 410.475 697.28 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 139.89 225.183 151.845 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1189 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.714 674.456 459.688 685.325 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.278 139.89 241.233 151.845 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1190 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.783 674.456 475.957 685.325 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.328 139.89 257.502 151.845 ]/A << /S /GoTo /D (page.66) >> >>
endobj
1191 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 662.501 433.227 673.37 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.597 139.89 273.771 151.845 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1192 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.96 649.977 473.915 661.933 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 106.585 159.181 117.415 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1193 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.587 638.022 435.561 649.977 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 106.585 175.45 117.415 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1194 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 439.655 638.022 451.83 649.977 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.15 94.062 254.105 106.017 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1195 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 592.194 446.938 604.149 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 82.675 164.411 93.504 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1196 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 440.253 558.321 452.208 570.276 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.851 70.152 181.806 82.107 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1197 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.303 558.321 468.258 570.276 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.732 757.574 409.907 769.529 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1198 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 418.495 546.366 425.468 558.321 ]/A << /S /GoTo /D (page.8) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.528 745.619 429.483 757.574 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1199 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 395.112 534.411 407.067 546.366 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.109 733.664 464.064 745.619 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1200 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.162 534.411 423.117 546.366 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 709.753 448.432 721.708 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1201 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 523.024 403.351 533.853 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 686.411 394.206 697.28 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1202 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 511.068 403.351 521.898 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.3 686.411 410.475 697.28 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1203 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 499.113 351.048 509.943 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.714 674.446 459.688 685.325 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1204 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 487.158 366.739 497.987 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.783 674.446 475.957 685.325 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1205 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 463.248 394.206 474.117 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 662.501 433.227 673.37 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1206 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 451.293 420.109 462.162 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.96 649.977 473.915 661.933 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1207 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 439.327 456.442 450.207 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.587 638.022 435.561 649.977 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1208 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 427.382 406.709 438.212 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 439.655 638.022 451.83 649.977 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1209 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 415.078 377.449 426.256 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 592.194 446.938 604.149 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1210 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 403.123 377.449 414.301 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 440.253 558.321 452.208 570.276 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1211 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 391.517 382.679 402.346 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.303 558.321 468.258 570.276 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1212 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 379.562 382.679 390.391 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 418.495 546.366 425.468 558.321 ]/A << /S /GoTo /D (page.8) >> >>
endobj
1213 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.845 333.733 435.8 344.603 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 395.112 534.411 407.067 546.366 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1214 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.661 321.778 425.616 332.647 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.162 534.411 423.117 546.366 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1215 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.059 287.337 400.014 299.293 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 523.024 403.351 533.853 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1216 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 406.798 275.382 418.754 287.337 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 511.068 403.351 521.898 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1217 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.715 263.427 435.67 275.382 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 499.113 351.048 509.943 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1218 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 496.183 229.554 508.138 241.509 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 487.158 366.739 497.987 ]/A << /S /GoTo /D (page.31) >> >>
+endobj
+1219 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 463.248 394.206 474.117 ]/A << /S /GoTo /D (page.5) >> >>
+endobj
+1220 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 451.293 420.109 462.162 ]/A << /S /GoTo /D (page.38) >> >>
+endobj
+1221 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 439.327 456.442 450.207 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1222 0 obj
-<< /D [ 1220 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 427.382 406.709 438.212 ]/A << /S /GoTo /D (page.67) >> >>
endobj
-1219 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R /F57 385 0 R /F56 384 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+1223 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 415.078 377.449 426.256 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1264 0 obj
+1224 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 403.123 377.449 414.301 ]/A << /S /GoTo /D (page.2) >> >>
+endobj
+1225 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 391.517 382.679 402.346 ]/A << /S /GoTo /D (page.2) >> >>
+endobj
+1226 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 379.562 382.679 390.391 ]/A << /S /GoTo /D (page.2) >> >>
+endobj
+1227 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.845 333.733 435.8 344.603 ]/A << /S /GoTo /D (page.26) >> >>
+endobj
+1228 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.661 321.778 425.616 332.647 ]/A << /S /GoTo /D (page.11) >> >>
+endobj
+1229 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.059 287.337 400.014 299.293 ]/A << /S /GoTo /D (page.26) >> >>
+endobj
+1230 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 406.798 275.382 418.754 287.337 ]/A << /S /GoTo /D (page.29) >> >>
+endobj
+1231 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.715 263.427 435.67 275.382 ]/A << /S /GoTo /D (page.38) >> >>
+endobj
+1232 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 496.183 229.554 508.138 241.509 ]/A << /S /GoTo /D (page.40) >> >>
+endobj
+1236 0 obj
+<< /D [ 1234 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+1233 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 389 0 R /F15 381 0 R /F57 385 0 R /F56 384 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+1278 0 obj
<< /Filter /FlateDecode /Length 2414 >>
stream
-x\n6W! 0 [kr_íe3F[jnz$~/{y]@&QO/bbeh˟I
-os.As%UhKjKho&>o!~)B]s4N h)hV7SO &NQz6@ΤDPіJ@?fOoR%a8RgڒÜf'2DOR~ NwÊ
-lNd(mK:i[6.eci\M\FZZºBle7s%]W~@
-#ʼFrTߗ"oWJpW4oeJy4Qyen+ܜ+zqmeg6t\ ԢT gTBˈP{t#^h][.5\y@JȺLsE2e WIPɗUbN@w¡9QzndƉو
-)zݻoi*X?vjT + Ovy&)puKYv{?]It:PLj1F\Uj@G|U.5mi遲0;XmTx]_*o*`S~djЕ@.Y𘙞Tr"b۸GegKN\W
-`\C%q+we.Zwg`ki): ͆Z`:hff_Q<5 ^b5>I])Y,£T=si-
-xApGVG+sZJ[̈́[ umy㠊)g)`sH4ug
-pk_V(棬W0eF(VK:Ью)9VPC]RΎ_/0ztn}Tۣ.bfne۱Rlq{0Ǹ8'%鴓ZϘB  &79=F ƌBXT(f!9.4CxPxCp*^` r#Po
-t< H yەڎK&MP,d!/X`߆f!fp]JDE
-}7<z튁Jhx2#C0ZϪ*c?ooÚ)Ô2!A~nS1PiiF
-T`e-I v: zRKs C'7ڪ_GH
-
- zSyY gd?:|y?
+x\nܸ+K/0Jw]^/Qj9vuS$U/}sy򟻶L___8&(Ј.<s.)?8^Q[s
+C`Ip C-o_'B!~+B]s4N h+hV7K/ &.Qz@ΤBQٖJ@?f/oHKÐq%H sZ_%DJeW5?Z.:}vvq$HvZGnƥ0#%mB11l@{
+8zf+_٥kHg ,8Ҿ#am)izȐv[h|XȻ/~"B_H{~J~-a6լ雖)}=˥kegʁڕd@ܭ:(_L"-Ҏ
+{<,sM(4 z{qP:&
+ Dnkgdd˅be>O# vTߗ"om%8+ 2<2Jݜ+zqo{:,kLjы~R*hmfgTP=T#G#7o<rrE<RF@֭V+,+70w::Dl(RFDe_u3WL h%Ejٜ['f3R2kxwb~YڿSii^FŰmEq./$en)׮ڀpޘ+kk:}:P9ČQUj8pCV?(?o;H{_V/USi )G9?
+)?5JYX.YA a86Q%C' ;rx
+3d+5kx7k|E$.딧Y,Gez>si-
+0IyS*yd~:1͇#`Hp+M1oT1匱6E;3tp,Vm,>V( ;
+S)f-vMαRo=GtGK_ֿCq ^C}t׺JFG=:YmP:bG;\-} a>=)-INj+1e)[A}ܿZ>䨻>MEPUQ(8g".4CX(x0"T~׻GzSc- ۀvJm妶'MP,d!/= Lېl$ [I1B?h,Oac &x2H gj}A̷?aϔaJ ?ʴP2-
endstream
endobj
-1263 0 obj
-<< /Type /Page /Contents 1264 0 R /Resources 1262 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1266 0 R >>
+1277 0 obj
+<< /Type /Page /Contents 1278 0 R /Resources 1276 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1280 0 R >>
endobj
-1266 0 obj
-[ 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R ]
+1280 0 obj
+[ 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R ]
endobj
-1224 0 obj
+1238 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 594.319 289.293 603.285 ]/A << /S /GoTo /D (section.1) >> >>
endobj
-1225 0 obj
+1239 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 570.458 265.951 581.467 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-1226 0 obj
+1240 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 550.433 168.606 559.549 ]/A << /S /GoTo /D (section.3) >> >>
endobj
-1227 0 obj
+1241 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 528.565 140.999 537.532 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-1228 0 obj
+1242 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 514.617 175.639 525.686 ]/A << /S /GoTo /D (subsection.4.1) >> >>
endobj
-1229 0 obj
+1243 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 504.495 228.102 513.621 ]/A << /S /GoTo /D (subsection.4.2) >> >>
endobj
-1230 0 obj
+1244 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 490.707 223.699 501.706 ]/A << /S /GoTo /D (subsection.4.3) >> >>
endobj
-1231 0 obj
+1245 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 480.585 213.198 489.711 ]/A << /S /GoTo /D (subsection.4.4) >> >>
endobj
-1232 0 obj
+1246 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 468.63 333.089 477.756 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-1233 0 obj
+1247 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 456.675 321.731 465.801 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
-1234 0 obj
+1248 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 442.448 220.82 454.403 ]/A << /S /GoTo /D (subsection.4.7) >> >>
endobj
-1235 0 obj
+1249 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 422.911 266.419 431.987 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-1236 0 obj
+1250 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 409.133 366.075 420.082 ]/A << /S /GoTo /D (subsection.5.1) >> >>
endobj
-1237 0 obj
+1251 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 398.891 232.008 408.127 ]/A << /S /GoTo /D (subsubsection.5.1.1) >> >>
endobj
-1238 0 obj
+1252 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 384.665 239.34 396.62 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
-1239 0 obj
+1253 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 373.268 272.267 384.216 ]/A << /S /GoTo /D (subsection.5.2) >> >>
endobj
-1240 0 obj
+1254 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 361.312 323.246 372.261 ]/A << /S /GoTo /D (subsection.5.3) >> >>
endobj
-1241 0 obj
+1255 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 351.071 251.445 360.236 ]/A << /S /GoTo /D (subsubsection.5.3.1) >> >>
endobj
-1242 0 obj
+1256 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 337.402 328.765 348.281 ]/A << /S /GoTo /D (subsubsection.5.3.2) >> >>
endobj
-1243 0 obj
+1257 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 324.889 222.623 336.844 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-1244 0 obj
+1258 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 312.934 253.467 324.889 ]/A << /S /GoTo /D (subsubsection.5.3.4) >> >>
endobj
-1245 0 obj
+1259 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 301.537 310.942 312.485 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-1246 0 obj
+1260 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 279.549 338.927 290.558 ]/A << /S /GoTo /D (section.6) >> >>
endobj
-1247 0 obj
+1261 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 269.377 220.77 278.503 ]/A << /S /GoTo /D (subsection.6.1) >> >>
endobj
-1248 0 obj
+1262 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 255.15 322.16 267.106 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-1249 0 obj
+1263 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 243.634 255.35 254.702 ]/A << /S /GoTo /D (subsection.6.3) >> >>
endobj
-1250 0 obj
+1264 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 231.798 255.298 242.677 ]/A << /S /GoTo /D (subsection.6.4) >> >>
endobj
-1251 0 obj
+1265 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 209.322 221.856 221.278 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-1252 0 obj
+1266 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 187.893 213.129 198.802 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-1253 0 obj
+1267 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 176.007 208.596 186.847 ]/A << /S /GoTo /D (subsection.8.1) >> >>
endobj
-1254 0 obj
+1268 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 165.766 190.464 174.891 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-1255 0 obj
+1269 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 153.811 245.567 162.936 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-1256 0 obj
+1270 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 130.109 271.599 141.118 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-1257 0 obj
+1271 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 108.192 259.166 119.2 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-1258 0 obj
+1272 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 96.197 214.254 107.255 ]/A << /S /GoTo /D (subsection.10.1) >> >>
endobj
-1259 0 obj
+1273 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 83.793 296.347 95.748 ]/A << /S /GoTo /D (subsection.10.2) >> >>
endobj
-1260 0 obj
+1274 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 72.276 398.942 83.345 ]/A << /S /GoTo /D (subsection.10.3) >> >>
endobj
-1265 0 obj
-<< /D [ 1263 0 R /XYZ 78.37 808.885 null ] >>
+1279 0 obj
+<< /D [ 1277 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1262 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F66 388 0 R /F54 374 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+1276 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 388 0 R /F50 374 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1320 0 obj
-<< /Filter /FlateDecode /Length 2284 >>
+1334 0 obj
+<< /Filter /FlateDecode /Length 2286 >>
stream
-x\r6 ߯%
-dUtRqa݁w$k1Zc˼K>5֯WM "R_@8 yѽ3"%σP\;{~軫SLP')9T5~*9ْqnc[hx;
-ߊv8~*Ngw1UM䪌 +p::P?bJpW
-zB@@όm]"?ErŘ96;_H t3x3mey$k׺#ߕ)t(p}gP@MƂk<&FNywh {{!&x; Ymx.z\D#Ȫha;vf uu0*?Ka4"[c)sR*;jW~Z`B^w|cpT*WF[agmtt^up>cn=;
-?l
-Sbfyg6CMԫ|XTNx!xsđ/Um3;qo1٨s *E6l0]Ol3 &e-jJ<Tl%Ƃ nϽ}Ec$ нFBפj6Z ˄ԧ- <GW *Jk&)iGf;mkw[V'ZSV 3/BE y>η7]X@ڮo@ش!+б^2@K;t Dȁ?H8}VoAE~X*rZo&}싺!PȆ5d[CI >[~
- <Sŝ|Ii~vΐ4rQFD2sh٠;NZnzǽ݌YTZ;ſc^0]QQ8ѩ<DŽ޾sC̠jQmJ
-oKzA}z
+x\rW!$\nvvHNkrE
+= ^weСz~3S;H'[_ݍg?Y̴kaq*ga5 Mk,É+}+ ׏#qgPO=2DR'0]|\ϬH3)JstVI,-A)AnV5蝢c x/3R K?ΘXi.3\e~qzYad+|ắ! a ߛM*Nf pFA-X~A11
+dUtRqa݁w$k1Zc˼K>=֯Wbs;_U$$yPkgP31|}wUrj wv d"EsOU㧖-66~'w4
+WaIc
+ <W;Kx% , :SD.Iqc`jN-(]+wTSyV3|6IxOf^жp)jX]4(+qlW3~;t%Ynh嫕S9+<!3AR(] AF
+A[XcF\vl |U3pø<k]pkW#
+ڹ2,KG&2/n;;k4T;$6iv1Z[ݡeՆS4@; a[&|Jtmlى}}ՌF3mH`)rWeS9(zX^00BZ6$)lS ,z=(5&O31z ]SV7J(+qxPZ|ޯҮ$f2vdٶve5`U <eUAS1-VU.|{cڥ8aqnyRPXo^/lW ~D${ ԾVD*~X*rZqOUEw{R>vvcU]xE_0lkx<}!g/` گؠTc8ׇ-'
+H j1()?$32\TA%-T| @7͛7@WZHMKlߡ׎mztEE℧zΡ{A}t5 AK7Tfz
endstream
endobj
-1319 0 obj
-<< /Type /Page /Contents 1320 0 R /Resources 1318 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1322 0 R >>
+1333 0 obj
+<< /Type /Page /Contents 1334 0 R /Resources 1332 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1336 0 R >>
endobj
-1322 0 obj
-[ 1261 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R ]
+1336 0 obj
+[ 1275 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R ]
endobj
-1261 0 obj
+1275 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 758.012 268.67 769.011 ]/A << /S /GoTo /D (subsection.10.4) >> >>
endobj
-1267 0 obj
+1281 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 746.057 297.502 757.056 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-1268 0 obj
+1282 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 734.102 264.506 745.17 ]/A << /S /GoTo /D (subsection.10.6) >> >>
endobj
-1269 0 obj
+1283 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 712.304 348.591 723.243 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-1270 0 obj
+1284 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 689.828 169.522 701.783 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-1271 0 obj
+1285 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 677.873 297.263 689.828 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-1272 0 obj
+1286 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 665.918 416.735 677.873 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-1273 0 obj
+1287 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 653.963 406.484 665.918 ]/A << /S /GoTo /D (subsection.12.3) >> >>
endobj
-1274 0 obj
+1288 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 642.007 343.918 653.963 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-1275 0 obj
+1289 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 620.578 308.152 631.586 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-1276 0 obj
+1290 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 608.573 233.642 619.571 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-1277 0 obj
+1291 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 596.618 237.228 607.576 ]/A << /S /GoTo /D (subsection.13.2) >> >>
endobj
-1278 0 obj
+1292 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 586.496 219.804 595.621 ]/A << /S /GoTo /D (subsection.13.3) >> >>
endobj
-1279 0 obj
+1293 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 574.54 288.586 583.666 ]/A << /S /GoTo /D (subsection.13.4) >> >>
endobj
-1280 0 obj
+1294 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 560.314 337.881 572.269 ]/A << /S /GoTo /D (subsection.13.5) >> >>
endobj
-1281 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 540.827 205.706 549.893 ]/A << /S /GoTo /D (section.14) >> >>
+1295 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 540.777 205.706 549.893 ]/A << /S /GoTo /D (section.14) >> >>
endobj
-1282 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 528.822 224.546 537.878 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+1296 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 528.712 224.546 537.878 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-1283 0 obj
+1297 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 514.486 251.983 526.441 ]/A << /S /GoTo /D (subsection.14.2) >> >>
endobj
-1284 0 obj
+1298 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 502.979 312.127 514.037 ]/A << /S /GoTo /D (subsection.14.3) >> >>
endobj
-1285 0 obj
+1299 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 490.575 330.937 502.53 ]/A << /S /GoTo /D (subsection.14.4) >> >>
endobj
-1286 0 obj
+1300 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 478.62 220.551 490.575 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-1287 0 obj
+1301 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 467.223 187.943 478.062 ]/A << /S /GoTo /D (subsection.14.6) >> >>
endobj
-1288 0 obj
+1302 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 455.158 246.244 466.217 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-1289 0 obj
+1303 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 443.193 216.735 454.152 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
-1290 0 obj
+1304 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 433.071 228.312 442.306 ]/A << /S /GoTo /D (subsection.14.9) >> >>
endobj
-1291 0 obj
+1305 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 418.844 307.993 430.799 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-1292 0 obj
+1306 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 406.889 287.271 418.844 ]/A << /S /GoTo /D (subsection.14.11) >> >>
endobj
-1293 0 obj
+1307 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 387.352 273.731 396.368 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-1294 0 obj
+1308 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 373.574 338.568 384.413 ]/A << /S /GoTo /D (subsection.15.1) >> >>
endobj
-1295 0 obj
+1309 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 361.499 240.177 372.568 ]/A << /S /GoTo /D (subsubsection.15.1.1) >> >>
endobj
-1296 0 obj
+1310 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 351.377 270.474 360.503 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-1297 0 obj
+1311 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 337.589 325.314 348.548 ]/A << /S /GoTo /D (subsection.15.2) >> >>
endobj
-1298 0 obj
+1312 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 325.753 306.339 336.702 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-1299 0 obj
+1313 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 313.24 363.933 325.195 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-1300 0 obj
+1314 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 291.88 229.457 302.819 ]/A << /S /GoTo /D (section.16) >> >>
endobj
-1301 0 obj
+1315 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 269.963 207.569 280.802 ]/A << /S /GoTo /D (section.17) >> >>
endobj
-1302 0 obj
+1316 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 257.888 201.273 268.847 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
-1303 0 obj
+1317 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 247.766 206.392 256.892 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-1304 0 obj
+1318 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 233.987 250.877 244.936 ]/A << /S /GoTo /D (subsection.17.3) >> >>
endobj
-1305 0 obj
+1319 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 222.142 195.276 233.021 ]/A << /S /GoTo /D (subsection.17.4) >> >>
endobj
-1306 0 obj
+1320 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 200.224 143.002 211.063 ]/A << /S /GoTo /D (section.18) >> >>
endobj
-1307 0 obj
+1321 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 187.711 353.181 199.666 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
-1308 0 obj
+1322 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 178.027 236.81 187.153 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
-1309 0 obj
+1323 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 166.072 228.302 175.198 ]/A << /S /GoTo /D (subsection.18.3) >> >>
endobj
-1310 0 obj
+1324 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 152.284 209.024 163.283 ]/A << /S /GoTo /D (subsection.18.4) >> >>
endobj
-1311 0 obj
+1325 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 140.329 335.709 151.327 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-1312 0 obj
+1326 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 128.373 196.86 139.372 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
-1313 0 obj
+1327 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 116.538 234.767 127.377 ]/A << /S /GoTo /D (subsection.18.7) >> >>
endobj
-1314 0 obj
+1328 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 104.463 311.161 115.532 ]/A << /S /GoTo /D (subsection.18.8) >> >>
endobj
-1315 0 obj
+1329 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 92.07 331.415 104.025 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-1316 0 obj
+1330 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 80.553 227.395 91.512 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-1321 0 obj
-<< /D [ 1319 0 R /XYZ 78.37 808.885 null ] >>
+1335 0 obj
+<< /D [ 1333 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1318 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+1332 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1325 0 obj
-<< /Filter /FlateDecode /Length 122 >>
+1339 0 obj
+<< /Filter /FlateDecode /Length 121 >>
stream
xm̱
-1>_1?`n6fB"X[*0 <cSSGפd<fD?pY"#ie=d2~S<Eѭ~$A
+1>O1/`nvV+߿5
+qqJ|9\oIAjRQ]2]IсF%Fz/?5}vs僿
endstream
endobj
-1324 0 obj
-<< /Type /Page /Contents 1325 0 R /Resources 1323 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1327 0 R >>
+1338 0 obj
+<< /Type /Page /Contents 1339 0 R /Resources 1337 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 916 0 R /Annots 1341 0 R >>
endobj
-1327 0 obj
-[ 1317 0 R ]
+1341 0 obj
+[ 1331 0 R ]
endobj
-1317 0 obj
+1331 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 759.955 108.74 768.971 ]/A << /S /GoTo /D (section*.2) >> >>
endobj
-1326 0 obj
-<< /D [ 1324 0 R /XYZ 78.37 808.885 null ] >>
+1340 0 obj
+<< /D [ 1338 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1323 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
+1337 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 389 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1 0 obj
<< /pgf@ca0.75 << /ca 0.75 >> /pgf@CA0.4 << /CA 0.4 >> /pgf@ca0.4 << /ca 0.4 >> /pgf@bmMultiply<< /BM /Multiply>> /pgf@ca1.0 << /ca 1.0 >>>>
endobj
2 0 obj
-<< /pgfpat5 830 0 R /pgfpat4 831 0 R /pgfpat10 834 0 R>>
+<< /pgfpat5 844 0 R /pgfpat4 845 0 R /pgfpat10 848 0 R>>
endobj
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
-1328 0 obj
+1342 0 obj
[ 28 [ 510 ] 96 [ 363 ] 118 [ 490 ] ]
endobj
-1330 0 obj
+1344 0 obj
<< /Filter /FlateDecode /Length 17 >>
stream
xc```&
endstream
endobj
-1331 0 obj
+1345 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 692 >>
stream
xcd`aa`ddr N+O,,MIyP#C,9?Xy~s0aS  K,t~L;74G$0GAA5/<"-6300q/,L(Q0200
@@ -5631,10 +5684,10 @@ Nz
>XOoOOo_O߄=<<;WLrxxJ
endstream
endobj
-1329 0 obj
-<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1331 0 R /CIDSet 1330 0 R >>
+1343 0 obj
+<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1345 0 R /CIDSet 1344 0 R >>
endobj
-1332 0 obj
+1346 0 obj
<< /Filter /FlateDecode /Length 374 >>
stream
x}RMo@x=Y45!b7}Md.pwwM[< t7ްOa5C/Zt9jȑl9V,
@@ -5644,23 +5697,23 @@ y@ws$壷9wNF IpCPB }Jy"yr^IKDЙ\_r&
rndfA~
endstream
endobj
-828 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1333 0 R ] /ToUnicode 1332 0 R >>
+842 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1347 0 R ] /ToUnicode 1346 0 R >>
endobj
-1333 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1329 0 R /W 1328 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1347 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1343 0 R /W 1342 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1334 0 obj
+1348 0 obj
[ 56 [ 681 681 ] 82 [ 681 ] 88 [ 403 ] 106 [ 681 681 ] ]
endobj
-1336 0 obj
+1350 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc`

endstream
endobj
-1337 0 obj
+1351 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1129 >>
stream
xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
@@ -5675,10 +5728,10 @@ xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
sn> <TQZPt@ UQ=R]E&ni,lAC#bdČjnpu,;T7>6<4N=$Z#yB<R eD E*yHa)ݤ1^MZN?|@˰veFb&u!}^w@x Q3%Ib4^A_>>:Xk kPT%J@i~ Ρ{(;> Qd"\4-*ۤQ2{[ F:Ј폾u1B}O jkq \5|[P6?}uxzK2iC惾ELm 9cBO"{lz2|Bh4zGo塞.OgW;Ge_
endstream
endobj
-1335 0 obj
-<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1337 0 R /CIDSet 1336 0 R >>
+1349 0 obj
+<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1351 0 R /CIDSet 1350 0 R >>
endobj
-1338 0 obj
+1352 0 obj
<< /Filter /FlateDecode /Length 387 >>
stream
x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t6zȐl5t5tg<iq*aتM]bց?M:]}y﫝,21vxjΙSuYf K1l& 3aEK[9L]'a:*ST5%cʼź*.N}QkMY$ 0uk:+|3~4ˣ5KY:T2ʌ ICJ
@@ -5686,28 +5739,28 @@ x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t
rhah⸁CS-f_&[ QJg`jFo[UTq{ ,r}
endstream
endobj
-804 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1339 0 R ] /ToUnicode 1338 0 R >>
+813 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1353 0 R ] /ToUnicode 1352 0 R >>
endobj
-1339 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1335 0 R /W 1334 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1353 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1349 0 R /W 1348 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1340 0 obj
+1354 0 obj
[575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 638.9 511.1 638.9 ]
endobj
-1341 0 obj
+1355 0 obj
[1083.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1361.1 ]
endobj
-1342 0 obj
+1356 0 obj
[ 28 [ 603 ] 35 [ 544 ] 43 [ 544 ] 47 [ 603 ] ]
endobj
-1344 0 obj
+1358 0 obj
<< /Filter /FlateDecode /Length 14 >>
stream
xc``
endstream
endobj
-1345 0 obj
+1359 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 900 >>
stream
xڵSoL[U]<t}dmbhAf P(d+}mx{v –@2q5,C~G>D_Yh9sﹹ990AkO4_7 N:
@@ -5722,36 +5775,36 @@ WZVRV
1mb7aKuO[&,ڗ:E["aS4c &8dxgxV6-:'T(Ed|<>a)Z9?'Uؚ
endstream
endobj
-1343 0 obj
-<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1345 0 R /CIDSet 1344 0 R >>
+1357 0 obj
+<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1359 0 R /CIDSet 1358 0 R >>
endobj
-1346 0 obj
+1360 0 obj
<< /Filter /FlateDecode /Length 375 >>
stream
x}R]k0}ϯ{6U@0uBa~`cM.`* BJOι7瞴ɣg XF3fˢ"\DiVychr4НeL
ӳLSñUM(M΁?G6^[U)Lq,h'ɊՁ%> ;Z(9O)/TƫI|qk $wI2
endstream
endobj
-703 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1347 0 R ] /ToUnicode 1346 0 R >>
+711 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1361 0 R ] /ToUnicode 1360 0 R >>
endobj
-1347 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1343 0 R /W 1342 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1361 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1357 0 R /W 1356 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1348 0 obj
+1362 0 obj
[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1138.9 0 585.3 ]
endobj
-1349 0 obj
+1363 0 obj
[ 47 [ 525 ] 50 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 77 [ 525 ] 81 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1351 0 obj
+1365 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`

endstream
endobj
-1352 0 obj
+1366 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1486 >>
stream
xmU{LG%ʉr9ݚj!A⣩Qx==#Z-w CSV5$֤Uk5ZlS5SuV&Mdv3oeǢ1Ǔ
@@ -5770,10 +5823,10 @@ sƭw¸Om-åu^
T;,;T(w ;h 4
endstream
endobj
-1350 0 obj
-<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1352 0 R /CIDSet 1351 0 R >>
+1364 0 obj
+<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1366 0 R /CIDSet 1365 0 R >>
endobj
-1353 0 obj
+1367 0 obj
<< /Filter /FlateDecode /Length 420 >>
stream
x}Ok0@zp-;mڔ`$bhRe4
@@ -5782,22 +5835,22 @@ b!~%’]ތGO|{0rV`-L6F j(Qjֈ
aa>>׸1iCU<o3޶g
endstream
endobj
-634 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1354 0 R ] /ToUnicode 1353 0 R >>
+640 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1368 0 R ] /ToUnicode 1367 0 R >>
endobj
-1354 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1350 0 R /W 1349 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1368 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1364 0 R /W 1363 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1355 0 obj
+1369 0 obj
[ 47 [ 590 ] 81 [ 531 ] 98 [ 419 ] 105 [ 413 ] 116 [ 561 ] ]
endobj
-1357 0 obj
+1371 0 obj
<< /Filter /FlateDecode /Length 19 >>
stream
xc`
endstream
endobj
-1358 0 obj
+1372 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1167 >>
stream
x}TmLe^-+]lqShq ls RPG6Zz#"/\{/0a8`
@@ -5812,10 +5865,10 @@ _eR}&:q5d ub cly}xϱ3L7_kNGWg?v
#h}^
endstream
endobj
-1356 0 obj
-<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1358 0 R /CIDSet 1357 0 R >>
+1370 0 obj
+<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1372 0 R /CIDSet 1371 0 R >>
endobj
-1359 0 obj
+1373 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
xڍR]k0}ϯ{6tN鄎ĖkM.&%MKR0Џ{9'<l>V :+IT.P "GVlb .e,Yr,Y^slY^$ցn=o4XT$Ϥ;<yZSar6X
@@ -5824,25 +5877,25 @@ s˭1=Ct8VePgdnWJNñ~
δ3\9N#ƃ< =z5A Ӿ<Fx?)q^ݳZkkL m*U=z}+j
endstream
endobj
-602 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1360 0 R ] /ToUnicode 1359 0 R >>
+614 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1374 0 R ] /ToUnicode 1373 0 R >>
endobj
-1360 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1356 0 R /W 1355 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1374 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1370 0 R /W 1369 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1361 0 obj
+1375 0 obj
[361.7 429.7 0 0 0 644.7 ]
endobj
-1362 0 obj
+1376 0 obj
[ 28 [ 525 ] 35 [ 525 ] 43 [ 525 ] 47 [ 525 ] 50 [ 525 ] 55 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 74 [ 525 525 525 525 ] 81 [ 525 ] 84 [ 525 ] 96 [ 525 ] 98 [ 525 ] 103 [ 525 ] 105 [ 525 ] 109 [ 525 ] 112 [ 525 ] 494 [ 525 ] ]
endobj
-1364 0 obj
+1378 0 obj
<< /Filter /FlateDecode /Length 27 >>
stream
xc``TdXǃaKI
endstream
endobj
-1365 0 obj
+1379 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2421 >>
stream
xڍW Tgf50h}mU]bEe}VI$07Q <APTX6XOϮu;;S=;ə7
@@ -5859,10 +5912,10 @@ W
CH wu[uE,>>X*uŃibR2z@yRsa)d.($Ge1Հf4ca$Sg~lW/BU٫J]|+ ;rZhwgʪ+Q(_YE
endstream
endobj
-1363 0 obj
-<< /Type /FontDescriptor /FontName /SFCWXS+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1365 0 R /CIDSet 1364 0 R >>
+1377 0 obj
+<< /Type /FontDescriptor /FontName /SFCWXS+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1379 0 R /CIDSet 1378 0 R >>
endobj
-1366 0 obj
+1380 0 obj
<< /Filter /FlateDecode /Length 471 >>
stream
xڍMo0
@@ -5870,21 +5923,21 @@ xڍMo0
endstream
endobj
478 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SFCWXS+LMMonoSlant10-Regular /DescendantFonts [ 1367 0 R ] /ToUnicode 1366 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SFCWXS+LMMonoSlant10-Regular /DescendantFonts [ 1381 0 R ] /ToUnicode 1380 0 R >>
endobj
-1367 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SFCWXS+LMMonoSlant10-Regular /FontDescriptor 1363 0 R /W 1362 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1381 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SFCWXS+LMMonoSlant10-Regular /FontDescriptor 1377 0 R /W 1376 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1368 0 obj
+1382 0 obj
[ 28 [ 549 ] 35 [ 494 ] 40 [ 329 329 ] 43 [ 494 ] 45 [ 329 ] 47 [ 549 ] 50 [ 494 ] 55 [ 329 ] 59 [ 494 ] 63 [ 549 ] 66 [ 329 ] 70 [ 494 ] 72 [ 274 ] 75 [ 878 ] 77 [ 603 ] 81 [ 549 ] 84 [ 549 439 439 ] 88 [ 329 ] 96 [ 453 ] 98 [ 439 ] 104 [ 768 357 ] 109 [ 576 ] 112 [ 494 ] 114 [ 713 ] 116 [ 495 ] 118 [ 521 ] 251 [ 494 ] 502 [ 329 ] ]
endobj
-1370 0 obj
+1384 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc``(4ůaU h@/`
endstream
endobj
-1371 0 obj
+1385 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3600 >>
stream
xڵX tW-!`$TA:!C`:$$a3` "o-[%Kd[TmKf[b$ 0d2I:C:t: 3t~bzdC9JJ*}}wPL `0ڴg]¶u]PVҒDqZ~nFm\r!r&8`=;슍fçbG_>AwqcD:v!Ğ
@@ -5900,42 +5953,42 @@ N Nu|U5ÏCM{E7.UgG'igWW_1GK lO ?Mt= =Kl
nn. ^:{:0IrFٜNU[f _-4UWѻLMvꕉlh!*@Ksvt?kbA/3qr] T5)Kc'S“L [-Vawܱ,V63v
endstream
endobj
-1369 0 obj
-<< /Type /FontDescriptor /FontName /HXCEOC+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1371 0 R /CIDSet 1370 0 R >>
+1383 0 obj
+<< /Type /FontDescriptor /FontName /HXCEOC+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1385 0 R /CIDSet 1384 0 R >>
endobj
-1372 0 obj
+1386 0 obj
<< /Filter /FlateDecode /Length 512 >>
stream
x}M@ރs`l%K3NltHC
נ%hZsSP[`hBP @6K q C["P^`@Y
endstream
endobj
-438 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HXCEOC+LMRoman8-Italic /DescendantFonts [ 1373 0 R ] /ToUnicode 1372 0 R >>
+439 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HXCEOC+LMRoman8-Italic /DescendantFonts [ 1387 0 R ] /ToUnicode 1386 0 R >>
endobj
-1373 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HXCEOC+LMRoman8-Italic /FontDescriptor 1369 0 R /W 1368 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1387 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HXCEOC+LMRoman8-Italic /FontDescriptor 1383 0 R /W 1382 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1374 0 obj
+1388 0 obj
[734 ]
endobj
-1375 0 obj
+1389 0 obj
[1123 ]
endobj
-1376 0 obj
+1390 0 obj
[777.8 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 388.9 388.9 ]
endobj
-1377 0 obj
+1391 0 obj
[ 28 [ 525 ] 43 [ 489 ] 50 [ 511 ] 64 [ 367 ] 66 [ 256 ] 75 [ 867 ] 77 [ 561 ] 82 [ 550 ] 96 [ 372 ] 105 [ 404 550 550 ] 116 [ 500 ] ]
endobj
-1379 0 obj
+1393 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`X P

endstream
endobj
-1380 0 obj
+1394 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1716 >>
stream
xڍU pEUM,@+v70 X6e -ǀqL!`VK>eKeZ?K1`[4@
@@ -5947,10 +6000,10 @@ NIcO>ܷuecM·:tZ"K 4Hp'L4)v(*(8G:z<9
3##g< AjSS
endstream
endobj
-1378 0 obj
-<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1380 0 R /CIDSet 1379 0 R >>
+1392 0 obj
+<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1394 0 R /CIDSet 1393 0 R >>
endobj
-1381 0 obj
+1395 0 obj
<< /Filter /FlateDecode /Length 422 >>
stream
x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M&+#u(Qj{ ֈ;.UUw̅^:nZN?k^>eۄG %k8 ImאrZ.MkY<xUZ!!l|^ 
@@ -5959,22 +6012,22 @@ x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M
endstream
endobj
403 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1382 0 R ] /ToUnicode 1381 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1396 0 R ] /ToUnicode 1395 0 R >>
endobj
-1382 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1378 0 R /W 1377 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1396 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1392 0 R /W 1391 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1383 0 obj
+1397 0 obj
[ 27 [ 850 547 875 ] 34 [ 800 625 575 ] 38 [ 575 575 ] 42 [ 813 500 ] 46 [ 862 625 ] 49 [ 738 513 563 ] 55 [ 344 563 563 ] 59 [ 563 ] 62 [ 880 625 375 419 313 ] 68 [ 344 ] 70 [ 594 676 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 438 438 ] 88 [ 313 ] 90 [ 845 594 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 111 [ 850 594 1162 813 850 594 ] 118 [ 594 688 500 563 656 ] 125 [ 625 ] 251 [ 513 ] 277 [ 513 ] 319 [ 625 625 ] 446 [ 875 ] 502 [ 313 ] ]
endobj
-1385 0 obj
+1399 0 obj
<< /Filter /FlateDecode /Length 40 >>
stream
xc``6.z߿o~€
X@4c8
endstream
endobj
-1386 0 obj
+1400 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7547 >>
stream
xzy|6PJ%3)K7EDARJI&'It_hK)- -)mDvYTVE\r}ޓ{|vI3{ND=%\6/XiŠk"¼ç4͈P_۝łBpC0 CG=ed0HpA䵟 rA8vsM(BԷ@rɗ&O:}AĮĨKS<:Kd2!!A
@@ -6012,10 +6065,10 @@ yn #"5~6^f硬\yR!͝=e;rTRÁ-XE~,هcy{Oy[_?!T<
X#OxI$Z1hܒo|.r IVNN_yE"̕fqFIA@ϷyT?ÉNk$#}r+=cwxZyh|7čU+[/d˿
endstream
endobj
-1384 0 obj
-<< /Type /FontDescriptor /FontName /ZCFLPY+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1386 0 R /CIDSet 1385 0 R >>
+1398 0 obj
+<< /Type /FontDescriptor /FontName /ZCFLPY+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1400 0 R /CIDSet 1399 0 R >>
endobj
-1387 0 obj
+1401 0 obj
<< /Filter /FlateDecode /Length 682 >>
stream
x}[k0+e[Ҧ@n@/!)5$t&),a -2tm4qs[xk`Q瓱1k{f.gbe%ly<ksͺ43~>ϋuSv>8g>r\ݍPiό?%I>XZ=On]4$}lxUnI$#2]=QYI洲:p]^hjV*tsWÒh2a]ad_|]/:qi Ks-kmfWvg&; k'8*?3W(Ir> 4$R(M2d$H)d tDKrP( H"hɾOB0(s];U<CNZF B''$ȡ,K9I":2"JU$Tg.3/@)3
@@ -6026,22 +6079,22 @@ Lt"DZ$""/
endstream
endobj
402 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZCFLPY+LMRoman12-Bold /DescendantFonts [ 1388 0 R ] /ToUnicode 1387 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZCFLPY+LMRoman12-Bold /DescendantFonts [ 1402 0 R ] /ToUnicode 1401 0 R >>
endobj
-1388 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZCFLPY+LMRoman12-Bold /FontDescriptor 1384 0 R /W 1383 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1402 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZCFLPY+LMRoman12-Bold /FontDescriptor 1398 0 R /W 1397 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1389 0 obj
+1403 0 obj
[ 27 [ 531 531 531 ] 32 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 49 [ 531 531 531 531 531 ] 55 [ 531 531 531 ] 59 [ 531 ] 61 [ 531 531 531 531 ] 66 [ 531 ] 68 [ 531 ] 70 [ 531 531 531 531 531 531 531 531 531 ] 80 [ 531 531 531 ] 84 [ 531 531 531 ] 88 [ 531 ] 91 [ 531 ] 95 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 109 [ 531 531 531 531 531 531 531 531 ] 118 [ 531 ] 120 [ 531 ] ]
endobj
-1391 0 obj
+1405 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc``&

endstream
endobj
-1392 0 obj
+1406 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6684 >>
stream
xڍz \ĐITc1wuV[m"]p)Rwְ@a_nl{EUgݢM۾c/oB~ ޙw=lڙ<<rٛd1~JۭUv*t$c0R#Ot_rt݁o>K5_0 x1y(ǩ/.p| #x $1+ׯ7e"*^sqy}smt_@"V*J̑z̑z*bWr,/"HzɶHcT2JTD^#
@@ -6064,10 +6117,10 @@ svO֛-5rRtnS8(U[ftF\cs
Ut\PYKJwvB1H( H+WqAR2H5~-۟yei xg4n@K*:8:hq_Z}cGyNoL:;q
endstream
endobj
-1390 0 obj
-<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1392 0 R /CIDSet 1391 0 R >>
+1404 0 obj
+<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1406 0 R /CIDSet 1405 0 R >>
endobj
-1393 0 obj
+1407 0 obj
<< /Filter /FlateDecode /Length 673 >>
stream
x}Kk0E!]q,YjK@A٦1$EH:'-ZU)W?^m,of6?mjQ秣gk [\V{b0_-VU_ͫ*?
@@ -6078,60 +6131,68 @@ I(($*#1]vNUЩZZBKj BePm2 <<Sˠit7$tB4)i-n
endstream
endobj
393 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1394 0 R ] /ToUnicode 1393 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1408 0 R ] /ToUnicode 1407 0 R >>
endobj
-1394 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1390 0 R /W 1389 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1408 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1404 0 R /W 1403 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1395 0 obj
-[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
+1409 0 obj
+[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 59 [ 531 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 107 [ 531 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
endobj
-1397 0 obj
+1411 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
-xc``T`\4ţa*
+xc``T\4ţaA*
endstream
endobj
-1398 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1825 >>
+1412 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2121 >>
stream
-xmU}TWC23,--% ~`AFH &"H5`˩,JY+ǮG .Zp`Y{T{a nOߙy3{w$" fY|u.!huD3,Fg+Nf%%'ů$M2Z|ӏt9! &Ltmo
-C(ŢhJ@kmDP*2(ّKDY|=K׉D yx^^$Zɇ=f0C"oipK|9Y#a
-#u)'KNwzȴfEhϱhf%7D^|X|tsMlAvxl/DV\*W˅V>3<EP %Lwtd.k_ӊFڨ F u
-#dj.XH?qmc+OV507ފe"&zB Y70vZ}E]u<:*S7?^w#䡨R 㵸n[_aecV<^ 4L&fYxÛnki|Vh#ؔowW2W`y0'bM߮/KiIۘwPn%7\fZP|')>>"RUA?p7oIwJG(ceZ?ARq%Iܨ"~|yR܀*AӊoN9shImx} 8EK,F
-["_
-Arg/2j=8K"T7+h5ϧ<:]ԮK(EzQ}MtVQ:yjf=ٱ`EGKrJއfmE⫥`Մg$zGRAZ(s! #P>eK=(w!wW{_kP0GDz`}uǩ,++ϯ;bYuO)
-`=d(#p
+xmV TW!5RKHD&#]-P(hADK@DAVX
+
+A 
+ YΞk{Nn=g̝\35p_( /,WiiIrFv1kgЬ ,mJx,cxә tˆwwa{38+X`8s|\[+]6S24 JyrcYczmb#W2~G&@F{V(Iq: QlgҴ
+רR82!-WkQ$)ZE,UhRl a|*Pih
+Fӥqrҥ;5Nq\)Mɘiw@nSkXNuMo?ԚdyW:Z)V%20`a0'l%掭<mƶ`[l;Ec X"`L8ifYE6u|.7њ71Yxx-צ
+Ä MߓsI5y| gҜz`I?~籾b1h?9.YO|y!ڶSG$GzeMWh
+_1i?)jo+QQvvH^J#7֟lh"% f{
+1,W0,F Q#/?K>94ׯ%F_b(6Xk8B 4
+X.Fr,4փS-W|%@EQRZ-k9b^2EV\fUլOnV@ }8ୢE9}x94E}, ezyn1qT-|$fe_=_oJxlEiOCF1>0ǰiYLc(Cl1?1.K1nۑkr4WߧBtaHgqUo>?+!f!߁rj9Ïup+;"K@W/@H|!BAk?7 hnjx3zfW
+6~][kqG\>PO8iSMqU*\_ykNwPVI̡0Axr
+nyÕCqR.K c̞6
+ |&Oq܆~p$&y:l|iDȲV!CewkVj]q~8ҠehԊ,IbWs" kcLObo)OK5$j[Y˜A Po#FV)y6 d}Z$t@%|aﱏݻV:vaglkLM0~VVaHs'.jmfKMAKv1Zps헭p۱30HׇJכ T>*&9=DMX jol=Fc4_ٔ|;zH.eY+M
+&wyFF<#ͧwE{\UNbnQ!wA ءR/ȰZG\=.w=e(>xl5 K9Q*;릎.***N/I+,AySJb DbZn
+vD2d. Eco+YCAHp6+}_&r%!fFXE33S8(I7q\WTscEdK us[WJ:VE~!IN9z"s
+`Eg{J3/
endstream
endobj
-1396 0 obj
-<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1398 0 R /CIDSet 1397 0 R >>
+1410 0 obj
+<< /Type /FontDescriptor /FontName /PYPVHS+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1412 0 R /CIDSet 1411 0 R >>
endobj
-1399 0 obj
-<< /Filter /FlateDecode /Length 466 >>
+1413 0 obj
+<< /Filter /FlateDecode /Length 475 >>
stream
x}Mo0
-)=P VU۴%z%$k)dǴR]$η]V/o(y?;o6+Z66 
--1y|b?=W;S|jvb8iuDe#A>@$mcH胐\:T 5zNƹ:4<jEY:ۚ`8(!d~D-Ʈ;)P/R7@{ɵU  ewDC,fjyoG@3+@v^LQ<؟Z@aQ(FH1ia)nmiiA-ES!%Hk%R9mAZXJ)FP`{H0{=",a fH%H/Er{H2Y9O_KgRzٽ
- _k;eo{?vqr7
+!RzHpZEHhmTjHIR0!~mi*H Oo*.#=%oзufۖ @#W0yQnK%;#.&mR}Jl2?p{
+>WWKCjrum#qAAU$OJmcȗHTB:V ܓ7fNֹ4:zM"YU RvFR]w[A'nDR§IX.o]A ڌd3W_'D#^djmŅ Di疒)A H;4AZ"y%CʕulRAZ!H>"=9ZH;#F0J 3( ;2E8Ž2̗z%cQ2$e>;v˰#ݜ]X>jm-;s{Rvmg},h
endstream
endobj
392 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1400 0 R ] /ToUnicode 1399 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PYPVHS+LMSans8-Regular /DescendantFonts [ 1414 0 R ] /ToUnicode 1413 0 R >>
endobj
-1400 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1396 0 R /W 1395 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1414 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PYPVHS+LMSans8-Regular /FontDescriptor 1410 0 R /W 1409 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1401 0 obj
+1415 0 obj
[ 27 [ 796 531 ] 34 [ 752 590 ] 42 [ 767 472 295 295 811 590 ] 49 [ 723 472 531 ] 54 [ 693 325 531 531 834 531 ] 63 [ 590 354 383 295 ] 68 [ 325 ] 70 [ 561 664 295 ] 75 [ 885 796 590 531 ] 80 [ 826 531 531 723 590 413 413 ] 88 [ 295 ] 90 [ 826 561 ] 95 [ 782 414 590 419 ] 100 [ 531 531 531 ] 104 [ 767 413 531 531 ] 109 [ 590 ] 111 [ 796 561 ] 115 [ 796 561 ] 118 [ 561 649 472 531 620 885 ] 125 [ 590 590 ] 168 [ 531 ] 251 [ 472 ] 257 [ 472 ] 277 [ 472 ] 319 [ 590 590 ] 343 [ 295 ] 428 [ 531 ] 446 [ 826 ] 502 [ 295 ] 575 [ 590 ] 589 [ 590 ] ]
endobj
-1403 0 obj
+1417 0 obj
<< /Filter /FlateDecode /Length 54 >>
stream
xc``0/z޿
endstream
endobj
-1404 0 obj
+1418 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7732 >>
stream
xڽz xUvuBwEh*갃 Kd
@@ -6170,10 +6231,10 @@ S&p*|o5:|;G|#apXN:6csJUFBe2`hEASE٨Μ}+Lmyf
<Qv* U%<@t _t2_T'̭?(H]A7qbǟ C<EQ3 ԊKAYTP+__<d=41t9g&}^>`ȳ~k)"
endstream
endobj
-1402 0 obj
-<< /Type /FontDescriptor /FontName /OPWHQU+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1404 0 R /CIDSet 1403 0 R >>
+1416 0 obj
+<< /Type /FontDescriptor /FontName /OPWHQU+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1418 0 R /CIDSet 1417 0 R >>
endobj
-1405 0 obj
+1419 0 obj
<< /Filter /FlateDecode /Length 712 >>
stream
x}[o0+ڇ;RDl^^İ_gjHEh}a|٫C_pXvղ{m'k]vҷZzZL3vZ4\B\v/?>~y|m _+So͸dv}|<0q9 p&MN7{ޝ@DnW{k;>ޯ̦ S6a^M0yk7fˮ?hcևi`6c֣r]Uf<~۱,, jk=telu0&3 8ڀӿJ_eMy"f$(be؋A"%@KOvSs 9P,P]z| H;Dҹ{U
@@ -6183,22 +6244,22 @@ DH *$ Rv"eD MLAP I"NY$g1P (DPRxfxNE~m
endstream
endobj
391 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OPWHQU+LMRoman8-Regular /DescendantFonts [ 1406 0 R ] /ToUnicode 1405 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OPWHQU+LMRoman8-Regular /DescendantFonts [ 1420 0 R ] /ToUnicode 1419 0 R >>
endobj
-1406 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OPWHQU+LMRoman8-Regular /FontDescriptor 1402 0 R /W 1401 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1420 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OPWHQU+LMRoman8-Regular /FontDescriptor 1416 0 R /W 1415 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1407 0 obj
+1421 0 obj
[ 187 [ 611 ] ]
endobj
-1409 0 obj
+1423 0 obj
<< /Filter /FlateDecode /Length 12 >>
stream
xc`

endstream
endobj
-1410 0 obj
+1424 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 620 >>
stream
xuR]O`n$8*86DF-&z'
@@ -6207,10 +6268,10 @@ xuR]O`n$8*86DF-&z'
Ezsw`#[mrϪ'[Hmr~3S)~ȻxY-toX} vN^%-5{KZ?,sT[-Z𕢶{6:D u
endstream
endobj
-1408 0 obj
-<< /Type /FontDescriptor /FontName /TMHZDF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1410 0 R /CIDSet 1409 0 R >>
+1422 0 obj
+<< /Type /FontDescriptor /FontName /TMHZDF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1424 0 R /CIDSet 1423 0 R >>
endobj
-1411 0 obj
+1425 0 obj
<< /Filter /FlateDecode /Length 362 >>
stream
x}_k0)
@@ -6218,22 +6279,22 @@ x}_k0)
endstream
endobj
390 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TMHZDF+LMRoman6-Regular /DescendantFonts [ 1412 0 R ] /ToUnicode 1411 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TMHZDF+LMRoman6-Regular /DescendantFonts [ 1426 0 R ] /ToUnicode 1425 0 R >>
endobj
-1412 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TMHZDF+LMRoman6-Regular /FontDescriptor 1408 0 R /W 1407 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1426 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TMHZDF+LMRoman6-Regular /FontDescriptor 1422 0 R /W 1421 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1413 0 obj
+1427 0 obj
[ 27 [ 869 559 ] 34 [ 818 639 575 ] 42 [ 831 511 ] 45 [ 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 594 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 88 [ 319 ] 91 [ 607 ] 95 [ 863 474 639 454 ] 100 [ 575 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 869 607 869 607 703 511 575 671 ] 125 [ 639 ] 251 [ 527 ] 283 [ 1150 ] 446 [ 894 ] 502 [ 319 ] ]
endobj
-1415 0 obj
+1429 0 obj
<< /Filter /FlateDecode /Length 34 >>
stream
xc``0/y߿€
0A)
endstream
endobj
-1416 0 obj
+1430 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7229 >>
stream
xڵzw\W0;hq-;8`/(bA5vQQ@AA
@@ -6280,31 +6341,31 @@ rxCʼ[/\oOOnyXo@ۚ#b'qnj(U><Յ|ZUP(痭=_
yY?r
endstream
endobj
-1414 0 obj
-<< /Type /FontDescriptor /FontName /CWYYJT+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1416 0 R /CIDSet 1415 0 R >>
+1428 0 obj
+<< /Type /FontDescriptor /FontName /CWYYJT+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1430 0 R /CIDSet 1429 0 R >>
endobj
-1417 0 obj
+1431 0 obj
<< /Filter /FlateDecode /Length 672 >>
stream
x}[o1WHvW(y+w<k Ucƞ3ǓI*jk쉳OV0uSGެ*NGc7cїh>X=L-G%~K{KuqcO?._s1v7?MӖ}a}0zZ}om'}Q+nH$zQ2]QYIv渴*Yۮ9ŏQѦ)qOX`ƣшis;o6GvѲ;wvb} K'[Tڴ0M4t.(2V8]W^BşM/J&"dhH!FSwJY2A d1BuI3H"S2I @:t2@@9G3H'tct :s8C$"eTU9~J"P]@g
endstream
endobj
389 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CWYYJT+LMRoman10-Bold /DescendantFonts [ 1418 0 R ] /ToUnicode 1417 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CWYYJT+LMRoman10-Bold /DescendantFonts [ 1432 0 R ] /ToUnicode 1431 0 R >>
endobj
-1418 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CWYYJT+LMRoman10-Bold /FontDescriptor 1414 0 R /W 1413 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1432 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CWYYJT+LMRoman10-Bold /FontDescriptor 1428 0 R /W 1427 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1419 0 obj
+1433 0 obj
[ 28 [ 613 ] 35 [ 580 ] 47 [ 624 ] 50 [ 558 ] 55 [ 536 ] 59 [ 641 ] 72 [ 513 ] 77 [ 613 ] 82 [ 553 ] 84 [ 558 ] 98 [ 458 ] 104 [ 786 ] 112 [ 613 ] ]
endobj
-1421 0 obj
+1435 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```T`h`Phh
endstream
endobj
-1422 0 obj
+1436 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1852 >>
stream
x}UP]43Y ?1D@b
@@ -6317,10 +6378,10 @@ Cأ-ܙo  fn @b B> ߇6'Q0N-ͺ*jq
C?Uks> n=Sߗ]{Uduk4ZAa 0ǰ nwpWB>_`:׍k78L <A¯‘:t@9[v?ӍN4?tn@g@Q[Lh$<xL{״0Q/o^L=S+= #L<B 묯j-nOb)׉x|? CT3: ~;EՕ.%+XʧZ> pJv3^ !N^[;.Di>Ȝ^ԏ+>n7PeЙ^/n
endstream
endobj
-1420 0 obj
-<< /Type /FontDescriptor /FontName /EYRPLG+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1422 0 R /CIDSet 1421 0 R >>
+1434 0 obj
+<< /Type /FontDescriptor /FontName /EYRPLG+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1436 0 R /CIDSet 1435 0 R >>
endobj
-1423 0 obj
+1437 0 obj
<< /Filter /FlateDecode /Length 430 >>
stream
xڍM0C {Z,ub؏i
@@ -6330,21 +6391,21 @@ RF)O_J [.!vUkVU {:~h
endstream
endobj
388 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EYRPLG+LMRomanCaps10-Regular /DescendantFonts [ 1424 0 R ] /ToUnicode 1423 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EYRPLG+LMRomanCaps10-Regular /DescendantFonts [ 1438 0 R ] /ToUnicode 1437 0 R >>
endobj
-1424 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EYRPLG+LMRomanCaps10-Regular /FontDescriptor 1420 0 R /W 1419 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1438 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EYRPLG+LMRomanCaps10-Regular /FontDescriptor 1434 0 R /W 1433 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1425 0 obj
+1439 0 obj
[ 28 [ 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 52 [ 778 ] 55 [ 306 ] 59 [ 500 ] 63 [ 556 333 ] 66 [ 278 ] 71 [ 625 278 ] 75 [ 833 750 556 ] 81 [ 500 ] 84 [ 556 ] 88 [ 278 ] 91 [ 528 ] 96 [ 392 ] 98 [ 394 ] 104 [ 722 389 ] 109 [ 556 ] 112 [ 528 ] 115 [ 750 528 ] 125 [ 556 ] 251 [ 444 ] 257 [ 444 ] 277 [ 444 ] 502 [ 278 ] ]
endobj
-1427 0 obj
+1441 0 obj
<< /Filter /FlateDecode /Length 35 >>
stream
xc``\8c‚#3XP2`
endstream
endobj
-1428 0 obj
+1442 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3950 >>
stream
xX TSW>NT9M[vQ[Z:Q(jWx(
@@ -6367,31 +6428,31 @@ Qm!5;~DM1S=RH$K#aF@ l~ P4dFf,u@{gȮY
ijYZA+|}l7MҮ%A٠n>u5f˛AANb֠5
endstream
endobj
-1426 0 obj
-<< /Type /FontDescriptor /FontName /ZSUCQN+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1428 0 R /CIDSet 1427 0 R >>
+1440 0 obj
+<< /Type /FontDescriptor /FontName /ZSUCQN+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1442 0 R /CIDSet 1441 0 R >>
endobj
-1429 0 obj
+1443 0 obj
<< /Filter /FlateDecode /Length 531 >>
stream
xڍKo@Y8I,%KH I1B-ǂߙ9c"UUT$1a=wEs$7lO}3v%k:ٺ)ǚ#$h޻i`tjS[Y^FASֿ^\ɏ}+~۹__M]R\kpQ5T4?F>1s~H6wV7[L*):+(3Q%Y<]_<5jYuJS*3BZN0A'unWڐPj~G {_6(+䙜2'lW9'J*n䥪瑗hz!?e5(F,ٞ1vy0r|K,ٞTG@sz6=cAY _"(K%PrMNKl^/1{lXl ysl yKHϽO<i$zoY]\uz*I;62osMoE
endstream
endobj
387 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZSUCQN+LMRomanSlant10-Regular /DescendantFonts [ 1430 0 R ] /ToUnicode 1429 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZSUCQN+LMRomanSlant10-Regular /DescendantFonts [ 1444 0 R ] /ToUnicode 1443 0 R >>
endobj
-1430 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZSUCQN+LMRomanSlant10-Regular /FontDescriptor 1426 0 R /W 1425 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1444 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZSUCQN+LMRomanSlant10-Regular /FontDescriptor 1440 0 R /W 1439 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1431 0 obj
+1445 0 obj
[ 28 [ 569 ] 45 [ 323 ] 47 [ 631 ] 50 [ 508 569 ] 55 [ 354 569 569 ] 59 [ 569 ] 66 [ 323 ] 75 [ 939 ] 78 [ 569 ] 81 [ 569 569 ] 98 [ 453 ] 100 [ 569 569 ] 106 [ 569 569 ] 121 [ 569 ] ]
endobj
-1433 0 obj
+1447 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc````5 c
endstream
endobj
-1434 0 obj
+1448 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2882 >>
stream
x}V TGa`zTDm5ݦ=DkQcQ a8fd@e9f@DD9JtM< M\]1զ|/{ަ_uwU}UٙH${ǚ뵱
@@ -6406,10 +6467,10 @@ x}V TGa`zTDm5ݦ=DkQcQ a8fd@e9f@DD9JtM< M\
'ѸXfݯ6f,r,G4r ݅,ȦI.x"^[ǤӰ(>f!BS˼x3< #'"vЈzxAیf
endstream
endobj
-1432 0 obj
-<< /Type /FontDescriptor /FontName /PTDKAL+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1434 0 R /CIDSet 1433 0 R >>
+1446 0 obj
+<< /Type /FontDescriptor /FontName /PTDKAL+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1448 0 R /CIDSet 1447 0 R >>
endobj
-1435 0 obj
+1449 0 obj
<< /Filter /FlateDecode /Length 455 >>
stream
x}n0y
@@ -6418,78 +6479,78 @@ wDiBhRPm%bGNqT].R_ΙLnp tj nɤTlh@
endstream
endobj
386 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PTDKAL+LMRoman7-Regular /DescendantFonts [ 1436 0 R ] /ToUnicode 1435 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PTDKAL+LMRoman7-Regular /DescendantFonts [ 1450 0 R ] /ToUnicode 1449 0 R >>
endobj
-1436 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PTDKAL+LMRoman7-Regular /FontDescriptor 1432 0 R /W 1431 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1450 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PTDKAL+LMRoman7-Regular /FontDescriptor 1446 0 R /W 1445 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1437 0 obj
-[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 755 511 ] 49 [ 678 460 511 ] 55 [ 307 511 511 ] 59 [ 460 ] 63 [ 511 358 ] 66 [ 307 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 678 511 ] 91 [ 460 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 121 [ 511 ] 168 [ 511 ] 251 [ 460 ] 257 [ 460 ] 277 [ 460 ] 284 [ 511 ] ]
+1451 0 obj
+[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 755 511 ] 49 [ 678 460 511 ] 55 [ 307 511 511 ] 59 [ 460 ] 63 [ 511 358 ] 66 [ 307 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 678 511 ] 91 [ 460 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 121 [ 511 ] 168 [ 511 ] 251 [ 460 ] 257 [ 460 ] 277 [ 460 ] ]
endobj
-1439 0 obj
-<< /Filter /FlateDecode /Length 35 >>
+1453 0 obj
+<< /Filter /FlateDecode /Length 34 >>
stream
-xc``0/`_/@X8
+xc``0/`_/@X
endstream
endobj
-1440 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6123 >>
-stream
-xyxg1<fB$tBqބlYUԻ>*[{ kJ K I6޻Od?{>W~,#y{ 8a03eӖ/ܵ/+3tm N{炳A(| b AH<e&vgjn(;tH,,z߇YO'MW9X/ !2|0PSxe,yeS??.\dϫ#7.ܞr9 "w-ܝ%r"e"S2R#R#Fd EHFrߜܔH!/9%'Rod;9I)ܔȅ ##sSR"ŋ´EY9iS.P6EH'LʉLN$p2r̄ Y)ےSx 8,<2Y,F"ːJdYG^G6"[d' ٍE!Q$GD$IAr"AGN/,NX,MDw 11G&AЛIؤ!igN3B=a}SNS5ӤF><Bv;Lf~Qg:gHDMGcbƅ'[+*Pwa7-xN-א r1`zC6Z&V |PH)\60֠\Y\d^`!:-mV$jT
- w0?3ϳ*B _g(s4`-j-fVU`SpqqI=A-菺~t7y!j;jdE"-yljך1Յ
-_<}. '_~r lJEv30>3ۦtFBE,ܰLW:Wj`[3$5 `SM͝wagp',/"xGD! -:nRN:[,XmDkwK
-xazQ'" 3᭟0˂5J *PNC |zPnҨco@ /^r\ãWH;9a->,mm.;3dAh6"fK5$|>x1񲗒"~}yڽYm̪ ݅n^7 "E
-jcGJ+;pc^I^!6 kXmq NcA6s3 FQIXKL
-3Q :4VKr
-]XpkǝUb2S+c
-EYmmeA <3`}'+o%R~x& p P }RИzѠ%űd<.]#-Y-ד_jT
-DZSm':\hw;pl_;٣<M;ِ>HصeOG4J 85Dͣ[qj˭3=^/)Z);eq"%%"\<|*NJ IrRG?~ﶏ(1tݽ
->x
-r<u*u*IXrMٯ[KV"<>ή*gr\a9L,'__d–kj.4 /!בi#zԨӊ7S:+k+, wU]ZGx/p
-jfaIg ~^g0f$缻dٴ-b pCG:l~1ԅnCшJ_^M*dBT.x_Fc4ɈDy-1mmUp`0dod$-&9];໴30/̾
- s!G+ݣJ4p1Vczh~J~8/z
-瓏xɽN v'y
-E[7>
-]7[
-M쟮0Lv
-Tf<-=heSQW@יUyQ"=Vmv} p)~:l`z02Z/N=VyRQ+ 2xRc#-նU<ڧbwֿOM#_Gxãqa8[IWJc:I޳{M?:TFAyXˢq49s |B:-_)Q3Toɾ-vjr4:UXZL}
-O]g9A!s3~4Z"1z055)K[dNה%iah-Q/S6t14epUϦ*'yeer(!RkBP"uw[D
-,l6u!S UN6( љ@+T*- ls3g֟]^PQ"UaYt1 Vavփrj.x{H|tѢ3[*,)#<"'ڲM8g{hʦFeuy*s"rtGwYnZ]
-%ᖤrf\5e@ãMiF~1@8O6⇶/oc^GM;{E6dV7,8%Ek|wێM
-j‡%,'X!Ú|弘hVN,~pM٫+(eC-ѣC*;]tn~LZĭiV#%[YNk!LKverh |>2dcpҺQVS;'`hgM:
-
-_rY gtiuN .)򕤪kHM6*.|d=atSBLR)mf
-01K鰘iK_q?:(gvF9zhuj\xpsKO:
+1454 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6083 >>
+stream
+xY xSe>!PD9rNDDPVY*;elvB4mt˾ϾvoӽPZe"880
+:{zSswIIN~0離߱mwgf-YM}/*Tp&%O" 1.H2ZfBf2CǏPOGs dy\I"F} 0 +d2&1/p3y4!g…K^}^Y7%>)q9$Ζ9;2%Q.gN&LM$gpR3E9{Ӹ9If6CNNOINIaZ2g={9fmd~N2g<''9&
+V.X N]B&gA؇r7ը{mۼ>rǞ\!'%3,GfvF|ڤ̄I|!WyyyyG dYB Md+ َ@v!=^!H$#i9 Dd#BD!EͤA?#G3)f<`m̑7H+}6ZHwNȎIdӏ
+6lCXMXٔo d=]'&>1Ga/cx“']3D]x0<,a~9]Wf~Z5
+-I nM>0
+<\`Ds,09W te UEJB-l@?b]v4B5F{kۈ7|rXKlWC ‚HmQf!M:/mFuV-#|%ȓ9AP
+ii9JI~3QJ_ ?\EcuMnQs֓]_Y+N7%'֟ҵu&l*rщ_3OQ+B̂{h.&j\j7gKALb7%֙* װR㞝ljqGF8fS_bKsceW^8N JԔZI(5~tב]ڑiUKV-{sUVTVQV07
+V 0`6Vp8Ao2HIL: MIVo4G+ 4
+e:OEAt٨RQh3GyG!#"m-zQ*héj|xVɍ8
+qY:
+J +RUdK;n7*M7'Īsej E`;gȏ2`,`.\l*)Թj=p^Mii{!3j2
+~#KM&2A%bRO|
+FtFa܅& -߆TY#IVd.PN
+;YVn*vӧ?UZ.\-5uhqU`o&צRsul)-χpW'Q5d94Y`I5 hوpN}0]UyRqcssY28DŽ-נ]Vhd~n|?ב)#ԤI
+SNtVemXoK[
+wU<AyKpT0M
+FY{Nbkg|Vٷ7^u!hwX{ ]*{<(\8\RϖM%FTeX˺2E;2
+L AFeée*O&3bO~/07Yku~
+;vt?ݚg_=w)UsO)<]`)
+St8b=k޺x!G37Y9&i8A~k0?7Kh̥48}jȫDiERő. q Vsd @ZI) <Zs]DG^.X:mPnd5\{[g 7`ɝ/62i"$E
+ɤP1{_%m0Kp wB!0%
+]+J~v+[mz Vnh*5jLN"fOQȾ4B&اұ,Ry ο<@cy8 7Hub5Uow(O(1#۟е|˗ Z☲O Vvp `"03?fPNO~+ 8+(bóFۏV=Q(A$&"CIpA]d
+7]l5F[t j;
+GOk?8}<oѧzCԕWZ9bg֓KP$
+5U|EPcִ߶ }vjjK*m\i fUK
+i !<՜(zv ~@5#٫/(Jƨ'FSCU^q\Cw[(@O$H6m3\ҕN*H}'Po欠bHq}7rUlt'
+)\n) 98lrkK:C->tT]yRQqb4p^o
endstream
endobj
-1438 0 obj
-<< /Type /FontDescriptor /FontName /XVGCGS+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1440 0 R /CIDSet 1439 0 R >>
+1452 0 obj
+<< /Type /FontDescriptor /FontName /HOLXNQ+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1454 0 R /CIDSet 1453 0 R >>
endobj
-1441 0 obj
-<< /Filter /FlateDecode /Length 583 >>
+1455 0 obj
+<< /Filter /FlateDecode /Length 579 >>
stream
-x}k@W>!u9HXTJ_c2vf3sʺ?{9:zߺ˪K7l#ԗM_ΙLVmyj_duo˭4W;-Uy<UI~[bN~iByX.7vx Uf|~[ȼ{ι SU6hK6}UӪlow<Uu9e2aMXF?ۭ[_ɾV_lzcGٞ(>;I*yЭuFE#+]Νde m%(e_/,t<aKuSP .okSqzR ZBp.&ZYSPeZC
-<"s@-Q#z.D%ly uHHI=K6&
-"x v h
-$/h49BZb v]228eKK<ds| ~Wl.V^_6{2wVLΜ/0< >c
+x}Oo0=8B(-R ]@^ClHĉpۯ7ijZ<{x; Q<r]}k ._VuqR
+)jں8ȞFoTq 9-zR}J6>w}}yU<nZ.7e o̶-ۮ9Le]3-d\*Ҫdw<ߢQÇ{jε3^ۭɮ-ՅQkJN2!ϺhWMղ㽑̷akBHgC)OH%9N@- gCqz 2
endstream
endobj
385 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XVGCGS+LMRoman10-Italic /DescendantFonts [ 1442 0 R ] /ToUnicode 1441 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HOLXNQ+LMRoman10-Italic /DescendantFonts [ 1456 0 R ] /ToUnicode 1455 0 R >>
endobj
-1442 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XVGCGS+LMRoman10-Italic /FontDescriptor 1438 0 R /W 1437 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1456 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HOLXNQ+LMRoman10-Italic /FontDescriptor 1452 0 R /W 1451 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1443 0 obj
+1457 0 obj
[ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 61 [ 525 525 525 525 525 525 525 525 ] 70 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 95 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 120 [ 525 525 ] 245 [ 525 525 ] 252 [ 525 ] 272 [ 525 ] ]
endobj
-1445 0 obj
+1459 0 obj
<< /Filter /FlateDecode /Length 33 >>
stream
xc``_
endstream
endobj
-1446 0 obj
+1460 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8030 >>
stream
xڽz\WאּD *(3Ěcb((,3{cWlAq$kMLbMs} y .s̜<gV@bˎrptJߘ?gWLn*75E${EcY
@@ -6534,10 +6595,10 @@ MU|\hk!y\&bVf QN^)T6+HLYׅǃ"ƒ|v,
Ct?LCDpƦjYMD<7ťr=?;)ZVM41Yl^W1Yq,+VT̨&n&ggHsZZE1t+AX鿘yLV,, <ӗXQڑQK?Y٦U9iiM_/2t
endstream
endobj
-1444 0 obj
-<< /Type /FontDescriptor /FontName /RXYETB+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1446 0 R /CIDSet 1445 0 R >>
+1458 0 obj
+<< /Type /FontDescriptor /FontName /RXYETB+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1460 0 R /CIDSet 1459 0 R >>
endobj
-1447 0 obj
+1461 0 obj
<< /Filter /FlateDecode /Length 738 >>
stream
x}[k@+f/
@@ -6549,21 +6610,21 @@ F#d0JF@02$IT^H|jYUK_]KL/E%4,CN3oӒS %,aNó6
endstream
endobj
384 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RXYETB+LMMono10-Regular /DescendantFonts [ 1448 0 R ] /ToUnicode 1447 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RXYETB+LMMono10-Regular /DescendantFonts [ 1462 0 R ] /ToUnicode 1461 0 R >>
endobj
-1448 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RXYETB+LMMono10-Regular /FontDescriptor 1444 0 R /W 1443 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1462 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RXYETB+LMMono10-Regular /FontDescriptor 1458 0 R /W 1457 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1449 0 obj
+1463 0 obj
[ 28 [ 481 ] 35 [ 517 ] 43 [ 444 ] 47 [ 517 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 ] 59 [ 500 ] 63 [ 517 333 278 239 ] 68 [ 267 ] 70 [ 489 ] 72 [ 239 ] 75 [ 794 ] 77 [ 517 ] 81 [ 500 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 101 [ 500 ] 105 [ 361 500 500 ] 109 [ 517 ] 111 [ 667 461 ] 114 [ 683 ] 116 [ 461 ] 118 [ 461 ] 120 [ 435 ] 125 [ 536 536 ] ]
endobj
-1451 0 obj
+1465 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``T |5%aI6
endstream
endobj
-1452 0 obj
+1466 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2827 >>
stream
xuV TW1 h@%&RFgjk
@@ -6581,10 +6642,10 @@ m׫&IcT щqRm4T!MKUR:mZr껎u4CHNNUJӒbU:>A% iҥ5
ʊKJm)
endstream
endobj
-1450 0 obj
-<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1452 0 R /CIDSet 1451 0 R >>
+1464 0 obj
+<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1466 0 R /CIDSet 1465 0 R >>
endobj
-1453 0 obj
+1467 0 obj
<< /Filter /FlateDecode /Length 527 >>
stream
x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5YE <HuoDdm؇ ul+Uuw&yYR*uK}pK?—_?/¯Bt8 r{j[uGDf(senZ=sn,득 F^%Ke;+<b&>˓\ڎN+锍Lũ FZԁ ?hr69xeLޔ6'b#;Jh]>vf{iŎ#.kImS u`jL.+ Hɿv{I&>T.-iYP 4vĠ HRУg*<8sG9?|Oc3(@s%>AP&DL'M1FLhI|h,T' .?mzM,nO ~{6\<kmV]v+Eכԍ=
@@ -6592,18 +6653,18 @@ x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5Y
endstream
endobj
383 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1454 0 R ] /ToUnicode 1453 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1468 0 R ] /ToUnicode 1467 0 R >>
endobj
-1454 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1450 0 R /W 1449 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1468 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1464 0 R /W 1463 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1455 0 obj
+1469 0 obj
[388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 0 277.8 0 0 0 0 0 444.4 0 0 0 0 0 277.8 0 0 0 0 555.6 500 0 0 0 394.4 ]
endobj
-1456 0 obj
+1470 0 obj
[ 27 [ 750 500 778 ] 34 [ 708 556 500 ] 38 [ 500 500 ] 42 [ 722 444 278 278 764 556 ] 49 [ 681 444 500 ] 53 [ 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 778 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 144 [ 500 ] 167 [ 750 500 ] 207 [ 444 ] 234 [ 375 ] 250 [ 681 444 ] 257 [ 444 ] 277 [ 444 ] 283 [ 1000 500 ] 319 [ 556 556 ] 343 [ 278 ] 428 [ 500 ] 446 [ 778 ] 502 [ 278 ] 575 [ 556 ] 589 [ 556 ] ]
endobj
-1458 0 obj
+1472 0 obj
<< /Filter /FlateDecode /Length 60 >>
stream
xc``/߿
@@ -6611,7 +6672,7 @@ xc``/߿
8 &#
endstream
endobj
-1459 0 obj
+1473 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 9343 >>
stream
x{XW쬍(13hl{{oK,[" FbI%XsvQk3O>fc KVnXhk]Ǝ[fys!ן
@@ -6653,10 +6714,10 @@ E%P< Kc5-`vofUzy|9s.nVxTp03E^`?1ACR,Nd?~ƃT
a!(b:tjrQX8C]ԨKצtt}U#I
endstream
endobj
-1457 0 obj
-<< /Type /FontDescriptor /FontName /TINWNG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1459 0 R /CIDSet 1458 0 R >>
+1471 0 obj
+<< /Type /FontDescriptor /FontName /TINWNG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1473 0 R /CIDSet 1472 0 R >>
endobj
-1460 0 obj
+1474 0 obj
<< /Filter /FlateDecode /Length 798 >>
stream
xڅMo@C@!cWH j{%B-95R<ޏwfr͇Dx7fݬ)N{Sw cJS^Fm}:{u;2ߓf[շ)}q2?{_ׁ?x7n~٪vvf
@@ -6666,91 +6727,100 @@ xڅMo@C@!cWH j{%B-95R<ޏwfr͇Dx7f
endstream
endobj
381 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TINWNG+LMRoman10-Regular /DescendantFonts [ 1461 0 R ] /ToUnicode 1460 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TINWNG+LMRoman10-Regular /DescendantFonts [ 1475 0 R ] /ToUnicode 1474 0 R >>
endobj
-1461 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TINWNG+LMRoman10-Regular /FontDescriptor 1457 0 R /W 1456 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1475 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TINWNG+LMRoman10-Regular /FontDescriptor 1471 0 R /W 1470 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1462 0 obj
+1476 0 obj
[446.4 446.4 0 877 0 0 0 0 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
endobj
-1463 0 obj
+1477 0 obj
[500 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 0 0 0 0 0 750 758.5 714.7 827.9 0 0 0 0 439.6 0 0 680.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528.6 429.2 432.8 520.5 465.6 489.6 0 576.2 344.5 411.8 520.6 298.4 878 600.2 0 503.1 0 451.2 0 0 572.5 0 0 571.5 490.3 465 ]
endobj
-1464 0 obj
+1478 0 obj
[955.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533.6 588.2 0 0 0 880.8 ]
endobj
-1465 0 obj
+1479 0 obj
[1027.8 0 0 0 0 0 680.6 680.6 680.6 680.6 ]
endobj
-1466 0 obj
+1480 0 obj
[339.3 0 0 0 585.3 0 0 0 819.4 0 0 0 0 0 0 0 0 783.7 0 0 0 0 0 0 0 674.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 542 0 0 0 404.2 472.7 607.3 0 0 706.2 0 588.9 523.6 0 0 0 0 0 0 647.8 ]
endobj
-1467 0 obj
+1481 0 obj
[333.3 0 0 0 0 0 736.1 736.1 527.8 527.8 0 0 0 0 750 750 0 0 0 0 791.7 791.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 0 0 888.9 666.7 875 875 875 875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555.6 0 0 0 0 0 0 0 0 0 0 0 0 0 472.2 472.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666.7 666.7 450 450 450 450 ]
endobj
-1468 0 obj
-[ 28 [ 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 ] 62 [ 525 525 525 ] 66 [ 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] 163 [ 525 ] 246 [ 525 ] 272 [ 525 ] 314 [ 525 525 ] 439 [ 525 ] 494 [ 525 ] ]
+1482 0 obj
+[ 28 [ 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 ] 62 [ 525 525 525 ] 66 [ 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 121 [ 525 ] 163 [ 525 ] 246 [ 525 ] 272 [ 525 ] 314 [ 525 525 ] 439 [ 525 ] 494 [ 525 ] ]
endobj
-1470 0 obj
+1484 0 obj
<< /Filter /FlateDecode /Length 43 >>
stream
-xc``_ `& n
+xc``_0
endstream
endobj
-1471 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7450 >>
-stream
-xڽzXSJ\=7u{Q'.=Xa$$M {q *ZqPhۨ:kھyO:<B=~9~?&x<ސWl[n5k2I^j?@ӥ{Hp n8ƊXmxhƛ?{-lFumbB؋CoXgN<u%rEHJ2}M%'K\}U!q,Y3YVHe7D)("Q+JW\P?YG)}%@U)e@[*Yad\qʔRɤIR*xT9S^^S<=)~SLMZv+,]adUJ)xHU>~bp<oMC*SB3A
-*pI
-N԰يRp(V/_@;f+{|u\?v3횠79n繋ܛ՛b%ҥ eܘ" 1 Ӌcr7VA$NfԈLA ۶mdOUl3 rkƦ
-n4,D+|k(N`]MWw~.'V8^23<@NaTN<ZM"Y/Id0?n7JѐDcyO5[\u%$sm3mÒAvʰ5Rr6oh8,aLc9{bt>+{2c`p<FYi1i4؁lg 5ص'wEϹ`1OF
-Ga4 Lb3i
-% dl/RE1%]5N4cc8ZV^h
-ya+ #{,udᱡK]TïpSJ&1BBvZ3pT- Ep)v(8+_׳AxϬ-s9ϣ;<x(fd ^"*IS BJ:M˩ /0[,Spp<{wu{/t'G=8 C60S?%!ycIHMip.ђvsz/1&%jM40 dD8v#Nτ(Q9 9]ʭMaz>f՟ ?]]=- p9%4Me~ NUO"W-/0ZR~Z[,* ӹ,9>EXES#[S*~1uԆN4p^
->1:)4lⴴLpX~}u˜fo.<fl}rr0V*֔ˣsC>heOn8Nn tpf>]7qIA R#&e
-+V +dN3K_A ^0޵.4G2v%#MEc28+w9\n6Кn-@8N[_&)iʐr<X#_ye׫O
-Dw߂Ӿ.W#=fj֚H4,k\ٍ@':{n<~{ {W5Ugiwdb~1H#3`ԟue4fw@ګ{tiv|[O5cs׎WX/XZP_i.Ùuw?qB+"#%qu &}h]tL΢JT ]>i p^zA2K%<FfչЙVJN/OvT$MAEm(T6E Yh==z; &wU{t2FU^ B친ϠvsXe0^ j{9bi^B1喷j|bl '$ۡQ7GjM<$iA_V5 (ICZmRA(QQZ|23؝4’xfDA-"nE1p< Z;w QH@äE2&g$!nQo?wk޼o"NRE-wtGj&H#e
-.G,j9,jT@*?eN_v?gor6D919;Y{Gq]oK1q~@|ğ4 @^K8
-9e;ug{5g,Rͧ?G}qO2JǙ f@ݖOc`k1q8YiL^L1 Q!V\`6Q1
-լu37MNȟxy"XvϱI/fL`#&`b ps<^ ˎ͊ÚyQA]}6~B]\|t8&=oς3_=!2_ !}R3-/<t7
-SjQRaWexc"cASJ x }\]{;T}-,]Ҕlovٰ=Pv=T",LJ*1[0 {ܠ=ECGOL\2fphvT_
-'GZh<_}wE{-k(Ng\]pg+-/*+Jȉ
-ӹ$EmGg
- )u.m^e֊KFN1RIr':O"ք τ- c;
-ȭdJ9돦dw1_KB="/Z:D |7ZR7wIN@<҃T};MbJ4#LnBb<E=1}-rT5sw3M1t
-IbEGeӰ mhO[0Ns:ສ#@yIXP&3yi9baX1Y :pOLdŬjn eČChyH½>_T&1bڌPk5ȏPR%cq{Pj
-]@ʼn:{W")
-/*lMB6mƎ bO‚9ܒq~fm6fɩL)iɅvhǕ/$#
+1485 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7379 >>
+stream
+xڽz XWD$*G1wR}u+n(
+ [XdI a k
+xVa=̩ӧ^.z(%3O5x'Y6Ub'S+|%n25W2A(q{Id^gVJ! VHe*⃩g_D- RB)QzJ%Jd&gJYRCJLHRGϟ6M* 慯QL7_foJS֭YbSJ,X)U+a=
+Rʼii̧-ٕ:Bkn NhB-E#$=d_S}Ƨd5ᖫyPtƓNGGf'Ļg|8S\)V%&%%Dulv룕S؋8ZΈ.e~F2 OEde
+j]|yx`\mҰ :ƅ3j 'ņ@!FcnUP"%$/<L(o_p+&Eg*Ajƹ
+:,TԦkuI 㛇cr76I$NeԉlA{rS#8̞(3k68"ױ-AlXm̆
+KP5Eae?Tzޗ-;)8{Fݪ> =H81|1LTHHAbdcdڴ#S
+a#h2YL#IPF?cGKȟ ?l8잿dӵo:__m_I5ѵBKOm-;m „D6D_QQК7hDh39^VЬ]Hi&|/ ;ӵTsF_* )׺.?>D#XyK3[W.q1My;ZO4w*
+YO!?Màjf1K\A>o޵$T-zh2˩w+K.~0>BVs[yu iy糠 y(gGYxSܽ۹sSSÚu]Y׷9g{wx\7j4"+2ғz`ȑy؃ dyЛ#cY/!Cl7?pkp~cp8}A*LtatUǤ|ݙ3<zeLTdUzS4y?pldQ\ PC9ׯCsʯwg 8#X z_p|*C+8pKX͢IxcB@z';aSA/<".-l6YMg
+램rp
+)'}RD٠@“kt籥ru#Y]ZV]*`pOq?Q:],~ iN3,oVm$RBB?.MG']㏆k w|kzοpeᒃa@Qu= ^TCOYlW_
+UR*${xώm~z G@`Gh4-͏ar
+
+l~F55n?ne*R u 
+m!]UVZ)Q.[<z飮.gQ+\у͇O.)15CĞ9
+NUm#AdDPTnY(fU]'+z%5)qm愕x~y;w/7՞>fl{R?w<YpH'uf{ZÊ;st Dm^l4@W)l>ym̑cxc},6.rX9` gN]h\dGx;zU4E#sԟq
+S FzO*g›9B=XQ
+V(Ni;͠yq[;zI4\;[p~=KB-OgKk/YX
+|T=lm,vɇ#D:
+lۜ2x@x13Ņ hyl
+
+Cv5;AҘ^0>aE o=魫ΛK@*E)6'9,1 G!D#r
+K˖-sKo|0DQH=y>߿'"grXE%
+zOFoxS"" 4W/C[B;/c}d0ƿ!_^qy0ScB@TF[ߺNalUzo3U$[<<I0+#3'OP.W0{QL;W&';u幌QylƄgW#_y nm+%9 xgfF}{nxN6!16NRWٯK[t+3X@)u->vK8>M
+\tgS{Ъmvr0r﷼?n!t۫Ż@cۼpG b1 *uF\ [h.1vp'HsM~[hDlР y# 8 4Q?^|o߹{t#xbpA4!!U}죍.;@@tݜ,{KԹח_d"뫏  誊37` "9f
+AB'iCMWsCN=p҄pw #82n/VN:ٱgp ֢QbUWZXVZd-8稇0桋A䌳 3"K筡
+wo锩wiL7 _t.Hɹ} M
+=>7 "$ .m'Tnfskv2.큛󅥱j6ƇX&!f7rI^t(XqWض[`l#otii!J:I: O!eV̭`ޖVY&/b, }Sz܅S}u納³}^>͆&+j`a
+ ;ģgΣG|iV%i]%LWr]PGJ2UBǒti%ۖŜz] 30!NSìH0M37E Gn@%܇HRP6yG FxH' Ƌʌ,$g`DٜD5`|L eW|ⲰMd
+2X0xgCr 8h_ŊYM Py'gO ear&37:/=j`~I=dfU/' k)7d٣oL2ڃy
+6!A,۹؄0qXkp6_? 0~ML<~\#4@
endstream
endobj
-1469 0 obj
-<< /Type /FontDescriptor /FontName /YTHZRQ+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1471 0 R /CIDSet 1470 0 R >>
+1483 0 obj
+<< /Type /FontDescriptor /FontName /RMPYKR+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1485 0 R /CIDSet 1484 0 R >>
endobj
-1472 0 obj
-<< /Filter /FlateDecode /Length 727 >>
+1486 0 obj
+<< /Filter /FlateDecode /Length 721 >>
stream
-x}Ko@Rp=!$FEj j#@-ز͂ߙ9Dh#13s<\_^Lj&?nh0XhldLij^ںXW[yeé4]7̾[|v1?__k[W?mC?"B>.IAny}hH"zWٲ%ͫҌU]o+ ]s| ҴݳݖiaI4\eh{_nN!K5´[7ELx&v@^\?JPth(S<e ֦4H@(q$2@zҠ;im):p 2@A@# #EGGʸD$O A8Մ?NɑjGAT #t
-$!SABRP(k@ʈZA5 b B92P-q$Tk"J%<d2)!t3OATP&qi"z)(x"e^I+(DȚS? YKSZwHh䏈A&D5D5n
-GS䒃8siyr@7BJ)Os(K+L(?~ũm <LK?'+kާ}S7TxeX[
+x}Oo0C@Ib)BO.mjHF$Joghgy|{Ef>67z77:?L?S=ηbU-^U\kE3s(Gܾ_z]Wh1qB쏶u.?iEt y}r`Hbx/NTQ,2I~9KכӪx,sk maڲ:ۯ%ڒia06Ɉ*j_ǖKcD9ܼ.Lr 6p"K7 LU|Zm׷ٵhn
+CM<-<yJ2Oq)(BP AgNtJA *6qm4C<H*@KI:"Q#M#
endstream
endobj
374 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YTHZRQ+LMMono9-Regular /DescendantFonts [ 1473 0 R ] /ToUnicode 1472 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMPYKR+LMMono9-Regular /DescendantFonts [ 1487 0 R ] /ToUnicode 1486 0 R >>
endobj
-1473 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YTHZRQ+LMMono9-Regular /FontDescriptor 1469 0 R /W 1468 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1487 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMPYKR+LMMono9-Regular /FontDescriptor 1483 0 R /W 1482 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1474 0 obj
+1488 0 obj
[ 28 [ 494 ] 43 [ 457 ] 50 [ 457 ] 63 [ 531 ] 66 [ 245 ] 75 [ 816 ] 77 [ 531 ] 96 [ 351 ] 98 [ 394 ] 105 [ 371 ] 116 [ 474 ] 118 [ 474 ] ]
endobj
-1476 0 obj
+1490 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Ta`X
endstream
endobj
-1477 0 obj
+1491 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1234 >>
stream
xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc1Iej=b//{#@h( br,Cn|Vv)OXY+&>j4MЬĆHCdZqc1ɩ
@@ -6760,10 +6830,10 @@ xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc
7bdxo;ts:<0n${z;[ZhoG6z|t?J
endstream
endobj
-1475 0 obj
-<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1477 0 R /CIDSet 1476 0 R >>
+1489 0 obj
+<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1491 0 R /CIDSet 1490 0 R >>
endobj
-1478 0 obj
+1492 0 obj
<< /Filter /FlateDecode /Length 419 >>
stream
x}N0~âRY8)UH@+R!}ڱؑ, H3rrn{t-?1pxtV`|-k6*D9DZ#
@@ -6774,21 +6844,21 @@ u0=z0a6 4
endstream
endobj
373 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1479 0 R ] /ToUnicode 1478 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1493 0 R ] /ToUnicode 1492 0 R >>
endobj
-1479 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1475 0 R /W 1474 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1493 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1489 0 R /W 1488 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1480 0 obj
+1494 0 obj
[ 28 [ 514 ] 43 [ 457 ] 45 [ 286 ] 47 [ 571 ] 50 [ 457 ] 55 [ 314 ] 64 [ 343 ] 66 [ 286 ] 71 [ 642 286 ] 75 [ 856 ] 77 [ 571 ] 81 [ 514 ] 84 [ 571 ] 88 [ 286 ] 91 [ 542 ] 96 [ 402 ] 98 [ 405 ] 104 [ 742 400 ] 109 [ 571 ] 112 [ 542 ] 115 [ 771 542 ] 251 [ 457 ] 502 [ 286 ] ]
endobj
-1482 0 obj
+1496 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc```UdX8c‚#3Ѐ
endstream
endobj
-1483 0 obj
+1497 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2880 >>
stream
xڵW{TWA7cgV)bU*T(j C$Hx#o ZCA)j-]ڭ[מc'97̝/+1@0uÛWlX9{Ee,#<x<%[!S-oq
@@ -6808,10 +6878,10 @@ y›lz<A/TmζN>rwaD)E~h)xMsvŊ
+/M<LAwD:C~twZڂViuUu Ae'jT/xlX=@$Ahh5hGp]]FCX}}5Pml{jl`(]6S ΀z}˵Fy!?b j-:+ݘgCOQMeyyL.iC7uɹ,ǎ2&
endstream
endobj
-1481 0 obj
-<< /Type /FontDescriptor /FontName /WDPLWN+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1483 0 R /CIDSet 1482 0 R >>
+1495 0 obj
+<< /Type /FontDescriptor /FontName /WDPLWN+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1497 0 R /CIDSet 1496 0 R >>
endobj
-1484 0 obj
+1498 0 obj
<< /Filter /FlateDecode /Length 488 >>
stream
x}n0~
@@ -6821,21 +6891,21 @@ x}n0~
endstream
endobj
372 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WDPLWN+LMRoman9-Regular /DescendantFonts [ 1485 0 R ] /ToUnicode 1484 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WDPLWN+LMRoman9-Regular /DescendantFonts [ 1499 0 R ] /ToUnicode 1498 0 R >>
endobj
-1485 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WDPLWN+LMRoman9-Regular /FontDescriptor 1481 0 R /W 1480 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1499 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WDPLWN+LMRoman9-Regular /FontDescriptor 1495 0 R /W 1494 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1486 0 obj
+1500 0 obj
[ 75 [ 986 ] 95 [ 887 ] 98 [ 467 ] 109 [ 657 ] 251 [ 543 ] ]
endobj
-1488 0 obj
+1502 0 obj
<< /Filter /FlateDecode /Length 20 >>
stream
xc`Ft
endstream
endobj
-1489 0 obj
+1503 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1088 >>
stream
xڅTmLSWJ/wQ*ҋhA]@Eatc&vFRt{k%JAriP HcKh4MLlfes&\9ĬY%K&=<oL82yE_R5m{8)I@JIZJäDGIL,C)dMRAdZg_=dF$;H
@@ -6846,10 +6916,10 @@ W-`glZzPV':x`vpN;Y,<pqF5 8m&]Y
y{{`,$(׍u^FfHJU}lķZ9z__njM OH(rCm?'`UYdH&r$}._W_w.Izt#_aT
endstream
endobj
-1487 0 obj
-<< /Type /FontDescriptor /FontName /TZPLIV+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1489 0 R /CIDSet 1488 0 R >>
+1501 0 obj
+<< /Type /FontDescriptor /FontName /TZPLIV+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1503 0 R /CIDSet 1502 0 R >>
endobj
-1490 0 obj
+1504 0 obj
<< /Filter /FlateDecode /Length 381 >>
stream
x}R]@}_q!sa/*b7:#>wf̂EVP<s\N'WW}
@@ -6858,22 +6928,22 @@ G,TzmNgX,wyS8hNXBw-#)ʞGF.Mȗľg߇Mt6ۣb9*(S
endstream
endobj
371 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZPLIV+LMRoman9-Bold /DescendantFonts [ 1491 0 R ] /ToUnicode 1490 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZPLIV+LMRoman9-Bold /DescendantFonts [ 1505 0 R ] /ToUnicode 1504 0 R >>
endobj
-1491 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZPLIV+LMRoman9-Bold /FontDescriptor 1487 0 R /W 1486 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1505 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZPLIV+LMRoman9-Bold /FontDescriptor 1501 0 R /W 1500 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1492 0 obj
+1506 0 obj
[ 28 [ 515 ] 33 [ 515 ] 47 [ 515 ] 55 [ 515 ] 59 [ 515 ] 66 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 105 [ 515 ] 114 [ 515 ] 118 [ 515 ] ]
endobj
-1494 0 obj
+1508 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``p`dP`hhpP
D)
endstream
endobj
-1495 0 obj
+1509 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1845 >>
stream
xuV}TW!@5ʚiZ3K- _EAE%1LBD<u
@@ -6888,80 +6958,74 @@ oRWɧ<| ƠP"{nPq%e}Gܮ(WȗN)QuoYUO&Pn^
g48ԂE>*`zK@E%1άxh@,+&p_(N(/?=u0ݕLDB0O>`R Fon0km(V׮Җ ֐F"3DgϷ^?@%xSEV!6¶M:GӞ`x#qNf4e'_%#l|ZQuJeq?HR@8(fu\o!du8iw6s;YpoۚiPH&Ng y[j;rgRsJcOt~w@[fk9RM
endstream
endobj
-1493 0 obj
-<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1495 0 R /CIDSet 1494 0 R >>
+1507 0 obj
+<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1509 0 R /CIDSet 1508 0 R >>
endobj
-1496 0 obj
+1510 0 obj
<< /Filter /FlateDecode /Length 428 >>
stream
x}]O0+`Dpf!q%Df,[֞&%.m{&F%pk z:=A[2,5P3
endstream
endobj
370 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1497 0 R ] /ToUnicode 1496 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1511 0 R ] /ToUnicode 1510 0 R >>
endobj
-1497 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1493 0 R /W 1492 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1511 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1507 0 R /W 1506 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1498 0 obj
-[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 68 [ 299 ] 75 [ 816 ] 77 [ 544 490 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
+1512 0 obj
+[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 75 [ 816 ] 77 [ 544 490 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
endobj
-1500 0 obj
+1514 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
-xc``ThX
+xc``TThX
endstream
endobj
-1501 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3502 >>
-stream
-xڭX \wؙ͘ZGj[-`=QrHBŸ}k
-^BW ewg{.~M@x D CySxb.[ eR*V.^pq4O)PRF([!Jw5VR!D$DKP.V-SrR' UKuJU;d ,JUDTRML>lGtR)2Tɤ1M
-VT5jg|m 6dZ?MFTId !JUbD(elcLդ!6y#eH
-Xc }ms 8/wpOdg?WVwZH׌=X20%0A1,?t*"X7K
-=ԓo\h }RчPB*l0FdPn",9:u8Duv` QJQFG]>gɒP]XU@ц%!+.pŗg.fFhKop;+؉~bvڿͅ8zWPţq \``dv~Fכ(aQ:`G~3b̅FNuXu(ļ@^Kb1Hn"E*=T[}OYZGxF%Ui;@5}f>Xi^qɜg&7h"9-p5倭(6
-'wO-5Vlel҇5gw|&)0{Q(ћ
-@d
-h[FOr-D6TPyHK|!g|' /Nhq2?A|
-Ɛ·u'{fcխmdӮ`)i2J*d™PEܽfSW|;}%\LaK1 2Vn/qJv$ D'Dc
-<tAo]3E;Z+6dh(<$}.[H|LAx>W(i}d>ew@k!{ENv+KmJSBl M\~A`nhts`K׮Ywl/-yr^8 :.3jkK) .3=>گ9nMT]c6}PҪv)ڤdag7aZ;v,rs|&vIޛ fH4V5;p˝nW5Uzz`W}Maǯ5Qzy6㒱ZJ߈A҇y7t&{!M?{^-(<uW{^(3pT]%ytvE}5xCY{wP2sgqܕHNHOr6+gD2$@6Ip9G6Kl7Ӄeze>FN㸸uq(=+b(wN
-I ؒܫܟ*#m
-* Gl9e OE5SmAp4|sL`=><;,Awb▟1(Q`n`|c?~HX!@l|p`;i_%aFd_p~yK;\szQυEvW&(j:RάoqMkpt7[z=mqW|< i8U
-Fؘnv9[N2sCocLҚrp?5,|!F/b9:!限,B{UnŤ)?#7 W ffeU
-\lv>LJ &kϮ mIE6黐W`!MEeQJM1!4`7@LW ծ<s:Q'ghA%v}%Aa
-5fsD"lvASCt-D_[8lmoIu(͠1xze{VoLl@PnfD=gJ+OG+Ƞ\. _3H3
-S<t Ƒ Y爺v@h PVag }i@+9YؙfiWSjĠ9tvF Xd^cjlCܼŹexiVv$bg%vÜDW`1o5&0,q 첀]FGkqoT*s.n2e$>m89ua(h& nbb&#L+ X1}\IóyFUDfQke
-fV
-7)r> q;G<d, 9Cl[x#R>,s #y⫳TM˃+jq"~R){`c||fJ^;v躢Yjs&P'ʳrUoŒz]qFISgXІr]%jZ׌Wj3z@$*jvpz"^_דP0\$*7z"ÔϷeS4ÌMZ JmzUiZUdGӱNam8i/r#ԋ+x#Ydꭄ/C=5/o}=cލ].=F>H`*Cx#ozċSLP-TV;{2=ixqOiqlXK0=?3\L
+1515 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3417 >>
+stream
+xڭW Xg 23:SQKֶZKUUzEAB@!\HBM.!$$\PZ֊OO]{n?9g'[{ݳ3<<3~ S5soT%E+/(W՞܋atG!'B>>^cKСi"OH4</U>/3sKd&b4-\0Q' JNW'(⵲-빾& ޳OKE+cekee*=7AJ)G'TqN#Wkd
+J(O*>'ʣ5XN+W˴rMU*VGe2F.kK:EJh.y XNxD@ؚЕVjӴ8Z+F'$jȟoIщcU15r6A4,[-ƂװױeX[cMXۍ` >, bX:vJ atOb Fpgq}BR+Z*gB<.!ɐ|]-MPx&!O|v*<l\w34&9otA0z(.군ȵJO ԉ,\$z&Zw+QK|V:;dm1]JlaB_06 Kx&J!-FPG'N (RUncƾq]Cc)?RfYmSFA'$n";[2.PRGX
+_r΅K;}>+Ɏ1k&l(SڠAƃJM{ ぁɾ~_m.`㿀Rp6uwg8$4MF7㧝6f tPhDg&FJAX%iu^~YTg
+J񷠍 ,,&Xh?̸]'6 J!kq>/3hO(`9o6PpBc?}/M?/(#XK+qkyR'z<R[ E,¡7~ĉZK^5]PQZ{fCHh6NFץ,n;s!6hpL!RB<<b
+y6hZ?#V
+İ(E.y_]kȺCӀbCk{ tCR|;*scvV2Щȧwߩx\`#|Nͦ[ETx.p3+щ'{AuGZ:ޞ*)X d$
+GFK8i:HiITj!x
+%z%j#gsW]e-o;;D.ߐąS$'w#HzqK67J9Gvw$AE[ڎ4*
+鏜'/ϮZmu B" '
+<v _O0(\ |=PSPu=̰ n@}ϝ, `W5tkAN}';(춀XjzŞ%3ryfzݒ7,'Jm4R$Ss<+gdQj)+$ ߜmOe]$ImǨ{kH{yEe N,yٜ\FR Jy܄7 ?.%M+ `c6̱PIg$";Aהm@E{^TXcv
+`cr|fL_;~꾤]dj67V#jT.DUn^^ ̃fmΦj+ܶ*I[\i0F:>%AH݃Kɪ\&&E6DƄfI`3Pl}}=9`tS-Ƭ3hw3,f;v54l %.G ٥9Llef˘ pş۰ۄO쐢p1 ?Aa"_~Gw]cTZ U.16"1L`Mp[y)+)[lֲVkIYDnǿqg
endstream
endobj
-1499 0 obj
-<< /Type /FontDescriptor /FontName /DKYOVH+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1501 0 R /CIDSet 1500 0 R >>
+1513 0 obj
+<< /Type /FontDescriptor /FontName /ZWUPVI+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1515 0 R /CIDSet 1514 0 R >>
endobj
-1502 0 obj
-<< /Filter /FlateDecode /Length 502 >>
+1516 0 obj
+<< /Filter /FlateDecode /Length 498 >>
stream
-xڅOo0=8 $BEۖ
-P{ F"N$~N+-(?fx2~:=rTN5`U]I}#$hUevE2v'-Rȯs駿kyWe&ӥfXWL^YRMQg<rk)Uil3Fs!rnx"o߼2Ň[RʛH\4YhB^ItJ^2AgFf[E{;&Z`95u䅼Ol?GR:: }()#,q
-#PZ"4 (4A b"W4|4vS4hZ8u
+xڅMk0C =JK04_`ض!Ieo4
+b!~%Bٰ?wFƣ}$#=%;h^seF@##e*P T-,՗ĞCx۾]]*NKCjĄɭ0qAV$?J,67JI*[rރ8!BΓ啙M_B`>'9Y:wAhd|ˤ5DhD6sz)+ @!LTvכJ:\ -Z@۔thNP[bhc2BOmxi
+QŹ$EJH)i(MHI0Q|MkM|$\!Hki 0HGQU216vk3z%za;'` ' [%Ib{L)r7b/n^k9n}vؽ
+>7TK/$*
endstream
endobj
369 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DKYOVH+LMRoman12-Regular /DescendantFonts [ 1503 0 R ] /ToUnicode 1502 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZWUPVI+LMRoman12-Regular /DescendantFonts [ 1517 0 R ] /ToUnicode 1516 0 R >>
endobj
-1503 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DKYOVH+LMRoman12-Regular /FontDescriptor 1499 0 R /W 1498 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1517 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZWUPVI+LMRoman12-Regular /FontDescriptor 1513 0 R /W 1512 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1504 0 obj
+1518 0 obj
[ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 66 [ 223 ] 75 [ 745 ] 77 [ 484 ] 96 [ 320 ] 105 [ 340 ] 116 [ 432 ] ]
endobj
-1506 0 obj
+1520 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Pa`hp
endstream
endobj
-1507 0 obj
+1521 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1024 >>
stream
xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(H$!%1?gw1&{&Kz@DVCU弪zOHVhAʕJnfl
@@ -6971,10 +7035,10 @@ xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(
CoV< }>q%N鉴4=Z^d
endstream
endobj
-1505 0 obj
-<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1507 0 R /CIDSet 1506 0 R >>
+1519 0 obj
+<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1521 0 R /CIDSet 1520 0 R >>
endobj
-1508 0 obj
+1522 0 obj
<< /Filter /FlateDecode /Length 404 >>
stream
x}]K0+6s2
@@ -6983,21 +7047,21 @@ nU(MKf`MJ^ߛv8 xzޓyK<p`|Mkj`*֖(5"GW{xъp
endstream
endobj
368 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1509 0 R ] /ToUnicode 1508 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1523 0 R ] /ToUnicode 1522 0 R >>
endobj
-1509 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1505 0 R /W 1504 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1523 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1519 0 R /W 1518 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1510 0 obj
+1524 0 obj
[ 28 [ 459 ] 46 [ 707 ] 50 [ 406 ] 66 [ 250 ] 68 [ 276 ] 71 [ 576 250 ] 77 [ 511 ] 81 [ 459 ] 91 [ 485 ] 96 [ 354 ] 98 [ 359 ] 105 [ 354 ] 108 [ 693 511 ] 116 [ 485 ] 126 [ 499 ] 277 [ 406 ] 502 [ 250 ] ]
endobj
-1512 0 obj
+1526 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc````R`lqXĀXp&
endstream
endobj
-1513 0 obj
+1527 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2260 >>
stream
xڭ{TWgcDwFV h TD"Ay Q$$@ (b0(⫂RhmS[k]V[{=w V;ܹ}8&c8KHIX>wj\
@@ -7015,22 +7079,22 @@ M.Y9b+8xZ3b䕋>Ec%2 ypKzCWˣB} , ñ1~0<W
?lV!C/Kt1!<vnN.<5^+_
endstream
endobj
-1511 0 obj
-<< /Type /FontDescriptor /FontName /LNWNPA+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1513 0 R /CIDSet 1512 0 R >>
+1525 0 obj
+<< /Type /FontDescriptor /FontName /LNWNPA+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1527 0 R /CIDSet 1526 0 R >>
endobj
-1514 0 obj
+1528 0 obj
<< /Filter /FlateDecode /Length 460 >>
stream
xڅn0<)=Pl@SEH)I$6+'YKFy=JF_C䑒=43hyWj
endstream
endobj
367 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LNWNPA+LMRoman17-Regular /DescendantFonts [ 1515 0 R ] /ToUnicode 1514 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LNWNPA+LMRoman17-Regular /DescendantFonts [ 1529 0 R ] /ToUnicode 1528 0 R >>
endobj
-1515 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LNWNPA+LMRoman17-Regular /FontDescriptor 1511 0 R /W 1510 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1529 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LNWNPA+LMRoman17-Regular /FontDescriptor 1525 0 R /W 1524 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1517 0 obj
+1531 0 obj
<< /Length1 1484 /Length2 8131 /Length3 0 /Filter /FlateDecode /Length 9124 >>
stream
xڍTm6NHt,) ] .²tJH#]J4" HwwS9w3sM\LtZ2`Di
@@ -7072,10 +7136,10 @@ Mt%ŕTMHtwX:n҅O| ҙi,l59k#E~L.pz/'w/
*2;nYK/G-^䙗;%{F!zd[
endstream
endobj
-1516 0 obj
-<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1517 0 R >>
+1530 0 obj
+<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1531 0 R >>
endobj
-1519 0 obj
+1533 0 obj
<< /Length1 2319 /Length2 9802 /Length3 0 /Filter /FlateDecode /Length 11051 >>
stream
xڍTZ6Lt# 1t*]Jw
@@ -7127,10 +7191,10 @@ l1(fP@weKg}PYۈE[n(#3%[$Bf~΍Nd\zmM0 Y],9Ca0- ub
3H vrH
endstream
endobj
-1518 0 obj
-<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1519 0 R >>
+1532 0 obj
+<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1533 0 R >>
endobj
-1521 0 obj
+1535 0 obj
<< /Length1 1396 /Length2 5867 /Length3 0 /Filter /FlateDecode /Length 6812 >>
stream
xڍTTTk&FPAf@II)!f`:% @B$$DSCR@R@i$;9޵]֞=<]@P"T( X$ TV1
@@ -7163,10 +7227,10 @@ mNվ˘jB5̞cvqc~O\Y)O
ݟ~wb@ ݤmπnsA6&wSlYD]+"@?|9mo]fjǾ{sŸܦ}}rIRBR+譜yScC>gamʁt!eU p/k UQSb3Z Wзo.uY&h) @X`0rEC:s,17v TN
endstream
endobj
-1520 0 obj
-<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1521 0 R >>
+1534 0 obj
+<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1535 0 R >>
endobj
-1523 0 obj
+1537 0 obj
<< /Length1 1830 /Length2 11276 /Length3 0 /Filter /FlateDecode /Length 12424 >>
stream
xڍT[-kqS'-- @ )V-VSHhq>zsɞ׷;&9,q
@@ -7209,10 +7273,10 @@ t둭Jc_WP5jbep/wUd22>3}֟Bn9MmGvX-i1@?BDVlt[~_
|UƶO3n0&hWA:fBh;2bVF:u(o7Ȕ?xs4ŹNgX%%F}J34G_1˵-{
endstream
endobj
-1522 0 obj
-<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1523 0 R >>
+1536 0 obj
+<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1537 0 R >>
endobj
-1525 0 obj
+1539 0 obj
<< /Length1 1415 /Length2 6063 /Length3 0 /Filter /FlateDecode /Length 7021 >>
stream
xڍuTk-Xh
@@ -7242,10 +7306,10 @@ OB+F|72{ .2xcZrL_7-_5Km-܁CEMXo]Y1nfɫt/
bUyLq@jƚm#<՗aVY G<^P4~0-)gV2+ \]"X,p aqה-TW'qY'D#_Ē_w"9FuKK
endstream
endobj
-1524 0 obj
-<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1525 0 R >>
+1538 0 obj
+<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1539 0 R >>
endobj
-1527 0 obj
+1541 0 obj
<< /Length1 1451 /Length2 6812 /Length3 0 /Filter /FlateDecode /Length 7785 >>
stream
xڍtTk.)]D`A!ASIiICFwZY羞^Fzm=N[5XspEr*
@@ -7279,10 +7343,10 @@ y[f!i;7W%mIJ ﭓ71v(oT(}6u4/^%O8Ϩu(6g
a e|L1iR]ez[
endstream
endobj
-1526 0 obj
-<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1527 0 R >>
+1540 0 obj
+<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1541 0 R >>
endobj
-1529 0 obj
+1543 0 obj
<< /Length1 1589 /Length2 8523 /Length3 0 /Filter /FlateDecode /Length 9572 >>
stream
xڍTT.LCH "! 0PC!%)-!!%%ֺwZgγ}}jb&6FiPPx`c`accGաp+ȟft&jW= Iq
@@ -7326,10 +7390,10 @@ Sziq`Rky5zX-
_G)JxУ<g|eBy"7t*<
endstream
endobj
-1528 0 obj
-<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1529 0 R >>
+1542 0 obj
+<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1543 0 R >>
endobj
-1531 0 obj
+1545 0 obj
<< /Length1 1438 /Length2 6548 /Length3 0 /Filter /FlateDecode /Length 7523 >>
stream
xڍt4kׯ"ZD0zF5`0!z[H$DDoD#Ir{޻ֽkϳ=6f]>y{-LA
@@ -7366,10 +7430,10 @@ wt/ְj@884}?em\9P?{6jx)*NaqIuoŀ31&
*INS+$3z t$x g6./)~s_2oϒlAS"F!XzP%i3UsLWsOLۈklm܏f(]zj Y2
endstream
endobj
-1530 0 obj
-<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1531 0 R >>
+1544 0 obj
+<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1545 0 R >>
endobj
-1533 0 obj
+1547 0 obj
<< /Length1 1744 /Length2 11235 /Length3 0 /Filter /FlateDecode /Length 12356 >>
stream
xڍP.k;wwwwwg!0 w@pBpw
@@ -7416,10 +7480,10 @@ ttoΎфtč!e웩I]8NG'
o獧{{m1` 8>`9X;;FVqvt$3CY(n3@}"ZWkgcQ͞*EkFY<lc ?v0.+Q2SbMXw`Pi.zN o| Ի)n9`VOi{40ơ
endstream
endobj
-1532 0 obj
-<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1533 0 R >>
+1546 0 obj
+<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1547 0 R >>
endobj
-1535 0 obj
+1549 0 obj
<< /Length1 1447 /Length2 6556 /Length3 0 /Filter /FlateDecode /Length 7538 >>
stream
xڍVT\%Kph%CbfI%iP@@$nQJ.7zoZ3{kؙu a '<
@@ -7454,10 +7518,10 @@ eO:[1bo_9ͣh[puK}ks 7\GU0Ǟ6Г?ﱿWy$4kw}zK
2h&ji/,
endstream
endobj
-1534 0 obj
-<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1535 0 R >>
+1548 0 obj
+<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1549 0 R >>
endobj
-1537 0 obj
+1551 0 obj
<< /Length1 1595 /Length2 7817 /Length3 0 /Filter /FlateDecode /Length 8871 >>
stream
xڍT6t
@@ -7495,10 +7559,10 @@ Y<Qj8e^z 7r-\
.+g!~ŜI #PAiМ'WXϟf'_}xbK$yv[IoRʢTYiGU$ݡsZ,U+hQ
endstream
endobj
-1536 0 obj
-<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1537 0 R >>
+1550 0 obj
+<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1551 0 R >>
endobj
-1539 0 obj
+1553 0 obj
<< /Length1 1500 /Length2 6516 /Length3 0 /Filter /FlateDecode /Length 7522 >>
stream
xڍxTڲ6"J5 &*IMj $ґ ޕ*IU@tAs=zoe${f+@PU$
@@ -7541,10 +7605,10 @@ BH'渆m|{m/{.xoH2nE -.w}y'*7.^WeNߚFsU%ϏS
;J!ujE%msCzzFeq0x~ǠAJ/]j z8{FqKeI*1HoA(N{&dY __޴T'EQz
endstream
endobj
-1538 0 obj
-<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1539 0 R >>
+1552 0 obj
+<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1553 0 R >>
endobj
-1541 0 obj
+1555 0 obj
<< /Length1 1414 /Length2 6167 /Length3 0 /Filter /FlateDecode /Length 7134 >>
stream
xڍvTTk6(HK7FBADjc`bP:A@:SBRZ@:T@ios5kus=uy8!Jp-BeCS
@@ -7575,10 +7639,10 @@ n<Ȧ
.7z ^XEi[S<p15*;Aջ<d*+w]`ӷ3I4e:dz펢4)AwTiw||/KKj-Tf bS(Tq#z%I`uk9K^e[ZwʣzI|U|˄&eVJ6Sgߪa^4ǵ+ wN\EVةzew`wؓ/:71ἠP@᣸Ft7^HXfM[vU:x'?ibi ZM}&Od@9fcHMFKlpUe]:AE)(xȘkmD@~ F0ANǞEiXQRm9l%i;mFo1j 1^{WG 7HO ]ȉ")UjzlL?o
endstream
endobj
-1540 0 obj
-<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1541 0 R >>
+1554 0 obj
+<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1555 0 R >>
endobj
-1543 0 obj
+1557 0 obj
<< /Length1 1435 /Length2 6179 /Length3 0 /Filter /FlateDecode /Length 7153 >>
stream
xڍtT[.(0 ! ҂030 ݍ%* R-Hw7"|ugYxeP%
@@ -7607,83 +7671,83 @@ d"`tUe>!%_lkhCgKOnW~yң@᪘+>1#1VGp.ArrfSb
;jjIZxٱ1INzfݪy1M3"}~]\耆n>s5RQܶ nzp~Fqkqܲ='8~*}
endstream
endobj
-1542 0 obj
-<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1543 0 R >>
+1556 0 obj
+<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1557 0 R >>
endobj
-758 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1516 0 R /FirstChar 49 /LastChar 100 /Widths 1340 0 R >>
+773 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1530 0 R /FirstChar 49 /LastChar 100 /Widths 1354 0 R >>
endobj
375 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1518 0 R /FirstChar 12 /LastChar 125 /Widths 1467 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1532 0 R /FirstChar 12 /LastChar 125 /Widths 1481 0 R >>
endobj
410 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1520 0 R /FirstChar 112 /LastChar 112 /Widths 1375 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1534 0 R /FirstChar 112 /LastChar 112 /Widths 1389 0 R >>
endobj
379 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1522 0 R /FirstChar 46 /LastChar 122 /Widths 1463 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1536 0 R /FirstChar 46 /LastChar 122 /Widths 1477 0 R >>
endobj
-423 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1524 0 R /FirstChar 65 /LastChar 65 /Widths 1374 0 R >>
+422 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1538 0 R /FirstChar 65 /LastChar 65 /Widths 1388 0 R >>
endobj
378 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1526 0 R /FirstChar 76 /LastChar 110 /Widths 1464 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1540 0 R /FirstChar 76 /LastChar 110 /Widths 1478 0 R >>
endobj
376 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1528 0 R /FirstChar 59 /LastChar 120 /Widths 1466 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1542 0 R /FirstChar 59 /LastChar 120 /Widths 1480 0 R >>
endobj
-488 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1530 0 R /FirstChar 105 /LastChar 110 /Widths 1361 0 R >>
+489 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1544 0 R /FirstChar 105 /LastChar 110 /Widths 1375 0 R >>
endobj
382 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1532 0 R /FirstChar 40 /LastChar 115 /Widths 1455 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1546 0 R /FirstChar 40 /LastChar 115 /Widths 1469 0 R >>
endobj
377 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1534 0 R /FirstChar 43 /LastChar 52 /Widths 1465 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1548 0 R /FirstChar 43 /LastChar 52 /Widths 1479 0 R >>
endobj
380 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1536 0 R /FirstChar 40 /LastChar 57 /Widths 1462 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1550 0 R /FirstChar 40 /LastChar 57 /Widths 1476 0 R >>
endobj
404 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1538 0 R /FirstChar 0 /LastChar 105 /Widths 1376 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1552 0 R /FirstChar 0 /LastChar 105 /Widths 1390 0 R >>
endobj
-747 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1540 0 R /FirstChar 0 /LastChar 32 /Widths 1341 0 R >>
+764 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1554 0 R /FirstChar 0 /LastChar 32 /Widths 1355 0 R >>
endobj
-646 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1542 0 R /FirstChar 0 /LastChar 34 /Widths 1348 0 R >>
+649 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1556 0 R /FirstChar 0 /LastChar 34 /Widths 1362 0 R >>
endobj
394 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 361 0 R 399 0 R 407 0 R 420 0 R 435 0 R 448 0 R 453 0 R 457 0 R 461 0 R 468 0 R ] >>
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 361 0 R 399 0 R 407 0 R 419 0 R 436 0 R 446 0 R 454 0 R 459 0 R 463 0 R 470 0 R ] >>
endobj
479 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 475 0 R 485 0 R 497 0 R 504 0 R 509 0 R 514 0 R 520 0 R 529 0 R 535 0 R 541 0 R ] >>
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 475 0 R 486 0 R 498 0 R 505 0 R 511 0 R 516 0 R 521 0 R 530 0 R 537 0 R 543 0 R ] >>
endobj
-550 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 547 0 R 554 0 R 560 0 R 567 0 R 573 0 R 581 0 R 589 0 R 599 0 R 606 0 R 611 0 R ] >>
+552 0 obj
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 549 0 R 556 0 R 562 0 R 568 0 R 574 0 R 580 0 R 588 0 R 595 0 R 605 0 R 611 0 R ] >>
endobj
-619 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 616 0 R 624 0 R 631 0 R 643 0 R 652 0 R 659 0 R 667 0 R 673 0 R 682 0 R 691 0 R ] >>
+620 0 obj
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 617 0 R 622 0 R 629 0 R 637 0 R 646 0 R 659 0 R 666 0 R 672 0 R 679 0 R 687 0 R ] >>
endobj
-707 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 699 0 R 710 0 R 724 0 R 734 0 R 739 0 R 744 0 R 755 0 R 764 0 R 773 0 R 781 0 R ] >>
+701 0 obj
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 698 0 R 707 0 R 719 0 R 724 0 R 739 0 R 748 0 R 754 0 R 761 0 R 770 0 R 781 0 R ] >>
endobj
791 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 788 0 R 795 0 R 801 0 R 808 0 R 816 0 R 825 0 R 840 0 R 847 0 R 852 0 R 860 0 R ] >>
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 788 0 R 798 0 R 805 0 R 810 0 R 816 0 R 822 0 R 830 0 R 839 0 R 854 0 R 861 0 R ] >>
endobj
-867 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 864 0 R 869 0 R 873 0 R 877 0 R 881 0 R 886 0 R 891 0 R 895 0 R 899 0 R 1018 0 R ] >>
+873 0 obj
+<< /Type /Pages /Parent 1558 0 R /Count 10 /Kids [ 866 0 R 875 0 R 879 0 R 883 0 R 887 0 R 891 0 R 895 0 R 900 0 R 905 0 R 909 0 R ] >>
endobj
-1130 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 5 /Kids [ 1127 0 R 1220 0 R 1263 0 R 1319 0 R 1324 0 R ] >>
+916 0 obj
+<< /Type /Pages /Parent 1558 0 R /Count 7 /Kids [ 913 0 R 1033 0 R 1142 0 R 1234 0 R 1277 0 R 1333 0 R 1338 0 R ] >>
endobj
-1544 0 obj
-<< /Type /Pages /Count 75 /Kids [ 394 0 R 479 0 R 550 0 R 619 0 R 707 0 R 791 0 R 867 0 R 1130 0 R ] >>
+1558 0 obj
+<< /Type /Pages /Count 77 /Kids [ 394 0 R 479 0 R 552 0 R 620 0 R 701 0 R 791 0 R 873 0 R 916 0 R ] >>
endobj
-1545 0 obj
+1559 0 obj
<< /Type /Outlines /First 6 0 R /Last 358 0 R /Count 19 >>
endobj
358 0 obj
-<< /Title 359 0 R /A 356 0 R /Parent 1545 0 R /Prev 314 0 R >>
+<< /Title 359 0 R /A 356 0 R /Parent 1559 0 R /Prev 314 0 R >>
endobj
354 0 obj
<< /Title 355 0 R /A 352 0 R /Parent 314 0 R /Prev 350 0 R >>
@@ -7716,7 +7780,7 @@ endobj
<< /Title 319 0 R /A 316 0 R /Parent 314 0 R /Next 322 0 R >>
endobj
314 0 obj
-<< /Title 315 0 R /A 312 0 R /Parent 1545 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
+<< /Title 315 0 R /A 312 0 R /Parent 1559 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
endobj
310 0 obj
<< /Title 311 0 R /A 308 0 R /Parent 294 0 R /Prev 306 0 R >>
@@ -7731,10 +7795,10 @@ endobj
<< /Title 299 0 R /A 296 0 R /Parent 294 0 R /Next 302 0 R >>
endobj
294 0 obj
-<< /Title 295 0 R /A 292 0 R /Parent 1545 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
+<< /Title 295 0 R /A 292 0 R /Parent 1559 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
endobj
290 0 obj
-<< /Title 291 0 R /A 288 0 R /Parent 1545 0 R /Prev 262 0 R /Next 294 0 R >>
+<< /Title 291 0 R /A 288 0 R /Parent 1559 0 R /Prev 262 0 R /Next 294 0 R >>
endobj
286 0 obj
<< /Title 287 0 R /A 284 0 R /Parent 262 0 R /Prev 282 0 R >>
@@ -7755,7 +7819,7 @@ endobj
<< /Title 267 0 R /A 264 0 R /Parent 262 0 R /Next 278 0 R /First 270 0 R /Last 274 0 R /Count -2 >>
endobj
262 0 obj
-<< /Title 263 0 R /A 260 0 R /Parent 1545 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
+<< /Title 263 0 R /A 260 0 R /Parent 1559 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
endobj
258 0 obj
<< /Title 259 0 R /A 256 0 R /Parent 214 0 R /Prev 254 0 R >>
@@ -7791,7 +7855,7 @@ endobj
<< /Title 219 0 R /A 216 0 R /Parent 214 0 R /Next 222 0 R >>
endobj
214 0 obj
-<< /Title 215 0 R /A 212 0 R /Parent 1545 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
+<< /Title 215 0 R /A 212 0 R /Parent 1559 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
endobj
210 0 obj
<< /Title 211 0 R /A 208 0 R /Parent 190 0 R /Prev 206 0 R >>
@@ -7809,7 +7873,7 @@ endobj
<< /Title 195 0 R /A 192 0 R /Parent 190 0 R /Next 198 0 R >>
endobj
190 0 obj
-<< /Title 191 0 R /A 188 0 R /Parent 1545 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
+<< /Title 191 0 R /A 188 0 R /Parent 1559 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
endobj
186 0 obj
<< /Title 187 0 R /A 184 0 R /Parent 170 0 R /Prev 182 0 R >>
@@ -7824,10 +7888,10 @@ endobj
<< /Title 175 0 R /A 172 0 R /Parent 170 0 R /Next 178 0 R >>
endobj
170 0 obj
-<< /Title 171 0 R /A 168 0 R /Parent 1545 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
+<< /Title 171 0 R /A 168 0 R /Parent 1559 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
endobj
166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 1545 0 R /Prev 138 0 R /Next 170 0 R >>
+<< /Title 167 0 R /A 164 0 R /Parent 1559 0 R /Prev 138 0 R /Next 170 0 R >>
endobj
162 0 obj
<< /Title 163 0 R /A 160 0 R /Parent 138 0 R /Prev 158 0 R >>
@@ -7848,10 +7912,10 @@ endobj
<< /Title 143 0 R /A 140 0 R /Parent 138 0 R /Next 146 0 R >>
endobj
138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 1545 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
+<< /Title 139 0 R /A 136 0 R /Parent 1559 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
endobj
134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 1545 0 R /Prev 118 0 R /Next 138 0 R >>
+<< /Title 135 0 R /A 132 0 R /Parent 1559 0 R /Prev 118 0 R /Next 138 0 R >>
endobj
130 0 obj
<< /Title 131 0 R /A 128 0 R /Parent 118 0 R /Prev 126 0 R >>
@@ -7863,10 +7927,10 @@ endobj
<< /Title 123 0 R /A 120 0 R /Parent 118 0 R /Next 126 0 R >>
endobj
118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 1545 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
+<< /Title 119 0 R /A 116 0 R /Parent 1559 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
endobj
114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 1545 0 R /Prev 94 0 R /Next 118 0 R >>
+<< /Title 115 0 R /A 112 0 R /Parent 1559 0 R /Prev 94 0 R /Next 118 0 R >>
endobj
110 0 obj
<< /Title 111 0 R /A 108 0 R /Parent 94 0 R /Prev 106 0 R >>
@@ -7881,7 +7945,7 @@ endobj
<< /Title 99 0 R /A 96 0 R /Parent 94 0 R /Next 102 0 R >>
endobj
94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 1545 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
+<< /Title 95 0 R /A 92 0 R /Parent 1559 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
endobj
90 0 obj
<< /Title 91 0 R /A 88 0 R /Parent 70 0 R /Prev 86 0 R >>
@@ -7914,7 +7978,7 @@ endobj
<< /Title 55 0 R /A 52 0 R /Parent 50 0 R /Next 66 0 R /First 58 0 R /Last 62 0 R /Count -2 >>
endobj
50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 1545 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
+<< /Title 51 0 R /A 48 0 R /Parent 1559 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
endobj
46 0 obj
<< /Title 47 0 R /A 44 0 R /Parent 18 0 R /Prev 42 0 R >>
@@ -7938,1607 +8002,1621 @@ endobj
<< /Title 23 0 R /A 20 0 R /Parent 18 0 R /Next 26 0 R >>
endobj
18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 1545 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
+<< /Title 19 0 R /A 16 0 R /Parent 1559 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
endobj
14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 1545 0 R /Prev 10 0 R /Next 18 0 R >>
+<< /Title 15 0 R /A 12 0 R /Parent 1559 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 1545 0 R /Prev 6 0 R /Next 14 0 R >>
+<< /Title 11 0 R /A 8 0 R /Parent 1559 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 1545 0 R /Next 10 0 R >>
+<< /Title 7 0 R /A 4 0 R /Parent 1559 0 R /Next 10 0 R >>
endobj
-1546 0 obj
-<< /Names [ (Doc-Start) 366 0 R (Item.1) 411 0 R (Item.10) 720 0 R (Item.11) 857 0 R (Item.12) 858 0 R (Item.2) 412 0 R (Item.3) 413 0 R (Item.4) 414 0 R (Item.5) 705 0 R (Item.6) 706 0 R (Item.7) 717 0 R (Item.8) 718 0 R (Item.9) 719 0 R (page.1) 365 0 R (page.10) 470 0 R (page.11) 477 0 R (page.12) 487 0 R (page.13) 499 0 R (page.14) 506 0 R (page.15) 511 0 R (page.16) 516 0 R (page.17) 522 0 R (page.18) 531 0 R (page.19) 537 0 R (page.2) 401 0 R (page.20) 543 0 R (page.21) 549 0 R (page.22) 556 0 R (page.23) 562 0 R (page.24) 569 0 R (page.25) 575 0 R (page.26) 583 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
+1560 0 obj
+<< /Names [ (Doc-Start) 366 0 R (Item.1) 411 0 R (Item.10) 734 0 R (Item.11) 871 0 R (Item.12) 872 0 R (Item.2) 412 0 R (Item.3) 413 0 R (Item.4) 414 0 R (Item.5) 713 0 R (Item.6) 714 0 R (Item.7) 731 0 R (Item.8) 732 0 R (Item.9) 733 0 R (page.1) 365 0 R (page.10) 472 0 R (page.11) 477 0 R (page.12) 488 0 R (page.13) 500 0 R (page.14) 507 0 R (page.15) 513 0 R (page.16) 518 0 R (page.17) 523 0 R (page.18) 532 0 R (page.19) 539 0 R (page.2) 401 0 R (page.20) 545 0 R (page.21) 551 0 R (page.22) 558 0 R (page.23) 564 0 R (page.24) 570 0 R (page.25) 576 0 R (page.26) 582 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
endobj
-1547 0 obj
-<< /Names [ (page.27) 591 0 R (page.28) 601 0 R (page.29) 608 0 R (page.3) 409 0 R (page.30) 613 0 R (page.31) 618 0 R (page.32) 626 0 R (page.33) 633 0 R (page.34) 645 0 R (page.35) 654 0 R (page.36) 661 0 R (page.37) 669 0 R (page.38) 675 0 R (page.39) 684 0 R (page.4) 422 0 R (page.40) 693 0 R (page.41) 701 0 R (page.42) 712 0 R (page.43) 726 0 R (page.44) 736 0 R (page.45) 741 0 R (page.46) 746 0 R (page.47) 757 0 R (page.48) 766 0 R (page.49) 775 0 R (page.5) 437 0 R (page.50) 783 0 R (page.51) 790 0 R (page.52) 797 0 R (page.53) 803 0 R (page.54) 810 0 R (page.55) 818 0 R ] /Limits [ (page.27) (page.55) ] >>
+1561 0 obj
+<< /Names [ (page.27) 590 0 R (page.28) 597 0 R (page.29) 607 0 R (page.3) 409 0 R (page.30) 613 0 R (page.31) 619 0 R (page.32) 624 0 R (page.33) 631 0 R (page.34) 639 0 R (page.35) 648 0 R (page.36) 661 0 R (page.37) 668 0 R (page.38) 674 0 R (page.39) 681 0 R (page.4) 421 0 R (page.40) 689 0 R (page.41) 700 0 R (page.42) 709 0 R (page.43) 721 0 R (page.44) 726 0 R (page.45) 741 0 R (page.46) 750 0 R (page.47) 756 0 R (page.48) 763 0 R (page.49) 772 0 R (page.5) 438 0 R (page.50) 783 0 R (page.51) 790 0 R (page.52) 800 0 R (page.53) 807 0 R (page.54) 812 0 R (page.55) 818 0 R ] /Limits [ (page.27) (page.55) ] >>
endobj
-1548 0 obj
-<< /Names [ (page.56) 827 0 R (page.57) 842 0 R (page.58) 849 0 R (page.59) 854 0 R (page.6) 450 0 R (page.60) 862 0 R (page.61) 866 0 R (page.62) 871 0 R (page.63) 875 0 R (page.64) 879 0 R (page.65) 883 0 R (page.66) 888 0 R (page.67) 893 0 R (page.68) 897 0 R (page.69) 901 0 R (page.7) 455 0 R (page.70) 1020 0 R (page.71) 1129 0 R (page.72) 1222 0 R (page.73) 1265 0 R (page.74) 1321 0 R (page.75) 1326 0 R (page.8) 459 0 R (page.9) 463 0 R (section*.2) 357 0 R (section.1) 5 0 R (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R ] /Limits [ (page.56) (section.15) ] >>
+1562 0 obj
+<< /Names [ (page.56) 824 0 R (page.57) 832 0 R (page.58) 841 0 R (page.59) 856 0 R (page.6) 448 0 R (page.60) 863 0 R (page.61) 868 0 R (page.62) 877 0 R (page.63) 881 0 R (page.64) 885 0 R (page.65) 889 0 R (page.66) 893 0 R (page.67) 897 0 R (page.68) 902 0 R (page.69) 907 0 R (page.7) 456 0 R (page.70) 911 0 R (page.71) 915 0 R (page.72) 1035 0 R (page.73) 1144 0 R (page.74) 1236 0 R (page.75) 1279 0 R (page.76) 1335 0 R (page.77) 1340 0 R (page.8) 461 0 R (page.9) 465 0 R (section*.2) 357 0 R (section.1) 5 0 R (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R ] /Limits [ (page.56) (section.13) ] >>
endobj
-1549 0 obj
-<< /Names [ (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R ] /Limits [ (section.16) (subsection.14.4) ] >>
+1563 0 obj
+<< /Names [ (section.14) 213 0 R (section.15) 261 0 R (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R ] /Limits [ (section.14) (subsection.14.2) ] >>
endobj
-1550 0 obj
-<< /Names [ (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R ] /Limits [ (subsection.14.5) (subsection.5.2) ] >>
+1564 0 obj
+<< /Names [ (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R ] /Limits [ (subsection.14.3) (subsection.4.7) ] >>
endobj
-1551 0 obj
-<< /Names [ (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 695 0 R (tabularnote.1) 702 0 R (tabularnote.2) 704 0 R (tabularnote.3) 713 0 R (tabularnote.4) 714 0 R (tabularnote.5) 715 0 R (tabularnote.6) 716 0 R (tabularnote.7) 855 0 R (tabularnote.8) 856 0 R ] /Limits [ (subsection.5.3) (tabularnote.8) ] >>
+1565 0 obj
+<< /Names [ (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 703 0 R (tabularnote.1) 710 0 R (tabularnote.2) 712 0 R (tabularnote.3) 727 0 R (tabularnote.4) 728 0 R (tabularnote.5) 729 0 R (tabularnote.6) 730 0 R (tabularnote.7) 869 0 R (tabularnote.8) 870 0 R ] /Limits [ (subsection.5.1) (tabularnote.8) ] >>
endobj
-1552 0 obj
-<< /Kids [ 1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
+1566 0 obj
+<< /Kids [ 1560 0 R 1561 0 R 1562 0 R 1563 0 R 1564 0 R 1565 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
endobj
-1553 0 obj
-<< /Dests 1552 0 R >>
+1567 0 obj
+<< /Dests 1566 0 R >>
endobj
-1554 0 obj
-<< /Type /Catalog /Pages 1544 0 R /Outlines 1545 0 R /Names 1553 0 R /PageMode/UseOutlines /OpenAction 360 0 R >>
+1568 0 obj
+<< /Type /Catalog /Pages 1558 0 R /Outlines 1559 0 R /Names 1567 0 R /PageMode/UseOutlines /OpenAction 360 0 R >>
endobj
-1555 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000L\040\031\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x)/Subject(\376\377\000U\000n\000e\000\040\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000L\000a\000T\000e\000X)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629213409+02'00') /ModDate (D:20240629213409+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+1569 0 obj
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000L\040\031\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x)/Subject(\376\377\000U\000n\000e\000\040\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000L\000a\000T\000e\000X)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20241029185625+01'00') /ModDate (D:20241029185625+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 1556
+0 1570
0000000000 65535 f
-0000588706 00000 n
-0000588862 00000 n
-0000588934 00000 n
+0000597964 00000 n
+0000598120 00000 n
+0000598192 00000 n
0000000020 00000 n
-0000037853 00000 n
-0000880560 00000 n
+0000037717 00000 n
+0000889922 00000 n
0000000065 00000 n
0000000289 00000 n
-0000037913 00000 n
-0000880473 00000 n
+0000037777 00000 n
+0000889835 00000 n
0000000334 00000 n
0000000552 00000 n
-0000043661 00000 n
-0000880384 00000 n
+0000043000 00000 n
+0000889746 00000 n
0000000598 00000 n
0000000710 00000 n
-0000051017 00000 n
-0000880258 00000 n
+0000050119 00000 n
+0000889620 00000 n
0000000756 00000 n
0000000832 00000 n
-0000051078 00000 n
-0000880184 00000 n
+0000050180 00000 n
+0000889546 00000 n
0000000883 00000 n
0000000975 00000 n
-0000064894 00000 n
-0000880097 00000 n
+0000063478 00000 n
+0000889459 00000 n
0000001026 00000 n
0000001170 00000 n
-0000064954 00000 n
-0000880010 00000 n
+0000063538 00000 n
+0000889372 00000 n
0000001221 00000 n
0000001363 00000 n
-0000065015 00000 n
-0000879923 00000 n
+0000069892 00000 n
+0000889285 00000 n
0000001414 00000 n
0000001543 00000 n
-0000071391 00000 n
-0000879836 00000 n
+0000069953 00000 n
+0000889198 00000 n
0000001594 00000 n
0000001867 00000 n
-0000076984 00000 n
-0000879749 00000 n
+0000075298 00000 n
+0000889111 00000 n
0000001918 00000 n
0000002181 00000 n
-0000082489 00000 n
-0000879675 00000 n
+0000079486 00000 n
+0000889037 00000 n
0000002232 00000 n
0000002394 00000 n
-0000088672 00000 n
-0000879549 00000 n
+0000086238 00000 n
+0000888911 00000 n
0000002440 00000 n
0000002655 00000 n
-0000088733 00000 n
-0000879438 00000 n
+0000086299 00000 n
+0000888800 00000 n
0000002706 00000 n
0000003027 00000 n
-0000088793 00000 n
-0000879364 00000 n
+0000086360 00000 n
+0000888726 00000 n
0000003083 00000 n
0000003217 00000 n
-0000088854 00000 n
-0000879290 00000 n
+0000091842 00000 n
+0000888652 00000 n
0000003273 00000 n
0000003400 00000 n
-0000093951 00000 n
-0000879203 00000 n
+0000091903 00000 n
+0000888565 00000 n
0000003451 00000 n
0000003677 00000 n
-0000094012 00000 n
-0000879092 00000 n
+0000098095 00000 n
+0000888454 00000 n
0000003728 00000 n
0000004012 00000 n
-0000100609 00000 n
-0000879018 00000 n
+0000098156 00000 n
+0000888380 00000 n
0000004068 00000 n
0000004236 00000 n
-0000100670 00000 n
-0000878931 00000 n
+0000105647 00000 n
+0000888293 00000 n
0000004292 00000 n
0000004545 00000 n
-0000108411 00000 n
-0000878844 00000 n
+0000105708 00000 n
+0000888206 00000 n
0000004601 00000 n
0000004726 00000 n
-0000114681 00000 n
-0000878757 00000 n
+0000112540 00000 n
+0000888119 00000 n
0000004782 00000 n
0000004919 00000 n
-0000114742 00000 n
-0000878683 00000 n
+0000118285 00000 n
+0000888045 00000 n
0000004975 00000 n
0000005190 00000 n
-0000131444 00000 n
-0000878555 00000 n
+0000134958 00000 n
+0000887917 00000 n
0000005236 00000 n
0000005531 00000 n
-0000131505 00000 n
-0000878480 00000 n
+0000135019 00000 n
+0000887842 00000 n
0000005582 00000 n
0000005731 00000 n
-0000131566 00000 n
-0000878389 00000 n
+0000135080 00000 n
+0000887751 00000 n
0000005783 00000 n
0000006053 00000 n
-0000160999 00000 n
-0000878297 00000 n
+0000163623 00000 n
+0000887659 00000 n
0000006105 00000 n
0000006296 00000 n
-0000166281 00000 n
-0000878219 00000 n
+0000168554 00000 n
+0000887581 00000 n
0000006348 00000 n
0000006535 00000 n
-0000166343 00000 n
-0000878126 00000 n
+0000168616 00000 n
+0000887488 00000 n
0000006582 00000 n
0000006725 00000 n
-0000172779 00000 n
-0000877993 00000 n
+0000175330 00000 n
+0000887355 00000 n
0000006772 00000 n
0000006925 00000 n
-0000172841 00000 n
-0000877914 00000 n
+0000175392 00000 n
+0000887276 00000 n
0000006977 00000 n
0000007102 00000 n
-0000178205 00000 n
-0000877821 00000 n
+0000181041 00000 n
+0000887183 00000 n
0000007154 00000 n
0000007259 00000 n
-0000182908 00000 n
-0000877742 00000 n
+0000184537 00000 n
+0000887104 00000 n
0000007311 00000 n
0000007482 00000 n
-0000190902 00000 n
-0000877648 00000 n
+0000193156 00000 n
+0000887010 00000 n
0000007529 00000 n
0000007751 00000 n
-0000203740 00000 n
-0000877515 00000 n
+0000201664 00000 n
+0000886877 00000 n
0000007799 00000 n
0000008013 00000 n
-0000214660 00000 n
-0000877436 00000 n
+0000225279 00000 n
+0000886798 00000 n
0000008066 00000 n
0000008203 00000 n
-0000223915 00000 n
-0000877343 00000 n
+0000225341 00000 n
+0000886705 00000 n
0000008256 00000 n
0000008483 00000 n
-0000246989 00000 n
-0000877250 00000 n
+0000245320 00000 n
+0000886612 00000 n
0000008536 00000 n
0000008908 00000 n
-0000253781 00000 n
-0000877157 00000 n
+0000256374 00000 n
+0000886519 00000 n
0000008961 00000 n
0000009183 00000 n
-0000253843 00000 n
-0000877064 00000 n
+0000256436 00000 n
+0000886426 00000 n
0000009236 00000 n
0000009485 00000 n
-0000262127 00000 n
-0000876985 00000 n
+0000270217 00000 n
+0000886347 00000 n
0000009538 00000 n
0000009765 00000 n
-0000268603 00000 n
-0000876891 00000 n
+0000270279 00000 n
+0000886253 00000 n
0000009813 00000 n
0000010103 00000 n
-0000286777 00000 n
-0000876758 00000 n
+0000280499 00000 n
+0000886120 00000 n
0000010151 00000 n
0000010251 00000 n
-0000286839 00000 n
-0000876679 00000 n
+0000280561 00000 n
+0000886041 00000 n
0000010304 00000 n
0000010534 00000 n
-0000286901 00000 n
-0000876586 00000 n
+0000296267 00000 n
+0000885948 00000 n
0000010587 00000 n
0000010960 00000 n
-0000304896 00000 n
-0000876493 00000 n
+0000307611 00000 n
+0000885855 00000 n
0000011013 00000 n
0000011362 00000 n
-0000310527 00000 n
-0000876414 00000 n
+0000313516 00000 n
+0000885776 00000 n
0000011415 00000 n
0000011690 00000 n
-0000310589 00000 n
-0000876281 00000 n
+0000320281 00000 n
+0000885643 00000 n
0000011738 00000 n
0000012006 00000 n
-0000310651 00000 n
-0000876202 00000 n
+0000320342 00000 n
+0000885564 00000 n
0000012059 00000 n
0000012220 00000 n
-0000315620 00000 n
-0000876109 00000 n
+0000320404 00000 n
+0000885471 00000 n
0000012273 00000 n
0000012442 00000 n
-0000315682 00000 n
-0000876016 00000 n
+0000325667 00000 n
+0000885378 00000 n
0000012495 00000 n
0000012638 00000 n
-0000325528 00000 n
-0000875923 00000 n
+0000330070 00000 n
+0000885285 00000 n
0000012691 00000 n
0000012917 00000 n
-0000334791 00000 n
-0000875844 00000 n
+0000345706 00000 n
+0000885206 00000 n
0000012970 00000 n
0000013257 00000 n
-0000334853 00000 n
-0000875710 00000 n
+0000345768 00000 n
+0000885072 00000 n
0000013305 00000 n
0000013450 00000 n
-0000334915 00000 n
-0000875631 00000 n
+0000345829 00000 n
+0000884993 00000 n
0000013503 00000 n
0000013651 00000 n
-0000343938 00000 n
-0000875538 00000 n
+0000345891 00000 n
+0000884900 00000 n
0000013704 00000 n
0000013854 00000 n
-0000344000 00000 n
-0000875445 00000 n
+0000354077 00000 n
+0000884807 00000 n
0000013907 00000 n
0000014172 00000 n
-0000344062 00000 n
-0000875352 00000 n
+0000354139 00000 n
+0000884714 00000 n
0000014225 00000 n
0000014501 00000 n
-0000349979 00000 n
-0000875259 00000 n
+0000354201 00000 n
+0000884621 00000 n
0000014554 00000 n
0000014687 00000 n
-0000350041 00000 n
-0000875166 00000 n
+0000360327 00000 n
+0000884528 00000 n
0000014740 00000 n
0000014842 00000 n
-0000356567 00000 n
-0000875073 00000 n
+0000360389 00000 n
+0000884435 00000 n
0000014895 00000 n
0000015066 00000 n
-0000356629 00000 n
-0000874980 00000 n
+0000367085 00000 n
+0000884342 00000 n
0000015119 00000 n
0000015256 00000 n
-0000362122 00000 n
-0000874887 00000 n
+0000372825 00000 n
+0000884249 00000 n
0000015309 00000 n
0000015462 00000 n
-0000362183 00000 n
-0000874794 00000 n
+0000372887 00000 n
+0000884156 00000 n
0000015516 00000 n
0000015739 00000 n
-0000362245 00000 n
-0000874715 00000 n
+0000372949 00000 n
+0000884077 00000 n
0000015793 00000 n
0000015986 00000 n
-0000368459 00000 n
-0000874582 00000 n
+0000373011 00000 n
+0000883944 00000 n
0000016034 00000 n
0000016250 00000 n
-0000368521 00000 n
-0000874464 00000 n
+0000373073 00000 n
+0000883826 00000 n
0000016303 00000 n
0000016583 00000 n
-0000373892 00000 n
-0000874385 00000 n
+0000385238 00000 n
+0000883747 00000 n
0000016641 00000 n
0000016779 00000 n
-0000373954 00000 n
-0000874306 00000 n
+0000385300 00000 n
+0000883668 00000 n
0000016837 00000 n
0000017008 00000 n
-0000374016 00000 n
-0000874213 00000 n
+0000385362 00000 n
+0000883575 00000 n
0000017061 00000 n
0000017326 00000 n
-0000388309 00000 n
-0000874120 00000 n
+0000400288 00000 n
+0000883482 00000 n
0000017379 00000 n
0000017639 00000 n
-0000395386 00000 n
-0000874041 00000 n
+0000406003 00000 n
+0000883403 00000 n
0000017692 00000 n
0000017982 00000 n
-0000399720 00000 n
-0000873947 00000 n
+0000406065 00000 n
+0000883309 00000 n
0000018030 00000 n
0000018196 00000 n
-0000413017 00000 n
-0000873814 00000 n
+0000410105 00000 n
+0000883176 00000 n
0000018244 00000 n
0000018376 00000 n
-0000413079 00000 n
-0000873735 00000 n
+0000424333 00000 n
+0000883097 00000 n
0000018429 00000 n
0000018546 00000 n
-0000413141 00000 n
-0000873642 00000 n
+0000424395 00000 n
+0000883004 00000 n
0000018599 00000 n
0000018725 00000 n
-0000418826 00000 n
-0000873549 00000 n
+0000429808 00000 n
+0000882911 00000 n
0000018778 00000 n
0000018955 00000 n
-0000418888 00000 n
-0000873470 00000 n
+0000429870 00000 n
+0000882832 00000 n
0000019008 00000 n
0000019120 00000 n
-0000427095 00000 n
-0000873336 00000 n
+0000438337 00000 n
+0000882698 00000 n
0000019168 00000 n
0000019237 00000 n
-0000427157 00000 n
-0000873257 00000 n
+0000438399 00000 n
+0000882619 00000 n
0000019290 00000 n
0000019605 00000 n
-0000431681 00000 n
-0000873164 00000 n
+0000442451 00000 n
+0000882526 00000 n
0000019658 00000 n
0000019823 00000 n
-0000431743 00000 n
-0000873071 00000 n
+0000442513 00000 n
+0000882433 00000 n
0000019876 00000 n
0000020029 00000 n
-0000435997 00000 n
-0000872978 00000 n
+0000446634 00000 n
+0000882340 00000 n
0000020082 00000 n
0000020220 00000 n
-0000456123 00000 n
-0000872885 00000 n
+0000466686 00000 n
+0000882247 00000 n
0000020273 00000 n
0000020584 00000 n
-0000466909 00000 n
-0000872792 00000 n
+0000476892 00000 n
+0000882154 00000 n
0000020637 00000 n
0000020760 00000 n
-0000466971 00000 n
-0000872699 00000 n
+0000476954 00000 n
+0000882061 00000 n
0000020813 00000 n
0000020963 00000 n
-0000485220 00000 n
-0000872606 00000 n
+0000496064 00000 n
+0000881968 00000 n
0000021016 00000 n
0000021265 00000 n
-0000503299 00000 n
-0000872513 00000 n
+0000513119 00000 n
+0000881875 00000 n
0000021318 00000 n
0000021593 00000 n
-0000506791 00000 n
-0000872434 00000 n
+0000513181 00000 n
+0000881796 00000 n
0000021647 00000 n
0000021797 00000 n
-0000528644 00000 n
-0000872354 00000 n
+0000537888 00000 n
+0000881716 00000 n
0000021845 00000 n
0000021899 00000 n
-0000032205 00000 n
-0000032371 00000 n
-0000032733 00000 n
+0000032327 00000 n
+0000032493 00000 n
+0000032813 00000 n
0000021951 00000 n
-0000032609 00000 n
-0000032671 00000 n
-0000740770 00000 n
-0000736918 00000 n
-0000734465 00000 n
-0000729224 00000 n
-0000725878 00000 n
-0000723435 00000 n
-0000718868 00000 n
-0000716161 00000 n
-0000869083 00000 n
-0000869811 00000 n
-0000870247 00000 n
-0000869666 00000 n
-0000869375 00000 n
-0000870390 00000 n
-0000705437 00000 n
-0000870102 00000 n
-0000693482 00000 n
-0000688867 00000 n
-0000678732 00000 n
-0000670687 00000 n
-0000666233 00000 n
-0000660459 00000 n
-0000657108 00000 n
-0000647829 00000 n
-0000645923 00000 n
-0000635985 00000 n
-0000632523 00000 n
-0000870964 00000 n
-0000032342 00000 n
-0000037635 00000 n
-0000037481 00000 n
-0000037973 00000 n
-0000037307 00000 n
-0000033195 00000 n
-0000037791 00000 n
-0000623829 00000 n
-0000614182 00000 n
-0000870533 00000 n
-0000037444 00000 n
-0000043977 00000 n
-0000043478 00000 n
-0000038279 00000 n
-0000043599 00000 n
-0000869229 00000 n
-0000043722 00000 n
-0000043786 00000 n
-0000043850 00000 n
-0000043914 00000 n
-0000050340 00000 n
-0000050497 00000 n
-0000050653 00000 n
-0000050804 00000 n
-0000051139 00000 n
-0000050150 00000 n
-0000044270 00000 n
-0000050955 00000 n
-0000869521 00000 n
-0000050287 00000 n
-0000056452 00000 n
-0000056612 00000 n
-0000056772 00000 n
-0000056926 00000 n
-0000057078 00000 n
-0000057231 00000 n
-0000057390 00000 n
-0000057550 00000 n
-0000057708 00000 n
-0000057929 00000 n
-0000056222 00000 n
-0000051432 00000 n
-0000057867 00000 n
-0000610692 00000 n
-0000056359 00000 n
-0000063728 00000 n
-0000063886 00000 n
-0000064044 00000 n
-0000064203 00000 n
-0000064358 00000 n
-0000064516 00000 n
-0000064675 00000 n
-0000065076 00000 n
-0000063514 00000 n
-0000058196 00000 n
-0000064832 00000 n
-0000063651 00000 n
-0000071452 00000 n
-0000071208 00000 n
-0000065291 00000 n
-0000071329 00000 n
-0000077045 00000 n
-0000076801 00000 n
-0000071693 00000 n
-0000076922 00000 n
-0000082550 00000 n
-0000082306 00000 n
-0000077260 00000 n
-0000082427 00000 n
-0000088139 00000 n
-0000088293 00000 n
-0000088456 00000 n
-0000088915 00000 n
-0000087957 00000 n
-0000082791 00000 n
-0000088610 00000 n
-0000088094 00000 n
-0000093736 00000 n
-0000099912 00000 n
-0000094073 00000 n
-0000093570 00000 n
-0000089117 00000 n
-0000093889 00000 n
-0000605306 00000 n
-0000871117 00000 n
-0000093707 00000 n
-0000100066 00000 n
-0000100230 00000 n
-0000100384 00000 n
-0000100731 00000 n
-0000099722 00000 n
-0000094314 00000 n
-0000100547 00000 n
-0000869956 00000 n
-0000099859 00000 n
-0000107399 00000 n
-0000107559 00000 n
-0000107719 00000 n
-0000107879 00000 n
-0000108037 00000 n
-0000108194 00000 n
-0000108472 00000 n
-0000107193 00000 n
-0000101011 00000 n
-0000108349 00000 n
-0000107330 00000 n
-0000114301 00000 n
-0000114459 00000 n
-0000114801 00000 n
-0000114127 00000 n
-0000108726 00000 n
-0000114619 00000 n
-0000114264 00000 n
-0000119456 00000 n
-0000119273 00000 n
-0000115042 00000 n
-0000119394 00000 n
-0000125895 00000 n
-0000126112 00000 n
-0000125729 00000 n
-0000119658 00000 n
-0000126050 00000 n
-0000125866 00000 n
-0000137791 00000 n
-0000131628 00000 n
-0000131261 00000 n
-0000126340 00000 n
-0000131382 00000 n
-0000137161 00000 n
-0000137323 00000 n
-0000137483 00000 n
-0000137638 00000 n
-0000143296 00000 n
-0000138010 00000 n
-0000136963 00000 n
-0000131895 00000 n
-0000137948 00000 n
-0000137100 00000 n
-0000143456 00000 n
-0000143671 00000 n
-0000143122 00000 n
-0000138277 00000 n
-0000143609 00000 n
-0000143259 00000 n
-0000149175 00000 n
-0000149396 00000 n
-0000149009 00000 n
-0000143899 00000 n
-0000149334 00000 n
-0000149146 00000 n
-0000155076 00000 n
-0000155292 00000 n
-0000154910 00000 n
-0000149585 00000 n
-0000155230 00000 n
-0000871270 00000 n
-0000155047 00000 n
-0000160785 00000 n
-0000161061 00000 n
-0000160619 00000 n
-0000155468 00000 n
-0000160937 00000 n
-0000160756 00000 n
-0000166065 00000 n
-0000166405 00000 n
-0000165899 00000 n
-0000161341 00000 n
-0000166219 00000 n
-0000166036 00000 n
-0000172403 00000 n
-0000172563 00000 n
-0000172903 00000 n
-0000172229 00000 n
-0000166620 00000 n
-0000172717 00000 n
-0000172366 00000 n
-0000177989 00000 n
-0000178267 00000 n
-0000177823 00000 n
-0000173157 00000 n
-0000178143 00000 n
-0000177960 00000 n
-0000182365 00000 n
-0000182529 00000 n
-0000182687 00000 n
-0000182970 00000 n
-0000182183 00000 n
-0000178547 00000 n
-0000182846 00000 n
-0000182320 00000 n
-0000190368 00000 n
-0000190683 00000 n
-0000190523 00000 n
-0000190964 00000 n
-0000190186 00000 n
-0000183172 00000 n
-0000190840 00000 n
-0000190323 00000 n
-0000202885 00000 n
-0000203048 00000 n
-0000203202 00000 n
-0000203362 00000 n
-0000203521 00000 n
-0000203802 00000 n
-0000202687 00000 n
-0000191231 00000 n
-0000203678 00000 n
-0000601200 00000 n
-0000202824 00000 n
-0000214445 00000 n
-0000214722 00000 n
-0000214279 00000 n
-0000204095 00000 n
-0000214598 00000 n
-0000214416 00000 n
-0000223977 00000 n
-0000223732 00000 n
-0000214976 00000 n
-0000223853 00000 n
-0000253087 00000 n
-0000247049 00000 n
-0000246806 00000 n
-0000224244 00000 n
-0000246927 00000 n
-0000871423 00000 n
-0000253247 00000 n
-0000253407 00000 n
-0000253567 00000 n
-0000253905 00000 n
-0000252897 00000 n
-0000247329 00000 n
-0000253719 00000 n
-0000253034 00000 n
-0000261687 00000 n
-0000261907 00000 n
-0000262189 00000 n
-0000261513 00000 n
-0000254159 00000 n
-0000262065 00000 n
-0000598665 00000 n
-0000261650 00000 n
-0000267746 00000 n
-0000267906 00000 n
-0000268067 00000 n
-0000268221 00000 n
-0000268381 00000 n
-0000286082 00000 n
-0000268665 00000 n
-0000267548 00000 n
-0000262508 00000 n
-0000268541 00000 n
-0000870821 00000 n
-0000267685 00000 n
-0000286240 00000 n
-0000286395 00000 n
-0000286555 00000 n
-0000286963 00000 n
-0000285892 00000 n
-0000268971 00000 n
-0000286715 00000 n
-0000286029 00000 n
-0000293158 00000 n
-0000293313 00000 n
-0000293530 00000 n
-0000292984 00000 n
-0000287217 00000 n
-0000293468 00000 n
-0000293121 00000 n
-0000298690 00000 n
-0000298850 00000 n
-0000299008 00000 n
-0000299230 00000 n
-0000298508 00000 n
-0000293784 00000 n
-0000299168 00000 n
-0000298645 00000 n
-0000304638 00000 n
-0000304958 00000 n
-0000304472 00000 n
-0000299432 00000 n
-0000304834 00000 n
-0000304609 00000 n
-0000310147 00000 n
-0000310301 00000 n
-0000314625 00000 n
-0000314778 00000 n
-0000310713 00000 n
-0000309973 00000 n
-0000305264 00000 n
-0000310465 00000 n
-0000310110 00000 n
-0000314932 00000 n
-0000315092 00000 n
-0000315252 00000 n
-0000315406 00000 n
-0000315744 00000 n
-0000314419 00000 n
-0000310928 00000 n
-0000315558 00000 n
-0000314556 00000 n
-0000324954 00000 n
-0000320728 00000 n
-0000320888 00000 n
-0000321365 00000 n
-0000320554 00000 n
-0000315907 00000 n
-0000321048 00000 n
-0000321110 00000 n
-0000595602 00000 n
-0000321174 00000 n
-0000321238 00000 n
-0000321302 00000 n
-0000871576 00000 n
-0000320691 00000 n
-0000325589 00000 n
-0000324771 00000 n
-0000321606 00000 n
-0000324892 00000 n
-0000325016 00000 n
-0000325080 00000 n
-0000325144 00000 n
-0000325208 00000 n
-0000325272 00000 n
-0000325336 00000 n
-0000325400 00000 n
-0000325464 00000 n
-0000329560 00000 n
-0000329720 00000 n
-0000329941 00000 n
-0000329386 00000 n
-0000325817 00000 n
-0000329879 00000 n
-0000329523 00000 n
-0000333922 00000 n
-0000334081 00000 n
-0000334241 00000 n
-0000334401 00000 n
-0000334565 00000 n
-0000334977 00000 n
-0000333724 00000 n
-0000330117 00000 n
-0000334729 00000 n
-0000333861 00000 n
-0000344124 00000 n
-0000343755 00000 n
-0000335192 00000 n
-0000343876 00000 n
-0000349766 00000 n
-0000350103 00000 n
-0000349600 00000 n
-0000344404 00000 n
-0000349917 00000 n
-0000870678 00000 n
-0000349737 00000 n
-0000355732 00000 n
-0000355885 00000 n
-0000356039 00000 n
-0000356197 00000 n
-0000356351 00000 n
-0000356691 00000 n
-0000355534 00000 n
-0000350422 00000 n
-0000356505 00000 n
-0000868937 00000 n
-0000355671 00000 n
-0000361557 00000 n
-0000361716 00000 n
-0000361870 00000 n
-0000362307 00000 n
-0000361375 00000 n
-0000356971 00000 n
-0000362060 00000 n
-0000361512 00000 n
-0000367783 00000 n
-0000367935 00000 n
-0000368095 00000 n
-0000368246 00000 n
-0000368583 00000 n
-0000367593 00000 n
-0000362548 00000 n
-0000368397 00000 n
-0000367730 00000 n
-0000373354 00000 n
-0000373512 00000 n
-0000373671 00000 n
-0000374076 00000 n
-0000373172 00000 n
-0000368889 00000 n
-0000373830 00000 n
-0000373309 00000 n
-0000381480 00000 n
-0000387938 00000 n
-0000381694 00000 n
-0000381314 00000 n
-0000374304 00000 n
-0000381632 00000 n
-0000871729 00000 n
-0000381451 00000 n
-0000388095 00000 n
-0000388371 00000 n
-0000387764 00000 n
-0000381948 00000 n
-0000388247 00000 n
-0000387901 00000 n
-0000395164 00000 n
-0000395448 00000 n
-0000394998 00000 n
-0000388638 00000 n
-0000395324 00000 n
-0000593126 00000 n
-0000395135 00000 n
-0000399498 00000 n
-0000399782 00000 n
-0000399332 00000 n
-0000395689 00000 n
-0000399658 00000 n
-0000399469 00000 n
-0000412792 00000 n
-0000418211 00000 n
-0000418369 00000 n
-0000413203 00000 n
-0000412626 00000 n
-0000400010 00000 n
-0000412955 00000 n
-0000412763 00000 n
-0000418528 00000 n
-0000426237 00000 n
-0000426401 00000 n
-0000426565 00000 n
-0000418950 00000 n
-0000418029 00000 n
-0000413444 00000 n
-0000418764 00000 n
-0000590641 00000 n
-0000418166 00000 n
-0000419204 00000 n
-0000419522 00000 n
-0000419848 00000 n
-0000420052 00000 n
-0000420530 00000 n
-0000420874 00000 n
-0000421078 00000 n
-0000426729 00000 n
-0000426881 00000 n
-0000427219 00000 n
-0000426039 00000 n
-0000421720 00000 n
-0000427033 00000 n
-0000426176 00000 n
-0000431309 00000 n
-0000431464 00000 n
-0000431805 00000 n
-0000431135 00000 n
-0000427501 00000 n
-0000431619 00000 n
-0000431272 00000 n
-0000436059 00000 n
-0000435558 00000 n
-0000432007 00000 n
-0000435679 00000 n
-0000435741 00000 n
-0000435805 00000 n
-0000435869 00000 n
-0000435933 00000 n
-0000456185 00000 n
-0000455940 00000 n
-0000436274 00000 n
-0000456061 00000 n
-0000462189 00000 n
-0000462006 00000 n
-0000456452 00000 n
-0000462127 00000 n
-0000871882 00000 n
-0000467033 00000 n
-0000466726 00000 n
-0000462456 00000 n
-0000466847 00000 n
-0000470703 00000 n
-0000470520 00000 n
-0000467248 00000 n
-0000470641 00000 n
-0000474086 00000 n
-0000473903 00000 n
-0000470944 00000 n
-0000474024 00000 n
-0000478429 00000 n
-0000478246 00000 n
-0000474314 00000 n
-0000478367 00000 n
-0000484997 00000 n
-0000485282 00000 n
-0000484831 00000 n
-0000478657 00000 n
-0000485158 00000 n
-0000484968 00000 n
-0000491074 00000 n
-0000490891 00000 n
-0000485588 00000 n
-0000491012 00000 n
-0000503361 00000 n
-0000503116 00000 n
-0000491289 00000 n
-0000503237 00000 n
-0000506853 00000 n
-0000506608 00000 n
-0000503602 00000 n
-0000506729 00000 n
-0000511476 00000 n
-0000511626 00000 n
-0000511776 00000 n
-0000511927 00000 n
-0000512079 00000 n
-0000512231 00000 n
-0000512383 00000 n
-0000512535 00000 n
-0000512687 00000 n
-0000512838 00000 n
-0000512989 00000 n
-0000513141 00000 n
-0000513293 00000 n
-0000513444 00000 n
-0000513595 00000 n
-0000513746 00000 n
-0000513895 00000 n
-0000514043 00000 n
-0000514193 00000 n
-0000514343 00000 n
-0000514493 00000 n
-0000514642 00000 n
-0000514792 00000 n
-0000514943 00000 n
-0000515095 00000 n
-0000515245 00000 n
-0000515397 00000 n
-0000515547 00000 n
-0000515699 00000 n
-0000515848 00000 n
-0000515998 00000 n
-0000516149 00000 n
-0000516301 00000 n
-0000516451 00000 n
-0000516601 00000 n
-0000516752 00000 n
-0000516904 00000 n
-0000517055 00000 n
-0000517207 00000 n
-0000517359 00000 n
-0000517510 00000 n
-0000517662 00000 n
-0000517814 00000 n
-0000517966 00000 n
-0000518118 00000 n
-0000518269 00000 n
-0000518420 00000 n
-0000518571 00000 n
-0000518721 00000 n
-0000518871 00000 n
-0000519021 00000 n
-0000519170 00000 n
-0000519320 00000 n
-0000519470 00000 n
-0000519620 00000 n
-0000519772 00000 n
-0000519924 00000 n
-0000520076 00000 n
-0000520227 00000 n
-0000520379 00000 n
-0000520531 00000 n
-0000520683 00000 n
-0000520835 00000 n
-0000520986 00000 n
-0000521138 00000 n
-0000521289 00000 n
-0000521441 00000 n
-0000521592 00000 n
-0000521744 00000 n
-0000521896 00000 n
-0000522048 00000 n
-0000522199 00000 n
-0000522351 00000 n
-0000522502 00000 n
-0000522653 00000 n
-0000522805 00000 n
-0000522957 00000 n
-0000523109 00000 n
-0000523261 00000 n
-0000523413 00000 n
-0000523564 00000 n
-0000523716 00000 n
-0000523868 00000 n
-0000524020 00000 n
-0000524170 00000 n
-0000524322 00000 n
+0000032689 00000 n
+0000032751 00000 n
+0000750118 00000 n
+0000746266 00000 n
+0000743813 00000 n
+0000738672 00000 n
+0000735326 00000 n
+0000732883 00000 n
+0000728316 00000 n
+0000725609 00000 n
+0000878431 00000 n
+0000879159 00000 n
+0000879595 00000 n
+0000879014 00000 n
+0000878723 00000 n
+0000879738 00000 n
+0000714966 00000 n
+0000879450 00000 n
+0000703011 00000 n
+0000698396 00000 n
+0000688261 00000 n
+0000680273 00000 n
+0000675819 00000 n
+0000670045 00000 n
+0000666694 00000 n
+0000657415 00000 n
+0000655509 00000 n
+0000645571 00000 n
+0000641781 00000 n
+0000880312 00000 n
+0000032464 00000 n
+0000037497 00000 n
+0000042784 00000 n
+0000037837 00000 n
+0000037331 00000 n
+0000033275 00000 n
+0000037655 00000 n
+0000633087 00000 n
+0000623440 00000 n
+0000879881 00000 n
+0000037468 00000 n
+0000043317 00000 n
+0000042618 00000 n
+0000038143 00000 n
+0000042938 00000 n
+0000878577 00000 n
+0000043061 00000 n
+0000043125 00000 n
+0000043189 00000 n
+0000043253 00000 n
+0000042755 00000 n
+0000049744 00000 n
+0000049901 00000 n
+0000050240 00000 n
+0000049570 00000 n
+0000043610 00000 n
+0000050057 00000 n
+0000878869 00000 n
+0000049707 00000 n
+0000057245 00000 n
+0000057398 00000 n
+0000055830 00000 n
+0000055989 00000 n
+0000056149 00000 n
+0000056304 00000 n
+0000056456 00000 n
+0000056609 00000 n
+0000056768 00000 n
+0000056928 00000 n
+0000057086 00000 n
+0000057613 00000 n
+0000055584 00000 n
+0000050533 00000 n
+0000057551 00000 n
+0000619950 00000 n
+0000055721 00000 n
+0000062784 00000 n
+0000062943 00000 n
+0000063102 00000 n
+0000063261 00000 n
+0000063599 00000 n
+0000062594 00000 n
+0000057880 00000 n
+0000063416 00000 n
+0000062731 00000 n
+0000069356 00000 n
+0000069514 00000 n
+0000069673 00000 n
+0000070014 00000 n
+0000069174 00000 n
+0000063788 00000 n
+0000069830 00000 n
+0000069311 00000 n
+0000075359 00000 n
+0000075115 00000 n
+0000070255 00000 n
+0000075236 00000 n
+0000079547 00000 n
+0000079303 00000 n
+0000075574 00000 n
+0000079424 00000 n
+0000085705 00000 n
+0000085859 00000 n
+0000086022 00000 n
+0000086421 00000 n
+0000085523 00000 n
+0000079736 00000 n
+0000086176 00000 n
+0000085660 00000 n
+0000091964 00000 n
+0000091659 00000 n
+0000086649 00000 n
+0000091780 00000 n
+0000614564 00000 n
+0000880465 00000 n
+0000097243 00000 n
+0000097397 00000 n
+0000097551 00000 n
+0000097715 00000 n
+0000097869 00000 n
+0000098217 00000 n
+0000097045 00000 n
+0000092192 00000 n
+0000098033 00000 n
+0000879304 00000 n
+0000097182 00000 n
+0000104949 00000 n
+0000105108 00000 n
+0000105267 00000 n
+0000105427 00000 n
+0000112165 00000 n
+0000112322 00000 n
+0000105769 00000 n
+0000104759 00000 n
+0000098510 00000 n
+0000105585 00000 n
+0000104896 00000 n
+0000111847 00000 n
+0000112005 00000 n
+0000112601 00000 n
+0000111657 00000 n
+0000106023 00000 n
+0000112478 00000 n
+0000111794 00000 n
+0000118069 00000 n
+0000118346 00000 n
+0000117903 00000 n
+0000112816 00000 n
+0000118223 00000 n
+0000118040 00000 n
+0000122283 00000 n
+0000122100 00000 n
+0000118600 00000 n
+0000122221 00000 n
+0000129633 00000 n
+0000129849 00000 n
+0000129467 00000 n
+0000122472 00000 n
+0000129787 00000 n
+0000129604 00000 n
+0000134739 00000 n
+0000134576 00000 n
+0000140069 00000 n
+0000140229 00000 n
+0000135142 00000 n
+0000134402 00000 n
+0000130077 00000 n
+0000134896 00000 n
+0000134539 00000 n
+0000140384 00000 n
+0000140537 00000 n
+0000140759 00000 n
+0000139879 00000 n
+0000135383 00000 n
+0000140697 00000 n
+0000140016 00000 n
+0000145928 00000 n
+0000146141 00000 n
+0000145762 00000 n
+0000141013 00000 n
+0000146079 00000 n
+0000145899 00000 n
+0000151649 00000 n
+0000151871 00000 n
+0000151483 00000 n
+0000146369 00000 n
+0000151809 00000 n
+0000880618 00000 n
+0000151620 00000 n
+0000157306 00000 n
+0000157522 00000 n
+0000157140 00000 n
+0000152060 00000 n
+0000157460 00000 n
+0000157277 00000 n
+0000163410 00000 n
+0000163685 00000 n
+0000163244 00000 n
+0000157685 00000 n
+0000163561 00000 n
+0000163381 00000 n
+0000174800 00000 n
+0000168678 00000 n
+0000168371 00000 n
+0000163965 00000 n
+0000168492 00000 n
+0000174954 00000 n
+0000175114 00000 n
+0000175454 00000 n
+0000174618 00000 n
+0000168893 00000 n
+0000175268 00000 n
+0000174755 00000 n
+0000180825 00000 n
+0000181103 00000 n
+0000180659 00000 n
+0000175708 00000 n
+0000180979 00000 n
+0000180796 00000 n
+0000192143 00000 n
+0000192307 00000 n
+0000192465 00000 n
+0000184598 00000 n
+0000184354 00000 n
+0000181383 00000 n
+0000184475 00000 n
+0000192624 00000 n
+0000192936 00000 n
+0000192778 00000 n
+0000193218 00000 n
+0000191937 00000 n
+0000184800 00000 n
+0000193094 00000 n
+0000192074 00000 n
+0000200966 00000 n
+0000201130 00000 n
+0000201284 00000 n
+0000201444 00000 n
+0000216871 00000 n
+0000201726 00000 n
+0000200776 00000 n
+0000193472 00000 n
+0000201602 00000 n
+0000200913 00000 n
+0000217029 00000 n
+0000217242 00000 n
+0000216697 00000 n
+0000202006 00000 n
+0000217180 00000 n
+0000610458 00000 n
+0000216834 00000 n
+0000225403 00000 n
+0000225096 00000 n
+0000217522 00000 n
+0000225217 00000 n
+0000880771 00000 n
+0000245382 00000 n
+0000245137 00000 n
+0000225618 00000 n
+0000245258 00000 n
+0000255833 00000 n
+0000255993 00000 n
+0000256153 00000 n
+0000256498 00000 n
+0000255651 00000 n
+0000245688 00000 n
+0000256312 00000 n
+0000255788 00000 n
+0000262730 00000 n
+0000262884 00000 n
+0000269995 00000 n
+0000263139 00000 n
+0000262556 00000 n
+0000256739 00000 n
+0000263077 00000 n
+0000607923 00000 n
+0000262693 00000 n
+0000269520 00000 n
+0000269680 00000 n
+0000269841 00000 n
+0000270341 00000 n
+0000269330 00000 n
+0000263432 00000 n
+0000270155 00000 n
+0000880169 00000 n
+0000269467 00000 n
+0000279449 00000 n
+0000279609 00000 n
+0000279769 00000 n
+0000279928 00000 n
+0000280243 00000 n
+0000280083 00000 n
+0000295735 00000 n
+0000280623 00000 n
+0000279243 00000 n
+0000270660 00000 n
+0000280437 00000 n
+0000279380 00000 n
+0000295895 00000 n
+0000296050 00000 n
+0000296329 00000 n
+0000295553 00000 n
+0000280890 00000 n
+0000296205 00000 n
+0000295690 00000 n
+0000301664 00000 n
+0000301884 00000 n
+0000301498 00000 n
+0000296583 00000 n
+0000301822 00000 n
+0000301635 00000 n
+0000307231 00000 n
+0000307389 00000 n
+0000307673 00000 n
+0000307057 00000 n
+0000302099 00000 n
+0000307549 00000 n
+0000307194 00000 n
+0000313257 00000 n
+0000312939 00000 n
+0000313093 00000 n
+0000313577 00000 n
+0000312757 00000 n
+0000307953 00000 n
+0000313454 00000 n
+0000312894 00000 n
+0000319273 00000 n
+0000319433 00000 n
+0000319592 00000 n
+0000319745 00000 n
+0000319899 00000 n
+0000320059 00000 n
+0000320466 00000 n
+0000319067 00000 n
+0000313857 00000 n
+0000320219 00000 n
+0000880924 00000 n
+0000319204 00000 n
+0000334175 00000 n
+0000325301 00000 n
+0000325454 00000 n
+0000325985 00000 n
+0000325127 00000 n
+0000320629 00000 n
+0000325605 00000 n
+0000325729 00000 n
+0000604860 00000 n
+0000325793 00000 n
+0000325857 00000 n
+0000325921 00000 n
+0000325264 00000 n
+0000329688 00000 n
+0000329848 00000 n
+0000330132 00000 n
+0000329514 00000 n
+0000326187 00000 n
+0000330008 00000 n
+0000329651 00000 n
+0000334749 00000 n
+0000333992 00000 n
+0000330360 00000 n
+0000334113 00000 n
+0000334237 00000 n
+0000334301 00000 n
+0000334365 00000 n
+0000334429 00000 n
+0000334493 00000 n
+0000334557 00000 n
+0000334621 00000 n
+0000334685 00000 n
+0000338964 00000 n
+0000339124 00000 n
+0000339284 00000 n
+0000339506 00000 n
+0000338782 00000 n
+0000334990 00000 n
+0000339444 00000 n
+0000338919 00000 n
+0000344998 00000 n
+0000345158 00000 n
+0000345318 00000 n
+0000345481 00000 n
+0000345953 00000 n
+0000344808 00000 n
+0000339669 00000 n
+0000345644 00000 n
+0000344945 00000 n
+0000353861 00000 n
+0000354263 00000 n
+0000353695 00000 n
+0000346194 00000 n
+0000354015 00000 n
+0000353832 00000 n
+0000359956 00000 n
+0000360110 00000 n
+0000360451 00000 n
+0000359782 00000 n
+0000354569 00000 n
+0000360265 00000 n
+0000880026 00000 n
+0000359919 00000 n
+0000366555 00000 n
+0000366714 00000 n
+0000366869 00000 n
+0000367147 00000 n
+0000366373 00000 n
+0000360770 00000 n
+0000367023 00000 n
+0000878285 00000 n
+0000366510 00000 n
+0000371942 00000 n
+0000372102 00000 n
+0000372257 00000 n
+0000372447 00000 n
+0000372601 00000 n
+0000373135 00000 n
+0000371744 00000 n
+0000367427 00000 n
+0000372763 00000 n
+0000371881 00000 n
+0000378626 00000 n
+0000378778 00000 n
+0000378992 00000 n
+0000378452 00000 n
+0000373389 00000 n
+0000378930 00000 n
+0000881077 00000 n
+0000378589 00000 n
+0000384696 00000 n
+0000384856 00000 n
+0000385017 00000 n
+0000393649 00000 n
+0000385424 00000 n
+0000384514 00000 n
+0000379259 00000 n
+0000385176 00000 n
+0000384651 00000 n
+0000393336 00000 n
+0000393495 00000 n
+0000393862 00000 n
+0000393154 00000 n
+0000385691 00000 n
+0000393800 00000 n
+0000393291 00000 n
+0000400350 00000 n
+0000400105 00000 n
+0000394103 00000 n
+0000400226 00000 n
+0000602384 00000 n
+0000405782 00000 n
+0000406127 00000 n
+0000405616 00000 n
+0000400630 00000 n
+0000405941 00000 n
+0000405753 00000 n
+0000409884 00000 n
+0000410167 00000 n
+0000409718 00000 n
+0000406381 00000 n
+0000410043 00000 n
+0000409855 00000 n
+0000423794 00000 n
+0000423958 00000 n
+0000424114 00000 n
+0000424457 00000 n
+0000423612 00000 n
+0000410356 00000 n
+0000424271 00000 n
+0000423749 00000 n
+0000429550 00000 n
+0000429386 00000 n
+0000437643 00000 n
+0000437807 00000 n
+0000429932 00000 n
+0000429212 00000 n
+0000424711 00000 n
+0000429746 00000 n
+0000599899 00000 n
+0000429349 00000 n
+0000430186 00000 n
+0000430504 00000 n
+0000430830 00000 n
+0000431034 00000 n
+0000431512 00000 n
+0000431856 00000 n
+0000432060 00000 n
+0000437971 00000 n
+0000438123 00000 n
+0000438461 00000 n
+0000437453 00000 n
+0000432702 00000 n
+0000438275 00000 n
+0000437590 00000 n
+0000442079 00000 n
+0000442234 00000 n
+0000442575 00000 n
+0000441905 00000 n
+0000438743 00000 n
+0000442389 00000 n
+0000442042 00000 n
+0000446696 00000 n
+0000446196 00000 n
+0000442777 00000 n
+0000446317 00000 n
+0000446379 00000 n
+0000446443 00000 n
+0000446507 00000 n
+0000446570 00000 n
+0000881230 00000 n
+0000466748 00000 n
+0000466503 00000 n
+0000446885 00000 n
+0000466624 00000 n
+0000473279 00000 n
+0000473096 00000 n
+0000467015 00000 n
+0000473217 00000 n
+0000477015 00000 n
+0000476709 00000 n
+0000473533 00000 n
+0000476830 00000 n
+0000480904 00000 n
+0000480721 00000 n
+0000477217 00000 n
+0000480842 00000 n
+0000486443 00000 n
+0000486260 00000 n
+0000481145 00000 n
+0000486381 00000 n
+0000490897 00000 n
+0000490714 00000 n
+0000486671 00000 n
+0000490835 00000 n
+0000495839 00000 n
+0000496126 00000 n
+0000495673 00000 n
+0000491125 00000 n
+0000496002 00000 n
+0000495810 00000 n
+0000501950 00000 n
+0000501767 00000 n
+0000496393 00000 n
+0000501888 00000 n
+0000513242 00000 n
+0000512936 00000 n
+0000502139 00000 n
+0000513057 00000 n
+0000516106 00000 n
+0000515923 00000 n
+0000513470 00000 n
+0000516044 00000 n
+0000881383 00000 n
+0000520705 00000 n
+0000520855 00000 n
+0000521005 00000 n
+0000521156 00000 n
+0000521308 00000 n
+0000521460 00000 n
+0000521612 00000 n
+0000521764 00000 n
+0000521916 00000 n
+0000522067 00000 n
+0000522218 00000 n
+0000522370 00000 n
+0000522522 00000 n
+0000522673 00000 n
+0000522824 00000 n
+0000522975 00000 n
+0000523124 00000 n
+0000523272 00000 n
+0000523422 00000 n
+0000523572 00000 n
+0000523722 00000 n
+0000523871 00000 n
+0000524021 00000 n
+0000524172 00000 n
+0000524324 00000 n
0000524474 00000 n
0000524626 00000 n
-0000524778 00000 n
-0000524930 00000 n
-0000525081 00000 n
-0000525233 00000 n
-0000525385 00000 n
-0000525537 00000 n
-0000525689 00000 n
-0000525841 00000 n
-0000525993 00000 n
-0000526145 00000 n
-0000526297 00000 n
-0000526450 00000 n
-0000526603 00000 n
-0000526756 00000 n
-0000526909 00000 n
-0000527062 00000 n
-0000527215 00000 n
-0000527368 00000 n
-0000527521 00000 n
-0000527673 00000 n
-0000527826 00000 n
-0000527978 00000 n
-0000528129 00000 n
-0000528279 00000 n
-0000528430 00000 n
-0000533327 00000 n
-0000533480 00000 n
-0000528707 00000 n
-0000510394 00000 n
-0000507003 00000 n
-0000528580 00000 n
-0000510535 00000 n
-0000533633 00000 n
-0000533786 00000 n
-0000533938 00000 n
-0000534090 00000 n
-0000534241 00000 n
-0000534393 00000 n
-0000534546 00000 n
-0000534699 00000 n
-0000534851 00000 n
-0000535004 00000 n
-0000535156 00000 n
-0000535309 00000 n
-0000535462 00000 n
-0000535615 00000 n
-0000535768 00000 n
-0000535921 00000 n
-0000536074 00000 n
-0000536227 00000 n
-0000536379 00000 n
-0000536532 00000 n
-0000536684 00000 n
-0000536837 00000 n
-0000536989 00000 n
-0000537141 00000 n
-0000537294 00000 n
-0000537445 00000 n
-0000537598 00000 n
-0000537749 00000 n
-0000537901 00000 n
-0000538053 00000 n
-0000538206 00000 n
-0000538359 00000 n
-0000538512 00000 n
-0000538665 00000 n
-0000538818 00000 n
-0000538971 00000 n
-0000539122 00000 n
-0000539274 00000 n
-0000539427 00000 n
-0000539579 00000 n
-0000539732 00000 n
-0000539885 00000 n
-0000540037 00000 n
-0000540189 00000 n
-0000540342 00000 n
-0000540495 00000 n
-0000540648 00000 n
-0000540801 00000 n
-0000540954 00000 n
-0000541105 00000 n
-0000541257 00000 n
-0000541409 00000 n
-0000541561 00000 n
-0000541713 00000 n
-0000541865 00000 n
-0000542017 00000 n
-0000542169 00000 n
-0000542322 00000 n
-0000542475 00000 n
-0000542628 00000 n
-0000542780 00000 n
-0000542932 00000 n
-0000543085 00000 n
-0000543236 00000 n
-0000543388 00000 n
-0000543541 00000 n
-0000543694 00000 n
-0000543846 00000 n
-0000543998 00000 n
-0000544151 00000 n
-0000544303 00000 n
-0000544456 00000 n
-0000544609 00000 n
-0000544762 00000 n
-0000544914 00000 n
-0000545066 00000 n
-0000545218 00000 n
-0000545371 00000 n
-0000545524 00000 n
-0000545677 00000 n
-0000545830 00000 n
-0000545983 00000 n
-0000546136 00000 n
-0000546289 00000 n
-0000546442 00000 n
-0000546595 00000 n
-0000546747 00000 n
-0000546900 00000 n
-0000547052 00000 n
-0000547205 00000 n
-0000547358 00000 n
-0000547510 00000 n
-0000547663 00000 n
-0000547816 00000 n
-0000547967 00000 n
-0000548119 00000 n
-0000548272 00000 n
-0000548424 00000 n
-0000548576 00000 n
-0000548726 00000 n
-0000553433 00000 n
-0000553586 00000 n
-0000553739 00000 n
-0000553892 00000 n
-0000548940 00000 n
-0000532245 00000 n
-0000528897 00000 n
-0000548876 00000 n
-0000872036 00000 n
-0000532387 00000 n
-0000554045 00000 n
-0000554197 00000 n
-0000554349 00000 n
-0000554502 00000 n
-0000554654 00000 n
-0000554805 00000 n
-0000554957 00000 n
-0000555109 00000 n
-0000555262 00000 n
-0000555415 00000 n
-0000555568 00000 n
-0000555721 00000 n
-0000555873 00000 n
-0000556025 00000 n
-0000556177 00000 n
-0000556328 00000 n
-0000556481 00000 n
-0000556633 00000 n
-0000556785 00000 n
-0000556936 00000 n
-0000557087 00000 n
-0000557238 00000 n
-0000557391 00000 n
-0000557542 00000 n
-0000557694 00000 n
-0000557847 00000 n
-0000558000 00000 n
-0000558153 00000 n
-0000558305 00000 n
-0000558457 00000 n
-0000558609 00000 n
-0000558762 00000 n
-0000558915 00000 n
-0000559068 00000 n
-0000559221 00000 n
-0000559373 00000 n
-0000559526 00000 n
-0000559679 00000 n
-0000559832 00000 n
-0000559984 00000 n
-0000560137 00000 n
-0000560290 00000 n
-0000560442 00000 n
-0000560594 00000 n
-0000560746 00000 n
-0000560898 00000 n
-0000561050 00000 n
-0000561202 00000 n
-0000561353 00000 n
-0000561503 00000 n
-0000561653 00000 n
-0000561805 00000 n
-0000561956 00000 n
-0000562109 00000 n
-0000562262 00000 n
-0000562415 00000 n
-0000562566 00000 n
-0000562716 00000 n
-0000562868 00000 n
-0000563021 00000 n
-0000563173 00000 n
-0000563325 00000 n
-0000563477 00000 n
-0000563629 00000 n
-0000563782 00000 n
-0000563935 00000 n
-0000564088 00000 n
-0000564240 00000 n
-0000564393 00000 n
-0000564546 00000 n
-0000564699 00000 n
-0000564852 00000 n
-0000565005 00000 n
-0000565158 00000 n
-0000565310 00000 n
-0000565463 00000 n
-0000565616 00000 n
-0000565769 00000 n
-0000565921 00000 n
-0000566073 00000 n
-0000566225 00000 n
-0000566377 00000 n
-0000566528 00000 n
-0000566681 00000 n
-0000566834 00000 n
-0000566987 00000 n
-0000567139 00000 n
-0000567356 00000 n
-0000552450 00000 n
-0000549117 00000 n
-0000567292 00000 n
-0000552592 00000 n
-0000570527 00000 n
-0000570681 00000 n
-0000570835 00000 n
-0000570989 00000 n
-0000571143 00000 n
-0000571302 00000 n
-0000571461 00000 n
-0000571620 00000 n
-0000571779 00000 n
-0000571937 00000 n
-0000572096 00000 n
-0000572254 00000 n
-0000572408 00000 n
-0000572567 00000 n
-0000572732 00000 n
-0000572895 00000 n
-0000573054 00000 n
-0000573213 00000 n
-0000573378 00000 n
-0000573543 00000 n
-0000573708 00000 n
-0000573873 00000 n
-0000574038 00000 n
-0000574192 00000 n
-0000574350 00000 n
-0000574507 00000 n
-0000574665 00000 n
-0000574824 00000 n
-0000574978 00000 n
-0000575132 00000 n
-0000575291 00000 n
-0000575450 00000 n
-0000575609 00000 n
-0000575763 00000 n
-0000575916 00000 n
-0000576075 00000 n
-0000576233 00000 n
-0000579648 00000 n
-0000576455 00000 n
-0000570030 00000 n
-0000567533 00000 n
-0000576391 00000 n
-0000570172 00000 n
-0000579807 00000 n
-0000579967 00000 n
-0000580126 00000 n
-0000580281 00000 n
-0000580436 00000 n
-0000580596 00000 n
-0000580756 00000 n
-0000580916 00000 n
-0000581076 00000 n
-0000581231 00000 n
-0000581391 00000 n
-0000581551 00000 n
-0000581711 00000 n
-0000581870 00000 n
-0000582030 00000 n
-0000582185 00000 n
-0000582345 00000 n
-0000582505 00000 n
-0000582665 00000 n
-0000582824 00000 n
-0000582983 00000 n
-0000583143 00000 n
-0000583303 00000 n
-0000583463 00000 n
-0000583623 00000 n
-0000583784 00000 n
-0000583945 00000 n
-0000584100 00000 n
-0000584260 00000 n
-0000584426 00000 n
-0000584592 00000 n
-0000584752 00000 n
-0000584912 00000 n
-0000585071 00000 n
-0000585225 00000 n
-0000585380 00000 n
-0000585540 00000 n
-0000585700 00000 n
-0000585860 00000 n
-0000586020 00000 n
-0000586175 00000 n
-0000586335 00000 n
-0000586494 00000 n
-0000586654 00000 n
-0000586814 00000 n
-0000586974 00000 n
-0000587133 00000 n
-0000587293 00000 n
-0000587453 00000 n
-0000587611 00000 n
-0000588350 00000 n
-0000587834 00000 n
-0000579025 00000 n
-0000576658 00000 n
-0000587770 00000 n
-0000579167 00000 n
-0000588568 00000 n
-0000588177 00000 n
-0000587972 00000 n
-0000588504 00000 n
-0000588319 00000 n
-0000588987 00000 n
-0000589942 00000 n
-0000589043 00000 n
-0000589143 00000 n
-0000590184 00000 n
-0000590798 00000 n
-0000591002 00000 n
-0000592414 00000 n
-0000591077 00000 n
-0000591178 00000 n
-0000592656 00000 n
-0000593284 00000 n
-0000593489 00000 n
-0000593634 00000 n
-0000593731 00000 n
-0000594901 00000 n
-0000593797 00000 n
-0000593894 00000 n
-0000595144 00000 n
-0000595759 00000 n
-0000595963 00000 n
-0000596067 00000 n
-0000597922 00000 n
-0000596225 00000 n
-0000596329 00000 n
-0000598162 00000 n
-0000598822 00000 n
-0000599026 00000 n
-0000600481 00000 n
-0000599105 00000 n
-0000599207 00000 n
-0000600729 00000 n
-0000601363 00000 n
-0000601573 00000 n
-0000601618 00000 n
-0000604504 00000 n
-0000601866 00000 n
-0000601976 00000 n
-0000604752 00000 n
-0000605469 00000 n
-0000605679 00000 n
-0000609854 00000 n
-0000606033 00000 n
-0000606147 00000 n
-0000610097 00000 n
-0000610849 00000 n
-0000611053 00000 n
-0000611078 00000 n
-0000611104 00000 n
-0000611356 00000 n
-0000613438 00000 n
-0000611509 00000 n
-0000611615 00000 n
-0000613677 00000 n
-0000614337 00000 n
-0000614539 00000 n
-0000622824 00000 n
-0000615047 00000 n
-0000615170 00000 n
-0000623064 00000 n
-0000623985 00000 n
-0000624188 00000 n
-0000631527 00000 n
-0000624628 00000 n
-0000624736 00000 n
-0000631767 00000 n
-0000632680 00000 n
-0000632884 00000 n
-0000635196 00000 n
-0000633158 00000 n
-0000633264 00000 n
-0000635436 00000 n
-0000636142 00000 n
-0000636346 00000 n
-0000644887 00000 n
-0000636911 00000 n
-0000637048 00000 n
-0000645128 00000 n
-0000646081 00000 n
-0000646286 00000 n
-0000647142 00000 n
-0000646320 00000 n
-0000646415 00000 n
-0000647384 00000 n
-0000647987 00000 n
-0000648192 00000 n
-0000656113 00000 n
-0000648660 00000 n
-0000648777 00000 n
-0000656353 00000 n
-0000657264 00000 n
-0000657467 00000 n
-0000659699 00000 n
-0000657634 00000 n
-0000657740 00000 n
-0000659946 00000 n
-0000660622 00000 n
-0000660832 00000 n
-0000665370 00000 n
-0000661195 00000 n
-0000661313 00000 n
-0000665619 00000 n
-0000666397 00000 n
-0000666608 00000 n
-0000669907 00000 n
-0000666811 00000 n
-0000666918 00000 n
-0000670149 00000 n
-0000670845 00000 n
-0000671050 00000 n
-0000677822 00000 n
-0000671474 00000 n
-0000671592 00000 n
-0000678066 00000 n
-0000678890 00000 n
-0000679095 00000 n
-0000687805 00000 n
-0000679552 00000 n
-0000679668 00000 n
-0000688046 00000 n
-0000689025 00000 n
-0000689230 00000 n
-0000692631 00000 n
-0000689590 00000 n
-0000689697 00000 n
-0000692872 00000 n
-0000693640 00000 n
-0000693845 00000 n
-0000694080 00000 n
-0000704314 00000 n
-0000694721 00000 n
-0000694864 00000 n
-0000704556 00000 n
-0000705596 00000 n
-0000705802 00000 n
-0000705909 00000 n
-0000706188 00000 n
-0000706295 00000 n
-0000706357 00000 n
-0000706552 00000 n
-0000706921 00000 n
-0000715111 00000 n
-0000707428 00000 n
-0000707554 00000 n
-0000715351 00000 n
-0000716318 00000 n
-0000716522 00000 n
-0000718126 00000 n
-0000716679 00000 n
-0000716785 00000 n
-0000718366 00000 n
-0000719025 00000 n
-0000719229 00000 n
-0000722623 00000 n
-0000719522 00000 n
-0000719636 00000 n
-0000722864 00000 n
-0000723593 00000 n
-0000723798 00000 n
-0000725175 00000 n
-0000723877 00000 n
-0000723980 00000 n
-0000725414 00000 n
-0000726033 00000 n
-0000726235 00000 n
-0000728472 00000 n
-0000726414 00000 n
-0000726520 00000 n
-0000728713 00000 n
-0000729382 00000 n
-0000729587 00000 n
-0000733638 00000 n
-0000729915 00000 n
-0000730029 00000 n
-0000733880 00000 n
-0000734624 00000 n
-0000734830 00000 n
-0000736190 00000 n
-0000734953 00000 n
-0000735059 00000 n
-0000736431 00000 n
-0000737076 00000 n
-0000737281 00000 n
-0000739985 00000 n
-0000737504 00000 n
-0000737618 00000 n
-0000740227 00000 n
-0000740929 00000 n
-0000750381 00000 n
-0000741135 00000 n
-0000761805 00000 n
-0000750632 00000 n
-0000769493 00000 n
-0000762559 00000 n
-0000782270 00000 n
-0000769723 00000 n
-0000789741 00000 n
-0000782598 00000 n
-0000797874 00000 n
-0000789967 00000 n
-0000807801 00000 n
-0000798107 00000 n
-0000815713 00000 n
-0000808068 00000 n
-0000828423 00000 n
-0000815944 00000 n
-0000836441 00000 n
-0000828781 00000 n
-0000845682 00000 n
-0000836689 00000 n
-0000853634 00000 n
-0000845990 00000 n
-0000861174 00000 n
-0000853918 00000 n
-0000868688 00000 n
-0000861413 00000 n
-0000872154 00000 n
-0000872277 00000 n
-0000880633 00000 n
-0000881269 00000 n
-0000881909 00000 n
-0000882578 00000 n
-0000883421 00000 n
-0000884318 00000 n
-0000885079 00000 n
-0000885207 00000 n
-0000885247 00000 n
-0000885379 00000 n
+0000524776 00000 n
+0000524928 00000 n
+0000525077 00000 n
+0000525227 00000 n
+0000525378 00000 n
+0000525530 00000 n
+0000525680 00000 n
+0000525830 00000 n
+0000525981 00000 n
+0000526133 00000 n
+0000526284 00000 n
+0000526436 00000 n
+0000526588 00000 n
+0000526739 00000 n
+0000526891 00000 n
+0000527043 00000 n
+0000527195 00000 n
+0000527347 00000 n
+0000527498 00000 n
+0000527649 00000 n
+0000527800 00000 n
+0000527950 00000 n
+0000528100 00000 n
+0000528250 00000 n
+0000528399 00000 n
+0000528549 00000 n
+0000528699 00000 n
+0000528849 00000 n
+0000529001 00000 n
+0000529153 00000 n
+0000529305 00000 n
+0000529456 00000 n
+0000529608 00000 n
+0000529760 00000 n
+0000529912 00000 n
+0000530064 00000 n
+0000530215 00000 n
+0000530367 00000 n
+0000530518 00000 n
+0000530670 00000 n
+0000530821 00000 n
+0000530973 00000 n
+0000531125 00000 n
+0000531277 00000 n
+0000531428 00000 n
+0000531580 00000 n
+0000531731 00000 n
+0000531882 00000 n
+0000532034 00000 n
+0000532186 00000 n
+0000532338 00000 n
+0000532490 00000 n
+0000532642 00000 n
+0000532793 00000 n
+0000532945 00000 n
+0000533097 00000 n
+0000533249 00000 n
+0000533400 00000 n
+0000533553 00000 n
+0000533706 00000 n
+0000533859 00000 n
+0000534012 00000 n
+0000534165 00000 n
+0000534317 00000 n
+0000534470 00000 n
+0000534623 00000 n
+0000534776 00000 n
+0000534929 00000 n
+0000535082 00000 n
+0000535235 00000 n
+0000535388 00000 n
+0000535541 00000 n
+0000535694 00000 n
+0000535847 00000 n
+0000536000 00000 n
+0000536153 00000 n
+0000536306 00000 n
+0000536459 00000 n
+0000536612 00000 n
+0000536765 00000 n
+0000536917 00000 n
+0000537070 00000 n
+0000537222 00000 n
+0000537373 00000 n
+0000537523 00000 n
+0000537674 00000 n
+0000542569 00000 n
+0000542722 00000 n
+0000537951 00000 n
+0000519608 00000 n
+0000516243 00000 n
+0000537824 00000 n
+0000519749 00000 n
+0000542875 00000 n
+0000543028 00000 n
+0000543180 00000 n
+0000543332 00000 n
+0000543483 00000 n
+0000543635 00000 n
+0000543788 00000 n
+0000543941 00000 n
+0000544093 00000 n
+0000544246 00000 n
+0000544398 00000 n
+0000544551 00000 n
+0000544704 00000 n
+0000544857 00000 n
+0000545010 00000 n
+0000545163 00000 n
+0000545316 00000 n
+0000545469 00000 n
+0000545621 00000 n
+0000545774 00000 n
+0000545926 00000 n
+0000546079 00000 n
+0000546231 00000 n
+0000546383 00000 n
+0000546536 00000 n
+0000546687 00000 n
+0000546840 00000 n
+0000546991 00000 n
+0000547143 00000 n
+0000547295 00000 n
+0000547448 00000 n
+0000547601 00000 n
+0000547754 00000 n
+0000547907 00000 n
+0000548060 00000 n
+0000548213 00000 n
+0000548364 00000 n
+0000548516 00000 n
+0000548669 00000 n
+0000548821 00000 n
+0000548974 00000 n
+0000549127 00000 n
+0000549279 00000 n
+0000549431 00000 n
+0000549584 00000 n
+0000549737 00000 n
+0000549890 00000 n
+0000550043 00000 n
+0000550196 00000 n
+0000550347 00000 n
+0000550499 00000 n
+0000550651 00000 n
+0000550803 00000 n
+0000550955 00000 n
+0000551107 00000 n
+0000551259 00000 n
+0000551411 00000 n
+0000551564 00000 n
+0000551717 00000 n
+0000551870 00000 n
+0000552022 00000 n
+0000552174 00000 n
+0000552327 00000 n
+0000552478 00000 n
+0000552630 00000 n
+0000552783 00000 n
+0000552936 00000 n
+0000553088 00000 n
+0000553240 00000 n
+0000553393 00000 n
+0000553545 00000 n
+0000553698 00000 n
+0000553851 00000 n
+0000554004 00000 n
+0000554156 00000 n
+0000554308 00000 n
+0000554460 00000 n
+0000554613 00000 n
+0000554766 00000 n
+0000554919 00000 n
+0000555072 00000 n
+0000555225 00000 n
+0000555378 00000 n
+0000555531 00000 n
+0000555684 00000 n
+0000555837 00000 n
+0000555989 00000 n
+0000556142 00000 n
+0000556294 00000 n
+0000556447 00000 n
+0000556600 00000 n
+0000556752 00000 n
+0000556905 00000 n
+0000557058 00000 n
+0000557209 00000 n
+0000557361 00000 n
+0000557514 00000 n
+0000557666 00000 n
+0000557818 00000 n
+0000557968 00000 n
+0000562688 00000 n
+0000562841 00000 n
+0000562994 00000 n
+0000563147 00000 n
+0000558182 00000 n
+0000541488 00000 n
+0000538141 00000 n
+0000558118 00000 n
+0000541629 00000 n
+0000563300 00000 n
+0000563452 00000 n
+0000563604 00000 n
+0000563757 00000 n
+0000563909 00000 n
+0000564060 00000 n
+0000564212 00000 n
+0000564364 00000 n
+0000564517 00000 n
+0000564670 00000 n
+0000564823 00000 n
+0000564976 00000 n
+0000565128 00000 n
+0000565280 00000 n
+0000565432 00000 n
+0000565583 00000 n
+0000565736 00000 n
+0000565888 00000 n
+0000566040 00000 n
+0000566191 00000 n
+0000566342 00000 n
+0000566493 00000 n
+0000566646 00000 n
+0000566797 00000 n
+0000566949 00000 n
+0000567102 00000 n
+0000567255 00000 n
+0000567408 00000 n
+0000567560 00000 n
+0000567712 00000 n
+0000567864 00000 n
+0000568017 00000 n
+0000568170 00000 n
+0000568323 00000 n
+0000568476 00000 n
+0000568628 00000 n
+0000568781 00000 n
+0000568934 00000 n
+0000569087 00000 n
+0000569239 00000 n
+0000569392 00000 n
+0000569545 00000 n
+0000569697 00000 n
+0000569849 00000 n
+0000570001 00000 n
+0000570153 00000 n
+0000570305 00000 n
+0000570458 00000 n
+0000570610 00000 n
+0000570761 00000 n
+0000570912 00000 n
+0000571063 00000 n
+0000571216 00000 n
+0000571369 00000 n
+0000571522 00000 n
+0000571675 00000 n
+0000571826 00000 n
+0000571976 00000 n
+0000572128 00000 n
+0000572281 00000 n
+0000572433 00000 n
+0000572585 00000 n
+0000572737 00000 n
+0000572889 00000 n
+0000573042 00000 n
+0000573195 00000 n
+0000573348 00000 n
+0000573500 00000 n
+0000573653 00000 n
+0000573806 00000 n
+0000573959 00000 n
+0000574112 00000 n
+0000574265 00000 n
+0000574418 00000 n
+0000574570 00000 n
+0000574723 00000 n
+0000574876 00000 n
+0000575029 00000 n
+0000575181 00000 n
+0000575333 00000 n
+0000575485 00000 n
+0000575637 00000 n
+0000575788 00000 n
+0000575941 00000 n
+0000576094 00000 n
+0000576247 00000 n
+0000576399 00000 n
+0000576616 00000 n
+0000561706 00000 n
+0000558359 00000 n
+0000576552 00000 n
+0000561847 00000 n
+0000579786 00000 n
+0000579940 00000 n
+0000580094 00000 n
+0000580248 00000 n
+0000580402 00000 n
+0000580561 00000 n
+0000580720 00000 n
+0000580879 00000 n
+0000581038 00000 n
+0000581196 00000 n
+0000581355 00000 n
+0000581513 00000 n
+0000581667 00000 n
+0000581826 00000 n
+0000581991 00000 n
+0000582154 00000 n
+0000582313 00000 n
+0000582472 00000 n
+0000582637 00000 n
+0000582802 00000 n
+0000582967 00000 n
+0000583132 00000 n
+0000583297 00000 n
+0000583451 00000 n
+0000583609 00000 n
+0000583766 00000 n
+0000583924 00000 n
+0000584083 00000 n
+0000584237 00000 n
+0000584391 00000 n
+0000584550 00000 n
+0000584709 00000 n
+0000584868 00000 n
+0000585022 00000 n
+0000585175 00000 n
+0000585334 00000 n
+0000585492 00000 n
+0000588908 00000 n
+0000585714 00000 n
+0000579290 00000 n
+0000576793 00000 n
+0000585650 00000 n
+0000579431 00000 n
+0000589067 00000 n
+0000589227 00000 n
+0000589386 00000 n
+0000589541 00000 n
+0000589696 00000 n
+0000589856 00000 n
+0000590016 00000 n
+0000590176 00000 n
+0000590336 00000 n
+0000590491 00000 n
+0000590651 00000 n
+0000590811 00000 n
+0000590971 00000 n
+0000591130 00000 n
+0000591290 00000 n
+0000591445 00000 n
+0000591605 00000 n
+0000591765 00000 n
+0000591925 00000 n
+0000592084 00000 n
+0000592243 00000 n
+0000592403 00000 n
+0000592563 00000 n
+0000592723 00000 n
+0000592883 00000 n
+0000593044 00000 n
+0000593205 00000 n
+0000593360 00000 n
+0000593520 00000 n
+0000593686 00000 n
+0000593852 00000 n
+0000594012 00000 n
+0000594172 00000 n
+0000594331 00000 n
+0000594485 00000 n
+0000594640 00000 n
+0000594800 00000 n
+0000594960 00000 n
+0000595120 00000 n
+0000595280 00000 n
+0000595435 00000 n
+0000595595 00000 n
+0000595754 00000 n
+0000595914 00000 n
+0000596074 00000 n
+0000596234 00000 n
+0000596393 00000 n
+0000596553 00000 n
+0000596713 00000 n
+0000596871 00000 n
+0000597608 00000 n
+0000597094 00000 n
+0000588286 00000 n
+0000585917 00000 n
+0000597030 00000 n
+0000588427 00000 n
+0000597826 00000 n
+0000597436 00000 n
+0000597232 00000 n
+0000597762 00000 n
+0000597577 00000 n
+0000598245 00000 n
+0000599200 00000 n
+0000598301 00000 n
+0000598401 00000 n
+0000599442 00000 n
+0000600056 00000 n
+0000600260 00000 n
+0000601672 00000 n
+0000600335 00000 n
+0000600436 00000 n
+0000601914 00000 n
+0000602542 00000 n
+0000602747 00000 n
+0000602892 00000 n
+0000602989 00000 n
+0000604159 00000 n
+0000603055 00000 n
+0000603152 00000 n
+0000604402 00000 n
+0000605017 00000 n
+0000605221 00000 n
+0000605325 00000 n
+0000607180 00000 n
+0000605483 00000 n
+0000605587 00000 n
+0000607420 00000 n
+0000608080 00000 n
+0000608284 00000 n
+0000609739 00000 n
+0000608363 00000 n
+0000608465 00000 n
+0000609987 00000 n
+0000610621 00000 n
+0000610831 00000 n
+0000610876 00000 n
+0000613762 00000 n
+0000611124 00000 n
+0000611234 00000 n
+0000614010 00000 n
+0000614727 00000 n
+0000614937 00000 n
+0000619112 00000 n
+0000615291 00000 n
+0000615405 00000 n
+0000619355 00000 n
+0000620107 00000 n
+0000620311 00000 n
+0000620336 00000 n
+0000620362 00000 n
+0000620614 00000 n
+0000622696 00000 n
+0000620767 00000 n
+0000620873 00000 n
+0000622935 00000 n
+0000623595 00000 n
+0000623797 00000 n
+0000632082 00000 n
+0000624305 00000 n
+0000624428 00000 n
+0000632322 00000 n
+0000633243 00000 n
+0000633446 00000 n
+0000640785 00000 n
+0000633886 00000 n
+0000633994 00000 n
+0000641025 00000 n
+0000641938 00000 n
+0000642142 00000 n
+0000644773 00000 n
+0000642439 00000 n
+0000642545 00000 n
+0000645013 00000 n
+0000645728 00000 n
+0000645932 00000 n
+0000654473 00000 n
+0000646497 00000 n
+0000646634 00000 n
+0000654714 00000 n
+0000655667 00000 n
+0000655872 00000 n
+0000656728 00000 n
+0000655906 00000 n
+0000656001 00000 n
+0000656970 00000 n
+0000657573 00000 n
+0000657778 00000 n
+0000665699 00000 n
+0000658246 00000 n
+0000658363 00000 n
+0000665939 00000 n
+0000666850 00000 n
+0000667053 00000 n
+0000669285 00000 n
+0000667220 00000 n
+0000667326 00000 n
+0000669532 00000 n
+0000670208 00000 n
+0000670418 00000 n
+0000674956 00000 n
+0000670781 00000 n
+0000670899 00000 n
+0000675205 00000 n
+0000675983 00000 n
+0000676194 00000 n
+0000679493 00000 n
+0000676397 00000 n
+0000676504 00000 n
+0000679735 00000 n
+0000680431 00000 n
+0000680636 00000 n
+0000687355 00000 n
+0000681048 00000 n
+0000681165 00000 n
+0000687599 00000 n
+0000688419 00000 n
+0000688624 00000 n
+0000697334 00000 n
+0000689081 00000 n
+0000689197 00000 n
+0000697575 00000 n
+0000698554 00000 n
+0000698759 00000 n
+0000702160 00000 n
+0000699119 00000 n
+0000699226 00000 n
+0000702401 00000 n
+0000703169 00000 n
+0000703374 00000 n
+0000703609 00000 n
+0000713843 00000 n
+0000704250 00000 n
+0000704393 00000 n
+0000714085 00000 n
+0000715125 00000 n
+0000715331 00000 n
+0000715438 00000 n
+0000715717 00000 n
+0000715824 00000 n
+0000715886 00000 n
+0000716081 00000 n
+0000716450 00000 n
+0000724565 00000 n
+0000716953 00000 n
+0000717079 00000 n
+0000724805 00000 n
+0000725766 00000 n
+0000725970 00000 n
+0000727574 00000 n
+0000726127 00000 n
+0000726233 00000 n
+0000727814 00000 n
+0000728473 00000 n
+0000728677 00000 n
+0000732071 00000 n
+0000728970 00000 n
+0000729084 00000 n
+0000732312 00000 n
+0000733041 00000 n
+0000733246 00000 n
+0000734623 00000 n
+0000733325 00000 n
+0000733428 00000 n
+0000734862 00000 n
+0000735481 00000 n
+0000735683 00000 n
+0000737920 00000 n
+0000735862 00000 n
+0000735968 00000 n
+0000738161 00000 n
+0000738830 00000 n
+0000739035 00000 n
+0000742990 00000 n
+0000739352 00000 n
+0000739466 00000 n
+0000743232 00000 n
+0000743972 00000 n
+0000744178 00000 n
+0000745538 00000 n
+0000744301 00000 n
+0000744407 00000 n
+0000745779 00000 n
+0000746424 00000 n
+0000746629 00000 n
+0000749333 00000 n
+0000746852 00000 n
+0000746966 00000 n
+0000749575 00000 n
+0000750277 00000 n
+0000759729 00000 n
+0000750483 00000 n
+0000771153 00000 n
+0000759980 00000 n
+0000778841 00000 n
+0000771907 00000 n
+0000791618 00000 n
+0000779071 00000 n
+0000799089 00000 n
+0000791946 00000 n
+0000807222 00000 n
+0000799315 00000 n
+0000817149 00000 n
+0000807455 00000 n
+0000825061 00000 n
+0000817416 00000 n
+0000837771 00000 n
+0000825292 00000 n
+0000845789 00000 n
+0000838129 00000 n
+0000855030 00000 n
+0000846037 00000 n
+0000862982 00000 n
+0000855338 00000 n
+0000870522 00000 n
+0000863266 00000 n
+0000878036 00000 n
+0000870761 00000 n
+0000881517 00000 n
+0000881639 00000 n
+0000889995 00000 n
+0000890631 00000 n
+0000891271 00000 n
+0000891934 00000 n
+0000892767 00000 n
+0000893668 00000 n
+0000894477 00000 n
+0000894605 00000 n
+0000894645 00000 n
+0000894777 00000 n
trailer
-<< /Size 1556 /Root 1554 0 R /Info 1555 0 R /ID [ <3FE6C4DD311C0CD314A321F3F7326EAE> <3FE6C4DD311C0CD314A321F3F7326EAE> ] >>
+<< /Size 1570 /Root 1568 0 R /Info 1569 0 R /ID [ <CB4E09AF6E34ED361CA6309FD4DDEB9A> <CB4E09AF6E34ED361CA6309FD4DDEB9A> ] >>
startxref
-885953
+895351
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index a1b34bc217..e6712486b6 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -1,5 +1,5 @@
% -*- coding: utf-8 ; -*-
-% Ce fichier doit être compilé avec lualatex uniquement.
+% Ce fichier doit être compilé avec LuaLaTeX uniquement.
\documentclass[dvipsnames]{article}% dvipsnames is for xcolor (loaded by TikZ, loaded by nicematrix)
\usepackage[french]{babel}
\frenchsetup{og = « , fg = »}
@@ -65,7 +65,7 @@
\def\emphase{\bgroup\color{RoyalPurple}\let\next=}
\usepackage{piton}
-\PitonOptions{language = minimal, detected-commands = {emph,textsl}, splittable = 4}
+\PitonOptions{language = verbatim, detected-commands = {emph,textsl}, splittable = 4}
\SetPitonStyle{ Number = , Comment = }
\ExplSyntaxOn
@@ -92,7 +92,6 @@
{ \end{minipage} }
}
-
\ExplSyntaxOff
@@ -129,8 +128,9 @@
\begin{abstract}
-L'extension LaTeX \pkg{nicematrix} fournit de nouveaux environnements similaires aux environnements classiques
-|{tabular}|, |{array}| et |{matrix}| de \pkg{array} et \pkg{amsmath} mais avec des fonctionnalités plus étendues.
+L'extension LaTeX \pkg{nicematrix} fournit de nouveaux environnements similaires
+aux environnements classiques |{tabular}|, |{array}| et |{matrix}| de
+\pkg{array} et \pkg{amsmath} mais avec des fonctionnalités plus étendues.
\end{abstract}
@@ -167,8 +167,9 @@ spécial & 12 & 12 & 0.5 & 70 \\
\vspace{1cm}
-L'extension \pkg{nicematrix} est entièrement contenue dans le fichier |nicematrix.sty|. Ce fichier peut être placé
-dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
+L'extension \pkg{nicematrix} est entièrement contenue dans le fichier
+|nicematrix.sty|. Ce fichier peut être placé dans le répertoire courant ou dans
+une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
\medskip
@@ -176,8 +177,8 @@ avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
Overleaf) vous pouvez télécharger le fichier |nicematrix.sty| dans le dossier de
votre projet pour bénéficier de la dernière version de
\pkg{nicematrix}.\footnote{La dernière version de |nicematrix.sty| peut
- être téléchargée sur le serveur \textsc{svn} de TeXLive : \newline \small
- \url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
+ être téléchargée sur le dépôt Github de \pkg{nicematrix} : \newline \small
+ \url{https://github.com/fpantigny/nicematrix/releases}}
\medskip
Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais
@@ -200,8 +201,9 @@ utiliser pour développer de nouvelles fonctionnalités. Comme toujours avec
\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |aux|
pour être utilisées à la compilation suivante. C'est pourquoi l'utilisation de
\pkg{nicematrix} nécessite \textbf{plusieurs compilations
- successives}.\footnote{Si vous utilisez Overleaf, Overleaf effectue
- automatiquement un nombre de compilations suffisant.}
+ successives}\footnote{Si vous utilisez Overleaf, Overleaf effectue
+ automatiquement un nombre de compilations suffisant (en utilisant |latexmk|).}. L'utilisateur ne doit
+pas utiliser la commande |\nofiles| (qui bloque l'écriture du fichier |aux|).
\medskip
La plupart des fonctionnalités de \pkg{nicematrix} sont accessibles sans avoir à
@@ -313,12 +315,12 @@ $\begin{pmatrix}
\medskip
En s'inspirant de l'extension \pkg{cellspace} qui traite de ce problème,
-l'extension \pkg{nicematrix} propose deux clés |cell-space-top-limit| et
-|cell-space-bottom-limit| qui sont similaires aux deux paramètres
+l'extension \pkg{nicematrix} propose deux clés \Definition{cell-space-top-limit}
+et \Definition{cell-space-bottom-limit} qui sont similaires aux deux paramètres
|\cellspacetoplimit| et |\cellspacebottomlimit| proposés par \pkg{cellspace}.\index{cellspace@\pkg{cellspace} (extension)}
-Il existe aussi une clé |cell-space-limits| pour régler simultanément les deux
-paramètres.
+Il existe aussi une clé \Definition{cell-space-limits} pour régler simultanément
+les deux paramètres.
La valeur initiale de ces paramètres est $0$~pt pour que les environnements de
\pkg{nicematrix} aient par défaut le même comportement que ceux de \pkg{array}
@@ -359,10 +361,10 @@ seulement grâce à la commande |\RowStyle| (cf.~p.~\pageref{RowStyle}).
\index{baseline (clé pour un environnement)}
-L'extension \pkg{nicematrix} propose une option |baseline| pour la position
-verticale des tableaux. Cette option |baseline| prend comme valeur un entier qui
-indique le numéro de rangée dont la ligne de base servira de ligne de base pour
-le tableau.
+L'extension \pkg{nicematrix} propose une option \Definition{baseline} pour la
+position verticale des tableaux. Cette option |baseline| prend comme valeur un
+entier qui indique le numéro de rangée dont la ligne de base servira de ligne de
+base pour le tableau.
\medskip
\begin{Code}[width=9cm]
@@ -502,7 +504,7 @@ $A=\begin{pNiceArray}{cc|cc}\emph{[baseline=line-3]}
Dans les environnements de \pkg{nicematrix}, on peut utiliser la commande
-|\Block| pour placer un élément au centre d'un rectangle de cases
+\DefinitionCommande{Block} pour placer un élément au centre d'un rectangle de cases
fusionnées.\footnote{Les espaces situés après une commande |\Block| sont supprimés.}
La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc
@@ -943,12 +945,14 @@ Rang & \Block[C]{1-3}{Premier groupe} & & & \Block{1-3}{Deuxième groupe} \\
\colorbox{yellow!50}{\bfseries Nouveau 6.28}\par\nobreak
\smallskip
-La commande |\Block| accepte aussi la clé |p|. Avec cette clé, le contenu du
-bloc est composé comme un paragraphe (de manière similaire à une colonne
-standard de type |p|). Cette clé peut s'utiliser en conjonction avec les clés
-|l|, |c| ou |r| et, alors, le paragraphe est composé avec |\raggedright|,
-|\centering| ou |\raggedleft|. Avec la clé |j|, le paragraphe est composé de
-manière justifiée.
+La commande |\Block| accepte aussi les clés |p| et |j|. Avec la clé
+\Definition{p}, le contenu du bloc est composé comme un paragraphe (de manière
+similaire à une colonne standard de type |p|). Cette clé peut s'utiliser en
+conjonction avec les clés |l|, |c| ou |r| et, alors, le paragraphe est composé
+avec |\raggedright|, |\centering| ou |\raggedleft| (et les commandes
+|\RaggedRight|, |\Centering| et |\RaggedLeft| dans le cas où l'extension
+\pkg{ragged2e} est chargée). Avec la clé \Definition{j},
+le paragraphe est composé de manière justifiée.
\subsection{Positionnement vertical du contenu des blocs}
@@ -962,7 +966,8 @@ Concernant le positionnement vertical, la commande |\Block| admet les clés
\begin{itemize}
\item \index{v-center (clé de \texttt{\textbackslash Block)})}
-Avec la clé \Definition{m}\footnote{Cette clé a un alias : |v-center|.}, le contenu du bloc est centré verticalement.
+Avec la clé \Definition{m}\footnote{Cette clé a un alias : |v-center|.}, le
+contenu du bloc est centré verticalement.
\item Avec la clé \Definition{t}, la ligne de base du contenu du bloc est alignée avec la
ligne de base de la première rangée concernée par le bloc.
@@ -1097,7 +1102,7 @@ quelques restrictions.
\item Pour |\\|, il n'y a pas d'autres restrictions. On peut utiliser
|\\| dans un bloc pour composer du texte sur plusieurs lignes.
-\item Pour pouvoir utiliser |&|, la clé |ampersand-in-blocks| (alias:
+\item Pour pouvoir utiliser |&|, la clé \Definition{ampersand-in-blocks} (alias:
|&-in-blocks|) doit avoir été activée\footnote{Si ce n'est pas le cas,
l'utilisation de |&| dans l'argument principal de la commande |\Block|
provoquera une erreur : |! Extra alignment tab has been changed to \cr| de
@@ -1116,11 +1121,11 @@ L'esperluette |&| permet de diviser horizontalement un bloc en sous-blocs \emph{
\medskip
\begin{Code}[width=85mm]
\begin{NiceTabular}{ll}%
- [hvlines,ampersand-in-blocks]
+ [hvlines,\emph{ampersand-in-blocks}]
& les cinq premiers entiers naturels \\
-3 & \Block{un&deux&trois} \\
-4 & \Block{un&deux&trois& quatre} \\
-5 & \Block{un&deux&trois&quatre&cinq} \\
+3 & \Block{}{un&deux&trois} \\
+4 & \Block{}{un&deux&trois& quatre} \\
+5 & \Block{}{un&deux&trois&quatre&cinq} \\
\end{NiceTabular}
\end{Code}
%
@@ -1140,7 +1145,7 @@ suivant :
\medskip
\begin{Code}[width=85mm]
\begin{NiceTabular}{lccccc}%
- [hvlines,ampersand-in-blocks]
+ [hvlines,\emph{ampersand-in-blocks}]
& \Block{1-5}{les cinq premiers
entiers naturels} \\
3 & \Block{1-5}{un & deux & trois} \\
@@ -1214,17 +1219,18 @@ Si vous utilisez \pkg{booktabs} (qui fournit |\toprule|, |\midrule|,
|\bottomrule|, etc.) et que vous tenez absolument à mettre des filets verticaux
(ce qui est contraire à l'esprit à \pkg{booktabs}), vous constaterez que les
filets tracés par \pkg{nicematrix} sont compatibles avec \pkg{booktabs}.
+Remarquez que \pkg{nicematrix} ne charge \emph{pas} \pkg{booktabs}.
\medskip
\begin{Code}[width=10.5cm]
-$\begin{NiceArray}{\emph{|cccc|}} \toprule
+$\begin{NiceArray}{\emph{c|ccc}} \toprule
a & b & c & d \\ \midrule
1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ \bottomrule
\end{NiceArray}$
\end{Code}
%
-$\begin{NiceArray}{|cccc|}
+$\begin{NiceArray}{c|ccc}
\toprule
a & b & c & d \\
\midrule
@@ -1283,7 +1289,7 @@ A&B&C&D \\
\index{standard-cline}
Dans les environnements de \pkg{nicematrix}, cette situation est corrigée (il
est néanmoins possible de revenir au comportement par défaut de |\cline| avec la
-clé |standard-cline|).
+clé \Definition{standard-cline}).
\medskip
\begin{Code}[width=10cm]
@@ -1317,10 +1323,10 @@ Dans les environnements de \pkg{nicematrix}, une instruction
\index{width!sous-clé de «rules»}
\index{rules (clé pour un environnement)}
-Les environnements de \pkg{nicematrix} proposent une clé |rules/width| pour
-fixer la largeur (on devrait plutôt dire l'épaisseur) des filets dans
-l'environnement. En fait, cette clé ne fait que fixer la valeur du paramètre
-dimensionnel de LaTeX |\arrayrulewidth|.
+Les environnements de \pkg{nicematrix} proposent une clé
+\Definition{rules/width} pour fixer la largeur (on devrait plutôt dire
+l'épaisseur) des filets dans l'environnement. En fait, cette clé ne fait que
+fixer la valeur du paramètre dimensionnel de LaTeX |\arrayrulewidth|.
\smallskip
On sait que \pkg{colortbl} propose la commande |\arrayrulecolor| pour spécifier
@@ -1331,7 +1337,7 @@ la couleur de ces filets.
Avec \pkg{nicematrix}, il est possible de spécifier une couleur même si
\pkg{colortbl} n'est pas chargé. Par souci de compatibilité, la commande est
nommée également |\arrayrulecolor|. Néanmoins, \pkg{nicematrix} propose aussi
-une clé |rules/color|, disponible dans |\NiceMatrixOptions| ou dans un
+une clé \Definition{rules/color}, disponible dans |\NiceMatrixOptions| ou dans un
environnement individuel, pour fixer la couleur des filets. Cette clé fixe
localement la couleur des filets (alors que la commande |\arrayrulecolor| agit
globalement !). Elle est à privilégier.
@@ -1407,7 +1413,7 @@ p.~\pageref{custom-line}.\footnote{Remarque technique. Si l'utilisateur définit
une commande par-dessus la commande |\Hline|, il doit veiller à ce qu'elle
soit \emph{développable} au sens de TeX (en utilisant
|\NewExpandableDocumentCommand| de LaTeX3, |\newcommand| de LaTeX ou même
- |\def| de TeX). Exemple : |\newcommand{\RedLine}{\Hline[color=red]}|}
+ |\def| de TeX). Exemple : |\NewDocumentCommand{\RedLine}{}{\Hline[color=red]}|}
De même que la commande |\Hline|, le specificateur «\verb+|+» admet entre crochets
des options qui caractérisent le filet à tracer.
@@ -1441,10 +1447,11 @@ c & d \\
\index{vlines!clé pour un environnement}
\medskip
-Les clés |hlines| et |vlines| (qui, bien sûr, tracent des filets horizontaux et
-verticaux) prennent comme valeur une liste de numéros qui sont les numéros des
-filets\footnote{Il est également possible de mettre dans la liste des
- intervalles de numéros de la forme $i$|-|$j$.} à tracer. Si aucune valeur n'est donnée, tous les filets sont tracés.
+Les clés \Definition{hlines} et \Definition{vlines} (qui, bien sûr, tracent des
+filets horizontaux et verticaux) prennent comme valeur une liste de numéros qui
+sont les numéros des filets\footnote{Il est également possible de mettre dans la
+ liste des intervalles de numéros de la forme $i$|-|$j$.} à tracer. Si aucune
+valeur n'est donnée, tous les filets sont tracés.
En fait, pour les environnements avec délimiteurs (comme |{pNiceMatrix}| ou
|{bNiceArray}|), la clé |vlines| ne trace pas les filets extérieurs (ce qui est
@@ -1494,8 +1501,8 @@ z & 0 & 0 & 0 & 0 & 0 \\
\index{hvlines!clé pour un environnement}
\index{hvlines-except-borders}
-La clé |hvlines|, qui ne prend pas de valeur, est la conjonction des clés
-|hlines| et |vlines|.
+La clé \Definition{hvlines}, qui ne prend pas de valeur, est la conjonction des
+clés |hlines| et |vlines|.
\smallskip
\begin{Code}
@@ -1524,10 +1531,10 @@ p.~\pageref{tabular-rounded-corners}.
\medskip
-La clé |hvlines-except-borders| est similaire à la clé |hvlines| mais ne trace
-pas les filets sur les bords horizontaux et verticaux du tableau. Pour un
-exemple d'utilisation de cette clé, voir la partie «Exemple d'utilisation avec
-\pkg{tcolorbox}» p.~\pageref{tcolorbox}.
+La clé \Definition{hvlines-except-borders} est similaire à la clé |hvlines| mais
+ne trace pas les filets sur les bords horizontaux et verticaux du tableau. Pour
+un exemple d'utilisation de cette clé, voir la partie «Exemple d'utilisation
+avec \pkg{tcolorbox}» p.~\pageref{tcolorbox}.
\medskip
@@ -1537,8 +1544,8 @@ exemple d'utilisation de cette clé, voir la partie «Exemple d'utilisation avec
\index{Coins (les --- vides)}
\index{corners (clé d'un environnement)}
-Les quatre coins d'un tableau seront notés |NW|, |SW|, |NE| et |SE| (\emph{north west}, \emph{south west}, \emph{north
- east} et \emph{south east} en anglais).
+Les quatre coins d'un tableau seront notés |NW|, |SW|, |NE| et |SE| (\emph{north
+ west}, \emph{south west}, \emph{north east} et \emph{south east} en anglais).
\smallskip
Pour chacun de ces coins, on appellera \emph{coin vide} (ou tout simplement
@@ -1579,12 +1586,12 @@ A & A & A & A & A & A \\
\end{NiceTabular}
\medskip
-Quand la clé |corners|\footnote{La clé \texttt{corners} dont on parle là
- n'a pas de rapport direct avec la clé \texttt{rounded-corners},
- décrite dans la partie \ref{tabular-rounded-corners},
+Quand la clé \Definition{corners}\footnote{La clé \texttt{corners} dont on parle
+ là n'a pas de rapport direct avec la clé \texttt{rounded-corners}, décrite
+ dans la partie \ref{tabular-rounded-corners},
p.~\pageref{tabular-rounded-corners}.} est utilisée, \pkg{nicematrix} calcule
les coins vides et ces coins sont alors pris en compte par les outils de tracés
-de filets (les filets ne seront pas tracés dans ces coins vides).
+de filets (les filets ne seront pas tracés dans ces coins vides).
\medskip
\begin{Code}[width=11cm]
@@ -1653,9 +1660,9 @@ p.~\pageref{TikzEveryCell}) tient également compte des coins.
\indexcommand{diagbox}
-La commande |\diagbox| (inspirée par l'extension \pkg{diagbox}) permet, quand
-elle est utilisée dans une case, de couper cette case selon une diagonale
-descendante.
+La commande \DefinitionCommande{diagbox} (inspirée par l'extension
+\pkg{diagbox}) permet, quand elle est utilisée dans une case, de couper cette
+case selon une diagonale descendante.
\medskip
\begin{Code}[width=10cm]
@@ -1679,6 +1686,52 @@ c & c & b & a & e
Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
+\medskip
+\begin{Code}[width=10cm]
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\emph{\Block{2-2}{\diagbox{x}{y}}} & & a & b & c \\
+ & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\end{Code}
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\Block{2-2}{\diagbox{x}{y}} & & a & b & c \\
+ & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+
+
+\medskip
+Mais on peut aussi utiliser |\diagbox| uniquement pour le trait diagonal et
+placer les labels comme habituellement.
+
+\medskip
+\begin{Code}[width=10cm]
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\emph{\Block{2-2}{\diagbox{}{}}} & y & a & b & c \\
+x & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\end{Code}
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\Block{2-2}{\diagbox{}{}} & y & a & b & c \\
+x & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+
+
+\medskip
+Il est de toutes manières toujours possible de tracer tous les traits souhaités
+avec TikZ dans le |\CodeAfter| (ou le |\CodeBefore|) en utilisant les nœuds
+PGF/TikZ créés par \pkg{nicematrix} : cf. p.~\pageref{PGF-nodes}.
\subsubsection{Commandes pour filets personnalisés}
\label{custom-line}
@@ -1688,11 +1741,11 @@ Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
\index{custom-line|(}
-Il est possible de définir des commandes et des lettres pour des filets
-personnalisés avec la clé |custom-line|, utilisable dans |\NiceMatrixOptions| ou
-bien dans un environnement. Cette clé prend en argument une liste de paires de
-la forme \textsl{clé=valeur}. Il y a d'abord trois clés pour spécifier les outils
-qui permettront d'utiliser ce nouveau type de filet.
+Il est en fait possible de définir des commandes et des lettres pour des filets
+personnalisés avec la clé \Definition{custom-line}, utilisable dans
+|\NiceMatrixOptions| ou bien dans un environnement. Cette clé prend en argument
+une liste de paires de la forme \textsl{clé=valeur}. Il y a d'abord trois clés
+pour spécifier les outils qui permettront d'utiliser ce nouveau type de filet.
\begin{itemize}
\item la clé \Definition{command} indique le nom (sans la contre-oblique) d'une commande
@@ -1838,9 +1891,10 @@ TikZ.
Par défaut, aucune réservation de place n'est faite pour le filet qui sera tracé
avec TikZ. On peut demander une réservation (horizontale pour un filet vertical
-et verticale pour un filet horizontal) avec la clé |total-width| qui est donc en
-quelque sorte la largeur du filet qui sera tracé (cette largeur n'est \emph{pas}
-calculée à partir des caractéristiques fournies par la clé |tikz|).
+et verticale pour un filet horizontal) avec la clé \Definition{total-width} qui
+est donc en quelque sorte la largeur du filet qui sera tracé (cette largeur
+n'est \emph{pas} calculée à partir des caractéristiques fournies par la clé
+|tikz|).
\bigskip
Voici ce que l'on obtient avec la clé |dotted| de TikZ.
@@ -1898,8 +1952,8 @@ composantes de la matrice par |\Cdots|, |\Vdots|, etc. (voir
p.~\pageref{Cdots}).
\medskip
-L'extension \pkg{nicematrix} prédéfinit en fait les commandes \Definition{hdottedline} et
-\Definition{cdottedline} et la lettre «|:|» pour ces filets en pointillés.\footnote{Néanmoins, l'utilisateur peut écraser ces définitions de
+L'extension \pkg{nicematrix} prédéfinit en fait les commandes \DefinitionCommande{hdottedline} et
+\DefinitionCommande{cdottedline} et la lettre «|:|» pour ces filets en pointillés.\footnote{Néanmoins, l'utilisateur peut écraser ces définitions de
|\hdottedline|, |\cdottedline| et de «|:|» avec |custom-line| s'il le souhaite
(par exemple pour les remplacer par des lignes en tiretés).}
@@ -1962,9 +2016,6 @@ $\begin{pNiceArray}{cccc:c}
\end{itemize}
-
-
-
\index{custom-line|)}
\index{Filets@\textbf{Filets dans les tableaux}|)}
@@ -2025,7 +2076,7 @@ filets. Cette manière de faire est plus dans l'esprit du «modèle du peintre»
formats PostScript et \textsc{pdf} et convient donc mieux aux lecteurs de
\textsc{pdf}. L'inconvénient est qu'elle nécessite plusieurs compilations
successives.\footnote{Si vous utilisez Overleaf, Overleaf effectue
- automatiquement un nombre de compilations suffisant.}
+ automatiquement un nombre de compilations suffisant (en utilisant |latexmk|).}
\medskip
L'extension \pkg{nicematrix} fournit une clé |code-before| pour du code qui sera
@@ -2045,9 +2096,9 @@ peut placer le contenu de ce |code-before| entre les mots-clés |\CodeBefore| et
\smallskip
L'argument optionnel entre crochets est une liste de couples \textsl{clé=valeur}
-qui seront présentées au fur et à mesure. \footnote{Les clés disponibles sont
+qui seront présentées au fur et à mesure (les clés disponibles sont
\texttt{create-cell-nodes}, \texttt{sub-matrix} (et ses sous-clés) et
- \texttt{delimiters/color}.}
+ \texttt{delimiters/color}).
\smallskip
De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
@@ -2056,6 +2107,9 @@ De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
|\CodeBefore|, des nœuds PGF-TikZ de la forme \verb+(i-|j)+ correspondant à la
position des filets éventuels sont également accessibles : cf.
p.~\pageref{nodes-i}.}
+
+Les noms de certaines de ces commandes sont inspirés des noms des commandes de \pkg{colortbl}.
+
\label{code-before}
\index{cellcolor@\texttt{\textbackslash cellcolor}!commande du
\texttt{\textbackslash CodeBefore}}
@@ -2072,7 +2126,7 @@ De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
\index{arraycolor@\texttt{\textbackslash arraycolor} (commande du \texttt{\textbackslash
CodeBefore)}}
-Les noms de certaines de ces commandes sont inspirés des noms des commandes de \pkg{colortbl}.
+
\medskip
Ces commandes ne colorient pas les cases qui se trouvent dans les «coins» si la
@@ -2607,17 +2661,20 @@ On a utilisé le type de colonne |S| de \pkg{siunitx} (qu'il faut avoir chargé)
On peut accéder aux outils de coloriage précédents avec une syntaxe proche de
celle proposée par \pkg{colortbl} (même si \pkg{colortbl} n'est pas chargé). On
-doit pour cela utiliser la clé |color-inside|\footnote{Il existe un alias pour
- cette clé : \texttt{colortbl-like}.} dans l'environnement
+doit pour cela utiliser la clé \Definition{color-inside}\footnote{Il existe un
+ alias pour cette clé : \texttt{colortbl-like}.} dans l'environnement
concerné.\footnote{Pour le moment, cette clé n'est \emph{pas} disponible dans
|\NiceMatrixOptions|.}
On a alors accès aux commandes suivantes (les trois premières sont inspirées par
\pkg{colortbl} mais sont indépendantes de \pkg{colortbl}) :
\begin{itemize}
-\item \DefinitionCommande{cellcolor} qui colorie la case courante\footnote{Néanmoins, cette
+\item \DefinitionCommande{cellcolor} qui colorie la case courante\footnote{Cette
commande |\cellcolor| supprimera les espaces qui la suivent, ce que ne fait
- pas la commande |\cellcolor| de \pkg{colortbl}.} ;
+ pas la commande |\cellcolor| de \pkg{colortbl}. De plus, si on définit une
+ fonction au-dessus de |\cellcolor|, il faudra une fonction protégée au sens de
+TeX (alors que si c'était la commande |\cellcolor| de \pkg{colortbl}, il
+faudrait une fonction \emph{fully expandable}).} ;
\item \DefinitionCommande{rowcolor} à utiliser dans une case et qui colorie le
reste de la rangée;\footnote{Si vous souhaitez une commande pour colorier les
$n$~rangées suivantes, considérez la commande |\RowStyle| et sa clé
@@ -2730,8 +2787,9 @@ l'action d'une commande de coloriage générale.
\index{cell-space-limits}
-La commande |\RowStyle| prend en argument des instructions de mise en forme qui
-seront appliquées à chacune des cases restantes sur la rangée en cours.
+La commande \DefinitionCommande{RowStyle} prend en argument des instructions de
+mise en forme qui seront appliquées à chacune des cases restantes sur la rangée
+en cours.
\medskip
Elle prend aussi en premier argument optionnel, entre crochets, une liste de
@@ -2814,7 +2872,7 @@ Rio & Tokyo & Oslo
Dans les environnements de \pkg{nicematrix}, il est aussi possible de fixer la
largeur \emph{minimale} de toutes les colonnes (à l'exception des éventuelles
colonnes extérieures: cf. p.~\pageref{exterior}) directement avec l'option
-|columns-width|.
+\Definition{columns-width}.
\medskip
\begin{Code}[width=10cm]
@@ -2937,13 +2995,13 @@ L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à
celles proposées par l'environnement |{tabularx}| de l'extension éponyme.
La valeur requise par la largeur du tableau peut être passée en argument de la
-clé |width| (dans |{NiceTabular}| ou dans |\NiceMatrixOptions|). La valeur
-initiale de ce paramètre est |\linewidth| (et non |\textwidth|).
+clé \Definition{width} (dans |{NiceTabular}| ou dans |\NiceMatrixOptions|). La
+valeur initiale de ce paramètre est |\linewidth| (et non |\textwidth|).
Pour se rapprocher davantage de l'environnement |{tabularx}|, \pkg{nicematrix}
-propose aussi un environnement |{NiceTabularX}| avec une syntaxe similaire à
-celle de |{tabularx}|, c'est-à-dire que la largeur voulue pour le tableau est
-spécifiée en premier argument (obligatoire).
+propose aussi un environnement \Definition{\{NiceTabularX\}} avec une syntaxe
+similaire à celle de |{tabularx}|, c'est-à-dire que la largeur voulue pour le
+tableau est spécifiée en premier argument (obligatoire).
Comme avec les extensions \pkg{tabu}\footnote{L'extension \pkg{tabu} est
@@ -2958,7 +3016,9 @@ entier positif comme argument du spécificateur |X|. Par exemple, une colonne
\pkg{nicematrix}. Si une telle valeur est utilisée, une erreur sera levée.}
\item On peut spécifier l'alignement horizontal avec une des lettres |l|, |c| et
|r| (qui insèrent respectivement |\raggedright|, |\centering| et |\raggedleft|
-suivi de |\arraybackslash|).
+suivi de |\arraybackslash|).\footnote{En fait, quand \pkg{ragged2e} est chargée,
+ce sont les commandes |\RaggedRight|, |\Centering| et |\RaggedLeft| de
+\pkg{ragged2e} qui sont utilisées, pour un meilleur résultat.}
\item On peut spécifier l'alignement vertical avec l'une des lettres |t| (alias
|p|), |m| et |b| (qui construisent respectivement des colonnes de types |p|, |m|
et |b|). La valeur par défaut est |t|.
@@ -3087,8 +3147,9 @@ commence par une instruction |\color|.
\index{last-col}
Les environnements de \pkg{nicematrix} permettent de composer des rangées et des
-colonnes «extérieures» grâce aux options |first-row|, |last-row|, |first-col| et
-|last-col|. C'est particulièrement intéressant pour les matrices (mathématiques).
+colonnes «extérieures» grâce aux options \Definition{first-row},
+\Definition{last-row}, \Definition{first-col} et \Definition{last-col}. C'est
+particulièrement intéressant pour les matrices (mathématiques).
\label{exterior}
Si elle est présente, la «première rangée» (extérieure) est numérotée par $0$
@@ -3131,8 +3192,9 @@ première colonne et une colonne |l| pour la dernière.\footnote{Si on souhaite
considérer la commande |\SubMatrix| disponible dans le |\CodeAfter| et le
|\CodeBefore| (cf. p.~\pageref{sub-matrix}).}
-\item On peut se demander comment \pkg{nicematrix} détermine le nombre de rangées et de colonnes nécessaires à la
-composition de la «dernière rangée» et de la «dernière colonne».
+\item On peut se demander comment \pkg{nicematrix} détermine le nombre de
+rangées et de colonnes nécessaires à la composition de la «dernière rangée» et
+de la «dernière colonne».
\begin{itemize}
\item Dans le cas d'un environnement avec préambule, comme |{NiceTabular}| ou
@@ -3162,10 +3224,12 @@ C'est ce que nous ferons dans la suite.
\index{code-for-first-col}
\index{code-for-last-row}
\index{code-for-last-col}
+
On peut contrôler l'apparence de ces rangées et colonnes avec les options
-|code-for-first-row|, |code-for-last-row|, |code-for-first-col| et
-|code-for-last-col|. Ces options sont des listes de tokens qui seront insérées
-au début de chaque case de la rangée ou de la colonne considérée.
+\Definition{code-for-first-row}, \Definition{code-for-last-row},
+\Definition{code-for-first-col} et \Definition{code-for-last-col}. Ces options
+sont des listes de tokens qui seront insérées au début de chaque case de la
+rangée ou de la colonne considérée.
\begin{Code}
\NiceMatrixOptions{\emph{code-for-first-row} = \color{red},
@@ -3241,7 +3305,9 @@ p.~\pageref{sub-matrix}).
\index{xdots (et ses sous-clés)}
À l'intérieur des environnements de l'extension \pkg{nicematrix}, de nouvelles
-commandes sont définies : |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots| et |\Iddots|.
+commandes sont définies : \DefinitionCommande{Ldots},
+\DefinitionCommande{Cdots}, \DefinitionCommande{Vdots},
+\DefinitionCommande{Ddots} et \DefinitionCommande{Iddots}.
Ces commandes sont conçues pour être utilisées à la place de |\dots|, |\cdots|,
|\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie par
\pkg{nicematrix}, est une variante de |\ddots| avec les points allant vers le
@@ -3430,8 +3496,8 @@ x & \Ldots & \Ldots & \Ldots & \Ldots & x
\medskip
On pourrait toutefois préférer la géométrie de la première matrice $A$ et
vouloir avoir la même géométrie avec une ligne en pointillés continue dans la
-seconde rangée. C'est possible en utilisant l'option |nullify-dots| (et une
-seule instruction |\Ldots| suffit).\par\nobreak
+seconde rangée. C'est possible en utilisant l'option \Definition{nullify-dots}
+(et une seule instruction |\Ldots| suffit).\par\nobreak
\medskip
\begin{Code}[width=10cm]
@@ -3450,8 +3516,8 @@ L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes)
horizontalement mais aussi verticalement.
\medskip
-Attention : la clé |nullify-dots| a un nom qui peut prêter à confusion ; elle
-n'implique pas que la ligne en pointillés ne sera pas tracée !
+\textbf{Attention} : la clé |nullify-dots| a un nom qui peut prêter à confusion ;
+elle n'implique pas que la ligne en pointillés ne sera pas tracée !
\subsection{Les commandes \textbackslash Hdotsfor et \textbackslash Vdotsfor}
@@ -3462,8 +3528,8 @@ n'implique pas que la ligne en pointillés ne sera pas tracée !
Certaines personnes utilisent habituellement la commande |\hdotsfor| de
l'extension \pkg{amsmath} pour tracer des lignes en pointillés horizontales dans
une matrice. Dans les environnements de \pkg{nicematrix}, il convient d'utiliser
-|\Hdotsfor| à la place pour avoir les lignes en pointillés similaires à toutes
-celles tracées par l'extension \pkg{nicematrix}.
+\DefinitionCommande{Hdotsfor} à la place pour avoir les lignes en pointillés
+similaires à toutes celles tracées par l'extension \pkg{nicematrix}.
Comme avec les autres commandes de \pkg{nicematrix} (comme |\Cdots|, |\Ldots|,
|\Vdots|, etc.), la ligne en pointillés tracée par |\Hdotsfor| s'étend jusqu'au
@@ -3516,8 +3582,9 @@ est chargée (mais vous risquez d'avoir des problèmes si vous utilisez
les outils de nicematrix pour le coloriage des tableaux.
\medskip
-L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à
-|\Hdotsfor| mais traçant des lignes verticales.
+L'extension \pkg{nicematrix} propose aussi une commande
+\DefinitionCommande{Vdotsfor} similaire à |\Hdotsfor| mais traçant des lignes
+verticales.
\medskip
L'exemple suivant utilise à la fois |\Hdotsfor| et |\Vdotsfor|:
@@ -3574,7 +3641,7 @@ points de suspension, on peut souhaiter utiliser les lignes pointillées de
\smallskip
\begin{itemize}
-\item L'option |renew-dots|\par\nobreak
+\item L'option \Definition{renew-dots}\par\nobreak
Avec cette option, les commandes |\ldots|, |\cdots|, |\vdots|, |\ddots|,
|\iddots|\footnotemark[\thefniddots] et |\hdotsfor| sont redéfinies dans les
@@ -3583,15 +3650,15 @@ environnements de \pkg{nicematrix} et agissent alors comme |\Ldots|, |\Cdots|,
suspension «automatiques» de |amsmath|) est aussi redéfinie et se comporte comme
|\Ldots|.
-\item L'option |renew-matrix|\par\nobreak
+\item L'option \Definition{renew-matrix}\par\nobreak
Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme
|{NiceMatrix}| et il en est de même pour les cinq variantes.
\end{itemize}
\medskip
-Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code classique donne directement
-le résultat fourni par \pkg{nicematrix}.\par\nobreak
+Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code
+classique donne directement le résultat fourni par \pkg{nicematrix}.\par\nobreak
\medskip
\begin{scope}
@@ -3646,7 +3713,8 @@ $\begin{bNiceMatrix}
\bigskip
-Avec la clé |xdots/horizontal-labels|, les labels restent horizontaux.\par\nobreak
+Avec la clé \Definition{xdots/horizontal-labels}, les labels restent
+horizontaux.\par\nobreak
\smallskip
\begin{Code}[width=10cm]
@@ -3713,9 +3781,10 @@ par |_|, |^| et |:|) restent horizontaux.
\medskip
L'option \Definition{xdots/color} indique bien entendu la couleur de la ligne
-tracée. On remarquera néanmoins que les lignes tracées dans les rangées et
-colonnes extérieures (décrites plus loin) bénéficient d'un régime spécial : cf.
-p.~\pageref{exterior}.
+tracée. On peut définir une couleur «à la volée»
+(ex. : |xdots/color = { [RGB]{204,204,255} }|). On remarquera que les
+lignes tracées dans les rangées et colonnes extérieures (décrites plus loin)
+bénéficient d'un régime spécial : cf. p.~\pageref{exterior}.
\medskip
L'option \Definition{radius} correspond au rayon des points circulaires qui sont
@@ -3750,7 +3819,7 @@ Il faut savoir que, par défaut, les lignes de TikZ tracées avec le paramètre
ligne de points ronds doit être construite explicitement point par point. Voir
néanmoins à l'adresse suivante pour un moyen d'avoir un style de pointillés
ronds avec TikZ :\newline \small
-\url{https://tex.stackexchange.com/questions/52848/tikz-line-with-large-dots}}
+\url{https://tex.stackexchange.com/questions/52848}}
\begin{Code}[width=9cm]
@@ -3939,19 +4008,20 @@ p.~\pageref{sub-matrix}.
\label{code-after}
On a présenté p.~\pageref{code-before} la clé |code-before|. Il existe en fait
-une clé similaire |code-after| qui peut être utilisée pour indiquer du code qui
-sera exécuté \emph{après} la construction du tableau.
+une clé similaire \Definition{code-after} qui peut être utilisée pour indiquer
+du code qui sera exécuté \emph{après} la construction du tableau.
\medskip
\index{sub-matrix (clé de \texttt{\textbackslash CodeAfter}, avec sous-clés)}
Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on
peut spécifier les instructions du |code-after| à la fin de l'environnement,
-après le mot-clé |\CodeAfter|. Bien que ce soit un mot-clé, |\CodeAfter| accepte
-quand même un argument optionnel (entre crochets).\footnote{Les clés autorisées
- dans cet argument optionnel sont les suivantes : |delimiters/color|, |rules|
- et ses sous-clés, |sub-matrix| (en lien avec la commande
- |\SubMatrix|) et ses sous-clés et |xdots| (pour la commande |\line|) et ses
- sous-clés.}
+après le mot-clé \DefinitionCommande{CodeAfter} (la clé |code-after| reste bien
+sûr obligatoire dans |\AutoNiceMatrix| et les commandes similaires). Bien que ce
+soit un mot-clé, |\CodeAfter| accepte quand même un argument optionnel (entre
+crochets).\footnote{Les clés autorisées dans cet argument optionnel sont les
+ suivantes : |delimiters/color|, |rules| et ses sous-clés, |sub-matrix| (en
+ lien avec la commande |\SubMatrix|) et ses sous-clés et |xdots| (pour la
+ commande |\line|) et ses sous-clés.}
\medskip
@@ -3964,14 +4034,17 @@ Par ailleurs, plusieurs commandes spéciales sont disponibles dans le
|\CodeAfter| : |\line|, |\SubMatrix|, |\OverBrace|, |\UnderBrace| et
|\TikzEveryCell|. On va maintenant détailler ces commandes.
+\medskip
+On veillera à éviter les espaces parasites dans ce |\CodeAfter|.\footnote{Voir
+ \url{https://tex.stackexchange.com/questions/52848}}
\subsection{La commande \textbackslash line dans le \textbackslash CodeAfter}
\label{line-in-code-after}
\index{line@\texttt{\textbackslash line} (commande du \texttt{\textbackslash CodeAfter})}
-La commande |\line| permet de tracer directement des lignes en pointillés entre
-les cases. Elle prend deux arguments correspondant aux cases ou blocs à relier.
-Chacun de ces deux arguments peut être :
+La commande \DefinitionCommande{line} permet de tracer directement des lignes en
+pointillés entre les cases. Elle prend deux arguments correspondant aux cases ou
+blocs à relier. Chacun de ces deux arguments peut être :
\begin{itemize}
\item une spécification de case de la forme $i$-$j$ où $i$ est le numéro de
ligne et $j$ est le numéro de colonne ;
@@ -4040,9 +4113,9 @@ autres lignes diagonales (par défaut, les lignes tracées par |\Ddots| sont
\texttt{\textbackslash CodeAfter}\newline et du
\texttt{\textbackslash CodeBefore})|textbf}
-La commande |\SubMatrix| permet de positionner des délimiteurs sur une partie du
-tableau, partie qui est considérée comme une sous-matrice. La commande
-|\SubMatrix| prend cinq arguments :
+La commande \DefinitionCommande{SubMatrix} permet de positionner des délimiteurs
+sur une partie du tableau, partie qui est considérée comme une sous-matrice. La
+commande |\SubMatrix| prend cinq arguments :
\begin{itemize}
\item le premier argument est le délimiteur gauche qui peut être n'importe
quel délimiteur extensible de LaTeX : |(|, |[|, |\{|, |\langle|, |\lgroup|,
@@ -4287,10 +4360,10 @@ Part A & the first part \\
\emph{Attention} : La fonctionnalité suivante est fragile et ne fonctionne pas
avec |latex|--|dvips|--|ps2pdf|.\par\nobreak
-La clé |code| de la commande |\SubMatrix| permet d'insérer du code après la
-création de la matrice. Elle a surtout pour vocation d'être utilisée pour
-insérer des instructions TikZ, sachant que, dans les instructions TikZ insérées
-dans cette clé, les nœuds de la forme \verb+i-|j+ sont interprétés avec
+La clé \Definition{code} de la commande |\SubMatrix| permet d'insérer du code
+après la création de la matrice. Elle a surtout pour vocation d'être utilisée
+pour insérer des instructions TikZ, sachant que, dans les instructions TikZ
+insérées dans cette clé, les nœuds de la forme \verb+i-|j+ sont interprétés avec
|i| et |j| étant des numéros de ligne et colonne \emph{relatifs à la
sous-matrice}.\footnote{Attention : la syntaxe \texttt{j\string|-i} n'est
\emph{pas} autorisée.}
@@ -4343,8 +4416,9 @@ Comme on le voit, le tracé effectué par la commande |\MyDraw| est \emph{relati
\texttt{\textbackslash CodeBefore})}
-Les commandes |\OverBrace| and |\UnderBrace| permettent de placer des accolades
-horizontales sur une partie du tableau. Ces commandes prennent trois arguments :
+Les commandes \DefinitionCommande{OverBrace} and \DefinitionCommande{UnderBrace}
+permettent de placer des accolades horizontales sur une partie du tableau. Ces
+commandes prennent trois arguments :
\begin{itemize}
\item le premier argument est le coin supérieur gauche du rectangle de cases
impliquées dans l'accolade avec la syntaxe habituelle $i$|-|$j$ où $i$ est le
@@ -4355,6 +4429,9 @@ numéro de rangée et $j$ le numéro de colonne ;
\item le troisième argument est le «label» de l'accolade qui sera placé par
\pkg{nicematrix} (avec \textsc{pgf}) au-dessus de l'accolade (pour la commande
|\OverBrace|) ou au-dessous (pour |\UnderBrace|).
+
+\colorbox{yellow!50}{\textbf{Nouveau 2.9}}\enskip Il est possible de mettre des
+commandes |\\| dans ce dernier argument pour fomater le label sur plusieurs lignes.
\end{itemize}
\bigskip
@@ -4392,11 +4469,11 @@ Les commandes |\OverBrace| et |\UnderBrace| acceptent en fait un premier
argument optionnel (entre crochets) pour une liste de couples
\textsl{clé=valeur}. Les clés disponibles sont les suivantes :
\begin{itemize}
-\item \Definition{left-shorten} et \Definition{right-shorten} qui ne prennent pas de valeur ; quand
-|left-shorten| est utilisée, l'abscisse de l'extrémité de gauche de l'accolade
-est calculée à partir du contenu du sous-tableau concerné alors que, sinon,
-c'est la position du filet vertical éventuel qui est utilisée (de même pour
-|right-shorten|) ;
+\item \Definition{left-shorten} et \Definition{right-shorten} qui ne prennent
+pas de valeur ; quand |left-shorten| est utilisée, l'abscisse de l'extrémité de
+gauche de l'accolade est calculée à partir du contenu du sous-tableau concerné
+alors que, sinon, c'est la position du filet vertical éventuel qui est utilisée
+(de même pour |right-shorten|) ;
\item \Definition{shorten}, qui est la conjonction des clés |left-shorten| et |right-shorten| ;
@@ -4426,16 +4503,16 @@ $\begin{pNiceMatrix}
\subsection{La commande \textbackslash TikzEveryCell dans le \textbackslash CodeAfter}
-\index{SubMatrix@\texttt{\textbackslash TikzEveryCell} (commande du
+\index{tikzeverycell@\texttt{\textbackslash TikzEveryCell} (commande du
\texttt{\textbackslash CodeAfter}\newline et du
\texttt{\textbackslash CodeBefore})|textbf}
\label{TikzEveryCell}
\index{empty (clé de \texttt{\textbackslash TikzEveryCell})}
\index{non empty (clé de \texttt{\textbackslash TikzEveryCell})}
-La commande |\TikzEveryCell| exécute avec TikZ le chemin rectangulaire qui
-correspond à chaque case du tableau, avec comme paramètres TikZ l'argument de
-|\TikzEveryCell|. Cet argument doit être une liste de couples
+La commande \DefinitionCommande{TikzEveryCell} exécute avec TikZ le chemin
+rectangulaire qui correspond à chaque case du tableau, avec comme paramètres
+TikZ l'argument de |\TikzEveryCell|. Cet argument doit être une liste de couples
\textsl{clé=valeur} applicables à un chemin TikZ. En fait, cette commande
s'applique à chaque case du tableau, exceptées celles situées dans les rangées
et colonnes extérieures (cf.~p.~\pageref{exterior}) et celles situées dans les
@@ -4446,11 +4523,11 @@ blocs.
\medskip
En fait, dans la liste des clés passée en argument on peut mettre une clé
-|offset|. Cette clé n'est pas fournie par TikZ mais par \pkg{nicematrix}. Elle
-réduit le rectangle correspondant au bloc par une marge (horizontalement et
-verticalement) égale à la valeur (passée à |offset|). C'est ce rectangle réduit
-qui sera le chemin exécuté par TikZ avec comme options les autres clés de
-l'argument de |\TikzEveryCell|.
+\Definition{offset}. Cette clé n'est pas fournie par TikZ mais par
+\pkg{nicematrix}. Elle réduit le rectangle correspondant au bloc par une marge
+(horizontalement et verticalement) égale à la valeur (passée à |offset|). C'est
+ce rectangle réduit qui sera le chemin exécuté par TikZ avec comme options les
+autres clés de l'argument de |\TikzEveryCell|.
\medskip
@@ -4481,14 +4558,45 @@ l'argument de |\TikzEveryCell|.
\bigskip
-La commande |\TikzEveryCell| possède deux clés :
+La commande |\TikzEveryCell| possède deux clés, utilisables en argument
+optionnel, entre crochets.
\begin{itemize}
\item avec la clé \Definition{empty}, la commande ne s'applique qu'aux cases
-vides ;
+vides (les cases considérées comme vides sont décrites à la
+partie~\ref{empty-cells}, p.~\pageref{empty-cells}) ;
\item avec la clé \Definition{non-empty}, la commande ne s'applique qu'aux
cases non vides.
\end{itemize}
+\medskip
+\begin{Code}[width=9cm]
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \emph{\TikzEveryCell[empty]{fill=gray,draw}}
+\end{NiceTabular}
+\end{Code}
+\begin{scope}
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \TikzEveryCell[empty]{fill=gray,draw}
+\end{NiceTabular}
+\end{scope}
+
+
\medskip
La commande |\TikzEveryCell| est en fait aussi disponible dans le |\CodeBefore|.
@@ -4514,9 +4622,10 @@ La commande |\TikzEveryCell| est en fait aussi disponible dans le |\CodeBefore|.
\index{Legende@\textbf{Légende des tableaux}}
-L'environnement |{NiceTabular}| propose des clés |caption|, |short-caption| et
-|label| à utiliser lorsque le tableau est inséré dans un environnment flottant
-(typiquement un environnement |{table}|).
+L'environnement |{NiceTabular}| propose des clés \Definition{caption},
+\Definition{short-caption} et \Definition{label} à utiliser lorsque le tableau
+est inséré dans un environnment flottant (typiquement un environnement
+|{table}|).
\smallskip
L'intérêt d'utiliser cette clé |caption| plutôt que la commande classique
@@ -4528,7 +4637,7 @@ d'avoir recours à l'extension \pkg{threeparttable} ou l'extension
\smallskip
Par défaut, la légende est placée au-dessous du tableau. Pour avoir la légende
-placée au-dessus, il convient d'utiliser la clé |caption-above| dans
+placée au-dessus, il convient d'utiliser la clé \Definition{caption-above} dans
|\NiceMatrixOptions|.
\smallskip
@@ -4581,12 +4690,13 @@ l'extension \pkg{xcolor} et elle n'est pas parfaitement compatible avec
\label{tabularnote}
\index{tabularnote@\texttt{\textbackslash tabularnote}}
-L'extension \pkg{nicematrix} propose aussi une commande |\tabularnote| qui
-permet de spécifier des notes qui seront composées à la fin du tableau avec une
-longueur de ligne égale à la largeur du tableau (hors éventuelles colonnes
-extérieures spécifiées par |first-col| et |last-col|: cf.~\ref{exterior},
-p.~\pageref{exterior}). Sans surprise, cette commande n'est disponible que dans
-|{NiceTabular}|, |{NiceTabular*}| et |{NiceTabularX}|.
+L'extension \pkg{nicematrix} propose aussi une commande
+\DefinitionCommande{tabularnote} qui permet de spécifier des notes qui seront
+composées à la fin du tableau avec une longueur de ligne égale à la largeur du
+tableau (hors éventuelles colonnes extérieures spécifiées par |first-col| et
+|last-col|: cf.~\ref{exterior}, p.~\pageref{exterior}). Sans surprise, cette
+commande n'est disponible que dans |{NiceTabular}|, |{NiceTabular*}| et
+|{NiceTabularX}|.
\index{enumitem@\pkg{enumitem} (extension requise pour utiliser\newline \texttt{\textbackslash tabularnote})}
@@ -4646,12 +4756,12 @@ case (sans aucun espace après) et que le mode d'alignement de la colonne est |c
ou~|r|, l'appel de note est composé en débordement vers la droite (cela peut
permettre de mieux conserver l'alignement des contenus d'une colonne).
-\item Si la clé |notes/para| est utilisée, les notes sont composées à la fin du
-tableau en un seul paragraphe.
+\item Si la clé \Definition{notes/para} est utilisée, les notes sont composées à
+la fin du tableau en un seul paragraphe.
\item \index{tabularnote (clé de \texttt{\{NiceTabular\}})}
-Il existe une clé |tabularnote| qui permet d'insérer du texte dans la zone
-des notes avant les notes numérotées.
+Il existe une clé \Definition{tabularnote} qui permet d'insérer du texte dans la
+zone des notes avant les notes numérotées.
\index{tabularnote-env@\texttt{\{TabularNote\}}}
\index{notes (clé pour paramétrer les notes de\newline tableau)}
@@ -4661,15 +4771,15 @@ l'environnement |{TabularNote}| à la fin de l'environnement |{NiceTabular}|
(mais \emph{avant} l'éventuel |\CodeAfter|).
\item Si l'extension \pkg{booktabs} a été chargée (avant ou après
-\pkg{nicematrix}), la clé |notes/bottomrule| permet de faire tracer un
-|\bottomrule| de \pkg{booktabs} \emph{après} les notes.
+\pkg{nicematrix}), la clé \Definition{notes/bottomrule} permet de faire tracer
+un |\bottomrule| de \pkg{booktabs} \emph{après} les notes.
\item Lorsque plusieurs commandes |\tabularnote| sont utilisées avec le même
argument, une seule note est insérée en fin de tableau (mais tous les labels
sont marqués). Il est possible de désactiver cette fonctionnalité avec la clé
|notes/detect-duplicates|.\footnote{Pour des raisons techniques, il n'est pas
autorisé de mettre plusieurs |\tabularnote| avec exactement le même argument
- dans la légende.}
+ dans la légende. Ce n'est pas vraiment contraignant.}
\item Il est possible de référencer une note de tableau (avec la commande
|\label| placée après le |\tabularnote|).
@@ -4800,14 +4910,14 @@ paires \textsl{clé=valeur} où le nom des clés n'a plus à être préfixé par
On détaille maintenant ces clés.
\begin{itemize}[itemsep=\medskipamount]
-\item La clé |notes/para| demande la composition des notes en fin de tableau en un seul
-paragraphe.
+\item La clé \Definition{notes/para} demande la composition des notes en fin de
+tableau en un seul paragraphe.
Valeur initiale : |false|
Cette clé est également accessible dans un environnement individuel.
-\item La clé |notes/bottomrule| permet de faire tracer un |\bottomrule| de \pkg{booktabs}
+\item La clé \Definition{notes/bottomrule} permet de faire tracer un |\bottomrule| de \pkg{booktabs}
\emph{après} les notes. Ce trait n'est tracé que s'il y a effectivement des
notes dans le tableau. L'extension \pkg{booktabs} doit avoir été chargée (avant
ou après l'extension \pkg{nicematrix}). Dans le cas contraire, une erreur est générée.
@@ -4816,22 +4926,22 @@ Valeur initiale : |false|
Cette clé est également accessible dans un environnement individuel.
-\item La clé |notes/style| est une commande dont l'argument est spécifié par
-|#1| et qui indique le style de numérotation des notes. C'est ce style qui est
-utilisé par |\ref| pour faire référence à une note de tableau pour laquelle on a
-utilisé un |\label|. Ce sont les labels mis en forme avec ce style qui sont
-séparés par des virgules quand on utilise plusieurs commandes |\tabularnote|
-successivement. Le marqueur |#1| est censé correspondre à un nom de compteur
-LaTeX.
+\item La clé \Definition{notes/style} est une commande dont l'argument est
+spécifié par |#1| et qui indique le style de numérotation des notes. C'est ce
+style qui est utilisé par |\ref| pour faire référence à une note de tableau pour
+laquelle on a utilisé un |\label|. Ce sont les labels mis en forme avec ce style
+qui sont séparés par des virgules quand on utilise plusieurs commandes
+|\tabularnote| successivement. Le marqueur |#1| est censé correspondre à un nom
+de compteur LaTeX.
Valeur initiale : |\textit{\alph{#1}}|
Une autre valeur possible pourrait être tout simplement |\arabic{#1}|
-\item La clé |notes/label-in-tabular| est une commande dont l'argument est
-spécifié par |#1| et qui sert au formatage de l'appel de note dans le tableau.
-En interne, le numéro de note a déjà été formaté par |notes/style| avant d'être
-passé en argument à cette commande.
+\item La clé \Definition{notes/label-in-tabular} est une commande dont
+l'argument est spécifié par |#1| et qui sert au formatage de l'appel de note
+dans le tableau. En interne, le numéro de note a déjà été formaté par
+|notes/style| avant d'être passé en argument à cette commande.
Valeur initiale : |\textsuperscript{#1}|
@@ -4843,7 +4953,7 @@ avant l'appel de note. On peut faire ce réglage de la manière suivante :
\end{Code}
-\item La clé |notes/label-in-list| est une commande dont l'argument est
+\item La clé \Definition{notes/label-in-list} est une commande dont l'argument est
spécifié par |#1| et qui sert au formatage du numéro de note dans la liste des
notes en fin de tableau. En interne, le numéro de note a déjà été formaté par
|notes/style| avant d'être passé en argument à cette commande.
@@ -4874,13 +4984,13 @@ d'avoir les notes calées à gauche, ce qui est plaisant si on compose des
tableaux dans l'esprit de \pkg{booktabs} (voir par exemple la table~\ref{t:tabularnote}, p.~\pageref{t:tabularnote}).
\medskip
-La clé |notes/enumitem-keys| fournie par \pkg{nicematrix} permet de modifier ce
-type de liste de \pkg{enumitem} (en utilisant en interne la commande |\setlist*|
-de \pkg{enumitem}).
+La clé \Definition{notes/enumitem-keys} fournie par \pkg{nicematrix} permet de
+modifier ce type de liste de \pkg{enumitem} (en utilisant en interne la commande
+|\setlist*| de \pkg{enumitem}).
-\item La clé |notes/enumitem-keys-para| est similaire à la précédente mais elle
-est utilisée pour le type de liste qui sera utilisé quand l'option |para| est
+\item La clé \Definition{notes/enumitem-keys-para} est similaire à la précédente
+mais elle est utilisée pour le type de liste qui sera utilisé quand l'option |para| est
choisie. Bien entendu, quand cette option |para| est active, c'est une liste de
type |inline| (suivant le vocabulaire de \pkg{enumitem}) qui est utilisée et les
paires \textsl{clé=valeur} doivent donc correspondre à une telle liste de type
@@ -4891,8 +5001,8 @@ Initialement, le style de liste utilisé est défini par :\quad
|afterlabel = \nobreak, itemjoin = \quad|
-\item La clé |notes/code-before| est une liste de tokens qui seront insérés
-avant la composition de la liste de notes.
+\item La clé \Definition{notes/code-before} est une liste de tokens qui seront
+insérés avant la composition de la liste de notes.
Valeur initiale : \textsl{vide}
@@ -4904,7 +5014,7 @@ Si on souhaite, par exemple, que les notes soient composées en gris et en
On peut aussi mettre dans cette clé |\raggedright| ou |\RaggedRight| (cette
dernière est une commande de \pkg{ragged2e}).
-\item La clé |notes/detect-duplicates| active la détection des
+\item La clé \Definition{notes/detect-duplicates} active la détection des
commandes |\tabularnote| avec le même argument.
Valeur initiale : |true|
@@ -4951,7 +5061,7 @@ la clé |corners| (qui sert à spécifier les «coins vides») décrite à la
partie~\ref{corners}, p.~\pageref{corners}.
\smallskip
-La clé |rounded-corners| spécifie que le tableau ou la matrice devra avoir des
+La clé \Definition{rounded-corners} spécifie que le tableau ou la matrice devra avoir des
coins arrondis avec un rayon égal à la valeur de cette clé (la valeur par défaut est
4~pt\footnote{Cette valeur est la valeur par défaut des «\texttt{rounded
corners}» de PGF/Tikz.}). Plus précisément, cette clé a deux effets que l'on
@@ -5000,8 +5110,8 @@ Cette clé est disponible dans tous les environnements et commandes de
\texttt{\textbackslash CodeAfter}\newline et du
\texttt{\textbackslash CodeBefore})}
-La commande |\ShowCellNames|, utilisable dans le |\CodeBefore| et le
-|\CodeAfter| affiche le nom (sous la forme $i$-$j$) de chaque case. Quand elle
+La commande \DefinitionCommande{ShowCellNames}, utilisable dans le |\CodeBefore|
+et le |\CodeAfter| affiche le nom (sous la forme $i$-$j$) de chaque case. Quand elle
est utilisée dans le |\CodeAfter|, cette commande applique un rectangle blanc
semi-transparent pour estomper le tableau (attention : certains lecteurs de
\textsc{pdf} ne prennent pas en charge la transparence).
@@ -5030,8 +5140,9 @@ semi-transparent pour estomper le tableau (attention : certains lecteurs de
\index{S (les colonnes S de \pkg{siunitx})}
\index{siunitx@\pkg{siunitx} (extension)}
-Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes
-de type |S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
+Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il
+est possible d'utiliser les colonnes de type |S| de \pkg{siunitx} dans les
+environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
aucune macro privée de \pkg{siunitx}.
\medskip
@@ -5065,10 +5176,11 @@ charge par \pkg{nicematrix}.
Les environnements sans préambule (|{NiceMatrix}|, |{pNiceMatrix}|, etc.) ainsi
que la commande |\pAutoNiceMatrix| et ses variantes, acceptent la clé
-|columns-type| qui indique le type de colonne qui sera utilisé.
+\Definition{columns-type} qui indique le type de colonne qui sera utilisé.
\medskip
-Les clés |l| et |r| sont des raccourcis pour |columns-type=l| et |columns-type=r|.
+Les clés \Definition{l} et \Definition{r} sont des raccourcis pour
+|columns-type=l| et |columns-type=r|.
\medskip
\begin{Code}[width=10cm]
@@ -5093,8 +5205,9 @@ de la préfixer par |matrix|, ce qui fait que son nom devient |matrix/columns-ty
\label{rotate}
\index{rotate@\texttt{\textbackslash rotate}}
-Utilisée au début d'une case, la commande |\rotate| (fournie par \pkg{nicematrix}) compose le contenu après une
-rotation de 90° dans le sens direct.
+Utilisée au début d'une case, la commande \DefinitionCommande{rotate} (fournie
+par \pkg{nicematrix}) compose le contenu après une rotation de 90° dans le sens
+direct.
Dans l'exemple suivant, on l'utilise dans le |code-for-first-row|.\footnote{On
peut aussi l'utiliser dans |\RowStyle| (cf. p.~\pageref{RowStyle}).}
@@ -5179,10 +5292,10 @@ seront peut-être pas ceux attendus.
\index{smallmatrix@\texttt{\{smallmatrix\}} (environnement de \pkg{amsmath})}
-Avec l'option |small|, les environnements de l'extension \pkg{nicematrix} sont
-composés d'une manière proche de ce que propose l'environnement |{smallmatrix}|
-de l'\pkg{amsmath} (et les environnements |{psmallmatrix}|, |{bsmallmatrix}|,
-etc. de \pkg{mathtools}).
+Avec l'option \Definition{small}, les environnements de l'extension
+\pkg{nicematrix} sont composés d'une manière proche de ce que propose
+l'environnement |{smallmatrix}| de l'\pkg{amsmath} (et les environnements
+|{psmallmatrix}|, |{bsmallmatrix}|, etc. de \pkg{mathtools}).
\medskip
\begin{Code}
@@ -5196,7 +5309,8 @@ $\begin{bNiceArray}{cccc|c}[\emph{small},
\end{bNiceArray}$
\end{Code}
%
-\[\begin{bNiceArray}{cccc|c}[small, last-col, code-for-last-col = \scriptscriptstyle, columns-width=3mm]
+\[\begin{bNiceArray}{cccc|c}%
+ [small, last-col, code-for-last-col = \scriptscriptstyle, columns-width=3mm]
1 & -2 & 3 & 4 & 5 \\
0 & 3 & 2 & 1 & 2 & L_2 \gets 2 L_1 - L_2 \\
0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
@@ -5285,8 +5399,10 @@ final), ces compteurs sont masqués dans les environnements de \pkg{nicematrix}.
\indexcommand{BAutoNiceMatrix}
L'extension \pkg{nicematrix} propose aussi des commandes pour composer
automatiquement des matrices à partir d'un motif général. Ces commandes sont
-nommées |\AutoNiceMatrix|, |\pAutoNiceMatrix|, |\bAutoNiceMatrix|,
-|\vAutoNiceMatrix|, |\VAutoNiceMatrix| et |\BAutoNiceMatrix|.
+nommées \DefinitionCommande{AutoNiceMatrix},
+\DefinitionCommande{pAutoNiceMatrix}, \DefinitionCommande{bAutoNiceMatrix},
+\DefinitionCommande{vAutoNiceMatrix}, \DefinitionCommande{VAutoNiceMatrix} et
+\DefinitionCommande{BAutoNiceMatrix}.
Chacune de ces commandes prend deux arguments obligatoires : le premier est la
taille de la matrice, sous la forme $n$-$p$, où $n$ est le nombre de rangées et
@@ -5301,18 +5417,21 @@ $C = \emph{\pAutoNiceMatrix}{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
\[C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}\]
+Il existe aussi \DefinitionCommande{AutoNiceArrayWithDelims} similaire à
+|{NiceArrayWithDelims}|.
+
\subsection{L'option light-syntax}
\label{light-syntax}
\index{light-syntax}
-L'option |light-syntax| (inspirée de l'extension \pkg{spalign}) permet d'alléger
-la saisie des matrices, ainsi que leur lisibilité dans le source TeX. Lorsque
-cette option est activée, on doit utiliser le point-virgule comme marqueur de
-fin de rangée et séparer les colonnes par des espaces ou des tabulations. On
-remarquera toutefois que, comme souvent dans le monde TeX, les espaces après les
-séquences de contrôle ne sont pas comptées et que les éléments entre accolades
-sont considérés comme un tout.
+L'option \Definition{light-syntax} (inspirée de l'extension \pkg{spalign})
+permet d'alléger la saisie des matrices, ainsi que leur lisibilité dans le
+source TeX. Lorsque cette option est activée, on doit utiliser le point-virgule
+comme marqueur de fin de rangée et séparer les colonnes par des espaces ou des
+tabulations. On remarquera toutefois que, comme souvent dans le monde TeX, les
+espaces après les séquences de contrôle ne sont pas comptées et que les éléments
+entre accolades sont considérés comme un tout.
\medskip
@@ -5349,12 +5468,12 @@ dans les cases du tableau.\footnote{La raison en est que lorsque l'option |light
\medskip
-\index{light-syntax-expanded}
-La clé |light-syntax-expanded| a le même comportement que la clé |light-syntax|
-mais avec cette différence que le corps de l'environnement est complètement
-développé (au sens de TeX\footnote{Plus précisément, il s'agit d'une expansion
- de type |e| de L3.}) avant découpe en lignes (mais après l'extraction de
-l'éventuel |\CodeAfter|).
+\index{light-syntax-expanded}
+La clé \Definition{light-syntax-expanded} a le même comportement que la clé
+|light-syntax| mais avec cette différence que le corps de l'environnement est
+complètement développé (au sens de TeX\footnote{Plus précisément, il s'agit
+ d'une expansion de type |e| de L3.}) avant découpe en lignes (mais après
+l'extraction de l'éventuel |\CodeAfter|).
\subsection{Couleur des délimiteurs}
@@ -5365,7 +5484,7 @@ l'éventuel |\CodeAfter|).
Pour les environnements avec délimiteurs (|{pNiceArray}|, |{pNiceMatrix}|,
etc.), il est possible de changer la couleur des délimiteurs avec la clé
-|delimiters/color|.
+\Definition{delimiters/color}.
\medskip
\begin{Code}[width=12cm]
@@ -5391,11 +5510,11 @@ préambule des environnements à préambule (cf.~p.~\pageref{delimiters-in-pream
\index{NiceArrayWithDelims@\texttt{\{NiceArrayWithDelims\}}}
En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un
-environnement plus général, appelé |{NiceArrayWithDelims}|. Les deux premiers
-arguments obligatoires de cet environnement sont les délimiteurs gauche et droit
-qui seront utilisés dans la construction de la matrice. Il est possible
-d'utiliser |{NiceArrayWithDelims}| si on a besoin de délimiteurs atypiques ou
-asymétriques.
+environnement plus général, appelé \Definition{\{NiceArrayWithDelims\}}. Les
+deux premiers arguments obligatoires de cet environnement sont les délimiteurs
+gauche et droit qui seront utilisés dans la construction de la matrice. Il est
+possible d'utiliser |{NiceArrayWithDelims}| si on a besoin de délimiteurs
+atypiques ou asymétriques.
\medskip
\begin{Code}[width=11cm]
@@ -5419,10 +5538,10 @@ $\begin{NiceArrayWithDelims}
\indexcommand{OnlyMainNiceMatrix}
-La commande |\OnlyMainNiceMatrix| n'exécute son argument que si on se trouve
-dans le tableau principal, c'est-à-dire que l'on est ni dans les rangées
-extérieures, ni dans les colonnes extérieures. Si elle est utilisée hors d'un
-environnement de \pkg{nicematrix}, elle est sans effet.
+La commande \DefinitionCommande{OnlyMainNiceMatrix} n'exécute son argument que
+si on se trouve dans le tableau principal, c'est-à-dire que l'on est ni dans les
+rangées extérieures, ni dans les colonnes extérieures. Si elle est utilisée hors
+d'un environnement de \pkg{nicematrix}, elle est sans effet.
Pour un exemple d'utilisation, voir \url{tex.stackexchange.com/questions/488566}
@@ -5458,8 +5577,8 @@ lignes pointillées (cf.~p.~\pageref{Cdots}) et la détermination des «coins»
\medskip
Comme la création de ces nœuds requiert du temps et de la mémoire, il est
-possible de la désactiver ponctuellement avec la clé |no-cell-nodes| pour
-accélerer les compilations.
+possible de la désactiver ponctuellement avec la clé \Definition{no-cell-nodes}
+pour accélerer les compilations.
\medskip
Tous les nœuds du document doivent avoir des noms deux à deux distincts et le
@@ -5473,13 +5592,13 @@ de la colonne~$j$ a pour nom |nm-|$n$|-|$i$|-|$j$.
\smallskip
\indexcommand{NiceMatrixLastEnv}
-La commande |\NiceMatrixLastEnv| donne le numéro du dernier de ces
-environnements (pour LaTeX, il s'agit d'une commande — complètement développable
-— et non d'un compteur).
+La commande \DefinitionCommande{NiceMatrixLastEnv} donne le numéro du dernier de
+ces environnements (pour LaTeX, il s'agit d'une commande — complètement
+développable — et non d'un compteur).
\smallskip
\index{name!clé pour un environnement}
-Il est néanmoins recommandé de passer plutôt par la clé |name|\footnote{La
+Il est néanmoins recommandé de passer plutôt par la clé \Definition{name}\footnote{La
valeur passée à la clé |name| est \emph{développée}, au sens de TeX.}.
Celle-ci permet de donner un nom à l'environnement. Une fois l'environnement
nommé, les nœuds sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où
@@ -5589,13 +5708,13 @@ p.~\pageref{triangular}.
\subsubsection{La clé pgf-node-code}
-\index{pgf-node-code}
+\index{pgf-node-code}
\textbf{Pour les utilisateurs expérimentés}, \pkg{nicematrix} fournit la clé
-|pgf-node-code| qui correspond à du code PGF qui sera exécuté à la création, par
-PGF, des nœuds correspondants aux cases du tableau. Plus précisément, la valeur
-fournie à la clé |pgf-node-code| sera passée en cinquième argument de la
-commande |\pgfnode|. Cette valeur doit contenir au moins une instruction comme
-|\pgfusepath|, |\pgfusepathqstroke|, |\pgfusepathqfill|, etc.
+\Definition{pgf-node-code} qui correspond à du code PGF qui sera exécuté à la
+création, par PGF, des nœuds correspondants aux cases du tableau. Plus
+précisément, la valeur fournie à la clé |pgf-node-code| sera passée en cinquième
+argument de la commande |\pgfnode|. Cette valeur doit contenir au moins une
+instruction comme |\pgfusepath|, |\pgfusepathqstroke|, |\pgfusepathqfill|, etc.
\subsubsection{Les colonnes V de varwidth}
@@ -5646,9 +5765,9 @@ peu plus loin, p.~\pageref{nodes-i}.
En fait, l'extension \pkg{nicematrix} peut créer deux séries de nœuds
supplémentaires (\emph{extra nodes} en anglais) : les «nœuds moyens»
(\emph{medium nodes} en anglais) et les «nœuds larges» (\emph{large nodes} en
-anglais). Les premiers sont créés avec l'option |create-medium-nodes| et les
-seconds avec l'option |create-large-nodes|.\footnote{Il existe aussi l'option
- |create-extra-nodes| qui est un alias pour la conjonction de
+anglais). Les premiers sont créés avec l'option \Definition{create-medium-nodes}
+et les seconds avec l'option \Definition{create-large-nodes}.\footnote{Il existe
+ aussi l'option |create-extra-nodes| qui est un alias pour la conjonction de
|create-medium-nodes| et |create-large-nodes|.}
\medskip
@@ -5716,14 +5835,15 @@ a & a & a
\index{right-margin}
Les «nœuds larges» de la première colonne et de la dernière colonne peuvent
apparaître trop petits pour certains usages. C'est pourquoi il est possible
-d'utiliser les options |left-margin| et |right-margin| pour ajouter de l'espace
-des deux côtés du tableau et aussi de l'espace dans les «nœuds larges» de la
-première colonne et de la dernière colonne. Dans l'exemple suivant, nous avons
-utilisé les options |left-margin| et |right-margin|.\footnote{Les options
- |left-margin| et |right-margin| prennent des dimensions comme valeurs mais, si
- aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et
- elle est égale à |\arraycolsep| (valeur initiale : 5~pt). Il existe aussi une
- option |margin| pour fixer à la fois |left-margin| et |right-margin|.}
+d'utiliser les options \Definition{left-margin} et \Definition{right-margin}
+pour ajouter de l'espace des deux côtés du tableau et aussi de l'espace dans les
+«nœuds larges» de la première colonne et de la dernière colonne. Dans l'exemple
+suivant, nous avons utilisé les options |left-margin| et
+|right-margin|.\footnote{Les options |left-margin| et |right-margin| prennent
+ des dimensions comme valeurs mais, si aucune valeur n'est donnée, c'est la
+ valeur par défaut qui est utilisée et elle est égale à |\arraycolsep| (valeur
+ initiale : 5~pt). Il existe aussi une option |margin| pour fixer à la fois
+ |left-margin| et |right-margin|.}
\[\begin{pNiceMatrix}[create-large-nodes,left-margin,right-margin]
\CodeBefore [create-cell-nodes]
\begin{tikzpicture}
@@ -5749,9 +5869,9 @@ a & a & a
\index{extra-left-margin}
\index{extra-right-margin}
Il est aussi possible d'ajouter de l'espace sur les côtés du tableau avec les
-options |extra-left-margin| et |extra-right-margin|. Ces marges ne sont pas
-incorporées dans les «nœuds larges». Dans l'exemple suivant, nous avons utilisé
-|extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
+clés \Definition{extra-left-margin} et \Definition{extra-right-margin}. Ces
+marges ne sont pas incorporées dans les «nœuds larges». Dans l'exemple suivant,
+nous avons utilisé |extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
\[\begin{pNiceMatrix}%
[create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt]
\CodeBefore [create-cell-nodes]
@@ -5857,9 +5977,9 @@ Les nœuds que l'on vient de décrire ne sont pas accessibles par défaut dans l
\index{create-cell-nodes (clé de \texttt{\textbackslash CodeBefore})}
On peut rendre ces nœuds accessibles dans le |\CodeBefore| en utilisant la clé
-|create-cell-nodes| du mot-clé |\CodeBefore| (dans ce cas-là, les nœuds sont
-créés une première fois avant la construction du tableau en utilisant des
-informations écrites dans le fichier |aux| puis recréés lors de la composition
+\Definition{create-cell-nodes} du mot-clé |\CodeBefore| (dans ce cas-là, les
+nœuds sont créés une première fois avant la construction du tableau en utilisant
+des informations écrites dans le fichier |aux| puis recréés lors de la composition
du tableau proprement dit).
\bigskip
@@ -5918,8 +6038,9 @@ simplement |last|.
\smallskip
\colorbox{yellow!50}{\textbf{Modification 6.28}}\enskip Il existe aussi des nœuds nommés
-$i$|.1|, $i$|.2|, ... , $i$|.9| intermédiaires entre le nœud~$i$ et le
-nœud~$i+1$ (avant la version 6.28, seul le nœud $i$|.5| existait).
+$i$|.1|, $i$|.2|, $i$|.25|, $i$|.3|, $i$|.4|, $i$|.5|, $i$|.6|, $i$|.7|,
+$i$|.75|, $i$|.8| et $i$|.9| intermédiaires entre le nœud~$i$ et le
+nœud~$i+1$.
\smallskip
Ces nœuds sont accessibles dans le
@@ -5984,8 +6105,8 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
\end{NiceMatrix}\]
\medskip
-Les nœuds de la forme $i$|.5| peuvent être utilisés par exemple pour barrer une
-ligne (si on a chargé TikZ).
+Les nœuds «décimaux» (comme $i$|.4|) peuvent être utilisés par exemple pour
+barrer une ligne (si on a chargé TikZ).
\smallskip
\begin{Code}[width=11cm]
@@ -5994,7 +6115,7 @@ $\begin{pNiceArray}{ccc|c}
3 & 3 & 1 & 0 \\
3 & 3 & 1 & 0
\CodeAfter
- \tikz \draw [red] (\emph{3.5}-|1) -- (\emph{3.5}-|last) ;
+ \tikz \draw [red] (\emph{3.4}-|1) -- (\emph{3.4}-|last) ;
\end{pNiceArray}$
\end{Code}
$\begin{pNiceArray}{ccc|c}
@@ -6002,7 +6123,7 @@ $\begin{pNiceArray}{ccc|c}
3 & 3 & 1 & 0 \\
3 & 3 & 1 & 0
\CodeAfter
- \tikz \draw [red] (3.5-|1) -- (3.5-|last) ;
+ \tikz \draw [red] (3.4-|1) -- (3.4-|last) ;
\end{pNiceArray}$
@@ -6234,7 +6355,7 @@ a+b & \Cdots & a+b & 1
\medskip
Il est possible de désactiver la parallélisation avec l'option
-|parallelize-diags| mise à |false|: \par\nobreak
+\Definition{parallelize-diags} mise à |false|: \par\nobreak
\medskip
\NiceMatrixOptions{parallelize-diags=false}%
@@ -6255,16 +6376,19 @@ a+b & \Cdots & a+b & 1
\texttt{\textbackslash Iddots})}
On peut choisir l'instruction |\Ddots| qui sera tracée en premier (et qui
servira pour tracer les suivantes quand la parallélisation est activée) avec la
-clé |draw-first| : |\Ddots[draw-first]|\rlap{.}
+clé \Definition{draw-first} : |\Ddots[draw-first]|\rlap{.}
\subsection{Les cases «vides»}
\label{empty-cells}
-Une instruction comme |\Ldots|, |\Cdots|, etc. essaye de déterminer la première
-case non vide de part et d'autre de la case considérée. Quand la clé |corners|
-(cf.~p.~\pageref{corners}) est utilisée, les coins qui sont déterminés sont
-composés de cases vides. Néanmoins, une case «vide» n'est pas nécessairement
-sans contenu dans le codage TeX. Les règles précises sont les suivantes :
+
+L'extension \pkg{nicematrix} utilise en plusieurs occassions le concept de «case
+vide». Par exemple, une instruction comme |\Ldots|, |\Cdots|, etc. essaye de
+déterminer la première case non vide de part et d'autre de la case considérée.
+De même, quand la clé |corners| (cf.~p.~\pageref{corners}) est utilisée, les
+coins qui sont déterminés sont composés de cases vides.
+
+La définition précise de «case vide» est la suivante.
\begin{itemize}
\item Une case implicite est vide. Par exemple, dans la matrice suivante
@@ -6311,23 +6435,24 @@ L'environnement |{array}| insère un espace horizontal égal à |\arraycolsep|
avant et après chaque colonne. En particulier, il y a un espace égal à
|\arraycolsep| avant et après le tableau. Cette caractéristique de
l'environnement |{array}| n'était probablement pas une bonne idée\footnote{Dans
- la documentation de l'\pkg{amsmath}, on peut lire : {\itshape The extra space of
- |\arraycolsep| that \pkg{array} adds on each side is a waste so we remove it
- [in |{matrix}|] (perhaps we should instead remove it from array in general,
- but that's a harder task).}}. L'environnement |{matrix}| et ses variantes
-(|{pmatrix}|, |{vmatrix}|, etc.) de \pkg{amsmath} préfèrent supprimer ces
-espaces avec des instructions explicites |\hskip -\arraycolsep|\footnote{Et non
- en insérant |@{}| de part et d'autre du préambule, ce qui fait que la longueur
- des |\hline| n'est pas modifiée et elle peut paraître trop longue, surtout
- avec des crochets.}. L'extension \pkg{nicematrix} fait de même dans
+ la documentation de l'\pkg{amsmath}, on peut lire : {\itshape The extra space
+ of |\arraycolsep| that \pkg{array} adds on each side is a waste so we remove
+ it [in |{matrix}|] (perhaps we should instead remove it from array in
+ general, but that's a harder task).}}. L'environnement |{matrix}| et ses
+variantes (|{pmatrix}|, |{vmatrix}|, etc.) de \pkg{amsmath} préfèrent supprimer
+ces espaces avec des instructions explicites |\hskip -\arraycolsep|\footnote{Et
+ non en insérant |@{}| de part et d'autre du préambule, ce qui fait que la
+ longueur des |\hline| n'est pas modifiée et elle peut paraître trop longue,
+ surtout avec des crochets.}. L'extension \pkg{nicematrix} fait de même dans
\emph{tous} ses environnements y compris l'environnement |{NiceArray}|.
Néanmoins, si l'utilisateur souhaite que l'environnement |{NiceArray}| se
comporte par défaut comme l'environnement |{array}| de \pkg{array} (par exemple
pour faciliter l'adaptation d'un document existant), il peut contrôler ce
-comportement avec l'option |exterior-arraycolsep| accessible via la commande
-|\NiceMatrixOptions|. Avec cette option, des espaces extérieurs de longueur
-|\arraycolsep| seront insérés dans les environnements |{NiceArray}| (les autres
-environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
+comportement avec l'option \Definition{exterior-arraycolsep} accessible via la
+commande |\NiceMatrixOptions|. Avec cette option, des espaces extérieurs de
+longueur |\arraycolsep| seront insérés dans les environnements |{NiceArray}|
+(les autres environnements de l'extension \pkg{nicematrix} ne sont pas
+affectés).
@@ -6336,11 +6461,19 @@ environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
\index{Incompatibilités}
+
+L'extension \pkg{nicematrix} est incompatible avec certaines classes qui
+redéfinissent les environnements |{tabular}| et |{array}|. C'est en particulier
+le cas de la classe |socg-lipics-v2021|. Néanmoins, dans ce cas-là, il est
+possible de charger la classe avec l'option |notab| qui requiert justement que
+|{tabular}| ne soit pas redéfini.
+
+
\medskip
L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess}
car cette classe n'est pas compatible avec PGF-TikZ. Il existe néanmoins une
parade simple qui consiste à écrire:\footnote{Voir
- \url{https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class}}\par\nobreak
+ \url{https://tex.stackexchange.com/questions/528975}}\par\nobreak
\begin{Code}
\let\TeXyear\year
@@ -7020,7 +7153,8 @@ largeur suivant leur taille.
\index{max-width (sous-clé de «delimiters»)}
\index{delimiters!---/max-width}
Pour résoudre ce problème, on peut demander que les délimiteurs soient composés
-avec leur largeur maximale grâce à la clé booléenne |delimiters/max-width|.
+avec leur largeur maximale grâce à la clé booléenne
+\Definition{delimiters/max-width}.
\medskip
@@ -7161,9 +7295,9 @@ colonnes.
\medskip
\index{vlines-in-sub-matrix}
-En fait, on peut avec la clé |vlines-in-sub-matrix| choisir un spécificateur
-dans le préambule du tableau pour indiquer des filets verticaux qui seront
-tracés dans les |\SubMatrix| uniquement (en espaçant les colonnes).
+En fait, on peut avec la clé \Definition{vlines-in-sub-matrix} choisir un
+spécificateur dans le préambule du tableau pour indiquer des filets verticaux
+qui seront tracés dans les |\SubMatrix| uniquement (en espaçant les colonnes).
\medskip
\begin{Code}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.ins b/macros/latex/contrib/nicematrix/nicematrix.ins
index 88bb4d6754..263410aa8f 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.ins
+++ b/macros/latex/contrib/nicematrix/nicematrix.ins
@@ -30,6 +30,7 @@ and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
\endpreamble
+\askforoverwritefalse
\generate{\file{nicematrix.sty}{\from{nicematrix-code.dtx}{package}}}
\Msg{*********************************************************}
\Msg{*}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 383ac48aa3..c3aa0b7b2f 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
@@ -634,45 +634,55 @@ endobj
<< /S /GoTo /D [ 365 0 R /Fit ] >>
endobj
368 0 obj
-<< /Filter /FlateDecode /Length 10004 >>
-stream
-x}K%7~YcP(jb6]\Ԍ{ to)"8'NVٮ,dR||HJPn_Ϯlޜ!~9l-
-,_~Ƥb ܧoPb0h{Rݿ6PI=TMrNDk*3o9 [f%:-&-H__[eʛ7qy x< %r&|hiMeADϵh HXc8tC_rKn Lp{h~m^'Ty\}mVS 8,(4[Pc ?`4X_z0BO+1ʧ?=e4&l6Ղo.Y$(!O<]Sb߆,y>R.kX<u&z j/'CM1[9:\Ԩm`b 3cpDy9@{RoF ͜?ݾC\;omng-N m8A0ZQpq⼇q~d~l@RjX%b|ʕ
-Mc):^~LHH#}[]R:o-=f#!7ȌwYJR-Y<$`~_
-ǘd/y3bF=DQjy 7I,+pւQ.K:{
-Y5x35%!H_-5)X/I#RKmjr&ą|)vQAvB=3G@a@ @n-4HؽV:jxPFVʒRhp&das&|4$ͤTѬo-rҺv KIJ^ 8WA(1u ,r1e%-쬐[De,p_4Ҿ hYI*D[bV搸| &=٥THzi;vxMʝ-<0bLXr:Zw". fݣM+ײ/T~-
-ֽeQB**@C+*c/IŒ/su<rmQȵ]P,Xi&48qx )G OL6JD0ps F/X>`;\{B'MCXB$HF WL:BǥJ;4PUI"ﰒ@@~IXtb $ o- d\*:"2WڬǣS (̴9I S&Fΰ$
-<8ä]^\1Tb&fV3jN!WGf4eН1{DViY|G{j)NY"NSR!]Ar
-:;l:I[=\8\RdSByֽE_IͨJeeQEv` CgXe2?qx-MG`IAze fQAv9B`A!sde*OuDMaEQSUhXʬO}#!j4Nb0r)Y-b=$ @:4DL>EALw(a7#8Pw# -x9 g:%E3(_z mfs`l QL[C&h1>MQn6$/4ehI62Ei v}2 ć5n%1*o)\hܤy`[BGC"O@0q
-=QRFT%GM#1-ʤf" c$_8\XSѐ%E S#H$җn$m*#` |QLe+Z)Hl4$,|U$
-*|zFR/ad q{ !T
-$eBGPɝ)&
-i䛮\3LFJ()uzdDIHѕRQ2L$WH;UJ`ض(r8
- "l GU
- I3FQ&Ip$W3 9"!T
-l<6=#Y;g)  c"6JX݂8&"1z<,YdBFPɛ)n<Jdy"Qx|;zF
-hd
-Tq͔.O
-idMikU`:< "+BQ$2]Q¦1pk95'Tv/C#U+B$)hu3Sg'oSZHD]S8(Yt9YhAUlJuRI!nR;DVvD}׵NYQ?#gH
-^$^T
-$
-JP-j[ɬw\>@G~"HGFRkj)i"τȉ.JVvD}ׅ:~Fyɳ^m8@"
-V`u֊&dE2]ņ2tD}:z͐P_
-zL~D^ep8^qBHiE@I2"\4 \V:FA[@QguAj<naHMhEcy8&DN
-tLEşQA蕒*$I %γb(Y ez_ԔNGw[=wǕ.\6<=3hbӎgb~C ?Zƫ|cNGdYZ4^۔-F/'o֢*ױg֢*d_^SxfZ4> NxW2#&k.R(]X7tl/dz")F %|KįЄ
--ķZN47_"w^0mnZ}0$`ϓqaVoC7#(PT^3/S޽D~,*>M[rĭ;p$\-OVIՓ`f
-_*T(MyпNJ7Vx_,#^x&
-/
-k
-0I{.lhZwhMw.U㑢p[153 EgGE}!*!nbe:R~pR۠]4>xlzXM?n .낟x:MQ}vBM[`]|tdl#sa.aԞޝ!V +  փ
-,mxVJxBF m[u>Y`7μ7n3nǁeNinH?38WƟSI j[.hgtr >0*
-Њb5{N J7$s@b}0z<x&:dwOAu]FSS76v˖%[[ؼw{I!_VZ9aw^M6s;~ȁ<}Hdix`|lyu7ik/qѝUTPd/68OWLs4Toy#so&ђMr22?-ع_f<p?_ug,rh?.x=CT?xK& $#I71!ϛ֥/COӄy N=YxiC]]4I\-qf68:i0!}3P\LC\uҷCc0'sR;Ntʈj%%,hcȖt2hSCcN#es i7ZץubǧDEx@0db8}]QkG Soɐ?`Y~k]ӯ mZ$s/ՌNVaû }92.q#
-pWe۩")D"\ŝqd r\ ρ \9
->]`u_<S
-F
-;<ҹAc RlO8[-(aÏ3٬H^bdq޸jT‘hMfG2璺1y%AW< TgZ og\^[#
-$m("=C:Q0e:NoXP
-ɳ۶Vɴ47Ynn+ U΃97>ˢ\1m)#U7~Iw@-ЂxeBc0u?J;-:a^P~fL+Hĺ-e`(G۪[sZc*bimCgugIUhUqDk8:LDŽ?qFxR’s72S@t7~17.l9/@%v^}Ȩqm5Y>rX=_zwV񩦕 ]gO;w+{Cz'%;[\%zwHYoָt뙵?۞݁wMgX TY'4%~NnBJƷ[6asq!$Do*=T\މ-Y]xr$wz>Z/JCeE"Т^|jh虘LLa|tV!= Rp`
+<< /Filter /FlateDecode /Length 10095 >>
+stream
+x}I%7]U  (}Qn>4rF5.nj-/2%a)EXmHtfn</M77gc_~_ޜM[6m?/1???^?~7TxSӪ$?"QE
+L[CAv1-:-&-H__[32W{ɛw<h<lE݄FS h9I$ o) ceY@Dg('< phǿ$sVJb+MU8?4}9HhO7Mɵצ{dʭl5%_&S2@-Ua}E IᅿiG, sctGC8x-U>8
+4y7[ W>fos/ ʉD7 岥fzF-Gs8ݜ$z6JpiBUI}o p;Sl!4wZo *t=#Scs
+[ˏ Yꭂ.M :oт>7wf#>
+Ż,n!,~3'Cc GmJ7H-w}ۅ{{){ls
+K
+:HLNܭ>T4@r5,VU4Vs@s鶳O.5Iع ݔg3d/ _Y *!@V0+)d=jaNĜZ?\E؟@Rq‹؏c [V753/-z17dQMwZE\k0E g@xa ~?_Ì؟KQxj0c|5g㰍1z .qr /kqL`]NPON't6p>APar=''wTA[լk:(5%L}Dp 'o0BPXUy.+&wS6rx2}Ɛ7L0` z=rMd77MA~:N/l9((c3 mFN*5_kM~X ϙ7LM< J)qK&H9|TLYÇ|2=|8aXÇ>|p.o&tJiOA#/LAFi2!JW<>'|蛳 *'-_"` >ay蟓=JSwy?1(s.fLԔp
+z+1UlW „b^!tef
+ǡ/m=mRbʢA l[R9T} 
+ x@7ڰ:k54XL"hᵈSw@XH9jxfQ% 0*7H<@`CZ)Ock|D(f&)4>d+&%I;fD}aQ@#&rSmKJWV!*Y,Y (,9I WVc0ۤ47
+lHVٹC#TX/;\UD{qJU+viFvI-^P)9Dy#EP$*,cAWlӌH[\!st#H*B.)N[ d: xlԬH\[:
+<L0iaiW/>] )1V3jN!WGdQMYlG$j"wKVKe.(C8b% f)F1pz>RSByֽբE_MRqT:q¨"q;WW`N0СGSGVEf^kqL#h8W`1P$nc 2EDV:`ibO"DQS誴@ V'j om5wR6Fc<RBWY-b= @Ӣ:4DL>MD<k$h 6D>T@ĈG)BGC 12z_`N٤NI&ްC[d$JPP6ZO,mՆF 0FƋGD\C Hb:!ęh7\EJH.t
+4H)h^(yV(ѐ(L@S lZ}(wiԴ=dbp>fH&DL!ʩ
+5C͗&t4$bIc`iD \%`0CTR{?hn-NF_scR3@fC6&W-IUT̵^" @f q{ %T108,jt4IX;Q=^!3nƌOqE)RW;2M˛H`DMjF򂤭h+
+HoC-@Y[PV
+@Y5E`#6B6PԪ=̘}Icmc۳qaDm
+rBH U@@U!<%2d*_
+r* u URk<TXY`nj$bz
+iBGQ'N 6Ok$mԌ$SP
+*(wJeoւ# i9WJu+O(2B$WH*50b3jR-PAM8
+2
+1yF/*cB#sTHM%Xxz'x@ΑT)
+()*@}cӡHޔuVy,&=̳AQTʼn׬w FK(?"{ёHfpcFccIOR!ip4ux#gѫ5#FVgQ"
+J*8z
+/ZœIM4,%qDL&BEl8(-Sl),R`,(O≅L]<|\`PxX(FZc|4!cYƆc69+[,RPOZwFeg%e ۆ\1Y- E$D9-j6bbcHYJBn5(|a3V -HKV=74! cYFc6D.J@-]RVL z|1H˜qገ#Ymc&I9J\*
+ٔS$j쀱H@&QXAQC7i%l%YH=14!cYƆSlZ%lHFW]аs=aT=c<|p(
+D1R1iFQ;,M|f8l0*߆kE3Ip >s0%bBEcGS;"}O3oC۵a(P͠<R`jHǤ Eΰ4Nа}( akM3aʾP S10EK%IM4j\8aS~ Y;OfF U\A9L U!j%I2:ai2a4#oתf A|`J+JQ42]aIhԸi¨ve͌
+V/Q
+0IT$["ORbjoHYϨ=kA?* 52L"5M3%P5XP*Ƚs!Q{dWnBWaW0u4'K3) ,1TXC$r\C u5
+)-P&.XLz TyDJJ*s|.3
+zL~d
+@X'(q iNO4&["RgNlfgDT9oy5
+).H-XMz Ry8D2
+tLe? Y3`/¢WJSI
+)E%X8/'F*ZFϯEM xtգ{w\IJϹ!=3jbӎgb~í֪*ح~UEMݹ
+
+vkpM>2ra.'(Iy ~ fΒYg}oyٟHe,xu htF7yhq5)kCy))krvL/ĝ/lA%;3ux4LҞ˟8:ھH;U; NN*sp[1*-SB8QUsCr"Տ|4XpGBi4}46 %?^t3p<U֌;r㕚p 0J0Аyh`=ս3H~ óc}Ƌwk8hMq_O-_χy$\Ӯ3Ͼ`nj'/ YKuBrԀ}gZb)uI^-H‚9dPks4\׏-BeS<`pxD&+6Vcm[Jv{VWz"~~]3my; X~t7s.X/b{U>çnKHyALfK}Dph[w{{Tތ ^r^E9;~#oc l[ g 7[ڛnw8q#)d=k*S:#od#?YG˘xǍ 1cmg9&&Oɧ]W~,;VyWI^lEzиiWkjqܛJӼs-lY5w>3a{#r^9Z|퇥gȂ(Y`dz i#F4]s/xStbhiP<olV6^m"H׃n~vW˝)NO>mP\C^Y맡1>tu22"SRe~C` gj:o$#uFQ[빴NQ!T #&<rUu5Oe>=Bį]~ynx"Y~֒P OB{܇InʰM2rcZy_
+Y&no7UH!)94vo: #Jsom4vP7Gvx j[q
+o/um1=MùHB>6,SdT`ˣ&, <[tn'ܯMEڨrB_wUʾ֧U; U^?J4.#*LKh⧹ rDTS]I~w >]`E_<S F
+>gi˵Q\\iN r Ǔ7Wsf@V/JqKv0K
+BĪ saŏ3]C~!w~m*^>✇Lyq뽮ZyDVu4[MEڮ@\pu"N۔53Mati"X>b{ZoAٍ5ZK앭~b0n5ěTW<i?H,Wؽw-yJ7Փm.HfŢ}rz)0kFM~t(8)k{ä<maLuՐ涪\_<q-Oy??&\LL+
+9ZUڨw{g1໲^7ZW˱r$;|,_5mzeSD߄;}u7lA]aٶR]ZgUʨ#1x j1)=ΡzPM㧥_Q>vLzDS9
+<V称8(CB('9qvߚ̶͌ų Z';Yը+ e9 Ƅ(j?[U=[nt)ʔ{7?Z+En ?.fs2`g͌YN -yq-Ӂ[~DJXc#i'6x.9AZm$j-Np\/!_wF`psɝ3PWD9QpW#J1H,LLlXMu+pfꐟ. [_j'{C4̥nc$F0:
+`nwaTD<{cP9|Uꇨ[}Cq7kːzKS8
+a"Pg` wzfPʸ`Cvt܏pwiŚ=V`VQ$ƻ]vwXchy%G5ي_t
+ ò(꥖7#0):Tσ"vdvk~OQpy]3 a5ǧͭ@O\A.:#~$Юj8YͲ)&m<B~b٠^[ń[wo/Mbͦ7*} K}tL>>
+/q'.(圙$YQ|J=tr|x41MS%s=9bg]-A1 r#*H?
endstream
endobj
365 0 obj
@@ -682,8 +692,8 @@ endobj
[ 366 0 R ]
endobj
366 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.659 499.819 88.116 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty)>>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.658 306.319 88.115 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/fpantigny/nicematrix/releases)>>
>>
endobj
369 0 obj
@@ -693,29 +703,29 @@ endobj
<< /D [ 365 0 R /XYZ 79.37 771.024 null ] >>
endobj
367 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 371 0 R /F29 372 0 R /F38 373 0 R /F47 374 0 R /F52 375 0 R /F51 376 0 R /F53 377 0 R /F54 378 0 R /F25 379 0 R /F20 380 0 R /F18 381 0 R /F21 382 0 R /F19 383 0 R /F17 384 0 R /F15 385 0 R /F16 386 0 R /F55 387 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F65 391 0 R /F66 392 0 R /F67 393 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 371 0 R /F17 372 0 R /F30 373 0 R /F39 374 0 R /F48 375 0 R /F47 376 0 R /F49 377 0 R /F50 378 0 R /F29 379 0 R /F52 380 0 R /F41 381 0 R /F42 382 0 R /F23 383 0 R /F51 384 0 R /F15 385 0 R /F20 386 0 R /F55 387 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F64 391 0 R /F65 392 0 R /F66 393 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
404 0 obj
-<< /Filter /FlateDecode /Length 3882 >>
-stream
-xɎ\>_ѹɇ nInOC
-ۈ}-mF? ,i;Q2v$i&Òr-{ٶbD׉1dydf"<S㌹?l2VHAfVZo,=e60'l]<LK~
-("HH38< zŴ}^nt >oxάpp 3qD5ru̢pyL+dV?o_ \p])4zAx烸pR4I!'c>3slHxR{P$9|C=s$?[A]QCimL̂eJ`[*c|[wnFm5tS"FbnFꟕӶG,qg^KѠf ED`LJU7]SP"ްY[TtOAn o"PU9+t8My%*Z
-kEEQAXQ$Aʄ,-l)LZi#ŔjnVcFYWvMFja56EjVŜ9$>!ٖz&KSU5Lcs;6E5b0$F)]
-mtxr<ɬ٬ɇ`lx
-T+3Z J?vvVA ́$cUC14ItyߟW^"\clVSL h[ï, %u
-c vNcKPApPkېo: '0L 
-OK>hQ>Mw`a^9n.RQ*~HrxZ-<飧 –|C#o^~(1=vx /_S3!0#¯ZC*9ߦ~ʲTfK*3Ծ0J$+d[%>~yS+@T֒]\_[ 0$mܥj^\5p}Ip IĵRaVfְHޫӌg'cF}I$un]Mk) >O6IOW{n,ʣsxt$`-5=Sa4>
-L&%97f_*kC3YG x|f9˴"d/hbjcO3y;
-X(
-xǷ#iѡRF!_
-nFw2BRG046/&mO>
-/yUM<R1 MsU)g0 bVhgyĈən0Hw)ϚrW0-}mƨiF뷚e(hHj4PLOKACl`U16(iaw,DϔXҒ&~gú<eǡ3*k!bBĐŸ',ƺR*{zD{=k3hK#@FgM1G8VKhXi(6/w3@z.P=̛
-Oي 5}~%*=v)=\u^1)rUS:Cȅy(rG̊T)ױ3 Yg{Jb;4E;oVKyuthS[]I]*`,(;1Zb;~Q:93tB5Meϴ('k'.K/tpÑtҽdwD(ImJKWw:Q1]q3r
-ֈSJY΍2/QM%#vj)W\ոU8Kɴ)-R:kM))+~i2}/K8%T./_.5/.$pukZ0.!P $˫5*Vy *zm3L'F LLKLU+DW%k/#灺0-B8fк_ki^
-#ð?0ͻ[I*+Za "n<ʻȄf׼Ѿ+\ :}QTVI\ӝWFITbU˵ ZZDS|BMxtOxBn/^\iw`+t\42UCf P'rJ%I 45.|O)OyqvA"Z87*6ϷlG/O"'JX4[z۷k=:i`y{[/otvįL)&
-`ʟn^1Y\{S^m}?vTS{a1rcm_%wT°װg7ꅲk"~V\
-Ud
+<< /Filter /FlateDecode /Length 3974 >>
+stream
+xɎc_dq F48dL.Tq'"
+.r\m?vVo;mS .UA0Ź9\"e2@7`Ԅb0p;Apk' BZgʁ &/b>qɪM܅)7B[hy(IdF 
+1Runne ⵠĢ+;DHZRd,}'aJ-durubM)˜2XWQl<ӦĖMzX$?Dmwr>$f {>fQ&^`G'ΨQEyNhs a6zQRbfZ;]TR1jv 5ͥA?(ў>( Ru% vfj*`.`" <pvW*cy5cA L8395$4]޶ׄ 3{ 0p
+TY}-0sB;u<t;SvjGbR7e6&Kᆖ$t}:3R#IY߳CO(3ltE23 —)mMDuJbޕN ԘNEVޏۦ%e6j),(,7Iꆲk
+JUִ#+W20]AS6DhHE`¢TUK{:t&<H] f-d I)薍b{k]4 iI%׈LcnnH62:e%UfcÇ =|\a7UHU|%-qG(GFeh]M9Y/.tsx<0 T5Bͱ$&%.*LC-]E[j+
+p<Jɸb0hH5jlȡլR9sbI|B-1-N
+eMjי~kmv.&lk6fyaiIXR(*ZorT*fR إM95ģ8`eCRH87g"0g}mV\ĸz1A;
+A]2IS͑UDeaPWUbіOׂG>5U3R OW#c|q69C#-;XmulBK K"y6iϭ'CS%$zrDb别ƜY=WPMeMRxY!+rϐjfަ@2}CoggPH*>V:TJ.CDq%5f5Ť50R-
+&t>D×ouH8_'EaדShۿNyvΖ}Oч.eS P|Ht}"gY`.\<
+/('t pS*pEyl-6K'
+Z:_nC\ij SKp ox+;xڼB#*>SiH5^j$9cFQCCUeM92x@
+<I9d͌ {#F
+rpq#EKaT.<ϴH+rK"e~_W1~Wﴗ"Gg-VlgKp4#$u̥>~<ԚB;g{U;AJ.7m <ikT7w^ TTu d1>,ay뱔ܭ[a}rFCn*sÉ-'};sP6ӂ֯5ElQ:P
+NOKMG~J \
+ N=SbgHK^O-w+T9;ŧ|dTYh˦'#ޞ'DR*4ʴ~*ѤLZ4HRnHhgEc@j}ph*BV:f*˭q"`QOCW M,F7׍=:K~ \eTbgZz)Q Te,ƂL1G3VKn84]ꩯ\Ik/utg7[]I]9iEN}wj ڎe䝩*[-!å,<R4%t?Oݟ^j˻#X>0}6_zvg;7-5*?F]:X}"JGJR@=~Qy~<%۱a>/ի ɠtDx.7^ CI x
+g>~zF2x&ɄjSԷ5
+ 2sY\S@1}ζLW+DYC؜Gܷo0GC>NhDžv_fe3e@`/ a03Frjb;z95\_Nm0OhmjrV[ͳo%/Z~~y]'aPDP[ydž3Z`BѴvvPiTixAs8h-lUz{?1aQCNyC\ [Rl꿰Qo@xnB֨A^,^P}Ki2Αy貭nr(،adꩾ*O>*v9$ac@޽ MBX,k3ZA0y0k&~ѩҵk;]ʖ#D?0Oϻ7QÌG970@Ut)4ߕG&4Uv!~ULee~׀:켢tfb\.?qԂ$}fMl+4K0 ?
+=II\i淌+THl󦅡G 31CF 40|U.)Oq6>"Z8wt*6q6>2 < $aҋxvlOFl_m~ j TLm\ҹXBFicXgt;w2~.!53
endstream
endobj
403 0 obj
@@ -725,7 +735,7 @@ endobj
[ 400 0 R ]
endobj
400 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.081 100.065 256.538 111.522 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.081 92.593 256.538 104.05 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
405 0 obj
<< /D [ 403 0 R /XYZ 78.37 808.885 null ] >>
@@ -737,31 +747,37 @@ endobj
<< /D [ 403 0 R /XYZ 79.37 428.769 null ] >>
endobj
402 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F66 392 0 R /F70 407 0 R /F65 391 0 R /F25 379 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F65 392 0 R /F69 407 0 R /F64 391 0 R /F29 379 0 R /F51 384 0 R /F26 408 0 R /F20 386 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
412 0 obj
-<< /Filter /FlateDecode /Length 4403 >>
-stream
-x]ͯ أ`\8/@{2[S:HERߟ3g?/;KR$E8zDž^~|EW=1y*P@/-#TOP*R/r)*1
-J
-Gx HQddt4OQ{-ыH~Qj$EA-R֊s~Z? {5ҁǫ*Ӿ/^VO<㟰ۤuP}E>^Б[ u7%$:Y]7 jzGO*v|@WM-vgi`R]|Sw_uݓ&
-Fo):5Y3ʈ|6U<h7U0
-v7A8YDXk}7|A”[wS]DS ^b=m`ȅx'0B8ŅܤQ 8
-f`GBSh"͡iA*tn0Go7tTu
-|O-Qo!#Xe֛~O@8^Y<7D55W1i_Qf߹&,M6UH7~Cy0 0Mi7[)r,pT.ӋeO7S*ěvͦJiY?/?Qxlվ nB 
-SXQ/#̑W`Ʃ@F8}+EYFub+rgl̾oʓ5|SD`LfƏ) $Nkbpcxノ)c:.0
-ٲPaLT|zu.~p|x8F ,iET\E?
-c܃ ^PLXee!fIM#6|D++WO@2O>"Vslv  k{.Xid^O?/ϟ. ~e Lu˫7մ,aIZzXy:A:v`jah[߲=JeYb8Ny z[@Ƈ
-C 3gA Qbpq̅{"yS
-)Xz9kCI |/2Z9.&cJP?h (mo^#)0@c^%cفvcU <&8[IA PZޭ6l‚'b%@-@%Z'uxQN-l#] %¢U+!Ma4":wDoԐ8c0=,ǘ)^h-8~ LIqI Q :q<M.3 ‹A4w86iu?Õxz+Z"u*R7gм0%drMԭ +ՍqŀCjv&%ow[ڧPY/uKwZj-5Z(64whEL
-
- zXy*Vi8Dag0fߧEh5>9h;9'^s\`}N҂BGkfz,.:g.zfUP"=hK(dKһ)\JԳm(c\Ŭ&vV;JZr4Yj0I +J׆D%XM7 JO`'CXҦWU)-5J7ݠTӲC^r 9ژJ51Zh;DZVo__anC}Di1>&c7반JK}m3S eX]?t&mkԭ(+SEU]x;~96%>f=nS쫓/$1jOyvl.^ =[WueuYekd)o(Mmh+MGU?(;w*+~J* g
-Z=^!H347/`r9pI Wap8
- ug)@ O5du<cept ZTuFY  p)/"r L
-*B+.ܨ{s%QQ΍uyq!*tyq!*|^^t@$op
-ဗGPB)Tӎ9{Ęb#JFk 
-"}φ?X6p\X6ѝXvfXŲ<y.X=#e#;nNX=#e#;6=vl&9.7|lLkȴ'4οgd_)Gԯ?@O79~(Fdb>P^~Va/|A2>>^|؂dƌm/?@RK`.B#|Љ+ʫ$r!ENq%ZwHG#<}ˇcN 3bu'TM8fN1f0 ƔW&qgkSM(Swosk1i9b.; !vY74ct^}P ST{aT 04o᎒
-F-X|߁OߪلE{*x|D:xN6;.bZU kϦbVe^$cT P$E#u}ܟV1
+<< /Filter /FlateDecode /Length 4480 >>
+stream
+x]Kﯘch!Kk 9 ɉsHdXWw{W9 NXXM/ˏ4~>=|@˧_@/-#T˧ϗP*R^xwRUWx{`'O?9YFBnoA'߷^W.4(_V6~Rpt4ӳПOtr^d^v/;xU¨ x|?I56 1ډE>^0([uS%aF g%r#& e¸ @eۏ8 '}j)?3HúIҺq-ߔ_u$Q  =ZQԻ6KFіwMZztrb 0t&4
+27RB-,)頋R(mGCƚ ^=XM}<h3rSvG圅4jç/YPH
+%5h
+5p4ǚan4%šv5{ g
+gXratRv!lfgFLSNu;6 PdhYujp<*
+&ZƇ FAhc*$UnZZ~U ˞`
+fǟύmݏ=U?
+~1:8R^3iÙ+BqQtТy֑4S~ҵu{ Oȭ|F}B]U*9U\ReTIOX=͐&nϯA[="u.yW|(cя
+yԔZe]V?5+9ds0ݐaz(m9:O(uSݟ7NA\B
+VeZ iC.@TFȧd[^ l
+Y{<\Z%dU3'E1p)ZgKCm2/˯>DՐ9 h-mL䰣݂My D@H) ;Rl
+ZWT9VdQIJ,
+bU1o㢇mqIC k9퍩Xf 䱳{ gZ%|=cXU l2粐+
+pCeQ!fV*5Z;7Zbn0fɤߧh*,d'ݦws ㎪A+/guj|@S.X5crP>qՎHߍ WST˦TC"El%
+
+Iv_1 :Q$[BµUaISR!֣],)Ѱ)
+5d"eU/8i]Pnwwn{{W8+ od|@/,Fugip˶435z|Ydvs95 Z)/4iCe~:>c
+D,en曎0w$̈́PWTOArYY8۠TTOvd=̍
+d~pye,
+
+@@hb;]4nhˍE#g]Tj2@a f!Œ1
+Ϸv 푊jFVcX{w~78a}6_!h qS~i1j^x]><fʆF czʅoq][jiWysvLgxGULl.՜,mU4<|'ϙo6 >]
+oծ62SxyYxۦ
+K
+W_<a?hTŏ&Lfgd<̖l\4dB>9ҮN3#*>;ҮN3#mk%V2!3(չԴoSt=('TCy \Pq>mG1~F!jdᗿ;
++:&I.Y>h,hӡ|I-nǂ PʚK)biu
endstream
endobj
411 0 obj
@@ -777,50 +793,52 @@ endobj
<< /D [ 411 0 R /XYZ 78.37 808.885 null ] >>
endobj
13 0 obj
-<< /D [ 411 0 R /XYZ 79.37 706.75 null ] >>
+<< /D [ 411 0 R /XYZ 79.37 708.045 null ] >>
endobj
415 0 obj
-<< /D [ 411 0 R /XYZ 337.806 432.326 null ] >>
+<< /D [ 411 0 R /XYZ 337.806 431.956 null ] >>
endobj
416 0 obj
-<< /D [ 411 0 R /XYZ 337.806 418.607 null ] >>
+<< /D [ 411 0 R /XYZ 337.806 418.238 null ] >>
endobj
417 0 obj
-<< /D [ 411 0 R /XYZ 337.806 273.495 null ] >>
+<< /D [ 411 0 R /XYZ 337.806 271.434 null ] >>
endobj
418 0 obj
-<< /D [ 411 0 R /XYZ 337.806 259.776 null ] >>
+<< /D [ 411 0 R /XYZ 337.806 257.715 null ] >>
endobj
410 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F17 384 0 R /F26 414 0 R /F20 380 0 R /F18 381 0 R /F22 408 0 R /F58 390 0 R /F65 391 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F68 406 0 R /F23 383 0 R /F20 386 0 R /F29 379 0 R /F51 384 0 R /F54 414 0 R /F52 380 0 R /F41 381 0 R /F26 408 0 R /F58 390 0 R /F64 391 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
425 0 obj
-<< /Filter /FlateDecode /Length 5973 >>
-stream
-x]K9Wq1zP/[Xkٓ1 E izR
-E26@TRIIEy'?{ [o$iwqVn /^^-? ?,^
-a7szS%z}vOW6D}*RfJ*DJboFa_$`u l`G&yEU!|N-ɗj]u]<!0ȭ!+ rGȍl~oVOQ{\GuK.!7a?ba/]SN4C 36ܔKO~Xe4?~nDl2J/(_.Q$o:xs˻tՌL0c7tF[IߌDmSeqsYaNI$P"L[
-Qj_mKkAlKκQ %qJMj E Z 钭dl*+EKTu үt}mgNnVhŻ+ԚhzKۣLJ?h
-{cQ0Z:T`?{٤kno`^V.%c ԢL_Μ<4|ObL_f^tSl.v
-fZ|ߞ*AzAg{N'I_^?UiQWe `DUԽLouUQQWEۥlLU^J}i=F;4Jl
-aZg&_^6eFΆ;_Μ Z۝Qg7oͲ2l֜
-Lޝu@gTXopp8pM'ި'
-9IJ;q-|㜂);S9?0 g G|y۝ݬ ӈHzmu?a/;ewzmu pO4sk9Uu8窵槥9zG , лlR+/⬶2([wyĠpj@׽{l,9trsy ֧G}Z=aTbާH,TKO{'\$Ec4z'L cu ҇H/Wy?z7o^HD.=
-#Th|`UGTeT*&z:B37*6~oH[gg]LxFUHx2+EQh!aho/9IhRzZ4I-ηQHOӀM
-×Vz?2yѐ<m~Juk;Zyu uByFJHƩ#(u` aݬV1NrhLTuXʮ^=e8T>.^0iţq r3\c,\GwBH ݊/\1- Q]qN~4*)JVGpPCNXE:0:M۩i!t t:pA7dq5y:aYD2ϬN"ֆ'{;5,c |כ/gECIVZ<nt[c'lp2T܄:q5y3wjVV0{ٲZ+.teg2NXT X{9.y } uhQ!w˗
-3#+4헬a(9dL黬{t.͇;k ^5 ;f6wVΪjQYIMAYX^TM_U(^50 _Qwl5qؤ6zyFZgmGFeo4v[cD-;HЧLl^eT\}# ' B.uBVFX=0T-zħ TW-
-N1H8.©cUF#xD۲(wZfd a`ǖVQe t9OZ"hLXpNfЛXџ*mܦvl晷݉-ƉkڤKZ|8Z,dwH~=?8 g0HN+m#Aɚ~XiXbs;::
-VSº0[钌^L~o-H|}M3x1{+I[ٶ<.#4)(*aq"٬ ŸP3w9T9H^o椄V9={&
-;PyF>GEy!zh!vVb;AL#VcU{\5ցp+@^cK22"W{-XSw,=Qڱzcӱwq"؁)D
-Rpcr _+oWGܤ !d
-4Y7K#lJn;LL{\oppwfY5S@j-|7 '6vڙ%`Bƌ0NRJ:4T4h9Zd=lc15#JV6 ف
-8~b͕]8 vL h?NM2
-A HVJnNeYT+ae$&=N@qHG+BK^ϵKiDZ_8GZ95^ʾ$ًX4Ϧj&.8
-N8;HL .#S(g;6Ǧ{k3SfuQb$RF\jʮ?,:QB[ 5#/VbU'ƱVjb6ʦM;өDm NJR|n&a~L3((1\Q@Ƒ53ҦTؔmwVjRrʢMӻTa܆q'Y'C"d(2" fb+7Ze+fbU)Ʊ*vbr6ҦOc<۩S;Opq0BusPE逃p@1JB7yQR-lUnMng&"'-4;>4؄uH@Av[gʪXiՊqڳƹX4φj&.hF}
-zjʨ<:tqƥc־<<z.U2kP]rǠF&BAl-
-Ā9`G؀CFv;!n?zޠ]~+1;憶 yw{9`/[*ޱGonL~\V"^ t?[uGomCC] sm&4TL@x8 [ȯ8$k
-F;n6'|Q{ߟ x7V%}fmF_jy"+pN*,Ik}`?Rڹ aЎLZ7' hHX@b ? %ح|
-/sl70}DCP5[A+1?ȷ*
+<< /Filter /FlateDecode /Length 5768 >>
+stream
+x]Ks9WԱP>WWV5'61'> 2Y d(@H>7ڞ>?źKiϿ=($uQN P_/ R' F椴7%LCOG<~>M?ޢ1I_ijmEjW," tB56 1?bXDQ6yfRL)vGj'$&YW뷐`o2Z?e M߭qU\R g(]aL]n/痜ٯK@Ë6k
+0p*nG P`>ne3 Y&43 QFDEA 16dD7FhnD`(*9'?ffLu>̂ Yu5޲}}VۣQVdy/̪M7sA[,~ {
+ALKolL5A t80mpSxv!`duC x p VÕkÿSu
+~;N.7:8_ Uxdn JD.s*bR^{O#oSA8.]d:j9Υj͸usKӡ%=GK<QS<#x[DQ9 f
+܋' ѷGqxՖTB]O~Ĥ~u鹟Uآ1NH0tEk_Ldȕ8 $.z} B?~̏0bl>{=RLG:Eb==I IaU
+:M(\ 2E**
+xn!1O󰫯xV0s֤K?d פ
+ Of$Jqn\ܦaӜN2SW)?p-@1!* w!mI/LڨKGR
+ #*k_>6,5I=xRP0fָ轈-o3xZL3}cl¤M;5-9U"< /\lJ
+x^Vfڅ!&H*/*f6˩P{GzC
+[ŧX_MhIc? cGkӤs)vׯB5ltqs* Vճ[&Dj Z[%Q} Jd%ή ?DΊkɂ≭--+vڤq53O-S$L0+\Kox=|_i2=h=1 e4!guar{ t 6g
+Ì6BUimm 0fx//֋.U
+c5Qx8^Nؠ
+ԯ1
+ZFQn_iCoB]A֎T-}[uR]<|YWp~lV
+ #m_UN,S JuBZuU't`鎻d4&pT 0)wK[Nc׽>I:v5W9CE'n#WQz6@5>#iPځ#okVbM'ƱVbvʮMлiЩD ;U)VfgcDI@I2v:Ǯ|{RSVm:DžLLf<M`^&Nkҕa!Yʰ)DQzbۚXkSqlʳY.4/v&S&[U+ZsQ d(HIV1oVj]ƭ+lEUqtקY
+0s[W7'hME ^m@jWp[ c/
+PKJTp
+OT
+[A4`Wv
+N Y_[(<y0C*U`;4Iج֔f'5O/E8=U_ nExyz*p^J1ZiSoAS VEؾ~W|~\w*녍xWH[Hul&QIj$X+pbE_Pv+[@5[
+[@tZR>8ش2wL;6oC**<N)weRߎ{/
+ԀF^{3S{Jioo9B_+[L]~DMKod|[Hx>WI|v$<]oq F)`o}ު;`o6܏ w;{}޾co߱w;{}޾co߱mLU\>fA{گҍ"cŀ'X ;^@^$鮑!
+;k5^]+W7O1mqM@\{`pӶ62}ĩT6Ki}Q H@yݍkWpZ}U_^. U7”(
+.ft ZBl]ws6QZ#r
+5{Dk;6M~yѻLow5yn2?j= /O]FOVo1{n*C/L\gH-M`;lZYx Y/75MN[2 B}
endstream
endobj
424 0 obj
@@ -830,2789 +848,2852 @@ endobj
[ 421 0 R 422 0 R ]
endobj
421 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.89 67.03 247.93 78.488 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.89 87.121 247.93 98.578 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
422 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 260.985 67.03 271.442 78.488 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 260.985 87.121 271.442 98.578 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
426 0 obj
<< /D [ 424 0 R /XYZ 78.37 808.885 null ] >>
endobj
17 0 obj
-<< /D [ 424 0 R /XYZ 79.37 657.502 null ] >>
+<< /D [ 424 0 R /XYZ 79.37 654.446 null ] >>
endobj
21 0 obj
-<< /D [ 424 0 R /XYZ 79.37 620.11 null ] >>
+<< /D [ 424 0 R /XYZ 79.37 617.053 null ] >>
endobj
423 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F74 427 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F23 383 0 R /F20 386 0 R /F29 379 0 R /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F73 427 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
442 0 obj
-<< /Filter /FlateDecode /Length 4756 >>
-stream
-x\9+&q ,ae Go`'.ūHY,"7~>߾}!3o۷|L+}F0n߾poekǷ\>|,'|%<ܚD@ o:)djˬ)
- <^uȇx2H8s3PVIݢ"$Qq7@T <9ɵXIJeos˕喚[ޕb"$.#q*լ \;^S*fQy` ׅ3@fp?j> WmKxxOLiDCH\I>@jfgJwoA0|
-ql>Zfq`ycEIb|tE
-"
-o-Y5kb%FS֒%VbK
-i^uY.2Wmqn_:GgvM幆<ifO_CB$_XJ0BK.Mw&f]nȤDDO2iIuUxX(784FZ%oޘꆸqV1wYަ~B)&L
-up
-j^fJ| t[)H97uɉ &rtX<7#9_5, X
-G\[.ms=<iSz^HyklEW #cU-M WBTο]lo( ]m+4SüA*a$ӈzx}ީ V1n:2Ym`7JC+C-˻4:ƑL]U]g+Ąs
-nw٢SuMJGX[#0Լs9R(MFfd-L2?!|ZCLtk,ETD $YvuH :ٟ:&^hula|"Q2-$bdt4M?S%;c b3:~ZDuyk3H9K/Yͤi1sp}{2FWh L=r&/C&1dH[ayZe~nN,]kC9]{*A%9㮤 V{lsdӔlQDyYVifb4f2 $G貂c:c<[s՜7kyØHЊ+uz$YV\zQӡKKP;G*fs>TǨDƕg3f+ךgimVݜMvzLkuF/ ɦ Dz(Icx F#*XdWvɉޮTgg 8xlY"<Sh! s jppSZ2>
-Yu7jJ{_oA%ThwIej F!䖛S:- xf9cg}8/AfCd.a58h2\8~vWF7I/浤4AN+У'.H2A涺\myfV4UhP7+ϫvOЦC4ҍ^F/J'Ÿ^ԡ\
-6
-Rkz <88ʨg?v[
+<< /Filter /FlateDecode /Length 4692 >>
+stream
+xڽ$-߯V70Xs}}3Û>'NԫzzANW(7~ 7ϼn"~7뙴7kFܾzJI˹sxx?b[&{K0=}8uo?b
+ a-s
+Jyce=!̉VF䷯4U|·,CB:5$-7B #LD D,m$23Mݪ@
+g
+?=@*7BQh!F܃8VY(*7coτ̨%ERiѨSdPsYߝX. s)$
+{Y—2e*.Qď<B5^BqYP:fL(ͫL8^4aѫ+ &TeY`I"5WeAnTT=4^HBټ9~GPtcFܿہ"3 #[f5klgSÄ7+,iN5DgyBz%N5dЉn1`'Ӱw10]Uzȥ`E0ǥLUb Mv]eV#Q [ѮnGc%"8Ѣ,wQ4c%uUE68آ ~ĩ\Qi~YoSDcVN@+ \ "+6=/[<sfIlʲ%}+%}7,Ҟ$ =2nS/Ŗ7Cp/ <Cʳɣ"wx՟Wv4ܐlWtj)`_O/:<Ճݿ}fV:_;x>`z%>/[*R=i">;0+&R;`Eov'~93=?}^lwv'x? v,:8Jg:PR@:8JSqĐ< }xN'Hk$(3uX|`hO/vtRIƛRixG)󊹡37:siqE hqYqU
+{wQy`@ׅ3-$LljVuUmZ* p3I'H\I<@jfgHwoA羓֨}eaֿY5$N`URʽ;[&;oɤ
+ق`n,$WHS.M,o`b-R~{+W!ϱpS\;󰣒|`O$!ćǸY擐hB/ MD !Wp0~"KOFj6cITT'qHߑ{[[^\:*eOlGL=mfʏΓy6b- ]Eh%Q1cm.c 4ThnK=K w}o Sê$e݅] :ex6`C7Rdg
+`{#+;7n^Ֆ~L4QWz2 B1Ov4$*okGP$EI) P{a v](Ns&-
+B#h5H[d'<^CCn!><IeWd Uu! ^ qʈ6.mwLL4THb,C@Ƙf6Ado/|9xR\+"t]}򴆧|X繪~(&TuPA9i-8\{Jh /~zƋ!+HÂM>=j!Liޢx~έdݸ'Vx76D-5y1`VR8q\\`@[qQoCdK6Oy[HWELG$>iW%n`nI]9vTŃJ |hb7AߔB
+KvAYC-k0¨{U,^ss\{ӯv ‰.<
+iMDdy<ͥjgfsw
+wrsz
+o¡OZn=|HxBRVOt\*04
+ݰpr)oM Xѣx=f kokf?ZDq>-Tun68~<W-:FW 9P ô'rkw.G%ιlAK2$3Y
+荁TLVDB"$޺-Vdݢ eI+ewKleƂ EJ\H.GAa<S;{{-j1^RtZ
+M+Oy aE/rEA"13y-/CF1dHBiQK˼mni;>fXnXgFund,$9ӝ8Ȣ)Is-e(Ѵbq75Ѓhd$GrzaJkY$j)0өƢo R K"ei%l$r?cT79 'ƉBif 1? mx֌E|FX#7gԵ]]=Z]1@aX%iyl/Rz c]`߯pnեfu%Et"xP{ jpbSZ0W(tqX9s}\~%jdQT6O(Y ̃S] f.!J@ 51]Xj;vǼ^8c1 c)?[ h5^y
+M˔7#+yDI1Oz~X+#FePgoR7aj4HL
+#]qMF]
+J`f)*i$uɉMtL5`0c&gw\gi[&*.ƞ]ѭAr-6E;im8:>:˥>Jed
+:p[X-`bNNZ*Xu*N{AC1@"od4W;4NZS3T<,>uaZ&h<Su}t]716H↌i;@KcT}ueB}ڿhByJ|J"ƸQ8lJ.SܻGn
+V eP29YrֿkD^jSP <-`>IC'x]+yD#h4ih@NAHvk7IՖU-ĸgO̠ 4r(ڬ)[>ZLTMϗb>IN>{˯e%j`zNHxj窆j_@9'“~Q|( g:.jL!} Б#ccáLNV[VLtNnӠBv9S]oxٰPCHcĩ {KzXźwm:=Zx9CJϳ)rA%+:p:ؖS$LM]\KPg $c'zͭh|uxh#s>v
++.-=OesڷHu:UƷp)Z;;esI3/֖- }/
endstream
endobj
441 0 obj
<< /Type /Page /Contents 442 0 R /Resources 440 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R /Annots 444 0 R >>
endobj
444 0 obj
-[ 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 429 0 R 430 0 R ]
+[ 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 429 0 R 430 0 R ]
endobj
431 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 406.344 466.187 418.299 478.142 ]/A << /S /GoTo /D (subsection.18.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 406.344 410.874 418.299 422.829 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
432 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.163 344.789 205.119 355.738 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.163 287.895 205.119 298.844 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
433 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 464.884 287.206 476.84 299.161 ]/A << /S /GoTo /D (section.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 464.884 225.569 476.84 237.524 ]/A << /S /GoTo /D (section.12) >> >>
endobj
434 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 509.928 236.981 516.902 248.936 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 509.928 173.763 516.902 185.718 ]/A << /S /GoTo /D (section.5) >> >>
endobj
435 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.649 224.238 127.604 236.981 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.649 161.021 127.604 173.763 ]/A << /S /GoTo /D (section.5) >> >>
endobj
436 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.257 213.509 155.963 224.577 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.257 150.291 155.963 161.36 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
437 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.533 213.509 205.489 224.577 ]/A << /S /GoTo /D (subsection.18.1) >> >>
-endobj
-438 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.161 181.622 485.886 192.68 ]/A << /S /GoTo /D (subsection.4.5) >> >>
-endobj
-439 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.837 181.622 505.811 192.68 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.533 150.291 205.489 161.36 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
429 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.348 86.285 347.573 97.742 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.348 95.454 347.573 106.911 ]/A << /S /GoTo /D (section.5) >> >>
endobj
430 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 358.276 86.285 368.733 97.742 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 358.276 95.454 368.733 106.911 ]/A << /S /GoTo /D (section.5) >> >>
endobj
443 0 obj
<< /D [ 441 0 R /XYZ 78.37 808.885 null ] >>
endobj
440 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F67 393 0 R /F65 391 0 R /F16 386 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F64 391 0 R /F58 390 0 R /F55 387 0 R /F66 393 0 R /F20 386 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
451 0 obj
-<< /Filter /FlateDecode /Length 4573 >>
-stream
-xɎ%>_Q?ځFii9ML}u
- P3ѳȓ7<&y v vM)V*&  $lO6!
-rxN*.߇<c Ҵf>r`>՚=BVgdMM/?VF>A-8F{H"
-{ p5㏑6jcKsGܵOscQ*k !͞//|8h%pXu0AҤH0"9Su<C=HNKp0ɨJÔ8w+ޝI<U[y5E-زC%c`]azmZ2)t u"[Hd#C:Ф+iG]ʓy ?!(H >F"˱?ېO_jY%z.awzײs9-KMüsD >i=~^:IA<З9 H:敼H?a7}C3D!yϙ)qȃsZ]} .RaݛtY-[,`-3^ϛg(#RQ僴 a\jC"+\LYaX&/S&"EĪ7:ګzpuFDP$9\V^W4-R&i1na}-7aŝFq U8Pܲ>p<:'8qt?f gv1qr?+CTI%NO!٢HУ:4zK%~vJ d TMN2yﰥf$VdZ S+EgNk%oh1mjf 2hͤ`ԲȞDy뮆/\B,|Cg% _ <Cn97@d0BdX&-Dĝ"wR3|dMbQℐRF? R6G}}8{&8\f#x^m/=rfO,>}UB2wWF3O4W|J뫎Hkռ_.0dF =򴒗Q6`
-|g5`wK-96rvMq#ܝ+ x{quZ] |PӝM 5#}uV؟w >j< VzR϶6fc_OE5_qoW8hIq2utl?Æp`c[P?gmwb{;p8:jFPBQ=:"h=Qf 8\T ൧a7!> y8zۤ}De
-9GhX
-o2\\N64tkފf:kLMF"I헆S[ʵU"05fV4l,PuW8 Ye5K GшSpB%0m,&&\1Z ;W`,/ uϝ.G,z֔Dp2 z |^%csTs"<oOS</ҸډZ( %UF+THbPJ`F 5B.I#HW6 =z dxj)O(zQtaVt4tՠ!j.L
-eWB4WAp*&'E~--Vb xG'>eer5Xt
-
-I9-5-d[YW}h\ 0)T-׍Tۨ+K6tc՞<?Zc-ZJ(|d4P}׽5SX51Bi$@54lILJU1&R$L#qk ԉeZPu V"S_`I`1P:ťo2/0QFVtˆm>OUFBYvۨ1Ĥ0a5zIi{I/yt{s"T;*зxuתLjOP/|䘯΁0 ) gK
-8-LNyi,+%908Z`{L ]'~\e?[IVL> 91h^jS=p~*wjܸ ̣K&!ElQBhP7<4H'e 뮿{R9* AzFW'v ! "1~[wti,N<n2B;  yTQݵ25>0B;U-|Zi=-]
-2={`;e\{)#S HOƹ8,MWxl)ZʘEO)fшf7J޷x'fH\HG{:q!H>M}$lL{.>%s_wY2GlTT2Q#ޕ9g!km[&u,؞tR^նF
-Җbn&&j'?Nw~m:rad'
- C*L_ŶzfˁP'[5T׭F: 7e{?]}7ᰂg"nN(frtsϦOVǀmaч=+/û(wZN;rjNynZZT.~{cG[i>^%.H#*$]8A,^y{rPY]퓮ĜUk" m*fo"Xy4CSty\;z^?vXS]o׽. <C(,Fa/b&H8gBJnm=j7=ߠWrUȈ]j(C_r'[˺N'[M:<•87lc-S[;džxez0;A6Hq P 
-zs"܌qDwzВкƬX fK#i[hAj˙ j:j71aE{UxRZU^W|zsCwРѧ'^'ʩ
-wt wwF T;Ϗ-6;909(\Nyn>&)N!W
-EVz<'7
+<< /Filter /FlateDecode /Length 4410 >>
+stream
+xۮ_1?DÀ }r"O) $/Kss| p^ I&P˧_'>}7yz0j$&뙴5q#_8绛()q4¹Ƽ6b[KKpD3g*0O&f]*ay;.Sr@th}-)! 㴭
+T^*sPˉ4HNML#5` X<:I#<6t|Im l<o7Cچ2ᬅ*Y"Lnd//oR*CE`zLAFǑD:|^4A{*HBxmhYr5Qr슎g㜼g
+yRLynIFK'"}O/>?Ӻ,r`b?).z+&[dsL6rUF1TF)&n1`,RVK=yLSnOCZ0uedy)V1!n$#x3xa..iSKc0{liaKT!@MJݏ*rhS D& m3 MSK_7NB<E,۲l5N׿VoᜁZ9.)<JF 1<*`Wӂ~iƶ>] h8$jxMa 4X]ԗl%N .M wڑ"6&_Hz ̥ $Qٕ) d > f/iecUW򺂗+n}c횖&EЖ ʊopj w:x-BkU.).Ȥ5&.r"?zܰϟ?xdXkW_6!wSFpu#bMY<&>Lp?M+ K͜9sڞ>:nJy|Bnp{T؉vhiw-"7_Sq60~u[f¯7LFT.p%鍴
+@E{j:ÏuSIEoZaUdy$B:% A6ɆN~-s[эifN?a:k2ca@)7آ0U~n%(D :ak`ͬhC@1tE2IU\ܷ2shYpB%0mB}YXz(-&wvGX3 '۫"F: vs[JSEٞC- MgP9-0FMvv=2Ż[=):PN`W̊;@Tˍ;"7-W]pj!5usykaS@wag#O02,5ؖI"eoixxb٠p0OulvnM649 yuS~&;jb@G˝=V6fa(cNI3:lwIkiȓxDb=p'IIB gǽNN K_
+e-XlߢR@io~#yڞKS9 5mV!_XҞPS;,&-; =m3g,VfnN4"`(*>굙_B'̌Ho]ㅞqRN\ ]*`N2wF⣤vʌz;I8.0pJbHcr,̜oϥ-
+zTl·AQ1Iq3WUVprndѾj#N@Jѻ5^Qqw޶$]3)UР8h"t=h1 /^wLi5]\h6IcQ1vw 3Iy 'N܁ӵRգyKQSf"@wЎi9*\>v\s
+Bվ-չܰ)>Q1+7tyZN˵GUsbRWzzg)%cR oZ,d5MY(bP"~zOeyP
+7&u,wfٚoȪ-rz^)kAvfbD7O+R_:_yG=J8>u
+AZֽfiR.xkv\եYN`Ex"_d͗' Ma}@8t<D+s^|;)ى4{8mh?Wښ`*J&zJjXU@yMYyؙ-?gU9}{M'/j$p9Ї~nf;)yUk?լmu=ǔJ++vt:J0|\ꋏsYg\] ; v}`a|R}|ն"d'
+3RQ(@.AN"R0c\ I+e6JrU \Y{Ʃ`mp-6 hUp ~ ~3 ] ~lqd# :&:-dw
+'{~9 -`zЛ[L"<Lk?#vxQ~Û~܀_c0']ӭ>a ZVJ^)jׇ߾$?^ ՖLk-0ţ#ޓe:ūTNc;ᨾtoqWuWY3r.G3)ʫS7acpO%'/E[] `u6᫚
endstream
endobj
450 0 obj
<< /Type /Page /Contents 451 0 R /Resources 449 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R /Annots 453 0 R >>
endobj
453 0 obj
-[ 445 0 R 446 0 R 447 0 R 448 0 R ]
+[ 438 0 R 439 0 R 445 0 R 446 0 R ]
endobj
-445 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.932 400.538 181.657 411.606 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+438 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.161 758.022 485.886 769.081 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-446 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.608 400.538 201.582 411.606 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+439 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.837 758.022 505.811 769.081 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-447 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 98.416 93.099 110.371 ]/A << /S /GoTo /D (subsection.4.6) >> >>
+445 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.932 312.451 181.657 323.52 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-448 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 108.82 98.416 115.794 110.371 ]/A << /S /GoTo /D (subsection.4.6) >> >>
+446 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.608 312.451 201.582 323.52 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
452 0 obj
<< /D [ 450 0 R /XYZ 78.37 808.885 null ] >>
endobj
25 0 obj
-<< /D [ 450 0 R /XYZ 79.37 552.448 null ] >>
-endobj
-29 0 obj
-<< /D [ 450 0 R /XYZ 79.37 169.071 null ] >>
+<< /D [ 450 0 R /XYZ 79.37 464.362 null ] >>
endobj
449 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F69 406 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F65 392 0 R /F56 388 0 R /F55 387 0 R /F16 371 0 R /F68 406 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
456 0 obj
-<< /Filter /FlateDecode /Length 5199 >>
-stream
-xˎЊ00dķ ''
-2jijLJ8.|Wy~ ;n
- ROVe05Wil/[G#
-(4g^|<1~pŋeŋ0Ixc΁{AAAs 7ĿE5Iv 2VA7A:+}/}Rؗ׊;.jSYGx'@H,51w8 goe~6 u)Hic12=$Fp3샯8S7PGG#~oj4+kY,wF;6^ʤYU89,IBᬉH#ev6'6uhFQ 9暄.^HD7s2hJD=x~Awot<
-)
-ػ yds3y+a_9
-ă]} pU>(yJ+ݨF]wgAnxgѶk
-};JhtIWAl'#NwVq3EΊx-BYeg\-|s֤'"ǧ'r[>6sl5ŃxaMgI֔39=)'ͭ~ڽ4jIIxk;mᦱK\8~:W>Mi?SDU7S_SSBiΤ n-ǿǟ߰v}e F ,eBR[^~lS$,Pֳ6ݹy^EA"]0"f<"f"Xe2ωP~qqIXm'XHkdۙ ubGqؼep:k#pq}{:Ƿ%5Ngs7%xoM*1Hqmwɛ̏szwڽhw,sK/5cHiSEm 4qU5o
-|ttt[OLأpZ6H3{){2uxLzbz.~Ye!/7$ #L(3TA[v?q %U b@mp,&a-2Niaqs1#5-lROy`7!0vo;;ag]흠Mq* \Ue vzյ6þ3bE]:3g6<zҩzdPA', |D燗 }$+B4՘;@
-.yHOūpV~N{G|p!ƚD='z䟰D=y{}>w'Y*Dc_SDDr|ͥ-5ݼ
-A}ZZ UVN>#^}
- w@ IGQ &CXk6lvE;(,ushk  ="6ʰ*+4R%8a-צWjq1VFV?wm[N4;ږ~E ފ*1:LBYcY(J\R936J܈Jmmۡ˒Qx[h$V4 ^6`s恤JsV gFp*+c {W
-o1 u@Zh&Ql
-le:&87
-VXnjU|z8T٬uf"b.Қ
-+֊Д}6HԖ3{ho 4蹗3Ael'²Po 5i]~-2ܨlđM}2e
-UaW&IMWn[\ĕ}mk۝F &}Ijpnԛu8΢}lHʴUX)LJb-}ӨVϱʆ}Gs8TCmYQA6-KO^3df~MӪrזw+s"&s`:0M#5սemT:1N=8ߪ:(-yJ(Vbvf2$[1GqN|W02~neی 2KhSJBD;-Ryz/5BF
-!z()QNU.wzLBQb뇗>QPހ0,2E6^SɨNjwzUyz9}۾촷s) ˑ0Bo~+?M_o9'o }J71oȓml݁ݓRf;>G%5#y &Aߤ.פ>eX&ש㔄30J\|VcS Lcx%iXTE]h'EPm7"(\pmJO$7`i]Y%V8e|QZ:NJx|Sy9N1I7ܛϱ۩](.bͫY96O
-q̳uԴ5jrfR-l2.):"Y2&\;PK@q<+k#YWm{;m^*p`pƂRh,f} l@c!veQ/wy+ŇWTIVh7YuEu =G?ܳcYqy1ݡ`)1@44prdg3ƳH/jO ߕ[nVX3R{x
-ڹ,I
+<< /Filter /FlateDecode /Length 5261 >>
+stream
+x<ˮ%t||} xVxd3lCEJS;}H(EuM~_>|M-9>h|nf-x)o|;lREϝNkUܜIs+-/68hZ*RG}ۘ߼W^P
+٦})pɐ'wI4ŔݚnC[\t&lЙ6L%Rk6شׅ_I6=.c$ ~s.d`HOCAc<Q*/ބE=ô@ K^pCw5ri^^<No;v݋7.&A(,\nILͥS6fK`=(q<T]'ǚxx`|@ڌ:e}y#NJCzj&+]jeY^U]w-+EXn1l tfAwdi fV~ufiJi8FB^ݾl،w2>9~`<=pXH}y@y®W` fU
+0x:Hoޖo̟$w lo} 
+Ү[*=°}!KřP $"
+bL9ҖK 6vm F{x k$Fx
+v0Oڔۅo?]K+twδ
+zg%{ 4*E"VY
+ZDw 2:ۍ$۬=Ֆt' .al
+iy:mŰX ,jBrFl*_\PqEHq )aںAq;7I(b~-7>aUUPRdF ;QM$ WL$%P)&SVq,vSy ZeBXJ)I-Qj%;dMQ'ֵ$]&A.:Zb6aUMLܣ2ڄ!۔8%!vhfE c51b,|{s)14LqI)29:0L$GSiRAOYm& j.؅K= >aUOP<mjpmR]僎aV.֎aaKkYN~1<]Uޞ@H]E'Q6 'Ԉi"ɰ&R ]zѹTQY&H^5*
+, nR1E;|J&\$oBuX>d Ro
+(bqF7&C>F c-1Eb,:w>h1YNpHJpW2[U$y]K*)=ibxFR$)a]KB1E;Z|J&\$j*$n<m@H(NP2BY2xq3rF"eEMJ⣨0+%]/g+t99'\&vT*tꇅY2=mt^^\hӊ:[ViVQ}!ayLN$Y@vTsW znzqgL=ĉ>T9*,_LjUXz=6EV5R0D>iM B/t>'c6XԖ s{Yh%W[&5ϴ$5l'+bFi^| QM ߭EE8 Td H;)Sܒ,VbzY֫s\}yaotZz4KYWӔhWֻ yٿ/T WJ(RiۊZ'O5oԼ1:\tSʣvgPi%,2zdpNeWkK;pAjM5Qln_pP9X:oFMאvjPoγg0(`M@>EDiHtxSR24nʑ\dž~ a(E,4 *o{}Qr\e]OuRGL՜҃jN(X] E
+z*3[Wn&GԾ,˨EϪ?DM?S/
endstream
endobj
455 0 obj
-<< /Type /Page /Contents 456 0 R /Resources 454 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
+<< /Type /Page /Contents 456 0 R /Resources 454 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R /Annots 458 0 R >>
+endobj
+458 0 obj
+[ 447 0 R 448 0 R ]
+endobj
+447 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 701.166 93.099 713.121 ]/A << /S /GoTo /D (subsection.4.6) >> >>
+endobj
+448 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 108.82 701.166 115.794 713.121 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
457 0 obj
<< /D [ 455 0 R /XYZ 78.37 808.885 null ] >>
endobj
-33 0 obj
+29 0 obj
<< /D [ 455 0 R /XYZ 79.37 771.024 null ] >>
endobj
+33 0 obj
+<< /D [ 455 0 R /XYZ 79.37 682.839 null ] >>
+endobj
37 0 obj
-<< /D [ 455 0 R /XYZ 79.37 451.007 null ] >>
+<< /D [ 455 0 R /XYZ 79.37 357.159 null ] >>
endobj
454 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F74 427 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F29 379 0 R /F20 386 0 R /F73 427 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-460 0 obj
-<< /Filter /FlateDecode /Length 4497 >>
-stream
-x]ˎ+ 5JvWNE
-YA_̡/AXR
- C0A`lžA2E@G8L/6 ; H\9
-yR9i%,``Ai h˯ү2M(FD#LjbTؖc9XM ;D.=R[ ,=Dql)
-Nv;9+8͙8Kw 0sK1
-LjUBWѣ:ǐ\#,~؇Cv0]g鄾p{Aq:,a50<|V[v_cv$(I|Ovo!B}@-#! 3@SW7xC$0+x%O@1i>w}qd Oq>7G_߰0
-b;(!a[ mWuqK
-ЋmAM9`[BvL^*6m0 ~\誅ͭ
-Mv5^U _{>T=ܼF T!9>3O&8<B,z^ . oPL6T,)i~5N߯_+RH`¢5x*)ŦOKOi 0՞>-'ƷC;X{*[~ߩo<eKѮn  XzߩROK7x'aep":N!nŎyEkHӸ6+jo6hɚ;۶YD{n|Hs|7Ues>LC,k%/gx
-Ub<Ec 5w&7ˈ5qMKǿs]&A E5V)uɍo^n0 ey0"y7pQd]+iK{Iud3{˟w?Eg<Fr%`k|Ir+\4zY][VA+: {mYmJ^֏qǶ^6cM
-cxs?x xa=/Z "~7Mm)ȁX_X_`L8[<Y,5D}E
-.M> Z_ .;>XA,+7߻ ۺ)90,aA<-&yh86 %*衪OVf jtDDuI!_~kZohkPmR9ˆz^IOf
-yُgeK#
-kG7.D6Ŕ8Gōw_j|9
-^%Z3ŮV>4#Ť|9S0/7o\+u=߲sx 77N/+˟x!iҮs07_lു ccYbd3bN}G|j-{Y^̯//}ȏ %B+H#M|ӆg=sw 4׆иOqmTM}\B F>µQ5\H
-frwoFmT?^Y8G݋%O@snv"! 3-AnlH{qd &x|ݽHPLQgA^*Y|CUp'ɟCXodOh( Jn18N1<Ǡ 8ʍqI -AplPqH sLp'PqJApqJ s'#8Oqp%z=UQ0bpcy(9LAq<ǀ`86x8B8N-<'9΂r8B *hRO!4%ܢIQUqA -Y9Ƙ<\ǁ<+}@1 zc(DJ`f8ʷ8Prg8 ʽ<
-c8Or|g+刼;Ùa[DVX6,co™QU=؄F6 p7pfoʙS,)[sf3MwΌ=gߟ ׿ֆ4bY9})v
-Layחn@Rhhٚ
-tKqcNnV6t%*[:pD*/b,4Jf±$A[8BDDl@` A_ P업܈ʊ_*)cmGBj<sR))?U<hn'史׈%,3DUȼ.yXCu-m$w*BOx&>UWdieA^!t9SQ ו7\kSvdaQRϋBne(ߌJomRђUJƙ)M]S҈HIJL.D-)ɡJN1KҴK*r=uQh_ߦd݆GB&[28źxoc+ʺmYHRb-R5ۂY!?ƵOI #9G8Fe[Ϥt:X%SJ;1IIKppZ,4ˈ Ig=V× Z8&z'zgU=%(wVQ=ֲB`hdػ躳=/B'7ؽr@rr+d+$m k͔SZl5IqYT!^1UMyRKz8͇.LTOrETv6dhv(:V:/!A xxT_n|ɶ+*kbaRap
-ip O (Ǭ3
-UM`23S(Uq
-]jfu3Id/ɬ{pdM[[B#4@X\BPP~hj~h&uMom_1j,=Mˬǧy MR*h̨|*ox`J/WHjW`.df[;^T||hI*s!åim(󱽒='yd9OLv%$ hWDŚX$|tI~ט*k1Lɥ ZnlD`ydO~4 MS+QWR c6&7|m ǢCLX[_7?{;XI\y?^خ
+461 0 obj
+<< /Filter /FlateDecode /Length 3981 >>
+stream
+x]KܸW4#I```Y`4o=m9$\SŇ)8vOK"M~t}Ӈ>3k/M7¨8gvp}BKw 57hoF` m*gG_ ?ϣ]|}7>4/Co@lח!%WJ@:yM{=*xorZE2rRK˸ϱ8"
+
+?8;Y#/b[}?:qYil}_5x }`߰+( řlسޖ+ڡ}kԣj"4^OZr[=_\{_3eYV %j:*-
+aVfJL+X
+* YܵbJ1zZ2eTI!ԕ O}I1B2IeB_?|.H݇w^׾M~ > ^?#wz hF`u2-!jHLyRh}C͊߿Me^ Lh>B:u-ٺrƪ26~)}H 1i<S7L{ }!*
+Z|xh:o
+Mxway"p-V̳ GQ`>c_n
+ ۢ}E9h8degg{EdQna r19^"(ɼ
+]>ܶI0n(
+gKC$70r@ 6AI歉B8
+ʝ7P+S&q (ljy2OdQ< cr:i
+]>4H"Q7f QcS< ۘD9<O%tcE9ro'2t;D9ē=E65Yc<O`9E9ꘜidB(7< Hu@+pI 4X9dQ@4
+=L4j)\iemZ4TgR"T5.8up %ad5^*fxs(EDUB`2zbxU),/I!V|:MJ9H 7a amutfLgΌ5GP9B*<?|nФ~53j?a 0j<Ն9Y^-2iu#賮2Pd2O ]]$3.zkIĩIpݜ/ ±qQ#&Mi⨒PR2)($*U ^z瘎n[B2UI
+1m9lu& e$fNd9`z}ZJ.RYWt4N 4BKf(D ^IDB ֎ҋ&j>yurbs@a uIʕQJsf峾j镛$֚QtqB5q+|sޔ
+eHm2c1YQT>B ΕF 'ƈ15U%
+ֈږkQ>9Hj]#ہ4TS m,=x'V|O42| I3D>V*F5\/%AzlZzI4Q.H
+t0+(]{]4\ZJ^8
+g"QBE*f"h& }g|ь+
endstream
endobj
-459 0 obj
-<< /Type /Page /Contents 460 0 R /Resources 458 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
-endobj
-461 0 obj
-<< /D [ 459 0 R /XYZ 78.37 808.885 null ] >>
+460 0 obj
+<< /Type /Page /Contents 461 0 R /Resources 459 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
endobj
-41 0 obj
-<< /D [ 459 0 R /XYZ 79.37 249.044 null ] >>
+462 0 obj
+<< /D [ 460 0 R /XYZ 78.37 808.885 null ] >>
endobj
-458 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F66 392 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+459 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F65 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-464 0 obj
-<< /Filter /FlateDecode /Length 3604 >>
-stream
-x]K$ ϯ?ЊDǀ}doANFCK~HK]U]鞝]a_"EEk5ħx//BOyFM{JOƍ>~Ƃ+\s._>+2}w>O?~~vk4MV[f~DX Q&&Q?5iί6K w)\bGaI'zNp^W<sIu稖׹%vD*G>)<G{O!0]3He!>}^"j2dCDYKGċ'Yh_9ji(c+TE可I/3=t'8<s>BZ@Ckh,i i-&- P묞88darE` /U8pb,s 'IZ/h#GgV%+E &-ġ&dZ<D"UP&nJث뒁)$(L[f<gVB5XW nI'Ѕљ* sr+RI혰crY&_?ճ?QYHt1VHW$03A&uzJ 36)H%jI1j8ˏuIKx1m(oE>*bBz8UH[1LsT5ZpsՖ{)!sc][Pr:Ñ̼[3;HgOg:NJ:ә*z&d/jkm.O,JcJxV @uҫ+ #{*-mfm< Rةu<Z.8NzLPǘ:x^dfLٕTmR?ty_l# d k>k}^i˫8~N
-t=f`;huN,贾Z^Ss+l4iBk5A*RW<Ӑq[M.M8̾ :a?T-Y:hɶ^^VG]{|Yu!KZt'd޺ O\5B~c߄ѪM v-S Oq?? ErL>xsT&\|O,fͦy~0'`D9mOu,S:_ shg@Y^FflcRҴ*=:-fL1aß]z\D7my$f4c >x&~~ FHc\ObNuCoæ?Q74 ƔOgJcbS
-11CNS% ?dž:G=U; .rNB:)x~:p~f v#'ƫùxJ: 4L?OOK<'˔΢q0዆"U^? O])E抎E,~Hg>Y1f7]늋RܱSEV)} w9лlt4Ҙ 3sn
-4G } gF Zf; fܛ te; pSd{3D9:; A|e`x Q5c(H]AL54k0r)3S4ī nnR(K%F`= ;& 7 MC0aq~C0HDV!`' [ Mw#0A] ʐn^$7 9 Q3#`' [ MW٧|H= bnAw
-0PORzi@ (1 Svb 0tw\IDb 0*a Rz|wb t~1}͇WA*x"a b
-BW,īHS~UQ5`n
-"dΊ KWA~wWA199oiN9" K&jxUxUE,0澿Z3-X"Nf;3ہ `i~+o!^APL_j@RCA
-*oM"A ^$7 i8.$dVn=4]A"Bkؽ[ MwE_4}A#ɭ@ Gn>r\yELv_ef6Ah~UqE
-k K@k 59@9@G zZ
-X zUwQ)R,WlJuʓ+M]<ON
-<C6%9#]7@9
-%!v5
-TJ"Ezl3CժkA42%D4Zҩ~REWe~Ϋ n@@}p7|%
+465 0 obj
+<< /Filter /FlateDecode /Length 3833 >>
+stream
+x]Ɏ$7W,Q;h29ոoOR(F*.E_Fxo?}|ŸNA'L/8s87d[.+|R>'|?JB+|&@2dS=)6"B*;$<qכ%I"ѥSLw/BwyFMXPq-h;'Q,P͐y^Uo%MO遖LHN> [,JWFh,]f$BA*|pYzZ<+jVOXyYuL,u9ɴ{u9ό9 e]^1N]*{5[ԥgZԚo?y1ʲ)~0i7ϼ!1H&LSHkIqF匃~@X qLLb?ݧס:LXGOcJJraJpH[ CNV~q aS4{~z$Uq?bqAcv|XSv8Me7f]s@<L13}cyU=S3(:3eN5{ ;i r
+ZKJ291`޵fLZ;sR[$M9NDNzG <假h(,l>
+nk<~ݯ3 l+/ki,lܒ uk{%M3>%U>-{TK{R]9[
+0.H? iqD(m5iiublsd)Idusmԩ!$Mז _zO%M:^iHrm9w/%7ly`RHsBi`;Pha@z攟Y.hɈsfXJۻ%tevbvMUVF%cŽZ:kK?{~x(!וT0U|U=rq}ՕD)Tv[96l"AXυSgI!)ŊS:LQm&~Mr0D/>JK,*ϼlўW[JHi%6K[ [4JQ+fBa}i%}-M /U7XcݢzҸ`sP 5
+GtjU5>~[:T5#d`Sp:_*ssP/haXB%`LQ\9Edae #tS :W˧Z }2%x,)+UuU TDmx9ϡJz5!u~j WJG* ^
+{Y5KN8ɼu'+5~*!obkfqR1KeG!Z\&hvsBkDds-r 0G{ΖTjU4RDr)˕xrd = 9HE8愣 5z9[[x;zN򟚻Lp iQ?s}}J⮘_0mH>70;'Q%" o#$(b r\Hz!='~Y(?ߔu8 *ưT?'rrS{k?<ĭu 4JFWP _,<@$_1~{SÂ_S<L-觠u3y??[ԽL `Af1{3p89fwɠ)<+bP>} M:A5ܘŲ}c@GI瑲n<SW9wX*̯Pp\{Qp%@fZx_ <>Fd4:ә_DjE d{#0βu*꽋@_@"ຼ2y=g yhj#-̡ \b92!ścʩ)ẁfnu`1:^;急z9Z*f`pp;\x_s9qPt$Vdž*w q$
+H@p6
+y[aoS2sQzo,ZkSTKˆi{Ow׶Nԡ9̮'HH}c:)xE3Hܑ;㢓hrtZTR=~
+~]]XFj3ە ЏyǍ~bC?1bA(1❓N8LzJ0s w2hb |R81b#a 4XƉm@2a Rw10yTb " yG0w*\ۍH>TfL~-󉁜1 _c~ϙE`g^1pۈdM*&ZN19191z0ϹHN}/Е
+] X[EA
+eX0  ~e0h׆A@3ܽ) ne: b= @holo tLlA*94ƄO LF2[H❓Ni1ABZ6 |R8o+XlSo@!(:PlD@2aRw" ?Zc" "v=_`H>TfL~-AĞyH`g2vU qC+*p<@AN^қ@N@N@NB UsTbݎĬM v,
+D: "4z."`ˏ\ M!AyP![5C BѹI_ ܢKcH<P<Ts PV<S-Tɶ2y /' ZoV$@*' M7b R:QP7 0
+R;Qps !DGAԇPJݢ ̑e~+}(: P @@hlZׁ?~H5ĩ@z@%0}89191@ҫ
+"ţqǟ^Ww|:@VX~~xQ>iHt%步)KZvPX?yvE:򖣲
endstream
endobj
-463 0 obj
-<< /Type /Page /Contents 464 0 R /Resources 462 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
+464 0 obj
+<< /Type /Page /Contents 465 0 R /Resources 463 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
endobj
-465 0 obj
-<< /D [ 463 0 R /XYZ 78.37 808.885 null ] >>
+466 0 obj
+<< /D [ 464 0 R /XYZ 78.37 808.885 null ] >>
endobj
-45 0 obj
-<< /D [ 463 0 R /XYZ 79.37 195.497 null ] >>
+41 0 obj
+<< /D [ 464 0 R /XYZ 79.37 771.024 null ] >>
endobj
-462 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F69 406 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+463 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F16 371 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-471 0 obj
-<< /Filter /FlateDecode /Length 5444 >>
-stream
-x]K\W(h`ʕ`ʈwAV nI*zsm hJER$%Q~Ǎ~o~yX۷$~ `܊۷_>sŽ tRkϗRf9s%3b ib]pɰP<3׺Y9f\뢢D>'I
-ϼV بXL;~
-kZ ϮmJBمm|?cˮ-H&_y`,<el-^z ^Qt1
-`#câٯl,8M
-YHXHZ#Oڣ5l/Vdtݩdrp#CTC[--3wY.i͍V ӢF0i֤Fs߷'GOj}dC1tkGf]Ȟ~aFl(XrEiPBe:џQH aߗ6޾e)txW3V4`Km'Z^R1a.C5zJ7T83YT`}q0+Rr~V1
-zzO/ );ZE۫:&_K5-j3Nq#RgL$mї7RY!-|S]G-]I2Ha:y3N~'@xPfb'ی㼕KL&JO$@Lw<h*^PNזy+ljK"R:kPW\ e3ME3E4q!^sa ޔ0_,-^P)mOkʽ3&Γ;5Qôrpy,qJҦQ}(%A%Hyrw7H}k2g"\簦LyEÅ z~R.+I##RiJ&^B~<ֺ 2@|hz*/3֥4|v:.vqGǴ>Uc)rM᪾5!}P,e?emȊR0-KOo@-RCXR>Y9릙P_7@ d{%Q]iǔ7XQnV!/%\CKv/^@˨g\qc`nޓ_i'ЊwrO}h VS߈O_yW3yQwۄav{k&W2WC$Ftuʡwͺ:S׹MyW~OarSg0hG~B' v
-ߖ}sbGV%!~t`ևK5dVZÿK=kr!}Q~} skǼ0
-߆b_O^7yXbɑ܃
-g& H02;H䅺 ҏB<uT r )y4գ&rbҘR(hZ|2 ap2p(Y5mERmM˪펑 pյ(PYw2/d@0B:^߆ҤP[A9߅k,V] 7S1څ{}BfLAFZ@U_2wW| f ԣAò[YW55iV&&t=Ѱ]
-YbY2h26$6&{.FHpbc(dxmEoCin
-p 7oGV^[ܨ5#{+%^@z+9-g, AiMJ7i)6.XƜUXuh .+iwqsqˑNWi[H2Ѥ}3٧,xھLN워*ɆM1@6wFƹi56(l!I K&n2g{c>Wu|c+ x>.qW|XMOJz*2gb}b%GTvخ*hQ*Y\[g"L?V$>/-_%~Yh1Xw<U(yiV=|#M$p0 H
-NUYE Hy•xFZ
-ETdS%U %pm@<Cgp*
-͒W$z,E({)!ta&͈q/'DAV5LN~y>qr21P<qP<q2s ^ J3#ř Mh 4,[.ىޘ7NAH:Op]<1^\bGD*uxlȑOJZJ=~fhLwá|imPɉųYjqUnvH Nc!(u[_'ܵt #RDPi#+P'CHj߫4 YCw&*ĬsHFFE$7S`i2º䱷0.&":D;,pPYw/,~CP\ԡ6&f<p
- [YuZ3pB=NAsD2n}eǻ,POPI6o!0`fy<iferbq8yY- K>m/; '`[aJ"#mĺE%LdG*[6Z͔qb21̟Nv%ˬC26 e+5{)g>eDgƺ:k3 'cb2A(\J/r>X}b/c,:}6,U?^< 鄮V$c@k;ŧ(`]S pvJ%<*Kx{=‡  i0X_BiXzr8"z|RC1Ub}>7aaiD,mݛ{ь+C)0l;*ЩVR'TL]
-& tⓥ#GaY/mQ,U.mͽ*בp9 8\Xr3&A7M.Bϯ#R?;Q /|1^0WیCt;-0zfOn$!e\VƠ4@gbYFxs#My;Zs:}
- P!zxo=+FK_:^qE2:jL12"VRrf'1|H4UT=6cIn펮_f$>vp_j 򋶖mC:i.\iUizYn3E,¢ssjacjp\d\n'$<kB[ `U[5iRKjtkKZIӯ{"yU˩nL2Opƌ%|&p}F4&roJ5Yg<魾i;Bz-z
-koup2bu _gxr.Dž~޷ ⨍L7OOɄjwښ `9+F=I P2a$te4?F}}q_q//o HvsnC|\,4#?tU:ܖ.^ptMzsm#]Gf^1Lʫ(Fwx:%SGm 3ee4I? '}Zkg{{ 0'ǝ:WcB2W,Ipxt u ]BZ,՚0+bY0a<ӆJ",D"y^ڮg^]GĴ#@͜G
-9Ŀz!˰ݫ.MէYE:<䕙pDEQ}f7ޯƟSpJ7hp<{AKe頂+;Dj] |ژk䫌k黄SRzɪ0~b!SRal[_׋_vcw.跎RIΞT"_ D0-(ʮ/nUWGE1&/qݶ%n
-PW%y|~s qHq}GFC5n[ h՝'yP>UB5%e9Jj3o( I_|>[7x5Pٲr"*Ԫ{}]{饮J~A˾b<ljlKբ_0IP6 elXP/$U#puRHLDbTzѩЩҎ& [:n%1W!jfM)Ll[RC9` ߮bjO%^p={o2 t7[aM6hI}ٺ |0ՑW8sC*۝:ֵNAZz]R9a7Qއ94,`VF}d];Sc2/w9EayϿ/{UL=ENUk6#ņhӽR-5٘Qdz"f}xV_;<u^zA,D?x^{!o|
+469 0 obj
+<< /Filter /FlateDecode /Length 5239 >>
+stream
+x=Ɏd(h}*nO=c4s]zeUz`
+Y)Hė-|^~z."z&b`܈OKϹv/~-x2i#(|V's%RR@O[\A2XQiK?{}Z*%f\0/}zL+[x Պ$-Sg)/)疸uIwF0[!6L|fZܢq|ԾJObh7[J1'al'8
+U 6 f1k1x
+d+W><m*Wp6u8N4b<@%ؾX;<60pObH7|Mb*}HR:vHI351X?9A<' hp @ef C{/⒁<qn|&+NC! 1LtZ īٙ@`M3 IB:J2p>P7{'mSv C*Y%"&m^AciJm+k*d([e`OFf+2R&2Sf0\H5h
+hJl\Ua OJa2( &$GGP
+,W4#5LDFaá]^dEgvVgg8IX406~[jO bT@JO>hjҨ&VӔ:s:K"&u3bnmg,yz0|Zʱ<ijKL^3d.lu >k`%.MΖbī!hqfac{=r-ߒ|AvF_+ϭ,sLԗmjeQPnye}kmo)<R|<۴%CuL'nϿ+4_ΚCt90~׎scKūUNfy4+8G_?K3HYnYԹ@PЇ}kLѮgime4 ᖛC8ºҎ[*>W!ٖV=zy֪{$ywxyɽrF_9tڝEa ]oH|S鎧qg>T=.{W@/ qm-RJ;.Ti`V^1csb,Ϥݠˍ
+ 3ڸ˟6`$T\J{k9N+D'<
+^jI~JX}F -4SsU4I"<L5).$(9r힥 5E3h)Jg))ʵGNUH7D\=8}3K9f}j++z dL]Ҋ!\SX/^j#;XCOjư)/oN3l@PK) E0-|-=ʮn|/
+(z s*V0wԄʹm5\)&+l]s 4W׹:` *? +O
+"1Gr%hK^$Ġ^I/:ShAkjL#:[y"TL+^3[ƷD!m\{:eA)+ ݶ6&jO4?*eiOYi)+ Ii mo;s'e2ָRe0FV=! q5Y8HY쬋od@0ʤ0i2ȽׄBk܊w愒!ip`֚iVP ٩sBIGͱ^
+ͬ,9;O\@ypCz\
+)6ۻEK;@Wn߅>^K߅<; BtG^K߃χIC2)ܫt9 Ku]RF*R US+JzjY幻6/c`4pZN.=fOZ]Sm]w}/4]#z]Zjuo|yJ}ުZ9T_?=lz=g3fjP}m^S2[ :]]W_1opH4Z%u$ PAWY9A"K(1 3rJ6ֆq6ʻYgi=*Yfum3+)H
+ bި\߻+WnGUEoohS-D\[{MgF
+(p
+`F НWm Ήщ9
+A:WePtV+ޯ'8hBf>o}dlp6;Vk5RIs<#䥄xO(X86=fGE 9lˣ~٬oMsnhy ߟ6 N\D"|&跬M2kBk~!]0f_hwv/rh{r).e͘\#ΆL(1vfH}lϨ8 XѺFB~m~0FCızhmi(G5|FdZ $Sl@~lg9]hŸ_P-6.J򧗯1Vt;G尌VKpE@@/iıU Nc=WVcl-JW%mC c*;_}I k\|M5Xɀ6;DUvuS
endstream
endobj
-470 0 obj
-<< /Type /Page /Contents 471 0 R /Resources 469 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R /Annots 473 0 R >>
-endobj
-473 0 obj
-[ 466 0 R 467 0 R 468 0 R ]
-endobj
-466 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.12 153.094 463.094 165.05 ]/A << /S /GoTo /D (section.4) >> >>
-endobj
-467 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.842 141.139 274.797 153.094 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
-endobj
468 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.364 129.184 234.319 141.139 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Page /Contents 469 0 R /Resources 467 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 398 0 R >>
endobj
-472 0 obj
-<< /D [ 470 0 R /XYZ 78.37 808.885 null ] >>
+470 0 obj
+<< /D [ 468 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+45 0 obj
+<< /D [ 468 0 R /XYZ 79.37 771.024 null ] >>
endobj
49 0 obj
-<< /D [ 470 0 R /XYZ 79.37 419.332 null ] >>
+<< /D [ 468 0 R /XYZ 79.37 299.99 null ] >>
endobj
53 0 obj
-<< /D [ 470 0 R /XYZ 79.37 327.868 null ] >>
+<< /D [ 468 0 R /XYZ 79.37 209.139 null ] >>
endobj
57 0 obj
-<< /D [ 470 0 R /XYZ 79.37 303.071 null ] >>
+<< /D [ 468 0 R /XYZ 79.37 184.342 null ] >>
endobj
-469 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F69 406 0 R /F55 387 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+467 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F65 392 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
476 0 obj
-<< /Filter /FlateDecode /Length 4679 >>
-stream
-x]K] ϯvq`
-y=&Ѳe3(lM-KSҁu,o0Z 1l0 H7KkM<,dg2_=6qt7<h>yDom[&)ki8I݀Λ!8QNaJ'kank̋^^m6pc"8FKY#l /TiGRoVxkA$U׿gpԶZ'cЄRVO_<}ly0ǝ!)ZQB ~CӘ2K,=t\] @B=+o&91\ߗHKd*A RX-:>9 }~2ˠu9ZtQC>p [-'N߼_<\ul|/k(h4~T}Dp9՗??~/lK8.\{yx9y~?ɃBϗPpx>
-w+c0Tb
-xO{%6 ?NFJSQ}5*
-~gzY`\5?3 ?ƘC9Jt6MXhSjzm?
-QKTy֩4Ep7?M kSq;/Sܙ(݄-IGS7qL`6ia<}W?o/YIyN-5i1hS^'=p5(VA>#
-P9@ZDeNExVҁHp259Td .|^D$diOv%۟d!f04ۧ0L
-e=LT>ʽ|Z
-Lژ 2(5`0=L^O)|2WÛMrKFiJ|g8t} 2lJ2oς=)Z@,NwZIYG
-&S$e$ȚjgN$s:pmnJ'fiy8.c>uiv1ˀZzQ-fԫNlL9@^ıtfQ'p+"t}eFFx ia*!WY`K HXoº}-ZR_QP;ϷkasKI;Vw%ʭVj)aq$FN- [m%w;*H W
-![,~[?YQ-ei}e|)Uc &T?9Txx/"DF"rw 7iﰻc˗|
-FQ"})A? #̦9xZ,mF l%
-kJzHg[kZeZ(1kjD4l.Ei
-MR␦cgFhz8k8O\RQڶ5G/IVz] µ<LN laO0 s]~}xH+00*OWzy}$%G¡-@Jݺ@ؿN F QI.veױdO Q~̣ܗ,2派*M^f61°k;{aAE3},v9|ˁ*`G./~}P<sSE= ̝b~G[ls={jz  8{!”󺓭!
-ϴ`
- Y[ O2t6 (1hmK R
-RgT[rځcȍ n‰;wf_aIB|*Ɯcp}L׫wf v>aT?Yr|A /=e"|1u;16'TߤS[v q&R6Mne+Tj/@QQ9&59gtUJ2XYԠ6V>RĂ.eKUB29QvŰQOg=(+!̈́q2:ba1AO'%}oK\(env)J^E$eH\y+jšCߪ-qkLSrدR\jyg[{띨`&-`c=$!<etj$,Z1=,6#LmʏjC"܊_羱@m6E~GlQIn7IΒgf6|pg
-7)NfFq'%l"6Jl09fXD+Ӧy=ൎՕP'@<*nkXA7ZK]dW}Rŭȫ(BM<>SD/<
-4+;#p`gs!LpќC{C1{+͝ؿ흚*&0P_ʇ:8}oֱ+nvqpjsW4;e&󩥇[vip()jAN Z~4|Jم1aY=1i޷碜J!r+=nŚ/UFo]˄JL<1 jwnoItUC-M6rOnddAtcw!.--ȻZ|(/Ct$kf. 3uSbXp*/g+jqC=OV [@m r㎰Pa:+@}3rz#I(, <NZ ܿ۳oܗ64J 9Z Rx0+߽Ir-gDNm}zhZ}ɗY%aRl,6S.aFP^*f{ɠMZeC>MY8%lFk-6Zvjw"$#@Uzn{@%^;7뤂 ǡ.@F7 HC /H⵳HsBڎ8oW{ &SlǴ`iTyIJ{'G%Qa۵G4jXgցo0
+<< /Filter /FlateDecode /Length 4449 >>
+stream
+x\K#ϯcrMV XyV"{3|H8K~Ww[3^lb"|—x~gG{~~Ӡ'AD|q b`R,[~x$sz]9._;Mpk˹6k3r0 H߽oľ~^~8DT2uh"?ߵ)}6Ό"Eݿ_(A4Zf e*ˆYng)Y-?T;?x2Wެ}*0yϥ;Ԛ Q) }b::.O^>-O|p&H~ HOLY.}J?l7R_Zrj%j)mV\ZG@ gɶiu!Q+h8
+딾T\386]
+h=r"O|dIYr%9Qy%BB19 Ϩ3flq2[ct4+RH<^{F(#נ@7.gq,SɩsI;Uve"=hg근mVHf/ l蒂j65gBw) n}{g8a}{tneم MMQ4$Æ%1q|ZVNAPoO0N 83
+e1Yҍ1+c2<MKWXKw :gv}4׌+;' s hwA|ӣP[H}0Bm"cm4R)}S=tfUď=\
+PT&5* w
+iK#<5{4}SV@"QesNKZ&9jq: r6d 1 x;So(X!ڒmj[o<Sۊ=xkGn7E7E?w6Գnw!vLLމS,=,>;ԇM4v_3(QIz:Zͦ_@G+}9-cghſ4gHwW3uDf[8ߩu ][$)R91\OjzmJ%}\,S$RKr׋fNWŖ᧩5XqΩmmˡ֤tcR6IFH
+C vV)A? HI\-Mr)`U ,sjؼG tKejG8Td=[̥R},]nwփu.~.ҘU(OԤV/Vn5W<?qC"֒z Qu恓[$6mUkM*nu=It&N' WMȃM&tWcp<,s``2lh^`102YKYv9YH2i}4k}枛sI*E;:)J+bF_bylhY;2EcgRq}t&i4L<am[ Retf\~HW-%Ndt-UP|j }|צJ]xmawXGW]{7[ɯJ5Nr؃?3%fn $-'V7'F-2{T (MaC~9ꃆ/bϵ^)/-vJ)ԇ4t֠犧SȻhk1 H}k"iA{B D9=EيjX.:^fUʹSuS,?u]SerCYZN;ɾ>3aioVr,ӣpOVj\CY#w*[_g"&T@_c  !H=jZP?}q)cpFOB2 W>odDcMX4t|`LXBscODZUe\ ԏ9B
+pb P0oPV?ǐ(ZH8[o}"WO)ywk۷Q~Gvna},7rWm .{(K?giC"XFc< ;)bX*~뭭̸
+ Ϡp?
+HFUӭk񛶎Nlܸ4c0^g[&Cj
+gBvQ(<T(~9ٱr f7"Ӻޔ [d8K6{
endstream
endobj
475 0 obj
-<< /Type /Page /Contents 476 0 R /Resources 474 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
+<< /Type /Page /Contents 476 0 R /Resources 474 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 480 0 R >>
+endobj
+480 0 obj
+[ 471 0 R 472 0 R 473 0 R ]
+endobj
+471 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.12 682.356 463.094 694.311 ]/A << /S /GoTo /D (section.4) >> >>
+endobj
+472 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.842 670.401 274.797 682.356 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+endobj
+473 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.364 658.446 234.319 670.401 ]/A << /S /GoTo /D (section.9) >> >>
endobj
477 0 obj
<< /D [ 475 0 R /XYZ 78.37 808.885 null ] >>
endobj
61 0 obj
-<< /D [ 475 0 R /XYZ 79.37 576.53 null ] >>
+<< /D [ 475 0 R /XYZ 79.37 447.898 null ] >>
endobj
65 0 obj
-<< /D [ 475 0 R /XYZ 79.37 306.505 null ] >>
+<< /D [ 475 0 R /XYZ 79.37 170.637 null ] >>
endobj
474 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F78 478 0 R /F69 406 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F57 389 0 R /F23 383 0 R /F20 386 0 R /F65 392 0 R /F78 478 0 R /F68 406 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-487 0 obj
-<< /Filter /FlateDecode /Length 4591 >>
-stream
-xˎ$>_eb H \ԻT=A]EQ$EEi |x÷7.8͵|.a.F3B5|t-UX?Q|7y8^waOo 0FƧ0(.m|cv<bWSgpaH<aKJ鵉£$s)R.ߢL" _&a^F! 4E`x3OηQ,J"'%%;%8i!Ȃïi1 $qqK*q ;B48q=ElQ'Fd]&pZcFz)CHGTXPCE3#Ses$0,3%Df\uZB 9*G!i[^*E0U\s*x[S_&b қ9G M c,%<BGV?jkm%OӘt!FL_"A{֝ub NM(m t5OvP̐hl8SD+3 לPC%aƒ%-d;yo64PnL= uBFW:0CLG;CebFE nFA5u'sfAn=4(60S]R!ʚuR;-j{e. ^\A1b#iͪГiXkϕ&5LKm#Wʬ!c]+vyc0h0OqV!!C5tFsLS ]nmJчCQzـ#~ѥ^?Lk$G@͜S28zۙ*gO¹zWہ-a伎x>cC~cn:_ECa(!7=H",BwR#/br%4CmEc{?zT}q@8ns_(TA: ; <͚2Nːyz-JDlbIZii]6SY q|%k4EkAZ^}Kշs} ~ p{5:,1k^48zi/N<O1pCyx}-t8jOيC֢u<ㇻui |KL L6'8
-Ͻ&p+IQ)#F#lKk?W\rtu; ɫ޶4y?5#FCPw}G9M@aLi1jڿ_1AjL#;+%y۰0i'Z]tSk_ th;&ҘY<]uI分G7ƚ9܀ =<N`ip7:s4
-[r=VђEJ-م2^dwH%sy!BmwZ,I涨nlfqɩ"QTܕPm)OʏB)N+%IG^Qm<`lL0#uDل^[ &;d{zgFrN`S#4AHnh9љH^wV^]<Nvo
-iK0ە/+,Xܩք)f˧/
-x|DLm* '["iPG謻R
-0 Y- iSjz-mhq3O'Sw
-ujyM`ߣHaa`+|yHr,JGɟנgvyw`鿿&a-+l[~
-}% 5,`_fxe/d<$33Iw bl C]JqsT|C6nv٬Je꺐ͪ;j,iFq,EY2XXNi5Yb41|zX
-1R޴ #dUoj(2Ҭ:53v, șbz- O|N9P۶kV9nL'g
-}U͓N
-GsU^nhÓC]Q0 9C\ó=
-()c.u=H
-iمK_̠t+4e*Lځ[rO2j)]4o35IMpPSM5ۭC$ NH~]J7~$RGO},B`Л$hHӨ ty{#i?B ,:fe[SsK'yPá@qV8;ς֛ѵӪ+Vӹ 4$2螛J>mx"!`=ʩHQi9!su^Ap&KS٠HNVe{^4uk;TeֿmR &^~K_Ag}JK.{VS*[F|{Jm7@0T/IhbR,+a>b&A*$c ::}OdUWpn[w{_@'Ep'"//7Gt?m}nW̷x_E]ް7u}[{6S_݌an$E7Sp^7?zC7nf}t5nknft5nfWfָOfWv3kܣ?v3uq3ׂ`L^t3u3K?t3fGQf
-|XK Ϙ w8ǧwĀt
-PfpnK+xljv p?u^9L~-U[o)&.kž[Y${gW_xX
-id˗(7? N9N#UTVMm[8]h 9@ǝNCg7fRdPߥ'WBk筜BmNӻU[5F^LKw*NutB&{ihVvtaDrf#L_ayҟBԗַ6N7&SWf:}mp5 CQEep7 UN`c\=on\ S]۶
-'y[Oo8
-?w w*
+488 0 obj
+<< /Filter /FlateDecode /Length 4598 >>
+stream
+xɎd_Q?Ph4055m99[8}Do z%Q$ER/]>|.%`՗Ͽ_YϿ_ʹkɹ ?
+dv"i߼|mymAzu`[…oſa
+KV*K)$H|ē- g_nStIaG%?,a Yke qҤ>%<oEwPv3 %UsXGq`E0B^J-5H^^8%1aF؆6,A>G,,R;u|n3]`˟c5k  hFMQY-ie* F Tb󛱴+YhMvGY(l8Ӈ8<B6 "8vo1g-M[-[ĥ?Kf|
+oLY;G6حPqAk
+q{{Y7qmyqo$ҥgY񽓒y͙&A^8Q4ʊgAt/q0
+\syKT?_q~?`a."$_u =L2
+!B<x>m6J_~$H=vW5p~\-p̀;NJ)dXjM#;`Z RG=c;
+R+Sɵ1Ę! mq9Jv|j)pk C2%9@P1n
+ȋpD"k"(^iU Ar9&2A\Y624ToM#9`߽ínfk)x)bC:i0΢Z2iɈN*F9bs˞ZeVH8u !b95nu;G6ȯ QyHu
+FZ nXn)וTֆkK"ې@$\}AaThCCIQj
+Yj\`tƅ 1ð_m"3fs}
+W)rtL|xiv{LL<Z nAFS`7Fx߾A+ 1nD/&53(e aG-j''5"[*Nq[Դaś },s3H@ )kׂkVҮUQ
+ހK4@*aERFśRFi[vރ^$cZ=B.]BMޮj͇Jq놺f3 Fto13Ֆ( jڠL;{#vt/K'št0=wM5(e4+t() lv͍f
+^
endstream
endobj
-486 0 obj
-<< /Type /Page /Contents 487 0 R /Resources 485 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 490 0 R >>
+487 0 obj
+<< /Type /Page /Contents 488 0 R /Resources 486 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 490 0 R >>
endobj
490 0 obj
-[ 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R ]
-endobj
-480 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.227 542.814 390.201 555.095 ]/A << /S /GoTo /D (section.4) >> >>
+[ 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R ]
endobj
481 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 174.175 514.471 186.13 526.426 ]/A << /S /GoTo /D (section.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.227 383.422 390.201 395.703 ]/A << /S /GoTo /D (section.4) >> >>
endobj
482 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.977 494.545 414.932 506.501 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 174.175 355.078 186.13 367.034 ]/A << /S /GoTo /D (section.10) >> >>
endobj
483 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 286.882 475.178 298.837 486.017 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.977 335.153 414.932 347.108 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
484 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 405.876 419.278 417.831 431.642 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 286.882 315.786 298.837 326.625 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-488 0 obj
-<< /D [ 486 0 R /XYZ 78.37 808.885 null ] >>
+485 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 405.876 259.885 417.831 272.25 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-69 0 obj
-<< /D [ 486 0 R /XYZ 79.37 717.718 null ] >>
+489 0 obj
+<< /D [ 487 0 R /XYZ 78.37 808.885 null ] >>
endobj
-73 0 obj
-<< /D [ 486 0 R /XYZ 79.37 279.235 null ] >>
+69 0 obj
+<< /D [ 487 0 R /XYZ 79.37 558.326 null ] >>
endobj
-485 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F66 392 0 R /F58 390 0 R /F65 391 0 R /F25 379 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F41 489 0 R >> /ProcSet [ /PDF /Text ] >>
+486 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F68 406 0 R /F65 392 0 R /F58 390 0 R /F64 391 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-499 0 obj
-<< /Filter /FlateDecode /Length 6106 >>
-stream
-x]Iߡ8ܗ"\j"ޜdf0ƚ,~
-gl$a}fdzH~LDdo2#
-}MJ^5RyR祹_5!p0)-mF5sCT&߲Tk{|OѤK:0mO@ ձ74\ tY\1 Wb-jӤ4R*T%i
-i(e֠š[sˌ55#^kp}!oulvR
-΄]<lԷ`na޻̚zݏm߁kGn<sz2GS@omR@)iN|t_N\CoNuzSeq3tкi&ə
-~fQaUg)IJzUVтA!d22<yF~0ٽ_,bv@(
-F6Yԅ8M1s׻ Hۭ4ԃZ鈩úCȴ|R{BG}Fq<(pY3zxT9<\wL>?4 ?OOp^C{RO2΢}zfz; yki^x<Cտgzo ))_2ǜ̜%sO:_2ǜ̜%sODQvϦYyZ!wy u^3=b߬<k3l(LyfN9'Og/cNByfN9'Og/cNB}0?3)A>
-ؽs)f';6V";8&;K]mߺN^iU~>$Ag/^|G*ޮ~zaɏd(R}RLU>q`Ulq~Z;"=wj^'<MHz>i}e ޽K0|{`RQAJ^9X=+
-J#t\pd-E\ogR;C y>C򔬐 Qo/L`3,M\3$Qr
-$-^e"UDy8BSQB#ż>!2 f!~qDVnG\Ffr(9f2vZM!(-Ƶs0r= ;PLpL>o3ui#:C 䌢v *9 nI30}߿Y*5Se6t 6QvƔ\\J#XUuiݴ-@) eb[S8(~"X΃X
-4Gym#<,8M}t6ř6QlvDjisd8̐^Rưιv i0|AT"c]׷22.p沃gnud'4Zu<} U'cmҽPAGvW{s!N^.:=d'ǽrzA}k~Q}(a"ql&z5$mA)lSblQhg!x VRN$S,bn>Cu:Dh^y|blJN'̥MKuRF2#)PB3RC3Dqὀz[bpKun`w,||BWa ǚ[ 2eO02V˷Iڳ秴̋ÞXvs&*D϶Y:MnK& ^۶0=~/L 4SBD^뢱&r]ێIxԼm Q8[9rbN֑qFb*L !vT;2[Gͨɒ[KH]W7+ƁDN{W9`L)3mLN1n׈#hN{
-9Xm ۫Hv½D#Z6`C6or%%ۈNY0>%4D <",Vgrkʧyi:zISNXP& %"Zω\Mmz5"c*n&s}ךLњ8 }w WtժG@UxC6j3 О
-
-4\G+brisu^K;xx O
-u>+4`2'zli!y"^5;',wP؍%5be1P69c읶}PA1ĜsV4c":r'`X
-.Z )}4Z_Op#S7Kdjq|=
-o/##9UX~e}.~
-sCBOzL^쿙WB׾$/'6e9jvv[-"'O;?Kc:8B)f`7Sbr%/ ,^t!iՆOK09pI:NTe
-4fDf&2ę~8Y- |C6p׮?ek&Yz؃(
-g`WׁlOQX6fgћ1Ӓ:-7J|'pwT>I? g3-kgx`k*bv1+cy
-RLc~s)y2sǻ%]&:&nI)Iov-[ͬ {r6Iw>kIcVx ,(pj4~y& [O6
-%2W_N2 $KJ9}|́3hRAM-C!/Q 0B`/a0[wď<y1 kLF)3ymp0o4~ xmm@u٠̣ixE 5~qTN睮5EODѓPOGNFIdyt66 ;m` IU |aGK?17ҋesGq{\d&/7 Nr p4iB>m6Ih%Lۀ0<wA)6 ϝlPrʴ s'92mp4 CIH<s~6 e$?qA)6 ϝlPrʴ s'92mIh%Lۀ0<wA)6 =gD`on4*J05Hܱw
-ycxi uHipR}@*zݘyiY=CNoWG,D< e*uq DhymΕ~8ZNPf=7^"kXg쒝YύǰlPa7l/r++-+q `z/*VQr7/~*Bli2-ak\]Ld ),R^s8x^V~h+ibUUCHL՚W\FCH֨Z\?8kIP0xl;qr]mn<jqzD@db4[ckiN*.b\rVX#ڪ2Նm|ǖ:_u$T*f{l Mu L6[lkHl3.^~!k7)C'4~~/_8;:
-;݂=6 '?a4\OU,pR:'',QrYJO CrFZ|I.g#ڗbS,D IR:VWxz<AWzEN!.!\дäCW1.衢QQ0|2вCj(cPJvry |Uʡn@t_+Qz/Ђ`6,օzH_X92:߶a8r!}bc!RzOUy<lGvL9N1]_jf4i(`0l1PtZ-*>%+gW<O}|)R,˚Vg:V$I4msGxa p(֗,)H׋
+497 0 obj
+<< /Filter /FlateDecode /Length 5937 >>
+stream
+x]I$ׯ!5Ppg
+wH G,$RPv[o/~7cAjR,π7{~ Ok(y7г؞ k]ljh(#${]kAm:="lTRI.]O<2A"6&
+]zZ i^^$\\Zy"_o]^dzԼD _*e"0줉3ªڑ4b7^M F$nr9" `.t%W* hkeɑMtp.88A:Kx24[,B%HkpxѺAHpAޝ8Ԣ$T4/ԇU=l4aDn'#\.\>vANw;I e3t:kyIuST@_Mit`]m؎hurĤK-Sc1r5z_F%(`ȐKAWY1Q|~U>n50*e\ | >%K=Vש?1,j{6E<^ݱ ]ΪZ
+3 m9.m-_В(
+x_y
+"MC>Pkq<0y |ӧ)SY6]`V Q/RQôW?e
+E8HBLm$>d'.@طu#k󲂟z!8)BΘ֞i?0v0A>RڋU[^Q#u\վ%>8I}GZy|K<WZDZ!/Q׺U[a/pLTXJ-`KH=\
+.C6~~yd3f4j짘G6@1cHy6~9gfO?Ѭ8fL=jsQoO6R7l"`)8 
+
+uWAU?]׈^{-!<ĥ×-RMt
+sĕ (<XF1O *l5#0(W+l.5a+|: `\4n>yclo5Bj E8TP`lYQNHg7^\eƾT|kl.K\HJ@,qk 1ナK06GQh,Bή`98Tr TRuÄRZ
+V M &;ڳށU<( ؒ3JE<lW0^
+5ЉAVɉ[R|TE/lTDR;pQ襔a0L>/dd+\kƲh;'#*CRUcscنARX! ϻAn% R}:5x5+*<÷83g~W߰7j3}wۘO)o秷1_<?Ly~zeg&M~;!cEFGSG
+/|^u| ,g~KO&NVҕEudѮE_⹄N.i9c+cMd[s"I|~W*])۸
+l>Mo=GĜtP'L Wfk9;Գ( t\G9F+̽s?m%c
+É1w]q';Xlp$U,`ĵ4rgKg%Xzz<-m Ebk"NjС
+zx'n]8ѫq^PE!
+<uE]Az9 en$c 9yNye^M M M{%/I\ԉ|y#U
+;
+LjҮه%k}J#sS*a󽥾 -+vZW$ǜ~!mckFT"8X2&gxn.cZxiv㥼DC/ܮjVJV5G; g +6H$ 2UtZ*c j|B:x1jHޙg,ݬZcڭW,%i!?E(4";ܱygBǤs|
+n< zq?]uxal 3H;Z"[TJ:B/d,JP{7lXE^e*n0("yokga޼dс%
+CJuanxa '5;KOiיִH:bᾎ=At(0'EP9``y\
+!AjMsmMީ9dyx8
+Ie/eU9ХSA 6x1֡%>ES.6y_OgRv}3υv΄a99ݻZ.l{G_] 7]
+^S2=U!QY0ګGǺրuGu%DB7Uo\}-T{N,G[L[m;iږwѶDZy<7C&gKC‡.}3*qU_ꇆ"nJ9i]Ύ?'MuiB<czk?p%a%*ɽѴ.iu%/0- ymrdMkz)uZPIK{rx&
+bfh6ךhl>oT<w-p\m&^e=lfz(rJ)VkIM83<Q5åFW G1@S$'E$]9v[.LP/)%[]rO %=t9P%D/]^ެtrqLΤuϫ ~2&<6n ;nɩz IvQ>gLտ4Qz-x>^nxm{mw55'fvW ;W|.2,ٱZF <)P
+}){Wm]W'K9yS08IO;rsI\> }c Ӭ[jor=U:,6-?sƢfaߕC-xi\0^
+-WKm7awiz!+TcN-S0:TS.rN!%OUHY6r6t\񖸕i
+;6N\XAH&T&Dcɜ UU$W]h%E!$Cu[H087Oˊ:*ׯek7z-zI.5y_78op D?{O(+b{
+~Q/&lsYj$zX%~!(%aL5 1PU#<ymIx]o>7dX;v'AjHp0^
+5E3a\5 fq0%>TEn= "YɄ
endstream
endobj
-498 0 obj
-<< /Type /Page /Contents 499 0 R /Resources 497 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 501 0 R >>
+496 0 obj
+<< /Type /Page /Contents 497 0 R /Resources 495 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 500 0 R >>
endobj
-501 0 obj
+500 0 obj
[ 491 0 R 492 0 R 493 0 R 494 0 R ]
endobj
491 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.048 411.848 475.754 422.907 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.048 263.599 475.754 274.657 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
492 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 491.475 411.848 503.43 422.907 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 491.475 263.599 503.43 274.657 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
493 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.202 364.137 176.157 374.976 ]/A << /S /GoTo /D (subsection.18.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.202 215.888 176.157 226.727 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
494 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.601 69.924 169.058 81.381 ]/A << /S /GoTo /D (subsection.17.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.601 73.503 169.058 84.96 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-500 0 obj
-<< /D [ 498 0 R /XYZ 78.37 808.885 null ] >>
+498 0 obj
+<< /D [ 496 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+73 0 obj
+<< /D [ 496 0 R /XYZ 79.37 771.024 null ] >>
endobj
77 0 obj
-<< /D [ 498 0 R /XYZ 79.37 639.958 null ] >>
+<< /D [ 496 0 R /XYZ 79.37 494.986 null ] >>
endobj
81 0 obj
-<< /D [ 498 0 R /XYZ 79.37 351.178 null ] >>
+<< /D [ 496 0 R /XYZ 79.37 202.929 null ] >>
endobj
-497 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F28 371 0 R /F57 389 0 R /F58 390 0 R /F55 387 0 R /F22 408 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
+495 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F29 379 0 R /F20 386 0 R /F23 383 0 R /F16 371 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F33 499 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-506 0 obj
-<< /Filter /FlateDecode /Length 5224 >>
-stream
-x]K$ ϯ}hY0X`g'c9-7{zKRUO;F3ݭ&)EH9_>=|\?|A'6Gfj6}2}Haw!(jZSy tFwЏK0)t?Q7M kIgU4K
-IN4H3.r.#V^}g`1N,2\# CۋMmDkJT2"z|}*x>π:J'1h~_5}%ƥD.]!V:p2.*ikqp)K *|)[N-- d#~-LB! } 8QxB1zF5m="zm){ѝ-{W_wt>~)Q$
-IMY\O𳧏sGz_fɥ'5pO7PNm^b_&^ڞ{K;ڿ_K\͒'g_[Bª \
-&g^HȅY9_y? ۗ)7nx:;+|?DR&R5/F=8Q)F*zaX*a?hoqHL ,n)w'j$>ymo'O AO8ؼ>=:=|Fb^glhvB}!bC _ )Y%. bE?$yΓh WvV1XG$hֈ GboDt#<Q#1#\ D*>A$Ǡc8zә7A$Ǡc89̹7̥/M*uH=tE(m
-\t {tD>Ap 0?5S(["EHp-]9N5_Seΐi55g3@Z>Fh{ 
-Sgx/(FVRx;"
-0({LvdN6lL<$;^
-o'[lEPR/ BH8&9fV2afc2/1 NG@µ7c?%RX!-0j¼eԋ#tnezQ!VtnJv8δsUR]5R:,77C2N<Od,ggzam_5*k ϭ24Wi^i,gKWd6c=`=6{/!jC7r+GMF6`ԪdUmc]%梟rz%T?Ӕo\ZB3vm&b :!ۧ
-TwXDUyJb+6U &}ڬb.SՆT̲DG&<89\}DGyJ!uhv{Ηv;9Lh akX;ΪVo>;B\r_f
-~vJЄ+R\TMWFٞg.wYLfRw)Ɖ;ߪX;#eP<Xk4fzH-CF.PmYæ,b[ѡ(pE&L|<C_ק $awi`HΰR_4r!7Snkj}) ֑z"~ kf`mTo
- -Ꮌͳ7ᡕޛ[@ Nt$lA"gnJv$Bf'Juz+ɐV\
-Xa9Ŕ#IC\>ۏiBk}Wg *E(hvg G=KKlSg O3ljaW8Z
-lk˹Js6|f
-_V</srRBiGf{w#%3ZI2CF93xaZsj\Ma)\U/d;VV̓<j/Rtz =:<H4O'h}! O5JUPxƢzEzCN{ipRgK=%ܯ]+֡4ѱ` z939h_vAtWiNǗ{Qw9ୄ4Fzװ%?-wޝDTcޟbX\]@nR^}%ծ$AWj5^߀EZb:p2 F8tX́DSGFsZvC"O_aQ
-Qg?6Mc>s0zȹ )bNբNToRogk%JfNS%n;%G){tSקM^JMG ^zSG;&XܶR.du@dJ9?$DINdWW;<5QApsp7Wgfb3Owk`1UgI#%gjm{3_p}ib>cfeUQ[?5ַӉ()ݕFAS*^eUO&z9xU݃Aڨ VyQTMeq.|{*U}2vNi1^.0֤pZrDZpR m/=zȶ"}7j'ږA۞R)JE׌d|bj+[9ga10p*)bX- Y+|#ժm~ŽT`*TU-QELbiQ&Mr )%2cGJ7#Pu5B3YXNU
-|͗x7[uܒHANdp~z=ZO1OeEk:C*'&Ǫ.U t_OMmSJ]lz1* %R=L.s brH$8g2
+507 0 obj
+<< /Filter /FlateDecode /Length 5253 >>
+stream
+x]K$ϯȣu(@v Оf'ʇ/7YYU5`dEɏ`fE0/돟.Xǟ> /bq)8+b//?qng᳓鯒ϖs.>_Т%pVB+jKd0?$
+$( q(eJ^'Kd횫H!24H)6 g8E5I_ 5*aUg u&8'JΒKìQqme2bi(G(7X'Eҁ n"yB22@96p򽬃]CK
+<0?@~g*xkh..QkXHS/<?eIq gʛ3w<*prA;Y>|_ ҅bZ*o%=&=37I wy`խHNow\0};]po-7oKlfabߗv9XͬZh k O99y0AϽ֑$8jUN8)"юB F>?-uk_)HoxFp&$s`qll8A)*ImsㆦWkEzfz/_A}c3x`>peaSP<}':ɸ>F!HtFSP@1"2ÝV:A2I/?Rl64+TSц[۞>^b
+@hf%5
+-_*ӕ8mWh~KL@ $O4m!뗟[W<M'.u^?d[u2$#SR R.I2[J/D~jÓ;u5<h>jA8u.un:=nZq;>v{ޟ[]R+vmǾjsjYӕgN,Eƾjs#n rQZ(6i1Lt5√DCEsĒ@mKK-vt7q&kb-~2,SeWL(+DyF+WΝ@pg7"X
+
+
+FG<wʾ1RKaSer?֐gwkT!3Lt&pF05׬AOղb[_ ,\ (uӘ=/KQy&V+wo[ҭi?-Qu*>K.5~9ך5}gRp-)}5j{ld=GVYm^]K[|Zq!Zw0 "ov\1ޮxm =zО??zBz<>.{XQwC~䓭mY3^{|L1t\b*z;K3"/;M]5?֙ cli=޻)ZqS"/ԄXq?\Qx'੺c@e i6my&d? ~LK 1ΙyV A#2I /%U:!UttMQ`f€=a>jğ1t &S{:"p<T 29Pc7Wv GGv
+1 25=5'A4 JH!c01;0(!pDà2ùc RL A4 JH!c01|ts_ぎ1W'$
+HcfrÌ_񌸴,IxuEXѡT~'d P!r\,?^=vѡ;poP1[
+E( vk"G )EyEeѢCgb /:DKc8F0o]zsie{gr.;DK.;C
+'Ke.;Uz%c"k\+;Cn::tn]}_.;L+tWE8- TwqLr¦|\[ '5ѵn* =BR.ҭr0]>&4Z LvP=Rd?&iDU|t&g.$6?M9VᡱW&4 /OZAv[ƽ󞵚\Ck9Ml!?6j&$Uĩ ׮;X=%|E@CV{
+iʌ)_տng,EyjYC4ٝZc÷oԹZVZ28G_rِ-
+e<]Xy9[N%f>WabM< JyÒM v2fYU=T3rí3NgLY 禶{<3qR(%96˽~efλӱUh+FG~S_7j4s+zOvȍ% 
+id',f5)C
+uՅ\N$Wq{ Sn
+5&5_! =fvB!t&k-}*\|[a*\+\^APg*M#@ib LNׂdNߩ7S-.
+?_gvnDF1G3zM&H YPF`$jğ!*!친3kA9D29] &Z1XϬ[B&;uc?kX)!{ G,w)3y|b8
+. xLʼ<e#ux/2NcAGI?x/}AT9K30&he:~95 3ocdMT]:ݕPG]R>eD%jc£2iNjEk}pNF\=&9k)bQ 4J׬`vyixLp}k#|A}Ńn?&Z~Lƽj?J<#GԽ2#pa@^!?g"Z
+N/7ǒMR$'aם>Nv]PӇ]>}8>ߨ`İԔl::Z ?k$_-
+g0hf,X!mZXޭ<`F,+ҧh+0x4qmˤ'D ,sD`}@ܽ߼q0u]}ļ|3 h/]'3]*U]kzm2 p7reT a}oR.KK{(o4oN/hk7!Eq#kd[n;u7edMS Y<=_4;FD' ׌
endstream
endobj
-505 0 obj
-<< /Type /Page /Contents 506 0 R /Resources 504 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 508 0 R >>
-endobj
-508 0 obj
-[ 502 0 R 503 0 R 495 0 R 496 0 R ]
+506 0 obj
+<< /Type /Page /Contents 507 0 R /Resources 505 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 509 0 R >>
endobj
-502 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.173 406.451 441.128 418.406 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+509 0 obj
+[ 503 0 R 504 0 R 501 0 R 502 0 R ]
endobj
503 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.358 394.496 413.313 406.451 ]/A << /S /GoTo /D (subsection.12.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.173 228.72 441.128 240.675 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-495 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.51 105.14 514.551 115.547 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+504 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.358 216.765 413.313 228.72 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-496 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 94.462 98.706 105.919 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+501 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.51 110.685 514.551 121.091 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-507 0 obj
-<< /D [ 505 0 R /XYZ 78.37 808.885 null ] >>
+502 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 100.007 98.706 111.464 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-85 0 obj
-<< /D [ 505 0 R /XYZ 79.37 370.03 null ] >>
+508 0 obj
+<< /D [ 506 0 R /XYZ 78.37 808.885 null ] >>
endobj
-89 0 obj
-<< /D [ 505 0 R /XYZ 79.37 204.438 null ] >>
+85 0 obj
+<< /D [ 506 0 R /XYZ 79.37 192.299 null ] >>
endobj
-504 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F19 383 0 R /F66 392 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+505 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F20 386 0 R /F26 408 0 R /F58 390 0 R /F23 383 0 R /F65 392 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-511 0 obj
-<< /Filter /FlateDecode /Length 3972 >>
-stream
-x\Ɏ$WQ>MFpXst-.}5+3Gˡ+3$ |ćO}ӠO8TZ\>~|{Xpv+};Rpnt9ǧ_*ə6p10cç'
-4)ȵk簔 _ pf%<?32RI7ܚ4,L
-AMR|{
-0qQ"}" mS4Ė*x-lQ8f4*prbkп-!2&TT$}
-5N$Q NJ<Yı'G$.50$(;H.{ sA)`,oc.( G.K@9d-2 
-kӸiՀ"4
-Z|"QQn4;uUV3ȗL) 񂘈}
-;` 텬`ahzjſr7.^B`[X!%EVQF iv
-6Ș+ĻcZm}Ц2emxYN.fI3 2gx1em.>6Y~xO
-s41jynĜs?>TV\l5gewg)(̻ȼoM6E
-{5jyZECd3U(k@OMURIǡ![,~Mub`Ķ+djtȡa0ʣ< *^&ƶZ "\,73„BzƎ塯NU( *)_uc Q7͜}p(ʗH ^)+"5-18qzsSIW,D|hN*(}.gD\)5TW֤/9-J])2%6*CȀ@Z~F8(|YwצC(5*]eXv%&νWw*i%N9R$$=3[Q&>iKcTfX6(S`UK5Ӷ/uM69Tԡ-˻+Z2)Ȭ7һ,,<Y0/*b3ihzaUos(&NS A?R
-?JZ_*AMJ z<mv'<]y.=iR'nQhܑ$Ŵ4:ҟQvC۬3CM;I6mJnR:PzP/05@!|G%f4.0:E""Gu$(N l0' FP?-͒$l-l#-Z''Ar= u?Ih@% m 1zvr.q=, D
-k8舖ml*Z[DZZ2'>)SKm(VӔpm{·
-S(vz\y*/u/99 &id>dfn%z+B<H?7F[FmF8ڸikxrq%-+vu$QI~jSz.x>8b밗)sj]o11ˬ/:z]ҹ.9~4o+9PD8c5ZˤrTݯr6/RN ԋ!ͧ!8] VGZr)݂hf?iʐnPfBK4r) KEaF3ű8lU9X,{B_(R\Ur^F呞,E]cZ(h(T#Id,Vz@Yװһ,>4D;x
-)QҞi#g9g8,H12Y@eR[sz5Ǣvg93*h^\˿5Le: ᛀ&PY 6AΗvqMk+jM,Ā:pyrӋv#^djwh
-i꺼W ٚm]`ZpJ.k_}LlzDangUH^4oZ/
-wZĨ/w1JaHӨC*
-.H'c6Ș3y us! uHHG7:i4 3ɝJ'T7C#D]kHzz1ED:q9MJ0=f_
-m wW -"vvnzO';Nzi>vAޚywdj?}?;?xC}Hܰxs
-ǑVf~Y2~ = wd{lb|6ǭ *!rdaz6VotK`/ͺTJNc<*'T
+513 0 obj
+<< /Filter /FlateDecode /Length 5495 >>
+stream
+x]K4!`Z==In3lm-0{|1jk4:HՕ 2AG6%jD(ճ|Uzrio &0ьH6}2RA)ÿgJ%|x}Ο|c M4|
+[={??x.^ I[Ap'(0VsjGotD*:-S jE3.>Z|`t_6{ w-h?OlwV Cs( ff_2EۿPhHiK*521}?N^X8O5=|r9K(ӣ%FBLqحH?r"XfϟLAS0,
+uxb ǒxFk>Awed;@ qQ15;˭gžA439l~oeNw@n(uLJ?7Nz' Elpj^k #VjD`MO;XI_k
+ۙ_+Mj'z1Taă'eØ秗)Vy~z0l)oaa{ʿv"LډsH
+tIg6k/j\v7șC<*ncDp&<@l5 Zbh)Zg>sN1:7YP_Su-~oʮJ ȷbsj
+9QO~[WC<%%bx*Q%Z3B9.O=
+y )'='rVU)@Z&η`dQJ([#F_U8ʓmseإTU|Z:+yPL!J虊 5Yvp/oPCW)SRQ7Rp+33uߌ)!</SjE*-S*i -SGrw*K6<D`mnɃ#xmJzəZmnfF]Iwy?YKQDtVzpwʸ$R6rG oq怫iDѫߒt$ܠUmՆmv>ڬ8f ?j͊ mv>ڬ9` mTNٹo8œ>;>`vwknQ|s`'Mvn-}=
+9Hz60i_">[tsk Hd)|)@& ]}X֋q+f]l<7>AF4~  Vk?
+Ϣvt: ^[0En-OQ
+ZAc(м$s󶣂Ie] 1uڹF=Fj6q,!-c~Vb:{k`_(e&yfUcϵ+
+!}~+vE<u 2?:M\Z~T6NG,=՞?QjWՕ3+T5kWLCzIK\EA02P9f4$JЫNBy9Gs鄰zm"hI oY$5Z>4q8uRfouLX_ҟ{]LO׃RT[`Mxu1Ɲt .c,T@6`);]aԷdC}-XW. k YZ^L$X9
+
+V9
+| a`{b47f12Kv
+/x抰 5
+ Zp `%_i9 Y,j7Yr
+㺝%SsټʸY
+keKùs,6yd+\pj1TjrcsO30rV)?佑|DHEph<2;h?1<~yzJ~H(s2gݬ{v*0uEخYEq N8#jJ
+ ;Ban/ޔϖnvrmج{`Y"3ꙥ35c 8{&mj[Oj[/,mUv,hAЉ^_e5(?YqP-3w{#1 HC i hi㹹v-\%2{Zow9a=?p;( OK2%%hs5dk ڮ_ vt
+//=2$dT/@Ϣ-*ש׫^v hu1)3F}"\Ώ ㎼2?5 s0ph!8ɂR)}kG~4ADh^HaBꙐM[I]!զ7稯I._@yHC@9<a' %1nk/Fl3V^1u3o;s¿p^ o_ӟ '0)VݓIOgPN!?a%4&暭NM;)xk * ^Ϭ[&/<2 2 _$/wl 0~?6Ch8] |{YV3R 6MAi'3k Dco3tmF x/n9elKkǘS%[aXwgNy|LVɆss9EHfqy9 uS\'&mz{3k;${gxqO%[8{Zc1)V1"eZR'8p1&w/ pDD+tW5 Ya
endstream
endobj
-510 0 obj
-<< /Type /Page /Contents 511 0 R /Resources 509 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
-endobj
512 0 obj
-<< /D [ 510 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 513 0 R /Resources 511 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 515 0 R >>
endobj
-509 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F19 383 0 R /F58 390 0 R /F57 389 0 R /F66 392 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+515 0 obj
+[ 510 0 R ]
endobj
-516 0 obj
-<< /Filter /FlateDecode /Length 3659 >>
-stream
-x\͎ S V
-SMg|݇_J~}.3VeJY ŬRx?KY"(|fNxOoqcq':) 7 Y5xC ;'LWp_q']; cP`2.2$YNFNDV:=ԏDbS}T)|qTWJ;V.\$G}M3;)I=a y˰;x롑<SOm/;o&^p": {N;=N'{;Q6k# ֶW{]4wJs׽^w;Ї]DIYWR6J#粥R{jxnLTqƩt<
-cxF.LX|xF0]/H,څ^(xJ/Z3Q.>^ݻz 5tUDF'R*e:N:elCśQj3qtإCgsX1L*#t3?u1UC
- ^y|H6
-ǥk~U?zCHȔ:/)Pn\OmWu>Q,
-7J%M,u3[5x,7rxӴmZxԖ[uIʈ2ydq<䊖+l)#!El]PMx*LBJDi>J=&D_GcU+(d(*wM sz\# U>J \BP]N
-Ug3rM<8D>\AC5(¾W&y?
-fr<ͣ[Ii_F1a-IQ=[LVgTBL&4ӧK34{]#Q#+&Sw;
-i&oa:
-DZ܅tZ%yT[P  DhŽ,{CB
-Q&ȀY5 FKko%}Stߜ
-:hbg^ٽfG?nv£:ͫ.Ba4ft_!JHST77R|>d{"~db CI/rGVêR9?@m(:DUF]TIk-A<>lwOX
-f.nS4ϵOo-H2S'5wDڼfG= 5!a$' L8x#d$-jϽEV6M<[0|7օNʬξWu=)>>" _ cX\""u_714G5 ܣQodo :J{k5yj2W?ȓȨݜBȭP
-.E .W߭حy0Ւʨ+z, 4gp]5LK3 J?nK}@(#LF7FWf5abÎh7*~Jʁ>?63[38ArrGC
-endstream
+510 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.318 416.124 433.273 428.08 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-515 0 obj
-<< /Type /Page /Contents 516 0 R /Resources 514 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 518 0 R >>
+514 0 obj
+<< /D [ 512 0 R /XYZ 78.37 808.885 null ] >>
endobj
-518 0 obj
-[ 513 0 R ]
+89 0 obj
+<< /D [ 512 0 R /XYZ 79.37 403.166 null ] >>
endobj
-513 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 300.561 92.359 312.516 104.314 ]/A << /S /GoTo /D (section.10) >> >>
+511 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F23 383 0 R /F15 385 0 R /F55 387 0 R /F65 392 0 R /F64 391 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+518 0 obj
+<< /Filter /FlateDecode /Length 3471 >>
+stream
+x[K7zO4߂ \/JR^=Hb鷉O_x{xY3o㧋|L+=Y#7b:{
+wڎW \MW>Q+H ӯrsnMaM2L@[-My&Ie$ aj-1fnQ(af
+w6Ty<yI~1spz"]sv4s-qT4W~5-rI0<.'(xP)0zHuR%pzzbJ~YY۶IuЏZ$MpwT%h5N]f<L9`!({Eb0L1
+hΤy;z }!E3 gtyiǫ#6c
+&E.HRh!Bh5
+vkMQ$P&hX ޹_M;y,9ӹ6 +޺a
+)35sasq`ss%dD-}HI3LI5akx[V"'jڰ[uWpj/=;Ax@Z&0G"ҷ
+`7@P“놧#8`i7@`#:t`:~
+3 KgLX*%˙éS>FY<F WNaUMti 7a@|u 
+9n: <́pP aSWgu)N2%Զ5*0iJי%鯝Ay!.f'-3b[5P>[B-1-"JH+%'R$&`x3˗5 brЙZXQu&
+ٍq+b4|n>A&rPϏ=?rnqcCM't!ue6jUF"J 56ٓ/ r&7LW}HʜM#JWbhB3KSV"椿-
+Xi\,OB.@
+ß`R;'|
+*GQ{*~1spɉzel,
+endstream
endobj
517 0 obj
-<< /D [ 515 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 518 0 R /Resources 516 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
endobj
-514 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+519 0 obj
+<< /D [ 517 0 R /XYZ 78.37 808.885 null ] >>
endobj
-521 0 obj
-<< /Filter /FlateDecode /Length 6721 >>
-stream
-x]K9rWqй|?`4Z`}XŞe`|ٿ *A3ё>`&s;3ݟ?x[M.˗Y؋5as9_rIo >o>c?^I߿l6l;V<?th1oKތ)e[̟z)sr]ĒO>WԨ'ߴH^G۽&ϱ,efH8/?y;C>n91o˯_bݢP\2u5vO`ڮ o\׎eyQB׺k=y^-[{,KK(nseDΰ] u&q*m+o[?SʂS]m{<c?QfA?5=:~/hBT.iٗ}s!nQè,:2Kp-bs ]'>u )O bB2-Ű3\p6lp}2tOQ?tCOg0ѝs\[sz0is)Ko5GhRR ;>&>{Oӿ뽘%}tl`o]#mbBHxw1!mkuv>lǻ2_ase͝񋍘
-]Fs%zܹxsWF+4 f<uTԁA*))kIQ8rimN+D &LQ@v$.a2򖬿߃a Adzd;.'q$\[<Phha-Wg~+#Glc*"γA9qD$;Fۖ?̿^F#1܁Λ V>o*V\X;vq5V\ L)("-~هlm
-MvЫB S%;l2\.t0ws3'vU<г?KSi k`
-N@4t_a˻-dwy*0I<1~8V]tDftPׯnsOR`.O1BMhPn4ٟt%LtM`*_Vm>n_>Ҧh/{CлpI[gCJ>+k=n$Cj*uKPYA~4-@yr:nho7Rw!^@!SPA7FsG[jq ݛ?'Y}&@};Ц1MGmkC-*@ [nɾ{L"HN2@37rY|s{0|CN30gn䳳m0 (z>3p#d/{n}<tO@%<S(fs9h 9n.͏~a}Pdkf z>ÿ]g=|GoⰺR3=' ɦʣmךNOp
-m& n._ga(X3Ѐ{mebA
-WS9 >Avnl͔2%E bTRJo2#&w]&B
-H8I.vKr )Y7i%SD"Dp@`CJS<KC^A<W&wBraJ$VF1UumbJ$28M9beGD: W#p$Ŧ )͚b='k 
-qCMGB!n]yjkx
-R19 {!+D)BcJozI-{@0d0B*K@9MVVdD8.q_ {R$C;"LGjD`$`Rwoȥr
-/TCȥ w/|T=C 11%F.iD@B@"i X&++8bB|jrt$$kTI+WaTw&BIdRYvHt
-l ~+Z..%$-KěV'li CFHei#V"ʊX0Y+ RW R<Z8HO7dcNăH$$ d_EQqM9FkG/w:/㎄DeUp f2ߛA3i2EZ 1H*N3ANMVVpĄ@Cex[dR_i Lp iho$EDh ! Cnr7>)4qkIv\[g=|
-qv-v0^{zR|kۋ+O
-W,WqM3$Lz ah-{)dvs)zH 0c!c)q=/8 badmm)#RA3:iŁA[ҫ]E
-Żc"_G O܀n&x?H)k YJ܈wZq`XAa#
-bNK^TAN̫r3hEœHXcBPMՆ&}C@fq%KU[6ԉQDe_nZ$Ĉ5F,jf;Qd bnV E`)K ۠+cpm`elUm'^1fmI$
-$hvL+'ѢPɦ Bsk5-8c'뤖!ѣ 3"e0b!KNہ"CQ,x<;c)[H5 gdɺyy\ɖ)nX*`ؚ@R'n;80XFAl7C $*ǃY.fpN׾hbKT2Rٚd\fE@le* s9
-
-1vf&ܥDwX4"X:Rq>x0bIv,yъ6r
-=c+E /3lߗ
-Yg6&/͸m!m+ 8wj5l"^/t[K 5k^gd+Qq+tO7r[7:R׵=.zBR[vw`ͯFq%4-E{JbYz]yyZ7: #Ѕp$F5o70ϲ~_o@K]nң-,˓R>˺6JqFVNguOVm|>
-DN,˦0bѹz,+MM):X;j6+IU;Qrqu+&l-=btiVcQo~[gpf eL7gޚdȷ6}iY9-)q>febv/ڊV>V]߭}7OiF|tc7{:UK_GOlYܽ_Oiu|AѻO1,HRf-TI)U!miS`p?a$Y[Z^Z3h&Yz|}!)&Rrڅ!jwzLKQn̞c&R6/CE3XA TwE-mz%cD"6Bb ~z(:xlw˻w!5Eo/GwSG#'q-]r*#6}]㋎8<z(PMjzpb_}d<˨^\-\,\?;gE~D.z/m}jbzؼ$}Iqo8rOg<]|-Hnxh^OƸyQxOe_!_m4ů0* 7ۻ__ kt0R@A.1ǎa \2<gN{y .o" px?]mb큛;1)}y
-CRL%eI' Cv>EJ d}|#bm?8ZM} }l^˜S5SNފ,wh8yT韾wBNu/rTsNʰ
-endstream
+516 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F55 387 0 R /F65 392 0 R /F56 388 0 R /F20 386 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-520 0 obj
-<< /Type /Page /Contents 521 0 R /Resources 519 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
+523 0 obj
+<< /Filter /FlateDecode /Length 3483 >>
+stream
+xڵ\Ɏ7W%T].`<95ߟd22%fAJF/}.7'"/X#7bm}˯e֎\-ompÿ/@}bd
+߿?>[k3GJ=X^iarhulA5،\`lEEnW}kp B7aOct5DS^!ӞhOFZٮ<vM*ń1/++R +BT/)~*\ꚟD _R p RqFuJ{ySHؒU#JYݒKeig8-4Ia]oH- Oh,vPl! H\d`^ZI@~Cެ?d `f&Ja5J8MBLTܣԿZ&nP\wޥ2v Ֆ(H%m'2@`-. $813O-qZ _liodVtvG_FGbf]n8R?3^hzҔ/O7qȧ=!3VBZ/ټBbgESnlFtv$a< _"֕^2;yT8{\y 0g\PJ8~]r2;͑ͭMYM2ssw<V)cNXI{+V%aQd[l+A"g(y1NeE9qxZ1L$ĩa.
+suj}KH3+5^F[TVA0=\nG[[9VbZkPPçs`3rLr9$zLkTECa;`lԊ/K>|_|UmqOdhHҥx#6B͑t6x5̪uh{=JVb&rE^Eje'󡫐xnAS h4
+XʁDiP9vS]py5BgY)8W/f.b)pW8L˂%g:Xi7y*^̳$^8\'b)G9&Ə& ;˨k{*N+GٳSYe8vk͸7{#'J]6Bfgxx&"Y?Qigcv*rܭ{G= Og8uf|ͨijOvY*,~`tt'k݄4k%#"#iD 窴4-_*l cL64Q x|
+U-O|"Y-ףKyTCnìr$9 m3L3,gkwǍGzl)}E]y.OfL(s|h%v4öimPe}E+u@$vwMq8|G0 ,B1/:0`
+f<f[])I6QCSUHTa]4{vbb~zb/!’{`Jm%h 4[yzVT0cQTRI;UnlFwj!mT
+%idsކk[[{'V-XkPZ49\fVMsIX{D4I'<61KSo+*~$}e級5V)8Ev=ݍ+u+ 3ќ_˶Otѵ:)
+14TYBY;U4 k*glxf#?Hހ z5ĺz*@F3:FF$vc
+VYr!B)T(-#2F
+<TT \{49Æ
+'߮}f]ju]).lȂkTq#-y%0tQ`d yʏ+ӳ p)ܠ:MUN(QR M9_1~_c&RXsWJ?5=lI˼"o!1McJ8C'XǘCsa:bLmp/ý3s|ddȆ߷O&񙃭h(&m[Sg Psr$Y"1ni
+CPI]Hq)~)_J1^Lt_XƖ]LԞRs?U-yKE؃䂄슗!3t5tN֕I0Ew|@#aj 459,41 fVeF1k~v-"s[kThz껃5u1yt]yO -}fuGWx^TQa!mR߽A.^2Qg(gmG˾?/DT>(vcT+ѽ(w\䱘l3`wa(Uq6c9F\N, iQDF&.鋂ɉŦ q\L״x*gʆ7 &6P/Dw ϏӸ0 $ZPG{u@TЦx:zm'+ߩ>pkg&RJ*[JQ+nB۾dS^[!^|qg8;muޤNg(R`k90PAfWXԅSӎ9cd]l7 >
+jw`fw Z5<5x[#"ik
+endstream
endobj
522 0 obj
-<< /D [ 520 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 523 0 R /Resources 521 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 525 0 R >>
endobj
-93 0 obj
-<< /D [ 520 0 R /XYZ 79.37 347.258 null ] >>
+525 0 obj
+[ 520 0 R ]
endobj
-97 0 obj
-<< /D [ 520 0 R /XYZ 79.37 309.865 null ] >>
+520 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 300.561 331.014 312.516 342.969 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-519 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F78 478 0 R /F25 379 0 R /F16 386 0 R /F69 406 0 R /F67 393 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+524 0 obj
+<< /D [ 522 0 R /XYZ 78.37 808.885 null ] >>
endobj
-529 0 obj
-<< /Filter /FlateDecode /Length 4319 >>
-stream
-xڵnx ܒ
-3 u/P}%M]0!s$w
-RxEu~[{H})<>;\@8ZZȘ>
-{=4Y7xI2tI=kDEQU(U경BPof]mZU;ֹ745
-wg-L:wA0H[H5U 􌰒)="$R56c9tXTͰZ=n7.˽Uc@ٓ(+цtY6̂1Q]
-V`vr{
-F] k#t4?Z54'RQ#ȴ4@jw)ךgcZhg'*sH|B+u0QWz0z+rgMlF{% ֤ XMtYF0T\+rIa=WN:>Źy"GNDDpB&LQE$wP+dyHpAI%JAXQPkЏON\W?uk%RrdȖ<0@Xs <  6Lf ̻@u!Ό0i3\semp(uf\ӚWQ< eO*'%AK z pO2Fr֓ulO1Q3bF.PI)( P5F OfCt;ӜHQKE TF*-ga
-~0fG{[,QTdi{:dVq}(tE8-?NZծ;ΎL% "띭i 43i (yto4υĬ.
-wHx%TG(5c mq^{)WF(B`NOQEK΢q ±`;"׎)k]rey "JF2V-'+1N^ +cr}ٔÉx)c={4
-bK;H8Lmۆk$
-gBuDǔ~Y@>jLt֊.c+wf[tM$n<:>f_*@EzXdv%dY§].ήuH+<Bcv
-xtD4Ejm
-RO?#BW|4n
-_⋜+9*%I 0T.$fcWYX9o_LƳ|H`8A|y`D@8tNکv81oqAަyc_7DH5LC
-3&*ƕOI!XSS[쇶0Xy]Q[܃i#, ,E:dڨC^L;hϤ+)DŽ*0>oς3}OoΑ>ZqJWQ'ExP%qX.bb|cfzVE=*q'O6b8&cC5W &~٠zjۘ zŠ>q͈.3G~08~/^B{VC=K:y?L`Gct'DyAvMN1f; /v*ͮ`xSfgTuR1JE<7Օ>tOT87VDE׳8p5tKM;YAh$)5v׊) :e^Σhufd/ զ]wqFYnrj)ﯳ u &BYr:G^t7
-DYQY6+FTdroYe!fquY8綗wIe4
-ЕJ@.-߱Ҋ+m1`ľED~+.vڜ r~)(kі<r[o%Dd1$ KUt$ӸzC)c/gLXϗxKq9Vitߥۮwf2f
-J>L0Ί9Qxb/>xb/aNdNO9ǷD!"btp I"jeJMDP\!UyG7A>VuEK\;Y:fAW0҇ ʏ:X@[0AwSP:0iEr
-BNAxf0x񪻣q㣡{ :_&˟_8v
-ǡ3].5-'
-x* ~ r!6^^Lyi_% zQ^Ra九͓fQȫU4g78|ZCI=5}}
-mvTEJ
-1 ǑFLtY2X~C}&^9Haǣ5A11 `pK|Jy,3"Z&]&*J~4WVB(BӉ`]@vo= ̋+< TP4"O '$ _ߌE P<rg'rc_dz~çM) AjK9hW=ot4gJKT+*!U`RefŨ\s[ ѡ
-'Y'$Uv7ݝ
-endstream
+521 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F56 388 0 R /F64 391 0 R /F55 387 0 R /F58 390 0 R /F78 478 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
528 0 obj
-<< /Type /Page /Contents 529 0 R /Resources 527 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 531 0 R >>
-endobj
-531 0 obj
-[ 524 0 R 525 0 R 526 0 R 523 0 R ]
-endobj
-524 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.353 367.571 205.308 378.52 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Filter /FlateDecode /Length 7122 >>
+stream
+x]K$9nz?FSSS Om11&%!EDVdtoP3LGI%QJ O hϿ|טnuɥpo,0Y6-'{_>ycgc?
+2K}_OW1[r
+hʙC[vn0lه^[ڥT*~b3+g] V@ojwy+2=gVe}O/ z·.l~vp7K7~~~ϞH~sj70Wk[~g|k>@{9Ziu#ƶuqKƃ-,t:w7vf󻛁+W-@D3>
+^
+<b6a
+tBuv刍 A;PFI Ca8> @ȡzYfn2=h'JJPL$$!Ru IƂkA)BSt೒)
+"`ik͔%e":mRJ1uE ,! -RHgġ>PrqE7C 4uW2.:%I(b&,0Rm$d6 + zw躒@պ2mT f[9@D@#U AJ)H!Dw3O3P(Ŧ )͚bd z-Ol0)*CA@BK5b&RȆ
+'wF$=8.TJi@wEb
+MgD<j%)5NHlq%eE1DNRL]o2#K:B;š8J)>Y3l!b'lSNFQ!HHc);JZ!;hd\!bHfë1TqY
+/4CȥIw;>*~~s(n6CR`RFQHHCH)f"I
+,! h-1[:#5j%W7IWaw&BQLH!X!u&+a[m%,tt, ojWXx Չ<KeA#I
+H#f"Iʊ b[aV?#RW!Kn-'2f'P!HHoEQuz'RL]oZF@2Hඬ7
+ (lLDEm0 IiKRDzYBtW1-'4T-3m f3XX/Z,/}@$(3
+,< 貪^bm>,,@ IzY4ZT !Pȡ-Ő ZPƌovcaikFpĩm :6hK96)(N*؈l4ُ-.*`^$گ]ߡs
+Ǫ6XlJ()8e\A &W-K8B4,M0sqX;80hq XUPJx`D\ÿ8n[*9-Km*`X@Z'۰vDl{3B
+Żs$_Z#
+ x'
+
+.XR9g7$PHcppfka PZ 1cW9uRՉOn*kJ E4[Ib2ƈVmNہ CQVpx9 Q>Z YVgpc֒ CDB-W8ӌC}IfQ(
+&`*fD,FAQޖ~p!r~Nk[:?q_E1I$M-F]X7
+-uQ{) `! i7MՌxgjaD:[A!IJTy&e]'舻+[J4 =CQsT}U{،Qk9(a(*'͙r0~0_UI00&L07xE"+JGLfW$1קR)M
+ed2YDu͵jC/u5fu.(5m
+^YF\ytāERW9t34/|$F5_"0%I~^o&K]&N!>Xƚ %jl2^߬|BJNo5nw#%noeJqx"DzڼQʰk VTk_En"܅Sp<WL[
+qy->:U˧v)=w&4ҒOo#}C!6aojQЍt0Υe} vdi!87LUMjTljof0JCjV"jIzӵ+Nc]Ѥ_1|IAxjs ;ǥt(L!&rN}[$Jd:Eg5]%P'T7 ^uOnW#iMFVΟܪ
+>j|ǧ ǻfWnM9 W:ƀwӲ-t4Liتd¡ߊhDѧ)\a*sƃsӻ tLT+u
+"n݉2m;[֌ l_k>AzOh0\Z b7MgIz>Mw%B:Ż͵5y<;h[1Jң;xjP0ET'Xt<Bv+wc?ؖV\_kdѯv_
+QQsk}ҢQv:5w'ߧB#;|V2?TjKҗPc =
+ygvA;oyklUpgϑ\7>ՌIS!Sz )~[8`Gr>P1['.S|gaɗ_[j4CJɨ\3]O2“$XJ;v9x4^/[rv[`/z,I43oQ{ǯe/hֿs4n6 ~Ԍ˫4n`nUit|OYзν녨S Dm*ñڢoMĩ=CVP2hM4VyePVDeph(mFLNMsWݖ ]sޯ
+endstream
endobj
-525 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.196 349.19 516.902 361.146 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+527 0 obj
+<< /Type /Page /Contents 528 0 R /Resources 526 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R >>
endobj
-526 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 130.947 337.235 142.902 349.19 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+529 0 obj
+<< /D [ 527 0 R /XYZ 78.37 808.885 null ] >>
endobj
-523 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.002 87.621 194.459 99.078 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+93 0 obj
+<< /D [ 527 0 R /XYZ 79.37 534.203 null ] >>
endobj
-530 0 obj
-<< /D [ 528 0 R /XYZ 78.37 808.885 null ] >>
+97 0 obj
+<< /D [ 527 0 R /XYZ 79.37 496.81 null ] >>
endobj
101 0 obj
-<< /D [ 528 0 R /XYZ 79.37 669.948 null ] >>
+<< /D [ 527 0 R /XYZ 79.37 201.33 null ] >>
endobj
-527 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 392 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F67 393 0 R /F58 390 0 R /F78 478 0 R /F65 391 0 R /F19 383 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+526 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F29 379 0 R /F20 386 0 R /F15 385 0 R /F68 406 0 R /F55 387 0 R /F66 393 0 R /F65 392 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
536 0 obj
-<< /Filter /FlateDecode /Length 4863 >>
-stream
-x]I9rWQ}(<Vk`|n{ \-BVV5'*3#䗌,J/
-7[ܻ}oJ_qkyB.J͈d.B)
-Wsm)e?y 22^(&l=oW/{{h}3)JVLb-hssm}̅ք!ҹdMxIJWKuO&sesS<_~J!GOS<PXbM5k3,uC+d)_05z;&}CkBy}Ѻ\H"ׄ‚0Em&[iA6)Hylb(3v~ ^˯>?]4Pᬺevu/W,R1!|~?_xBƺUjHNYFm.Sbz._7}Й/ rN\%1WƉP,`b`0+qF+*Bq^KFt w*Q-VrּZC55B}R|a8_*߼1ּ%(նUʬ9
-e~9WlTၛx΍
-=1ƈ^ODa xZƠyo~g C[v]Tә F;]
-{k`GC5Pŀˡxν=+fb { v H y\z\YC> m#sBx
-)@'zB>p_Љ^765f E t`3!yͪeDaDm'LjQ5k_Scˇ7pa.n2lƫS<3_
-~d6o[=CuԬ63*4|Z܇vЛ)XfU-D+įܸb*>8&TSO!/ߡ뒘vjir XI{a ?-ۇk1{
-wqGw44=*#e-.P~ `,@zn:Ŝ[oC
- 'M'-%.%H$Ý$1- J䧫.S>t7Iw+$SJdL9E,Q#oDf˃fQ%d#ļԙ vLA|}+F NKU2pK/p~^I9-r7^ SĪgi9 rWe&":TX'Lm!UCEIw5$e@T0"]DFB>.b=xʼn5&E]ԝ8ʑ1-"&o4XKb nDn*El z;Jc
-0Q PcRW\E|
-UXn3I5IF(k~/wX"J
-5mt4e1К44;
-B:oLZ%sZa.n(W\4;s \ǧQ<I׃1GV"]-+,%s 6kb(g
-R8d"IܳɃ
-?4BVoʅ\Ë:5L0W
-]ra
-&ͤc3G/PĖQ3zNDumJxEI_
+<< /Filter /FlateDecode /Length 4568 >>
+stream
+xn$cr ,pNkɉ$
+ʋW:z֞m+EC<,7ɴxA\?: W-Gxeב\ρc50'&y$1l~uqj<;?'53!SadA+TH% 5Y@\L pbtmd]^kkVeyC@PzQ *>DLOJ~yczO)`t?0 C߶6F !V'[L}:??;6qa&+<&9LP'շH -)a+KJ9k@opp\@iGr ç5X%gH
+1ZtV* `:;Ea2л6-1-:cK6ok!/bWwlSjոcN]1qz
+z}~pSk~Z`t%nצe,No3W
+y(=rDa<A]E+OIx Upv@G-?ϛ㘑GG,Ț=pʑ+<(3@pbebӤD 6 tER85-T9 ЁCgHbY8fj\}\0eMJr)ܤRy|iztՍ͍9Hqk3
+
+xEm{,$}ɪe];g. =a$ 6^ֹF]}DNw
+L]/[Su4=#7r¦/.w_aM*/:O)HmҠ=km\o.֦ ۘq/&<PJ
+|ÔH4r
+k0;lK\^tŶ SZ0+;`bm.W}m055}Y'@T m65A˄cޤMs]^q9~WHJTľi^P㽴_eZz#|L~W`7s˓#T|*G‚+GBPj+GB9f*GxkpQwpބ9]ɽk#qǷtTu~BW#tT_~aYwX+|"AWPr
+#5H_Y#[*$Anޓ`F߳p͈`݇ZTn yOݺϘosyOݺa}O}w$دI>IZثK翥/u/u/u?K%V3@(ヌGSRƟA1y|4gwqXpӯ1qp8=PDv
+Y3~S+Ͼ;g_*!:Ֆ'#0 mPr2
+1>;EEz,"| 
endstream
endobj
535 0 obj
<< /Type /Page /Contents 536 0 R /Resources 534 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 538 0 R >>
endobj
538 0 obj
-[ 532 0 R 533 0 R ]
+[ 531 0 R 532 0 R 533 0 R 530 0 R ]
+endobj
+531 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.353 577.145 205.308 588.094 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
532 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.232 490.841 461.187 502.796 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 497.196 560.336 516.902 572.291 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
533 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.669 316.919 427.624 328.874 ]/A << /S /GoTo /D (subsection.14.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 130.947 548.381 142.902 560.336 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+endobj
+530 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.002 76.724 194.459 88.181 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
537 0 obj
<< /D [ 535 0 R /XYZ 78.37 808.885 null ] >>
endobj
534 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F55 387 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F78 478 0 R /F64 391 0 R /F58 390 0 R /F55 387 0 R /F23 383 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F66 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-542 0 obj
-<< /Filter /FlateDecode /Length 5217 >>
-stream
-x=Ɏw};Cw@ uu5sX7'`Ɩſdn̪><^>F=0iƍx|G X;6s$¹/#~K<aۇd3jˬ?@?C&{}#l7ڦ}jV{2iuN[i~A=c>HTk
-xE| dUiiM*AŤL(
-ۢҚ -6m&咛D! HoԋkIIO|3g#
-)M2LZIU)3!t%P.h<R1a_ͷaƞ|-2z =KӼnĪݪ&
-P͓͐&ݚ(LCd2U6QMO+5E O&L.u$ '~Rcץ!=L}0q)0yRR_[K ZwuR*asqɢ" 5ݳZH&r=nr<T=I/)%$0P2S&ZU$9Ct3>_ՀXQb>Ⱥ*4@K\hZ@Ózw`r5w"Y35ݚ%%¦595ܷd=D.#oS^["m"YX8'$遗+eNHXRjxЏ 2Fp2V" 
-B"&]SL][HryVS6_
-&,42iR:S [7Xc_#1g_BJ
-G)F; ZeRE,q7
-Sd~l'@
-Z*fTV_1B,eKdrp_v܊1Euh JGc!qC!٣d8CL!#R"K[ 5oU)+.1\(? ImQ /qG;?RP@2]h^TE 3L1֝(0ǥ:4ʲᕧVyFO^TzJgyeP *Iif M0В;hjj1H9"+aOĻDC_)T-L=kԝUB+[m P+n]V{.^}ġH4o9v;W9eavԠơF ?1ĸT&U qn-U}t"gCwSYBaJLnz@{?BR=S¶&5R \SizN)Bω!)Gl࣮1TR:XˣP;K_ T H.rFt6sjșHb=`Cš੐Є$8WWH.ĭhHޠYb@C
-8t'둑LK=(O0ba_γv&wke+b'aݲo15a;W|I񒋳`&*aF%EY9_b
-q.8G%=Ɗx\θHΜ1,J2Ď?@>"t0ʫt<m`(I <<⃉'ßMYWM5x?I0"
-Q?eqU@BuY u+ZLj:f(u&b^qC?83ʉ=nm7S?Pl)
-{? }h@YF,%
-5F6k3$qJ\`j}S:-連j0Gh-666AmS \Z&%]_@FpRB؜^P@Sv1?{N5$zR4=5p;u76Z}tWfH gx-8Q64A3h@avL|]P)qOv8ن mN%ȧ:@0Tw'G*ޑOp~
-)~
-!y,
-@iS,
-@%2כ'bGIǯIb]Y4}|U$pɞpWPFv.J)E i~gIL(X˅{r {xx˅{xI-nh:敼̮u6久;Jط[;ݥZ=Cˁ^C^uv4ݱ{<=,;5b~کz@a&?efrOb-/7mz
-v)}^rmAvh4"~}ӛsMMBV$ Hr4*4Tsj4Xzq4E=RYW!4s KFOdK ة3 +is2 _`x ()8n8?A7-00"
-)f@^_7{*+~WM.b^_7+'.'C8.7/KHbJ#0YJP% 0PG/B{oH0%iC$=H(WP*= 9Mg4î~6;=tNl8:kEaGutjBNKo6=/k|D:7V8J}1?Kr|tgyf͍y'KG1<D `&y@`)q>JM?lnUj Or3Ci\kk/5ripk? /sNcz:S7.^V8uI%Է="9۷ *StRՓkAEt/ivCq0+i5SaA3[mڵעi"t0 SްNh$VO< nv^'x[HWSܜj0>KO7v?rZ\MuK3$ ^ ud(R9Lńh G)WhSv83w @
-:?uÄtL 3x}zp+/ۻw`5W]_!3}T *k>Na#K:m!RbA5_a ᘨTر]e»+؈SlilB ^_Z_0ƼC=DZ/P t=
-l7eBg ԻGY;]/oGg|
+543 0 obj
+<< /Filter /FlateDecode /Length 4878 >>
+stream
+x]I_ǧ0@8'%%9Flؗ=lL2d:En^??AFRɷ?>x7aI_?Kcb9JƘ}µ' !xEJsV"lJ(4~d_U!hǧOB*M])%,j_Z3)S3AxPԢ?wᭉ9ɼdSk\BZhô<]("7`٢DYzwa-1>=6騼cx#GFq/x"щ2Zb9дY6MU>Q,| *&)$䣶Q
+:${XHKf ׋| &Ԗ 4lN0~"ыB:jZJM?΂~Ij"Y:sdDx:]]H#b
+o&@Z=;.I 2Et5Ё|Z J̽ _,T}?PkoidEv[$Y gNXhp%]zds(;iS%[\$׌[Qh\/ PJ2YrIjO@ Tmn?d9܏VDqMn@.ltPzyt5t՞qdx%X1jYȋq,~vX*1f,{RFv$ cV\yǒ4tx1O`&JP[!I~ ͥ~}Qօ Ep}! v~c"F>1
+^w +o
+ZFkHHudmqjdshb5
+Ȱcbx]rȚrk ȸʂϛ޻yln;HkU 6yro%x6AZd~qgn]n02
+fmD4j6^"[(A*ߟoY;y;)Aszh-rJ%ڻtmc˝=7Z[u3f4( 0s׍h#nڒ+:'(Gپ;SՓZl>_ WZc74CQ&[8'gT Mt_Ň'/ZC9]!bbe7TИGmudxýB'i_󱆜>Z,<1H]XWR.r<VݔH{z~X Z0gݛnէ/mflTD{ARCJp|Ȁ#Z8"-R7h߃(r'c)͟ArqS'L* JwQO_IMr;rn5H ?i- 1'(?ʉ\A:zԠ\%ǰ=rp+ dK9B(_ґ%'j1ǝځʐ}޽Ѩp3F'N*0-V\m/׌_;`X
+~T]dV쐋J
+ K.ZBK
+pp@H}}5<Cy`X,h"a(xhX,h ",A*:pl*g8 ) )` %dY#` %b X+D
+/'U'2=TKF127<ypDH=wK|< uf˹:&ۆsu9FsN
+Pv hldej "\bBqya%X[`5Fn)ՌJ>E{IT nV›KٹP6TR6w&&LRfQ>}DQu꒢`FQPSLa6KJ̈[n†jk2m]f
+F}Ѓ 8J!֒(UAmIICT¼d>DaѳD'y 5 tA
+X_qT
+@hȰgIrdr#E`d#5XSL([]c1^&d{.eDWkm\9<jr4tm#DkSA^d7!l63.
+bTar R6 Fm(g9Zu6C`%鮳nп,?#PK6]}8ZgQDفEl/7@욮+ȫy;.N?~UvZyY[_6(ĈcՅ}Kf@sU)ar9 Ȼ@٤{z&꭭t1d.V!ՂDv͑}bOCf׶rtv9[2RBƻDk/Y<8B0J^%G9]3 :Y3nCCqDEMt/ Sbpȗ Jb_BZD0-"Vs/ae4|Ǜy=&
+^X7U0a@Z k2m/I/k@
+dEes. jEEoj(JCEڰm˴
endstream
endobj
-541 0 obj
-<< /Type /Page /Contents 542 0 R /Resources 540 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 544 0 R >>
+542 0 obj
+<< /Type /Page /Contents 543 0 R /Resources 541 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 479 0 R /Annots 545 0 R >>
endobj
-544 0 obj
-[ 539 0 R ]
+545 0 obj
+[ 539 0 R 540 0 R ]
endobj
539 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 485.826 484.38 492.8 496.336 ]/A << /S /GoTo /D (section.4) >> >>
-endobj
-543 0 obj
-<< /D [ 541 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.232 745.619 461.187 757.574 ]/A << /S /GoTo /D (section.9) >> >>
endobj
540 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F19 383 0 R /F65 391 0 R /F66 392 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.669 557.883 427.624 569.838 ]/A << /S /GoTo /D (subsection.14.4) >> >>
+endobj
+544 0 obj
+<< /D [ 542 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+541 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F29 379 0 R /F20 386 0 R /F26 408 0 R /F55 387 0 R /F23 383 0 R /F51 384 0 R /F57 389 0 R /F64 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
549 0 obj
-<< /Filter /FlateDecode /Length 5128 >>
-stream
-x=ˎ丑
-@r~
-Bl1co/x(™]#]~{R,ŭDqێㇱ0B(lDX͈bzN# E2^hxӤooYϼhTG#F#U]gaT{f-eKwz  z8rDV{<F}
-- ~i5O0vO=2Yٞ }IrNB F!V8IsvXC$O [9 Ki կ}$*(o9y-MhuiKӔNjK_GzGF*}Ehu ;L#HJG
-=1i0
-nYJ'4Z _)&-{T
-XL ؃$C*Zr@@FAZ
-
-q~F0}K_Jg.} 5g%R?o¿m)7.B"q/0nˍN)L^[w@ BvammY;x î?c@q
-"vfQ8
-Pf"RrG;F`LKD1,F rJ>Ћ6w:%FBk"zBK$opAy5 U`6c a5.|^ ?P <Awðj@3cbl\a
-D:~(
-P\bA Tw+BJnUڹL\sE^zcctlʈlZiȽ" Bk1q&3mt`Hɛ~zA-))Wn:06.`ŵ;)?7.RS])h2&5C?ۜ<Ǿa۰LCp[R*,Y~iJL)+̉:O9DFٖc,9IIÊ iA܌O4ҵIdg^nod?B6'3_Y @ۑq阭]7{ǯ!T˫ߛ&} %%"/?uӉlH\2sGZEո9O2wf
-V|@l/{Bhrl5E8b&am>!q
-'a]03r
-' <.x7 zXc~z7&!6%yXcc }Kp:A/?A/N$ z7t޸<IN)z+ .B&aG {"GRJÙAiKNƺsT}z34|>'U؉z1VpNаl,n[ ඥt)w4'}.έ3U2xhyV9)ciX6E7B[8G&)0WVDZǥ"z?clÝlȰ0MZڈټjg@"YꢺE\Q74•AbN;i(!KT4D\C<{DZ𗶥#0uk}X]?u.,"sߖ?&B!uCqBn]mr?(mjO^-ŐP;7>DZ7lòG}C8q>8:m =mWVpߟߢWj8Lm?]|U~sL*h i? LR1}ܞX*n'/a2x[iNw/P޸İqF߶3-̟fN=(/gi:rfTh´#j|Dθ ud 2f'n<taS[΄] #" 0F:bNrKjJ_L>HrKq_ `|C.?bitχ dX<LXcR,+ SKsQVp 7$@^GZ5|6n7q˽pS`ҩ#<! 3Ñ桬Gc9
-1NRc6TN
-PXIVWbT_<sQW8}D܌zsX(trBQ1QVcoB;/./Q/W/db8W5:j^D['̬\XI%&_WW+Z^z'*p;UawRl^z"k-I^j+Vt`J#Vt[{.r)\o
-8?n_Ih_򥬿A]9LХ T -\eP&XbeU_"a/,FQTZ)ol=B%B&!EQVm(Q*Ն
-mhU_*rޗR?hU=*ߵVTܖ$ƚ E]Q
-olmQS, mDY|m 1̓RHSq}h9Nłu !r ЋU]X1l[M\S:ɖ)kU-\5L]7^o0klwQWŴ7/B)*cRtzaWpG嫵cL<Hkc+oP_'-ه/(">dQ-_IYb@E ]0<4_)7,#DKY1%\c퍟_,^ngt-p_+ߍQpqsd鵓ƖW+:~>/
-AER+"ۇy*S
+<< /Filter /FlateDecode /Length 4413 >>
+stream
+x]IoWqSg6$d
+o5@M=g@!'if<г1̴W:¨U@>\$pMrJIE[I%}F C dbM莒Jw<:3@M[7r1z̻h3퐏Q;XE%x)HOB)jĪ+vG.xѿ6;Z$ a*kRA{Ьk3e53KY(6;3Xvfj ۜZY\[: 
+* 1&V[I馛! / ]vLrza 335*&!**,T]\E|uSr>Z~+u$MP :YQ &̡^\V 70vgj]QM6 6*vTe,q'8x,&GJeXhD<& EUQ.a0ٴhv`vU+TD99o,*|!NImg&+8:J8(<p$d+M֡)~FѢNsh"7T̵#Y=rY,!Geݨu %ˑPW\˒ц^zTҒ`DF0ܗFd2o-6HDW9*-˰x<xW+L.(;!3_]g}ۮCcd#E 1/(HaP.eJ"Le}$\uMHyY1\UL5ś̸&uVز~phmu.)DA>Uk8R(?Dxhu"ЧhDRm'"g=H9KHKKg,q<0 xR3(Ul+*<#h#O>`P9ekM4uj07z[L60bP鋪RS8^ <bqd1{P{G8Z@]a8;lYsX#~#\&G1s23YCv9龎9W?xSEtf.sK^k`Yfx&*_؇B: \ uv&lK86N'V7@X=ݔD9d2ç7Oy+wÈU)ڡA"s:+?D4 1Юrg&N/ī!$=ɿ$\B!_;+{G<M_x,.<sd@Fb`ݕJyPrNJ$aNRv[Bܠek NٰǦP^Cp @),X%28&h ̃ntԝ[6<
+Į:.n""6$#[^U] V+oA4$\UEޏWdEH59ֻvt[VhmUr ]-8u-\TN7Ӹ;_D #Ը
+nizlj(v['[aZJ Y0/8GL)#iXHH!wDXݴ
+D[~OnF
+RAb=$/՟%z ofDvGmڸ7R#,6/!}Km8o`42"#+^_]jrDWz ?"bz4V*l0$hSj$_vU˔
+9U[eBH]`:R|ɣe"^ё`$B *+ U'Uo I ăx?|V_W NI,oR&|8Φ3௟|%Q;F83:BW
+xܪ4UJajI5*$\0XvRlZգvDnj0 +ߤ:[ bcαSb[טżt1ǒ?e:GAϷҰA H mW&W99,ٽM~آcp ՍMEj<#^v忓
+ aҌzµ#G13N bZ>_a^usQc$ZW.&eI+mj}g> 6f#zQ_.h~*
+o.QMWq cw!H:TqwDT)^Itɡќ?>..EMWG0+-Kkyե#׭=W=^{
+Zw|N<7 i>|۾)>|lK Js4<r~].WWߜ)ھ"Ba afXzn[3,dKƇf'1m<qWz gp}1NDJ~M+3՛s8m.Ǘ
+i) h||i01矏/ۙT<_Fu5^~SVHǗs|[o~ԔKFix|i>
+CsR6HV4D>2
+bebd [xXV;h mRTyΕ=An m
endstream
endobj
548 0 obj
<< /Type /Page /Contents 549 0 R /Resources 547 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 552 0 R >>
endobj
552 0 obj
-[ 545 0 R ]
+[ 546 0 R ]
endobj
-545 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.619 67.03 177.076 78.488 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+546 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 485.826 677.873 492.8 689.828 ]/A << /S /GoTo /D (section.4) >> >>
endobj
550 0 obj
<< /D [ 548 0 R /XYZ 78.37 808.885 null ] >>
endobj
547 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R /F56 388 0 R /F23 383 0 R /F58 390 0 R /F55 387 0 R /F45 394 0 R /F40 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-555 0 obj
-<< /Filter /FlateDecode /Length 5972 >>
-stream
-x]ˎ+j9(Dž @5`G;+ڋko7o2d*̢`0Af2O?/;}~W.8͵|;v1s1_S-~( W)^W b_A%mm'ɢ]ߞI_Jz%#JOslۑ4|FM:Ɔ;N$۠{ே> v'~ >I{Ђ0AoŖ^q8McZqLp w0 .654&PpFur?w%."@9 nК}x|*L-I
-L3
-!&5mrS iWʇK'H 6u7v\8V͘{[)#U#{]
-<&"]p8]_'Gk"THyë պ>Q qES9P Z&9nCT%p¨1Az_HKOx)?aJ!
-hM61@y@{hSzPm)AW8#b-^:M
-<#9"c\0/A&xZxj cMb2m?0})y'NDrIX t2⡌j['D:$f>vbJb'xU0o uYa_P >^`D*X&f,rn^qRgaRX/Gp`K2*ٖ[]x+R.$Īc-$9wj.p[*X7(|?v,,,eH׾[rl˟J*YgQ>-PZ?( (q޵4T@eMZ~o6dVKYPʗ[%lyճLd} :i yYF&Ĩnh!ڄ.[S_ţ?F"@lQ |[f=`_ 9тzgCSF].ᡭݏ]4.wad;iːL(gȰ6[F~S~>vW%g5Q:'=$e#ݻyߜD
-0sI(:xLēt^E:K7C 0Lc; ŠSX
-w
- 1g&D'3Gr\%s;gI<S}'1t
- k)`=u%NiڝSO9,j!v<Ӵ ͢0y9 ANaz&\E0sɼ<vOurHP4R
-Ov Hy`Vbԙw
-JgWx' Dl+, G >f.'J>AI DمLAă3 N(+RCM{$RYDhTXfDϸ'1ӹWXyoFX& Tfq>_w
-O] H嵅`BLxT^àSxz<A*}K:S8m qK+s8;z>w6A½@PMM@
-k(tH Ɛgi
-fע۽LŸ _Kע[krAZT;ʐ0_Q4;<oYY-V_z EuQU{V_EӃﺝnL[P+ryAN a* ^ᥙ,uyC`Rl@Ѹ1)&:'d&_{̲sa7rA!\7LYU>h<ī
-*luA됟 WBǬQ>h.NoK;0,zt?aI|igCƷEN0/+j ҐJc 5jD{(<3X%OԪIsκ7}W)xPX<_=%[: ["^Ƅ~l2+'K{R_2w1ju tC6,W2QJ"`҉u/Ǥ\f~[[~@:+ےO\hW.E0Q0򯫔r (;*:'zۑAUh9~z͗q0x [RV.yV
-^Km@[{MlusQsX3$S*Df8qBdv/~$n0LLqDM%9™=a#Q!\σ&"nKhxTѸk:9%
->G6 3AT|<h$[pJ%ZG>K-cnq[bf͝і2r06zvsZXRK{bґ@Qu3lzv9Қz%TeXpHoa_Xv
-GcUn"=_cvPpFYk#ki;:6wo;rP;|\؇i7팑XV
-b)s o %-OH[ șa]))%_gCJ/,xDp(|~Ԯ{dK]|+nCSJd'J/%KGPQR޵oi([1z8,<BCƅccBeIϿ&U1C%Bkq
-,YHdp``RΝ>Q=ce?))WwS0녾G]~}9ܨ+Z||Cި #‰iBW<]苷yYЀ'5:O4ğJBgo͎3kq&<fΒϒ0)ZOf~c,AW(cVyK⤛ Z *ǷGpٿruqnU'e4Q ~9DWПf:r0ň0.uy8jLs 9~6#nf>ycɯUzJa>w_uc3UO!ԧ`;d-7Qnk[*{
-k
-ӨUFŒq~
-3so0ۖ;BO S/eW6n88w A
-V}(zs0BsTYS:ضu_^?qriYp?׬#$Lo?y;_H8Xaͯ5DnSYQهVH$4XkM*Mм&qp']1;A@2巾wt|(mʫs/R>lSSѱ&퇞_Kcҏ枩5OR+DͻSѺ .H[ Aٷ%i6Gy5d
-M6l5QU? '035[:-1(n^VjLXeX('ݨSΐ?"f(2Y?i2 CپhEDDue!0$ւ-N<&cU씨BkMpX:#}{zR8WNXf0T{XS 1ȤЏ$f# /v_U8)k%? QӫFo?!ӆEUv+q_<Lx!GcG%A8>`wVkMWbCoí7$HĭoP'%#w09t2-]mm&ɂ8f|Z;t "ߤA-Xo5pMU§H[Q$ھ. !rrRޢZm3~L>JCU`}#Iw[l^4qP l*d!6-?f*Jva~:ɱ[^+Gȗz?R^Þ"}q驚,^ i::p%eF":7=Wl-Y/Nd\]Y=\c5/qF42e~$o԰u b&}EXUQIjI8V֞^ybWD ntyu%t [o]^Л{y o|/կr `nopɋqŘUk9CE
+557 0 obj
+<< /Filter /FlateDecode /Length 4974 >>
+stream
+x]ˎ云W(4ueΪǽ3^ۀOCD*4fQTD A)DZPOEO\_?1 [͈d˷_(+>i%񺶔_"~)&xZn>ۯۊ#Rɪ/*SKL,ߗ& Ρ4m_(P T?3aa[9UV_ᱏ^?͗c 5wųbST&Ey~i<*gv"JֺYF ;|Ҩ MKh+EO%h6kkWOl2D1pG-yDvbEoc=UX&6JVq-ʖzmFfIM~BO$rT6{hKZpP$- ~ `Y{9(FY7(ziE ^0"=~]k#]H"|њ&]0wI5g| E+g|C8]ۋ33\ǒw x߿?Gt0SXn4_n Z뿗@cV#7P/ =.N-^[|ʟiVA(J9% pG2E܍Pf`P48#J{ոKƞ”W:h/#LHkۗ6 8:{=PE 6Ƈ 0nA9;H0?f<l81O"
+u pЛQ4ݦ-/|"#ަC+uȼDq_fp>kb5gk(~ 4FކzMGNwV-"Y
+SB:yJ;"$IONrWVӾQΜQ-v2\sʣ{K,k(N4V7HĞHk\]3=7n
+Ti*i
+y;TW ø2pq>aһ^c|z9R ø ATEa09.E?aqSG-.QaxjSа
+zT1
+a+T߰KvԓnL8j L
+hҍ
+Љ [A^gLD50<֐i2]m؟6q,exj;
+oWOxT~t
+gvc@?Zk2<GGmexj`aLza|υ?N&,>hzS%
+
+hS%V0GgZÛT7Vp4LЃd"ܯ8$ChLN1 `=[} 'pgkq>^TKk'ZTK4 O
+C!=jc
+Ck3;.ÆȧeoQ2<gc*Fׇg3E\Wn`< ΋$;[tL30݇i-E r8]%:<bdz˼ͳ>/ZxoRɇ6>lxCF!y'||)Ssа:sBg&x3M$(LIͬˣ!+_~]>%gV&3|)sߗO.=ƒvd{sqkOd`} k`e\z`̄Υw
+Zg(S:8iI|KӥEwo'L504OfT>SϣogL=0熞jgWOc1}uca7Mxk9)O; T0yJM=uT+gT|M?S6m3 C6)٘ Llzfز)ÖdkƯai8RBp^`.u#)kߊd 4
+lu^{6*_0IW~_\eÕ˨T6:eo%lbZT*_F*Sm2,(C͈dO%8RÌV@m>)F|{_gfNYY̲^Sc{|'/iKtk\yHɞ+Ʃ~0Wn6/QD桇zN?YT\HZ_x@}ag[l_k\/ƒBY|!7oF|>)$>mɹԄlKN`($md/f-(ddn'`?K&k|(-E .
endstream
endobj
-554 0 obj
-<< /Type /Page /Contents 555 0 R /Resources 553 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 557 0 R >>
+556 0 obj
+<< /Type /Page /Contents 557 0 R /Resources 555 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 559 0 R >>
endobj
-557 0 obj
-[ 546 0 R ]
+559 0 obj
+[ 554 0 R 553 0 R ]
endobj
-546 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 303.589 745.619 315.545 757.574 ]/A << /S /GoTo /D (section.9) >> >>
+554 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 303.589 141.026 315.545 152.982 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-556 0 obj
-<< /D [ 554 0 R /XYZ 78.37 808.885 null ] >>
+553 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.619 67.03 177.076 78.488 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-105 0 obj
-<< /D [ 554 0 R /XYZ 79.37 191.651 null ] >>
+558 0 obj
+<< /D [ 556 0 R /XYZ 78.37 808.885 null ] >>
endobj
-553 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F16 386 0 R /F55 387 0 R /F19 383 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+555 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-561 0 obj
-<< /Filter /FlateDecode /Length 4775 >>
-stream
-xˎ$>_QGЊ`Y97''6x ؗ~Hսrj)QZ_?=˧_@8FTьP͖Oӧ
-/OOdLJY2X P1¬]aM#"UZTr WJTgiɠKb{3Ћx{yk|~ !Z<d05ZxZ vaUMW.Iщ.F^{–MC-,Y%H5ykc4j,"Ϸ8K:5B% wl]?J x
-/ "H$Ѐthg9Vߵ`ΈS!,XI* A*RU|,:Ft}3uG}6>_}z}1VT:~Wrks쒋0ВU֘~Fmz|̬۔ |kSiŷF&a+#"[z^ۏԕ(7%#{b44zEpSk4·,F9.9L+&L15M
-ku@a`c<9aǹ(-'rQ1A Ʒig W3=|2m*>.pNz4:lɣxAqj@OTV~Τ<y<O{1zYsjxɡ&Ժlf;uV@LswfWkMЏq+%1 m>j(>,XgLL'*bgiKQhaDW$?9kڶgki
-Ӯk&trOPuɠC]cTqj)8W"?$Y"4ހ2 o>͟:rQv
-W[2@o Kdeuucۛt)RQ+؏vn
-MX?>BW~;+<G
-`RMB
-sow w_ʿoQR?~IK@s!1Є n.OHsn`&,Y3Wrgs#+5$MW0#|GFOO|A3}woO5d}2toq&ݶ uv!q )(^w7J$8:!Oh=r8k["`Š!dRA'y[|ŧu4xW xeQ8 UJ@lAfYwZ9kzX[4IՇ<#}:.E:\pS1]DêP7?m534 Ue40ԒZ#ȺiTBUU(a+]*0~?FAf<횻7x"]u"?ȚԼcȵCmlsJ: I8vc!sxt a\b xz=5}w[7'V\nM<##YϤͅ'tk9E!>ȟԼOX)5iy7@37*ͣ|&sSn~'?ySPyֵ:ܾCU&m 4n7"94] qS.U#ʅ$RVA!&>ȤԼg_֬n<eW7{SzlX}\q#bW[>4Ef)-Q֫~3NM?t^=v.XHaa}+ϭ>=fP={{ʇU(56q}agfqu]聱QqVm_>`)):3SpF
-]cžrP.iRa0r%Wu0e!s."(+X'(TqŮä*K_ dQ$]Xӛ&ӼȁJڟX
-o-)uuͻ
-3zM(!ѧ9/TWX/y`bBQKj#ZA^.p1v2aMcRA̵t<g0Ivǒ'//SiKi//S*\_Py׊~E#M Mڣ/G}} ,j7C])9SKCaŪfuZ`SU0`P\ `NuR9wsbj};3u<I{$RUp;~K\
-lQP~x!Uy+C̐P.a.C}rqU 8P̀cXK.!.4S` ɗ5Q
-Aއ6˻P7z
-uR&?*9N,XE4_y3hVe^ jaG ҅Qt\n298
- a2M,^,FA\=7v8]3+ 4}B SET6b"o$ "'(/Es`7 0[:\e17۪o<r)$(
-kS0QnEM㐺zvi6ٌyauxGRGX;>Tx*_Mm0+qwm#^Q ЕMV_WGr(:^db3XI_QU
-مi@D8Oald#l.oM}{|i|u/5}MW' -6vHnq"nfsjtovoQ.ꚣߢy{sw^
-b'*O ;aKTJT_nD]1IDa}ÂW]Z?0!(5/7 gZd.C,
-2X粭6?>PU·}]g4+мSb{(k:,<#v*bX)Эmv JeZUAjJпZkceTQ7-u˝M: )N93R[6Kn)v
+563 0 obj
+<< /Filter /FlateDecode /Length 6253 >>
+stream
+x]K#q FGE\1{>㈙&dJ59T
+H0F)xi _^xI+%%"'\B2A$xDK<;' g
+!v?M WH'aS9P% C*}QvuOzފ:ẅ́Fݢ<]KzdF>ImmOo&@o x;}`!V*8MNxKNy3|g^SlqdeՁ>nu1AApES9!U
+j&UqL9K*fJDIk pi7Rߢ cE964"$Da)5,j˜I
+p2ۭL:|"AYqJc!M(PyҼ4UbfLհl,
+"H}Mu1&a|%UjQ? nÌ8gw$Lf>"FGJ1 dYN8ͶklM&=1ڏȫ(%[x}T\/3PKV z]SF& fxG&,,N7z2d1u<R!Y?4, [GֽԾ?Ы
+\mgs"E)\؞<F4YDY׻s#&J14|{o$vr磈0nwD0 >DmތXUAvHerL\)dqP\ˇ_/@SCZΪ].'Y#B
+S v`r7p!!@2g1KmHm'TneZSb4pn&LȊ)pjˌ3d:*z22fJ%<rBo!p `%p QB^n&*1'%xg&t%,goˬXysLٺ?M"%([iˤ3-3y]q.H$&JU|uDި'͉8~hC.f7nq~;7XXܢ1^]{CCpN푸]vmoȗmIlk'O{;g:dh|$n3%?1+6~q'xk|C>1ۙwyWXKG6ծ CUC>"QTLWf``1D䊏4FD=zVm,\zc8rX8'NF\cx[sA
+et OЮ .
+YҘo KI}tԓni.Xt.xI4cxp9:yqKX42u"t3<uYsAJ" ή (묹 %(9y %et k46BvEa )jӧg=S'5<ں`! R]Rm=,gxĻ䁜GWcgx\X=Ù{PDX|ۋᙋϢ "yywED(U{ŝj.(8~cjP)h~>D~=7(D~Sgxo]ɗcϰdP>SVj-cxZTZ[,]<Q-^sA*Q1<u-^sA*}$s%?څm?0qH~*zu?x f- /ׇ8ƺr>)1]gc:Hd8mi/ P\~&,Q܉z-݁(.2MGkaSI,5x ʓ0wm8>y.2^g'WSȚ9P<:y k{
+jfXU->
+[]}P3JVz67KvAifcF ̘f=&{;cyiC·f襯=r /2* "[IX5ԙU E.xzpA@g2ʭh46|J&t?-uj"ZYXB!PN/ItJ*:cϷfCP++1D X \fEj'[K0XwF#<bI=L@ߠn'tBU)xM)`x]pO,kDL0N#\ 96 K~|_Q wm'
+L-RVNۑf5LKΐ.fIUwԐ&NI of#:ڿ!VW# ^.|n{(M?!Y!%QN
+SB{p';@O
+k#w˧"|[Q Kbe(_apꟸ+^>t MRh+Iwż+A|,01~j`%r? h}l`px-Ipɐ
+ 1(JTDz
+rL!Βq/V?/7xS3@DE_K 0Ay+w >ZP/r7v+Ug4CKJEhK&+E CWho V5@8wnsdgIlg"u$N vKdތ-u1"s7-: Qwҷnlï~lg:9 ]pVԭ-۹~+1[`=1}rƥiA
+y9+sg( ԉxwyߠ7]WflQK47)"%;Rk|'Mx-uJG3 tHT.v|_,eai'#np+F}͑q
+\lYӓW5?rx;pڶNk35LXsek֐W,xج~X?_|չfR*:_5Z9kX+L~r͉
+3U5?d^{̗-CﮁQqzgFܝYH<2p`[ށbGfK)];*Q%lu <g/afsgݱi$$ca*e+#5+WqNgVbHR_c<bXb5Qgh5ÀszxI_\ o}z_t<iH$GjᡥCe j{`nk~ZL?4L9I 89N 0{8n
+KNyv[LhDMw Fr](BvVllhN9x\kΥP'˷QdjT`lٻm'5e870{L\=KPwV^fj(XeP('̞EMQSRPd4lwD>1ݷx H.(WP/O17G)B2Z
+%
+WB.('aP;ؿC O(
+A)ZqO .`p pW?vdo:@d
+6w^[ubS*[nH.>֢7>Q|ppPYH[2[L3qkD-ldE SiQ&4$r#Z^j@Ug
+Sī ("Jm 3̔[7a*mϖRW7 3WQkhʣ4jbC$Fԯgj19j^zcINmi >k:_ @
+'fTV~+eiP55nQ^|Bec;T+X@_\Mv0•
+Y)~ fx`IzNh:r(p9޼Dz4ҥq)6yQC[+ymъc$3|h HծxkJ{ʓՙ| Rc{V?/JjM@pY;(Fg<l#J =Ƹ{)p)*4m{s/U ZZ& 6'jG>Z\02/K2O9cUGp,Y_
+w?|[M#!^tk JaS[Y~RVT#\V1@_@8ʆƼiӮtW52s"ּR|h>X4`+ ԙB(
+YW+au/q^i<f1=ʯG[~2+";_)BǕ; Q-BkTr-mdfU+5tYs<p1+X
+6@wB 43]C|v@r%}a$%Xn,V&/P4lˬʸt tfuaJm}Ѕg0%?'YZVE
endstream
endobj
-560 0 obj
-<< /Type /Page /Contents 561 0 R /Resources 559 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 563 0 R >>
+562 0 obj
+<< /Type /Page /Contents 563 0 R /Resources 561 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
endobj
-563 0 obj
-[ 558 0 R ]
+564 0 obj
+<< /D [ 562 0 R /XYZ 78.37 808.885 null ] >>
endobj
-558 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 105.274 98.706 116.731 ]/A << /S /GoTo /D (section.7) >> >>
+105 0 obj
+<< /D [ 562 0 R /XYZ 79.37 234.491 null ] >>
endobj
-562 0 obj
-<< /D [ 560 0 R /XYZ 78.37 808.885 null ] >>
+561 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F20 386 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F23 383 0 R /F68 406 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F70 419 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-559 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F41 489 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+567 0 obj
+<< /Filter /FlateDecode /Length 4629 >>
+stream
+xˎ$>_QGЊ`5ٛHK~?RI
+-u 2
+)A!xh:nsyŷF&!s|![wJYk2XH6dd @wD7_/<DjˡpɉѢ(R/#t
+۲L% `AS,Oa8gj98؁m){
+?-o@@N(9jQr(Ѧ "x/,r#"yYv,vBWG{'pшyc0oo m&`XL}' 7h~*FSrxc{
+iLcMdxyB8W8qn2ɑ&5" 1 Kh,ui1m)+'ЋFxHj¨HpHR}&RY7ce׷2Sa=o/9@+DQbeML`?KaOU,;h{ޕTH{Yb] c.vV㷖.Yb҉ܷҤyOBU<$]FNe oSR:N((dla-pUgxh$r&,#|?\~sKu@1ΑrG_3Yn HGQ u(sIr;- IgT;5-ԏ?|%ahHM`: AN ˒U:$7-׏?|P~-R|$oĕ7*z7#'x}3
+Hc=ضR)GxW?4[JS2Zvev.ىM5Cޛipe
+|
+`=P){9;'b-7,B
+N
+w
+Q΄J:^W"{~_EY0|ۭm͚o۸-Nu\`Siq2A8PWeKn5e%wͻisHW]dvI݈G0_ xW}(+0jqϥ<6ɾd|7y 7XbkE8^X),B(OmsJM_5Z9V]ku=ax`Շ'V#Nl۷T=o/`wv/X |lG!+qW>6=4am:<?xXտ64ϢitC\wuSӣ֗ʌyձ(w-zƶm6yݽcnحP<K۞4h3&xW q\8Q4JD^mw1jXΜٛu&phǒҪa=OZ%3Ԃ2AmR\rOo
+[60}[j4мMd gտ݃SAA> kJ!cm[ZrD
+7<r2آWSV][rc7X"D:!ҥ8vKVwӼB=el}u}Bg
+endstream
+endobj
+566 0 obj
+<< /Type /Page /Contents 567 0 R /Resources 565 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 569 0 R >>
endobj
569 0 obj
-<< /Filter /FlateDecode /Length 4561 >>
-stream
-x<ˎ$7~
-޾Ld ]-`ՋjΌK^!E[n,[0Rѹ=u[7w̿HDD#=<LMlYQW,bTqǼ+ .uL鉚3I8N"BZ|+tH n|EO
-dB3z(v{ Q#ԉ=a+'(yoG4U(tJZɌV@ k+BNP;:&SLܒRӠ7Q&<P<i"%j(5X+Y9 M_g&!NiRZ:D!yBi4[;JMcͤe څ@ozFmauIw'|.<q1"5FK4?l~A8h$iY1IIv¤bխToGiԤXH:H#)$L:?Q˪8LTP>(_iE=~&0zԻ=DA;F\khB#E38Z;@-&-QLlTYm7h sAMSW@x2Sd6l'BB
-aZqϡvC(D}g,vb:dҁ2ƧOJQJF{
-u]Gr"Id:D޺, V7Y JK ʐ_t㖀M:W;V %PQA_[*]7Lp5> ZkIEmQJMZF)&6{jT7qg$WOTaȒg¥ T҄^%Щ'\RA$<q8 Z.:cdy; SLnuii $FDf3F1)Kۙ 4n|ү g?uo/4W2gf4t<Dg`ۿKO͕u{SpuUw|(1L-J")IQf&rDZ]i\{-Ow\v4iL`R/CZ0|~p4L;ecg@8fAF~i[(~eWvD1-gi1_ݞ[=tLwZ{}X
-XtSbKh2VWOiXܻ0D;KQ&٩1ȌBӮv7GlMy VJ:$>3̈́QzXXeBN CcRñ[D3ܶ9z7 Oj= R byH>@
-m.s) fBfʠ@Bw`e%`0X0Xaŗ(1-z||{zoWuh-㦷dY\k"Tf?6
-p
-f=4J=,<%sZB=^@MfEr;s yZF|RIyK̳>K8 > 9,ɑ|nŃBXX}10ou 85C 9 s4Vȫ[Q l DhE3nE}65k )'7O9~VNJ)bl&j6g佞2vZX#Ń& JYÃ&|Єz
-RStS}:L[չ7ǭ% v'kqK6g܆rbp{fՊJޏ|xґT9='
-D}Qf9IUZp YweJt<LڽX45qfQDBV>6ގsgjW긷p&k:D{iVtJKFsUwjPIt
-sNoXb
-q,cNË@)!qs/OtUL_"#;{-2P
-qjؼF7Hv1P㎜WENmj`Ts
-'&OM'&<Fv9 i?j"F}V,>e=lOdKӛmV2%qZa|L/Jd@$^\5Woϸ c'7jϲ=b/O(غTDŴ<+
-Da}RST%gQf)DB}JMp2'sHӉFj/n#I& Bs5[R <Tdb bApoy( 3TS;O;c
-XiL uZ0?Դ™V^i~^Űw<s{dQh$hY8-Oe'-/#JvGGG=)nJb5N}ifv~p*RxgN oi&o9LٮNx!8L9̗˺tn4Fx7aER#| # p#c͍0&ӛe%X‚Ȼ̿4x=(U˪bV {HhL%+PG<.?jbi%G^s "L9;M}XRw!4:>x<R05g-,MaWu%\ՕpXjb-HrD*=O;zy4}__ƻeZɓb 1"HDv6dJU&c&c +Eu0rCRsz@=ăP:nc\\lxxG*u7 /| {$w'qj[:3࡛ش-*΄٤kMY4-*'kZHk;V7/Qy ->|WU/»}AM4ڮ 2,
-endstream
+[ 560 0 R ]
+endobj
+560 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 124.075 98.706 135.532 ]/A << /S /GoTo /D (section.7) >> >>
endobj
568 0 obj
-<< /Type /Page /Contents 569 0 R /Resources 567 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 571 0 R >>
+<< /D [ 566 0 R /XYZ 78.37 808.885 null ] >>
endobj
-571 0 obj
-[ 564 0 R 565 0 R ]
+565 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F45 394 0 R /F40 395 0 R /F33 499 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-564 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 433.094 505.9 440.068 517.855 ]/A << /S /GoTo /D (section.2) >> >>
+575 0 obj
+<< /Filter /FlateDecode /Length 4598 >>
+stream
+x\I%7篈?d-$
+49y\7O=>tW!o/"_z0WYAR'o ޿n&Z }Ezf`܈W΍\;Εo?9GpǴqO~)D9O^s.?_&5<}
+߾$d&E"]3oE 3-ܲ^!7>SuCo,EfܻA=6JoK4d QB#>$MǒLiYhQ/q/l/ 9Wu8`felL56]GxHKJj*M- ^3- 3 }LR8ıcTnNW ^ЃJЂ@MX[BP|Jsfu<)i$Ӡ&5U!u+)fNo&<H\6( Cl@mȲBf}ʖ/)_J7QUyҊ:$D(!_%DkHF#`rg`
+4G/TZV$;fЩogu=Տk/=0!Xz
+ MҒjFÚTuf%o{&~WYAg %rohnOn
+zd3*2YۓRPTh{)&W<J*;=:=JVimdYMwvk+ #&}8=Л֒)U*qDkG+xu'ͤN{ɬv&WC{3W(ƺAI^20O%iLTPofYØi551ٺioza?^,}g1gmgfHɼdX'0ΔNj-A -3RLo"0<j}Z`,^4 >kz>A`'625 ,+-+r̃k?S![y-}R^⪩:@ ȼx3yg0##Vy 5eVH?#pǬ8c!׊@^d)O,6~Zjn0g<Avo6󣃉CS}b( jd0əԕ6a x!; uoSbI,@)#:歟;9kY
+
+bգf?u$fhov*Q6N$kD6Yi:T /C
+a
+VuÈ:LZw
+!M9O;fǺqfF`3s{(jc
+؁Q"8{D6'0;7
+S䙺Ģ]zڎg+IOBBUBH!$  :bsJ$|}xZG.O@Cm/ϏD> 2Y!20FXqLhipp+6:C{,Z|`igI 1Ux^9ϙ-`ԳvPOQ9 O'GiԳF FnbY!GJЎu#(%ڱshNJ800> i (9vo>0ҭ8CO|)79ouPq/f"ga3bq_o u`k o6kx+9Y5Wa{I]LR^U*` "fgKC"'i/5g佞^6Qկ~/%xEZ{Di &,䵻,i|:wskvqKĀ͉Ǹ9x{٨׶v9]j{feiZA97'sKϺfqt˹Ƨ(*%t⒤|lJ;HVR7~egȃ
+c=bݭzV`)S!oU&Yn=k?{ a\9[WW#EedF6꫺cO^XK}”Pп-t˖磡lG30iqJo;&C Sc50=A18.ʠjY4<ZB_- qY0>uҕ 
+܏@WmgPl!n;zWo%Y۹GuULߐ9a.l;h22NJfCM\cҦn.bjὑbm7)L *’iݮ 4;l1性h#ئ p>S~|YՕc 2匐럷[ ~aJWYڑ&jhuZ MW%C)&
+<FX/GpAȠ>Mk8 Bj( ^a|auJ}ykpj2Z# D=  PWڇd5O\ɬDC!idL4"204']7׽. d{i?<SO־{<=Hqtr$|
+ 5˵贬
+w_>̨в(ęn+TD:>>Ԅ5HWD5" )k&D]_IFtH"tk*,nWu˸
+a-\IKKlÜ,WH g^o=ߗg×*慠|-Y˭DvvʕU bZrZ184cjN5&H}840%9Lek$4t)絒 ~d\XI{Ig TM~\LȱްFczmhZv:#tw%[xt.QOӽC
+endstream
endobj
-565 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.881 324.41 261.836 335.25 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+574 0 obj
+<< /Type /Page /Contents 575 0 R /Resources 573 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 577 0 R >>
+endobj
+577 0 obj
+[ 570 0 R 571 0 R ]
endobj
570 0 obj
-<< /D [ 568 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 433.094 505.013 440.068 516.968 ]/A << /S /GoTo /D (section.2) >> >>
+endobj
+571 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.881 321.033 261.836 331.872 ]/A << /S /GoTo /D (subsection.14.5) >> >>
+endobj
+576 0 obj
+<< /D [ 574 0 R /XYZ 78.37 808.885 null ] >>
endobj
109 0 obj
-<< /D [ 568 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 771.024 null ] >>
endobj
113 0 obj
-<< /D [ 568 0 R /XYZ 79.37 662.735 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 662.735 null ] >>
endobj
117 0 obj
-<< /D [ 568 0 R /XYZ 79.37 297.496 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 294.119 null ] >>
endobj
121 0 obj
-<< /D [ 568 0 R /XYZ 79.37 257.653 null ] >>
+<< /D [ 574 0 R /XYZ 79.37 254.275 null ] >>
endobj
-567 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F65 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+573 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F64 391 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-575 0 obj
-<< /Filter /FlateDecode /Length 4400 >>
-stream
-x]K W1> $RTzrNؕʧ
-%Sa2"y_=Q묣ƺ2~T 7*@
-g[- *_H}
-dnd!*
-Ɗ:+65׵jwS@ȈTL*X
-B@ 'bB2ye{^
-W.ȢQCO!.n-,veϛ}&W+{I;\ %ȑX0ag%-?X$ck.,q'&ْkc\ml܍8j\Y:rL:*d$F.lCӛ J+8'q1L+Jt(2[-)Û
-ZI
-ÜZu/
-8GH}Nr%ץN*OU0k챦9G͵UY}7&s#Ǹ*لm_u7 )jRX?DeBk͇le ɦ~aSU
-kζܙ{ h{92fC j"#<6P!tF:[/#Lκi͓fJYŒe +<UC q@Uy`/5iseq-OήVصH.%˘ =lҝ"\4\
-!lBtc͢ЎtJKLA8.^B-a\5Xzo:^ڝ#6d]g F5aoqk:{D` {hEh*ub
-Zb4ɓ0b` :[־.m}(.: *[Ke *@k\g
-zQ
-] RY#u+v >(hn_.۵`n?{Nkې`
-F:$uABN|R^qhR<")FM{H}
-lSSۦohɟO-8llNRO+ \6b2L{ .ڭv}ߡ^߯AÙr~g8.,Xvڃ'Xv5vL C\`kȠu*x]a.)l.DA!0s`:Pȏs 0a9vH`TۊqQUXLgr~MR-QbgN*]<p_q\U˒8P(>QhUz] ja?K~_Bp(DM 8r2}*&k߻xQ
-\[z%G%p6KhH&YMڈr
-]:d>1ԖM(\L)©nknZܧ^}1Na(͉a v߮.Cў oZ1}.ы׹R}a x?WєG}Hlsw> q= f+8I`N}>7qi <!͚0t-!}s85WH͌|
-[Z{7,rxS& ѩ(#,6<e
-|7m(?8ѝ_ 3 d7@"y0Z u#T, p+^(ʘ>"_U:}EH|]ߣy3 [c!{S'Wbk76s!ș:ۂ͹BG:z#ƭ?̇(Qbʣ|y :eyrhHG=g!~rT@G>U~@DO_4t4Rcy2ۂ0ħ;8f9 P߾ؔh{&! SZ2@ȯ->
--N^g9*Cql29rX[rj{ f@2b2!]G3xe,z-eH(rL|$4|$^u G+|)&\E7.H;#ĎQ.ǑukƆ)+
-pevwԊq), X7<'# ?۝@rġ?vvA3Y^-置zU_oњ lӍI}`Jp B97˔p}:B &C԰
-QC "@)c_J:G[/=w>燋pB"_q2@Tߗ&.y5DK${u3hwu ehNmn8!o%vk<
+581 0 obj
+<< /Filter /FlateDecode /Length 4448 >>
+stream
+x]Kl ϯ襽hgͭx<W9[;NjĎHM~$p8iq*9-@>A/O~,3oQ??_zb`܈_.߿\ |=J?9g|d^Zl9~ P_ƥL( "?|SuL[O)wu>aUx.)ƚ% k$dI`jE9zBZ'$H^5F,Ƃt]7XQ)ͬ6aX<g`+VB,j:vUS*7Ӷ=
+ >ShWJ3'_ FEph}ȴǞR'jlf aRk֭$زv&jҡ9gҔ{\8IЌ=ibI$ߣ̏A0j?9!/܍<&c۠NDžnʤ,ZRa2P
+SmC8-Ͽςլ VPvgچTw"<jrr.ZSyb}r
+n!w*3/bkEqF" FVz͵.TwY h8e#U1aHuK5}x_C3Hw u$`R4qT
+X{
+Hc_ҟkBq9aPVO
+TK%=>˅HyԺeL,{?;lli՝J^Kѡf%-mUYܺ.?LLmIўԻn_q⾒18h&G;"rL>g* )H|
+JVOAV16C1R^8z֕hGQ22`IfU NZII˼^t/ ƀqǠ?uy"B5eV64 n_؜* Ӌ>[s…1[?ف[PsmG ,Llp#cA+95"Bu 2Ob6RMG@7Y (r WU[#e5OmVWGmPsBx.yz!\ugt,V\b "BV^H
+PAῌXghl(QdE2*@|jU(kWXC/R$RVu͒"hnlF(i8=qa6a"REY阉jr֍m0XKy o~ڜ#Vd[g Uaouk:G$|hEh*evۿ㸉^ pR'A7 <SxCزAm<S
+jU
+<Hʟ{= ȅ7A{3Ϸꑺ #}#`ЮOqv6;U:OB"0(p KcR HwSԭc0d2yu`l^NR3H_U(GOOh37yD="nG=bC{yl/ç_U`;&>rwpFWe,ski;lH,$~ Z0
+Ꭾ82"pLe~C*]*y-E<9ƒpצ#vaAqR
+eKHiY7f5a ^ 8Aς{P^1%*Q9>{(QvEW/U < g*F/$;SV˽\1sKBuhUBuIa^KrfZ<`hb.yM!hE8!-Gf@.9n*gAT
+L[ꗂwJ!JLV06U\D i5%C8E:<2
+՘k)vHqm\n3Uwެpmr"㨉1R\)'1o<] OV,÷<KgsBړVnŻn *wCn(_9LAhuA˰#foV\I@H6qR dAi9`A iՂS}9z+џXflY ^U;۹Ȳ\*ΦΗIǾrHwLZ׀j sfݚ%6tD.Q9/ՌGƣ | Զ,[|wEW=Ws>@| FV,q2l/wrɦ䛯^9{M]
+M!8z $-j;)O p̉2D{CӶ12B3agX;Yk_m@mg6+\om{n3[ :Zㄬl5
+N
+w1F:EzT3NHgÝc J|IDuc<SuUc>^Q̃_%kqy'
+ȏ_)ۏ yc3H}clc)\%J3<S;TA׎JnRIC}5D_2Dq Lb_[hO}"zB!1gFdLƕN/+-2=%%C:ia0ME7"Y#=ɤkN(>ZsdњM>ڽe
+ZkD1FwLc<=.RX8
+M@ ?[7G9"/dl+};|!w5:u,z[xSZۦB:+9X>LG@-c!Z{hsNj3LrIO@x#$ V< ^o]D<F >;&XU
+V闥K@x2DJOZ}ٟ}ݲ|AY0 @mfFf> ܚeT+Yz`U2E/~N7l)܉*7U.RpM
endstream
endobj
-574 0 obj
-<< /Type /Page /Contents 575 0 R /Resources 573 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 577 0 R >>
-endobj
-577 0 obj
-[ 566 0 R 572 0 R ]
+580 0 obj
+<< /Type /Page /Contents 581 0 R /Resources 579 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 583 0 R >>
endobj
-566 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.425 745.619 255.38 757.574 ]/A << /S /GoTo /D (section.9) >> >>
+583 0 obj
+[ 572 0 R 578 0 R ]
endobj
572 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.68 333.295 403.654 345.25 ]/A << /S /GoTo /D (section.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.425 744.832 255.38 757.574 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-576 0 obj
-<< /D [ 574 0 R /XYZ 78.37 808.885 null ] >>
+578 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.68 325.293 403.654 337.248 ]/A << /S /GoTo /D (section.4) >> >>
+endobj
+582 0 obj
+<< /D [ 580 0 R /XYZ 78.37 808.885 null ] >>
endobj
125 0 obj
-<< /D [ 574 0 R /XYZ 79.37 185.953 null ] >>
+<< /D [ 580 0 R /XYZ 79.37 175.496 null ] >>
endobj
-573 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F57 389 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F58 390 0 R /F19 383 0 R /F69 406 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+579 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F57 389 0 R /F56 388 0 R /F29 379 0 R /F20 386 0 R /F26 408 0 R /F58 390 0 R /F23 383 0 R /F68 406 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-580 0 obj
-<< /Filter /FlateDecode /Length 4098 >>
-stream
-xɎ%_QGϡeځFyii>9Hb$~H[-I=^=HoO߾},7`wجgnƍؾ~~y83OO8}\
-3xQ( <_ f[pL]nxn,ch{C
--af܂q$mک Nc.oEE):a<~/p4iA1_Ӥ>,p,Ɓ
-Մ GIc3ť85+Б.yq99%<>3)GTJrB<[$Rb;6HcgDL5Y]TmR]5`v^{eAZ.=wV
-],GX7 zқ Q\rs֎Uprx6eƠPZBBq̒˫!*ľؠr:K{+9 R,<QvJdq1^ * FhILLQaiOBvLA/  2H
-Ό˞#pfQtcDS,Qr1(2HOAh!?ֵ3'FdcBsclcI_Nˑ4"đn}73cKe$ 2 ncc\|؅VnJfPLx%HFo;Џ@ߢ4n&
-P9)JB6쭝 feҏ K]0,Y:Id'zw?x$a|!A_.{%}4y M<@y(ˬG\5=,Z
-(j6$'4SP}|k"28!Hp!4{DMy$PwD+ @Yj
-ze΍P($U'FH8B_ 5ΆcGU9ÜR+Ѩnm[.Zg)뫥?qCR3nJ1=[ZΔ91[ \ou"7ґ%ԫ3%'xsU^8)٤k8sh@fe4 G g>L}I}I:gD֤Kv@^O9?1|N&D~H<ϰ VA m:)RiطF7biluqIJfO%;diPgJ|Bs[dήHja+ jW=Ǯ]LN/ QoE{Og9|h$9oS~vdžh<;{ve+ bm{Ǭ'Y -}ٟG}G`ƿo߶wfW,-ϣF~> mNX~ahPt)آʶu9ԌuA/,e'
-p_FN 7_f5rH:VKE=mW9F[dO>Jr)W {@^ZMp3QGPC͢ ],i,pcG֊iD,MaWɹdڙ˷{qI 1/7
-}?X(*k!Z>E֡36II;5i|Y]"ee?<S.i^Svav5yhK*x3Jb41ܱt]a`ʥ$}0$.O0!}^ꀉGfM$+S[CWIʚ i: ,@>1VJ:Lv)~Wu4@YT5֩ ubf7>C)ze91*ڽk t:r\c!+(vEf$:ٔJye]h,qM֪I?ojnjvzuw 3lura)vURv, ZJ65IoUW6:oc%1F3+^PD:^O]6NwzC9vkV2?0B=rW{kjy*Ҍ*"7SÕZ^| P226K^J^?g ECd5V]FNX[2Ta+ :OkK *VўWwr},ܻ bڸ+KjC(uzֺξ`';i|=E 7
-bP+}/&aVe' n򥘫iGqbuZa.-N8
-L= V_m_"cZq 2h
-7(ɺc|Mcz]~:x;ּ/.bjɳl 5A=d EQknCͼ|?#MiaD1tm2zpy^ˣ {0쾻(/s]f
-ۣƗ2;ަӟ?IK"Qtz4dC j|o1!6 iCp)@`lN\FS=\19zZ5
+586 0 obj
+<< /Filter /FlateDecode /Length 4229 >>
+stream
+xɎd_ɡځ
+
+[|Nu'!<_`h1vRJ)ˎ_J<">toY:FU.([>-6e;RC.)~^%w_J%3D#u<azOeW)fXawoGyvM3 ]ZN-!b/F>'\UEIjj?N^:2C԰8W q/wOc?D )N 31'nd ,ᶲ 8;u#䢵nL՞4=J;sɳ%1b_~ 9Edh&~#OhqI,ΟL *<+U`4'<BlUI1 +W<g 2
+QTz4! < p6PzY!˷_T=6.}H&=Cpk>U }ekk/W%n 3QUإxvc]ފu:’g4#.^2`+iXkf(
+<xM}<YOP#,Sy$*~O.~1a\TJZi>Xg=RPx╂xv\XUP]B2gO!mVHcSP$M5Y^K?I EyU2'-Ƃ\zo D.yn4zқ1sr@=k*\2XHc0P=!Qv!PX8Qf5 b_Nil09%#m JYqғ ec\ex$5%9LnުKh*̋z-t+O 皬om8Ad;@(=G\+1͢:5SPDդW,ra'8IDzB#(i>1";`>_g?:Y5dlt4qd[n?]4XdV)E.1*dedIZR7F/%H&⏇qqYRLb?|~mUҏJR]+U:2I&h?$a|A0_.%}2Y M&@(zK\5=Zf
+3vt qMK4E,8k 1Y00:0kkj4쬩=NMD
+k^'7f|QX$K=BvdBNh%d]5Wr6ţ]:ڼQ~@3-17m
+.CWfPe
+itOy_ jWC.D`pIUHjć禰C] C Ѩchӧ3ٞ]:Ť~-Cg:S?Sp`1(@-yx]du&E qf{z`nI՞!֨Z3 va)=Q;4rZ`&
+M
+W98
+!?X?.T}պѳu;Lc+Z{zE
+p9L
+yhsO=ts5iT|$YxۏS 6Nm_h=v* |'X t[pKzo]<}WĘ
+]?+F΄nRW~ʯ
+L7IoUW6:oc%1}$|jitAI8#wD@D
+aFBu W17]1upE
+nͮHa8?[J8b)0~},ۻgAB[01qWS{ ӳzjuul^G`t.6;]m =xA)tтYea>"M\0*M*nz] ept|<%WmX6ˋS#v7v-3(t6AJr4=(/-/FTi
+*bh&; rM
+a#g,R>H17^@Ѽ*.7j
+ؿv;>
+o$†2vP[qf5Cb
endstream
endobj
-579 0 obj
-<< /Type /Page /Contents 580 0 R /Resources 578 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
+585 0 obj
+<< /Type /Page /Contents 586 0 R /Resources 584 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
endobj
-581 0 obj
-<< /D [ 579 0 R /XYZ 78.37 808.885 null ] >>
+587 0 obj
+<< /D [ 585 0 R /XYZ 78.37 808.885 null ] >>
endobj
129 0 obj
-<< /D [ 579 0 R /XYZ 79.37 432.884 null ] >>
+<< /D [ 585 0 R /XYZ 79.37 427.218 null ] >>
endobj
-578 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F58 390 0 R /F16 386 0 R /F69 406 0 R /F57 389 0 R /F22 408 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+584 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F58 390 0 R /F20 386 0 R /F68 406 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F70 419 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-589 0 obj
-<< /Filter /FlateDecode /Length 6105 >>
-stream
-x]I%7rxGp_F]j/f`e`N.W4e hUU`|_ &S=?~P#/9?탆C?b^l|Ġ_Q(|zZkA2JQR{'ojvf:jY Sx
-!`< TG;$}J"$fH7B¥% \`4"7E|sY>s\b>u7.l7.P w dʍ8ٴ]kmkHćvKpqOց?Y~)]It>gÈfv<Йɝv(zdP5L@WY4۔*uV]rʐY|3Z{{F\BIUeTR,R aPVJzS)G}*/lpgYkf`GG(岘GJ/ž?"\.TNђcd[ۺ02ﶉƮ1oM"o zm!e+P=>MWKr'^̸'.+.L/YjlpRSbnDhk5)6@-x6 apW`<9 UvQ26=_DeCy}EJzjƚ54s-6v7!pT[z? 8XP7)`t.@wI]I'M[f߆'T0;Ϩh?ɭt@WW]x}^Y] ߨ@\!9{jV \Fc2M
-OfB>v<%U0iu ·Ͷ9Y\ߴ]~eFzؔ KPnS0k0R̰q[0C9m˹ŇM>[Wb}f|!l3u )rϽq ä.Oq$bF^RFk~YhWG,8C9R<z֫M ֖LgcF)լQ\h+1]xw?=iw| Ԫ<-+UO>§9 pRP"G#d򢃞e44'xs/3/Υbn7n'vݫ!`('z\jI2q#P"tv '&b4ӄ~lTI,ƃ6S0*vCa8I]
-
-5^mU
-a1J<cȐ1(RkZ:gڬPTO}$E~&}Vp!*mDͺVxW0c'lL|J5-)$#gżS^3EyR,%dVw@DO RG h㮴(-3-wX0~T_ʪj8w
-gн~~ E"46~q܁ڄّnY$tj07묁beNW+!?SYܰ͟N-& }qyFKa>b(X{FD܌p;Y m[vZ:Az5&;>56霤>=/|֔`vN/<vMY_9D~٭q`KC[qMoaإz-urW1;cw3':s9y7T-бeU3'KOp3U#wqEd ?_۸0/9Ώ᮶^.|>9-q׶q}n&jZ1;uDX<nMٸeTty*v}qO*T-c9Wsyg䒓.)m<߸5<#r|;Ȉ=y:v{FqpP^|&fnmT77
-}
-Am=Y
-wk AAd9;ܿ|X;4 wNysJU +E&KM+i?'uMMcGEn<oӰZ ;VyI*p<'^:Ǔd8~Gr֓}%߳/|╓]<n/+!eFߞ
-4#/VQ6/)\*ea/$^&'UI!k$VCK.u}
-UCgp %|5fI-캁'8c<EӠ (öGg*S?. b5†&+n6Y('B&a
-<h H(vE& jAe=\ѓ!ESH0lEՑ t7Ch$F(06B]EAWB(MĀL9$Hͨ0KBVi
-[IFp[H6$UY`8#-[m&i\"H좉"q9aCP8P9WKlbH2@8c^S$cu1LUiYS/Rje`Afg9L- 0!LQNeBzNFx
-rJ."e $SOj,D&)Ăv0`c"=uXc@ R9e4#zLJz@3Y-?BKFH bI;"]G%h"Ѱ'B)#t:
- d>!9&'@Јl&$;TJ5[YaFlMay+ tAu Qk_KR lΔqvEAybuڗ"A7n8;.~P! kB$RDC26;0CI=Vh,rk.OI;XIB,aV1.Q/rF7BhCV%7)J-r#
-ʗC9>`Oz(tj ]#9fXa($̍"ŐсN*4۹F pv_h rd~FXW*&# `GHc@9Ȋ[EzQ&"[ʚ}i"K@Tߤ! D9!bzasەR`N4*(E+D4Фɲ\Ή3zTLG=# GH c@9Ȋ`aYlHy_р{%HyƗUWeKbjV2CI5VXq&U!KLAIwR}
-37j]eRw6G""2Ǡ݁r 4‹L+mW2-3ݔʡ !Jv@┕}JH!X&%3T$hm3#
-JQNݕ"oJ<" 3Jrh2y4G"A"2Ǩ݁r 4‹LPjeN% ʲJntJezʁQn*E!E<dPsvP*nn#
-"YLz_xf Gz@M?*f͑RC5;CVxa8D&ђZe)Z{f_CC^E˒p,QU"˰ -bolV?jQ&kR)0,JmW̰{=7ŤĚSZd@#.6'vSj2JF>#%T ?VwU5[*b#.mɔpTd82nWTa](bojM+RiD))EXlsSTehr |.`'J3.,%|&U[u*MlJd,vU%N4>#+T GXJ,d L$D,Tehr}.n'Vz'e\X>JXNTaI:u4*)F\lsU(
-hq|.uGJ.'|,G@XJ,D K$ܸ䉽 qODVbjjG(b&
-bBFզ`Jȑ,,`frAIbs^4,y>JUװx"]1²SZr KQUI TI1"c
-pCZF;~f'^RW>]'bxBSx5)+n5\
-)OKo+ۧTtRz3ptp
+595 0 obj
+<< /Filter /FlateDecode /Length 6519 >>
+stream
+x]M^nWd10z8m7A+(ޢMtӿ_RG(|d
+yQQ><['ouϡ?| dB7=G9>On "0{H>P-~kOFdpÈscZ֚ưO
+> $vt.(P~a~ :Jg/Z^O`2q]8$l"
+KvIH2_mQ$قjK(8 +u{KfS*c]n饇HkFī?^ڞ¶&=l5R6yɴ'VOv40:KWЪ@SxuuW º4P<G"G4o:*K+%78|V`~<(qd dأ|(O)އT^Wo7Wnܸ7ox%׼J_BBgBH^`s>J)kiӺyrZt[7_{m^Tr%Յ +xQagplmg \hUTY<Ӥd&YۡDþ
+qCSf_V%yОO g+/x|gzؕ KPnW0k!Lf,owrnaybOͭ!;~oAgIx5/cInu Y,M=}ރ{n1g8l혳 ^mJs|,S|Ub* h?YӼm!ժLt'h?'G`˗1HzBK{L]0>Zu.wz1.b^g|Vmwn#x+Oq7;l#RO zTi%]VpFϬwͻ.&eŮ>A֔LJU/["D=@zDG R_>0Anq~蚶 RGs7W~hIUJBnߝz fqiS_S,<Gr*VVo~m % Rz^*k7LAY~Ͽ?~yS/P ?a6>؁ϳѥhZ4ڳ/Yzsk8x\lx1)h3jǻ_c5<K006,o o|ss<9%<PoV%`ts-,:QE<i6$'\0158 &WT>T g.&e(6 t}m8hXp!E?JɷOe5D$"t*$b<.uRԙyqn\U4Nj<'4ґڇ-o3M7SB)gpԫM'CƏ20r:TCZ93](<hřW}Ditc]w4:dt4:S#5S b>VŸ<1q =`w="nzD8@mzya Si[VLJ/[1 84t:A\O ƾ),0;H4jE"魸Vh)m
+<8%aqvIZ򍃷{ -(D o!OF،#L`۩jj w}WтI:cd,v CVa0[f8aF70-.3u̞`KΥ:1@ԩ_Ɠ̩+;qة!ƫ젉N=t0: Ywb&@
+HkpF$q؈.,ڥB׻y 3bmDvnDx?w@CpsSV@{ۧ4))0u4y+8aAc4ޏ4 xo^I$hfoT[>Q
+&k~NN`’I צbMkSnFQy;:]|[.r<ghm UFgYչFPEV(D
+95g\nR$~eNUQa{6j|I-'8c4%ڀSZ"F}03&~bq
+qvۣalF/z`#[c'h6QPKvt.gOL% #4qD(C ɛa#0֛:KB*l%0@SNpCӳ6KVj
+[ Ds7,L8=aGقf%"NJ &IT:E!7k=L@8<C$1]v ~뷿9x7ZM="1"?0>AAfW(DI9{ɋ\9 ͫ'e\G@,I*VDDmM,$2u&SUqTH@g`23g#iLdKi Ù #x,3i0~Rri)IиSaGxI
+DiH
+Ji`lTS@ %ReMp*YP&RKp,3n@af9F\rD`Չ#)LBk`gA;&H'E޲*_A]lb2^i$(Z)opP_zN)M^k[0 ^7H?5f MPI:S $3@q ~ i$T5VO$mi2
+F՚$|mV1ܡˡ FPL^%6M=fFTi*`oF;`JPx@؃4rϨtCAi"òi k'7[B
+0V߳K%k 2DHY{?`!2ǕIW'q$T5V1
+3Hd/#6 noj.$Q %k!=)N<Zi֯)( 7[BxUԻD0Y6B"r-rdLz}$5,vంYAFc !#HyZJx RӹmqW6|J%A#՘&-n%2dcHd+yHhkUT2-JFӧ0bcUV)Uwo$T25V1
+3Hd/#6 N$ jڟl_&3DPnaҰj b[dd HdjEF
+`Rפej%2cF܋c
+*%>%zpFPWoT5V1
+3Hd/#2G蓉 S,Eq3{ k=$EqɉKFўu2FlV?jމ&kR)l$cY:
+dM
+׌dP
+'p!]7НǕk-=Ҿ y4A]P2[W$ڕ@mXͤR^z3z^-{ڍ0S{׋+v|:y%Xē;<xx}e&c5&E{d]e/t}޹|ޚ?i$%_G1{qy)3QE~ӻsvpc-|c{_+ot)W9U3m+(H]-v(+n'ktS^RG)ݾ*ݥ פ^v bnm
+n{AZ@f㼂e
endstream
endobj
-588 0 obj
-<< /Type /Page /Contents 589 0 R /Resources 587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 591 0 R >>
+594 0 obj
+<< /Type /Page /Contents 595 0 R /Resources 593 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 597 0 R >>
endobj
-591 0 obj
-[ 582 0 R 583 0 R 584 0 R 585 0 R ]
+597 0 obj
+[ 588 0 R 589 0 R 590 0 R 591 0 R ]
endobj
-582 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.812 543.437 234.767 554.386 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
+588 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.812 518.235 234.767 529.184 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-583 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.658 507.571 257.383 518.411 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+589 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.658 483.251 257.383 494.091 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-584 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.104 507.571 285.059 518.411 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+590 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.104 483.251 285.059 494.091 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-585 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.065 151.966 362.02 162.806 ]/A << /S /GoTo /D (section.10) >> >>
+591 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.065 121.965 362.02 132.804 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-590 0 obj
-<< /D [ 588 0 R /XYZ 78.37 808.885 null ] >>
+596 0 obj
+<< /D [ 594 0 R /XYZ 78.37 808.885 null ] >>
endobj
133 0 obj
-<< /D [ 588 0 R /XYZ 79.37 432.717 null ] >>
+<< /D [ 594 0 R /XYZ 79.37 410.35 null ] >>
endobj
-587 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F69 406 0 R /F16 386 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
+593 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F26 408 0 R /F64 391 0 R /F68 406 0 R /F20 386 0 R /F29 379 0 R /F23 383 0 R /F51 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-598 0 obj
-<< /Filter /FlateDecode /Length 6721 >>
-stream
-x]K$Gnϯtt; <V "n=kH2+QY{z`_`dvq|[o}X?˫ hXofVؔn)e/?}\?=\a5uuv]˧F=|6 R}h+G.6*|ziϐ"JKQ9&iRmhdQ a'7՟qdA!Mn,e\B0ߦcXE2u?=,D{ mXj慈|޹ŭsi܊
-2ʨdz6zj:l/Y#)=XѰgvgy97)fXs|KI.9]b`di_|%[`-
-&x5wXQa0a7?4&)h j`8ڔWY* nnZ,-؂+661yvUs.;D}=xb+V%T:H]{|Ѵ^יx
-fꖶďx@_9/-z FCv|u"Jqc<m.2@$Oa,y!N-&xX^\Ҍ'][$jcN'׶g;6+@`yESv3ƸR~q⼙gGطTC΂z(,n[[!yv8Ny hw}Ww,朼Wؾq ;|cUWGBwQa'XW ǻdpYw(o!#ӱViEm
-#^
-U 8Y55/pBzGnAJv~b`{!|QeRgw!-S#j@++t䏜V aY㋎\u~xc-٘7檸bR6mt$~{rR.R7,|.Kcw{zSG
-FiSM}y8".M|Yء ݻ'Tk dSZR͞ ב(N KvB<]G=󾡊 n_8o6xE^WQ7hA&Y 2zս,Hk{ f#SZe!+S]>TŤ wZ/7t]/;p$s}($ XWyE \u&\e;HJޟߗ#yMv][?ϩV]nk\;>$m9 <Tg3v/fU^_KuKݕݍ}=t>;"n|oo\ZS#l||x=\
-ԕ?PH=׷z>ϙ|lPypo`[ ?ܙ7>=x7.HnK)= |~-CcyLc8@տ6oh!ܜ K_>z5;J}ۇn|lnO&(%:Tash?r|4}!B=5?n܀qv_nF^Wa*4
-ԝiK-nsמ AoXh[>o? q\h=R{3ؑÿ8hw#6KgM{sMrtlFs;aiNA&,݂斘̿z.CֹA,{(Yg!bz-`0|7@#W!C0sknAUc0gx
-Ya|`z ӟ
-aB..WI]Y=y!n_CY~ "ևe{P3ܭ}ǖpOgGgˏp>A$uN wOP<շZk;hzY[4ȷhX[4hdMg._tPcV85>-T"<>
-qcj"I#
-6fN
-9Rr4TZk/X)#|F9
-ILG!QhFP/ mJ1[mNglDd"L$IH i=ɠB8HUC!6
-%PqPسYfa0/>Hud"P
-dIeN Ip!$H[6)?urvI\ňPăFqMi RU=B1BEI1IDpzjIcPa(nu&e2~jO$S /ůo0a3$c̨!E#h c{iV '07ۊAuŚ"RoQB^H!Y?. TJwA"ZB^UC4l؊ӌ K @W1I>,(ID#HJJLH;7LBYǶ/"YQ#F//1rC%f8ߐF $mY&3
-Pl+#d1.>h
-P 0bZ+j\hp= .DLH04c>aJ- .[#Ġ_`z7%X
-RO2a,NۊZڧ!~32^uu=W*X|}v=jGX$qZU1#&C(R"P9_dO! KA?|}kxF $Y*#Xa" WVh P SS}~]t#"aD48D#>i֐aa @-JмֱͮNYȵOժЉL(- $d$X6s@"e?S5Փ]SxUAV k*9K/*RPdZ]\&E&8ީّI* B[rB2ZD
-
-XQq9{ *%Jc0!
-#`;obwM쐎Z,2~
-7~Eu[S_l-~n_iHjtLSkm`~cy/i$N ҩ ~Qu8ELE5q\}-U+5-jlntyt-MɋU;l23o.&lx% Xo[LmC0"'\usH|Hcl"L9y/`s!moXh -kkk{ ?o|-um}V֡=kke⫑h‘IԙkO˭Gֽ2`mjzѼseiuj[%Y;Jr.N3u{<o^4?a(Xi5n=c.e^ݦ?EHek_ۿ?5NC;nۃtvz ߊfeNC
-g$_/M27ձoa2 ܰ}^u}nlm<KK[
-PfW2q䴎6.){!ʕǻ.f`
-ncQuADSYR:x;޻6hI<qMvjGImJ[ n7x_)#xY~tk?[~ܻi}+_h9
+604 0 obj
+<< /Filter /FlateDecode /Length 6686 >>
+stream
+x]K$7rϯ|3 V/vu[X[2G1 MWT0`Y~Ό{/6RK,|anfMX\ηb}/[֘TΘ
+i k sfbӄ!~ IG<"k[9&M1řŇȞtVv"
+=TӠn0?th^N>l-V"l'8&uY>MvN}hqŐq5:DWrsn˝Bp]<uپ'?>E!S{c_Hv=h @#p 4'-
+FU8e7H_Wb\bN}ί@eb$)!R{<'T< ,ҏ}R)]Egio,foȾv H,Kcjmk n:{Iwu~
+g 2ڸ.y#xtlQ&|(wQ{}&Wn ;P׈X4iw6uR]$Yxp`ni82N8ɫpq˺g7E6S=zP'qZX,98n"ni/r_ Lgf vԻut j>jS#lZx;]en>{. ? wp}gMe|iNV
+v][;1cwKgۛf}s} oYụSv|+qPH[y9XܝWd54}0rևIo޽}3OD-*8u+IOP[T}7XZumNHr  61܅ow!kX@`{/%į;].9'G>m݋֮T;bY9gلA{P'n;{q#7冬ˉ 5Ko|'q``|̒wz i5Kp}[-P^ –? =36?ĉGhAG4+r1 lm&LVA
+RB{#rh
+ȏ@rln6ӦdGK,WVSg6s.td:R=prxI&7_&
+Gm*.>Q Xa˛4x|V$v(XP[,4cy͞lt4U{;_G7:p~+tCud3J
+]tjiF?v &?{|+ܽK |yCs
+pz}0Ρ5RY/7zE AKA ÐVxzN<ΗLw_х%33!9g-U0zh4?S"t]Aw (Nc܌@c& b旔,|!d$1^Fs?c'!`Zp W
+ú2_q?<xTcazhx? Q}k MT j|̏\#?w?>6_mx׈(t\B~lz 4]B u00)GGW?anObZ/
+E 0)CPt 2
+1P07E@@
+&[`8b!IJz&`65$ `$+Hd] l<iEb՜YB|r 4c$0R\'^506e x5:5adIӦnpكU8i+`q8@ih4kY$Z[5%<O5J.jXlI`G}%Xl]JA n)n BhaZDl ImB$<IG*Gδ`zjr)+-MRtkÙ C(>Q2^ 5'Aڼc؜ Hш$ɰEH"zA93B1l@ʤKg&'+8(F&Ԙ$IL!Pd0/ Q&MX*/< w)4"Ш# :JA:LAPda
+^@ d!.E#h c{W '07ۊAqr"ROQbr^10c *&KJڠH`-!al/!Q6mlE`L
+aDH"ATUbBIa688ԣɊzTtpԛ] 9[oH#DƶR
+Ra(n2 KD4?0R^5.@te,=>&"pa #sS +|,6[:`" qI fS gV!ihÐvRw
+ҋE(l62c D4(9(}E\ffPaWW%+#S*8,aad/*aQf[qC#d2UYD2 @#i``k *C}절 %$^0d$X2 OCCWoչ+,@i,>fLe"`a #kW njlJ H @QɐP= C@*~rV<XCQ$*v06zUvbiRE$|=K0n= %@'wOͬӎ%떱/ŊdEbVYCRE2
+,VTA(rkejT(:!eI0EQ<Rd
+,VXACs9C
+3<a<n'J%+R1NFH6{8Ays6:9 ¤O܄&M)RNvH{W8* B[ UB yXF@
+a%~J5Tj֞JP)K$E*(
+{P9 vlS9&\)QRvH6{WHasf1< T0 *Lj5g}%T&d4E2
+MΖEzce|퇩>`}7uJ,w# *@ϥ* w{d+ƛFM^*:mڔ.NS mEh¢rH3*k]T_ѿn;sɜ˺SBwPR)^̖J[Wћ['ѥp, 3^ʹWe)|%&k% XO[LZrfx6Iu6T]rv+\CQ(\}תT@Y$]}V֡=c]r"RaKy$a.e'_>
+tBVuW涵6HgEY(: \}e?]DVnUZXÒyJUeqn`V^l Ћ' 勌eᙐ3PQ#fJ|X;^˾M~5j(_l_JX*|%O_Axy;5fiYz~lFoaOlWg~պa5j&4HS̻Փ7%.@uJoWg. lKD kV7hwmc]5C;u}ow+Qk!D Ut JN w9gu
+F.Gfjн|t}Q|QJ'J]қhfb ^DLKqŖ 7̃
+, Z O'egI](F:ձQIQbUXAֺaQ֯M};e
endstream
endobj
-597 0 obj
-<< /Type /Page /Contents 598 0 R /Resources 596 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 600 0 R >>
-endobj
-600 0 obj
-[ 592 0 R 593 0 R 594 0 R 586 0 R ]
-endobj
-592 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.669 666.582 309.624 678.537 ]/A << /S /GoTo /D (subsection.14.8) >> >>
-endobj
-593 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.581 182.984 168.536 194.94 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+603 0 obj
+<< /Type /Page /Contents 604 0 R /Resources 602 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 606 0 R >>
endobj
-594 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.058 119.666 390.013 131.622 ]/A << /S /GoTo /D (section.8) >> >>
+606 0 obj
+[ 598 0 R 599 0 R 592 0 R ]
endobj
-586 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.743 67.03 308.2 78.488 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+598 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.669 665.918 309.624 677.873 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
599 0 obj
-<< /D [ 597 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.581 171.93 168.536 183.885 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-596 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F66 392 0 R /F65 391 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+592 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.743 87.414 308.2 98.871 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
605 0 obj
-<< /Filter /FlateDecode /Length 11691 >>
-stream
-x}M$EC8@Sܴ`Za{
-j*_=ѝ?|/w؎sbӭd߾ߗO׋KYC;}odB?~c;iؾӿ+[g޻5w_ldU}dvC
- ?rQfrQ{bMPzKdRG_>ROѕJ#W^#WrmZn>HoRSSfk7x챜*L<6g)*
-+øY-H/=z $Qe>I]ܵ)q(Q~ά*8kH{ F_EAꋩc^u!-)jp6sqTB[3~1[bf>u쇷q%ޕmZ'ۘ/~+!,c?~7b?<n-z^xeH*J[4r_NmaO–c\=4)Z1-hE Kr#iRx$rF)|bg9PnJ^zsh
-e? I5lW}x V;w-bb=b_6ZrXlG->`]tYwuc%H`d8<FW=l5/{ӿ4aj`ݼn[aʲԢu$Ա>,pU>w/cs!X!m)i0xtQ+^==.ݹU?V~^\>ufGWhx*8?R'ځvБ8%sң
-gGF~P6QYq=p;_~gݏyUoivg_՟hO(oOM/|vV+}=s>S.SH7z#>Ar25Bά(rw$PMT؄FHYyh3xlB}KN;^1~ɏUG/ڏzw5QS u}nfvTw{:_fn#l=(%Yhb( }1qY;0nBoV.RAJJҺbMDg˵$\*a 4W^1R]qO5W+R
-YfgjETun/ri^(WGbtoh V]bLe>VvH@(ڼ|uNԱV$
-bZRlVr~},OUFXLX??P2V+<7@4OR\(?5{'%H6zIolkbFY
-=[N$<_jm*%fuo 5t~}v]p.^)' bh*AD_T(&e*T\[T LT NTd
-u*'b{bؘHplޅ'4֍~]7&_6kǥov;EM
-9z\.y?K3etsobZOu-k?.iRBRj1"/m!j)MԹĜfܞfw
-bǥ
- ep`KGxf$+]B% ԣ2Jz1
-4+1S;KCRӤ /UCQ@6f4݉IK!\чAWi LʀQ~M2BОꑱH&Yw',w`ՊC(=
-lfmpFw
-rgyVwT K*؎1CaN|O\
-AݮS\ѝZ;A&iЬFW']h@@L/V"#e~}˥#K5A] K APۏDA&AL7W+UKo;g9T(I#HB` $hֹNNCTiҁVI0Dv
-4~D~v޼ԙ ktP/w'mաR:#Ȭ)uuzRZc ·=W5zYA)ԊuC=`, q=is Ę%N[Yt\K5Y^. 6F\J|e;BwSMhQ
- =H
-^tMH{Nu4ZbNfYkA</9'8#|TLKzX>Pf
-V4ԩjN 2afB\ҋ$!ȼD,TIP* (T(A01Cemrgy#(Oۧq`Qh [҂H 7<4Kr SY3T^,ϱ7lbcl?hLBе8/E"yNg.TWUY%0U0)}qLJE~tx˕I{tN@?NSWlLMsX/}?iE4,ehQ
- [iu80<\Ey_*<*6J\&:PeJlj25r~ UI[?|VLAZ׉dj(63,f͂p&WdU(MsH
- O'"kelNQ}.\(s}+R1Q#( 4KFvp%9T4d~᭾8i}"c푙pN,$/ Z0*s>Jf9wFLNkگ<b %(]
-L5 X@ -s6U
-BS'Xh#DP [_,"ܷ;+! ^踰:̏WUȨ=m"1Pog"
-/!}(D4V^RP< J\Q>Ns'8j^[/hw^2
-hlbOH
-Rm"vhK!a{)(lԛBAM4~sit xE(uYT*mnt
-+Q**6k&Ef6#zqsf)3t
-5M44͉-Ч{EF;bOC?~9 EQeބ hdf3W7'"Q0}t4{-EӸYBylwp )0QOgXXbE0BLǞB"PoÀiX2!eTS14J;D@EzZ(Ȣш_x<ZI
-6[&&F9P~ uf} 3X.L3L#B!^gRcK*|;1+Hz|fgJU8q2<iÛJB6~)ƀW
-HA[|kG
-?T}hipʑz ~z0ݎr)F9ՎgJX=@O$!:N3i'bF^_D̸󲍠Gg0{j"閯X*? +rUVֿ1mVa$zf y76ç6|D+=}X)o5?1SúI(}*
-:Խ݂窵X?Wm~?\KyGt.x6DԶ4o%or4b ZbX4FTǞv4<?U//}kӝ 9nm\k;+3/u/ꕿlHiaaqVKs#Jχ?^2Oģ*S گ=]v|.<?4g2(?7s> h8"CC_4<ӯ" ++fn#{PĬSs@/(ڂ/6-LI 4qު%m5nt2V
-j3u)[tmxhCb@3a`fN
-4bvBٜ "Nʤ-ţmWi,XSACe'e@~_{A#M۰KlOTܝ[x2u\)`TGKjy؛jXjwO+;ŰIA'E%|0Ս֋
-}QNTR# Yݬ b"X4 ttZz;OF'WRHbnV2 +S`uݡ>SNO
-825(5ӸՉ"5m-M>PaW,l0UW`W ԕZ"qd%#mU56R/EGkj19$ \fG'_"RRQ8xPtd  ;Q݈4|FQI^B'eV2f1Mf
-&O :3%l2/qwj)hsdx"},nm$ p9b{CddTx3cNHlh'R4Fm…?s e!0S~2㍤ar5Ĝ)]+exUyqNANXxTPyQIFf4.r T3#Nhph݉(NM-
-~DhkQwNVG-Pu
-}(t( wg@2ƸP&2qpI`4=""!<XGneH$)xg-t{
-y(D( wg "CXHXe\tMeGNbQ[٨E Ff;^Y @^Y'g62̛0bA"P vf&
-OHڙ5>@v\f׮%K_lM/\0g\X.X:~Ev/^.L]sk<9:?>
-sğ$?/i(TgA팶4sFw
-FuK D\(oV q%m)!,S>'\3 X^tA&5"33j%pIxZDh օO* 4T P]htq(-83TDuP]h"I)N!\OhҎxӥV..
-KԬL]MNCz8Q[v\R6ns6ns6ecH\ͱbSu%bVC4i*¬uw"r)ɒ9ٗC ё&;ͦ\̻,@5DrݙΚs$~>M$_4\ '~&&B=hm*JiwFak_/oYzh8h@ƄHv{|R{ :ehe<F
-̆9X@&)k+
-]' kA>(
-1
-_'$U?-MӁ޳RϦ}.3
-TCcc"BJr~$/#T1`e.:Y`8Șur2xKN$Sٴ<P'@'TV8a!Qy"$`QjLdN:@KCL'TZ6ʤ101og˔eRz3X4fƿ'ub:}]ewݽc'2/wي϶WsOwZ6c{S<^w{]TY{!2%O9ǻ+?ޝ<@LQg7nfM
-4R~n핦k V8[;h<`{>Ij_ﳇ5;kÛp; CjRf\goQwyvr/cf߽MuaD9=|[J8&_CS#=Uz ;s1=.;L*R#DuRw|t#oѾI-*+yje@Od[\_?x|Ƹ:zFޝdRn܋S͌__K-J]թte]{'HӰQ:Ow6&n4lRX4J
+<< /D [ 603 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+602 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F65 392 0 R /F64 391 0 R /F29 379 0 R /F23 383 0 R /F51 384 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+611 0 obj
+<< /Filter /FlateDecode /Length 11976 >>
+stream
+x}M6޿.O-~aY,wыFθg1nz"HF!%ݼ/]vU
+dɾ'3?UX7/>M!XaڐV_FI7M*U-U{ZEcQzd͘\:۵ ޘz:GyL"6y)zdn(r[aQ>"ίxZoԇg2ŭ=mh1Pq nr0
+.{S`
+޴q !i x>ɱFqv`oFZK-د&?ꋩc^uxH%E ft.Nj\vqn}Vk:FSJ+ǽ{ Ǯ7кdm+}6J+ ncyGՆ lsdz(C`wWQ;o}8= [qC4'ژk~%Z/g'th迪F2N,e2iTOx8Jbg[
+%nk5(]}A)se-aؔ/ l_1u:&<Lse{e:5W.+Y5mG7 s˲?|U~Ru>Swye*߷t~v:zq
+5#w$le81@ }%ink43?ey1B?~u3YS4\uvuv4Wj/v @i1.aU: f=yS41$)#Wda0& z NQwN*wy} '-/-'LLnc:G>o_
+0w~Y_jGckxlLe<̠}eqXtU'C͝cD=O&p[lʬO>oaڞ(L$#|Gf<=_[:^G.s#yTO>*?=o 9'́<2oU7$ ȫtJ v' ^![\"'Ym,7nO0׹^٠6ϴaʍg=Or4Md`7佧G?b!L+a2r8lE^xj}׼yE 6ϟ:{/eSWV*HyO;ԦaM4L (\]>iM,Пrgglxc7k܂+;ܛrGyp|}߂fklw\8]P~)~=_Y]Am}M={>}M=L%b _챋CV׷_K=SmqXK3;n;g&AߢܙT2܄fy,L~ v8~=1MTUN~|o~|X=j\蠼abg3~k6ß?Ucxk2h(ϸz7c4rQ9ؒZk"J<X%qPFDc{*_J^kK_kvVܨF QoԮrn/rV(pGUa!|*aJUVvhNPvWuyz]N{Ư%u5f_Y˵nGoq+d7G`#֯6r$JhѼD)}kIɤWC;ܫ[wvk4+^L̯5]۾Κ}60kD@Rkys_*kqߔ% xvlV%L4gPKitc;ݘ$&A7&8 J$\=7]~1WP7 MFͮq]q/O|Kw4J|!\+sHGJT\<SMmGygZǗvĭj#e]E^û퇣5Y&\ΆGp{)Ԋ*;,$%
+4.!Vt h~TvWOh 1@2h8;z48Ҥ RCQ@6f4݉IK!\чA꩝K
+VZ@9v ($ uJ^ QBӓJ($Yj*r=n.ֈ^jp/7p%ռ{d:St%H/q$p]<BnALoV h`EI:A}~a=d:ɗBIBs(\t`Uh ;]Qq&ՅH(Фd8X;z<:TX*XgQ3NTO\kP|8%P4ͩgQh _tP+vօ&r{F{AY3ne{RK 11Kb> >4>k(?. 6F\S|eǨBJڧ$Т
+{p''IԺ[t2S(.ϴ:] BIaɮ3Ta>:U~f&ӡҰ^,Գ c4
+m~%bML-TWan4RaAQv: SY3TN!)w'm1x-bQh [҂H 7<4Kr SY3T^,OjX{.fnX}[*P>)t%KHjęK*
+6\&B]uR*P[BSi.W'Tge'uWbޟr+eDu?iE4,ehQ
+ [iuJV_YVwN/K^uS%. gPeJlj25r~ UY[<O߼JX8)HS=ӽ"@Fu }Y :7YJӜ9@ ),ut&(N=CMGYf fj3vwG-&z:AZxܢQyDJ
++4Wi<IC큡0W+GHۑ 3ZRwӛ##1-}+T(iy8.0oԕfq
+`\R+3<geF;eFeFͻr\1
+>L Z B#;DW*2V_"c푙pN,$/ Z0*s>Jf9wFLNkܯ1pjT%(]
+L=5 X@ -s6U
+*V+#oe/NEޫuZRrgvh}8:.`/Uu={{ڨE
+;bSCcTEd<~ѠޟT<QodCGja۳R5E;zځRV2s5wdWϙ+  sw;A2 ;Njb>É. ǎyjaxP4~28?yD.7-\r=QvܝiLpisd8ñOS+Gq#æqvX '&ͦ=\6MmzwV`{|@^_Pj@͚(A 9jGhrVZxV*p#˞%qWA邍GhlB{4qA`lGO'{>MV UW)@ <w%xtsNe 6.(و3qQ
+I$7?M.|o/byr.*uGp)M{(hR{j?K" (]=x Mpy}Amܐt}(D4X J\Q>Ns'8j^[/hw^
+ n1T^Enф9gCJ8S4QT٨7᫅&i(  < E(uYt$,|ySQ_SQ**6k&Ef6#zqsf)3t
+vrLx2j-8y34P+%&ω=Q>&΂^r dhIO!G~@9ST1T蘷
+5Y,61ωLρ''z
+ G=n# S?j-R1"(dԛBA͌zf%)
+0̆5g2M 2mеBM Ml4zusb)sK
+ .O>姰4 3o
+x whޣBq_'mxSI~цA5U!;@@3ZJCܝ<ԄZENAUXG\[&P~vp SA)i-űH[{C'>Aϝڨ6-Q=SaWfh(Tĕ"'a464TDUN5x2 Go0ŗ2|TIdxRٝB&SV.c!w'΀S&eǁ]I&|~,O[c axqQwZ˝
+ugIQ
+2uQP-2¼Sx?`am&w
+2
+ugI P pw+Ső ?t8 Ce< OJz)%8Y/,`G;z͙sSr9ѕ?gwc`cc<kWxz8¯S^= 3TNjD~0v9;^9X@(A#=;1{<=:1d~p!\|W2u~f{C"z;evȔX7/9}^]E7=|G{{*1j}wQEWǴejceij/j~Zۭ/׊_ꀮk{@Wz.-Q}b)j s,1!\[v>s~~KVW<?͎<ש_:QQZ\ujW٥gP_aꕿTHs:>/YF>}]}M.G_[]vWtfH+S^,RbGdh񫳙<}gHuYOf
+`jš_XsqS` 2f=n4[ uC|X1*=_ w߈l9d
+iFck*bcZԣ@.f'͙ RLRmˈbyǚЬ */P=)BiƆ]
+`<m~wn]4yODSz7հ BV~Cpw=a"O؋J` L>qݣFYy-\>EIi3<%j3 v.O<h(`)>ܬdW~8R/RCq}FLSGjqejPjqEk[*}zîRY`ѹ+D)505FՉ*KFCzjCm^2"cnG
+W~ 2ֹ;͌ϬO+Eq<pƛ=a*/qwjթitBN7ʼFecK\ AtP1gJ
+Ee,83^Dն SЀnU{| *DWmG[
+,? \?&z TG@Y
+'k_& tT3#Nhph݉(NUi|L붇:dvD]k0z6 h*1D> W7ϋGbSˉM#dhd3u <H u؛uQw60i;1(l TC$3ܝi"Q4Ld."h*C5zD DBx2F4HS&ى:Z`t:$"<{vi4xP6Q!δA~D'
+ lXJ*b[fxѶ.syh@CܝʱwB>6r /юV
+ML5;õ g~mh$hDsU? Dp,cu95 Ws.Df4gJŕmzRJ\/XبG+$u[$.oTWRKuIj
+r*V;jRzI:C~%
+5Fk`]p@N\b ( eLFZ҂3Ce`NTWan4G+]HG\Ki|p6w
+rJDvÝrqEh@.0=s-%~4(o|RVyh ksP/w=|?T}2.yaK2SADѵf9kw^O5`N7IT|\ޏI*:.""Oqy~
+U SHdeqwd15
+K
+KĬhdUDs+#Y%QC%DtUR)3T%+[s* /cY#M2wMYwYj䆻3U5Ip}H>
+h#/DYA$0[OLL @CVtP/](ޕ}?vd
+$^᠁"r{>}:eZe<F
+̆9X@&)k+
+U$̙p8a8m57@E3R줋vz[YBT i:NH[QfXܑy"dt̝rQ ;x Ayt!ޣ‡T2TCCvxF&_4j.BU?8q\`+'.ͺG)c6 PcXf4݉d@g[PDNm׃u}d4a"@ Fg-wGD¼d$^b*7|l ~#l~gKHa9R !GQXjh4ݙīd@xܣ"O~;Bh4+y밊DSA1ب;,NHth6(WٙaLTiKOR98挅~҄۰i2-@ҧM.=/qSA+u1KYx4k=+lg1S
+`e.E
+`R&
+_$#%ށH:!M="f"pA$R턉9[ E
+IH2yd>E#L!#bF\*w-% N2 <HiJ5Ouilg1 `%.?BAjhlߙ:X$ ,$G/JiTRH7enD
+ 2^!?%MfD:yM]"f2
+)N2@SnK@'TV8da cNɬfOAJ$/9L)f>@ 6bR[)F]_)$?E1
+]c~L[z|-vR=1_dcmqo"e|r#/e[*0x#⃿VGa짮@ wfVM C~1:|ج~_iq}1/gǻ;Io+x4 W_gn l߶0v-䵽n;UR.л򩤠ROŖE]+DY_mE7*}X^= ߿GۑfÕص?~c'C8
+6ÐW>^&:B.p{U{ra>S}~8NxOr{Vz`]9ڮ[kx/xs&Z3hF%h³CB XS希SٿKQ'aNsݎuW㝷ө%3h*)pV</pj>np'"1x`_정 ER)OXMWmg`
+ V/T
+l¥r|3B>{rѳmAM 6u*s\5×N=]yrnuFr'n]{+n%IN)
+^)׹˹8|UV(^¸]s*yT3IiVq(E#
+)z(ywqY+7렜$Ly &9vRvi[>Yk ׄӻމhRPW1:al)qC}6ܧR)l+%^g/Ey15yJr=ňhjYv]ԈN4:˧1²ﬢr]nV~
endstream
endobj
-604 0 obj
-<< /Type /Page /Contents 605 0 R /Resources 603 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 608 0 R >>
+610 0 obj
+<< /Type /Page /Contents 611 0 R /Resources 609 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 614 0 R >>
endobj
-608 0 obj
-[ 595 0 R 601 0 R 602 0 R ]
+614 0 obj
+[ 600 0 R 601 0 R 607 0 R 608 0 R ]
endobj
-595 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.992 722.266 170.947 733.106 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+600 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.058 757.574 390.013 769.529 ]/A << /S /GoTo /D (section.8) >> >>
endobj
601 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 337.833 111.814 348.29 123.493 ]/A << /S /GoTo /D (subsection.17.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.992 691.109 170.947 701.948 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-602 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.903 92.662 263.36 104.119 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+607 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 337.833 86.182 348.29 97.862 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-606 0 obj
-<< /D [ 604 0 R /XYZ 78.37 808.885 null ] >>
+608 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.903 67.03 263.36 78.488 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+endobj
+612 0 obj
+<< /D [ 610 0 R /XYZ 78.37 808.885 null ] >>
endobj
137 0 obj
-<< /D [ 604 0 R /XYZ 79.37 695.352 null ] >>
+<< /D [ 610 0 R /XYZ 79.37 664.507 null ] >>
endobj
-603 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F69 406 0 R /F55 387 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F79 607 0 R >> /ProcSet [ /PDF /Text ] >>
+609 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F68 406 0 R /F55 387 0 R /F58 390 0 R /F29 379 0 R /F23 383 0 R /F51 384 0 R /F52 380 0 R /F20 386 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R /F79 613 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-612 0 obj
-<< /Filter /FlateDecode /Length 11908 >>
-stream
-x}ϓ%7n]ECɍ^ELOO;>)<7Oژ=_ I
-_SsOԎɍ{m[>֐/:><RgT۳}kn->τ<٧[eysӃow螪Ĵ\J6h[sᮊ/[ 龊R CUjT^~雿rA#Vh57^^^r{"O,|WS~ml?Ko^J/%-6oE]O e6پs }k{{
-Z8A[x  LHMaD@z4F0ST \V|+7`c(czI%}P
-PHH,Au`fDЕLI5X52'124(՜0B̜FS.]*"aweg2[ͥ·:ic} .Q@""8CD]Dc+*R@bnhDZR]/`BʛЮFAT0܂WR
-̝v Aqti!^KשdD͡t e=, MLԈР KWxQPq 0|XkB"P7\y!i"7HhDƍIS.c0s'Dr8 BA9 8PصL>q0w<99*54j0k9 *vfm+
-{r L-&ƇhZBLELFw
-_3%#Hr gtA0uZDb&;4$'H
-x]e,TH}G,$G#<_8j- 822]FI,hn,8f>4#4<2aV 42
- L
-~h7UИ3uP"1 K0՗ 8hDJ XS*Rd@k+u2sq񀤁> }Hj_cIM Vd`RƁ)pS ;_W$ %#J
-( O@UYnIO&6\fR[ȓ ;^'3P#xdI12L*|kx7EШuBwX
-f[Vc߭1 fbc{,!GqcTyy,\cѕU<u>ѝۃ=3ޘg~-Q[=ФOcԭ37eQ-qmqLgobw{m|,;a\`K<yp?wZ{xZ?=)\yZ?SMhuEVfl~_:֛Z3'9;W~0Mz.子2A?sQTiQ#;/10oܟ__%wacO3-)<띉Zk _\Z&Q$PHiUoޭ)_3R/+OS^h5GAPW%aI}G#b.&@֕Iwk*8FјܶrVT?]=B}wVX=iUE[pp~޺5E~4Oh?֭l~ ?H .ឭ
-Ki* oUpI48K2
-W*0C_ }3*8C$j#ɖ<5GF犟K_ڥJ[.=Yf\j׮5f7/ʳUfvE=]a/ ScG#S?8„-=<c}1q&n>P1nWhDqr6T?֦8kvEcy8;/-"S #ں6x𘢢6s s(jΎHkQju;=sp1H@nGtZ񀢠s S&CjnF`*{rrPWkzp kCáHXpVcv|Z[Y{ 뉙[LM(a=H15kLb'UhgŔCuԊq%&TkiSV!8|@67< B99-Vp5PM`MdFka=d(05j@bMjg՘F*fu%悃dJX"6<͜l6JÜv **ĂDm"# Cں6xL𘢢6s {lu;mg:mUG٘Ol؎lzCۀT 4۞I#B1i93i̺b?quJeNng1y"rRgL0(/dUNF WSV^5D Sh`33O@TZh
-M(qTŀEQ3HMV *_M2@[ ☭y[,B7VkZKZo~[j-VkgSRu "CE(QYZ]
-{9~ۛoQhR! Mb@l&a'K%s[[ mKmfܖrZɏ
-8 Sѹr-`~) Ǐ[f'.
-C(VkI1Pq8R>0
-B
-8Eio$!;LZ-6Wo εoN J*xUEC
- 3Yd<DUAO݊ Y_K nY/ VDdRe =dnQ'D䯥 vY/4nì7%&M&UPfа[H
-MG
-ܚFI0`pAolȊZ*d˶BJ̪}MH2b2ڞX27Muc"D
-[h$ʐYR&
-"0id|DE̅\K!}@dKaHv4fվ&QT1AnmO$jp K`1qiy{.ι@'9-e\4K:JL%K)W
-%%UzQ\W^Du7N/o$k.ViIJrAA!>wխclխHO G.Pu}BFU ri/YXkťfRy.|vWL^xF{/7 4~F}odr^MHnt&9.Tv{'!4t۷7^ٿ|g7o۟2Ll}kh=)$xv]}=0ftvQ
-hAN
-vb{ 'f(>[ҠXRP^ :)@Q ~q YI$MlܟT.ܘ4n$;@qSxQ~㨴k *s5s}\kں;2L~9ԣbIw>927N6KUi-'Ff|vcd#sI\r8F㍑roK'ҌR~o(ydmY2 s~t<N҇r}VhרL
-pOpɾ`<+wSa݋r47NiX
-1ܸ9a6?cBaΕOUȣ%in|mq+*fzSGyΏF([cBIW^xohU<>|I-d%|@>ջDy tnXK*ޏ-<OqaLq3(.y;|f~^v|g!m=uBuBkyJ(?]%h*+@.kLqT%-0| xs=_'qY%tў?D|# ВOP>HPK׷ OP;'
-h?O|^_
-z eaC}K
->R7R%R
-̝Je
-=
-18dZ:(eaEfnhzu#v0~s EƍI 3.rcaNx*"˵T8!+&$.YnVk10SRC# 4:QΙB0c'B1
-ݪ=;q:SS-ey8~ȸ11s
-EvAT0 0@Z*x<ǡC޾L_G5VQ[YQLQ1X nV(ҁD4xJH2/'nr<}Z811sEzAT0 0@ݮP.^PBXy8¥lj*3`(rTjhԜav'rASfm+
-Xc9j=D6j/m/59*58j@K7)vB+c!ҽcҁ&u>q*)h˂E/e
-9GiX#I<ʖe"i%7Rp8qB 6:qޡr
-+Ҳ$iHbj13"`GGjmwG4EaNx
-B]P63)@dT9Em"= *hn+ 8[]
-N)w,;L}R7*50j k7 3Bb
-GhyɃ(I\OL(c$'68y)NL]*zߦ%Wz_ǁiOX8E<fR="0#k?e8'X/ܾ8{7L8~:g|#uBJKUa nt
- 7N5~ZG·s^uLX%xwS~G6wBZ?eSʦ?Sʟ__Oyv]PBWBK|7$f㺈iڮzhF6 ,MWfI7[GG>Ivz ̝C溺h=k?yҦ{yTPzOdiڏgi;e}<β?JP^vi/E}P_'i/'iWZEA{~מ_hʏghY>Tvx'x~C}hUlu[gg_"=#QGVofE2s;<]>>JvH7~₸\I\p?gJv7
-Mufa^#SJv`v6WB:JC«llN|n9_Ls6[~_tr}y؅J!T2Hu^|W;*rڬ”ݧH_270+m8%!k
-9ҰҖK Z*TGł8D`I@"ilmJ'@Y*|*5gYW0s'`x(<FE?9$*>5y[Hs"HbY7eɉ v*
-Qf V~y|`w8;O+׿otK_{gڂԠ&8\a0TkZFnޫ?v ?w,|<FX eyU$ZjҚ}S5\2Rk= SFzzJU Ԇ`k.0HzuP_>Ь`+۴UQ֏,F^Gu;كZ8>j
-,fu\+/>SC;*͆/r}`)egDJV~8Fd+_zi
- Nc_w])0{Կ˕8fc%#]D馉:3|ROd:'gd4p%7W)w,D)}/ q~SwzZ{sbΞN/}p%sLUߥ#]Żц;f\C \ynҴ |JIrGCSfVpwנ 7Roy7>ԁGӽ5y}h^bOy;&PWf栴J,J[DcOW7UO~@5o _Z?E w["āWx5^C}":߹)4q*G$L܊w5
+618 0 obj
+<< /Filter /FlateDecode /Length 11696 >>
+stream
+x}ϓ%7r}>.~1#vD"ü:^Kڥ#wf{=h9YB T"kza_}}Nm-_~GJ{)m dE//q}¾O}HI<}O]'ar6w?MŶה'jF[~yν6-CbkO|ۗgRk}RT?x8م-lOi|ݖC{ygBҿۭ2伹o9ZJ[*n9*~˹Uyƾ׹&*?Ze.e^~_^x9+^~^VkB_埯bʯ6yKC[i嵤1}P})[m?SݜK_QD1V x4B7~/rig^eV~*TqsmCF< "W=D>jfCQWd:j<={A~₧]zq*?e|zەJ$OyPUټVJf ͯ4`6Ol#4Sr<Hl#6
+Wv"KsǕzb>t>n_*.V]*<=gy\k3x}^)'G/OOZn3itJ}^E? Ob)9g4V!{lWD?w0 /]i5zWd}FnhgRz=2y (l}"FT{rrx$ld6 )FOD3)89Μ-Ԁ=$.ҰUĘ"V'fnq@DsX_VnM$+)'NhZ u>"15qLWBnb[+'aAڌ4g"C0QJb!I3 a. ,=dhK$ f0
+le&ם\;wFka+' TPHz%4CU
+(*3ws-m4DM()T͜ݙDxK[fzL%&'znѶBR>IyD&? T4ӃQow=<^Cq Lt Sd&OOfyc\9S8IeIgE64
+~3i2i}W:QE]3ئEPeSLBVHU
+$pfjJ7m<uLaqا#$v-nkS|'(P#5S Nis٩K]A}V 'h !C@i1wPH4YԐhrꖪҊol eL6B/iR31J1p"ӠKh\&ma&fV\ b##$"#צa/lYbA#1i5Daf྅q
+S@G_Mj&0NAS3 MT!9)US BmP)mW#.
+5
+=EHHBrWhI<8(2rLjhԜaf'n;T (ҁ{,΁f?X<,' M6-PUhei={&sSC4-!&EAV"bD;Kt̔j_!IS Vd`RƁ)pS ;_ %` , S
+@UY,IS&6dfR Ƒ)s [Ks_
+$3I U-HK$fl2*$#D#/
+O=܅2·1<:Z-8z]=+C]nfW5:?)qCO'?ITZji V 9حIXV,p~|~U8io1|å}^ gw{@^:ރ:/ykHS'Si\nG?.aŮxJ=>w
+3>}SRtO-MWu1QƘBkqzӣ81n<qMұ*<~z^qos3Sqɨ^3:oG>u+1nj6z{hYTK\`q*<{[-3}X2+/<O=[=.X8YwOOg<^ :%+?!Wu8# ; 7z{jY12לovko>r_Ϗev䓜B;پ.T%]sIOV߸K*iohO/ӯsQvI幨cO3,)<덉Zk _\Z&eZHi_D˯S {ʧ|jr|7KPx/W+OS^6{^R2,A\=L][W&tߗ\]Xx⍪1LMLojLj(X ~~C`.ԧxg ~ud=_ÿj_u_R2&<_2l:.G~[n~_nWRąkggkj|8Uą"
+9z)2T9V9J /TpR9Bs-j_[6ÃYs>]xɸծ]j.nsd`d1q]֙IGǛdEq]zQ&`|WMkP71#᩟ia=<c}1q&n>PVx@s k65ǙO\+AT0 x`n1"pYCԆF~VsvDZ۝R0 ḊA*u;*#Պ56Vsش6j5Uޛ̕ xrZ[փfX
+STfDzhtZCE1XO`:|lB9l- Ajǭ X3e;qB;+-88P;oV+!7OE؏^KrZ k_b!kibxjCLVn$4J_ !k5G T3;mR;C젵6:VPq 0s'+1L'UjDzu=pm`1EEmTgQt ص;VQQ%&'zn1QYcچԆcgl?am@*=L@8|bvd<У,\jͤ$NI;mOGQT5Ic+V*cvs
+̖ *pE\CY;r
+'Jfى; hEs֥p9FKAwH-PpG5E5 FD^mv"fxgjZaZ
+a#%Cv($B4q!gŲu<H*UżC-X!Tt\K_J#evytWSL4#ÓFFdmvF3EaNhb1ݫTZv8$X,8MpчR&=ā~7^D0Ԍb hmA)
+ Y#pY/~¬ڷf&3L̠A'MS58j{ݣѥt`ҭ
+5xV\Z*d?
+`^Ff.dZ* R$[
+ G142 tk{"4UO]$iO㷯p8LfhåqN5bk\B\k ^%U]%z+B+:
+nUFy7.˒}-@9Xx|Zs @.uܔe%V' uTc)rqL<RTG:ypU0-YOu@E-+RU纚;uoUR_(H+NV$PjӠ\
+V\x;<rzɡE!\ڋ4[\9K٤{]~F*P2Mlex,SW)FN9mHW%M2%U.]Fq{/W^Dz7+=876w7o͟_\Mu(8u﷯FBҍgcvhv(3'uKErnvURώ$8O+..^GbAA-f{1R
+SzGӣcgʯg+S߲Zx>LWŏoj_Oh5ZM45~p&ݼrOOV=׾kMpꊼ|U]l׼9Rry!r{,K,SӖǥhjW+(DDKb/2sj(Xiُ[K3ّܱsפZ~1޺\>1UR*L5Ժ(* 0y.% Y֗bEFuh-M wNd͑uR#~!U"Xjk3S:Ѐpe
+0%iPp-8["
+̝Jq
+9=*5<jPk= *fW0FDB
+#>u?; LqVpzPܨ9N܈ Hs0${aXfQm9qCӫ#(z~E @dܘ9ì"7 *fWj bj-\K`BRZq\j-fc*rTjhĚAF'j9SfU1 otz=uQ[pBqcRc옃8`^9 ` Txs=s=}#Lq\SlٚHeщ;n
+^c9=P(~+zi#b D@J 3čgz
+9XwEZ4(K>SIG[$ >.z)07*54b kȍB
+7
+8<{Wx1to1!v" |m9gBvg*Sr{~#KÊe 1AwwʚtSm+|H8?%}|##5oOnK)]ưB1$Պ#H^fqv3fr\>2 xg_!av#Aɴ&qIPlx@3"林W=<oI8
+E猉3zJ4t{q$[m>bݞێ?/Sj b8~\ӉBFÏ[p  4J-78mq[ _g~}Z[Mi}`9]]Og8 jsϖy2qcE榩 G?Vir[;\?[BwuGCsyunuWO96ŵ/I93~&"9'Dq7cdi4WIjGWzxo$M<mGNGAcO鼑E4Y44_'MF~~QIOwu}<?JPN_Owi\q> O퇳3K|,qT%c:G|V~<E2;K=x E!rv+- = kG\p hL4.o%ڏG#$v|x
+NH%`
+ގo.< [LGjmwG4EaNx%]
+.] sn:tP0w^Q)& s"7ڝQMQPPP +KYW߮ť#&K)%'s2}yy*\1Zv0mwPo@k ZI,@WNC
+U+ %,3َɂ̯.E@J1mčgz
+9^eWT26Ԁ<'pӲ޿'}sż<ABJ-!JYF;e8`dD VS!HN;>/+[LU\J00吃!fuS7QLQTap@WN1\K%8!F>Ѻ%<A>J-IY;C8`C kJ׼q#vV`Ajۼ{
+ 29A$l8!*y[OƑ1jZ]P]$>ԍ?ڶX|/[.^>gXo-ʮ6LDԢ(wihHRKv-;ZO
endstream
endobj
-611 0 obj
-<< /Type /Page /Contents 612 0 R /Resources 610 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 614 0 R >>
+617 0 obj
+<< /Type /Page /Contents 618 0 R /Resources 616 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 621 0 R >>
endobj
-614 0 obj
-[ 609 0 R ]
+621 0 obj
+[ 615 0 R ]
endobj
-609 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.396 67.03 223.852 78.488 ]/A << /S /GoTo /D (section.8) >> >>
+615 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.396 81.919 223.852 93.376 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-613 0 obj
-<< /D [ 611 0 R /XYZ 78.37 808.885 null ] >>
+619 0 obj
+<< /D [ 617 0 R /XYZ 78.37 808.885 null ] >>
endobj
141 0 obj
-<< /D [ 611 0 R /XYZ 79.37 520.772 null ] >>
+<< /D [ 617 0 R /XYZ 79.37 510.445 null ] >>
endobj
-610 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F15 385 0 R /F58 390 0 R /F55 387 0 R /F69 406 0 R /F19 383 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+616 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F29 379 0 R /F20 386 0 R /F15 385 0 R /F58 390 0 R /F55 387 0 R /F68 406 0 R /F23 383 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-617 0 obj
-<< /Filter /FlateDecode /Length 19743 >>
-stream
-xM%9r%_]91TTV
-;P0BkH1ȬTRd0?s.NI_߶a[K=B_֎[joVۯVⶵܷ~~B(X +]~şS+/D- ?&Ee/z7OG,~ 5|DŽJUK̻ٚ{dhs!?V%<S8i5/M9ޓCVA_ڤ-I>Vӕ]͗<Σʖg^eą?uÏ)aa/9"+ؑK}=FZ*Zo&|gr2߯?5'53hJd`&_,fQrO\wuV?U'#돦a#N H]D}Krw9[='yHn-dw7Jn8ˍuz7[Q#RjBUߔYtqkh}SUˈu=f8n%-s 35w~-jl7Dхeƿ|?k@~K[^)qe.jNi>?hzve;>i?y[pJK=ZznʯVn-+=ma>.~Wx~^_}@owP=n;d3 [rY JY]Y~?ZOmn'A[o\+]<z謏}Emo#|s̟[9tyXeu4B^槦cJ?tyY,{:ϞsWUMZ!~@z}^yo#o56Ğ54"ho,uZW=wl_\݀~{055#|ܶ#?6s
-Q4Sm閷F"+:퇿YvPmzD=( ?-Í?DvVr0e5ᢻѣ%Lg &aB=uʗp?^_Kѫpg@4`. H,if3 _DPȭpg@4`~ހn1SL4.omF;llgs1?it{տmM{JyM{ـk}j1ǏX sȃ = 5c{6@  }ـ6P}[cۧk?olg}
-~w#P+KqayeRvhtJIfƴ3L /W@H>*A@[΍x&%k
-S&C URL-ݐ0jnLi(
-m!t*hvPcBP7 0/SB0Bs°1=Ȧ߄\"!QV"0ҾUEQ.lu; `BL ,L7UbL{&=]SEK # %!MΣZJqK{ QPU(*M FFjN?MN |x((ͷBM$Q#cfF%"*S*%:C$1 j(NÛT;ưn}>jr
-l_^YcP4ɜ:/$-ԍiU(v
-Un#)V~"V_?o)ES
- hk){c@Xfaɐ^ܼn`jK:P #ϞEčȋRiη-~IyCT"ݍԃ$g!`&@L蜐0lTNaT8=~w`SAͪ!bJ[S* *vB0Y9iD:1B7{P&>[)Ҏڜ-;Q,{1R3B°8R9yd̲7s= Ln6VDjΎ
-?-oD 1g
- Sm{
-I1Th! ܠг?q_ !jb@Tfh^6rG*P
-@gea#s#rK^%G1?c3{BR)P!*A~ mUBdڠfLOC$) y#S'ˡ4{L Lҏ܄pt u,'0 ǸsB0 L&R
-tVH^&բP0"j(UTr6Ν+X ۏrv:6|¼5o<\80~UDPuku+ᲿiF瞏pZl'7F^ =YYrBnwN>"ɭP㱈t, Tmʫw_?nH~dƋ룉s*)+F|<vq9=(#;mdݛq~1?ݩ_tdb(K]6)%41\P(89ȩwZ\ϫ:UqޑᑧvV~pMR5Xqok۩o] J:Xal{bl<;73̋B<nwG5oT?<~5R!˥xnqm ;HC]f;r.
-G w$oJVUjOgW?l2RF,?Ri<Q؇5+[<杌1<D2[<߹|۹FY/wMh<>[0WTm=\#k hu?PACpFuor2/=wP,g_]Nt_Cwuoy?+
- [xG|G!"zhznQx^d8!7^B8!gs#Y\G%<FBa5/+1ե<ձḚp5WCμ_rR/vM(H[t =we)K=YaY߽]v߅F7jܿ]_mk>7mFYmF!ިH U'Rv;u^:<5#EWNL<V-|+?wQ:KձTsv{.||b}ȟ[XHOgbNVe *V_)C^ʼ7z*|^r+bxG_[
-]2C_Q/;B f_}=-&<샣w^}p>ݽ<[s$}p}I)Rs\K/
-j}$N^/q_O̵>[y$ʓxqRyכR)8RyxVW;l%BBw_yhrΝޑ wⳝ޲?[}@Nogg~u7&jPry&8vѼPJM^/{&gކykr-o+5{%ԋ|]7`>}sU{wv||2[#IA
-lFzl~Y/,?׎,.O`~
-D*#>*<3R-W0uy޺`%gR7ng5{/8T喂G8pG=OQ;GDq)OWʾR2:'yL}- ᥇!Oxxw!|Z wW~
-C ?;ѯ 'Cxɓ-: «-=$2>B^ Ĕ_aY|#:FzZ j㒗:JzVKvj4=ՏGMX4=Uq}^z#뵎U^:tzb饊-=_e$rkcל NPk:Gӝώʹmo3N=
-]T!"wQ].Eu.BpUYwQb!'}byTwx|hv?}c@jwK/˵v^ҫwxet%dZN/kK
-&(bI! <V@kXTݟVaGhKz;=c  2ؔ9`;,Q:9EЕx{;X3$~ V#lbC(=w?#f) ʔҽY( <iW@]r `QFX|>8:on*a?z޾J e)3JsJwfY.t
-ʓv1 e+5z!%NEvChk1tJa _KNI)jp6&0GfiXdFMkuNjMauz~-U
-5`5xfWzN^U
-(8OȾxgBUhofB< W@XRh5?EWԨ͵>PY nbC.R1`Sf怕̲D!TIЕ
-2to&B <iW@GUBEWn԰ U2&h;̳zCXJ*MQ~+YeBUԒ6Ńψ&a/sp: ';R*CT_YFL&%TڼzVj۷ "!Pu
-OPZقx0P
- Ja&AV1-n8 ݴRUZ
-F@fܕ=l
->U\~茐kq +*hB,
-Sֳ  [8m5" qbHNJ)i H}t] Յuꏬ%|BY輐5qcږ{ahN+[fB0jRҳՔ7.t"Kt Ah Y `EeբsC"j%x,tuF7,o% (Mi>VZ.rGh5.K\ӵ.XQ:Z:F57 g$MҞ}8\-+p.itV:7Y)%A qh`}|!t)ɂ*]%on& ,ooD5/ $M&sH'>:Y講d:[:R8Be+4o% (KI+4Wwd#\Ggh\me.x.tk
-]ܸ+,s5shZsrpAҔij,a|FYܐuLG Zj4ZprY.ؤ)هZ"Y
-UНd}oUB:u ǐǭT1ov]"t ?Qc
-CURON]Xݷ}-B}zp_(UƨETssF -FPU'g{OX{=Õ*<
-RS(Qw*>[O1U5Jy~r
--ݩRHrl۷5hcj[uӞJ_gjlFC؜CJ$ZiQ];X^Ah`\u!¦*4P(㐞8!;=t l:]Kg#uH]6m8U2mTl!A!JJ>Yt6V
-7 .bN<i?uߕ{=0rN#JLW1o %`toy
-/#3+,w&*F޹'z=V)U4[|(Q{s_GۃS-zO5n?Y=p'\ M=(QH,=<#3Tq-bWo.\HKq>RU*$[c
-]3q.tZ
-ؼa.)<BblP /Ak
-130tR2W
-ZϞfGTܙ *"X9`Em 'JqT.1?Og|G<G/T(݅8c4h- ƛM`E 13YPU'%@~8=hs?Aܯ+@Tld'!Ǩ%`pZ0&q.}BUR)e| '4֫DF:wpaXF>{K+!} -k9^\=]K
-D%If+r*-h#-U:5׋|GDD8ѝUF7M*@FJE7ޠd=,fW@#ݙ;I=ΈR,
-Ol ~XzhG
--ն `_4ӫ԰-@z*4bB:US&b0LTMU4@ .85Dtr*:x[廝O 'H#<H]Xedh;U4f^ol; Kw$Q*`2/@OW]=gA
-ZJVxhuNc<@U7Nz 9 E'2^qN C7 
--&Θv=2fIH?jKfU-:9&}IzFFz`G7<O\f~"W )!<O-VjzLI\@>h#ɹ
-)/FMz%+z>{P5'oE+g;-~&xl4̧҃ k 2\ܑ @B
-FxB;tMR!0VF8 pc۸;bt
-RZ]blm/>c[ Ӿ*r;=R)ah~HujE#o+#w .} G)WzK2?_(Q1}[X}`(uJ(\=0uNV繍{G].\>Pp D%t/㾠|BТ<%brRrKu+G'-
-\6^Olg.TD $*+§JDC#nq/
-}|8n`r*qI0@ (|\yd BJ &<]1B/CSwkP0VX+.
-bdME69^le9o]xA8:>pLk-:3"8r[<FSO} T! C0JSڳjE||أ?sŚWAG2H&' 0ŭ6K|,kZY ) iyIbM]P@y)?dNԦ#Dx\Tc^K}!`|)/o|%UE@咨 }C^+5 Sg9yvZ ՇnVa4Lʖ HR^Cc~g.Vt**]B^te}_+=| zKj_ľľh
-\!U)]Ui55?h}>D(Է6
-^K*5[Jso[ӑ*^kXJ+ ~ VެPA@a!%+]DhQFy7^Rmrmo,ec2r~C+/+"8r o@փ `bd&(W 5Ԇ9Bcx)aTjCNcu= BhGF"ۂDp$0 TRRFM'"K(*_3]K_Zx]+(I:g{l*o()Q!f3.iOˊ>&Cϊe!+ |]2EPKGd;`6k]fv<{NƧ+(b@a<6ݑeg8xvˇov^C{0o96
-ŮgCO!Vsw%:;DvQ1nK/ඇuxWMhbi P vp`A
-z\BQfIٳ{
-2to&B <iW@7乏KTtQGF{VqG=Ҽ}R1`eJwVY*zqW*
--m`UW+
-ZBS_Z?*AR~-[)(O,򊍻9װ(cP~*^SQ U.4ZsJ@':}`"/θUV⭪krǩ [7͵~S
-0to&B <i * \~D9?EunB` p''ob->}žP pJQSt&
-v>YZ$[|BEjlrW":uکoXO5 6>2 UQFڭ\t@at'Zŀ<F5}tjG[xƋdsk 0GQStYuh8T +րs&<Dب>(uy8\HB捡Th~"V& @ ؐ ]"r%kQF3@%B`&GL0n@EM;s_c.ѩGv7:mc'mpE3` Q:; ;뵹&F>dר K}ypU>qwqݤ7
-2ZsFs
-!2re2"9(=@l*XKE_4;uSB
-hr&I:KTt S(86@eSR(ڢA
-PE2 ЉKt
-y+s'qc~||tQ6U1Auydbgd܉sF&n nN
-['4o!`~3e@c5,g&&W3$o;Q[lqQݛ--KyG\c[EY>:a eE(a<#@xc%1hBg0Ղ>[IgBc5',ge&K(/eVwtWJkt{\黢BZ}_h-<|#0sC0 P6YBtgٸ+:_|}T$.r~ލ5j a`S1v+M$5Lbq)͋ƯTDorM86bm6}VIQC`d &fҝe
-kKXDnoڳ[Jq<h؄e^F,GC),ڎWRssD@"u%>,B~f.9xFQeM%Iw-hdC"h#XD%>;BW1hl܊E,A DX,BV7ݮᩈI&o!jbo1*aжa撃0`P6YBtgٰgIY]g
-Yi+XP$w4G0ęR2m:,? EuxV|yp^
-U6W6JGlu* B<E'HCMPef_~C?~NCЗ4>~_{ooG /j$oi<_~~je5ʖSo?R_: w^w7="u-|}<3m9fR9/ŁuEeHdF0
-,xdJ/B,d/ܪt#8s`=ZU+P^r(U)THx0YJ~i|:@aԏu
-kawQPXAO26従?PȱHs;>J8'"/i
+624 0 obj
+<< /Filter /FlateDecode /Length 5195 >>
+stream
+x]M}(.Ւz
+MUmZO+w] "IH/2)LJ:B6rO:<]tb!T^\c *[l|܈8ShL]lw>{AwNVa
+cB Z}H?z&"ts9 \SOJP\o4tkxfX!51%ÅfZ-B(~qX|C4JjyG=q:pJ!6%~WDk.XMc1 -44C
+p|-맞Kv4sHswZ.F%YamXT<H]4~$2zEA߯.yf@jR{g}%XŕWi:ss"`ѺN^@S,Q _E]0r[1=՘c<r嘜mY>l5L
+$WKH|,X}:}6p6pc5l!v ׏ljihi{Ĝ@_HtE ڛRĔ ?[s('EtS`o֑ΥTB8/_>R}=hZ]0p=^xߦ5e!.cr&$vl]2B-389W^n'SW~e1
+=81Nr]O+P[>s@rd3/kK} fi+"h`-,7l/1ܨΖDjͭ5y[[wRhWڏJxj}DѕV
+c~׌됶FJ:(RN=vpp[U"!Òdd7
+eo4]x吕mCFibڴ-IakԺڝWu
+.Mp3I 򇬂eD@mk/!ф[~z|k#:q1cEPcy[|fJ?v*[8آt>Ȼ.ڤR96(53x#`ޛI}[g$@EU8L@UЛLwI698L@U0LwIus vI8g LKʟ.z+ɶ*KA-Q~lbi7sGj=:Wc-~~9=ЦcD >3mZ?F
+s\\j5a]@w
+ʰaVeuK$at Shmp`Zz4#$:$75-aŀ ѱ9;%.XltAd
+Xk˜Huʔ$(tFtBh"'9ՊԌ 05F$
+#dTeH^9=6I0H!aGA:Rjq j|75c$B:k4bbHY@@A )T(IlHa306H! VU* 6vO !aSقe9r98{`¹`$&TY -(o NKrJ"F:p]4_Ĥ蘩.at S(8Aq|75c$>:]a(햰P3%F#!(`B*l! 3 dks|jw4ë\0_O= շ^)/7SEU3@5<Ky78'Ӌ6u5{=Z]~籴.Ja<~&<.^bjMcaՓûTPKT)
+զ*D?䛫OMH%êOUV#i,
+ 0HrRĠ-h]Z %z]aH+W A|-~fVuQiTc6XO6d8OGlu8Sjd`(hffK:$
+uƉh>5w34#"svvCF<XTSU(>:?c眞Imd#")VxTֽ僧;\0fCFt#KAT=:Hja#I:$RGI d_]|&DFЀk'd
+sX)" .%s\BƮll1I'd{RWW+wC6"; vJZVG
+qaeL+˨"C]hh}Q{r+U>5;f 7d>-+urj ®bRdK:$
+=H\+N1N5_>cHX3!q+|)Ʃ.LR1UxSupcx|yђѩl :--`tbUvQ|Y'G R]E3:N ?<vxjurЗ l^XT8|"Btđ0uĕCD%͠gL=n5rpqgao5#KenAIZ3 k*Att;^҅J1Z;;y/ԍOs]U:("}b%U2e":||lf
+E+JLJv6Z +
+e!`/>
endstream
endobj
-616 0 obj
-<< /Type /Page /Contents 617 0 R /Resources 615 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R >>
+623 0 obj
+<< /Type /Page /Contents 624 0 R /Resources 622 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R >>
endobj
-618 0 obj
-<< /D [ 616 0 R /XYZ 78.37 808.885 null ] >>
+625 0 obj
+<< /D [ 623 0 R /XYZ 78.37 808.885 null ] >>
endobj
145 0 obj
-<< /D [ 616 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 623 0 R /XYZ 79.37 699.786 null ] >>
endobj
-615 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F25 379 0 R /F16 386 0 R /F58 390 0 R /F54 378 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+622 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F65 392 0 R /F68 406 0 R /F55 387 0 R /F29 379 0 R /F20 386 0 R /F58 390 0 R /F50 378 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-625 0 obj
-<< /Filter /FlateDecode /Length 9836 >>
-stream
-x]K%qW`]ƀ
-ϝ|Esϛ79՛[ۏ?}c7fon>rIϷ?}0&:cr1ۏ6n. ~~~J/
-@@N]SY#`)S'i߆<HI>kGHS(MSNU[jr):- hk狞m@>4.`Eono'?Ѕ0Ag
-
-;TvGW?b
-Cu;)P!OޛIsML)!l?}M|yƮl1y~YF-jTnkwQ##g};˽x733ayiy=ޥO}BV[ٞ+^=^uOѡKTT#z޽v9T qS9/6mɌ9!R9It?6ao4y6$c 49utlq[aUN&??s]—Ըr=\Uz eV/qn7` Z= z&-xKw6cM./&l.:Ci3ͥ}1n9_$Hܐҍ!ZaیU:DjJf6wЇ3ݾ7ݎGJG-5ؽ]bGsG4YoΆC??'-|CmB>Sx4MwZz3;m exB$S(0\JjpO2P/K@@=v}V+(򤐆Nmi3ֱz ڏ>ygo|
-/Ϡ 1:8KcgJ1E3z-܎aa҃#;Up;W aZ( F*AE8T}7Ύ_$HOPg㱿N0N6Ѷk)C\#\]9BE\
-"{=#{$P}FR<~Rm$`Q
-ؔ7cozO󍯰훿ܾ&1V \n;!@G3w=KeK9 {Dۜd{vD |ma5"3~rtdB7ޞX`0X{ٸX0TbjҸk=쥿F}0rj?|ZdKSq@((_eʰaD}SKW0/O0͙٥pש賰6pO4xZ 
-}wLµC)Z;P1վ]c
-R@=cwSfwNek:BrǽlK1n0@RI&*49f"*n
-R'1 e^ m.a
-V]x86te*%avPݡ Jᦠ&t<&(fBjkHehrЉk1sacUm (&lrɺI.oFJm1`-*#BE żGfa`"Iw &'(n\gb!~ 6-'%mP bj/f=
-\M&
-'t3^@~Pt0[\]rl~L# N0dhv&${ۀX예4eu?XfSw9A27iq1Ps) 4=hv&${ԥ@s tel4B9z0\y;2`(B-ʽdlDʖ GX
-
-M>jPW~_!a/5U1a{M* Xj:Pv×N %K)aڙQv(@LAd0jbW\{dqh\VP aF sqhSPKm
-)n+Z*!o]an)T(>Y-u1hё Nb ٷiĜA#J]p P޺fP9
-j
-Hu0' UR@pTJh޺]5j"C1Sg
-@ؙ:dNaDt(0Qxv0j`
-gUԥR[B-3S9PRzv4]YfSbHLɶ:tϣ"n|D3 A
-+ADj tN~amQyvLt'Ned:Hd۶t$
-i2"J.2O Nq!gJf5}ܴ7!ӑP1n@d+v2f2t3z׉'H"((\RUyZvsZcG;S38.g5
-!NsSPKm u赛b7A$kK ?3ڙ.|W!
-j*¼S3a`I)-&4;ͬZ.Co]実)#Z9'kx
-X?&̓zikvNDdkNZNb ΎҌ%armm:c մGyab9o!.F˦۫$a14n[WRm#\Jv ;J%
-Qƹc}߿Kƚ
-GX")p޺&e{r6]B FAI0pA<mgsL$\mR +ADjX&`Wp"C b<6l|_<1پeF$WSCRw܌y
-iDߓ{~?m{oC V :0CRہ!L)vj!7Ȕ kg,o% 'aT^A<zL[ۑW`QY,B1LǵF)mm
-3P)nxkPNl% ~Z6hJ;
-qy١)
-6 dщfTH~m9*˦ƄbdhI" :s`X2mfis7 )vs|ok&UdqBNvqb.U(EV'TVPjI1 gMw0Ly)m~ɱe O!zmQAt" !j˦ 3kak8!lo2S C[x7TfIoKX&u,L>T\@'JŰ/ǁ ᭹aTPV&-'J1r0\sv8'Qq\|_5M !V`M8 Ev 8X*YSP=;?2DrIAMHfhv *c4e,u=
-jB2C\ay;Gbs䗥v•fBq<r@ŞNr' p!v{1<ўd #6Ip.32ZL%TCA5n,rsDAMحnjb
-m=G؅c@@uqÌ˸ЕDCR Hfb`'3 Vyp[[|1X6z&x*mklxdv
-:vh#
-jB2Cuepm 0;7V)^?0<"Zk4C
-}
-Q':9evo?Ӵq!ą`Oar/µDM&T ~DlR.*•{0USqO-ԩ4.Pc']r?d+7-n{e+2 &rPUW&]}뽫SqT2I[u25nB:۫?\#C+g ʀvU7g]9=(0\z$: '廖4?Y(aZAǢ1\x^gMT[xuE⃁my .q]7jh\h5 j0z}Yq{X6;Vna9a7u_jF8D+Ůk;On C2Nʉ;+'wڶN\|/մh28~-Tf}#)6:2ý@6-p!RRM1xHr
-Jaq*P0Eb~ Gj^ 6Z? #?bXZMw*^QFaOK{>{G,͞T~ ܮJ}>3F_j'+<v9)a^:-M
->~J~(~
-3e;`!~3K8,,Sð׵B4oe_WB!qݢ׸ ua4c3s*=b쐬GS
-`]@ze^%n8{ͤ>ٓg ;G)VMajmcN  f`iH _~Te}Q Ƹ83E80t=\슈^jkm  .6]čf' 0cavL
-xE}mdf}Ίx"7mv2s.rII<?W[c:O5_*s^ý3\=rĒ<JlhvǛb%dې*w]p,ض^pZHoT)\8-bڌWW#ZK7~a{W3Tx5v=7
-ۥ[<OcRDayxu]bOJI׫SgkثzKFY 2٦&_fLL}2ڭ9'Gy V
-DM*hAb7.ڪW v9'TuPv/4r$[$]ݡٵ(V
-1.0nDD zESPKmj}Rص+!QL)( fݣQ01od+th2= CA^BVen5]+n榠.XBvЗF0A/"^/hZ[p+J~
->PL_E.,~X< âSy& ݀\jK( =;#K$ٰAxe(K,b5`-`IVQ1` ߀~0NK !2Z.2bn߻0gZd>m 0M+[m+a9(}
-m5@u*8З40daD<vX5c0`ܶ Z8F޺])M0<Nl.kX
-7; Bq#9P_Ė<4ȰRUK;*qgիy%V)Xyfڨ>!vA`2k5\X$Qٲ $#l^X %7 :9 DZ Vy0 c/'1aFߊ@4Cn+wi pG{U5zM.YMXzm@]*hqBhdJC.CԶ'tb3[Mjr QNdnl+2!/
-Ymg_i+?;,Gov\YX Ujlk,o=[U, ;vq}KLΪ{)GM`enкɇ7Zܔ\">F۝.9:Gw1*q)xS
-ל.+"){Hד5I(S<s\h>ݱnaoX9ٓ/Nڤ+0ɯ9 ta 9:_-c8rf8ljy#=J<0z/{V /K*%)X.%:ddr)w̭_r(OH{lHs<HF>|6l-S_Ps<o6F<1'z?΢3ΟuDg$j?v'=Q~AJGґ<#ttttttttttttttttttE$$t
-dNJ2Tg@KisLay᜝t3th < ;RQZqWH'_i F@~ Rk/CX1nqxAD3sNZރUXC#1пmWq 1
+630 0 obj
+<< /Filter /FlateDecode /Length 22453 >>
+stream
+xͽ,-[,$ƫxg{ 'Uu4GyI2??p?Xǯ!?#v;Rh張3~ǿS_!9bn3IG~=>IӐn)=/([*iQn Bj|!c}r[py.rOOCjP[Is)V *VrTՅ~<B+DW-*Q8n??~~[3UTW*,e jџn_}Lyڵ>>[r2ǼC;tKp-{Id]\rLUB%Ǻz-xI3 'UURf})?ZUX%.4n6}\" VfQT_Ceo!|_Չ!ގ_:FՉ;U'x{)H-@?wNLĻerE_<w^^:[ձRsi/jSoU_(YГ͗3
+3|g+RDz*KU9Qhr{)ϫr
+=[V0G
+ߏr<v^PprMo#(ɮ❵wԟ*Y}*9d;WQ371Ssm&Dިə!ə(goLNMK9RP#/3#S/~fN.jg:Iť
+?;>:.|YUׯmO{<dnN8KH͓[p{);7 Ay_X? bF5?f>8zG.89'K- p~p<|[L};5gϫ>x{ /VKRwBLԜ;ҘW+QyR>nw*z^3ew*O*t;fLTԋm/?x[Wozs7_F5ojcީ <{s;qjFGsz?.f ^V/Vܩ]Xo}'~'7S-W {
+vq_< 4<t7;3\_DSF[hwSL>jR⋷&wyߘ2PCOK~V:;*;\nz\aO:WcfoyŃ/FE԰֞ߩ< $#טfEߩ1[XyGzҟ# z7F帶GG7
+U]5)hnmw[#N) k)"E &h(3O`E59EXR؝OZQ))AR~+9e%(,BX٢]Ti^"K!``KA$!R
+4%YXtJj9\SxM{gz g( 6eFiX,KBUP^Y( ] AO`U/>,\v"|HXUJ,ARZ7KuKP^Y \#+7L
+aq
+UﳴT-fl׺s߂zO0V Ti-.lE.AFޔOo$R<[R`h@Mf] >3U' DD[xo|R| ZoPwv'zλYɂl@ S]+N68op4rP [b͡=\WJdsU ^D=0Zh٧|RfoUhsʇ.<4E[;S  PWvn-%z^񜵾KQ7Bi.T|p vNӛFՖ:u'f n, zp1 H)]Gt1Ep,Ҹ#S
+f@fܕ=l
+bM.'wd-3\E煬9܍жC
+U]d_}oUB >m*W@ CE;R6
+.z`lXxFPգS,Itǹ!zp_(Uƨś<ܜQ|Jq;_(*}O WwG)Ux
+䝂@|͢Sx~ H4zy|QʋShɘNXGr헃WyASSoNg+A֢i bsB*‹hE=w `m{!msxrDgӫd<CЎCzj}'rjt-kԵ"gVɴUR!(.b/X[H@[e\E*6P*ܐ <%HZt r;x6F-raC9d6U2mPl!=JxQ|hoCୂ%EˁGֿ0Oo{TΞ4<_ ,6}RY\pc(]JBAR^eu%z0?3؜Y`l3˅.R1)}3+T |lX`Y
+:j}WA<z-aݓFb,:@Jf,C@I5
+gFW4ť)Uw\ Vڋ w|{OaFwpw[FQp EpWjSH8iVA8!Շ;΁E~ˆksdRhl[9ncH8%2Fmpl0SFJz52~荻=!Z,`v͛*̚62Bihh0M 5=Fx~-p" Mcf\
+͓@}KfC-xؚy|<Hm & (Yi>\-rwWX+̮A>xZ4B*f
+6e
+%m)%Qگ^~aLZ0O򘆰|V%mb4l${]_By-gQ6KsF(ev
+YXHU]Ki@[:B…6u9h+ކR톍lO(AC٢l./o׳:]٬tV+QEЕDŽZF1Ѩ'3\@/6M49-rBhVPjlƶcJotW,{ Q/' CˠPkDuHnc ̍: .uil|*4kM̽` %Zy!(EnhH%7^zD_.gutmC>3OY\0˒&\YT\ق+K5Jyb(xeS{±mvRpJJ)*׺̼ԐʐYR}\dl=
+&\R(7+jg<H(½yG: c|G:#?~3tc' ełIGC W`_+ U5Jy.N!1ZB dێ|E| \sf|xYyb3[iglF(Պ9Y8pV+OzrWN(P[?иQ%
+;4b 2[\ [h^KGJFrBOY.'9+.}i(/(%pz'ȽԎ<{~Tt<>,׋8"m!ɍ_oՅM?;v
+YRу?
+$sV|Y݂u*tsh]@z #'+
+Ol~ƖX>F^'@wnhl<#Nd
+;H lT{lIV3${!22ah*!M6}Zlm IN,V iqSpy0hc;S-@H^Bڎ 4qzޢ RJ/&d
+IZE<بiy ,VDբe.S)} =c柜S|3::lB#A @/#@u1cK܉mXBf39R"T|Bp`^Cw'0P+gU+m^yuF~c%3(D;XB,t]PjXFgtwXsr ,L.Tl!N?v"Q"j|vxO7Gq㋩D]9x t
+IZE5Fwr5D,WJA].{Ts*ybwmzEZ.G:*L"Z鑷=S e .Ճy_6>bӢWb[: 9i@%(5'~ihX,P4l&KFҴ([ϫ%c#$W*\^&3430)[/Գd0fRL<]0:BfZCC ҖZbRч`dns ;
+ (Gl{ezNhwbsg7jWk|&
+$E˵=rRr^a[dJc;lzTtTƦS-A i̕6ľP;Jfr!H@y.J~%
+ H)/, FWm7tt>
+l(\yCuHr.6@ e)~zz IBkHr,W v&&Nvb:ԤG^Q=[9,\93i;7d~И3K3h;5g*rrrg.Pd
+)R 5mL?C7 aA4vlA۶qw
+ٹvIAxsEZWNm(BsŹؑ]52䭯x4 <
+Q~05{FKVk=SPg3b$sh:?c|PѾ*r'=)ah~HujEY64Z<!(\wQ` QWB<z=at}[X[}`(uN,\=0uNzkEɽ. JL._B]8moxn(?\0Zgc2TLv*<Ssin(uEӁv,\0)|BEzٰA!XȽst@:}mAȯpIkr^MLv%}P^4vJfrpcQ,\0)|BEzٰb!O/ʞ!.i,`Թ̟W&
+dzhy~,!W.vҋwVԡ xkalO a1uvj7>P=0NcZ0.X; "1zy<Z&@8~ыͼ,g /?^9Δu-=RgxZg`x}nh<4a~-04!9Z;˘b
+: 0
+:p,Gig5p K3剖RL$]5azuAyϘ+
+^|¡Qv>])7wEpeMOnEF'(Za(PZJCtߕp5>أbn[/vu3(.F4A<5(U̒ʳgW9
+*{zVvW'L( nW(c
+PivY҈J|L08xu{*o!~6WXuK;݅V%b֑r
+ e(jr}': n5sW\aꦖyӹ1`zѤK16<aO~##`p|VR`LSOl ]r-WQ 'avEppϐ6nJo'/S,3VsʲPUajBK&">Uy(?pϥݩ8>8]hqEV^) ʔҽY ]]YJߐ>:jgD[.t!>ub`(MD!T
+?rǨ Kzs{pUtqݤ7
+2ZsFs
+yQ:S:{4A TFwk3Bctᕕ<vr㑷o>BiD؄!dzNU[h%K],qJ= I$G6oΤHfq"G1723$x
+sHnJ^Ar*E./GFy &:]:<@`Kѩv+M-EehsCO*IfdP̱l&<|R6,”k'U]d_f!2yI:uŻS<>tNyJ%,cTV6dYZi]ehsC&M*IaP̬l.,R.,k%U]d_押!:gQ2 e^Ż;>rN
+fZ(ʫy1; <E!sy׎yD_U 5CMQ9 ƌ*zƟ38t?fk[}p=QZ3@c5#,ekJ/<Ekx\jU~識eCM-9s Z4V2piiq7@=Cbuܽ9fX:gqmQneE<sR%AjN
+;l
+.X2ŚV` <xolW67'tt< &0EV RXԪW.35:~@ʃ:6DP=C\)` x,Yljju37E
+i6I`:`tc^ʀP-.HCMP^e_f!2,ӛv;t
+Uea |?j7Gvοӯ?|QW/zGczo# )/qKA![OtQ]
+Z?>G?0&HY98U?/K ɿS8V.|,F+C@&_~僷t\QYı̊~eC`G&({0r gDBJw#-d{v-,(&\?*xBJR `N\ϧp`'$Q+wRr>3^e/oƅO5'C"qm{Tn<ʓ^U-g,w&=yؖ8S<oi,zvQ7('? R]C(pQ=[ٯxߒYj? N~7SYxo+aJ'e<tvԵwzu|Uzw Y{r-6UFv3K;KY^P}Ay}GM|+Yԯq*ZK܄U|2_i(C){~>*O|"|#|d]dn]yJZAɦ%} KMT}_<wt<T0^yFW#sկTmvdydyIʌ
+yo_5cjp<dndl޹xx!XӽYŧ@WO
+Gwo57$j+{,ʹwOG)or$7@:|ΥTHLt0ӔV=4UhJR?Z2
+Us Ȉ ̫Ξ^êڻ[jƇyJ*vQ׈&=os{)uF17!no_B,_:ϣv+T 7睤~o;*x+;o6qt~gjrIlZ4]Χ}gV绿3/B)4I YEW9>?Xf}%Z%7{3ގK%/~Xb|E9AWAczͮۦ{:vЦnSMwbsgZ}IJ7ܡ8٢79V:͐Jov Sg=ihӎ{㜁>~ )؇=;w>nyE]p }:\g jO{5ݵ[e wGxヽ˥Oڽu/4;~m)z9J^ֆϭ%ޖGܝ<Η1AN^osI0Ƨ_ =RSbZ5F,u!N,u)I'oSJP,?8lmH~m}UJ>>=gC4;<oe<AxC&|=+o~3SXn^\Yޭ n|\2jQƝϊ/Vk_l<+k\_L<yqq!.՘r~oү{x7>jJ ;:V1h?O?c:gy+OBfYH̷3Bɇ?ᓸB<IT_FK2I: r 8EԸs 8iF$ږk \+GqpDKp)3t]yy =ywWKkS8dVyrTlCksU.u W}+ ]
+̯|d SoCįopTMg6/_N7 pon06{jv~ gΑ+R{9[p%G@~vG`At~wx7O1Q\^~ڵxn,_>Ovxjμ.+7^sMu\K_3zƩ9<ة#P?顖C<G1B`;~ ll
+vz#_M o.(ԻoW
+ު27Mn=֎35ejȴ̭8V8 h7)Oj?y
+e -J%ѦiOqkT=f\Lb'd&æHcdB (mwBIF-/ 3oV?G`kl
+Iޘr+.XOrX +R/XwЖ~;WK4Kj 7\
+= "]#kc F EڥKy\(7FäͤLz$^sw MH(А4σոƻ݁W~
+/Hmxd]c罷!?IYlcti)FRY/M|h_S3ց IHibb
+9'\$:3>;nRShXB2QhW[r_>70[nGTN .Ȧ,{Rx UUϏƵ\-glz1:5HP N-JB`ҋlR-V[eZtՅj_/,2 p{6f;kzCOrA f,v'&j9wX$‹AhuN<֤V(5\D&̯:9
+s
+"U\ T%󱺁R5ϏOr4qtkm
+wvZlgdF,W4fٴg.DiHXTp0xD;zюy@i JkW8Yxll
+IZEsNs/F-C Xg Je-P
+=鹑ǞcQRTΎRT]XQ2K\
+HW0!
+kf:0}1
+
+ۏ1(ؘ/rFӅRwQ6^C0q?lf꒦Fud%ҪU.z}}x9bX>BӠldkJ>]hQ"6
+_W 0t#Đ))\䉡(/'%م[Qtc䂀<Ȝۘ[]5=ka2d.`IydQQ|Ky X
+3+ ĕfgJ _柉cR4lwf~-Ț Ǐa|{ %~'Hm9{-`78xy6 ٛl?8*W'&昜\/䞃Ak pdX[
+봹J;[ǜ;8kGIfuN 2~)Xϔ)$k9UM50P&\ P 4i+Y0[3y1!nҋAkv7.?OYVΧFcrWd ݦfT 5.[~9F%Ȳ2fh`kƀZB(YxoSm9n/h9HhJY<B9k~#1\o4?'Ƌ*`k:\$cq
+@k!~+oe \"n+b/dMVHBUρHؖ|aПL<'VQ'VXL(К}
+W.D*1V U~sIUvVyloXgB:ՓVh @ Zj@ܵBiC[;8O:gI h%6A1fwZ10J೴=ܥ4l:CUѩj+-PeEuU x,?EM≷%[g1c px6EMҙd-y#a`dT1{C5ll0əzGo \>uG
+@fTXz"Va&\|~$ߑ7ηqCo55fT獦K]ZH ~!-/19+`!&FLXvh*v]^y7ŎHⅦG$ZW-VCMҙj-٣ bat41`1cTn%(״=S3\҈35OأQ:S:{4A TFw+3g{ P4$ªȻ^)BfTX8U.^Mp~+1*jh`OR5W\-42EMҙb)9#YJ0V{!JV=FJ-xV͛mJyK Pct*Es,A \2WAλ g{%^0zҘ{X$Gߘ@db59Ffr#\52'^FH'Z*)\0 'FBʘ{c( s( 3
+@Sc|W60M` x7~ītKu$Qmwg8]$Y?#lRT)jr$E]5X={|/M(%f |^6xSȹȅ48J'UPP88ij1pk&$QpƘ״D CyyܵBd2JoO&.1FwQmSd~p=̙:!/Q4CB;=Fid 3JoO# ,]{<Kn]k %m>XgwUo,V3
+JmOwi`uO՝EZ<
+ jGŕyl׿}f;]g5}k`snx^<<HQe; ْS ^b7H
+.Ns{oqC-럞W|/WJ^~9]"Oܦ@e˘LC#s1 ^hrPw:3DJܢ(r1a- t_u(?~^N2|^?ڄ\3oξNP|!/=׉cۏ8?qu.g\Žwm{; C vH~ehk_/[Gw1ǁ4uR_~>1V?<ГxWpfNغ]<V !?=+֭̆tpYao4nn/A;hg`Cɟʟ9Ʋi_u`KNxt^Ĺlq+H`qcpHԓo_abZֆrҎ ['yy`='3cwO_?9G?/ߏ/sϓ/:<&$r(w` FDgqw Pf{7o7wN8zٙmXx?{S|><ŧL{^:Gl b!!]KRq刋Vc '=d+vͷ,OУ|d@OقqKjJ~\JqX&j̓"b% Lm1y37y~nxW;a_
+uh"5?`\
endstream
endobj
-624 0 obj
-<< /Type /Page /Contents 625 0 R /Resources 623 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 627 0 R >>
+629 0 obj
+<< /Type /Page /Contents 630 0 R /Resources 628 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 632 0 R >>
endobj
-627 0 obj
-[ 620 0 R 621 0 R ]
+632 0 obj
+[ 626 0 R 627 0 R ]
endobj
-620 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 326.699 386.919 338.654 398.874 ]/A << /S /GoTo /D (subsection.12.1) >> >>
+626 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 326.699 214.095 338.654 226.05 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-621 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.817 327.143 174.772 339.098 ]/A << /S /GoTo /D (subsection.18.5) >> >>
+627 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.817 154.319 174.772 166.274 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-626 0 obj
-<< /D [ 624 0 R /XYZ 78.37 808.885 null ] >>
+631 0 obj
+<< /D [ 629 0 R /XYZ 78.37 808.885 null ] >>
endobj
149 0 obj
-<< /D [ 624 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 629 0 R /XYZ 79.37 601.487 null ] >>
endobj
153 0 obj
-<< /D [ 624 0 R /XYZ 79.37 433.664 null ] >>
+<< /D [ 629 0 R /XYZ 79.37 260.84 null ] >>
endobj
-623 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+628 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F29 379 0 R /F23 383 0 R /F20 386 0 R /F51 384 0 R /F52 380 0 R /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-632 0 obj
-<< /Filter /FlateDecode /Length 3996 >>
-stream
-x\Io%W}~ )sp.).E^ޓ| 0u7Yb-_'>}{݆MnǓ;| LY۷o/ɹ s~s8! v(ܾL`s}/z>+g^'S|FÏ+=?碌2^û9[cebwaV/93# ;48j_NqRhGSB\J sJ% j혾
-w};+ar_FKhY!(/vjAg^N=C$#J^ӊ< =hNt\=+z+vU|k3e'>Ҟwڸcq>(qHx> mWE`&F'nY'O$.`6V?sȭJ?#l;,q8JqFxVlII-ۍ݋qΏd%JhA;WFM߅AI3+Ubh\fa&m42FOwik
-*=f.I0*O9O Tw-n00F(/{xXf
-o
-Q!f; CASG.b3Rp2gܣ GWYKU(δ ,'  Miì LL >t?^
-EA߃Vy ' n*|;~1VJq뼝D#HfɆ^<htg5~c 92<'HEy`~E\4 %\y4'0ר1dlڇ_rtD UWKH츤 )B5Dwy(4Dr <!؋-i?~Bjc0\VpS
-tlgqx0 J&*B,
-VO ӗ8 
-vAʗܽcîYw3u܋/%Uy &1j/;t]V-@}/WtI$p(QЏ
-~_@Iqv8 uw}oZeuBC~pu<mY@%ZN3"<~b>7 \AZGgup/fg $ٙ2GqyTN [A?zoAfsŚOڇ-O򼃋j43k5XW^a,QVG3d_Ϣ0m6 s
-Dr+Enn[iQ`v!^x^,ZW.DtwZ09g!jSoOԜI#,$ln
- #vγR}% wcpNM Ihjj)j{[Jl949]nNS]/gHw
-)?xU㑪#3N(ҏμBҦZJ#*&$SV<G
-SF$ˌYn/Â
-Bz̀ޢ(n
--^#
-Ĩ1K?nv(EN;q`q&\u1};oKmp'Ž{S9 8➝Y+۰uԼ& R2=ԕ`wz٣[D@l!!0%k17!zŔLQ)9Flyo-OEd%YG8}.Hp0
-ħxnKsOD-^m`!
-WτS{ZDCX_
-20y춎
-RFm{LӶ)}oP^P{EVsGz~Lj5RO7IvڈanF-B2k98w?6?Z
+637 0 obj
+<< /Filter /FlateDecode /Length 5508 >>
+stream
+x]IW>TT*0}3|l$[./_Ijk<%\cc Ff. D;l3Ͽ@\|\_krBh!2(op1c1? !s?"牆43auo⭟pk2]Dxq0/Ggvܓ_$Xf~L [&XUT3$'VB_)n:;wؚ>IX؍Ɠ܃QʮA=Zg,[w=U{IZc?ƹidugvnSMNX1wnUJ}"W)NQT\ a2I(~ $Y^u$u v˻KgVAj5>ڐ:lV~/_L)mZ}4˃w,Hs_;Jwd6hykf^e1K)1`%:%>L8< bOjnUN_ve0EMUP~&j
+'{K@ P=]r*%јS4V;hX)g FcJUügEüGJP0҅#.9'N.špaㅕJ~i[ I0>eC:Qv'Ovۆ~<m`=$
+8 Uj}dHE ߩMt#"Ȟrlj!)dϗAel!vj0yx%`Ws2l-@\
+:
+IRBԪց22B /
+zcîZYaintN1+EڤgJDg
+|?tmEVuh6ʲm:M:+HC^`
+Jalh#".ozj ,@9uX%hqT yɲ&VU )-Yy
+
+RSX!PE18"QqƊCZ.@ Tu TH6@w)3R̵РtKG$H/,_k:0Yb^H߼(,rQŴ,;HADJzBsZH@kZ3DLbpcʐ,ou*0lHgGP,Aq`(dg3ҙ e0 0FX>!Ң=
+<˸;c JsdK#lNfm \D`<A2<d3 0t%tb '92i#@'(PbvMOoVjЩ3 \O::(PaQj7CM:tʕJ+3Ȏ3̘\dX,bPWN$V MJ73 +YΆk$7z$jEch8QH%?=uVIA!+1C%a+'To5rcexзKO2PO{qǝa/Yxz2ɭlp/їH(D^@SO'/t]PJ)T2ihI[ӡ7KoAgT{*VaH qÐ{ק曭X9-&xh6mꋩtΒ׻z*.r"bޗbWce}vES8d`VhF l
+>-F.<R, K!ڨdeoaC;]|Kk
+B߬dO&r7tߪ~na Ip4_g$X{Uȃg *Q{sQw?R7IH`ngHnƾM~&~~mJ}$OMb~nֹpR6^]kZ7IG&f꫽nvoo$giYu Q~d-C?@JP(ҢQ73`?V7}7&y&y&y&y&y&y&y&y&y&y&y&y&y&y&y&y&&{EBkzI@@p]BK X@ptl&FgKM(~ar eEET dχfЩ1e[1. *]9.i
+n'bz\n˟gVr\yAI ǻ7|4[9 gډצz7Ks?QAN ZG{rr Ro(M=Ny͡+rpCm+G*mc
+GagV9\ՓyiZЃ;_<i%q_/[sr8*RgyLXWD"KCEy/x
+}Syau;V<*pj(Zn޻%yON7Ƙ"b΄L1f7\HpqpOkz~#%5Kh#8TpWlp)L|<@GyjS ^ao]
+^i])4o&Mjiw!pLz̽Ñ`2݇z<WX@_n(z׀ENʯ.Y)Wd7EM[Q۞_g7@m*c/MO ꍽ%3}k/<ok;c|;kɘոk>`DYe~<xFڷGn߸$=*7\4I_O<W6Rk q6ɄA$cIfܲI 2ATmuxv6J=(vn+A]`?vn=,א7͗">n5mԮ.*c:LiZ#azͯE=?%/cGamwiפ9鿸d =lRV @zD%q#x_(O:gu|o_՚ްB>y #u.uGV+elʭ>7{s/:|k#/fiD>d#Fہ&iѾ^"ȷ+ 7G;9 ֲo*n=Ka\z-|6u(9z9^djO{X}#'Z3fϒw65 Af[ݒo8™vg(!; Y1QD{;Ƨ-: 6ݫ8DtQ(77vyA?tLC-zcl!ua6~s۾~2t%Jr YMyՔNγx֜bR,NF#1C9Kif;WR"m*)5M7MY)33|]: ]L؍|R.zU ^Oc/^ xmzo! o7mt7+f9E'sp{My^O%|N:?Q< v"
endstream
endobj
-631 0 obj
-<< /Type /Page /Contents 632 0 R /Resources 630 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 635 0 R >>
-endobj
-635 0 obj
-[ 622 0 R 628 0 R 629 0 R ]
+636 0 obj
+<< /Type /Page /Contents 637 0 R /Resources 635 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 639 0 R >>
endobj
-622 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.21 725.076 396.165 737.031 ]/A << /S /GoTo /D (subsection.12.1) >> >>
+639 0 obj
+[ 633 0 R 634 0 R ]
endobj
-628 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.821 351.038 461.776 361.987 ]/A << /S /GoTo /D (section.9) >> >>
+633 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.21 547.577 396.165 559.532 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-629 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 71.415 416.581 82.872 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848/tikz-line-with-large-dots)>>
- >>
+634 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 395.525 195.199 407.48 206.148 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-633 0 obj
-<< /D [ 631 0 R /XYZ 78.37 808.885 null ] >>
+638 0 obj
+<< /D [ 636 0 R /XYZ 78.37 808.885 null ] >>
endobj
157 0 obj
-<< /D [ 631 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 636 0 R /XYZ 79.37 594.322 null ] >>
endobj
-630 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F65 391 0 R /F58 390 0 R /F66 392 0 R /F81 634 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F67 393 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+635 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F29 379 0 R /F20 386 0 R /F52 380 0 R /F58 390 0 R /F15 385 0 R /F68 406 0 R /F64 391 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-639 0 obj
-<< /Filter /FlateDecode /Length 6161 >>
-stream
-x=ˎ7w}E=4U'at3|xY`F4$ 2Y%Z
-GF$q(뫴D|/E^|\x'OB ?/ dBW!¿ ߸'k2(=m#l&VR)UWKCTW- "rly NpiBtoc4"<Qi/_~}X7ӇQrՠe2\ƺh=bV14VEL4 vc"#LʅG?,E0vV2k湈 ,&gd@b{+A&U C1A
-GvZunO*;8;[Ϸ
-_[UW)AfwWf={jE"h
-v\Q]|ұ4A Q+ڷR%<aBy2
-[k„˨P4znevxnLl&6bɪ{?ӠhPzݺ
-h޹MְJ`s1ss:!6q
-i7?lUȚ2aXjX%|8ƱK,7-vN5 k789"(e+8lf> $J|iLm"IUgEiRZi6|[(ęOK'^3/e }0{?u,w++735X #<=J6O<{[žEV}d ~nqݠQ0G-Z/"?۲G0{wU5@yԌ//`u>yN*U\&,u"gu$Va bNhXg "EQGE}JI (̡µ΀巯<$ŠFGX?w/|A^xwR]6 ʠmKƔߺZz\e
-(Ú8_'hN/ܮ:uyyiaOp/u{a x7GT.
- & W׮jGt w؎2B@J@?h`{`;0'os'M*s̹~%JbVX/}#'Gui}NaN
-x'_" >14"ʁ#:3oߔ6BadQRewXAQ vR7@QH;J݀G (x]5earkHkf+]K<t~IKk;6t0F<tR֋d⢜=t=2.* wsZ{~>-+R/i\]1K
- fWj`A!kl"T
-2<EW9?D#8c64n0X~/Ayd5p[/LXD2_yƹ^UH*7J-!acڰbq
-#`bߩ'-35%6rFy8c
-
-؄3kCzJ`( xKGrWsO}`{J?X} +P
-jFJX{d4mq * s:@pQXpVS:4IՏ9#m8CÌj)((ЁaO2Jy Sꬾ((8+ʩ 1>+i97:QgDNғN%`d#'hO>x#{q*lX<5{tcgEyR{"h HjԦL|&[w'txioX`*."k-c5,{ciXNi`F?`nY1ڦڼ;%(u/ KC2MX{X XJ/^Up 0\ّM:r)dGA{oZtb*gMZ,e]6bEՑwW۱%eS-@W{c`~F1lv(3[43W䂃ƱKSeA7mH*̉B'RQQR_.Ңx)Ձ([AW*o4prIyV-_XbҀA/iI3L&Fk%.I)یUw3'%
-d_r+Czѫ,fFVp3~a?:V-U<w)pd:I5+`]a70O]Qq!RþMX<pUe#ύUުӍ%@^=4X"GlߨqRr9fȮ~M6Ttaf `y8
-m+dWn%뙔g31Stebօ]ooa/
- #LfDDծ -K[9䢀@#bzK&Ud>=9XA?[AfK[ 5&u>/}`q<6`F²/-\TL˒qJ̹HXǃ3|
-ߖ f%1;.KJ/tA?
-OϤ+k0>EU[<d17hGq+hݭm+_B 
-qpxFoS
-|6} -stM}YŤc SZZʠ
-+VB˝+ƙ ]5:`ҲjN"5i߆5a{\\0z +ٰԋ2.J63)!UagZKN#5i冎hN4q< ؟ tri`-B52:Je*~ltoB\"G".+֐dK|)ch#RK'&T#{,lc+灹,DΆKKoZGEE-4b'L}0`HkQ ߡv3؜ɭa+,$ 69oenS4<kCB=1Р8T.}k#C Rndj+Y$+:MRYI;A?(%bwz<q9Valܷ;A5:9hP8'AqU$.iJڸńVv܃a\V
-[z;PRo%}Tv\kIPo &ѥ9nXy<[k;srrV;䳄1)uRXos)529dLuH4@q=%/:]4a$gghQRo%{Rr. s[Eb1W Ckbl]ȁ`7|vމ,AK[SZxj+md.$F#lEHmw&lgu]6
-B5mPKk$yR#r m[a;7[+Ozm#ns:#uCK([SZb+lp.(F'm\EP&^jm\anPT]6AFAa(yln@Im\PjmNPʹ$+IPoNNVc 8hӃr
-3<h3\6&p0V\HJX#|#E@& \:n6]6p?,hXԣ6.$JL56x'Fg\$(Dc]E JGuy) -!uQ5C|(d_yoOG>>.ǗWv~YS V:uNTo)"bA}jo978ݮVpOQ|/T)9rYA3tux [\5cVݙ Goޫ=vgl$<aF͘M#K~!];HUZIF&&=Ș4{kti؈'tsC-;>uf$ƙ̗r?MBNl,uv֑Drɜ Өv^,hW!:͍L|i3:|d#E"
-"zAxF->W+èT0 `7fugI%[-z߁H)'ĔadVJ=
+644 0 obj
+<< /Filter /FlateDecode /Length 6442 >>
+stream
+x=ˎ$7<z7Phe`Ԙ>xY`^ԓR("#\.E_RH!qE\~z\,X}"/.,]g!B| b$h|А/~'S??QJ/H[W߾<""]~;@*3SxM\96q_LL%nKh_RjZӣ PAOpɄ4|ԔŊ|$0mka:Eڰʏbc ^MT7|N<U
+[5"Sz+3  uX Elz9{IrJT֍>AG@_[Öލf!-| 3[fZ4T6;W`Wyt#{Xϋ>6 ~GM q-{:d=J@b1@j%3>Rl(j;{n1+х n
+bd1?ҷ[Qs"Y&:RS%496rhH&<';|$H#vV~A(,Yj0An c9a CW
+G^
+n-N#jrbC1bɕ7\Yb1;@BQ/n&|ńY`&9ǀOqY!ǟPHc.Ej<#IxV%rXDQ0FSDx?]"2jC/~d/1_ .I"Ij8]~yt~m- yp#'0RlV4[A''g_'&AAqn"YI w-əGVpNULJWKL]d.\>T0̢
+ #B֮Jֽ]R#)bL#rUhKu4Iȣ>Er8 n}c\ՒX v4
+RMoM9+"&Zsm&1x*0<anjő"CbYV??-V#}@xg W]֋+ij6~e*[/-QWGs~ŋ-3̡Z.'Zjt.4Y<­M
+Ku<|)i(M1ȕN%qA] e|܅:w f=/bQW7{g+Y
+궭`p[XE_) k'c`~mA*6hl#[6=P?7bD;CpVh{e}!Ts
+cɍT5mň<HJgefB=^XTԢń.R wLQ5-˄ܲ˚]ڊב* #e` ,BlYMh85{M?
+ae/޸nKFǡ{8{?/f+ +3]9 ӣtyq_s:r^Gay{?rKXBhc}~fB.BnAqoSn"<eb{OrnЍ'̩D"W.f
+uV.S gh94)E9"5(XX{wQ0zoaEEQ0‚9yaӿkHzpVv
+շ9 [AۗK5z 68RA~.QQe׀NIspBzwj;)=*r~ ߨ
+~s5}<ּbiWsmpV`hxS]Ia;] k'[KDŸ6P+`)ǒ},hJ`1 1G9T/ [8 9h9T/۬P0*V@F^'rHs((Li@/0 Wq`| cd0qK[y(|)/n –R0R
+_Ja\JU.&k/Xe.XCcx4~i;]9ʹᵴZRg8>snzmm(Xsski9UjX_$Ϲim9PF˒
+prnZ[~:vOTC=_=SqwF4 xp-ว# b0XVѫdrOK\OE3,;KTusUWq @  (\
+#s^0G6hfJc&lPΞ;]96F,iN@GC:SK
+g S4
+KRJ?6-=@Lj>4ã0m4]cNEúbJGhVgۏ|tB6 ÇEQi£XYINuH1_3QA,m4]ӴA{TǙdx2Bw~ѓZ>6xV{*NXͽ艣䃓_%yrW
+KIq
+k "d*<0fc}g_n_#S'мbseK6q <`(l((> dMy ACk4O0I)r;׻iBYv8Ngǧ_VcGsQN;cɴT92r2m,Ms,B>CvP߇ŚضXK
+5V<Sx[7sWњX('g7Q
+ڝqM@:4*T4H9jd&=MAfCԥY\!% +H}uz^
+mh3]Һ+N ]( zLڏ_6 ;͐,ZJ@J2hS͔AAOxz,N S( `pL/hT/`RXaPo`ҭPþa0bnib jqp#`ܺAuGE{-xao'GmR+ɳ:M%NɄ .ctjQSAh0j"Sdowjj|6T&c8]ĩV}.Vӧ46U&t0 !-Y5<N;T5`LK4(VY\KMd,Wrg5udBps&Vܒq.l򣚰e&F>CPbiq0J&Fg7T
+^۾UN>]~Id UKthxH _&|\]|`gy +k5v2^WnQk`z7+2]ѶC0-8$#n!Z$|u#KŒroчbr</% cŻ|UiO/ڂou5rըܼsKc#{2ՠ*FC"HoiO{vU:}+ZCK
endstream
endobj
-638 0 obj
-<< /Type /Page /Contents 639 0 R /Resources 637 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 641 0 R >>
-endobj
-641 0 obj
-[ 636 0 R ]
+643 0 obj
+<< /Type /Page /Contents 644 0 R /Resources 642 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 647 0 R >>
endobj
-636 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.246 76.658 344.703 88.278 ]/A << /S /GoTo /D (subsection.12.1) >> >>
+647 0 obj
+[ 640 0 R 641 0 R ]
endobj
640 0 obj
-<< /D [ 638 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-161 0 obj
-<< /D [ 638 0 R /XYZ 79.37 473.14 null ] >>
-endobj
-165 0 obj
-<< /D [ 638 0 R /XYZ 79.37 295.105 null ] >>
-endobj
-637 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R /F67 393 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F69 406 0 R /F58 390 0 R /F74 427 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 144.893 416.581 156.35 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848/tikz-line-with-large-dots)>>
+ >>
endobj
-651 0 obj
-<< /Filter /FlateDecode /Length 5466 >>
-stream
-x]K$mϯl(|woOo˄$^GJd2K]>
-G
-H @\x%&s5`EFQjGϭsSB2܄eN܄"C7IĔb8R;11jhɯM hkbnbm.T|?pCЭ8K'˂b!/4@<,!XP
-Bp<ItZPRkۻWpzߩ4zFa2=ǖaׯQјA%\#ݚ~]b]zNM9vuBhe2*yћDMo|}I?.!Lqs`\9 O)r6;'AIk.~S &F~x>0b&0[ڇ(_FDž=q\S|W_7eT_8W.o^ .~.ߐ
-Sjs+EzNߺԓ1Nv?Kmz5h2|3WH33桚PiVi<oLB`CaCb}uQƑ8O%4Zi300sil\vw
-m';2<ff0)[-!F#&N*(MS5Œ>1Zy=5}W S%"bFº;aު5܎(=~@駴
-Q6[﹯pg1q;mpݺDڵBEר]nK4<:j]Kgc"P&ҍy4IiXϜEq|{f{l-<mJjѵz"kyi'%PdH
-[<^w/Ģ1 (}ߋj0ߤGƥA)+
-(jvDk7eRv*7_x&}Y93t K/]k:0y_ǶI>1^oƦ1ϹsieJ~}i6$]K(F&d)'ĩ FS0Knɳo5A9w_W6\G+we?PE:g քǍժL#pɴ۵
-lOWy-ovV2!ѕ
-1%4
-u?(xΫ>CO)=Cn ͶGܲ[^H8s&q}ӳ\T]7Cޘ`F~k2ܥفvh%[mIkH<v5$$]!Z h7G&ҵKvzh
-oӐeAlu$ɳMۋx.'%U/BZF\-Fw6(}N(UEpMۍN
-W$Vى<Smϸw_~,z нs3e~ G_%Q`D~2oWC6y &k2ff^üu. t,ꑋ]I KGV\kV@|vQ<|*z@ҕ|4F9=A;89 x9hH4z2AFVI<5>!ZTߞ|Ҽz
-)o? o|BI?B:
-=Dg
-Q@P^P)Cg
-*QQ%+OT4oyDӌk3tWQ4*S7Y=`ohx}4sz&;bIvjj(E'Gx^MA/uR*~v0[Ϩ
- Şz}[܍Ҋw,|M_oM\0d
-a\ fFA XmerFI(sq>IȅAg$P#/$)TU?[}LbROQ26kE<7:T8CzjFYUfm\"hִ!=_cǺ3))?f!k?M1+CݒzzW;3|Қvf+dL#<+Dt@Olka
-Z05M>x+5qͫ6͓Lo94|+x(|k+5<_2ɤm`K`Sm8-~mh{)e=?6>(?Vs0(RV3(53V2PyxLCɊ~L?|+kEֱC|&U"3]%boZHieXXu5 ſHӎVaUDD!> d7~:pFdނ7V)xg=R
-n.ǿhjuWq5Q1Ss'O}H@*:SK"JFy Be y@SWR~tK7=G6!>He, 뤹&/gmЯiޞޚp[A,t`PmTmVE;
-于i[Z`wd 6@fN^RD;)+i D>Bi$97<+a*gxvr_
-endstream
+641 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.246 135.265 344.703 146.885 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-650 0 obj
-<< /Type /Page /Contents 651 0 R /Resources 649 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 654 0 R >>
+645 0 obj
+<< /D [ 643 0 R /XYZ 78.37 808.885 null ] >>
endobj
-654 0 obj
-[ 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 648 0 R 647 0 R ]
+161 0 obj
+<< /D [ 643 0 R /XYZ 79.37 370.629 null ] >>
endobj
642 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.325 693.214 172.013 705.17 ]/A << /S /GoTo /D (subsection.14.10) >> >>
-endobj
-643 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.734 693.214 199.689 705.17 ]/A << /S /GoTo /D (subsection.14.10) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F65 392 0 R /F81 646 0 R /F58 390 0 R /F57 389 0 R /F55 387 0 R /F66 393 0 R /F29 379 0 R /F23 383 0 R /F20 386 0 R /F68 406 0 R /F73 427 0 R /F45 394 0 R /F40 395 0 R /F50 378 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-644 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.733 693.214 346.688 705.17 ]/A << /S /GoTo /D (section.9) >> >>
+656 0 obj
+<< /Filter /FlateDecode /Length 4995 >>
+stream
+x]K9nWQljz"v}QX}qĜo$L&V;ރT]U ~@
+!?I@2鶽GHUSD@ʙCy[,x۶ӕ9i!ލ.p+d`
+c8Ggǎ4(yK|5O/]%(2۶/np./m[jzNjGJ2$A<}H}co??Oq;O큁i!dǮ=(
+Ã`M[˴PVHX;: { ܔD{6̕sŌL@[EgQ?Xx >)ۻwvG6n*و`YWo
+. "9}+*ɇK3uJ|ƾsw_
+@"o
+.h1fM Y7s$ r/%|y_@\ HZ=NT:dvX wҮ`T~Ǹ6 xc87LD=56pu^v=0ccҰ( .nM.*}='ǵ
+tU+k@<
+9JU[^b˛UY`&y_ ̐s>:ypXRlpsܲszt-N!Mm>Lmw5=+g~h΍եYnxZήB8sZh"{5:&мK  QxȇKPTxl[| t1ć?ы{gzjPb*7thRpiڭѹ$wzLlpgVeUCou4>s/ZW֭bn5 =!,Mj!Yq[J(ud]VJ *uIstk>gVдg(MJK:ͶFҲ[
+#Ǡ7(؛
+f$'f?XUpjdօ;&Z^["wp)
+Og2ގ@*raS
+OYo RٔѸߓ{'naCA
+g&KфcR*|P4F'YHs#9L2Э uX33L䳐g"9x+BD`V2{i&lm8*%xsEAAEYQlyz
+;XU@ZAUp=}D즘= t@Â]y%?/<v'F41fQQ
+KZ*sI@@n{D}zI
+?P=T̉*(e^{LHŧ?R&7k\Rsåbʠ큰MeځYǸFuY%fQRnIuNX2Jrq8._+W7BTxy$^ !w8QZ77,~& Tv_(
+endstream
endobj
-645 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.091 333.568 234.797 345.523 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+655 0 obj
+<< /Type /Page /Contents 656 0 R /Resources 654 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 659 0 R >>
endobj
-646 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 250.518 333.568 262.474 345.523 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+659 0 obj
+[ 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R ]
endobj
648 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 360.107 176.817 372.063 187.885 ]/A << /S /GoTo /D (section.15) >> >>
-endobj
-647 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.702 86.122 272.159 97.802 ]/A << /S /GoTo /D (subsection.6.2) >> >>
-endobj
-652 0 obj
-<< /D [ 650 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-169 0 obj
-<< /D [ 650 0 R /XYZ 79.37 307.399 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.325 510.659 172.013 522.614 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
649 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 379 0 R /F16 386 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F22 408 0 R /F57 389 0 R /F69 406 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.734 510.659 199.689 522.614 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-659 0 obj
-<< /Filter /FlateDecode /Length 16490 >>
-stream
-x}M$9r~E5q~@]]&J-`NkFӳtuV27{N';y\r\~~vqRr/qqҮ\Jv#Ͽ^H8YV_rs~a 7?G2W¿E$~];-o q BP%ͥKsA<ջT;Tyw1]3A;Jtq,} l:0ք-(oO5{ pKbA_Ss;jw 1E\+?%Bߓ<-ڈiڮ*C׋:$ү*{_)3\X{]IWޕ$X@'v,[Nx?#^B_e n5t)GflJSK٭pGR {֟ܯr)އM^w,<c0ó'u%񼜔rrr ߤDQq NsҫШ$j#y*0LYTBwRPPh &O7W؜H-_sKSdrx咯%m 7 Jk6$/[ziNHږߘ~GL2S﹅gӒv!k9{GW#m1]󼪧knHqܓu&|31|M%7ǨV%8>,CwlAX^ʢzGs2ۅh]GU_UѣaX{$_v%k^{rM͟<}}^~×{o+xIκ/K2EW daY+u_8njkGߦǟ-h,f||F0d(bukR{u=x:},SefP֘9,=̅;h>]B^=Z\6?sY+k&8~6&rٗ;4[ڨ0b7JxRѫf}Yq_{6~moXTgq`,x-xM2?^q~}G}6We.ȗDO|i{pDS~x//qb?ꃄ 1 V)ӣ<r!1jRm|of_kOM(GiG~nB
-#KRV_/_?BBՠ;ZM|˧?_k^@^}?6o^uxF۵&Kɥa~0vbݕ?`X[}S ~@ؾW
-FF[QHa
-5Shx]p9rc
-cJܝ+D)F^3s\G ZA 2
-]iTc sx-SE3Ns.D)_&x9*VkAEl0EWA9BDXP#w52`ָc"k
-Ff7ՀЦ 3DbA9k5# )a!4]$!42x1,u"*hFugi Ą+\=(Ъau(wU{yGWbᤁ6'y (vу<8*bTlLz\^((/q)[UؘˍI&m)acǿnhu@SvXJPҔBkL v֗ՙ!yl1Wǵ5W)m;cCCe NT8tŔ$=ɻ5ynQ#
-Չ(MP4F:vBk TL;R4 }Lr1LMw
-BPKi)uq\8 6g\
-ܑRkbP~dk[9a|g@~-xwbh;DCa6"8!(ߡuI ;)~縄ֱ
-_VBkDQvQ(sd˖ɇk 9Dʛ
-CM]ZZ~aH؈CHtZvugи2id:BIu8f瘜y@H*)PsZG\h&|P0rxnzͣ4Q=ji}Ҋ"=<ǫ«U6u.\=jj2$m823c"vn"94Ύsq}"?+JrP:JP;ZN٨nRXV)$k v2
-t1
-RG3E+dDH*ғMhLOH:s]<5x'(OtefG< %5<5^ꠤyT/,HV9S%^*5fjEOh:2ꉠD&(QۈuD*sNA
-l,1q1g2lBF 5tG2Y\IXPj`sלg ,5t+fk* ="ԋ ׭iG㩸-Kfjl剷脜D_Q
-:ѭw̯+H#> D7&!9f%oЬАw
-gRQ;c< uw+
- sw&lq1)(- (u;l>)Dphfh([7L
- 蛯cd8y3'ȼpftu'ZCi'xfSE ď/B
-o [zAs"Ր^o#@y98<z,W9o23; v6tU>X >H< 36^JmI)?ؾzcc|oalSisErlb&ݑ۹d"V=E#+-RlCc(׽H"y4Րxy<>anx}uۜe;[N9sMR SLwyWw==^P#2-w~U3rbRфݙMLa~3OUm?;]~ˎ8Ի_y ;݈~+~yߺ{^)n1T]+<ٮ9`앺IE/SWEvizZrͿo{m>T+xgP>(o>Ӭgl4~F~lԟeRhsˤ–Ig{&}GޞIgb痮~UMr6?09LO(&+#~|~vn}ĕIОI{6>.Ak{ay1k·LpP&>Шdx4fm"7හ
-OܹƇo󲏕Zh E˯VibE3߯U4ewm:o}4fw٩i
-?}+[MTL'g
-R6O;VQ|:-^U#3T sJQ~稵
-Q̼^
-
-$}!8?e2z5&K*)GVM5ŕzﺎDVMCa$N$Og =Q( +)**ms(x荏yC[ϴbFb.ϴO2=$QX~Xpۤ2SS\&obXF/IMTy&v6gm0?K{MnuW2SS\"6Jk%B+j[a^c],Yw^ޞC<gIs70
-$5c7/)7`qlϥ.|aIͥ%VoZR'":ʚb!,ɡ
-mp[rh-|ӂ\L'py} Kfe%%u7R%D8Y>]Zi/*d,U
-aI-K"o30U%`oBͲP|*b, ܞ8+@5CRHz7!%\pI ÒoBQVg&ϭ^K^L +"h<*t1˔@4) a8Au)ftu8egKL\KےK
- 4L E*ɡ4 4fpp2$IO4Pa䧮
-gugf`DiBebe!|wuNs|RӔKPH_74_jBO*:Q[p c[+bW+FrGՉ7[cx]M,tqS-u=o=2 =Q2oZRZEY-ĤUA@aHFM\<!aatMzY,'ŝbM>p9eB Fv`=f5j\QMr_I]%U踆T" T#Q]+}E KdqAm}ZCЦb)ѝa]*+,JEuMV|٨3V Jo3}H.ޱ oGMqUSۊ  \MBl.++IjZgfl߉P7UexiLbc}0ji؈_;)U}^\6JM\u8GR'*U<bo g}LjFyw30_Z߁sq(TUH}sr\Y" xf"SK?1ήZ1ePOPW\X0p(X.VCsx#h͸g`
-\剶ȄP§U9ATZ_eO>TDX<ݣ؈3Rʃ!4EBPohWpn3bo!
-1>8 ιPƫwk[j0;>f,23CFJAy{CJ.CX-U0)vƷNǍ*t@/ hf/ŏ&}y'wKp=+\L8=*ԋ''Zװ-\>Se.wޢrAxr|1%;IX pGǎz'b#Ȼ1(1
-@jcLsQ65\`JƢ$%Sڮnb93ر,or?'Dmqh(Z(1'' V`q1\㉶@χ'Rwy8.FςYA xsO.,-g4ni4݋[G A]pKp?
-BU=?e.qP:|8d 
-0S_K_@T w h*yX>/H|$fێ㵋C@*z4Z"XN2.lM=<$.1p](>粤75O@Iu-wUICS.OU% z.=G~] Fiqَ(y4|t%` \V"NBdVfԶ>|G9M,^5Lkyեb(L]Z*
-J\CΠ@@71'K\
-A@[\\0P`e.(q.awښ%
- PIQޔYxh8I T@ȯ7qH>=C]1r|w
->FscOw%~ s@ Gk-wGDIm|E cB4OzN>5îu9#U:~i*\#><*s\4CaN|<H QoʎD_1JhQwFY]np@g+U<ddJ_ؘl#.) |J2m U:N9[hJܝNy 'RSؖ⎭M.| 2o
-CP(-5m}U⽨J1T;em<* sw+g"Wl=FO1㈔Ram}Y}0]Ñ9@E3Z";y 栖qՆ;es^3~>M!FQ#h#rPg'" 0 yI&Uw-0T24c1+kmCȴ1;6 NWά2 t>e@PuK ̮ՌS:SQ؈7,.hpfىHcDL@ʕ#=F'>#(0TcڳoR*k(42
-*󥌭PƢCܝʉT;u[ETxpY,$(dWa',a4w
-:ugE ;y J?F'[-!oN^E_id=V~+wIC1T;em< Nwʃd@~Oć 0b{qkq<P jGҼ)(jdԝQrm$>l*
-0s.!L"t#{ip}?
-/axW*4=Vcd=+Jɹ "3T4N,
-F *\% .OzC.Z5W~)6- ܪᢩZ|"WoUj86^ͻq_[Q7Á51,E7 L<{WOP!Gխ]2+7 Wd=p:@(Ep%
-e}xI֦T#b F\*{+e(nRAo}{UCW.)w]'^eetfKL&P8a1g&,?/#h %+h) 1`#f.:Y`'\ݙ ꡋOIJW.!:jW!@&J u(4Ј3}E|SCI֜,$o":6r7D t2ؘK
-G,L06L|__%'@_הWtI{5+1S
-`e.E
-G,L06L|_2_%Ǩ]7d{5G@&TV8ʤQQQog,'?'']ʤkh*K1 `#f.2A`(lߙI"O`%HAoBp  6^QkɨvļIoktj.\2G
-`Rw&xҵl ԫR>.3
-7Rʲ6 ,h*14ئkͥNZ8la1gR>9>ק:=I𾊽/2p ùra5@]ڪ,zY]m\$*Ort\w.fUX~췎hs1NjG93<q/6c3CFj{ꊿXF364 ۉLqЀvq/s;#D#o;za(cyN4[ιMZCw
-t1
-*\SD}q#04Fj(Ctgx8P0_Dޅ@4z[G^fB| %ͫ9w<) r!̘asܢɡm"x+%_;hǛ ': bb " =\ (mar?9T5g@sUjtU-x8ӺrH.0GƇ]/*O>hRO}<n#YYOPwFc?7Q~^czFg2oEU*G~kK+Mo|(GH`C @=rͳNgcn96{|V<N$Qއ QL Z7[
-t8YbWmYpcJuǒsޚOgy$wH4L/~7@FREX3o=
-#+mD<3C !Nlmf}:Ex**Q? qʻmiK7$h g^!eI);zR˼(c'<+МR!w;[%V{Ȏ
-;JC~g[1KOc }ظ> 4*Z3'Z~iNdΠ
-LO'" 0<d<}!2[`׎z2Hi
-/%%rmp=We$?Z6W ~abqxZRzO_g 7/8zg^Gr<6 KrdɺF!#[,Z#i>GjOiOb6$_gņd>G/HY/?irN<\=ɛI
-܏[^U쨴 ui޽
-endstream
-endobj
-658 0 obj
-<< /Type /Page /Contents 659 0 R /Resources 657 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 661 0 R >>
-endobj
-661 0 obj
-[ 655 0 R 656 0 R ]
-endobj
-655 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.532 641.39 261.487 653.345 ]/A << /S /GoTo /D (subsection.10.5) >> >>
+650 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.733 510.659 346.688 522.614 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-656 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 319.111 477.953 331.066 489.908 ]/A << /S /GoTo /D (subsection.17.1) >> >>
+651 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.091 129.347 234.797 141.302 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-660 0 obj
-<< /D [ 658 0 R /XYZ 78.37 808.885 null ] >>
+652 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 250.518 129.347 262.474 141.302 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-173 0 obj
-<< /D [ 658 0 R /XYZ 79.37 771.024 null ] >>
+657 0 obj
+<< /D [ 655 0 R /XYZ 78.37 808.885 null ] >>
endobj
-177 0 obj
-<< /D [ 658 0 R /XYZ 79.37 304.388 null ] >>
+165 0 obj
+<< /D [ 655 0 R /XYZ 79.37 771.024 null ] >>
endobj
-657 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F25 379 0 R /F16 386 0 R /F65 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+654 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F29 379 0 R /F20 386 0 R /F52 380 0 R /F41 381 0 R /F53 658 0 R /F51 384 0 R /F23 383 0 R /F26 408 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
666 0 obj
-<< /Filter /FlateDecode /Length 5408 >>
-stream
-x=˒$m:&wDdž7B:Mhnqm}33U53U   I/Ohÿ1y*P/~A/-#T˗_.xTRJ+~ a;~# 𖿥?Q>cOKp Qof
-p%(Eh)<J<dAGYhߣ=U55%FB3TZ%9 %ɩԓ7U+<x,mE=ƏX i,-\FYˆzz9 Yo5%7(Ž `o|  e 'PFnzLE& ^kiVPV~U տj6 3k! Iqd1H8k )HM3m? 2[V"MW:[abAxs,h8g_e
-QL_.S+7;_ހ!h <A;ǾY <~
-D
-
-N
-Nic?o/ drԹB'?Z
-cs?:>Pœ>-J?#'J?!V6p5j]<~{5ݏi5Nl" س?}$owC nÖM|^t' wN Z
-=JG)AE
-]x&`]VߍR||Y. о 6Q86L0E~\*_ O5 }9-6!4bKXpiRm rn5cQ#;g[Rĺ#fm- ZZ@@eHtK 3V-K-)iQ䔒V3)MtHCSarX$.nFlvLֵ+\:/.X__
-+c m\UC)(q\*B<&x*0}) )bB/UL'&I釮*"PhpJ2slSӲ0+5ϖ*i
-$n1cd)9*"I)]b.pE\ǐj\ehcD+@+Cj+Lq3uڠ%h[|Zq/a 7~oã%dLZPJ{$v+$$B~F&M)fmRQ8s5E)fDl'(eDJ@rQ;ghSR;hm
-?!]y?(M Q>O6\'=rGE~
-`8F
-6]QwP&x:WC|M](zs!$:ʞ
-PNb Ax>
-Ocpb+8# 5g"E#":J|)_D*(z]
-]vi'@t_-]k*p% x&aJ͑to{&fU|{1(eO3
-sĭt̋:~j$7ˈD'h'
-pwM'/>7){*өHs1)ʹ]GnFNN7b R
-Yb%ʭDRQ~Rݨ`9kĖl V !ɴ̟HW 
-}oT8RT:itLz9="9-򬩁Jۼ{b橜sY1-}f=ԗXƵ)k8rC | sǪ2f~&o1@8]a4&o!jr+[ W7+o9[;rJ˪>gzJs]4$v
-Wз#8Dtssa9a ]; 3W:1CN5^ʧ tD FqNxa4grÈ+gd~ O fyp֎XO|6}=GU5QhU٫2 lд\HJL]Us}ݘ ڍ|˴]j m{c I;9HoRܖ:_E|l
-:tu
-b1k:*=jXJ3^~x)Ҟ2af Y~ذI2pdK&X [!8ʘㄣO&&eY+mm2;{'/sw^bnĎ6lOPߔ<:tso3g,cgF1DCXs= ԭ?DUyp|y2L]<fU?\Ҿe v,> Re`oMN +.\<- ԴLA'5ÙdP  DI8c
+<< /Filter /FlateDecode /Length 16829 >>
+stream
+x}˒_KiQ0kMWSΪNUW_3F?
+TPzwy)^} W(pʷ9A,~)ͭj^~.Y4KLQhG~/zn\مE,/w:&?
+<,qF:oV҉_˹bݹԎ1]2g۫8e|{j=
+7.fϼ~|നudpoHr΂gRv>rGzcb\GQDZt6vYٸpNJJ;dIIԛ|<CIilk9q99\}{9@YQoIBag^m:Zn号uG' <}l*M'{C1>=jⓏf}cyS_]EmAL(>CҶekmn72ң]N5^ŸMK~=p-gO2VX[.j]JnNcvWuҮc\if^'MT/7W,]p'Ao/xX:yNwyVVYD|{FN-W]{Iؗީ-Xܟ<3V/ԭ`Yyso7jd, Y*o_tvڷ. =--c:]y=z|:*oGcy7ӀטpE,,HNjν2ִ6 1sصM{s2>0L}@hF@eҵyج\&©$Mq[ژiszWv}\ۨp^P8._"h޹߽?yvۺӯCGq`,x-qGx}ܟx/(}_2E7T/˯u8+4̃)ggr>'ľۥ-$iLxً[ڤo`GWn=dwIu߽ٙ6,&]kINyh-E~͛_f''v!!tj- ˧|b]R(^䯩f/`?/i^D~w=+=OOsJX%Vk};GrbVxjwg"|+f QTvoyfiI/9sBOk}1KT]#|9[W3zZjz;JoW?gp/s74/>]iʖY=GF#Je\z>kkeئ!w۴;ܟjG4Nڿr=mҦMzN+<i$7mҿ1sp1#=f`tljxC9 U!R{u{Fhnu$&8z ;%svPx)6=wW#~_?z^n#6w</|+7]ל}.=zqǵ%x9y- sd~]]=RG|y+9_QW_
+B祊7_[5.
+4љ!pw't[*DjH,;oEm"+)ЪNNQ*OPc5GnΠ\VyPiߓ<7h\3kFqw(@8h887AF4.S Գx-SE3Ns&DC)_&x% "h6+AF ڜ!V ,rDn~v7ӿQ֏2 \y
+JW\jP fflݮ`꜏HB$
+:x
+O˛,nDF#ppқj@7hSb"1wHbԙVW(s1
+-z25wrI<Ho6NdQ͔ڨѠP4Qb}]}chUF Ch*ý<J#$+\Vqp@wߓ<pܻrF^/q,Unt*q@U!B>QJ\li156r} &FC Rx`/Z=<
+62o'SshprSEњ<zZbo€;A=L9PSh;USJxo::yǸtu*ʀG bz:h|o'2AыT>KQ#E8GT+*p(w^(lqOEN\F3@3wʃNAv5R[eshqP7kpG=qm !'4Lw4J-Pp)&]\f3@4Tn+StذЪkzKHn J}a=\
+T0V  s21!0:N84Q=ji}Ҋ"=>sZKaQE}УV&CIG@ffLM0Qu.OyGAN\JGT}TZ 1q0C2˪;yrwQS\F3@4TrWFTcFMi ^ꏂT!Qhu
+3?9Rd*c RNz}OD m:23#vךCcOszuPR޼_QsJH$\ScՁ^*5fjEOh:2ꉠD&(Ql1TRݙT
+6j(?1&XhX TyU_S.5/.<W %~[
+М0p1w'2ÁL#xr^
+y(T ̘3i+#9B_p3}.!9KK}*#b F\*-U N3m 4lњKI*j*H>Ǭ6Fh4tXKPw&."rIh8Wj`E#DX;;lu2
+I@
+Yx`(,ݙeŤlT#x2ﰱf,PҦil\f2
+oByʬoCF`)`G(Q^8 7w/R?uzǻ'Nݜf 2
+$rq%8o)T(XKdgi1ip% z`_S7e5x$ 2/A=]hg0
+٤%P %WL>MQoް 2 x x؀7PG.n4.-;Mɵr5GKn6=֜a)vSw߸Լxpj\{:Dy]yoڿ:ڻ]#~c܆񻝞Z~ǞXP~ݘj}.y>2"`O%bk!RsA_Jm?]L<s׭t-U\kHJ:;ab*
+}隸)&os.hc!'V`LҙO:mv4VڷuZ@Ff@產QkJCZvV}Aܝ-DLRD9R}&
+fJw_UJ=w]"(Ъb(݉I_x0g8j]Di{8Z1CmPn)3تj:3LIW7/Pw;`Tfj
+KäM,J[>]RM RZLgng~* sׄyV~EM,35%bfQ"DBYk1en# '9COp4ܴFKn1hanv5|U8o1 eq{Cr(}g3+%9$,;Y$Ɵyl%eLy9%`o",ɡ$J_M t1UB]CǷTYS,%9 TkT@AierVMD=10BTC+ߒHsL7MDgvh-|\Lxyu)Ȓf* oiz\MB ;K#%
+ A/&0c .!bXMx16Y=usɫ
+ ˆKmWIAg;JwTx
+վ=JQ\+QvuX:^gW ]uK]p oGl0oO k۴1<VQVAvu71)y~PA'ҀpW':tHogطq,=]y%F6yyq(yO$csy{pP!0"1/z7wOF6zhhwRWf{:!
+}tg(z
+-R%:ĥ|٨3V Jo3}H.ޱ oGMqU}QXՔ*tkKFrd.]]M+|Bo3w".b!'7 xz7aSvcXsG$j+6wN`JUFryp}.tf#T w h*wIr3M>&Csͼ;IH@/VRh**|9A9V@r,x<3VJ\ gORs:qPOPW\X0p(X.VCsx#h{q m 9 υOrB'}0yGgChS<}.%員RX<խHYႽgit@ zDs|y!bA\㹙F%|CC~Jo;FZA q,vx+|0KmX@Ro1,V1* ^xx OozՍJP2uհ;Fr@$txCY:̄ک25WzR:!d-R|@#FϕGl7Fr@~Vc&Sm[ Uq @ 2]8\:b}psʡW:6m}d( +A)u8뻈aTb:i,7ƪ-Λ( (O_PHMqN^2(X{Vq"
+zT-OO
+0ya)[0| \E'Vs=!G.IJhS`x20USly714F^\=Qm[tGopf3N0U>rgB)Z\M5R(ITk<Xu vl˛܏E)384h-gwܓ+Xq1\㉶@χ'Qwy8.FςYH
+j8Ѓo?G[T 9W2?<.ʄ%lU!PV3gk~ΠQ;J-Go 7N1 :sSUeh@Ca>;/Ѡ݀sz%ޱ􇙚&F3A/)xM]"6Jq=Y~sIjiy)]0)}NBˍR-m, 6.c|ȭ"aC·SH9amG:0 HtAo</}Y3B0UDXB(qR}M!(1R~qcGIP<$ޡf5M<I(,ZنɅ, | @Q]a*@OFi=~`Ѓ816AϽ2ydtH~'<\u1'n^sSނ>"mrpc+nO8]8Oy,cOdV::7j31dNJmݫ}gߚ+K
+DX
+M#Vӳ:AϪ4T!(8fs'xm8;OqqpIc.+}9F\ t (<C}
+/u U' ,x<1Yv!m
+ PIQޔYxh8I T@ȯ7tqH>=C]1r|w
+>FscOw%~ s@ Gk-wGDIm|E cB4ON>5îu9#U:~i*\#><*s\4CaN|<H QoX%6&T7@E3Zćv:[04()/';$S*|ƤUcK uLaxSic1wEm,@3Twʃd@>ݗr>ǶDwlmrc|OxQ;#-.hxh7I[Ǩ
+\sk)G'elX;MB[r
+U1"A[ʑ ґ1YN7x) 5E@LRV(Jcѡ`NdD_`*Н:ϭ"*l<Z,۰Laհ@;@E3Z"hJܝ<@ƄCT˲Dț~aWYϪ+]f2y U>NY[(; (.(l7BgZϯ-ej4o
+6ugE섃9۩0fG+ diDrzXW)r+Ka0"LSYP-w/
+dpMRREcVS?n5ki>L!\V,dR/ V'\uK,;h^Z>E_0<Kq1<=>a
+M{)#YpOAz1xrn)B ,x<
+_z =޸xu<Ǽxͻƕ_uu q*Ah*C}ۨ!+~bNWgnWAphnM a5S>"l/UTV.ތWA2U ̢EiqN
+`e.E
+}(d0ؘ3}{DBK֗\4ބkme3_F,H.L{[_$@^Wd{ P%e: AjhDݙ"!K`$kH]7dMe]":l̥
+`R&
+w&/jxgkʫRot)2"
+`R&
+w&/B}THUi.͛Lнգa F\*{+e(Ψ3}|SCOw]t^e5o4qt3J
+ L06L|_H$Вj?נ7j8VWN/dTBT;cbΤ5U ]g~
+6d`NTex䷣C|!y Cs9|@=Lv=Űoh;(Q}%s7XDF3<0׉hLL]/d^7Pm5u(P Ki/ZgfH-Ot3@y@]]?9*6b.;L BM?5_GSf
+IZEs0oc.XDL̔tuj4ȕ>jt.
+:^P[
+KPB}R
+QƖl"Rnbܭ:cls#.4Fihs1*HmPeNMx[ξ- Ox fh\ "% Loi)8@ #qsA!p3}W(Gq"reOdw=ޭg#xk/3I!d>Uxm;gy!̘asܢɡm"x+%_;hǛ ': bb " =\ (ۈ2#"~6r2j΀Ծ龫~[
+Kuqu@]a@_|UJ/   }Фx_OIy8GTfeOG;?Cm~;WG)owx;q{mL~+RA?(m^3\r^ixۈrx;1 Rp
+#7\n<; Qx6Ʃcgt[H9k}
+4g|f,Vf'coŽY"/p R+sC
+ǀ}Av_۳QCV4
+!gJpj!^R>L=EaÉ鱻\E&qKqU2yO>Z[P%ǫ?*J+Kvf beO|^u =>i3jAn(&=b~w4g6|Sf}FjBOzo=t3i+~6?~S._5gW^_Ken"k}?Ļ
endstream
endobj
665 0 obj
-<< /Type /Page /Contents 666 0 R /Resources 664 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 668 0 R >>
+<< /Type /Page /Contents 666 0 R /Resources 664 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 668 0 R >>
endobj
668 0 obj
-[ 662 0 R 663 0 R ]
+[ 660 0 R 662 0 R 663 0 R 653 0 R 661 0 R ]
+endobj
+660 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 360.107 631.065 372.063 642.133 ]/A << /S /GoTo /D (section.15) >> >>
endobj
662 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.713 590.495 258.668 602.451 ]/A << /S /GoTo /D (section.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.532 444.354 261.487 456.309 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
663 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 274.389 590.495 286.344 602.451 ]/A << /S /GoTo /D (section.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 319.111 286.594 331.066 298.549 ]/A << /S /GoTo /D (subsection.17.1) >> >>
+endobj
+653 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.702 95.815 272.159 107.435 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+endobj
+661 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 111.059 67.03 307.73 78.716 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/689336)>>
+ >>
endobj
667 0 obj
<< /D [ 665 0 R /XYZ 78.37 808.885 null ] >>
endobj
+169 0 obj
+<< /D [ 665 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+173 0 obj
+<< /D [ 665 0 R /XYZ 79.37 569.008 null ] >>
+endobj
664 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F16 386 0 R /F19 383 0 R /F25 379 0 R /F20 380 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F55 387 0 R /F23 383 0 R /F29 379 0 R /F20 386 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-674 0 obj
-<< /Filter /FlateDecode /Length 4406 >>
-stream
-x]M Wlo U%Qa7odԷ46A{hSfFI&;CQ$ERg/7ox4}ysO\<Fu7E\g`/Ors_@ƹ¿U-ox9|޳EHK4#o HoxGUZ>|̋2ÿGZ5}$3U#^wV& )/hK-[m 5Ӫ؀/m@?'ovvvk!ҽ3P#/
-<3v3 /mާ1Q~ 4ZWB<_^fԿJxmo4=VЎ#|z.gBߜſXoI2a凟| 7@ ӗ^åbp
-N~h&*p"R ҧO)*V*LquZ8A0_ +fR!Ѣ`/ėd3էbRkxG|{ ZDj_|\:2ˍ˚5&[s5rLIwHsYK;;3s4¡'@}\}Guv |x]cvcxϸ7uh3u߾<H ﱎ+;\@i 2~$^(M'[yW'{L ˤ|4Wƅ?p\.igDbD7G Yp{aRuM6&#gZ%1]XE[H'q|\syҺӳ"FNL}>a:&=Ō\Ä3u sIYpJ / ^l{i3iSxh-a4wGO^n͚kΚV,eM\A '%lr4q/̬9I04r#RnhtT1P'qϦh/vPLqAD6=Òvܒ܌NMm;5
-y3ON-3'&ʓOiaʅ=NЋ"uk% (=J`N**\N1,"l%qU~8F pҚU(/" Qn5e_jwZ<Lk<ӂ" &;0D&KBml&l6'ywjwJ͜J|ئVcuI;X<Lzc6b@N*Vc}Y/#1bȺF۰iǻoà
-s.}s(,~f2
-XNm:)gD-cgͯ1WBjƉjˀ
-e &
-$(GIp9a˕
--Oi[ ?/\W}?Eqhj ēC[dGrbT>I{M
-&s9r2ѳ$IH9SA R3@&_R2),T㔩0zr\l\h2)Z=*ik9PyҏsoTVwPç')5s9S9H*-3[w(m5P^(t OV# q- vǐrT !~<iGC[ǪBVC@7{ܙCr2٠B "X" ~^s@# t߀{pc@h5i"HUNStmxp 1x
-5DITM&v? =*^ByDCA9&<|\CfXnщ<R•PpsFRu$i]g\0dxJT6d`9.f^^2Q0w
-pɠ[ eARtRaD?3GrCHL\3o<@ˤrq[!,l,GQ)}pIP]PrҖ#]Ȳ璣-K~VOB n/W=ͣw&LMjTKfxE356VAӭ~}M@\phL̺#T]NQ!c'8.Pޖi!<ʙt{|'vThƥ7WjwuM%UD qnjżWc^Mёq2ygu)}ilh, -;NcJ҆ig԰85
-WdK>9@Fk:S;E Oxeh}Ie*١TZ z;
-M쾃N|V6ӳNԫ>4bUv#LF̞XÉH8 >A
- U\AUm"[ U쬈UU9@4TSf kֶN -S@\WuU>b6AqZ[Z; wd*YwAzZj_K=VTiFvdZԇ8 B}m]{V+;AJʉa5=JhҩII=dzZfw9ȝrRǧfw+؈WZ E~X52p%]W*}>\oh&&Ý; |GiuRV6\3WcqP5Qd9],Q}[.(j Bk}c`4VpYw
-cJ9+ W=fI4af$p_A[ 1h( tװzm
-,w %o\ |l2Kf0+*%zjVu
+673 0 obj
+<< /Filter /FlateDecode /Length 5282 >>
+stream
+x=˒:J~D8V'>)=7وŻ&dV^Pje&
+>4y+"ӧ0)Sǩ"i7uA"۔#ڹuiE՛R]{`f4Ҝr"Շ\Oԟa4pݧ.]˳k^}m`_!tqSh[DK]FRJs=-֫yCG'{h6ѱ"%ݍ5_* i1 "ΠnbW}S2@v
+`U y1?K1Dz.6|R@TbT_&,`)]3b8pTmýS]R[OyE)R~ZÖ}E-b_qr~Q m9 UE4B=hh&
+s093sЛ:pCaܗ@l`/iԧ72s/qpUk>߶i+I51w]:1 ==60ѫBoe)BSze< FݪTބn5J,7(?ޗ8`m˕Av\Kq4mˌb*& eD1,j~~qĭBs# /# 4qF@X#h5kH@,L)+dg9bc%KB_,H Q' Rǽ*Z){0!Y[14|TW )qՉd'@z,xN|IP*u1l”hSC#ÐF&\yJ{Zwxx#kB 'J Z؋578, ?9}:i婟 :(-!nmҤQ,8dTFSB*1u594K5E҃0W7cOaI ]eMg#LSN L
+[zPp ѶD߆miJU; 4p4gXSRʧҋm܈fƿ"j̭ƒ,_('CziU 1t1mZ%DY՗ق?yWI>Oƌ̡D$`P8qv#.v\B|Y=r#UDF_b<GK&J,\]jY}^4)V ͈+юHӶ4'K%x#7QZG`=
+sPr LR
+ *@bH{MkVe8k`H;G
+?zC'G
+?ᬅ}l`M _"Gy(H'k;/3 '@cgwo{IwXbIW]#3޷E.[aEo?.Ka]ŎgY?YЯ,h+1+g=;ʚD@4IםԱu fj
+A1oxJ<_{8'#Ѥl6ge"zMr/a>Bqɬyܬy7'Pg8wrN 4Yu0N2 Q)g0*l VU'u H'')[deO@쑢OH״>uZ2V#Q6>O\6K󲔭<o8z\@rr
+` x#̼M }"_GMڟcĜAW _ %!$tq3@R@|f v@ E6/hck)/U
+d?}G-.T$ձh.y;P4X ?eSy'sPX"i=ҫxR&A@A0&r
+J㹑Pg\PN @,zzR tEOPC Z9:L
+#:j<zHfNa?3kVBĶƞ>X";5Euj~ *FDÐx;a
+ 7j^
+P.63V8X PHe.n$aRK?~;fr/#2p@
endstream
endobj
-673 0 obj
-<< /Type /Page /Contents 674 0 R /Resources 672 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 676 0 R >>
+672 0 obj
+<< /Type /Page /Contents 673 0 R /Resources 671 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 675 0 R >>
endobj
-676 0 obj
-[ 669 0 R 670 0 R 671 0 R ]
+675 0 obj
+[ 669 0 R 670 0 R ]
endobj
669 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.659 468.618 259.614 480.573 ]/A << /S /GoTo /D (subsection.15.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.713 408.961 258.668 420.916 ]/A << /S /GoTo /D (section.11) >> >>
endobj
670 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.923 257.918 207.629 268.757 ]/A << /S /GoTo /D (subsection.18.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 274.389 408.961 286.344 420.916 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-671 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.581 257.918 232.536 268.757 ]/A << /S /GoTo /D (subsection.18.9) >> >>
-endobj
-675 0 obj
-<< /D [ 673 0 R /XYZ 78.37 808.885 null ] >>
+674 0 obj
+<< /D [ 672 0 R /XYZ 78.37 808.885 null ] >>
endobj
-672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F17 384 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F55 387 0 R /F57 389 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+177 0 obj
+<< /D [ 672 0 R /XYZ 79.37 771.024 null ] >>
endobj
-680 0 obj
-<< /Filter /FlateDecode /Length 4657 >>
-stream
-x]KW: Xz $'ź9>9`_ S7n4HpEz]D~<Q77_>+}rio;G9ӷj~ S-϶|NmOM8,yv?%aTܼͫFmGs01sZ30Q >k:aN2y:Js2gӑð~Wqj;&/;އP#?B^x&ҘB<%V=@kp^<.RAU+*ԖKO!,c
-޸HL.{pyeZ @ItPFU8P@=
-Ԑ
-@G=iQ\c`s爑pvNڃMͭs
-+(#Z ̑ŽtWLa}2ʈzntrwX N1x;wL!@\xz.};
-ݠ/%ON EmK;K|!07XZ7 x=㹦+ c寸TSW>:X[iݶx @;k
-A긡:Paa{5ҶԐq1ڜ1!
-6ke˨r85ENz;j3~
-.Vt$bdAd5T a1(f ftcJdžQ 9lQۂ_7u/NB)(;WyO=*x>`cSօc-aՎNBe>T[^gM8)dh|-Y7|4ɥڜ d ,AzH mp?Q9nt6RaYe}
-x蒳GyE/a4m+3đH-MHUviYӄxxF0UJhh
-eQ{,#2!P<a/XAv ތ$Mܘ
-x+Y:6s&ܾy#ť}#8y@Gg ^ 'ށ/]°ʱa>d꓀H%N7`8N%;,2aqg+H ~nArbܽKZ⻼ RjZHȿ^Q*
-(:kyf#ڴwyO.F lě|"`
-VxP_
-TR9y Fi$ldDӒߣ H)zH"sZWs; m#הR9b}Șߩ?
-֘ŖU[V#; C}`}z{.w p9u8[ٖ/Zc},'2Wq]8Kzݜc56*αkU@=V }*_u
-ߕtuc| VH@?R T Nh9/k/|,2lNI==a{pNyh ,@!Y#KM劕ǛX>+p ]30b-`MN`w^
-Ο]h8;1w>C0Z!+_|]F*rn[aS0ͥZa틞tUKt>OKU@rW*J|KDʷR4UPF<"Ξ4qF۸k[P\Om(䐳hS4,=zڗhZꭴ-
-y9>
-O5R¦ڲ'Au7Zc .dsRꪍO
-ŝeʣWrb .aYxXsjR]L1UU։kRRAXjQ:IJe Ur^\U)IS* vtyT-\CƱF(s&MIIdahY5iH-L@(<U}~o&XN7/Q(.
-5|D+4m\_Y+P,h8q+~ߟcogՒhNߤkN
-5ژDsH9d\9_!b]sUxgۼ-eo\ (Nrb_LKG9~u| g}_"VTb_;#bW/6l
-endstream
+671 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F23 383 0 R /F64 391 0 R /F58 390 0 R /F57 389 0 R /F20 386 0 R /F29 379 0 R /F52 380 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
679 0 obj
-<< /Type /Page /Contents 680 0 R /Resources 678 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 682 0 R >>
-endobj
-682 0 obj
-[ 677 0 R ]
+<< /Filter /FlateDecode /Length 4704 >>
+stream
+xˎ_ѹ!o`!@HNBts|H8DK~?왱I|XivXwYl.]w/L.XJ,~z`.lH!->/=R^ b'×QA@EKM#va0cuc&RJD{*R
+?{E
+RT̫KY>|ڛ31YeJy)scA!;2=$"{e*x<s%ae-6XE}rQMO9瘏F9#=Mpfk#۠X^0eɒIxQ5Z;*>ΙԵ£oBTgyZپT27gW kAt$+}cdReJ+M)[r?'E26E QCs IWiK Wx=TTP$Zwh# *  ky$+SgD3ccًi>t?%m6qI2LY/`,[8[|0"Ɉ9R]ӷ^Ra#9 Uˬ/5[薺ǸOy.m5WPW) f%yzMM*?z<tvJ5GJ cGJܧ^ 6ML"֪Dхٟ%TzOx;ヶL kྷb}]&hF !rNk6Zbb^  Q^UrhʣMb-ej۰3Qh64@#_Bц wQ\,HP?6CGeg83=dɔNee3^Z*<EyAģԆcnJO̓1SX^0OOM4K`Z9WWDj.wQEaMlP
+4iz :[3|Hְj=zVlUo*K3)FXқψ3a>e>kX|~6&Q'ޟrZ]QbҦstPYlJ{[-mmo |=zww`Nd.5SUr؁$zé&OΓ}q
+
+δV"8iWh!J­X͌V*خ%Uʃ&hEd(أdMZw-RpOrB,lm'f)? ጮ1sh{>l7J;@XtW ~$b* Xb$M.w=`ꀏS2ihyf
+&_&0>U"jkxQuOʙk3'pL ŁdA?[jڞ8~VBݷ4^n⁣ʓ<8;
+ɻڃwscH%K17n(yxu.""vTuM=`w*snJ8t,g:%qT<؁/ տ=-]DYv} (Pb4~ J "PCm"pϥ=G~o[tR!e)r=ޫrDD^;,`>ŪUw-wRd{n7W/I?Žϭ*=V_N6m>Hq/ ~x80rR./F izq|)Na.ԟL#.)fV#lEW)ûBiha85;NwpӸqXqnrJl7͆c_>¿`].0P
+3i\}hwB;+ZtX(ވCMjK:iZ1
+Sf:+NQ-B{AXpy\ 1C )]g Mg
+G]qǡ2Í*q/ϡ#/yh-!FH8S񘲹A#
+еT\L0P D/BMtU2:l gt
+B
+ɽz?.:`LJN3~ӄQ(J]-wW*Vkġj\|Rh@ \H-5 ڊHb/`6װ$\Tpv3RoX:m5/ծ!j3>lc(9ŦQC.}YWywEw^[wSCxax4_1|^AW| jlk{ Xx ݉A VKXnmZ&bԻOZ^Yȹ&B[q-}` 75{DaPni&zF.ninnJu?(Hɘ+G/pR+n
+4Qh]W1#Y Kǭ4j_f]V춗9wwW.O1C^WoyN
+Ԛ
+O~`0p &M&B"wTs١&DvXzgmg@ΏiM"bվ9Ը
+*<|Wʍp .Ot L}lB04VNy֛UsGmH W
+AD`ǽH*yNJAW ShȮ<8򒇮˂
+endstream
endobj
-677 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 111.059 85.34 307.73 96.959 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
- >>
+678 0 obj
+<< /Type /Page /Contents 679 0 R /Resources 677 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 681 0 R >>
endobj
681 0 obj
-<< /D [ 679 0 R /XYZ 78.37 808.885 null ] >>
+[ 676 0 R ]
endobj
-181 0 obj
-<< /D [ 679 0 R /XYZ 79.37 533.569 null ] >>
+676 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.659 214.818 259.614 226.774 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-678 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F22 408 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F57 389 0 R /F69 406 0 R /F19 383 0 R /F55 387 0 R /F67 393 0 R /F58 390 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+680 0 obj
+<< /D [ 678 0 R /XYZ 78.37 808.885 null ] >>
endobj
-691 0 obj
-<< /Filter /FlateDecode /Length 4711 >>
-stream
-xKbaTz<٬dԷIK>{IOkv|xGKQ|$r/?_2M??>UgހQ?= qI{F0%.?]xH%ϝs3k>=¨w 3x%7.<SZ4K>{~2&su ]2}KW- w˱L[7&s]V /H6ʟ>>#$ӮIkc_i13Ѩ|@KeE,F/$F 7XSaȆ
-O*ʘlDG*(qUri%H4FIsn\0#וW`(AuXq[[.Կ>_+虋7xOHw4Pq&C  kȤw?.O.9,\5v| -:/@ cO)JLhJF^V
-#4$$%k܉Es> \55X7i[ar ҉'y|d~w548R{e^1?
-.zz/~-J{fæ0xu$TQT9P0ڶ
-w"-Q4*o6vpldZO <P2.YDnI#{KX,Bxz{ˈ[Q:v8
-gs?/L vBSBzRjIE@ŨBIO[_TyR10˘%HfYz8mA4Fr[T*v/ !&3#<#
-&Tj9"y\)WŠs nr܍a^U?/[ۂ|*&>Eag2; Q]*ԛC}Wicy)ąg\S*.ҳTkǸRSή>ZVfqÎK g;( R
-(2L(t\vgS"a’<݀]0Қ[1 Sd\L򛫝&"n۞e^uhۓz,ɢۋP]>LGIń3w|q #ۑ[4T:ϥE_-p!7A.<V"c l\XǑBi2 ΋zy^Lr!ʥBl(N ?0|0u4n5 VNlJ0ZU50ng3a`Z.`^W;.slV 3|R,gV@ Y0CI"䁔N9ޏ}Y3ݢD|{_):(mRh[p\VM5dk<4l\?Q90G\t6.:r1uȥ9+0hV"~8{fDah
-Hlj.nĮnϫ dXGqxH8 .aؠZFyT>X*/(\*9ǪW aJP9{$alj@8T`4-
-_y1@/B\Sƪ6(E$!M=փQ^C 12 jC2yc^ 'Œ];A+ [RZ3Kb_9掫>{{kxażF.ޔ+n|;dI6dĸ'mUz4I˼[ŵ_0Oك_Hmi'EPqn,/}Y& [O9…gxd
-5sAESx)SLwMާNQ(˖US-wK+IIxɒD囤/5j|`L}qxI,'Ks{WtuX8- x7a t=gΣ`GI%!;+HhOY?VI
-Qt
+677 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F51 384 0 R /F23 383 0 R /F20 386 0 R /F29 379 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+686 0 obj
+<< /Filter /FlateDecode /Length 4309 >>
+stream
+x\IsW:<RbOUefĮ$V~JO0C˯ ]>/L-8͵\>r]bf1[JT<^0¯*F{?awGܙԄ3
+9)'3s∼OrVBypB%abH/-7[pNBrs<DIpX+{{QΟ.⭓x*B_w.#Ҳ/pƊ1 3;-0a a\_z$kv~Z KzZ8.jz/<qϛu7-ܯh#G>S$ĺ~ w<uXd*O۷|AZ(k`@(*:3 D΢VKi2++>8>G]juֺ"ؠ+{g 'N<K}pƺ}]X3\_?[_2•I
+HJD5&)1OI{UG›G1*V:,+œJD=x;iM?bj`tY$Wh^WH'}!D~2E)v q%r_L(ծ_fаۻtM
+^Q up&%({ rt'1`Ϗ9Z^jwRN&=wI=,Vl)y#%?6pG$[+g_zQڝ][StkMvc 42p 7!~EǛϕu8b]vO7rL.ceXZ{Oѐ|mxӜp\\#Ѩc<\@W2@Uc)$sΎs;o˖\Rr>oldۢ0N7}SIo Dv[:bCѢbL_GFH؃Ny(W% N=-K*ʹdڔ190T 9J*;۔jKlkpSn۲nNޗ4MN<5N"땐<GnBSTFKfzx}/ȁP~!U u8sh";*|>0ђ
+X ,ed +!5v%fR@@:Rս?Š hHH)hΡ)<TԈ}MhJU=+MH.ѻä&>JICդ
+u+>%qpvD|`"!CP>CP>3+KD)Ac*bs-އL]*b<ƃ_ 8f o=~o # 2jN`Uӥ7se%RN.^b[1[nf[Vnԗڗq}ٙ}F՟FBb+z\kkW!}Fk4X7ڋPD*=E!@ ]'SthX e.A c=:._yv-D˕z$CB_bXC;׏͉*y<
+|SR!bH窢Ʈ=*F1rdUA..ȮE Qvsd|J4t* t
+8A|"L[lKh˲l{40ppB|d|.`T5<`wl 06
+X_>lH`sC2`'DRσg
+ͯ[}
+PGF~up2@D)4 @$B=-Di6 @"o
+ L(cg2{@*w%9 M"eoIꀝʲq.Eǥ;9vnQN85aj5Q5kVkd7VGQ
+aWgAͣ5s?ce6F'W:;'otгFGTf[;-pvsg?ЉBY#
+0pOl(f,va?Zvpк_]Spn;`0XH;dRO^qٯn6F ou t)u{;-y<[%ͺ-z!Fi@Y}SM>E̪ժRըNg&pm.tJK ao5nU6;31=u<PA
+T`I0]dדk-MSr<Z5in.Tq rr.!!|7G/%_ntпА3/rtF9X&GnuPe
+dl:ph%8Ny.69=Prro{5Ѽyn;nvZzB,5#՚}@FVqjڥ78?߫g4O&u:xN8/(K/zh}L :)78@WuQ:@piWAx }\n2'͸Mi7RqH<&`v/?<'84o`vެ YQx'PmhxGj`"] 
+ "|/.ƺI|[uUx] _]:F՚r-1c1ߓ"zd_5=7bK7T[sN?fvUА8lBߌa'-jfD
endstream
endobj
-690 0 obj
-<< /Type /Page /Contents 691 0 R /Resources 689 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 693 0 R >>
+685 0 obj
+<< /Type /Page /Contents 686 0 R /Resources 684 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 620 0 R /Annots 688 0 R >>
endobj
-693 0 obj
-[ 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R ]
+688 0 obj
+[ 682 0 R 683 0 R ]
+endobj
+682 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.923 722.266 207.629 733.106 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
683 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.496 595.346 375.451 607.301 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.581 722.266 232.536 733.106 ]/A << /S /GoTo /D (subsection.18.9) >> >>
+endobj
+687 0 obj
+<< /D [ 685 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+181 0 obj
+<< /D [ 685 0 R /XYZ 79.37 323.255 null ] >>
endobj
684 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.126 583.391 259.081 595.346 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F26 408 0 R /F20 386 0 R /F29 379 0 R /F68 406 0 R /F23 383 0 R /F55 387 0 R /F66 393 0 R /F65 392 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-685 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.649 160.807 409.623 172.762 ]/A << /S /GoTo /D (section.9) >> >>
+696 0 obj
+<< /Filter /FlateDecode /Length 4956 >>
+stream
+xˎ$_в`ۓ ޛS;@K<=$R̎L)HH-gӅÿ/]>K`J/~|'
+6?kJ[MRj6?m_ۈ#aFfn`<#sypI I3g@QBۥ+ѣArЖJDAUt ʼnm(BjCv$V)Y.Ue>jq"WԚ&ږ ҳ"z۰Կzad
+Ts .?ſ޿T
+RcPx$ n%]RMKs1 Y3tR@<:OO~nYgj۷|͡znYeG|-5Z̲w֘5_k͜g%g3L EU\4\TQUbߠ~E@^
+渹ͬ6]^Kv.pN=Ե%VLړdK3QIwu GsYޅ9w1Of}<Y)T 1AwLkϸ(6єeX{Ʉy,iOo2+S!BrY `.wl7JpN3 &Z@3F^QG_gCcNe&]KC۟<c%_/L R
+ /pM<`4^\^R8uzB
+BJW\d#}$-S>Q{[LD'-{4 >ӏ瞲Ng%1FX c`dVL?a GnB v ojcղClEh|<*ƽ虯)q@&,蜌%ס6谓CԲxKL)JWλuzaDuf
+#iRx5,x3"ТkaCqװUAI)Vbz*M]V ^nޚPx{яڹ9^60*ݲ QIhP_@>hNvdGH1BVM+2[`H#qj7$g<@7-mEjfa gw9Z1pKdn&xSeޟJEseh9GsSQkb+ ʉhy1B}4:ңK(.OEqmPZ%x&zJVsk{[ +Sh9Oo/Xy豊*$Iu"C&ąE"wnAk?^cDh=s&L!Pb9~jPEZT՜iY] Jatx|/eBv( 7
+fvp
+f
+86 *kvy;3fASvv1;eI/f]ú/$Pp<X>ɾp8\9Ei3uCUZc[_<)YP [5{M! wlXMF_ to,qxDugxRrÒVm3q^+"6bY<(
+{lLQVF^A/0{o{eܭ؞)8,*UF4A=Hv'j6u*>L%Sv<_J&RVj¢&F,5)" rٍ+4Ev+K>\%%*Y ~P>#AT́ytyo&2ǸP~e+琔2-BiX
+ڑ`PI k&7s5[
+LiY; !I&',6"HAmg esNdfCfgA6#k U9Ws
+EWnu~S6z:{<|m{XYV|_g-SdoR%L[''sK?aT.h-H\/u.}[/SՃZWYf]718Y7MMJ
+8S%Io ɴe(E:SGM[^B_$4HQڶ䲊g[s*ϡܴLuM[xR7Y,nzkf{OLn{|>YH`c%$[)r-$j%dW(Z7:ae9KNSMY3X㸉߱N"uYƦDE9Kn9$ZdW-~@.򨽴UgO ";FyeFQs<A&zݨA^7t*TXyk}tDoTq6\rUCю G^#ս:g}J8a rW9k &͇Yfƫ ϳe0cY0Y:~z.ߗ;j>km޴E$U= j
+v67Ό9ΐGirk\ó-XuACy₯HlYW̎\Zcہ"21iB\㻑NHt-v!i 91q^%.dk7X⩔a0"3LOo! %ߪl{l,*/H,W
+\%g 
+sSr$7D܏q"#X0UM<R 航}єq4!vBΦKfk/J]
+i'u|t0מ[|a6Fߡ;"q3ƿwszLД_$.y
+rmd7aװqi]Ai-+>$i `h턺me7 M$acG
+^-ts<nlh9X=-:hlZ5nmI]wCخEq՟KAϰ]w>u]JqPBl|| <>X
+OT**f;|(#Sy寞Màj{uJI<'94QAXU|&]{#^3SlA&Ňtp9<|`\x0Dwa
+endstream
endobj
-686 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.96 160.807 437.915 172.762 ]/A << /S /GoTo /D (section.9) >> >>
+695 0 obj
+<< /Type /Page /Contents 696 0 R /Resources 694 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 699 0 R >>
endobj
-687 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.984 82.049 127.958 93.277 ]/A << /S /GoTo /D (table.caption.1) >> >>
+699 0 obj
+[ 690 0 R 691 0 R 689 0 R ]
endobj
-688 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.679 82.049 155.634 93.277 ]/A << /S /GoTo /D (table.caption.1) >> >>
+690 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.496 317.9 375.451 329.855 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-692 0 obj
-<< /D [ 690 0 R /XYZ 78.37 808.885 null ] >>
+691 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.126 305.945 259.081 317.9 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-185 0 obj
-<< /D [ 690 0 R /XYZ 79.37 666.001 null ] >>
+689 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 111.059 67.03 307.73 78.65 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
+ >>
endobj
-189 0 obj
-<< /D [ 690 0 R /XYZ 79.37 275.838 null ] >>
+697 0 obj
+<< /D [ 695 0 R /XYZ 78.37 808.885 null ] >>
endobj
-193 0 obj
-<< /D [ 690 0 R /XYZ 79.37 236.333 null ] >>
+185 0 obj
+<< /D [ 695 0 R /XYZ 79.37 389.691 null ] >>
endobj
-689 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F69 406 0 R /F15 385 0 R /F65 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+694 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F29 379 0 R /F20 386 0 R /F23 383 0 R /F15 385 0 R /F58 390 0 R /F64 391 0 R /F68 406 0 R /F55 387 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-699 0 obj
-<< /Filter /FlateDecode /Length 4292 >>
-stream
-xڽɎc_hY܁FiˀsdnOC2|笠HV=X,"_~o/n_`^ka/" Lڋ5q#.߾_~}\3~; xVi_"s>2qO7/yF-pi
-&mYpHsGrl$rL&ڄv;-<:Iv&ϙjw&rn"*5>TfR8H5k* %[bhi m-`X4
-nqVfڪ2͊^2-YZThJ1-'f(ڸ ޺RzەA6RiQ?rMћ0zHnj:WvHYr4vٕe֎mБK6H Qp WF~JjKpkq_[lcǜM0rRՓQȪVT]P~,=&S5(AvOh
-Ɂjd-$CJPbѠi`svݝqqJ\ @ F5e<{X"LG}f*H-1$c+F9 aMz?ೞI5.gBzK<tjYjY-_G{I!K/9f 0QW~䦷aԭ^|T>Ҷ
-?E&]pt;T̪P&T#dU{<cQ>ͬ~Tc<vG:jq9Ei.9QC9 QR5~f;-ړ4+˜\Z\=[$@Rӯ"h$MK@Vs׏وW$pFvifF\A1*@HlXDiӄ}SlT21Ljz`vɣPre3t81(G1偎pRbedxćniWlT`
--HLS߂,S:*P qi-mB"NEC/URxn\gR:tKBg$rɘ\T{#^s ]~[zd-0jE.hE]P*y**7~x,qlcw8RwlTIGbƠb=R0Bk%Ͻ'h:VEd;]<8Xvmv9 ^36qad֙ a̒YjzK.vO9҉..(cgRq1?> fJRn RzO9V0e 29;cf;F@}y P0`Lt́f*R7)0knjoϨ]'e KTdPZA+E>eob`=)"!ѮA01 =%vio ;ʸ#t@s(>=˶i8h}6Hq'VgD3X|/KB Cx3Im\LN|SZ֓[L )=Zvɪ߻Wz1CCE`S2g:AɸwQ]q/F[qmrO9$ɅLnQO#bȪ%8Q8chm1929Fޢ6J T*7>f4eɻ>
-] N6޸mw}ňZO?HiN=sʌ#Ăk
-[(<<v>Ca}!Q8۲t –= c9dko[Z爒k"6u\J8,^¥3b$BOI-q\pLG㟛1!9L! !1iƥ[Q22ǚEm5n}X2PQyل3#3RX,ȪYz?(=Gg+ot6I*p㱎qnq38ӷ%01(V߿q?_bk
-&_^K~~ [l}
-љ¥L;sZh3?9Z5Ib;p1;mՊL"l⁍ؓt@n]b|ɋanmaJ!D<B Z<Y s8ГZYɺ5uMy{)B{F$u:5*{
-M4 0i2ӅiPBgFi?t3guBnP2> P0z #P J188ipEFaIvVS0ZP)$--DO2x')DG
-ɡ ZߒM1 SBaZX<0;FqJ80r?H¡ס70}uTJ)A8[IHf'j=R?.ƸDQ_)O_Gў䷣N_p/|=_?.2lvr)l`6DAY3 \l"QՁDgyC_S,H>S*'9_KI??x"EP[\}53!K ,șRD8fA`cH Al
-,1>DW)ND6zaٞW,^Ts
-/ͭ͵zBU1^/"%Ů
-!w
-QB
+708 0 obj
+<< /Filter /FlateDecode /Length 4699 >>
+stream
+x]Ɏ$ W} tvM `
+!
+Sg?3L*¹}H?R>588gh{2>r  wExXm:ry5o.ӏJHm\d 
+rjdF?tu*\-=y
+˂':blW)&Ñ х.'Z[`]مg}5vq;Q즍V>
+?5(U^}{rb'W c[ 5o=!v
+@F
+_IZW^5x k^P=|渳縏qYjj{H)Qrsh]?iMhM43)NDVKƙGg𮭏|dO×/~pS4aO
+,,z(GhޗtXp
+&l5tf탣UPJU/ @
+4QA!t І}Ѝgk]Rz~0s~36 h{# DAxT
+y܂<vkK(PW1Em=$7z˳YFkoisZLv?A5D ԝ /dn,VHTIV 0%l>bҶF[7U\~Ge=YjA|SQji
++RZp8\֣dQK)`y_$cdHK6`A n.iK>u@+S?Tz׸<%m- V[BOi$t\$ߚai'Jj5eJXj7rRm"]T՘Vp[jTX)> LVbh6!5nGoZt"[57,s'_xr6bt0"L.D>vT1J&X |a |一`CqTW4?"&]IQnY^ͫl:797̢ZO! sU'4W9P9{N[ωPlxm>&g1y4p_ vi Er[",^ZX9к﫫Ϣai4-em77ʟZzs9DÎЈkěOYxp^TS SD;WdY-=A^?fpz찝})PG4(5d|/^-X{剃Zf?'˛.=z܈90.Ew6wJڱ.[%f4{UNԐ3"j
+}|솱E[_\j *.O-Vn,TqI-HJ=q ht#›dÄv{eiP*mOL:Y!}& eܮ["y̍-LTBHmkb(mlzM{$ϭO˱3q\|-1j4r2%?t{Fǂk{ nc\AJ[=2ÝMZDaoϨe*Ֆhcѽ1&զIr<h?]tr?8aͮ򵙼N&NlDŽb#CB]NC(QؒujDzo1ǫ0kHi` o1[9t+E5&Jt6PtXx郎S-a͗<Q=.) //g(wGt
+]Ss.SĐz)óxnKCG FDYN_aLᖯJ.7bJ&u[[j5<_bYb{`Γ5 /x7Re$N/,3_=cesk%--huFIyu#)A|5
endstream
endobj
-698 0 obj
-<< /Type /Page /Contents 699 0 R /Resources 697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 707 0 R >>
-endobj
707 0 obj
-[ 695 0 R 696 0 R ]
-endobj
-695 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.871 515.845 441.844 527.801 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Page /Contents 708 0 R /Resources 706 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 710 0 R >>
endobj
-696 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.583 515.845 469.538 527.801 ]/A << /S /GoTo /D (section.9) >> >>
+710 0 obj
+[ 692 0 R 693 0 R 700 0 R 701 0 R 702 0 R 703 0 R ]
endobj
-700 0 obj
-<< /D [ 698 0 R /XYZ 78.37 808.885 null ] >>
+692 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.095 725.694 249.801 737.649 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-197 0 obj
-<< /D [ 698 0 R /XYZ 79.37 771.024 null ] >>
+693 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 265.522 725.694 277.477 737.649 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-201 0 obj
-<< /D [ 698 0 R /XYZ 79.37 575.691 null ] >>
+700 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.649 394.229 409.623 406.184 ]/A << /S /GoTo /D (section.9) >> >>
endobj
701 0 obj
-<< /D [ 698 0 R /XYZ 226.44 271.385 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.96 394.229 437.915 406.184 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+702 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.984 313.81 127.958 325.038 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
703 0 obj
-<< /D [ 698 0 R /XYZ 232.109 259.336 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.679 313.81 155.634 325.038 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-704 0 obj
-<< /D [ 698 0 R /XYZ 195.137 226.534 null ] >>
+709 0 obj
+<< /D [ 707 0 R /XYZ 78.37 808.885 null ] >>
endobj
-705 0 obj
-<< /D [ 698 0 R /XYZ 195.137 216.362 null ] >>
+189 0 obj
+<< /D [ 707 0 R /XYZ 79.37 510.366 null ] >>
endobj
-697 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F66 392 0 R /F83 702 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
+193 0 obj
+<< /D [ 707 0 R /XYZ 79.37 470.861 null ] >>
endobj
-712 0 obj
-<< /Filter /FlateDecode /Length 3400 >>
-stream
-xc1 GִudxF6ţxCݽM#u/z_ޅx4p/E\`?/]9ZbIk 8W owHz&5<ܚwmVεȠ πsoSr|9B+?pD8?8¨2@ZMqs9׼CpL@)[
-6^DH >IJxJ<Z;;Ӊ >%'k햮@XG*6%/l H7 Dv#;V
-t ,&`=;Hi3 vm'[Nv4kV8T%iM:UV3AaAt:ё4ߵQjd45l[/ iwmaj8&$*3`gJ=DD?]}ᑜR
-zJ5ғ6ʧ'd;L{f1]7v} XLy5VK
-+]}.Bb|8m?9 賞4YAM!.a,Œ' Q1A-FDQrLNA5;q3/KJEάDͼI&޴ϠfOk19(S(Ki?Q!L
-}U"r% O$Ek{\)5ņ9`B &| ƒKE(h=g:kg-50m{Su7Hq#Um39յP%嘾Vb虰Vr< XLD
-:Uji39lV
-\\-XCi,܍'g&`_!fetnpy `1nNvfT=T
-Zqb|b\Ki l$s'hL6Z減urm: m zׂ"li8%Zn\zZRv[eN[9ڮe_ Ǒcwzj[J1 :7׮<xZW(jj4+7)L#
-c Bl0 kn`SMIEfk7G\yC>Gߥ U.Wָ:7cHi(Ҕl8!RV l)DU5 !gf#0oUO U{\81VL /g>=}^'p6N>S}kNAAp ?AGST),[cHcnRcWd+_
-mm7ϐpqHQna\2q$^E|0aƜcw N#M0x] Ȑ7|0}}=Z-g3{SS俶`_pҞ«MVk1Pڧe{o1d~p ]s5|vM;f [۩<
-Pũ1ϑeirf5}sS*cG%0zO3!XQbJbsZstn"4NmJ3
-M_]kֆn.>WL=Z ܌z[ó(~Lem)'j[7°V^AŠn:h;8uqkއ
-JAY?59ޤCaSőCǓ#Q=tpM G=LJA G6IeEc~ԒU·4q`i1{`~&pdIˌacЀXgrheڶdUSft Jpm:Oh%3
-0hC[D<\M6c !
-*izIpM>k{~;bzj&O~`z)fmĬh=Eh9C{g8:JV ^/34g3v#xx@.Cʟ4_}_o_VwL$F@36ƍ&<
-endstream
+197 0 obj
+<< /D [ 707 0 R /XYZ 79.37 280.819 null ] >>
endobj
-711 0 obj
-<< /Type /Page /Contents 712 0 R /Resources 710 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 714 0 R >>
+706 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F68 406 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
714 0 obj
-[ 708 0 R 709 0 R ]
+<< /Filter /FlateDecode /Length 4561 >>
+stream
+xڽɎc_h,@m9 27#''!
+q$Ș~P~0I[ۃVZ]H6sHjqAL6H[}M,IJ3,g==V0 _RJWCJ9TobzZ4h@O@hdYE
+l\'tk$ӓOn$'I}*<Qo-~C;.Mfg gC`W11Ja5b&g:Fn:Fl^IfhĠ"^~L}@OKQ~<bK
+f4fŦ6# lg֢vqLB.3wqhQeQ6
+"kEKҧ4|2>7Lj2Yݒ-PWWYiz(!UzK
+/`
+IuøQ* 3NYeӏ𢶚W>l'!T$f?O+wvx#
+GMC
+x0Ufiת'
+D@t! tQ,w./_./ X~y/_??e-]k8_s!6Дy_;^[Ç<~oЈhFڄZDz鸠w(ި*[ՒU6He [<,=F'Оq{N|G@f~gBe`cmT@M%J%G=sԵ
+)j8u}-}(F r5=_K28ìi'W{}9_N5;5Y*}un?a$@oo('R:FO,CzK[ݹ^kQjg6P!ko]yX2 ^20LOUۥw^Uft,2qj&=GLԞ
+R{M՘k!p6T)6A:4=s!D Ɠ[[`Ds$5)iB`
+<*ׂX t)f3b~ PJxG? Y̦ h(CȉU' %rWϯʜ11#^**C0[=W{`A7tL)R\a\B);X<1pP^}2Hc6oMFBrxҝ8<xGny+ hr췇t[sfIWs3K=ٜ-̭5ghdh[ z q#|M0Dc{zR
+PҜڵaw(xCíևm OU?#`wR;پ1n)n(XRe=T g"kǴ&wKsI(ni|ouvO ^B$TmĘbڒͅ4XWDLLM_jcs=Z JE餾PO$LJ
+"6g&UT<JJݱf⑆KYeu`nZEHD?Yy=/=2Z:z`%Rǚ(S##9s@8Ngrq!+ oW@hɬL1z} T.$*جYStħ7P=mOO
+Unc<U:C\4bn[@͖վgAiHn‡d:6ήgM#D><g&
+[v!;/B!4mO:/CkUxOBɂE@jِ27̫t{FByFzuFYNߟ!U4CQNx)s`̴bRKCYT
+s
+c2^[t={E'zٷSiU^}ś-sLr?N哔[[,(jX~U#ZCPk錙dVCHb`rlOwG6K͆r^1dޑPcc3R2 bd}!R\tXWZmѭf(
+F>KSyi'DCStj3L[whi-¡࿫Vl(7)M!9uuca8ޮUJ5nNmFt7acr%WBoVK=Dژ8Oi"ܗgE@>-xt$a:{>4)b
+endstream
endobj
-708 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.818 433.35 325.792 444.299 ]/A << /S /GoTo /D (table.caption.1) >> >>
+713 0 obj
+<< /Type /Page /Contents 714 0 R /Resources 712 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 721 0 R >>
endobj
-709 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 342 433.35 353.955 444.299 ]/A << /S /GoTo /D (table.caption.1) >> >>
+721 0 obj
+[ 704 0 R 705 0 R ]
endobj
-713 0 obj
-<< /D [ 711 0 R /XYZ 78.37 808.885 null ] >>
+704 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.871 711.985 441.844 723.94 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-710 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+705 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.583 711.985 469.538 723.94 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-717 0 obj
-<< /Filter /FlateDecode /Length 2641 >>
-stream
-xڽ[Ko8W{(D T
-Ra(rU x")u2t]٢nA}W4Ihw*6dv)qKN[:tu=9ISsE잦os{)727?nEl ?ݥbmb܎)"Vs#kS і ө}ׄIۂ,^n.Ool.w:{_ğ_(.RF,~z#VY
-A^S,JXuFL~\2pFt\kfޅ bd5AFI3=BC%Q29 SWA.:/kI
-j0 cjђD)X3V
-
--ZXT(f€cbb ;ZqY`xhfZ HaP0S?* t$!Z9pd)grtG  >" 5Q3RygLjKk[t"3%ʲwŻwꩌ -;6IƸXqՈi$޻
-'m~\pBnġ%NF )J",B`v+=y2 d#<!?KЋ-.z
-ִ2jޏqa
--U\xC ~Xf?_,~.(mJ&\~ x׵c7
-+vCw{㲽#Ҷ{"v/i`ٵ aD
-QJ(NЙS
-Ā[m'@FQ0ilSIA=c/t!Fd)2okDV:9)#jL*𖩭>[FcBj>Aʚ]\t:H$#AQv֑5@/hsx-mHjcVRV,,,Z+ WG 1(',Zad$ӵok$,zڝR.:n5y0I@j.[%z-@u\ߚlk;)'%'zsč,B[iSGj(`x\qt>a AUTC 1:Z6>qrDM<b\GjR@}BI"qwO4p|PX(e['OiMH&{x:.W~@aYM uI.Y9[lb!UqJ,# [^[?;l^QmVuWo(hxX}d*E4::V#)f+fΠUޚ@*D<*)ANC-Y#@WSpvAuo
-UNތ?p=u<ܐ2hoj]\]!SK#^
-w"*cA4_OgHu]3+\Ԍ$>obР%(10x1S]@Y|b>NHNq\t
-endstream
+715 0 obj
+<< /D [ 713 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+201 0 obj
+<< /D [ 713 0 R /XYZ 79.37 771.024 null ] >>
endobj
716 0 obj
-<< /Type /Page /Contents 717 0 R /Resources 715 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R >>
+<< /D [ 713 0 R /XYZ 226.44 466.559 null ] >>
endobj
718 0 obj
-<< /D [ 716 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-694 0 obj
-<< /D [ 716 0 R /XYZ 79.37 777.001 null ] >>
+<< /D [ 713 0 R /XYZ 232.109 454.51 null ] >>
endobj
719 0 obj
-<< /D [ 716 0 R /XYZ 252.318 696.183 null ] >>
+<< /D [ 713 0 R /XYZ 195.137 421.708 null ] >>
endobj
720 0 obj
-<< /D [ 716 0 R /XYZ 311.994 696.183 null ] >>
+<< /D [ 713 0 R /XYZ 195.137 411.536 null ] >>
endobj
-721 0 obj
-<< /D [ 716 0 R /XYZ 368.632 684.135 null ] >>
+712 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F65 392 0 R /F83 717 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-722 0 obj
-<< /D [ 716 0 R /XYZ 300.238 672.179 null ] >>
+726 0 obj
+<< /Filter /FlateDecode /Length 2643 >>
+stream
+x$-DA[ΑaԻgǑ٪)IQ?6/77ϼ7 XY#7bƹK{yU|Ÿos.q 4spjOo_
+mTxǔv#'L װ_zaǰFk>hƏ;&&^_[a7ze!uB4Z8y,ږ=eHKD.oY
+k34<2}UeM9
+,*8@Ao4YKSi' ~{';Ͷz@ yyB#h,5y2`^:ZH+04Rj ϞԊ)^4iPZ&tM0&pRf1hAO4.R ,s-L76V^#:e.EhgaaҊQ
+p*JN$<!AtL)tBά)NhЌuڍbѮ^0fe
+m0|^Ψe~AiQ
+δ9ү<5qI[k,Pߏ<ào3Dqx92LE*u0MΊ{*
+ʏo96-ܛU3T{Cͷ'>u8k֙C .xz5Ɍ/y9?
+ߥJŞaNr[Fܧa^/[{CCʵj,W*!4-AV0呬T5qO{|ܺ?7rFW5F>s!Ãq\כݼ߳9=$1LyuOcS+6˅iZK+WuesBa8˽_F{i}0J=
+sX񢹧 o3Y({sF$sWk-P{w'UiH+wV!{&E^k852˽jX'xb GAZFo܂Y6]Z_y
+|aϧ@)V"`f"v &ɩ-H퉞2kGLncZ'7ل,~kelQ
+u&4\/T {MsU/ ھw7W̫(tuSԌRj3Oy(4%?-*~gf3 S0#]$EMY'2J/w-j4^ "׭Zga]&ug9UnAF5` Q/j{MTY%)k :0-yH =呶qY#'O~,<".:cuҨ{[BOURs[|kCz&<㤱ć!_nmB0s7 0>-Y[1F~FPrugbۮCm2Z/RoZ7vvёȬдzNoÝ}ڠ`3YCB‘.E>eP=ウ;|pvt$of sY!%>!%Oup\,fnڶuĦci\wM&ǗFzt,ߨ-!q>jG{fnP;1ϒCAoA>$=}6ܧ)졏H\ծ
+Q~?Av ,+g caiMG,ۃk}9V(Q
+endstream
endobj
-723 0 obj
-<< /D [ 716 0 R /XYZ 202.495 615.476 null ] >>
+725 0 obj
+<< /Type /Page /Contents 726 0 R /Resources 724 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 728 0 R >>
endobj
-724 0 obj
-<< /D [ 716 0 R /XYZ 202.495 603.412 null ] >>
+728 0 obj
+[ 722 0 R 723 0 R ]
endobj
-725 0 obj
-<< /D [ 716 0 R /XYZ 202.495 591.457 null ] >>
+722 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.818 632.603 325.792 643.552 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-726 0 obj
-<< /D [ 716 0 R /XYZ 202.495 579.501 null ] >>
+723 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 342 632.603 353.955 643.552 ]/A << /S /GoTo /D (table.caption.1) >> >>
+endobj
+727 0 obj
+<< /D [ 725 0 R /XYZ 78.37 808.885 null ] >>
endobj
205 0 obj
-<< /D [ 716 0 R /XYZ 79.37 543.562 null ] >>
+<< /D [ 725 0 R /XYZ 79.37 302.884 null ] >>
endobj
-715 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F20 380 0 R /F83 702 0 R /F58 390 0 R /F69 406 0 R /F65 391 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+724 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F55 387 0 R /F50 378 0 R /F68 406 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
731 0 obj
-<< /Filter /FlateDecode /Length 3558 >>
-stream
-x\r\ + RjMUޥMVm&>ZVYd!ž@8
-p?m=`}A kLwcw (T8M|ҨH;*68RLW{TUXyq1fyI&x0q4 f [{-]-lɮ7M5
-UH#**
-5E2DE}i>ۑvZH0%mSp9}4~OIklOuUkp򛱯mș4MjaiG(A
- 긏g}$BTﶥgm?ȯ EhkzW~Aսпr
-ύ6: *PކNl4n-ҥ԰^^75'8(Y'eHays;;}wQ r;אW+?ۧ|9_oީtxQSry"<*
-<MtK!fOU
-s=ku|GOwA '
-}"ES?WjNwkn2ܒܽzR+-`|Q[g>ኙAv56-.'Ql9=n61E^tl9ZQ֎qK{έCTC}A)¸|&֋
+<< /Filter /FlateDecode /Length 3521 >>
+stream
+x\;WLh:*e,3S)-%ߍw`DF
+; 4~|OnLm8͵> SNSќh__(
+(Ri)YhOoϊR撟kW{k?k[)n SeKld#yl%>x|A_>_Ĕyu#5}|!#;<Hv~7X;9Xv7MVaQ[µ
+{'w {##]42Z2n`_52uv ?S|^%[<4SSS1d@6l2ZhkkFE˰dkxj,0'$βM0
+Ln#?zZ75]4?RX"5_ X7XqӄYuF- R
+G
+,u
+eDIYmcR6m4G -&P[vzN$(> h aj<c83c%Bd-/N GDC^={DcIE޲Te 8TI εN: D@NsI !}k+(Z}RV{X,+ dpjW`ifͬ=KC9o`Å :@!i`%Teb
+d<]
+FXQt% 1ɓ-Er d vyf73<
+]ͼS>$܏J<~׭eElNatCBZr{kAbmֻQ9(0,.ZEcy$nppT8Nt<Ԍu76 +fAˠcpؐzN#Vm%QTlRgg
+}u9:97u͋ΟDg!TI7pEǎJ(YږhJpH N흵N(f5gD]j/7ü.KOK6~݁63Zyc"ҧ4vULrdݙcZ7@>~с| l ^Piԧ 5v5<Xn9_1\ͽ@S4O+@IO-kM`ybyV en "=N5}cvx\L|1Ds" *E8Mgde M72/J9`9)&`XNw󑲃W>L1UJQry2ma{#ð7IW٫ӭ&'
endstream
endobj
730 0 obj
-<< /Type /Page /Contents 731 0 R /Resources 729 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 733 0 R >>
-endobj
-733 0 obj
-[ 727 0 R 728 0 R ]
-endobj
-727 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.105 201.659 483.078 213.614 ]/A << /S /GoTo /D (table.caption.1) >> >>
-endobj
-728 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.301 201.659 510.257 213.614 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Page /Contents 731 0 R /Resources 729 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R >>
endobj
732 0 obj
<< /D [ 730 0 R /XYZ 78.37 808.885 null ] >>
endobj
-729 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F65 391 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-741 0 obj
-<< /Filter /FlateDecode /Length 3041 >>
-stream
-xڽ[n7)ZBm@ 4!P ]n$R/˯O|=7?OqikF\~\~rjxɂ֎\=G>S`p̳0¹5q_ڬn1 wε/|ńùqHw~W6ᑗDu}l4Sv))k-#pvnrZG+2*)h<YcҒ_9X ) B,ӉL + SZN;\}<2MRڍ. ią2ͧ8/PI2waH@dI^ #GH5(aXPHŢ4J1ai@ԛ$Y ˟h5߭Yޭ0iGz),}[kI\X&.;gG222N:rFlQq2r"p$QGsq~2H߮-I|QerqRu\ O+FAT
-=CE*ZѴݡ-sxzv9BVfk?KPȢ-.8PWC`t5ہ"1]7t ַ'J/ :ߴ|@}BE]8hOl@NCRGfsA&;NvA!gcQa9_(Kcp@b9C/8ӏ5ga)6x9zL{3Qgһ[G2PZyZ%Z?|dV ӭs}TvqM:ZP )(`y>I==DRqM'HA0-;3t19IwmX ˸UB.F }ƑM+3 کUN횳mX'AKG (re/om[T(pŌEml sRT g=fm<m"".]VRz ~2Ό2,:d9>y4?Ev!R1@%l6\{;QЌ kn܀{pݶ1YVOvbX]PGjѭulHdBK2uFDsk&${G&m7,4Ls}<83ƍY-,C>1 $xRy̽,V׌Nq+*˺QT'!B 4>fǚ #Ubͫ/h+nR"$ C K*oi&h 2>}
-BxmqV+=p{Ĭo;xw<+x0K Mt9̹%k=V@Pv"B/jCv,U(Zʞ8&
-ѭ^Ղ2KkƴyA0$;X1 0۶>
-%9:ܼ/ *fAq[OwyRy'zI&{y+*\[V-ܘ7{k((x= 7qL~cܒ' 4_`jU{""@ UQM[$3 Tj=0ϣ8!@ŀjke J&\M(9W0@z-I;gV9SsBuЦEޫDM-a4P.]Y W7WgkK| w^HXN+SֽMW?mmݸWБ6z~Tu*}ZU@@+Z#<ct'x
-,?t5bfMn~^xsgV=8aVG&psCY WNQ bPB5apspGw;H6ão:/C!Vӡ&B.e2SJ7TBZ?ܰ򥇈6qwg2#k9{J9~%;0;T#H e,ӺI[>ۣd-Qe@Z>JD#%d6 4U
-)p幕W)_ۼ||R
-=قj $p
-ިSP{K]@{:]Vj| 05CmP 'D58Jz#cyTA]n@izzrM(ǃIO̬g]}} 8?_\opߝy<yj|,JMIrߞ 7\g ̈>#Fbї4<9( ̭ [Z
-s ;"
-nr#ݹ wRZ-;}+ixRo<_fq*<E
-BMAQפ1_L,1XLZn=Z~"W8 3MdPE4>+I_~Uwb}ʠP}Rkάfxg10[C_ r"f^䎅i59Ng U`@ϑ=,)t[!Hk"4`Ĥ;jX݈] 68f.
-endstream
-endobj
-740 0 obj
-<< /Type /Page /Contents 741 0 R /Resources 739 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 743 0 R >>
+711 0 obj
+<< /D [ 730 0 R /XYZ 79.37 777.001 null ] >>
endobj
-743 0 obj
-[ 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R ]
+733 0 obj
+<< /D [ 730 0 R /XYZ 252.318 696.183 null ] >>
endobj
734 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 343.619 566.849 355.574 577.798 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+<< /D [ 730 0 R /XYZ 311.994 696.183 null ] >>
endobj
735 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.706 415.94 449.413 427.895 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+<< /D [ 730 0 R /XYZ 368.632 684.135 null ] >>
endobj
736 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.134 415.94 477.089 427.895 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+<< /D [ 730 0 R /XYZ 300.238 672.179 null ] >>
endobj
737 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.914 302.996 351.39 314.951 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /D [ 730 0 R /XYZ 202.495 615.476 null ] >>
endobj
738 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 367.111 302.996 379.066 314.951 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /D [ 730 0 R /XYZ 202.495 603.412 null ] >>
endobj
-742 0 obj
-<< /D [ 740 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-209 0 obj
-<< /D [ 740 0 R /XYZ 79.37 548.523 null ] >>
-endobj
-213 0 obj
-<< /D [ 740 0 R /XYZ 79.37 389.026 null ] >>
+739 0 obj
+<< /D [ 730 0 R /XYZ 202.495 591.457 null ] >>
endobj
-217 0 obj
-<< /D [ 740 0 R /XYZ 79.37 349.74 null ] >>
+740 0 obj
+<< /D [ 730 0 R /XYZ 202.495 579.501 null ] >>
endobj
-739 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F65 391 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F71 419 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+729 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F52 380 0 R /F83 717 0 R /F58 390 0 R /F64 391 0 R /F50 378 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
746 0 obj
-<< /Filter /FlateDecode /Length 8392 >>
-stream
-x}K%Grޞ,ũCh4˞ (BhأY?Y̪:%= 7ndd|_ixfJ7ӭ.5n?%s\o9%O1.ow͘
-u 1P^)󟍁6gl%G
-B7|\;%;O~۷&V ~[+'9H_\o۱O).9KK(?i: o{Du}Nz?qv^1HM^u/~(íiC=;K&$h~6UGI%Z5Z%ۺdhlbkhV(|K rgi Z<d[t".xDh"HbbJ^IRb:[6//xXVK7g,e):RRÒbvUe "Y$QL$a`?? Vk/7?`2Snn`[苻}
-ݓf7HXV~B(8.i+nڤ|4:nC
-M?bwOrjv~P(?@tk
-uDaEeB"d ]1$Umޞ$X9h;iGz
-&`tHsB:
-19dMh?zo7]Kô1G#
-#Vb~{-CVGS6dsc~.03m6
-k>?\`!}X> IY%m#n|򵃡6f^u{:{HEwwur:Sqsig@zfSƸV(ͱzx#n5AA=&<ɨ,E㌂_d!_7U4Ur\ŲZ:S:WLuK(.ж^g0Qߪx-N$he)be
-twSӠ}M?-4'5:M
-=tWn8:~[Cv2h6|wg?HȯgkWA`0u<uE0q& <Լ͏KvNM< fbБ}ѭG[vXcr협2?U+3|U{${W%9ƛTրpeW<"&;W+#uϛ˜XÀg"Lqϯyg,ʟ8}:S*]"
-5.^&{7?j>4 #XE$Cc6NYeNo-XP[`]>uƷ 1(ۇ r$3oV[uW#P 
-72{S鰫#.bSMxwxVUɋcH'TmJ81={ӗa=L g:ƻwm8)NG&ޕivK&MѾw[(5q<l{'d{7p Ϧ5p@b>L.5p6o';ϯk%r22m8V-<ԼNpҞ{U6-1M6~~D6~D-}`j"$r܍
-Tl{cG7:Z|"IP~o@t~+GIA6tO9f\Y6[vJuz'1_K ~9v=zKG]{*$SwdϬC?)ާŸMi \ BԷft4"GTM yxY,eo߾H0λM5"H.1
-/;YYud4kvJjLIlJ$Cg¨S>* ;Pc] ki{x 2;tAr/6'nayr㭜NBtf9uexwɗ*F/L鷮v%WnMLf'
-}X'V
-2/<g0 y9<oz䬫r.g qχM);@biVKRP<J̠եtTQG_ےdHwd?hChen6%寑Ug{>7'—xK&O⟴ϴRڞM+!X?,-zU'u9٤uMZ' =ę`vvvm~kyBINNR/Kco[{}
-t$EmnQ$@MHyλfH( &)Ss,cCXDrUxX7J=T}y4z(xŜ}`k<pzaC [3 1{><bp<5=0 Q#b$zQ>h)X8G=cZL.v+a9EؕG)qɳ}`K<p~zbyNf|EC Ӄ5ªlHCZx\H$iEFSG"-탇#X#EF-H#-㇘QFÑ83GqoԄ B%:0(7_z[A1Y+sJfӲz$&%ї(
-
-6,i5
-zC)\ێd̮UH>z1>ZeM7JJh؜@lj= ڄBҎ
-. ֑1]b9%rs Z숃` ^)mVZJx<G~0KЖJ/, Xa!;haǴ'Ѣ
-xƯp,P@T LTSCN#- f՝)pcԒGEmvzQEDXLK O^[մj+qFFHѣ jwԊ CMxeTP^?v<ܧ4jD̶8*=ѣD%%<lNPsq5nnQFP^6C!' $)DkGn@Z}`nZ$h)as!ac#N8c)1Kq<gP18 .^*“5%R()asaDO kD:`Ҏ_&uOK*#9'8 P-hC\57VdbmB۹F x4C<bэ*V i8KlꨘDq#Bö2g:pމ@6`eTXsX`@(Uݏx\02bmT-x|5=Vddnӣ*"5XJx9cj
-#iT1s@-R()asaEQ sD2*D8|D,CaG
-K6yOaMۮQm~\"
-iEw9%ZiY
-KxSb"nJ]'; T*T8c)A?!Qaq!<2!֍z_{D",1ZPŽ[ڠ$RECiǁ1SXߌ`AT, %D%`H̵9%^t#䪘C6Pi,*Ƴ; +5m?2
-GdU1#)5MmOYT8h2
- ^]_"e;@m5V^!̺ejEI;x9WM 9Z74$N9sP1ᡴ
-=s Օ9%^ak s̰wJ! *M}E#!hlRpb*.nG^ 한)EI;ƀ9W {j[q+,QZAm ËiȆՀVY6)2}X\^ I6, FUI&
-Młf\Odi٦.RRBd<$>HHO
-=OGxUi-MLS5;2ePkZUp-y1BC iffY4ת<&E6ńLL
-@8*'b#+<>32+xB>kJ+mRdAܑ)̀]ժLn댉>?
->i>1EJmQdSZLĤOT )a _HFu]-L5;.eK'hjdq|ZLP,hʯL~ZڤI!@rG3y2sC1#㥀ffY}m1jGX40 xX|db{^LLP,<@/5*-HIi1!€>%jU)&g2fb
-?-&h1kmRdUZLĤQQU((e)}xW!>xZhj/QL79HנoSg#2{OGĜPmRautcG1E_Bu[$q)Z"Oy(zzk;Oa1 {0unS' a^1WG{^mV%P/\M_V|Ҭa2hUo5U#\0ԧm*%=:|j+Ƈ"ψޑ1o`4eçoLc4qϯ0wYzVbb}dzx"j;LR ڛIY_L˯e" ^lcχW``Z!\[(O,SZ9G +=
-1I=G
-#+r]c_~v;G EsAڱe y-~^lrG3?T^FJe5xPn Ev¼Li<o#4oث`GM'y]kBY Ta8R:=_ϓp(T#_2&z|**psoG)9݅mX'<BеC*yg,zs#&l#4u{2?@s?՛sypT瓲f}crlX(/ ע`O`w}iϝCo]ϬΝԺm
-"#CO{ DyZ9sjko<D E~A|%`:q
+<< /Filter /FlateDecode /Length 3378 >>
+stream
+x\K# DFz[Si?zPz̡v")H_}x~{.3o˷?q\1b`܈˷.\ pn|_}|R?y8
+GK_?O|F284O`U3|Ii&=]Wì6$U (3kT=qa8IpyĐ}\ ]yJԕ4 N1i('i0P udNM/V pI|Tߏ6ԍb*4`߳D@ ۷ d
+Ͽ ae!p]|[O!zblƤE%7>:(1dimfp?&"GhG[Xu P`­B8d=6niь/=$Ʌ!\F@$~kI1(&Phr|N#qz t'FEHiY*YYx5iy]`²+TCkTsHKK:%U<ٶ"5$/%Zk+I.1pF|XN5ӊ֖%K>":酸Qz- |y+YxkoqqHB&NkJ$B{#'0U_lhVUBVTV@%*I6yɮ_
+fP{XLAƑZi^`iYCn9h pp59^KT{+G4s@.R3D+~h* (84 1 B)V[5uvKK6 kŠyU/̰ ҕ\H#?3= l5E#Dl Tje
+>X6.24;a]滁/BP9_ܗi rmgI=n7x0pNR n x`F_YxCmB Y"vDj+P;wjc OB1c&K݂Kqz8r[f4&#P;fMn% X5+gz#0}KW`>i_̊bR1*obObQOTa3ym<00?
+nk8JX.rPƇڇ+n址Q/Bk@QcKJ&=UnM'DzBis|k~F
+5S1fkw=dLh*i1Ý86U3K C3gũ&V
+u$5/q;3)F>|+gtS 15xXCsJ
+ T}kD=lǎb @uLy3T\Hlz|+c fjʺ&B*K"FSg ߂7ʶYk;]Q+i9i]* Cuħ~79k7cWIƧoT[RٮatWm1<6e@X ڢfPp)''.be)|u%"N_DSq(QtpZ,񘮘|g
+*f݃Zae\ՒjPz],9%tݗ7ċ Xu'S` 'IP-9 2Xia4Qb^&Emt˖R4.j|8烗ԡ!W6`#e& {=hS'N;Z7ήlYǕ~ġe~7R'ͭ
+\k-4شxۚ<tڽ`&]=NZ\f7FEPU
+{}Q(=N
endstream
endobj
745 0 obj
-<< /Type /Page /Contents 746 0 R /Resources 744 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R >>
+<< /Type /Page /Contents 746 0 R /Resources 744 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 748 0 R >>
endobj
-747 0 obj
-<< /D [ 745 0 R /XYZ 78.37 808.885 null ] >>
+748 0 obj
+[ 741 0 R 742 0 R 743 0 R ]
endobj
-221 0 obj
-<< /D [ 745 0 R /XYZ 79.37 629.659 null ] >>
+741 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.105 408.882 483.078 420.837 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-225 0 obj
-<< /D [ 745 0 R /XYZ 79.37 459.482 null ] >>
+742 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.301 408.882 510.257 420.837 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-229 0 obj
-<< /D [ 745 0 R /XYZ 79.37 275.636 null ] >>
+743 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 343.619 76.687 355.574 87.636 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+endobj
+747 0 obj
+<< /D [ 745 0 R /XYZ 78.37 808.885 null ] >>
endobj
744 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F69 406 0 R /F19 383 0 R /F67 393 0 R /F70 407 0 R /F55 387 0 R /F25 379 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F22 408 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F64 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-751 0 obj
-<< /Filter /FlateDecode /Length 4821 >>
-stream
-x]Ko$WF04`Ʋ 8,7'x*fwGZI1|HW,_9tBoh~xգv c)w [#,F3B5[>~Z~xG
->~JS>/(x¯ T^Ë} 1KHHGvA!,GGZ(fGK 9{n᳸V%a LX@%/Pgā;PU{n᳉PΨٷoĦGpˈƺ'
-}ذT/]]? !<k#/< 1$(
-^!]vuaq.ߏb8hIcTn|=Els9'dW9BIהӾMh7lΫ?hC4s?u=J2DGkɪWפ}-1mPAy.O
-~(_헟.:hƯF~b{e*g *h3^ƍ{NT`uA@ _Ǝi9Hpj$I/0 < em,?yo>VR}waϟ~]
-qT8KIFeE8r:~^0L WϟQ;!X,YܡA@wn@e~v1
-I:V,XtWe%OƂ7I`
-bp@N
-LvjkP*o
-X0?kB=UOmPS"P9ʚ *bap"|{O: bN{-p5*FopSM(l[;W*?5aV7Yst oo'L<U~2=J&Vx^
-y#x],DQW# R`
-)QCiRFHJ 3wo- q aH*yݘ4?ř:JNXBM __!2uBS26qϸ~+ah94>
-=K[NXžL_!&BR~2"1)ƀt<}<>5'Z(juQJ/:F?YD~!Z:ǚBb™+!$,%,: {.v9sCɬcҜÔ{nq*b5\zmqTmv?Wzxr#=IG :vNajey]D;*JxG;EIe#"{Dև< O D<#5xit"pvDB53% Hb$S⢘E iFP^mZ!cP|(Qbfj*F hx?ѰzG$)S iԋP ׄ[}Wb(z $A
-l`G@1 #('\$EESiQWۦ&½60ʳm$b@~1OB0)
-&Ɲa)J0bcA(P f8
-9
-RFC8' vЏg0Q<IX(bVBIn3=
-G[Gjw[ap}[!_0ӷZUV?nW/5荴''vIW%Ԛ<
-\R7Եf
-滜Y}jDs\$ju2\k Aژ (JZћ5an\_.ѵ{n3,K4K `eM"}ש'Wګ 76ݑp14%pmAؗ+
-[kDgrzUR>CG|k+r&IBUG[UF0ȇZʹyOerLMuҡy)gN!pE,gb0<{كz:s7z^A>1{^cl++jlf
-m@ZVEL|(I B&̓
- lqAC#sg4CC*]Oz16[0z;g]1XӏSlpƙ:7{?2em~G2bK}caH7"
-~(:?7CM'P;??? B3@
-a
-0{~(g97<Ÿ;
-?;
-]e(0?wS;7>2@+ xԻWP` P;bىgKNJ0h*LrX* l oktkV8%SaR##CϪaЋsbzkB9/3 y6 $'N3~pƴ/QsphӮ_?70wt2*<I[ᘔvox1'ĄjP"ed]$MIecʔWih|c*9z!fx!/˗OSG_Txx 9R MpdGbB |,ibZ?ڹ ).-Ld6}9 H[\؊zYO%D|m2<&ӓZ^݌|{3V:{o5 C+@0LtWL =#Tƽka Z1Ĺ3J%q6Z~97V)~GVg3=.} <B s'xWx}Q?- &eCA ^a "j|!]B~!SCպvP!|< ?Ȳbn30 걺I]BHM*<)1ܖOHIx!s•ٻ
+755 0 obj
+<< /Filter /FlateDecode /Length 4026 >>
+stream
+xɎc_A4 r0|2`|流c#ZY*z/߾}^ۄ`^ka?? ob)Y#7b{i Zrn\?Lq_Xɷe5Op8p|y8߽ 
+?_{?t.j+JqK\%KC]O+'؈ՋЛgH
+01RVTS=qJ$ί (w*-SCdʙ1۽A
+LUJ:NEmw'x֋,'hEv4--]ZlʩSRB<&56I,鈑jSY),Sn^
+M֒E8gwmY̒l_Gު?`D +j@A9$k%N<",a> LY5n>!JTXhCҨiS jU cт>y"P5u5LuG 6
+wG)Y "!-TkI/C̉M sU2܊a*ba'UudbdF0lГ6Қxʟ
+CwC588r}]+xESOd~19KG (%cwV)A^;rR'J'y5$gz^T; \μ#Fϩƹ*{9˸w_*'7kDPӵ;r
+6}K=Ei`bHoHdZ݃
+K$:i!^Mk |ok,4ߕfp_̳K;L<Z0ipocIhRke vL:Ӷƽ*/U5-My?pcRޅ
+ L<A1co79JU
+K:Lhq]} \zN.yux/Va J8f1~߭ah7)@x4n v:uxD8a:"0mh8(a%f34[. h1J8-ekMXX Pƃ ъ~8VXXPB-F +WsZ'p c@1\"[Q"YVecNS(XGxcnN!crL;
+iBv\a<MϳVwkQV#-y>)fxOܜS>ivj;o: T;d41^TҪJ^ Xv95
+͒fZy?j8Xޫ z8.u]]%L[fːoW=[^01׃*|irόw_[0_Z^?ݞ<Ls]0z^*os`SC 5bLw.F->fc&+M h_4d%K&.Z1gyL96B&PVC_Hײt^ϫ%. HTG2,h>`XВRݗlaV٢?K/I[lܝE|Uvϩ$+ﶧKMduPB5}TAFH`KaT 'm>
+IAѬH7e-!K_kH7(.*~8;.eQ@Ph*A9h/A3𡩣/~{\,4GUdr ԮFS(XjF2j:vz*`qo~y
+]aL7݁
+.yv
+t-&.RhfzNO^@{l{hs'Jsl݊a_'
+OXp[~f.Nox@2` η݀PE#AԕFs#|:Nd<zYH~c#|`b&F%C۝ەCc!uFSS@<2>B/I<^/v(ġ;B&|MZP#TQC<uyZ1"A~{f=[;yS3\\L'͛|-_9 xBvF=y<"󼈋1{IE4pDYb\Tinu~(-^L~Ɲ<M0Y i=#+25My.d?w[p 3?!RL|~P! REe1'^ #fǣ0S
+~#H]' NWq43[V@ 5v#!@sVi=8`>3J
+O
endstream
endobj
-750 0 obj
-<< /Type /Page /Contents 751 0 R /Resources 749 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 754 0 R >>
-endobj
754 0 obj
-[ 748 0 R ]
+<< /Type /Page /Contents 755 0 R /Resources 753 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 757 0 R >>
endobj
-748 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.709 67.03 251.166 78.65 ]/A << /S /GoTo /D (section.7) >> >>
+757 0 obj
+[ 749 0 R 750 0 R 751 0 R 752 0 R ]
+endobj
+749 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.706 638.899 449.413 650.854 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+endobj
+750 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.134 638.899 477.089 650.854 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+endobj
+751 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.914 525.955 351.39 537.91 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
752 0 obj
-<< /D [ 750 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 367.111 525.955 379.066 537.91 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-233 0 obj
-<< /D [ 750 0 R /XYZ 79.37 771.024 null ] >>
+756 0 obj
+<< /D [ 754 0 R /XYZ 78.37 808.885 null ] >>
endobj
-237 0 obj
-<< /D [ 750 0 R /XYZ 79.37 326.887 null ] >>
+209 0 obj
+<< /D [ 754 0 R /XYZ 79.37 771.024 null ] >>
endobj
-749 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F20 380 0 R /F18 381 0 R /F17 384 0 R /F23 653 0 R /F21 382 0 R /F24 753 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+213 0 obj
+<< /D [ 754 0 R /XYZ 79.37 611.985 null ] >>
endobj
-762 0 obj
-<< /Filter /FlateDecode /Length 4622 >>
-stream
-x]KWQ: $/lGI9|arNx^Uj 3ݕH 2J~1A zoff`\o~4#+ _>x 5%en`Υy7ѧWOsOC1 @UT;9;*>\?}(pt<*y|jW
-} CvY$hf6M?N<t¾0vڀ&;_Ⳡ ^.u?<IT~dD嵌u+:&ތw5'ٶoU
-G zn˥ތRv&LY9HgET'o|~eB6ˡJ&0:ѱ.`V۞Kv<„Br `JUZ&&8x^fYyJ}~ "ex,>"Bu3B0@%hĂ#czqȐwnlVв_Ӷ{g2d X`Ogp• |"T % GV[XiպրWL{ %g7d'scɤ 7m{CaaĈ)exЈm=#ia786 gR0 %ܶcNP5P(fn:6 P0cC*5g.l:Ƞ(f0ZWz<.U Os>Fcys "p|Kh'%@AN1b8}j
-}yFLr{! h&9a.dk83
-e 9l݁D(63|\=D~Q?ťw%d덀f_6⧊Z0.-rjߟ}w
-0E9zS'⠨~_QXCL /e.K/~hbML]K{wĭՐG= W^ (}iW}\z^QP{QD]K][u?b_r)kI܊ f CQ[x@DL\Y@% yt4$m]fF.ºU^2/WQxU2e-([Ö(h%*"oG[S_5(
-fy
-ٽpX[2=gJF~1쀤'ls<\0Ӆz>̵uY*P;,ɲ ~|>@% G
-w E8\o,6)x|9&&HM`zZ3!fυscvAkʝEwpْrNE}vwL3uk23%Mh<H5 qۡM8">&z!WN2}k.4.a,Y$'wV")p,RrmW].zlL~.k+vw__In'ZHho2W\D}2I}< K2&KY78Mo2̒f,2R s,2N s.d.٥dȼ`  nqLe)^2TxDSȬ,Af27]\3Ku\7KudȬ[C]!\K vɐy.2/%Ad^K ǧu
-'eznvIvU~wu]偶uWɥ~mf0p/WRjva"{zfΨ^LS87%
-Dm|= z3p,c"/Vb
-@SjDAۿ]Q
-endstream
+217 0 obj
+<< /D [ 754 0 R /XYZ 79.37 572.699 null ] >>
endobj
-761 0 obj
-<< /Type /Page /Contents 762 0 R /Resources 760 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 765 0 R >>
+221 0 obj
+<< /D [ 754 0 R /XYZ 79.37 247.882 null ] >>
endobj
-765 0 obj
-[ 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R ]
+753 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F58 390 0 R /F23 383 0 R /F66 393 0 R /F45 394 0 R /F40 395 0 R /F70 419 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-755 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.089 598.172 185.044 610.127 ]/A << /S /GoTo /D (section.11) >> >>
+761 0 obj
+<< /Filter /FlateDecode /Length 8443 >>
+stream
+x]KqWQ:t4CrG$vX\{B>jWÊv&'+(` W3U_9KJ_ʀ|1T&.)ɛ/x=?7¿y_dn>-yͻE?olӒu@=3X~ߋw7/ G6,.iPf˛?}/ǴYq?O
+cKgދ#X?|vi>?Q̽*.0_wz8M^8%}o_uU|>S
+xJu/ݯ4"2n
+tm5ϋҥ< K,~Kڮ[Xedy({g6St^??ҊZn2񒂟_t\2xJÅEp2^e
+&NTf( ~kHL j?_C ,NC~J&'6U98&4dadd3k^<˼kQ L5yʶ~&en6Peࠥx LyB8
+AS'm]w{=vȻE2DA[ )55NѸGkj
+B[74TXh†i^Rz
+_I;9 `p.Hd9
+wGt |>jk֫k%L3BIj ,p}ŌOV1pW^KstCe
+5:7Z>J]m{o REGmۙEAL˶RcC fٛ"m76^:w.9>=/_[ڔ-6%kRS[e;UBUMжX@Pޝ~jheۻ8ٮ
+03(k&<GM ֭
+BR "ѡ`RW5 LWB;
+cWe׈ȣfR#j![,
+laf7ڲeM۹K\ y/_J}
+o<dpQ18ʔͷUCx͉#~ iЄmyJF`j}CMOPA`de:ߩ?KGB.crt$~|c) o;zlj"D\k); bq_|}_ē!k_聾͌#K'tΧ[GδT7wQ!
+qװ c Wm~\(U`ΐ몢%OA:{X}nG`}엕cS*} GK#TJ̓:iWDxn$v0IԆ__չ<Ot20=~C(eM}2IQ.e2s}ԣ$٤'7*ƥB3b8Q:H6%AdY^FuҮ\V:;jdR%@Kn5XͪDq/m.>(M?]
+~H|@Sljok/۞=zl{6n\>DϷh\D-zQ'e9ؤuMZ'Mwj8YulF0M[w U'9X:wKU |RUco^')Ӧ]NT'9X:;
+ov=F2w76O1ccsǎ)p
+@1x㖔S~F5'#T`s' ;{4<ϽL&#x=z!X2m Ij%<. ksfiR'[܂rۡa-L`jNfh D-`ŘHj%d`.IO˖G-CtL(Wlȡ,gEk3猡<I4ZCM@i6%!jAgF Q0di7r cJ0͢kTE]
+ j_0Q2<I:"DM&K#U C R[붮M$ U*K$5Wf4׌D)*PksG)v⊧VI@c"Y2IS*ƪ_ΒD=33O
+d0K2`\ n$yzāIN)s,c.CXDrUxX38PBD QG"sJႭ¹ꡇj lPWlQ`0D)G ۠x`Îi5BDF#!u_mzaW#%vD"C-Aj9)3/lOBC"=inYFr#xNq
+x//mP@g&@2ŧRn^1Vɜ 7Z9F-jzAQT0
+oGUDi.})+ݑazV[Q q%6E%%<lNPs=VdbnK(BD#]i"ը!ٹ+=ѣD%%<lNPsq5fnQFP^&]!ct2H܀ZwE1BnZ$h)as!ac=F8ӵfr~]8U bn)FI Ȕm 'z
+Y[%rĦࡤ۴/mh@Y$ wB:r<]1<]%"FKƐ%W͍X6nQEn %`uv2%a8Jsu5(nDH`ؖ@L;n;QT
+,q
+ .M&{ < %cmqI͵bfۨ ;Z9F-jzA0
+oGUD@qfRc_L^%٣-0V/܌b
+Hѣ jηḘ=ʨaLʻ†$rsA%ìwblj) c̒&GԊ`5ڤb
+~.RB߭tF; [u#"Ō6')ێh)
+ &n
+0!'=3=땘c$QA!K3ԤcoV(eQC4-~+m8@ǃ DF)phEEwES"EK8b KN1fj?eQq
+B3J(e/mPאRC.͠[iu)0 F%WŌxB3J8d<FX2-0ZcE[)Zaaksմs%7C#JDkJA]˺pk``߱B^/Vɚ +Zk3Uo
+>^3tx5J<VF@ ;R,ԬU#dnZ$hi2窙aC`ST
+}E^e㮐8Rp4ɁWUr2D%m`\5/ fiI({L'/xM^R"hexE*Eڤ(nBP7~SzJ2sr'Y7-U'\c+6E
+ZXkп7DSJJ؜;GQ8] zW̰8&W9y(_\@7d$3rd)G$k b`] 0]3@@Zڤ:Ia@rGEU$k㤢gC]1#]1yO*Ii:qCL2*wMrT
+N2>3VZ'\-)LVI()-&XbRKSh*dp{zpH+fX+D\ڢ4QR&dyRnFIȇ@ bE!O@M"*M5IuTi1Bq%jU)&Ggc]1#㩀f"65CSŢ)%%TlNKƚ'#v e "]D'jhUh"TubB&&ɽ#KժSLiJ
+?Mhѫ.smRdUZLĤ;QQU(
+8(t?o< kDx9$/5+RAMNu_PmnzڲrG ʣGmsU͛^}_jKMHyN/x,O?1v{_UKל.х7y}^{{!tUÝ|+{}э+{]ue~'WV_˷w.6^Poo7kz_˴EOj ^W\I/M֋1 ٧ -nK}qb+݂K cnUo
+a˯  ,g:FDBP-_aj0D uU6U$} :<b^B2>l10B鎅P^뗆I]r dU..)k,B8^4V.כzi?}.wx*GzXEo'}z7:IC[@ګ]uZ:nva `wTdЍN'}tڻw;;9M?C¸gW//o;ցVuDTY9Α_sOaӬD2*^②,VԲ56t הգ!^O{Ze Ot{}>f ۂwzp t,_n`9Jk>7\ʣU,#"32!7nC.=%cz%VʻM mv6"~2#{4n;zԹ :zzZy
+6w?'R{.Y]_S^3`讗^e~o]'}_)[
+ppv
+*ү]Rb㓆%aKW)zOƎ/ÏJ!3@a _wՃoM"O,jsu6mWJ'ʖ[&%2n~Kt͸]xO(~oZ7Urfjn:Ouzx-ϗS;[νf
+endstream
endobj
-756 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.765 598.172 212.72 610.127 ]/A << /S /GoTo /D (section.11) >> >>
+760 0 obj
+<< /Type /Page /Contents 761 0 R /Resources 759 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 763 0 R >>
endobj
-757 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.48 483.111 211.435 495.066 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+763 0 obj
+[ 758 0 R ]
endobj
758 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.719 483.111 362.675 495.066 ]/A << /S /GoTo /D (section.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.709 90.308 251.166 101.987 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-759 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.828 471.156 324.783 483.111 ]/A << /S /GoTo /D (section.9) >> >>
+762 0 obj
+<< /D [ 760 0 R /XYZ 78.37 808.885 null ] >>
endobj
-763 0 obj
-<< /D [ 761 0 R /XYZ 78.37 808.885 null ] >>
+225 0 obj
+<< /D [ 760 0 R /XYZ 79.37 674.989 null ] >>
endobj
-241 0 obj
-<< /D [ 761 0 R /XYZ 79.37 579.845 null ] >>
+229 0 obj
+<< /D [ 760 0 R /XYZ 79.37 488.652 null ] >>
endobj
-760 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F16 386 0 R /F19 383 0 R /F69 406 0 R /F58 390 0 R /F25 379 0 R /F86 764 0 R /F17 384 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+233 0 obj
+<< /D [ 760 0 R /XYZ 79.37 309.748 null ] >>
endobj
-771 0 obj
-<< /Filter /FlateDecode /Length 4591 >>
-stream
-xɎd>_QG%jcL 8I8$prHvJOoY2𡺻^SI~~޽k-_^Lڋ5q#._~x\o}_qqBhfh€g(JskSSa[O'TGHޞo񙊄|,3o #3-܌*&lL 63B3F{f]x N>̠u!`
-4q%<@@f \D2{
-S$L{,4TUsNt BJ+>&su=#|SC-u^]eeH+@Pzo#AA1mda+-bE2b, fiE B$B*(26g\d2]PZ
-ihqD"ĽrIَ tO‡[n&xaU(sD!KtqUf^=,4xN_JS`|ՎF t6-kǍTJulM=YPʺoA XNm/<2dF4NkfG'[HP hnZPiFncW%dtφ(Dqmތ1N->ϾN_
-VuVO0S#v8.^V4{ ooոz[V&,e,<]k~FB^VCu!n0;4űd[sSa+YS3lM͖Lϼ%0&n$?[=䥰y_NuQ&o6G%b ]
-=V#9>NK<tM(;h<[9b{2r2@f$G pt$%gُ3zQVUu4޲qg L6镞 h|ay(-o; ,^9?fMwa~)<vu>F
-R2~4^IXfqz @3˿//~yRǡ!1ͣ@3>}B>_zx 4ƣ doOŕ t_RIS Ј2٨~;
-
-}}.V](L
-d;O*
-~ ˄{1bZlz0.0HUG$LmʒI2Y)x G}YՕj7E&CUaM3hvV}8kKzf<zttץTZmbI?}<nJ
-_ƭXdhHTaFwq-,v*IQwo%@~~R};˽5d%I&aTAc$^+GRR3̭"ߛJgc@G -8r:+W^CZX Iu2?օZXj9J#yn[QkA3aQ9۪JV vٮ喅G#&sli? @8P&>f'H6W4w]"eG,ɭ5(+JV'GQqd|a6j̃p (;5$]>~,:wbӴ +ШҴcZZTXH4
-SOQ ?Bwh=@{1< Nֽ}J$޷On䓃*;
-I$_A~]Q>)GQ35
- P9ױ
-",itrD0_w %"Sï%xM\@n'C/${1 'C
-a6 JAao5}ZW9_f3lVM/NkzT,xĔk|f|>'%Y"+%*1ٵsfOm]i^> t7ZC%`ȷw<$E#3%&/O+3@S^F$L멵tRU-hhM }Zm&+dUK>qBMoe|UҬyDu3i d}Iq]r"%SuHStwhriIZ-!4)aZqx0'Fɷq$:o[xѴ`$\
+759 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F69 407 0 R /F68 406 0 R /F55 387 0 R /F29 379 0 R /F23 383 0 R /F51 384 0 R /F52 380 0 R /F20 386 0 R /F26 408 0 R /F58 390 0 R /F41 381 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+768 0 obj
+<< /Filter /FlateDecode /Length 4586 >>
+stream
+x]IoWF8\[\i08Tqkޞ42YzEbͧM|w=
+=y40}N>zd`܈/\w~2?=+i??`_ڌ8&#EB2q\8njKl]Fj
+K <{.>wi$0wV"%XȣW!@Y$s ?HV6F@}2Y0SV]@C5 %s4&+? A)7ĕSg2F 3ix͟Y9bhT$t&.™ ~IL 蹮XYUWF|"$vR!V*e,afϭ""-~
+5Ktf5̇!sj>H"deg(gP+#qlo]Mho^tCڑMbE. <\\}I).y>ቒx}/~'l0clM#וߏ8 QMѭ_Vq%N"~j=|^㲙}]ȇ@kE#wǺ_rIz|JK-x$) س7̋87tCaw]&~3֊$\a>P|\Y`U~ e~
+bTGݧ8cʸm0n{{L|1 2EN")Nyyokc먑XO&)(XHH/Wo¯;4
+xTDHV﨏1PW)}292
+ZDS
+=ϙwBɺ8&8-MVe ]b֐2dP+ a/0U_k`:(~n;i]W
+^`:/^,0Qd]/kLN38"qг KJdOqŤ5_OH:$y1~7 ģVpT 09Yo Fp` =ýqdⓆQs`Nl]GsBI&T86tC&L]oQ(-E>wôV@s1nSM\?7a,~ĤYWCc=5
+ ߷+
+PV)dBP(mK"Gn5sv AXQ"WYYO/wg{˵zW wS8Pxw(
+N[ $3EsQ,;Gݾs;DRs|ZsLtx$gNcSf$rB%ķYҴ, ÑʸW8:5--?uMRdKe|yLܸXI|L;7hF#-Gae(0@:aͱN_^7$la/t1q^IY!n083GFjUGAw3I( '>)5p$F痚+A]
+w$> 6j
+פ%C/6Pa`qCuq!IATfPJ}$+l%묁63e$1@d.\6HN;DZ7VM)elA`j˘ 7TR> QN<!c\-K mC,O4٦C
+@HBСٹ⧝i
+ߟNJ(.:!gτ(GoVFq>=Aqz(e0=M m40
+L#k26Ge\~[^b~LL_V~ېkO?%`$DƊ
+YWC#u#t H3cm
+ohUV D=epj$FU<]O}eDx
++{XQj5@O}Jڟ!c<
+V (C1S<fxUb ɍWh~)>d57i媄X*n4-԰
+uc?Nmz{fh,I~FVK#Q9kziJJ241YyjhnfoȮ e
+pTs8饴{<.hcdPjx-;Ӆ386K:Ɔa`Sܰ NfojY}Tr
+O9aK#75nR$bt祃'_Tθ[:%]t|83Eq;99&<%|mtόpLҷ×Ԃ.JS⌑l0\S>~]'I>w㥱1V.ƞ+hUmjqɝ8,us-4~`,Axn\RoRJʴA߷bF~5+O0ub<$0!xm6mF]?
+g[ E(pMaJދ`3(0
+S(`f8]ड\q=yUQ* 𙨺h DusV2m8vtEUshQVŒJl¼ǩ@KϯHL|?+9ܔt\Nm^+W0] s=OKqx"%k;M6츼[vS/\ WͶmڧmOt0VsR5 .ގ51' U-+߉Ҫ'u%:ըh:^J:_jߺXbk8W'K\iͫo>ʟ:wh%Ոm5#6٤t ;}a@L0U͹P5Phi6h8\!1;3;QLI땰:
+<U>[&U Os>ٍ\y +\Yu)χEf_V2ɋV fe\tğPjh}V^·6y /buBgÑp`/3bL-r0*!3~ ',^8V`h*YK&n1bΰS 7\<t-
+J
endstream
endobj
-770 0 obj
-<< /Type /Page /Contents 771 0 R /Resources 769 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 773 0 R >>
+767 0 obj
+<< /Type /Page /Contents 768 0 R /Resources 766 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 771 0 R >>
endobj
-773 0 obj
-[ 766 0 R 767 0 R ]
+771 0 obj
+[ 764 0 R 765 0 R ]
+endobj
+764 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.089 97.968 185.044 109.923 ]/A << /S /GoTo /D (section.11) >> >>
+endobj
+765 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.765 97.968 212.72 109.923 ]/A << /S /GoTo /D (section.11) >> >>
+endobj
+769 0 obj
+<< /D [ 767 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+237 0 obj
+<< /D [ 767 0 R /XYZ 79.37 508.114 null ] >>
endobj
766 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.589 386.54 460.544 398.496 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F23 383 0 R /F20 386 0 R /F29 379 0 R /F52 380 0 R /F41 381 0 R /F58 390 0 R /F68 406 0 R /F55 387 0 R /F51 384 0 R /F53 658 0 R /F42 382 0 R /F43 770 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-767 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.974 374.585 468.929 386.54 ]/A << /S /GoTo /D (section.11) >> >>
+777 0 obj
+<< /Filter /FlateDecode /Length 5357 >>
+stream
+x]K$9a#FQFtטa0^WD(kj9dWgK>\ |5o_})q]ŸE|a_xc
+Zƴ|ݗR9-x<^QnX _>2&?>
+NT(/OD=u2ź2oBz}Aˁ-Lħ䞛p6OkPjQqIyr1#яVPآ2ʊeꖏWHh"XQQQR.ֿ"IxFЯ7LAJ,]I9$X @[Ca%uDً^VU5h ֐Y
+KJpmnS6 Ur0`~nǀf(M? Lٕ* Yle`.cSeme7dռ% L*xՌs26*r;K&.;RE&
+~"K`7IStw-_TbyK `x[#0rUi9´]~IZԾ E$ij':2 "4Fv O}IA¦$wd;eVIApwNnfNhzZ+l@7lAqqR$UFZs$XTX(dz,S\; N2"GT&2iV3Bi]~LP@[
+]yv|W3 P|ׯ[`!4 9ieMe"f뾦696þb=k
+8qk!ig奈F_'kgy|poSs&Q{8*'lS'퉣$[䣉lYk\Ճ~8m"0>: pReþN?-b~I>})fJ, Ï~`_<¡˺\ Gx7]O+ >?x 5'hPWp- ixW/ Qƺ2~nvZJ zyo)Pp+
+h[\^N+ W
+æy_HE)qn w^AE*r98›@&ĭe{_ >٤íkI+VsgӲ'Jzٚ`n*%bfK?Q¡;@$ aW@of-s0;[Ca~fKn`vJ f7C0;'R~s3p
+0{Z0ݢl6 [F]-ew0!l;q#mk l?i{B,Li DZ|jk^2PK;y5MC>wbFw()pl̗(OJ$9ݍЎмڀN$vZtu|pM1R\ &4e?uk/2窎%hSq EkUM p N:]殷9Vn2򵰲w[UXEQ'3ï~H e•)d[dH Y,PdQ)/1ᚏ1L30EWVf"\H.bpNQT6EJTxZSjnw eFքQ.uHK׺Zʺћ*.1&tչiczS*GbDTe.S$4j}kI&ZOB55%]㾶sVS~^@4nCOUo^pbJeڸ<#*K=@a/UWwwkUW5T}7l VD~:r
+%rm H3w^i
+74>
+܅_IAL
+8N8.:O#lE=ب'UzԓA @[!b<;CtBr
+0 c\}x9g46x9m 6Ih5FyC`9e 3'r( +(p;\F3H)͠,2ec\E~`9g4f`9ofIpY8M!KvIxy. 0O%"fdIȜohץC  S!š͎:4Q{])hY&]2bz22epMdpCLOƁƒ\YpƢe &C\ K
+A0<cmYCny=+hr&rdvLw0-gB`lΤ0˓5Tljh1 O^mLeZej翟Mp _9UvJNhHY9oQ~w!7Rl9t3<"ز5dh~^u50bkʶY<Qr 'zEXlBԙ\22i~o_%DU5RSSQ~Ph[Mg>O8H2<'UX|DkTXk-7"/f.tm24Fok]Aϧ`:%nq{`ڶ *g)/aVg7b']oHUC|#P|!ʷd˴9(Jv 2
+!vU`iAXiAo=4555c$PsUmL)VJķ&cߊ,e\{O:2M(C#u)TI}<ӅTs8<7SUz:B|tFՑX순? CXm{/[u
+I '.JlY? PLdIhxkZG=6gD[;E|墝+;ɝʷZ%3? +}Ĉ_k~f 5 srr А/<Ab*jjdLkG\b(4!Nҹ V]55ň{BdBܛu€6`+9't5u#sgњ
+Ddа0cf+ll[d =Gqrwu^h?.sJED}m zA'T(CQqH^i
+*]B sNcD|T8.%h)2%DdsVj$:%N";".#הyYlLmB}D97CO:W97)tjyɡsಡ]f.iA0.Ŵc0 Hul:۬M{9)_!QuU7e
+endstream
+endobj
+776 0 obj
+<< /Type /Page /Contents 777 0 R /Resources 775 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 698 0 R /Annots 780 0 R >>
+endobj
+780 0 obj
+[ 772 0 R 773 0 R 774 0 R ]
endobj
772 0 obj
-<< /D [ 770 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.48 675.784 211.435 687.739 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-245 0 obj
-<< /D [ 770 0 R /XYZ 79.37 771.024 null ] >>
+773 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.719 675.784 362.675 687.739 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-249 0 obj
-<< /D [ 770 0 R /XYZ 79.37 505.906 null ] >>
+774 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.828 663.829 324.783 675.784 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-253 0 obj
-<< /D [ 770 0 R /XYZ 79.37 356.658 null ] >>
+778 0 obj
+<< /D [ 776 0 R /XYZ 78.37 808.885 null ] >>
endobj
-257 0 obj
-<< /D [ 770 0 R /XYZ 79.37 187.326 null ] >>
+241 0 obj
+<< /D [ 776 0 R /XYZ 79.37 771.024 null ] >>
endobj
-769 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+245 0 obj
+<< /D [ 776 0 R /XYZ 79.37 304.849 null ] >>
endobj
-780 0 obj
-<< /Filter /FlateDecode /Length 4862 >>
-stream
-xnGίxGv
-[<)ɹV<+h#S;me_c d[뇟
-cWPH阖f-4>pN kֶ}g\7ළ>)d?ñq~p~?Bm͔rAa֮c_ :طPg(Q̈́@DL\sy[(ă  7C3u]¸k(<iǎAk5<B?F.3~"CT<z}gr}6v"TYϼ + I&1x!q
-pH\A2eɼ!hC"Cdئ-=QfKo&- MyyHzj`KmAK-2Sn{mm㔥h*um$Ph-+*/:u.+gq_S +MYrZK~πV*";FI&&:/%Ohk/(ӵ"FUSO C8##fQݢ⮅D8f]\Hqwg۱΀GDhb+H
-x,{YAӖ$qPÂqg w=N45OԚ6+t710k8A[yqՆ`Rw'۔ԝ%t>mkbn,U(Vlm|-NlPJ,c(՞3֦
-,Z<bG ms==w0k/.oϷGg/YIG&j5
-#daIBFE{m젳_@Dʉ]Ux~`c- cP\zEɯ#lhP[;ɼόcvG"R˲WyɽUK춥AW;)["[It\bѢ;GܛwcF%2t}{L0B^Viky ]5كEiŔQ=,؅E_a5g3| rL uWjyN }1ݚc6& Yz&
-В[s=O11o!2ѶQ1qd#^D
-m
-:x[.`ӣ!0cԜ:eVgFˆ- xK0P[cwT
-<Vn4-%s }%
-+r:+)Bךq'ҬbÐ9,=Kځԅ'r`Z~ԃljJQ]oǙ-h#^aN%?-wѺ17RU>, GB)8;F /`T
-9 }s١CI߶Y,8PدW$5C_%Ev(PnF
-׵Sy7QsqΓZjُ>cMkYةb9,oa+F&S.
-c:`ՃFJ*y.oZ(D %iR%F)KZ;JKŴԈ2f/~6`>)X砦x3QMӠ8QJґd,: n gK=~XA$=gji"^ˤi[ʥ8)(_s;$]a d诓7Yq7noH19 p'zP/8X,*e2@8o ?#%cE<&BlO]HR ?F u`\o-L2i<)ϥد6LsԺ(/ap[f!i5KV6uFrs2땴sg^5U΁_dz߶M=->z c^I;
-QUC_%Ev(z0CgSyz@(|xAA~FAS"g |Tgˠ/kXI(%PXldʋ.P^@dʌ}4,o@T#\C{ԇ$ $OLKu|FʤZ˝eL3\*kLxf݁EHOۇ]%B%v Ĭ7A.p^Qڎf\?S]))Aa9l
-V4~.,qi^\hxm7A@^#[jk@~#kc, cvuY1a)G
-DVv<mwt#(/[C+ (7dIߪKl%()cEg&`R>G__KLa/Ŗ4pi7;R@Y8,h *N 3I
-HWfom\VRm0o]BuE:"< pzџ#F: Uыz.,0+)먜yM[ěʜ&Y
-6@ eG3]br n9Knj
-M*nI~[ȓLE洄{p)E9aH?Oz)03+0VAW/hy pz^|<x;+y ĤwW$ahk*T}+{<s`ɸ h.s8(hc5_옾'}m5&TF{G{*lu+x 8f`i '_8G
+775 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F20 386 0 R /F55 387 0 R /F29 379 0 R /F86 779 0 R /F23 383 0 R /F51 384 0 R /F52 380 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+788 0 obj
+<< /Filter /FlateDecode /Length 4253 >>
+stream
+xˎ_0 `F5>$
+ _}"lcF+Ca*ֻ͗_|~f ,Xi?E,.0gV,>.?<r>st>S)< gtE{Xz&W>CP׼Fxlw]IYdVqyΰ#֓q\@ 9~OpRX?qTF}#IJO=- BD8W_/8:ϴ+Օq\%w}}yN"Q$R̢"a)[(VFɗ}Ђ;:҆e?B1w So'c/'g3#=%pɧqe)o:uy+g$s25o9%yX]$o?<|j>XL~~y?s@~"=.jєPmؑbYM:J^'' W{
+LDP:>HzyB=Sގ+DִJF"u=$걚Q6#cc٥VTW8;tѷ[!T>ҪzB3`NGZNuz,FfZԋy=VÁ]v'hAF5:4± RGHώ4JE\}uښ[sv+gq4 Ҩ h:Ff>F'fnBqDV4Y0F}w
+ Hg}j=;ND|ⱣcDvOaM)]gTZ?wcŸw):$xSU`ĩ0f$8<,E(89+YKK?%$ZaW`?/9F!>ڛ;;P/[s _ ŋ(~ƻG}9k/b<МHO3Xb wFF<3`Ċ/ mGx+) EGZ>vJ[Fe&A2 R2aɋ1P8_͌b.e`FaHհxk?'MpyW5 (E*z)>p?OSW 5(Lxﰧ7F:TO ݒQߖ,6Ppm8= txo_hpR{%C!#WDDX9p%޴hσUؾ)!~Z.kwexG
+yü
+T˴05cF:HdwD2niJUQubZ+%_ЩDӮ:T*VjwNGx%9*.b:og\[ȋKQ L#ZLbymTp[k \/stTjEtT<r$=)UѢ7[Jm Fekf@s}'%k*,
+zlL+"3t ;l@8-=ܓ>{Jni7@jXټ=U'M7mb$*Yp]*|RJ$vʾ=8|!ܔEg#=$%5^)6MR]Jej:7f|oVkq4X٨#-׿tj
+mUaF\3Ljͺ(rRA3plSc]yC VHǜWCbayw+[ߪZLGVsj@8AIdHFߘV7l}׵/;&5}eS&$ytD|rL|BUeϊYM*!{b`bv9M1;}=[q|1 _P*WN!BCW#`P/"C0Gu#tW,,/YX NŦ)Jyxs ٌ ٌ | LuJnN/1"궢vzisj9{mK:@;咋޷:jk]PBN$niNجJsFNG<)/i_RlYs'n
+rO.*~\?WX9 dFZXU
+[c cixSAEivAj >+_zr\2<FRwi:ݷnmd紞Ӎrr.V#hd2c**KRTw.Ǒ,StT2T=mxhXu(3\j[]?b>u~%קHȏX;JUCJ5kZuZϪJM$CT~jYZɸ6#d5WGEbmiNz o]s';xh A{|H-̀rzL'h~u<R=^X0EW+`ņVjBuFVԚ ;Wݓۮ&w8eXJOWU LGJž=v]&&GCiJ×j<o]%%fe 8vbWqS7U:O9$^/}BjWP9@׾UزT[4m(z\\
+
+vƋ{6dbG ]t9c*CLF{M{M[
+g]wQxCKqS*TI?Y~K#?Ti8 N41@"{x&@)FD
+=Ce H ѐap48:s2m'd $SBy 3v%db8 3~LLR&us{b
+_n13zx5Z~W dt;QzuHkm[fVSz&TȉWke/U!@p]Jv$xꋇ2&Mg4HVbW!aG[ڊV{L M=R x@}]|{@>0גHN ;Ա{ݠEy:^bU|wgi6{I^yux* J)
+ଂPn
+]T|5}ff懈uI|$$uIy
+ Nu{E+)AoZRuq1;+dVeGZ.P"6Q*4ZvzsNjr
++.}4VS8V3¸&; ޗV.X|3[5;i1X\2|GPiyXf `j:- T
endstream
endobj
-779 0 obj
-<< /Type /Page /Contents 780 0 R /Resources 778 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 782 0 R >>
+787 0 obj
+<< /Type /Page /Contents 788 0 R /Resources 786 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 791 0 R >>
+endobj
+791 0 obj
+[ 781 0 R 782 0 R 783 0 R ]
+endobj
+781 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.589 561.262 460.544 573.217 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
782 0 obj
-[ 768 0 R 774 0 R 775 0 R 776 0 R 777 0 R ]
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.974 549.307 468.929 561.262 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-768 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 226.429 757.783 427.176 769.081 ]
+783 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 226.429 286.663 427.176 297.96 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(tex.stackexchange.com/questions/488566)>>
>>
endobj
-774 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.498 86.285 202.955 97.742 ]/A << /S /GoTo /D (section.10) >> >>
-endobj
-775 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.619 86.285 384.076 97.742 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+789 0 obj
+<< /D [ 787 0 R /XYZ 78.37 808.885 null ] >>
endobj
-776 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.883 67.03 226.108 78.65 ]/A << /S /GoTo /D (section.9) >> >>
+249 0 obj
+<< /D [ 787 0 R /XYZ 79.37 685.764 null ] >>
endobj
-777 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.163 67.03 249.62 78.65 ]/A << /S /GoTo /D (section.9) >> >>
+253 0 obj
+<< /D [ 787 0 R /XYZ 79.37 531.075 null ] >>
endobj
-781 0 obj
-<< /D [ 779 0 R /XYZ 78.37 808.885 null ] >>
+257 0 obj
+<< /D [ 787 0 R /XYZ 79.37 358.244 null ] >>
endobj
261 0 obj
-<< /D [ 779 0 R /XYZ 79.37 731.098 null ] >>
+<< /D [ 787 0 R /XYZ 79.37 259.843 null ] >>
endobj
265 0 obj
-<< /D [ 779 0 R /XYZ 79.37 691.603 null ] >>
+<< /D [ 787 0 R /XYZ 79.37 220.348 null ] >>
endobj
-778 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F69 406 0 R /F55 387 0 R /F58 390 0 R /F66 392 0 R /F19 383 0 R /F65 391 0 R /F67 393 0 R /F25 379 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+786 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F68 406 0 R /F29 379 0 R /F20 386 0 R /F55 387 0 R /F65 392 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-788 0 obj
-<< /Filter /FlateDecode /Length 3982 >>
-stream
-xˮd9m,AB⼥]s`բw y9wzf1,oUb;8\Y?EtrQB;%S?Ji~>ܴE)?P[L>@v>oso⍔#XmA8{[:>QT4vvV3M
-x5ąR᪊P
-8aKAEYåQ!˞L󞬀e74
-Z](P\h>B;Ѕ\j{Z^&{G7ȠYU zEqՄۀλewәy ƿ݄_QN
-9w)9yUrN`On~&iqgVk>/KW(D*t  7mPޓQaM1[tc6ll kd5*ʙїrbNpOiAuO#1 9t5ԉ i)AHԆKӆdEܘ&֣N@l(z]+PqA՜ԝ*5#X>=!VFRզDu,{_ЅbqCZ;)ED&KJ $\.աPB&ݶ\(Pע@nuP+?[T5ͺ %7ΒY9^WL n%0a ^T#Ipæ;Z84i$z12WvZDy 㭘Sk[sL֚p4 &&aUFNɶ,8::\<PMc'M_
-K1YZ) el0{:܍%Umn ΰSXńeG`aw}69sl #I
-~mn[6G2H{W?G
-c굦756bq;c(ːŕm}XEs(Fq`!_2{թURaA hYy z弯&*J)>p˽'QoYǝqږLܺcWO䬀؏'[S0S/+a'㨈3z b
-21ZircQ_t6`׾=^^5&cpOי RrCˢ~#>b3
-95TNapV4 0i֍V7ҶدR=ܱso⭧T_̨=6Ρ}`S6FirD0܁6tP/߁^Ӄ°DaQq{Mz6S2cCWׁi::i TmSޘ*4%Tr_`b_KNT&&RJfs)1? kLkZ'c0 \,J>tZ
-ekزSUVs$gU%$|yUIZAGGdubzqg jNG]vOd\^ S|%P#Aٙg, 4F{#?3%|̗g}]7n07nX'Tb>%XUꎈ?eUFnFU{k^FN{ʯhk
-լ^Q Y[FiQC^LzR
-r/"HETL<*i<!LLov)#}[GT둟ȮäG0c,+6YA^u4WQDak^!ܣ_`abn\fȩ[x$?n_Ǻf -ƣp[(t DzVw8 ;utpz-/^MR޲I$j:d z5cͧsC#+-2Tem_f6s?NVnx>HŒrBЯr:}VI [g v:e@2J&OX23^eScZTVND`3U,]q}mmAetVYO֖1Fx‚Y4]X<K~['Y*\ É*=r/3lZZtmckӝ`'ruf75doۮ$k[I{6X_jmpmd+ 䶦1kٷ%o-)Ș7 ;!moQT+i^xRmQbޱ;Zߣ!ŒDp1X~<t8xOoy3ְ|J_˺v.!Ǜ~~zkZ/y.8$
->UC_~U0L"#X*"3|_{/&ӳ>\}kE1pA =dKB)Du ,\7[Х=a!hnM"N%_c;Dl#\pWO`jiJΥ5yٹi(Df3\pC ΤTSzViX36$Yk[nzxg%8-گt&0UUWiI:Bar1i~>/aAJ/bWx%mRn<Δn^
-f-9Ǐi`vDe
-&/3i<uy
-' &1 .ҿ@;EמU[ÝI\#Lx՞(NIِ5~Oތ1NyX IīHDb/ h#/ll&
-ʗh[vvtcLw(0জ:S٭Ur
-Rgbdz%~ʖIբ9RquI
-S!<fԄJ[/?3 /O*6K!JIRHG_-/a1t|(v}:H+FFW۱
+796 0 obj
+<< /Filter /FlateDecode /Length 5025 >>
+stream
+x=Ɏ%w솑
+$Wϩ>n{2оڗPDe-H}")")~遧׏^cN<z/bCs1Z08w+ ~7"9p{~DDz"{z!?U1tP?|S@i=ܔ:!p:wF<vml`Boː@:
+41ak`?@Hrm"ݏ%2OF'
+U6b/9Vu4gBKΝH"`K?[YZ/hQ+3f2gQkϿ<gWpeY:B[^+_) tDB"Jg ah7L>5׷Di?L4
+& j6aJڋUEIQ 8s?uk80-ŀa֩ϟ MlEp(嗇=֎Ε8h92&L?ydr4!Y~bCM|O(
+ Uڰ,JULv.Ze8197œ:i %fg@GAj@2Knt:)4A9I{4)&1ӞPLU(%[HEtBV`5y؎"i䡒2[HXړny3[@DԷtK v"އ:w բMo}qݿpmW #Cڮ8gm&^L]zm2<y=5Au]ay".*cOrX#~޳ LI|QO$= R1h#.,^)KVb\|rȂcK
+`4
+z~6i&#1Mׇ`Oɒ&$%rn7S3s,wWm
+B0ܶF)5k҇ZF#{!L )0U5T1,H
+JրWzd +Dnڪ`_hi;۱LxnZ pMo
+M㝛c)M.E3A[^cRo[QaLdP ??&$`rWɺOE29[BH(iSɠ' eb`Imzp&R]l@jsYC:xμ
+K^f \ac4Mt~:r q2"{DMɿ A^L͌1MY_X*[eѨytuDӃ2P[`08B+%TK-7g`
+lcD wQǦ%PH%>g녆p ÇK ꘳WI܉@okmش!En#R #dϫLynX%~l'aؚ`i0/kR~2K~URH\&?5] /;MI2싚ZVSM_џ%_ikhYwZ̀VK4;bMEIցLدV鏭;퉦j곦-w3MiڒF-[wxC}}7eܪ={^=R3Cg
+2E1Y
+QxB<= ^M{!zmΎOx(ADC_'Q] ]I|/nvJJv+3xgV)<ՊynGcQ1xr |v 8Im$5\[v$ƭt_m]~sǴu#1zK״ {yw
+Dr(I'fr;nWXo-ɅP{`G۬U ծnU1*y@9ql&`#:'[mUQ0P55mKɦ:iDlٟ
+_|#^L5V+ꚮ3NE_QAwt hwO%v*%ݾRʂ>$&@,VYEUubш/Ux%uz<D<63qZF۬De~ J}U~$6'oI}C ;m~<MNM|d$|zqS]tw!+i[ۮŚ+|_nM+ꛈn/y{I$k稚qrL.q ʎpێ~);M_KIqx| M>vW> r|bD#sG *7ǭb`C"f,\nw #[/@{9l\4gD#AY;X=̍H4!& ??ӿ]a%[~"$ ?|6T*r1JUZZ)ɳ5IN3
+ik;4G "&Yz㍲b\4=e<T{Ys K=Y٧2c= ۛ7R_m|k_>4\oK1C:*qƟ0.Յ\<KDVŝénb(CBM<SӎpZMwLɫvh<z|P)bme={9
+vEd !aV41^;;'I8` 9]j=3=J=VpQQ8p Z۲E_X)T뺈{դ8dʇ=v~cb }]wmT\㱪ѵ:x7Fup
endstream
endobj
-787 0 obj
-<< /Type /Page /Contents 788 0 R /Resources 786 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 791 0 R >>
-endobj
-791 0 obj
-[ 783 0 R 784 0 R 785 0 R ]
+795 0 obj
+<< /Type /Page /Contents 796 0 R /Resources 794 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 798 0 R >>
endobj
-783 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.048 509.115 272.735 520.064 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+798 0 obj
+[ 784 0 R 785 0 R 792 0 R 793 0 R ]
endobj
784 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 288.456 509.115 300.411 520.064 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.498 124.982 202.955 136.439 ]/A << /S /GoTo /D (section.10) >> >>
endobj
785 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 107.237 148.72 119.193 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.619 124.982 384.076 136.439 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-789 0 obj
-<< /D [ 787 0 R /XYZ 78.37 808.885 null ] >>
+792 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.883 105.596 226.108 117.281 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-269 0 obj
-<< /D [ 787 0 R /XYZ 79.37 496.156 null ] >>
+793 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.163 105.596 249.62 117.281 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-273 0 obj
-<< /D [ 787 0 R /XYZ 79.37 403.681 null ] >>
+797 0 obj
+<< /D [ 795 0 R /XYZ 78.37 808.885 null ] >>
endobj
-786 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F56 388 0 R /F66 392 0 R /F55 387 0 R /F69 406 0 R >> /ProcSet [ /PDF /Text ] >>
+794 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F23 383 0 R /F64 391 0 R /F66 393 0 R /F29 379 0 R /F20 386 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-795 0 obj
-<< /Filter /FlateDecode /Length 6970 >>
-stream
-x]KWea~
- L.8a/GsZko$ 7\;ޅR% @s VM@⎄!+!8{1|uE32'U)H=%Nڒd
-cKRRVdl
-1V[<6R<"%{c3=S%Y'}\¾V{E8$yY SaG<hMɳp\ !q(R#]Ցˢ0sx~Qܹۑˢ)^`6Bxᒙ,EKVRS<˒9Vb)T4ϑQn%@Zndkαrx{#%KdsȥQ}nqvQ(ʦx;]}Q>߿k7
-_މ'ֆ1<,-xӄz/O|ʼnٗOCclՏ7Xyg9tRӦ3nv<5[4c[K}(Pס
-m]\ec_#.Ɨ7u160O ;X-> |( ŏG5>|B;?yt)lTM#l<
-篓Xo`cMy\72
-vSTkSB5P]E|SUOǨ:yU':s:wU~C?F)fn T W`U
-R"aIJڒ=& ٪
-cKRRVdl)DpL<؊s)5R~aTK:˘`@*ȭg:^м\.!Hzڬ q#deQ
-%Kb)-a^#&WQu՞{UI4FNIC|/<o?N{W0n~lqZ!mH຾n_w `awE
-B6$#AWN̷`Ţ %r&76ny#݆dd!~ٙo d<)[11ܐ.3? 9oj7g?3iӿZ Uvr~g>#Q+ɔ'Ya)Ϲ'#9 Nc?+"Њ
- l M2KSᛶdh6lUV5I*f.t%*HUUY Vt[X3ě_Fbinܙ*<"XvLs:{4*jQ]h. [R Ca5ѪAeV K֬ +_;/_Kش5ܫ;R2^6ԩtfOVv6~Q#p,آ6-]( BKZfr{fWظ|cx5Gg5o +tցRvә9MDuޥ3srS@Ijc#fƊY+jh"ն0֓)C#h[[Xp#XZ/G&U?!U,2"`)97/!]FDꊸůJ5wu"nV`91_J~?%vn,$ҎBºEkK5,[ hJʐf0*CFAeH L1=i3)Qh5PƃVQxʉ(I-^U"# !H޻&GR|1J.JIC[ IB<ؒ䱁)c#[`Jvrcx)cR*-H)kߡXebu"wi!ʠIncb &6,1ҿq nðb !."`<B`9b7U%P`N)T:A`Mie`u_
-緋u4Oߴ~99d_+W6҅sA:g-Ws7+ W!BRK(D:Z/@%[Fl4ўA ?>RsYA&4yhE$VDU_JU # kĽn4Z +648VP2^TTE
-aQ=7*փo@jzT;؝)M*^MmxS`$\ep;E;mJaum$X*~1FD؋ ,ggK{f16r#^*OJi[ݍ3YvHUY[=^2s98a7ĹCD/#GRuNyo3c<9WUpl-
-%] e(!3r@ERʶERUA?K~"Wij&>.>0 %kߝfpWQ1`o_0pN۾a^8+/cL"!;a]U( _:qGשalqvmcuCv E(Ҏp%\':w_b?7Xj"im KN Se2sIK4_P`+8Vpkl&Q_T">E H<E)zhKkUǖ$ Hْ=&(Eǖ$ HkbN0SPc5`gD.NX 1Edg\V_˺
- tw3GElg#-7F.KIs\Dw~hYCwp~YCn "3vM|'F3
- т)vڱZlQjg "AR}2CSe$vs@%NE2K39BirxWN Fz-M hNNE>K#@UБ!j$ϡ#r
-2"x"$U^>5?<2iN +svKH_Z+o\~8l Y{Lyſ"'W`Cآ[';9ȎGi5ީL;ӛ?k^ytn<za75?a#w`^qН
-69Ub'.gsAGO;C.7w{%`7z :.ڣB"1s/3tӣ`[dXs-ڜkn9v΂s0v)&퇮ϔX|НOt[ VgڤD+{u%7_G;"HqBB
-A)B\BVO>çZ۶wuZž{c)#!we$dS!)B7ܭh|p\bsv`4W'hݪ,_Pz*tZ |11~B/ z6lKe^8r
-{Y%#\Ɇz@#VWd0+ 1
+804 0 obj
+<< /Filter /FlateDecode /Length 3832 >>
+stream
+xڵn$M߀ `pN i
+s'KO6vպ-O
+'Mm>
+7Nm_oH FJ}>_~ך(tPVs'ϗ[:eچkД"~O| >Տ oΛxP?\ӻW''a
+햇B6¥ͽ+36+*5qΈ
+G|%~J(74+Q^!%Z%SjE&E+8V&Hz.e eaZKhi//_}c5B$~ƸC050JغGVLGTAiv ɯ+2vO6hfF8fUp2Na^g Z˦YTy1Z܁ps}~E&8ad;\uAzX~
+J OCCLPyXe$ #h:^V7%k <}W^ FDS3K$S +te2lΈr8B1hY-8"_dO%y_Ivimi=|R2k>D#8 ;.(Rӎ|2_6n Z\7S!˄|U#tY:X2٬ҟZÌ v |
+{>;'db0zV<b3|l3֢0js͝հ[3o5;?n0/4919hbCUhêa.(aSNe4'Ptc= ^Gc^T5'[d[)EcNMoxqU-Z[nͤ9XԊYr~DK=oK>?GaSkWk@\mW=zayKC:))2o+% A/ym,ˆ955=Ӿi;ߞRHacqH2d-zG! bV};<n*A&uV ЧU/:ِ02e:ѻp7b -<yՠs]<1ɦšdךՑ70ptxSCy*JpԬ4vNb'RF$<gZְ iĘf T!8zz). b_01365=Ȼ\,XE+bEj; =SEsJSٝ󒅑0۠kύu#!aؓ3ȸ^ܡ|YzrptǏ$j;%ʔ( /- |SjmXCau],ueԷEՔb?UFuC1Q: 4VVՅ$Yp"Jv2Àdk 2 Ǽv;Wfp-fYk B+[ʌڴyϺq42[=:ż{Z5@/*k1u
+7ZQ6)k\}dۡc;tZ0!)ڏKKɝlF; n'إ.^^3j0ݲ0,$Iږ^{-Z8 X[O`#4ok4tVRi.&O_>. Rn|ae>㚌{DLyiNʪmݗoPbֲc/=z,Q@ſoHe`wsБmȭ+H򚬏ym(/Rn21fLpe!Za$?w9@*U< ?!>şG 0ANwQoOyN`QJ z6 ~KSя1<YS^96(|u4#(2>jEP7GhS_:0
+ sbJB g7 |]]o0.kzR
+*B[5`%n60ý@zII%
+f:Xv&
+}y׬ ؉[;;*!}
+Fakl‰M Dwf:[(_%V.<jMxWWcRy.Z$UWCSX Ѿq&[
+h[hȍbWJN)MhФ̸|%^L 2\؅!bldm(ylu{
+/
+J?ҏs+%\F*eg&Vѡln}l?QV20Hq} s&R=׼򲾄1nFXHeG |
+ɉo˖?L()Imf46X}[6_a mqL%VJ0AR/BdYXo@CM};1c(qx=tf_aʩ}9E*Y̵Ǎ,BK"6@<S{ΐ9C0I)iBˇv~ھJ#NK̋%ssY'  |s7)#sf;?7V
endstream
endobj
-794 0 obj
-<< /Type /Page /Contents 795 0 R /Resources 793 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 797 0 R >>
+803 0 obj
+<< /Type /Page /Contents 804 0 R /Resources 802 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 806 0 R >>
endobj
-797 0 obj
-[ 792 0 R ]
+806 0 obj
+[ 799 0 R 800 0 R 801 0 R ]
endobj
-792 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.907 101.046 486.364 112.731 ]/A << /S /GoTo /D (section.9) >> >>
+799 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.048 618.157 272.735 629.106 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-796 0 obj
-<< /D [ 794 0 R /XYZ 78.37 808.885 null ] >>
+800 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 288.456 618.157 300.411 629.106 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+endobj
+801 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 216.279 148.72 228.234 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+endobj
+805 0 obj
+<< /D [ 803 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+269 0 obj
+<< /D [ 803 0 R /XYZ 79.37 605.198 null ] >>
+endobj
+273 0 obj
+<< /D [ 803 0 R /XYZ 79.37 512.722 null ] >>
endobj
277 0 obj
-<< /D [ 794 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 803 0 R /XYZ 79.37 197.953 null ] >>
endobj
-793 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F38 373 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+802 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F65 392 0 R /F55 387 0 R /F68 406 0 R /F58 390 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-801 0 obj
-<< /Filter /FlateDecode /Length 5607 >>
-stream
-x]K$7r ~
-@:]ܦ t)ӛ? Eze9g/Dó7436*AͼvF]s58'1@|!~{ӹۇ'i;u<[A|⤫u
-axGHla=ԅm+S6M_ij$[5ѡi^Y2Rv\t;u٦KESg(R:v/Cq=mPҡN@-'<P
-R:h|hH?rAh!N]1&8 "J$|aPX]Oj(v}{ÃCt(x3g.k#c2e"X. ؄KFL (/NZHh`5<^wKvo`%& 腃WnV"~GX;&NL`3Sle-d P'Go>Y_?%}D_jX;n T<&*&c-U0if AR&YJ`4Cᳶo?v
-k
-$%I~Bf VaJw;J1ҔQ[I:Ԕ8tByz/hmt5յNPoh,OKB]Č?E`5cu[{L&'Ա,;^m엍) N}Or7Z^DB%+1rtyvy# k1~[6]yĈK5
-)[SJD&k(vԔ*0Dϕsk{ՅRZ<S`
-(%5*ֶ$mbk^x-Oqvk56=rW3R5?>(~&WO.+3^*wZfȧ<ɣ 6Pt*<cS_f&-y`M.>ux1jr ~Y{rO2Vc鹹F 8U7a<p8|U'zzx_bu.“G]_F-SX{Q'1#oOv|= YXj:pĵab%ks`_i5+}gl&,@;VhqIVH=gw<gkOel[E:mƇhIVɰ9־}~0KkhBjMF_W~k'?HJ1?{5k8RC#W3*~A)RuDFsy/-
-m}hs8 U*qhb
-whZ7i[Ym֖ȧ-s~]
-yЯg(k{Cn=KsnlK.֏M'&lԫ7/[^ll&W!G("&O6uY;v f^bvȭw17~n=a7ѭvC~|b6%fs~h_?d4S
-6DZ\B_tPY 5Ҫ]\?d1+!tq* !tq
-Zk
-}G^U<4!*y!jCTC
- .a̚SבG5U-ЏJZU<Դ@?*xL?MGK]G^C sHqCci:.p^`̡XY%_[sסW8}ġX]OskCWb=!#)X6u1FsH9`yCR! U
-AB絑 خKe.+}GCqwV/;Գ; ?B|ɽ6F %k?Zim$/Q?]ÿ}#~ǏVĤaڕ I&,0pmԔYUn=djJ=^ KoAimqŌjڂ _sE
-:Q](u?TjHo>bҢ}q$fzsYz1/p%JPY5*#DS.K`|xrT_aE5_9z
-^nW.EvrB)x.lx\Ycm[3 ,;gvbg!dcwʁZTăѶR$˘KJljM\tsrXc,E݇>u֧\ݯ&ncXi^UòE[o7W^7ȇ~K%#g]mZa:f+1_/[`Ex^N*^NQi gk"xBJtĮ.%?|,LDU?~Ga/{)ľ n`>}Cr"ov>@.l2~/.J\ :\)v}KCR[wNv5#Iia-$:d3ҁ'q$Q[kLJ ;!"XfXo[9rhh* T˿37.Њ"Lw;볆nmh6 1Xo::.5dd_쏐۹?ٕR5us[1:XƙUzit#Y0ΐTElNO
-*$^\^>SvoX+qKK/Z5{"^p>&{YVD!B 7qIwؽ&HA "
+810 0 obj
+<< /Filter /FlateDecode /Length 7019 >>
+stream
+x]K嶑8
+EC,CvY(K}ʿ]Α;8Oll/KjCnXpi@mUB1{>$joC&-Q2k`ɯ P;jS-jhi}rX'QLjțr#i$[4,Ƒz\dO֟3/֋^kg1V #1.TouΛ~3ŚAHL22o/s׫;R[,L3?G8Sǿ_gY/RÜbW( ۃӟ1~~T$s#_:f0nE]17w1.5b_ -"ЉT.xI/ |X!}Y{_ݜ=ѐL?ړ$NN'cV1)%/* º 6n*> A|'.sGNZU^")~qx2wsjdVY-}E΂%s#fhe8bsZLKؔ}K0LO"6%GD-%b?VЬf9~>hRj[
+%f{&w a
+>O۬cKb}Yxgf,T zA+@gxN;x y(=x]:qJ/I :0:3rk(I0!^>JX컴"{4g":BRg=PPA.,c!9 b}YxC@#ً6S_aMM^hALU9 V蜯oZ9o.oasnlasv
+aY
+PgDm {sP*ϟmb5s&Eٸ ZVFD}{ ٍ֒uklCr,GaUVS$nQ\%p
+v
++V5Zu`O{%<<ĨwI)
+6"0ue8 ,`
+N
+GF*lڰDU)UiE;Ǵ++|.1bnް
+Yfk"6eX߇5KA=@akG.vXmnvIg}\&@n]JSnxnT 9Y!47!Id75. $ϩN\VN
+ f
+YO^ǻ
+DQLL⤎{ũ
+՘f.)n:Ix݋wGp~.  ^uAmcCHZ@vE\ ^C)_C"]zWD,лbyo^שŋ@j ]|_nr;S5Cf@VqER&jXvћ>&1C62=jڸ/dARO,^P:ku&ջ ?)7 Wyն:•^~ENJV1m1ZAe1Trϊk)-Bi
+q=؛cZhvl\m.%дzlV+/WCw
+ZC<O/Ն uĘv˄+*R>2Q@Qyt.<,C|e]Lc+{`Yx殘7 Zظ([}D+D #8_wżpQ {rdSZ=bKg tr',O`^9-hs&Lh)!) |򊕉<eD {V!wżpLMj!3-XyZ2/9b+d*i!3-%bSZ2/%bR NNFla>ؔ-KfZ~2-s6rYgZ8uFnhYeNoWq.6 іl#}f2lMR搴9[.Bi8߅RAitqRnM"6 M0-ehZh$&/MKZ
+Ϸq蚒h/_ߒ3jo^QW&!r2^$_m
+}Hx<'mH* %#jH`KztAoLZ0佒AxaHoq&cƨbه*l5~j2ίgu|~c,\0d~l0~ Z ݆(&_uUO07,܎̯~l3ܭ:/64[>+#2I9pǴ藺њ@}E\b?V/R簜=1q1/A *"ݾl!'=ҧ{1 '\EfL@xl%)?Q,M).vUS#c5nt>%Kq`ĥ˓X߄x)jjuѹ[/DE`;md1r+ŗ a?N$
endstream
endobj
-800 0 obj
-<< /Type /Page /Contents 801 0 R /Resources 799 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 803 0 R >>
+809 0 obj
+<< /Type /Page /Contents 810 0 R /Resources 808 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 812 0 R >>
endobj
-803 0 obj
-[ 798 0 R ]
+812 0 obj
+[ 807 0 R ]
endobj
-798 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.406 604.2 492.361 616.155 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+807 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.907 122.47 486.364 134.156 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-802 0 obj
-<< /D [ 800 0 R /XYZ 78.37 808.885 null ] >>
+811 0 obj
+<< /D [ 809 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+808 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F29 379 0 R /F23 383 0 R /F20 386 0 R /F58 390 0 R /F65 392 0 R /F30 373 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+816 0 obj
+<< /Filter /FlateDecode /Length 7175 >>
+stream
+x=n%7rFph/p>7ڈTN6lI;BbC#֕b]n;?Lqkyw 7v3s3퇟ozO~82he-ZO>죠TڪC_>R~c$L&"A H߯g7_smF1(#L_{!F$4R֏]>~AC\_}TzP[U
+r'#0M`z9j{`TA1A}KqIjF@YJv F>w7o@Pgۤ9#.v7L 6FSgtk8A
+5#F
+Oaq %EoE*! Fe{}7P.5 FjHIIt+蓊WdM)$S0% ЉH&8P -LcQ5KBraEt<΍$NT!<T"1
+W5V4vJKTiAjc@cWdQD%i˭Y$GSgo? qhyXaA`?hfk_n~uACc9!svUɽ`yq8R@Xxj&X'4W0!A%a¥2cyxÅD_|@rXX6+ÍFc333FqϴT'^yg_Xe)[Mb560&Y|1 +ɜ'2yg˻|3gkgNhy[
+ 2vo.i(U~LP7d:8h+oX{:1չ?xH6-0#z`<kp4#"ӚI;xS"<
+w{th"j ]TY}^5@5\ACԩi;hT=~}KMSgpe<~ vzbz;oA["[QZŹ9,F?.0'6Ms~O\Y}Mn*yX@Н?޿2 -,U w7Tq8y K!W^FHHwj5T{ZE&sIת(-󫤲<TO-h 6_Y])W秼# vN
+⬺ :%
+vN!z@= [>הT`ZD#F6 $%vN-$r<vyX>ᄂ#"{/OalYk
+
+N\B%|r$ʜBnX}<2cE5㉋mD#/qs㇃:Z5i;nSV^%PD ހn4_ey}K_W(ēC<1А e7k{>}#Io:%qo]7l~O Je~|"SZJ\j!))RG_QF́Ԍ<SpB-FL o {S6T_Ȅ8qI>+h:f)ljqj2SaO xT:] |LgCgwn(Y?css؜ù46\'ieI}OP|kV<kDyhKrId՘~Ig!QLء-H^0 ˈ=xs_ Yg+;ӄ3wBݰQ5bd_hB
+f܊sKMyʙ(,nB_ỶKo;_C
+8
+8iq_BO?B}V]|6oxƄO꽰ٵ=MמFeg֞Vcnk9X37Sިl4*;\.zBekxfRFL{ognֈN,T+n_
+i(ıB! 8ZW(> B׆9xw8D˸pYƝu;243y1b/N:KҌSS4Ի@!9<.PH3~NZE6s tP(B.S(B.S(+B.S(kBaJ\:+R<> R<> R<> R<Q8] Qc-fH,&4QᙂʰO(0;> G-x3ӎ&k;A{Y@mr/",P]a%)t w_O?7(>~nt7) D `Vƨb@T]zW L@QZB,㦫%xw=}l-iF8?o%au8(UΉC-Vw=Ĩ\;.})\zNk] _wUo|/_&
+K= _[׽JjN1 S^\XYb$υPˎ%j-|&mT.
+B kE\#֞aˉf2Uu~Dz/2(]Ӛj\HUt;\pW?$?ղ񱪭CWQRAc:|u\`. @!Vƙ[N
+]kZ.zr%̡Wj[<ŸP^'ȵgby=Gk"xCNiϻMؠ"UUXA*K*[t
+CV_=ߗتɛ9dP1"5Z(`^>C`=ck亙QZjc+]w[SM4p:uP_?9MlEn #ÜEV8'WY9({Ei}!=g^eS.i$!,kfE%b`C2XҔLiݐE{P]ævCbKaVsJr$q-q,81ė0ʢQw. kc#ځN̪Qs\0Bʡ|, i,1=`87bط)<
+2wpi-uOCy~ mY$ tʣ3f |I;ћG[>{6 0xo$s'o)>`ˢaXyi}0" ܎#ÌSo;+)6AI`g7 jfg{w0:_׾5:d^xg-.xk1]] A+!C S6tzguv\I%G8Ԩʉ;xYE`jH:ap%Z_#[+7YXy/ZO
+a?dXn^+u(Ј3fk aI1uOosUc,mv͌h!U)H5c-LIm#3u׬l26n[Aat\nl'D]> 嶤77 ކp{ӹӤN]lAu
+񙁀8ᙣ"6O{͚.I}2pWXS]xRukrX F
+_Gpf->Y,(su QnzRűJ1%:Z-2OBh Wf±S\|WB˛lv׳X| *_ba3StpR;'y/T0S8>ش&8k`XcbasANI5#-8ey> ߰U0ņDσ6N
+FUbçe)w*$<t,Gx5t לSzn ;GF(h5(={4K]mviwṙj|i|05uG_
+-$4IAUp.B65y_阅(6Fc*լP8qaRZhr!LEkz'spl=hkQ,+Y]G@o4}GJ`}'%ē.5@uGG ,>0bAc*dT53U,Dr#n4ӡv^Lg\JsqGGfL{Ep"=ax]J2#^#,JATqی-3/ eEtenłXBg2d >.[<Czm5ZV`' 1Q6LS<sFؑMwz/;ahkw/fs  6n<LG2e۔qyߥ>KE5\@r&ċ6kW3[WPР)YYJ@hwp|ǹHwR &ǭ>ڿT6diҥ \{9\29̙D鯥u
+ʜuWƲdlGnyq|y)*G)OÍ d[7'HFy,UW+%H+K3QP#[b?3Ck-fAǥ=!˅D2PDZYK'.mRÒIp/U޻@e7%Cqtv"R4Y9Ju'$gd_[pZ+NͭѼ\^9ѶWR_jɠ &縡2%Ioa3w4>'.E_e7P%/ >o
+endstream
+endobj
+815 0 obj
+<< /Type /Page /Contents 816 0 R /Resources 814 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 819 0 R >>
+endobj
+819 0 obj
+[ 813 0 R ]
+endobj
+813 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.406 682.132 492.361 694.087 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+endobj
+817 0 obj
+<< /D [ 815 0 R /XYZ 78.37 808.885 null ] >>
endobj
281 0 obj
-<< /D [ 800 0 R /XYZ 79.37 199.572 null ] >>
+<< /D [ 815 0 R /XYZ 79.37 277.516 null ] >>
endobj
-799 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F38 373 0 R /F19 383 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F20 380 0 R /F23 653 0 R /F69 406 0 R /F55 387 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+814 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F30 373 0 R /F23 383 0 R /F51 384 0 R /F26 408 0 R /F20 386 0 R /F52 380 0 R /F53 658 0 R /F68 406 0 R /F55 387 0 R /F65 392 0 R /F80 818 0 R /F66 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-807 0 obj
-<< /Filter /FlateDecode /Length 6309 >>
-stream
-x]KqWe8@AJK;'A*}X;[Ud},.~ ?WE\L:uqN0./o~
-Nd)˵gv*jsiEr|*\Y 6Cvw %
-gj
-VL!:nIkU9A`=te TAnŖ9>920PC1V,ڎ6!EK
-e0ōZkXҊH%ʩ35Y %nwz9U.0/`Z@HkqgfK䙺-"O bע 4o<(@*QHh>y/02KYh&CLa=ՊeĝKa {Ҋ@J>$Xɲ"Ql{
-Hh)GNp!5
-F֙"kn[+6b
-̀po1
-.ɲSXK!p lV[>RҬC#qԕLt3Qe}LTK&/*왉y.&:LGñDRh;a
-gqyn̿}]d+g?]HU
-hZ\1B3<I-MQ(<SQ0akoפgUrA0n
-R7O_ >A@3N_mjb0r%.4'aYR>sLIa| E3>R(YQOI;mļ6ʁ6Pׄ6RVc7N 6K`+M{b_W;K}&=PGLvD[g*A7X.>%'A=|JMnfVB/*Tϫ`}^l?ca?" G^4!B^9p9i7ǩ:\4hNˬ1hcxk2(m$D̍6sйYX+Bg+O*sxk,cyPjɃV0p=<F(I;)FmXN 'nSQ0!K-NԆu(Xf$K?)>0 S}!5'ڨr= 4]I!:Fi2M*tJ5tNYOc-:n<Mu]sZ ,´g$JCoB`҄^'Oc#~^~ 6*{Wv^ULöSٖѝm`uT~.ε7q?mݛz۸מ=(3Qo۳g;eûSyU:gw,m3[]GwQvsŬf Uɏv/BhK]s&?pSy)-0;R3[xĢ|ns-BnG(gaA^Ym~bnx77<KlLwü9=q
-&jaξ1&Aam[xֲˢy̛Rҥ=ce7gk)/7c<~)އ1,:얖ھK4~t{W+$a{CM@r`C0TdI&&9Uۭ0`ƥE9O\$Ob,4 0L^C{ҁƜD=}O`a¥e
-41&RLd4*ll9-
-bD̈́ҫz%keK\\m'keȃ[jۉZ ^vy-dyƯ]}fX Ys0VLF#߈nzV{2Vg{{I%2tA=MlJW81?H!ERr~[i3HГFG:``vI'AWLA2hѤ;^`WGΔo"%eM7y>d?ƥ{YaR2+ Su (CIv{Rdkh,IҧH`‹'J;fyɛ'ksA `% +w/5
->F&(D%).?-yc}`Nߑ)Ch>" ;xWUYu\87ֹEℌMt9KL@O^b68I0z 0ۖ2ӑCiPΙaޙ[V]‡>LVA% }<6$BŰ+6 }e1V1׋bBM|l3G{\;kقSp<ߥJAx'NOF
-t]ce_0+§C gC %Cgʇy1B%?h!?}in~=o< niw˯`'fh̓(-mFP56'u[3֝"6'S77V^O}BZ&F9l*O?}kR;-ZS_!xG ކ/7l#b- ZZO$&vQMJGyt|?h۷;bmWHSp#K#Jkڶ}߼|sitӬzwmHN'oC8B|y#W4jE*KܓM<txBbCoGise:dd} 
- $^1HC|!`ws\366,%?{`f_p
-B|-vv!o-LLH
-Tܿ%8-\g8.UST//z:uKWWOߵE2wZ~ Q;|_b* ;?rԢ+Uyޅ1%R~G/frKͫM3yΗ
-L ^̩Oԭ2:]_4a0fcf">1b&^?T[S>Sw3?_̩OԝpgvN?3wiܦ2Vn>]eX`J+uX6Cmݚဤٚ'i6w̚p .a,~o#y|bdR}Xwms_pOiM21^3g^K}b-x=*/*Hs `Jz
-A
+823 0 obj
+<< /Filter /FlateDecode /Length 4353 >>
+stream
+x]I%Gpxi4rd07caB{"r"_oӯ"22*ǧ'>}}ofǻ/>;zݝ
+L.[4D.h WS˧+o;@\+ξI Sz~Ѯ{G(
+])gʂy"g|Rt{3*51YR bt"1YRC<| YϺjgCi]t+UӴo\ǼIfV)0R`T_X5jcn_U
+Wfk~,\ty]P#&m
+rd:C^\j>B w"_G/o̼x#~um.]Ŀ2^œ0/0 
+u
+I F^Beqg#8-G.mLRCP7jaH᜽S(<oc
+`{b:0[˲eQ^m
+:6Ƹ{Y{RC&O1^:אIr&hٳeQ~
+-nm8$Ck Dvto T1nq[\Ρo5
+(*ohs]·jJ/hPn-]ݴT,>G|JlO7eAyhwd W'^541WD"6"'q$2ɿQ3aggThѶc{C_"uM T}t bq om*\w*L}r5C6yO_FNl[kar6 ^[ΐ(,8uMB)2smNzYut8H;T9 24h-4$8N<zeߓxR1'R^| 4WL
+|H.+Exc/}Z
+\CG 9 ys
+p5E5I~+|\Ct?7r
+2ŧkZAl~:qEv.I$$~rË3c9w~WBEzXVUDv-_fVϴ퍠IH;6֢" U6~-_OtB,-G2m/@>r-D7/iR6H<=54ygor/Kf<Y"Y@ۉ#A ݿw"P6Zumaw/A3N !\L&]i Tf$ $^Ӂc67:8䊌@oPzl'?^vho\,޶hgki'mH)Jz<1 0@W8vx.nC:%!6ꑇmA-^v6
+uK>OgBBl6Y+p %52s&Ϝ[Nyl"bʓO1x~S", >]'M_C`&
+<-A6.
+]؋adп\qÌۿ_)\mC\ͩIq.fKmKgwzCBsp<lyץW;D
endstream
endobj
-806 0 obj
-<< /Type /Page /Contents 807 0 R /Resources 805 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 810 0 R >>
+822 0 obj
+<< /Type /Page /Contents 823 0 R /Resources 821 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 825 0 R >>
endobj
-810 0 obj
-[ 804 0 R ]
+825 0 obj
+[ 820 0 R ]
endobj
-804 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.205 217.586 434.16 228.426 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+820 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.205 307.507 434.16 318.346 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-808 0 obj
-<< /D [ 806 0 R /XYZ 78.37 808.885 null ] >>
+824 0 obj
+<< /D [ 822 0 R /XYZ 78.37 808.885 null ] >>
endobj
285 0 obj
-<< /D [ 806 0 R /XYZ 79.37 251.818 null ] >>
+<< /D [ 822 0 R /XYZ 79.37 341.738 null ] >>
endobj
-805 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F80 809 0 R /F55 387 0 R /F67 393 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F69 406 0 R /F78 478 0 R >> /ProcSet [ /PDF /Text ] >>
+821 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F20 386 0 R /F15 385 0 R /F23 383 0 R /F29 379 0 R /F68 406 0 R /F78 478 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-814 0 obj
-<< /Filter /FlateDecode /Length 3540 >>
-stream
-xˎ7>_Q?ЊDm {Ʒ &H.KJ^#ɡ*&\~]IN/O\\8X\~6㳔tO_(^(j$-Q.[G<"<闔^9mBg BDw7e(g6VhYr[RkڙAb?wq&\Ai[y  e׌Kt3oiWA`Œh% VeZ}lsuW.Vduυ2?_gVx<d~d\OG& [dE<!hs/N4”5D:؞OFIMAD媐 CSff0|T5v}]F)Kix?u}<1`?f3\?bX#zN1+Ud4[2#,# RW<kt,FCX;2b=bp*y#2"_(N65xδJ,GNJN6ӕ Gq 2=MS7vDpjf,^;*n®nwcmEyWw9Vd6 ۱cC6BݲW|3 3YMCS%9}vt=zwkBή_c30cm+MP.(ͬG}x\
-/l2vnFn˧ڲхVlmZ?ɭm}f CTbMu4hnv:Ze3fw* \cjj55^MR 6UoګpTý!vzo,*ĕC^& U4*aV7W.Ǡ;Դ/*<p/6M-^:
-zƚ U&(9fY OA6OS2${ش=oQ:+(;;\(;g<,5?06P1tf߽Vpe
-~[L}z誵Lu^|xm֣OO[u7й)Ooqݿˉ_paw'>Oo; u᝕8AG֝%{$y][\dr4J!nş-2Gk 21nsw^mpQ?=ik/zaCCA4;=sJ_BkwbZp`BkpNs?&wT@sʞr
-=`#j&tGnl{}*Xs-d v] ]JA|sJ&;>J '<CkB5޶{M 0ɴH*pެ9Xv큸4"8s?tݎ9c Ft@X?KN;<Vfuڽ?~i
-+ק$h䯎.[ׅ9闋VeM |X>?Ms?/)4yOMHtϳ3~kTS^n2>aC1+y$-ɵj .֡_{闥
-*u} V}λkhcQZ{￵U'`? UweK7S\ȃsI
- )rԚa;LlWA'+3;=n`
-xQn] e7UsDoA&J09͕ =1eLw1y6BپH1At,7|bxMb,\6-u2)IoJrGӁ<=CQ=0bӎ= ɘ8KP*<&O&SV2RN-̓Qu[ {0:hCTxV dw.u^PzZSIZtl*:&=WV{ ޸y}Ԏ7!c=X~  ?/iQ\b>Zߖ>wÃ0N4R0q{ކ3S&-[g~xގljW&
-R~}v.\Ƿ ᾿+=΄OHC9[nG7;
-dgޘ:o1g*4XKYI<|u9[75hhGr7&_V9!}IBآE|r+s<+[?Gf~Ӛ= IOHC= ɐѕHd F
-@,b(wub"JSo +_Ǘwq %YF"9v6I[ 
+829 0 obj
+<< /Filter /FlateDecode /Length 3542 >>
+stream
+xˎ#7_Q?ЊDFxl䰙We ۶(I-||e6/>)| (_ x|")}˧ᕌ"&NRqD!#._#IV/ y5ŃN =?\]Xe%˅nIig}K^!ww}JPy / eKt3oviWA`Œh% VeZ}lsuW.Vdu/2?_gVx<d~d\OG&sK-" Is0%e"8QR(bSQ*dD.
+)33oxTx.H۔4g:>՘ K0dU2s3p}f5B3\X 3ߒx~GaYcq6"ڱPSbDpasUdy0<"tWrEgѼd<[Ȗ?m.mEhM$S3Sgԯ&bx7_ߙwuWPaE&/iyf܎zdu>Yл>Uɲ-^n*q`<5{ϟc+W[+7pvMqk_n҄蒋̊<n'u p{ҘsR=ڌAI4PviԌź>.j֜PAmw}[ ,&m'=ڥ3C>l`z36:>`o8a{Ĭt]+Bdq% 4W+.gc䘃o"hBVALRЇ3pKI$4ʌNrI1^X]*SCOeSF[d^ɹ0ȿk8?PҚ6Ud] b
+) AB_F"w +%<TeR=}pZ%ʝ$Bx u}]951˨d)ʽޗZh2h6OE1D& W&qLѼFt?s üQɢ
+1qE).^CM]ܯ)2KsZ ă;KN!]˄8hLMi&oT"}2*{1oF{Pjʅy?s1|蒆ܲ x)OMd
+igdꖴXcdE 7LM
+ek)Nnns3k:kaUDsCmfTNfٌ2 ZM{MWw] [ʵ5yC{5v1dmب7rzr}tJ+Gzfo1(5m3Nj
+M bx@{&{gAm i-JrDdkåF)xP"ӆ 6mw[ԆN'd;v@),/6>xc eጇ Cf*NB\Ҍ
+~n e0ODCm:\ϰuN? m9/ ={WֺV
+ֽJ]ߖ5S6j-3?sGk qF,'^۵uykܔ
+hQC`h&H֪+${)vҪtE^ao{X쫸8\O,ؗJsx2G @Vp+"GſQy,܌I ۽d4jE/Z u˱ }W}TvƝSh[c5@l4~tarO3-e{n5vWT5\\h3qqQ ŝ%˯R& ]9!o|rs>xcEiJX=3fV{0;wc/(#MBe7nLs<fYix\. 7V9!~k  TvG!5[d bcaZah]DR+Ys OjB ySvt3 {YȐg%uG۪~<…VoCixVX_> %A#50z&dNYaBm-6%ay~^Rhv70?&?܅gwg֊4G)w/K{iXĬ䑴%8&Guʄ/O.U؟o/PyoKϏOx6,X9/!M.8,oc N~41ʖvoZoyQ&]:^]gm`6!V‘~q%)+ Z$W7;:+r&8a>̙>qf;^̄dL5g8cp=tg2'
+
+mw1׊щ"bL(XL[8CL,G4J
+}] sVB-kVPNكHQCTu-h{njRD'qѷ!ϪNl@^G߄|Ш].*#]Ѥ<駟ѿiIBs)#/?>}b'esrWB)fP౼\c,1[6r8Ob<rKtT?^5_ʅ#ZHkM
+lUDmP*8uජza鿼\ . Rѷٴ/3
+6
endstream
endobj
-813 0 obj
-<< /Type /Page /Contents 814 0 R /Resources 812 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 816 0 R >>
+828 0 obj
+<< /Type /Page /Contents 829 0 R /Resources 827 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 831 0 R >>
endobj
-816 0 obj
-[ 811 0 R ]
+831 0 obj
+[ 826 0 R ]
endobj
-811 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.381 260.195 448.337 272.15 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+826 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.381 257.705 448.337 269.66 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-815 0 obj
-<< /D [ 813 0 R /XYZ 78.37 808.885 null ] >>
+830 0 obj
+<< /D [ 828 0 R /XYZ 78.37 808.885 null ] >>
endobj
289 0 obj
-<< /D [ 813 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 828 0 R /XYZ 79.37 771.024 null ] >>
endobj
-812 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+827 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F57 389 0 R /F64 391 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-822 0 obj
-<< /Filter /FlateDecode /Length 12544 >>
-stream
-x}K$7]"Xd4@[XJIsɁv]-Чkf4ճn?^F?/_/>]c*˯yKX/5ko޹+ӿS{ׯРO=#4 ǟ8>?œ?K[!/{@fKJn(XeXAJh?POc6OC!W^ݿyd"|ވ?OR5|ޣ &9@v'|ųqĢp {d]snɣ3-H6N=\y<p>t!ap?]1z TJ&lq=kR Ϸ/l O
-8/K=5f4Qɬ(ӬC.ˤ% эz4f_I\-az~_ dNnCj/k
-X\ <l|lB)3vX|Ex K7
-V#?oi=\x? C$!̲%;lY{;!V!*d"Tѿtk/p;#ܟN0הq
-,Lg `\[iqFo_š?m^
-}Ғhz(=n""]D>*'km?ɓ6yiGl*,O&Z?蔠p#]}iO&z,.={=6/>734ǥ {@[I/ 6v*ޫk뗒shm[1[{-o5A #1޿RKu}?!u>G0}L7|M7>HM%ѪA+~Qk$ZJ/p81xHk+-am뽦UfaN4&.Fzmx<S9AB5N
-)4 Hie,#^@_!U]h6%"!==C]S۱:I\om鰂j3]ev
-r@6b܀չ.C+Fs3PvUYz*]F)ؚET"W-I}qmI R_ &I%M!K6!_Z3{3 ☰@jO4ElZو5olT)2,r ǪvXm:byUY1!܈,ÊBGI NX TᄖA ר](lb4Z+ВEp'ٹ@N׭b3 䚙ru)&(+s=Y;zDF
-w<'Kw\bQ1"P1c"Te<mNJjq
-
-8r&` iOn6R1g(d:;U<)O
-]n;c\:̔iW3;hgp/g*5ScjJ H.Z,W_"@KgFI,ub/XNtX 4rӉsmpܳ*pSA;+1JMy:k9
->n1| xvu{^J
-IUdm*!Qކ
-D!TɌDs`\"ZBôm|6͕6"(Ncȫ 譪0mtW(^N+eUPPm{Bv7wx/%$,g; 1{D{m|\T*1*arՇź`ܜTI(<-YZMB`6/-A~*=@Qܟ;<eɧFc71--FEkxd4BtfVr
-נ%GVbϳ`NA \iXm@5 F5EҢb87&LWT# zp4rv Zn؀f:~ *24 >I22"Ԉ|!RAǖx} s|BtHI=F3aJ65<bkճG- "øf'1DR
-a`&G&6qHy(lU b
-XB4C>Vedd$ֲg,Lc'(TF2@Z
-HZvmVA[qڰ6|݉aЈ8D!`=h&ZH¯ƅXpEh6G|y`г̤"堆a<20*aŇź`l]UǮ'7ʯ|
-fMؠA O7>a n3qx´Uga2Z
->A{]%;jۃ&¸[}(b! gEKn!֬FMj inѨڵY9jۢջ3GзQ '^=kƽK\bWҪVLr&Lu]r3Sj;DY@T[r4
-rVT=&CRIQI1x[ꖞq¶ɜUfҀ%37C|pZlKİ#q=-3 rxtcq݅٪3ID5NvL JzL0,z >`FԘu.x/>5=f3`>Qg M3U7V6=
-0T!^)}L0&_>$|%ouk;^{9;YdfTOKf?+G!-NgJ.ʡ 3IiLt,-Tx <L zs43hT݌X̨*8PuxDڛh_gj-ۄ"6{~f j8S-fLJr4Br4Xn_ښ@sN~U6!M3Q6V63
-T!Vc1IgS|J4XK @;-
-)
-q LT4iwɍ74ޗ4d|97(̋^-HR Dt[C"m(LuQ( efF|ߝa Ɠ{v+N{ٌ(]!|STZlXS #X*^ X8Cr4շnV͘4%)]*4@| <vWU<YIaKUոɓqS5҈L>|'iÒ'v D/I* ewҢb$kTr.mFJu.T@ça|["
-3E[LָT _4SPQ}%O6&M lWe.` 0zVjmTPY+2
- iRtF$vc$xh%nY7ɆǷc~KLк6Hw},{p_$cZEr /ɓ P6ShT1pɔIS9a|˔{p|2ED6.#/5zmL3eQ) 0MFPus1͔zQҗ[D/bzpOjtE|F? 0R%C Kl"ޔkx+o
-M$k3囡NJ o|4x6b0<b,G4 oՉ;"?'|e't Gk۷K:B^oEwߕ8}Ӵ <~U?@4yui.૘ \}C(y{n cZ?|2)S9s,XзcٹwHlO6R&]J;"'aJ;"K<*\2`|cG˓$> OB$> OB$> OB$> y !Q\h򂥀oқ L<~^#)šL=n{.) KmƠ ^ˊjPI4ұr 6c]A$b#sH1^DF7|VaH5+Ye.0`⣵&|w}b&VuN&h8ACfs<9" } 0dlD3~ RyFÞпqRKU/gbe{A
-VR LLFIJOH7 $A,M k!J)GLFʕA(S*
-Z
-D!TC*J5H`"+^^ hY~e:>YkdHY1XVr :.h5t:M=mv
-D!^%JM"26"y3ՎVP@Fx4vK yu s Ti^ |emY,ggSPLcA\&/st_\VZW6Fo0~4&4pS47bH1*-6sss+TM :jc\0e?USWsυP<3 E4?R
-*Ubd[
-$4%A+8ux}$!Rs$ă^ e33饐BLW"Va[1$vDeu UFox7L`dh`
-/5@d˃.[@U7'%oZA|Ϩ3t%QU6dBԬ@73
-UF+E E
-( V#b2SH(3ӘDDjXvZw0!G1D7+)xE=WUxm1j^0ӆ hx2ŦS!&WMPzBl_Zڑ ԝG>cHmH9!a37b›75UUM4y8fyQǨd KpI{,D=  xԉt9ځ@ >զ+ת*A"70w|EUy|QcQc*=FI*رK @S$0 XK"Tdvdte-BOh06(wUGތYA,r3vV[ d!CqB4%BuP
-5pxxgf$h496a ؊{ ?m<;wA!y>;* 6h嶌,0`X[o*4kpnJS4v|zsmX4@ 2Ћ$5F2 9L%V5<#Ruv9okW ZUjI^gef60GQw(:Y'3]I/5<_DvEbb+qq報.SԈVT%WV
->3AUEo3FdnkhʔH/7\]ģNaX>0r$?>
-K.⤊j,Ƥ
-'"Z42ȇv36_?f,螤-^<I\3sql1
-
-cEPk"9W;Ŏ쾆ű9b~hv _ğ]7M;֟.Mc]K=k"*2a.J o=;X#C6yr&![/~."D - %z0>d3t3O/A1>DGKB6R^
-{"#b ;"c,&'2>yO1>yO1>yO1>yOoǘh>efR1
-Ҭ ^iRL"/R 4
-@+{~+u#
-YAor3v֒fVdGw^|ˠh#J7KK R\1$f۰2sט[LƬ o\tOLh*:MHs/5
-CCcR6ʎYjeEk0˹܉]aJ6AW }&ϹnD<ƖQca&<:XDNY鹪B'c% ٤=r2㼰Z4BY ʉx_]!aXեȰhYSDAAZ
-b(L̄őr&`
-X1^y(5ltl]R?AtA\Pu,BL!'ԉqD@(7hԦ6cZ;41CdwD Z4B壌yoRӮ>"VVH $hkD;ʐhGը@p7SA;*1hNJԸi5 x+mDPpǐWAQ\U7a2xǘu/]-;jۃLM(& {P1H|g9iHPNh/
-{D{m|\TsJ\a.7g?U(
-aʪ$^0'0 2 Ӏ`s߳|ݸ'5D9E4h-Fn|lVr
-נ}eU:A\l)N`N #bv}PM!zM"
-uGiha\XI,3h +I#'LmǠ  hc;?<v~xoc'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'yX7FvWyu«[0u6F.:"k-!(ܦYSSHp&|oy 2$͞ < >p)B^ӈD%U" qcB_S9ߘ.əb1)_8n;T>+e*7²>^N# _vaaVjva7_9ۑiW%K(ݴëwcd\ 9StM=T:
-+dyߞ4˻~hBV< 48|?5ܲ~؂qoINXi$ҸZV:"fFL΅~ _TC䱝^lfCa=YPj5{Z;-ѱ\8tNI} ayqm1k~.~S˃|`ʃHx7KU޹<]ײ®M&yw[>+6߂!?"`Rm|_{X&w5= 1BU9f>9CMBtuDƬj^{.̼fOtI2kgZq'\qGlWSGFw?D9U{yONeOM]#m>޾^PvG8]xndQ|ύ\~sxt>DVw;6X57&>sxEu(%xJHNV8(n0W R#Ydѯhp-,W^LbR\yz¥3Y
+838 0 obj
+<< /Filter /FlateDecode /Length 12722 >>
+stream
+x}K$Gޝ";:jf: 4(]>w37̬,r5ɪ0]];˟.>]c*򧟿wگ^jnTO\IOTwN J?Rss+sG}kF 7'O |^BI7 Z\L+QNVB{`%SJ}zt,S/Cjzoz{3FDVl<}{H/1??hp$oWӀ)yv;HN]We%OWx+[l<}\QJ캆N24b8Ql% sa^َ9y毱}@C ~=}rl~
+49a@Ӗ0DZhB8w8vn{׀Qɬ(YK\IKbh(WT:jIK5z ~80$Xct͑uWǔaȮjQ|?Bןo֢i#'^$PVA&
+wށ^o%kwy~ceGt_MlgznQ3]>4Բ6N)^$k䣩v&Q;~Ov)ѿҪܡәMV2u_20o3mNij;E~7n6T~kIلʒ{v͍D,4M/E
+]ZоHPiNO2R4fD8Jr|2N#4vZ|Njx-v=(\SŸ4%fԴ/|rH8<~g <92W><?Q|PP"ӝJ\JO溧ܟζxgהʜVoU,.#\EN&Nܶ۵7/;~QmrW.LK~^Z^OV.5lbt!.d߅4g-aD'֐M )Q]GMiz%MYx x %i":W5௹4$;mÞo)QuK
+z:ܸ{%sJ"#b+{"#b+pj1ryGlJHXOmζwTeBnni5=hδ.-L17$-z=-mc4Ֆ|j޿FX)JscĕCyiAle,(ݗ| ;OIs{ВVkk,>[mVBcu1+xr(;J Ǵ4s+uL Dž0!  x6M[b|RPI:۔:q;t5#Ig4p?hhO(U=fh{ !>ڭUFarr#vSEcI?6۵zS [> S5)2m٨ݛu\{Sq+xźafe.,^l``KMMRֺb1
+Ab:+OZ{#s TL- Vl 2 nD dAP<|9q_<vh٧Oi r٣s:(О+=1T҄lɂĨ*zJt*|(GK Y~A{b ǫ 4z :׭P<F%WQxOٹ*CH0h@a^@Ko73JQ1}HRf_\ےD17IRI(<}ʒMV)b&Ll2]V8B!4ȉMڧVb6bJ OF""7 ]hlVMWcVl:1rVL7b)#t!jmZƄp
+%JF݂Bi;I A]l+8Qw;=Dzmv2:\N2f*L{fեL͘hόT)Sfn
+d* g5.W[Kj34m KMh
+6=fTnNJ4BF\|؇Th'\IIK Rܵ1$fB󼖪]cn1pSvOLh-4Y OH$)Ƚ*m
+9 #^RI?1*}KV l bt!mʎY(;)I1:W3"L4JRC>+?J3qI &4NT1nÐ]D ͼՒ o鐊Ӣxc z oP8Z̸pkAskoŚ;aK=n609~Q=JVeNJsUu PXr&KL #d7_c8#.idQPVj"b
+8s&h Ӳ'7n3d:;U<
+}i&bϰ1WFH_j8F
+bP_qx
+X9^ΎUj'SǶN(- J.S+OP@pNei֫.Mt/F {Vzw*hbu`%7Fɂ2?(h,GBC * M걫`dp&V*$Uei[.UFkC(1YMw94S {VZGl!'\A!8!ԋ糸nA,eBbq_(Zq[vP%
+v ScC1Y8Ŏ"?I{nB);9e1fO^,F67W81JJ\a.7g?U(
+OaKVK ?O asSf`N>M6 {)#$<Ǵi0=Z[%5͸`lݴ+U-9JW6h<mgц3
+^)FI4,6B5MҦb87&<nFj8;i$Rt<Ƌ*24 $Gj
+ 5/ e<R ؒBK-`SPiQgMMZQxnB</RiN9;8l#S9$ym|dh獔FX5 "%yH35a-'##cpz4f<G]%hN(9"_P@]
+UYDIq?
+R4`g cl^!>*!8Kŏ'TUnОJWU<vⓖi D9ȍֶ9)a[E!:Zza4MylB$0vIFֲUgi2 5l֮@|
+C՝Iљw@7;2
+T61c\&F \hx(CcF7ӘD1J=YM8@.M5А<iXgè<elI!>iO
+Aڪeתfiu45h =Cֆg:J]fC4֓f"j$*Zh\mp+I٬3^\*(j+m*-6A 4eq9+6낱uqԊJ@V1v=ѰVV~滄dT<!7i.yQQ ?n|ǩLN6Avr 4r[F 0UWǸݻ
+w,A(T1XhB,̻uG9"JL 7Ί܌;Y`7ql-QtEVjfg8u\4е~}pⵍ`MپU)˕V} dP gӠ얛ʭ T)Z%,Rm>DzRȖ'ߙPehɵ1IBW8nvmvA+aXux1DI%G%= .lӓq[!=mɜUfҀ-37\S|0--bڑ!3 r81XwF dPgӨ-=A+aS&eWoG9l-SCCh8k[mF4=xT݊Z*Pux1D&Ro BKqv{yrvB5N^v̈Vnqj=v(Ҽxǝa]00t՛,QtEVjfFT;ū%
+$"YJ<aH!rpRacCVLv,uݒܳrj;E+P4 "@=zhbìXX!ۗ''΃we (e+`i3Ω
+Ab;1&lOQf<֒`!yKxB@;351PY4et
+r DYZ{>фv
+t''n dPfӘ-9A+8Pm`
+E;)~h;Vp'|pܸR[aܦmA&7 h: yr#-9 bi;GV,& /zpyRz8&5 QTY4h1ksY9BQߍr|NzxMIڈ=Wy"#sJMr{aЃ25ʀRoThcnՊISB<^rPetrp6cjh y˓LָT
+_<7EPYQ,.x>,y}v@-IP~W0jK>i Q)Z)*;u Ǥ.ZvmڏIx&(m3IRXR+|5nӤn.AF<٘4%]<9,¨Նr;d*c?TD
+]4MTn$bcͻcv}̏`c
+lңc9& "*;`0'52Um%Ѩs)9a|۔=k>21R/mcy4S^
+n"Z-])S`;N e>̲O.?SS_5O3]&1nMev5ȁ&](qٞB,.d<مlF[&~."D 9-%o + ȁ 90z?EɁm S
+N&hipLДOh x)*]L20C3~IJNFyFӞ0yRiܥ*iYٞ@lvRFV&AR6IJ'/Bq
+CM knKn2*SdVWs:T+jM
+$7+"mP (!Q+^\hY~e: 1Nx!aj 
+k1$vB#U| o.q[vPMp,&q{˘hlJ.: \{`f3PYӦE{a5u%ZY
+(CJ<B1i
+@AN
+Zc&IDRBx v'@ӪЎ ӴGR1=Z.HhG&7bؔ`ܚB(hkA^gpo=A{ ~C)T43дmJ(:+xJHKVp!NMKIR7JJΕ1 :\ ̤z)ꕈ}&*z:.]xohCQʈp
+M(*QiAYV2h.@̌IKƈ册4 sY陊iLDj(L;PLk%M&K
+"JU̮Xa>(űѼȷa Ad-gSLʴ"NXm_Z9H΃&R'ᗭ0{#V޼Qȴ  eSUűƢ \:OǬ8/1YS; iBhf]`?] i}
+ 4
+M+V
+ת*A"70.EANF$1JBTƎFCC8X J'S(>0!ZK" te-BOh46ẘ΃ҿ7cV6
+BVC1YTDRT]ȢBТZ&M(3!ZAC 4rۅX0T]:tkHD)TIhr@ޤ-(؎Ƨ۸8cSdUdжh嶌Y`Rð+4ktnIK!D%Y!hf+1smX4P t2tsT/7:[UJxpF 4JrvJ ֮@l+ UwWYfV0&TfQfi8=;~@E<J2! n*\-Q/qDƺ`V#ZQSTc\Y&+xfb|aɃ&ȗ6,n3F5&c #e?{puG VBӰ|a$?
+K.⤊j,Ƥ f
+ݴh<Gn>1!zWJ^/n7f~q3_/n7f~q3_/n7f~q3_v|̆iPCQ|̮\30뿕K63m!,7Š((aLu#-+YntM)h;tM,ieRA/~OE "jNY5qU8.?]!s=˦
+p4.гI ^ggu?y>G~2ݎ
+wtŪLGZ7(\rc(Ţ)/y{{6'铷&'҈>9֊gӆCrXZ@y(}X$] ʱrl3 "P~.|.FyqF| '9pE[8p&r^4.&iy GmdMBoFD-4H(?OmS/A6/A73Q54yߟQ
+4[!S[1]&e_L/&IŤbR~1)_L/&IŤbR~1)_#TfV8( T߁~U]M>Y]fiVX'
+ةnh
+"=[ASvХ= Z(kM^Gq"+~vpR,m-7*cJqƐ]2ʤV]cn1ʙD)Z}Vt,D -蹗`!2Kw<9WwyrD*C}jQohv8Se4hL
+F1+Wm8]iw3r'4RYt-IލNjt5.p΃L4тRkNƚ \t-U!D}6W"g
+Ak`'/HgPNy +$qXC6y6keϬ N*%d L қt"X{
+wBM?PaX37Jg2={:fWLa+LәkG݂U~RXJ_#)Sh8!P= Ƅ{Bɾ %4:WK1[pHiQtMYs[0L=4v
+]nH}\:i|B
+{\sQj12ƱmtJK%~jc5RQ(BL Nԉr4UQn`s[hܳ*3w*hbu`%7F^p4Oh壌
+޾cWq|M4TH $\hkTwQco:&Qw
+U2c"ˊjEZ GjqV?QseBF; R/O㪺Mܖ>
+ͷY]+eUPPm`=WB 81^$!YN3HY
+nT {<T^^\ޣ 4Yog dC<jkd%ܯUb q%dA߄s47F.B;tH7Aw
+*_WC/K4sJ~M8m% tk'v#'pN\Ѹ]n<:?eW%5,Ӈe-8޻ٷ5O}TB1Nxրθy)RZꄇOrĽROg<yڏ'435YI?J|rn-NȞTYi J_6E,%(džusqBXjuVL49[Sjf̕Eog58m``Cu ཙ"GAT>eP'\F.ktZӂ\D2+*ۭ+?WzT&|^܂NI!W9jdIk|85P3uvNBSCꖈoBعE,rm1uo3}.W1%U-|S2PvOvU{bWNXtrCrI1K;&o:@cϧL_ȳZWKsUJ6,Bʪܻ}0 7wm.7+otDF[1;n{AOE"%3eluƯۯ;|Ld^\ &|z&ܿ%~)h+?.Z ə=24$P>5*"\iJ/#E㎽<NoȨe&,D<~kϳ_ގW|bs$Y(s+^ sLE~ol4M3]d?F?!5̬ +zVx_{>Œ4̔n~Sfnwm$`lVҏ-I;_ᝥ^D=^ (YN8k MW0K6~{mKxgK8
+{IH}}%<^B֞]ӻSJ[Sd4US(=uK{nBʕQR0l'I<A^~y~,'#2T9N-WA}!gڍcFuOqj$^t KU@t̳CrJ3Pt/8T[3aitgG-tO᭼K_ƶȩlJϡo~+W(?D4vFBMAv9c GXWk)ݤwr;ۍ>OAŚyxMD7a73<٫xuSCZ|ŲЩl^2_5$xRFC$
endstream
endobj
-821 0 obj
-<< /Type /Page /Contents 822 0 R /Resources 820 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 824 0 R >>
+837 0 obj
+<< /Type /Page /Contents 838 0 R /Resources 836 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 840 0 R >>
endobj
-824 0 obj
-[ 817 0 R ]
+840 0 obj
+[ 832 0 R 833 0 R ]
endobj
-817 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 253.045 239.124 265.001 251.079 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+832 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 295.184 233.087 307.14 245.042 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-823 0 obj
-<< /D [ 821 0 R /XYZ 78.37 808.885 null ] >>
+833 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.529 221.132 384.485 233.087 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+endobj
+839 0 obj
+<< /D [ 837 0 R /XYZ 78.37 808.885 null ] >>
endobj
293 0 obj
-<< /D [ 821 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 837 0 R /XYZ 79.37 771.024 null ] >>
endobj
297 0 obj
-<< /D [ 821 0 R /XYZ 79.37 695.22 null ] >>
+<< /D [ 837 0 R /XYZ 79.37 695.22 null ] >>
endobj
301 0 obj
-<< /D [ 821 0 R /XYZ 79.37 288.23 null ] >>
+<< /D [ 837 0 R /XYZ 79.37 282.193 null ] >>
endobj
-820 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+836 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F23 383 0 R /F20 386 0 R /F29 379 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-831 0 obj
-<< /Filter /FlateDecode /Length 4340 >>
-stream
-x\Ic ׯ(j
-
-$Lu?L}IZ)ŔS/J9fX
-͌#Zs]9?;@ /><p&PۡP `(ϴtâ˨POճ 9BI(&){>9 e6blA}ϊdpO'-} NCپf$NpxKL0a)N(K(b\% TZ\pPW>Sd]ȟ*~ߞ%=j7@a,Au+jދjV9%ɡ<OT?;,91N:@Z=6tVzn,b'[tSe
-sj*16nN' ڗs99:Q*2-TwsGA0k95~g=uWg&C3; PuL YRmǓh,?kM6199;[1Yń2|ZRk&IQ+^"}34EiSo$I!<I+vMr+`RA▆Dڑ63UuGs x˱L%u5_bԊ:eUшA|};#YH6U˘g3a !Rwtm GBIYt*$'v 1’nZ`7Mғ1D&rWPi$56-T|ɁǏ|*-S\Q.({?CZ!͚90O|t[ih۷#䖔3h Z ֮][rN;>39K\+5/=ńO8\Ns^Op O#2J#V
-2gib׉0d<>> CGYHp/--qݐRLޭ<V$sRH4H:T:h.v\a8,|c MQELAic#8(mm`p
-y/[O{: bܝ2!ﳼ8C܁z_YIOdݟLm ÀD´jOD(+99~q[sv7X);;:h޷&JE&L澕${Tُ_,'J30Y8}9]gtefa7tzl"]I0#)-'Vʸ'<I30:eٖ%ۜ,t02VYwo
-+˖b<?ֱf{+Hxt@$CӕJZ韄>WjdѪ69?[ u!jj٨TY֛ցp u5Fd ֪"q4jE#moa Lc>DS#iGo|
-rV^ .mH>`UT_нMK_,*|ېiHXj6 KU)
-QY^! FN\"lC^$oS83/N+5-'7ʅ'E(Y"Gu-Җ/f+)ULWOꝵ?HZ(r0h~lG>|>:R#Y"&,ZfSg4H@wꢋr+oǢnoGof>)W޴ʺo_
-u[Mkzyy p!}Z428dᖁv˚ٽ_ 5Ng g T# WǺ.(ˑ)rn=6~SwEs2(U"5Ԩ%1QΗtB_qrbqS:Z;9'BXBǥu}Zziẍ́$דjj\\{:LF^.@E[z TȈVy浾mz
-jm@<^ݛ80:R 9pN>cY4Q{>J7Av^d@(Ŏߊ"E
+844 0 obj
+<< /Filter /FlateDecode /Length 4541 >>
+stream
+xn$=- Lr 2 lCrJ-U UERw"7weoQD~E yS7%Aho)!R(yO HMoS}1-<^G8IO_u}[ON7p#kX ~”@!^C9*+ =vpc8%(;Xr\Ao >@$~I 8Bwv38=KVNhXfz`>12K R] @Xps"z8+
+iVޛ6x0_8Ž)5A'{sl"qs\p4l8z*IO۱M6|Ic 3vn Lz 錾xtOdwZa o6rmFh ȸC+HQ%?ܸJnd|iVS[wQ4-_3S9-%mڽ(Hu5$ޠ6jz;\euWvE/̃Va;abK~rf@Ff*+#JOK<xB@PF.R(p2auQX?ɂ'%O~\0eJƅ/"/\f;9ҧmՊYvb)[<rHvѡ 2xITY NB{ĂvmR H
+3Dbډtn2"<.4%IҏqNb{:.Q7Yю0Q)+d43x$|/Dk).[I:=+jG ҫɡGh^|4'Dt0ΦP8{?:j@iWs@79pQCvIq4I!(&J#US4a}FЗ8ܙ;\޼$XS\"? nw y|\ZJ} `8kq't2ճ|FzwLUQQ8CzCz+ZQ׷6{5Mc:ey,ipJ^Ҭ몥ɺwAJH!rOS)ܻ-IQ 쩬hQ-;
+8+]L;
+,L#MumRKC=7PSb.9*r]+I]i
+Fwrz\yTknJ DGt/g
+ضmcf~<Cx|Ny=~ywᦔ*ϧld5v}ι$~ܷ_v*ig-;WM5.o<C4;Fy])
+ ּQ:Y[W,trEe.ɴv3mpSj ЪtVN$5CjJ"θs [HڰM.qWZh4F8`X1s]m
+nYWveEe'4 ,0B͵_0Wm~dI>Qw2v vy`.dよ~Yl+'mO=6Oeiy'۾ Q7ia3^Z>_iS`*L=3S:4,s!?Qm:<=m.J\sTv1MY 8
+`y>V?q(QT'*@N'QO%s4#C%<+E=k'!XzdҳPh'9Gn{v#\I ։d릑vODD)Ó@+ z{;2g џs)lT=bi@^81e _QZ՞naS6g*\9
+y&ipl=:9Ah:F]>:ʯU&C䱩
+j\aʑ .1ta,uS
+g gh67|3}ђ็{ٳCHlH=٪,0"u~GMۋ60Qq+7 N؞@)gy忠TsIO&д͒=s,>n%!Y5l=6-rnR,1e:rkyr|uuC!"Uw;5o.бhY sy7=*cE4z^CP®طDœsH[ ^rKCkكXH} 1a /AJM8p3!M[7&#adW< |
+m߀9NtA R! f=ڣ127
+,7Ҍe&EZRۋUf.;TdQQ ±ʓ)q@?
+ǖ*vB
+r4ʚ6RtxYg_HI8W`ӕ=l{Q IeN#~lॕ yT%CpKTԘ~GP= Vn)X5[^+ۜRe!H8!pesyRmm BѶ;90_ȓX!uMhU|lEH፳*8g;ٛS>oz^
+ ʎs
+js; n!l9m:֖ct󁉔\KOZV!ֿq S.Է}`Smg(l|-5޴f_xR_G ccp3j
+kf<|DFhB*ŒCxɚS~@Pi)Q"1{˸1jCX
endstream
endobj
-830 0 obj
-<< /Type /Page /Contents 831 0 R /Resources 829 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 834 0 R >>
+843 0 obj
+<< /Type /Page /Contents 844 0 R /Resources 842 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 847 0 R >>
endobj
-834 0 obj
-[ 818 0 R 819 0 R 825 0 R ]
+847 0 obj
+[ 834 0 R 835 0 R 841 0 R ]
endobj
-818 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.119 148.817 393.576 160.503 ]/A << /S /GoTo /D (subsection.8.3) >> >>
+834 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.119 152.294 393.576 163.98 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-819 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.643 139.124 128.099 150.81 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+835 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.643 142.601 128.099 154.287 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-825 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 107.768 81.652 471.982 93.337 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class)>>
+841 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 107.768 85.26 304.438 96.88 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/528975)>>
>>
endobj
-832 0 obj
-<< /D [ 830 0 R /XYZ 78.37 808.885 null ] >>
+845 0 obj
+<< /D [ 843 0 R /XYZ 78.37 808.885 null ] >>
endobj
305 0 obj
-<< /D [ 830 0 R /XYZ 79.37 590.246 null ] >>
+<< /D [ 843 0 R /XYZ 79.37 564.344 null ] >>
endobj
309 0 obj
-<< /D [ 830 0 R /XYZ 79.37 428.398 null ] >>
+<< /D [ 843 0 R /XYZ 79.37 402.496 null ] >>
endobj
-829 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F69 406 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F71 419 0 R /F92 833 0 R >> /ProcSet [ /PDF /Text ] >>
+842 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F68 406 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R /F46 396 0 R /F70 419 0 R /F92 846 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-835 0 obj
+851 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 45 >>
stream
x+T030U(2 8LXX) @`@
endstream
endobj
-836 0 obj
+852 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 53 >>
stream
x+T030U(2 ,-,,r ,,Lt–fF
@@ -3622,2071 +3703,2084 @@ x+T030U(2 ,-,,r ,,Lt–fF
endstream
endobj
-837 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 838 0 R /Filter /FlateDecode /Length 15 >>
+853 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 854 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-838 0 obj
+854 0 obj
<< /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [0.0 50.00064] /Coords [50.00064 50.00064 0.0 50.00064 50.00064 50.00064] /Function << /FunctionType 3 /Domain [0.0 50.00064] /Functions [ << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 1 1] /C1 [1 0.5 0.5] /N 1 >> << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 0.5 0.5] /C1 [1 0.5 0.5] /N 1 >> ] /Bounds [ 25.00032] /Encode [0 1 0 1] >> /Extend [true false] >> >> /ProcSet [ /PDF ] >>
endobj
-839 0 obj
+855 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0.0 0.0 8.50403 8.50403] /XStep 8.50403 /YStep 8.50403 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 79 >>
stream
x=0W Y".RRҿ^( U b1H<ܪY`2rir:"B,Yr߻qB
endstream
endobj
-840 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 841 0 R /Filter /FlateDecode /Length 15 >>
+856 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 857 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-841 0 obj
+857 0 obj
<< /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 100.00128] /Coords [0 0.0 0 100.00128] /Function << /FunctionType 3 /Domain [0.0 100.00128] /Functions [ << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [1 1 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [0.75 0.75 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.75 0.75 1] /C1 [0.5 0.5 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.5 0.5 1] /C1 [0.5 0.5 1] /N 1 >> ] /Bounds [ 25.00032 50.00064 75.00096] /Encode [0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >>
endobj
-846 0 obj
-<< /Filter /FlateDecode /Length 4886 >>
-stream
-x]KWh ,x 8'r0|H6DXvTM6gAF;&dbU1闉߿ ?z\W ^ЉMa&MP*T;nR/wR$yȃyJٻ&LTxC<]|ғŧ*SP并Pmtixj;o(뒗҇7:RN,=a~hq4R6RPzJ*P )NlԾ2q|9fnu|/\wFnYC ==a8N.IAL?jNr
-k]ւܺEXo /Ȃ7YW ;DX+wE${;
-Upd LP7Y40x\jU񀞥`WaQֺ+,zL~̒@`E<kRI qf,.F.xZF(}P(BH(=F(oeѡ=L
-L/Wmu,aZT= B;< .IlY-ӄ 4E7J&96nGW"׾t|$s(ѵ=~*)9gkCU㐂l@[LCKK2JV3֒ oPgK"F)5Mˈu}!'3VSy?Os]4gq3(279 ''X @OIzH9Ƣi j)'aœ# aҶJ8%mX_jP8h61әQs{f{$
-ekN>Ǚki$86 }!˱}ĹE^dDF KGs~.˚r nmoVM%M,F]~ Jv֭@uZ;iF-B X*yB:K '"^Iּx>{ \E76y[Ί' T+YT= K=}xB#IJlf \O-RtQ>va.P sb?׆c({ r(jzz~]sF\2RHK]hpb91& 4%L|8`~{
-Ёe UC*el#N)`%ʀlے()|5o})0VUO9J2GT zBK(ۀa!|wJˆ 툓72pS,2{I33\юmS`V{9`I25I8h
-%%͌(S:͔͖:.EdR~iFb<-#_CqU*V."L,5(y
-mJĒJ޴0H5/MJĘgэԍ.vX.^TOvu!69~ߝo-Fj}#%?~R :=>2A'X&7m$'JEFi1Kf`R}CnN4 1sKW[1`kiOūש¼͗RC+9|qTLP$JKghqVHV(aq,s=L%k
-i\jvH*)­J }vJǪ)3}kdIBiVhWI \J͍ܤNJrϗ<~
-D[?$zNWenqnJ'ƺ.8>JE\}re5\r0˔,
-faERR;Mqa Bo&p\ `^V}}[QA˨zX)HW@˭$zX4h
-f?/ՖkN:yT{+)y쎁.Ef}/Qߍh,-);5cO%|)Lh!4ZS\n .w3{3FI;P`Qn#p]nBĴgݨq92GS6:6Zf35D$b9g $W`aٰoB{54,<
-S5%'بZڨ[DZĊ<tQR1,3:ܞcXcX&+-9p
-Vߒ ]}(aKΐJG}mgΐZPKJM^)ؑ/Ԡay "t-*wz\?vjA)
-D&ұi:
-8Wj751*?b
-]U"
-F ZkvUm擐=^LɍʨUDWUXp
-h0#x?1{Nj|qp{DUtz䎌xB~|0轕"eJʾ`Jo1'-)U=Y'8t|P>!_>.XuS>C{hh[e}Չe1G YG\cϊ&H;~v],ۂ-/<TMǤ1_Zُ%O8čN]ː=^x%orgKdsonPg8e?k
-]9QkT}@YAËQw_Xo7LOSJVb.LX{:>lf ^\S_6*}@D
-Hǫv*ӯln#+@N\Wt9L\ua]7"j.aM,X V;`Oa)^ )eȥ0Eִtc,]/ LWƫnH H(Y,3/{q;o-PQ(Jߴ?Qf>yF'cq=jckμ_ic
+862 0 obj
+<< /Filter /FlateDecode /Length 4224 >>
+stream
+x\I\Wh,`
+O4kpͱq+&38JM:&7+bz^peB1<sLK21g<cFpӀЯؤaePdNAN*8VH{y94@~Sa3ܭxI@:
+YX&_GxC][;5.juɂeAln̴
+x$VH"صp_0lyT8)u)2:򯨶5P$G%1*hN8_ij(=MʞcUIyYkNʼGVsrJZaI3u$^&P3 @)\!^[XJoJAk=ػe9xx 3,Mz"=qQwqmVCu0kuOSU&#"AȮ"h\ʣMc ݽ~eNr5ۡF2h&|tvZo<Iߔ!ԮB_'؀R*I~:-9vz{QaU4j4PS[IˊUQe
+P˹!e@!1&Qv|*( DGjuW8n VPҙ9VR108
+P29/ :\YkKՊUIǒ3fWT3K` `| q]!N*ng5WD-_+c;2M[Wol>a ߑtA&d<TҘԻ>2ͪo؆"풆U \>5ז4_U $N5V('WŀI247y~f LcOE߂3HK%`FZSVi0)kSӄp:c{29<Ե։hYW
+#Xf %ݐ0~A|e4}lQQ{cfS`;U츪#ay!9 J2Q
+ivZ+iAk jR5 3u`NnXRJʬfj8Y49úP9nFF$/_BxBDmjc 9Z -`4@Lhׯmã30xWE}7ؽDDӛ/!Eâ=gJGK//t OShвAmkmcp%~A~}L=uU9VJy~ooHx.سb)4ޥ3J2΄@ 9F*FZ"p93@2Diʴ>w>sg*SOZ2n2 \.-~Jˠj'e̐f\_wg˷IL?~? G>%"B0?Jx]ViQ)bJ="P}:_Xzmup~yy#oꅟɌ 9Xwy
+Pȹ!QD5vluYW)v>>u9I ؉h8S*s4p~
++<)G$sb(!kW>@Ξ*0:CE0[l8EgRNJ/\0+3R6T#tê$X&#*Q~T|.9ڷ:BG շ <t,/z]6၍;2VۋiA}];twiCLOԄLģYDW4^&;itmz.VHrXJ9RwG7s F_!t"֤f?y1z8Pk}{q[?dZvȻWh\f\7:q;궡5۴zxƽ6K52H5 8h9$Hb㻳`÷|
+zBWFؾ;(],!D͜4 d9m,Yٕ$~84l{|k{tg{6nmwuTFg5AFs, *S,:;<T{99tW!jBQYoܼ[5Ԑn*Xݿx`5f"zI 
endstream
endobj
-845 0 obj
-<< /Type /Page /Contents 846 0 R /Resources 844 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 848 0 R >>
+861 0 obj
+<< /Type /Page /Contents 862 0 R /Resources 860 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 864 0 R >>
endobj
-848 0 obj
-[ 826 0 R 827 0 R 828 0 R 842 0 R 843 0 R ]
+864 0 obj
+[ 848 0 R 849 0 R 850 0 R 858 0 R 859 0 R ]
endobj
-826 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.069 725.053 257.024 737.008 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+848 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.069 659.94 257.024 671.895 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-827 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.772 668.622 165.248 680.577 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+849 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.772 606.142 165.248 618.097 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-828 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.969 668.622 192.924 680.577 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+850 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.969 606.142 192.924 618.097 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-842 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.409 67.03 448.634 78.65 ]/A << /S /GoTo /D (section.5) >> >>
+858 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.409 67.492 448.634 79.112 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-843 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 459.337 67.03 469.794 78.65 ]/A << /S /GoTo /D (section.5) >> >>
+859 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 459.337 67.492 469.794 79.112 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-847 0 obj
-<< /D [ 845 0 R /XYZ 78.37 808.885 null ] >>
+863 0 obj
+<< /D [ 861 0 R /XYZ 78.37 808.885 null ] >>
endobj
313 0 obj
-<< /D [ 845 0 R /XYZ 79.37 621.864 null ] >>
+<< /D [ 861 0 R /XYZ 79.37 555.317 null ] >>
endobj
317 0 obj
-<< /D [ 845 0 R /XYZ 79.37 582.578 null ] >>
+<< /D [ 861 0 R /XYZ 79.37 516.032 null ] >>
endobj
-844 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F69 406 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F67 393 0 R /F59 397 0 R >> /XObject << /Fm1 837 0 R /Fm2 840 0 R >> /ProcSet [ /PDF /Text ] >>
+860 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F57 389 0 R /F56 388 0 R /F68 406 0 R /F58 390 0 R /F50 378 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R /F66 393 0 R /F59 397 0 R >> /XObject << /Fm1 853 0 R /Fm2 856 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-853 0 obj
-<< /Filter /FlateDecode /Length 3012 >>
-stream
-xڵ[͎ S ,=-pb:}(T]*"?%qy˻;9|_>ܽzvqQJDk_>|SF.jQ_SB:| Rw]StJYH=x- ~\gn'} IlHIzVv":Dz#U$@f) Q
-jz#Jb,V&{gYɪ`VM I,<) "AmQӐ7U'?'l> gF7Ӧt!Wfbv+)QR厔[S{ᡙ[z+FxobWA?aȇ 6«=yRx0mp8!Ce\LNRF5$v^flU߲ۦ-sjdӄs:C-(WmLȗ$$ilaIR</Gm2lv3UrjRf"`f> 0lRfpd
-M>M#dCwRZ kGrRxg!l ]nפČð,oas v>uF8eǾC|F4<)}!s0Hgo~fB+twN ΈElG,RoѐgNBAgOʼR(|Gp,[M72Ţ}Y +
-@$ƾGpacǻCi'|4GPnjc7'}m"xb0A~ .a7ؒ]<=jl/ÀP]Lj+k^PvW<6m8L6p
-+.MqMD7Ce
-+l26bRORxaҴǩGޢhr^ْ1ULKɼmGI#M#a[uK([)s
-H5E 7Pu AOȄI =3wE/w ClS(69\70fa`1iFY!饔SfݔNAnB^ӕ}GAA9=@€)+'SŌdkENՌ3{ x܃ 0G^|~qf½* cO=)K zoھ? Ns#6w:֠Bt:3uG~_E: pNm#Qǽ/1}iw <|CodPRh22%g\<UBj
-FYg4|Wj(]ҚsUn 行_m 23gɚ:=re$BH%WBu7֮Mx6kfE۩P2.xR ?\ rl$·%Jr]zv\wY_`@ĭ-]j-{jrDHRj."mlgpؒS/fAkJhh@pO=L_IlЮ>)ޕ@€+b&Lیz>p;y$0{y5`PLW
-qt'Ėg I
-}c.nO20 ɐJ
-z)5|$mԮRs6v߲C5xʤ Ww<gt`NYU/([)d* PW\`2#'F-h_gp0C?
+869 0 obj
+<< /Filter /FlateDecode /Length 3379 >>
+stream
+xڵn_1?p_
+
+X&f,|ֶwʀYo |TI.`O9}b<~?}=;]%Bf@׽b0_@\2k;MOyҜ.9Y RѸUc0Y&yC
+CRwWUim
+,&HZ{'>XΝXƬjwA;yTv,sY4 웥=maY;j;*ڛ
+#}H SE@@ʈ趁Α,G_Y(&9-ܽ<JҁuK2N2 7UV% Ɵ ux.FtNbWv@CH*
+s;qC [@)d2h(0`Jx€71`KA5B B)nwuQc08;C^
+hOIyev^sWtwp)ݎ ye#6 ZXlQu[ɮw Zͱ!j)#/B>ӭ]I/U<1n֣Onyo58 Rpf\gj{/mhߓpQܧct-)xr . ޳d%6ir~"-eMzMgHVF7ذ~OgS$,(S{)<̧|* z*rMeb.oʪ: b>Q0 f
+!nt(ڃqC^ޓb$lt ;TDܩ6i.N"Kۄ;ݝ$!4ӢG0Ҽs3L1ݧjuV먒,+:K_N"ZbT<g/A咟vJo1lOdypOmJSC7RےRS 8SOJ%]s`{oiNr0vPXLc- \Naڵǰ[`cId_kʔH`5
+]H=bNGՙגY},Dۣ$Zu-!l~StJzǻ_N)GߤEa)ޏesmš<e=l튺-Qh-E_ͼ m\KkYV^\಄)[_eJN:ʀO9wE11BѷZM8ohwhX!mmxꔬLWq~ըߔpa{ߥK+<2nakRi.OR^0ݦ,*CrDMV[Tʣ0(AhT|d
+%S#Y#Sml=mTrEk:́z+r
+;81-+#Oio d~K$U@l, /ӝ@A tÒ7 k,W鋑T7&1VKHT!br+g %}JVe)>pJ",M6Xw6[[ƨQb
+j4'?
+kO؝z7q` ca`FfA<=+}E5:+lłD|L :)^k$R "F<u4,-4@h%cK|S`]URc`!Г97rwԇ`:g
+hxwts,,Tne)/}ƪs}V2{'cm#p&F4{Z=%br`\O'GК5z_iH5."
+b@VnhҖXY
+Jg)*-[d/CaSO3V뙒 {qvʝrS.J)61~s<
+ؾk*e@v@Meh Q)HHhLZDHuum0u aaFpX1ms4y]N,C[7JAӛ
+)m .#&{
endstream
endobj
-852 0 obj
-<< /Type /Page /Contents 853 0 R /Resources 851 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 855 0 R >>
+868 0 obj
+<< /Type /Page /Contents 869 0 R /Resources 867 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R /Annots 872 0 R >>
endobj
-855 0 obj
-[ 849 0 R 850 0 R ]
+872 0 obj
+[ 865 0 R 866 0 R ]
endobj
-849 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 111.629 188.779 123.584 199.449 ]/A << /S /GoTo /D (section.13) >> >>
+865 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 111.629 67.937 123.584 78.607 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-850 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 188.779 148.491 199.449 ]/A << /S /GoTo /D (section.13) >> >>
+866 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 67.937 148.491 78.607 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-854 0 obj
-<< /D [ 852 0 R /XYZ 78.37 808.885 null ] >>
+870 0 obj
+<< /D [ 868 0 R /XYZ 78.37 808.885 null ] >>
endobj
321 0 obj
-<< /D [ 852 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 868 0 R /XYZ 79.37 651.376 null ] >>
endobj
325 0 obj
-<< /D [ 852 0 R /XYZ 79.37 238.154 null ] >>
-endobj
-851 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F66 392 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-858 0 obj
-<< /Filter /FlateDecode /Length 3034 >>
-stream
-xڽ[K$ ϯcrhY0`Ƴm9 7'!
-ƭ|rs9Ws.9<1?x?2u`V>JB?' 2-=#5=xxLใOq\Μ8./ZVauN ~gB"a^^Jȵ%:1aDۿ+3B9wY-eB/j3Q(v#~/ kd7^~63
-H(YUbÊE9g2HPi2k>Pt0u4E RIqS[BemuֿѫDSh
-Pdܢ\7Jۓ;iAl|&~o cw>56*bq lTpFՐid>ş2Sg=|e.X*[K4(G=(, \ږcW([QH
-
-jma>QLL9'e{&'$p;1&qw%)Q`֖?F2cKhҤhaPܯI40M"x(#QSsqI{~:=6 EYODbM,Q0gC/}k''<'>u]&۔fzh
-ܺd&?Y{.2J~+h /Tew`G–s|}%,aZxb~p43 rw5k :J2*:|}G!`ϱ/Ll1YK]xt@S:1<S64'Ǚjrd>-cRP(8ͤiH CQYa SfjE4lx {|!j#wZYH lQj'-AH*@lqG
-R31G[w YԼd_HKHcBQ䷣_?|{F{"4<5b9Oȭ:[RlVYױwPC_3={+ſ: *A:{Yjf5>PY{
-_QL W4Ѷ4ݩKu.ș~R83Rǔť P
-"]e
-endstream
-endobj
-857 0 obj
-<< /Type /Page /Contents 858 0 R /Resources 856 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R >>
-endobj
-859 0 obj
-<< /D [ 857 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-860 0 obj
-<< /D [ 857 0 R /XYZ 226.44 282.578 null ] >>
-endobj
-861 0 obj
-<< /D [ 857 0 R /XYZ 232.109 270.623 null ] >>
-endobj
-862 0 obj
-<< /D [ 857 0 R /XYZ 195.137 237.821 null ] >>
-endobj
-863 0 obj
-<< /D [ 857 0 R /XYZ 195.137 227.649 null ] >>
-endobj
-856 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F66 392 0 R /F20 380 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-866 0 obj
-<< /Filter /FlateDecode /Length 19631 >>
-stream
-xM,9%_q]v~@!z
-hhSPff@j5_f$x7nt*%u#+g~vN߮pm=7-%W~zsoCy+ݯ~u%]!п+~7Kw "w]?BI"!7w[s|дxݓ}1?2Oߤ8/5B|I蟟 [u_%c(m}ɩ]6AYp
-kL$$q~9fC)VD?5BsX!̐?/{}kUW*>_f^
-IWi`۰៚%md lcis>-md9=wMۃsKwwo5_{^s1ϿB_@hIԋZPŲ yh#@3MbmG /k>+Qr?ojwq|+۾?m~t>)ƹ^˱}U=? UQB:;~g=o~'t4ٓ_='4F.#~'I{[܈_꺷>*?JSof %1}f#3@gԈ9~`݅ fQJʧhH>pvFI̟Z9J>kW~qS+uޮ?^F_ CTh5퇿u)J /_? RB7~`95 ^S{Dp 9z{u̩iT3P%_i$[\{iP5,%s Z(׉Fi_M̍hCт^mw4PLT˗{5}^M#=e\i^HO;jS9Nf;~v٩eD4BPIO4{L6ΐ>v6D4R(aIW̥-/<jkFB=Z{:l.f׳Q9w_Fy(e5~iRFDddOjJ84yu}&=/I7)J
-Mb[nW\|Lџ3i6-;U117}r@ %GZnRwxpW趸(\.Wr׍C5|n>Z7V׍ue׍GjằZ}n>Z7V׍GjằZ}n>Z7׍GjằZ}n>Y7;9'X^pr3y<8Z_e;;u@zۺxg=z^_ۺxc<v/Ǖzƛ<MuF<.]Wn>ѓ@&{_׮KҤMC盞~P2M(ko Ǝ+:[tД; %``9
-
-dAC Cxy
-ASK[@r@32D t
-r_#IۅjpWQ{&AHl Fe&a*?#ƍ;)vAʳ
-=h>a< }vhQ˅RB}2lW+M3P
-YiPC#]'2Tc רS)Ljfh8ڴŏM<;
-dAâ;=8d-72bE9.7i`ꊋ|TRAKFCJ"y)$~絊&eT+hl jpBw+0>l"7#1'07[–*f%S (ޭJqz2qE3 $EvF}LꁞK'7!TLh۪+m2-\xdJ4ә*i,.mJ
-s2R=фWaZ<JiF)N
-`Rt(έP&?^Xb@Y(OJ‹z ?9f Y
-]"n7(mGMXfLTlMWBy}LBNr+)L}Ҁ_b2bKP$&*B1kis jebV,0Ura݊EpLW.(a YS(k54p n3dalk.%b&V :k|3BPb=V%z.ȯ(ѰbV,0Ura݊E0
-6TX Xg'Цb +.9ҭN*a}^~5o 7&H>_Li7FF.O8[d̼f ɵPYtGؒ*`D(#J1r.w4Q* a!p!?aa&,/>/oo_3P*6M H &g;F 6rU
-x$ȋ9tS]>1Q'}71~l M\oдr1T)].W17t\g.ll1Հ]°P^t][h|ߴ+rZV% c1e׿^4ZK}-ZA Q0u.+Lz0ě1kAgG"#hUiѣ/Ќ.e<|',sdZh50jMkh r<7q&>,峡3vJ*4N+$N3aK2]>/<cΎGlx+iLâW0ﳡtd(E, Uq.5^k% WXFͥ?޴M3܆].W7?-'#'Jٸll#i$uĬ"'wEW,CHFr}Po(r̎_~@ó\=`O7GaFUZ
-vFG"rxQJc,#J/Rbcu"GFc)li4mYFoXz^\kLSF)U( FI(H9N D<aiyu-Rr4B226wR\_[rcU*
-4!|ZvǻZeîdL]F
-W9 +'H6q*N0̈́~QC*S N)E!$F)(lkzվM_^heYb'VEijI!#`÷\5szt4̜^+>ۉ+%V &_e8jc \ M͏Zm&sbϪm<A[kV<y+IxCg)(gت Ax)ӎ.aԑ9}!~LDy-rt[ ?1-4vF/ׂHc
-R{.ll18]bPZ+wZcF 4S^s0Xn\V.lowW,炽϶v)ģ{$4}r=bGC닄 Ypx
-nvOwvmAí\;P ho@#恝l{**|Lw?K )4>zV``ygb-h.4JHC l"U!x%3;=ഷHb/kwy%S_IhrFc*6yDpxvȼrN$Ŵ90@
-˯@ͳha,!B3A z:V}n%Hy'ˉ^($4f)$^畊ʟ
-qDGcg DGSd{MV_F,XB J,߆ԛȵW`YCzO)4kuhxnkgB`ET<f^^|tȟQyʅz׶LhȻp!5)$~o*c Ww6 5E+
-nh /#Efhz.Vۃh3R z(W~.*ER8E3Zt9}4w6 5.;BatiB=W r&KwDa
-`'E^VP?:1*G$hx*
-A$R[w|;LuJk,Kg(Pցw bց$BR6xwl158heA9D8J_Z 2!ry !`÷O@Rp1`3U1 `^ i!5%ĂStX!-1柇GSB•JSz"-
-4J&US)7=?_5%NR-У(u p
-ΔsFcUbZ* K(pm9m8Qз f9c3죜cDn/uiarB1[сRw[Ap +(޹J35T-cSEn
-@xХ@
-Z4K姗
-pC(@QL
-̚.͎U!qE+8)c9PQanM)$I\ɰ
-0\ ^
-~$3egS˫6δ*+dC!Sa GE)ҝJa葱@>1ULڿ0AvkZRA#T^`=p, ԣY1B=՗T
-`*=Jl[ \@1@QTO}Gb<o, ʃ5 &<6dZ9y:l{e(SrTt٬ o9c"XʡFBGwqmǭVvL)PVrXQa)'&m-ǭ׌,L6˹`M!La<"?*96Mo[?Ա#n\-5e`(@pl8nZ+/SB-Ⱖ PnaEV-euveً:b&ۈ X
-4 - a\qmtlО:EDR+! -|l^{@mlef;5 +stoՙf;-ƥ{GxJEx'mTY,ylunSih8`<n"CyfmChG.=%HNR@H%bK)]}0i ҏx G.A
-4 Ml+2=T8JA>ZDuXogcվd. (0 ؊hfhY4,ԅS WIO ]) (ۖ<\ZsX@['"US/pcQQrCd F3fdE(ZcP F^.6S9@[;b(İ.p4֏}BC̦TMfVQIb"ùܵ6^IFal;. %x XWh>',-q9byWl+(=8
-Mvqf/մxt0,X9ٌG5aEpZ/Ҋ->AKi(0[ΕTOK3
-:k;K,b.zXCEܪQD%$8 R6uVU7'b'K=x`BܪRx՚
-
-XmpM1uxPb%: Ðm `Ԩ^oLl;Ji6l*uqibψm*t+gUgl'1lU"[LɈ[Ŋ5u(hVχ
-`/,؃b5AlW`@{pVliF짯G~"d?ZVbmgA
-.PUh3i`[
-bzpԯlh^<
-BZT( - [ 1+?
-kB]%
-~b(=u4jH-~" 3,tԨ Ϧ~00F#r8 ZRcYG{M&Tz'
-R"֝J~p7Y[b | fj]
-g2q.FOhomyOUV¸߉BPbF) -Lo\▬_L bBx׾lrz~fHWK@njuI^}M-Y)R.l8750 ˙]P
-}=.)ASGJM)i ??p3Ƙ
-RfaT\Tp ޿!#ooЏy
-fldgȶfJ$|dž=@/׷%ڔ}֜,TXQc)֝FS2#C7sL b<ByDXIΤ'Q40A5 c([*oYAK)AFĆsSW(}O f˹@ZJ8ȸGlH%J~
-0֪>f>u,T۠ ĻIAmXus=!S{c W {/hʍ_FMƖƽR˲0ScMG "6|)! )yӹa.!#g{Q_+K7z**tώ%wD$g(5>chAKxG!A*
-ZFc<2)A|X
-q6hwmsS&Qu(A0j*DKK^V[dMѩ@V4(!c xw\?믢4SE}[!+nA27{+ 5Iw{P] gF'~2*dYCh5~y+-PjwC5X紐&:Z$~<ڟH:ъBV4&!C!Xr8nzl
-yF~<ÁuE7HfAg:uy
-*mTEYmPtg<xݳLL!#2Ԙ g!xվ
-?{;5
-i0Xwek@uC#H %:XYъV$,p5L5H]JŒw\5[ՂaLV*@GK/Aޖ,14~R1<=)m{3i ; 6 J]GpBZ^ d$Iuxd2b1:ĉq&D4Rdx4\<&.>$cTHb samR<vg\ejċnAHC(E|$(er b3lr<Q 'U r^$
-Ympt Vy~W j\s,PiA-T7(Uh%`ӹըhs*sLtE9)H§k
-'fs $h8T^xr#fp-ئX&僰O »R C<$w*fZKEi݊ fwXTRb=S% $]Xڐmb)(7rv^BФ|)cUFĝ<wGFPl:4n
-}S<XޙN1+1AXTIp('Lw}I`n6PJ X\g~%&X:ۃOAו  hP `Jj
-+-7Ik&lKTr&|)cUb䯏^$-#R`Ve
- M(z(,#&ۄBͤ<>ǂPRO8-2 diAJfw@Ǒ.@ˤ(m">UzGfe_IzlC⏄7_1+2]
-,J V:ZZx %.˘&PɫVvB~Μz
-%pӇV=͖}㖍.}g< [/濫3<#Ѳ"|}v|]w6Fw].Tz3yٯ#~i?u7}s 7o?5u=O]јuJ{
-g A<~/}=iVsobUU IQ\g]QC:M#ΐ}OdY(\cFφ|y3ۈVz6OM7c.jGL,c;>௞Qiqst?V +տI}ͨ줯z/ m;Ab+>>1da$b݅r~m0¿{/?_ G /?_ ~9|jr_
-)Ϫ^__>w~ěh?OWV47_O߬_o/Y.䒓׆iлy}-|81χo:̾ z})~8_~}pwd)V
-W(vHڇ:^KM'Wd,US#/>^+=U=/5-{_h޴듦AԴd۴3l] 9A}_=߃rkڴ~qR[ܿIez-<LS_ &u77>Qt<eژ^^ӿ4ӿ4m^ӿ4ӱi{cz~yx<U+^
-M .Wibb_L oܽs_s/ui}moI[-}#/Enl^]oK[_ _z%rYzG?k·_x֦9υ6-1erÔB| q|]\—ڕxfi6yߕGzζdQ>(⫏/MM/ T};}>B|[(oa_ְ3;__>1L ' }b/p ZZYZ{q,C
-R"?My_WҝnhvkoǑМ7r/p+ord/J2/+7R1yv]qpw<l|u__[xk.|2hCPyӲ‡*s%ŏq@Kz)rg!oh(:VYl\\׉ց6Pi@ܼ/w^y"
- 5EPwku> i}
-^1  \{0$/ |1- o^x&uA1,3uQ "$Xbi]G<
-bA3HwA久8Q"^}DW ww[laq*??Ah&-={<
-ƛyB}AقE
-\
-S#ʍwag }U 1Ȃ[4OT(]t<:r'7bȪ 5Ekԣ9Vѯ@V40uGޭ/p!(/JCl}r1P4w.>[e.AOپ3Y:yn|=
-4/-[Ev()[6~K@]<n~,FP4# çхzOl/]x<x,Ch<T?TNu~Ճhܽ~u4S!Ř 'G "b^G|O|V=@>=wؙB5l\tF _>Bv1u˝@Ve\{$5XǼW&ȁF=NbN3 ה7 Fe&^D{pr驂7x!c
-hԣD;!gl+d
-=q+ئ2
-JmWXď4э|0noR]mw5ވ]_iv<tY|@ZHw8Zϙ&Rۇv-v"ݿ[0#1y
-A
-MEE𾉕}"Ǚ˻`X3SǪx> w=XˈDFf^6&@݊)-}" %jh96$89խVzdwނي/*C67!J:"7F?c&.o@gJjŭ v4oAhvD+#n}p}_ƫB;č VA~IW\ Xb8xF L>zÉ?s/F(>hNdiiM!8
-}f>-D,&Ҳ
-)
-dy97;..ζ-CK؎P4H
-$z/loX.)8)
-{b&?ΑO̕Ksm <{Ewƣ>:+By
-/zi@~T2ug2|έ=|ț2e!Pp l Tub񦫹 _ ROz'`P!+ݱ/ fW#RH<KMƽg *hhܲӘk R>fF)Œ&#qX/ ^I@&5v=wSҳXvA戴VVDʳy6zX&,_5a|蔫Y
-dZ0T4{^Sqi -̄zffxG^_\^rϏ$TsYc7 K
-t %Q6Wtԓ/E^t
-I KPj yxc&O$JP!Þ6AWoMY=EWb*6t*IqPcXtG{kTG4ֿq|6U
-T %:_rJtWdRNJךj$xV M޸?a?\%/j{NfPrpkr_;i6ҥ~_4],=#jHn뇼Ȼ G]0i̓of0&x[t.Ɇ=#!F5V 2A |܏ē-eLQä %>gqd<s 6+2YafX5[QH5M*ɱ1Y/0.L\ vt",W·|ɨFϓ;Lzq6STt5/6hd~˷5<,tTPqN`
-ɲ6NVXJG*9!\3lYѕR/4c2aw+<(
-@ZUט), .C#5 v\Gwz2j>o悌
-al3gh'BJyD:1j  <s^b+@j^IjƒYJw1j~ 1f0ThBϫ5xgL6MBG3eBZ9597Sf[([5 kh(j@@yĮE6?>AVi3Kԙ1jUj6vW/Θy'E ʳ <b\3764kLzzAdKd#AvKu[i4c>ڄRMq닡DleI2j6 & ~ ciֈ}L7 :seJ틖+nԵK
-+nܙKr)?79C20jR 1v.SG(Yy$\6ەy":e w&+n q'nΤ-r򛊡Dl30\4ڸ4}qIQ8Ẅ́5JR ׭{"ޮ>roy/B07̛&5fH41NqPk3q
-*4qR15>DD%F֫r2qqY]>@#P#g@Q^QF4q,2ZUBP~TJ{:^[(5M^F$h)Ģt+^qkt-3AȎXתP?E}J0_hCAj\ѰWf[m
-
-8޿ %(RTxެ44予DTQ5hP#^H%-<Gg<$kkmMb K^
-T<ukTNtH n'vx
-z{BvVCF莰92' G΃FQQPG<P^A@01(sέ
-#!X;d5K͠qm2=E% !V$2ႡL@ G4dhLCTGm4Щ):CљqQFZc8fdh)gI+(Zf¤:BgmԠ!0P^' 8A[1X\_%>T| 甬qd .P0'EKR1A6H
-hwd7(i/KoJweV%jy)ZZ
-0 p.)F7h1^.VrԇU8D1׸zީԒ[s2 rkXmҭ1*DWY
-ez?Y?lܟC6>ismZٶUG 0_b(pwKyu1j˯Ŀ̳_5s;Ƶ<oOh:ȼ 1"moIc{tͣC -^r˗*CB })`x^~i+CG}Zvlxί[Wx$w{ ww@tGջc;,\iNR5sK1rori
-endstream
-endobj
-865 0 obj
-<< /Type /Page /Contents 866 0 R /Resources 864 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /D [ 868 0 R /XYZ 79.37 117.312 null ] >>
endobj
867 0 obj
-<< /D [ 865 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-329 0 obj
-<< /D [ 865 0 R /XYZ 79.37 771.024 null ] >>
-endobj
-333 0 obj
-<< /D [ 865 0 R /XYZ 79.37 178.379 null ] >>
-endobj
-864 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F18 381 0 R /F23 653 0 R /F21 382 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-871 0 obj
-<< /Filter /FlateDecode /Length 5530 >>
-stream
-xˎ>_!
-gkô|6
-&jft¾ҮvpW4pJXu87:pfѡ!ה!u 8=0n|q̕qR4<n? XpF~Uw`lp--WB'cȯB8W8`==2
-eR[ XSY=<,w{}>,{o4=(J㳁lla4{>(J볅R}60}-fg@i~P vg @i d4̖}4)Z Om˴s%q7y!* L;W➻ '&QGuϴs%+wTL;W➻$9v=wT%GUϤsxx;<yI3i8;5LL[I;ް\)f!ޙv!Im# sPL[I;
-A3m%84}`&5*ie: ;Wej3 R0MߓBcāE͢3~1NmV} ԏ䚥r9wrIUD`N\zZU2;"
-t?"8YvR'e^SZ$ )&uL4e/DwSb.33QU-+pj:n!TW"(g3]AIhr>8S1JAlpry47H@6TO@Vq~n
-BwS%הprYj 2*x?(),JKQZ8U,jZBb9k&r>e$n4 &wxX
-_K`K|OCH
-_)-P⸬h9PM,
-WUF0#`/8SVסz%5C 3qUD|Â-հ$8VT>y^ȅ5 #Yj1aY]0na2C8ZXPo!B`O)sLz_`Q[
-Jj&94WYL y+%Y%`j9\`s
- ˋ*WS
-{>x ek9VP+TI/+ d,i-M&'5L/M2FO0\8H
-!YZR Uc8DeVp AEB@1)Gb]"*@AfX̔
-# /It+@Iݬ\El"vfǴL0aIC0qt8^"JEY`D"{ 1 TcL\:1$eX&sҜlQ%0,AEK`eQDq!)ļM0\! U , s`GXCEt F3uk2fj8B|B&r ԤfEm$ZƍO8ɠKN\;Y-tN E 'L5Ѹ^`Q[Zt&čeeᙺB˙3⨡g  t'=+jk%<-. @xnĹ۸DRרl0M0H@='`[ ,R F#y aUM,{e]+@Y8bV++쩖o<&gm^a-
-2"qX
-YjafsKn̗3ʹ >9&x|LocX<iBjmKHr)m9dk[-hx*7pM!Ѵ`W\ f3Epz*SM7vYƇBTXQ:$\!At+U,d,Xeo^#ڀ:QG)|w)& YE?-Ns>< Ú1e&W
-~Ԇh6.k^/98T$S9X`jqm``C{@s(8p?x>=NX 5AFY〧kKn?߭ÿZQYzb-cVH E&yEQx^Ab"۪yj% ,`{,)ӁU)Ŭa<0R czbKr7oexZ}(; :>
-[yczUGkHYAx.*q/ۋ2a,m.'_]Dld髺\frˑWu"kbEw9?a]N^hHD<i<$ÂR=zd7O0
-K%V"<ZS'`>9#a"aXDϐ4>a ֋& 6y@?k:\ 80wX!:M.t>BS_<ߣg-7M1s1($֔q09u)xAB_"޿*.'0宿 p AR(Q51֟:瘆`DY7|L2^&1EUG˪$Y5zlhAN-t`,M.7ɍiIk/ML9=3L@۸?
-endstream
-endobj
-870 0 obj
-<< /Type /Page /Contents 871 0 R /Resources 869 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
-endobj
-872 0 obj
-<< /D [ 870 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-869 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F19 383 0 R /F23 653 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F68 406 0 R /F55 387 0 R /F65 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
875 0 obj
-<< /Filter /FlateDecode /Length 4190 >>
-stream
-x]Kϯ1> pNɉ$
-F
-2TdGr"
-Ꞷ"m|HK>w)
-B;xo=➳L2)RGSo%Ѫ6x,4l
-otcCo8S{׵+J0ѻ|nEw¤p=6\AΞ|w.@筶gN8Y_~SYeؐ21`u2ƃ5+*48W
-^=,Bؓv(JT6( K-S.~gl.|6%<p n3h6r0< ?Hǝ
-nq|,~,U E:g ><,yާQnKH$/͑*N
-jq$~bFܩE"]۫e)J
-Z)r\߂zϬeFw\f-^탗X64(q uHk``
-&vnÔre:IPLTĦLeI!TlC1^]@`JUl24c߫RxB8
-. %ypW8wj@ jiz*K%D7*pg.4忦ǿ+:,aR+뗌4J&dOMҴ|:>C
-.8ͻ8iĀWT}.ֺȫB9rlfl 5W d1p Nծ) C^L`_4$mZ
-9R<4P_>yz#/ Wꪗt@/<瘅 C_zKlE7X!Mŏ4#4W?$/D)S)/
-(D 0iaqLMii:iZeY3 ~!_7{84D|7l?OGr̙ԧ4Dro&eb:5 R̙s @}LCÏv3&e;zb7Ӽߜih1w>w)
-CS@-=[/
-51=5ާMO4phS_ @} !;HGSg~=~i44`w3aܞiN[uP&&i 9 f
-مE^+R =~b9ଡ଼ԑ2ޝ<;sz .=_3Im\)C6v/^_9AyuK3C0RآH )8WWkW[dVsEe+K8Vl֑}6$E⟇Z֞9nF%NseuP
-.5906t?IqK0!Nr4]x5V/+ *غ(a:Z>=4 +$ǵ  "  "׾;fmMQ!$!`ıs<KioAe#vK6ږ<rnC_.cuS3[)楊QSڃ"u9]LmV֑2#>{U_]^c{ fZ,'BYJ+ ?)ʪ`Z!p.PkXTLE|=U=zBە[iam%|gpf\J0 +ynC\~%r㦵Za-A\f%!eo' ԡ ?năW+:[~{A:O4}Kz$=!Tdq&tD.3sӄLݷ
-YU Qε6 N1uz.RnZFSo-Zx6l~Xdh|EIF *<ЙK+>8\zdj^E+YS^L-,#hM;ݘbvǯHfug xh/~}5
-( mЎ(Vĝm~na+/Zی_yll7Pޣ* /RiZV*y5omjtgY΋@b4e ocаF5k׎4lZ={YFJMJ|8c㠰6*c5Wljvyw@'V-&#mEsE[ߩpigf%u2l Xm/
-yk*L+4oO?WZfްݵ9
-yb+ 좙ъ.\ ]8~װr)7vdYoU~[~\xUgϔLŦLF16EzZ-%}Z.;Ô5M sKH&66ZS YB%`B,B6|J[B5Ty[ew]2񆑭غ|<|1cWI_}Z<~sطk^3hcY"x:VI :mdpQlQE+G֦t)Q};L7ebcZh~sc#G>qZ+48V
+<< /Filter /FlateDecode /Length 3541 >>
+stream
+xڽ\;$WthK,>7rte"v`E.>f3wR0dd\Y߾Etڙ?_>Z|N-_.?x)AKTw+
++s#uIw.B
+,I0zY6
+-r&W  udsEE*_" _qF`~9Qt '!ʉ&ximLM\lCzd{\;0铈reM%ݒ!gd^WC1``zf;e9{
+ f^-(d2
+M570hDY 2#RSp*f|fdz/Lb wF)sk=+iE'a"fn>.kfHaHObM4"^!Vl~۶P:ba|7Ȕ4 lJڐvnYf㙌bҦGS*/Wk?CTt46kxxy\\_;yWJ 5G2LTV,tgZ9LXCfL\żȅ:*{UT J@ijFE.Ej75!{N~2h+tڑ=y$m=█]ZK%OX;TZ=tjO֌Ug7k ^%}ŖT33J
+cvis@#uWeE )|UR٪ſ[5lK*&tJr >=isu4qe.oGg;+,Y҂
+.K
+U= LK[udTZ%$ЧųVqsIC #c/V To=GPۛ6TwN;3IUp(J'ђU
+jFz!p_>&EDbEFЇdJ`̅ ]D?OdEt4cBYN>tU=|@Iyzη=L92ȧ}=򙆪_{?.1펲n$vx\+v mj) gpTRvt]p:`V4+^=/:kQq|&чׯ/-%Fa#+0~~J'zl}]4.yrrϼs*N`(pM/w~͕ÿN@`Hm։F>I·7OI[-l:;P|qBߘ
+ q(9(PqN۠1FVl~RuP< w^چT f.OuN@mzUA &5D`VVŠfU Do,VLX" PF4n{ɷS<p* cn>?̶an~RFsf&Vf
+ 0,Xf㞄 zi.BCиw
+-۩PwI[ ӧٝ5nӜ؝ybXy;TВ]5n"Ywi[Rvl
+)85L{A{0ːn+Zڊa5|c6PA=i,
+#>5X(Lj,jV%x aRpw@j/`\68VPSˑOAb*>X=E
+[7HF[uD|VɨAj_c5
+c…J
+B) "4*W10 ]С찫5 K 板@KoMդvlMv3\`k`
+]s.ll~
+i%T_A8^3g))y,K>^O琎MKvJ3~ ӽ]M0Ni0#Hn
endstream
endobj
874 0 obj
-<< /Type /Page /Contents 875 0 R /Resources 873 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /Type /Page /Contents 875 0 R /Resources 873 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
876 0 obj
<< /D [ 874 0 R /XYZ 78.37 808.885 null ] >>
endobj
-337 0 obj
-<< /D [ 874 0 R /XYZ 79.37 598.595 null ] >>
-endobj
-341 0 obj
-<< /D [ 874 0 R /XYZ 79.37 325.802 null ] >>
+877 0 obj
+<< /D [ 874 0 R /XYZ 226.44 234.16 null ] >>
endobj
-873 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F17 384 0 R /F69 406 0 R /F15 385 0 R /F22 408 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+878 0 obj
+<< /D [ 874 0 R /XYZ 232.109 222.205 null ] >>
endobj
879 0 obj
-<< /Filter /FlateDecode /Length 3162 >>
-stream
-x\͎$ STnc-K~ /-ɀ}p6s뇔*ZUCOTIGu/Ŀ=Hk sןIM>
-wJH׏?t^J>j)}RJg2?~J.kpLs|9o?'{3t敽yt*zG8&Wx+Bk[cq wIw?Ӑs3uX \[ ;tr
-jNFE/:$?`${.sy'&fΕ>DS_';}ލcJwxU^:,˒PD3:N ꋧ\7a|rJp:
-k
-FK {Ii@zuN
-gooh!J%6nӳ VxZ"H~koQ"~K RDm>ׯ\*"_\L:5m-ړbX=˪Lkܼ3yAD&2\
-msbzkx:E@:$O~MhN3=|f6L(I)% s!dq&\օP'N:.ƣAmx~\3(2-W꤃߽q܈]Vt8p˼mD]foBp`Ѱ RdC@e#*62 j.mhPaȅu-F0 AkA2MG`h5~djwt"CJ<eE#Fg@&NrA[Hr/2!FCk 9lp#'0-ϙ?4z8v
-A;e@gģ~¯54~XyXY?Lf̻[R.9Ou5G6tB9 j\(bsPf]X? e/1Ktr1&jNpf<-sc
-,
-DmMShomF>T<Au8z+Є_34qfߖwTmKblBFTf¼OU0r=|P$ iOV6,X?$X}!\_t V6/[cN\ 8]fՉ>HEu虺tyx K!vE射v
-ƁSYg7?nMM7Os>oWٝ&Rwk 𨸷o51
-6zJߒY㢋je39HC^T>@<d$b]f$9keJx%!+-b)Kы+M;t4y`uf[;zϤ렿ӰSRI; ksE׭P'Yϲ%sj'p!TBc/7c!V+ 8ȚHY_nu~ZO!x)2;kx-uJ/,bl:wG巒GN[UĂXP.K}68!Ú44 j/=*=nӃ᪯l D'6,wlڟ!>tzos]Zو D+u/#lܲw,U7{dpNۂ^VqY@-wol܏%r[]\˔wS&6M.m$^u/M83c*HEn(AtΧA\Wߜ_"@\r y-,Q@ɞ9bPsǽ-I!_9N1gr:?7475EKzO=pJ߿>I
-endstream
-endobj
-878 0 obj
-<< /Type /Page /Contents 879 0 R /Resources 877 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /D [ 874 0 R /XYZ 195.137 189.402 null ] >>
endobj
880 0 obj
-<< /D [ 878 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 874 0 R /XYZ 195.137 179.23 null ] >>
endobj
-877 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+873 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F58 390 0 R /F56 388 0 R /F55 387 0 R /F65 392 0 R /F52 380 0 R /F45 394 0 R /F40 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
883 0 obj
-<< /Filter /FlateDecode /Length 3003 >>
-stream
-xM~{ E ,&o7@˶{k{
--^KJ-ydN.{o5vuO~wu黏LAD LyR$'5(O)!>^J󒿍j)5vW)~@l5O+$>5D2>3g,[ Q(nJA`
-}D
-2⢴P(3fA\Eb䭸3ih{x@
-dܑ6Ww0v%W'Lu
-G TV;g|ogށ`o u2`{IDtbgv`i"Ў9ԳR!v.joMІN U?4XQk0eF]4>5f^f5mngLgRZbM4
-F)TQNS
-~\3ϛk6%ow2`Λk.ߎew2`Lzk|:Ɣá XGe 9g9psnI{bmZXsSiE\of 䧔@GԌ{YPUFxy:ΨkڴǸ(qF^py*zjP3nCje1QDoNy*{rӝ
-c>gʻg:y(rF$L*d8 S*^uqXpտσ`sHc/aJD<e S֯@&宯(g&ap!αv]u}\}WvPj‡i{OzF
-LXb(\+l4Vz 1o\4{<Ͷ
-B,3ξ-mo}w!:}>x]L[8~k}4Ms=xYK?̆~/ٸeD?[Ἷ֯b}~ӏt[vp.nSq>Y\oڽ{O]=}uw0ϡnn1WQe%ǑUu`WF_/\u)(#my%pDlrjO_ġֶʓy?+3e{o*'} aIamMo"-Zt7XE-y+_HeGo +H}PRb/v- i#
-ϫ f
+<< /Filter /FlateDecode /Length 19638 >>
+stream
+xM,%_qE$ $F/SO@a6䮻PbTI3##QwW!3?F;A'oo۟͹{Kɕ_[iPJv+_p]_WJn?_U:B']Wn@DPm$HHyM]zk}{rU<o|=1BPŢ᳷滠Oh/i`aĚc e/~;9?&4(K?OC{bL$/U8x s0ey؊hGFon5gepp?oJw+]9? 6Ssm??m.緥}Y 5GIc{cn. uzowK]?7CS >zQ jX$-iwI̠M6ww͙qcЇ4?ޒ%jT]]OC>4e͏.@'8wKo9~=>j^H\6tMޏ9{ ?ԷG2s_1EudwvTa+uo!|fU)f뽕էs+J4b*&JGgV sʗ S+ӧ͢ʕOuѐt}C_g튍?r}֮X)!l+§Vt놽] )8z}mo??rjzo?y=S*y^*+/XSndsjݽvNsnG4.S'F#B @s W-4(怚X9Jk_-D/&FhGzq/;E@n }({˽ƾ^M#=e\i^HO;j?s~I3sًv><9rS/41\7h4pKh+?QHl
+!}6l_h
+W?Q°үK[H_y׌:z_u\㟍:̑K~4 hC){Ku5
+$%%{<PS™dϳ3i,vxI2IQ}:<A tSqN}b_Pgz'W:u(@Qܫ~8t<Q|
+L5Ũt E䗣d з`PTcJCAc 17j
+deC 
+dUCVD~C}{r-8U$.e€CtkҥA4:XՑLwLLpsRۖb@p9hWJn{~ѩ@qh8#XtGSnђ6( ]YqF
+ɴLWra})h^Lg"T )+xF~JD^iD+8+mJ-D;By. {b+f23<"?z( /5pC/lGBMK'dUZ+ta[4FF4a+1QM#4]
+!39 N87:Uʭίئ2]
+,JĆMJ~Ɉ/B?`Xh3SǪ Ԯϥʳ6~uYT
+vGsғUMeX XߞW3xl MW@By~Xl>"
+ғgDÎWYT
+MEE|񃑊+ۤZPJ=ܔOs^8BbDhB<OYHݴ֚sP`3Mq
+BUzu-oݛ}ӂ#ȵjIX$Ŕ]z!SK[h-=|kI-FԹ\0eHoym;P؎UE
+jFhC3"oN.򥛗:?@ϑiaè5R*6
+_ߐƙ@ &φ.S H(U+%
+4w4sJw\a(ez ݳ`nߕ_!pO "9U^PO#B2;~ |
+QLAsUF+mlp+ >H}׉06 _m5ӴebAC"WxqZ0zL!<W%|" N8/Mbյ8Jє
+%p>.W8yPjoHI#s}%nyLva"W *ЄKDoka~
+ka D1u*\嬒60|"ĩ\84Ek
+>[<gL58<\G*Oa%wU6=~^z闹2gFXiq& r
+>[<vѪ8
+@?5**3ݑ@[,|\-<}^[=罞yEw\АcW:V(}wW ;h % :TT"e:
+3:UZ!BҗP#-/'~z7иzttHxW***\-y-S3jaNU5Y}1rwb1ƻ n ("RXPo"^Qe >Kp;Uԅ%΢
+4 \+
+aۃi Pxyyb[ҽ_""ÿFj/g(V}\2=2!Å@כ%_@4Kj0y^L!PkWe@ʄBL<M0 yFH;U761z}::0&TAQz^UR;//^(J럤*M
+&rYИ u^;ыt748)^x흍[f";bi4%<s<h^}9FY Fzg8chh-Nw^(v(t
+h_浳#);z=%姈S//w{~ZITtKi"l24kG^Q[dkNNgnHE('ѢXn~gHm4.(i"g0\sJEHY xkT84ԸUҥ
+9~6\%ș/߁*yYA?Ɛ u^(ހocR@G dG o3z-[k}E/o$dB [b G]Sh8 <DШGq--ASE)2M)&>`ʸWB#XR lJuR6B>c!Rvƻ`Ě΀ Q bUrk+Ax)gkM-bM)m!$- < f AF{GD*"xP L{y|oJ,xkلB Zdl8e "ց69V%G{-D!^. Q"%㋣d1 txXʉw[ Bpjyq\D<6Z `q
+Q "2҉״‚[rX-AS@Js[ B(T Vz7u(Jk
+AxK<vY TT#ĪUk(}[j-#D,PXQ恄 ߶"?I{HW]OĔ"dG{1ȦDߖP jOa1@ M
+W* @8L@ @z~X
+lEJR*&mM1ĮТ{*xtXS(؏Mk%Է3JR_|nXS@S)
+9[`x?V3FRMЖ~lU8
+@@X&/͂
+11h6:H~U2~𫐋[>[=ƽ/U\]e?Di Ȃ?v`Y9ݬ
+@p&l{{UA
+" ?#\CPAP|*Pu
+._BB 71N2P#޽
+!U8KP
+\>M2O#L[ab.;Ӫ"꒝ L1ȦHwj
+?(Gu4R!T},3iK>LR_w wkI^Py!XVRñ2RgfT_{Rq(@+ibn&p)~o8o#
+]FJ,րc0&*[oB64A@[ȔP(h]I ai!eWO,̖lÐ.PZ`+B磕қwg0SbL1\%=5؋Cvuh&آl[np>_kW-bmf܋@6VF LõEEz-C H]{ljBiLJ.4{Lm1ú
+S/C 4U$
+XG%F,npxq$Ua?Tc,VQ.bH4c] 1]A[`T(4řTspsYXoZcd3$[zkE~<V
+GpFc>,HYU?ޜx}P,U- pJAUk6).6+cA6KhvAyH4xCێeSx19*4UP۰ť?#vΛP*VU_s|вWn\3%#
+n+x֡
+>*hc4^Y .{qOЫ$򋐑hb[񊵝)Ⱥ@iV̇
+x m+h+Q飕z'><(!jgS=VZ6l,|
+ hw
++X2EШ"ɢ,XQb4<j>JqI\0,hAKeA5-Rџ4r&
+?UPw=WY ct ~'
+Aɋ1,ȶ0ql^q/[~3/h
+^1A!]-o%ym7hda
+e*7~u7]C[FJ-L556Hmr(7MƆ˻`Pq:Fzo?\o7.cHo,詨=;)+hJq,{h]t ZEc߶{U{zhli` u4<AOF
+L[>l@V5\+BïUÔxwх~TCYqptg<|O:oY"Ȫ+hSHqȤlb*d1ڤ;ݵyM"Gi"UT1¨يW..WxYm~4]FY]pFtg05mr8N=m8jV_+G8v5&˯@V4&!C!8_wq(Y@KʨgjԋIh\tP
+CBFcaL3]'B<l`>P>V:dʣ+j[j"]tD+V
+YyPtg<Rb@s:a2*dYCh5Zd]D# i t|unC~@r{[!pnA(Q
+dAC nҝ<`kԷuf218PcV6DU"+(d1ä;bݕy=_ ~#5L`eF+Z%Zxsi_0uPʂ֤;#=ty(^KrIoWW bQ3 X
+r\rR!#1O#]VuKn{lMnΟsBFe/_# dyM-U4uKD.W=P7|y2b*dQ!4Zmxf oO_:haL3CBpϱ@qSQto:bVe"_MV~P7ͭB02<#?z" RJ}®y+M&&BBgxSOxfU`Jhb>ez,NK '  mŒtɪj.w+oIt:tbS H)~Lw'taiC~*
+Rlx}bĢZzxl MW@AXU WO8w2_AmSS`û+MCc1{g;ŬXTRb=S%F0&\ׂRSP@) 6obqI }z@P`bl>Uz"\Wj'y4C.,m*)޷?C$ |ٛJ-BSəAXU>'z⒴J{Y)/7Y$kjfTl
+MW4L8 BIY.?TַB4Mi+M$zG
+}?o/{.y.  S*y_s ^{:.n@“.AtϺktGÝ!ۙ& Pƌa I ly3ۈVz6OM7c.jGL,c;>௞ 8/G7/`śR΋ԧٌNi}"^ xnwHٖ4~,?&{z9Xw_`5q?/{c"=O߬ ß/Y>5/~]gU/ſ[gM~ߟ'+_o/{
+a3avZ,n<̾ ?o:̾ ?0R:pn0?,ɯ SOw6oG%47
+]c5>$|pKRſy v|$z\"W=n[TԴ}ia{ӮOwR2mӞϲu5;=8y'5 ^Ԧ^ _߬'—i
+Wޤc&'c:
+_,^c&c&cmڋc&c:61qO{}L/|Зۼ7p[!ӥjb8_L ᭔wb1W_*_}qiߢwz1iR ;_vYW"~tk6|gm\G'I
+]'WaJr^?IIyㅄ\. KJ ]4v=IFxmgy2wAxk˗h>AUp-7\z/pxkXיj/pzl/p g& |^>1_Bh,8 n)~dȦskol[/r+org7q]j絷u~Hh7tcnq2%s<}z^.ݸskWy// \5NtY>V4!iYC8R
+Bw9 7H4Bw^h,6.nDGgLTGR
+4 nl;s/׼`}x
+dY\}´KgaLC=CGM7/tO:X}QĺFirR񎎮#1D$T{ cog B ( >"F+B;A-08pԟ F 4 =~<Bcwt flA"Lb.ĩƻɰ3|*jdA-]'*.r:PqLEߛq1
+dYhPќNs|vW +jBw{B#|!A6o׌Asb( AY2 çl_AzZ
+~}ݙ,<7Ζ-Cm";]{Ok- ?%.wo?@ KB'.
+h6D.AK#/V?N 2O=CGn~C`ec+\z`@'L`xC1x'qkJBT#2V/=]A{THgSL
+ VJO-H}[Xۏ&I$;=%^G+T}KF u\776ǻ~oD./A4;\k:,>{Q-; Fc)cGjPmߋ O-RϘ< p
+t
+IDlxԎ]PR]Me )cU<˻p҃eD|#y3D/lTFEn]Pr\MJ W4 @V+=CpoAlE_ X%Iqӟ1 `H܎kX73%yVq; 4a;CΕ
+>~8w>\/aU
+Y}RFFs+э ?ͤ+]Wu.U ,1a<#߅z&I=Bğ#4YLS'ɴ4ŦDb3"zhiYbx}D ׇ#$W#mhڔKR}p܏]?```k8_]~-vziH`blh
+4u#4kgltm}4x4o٭&@vԏ=h@i,I.:x4qm?dں3\ >֞f>KM2Ou(t8[E*:@
+
+px\
+/ 0Ґ؏3ʫFݑP)$祊^l3~z}v4niLµ)
+lN[NItMiЩr لf`@fB=Y@3<~d//sY./hG*%T Qs&Wbˣ@&CJ؎@T*0s= [~K oQW2*ԱAL: @ëhi:Wɗ"G/\~¤Ʉ%d{{^k5o@'hjkkWknInaO\ +Ş+W1:Ȥ`1,#=5*h
+x#]HZ߸K>y*NL @ïvoc9@+2\cLkM5a<B^&_o\ޟDB'd3e(9bd54Rym/@[5$7C^AWF#if4}TtXwm3fq]-:d` +OSrGxh2aR @óɋ8} ~9
+A`03F,-x$~&ؘά&m_E~;P^،wL +Bc>dT&=8)*RoOCy2[RT:L J'yzdYF+,%#AvܙLJp
+ke1lƻjwiK ,*x46͘IXe#aDk̚;Σ;=tt57SUsAF0i6LtQap3L!J<"W59/c\ 5vb/}${z5cɍ,pGel
+4֊T3i&^أ2c!_-ٜ|ʛ)e-o`ͅRSf54L5 <bׇU U" 4̉B*5dzgLyӢli1PܛTj5&e=W %Lctw[i ;%4tEmpi&c8P"n$I5`捍Ucd}
+4tkľ 2aE˕S7%J~7%͔DLol5~C;)#G򬋼K.B<2ot;V7Mݸ7gR9MP"rpg~ Wm\fRm>ȸF+ Xf%G=oW7C<!`x͋QphZ'ჸE(൙84Z6+a]aǯ<@&|Jea(.Lȍ5tC .+죫2 J5`ɠ>
+RK8͘R R|#Re9.`3Ũq/רj#8 v*!@?X*=GEx-zMQ
+OsJ8Syi(m u͢%) Jx 2rxOa7gp;2V[5Ƽ-nkXmi{UC AjO)L]6X]Mr
+uF6K@XM0As
+Xw5-p>֮@B.V k1m
+@>W&l×./\)/e[ a 8
endstream
endobj
882 0 obj
-<< /Type /Page /Contents 883 0 R /Resources 881 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /Type /Page /Contents 883 0 R /Resources 881 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
884 0 obj
<< /D [ 882 0 R /XYZ 78.37 808.885 null ] >>
endobj
+329 0 obj
+<< /D [ 882 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+333 0 obj
+<< /D [ 882 0 R /XYZ 79.37 178.379 null ] >>
+endobj
881 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F29 379 0 R /F23 383 0 R /F51 384 0 R /F52 380 0 R /F20 386 0 R /F41 381 0 R /F53 658 0 R /F42 382 0 R /F50 378 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
887 0 obj
-<< /Filter /FlateDecode /Length 3866 >>
-stream
-x]K Wtn 
-<Qro?>q
-"G.B !n
-쑼Cؚ1j
-[{)аq=āXlj
-7F`70K)¬|4B`O4=3i
-%4DvAÔ%pAYҿ˺Dz!$R#, ?VRُ~:4ߤGA!?c%Hlj%ÒUIfUIU%(a TTiUm.XlW%-UI
-*KQtz䤍KL
-j+ښYSF t~RI񣶺cGq79꧿ ګ~,yH|g'>oϗK|'
-\N9`QЭ ת[1'*k1A~@8N;(#znŝ8~=7e|^B"1E֘o+GJi ɚm8IBaֵlEJ(֭T"Ol=69A?{]il8#uiֵTݵZi<V2[k]NYC9̞g }a>RWOjSC%_9ׅt8Zan~qX' ) LcnXMK`ܟy@
-~ >^3s+VGkfn^@S"aQxdfFT다D5^vdfF6'"eGkˆeg޾lH:1e;@0=$y kc*GƁ\x!;@Ϸ>6u
-pdgO%bf
-p
- 3/m!ӎ_}yMb,'F?&F(xn}0~ 7Vv%UF(2TYߑK`۽ @~DW-I|h@򇍤,"wݾ2GO֩\
-p]Νvız=BT.
-*fٸ%r!*U+T ;\84l=iFU|:+lЫ@%5
-/JT]2pKvQT =P1ֺ󋎆 %q:\ድ 'oqlȕk
-CE,rpwP6)W6 }};_X?|9r((P 5ϻ7W4\iG
-ɧY͏`dG忂HNek&+n6 ?bx)Ur:Iނ+a) btJzm˴ןV'0o6tmow l7x4(mT;mnxD%Y`Q,MQ)qCvMq58Huqj6]<(*EFco9./.F{+)&B׻샎@nwk {R㘄TFmw~M
- }( i24Eҍ{s
-p[ rjj/KdEۢ% ͗v&ç:Vqcd܂[٧1E}+>h(f*t4b4<\_R6xL>,wRN| 7VL61;h#w?Y*aV@ojXf)&f)KPA*
-wc,yR0=kuMt^s"z[5AцCD"ȋq_ED˔o:ʐ<?cvW&hL>Ĺ׍_O¦Ky+y6KH.ڱVn")q4[_Bɛh]Ps$7ɻhșۚK#&/z=eTfϫ"Cz`+ 6ף6.%N?2W9bs#P߂,;gZ<8ɞ8<r^=CB'>6[}`gzpA(&}%{ut!Vwޘ^C3lʊ=Tmsurg{VTS<ǭo"Hߧq{ȁyOxk{˜g4aJkpO/%,)gh
- (h+N|IXI9Rs^OVt?5y-﷝rŽT'
-UTl*oZwrDj׭P;ĸ9ϻrr` 3ǹA`tg]Ö9Fc:l9EJe3L;Uae'3t{0ld#7gv%Qi?r1/
+<< /Filter /FlateDecode /Length 5519 >>
+stream
+xˎ>_!D
+4VKC)8~PMLC[VˌaB`񸎡X{ޱ.`= gXpn}j5d: nCBzWmab[J3vŕ ~I;j\1?~1 i&;LϟLbpFoL>NN4{8
+`?͖ì0"n$_c ;#G7ߵs2p^5cobni6LND'<2Caq=C׆4cg+CDR5JBxZa7t"2?7R.L'p}>etnVv9
+0\0kܪF]C ׈kϸPY\c+ v;@V<iQC;YK6^
+&{Ŝoؕ
+vE663:a_ɯ fg۷uv[5Xl,kPFZT\׌NWƵ>0NNizpfS}ms5Åk`u[3uxl~l^7Ly{3ȯ
+̙ J脽_{UǸJS( V (gP lF'+a?DZpU
+đw*'7hyCՉedYp
+ʉ $>"c;"[-mnԛ
+NPGIy>T7 Vf'cE- 
+t?"8YqR'e^SZ$ )`m2ь9>MENDEn":W3©QTaZP^t%AL(+ $:Eg0~KsSPV.I%sR{nTDITodWF©eWTpג3^~0ieO;L;|U
+K`K|NCH
+)-P⸭h9PM,
+%f㓰F,YDC&Z/*7iàD { "1a$ " BXWPR_\`B*)p"/`d2yPp=gճ bNxayT[\~ab\12*jZ q[aϙoU1 w-
+Jq*)vB#@$8@$KvKI ꋀo&'XXH\$zr
+MT
+R5&q#OTfh pόlTY>!Ә!%F(!
+5fX̔
+ /0It+@Iݬ\El"vfǴL0Ʋ+PøSi9؀]IZ)H0My!P[q_z dgPs$ {N-j5X^}`ܸ6-ՖEՇ6pT7.%)H0+XC1S2[&X&5+jk%q\2n|,],pAU\Ϻhs
+W(o0 ,j+2VՄxذ,<SW(L9|F5LB8gEm$Z%0z|>7y܀m"8kT6DQ&$ ՀuZ[*Xa$<`(2Mnb +(ZIZY9gO|@m`{ua5O
+,j
+%[ #љBѡ# *
+/Ll0 ao4eJ酏_a.GO_aA^VWRe|,sBont݊]wdݪЛ=A.a8"\¢"ivb(?¢j=Ұ g
+<ueע4;1zfѓΌ O)a3?[VE,B1KXu+2uɺU/b8*UJ}bQى1DivfeRƖSؕ)?E4ۏ2gN07Wea.ˤllZ`Gw3Tߦ{ {Ůpĉ':e|I-vO~7Gpl'Ol!! #_۾x2qv(5@
+:YT꩕Z1[g6疎薙8
+i.8}ؕrqEJ=Z Xpǰ@oyʯ݄x
+>x)}kRm9dֲѦ&?rL v-5M&~N|CO-4}jQYe|mIUzCUrCdQpAJ dlXeo5\#ڀ:QG)?ۥ֣0tNfm#?T8eXN.kv{| 1D{wIw}FC;~C1 .fږF=gŇ3hߪuڐ
+o݇Q3= ңgA;#M"a hհ&
+ iN8^gN8
+IU/d|nysxS7WW
+rT<Ņk4x҅p"Bzsq嶎`\V˗\o{s(8*mC{9Zs0SҎNaUk:0Hr采i3ĕAM@"L\^:>97*]#x|w 0嚮Ghm9cmT\Ě2f8Gr_չ4eS)NEUeܤvJåJ'JYGe&[ꜞc~nq Lcl7T+UIY5gF`?,M.Ʋ$H<=gGm!p &aP
endstream
endobj
886 0 obj
-<< /Type /Page /Contents 887 0 R /Resources 885 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /Type /Page /Contents 887 0 R /Resources 885 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
888 0 obj
<< /D [ 886 0 R /XYZ 78.37 808.885 null ] >>
endobj
885 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F25 379 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-892 0 obj
-<< /Filter /FlateDecode /Length 6086 >>
-stream
-x]I%ׯxsa PH\j\7g t_%BRHCU.DbPJv.?~`+م_s Wb [ї?~l]>e[+`̥|7y#|ߥvjs}Zg8xߟa_6my_q?~*CrWKk
-ӳyqVR
-u8Xqn:@.<fog^3Mw tK ;%ygk{'Kw<
-XL\hEuRRGb7fRcgBm൴fYnLj["&6[kk?.+m%ik;<&'
-UTYBim^((ʯ)Bi}mdyMxr[%mm|.?uZq]T\V+Ϋj]YQ09ꟖԆ~*j$qY=mW^F6?MW+3<^ )z 1^S_"0YKjY"7|Q]L*ф{ݘ[7cVzṋt.-JO׍n0{z5]xbnl k5OIىeCٍ7޾l&9-{H|$y, Ό -:$m7/8ʝEI6mGx`rxt}+BnˇUpnws7NRCxYԽgx&.h[# #|ny}L[G"بV8 w,s*Xio0<@zN5n&+WҸ$q$qG$q?8Wk[^< `@pA/ܲ? G`SPm߰5،hHaNvǪ]ooFni;bL\/*~fff%(<)B6+h"x[\Χa5Z ?|p8n1wӜ3&MW`ͯIVY \
-%VJtSu:%U< )ӹS)5x CMlPq|5P42yӿQ}`|_}=lv,/*Bk PLB-|p3Gƴ`LJC9m|ke?
-
-Qu ԰~hG㴎ղb Q>sP!%XPwK 0[98(c-X>
-V;fCb ƀ8\mtRFU1.c|L}N2?F'^6ć2"BX ;WDiBm
-v[Lj[$QxikLE> [
- yY.+\h Ghbɰa0xxF PZ,_Bµ8[H)Kh੨ 6:9i 'KXC[™a 6潖yK\D<g K~+0Q^G`5x]4G Sxf!E4p:[Q
-VТ0V4uFB@'%*x!,uz}*\9չ׍u6 w H22Q6˅"5K61{p<_@iVM{*Y8_.*EWO 21m*R# WO6d$vHN/}.J*muOz6FN}"WO
-
-l? 0ו,Erb7^s9%:oݽ/^")Yȩ
- "޾_7
-.5$xH(Zm4J )l*0.@x􅤾C Oǃ;.˦ǗR-exz4;[7
-8rwYD,:AS9ܙVeZ$)M+.av3|Kd`L|ҤN\M/`Pm\f HCz;FiT+k[ʱRjL;N-n)ͱJHjDfx6MjĤNli֖OD8FXMIomN#&Y3FUB"j /u8}$;{XFO׿)nOլC*
-^ V>&U*\wv`^;4/
-;~7_g'D=+T'+d_!
-}Wa21LjH0nO HTWI3e`*dW!
-}Ua21Lvj<mWz@gĻb>\w;߇I>^.Zf /Y>IH,t3,I:&":ٳTf$'-ϨI\bnl"LB5s>.e4/˧K0‹*?>KRy'dFٝ߼8=~޽nB>㋢^3(Grr=鄉^nA
-nbʴ&ƹ޵8DEH-1EtZcUѷN8w UQz]Dʝ?F7 \ǫT[
-endstream
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F50 378 0 R /F29 379 0 R /F20 386 0 R /F26 408 0 R /F23 383 0 R /F53 658 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F51 384 0 R /F57 389 0 R /F45 394 0 R /F40 395 0 R /F46 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
891 0 obj
-<< /Type /Page /Contents 892 0 R /Resources 890 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R /Annots 894 0 R >>
+<< /Filter /FlateDecode /Length 4184 >>
+stream
+x]K ϯd`dz4X6{d$q
+k7 g<*W>s#5ikPL GawyPc/O=g.&^<˰dsLul &ψbM ۆH"mBaJ*r]Vvݧ4ӐUow^:,L;9Fci4IJO _  8׾)eM5q&$W|ф2iL䏭1f P֯"\/bU}Jؕ'+
+`5g.4M|W"?‰whf'OĞx&#zޙhs=-M|4;=-M;i
+Ч$y4w=m2)kyJĞ&>Nܞ
+hE%qߘ>8(˂SKpD'.ty-\l&`Z!ھ2R He80j>[As
+4}d{ NW SppzBĺe*XIpيl+-3{"ZibW**.c8]KZ 1 ,v>9y\Z|#srVvR
+ 6\q~CK3cexqҸV];_2Yɰ:3g&H'+0~s39D!78;ǸϷ 2SVGS'h9hqV7f(4,
+o 2E0^Vݺ-IbZp:cw:/=sbK|-a ȓ1YٚR9f0!=i}ΔHi#9B>? }ɥx/͉/o!警>V
+{"m<v0\ &?Hםln}̳~,Y ;{ >4R/ߧ"\$f$N_#e_^"QL]MP9cKoA=w2Kw9\F-^탗6(Q ӈbtB1)&) ׉gDl*T4_BF6dk1Qj
+mPʮ&zB$w--#pr]ƦaI3IΚ3CʜEqM8Lt"g.??+6'ᔥV/iZgn'LiMN>UN<z7(YpfidFu$:yHab[~. >1Nʿ:"F*!`wvU>Ǚegb
+sɏd=ܑ
+f̼F켋.OzD2)
+sDis'0С PAS}DM}M~ЧbI}HCcG+ڍ4+D0v
+лnscށPA#M}HCcM}HCcM}HC${# M~b7ih
+*`?VHs";RTS9܀TzZZ_p9$1X.T3#1j>Xi4/bRg`rөr bZUsӎ>Y3mCߨBiHԱnKe;Ҷ6]`үe]Ci@sq#)O MZB 1p)q&smb:J
+>]QZL3٥-B9V&t:q61
+,Υ"f깆LH J
+lt0'zIsm+h3֒Q}=W3ʺUޯNv,V'[ h%sX &)0kMt,R 0L<xu+T6Hw6Yִ V0d\@vҊY|5+%{jGFt)D*G5sA$ٳj`z0/"S_6/` TM.d2O:łYh6S%ۮEƾͯӰ?j~ן1,
+Y<ψl15%[y+q۴/L9v&ClYٶ ^
+[ʀĬY^WI?OѾ*ˈgd[iǷ}XUa ]~.a+e1jI*X-GUM_1`KeVB~kVN:ͽEJW1҆W cd
+:4,o%8@~My#yBRj5
+l3,._͊$1mB5x[ xQCVF4g y)8vT _i2GX.agR6`e kOuYs,47Hտ,x cbĵc?J"kcW т.w'J˵sZ2X+ȭVaXZq;=GLnSX |)YcPӧ>Li? _VannYƊQFTEBF_̟UBʩ}k%8&_akxue5:.˔FbdqDnVu<fٱ*V5|"H [*DŅkjT~uk`=;Xcb!,&Q]@j+7@A B
+endstream
endobj
-894 0 obj
-[ 889 0 R ]
+890 0 obj
+<< /Type /Page /Contents 891 0 R /Resources 889 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
-889 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 258.666 67.03 269.123 78.65 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
+892 0 obj
+<< /D [ 890 0 R /XYZ 78.37 808.885 null ] >>
endobj
-893 0 obj
-<< /D [ 891 0 R /XYZ 78.37 808.885 null ] >>
+337 0 obj
+<< /D [ 890 0 R /XYZ 79.37 598.595 null ] >>
endobj
-345 0 obj
-<< /D [ 891 0 R /XYZ 79.37 540.346 null ] >>
+341 0 obj
+<< /D [ 890 0 R /XYZ 79.37 317.185 null ] >>
endobj
-890 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F25 379 0 R /F69 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F57 389 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+889 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F29 379 0 R /F20 386 0 R /F51 384 0 R /F68 406 0 R /F15 385 0 R /F26 408 0 R /F50 378 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-897 0 obj
-<< /Filter /FlateDecode /Length 5086 >>
-stream
-x]͏$m_F˥o X,yc e9$<>%~HI(GWxafzX"*Q\|Y.zOEKV9.~rїZ|,^0 >GSZ9,b?\7@qHɋ~r0@uQ^AJwED! EScJkDϵ]hT\>AFl) ^`"~JЉن<UT$ DDD5٭QDԾWj}y]Vz 4䨽򫵶g:*ެ+jBQ
-5+f;Fh?[zȿMsho~hjd_GPX@4`*;M_fYvKf!(WK1.% {uFruVQ[FSǤġv </ V
-;Mzev; SB@BrBRՖYRhmc
-S<hIbh@p2IY<[c>7]Mfpy#2h!8tVDFvcY/s6/j<ml=Ch6<Q Rͳa0~-|3IBXfO-Fĸ4ی=5יj,b-_!*]يqQaZ1s5kH^-)ϖ؎u3OK\GkcTعכW_OA;Wڭ:BZc~ތ~Z
-mSua[{%\W#6_8ȠV->bYUoC F+e4!bxĘtOQ쾇5}/:e񰈉067:ljl^]Ɗ8go*y2}O+ RT}Mܙ_{liǶ{8?n?oi-&ВK{Y<2>UT ;fl ͩ)5iXJ7mW!6U~td-Kc{-[
-Є6hC<Ԧ w#D'pi呻)OE>8ϯt)06'd]MHꖨ(M+~_JO9?M=,l
-f>x:_?m<kZ.S{N៹k:欯5qq}~Sgk|J':wh u|{Zca%+10$j A ;LRENR<IƫrVì72鵷8Pky妓dp8t%\ +$x3
-o3* M%[y<$;8'!(Մ4AT:dw ' anSOm`LTz9 @9Bm P1#c68&uHj1ޯMW3
-$nG
-0!Tc :( v6M恐WNޥ$#u`VP22 KB!4bߧ6<Z^D`$9uhL>߅Fŀ{2](f)T
-/GeC,S78ڍ'=L([SOȪDygEuJqHuZH!K6RD.sJ!6)<iη&e)( P(F=Jb+OfsLM# -%vkPlND@:LqFKr5Io6b9arZ*j╢ҭ! bܣ+ٺ$j8g;%"בR" BYQ:E H d#IԌq;bCɎr)Jz[ 3i ֩uI oξlJF;D@d5؂2egtEu0G'
-ՑRAH1Fʓo!^3|XbLE'//EcҐr#%S!NjC*,1 d6ʐv%c Y+sYip9s 90ּ:cR6<]
-tM` Y+sвt'R CS0RIFP cܭ4 i'
-Y^S.CQs/u!8#0XKad]O`u Nym.fOۂͅTnm.zIlZ{~ rak[e<D O|n M@ a֓_{7ۛ CRQ`RTQuw
-Ĥ/]^,Ӳ9Ѱ<vqbʃR$ ,qLhLC BO&,)&`L/)U DHlH>U1&Rc.z]I%5).h$xܠa%GHrF
-gr0ƧV$~ÉgU:e saυu! ⮈+I#y7$5X<0Oد25ġɍ(h̼fIj> sc,p2 +*qphq0Fe-q]o7 'sg; 9P8sGidSN%H?
-;Wqw#P{ 3 Mݠs
+895 0 obj
+<< /Filter /FlateDecode /Length 3212 >>
+stream
+xˎ>_ѹb!.Y|AgM.N|KrZ{H{流&[d-QUU*֓%O轺w~ËcE,3ikF,?.{\q|x-=^ٜ;5 KpK>55gC^3x-+*o}P2$" ԏpNߣZ,{
+Lr&^"9w #ix$ڇe/Vl͎ T>e׽vltU`I/A:i-n߳ic%WdPsZy3/q̊c))z[Seޒ,y2<]y`W <Z}vH01 2#M/$셃& 3vNߋmu;ͬp03\G&h?ӿYVk`NgV9'jə%̖ -Zx,1[W_8kF|ӆ CbEU(?_H`T]:KE9Y#_0>i;Z1r .
+alQݧ c%=! _W}ǀYg{Zmc0|cA Tp9E
+!ϙdjx C ?wL>,^h8w3Ԭ86.ޥr@]A`mrMۇd9}E
+O σzARifyP>rL5XGσ\*nMwոA5<E$gی\H]x';Nt\-hǺzƚ,H ZQ
+^~y/_yƐog˜<T
+s?Q
+7y_
+7vP֙Bv"(
+58/"_ըTE ֨"ocROF,'܂M+B G'w[:q~J5p`xjd֩JONԩ2;LꐈuP=j<"L<CՙaLԙj̨Ec<BqwQVbLnZ܉:0M5Sg&-Zl9|<_(qSJF?\?kD2Kq,F؆[s@ u4DO
+Gj<Nho vp<:@VHq"IZPQ$ a!-/ˈZI'q].^L8QEjq+̳OR&*A2s@ae^V:VOq,'PyX&rH#V$[%[oCOc5ajq\#[i$?]1;XHW&XDguTK߸ٶx8˂[YI]G8H$dg6+0Yn%T3&JSx
+V
+U[\8]=%[礫sGtWv{ MFvzG qm,ȓTw]S%|x7k,>5'c}.$
+_pTB-s𮥗A9GFsƀ/>Ɛ+9`_?JD[s7Ͱh2s%STUq4%E#U⵿B+t3-:˿)`4+2?#$]{qrk%S&Qc%UlZ;ODGҶ%L Ĥ5I~è[c .iҽTHo
+3j+լYϮ3lyƼI')u!3F2Z|>}r9Mdp<<˧4uS0!ORC.m)Ҟ^}U22UEXVev7:}-zs^1fJu.TYҭZ#Wz!Ch0okfwF~Ӯ*w}װӨ
endstream
endobj
-896 0 obj
-<< /Type /Page /Contents 897 0 R /Resources 895 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+894 0 obj
+<< /Type /Page /Contents 895 0 R /Resources 893 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
-898 0 obj
-<< /D [ 896 0 R /XYZ 78.37 808.885 null ] >>
+896 0 obj
+<< /D [ 894 0 R /XYZ 78.37 808.885 null ] >>
endobj
-895 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F67 393 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
+893 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F50 378 0 R /F29 379 0 R /F20 386 0 R /F26 408 0 R /F52 380 0 R /F41 381 0 R /F53 658 0 R /F51 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-901 0 obj
-<< /Filter /FlateDecode /Length 11648 >>
-stream
-x}M%7ݾ[vø9oQT hŸn{Հg8dfwﭪf
-(FB)H0y
-Ӱx@S3[zأ
-$l4RnKP˗zw))ڢ V=ꊟ g+~c5ݽ?ʍ.LbO:=ì[tm/tS24TnݍPթٸ ]-({x~>8]oҥk._yJ4_.UmИ_b4p֏kv|xBcGk4R [3u8*/q4#HlưynưEig[yVkD/S^%g2ԝS-b[ϊ˃`uiŻ
-5Moy'm]<n8_Wa{QK줵a>=4%J:[t[0NQTi?C ns#hώ^\KKo-˛5|b]k} ubk{Bavжߓp95a녉skU\㰙d%v0+WsxԒl smU/NQr]î lqe)q m Vj3i^ sBZv2Ov݌ݿ1=tFh*=n(ߴ.+*򻶷{CP>u== ]xv,?ƈK8N]Dot\-=ىQ ;Y }]WU 2?uL3b("݆2;ߑÃսF2ɗi<fuލWi?͂_4Y2Z )h u/&ΜG6c'^
-6R
-f
-k{( >%;?9XJCտ/[O率t S2aܳPxOxO]w/KC?zxﳷ \SA4nP?v9eb%S:xy^ʮ-J<M6h+ e^ ! ߸g7-|g3_zheoZ`ģMyMKQGFyF/
-kٳrlR v7-u!M^%1/HÅ{^n3VϛKk0݊4lKkAZپXC/7"O98iᲣw~zKEw!(i㽭;|yv"T쟩@7زͶ
-ՁAS ȵYмւ2,8Iɰwz'e8Hʫ.jM!w<(-G-IbӀ K醀`L7 ~r3!PPRxy7dQoGΘ+&y{RS{q5H`9+M5$hJqB{yDU |w5=~4k@ WPtq8e=awG+ESژ*&yRwq5?ui ]-$b%pBS[4oA=I}9Ly8\]rհR*BmQ1I\<MYfxdj-49$5$h*qB{J_dܽ‘L%v5+(vxm[Hj4ע)YWL^&j%~0@ OP3kq8=a%G+Uڍ.#nβF0KДdM-wRoN)٘ Ų#3AFM)1qr]3S Lg!{>4ԇ2 f0U:)Cۻu%BMʀ!pw4*8~u?DQ2AZ HqҐ(B[zQC '|<Lg uˬO7]8̏ i-3O;zv~Ys4V80OZ^yL! P<xx0Cp33}AM7>F8t9s.ƢV*)yQ{ *#QKV<a)$BmVPd@W
-\.Y2~<OzWX)#.JcOI3Lu{l՘*bX#<fû,-y"#Q:Nq;e=gyOE{?v~5ny#<3m1N@aaMCEA
-&fgCwe8t‚M N]`jCX usT?Ml+#(QKu;}"@d0);>O)y H0V6HD U9meH`R6(ζM`BCX&u3T?Mg+#(Qu:9^N'!+v.9+6嵳iW%b)双\|C(ԏGBM-*!uy&ԗt]Fw9n
-WE,4%bE@׈$;ݐE(1C*(Ӆ$u#1gvP[dBS.k2G{mIe%h.VY*0QsUh˕?;N/7=Rlj2%bE*J1O=j`PjlJrdgA2ĩ`Jh*%bEBWzNx8."*!uy~\^)iF'(kpSY)4՝BR?7HuRf5FZY'0EH
-WHjíO5V[n
-fv`ad[!;EpBcn:o.%|Z'8U/K >< J7[[ t|^[,EZ?Epp{D 唆7`y;>FUd1{"l՘*bX{yOJ`p`Qn|1($HHd,RLnl1vej; *#3zTD8hY˔70yM<ӍٶNӜ:KiXXYףKu<2A$:oiSmbr:0H]O
-jx=Jpڅ:p4< mbv:0yH]
-jǩ "US.]J3Mm.sx67v&y >GiVPIӣ
-~Ss+JjyjzAo
-
-q|G(6 Av*
-O6!EÇ8&T wz;3TC!|E 3iَ
-!)9>qRJ g jSw[MG} Z)ʣѩ!pw]d*y}hgq['$ڼ/ǦP8Bqp! ZEy4@44݁oɀ\+PݤKW4wnz T wJy;i#rg+U_ҹB;Bw;2o&Yiwy(kīB ^FDAC8%3:>9FuL~孾۫zz`8pHm}貕FA )fsc&΢ ִ`ѣe$fŀ
-
- qD{(kXAӁ,j|E2Dٳ<R
-
- #{@5$V#rq[s=.`0t#oP3I.ԕ" SPC0q>DM:-'zu͐3# zƀ5Zƒsus2Ninv`A<7?/o&3 NBce^*p=w%C{kE^UYe)1oāɱSQ6ŕz%$Y4u2VM4|L=\qCBC:Srl.p
-( U}R Bc%Nb3Ԇ3pwQHNv:kFkf:+#|EeS\)WBCx'ca^* /g]\&y*͇/y~I=g\Z*>(WBxXף
-"D◎1w_GZGk/pTJs䧋Ap
-RT0 NLU!=;I܃d[UO9`LS|WA5?B@j.Z H6qCm=~)śBI栚ʸc:~Kp 2T0NLU!=w]׸0MgN̺Lf5-fu  NU b[e>
-hH |zc繊>gA@>y1 ƚ! XKAE`'c^ ѐûZ]|i.~(in 
-n+E
-ZhpD!C{]\l<]XlE= W$]ӝ]y+h!LA0SGDݕ-E^ 5%lYn#KbFԎ aȼ;RT m/&0G xhXyۣ
->Э^7^‘@>(zE7'&vhBP 0m@nxTI2t2JO@f( z|H.JF=܆x$\̫OA5z)4Y7=0tCz5|pܷ9+ {zf6JW>Df4XxۣC77SORqUa!vji3[d#4
-C]@EA!yhfĮ0f^\O~A3z!4I3v2^(@CMIwltU~Abl|W{-3]RAMq^A
-
-%9 Gyw CpO(Ʋ5Y`Q D0N EYқ5[(ES$!薞F(Jzjd;T018Q- -;tp:MTN-{p -%~1.thl?T&+8C(DF]YNH
-$|k=XY^L8u}\rdWm&y? VNOj'4>o,"& 3Yj0\3<E(NOb1S_BH5RtPw:T*AjT呵lAFEm.gA15jdWRJ_랔(Tؠ˕(Ty.{pgƟ4>!FPt$(zCLx>ԍJAjl呸lAR ‹08^Y&WxjO1Ia=4DNE8FHviF3idOݒ𭙕.= Sn2)ԣ׺Q&r(GV4Ȯ0qai/ZѾ=~ fX>m6ɂNl'ti3scoq࢞2ABJ;
-|o=?ZnVm_
-دtv@P Av~U "G}Q䄢/{ZQmAx" xD:0ezER\WA4R5Bl%?BV啈]\j_MUI^5ᯅ.1`^
-RvDUVqxkS{-oV-SKt}vc.Vۿa?(jC9b_finJ֍ѐzܳ6?huĽ0t}?zW-{9ƳX/X>h,k ^,O_-?5gNjs<s1S3h:a>tm~>&I/<4Xɝqt/3rCW8<z9*>SU}i4|g|<bl=~$S}ŏ.}:{["u~pl/֒5`]kdulMm~Ϗ_Gs>2{f/~'q"?׺_Jk,?5
-} _aoenKi훵5Ys
-k<]Nׯ5]ʾݰo38,>8Ѧg>+XzYwyjK~}};z
-*`O>t
+899 0 obj
+<< /Filter /FlateDecode /Length 3050 >>
+stream
+xˎ>_0&Ydzgǀ&s}2 \C"Քjۗ=NK7U\UKa_&I~ {5r"X ~z" 9nrV ie)Ҟ
+m#|"ΐ򯩹ˊ Ft{KX
+`1z]2({a
+b'U
+GMma4H? aB z@=rdi}s6!F_~O dL3=|f$EnRBK"x% ӉT3-{.:*tԀplIkZ
+VX=:4|m#lZAyqMFBYm pT -V e(tt
+K LHl qˆ^!%7Pz;њUF$AdH?ƧBM.K-Q+"`E{R +pԆu43p PZ5m21
+@eBMx= Y
+A:jwp"28Isٝf'wqm} }J 
+MoQ!Cs[u񁻾]c' Z5Z[$a@5݌` a(2bӦ65
+g,:zd`wo=Xg΂jk,cEJ{w΄8` <[#/~"o-k&c3%P[3/k6xW\<\{K;2 2l_
+ m\Kp
+<LW^4. ò2l3sl]6EUA
+s'.b-oq^:9k<=VC8Q>sRmʝ8})VIwo׽@&-0rЮr5k~^
+F$ zvƪY-ʌg\ܛ*޼l.set[T7C[<ZW֖zv[NBoϭfh zΖճXːbˮ
+1ex#MU'|VjgK{6iV%UZG2Ŷki㞦Wb 꽼!Vcڗz%y))QH$F?@qd:7Ƨ]1
endstream
endobj
+898 0 obj
+<< /Type /Page /Contents 899 0 R /Resources 897 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
+endobj
900 0 obj
-<< /Type /Page /Contents 901 0 R /Resources 899 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+<< /D [ 898 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+897 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F50 378 0 R /F29 379 0 R /F20 386 0 R /F26 408 0 R /F52 380 0 R /F41 381 0 R /F53 658 0 R /F51 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+903 0 obj
+<< /Filter /FlateDecode /Length 3921 >>
+stream
+x]K ϯ,ZFm^!q
+I6؟\&\?~F͕|"΋5
+.׃7Tl5= 9<9/8
+B(`%[ ;NZv`E1+cvtPq1ĭԍf(tbm.&|rl2*%Y jZ={n5Uf(0k/ ]_jd}d#gVW
+%4D6AÔ%2sNY_e]"t]uI}Go?|XIu-9c%HGE~JJ)٫&fgJPj*)Psêd:$8)h(>J*(UI
+*KQ^ur䠍K
+j+ҚQSF ~kbHuGunj55fr0O{AUX yH|''>8>\&lg;9N<p78<
+ q
+V[*!~gT(cY?lM[{lJs~B5#n6pq{ik͵xto-g֚r=fjh9Q[ g}.6զeJ r6; MKt#(p$5pYg}qX' ) LcnXL|ɸ?VaD,(ф{I̵tHR#J\I<,D¤zIl?֋Do-kzIlSmODMۖ wNmِ8cӲwΎd`"KTj]wΎdoo
+kGNQKD?Ǎ)ҿ Axg4,\)C_<mX!ˉMT/[Nkp(E ` {@
+ww In$qܹZ`K#D_@ (66#)ώCf2G~i;$j}="QGn]+6vк1 X#qk;.
+XuH2X;$9Vt\`Q<ߊZ6.` \㰸HJ>aC# -j}Qx#N5:Y;PI~Beggt\2GMHw8%i.aqIF@d-É*!n8[oZby5¡a[8ԦpҷP6)6 m}վ_Xr,:AL4;͢@rKo( ޿J;Jw;JS]k
+<K>_kbm80n= [i%p A0
+KֈUZ>쯟"&}4RV|{v&y R䯄lk+W҃Ο Zp_ZxÄ/n&~cFc۝&Etb;^[ۤP0((Z\S\wM<2P]qEUAO&B[8yk eKAĨ+*&¾gO:KYѻր '!%ni+[nbX|/CE I(+Unj_"4[~R^ȟ۳;'H* ܧ<B@=~&R'!+^bV~ a>1h\ovoH^s;ٷ
+A T[4]A'\>[uD9Rs^f:t?5ʵy-B~)g^KɾcᲨ˚WUVsH5jv:i!\J-,]y87:9,8uX;4T<|SC56HI,vqʟfv?/=t=w ͙]5Ir
+endstream
endobj
902 0 obj
-<< /D [ 900 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 903 0 R /Resources 901 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
-349 0 obj
-<< /D [ 900 0 R /XYZ 79.37 639.272 null ] >>
+904 0 obj
+<< /D [ 902 0 R /XYZ 78.37 808.885 null ] >>
endobj
-899 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F17 384 0 R /F69 406 0 R /F15 385 0 R /F20 380 0 R /F21 382 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+901 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 386 0 R /F26 408 0 R /F52 380 0 R /F41 381 0 R /F53 658 0 R /F51 384 0 R /F29 379 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-905 0 obj
-<< /Filter /FlateDecode /Length 2908 >>
-stream
-x\͒S*Tv=[6[*'WC/ytE֊"/>xݻk-W$&뙴5q#/_ϹΥģ߭Ǘ ^WYZߌ\!Ǐ{6<* ouݻГgހQ+Pi JPo, !w
-τ?wls;}Neq*=Y[=kgWI&%/}
-<CҞ)ر}MOYSu+(~ԢB; LX=3 b/XY9C_?M非=m4g`~a
-k? OA󴰛]* pps >i7=><* GFCwIapzRnt;tCr;
-tj-iBly <)7=UDǵUcLc=*7KtLy28ƭ8>'F6տBbbejO!Mahša3")-p0patvͬ9}&a)Eah]7SRsII
-6r
-J{npֿƋ:]b;\ \9nh A?;],>~q{@h`XNjz4校>,\JXDZPi`;ٸv ikr*J;iwEgciV$6[I<K{-;a e${f<>{U(3I|N
-f3ռt6LfWx܉
-O naf83)$a^:qb$>NLpY8<ŌprV7)pݔ
-tu3 Z2cNuӵHW7l,3U7
-f&wHY75
-}FMüY3=ak1JHoULqfy`$3LQ56jwկ*Bq
-Ksv6;܃|fwxN|>rT:;q/϶cF~pQËbj0qbxGOM7?MaMrS(e2V&,=;K{u.;v3{ \.AvxȺx,³Nг~p㉿?e34FK^r9;o7?XE)=cc''%;;yS:sϬQ,nGZk39S-[FpFlAp1٢pۋ.Tg#ËGh $='I3
-Hх QLYʼnL|HUn&;9G90^3+|h/) 9YR_y|Wh{ķOs{,}Ta[,=R^Rn0ctPvRnmtps:N:sս=}ΔtRW~^bD aU)`:bïn
-ءBo~'ڋotK{%]´fL͂ $嚰Wwy<o1?[j07`Eqm/8
+908 0 obj
+<< /Filter /FlateDecode /Length 5469 >>
+stream
+x]K$mϯ(PTGD7Be:(d[k#d`Cѡw
+d ֢rCؚ1j
+]{i0R*lbQ5
+x/gJ9ҿ?P_T0E;Cvv 3i9Dj<"VgN:gc[j2԰D"!A}XH}0E!:]t"'hk.> 5lxJ&M" p(p>InBIw9i-WNzsNڒ-v+(Rhhzp/|HD]u5v(R<[loie;[%2۽yc^" g"pa_3!IBm|TCwz&ZDD2j`aËN;}Q
+sϖ+%8ь1̢@f8ٵ
+OH% Eb֩6EvGѰo7v07c(\=7~<71cyL4rY8McbR)pY5kzJmִٸu AuF[0Crt&X9[XneKM$??\i_3q?77Ԩot_eoMED^c 5Ơwt t"0'>fwVPIɤYQ, G3j&YCe$Obb,hPUOczr,S΍G%9)GyXb%\jR3KABaI&%ORO'R% wOB(8H{4OB42MJJ.~t11L
+4Lo6ԞMdX4ܞG% 'QI
+1*VD\8JR'Y\8\023@Tb9IXh=޴LʰTX':-BtWB{lV
++Z߄qeE2_"@̗\.lVN
+p'r VCa"
+YTQBim^((ʯ!Bi~m?dzM;S1JMD]*YjWVüZ<9V2gպYRf0꟦Ԇ~2j$qY>mW*F6?n@4Mgfv>y#hp'|>D#
+a0ՠ]C=$/npǻcծ7VІ[cugP`}Qe@R: )aE+J7U`[ظ& )U|[NƩ[CÃuC G6UoT6&E T&YB7.J
+ ֭Iz<t)IxB8 §cB=/S5k'
+ʠℷ j^ՠh:eJB_4Jh |`t,/2Bp;Z5ӵDE gƴ`LJܷQLAr݊~3>|/))ʿ#Z"QYjSOWհ(۪Y0᪸L4c~
+_' RqZ,-j#H@!·D̒*\VG$2-EW-"8L#a|hG㴎ղb R(_9(fIKpe1[9(c-X
+WP! z"n()??> N6HO=ɝ+l86F%RfDk Yko߁bH"@9RETt."B&Zʨ*>ʇԗ))j^&>ibDg"&#:$F6(նH9ңOE>-
+½[O\D<چl'F+XBa֭^ #+hi/ަHT+$*x@tz}*gsp9뚀}Wgmd Ď̳Dm\,0+b,0D~Y(ͪ/*ݴ'@W5*~s}JvO#F|ir|X+p5"9}s1P]QUhhl>Ⱥrv哭BE=XW{JPcDR4a[ÜඁҬʣ#*>iSCuZś'[_gCh`&|Z F=5z:Y1RWi
+k9o_һ>1PIq\D[)56?K|ͳeD)qJJBjH3ϝ
+ĖDp%ԓNoP.V(]Lp۲U
+-5xp
+mDajc)WJdHa Ut݌K_Hk!<pZ?],_Jp3;kQ=o8$n
+&~DZlu ̔V:mOBp\1J𿿠bL.2WBwm6&3t V#RY2cyV۬Tn,+A&M1[};</VgqE[{S ?IhFj{[%D2e_߸R&N-1M@laV=MҖnj!|:U
+|s5
+g3NsiH[Y>hh'VCHs~ՀPNW׎j5muի_A%Cw ~~s i_wPD?_~k"[LW"p\;}D |i>1zX[6m0&(&I+zI?䮟րR^x\(H'|@ȉGK! 6pT|r1ǝ?͹D1sMN`:'REjxI쓏7ڲ5>z)<(ܵ>y({7 sETaf?#c{ݍS͌MvPM|lxf).w) 6zSP듣|5j|8}_X8Gy
endstream
endobj
-904 0 obj
-<< /Type /Page /Contents 905 0 R /Resources 903 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
-endobj
-906 0 obj
-<< /D [ 904 0 R /XYZ 78.37 808.885 null ] >>
+907 0 obj
+<< /Type /Page /Contents 908 0 R /Resources 906 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R /Annots 910 0 R >>
endobj
-353 0 obj
-<< /D [ 904 0 R /XYZ 79.37 771.024 null ] >>
+910 0 obj
+[ 905 0 R ]
endobj
-903 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+905 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 258.666 102.247 269.123 113.867 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
909 0 obj
-<< /Filter /FlateDecode /Length 2210 >>
-stream
-x[n$W @,tލj;L\rk(م '寋~^?~qPhpuq^hwq:u竔_oo%QW 6_7L@O)we.^x w+t%wRMJ.'A:7pBIٞ |-|/O7xMov4R\I' h^QpV8pSL"\P݉δxDШ${tRSKoYYN>JU5.
-ĕLM{2d'
-hrȒV܌غۋֺs-hIjY/|XM3eqjܳ;lHBD)5}/!["WL(m.hF7i߳шύ4KyMc!8̳1@P or;VdY z'IUqwV"8J{zB5`X,sZ/E#ț
-BVi1u}u-<`e'& [Y1<BmR3 '#!\ l16xQ<i5EJD  JaS'jiGOND) aSSёg琽6Y -p >ey@/97" fw
-
-";YCa (l, *gQK '9GU.gа\lG\<#؝$[F1ifڡ2\F—V1^;(y'c@K}@0:(qfN$%$}Jɥ0hzJBY4\^?e[t-<@yD
-m6C.e=[s߂ul/I+k h8h1SF~_ jڣped~OqeȎm=CkxDu͹LY Fic N
-Z$IKopQjړ
-ͺsg|}(͸OM; 괃hbfT7TFx,XM1o7|m?==<b<& omP&Σ/-3W8&w8R^uL|}c7~u<q[@[nq__KU7u~亖Xs^H2\4S iQ V
--a0|6|O$G!tGV[aN7#"YڼC86eHo6Ã"BԛpJymMױ`6yp _6r˅ ;^ SFC[dߏ&]+]TMV]եbrͮAZA Ԛp6c"v(]a[cklca-]h2X }]jrg7~Ifn<Ccw8v
-endstream
+<< /D [ 907 0 R /XYZ 78.37 808.885 null ] >>
endobj
-908 0 obj
-<< /Type /Page /Contents 909 0 R /Resources 907 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+345 0 obj
+<< /D [ 907 0 R /XYZ 79.37 539.971 null ] >>
endobj
-910 0 obj
-<< /D [ 908 0 R /XYZ 78.37 808.885 null ] >>
+906 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 386 0 R /F26 408 0 R /F52 380 0 R /F41 381 0 R /F53 658 0 R /F51 384 0 R /F29 379 0 R /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F23 383 0 R /F57 389 0 R /F55 387 0 R /F45 394 0 R /F40 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-357 0 obj
-<< /D [ 908 0 R /XYZ 79.37 771.024 null ] >>
+913 0 obj
+<< /Filter /FlateDecode /Length 5445 >>
+stream
+x]KnW2Au~
+-Pd\B"̔V8Sr
+%'0+9>'<a1tMiW&'Ѷ@r %`d7Ù29*P fsEg(SpS +uy WD=4sO a8ìYm9asڀY-*Ei녠5Nwi ko=.1]RD]v 3Jj; Ir 6*Ƅ>7Q|Zo<A^-J o!A yR'~oo VuPJ8d_ P򹏨?AJwEE! U0C'ywc53ʅFEN.k@;eh&Щ(mK HE )MA_\C =Ek$WC5͐,mȣ8 9z/nmd##,(2~b7,8e0
+J3W;WcMC**%.I_,i4Y9Zcdm@ϟBlA
+3.ֵvKviɳ=M^[ j DmViZkY= WK1*k}Fr;[KICj+Ȳ%kÇU.>|ݐ& tUO8etUK؞MzVhYF\wpy4q?H:tQP c߆/R( s>rkJ~R^RwګGWMF5f>DjTs_ۆÄ-LJ-xSvƬc?;͞plx#E~mm$Cﲔ
+W}uzWmS+[1I@S(WK"P7D{d]hGHNH۲kU
+w-f0Ճ$ul aaVXOT-YF>:Z(~=N+X֏Y͋Owsy(vFٝ]*P`iC{Ͳ1݃O ;3K9^j!e/DK>MA~U{j36Pb-_!Sd!GZkswѬ!E<Gb9<"ˏFƸXcg:Jw9hdid3v|Q0H! x7{.lkr Fkj? x۪e٨%ke2P1<bL{d~k?-8^Ńg06ul#ljmu9.0^O X8EL Vo:]ꯉ;k-jU8]{/=.x }كz=r1߷?\륯%d-ZΫx 1,9U:ťR4 kzPɖaoCnb1XR$bu6(LCk Lu[b} ٵsO."cgU{
+0ŀ3xLqg߸#
+4I0NPc5>(egAKY׉}K)wL!Pњ_nº(MuײӔtΙ-gD1PǝtiSĝ]ͬ`*TߌP%Ķol#%+TEKہ@x\n~~8.;nI]zGSBv[7;]|;yܚg~ :N'sgЄaރ׊O\s9R͵-Z)=OZU6l5u~s~ΞSgkrJC&:we. \
+)W>,łQcJ( RdjU}]\8+s9([+AixB}jH6!<@ QK1GRQw2<(`ToK$4xM!6ڐJvqN2]IFP OR6C=٧}jc⢕Y@116@ cFlZwuL걑cݮMw3
+nG*0P!Tc:([Φ)<PUIhqU*I"<JxX]Gv𰃒a^
+Pa~@k쨁,hL9ߕFVŀI[gH
+jT*bӷ>d2^ e4E-ƖnqgyJVQ!<ddn#r ~Ϭx~n7=-Hw6j]UTC'P8E##aDڸd#IՌq;bCr˓~+jS" blQlyR5cumah-ä>7D:lg65uF'Ra!/<'EOKܶv @mMF{dW"J 6qE vuIՌqvjT;DBA]#F6hgVUuH'
+RՑ! d#IՌq;bC͎r)J{GR ٘ٺߤi7w65"AQRbAQ;:E HrLj8[}h /D׉ta^?& -W0R3.PbY] %4(Cەlt΍ww]j-C5Ć[XꠎI=6tu1@V`<Fu="AiN>6`+ VLj٬ y'
+u$b#1h6+c 6@V`&=D.!sbC-v+]xPFAlXXEXg&'U+s@lJH3
+ưPԎ:AT4ac ]+sQe8}bA$Iv9n& t֐Ne Wq4l΅"pfYsG/|}z*(gؿr&\:}+<R״XS
+/{ ֿկG+>lbpMp臅 4G6Kxv83O@.;EGG/W!.;Ia妌_2w4.s䱌*Txt>{w- *@V/``z9FUޥ?3K -n?>8Iikճ+UEF
+Ss*{'DOBf'Q蠲
+5)jo ~6|g*yE [7Я69yr0Vy먳 %½rk|x=u~鋶-ca7+6=<2+g]?Tܗո }KGG(o]Bﻇj&P {Et
+_nO|um;2>~X=;}
+|/I7n\Iy8AIڌoY嗡VSKKW>cxDxU~r{JgIǧ=@(73h~.<&=|חyίXdnƇç=_?M_
+endstream
endobj
-907 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F67 393 0 R /F54 378 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
+912 0 obj
+<< /Type /Page /Contents 913 0 R /Resources 911 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 871 0 R >>
endobj
914 0 obj
-<< /Filter /FlateDecode /Length 2148 >>
-stream
-xZˎ+'SB3lUR@_²ݗUs?^d~ᢔ*wEyQvJHT/ޤRw)͍~_R"Oh~5vZŏN;(#!KOx'_e&c|-^ɧ%f!*̉h+ŸB⊢RA8F8a"f5k2K<KK5#w'b־ե`Y]c8:zNZ}O8
-HLQ--fd[}`U"+d
-S]"yZc⇮r㣾*gla]3Hj|'R#nkxp]G+ILT3^H*;S' uuМ%L!ʟ&y~,Ӯ4EEI?y4J(ќy 'b6+tښ?e@?Q3;V{w<'W\]ڭ͖_zLkpZH5y`iZfK3_):w3gX a\-FVEqKݫ":+z&\SGV(j6(4fz"\cI
-^K:rpk(LՇQɼeqӼ:2,P4ЌY.[It+ ukOAj\p\FAc<D>KXRp^^
-R@.s˜oȩ|J%̀}UWp׏'mk`<$oO` K=SbU&n)bY
-ڋ+0HsYn9 @/ig'QZx5шd\zal\S&8#AuEo,hw =i0?RW`"Q%G{[A}/'Y'9UPad,=PWvZ6vza)FS,g|u83$G|94Drܦ^kOz6>l/  z\1y$>9uxн
-p)w[KXlfi4HVbY&n8eʺ+ibeliLM;-X<݌gq#wq{M}twL6mk43r Ӎ!OF*``ה8Z-bs 0†gjzz};0]08`'rCRvU(/yH Zfr7t򂻱!1Ax31W Xtmxo :>Z[_DFA}l_Uk7(zJ^
-j2<Jc?c!FLi8#첼_m."nzi_lվ`/x6=AkX8gB
-;EC~7б j'O<z7zR8e)PquU&n~P>&!zUn.Oyt7ݍ6O"GO xoDmV-olu/޴Gg3f t5fɶi;r"cс~`w+3}߈GebGɜlhM~|2jR ߷G%𷦠A8G
-|\Pk3}~׹.soNqŌjh0
-m~U]mb3vp'Ls4RU}ԑy{xsM$ of\}Y*צj֙T-tVN
- aEx-4m"l#(h('x႑\x_jI#g|bj;SX: 2ioI&=P75^_Ύ
-endstream
+<< /D [ 912 0 R /XYZ 78.37 808.885 null ] >>
endobj
-913 0 obj
-<< /Type /Page /Contents 914 0 R /Resources 912 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+911 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F29 379 0 R /F23 383 0 R /F51 384 0 R /F15 385 0 R /F55 387 0 R /F66 393 0 R /F56 388 0 R /F20 386 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-915 0 obj
-<< /D [ 913 0 R /XYZ 78.37 808.885 null ] >>
+917 0 obj
+<< /Filter /FlateDecode /Length 11780 >>
+stream
+x}K&^.%_ј]]loŸ
+$|jeӰd:|s,dTϾ׊'O$zCK>OeB*Z3YT>?k놺YF
+zh}5c] {a1]07gs$'ۥlǎ!}19?\h3)ڑu45άA"D]r9F+?*N0~7W֨tAutenshp#Vb~sayTyѤz2x4/]g#Tn#jӛ̠l [u O24jAU+EcJ<gh)?@ڿI$Ŀc野Q%VM:~6rc\qj)nsTU[HA%L[4ʴc#~;p[᣸?ufOqy~m\Q,&n)^ԭ967˟~U:_[Lu˹}7 ֬aFvn+6=".17Pa俿&BEJH|7Ңߖyȸ1{H=TZm"*0Wǣ}pٟCQaFvKn 3
+zC޻EPmzjyf#>l6ŗ܏a)0)f,zPAeǎ
+Agj\O |C
+LoS |o2
+n~=&jcDDfsyge?lrE }8(hϲ$x Dnlc<W}t.Zo~uےZKj dRaS͋+m*yR<Q=`B=ԨI~3V@wV.z?7;Ch\=z2
+]ߚ{7$ fBm a jtqEGpF|Or[\a=&hɂRsnBnO-ֽ8[g8.Hp@(bdR?QZԺSR*w7Ƈv5|z B{^w0s(i- oH%B|iM֌[֌[ۘ>\cR͢}Ks;Q$="QǘlD[+Т ;ڝ[>߸+_ӳ~r\gf\`ЭiIywۯռ)n|̟8!5e)0H\d>֘j
+s:0%xrLqP`~rdv9_n~2j}C9h<9>Ŵ74tSpyj Q Xlj 𖍃\B]J
+2x?&|:9>3gTA/K>`ixr5E ~ݥ)}tWIއO8=}w^{˺A&;ާ-&Zuw;?wp}MmՂǘRT]kfͲts(E)vt=Β_Hv'EvwHWcy!/h%[G~R{%b ߢ-nLoͬ.yd=،3
+CݢC} Uws3W!(n(5yg@:ww67BJwWʭ(fe#%7(,.#^Й¢zb2\@|=ڣ(*d+)Xػ gE"hWn}p}H)> >a ArS}KsE<"g` <KFٲ oF/XWH`,|x#ֽaCmLvꅹQ #ZkT(|]Aߛ:&Cb_ s_~V^/y
+F,qc^n4>Qza.{EMq/0
+5 vCu:!Cno+>{zsC n(hkqS7>VP&mBopմ=t81Y@Ti[G0"0ė8|G`#/@g^A+b5[rڞ%Bn=`^;{-vB!]t%pt.;FQ{
+',#Rt
+Zs;t0Ap
+pycЯM 0 MƋg Y֬Mz, ^a.ǽO<i~^ٔm޲BoF0#N%?<lٖ[O{Խjhc
+t{?ø=q<Ioՠ*kJKVOҏzu:J9[R[xۭq.~磛|P"DXc]|oRn"tO 9$^-vYцҍ)-QKg?ʼĴ<9̸5wyߑRo\!SIKo˩KHS:9Mƛ(^7R{aWmJќuqgW).`c~pb`ƭ[u'[bV:4'g:(7oUUrn=?ܞS} ly:KD>
+V&ѯr;Dg6֓ ;Dך]N[ z1m၇m9wFpKr\h*!sVDd
+t|N[fk NyU^f%I͆=a2pշ^kHLGmGUZ0N>xtn%
+Z? ZJfn%?r~uwtgV7Wll(J·9]dNǴ[6Gwwrv%IjO<c{O-5Ml>Wfd0;T)$ӹb~B5^_ЖP̕f_>H"bVV;b|++;p{&!mO?Sm/VZ?u5 vxq|۵xߑ30%tdu:: ?˥ڙ 4T=o w&Pdq{i chj3g \?!so(%5 ޓk&Qw"Ŏ>>n 0,Mk2仱.
+6SX<V
+
+*KV•) #VA)eG`p}rz$ HYܖ EI2;cWZ  5x^TIVFBu̡8yW|ƊV2l*0'$vpHT*`0? 0]A9Y%AJe8̉BQܸ N9<a;*e!XRt
+@Z+;,Ž(3FzJtaWPQV6Ą2p0;e_}@ܝ=U~䒫p %$0Zc6k*TnBT(;Q}YVKЗ 9r;NՋnF<xT >#AZi8X;z<FӶ3gY@6lRvTwj
+[Rdp l{  <j\Ń--r0`sMzŽ$B yJLݩ0m0Q \tƤr`aLF|'ܫ=H@*0Ԧ۽{N%*[5<)Hn;& I鏱^*YOϥ%屽UTO*0fJd'@+NiN'覍-=E:SR⻴U .IcIm밗NJԆ8YQQ_
+$bvG-Z fC _=ؖtb<MTCӣv=qx^wjّ4U8 C"DjtcvNL m!]X%WUKV^hꨫWc x%܊ 6!11̣aJԬ40f6Z'1M4p$bbzLmB;$LJT30׽{lx:?
+Ǣ8W-gT^M{*]J׮R[Mާ7iIQ;a*L] * 5a8`U-bISR]J׾aH(ձ,BB2QKB1_yklT$M;X]˄u5W)Ï$'Wi$$\:V5:KXcZ+eJK ^ pcZP=jbPl*t;;N(,=m{}w'&$M;X},^'\B'm\N"2!vX)^r+춊E
+m◥6ò
+x+-K!
+40[ ^/+)cRCeǰJmK&k^ z9U:a,M{;^Yܔǣ2ؾB7 .i㡆v`a"ꊒO͆Nap”y {7o{ܘyQP  W2U7eLR( Vq
+\ƒyݫp hm/cӐċ1x"Bts5mG;]%WU3+u/~tN-Y rLQ)ӉN4KDj|
+cjzKpډ:U8 Dس&EmۥN'&7ybsˡMDʦLIKv*NcG+Y mOӉqMc
+oWuml
+UKSp4ւ1"00GLIA1I3=iz:WŘHz~>gE72äD\ur0H,3 qj娳uUEj"Ad&&3ɐf-06XpBL9p28rr\I|N'0sIsNRS%C'Ĕ !''Œ'W+53Ql}13M˕EHjHO5$
+3!4g ՠtdZBoE$95œ'9uK5ff\+FX ON3
+\c=lLØ>Ni{ <F0n.lo7;qyV=@8~źCx lu~$(^a^Nѓ9S%>޻-ZRU6cT0k9N;q&^cUĊ}15! E}
+'vb`!BcމTOx8X3$N&cxc,])&BL 3 4f
+1\~r~-o;՚Z}@
+n%(ec)Wx11c{p%N YUJn~/>n |R^Y N+{ݫ@)zR <tT'C<ZїE8<1t1u>JP
+8SdB A *cb^*L$=!3I^G3IU5B/aaʠPMBjN
+S8IO;Ʈs3@
+n
+> SWX-b{H4IMje 6
+>VNkPt^qV5I&إЁעqʘh׽S4MZ3%
+Xcv(PE.2(uc)WxX0^TIzR=,'-G+
+-8%W3WS@}U규甌#;eZ^# ~,\um#hA զв֮> ~k >$0f^^>ϴM8qOxE7NJ6VA(Tm‚*ʕd"PeLN̤4' ?7pd]Lq o`bZOeɠPM {RpZ7V3/v/Mғ@ڀ.l11.U7Aet0>}JPƸ ^֍UK݋0u>I%IHzM;@pl
+[f%% rBH<'7z'ka'FO
+WVBDd*c%EYƵbmN"@&
+PXTKbI]T,U!)Sa{ִ}F2zxiWLK2#
+_&A<R^BR Pv!kXa'-quKDll8m$x/|,n2Zʹw!>y; fN쑹sJT3i$8WA 0I=]KJK3G]zX&dbYG&uKDT.R^&|%/Gv
+մueS䢧{E=~7\u7m]{%t*
+@Բj߯5 UKŐM
+Y(#l=uK>Rh:_ħRz\*i[a3ÅqtOj )WzqdƄٞK;/I C\)ĸ _dD|[XHmJg아^)!l%?._8L
+l.ơ{7ֲinzL, ,1ŒWFZ}#-W%\> أήuk#3Չo0iSֽk>5y1[/<v܍n8q8е1Kzx7磶'NEH4ؿ7H%8߱e7 &dcRk%:Q{||{l/5@][Rm~_'s>?P.k9mˮsW!D9?_Cկ66z ?Kyn@,~7|
+endstream
endobj
-912 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+916 0 obj
+<< /Type /Page /Contents 917 0 R /Resources 915 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
918 0 obj
-<< /Filter /FlateDecode /Length 2276 >>
-stream
-x[n$)S 4AdYruGڳo& T&Uvk|(L/
- =]\&' _]eztß0$Me 7z:ˏ:YkduqqVg-pJw-fg4Yd 6w]`X6eNLLZX=3:f+k؝H%0*A'Нqb5ޓATUCY+Fd1St'M$a$>kz&5]м~.9sEd}CN"y#o>O:S"Y4qOnR,Țb8[`5I/rWb{5z鈇K9uÒ|RJeY_^Ih(fJ]BֆN,jv$f@X=rwME)B~Hwd!d}~%+'jZ^%:PhK\"p,CNo mP6gxG ѯ`IB zʋ)0$elN )[:jqQ\M>+H+ҵ$b?
- McK3M8b;wqK.'X ` ڭ }*3i _=^VfkA /I☉By(-{rE{h #n/40E
-;F!6L˸!P̮]I(NtbHnku絰N5 ֪uM4:hi7"8L
-JOn]6F-jm-7WwpSȦ殷<*.;$d
-מb`SPqK)@?W!T|Q84!,s%4/5ǩCn7:ʫ5LyK&>˛WBp;#v'\-քYϮ} +˺BI Ѵ=*B",ؼYY3QOm"RLOtz ԑV2":&lhdh3x9&(X=<Axxk&f(Q]C<X@7yw}焥~ݭn* [kśA4IjK_h ݊d$"[)[x[p! e|a)mWۆcoiW/vy&}N‚zRFes0[S`ꞁZsBBhP^gv1k ҩ~B^ZW>=e
-g\~jrB*SGz(*=o\u
-0`@ M4a͚{{iK6mL)SmFcw"5{KwA\TmmCWKEr t#Cn%gG'"Sύ-%R8U0{ > ߽ie{x$7fgZ)@uam
-endstream
+<< /D [ 916 0 R /XYZ 78.37 808.885 null ] >>
endobj
-917 0 obj
-<< /Type /Page /Contents 918 0 R /Resources 916 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
-endobj
-919 0 obj
-<< /D [ 917 0 R /XYZ 78.37 808.885 null ] >>
+349 0 obj
+<< /D [ 916 0 R /XYZ 79.37 535.013 null ] >>
endobj
-916 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+915 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F29 379 0 R /F23 383 0 R /F20 386 0 R /F51 384 0 R /F68 406 0 R /F52 380 0 R /F42 382 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
922 0 obj
-<< /Filter /FlateDecode /Length 2279 >>
+<< /Filter /FlateDecode /Length 3277 >>
stream
-xn:_h>+;̹oΜ*Rb$@,־2C=l)%17n.t7gV)MJ|H~I> ןL\K5vڞŏ~˝X[
-@;Կ2tbw<3pK
-<p09ZN]2IA3U;0*~U![E "o*Z]!օkuK52YP FiCTps)+lժ+3ctt&k#eO0\=D_&= G{F͉wqJF7p;;uM_?Y#RESZ9*zmHs-HX4pf6EHήM9rUx\zc"=@Nv.E 0(RaI ,718HASx ͐xN-p&pIDb$9͉-T
-ߟ4Gn40ށR6S%z^ĤWºP2p.JdZ3z;H+Hخt)gh/ UAXL) u8͉H
-iNv}UCG) ]1qeR0TO { /e1 8OBa׉m.RYTk;0<$<Q^`xɤi~"ڎTB)ԽH<6_oKǭV~ƝKΪN;=uE${Ҏs߭~'s!{ҔG.s灹.!0o1&i
-K]&֔ȇ7T. 4(+2oq4{hs%j ˾K%$Pkzb)UjPc©V¸?
-D`GENzŠ RِFg'~~v`'g#ziB <?*bZݔaeouwVU
-Cg%uv#&Gj}:=<w!?u1jH! 5 z-Hƌ>$hisf[r8
-,Q^ b0*Cо <yj\
-H1L2z;@$ΤNM2*?vZ~
-oI{wzG]Q &" k6h(1)A^X!t?G6֒NTR{aqw[F|’NP&-ݪ
+x\IG|܁F]Sni9/yXZ)P[UROL iotN>)7'D0ќM/|<M?|9(4 4IS[Wuc?-G;99>Q<}3řrzoǢ~|.׿V [+o.ҵ
+>苠MvYVrQ #*kHfnShk I,*M()4й8US
+ pUƑtm'g&BB+zDFT)&nZ%EeCf_mVxc+'RѓR4XDke3Ĝg0;[ibࠕpaX[jtQ%rgKe[+ ҥJYկXeyGeTMSYG^Ҫ, 3M]SbVVg,8J(F
+2XaO(-3zөB<W6=-kŹZV{Gxsr+0zj!
+wn%B297Ȩ:9S
+stv[t0Yͬ{6L#[p fhG[?Cm
+6nv5"O}htb,QM2uHE~wGy70e',ؐTխ{$Qw[g%6|A@8pAvky_P>kgy۷e ˎyNJ/ʛw-<Vܭ||NJINc8=&<pA(LEGֱ6e8?1ّu,lnP
endstream
endobj
921 0 obj
-<< /Type /Page /Contents 922 0 R /Resources 920 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+<< /Type /Page /Contents 922 0 R /Resources 920 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
923 0 obj
<< /D [ 921 0 R /XYZ 78.37 808.885 null ] >>
endobj
+353 0 obj
+<< /D [ 921 0 R /XYZ 79.37 649.983 null ] >>
+endobj
920 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F59 397 0 R /F68 406 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
926 0 obj
-<< /Filter /FlateDecode /Length 2265 >>
+<< /Filter /FlateDecode /Length 1987 >>
stream
-x[Ko#9q0Z^@@n/s0U8i NU"/&?_^ke/o%Q/H R]JCJ+@JGȿKkC펑ViF_ p^-}9sۿYF/^x6D$)rED҉k"^7;GMmh*%JJ6жv9V@?SﴰH-A͚]
-0&KO9G{@cf%WFJ~"PG3'U[MV1ٿ#%ωRiWYnt6ƕ /`j5"do#;-% |' ge" z4˱%)+pVWפoxa1$#͠[k=kˍէ_I/+*[6,/E45*m׍VL)
-VFʘAU] [;3jftuʊDja>\S=
-Y-^]o&f0oǮ7{qg mCaol*pp-0ƒB,*t[*tTc3׮
-70j\Ӟ_s+qR1z(B'@_ ]8W?/>)h(nez3`,p3)G7MCY3,I
-`08zU!|kZtom=~CŒ6Ԩ~odhCUsYO)y.5a
-ZDf'
-Qmό=_7clэR%M-/#d\67[5 ē_u0~\rP!;
+xZˎ+'W E,K:RֳMVmWCƖo5zz?7mD >}``ehGp?O~wvO:@8" /@McNsLsiiKn'
+qLT%~d'0_Ǵ^.ӯHe_6mX7QztT]</7KW|E>^ =nGgRpe0T"^$p/2*dړ,#)jZ1
+DN;Y2?E}F4@z^t @ulv>k'%%Wv~$C] Kܒ;d@Bp1%>Z׺H.Ɋw=:9
+]1Z@_O#{1AP00hP.sN=FX";; 5o'W);TʻJ{v2f!| XoFŬS 6\|3 fBW8@f)@~Z$-]Kte qIQ3xĻVӛ cUJѪң'HV2;jJHUPMLRK `9&wiq[0]B/nT aʧ'ܮ[l/
+"v2~P]uTǃpF J\EG-S*#҉&-dlt{MNșў*zr9N 2]
+B&Մ)2NDq+a`aac{l4ȐcKmҜ`w9fFB}W5/Mݍ'j!3fťD1Q#福fB`Ю"
+%k )­_ɮM%I(ًBaFQ`2
+/Q(P&;SV?t<jǹ~ѱK'Y-''>y)Q"H~d.@RB
endstream
endobj
925 0 obj
-<< /Type /Page /Contents 926 0 R /Resources 924 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+<< /Type /Page /Contents 926 0 R /Resources 924 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
927 0 obj
<< /D [ 925 0 R /XYZ 78.37 808.885 null ] >>
endobj
+357 0 obj
+<< /D [ 925 0 R /XYZ 79.37 771.024 null ] >>
+endobj
924 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F66 393 0 R /F50 378 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
930 0 obj
-<< /Filter /FlateDecode /Length 1440 >>
+<< /Filter /FlateDecode /Length 2309 >>
stream
-xYˎ6 WF(]Ϯ]%,9g0nFۢ×/p˻UV_/E_|T_
-|s
-?
-6z??~gݴD:Q@Yjd3
-Үyu{5
-\wyx/mqv\x/4*j3,v'q2P8j̤ٙ #cz%_'a"Fpr$_BtrQX6k<4褑~wNhZTǕh2sVׅ>oJwXc(s (ꢐcd)O`_̠92BMF>I`GI'Id )
-~Vp|g,4{1v'&bv;Yl)OY%9b(򺔣H%2h)k$jc-=5Ok^Wn KXe[*´QC +)y*9mҺ+l'?)Cڗ^j
- Fy
-~9QCN~Ԃ0dl-Xzyrj[=0 L'9[C=Ǩ7n\UJ~{~$JNS6X'yvfvFNGaj/AHK0qt4z
-(OvZC
-_GQdX}cApP{B˪)cEpRg dݼ|NL%!݃cM 4ga=(N
+x[n37 O*Q%A8S܊^SZjFg& `Ğ"ŏ"/_~E)UEwE]\]*!Q]>"%I?TR}DxE;M5}wZŏNnwPFBt>VO+r.Uf>'^dTD@@HagguỊE^/Rw#/ _ ~,QhQ16{W"Ph #Ǽo#d^u{ yh)Ӆ@q`T<,,8+(,DXE5-X,m[2+uZ᜿[K|/,)v175*r%a>RubId2IP=RIBGfe͏wXuSb&.JBuSk=kq5J $L1F)zXVBk0nXEUښbv t((cecGn HI:Z(,*&v`G
+'f% 77e>?ѾJ:Se+n*J;{7aÖ R%dػ <E֝2Lov,ׂ,I<,HX^B
+0Ҍ
+>6%D3(#X҅=
+ڋZ'`[0Ou^qBҋ*v<eP`G y@Uj5_Z"!ѥ#Mk8LF>G)i !^clB E?:_I;zʹZKe;@Jq3zmpBR^h3d9 Gi9>] Y9>ѣ9gޒquM -W;ʰl'jG}'L 9) GsCK/tbss0-N3;iU1U)e`c57ӕ927c%qhy-ҝslSLs1>NlLИS,,Uε:eZXBGN5=2/}&ei^
+p`iO0#i\[IT'>~5 ϔvgK>CNm
+Toke]v]qB|4 `kBaʝo!2ab>VDσ#-6;GreE#^uk:iii=@u cZU<욶z ~or-婍NBkz0;օ).b
+ JIkd[c|#N{
+;v' + >AQq׋L6 CN-TvDŠ\B]5|욣=R>Ak&<S ؟@HC$dpgMɉ&ÉMUi87穲#l2ǭ`6z"aS]0Ral YAiXp;鶹wwZZ18,7fene݄mS{rpT43X)},cJ#w߁&>S:83\yW$rT@Ӳ xS3x=Y?Ѐ/dòPBw1} t( cQQq"f\dCt1j>v|Rm2T106jAsPeMWMvŻ@0
+PH?zs܎b4̔I8\3hyj5VĮҟΠpWnV2T!X8餯'L@/P/%)M9r`JA O!FC~7ztV9]}8A5zrtF뭽)Uf  ڎ,o9( />X8O&[?hhwOtOM3Қ͛ҟvtK/h?^<Gg5gwjw䦰Ii(PɨHxtts<W
+JDocᢕGl80?њB峇MHU/N7r0B3RCq)v@2mu{muV,:U D+bq;8B5xJ-o[ef/."ApQS1Ժx
endstream
endobj
929 0 obj
-<< /Type /Page /Contents 930 0 R /Resources 928 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+<< /Type /Page /Contents 930 0 R /Resources 928 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
931 0 obj
<< /D [ 929 0 R /XYZ 78.37 808.885 null ] >>
endobj
928 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1049 0 obj
-<< /Filter /FlateDecode /Length 3268 >>
-stream
-x\͎$)S I*:WsV{=_@@!"Ȫ=6?ߛd~pS(4Z7Eoț 9-)Q߇R -)0o6X j9Ko9?&H(3#% U$J,jtgo#[zDudW6A' -jUYFAxb\Q$R)U 2D61u=Y$Gc}O|t
-
-mGH2-|6)yMI?ľiiڟ,#C9Zš}'v T/WܰzG,(c;μvi-K;sD$0 ZlXF0f䘬
--PmJD+m2X{~+?]_c?8$qnSB'232x/{(f6gpEF`Ǚ-)> z?iߙUJ{.datnr8Vwqo;FzGysg9-n[_yP> X&*ҊI-/Uw2 TRUͨ?
->AHg81Lړ*ZX2rGՙ`EK^hԜ'XLl~ز|١Zw^{*1Ǚ:3-.I@ t =I{Ӂ*}jOZxv˽ч;Ct!,4AnzL[29J^XWC͸1!q,6Dg#ug>Y#P#;1:d?;1-!(C^G` @1B[i
-~%%%%N5xN]N{4 o1̋@КQDBj
->Y%3?Ys㥎ǹXճx
-Za$_Q.`VYϖ-Cz**\ەyU!8-ƵR㭒I~vzg޹/Q޽u6f_el?/68s/P袭ϾϪj{[N?o8*\ В(KGKj˿WϨ2pξD/pCJz:eeVƒ:,6*A0,xJ0<,շn8QOw1 L':N m 'BXҀ xO&nrd#4,:q "xllfu줃 ZT[m}W'V]󵍍y6: CY-NmnZ
-5,%*-<=mF4-˔SNqi*JR \f!s;FYNs琬*2=Tqs)ī2kKXX %h 6DF͜ED[ " ӜLHZf2
-M/r7^ځ}g4>f0:1Hӎ
-ƪi0[PK:!1 3
-> kw RT(s>>5
-n&](i>kiLf^5pyR Ppѭg6^DI7"t6;[|0"mvfE(д&&᫐ H[~[\έw:DL +[*+cà"B#ͦѝ =% `Iq ֞˕` kB0Sc18hT Jʼnrc^G=csD+ʅ bq|]k.RRYzBk b
-V4S /Qe<J+ [ؿ
-yT됸_qO[(·T3|ehun<vP-'٥slюھ )(싺nn8JxzQP;+Nw<w
+934 0 obj
+<< /Filter /FlateDecode /Length 2317 >>
+stream
+x[n#;WZ#Q%A}}`3P*\%;,87)E^s??.J oyQ녶KJHRMJRߥTHIS[I=~= ?x+[C2oǨ-2c}yZ=˧ O@80WqO\RhhFQ)/k|0HǯH?%e E-ȴ{
+o 6mP PGq7i ]S=+qI<*(4x6vO9,4)ʎvC{ic?䯗z.Osy9V8~q᫷;طJ|lvA oI$k%;˵o졕>)RK
+Ej;eQ( 墬vÜz(tFW'} l&^εKN$8_rse[Ia'7ˮhܵҪH8&;zht.)
+oqmI5iS98< X9{qfOӯ]]t7(nmz
+ {iS_EZ)k+yzžRVOTMNHzӈ~Wlٓ~r߬WD!*(s3
+Tc
+lXf'
+MF̠%.]>@NInهr"(ή 9C8Polܫ؆vgJ3zh# ƛ-p\5g9#}-;Cc^׻ŷpeUw8}d0"%B.pR9y{USO9IN\hgƫ_د$ 85V%z0ߨJXו@昴
+lEStQzҝmձ, ]/QrЈ@s?Zgy:fI48'uEF UXaK+sv,_=~_qYu3
endstream
endobj
-1048 0 obj
-<< /Type /Page /Contents 1049 0 R /Resources 1047 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1051 0 R >>
+933 0 obj
+<< /Type /Page /Contents 934 0 R /Resources 932 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
-1051 0 obj
-[ 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R ]
+935 0 obj
+<< /D [ 933 0 R /XYZ 78.37 808.885 null ] >>
endobj
932 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 146.01 692.928 ]/A << /S /GoTo /D (page.10) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-933 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 185.672 659.422 ]/A << /S /GoTo /D (page.10) >> >>
+938 0 obj
+<< /Filter /FlateDecode /Length 2386 >>
+stream
+xIn#9^CFp V@}k4NpMf8|deWZ{?~}7D0F??7usA9_/R›RR?;}@J ?љ/R,~.wryceDocT>`l =#' x5^~hSD`4-Qd^pߚ<C^p;/tWPW(L38a8ew
+vT}&6Y
+#$tm(zOXV R33CB*lLk\m0~sE_M>6Y2cN gz*r E@̀ iENR.Y9QA^cþI+*R,(᎞:b0g̭d1Q@
+`zaVr0#tޠKj_OR^kV`5Cv(T3:+W=CH14
+U۾Lw{Jk(ld{ ;D_&= Gsmtٜxy z[w,ǻ5">>]Eݒz}jof6Qlfսs=^::.oE,P]
+.UA'ޒ'ß47 Ꮕhҵ<
+k> Ie*4Bq(xu(g*6R(dNV¸UUCg) ]1qeR0TO Q}B|?(G| 4$nu`e렡Tk;0yՊ8I:j8(/0]\dR4?h#P<u_z :kqQ\+?N%}vEgD'􍞺Iy=R ߭~''s"{Bve`<0rXze 2-Ƥ5M|ôUkڣš%qeE-{ p4rdT>{VA5U=0DJMqTe51é3+?
+QO'_[ EyQ2/B oMi, vJƺ%jk%Yh/J=XN5/S3A]#-[2ͦ816|V [k`#ɕS8ڷzcāU%׍V
+,
+N5P:|^Sע
+Vhbh }uS
+:;A! xXP|ח/V0>Bb3[V849GGnll'pb]Z
+oI:MҮSKK_^ տ4m oG&%iȭ#=]#6z ߲fmSxKaI!( %OVw2j
+endstream
endobj
-934 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 268.68 636.07 280.635 648.025 ]/A << /S /GoTo /D (page.19) >> >>
+937 0 obj
+<< /Type /Page /Contents 938 0 R /Resources 936 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
-935 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.12) >> >>
+939 0 obj
+<< /D [ 937 0 R /XYZ 78.37 808.885 null ] >>
endobj
936 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.12) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-937 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.442 600.204 ]/A << /S /GoTo /D (page.65) >> >>
+942 0 obj
+<< /Filter /FlateDecode /Length 2266 >>
+stream
+x[Ko#9q0Z^@@n/s0U8i NU"/&?]^ke/o%Q/H R]JCJ+@JGȿKkC펑ViF_ p^-}9sۿYF/^x6D$)rED҉k"^7;GMmh*%JJ6жv9V@?SﴰH-A͚]
+0&KO9G{@cf%WFJ~"PG3'U[MV1ٿ#%ωRiWYnt6ƕ /`j5"do#;-% |' ge" z4˱%)+pVWפoxa1$#͠[k=kˍէ_I/+*[6,/E45*m׍VL)
+VFʘAU] [;3jftuʊDja>\S=
+Y-^\p59`7~?v[?mHn
+/}cUkUԆk|_nbQR;B~췿vU.T窜ŵBU~p\ +(2aדE?a¹|MMFCw+`M>Zd'obe6ȚaI
+Rl?7_)LJ`J9 8'q:$7d{ъd} ""Bjztdu5j{(c@\*UHRUe`o_sBxHHö bՄ _]4aL|Fx茰0Zh#hK^ 0A(ӂ@{toXrN֑SƋxښ=`>08nΒcyi\z0@g*%UV﬜D
+N1Cu/AQL6z6nbR,v&S# ":;L(B#9@>EN"DESDyfgdNpH 3Ux~
+%[Ӣ{kD,9Fm}%sEU*p#z|H̬s%S/4r'2>Ulfڸ+dnzԟ.!tmbo9|&\粹ު` Lc~ӰG=ʔˀInV)x@0Yv#6`3{sɈppZGo=0`>q|z6ŕo[]pE>L}\HPNϔ7NyN*݆鹖z)Cb& {
+endstream
endobj
-938 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.384 576.294 242.339 588.249 ]/A << /S /GoTo /D (page.26) >> >>
+941 0 obj
+<< /Type /Page /Contents 942 0 R /Resources 940 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
-939 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 564.907 174.872 575.736 ]/A << /S /GoTo /D (page.49) >> >>
+943 0 obj
+<< /D [ 941 0 R /XYZ 78.37 808.885 null ] >>
endobj
940 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.972 531.052 237.946 543.007 ]/A << /S /GoTo /D (page.3) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F23 383 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-941 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.49) >> >>
+946 0 obj
+<< /Filter /FlateDecode /Length 1441 >>
+stream
+xYˎ6 WF(]Ϯ]%,9g0nFۢ×/p˻ UV_/E_|T_
+|s
+?
+6z??~gݴD:Q@Yjd3
+Үyu{5
+\wyx/mqv\x/4*j3,v'q2P8j̤ٙ #cz%_'a"Fpr$_BtrQX6k<4褑~wNhZTǕh2sVׅ>oJwXc(s (ꢐcd)O`_̠92BMF>I`GI'Id )
+~Vp|g,4{1v'&bv;Yl)OY%9b(򺔣H%2h)k$jc-=5Ok^Wn KXe[*´QC +)y*9mҺ+l'?)Cڗ^j
+ Fy
+~9QCN~Ԃ0dl-Xzyrj[=0 L'9[C=Ǩ7n\UJ~{~$JNS6X'yvfvFNGaj/AHK0qt4z
+(OvZC
+ĩGTydȒci)XVhUFӜP9 >Q7gIPDZ=N])"۱f[ZN0~l9вL dD2'Hҗ^$ό"EO4|xb"ȰƂᘡUSƊ yk@0KBlC&h'=]hr)JzWOK3Qz
+endstream
endobj
-942 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 507.71 180.102 518.539 ]/A << /S /GoTo /D (page.49) >> >>
+945 0 obj
+<< /Type /Page /Contents 946 0 R /Resources 944 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R >>
endobj
-943 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.678 495.187 174.633 507.142 ]/A << /S /GoTo /D (page.35) >> >>
+947 0 obj
+<< /D [ 945 0 R /XYZ 78.37 808.885 null ] >>
endobj
944 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 483.799 122.817 494.629 ]/A << /S /GoTo /D (page.4) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F64 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-945 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.987 471.844 201.96 482.674 ]/A << /S /GoTo /D (page.4) >> >>
+1065 0 obj
+<< /Filter /FlateDecode /Length 3260 >>
+stream
+x\K$)?0 F%Uvu羭{ gPʗ1??HyMMo?)-~盢7M\ݜCJxHAJoJH[ŖV7p 5KԜ%7 oH)̡(\"PdV3=~WGqzA+k
+۲A' mju+%q(n|EK&Wm4y̛˜BbG'>ZyoR
+Xv
+[uu>qҕa4@冝Bى26z{jtj_헂p3ha%"cJ;o@ ft`+9RMI(Jl`g{<v~(Ês򬤰:噭x`:l'Y<mhyWY aF9ZbZs}/ؠsVzs$ ]w6z?;l̈{C6ҋ>·<aq;$4
+ A`ƚmIi-VZ 2 M*qQ)E*oefHY~l]ph]z
+jpDlXbBDY1ً>AHg81jS'Q2̴/8$Xe崟*sF+((ҟp`0eocV(wm&jyъ NgCgPVIzåMIڛxlW{rdz[6@ؑ+wѴgA|uN,Mh'/3Uа$XWCV-b.B.\ $'5mvʊhם,f@ПTD_{쓰N~h
+z:aEVƒ:;siz0-ZOa$#xXyk_ODG=qEe3Ξ;%5 nR=(\u*Ƨx
+| ۫ߊ@D>4ٮ&Ij ڀ7諻pdBBL<Na!W,i܇sp6Jx7DE]{-S:ם eZn'=Ud
+B Sn*g|e—+~7:m@CG6|O-6hGq*Q=՝I}xJxQ^ȗut)nG5ʱTB)=qe\Q\eTaPƷ=N8'`B
+-9eKa\/ C=,K<M-UHH񽨉M +;TUaS^ IʠԌ]t;.:NUG@/&YlTkSrAG_1OT7pVk,;ԄRqՄ:;G4Cc#W
+M/27^ځug4>f0:1D*z%USg2 u^uBcgg]=3}rǩytEvUh+'QO10pFP̹Nz
+Wz~H`s^:F+gѹRŠQ##2BӞBb /: o \K(IJC;M̴{/ Bʰ0#;V?8 * )d_<b=lړc\@qi
+0 ׇPQb9_ #B0S}1h4kJDD;19lo85g)׬^P~o`YGù:6ؼQM}C?t
+^
+&&
+endstream
endobj
-946 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.949 471.844 216.904 482.674 ]/A << /S /GoTo /D (page.11) >> >>
+1064 0 obj
+<< /Type /Page /Contents 1065 0 R /Resources 1063 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R /Annots 1067 0 R >>
endobj
-947 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.041 447.366 202.997 459.321 ]/A << /S /GoTo /D (page.25) >> >>
+1067 0 obj
+[ 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R ]
endobj
948 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.739 435.411 179.694 447.366 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 146.01 692.928 ]/A << /S /GoTo /D (page.10) >> >>
endobj
949 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 188.74 423.456 195.714 435.411 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 185.672 659.422 ]/A << /S /GoTo /D (page.10) >> >>
endobj
950 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.481 411.5 232.436 423.456 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 268.68 636.07 280.635 648.025 ]/A << /S /GoTo /D (page.19) >> >>
endobj
951 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.414 378.771 218.369 389.671 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.11) >> >>
endobj
952 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.964 366.258 236.919 378.214 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.11) >> >>
endobj
953 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 354.861 156.75 365.701 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.442 600.204 ]/A << /S /GoTo /D (page.66) >> >>
endobj
954 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.613 342.348 242.568 354.303 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.384 576.294 242.339 588.249 ]/A << /S /GoTo /D (page.26) >> >>
endobj
955 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 330.961 127.799 341.79 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 564.907 174.872 575.736 ]/A << /S /GoTo /D (page.50) >> >>
endobj
956 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.006 159.181 329.835 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.972 531.052 237.946 543.007 ]/A << /S /GoTo /D (page.3) >> >>
endobj
957 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 307.04 191.38 317.88 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.50) >> >>
endobj
958 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 307.04 207.43 317.88 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 507.71 180.102 518.539 ]/A << /S /GoTo /D (page.50) >> >>
endobj
959 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 295.085 160.157 305.925 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.678 495.187 174.633 507.142 ]/A << /S /GoTo /D (page.36) >> >>
endobj
960 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 295.085 176.207 305.925 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 483.799 122.817 494.629 ]/A << /S /GoTo /D (page.4) >> >>
endobj
961 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 283.13 173.946 293.969 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.987 471.844 201.96 482.674 ]/A << /S /GoTo /D (page.4) >> >>
endobj
962 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 283.13 189.995 293.969 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.949 471.844 216.904 482.674 ]/A << /S /GoTo /D (page.10) >> >>
endobj
963 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 259.23 204.939 270.059 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.041 447.366 202.997 459.321 ]/A << /S /GoTo /D (page.25) >> >>
endobj
964 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 247.275 230.603 258.214 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.739 435.411 179.694 447.366 ]/A << /S /GoTo /D (page.11) >> >>
endobj
965 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.055 234.752 173.029 246.707 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 188.74 423.456 195.714 435.411 ]/A << /S /GoTo /D (page.5) >> >>
endobj
966 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 210.841 245.826 222.796 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.481 411.5 232.436 423.456 ]/A << /S /GoTo /D (page.44) >> >>
endobj
967 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 210.841 262.095 222.796 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.414 378.771 218.369 389.671 ]/A << /S /GoTo /D (page.42) >> >>
endobj
968 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.761 198.886 213.716 210.841 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.964 366.258 236.919 378.214 ]/A << /S /GoTo /D (page.42) >> >>
endobj
969 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 196.81 186.931 208.765 198.886 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 354.861 156.75 365.701 ]/A << /S /GoTo /D (page.42) >> >>
endobj
970 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 175.544 139.614 186.483 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.613 342.348 242.568 354.303 ]/A << /S /GoTo /D (page.15) >> >>
endobj
971 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 151.514 217.413 162.572 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 330.961 127.799 341.79 ]/A << /S /GoTo /D (page.30) >> >>
endobj
972 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.87 139.559 192.825 150.617 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.006 159.181 329.835 ]/A << /S /GoTo /D (page.17) >> >>
endobj
973 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 127.723 167.37 138.662 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 307.04 191.38 317.88 ]/A << /S /GoTo /D (page.2) >> >>
endobj
974 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 115.758 170.997 126.707 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 307.04 207.43 317.88 ]/A << /S /GoTo /D (page.25) >> >>
endobj
975 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 115.758 187.266 126.707 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 295.085 160.157 305.925 ]/A << /S /GoTo /D (page.2) >> >>
endobj
976 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 115.758 203.535 126.707 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 295.085 176.207 305.925 ]/A << /S /GoTo /D (page.25) >> >>
endobj
977 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 103.803 165.677 114.752 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 283.13 173.946 293.969 ]/A << /S /GoTo /D (page.2) >> >>
endobj
978 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 103.803 181.946 114.752 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 283.13 189.995 293.969 ]/A << /S /GoTo /D (page.25) >> >>
endobj
979 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 103.803 198.215 114.752 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 259.23 204.939 270.059 ]/A << /S /GoTo /D (page.23) >> >>
endobj
980 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 103.803 215.021 114.752 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 247.275 230.603 258.214 ]/A << /S /GoTo /D (page.19) >> >>
endobj
981 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 91.847 169.303 102.796 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.055 234.752 173.029 246.707 ]/A << /S /GoTo /D (page.2) >> >>
endobj
982 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 91.847 185.572 102.796 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 210.841 245.826 222.796 ]/A << /S /GoTo /D (page.19) >> >>
endobj
983 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 79.902 148.72 90.732 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 210.841 262.095 222.796 ]/A << /S /GoTo /D (page.72) >> >>
endobj
984 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 151.709 79.902 163.664 90.732 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.761 198.886 213.716 210.841 ]/A << /S /GoTo /D (page.11) >> >>
endobj
985 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.759 79.902 179.933 90.732 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 196.81 186.931 208.765 198.886 ]/A << /S /GoTo /D (page.39) >> >>
endobj
986 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.456 67.598 188.411 78.776 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 175.544 139.614 186.483 ]/A << /S /GoTo /D (page.37) >> >>
endobj
987 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.506 67.598 204.68 78.776 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 151.514 217.413 162.572 ]/A << /S /GoTo /D (page.18) >> >>
endobj
988 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.779 67.598 219.953 78.776 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.87 139.559 192.825 150.617 ]/A << /S /GoTo /D (page.44) >> >>
endobj
989 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.167 681.88 483.122 692.819 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 127.723 167.37 138.662 ]/A << /S /GoTo /D (page.29) >> >>
endobj
990 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.141 669.805 442.096 680.864 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 115.758 170.997 126.707 ]/A << /S /GoTo /D (page.29) >> >>
endobj
991 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 657.85 395.321 668.908 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 115.758 187.266 126.707 ]/A << /S /GoTo /D (page.49) >> >>
endobj
992 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.498 645.895 501.453 656.953 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 115.758 203.535 126.707 ]/A << /S /GoTo /D (page.64) >> >>
endobj
993 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 404.039 633.71 415.994 644.998 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 103.803 165.677 114.752 ]/A << /S /GoTo /D (page.29) >> >>
endobj
994 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 416.233 621.984 428.188 633.043 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 103.803 181.946 114.752 ]/A << /S /GoTo /D (page.49) >> >>
endobj
995 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 610.149 369.01 620.978 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 103.803 198.215 114.752 ]/A << /S /GoTo /D (page.63) >> >>
endobj
996 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 610.149 385.279 620.978 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 103.803 215.021 114.752 ]/A << /S /GoTo /D (page.64) >> >>
endobj
997 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.114 597.626 396.069 609.581 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 91.847 169.303 102.796 ]/A << /S /GoTo /D (page.29) >> >>
endobj
998 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.45 574.283 386.405 585.222 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 91.847 185.572 102.796 ]/A << /S /GoTo /D (page.49) >> >>
endobj
999 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.262 562.328 479.217 573.267 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 79.902 148.72 90.732 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1000 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.701 550.373 388.656 561.312 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 151.709 79.902 163.664 90.732 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1001 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.711 537.85 500.666 549.805 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.759 79.902 179.933 90.732 ]/A << /S /GoTo /D (page.71) >> >>
endobj
1002 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 504.256 353.429 513.103 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.456 67.598 188.411 78.776 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1003 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.897 490.597 453.852 501.536 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.506 67.598 204.68 78.776 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1004 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.947 490.597 470.121 501.536 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.779 67.598 219.953 78.776 ]/A << /S /GoTo /D (page.72) >> >>
endobj
1005 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.345 478.074 502.3 490.029 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.167 681.88 483.122 692.819 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1006 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 466.687 383.376 477.516 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.141 669.805 442.096 680.864 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1007 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.439 454.164 461.394 466.119 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 657.85 395.321 668.908 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1008 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.048 442.209 459.003 454.164 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.498 645.895 501.453 656.953 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1009 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.097 442.209 475.272 454.164 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 404.039 633.71 415.994 644.998 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1010 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.161 418.866 381.135 429.805 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 416.233 621.984 428.188 633.043 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1011 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 382.779 406.911 394.734 417.85 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 610.149 369.01 620.978 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1012 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.206 394.388 422.161 406.343 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 610.149 385.279 620.978 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1013 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.255 394.388 438.43 406.343 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.114 597.626 396.069 609.581 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1014 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 483.747 382.433 495.703 394.388 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.45 574.283 386.405 585.222 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1015 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.669 382.433 513.843 394.388 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.262 562.328 479.217 573.267 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1016 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 372.749 353.648 381.596 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.701 550.373 388.656 561.312 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1017 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 359.09 399.466 369.92 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.711 537.85 500.666 549.805 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1018 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 347.006 398.081 357.965 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 504.256 353.429 513.103 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1019 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 335.18 411.889 346.009 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.897 490.597 453.852 501.536 ]/A << /S /GoTo /D (page.19) >> >>
endobj
1020 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 335.18 428.158 346.009 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.947 490.597 470.121 501.536 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1021 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.334 322.657 473.508 334.612 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.345 478.074 502.3 490.029 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1022 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 311.27 369.528 322.099 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 466.687 383.376 477.516 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1023 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 311.27 384.472 322.099 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.439 454.164 461.394 466.119 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1024 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 277.397 352.542 288.226 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.048 442.209 459.003 454.164 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1025 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 277.397 368.592 288.226 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.097 442.209 475.272 454.164 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1026 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 277.397 384.861 288.226 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.161 418.866 381.135 429.805 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1027 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.141 264.874 506.096 276.829 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 382.779 406.911 394.734 417.85 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1028 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.046 240.963 462.001 252.918 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.206 394.388 422.161 406.343 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1029 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 229.008 454.779 240.963 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.255 394.388 438.43 406.343 ]/A << /S /GoTo /D (page.72) >> >>
endobj
1030 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 217.053 401.309 229.008 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 483.747 382.433 495.703 394.388 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1031 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.036 205.656 437.991 216.495 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.669 382.433 513.843 394.388 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1032 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.925 193.143 480.881 205.098 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 372.749 353.648 381.596 ]/A << /S /GoTo /D (page.71) >> >>
endobj
1033 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 181.397 361.508 192.585 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 359.09 399.466 369.92 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1034 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.06 169.8 381.015 180.63 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 347.006 398.081 357.965 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1035 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.004 169.8 395.959 180.63 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 335.18 411.889 346.009 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1036 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.054 169.8 412.228 180.63 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 335.18 428.158 346.009 ]/A << /S /GoTo /D (page.71) >> >>
endobj
1037 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 435.61 157.277 447.566 169.232 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.334 322.657 473.508 334.612 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1038 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.831 145.322 407.805 157.277 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 311.27 369.528 322.099 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1039 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.899 145.322 424.074 157.277 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 311.27 384.472 322.099 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1040 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.452 111.449 460.407 123.404 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 277.397 352.542 288.226 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1041 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 487.456 99.494 499.411 111.449 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 277.397 368.592 288.226 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1042 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 75.583 426.156 87.539 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 277.397 384.861 288.226 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1043 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 75.583 442.425 87.539 ]/A << /S /GoTo /D (page.61) >> >>
-endobj
-1050 0 obj
-<< /D [ 1048 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.141 264.874 506.096 276.829 ]/A << /S /GoTo /D (page.22) >> >>
endobj
-361 0 obj
-<< /D [ 1048 0 R /XYZ 79.37 706.717 null ] >>
+1044 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.046 240.963 462.001 252.918 ]/A << /S /GoTo /D (page.51) >> >>
endobj
-1047 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F66 392 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1045 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 229.008 454.779 240.963 ]/A << /S /GoTo /D (page.39) >> >>
endobj
-1153 0 obj
-<< /Filter /FlateDecode /Length 3223 >>
-stream
-x\I W Ue*gR&\Av758{,i K}㷿}׷?B<F7YϔY#7?ɹM:y3>}^sc Y˷J)|GjT7o |ǦW~ﱽOBGi.{o;ʦL6sP eV3絲/_(+MY&twj|-73eO޷IdmOq!5^ϸ0pz& :݂oxd'fv8 72p"yO:U?HJΜ+2{I8MzL޽ޖJV쥿>; &d<NE5-c ?fo ߱MKறiE@%xs+cJD<Mnh@V虲B땍ẁBGk-ˑi<sTѽ*4T[
-x~a ƑCo^Gs k3
-ϴ0kh[fy-#! YEPkfxQ0S^BȣUUxyJ\Owm Q?糊bd0<@7pBz{1ĦPy Pz8 BEOMC}`2x0WMeKSGL$,qtUK)n"_LժRj7/<a0Y’!R{:%C-vn7r< j}s W=l@trx`t9C3_cq;!&\Mp'>e-DHyqȁG
-i֗!&& !%R_ 4p` ;
-V/a 6oW1㢡fZ>"XdKYG =ݭ荦{S6c-
-s&lFjJ}L
-k tcq+n-B]CbkJxq.q0Tc&יc^+!kIԥgvw7d7iREvXˌVl 3f8YP3+Cft''AB\@%w[`+\z12EY#^]ra
-I^o0Ѯ PY4@kƠI]
-MU>5A \]f7 іB٬Q L5*
-Uf6GcHg3- nr,:Kѧ
-|sA&EgxZ)mS+814kOۣR?M$N9W^vrbjXE(*\Tֈx2GKsk+t:%=Dni5u1Ͻboh@KE|Xk:e`=us~,:d1:xBePH̰x v^^]q{6߳I #͌rZM
-Uj//B
-endstream
+1046 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 217.053 401.309 229.008 ]/A << /S /GoTo /D (page.66) >> >>
endobj
-1152 0 obj
-<< /Type /Page /Contents 1153 0 R /Resources 1151 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1155 0 R >>
+1047 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.036 205.656 437.991 216.495 ]/A << /S /GoTo /D (page.36) >> >>
endobj
-1155 0 obj
-[ 1044 0 R 1045 0 R 1046 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R ]
+1048 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.925 193.143 480.881 205.098 ]/A << /S /GoTo /D (page.44) >> >>
endobj
-1044 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.81 757.574 248.765 769.529 ]/A << /S /GoTo /D (page.44) >> >>
+1049 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 181.397 361.508 192.585 ]/A << /S /GoTo /D (page.14) >> >>
endobj
-1045 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.86 757.574 265.034 769.529 ]/A << /S /GoTo /D (page.61) >> >>
+1050 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.06 169.8 381.015 180.63 ]/A << /S /GoTo /D (page.30) >> >>
endobj
-1046 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 259.535 745.619 271.49 757.574 ]/A << /S /GoTo /D (page.44) >> >>
+1051 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.004 169.8 395.959 180.63 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1052 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.054 169.8 412.228 180.63 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1053 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.776 721.708 241.731 733.664 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 435.61 157.277 447.566 169.232 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1054 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.831 145.322 407.805 157.277 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1055 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.899 145.322 424.074 157.277 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1056 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.32 663.925 174.294 675.88 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.452 111.449 460.407 123.404 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1057 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 652.538 129.153 663.477 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 487.456 99.494 499.411 111.449 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1058 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 640.573 132.78 651.522 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 75.583 426.156 87.539 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1059 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 640.573 149.049 651.522 ]/A << /S /GoTo /D (page.48) >> >>
-endobj
-1060 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.88 628.06 176.835 640.015 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 75.583 442.425 87.539 ]/A << /S /GoTo /D (page.61) >> >>
endobj
-1061 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 146.18 616.104 158.135 628.06 ]/A << /S /GoTo /D (page.42) >> >>
+1066 0 obj
+<< /D [ 1064 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1062 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.883 604.149 199.838 616.104 ]/A << /S /GoTo /D (page.42) >> >>
+361 0 obj
+<< /D [ 1064 0 R /XYZ 79.37 706.717 null ] >>
endobj
1063 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.847 592.194 182.802 604.149 ]/A << /S /GoTo /D (page.42) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F65 392 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1064 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 558.889 143.49 569.718 ]/A << /S /GoTo /D (page.32) >> >>
+1169 0 obj
+<< /Filter /FlateDecode /Length 3231 >>
+stream
+x\IWKqYV} rMNWds-N9cIbmjiۿoo<SgH_&~7뙲7kF~?9WsxI6{Ƨk;=ks])h^mߖf-J<=wIHC<(#O_Gٴ&bN*A޴L<
+x&V5%~k~/5e%)˄,n7 |?\}=p$Aֆ ~θ g\tb8Y={x[-j.Y[4ڙp#'{ҁpGRr%ܛ YfI8MzL޽ZK%/ [d\0N-xxgM`YXBǦ%px4[IO "vRns+cJDnXh@Vx3eB{+g8w@Q H^TO㬠g~ȮJ0 l{d(>,_XfdsP-`,ȚL3+ z'Ze^`b HHcugV.Ԧ'^)*T
+[*f*<< %I.'6YE12{n O
+RƼgZd0ZǬp T_. ,W(k9P8\2Y;wș|@DmM?%%)g]槓ãЁ (q)!6-n;=)s!Bc
+s;:fOh_~[2nV`NxddbFCj?Z 8Sgs!?sMZ I`u7M0UtO3P:Me.л06QI9-_ةIFkT\hR9e1eku8'VXT
+T=^IcHE=T
+ 'XsK;9:Jft½l+%&xuf|$Ɯp_ B2 A?JǿM:to90﯁W7.#D/ =wX&a ? vE&
+Q0VXYlHxO hJФTO+pƝyYG@3TծBV2=7t,&bͳ:IwWVx˄G긠e[XA89ė`d!V1iV?::f` ;
+BVF=);Աi‡96t#5>&iB5?XʦknkPP.c
+ί<rŌ\e{ 3U]OeEo
+EPx ۋga׎ꅋ8]q{6߳K #͌rZM
+
+WT7]^4Us^o >J)Av
+=ZF]qQwj
+xnUNdӟl+CM(]5 ~؇`-d=Ν|j\ o=^smţc˻;
+ aN«U7E9Bwyϲ,ՆE8u)<bG_?
+endstream
endobj
-1065 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 546.934 159.181 557.763 ]/A << /S /GoTo /D (page.17) >> >>
+1168 0 obj
+<< /Type /Page /Contents 1169 0 R /Resources 1167 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 919 0 R /Annots 1171 0 R >>
endobj
-1066 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 522.456 189.896 534.411 ]/A << /S /GoTo /D (page.69) >> >>
+1171 0 obj
+[ 1060 0 R 1061 0 R 1062 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R ]
endobj
-1067 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 511.068 127.799 521.898 ]/A << /S /GoTo /D (page.12) >> >>
+1060 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.81 757.574 248.765 769.529 ]/A << /S /GoTo /D (page.44) >> >>
+endobj
+1061 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.86 757.574 265.034 769.529 ]/A << /S /GoTo /D (page.61) >> >>
+endobj
+1062 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 259.535 745.619 271.49 757.574 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1068 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 487.038 217.413 498.097 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1069 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 475.083 172.073 486.142 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.776 721.708 241.731 733.664 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1070 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 463.128 197.975 474.187 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1071 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.527 450.725 281.482 462.68 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1072 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 439.048 133.029 450.167 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.32 663.925 174.294 675.88 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1073 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 415.307 217.413 426.366 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 652.538 129.153 663.477 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1074 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 403.352 172.073 414.411 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 640.573 132.78 651.522 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1075 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 391.397 197.975 402.456 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 640.573 149.049 651.522 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1076 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 379.552 193.442 390.391 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.88 628.06 176.835 640.015 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1077 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 379.552 209.711 390.391 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 146.18 616.104 158.135 628.06 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1078 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 345.689 134.523 356.518 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.883 604.149 199.838 616.104 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1079 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 345.689 150.573 356.518 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.847 592.194 182.802 604.149 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1080 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.308 333.723 169.263 344.563 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 558.889 143.49 569.718 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1081 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.269 321.21 230.224 333.166 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 546.934 159.181 557.763 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1082 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 182.723 309.255 194.678 321.21 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 522.456 189.896 534.411 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1083 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.718 275.382 190.673 287.337 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 511.068 127.799 521.898 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1084 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.617 241.509 225.572 253.464 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 487.038 217.413 498.097 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1085 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.059 229.554 233.014 241.509 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 475.083 172.073 486.142 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1086 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.31 217.599 251.266 229.554 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 463.128 197.975 474.187 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1087 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 206.202 127.46 217.041 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.527 450.725 281.482 462.68 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1088 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 206.202 143.729 217.041 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 439.048 133.029 450.167 ]/A << /S /GoTo /D (page.31) >> >>
endobj
1089 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 206.202 159.998 217.041 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 415.307 217.413 426.366 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1090 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 194.246 131.086 205.086 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 403.352 172.073 414.411 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1091 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 194.246 147.355 205.086 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 391.397 197.975 402.456 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1092 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 182.301 127.799 193.131 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 379.552 193.442 390.391 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1093 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.638 158.381 254.593 169.22 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 379.552 209.711 390.391 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1094 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 132.371 146.306 144.327 157.375 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 345.689 134.523 356.518 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1095 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 121.958 197.677 133.913 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 345.689 150.573 356.518 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1096 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.016 110.002 230.972 121.958 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.308 333.723 169.263 344.563 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1097 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 98.047 219.355 110.002 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.269 321.21 230.224 333.166 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1098 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.998 86.53 147.953 97.489 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 182.723 309.255 194.678 321.21 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1099 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.561 74.575 192.516 85.534 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.718 275.382 190.673 287.337 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1100 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 453.962 757.574 465.917 769.529 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.617 241.509 225.572 253.464 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1101 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 460.079 745.619 472.034 757.574 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.059 229.554 233.014 241.509 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1102 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.128 745.619 488.303 757.574 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.31 217.599 251.266 229.554 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1103 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.227 733.664 430.201 745.619 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 206.202 127.46 217.041 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1104 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.084 687.835 404.039 699.791 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 206.202 143.729 217.041 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1105 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.991 675.88 473.947 687.835 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 206.202 159.998 217.041 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1106 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.478 663.925 469.434 675.88 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 194.246 131.086 205.086 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1107 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 618.545 440.661 629.604 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 194.246 147.355 205.086 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1108 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 606.59 395.321 617.649 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 182.301 127.799 193.131 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1109 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 594.635 421.224 605.694 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.638 158.381 254.593 169.22 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1110 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.025 582.232 440.98 594.187 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 132.371 146.306 144.327 157.375 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1111 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 570.496 429.503 581.674 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 121.958 197.677 133.913 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1112 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 558.879 408.582 569.718 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.016 110.002 230.972 121.958 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1113 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 558.879 424.851 569.718 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 98.047 219.355 110.002 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1114 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 546.645 408.831 557.763 ]/A << /S /GoTo /D (page.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.998 86.53 147.953 97.489 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1115 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 534.979 392.891 545.808 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.561 74.575 192.516 85.534 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1116 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 523.024 375.894 533.853 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 453.962 757.574 465.917 769.529 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1117 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 511.068 351.526 521.898 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 460.079 745.619 472.034 757.574 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1118 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.698 498.545 421.653 510.5 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.128 745.619 488.303 757.574 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1119 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.642 498.545 436.597 510.5 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.227 733.664 430.201 745.619 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1120 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.83 486.59 479.785 498.545 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.084 687.835 404.039 699.791 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1121 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.44 475.203 426.395 486.032 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.991 675.88 473.947 687.835 ]/A << /S /GoTo /D (page.66) >> >>
endobj
1122 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.384 475.203 441.339 486.032 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.478 663.925 469.434 675.88 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1123 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 445.434 475.203 457.608 486.032 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 618.545 440.661 629.604 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1124 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 462.899 366.739 474.077 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 606.59 395.321 617.649 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1125 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.028 438.769 395.202 450.725 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 594.635 421.224 605.694 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1126 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 427.263 368.721 438.321 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.025 582.232 440.98 594.187 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1127 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 393.161 419.043 404.339 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 570.496 429.503 581.674 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1128 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.043 380.986 418.016 392.941 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 558.889 408.582 569.718 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1129 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 357.076 432.044 369.031 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 558.889 424.851 569.718 ]/A << /S /GoTo /D (page.65) >> >>
endobj
1130 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.348 333.166 440.303 345.121 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 546.645 408.831 557.763 ]/A << /S /GoTo /D (page.1) >> >>
endobj
1131 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.669 299.293 426.624 311.248 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 534.979 392.891 545.808 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1132 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 287.776 388.935 298.735 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 523.024 375.894 533.853 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1133 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 275.661 403.351 286.779 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 511.068 351.526 521.898 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1134 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 263.865 380.278 274.934 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.698 498.545 421.653 510.5 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1135 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 263.865 396.547 274.934 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.642 498.545 436.597 510.5 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1136 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.944 229.554 459.899 241.509 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.83 486.59 479.785 498.545 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1137 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.395 217.599 478.35 229.554 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.44 475.203 426.395 486.032 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1138 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.833 206.212 366.788 217.041 ]/A << /S /GoTo /D (page.33) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.384 475.203 441.339 486.032 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1139 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.603 194.256 377.558 204.807 ]/A << /S /GoTo /D (page.33) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 445.434 475.203 457.608 486.032 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1140 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.911 181.733 500.866 193.689 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 462.899 366.739 474.077 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1141 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.046 169.778 473.02 181.733 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.028 438.769 395.202 450.725 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1142 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 145.868 420.925 157.823 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 427.263 368.721 438.321 ]/A << /S /GoTo /D (page.31) >> >>
endobj
1143 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.503 133.913 513.458 145.868 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 393.161 419.043 404.339 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1144 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.887 110.56 477.842 121.4 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.043 380.986 418.016 392.941 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1145 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 362.295 98.486 374.25 109.444 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 357.076 432.044 369.031 ]/A << /S /GoTo /D (page.19) >> >>
endobj
1146 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 74.137 420.925 86.092 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.348 333.166 440.303 345.121 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1154 0 obj
-<< /D [ 1152 0 R /XYZ 78.37 808.885 null ] >>
+1147 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.669 299.293 426.624 311.248 ]/A << /S /GoTo /D (page.44) >> >>
endobj
-1151 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F56 388 0 R /F66 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1148 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 287.776 388.935 298.735 ]/A << /S /GoTo /D (page.58) >> >>
endobj
-1231 0 obj
-<< /Filter /FlateDecode /Length 2629 >>
-stream
-x[n8S V" Rb;y뒶eY,*EJERHIMC/xwK*y^蛹0܂7J{s7ڂx;D~=@Ds#1|xqNjVY0ihm~eN](U
-ۄ$!yQ؇kh,6O!b E8҅*α+J:̆彣SG١̟ۺ$9P6x
-%RýovQN=V90bxEێ὜Hې9mK.ב
-m{J@Un^Yk}#L -=J>/X埘N>HG
-5?]ӏazwyMm4m$9B6
-?~:.P ,݊>
- A#;X?-V`+>s_SJ"*.螚H^%g .
-L@_&98jꓵk%ɜV>5O@>t8z(~ QŸZ +{9*wڦ,SSf3-.zƍN='%uPݤt'6UqaaUH}+qGYqa#֎V6 @GR&RQ`\9kYL[IG xe]eݲ1BA^WM6,5(9=aO"QH nÁ6f%4A>i%I߁6sV{w5t?L$W>RGjH=3Ć푢/݋3u8h}։`Hp #Ǜ!S롄FͦriEGX4Ij?: R[y_sFʂ7oJrNqFU41 `V%>_NTw`UՊ׭; A.H@*rS<! /zվ
-A%K~T7] |ff[0PU6m U}Y۝njXK8z#M;5YɆ ,w@STK\I @Peoo cO14V`;ó'bt<fH/'Vvq6M$)Kf^)BVSA23R葠1ItQO K&e6TvxrlR
-x(DBlf"hۨ7L-:@&ځV|d-o%.<c"AbWY$ SZQvn0PEs
-@BM
-kokԠ<KVc7O/ZnnK.pn庽+1-Y+YqP6Lڧ+7jt'ܿo0mvԡf:Z@61r
-bawgK@'pR}ְb~t$BƈӁ@Ah~*F}r7[&C {`uy:q ~y+ o4>j
-ke;Y\B.wq;S3KHJpͣ,h;'z}z>ںʝ;V|`.Ay}>#>cV$W@5<e J, MA3yn 6o۷s!9#KoD18Z+).XtvU;g`#tohiviP$o1tIEOF8m%-QY낶0"z8WKk5h&7 K~}J5
-endstream
+1149 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 275.661 403.351 286.779 ]/A << /S /GoTo /D (page.50) >> >>
endobj
-1230 0 obj
-<< /Type /Page /Contents 1231 0 R /Resources 1229 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1233 0 R >>
+1150 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 263.865 380.278 274.934 ]/A << /S /GoTo /D (page.53) >> >>
endobj
-1233 0 obj
-[ 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R ]
+1151 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 263.865 396.547 274.934 ]/A << /S /GoTo /D (page.72) >> >>
endobj
-1147 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.691 757.574 237.647 769.529 ]/A << /S /GoTo /D (page.38) >> >>
+1152 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.944 229.554 459.899 241.509 ]/A << /S /GoTo /D (page.34) >> >>
endobj
-1148 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 746.187 133.248 757.016 ]/A << /S /GoTo /D (page.23) >> >>
+1153 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.395 217.599 478.35 229.554 ]/A << /S /GoTo /D (page.19) >> >>
endobj
-1149 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 746.187 149.517 757.016 ]/A << /S /GoTo /D (page.25) >> >>
+1154 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.833 206.212 366.788 217.041 ]/A << /S /GoTo /D (page.33) >> >>
endobj
-1150 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 746.187 165.567 757.016 ]/A << /S /GoTo /D (page.48) >> >>
+1155 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.603 194.256 377.558 204.807 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1156 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 722.157 172.073 733.215 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.911 181.733 500.866 193.689 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1157 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.711 710.202 213.667 721.26 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.046 169.778 473.02 181.733 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1158 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 686.411 204.939 697.24 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 145.868 420.925 157.823 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1159 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 209.034 686.411 221.208 697.24 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.503 133.913 513.458 145.868 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1160 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 674.456 230.603 685.395 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.887 110.56 477.842 121.4 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1161 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.698 674.456 246.872 685.395 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 362.295 98.486 374.25 109.444 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1162 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.516 661.933 220.471 673.888 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 74.137 420.925 86.092 ]/A << /S /GoTo /D (page.41) >> >>
endobj
-1163 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.095 649.977 274.05 661.933 ]/A << /S /GoTo /D (page.19) >> >>
+1170 0 obj
+<< /D [ 1168 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1164 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 638.022 293.653 649.977 ]/A << /S /GoTo /D (page.19) >> >>
+1167 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F56 388 0 R /F65 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1165 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 626.286 143.49 637.464 ]/A << /S /GoTo /D (page.25) >> >>
+1247 0 obj
+<< /Filter /FlateDecode /Length 2617 >>
+stream
+x[ˎ +"zw]mo/YU*I=/jQ$!%ooz~ø[RɃ|3B-$Qڛnzk-hwx=&?~=o ߟ/Ώx1* Fr<#w͏i 屔`
+$eG#s..lRF?=K<evy2Ʃ9Q
+-?] C5ckhIr9'mgz)߰{I0XE VT FTylNd# -T
+k|zZJ((4G#
+=yv Ic$|)-z9q\!I<Qy8T4ٶxTGk%/uyؑz7[UHEy @~MB8+i7 6XTՙv}`Vi$J'ĘW(7BVfɷωKa`Rq.jTr_xJD!UnK97:{Ao*B[6FK\1 1RrEARoMm J*&8,
+ A#;X?|S
+RQytAD/ >`p!8U`29yNUj[%ɜV>5O@>t8v(k hQbKB@Y7sT,SG3QEgۙ
+PI\dF:h;϶
+)gyվ+ ˛3[;Zd$:0aItKUGr֯eE$3 n:Ԙ@YWߥ[&(_-p~Hk DMY:.A{fpRr}'(KW` u+&դZu3Zizv[m=ؘZzbޭ
+U^ל
+/U./gCJSTJzUk
+N^qPdq42s;n]9 \v'?$=9E( 4C
+Xμ% m5$b#
+#)yI,iZZD:..b7緿
+endstream
endobj
-1166 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.866 614.68 201.821 625.509 ]/A << /S /GoTo /D (page.11) >> >>
+1246 0 obj
+<< /Type /Page /Contents 1247 0 R /Resources 1245 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1249 0 R /Annots 1250 0 R >>
endobj
-1167 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.81 614.68 216.765 625.509 ]/A << /S /GoTo /D (page.18) >> >>
+1250 0 obj
+[ 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R ]
endobj
-1168 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.163 602.157 229.119 614.112 ]/A << /S /GoTo /D (page.12) >> >>
+1163 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.691 757.574 237.647 769.529 ]/A << /S /GoTo /D (page.38) >> >>
endobj
-1169 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.213 602.157 245.388 614.112 ]/A << /S /GoTo /D (page.60) >> >>
+1164 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 746.187 133.248 757.016 ]/A << /S /GoTo /D (page.23) >> >>
endobj
-1170 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.292 568.284 216.466 580.239 ]/A << /S /GoTo /D (page.23) >> >>
+1165 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 746.187 149.517 757.016 ]/A << /S /GoTo /D (page.25) >> >>
endobj
-1171 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.561 568.284 232.516 580.239 ]/A << /S /GoTo /D (page.47) >> >>
+1166 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 746.187 165.567 757.016 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1172 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.394 556.329 234.349 568.284 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 722.157 172.073 733.215 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1173 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 544.931 154.07 555.771 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.711 710.202 213.667 721.26 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1174 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.224 532.418 242.18 544.373 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 686.411 204.939 697.24 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1175 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.044 520.463 260.999 532.418 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 209.034 686.411 221.208 697.24 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1176 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.105 508.508 266.06 520.463 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 674.456 230.603 685.395 ]/A << /S /GoTo /D (page.19) >> >>
endobj
1177 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 484.598 217.054 496.553 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.698 674.456 246.872 685.395 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1178 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.909 472.642 168.865 484.598 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.516 661.933 220.471 673.888 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1179 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.927 460.687 206.882 472.642 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.095 649.977 274.05 661.933 ]/A << /S /GoTo /D (page.19) >> >>
endobj
1180 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.345 448.732 231.3 460.687 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 638.022 293.653 649.977 ]/A << /S /GoTo /D (page.19) >> >>
endobj
1181 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.155 436.777 282.11 448.732 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 626.286 143.49 637.464 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1182 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 425.39 157.946 436.219 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.866 614.68 201.821 625.509 ]/A << /S /GoTo /D (page.10) >> >>
endobj
1183 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.988 412.867 203.943 424.822 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.81 614.68 216.765 625.509 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1184 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.038 412.867 220.212 424.822 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.163 602.157 229.119 614.112 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1185 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 400.911 293.653 412.867 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.213 602.157 245.388 614.112 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1186 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 377.001 218.548 388.956 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.292 568.284 216.466 580.239 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1187 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.643 377.001 234.598 388.956 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.561 568.284 232.516 580.239 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1188 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 238.693 377.001 250.867 388.956 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.394 556.329 234.349 568.284 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1189 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.962 377.001 267.136 388.956 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 544.931 154.07 555.771 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1190 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 353.091 218.548 365.046 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.224 532.418 242.18 544.373 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1191 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.786 159.181 330.615 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.044 520.463 260.999 532.418 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1192 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 319.786 175.45 330.615 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.105 508.508 266.06 520.463 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1193 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 307.831 164.411 318.66 ]/A << /S /GoTo /D (page.43) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 484.598 217.054 496.553 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1194 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.266 295.307 255.221 307.263 ]/A << /S /GoTo /D (page.43) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.909 472.642 168.865 484.598 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1195 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.425 283.352 175.38 295.307 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.927 460.687 206.882 472.642 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1196 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.058 271.397 180.232 283.352 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.345 448.732 231.3 460.687 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1197 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.853 259.442 199.809 271.397 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.155 436.777 282.11 448.732 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1198 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.706 247.487 241.662 259.442 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 425.39 157.946 436.219 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1199 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 224.025 172.073 235.083 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.988 412.867 203.943 424.822 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1200 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.167 224.025 188.342 235.083 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.038 412.867 220.212 424.822 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1201 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.599 212.07 230.573 223.128 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 400.911 293.653 412.867 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1202 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.668 212.07 246.842 223.128 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 377.001 218.548 388.956 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1203 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 200.114 204.939 211.173 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.643 377.001 234.598 388.956 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1204 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.845 187.711 244.8 199.666 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 238.693 377.001 250.867 388.956 ]/A << /S /GoTo /D (page.67) >> >>
endobj
1205 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.454 175.756 213.427 187.711 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.962 377.001 267.136 388.956 ]/A << /S /GoTo /D (page.71) >> >>
endobj
1206 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.522 175.756 229.696 187.711 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 343.696 159.181 354.525 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1207 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 129.928 217.054 141.883 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 343.696 175.45 354.525 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1208 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 216.685 96.055 228.64 108.01 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 331.741 164.411 342.57 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1209 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.735 96.055 244.69 108.01 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.266 319.218 255.221 331.173 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1210 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.131 84.099 198.105 96.055 ]/A << /S /GoTo /D (page.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.425 307.263 175.38 319.218 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1211 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.437 72.144 177.393 84.099 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.058 295.307 180.232 307.263 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1212 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 72.144 193.442 84.099 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.853 283.352 199.809 295.307 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1213 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 758.142 403.351 768.971 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.706 271.397 241.662 283.352 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1214 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 746.187 403.351 757.016 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 247.487 218.548 259.442 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1215 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 734.232 351.048 745.061 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 224.025 172.073 235.083 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1216 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 722.276 366.739 733.106 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.167 224.025 188.342 235.083 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1217 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 698.246 440.661 709.305 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.599 212.07 230.573 223.128 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1218 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 686.291 395.321 697.35 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.668 212.07 246.842 223.128 ]/A << /S /GoTo /D (page.65) >> >>
endobj
1219 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 674.336 421.224 685.395 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 200.114 204.939 211.173 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1220 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 662.501 406.709 673.33 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.845 187.711 244.8 199.666 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1221 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.96 616.553 436.916 627.611 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.454 175.756 213.427 187.711 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1222 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.937 604.598 413.892 615.656 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.522 175.756 229.696 187.711 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1223 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.458 592.762 429.414 603.651 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 129.928 217.054 141.883 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1224 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.402 592.762 444.358 603.651 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 216.685 96.055 228.64 108.01 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1225 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.673 558.321 401.628 570.276 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.735 96.055 244.69 108.01 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1226 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.219 546.366 421.175 558.321 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.131 84.099 198.105 96.055 ]/A << /S /GoTo /D (page.9) >> >>
endobj
1227 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.831 534.411 436.786 546.366 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.437 72.144 177.393 84.099 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1228 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.947 500.538 516.902 512.493 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 72.144 193.442 84.099 ]/A << /S /GoTo /D (page.53) >> >>
+endobj
+1229 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 758.142 403.351 768.971 ]/A << /S /GoTo /D (page.50) >> >>
+endobj
+1230 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 746.187 403.351 757.016 ]/A << /S /GoTo /D (page.50) >> >>
+endobj
+1231 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 734.232 351.048 745.061 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1232 0 obj
-<< /D [ 1230 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 722.276 366.739 733.106 ]/A << /S /GoTo /D (page.32) >> >>
endobj
-1229 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F66 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1233 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 698.246 440.661 709.305 ]/A << /S /GoTo /D (page.13) >> >>
endobj
-1283 0 obj
-<< /Filter /FlateDecode /Length 2021 >>
+1234 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 686.291 395.321 697.35 ]/A << /S /GoTo /D (page.5) >> >>
+endobj
+1235 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 674.336 421.224 685.395 ]/A << /S /GoTo /D (page.39) >> >>
+endobj
+1236 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 662.501 406.709 673.33 ]/A << /S /GoTo /D (page.68) >> >>
+endobj
+1237 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.96 616.553 436.916 627.611 ]/A << /S /GoTo /D (page.26) >> >>
+endobj
+1238 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.937 604.598 413.892 615.656 ]/A << /S /GoTo /D (page.11) >> >>
+endobj
+1239 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.458 592.762 429.414 603.651 ]/A << /S /GoTo /D (page.25) >> >>
+endobj
+1240 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.402 592.762 444.358 603.651 ]/A << /S /GoTo /D (page.28) >> >>
+endobj
+1241 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.673 558.321 401.628 570.276 ]/A << /S /GoTo /D (page.26) >> >>
+endobj
+1242 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.219 546.366 421.175 558.321 ]/A << /S /GoTo /D (page.30) >> >>
+endobj
+1243 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.831 534.411 436.786 546.366 ]/A << /S /GoTo /D (page.38) >> >>
+endobj
+1244 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.947 500.538 516.902 512.493 ]/A << /S /GoTo /D (page.41) >> >>
+endobj
+1248 0 obj
+<< /D [ 1246 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+1245 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+1300 0 obj
+<< /Filter /FlateDecode /Length 2022 >>
stream
-x\n#7W!00 V} rMNkdS<`HdZO'^/~*{Đ^$$N2'/Ùs)8'#,?+xO?:Yf( q y\ O-H?q#^O:>yﲼ&!B?^\Vw#uVZLh+qlD8>%>L'j
-vU2Kf{mu|P`_Vp}*efN®IG
- eJB
-R2C@,٦QlP %=G[a \_wB\JJre>Jˇ#,a<EgS_ƅa$&*{ÑӰ`7Y3B/^!aP
-cMYRQk!lpCW/ٍUI}G
-ɇ*FWhbzTrM&$#JhԪ% I.jOv=Wn鿶ZP J74> ib4lW0KSsݎW3d<|:cBișz!$-<}۽8@/+@X p'n^`)<`}~9X<uZ9~Tw_
-;PKޮ~cqnqdٔEoy%AS6x(|'K
-/+Z*ge7R/G?IP*qӟMSq+X;Nęmhbwwv
+x\Ko6W,K _"]zέ=_7)即؎%7͓ӿxUICR0$| `\LM}NK9]Qr0?r*P4-X~FQu|p5wg<y~MC_:
+15ĹݭG ?9Hp9lДWY]q|L+3s|2OhgՎޕAlX,.McmJR@IiڀH<I&~0ߧ0" m^ɇnE%c QPS3ArJOv#BCSFfA SJ{ M,x )U(ef)
+F(̤1@/_xQ{sbŠC_0Q~kߨb]!<ޅ{
+?LJ?)z 4)
+ȣ`F5Ca _o{mJJ%]B }GXЁEڛ 6
+~!2Q*Ƹ!KpR.%f>ԛ5$k"=KW9fiBu ,D1|f
+"]'fiJx;:UVw!#V!dț`90hp )S7/OSxt_5)f k X_^'Ok#g3yHZx q3ݐXݜjQYw#:!J&pr%VSPUW-
+Lі[FyuOlKx{B 2[^h7Ԥ-? ؛ M7C>=g v'5岸T.bMX-iO%@34j>1־e+%+qwh У@;Kmx(MoW}eG˽##=T&,zK+y fgVoF=C7?-L(geUMF?K]Uϔs?Еq뫃j"lsFK#?4nw*
endstream
endobj
-1282 0 obj
-<< /Type /Page /Contents 1283 0 R /Resources 1281 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1285 0 R >>
+1299 0 obj
+<< /Type /Page /Contents 1300 0 R /Resources 1298 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1249 0 R /Annots 1302 0 R >>
endobj
-1285 0 obj
-[ 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R ]
+1302 0 obj
+[ 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R ]
endobj
-1234 0 obj
+1251 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 736.093 264.366 747.062 ]/A << /S /GoTo /D (section.1) >> >>
endobj
-1235 0 obj
+1252 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 714.245 277.846 725.085 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-1236 0 obj
+1253 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 692.268 267.116 703.227 ]/A << /S /GoTo /D (section.3) >> >>
endobj
-1237 0 obj
+1254 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 672.283 149.647 681.249 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-1238 0 obj
+1255 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 660.168 180.132 669.403 ]/A << /S /GoTo /D (subsection.4.1) >> >>
endobj
-1239 0 obj
+1256 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 648.213 234.558 657.339 ]/A << /S /GoTo /D (subsection.4.2) >> >>
endobj
-1240 0 obj
+1257 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 636.258 218.807 645.383 ]/A << /S /GoTo /D (subsection.4.3) >> >>
endobj
-1241 0 obj
+1258 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 624.303 217.393 633.428 ]/A << /S /GoTo /D (subsection.4.4) >> >>
endobj
-1242 0 obj
+1259 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 610.634 327.31 621.583 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-1243 0 obj
+1260 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 598.679 315.684 609.628 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
-1244 0 obj
+1261 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 586.166 224.606 598.121 ]/A << /S /GoTo /D (subsection.4.7) >> >>
endobj
-1245 0 obj
+1262 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 566.629 142.752 575.645 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-1246 0 obj
+1263 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 554.564 336.317 563.799 ]/A << /S /GoTo /D (subsection.5.1) >> >>
endobj
-1247 0 obj
+1264 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 542.609 226.588 551.735 ]/A << /S /GoTo /D (subsubsection.5.1.1) >> >>
endobj
-1248 0 obj
+1265 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 528.382 240.865 540.337 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
-1249 0 obj
+1266 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 518.699 298.369 527.934 ]/A << /S /GoTo /D (subsection.5.2) >> >>
endobj
-1250 0 obj
+1267 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 506.743 283.684 515.979 ]/A << /S /GoTo /D (subsection.5.3) >> >>
endobj
-1251 0 obj
+1268 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 492.965 264.835 503.914 ]/A << /S /GoTo /D (subsubsection.5.3.1) >> >>
endobj
-1252 0 obj
+1269 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 481.01 342.155 491.959 ]/A << /S /GoTo /D (subsubsection.5.3.2) >> >>
endobj
-1253 0 obj
+1270 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 468.606 239.868 480.562 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-1254 0 obj
+1271 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 456.651 254.992 468.606 ]/A << /S /GoTo /D (subsubsection.5.3.4) >> >>
endobj
-1255 0 obj
+1272 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 446.968 289.512 456.203 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-1256 0 obj
+1273 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 423.266 364.342 434.235 ]/A << /S /GoTo /D (section.6) >> >>
endobj
-1257 0 obj
+1274 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 413.095 188.929 422.33 ]/A << /S /GoTo /D (subsection.6.1) >> >>
endobj
-1258 0 obj
+1275 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 398.868 314.728 410.823 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-1259 0 obj
+1276 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 389.184 301.985 398.42 ]/A << /S /GoTo /D (subsection.6.3) >> >>
endobj
-1260 0 obj
+1277 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 375.515 243.744 386.355 ]/A << /S /GoTo /D (subsection.6.4) >> >>
endobj
-1261 0 obj
+1278 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 353.04 223.729 364.995 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-1262 0 obj
+1279 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 333.503 224.894 342.579 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-1263 0 obj
+1280 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 321.438 172.481 330.564 ]/A << /S /GoTo /D (subsection.8.1) >> >>
endobj
-1264 0 obj
+1281 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 309.483 191.938 318.609 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-1265 0 obj
+1282 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 297.528 245.109 306.763 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-1266 0 obj
+1283 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 275.72 251.545 284.736 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-1267 0 obj
+1284 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 253.802 234.987 262.818 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-1268 0 obj
+1285 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 239.914 225.731 250.973 ]/A << /S /GoTo /D (subsection.10.1) >> >>
endobj
-1269 0 obj
+1286 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 227.511 302.264 239.466 ]/A << /S /GoTo /D (subsection.10.2) >> >>
endobj
-1270 0 obj
+1287 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 215.994 379.495 226.953 ]/A << /S /GoTo /D (subsection.10.3) >> >>
endobj
-1271 0 obj
+1288 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 205.872 253.158 215.107 ]/A << /S /GoTo /D (subsection.10.4) >> >>
endobj
-1272 0 obj
+1289 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 193.916 270.653 203.152 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-1273 0 obj
+1290 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 181.961 257.064 191.087 ]/A << /S /GoTo /D (subsection.10.6) >> >>
endobj
-1274 0 obj
+1291 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 158.33 329.741 169.229 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-1275 0 obj
+1292 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 135.854 176.964 147.809 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-1276 0 obj
+1293 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 123.899 293.756 135.854 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-1277 0 obj
+1294 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 111.944 427.634 123.899 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-1278 0 obj
+1295 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 99.989 407.37 111.944 ]/A << /S /GoTo /D (subsection.12.3) >> >>
endobj
-1279 0 obj
+1296 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 88.034 340.411 99.989 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-1284 0 obj
-<< /D [ 1282 0 R /XYZ 78.37 808.885 null ] >>
+1301 0 obj
+<< /D [ 1299 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1281 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F66 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
+1298 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F65 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1331 0 obj
-<< /Filter /FlateDecode /Length 1926 >>
+1348 0 obj
+<< /Filter /FlateDecode /Length 1922 >>
stream
-x\n8+MI8snKRLf3C`Kd*U]ῃ<y'3!ȃ: ;8TB:AJ R^[QJ7HiV (umqtXy[3끎U(U@ 8s_/988`|x
-e#X8}
- BFT:6ơBjLr\Z kX3K D"0|
-²Vcd̙R= lP,~'7]\,ɾ|' t5NPnGTHq<zf}4
-޶z/o+J$[kaL' Ff4MYX/OxoJ,.qJuF
-#g`ߓ@Z- yap ,ܥxU Wm@ BГSd7zM+*@$T8!Se N%yEDw@87J*oKHdj96+"Uc V}?x<Pl(1'D$v*-+zs!/ ]T.է>YuEkm|Wݬ/ҙ J9VʣƼCRԨ*m>8P}u)z [5޾[Ǵڜ q6>
-pqy4Rgptү ގJę`pF
-Y;biIJ}8$XH¼5~KcቲFbmkݬ,{/MxbኜhQ2[s-[T?a?o5<,Z6QugEseJƗqڴ+F~ܛhKE'5)^D8.rN%Of 6Bϡ[uloU{18r؟.̭Z
-@geĮPo2Q0W!jcT巏ζY5rwTi6A[Oʤ+u5Bxo'07C}ǬIW)U:ID yI}KG/ɾ 4}ՙ={<ᮜ6kQȸ5
-CW}tJHgoiiswZssa@{ˤMXDdƴtj8%nK )qM /ʄukyDg<&{l"$VU`sUo2u `Q&(
+x\n6+a!9$@ή]%R)}:\dIr̜yA~!ȃ: ;8TB:{IJ RQ[YJ7HiV׸ (umqtXy[3끎U(U@ 8?)Z3A( WO
+
+qԠc5?R"M,tmZ5hSߞEzA#NŭM5β{kNB.D(m}FYkz522}.ڍ6g|wZV8;I*ʾIeiy:@&^٧^ wha%k㽢 \jlS10 tCm|MCŅԘ ?q@`hZ kX3[ D"0|[eS.3E- lP,~'7]\,ɾTХuvtr<rB13;yh`Yۏcϡ7˾H2HtndoϱՄ DqkJ,.qJuF
+#g`ߓ@Z- ]) H|Я]]r9І ۏ6/$D5b
+w}YOHUO9u{irڬiGI"㒢kk
+CW}tJHgoiiswZssa@-OeR.
endstream
endobj
-1330 0 obj
-<< /Type /Page /Contents 1331 0 R /Resources 1329 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1333 0 R /Annots 1334 0 R >>
+1347 0 obj
+<< /Type /Page /Contents 1348 0 R /Resources 1346 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1249 0 R /Annots 1350 0 R >>
endobj
-1334 0 obj
-[ 1280 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R ]
+1350 0 obj
+[ 1297 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R 1331 0 R 1332 0 R 1333 0 R 1334 0 R 1335 0 R 1336 0 R 1337 0 R 1338 0 R 1339 0 R 1340 0 R 1341 0 R 1342 0 R 1343 0 R 1344 0 R 1345 0 R ]
endobj
-1280 0 obj
+1297 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 758.132 269.836 769.001 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-1286 0 obj
+1303 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 746.177 214.633 757.126 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-1287 0 obj
+1304 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 735.935 185.582 745.17 ]/A << /S /GoTo /D (subsection.13.2) >> >>
endobj
-1288 0 obj
+1305 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 723.98 214.673 733.215 ]/A << /S /GoTo /D (subsection.13.3) >> >>
endobj
-1289 0 obj
+1306 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 712.025 277.328 721.26 ]/A << /S /GoTo /D (subsection.13.4) >> >>
endobj
-1290 0 obj
+1307 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 697.798 306.887 709.753 ]/A << /S /GoTo /D (subsection.13.5) >> >>
endobj
-1291 0 obj
+1308 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 678.261 168.157 687.337 ]/A << /S /GoTo /D (section.14) >> >>
endobj
-1292 0 obj
+1309 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 664.373 233.542 675.322 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-1293 0 obj
+1310 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 651.97 247.559 663.925 ]/A << /S /GoTo /D (subsection.14.2) >> >>
endobj
-1294 0 obj
+1311 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 640.463 280.008 651.522 ]/A << /S /GoTo /D (subsection.14.3) >> >>
endobj
-1295 0 obj
+1312 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 628.06 288.655 640.015 ]/A << /S /GoTo /D (subsection.14.4) >> >>
endobj
-1296 0 obj
+1313 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 616.104 222.075 628.06 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-1297 0 obj
+1314 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 604.707 199.42 615.547 ]/A << /S /GoTo /D (subsection.14.6) >> >>
endobj
-1298 0 obj
+1315 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 592.642 248.008 603.701 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-1299 0 obj
+1316 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 580.677 215.191 591.636 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
-1300 0 obj
+1317 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 570.555 223.549 579.791 ]/A << /S /GoTo /D (subsection.14.9) >> >>
endobj
-1301 0 obj
+1318 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 556.329 309.507 568.284 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-1302 0 obj
+1319 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 544.373 288.795 556.329 ]/A << /S /GoTo /D (subsection.14.11) >> >>
endobj
-1303 0 obj
+1320 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 524.837 238.264 533.913 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-1304 0 obj
+1321 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 510.939 353.213 522.007 ]/A << /S /GoTo /D (subsection.15.1) >> >>
endobj
-1305 0 obj
+1322 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 498.984 249.173 510.052 ]/A << /S /GoTo /D (subsubsection.15.1.1) >> >>
endobj
-1306 0 obj
+1323 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 488.862 270.015 498.097 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-1307 0 obj
+1324 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 475.073 297.462 486.032 ]/A << /S /GoTo /D (subsection.15.2) >> >>
endobj
-1308 0 obj
+1325 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 463.238 344.018 474.187 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-1309 0 obj
+1326 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 450.725 363.963 462.68 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-1310 0 obj
+1327 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 429.365 210.289 440.264 ]/A << /S /GoTo /D (section.16) >> >>
endobj
-1311 0 obj
+1328 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 409.27 186.289 418.286 ]/A << /S /GoTo /D (section.17) >> >>
endobj
-1312 0 obj
+1329 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 395.372 186.558 406.331 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
-1313 0 obj
+1330 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 383.427 194.419 394.376 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-1314 0 obj
+1331 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 371.472 262.354 382.421 ]/A << /S /GoTo /D (subsection.17.3) >> >>
endobj
-1315 0 obj
+1332 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 359.626 198.045 370.466 ]/A << /S /GoTo /D (subsection.17.4) >> >>
endobj
-1316 0 obj
+1333 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 337.708 143.32 348.548 ]/A << /S /GoTo /D (section.18) >> >>
endobj
-1317 0 obj
+1334 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 325.195 349.268 337.151 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
-1318 0 obj
+1335 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 315.512 207.749 324.637 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
-1319 0 obj
+1336 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 303.557 217.492 312.682 ]/A << /S /GoTo /D (subsection.18.3) >> >>
endobj
-1320 0 obj
+1337 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 291.601 178.249 300.727 ]/A << /S /GoTo /D (subsection.18.4) >> >>
endobj
-1321 0 obj
+1338 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 277.813 298.688 288.772 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-1322 0 obj
+1339 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 267.691 181.099 276.817 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
-1323 0 obj
+1340 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 255.736 204.192 264.971 ]/A << /S /GoTo /D (subsection.18.7) >> >>
endobj
-1324 0 obj
+1341 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 241.948 272.227 253.016 ]/A << /S /GoTo /D (subsection.18.8) >> >>
endobj
-1325 0 obj
+1342 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 229.554 324.451 241.509 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-1326 0 obj
+1343 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 218.037 214.145 229.215 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-1327 0 obj
+1344 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 196.179 132.929 206.999 ]/A << /S /GoTo /D (section.19) >> >>
endobj
-1328 0 obj
+1345 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 176.144 108.74 185.161 ]/A << /S /GoTo /D (section*.2) >> >>
endobj
-1332 0 obj
-<< /D [ 1330 0 R /XYZ 78.37 808.885 null ] >>
+1349 0 obj
+<< /D [ 1347 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1329 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
+1346 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1 0 obj
<< /pgf@ca0.75 << /ca 0.75 >> /pgf@CA0.4 << /CA 0.4 >> /pgf@ca0.4 << /ca 0.4 >> /pgf@bmMultiply<< /BM /Multiply>> /pgf@ca1.0 << /ca 1.0 >>>>
endobj
2 0 obj
-<< /pgfpat5 835 0 R /pgfpat4 836 0 R /pgfpat10 839 0 R>>
+<< /pgfpat5 851 0 R /pgfpat4 852 0 R /pgfpat10 855 0 R>>
endobj
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
-1335 0 obj
+1351 0 obj
[ 28 [ 510 ] 96 [ 363 ] 118 [ 490 ] ]
endobj
-1337 0 obj
+1353 0 obj
<< /Filter /FlateDecode /Length 17 >>
stream
xc```&
endstream
endobj
-1338 0 obj
+1354 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 692 >>
stream
xcd`aa`ddr N+O,,MIyP#C,9?Xy~s0aS  K,t~L;74G$0GAA5/<"-6300q/,L(Q0200
@@ -5699,10 +5793,10 @@ Nz
>XOoOOo_O߄=<<;WLrxxJ
endstream
endobj
-1336 0 obj
-<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1338 0 R /CIDSet 1337 0 R >>
+1352 0 obj
+<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1354 0 R /CIDSet 1353 0 R >>
endobj
-1339 0 obj
+1355 0 obj
<< /Filter /FlateDecode /Length 374 >>
stream
x}RMo@x=Y45!b7}Md.pwwM[< t7ްOa5C/Zt9jȑl9V,
@@ -5712,23 +5806,23 @@ y@ws$壷9wNF IpCPB }Jy"yr^IKDЙ\_r&
rndfA~
endstream
endobj
-833 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1340 0 R ] /ToUnicode 1339 0 R >>
+846 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1356 0 R ] /ToUnicode 1355 0 R >>
endobj
-1340 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1336 0 R /W 1335 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1356 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1352 0 R /W 1351 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1341 0 obj
+1357 0 obj
[ 56 [ 681 681 ] 82 [ 681 ] 88 [ 403 ] 106 [ 681 681 ] ]
endobj
-1343 0 obj
+1359 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc`

endstream
endobj
-1344 0 obj
+1360 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1129 >>
stream
xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
@@ -5743,10 +5837,10 @@ xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
sn> <TQZPt@ UQ=R]E&ni,lAC#bdČjnpu,;T7>6<4N=$Z#yB<R eD E*yHa)ݤ1^MZN?|@˰veFb&u!}^w@x Q3%Ib4^A_>>:Xk kPT%J@i~ Ρ{(;> Qd"\4-*ۤQ2{[ F:Ј폾u1B}O jkq \5|[P6?}uxzK2iC惾ELm 9cBO"{lz2|Bh4zGo塞.OgW;Ge_
endstream
endobj
-1342 0 obj
-<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1344 0 R /CIDSet 1343 0 R >>
+1358 0 obj
+<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1360 0 R /CIDSet 1359 0 R >>
endobj
-1345 0 obj
+1361 0 obj
<< /Filter /FlateDecode /Length 387 >>
stream
x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t6zȐl5t5tg<iq*aتM]bց?M:]}y﫝,21vxjΙSuYf K1l& 3aEK[9L]'a:*ST5%cʼź*.N}QkMY$ 0uk:+|3~4ˣ5KY:T2ʌ ICJ
@@ -5754,28 +5848,28 @@ x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t
rhah⸁CS-f_&[ QJg`jFo[UTq{ ,r}
endstream
endobj
-809 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1346 0 R ] /ToUnicode 1345 0 R >>
+818 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1362 0 R ] /ToUnicode 1361 0 R >>
endobj
-1346 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1342 0 R /W 1341 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1362 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1358 0 R /W 1357 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1347 0 obj
+1363 0 obj
[575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 638.9 511.1 638.9 ]
endobj
-1348 0 obj
+1364 0 obj
[1083.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1361.1 ]
endobj
-1349 0 obj
+1365 0 obj
[ 28 [ 603 ] 35 [ 544 ] 43 [ 544 ] 47 [ 603 ] ]
endobj
-1351 0 obj
+1367 0 obj
<< /Filter /FlateDecode /Length 14 >>
stream
xc``
endstream
endobj
-1352 0 obj
+1368 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 900 >>
stream
xڵSoL[U]<t}dmbhAf P(d+}mx{v –@2q5,C~G>D_Yh9sﹹ990AkO4_7 N:
@@ -5790,36 +5884,36 @@ WZVRV
1mb7aKuO[&,ڗ:E["aS4c &8dxgxV6-:'T(Ed|<>a)Z9?'Uؚ
endstream
endobj
-1350 0 obj
-<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1352 0 R /CIDSet 1351 0 R >>
+1366 0 obj
+<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1368 0 R /CIDSet 1367 0 R >>
endobj
-1353 0 obj
+1369 0 obj
<< /Filter /FlateDecode /Length 375 >>
stream
x}R]k0}ϯ{6U@0uBa~`cM.`* BJOι7瞴ɣg XF3fˢ"\DiVychr4НeL
ӳLSñUM(M΁?G6^[U)Lq,h'ɊՁ%> ;Z(9O)/TƫI|qk $wI2
endstream
endobj
-702 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1354 0 R ] /ToUnicode 1353 0 R >>
+717 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1370 0 R ] /ToUnicode 1369 0 R >>
endobj
-1354 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1350 0 R /W 1349 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1370 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1366 0 R /W 1365 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1355 0 obj
+1371 0 obj
[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1138.9 0 585.3 ]
endobj
-1356 0 obj
+1372 0 obj
[ 47 [ 525 ] 50 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 77 [ 525 ] 81 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1358 0 obj
+1374 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`

endstream
endobj
-1359 0 obj
+1375 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1486 >>
stream
xmU{LG%ʉr9ݚj!A⣩Qx==#Z-w CSV5$֤Uk5ZlS5SuV&Mdv3oeǢ1Ǔ
@@ -5838,10 +5932,10 @@ sƭw¸Om-åu^
T;,;T(w ;h 4
endstream
endobj
-1357 0 obj
-<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1359 0 R /CIDSet 1358 0 R >>
+1373 0 obj
+<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1375 0 R /CIDSet 1374 0 R >>
endobj
-1360 0 obj
+1376 0 obj
<< /Filter /FlateDecode /Length 420 >>
stream
x}Ok0@zp-;mڔ`$bhRe4
@@ -5850,22 +5944,22 @@ b!~%’]ތGO|{0rV`-L6F j(Qjֈ
aa>>׸1iCU<o3޶g
endstream
endobj
-634 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1361 0 R ] /ToUnicode 1360 0 R >>
+646 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1377 0 R ] /ToUnicode 1376 0 R >>
endobj
-1361 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1357 0 R /W 1356 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1377 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1373 0 R /W 1372 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1362 0 obj
+1378 0 obj
[ 47 [ 590 ] 81 [ 531 ] 98 [ 419 ] 105 [ 413 ] 116 [ 561 ] ]
endobj
-1364 0 obj
+1380 0 obj
<< /Filter /FlateDecode /Length 19 >>
stream
xc`
endstream
endobj
-1365 0 obj
+1381 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1167 >>
stream
x}TmLe^-+]lqShq ls RPG6Zz#"/\{/0a8`
@@ -5880,10 +5974,10 @@ _eR}&:q5d ub cly}xϱ3L7_kNGWg?v
#h}^
endstream
endobj
-1363 0 obj
-<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1365 0 R /CIDSet 1364 0 R >>
+1379 0 obj
+<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1381 0 R /CIDSet 1380 0 R >>
endobj
-1366 0 obj
+1382 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
xڍR]k0}ϯ{6tN鄎ĖkM.&%MKR0Џ{9'<l>V :+IT.P "GVlb .e,Yr,Y^slY^$ցn=o4XT$Ϥ;<yZSar6X
@@ -5892,25 +5986,25 @@ s˭1=Ct8VePgdnWJNñ~
δ3\9N#ƃ< =z5A Ӿ<Fx?)q^ݳZkkL m*U=z}+j
endstream
endobj
-607 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1367 0 R ] /ToUnicode 1366 0 R >>
+613 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1383 0 R ] /ToUnicode 1382 0 R >>
endobj
-1367 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1363 0 R /W 1362 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1383 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1379 0 R /W 1378 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1368 0 obj
+1384 0 obj
[361.7 429.7 0 0 0 644.7 ]
endobj
-1369 0 obj
+1385 0 obj
[ 28 [ 525 ] 35 [ 525 ] 43 [ 525 ] 47 [ 525 ] 50 [ 525 ] 55 [ 525 ] 63 [ 525 525 ] 66 [ 525 ] 72 [ 525 ] 74 [ 525 525 525 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 103 [ 525 ] 105 [ 525 ] 109 [ 525 ] 112 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1371 0 obj
+1387 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``Td\ǣaK
endstream
endobj
-1372 0 obj
+1388 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2668 >>
stream
xڍWyX
@@ -5926,10 +6020,10 @@ pDc;
|~b~_Pr6'=:?gбƲ՜ٚ3ܖRj&v>zfC3x22#n"U )wM9=ěm<BA1FB7x[\ݞ@{a7L 
endstream
endobj
-1370 0 obj
-<< /Type /FontDescriptor /FontName /RBEIGJ+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1372 0 R /CIDSet 1371 0 R >>
+1386 0 obj
+<< /Type /FontDescriptor /FontName /RBEIGJ+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1388 0 R /CIDSet 1387 0 R >>
endobj
-1373 0 obj
+1389 0 obj
<< /Filter /FlateDecode /Length 484 >>
stream
xڍn0<)=P !VRCBIj ld_cZi6R|?{?3yqOz9|_ul؂^)?w%2ϋM!pŅh .%?_~/,J !pJԤP-!$Tϥx"=T?
@@ -5938,24 +6032,24 @@ s}IHiC--"%R 9僥Z6H.)Gz;}[ Ɛ!)R$2A/)
endstream
endobj
478 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RBEIGJ+LMMonoSlant10-Regular /DescendantFonts [ 1374 0 R ] /ToUnicode 1373 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RBEIGJ+LMMonoSlant10-Regular /DescendantFonts [ 1390 0 R ] /ToUnicode 1389 0 R >>
endobj
-1374 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RBEIGJ+LMMonoSlant10-Regular /FontDescriptor 1370 0 R /W 1369 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1390 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RBEIGJ+LMMonoSlant10-Regular /FontDescriptor 1386 0 R /W 1385 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1375 0 obj
+1391 0 obj
[734 ]
endobj
-1376 0 obj
+1392 0 obj
[ 28 [ 549 ] 35 [ 494 ] 40 [ 329 329 ] 43 [ 494 ] 45 [ 329 ] 47 [ 549 ] 50 [ 494 ] 55 [ 329 ] 59 [ 494 ] 63 [ 549 ] 66 [ 329 ] 70 [ 494 ] 72 [ 274 ] 75 [ 878 ] 77 [ 603 ] 81 [ 549 ] 84 [ 549 439 439 ] 88 [ 329 ] 96 [ 453 ] 98 [ 439 ] 104 [ 768 357 ] 109 [ 576 ] 112 [ 494 ] 114 [ 713 ] 116 [ 495 ] 118 [ 521 ] 502 [ 329 ] ]
endobj
-1378 0 obj
+1394 0 obj
<< /Filter /FlateDecode /Length 27 >>
stream
xc``(4ůaU &
endstream
endobj
-1379 0 obj
+1395 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3534 >>
stream
xڭX tW-Y.!,!GISU
@@ -5975,38 +6069,38 @@ Mn >
.H^ڊ)jz!-,J28 w`9 `di>h8ߐ`ju<߉t]!_
endstream
endobj
-1377 0 obj
-<< /Type /FontDescriptor /FontName /ITTKMT+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1379 0 R /CIDSet 1378 0 R >>
+1393 0 obj
+<< /Type /FontDescriptor /FontName /ITTKMT+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1395 0 R /CIDSet 1394 0 R >>
endobj
-1380 0 obj
+1396 0 obj
<< /Filter /FlateDecode /Length 508 >>
stream
x}Mo0=8!PH )ڥJk6q$kuZb)(Ox͑#g7Nٗ7lqI /Dh[׈ lɷ+qJ;\OSM Ec_?M]>7AE5\6FfĂGι䦩M{7sl}Nv4 d#/j='|չ:5jfj~fRg6/Qm{!#q/˘άRfwp>C[K,@h$m)+ՙjGJ~sDO@0΃$Ilt"Γ 3A!ha)^-h 9hk)܀vE!(䲤 %(AKe E. EВ<[YJ9(jԋQ!DBdI80R)SJAKS. zO2hI%Z giߏ%׮f٠J=hD^&zy/-
endstream
endobj
419 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ITTKMT+LMRoman8-Italic /DescendantFonts [ 1381 0 R ] /ToUnicode 1380 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ITTKMT+LMRoman8-Italic /DescendantFonts [ 1397 0 R ] /ToUnicode 1396 0 R >>
endobj
-1381 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ITTKMT+LMRoman8-Italic /FontDescriptor 1377 0 R /W 1376 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1397 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ITTKMT+LMRoman8-Italic /FontDescriptor 1393 0 R /W 1392 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1382 0 obj
+1398 0 obj
[1123 ]
endobj
-1383 0 obj
+1399 0 obj
[777.8 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 388.9 388.9 ]
endobj
-1384 0 obj
+1400 0 obj
[ 28 [ 525 ] 43 [ 489 ] 50 [ 511 ] 64 [ 367 ] 66 [ 256 ] 75 [ 867 ] 77 [ 561 ] 82 [ 550 ] 96 [ 372 ] 105 [ 404 550 550 ] 116 [ 500 ] ]
endobj
-1386 0 obj
+1402 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`X P

endstream
endobj
-1387 0 obj
+1403 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1716 >>
stream
xڍU pEUM,@+v70 X6e -ǀqL!`VK>eKeZ?K1`[4@
@@ -6018,10 +6112,10 @@ NIcO>ܷuecM·:tZ"K 4Hp'L4)v(*(8G:z<9
3##g< AjSS
endstream
endobj
-1385 0 obj
-<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1387 0 R /CIDSet 1386 0 R >>
+1401 0 obj
+<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1403 0 R /CIDSet 1402 0 R >>
endobj
-1388 0 obj
+1404 0 obj
<< /Filter /FlateDecode /Length 422 >>
stream
x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M&+#u(Qj{ ֈ;.UUw̅^:nZN?k^>eۄG %k8 ImאrZ.MkY<xUZ!!l|^ 
@@ -6030,21 +6124,21 @@ x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M
endstream
endobj
407 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1389 0 R ] /ToUnicode 1388 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1405 0 R ] /ToUnicode 1404 0 R >>
endobj
-1389 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1385 0 R /W 1384 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1405 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1401 0 R /W 1400 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1390 0 obj
+1406 0 obj
[ 27 [ 850 547 875 ] 34 [ 800 625 575 ] 38 [ 575 575 ] 42 [ 813 500 ] 46 [ 862 625 ] 49 [ 738 513 563 ] 55 [ 344 563 563 884 563 ] 62 [ 880 625 375 419 313 ] 68 [ 344 ] 70 [ 594 ] 72 [ 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 438 438 ] 88 [ 313 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 111 [ 850 594 1162 813 850 594 ] 118 [ 594 688 500 563 656 ] 499 [ 551 551 ] ]
endobj
-1392 0 obj
+1408 0 obj
<< /Filter /FlateDecode /Length 29 >>
stream
xc``6.j߿7?` H
endstream
endobj
-1393 0 obj
+1409 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6916 >>
stream
xڝZ @SW%1W W:uVŽ{vI@YY%j{N:tZT'Ny}{BrϹI-%-]y +V VL}cһA^֑żwF,?GxCl{0l.76\8hyI^)rGY/ M(H1wO $L 4,./JƔ)&Zg)ޝXPx)MVx/4\W(<TA>P:oEtwD7"4:,rd:?HELhDVEz{)C#Q~ފ׮SD)VVLPDz{+fFENu!s"]&EZuV,]轵&GF)|B#^Q*{+{wHTE 5A^FQcxj5rRoPӨLj5CMͣSPR )7j ZNVRQjj ZG6PJI(Oʋ(*
@@ -6078,32 +6172,32 @@ P׈$ g,;0SD̋$j TUU˯kXhaZ
! iJe8%1)8 Kd#jc= _G OOo1gsEh{r Ijw7x:K Zݿs5g1_筸,%+&>XPb?ԁBB'`C*LϗEm KLOg _/=&.*"MqfxR㺳,9s^@5l lW{ig { Xv8-JSz
endstream
endobj
-1391 0 obj
-<< /Type /FontDescriptor /FontName /TIEZGJ+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1393 0 R /CIDSet 1392 0 R >>
+1407 0 obj
+<< /Type /FontDescriptor /FontName /TIEZGJ+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1409 0 R /CIDSet 1408 0 R >>
endobj
-1394 0 obj
+1410 0 obj
<< /Filter /FlateDecode /Length 644 >>
stream
x}[0+ԇ7I.kI^HB)}s,ekec;tƻPB <#y&_\5G龹tEL& /Z+h޺-{5u;i+߾?wM]8 Y[s_1v3|<!"`mԲ`JtT|H$;:A0U-kk[lW|L_;ʼ[f/m{N <gJlaKQk6u*m>WfbF-J]3k@~@O<ª hƿBOѹB,=-= DxJd&D' Orh*) A ƈq"hIO@}cEH iE;H#1_2(,#-TT5"3E?eeR-gv'Dn9T'ttDq%Z_qF'&RJURJI $H':HID:EN"r NHrn9|u'-ID9%q/ 7սnV}Luv槆3mZGM#2
endstream
endobj
406 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TIEZGJ+LMRoman12-Bold /DescendantFonts [ 1395 0 R ] /ToUnicode 1394 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TIEZGJ+LMRoman12-Bold /DescendantFonts [ 1411 0 R ] /ToUnicode 1410 0 R >>
endobj
-1395 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TIEZGJ+LMRoman12-Bold /FontDescriptor 1391 0 R /W 1390 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1411 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TIEZGJ+LMRoman12-Bold /FontDescriptor 1407 0 R /W 1406 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1396 0 obj
+1412 0 obj
[ 27 [ 531 531 531 ] 32 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 49 [ 531 531 531 531 531 ] 55 [ 531 531 531 ] 59 [ 531 ] 61 [ 531 531 531 531 ] 66 [ 531 ] 68 [ 531 ] 70 [ 531 531 531 531 531 531 531 531 531 ] 80 [ 531 531 531 ] 84 [ 531 531 531 ] 88 [ 531 ] 91 [ 531 ] 95 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 109 [ 531 531 531 531 531 531 531 531 ] 118 [ 531 ] 120 [ 531 ] ]
endobj
-1398 0 obj
+1414 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc``&

endstream
endobj
-1399 0 obj
+1415 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6684 >>
stream
xڍz \ĐITc1wuV[m"]p)Rwְ@a_nl{EUgݢM۾c/oB~ ޙw=lڙ<<rٛd1~JۭUv*t$c0R#Ot_rt݁o>K5_0 x1y(ǩ/.p| #x $1+ׯ7e"*^sqy}smt_@"V*J̑z̑z*bWr,/"HzɶHcT2JTD^#
@@ -6126,10 +6220,10 @@ svO֛-5rRtnS8(U[ftF\cs
Ut\PYKJwvB1H( H+WqAR2H5~-۟yei xg4n@K*:8:hq_Z}cGyNoL:;q
endstream
endobj
-1397 0 obj
-<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1399 0 R /CIDSet 1398 0 R >>
+1413 0 obj
+<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1415 0 R /CIDSet 1414 0 R >>
endobj
-1400 0 obj
+1416 0 obj
<< /Filter /FlateDecode /Length 673 >>
stream
x}Kk0E!]q,YjK@A٦1$EH:'-ZU)W?^m,of6?mjQ秣gk [\V{b0_-VU_ͫ*?
@@ -6140,60 +6234,68 @@ I(($*#1]vNUЩZZBKj BePm2 <<Sˠit7$tB4)i-n
endstream
endobj
397 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1401 0 R ] /ToUnicode 1400 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1417 0 R ] /ToUnicode 1416 0 R >>
endobj
-1401 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1397 0 R /W 1396 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1417 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1413 0 R /W 1412 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1402 0 obj
-[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
+1418 0 obj
+[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 59 [ 531 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 107 [ 531 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
endobj
-1404 0 obj
+1420 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
-xc``T`\4ţa*
+xc``T\4ţaA*
endstream
endobj
-1405 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1825 >>
+1421 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2121 >>
stream
-xmU}TWC23,--% ~`AFH &"H5`˩,JY+ǮG .Zp`Y{T{a nOߙy3{w$" fY|u.!huD3,Fg+Nf%%'ů$M2Z|ӏt9! &Ltmo
-C(ŢhJ@kmDP*2(ّKDY|=K׉D yx^^$Zɇ=f0C"oipK|9Y#a
-#u)'KNwzȴfEhϱhf%7D^|X|tsMlAvxl/DV\*W˅V>3<EP %Lwtd.k_ӊFڨ F u
-#dj.XH?qmc+OV507ފe"&zB Y70vZ}E]u<:*S7?^w#䡨R 㵸n[_aecV<^ 4L&fYxÛnki|Vh#ؔowW2W`y0'bM߮/KiIۘwPn%7\fZP|')>>"RUA?p7oIwJG(ceZ?ARq%Iܨ"~|yR܀*AӊoN9shImx} 8EK,F
-["_
-Arg/2j=8K"T7+h5ϧ<:]ԮK(EzQ}MtVQ:yjf=ٱ`EGKrJއfmE⫥`Մg$zGRAZ(s! #P>eK=(w!wW{_kP0GDz`}uǩ,++ϯ;bYuO)
-`=d(#p
+xmV TW!5RKHD&#]-P(hADK@DAVX
+
+A 
+ YΞk{Nn=g̝\35p_( /,WiiIrFv1kgЬ ,mJx,cxә tˆwwa{38+X`8s|\[+]6S24 JyrcYczmb#W2~G&@F{V(Iq: QlgҴ
+רR82!-WkQ$)ZE,UhRl a|*Pih
+Fӥqrҥ;5Nq\)Mɘiw@nSkXNuMo?ԚdyW:Z)V%20`a0'l%掭<mƶ`[l;Ec X"`L8ifYE6u|.7њ71Yxx-צ
+Ä MߓsI5y| gҜz`I?~籾b1h?9.YO|y!ڶSG$GzeMWh
+_1i?)jo+QQvvH^J#7֟lh"% f{
+1,W0,F Q#/?K>94ׯ%F_b(6Xk8B 4
+X.Fr,4փS-W|%@EQRZ-k9b^2EV\fUլOnV@ }8ୢE9}x94E}, ezyn1qT-|$fe_=_oJxlEiOCF1>0ǰiYLc(Cl1?1.K1nۑkr4WߧBtaHgqUo>?+!f!߁rj9Ïup+;"K@W/@H|!BAk?7 hnjx3zfW
+6~][kqG\>PO8iSMqU*\_ykNwPVI̡0Axr
+nyÕCqR.K c̞6
+ |&Oq܆~p$&y:l|iDȲV!CewkVj]q~8ҠehԊ,IbWs" kcLObo)OK5$j[Y˜A Po#FV)y6 d}Z$t@%|aﱏݻV:vaglkLM0~VVaHs'.jmfKMAKv1Zps헭p۱30HׇJכ T>*&9=DMX jol=Fc4_ٔ|;zH.eY+M
+&wyFF<#ͧwE{\UNbnQ!wA ءR/ȰZG\=.w=e(>xl5 K9Q*;릎.***N/I+,AySJb DbZn
+vD2d. Eco+YCAHp6+}_&r%!fFXE33S8(I7q\WTscEdK us[WJ:VE~!IN9z"s
+`Eg{J3/
endstream
endobj
-1403 0 obj
-<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1405 0 R /CIDSet 1404 0 R >>
+1419 0 obj
+<< /Type /FontDescriptor /FontName /PYPVHS+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1421 0 R /CIDSet 1420 0 R >>
endobj
-1406 0 obj
-<< /Filter /FlateDecode /Length 466 >>
+1422 0 obj
+<< /Filter /FlateDecode /Length 475 >>
stream
x}Mo0
-)=P VU۴%z%$k)dǴR]$η]V/o(y?;o6+Z66 
--1y|b?=W;S|jvb8iuDe#A>@$mcH胐\:T 5zNƹ:4<jEY:ۚ`8(!d~D-Ʈ;)P/R7@{ɵU  ewDC,fjyoG@3+@v^LQ<؟Z@aQ(FH1ia)nmiiA-ES!%Hk%R9mAZXJ)FP`{H0{=",a fH%H/Er{H2Y9O_KgRzٽ
- _k;eo{?vqr7
+!RzHpZEHhmTjHIR0!~mi*H Oo*.#=%oзufۖ @#W0yQnK%;#.&mR}Jl2?p{
+>WWKCjrum#qAAU$OJmcȗHTB:V ܓ7fNֹ4:zM"YU RvFR]w[A'nDR§IX.o]A ڌd3W_'D#^djmŅ Di疒)A H;4AZ"y%CʕulRAZ!H>"=9ZH;#F0J 3( ;2E8Ž2̗z%cQ2$e>;v˰#ݜ]X>jm-;s{Rvmg},h
endstream
endobj
396 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1407 0 R ] /ToUnicode 1406 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PYPVHS+LMSans8-Regular /DescendantFonts [ 1423 0 R ] /ToUnicode 1422 0 R >>
endobj
-1407 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1403 0 R /W 1402 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1423 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PYPVHS+LMSans8-Regular /FontDescriptor 1419 0 R /W 1418 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1408 0 obj
+1424 0 obj
[ 27 [ 796 531 ] 34 [ 752 590 ] 42 [ 767 472 295 295 ] 47 [ 590 ] 49 [ 723 472 531 ] 54 [ 693 325 531 531 834 531 ] 62 [ 796 590 354 383 295 ] 68 [ 325 ] 70 [ 561 664 295 ] 74 [ 973 885 796 590 531 ] 80 [ 826 531 531 723 590 413 413 ] 88 [ 295 ] 91 [ 561 ] 95 [ 782 414 590 419 ] 100 [ 531 531 531 ] 104 [ 767 413 531 531 796 590 ] 112 [ 561 1091 767 796 561 ] 118 [ 561 649 472 531 620 885 ] 125 [ 590 590 ] 499 [ 502 502 ] 502 [ 295 ] ]
endobj
-1410 0 obj
+1426 0 obj
<< /Filter /FlateDecode /Length 29 >>
stream
xc``0-z߿@
endstream
endobj
-1411 0 obj
+1427 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7359 >>
stream
xڝz\,;d-3:*DcƊ"-,
@@ -6228,10 +6330,10 @@ sL4y_a0
nt``6Doz}Nexi4ff:uQ:+[d Cgr
endstream
endobj
-1409 0 obj
-<< /Type /FontDescriptor /FontName /AUGDZH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1411 0 R /CIDSet 1410 0 R >>
+1425 0 obj
+<< /Type /FontDescriptor /FontName /AUGDZH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1427 0 R /CIDSet 1426 0 R >>
endobj
-1412 0 obj
+1428 0 obj
<< /Filter /FlateDecode /Length 667 >>
stream
x}M0=dɧ + HBbh$DI8kJW>xl;+tgmdW\׬qϕT, h|+{6\ӵ*'V\kԿX{Æ;Ý}~}UFϧu=jW'@gكYf.ۮ =KU,ʜsFdFWCTވ;~2߼ҥ2Zjg:e#b{[ȶTG6|c9I<'IX!zk]ld.l_fwi$ ,BvM6SGLuMW'q*j
@@ -6240,22 +6342,22 @@ TIckAD/3z+ޕH47䯌_`>"P
endstream
endobj
395 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /AUGDZH+LMRoman8-Regular /DescendantFonts [ 1413 0 R ] /ToUnicode 1412 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /AUGDZH+LMRoman8-Regular /DescendantFonts [ 1429 0 R ] /ToUnicode 1428 0 R >>
endobj
-1413 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /AUGDZH+LMRoman8-Regular /FontDescriptor 1409 0 R /W 1408 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1429 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /AUGDZH+LMRoman8-Regular /FontDescriptor 1425 0 R /W 1424 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1414 0 obj
+1430 0 obj
[ 51 [ 611 ] 56 [ 611 611 ] 78 [ 611 ] 82 [ 611 ] 100 [ 611 611 ] 106 [ 611 611 ] 121 [ 611 ] 187 [ 611 ] ]
endobj
-1416 0 obj
+1432 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc`
<  
endstream
endobj
-1417 0 obj
+1433 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1865 >>
stream
xuU{PSW!fe!{[ԶXV >@;ZWK0H^i7፼b@"mEeTݺjwhٵ:ǙDwٙ;~X` &BR$ǿqS
@@ -6272,31 +6374,31 @@ n@ 6]xɊLRLZy`%g!PᇓG HtHm_V6s98wW~
;;=?z=s+Z]]l-%OJ"< #* N6;,a;펆 X^hu
endstream
endobj
-1415 0 obj
-<< /Type /FontDescriptor /FontName /TESQOF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1417 0 R /CIDSet 1416 0 R >>
+1431 0 obj
+<< /Type /FontDescriptor /FontName /TESQOF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1433 0 R /CIDSet 1432 0 R >>
endobj
-1418 0 obj
+1434 0 obj
<< /Filter /FlateDecode /Length 413 >>
stream
x}]K0+M/Qps:]x%g3&%m/=IVQ xzޓyKKhxahTl0x0Pψe_mQ` !ת"qűث~[|u6*$;6k#U*a6;H9cTn .!}lv8KRJgOQQT85-V6AL3'k+*} #i
endstream
endobj
394 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TESQOF+LMRoman6-Regular /DescendantFonts [ 1419 0 R ] /ToUnicode 1418 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TESQOF+LMRoman6-Regular /DescendantFonts [ 1435 0 R ] /ToUnicode 1434 0 R >>
endobj
-1419 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TESQOF+LMRoman6-Regular /FontDescriptor 1415 0 R /W 1414 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1435 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TESQOF+LMRoman6-Regular /FontDescriptor 1431 0 R /W 1430 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1420 0 obj
+1436 0 obj
[ 47 [ 624 ] 55 [ 536 ] 59 [ 641 ] 77 [ 613 ] 84 [ 558 ] 96 [ 602 ] 98 [ 458 ] 112 [ 613 ] ]
endobj
-1422 0 obj
+1438 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`
endstream
endobj
-1423 0 obj
+1439 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1466 >>
stream
x}UkLWa2. ̌-P>P">veg}"ݧX)JUҊ! Zՠ4mmtVl>қ7/9;("#(&|e֔ur1Sk2)\d K%$)$"B*Q%h8G%SbIC*YRU͎4U#Q$!ȯљ(?2YS/) Ώ%* -*c֨s5: zz.k Rff+m53.X<OC+7VhK)Cݴb:O_ JfK-ӻiikJҊsabȜٗA~Aj^Nk4J ]rh?f>˕k +ul!c
@@ -6308,10 +6410,10 @@ x}UkLWa2. ̌-P>P">veg}"ݧX)JUҊ! Zՠ4m
:vS0<OQ:ڈvo=(I/,:̌ jt#"8kXhmdk0$s iOirxPH]GZ}>
endstream
endobj
-1421 0 obj
-<< /Type /FontDescriptor /FontName /IPHWGX+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1423 0 R /CIDSet 1422 0 R >>
+1437 0 obj
+<< /Type /FontDescriptor /FontName /IPHWGX+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1439 0 R /CIDSet 1438 0 R >>
endobj
-1424 0 obj
+1440 0 obj
<< /Filter /FlateDecode /Length 403 >>
stream
xڍ]k0+.)̯0?PټlR|X1d>=9y󦍧6xAMa4`HshL2#Z-М$Deĉdc[4Ɠw];m|,6*K$͋ 6xΩm݉lZ#Gp?QB!tڔRa&Dev !qs8}N\J2m^D 4+E•樅<AQ#Vy~Fk
@@ -6319,21 +6421,21 @@ xڍ]k0+.)̯0?PټlR|X1d>=9y󦍧6xAMa4`HshL
endstream
endobj
393 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /IPHWGX+LMRomanCaps10-Regular /DescendantFonts [ 1425 0 R ] /ToUnicode 1424 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /IPHWGX+LMRomanCaps10-Regular /DescendantFonts [ 1441 0 R ] /ToUnicode 1440 0 R >>
endobj
-1425 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /IPHWGX+LMRomanCaps10-Regular /FontDescriptor 1421 0 R /W 1420 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1441 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /IPHWGX+LMRomanCaps10-Regular /FontDescriptor 1437 0 R /W 1436 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1426 0 obj
+1442 0 obj
[ 27 [ 869 559 ] 34 [ 818 639 575 ] 42 [ 831 511 ] 45 [ 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 594 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 88 [ 319 ] 95 [ 863 474 639 454 ] 100 [ 575 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 869 607 869 607 703 511 575 ] 125 [ 639 ] 284 [ 575 ] 502 [ 319 ] ]
endobj
-1428 0 obj
+1444 0 obj
<< /Filter /FlateDecode /Length 32 >>
stream
xc``0/y߿wa 8
endstream
endobj
-1429 0 obj
+1445 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6804 >>
stream
xڅY XW&hPZEU.*((D 䄰oo :VRkkVhmm]Zkk{Զr/sN&~QVVL&s\9wׂe.Z?tG
@@ -6372,10 +6474,10 @@ LU]{u3*Zdeoү!f@Qi{r)w19_!x='
iT*l<.Y$yȥ <vLx(7Mt^aff*%r9䙏r[q(pS/Ej>US*xNay-RZ-DyśW=\Q7@b:3LH("B[W&o6/CH=~;>;Wt;[!mB#^U GVg@a̕&0Ma>PNCUƎ>QQr
endstream
endobj
-1427 0 obj
-<< /Type /FontDescriptor /FontName /UFTXJR+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1429 0 R /CIDSet 1428 0 R >>
+1443 0 obj
+<< /Type /FontDescriptor /FontName /UFTXJR+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1445 0 R /CIDSet 1444 0 R >>
endobj
-1430 0 obj
+1446 0 obj
<< /Filter /FlateDecode /Length 649 >>
stream
x}[o0+ڇbVKXm/v46l$p$<R ;smta잳s[x\4Ͳ.'ccC{dom]nMnVK^xfȺ47~xv3&OMx<:~ͮ.i [1mW%sǓՋkc񾲺%[oyrM򋷗7dFEVv{ա؞hƣiw޼'FvѪ\׊ݥ1, lYk5EiL4q S6Y42Vs](C[~d6<O$(MKAbDy
@@ -6384,21 +6486,21 @@ x}[o0+ڇbVKXm/v46l$p$<R ;smta잳s[x
endstream
endobj
392 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UFTXJR+LMRoman10-Bold /DescendantFonts [ 1431 0 R ] /ToUnicode 1430 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UFTXJR+LMRoman10-Bold /DescendantFonts [ 1447 0 R ] /ToUnicode 1446 0 R >>
endobj
-1431 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UFTXJR+LMRoman10-Bold /FontDescriptor 1427 0 R /W 1426 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1447 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UFTXJR+LMRoman10-Bold /FontDescriptor 1443 0 R /W 1442 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1432 0 obj
+1448 0 obj
[ 28 [ 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 52 [ 778 ] 55 [ 306 ] 59 [ 500 ] 62 [ 750 556 333 ] 66 [ 278 ] 70 [ 528 625 278 ] 75 [ 833 ] 77 [ 556 ] 81 [ 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 ] 104 [ 722 389 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 750 528 ] 118 [ 528 ] 125 [ 556 ] 502 [ 278 ] ]
endobj
-1434 0 obj
+1450 0 obj
<< /Filter /FlateDecode /Length 28 >>
stream
xc``^<ţa], $&
endstream
endobj
-1435 0 obj
+1451 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4091 >>
stream
xڝX tSպ>i9!@)c\ [CE
@@ -6424,10 +6526,10 @@ O
QYp*Wcxc] ZV ;eS@UDEZL3v<W}!Grs9A,Q[]2M &S<-Mw+7Zklrp7-^
endstream
endobj
-1433 0 obj
-<< /Type /FontDescriptor /FontName /GRCBCJ+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1435 0 R /CIDSet 1434 0 R >>
+1449 0 obj
+<< /Type /FontDescriptor /FontName /GRCBCJ+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1451 0 R /CIDSet 1450 0 R >>
endobj
-1436 0 obj
+1452 0 obj
<< /Filter /FlateDecode /Length 523 >>
stream
xڍK0Ydp;#
@@ -6435,21 +6537,21 @@ ZPaL2,!}r@,1)z%E/P.i</gg/0x´ ?C:ml
endstream
endobj
391 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GRCBCJ+LMRomanSlant10-Regular /DescendantFonts [ 1437 0 R ] /ToUnicode 1436 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GRCBCJ+LMRomanSlant10-Regular /DescendantFonts [ 1453 0 R ] /ToUnicode 1452 0 R >>
endobj
-1437 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GRCBCJ+LMRomanSlant10-Regular /FontDescriptor 1433 0 R /W 1432 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1453 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GRCBCJ+LMRomanSlant10-Regular /FontDescriptor 1449 0 R /W 1448 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1438 0 obj
+1454 0 obj
[ 28 [ 569 ] 45 [ 323 ] 50 [ 508 569 ] 55 [ 354 569 569 ] 59 [ 569 ] 66 [ 323 ] 75 [ 939 ] 78 [ 569 ] 81 [ 569 569 ] 98 [ 453 ] 100 [ 569 569 ] 105 [ 446 569 569 ] 121 [ 569 ] ]
endobj
-1440 0 obj
+1456 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc````1 S
endstream
endobj
-1441 0 obj
+1457 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2828 >>
stream
x}V TWUD,u̯rI4D-pEmiYT~#ڀ 4Ђ Qh"hqьFLΜ3Lk{^IggB"Xor_+u
@@ -6464,10 +6566,10 @@ B]/NnG"ZΜ[,T[=h pԣj]]
6/T&{TgeeYwgٲlYl[vNuVE
endstream
endobj
-1439 0 obj
-<< /Type /FontDescriptor /FontName /SDPEKN+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1441 0 R /CIDSet 1440 0 R >>
+1455 0 obj
+<< /Type /FontDescriptor /FontName /SDPEKN+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1457 0 R /CIDSet 1456 0 R >>
endobj
-1442 0 obj
+1458 0 obj
<< /Filter /FlateDecode /Length 457 >>
stream
x}Ao0
@@ -6476,77 +6578,75 @@ x}Ao0
endstream
endobj
390 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SDPEKN+LMRoman7-Regular /DescendantFonts [ 1443 0 R ] /ToUnicode 1442 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SDPEKN+LMRoman7-Regular /DescendantFonts [ 1459 0 R ] /ToUnicode 1458 0 R >>
endobj
-1443 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SDPEKN+LMRoman7-Regular /FontDescriptor 1439 0 R /W 1438 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1459 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SDPEKN+LMRoman7-Regular /FontDescriptor 1455 0 R /W 1454 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1444 0 obj
-[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 ] 47 [ 511 ] 49 [ 678 460 511 ] 54 [ 653 307 511 511 ] 59 [ 460 ] 63 [ 511 ] 66 [ 307 ] 70 [ 460 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 ] 84 [ 511 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 120 [ 409 511 ] 284 [ 511 ] ]
+1460 0 obj
+[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 ] 47 [ 511 ] 49 [ 678 460 ] 54 [ 653 307 511 511 ] 59 [ 460 ] 63 [ 511 ] 66 [ 307 ] 70 [ 460 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 ] 84 [ 511 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 120 [ 409 511 ] 284 [ 511 ] ]
endobj
-1446 0 obj
+1462 0 obj
<< /Filter /FlateDecode /Length 28 >>
stream
-xc``0-/͗U0
+xc``0M/͗U0
endstream
endobj
-1447 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6055 >>
-stream
-xڭy |SenB8Hߩ
-e**KEֲKo!m4Ifk|ٓ&mڦM JYd"8(80*::s8ΗOr8:_ܛ'{>&ctɜm׮w9P_baZ7#^| BO1BO3C`ZdbϚX+r(9}*|
-; 38<ml~#raTsi &c>i7)&Ɯ|_.*vŊJ
-9˜U+V^~^%6fgZ@\Ƥ3cv쉍[ rccҳrc
-ce $rboaV^VZQVfL1?30F ˜܌,~QV̲e11EYY1B`؂œ9ET<|ݲ&,۽ckރqB0&0&3K+{{
-6gg  O1ex*c u]݌=F
-#Hgd2 .8g !CĐ0JO2ЏXFl U瘃ӖOM{<
-S32"@D̴xՑ#CQ='Ύ9tΟysL=9ԟ82oM,ё`蘘yqg7j9j(M4 uL&5J-Iݛ8T}1Zi2@`.6ksN+ߣj35Xu׀h$l)R
-(Qx[{O֒6PYlŢв
-^%S%zφbxͬ=E^n ӠIcԒQThP)& $%+8?VKZڠ2 `S& Uc`AxLUzt4BEjax!wwbFhEvxij5Z\d>gM1M*
-CH I$ ȄuNf#FS6Qn("M:S9h2j-aV-S9R,;aTC֗>ՉqZvB Pl9ߢl? 6xat/;V ;[>v/1NGv-]Dŭ["j=<Dln
-A%['ob~3蕋aVer:;-@E|;6]i/|>Bji8#zeɒd|79(@3}Y@ޮ5NUħ
-4zs}S8Wo\+e(uAGIŽHY$#$d)kȨap{[*mb ; LPꥤQc?"ݮ~$v;Fd(сm%u&U 3 ^dIp;wC Z
-maU[@SRHF:r|bś̆|R=H6li+=٥PINd@
-pBEn"^歊"4^;.
-z"pAz:,|tѮ@hAiN}l71C;iBALКJPөb5ozIZEVT>y:,(ɓef|)Jxgͬ%7 kդA]#ˡLjjhv5u 7rshIZ<9f2W5+DG=>ivDt s$Pdk()9c_v%p yFߞB/'2sKsegeyUY\~e\j.fK t <HHuً1Y^)3~Չ^1-\N}Y W::+oEZ%)Pl5I{=4WZvACU}}K0پqR@2MUr9Z\ҕfjZ!V۝n 8RU~\ЗB
-:Z3{@Z LrN1BE: RIZ')fe'zZ*AMwUzM$If̚K(]n]6@Dp\Fc`r04FXDPD` ,5н(ϝf)jap]`G!xNj
-ía(:ԊٗZGTڝ9ɤSLg0<'[jGiOKJIDoqn{*#KII|/`ARרsQkp[;A?zaUo}x{<\&NՔ> kU^x<5ɡD6ɳFX5F5MC5Xdy!4T$5E-k yo+n6V-$ ]zfz5dT̃'ɣR9X3\X5|yŭ=w-lb7+4*@"$sj.=/NnG3)#N&!
-699f*u n ??|_?gP
-gk*?mGD8xO>J>a
-9P^q,|g' A hI-^ȋ Gf8O^k#N#h<NxUP
-ly,'Zs6~qimZT
-x;**#\-5xJewQqOc/9`F+9oMwGko~G<Z•ƚfHzjf\jjXu 6.,o?#gp~yHXPw"}B/Q&Qh$0zY0juzhЃ21v(;;#(6 d^ߞN 㴏&-iT*-]btzf'}IoԐj] Q9ENI1ʚ>wG Q)4w=qMyu0] mk.ny YiwcC q7%܆/<7vts*ȣtUU;~綒kbju.Բp\^
-eli@Xu*Z1fu;eZ` ]li}Q@n:JO_2Db 1ô M%jp$
-ǯn]nvDZ`M3=WZNk0Z
-AI%GXt|MLФ#Vzvʼnn<,t!Zp\'%JTZQ#6.;.ⵓW[SQWVȲNeJZG0frCZ{KYXK} yd#I|3kWX!Z5ޯCORQxp$6ں
-σw@]/+N:HR~-4}s>E ߵ9:v
+1463 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5902 >>
+stream
+xڭYxW#Lp
+D?_yt#ѿ!XIaW#97"gELbYXf4%˖=)G\+ȔW,[rQy-֤a,O('R[w,̑1
+sD̤t~N:_~~^Zn?#7'_` _ /򙟹iYiIyi|QjZ._߼> 9"  %M_KKgJ$uKJ3f,Mg[5qQ}_ݹo-bvY"K94I +owf'emHINے&$,恱a=zYF Y[YXY;X;YY{XX DV+Jce,!+%f$,)K*`?a<1U~7i$Ǥ9/!vSS߷iyFU{00_H9ye=k1k :}UQo<猽X+Ei0c\$h¤&2
+>
+a7l&!W I<KPE Prn7~+f:s>i
+.aW~:k aۀk4V$q]}[>Abpps:DA6r(Qi&\_`NoV#_@fGdX OmlUJ} SEEZh;*#2Hz(==|x~hEГBjr<rLJ{^yh:tzb*f*4J}.C,.paMWJ+Bn Rsp}yMmjNd›DLOӳW m~T_OHW9#))Sek*,ejJgyw1s>l]p Z3D.xWRRoȄu1SGT酓Gd#EP(PSZ}p3qǭֈ׮cxz2P b)Д1E;\ Нn|+3߃$dNp7SZJJ;Y է/ a+xQ3J4"^>Q424.m >HejBa0BjWW:D0du`-E4ne55GG $1S`SUWCA{KI)|"ߩEL6L@:Q=0JTZtPng-Ã]ehrMpwlEb
+I9Ib2ʊЗwU7֗e5!{3vN@x
+,ƳBU@ZiG&Ez'ocJ`J1zk> t
+)`l+xyMֳqCPEF
+9 x_v|
+[}G_8hRGFkq7{lXحlj"SC
+w*T֍G _ ,ycxnHm_$wfyAyak/{ic)(Li`ЍߋU1uf3S/ 4N*g.>/?]+{F_10a6ƅ$jp\nă %;/19`<e&-ӧKrGr뫒x+Ӈ\ةMBNE5º`rzj¸g( xv@yJr~TRINaь7]0jHu6KsƐa&5M4E2dzzJ2ODԒ&jG) DX*YnXϩ$DJ.#,["[|cc4v'Qi8yZS_8_a3
+3ky#hdgB"#ֽ>x>;tf"l3ezk$9v=o"VёT Ù =3 wXR^lRA(eAWIx^Yr&,!ᦱi
+*73N6x W 6badČp~`w8ݎlVkIC=TyX;zsHfqv%`??pO>K
+jE\ErFGL3:F<V4.¬ 
+7^eg&O8Cc̄H}?K?\L +&Nކ#mn~ (/W+e
+9"!Pu/.ؤһ赸;sUX +&n`Լx~\,!y97;xm3g*,G+4؂ñ dBv3 Fcoryd@a“/z
+“4fPU\g S֟]O_Kon]UN
+W=EJ{]vYt>=2]ss/Mpvª)9x\0e젢Z'NWq'_"Zs,R%ZR xlۡqwyoqĨ#hsZJT ^#>]8f r.9-I-d0Z[CF7⃩IL?]QtY+C(+-HS}GɵC\_I
+N=Xs@>TNH![ҧb12-o}9 ursGSOHۺZ*='5 7 Zq[pg`09kj%##VgBD]7 JKqzmچaeXmn+r+
+^oTGs/=̾DP12B*~ )^Qv0XSS:?: &SsTeT`ڒ9Q.bˊfj;iDQcE^Cw ZT.)k‚Mn!(‡Of1xz^ġp .wh>L6=u⇖$қVY& +-#a߾Ay6؎޶!>q *C
+";7-hg,櫻ኌd^meVg<4߬ m
endstream
endobj
-1445 0 obj
-<< /Type /FontDescriptor /FontName /TDKKTE+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1447 0 R /CIDSet 1446 0 R >>
+1461 0 obj
+<< /Type /FontDescriptor /FontName /XLKCMU+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1463 0 R /CIDSet 1462 0 R >>
endobj
-1448 0 obj
-<< /Filter /FlateDecode /Length 560 >>
+1464 0 obj
+<< /Filter /FlateDecode /Length 559 >>
stream
-x}Kk0E]jK0 I(:1IJEH:- >ωɯ?Ag[7ThdՔZE)[ה;5eu5ܚ\TcI uWn߯k p?sUVlLeͻя,㜛Z.*)mɦJˎVeLV@>Xew~Pu7ok'UWw49K۞݇q/˘TGxRԊM\h5\fm XlۢT]Oʛxf<?qhƯq2?Eg ӈ8-092#Rp ;%1"LA)2S@&=2DhӼ& z:&}+$/)`BLbGgwS$p7EA.# aѮ"}̓"w킞c pWODS pGϛR^\wU]6Mk=G׍Uw
+x}Ko0]8B 0nClHĉߏsJt@|9xsYsS]}m gۼFe]\+C{bom]Ufeg7\PR9l|Pl*7}~) ۪C_Lo̵ڮ 9懕Y]Y7-dTjҪhɲgQlSfl3oon;oJՖhrצ(^2N%Xie·ϚíQ,t`ᢖkB>+ofL)+_U$ _x6
+q:%092#0Eꦠ1$#zpQ#ztyb„dB{Ƥh Dp"^/!ZaLB_az#As
+?Lg.]"51XA4 ]E"E
+=M<A஀9#6pg)Agwwro}mVC S
endstream
endobj
389 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TDKKTE+LMRoman10-Italic /DescendantFonts [ 1449 0 R ] /ToUnicode 1448 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XLKCMU+LMRoman10-Italic /DescendantFonts [ 1465 0 R ] /ToUnicode 1464 0 R >>
endobj
-1449 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TDKKTE+LMRoman10-Italic /FontDescriptor 1445 0 R /W 1444 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1465 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XLKCMU+LMRoman10-Italic /FontDescriptor 1461 0 R /W 1460 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1450 0 obj
+1466 0 obj
[ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 61 [ 525 525 525 525 525 525 525 525 ] 70 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 95 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 252 [ 525 ] 494 [ 525 ] ]
endobj
-1452 0 obj
+1468 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc``_P>
endstream
endobj
-1453 0 obj
+1469 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7988 >>
stream
xڵzw\D *(;{l+vQ+
@@ -6576,10 +6676,10 @@ Sa{Sr 'Yl:+W'CWy7nsv!g*ǚ 9EЪ5o?ȭ+4 пBٔ
U+qz
endstream
endobj
-1451 0 obj
-<< /Type /FontDescriptor /FontName /MMJPSC+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1453 0 R /CIDSet 1452 0 R >>
+1467 0 obj
+<< /Type /FontDescriptor /FontName /MMJPSC+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1469 0 R /CIDSet 1468 0 R >>
endobj
-1454 0 obj
+1470 0 obj
<< /Filter /FlateDecode /Length 736 >>
stream
x}]k0+B{F,)!24e6̐v.'뜴0ZDtUo/]nxu]}js&ɹ^uq櫪oUNG/)>/Yc:۟6Soe?QQŨtmWսHnEU`E#K]Y-!x(G_͹qUh2#s9Fmڲڋ/29SܐGh:}G'Feϼ' ufv[]4ES1Yiqw@?8 忷P2Kf i(5E
@@ -6587,21 +6687,21 @@ x}]k0+B{F,)!24e6̐v.'뜴0ZDtUo/]nxu]}js
endstream
endobj
388 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MMJPSC+LMMono10-Regular /DescendantFonts [ 1455 0 R ] /ToUnicode 1454 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MMJPSC+LMMono10-Regular /DescendantFonts [ 1471 0 R ] /ToUnicode 1470 0 R >>
endobj
-1455 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MMJPSC+LMMono10-Regular /FontDescriptor 1451 0 R /W 1450 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1471 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MMJPSC+LMMono10-Regular /FontDescriptor 1467 0 R /W 1466 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1456 0 obj
+1472 0 obj
[ 28 [ 481 ] 35 [ 517 ] 43 [ 444 ] 47 [ 517 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 ] 59 [ 500 ] 63 [ 517 333 278 239 ] 68 [ 267 ] 70 [ 489 ] 72 [ 239 ] 75 [ 794 ] 77 [ 517 ] 81 [ 500 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 101 [ 500 ] 105 [ 361 500 500 ] 109 [ 517 ] 111 [ 667 461 ] 114 [ 683 ] 116 [ 461 ] 118 [ 461 ] 120 [ 435 ] 125 [ 536 536 ] ]
endobj
-1458 0 obj
+1474 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``T |5%aI6
endstream
endobj
-1459 0 obj
+1475 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2827 >>
stream
xuV TW1 h@%&RFgjk
@@ -6619,10 +6719,10 @@ m׫&IcT щqRm4T!MKUR:mZr껎u4CHNNUJӒbU:>A% iҥ5
ʊKJm)
endstream
endobj
-1457 0 obj
-<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1459 0 R /CIDSet 1458 0 R >>
+1473 0 obj
+<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1475 0 R /CIDSet 1474 0 R >>
endobj
-1460 0 obj
+1476 0 obj
<< /Filter /FlateDecode /Length 527 >>
stream
x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5YE <HuoDdm؇ ul+Uuw&yYR*uK}pK?—_?/¯Bt8 r{j[uGDf(senZ=sn,득 F^%Ke;+<b&>˓\ڎN+锍Lũ FZԁ ?hr69xeLޔ6'b#;Jh]>vf{iŎ#.kImS u`jL.+ Hɿv{I&>T.-iYP 4vĠ HRУg*<8sG9?|Oc3(@s%>AP&DL'M1FLhI|h,T' .?mzM,nO ~{6\<kmV]v+Eכԍ=
@@ -6630,181 +6730,167 @@ x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5Y
endstream
endobj
387 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1461 0 R ] /ToUnicode 1460 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1477 0 R ] /ToUnicode 1476 0 R >>
endobj
-1461 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1457 0 R /W 1456 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1477 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1473 0 R /W 1472 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1462 0 obj
+1478 0 obj
[388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 0 277.8 0 0 0 0 0 444.4 0 0 0 0 0 277.8 0 0 0 0 555.6 500 0 0 0 394.4 ]
endobj
-1463 0 obj
-[ 27 [ 750 500 778 ] 34 [ 708 556 500 ] 38 [ 500 500 ] 42 [ 722 444 278 278 764 556 ] 49 [ 681 444 500 ] 53 [ 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 ] 91 [ 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 199 [ 778 ] 234 [ 375 ] 251 [ 444 ] 280 [ 670 ] 283 [ 1000 500 ] 319 [ 556 556 ] 400 [ 778 ] 499 [ 472 472 ] 502 [ 278 ] ]
+1479 0 obj
+[ 27 [ 750 500 778 ] 34 [ 708 556 500 ] 38 [ 500 500 ] 42 [ 722 444 278 278 764 556 ] 49 [ 681 444 500 ] 53 [ 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 ] 91 [ 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 199 [ 778 ] 234 [ 375 ] 251 [ 444 ] 283 [ 1000 500 ] 319 [ 556 556 ] 400 [ 778 ] 499 [ 472 472 ] 502 [ 278 ] ]
endobj
-1465 0 obj
+1481 0 obj
<< /Filter /FlateDecode /Length 46 >>
stream
-xc``/߿
+xc``/߿
+
+
endstream
endobj
-1466 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8831 >>
-stream
-xڵz\W q {-{vMz/"eB]zYXڂ1%&}Kbb~o~X~9
-0++L  XnxcV w 4qWKå`np1ncpB{X ĕ>.pcj^1 w
-`oukǭ^hڍKƇEzغ{ %- w[# lWX4@l6 F`1Xl6M&cSitl6>>aBl[-Ŗa˱*l5[6`vFs6a[v s\0W s<0Oۅ`bAX0baX8EbQX4b8#``` U7BlVX${]<<ZkuoĵkQwbx8K~֍fcrzZlb{Mc %6ʾKFH$9|0q@5F],c쯶O|n=$hȓF :,cXc~w##t:j˨BXkݞLp)hwg&ŦJY׎9):F!Ma[Ǐ[8h!McVְG8Shkdr#bmuF}a[s
-a ?:jݮ4q\d䳐ĆG~(;f4oNZcڝj☾>v}2IlQ,Qى"\n9HC.tUK.~ˢONHHE?
-g1E&la
-7|Ms˩ߌ|~ݗ*1tZQ! )*k?q<$ !>}oZ1,쒶n23q438ȁzo60뮝9JsC "XH;l>ϗ=|j4Ե]z y_b`&✉ lݪ5Ɂ̰[$kؑ`MQ`Ouޱ-hl+<t P; WI5f3O]n=ԏW&zeR) ap7/Ym2hTj5G[DzZ7}[Z%7ʠ>Ziyr֚;%5\l гUˊVi%pOQϑh^'P)G\Hv<1_ѰϠx*82~>4UƖ
-& eײ]/\N| eFN(}1y"%V@Lp Z.NNV%$,{@ bI&:;)=x+ԾY; LL_:!H;7%JқB E䬸(n@
--'&::,t\e4 dh;񥆁J&7Nb=ML^rAq0V@bI^'IyE(hȥ󁶄 DH >ٺ
-rFnp: żKqQn~,HTeJf|xOzӔpqTeW몐Q_k0}>!U{d1^WОTVUU1_J
-Tp]qrŚar>M
-SxtbjGZ'@VL \Y
- 0 (f:Ih:\ @wesL…D.YMZ
-*/4NB)IHhn =IHZ /]r<L̺ݾnԢv[*MZ:Y_]ҁ҂b&IQD?vVCLCH)>&?tU1Ry4ڝU^ʠ|0IanTB]gd+w`D tt8,:jk8e΋B+0LpogQ<ɛ߹)(o1e&{=7WFXrš0o/u_|@QǾ}
-^<}v il<yٚU)ۡx]x]R%s?K*w;4zoq^}@+hn"L6Mj!h5gDLZ֯xَĄ712p΋%̮.,dbX,헛׿3 Kq뉦\p 瑋!{.Ԣh![%@c:4pL*% 3y
-<800:2xggt>*i0H,Or #ԉoL"^v@gNUiaTLBBR2ZI
-E׺OǨAt֙I5g$`}uKc ezS,"2\IIR2'5%j1/v@hԱE,io{0ƹ0p< ˻x~I\9ܼ1-2i*OrOHn U c1=KDNq^#Sk#^+>ț,;ȜA>,ϳף8ֶU„o(=h(Yqsgqlh4&PA`P]&C
-WP],ZxtWwsw<h(xK}e}OM~@H/& E%
- Ot_~-z e'<5z
-÷ݘ
-bbKDձ͋S0͔9!%Z]>n(p\{>LN6htV0i"3[Px$AգgΠ^̢t61P+-=!uӮ&2\
-<O F6L\<P*(N HgN.Px 5LN}-aKW+) \P jQ-"#@. D 2EW?-kB m g xeOh$2C}M ,Zx&qWmp_m0)<e_k={IIAbY,%xݍ־hӲoS?!}4Ad0an 7,mAo}^o95y0 3jvJsS$KCg lQ)6hMV(A+9iCҖø>*^˝c\-U˿R9ys70
-Ud|0XPḫ1Wj^-1y&8RٕϯWXqoF15yQO_ ?1iL dz:pR%TɌ^4xbwW$W'WzK||[zl⊪^J
-:$Gh$}:S.6v vH "npMQz4(9vSٌO{Kx~y9!:Oè< HE%cDB\
-cFp&ReiߋYDmv;(&G%EThHr𐪄Ͽd v|W+ùT0j&#]Z$'S<y@=UWŏ\t{ 2HΆ|+ni3/doxz<hPs8=qѕ><x Ю&_J(K?冔IG:tOHsHࣾwf. 81Wg6^p::E4`T ŋ(?;I-bL W_ȓGBv͋GS lм=@O̔  8(if>We?^/SyOz6n2 0 fl_mD'GPy[iyp ]XYlH(>w!yN 8L~iSC@^3-:F
-?bzz .gߞ~ _sp!ORWp-zÉpE"k/0yq-n*.NRZzÁٳX'[دa=R 8BD.1md:9vSp-zA!?u3B;ܮ'C17ģ'PThA~
-$j! 5Ϩ +-2 ΐ9ɐ=l6PLfhb.~vR3 "ڧEۅ~n`JTQI
-RƠUh#e@4k)"W_-|JOUTrr*PpV7+R-NJʰ
-1՛l
-_[^:USӝ~\UEIfGw\)Rsܢ2əgKW6kX؎h'UZUמZxVCjsxgqpvGY;F>~@V#NSIPؾ@ؾRpzyz!:eJ3e %ViRFPSC2.Mӣca1YkyZ<奵A㱩$ޠ4}?_P.Yw76~K>LQTSpi[f wn)!<JP* Hp6%CGe
-͖^hd?^"LQr W#RXNpƂTVg '$\#T|nge&rLrL6ٜTp9|>5Ua,}071B|JoҨxIeF\ "c̝34iT^^f!sx]1ZIvv6l_הfO&Qڋ_2ߌ3912*1qO!3F^(lxA4"Nlʏ2B%h<'¥R%F!K.f-$Ȑe"tj&D.9l&U*ALg#8 <KQ "W}xU4y+% F&]!* wl:~2.Oyq a۴Zȝc36)jZC"?Ou:/LHzoLNu @xݩ\̇d.U ̻vKpBbuAԛ(' D3&4~_Ҋ`D'ȷ*6- hl<v7%wSzsV naxWwiOIMnFOSAZ;l|Lߑv_o)^
-0o^|\kj^߾򄄻bHR*A,?>!qUc( عf\P-H?j7M&ǹ":NKܕTxvLa
-SI^5/K x7d[ia?3Z!D<FT=ȎSn<+O
-}Pw"MZȧ %*F)= 6~oK̶|s+tϬ
-Bb<:zX)tFӥ~
+1482 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8804 >>
+stream
+xڵz|חy4 30cw+"\WrmM $@JBB; O૙;;W
+֯۾r5&M39Rn07`7H1]8VZ=zXu,Da^{}8cn=`l
+! 1ބWox.MY&bCL#?D hldܶg-ݹ¿$"'n<qz[KC8RtӐK.fȅJt酼oYq aK-tƺ8[LMX`iRw#d$lJLh.~!cTHbjJڍvX9> GHOVPk vN_T?8wdOMsuWt框 Qq:CZK.p/]1{jh0tGqDW[ LyGd5)̰pkؙMq`ÖFuVޱd=xv|7k$a_݄ů\tS#d; OS&ԏ("Gm?7/Y}2hT4[D|Z?}3[Io5A}D;u, y5wRjGͫy+~HzDsvF2Jq?Zfv㉑hl{%LC.pIP6h(Btf9}!ؽpntCwG
+>>rP\=y=8Z$ 5-OKu:iҳws\\
+=Sp4Q+Unz1\rK`(72EEet4NNAˆ[)brqJ*11d#(
+&VM"rpTyŁZN,!LttX8U%(i6~vK W?*&/Nf=ML^rA5q0N 2@bɶmp˞ P6 /a4@G
+ln̻ 6׶m!FlvH,=wHh
+Lc;1EYOwg
+%>5;+'4LIZ
+ݯ7Zil 5*n"_SS3U_D]ŵ$KA&~Kz {>
+H:YTcl‡L i
+sxXԯ nkߨaͺukmэ/l14BkBrB<l*\ɒN.Z^Ò_$a<* SReWn
+;# nM
+"j޷v5d(8\r j M뵙z{wnME#o,~T@h(;1wq Nk [4/0[/ y%W̕3/YU|
+U?%v#+
+~r%Pǻ6k12 MInO<Eǒޣ0|ۍ.эQ8\ܛ[Ov(dI1[2Ou*g>@'4g+24ME.<&¥p%@fhA3&A0_~e1M{f#}GB=QH1+3̔xpG!1`Xz( 9
+ p a/؇-!'-Czf+ꒀ3z4ÕtN0߹j%ynڕDZ&@Y>yMA#ȆO
+£f5ulp>sj%%Q AN##AW#@dd1c!(D<Z"*geTRpUȕ͒=L8>w CF~P|yE$H|Cxߠµm<~WwZn/G;&x
+Zw=-Vfw<|ZVC*[Ţpndil4AB#*9-ɮ%#h%Gx# |[?_zHrGRWsS%jw
+: G>oi&CTFLKw9Jӫ%&8tgW >eõ+(aP_&Yک '4!LO炴bP*!ڈW4O 2xɅXxµʔ*qipxۢҎnf6R\V5U@Aǃh$b@>Cg0@;x.{Ѱg oFjsm@#aGșIa|j23śsRaI~FYE_,*AB<'&*wF7yVU/ n"jgD1
+.-ŌF4EbU4$}%n;-Ͽ_ٿΥiՀP5@0w&%ٜ ;Pl
+F%P KŸ~Ij-ƓY+5^>_Fw[/kLLغoC
+ǀ%x_̓]}RnkS>3|޺y>jSN9jjmOOJPnvdwx+BTbUr2NV)i(d6.. pt_x΋O5R A%qhZf=7ބKdsgל=\T FE^p"dΟzAAѤ; &Lt h s++@`j<K,ɶ9vkd|p(C) yLn.w#f4õ;\^hOD݌p#gnד@B(*d% kouΚgGLp{ÆHkPCHшRbe g`A6w~z (&h41Lc?;PuDyTM
+͖Zhd?^btqJ W#R8]Nxڂ]"*K3pQ2k
+*!<Iex;
+'3'kSr)Cu݅/oFX;HŐΙIeJYE?G f'6DEJerfRSxҨR%@N_dJ X~2TB{ tf"gC}`M6Ƀe &JT)SH#N.VtTE#(O|xct d=ntML EQIi(*
+"Z<]j>sy^p6rg`،MhϽ3@A@$a'v^<[8D:"d*& 2 <
+apynIHLn"hzYzs&hwkzq#BCvē6Je:{"sK57LA;;wb~5^0x 4u'|ݤy7"ҧ)
+}Pw"M<[ɧ ')*F
+Bb.<2fX)tFӥ~
endstream
endobj
-1464 0 obj
-<< /Type /FontDescriptor /FontName /HRDLGI+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1466 0 R /CIDSet 1465 0 R >>
+1480 0 obj
+<< /Type /FontDescriptor /FontName /PNUTZJ+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1482 0 R /CIDSet 1481 0 R >>
endobj
-1467 0 obj
-<< /Filter /FlateDecode /Length 760 >>
+1483 0 obj
+<< /Filter /FlateDecode /Length 758 >>
stream
-xڅ]o0+J%NT lHTnibX$HP>:MVUsNl7.wKb?ʹ)N{[w֖k+ۉ|1]U/bw*EGܾٟEi׵{K=m/ުnS)ܰlX~X5wq̛7y*雪.[^{$QVEG
-KO^/M :WǮ=_K[ڶ3hu:v q4n.ފO`QѪ;Ǥ$).l6(uxY+;׺ ɉ[(i4P% *PJ
- L@4J
-BwMBt bw9<c(@ЩIЙރ2 )t*KS1 @GD$d?ݑIPB
-*x$xPL&Q5S5 ɫkPA!E< K ;@uO/jH7PfHPagi(3$ ,Pbh*? ev2CB);@gJ-H7^Hא = =.4L4<$ {!q1LO{L? ^&
-4cY+=*5hH*P
-KqxgkxJyy9H pO{_p‹Sۺ;|Do窶̡9Y7|.KO/7
+xڅ]o0+J%T HLZ6Ma A!\g`VR>_ͧ޸lmOc[^G77Ӧ8l=Y[<zx/mSN颮n.Ҟg{n:KmKk[I{vb_ EXmUS?.c`Vy&QBE,}]eKkTUёboCgwzDáաkOAܖꍸHv q4Ү.ΊO`QѪ;}ŵhy[N hJ{د
+ۮꍍ.x$s3l]5} t.CůUJ&n8V(PHR(M13I$@Yҁd@SHk1ݹ u
+4GH&@ЩI)Aք?
+$tj=
+I(I𠐮M<hU;U& f
+!= Rv3$_Նn=̐,PfHXSCP& 4 @C!!])fK==@E!Ca/82$r#3y 3e)̮Or5WVBm4N(Tqxo O4I%rMA4f 7DriǶu7vl[Um/_}U7|_HO7.}7
endstream
endobj
385 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HRDLGI+LMRoman10-Regular /DescendantFonts [ 1468 0 R ] /ToUnicode 1467 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PNUTZJ+LMRoman10-Regular /DescendantFonts [ 1484 0 R ] /ToUnicode 1483 0 R >>
endobj
-1468 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HRDLGI+LMRoman10-Regular /FontDescriptor 1464 0 R /W 1463 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1484 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PNUTZJ+LMRoman10-Regular /FontDescriptor 1480 0 R /W 1479 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1469 0 obj
+1485 0 obj
[446.4 446.4 0 877 0 0 0 0 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
endobj
-1470 0 obj
+1486 0 obj
[500 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 0 0 0 0 0 750 758.5 714.7 827.9 0 0 0 0 439.6 0 0 680.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528.6 429.2 432.8 520.5 465.6 489.6 0 576.2 344.5 411.8 520.6 298.4 878 600.2 0 503.1 0 451.2 0 0 572.5 0 0 571.5 490.3 465 ]
endobj
-1471 0 obj
+1487 0 obj
[955.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533.6 588.2 0 0 0 880.8 ]
endobj
-1472 0 obj
+1488 0 obj
[1027.8 0 0 0 0 0 680.6 680.6 680.6 680.6 ]
endobj
-1473 0 obj
+1489 0 obj
[339.3 0 0 0 585.3 0 0 0 819.4 0 0 0 0 0 0 0 0 783.7 0 0 0 0 0 0 0 674.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 542 0 0 0 404.2 472.7 607.3 0 0 706.2 0 588.9 523.6 0 0 0 0 0 0 647.8 ]
endobj
-1474 0 obj
+1490 0 obj
[333.3 0 0 0 0 0 736.1 736.1 527.8 527.8 0 0 0 0 750 750 0 0 0 0 791.7 791.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 0 0 888.9 666.7 875 875 875 875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555.6 0 0 0 0 0 0 0 0 0 0 0 0 0 472.2 472.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666.7 666.7 450 450 450 450 ]
endobj
-1475 0 obj
-[ 27 [ 525 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 525 ] 62 [ 525 525 525 525 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 ] 84 [ 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 ] 109 [ 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] ]
+1491 0 obj
+[ 27 [ 525 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 525 ] 62 [ 525 525 525 525 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 ] 84 [ 525 525 525 525 525 525 ] 91 [ 525 ] 94 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 ] 109 [ 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] ]
endobj
-1477 0 obj
+1493 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
-xc``_
+xc``_
endstream
endobj
-1478 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7001 >>
-stream
-xڅz@SWJ\juWm".\8CFI#8a7(V*V6jZk='
-}pqo<9ekK QK7-^aZggy|Δ2uUXh(u hkv6Wl{/BeNQܡ8`pdo7on x
-u]tM˧TG/j_r-N7`CKSS%Vz#5zGE@MM&Q)Tj5zAͤfQRQ9<j>ZH-SK2jZE9Qk3ZOm6R)Wj Fm(wj/AyR^|(_ʏGST%T0BP*
-!N$?.ٝT cfH `JN^E'ED ف9?4nPΠ5k{8g}{[Mxf s>|;>,J1eDY<i3e䇣KF3tLܘc:Zv8 Y5׾z=
-r8/NA=pZja1tQlnQC_{!JWL>:X* N"Q ~XlSUnx}ň&3:4!I/na0R
-
-8
->I?~񧎖`B.;:4'f&Ϲ{2Dx~ţ
- R9dqyǺh_G
-#ftxdB*83S6^蔚6
-׍.
-5$'G|mg=TxNf`Fp,37k!4*䛱 Jm;¤xH 1 N_!ibR P\͖֒|< ֘ǪM>T^J ԧd.eq.lnC J1V*Z{;;-ИT[gh7`ɸAaۙf9x M4Xa'zNZ/[
-ګg&ty<r+xbݒj MûM'|iU@ X9q~+Bk`6KBCsuB_$W]#InWUh
-mb]RxZ-
-/k,5/6
->7\pŠYx } ZѣȓFAoY$gxsx4`)93Z͙)֊7I<.S{VmaͤIx8'COD񎒃I-
-G^xf3sX#ݧs#~_\\;K<hPB{D8!QDVfY`TDok.hX-t/՞gfJkCC"KOB1HhiuEE7~%űh)ϭ`[
-~r^m500CJRb0'ǃ_'Hzq5cp.}Gv-ʲFpbB ̫R˅]kKǯK a笸|$t
-[yf"ݣg`&:lvq_NrNu}xn\!) n $=w9粎Gܻ#hp搗Q^P}q6Om
-"QaoPh9srx EC#PUDVe51:|eBz}>
-}![UVZM)0۶wtuut>
-~<hk>r:tӏ
-%=XxB|Q+) yaޫI\xI֓I)HC"
-6оq8n=^0&NhkmqBnt9>a#ף*{}ڲ#DʜkktLzvp#ۘ]]BBXu;z|{7]mxMif5$-NT 87'peUA䋆pNmL$|@jyA3"]PoM喗f+7TKݐ#f/<
-qT? IRd+5xCY,dA:"$SJ<L I?XktBSo]A FS&T.3(Sw M>z?[p`I3 CKH(JUUA
-MXF,7ٰqۂy[\[J@:E%79*1YQ 9T;
-rFk+Q8Y WlnqJ컪\y.hZ\b#һy`ؔ L-} w\,Yr˟\qyE FdOXF<y~CoFiT@rOgXNjbWWi3D}U,7pyT2{: ɳA.aѱ;![hna2uY
-J+]ݿ_$?f\ضy٢O9M"~`Šƒ
-gDd:Jb,*]@HrZtljk^?Qڏؠկ ت{3gn7$
-1ͺÝy>١KJŻ|v~5$*KR{wgFZZ]קXp ޹1ܑ=w"I#XIeM6?VM=<s`W#)e└r_i *+s
- cio}جgTnQt4)gMHƔ"ymoMS<fGD"晪c@l`Rtvek O%R\Ҁ I<+.h@y<uj-3+*̪rͭ0r?c.*Q}S@秔jI0O.$|QpILeeޣ#<0nȪ'+
-pKTaW5~ByDۖ~d|o~}m<Y>ALM}-vVgI-Bj;VVT$%f#doG{xp);^R̵HLG_-߶vwR2s`jjUh**7hoZf,I',G͊Pj dJvhO0 q{ l#?)-ig%fpJ՞f?7zw>B}||<b_nf!Tc&I@?to6iI1~ `C@U8r5ށ Y^KޭH{<" C3FA)%4(0
-U[ۢ'z\ߒP;5jr'S -lm%<!/DU
->A}BQX
-:LxF&` ΋Ό*%g;D~͙"eqQ L
-2df#eu9IuА P5OԞA!Ye$䆳0g]| ’zefUJr4X(so[sDȈ:6
-w
-.V]zAK^ NP 1¬3֍G- "b@IXx8Ah[M〽U[S5'_9Ki8mf7 62 >Tk0JRڪR2S 9]h7;
+1494 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7046 >>
+stream
+xڅz@SWJznj׺QD@2HB# {(.*mkhmm'
+}Hp87󜫀K7o]<e"@1o&ooM~?V<gˬ6<ꪍuV|eп±%JG6_f x
+KgXk"\PZ]ܔy
+՗6pxA2m$fuw. YS[jbb0] $-a^~ɭE+lc `@vhXŏcZ05RU_̩Y٭=)}%۫7n2ms"W.V.<u@z8{V79Rz.Z.weEcG7҅&CL@ #x"Gz
+/HK
+-Q#0\=mC ~\nc\<7xR"X߯_ǴntـH1h/νa
+.SxL/_%JUlhH:.=Nġ/X% וeEUm#}3M
+}TxN`燍|3<UfjChT*7aA ZwH
+cA2Ϸ.%C$7t%0uק@sJr5[ZK/# :2t<Zc6FP{m*YB WML^JS!py/t1xT2 Vi܅Fiw5<Ƥ:}g%K 4+`$_h ZLmtq>kEu
+$`*"r4QPa{WﭺLhWRΖ'S:OZ]l1[W^^wg܉nllIh(z"" Z$$VsފiTz6)Ꚛ/l`Yd~e.xvYlSA&T-LK
+MH#B˚9Mk /(x,u1hλh2{_Vh%/rѨGM4 o620|K#,b+R.2ӮՔRz/9e-,2$xɈ:Qr E~0( s\F{UN>6\}z)Q03 ? _h.\5ɵsCKKZv%₥~5Y>uA*ÁS/h X#t-8+/Ź.?1EáN^ݸǠ̇y.*
+]?aιpa
+^ζKZ\:Z,ԟM:+ɳWW)jBQ7IW$N&05WWOҡGBЅ "(` yHr)_
+ݽ2;((yC>%j\ZbD}>89 D0@iFFn68xuV9sZܡ\}jjOKjCW !deZ/ nH>#N ,E?ӭq9 JH B]LGH?ޱ_YӷP_H4E mqe4҆˧.- FO#D|&?4mQI
+<ove= |KU.<60PB VM͑ݏ[x=
+٪jRLqvuݶ͵̙Wg^vștM?A>ggQZ/u͌
+HL(VV*!Zګ_|͙g *2[k |izz%FM^z{<g^'0
+^#j6Sn#95QQn ~cR脆ئ{2!Vn6r=ݧ͋!=r^ =FGg6ٵܧYngT}oƸL7MoH:٬DŊ*!άz_\`
+j0؝6d
+
+PjCw5;!DHV0sfml5zp[W[7o)ٚu"獨hAYt4;``%G+CGf5\Ī4+OpgOLACg콦h.o\(k}L;æX8m=hXżl2O_Ofm@eē7f,>6I8]T[tOGhڼUg,Q_ +dڬ#^FeB`TFKXtN?odHFVZl[L]!n8hyd8+#3'OPT8CY+k
+^
+w~Xer/P3]|@V ύI9G0xK8^/O2\xxMW
+J+]ݿVHmÊ%Μ=M~`BB1c09!)A' . *
+fgVTU O_,_aՎЫݤa7)\RTx
+姓G'Eć*w!! cNj o$]uɄpEYQP:e|VlFAb4HVB\VZdBpnOj(L3`B
+AF>};+YW_!r+Ckj*ks@]f7{)<ДIbd-)|$ƣ/Vn[駼Դk5ڊ@:gp4%6]WxLCF` }~\S%n;xR4xgx $ܛcOkK+3c%jϰ_w}cNa\|||i
+Ve5 Y
endstream
endobj
-1476 0 obj
-<< /Type /FontDescriptor /FontName /BMSACQ+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1478 0 R /CIDSet 1477 0 R >>
+1492 0 obj
+<< /Type /FontDescriptor /FontName /DATWKU+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1494 0 R /CIDSet 1493 0 R >>
endobj
-1479 0 obj
-<< /Filter /FlateDecode /Length 692 >>
+1495 0 obj
+<< /Filter /FlateDecode /Length 696 >>
stream
-x}OO0BرUJRkH%~Uw@}|{[ǓX'ݶթm<[mf^姣u݋-.xk|m;q;[Η^v]4}m+ُ֓jU1~aI~ (/PmڲrObx$ó+fձFJ]銆:ŶW SQyG
-?ϩ?>=.ݮF#1˶kA]4xm
-۔n/nK[֧>^HXv+|^6G+eW|k+Cͫ¶&m4$c1Zqd]zSoj.KMN}$QqY MJ59P(M6 Q%$QPeҁd@svrĵ :H<h<H*@ I:"Q#M#
-4 5WPjM=UZ(܃& ՚yfiDƬ=5:ET!26蠡jh4_hܘ2TGA5ҕʐ?&;MdnDGitgy4x!5ci~~4~慱&[?Jg?'s]FKOH
+x}Oo0Cb.BP$K[ϕ&I~mJ"WL׫//xZo6x]}jsV&h^u-˪oeN|ӃݗG\ox>=ZU=_tضqm6wpEmWս&IXuр"zWVEKͫ(ʼ'r箷eX \s| ¶eןKt[֧9X/G$d"
+s]>Oۣ}Yղ?##scExy]خV{]D3lU6\~5R{BW(IphHR z =JMACTI@)(I$)Tt
+?a_xz^D
endstream
endobj
378 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BMSACQ+LMMono9-Regular /DescendantFonts [ 1480 0 R ] /ToUnicode 1479 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DATWKU+LMMono9-Regular /DescendantFonts [ 1496 0 R ] /ToUnicode 1495 0 R >>
endobj
-1480 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BMSACQ+LMMono9-Regular /FontDescriptor 1476 0 R /W 1475 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1496 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DATWKU+LMMono9-Regular /FontDescriptor 1492 0 R /W 1491 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1481 0 obj
+1497 0 obj
[ 28 [ 494 ] 43 [ 457 ] 50 [ 457 ] 63 [ 531 ] 66 [ 245 ] 75 [ 816 ] 77 [ 531 ] 96 [ 351 ] 98 [ 394 ] 105 [ 371 ] 116 [ 474 ] 118 [ 474 ] ]
endobj
-1483 0 obj
+1499 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Ta`X
endstream
endobj
-1484 0 obj
+1500 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1234 >>
stream
xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc1Iej=b//{#@h( br,Cn|Vv)OXY+&>j4MЬĆHCdZqc1ɩ
@@ -6814,10 +6900,10 @@ xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc
7bdxo;ts:<0n${z;[ZhoG6z|t?J
endstream
endobj
-1482 0 obj
-<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1484 0 R /CIDSet 1483 0 R >>
+1498 0 obj
+<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1500 0 R /CIDSet 1499 0 R >>
endobj
-1485 0 obj
+1501 0 obj
<< /Filter /FlateDecode /Length 419 >>
stream
x}N0~âRY8)UH@+R!}ڱؑ, H3rrn{t-?1pxtV`|-k6*D9DZ#
@@ -6828,21 +6914,21 @@ u0=z0a6 4
endstream
endobj
377 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1486 0 R ] /ToUnicode 1485 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1502 0 R ] /ToUnicode 1501 0 R >>
endobj
-1486 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1482 0 R /W 1481 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1502 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1498 0 R /W 1497 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1487 0 obj
+1503 0 obj
[ 28 [ 514 ] 35 [ 571 ] 43 [ 457 ] 45 [ 286 ] 47 [ 571 ] 50 [ 457 ] 55 [ 314 ] 59 [ 514 ] 63 [ 571 343 ] 66 [ 286 ] 70 [ 542 642 286 ] 75 [ 856 ] 77 [ 571 ] 81 [ 514 ] 84 [ 571 ] 88 [ 286 ] 96 [ 402 ] 98 [ 405 ] 104 [ 742 400 ] 109 [ 571 ] 112 [ 542 ] 114 [ 742 771 542 ] ]
endobj
-1489 0 obj
+1505 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``U\<ţa
endstream
endobj
-1490 0 obj
+1506 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3281 >>
stream
xڕW XgA QwFgVRWk齲J*V "$p *HѺڧ9Y>L}ϙ'{{`>>@ X{s=Oo޲C%ˎ
@@ -6860,31 +6946,31 @@ BD/נּA[D?S/Ioh |Gf?cr=1r\g[QF2ӻ^%^MÛn
d)&#Y/L1󲵝cLۅ~>v$)YgBX >{]@s@6%?0VS|PYAozů{L:׋$5'R`;HYMǘ$ m۳Ôv750`6 Nc376A~{':TAJi>('txG/3ޗܘ`}k{tl*2`.gnY{\6:[S69{
endstream
endobj
-1488 0 obj
-<< /Type /FontDescriptor /FontName /WLTFCY+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1490 0 R /CIDSet 1489 0 R >>
+1504 0 obj
+<< /Type /FontDescriptor /FontName /WLTFCY+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1506 0 R /CIDSet 1505 0 R >>
endobj
-1491 0 obj
+1507 0 obj
<< /Filter /FlateDecode /Length 492 >>
stream
x}[@&cĐ8&$s<"]$ҐݧI&hSɷ]4GkU7lrIDٻj=l\VNeyYNZӹ)~/.䃿p)Mա/:LGٍ(2?HuU#Yp9<I5f%OYeGc B&wdZ)_\ob3ݹzuٛ*yfu~h ?{i>ע&63BGz>kזXh9ԵEIgVxV[I=Kx1\OPi! 5A!h 6 E,4A PAN%Csr*A3Bh#gdiRAP KcxI0{m%=q*=q*=.0{,Sܐsf/?vҋcnًJ~Mk׾Kjmʾ)T
endstream
endobj
376 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WLTFCY+LMRoman9-Regular /DescendantFonts [ 1492 0 R ] /ToUnicode 1491 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WLTFCY+LMRoman9-Regular /DescendantFonts [ 1508 0 R ] /ToUnicode 1507 0 R >>
endobj
-1492 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WLTFCY+LMRoman9-Regular /FontDescriptor 1488 0 R /W 1487 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1508 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WLTFCY+LMRoman9-Regular /FontDescriptor 1504 0 R /W 1503 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1493 0 obj
+1509 0 obj
[ 27 [ 893 575 ] 35 [ 657 ] 43 [ 526 ] 96 [ 488 ] 98 [ 467 ] 105 [ 460 ] ]
endobj
-1495 0 obj
+1511 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc```
endstream
endobj
-1496 0 obj
+1512 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1258 >>
stream
xmTmLSW~"]^Gd-DeNNM)R*]mXAQc`lR>TmM [21 ?̖,f{em̖,9=9xiJ*hen(Hγdmo[M ˰)q)-rQ"/J"dZ)}qLKeK)nSO 21w+(&) POh  kګ=҅Vy-4W* 2L(Ӏ (ZJ FkW8jTPiq"Q«C
@@ -6892,32 +6978,32 @@ F`B56@Jm{7
jг{qU 9L*6bӈ<|Hn;`}]{Xn_M3&b-|,#c|)̺nЬ!0d*veX?`=D~M_Ͻ}Z[b# eɶ
endstream
endobj
-1494 0 obj
-<< /Type /FontDescriptor /FontName /RMWBFT+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1496 0 R /CIDSet 1495 0 R >>
+1510 0 obj
+<< /Type /FontDescriptor /FontName /RMWBFT+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1512 0 R /CIDSet 1511 0 R >>
endobj
-1497 0 obj
+1513 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
x}RMk@ﯘ=lTEVT+^.ݰIQ(@B^ޛf{WNXV3 Vۼ"ZD9׊*]R4#N%;sQg!;~WɂAڒL4#Ggk!|x|J&BHodh\ܓfCx,SY(\Bx0d; 樅<CA#8UuAk(cXf/DmV4קٵB9yLqħ1,7 JTxhcOm(1}(DC+<ء)uh9#q=~e]U7Z:y6x?JU͢ 
endstream
endobj
375 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMWBFT+LMRoman9-Bold /DescendantFonts [ 1498 0 R ] /ToUnicode 1497 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMWBFT+LMRoman9-Bold /DescendantFonts [ 1514 0 R ] /ToUnicode 1513 0 R >>
endobj
-1498 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMWBFT+LMRoman9-Bold /FontDescriptor 1494 0 R /W 1493 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1514 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMWBFT+LMRoman9-Bold /FontDescriptor 1510 0 R /W 1509 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1499 0 obj
+1515 0 obj
[ 28 [ 515 ] 33 [ 515 ] 47 [ 515 ] 55 [ 515 ] 59 [ 515 ] 66 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 105 [ 515 ] 114 [ 515 ] 118 [ 515 ] ]
endobj
-1501 0 obj
+1517 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``p`dP`hhpP
D)
endstream
endobj
-1502 0 obj
+1518 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1845 >>
stream
xuV}TW!@5ʚiZ3K- _EAE%1LBD<u
@@ -6932,74 +7018,83 @@ oRWɧ<| ƠP"{nPq%e}Gܮ(WȗN)QuoYUO&Pn^
g48ԂE>*`zK@E%1άxh@,+&p_(N(/?=u0ݕLDB0O>`R Fon0km(V׮Җ ֐F"3DgϷ^?@%xSEV!6¶M:GӞ`x#qNf4e'_%#l|ZQuJeq?HR@8(fu\o!du8iw6s;YpoۚiPH&Ng y[j;rgRsJcOt~w@[fk9RM
endstream
endobj
-1500 0 obj
-<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1502 0 R /CIDSet 1501 0 R >>
+1516 0 obj
+<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1518 0 R /CIDSet 1517 0 R >>
endobj
-1503 0 obj
+1519 0 obj
<< /Filter /FlateDecode /Length 428 >>
stream
x}]O0+`Dpf!q%Df,[֞&%.m{&F%pk z:=A[2,5P3
endstream
endobj
374 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1504 0 R ] /ToUnicode 1503 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1520 0 R ] /ToUnicode 1519 0 R >>
endobj
-1504 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1500 0 R /W 1499 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1520 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1516 0 R /W 1515 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1505 0 obj
-[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 503 ] 75 [ 816 ] 77 [ 544 490 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
+1521 0 obj
+[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 75 [ 816 ] 77 [ 544 490 ] 80 [ 762 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
endobj
-1507 0 obj
+1523 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
-xc``U4hX
+xc``UTѰ ˁ4
endstream
endobj
-1508 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3569 >>
-stream
-xڭX X皞˘VgLX7;mEjU]$ȅp 'o!$$\Pwbػx\]cٝ9{gwyf}xݰu뼐͊(E2MB}s 3Hf¼cH3O6؋sl9{x@3+xAx߸w^U^3I^37^CDwȟy(o"χ=,XHJSԒE ,>! 򓬏PUDc$$~0V%ҸX"V..ѨJDThTs$q*V<(Ji4J%h1RD'.Y%!rT+RIZ_)2Xn?$95}C?uZPJbY/a
-ebTªEt]TW!6 -2EE2$
-\Qe!gg30קu\ %XSVFœsa)@~Tօv bK?$ hBQ*ݟlI9AqQlXldW h{ņSlL #.^0g \SOD$Fa/p3cXKolpXYΎ-N9P
-{ eWQ m&Քy&9ɡi*+)%,
-!\X~J_Hy
-CӓHyjbv
-<jvU:  26^^nyA-=ͤU>!nCXBy|Z>2a3v.w(A[CUAwKOQBl$%
-
-2UoEzmqFY]ʧZrJV{6ft:KWT"l߀u"^eKIHlRuS.kokuVa֛l9ԅKhjFUN%fggڬVky|gnS8/NwˬVuxꈢ3Ydꬄ;/w]|Ǽ`e5:uwbG$*ׁ'BEeSHO&&8
--Zzk\-VKiIR\Z594+
+1524 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3556 >>
+stream
+xڭX XgVhj3Q&1E@nj9h覻
+P cnqMp8f0Ie~-t&fwgfwz{߯Ka`ڪ[mجP.XYEnfp
+pww{ .RD/ca+3.t4`*]3
+Zͯ=[{{ooyGEԲ(6"6N_BJ*J)_%Wjc)M~ż1_l!^V`zlm¶`!v,bX<Œ@ So ƌ% +D
+Zƽ2< {\߉+@I"|? &<]nҤ[<؃I4'0rpI4p?H/5Fa
+WwYhY olׂ`Õ8)$ anuD, ?Éd9;'8AQ
+GYQ(}'+BvP1-A('a$NKUxeEe9!;<tB NV|z.4>
+^v΃龐b2A>e> -DS46^x<$:* B$L%&umUe%tQ
+ wsD|3:~nepKMth";DU­V:1 gaiLu*0p޳mssyyf/m1b '`zMBE3d4{/(O@lS([ ߵR? .ӿ!N89w &BIAiQV4
+J ,] WcN'M/C4|Q g[ +_QrYج@o 7=G쮷 }FRh%ni[j] U[P"<W^kέMl%Ks55|L4ix/"Rv 1di4D!Rºx9iP[j/+0_kY)2$@z_lO|Ĕ 1ۢhW|LZN͝ѕ MfFz2ԩ.ϣܣF
+Vmݣ]K-ٷ.IK)̰ p.^jLob G=F4\އusÉKh*rkzӀ.a{(m5$]BSfo1W(9^{}kҘPg%Mod
+~>s4'fv繯z$t4|
+AзL珃n\v_;Ҝ̓\_B/S֕:vPȫ<1D[|G_
+aPEP+Zu|Sh=P-뽶1<xt1#m Kɹt  ыuϴb>r ((RʬkhimVV%6Xk:SN#HHwdWЊҵՒR{d=((2PDU#n%Yd]vWzBkC2ALw ӡ:s2BfM~^bKѩpEkwuM &OeMS@^eIa.):PO=:w/<,I=9t'K<@Fix` [1w~DAb$\{ڡ >o&r T'O5dIs6x
+mQB_%!>& KEڎd*
+';V.ݹjz$IzψJNOь ė^zީ4 o
+Hz 1RLz;K};2ڴZZ4
+ڀ0ҫ̿k5#93.L ˃j;`E&/㒃clPd>&uWgۏQݗKLff ?\JPuF Pڠ/N6ktVM4 X$mW[jcm`0f1*FBX/_ LI)9MLn
+%1͒L@3 l|+ih4N3Π͔ħ@fY*pkPæ28a+Z^0\ 4Uc`k0Ca\7w½ vHy[桥5OuAcdr2OUI.*bz]Hx>08^hṧ[lZJK,bI)#w R
endstream
endobj
-1506 0 obj
-<< /Type /FontDescriptor /FontName /QXGKVV+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1508 0 R /CIDSet 1507 0 R >>
+1522 0 obj
+<< /Type /FontDescriptor /FontName /AXNUBV+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1524 0 R /CIDSet 1523 0 R >>
endobj
-1509 0 obj
-<< /Filter /FlateDecode /Length 505 >>
+1525 0 obj
+<< /Filter /FlateDecode /Length 506 >>
stream
-xڅK0YdpHfF(
-( 4_h$DNq**(u||3g:=rTN5`Y]I}#$h>TefE72t'\ȯ3 pn2Ao]2sS/ڋNO&av/l 94lFS!rjh"o߼nݵiSMl'MV7zWT!lxONuu}!#q/M}zJb#Fh^ZUB$畠rR<76Mz$_q g4
-q
-#P"R
-P7 [eAcK']b%1ΐ 1D.Z8 8Q_(K>7]0NWgo\bRzj1;SHm]զ~kӿņ9c/
+xڅOo0=8
+E⯄U!Hĉ_Pih@1ofǓ]8䑳-u
+oy +R݆HFWbG׋*#^K-ѩTۇ N6fϷm]*-sCnew6( {a
+}nZsnX*9+{6ylt~,-;XA3Y'[TfZ6ywi;X e޵$]3iDid 1dt4͜6yEld'&ZvN_bZR\(1MV_qh*~iYP Q<;Jb(u4NA1O/;hkrt Z&OWJO88;q>LQE`)L"ΐYp&0 ;Ds)$}fq&q^N3ܞ-{vkoUZr6LM,u-
+
endstream
endobj
373 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QXGKVV+LMRoman12-Regular /DescendantFonts [ 1510 0 R ] /ToUnicode 1509 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /AXNUBV+LMRoman12-Regular /DescendantFonts [ 1526 0 R ] /ToUnicode 1525 0 R >>
endobj
-1510 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QXGKVV+LMRoman12-Regular /FontDescriptor 1506 0 R /W 1505 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1526 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /AXNUBV+LMRoman12-Regular /FontDescriptor 1522 0 R /W 1521 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1511 0 obj
+1527 0 obj
[ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 66 [ 223 ] 75 [ 745 ] 77 [ 484 ] 96 [ 320 ] 105 [ 340 ] 116 [ 432 ] ]
endobj
-1513 0 obj
+1529 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Pa`hp
endstream
endobj
-1514 0 obj
+1530 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1024 >>
stream
xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(H$!%1?gw1&{&Kz@DVCU弪zOHVhAʕJnfl
@@ -7009,10 +7104,10 @@ xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(
CoV< }>q%N鉴4=Z^d
endstream
endobj
-1512 0 obj
-<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1514 0 R /CIDSet 1513 0 R >>
+1528 0 obj
+<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1530 0 R /CIDSet 1529 0 R >>
endobj
-1515 0 obj
+1531 0 obj
<< /Filter /FlateDecode /Length 404 >>
stream
x}]K0+6s2
@@ -7021,21 +7116,21 @@ nU(MKf`MJ^ߛv8 xzޓyK<p`|Mkj`*֖(5"GW{xъp
endstream
endobj
372 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1516 0 R ] /ToUnicode 1515 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1532 0 R ] /ToUnicode 1531 0 R >>
endobj
-1516 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1512 0 R /W 1511 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1532 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1528 0 R /W 1527 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1517 0 obj
+1533 0 obj
[ 28 [ 459 ] 35 [ 511 ] 43 [ 406 ] 50 [ 406 ] 55 [ 276 ] 59 [ 459 ] 63 [ 511 ] 66 [ 250 ] 70 [ 485 ] 72 [ 250 ] 75 [ 772 ] 77 [ 511 ] 81 [ 459 ] 84 [ 511 ] 91 [ 485 ] 96 [ 354 511 359 ] 104 [ 668 354 ] 108 [ 693 511 ] 114 [ 668 ] 126 [ 499 ] ]
endobj
-1519 0 obj
+1535 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``PT!
endstream
endobj
-1520 0 obj
+1536 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2974 >>
stream
xڕW TW cKCk룮mu"QD!@$@ !hA DCZPRQrd}j_֭n;=;ֶsrn;?xz"i􊈈US#"d鳂)R}s1=~~CQ4AL)_χLq_B9xy pO|; p ?"⠜1>G[3CCg.ei)9#4iq \*JJ驤(3\LFdjv6 ebHm$cklX$S,+d$UIetVbRLfg&J"&!2UdDj8S)&HR)*knH*;%XH (C#F˗E-\,zQ*WEn)dJ*U*_&";ɲDqX8S 52BDB wp$Y D$"$"`e/M'b D!mg n5jWчQM}
@@ -7049,10 +7144,10 @@ Yfi^="s[o\*+3
(<4F;qy;}L&Sl.tVX̥%fZ;g)}
endstream
endobj
-1518 0 obj
-<< /Type /FontDescriptor /FontName /JSPLLU+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1520 0 R /CIDSet 1519 0 R >>
+1534 0 obj
+<< /Type /FontDescriptor /FontName /JSPLLU+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1536 0 R /CIDSet 1535 0 R >>
endobj
-1521 0 obj
+1537 0 obj
<< /Filter /FlateDecode /Length 474 >>
stream
xڅn0y
@@ -7061,12 +7156,12 @@ xڅn0y
endstream
endobj
371 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JSPLLU+LMRoman17-Regular /DescendantFonts [ 1522 0 R ] /ToUnicode 1521 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JSPLLU+LMRoman17-Regular /DescendantFonts [ 1538 0 R ] /ToUnicode 1537 0 R >>
endobj
-1522 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JSPLLU+LMRoman17-Regular /FontDescriptor 1518 0 R /W 1517 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1538 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JSPLLU+LMRoman17-Regular /FontDescriptor 1534 0 R /W 1533 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1524 0 obj
+1540 0 obj
<< /Length1 1484 /Length2 8131 /Length3 0 /Filter /FlateDecode /Length 9124 >>
stream
xڍTm6NHt,) ] .²tJH#]J4" HwwS9w3sM\LtZ2`Di
@@ -7108,10 +7203,10 @@ Mt%ŕTMHtwX:n҅O| ҙi,l59k#E~L.pz/'w/
*2;nYK/G-^䙗;%{F!zd[
endstream
endobj
-1523 0 obj
-<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1524 0 R >>
+1539 0 obj
+<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1540 0 R >>
endobj
-1526 0 obj
+1542 0 obj
<< /Length1 2319 /Length2 9802 /Length3 0 /Filter /FlateDecode /Length 11051 >>
stream
xڍTZ6Lt# 1t*]Jw
@@ -7163,10 +7258,10 @@ l1(fP@weKg}PYۈE[n(#3%[$Bf~΍Nd\zmM0 Y],9Ca0- ub
3H vrH
endstream
endobj
-1525 0 obj
-<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1526 0 R >>
+1541 0 obj
+<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1542 0 R >>
endobj
-1528 0 obj
+1544 0 obj
<< /Length1 1396 /Length2 5867 /Length3 0 /Filter /FlateDecode /Length 6812 >>
stream
xڍTTTk&FPAf@II)!f`:% @B$$DSCR@R@i$;9޵]֞=<]@P"T( X$ TV1
@@ -7199,10 +7294,10 @@ mNվ˘jB5̞cvqc~O\Y)O
ݟ~wb@ ݤmπnsA6&wSlYD]+"@?|9mo]fjǾ{sŸܦ}}rIRBR+譜yScC>gamʁt!eU p/k UQSb3Z Wзo.uY&h) @X`0rEC:s,17v TN
endstream
endobj
-1527 0 obj
-<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1528 0 R >>
+1543 0 obj
+<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1544 0 R >>
endobj
-1530 0 obj
+1546 0 obj
<< /Length1 1830 /Length2 11276 /Length3 0 /Filter /FlateDecode /Length 12424 >>
stream
xڍT[-kqS'-- @ )V-VSHhq>zsɞ׷;&9,q
@@ -7245,10 +7340,10 @@ t둭Jc_WP5jbep/wUd22>3}֟Bn9MmGvX-i1@?BDVlt[~_
|UƶO3n0&hWA:fBh;2bVF:u(o7Ȕ?xs4ŹNgX%%F}J34G_1˵-{
endstream
endobj
-1529 0 obj
-<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1530 0 R >>
+1545 0 obj
+<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1546 0 R >>
endobj
-1532 0 obj
+1548 0 obj
<< /Length1 1415 /Length2 6063 /Length3 0 /Filter /FlateDecode /Length 7021 >>
stream
xڍuTk-Xh
@@ -7278,10 +7373,10 @@ OB+F|72{ .2xcZrL_7-_5Km-܁CEMXo]Y1nfɫt/
bUyLq@jƚm#<՗aVY G<^P4~0-)gV2+ \]"X,p aqה-TW'qY'D#_Ē_w"9FuKK
endstream
endobj
-1531 0 obj
-<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1532 0 R >>
+1547 0 obj
+<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1548 0 R >>
endobj
-1534 0 obj
+1550 0 obj
<< /Length1 1451 /Length2 6812 /Length3 0 /Filter /FlateDecode /Length 7785 >>
stream
xڍtTk.)]D`A!ASIiICFwZY羞^Fzm=N[5XspEr*
@@ -7315,10 +7410,10 @@ y[f!i;7W%mIJ ﭓ71v(oT(}6u4/^%O8Ϩu(6g
a e|L1iR]ez[
endstream
endobj
-1533 0 obj
-<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1534 0 R >>
+1549 0 obj
+<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1550 0 R >>
endobj
-1536 0 obj
+1552 0 obj
<< /Length1 1589 /Length2 8523 /Length3 0 /Filter /FlateDecode /Length 9572 >>
stream
xڍTT.LCH "! 0PC!%)-!!%%ֺwZgγ}}jb&6FiPPx`c`accGաp+ȟft&jW= Iq
@@ -7362,10 +7457,10 @@ Sziq`Rky5zX-
_G)JxУ<g|eBy"7t*<
endstream
endobj
-1535 0 obj
-<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1536 0 R >>
+1551 0 obj
+<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1552 0 R >>
endobj
-1538 0 obj
+1554 0 obj
<< /Length1 1438 /Length2 6548 /Length3 0 /Filter /FlateDecode /Length 7523 >>
stream
xڍt4kׯ"ZD0zF5`0!z[H$DDoD#Ir{޻ֽkϳ=6f]>y{-LA
@@ -7402,10 +7497,10 @@ wt/ְj@884}?em\9P?{6jx)*NaqIuoŀ31&
*INS+$3z t$x g6./)~s_2oϒlAS"F!XzP%i3UsLWsOLۈklm܏f(]zj Y2
endstream
endobj
-1537 0 obj
-<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1538 0 R >>
+1553 0 obj
+<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1554 0 R >>
endobj
-1540 0 obj
+1556 0 obj
<< /Length1 1744 /Length2 11235 /Length3 0 /Filter /FlateDecode /Length 12356 >>
stream
xڍP.k;wwwwwg!0 w@pBpw
@@ -7452,10 +7547,10 @@ ttoΎфtč!e웩I]8NG'
o獧{{m1` 8>`9X;;FVqvt$3CY(n3@}"ZWkgcQ͞*EkFY<lc ?v0.+Q2SbMXw`Pi.zN o| Ի)n9`VOi{40ơ
endstream
endobj
-1539 0 obj
-<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1540 0 R >>
+1555 0 obj
+<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1556 0 R >>
endobj
-1542 0 obj
+1558 0 obj
<< /Length1 1447 /Length2 6556 /Length3 0 /Filter /FlateDecode /Length 7538 >>
stream
xڍVT\%Kph%CbfI%iP@@$nQJ.7zoZ3{kؙu a '<
@@ -7490,10 +7585,10 @@ eO:[1bo_9ͣh[puK}ks 7\GU0Ǟ6Г?ﱿWy$4kw}zK
2h&ji/,
endstream
endobj
-1541 0 obj
-<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1542 0 R >>
+1557 0 obj
+<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1558 0 R >>
endobj
-1544 0 obj
+1560 0 obj
<< /Length1 1595 /Length2 7817 /Length3 0 /Filter /FlateDecode /Length 8871 >>
stream
xڍT6t
@@ -7531,10 +7626,10 @@ Y<Qj8e^z 7r-\
.+g!~ŜI #PAiМ'WXϟf'_}xbK$yv[IoRʢTYiGU$ݡsZ,U+hQ
endstream
endobj
-1543 0 obj
-<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1544 0 R >>
+1559 0 obj
+<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1560 0 R >>
endobj
-1546 0 obj
+1562 0 obj
<< /Length1 1500 /Length2 6516 /Length3 0 /Filter /FlateDecode /Length 7522 >>
stream
xڍxTڲ6"J5 &*IMj $ґ ޕ*IU@tAs=zoe${f+@PU$
@@ -7577,10 +7672,10 @@ BH'渆m|{m/{.xoH2nE -.w}y'*7.^WeNߚFsU%ϏS
;J!ujE%msCzzFeq0x~ǠAJ/]j z8{FqKeI*1HoA(N{&dY __޴T'EQz
endstream
endobj
-1545 0 obj
-<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1546 0 R >>
+1561 0 obj
+<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1562 0 R >>
endobj
-1548 0 obj
+1564 0 obj
<< /Length1 1414 /Length2 6167 /Length3 0 /Filter /FlateDecode /Length 7134 >>
stream
xڍvTTk6(HK7FBADjc`bP:A@:SBRZ@:T@ios5kus=uy8!Jp-BeCS
@@ -7611,10 +7706,10 @@ n<Ȧ
.7z ^XEi[S<p15*;Aջ<d*+w]`ӷ3I4e:dz펢4)AwTiw||/KKj-Tf bS(Tq#z%I`uk9K^e[ZwʣzI|U|˄&eVJ6Sgߪa^4ǵ+ wN\EVةzew`wؓ/:71ἠP@᣸Ft7^HXfM[vU:x'?ibi ZM}&Od@9fcHMFKlpUe]:AE)(xȘkmD@~ F0ANǞEiXQRm9l%i;mFo1j 1^{WG 7HO ]ȉ")UjzlL?o
endstream
endobj
-1547 0 obj
-<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1548 0 R >>
+1563 0 obj
+<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1564 0 R >>
endobj
-1550 0 obj
+1566 0 obj
<< /Length1 1435 /Length2 6179 /Length3 0 /Filter /FlateDecode /Length 7153 >>
stream
xڍtT[.(0 ! ҂030 ݍ%* R-Hw7"|ugYxeP%
@@ -7643,89 +7738,89 @@ d"`tUe>!%_lkhCgKOnW~yң@᪘+>1#1VGp.ArrfSb
;jjIZxٱ1INzfݪy1M3"}~]\耆n>s5RQܶ nzp~Fqkqܲ='8~*}
endstream
endobj
-1549 0 obj
-<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1550 0 R >>
+1565 0 obj
+<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1566 0 R >>
endobj
-764 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1523 0 R /FirstChar 49 /LastChar 100 /Widths 1347 0 R >>
+779 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1539 0 R /FirstChar 49 /LastChar 100 /Widths 1363 0 R >>
endobj
379 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1525 0 R /FirstChar 12 /LastChar 125 /Widths 1474 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1541 0 R /FirstChar 12 /LastChar 125 /Widths 1490 0 R >>
endobj
414 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1527 0 R /FirstChar 112 /LastChar 112 /Widths 1382 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1543 0 R /FirstChar 112 /LastChar 112 /Widths 1398 0 R >>
endobj
383 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1529 0 R /FirstChar 46 /LastChar 122 /Widths 1470 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1545 0 R /FirstChar 46 /LastChar 122 /Widths 1486 0 R >>
endobj
427 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1531 0 R /FirstChar 65 /LastChar 65 /Widths 1375 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1547 0 R /FirstChar 65 /LastChar 65 /Widths 1391 0 R >>
endobj
382 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1533 0 R /FirstChar 76 /LastChar 110 /Widths 1471 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1549 0 R /FirstChar 76 /LastChar 110 /Widths 1487 0 R >>
endobj
380 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1535 0 R /FirstChar 59 /LastChar 120 /Widths 1473 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1551 0 R /FirstChar 59 /LastChar 120 /Widths 1489 0 R >>
endobj
-489 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1537 0 R /FirstChar 105 /LastChar 110 /Widths 1368 0 R >>
+499 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1553 0 R /FirstChar 105 /LastChar 110 /Widths 1384 0 R >>
endobj
386 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1539 0 R /FirstChar 40 /LastChar 115 /Widths 1462 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1555 0 R /FirstChar 40 /LastChar 115 /Widths 1478 0 R >>
endobj
381 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1541 0 R /FirstChar 43 /LastChar 52 /Widths 1472 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1557 0 R /FirstChar 43 /LastChar 52 /Widths 1488 0 R >>
endobj
384 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1543 0 R /FirstChar 40 /LastChar 57 /Widths 1469 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1559 0 R /FirstChar 40 /LastChar 57 /Widths 1485 0 R >>
endobj
408 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1545 0 R /FirstChar 0 /LastChar 105 /Widths 1383 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1561 0 R /FirstChar 0 /LastChar 105 /Widths 1399 0 R >>
endobj
-753 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1547 0 R /FirstChar 0 /LastChar 32 /Widths 1348 0 R >>
+770 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1563 0 R /FirstChar 0 /LastChar 32 /Widths 1364 0 R >>
endobj
-653 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1549 0 R /FirstChar 0 /LastChar 34 /Widths 1355 0 R >>
+658 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1565 0 R /FirstChar 0 /LastChar 34 /Widths 1371 0 R >>
endobj
398 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 365 0 R 403 0 R 411 0 R 424 0 R 441 0 R 450 0 R 455 0 R 459 0 R 463 0 R 470 0 R ] >>
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 365 0 R 403 0 R 411 0 R 424 0 R 441 0 R 450 0 R 455 0 R 460 0 R 464 0 R 468 0 R ] >>
endobj
479 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 475 0 R 486 0 R 498 0 R 505 0 R 510 0 R 515 0 R 520 0 R 528 0 R 535 0 R 541 0 R ] >>
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 475 0 R 487 0 R 496 0 R 506 0 R 512 0 R 517 0 R 522 0 R 527 0 R 535 0 R 542 0 R ] >>
endobj
551 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 548 0 R 554 0 R 560 0 R 568 0 R 574 0 R 579 0 R 588 0 R 597 0 R 604 0 R 611 0 R ] >>
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 548 0 R 556 0 R 562 0 R 566 0 R 574 0 R 580 0 R 585 0 R 594 0 R 603 0 R 610 0 R ] >>
endobj
-619 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 616 0 R 624 0 R 631 0 R 638 0 R 650 0 R 658 0 R 665 0 R 673 0 R 679 0 R 690 0 R ] >>
+620 0 obj
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 617 0 R 623 0 R 629 0 R 636 0 R 643 0 R 655 0 R 665 0 R 672 0 R 678 0 R 685 0 R ] >>
endobj
-706 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 698 0 R 711 0 R 716 0 R 730 0 R 740 0 R 745 0 R 750 0 R 761 0 R 770 0 R 779 0 R ] >>
+698 0 obj
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 695 0 R 707 0 R 713 0 R 725 0 R 730 0 R 745 0 R 754 0 R 760 0 R 767 0 R 776 0 R ] >>
endobj
790 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 787 0 R 794 0 R 800 0 R 806 0 R 813 0 R 821 0 R 830 0 R 845 0 R 852 0 R 857 0 R ] >>
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 787 0 R 795 0 R 803 0 R 809 0 R 815 0 R 822 0 R 828 0 R 837 0 R 843 0 R 861 0 R ] >>
endobj
-868 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 865 0 R 870 0 R 874 0 R 878 0 R 882 0 R 886 0 R 891 0 R 896 0 R 900 0 R 904 0 R ] >>
+871 0 obj
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 868 0 R 874 0 R 882 0 R 886 0 R 890 0 R 894 0 R 898 0 R 902 0 R 907 0 R 912 0 R ] >>
endobj
-911 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 908 0 R 913 0 R 917 0 R 921 0 R 925 0 R 929 0 R 1048 0 R 1152 0 R 1230 0 R 1282 0 R ] >>
+919 0 obj
+<< /Type /Pages /Parent 1567 0 R /Count 10 /Kids [ 916 0 R 921 0 R 925 0 R 929 0 R 933 0 R 937 0 R 941 0 R 945 0 R 1064 0 R 1168 0 R ] >>
endobj
-1333 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 1 /Kids [ 1330 0 R ] >>
+1249 0 obj
+<< /Type /Pages /Parent 1567 0 R /Count 3 /Kids [ 1246 0 R 1299 0 R 1347 0 R ] >>
endobj
-1551 0 obj
-<< /Type /Pages /Count 81 /Kids [ 398 0 R 479 0 R 551 0 R 619 0 R 706 0 R 790 0 R 868 0 R 911 0 R 1333 0 R ] >>
+1567 0 obj
+<< /Type /Pages /Count 83 /Kids [ 398 0 R 479 0 R 551 0 R 620 0 R 698 0 R 790 0 R 871 0 R 919 0 R 1249 0 R ] >>
endobj
-1552 0 obj
+1568 0 obj
<< /Type /Outlines /First 6 0 R /Last 362 0 R /Count 20 >>
endobj
362 0 obj
-<< /Title 363 0 R /A 360 0 R /Parent 1552 0 R /Prev 358 0 R >>
+<< /Title 363 0 R /A 360 0 R /Parent 1568 0 R /Prev 358 0 R >>
endobj
358 0 obj
-<< /Title 359 0 R /A 356 0 R /Parent 1552 0 R /Prev 314 0 R /Next 362 0 R >>
+<< /Title 359 0 R /A 356 0 R /Parent 1568 0 R /Prev 314 0 R /Next 362 0 R >>
endobj
354 0 obj
<< /Title 355 0 R /A 352 0 R /Parent 314 0 R /Prev 350 0 R >>
@@ -7758,7 +7853,7 @@ endobj
<< /Title 319 0 R /A 316 0 R /Parent 314 0 R /Next 322 0 R >>
endobj
314 0 obj
-<< /Title 315 0 R /A 312 0 R /Parent 1552 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
+<< /Title 315 0 R /A 312 0 R /Parent 1568 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
endobj
310 0 obj
<< /Title 311 0 R /A 308 0 R /Parent 294 0 R /Prev 306 0 R >>
@@ -7773,10 +7868,10 @@ endobj
<< /Title 299 0 R /A 296 0 R /Parent 294 0 R /Next 302 0 R >>
endobj
294 0 obj
-<< /Title 295 0 R /A 292 0 R /Parent 1552 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
+<< /Title 295 0 R /A 292 0 R /Parent 1568 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
endobj
290 0 obj
-<< /Title 291 0 R /A 288 0 R /Parent 1552 0 R /Prev 262 0 R /Next 294 0 R >>
+<< /Title 291 0 R /A 288 0 R /Parent 1568 0 R /Prev 262 0 R /Next 294 0 R >>
endobj
286 0 obj
<< /Title 287 0 R /A 284 0 R /Parent 262 0 R /Prev 282 0 R >>
@@ -7797,7 +7892,7 @@ endobj
<< /Title 267 0 R /A 264 0 R /Parent 262 0 R /Next 278 0 R /First 270 0 R /Last 274 0 R /Count -2 >>
endobj
262 0 obj
-<< /Title 263 0 R /A 260 0 R /Parent 1552 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
+<< /Title 263 0 R /A 260 0 R /Parent 1568 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
endobj
258 0 obj
<< /Title 259 0 R /A 256 0 R /Parent 214 0 R /Prev 254 0 R >>
@@ -7833,7 +7928,7 @@ endobj
<< /Title 219 0 R /A 216 0 R /Parent 214 0 R /Next 222 0 R >>
endobj
214 0 obj
-<< /Title 215 0 R /A 212 0 R /Parent 1552 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
+<< /Title 215 0 R /A 212 0 R /Parent 1568 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
endobj
210 0 obj
<< /Title 211 0 R /A 208 0 R /Parent 190 0 R /Prev 206 0 R >>
@@ -7851,7 +7946,7 @@ endobj
<< /Title 195 0 R /A 192 0 R /Parent 190 0 R /Next 198 0 R >>
endobj
190 0 obj
-<< /Title 191 0 R /A 188 0 R /Parent 1552 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
+<< /Title 191 0 R /A 188 0 R /Parent 1568 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
endobj
186 0 obj
<< /Title 187 0 R /A 184 0 R /Parent 170 0 R /Prev 182 0 R >>
@@ -7866,10 +7961,10 @@ endobj
<< /Title 175 0 R /A 172 0 R /Parent 170 0 R /Next 178 0 R >>
endobj
170 0 obj
-<< /Title 171 0 R /A 168 0 R /Parent 1552 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
+<< /Title 171 0 R /A 168 0 R /Parent 1568 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
endobj
166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 1552 0 R /Prev 138 0 R /Next 170 0 R >>
+<< /Title 167 0 R /A 164 0 R /Parent 1568 0 R /Prev 138 0 R /Next 170 0 R >>
endobj
162 0 obj
<< /Title 163 0 R /A 160 0 R /Parent 138 0 R /Prev 158 0 R >>
@@ -7890,10 +7985,10 @@ endobj
<< /Title 143 0 R /A 140 0 R /Parent 138 0 R /Next 146 0 R >>
endobj
138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 1552 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
+<< /Title 139 0 R /A 136 0 R /Parent 1568 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
endobj
134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 1552 0 R /Prev 118 0 R /Next 138 0 R >>
+<< /Title 135 0 R /A 132 0 R /Parent 1568 0 R /Prev 118 0 R /Next 138 0 R >>
endobj
130 0 obj
<< /Title 131 0 R /A 128 0 R /Parent 118 0 R /Prev 126 0 R >>
@@ -7905,10 +8000,10 @@ endobj
<< /Title 123 0 R /A 120 0 R /Parent 118 0 R /Next 126 0 R >>
endobj
118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 1552 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
+<< /Title 119 0 R /A 116 0 R /Parent 1568 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
endobj
114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 1552 0 R /Prev 94 0 R /Next 118 0 R >>
+<< /Title 115 0 R /A 112 0 R /Parent 1568 0 R /Prev 94 0 R /Next 118 0 R >>
endobj
110 0 obj
<< /Title 111 0 R /A 108 0 R /Parent 94 0 R /Prev 106 0 R >>
@@ -7923,7 +8018,7 @@ endobj
<< /Title 99 0 R /A 96 0 R /Parent 94 0 R /Next 102 0 R >>
endobj
94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 1552 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
+<< /Title 95 0 R /A 92 0 R /Parent 1568 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
endobj
90 0 obj
<< /Title 91 0 R /A 88 0 R /Parent 70 0 R /Prev 86 0 R >>
@@ -7956,7 +8051,7 @@ endobj
<< /Title 55 0 R /A 52 0 R /Parent 50 0 R /Next 66 0 R /First 58 0 R /Last 62 0 R /Count -2 >>
endobj
50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 1552 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
+<< /Title 51 0 R /A 48 0 R /Parent 1568 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
endobj
46 0 obj
<< /Title 47 0 R /A 44 0 R /Parent 18 0 R /Prev 42 0 R >>
@@ -7980,1618 +8075,1634 @@ endobj
<< /Title 23 0 R /A 20 0 R /Parent 18 0 R /Next 26 0 R >>
endobj
18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 1552 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
+<< /Title 19 0 R /A 16 0 R /Parent 1568 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
endobj
14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 1552 0 R /Prev 10 0 R /Next 18 0 R >>
+<< /Title 15 0 R /A 12 0 R /Parent 1568 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 1552 0 R /Prev 6 0 R /Next 14 0 R >>
+<< /Title 11 0 R /A 8 0 R /Parent 1568 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 1552 0 R /Next 10 0 R >>
+<< /Title 7 0 R /A 4 0 R /Parent 1568 0 R /Next 10 0 R >>
endobj
-1553 0 obj
-<< /Names [ (Doc-Start) 370 0 R (Item.1) 415 0 R (Item.10) 726 0 R (Item.11) 862 0 R (Item.12) 863 0 R (Item.2) 416 0 R (Item.3) 417 0 R (Item.4) 418 0 R (Item.5) 704 0 R (Item.6) 705 0 R (Item.7) 723 0 R (Item.8) 724 0 R (Item.9) 725 0 R (page.1) 369 0 R (page.10) 472 0 R (page.11) 477 0 R (page.12) 488 0 R (page.13) 500 0 R (page.14) 507 0 R (page.15) 512 0 R (page.16) 517 0 R (page.17) 522 0 R (page.18) 530 0 R (page.19) 537 0 R (page.2) 405 0 R (page.20) 543 0 R (page.21) 550 0 R (page.22) 556 0 R (page.23) 562 0 R (page.24) 570 0 R (page.25) 576 0 R (page.26) 581 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
+1569 0 obj
+<< /Names [ (Doc-Start) 370 0 R (Item.1) 415 0 R (Item.10) 740 0 R (Item.11) 879 0 R (Item.12) 880 0 R (Item.2) 416 0 R (Item.3) 417 0 R (Item.4) 418 0 R (Item.5) 719 0 R (Item.6) 720 0 R (Item.7) 737 0 R (Item.8) 738 0 R (Item.9) 739 0 R (page.1) 369 0 R (page.10) 470 0 R (page.11) 477 0 R (page.12) 489 0 R (page.13) 498 0 R (page.14) 508 0 R (page.15) 514 0 R (page.16) 519 0 R (page.17) 524 0 R (page.18) 529 0 R (page.19) 537 0 R (page.2) 405 0 R (page.20) 544 0 R (page.21) 550 0 R (page.22) 558 0 R (page.23) 564 0 R (page.24) 568 0 R (page.25) 576 0 R (page.26) 582 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
endobj
-1554 0 obj
-<< /Names [ (page.27) 590 0 R (page.28) 599 0 R (page.29) 606 0 R (page.3) 413 0 R (page.30) 613 0 R (page.31) 618 0 R (page.32) 626 0 R (page.33) 633 0 R (page.34) 640 0 R (page.35) 652 0 R (page.36) 660 0 R (page.37) 667 0 R (page.38) 675 0 R (page.39) 681 0 R (page.4) 426 0 R (page.40) 692 0 R (page.41) 700 0 R (page.42) 713 0 R (page.43) 718 0 R (page.44) 732 0 R (page.45) 742 0 R (page.46) 747 0 R (page.47) 752 0 R (page.48) 763 0 R (page.49) 772 0 R (page.5) 443 0 R (page.50) 781 0 R (page.51) 789 0 R (page.52) 796 0 R (page.53) 802 0 R (page.54) 808 0 R (page.55) 815 0 R ] /Limits [ (page.27) (page.55) ] >>
+1570 0 obj
+<< /Names [ (page.27) 587 0 R (page.28) 596 0 R (page.29) 605 0 R (page.3) 413 0 R (page.30) 612 0 R (page.31) 619 0 R (page.32) 625 0 R (page.33) 631 0 R (page.34) 638 0 R (page.35) 645 0 R (page.36) 657 0 R (page.37) 667 0 R (page.38) 674 0 R (page.39) 680 0 R (page.4) 426 0 R (page.40) 687 0 R (page.41) 697 0 R (page.42) 709 0 R (page.43) 715 0 R (page.44) 727 0 R (page.45) 732 0 R (page.46) 747 0 R (page.47) 756 0 R (page.48) 762 0 R (page.49) 769 0 R (page.5) 443 0 R (page.50) 778 0 R (page.51) 789 0 R (page.52) 797 0 R (page.53) 805 0 R (page.54) 811 0 R (page.55) 817 0 R ] /Limits [ (page.27) (page.55) ] >>
endobj
-1555 0 obj
-<< /Names [ (page.56) 823 0 R (page.57) 832 0 R (page.58) 847 0 R (page.59) 854 0 R (page.6) 452 0 R (page.60) 859 0 R (page.61) 867 0 R (page.62) 872 0 R (page.63) 876 0 R (page.64) 880 0 R (page.65) 884 0 R (page.66) 888 0 R (page.67) 893 0 R (page.68) 898 0 R (page.69) 902 0 R (page.7) 457 0 R (page.70) 906 0 R (page.71) 910 0 R (page.72) 915 0 R (page.73) 919 0 R (page.74) 923 0 R (page.75) 927 0 R (page.76) 931 0 R (page.77) 1050 0 R (page.78) 1154 0 R (page.79) 1232 0 R (page.8) 461 0 R (page.80) 1284 0 R (page.81) 1332 0 R (page.9) 465 0 R (section*.2) 361 0 R (section.1) 5 0 R ] /Limits [ (page.56) (section.1) ] >>
+1571 0 obj
+<< /Names [ (page.56) 824 0 R (page.57) 830 0 R (page.58) 839 0 R (page.59) 845 0 R (page.6) 452 0 R (page.60) 863 0 R (page.61) 870 0 R (page.62) 876 0 R (page.63) 884 0 R (page.64) 888 0 R (page.65) 892 0 R (page.66) 896 0 R (page.67) 900 0 R (page.68) 904 0 R (page.69) 909 0 R (page.7) 457 0 R (page.70) 914 0 R (page.71) 918 0 R (page.72) 923 0 R (page.73) 927 0 R (page.74) 931 0 R (page.75) 935 0 R (page.76) 939 0 R (page.77) 943 0 R (page.78) 947 0 R (page.79) 1066 0 R (page.8) 462 0 R (page.80) 1170 0 R (page.81) 1248 0 R (page.82) 1301 0 R (page.83) 1349 0 R (page.9) 466 0 R ] /Limits [ (page.56) (page.9) ] >>
endobj
-1556 0 obj
-<< /Names [ (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.19) 357 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R ] /Limits [ (section.10) (subsection.13.4) ] >>
+1572 0 obj
+<< /Names [ (section*.2) 361 0 R (section.1) 5 0 R (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.19) 357 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R ] /Limits [ (section*.2) (subsection.13.2) ] >>
endobj
-1557 0 obj
-<< /Names [ (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R ] /Limits [ (subsection.13.5) (subsection.4.2) ] >>
+1573 0 obj
+<< /Names [ (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R ] /Limits [ (subsection.13.3) (subsection.18.9) ] >>
endobj
-1558 0 obj
-<< /Names [ (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 694 0 R (tabularnote.1) 701 0 R (tabularnote.2) 703 0 R (tabularnote.3) 719 0 R (tabularnote.4) 720 0 R (tabularnote.5) 721 0 R (tabularnote.6) 722 0 R (tabularnote.7) 860 0 R ] /Limits [ (subsection.4.3) (tabularnote.7) ] >>
+1574 0 obj
+<< /Names [ (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 711 0 R (tabularnote.1) 716 0 R (tabularnote.2) 718 0 R (tabularnote.3) 733 0 R (tabularnote.4) 734 0 R (tabularnote.5) 735 0 R ] /Limits [ (subsection.4.1) (tabularnote.5) ] >>
endobj
-1559 0 obj
-<< /Names [ (tabularnote.8) 861 0 R ] /Limits [ (tabularnote.8) (tabularnote.8) ] >>
+1575 0 obj
+<< /Names [ (tabularnote.6) 736 0 R (tabularnote.7) 877 0 R (tabularnote.8) 878 0 R ] /Limits [ (tabularnote.6) (tabularnote.8) ] >>
endobj
-1560 0 obj
-<< /Kids [ 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R 1558 0 R 1559 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
+1576 0 obj
+<< /Kids [ 1569 0 R 1570 0 R 1571 0 R 1572 0 R 1573 0 R 1574 0 R 1575 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
endobj
-1561 0 obj
-<< /Dests 1560 0 R >>
+1577 0 obj
+<< /Dests 1576 0 R >>
endobj
-1562 0 obj
-<< /Type /Catalog /Pages 1551 0 R /Outlines 1552 0 R /Names 1561 0 R /PageMode/UseOutlines /OpenAction 364 0 R >>
+1578 0 obj
+<< /Type /Catalog /Pages 1567 0 R /Outlines 1568 0 R /Names 1577 0 R /PageMode/UseOutlines /OpenAction 364 0 R >>
endobj
-1563 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629150051+02'00') /ModDate (D:20240629150051+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+1579 0 obj
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20241029185146+01'00') /ModDate (D:20241029185146+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 1564
+0 1580
0000000000 65535 f
-0000594625 00000 n
-0000594781 00000 n
-0000594853 00000 n
+0000607520 00000 n
+0000607676 00000 n
+0000607748 00000 n
0000000020 00000 n
-0000036449 00000 n
-0000886093 00000 n
+0000036589 00000 n
+0000899181 00000 n
0000000065 00000 n
0000000264 00000 n
-0000036509 00000 n
-0000886006 00000 n
+0000036649 00000 n
+0000899094 00000 n
0000000309 00000 n
0000000527 00000 n
-0000041755 00000 n
-0000885917 00000 n
+0000041972 00000 n
+0000899005 00000 n
0000000573 00000 n
0000000791 00000 n
-0000049032 00000 n
-0000885791 00000 n
+0000049047 00000 n
+0000898879 00000 n
0000000837 00000 n
0000000918 00000 n
-0000049093 00000 n
-0000885717 00000 n
+0000049108 00000 n
+0000898805 00000 n
0000000969 00000 n
0000001060 00000 n
-0000062132 00000 n
-0000885630 00000 n
+0000061566 00000 n
+0000898718 00000 n
0000001111 00000 n
0000001255 00000 n
-0000062193 00000 n
-0000885543 00000 n
+0000067710 00000 n
+0000898631 00000 n
0000001306 00000 n
0000001435 00000 n
-0000067907 00000 n
-0000885456 00000 n
+0000067771 00000 n
+0000898544 00000 n
0000001486 00000 n
0000001620 00000 n
-0000067968 00000 n
-0000885369 00000 n
+0000067832 00000 n
+0000898457 00000 n
0000001671 00000 n
0000001955 00000 n
-0000073045 00000 n
-0000885282 00000 n
+0000076654 00000 n
+0000898370 00000 n
0000002006 00000 n
0000002280 00000 n
-0000077190 00000 n
-0000885208 00000 n
+0000082447 00000 n
+0000898296 00000 n
0000002331 00000 n
0000002493 00000 n
-0000083680 00000 n
-0000885082 00000 n
+0000082508 00000 n
+0000898170 00000 n
0000002539 00000 n
0000002615 00000 n
-0000083741 00000 n
-0000884971 00000 n
+0000082568 00000 n
+0000898059 00000 n
0000002666 00000 n
0000002949 00000 n
-0000083802 00000 n
-0000884897 00000 n
+0000082629 00000 n
+0000897985 00000 n
0000003005 00000 n
0000003129 00000 n
-0000089048 00000 n
-0000884823 00000 n
+0000088177 00000 n
+0000897911 00000 n
0000003185 00000 n
0000003312 00000 n
-0000089108 00000 n
-0000884736 00000 n
+0000088238 00000 n
+0000897824 00000 n
0000003363 00000 n
0000003612 00000 n
-0000095107 00000 n
-0000884625 00000 n
+0000094256 00000 n
+0000897713 00000 n
0000003663 00000 n
0000003894 00000 n
-0000095168 00000 n
-0000884551 00000 n
+0000101478 00000 n
+0000897639 00000 n
0000003950 00000 n
0000004120 00000 n
-0000102599 00000 n
-0000884464 00000 n
+0000101539 00000 n
+0000897552 00000 n
0000004176 00000 n
0000004431 00000 n
-0000102660 00000 n
-0000884377 00000 n
+0000101600 00000 n
+0000897465 00000 n
0000004487 00000 n
0000004622 00000 n
-0000109180 00000 n
-0000884290 00000 n
+0000108162 00000 n
+0000897378 00000 n
0000004678 00000 n
0000004815 00000 n
-0000109240 00000 n
-0000884216 00000 n
+0000114436 00000 n
+0000897304 00000 n
0000004871 00000 n
0000005053 00000 n
-0000125318 00000 n
-0000884088 00000 n
+0000130239 00000 n
+0000897176 00000 n
0000005099 00000 n
0000005409 00000 n
-0000125379 00000 n
-0000884013 00000 n
+0000130300 00000 n
+0000897101 00000 n
0000005460 00000 n
0000005569 00000 n
-0000131012 00000 n
-0000883922 00000 n
+0000130360 00000 n
+0000897010 00000 n
0000005621 00000 n
0000005881 00000 n
-0000155229 00000 n
-0000883830 00000 n
+0000159650 00000 n
+0000896918 00000 n
0000005933 00000 n
0000006188 00000 n
-0000166225 00000 n
-0000883752 00000 n
+0000170541 00000 n
+0000896840 00000 n
0000006240 00000 n
0000006423 00000 n
-0000166287 00000 n
-0000883659 00000 n
+0000170603 00000 n
+0000896747 00000 n
0000006470 00000 n
0000006613 00000 n
-0000166349 00000 n
-0000883526 00000 n
+0000170665 00000 n
+0000896614 00000 n
0000006660 00000 n
0000006821 00000 n
-0000166411 00000 n
-0000883447 00000 n
+0000170727 00000 n
+0000896535 00000 n
0000006873 00000 n
0000006960 00000 n
-0000171724 00000 n
-0000883354 00000 n
+0000176089 00000 n
+0000896442 00000 n
0000007012 00000 n
0000007112 00000 n
-0000176429 00000 n
-0000883275 00000 n
+0000180925 00000 n
+0000896363 00000 n
0000007164 00000 n
0000007330 00000 n
-0000183847 00000 n
-0000883181 00000 n
+0000188744 00000 n
+0000896269 00000 n
0000007377 00000 n
0000007563 00000 n
-0000204585 00000 n
-0000883048 00000 n
+0000209754 00000 n
+0000896136 00000 n
0000007611 00000 n
0000007784 00000 n
-0000217322 00000 n
-0000882969 00000 n
+0000222280 00000 n
+0000896057 00000 n
0000007837 00000 n
0000007987 00000 n
-0000237659 00000 n
-0000882876 00000 n
+0000228069 00000 n
+0000895964 00000 n
0000008040 00000 n
0000008267 00000 n
-0000248501 00000 n
-0000882783 00000 n
+0000251501 00000 n
+0000895871 00000 n
0000008320 00000 n
0000008655 00000 n
-0000248563 00000 n
-0000882690 00000 n
+0000251563 00000 n
+0000895778 00000 n
0000008708 00000 n
0000008902 00000 n
-0000253734 00000 n
-0000882597 00000 n
+0000258042 00000 n
+0000895685 00000 n
0000008955 00000 n
0000009161 00000 n
-0000260692 00000 n
-0000882518 00000 n
+0000265499 00000 n
+0000895606 00000 n
0000009214 00000 n
0000009408 00000 n
-0000260753 00000 n
-0000882424 00000 n
+0000272039 00000 n
+0000895512 00000 n
0000009456 00000 n
0000009728 00000 n
-0000268063 00000 n
-0000882291 00000 n
+0000290431 00000 n
+0000895379 00000 n
0000009776 00000 n
0000009881 00000 n
-0000285584 00000 n
-0000882212 00000 n
+0000290493 00000 n
+0000895300 00000 n
0000009934 00000 n
0000010159 00000 n
-0000285646 00000 n
-0000882119 00000 n
+0000296732 00000 n
+0000895207 00000 n
0000010212 00000 n
0000010590 00000 n
-0000302866 00000 n
-0000882026 00000 n
+0000307397 00000 n
+0000895114 00000 n
0000010643 00000 n
0000010987 00000 n
-0000309236 00000 n
-0000881947 00000 n
+0000313567 00000 n
+0000895035 00000 n
0000011040 00000 n
0000011310 00000 n
-0000309298 00000 n
-0000881814 00000 n
+0000319890 00000 n
+0000894902 00000 n
0000011358 00000 n
0000011572 00000 n
-0000309360 00000 n
-0000881735 00000 n
+0000319952 00000 n
+0000894823 00000 n
0000011625 00000 n
0000011763 00000 n
-0000314555 00000 n
-0000881642 00000 n
+0000320014 00000 n
+0000894730 00000 n
0000011816 00000 n
0000011913 00000 n
-0000314617 00000 n
-0000881549 00000 n
+0000325424 00000 n
+0000894637 00000 n
0000011966 00000 n
0000012104 00000 n
-0000322876 00000 n
-0000881456 00000 n
+0000329219 00000 n
+0000894544 00000 n
0000012157 00000 n
0000012368 00000 n
-0000331713 00000 n
-0000881377 00000 n
+0000343460 00000 n
+0000894465 00000 n
0000012421 00000 n
0000012668 00000 n
-0000331775 00000 n
-0000881243 00000 n
+0000343522 00000 n
+0000894331 00000 n
0000012716 00000 n
0000012818 00000 n
-0000331837 00000 n
-0000881164 00000 n
+0000343584 00000 n
+0000894252 00000 n
0000012871 00000 n
0000013021 00000 n
-0000340796 00000 n
-0000881071 00000 n
+0000343646 00000 n
+0000894159 00000 n
0000013074 00000 n
0000013219 00000 n
-0000340858 00000 n
-0000880978 00000 n
+0000352868 00000 n
+0000894066 00000 n
0000013272 00000 n
0000013497 00000 n
-0000340920 00000 n
-0000880885 00000 n
+0000352930 00000 n
+0000893973 00000 n
0000013550 00000 n
0000013772 00000 n
-0000346530 00000 n
-0000880792 00000 n
+0000352992 00000 n
+0000893880 00000 n
0000013825 00000 n
0000013958 00000 n
-0000346592 00000 n
-0000880699 00000 n
+0000358584 00000 n
+0000893787 00000 n
0000014011 00000 n
0000014126 00000 n
-0000352739 00000 n
-0000880606 00000 n
+0000365102 00000 n
+0000893694 00000 n
0000014179 00000 n
0000014350 00000 n
-0000358316 00000 n
-0000880513 00000 n
+0000365164 00000 n
+0000893601 00000 n
0000014403 00000 n
0000014538 00000 n
-0000358378 00000 n
-0000880420 00000 n
+0000370602 00000 n
+0000893508 00000 n
0000014591 00000 n
0000014744 00000 n
-0000358440 00000 n
-0000880327 00000 n
+0000370664 00000 n
+0000893415 00000 n
0000014798 00000 n
0000015024 00000 n
-0000358502 00000 n
-0000880248 00000 n
+0000370726 00000 n
+0000893336 00000 n
0000015078 00000 n
0000015271 00000 n
-0000364826 00000 n
-0000880115 00000 n
+0000370788 00000 n
+0000893203 00000 n
0000015319 00000 n
0000015495 00000 n
-0000364888 00000 n
-0000879997 00000 n
+0000370850 00000 n
+0000893085 00000 n
0000015548 00000 n
0000015861 00000 n
-0000370058 00000 n
-0000879918 00000 n
+0000382083 00000 n
+0000893006 00000 n
0000015919 00000 n
0000016059 00000 n
-0000370120 00000 n
-0000879839 00000 n
+0000382145 00000 n
+0000892927 00000 n
0000016117 00000 n
0000016283 00000 n
-0000377831 00000 n
-0000879746 00000 n
+0000382207 00000 n
+0000892834 00000 n
0000016336 00000 n
0000016563 00000 n
-0000384247 00000 n
-0000879653 00000 n
+0000397877 00000 n
+0000892741 00000 n
0000016616 00000 n
0000016919 00000 n
-0000391354 00000 n
-0000879574 00000 n
+0000403054 00000 n
+0000892662 00000 n
0000016972 00000 n
0000017267 00000 n
-0000395666 00000 n
-0000879480 00000 n
+0000407329 00000 n
+0000892568 00000 n
0000017315 00000 n
0000017463 00000 n
-0000408987 00000 n
-0000879347 00000 n
+0000420990 00000 n
+0000892435 00000 n
0000017511 00000 n
0000017628 00000 n
-0000409049 00000 n
-0000879268 00000 n
+0000421052 00000 n
+0000892356 00000 n
0000017681 00000 n
0000017783 00000 n
-0000409110 00000 n
-0000879175 00000 n
+0000421113 00000 n
+0000892263 00000 n
0000017836 00000 n
0000017946 00000 n
-0000414643 00000 n
-0000879082 00000 n
+0000426807 00000 n
+0000892170 00000 n
0000017999 00000 n
0000018189 00000 n
-0000414705 00000 n
-0000879003 00000 n
+0000426869 00000 n
+0000892091 00000 n
0000018242 00000 n
0000018356 00000 n
-0000423570 00000 n
-0000878869 00000 n
+0000435075 00000 n
+0000891957 00000 n
0000018404 00000 n
0000018473 00000 n
-0000423632 00000 n
-0000878790 00000 n
+0000435137 00000 n
+0000891878 00000 n
0000018526 00000 n
0000018837 00000 n
-0000427629 00000 n
-0000878697 00000 n
+0000439510 00000 n
+0000891785 00000 n
0000018890 00000 n
0000019015 00000 n
-0000427691 00000 n
-0000878604 00000 n
+0000439572 00000 n
+0000891692 00000 n
0000019068 00000 n
0000019211 00000 n
-0000451594 00000 n
-0000878511 00000 n
+0000463987 00000 n
+0000891599 00000 n
0000019264 00000 n
0000019356 00000 n
-0000451656 00000 n
-0000878418 00000 n
+0000464049 00000 n
+0000891506 00000 n
0000019409 00000 n
0000019651 00000 n
-0000462528 00000 n
-0000878325 00000 n
+0000474904 00000 n
+0000891413 00000 n
0000019704 00000 n
0000019796 00000 n
-0000462590 00000 n
-0000878232 00000 n
+0000474966 00000 n
+0000891320 00000 n
0000019849 00000 n
0000019974 00000 n
-0000480959 00000 n
-0000878139 00000 n
+0000492874 00000 n
+0000891227 00000 n
0000020027 00000 n
0000020244 00000 n
-0000498832 00000 n
-0000878046 00000 n
+0000511238 00000 n
+0000891134 00000 n
0000020297 00000 n
0000020567 00000 n
-0000502308 00000 n
-0000877967 00000 n
+0000515083 00000 n
+0000891055 00000 n
0000020621 00000 n
0000020756 00000 n
-0000504995 00000 n
-0000877873 00000 n
+0000517560 00000 n
+0000890961 00000 n
0000020804 00000 n
0000020868 00000 n
-0000539333 00000 n
-0000877793 00000 n
+0000552233 00000 n
+0000890881 00000 n
0000020916 00000 n
0000020970 00000 n
-0000031108 00000 n
-0000031274 00000 n
-0000031636 00000 n
+0000031199 00000 n
+0000031365 00000 n
+0000031686 00000 n
0000021022 00000 n
-0000031512 00000 n
-0000031574 00000 n
-0000746081 00000 n
-0000741469 00000 n
-0000739016 00000 n
-0000733701 00000 n
-0000730355 00000 n
-0000727723 00000 n
-0000722760 00000 n
-0000720053 00000 n
-0000874394 00000 n
-0000875122 00000 n
-0000875558 00000 n
-0000874977 00000 n
-0000874686 00000 n
-0000875701 00000 n
-0000709895 00000 n
-0000875413 00000 n
-0000698577 00000 n
-0000693962 00000 n
-0000683893 00000 n
-0000675984 00000 n
-0000671589 00000 n
-0000665723 00000 n
-0000656924 00000 n
-0000654040 00000 n
-0000650733 00000 n
-0000641346 00000 n
-0000637884 00000 n
-0000876275 00000 n
-0000031245 00000 n
-0000036228 00000 n
-0000041539 00000 n
-0000036569 00000 n
-0000036062 00000 n
-0000032098 00000 n
-0000036387 00000 n
-0000629190 00000 n
-0000620298 00000 n
-0000875844 00000 n
-0000036199 00000 n
-0000042071 00000 n
-0000041373 00000 n
-0000036888 00000 n
-0000041693 00000 n
-0000874540 00000 n
-0000041815 00000 n
-0000041879 00000 n
-0000041943 00000 n
-0000042007 00000 n
-0000616833 00000 n
-0000041510 00000 n
-0000048658 00000 n
-0000048813 00000 n
-0000049153 00000 n
-0000048484 00000 n
-0000042429 00000 n
-0000048970 00000 n
-0000874832 00000 n
-0000048621 00000 n
-0000055948 00000 n
-0000056100 00000 n
-0000054530 00000 n
-0000054690 00000 n
-0000054850 00000 n
-0000055004 00000 n
-0000055158 00000 n
-0000055312 00000 n
-0000055472 00000 n
-0000055632 00000 n
-0000055790 00000 n
-0000056314 00000 n
-0000054284 00000 n
-0000049446 00000 n
-0000056252 00000 n
-0000054421 00000 n
-0000061439 00000 n
-0000061598 00000 n
-0000061757 00000 n
-0000061913 00000 n
-0000062254 00000 n
-0000061249 00000 n
-0000056594 00000 n
-0000062070 00000 n
-0000061386 00000 n
-0000068029 00000 n
-0000067724 00000 n
-0000062443 00000 n
-0000067845 00000 n
-0000073106 00000 n
-0000072862 00000 n
-0000068283 00000 n
-0000072983 00000 n
-0000077251 00000 n
-0000077007 00000 n
-0000073321 00000 n
-0000077128 00000 n
-0000083148 00000 n
-0000083300 00000 n
-0000083464 00000 n
-0000083863 00000 n
-0000082966 00000 n
-0000077440 00000 n
-0000083618 00000 n
-0000083103 00000 n
-0000089169 00000 n
-0000088865 00000 n
-0000084104 00000 n
-0000088986 00000 n
-0000611508 00000 n
-0000876428 00000 n
-0000094255 00000 n
-0000094409 00000 n
-0000094563 00000 n
-0000094727 00000 n
-0000094881 00000 n
-0000095229 00000 n
-0000094057 00000 n
-0000089384 00000 n
-0000095045 00000 n
-0000875267 00000 n
+0000031562 00000 n
+0000031624 00000 n
+0000759153 00000 n
+0000754541 00000 n
+0000752088 00000 n
+0000746785 00000 n
+0000743439 00000 n
+0000740807 00000 n
+0000735844 00000 n
+0000733137 00000 n
+0000887466 00000 n
+0000888194 00000 n
+0000888630 00000 n
+0000888049 00000 n
+0000887758 00000 n
+0000888773 00000 n
+0000722919 00000 n
+0000888485 00000 n
+0000711642 00000 n
+0000707027 00000 n
+0000696958 00000 n
+0000689207 00000 n
+0000684812 00000 n
+0000678946 00000 n
+0000670147 00000 n
+0000667263 00000 n
+0000663956 00000 n
+0000654569 00000 n
+0000650779 00000 n
+0000889347 00000 n
+0000031336 00000 n
+0000036370 00000 n
+0000041756 00000 n
+0000036709 00000 n
+0000036204 00000 n
+0000032148 00000 n
+0000036527 00000 n
+0000642085 00000 n
+0000633193 00000 n
+0000888916 00000 n
+0000036341 00000 n
+0000042289 00000 n
+0000041590 00000 n
+0000037028 00000 n
+0000041910 00000 n
+0000887612 00000 n
+0000042033 00000 n
+0000042097 00000 n
+0000042161 00000 n
+0000042225 00000 n
+0000629728 00000 n
+0000041727 00000 n
+0000048671 00000 n
+0000048827 00000 n
+0000049169 00000 n
+0000048497 00000 n
+0000042647 00000 n
+0000048985 00000 n
+0000887904 00000 n
+0000048634 00000 n
+0000055553 00000 n
+0000055706 00000 n
+0000054453 00000 n
+0000054613 00000 n
+0000054773 00000 n
+0000054927 00000 n
+0000055081 00000 n
+0000055235 00000 n
+0000055394 00000 n
+0000060870 00000 n
+0000061029 00000 n
+0000055921 00000 n
+0000054223 00000 n
+0000049449 00000 n
+0000055859 00000 n
+0000054360 00000 n
+0000061188 00000 n
+0000061346 00000 n
+0000067333 00000 n
+0000067490 00000 n
+0000061627 00000 n
+0000060680 00000 n
+0000056188 00000 n
+0000061504 00000 n
+0000060817 00000 n
+0000067893 00000 n
+0000067159 00000 n
+0000061816 00000 n
+0000067648 00000 n
+0000067296 00000 n
+0000072393 00000 n
+0000072210 00000 n
+0000068147 00000 n
+0000072331 00000 n
+0000076715 00000 n
+0000076471 00000 n
+0000072556 00000 n
+0000076592 00000 n
+0000082690 00000 n
+0000082264 00000 n
+0000076943 00000 n
+0000082385 00000 n
+0000087644 00000 n
+0000087797 00000 n
+0000087961 00000 n
+0000088299 00000 n
+0000087462 00000 n
+0000082931 00000 n
+0000088115 00000 n
+0000624403 00000 n
+0000889500 00000 n
+0000087599 00000 n
+0000093405 00000 n
+0000093559 00000 n
+0000093713 00000 n
+0000093877 00000 n
+0000094031 00000 n
+0000094317 00000 n
+0000093207 00000 n
+0000088527 00000 n
0000094194 00000 n
-0000101900 00000 n
-0000102060 00000 n
-0000102219 00000 n
-0000102379 00000 n
-0000108803 00000 n
-0000108961 00000 n
-0000102721 00000 n
-0000101710 00000 n
-0000095522 00000 n
-0000102537 00000 n
-0000101847 00000 n
-0000108484 00000 n
-0000108643 00000 n
-0000109301 00000 n
-0000108294 00000 n
-0000102988 00000 n
-0000109118 00000 n
-0000108431 00000 n
-0000113779 00000 n
-0000113596 00000 n
-0000109542 00000 n
-0000113717 00000 n
-0000117940 00000 n
-0000118156 00000 n
-0000117774 00000 n
-0000114033 00000 n
-0000118094 00000 n
-0000117911 00000 n
-0000125440 00000 n
-0000125135 00000 n
-0000118332 00000 n
-0000125256 00000 n
-0000130792 00000 n
-0000130311 00000 n
-0000130474 00000 n
-0000130633 00000 n
-0000131074 00000 n
-0000130121 00000 n
-0000125720 00000 n
-0000130950 00000 n
-0000130258 00000 n
+0000093344 00000 n
+0000100780 00000 n
+0000100940 00000 n
+0000101099 00000 n
+0000101259 00000 n
+0000101661 00000 n
+0000100590 00000 n
+0000094571 00000 n
+0000101416 00000 n
+0000888339 00000 n
+0000100727 00000 n
+0000107783 00000 n
+0000107942 00000 n
+0000107466 00000 n
+0000107624 00000 n
+0000108223 00000 n
+0000107276 00000 n
+0000101941 00000 n
+0000108100 00000 n
+0000107413 00000 n
+0000114220 00000 n
+0000114497 00000 n
+0000114054 00000 n
+0000108477 00000 n
+0000114374 00000 n
+0000114191 00000 n
+0000118474 00000 n
+0000118291 00000 n
+0000114738 00000 n
+0000118412 00000 n
+0000122394 00000 n
+0000122611 00000 n
+0000122228 00000 n
+0000118663 00000 n
+0000122549 00000 n
+0000122365 00000 n
+0000130421 00000 n
+0000130056 00000 n
+0000122852 00000 n
+0000130177 00000 n
+0000135999 00000 n
+0000135515 00000 n
+0000135679 00000 n
+0000135839 00000 n
+0000136219 00000 n
+0000135325 00000 n
+0000130675 00000 n
+0000136157 00000 n
+0000135462 00000 n
+0000141607 00000 n
+0000141761 00000 n
+0000141983 00000 n
+0000141433 00000 n
0000136473 00000 n
-0000136627 00000 n
-0000136849 00000 n
-0000136299 00000 n
-0000131354 00000 n
-0000136787 00000 n
-0000136436 00000 n
-0000142529 00000 n
-0000142742 00000 n
-0000142363 00000 n
-0000137064 00000 n
-0000142680 00000 n
-0000142500 00000 n
-0000148359 00000 n
-0000155013 00000 n
-0000148578 00000 n
-0000148193 00000 n
-0000142983 00000 n
-0000148516 00000 n
-0000876581 00000 n
-0000148330 00000 n
-0000155291 00000 n
-0000154847 00000 n
-0000148793 00000 n
-0000155167 00000 n
-0000154984 00000 n
-0000160581 00000 n
-0000160795 00000 n
-0000160415 00000 n
-0000155558 00000 n
-0000160733 00000 n
-0000160552 00000 n
-0000165853 00000 n
-0000166005 00000 n
-0000171357 00000 n
-0000166473 00000 n
-0000165679 00000 n
-0000161036 00000 n
-0000166163 00000 n
-0000165816 00000 n
-0000171510 00000 n
-0000171786 00000 n
-0000171183 00000 n
-0000166701 00000 n
-0000171662 00000 n
-0000171320 00000 n
-0000176491 00000 n
-0000176246 00000 n
-0000172066 00000 n
-0000176367 00000 n
-0000183148 00000 n
-0000183313 00000 n
-0000183472 00000 n
-0000183631 00000 n
-0000191594 00000 n
-0000183909 00000 n
-0000182958 00000 n
-0000176771 00000 n
-0000183785 00000 n
-0000183095 00000 n
-0000191117 00000 n
-0000191277 00000 n
-0000191440 00000 n
-0000204046 00000 n
-0000191811 00000 n
-0000190927 00000 n
-0000184124 00000 n
-0000191749 00000 n
-0000191064 00000 n
-0000204206 00000 n
-0000204365 00000 n
-0000204647 00000 n
-0000203864 00000 n
-0000192091 00000 n
-0000204523 00000 n
-0000607119 00000 n
-0000204001 00000 n
-0000217109 00000 n
-0000217384 00000 n
-0000216943 00000 n
-0000204953 00000 n
-0000217260 00000 n
-0000217080 00000 n
-0000237721 00000 n
-0000237476 00000 n
-0000217651 00000 n
-0000237597 00000 n
-0000876734 00000 n
-0000248119 00000 n
-0000248279 00000 n
-0000253139 00000 n
-0000248625 00000 n
-0000247945 00000 n
-0000238027 00000 n
-0000248439 00000 n
-0000248082 00000 n
-0000253298 00000 n
-0000253452 00000 n
-0000253796 00000 n
-0000252957 00000 n
-0000248879 00000 n
-0000253672 00000 n
-0000604584 00000 n
-0000253094 00000 n
-0000260472 00000 n
-0000260815 00000 n
-0000260306 00000 n
-0000254063 00000 n
-0000260630 00000 n
-0000260443 00000 n
-0000266896 00000 n
-0000267056 00000 n
-0000267216 00000 n
-0000267369 00000 n
-0000267529 00000 n
-0000267844 00000 n
-0000267689 00000 n
-0000268125 00000 n
-0000266682 00000 n
-0000261134 00000 n
-0000268001 00000 n
-0000876132 00000 n
-0000266819 00000 n
-0000285203 00000 n
-0000285362 00000 n
-0000285708 00000 n
-0000285029 00000 n
-0000268457 00000 n
-0000285522 00000 n
-0000285166 00000 n
-0000291626 00000 n
-0000291781 00000 n
-0000291998 00000 n
-0000291452 00000 n
-0000285962 00000 n
-0000291936 00000 n
-0000291589 00000 n
-0000296883 00000 n
-0000297043 00000 n
-0000297203 00000 n
-0000297425 00000 n
-0000296701 00000 n
-0000292213 00000 n
-0000297363 00000 n
-0000296838 00000 n
-0000302610 00000 n
-0000302928 00000 n
-0000302444 00000 n
-0000297705 00000 n
-0000302804 00000 n
-0000302581 00000 n
-0000308233 00000 n
-0000308387 00000 n
-0000308551 00000 n
-0000308705 00000 n
-0000308858 00000 n
-0000309016 00000 n
-0000309422 00000 n
-0000308027 00000 n
-0000303234 00000 n
-0000309174 00000 n
-0000308164 00000 n
-0000322302 00000 n
-0000314185 00000 n
-0000314339 00000 n
-0000314934 00000 n
-0000314011 00000 n
-0000309637 00000 n
-0000314493 00000 n
-0000314679 00000 n
-0000601521 00000 n
-0000314742 00000 n
-0000314806 00000 n
-0000314870 00000 n
-0000876887 00000 n
-0000314148 00000 n
-0000318792 00000 n
-0000318951 00000 n
-0000319168 00000 n
-0000318618 00000 n
-0000315136 00000 n
-0000319106 00000 n
-0000318755 00000 n
-0000322938 00000 n
-0000322119 00000 n
-0000319396 00000 n
-0000322240 00000 n
-0000322364 00000 n
-0000322428 00000 n
-0000322492 00000 n
-0000322556 00000 n
-0000322620 00000 n
-0000322684 00000 n
-0000322748 00000 n
-0000322812 00000 n
-0000326967 00000 n
-0000327127 00000 n
-0000327349 00000 n
-0000326793 00000 n
-0000323153 00000 n
-0000327287 00000 n
-0000326930 00000 n
-0000330846 00000 n
-0000331006 00000 n
-0000331165 00000 n
-0000331324 00000 n
-0000331487 00000 n
-0000331898 00000 n
-0000330648 00000 n
-0000327525 00000 n
-0000331651 00000 n
-0000330785 00000 n
-0000340982 00000 n
-0000340613 00000 n
-0000332139 00000 n
-0000340734 00000 n
-0000346318 00000 n
-0000346654 00000 n
-0000346152 00000 n
-0000341249 00000 n
-0000346468 00000 n
-0000875989 00000 n
-0000346289 00000 n
-0000351901 00000 n
-0000352056 00000 n
-0000352210 00000 n
-0000352368 00000 n
-0000352523 00000 n
-0000352801 00000 n
-0000351703 00000 n
-0000346999 00000 n
-0000352677 00000 n
-0000874248 00000 n
-0000351840 00000 n
-0000357941 00000 n
-0000358100 00000 n
-0000363960 00000 n
-0000358564 00000 n
-0000357767 00000 n
-0000353094 00000 n
-0000358254 00000 n
-0000357904 00000 n
-0000364150 00000 n
-0000364303 00000 n
-0000364465 00000 n
-0000364615 00000 n
-0000364950 00000 n
-0000363762 00000 n
-0000358818 00000 n
-0000364764 00000 n
-0000363899 00000 n
-0000369515 00000 n
-0000369676 00000 n
-0000369837 00000 n
-0000370182 00000 n
-0000369333 00000 n
-0000365269 00000 n
-0000369996 00000 n
-0000877040 00000 n
-0000369470 00000 n
-0000377615 00000 n
-0000377893 00000 n
-0000377449 00000 n
-0000370397 00000 n
-0000377769 00000 n
-0000377586 00000 n
-0000384028 00000 n
-0000384309 00000 n
-0000383862 00000 n
-0000378173 00000 n
-0000384185 00000 n
-0000383999 00000 n
-0000391133 00000 n
-0000391416 00000 n
-0000390967 00000 n
-0000384576 00000 n
-0000391292 00000 n
-0000599045 00000 n
-0000391104 00000 n
-0000395445 00000 n
-0000395728 00000 n
-0000395279 00000 n
-0000391657 00000 n
-0000395604 00000 n
-0000395416 00000 n
-0000408761 00000 n
-0000414029 00000 n
-0000414188 00000 n
-0000409171 00000 n
-0000408595 00000 n
-0000395969 00000 n
-0000408925 00000 n
-0000408732 00000 n
-0000414346 00000 n
-0000422716 00000 n
-0000422880 00000 n
-0000423044 00000 n
-0000414767 00000 n
-0000413847 00000 n
-0000409425 00000 n
-0000414581 00000 n
-0000596560 00000 n
-0000413984 00000 n
-0000415034 00000 n
-0000415352 00000 n
-0000415678 00000 n
-0000415882 00000 n
-0000416360 00000 n
-0000416704 00000 n
-0000416908 00000 n
-0000423208 00000 n
-0000423358 00000 n
-0000423694 00000 n
-0000422518 00000 n
-0000417550 00000 n
-0000423508 00000 n
-0000422655 00000 n
-0000427257 00000 n
-0000427412 00000 n
-0000427753 00000 n
-0000427083 00000 n
-0000423989 00000 n
-0000427567 00000 n
-0000427220 00000 n
-0000431522 00000 n
-0000431084 00000 n
-0000427968 00000 n
-0000431205 00000 n
-0000431267 00000 n
-0000431330 00000 n
-0000431394 00000 n
-0000431458 00000 n
-0000451718 00000 n
-0000451411 00000 n
-0000431698 00000 n
-0000451532 00000 n
-0000877193 00000 n
-0000457780 00000 n
-0000457597 00000 n
-0000451985 00000 n
-0000457718 00000 n
-0000462652 00000 n
-0000462345 00000 n
-0000458073 00000 n
-0000462466 00000 n
-0000466294 00000 n
-0000466111 00000 n
-0000462867 00000 n
-0000466232 00000 n
-0000469803 00000 n
-0000469620 00000 n
-0000466535 00000 n
-0000469741 00000 n
-0000474175 00000 n
-0000473992 00000 n
-0000470044 00000 n
-0000474113 00000 n
-0000480737 00000 n
-0000481021 00000 n
-0000480571 00000 n
-0000474403 00000 n
-0000480897 00000 n
-0000480708 00000 n
-0000486704 00000 n
-0000486521 00000 n
-0000481353 00000 n
-0000486642 00000 n
-0000498894 00000 n
-0000498649 00000 n
-0000486919 00000 n
-0000498770 00000 n
-0000502370 00000 n
-0000502125 00000 n
-0000499135 00000 n
-0000502246 00000 n
-0000505057 00000 n
-0000504812 00000 n
-0000502520 00000 n
-0000504933 00000 n
-0000877346 00000 n
-0000507672 00000 n
-0000507489 00000 n
-0000505259 00000 n
-0000507610 00000 n
-0000510376 00000 n
-0000510193 00000 n
-0000507835 00000 n
-0000510314 00000 n
-0000513083 00000 n
-0000512900 00000 n
-0000510539 00000 n
-0000513021 00000 n
-0000515776 00000 n
-0000515593 00000 n
-0000513246 00000 n
-0000515714 00000 n
-0000517657 00000 n
-0000517474 00000 n
-0000515952 00000 n
-0000517595 00000 n
-0000522287 00000 n
-0000522437 00000 n
-0000522589 00000 n
-0000522739 00000 n
-0000522891 00000 n
-0000523043 00000 n
-0000523195 00000 n
-0000523347 00000 n
-0000523499 00000 n
-0000523650 00000 n
-0000523802 00000 n
-0000523953 00000 n
-0000524105 00000 n
-0000524256 00000 n
-0000524406 00000 n
-0000524558 00000 n
-0000524710 00000 n
-0000524862 00000 n
-0000525012 00000 n
-0000525162 00000 n
-0000525314 00000 n
-0000525466 00000 n
-0000525617 00000 n
-0000525769 00000 n
-0000525920 00000 n
-0000526072 00000 n
-0000526220 00000 n
-0000526369 00000 n
-0000526520 00000 n
-0000526672 00000 n
-0000526822 00000 n
-0000526972 00000 n
-0000527123 00000 n
-0000527275 00000 n
-0000527426 00000 n
-0000527578 00000 n
-0000527730 00000 n
-0000527882 00000 n
-0000528033 00000 n
-0000528185 00000 n
-0000528337 00000 n
-0000528488 00000 n
-0000528639 00000 n
-0000528791 00000 n
-0000528943 00000 n
-0000529094 00000 n
-0000529246 00000 n
-0000529398 00000 n
-0000529549 00000 n
-0000529701 00000 n
-0000529852 00000 n
-0000530003 00000 n
-0000530152 00000 n
-0000530302 00000 n
-0000530452 00000 n
-0000530602 00000 n
-0000530751 00000 n
-0000530901 00000 n
-0000531052 00000 n
-0000531204 00000 n
-0000531354 00000 n
-0000531506 00000 n
-0000531657 00000 n
-0000531809 00000 n
-0000531960 00000 n
-0000532112 00000 n
-0000532264 00000 n
-0000532415 00000 n
-0000532567 00000 n
-0000532720 00000 n
-0000532872 00000 n
-0000533025 00000 n
-0000533178 00000 n
-0000533331 00000 n
-0000533482 00000 n
-0000533635 00000 n
-0000533788 00000 n
-0000533941 00000 n
-0000534094 00000 n
-0000534246 00000 n
-0000534398 00000 n
-0000534551 00000 n
-0000534703 00000 n
-0000534856 00000 n
-0000535009 00000 n
-0000535162 00000 n
-0000535313 00000 n
-0000535466 00000 n
-0000535618 00000 n
-0000535770 00000 n
-0000535923 00000 n
-0000536075 00000 n
-0000536227 00000 n
-0000536380 00000 n
-0000536533 00000 n
+0000141921 00000 n
+0000141570 00000 n
+0000146885 00000 n
+0000147099 00000 n
+0000146719 00000 n
+0000142224 00000 n
+0000147037 00000 n
+0000889653 00000 n
+0000146856 00000 n
+0000152698 00000 n
+0000152544 00000 n
+0000152917 00000 n
+0000152370 00000 n
+0000147314 00000 n
+0000152855 00000 n
+0000152507 00000 n
+0000164869 00000 n
+0000159712 00000 n
+0000159467 00000 n
+0000153132 00000 n
+0000159588 00000 n
+0000165083 00000 n
+0000164703 00000 n
+0000159992 00000 n
+0000165021 00000 n
+0000164840 00000 n
+0000170165 00000 n
+0000170319 00000 n
+0000175721 00000 n
+0000170789 00000 n
+0000169991 00000 n
+0000165311 00000 n
+0000170479 00000 n
+0000170128 00000 n
+0000175874 00000 n
+0000176151 00000 n
+0000175547 00000 n
+0000171017 00000 n
+0000176027 00000 n
+0000175684 00000 n
+0000180987 00000 n
+0000180742 00000 n
+0000176431 00000 n
+0000180863 00000 n
+0000188045 00000 n
+0000188210 00000 n
+0000188369 00000 n
+0000188528 00000 n
+0000196319 00000 n
+0000188805 00000 n
+0000187855 00000 n
+0000181254 00000 n
+0000188682 00000 n
+0000187992 00000 n
+0000195996 00000 n
+0000196156 00000 n
+0000209065 00000 n
+0000209219 00000 n
+0000196537 00000 n
+0000195814 00000 n
+0000189046 00000 n
+0000196475 00000 n
+0000195951 00000 n
+0000209379 00000 n
+0000209536 00000 n
+0000209816 00000 n
+0000208875 00000 n
+0000196817 00000 n
+0000209692 00000 n
+0000620014 00000 n
+0000209012 00000 n
+0000222066 00000 n
+0000222342 00000 n
+0000221900 00000 n
+0000210122 00000 n
+0000222218 00000 n
+0000889806 00000 n
+0000222037 00000 n
+0000228131 00000 n
+0000227886 00000 n
+0000222609 00000 n
+0000228007 00000 n
+0000251120 00000 n
+0000251279 00000 n
+0000251624 00000 n
+0000250946 00000 n
+0000228411 00000 n
+0000251439 00000 n
+0000251083 00000 n
+0000257668 00000 n
+0000257827 00000 n
+0000258104 00000 n
+0000257494 00000 n
+0000251904 00000 n
+0000257980 00000 n
+0000257631 00000 n
+0000265056 00000 n
+0000265277 00000 n
+0000265561 00000 n
+0000264882 00000 n
+0000258358 00000 n
+0000265437 00000 n
+0000617479 00000 n
+0000265019 00000 n
+0000271181 00000 n
+0000271342 00000 n
+0000271503 00000 n
+0000271657 00000 n
+0000271817 00000 n
+0000290017 00000 n
+0000272101 00000 n
+0000270983 00000 n
+0000265906 00000 n
+0000271977 00000 n
+0000889204 00000 n
+0000271120 00000 n
+0000289542 00000 n
+0000290175 00000 n
+0000289697 00000 n
+0000289857 00000 n
+0000290555 00000 n
+0000289344 00000 n
+0000272433 00000 n
+0000290369 00000 n
+0000289481 00000 n
+0000296360 00000 n
+0000296515 00000 n
+0000296794 00000 n
+0000296186 00000 n
+0000290822 00000 n
+0000296670 00000 n
+0000296323 00000 n
+0000302026 00000 n
+0000302248 00000 n
+0000301860 00000 n
+0000297074 00000 n
+0000302186 00000 n
+0000301997 00000 n
+0000307015 00000 n
+0000307175 00000 n
+0000307459 00000 n
+0000306841 00000 n
+0000302450 00000 n
+0000307335 00000 n
+0000306978 00000 n
+0000313312 00000 n
+0000312998 00000 n
+0000313150 00000 n
+0000318883 00000 n
+0000319043 00000 n
+0000313629 00000 n
+0000312816 00000 n
+0000307778 00000 n
+0000313505 00000 n
+0000889959 00000 n
+0000312953 00000 n
+0000319203 00000 n
+0000319357 00000 n
+0000319510 00000 n
+0000319669 00000 n
+0000325056 00000 n
+0000325209 00000 n
+0000320076 00000 n
+0000318677 00000 n
+0000313896 00000 n
+0000319828 00000 n
+0000318814 00000 n
+0000333308 00000 n
+0000325740 00000 n
+0000324882 00000 n
+0000320239 00000 n
+0000325362 00000 n
+0000325486 00000 n
+0000614416 00000 n
+0000325549 00000 n
+0000325612 00000 n
+0000325676 00000 n
+0000325019 00000 n
+0000328841 00000 n
+0000329001 00000 n
+0000329281 00000 n
+0000328667 00000 n
+0000325942 00000 n
+0000329157 00000 n
+0000328804 00000 n
+0000333882 00000 n
+0000333125 00000 n
+0000329522 00000 n
+0000333246 00000 n
+0000333370 00000 n
+0000333434 00000 n
+0000333498 00000 n
+0000333562 00000 n
+0000333626 00000 n
+0000333690 00000 n
+0000333754 00000 n
+0000333818 00000 n
+0000337752 00000 n
+0000337912 00000 n
+0000338072 00000 n
+0000338292 00000 n
+0000337570 00000 n
+0000334110 00000 n
+0000338230 00000 n
+0000337707 00000 n
+0000342753 00000 n
+0000342913 00000 n
+0000343073 00000 n
+0000343235 00000 n
+0000343708 00000 n
+0000342563 00000 n
+0000338455 00000 n
+0000343398 00000 n
+0000342700 00000 n
+0000352653 00000 n
+0000353054 00000 n
+0000352487 00000 n
+0000343962 00000 n
+0000352806 00000 n
+0000352624 00000 n
+0000358215 00000 n
+0000358369 00000 n
+0000358646 00000 n
+0000358041 00000 n
+0000353373 00000 n
+0000358522 00000 n
+0000889061 00000 n
+0000358178 00000 n
+0000364573 00000 n
+0000364731 00000 n
+0000364886 00000 n
+0000365226 00000 n
+0000364391 00000 n
+0000358952 00000 n
+0000365040 00000 n
+0000887320 00000 n
+0000364528 00000 n
+0000370036 00000 n
+0000370196 00000 n
+0000370351 00000 n
+0000376476 00000 n
+0000376631 00000 n
+0000370912 00000 n
+0000369854 00000 n
+0000365519 00000 n
+0000370540 00000 n
+0000890112 00000 n
+0000369991 00000 n
+0000376795 00000 n
+0000376949 00000 n
+0000377164 00000 n
+0000376286 00000 n
+0000371179 00000 n
+0000377102 00000 n
+0000376423 00000 n
+0000381540 00000 n
+0000381701 00000 n
+0000381862 00000 n
+0000382269 00000 n
+0000381358 00000 n
+0000377444 00000 n
+0000382021 00000 n
+0000381495 00000 n
+0000389764 00000 n
+0000389979 00000 n
+0000389598 00000 n
+0000382497 00000 n
+0000389917 00000 n
+0000389735 00000 n
+0000397656 00000 n
+0000397939 00000 n
+0000397490 00000 n
+0000390233 00000 n
+0000397815 00000 n
+0000611940 00000 n
+0000397627 00000 n
+0000402833 00000 n
+0000403116 00000 n
+0000402667 00000 n
+0000398232 00000 n
+0000402992 00000 n
+0000402804 00000 n
+0000407108 00000 n
+0000407391 00000 n
+0000406942 00000 n
+0000403318 00000 n
+0000407267 00000 n
+0000407079 00000 n
+0000420610 00000 n
+0000420764 00000 n
+0000426234 00000 n
+0000426392 00000 n
+0000421175 00000 n
+0000420436 00000 n
+0000407632 00000 n
+0000420928 00000 n
+0000420573 00000 n
+0000426551 00000 n
+0000426931 00000 n
+0000426052 00000 n
+0000421429 00000 n
+0000426745 00000 n
+0000609455 00000 n
+0000426189 00000 n
+0000434218 00000 n
+0000434381 00000 n
+0000434545 00000 n
+0000427198 00000 n
+0000427516 00000 n
+0000427842 00000 n
+0000428046 00000 n
+0000428524 00000 n
+0000428868 00000 n
+0000429072 00000 n
+0000434709 00000 n
+0000434861 00000 n
+0000435199 00000 n
+0000434020 00000 n
+0000429714 00000 n
+0000435013 00000 n
+0000434157 00000 n
+0000439142 00000 n
+0000439295 00000 n
+0000439634 00000 n
+0000438968 00000 n
+0000435507 00000 n
+0000439448 00000 n
+0000890265 00000 n
+0000439105 00000 n
+0000443869 00000 n
+0000443433 00000 n
+0000439810 00000 n
+0000443554 00000 n
+0000443616 00000 n
+0000443678 00000 n
+0000443742 00000 n
+0000443806 00000 n
+0000464111 00000 n
+0000463804 00000 n
+0000444084 00000 n
+0000463925 00000 n
+0000470162 00000 n
+0000469979 00000 n
+0000464378 00000 n
+0000470100 00000 n
+0000475028 00000 n
+0000474721 00000 n
+0000470455 00000 n
+0000474842 00000 n
+0000478720 00000 n
+0000478537 00000 n
+0000475243 00000 n
+0000478658 00000 n
+0000482276 00000 n
+0000482093 00000 n
+0000478961 00000 n
+0000482214 00000 n
+0000486703 00000 n
+0000486520 00000 n
+0000482517 00000 n
+0000486641 00000 n
+0000492648 00000 n
+0000492936 00000 n
+0000492482 00000 n
+0000486931 00000 n
+0000492812 00000 n
+0000492619 00000 n
+0000498978 00000 n
+0000498795 00000 n
+0000493268 00000 n
+0000498916 00000 n
+0000511300 00000 n
+0000511055 00000 n
+0000499193 00000 n
+0000511176 00000 n
+0000890418 00000 n
+0000515145 00000 n
+0000514900 00000 n
+0000511541 00000 n
+0000515021 00000 n
+0000517622 00000 n
+0000517377 00000 n
+0000515308 00000 n
+0000517498 00000 n
+0000520385 00000 n
+0000520202 00000 n
+0000517811 00000 n
+0000520323 00000 n
+0000523143 00000 n
+0000522960 00000 n
+0000520561 00000 n
+0000523081 00000 n
+0000525957 00000 n
+0000525774 00000 n
+0000523306 00000 n
+0000525895 00000 n
+0000528651 00000 n
+0000528468 00000 n
+0000526120 00000 n
+0000528589 00000 n
+0000530533 00000 n
+0000530350 00000 n
+0000528827 00000 n
+0000530471 00000 n
+0000535171 00000 n
+0000535321 00000 n
+0000535473 00000 n
+0000535623 00000 n
+0000535775 00000 n
+0000535927 00000 n
+0000536079 00000 n
+0000536231 00000 n
+0000536383 00000 n
+0000536534 00000 n
0000536686 00000 n
-0000536839 00000 n
-0000536992 00000 n
-0000537145 00000 n
-0000537298 00000 n
-0000537451 00000 n
-0000537604 00000 n
-0000537757 00000 n
-0000537906 00000 n
-0000538056 00000 n
-0000538206 00000 n
-0000538358 00000 n
-0000538510 00000 n
-0000538663 00000 n
-0000538816 00000 n
-0000538968 00000 n
-0000539119 00000 n
-0000543937 00000 n
-0000544089 00000 n
-0000544241 00000 n
-0000539396 00000 n
-0000521184 00000 n
-0000517833 00000 n
-0000539269 00000 n
-0000521325 00000 n
-0000544393 00000 n
-0000544545 00000 n
-0000544698 00000 n
-0000544849 00000 n
-0000545001 00000 n
-0000545151 00000 n
-0000545304 00000 n
-0000545456 00000 n
-0000545609 00000 n
-0000545760 00000 n
-0000545911 00000 n
-0000546064 00000 n
-0000546217 00000 n
-0000546369 00000 n
-0000546522 00000 n
-0000546675 00000 n
-0000546828 00000 n
-0000546981 00000 n
-0000547133 00000 n
-0000547285 00000 n
-0000547437 00000 n
-0000547590 00000 n
-0000547743 00000 n
-0000547895 00000 n
-0000548047 00000 n
-0000548200 00000 n
-0000548353 00000 n
-0000548506 00000 n
-0000548659 00000 n
-0000548812 00000 n
-0000548964 00000 n
-0000549116 00000 n
-0000549269 00000 n
-0000549422 00000 n
-0000549575 00000 n
-0000549727 00000 n
-0000549879 00000 n
-0000550032 00000 n
-0000550185 00000 n
-0000550338 00000 n
-0000550491 00000 n
-0000550644 00000 n
-0000550796 00000 n
-0000550949 00000 n
-0000551102 00000 n
-0000551255 00000 n
-0000551405 00000 n
-0000551555 00000 n
-0000551706 00000 n
-0000551859 00000 n
-0000552012 00000 n
-0000552165 00000 n
-0000552317 00000 n
-0000552470 00000 n
-0000552622 00000 n
-0000552774 00000 n
-0000552927 00000 n
-0000553078 00000 n
-0000553231 00000 n
-0000553383 00000 n
-0000553536 00000 n
-0000553689 00000 n
-0000553842 00000 n
-0000553994 00000 n
-0000554147 00000 n
-0000554300 00000 n
-0000554453 00000 n
-0000554604 00000 n
-0000554755 00000 n
-0000554906 00000 n
-0000555058 00000 n
-0000555211 00000 n
-0000555364 00000 n
-0000555517 00000 n
-0000555670 00000 n
-0000555823 00000 n
-0000555976 00000 n
-0000556128 00000 n
-0000556281 00000 n
-0000556434 00000 n
-0000556587 00000 n
-0000556739 00000 n
-0000556892 00000 n
-0000557045 00000 n
-0000557198 00000 n
-0000557351 00000 n
-0000557503 00000 n
-0000557656 00000 n
-0000557809 00000 n
-0000557962 00000 n
-0000558113 00000 n
-0000558265 00000 n
-0000558418 00000 n
-0000558568 00000 n
-0000558719 00000 n
-0000562678 00000 n
-0000562831 00000 n
-0000562984 00000 n
-0000563137 00000 n
-0000558933 00000 n
-0000542892 00000 n
-0000539586 00000 n
-0000558869 00000 n
-0000543033 00000 n
-0000563290 00000 n
-0000563442 00000 n
-0000563594 00000 n
-0000563746 00000 n
-0000563898 00000 n
-0000564051 00000 n
-0000564204 00000 n
-0000564357 00000 n
-0000564509 00000 n
-0000564662 00000 n
-0000564814 00000 n
-0000564966 00000 n
-0000565117 00000 n
-0000565270 00000 n
-0000565423 00000 n
-0000565576 00000 n
-0000565729 00000 n
-0000565882 00000 n
-0000566034 00000 n
-0000566186 00000 n
-0000566339 00000 n
-0000566491 00000 n
-0000566644 00000 n
-0000566797 00000 n
-0000566950 00000 n
-0000567101 00000 n
-0000567253 00000 n
-0000567404 00000 n
-0000567557 00000 n
-0000567710 00000 n
-0000567863 00000 n
-0000568016 00000 n
-0000568169 00000 n
-0000568322 00000 n
-0000568475 00000 n
-0000568628 00000 n
-0000568781 00000 n
-0000568933 00000 n
-0000569085 00000 n
-0000569238 00000 n
-0000569390 00000 n
-0000569543 00000 n
-0000569696 00000 n
-0000569849 00000 n
-0000570001 00000 n
-0000570154 00000 n
-0000570305 00000 n
-0000570457 00000 n
-0000570610 00000 n
-0000570761 00000 n
-0000570913 00000 n
-0000571066 00000 n
-0000571219 00000 n
-0000571369 00000 n
-0000571519 00000 n
-0000571669 00000 n
-0000571820 00000 n
-0000571971 00000 n
-0000572124 00000 n
-0000572277 00000 n
-0000572430 00000 n
-0000572583 00000 n
-0000572736 00000 n
-0000572887 00000 n
-0000573040 00000 n
-0000573192 00000 n
-0000573344 00000 n
-0000573497 00000 n
-0000573650 00000 n
-0000573803 00000 n
-0000573956 00000 n
-0000574109 00000 n
-0000574262 00000 n
-0000574479 00000 n
-0000561822 00000 n
-0000559110 00000 n
-0000574415 00000 n
-0000561963 00000 n
-0000577337 00000 n
-0000577491 00000 n
-0000577645 00000 n
-0000577799 00000 n
-0000577953 00000 n
-0000578112 00000 n
-0000578271 00000 n
-0000578430 00000 n
-0000578589 00000 n
-0000578747 00000 n
-0000578906 00000 n
-0000579065 00000 n
-0000579219 00000 n
-0000579378 00000 n
-0000579543 00000 n
-0000579708 00000 n
-0000579867 00000 n
-0000580026 00000 n
-0000580191 00000 n
-0000580355 00000 n
-0000580520 00000 n
-0000580685 00000 n
-0000580850 00000 n
-0000581004 00000 n
-0000581162 00000 n
-0000581321 00000 n
-0000581479 00000 n
-0000581638 00000 n
-0000581791 00000 n
-0000581945 00000 n
-0000582104 00000 n
-0000582263 00000 n
-0000582422 00000 n
-0000582575 00000 n
-0000582730 00000 n
-0000582890 00000 n
-0000583050 00000 n
-0000583210 00000 n
-0000583370 00000 n
-0000583530 00000 n
-0000583690 00000 n
-0000583844 00000 n
-0000583999 00000 n
-0000584159 00000 n
-0000584319 00000 n
-0000584477 00000 n
-0000587419 00000 n
-0000584699 00000 n
-0000576760 00000 n
-0000574656 00000 n
-0000584635 00000 n
-0000576901 00000 n
-0000587574 00000 n
-0000587734 00000 n
-0000587893 00000 n
-0000588052 00000 n
-0000588211 00000 n
-0000588371 00000 n
-0000588526 00000 n
-0000588686 00000 n
-0000588845 00000 n
-0000589005 00000 n
-0000589164 00000 n
-0000589323 00000 n
-0000589482 00000 n
-0000589642 00000 n
-0000589802 00000 n
-0000589962 00000 n
-0000590123 00000 n
-0000590284 00000 n
-0000590439 00000 n
-0000590599 00000 n
-0000590765 00000 n
-0000590931 00000 n
-0000591091 00000 n
-0000591251 00000 n
-0000591410 00000 n
-0000591565 00000 n
-0000591719 00000 n
-0000591879 00000 n
-0000592039 00000 n
-0000592199 00000 n
-0000592359 00000 n
-0000592513 00000 n
-0000592673 00000 n
-0000592833 00000 n
-0000592993 00000 n
-0000593153 00000 n
-0000593313 00000 n
-0000593473 00000 n
-0000593633 00000 n
-0000593793 00000 n
-0000593953 00000 n
-0000594114 00000 n
-0000594269 00000 n
-0000594487 00000 n
-0000586859 00000 n
-0000584850 00000 n
-0000594423 00000 n
-0000877503 00000 n
-0000587001 00000 n
-0000594906 00000 n
-0000595861 00000 n
-0000594962 00000 n
-0000595062 00000 n
-0000596103 00000 n
-0000596717 00000 n
-0000596921 00000 n
-0000598333 00000 n
-0000596996 00000 n
-0000597097 00000 n
-0000598575 00000 n
-0000599203 00000 n
-0000599408 00000 n
-0000599553 00000 n
-0000599650 00000 n
-0000600820 00000 n
-0000599716 00000 n
-0000599813 00000 n
-0000601063 00000 n
-0000601678 00000 n
-0000601882 00000 n
-0000601986 00000 n
-0000603841 00000 n
-0000602144 00000 n
-0000602248 00000 n
-0000604081 00000 n
-0000604741 00000 n
-0000604945 00000 n
-0000606400 00000 n
-0000605024 00000 n
-0000605126 00000 n
-0000606648 00000 n
-0000607282 00000 n
-0000607492 00000 n
-0000607537 00000 n
-0000610693 00000 n
-0000607812 00000 n
-0000607918 00000 n
-0000610941 00000 n
-0000611671 00000 n
-0000611881 00000 n
-0000611906 00000 n
-0000615999 00000 n
-0000612248 00000 n
-0000612358 00000 n
-0000616242 00000 n
-0000616990 00000 n
-0000617194 00000 n
-0000617220 00000 n
-0000617472 00000 n
-0000619554 00000 n
-0000617625 00000 n
-0000617731 00000 n
-0000619793 00000 n
-0000620453 00000 n
-0000620655 00000 n
-0000628223 00000 n
-0000621088 00000 n
-0000621200 00000 n
-0000628463 00000 n
-0000629346 00000 n
-0000629549 00000 n
-0000636888 00000 n
-0000629989 00000 n
-0000630097 00000 n
-0000637128 00000 n
-0000638041 00000 n
-0000638245 00000 n
-0000640557 00000 n
-0000638519 00000 n
-0000638625 00000 n
-0000640797 00000 n
-0000641503 00000 n
-0000641707 00000 n
-0000649742 00000 n
-0000642164 00000 n
-0000642276 00000 n
-0000649983 00000 n
-0000650891 00000 n
-0000651096 00000 n
-0000653302 00000 n
-0000651222 00000 n
-0000651330 00000 n
-0000653544 00000 n
-0000654198 00000 n
-0000654403 00000 n
-0000656191 00000 n
-0000654514 00000 n
-0000654618 00000 n
-0000656438 00000 n
-0000657087 00000 n
-0000657297 00000 n
-0000664751 00000 n
-0000657725 00000 n
-0000657840 00000 n
-0000664991 00000 n
-0000665879 00000 n
-0000666082 00000 n
-0000670734 00000 n
-0000666425 00000 n
-0000666536 00000 n
-0000670983 00000 n
-0000671753 00000 n
-0000671964 00000 n
-0000675202 00000 n
-0000672160 00000 n
-0000672267 00000 n
-0000675444 00000 n
-0000676142 00000 n
-0000676347 00000 n
-0000683006 00000 n
-0000676733 00000 n
-0000676844 00000 n
-0000683250 00000 n
-0000684051 00000 n
-0000684256 00000 n
-0000692902 00000 n
-0000684693 00000 n
-0000684807 00000 n
-0000693143 00000 n
-0000694120 00000 n
-0000694325 00000 n
-0000697726 00000 n
-0000694685 00000 n
-0000694792 00000 n
-0000697967 00000 n
-0000698735 00000 n
-0000698940 00000 n
-0000699175 00000 n
-0000708810 00000 n
-0000699743 00000 n
-0000699872 00000 n
-0000709052 00000 n
-0000710054 00000 n
-0000710260 00000 n
-0000710367 00000 n
-0000710646 00000 n
-0000710753 00000 n
-0000710815 00000 n
-0000711010 00000 n
-0000711379 00000 n
-0000719038 00000 n
-0000711822 00000 n
-0000711930 00000 n
-0000719278 00000 n
-0000720210 00000 n
-0000720414 00000 n
-0000722018 00000 n
-0000720571 00000 n
-0000720677 00000 n
-0000722258 00000 n
-0000722917 00000 n
-0000723121 00000 n
-0000726907 00000 n
-0000723413 00000 n
-0000723519 00000 n
-0000727148 00000 n
-0000727881 00000 n
-0000728086 00000 n
-0000729645 00000 n
-0000728179 00000 n
-0000728280 00000 n
-0000729884 00000 n
-0000730510 00000 n
-0000730712 00000 n
-0000732949 00000 n
-0000730891 00000 n
-0000730997 00000 n
-0000733190 00000 n
-0000733859 00000 n
-0000734064 00000 n
-0000738186 00000 n
-0000734396 00000 n
-0000734510 00000 n
-0000738428 00000 n
-0000739175 00000 n
-0000739381 00000 n
-0000740741 00000 n
-0000739504 00000 n
-0000739610 00000 n
-0000740982 00000 n
-0000741627 00000 n
-0000741832 00000 n
-0000745282 00000 n
-0000742094 00000 n
-0000742201 00000 n
-0000745524 00000 n
-0000746240 00000 n
-0000755692 00000 n
-0000746446 00000 n
-0000767116 00000 n
-0000755943 00000 n
-0000774804 00000 n
-0000767870 00000 n
-0000787581 00000 n
-0000775034 00000 n
-0000795052 00000 n
-0000787909 00000 n
-0000803185 00000 n
-0000795278 00000 n
-0000813112 00000 n
-0000803418 00000 n
-0000821024 00000 n
-0000813379 00000 n
-0000833734 00000 n
-0000821255 00000 n
-0000841752 00000 n
-0000834092 00000 n
-0000850993 00000 n
-0000842000 00000 n
-0000858945 00000 n
-0000851301 00000 n
-0000866485 00000 n
-0000859229 00000 n
-0000873999 00000 n
-0000866724 00000 n
-0000877585 00000 n
-0000877716 00000 n
-0000886166 00000 n
-0000886802 00000 n
-0000887442 00000 n
-0000888091 00000 n
-0000888897 00000 n
-0000889810 00000 n
-0000890715 00000 n
-0000890818 00000 n
-0000890955 00000 n
-0000890995 00000 n
-0000891127 00000 n
+0000536837 00000 n
+0000536989 00000 n
+0000537140 00000 n
+0000537290 00000 n
+0000537442 00000 n
+0000537594 00000 n
+0000537746 00000 n
+0000537896 00000 n
+0000538046 00000 n
+0000538198 00000 n
+0000538350 00000 n
+0000538501 00000 n
+0000538653 00000 n
+0000538804 00000 n
+0000538956 00000 n
+0000539104 00000 n
+0000539253 00000 n
+0000539404 00000 n
+0000539556 00000 n
+0000539706 00000 n
+0000539856 00000 n
+0000540007 00000 n
+0000540159 00000 n
+0000540310 00000 n
+0000540462 00000 n
+0000540614 00000 n
+0000540766 00000 n
+0000540917 00000 n
+0000541069 00000 n
+0000541221 00000 n
+0000541372 00000 n
+0000541523 00000 n
+0000541675 00000 n
+0000541827 00000 n
+0000541978 00000 n
+0000542130 00000 n
+0000542282 00000 n
+0000542433 00000 n
+0000542585 00000 n
+0000542736 00000 n
+0000542887 00000 n
+0000543036 00000 n
+0000543187 00000 n
+0000543338 00000 n
+0000543489 00000 n
+0000543639 00000 n
+0000543790 00000 n
+0000543942 00000 n
+0000544095 00000 n
+0000544246 00000 n
+0000544399 00000 n
+0000544551 00000 n
+0000544704 00000 n
+0000544856 00000 n
+0000545009 00000 n
+0000545162 00000 n
+0000545314 00000 n
+0000545467 00000 n
+0000545620 00000 n
+0000545772 00000 n
+0000545925 00000 n
+0000546078 00000 n
+0000546231 00000 n
+0000546382 00000 n
+0000546535 00000 n
+0000546688 00000 n
+0000546841 00000 n
+0000546994 00000 n
+0000547146 00000 n
+0000547298 00000 n
+0000547451 00000 n
+0000547603 00000 n
+0000547756 00000 n
+0000547909 00000 n
+0000548062 00000 n
+0000548213 00000 n
+0000548366 00000 n
+0000548518 00000 n
+0000548670 00000 n
+0000548823 00000 n
+0000548975 00000 n
+0000549127 00000 n
+0000549280 00000 n
+0000549433 00000 n
+0000549586 00000 n
+0000549739 00000 n
+0000549892 00000 n
+0000550045 00000 n
+0000550198 00000 n
+0000550351 00000 n
+0000550504 00000 n
+0000550657 00000 n
+0000550806 00000 n
+0000550956 00000 n
+0000551106 00000 n
+0000551258 00000 n
+0000551410 00000 n
+0000551563 00000 n
+0000551716 00000 n
+0000551868 00000 n
+0000552019 00000 n
+0000556845 00000 n
+0000556997 00000 n
+0000557149 00000 n
+0000552296 00000 n
+0000534052 00000 n
+0000530709 00000 n
+0000552169 00000 n
+0000534193 00000 n
+0000557301 00000 n
+0000557453 00000 n
+0000557606 00000 n
+0000557757 00000 n
+0000557909 00000 n
+0000558059 00000 n
+0000558212 00000 n
+0000558364 00000 n
+0000558517 00000 n
+0000558668 00000 n
+0000558819 00000 n
+0000558972 00000 n
+0000559125 00000 n
+0000559277 00000 n
+0000559430 00000 n
+0000559583 00000 n
+0000559736 00000 n
+0000559889 00000 n
+0000560041 00000 n
+0000560193 00000 n
+0000560345 00000 n
+0000560498 00000 n
+0000560651 00000 n
+0000560803 00000 n
+0000560955 00000 n
+0000561108 00000 n
+0000561261 00000 n
+0000561414 00000 n
+0000561567 00000 n
+0000561720 00000 n
+0000561872 00000 n
+0000562024 00000 n
+0000562177 00000 n
+0000562330 00000 n
+0000562483 00000 n
+0000562635 00000 n
+0000562787 00000 n
+0000562940 00000 n
+0000563093 00000 n
+0000563246 00000 n
+0000563399 00000 n
+0000563552 00000 n
+0000563704 00000 n
+0000563857 00000 n
+0000564010 00000 n
+0000564163 00000 n
+0000564313 00000 n
+0000564463 00000 n
+0000564614 00000 n
+0000564767 00000 n
+0000564920 00000 n
+0000565073 00000 n
+0000565225 00000 n
+0000565378 00000 n
+0000565530 00000 n
+0000565682 00000 n
+0000565835 00000 n
+0000565986 00000 n
+0000566139 00000 n
+0000566291 00000 n
+0000566444 00000 n
+0000566597 00000 n
+0000566750 00000 n
+0000566902 00000 n
+0000567055 00000 n
+0000567208 00000 n
+0000567361 00000 n
+0000567512 00000 n
+0000567663 00000 n
+0000567814 00000 n
+0000567966 00000 n
+0000568119 00000 n
+0000568272 00000 n
+0000568425 00000 n
+0000568578 00000 n
+0000568731 00000 n
+0000568884 00000 n
+0000569036 00000 n
+0000569189 00000 n
+0000569342 00000 n
+0000569495 00000 n
+0000569647 00000 n
+0000569800 00000 n
+0000569953 00000 n
+0000570106 00000 n
+0000570259 00000 n
+0000570411 00000 n
+0000570564 00000 n
+0000570717 00000 n
+0000570870 00000 n
+0000571021 00000 n
+0000571173 00000 n
+0000571326 00000 n
+0000571476 00000 n
+0000571627 00000 n
+0000575575 00000 n
+0000575728 00000 n
+0000575881 00000 n
+0000576034 00000 n
+0000571841 00000 n
+0000555800 00000 n
+0000552486 00000 n
+0000571777 00000 n
+0000555941 00000 n
+0000576187 00000 n
+0000576339 00000 n
+0000576491 00000 n
+0000576643 00000 n
+0000576795 00000 n
+0000576948 00000 n
+0000577101 00000 n
+0000577254 00000 n
+0000577406 00000 n
+0000577559 00000 n
+0000577711 00000 n
+0000577863 00000 n
+0000578014 00000 n
+0000578167 00000 n
+0000578320 00000 n
+0000578473 00000 n
+0000578626 00000 n
+0000578779 00000 n
+0000578931 00000 n
+0000579083 00000 n
+0000579236 00000 n
+0000579388 00000 n
+0000579541 00000 n
+0000579694 00000 n
+0000579847 00000 n
+0000579998 00000 n
+0000580150 00000 n
+0000580301 00000 n
+0000580454 00000 n
+0000580607 00000 n
+0000580760 00000 n
+0000580913 00000 n
+0000581066 00000 n
+0000581219 00000 n
+0000581372 00000 n
+0000581525 00000 n
+0000581677 00000 n
+0000581829 00000 n
+0000581982 00000 n
+0000582134 00000 n
+0000582287 00000 n
+0000582440 00000 n
+0000582593 00000 n
+0000582746 00000 n
+0000582898 00000 n
+0000583051 00000 n
+0000583202 00000 n
+0000583354 00000 n
+0000583507 00000 n
+0000583658 00000 n
+0000583810 00000 n
+0000583963 00000 n
+0000584116 00000 n
+0000584266 00000 n
+0000584416 00000 n
+0000584566 00000 n
+0000584717 00000 n
+0000584868 00000 n
+0000585021 00000 n
+0000585174 00000 n
+0000585327 00000 n
+0000585480 00000 n
+0000585633 00000 n
+0000585784 00000 n
+0000585937 00000 n
+0000586089 00000 n
+0000586241 00000 n
+0000586394 00000 n
+0000586547 00000 n
+0000586700 00000 n
+0000586853 00000 n
+0000587006 00000 n
+0000587159 00000 n
+0000587376 00000 n
+0000574718 00000 n
+0000572018 00000 n
+0000587312 00000 n
+0000890573 00000 n
+0000574860 00000 n
+0000590236 00000 n
+0000590390 00000 n
+0000590544 00000 n
+0000590698 00000 n
+0000590852 00000 n
+0000591011 00000 n
+0000591170 00000 n
+0000591329 00000 n
+0000591488 00000 n
+0000591646 00000 n
+0000591805 00000 n
+0000591964 00000 n
+0000592118 00000 n
+0000592277 00000 n
+0000592442 00000 n
+0000592607 00000 n
+0000592766 00000 n
+0000592925 00000 n
+0000593090 00000 n
+0000593254 00000 n
+0000593419 00000 n
+0000593584 00000 n
+0000593749 00000 n
+0000593903 00000 n
+0000594061 00000 n
+0000594220 00000 n
+0000594378 00000 n
+0000594537 00000 n
+0000594690 00000 n
+0000594844 00000 n
+0000595003 00000 n
+0000595162 00000 n
+0000595321 00000 n
+0000595474 00000 n
+0000595629 00000 n
+0000595789 00000 n
+0000595949 00000 n
+0000596109 00000 n
+0000596269 00000 n
+0000596429 00000 n
+0000596589 00000 n
+0000596743 00000 n
+0000596898 00000 n
+0000597058 00000 n
+0000597218 00000 n
+0000597376 00000 n
+0000600314 00000 n
+0000597598 00000 n
+0000589658 00000 n
+0000587553 00000 n
+0000597534 00000 n
+0000589800 00000 n
+0000600469 00000 n
+0000600629 00000 n
+0000600788 00000 n
+0000600947 00000 n
+0000601106 00000 n
+0000601266 00000 n
+0000601421 00000 n
+0000601581 00000 n
+0000601740 00000 n
+0000601900 00000 n
+0000602059 00000 n
+0000602218 00000 n
+0000602377 00000 n
+0000602537 00000 n
+0000602697 00000 n
+0000602857 00000 n
+0000603018 00000 n
+0000603179 00000 n
+0000603334 00000 n
+0000603494 00000 n
+0000603660 00000 n
+0000603826 00000 n
+0000603986 00000 n
+0000604146 00000 n
+0000604305 00000 n
+0000604460 00000 n
+0000604614 00000 n
+0000604774 00000 n
+0000604934 00000 n
+0000605094 00000 n
+0000605254 00000 n
+0000605408 00000 n
+0000605568 00000 n
+0000605728 00000 n
+0000605888 00000 n
+0000606048 00000 n
+0000606208 00000 n
+0000606368 00000 n
+0000606528 00000 n
+0000606688 00000 n
+0000606848 00000 n
+0000607009 00000 n
+0000607164 00000 n
+0000607382 00000 n
+0000599754 00000 n
+0000597749 00000 n
+0000607318 00000 n
+0000599896 00000 n
+0000607801 00000 n
+0000608756 00000 n
+0000607857 00000 n
+0000607957 00000 n
+0000608998 00000 n
+0000609612 00000 n
+0000609816 00000 n
+0000611228 00000 n
+0000609891 00000 n
+0000609992 00000 n
+0000611470 00000 n
+0000612098 00000 n
+0000612303 00000 n
+0000612448 00000 n
+0000612545 00000 n
+0000613715 00000 n
+0000612611 00000 n
+0000612708 00000 n
+0000613958 00000 n
+0000614573 00000 n
+0000614777 00000 n
+0000614881 00000 n
+0000616736 00000 n
+0000615039 00000 n
+0000615143 00000 n
+0000616976 00000 n
+0000617636 00000 n
+0000617840 00000 n
+0000619295 00000 n
+0000617919 00000 n
+0000618021 00000 n
+0000619543 00000 n
+0000620177 00000 n
+0000620387 00000 n
+0000620432 00000 n
+0000623588 00000 n
+0000620707 00000 n
+0000620813 00000 n
+0000623836 00000 n
+0000624566 00000 n
+0000624776 00000 n
+0000624801 00000 n
+0000628894 00000 n
+0000625143 00000 n
+0000625253 00000 n
+0000629137 00000 n
+0000629885 00000 n
+0000630089 00000 n
+0000630115 00000 n
+0000630367 00000 n
+0000632449 00000 n
+0000630520 00000 n
+0000630626 00000 n
+0000632688 00000 n
+0000633348 00000 n
+0000633550 00000 n
+0000641118 00000 n
+0000633983 00000 n
+0000634095 00000 n
+0000641358 00000 n
+0000642241 00000 n
+0000642444 00000 n
+0000649783 00000 n
+0000642884 00000 n
+0000642992 00000 n
+0000650023 00000 n
+0000650936 00000 n
+0000651140 00000 n
+0000653771 00000 n
+0000651437 00000 n
+0000651543 00000 n
+0000654011 00000 n
+0000654726 00000 n
+0000654930 00000 n
+0000662965 00000 n
+0000655387 00000 n
+0000655499 00000 n
+0000663206 00000 n
+0000664114 00000 n
+0000664319 00000 n
+0000666525 00000 n
+0000664445 00000 n
+0000664553 00000 n
+0000666767 00000 n
+0000667421 00000 n
+0000667626 00000 n
+0000669414 00000 n
+0000667737 00000 n
+0000667841 00000 n
+0000669661 00000 n
+0000670310 00000 n
+0000670520 00000 n
+0000677974 00000 n
+0000670948 00000 n
+0000671063 00000 n
+0000678214 00000 n
+0000679102 00000 n
+0000679305 00000 n
+0000683957 00000 n
+0000679648 00000 n
+0000679759 00000 n
+0000684206 00000 n
+0000684976 00000 n
+0000685187 00000 n
+0000688425 00000 n
+0000685383 00000 n
+0000685490 00000 n
+0000688667 00000 n
+0000689365 00000 n
+0000689570 00000 n
+0000696072 00000 n
+0000689952 00000 n
+0000690063 00000 n
+0000696316 00000 n
+0000697116 00000 n
+0000697321 00000 n
+0000705967 00000 n
+0000697758 00000 n
+0000697872 00000 n
+0000706208 00000 n
+0000707185 00000 n
+0000707390 00000 n
+0000710791 00000 n
+0000707750 00000 n
+0000707857 00000 n
+0000711032 00000 n
+0000711800 00000 n
+0000712005 00000 n
+0000712240 00000 n
+0000721836 00000 n
+0000712796 00000 n
+0000712925 00000 n
+0000722078 00000 n
+0000723078 00000 n
+0000723284 00000 n
+0000723391 00000 n
+0000723670 00000 n
+0000723777 00000 n
+0000723839 00000 n
+0000724034 00000 n
+0000724403 00000 n
+0000732118 00000 n
+0000724857 00000 n
+0000724965 00000 n
+0000732358 00000 n
+0000733294 00000 n
+0000733498 00000 n
+0000735102 00000 n
+0000733655 00000 n
+0000733761 00000 n
+0000735342 00000 n
+0000736001 00000 n
+0000736205 00000 n
+0000739991 00000 n
+0000736497 00000 n
+0000736603 00000 n
+0000740232 00000 n
+0000740965 00000 n
+0000741170 00000 n
+0000742729 00000 n
+0000741263 00000 n
+0000741364 00000 n
+0000742968 00000 n
+0000743594 00000 n
+0000743796 00000 n
+0000746033 00000 n
+0000743975 00000 n
+0000744081 00000 n
+0000746274 00000 n
+0000746943 00000 n
+0000747148 00000 n
+0000751257 00000 n
+0000747480 00000 n
+0000747594 00000 n
+0000751499 00000 n
+0000752247 00000 n
+0000752453 00000 n
+0000753813 00000 n
+0000752576 00000 n
+0000752682 00000 n
+0000754054 00000 n
+0000754699 00000 n
+0000754904 00000 n
+0000758354 00000 n
+0000755166 00000 n
+0000755273 00000 n
+0000758596 00000 n
+0000759312 00000 n
+0000768764 00000 n
+0000759518 00000 n
+0000780188 00000 n
+0000769015 00000 n
+0000787876 00000 n
+0000780942 00000 n
+0000800653 00000 n
+0000788106 00000 n
+0000808124 00000 n
+0000800981 00000 n
+0000816257 00000 n
+0000808350 00000 n
+0000826184 00000 n
+0000816490 00000 n
+0000834096 00000 n
+0000826451 00000 n
+0000846806 00000 n
+0000834327 00000 n
+0000854824 00000 n
+0000847164 00000 n
+0000864065 00000 n
+0000855072 00000 n
+0000872017 00000 n
+0000864373 00000 n
+0000879557 00000 n
+0000872301 00000 n
+0000887071 00000 n
+0000879796 00000 n
+0000890673 00000 n
+0000890804 00000 n
+0000899254 00000 n
+0000899890 00000 n
+0000900530 00000 n
+0000901173 00000 n
+0000901966 00000 n
+0000902884 00000 n
+0000903789 00000 n
+0000903940 00000 n
+0000904077 00000 n
+0000904117 00000 n
+0000904249 00000 n
trailer
-<< /Size 1564 /Root 1562 0 R /Info 1563 0 R /ID [ <BE65CC6E78F9273580FD530CA1CBF8CB> <BE65CC6E78F9273580FD530CA1CBF8CB> ] >>
+<< /Size 1580 /Root 1578 0 R /Info 1579 0 R /ID [ <87FBA6A04BD5A796E53A2982313F1E2E> <87FBA6A04BD5A796E53A2982313F1E2E> ] >>
startxref
-891691
+904813
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix.tex b/macros/latex/contrib/nicematrix/nicematrix.tex
index 7bafda9008..1e383b9bdc 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix.tex
@@ -1,4 +1,4 @@
-% -*- coding: utf-8 ; -*- This file should be compiled with XeLaTeX only
+% -*- coding: utf-8 ; -*- This file should be compiled with LuaLaTeX only
\documentclass[dvipsnames]{article}% dvipsnames is for xcolor (loaded by TikZ,
% loaded by nicematrix)
@@ -62,7 +62,7 @@
\usepackage{piton}
-\PitonOptions{language = minimal, detected-commands = {emph,textsl}, splittable = 4}
+\PitonOptions{language = verbatim, detected-commands = {emph,textsl}, splittable = 4}
\SetPitonStyle{ Number = , Comment = }
\ExplSyntaxOn
@@ -116,8 +116,9 @@
\VerbatimFootnotes
-\title{The package \pkg{nicematrix}\thanks{This document corresponds to the version~\myfileversion\space of \pkg{nicematrix},
-at the date of~\myfiledate.}} \author{F. Pantigny \\ \texttt{fpantigny@wanadoo.fr}}
+\title{The package \pkg{nicematrix}\thanks{This document corresponds to the
+ version~\myfileversion\space of \pkg{nicematrix}, at the date of~\myfiledate.}}
+\author{F. Pantigny \\ \texttt{fpantigny@wanadoo.fr}}
\maketitle
@@ -143,9 +144,11 @@ L_2 & a_{21} & a_{22} & \Cdots & a_{2n} \\
\Vdots & \Vdots & \Vdots & \Ddots & \Vdots\\
L_n & a_{n1} & a_{n2} & \Cdots & a_{nn}
\end{bNiceArray}$\hspace{2cm}
-\begin{NiceTabular}{lSSSS}[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\begin{NiceTabular}{lSSSS}%
+ [code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
\toprule
-\Block{2-1}{Product} & \multicolumn{3}{c}{dimensions (cm)} & \Block{2-1}{\rotate Price} \\
+\Block{2-1}{Product} & \multicolumn{3}{c}{dimensions (cm)}
+ & \Block{2-1}{\rotate Price} \\
\cmidrule(rl){2-4}
& L & l & h \\
\midrule
@@ -170,16 +173,15 @@ If you use LaTeX via Internet with, for example, Overleaf, you
can upload the file |nicematrix.sty| in the repertory of your
project in order to take full advantage of the latest version de
\pkg{nicematrix}.\footnote{The latest version of the file
-|nicematrix.sty| may be downloaded from the \textsc{svn} server of
-TeXLive:\newline
+|nicematrix.sty| may be downloaded on the Github depot of \pkg{nicematrix}:\newline
\small
-\url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
+\url{https://github.com/fpantigny/nicematrix/releases}}
\medskip
This package can be used with |xelatex|, |lualatex|, |pdflatex| but also by
the classical workflow |latex|-|dvips|-|ps2pdf| (or Adobe Distiller).
\textsl{However, the file nicematrix.dtx of the present documentation should
-be compiled with XeLaTeX.}
+be compiled with LuaLaTeX.}
\medskip
This package requires and \textbf{loads} the packages \pkg{l3keys2e},
@@ -195,8 +197,9 @@ and the positions of the rules of the tabular created by \pkg{array} and to
use these nodes to develop new features. As usual with \textsc{pgf}, the
coordinates of these nodes are written in the |aux| to be used on the next
compilation and that's why \pkg{nicematrix} may need \textbf{several
-compilations}.\footnote{If you use Overleaf, Overleaf will do automatically
-a sufficient number of compilations.}
+compilations}\footnote{If you use Overleaf, Overleaf will do automatically
+a sufficient number of compilations.}. One must not use the command |\nofiles|
+(which prevents the creation of the |aux| file).
\medskip
Most features of \pkg{nicematrix} may be used without explicit use of
@@ -286,12 +289,13 @@ $\begin{pmatrix}
\bigskip
Inspired by the package \pkg{cellspace} which deals with that problem, the
-package \pkg{nicematrix} provides two keys |cell-space-top-limit| and
-|cell-space-bottom-limit| similar to the parameters of \pkg{cellspace} called
-|\cellspacetoplimit| and
+package \pkg{nicematrix} provides two keys \Definition{cell-space-top-limit} and
+\Definition{cell-space-bottom-limit} similar to the parameters of
+\pkg{cellspace} called |\cellspacetoplimit| and
|\cellspacebottomlimit|.\index{cellspace@\pkg{cellspace} (package)}
-There is also a key |cell-space-limits| to set both parameters at once.
+There is also a key \Definition{cell-space-limits} to set both parameters at
+once.
The initial value of these parameters is $0$~pt in order to have for the
environments of \pkg{nicematrix} the same behaviour as those of \pkg{array}
@@ -331,9 +335,9 @@ command |\RowStyle| provided by \pkg{nicematrix} (cf.~p.~\pageref{RowStyle}).
\index{baseline (key for an environment)}
-The package \pkg{nicematrix} provides a option |baseline| for the vertical
-position of the arrays. This option takes in as value an integer which is the
-number of the row on which the array will be aligned.
+The package \pkg{nicematrix} provides a option \Definition{baseline} for the
+vertical position of the arrays. This option takes in as value an integer which
+is the number of the row on which the array will be aligned.
\medskip
\begin{Code}[width=9cm]
@@ -471,8 +475,8 @@ $A=\begin{pNiceArray}{cc|cc}\emph{[baseline=line-3]}
\subsection{General case}
In the environments of \pkg{nicematrix}, it's possible to use the command
-|\Block| in order to place an element in the center of a rectangle of merged
-cells of the array.\footnote{The spaces after a command |\Block| are deleted.}
+\DefinitionCommand{Block} in order to place an element in the center of a
+rectangle of merged cells of the array.\footnote{The spaces after a command |\Block| are deleted.}
The command |\Block| must be used in the upper leftmost cell of the cells of the
block with two mandatory arguments.
@@ -660,9 +664,10 @@ In the following example, we have had to enlarge by hand the columns 2 and 3
\bigskip
\begin{Code}
\begin{NiceTabular}{cw{c}{2cm}w{c}{3cm}c}
-rose & tulip & daisy & dahlia \\
-violet & \emph{\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}
- {\LARGE Some beautiful flowers}} & & marigold \\
+rose & tulip & daisy & dahlia \\
+violet
+ & \emph{\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}
+ {\LARGE Some beautiful flowers}} & & marigold \\
& & marigold \\
iris & & & lis \\
arum & periwinkle & forget-me-not & hyacinth
@@ -908,11 +913,13 @@ Rank & \Block[C]{1-3}{First group} & & & \Block{1-3}{Second group} \\
\colorbox{yellow!50}{\bfseries New 6.28}\par\nobreak
\smallskip
-The command |\Block| supports also a key |p|. With that key, the content of the
-block is formatted like a paragraph (as in a column of type |p|). That key may
-be used in conjunction with the key |l|, |c| or |r|, and, in that case, the
-paragraph is formatted with |\raggedright|, |\centering| or |\raggedleft|. With
-the key |j|, the paragraph is justified.
+The command |\Block| supports also the keys |p| and |j|. With the key
+\Definition{p}, the content of the block is formatted like a paragraph (as in a
+column of type |p|). That key may be used in conjunction with the key: |l|, |c|
+or |r|, and, in that case, the paragraph is formatted with |\raggedright|,
+|\centering| or |\raggedleft| (or |\RaggedRight|, |\Centering| and |\RaggedLeft|
+when \pkg{ragged2e}) est chargée. With the key \Definition{j}, the paragraph is
+justified.
\subsection{Vertical position of the content of the block}
@@ -1055,7 +1062,7 @@ in the content of a block (in order to format its contents) but there is some re
\item For |\\|, there is no other restriction. It's possible to use |\\| in a
block to format a text on several rows.
-\item In order to use |&|, the key |ampersand-in-blocks| (alias: |&-in-blocks|)
+\item In order to use |&|, the key \Definition{ampersand-in-blocks} (alias: |&-in-blocks|)
must been activated\footnote{Otherwise, the use of~|&| in the command |\Block|
will raise a TeX error :\\
|! Extra alignment tab has been changed to \cr.|}. Then, the block is divided in sub-blocks as illustrated
@@ -1073,34 +1080,32 @@ With the ampserand |&|, it's possible to divide horizontally a block in
sub-blocks of \emph{the same size}.
\medskip
-\begin{Code}[width=85mm]
+\begin{Code}[width=90mm]
\begin{NiceTabular}{ll}%
- [hvlines,ampersand-in-blocks]
- & les cinq premiers entiers naturels \\
-3 & \Block{un&deux&trois} \\
-4 & \Block{un&deux&trois& quatre} \\
-5 & \Block{un&deux&trois&quatre&cinq} \\
+ [hvlines,\emph{ampersand-in-blocks}]
+ & the five first naturels numbers \\
+3 & \Block{}{one & two & three} \\
+4 & \Block{}{one& two & three & four} \\
+5 & \Block{}{one & two & three & four & five} \\
\end{NiceTabular}
\end{Code}
%
\begin{NiceTabular}{ll}%
[hvlines,ampersand-in-blocks]
- & les cinq premiers entiers naturels \\
-3 & \Block{}{un & deux & trois} \\
-4 & \Block{}{un& deux & trois & quatre} \\
-5 & \Block{}{un & deux & trois & quatre & cinq} \\
+ & the five first naturels numbers \\
+3 & \Block{}{one & two & three} \\
+4 & \Block{}{one& two & three & four} \\
+5 & \Block{}{one & two & three & four & five} \\
\end{NiceTabular}
-
-
As we can see, the blocks (which was are in fact mono-cell blocks) are divided
into sub-blocks of the same size. However, maybe the following code would be prefered.
\medskip
-\begin{Code}[width=85mm]
+\begin{Code}[width=90mm]
\begin{NiceTabular}{lccccc}%
- [hvlines,ampersand-in-blocks]
+ [hvlines,\emph{ampersand-in-blocks}]
& \Block{1-5}{the five first
natural numbers} \\
3 & \Block{1-5}{one & two & three} \\
@@ -1170,19 +1175,20 @@ keys |first-row| and |last-row|: cf.~p.~\pageref{exterior}).
\bigskip
\index{booktabs@\pkg{booktabs} (package)}
If you use \pkg{booktabs} (which provides |\toprule|, |\midrule|,
-|\bottomrule|, etc.) and if you really want to add vertical rules (which is
+|\bottomrule|, etc.) and if you actually want to add vertical rules (which is
not in the spirit of \pkg{booktabs}), you should notice that the vertical rules
-drawn by \pkg{nicematrix} are compatible with \pkg{booktabs}.
+drawn by \pkg{nicematrix} are compatible with \pkg{booktabs}. Remark that
+\pkg{nicematrix} does \emph{not} load \pkg{booktabs}.
\medskip
\begin{Code}[width=10.5cm]
-$\begin{NiceArray}{\emph{|cccc|}} \toprule
+$\begin{NiceArray}{\emph{c|ccc}} \toprule
a & b & c & d \\ \midrule
1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ \bottomrule
\end{NiceArray}$
\end{Code}
-$\begin{NiceArray}{|cccc|}
+$\begin{NiceArray}{c|ccc}
\toprule
a & b & c & d \\
\midrule
@@ -1236,7 +1242,8 @@ A&B&C&D \\
\medskip
\index{standard-cline}
In the environments of \pkg{nicematrix}, this situation is corrected (it's
-still possible to go to the standard behaviour of |\cline| with the key |standard-cline|).
+still possible to go to the standard behaviour of |\cline| with the key
+\Definition{standard-cline}).
\medskip
\begin{Code}[width=10cm]
@@ -1267,10 +1274,10 @@ is equivalent to |\cline{|\textsl{\texttt{i}}|-|\textsl{\texttt{i}}|}|.
\index{width!subkey of ``rules''}
\index{rules (key for an environment)}
-The environments of \pkg{nicematrix} provide a key |rules/width| to set the
-width (in fact the thickness) of the rules in the current environment. In
-fact, this key merely sets the value of the standard LaTeX length
-|\arrayrulewidth|.
+The environments of \pkg{nicematrix} provide a key \Definition{rules/width} to
+set the width (in fact the thickness) of the rules in the current environment.
+In fact, this key merely sets the value of the standard LaTeX length
+|\arrayrulewidth|.
\smallskip
It's well known that \pkg{colortbl} provides the command |\arrayrulecolor| in
@@ -1281,7 +1288,7 @@ order to specify the color of the rules.
With \pkg{nicematrix}, it's possible to specify the color of the rules even when
\pkg{colortbl} is not loaded. For sake of compatibility, the command is also
named |\arrayrulecolor|. However, \pkg{nicematrix} also provides a key
-|rules/color|, available in |\NiceMatrixOptions| or in an individual
+\Definition{rules/color}, available in |\NiceMatrixOptions| or in an individual
environment, to fix the color of the rules. This key sets the value locally
(whereas |\arrayrulecolor| acts globally!) and should be prefered.
@@ -1350,7 +1357,7 @@ those keys, see |custom-line| on p.~\pageref{custom-line}.\footnote{Technical
shall be ensured that this new command is expandable in the TeX sens (by
using, for instance, |\NewExpandableDocumentCommand| of LaTeX3, |\newcommand|
of LaTeX or |\def| of TeX). Example:
- |\newcommand{\RedLine}{\Hline[color=red]}|}
+ |\NewDocumentCommand{\RedLine}{}{\Hline[color=red]}|}
\bigskip
@@ -1385,10 +1392,10 @@ c & d \\
\index{vlines|see{Rules}}
\index{vlines!key for an environment}
-The keys |hlines| and |vlines| (which draw, of course, horizontal and vertical
-rules) take in as value a list of numbers which are the numbers of the rules
-to draw.\footnote{It's possible to put in that list some intervals of integers
-with the syntax $i$|-|$j$.}
+The keys \Definition{hlines} and \Definition{vlines} (which draw, of course,
+horizontal and vertical rules) take in as value a list of numbers which are the
+numbers of the rules to draw.\footnote{It's possible to put in that list some
+ intervals of integers with the syntax $i$|-|$j$.}
In fact, for the environments with delimiters (such as |{pNiceMatrix}| or
|{bNiceArray}|), the key |vlines| don't draw the exterior rules (this is
@@ -1441,7 +1448,8 @@ z & 0 & 0 & 0 & 0 & 0 \\
\index{hvlines-except-borders}
-The key |hvlines| (no value) is the conjonction of the keys |hlines| and |vlines|.
+The key \Definition{hvlines} (no value) is the conjonction of the keys |hlines|
+and |vlines|.
\smallskip
\begin{Code}
@@ -1471,10 +1479,10 @@ exterior frame of the tabular: cf. part~\ref{tabular-rounded-corners},
p.~\pageref{tabular-rounded-corners}.
\bigskip
-The key |hvlines-except-borders| is similar to the key |hvlines| but does not
-draw the rules on the horizontal and vertical borders of the array. For an
-example of use of that key, see the part ``Use with tcolorbox'',
-p.~\pageref{tcolorbox}.
+The key \Definition{hvlines-except-borders} is similar to the key |hvlines| but
+does not draw the rules on the horizontal and vertical borders of the array. For
+an example of use of that key, see the part ``Use with tcolorbox'',
+p.~\pageref{tcolorbox}.
\subsubsection{The (empty) corners}
@@ -1494,7 +1502,7 @@ natural. The precise definition of a ``non-empty cell'' is given below (cf.
p.~\pageref{empty-cells}).}
However, it's possible, for a cell without content, to require \pkg{nicematrix}
-to consider that cell as not empty with the key |\NotEmpty|.
+to consider that cell as not empty with the command |\NotEmpty|.
\bigskip
\begin{minipage}{9cm}
@@ -1523,7 +1531,7 @@ A & A & A & A & A & A \\
\end{NiceTabular}
\bigskip
-When the key |corners|\footnote{The key |corners| that we describe now
+When the key \Definition{corners}\footnote{The key |corners| that we describe now
has no direct link with the key |rounded-corners| described in the part
\ref{tabular-rounded-corners}, p.~\pageref{tabular-rounded-corners}} is used,
\pkg{nicematrix} computes the (empty) corners and these corners will be taken
@@ -1595,8 +1603,8 @@ command |\TikzEveryCell| available in the |\CodeBefore| and the |\CodeAfter|
\indexcommand{diagbox}
-The command |\diagbox| (inspired by the package \pkg{diagbox}), allows, when
-it is used in a cell, to slash that cell diagonally downwards.
+The command \DefinitionCommand{diagbox} (inspired by the package \pkg{diagbox}),
+allows, when it is used in a cell, to slash that cell diagonally downwards.
\medskip
\begin{Code}[width=10cm]
@@ -1619,7 +1627,50 @@ c & c & b & a & e
\medskip
It's possible to use the command |\diagbox| in a |\Block|.
+\medskip
+\begin{Code}[width=10cm]
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\emph{\Block{2-2}{\diagbox{x}{y}}} & & a & b & c \\
+ & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\end{Code}
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\Block{2-2}{\diagbox{x}{y}} & & a & b & c \\
+ & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+
+\medskip
+But it's also possible to use |\diagbox| for the diagonal rule only (and the
+labels are put but the usual way, that is to say in cells of the tabular).
+
+\medskip
+\begin{Code}[width=10cm]
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\emph{\Block{2-2}{\diagbox{}{}}} & y & a & b & c \\
+x & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\end{Code}
+$\begin{NiceArray}{*{5}{c}}[hvlines]
+\Block{2-2}{\diagbox{}{}} & y & a & b & c \\
+x & & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\medskip
+Nevertheless, it's always possible to draw whatever rule we wish with TikZ in
+the |\CodeAfter| (or the |\CodeBefore|) by using the PGF/TikZ nodes created by
+\pkg{nicematrix}: cf. p.~\pageref{PGF-nodes}.
\subsubsection{Commands for customized rules}
@@ -1631,9 +1682,9 @@ It's possible to use the command |\diagbox| in a |\Block|.
\index{custom-line|(}
-It's also possible to define commands and letters for customized rules with
-the key |custom-line| available in |\NiceMatrixOptions| and in the options of
-individual environments. That key takes in as argument a list of
+It's also possible to define commands and letters for customized rules with the
+key \Definition{custom-line} available in |\NiceMatrixOptions| and in the
+options of individual environments. That key takes in as argument a list of
\textsl{key=value} pairs. First, there is three keys to define the tools which
will be used to use that new type of rule.
@@ -1778,8 +1829,8 @@ applied to a TikZ path.
By default, no space is reserved for the rule that will be drawn with TikZ. It
is possible to specify a reservation (horizontal for a vertical rule and
-vertical for an horizontal one) with the key |total-width|. That value of that
-key, is, in some ways, the width of the rule that will be drawn
+vertical for an horizontal one) with the key \Definition{total-width}. That
+value of that key, is, in some ways, the width of the rule that will be drawn
(\pkg{nicematrix} does not compute that width from the characteristics of the
rule specified in |tikz|).
@@ -1838,7 +1889,7 @@ dotted rules are also used by \pkg{nicematrix} to draw continuous dotted rules
between cells of the matrix with |\Cdots|, |\Vdots|, etc. (cf. p.~\pageref{Cdots}).
In fact, \pkg{nicematrix} defines by default the commands
-\Definition{hdottedline} and \Definition{cdottedline} and the letter ``|:|'' for
+\DefinitionCommand{hdottedline} and \DefinitionCommand{cdottedline} and the letter ``|:|'' for
those dotted rules.\footnote{However, it's possible to overwrite those
definitions with a |custom-line| (in order, for example, to switch to dashed
lines).}
@@ -2531,16 +2582,19 @@ We have used the type of column |S| of \pkg{siunitx}.
It's possible to access the preceding tools with a syntax close to the syntax
-of \pkg{colortbl}. For that, one must use the key |color-inside|\footnote{There
+of \pkg{colortbl}. For that, one must use the key \Definition{color-inside}\footnote{There
is an alias for that key : \texttt{colortbl-like}.} in the
current environment.\footnote{Up to now, this key is \emph{not} available in |\NiceMatrixOptions|.}
There are several commands available (the first three ones are inspired by
\pkg{colortbl} but are \emph{independent} of \pkg{colortbl}):
\begin{itemize}
-\item \DefinitionCommand{cellcolor} which colorizes a cell;\footnote{However,
- this command cellcolor will delete the following spaces, which does not the
- command cellcolor of \pkg{colortbl}.}
+\item \DefinitionCommand{cellcolor} which colorizes a cell;\footnote{That
+ command |\cellcolor| will delete the following spaces, which does not the
+ command |\cellcolor| of \pkg{colortbl}. Moreover, if one wishes to define a
+ command above that command |\cellcolor|, it must be protected in the TeX sens
+ (whereas, if it were the command |\cellcolor| of \pkg{colortbl}, one should
+ write a \emph{fully expandable} command).}
\item \DefinitionCommand{rowcolor} which must be used in a cell and which
colorizes the end of the row;\footnote{If you want a commande to color the
following $n$~rows, consider the command |\RowStyle| and its key |rowcolor|,
@@ -2652,8 +2706,8 @@ general coloring command.
\index{cell-space-limits}
-The command |\RowStyle| takes in as argument some formatting intructions that
-will be applied to each cell on the rest of the current row.
+The command \DefinitionCommand{RowStyle} takes in as argument some formatting
+intructions that will be applied to each cell on the rest of the current row.
\medskip
That command also takes in as optional argument (between square brackets)
@@ -2732,7 +2786,7 @@ Rio & Tokyo & Oslo
\index{columns-width}
In the environments of \pkg{nicematrix}, it's also possible to fix the \emph{minimal}
width of all the columns (except the potential exterior columns: cf. p.~\pageref{exterior}) directly
-with the key |columns-width|.
+with the key \Definition{columns-width}.
\medskip
\begin{Code}[width=10cm]
@@ -2851,14 +2905,14 @@ $\begin{array}{c}
The environment |{NiceTabular}| provides |X| columns similar to those provided
by the environment |{tabularx}| of the eponymous package.
-The required width of the tabular may be specified with the key |width| (in
-|{NiceTabular}| or in |\NiceMatrixOptions|). The initial value of this
-parameter is |\linewidth| (and not |\textwidth|).
+The required width of the tabular may be specified with the key
+\Definition{width} (in |{NiceTabular}| or in |\NiceMatrixOptions|). The initial
+value of this parameter is |\linewidth| (and not |\textwidth|).
-For sake of similarity with the environment |{tabularx}|, \pkg{nicematrix}
-also provides an environment |{NiceTabularX}| with a syntax similar to the
-syntax of |{tabularx}|, that is to say with a first mandatory argument
-which is the width of the tabular.
+For sake of similarity with the environment |{tabularx}|, \pkg{nicematrix} also
+provides an environment \Definition{\{NiceTabularX\}} with a syntax similar to
+the syntax of |{tabularx}|, that is to say with a first mandatory argument which
+is the width of the tabular.
As with the packages \pkg{tabu}\footnote{The extension \pkg{tabu} is now
considered as deprecated.} and \pkg{tabularray}, the specifier |X| takes
@@ -2872,7 +2926,10 @@ by \pkg{tabu} (which is now obsolete), are \emph{not} supported by \pkg{nicematr
If such a value is used, an error will be raised.}
\item It's possible to specify an horizontal alignment with one of the
letters |l|, |c| and |r| (which insert respectively |\raggedright|,
-|\centering| and |\raggedleft| followed by |\arraybackslash|).
+|\centering| and |\raggedleft| followed by |\arraybackslash|).\footnote{In fact,
+when \pkg{ragged2e} is loaded, \pkg{nicematrix} uses the commands
+|\RaggedRight|, |\Centering| and |\RaggedLeft| of \pkg{ragged2e} instead of the
+commands |\raggedright|, |\centering| and |\raggedleft|. That ensures a better output.}
\item It's possible to specify a vertical alignment with one of the keys
|t| (alias |p|), |m| and |b| (which construct respectively columns of type
|p|, |m| and |b|). The default value is |t|.
@@ -3002,10 +3059,10 @@ the content begins with |\color|.
\index{first-col}
\index{last-col}
-The options |first-row|, |last-row|, |first-col| and |last-col| allow the
-composition of exterior rows and columns in the environments of
-\pkg{nicematrix}. It's particularly interesting for the (mathematical)
-matrices.
+The options \Definition{first-row}, \Definition{last-row},
+\Definition{first-col} and \Definition{last-col} allow the composition of
+exterior rows and columns in the environments of \pkg{nicematrix}. It's
+particularly interesting for the (mathematical) matrices.
\label{exterior}
A potential ``first row'' (exterior) has the number $0$ (and not $1$). Idem
@@ -3075,9 +3132,10 @@ what we will do throughout the rest of the document.
\index{code-for-last-row}
\index{code-for-last-col}
It's possible to control the appearance of these rows and columns with options
-|code-for-first-row|, |code-for-last-row|, |code-for-first-col| and
-|code-for-last-col|. These options specify tokens that will be inserted before
-each cell of the corresponding row or column.
+\Definition{code-for-first-row}, \Definition{code-for-last-row},
+\Definition{code-for-first-col} and \Definition{code-for-last-col}. These
+options specify tokens that will be inserted before each cell of the
+corresponding row or column.
\begin{Code}
@@ -3155,9 +3213,10 @@ described p.~\pageref{sub-matrix}.
\index{xdots (and its subkeys)}
Inside the environments of the package \pkg{nicematrix}, new commands are
-defined: |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, and |\Iddots|. These commands
-are intended to be used in place of |\dots|, |\cdots|, |\vdots|, |\ddots| and
-|\iddots|.\footnote{The command |\iddots|, defined in \pkg{nicematrix}, is a
+defined: \DefinitionCommand{Ldots}, \DefinitionCommand{Cdots},
+\DefinitionCommand{Vdots}, \DefinitionCommand{Ddots} and
+\DefinitionCommand{Iddots}. These commands are intended to be used in place of
+|\dots|, |\cdots|, |\vdots|, |\ddots| and |\iddots|.\footnote{The command |\iddots|, defined in \pkg{nicematrix}, is a
variant of |\ddots| with dots going forward. If |mathdots| is loaded, the
version of |mathdots| is used. It corresponds to the command |\adots| of
\pkg{unicode-math}.}
@@ -3343,7 +3402,7 @@ x & \Ldots & \Ldots & \Ldots & \Ldots & x
\bigskip
However, one may prefer the geometry of the first matrix $A$ and would like to
have such a geometry with a dotted line in the second row. It's possible by
-using the option |nullify-dots| (and only one instruction |\Ldots| is
+using the option \Definition{nullify-dots} (and only one instruction |\Ldots| is
necessary).\par\nobreak
\medskip
@@ -3363,8 +3422,8 @@ The option |nullify-dots| smashes the instructions |\Ldots| (and the variants)
horizontally but also vertically.
\medskip
-Caution : the key |nullify-dots| has a name that may be confusing; that key does
-not imply that the dotted rules won't be drawn!
+\textbf{Caution}: the key |nullify-dots| has a name that may be confusing; that
+key does not imply that the dotted rules won't be drawn!
@@ -3375,8 +3434,9 @@ not imply that the dotted rules won't be drawn!
Some people commonly use the command |\hdotsfor| of \pkg{amsmath} in order to
draw horizontal dotted lines in a matrix. In the environments of
-\pkg{nicematrix}, one should use instead |\Hdotsfor| in order to draw dotted
-lines similar to the other dotted lines drawn by the package \pkg{nicematrix}.
+\pkg{nicematrix}, one should use instead \DefinitionCommand{Hdotsfor} in order
+to draw dotted lines similar to the other dotted lines drawn by the package
+\pkg{nicematrix}.
As with the other commands of \pkg{nicematrix} (like |\Cdots|, |\Ldots|,
|\Vdots|, etc.), the dotted line drawn with |\Hdotsfor| extends until the
@@ -3428,8 +3488,9 @@ you use |\rowcolor| on the same row as |\Hdotsfor|). However, when using
\pkg{nicematrix} instead of \pkg{colortbl}.
\bigskip
-The package \pkg{nicematrix} also provides a command |\Vdotsfor| similar to
-|\Hdotsfor| but for the vertical dotted lines.
+The package \pkg{nicematrix} also provides a command
+\DefinitionCommand{Vdotsfor} similar to |\Hdotsfor| but for the vertical dotted
+lines.
\bigskip
The following example uses both |\Hdotsfor| and |\Vdotsfor|:
@@ -3484,7 +3545,7 @@ as options of the command |\usepackage|.}
\smallskip
\begin{itemize}
-\item The option |renew-dots|\par\nobreak
+\item The option \Definition{renew-dots}\par\nobreak
With this option, the commands |\ldots|, |\cdots|, |\vdots|, |\ddots|,
|\iddots|\footnotemark[\thefniddots] and |\hdotsfor| are redefined within the
@@ -3492,7 +3553,7 @@ environments provided by \pkg{nicematrix} and behave like |\Ldots|, |\Cdots|,
|\Vdots|, |\Ddots|, |\Iddots| and |\Hdotsfor|; the command |\dots|
(``automatic dots'' of |amsmath|) is also redefined to behave like |\Ldots|.
-\item The option |renew-matrix|\par\nobreak
+\item The option \Definition{renew-matrix}\par\nobreak
With this option, the environment |{matrix}| is redefined and behave like
|{NiceMatrix}|, and so on for the five variants.
@@ -3551,7 +3612,8 @@ $\begin{bNiceMatrix}
\bigskip
-With the key |xdots/horizontal-labels|, the labels stay horizontal.\par\nobreak
+With the key \Definition{xdots/horizontal-labels}, the labels stay
+horizontal.\par\nobreak
%
\medskip
\begin{Code}[width=10cm]
@@ -3614,9 +3676,11 @@ With the key \Definition{xdots/horizontal-labels}, the labels (introduced by~|_|
|^| and~|:|) stay horizontal.
\bigskip
-The option \Definition{xdots/color} fixes the color or the dotted line. However,
-one should remark that the dotted lines drawn in the exterior rows and columns
-have a special treatment: cf. p.~\pageref{exterior}.
+The option \Definition{xdots/color} fixes the color or the dotted line. It's
+possible to use a color definied ``on the fly''
+(e.g.: |xdots/color = { [RGB]{204,204,255} }|). One should remark that
+the dotted lines drawn in the exterior rows and columns have a special
+treatment: cf. p.~\pageref{exterior}.
\bigskip
The option \Definition{radius} fixes the radius of the dots. The initial value
@@ -3841,17 +3905,18 @@ section~\ref{sub-matrix}, p.~\pageref{sub-matrix}.
\index{code-after}
\label{code-after}
-The option |code-after| may be used to give some code that will be executed
-\emph{after} the construction of the matrix.\footnote{There is also a key
-|code-before| described p.~\pageref{code-before}.}
+The option \Definition{code-after} may be used to give some code that will be
+executed \emph{after} the construction of the matrix.\footnote{There is also a
+key |code-before| described p.~\pageref{code-before}.}
\medskip
\index{sub-matrix (key of \texttt{\textbackslash CodeAfter}, with subkeys)}
For the legibility of the code, an alternative syntax is provided: it's
possible to give the instructions of the |code-after| at the end of the
-environment, after the keyword |\CodeAfter|. Although |\CodeAfter| is a
-keyword, it takes in an optional argument (between square
-brackets).\footnote{Here are the keys accepted in that argument:
+environment, after the keyword \DefinitionCommand{CodeAfter} (the key
+|code-after| is of course mandatory in the |\AutoNiceMatrix| and the
+similar commands). Although |\CodeAfter| is a keyword, it takes in an optional
+argument (between square brackets).\footnote{Here are the keys accepted in that argument:
|delimiters/color|, |rules| and its sub-keys, |sub-matrix| (linked to the
command |\SubMatrix|) and its sub-keys and |xdots| (for the command |\line|) and
its sub-keys.}
@@ -3867,12 +3932,18 @@ Moreover, several special commands are available in the |\CodeAfter|: |line|,
|\SubMatrix|, |\OverBrace|, |\UnderBrace| and |\TikzEveryCell|. We will now
present these commands.
+\medskip
+One should avoid spurious spaces in that |\CodeAfter|.\footnote{See:
+ \url{https://tex.stackexchange.com/questions/689336}}
+
+
\subsection{The command \textbackslash line in the \textbackslash CodeAfter}
\label{line-in-code-after}
\index{line@\texttt{\textbackslash line} (command of \texttt{\textbackslash CodeAfter})}
-The command |\line| draws directly dotted lines between cells or blocks. It takes in two
-arguments for the cells or blocks to link. Both argument may be:
+The command \DefinitionCommand{line} draws directly dotted lines between cells
+or blocks. It takes in two arguments for the cells or blocks to link. Both
+argument may be:
\begin{itemize}
\item a specification of cell of the form $i$-$j$ where is the
number of the row and $j$ is the number of the column;
@@ -3944,7 +4015,7 @@ CodeAfter (and the \textbackslash CodeBefore)}
\texttt{\textbackslash CodeBefore})|textbf}
-The command |\SubMatrix| provides a way to put delimiters on a portion
+The command \DefinitionCommand{SubMatrix} provides a way to put delimiters on a portion
of the array considered as a submatrix. The command |\SubMatrix| takes in five
arguments:
\begin{itemize}
@@ -4189,8 +4260,8 @@ p.~\pageref{submatrix-in-codebefore}.
\emph{Caution} : The following functionnality is fragile and does not work with
|latex|--|dvips|--|ps2pdf|.\par\nobreak
-The key |code| of the command |\SubMatrix| allows the insertion of code after
-the construction of the submatrix. It's meant to be used to insert TikZ
+The key \Definition{code} of the command |\SubMatrix| allows the insertion of
+code after the construction of the submatrix. It's meant to be used to insert TikZ
instructions because, in the TikZ instructions inserted by that code, the
nodes of the form \verb+i-|j+ are interpreted with |i| and |j| as
numbers of row and columns \emph{relative to the submatrix}.\footnote{Be
@@ -4244,9 +4315,9 @@ UnderBrace in the \textbackslash CodeAfter}
\texttt{\textbackslash CodeAfter}\newline and
\texttt{\textbackslash CodeBefore})}
-The commands |\OverBrace| and |\UnderBrace| provide a way to put
-horizontal braces on a part of the array. These commands take in three
-arguments:
+The commands \DefinitionCommand{OverBrace} and \DefinitionCommand{UnderBrace}
+provide a way to put horizontal braces on a part of the array. These commands
+take in three arguments:
\begin{itemize}
\item the first argument is the upper-left corner of the submatrix with the
syntax $i$|-|$j$ where $i$ the number of row and $j$ the number of column;
@@ -4254,6 +4325,9 @@ syntax $i$|-|$j$ where $i$ the number of row and $j$ the number of column;
\item the third argument is the label of the brace that will be put by
\pkg{nicematrix} (with \textsc{pgf}) above the brace (for the command
|\OverBrace|) or under the brace (for |\UnderBrace|).
+
+\colorbox{yellow!50}{\bfseries{New 6.29}}\enskip It's possible to use the
+command |\\| in this third argument in order to format the label on several lignes.
\end{itemize}
\bigskip
@@ -4275,7 +4349,7 @@ $\begin{pNiceMatrix}
\end{pNiceMatrix}$
\bigskip
-Caution : There is no vertical space reserved for those braces and their labels.\footnote{See:
+Caution: There is no vertical space reserved for those braces and their labels.\footnote{See:
\url{https://tex.stackexchange.com/questions/685755}}
@@ -4330,26 +4404,26 @@ $\begin{pNiceMatrix}
CodeAfter}
-\index{SubMatrix@\texttt{\textbackslash TikzEveryCell} (command of
+\index{tikzeverycell@\texttt{\textbackslash TikzEveryCell} (command of
\texttt{\textbackslash CodeAfter}\newline and
\texttt{\textbackslash CodeBefore})|textbf}
\label{TikzEveryCell}
\index{empty (key of \texttt{\textbackslash TikzEveryCell})}
\index{non empty (key of \texttt{\textbackslash TikzEveryCell})}
-The command |\TikzEveryCell|
-executes with TikZ the rectangular path corresponding to each cell of the tabular
-with parameters of TikZ the argument of |\TikzEveryCell|. That argument must be
-a list of \textsl{key=value} pairs which may be applied to a TikZ path. In fact,
-the command applies to each of the tabular, except those in the exterior rows
-and columns (cf.~p.~\pageref{exterior}) and those in the empty corners (when the
-key |corners| is used: cf.~p.~\pageref{corners}). It applies in fact to each
-block (excepted those with the key |transparent|) and does not apply to the
-individual cells located within these blocks.
+The command \DefinitionCommand{TikzEveryCell} executes with TikZ the rectangular
+path corresponding to each cell of the tabular with parameters of TikZ the
+argument of |\TikzEveryCell|. That argument must be a list of \textsl{key=value}
+pairs which may be applied to a TikZ path. In fact, the command applies to each
+of the tabular, except those in the exterior rows and columns
+(cf.~p.~\pageref{exterior}) and those in the empty corners (when the key
+|corners| is used: cf.~p.~\pageref{corners}). It applies in fact to each block
+(excepted those with the key |transparent|) and does not apply to the individual
+cells located within these blocks.
\medskip
In fact, in the list of keys provided as argument of |\TikzEveryCell|, it's
-possible to put a key |offset|. That key is not provided by TikZ but by
+possible to put a key \Definition{offset}. That key is not provided by TikZ but by
\pkg{nicematrix}. It will narrow the rectangular frame corresponding to the
block by a margin (horizontally and vertically) equal to the value (of that key
|offset|). That new frame, a bit narrower, will be executed by TikZ with options
@@ -4381,14 +4455,45 @@ which are the other keys in the argument of |\TikzEveryCell|.
\endgroup
\bigskip
-The command |\TikzEveryCell| has two keys:
+The command |\TikzEveryCell| has two optional keys, available between square brackets.
\begin{itemize}
-\item with the key \Definition{empty}, the command only acts on the empty cells;
+\item with the key \Definition{empty}, the command only acts on the empty cells
+(the exact definition of an ``empty cell'' is given in part~\ref{empty-cells},
+p.~\pageref{empty-cells});
\item with key \Definition{non-empty}, the command only acts on the non-empty cells.
\end{itemize}
\medskip
+\begin{Code}[width=9cm]
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \emph{\TikzEveryCell[empty]{fill=gray,draw}}
+\end{NiceTabular}
+\end{Code}
+\begin{scope}
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \TikzEveryCell[empty]{fill=gray,draw}
+\end{NiceTabular}
+\end{scope}
+
+
+\medskip
The commmand |\TikzEveryCell| is, in fact, also available in the |\CodeBefore|.
@@ -4409,9 +4514,9 @@ The commmand |\TikzEveryCell| is, in fact, also available in the |\CodeBefore|.
\index{caption@\textbf{Captions of the tabulars}}
\smallskip
-The environment |{NiceTabular}| provides the keys |caption|, |short-caption|
-and |label| which may be used when the tabular is inserted in a floating
-environment (typically the environment |{table}|).
+The environment |{NiceTabular}| provides the keys \Definition{caption},
+\Definition{short-caption} and \Definition{label} which may be used when the
+tabular is inserted in a floating environment (typically the environment |{table}|).
\smallskip
With the key |caption|, the caption, when it is long, is wrapped at the width of
@@ -4421,8 +4526,8 @@ the package \pkg{threeparttable} or the package \pkg{floatrow}.
\smallskip
By default, the caption is composed below the tabular. With the key
-|caption-above|, available in |\NiceMatrixOptions|, the caption will be
-composed above the tabular.
+\Definition{caption-above}, available in |\NiceMatrixOptions|, the caption will
+be composed above the tabular.
\smallskip
The key |short-caption| corresponds to the optional argument of the clasical
@@ -4474,12 +4579,13 @@ perfectly compatible with \pkg{hyperref}.
\index{tabularnote@\texttt{\textbackslash tabularnote}}
-The package \pkg{nicematrix} also provides a command |\tabularnote| which gives
-the ability to specify notes that will be composed at the end of the array with
-a width of line equal to the width of the array (except the potential exterior
-columns specified by |first-col| and |last-col|: cf.~\ref{exterior},
-p.~\pageref{exterior}). With no surprise, that command is available only in the
-environments |{NiceTabular}|, |{NiceTabular*}| and |{NiceTabularX}|.
+The package \pkg{nicematrix} also provides a command
+\DefinitionCommand{tabularnote} which gives the ability to specify notes that
+will be composed at the end of the array with a width of line equal to the width
+of the array (except the potential exterior columns specified by |first-col| and
+|last-col|: cf.~\ref{exterior}, p.~\pageref{exterior}). With no surprise, that
+command is available only in the environments |{NiceTabular}|, |{NiceTabular*}|
+and |{NiceTabularX}|.
In fact, this command is available only if the extension \pkg{enumitem}
\index{enumitem@\pkg{enumitem} (package required to use\newline \texttt{\textbackslash tabularnote})} has
@@ -4533,12 +4639,13 @@ space at all after) and if the alignment mode of the column is |c| or |r|, the
label of the note is composed in an overlapping position (towards the right).
This structure may provide a better alignment of the cells of a given column.
-\item If the key |notes/para| is used, the notes are composed at the end of
-the array in a single paragraph (as with the key |para| of \pkg{threeparttable}).
+\item If the key \Definition{notes/para} is used, the notes are composed at the
+end of the array in a single paragraph (as with the key |para| of
+\pkg{threeparttable}).
\item \index{tabularnote (key of \texttt{\{NiceTabular\}})}
-There is a key |tabularnote| which provides a way to insert some text in
-the zone of the notes before the numbered tabular notes.
+There is a key \Definition{tabularnote} which provides a way to insert some text
+in the zone of the notes before the numbered tabular notes.
\index{tabularnote@\texttt{\{TabularNote\}}}
An alternative syntax is available with the environment |{TabularNote}|. That
@@ -4546,8 +4653,8 @@ environment should be used at the end of the environment |{NiceTabular}| (but
\emph{before} a potential instruction |\CodeAfter|).
\item If the package \pkg{booktabs} has been loaded (before or after
-\pkg{nicematrix}), the key |notes/bottomrule| draws a |\bottomrule| of
-\pkg{booktabs} \emph{after} the notes.
+\pkg{nicematrix}), the key \Definition{notes/bottomrule} draws a |\bottomrule|
+of \pkg{booktabs} \emph{after} the notes.
\item The command |\tabularnote| may be used \emph{before}
the environment of \pkg{nicematrix}. Thus, it's possible to use it on the
@@ -4561,10 +4668,10 @@ argument, only one note is inserted at the end of the tabular (but all the
labels are composed, of course). It's possible to control that feature with
the key |notes/detect-duplicates|.\footnote{For technical reasons, the final
user is not allowed to put several commands |\tabularnote| with exactly the
-same argument in the caption of the tabular.}
+same argument in the caption of the tabular. It's not a real restriction...}
-\item It's possible to create a reference to a tabular note created by |\tabularnote|
-(with the usual command |\label| used after the |\tabularnote|).
+\item It's possible to create a reference to a tabular note created by
+|\tabularnote| (with the usual command |\label| used after the |\tabularnote|).
\item The command |\tabularnote| has an optional argument (between square
brackets) to change the symbol of the reference of the note.
@@ -4585,7 +4692,8 @@ with the following code (the package \pkg{caption} has been loaded in this docum
\begin{NiceTabular}{@{}llc@{}
[
caption = A tabular whose caption has been specified by the key
- \texttt{caption}\emph{\tabularnote[$\star$]{It's possible to put a tabular note in the caption.}} ,
+ \texttt{caption}\emph{\tabularnote[$\star$]{It's possible to put a tabular
+ note in the caption.}} ,
label = t:tabularnote ,
tabularnote = Some text before the notes. ,
notes/bottomrule
@@ -4612,7 +4720,8 @@ Wallis & John & 87 \\
\NiceMatrixOptions{caption-above}
\begin{NiceTabular}{@{}llc@{}}[
caption = A tabular whose caption has been specified by the key
- \texttt{caption}\tabularnote[$\star$]{It's possible to put a tabular note in the caption} ,
+ \texttt{caption}\tabularnote[$\star$]{It's possible to put a tabular
+ note in the caption} ,
label = t:tabularnote ,
tabularnote = Some text before the notes. ,
notes/bottomrule
@@ -4686,14 +4795,14 @@ prefixed by |notes|:
We detail these keys.
\begin{itemize}[itemsep=\medskipamount]
-\item The key |notes/para| requires the composition of the notes (at the end of
-the tabular) in a single paragraph.
+\item The key \Definition{notes/para} requires the composition of the notes (at
+the end of the tabular) in a single paragraph.
Initial value: |false|
That key is also available within a given environment.
-\item The key |notes/bottomrule| adds a |\bottomrule| of \pkg{booktabs}
+\item The key \Definition{notes/bottomrule} adds a |\bottomrule| of \pkg{booktabs}
\emph{after} the notes. Of course, that rule is drawn only if there is really
notes in the tabular. The package \pkg{booktabs} must have been loaded (before
or after the package \pkg{nicematrix}). If it is not, an error is raised.
@@ -4702,9 +4811,9 @@ Initial value: |false|
That key is also available within a given environment.
-\item The key |notes/style| is a command whose argument is specified by |#1|
-and which gives the style of numerotation of the notes. That style will be
-used by |\ref| when referencing a tabular note marked with a command |\label|.
+\item The key \Definition{notes/style} is a command whose argument is specified
+by |#1| and which gives the style of numerotation of the notes. That style will
+be used by |\ref| when referencing a tabular note marked with a command |\label|.
The labels formatted by that style are used, separated by commas, when the user
puts several consecutive commands |\tabularnote|. The marker |#1| is meant to
be the name of a LaTeX counter.
@@ -4713,7 +4822,7 @@ Initial value: |\textit{\alph{#1}}|
Another possible value should be a mere |\arabic{#1}|
-\item The key |notes/label-in-tabular| is a command whose argument is
+\item The key \Definition{notes/label-in-tabular} is a command whose argument is
specified by |#1| which is used when formatting the label of a note in the
tabular. Internally, this number of note has already been formatted by
|notes/style| before sent to that command.
@@ -4728,10 +4837,10 @@ That tuning could be acheived by the following code:
\end{Verbatim}
-\item The key |notes/label-in-list| is a command whose argument is specified
-by |#1| which is used when formatting the label in the list of notes at the
-end of the tabular. Internally, this number of note has already been formatted by
-|notes/style| before sent to that command.
+\item The key \Definition{notes/label-in-list} is a command whose argument is
+specified by |#1| which is used when formatting the label in the list of notes
+at the end of the tabular. Internally, this number of note has already been
+formatted by |notes/style| before sent to that command.
Initial value: |\textsuperscript{#1}|
@@ -4756,15 +4865,15 @@ composing tabulars in the spirit of \pkg{booktabs} (see for example the
table \ref{t:tabularnote}, p.~\pageref{t:tabularnote}).
\medskip
-The key |notes/enumitem-keys| specifies a list of pairs
+The key \Definition{notes/enumitem-keys} specifies a list of pairs
\textsl{key=value} (following the specifications of \pkg{enumitem}) to
customize that style of list (it uses internally the command |\setlist*| of
\pkg{enumitem}).
-\item The key |notes/enumitem-keys-para| is similar to the previous one but
-corresponds to the type of list used when the option |para| is in force. Of
-course, when the option |para| is used, a list of type |inline| (as called by
+\item The key \Definition{notes/enumitem-keys-para} is similar to the previous
+one but corresponds to the type of list used when the option |para| is in force.
+Of course, when the option |para| is used, a list of type |inline| (as called by
\pkg{enumitem}) is used and the pairs \textsl{key=value} should correspond to
such a list of type |inline|.
@@ -4772,8 +4881,8 @@ Initially, the style of list is defined by:\quad
|afterlabel = \nobreak, itemjoin = \quad|
-\item The key |notes/code-before| is a token list inserted by \pkg{nicematrix}
-just before the composition of the notes at the end of the tabular.
+\item The key \Definition{notes/code-before} is a token list inserted by
+\pkg{nicematrix} just before the composition of the notes at the end of the tabular.
Initial value: \textsl{empty}
@@ -4785,8 +4894,8 @@ he should use that key:
It's also possible to add |\raggedright| or |\RaggedRight| in that key (|\RaggedRight|
is a command of \pkg{ragged2e}).
-\item The key |notes/detect-duplicates| activates the detection of the commands
-|\tabularnotes| with the same argument.
+\item The key \Definition{notes/detect-duplicates} activates the detection of
+the commands |\tabularnotes| with the same argument.
Initial value : |true|
\end{itemize}
@@ -4831,8 +4940,8 @@ the key |corners| (which is used to specify ``empty corners'') described in
the part~\ref{corners}, p.~\pageref{corners}.
\smallskip
-The key |rounded-corners| specifies that the tabular should have rounded corners
-with a radius equal to the value of that key (the default value is
+The key \Definition{rounded-corners} specifies that the tabular should have
+rounded corners with a radius equal to the value of that key (the default value is
4~pt\footnote{This value is the initial value of the \emph{rounded corners} of
Tikz.}). More precisely, that key has two effects that we describe now.
\begin{itemize}
@@ -4881,11 +4990,11 @@ Jalon & Amandine & Physicist
\texttt{\textbackslash CodeBefore})}
-The command |\ShowCellNames|, which may be used in the |\CodeBefore| and in
-the |\CodeAfter| displays the name (with the form $i$-$j$) of each cell. When
-used in the |\CodeAfter|, that command applies a semi-transparent white
-rectangle to fade the array (caution: some \textsc{pdf} readers don't support
-transparency).
+The command \DefinitionCommand{ShowCellNames}, which may be used in the
+|\CodeBefore| and in the |\CodeAfter| displays the name (with the form $i$-$j$)
+of each cell. When used in the |\CodeAfter|, that command applies a
+semi-transparent white rectangle to fade the array (caution: some \textsc{pdf}
+readers don't support transparency).
\medskip
\begin{Code}[width=10.6cm]
@@ -4945,10 +5054,11 @@ supported by \pkg{nicematrix}.
The environments without preamble (|{NiceMatrix}|, |{pNiceMatrix}|,
|{bNiceMatrix}|, etc.) and the commande |\pAutoNiceMatrix| (and its variants)
-provide an option |columns-type| to specify the type of column which will be
-used (the initial value is, of course, |c|).
+provide an option \Definition{columns-type} to specify the type of column which
+will be used (the initial value is, of course, |c|).
-The keys |l| and |r| are shortcuts for |columns-type=l| and |columns-type=r|.
+The keys \Definition{l} and \Definition{r} are shortcuts for |columns-type=l|
+and |columns-type=r|.
\medskip
@@ -4973,9 +5083,9 @@ prefix |matrix|, which means that its name is, within |\NiceMatrixOptions| :
\label{rotate}
\index{rotate@\texttt{\textbackslash rotate}}
-The package \pkg{nicematrix} provides a command |\rotate|. When used in the
-beginning of a cell, this command composes the contents of the cell after a
-rotation of 90° in the direct sens.
+The package \pkg{nicematrix} provides a command \DefinitionCommand{rotate}. When
+used in the beginning of a cell, this command composes the contents of the cell
+after a rotation of 90° in the direct sens.
In the following command, we use that command in the
|code-for-first-row|.\footnote{It can also be used in |\RowStyle|
@@ -5058,10 +5168,10 @@ columns of type |l|, |r|, |c|, |w| ou |W|; if it is used in other column types
\index{smallmatrix@\texttt{\{smallmatrix\}} (environment of \pkg{amsmath})}
-With the option |small|, the environments of the package \pkg{nicematrix}
-are composed in a way similar to the environment |{smallmatrix}| of the
-package \pkg{amsmath} (and the environments |{psmallmatrix}|,
-|{bsmallmatrix}|, etc. of the package \pkg{mathtools}).
+With the option \Definition{small}, the environments of the package
+\pkg{nicematrix} are composed in a way similar to the environment
+|{smallmatrix}| of the package \pkg{amsmath} (and the environments
+|{psmallmatrix}|, |{bsmallmatrix}|, etc. of the package \pkg{mathtools}).
\bigskip
\begin{Code}
@@ -5164,8 +5274,9 @@ in the environments of \pkg{nicematrix}.
\indexcommand{BAutoNiceMatrix}
The package \pkg{nicematrix} also provides commands in order to compose
automatically matrices from a general pattern. These commands are
-|\AutoNiceMatrix|, |\pAutoNiceMatrix|, |\bAutoNiceMatrix|, |\vAutoNiceMatrix|,
-|\VAutoNiceMatrix| and |\BAutoNiceMatrix|.
+\DefinitionCommand{AutoNiceMatrix}, \DefinitionCommand{pAutoNiceMatrix},
+\DefinitionCommand{bAutoNiceMatrix}, \DefinitionCommand{vAutoNiceMatrix},
+\DefinitionCommand{VAutoNiceMatrix} et \DefinitionCommand{BAutoNiceMatrix}.
These commands take in two mandatory arguments. The first is the format of the
matrix, with the syntax $n$-$p$ where $n$ is the number of rows and $p$ the
@@ -5180,15 +5291,18 @@ $C = \emph{\pAutoNiceMatrix}{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
\[C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}\]
+There exists also \DefinitionCommand{AutoNiceArrayWithDelims} similar to
+|{NiceArrayWithDelims}|.
+
\subsection{The key light-syntax}
\label{light-syntax}
\index{light-syntax}
-The option |light-syntax| (inpired by the package \pkg{spalign}) allows the
-user to compose the arrays with a lighter syntax, which gives a better
-legibility of the TeX source.
+The option \Definition{light-syntax} (inpired by the package \pkg{spalign})
+allows the user to compose the arrays with a lighter syntax, which gives a
+better legibility of the TeX source.
When this option is used, one should use the semicolon for the end of a row
and spaces or tabulations to separate the columns. However, as usual in the
@@ -5226,10 +5340,10 @@ environment of LaTeX which only put TeX commands before and after the content.}
\medskip
\index{light-syntax-expanded}
-The key |light-syntax-expanded| has the same behaviour as the key |light-syntax|
-but the body of the environment is expanded (in the TeX sens\footnote{More precisely, it's a
-expansion of type |e| of L3.}) before being splitted in lines (but
-after the extraction of a potential |\CodeAfter|).
+The key \Definition{light-syntax-expanded} has the same behaviour as the key
+|light-syntax| but the body of the environment is expanded (in the TeX
+sens\footnote{More precisely, it's a expansion of type |e| of L3.}) before being
+splitted in lines (but after the extraction of a potential |\CodeAfter|).
\subsection{Color of the delimiters}
@@ -5241,7 +5355,7 @@ after the extraction of a potential |\CodeAfter|).
For the environments with delimiters (|{pNiceArray}|, |{pNiceMatrix}|, etc.),
it's possible to change the color of the delimiters with the key
-|delimiters/color|.
+\Definition{delimiters/color}.
\medskip
\begin{Code}[width=12cm]
@@ -5267,9 +5381,9 @@ preamble of the environments with preamble
\index{NiceArrayWithDelims@\texttt{\{NiceArrayWithDelims\}}}
In fact, the environment |{pNiceArray}| and its variants are based upon a
-more general environment, called |{NiceArrayWithDelims}|. The first two
-mandatory arguments of this environment are the left and right delimiters used
-in the construction of the matrix.
+more general environment, called \Definition{\{NiceArrayWithDelims\}}. The first
+two mandatory arguments of this environment are the left and right delimiters
+used in the construction of the matrix.
It's possible to use |{NiceArrayWithDelims}| if we want to use atypical or
asymetrical delimiters.
@@ -5294,10 +5408,10 @@ $\begin{NiceArrayWithDelims}
\indexcommand{OnlyMainNiceMatrix}
-The command |\OnlyMainNiceMatrix| executes its argument only when it is in the
-main part of the array, that is to say when it is not in one of the exterior
-rows or one of the exterior columns. If it is used outside an environment of
-\pkg{nicematrix}, that command is no-op.
+The command \DefinitionCommand{OnlyMainNiceMatrix} executes its argument only
+when it is in the main part of the array, that is to say when it is not in one
+of the exterior rows or one of the exterior columns. If it is used outside an
+environment of \pkg{nicematrix}, that command is no-op.
For an example of utilisation, see \url{tex.stackexchange.com/questions/488566}
@@ -5333,8 +5447,8 @@ lines (cf. p.~\pageref{Cdots}) and the computation of the ``corners''
\medskip
The creation of those nodes needs time and memory. It's possible to desactive
-ponctually the creation of those nodes with the key |no-cell-nodes| in order to
-speed up the compilations.
+ponctually the creation of those nodes with the key \Definition{no-cell-nodes}
+in order to speed up the compilations.
\medskip
The nodes of a document must have distinct names. That's why the names of the
@@ -5347,13 +5461,13 @@ In the environment with the number $n$, the node of the row $i$ and
column~$j$ has for name |nm-|$n$|-|$i$|-|$j$.
\smallskip
-The command |\NiceMatrixLastEnv| provides the number of the last environment
-of \pkg{nicematrix} (for LaTeX, it's a ``fully expandable'' command and not a
-counter).
+The command \DefinitionCommand{NiceMatrixLastEnv} provides the number of the
+last environment of \pkg{nicematrix} (for LaTeX, it's a ``fully expandable''
+command and not a counter).
\smallskip
\index{name!key for an environment}
-However, it's advisable to use instead the key |name|\footnote{The value of the
+However, it's advisable to use instead the key \Definition{name}\footnote{The value of the
key |name| is \emph{expanded} (in the TeX sens).}. This key
gives a name to the current environment. When the environment has a name, the
nodes are accessible with the name ``\textsl{name}-$i$-$j$'' where \textsl{name}
@@ -5462,11 +5576,11 @@ For an example of utilisation, see part~\ref{triangular}, p.~\pageref{triangular
\index{pgf-node-code}
\textbf{For the experienced users}, \pkg{nicematrix} provides the key
-|pgf-node-code| which corresponds to some PGF node that will be executed at the
-creation, by PGF, of the nodes corresponding to the cells of the array. More
-pricisely, the value given to the key |pgf-node-code| will be passed in the
-fifth argument of the command |\pgfnode|. That value should contain at least an
-instruction such as |\pgfusepath|, |\pgfusepathqstroke|, |\pgfusepathqfill|,
+\Definition{pgf-node-code} which corresponds to some PGF node that will be
+executed at the creation, by PGF, of the nodes corresponding to the cells of the
+array. More pricisely, the value given to the key |pgf-node-code| will be passed
+in the fifth argument of the command |\pgfnode|. That value should contain at
+least an instruction such as |\pgfusepath|, |\pgfusepathqstroke|, |\pgfusepathqfill|,
etc.
\subsubsection{The columns V of varwidth}
@@ -5517,8 +5631,8 @@ which are described below (cf. p.~\pageref{nodes-i}).
In fact, the package \pkg{nicematrix} can create ``extra nodes'': the ``medium
nodes'' and the ``large nodes''. The first ones
-are created with the option |create-medium-nodes| and the second ones with the
-option |create-large-nodes|.\footnote{There is also an option
+are created with the option \Definition{create-medium-nodes} and the second ones with the
+option \Definition{create-large-nodes}.\footnote{There is also an option
|create-extra-nodes| which is an alias for the conjonction of
|create-medium-nodes| and |create-large-nodes|.}
@@ -5588,8 +5702,8 @@ a & a & a
\index{extra-left-margin}
\index{extra-right-margin}
The ``large nodes'' of the first column and last column may appear too small
-for some usage. That's why it's possible to use the options |left-margin| and
-|right-margin| to add space on both sides of the array and also space in the
+for some usage. That's why it's possible to use the options \Definition{left-margin} and
+\Definition{right-margin} to add space on both sides of the array and also space in the
``large nodes'' of the first column and last column. In the following example,
we have used the options |left-margin| and |right-margin|.\footnote{The
options |left-margin| and |right-margin| take dimensions as values but, if no
@@ -5620,10 +5734,10 @@ a & a & a
\medskip
It's also possible to add more space on both side of the array with the
-options |extra-left-margin| and |extra-right-margin|. These margins are not
-incorporated in the ``large nodes''. It's possible to fix both values with the
-option |extra-margin| and, in the following example, we use |extra-margin|
-with the value $3$~pt.
+options \Definition{extra-left-margin} and \Definition{extra-right-margin}.
+These margins are not incorporated in the ``large nodes''. It's possible to fix
+both values with the option \Definition{extra-margin} and, in the following
+example, we use |extra-margin| with the value $3$~pt.
\[\begin{pNiceMatrix}[create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt]
\CodeBefore [create-cell-nodes]
\begin{tikzpicture}
@@ -5728,10 +5842,10 @@ The nodes we have described are not available by default in the |\CodeBefore|
\index{create-cell-nodes (key of \texttt{\textbackslash CodeBefore})}
It's possible to have these nodes available in the |\CodeBefore| by using the
-key |create-cell-nodes| of the keyword |\CodeBefore| (in that case, the nodes
-are created first before the construction of the array by using informations
-written on the |aux| file and created a second time during the contruction of
-the array itself).
+key \Definition{create-cell-nodes} of the keyword |\CodeBefore| (in that case,
+the nodes are created first before the construction of the array by using
+informations written on the |aux| file and created a second time during the
+contruction of the array itself).
\bigskip
Here is an example which uses these nodes in the |\CodeAfter|.
@@ -5789,8 +5903,8 @@ also an alias called |last|.
\smallskip
\colorbox{yellow!50}{\bfseries Modification 6.28}\enskip There are also nodes
-called $i$|.1|, $i$|.2|, … , $i$|.9| between the node~$i$ and the node~$i+1$
-(before the version 6.28, there was only the node $i$|.5|).
+called $i$|.1|, $i$|.2|, $i$|.25|, $i$|.3|, $i$|.4|, $i$|.5|, $i$|.6|, $i$|.7|,
+$i$|.75|, $i$|.8| and $i$|.9| between the node~$i$ and the node~$i+1$.
\smallskip
These nodes are available in the |\CodeBefore| and the |\CodeAfter|.
@@ -5854,8 +5968,8 @@ syntax |(|$i$\verb+-|+$j$|)|.
\bigskip
-The nodes of the form $i$|.5| may be used, for example to cross a row of a
-matrix (if TikZ is loaded).
+The ``decimal'' nodes (like $i$|.4|) may be used, for example to cross a row of
+a matrix (if TikZ is loaded).
\smallskip
\begin{Code}[width=11cm]
@@ -5864,7 +5978,7 @@ $\begin{pNiceArray}{ccc|c}
3 & 3 & 1 & 0 \\
3 & 3 & 1 & 0
\CodeAfter
- \tikz \draw [red] (\emph{3.5}-|1) -- (\emph{3.5}-|last) ;
+ \tikz \draw [red] (\emph{3.4}-|1) -- (\emph{3.4}-|last) ;
\end{pNiceArray}$
\end{Code}
$\begin{pNiceArray}{ccc|c}
@@ -5872,7 +5986,7 @@ $\begin{pNiceArray}{ccc|c}
3 & 3 & 1 & 0 \\
3 & 3 & 1 & 0
\CodeAfter
- \tikz \draw [red] (3.5-|1) -- (3.5-|last) ;
+ \tikz \draw [red] (3.4-|1) -- (3.4-|last) ;
\end{pNiceArray}$
\subsection{The nodes corresponding to the command \textbackslash SubMatrix}
@@ -6094,7 +6208,7 @@ a+b & \Cdots & a+b & 1
\bigskip
It's possible to turn off the parallelization with the option
-|parallelize-diags| set to |false|: \par\nobreak
+\Definition{parallelize-diags} set to |false|: \par\nobreak
\medskip
\NiceMatrixOptions{parallelize-diags=false}%
@@ -6112,15 +6226,19 @@ a+b & \Cdots & a+b & 1
It's possible to specify the instruction |\Ddots| which will be drawn first
(and which will be used to draw the other diagonal dotted lines when the
-parallelization is in force) with the key |draw-first|: |\Ddots[draw-first]|.
+parallelization is in force) with the key \Definition{draw-first}:
+|\Ddots[draw-first]|.
\subsection[The empty cells]{The ``empty'' cells}
\label{empty-cells}
-An instruction like |\Ldots|, |\Cdots|, etc. tries to determine the first
-non-empty cell on both sides. When the key |corners| is used
-(cf.~p.~\pageref{corners}), \pkg{nicematrix} computes corners consisting of
-empty cells. However, an ``empty cell'' is not necessarily a cell with no TeX
+The package \pkg{nicematrix} uses, in several circunstancies, the concept of
+``empty cell'. For example, an instruction like |\Ldots|, |\Cdots|, etc. (cf.
+p.~\pageref{Cdots}) tries to determine the first non-empty cell on both sides.
+In the same way, when the key |corners| is used (cf.~p.~\pageref{corners}),
+\pkg{nicematrix} computes corners consisting of empty cells.
+
+However, an ``empty cell'' is not necessarily a cell with no TeX
content (that is to say a cell with no token between the two ampersands~|&|).
The precise rules are as follow.
@@ -6149,8 +6267,8 @@ empty if (and only if) its TeX output has a width equal to zero.
\medskip
\item \indexcommand{NotEmpty}
-A cell containing the command |\NotEmpty| is not empty (and a PGF/TikZ
-node is created in that cell).
+A cell containing the command |\NotEmpty| is not empty (and a
+PGF/TikZ node is created in that cell).
\medskip
\item A cell with only a command |\Hspace| (or |\Hspace*|) is empty. This
@@ -6182,8 +6300,8 @@ The package \pkg{nicematrix} does the same in all its environments,
|{NiceArray}| included. However, if the user wants the environment
|{NiceArray}| behaving by default like the environment |{array}| of
\pkg{array} (for example, when adapting an existing document) it's possible to
-control this behaviour with the option |exterior-arraycolsep|, set by the
-command |\NiceMatrixOptions|. With this option, exterior spaces of length
+control this behaviour with the option \Definition{exterior-arraycolsep}, set by
+the command |\NiceMatrixOptions|. With this option, exterior spaces of length
|\arraycolsep| will be inserted in the environments |{NiceArray}| (the other
environments of \pkg{nicematrix} are not affected).
@@ -6194,10 +6312,18 @@ environments of \pkg{nicematrix} are not affected).
\index{Incompatibilities}
+The extension \pkg{nicematrix} is usually not compatible with the classes and
+packages that redefine the environments |{tabular}| and |{array}|. In
+particular, it's the case of the class |socg-lipics-v2021|. However, in that
+case, it's possible to load the class with the key |notab| which requires that
+the environment |{tabular}| is not redefined.
+
+\medskip
+
The package \pkg{nicematrix} is not compatible with the class \cls{ieeeaccess}
because that class is not compatible with PGF/TikZ. However, there is a simple
workaround by writing:\footnote{See
- \url{https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class}}\par\nobreak
+ \url{https://tex.stackexchange.com/questions/528975}}\par\nobreak
\begin{Code}
\let\TeXyear\year
@@ -6207,7 +6333,7 @@ workaround by writing:\footnote{See
-\bigskip
+\medskip
% the following requirement is still in force on April 23, 2024
In order to use \pkg{nicematrix} with the class \cls{aastex631}
(of the \emph{American Astronomical Society}), you have to
@@ -6219,7 +6345,7 @@ add the following lines in the preamble of your document :
\BeforeBegin{NiceMatrix}{\let\begin\BeginEnvironment}
\end{Verbatim}
-\bigskip
+\medskip
In order to use \pkg{nicematrix} with the class \cls{sn-jnl} (of
\emph{Springer Nature}), \pkg{pgf} must
be loaded before the |\documentclass| with |\RequirePackage|:
@@ -6232,12 +6358,12 @@ be loaded before the |\documentclass| with |\RequirePackage|:
However, it seems that this is no longer mandatory with the recent versions of
\cls{sn-jnl}.
-\bigskip
+\medskip
The package \pkg{nicematrix} is not fully compatible with the packages and classes
of LuaTeX-ja: the detection of the empty corners (cf. p.~\pageref{corners})
may be wrong in some circonstances.
-\bigskip
+\medskip
The package \pkg{nicematrix} is not fully compatible with the package
\pkg{arydshln} (because this package redefines many internals of \pkg{array})
and does not support the columns~|V| of \pkg{boldline} (because the letter |V| is
@@ -6859,7 +6985,7 @@ others. That's why, in LaTeX, the parenthesis have not exactly the same width
\index{delimiters!---/max-width}
In order the solve that problem, it's possible to require the delimiters to be
composed with the maximal width, thanks to the boolean key
-|delimiters/max-width|.
+\Definition{delimiters/max-width}.
\begin{small}
\begin{Code}
@@ -6996,9 +7122,9 @@ adding space between the columns.
\bigskip
-In fact, it's possible, with the key |vlines-in-sub-matrix|, to choice a
-letter in the preamble of the array to specify vertical rules which will be
-drawn in the |\SubMatrix| only (by adding space between the columns).
+In fact, it's possible, with the key \Definition{vlines-in-sub-matrix}, to
+choice a letter in the preamble of the array to specify vertical rules which
+will be drawn in the |\SubMatrix| only (by adding space between the columns).
\index{vlines-in-sub-matrix}
\medskip
@@ -7433,6 +7559,11 @@ The successive versions of the file |nicematrix.sty| provided by TeXLive are ava
\nolinkurl{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}
}
+\subsection*{Changes between version 6.28 and 6.29}
+
+Modification in order to be compatible with the next version of \pkg{array}
+(v. 2.6g).
+
\subsection*{Changes between version 6.27 and 6.28}
Sub-blocks with the character |&| (when the key |ampersand-in-block| is in
diff --git a/macros/latex/contrib/notebeamer/README.md b/macros/latex/contrib/notebeamer/README.md
index 5f8a8393b9..bfe07955ce 100644
--- a/macros/latex/contrib/notebeamer/README.md
+++ b/macros/latex/contrib/notebeamer/README.md
@@ -10,10 +10,4 @@ This work may be distributed and/or modified under the conditions of the [LaTeX
This work has the LPPL maintenance status `maintained`.
-The Current Maintainer of this work is [Mingyu Hsia](https://www.ctan.org/author/xia-my).
-
-## Derivative Works
-
-- [fadingimage](https://ctan.org/pkg/fadingimage): Package provides macros for inputting full width picture at the edges of pages quickly.
-
-- [litesolution](https://ctan.org/pkg/litesolution): Class designed for typesetting solutions of problems in exams, textbooks, etc.
+The Current Maintainer of this work is [Mingyu Xia](https://www.ctan.org/author/xia-my). \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf b/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf
deleted file mode 100644
index d4b3615265..0000000000
--- a/macros/latex/contrib/notebeamer/doc/figures/beamerdemo.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf b/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf
deleted file mode 100644
index 158ef35fe8..0000000000
--- a/macros/latex/contrib/notebeamer/doc/figures/paperdemo.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf
new file mode 100644
index 0000000000..d029b3789d
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex
new file mode 100644
index 0000000000..188bfab232
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo1.tex
@@ -0,0 +1,18 @@
+ \documentclass[svgnames]{article}
+
+ \usepackage{geometry,notebeamer}
+ \geometry{margin = .75in}
+
+ \begin{document}
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .54, lines = 32, nup = 4,
+ pages = {2 - 4, 6 - 8}, lefthead = Chapter 1, righthead = Page~\thepage
+ ] { example-image-duck.pdf }
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .32, lines = 32, nup = 3,
+ pages = -, lefthead = Chapter 2, righthead = Page~\thepage
+ ] { example-image-a4-numbered.pdf }
+
+ \end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf
new file mode 100644
index 0000000000..4eef41106a
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex
new file mode 100644
index 0000000000..ad9a8c913b
--- /dev/null
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer-demo2.tex
@@ -0,0 +1,13 @@
+ \documentclass[svgnames,landscape]{article}
+
+ \usepackage{geometry,notebeamer}
+ \geometry{margin = .75in}
+
+ \begin{document}
+
+ \includebeamer
+ [ color = MidnightBlue, ratio = .57, sep = 4ex, nup = 1,
+ pages = -, lefthead = Chapter 3, righthead = Page~\thepage
+ ] { example-image-letter.pdf }
+
+ \end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer.pdf b/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
index 6a882ce051..3bd4b874b8 100644
--- a/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer.pdf
Binary files differ
diff --git a/macros/latex/contrib/notebeamer/doc/notebeamer.tex b/macros/latex/contrib/notebeamer/doc/notebeamer.tex
index c0e59b9287..ea351a29a2 100644
--- a/macros/latex/contrib/notebeamer/doc/notebeamer.tex
+++ b/macros/latex/contrib/notebeamer/doc/notebeamer.tex
@@ -1,142 +1,80 @@
-\documentclass[11pt,svgnames]{article}
-\usepackage[notelinecolor=MidnightBlue,notemargin=.75in]{notebeamer}
-\usepackage{indentfirst,titlesec,authblk,hyperref,hologo,pgfpages,lipsum}
-\geometry{margin=1in}
-\titleformat*{\section}{\bfseries\large}
-\titleformat*{\subsection}{\bfseries\normalsize}
-\hologoFontSetup{general=\sffamily}
-\usepackage{datetime}\yyyymmdddate
-\usepackage[libertine,mono=false]{newtx}
-\usepackage{listings}
-\lstset{language=[LaTeX]TeX,basicstyle=\ttfamily,breaklines=true,columns=flexible}
-\hypersetup{colorlinks,urlcolor=MidnightBlue}
-\def\pkg#1{\textcolor{DarkGreen}{\textsf{#1}}}
-\def\mode#1{\textcolor{Indigo}{\textsf{#1}}}
-\def\cmd#1{\textcolor{MidnightBlue}{\texttt{\string#1}}}
-
-\title{\bfseries The \pkg{notebeamer} Package}
-\author{Mingyu Hsia, \href{mailto:xiamyphys@hdu.edu.cn}{\ttfamily xiamyphys@hdu.edu.cn}}
-\affil{Hangzhou Dianzi University}
-\date{\today\quad Version 3.0b\thanks{\url{https://github.com/xiamyphys/notebeamer}}}
+\documentclass[svgnames,letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\hologoFontSetup{general = \sffamily}
+\usepackage[mono = false]{libertine}
+\usepackage{hologo,verbatim,geometry,framed,notebeamer,pdfpages}
+\hologoFontSetup{general = \sffamily}
+\setlength{\oddsidemargin}{63pt}\setlength{\evensidemargin}{63pt}
+\FrameSep = 0pt
+\linespread{1.1}
+\usepackage{indentfirst}
+\setlength{\parindent}{2em}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries
+ The \cls{notebeamer} Package
+ \thanks{\url{https://github.com/xiamyphys/notebeamer}}
+}
+\author
+{
+ Mingyu Xia \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+}
+\date{Version 4.0A, \today}
\begin{document}
\maketitle
-\begin{abstract}
+\section{Introduction}
-This is the document for the \pkg{notebeamer} package, which provides an easy way to input slides on notepages quickly for making annotations.
+The \pkg{notebeamer} package provides an easy way to input slides on notepages quickly for making annotations, based on \pkg{expl3} and \pkg{tikz}. It is compatible with \hologo{TeX} Live 2019 or later distributions, they all work fine for \hologo{pdfLaTeX} and \hologo{XeLaTeX} compilers. This is the English manual for the \pkg{notebeamer} package.
-Welcome to feedback bugs or ideas via email \href{mailto:xiamyphys@hdu.edu.cn}{\ttfamily xiamyphys@hdu.edu.cn} or \href{https://github.com/xiamyphys/notebeamer}{GitHub}.
+\section{Loading \pkg{notebeamer} and input}
-\end{abstract}
+Just like loading any class, write
-\section{Installing \pkg{notebeamer} and loading it}
+\begin{framed}
+ \begin{verbatim}
+ \usepackage{notebeamer}
+ \end{verbatim}
+\end{framed}
-Simply download \verb|notebeamer.cls| file from \href{https://github.com/xiamyphys/notebeamer}{GitHub} or \href{https://ctan.org/pkg/notebeamer}{CTAN} and save it under your working directory. However, I strongly suggest to use terminal to install and update all packages to the latest version
+\begin{function}{\includebeamer}
+ \begin{syntax}
+ \cs{includebeamer} \oarg{keyvals} \marg{filename} \oarg{keyvals}
+ \end{syntax}
+\end{function}
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
+The \cs{includebeamer} command can create pages with note lines, and import the specific pages of the \file{.pdf} file on the left side of the note pages. The optional argument accepts the following keys: \keys{\cmdmac~color} \keys{\cmdmac~ratio} \keys{\cmdmac~sep} \keys{\cmdmac~nup} \keys{\cmdmac~pages} \keys{\cmdmac~lefthead} \keys{\cmdmac~righthead}, and the mandatory argument can set the \file{.pdf} file that you want to insert.
-To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \hologo{TeX} distribution?}
+\begin{itemize}
+ \item The key \keys{\cmdmac~color} can set the color of the note lines, its default value is \cmd{black}.
+ \item The key \keys{\cmdmac~ratio} can set the ratio of the widths of imported beamer frames and empty area, its default value is \cmd{0.48}.
+ \item The key \keys{\cmdmac~sep} can set the vertical space between beamer frames, its default value is \cmd{2ex}.
+ \item The key \keys{\cmdmac~nup} can set the number of beamer frames on every physical page, its default value is \cmd{3}.
+ \item The key \keys{\cmdmac~pages} can select pages to insert. The argument is a comma separated list, containing page numbers, ranges of page numbers or any combination. Its default value is \cmd{1}.
+ \item The keys \keys{\cmdmac~lefthead} and \keys{\cmdmac~righthead} can set the left header and right header of the note pages.
+\end{itemize}
-\section{Key values of this package}
+\section{Working Examples}
-\begin{verbatim}
- \usepackage[notelinecolor=<color>,notemargin=<margin>]{notebeamer}
-\end{verbatim}
+For 4 logical pages per physical page and 3 logical pages per physical page
-This package has two keys: \cmd{notelinecolor} and \cmd{notemargin}.
+\begin{framed}
+ \verbatiminput{notebeamer-demo1.tex}
+\end{framed}
-The \cmd{notelinecolor} key can set the color notelines, the \cmd{notemargin} key can set the margin of notepages.
+For one logical page per page, landscape is recommanded:
-If you have not set the keys, the default values of the four keys will be applied
+\begin{framed}
+ \verbatiminput{notebeamer-demo2.tex}
+\end{framed}
-\begin{verbatim}
- notelinecolor=MidnightBlue, notemargin=.75in
-\end{verbatim}
+\includepdfmerge[nup = 2x2]
+ { notebeamer-demo1, -, notebeamer-demo2, -}
-Please set the geometry for the whole document \textbf{after} you set the notemargin, that is
-
-\begin{verbatim}
- \usepackage[notemargin=<margin>]{notebeamer} \geometry{<keyval list>}
-\end{verbatim}
-
-otherwise the notemargin configuration won't work.
-
-\section{The margin of notepages}
-
-The relation of the margin of notepages and the margin configuration of package \pkg{geometry} satisfies the following expression
-
-\begin{verbatim}
- topmargin = bottommargin = (\paperwidth-\textwidth)/3
- leftmargin = rightmargin = (2\paperheight-2\textheight)/5
-\end{verbatim}
-
-\section{Commands of \pkg{notebeamer}}
-
-\subsection{The \cmd{notechap} command}
-
-\begin{verbatim}
- \notechap [<notetitle>] {<filename>}
-\end{verbatim}
-
-This command can assign the following notetitle and the PDF file you want to input.
-
-\subsection{The \cmd{notelinenum} and \cmd{notecolumnratio} commands}
-
-\begin{verbatim}
- \notelinenum{<number>} \notecolumnratio{<number>}
-\end{verbatim}
-
-The two commands can assign the number of notelines and the ratio of columns on following notepages respectively. The default value of the number of notelines is \verb|27| and that of the ratio of columns is \verb|0.5|.
-
-\subsection{The \cmd{hidenotelinetrue} and \cmd{hidenotelinefalse} commands}
-
-Notepages after the \cmd{hidenotelinetrue} command the notelines will be hidden while notepages after command \cmd{hidenotelinefalse} the notelines will be restored.
-
-\subsection{The \cmd{newnotepage}}
-
-\begin{verbatim}
- \newnotepage[<number>] \newnotepage*[<number>]
-\end{verbatim}
-
-The \cmd{newnotepage} command can create empty notepage(s). If a star (*) is added after the command, the created empty notepage(s) won't have column rule.
-
-\subsection{The \cmd{includebeamer} command}
-
-\begin{verbatim}
- \includebeamer[<number of slides per page>]{<start page>}{<end page>}
-\end{verbatim}
-
-This commands will create notepages that were inserted images on the left sidnumber of slides per page and the last two variables can set the start page and end page of the PDF file you want to insert that assigned by the command \cmd{notechap}.
-
-\appendix
-\section{Related packages}
-
-\subsection{The \pkg{fadingimage} package}
-
-This package provides macros for inputting full width picture at the edges of pages quickly.
-
-\subsection{The \pkg{litesolution} class}
-
-This class is designed for typesetting solutions of problems in exams, textbooks, etc. The \pkg{notebeamer} package is contained in the \pkg{litesolution} class now.
-
-\clearpage
-\pgfpagesuselayout{4 on 1}[letterpaper]
-
-\notelinenum{27}\pagecolor{yellow!2}
-
-\notechap[Chapter 1. Introduction \& Fundamental Concepts]{figures/beamerdemo.pdf}
-\notecolumnratio{.57}
-\hidenotelinefalse \includebeamer[3]{2}{4}
-\notecolumnratio{.43}
-\hidenotelinetrue \includebeamer[4]{3}{6}
-
-\notechap[Phys. Rev. B. Volume 50, Number 8]{figures/paperdemo.pdf}
-\notecolumnratio{.72}
-\hidenotelinefalse \includebeamer[1]{2}{2}
-
-\notecolumnratio{.5} \newnotepage
-
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/notebeamer/tex/notebeamer.sty b/macros/latex/contrib/notebeamer/tex/notebeamer.sty
index 86189cb513..a2e941785a 100644
--- a/macros/latex/contrib/notebeamer/tex/notebeamer.sty
+++ b/macros/latex/contrib/notebeamer/tex/notebeamer.sty
@@ -1,5 +1,5 @@
%% ***********************************************************
-%% Copyright 2024 by Mingyu Hsia <xiamyphys@hdu.edu.cn> *
+%% Copyright 2024 by M.Y. XIA <xiamyphys@gmail.com> *
%% *
%% This work may be distributed and/or modified under *
%% the conditions of the LaTeX Project Public License *
@@ -11,150 +11,193 @@
%% *
%% This work has the LPPL maintenance status `maintained'. *
%% *
-%% The Current Maintainer of this work is Mingyu Hsia. *
+%% The Current Maintainers of this work is M.Y. XIA *
%% *
%% This work consists of the files notebeamer.sty, *
%% and README.md. *
%% available at https://github.com/xiamyphys/notebeamer *
-%% Thanks `wipet' (https://petr.olsak.net/) provides *
-%% Beamers automatically inserts module *
%% ***********************************************************
-% !Mode:: "TeX:UTF-8"
-\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{notebeamer}[2024/05/06 v3.0b Package provides macros for inputting slides on note papers quickly.]
-\RequirePackage{xkeyval}
+\RequirePackage{xparse}% For TeX Live 2019 - 2020 Compatibility
+\ProvidesExplPackage{notebeamer}{2024/10/15}{4.0A}
+ {Package provides macros for inputting slides on note papers quickly.}
-\DeclareOptionX{notelinecolor}{\gdef\@notelinecolor{#1}}
-\ExecuteOptionsX{notelinecolor=darkgray}
-\DeclareOptionX{notemargin}{\gdef\@notemargin{#1}}
-\ExecuteOptionsX{notemargin=.75in}
+\RequirePackage{l3graphics,tikz,tikzpagenodes}
-\DeclareOptionX*{\PackageWarning{notebeamer}{`\CurrentOption' ignored}}
-\ProcessOptionsX\relax
+\cs_new:Nn \int_div_roundup:nn { \fp_eval:n { ceil(#1/#2,0) } }
-\RequirePackage{geometry,calc,tikz}
-\newgeometry{margin=\@notemargin}
-\tikzset{every picture/.append style={%
- line join=round,line cap=round,thick}}
-\usetikzlibrary{calc}
+\seq_new:N \l__notebeamer_tmpa_seq
+\seq_new:N \l__notebeamer_tmpb_seq
+\clist_new:N \l__notebeamer_tmpa_clist
+\cs_set_nopar:Npn \notebeamer_range_to_list:nN #1#2
+ {
+ \clist_clear:N #2
+ \seq_set_split:Nnn \l__notebeamer_tmpa_seq { , } {#1}
+ \seq_map_inline:Nn \l__notebeamer_tmpa_seq
+ {
+ \tl_if_in:nnTF {##1}{ - }
+ {
+ \seq_set_split:Nnn \l__notebeamer_tmpb_seq { - } { ##1 }
+ \int_step_inline:nnn
+ { \seq_item:Nn \l__notebeamer_tmpb_seq { 1 } }
+ { \seq_item:Nn \l__notebeamer_tmpb_seq { 2 } }
+ { \clist_put_right:Nn #2 {####1} }
+ }
+ { \clist_put_right:Nn #2 {##1} }
+ }
+ }
-\newcounter{note}
-\NewDocumentCommand\notechap{o m}{
- \gdef\@notechap{#1}
- \gdef\@beamer{#2}
- \setcounter{note}{0}}
+\keys_define:nn { notebeamer / includebeamer }
+ {
+ pages .tl_set:N = \l__includebeamer_pages_tl,
+ pages .initial:n = 1,
+ nup .int_set:N = \l__includebeamer_nup_int,
+ nup .initial:n = 3,
+ lines .int_set:N = \l__includebeamer_lines_int,
+ color .tl_set:N = \l__includebeamer_color_tl,
+ color .initial:n = black,
+ ratio .fp_set:N = \l__includebeamer_ratio_fp,
+ ratio .initial:n = .48,
+ sep .dim_set:N = \l__includebeamer_sep_dim,
+ sep .initial:n = 2ex,
+ lefthead .tl_set:N = \l__includebeamer_lefthead_tl,
+ righthead .tl_set:N = \l__includebeamer_righthead_tl,
+ }
-\newlength\hnotemargin\newlength\vnotemargin
-\setlength\hnotemargin{(\paperwidth-\textwidth)/3}
-\setlength\vnotemargin{(2\paperheight-2\textheight)/5}
-\newlength\notewidth\newlength\noteheight
-\setlength\notewidth{\paperwidth-2\hnotemargin}
-\setlength\noteheight{\paperheight-2\vnotemargin}
-\newlength\notelinespace
+\int_new:N \l__notebeamer_pages_total_int
+\int_new:N \l__notebeamer_pages_residue_int
+\cs_new_protected_nopar:Npn \__notebeamer_empty_note_aux:
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \draw [ very~thick, \l__includebeamer_color_tl!80 ]
+ (current~page~text~area.north~west) --
+ (current~page~text~area.north~east)
+ node [ at~start, above~right, font = \sffamily\Large\bfseries ]
+ { \l__includebeamer_lefthead_tl }
+ node [ above~left, font = \sffamily\Large\bfseries ]
+ { \l__includebeamer_righthead_tl };
+ \draw [ very~thick, \l__includebeamer_color_tl!80 ]
+ (current~page~text~area.south~west) --
+ (current~page~text~area.south~east);
+ \int_step_inline:nn { \l__includebeamer_lines_int - 1 }
+ {
+ \draw [ thick, \l__includebeamer_color_tl!60 ]
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth,
+ -\textheight/\l__includebeamer_lines_int * ##1
+ )}
+ ]current~page~text~area.north~west) --++
+ (\fp_eval:n { 1 - \l__includebeamer_ratio_fp } \textwidth,0);
+ }
+ }
+ \pagestyle{empty}
+ }
-\def\notelinenum#1{%
- \gdef\@notelinenum{#1}
- \setlength\notelinespace{\noteheight/#1}}
-\ifcsname @notelinenum\endcsname
-\else
- \gdef\@notelinenum{27}
- \setlength\notelinespace{\noteheight/27}
-\fi
-\def\notecolumnratio#1{\gdef\@notecolumnratio{#1}}
-\ifcsname @notecolumnratio\endcsname
-\else
- \gdef\@notecolumnratio{.5}
-\fi
-
-\newif\ifhidenoteline
-
-\def\@onepaper#1{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- %%%%%% notepage lines
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin,{\vnotemargin+(\a-1)*\notelinespace})$) --++ (\notewidth,0); % 横线
- \fi
- %%%%%% imput file
- \node [below,yshift=\thenote*\noteheight-1ex,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[width=\dimeval{\@notecolumnratio\notewidth},page=#1]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\def\@threebeamer#1#2#3{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- %%%%%% notepage lines
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth+1ex,{\vnotemargin+(\a-1)*\notelinespace})$) --++ ({(1-\@notecolumnratio)*\notewidth-1ex},0); % 横线
- \fi
- \draw [\@notelinecolor!80,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex); % 分栏线
- %%%%%% imput file
- \foreach \n in {#1,#2,#3}
- \node [yshift=(2*#1-2*\n-1)*\noteheight/6+\thenote*\noteheight,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[height=\dimeval{\noteheight/3-2ex},page=\n]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\def\@fourbeamer#1#2#3#4{
- \refstepcounter{note}\addtocounter{note}{-1}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [opacity=.5,\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth+1ex,{\vnotemargin+(\a-1)*\notelinespace})$) --++ ({(1-\@notecolumnratio)*\notewidth-1ex},0); % 横线
- \fi
- \draw [\@notelinecolor,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex); % 分栏线
- %%%%%% imput file
- \foreach \n in {#1,#2,#3,#4}
- \node [yshift=(2*#1-2*\n-1)*\noteheight/8+\thenote*\noteheight,inner sep=0pt] at ($(current page.north west)+(\hnotemargin+.5*\@notecolumnratio*\notewidth,-\vnotemargin)$) {\ifcsname @notechap\endcsname\includegraphics[height=\dimeval{\noteheight/4-2ex},page=\n]{\@beamer}\fi};
- \end{tikzpicture}
-}
-
-\ExplSyntaxOn\cs_new_eq:NN \Repeat \prg_replicate:nn\ExplSyntaxOff
-\NewDocumentCommand\newnotepage{s O{1}}{\Repeat{#2}{
- \refstepcounter{note}
- \clearpage\thispagestyle{empty}
- \begin{tikzpicture}[remember picture,overlay]
- \draw [\@notelinecolor,opacity=.8,very thick] ($(current page.north west)+(\hnotemargin,-\vnotemargin)$) --++ (\notewidth,0) node [above right,at start,yshift=1ex] {\large\bfseries\sffamily\ifcsname @notechap\endcsname\@notechap\fi} node [above left,yshift=1ex] {\large\bfseries\sffamily Page \thepage\quad}; % 顶部粗线
- \draw [\@notelinecolor,opacity=.8,thick] ($(current page.south west)+(\hnotemargin,\vnotemargin)$) --++ (\notewidth,0); % 底部粗线
- \ifhidenoteline\else
- \foreach \a in {2,...,\@notelinenum}
- \draw [\@notelinecolor,opacity=.4,thick] ($(current page.south west)+(\hnotemargin,{\vnotemargin+(\a-1)*\notelinespace})$) --++ (\notewidth,0); % 横线
- \fi
- \IfBooleanF{#1}{% 分栏线
- \draw [\@notelinecolor,opacity=.5,very thick] ($(current page.south west)+(\hnotemargin+\@notecolumnratio*\notewidth,\vnotemargin+1ex)$) --++ (0,\noteheight-2ex);}
-\end{tikzpicture}}
+\cs_new_protected_nopar:Npn \__notebeamer_includebeamer_aux:n #1
+ {
+ \graphics_get_pagecount:nN {#1} \l__includebeamer_filepages_int
+ \tl_if_eq:NnTF \l__includebeamer_pages_tl { - }
+ {
+ \notebeamer_range_to_list:nN
+ { 1 - \l__includebeamer_filepages_int } \l__notebeamer_tmpa_clist
+ }
+ {
+ \exp_args:NV
+ \notebeamer_range_to_list:nN
+ \l__includebeamer_pages_tl \l__notebeamer_tmpa_clist
+ }
+ \int_set:Nn \l__notebeamer_pages_total_int
+ {
+ \int_div_roundup:nn { \clist_count:N \l__notebeamer_tmpa_clist }
+ { \l__includebeamer_nup_int } - 1
+ }
+ \int_set:Nn \l__notebeamer_pages_residue_int
+ {
+ \int_eval:n
+ {
+ \clist_count:N \l__notebeamer_tmpa_clist -
+ \l__includebeamer_nup_int * \l__notebeamer_pages_total_int
+ }
+ }
+ \int_step_inline:nn { \int_use:N \l__notebeamer_pages_total_int }
+ {
+ \clearpage
+ \__notebeamer_empty_note_aux:
+ \int_step_inline:nn { \l__includebeamer_nup_int }
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \node
+ [
+ yshift = - ( ####1 - 1 ) *
+ \textheight/\l__includebeamer_nup_int
+ ] at
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth/2,
+ -\textheight/\l__includebeamer_nup_int/2
+ )}
+ ]current~page~text~area.north~west)
+ {
+ \includegraphics
+ [
+ height =
+ \dim_eval:n
+ {
+ \textheight/\l__includebeamer_nup_int -
+ \l__includebeamer_sep_dim
+ },
+ page =
+ \clist_item:Nn \l__notebeamer_tmpa_clist
+ { ####1 + \l__includebeamer_nup_int * ( ##1 - 1 ) }
+ ] {#1}
+ };
+ }
+ }
+ \clearpage
+ }
+ \__notebeamer_empty_note_aux:
+ \int_step_inline:nn { \int_use:N \l__notebeamer_pages_residue_int }
+ {
+ \tikz [ remember~picture, overlay ]
+ {
+ \node
+ [
+ yshift = - ( ##1 - 1 ) * \textheight/\l__includebeamer_nup_int
+ ] at
+ ([shift =
+ {(
+ \fp_use:N \l__includebeamer_ratio_fp \textwidth/2,
+ -\textheight/\l__includebeamer_nup_int/2
+ )}
+ ]current~page~text~area.north~west)
+ {
+ \includegraphics
+ [
+ height =
+ \dim_eval:n
+ {
+ \textheight/\l__includebeamer_nup_int -
+ \l__includebeamer_sep_dim
+ },
+ page =
+ \clist_item:Nn \l__notebeamer_tmpa_clist
+ {
+ \l__includebeamer_nup_int *
+ \l__notebeamer_pages_total_int + ##1
+ }
+ ] {#1}
+ };
+ }
+ }
+ \clearpage
+ }
+\NewDocumentCommand{\includebeamer}{ O{} m O{} }{
+ \group_begin:
+ \keys_set:nn { notebeamer / includebeamer } { #1 #3 }
+ \__notebeamer_includebeamer_aux:n {#2}
+ \group_end:
}
-\newcount\tmpnum
-\def\valnum#1{%
- \ifnum\maxnum>\numexpr\tmpnum+#1\relax
- \the\numexpr\tmpnum+#1\relax \else \maxnum\fi}
-\NewDocumentCommand\includebeamer{ o m m }{%
- \ifnum #1=1
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@onepaper{\valnum0}
- \advance\tmpnum by1
- \repeat\fi
- \ifnum #1=3
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@threebeamer{\valnum0}{\valnum1}{\valnum2}
- \advance\tmpnum by3
- \repeat\fi
- \ifnum #1=4
- \def\maxnum{#3}\tmpnum=#2
- \loop
- \unless\ifnum\tmpnum>#3 \@fourbeamer{\valnum0}{\valnum1}{\valnum2}{\valnum3}
- \advance\tmpnum by4
- \repeat\fi}
+% End of file notebeamer.sty
diff --git a/macros/latex/contrib/numbersets/README.md b/macros/latex/contrib/numbersets/README.md
new file mode 100644
index 0000000000..2b13bb83f3
--- /dev/null
+++ b/macros/latex/contrib/numbersets/README.md
@@ -0,0 +1,29 @@
+# The `numbersets` Package
+
+## Overview
+
+The `numbersets` package allows users to express mathematical concepts related to sets of numbers
+using meaningful commands rather than relying on visual representations.
+
+For example, using `\RealNumbers` clearly indicates the intention of denoting the set of all real numbers,
+while `\mathbb{R}` focuses solely on the formatting without conveying the underlying concept.
+Therefore, using `\RealNumbers` is preferable because it provides more context and meaning.
+
+### Key Features:
+- Command to specify typefaces for number sets.
+- Interface for defining typeface rules.
+- Interface for creating commands that represent number sets.
+- Several predefined presets for common number sets.
+
+## Contributing, Issue Reporting, and Repository Access
+
+The source code for the `numbersets` package is hosted on GitHub.
+
+[https://github.com/enunun/numbersets](https://github.com/enunun/numbersets)
+
+If you have any suggestions, feature requests, or bug reports, we encourage you to submit them via the repository’s issue tracker.
+This ensures that improvements and fixes are addressed efficiently. You can visit the Issues tab in the repository to create a new issue.
+
+## License
+
+This package is released under the MIT License, see [LICENSE](https://github.com/enunun/numbersets/blob/main/LICENSE). \ No newline at end of file
diff --git a/macros/latex/contrib/numbersets/numbersets-doc.pdf b/macros/latex/contrib/numbersets/numbersets-doc.pdf
new file mode 100644
index 0000000000..5e6fb7ba08
--- /dev/null
+++ b/macros/latex/contrib/numbersets/numbersets-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/numbersets/numbersets-doc.tex b/macros/latex/contrib/numbersets/numbersets-doc.tex
new file mode 100644
index 0000000000..32bd4c3698
--- /dev/null
+++ b/macros/latex/contrib/numbersets/numbersets-doc.tex
@@ -0,0 +1,321 @@
+% configuration for llmk
+% +++
+% sequence = [ "latex", "makeindex", "latex", "latex" ]
+% latex = "lualatex"
+% makeindex = "mendex"
+% [programs.makeindex]
+% args = ["%B.idx", "-sgind.ist"]
+% +++
+
+\documentclass{l3doc}
+
+\usepackage{makeidx}
+
+% Documentation target
+\usepackage{numbersets}
+
+\usepackage{booktabs}
+\usepackage{bxtexlogo}
+\usepackage{listings}
+\lstset{basicstyle=\ttfamily, escapeinside=||, tabsize=4, columns=fullflexible}
+\usepackage{unicode-math}
+\setmainfont{TeX Gyre Pagella}
+\setsansfont{TeX Gyre Heros}
+\setmonofont{Latin Modern Mono}
+\setmathfont{TeX Gyre Pagella Math}
+\usepackage{changelog}
+
+\NewDocumentCommand{\ThisPackageName}{}{\pkg{numbersets}}
+\NewDocumentCommand{\sourcecode}{m}{\texttt{#1}}
+
+\title{The \ThisPackageName{} Package (v0.2.0)}
+\author{Takumi Noguchi (enunun)}
+\date{2024-10-15}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Overview}
+
+The \ThisPackageName{} package provides an easy way to implement the common preference for using commands
+that represent the \emph{meaning} of concepts to be expressed,
+rather than focusing solely on their visual appearance.
+For example, using a command like ``\cs[no-index]{RealNumbers}'' to denote the set of all real numbers \(\RealNumbers[style=bb]\) is preferable
+to using a purely visual representation like ``\cs[no-index]{mathbb\{R\}}''.
+
+This package provides the following key features:
+\begin{itemize}
+ \item A command to apply the desired typeface for representing sets of numbers.
+ \item An interface for defining rules that specify the typefaces for these sets.
+ \item An interface for defining commands that represent sets of numbers.
+ \item Several predefined presets for common number sets.
+\end{itemize}
+
+Although the default configuration assumes the use of the \pkg{unicode-math} package for handling mathematical typefaces,
+the \ThisPackageName{} package itself does not load the \pkg{unicode-math} package.
+To use the package with default settings,
+it is required to import the \pkg{unicode-math} package \emph{explicitly} in your document.
+However, since the \pkg{unicode-math} package is not loaded automatically by the \ThisPackageName{} package,
+users can modify their configuration even if the \pkg{unicode-math} package cannot be used.
+See the section \ref{sec:withoutunicode-math} for more details.
+
+
+\section{Package Options}
+\label{sec:packageoptions}
+
+\DescribeOption{style}
+The \ThisPackageName{} package provides a single option for customization:
+the \sourcecode{style} option.
+This option allows users to specify the typeface to be used when displaying number sets,
+and it is defined using a key-value format.
+
+\begin{itemize}
+ \item \sourcecode{bb}: BlackBoard Bold (default), like \(\NumberSet[style = bb]{N}\).
+ \item \sourcecode{bfup}: Bold Upright, like \(\NumberSet[style = bfup]{N}\).
+ \item \sourcecode{bfit}: Bold Italic, like \(\NumberSet[style = bfit]{N}\)
+\end{itemize}
+
+
+\begin{function}{\SetupNumberSetsOptions}
+ \begin{syntax}
+ \cs[no-index]{SetupNumberSetsOptions}\marg{options}
+ \end{syntax}
+ Changes the global options for the \ThisPackageName{} package,
+ which can be applied after the package import or at any point in the document.
+\end{function}
+
+For example, to set the default style to Bold Upright, you would write:
+\begin{lstlisting}
+ \SetupNumberSetsOptions{style=bfup}
+\end{lstlisting}
+
+
+\section{Basic Usage}
+
+The \cs{NumberSet} command allows users to display number sets using the desired typeface.
+The command can be customized by passing an optional \sourcecode{style} argument to specify the typeface locally for the number set.
+While the \sourcecode{style} option of this command affects only the local instance, the values
+it accepts are the same as those used for the package-level \sourcecode{style} option in the Section \ref{sec:packageoptions}.
+
+
+\begin{function}{\NumberSet}
+ \begin{syntax}
+ \cs{NumberSet}\oarg{options}\marg{symbol}
+ \end{syntax}
+ This command displays the specified number set
+ with the typeface defined by the \sourcecode{style} option. If no style is specified, the default style is applied.
+
+ It should be noted that the \cs[no-index]{NumberSet} command is primarily intended for use within math mode,
+ similar to how the \cs[no-index]{mathbb} command is typically used in math mode to display sets like \cs[no-index]{mathbb\{N\}}.
+\end{function}
+
+In the above examples:
+\begin{itemize}
+ \item \cs[no-index]{NumberSet\{N\}}: will be displayed like $\NumberSet{N}$ in the default style.
+ \item \cs[no-index]{NumberSet[style=bb]\{Z\}}: will be displayed like $\NumberSet[style=bb]{Z}$ in the BlackBoard Bold style.
+ \item \cs[no-index]{NumberSet[style=bfup]\{R\}}: will be displayed like $\NumberSet[style=bfup]{R}$ in the Bold Upright style.
+ \item \cs[no-index]{NumberSet[style=bfit]\{C\}}: will be displayed like $\NumberSet[style=bfit]{C}$ in the Bold Italic style.
+\end{itemize}
+
+It is important to note that the \cs[no-index]{NumberSet} command,
+while versatile, is a more generic and less descriptive command.
+For clarity and better readability in the main text,
+it is recommended to use more descriptive commands such as \cs[no-index]{NaturalNumbers} for representing the set of natural numbers.
+These commands provide more context and meaning, making the content easier to understand.
+See the section \ref{sec:customcommand} for defining custom commands for sets of numbers,
+and some presets described in the section \ref{sec:predefinedpresets} are provided by this package.
+
+
+\section{Defining Custom Number Set Commands}
+\label{sec:customcommand}
+
+The \cs{DeclareNumberSetCommand} allows users to define new commands for representing number sets with specific names,
+enhancing readability and semantic clarity in documents. This command can be particularly useful
+when you want to create descriptive names for commonly used number sets.
+
+\begin{function}{\DeclareNumberSetCommand}
+ \begin{syntax}
+ \cs{DeclareNumberSetCommand}\marg{cs}\marg{symbol}
+ \end{syntax}
+ This command defines a new number set command. The first argument \meta{cs} specifies the control sequence for the new command,
+ while the second argument \meta{symbol} represents the symbol that will be displayed.
+\end{function}
+
+For example, to define a command for the set of all quaternions by \(\NumberSet{H}\), you would write:
+\begin{lstlisting}
+ \DeclareNumberSetCommand{\Quaternions}{H}
+\end{lstlisting}
+
+Once defined, you can use the new command \cs[no-index]{Quaternions} in your document to display the symbol for the set of all quaternions.
+In addition, you can use the optional argument \sourcecode{style} to specify the typeface locally,
+similar to the \cs[no-index]{NumberSet} command.
+To display the set of all quaternions that you just defined above, you would write:
+\begin{lstlisting}
+ \Quaternions[style=bfup]
+\end{lstlisting}
+
+Internally, the definition using \cs[no-index]{DeclareNumberSetCommand}\marg{cs}\marg{symbol}
+is equivalent to the following definition:
+\begin{lstlisting}
+ \NewDocumentCommand{|\meta{cs}|}
+ {o}
+ {
+ \IfValueTF{#1}
+ {
+ \NumberSet[#1]{|\meta{symbol}|}
+ }
+ {
+ \NumberSet{|\meta{symbol}|}
+ }
+ }
+\end{lstlisting}
+
+\section{Defining Custom Number Set Styles}
+
+The \cs{DeclareNumberSetStyle} command allows users to define (or overwrite)
+new styles (or registered styles) for displaying number sets,
+giving users greater control over the typeface used.
+This command can be useful when the built-in styles are insufficient for specific design needs.
+
+\begin{function}{\DeclareNumberSetStyle}
+ \begin{syntax}
+ \cs{DeclareNumberSetStyle}\marg{style}\marg{command}
+ \end{syntax}
+ This command defines a new style for number sets. The first argument \meta{style} specifies the name of the style,
+ and the second argument \meta{command} indicates the typeface command that will be applied when this style is selected.
+\end{function}
+
+For example, to define a new style using a bold sans-serif font, you would write:
+\begin{lstlisting}
+ \DeclareNumberSetStyle{boldsans}{\symbfsfup}
+\end{lstlisting}
+Once defined, you can use the identifier ``\sourcecode{boldsans}'' for the value of \sourcecode{style} option
+in the following commands:
+\begin{itemize}
+ \item \cs[no-index]{NumberSet} command
+ \item \cs[no-index]{SetupNumberSetsOptions} command
+ \item Custom command defined by the \cs[no-index]{DeclareNumberSetCommand} command
+\end{itemize}
+
+It should be noted that the \meta{command} argument of the \cs[no-index]{DeclareNumberSetStyle} command
+can accept \emph{only} a single control sequence.
+Namely, combinations of multiple commands (e.g., \cs[no-index]{overline\cs[no-index]{symbb}}) are not supported.
+To avoid this limitation, you should define a single control sequence as an abbreviation for the combinations.
+In this case, you should define an abbreviation like ``\cs[no-index]{bbline}'';
+after that, you can define the style identifier using this single control sequence:
+\begin{lstlisting}
+ \NewDocumentCommand\bbline{m}{\overline{\symbb{#1}}}
+ \DeclareNumberSetStyle{bbline}{\bbline}
+\end{lstlisting}
+
+The values (\sourcecode{bb}, \sourcecode{bfup}, \sourcecode{bfit}) provided by default for the style option
+can be considered as pre-defined identifiers that the \cs[no-index]{DeclareNumberSetStyle} command declares.
+The Table \ref{tab:predefinedidentifier} shows
+the list of predefined identifiers and the commands corresponding to each identifier.
+\begin{table}[h]
+ \centering
+ \caption{Predefined identifiers for the values of the \sourcecode{style} option}
+ \label{tab:predefinedidentifier}
+ \begin{tabular}{cc}
+ \toprule
+ Identifer & Command \\
+ \midrule
+ \sourcecode{bb} & \cs[no-index]{symbb} \\
+ \sourcecode{bfup} & \cs[no-index]{symbfup} \\
+ \sourcecode{bfit} & \cs[no-index]{symbfit} \\
+ \bottomrule
+ \end{tabular}
+\end{table}
+
+
+\section{Using Without the \pkg{unicode-math} Package}
+\label{sec:withoutunicode-math}
+
+Although the default configuration of this package assumes the use of \pkg{unicode-math} package for handling mathematical typefaces,
+the \ThisPackageName{} package itself does not load the \pkg{unicode-math} package.
+Therefore, you can use the \ThisPackageName{} package without the \pkg{unicode-math} package by overriding the default configuration.
+
+Here is an example to use the \ThisPackageName{} package with \pkg{amssymb} package for blackboard bold symbols and \pkg{bm} package for bold italic symbols:
+\begin{lstlisting}
+ \usepackage{amssymb}
+ \usepackage{bm}
+ \usepackage{numbersets}
+ \DeclareNumberSetStyle{bb}{\mathbb}
+ \DeclareNumberSetStyle{bfup}{\mathbf}
+ \DeclareNumberSetStyle{bfit}{\bm}
+ ...
+ % in the document
+ % equivalent to \mathbb{P}
+ \NumberSet[style=bb]{P}
+ % equivalent to \mathbf{A}
+ \NumberSet[style=bfup]{A}
+ % equivalent to \bm{H}
+ \NumberSet[style=bfit]{H}
+\end{lstlisting}
+
+Note that you only need to reconfigure the styles that you actually use in your document.
+For example, if you only use the \sourcecode{bb} style, there is no need to reconfigure the unused \sourcecode{bfup} and \sourcecode{bfit} styles.
+
+\section{Predefined Presets for Common Number Sets}
+\label{sec:predefinedpresets}
+
+\begin{function}{\NaturalNumbers, \Integers, \RationalNumbers, \RealNumbers, \ComplexNumbers}
+ Several predefined presets are available in the \ThisPackageName{} package for commonly used number sets.
+ These presets are designed to help you clearly express the intended mathematical meaning,
+ rather than just applying a specific format.
+ The table \ref{tab:predefinednumberset} shows the list
+ of predefined commands for common sets of numbers.
+\end{function}
+
+\begin{table}[h]
+ \centering
+ \caption{Predefined commands for common sets of numbers}
+ \label{tab:predefinednumberset}
+ \begin{tabular}{cc}
+ \toprule
+ Command name & Output by default \\
+ \midrule
+ \cs{NaturalNumbers} & \(\NaturalNumbers\) \\
+ \cs{Integers} & \(\Integers\) \\
+ \cs{RationalNumbers} & \(\RationalNumbers\) \\
+ \cs{RealNumbers} & \(\RealNumbers\) \\
+ \cs{ComplexNumbers} & \(\ComplexNumbers\) \\
+ \bottomrule
+ \end{tabular}
+\end{table}
+
+\section{Contributing, Issue Reporting, and Repository Access}
+
+The source code for the \ThisPackageName{} package is hosted on GitHub at the following repository:
+\begin{quote}
+ \url{https://github.com/enunun/numbersets}
+\end{quote}
+
+If you have any suggestions, feature requests, or bug reports,
+we encourage you to submit them via the repository's issue tracker.
+This ensures that improvements and fixes are addressed efficiently. You can visit the ``Issues'' tab in the repository to create a new issue.
+
+\section{Changelog}
+
+The first is the version 0.1.0. The changelog of this package is shown in this seciton.
+
+\begin{changelog}[section=false]
+ \begin{version}[v=0.2.0, date=2024-10-15]
+ \changed
+ \item Modified the \cs[no-index]{DeclareNumberSetCommand} to accept the control sequence directly
+ \end{version}
+ \begin{version}[v=0.1.0, date=2024-10-13]
+ \added
+ \item Provided the \cs[no-index]{NumberSet} command
+ \item Provided the \cs[no-index]{DeclareNumberSetCommand} command
+ \item Provided the \cs[no-index]{DeclareNumberSetStyle} command
+ \item Provided the commands \cs[no-index]{NaturalNumbers}, \cs[no-index]{Integers}, \cs[no-index]{RationalNumbers}, \cs[no-index]{RealNumbers}, \cs[no-index]{ComplexNumbers}
+ \end{version}
+\end{changelog}
+
+\printindex
+
+\end{document}
diff --git a/macros/latex/contrib/numbersets/numbersets.sty b/macros/latex/contrib/numbersets/numbersets.sty
new file mode 100644
index 0000000000..cceabf53e0
--- /dev/null
+++ b/macros/latex/contrib/numbersets/numbersets.sty
@@ -0,0 +1,120 @@
+\ProvidesExplPackage{numbersets}{2024-10-15}{v0.2.0}{A package for displaying number sets with customizable typefaces}
+
+% List of properties to store style commands
+\prop_new:N \g_numbersets_styles_prop
+
+% Global default style for the package
+\cs_new:Nn \g_numbersets_default_style_tl: { bb }
+
+% Presets for typefaces
+\prop_put:Nnn \g_numbersets_styles_prop { bb } { \symbb }
+\prop_put:Nnn \g_numbersets_styles_prop { bfup } { \symbfup }
+\prop_put:Nnn \g_numbersets_styles_prop { bfit } { \symbfit }
+
+% Options for package
+\keys_define:nn { numbersets }
+{
+ style .tl_set:N = \g_numbersets_default_style_tl,
+ style .initial:n = bb,
+}
+
+\ProcessKeyOptions
+
+% Validation for property
+\cs_new_protected:Npn \numbersets_check_style:n #1
+{
+ \prop_if_in:NnTF \g_numbersets_styles_prop { #1 }
+ { }
+ {
+ \msg_error:nnn { numbersets } { unknown-style } { #1 }
+ }
+}
+
+% Error message for unknown options
+\msg_new:nnn { numbersets } { unknown-style }
+{
+ The~style~'#1'~is~not~declared.
+}
+
+% Command to declare (or overwrite) styles
+\NewDocumentCommand{\DeclareNumberSetStyle}{ m m }
+{
+ \prop_put:Nnn \g_numbersets_styles_prop { #1 } { #2 }
+}
+
+% Command for setup global option
+\NewDocumentCommand{\SetupNumberSetsOptions}{ m }
+{
+ \keys_set:nn { numbersets } { #1 }
+}
+
+% Function to apply the style command
+\cs_new_protected:Npn \numbersets_apply_style:n #1
+{
+ \prop_get:NnNTF \g_numbersets_styles_prop { #1 } \l_tmpa_tl
+ {
+ \use:n { \l_tmpa_tl }
+ }
+ {
+ \msg_error:nnn { numbersets } { unknown-style } { #1 }
+ }
+}
+
+% Store the style identifer of the \numberset command as a local variable
+\cs_new:Nn \l_numbersets_style_tl: { }
+
+% Options for the \numberset command
+\keys_define:nn { numberset }
+{
+ style .tl_set:N = \l_numbersets_style_tl,
+}
+
+% Command to display the set symbol with custom typefaces
+\NewDocumentCommand{\NumberSet}{ O{} m }
+{
+ \group_begin:
+ \keys_set:nn { numberset } { #1 }
+ \tl_if_empty:VTF \l_numbersets_style_tl
+ {
+ \tl_set_eq:NN \l_numbersets_style_tl \g_numbersets_default_style_tl
+ }
+ {}
+ \expandafter\numbersets_apply_style:n \expandafter{ \l_numbersets_style_tl }
+ { #2 }
+ \group_end:
+}
+
+% Command to declare custom commands for set composed of numbers
+\NewDocumentCommand{\DeclareNumberSetCommand}{ m m }
+{
+ \NewDocumentCommand{#1}
+ {o}
+ {
+ \IfValueTF{##1}
+ {
+ \NumberSet[##1]{#2}
+ }
+ {
+ \NumberSet{#2}
+ }
+ }
+}
+
+% Presets for some sets composed of numbers
+
+% Natural numbers
+\DeclareNumberSetCommand{\NaturalNumbers}{N}
+
+% Integers
+\DeclareNumberSetCommand{\Integers}{Z}
+
+% Rational numbers
+\DeclareNumberSetCommand{\RationalNumbers}{Q}
+
+% Real Numbers
+\DeclareNumberSetCommand{\RealNumbers}{R}
+
+% Complex Numbers
+\DeclareNumberSetCommand{\ComplexNumbers}{C}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/ocgx2/ChangeLog b/macros/latex/contrib/ocgx2/ChangeLog
index 65ca63a13d..2fb1d2c57f 100644
--- a/macros/latex/contrib/ocgx2/ChangeLog
+++ b/macros/latex/contrib/ocgx2/ChangeLog
@@ -1,3 +1,17 @@
+2024-09-16
+ * v0.60: ocgx2.sty
+ * fix: typos in pkg decription (log output)
+
+2024-09-15
+ * v0.59: ocgx2.sty
+ * v0.24: ocgbase.sty
+ * fix: pdf/a compliance (issue #22); log output (issue #20)
+
+2024-08-28
+ * v0.58: ocgx2.sty
+ * v0.23: ocgbase.sty
+ * fix: OCG hierarchy shown in the viewer's Layer tab
+
2024-03-18
* v0.57: ocgx2.sty
* fix: fixed link border in pdfmanagement-testphase version
diff --git a/macros/latex/contrib/ocgx2/ocgbase.sty b/macros/latex/contrib/ocgx2/ocgbase.sty
index bf4edf432b..e182f8670d 100644
--- a/macros/latex/contrib/ocgx2/ocgbase.sty
+++ b/macros/latex/contrib/ocgx2/ocgbase.sty
@@ -100,8 +100,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgbase@date@tl{2022/08/04}
-\def\g@ocgbase@version@tl{0.22}
+\def\g@ocgbase@date@tl{2024/09/15}
+\def\g@ocgbase@version@tl{0.24}
\ProvidesExplPackage{ocgbase}{\g@ocgbase@date@tl}{\g@ocgbase@version@tl}
{support package for ocgx2.sty}
@@ -167,10 +167,8 @@
%global Order list
\tl_new:N\l_ocgbase_ocgorderentry_tl
\tl_new:N\l_ocgbase_ocgorder_tl
- \tl_if_exist:cT{g_ocgbase_nd_0_chld_tl}{
- \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{
- \tl_use:c{g_ocgbase_nd_0_chld_tl}
- }
+ \seq_if_empty:NF\g_ocgbase_order_root_seq{
+ \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{root}
}
\tl_if_empty:NF\l_ocgbase_ocgorder_tl{
\pbs_pdfobj:nnn{}{array}{\l_ocgbase_ocgorder_tl}
@@ -228,98 +226,45 @@
\cs_new_nopar:Nn\ocgbase_last_ocg:{\g_ocgbase_last_ocg_tl}
-\int_new:N\g_ocgbase_nd_int %node id
-\seq_new:N\g_ocgbase_tree_nd_stack_seq %stack with open ocg node id
-\seq_new:N\g_ocgbase_tree_ocg_stack_seq %stack with open ocg obj number
-\seq_gpush:Nn\g_ocgbase_tree_nd_stack_seq{0} %push root node
-\seq_gpush:Nn\g_ocgbase_tree_ocg_stack_seq{null} %push root node
+\seq_new:N\g_ocgbase_open_ocg_seq %stack with open ocg ref
+\seq_new:N\g_ocgbase_order_root_seq %seq taking ocg ref /Order root
-%macro for starting OCG object (and nested children) insertion into Order
+%macro for starting OCG object (and nested children) insertion into order
%hierarchy (shown as tree structure in the viewers `Layers' tab
\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
- %get the parent node from stack
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
- \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
- %parent has >=1 children (i. e. my older siblings), traverse them
- \tl_set:Nv\l__ocgbase_prev_sbl_tl{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}
- \tl_set:Nx\l__ocgbase_cur_ocg_tl{#1}
- \ocgbase_traverse_siblings:NN\l__ocgbase_prev_sbl_tl\l__ocgbase_cur_ocg_tl
- \str_if_empty:NTF\l__ocgbase_cur_ocg_tl{
- %I am the first child of my parent to refer to OCG #1
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my next-older sibling's `next sibling'
- \tl_gset:cV{
- g_ocgbase_nd_\l__ocgbase_prev_sbl_tl _sbl_tl}\l__ocgbase_cur_nd_tl
- }{
- %there is already a sibling referring to OCG #1; no new node needs be
- %created
- \tl_set:NV\l__ocgbase_cur_nd_tl\l__ocgbase_prev_sbl_tl
- }
- }{
- %I am the very first child of my parent
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my parent's first child
- \tl_gset:cV{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}\l__ocgbase_cur_nd_tl
+ % get parent (either currently open ocg or root)
+ \seq_get:NNF\g_ocgbase_open_ocg_seq\l__ocgbase_prnt_tl{
+ \tl_set:Nn\l__ocgbase_prnt_tl{root}
}
- %set the OCG I am referring to
- \tl_gset:cx{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}{#1}
- %push current node and its associated OCG obj on the stacks
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \seq_gpush:Nx\g_ocgbase_tree_ocg_stack_seq{#1}
-}
-
-%macro that ends insertion of OCG and sub-OCGs into Order tree
-\cs_new_protected:Nn\ocgbase_tree_node_end:{
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l_tempa_tl
- \seq_get:NN\g_ocgbase_tree_ocg_stack_seq\l_tempb_tl
- \str_if_eq:eeT{
- \cs_if_exist_use:c{g_ocgbase_nd_\l_tempa_tl _ocg_tl}
- }{
- \l_tempb_tl
- }{
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\g_trash_tl
- \seq_gpop:NN\g_ocgbase_tree_ocg_stack_seq\g_trash_tl
+ %push current ocg ref on stack with open ocgs
+ \seq_gpush:Nx\g_ocgbase_open_ocg_seq{#1}
+ %create seq for current ocg if not yet existing and
+ %append ocg ref to its parent seq
+ \seq_if_exist:cF{g_ocgbase_order_#1_seq}{
+ \seq_new:c{g_ocgbase_order_#1_seq}
+ \seq_gput_right:cx{g_ocgbase_order_ \l__ocgbase_prnt_tl _seq}{#1}
}
}
-% helper macro (recursive); traverses siblings to find either
-% the node which refers to the same OCG (arg #2 remains un-modified), or
-% the last sibling inserted (arg #2 is cleared);
-% the node id of the sibling found is returned in arg #1
-\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
- % #1: current node (in/out), #2: OCG obj (in/out)
- \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
- \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
- \tl_set:Nv#1{g_ocgbase_nd_#1_sbl_tl}
- \ocgbase_traverse_siblings:NN#1#2
- }{
- \tl_clear:N#2
- }
- }
+%macro that ends insertion of current OCG into order tree
+\cs_new_protected:Nn\ocgbase_tree_node_end:{
+ %pop top ocg ref from stack with open ocgs
+ \seq_gpop:NN\g_ocgbase_open_ocg_seq\g_trash_tl
}
+%macro that builds global ocg order from hierarchy and saves it into tl var
\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
% (recursive macro)
% #1: tl var to which the OCG order is written (output)
- % #2: starting node id (input; usually `1')
- \tl_set:Nx\l__ocgbase_cur_nd_tl{#2}
- % first, append the OCG obj the current node is referring to
- \tl_put_right:Nx#1{~\tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}}
- % second, traverse the tree starting with the first child node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}{
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \tl_put_right:Nn#1{~[}
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}}
- \tl_put_right:Nn#1{~]}
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- }
- % third, traverse the tree starting with the next sibling node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}{
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}}
+ % #2: starting node (input; usually `root')
+ \seq_map_inline:cn{g_ocgbase_order_#2_seq}{
+ % first, append ocg ref to result tl var
+ \tl_put_right:Nx#1{~##1}
+ \seq_if_empty:cF{g_ocgbase_order_##1_seq}{
+ \tl_put_right:Nn#1{~[}
+ \ocgbase_build_order:Nn#1{##1}
+ \tl_put_right:Nn#1{~]}
+ }
}
}
@@ -433,7 +378,7 @@
% \ocgbase@tree@node@end
% #1: OCG PDF object
% macro pair (begin and end) for inserting OCG object and its children
-% into Order hierarchy (shown as tree structure in the viewers `Layers' tab
+% into order hierarchy (shown as tree structure in the viewers `Layers' tab
%
% --------
%
@@ -479,8 +424,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgbase@date@tl{2022/08/04}
-\def\g@ocgbase@version@tl{0.22}
+\def\g@ocgbase@date@tl{2024/09/15}
+\def\g@ocgbase@version@tl{0.24}
\ProvidesExplPackage{ocgbase}{\g@ocgbase@date@tl}{\g@ocgbase@version@tl}
{support package for ocgx2.sty}
@@ -535,25 +480,23 @@
\AddToHook{shipout/lastpage}{
\tl_if_empty:NF\g_ocgbase_ocgs_tl{
%global OCG array
- \pbs_pdfobj:nnn{}{array}{\g_ocgbase_ocgs_tl}
- \tl_set:Nx\l_ocgbase_ocgarray_tl{\pbs_pdflastobj:}
- \tl_new:N\l_ocgbase_offocgentry_tl
+ \pdf_object_unnamed_write:ne{array}{\g_ocgbase_ocgs_tl}
+ \tl_set:Nx\l_ocgbase_ocgarray_tl{\pdf_object_ref_last:}
%global OFF list
+ \tl_new:N\l_ocgbase_offocgentry_tl
\seq_if_empty:NF\g_ocgbase_offocgs_seq{
- \pbs_pdfobj:nnn{}{array}{\seq_use:Nn\g_ocgbase_offocgs_seq{~}}
- \tl_set:Nx\l_ocgbase_offocgentry_tl{/OFF~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\seq_use:Nn\g_ocgbase_offocgs_seq{~}}
+ \tl_set:Nx\l_ocgbase_offocgentry_tl{/OFF~\pdf_object_ref_last:}
}
%global Order list
\tl_new:N\l_ocgbase_ocgorderentry_tl
\tl_new:N\l_ocgbase_ocgorder_tl
- \tl_if_exist:cT{g_ocgbase_nd_0_chld_tl}{
- \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{
- \tl_use:c{g_ocgbase_nd_0_chld_tl}
- }
+ \seq_if_empty:NF\g_ocgbase_order_root_seq{
+ \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{root}
}
\tl_if_empty:NF\l_ocgbase_ocgorder_tl{
- \pbs_pdfobj:nnn{}{array}{\l_ocgbase_ocgorder_tl}
- \tl_set:Nx\l_ocgbase_ocgorderentry_tl{/Order~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\l_ocgbase_ocgorder_tl}
+ \tl_set:Nx\l_ocgbase_ocgorderentry_tl{/Order~\pdf_object_ref_last:}
}
%generate RBGroups entry (radio button groups)
\tl_new:N\l_ocgbase_rbtn_groups_tl
@@ -566,16 +509,19 @@
}
\tl_new:N\l_ocgbase_rbgroupsentry_tl
\tl_if_empty:NF\l_ocgbase_rbtn_groups_tl{
- \pbs_pdfobj:nnn{}{array}{\l_ocgbase_rbtn_groups_tl}
- \tl_set:Nx\l_ocgbase_rbgroupsentry_tl{/RBGroups~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\l_ocgbase_rbtn_groups_tl}
+ \tl_set:Nx\l_ocgbase_rbgroupsentry_tl{/RBGroups~\pdf_object_ref_last:}
}
\pdfmanagement_add:nnx{Catalog/OCProperties}{OCGs}{\g_ocgbase_ocgs_tl}
\pdfmanagement_add:nnx{Catalog/OCProperties}{D}{<<
- /AS~[
- <</Event/View /Category[/View] /OCGs~\l_ocgbase_ocgarray_tl>>
- <</Event/Print /Category[/Print] /OCGs~\l_ocgbase_ocgarray_tl>>
- <</Event/Export/Category[/Export]/OCGs~\l_ocgbase_ocgarray_tl>>
- ]
+ /Name~(OC~default~configuration)
+ \pdfmeta_standard_verify:nT{Catalog_OCProperties_no_AS}{ %for pdf/a compliance
+ /AS~[
+ <</Event/View /Category[/View] /OCGs~\l_ocgbase_ocgarray_tl>>
+ <</Event/Print /Category[/Print] /OCGs~\l_ocgbase_ocgarray_tl>>
+ <</Event/Export/Category[/Export]/OCGs~\l_ocgbase_ocgarray_tl>>
+ ]
+ }
/BaseState/ON~\l_ocgbase_offocgentry_tl
\l_ocgbase_ocgorderentry_tl
\l_ocgbase_rbgroupsentry_tl
@@ -586,12 +532,10 @@
}
%macro for inserting new OCG object
-\cs_generate_variant:Nn\pdf_object_new:nn{xn}
-\cs_generate_variant:Nn\pdf_object_write:nn{xx}
\int_new:N\g_ocgbase_int
\cs_new_protected_nopar:Nn\ocgbase_new_ocg:nnn{
- \pdf_object_new:xn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}
- \pdf_object_write:xx{g_object_\int_use:N\g_ocgbase_int _pdf}{
+ \exp_args:Ne\pdf_object_new:n{g_object_\int_use:N\g_ocgbase_int _pdf}
+ \exp_args:Neee\pdf_object_write:nnn{g_object_ \int_use:N\g_ocgbase_int _pdf}{dict}{
/Type/OCG/Name~(#1)~\str_if_eq:eeF{#2}{}{/Usage<<#2>>}
}
\tl_gput_right:Nx\g_ocgbase_ocgs_tl{~\pdf_object_ref_last:}
@@ -612,98 +556,45 @@
\cs_new_nopar:Nn\ocgbase_last_ocg:{\g_ocgbase_last_ocg_tl}
-\int_new:N\g_ocgbase_nd_int %node id
-\seq_new:N\g_ocgbase_tree_nd_stack_seq %stack with open ocg node id
-\seq_new:N\g_ocgbase_tree_ocg_stack_seq %stack with open ocg obj number
-\seq_gpush:Nn\g_ocgbase_tree_nd_stack_seq{0} %push root node
-\seq_gpush:Nn\g_ocgbase_tree_ocg_stack_seq{null} %push root node
+\seq_new:N\g_ocgbase_open_ocg_seq %stack with open ocg ref
+\seq_new:N\g_ocgbase_order_root_seq %seq taking ocg ref /Order root
-%macro for starting OCG object (and nested children) insertion into Order
+%macro for starting OCG object (and nested children) insertion into order
%hierarchy (shown as tree structure in the viewers `Layers' tab
\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
- %get the parent node from stack
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
- \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
- %parent has >=1 children (i. e. my older siblings), traverse them
- \tl_set:Nv\l__ocgbase_prev_sbl_tl{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}
- \tl_set:Nx\l__ocgbase_cur_ocg_tl{#1}
- \ocgbase_traverse_siblings:NN\l__ocgbase_prev_sbl_tl\l__ocgbase_cur_ocg_tl
- \str_if_empty:NTF\l__ocgbase_cur_ocg_tl{
- %I am the first child of my parent to refer to OCG #1
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my next-older sibling's `next sibling'
- \tl_gset:cV{
- g_ocgbase_nd_\l__ocgbase_prev_sbl_tl _sbl_tl}\l__ocgbase_cur_nd_tl
- }{
- %there is already a sibling referring to OCG #1; no new node needs be
- %created
- \tl_set:NV\l__ocgbase_cur_nd_tl\l__ocgbase_prev_sbl_tl
- }
- }{
- %I am the very first child of my parent
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my parent's first child
- \tl_gset:cV{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}\l__ocgbase_cur_nd_tl
+ % get parent (either currently open ocg or root)
+ \seq_get:NNF\g_ocgbase_open_ocg_seq\l__ocgbase_prnt_tl{
+ \tl_set:Nn\l__ocgbase_prnt_tl{root}
}
- %set the OCG I am referring to
- \tl_gset:cx{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}{#1}
- %push current node and its associated OCG obj on the stacks
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \seq_gpush:Nx\g_ocgbase_tree_ocg_stack_seq{#1}
-}
-
-%macro that ends insertion of OCG and sub-OCGs into Order tree
-\cs_new_protected:Nn\ocgbase_tree_node_end:{
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l_tempa_tl
- \seq_get:NN\g_ocgbase_tree_ocg_stack_seq\l_tempb_tl
- \str_if_eq:eeT{
- \cs_if_exist_use:c{g_ocgbase_nd_\l_tempa_tl _ocg_tl}
- }{
- \l_tempb_tl
- }{
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\g_trash_tl
- \seq_gpop:NN\g_ocgbase_tree_ocg_stack_seq\g_trash_tl
+ %push current ocg ref on stack with open ocgs
+ \seq_gpush:Nx\g_ocgbase_open_ocg_seq{#1}
+ %create seq for current ocg if not yet existing and
+ %append ocg ref to its parent seq
+ \seq_if_exist:cF{g_ocgbase_order_#1_seq}{
+ \seq_new:c{g_ocgbase_order_#1_seq}
+ \seq_gput_right:cx{g_ocgbase_order_ \l__ocgbase_prnt_tl _seq}{#1}
}
}
-% helper macro (recursive); traverses siblings to find either
-% the node which refers to the same OCG (arg #2 remains un-modified), or
-% the last sibling inserted (arg #2 is cleared);
-% the node id of the sibling found is returned in arg #1
-\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
- % #1: current node (in/out), #2: OCG obj (in/out)
- \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
- \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
- \tl_set:Nv#1{g_ocgbase_nd_#1_sbl_tl}
- \ocgbase_traverse_siblings:NN#1#2
- }{
- \tl_clear:N#2
- }
- }
+%macro that ends insertion of current OCG into order tree
+\cs_new_protected:Nn\ocgbase_tree_node_end:{
+ %pop top ocg ref from stack with open ocgs
+ \seq_gpop:NN\g_ocgbase_open_ocg_seq\g_trash_tl
}
+%macro that builds global ocg order from hierarchy and saves it into tl var
\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
% (recursive macro)
% #1: tl var to which the OCG order is written (output)
- % #2: starting node id (input; usually `1')
- \tl_set:Nx\l__ocgbase_cur_nd_tl{#2}
- % first, append the OCG obj the current node is referring to
- \tl_put_right:Nx#1{~\tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}}
- % second, traverse the tree starting with the first child node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}{
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \tl_put_right:Nn#1{~[}
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}}
- \tl_put_right:Nn#1{~]}
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- }
- % third, traverse the tree starting with the next sibling node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}{
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}}
+ % #2: starting node (input; usually `root')
+ \seq_map_inline:cn{g_ocgbase_order_#2_seq}{
+ % first, append ocg ref to result tl var
+ \tl_put_right:Nx#1{~##1}
+ \seq_if_empty:cF{g_ocgbase_order_##1_seq}{
+ \tl_put_right:Nn#1{~[}
+ \ocgbase_build_order:Nn#1{##1}
+ \tl_put_right:Nn#1{~]}
+ }
}
}
@@ -740,7 +631,7 @@
% OC-marked content
\cs_new_protected_nopar:Nn\ocgbase_oc_bdc:n{\pbs_pdfbdc:nn{OC}{#1}}
-\cs_new_protected_nopar:Nn\ocgbase_oc_emc:{\pbs_pdfemc:}
+\cs_new_eq:NN\ocgbase_oc_emc:\pbs_pdfemc:
%stack of PDF obj references of currently open OCGs
\seq_new:N\g_ocgbase_open_stack_seq
diff --git a/macros/latex/contrib/ocgx2/ocgx2.sty b/macros/latex/contrib/ocgx2/ocgx2.sty
index a1081f88ac..84d1432395 100644
--- a/macros/latex/contrib/ocgx2/ocgx2.sty
+++ b/macros/latex/contrib/ocgx2/ocgx2.sty
@@ -43,11 +43,11 @@
%
% The Current Maintainer of this work is A. Grahn.
- \def\g@ocgxii@date@tl{2024/03/18}
- \def\g@ocgxii@version@tl{0.57}
+ \def\g@ocgxii@date@tl{2024/09/16}
+ \def\g@ocgxii@version@tl{0.60}
\ProvidesExplPackage{ocgx2}{\g@ocgxii@date@tl}{\g@ocgxii@version@tl}
- {ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
+ {ports~`ocgx'~functionality~to~dvips+ps2pdf,~xelatex~and~dvipdfmx}
%creating global definitions
\cs_new_protected:Npn\ocgxii@newkey#1#2{\tl_gset:cx{#1}{#2}}
@@ -1579,8 +1579,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgxii@date@tl{2024/03/18}
-\def\g@ocgxii@version@tl{0.57}
+\def\g@ocgxii@date@tl{2024/09/16}
+\def\g@ocgxii@version@tl{0.60}
\ProvidesExplPackage{ocgx2}{\g@ocgxii@date@tl}{\g@ocgxii@version@tl}
{ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
@@ -1810,8 +1810,8 @@
\cs_set_eq:NN\And \ocgxii_protected_dummy_cs:n
\cs_set_eq:NN\Or \ocgxii_protected_dummy_cs:n
\ocgxii_ocmd_read_visbility:xN{#2}\l_ocgxii_ocmd_visibility_tl
- \pdf_object_new:xn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}
- \pdf_object_write:xx{g_object_\int_use:N\g_ocgbase_int _pdf}{
+ \exp_args:Ne\pdf_object_new:n{g_object_\int_use:N\g_ocgbase_int _pdf}
+ \exp_args:Neee\pdf_object_write:nnn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}{
/Type/OCMD\l_ocgxii_ocmd_visibility_tl
}
\tl_gset:cx{g_pbs_objname_\pdf_object_ref_last: _tl}{
@@ -2385,104 +2385,132 @@
%
\bool_if:nTF{\l_ocgxii_nobreak_bool || \l_ocgxii_mouse_triggers_bool}{
\hbox_set:Nn\l_tmpa_box{#6}
- \bool_if:NTF\l_ocgxii_mouse_triggers_bool{
- % e,d,x mouse triggers require (non-breakable) /Widget annot
- \pdfannot_dict_put:nnn{link/GoTo}{Subtype}{/Widget}
- \pdfannot_dict_remove:nn{link/GoTo}{Border}
- }{
- \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
- }
- \pdfannot_dict_remove:nn{link/GoTo}{C}
- \pbs_pdfannot:nnnn{
- \dim_use:N\box_wd:N\l_tmpa_box}{
- \dim_use:N\box_ht:N\l_tmpa_box}{
- \dim_use:N\box_dp:N\l_tmpa_box
- }{
- \pdfannot_dict_use:n{link/GoTo}
+ % suppress annots with SetOCGState Action Subtype for pdf/a compliance
+ \pdfmeta_standard_verify:nT{annot_action_A}{
\bool_if:NTF\l_ocgxii_mouse_triggers_bool{
- /Ff~65536/FT/Btn/BS<</W~0>>
- /T~(ocgx2@\int_use:N\g_ocgxii_widcount_int)
- %treat mouse-up as mouse-click --> handle through /A dictionary
- \str_if_eq:eeF{}{
- \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
- }{
- /A <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
- /Toggle~\l_ocgxii_toswitch_u_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
- /ON~\l_ocgxii_toshow_u_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
- /OFF~\l_ocgxii_tohide_u_tl
- }
- ]>>
- }
- % other mouse triggers need add. actions dict
- /AA <<
- %\str_if_eq:eeF{}{ % mouse-up
- % \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
- %}{
- % /U <</S/SetOCGState/State [
- % \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
- % /Toggle~\l_ocgxii_toswitch_u_tl
- % }
- % \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
- % /ON~\l_ocgxii_toshow_u_tl
- % }
- % \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
- % /OFF~\l_ocgxii_tohide_u_tl
- % }
- % ]>>
- %}
- \str_if_eq:eeF{}{ % mouse-down
- \l_ocgxii_toswitch_d_tl\l_ocgxii_toshow_d_tl\l_ocgxii_tohide_d_tl
- }{
- /D <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_d_tl{}{
- /Toggle~\l_ocgxii_toswitch_d_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_d_tl{}{
- /ON~\l_ocgxii_toshow_d_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_d_tl{}{
- /OFF~\l_ocgxii_tohide_d_tl
- }
- ]>>
- }
- \str_if_eq:eeF{}{ % mouse-enter
- \l_ocgxii_toswitch_e_tl\l_ocgxii_toshow_e_tl\l_ocgxii_tohide_e_tl
- }{
- /E <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_e_tl{}{
- /Toggle~\l_ocgxii_toswitch_e_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_e_tl{}{
- /ON~\l_ocgxii_toshow_e_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_e_tl{}{
- /OFF~\l_ocgxii_tohide_e_tl
- }
- ]>>
- }
- \str_if_eq:eeF{}{ % mouse-exit
- \l_ocgxii_toswitch_x_tl\l_ocgxii_toshow_x_tl\l_ocgxii_tohide_x_tl
+ % e,d,x mouse triggers require (non-breakable) /Widget annot
+ \pdfannot_dict_put:nnn{link/GoTo}{Subtype}{/Widget}
+ \pdfannot_dict_remove:nn{link/GoTo}{Border}
+ }{
+ \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
+ }
+ \pdfannot_dict_remove:nn{link/GoTo}{C}
+ \pbs_pdfannot:nnnn{
+ \dim_use:N\box_wd:N\l_tmpa_box}{
+ \dim_use:N\box_ht:N\l_tmpa_box}{
+ \dim_use:N\box_dp:N\l_tmpa_box
+ }{
+ \pdfannot_dict_use:n{link/GoTo}
+ \bool_if:NTF\l_ocgxii_mouse_triggers_bool{
+ /Ff~65536/FT/Btn/BS<</W~0>>
+ /T~(ocgx2@\int_use:N\g_ocgxii_widcount_int)
+ %treat mouse-up as mouse-click --> handle through /A dictionary
+ \str_if_eq:eeF{}{
+ \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
}{
- /X <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_x_tl{}{
- /Toggle~\l_ocgxii_toswitch_x_tl
+ /A <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
+ /Toggle~\l_ocgxii_toswitch_u_tl
}
- \str_if_eq:VnF\l_ocgxii_toshow_x_tl{}{
- /ON~\l_ocgxii_toshow_x_tl
+ \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
+ /ON~\l_ocgxii_toshow_u_tl
}
- \str_if_eq:VnF\l_ocgxii_tohide_x_tl{}{
- /OFF~\l_ocgxii_tohide_x_tl
+ \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
+ /OFF~\l_ocgxii_tohide_u_tl
}
]>>
}
- >>
- }{
- %mouse-up alone
+ % other mouse triggers need add. actions dict
+ /AA <<
+ %\str_if_eq:eeF{}{ % mouse-up
+ % \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
+ %}{
+ % /U <</S/SetOCGState/State [
+ % \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
+ % /Toggle~\l_ocgxii_toswitch_u_tl
+ % }
+ % \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
+ % /ON~\l_ocgxii_toshow_u_tl
+ % }
+ % \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
+ % /OFF~\l_ocgxii_tohide_u_tl
+ % }
+ % ]>>
+ %}
+ \str_if_eq:eeF{}{ % mouse-down
+ \l_ocgxii_toswitch_d_tl\l_ocgxii_toshow_d_tl\l_ocgxii_tohide_d_tl
+ }{
+ /D <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_d_tl{}{
+ /Toggle~\l_ocgxii_toswitch_d_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_d_tl{}{
+ /ON~\l_ocgxii_toshow_d_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_d_tl{}{
+ /OFF~\l_ocgxii_tohide_d_tl
+ }
+ ]>>
+ }
+ \str_if_eq:eeF{}{ % mouse-enter
+ \l_ocgxii_toswitch_e_tl\l_ocgxii_toshow_e_tl\l_ocgxii_tohide_e_tl
+ }{
+ /E <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_e_tl{}{
+ /Toggle~\l_ocgxii_toswitch_e_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_e_tl{}{
+ /ON~\l_ocgxii_toshow_e_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_e_tl{}{
+ /OFF~\l_ocgxii_tohide_e_tl
+ }
+ ]>>
+ }
+ \str_if_eq:eeF{}{ % mouse-exit
+ \l_ocgxii_toswitch_x_tl\l_ocgxii_toshow_x_tl\l_ocgxii_tohide_x_tl
+ }{
+ /X <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_x_tl{}{
+ /Toggle~\l_ocgxii_toswitch_x_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_x_tl{}{
+ /ON~\l_ocgxii_toshow_x_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_x_tl{}{
+ /OFF~\l_ocgxii_tohide_x_tl
+ }
+ ]>>
+ }
+ >>
+ }{
+ %mouse-up alone
+ /A <</S/SetOCGState
+ /State [
+ \str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
+ /Toggle~\l_ocgxii_toswitch_u_tl}~
+ \str_if_eq:VnF{\l_ocgxii_toshow_u_tl}{}{/ON~\l_ocgxii_toshow_u_tl}~
+ \str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
+ ]
+ >>
+ }
+ }
+ \bool_if:NT\l_ocgxii_mouse_triggers_bool{
+ \pbs_appendtofields:n{\pbs_pdflastann:}
+ \int_gincr:N\g_ocgxii_widcount_int
+ }
+ }
+ \box_use_drop:N\l_tmpa_box
+ }{
+ % suppress annots with SetOCGState Action Subtype for pdf/a compliance
+ \pdfmeta_standard_verify:nTF{annot_action_A}{
+ \bool_if:NF\g_ocgxii_hyperref_loaded_bool{
+ \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
+ }
+ %line-breakable annotation
+ \pbs_pdflink:nn{
+ %look and feel of hyperref internal links
+ \pdfannot_dict_use:n{link/GoTo}
/A <</S/SetOCGState
/State [
\str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
@@ -2491,33 +2519,12 @@
\str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
]
>>
+ }{
+ \hook_use:n{pdfannot/link/GoTo/begin}
+ #6
+ \hook_use:n{pdfannot/link/GoTo/end}
}
- }\box_use_drop:N\l_tmpa_box
- \bool_if:NT\l_ocgxii_mouse_triggers_bool{
- \pbs_appendtofields:n{\pbs_pdflastann:}
- \int_gincr:N\g_ocgxii_widcount_int
- }
- }{
- \bool_if:NF\g_ocgxii_hyperref_loaded_bool{
- \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
- }
- %line-breakable annotation
- \pbs_pdflink:nn{
- %look and feel of hyperref internal links
- \pdfannot_dict_use:n{link/GoTo}
- /A <</S/SetOCGState
- /State [
- \str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
- /Toggle~\l_ocgxii_toswitch_u_tl}~
- \str_if_eq:VnF{\l_ocgxii_toshow_u_tl}{}{/ON~\l_ocgxii_toshow_u_tl}~
- \str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
- ]
- >>
- }{
- \hook_use:n{pdfannot/link/GoTo/begin}
- #6
- \hook_use:n{pdfannot/link/GoTo/end}
- }
+ }{#6}
}
\group_end:
}
diff --git a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
index 9234ec3596..6f09abae4e 100644
--- a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
+++ b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
index ae8de67450..413d7368cc 100644
--- a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
+++ b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
@@ -36,8 +36,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{14 août 2023}
+\def\TPversion{0.1.2}
+\def\TPdate{14 septembre 2024}
\usepackage{tcolorbox}
@@ -135,6 +135,10 @@ Les panneaux sont au format \MontreCode{pdf}, obtenu à l'aide de fichiers \Mont
\subsection{Historique}
+\verb|v0.1.2|~:~~~~Nouveaux panneaux
+
+\verb|v0.1.1|~:~~~~Ajout du panneau B14 (80) pour la limitation de vitesse 80
+
\verb|v0.1.0|~:~~~~Version initiale
\subsection{Chargement}
@@ -178,12 +182,12 @@ Par défaut (dû à \MontreCode{\textbackslash includegraphics}) les \textit{ima
Pour les panneaux de (début/fin de) limitation de vitesse, la commande associée nécessite un argument obligatoire, et entre \MontreCode{\{...\}}, avec comme possibilités \MontreCode{15/30/50/70/90/110/130} :
\begin{demohigh}[language=latex/latex3,style/main=cyan!5,style/code=cyan!5,style/demo=cyan!5]
-\prLimVites{15}\prLimVites{30}\prLimVites{50}\prLimVites{70}
-\prLimVites{90}\prLimVites{110}\prLimVites{130}
+\prLimVites{15}\prLimVites{30}\prLimVites{50}\prLimVites{70}%
+\prLimVites{80}\prLimVites{90}\prLimVites{110}\prLimVites{130}
\end{demohigh}
\begin{demohigh}[language=latex/latex3,style/main=cyan!5,style/code=cyan!5,style/demo=cyan!5]
-\prFinLimVit{15}\prFinLimVit{30}\prFinLimVit{50}\prFinLimVit{70}
+\prFinLimVit{15}\prFinLimVit{30}\prFinLimVit{50}\prFinLimVit{70}%
\prFinLimVit{90}\prFinLimVit{110}\prFinLimVit{130}
\end{demohigh}
@@ -228,6 +232,24 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\pagebreak
+\subsection{Panneaux de Danger temporaires}
+
+\begin{longtblr}[label=none,entry=none]{width=0.95\linewidth,hlines,vlines,colspec={Q[12.5mm,m,c]Q[m,c]X[l,m]Q[m,c,35mm]},row{1}={cyan!5,font=\Large\sffamily},row{2-Z}={font=\sffamily},cell{2-Z}{Z}={font=\footnotesize}}
+ Type & Panneau & Signification & Alias \\
+ AK2 & \PanneauTableau{AK2} & Dos d'âne ou cassis & \fakeverb{\prDosAneTemp} \\
+ AK3 & \PanneauTableau{AK3} & Rétrécissement de chaussée & \fakeverb{\prChausRetTemp}\\
+ AK4 & \PanneauTableau{AK4} & Chaussée glissante & \fakeverb{\prChaussGlissTemp} \\
+ AK5 & \PanneauTableau{AK5} & Travaux & \fakeverb{\prTravauxTemp} \\
+ AK14 & \PanneauTableau{AK14} & Danger & \fakeverb{\prDangerTemp} \\
+ AK17 & \PanneauTableau{AK17} & Feux temporaires & \fakeverb{\prFeuxTemp} \\
+ AK22 & \PanneauTableau{AK22} & Projection de gravillons & \fakeverb{\prGraviersTemp} \\
+ AK30 & \PanneauTableau{AK30} & Embouteillage & \fakeverb{\prBouchonTemp} \\
+ AK31 & \PanneauTableau{AK31} & Accident & \fakeverb{\prAccidentTemp} \\
+ AK32 & \PanneauTableau{AK32} & Brouillard ou fumées épaisses & \fakeverb{\prBrouillardTemp} \\
+\end{longtblr}
+
+\pagebreak
+
\subsection{Panneaux d'Interdiction et de Priorité}
\begin{longtblr}[label=none,entry=none]{width=0.95\linewidth,hlines,vlines,colspec={Q[12.5mm,m,c]Q[m,c]X[l,m]Q[m,c,35mm]},row{1}={cyan!5,font=\Large\sffamily},row{2-Z}={font=\sffamily},cell{2-Z}{Z}={font=\footnotesize}}
@@ -251,11 +273,11 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
Type & Panneau & Signification & Alias \\
B0 & \PanneauTableau{B0} & Circulation interdite à tout véhicule dans les deux sens & \fakeverb{\prCircInterd} \\
B1 & \PanneauTableau{B1} & Sens interdit à tout véhicule & \fakeverb{\prSensInterdit} \\
- %B1j & \PanneauTableau{B1j} & Répétition d'interdiction d'accès à contresens de bretelles [\ldots] \\
+ B1j & \PanneauTableau{B1j} & Répétition d'interdiction d'accès à contresens de bretelles [\ldots] & \fakeverb{\prSensInterditJ} \\
B2a & \PanneauTableau{B2a} & Interdiction de tourner à gauche à la prochaine intersection & \fakeverb{\prInterdTournG} \\
B2b & \PanneauTableau{B2b} & Interdiction de tourner à droite à la prochaine intersection & \fakeverb{\prInterdTournD} \\
B2c & \PanneauTableau{B2c} & Interdiction de faire demi-tour sur la route suivie jusqu'à la prochaine intersection & \fakeverb{\prInterdDemiTour} \\
- B3 & \PanneauTableau{B31} & Interdiction de dépasser tous les véhicules à moteur autres que ceux à deux roues sans side-car & \fakeverb{\prInterdDepass} \\
+ B3 & \PanneauTableau{B3} & Interdiction de dépasser tous les véhicules à moteur autres que ceux à deux roues sans side-car & \fakeverb{\prInterdDepass} \\
B3a & \PanneauTableau{B3a} & Interdiction aux véhicules automobiles, véhicules articulés, trains doubles ou [\ldots] & \fakeverb{\prInterdVehic} \\
B4 & \PanneauTableau{B4} & Arrêt au poste de douane & \fakeverb{\prHalteDouane} \\
B5a & \PanneauTableau{B5a} & Arrêt au poste de gendarmerie & \fakeverb{\prHalteGendarm} \\
@@ -282,7 +304,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
B12 & \PanneauTableau{B12} & Accès interdit aux véhicules dont la hauteur, chargement compris, est supérieure [\ldots] & \fakeverb{\prInterdHaut} \\
B13 & \PanneauTableau{B13} & Accès interdit aux véhicules, véhicules articulés, trains doubles ou ensemble de véhicules [\ldots] & \fakeverb{\prInterdPoids} \\
B13a & \PanneauTableau{B13a} & Accès interdit aux véhicules pesant sur un essieu plus que le nombre indiqué & \fakeverb{\prInterdPoidsEssieu} \\
- B14\_x & Limite de vitesse & \PanneauTableau{B14_15}\PanneauTableau{B14_30}\PanneauTableau{B14_50}\PanneauTableau{B14_70}\PanneauTableau{B14_90}\PanneauTableau{B14_110}\PanneauTableau{B14_130} & \fakeverb{\prLimVites{x}}\\
+ B14\_x & Limite de vitesse & \PanneauTableau{B14_15}\PanneauTableau{B14_30}\PanneauTableau{B14_50}\PanneauTableau{B14_70}\PanneauTableau{B14_80}\PanneauTableau{B14_90}\PanneauTableau{B14_110}\PanneauTableau{B14_130} & \fakeverb{\prLimVites{x}}\\
B15 & \PanneauTableau{B15} & Cédez le passage à la circulation venant en sens inverse & \fakeverb{\prCedezInv} \\
B16 & \PanneauTableau{B16} & Signaux sonores interdits & \fakeverb{\prInterdSons} \\
B17 & \PanneauTableau{B17} & Interdiction aux véhicules de circuler sans maintenir entre eux un intervalle [\ldots] & \fakeverb{\prDistance} \\
@@ -461,6 +483,28 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
%CE100 & \PanneauTableau{CE100} & Indication de l’enseigne de la ou des sociétés commerciales offrant un [\ldots] \\
\end{longtblr}
+\subsection{Panneaux divers}
+
+\NewDocumentCommand\AffPanneauGenerique{ m }{%
+ \raisebox{-0.2\height}{\AffPanneau[height=1.5cm]{#1}} : \texttt{#1}
+}
+\begin{multicols}{3}
+ \AffPanneauGenerique{B50a} \\
+ \AffPanneauGenerique{B50b} \\
+ \AffPanneauGenerique{B50c} \\
+ \AffPanneauGenerique{B50d} \\
+ \AffPanneauGenerique{B50e} \\
+ \raisebox{-0.2\height}{\AffPanneau[height=1.5cm]{B51_30}} : \texttt{B51\_30} \\
+ \AffPanneauGenerique{B53} \\
+ \AffPanneauGenerique{B55} \\
+ \AffPanneauGenerique{B57} \\
+ \AffPanneauGenerique{B59} \\
+ \AffPanneauGenerique{B49VL} \\
+ \AffPanneauGenerique{C24a}
+\end{multicols}
+
+\pagebreak
+
\section{Aliases, de hauteur 2.5ex}
\begin{multicols}{3}
@@ -494,6 +538,19 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\raisebox{-0.2\height}{\prVent[height=2.5ex]} : \verb+\prVent+
\end{multicols}
+\begin{multicols}{3}%temporaire
+ \raisebox{-0.2\height}{\prDosAneTemp[height=2.5ex]} : \verb+\prDosAneTemp+ \\
+ \raisebox{-0.2\height}{\prChausRetTemp[height=2.5ex]} : \verb+\prIntersectPrio+ \\
+ \raisebox{-0.2\height}{\prChaussGlissTemp[height=2.5ex]} : \verb+\prChaussGlissTemp+ \\
+ \raisebox{-0.2\height}{\prTravauxTemp[height=2.5ex]} : \verb+\prTravauxTemp+ \\
+ \raisebox{-0.2\height}{\prDangerTemp[height=2.5ex]} : \verb+\prDangerTemp+ \\
+ \raisebox{-0.2\height}{\prFeuxTemp[height=2.5ex]} : \verb+\prFeuxTemp+ \\
+ \raisebox{-0.2\height}{\prGraviersTemp[height=2.5ex]} : \verb+\prGraviersTemp+ \\
+ \raisebox{-0.2\height}{\prBouchonTemp[height=2.5ex]} : \verb+\prBouchonTemp+ \\
+ \raisebox{-0.2\height}{\prAccidentTemp[height=2.5ex]} : \verb+\prAccidentTemp+ \\
+ \raisebox{-0.2\height}{\prBrouillardTemp[height=2.5ex]} : \verb+\prBrouillardTemp+
+\end{multicols}
+
\begin{multicols}{3}
\raisebox{-0.2\height}{\prIntersect[height=2.5ex]} : \verb+\prIntersect+ \\
\raisebox{-0.2\height}{\prIntersectPrio[height=2.5ex]} : \verb+\prIntersectPrio+ \\
@@ -509,6 +566,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\begin{multicols}{3}
\raisebox{-0.2\height}{\prCircInterd[height=2.5ex]} : \verb+\prCircInterd+ \\
\raisebox{-0.2\height}{\prSensInterdit[height=2.5ex]} : \verb+\prSensInterdit+ \\
+ \raisebox{-0.2\height}{\prSensInterditJ[height=2.5ex]} : \verb+\prSensInterditJ+ \\
\raisebox{-0.2\height}{\prInterdTournG[height=2.5ex]} : \verb+\prInterdTournG+ \\
\raisebox{-0.2\height}{\prInterdTournD[height=2.5ex]} : \verb+\prInterdTournD+ \\
\raisebox{-0.2\height}{\prInterdDemiTour[height=2.5ex]} : \verb+\prInterdDemiTour+ \\
@@ -543,6 +601,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{30}} : \verb+\prLimVites{30}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{50}} : \verb+\prLimVites{50}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{70}} : \verb+\prLimVites{70}+ \\
+ \raisebox{-0.2\height}{\prLimVites[height=2.5ex]{80}} : \verb+\prLimVites{80}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{90}} : \verb+\prLimVites{90}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{110}} : \verb+\prLimVites{110}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{130}} : \verb+\prLimVites{130}+ \\
diff --git a/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf b/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf
new file mode 100644
index 0000000000..3b5ec7e8a4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf
new file mode 100644
index 0000000000..890d68ee51
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf
new file mode 100644
index 0000000000..5a98b38672
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf
new file mode 100644
index 0000000000..2e15811016
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf
new file mode 100644
index 0000000000..91952f39a8
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf
new file mode 100644
index 0000000000..ec8a30e437
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf
new file mode 100644
index 0000000000..92fd45c47f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf
new file mode 100644
index 0000000000..02b47faac0
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf
new file mode 100644
index 0000000000..6d3a6716b7
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf
new file mode 100644
index 0000000000..d737b9b203
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf
new file mode 100644
index 0000000000..a3ef5fd0ce
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf
new file mode 100644
index 0000000000..f5bb08180f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf
new file mode 100644
index 0000000000..3fecb25982
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf
new file mode 100644
index 0000000000..250253b066
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf
new file mode 100644
index 0000000000..853cc07c53
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf
new file mode 100644
index 0000000000..08e96de617
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf
new file mode 100644
index 0000000000..a14e1a111d
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf
new file mode 100644
index 0000000000..13e4ce3ac3
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf
new file mode 100644
index 0000000000..ce71fbd4b1
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf
new file mode 100644
index 0000000000..099108818f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf
new file mode 100644
index 0000000000..a721b753c2
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf
new file mode 100644
index 0000000000..f1b433d19b
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf
new file mode 100644
index 0000000000..2f96cdbec4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf
new file mode 100644
index 0000000000..02bc961ed8
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty b/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
index d94943962b..68021ef148 100644
--- a/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
+++ b/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
@@ -5,7 +5,11 @@
% : Licence CC BY-SA 3.0 for svg source (http://sig974.free.fr/?p=1520)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{PanneauxRoute}[2023/08/14 v0.1.0 Panneaux de signalisation fr]
+\ProvidesPackage{PanneauxRoute}[2024/09/14 v0.1.2 Panneaux de signalisation fr]
+
+%------Historique
+% 0.1.2 Ajout des panneaux divers
+% 0.1.1 Ajout du panneau B14 (80)
% 0.1.0 Version initiale
%------Packages utiles
@@ -56,8 +60,20 @@
\NewDocumentCommand\prFinRoutePrio{ O{height=1.15cm} }{\AffPanneau[#1]{AB7}}
\NewDocumentCommand\prRondPoint{ O{height=1.15cm} }{\AffPanneau[#1]{AB25}}
+\NewDocumentCommand\prDosAneTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK2}}
+\NewDocumentCommand\prChaussGlissTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK4}}
+\NewDocumentCommand\prChausRetTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK3}}
+\NewDocumentCommand\prTravauxTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK5}}
+\NewDocumentCommand\prDangerTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK14}}
+\NewDocumentCommand\prFeuxTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK17}}
+\NewDocumentCommand\prGraviersTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK22}}
+\NewDocumentCommand\prBouchonTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK30}}
+\NewDocumentCommand\prAccidentTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK31}}
+\NewDocumentCommand\prBrouillardTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK32}}
+
\NewDocumentCommand\prCircInterd{ O{height=1.15cm} }{\AffPanneau[#1]{B0}}
\NewDocumentCommand\prSensInterdit{ O{height=1.15cm} }{\AffPanneau[#1]{B1}}
+\NewDocumentCommand\prSensInterditJ{ O{height=1.15cm} }{\AffPanneau[#1]{B1j}}
\NewDocumentCommand\prInterdTournG{ O{height=1.15cm} }{\AffPanneau[#1]{B2a}}
\NewDocumentCommand\prInterdTournD{ O{height=1.15cm} }{\AffPanneau[#1]{B2b}}
\NewDocumentCommand\prInterdDemiTour{ O{height=1.15cm} }{\AffPanneau[#1]{B2c}}
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf
new file mode 100644
index 0000000000..8b388c78e4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf
new file mode 100644
index 0000000000..2784549080
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf
new file mode 100644
index 0000000000..521f95a618
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf
new file mode 100644
index 0000000000..7596e846eb
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf
new file mode 100644
index 0000000000..3871b514b2
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf
new file mode 100644
index 0000000000..2c0aac367a
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf
new file mode 100644
index 0000000000..18e5e37d90
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf
new file mode 100644
index 0000000000..7f59c16d00
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf
new file mode 100644
index 0000000000..bcee3bff90
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf
new file mode 100644
index 0000000000..236c455af6
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf
Binary files differ
diff --git a/macros/latex/contrib/paracol/README b/macros/latex/contrib/paracol/README
index 07bc7f36f0..4e59a38bc1 100644
--- a/macros/latex/contrib/paracol/README
+++ b/macros/latex/contrib/paracol/README
@@ -1,8 +1,9 @@
-paracol (v1.35): a multi-column package to typeset columns in "parallel".
+paracol (v1.36): a multi-column package to typeset columns in "parallel".
===
Copyright (C) 2005-2018
- Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
- (Kyoto Univerisity)
+ Hiroshi Nakashima (Kyoto University, deceased)
+Copyright (C) 2024
+ Markus Kurtz
This package can be redistributed and/or modified under the terms
of the LaTeX Project Public License distributed from CTAN
archives in directory macros/latex/base/lppl.txt; either
@@ -22,9 +23,20 @@ version 1 of the License, or any later version.
- probs.dtx ......... source of Section 11 of user's manual
- impl.dtx .......... source of implementation document
- paracol-man.pdf ... PDF of user's manual
+- paracol.pdf ....... PDF of implementation manual
[How to "make"]
+## The l3build way: get the zip archive from
+# https://codeberg.org/mgkurtz/paracol/archive/main.zip
+
+ % unzip main.zip
+ % cd paracol
+ % l3build install # to install paracol.sty or
+ % l3build install --full # to also install docs and source
+
+## The classical way
+
% tex paracol.ins # you'll have paracol.sty and paracol-man.tex
# to have user's manual (its PDF is included in the distribution)
@@ -66,9 +78,9 @@ you need newvbtm.sty being also available in CTAN.
- \columncolor[<mode>]{<color>}[<col>] to give the default <color> (with
<mode>) to the column <col> (new for v1.2).
-- \footnotelayout{<layout>} to choose ordinary column-wise footnote
+- \footnoteplacement{<layout>} to choose ordinary column-wise footnote
typesetting or page-wise typesetting to gather footnotes in all columns
- (new for v1.2 and *NEW* for v1.3 with better API).
+ (new for v1.2, *NEW* for v1.3 with better API, new for v1.36 with new name).
- \twosided{<t_1><t_2>...} to enable ordinary two-sided typesetting
(<t_i>=p), reversal of printing order of columns in even-numbered pages
@@ -116,8 +128,8 @@ you need newvbtm.sty being also available in CTAN.
- Emulation of \marginnote[<left>]{<right>}[<voffset>] given by marginnote
package (*NEW* for v 1.35).
-- Bugs found in v1.3 and successors up to v1.34 has been fixed.
+- Bugs found in v1.3 and successors up to v1.35 has been fixed.
Enjoy!
-Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
+Hiroshi Nakashima
diff --git a/macros/latex/contrib/paracol/bgpaint.dtx b/macros/latex/contrib/paracol/bgpaint.dtx
index ac79f4e9a9..81aaab0874 100644
--- a/macros/latex/contrib/paracol/bgpaint.dtx
+++ b/macros/latex/contrib/paracol/bgpaint.dtx
@@ -558,7 +558,7 @@
% On the other hand, some materials given outside \env{paracol} environments
% are painted as if they are given in the environment when they are
% \emph{imported} into the environment. One category has footnotes given in
-% \preenv{} when \!\footnotelayout!|{m}| is specified for merging, as
+% \preenv{} when \!\footnoteplacement!|{m}| is specified for merging, as
% exemplified by the footnote \ref{fn:bgpaint-inf1} in the previous page.
% Note that such a footnote is painted by the color for |n| region rather
% than |p| region even when there are no footnotes in the \env{paracol}
diff --git a/macros/latex/contrib/paracol/impl.dtx b/macros/latex/contrib/paracol/impl.dtx
index 4d7893f019..c79733bcff 100644
--- a/macros/latex/contrib/paracol/impl.dtx
+++ b/macros/latex/contrib/paracol/impl.dtx
@@ -65,11 +65,11 @@
% We also have to maintain another type of \colpage{}s which are currently
% built, or {\em\Uidx\ccolpage{}s} in short, to switch from a column to
% another. Since each column may have its own {\em context} for the
-% typsetting of it, or {\em\Uidx\cctext} in short, it were perfect to save
+% typesetting of it, or {\em\Uidx\cctext} in short, it were perfect to save
% the context when we leave from a
% column and to restore that when we revisit the column if we could.
% However, \TeX{} and \LaTeX{} has a tremendously large number of context
-% variables and the number becomes virtualy boundless when we take variables
+% variables and the number becomes virtually boundless when we take variables
% defined in various styles and by users themselves into account.
% Therefore, we had to abandon to keep the whole context of the column but
% carefully chose a small subset comprising variables automatically modified
@@ -225,8 +225,8 @@
%
% \item
% Iff $\pp^i(p)\neq\bot$, the page $p$ has \pwise{} floats or the
-% single-column {\em\Uidx\preenv} preceeding \beginparacol{} in the
-% {\em\Uidx\spage} where it resides and spannig all columns. In this case
+% single-column {\em\Uidx\preenv} preceding \beginparacol{} in the
+% {\em\Uidx\spage} where it resides and spanning all columns. In this case
% $\pp^i(p)=i$ represents $\!\insert!{\cdot}i$, often {\em cached}
% in the macro \!\pcol@spanning!, for such {\em\Uidx\spanning}
% whose registers have the followings.
@@ -297,7 +297,7 @@
% with the value representing the last marginal note in \preenv{}, while
% another examiner \!\pcol@output@end! lets the outside \!\@mparbottom! have
% a value based on $b_n$ of one of the element, according to \LaTeX's
-% setting of marginal note placement. The whole elemnt $\pp^m(p)$ is often
+% setting of marginal note placement. The whole element $\pp^m(p)$ is often
% {\em cached} in the macro \!\pcol@mparbottom!. The usage of this
% element is discussed in \secref{sec:imp-ovv-cswap} a little bit more
% detailedly.
@@ -309,7 +309,7 @@
% of a \parapag{}e (pair) $p$.
%
% The reason why we keep track of $\page(p)$ is that page numbering is not
-% necessrary to be consecutive. If such a {\em jump} occurs randomly in any
+% necessary to be consecutive. If such a {\em jump} occurs randomly in any
% columns explicitly updating \counter{page}, it is very tough to give a
% consistent view of the page number of a specific page to all columns.
% Therefore we suppose jumps occur only in the leftmost column 0\footnote{
@@ -326,7 +326,7 @@
% $\page(q)=\pp^p(q)$ for all $q\in[p,\ptop]$ are let be $\page(p)+(q-p)$ in
% usual cases but $\page(p)+2(q-p)$ in \npaired{} \parapag{}ing.
% This update also takes place on \cswitch{} from the leftmost \colpage{} at
-% $p$ to another column so that a jump happning before the switching is
+% $p$ to another column so that a jump happening before the switching is
% notified to other columns. On the other hand, starting or \cswitch{} to a
% non-leftmost \colpage{} at $p$ lets \counter{page} have $\page(p)$
% referring to $\pp(p)$, unless the column starts the most advanced \tpage.
@@ -343,10 +343,10 @@
% \npaired{} \parapag{}ing always gives incorrect page number to the
% columns in a right \parapag{}e because $\pp^p(p)$ always has $\page(p)$
% for the left \parapag{}e. However, it is expected that the progress of
-% the leftmost column usually preceeds other columns to give consistent
+% the leftmost column usually precedes other columns to give consistent
% \counter{page} reference even with jumps, unless the reference is made by
% a column in a right \npaired{} \parapag{}e. More importantly, it is
-% assured that indirect refereces through |.aux| records and page numbers
+% assured that indirect references through |.aux| records and page numbers
% recorded in |.toc|, |.idx|, and so on are always consistent because of the
% lazy evaluation of $\counter{page}=\page(p)$ at ship-out of an ordinary
% page $p$ or a left \parapag{}e $p$, while the counter is let have
@@ -359,7 +359,7 @@
% \!\pcol@startpage! by the macro \!\pcol@defcurrpage!. Another
% \!\def!inition is done in \!\pcol@output@switch! also with
% \!\pcol@defcurrpage! to let $\pp^f(\ptop)$ have \Scfnote{}s built in
-% \!\footins! if \scfnote{} typsetting is in effect and the \cswitch{}
+% \!\footins! if \scfnote{} typesetting is in effect and the \cswitch{}
% leaves the column in $\ptop$\footnote{
% 
% The \!\def!inition of \!\pcol@currpage! in \!\pcol@setpnoelt!, and
@@ -421,7 +421,7 @@
% $\arg{rep}$ in a column $c$ defined by
% $\!\definethecounter!\<\cl\>\<c\>\arg{rep}$. The \lrep{} $\arg{rep}$ is
% kept in $|\pcol@thectr@|{\cdot}\cl{\cdot}c$ and is made \!\let!-equal to
-% $|\the|{\cdot}\cl$ when the column $c$ is visted.
+% $|\the|{\cdot}\cl$ when the column $c$ is visited.
% 
% \SpecialArrayMainIndex{\theta{\cdot}c}{\pcol@thectr@}
% \SpecialArrayIndex{\theta}{\the}
@@ -460,7 +460,7 @@
%
% Fixing $\pp^f(p)$ for $p<\ptop$ makes it impossible to add footnotes in a
% column in the page $p$ not only to $\pp^f(p)$ but also to \!\footins!
-% for the page $p$ becaues we have at least one fixed \colpage{} $\s_c(p)$
+% for the page $p$ because we have at least one fixed \colpage{} $\s_c(p)$
% unable to shrink to have such additional footnotes in $p$\footnote{
% 
% The \colpage{} $\s_c(p)$ could have some space at its bottom produced by,
@@ -657,7 +657,7 @@
% we immediately performed push\slash pop of the \colorstack{} in these
% macros. In addition, even in vertical mode these macros can appear before
% \TeX{} finds a page break after which they must be in effect, if they are
-% preceded by a sequece of non-breakable vertical items by which \TeX{}'s
+% preceded by a sequence of non-breakable vertical items by which \TeX{}'s
% examination of the page break is {\em delayed} as well as the invocation
% of \!\output! at the break.
%
@@ -669,7 +669,7 @@
% null-height\slash depth\slash width having a \!\special! which the
% \!\reset@color! puts into the main vertical list. Since we let
% $\!\count!\!\pcol@colorins!=0$ and $\!\skip!\!\pcol@colorins!=0$ to keep
-% the \!\insert!iion from affecting the growth of \!\pagetotal!, it is
+% the \!\insert!ion from affecting the growth of \!\pagetotal!, it is
% guaranteed that an inserted $\celt$ or $\celtpop$ is given to \!\output!
% through \!\pcol@colorins! together with |\box255| containing the
% corresponding \!\special!.
@@ -688,7 +688,7 @@
% \!\pcol@output@switch! for a \cswitch{} through \!\pcol@clearcst@unvbox!,
% and is for rewinding the \colorstack{}
% $(\Celt^c,\cstraw)=\Uidx\CSTraw^c$. Therefore, for each $\celt$ to be kept
-% because of $\npop=0$ on the encoutner with it we put \!\special! for
+% because of $\npop=0$ on the encounter with it we put \!\special! for
% \!\reset@color!. Note that on another scan for stack reestablishment,
% \!\pcol@colorins! has $\cst$ and is kept unchanged. Also note that other
% \!\output! invocations such as that for floats do not touch $\cstraw$ to
@@ -721,16 +721,16 @@
% 
% To solve the problem above, we introduced a trick with \!\everyvbox! to
% turn a switch $\CSIndex{ifpcol@inner}=\true$ at the beginning of every
-% \!\vbox! in a \env{paracol} environment, by which we supress the
+% \!\vbox! in a \env{paracol} environment, by which we suppress the
% \!\insert!ion for \!\set@color! because a \!\vbox! cannot cross a
% page boundary. As for that of \!\reset@color!, we suppress it by not
% reserving our own macro \!\pcol@reset@color@pop! for the \!\insert!ion by
% \!\aftergroup!. That is, we reserve both \!\reset@color! and
% \!\pcol@reset@color@pop! with \!\aftergroup! if we are outside of any
% \!\vbox!es, while does the former only otherwise. By the same reason, we
-% supress the \!\insert!ion if we are in restricted horizontal mode, i.e.,
+% suppress the \!\insert!ion if we are in restricted horizontal mode, i.e.,
% if both \CSIndex{ifhmode} and \CSIndex{ifinner} are true. On the other
-% hand, we cannot supress the \!\insert!ion when we are in an in-text math
+% hand, we cannot suppress the \!\insert!ion when we are in an in-text math
% because it can cross a page boundary\footnote{
% 
% If an in-text math is in a \cs{hbox}, \cs{insert}ion is not
@@ -761,9 +761,9 @@
% \changes{v1.34}{2018/05/07}
% {Split the description of \cs{columncolor} from \Sec1.6.2 to have
% new \Sec1.6.3 ``Changing Default Column Color'' because we have
-% serveral new issues in the new implementation with \cs{insert}.}
+% several new issues in the new implementation with \cs{insert}.}
%
-% The implemntation of \!\columncolor! and \!\normalcolumncolor! is
+% The implementation of \!\columncolor! and \!\normalcolumncolor! is
% relatively easy for the cases that they appear outside
% \env{paracol} environment or they define the default color of a
% column different from the current column. That is, for the default color
@@ -842,7 +842,7 @@
% |${|\!\color!$\Arg{c}\textit{text}$|}$| or
% |$|\!\textcolor!$\~\Arg{c}\ARg{text}$|$| expanded to the former, the
% \!\insert!ion for push is lost while its counterpart for pop survives
-% making it necessary to check the existance of pushing counterpart for each
+% making it necessary to check the existence of pushing counterpart for each
% pop in $\cstraw$\footnote{
% 
% Since a pop is always in a group one level outer from its push
@@ -856,7 +856,7 @@
% because we can have a page-break in \textit{text}. Therefore, we have to
% find a means to examine whether a pop $\celtpop_i$ has its counterpart
% $\celt_i$ in $\cstraw$ to remove $\celt_i$ from $\cstraw$ if exists or to
-% igonore $\celtpop_i$ otherwise. That is, we have to attach an identifier
+% ignore $\celtpop_i$ otherwise. That is, we have to attach an identifier
% $m$ to $\celt_i$ and $\celtpop_i$, i.e., to make them $\Uidx\mcelt_{i,m}$
% and $\Uidx\mceltpop_{i,m}$.
%
@@ -866,7 +866,7 @@
% \!\vbox! $m$\,|sp| wide ($m>0$) if our version of \!\set@color! is in math
% mode to represent $\mcelt_{i,m}$ and $\mceltpop_{i,m}$, while the width is
% 0 otherwise as described in \secref{sec:imp-ovv-color-hmode}. Then in the
-% scan of $\cstraw$ for rewinding in \!\output!, we supress
+% scan of $\cstraw$ for rewinding in \!\output!, we suppress
% incrementing\slash decrementing $\npop$ for $\mcelt_{i,m}$ and
% $\mceltpop_{i,m}$, but remove $\mcelt_{i,m}$ if $\mceltpop_{i,m}$ is in
% $\cstraw$ as a successor while we keep it in $\cstraw$ otherwise putting a
@@ -875,7 +875,7 @@
% To ensure that $\mcelt_{i,m}$ has its counterpart $\mceltpop_{i,m}$ in
% $\cstraw$ iff the push and pop are in a \colpage, we maintain the counter
% \!\pcol@mcid! incremented before (the attempt of) the \!\insert!ion of
-% $\mcelt_{i,m}$ with $m=\!\pcol@mcid!$ and the \!\aftergroup! reservaion
+% $\mcelt_{i,m}$ with $m=\!\pcol@mcid!$ and the \!\aftergroup! reservation
% for that of $\mceltpop_{i,m}$. Then the counter is zero-cleared by
% \!\output! routine in order to keep it less than
% $\!\pcol@mcpushlimit!=1000$ unless, roughly speaking, a \colpage{} has a
@@ -894,8 +894,8 @@
% the order of the elements in $\cstraw$ must be $\mcelt_{i,m}$,
% $\mceltpop_{i,m}$, $\mcelt_{j,m}$ and $\mceltpop_{j,m}$ from its bottom to
% top, though some of them could be missing. Therefore, if
-% $\mceltpop_{i,m}$ is in $\cstraw$, $\mcelt_{j,m}$ must follow it if
-% exsits not causing accidental matching with $\mceltpop_{i,m}$.
+% $\mceltpop_{i,m}$ is in $\cstraw$, then $\mcelt_{j,m}$ must follow it if
+% it exists not causing accidental matching with $\mceltpop_{i,m}$.
%
% \item
% If $\mcelt_{i,m}$ is in $\cstraw$ but $\mceltpop_{i,m}$ is not, it means
@@ -930,7 +930,7 @@
% \colpage{} by switching or page breaking, we examine the emptiness of the
% \colpage{} and if so we do nothing, while otherwise we put the
% \!\special!s for reestablishing $\csts$ at the top of the \colpage{} and
-% those for rewinding $\cstraw$ at the bottom. Similary, when we revisit a
+% those for rewinding $\cstraw$ at the bottom. Similarly, when we revisit a
% \colpage, we examine its emptiness and if so we save $\CST^c$ into
% $\csts$, while otherwise we put \!\special!s for reestablishing $\CST^c$
% and nullify $\csts$ so that nothing will be put at the top of the
@@ -1042,8 +1042,8 @@
% `|m|' of \!\twosided!, though almost all users will specify both swapping
% consistently. Since the side margin for a marginal note is decided in
% \!\output! routine by \!\pcol@addmarginpar! being our own version of
-% \LaTeX's macro for maginal notes \!\@addmarginpar!, the page in which the
-% margial note resides has been fixed. However, the number of the page and
+% \LaTeX's macro for marginal notes \!\@addmarginpar!, the page in which the
+% marginal note resides has been fixed. However, the number of the page and
% thus its parity may not have been fixed yet due to the possible jump in
% column-0 taking place afterward, unlike \cswap{} for which the page number
% has been fixed because it is performed in ship-out process. Since it is
@@ -1091,7 +1091,7 @@
% (or forces) us to let \mctext{}s always belong to column-0 preserving the
% consistency of, for example, local counter values referred to in them,
% while we need to shift a text to the left edge of the text area if it
-% resides in an even numbered page. Furhtermore, this \mctext{} capturing
+% resides in an even numbered page. Furthermore, this \mctext{} capturing
% enables to measure the vertical size of the captured text together with the
% vertical position of its top edge to record them in the list $\pp^s(p)$,
% so that we draw \cseprule{}s skipping the text and painting its \bground{}
@@ -1237,7 +1237,7 @@
% specifier `|b|' of \!\twosided!, together with other regions being top
% margin ($t,T$), bottom margin ($b,B$), left margin ($l,L$), right margin
% ($r,R$), \pwise{} floats ($f,F$) and \scfnote{} footnotes ($n,N$). The
-% geometical specifications $\bgr_a$ for those regions are given as follows,
+% geometrical specifications $\bgr_a$ for those regions are given as follows,
% but the coordinate origin is at the top-left corner of text area (rather
% than the leftmost column).
% 
@@ -1256,8 +1256,8 @@
% \bginfext{} $\HS$ is let be 0.
%
% We have other regions for columns and \csepgap{}s, namely $\bgr_C^c$ and
-% $\bgr_G^c$, which vertically span all over text area regardless exsistance
-% of any \pwstuff. Therefore, their geometical specifications are as
+% $\bgr_G^c$, which vertically span all over text area regardless existence
+% of any \pwstuff. Therefore, their geometrical specifications are as
% follows with text area coordinates.
% 
% \begin{eqnarray*}
@@ -1275,14 +1275,14 @@
% [(0,\;\HB)\;(\WT,\;\HS)]& \preenv\cr
% [(0,\;\HB)\;(\WT,\;\HT)]& \postenv}
% $$
-% Note that paiting of \postenv{} is done {\em outside} \env{paracol}
+% Note that painting of \postenv{} is done {\em outside} \env{paracol}
% environment when the \postenv{} encounters a page break, unless another
% \env{paracol} environment starts in the page and thus the \postenv{}
% becomes \preenv{} of the second (or subsequent) environment.
%
% Finally, we define the order of \bgpaint{} as follows, where $a$, $a(i)$,
% $a^c$ and $a^c(i)$ mean $\bgr_a$, $\bgr_a(i)$, $\bgr_a^c$ and
-% $\bgr_a^c(i)$ respectively, so that a succeding region is {\em overlaid}
+% $\bgr_a^c(i)$ respectively, so that a succeeding region is {\em overlaid}
% on preceding regions.
% 
% \begin{eqnarray*}
@@ -1314,7 +1314,7 @@
% drastically changed to avoid {\em out-of-order\/} appearance of \pwise{}
% floats as follows. Since the cause of overtaking of a \pwise{} float by a
% \cwise{} float is that they are in two separated lists \!\@dbldeferlist!
-% for the former and \!\@deferlist! for the latter, in the new implemenation
+% for the former and \!\@deferlist! for the latter, in the new implementation
% the two lists are merged to let all floats go to \!\@deferlist!. To
% distinguish \pwise{} and \cwise{} floats in the list, \!\end@dblfloat!
% lets the \pwise{} float processed by the macro have a special depth of
@@ -1359,7 +1359,7 @@
% and replace the new version with it by \!\let!ting them equivalent in
% \!\pcol@zparacol! by which start \env{paracol} environments. Therefore,
% \pwise{} floats composed in a \env{paracol} environment is processed in
-% the traditional way, i.e., being inclueded in \!\@dbldeferlist! rather than
+% the traditional way, i.e., being included in \!\@dbldeferlist! rather than
% \!\@deferlist! and having ordinary depth 0.
%
% \item
@@ -1383,7 +1383,7 @@
% \!\@deferlist! somewhere, to \!\reserved@c! in reality, and clear it prior
% to the application. Then after all elements are processed, we have to let
% \!\@dbldeferlist! have what \!\@deferlist! have, while \!\@deferlist!
-% should regain its origial contents from the saved place. A subtle issue
+% should regain its original contents from the saved place. A subtle issue
% is that we might work with \LaTeX{} of 2014 or older in which the floats
% are returned to \!\@dbldeferlist!. Therefore to make \Paracol{}
% compatible with both of new and old versions, we have to {\em add}
@@ -1410,7 +1410,7 @@
% Therefore, if one try to {\em smuggle\/} a double-column float of the new
% scheme into a \env{paracol} and to pass it through the environment to
% another double-column world, the float will become a single-column one.
-% Even if such guy a really exists and complains abount this transformation,
+% Even if such guy a really exists and complains about this transformation,
% however, we have good right to say ``don't do that''.}.
% \end{enumerate}
% 
@@ -1505,7 +1505,7 @@
% fundamental\/} \LaTeX{} of 2014 or earlier or that without the extension
% of e-\TeX{} or its relatives. On the other hand, in \LaTeX{} of 2015 or
% later and with e-\TeX{} or its relatives, the set is \!\bx@A!, \ldots,
-% \Uidx{\!\bx@Z!}, \Uidx{\!\bx@AA!}, \ldots, \Uidx{\!\bx@ZZ!}\@. In addtion
+% \Uidx{\!\bx@Z!}, \Uidx{\!\bx@AA!}, \ldots, \Uidx{\!\bx@ZZ!}\@. In addition
% to the use in \LaTeX, we use these registers for completed \colpage{}s
% $s_c(p)$ (\!\pcol@opcol!, \!\pcol@flushcolumn!), main vertical list
% $\cc_c(\vb)$ (\!\pcol@output@start!, \!\pcol@output@switch!,
@@ -1525,7 +1525,7 @@
% \begin{description}
% \item[\Uidx{\!\deadcycles!}]
% is \TeX's primitive register to count the number of \!\output! requests
-% made between two \!\shipout! operatios. It is zero-cleared by
+% made between two \!\shipout! operations. It is zero-cleared by
% \!\pcol@invokeoutput! because it can have a large number in a
% \env{paracol} environment.
%
@@ -1555,7 +1555,7 @@
% allowing page-break if $\CSIndex{if@nobreak}=\false$.
%
% \item
-% \!\pcol@deferredfootins! to let the secnod half of split $\df$ have this
+% \!\pcol@deferredfootins! to let the second half of split $\df$ have this
% \!\penalty! as the very first element.
%
% \item
@@ -1699,8 +1699,8 @@
% \!\pcol@synccolumn! and \!\pcol@output@end! to let
% $\!\prevdepth!=1000\,|pt|$ on a \sync{}ation or the closing \env{paracol}
% environment with an empty main vertical list, and in
-% \!\pcol@setcw@getspec@i! to add 1000\,|pt| to strech and shrink
-% compontents of \!\@tempskipa! having a column\slash gap sepcification to
+% \!\pcol@setcw@getspec@i! to add 1000\,|pt| to stretch and shrink
+% components of \!\@tempskipa! having a column\slash gap specification to
% make it sure the skip register has those components.
%
% \item[\Uidx{\!\@M!}]
@@ -1810,7 +1810,7 @@
% $\pp^p(p)$ is also done by \!\pcol@getpelt! for macros using
% \!\pcol@getcurrpage!, and by \!\pcol@outputelt!, \!\pcol@sync! and
% \!\pcol@makeflushedpage! by \!\pcol@getcurrpinfo!. Then the register is
-% referred to by the following macros to exmine its parity.
+% referred to by the following macros to examine its parity.
% 
% \begin{itemize}
% \item
@@ -1888,7 +1888,7 @@
% \!\pcol@iscancst! to have $m$ of $\mcelt_{i,m}$,
% \!\pcol@addmarginpar! to have the physical column position of the current
% column $c$ in which \!\marginpar! is given, and in
-% $\!\pcol@extract@fil@i!\<s\>\!\@nil!$ to exract the unit of the stretch
+% $\!\pcol@extract@fil@i!\<s\>\!\@nil!$ to extract the unit of the stretch
% component $s$ of a glue.
%
% \item[\Uidx{\!\@tempcnta!}]
@@ -1954,7 +1954,7 @@
% \item
% In \!\pcol@addmarginpar! besides the page scan shown above, it is used to
% scan all columns whose physical position is left from the current
-% colum $c$ to measure the distance between the left edges of the leftmost
+% column $c$ to measure the distance between the left edges of the leftmost
% column and $c$.
%
% \item
@@ -1969,7 +1969,7 @@
% \item
% In \!\pcol@setcolwidth@r!, it has $c$ to scan fractions $r_d$ where
% $d=c-\Cfrom$ in its argument $\arg{ratio}$ specified by \!\columnratio!,
-% and then to distribute the unspecifed portion of \!\textwidth! evenly to
+% and then to distribute the unspecified portion of \!\textwidth! evenly to
% $\w_c$ for all $c\In{\Cfrom{+}k{+}1}\Cto$, where $k$ is the number of
% fractions and $(\Cfrom,\Cto)\in\{(0,\CL),(\CL,\C)\}$.
%
@@ -2032,7 +2032,7 @@
%
% \item
% In \!\pcol@addmarginpar!, it is let have the column number $d$ whose
-% phisical position is left from the current colum $c$ to measure the
+% physical position is left from the current column $c$ to measure the
% distance between the left edges of the leftmost column and $c$.
%
% \item
@@ -2071,7 +2071,7 @@
% being built. It is let be $\w_c$ by \!\pcol@invokeoutput! to restart (or
% stay in) the column $c$, be \!\textwidth! by \!\pcol@sptext! for \mctext,
% and be either of \!\textwidth! or $\w_c$ by \!\pcol@fntextbody! according
-% to the footnote typesetting being \scfnote{} or \mcfnote{} resepectively.
+% to the footnote typesetting being \scfnote{} or \mcfnote{} respectively.
%
% \item[\Uidx{\!\maxdepth!}]
% is \TeX's primitive register to have the maximum depth of the page being
@@ -2173,7 +2173,7 @@
%
% \item
% The macro \!\pcol@makefcolelt! let the room for floats in a \fpage{} be
-% $-\!\maxdimen!$ if it finds no futher floats can be added to the page.
+% $-\!\maxdimen!$ if it finds no further floats can be added to the page.
%
% \item
% At a \sync{}ation, we measure the maximum combined size of top floats and
@@ -2204,7 +2204,7 @@
% \item[\Uidx{\!\footnotesep!}]
% is a \!\dimen! register for an API parameter of \LaTeX{} to have the
% vertical space inserted in a footnote when it is split into two or more
-% pages. It is uesed in \!\pcol@fntextbody! to \!\splittopskip! have it,
+% pages. It is used in \!\pcol@fntextbody! to \!\splittopskip! have it,
% and to make the first line of the footnote is at least as tall as the
% amount in the register.
%
@@ -2218,7 +2218,7 @@
% make the calculation biased shifting the origin to the left-top corner of
% column area, i.e., below $\pp^b(p)$. The macro \!\@outputpage! also
% refers to the register together with \!\headheight! and \!\headsep! to
-% calculate the distance from the page top (ingoring 1\,inch shift) to the
+% calculate the distance from the page top (ignoring 1\,inch shift) to the
% text area top.
%
% \item[\Uidx{\!\oddsidemargin!}]
@@ -2488,7 +2488,7 @@
% \item[\Uidx{\!\@colht!}]
% is a \!\dimen! register to have the height of columns in a page possibly
% shrunk from \!\textheight! by \spanning. The usages of the register
-% are as folllows.
+% are as follows.
% 
% \begin{itemize}
% \item\begin{Sloppy}{1600}
@@ -2521,7 +2521,7 @@
%
% \item
% In \!\pcol@output@flush! and \!\pcol@output@clear!, it is given to
-% \!\pcol@make~flushedpage! as its argument. The macro
+% \!\pcol@make~flushed~page! as its argument. The macro
% \!\pcol@makeflushedpage!(*) lets \!\@colht! be the argument if it is less
% than \!\@colht! and thus is given by \!\pcol@output@end!.
% \end{itemize}
@@ -2553,7 +2553,7 @@
% \item[\Uidx{\!\@pageht!}]
% is a \!\dimen! register to be used in \LaTeX's \!\@specialoutput! to have
% the height of \!\@holdpg!. It is referred to by \!\pcol@addmarginpar! to
-% deteremine the position at which a marginal note is placed.
+% determine the position at which a marginal note is placed.
% We also use it as a scratchpad to have $\VP$ in \!\pcol@sync! and
% \!\pcol@measurecolumn!, and to save $\pp^h(\ptop)$ in \!\pcol@flushcolumn!
% for the reference in itself, and to do so in \!\pcol@makeflushedpage! for
@@ -2584,7 +2584,7 @@
% is a \!\dimen! register to have $\!\floatpagefraction!\times\!\@colht!$
% being the minimum total size of floats for which an ordinary (not flushed)
% \fcolumn{} can be build. It is referred to by \!\pcol@makefcolumn! as the
-% threshhold below which floats in the last \fcolumn{} can be put as top
+% threshold below which floats in the last \fcolumn{} can be put as top
% floats.
%
% \item[\Uidx{\!\@mparbottom!}]
@@ -2596,7 +2596,7 @@
% register have. The register is also updated by \!\pcol@getmparbottom! and
% \!\pcol@getmpbelt! to let \!\pcol@@addmarginpar! being \LaTeX's original
% \!\@addmarginpar! know the uppermost available position for the marginal
-% note to be added. This update is, however, just for communicatoin betwee
+% note to be added. This update is, however, just for communication between
% these macros and thus is ineffective for typesetting posterior to that, as
% well as the update in \!\pcol@@addmarginpar!, because whole information
% for marginal note placement is kept in $\pp^m(p)$ in $\PPP$.
@@ -2700,7 +2700,7 @@
%
% \item
% In \!\pcol@buildcolseprule! and its callees \!\pcol@buildcselt@S! and
-% \!\pcol@buildcselt!, the register has the first argment $H=\pp^h(p)$ of
+% \!\pcol@buildcselt!, the register has the first argument $H=\pp^h(p)$ of
% the caller macro.
%
% \item
@@ -2789,7 +2789,7 @@
% \item
% In \!\pcol@switchcol!, it is let have what \!\pcol@ensurevspace! has so
% that the dimensional expression in it is evaluated in the macro and the
-% evaluateion result is assigned to $\VE=\!\pcol@@ensurevspace!$.
+% evaluation result is assigned to $\VE=\!\pcol@@ensurevspace!$.
%
% \item
% In $\!\ensurevspace!\ARg{space}$, it is let have $\arg{space}$ to ensure
@@ -2959,7 +2959,7 @@
% the \colpage{} to be restarted rather than at the page top. The macro
% \!\pcol@output@end! temporarily lets the register have 0 if we have
% non-empty columns in the last page, while \!\endparacol! restores it from
-% \!\pcol@topskip! for the pages outside \env{paracol} environmnet.
+% \!\pcol@topskip! for the pages outside \env{paracol} environment.
%
% \item[\Uidx{\!\splittopskip!}]
% is \TeX's primitive register to have the vertical skip inserted at the
@@ -3135,7 +3135,7 @@
%
% \item
% \!\pcol@savecolorstack! to let $\csts=\bot$ or its first item be $\bot$ if
-% $\CST^c$ or $\Celt^c$ is $\bot$, resepectively.
+% $\CST^c$ or $\Celt^c$ is $\bot$, respectively.
%
% \item
% \!\pcol@savefootins! to let its argument macro have a void box if
@@ -3245,7 +3245,7 @@
% \item
% In \!\pcol@makecol!, it is used to decapsulate \!\box!|255| containing a
% broken \mctext{}. In the macro and \!\pcol@output@switch!, it is also
-% used as a waste bascket to make \!\footins! void when it contains
+% used as a waste basket to make \!\footins! void when it contains
% \Scfnote{}s in a non-\tpage.
%
% \item\begin{Sloppy}{2100}
@@ -3333,7 +3333,7 @@
%
% \item[\Uidx{\!\everypar!}]
% is \TeX's primitive to have tokens inserted at the beginning of each
-% paragarph. In \!\pcol@sptext! and \!\pcol@com@endcolumn!, it is
+% paragraph. In \!\pcol@sptext! and \!\pcol@com@endcolumn!, it is
% \!\global!ized to keep its contents after the end of a group. In
% \!\pcol@output@switch!, its contents are broadcasted to $\cc_c(\ep)$ for
% all $c\In0\C$ if columns are \sync{}ed with a \mctext. Then these values
@@ -3414,8 +3414,8 @@
% \item[\Uidx{\CSIndex{if@mparswitch}}]
% is a switch to be $\true$ iff it is specified by, for example,
% \texttt{twoside} option of a class such as \textsf{article}, that marginal
-% notes in even numbered pages go to thier left margin. It is examined by
-% \!\pcol@do@mpbout@i! as a factor to decide the margin which a maginal note
+% notes in even numbered pages go to the left margin. It is examined by
+% \!\pcol@do@mpbout@i! as a factor to decide the margin which a marginal note
% goes to in pre-environment or \postenv{}.
% 
% \Index{pre-environment stuff}
@@ -3431,7 +3431,7 @@
% conditional \!\nobreak! is also done by \!\pcol@icolumncolor!,
% \!\pcol@set@color@push!, \!\pcol@reset@color@pop! and
% \!\pcol@reset@color@mpop! to avoid a break after an \!\insert!. The macro
-% \!\pcol@zparacol! also exmaines the switch, but with the truth value in it
+% \!\pcol@zparacol! also examines the switch, but with the truth value in it
% given outside \env{paracol} environment, to invoke \!\@nbitem! if $\true$
% when the macro finds the \env{paracol} environment to start is at the very
% beginning of a \env{list}-like environment.
@@ -3453,7 +3453,7 @@
% ($\true$).
%
% \item[\Uidx{\CSIndex{if@afterindent}}]
-% is a switch to be $\true$ iff a sectioning commmand tells that the fisrt
+% is a switch to be $\true$ iff a sectioning command tells that the first
% paragraph following it is to be indented. The switch is saved into
% $\cc_c(\sw)$ together with \CSIndex{if@nobreak} by \!\pcol@setcurrcol!,
% and then restored from it by \!\pcol@iigetcurrcol!. The macro
@@ -3470,7 +3470,7 @@
% referred to by \!\pcol@output@clear!. The macros \!\pcol@flushfloats! and
% \!\pcol@iflushfloats! also refer to the switch to build pages having only
% \fcolumn{}s and turn the switch $\true$ or $\false$ by themselves to know
-% such paegs are still to be built or not. The macro \!\pcol@output@end!
+% such pages are still to be built or not. The macro \!\pcol@output@end!
% also turns the switch $\true$ if a \lpage{} will be followed by page(s)
% having \fcolumn{}s to tell that to \!\pcol@flushfloats!.
%
@@ -3492,7 +3492,7 @@
% \item
% In \!\pcol@outputcolumns! and \!\pcol@outputelt!, it is $\true$ until
% \!\pcol@outputelt! finds the first $q$ such that $q\geq\pbase$ and
-% $\pp^h(q)\geq0$ to mean $q$ is not for a \fpage{}, and the arguemnt of
+% $\pp^h(q)\geq0$ to mean $q$ is not for a \fpage{}, and the argument of
% \!\pcol@outputcolumns! is 0 to mean that it is not for page flushing, so that
% we ship out $q$ and all \fpage{}s following it if any.
%
@@ -3530,7 +3530,7 @@
% $\Celt^c\neq\bot$, i.e., $\CST^c$ to be saved is not $\bot$.
%
% \item
-% In \!\pcol@getmparbottom!, it is intialized to be $\false$ and then may be
+% In \!\pcol@getmparbottom!, it is initialized to be $\false$ and then may be
% turned $\true$ by \!\pcol@getmpbelt! if it finds a gap between two marginal
% notes to accommodate that to be added, and then examined by
% \!\pcol@getmparbottom! to know the fact.
@@ -3609,7 +3609,7 @@
% in restricted horizontal or math mode.
%
% \item
-% In \!\pcol@backgroundcolor@i!, it is exmained if the root of the
+% In \!\pcol@backgroundcolor@i!, it is examined if the root of the
% invocation chain is \!\backgroundcolor! which turns the switch $\true$, or
% \!\nobackgroundcolor! which turns it $\false$, to determine whether the
% \bground{} of a region is painted or not.
@@ -3628,7 +3628,7 @@
% is \TeX's primitive to end\slash start paragraphs, but may be modified by
% \LaTeX{} to have some special functionality occasionally. The macro
% \!\pcol@output! makes it \!\let!-equal to \hbox{\!\@@par!} in which the
-% \TeX's orinigal definition is kept, while \!\pcol@zparacol! and
+% \TeX's original definition is kept, while \!\pcol@zparacol! and
% \!\pcol@par! use it as is.
%
% \item[\Uidx{\!\space!}]
@@ -3649,7 +3649,7 @@
%
% \item[\Uidx{\!\offinterlineskip!}]
% is an API macro to let $\!\baselineskip!=-1000$\,pt, $\!\lineskip!=0$ and
-% $\!\lineskiplimit!=\!\maxdimen!$ to supress \!\baselineskip! insertion for
+% $\!\lineskiplimit!=\!\maxdimen!$ to suppress \!\baselineskip! insertion for
% all boxes following this macro. It is used in \!\pcol@bg@paint@i! to do
% that in the box in which painted \bground{}s are built.
%
@@ -3729,14 +3729,14 @@
%
% \item[\Uidx{$\!\addcontentsline!\arg{file}\arg{sec}\arg{entry}$}]
% is an API macro to put \!\addtocontents! for the arguments to |.aux| file.
-% The orignial definition of the macro is kept in
+% The original definition of the macro is kept in
% \!\pcol@addcontentsline! so that \!\pcol@ac@disable@toc! and
% \!\pcol@ac@caption! make the macro regain its original definition after
% temporarily disabling its function by making it \!\let!-equal to
% \!\pcol@gobblethree!.
%
% \item[\Uidx{\!\marginpar!}\oarg{left}\marg{right}]
-% is an API macro to put merginal note $\arg{left}$ or $\arg{right}$ to the
+% is an API macro to put marginal note $\arg{left}$ or $\arg{right}$ to the
% left or right margin. In \!\pcol@zparacol! it is made \!\let!-equal to
% \!\pcol@marginpar! for the emulation of \!\marginnote!, while its original
% version is kept in \!\pcol@@marginpar!.
@@ -3803,7 +3803,7 @@
% to give the default color for \cseprule{}s.
%
% \item[\Uidx{\!\color!}\oarg{mode}\marg{color}]
-% is an API macro defined in coloring pacakges to start text coloring with
+% is an API macro defined in coloring packages to start text coloring with
% $\arg{color}$ optionally with $\arg{mode}$. The macro is used in
% \!\pcol@xcolumncolor!\oarg{mode}\~\marg{color}\oarg{c} and
% \!\pcol@ycolumncolor!\marg{color}\oarg{c} to define the default color of
@@ -3818,18 +3818,18 @@
% \CSIndex{ifpcol@bfbottom}.
%
% \item[\Uidx{$\!\PackageError!\arg{pkg}\arg{msg}\arg{hlp}$}]
-% is a developer's API macro to stop the exectution showing the error
+% is a developer's API macro to stop the execution showing the error
% message $\arg{msg}$ with the package identification $\arg{pkg}$ and the
-% help mssage $\arg{hlp}$. The macro is used in the following macros;
+% help message $\arg{hlp}$. The macro is used in the following macros;
% \!\pcol@ovf! on \!\@freelist! shortage; \!\pcol@set@color@push! on too
% many math-mode colorings; in \!\pcol@zparacol! on two-column
% typesetting outside \env{paracol} and illegal nesting of \env{paracol};
% $\!\pcol@setcw@calcf!\<x\>\<y\>\<z\>$ on too large $x/y$;
% \!\pcol@switchcolumn! on invalid target column; \!\pcol@switchenv! on
% illegal \cswitch{} commands\slash environments in a \csenv;
-% \!\addcontentsonly! on unknown contents type; \!\footnotelayout! on
+% \!\addcontentsonly! on unknown contents type; \!\footnoteplacement! on
% unknown layout; \!\pcol@twosided! on unknown two-sided typesetting
-% feature; \!\pcol@backgroundcolor! on unknown region of \bgpaint; and in
+% feature; \!\pcol@backgroundcolor! on unknown region of \bgpaint; and in
% \!\pcol@backgroundcolor@i! on a region not being a column or \csepgap{}
% but its ordinal being specified.
%
@@ -3837,7 +3837,7 @@
% is a developer's API macro to report a warning message $\arg{msg}$ with
% the package identification $\arg{pkg}$. The macro is used in
% \!\pcol@ignore! to complain an API macro appears in \env{paracol}
-% inappropriately, in \!\pcol@fntextbody! if the footnote is taller than
+% inappropriately, in \!\pcol@fntextbody! if the footnote is taller than
% $\!\textheight!-\!\skip!\!\footins!$, in \!\pcol@mn@warning! to show
% \!\marginnote! is emulated, and in \!\pcol@icolumncolor!,
% \!\pcol@defcseprulecolor@i! and \!\pcol@backgroundcolor@ii! to complain
@@ -3845,6 +3845,12 @@
% \!\colseprulecolor!\slash\!\normalcolseprulecolor! or \!\background~color!
% is used without coloring packages respectively.
%
+% \item[\Uidx{$\!\PackageInfo!\arg{pkg}\arg{msg}$}]
+% is a developer's API macro to report an informational message $\arg{msg}$
+% with the package identification $\arg{pkg}$. The macro is used if the
+% \textsf{footmisc} package is loaded to inform about the \!\footnotelayout!
+% alias being unavailable.
+%
% \item[\Uidx{\!\@@par!}]
% is an internal macro to keep \TeX's original primitive \CSIndex{par} in it.
% The macro is used in \!\pcol@output! to let \CSIndex{par} act with its
@@ -3885,8 +3891,8 @@
% cause underfull.
%
% \item
-% \!\pcol@synccolumn! to put a $1\,|fil|$ infinte stretch below the
-% main vertical list together with a small infinte shrink in the \colpage{}
+% \!\pcol@synccolumn! to put a $1\,|fil|$ infinite stretch below the
+% main vertical list together with a small infinite shrink in the \colpage{}
% being flushed and having a \sync{}ation point, and a vertical skip with a
% small infinite stretch to push up the main vertical list above a
% \sync{}ation point.
@@ -3902,7 +3908,7 @@
% \end{itemize}
% 
% It is also used in the top level assignment of $0\,|pt|\ |plus|\ 1\,|fil|\
-% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocatoin of \!\pcol@defkw!.
+% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocation of \!\pcol@defkw!.
%
% \item[\Uidx{\!\@minus!}]
% is an internal macro having the keyword |minus|. It is used in the
@@ -3920,7 +3926,7 @@
% \item
% \!\pcol@synccolumn! to put a small infinite shrink together with a
% stretch of $1\,|fil|$ at the bottom of the main vertical list in a
-% \colpage{} being flused and having a \sync{}ation point.
+% \colpage{} being flushed and having a \sync{}ation point.
%
% \item
% \!\pcol@setcw@getspec@i! to add $0\,|pt|\ |plus|\ 1000\,|pt|\ |minus|\
@@ -3929,7 +3935,7 @@
% \end{itemize}
% 
% It is also used in the top level assignment of $0\,|pt|\ |plus|\ 1\,|fil|\
-% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocatoin of \!\pcol@defkw!.
+% |minus|\ 1\,|fil|$ to \!\@tempskipa! for the invocation of \!\pcol@defkw!.
%
% \item[\Uidx{\!\hb@xt@!}]
% is an internal macro having the sequence ``\!\hbox!| to|''. It is used in
@@ -4086,7 +4092,7 @@
% \SpecialIndex{\ext@figure}\SpecialIndex{\ext@table}
%
% \item
-% $\!\footnotelayout!\Arg{l}$ for $|pcol@fnlayout@|{\cdot}l$.
+% $\!\footnoteplacement!\Arg{l}$ for $|pcol@fnlayout@|{\cdot}l$.
% 
% \SpecialArrayIndex{l}{\pcol@fnlayout@}
% \SpecialIndex{\pcol@fnlayout@c}
@@ -4111,7 +4117,7 @@
% of \!\set@color!, and in \!\pcol@zparacol! to make \!\pcol@bg@paintbox!
% \!\let!-equal to \!\@gobble! to nullify it if any coloring packages have
% not been loaded. In addition, the macros \!\pcol@F! and \!\pcol@Fe! for
-% logging are made \!\let!-equial to \!\@gobble! at the top level to nullify
+% logging are made \!\let!-equal to \!\@gobble! at the top level to nullify
% them.
%
% \item[\Uidx{$\!\@ifundefined!\arg{cs}\arg{then}\arg{else}$}]
@@ -4126,7 +4132,7 @@
% \SpecialArrayIndex{a{\cdot}\string\texttt{@}{\cdot}c}{\pcol@bg@color@}
% \SpecialArrayIndex{a}{\pcol@bg@color@}
% 
-% \!\add~contentsonly!$\<t\>\<c\>$ to stop the execution if
+% \!\add~contents~only!$\<t\>\<c\>$ to stop the execution if
% $|\pcol@ac@def@|{\cdot}t$ is not defined;
% 
% \SpecialArrayIndex{t}{\pcol@ac@def@}
@@ -4195,7 +4201,7 @@
% flushed pages while $\CSIndex{ifpcol@flush}=\true$.
%
% \item[\Uidx{$\!\@whilenum!\arg{ifnum}\cs{do}\arg{body}$}]
-% is an internal macro to interate $\arg{body}$ while the integer comparison
+% is an internal macro to iterate $\arg{body}$ while the integer comparison
% expression $\arg{ifnum}$ is $\true$. The macro is used in the following
% macros to iterate their own procedures for all columns $c\In0\C$.
% 
@@ -4251,7 +4257,7 @@
% \end{itemize}
%
% \item[\Uidx{$\!\@whiledim!\arg{ifdim}\cs{do}\arg{body}$}]
-% is an internal macro to interate $\arg{body}$ while the dimensional
+% is an internal macro to iterate $\arg{body}$ while the dimensional
% comparison expression $\arg{ifdim}$ is $\true$. The macro is used in
% $\!\pcol@setcw@calcf!\<x\>\<y\>\<z\>$ twice, at first to find
% $k_1=\min\Set{k}{x\cdot2^k\geq2^{13}\,|pt|}$ and to have $x\cdot2^{k_1}$,
@@ -4262,7 +4268,7 @@
% comma-separated $\arg{list}$ letting $\arg{cs}$ have the element. The
% macro is used in \!\pcol@setcolwidth@r! to scan its argument
% $\arg{ratio}$ defined by \!\columnratio!, and in \!\pcol@setcw@scan! to
-% scan its argment $\arg{spec}$ defined by \!\setcolumnwidth!.
+% scan its argument $\arg{spec}$ defined by \!\setcolumnwidth!.
%
% \item[$\Uidx{\!\@tfor!}\arg{cs}|:=|\arg{list}\cs{do}\arg{body}$]
% is an internal macro to iterate $\arg{body}$ for each non-space token in
@@ -4463,7 +4469,7 @@
% \!\pcol@end@dblfloat!.
%
% \item[\Uidx{\!\reset@font!}]
-% is an internal macro \!\let!-equal to \!\normalfont! to use a starndard
+% is an internal macro \!\let!-equal to \!\normalfont! to use a standard
% font. It is used in \!\pcol@fntextbody! for footnote typesetting.
%
% \item[\Uidx{\!\set@color!}]
@@ -4557,9 +4563,9 @@
% $\CSIndex{if@nobreak}=\true$.
%
% \item[\Uidx{\!\@parboxrestore!}]
-% is an internal macro to set up typesetting paramenters for paragraphs
+% is an internal macro to set up typesetting parameters for paragraphs
% encapsulated in a box. It is used in \!\pcol@fntextbody! for paragraphs
-% in a footnonte.
+% in a footnote.
%
% \item[\Uidx{\!\@finalstrut!}$\arg{box}$]
% is an internal macro to add an invisible vertical rule whose depth is that
@@ -4598,7 +4604,7 @@
%
% \item[\Uidx{\!\end@float!}]
% is an internal macro to close a \cwise{} float environment. It is used in
-% \!\pcol@end@dblfloat! (but never invoked because we havd \cs{if@twocolumn}
+% \!\pcol@end@dblfloat! (but never invoked because we have \cs{if@twocolumn}
% true always).
%
% \item[\Uidx{\!\end@dblfloat!}]
@@ -4620,7 +4626,7 @@
%
% \item[\Uidx{\!\@dblfloatplacement!}]
% is an internal macro for \!\output! routine to reinitialize \pwise{}
-% float placement paramenters. It is used in \!\pcol@startpage! and
+% float placement parameters. It is used in \!\pcol@startpage! and
% \!\pcol@output@clear! prior to processing \pwise{} floats in
% \!\@dbldeferlist!. As discussed in
% item-(\ref{item:ovv-float-@dblfloatplacement}) of
@@ -4628,7 +4634,7 @@
% \LaTeX{} lets $\!\f@depth!=|1sp|$.
%
% \item[\Uidx{\!\@xympar!}]
-% is an interal macro to perform the last operations for \!\marginpar!. In
+% is an internal macro to perform the last operations for \!\marginpar!. In
% \!\pcol@zparacol! it is made \!\let!-equal to \!\pcol@xympar! for the
% emulation of \!\marginnote!, while its original version is kept in
% \!\pcol@@xympar!.
@@ -4691,7 +4697,7 @@
% is an internal macro for \!\output! routine to be put at the bottom of
% \!\@outputbox! in which a \colpage{} is stored, by \!\@makecol!. This
% macro is temporarily re\!\def!ined by \!\pcol@makecol! for a \colpage{}
-% having \sync{}ation points so that it has a vertical skip of inifinite
+% having \sync{}ation points so that it has a vertical skip of infinite
% stretch and shrink to push up/down the stuff below the last \sync{}ation
% point in order to adjust its top to the point. After that, its original
% definition kept in \!\pcol@textbottom! is restored. Another modifiers of
@@ -4817,7 +4823,7 @@
% \begin{description}
% \item[\Uidx{$\!\@elt!\<a_1\>\cdots\<a_n\>$}]
% is an internal control sequence to represent a list element having $n$
-% subelements. The sequence is often made \!\let!-equal to a macro which
+% sub-elements. The sequence is often made \!\let!-equal to a macro which
% processes $\<a_1\>\cdots\<a_n\>$ and is applied to all members in a list.
% It is also made \!\let!-equal to \!\relax! on a manipulation of a list,
% such as element addition and concatenation, by \!\edef! or \!\xdef!. The
@@ -4944,7 +4950,7 @@
% \!\@elt! for $\mpar(t+y,b+y)$.
%
% \item
-% \begingroup\def\,{\mskip0mu plus2mu\relax}
+% \begingroup\def\,{\mskip0mu plus 2mu\relax}
% $\!\pcol@getmparbottom@last@i!\,
% \Arg{y}\,\mpar(t_1,b_1)\,\cdots\,\mpar(t_n,b_n)\,\!\@nil!$ at first
% \!\def!\-ines \!\reserved@b! with \!\@elt! for $\mpar(y,y)$ and then
@@ -4988,7 +4994,7 @@
% \end{Hfuzz}
%
% \item
-% \!\globalcounter!\marg{ctr} defeines \!\@elt!\marg{\theta} for $\CG$ to
+% \!\globalcounter!\marg{ctr} defines \!\@elt!\marg{\theta} for $\CG$ to
% check if there is $\theta\in\CG$ such that $\theta=\arg{ctr}$.
%
% \item
@@ -5113,20 +5119,20 @@
% reference to the footnote with \!\@thefnmark!.
%
% \item[\Uidx{\!\ext@figure!}]
-% is an internal macro having ``|lof|'' being the extention of the file for
+% is an internal macro having ``|lof|'' being the extension of the file for
% list of figures. It is used in
% $\!\pcol@ac@caption!\arg{type}|[|\arg{lcap}|]|\<cap\>$ to have ``|lof|''
% when $\arg{type}=|figure|$.
%
% \item[\Uidx{\!\ext@table!}]
-% is an internal macro having ``|lot|'' being the extention of the file for
+% is an internal macro having ``|lot|'' being the extension of the file for
% list of tables. It is used in
% $\!\pcol@ac@caption!\arg{type}|[|\arg{lcap}|]|\<cap\>$ to have ``|lot|''
% when $\arg{type}=|table|$.
%
% \item[\Uidx{\!\@currbox!}]
% is an internal macro which conventionally has an \!\insert! for floats,
-% etc. The follwing macros use \!\@currbox! having the objects in
+% etc. The following macros use \!\@currbox! having the objects in
% parentheses.
% 
% \begin{quote}
@@ -5162,7 +5168,7 @@
% get the right marginal note from its head.
%
% \item[\Uidx{\!\@freelist!}]
-% is an internal macro having available \!\insert!s for floats originially,
+% is an internal macro having available \!\insert!s for floats originally,
% but also \colpage{}s, \spanning{}, footnotes and default column-color in
% our usage. Besides the acquisition of an \!\insert! from it shown in the
% description of \!\@next!, it is used by the following macros to return the
@@ -5200,7 +5206,7 @@
% $t$ and $b$ following the convention in \!\pcol@do@mpb@all@ii!.
%
% \item
-% \begingroup\def\,{\mskip0mu plus2mu\relax}
+% \begingroup\def\,{\mskip0mu plus 2mu\relax}
% $\!\pcol@getmparbottom@last@i!\,
% \Arg{y}\,\mpar(t_1,b_1)\,\cdots\,\mpar(t_n,b_n)\,\!\@nil!$ to capture
% $\mpar(t_i,b_i)$ for all $i\in[1,n]$.
@@ -5360,14 +5366,14 @@
% item-(\ref{item:ovv-float-@dblfloatplacement}) of
% \secref{sec:imp-ovv-float}, this feature introduced in 2015 version
% of \LaTeX{} is nullified in \env{paracol} environments and thus the
-% setting with |1sp| done by \!\@dblfloatplacement! is overriden by
+% setting with |1sp| done by \!\@dblfloatplacement! is overridden by
% \!\pcol@startpage! and \!\pcol@output@clear! when they invoke the macro.
%
% \item[\Uidx{\!\cl@@ckpt!}]
% is an internal macro having the list of all counters defined by
% \!\newcounter! and the counter \counter{page}. The original usage of this
% macro is to log the values of all counters into |.aux| by \!\include!, but
-% we use it to obatin all counters in \!\pcol@zparacol! and
+% we use it to obtain all counters in \!\pcol@zparacol! and
% \!\pcol@globalcounter@s!.
%
% \item[$\cs{cl@}{\cdot}\theta$]
@@ -5496,7 +5502,7 @@
%
% \item
% In \!\pcol@setcolwidth@r!, it is used to have the fraction $r_d$ being a
-% comma-seperated list element in its argument $\arg{ratio}$ defined by
+% comma-separated list element in its argument $\arg{ratio}$ defined by
% \!\columnratio! and scanned by a \!\@for! loop.
%
% \item
@@ -5510,7 +5516,7 @@
% $\<x'_d\>$ from which all space tokens are removed.
%
% \item
-% In \!\pcol@setcw@calcfactors!, it is used as a waste bascket to throw away
+% In \!\pcol@setcw@calcfactors!, it is used as a waste basket to throw away
% $(\WT-W)/(F\times1\,|pt|)$ calculated by \!\pcol@setcw@calcf!.
%
% \item
@@ -5579,7 +5585,7 @@
%
% \item[\Uidx{\!\reserved@b!}]
% is an internal macro for temporary use. It is used in the following
-% macros to keep a list shown in paraentheses so that we update the list in
+% macros to keep a list shown in parentheses so that we update the list in
% the scan of list elements.
% 
% \begin{quote}
@@ -5606,7 +5612,7 @@
%
% \item
% In \!\pcol@output@switch!, it is \!\let!-equal to |\@afterindenttrue| or
-% |\@after|\~|indentfalse| according to \CSIndex{if@afterindent} in the
+% \cs{@after\BB indent\BB false} according to \CSIndex{if@afterindent} in the
% leaving column to broadcast it to other columns.
%
% \item
@@ -5660,7 +5666,7 @@
%
% \item
% In \!\pcol@backgroundcolor@ii!, it has \!\pcol@backgroundcolor@x! or
-% \!\pcol@back~groundcolor@z! according that the region of \bgpaint{} and its
+% \!\pcol@back~ground~color@z! according that the region of \bgpaint{} and its
% color is defined or undefined.
% \end{itemize}
%
@@ -5821,7 +5827,7 @@
% \begin{macro}{\pcol@ncol}
% \changes{v1.3-3}{2013/09/17}
% {Add initial zero-clearing for safe reference in \cs{@outputpage}
-% invokded prior to the first \string\texttt{paracol}.}
+% invoked prior to the first \string\texttt{paracol}.}
% \begin{macro}{\pcol@ncolleft}
% \changes{v1.3-2}{2013/09/17}
% {Introduced to specify the number of columns in left
@@ -5855,7 +5861,7 @@
% $\C$ otherwise. Similar to $\C$, the number $\CL$ is given as the
% optional argument of \!\pcol@zparacol! and is \!\global!ly assigned to the
% register by the sole modifier \!\pcol@zparacol!, unless the optional
-% arugment is not less than $\C$ which is assigned to $\CL$ if this
+% argument is not less than $\C$ which is assigned to $\CL$ if this
% exception is found. The reason of the \!\global! assignment and the
% initial zero-clearing after the declaration is same as that for $C$, i.e.,
% for the reference in \!\@outputpage! outside \env{paracol}.
@@ -5881,9 +5887,9 @@
% respective callees \!\pcol@ioutputelt!, \!\pcol@imakeflushedpage! and
% \!\pcol@iflushfloats! as their argument pair
% $\LBRP{\Uidx\Cfrom}{\Uidx\Cto}$ to let them work on the left and right
-% \parapag{}es repsectively. The callees above also pass the pair to
+% \parapag{}es respectively. The callees above also pass the pair to
% \!\pcol@swapcolumn! to swap the scanning order of columns if \cswap{} is
-% in efect.
+% in effect.
%
% They also pass the pair to \!\pcol@buildcolseprule! which then passes it
% to \!\pcol@bg@paintcolumns! and \!\pcol@bg@paintbox! by binding it to
@@ -5900,7 +5906,7 @@
% This meaningless reference has no harmful side effects.}.
% \end{Sloppy}
%
-% The macro \!\pcol@addmarginpar! also referes to $\CL$ to know if the
+% The macro \!\pcol@addmarginpar! also refers to $\CL$ to know if the
% column $c$ on which it is working on is in the left or right \parapag{}e,
% i.e., $c<\CL$ or not, to decide the margin to which a marginal note is put,
% and to pass $\LBRP0\CL$ or $\LBRP\CL\C$ to \!\pcol@swapcolumn! to
@@ -5913,7 +5919,7 @@
% \!\pcol@zparacol!. Then the arguments are passed to the callees
% \!\pcol@setcolwidth@r! or \!\pcol@setcolwidth@s!, the latter of
% which also passes them to its callee \!\pcol@setcw@scan!, to define the
-% width of columns in $\LBRP\Cfrom\Cto$ and thier separators.
+% width of columns in $\LBRP\Cfrom\Cto$ and their separators.
%
% The other references to $\C$ are made by \!\pcol@com@switchcolumn! and
% \!\pcol@switchcolumn! to examine $c<\C$, to wraparound $\C-1$ to 0 for the
@@ -5921,7 +5927,7 @@
% \end{macro}\end{macro}
% 
% \begin{macro}{\pcol@page}
-% The register \!\pcol@page! has the zero-orgin ordinal $p$ of the page
+% The register \!\pcol@page! has the zero-origin ordinal $p$ of the page
% which we are in. The register is initialized to be 0 not only by
% \!\pcol@output@start! to give the obvious starting point, but also by
% \!\pcol@freshpage! for page flushing which clears $\PP=\!\pcol@pages!$ to
@@ -6077,7 +6083,7 @@
% 
% The switch |\ifpcol@sync| is $\true$ iff \!\pcol@output@switch! is invoked
% for \sync{}ed \cswitch{} by \!\switchcolumn!|*| or its relative
-% enviroment openers, or \pfcheck{} prior to page flushing or environment
+% environment openers, or \pfcheck{} prior to page flushing or environment
% closing. Therefore, the switch is \!\global!ly turned $\true$ by
% \!\pcol@iswitchcolumn! and \!\pcol@sptext! for the \sync{}ing
% \cswitch{}ing but then temporarily turned $\false$ by \!\pcol@switchcol!
@@ -6170,7 +6176,7 @@
% that the page to be \sync{}ed or to be flushed is too tall because the
% sum of the total height of top floats and main text in a column and that
% of bottom floats and footnotes in another column is larger than
-% $\pp^h(\ptop)-v^f-\VE$, where $v^f$ is the total heigth-plus-depth of the
+% $\pp^h(\ptop)-v^f-\VE$, where $v^f$ is the total height-plus-depth of the
% \Scfnote{}s if $\ptop$ has them or 0 otherwise, and $\VE$ is the amount
% given by \!\ensurevspace! in \sync{}ation or 0 in flushing. Then the
% switch is examined in \!\pcol@sync! itself to restart the tallest column
@@ -6215,13 +6221,13 @@
% \begin{itemize}
% \item
% \!\pcol@combinefloats! adds \!\textfloatsep! below bottom floats of each
-% column if any so that the floats are well sepearated from the \postenv.
+% column if any so that the floats are well separated from the \postenv.
%
% \item
% \!\pcol@sync! examines $\VPP$ instead of $\VP$ for the \pfcheck.
%
% \item
-% \!\pcol@makefcolumn! trys to make deferred floats as top floats.
+% \!\pcol@makefcolumn! tries to make deferred floats as top floats.
%
% \item
% \!\pcol@makeflushedpage! builds a short page of $\VPP$ tall, leaves
@@ -6367,7 +6373,7 @@
% switch is examined by \!\pcol@set@color@push! and \!\pcol@icolumncolor!,
% the former of which also turns it $\true$ if we are in restricted
% horizontal mode, to make an \!\output! request for \colorstack{}
-% manipuratoin and, in the former, to reserve the stack popper by
+% manipulation and, in the former, to reserve the stack popper by
% \!\aftergroup!, iff the switch is $\false$.
% \end{macro}
% 
@@ -6392,12 +6398,12 @@
% {Introduced to know if a page to be put has the last page of a
% \string\texttt{paracol} environment.}
% 
-% The switch \cs{ifpcol@havelastpage} is, after intiailized $\false$,
+% The switch \cs{ifpcol@havelastpage} is, after an initial $\false$,
% \!\global!ly turned $\true$ by \!\pcol@output@end! if it finds the
% \lpage{} of the \env{paracol} environment is connected to the \postenv, or
% $\false$ otherwise. Then the switch is examined by (our own version of)
% \!\@outputpage! which paints the \bground{} of the page to be printed iff
-% the switch is $\true$ because a part of the page was prodcued by a
+% the switch is $\true$ because a part of the page was produced by a
% \env{paracol} environment. Then the macro \!\global!ly turns the switch
% $\false$ because so far \bgpaint{} should be disabled.
% \end{macro}
@@ -6420,7 +6426,7 @@
% The initialization to let the switch $\false$ is not necessary because it
% is examined only after the first \cs{paracol} even in the
% \cs{@outputpage} outside \texttt{paracol} environment, but we dare to do
-% this for the sake of clearity.}.
+% this for the sake of clarity.}.
%
% Then the switch is examined by \!\pcol@setpnoelt! and \!\pcol@startpage!
% so that, if the switch is $\false$, they let $\page(q)=\page(q-1)+2$ where
@@ -6453,11 +6459,11 @@
% {Introduced for marginal-note-swapping in even pages.}
% \begin{macro}{\ifpcol@bg@swap}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced for mirrored backgournd painting for even numbered
+% {Introduced for mirrored background painting for even numbered
% pages.}
% \begin{macro}{\ifpcol@bg@@swap}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced for mirrored backgournd painting for even numbered
+% {Introduced for mirrored background painting for even numbered
% pages.} 
% 
% The switch \cs{ifpcol@swapcolumn}, \cs{ifpcol@swapmarginpar} and
@@ -6484,7 +6490,7 @@
% all\footnote{
% 
% \cs{ifpcol@swapcolumn} is also turned $\true$ and $\false$ by backward
-% compatible API macros \cs{swapcolumn}\~\texttt{inevenpages} and
+% compatible API macros \cs{swap\BB column\BB in\BB even\BB pages} and
% \cs{noswapcolumninevenpages} respectively.}.
% 
% \SpecialIndex{\swapcolumninevenpages}
@@ -6670,7 +6676,7 @@
% \changes{v1.2-5}{2013/05/11}
% {Introduced to let \cs{linewidth} for each column has the value
% according to $w_c$ and the list-like environment surrounding
-% \string\texttt{paracol} envrionment.}
+% \string\texttt{paracol} environment.}
% \begin{macro}{\pcol@bg@leftmargin}
% \changes{v1.3-3}{2013/09/17}
% {Introduced for background painting.}
@@ -6690,7 +6696,7 @@
% 
% \begin{macro}{\pagerim}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced to specify the page rim size for backgournd coloring.}
+% {Introduced to specify the page rim size for background coloring.}
% 
% The API \!\dimen! register \!\pagerim! has the size of {\em\Uidx\prim{}s}
% specified by users. Since the rims are the area for which \bgpaint{}
@@ -6771,7 +6777,7 @@
% $\CSIndex{ifpcol@sptextstart}=\true$. Then the contents of the register
% is put back to the main vertical list together with the box having
% \mctext{} after its vertical size is registered in the list $\pp^s(p)$ of
-% \mctext{} postions and heights, by \!\pcol@makecol! when the text sees a
+% \mctext{} positions and heights, by \!\pcol@makecol! when the text sees a
% page break, or by \!\pcol@output@switch! when the text is completed.
% \end{macro}
% 
@@ -6798,7 +6804,7 @@
% it, or to make the register $\bot$ when it have an empty \lpage{} but with
% \spanning{} of \pwise{} floats. After closing a \env{paracol}
% environment, the contents of the register
-% will be shiped out by
+% will be shipped out by
% \!\@outputpage! invoked outside \env{paracol} environment when the
% \postenv{} sees a page break, or referred to by \!\pcol@output@start! as
% the \preenv{} in the right \parapag{}e. This right \preenv{} then will be
@@ -6840,13 +6846,13 @@
% 
% \begin{macro}{\pcol@tempboxa}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced to have materials temporarily for column-separatig rule
+% {Introduced to have materials temporarily for column-separating rule
% drawing or background painting.}
% \changes{v1.34}{2018/05/07}
% {Renamed from \cs{pcol@tempbox} because its relative
% \cs{pcol@tempboxb} is introduced.}
% \changes{v1.34}{2018/05/07}
-% {Add ussage in \cs{pcol@scancst} and \cs{pcol@iscancst}.}
+% {Add usage in \cs{pcol@scancst} and \cs{pcol@iscancst}.}
% 
% The \!\box! register \!\pcol@tempboxa! is used to have stuff temporarily as
% follows.
@@ -6912,13 +6918,13 @@
% \!\output! with |\box255| containing the corresponding coloring
% \!\special! put in the main vertical list, \!\count!\!\pcol@colorins! and
% \!\skip!\!\pcol@colorins! are let be 0, while \!\dimen!\!\pcol@colorins! is
-% let be \!\maxdimen! to allow a \colpage{} to have vitually infinite number
+% let be \!\maxdimen! to allow a \colpage{} to have virtually infinite number
% of \!\insert!ions.
%
% The \!\insert!ion is done by \!\pcol@icolumncolor! for a default color
% definition, \!\pcol@set@color@push! for color pushing, and
% \!\pcol@reset@color@pop! and \!\pcol@reset@color@mpop! for color popping
-% in non-math and math mode respectrively. Then \!\insert!ed \!\vbox!es are
+% in non-math and math mode respectively. Then \!\insert!ed \!\vbox!es are
% packed into \!\box!\!\pcol@colorins! and is given to \!\output! as
% $\cstraw$ to be scanned by \!\pcol@clearcolorstack! to reform it as
% $\cst$, and then scanned by \!\pcol@restorecolorstack! or saved into
@@ -6951,7 +6957,7 @@
% \!\everyvbox! is made to this register, while the real \!\everyvbox! is
% let have the reference to the register and |\pcol@innertrue| to make
% $\CSIndex{ifpcol@inner}=\true$ in every \!\vbox!. Besides
-% \!\pcol@zparacol!, the register is reffered to by
+% \!\pcol@zparacol!, the register is referred to by
% \!\pcol@restoreeveryvbox! to examine if it has been \!\global!ly updated,
% i.e., its contents is not \!\pcol@dummytoken!.
% \end{macro}
@@ -7130,13 +7136,13 @@
% {Introduced for debugging memory leak problems.}
% Another debugging tool is for investigating memory leak problems. Since
% \Paracol{} uses \!\insert! registers for various purposes, management
-% operations of them especially that for proper release of them are crusial
-% for the correctness of the implmentation. A source of toughness in
+% operations of them especially that for proper release of them are crucial
+% for the correctness of the implementation. A source of toughness in
% debugging {\em memory leak} caused by missing a release of a register back
% to \!\@freelist! is that the resulting shortage is revealed long after the
% leakage to make it hard to find the point of the leakage.
%
-% The set of macros is to help such debugging by logging the aquire and
+% The set of macros is to help such debugging by logging the acquire and
% release of \!\insert! registers into a file named $\arg{job}|.fls|$
% associated with \!\pcol@F@write! where $\arg{job}$ is given by
% \!\jobname!. After opened when \Paracol{} is loaded, the file is written by
@@ -7193,7 +7199,7 @@
%
% \begin{macro}{\pcol@ovf}
% Before giving the definitions of macros in \!\output! routine, we define
-% the macro \!\pcol@ovf! invoked if \!\@freelist! is empty on an acquision
+% the macro \!\pcol@ovf! invoked if \!\@freelist! is empty on an acquisition
% of an \!\insert! by \!\@next! and thus we have to abort the execution by
% \!\PackageError! with a message notifying the shortage. The additional
% help message is \!\@ehb! as in \!\@fltovf!. This macro is used in
@@ -7220,7 +7226,7 @@
% \texttt{paracol} environment.}
% \changes{v1.2-7}{2013/05/11}
% {Add the assignment of \cs{@maxdepth} to \cs{maxdepth} to nullify
-% the temproary setting done by \cs{@addtobot}.}
+% the temporary setting done by \cs{@addtobot}.}
% \changes{v1.33-2}{2016/11/19}
% {Add a space after \cs{@opcol} to obey the coding convention.}
% 
@@ -7236,7 +7242,7 @@
% $\!\@specialoutput!\to\!\pcol@specialoutput!$ to process \LaTeX's genuine
% functions including the customized marginal note placement, and \Paracol's
% own special output functions; starting first page, \colorctext{} management,
-% \cswitch, page flushing with\slash without float flusing, and building the
+% \cswitch, page flushing with\slash without float flushing, and building the
% multi-column part of the \lpage.
%
% \item
@@ -7256,7 +7262,7 @@
% {Add an argument \cs{@ne} to \cs{pcol@startcolumn} to distinguish it
% from the invocation in \cs{pcol@freshpage}.}
% 
-% $\!\@startcolumn!\to\!\pcol@startcolumn!$ to creat a new \colpage{}. The
+% $\!\@startcolumn!\to\!\pcol@startcolumn!$ to create a new \colpage{}. The
% argument \!\@ne! is to distinguish the invocation in this macro from
% that in \!\pcol@freshpage! so that the \!\insert!ions of $\pp^f(p)$ and
% $\df$ are done only when a new \colpage{} is created with ordinary page
@@ -7279,7 +7285,7 @@
% 
% Though this operation is not necessary because \cs{everyvbox} should work
% for any \cs{set@color} because they should be in a \cs{vbox}, we dare to
-% do it for clearity.}.
+% do it for clarity.}.
% 
% The other is to zero-clear the counter \!\pcol@mcid! because we are
% definitely in the main (non-internal) vertical mode and thus all push/pop
@@ -7289,13 +7295,13 @@
% on page breaks, we examine if $\CSIndex{ifpcol@output}=\true$ to mean
% \!\pcol@output@start! has already been invoked in order to cope with
% \!\output! request {\em sneaking}. This sneaking happens when
-% \beginparacol{} is at a crtical position of page breaking at which the
+% \beginparacol{} is at a critical position of page breaking at which the
% \preenv{} has already exceeds \!\vsize! but \TeX{} cannot make the
% \!\output! request for the page break at \CSIndex{par} at the beginning of
% \!\pcol@zparacol! because it sees $\!\penalty!=10000$ due to, e.g., a
% sectioning command just preceding \beginparacol. In this case, the
% request is postponed until \TeX{} see a \!\penalty! less than 10000 and
-% thus it is made with some non-special \!\outputpenalty! greather than
+% thus it is made with some non-special \!\outputpenalty! greater than
% $-10000$ when \TeX{} sees the dummy request of $\!\penalty!=-10004$ in
% \!\pcol@invokeoutput! for \!\pcol@output@start!. At this timing,
% \!\pcol@zparacol! has already let \!\output! have \!\pcol@output! of
@@ -7307,14 +7313,14 @@
% related to \!\output! routine has already been made in \!\pcol@zparacol!,
% namely $\CSIndex{if@twocolumn}=\true$ and
% $\!\@combinefloats!=\!\pcol@combinefloats!$, which should make the macros
-% in the original sequnce confused especially by the former. Therefore, we
+% in the original sequence confused especially by the former. Therefore, we
% turns $\CSIndex{if@twocolumn}=\false$ and let \!\@combinefloats! have the
% original definition kept in \!\pcol@@combinefloats!\footnote{
% 
% Though we know \cs{pcol@combinefloats} acts exactly as \cs{@combinefloats}
% because \cs{pcol@zparacol} initializes $\cs{pcol@textfloatsep}=\infty$ and
% $\cs{ifpcol@lastpage}=\false$. On the other hand, we don't cancel the
-% re\cs{def}itnition of \cs{footnoterule} because it should be
+% re\cs{def}inition of \cs{footnoterule} because it should be
% $\cs{textwidth}=\cs{columnwidth}$ outside of \env{paracol} environments.}
% 
% temporarily, i.e., only in the group automatically surrounding the
@@ -7381,7 +7387,7 @@
%
% \begin{macro}{\pcol@@makecol}
% \changes{v1.2-7}{2013/05/11}
-% {Introduced to cope with the careless implementaion of \cs{@makecol}
+% {Introduced to cope with the careless implementation of \cs{@makecol}
% in p\string\LaTeX.}
% \changes{v1.3-6}{2013/09/17}
% {Add an argument $d$ to be assigned to \cs{boxmaxdepth} to let it
@@ -7454,7 +7460,7 @@
% inserted just below the last \sync{}ation point to move up the first
% visible item upward a little bit if active. Therefore, \!\flushbottom!
% setting is nullified for \colpage{}s having \sync{}ation points and a
-% small exceess from the bottom of a \colpage{} cannot be absorbed by
+% small excess from the bottom of a \colpage{} cannot be absorbed by
% shrinks but visible at the bottom\footnote{
% 
% That is, the author gives higher priority to the perfect alignment of the
@@ -7584,11 +7590,11 @@
% introduction of the pre-flushing column height check.}
% \changes{v1.2-7}{2013/05/11}
% {Add the assignment of \cs{@maxdepth} to \cs{maxdepth} to nullify
-% the temproary setting done by \cs{@addtobot}.}
+% the temporary setting done by \cs{@addtobot}.}
% \changes{v1.3-6}{2013/09/17}
% {Add special operations for columns having synchronization point to
% move the infinite stretch and shrink to let it follow bottom floats
-% ratehr than preceding them.}
+% rather than preceding them.}
% \begin{macro}{\pcol@@combinefloats}
% \changes{v1.2-7}{2013/05/11}
% {Introduced to solve the \cs{output} request sneaking.}
@@ -7825,7 +7831,7 @@
% {Revise reflecting the new page context element $\pi^m(p)$.}
% 
% The macro \!\pcol@setpageno! is invoked from \!\pcol@opcol! when it
-% proceeses the \colpage{} of the first column $c=0$ to fix the page number
+% processes the \colpage{} of the first column $c=0$ to fix the page number
% $\page(p)\gets\counter{page}=\!\c@page!$ of the page $p=\!\pcol@page!$
% having the \colpage{}. It is also invoked from \!\pcol@output@switch!
% when it leaves from the first column to reflect a jump of \counter{page}
@@ -8012,10 +8018,10 @@
% \arg{pg}=\!\global!\!\c@page!\quad
% \arg{ch}=\!\global!\!\@colht!\quad\arg{ts}=\!\global!\!\topskip!
% $$
-% Then the macro \!\pcol@getpinfo! do the obvious assighments to
+% Then the macro \!\pcol@getpinfo! do the obvious assignments to
% \!\pcol@spanning!, \!\pcol@footins!, \!\pcol@sptextlist!,
% \!\pcol@mparbottom! and $\arg{pg}$, and the following
-% condintional assignments.
+% conditional assignments.
% 
% \begin{eqnarray*}
% &&\<\arg{ch},\arg{ts},\CSIndex{ifpcol@nospan}\>=
@@ -8027,7 +8033,7 @@
% \begin{Sloppy}{2800}\noindent
% The other macro $\!\pcol@getcurrpinfo!\arg{pg}\arg{ch}\arg{ts}$ is invoked
% in \!\pcol@makecol!, \!\pcol@startpage!, \!\pcol@output@switch!,
-% \!\pcol@sync!, \!\pcol@flushcolumn! and \!\pcol@make~flushedpage! do the
+% \!\pcol@sync!, \!\pcol@flushcolumn! and \!\pcol@make~flushed~page! do the
% similar assignments using \!\pcol@getpinfo!, but it is not for $\pp(p)$
% but for $\pp(\ptop)={}$\!\pcol@currpage!. The macro \!\pcol@getpinfo!
% also has a direct invoker \!\pcol@outputelt!.
@@ -8157,7 +8163,7 @@
% Then, we build \fpage{}s if any as follows. First we invoke
% \!\@dblfloatplacement! to reinitialize the parameters for \pwise{} float
% placement. In addition, we let $\!\f@depth!=0$ to nullify the
-% setting $\!\f@depth!=|1sp|$ possiblly done by \!\@dblfloatplacement! as
+% setting $\!\f@depth!=|1sp|$ possibly done by \!\@dblfloatplacement! as
% discussed in the item-(\ref{item:ovv-float-@dblfloatplacement}) of
% \secref{sec:imp-ovv-float}. Then we repeat \!\@tryfcolumn! giving it
% \!\@dbldeferlist! having \pwise{} floats not contributed to previous
@@ -8211,7 +8217,7 @@
% Then If this scan results in empty \!\@dbltoplist! to mean the new page
% does not have any \spanning, we invoke \!\pcol@defcurrpage! with
% $\pp^i(\ptop)=\pp^f(\ptop)=\bot$ and $\pp^s(\ptop)=\pp^m(\ptop)=\emptyset$
-% so that $\pp(\ptop)$ reprsents a page perfectly empty.
+% so that $\pp(\ptop)$ represents a page perfectly empty.
% 
% \begin{macrocode}
\begingroup
@@ -8321,7 +8327,7 @@
% \arg{all}\Arg{\pp^p(q)}\arg{\pp^i(q)}\arg{\pp^f(q)}
% \Arg{\pp^s(q)}\Arg{\pp^m(q)}$ ships out the ordinary or \fpage{} $q$ if
% $f_o=\true$ or $f_f=\true$ respectively. After initializing
-% \!\@outputbox! to be $\bot$, we retrive the page $q$'s information by
+% \!\@outputbox! to be $\bot$, we retrieve the page $q$'s information by
% \!\pcol@getpinfo! to have $\page(q)$ in \!\c@page! locally, \!\textheight!
% or $\pp^h(q)$ in $h=\!\@tempdima!$,
% $f_{\it{}ns}=\CSIndex{ifpcol@nospan}=(\pp^i(q)=\bot)$, and
@@ -8348,7 +8354,7 @@
% let \!\pcol@rightpage! be an empty box but paint its \bground{} too, because
% the right counterpart of left parallel float page should be always blank.
% Note that we temporarily increment $\page(q)$ by one for \npaired{} right
-% \parapag{}ee so that the paiting macro performs page-parity dependent
+% \parapag{}es so that the painting macro performs page-parity dependent
% operations correctly.
% 
% \Index{parallel-paging}
@@ -8420,7 +8426,7 @@
% {Add $\cs{boxmaxdepth}\EQ\cs{@maxdepth}$ for depth capping.}
% \changes{v1.3-2}{2013/09/17}
% {Move the core of ship-out image building to \cs{pcol@ioutputelt} for
-% parallel pageing.}
+% parallel paging.}
% 
% \begin{macrocode}
\else\if@tempswa
@@ -8455,7 +8461,7 @@
% let it has $q+1$. Note that since we have let $\!\c@page!=\page(q)$, the
% direct and indirect references to it in \!\@outputpage! are correctly done.
% Also note that the \!\global! increment of it by \!\stepcounter! in
-% \!\@outputpage! will be overriden by the \!\global! assignment to it done
+% \!\@outputpage! will be overridden by the \!\global! assignment to it done
% by \!\pcol@startpage! or \!\pcol@getcurrpage! invoked from \!\pcol@opcol!
% if $\arg{all}=0$, or by \!\pcol@getcurrpinfo! invoked from \!\pcol@sync!
% otherwise.
@@ -8569,7 +8575,7 @@
% Third, we invoke \!\pcol@buildcolseprule! giving it $h$ being $\pp^h(q)$
% but possibly shrunk by \Scfnote{}s, the column range $\LBRP\Cfrom\Cto$,
% and \!\@maxdepth! to mean $q$ is non-\lpage, to draw a \cseprule{}
-% possibly broken by the speces for \mctext{}s in the box \!\pcol@tempboxa!
+% possibly broken by the spaces for \mctext{}s in the box \!\pcol@tempboxa!
% and to paint the \bground{}s of columns, \csepgap{}s and \mctext{} in the
% box \!\@tempboxa! which we put into $b$ immediately.
%
@@ -8581,7 +8587,7 @@
% wide containing $\sigma_c$ followed by \!\hss! for all $c\In\Cfrom\Cto$,
% where $\sigma_c=\!\box!{\cdot}s_c(q)$ being the first element removed from
% $\S_c$ by \!\@next! and then returned to \!\@freelist! by \!\@cons! if it
-% is not $\bot$, or \!\voidb@x! otherwise. We sepearate \!\hbox!es of
+% is not $\bot$, or \!\voidb@x! otherwise. We separate \!\hbox!es of
% $\sigma_c$ by making each \!\hbox! preceded by \Midx{\!\pcol@@hfil!} being
% \!\relax! for the first one and the macro \!\pcol@hfil! for others giving
% it an argument $c^g=\!\pcol@colsepid!\in\{c,c{-}1\}$ which we discuss
@@ -8833,7 +8839,7 @@
% i.e., \!\colseprulecolor!\oarg{mode}\ARg{color}$|[|c|]|$ is declared or
% not; and $\gap_c/2$ again but preceded by $-r/2$. On the other hand if
% $r=0$, we simply put a space of $\gap_c$. Note that the skips of
-% $\gap_c/2$ and $\gap_c$ are accompanied by 1\,|fil| inifinit stretch to
+% $\gap_c/2$ and $\gap_c$ are accompanied by 1\,|fil| infinite stretch to
% avoid underfull when $\sum_{c=\Cfrom}^{\Cto-2}(\w_c+\gap_c)+\w_{\Cto-1}<\WT$
% where $(\Cfrom,\Cto)=\{(0,\CL),(\CL,C)\}$, due to arithmetic errors in
% calculations of $\w_c$ and $\gap_c$\footnote{
@@ -8928,7 +8934,7 @@
% mean \parapag{}ing is not in effect\footnote{
% 
% Since the assignments of $\CL$ and $\C$ in \CSIndex{pcol@zparacol} are
-% \CSIndex{global} and they are not nodified anywhere else, examining their
+% \CSIndex{global} and they are not modified anywhere else, examining their
% equality outside \env{paracol} environments is safe and meaningful.},
% 
% \parapag{}ing is done in \npaired{} mode\footnote{
@@ -8943,11 +8949,11 @@
% the (last) environment\footnote{
% 
% Column-swapping may be enabled {\em after} the last \env{paracol}
-% environment was closed but we consider the enablement is effective for the
+% environment was closed but we consider the enabling is effective for the
% page having the environment.},
% 
% and the page number is even. Note that a page may have two or more
-% (\lpage{}s of) \env{paracol} environements whose \parapag{}ing style can
+% (\lpage{}s of) \env{paracol} environments whose \parapag{}ing style can
% be inconsistent including the case some of them are not \parapag{}ed. If
% this inconsistency happens the page is shipped out following the style of
% the last environment. Also note that even if the last environment is not
@@ -9177,7 +9183,7 @@
%
% Then after trying put deferred floats in the \colpage{} by \!\@tryfcolumn!
% and \!\pcol@trynextcolumn! as done in \LaTeX's \!\@startcolumn!, we
-% \!\insert! $\pp^f(p)$, if it is has some footnoes, by letting \!\footins!
+% \!\insert! $\pp^f(p)$, if it is has some footnotes, by letting \!\footins!
% have it by \!\pcol@getcurrfoot! so that \TeX{} will be aware of the
% footnotes when it examines the page break of the \colpage{}. That is, if
% $p<\ptop$ the \!\insert!ion is to keep the vertical space for $\pp^f(p)$ in
@@ -9192,8 +9198,8 @@
% their total height reaches \!\@colht! by \!\pcol@deferredfootins! if $f=1$
% to mean this macro is invoked from \!\pcol@output!\footnote{
% 
-% The \cs{insert}ion of $\pp^f(p)$ also requiers $f=1$ but this examination
-% is redundant because $\pp^f(p)=\bot$ definately if $f=0$.}.
+% The \cs{insert}ion of $\pp^f(p)$ also requires $f=1$ but this examination
+% is redundant because $\pp^f(p)=\bot$ definitely if $f=0$.}.
% 
% Note that the deferred footnote \!\insert!ion in the case of $f=0$ will
% be done afterward when \!\pcol@freshpage! does \!\pcol@restartcolumn! at
@@ -9344,7 +9350,7 @@
% giving it $A_b=\emptyset$, $A_g=|g|$ and $A_c=|c|$.
%
% The macro $\!\pcol@bg@paintbox!\Arg{A}$ is used in the following macros
-% with $A$ shown in the parantheses to paint the \bground{}s of regions
+% with $A$ shown in the parentheses to paint the \bground{}s of regions
% $\bgr_{\{a_1,a_2\}}$ where $(a_1,a_2)\in\{(S,s),(F,f),(N,n),\~(P,p)\}$.
% 
% \begin{quote}\raggedright
@@ -9391,7 +9397,7 @@
% more appropriate alias; negate \!\pagerim! locally to calculate $\HT$
% easily; decrement $\CBto$ by one locally for the column scanning loop for
% $c\In\CBfrom{\CBto{-}1}$ in \!\pcol@bg@paint@ii!; and \!\offinterlineskip!
-% to inhbit inter-line \!\baselineskip! insertion in the box. Then after
+% to inhibit inter-line \!\baselineskip! insertion in the box. Then after
% the invocation of the sequence of \!\pcol@bg@paint@ii! in $\arg{body}$ and
% closing the box, we let the height, depth and width of the box be 0 so
% that it does not occupy any real space in the outer box in which the box
@@ -9426,7 +9432,7 @@
%
% First we invoke \!\pcol@bg@swappage! with \CSIndex{ifpcol@bg@swap} to
% let \!\pcol@bg@left~margin! and \CSIndex{ifpcol@bg@@swap} have values
-% accorging to \CSIndex{ifpcol@bg@swap}, \CSIndex{if@twoside} and the parity
+% according to \CSIndex{ifpcol@bg@swap}, \CSIndex{if@twoside} and the parity
% of $\page(p)$. Then we invoke $\!\pcol@bg@paintregion!\arg{a}\arg{c}$ for
% all $a\in A_b$ and $c=-1$ to paint the \bground{} of $\bgr_a$. Second, we
% invoke \!\pcol@bg@swappage! again but with \CSIndex{ifpcol@swapcolumn}
@@ -9524,7 +9530,7 @@
% \SpecialArrayIndex{a}{\pcol@bg@@}
% 
% and thus we need triple \!\expandafter! to give them to the macro. Prior
-% to the invocatoin of the macro, we let $\!\reserved@a!=a'$ have
+% to the invocation of the macro, we let $\!\reserved@a!=a'$ have
% $a{\cdot}|@|{\cdot}c$ if $\bgc_a^c$ is defined for $a\in\{G,C,g,c\}$, or
% $a$ otherwise definitely for $a\notin\{G,C,g,c\}$.
%
@@ -9546,7 +9552,7 @@
% \!\hbox! for the region right by $x_0$ by \!\moveright!, and paint the box
% putting a \!\vrule! of $(x_1-x_0)$ wide and $(y_1-y_0)$ tall, letting
% \!\current@color! have $\bgc_r^{[c]}=|\pcol@bg@colr|{\cdot}a'$ and then
-% invoking \!\pcol@set@color! being the orinigal definition of
+% invoking \!\pcol@set@color! being the original definition of
% \!\set@color!.
% 
% \SpecialArrayIndex{a{\cdot}\string\texttt{@}{\cdot}c}{\pcol@bg@color@}
@@ -9556,7 +9562,7 @@
% $[(\WT{-}x_1,y_0)(\WT{-}x_0,y_1)]$ and thus the shift amount for
% \!\moveright! of the \!\hbox! is $(\WT-x_1)$.
%
-% Then after \!\pcol@bg@paintregion@i! finshes its work,
+% Then after \!\pcol@bg@paintregion@i! finishes its work,
% \!\pcol@bg@paintregion! lets the switch
% \CSIndex{ifpcol@bg@painted}${}=\true$ because we painted $\bgr_a^{[c]}$,
% lets the height, depth and width of \!\@tempboxa! be 0 to make it a
@@ -9620,7 +9626,7 @@
% The macro $\!\pcol@bg@calculate!\arg{z}\arg{z_0}\arg{F}$ is used in
% \!\pcol@bg@paintregion@i! and \!\pcol@bg@addext! to accumulate dimensional
% values specified in $F$ into a \!\dimen! register $z$ with initial value
-% $z_0$. The specificatoin $F$ is a sequence of $\!\@elt!\Arg{f}$ to add $f$
+% $z_0$. The specification $F$ is a sequence of $\!\@elt!\Arg{f}$ to add $f$
% to $z$, $\!\pcol@bg@negative!\Arg{F^-}$ to subtract the amount specified
% by $F^-$ from $z$, or macros expanded to either of them.
%
@@ -9792,7 +9798,7 @@
% 
% \SpecialArrayIndex{a}{\pcol@bg@@}
% 
-% whose region identifier $a$ is shown in paretheses above, but besides them
+% whose region identifier $a$ is shown in parentheses above, but besides them
% \!\pcol@bg@paperwidth! is also used in \!\pcol@bg@ext@inf@r!,
% \!\pcol@bg@paperheight! in \!\pcol@bg@ext@inf@b!, \!\pcol@bg@pageleft! in
% \!\pcol@bg@ext@inf@l! and \!\pcol@bg@ext@inf@r!, and \!\pcol@bg@pagetop!
@@ -9871,7 +9877,7 @@
%
% \item
% \!\pcol@bg@columntop! and \!\pcol@bg@columnheight! for $a\in\{c,g\}$ by
-% \!\pcol@build~colseprule! and \!\pcol@buildcselt!.
+% \!\pcol@build~col~sep~rule! and \!\pcol@buildcselt!.
%
% \item
% \!\pcol@bg@spanningtop! and \!\pcol@bg@spanningheight! for $a\in\{s,S\}$ by
@@ -10215,7 +10221,7 @@
% \changes{v1.2-7}{2013/05/11}
% {Include the effect of the separation of pre-environment bottom
% floats and columns in the starting page into the check of too large
-% pre-envronment stuff.}
+% pre-environment stuff.}
% \changes{v1.3-6}{2013/09/17}
% {Change the page builder for too tall pre-environment stuff from
% \cs{pcol@makenormalcol} to \cs{@makecol} because the page should be
@@ -10224,7 +10230,7 @@
% {Let $\cs{ifpcol@output}\EQ\string\mathit{false}$ temporarily before
% the invocation of \cs{@outputpage} for too tall pre-environment
% stuff because the page is considered as outside
-% \string\texttt{paracol} envrionments.}
+% \string\texttt{paracol} environments.}
% \changes{v1.32-3}{2015/10/10}
% {Add depth clearing of imported deferred floats in case that some of
% them has \texttt{1sp}.}
@@ -10241,18 +10247,18 @@
% breaks are processed by our own macros such as \!\pcol@makecol! hereafter.
% Then we let $p=\pbase={\ptop}=0$ and $\PP=\emptyset$ because we have
% nothing for $q<\ptop=0$. We also move \!\@deferlist! to \!\@dbldeferlist!
-% and then let \!\@deferlist! be empty because all \cwise{} dererred floats
+% and then let \!\@deferlist! be empty because all \cwise{} deferred floats
% become \pwise{}. In this float importation, as discussed in
% item-(\ref{item:ovv-float-@output@start}) of
% \secref{sec:imp-ovv-float}, we force all floats in the list have
% depth 0 to ensure no one has |1sp| to conform our own and old-fashioned
% \pwise{} float placement mechanism\footnote{
% 
-% Though having \texttt{1sp} is almost imposiible.}.
+% Though having \texttt{1sp} is almost impossible.}.
% 
% We then and let $\df=\bot$ because we don't have any deferred footnotes.
%
-% Next we caculate $H=H_r-(H_m+H_f+H_b)$ where $H_r=\!\@colroom!$; $H_m$ is
+% Next we calculate $H=H_r-(H_m+H_f+H_b)$ where $H_r=\!\@colroom!$; $H_m$ is
% the height-plus-depth of the main vertical list in \!\@holdpg!; $H_f$ is
% the sum of \!\skip!\!\footins!, the height-plus-depth of \!\footins! and
% \!\belowfootnoteskip!, if \!\footins! is not $\bot$ or 0 otherwise; and
@@ -10325,7 +10331,7 @@
% $h>\HB=\!\pcol@bg@preposttop!
% \in\{\!\pcol@bg@preposttop@left!,\~\!\pcol@bg@preposttop@right!\}$, being
% the bottom of the previous \env{paracol} environment (having right
-% \parapag{}e) or 0 if the curret page does not have it, to mean we have
+% \parapag{}e) or 0 if the current page does not have it, to mean we have
% ordinary single-columned stuff in \preenv{}, we paint its \bground{} by
% \!\pcol@bg@paintbox! temporarily letting $\!\pcol@bg@textheight!=h$ so
% that $y_0=\HB$ and $y_1=h$ for $\bgr_{\{p,P\}}$. This \bgpaint{} is not
@@ -10483,7 +10489,7 @@
% and, if so, acquire an \!\insert! from \!\@freelist! to let
% $\Celt^c=\cs{pcol@columncolor@box}\cdot c$ have the coloring \!\special!
% for the color defined in $\Celtshadow^c$ by invoking \!\pcol@set@color!
-% being the origina \!\set@color! with nullification of \!\aftergroup!.
+% being the original \!\set@color! with nullification of \!\aftergroup!.
% Otherwise, we let $\Celt^c=\bot$ .
% 
% \changes{v1.0}{2011/10/10}
@@ -10516,7 +10522,7 @@
%
% \changes{v1.2-1}{2013/05/11}
% {Add emptying \cs{pcol@colorstack} and the invocation of
-% \cs{pcol@savecolorstack} at the beginnig of the first
+% \cs{pcol@savecolorstack} at the beginning of the first
% column-page to be built.}
% \changes{v1.2-2}{2013/05/11}
% {Add insertion of \cs{footins} having footnotes to be merged if it
@@ -10542,7 +10548,7 @@
% \!\footins! is not \!\unvbox!ed but is put as a whole and is followed by
% \!\penalty!\!\interlinepenalty!, so that footnotes will not be broken by
% \TeX's page builder to prevent the reconnection of a broken footnote with
-% innapropriate glue discarding, which we will discuss in
+% inappropriate glue discarding, which we will discuss in
% \secref{sec:imp-fnote}. We also add a penalty 10000 or
% \!\interlinepenalty! according to $\CSIndex{if@nobreak}=\true$ or not to
% allow the first column to start from a new page when its first item is
@@ -10575,7 +10581,7 @@
% pre-environment stuff and the multi-column stuff in
% \string\texttt{paracol} environment by \cs{textfloatsep}.}
% \changes{v1.3-6}{2013/09/17}
-% {Completely redesigined to use \cs{@makecol} if pre-environment
+% {Completely redesigned to use \cs{@makecol} if pre-environment
% stuff has bottom floats.}
% \changes{v1.32-2}{2015/10/10}
% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
@@ -10597,7 +10603,7 @@
% If \preenv{} does not have bottom floats, we build \!\@outputbox! by
% ourselves without relying on \!\@makecol! because the skips put into the
% bottom (or near it) by the macro is harmful to making \preenv{} and
-% parallel columns naturally connected. Therfore, we move
+% parallel columns naturally connected. Therefore, we move
% \!\@holdpg! to \!\@outputbox! adding \!\footins! to its tail if any by
% \!\pcol@combinefootins!, and then combine top floats if any by
% \!\pcol@combinefloats!\footnote{
@@ -10606,7 +10612,7 @@
% resulting \!\@outputbox! being top floats, main text and footnotes should
% be consistent with other pages with any \LaTeX{} including p\LaTeX.}.
% 
-% In addition, we clear \!\@midlist! and retuns its contents to
+% In addition, we clear \!\@midlist! and returns its contents to
% \!\@freelist! as \!\@makecol! does.
%
% \item
@@ -10622,9 +10628,9 @@
% $\CSIndex{ifpcol@lastpage}=\true$ to let
% $\!\@combinefloats!=\!\pcol@combinefloats!$ used in \!\@makecol! put a
% vertical skip of \!\textfloatsep! below the bottom floats so that the
-% floats are well seperated from the top of multi-column stuff in the
+% floats are well separated from the top of multi-column stuff in the
% \spage. We also nullify \!\@textbottom! by making it \!\let!-equal to
-% \!\relax! because it is unncessary to put an infinitely stretchable skip
+% \!\relax! because it is unnecessary to put an infinitely stretchable skip
% at the bottom\footnote{
% 
% Even if unharmful.},
@@ -10712,7 +10718,7 @@
% following; let $h_p$ be the height of \!\pcol@prespan! having \prespan{}
% if it is not $\bot$, or 0 if $\bot$ to mean we have had a page break in
% the \mctext; add $h_p$ to \!\@colroom! which we temporarily shrank when
-% the \mctext{} starts; add an elemnent $\spt(H,h)$ to the tail of
+% the \mctext{} starts; add an element $\spt(H,h)$ to the tail of
% $\pp^s(\ptop)=\!\pcol@sptextlist!$ by \!\pcol@getcurrpage! and
% \!\pcol@defcurrpage!, where $H$ is $h_p$ plus the total height of top
% floats measured by \!\pcol@addflhd!, and $h$ is the height-plus-depth of
@@ -10756,7 +10762,7 @@
% should have $\pp^f(p)$ which has been already fixed.
%
% \item
-% If \Mcfnote{} typesettinng is in effect, by \!\pcol@savefootins! we save
+% If \Mcfnote{} typesetting is in effect, by \!\pcol@savefootins! we save
% \!\footins! into \!\pcol@currfoot!, which should be $\bot$ in other cases,
% so that it will be saved into $\cc_c(\ft)$ by \!\pcol@setcurrcol!
% afterward.
@@ -11016,7 +11022,7 @@
% the footnotes in it by an \!\edef! and \!\pcol@getcurrfoot!, return the
% \!\insert! for them to \!\@freelist!, invoke \!\pcol@shrinkcolbyfn! to
% shrink \!\@colht! temporarily by their total height and to remember the
-% exsistence of them with $\!\@tempdimb!=-\!\skip!\!\footins!$, and then
+% existence of them with $\!\@tempdimb!=-\!\skip!\!\footins!$, and then
% \!\insert! the footnotes so that it contributes to the building process
% of the \colpage{} to be restarted. Otherwise, i.e. if $\pp^f(p)=\bot$,
% \!\@colht! is unchanged and $\!\@tempdimb!=0$.
@@ -11044,7 +11050,7 @@
% (\ref{item:scftop-pen}).
% \end{enumerate}
% 
-% Thes order of footnotes, main vertical list and then penalty is essential
+% The order of footnotes, main vertical list and then penalty is essential
% to ensure that the \colpage{} in $p<\ptop$ has room for footnotes whose
% residence in $p$ has already been fixed.
%
@@ -11167,7 +11173,7 @@
% \!\csname!| pcol@col|\!\number!\!\pcol@currcol!\!\endcsname!
% $$
% and then of the resulting control sequence. Then this macro gives its
-% nineth argument to \!\pcol@iigetcurrcol! which restores the last eight. We
+% ninth argument to \!\pcol@iigetcurrcol! which restores the last eight. We
% also do
% $$
% \!\global!\!\columnwidth!|\pcol@columnwidth|{\cdot}c
@@ -11310,21 +11316,21 @@
% Otherwise, $\csts$ is let $\bot$ because the opening \colorctext{} has
% already been put when we left from the \colpage{}. Then if
% $\CSIndex{ifpcol@sptextstart}=\true$ to mean a \mctext{} is to start, we
-% save $\cc_c(\vb)$ into \!\pcol@prespan! adding the colorling \!\special!s
+% save $\cc_c(\vb)$ into \!\pcol@prespan! adding the coloring \!\special!s
% to restore \colorctext{} from $\CST^c$ by
% \!\pcol@restorecolorstack!\footnote{
% 
% If \cs{pcol@prespan} is connected to (the first part of) the \mctext,
% the reestablishment of the \colorstack{} here correctly places coloring
% \cs{special}s in \texttt{.dvi}. On the other hand, if the \mctext{} is
-% slown away to the next page as a whole, the reestablishment here is
+% stowed away to the next page as a whole, the reestablishment here is
% essential for the correct paring of the pushes and pops, the latter of
% which are at the bottom of the \colpage{} whose tail is \cs{pcol@prespan}.}.
% 
% We also shrink $\cc_c(\vb^r)=\!\@colroom!$ by the height of the \prespan{}
% so that \mctext{} will be captured by \!\pcol@makecol! if it is broken
% into two (or more) pages, and put a invisible \!\hrule! to the main
-% vertical list letting $\!\topskip!=0$ to supress \!\topskip! insertion
+% vertical list letting $\!\topskip!=0$ to suppress \!\topskip! insertion
% prior to the \mctext{} but instead to make the text led by
% \!\baselineskip! (or \!\lineskip!) according to the \!\prevdepth! being
% the depth of the tallest column and the height of the first \!\hbox! in
@@ -11617,7 +11623,7 @@
% consistently in reestablishing but not in rewinding. However as we
% discussed in the description of \!\pcol@clearcolorstack!, the order of
% rewinding does not affect the result for almost all printers because only
-% the number of pop operations is siginficant for them\footnote{
+% the number of pop operations is significant for them\footnote{
% 
% And even for the minority because multiple updates of printer's color with
% one particular color are independent of the order of them.}.
@@ -11663,7 +11669,7 @@
% \item
% If $\HT(\celt)\neq0$, $\DP(\celt)\neq0$ to mean $\celt$ has a \!\special!
% with which $\Celt^c$ is updated. If $\CSIndex{if@tempswa}=\true$ to mean
-% $\celt$ is the first (bottommost) occurence, $\Celt^c$ is updated
+% $\celt$ is the first (bottommost) occurrence, $\Celt^c$ is updated
% acquiring an \!\insert! from \!\@freelist! if it was $\bot$. In this
% case of $\bot$, we have to put an uncoloring \!\special! by
% \!\reset@color!, because \!\pcol@scancst! did not do it but
@@ -11671,7 +11677,7 @@
% \!\special!. Then we let $\CSIndex{if@tempswa}=\false$.
%
% Otherwise, i.e., if $\CSIndex{if@tempswa}=\false$ for second or succeeding
-% occurences, we do nothing because updates by them are overridden by the
+% occurrences, we do nothing because updates by them are overridden by the
% first one.
% \end{enumerate}
% 
@@ -12112,7 +12118,7 @@
% $m_w=\!\marginparwidth!$ or $m_s=\!\marginparsep!$ according to the margin
% and the column; determine the position to place the marginal note
% consulting $\pp^m(p)=\!\pcol@mparbottom!$ obtained by
-% \!\pcol@getcurrpage!: and update $\pp^m(p)$ according to the postion.
+% \!\pcol@getcurrpage!: and update $\pp^m(p)$ according to the position.
%
% First, there are the following parameters to determine the margin, and thus
% the value of $\CSIndex{if@firstcolumn}$ referred to in \LaTeX's
@@ -12164,12 +12170,12 @@
% \SpecialArrayIndex{c}{\pcol@columnsep}
% 
% That is, $D$ is the distance from the left edge of the column $c$ to that
-% of leftmost column in the (paralell-)
+% of leftmost column in the (parallel-)
% 
% \Index{parallel-paging}
% 
% page in which $c$ resides. Then if $\CSIndex{if@firstcolumn}=\true$ to
-% let the margial note go to the left margin, we add $D$ to
+% let the marginal note go to the left margin, we add $D$ to
% $m_w=\!\marginparwidth!$ so that \LaTeX's \!\@addmarginpar! being
% \!\pcol@@addmarginpar! aligns the left edge of the marginal note at the
% point apart from the column's left edge by $(D+m_w)+m_s$ rather than
@@ -12192,8 +12198,8 @@
% $h=\!\@tempdimb!$ be the height-plus-depth of the box \!\pcol@marbox!
% plus \!\marginparpush!, or in other words the vertical space the marginal
% note requires. Then we give $t$ and $h$ to \!\pcol@getmparbottom! to let
-% \!\@mparbottom! have the bottom of the exisiting marginal text below which
-% we put the margial text in \!\pcol@marbox!, and to let \!\pcol@mpblist!
+% \!\@mparbottom! have the bottom of the existing marginal text below which
+% we put the marginal text in \!\pcol@marbox!, and to let \!\pcol@mpblist!
% have the new list to be replaced with $\mpb_{\{L,R\}}^{\{l,r\}}$ in
% $\pp^m(p)$.
%
@@ -12329,7 +12335,7 @@
% \end{eqnarray*}
% 
% where $n=\Abs{M}$, assuming $b_0=0$. That is, we try to find the first
-% avilable gap between marginal notes below $t$ to accommodate the
+% available gap between marginal notes below $t$ to accommodate the
% marginal note $m$ of $h$ tall. Then if such $t_k$ is not found because
% $t>t_n$ to mean $m$ appears below the last marginal note as in natural
% cases, or $t_i-\max(t,b_{i-1})<h$ for all $t_i$ s.t.\ $t_i>t$ to mean
@@ -12393,7 +12399,7 @@
% used solely in \!\pcol@addmarginpar! and is applied to $\PPP$ to update an
% element $M\in\Set{\mpb_X^x}{X\in\{L,R\},x\in{l,r}}$ in $\pp^m(p)$ with
% $M'=\!\pcol@mpblist!$ given by \!\pcol@getmparbottom!. The structure of
-% the macro is similar to \!\pcol@setpnoelt! to upadate $\pp^p(q)$ s.t.\
+% the macro is similar to \!\pcol@setpnoelt! to update $\pp^p(q)$ s.t.\
% $q\geq p$, but in this macro the target of the update is only $p$. Then
% for $q=p$, we invoke \!\pcol@setmpbelt@i! giving it the body of $\pp^m(p)$
% being
@@ -12463,7 +12469,7 @@
% \!\pcol@do@mpbout! and \!\pcol@bias@mpbout! to let $\pp^m(0)$ have the
% lists according to $\mpbout$ and $\!\@mparbottom!$ which can be modified
% in \postenv{} of the previous environment or in other word
-% in \preenv{} of starting envionment. By this setting of $\pp^m(0)$,
+% in \preenv{} of starting environment. By this setting of $\pp^m(0)$,
% marginal note placement in the \spage{} is aware of the marginal notes
% having been placed in previous environments and in \preenv{} and thus can
% correctly examines if a marginal note to be added in a margin collide
@@ -12471,7 +12477,7 @@
% encounters a page break before a new environment starts, our own
% \!\@outputpage! should be invoked at the page break to let
% $\mpbout=\mpboutz$ because the marginal notes in previous environments do
-% not afffect those in the new environment.
+% not affect those in the new environment.
%
% Note that $\mpbout$ is also referred to and updated by
% \!\pcol@do@mpb@all@i! and \!\pcol@do@mpb@all@ii! because they are used in
@@ -12489,12 +12495,12 @@
% \begin{macro}{\pcol@do@mpbout}
% \changes{v1.3-4}{2013/09/17}
% {Introduced to do specified operations on $\string\cal{M}$ and its
-% element $M_L^x$ acccording to the side margin for marginal notes
+% element $M_L^x$ according to the side margin for marginal notes
% outside \texttt{paracol} environments.}
% \begin{macro}{\pcol@do@mpbout@i}
% \changes{v1.3-4}{2013/09/17}
% {Introduced to do specified operations on $\string\cal{M}$ and its
-% element $M_L^x$ acccording to the side margin for marginal notes
+% element $M_L^x$ according to the side margin for marginal notes
% outside \texttt{paracol} environments.}
% \begin{macro}{\pcol@do@mpbout@whole}
% \changes{v1.3-4}{2013/09/17}
@@ -12587,7 +12593,7 @@
% The macro $\!\pcol@getmparbottom@last!\Arg{y}$ is used solely in
% \!\pcol@output@end! to let
% $\mpbout=\Arg{m_L^l}\Arg{m_L^r}\Arg{m_R^l}\Arg{m_R^r}$, where
-% $m_X^x=\mpar(t_n,b_n)\in\mpb_X^x$, $n=\Abs{\mpb_X^x}$ asuming
+% $m_X^x=\mpar(t_n,b_n)\in\mpb_X^x$, $n=\Abs{\mpb_X^x}$ assuming
% $\mpar(t_0,b_0)={\mpar}(y,y)$, and $y$ is the negative counterpart of the
% height-plus-depth of the \spanning{} in the \lpage. Therefore, $\mpbout$
% is let have the occupancy information of the last marginal note if any, or
@@ -12846,7 +12852,7 @@
% 
% In the real implementation, $V=-\infty$ if $\VT=\VB=-\infty$ and no
% \Scfnote{}s are presented, but this difference does not affect the
-% decisoins because $f\land(V\geq0)=(\VT<0)\land(V\geq0)=\false$ and
+% decisions because $f\land(V\geq0)=(\VT<0)\land(V\geq0)=\false$ and
% $V\leq\pp^f(\ptop)$ with either $V=0$ or $V=-\infty$.}.
% 
% Note that it can be $\VP+v^f\leq\pp^h(\ptop)<\VT+\VB+v^f=V$ to mean
@@ -12993,7 +12999,7 @@
% Then we obtain $p$'s \pctext{} by \!\pcol@getcurrpage! and, if it has
% \Scfnote{}s in $\pp^f(p)$, we shrink \!\@colht! by the space required for
% the footnotes using \!\pcol@shrinkcolbyfn! and add the stretch\slash
-% shrink compontents of $\!\skip!\cdot\pp^f(p)$ at the bottom of
+% shrink components of $\!\skip!\cdot\pp^f(p)$ at the bottom of
% \!\box!|255| by \!\pcol@unvbox@cclv!, as we did in \!\pcol@makecol!.
% Otherwise we take a special care of the case that the height-plus-depth of
% $\cc_c(\vb^b)$ is greater than $\pp^h(p)$ due to that its height is almost
@@ -13336,7 +13342,7 @@
% then emptied. The floats are put in a \!\vbox! of \!\@colht! tall with
% vertical skips of \!\@fptop!, \!\@fpsep! and \!\@fpbot! above, between and
% below them respectively. The box is then let be $\s_c(p)$ or
-% $\cc_c(\vb^b)$ explictly or implicitly by the invokers, with an
+% $\cc_c(\vb^b)$ explicitly or implicitly by the invokers, with an
% encapsulation in the case of \!\pcol@makefcolumn!.
% 
% \begin{macrocode}
@@ -13485,8 +13491,8 @@
% The macro $\!\pcol@addflhd!\arg{list}\arg{tfs}$ is invoked twice from
% \!\pcol@measurecolumn! for a column $c$ to measure $\size_c(x)$
% ($x\in\{t,b\}$) of top ($x=t$) or bottom ($x=b$) floats.
-% The arguments and registers referred to in the macro have the folloiwngs
-% according to $x=t$ or $x=b$.
+% The arguments and registers referred to in the macro have the following
+% values according to $x=t$ or $x=b$.
% $$
% \nosv\begin{array}{l|ll}
% & x=t& x=b\\\hline
@@ -13599,7 +13605,7 @@
% this case we simply add \!\vfil! at the tail of the main vertical list in
% $\cc_c(\vb^b)$ to make the whole \colpage{} possibly with other items fit
% in a box of \!\@colht! tall and, if $\cc_c(\tf)\neq\infty$ to mean the
-% column to be flushed has a \sync{}ation point, we also add an infitite
+% column to be flushed has a \sync{}ation point, we also add an infinite
% shrink of $1/10000\,|fil|$ so as to cancel a finite shrink just below the
% point, as done in \!\pcol@makecol!\footnote{
% 
@@ -13662,7 +13668,7 @@
% Note that the process above involves \!\floatsep! and \!\textfloatsep!
% with some finite stretch and shrink, but these factors will not contribute
% the final result because they are canceled by \!\vss! in the \mvlfloat{}
-% and by the small inifinite stretch and shrink put by \!\pcol@makecol! and
+% and by the small infinite stretch and shrink put by \!\pcol@makecol! and
% this macro for flushing. Also note that $\cc_c(\tf)$ is then biased by
% 10000\,|pt| so that \!\pcol@cflt! will not put \!\topfigrule! because it
% has been already put as a part of the \mvlfloat{} or we don't have any
@@ -13744,7 +13750,7 @@
% point with some shrink\slash stretch. Though this moving up/down is
% inhibited by the small infinite stretch\slash shrink which the \colpage{}
% will at its bottom finally, it is undesirable to make \TeX{}
-% misunderstanding that the glues are strethable\slash shrinkable though
+% misunderstanding that the glues are stretchable\slash shrinkable though
% they are not in reality.
%
% Second, since the boxes in all \colpage{} are zero deep due to the
@@ -13765,7 +13771,7 @@
% baseline below the \sync{}ation point apart from the lowest one by
% \cs{baselineskip}, we dare to choose the definition of $\DT$ because such
% lowest baseline often means that the column have some skip at its bottom
-% to give us the impressoin that the space between the baselines of the
+% to give us the impression that the space between the baselines of the
% tallest column and its first item is a little bit too large.},
% 
% if $\DT$ plus the hight of each item is less than \!\baselineskip!.
@@ -13800,7 +13806,7 @@
\fi
% \end{macrocode}
% 
-% Finally, we let $\cc_c(\tn)=0$ to inhibit futher addition of top floats
+% Finally, we let $\cc_c(\tn)=0$ to inhibit further addition of top floats
% because we have fixed the space for them\footnote{
% 
% Allowing the addition is tremendously tough even when the \colpage{} has
@@ -13845,7 +13851,7 @@
% \cs{textheight} though not specified so on its construction in
% \cs{pcol@makeflushedpage}.},
% 
-% ensureing that its depth is capped by $\!\boxmaxdepth!=\!\@maxdepth!$. We
+% ensuring that its depth is capped by $\!\boxmaxdepth!=\!\@maxdepth!$. We
% also perform these height setting and depth capping on \!\pcol@rightpage!
% if $\CL<\C$ to mean \parapag{}ing. Then we invoke \!\@outputpage! for
% shipping out, and then finally \!\pcol@freshpage! to have a new page to
@@ -13899,7 +13905,7 @@
% then do it for \pwise{} floats by the following invocations enclosed in a
% group; letting $\!\pcol@rightpage!=\bot$ for ordinary paging;
% \!\@dblfloatplacement! to set up placement parameters followed by
-% $\!\f@depth!=0$ to nullify the setting $\!\f@depth!=|1sp|$ possiblly done
+% $\!\f@depth!=0$ to nullify the setting $\!\f@depth!=|1sp|$ possibly done
% by it as discussed in the item-(\ref{item:ovv-float-@dblfloatplacement})
% of \secref{sec:imp-ovv-float}; \!\@makefcolumn! with
% \!\@dbldeferlist! to have a \fpage{} in \!\@outputbox! if any; and a loop
@@ -13908,7 +13914,7 @@
% repeated while we have a \fpage{}, i.e., $\CSIndex{if@fcolmade}=\true$.
%
% Note that the mid part is same as that found in \!\@doclearpage! but we
-% omit various adjuncts surrouding it as follows; examination of
+% omit various adjuncts surrounding it as follows; examination of
% \CSIndex{if@twocolumn} because we should have multiple columns;
% examination of \CSIndex{if@firstcolumn} because we have to clear the page
% immediately even when we are not in the first column; concatenating
@@ -13962,7 +13968,7 @@
% {Completely redesigned with new macro \cs{pcol@imakeflushedpage}.}
% \changes{v1.3-3}{2013/09/17}
% {Add background painting of page-wise floats, and a part of
-% opreations for column-separation rule drawing and background
+% operations for column-separation rule drawing and background
% painting of page-wise footnotes.} 
% \changes{v1.3-6}{2013/09/17}
% {Revise the mechanism of special care about last page introducing
@@ -13974,8 +13980,8 @@
% invoke \!\pcol@output@switch! with setting $\CSIndex{ifpcol@clear}=\true$
% to flush all pages up to $\ptop-1$ and to let $\cc_c(\vb^b)$ have the
% ship-out image of the main vertical list of each \colpage{} $c$ in
-% $\ptop$. This invocatoin also lets $\!\pcol@colht!=\VPP$ so that hereafter
-% we will refer $\VPP$ throuth $\arg{ht}$ if it is $\!\pcol@colht!$ for
+% $\ptop$. This invocation also lets $\!\pcol@colht!=\VPP$ so that hereafter
+% we will refer $\VPP$ through $\arg{ht}$ if it is $\!\pcol@colht!$ for
% \lpage. Then after obtaining $\ptop$'s \pctext{} to have
% $\page(\ptop)=\pp^p(\ptop)$, $\!\@colht!=\pp^h(\ptop)$ and
% \CSIndex{ifpcol@nospan} by \!\pcol@getcurrpinfo!, we build the ship-out
@@ -13985,7 +13991,7 @@
% \begin{enumerate}\def\labelenumi{(\arabic{enumi})}
% \item\label{item:mfp-nonlast}
% If $\CSIndex{ifpcol@lastpage}=\false$, each of $\cc_c(\vb^b)$ has ship-out
-% image even if some or all of them are empty. It is unecessary to be aware
+% image even if some or all of them are empty. It is unnecessary to be aware
% of the perfectly empty case because it should mean the page $\ptop$ is
% made blank intentionally.
%
@@ -14015,7 +14021,7 @@
% $\pp^f(\ptop)=\bot$ or it has \Mgfnote{}s, \!\@outputbox! must have only
% $\pp^i(\ptop)$\footnote{
% 
-% \!\pcol@rightpage! must have the couterpart in right \parapag{}e if the
+% \!\pcol@rightpage! must have the counterpart in right \parapag{}e if the
% \spanning{} is \preenv, while it is made $\bot$ by \!\pcol@output@end! if
% the \spanning{} are \pwise{} floats.}.
% 
@@ -14053,7 +14059,7 @@
% \lpage{} full size if we are working on it as discussed in\Tie
% (\ref{item:mfp-last-dfloats}), we put $\pp^i(\ptop)$ in \!\@outputbox!,
% and paint its \bground{} by \!\pcol@bg@paintbox! \!\edef!ining the height
-% paramenter \!\pcol@bg@floatheight! with $h$ being the height-plus-depth of
+% parameter \!\pcol@bg@floatheight! with $h$ being the height-plus-depth of
% $\pp^i(\ptop)$ with the following two exceptions; one is the case of
% $\CSIndex{ifpcol@firstpage}={\true}$ to mean we are in \spage{} and thus
% the \spanning{} is \preenv{} having already been painted by
@@ -14253,7 +14259,7 @@
% \changes{v1.3-2}{2013/09/17}
% {Introduced for parallel-paging.}
% \changes{v1.3-3}{2013/09/17}
-% {Implement column-separating rule and background paiting of
+% {Implement column-separating rule and background painting of
% columns, column-separating gaps, spanning texts and page-wise
% footnotes.}
% \changes{v1.3-4}{2013/09/17}
@@ -14274,12 +14280,12 @@
% counterpart, by \!\pcol@bg@paintbox! \!\def!ining the parameter
% \!\pcol@bg@footnoteheight! with the height-plus-depth of $\pp^f(\ptop)$,
% as the very first element of the ship-out image as done in
-% \!\pcol@ioutputelt!, unless $\ptop$ is the truely \lpage{} for which the
+% \!\pcol@ioutputelt!, unless $\ptop$ is the truly \lpage{} for which the
% \bgpaint{} is done in \!\pcol@output@end!. Then we put \spanning{} in $b$
% itself if any.
%
% Next, we invoke \!\pcol@buildcolseprule! for \cseprule{} drawing and
-% \bgpaint{} giving it $H$ in \!\@colht! possibly shurnk from $\pp^h(\ptop)$
+% \bgpaint{} giving it $H$ in \!\@colht! possibly shrunk from $\pp^h(\ptop)$
% by \Scfnote{}s, $\LBRP\Cfrom\Cto$ for the set of columns to be put, and
% \!\@maxdepth! for non-\lpage{}s to paint the \bground{}s of columns and
% \csepgap{}s so that those of the last segment reach the page bottom, while
@@ -14328,7 +14334,7 @@
% \Scfnote{}s. Also it is not \cs{@makecol} because we need to ensure the
% depth of resulting \cs{@outputbox} is capped.},
% 
-% to have the ship-out image of the \colpage{} in \!\@outputbox!, possibily
+% to have the ship-out image of the \colpage{} in \!\@outputbox!, possibly
% only for the deferred floats in $\cc_c(\tl)$ but without \!\topfigrule! in
% this case. Note that we don't take care of the stretch\slash shrink of
% \!\skip!\!\footins! for \Scfnote{}s because \pfcheck{} on the \colpage{}
@@ -14371,7 +14377,7 @@
% \cs{@maxdepth}, by the latter.}
% \changes{v1.3-6}{2013/09/17}
% {Remove the examination of $\kappa_c(\lambda_d)$ for
-% \cs{if@fcolmade} because it is made unnecesary now by
+% \cs{if@fcolmade} because it is made unnecessary now by
% \cs{ifpcol@dfloats}.}
% \changes{v1.32-2}{2015/10/10}
% {Add \cs{pcol@Fb}/\cs{pcol@Fe} pair(s).}
@@ -14422,7 +14428,7 @@
% \changes{v1.3-2}{2013/09/17}
% {Introduced for parallel-paging.}
% \changes{v1.3-3}{2013/09/17}
-% {Implement column-separating rule and background paiting of
+% {Implement column-separating rule and background painting of
% columns and column-separating gaps}
% \changes{v1.3-4}{2013/09/17}
% {Implement variable-width column-separating gaps.}
@@ -14530,7 +14536,7 @@
% modified by \!\pcol@opcol! if we make \fcolumn{}s afterward. Then we invoke
% \!\pcol@getcurrpage! to have the \pctext{} of $p=0$, because it might be
% modified by a column $c'<c$ by producing \fcolumn{}s. After that and the
-% invocation of \!\pcol@floatplacement! for setting float parametners, we
+% invocation of \!\pcol@floatplacement! for setting float parameters, we
% invoke \!\pcol@startcolumn! for $c$'s \colpage{} at $p=0$, and iterate
% \!\pcol@opcol! and \!\pcol@startcolumn! while a \fcolumn{} is made by the
% latter\footnote{
@@ -14597,7 +14603,7 @@
% {Add background painting of page-wise footnotes and setting
% of \cs{pcol@preposttop}.}
% \changes{v1.3-4}{2013/09/17}
-% {Add opeartios to pass $\string\cal{M}$ to the next
+% {Add operations to pass $\string\cal{M}$ to the next
% \string\texttt{paracol} environment and \cs{@mparbottom} to post
% environment typesetting.}
% 
@@ -14651,9 +14657,9 @@
% \lpage{} in {\em full size} in \!\@outputbox! unless the page has nothing
% perfectly. Therefore, we ship the image out by \!\@outputbox! unless it
% is $\bot$ for perfectly empty case. Then we invoke \!\pcol@flushfloats!
-% to produce and ship out \fpage{}s, lettinng $\CSIndex{if@fcolmade}={\true}$
+% to produce and ship out \fpage{}s, letting $\CSIndex{if@fcolmade}={\true}$
% to tell the macro that at least we will have one \fpage{}. Now we have
-% shipped out everyting in the closing environment and thus we let
+% shipped out everything in the closing environment and thus we let
% $\CSIndex{ifpcol@output}=\false$ to tell \!\output! routine to work
% ordinarily. Then we let $\CSIndex{if@tempswa}=f_{\it sp}=\true$ to
% remember we will start a new page and thus $\!\@pagedp!=\pd=\DP=1000$ to
@@ -14716,7 +14722,7 @@
% 
% In this case, the setting of \!\@mparbottom! and $\mpbout$ done at the
% beginning of this macro is correct because they describe the marginal
-% notes in \preenv{} including \env{paracol} enviroments preceeding it even
+% notes in \preenv{} including \env{paracol} environments preceding it even
% if any.
% 
% \changes{v1.3-3}{2013/09/17}
@@ -14785,7 +14791,7 @@
% footnotes whose total height-plus-depth is in the macro, we paint their
% \bground{} by \!\pcol@bg@paintbox! \!\def!ining \!\pcol@bg@footnoteheight!
% with the size and temporarily re\!\def!ining \!\pcol@bg@textheight! to be
-% the height-plus-depth of \!\@outputbox! because the foontnotes are at the
+% the height-plus-depth of \!\@outputbox! because the footnotes are at the
% bottom of the box instead of the page. Note that the order of painting is
% right first and then left second if we have \parapag{}es because we refer
% the height-plus-depth of \!\@outputbox! being put into the main vertical
@@ -14844,14 +14850,14 @@
\ifvoid\pcol@topfnotes\else \insert\footins{\unvbox\pcol@topfnotes}\fi
% \end{macrocode}
%
-% The following operationss are for clean-up and set-up for the \postenv;
+% The following operations are for clean-up and set-up for the \postenv;
% for all c, return $\cc_c(\vb)$ obtained by \!\pcol@getcurrcol! and
% $\Celt^c\neq\bot$ letting it $\bot$ to \!\@freelist!; reestablish the
% \colorstack{} by \!\pcol@restorecolorstack! for column-0\footnote{
% 
% It can be any other column.}
% 
-% so that the \colorstack{} is just $\cst$ and is rewinded at \Endparacol,
+% so that the \colorstack{} is just $\cst$ and is rewound at \Endparacol,
% and let $\cst=\bot$; reload $\cc_d$ for $d=\!\pcol@lastcol!$ being the
% column in which \Endparacol{} occurs to let $\!\everypar!=\cc_d(\ep)$ and
% to let \CSIndex{if@nobreak} and \CSIndex{if@afterindent} have the value
@@ -14966,7 +14972,7 @@
% to have, for example, the value saved in $\cc_c(\pd)$ when we left from
% $c$ which we are now restarting.
%
-% In addition to above, after the invocatoin of \!\output!-routine, we let
+% In addition to above, after the invocation of \!\output!-routine, we let
% $\!\linewidth!=\w_c-\lrm$ so that the register is shrunk from $\w_c$ by the
% total width of left and right margins of the \env{list}-like environment
% surrounding \env{paracol} if $\lrm=\!\pcol@lrmargin!>0$ to mean that.
@@ -15022,7 +15028,7 @@
% {Make API commands environment-local and inhibit nesting of
% \texttt{paracol}.}
% \changes{v1.3-2}{2013/09/17}
-% {Modify to add the optinal argument $C_L$ and optional
+% {Modify to add the optional argument $C_L$ and optional
% `\string\texttt{*}' for parallel-paging.}
% \begin{macro}{\pcol@xparacol}
% \changes{v1.3-2}{2013/09/17}
@@ -15031,22 +15037,22 @@
% \begin{macro}{\pcol@yparacol}
% \changes{v1.3-2}{2013/09/17}
% {Introduced to process the optional `\string\texttt{*}' given with
-% the optioal argument $C_L$ of \cs{paracol}.}
+% the optional argument $C_L$ of \cs{paracol}.}
% \begin{macro}{\pcol@zparacol}
% \changes{v1.3-2}{2013/09/17}
-% {Introduced to add the optinal argument $C_L$ and optional
+% {Introduced to add the optional argument $C_L$ and optional
% `\string\texttt{*}' to \cs{paracol} for parallel-paging and to do
% what had done by \cs{paracol}.}
% 
% The API macro $\!\paracol!|[|\CL|][*]|\Arg{\C}$\oarg{text} is invoked by
% \beginparacol{} to start a \Midx{\env{paracol}} environment. The macro
-% sipmly examines the existence of the optional argument $\CL$, whose
+% simply examines the existence of the optional argument $\CL$, whose
% default value $\C$ is given by \!\pcol@xparacol!, to decide the
% number of columns in left \parapag{}es. Then if the optional argument is
% given, \!\pcol@yparacol! examines the existence of `|*|' following it for
% \npaired{} \parapag{}ing to let $\CSIndex{ifpcol@paired}=\false$, while
% \!\paracol! gave the default $\true$ for \paired{} one to the switch.
-% Then the all other operations to start the environment is doen by
+% Then the all other operations to start the environment is done by
% \!\pcol@zparacol!.
% 
% \begin{macrocode}
@@ -15236,12 +15242,12 @@
% We also make the macro \!\@combinefloats! \!\let!-equal to our own
% \!\pcol@combinefloats! throughout the environment, after saving its
% original definition into \Midx{\!\pcol@@combinefloats!} for processing
-% \!\output! request sneaked from outsied of environment, so that our
+% \!\output! request sneaked from outside of environment, so that our
% customization is in effect for any invocations including those from
% \LaTeX's own macros. Similarly, \!\@addmarginpar! is made \!\let!-equal
-% to our own \!\pcol@addmarginpar! while its orginal definition is saved
+% to our own \!\pcol@addmarginpar! while its original definition is saved
% into \!\pcol@@addmarginpar! but in this case we need the original for the
-% implementaion of our own. On the other hand, \!\end@dblfloat! is simply
+% implementation of our own. On the other hand, \!\end@dblfloat! is simply
% replaced with our own \!\pcol@end@dblfloat! being what \LaTeX{} had had until
% 2014 as discussed in item-(\ref{item:ovv-float-end@dblfloat}) of
% \secref{sec:imp-ovv-float}.
@@ -15296,11 +15302,11 @@
%
% If the coloring is enabled, on the other hand, we redefine \LaTeX's
% \!\set@color! so that it works as \!\pcol@set@color@push! with
-% \colorstack. We also prepare the text colring mechanism to let
+% \colorstack. We also prepare the text coloring mechanism to let
% $\CSIndex{ifpcol@inner}=\true$ in every \!\vbox! in the \env{paracol}
% environment as follows. First, we let $\CSIndex{ifpcol@inner}=\false$
% because we are not in any \!\vbox!es obviously. Then, to use
-% \!\everyvbox! for our own pupose, we do the followings; (1) \!\global!ly
+% \!\everyvbox! for our own purpose, we do the followings; (1) \!\global!ly
% assign a token \Midx{\!\pcol@dummytoken!}, which should never occurs, to
% \!\pcol@everyvbox!; (2) save \!\everyvbox! into \!\pcol@everyvbox!
% locally; (3) let \!\everyvbox! have a \!\the!-reference to
@@ -15316,7 +15322,7 @@
% to it are simulated by \!\pcol@everyvbox!. Then the initial tokens given
% to \!\pcol@everyvbox! by the saving operation (2) or tokens given inside
% the environment are correctly processed whenever a \!\vbox! is opened,
-% toghether with |\pcol@innertrue| to fulfill our own purpose, because the
+% together with |\pcol@innertrue| to fulfill our own purpose, because the
% real \!\everyvbox! is let have a \!\the!-reference to \!\pcol@everyvbox!
% by (3). We also reserve the invocation of \!\pcol@restoreeveryvbox! by
% \!\aftergroup! so that the macro is invoked just after \Endparacol{} to
@@ -15328,7 +15334,7 @@
%
% Then we continue the case having some coloring package to make \bgpaint{}
% macros \!\pcol@bg@paintpage!, \!\pcol@bg@paintbox! and
-% \!\pcol@bg@paintcolumns! activated by making them \!\let!-equal to thier
+% \!\pcol@bg@paintcolumns! activated by making them \!\let!-equal to their
% |@@| counterparts namely \!\pcol@bg@@paintpage!, \!\pcol@bg@@paintbox! and
% \!\pcol@bg@@paintcolumns! which implement \bgpaint{}.
%
@@ -15377,6 +15383,8 @@
% {Add initialization of \cs{pcol@footnotebase} and
% \cs{pcol@nfootnotes}, and redefinitions of \cs{footnote},
% \cs{footnotemark}, \cs{footnotetext} and \cs{@footnotetext}.}
+% \changes{v1.36-3}{2024/10/23}
+% {Check for \cs{@footnotetext} being renamed to \cs{H@@footnotetext}.}
%
% The sixth settings are for (mainly \mcfnote) footnotes. We initialize two
% footnote-related count registers letting $\bf=\!\pcol@footnotebase!$ have
@@ -15388,10 +15396,12 @@
% typesetting is in effect, is \!\footnoterule! which lets
% $\!\columnwidth!=\!\textwidth!$ before invoking its original version saved
% in \!\pcol@footnoterule! so that it acts as in single-columned typesetting
-% rateher than multi-columned. Then we redefine \LaTeX's internal macro
-% \!\@footnotetext! letting it be our own \!\pcol@fntext! for encapsulating
-% a footnote in a \!\vbox! and for deferred \!\insert!ion with \Scfnote{}
-% typesetting.
+% rather than multi-columned. Then we redefine \LaTeX's internal macro
+% \!\@footnotetext!\footnote{
+% This is called \!\H@@footnotetext! if \textsf{hyperref} (with option
+% \texttt{hyperfootnote}) is loaded.}
+% letting it be our own \!\pcol@fntext! for encapsulating a footnote in a
+% \!\vbox! and for deferred \!\insert!ion with \Scfnote{} typesetting.
% 
% \begin{macrocode}
\pcol@footnotebase\c@footnote \global\pcol@nfootnotes\z@
@@ -15401,7 +15411,11 @@
\ifpcol@scfnote
\def\footnoterule{{\columnwidth\textwidth \pcol@footnoterule}}%
\fi
- \let\@footnotetext\pcol@fntext
+ \@ifundefined{H@@footnotetext}{%
+ \let\@footnotetext\pcol@fntext
+ }{%
+ \let\H@@footnotetext\pcol@fntext
+ }
% \end{macrocode}
%
% Seventh, we let \!\marginpar!, \!\@mn@@marginnote! and \!\@xympar! be our
@@ -15409,19 +15423,22 @@
% respectively for the emulation of \!\marginnote!, saving the original
% version of the first and third into \!\pcol@@marginpar! and
% \!\pcol@@xympar!. Then we inactivate API macros \!\twosided! and
-% \!\footnotelayout! together with their backward-compatible macros
+% \!\footnoteplacement! together with their backward-compatible macros
% \!\swapcolumninevenpages!, \!\noswapcolumnineven~pages!,
-% \!\multi~columnfootnotes!, \!\singlecolumnfootnotes! and
+% \!\footnotelayout!, \!\multicolumnfootnotes!, \!\singlecolumnfootnotes! and
% \!\mergedfootnotes!, so that they commonly invoke \!\pcol@ignore! because
% their inherent operations turning corresponding switches are harmful in
% \env{paracol} environment. Note that the inactivation of \!\twosided! is
% done by redefinition of \!\pcol@twosided! because we need optional
-% argument processing by \!\twosided! even when it is inactivated.
+% argument processing by \!\twosided! even when it is inactivated. Further
+% note, that since \textsf{footmisc} defines its own version of
+% \!\footnotelayout!, we must only redefine \!\footnotelayout! if it is what we
+% expect, i.e. an alias to \!\footnoteplacement!.
% 
% \changes{v1.2-4}{2013/05/11}
-% {Add nullificaion of \cs{[no]swapcolumninevenpages}.}
+% {Add nullification of \cs{[no]swapcolumninevenpages}.}
% \changes{v1.2-2}{2013/05/11}
-% {Add nullificaton of API macros of footnote typesetting definition.}
+% {Add nullification of API macros of footnote typesetting definition.}
% \changes{v1.3-3}{2013/09/17}
% {Add new API inactivation for \cs{pcol@twosided}.}
% \changes{v1.3-4}{2013/09/17}
@@ -15431,6 +15448,9 @@
% \changes{v1.35-3}{2018/12/31}
% {Add local modifications of \cs{marginpar}, \cs{@mn@@marginnote} and
% \cs{@xympar} for the emulation of \cs{marginnote}.}
+% \changes{v1.36-2}{2024/10/22}
+% {Add new API inactivation for \cs{footnoteplacement} and a check before
+% deactivating \cs{footnotelayout}.}
% 
% \begin{macrocode}
\let\pcol@@marginpar\marginpar \let\marginpar\pcol@marginpar
@@ -15439,18 +15459,21 @@
\def\pcol@twosided[#1]{\pcol@ignore\twosided}%
\def\swapcolumninevenpages{\pcol@ignore\swapcolumninevenpages}%
\def\noswapcolumninevenpages{\pcol@ignore\noswapcolumninevenpages}%
- \def\footnotelayout#1{\pcol@ignore\footnotelayout}%
+ \def\footnoteplacement#1{\pcol@ignore\footnoteplacement}%
+ \ifx\footnotelayout\footnoteplacement
+ \def\footnotelayout#1{\pcol@ignore\footnotelayout}%
+ \fi
\def\multicolumnfootnotes{\pcol@ignore\multicolumnfootnotes}%
\def\singlecolumnfootnotes{\pcol@ignore\singlecolumnfootnotes}%
\def\mergedfootnotes{\pcol@ignore\mergedfootnotes}%
% \end{macrocode}
%
-% Eigth, we scan the list \!\pcol@localcommands! of $\arg{com}$ being the
+% Eighth, we scan the list \!\pcol@localcommands! of $\arg{com}$ being the
% name of commands, e.g., |switchcolumn|, available only in the environment
% or customized for the environment, applying \!\pcol@defcomelt! to each
% $\arg{com}$ to let $|\|\arg{com}=|\pcol@com@|{\cdot}\arg{com}$
% 
-% \SpecialArrayMainIndex{\<\string\mathit{com}\>}{\pcol@com@}
+% \SpecialArrayMainIndex{\string\arg{com}}{\pcol@com@}
% 
% the latter of which is the real implementation of the former. Note that
% the list does not have all \elocal{} API commands but we omit
@@ -15459,8 +15482,8 @@
% invocation. Therefore, we \!\def!ine \!\column!(|*|) to have
% \!\pcol@com@column!(|*|) in their bodies\footnote{
% 
-% We can do this for other commands instead of adhearing to \cs{let} to
-% eliminate the execption, but the author loves to use \cs{let} as much as
+% We can do this for other commands instead of adhering to \cs{let} to
+% eliminate the exception, but the author loves to use \cs{let} as much as
% possible.}.
% 
% We also give the first \!\def!initions of
@@ -15533,7 +15556,7 @@
% 
% The API macro \!\thecolumn! gives the value of \!\pcol@currcol! to users
% to let them know which column they are working in so that, for example,
-% they do some column-dependent opreations.
+% they do some column-dependent operations.
% 
% \begin{macrocode}
\def\thecolumn{\number\pcol@currcol}
@@ -15543,9 +15566,9 @@
%
% \begin{macro}{\pcol@ignore}
% \changes{v1.2-4}{2013/05/11}
-% {Introduced for nullificaion of \cs{[no]swapcolumninevenpages}.}
+% {Introduced for nullification of \cs{[no]swapcolumninevenpages}.}
% \changes{v1.2-2}{2013/05/11}
-% {Introduced for nullificaton of API macros of footnote typesetting
+% {Introduced for nullification of API macros of footnote typesetting
% definition.}
% 
% The macro \!\pcol@ignore!$\arg{macro}$ is to complain that the
@@ -15556,6 +15579,7 @@
% \!\twosided!,
% \!\swapcolumninevenpages!,
% \!\noswapcolumninevenpages!,
+% \!\footnoteplacement!,
% \!\footnotelayout!,
% \!\multicolumnfootnotes!,
% \!\singlecolumnfootnotes!,
@@ -15627,7 +15651,7 @@
% API command $|\|\arg{com}$ and its implementation
% $|\pcol@com@|{\cdot}\arg{com}$.
% 
-% \SpecialArrayIndex{\<\string\mathit{com}\>}{\pcol@com@}
+% \SpecialArrayIndex{\string\arg{com}}{\pcol@com@}
% 
% \begin{macrocode}
\def\pcol@defcomelt#1{%
@@ -15678,7 +15702,7 @@
% \section{Column Width Setting}
% \label{sec:imp-cwidth}
% \changes{v1.3-4}{2013/09/17}
-% {Add the secion ``Column Width Setting'' mainly to discuss the new
+% {Add the section ``Column Width Setting'' mainly to discuss the new
% API \cs{setcolumnwidth}.}
%
% \begin{macro}{\columnratio}
@@ -15715,7 +15739,7 @@
% \!\pcol@columnratioleft! and \!\pcol@columnratioright! are initialized to
% be empty so that all columns have same width and are separated by
% \!\columnsep! as default. Note that \!\pcol@columnratioleft! can be made
-% \!\let!-equial to \!\relax! by the related API macro \!\setcolumnwidth! so
+% \!\let!-equal to \!\relax! by the related API macro \!\setcolumnwidth! so
% that \!\pcol@setcolumnwidth! knows which of specifications given by two
% API macros is effective and chooses \!\pcol@setcolwidth@r! or
% \!\pcol@setcolwidth@s!.
@@ -15818,7 +15842,7 @@
% {Introduced to calculate $w_c$.}
% \changes{v1.3-4}{2013/09/17}
% {Renamed from \cs{pcol@setcolumnwidth} to make it clear what the
-% marco works for.}
+% macro works for.}
% \changes{v1.3-2}{2013/09/17}
% {Add arguments $C^0$, $C^1$, $\langle\string\mathit{ratio}\rangle$
% and $\langle\string\mathit{spec}\rangle$ for columns in right
@@ -15922,8 +15946,8 @@
%
% Each specification $s_d$ for $\w_c$ and $\gap_c$ where $c=\Cfrom+d$ has
% the form $|[|w'_d|][/[|g'_d|]]|$ to specify the natural width $w^n_d$ and
-% $g^n_d$ and inifite stretch factor $w^f_d$ and $g^f_d$ of column\slash gap
-% sepcfication as follows;
+% $g^n_d$ and infinite stretch factor $w^f_d$ and $g^f_d$ of column\slash gap
+% specification as follows;
% 
% \begin{eqnarray*}
% w^n_d&=&\cases{0&$w'_d=\emptyset$\cr
@@ -15942,8 +15966,8 @@
% 
% where $\mathit{natural}(x)$ is the natural width of the skip $x$ and
% $\mathit{stretch}(x)$ is the infinite stretch factor of $x$. Note that
-% any finite stretch factors or any shirnk factors do not affect them, and
-% infinite strech units |fil|, |fill| and |filll| are not distinguished.
+% any finite stretch factors or any shrink factors do not affect them, and
+% infinite stretch units |fil|, |fill| and |filll| are not distinguished.
% From factors above, we determine $w_c$ and $\gap_c$ as follows;
% 
% \begin{eqnarray*}
@@ -16043,7 +16067,7 @@
% $w_d^f$, $g_d^n$ and $g_d^f$, and to process width factors by
% \!\pcol@setcw@c! and gap factors by \!\pcol@setcw@s!. Since the macro is
% invoked with arguments in the form of $s_d|//|\!\@nil!$, if $s_d$ has
-% `|/|' in it $w'_d$ and $g'_d$ should have everything preceeding and
+% `|/|' in it $w'_d$ and $g'_d$ should have everything preceding and
% following the `|/|' respectively while $\arg{garbage}$ should have the
% redundant `|/|'. Otherwise, i.e., if $s_d$ does not have `|/|',
% $w'_d=s_d$ and $g'_d=\emptyset$ while $\arg{garbage}=\emptyset$\footnote{
@@ -16051,7 +16075,7 @@
% If $s_d$ have two or more `|/|', everything following the second one is
% thrown away into $\arg{garbage}$ together with `|//|'. Therefore we could
% check if $s_d$ has at most one `|/|' by examining $\arg{garbage}$ but we
-% abandon it simply ingoring $\arg{garbage}$.}.
+% abandon it simply ignoring $\arg{garbage}$.}.
% 
% Therefore, we invoke $\!\pcol@setcw@getspec@i!\arg{default}\Arg{x'_d}$ twice
% with $(\arg{default},x'_d)=(\!\fill!,w'_d)$ for a column and
@@ -16065,7 +16089,7 @@
% space tokens in them.}.
% 
% Then if $x'_d$ after the space removal has nothing, we let
-% $x'_d=\arg{default}$. Next we examine if $x'_d=f\!\fill!$ in a trickey
+% $x'_d=\arg{default}$. Next we examine if $x'_d=f\!\fill!$ in a tricky
% way by temporarily \!\let!ting $\!\@gtempa!=\!\relax!$, defining \!\fill!
% as ``|1pt|\!\gdef!\!\@gtempa!|{}|'' and making an assignment
% ``\!\@tempskipa! $x'_d$''. That is, if $x'_d=f\!\fill!$, \!\@tempskipa!
@@ -16081,13 +16105,13 @@
% if $f=\emptyset$.
%
% Now \!\@tempskipa! has $x_d^n$ as its natural component and may have some
-% infinite strectch component $x_d^f$ specified explicitly or with \!\fill!.
+% infinite stretch component $x_d^f$ specified explicitly or with \!\fill!.
% Therefore, we assign \!\@tempskipa! to \!\@tempdima! so that it has
% $x_d^n$, and then, after adding 0\,|pt| |plus| 1000\,|pt| |minus|
-% 1000\,|pt| to \!\@tempskipa! to make it sure it has both strech and shrink
+% 1000\,|pt| to \!\@tempskipa! to make it sure it has both stretch and shrink
% components\footnote{
% 
-% Almost sure becaues they could be $-1000$\,pt, but we ignore the
+% Almost sure because they could be $-1000$\,pt, but we ignore the
% possibility.}
% 
% keeping infinite stretch factor if any, invoke \!\pcol@extract@fil! giving
@@ -16127,7 +16151,7 @@
% and \!\pcol@setcw@s! commonly and thus invoked from \!\pcol@setcw@getspec!
% with setting $\!\@tempdima!=x_d^n$ and $\!\@tempdimb!=x_d^f\times1\,|pt|$,
% where $x\in\{w,g\}$. The macro simply add them to \!\dimen@! and
-% \!\dimen@ii! repsectively to accumurate $x_d^n$ and $x_d^f$ in them.
+% \!\dimen@ii! respectively to accumulate $x_d^n$ and $x_d^f$ in them.
% 
% \begin{macrocode}
\def\pcol@setcw@accumwd{\advance\dimen@\@tempdima \advance\dimen@ii\@tempdimb}
@@ -16167,12 +16191,12 @@
%
% \begin{macro}{\pcol@setcw@calcfactors}
% \changes{v1.3-4}{2013/09/17}
-% {Introduced to caclulate scaling and stretch factors from
+% {Introduced to calculate scaling and stretch factors from
% the argument $\langle\string\mathit{spec}\rangle$ of
% \cs{pcol@setcolwidth@s}.}
% \begin{macro}{\pcol@setcw@calcf}
% \changes{v1.3-4}{2013/09/17}
-% {Introduced to caclulate scaling or stretch factor from
+% {Introduced to calculate scaling or stretch factor from
% the argument $\langle\string\mathit{spec}\rangle$ of
% \cs{pcol@setcolwidth@s}.}
% \changes{v1.31}{2013/10/10}
@@ -16201,7 +16225,7 @@
% Otherwise, we keep the provisional result of $\phi_s$ as the final one and
% let $\phi_f=\!\dimen@ii!=0$.
%
-% The macro $\!\pcol@setcw@calcf!\<x\>\<y\>\<z\>$ caclulates $z\approx x/y$
+% The macro $\!\pcol@setcw@calcf!\<x\>\<y\>\<z\>$ calculates $z\approx x/y$
% and let $\!\@tempdimb!=Z=z\times1\,|pt|$ as follows. First we find the
% following three parameters.
% 
@@ -16220,10 +16244,10 @@
% calculate $Z=(z'/2^k)\cdot2^{16}=z'\cdot2^{16-k}$ to have it in
% \!\@tempdimb! by $Z=z'\times2^{16-k}$ if $k<16$, or by $Z=z'/2^{k-16}$
% otherwise. Finally we invoke \!\pcol@extract@pt! giving it
-% \!\the!-representaion of $Z$ to have $z$.
+% \!\the!-representation of $Z$ to have $z$.
%
% Note that it is assured $z\leq x/y$ regardless of successfulness of the
-% calculation and thus the scaling $\phi_s x_d^n$ and strething
+% calculation and thus the scaling $\phi_s x_d^n$ and stretching
% $x_d^n+\phi_f x_d^f$ cannot exceed their exact value to make it also sure
% that $\sum_{c=\Cfrom}^{\Cto-2}(\w_c+\gap_c)+\w_{\Cto-1}\leq\WT$ and thus
% the series of columns and \csepgap{}s should not cause overfull when a
@@ -16304,7 +16328,7 @@
% body respectively but with $\!\catcode!=12$ (other) which is used in
% \!\the!-representation of glues. For the definition, we invoke
% \!\pcol@defkw! giving it \!\the!-representation of \!\@tempskipa! letting
-% it have $1\,|pt|\ |plus|\ 1\,|fil|\ |minus|\ 1\,|fil|$ having all keywards
+% it have $1\,|pt|\ |plus|\ 1\,|fil|\ |minus|\ 1\,|fil|$ having all keywords
% we need to have\footnote{
% 
% We can do what \!\pcol@defkw! does by temporarily giving $\!\catcode!=12$
@@ -16356,7 +16380,7 @@
% stretch factor in a skip.}
% 
% The macro
-% $\!\pcol@extract@fil!\<\mathit{garbge}_1\>\verb*| plus |\<s\>\verb*| minus|
+% $\!\pcol@extract@fil!\<\mathit{garbage}_1\>\verb*| plus |\<s\>\verb*| minus|
% \<\mathit{garbage}_2\>\!\@nil!$ is used solely in \!\pcol@setcw@getspec@i!
% to extract the infinite stretch factor $f$ in the stretch component $s$ of
% a column\slash gap specification $x'_d$ and to let
@@ -16376,7 +16400,7 @@
% just once at the top level. Then since $s$ should have the form
% $\<n\>|.|\<m\>\arg{unit}$ where $n$ and $m$ are decimal digit sequences and
% $\arg{unit}\in\{|pt|,|fil|,|fill|,|filll|\}$, we examine if
-% $\arg{unit}=|pt|$ or not by a trickey way in
+% $\arg{unit}=|pt|$ or not by a tricky way in
% $\!\pcol@extract@fil@i!\<n\>|.|\<m{\cdot}\mathit{unit}\>\!\@nil!$. That
% is, we do $\!\count@!\<m{\cdot}\mathit{unit}\>\!\@nil!$ with
% \!\afterassignment! to invoke $\!\pcol@extract@fil@ii!\arg{unit}\!\@nil!$
@@ -16423,7 +16447,7 @@
% \begin{macro}{\pcol@extract@pt}
% \changes{v1.3-4}{2013/09/17}
% {Introduced to extract the factor of \string\texttt{pt} from the
-% \cs{the} representaion of a dimension.}
+% \cs{the} representation of a dimension.}
% 
% The macro $\!\pcol@extract@pt!\<f\>|pt|\<scale\>$ is solely used in
% \!\pcol@setcw@calcf! to extract $f$ from a dimension in the form of
@@ -16453,7 +16477,7 @@
% \begin{macro}{\globalcounter}
% \changes{v1.2-7}{2013/05/11}
% {Examine if the argument counter is already in
-% $\string\mathit{\Theta}^g$ to avoid the duplicatoin in the list
+% $\string\mathit{\Theta}^g$ to avoid the duplication in the list
% which caused a bug.}
% \changes{v1.32-1}{2015/10/10}
% {Modified according to the introduction of \cs{globalcounter*}.}
@@ -16598,19 +16622,23 @@
% \begin{macro}{\pcol@thectrelt}
% The macro $\!\pcol@thectrelt!\<\cl\>$ is invoked solely in \!\pcol@zparacol!
% and is applied to each $\cl\in\CTL$ to define its \lrep{} of
-% default and that of the leftmost column 0. It performs a lengthy sequence
-% with many occurrences of \!\expandafter!, \!\csname! and \!\endcsname! but
-% the sequence is equivalent to the followings.
+% default and that of the leftmost column 0. To give unique representations
+% |\theH|${\cdot}\cl$ used by \textsf{hyperref}, it prepends the current column
+% number as \Midx{\!\pcol@thecurrcol!} to them. The macro performs a lengthy
+% sequence with many occurrences of \!\expandafter!, \!\csname! and
+% \!\endcsname! but the sequence is equivalent to the following.
% 
% \begin{quote}
% $\!\let!|\pcol@thectr@|{\cdot}\cl|=\the|{\cdot}\cl$\\
% $\CSIndex{ifx}|\pcol@thectr@|{\cdot}\cl{\cdot}0\!\relax!|\else |
% \!\let!|\the|{\cdot}\cl|=\pcol@thectr@|{\cdot}\cl{\cdot}0| \fi|$
+% $\!\let!|\theH|{\cdot}\cl|=\pcol@thecurrcol\the|{\cdot}\cl$\\
% \end{quote}
% 
% \SpecialArrayMainIndex{\theta}{\pcol@thectr@}
% \SpecialArrayIndex{\theta{\cdot}c}{\pcol@thectr@}
% \SpecialArrayMainIndex{\theta}{\the}
+% \SpecialArrayMainIndex{\theta}{\theH}
% 
% \begin{macrocode}
\def\pcol@thectrelt#1{%
@@ -16619,7 +16647,15 @@
\expandafter\let\expandafter\reserved@a\csname pcol@thectr@#10\endcsname
\ifx\reserved@a\relax\else
\expandafter\let\csname the#1\endcsname\reserved@a
- \fi}
+ \fi
+ \@ifundefined{theH#1}{}{%
+ \expandafter\def\csname theH#1\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\pcol@thecurrcol\csname theH#1\endcsname
+ }%
+ }%
+}
+\def\pcol@thecurrcol{column\number\pcol@currcol.}
% \end{macrocode}
% \end{macro}
@@ -16654,7 +16690,7 @@
% $\Val(\theta)$ for \csync. That is, \!\pcol@storecounters! is used to add
% $\<\cl,v(\cl)\>$ to \!\@gtempa! for all $\cl\in\CTL$ by \!\pcol@sscounters!
% giving it \!\pcol@storectrelt! as its argument, where $v(\cl)$ is modified
-% if $\cl=\theta$ or unmodifed otherwise after it is defined by
+% if $\cl=\theta$ or unmodified otherwise after it is defined by
% \!\pcol@loadctrelt!.
% 
% \begin{macrocode}
@@ -16835,8 +16871,8 @@
% {Replace \cs{setcounter} with direct assignment with \cs{csname} and
% \cs{endcsname}}
% 
-% The macro $\!\pcol@setctrelt!\<\cl\>\<\val_c(\cl)\>$ is solely inovked
-% from \!\pcol@switchcol! to swich to a column $c$ and is applied to each
+% The macro $\!\pcol@setctrelt!\<\cl\>\<\val_c(\cl)\>$ is solely invoked
+% from \!\pcol@switchcol! to switch to a column $c$ and is applied to each
% $\<\cl,\val_c(\cl)\>\in\Cc_c$ to let $\Val(\cl)=\val_c(\cl)$ \!\global!ly.
% It also define the \lrep{} of $\cl$, being $|\the|{\cdot}\cl$,
% 
@@ -16971,13 +17007,13 @@
% or environment of the current \env{paracol} environment. Then, after
% calculating $d=(c+1)\bmod\C$, this macro simply invokes
% $\!\pcol@switchcol!|[|d|]|$ with or without the calculated $d$ depending
-% on the existance of the optional argument delimitor `|[|'.
+% on the existence of the optional argument delimiter `|[|'.
%
% The macro $\!\pcol@switchcolumn!|[|d|]|$ lets $\!\pcol@nextcol!=d$ and
% confirms $0\leq d<\C$ or abort the execution by \!\PackageError! if it
% does not hold. Then it invokes \!\pcol@iswitchcolumn! if
% $\!\switchcolumn!|[|d|]|$ is followed by a `|*|', or \!\pcol@switchcol!
-% othewise.
+% otherwise.
%
% The macro $\!\pcol@iswitchcolumn!|[|\arg{text}|]|$ invokes
% $\!\pcol@sptext!|[|\arg{text}|]|$ if the optional argument is provided, or
@@ -17039,7 +17075,7 @@
% The macro $\!\pcol@sptext!|[|\arg{text}|]|$ is invoked from
% \!\pcol@zparacol! and \!\pcol@iswitchcolumn! to put a \Uidx\mctext{}
% $\arg{text}$ given as the optional argument of the former or that of
-% \!\switchcolumn!|*| and its relative envrironment openers for the latter.
+% \!\switchcolumn!|*| and its relative environment openers for the latter.
% The macro has \!\long! attribute because the \mctext{} may have
% \CSIndex{par}. Since the text is put in the column-0 regardless of its
% physical position, we let \!\pcol@nextcol! have 0 after saving the target
@@ -17047,7 +17083,7 @@
% column by \!\pcol@switchcol!, after turning $\CSIndex{ifpcol@sync}=\true$
% to set a \sync{}ation point above the text and
% $\CSIndex{ifpcol@sptextstart}=\true$ to tell \!\pcol@output@switch! to
-% prepare the capture of \mctext{} saveing the \prespan{}.
+% prepare the capture of \mctext{} saving the \prespan{}.
%
% Next, we let $\CSIndex{ifpcol@sptextstart}=\false$ and
% $\CSIndex{ifpcol@sptext}=\true$ to indicate the main vertical list
@@ -17073,7 +17109,7 @@
% closing the group, we let $\!\pcol@nextcol!=d$ and
% $\CSIndex{pcol@sync}=\true$ to set another \sync{}ation point below the
% \mctext{} and to make the captured text combined with \prespan, and then
-% invoke \!\pcol@switchcol! to switch the coloumn $d$.
+% invoke \!\pcol@switchcol! to switch the column $d$.
% 
% \begin{macrocode}
\long\def\pcol@sptext[#1]{%
@@ -17105,7 +17141,7 @@
% {Add \cs{pcol@swapcolumn} for column-swapping to turn
% \cs{if@firstcolumn}.}
% \changes{v1.3-4}{2013/09/17}
-% {Remove settig \cs{if@firstcolumn} and the invocation of
+% {Remove setting \cs{if@firstcolumn} and the invocation of
% \cs{pcol@swapcolumn} for it because the position of marginal notes
% are now controlled by \cs{pcol@addmarginpar}.}
% \changes{v1.3-5}{2013/09/17}
@@ -17113,7 +17149,9 @@
% \cs{pcol@ensurevspace} for avoidance of post-synchronization
% inconsistent page break.}
% \changes{v1.35-5}{2018/12/31}
-% {Add the invocation of $\cs{pcol@colpream}\cdot c$.}
+% {Add the invocation of $\cs{pcol@colpream}\cdot c$.}
+% \changes{v1.36-1}{2024/10/21}
+% {Add check to not add zeroth preamble in \cs{endparacol}.}
% 
% The macro \!\pcol@switchcol! is invoked from \!\pcol@switchcolumn!,
% \!\pcol@iswitchcolumn!, \!\pcol@sptext! and \!\endparacol! to switch the
@@ -17121,7 +17159,7 @@
% column $c$ into $\Cc_c$ by \!\pcol@savecounters!.
%
% Next, if $\CSIndex{ifpcol@sync}=\true$, we do the followings. At first we
-% let $\VE={}$\!\pcol@@ensure~vspace! have the natrual component of
+% let $\VE={}$\!\pcol@@ensure~vspace! have the natural component of
% \!\pcol@ensurevspace! which can have a glue specified by \!\ensurevspace!,
% so that it is referred to by \!\pcol@sync! as the minimum space required
% below the \sync{}ation point we are now setting. Second, we invoke
@@ -17156,7 +17194,8 @@
% be manipulated without unexpected application of a macro to their
% elements.
%
-% Finally, we invoke $|\pcol@colpream|{\cdot}c$, where $c=-1$ if
+% Finally -- unless we process the implicit \!\pcol@switchol! from
+% \!\endparacol! -- we invoke $|\pcol@colpream|{\cdot}c$, where $c=-1$ if
% $\CSIndex{ifpcol@sptextstart}=\true$ to mean the \cswitch{} is for a
% \sptext{}, or $c=d$ otherwise.
% 
@@ -17181,7 +17220,9 @@
\let\@elt\pcol@setctrelt
\csname pcol@counters\number\pcol@currcol\endcsname
\let\@elt\pcol@aconlyelt \pcol@aconly \let\@elt\relax
- \@nameuse{pcol@colpream\ifpcol@sptextstart-1\else\number\pcol@currcol\fi}}
+ \@ifundefined{pcol@lastcol}{%
+ \@nameuse{pcol@colpream\ifpcol@sptextstart-1\else\number\pcol@currcol\fi}
+ }{}}
% \end{macrocode}
% \end{macro}
@@ -17225,10 +17266,10 @@
% {Made \cs{let}-equal to \cs{pcol@com@column*} for localization.}
% \begin{macro}{\pcol@com@column}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{column}.}
+% {Introduced as the implementation of \cs{column}.}
% \begin{macro}{\pcol@com@column*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{column*}.}
+% {Introduced as the implementation of \cs{column*}.}
% \begin{macro}{\pcol@defcolumn}
% \changes{v1.0}{2011/10/10}
% {Replace \cs{column} with \cs{pcol@com@column} and \cs{switchcolumn}
@@ -17247,7 +17288,7 @@
% \!\pcol@com@switchcolumn! to invoke
% \!\pcol@switchenv!|{column|(|*|)|}|(|*|) which then invokes
% \!\switchcolumn!. Note that the definition of non-starred
-% \!\pcol@com@column! has \!\relax! after the invocatoin of
+% \!\pcol@com@column! has \!\relax! after the invocation of
% \!\pcol@switchenv! so that \!\@ifnextchar! and \!\@ifstar! to examine the
% existence of `|[|' and `|*|' definitely tells us no even if the body of the
% environment starts with a `|[|' or `|*|'.
@@ -17269,11 +17310,11 @@
% {Made \cs{let}-equal to \cs{pcol@com@nthcolumn*} for localization.}
% \begin{macro}{\pcol@com@nthcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{nthcolumn} with the
+% {Introduced as the implementation of \cs{nthcolumn} with the
% inhibition of column-switching in the environment.}
% \begin{macro}{\pcol@com@nthcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{nthcolumn*} with the
+% {Introduced as the implementation of \cs{nthcolumn*} with the
% inhibition of column-switching in the environment.}
% \begin{macro}{\leftcolumn}
% \changes{v1.0}{2011/10/10}
@@ -17283,11 +17324,11 @@
% {Made \cs{let}-equal to \cs{pcol@com@leftcolumn*} for localization.}
% \begin{macro}{\pcol@com@leftcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{leftcolumn} with the
+% {Introduced as the implementation of \cs{leftcolumn} with the
% inhibition of column-switching in the environment.}
% \begin{macro}{\pcol@com@leftcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{leftcolumn*} with the
+% {Introduced as the implementation of \cs{leftcolumn*} with the
% inhibition of column-switching in the environment.}
% \begin{macro}{\rightcolumn}
% \changes{v1.0}{2011/10/10}
@@ -17297,11 +17338,11 @@
% {Made \cs{let}-equal to \cs{pcol@com@rightcolumn*} for localization.}
% \begin{macro}{\pcol@com@rightcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{rightcolumn} with the
+% {Introduced as the implementation of \cs{rightcolumn} with the
% inhibition of column-switching in the environment.}
% \begin{macro}{\pcol@com@rightcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{rightcolumn*} with the
+% {Introduced as the implementation of \cs{rightcolumn*} with the
% inhibition of column-switching in the environment.}
% 
% The macros $\!\pcol@com@nthcolumn!(|*|)\arg{d}$,
@@ -17316,7 +17357,7 @@
% \Midx{\EnvIndex{rightcolumn}}\Midx{\EnvIndex{rightcolumn*}}
% 
% simply invoking \!\pcol@switchenv!$\Arg{env}$\~(|*|), where $\arg{env}$ is
-% the name of each environment, giving it $d$, 0 and 1 repectively as its
+% the name of each environment, giving it $d$, 0 and 1 respectively as its
% optional argument for the target column.
% 
% \begin{macrocode}
@@ -17336,7 +17377,7 @@
% \changes{v1.0}{2011/10/10}
% {Introduced to inhibit column-switching in the environment.}
% \changes{v1.31}{2013/10/10}
-% {Fix the misspell ``swicthing'' in the error message.}
+% {Fix the misspell ``switching'' in the error message.}
% 
% The macro $\!\pcol@switchenv!\arg{env}$ is invoked from
% $|\pcol@com@|{\cdot}\arg{env}$ where $\arg{env}\in
@@ -17366,12 +17407,12 @@
% {Made \cs{let}-equal to \cs{pcol@com@endcolumn*} for localization.}
% \begin{macro}{\pcol@com@endcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endcolumn} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endcolumn} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\pcol@com@endcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endcolumn*} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endcolumn*} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\endnthcolumn}
% \changes{v1.0}{2011/10/10}
% {Made \cs{let}-equal to \cs{pcol@com@endnthcolumn} for localization.}
@@ -17381,12 +17422,12 @@
% localization.}
% \begin{macro}{\pcol@com@endnthcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endnthcolumn} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endnthcolumn} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\pcol@com@endnthcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endnthcolumn*} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endnthcolumn*} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\endleftcolumn}
% \changes{v1.0}{2011/10/10}
% {Made \cs{let}-equal to \cs{pcol@com@endleftcolumn} for
@@ -17397,12 +17438,12 @@
% localization.}
% \begin{macro}{\pcol@com@endleftcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endleftcolumn} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endleftcolumn} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\pcol@com@endleftcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endleftcolumn*} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endleftcolumn*} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\endrightcolumn}
% \changes{v1.0}{2011/10/10}
% {Made \cs{let}-equal to \cs{pcol@com@endrightcolumn} for
@@ -17413,18 +17454,18 @@
% localization.}
% \begin{macro}{\pcol@com@endrightcolumn}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endrightcolumn} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endrightcolumn} with the
+% globalization of \cs{everypar}.}
% \begin{macro}{\pcol@com@endrightcolumn*}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{endrightcolumn*} with the
-% globalizatoin of \cs{everypar}.}
+% {Introduced as the implementation of \cs{endrightcolumn*} with the
+% globalization of \cs{everypar}.}
% 
% The macro \!\pcol@com@endcolumn! is the implementation of the \elocal{}
% API macro \!\endcolumn! to close \env{column} environment. The macro
% makes it sure we are in vertical mode by \!\pcol@par! and \!\global!ize
% \!\everypar! so that it is saved in $\cc_c(\ep)$ of the current column
-% $c$ on the switch to another column. The macro also gives the commmon
+% $c$ on the switch to another column. The macro also gives the common
% definition of \!\pcol@com@endcolumn*! for \!\endcolumn*!,
% \!\pcol@com@endnthcolumn!(|*|) for \!\endnthcolumn!(|*|),
% \!\pcol@com@endleftcolumn!(|*|) for \!\endleftcolumn!(|*|), and
@@ -17453,7 +17494,7 @@
% 
% The API macro \!\definecolumnpreamble!\marg{c}\marg{pream} is to define
% the \colpream{} $\arg{pream}$ for the column $c$ or that for \sptext{}s if
-% $c=-1$. After assiging $c$ to \!\@tempcnta! to ensure $c$ is a number,
+% $c=-1$. After assigning $c$ to \!\@tempcnta! to ensure $c$ is a number,
% the macro $|\pcol@colpream|{\cdot}c$ is |\def|ined to have $\arg{pream}$.
% 
% \SpecialArrayMainIndex{c}{\pcol@colpream}
@@ -17594,7 +17635,7 @@
% \<a_1\>\<a_2\>\<a_3\>\<a_4\>\<a_5\>\<a_6\>|[|\<a_7\>|]|\<a_8\>$ at first
% disables \!\addcontentsline! by making it \!\let!-equal to
% \!\pcol@gobblethree!, then invokes the original \!\@sect! saved in
-% \!\pcol@ac@enable@toc! ginving it all arguments $a_1$ to $a_8$, and
+% \!\pcol@ac@enable@toc! giving it all arguments $a_1$ to $a_8$, and
% finally enables it by making it \!\let!-equal to \!\pcol@addcontentsline!.
% Note that the argument $a_7$ is surrounded by |{| and |}| on the
% invocation of \!\@sect! to conceal `|]|' in $a_7$.
@@ -17640,7 +17681,7 @@
% respectively. They invoke \!\pcol@ac@caption@enable!$\<t\>$ or
% $\!\pcol@ac@caption@disable!\<t\>$ according to $\arg{eord}$, and then
% these macros invoke $\!\pcol@ac@caption@def!\<s\>\<t\>$ where
-% $s=\!\@tempswatrue!$ or $s=\!\@tempswafalse!$ respectievely to let
+% $s=\!\@tempswatrue!$ or $s=\!\@tempswafalse!$ respectively to let
% $\!\@caption!=\!\pcol@ac@caption!$ and $|\pcol@ac@caption@if@|{\cdot}t=s$
% which are \!\let!-equal to \!\@tempswatrue! in default. That is,
% $|\pcol@ac@catption@if@|{\cdot}t$ lets $\CSIndex{if@tempswa}={}\true$ iff
@@ -17677,7 +17718,7 @@
% to let \CSIndex{if@tempswa} be $\true$ or $\false$ according to the
% enable\slash disable status of $t$. Then, after letting
% $\!\addcontentsline!=\!\pcol@gobblethree!$ for disabling if $\false$, we
-% invoke \!\pcol@ac@caption@latex!, being the \LaTeX's orignial \!\@caption!,
+% invoke \!\pcol@ac@caption@latex!, being the \LaTeX's original \!\@caption!,
% giving all three arguments of \!\pcol@ac@caption! itself surrounding
% $\arg{lcap}$ with |{| and |}| for the concealment of `|]|'. Finally, we
% let $\!\addcontentsline!=\!\pcol@addcontentsline!$ so that other macros
@@ -17706,7 +17747,7 @@
% localization.}
% \begin{macro}{\pcol@com@flushpage}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{flushpage} with the
+% {Introduced as the implementation of \cs{flushpage} with the
% replacement of \cs{par} with \cs{pcol@par}.}
% \begin{macro}{\clearpage}
% \changes{v1.0}{2011/10/10}
@@ -17714,7 +17755,7 @@
% localization.}
% \begin{macro}{\pcol@com@clearpage}
% \changes{v1.0}{2011/10/10}
-% {Introduced as the implemenatation of \cs{clearpage} with the
+% {Introduced as the implementation of \cs{clearpage} with the
% replacement of \cs{par} with \cs{pcol@par}.}
% \begin{macro}{\cleardoublepage}
% \changes{v1.3-5}{2013/09/17}
@@ -17722,7 +17763,7 @@
% \cs{pcol@com@cleardoublepage}.}
% \begin{macro}{\pcol@com@cleardoublepage}
% \changes{v1.3-5}{2013/09/17}
-% {Introduced as the implemenatation of \cs{cleardoulbepage}.}
+% {Introduced as the implementation of \cs{cleardoublepage}.}
% 
% The macros \!\pcol@com@flushpage!, \!\pcol@com@clearpage! and
% \!\pcol@com@cleardoublepage! are the implementations of \elocal{} API
@@ -17816,6 +17857,10 @@
% {Add the subsection ``Commands for Footnotes'' to describe newly
% introduced macros for page-wise footnotes.}
%
+% \begin{macro}{\footnoteplacement}
+% \changes{v1.36-2}{2024/10/22}
+% {Rename \cs{footnotelayout} to \cs{footnoteplacement} for compatibility
+% with \textsf{footmisc} package.}
% \begin{macro}{\footnotelayout}
% \changes{v1.3-5}{2013/09/17}
% {Introduced for easier declaration of footnote layout.}
@@ -17830,18 +17875,18 @@
% {Introduced for easier declaration of merged footnotes.}
% \begin{macro}{\multicolumnfootnotes}
% \changes{v1.2-2}{2013/05/11}
-% {Introduced to delclare the defalut column-wise footnote
+% {Introduced to declare the default column-wise footnote
% typesetting explicitly.}
% \begin{macro}{\singlecolumnfootnotes}
% \changes{v1.2-2}{2013/05/11}
-% {Introduced to delclare the page-wise but non-merged footnote
+% {Introduced to declare the page-wise but non-merged footnote
% typesetting.}
% \begin{macro}{\mergedfootnotes}
% \changes{v1.2-2}{2013/05/11}
-% {Introduced to delclare the page-wise and merged footnote
+% {Introduced to declare the page-wise and merged footnote
% typesetting.}
% 
-% The API macros $\!\footnotelayout!\Arg{l}$ is to determine that footnotes
+% The API macro $\!\footnoteplacement!\Arg{l}$ is to determine that footnotes
% are \mcfnote{} ($l=|c|$), \scfnote{} without merging ($l=|p|$), or
% \mgfnote{} and \scfnote{} ($l=m$). The macro examines if
% $l\in\{|c|,|p|,|m|\}$ by the existence of the corresponding macro
@@ -17875,12 +17920,16 @@
% settings. Another remark is that backward-compatible macros
% \!\multicolumnfootnotes!, \!\singlecolumnfootnotes! and
% \!\mergedfootnotes! are \!\let!-equal to \!\pcol@fnlayout@c!,
-% \!\pcol@fnlayout@p! and \!\pcol@fnlayout@m! respectively.
+% \!\pcol@fnlayout@p! and \!\pcol@fnlayout@m! respectively. If the deprecated
+% \!\footnotelayout! is undefined \!\let! it equal to \!\footnoteplacement! and
+% add a hook to undefine it if \textsf{footmisc} gets loaded; print an
+% informational message in any case where our \!\footnotelayout! is
+% unavailable.
% 
% \begin{macrocode}
%% Commands for Footnotes
-\def\footnotelayout#1{\@ifundefined{pcol@fnlayout@#1}%
+\def\footnoteplacement#1{\@ifundefined{pcol@fnlayout@#1}%
{\PackageError{paracol}{Unknown footnote layout specifier #1}}%
{\@nameuse{pcol@fnlayout@#1}}}
\def\pcol@fnlayout@c{\global\pcol@scfnotefalse \global\pcol@mgfnotefalse
@@ -17892,9 +17941,20 @@
\let\multicolumnfootnotes\pcol@fnlayout@c
\let\singlecolumnfootnotes\pcol@fnlayout@p
\let\mergedfootnotes\pcol@fnlayout@m
+\@ifundefined{footnotelayout}{%
+ \let\footnotelayout\footnoteplacement
+ \AddToHook{package/footmisc/before}{\let\footnotelayout\relax}%
+}{}
+\AddToHook{package/footmisc/before}{\PackageNoteNoLine{paracol}{%
+ With footmisc loaded, paracol's
+ \string\footnotelayout\space will be unavailable. Please use the
+ equivalent \string\footnoteplacement\space instead.\MessageBreak
+ Also note, that paracol's and footmisc's footnote handling may crash%
+}}
% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}
%
% \KeepSpace{2}
% \begin{macro}{\@footnotetext}
@@ -17925,7 +17985,7 @@
% $p=\!\pcol@page!$ which could be less than that of the page in which the
% footnoted text appears because the paragraph having the text will have a
% page break before the text. Therefore, $p$ for the footnote can be
-% $\ptop$, but this misjudment will not cause problems because the footnote
+% $\ptop$, but this misjudgment will not cause problems because the footnote
% will eventually be put in $\ptop$ through $\df$ when the page break
% occurs.
%
@@ -17986,13 +18046,16 @@
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
- \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize \ifpcol@scfnote \textwidth \else \columnwidth \fi
- \@parboxrestore
- \protected@edef\@currentlabel{\p@footnote\@thefnmark}%
+ \def\@currentcounter{footnote}%
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
\color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \par
\color@endgroup}%
\@tempdima\ht\@tempboxa \advance\@tempdima\dp\@tempboxa
\@tempdimb\textheight \advance\@tempdimb-\skip\footins
@@ -18047,7 +18110,7 @@
% 
% The macros \!\pcol@footnoterule!, \!\pcol@@footnote!,
% \!\pcol@@footnotemark! and \!\pcol@@footnotetext! are to keep the original
-% defitions of \!\footnoterule!, \!\footnote!, \!\footnotemark! and
+% definitions of \!\footnoterule!, \!\footnote!, \!\foot~note~mark! and
% \!\footnotetext! in them, respectively, so that we define our own versions
% with references to the originals.
% 
@@ -18211,7 +18274,7 @@
% the emulation of \cs{marginnote}.}
% \begin{macro}{\pcol@@marginpar}
% \changes{v1.35-3}{2018/12/31}
-% {Introduced to keep the orginal version of \cs{marginpar} for
+% {Introduced to keep the original version of \cs{marginpar} for
% the emulation of \cs{marginnote}.}
% \begin{macro}{\@mn@@marginnote}
% \changes{v1.35-3}{2018/12/31}
@@ -18235,7 +18298,7 @@
% \cs{@xympar} for the emulation of \cs{marginnote}.}
% \begin{macro}{\pcol@@xympar}
% \changes{v1.35-3}{2018/12/31}
-% {Introduced to keep the orginal version of \cs{@xympar} for the
+% {Introduced to keep the original version of \cs{@xympar} for the
% emulation of \cs{marginnote}.}
% \begin{macro}{\pcol@mparoffset}
% \changes{v1.35-3}{2018/12/31}
@@ -18253,7 +18316,7 @@
% \item
% \!\marginpar! is made \!\let!-equal to our own version \!\pcol@marginpar!
% in \!\pcol@zparacol! so that it \!\let! the macro \!\pcol@mparoffset! be
-% \!\z@! and then invoke \LaTeX's origincal version kept in
+% \!\z@! and then invoke \LaTeX's original version kept in
% \!\pcol@@marginpar!, because the marginal note given by \!\marginpar! will
% not be shifted.
%
@@ -18264,7 +18327,7 @@
% \!\pcol@marginnote! in \!\pcol@zparacol! so that it |\def|ines
% \!\pcol@mparoffset! to have $\arg{voffset}$ and then invoke
% \!\pcol@@marginpar!\oarg{left}\~\marg{right} for the emulation. In the
-% invokation, \textsf{marginnote}'s typesetting macros \!\margin~font!,
+% invocation, \textsf{marginnote}'s typesetting macros \!\margin~font!,
% \!\raggedleftmarginnote! and \!\raggedrightmarginnote! are attached to
% $\arg{left}$ and $\arg{right}$.
%
@@ -18278,7 +18341,7 @@
% 
% In addition, we raise a warning that \!\marginnote! is emulated by
% \!\pcol@mn@warning!, which is made \!\let!-equal to \!\relax! in the caller
-% \!\pcol@marginnote! after the invokation so that the warning message is
+% \!\pcol@marginnote! after the invocation so that the warning message is
% put just once.
% 
% \begin{macrocode}
@@ -18369,8 +18432,8 @@
%
% Note that backward-compatible API macros
% \!\swapcolumninevenpages! and \!\noswapcolumn~inevenpages! are still
-% availabel to turn $\CSIndex{ifpcol@swapcolumn}$ $\true$ an $\false$
-% respectivey.
+% available to turn $\CSIndex{ifpcol@swapcolumn}$ $\true$ an $\false$
+% respectively.
% 
% \begin{macrocode}
%% Column Swapping
@@ -18401,14 +18464,14 @@
% {Introduced to convert column ordinal and its position.}
% \changes{v1.3-2}{2013/09/17}
% {Add two arguments $C^0$ and $C^1$ as the third and fourth ones to
-% modifiy the calculation of $c_2$ with them for column-swapping with
+% modify the calculation of $c_2$ with them for column-swapping with
% parallel-paging.}
% \changes{v1.3-3}{2013/09/17}
% {Add the assignment of \cs{pcol@colsepid} to let it have $c_2-1$ if
% swapped or $c_2$ otherwise.}
% \changes{v1.3-4}{2013/09/17}
% {Add a user \cs{pcol@addmarginpar} and remove \cs{paracol},
-% \cs{pcol@sptxt} and \cs{pcol@switchcol}.}
+% \cs{pcol@sptext} and \cs{pcol@switchcol}.}
% \begin{macro}{\pcol@colsepid}
% \changes{v1.3-3}{2013/09/17}
% {Introduced to be let have $c_2-1$ if swapped or $c_2$ otherwise by
@@ -18458,7 +18521,7 @@
% \KeepSpace{2}
% \begin{macro}{\marginparthreshold}
% \changes{v1.3-4}{2013/09/17}
-% {Introduced to spacify the smallest ordinal of columns whose marginal
+% {Introduced to specify the smallest ordinal of columns whose marginal
% notes go to the right margin if not swapped.}
% \begin{macro}{\pcol@marginparthreshold}
% \changes{v1.3-4}{2013/09/17}
@@ -18489,7 +18552,7 @@
% The macro \!\def!ines \!\pcol@mpthreshold@l! to let it have $t_l$ after a
% assigning $t_l$ to \!\@tempcnta! to ensure $t_l$ gives some number, and
% then do the same for \!\pcol@mpthreshold@r! with $t_r$ by
-% \!\pcol@marginparthreshold! if $t_r$ is provided, or let the marco have
+% \!\pcol@marginparthreshold! if $t_r$ is provided, or let the macro have
% $t_l$ otherwise. Note that at the top level we do
% \!\marginparthreshold!|{1}| to give defaults. Also note that
% \!\pcol@mpthreshold@l! and \!\pcol@mpthreshold@r! are referred to solely
@@ -18513,7 +18576,7 @@
% \label{sec:imp-commcolor}
% \changes{v1.3-6}{2013/09/17}
% {Add the section ``Commands for Text Coloring'' to distinguish
-% macros inside and outside \cs{output} routine and describe latters
+% macros inside and outside \cs{output} routine and describe the latter
% in this section.}
%
% \begin{macro}{\columncolor}
@@ -18604,7 +18667,7 @@
% \changes{v1.34}{2018/05/07}
% {Remove the invocations of \cs{pcol@iicolumncolor} for
% $\cs{pcol@columncolor@shadow}\cdot c$ because it no longer exists,
-% completly change the opearations in the case the target column $c$
+% completely change the operations in the case the target column $c$
% is the current one according to the new method with \cs{insert},
% and add immediate setting of $\gamma_0^c$ in the case $c$ is not
% current.}
@@ -18809,7 +18872,7 @@
% reestablishing in \!\columncolor! and \!\normalcolumncolor!. Since this
% push is done non-\!\global!ly with \!\edef!, we save\slash restore the
% definition of \!\@elt! to\slash from \Midx{\!\pcol@elt@save!} before\slash
-% after the push, resepctively\footnote{
+% after the push, respectively\footnote{
% 
% Just in case.}.
% 
@@ -18990,7 +19053,7 @@
%
% \begin{macro}{\colseprulecolor}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced to spcify the colors of column-separating rules.}
+% {Introduced to specify the colors of column-separating rules.}
% \begin{macro}{\pcol@defcseprulecolor@x}
% \changes{v1.3-3}{2013/09/17}
% {Introduced to implement \cs{colseprulecolor}.}
@@ -19002,7 +19065,7 @@
% {Introduced to implement \cs{colseprulecolor}.}
% \begin{macro}{\normalcolseprulecolor}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced to spcify that color of column-separating rules is normal.}
+% {Introduced to specify that color of column-separating rules is normal.}
% \begin{macro}{\pcol@defcseprulecolor@i}
% \changes{v1.3-3}{2013/09/17}
% {Introduced to implement \cs{colseprulecolor} and
@@ -19026,7 +19089,7 @@
% optional argument $\arg{mode}$ to invoke \!\pcol@defcseprulecolor! with
% argument \marg{cmd}${}={}$\!\color!\oarg{mode}\marg{color} so that this
% macro invokes $\!\pcol@defcseprulecolor@i!\ARg{cmd}|[|c|]|$ where
-% $c=\emptyset$ if the optional arguemnt $c$ is not provided.
+% $c=\emptyset$ if the optional argument $c$ is not provided.
%
% The macro $\!\normalcolseprulecolor!|[|c|]|$, on the other hand, defines
% $|\pcol@colseprule|\~|color|[{\cdot}c]$
@@ -19108,7 +19171,7 @@
% {Introduced to implement \cs{backgroundcolor} and
% \cs{nobackgroundcolor}.}
% \changes{v1.31}{2013/10/10}
-% {Fix the mispell ``colorling'' in the error message.}
+% {Fix the misspelling ``colorling'' in the error message.}
% \begin{macro}{\pcol@backgroundcolor@i}
% \changes{v1.3-3}{2013/09/17}
% {Introduced to implement \cs{backgroundcolor} and
@@ -19149,7 +19212,7 @@
% |(|x_0|,|y_0|)(|x_1|,|y_1|)|
% \end{eqnarray*}
% % 
-% On the other hand, the counteraprt macro
+% On the other hand, the counterpart macro
% \!\nobackgroundcolor!\marg{region} undefines the color of $\arg{region}$.
% Both macros invoke \!\pcol@backgroundcolor! giving all arguments to it to
% parse the argument $\arg{region}$, after letting
@@ -19180,7 +19243,7 @@
% invokes $\!\pcol@backgroundcolor@i!|[|c|]|$ or \!\pcol@backgroundcolor@ii!
% according to the provision of the optional argument $|[|c|]|$, after
% \!\def!ining $a'=\Midx{\!\pcol@bg@region!}$ to be $a$. Then
-% \!\pcol@backgroundcolor@i! examines if $|\pcol@bg@|\~|mayhavecol@|{\cdot}a$
+% \!\pcol@backgroundcolor@i! examines if \!\pcol@bg@may~have~col@!${\cdot}a$
% 
% \SpecialIndex{\pcol@bg@mayhavecol@c}\SpecialIndex{\pcol@bg@mayhavecol@C}
% \SpecialIndex{\pcol@bg@mayhavecol@g}\SpecialIndex{\pcol@bg@mayhavecol@G}
@@ -19332,8 +19395,8 @@
% Then \!\pcol@backgroundcolor@wi! throw all arguments away and lets
% $|\pcol@bg@color@|{\cdot}a'\~=\!\relax!$ so that the region $a'$ is
% untouched in \bgpaint{} macros. Note that since
-% $a'=|xx|$ being an absolutely non-exsistent region when this macro is used
-% for error recovery, undefining \pcol@bg@color@xx is not harmful.
+% $a'=|xx|$ being an absolutely non-existent region when this macro is used
+% for error recovery, undefining \!\pcol@bg@color@xx! is not harmful.
% 
% \begin{macrocode}
\def\pcol@backgroundcolor@z#1\@nil{\pcol@backgroundcolor@wi[]{}}
@@ -19368,7 +19431,7 @@
% are used in \!\pcol@background~color@i! when the region specifier $a$ in
% $\arg{region}$ argument of \!\backgroundcolor! or \!\noback~groundcolor! is
% followed by optional $|[|c|]|$, so that the invoker macro examines if $a$
-% can have the optional column oridinal.
+% can have the optional column ordinal.
% 
% \SpecialArrayMainIndex{a}{\pcol@bg@mayhavecol@}
% 
@@ -19403,7 +19466,7 @@
% The macro at first lets \!\@tempdima! have $e$ to confirm $e$ is a proper
% dimension and then \!\xdef!ines
% $|\pcol@bg@ext@|{\cdot}d{\cdot}|@|{\cdot}a'$ to let it have the integer
-% representaion of $e$ followed by |sp|.
+% representation of $e$ followed by |sp|.
% 
% \SpecialArrayMainIndex{d{\cdot}\string\texttt{@}{\cdot}a}{\pcol@bg@ext@}
% \SpecialArrayMainIndex
@@ -19422,7 +19485,7 @@
%
% \begin{macro}{\resetbackgroundcolor}
% \changes{v1.3-3}{2013/09/17}
-% {Introduced to disable background-paiting for all regions.}
+% {Introduced to disable background-painting for all regions.}
% \begingroup \let\SMALL\small \let\small\footnotesize
% \begin{macro}{\pcol@resetbackgroundcolor}
% \changes{v1.3-3}{2013/09/17}
@@ -19469,7 +19532,7 @@
% adjustment.}
% \changes{v1.2-5}{2013/05/11}
% {Remove \cs{global} assignment of \cs{hsize} and \cs{linewidth}
-% because assigments of them in \string\texttt{paracol} are now
+% because assignments of them in \string\texttt{paracol} are now
% perfectly local.}
% \changes{v1.31}{2013/10/10}
% {Add saving $c$ into \cs{pcol@lastcol} to let \cs{pcol@output@end}
@@ -19485,7 +19548,9 @@
% \lcounter{} have the values for the column 0 so that they are referred to
% outside the environment, after saving the current column $c$ in
% \!\pcol@lastcol! to be referred to in \!\pcol@output@end! so that
-% $\cc_c(\sw)$ and $\cc_c(\ep)$ are passed to \postenv.
+% $\cc_c(\sw)$ and $\cc_c(\ep)$ are passed to \postenv. In \!\pcol@switchcol!,
+% we make sure, not to add the preamble for column 0 by checking whether
+% \!\pcol@lastcol! is set.
%
% \begin{Sloppy}{1800}
% Then we invoke \!\pcol@flushclear! for \pfcheck{}, turning
@@ -19546,7 +19611,7 @@
% 
% the difference means the \!\everyvbox! has been \!\global!ly updated with
% the value that \!\pcol@everyvbox! has now. Therefore if so, we
-% globally update \!\everyvbox! with \!\pcol@everyvbox! to refrect the
+% globally update \!\everyvbox! with \!\pcol@everyvbox! to reflect the
% global update in the environment.
% 
% \begin{macrocode}
@@ -19560,3 +19625,5 @@
%</paracol>
%\fi
\endinput
+
+ vi: spellcapcheck=[.?]\\_[])'"^I\ ]\\+ spell
diff --git a/macros/latex/contrib/paracol/man.dtx b/macros/latex/contrib/paracol/man.dtx
index f604ba24fa..5582afbacc 100644
--- a/macros/latex/contrib/paracol/man.dtx
+++ b/macros/latex/contrib/paracol/man.dtx
@@ -97,9 +97,9 @@
%
% \switchcolumn*[\section{Basic Usage}]
% Loading the package is very simple. What you have to do is
-% \!\usepackage!|{|\Uidx{\env{paracol}}|}| in the preamble. Note that
-% \textsf{paracol} can be used with \LaTeXe{} and does not work with
-% \LaTeX{} 2.09.
+% \!\usepackage!|{|\Uidx{\env{paracol}}|}| in the preamble. Or write
+% \!\usepackage!|{|\Uidx{\env{paracol}}|}[=2018-12-31]| to get the last
+% version authored by Hiroshi Nakashima, if this is your wish.
%
% \switchcolumn
%
@@ -326,7 +326,7 @@
%\end{leftcolumn*}
%\begin{rightcolumn}
%\end{Verbatim}
-% \textit{source and a \texttt{figure} env}\\
+% \textit{source and a \texttt{figure} environment}\\
% |\end{rightcolumn}|
% \begin{figure}[t]\nosv
% \def\arraystretch{0.8}
@@ -745,7 +745,7 @@
% Sondern la{\ss}t uns angenehmere anstimmen und freu\-denvollere
% \footnote{If I had been a good student in my German class, I could find
% the German translation of the right column footnote \ref{fn:right4} is
-% ``Dieser Teil wurde van Beethoven hinzugef\"ugt'' by myself without
+% ``Dieser Teil wurde von Beethoven hinzugef\"ugt'' by myself without
% the kind help from a user.}.
% \end{Gverse}
% \begin{Everse}
@@ -861,3 +861,5 @@
% \label{page:efreude}
% \endgroup
\endinput
+
+ vi: spellcapcheck=[.?]\\_[])'"^I\ ]\\+ spell
diff --git a/macros/latex/contrib/paracol/paracol-2018-12-31.sty b/macros/latex/contrib/paracol/paracol-2018-12-31.sty
new file mode 100644
index 0000000000..fb4c1a7ae2
--- /dev/null
+++ b/macros/latex/contrib/paracol/paracol-2018-12-31.sty
@@ -0,0 +1,2894 @@
+%% Style file `paracol'.
+%% Copyright (C) 2005-2018
+%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
+%% (Kyoto University)
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{paracol}
+[2018/12/31 v1.35 ]
+
+%% Register Declaration
+
+\newcount\pcol@currcol \global\pcol@currcol\z@
+\newcount\pcol@nextcol
+\newcount\pcol@ncol \global\pcol@ncol\z@
+\newcount\pcol@ncolleft \global\pcol@ncolleft\z@
+\newcount\pcol@page
+\newcount\pcol@basepage
+\newcount\pcol@toppage
+\newcount\pcol@footnotebase
+\newcount\pcol@nfootnotes
+\newcount\pcol@mcid
+\newif\ifpcol@output \global\pcol@outputfalse
+\newif\ifpcol@nospan
+\newif\ifpcol@sync \pcol@syncfalse
+\newif\ifpcol@sptextstart \pcol@sptextstartfalse
+\newif\ifpcol@sptext \pcol@sptextfalse
+\newif\ifpcol@clear \pcol@clearfalse
+\newif\ifpcol@flush
+\newif\ifpcol@outputflt
+\newif\ifpcol@lastpage
+\newif\ifpcol@lastpagesave
+\newif\ifpcol@scfnote \pcol@scfnotefalse
+\newif\ifpcol@mgfnote \pcol@mgfnotefalse
+\newif\ifpcol@fncounteradjustment \pcol@fncounteradjustmentfalse
+\newif\ifpcol@inner
+\newif\ifpcol@firstpage
+\newif\ifpcol@havelastpage \global\pcol@havelastpagefalse
+\newif\ifpcol@paired \global\pcol@pairedtrue
+\newif\ifpcol@swapcolumn \global\pcol@swapcolumnfalse
+\newif\ifpcol@swapmarginpar \global\pcol@swapmarginparfalse
+\newif\ifpcol@bg@swap \global\pcol@bg@swapfalse
+\newif\ifpcol@bg@@swap
+\newif\ifpcol@bg@painted
+\newif\ifpcol@bfbottom
+\def\reserved@a{pLaTeX2e}
+\ifx\reserved@a\pfmtname \pcol@bfbottomfalse \else \pcol@bfbottomtrue \fi
+\newif\ifpcol@dfloats
+\newdimen\pcol@prevdepth
+\newdimen\pcol@colht
+\newdimen\pcol@textfloatsep
+\newdimen\pcol@lrmargin
+\newdimen\pagerim \pagerim\z@
+\newskip\pcol@topskip
+\newskip\belowfootnoteskip \belowfootnoteskip\z@
+\newbox\pcol@topfnotes
+\newbox\pcol@prespan \setbox\pcol@prespan\box\voidb@x
+\newbox\pcol@rightpage \global\setbox\pcol@rightpage\box\voidb@x
+\newbox\pcol@colorstack@saved
+\newbox\pcol@tempboxa
+\newbox\pcol@tempboxb
+\newinsert\pcol@colorins
+\count\pcol@colorins\z@ \skip\pcol@colorins\z@ \dimen\pcol@colorins\maxdimen
+\newtoks\pcol@everyvbox
+
+%% Logging Tools
+
+\def\pcol@ShowBox#1{%
+ \ifvoid#1\message{(VOID)}%
+ \else
+ \message{(\the\ht#1+\the\dp#1)x(\the\wd#1)}%
+ {\vfuzz\z@ \showboxdepth\@M \showboxbreadth\@M
+ \setbox\z@\vbox to\z@{\ifdim\ht#1=\z@ \vskip1\p@\fi \copy#1}}%
+ \fi}
+\def\pcol@LogLevel#1#2#3{%
+ \pcol@iLogLevel{#1}{pcol@Log}%
+ \pcol@iLogLevel{#2}{pcol@Logstart}%
+ \pcol@iLogLevel{#2}{pcol@Logend}%
+ \pcol@iLogLevel{#3}{pcol@Logfn}}
+\def\pcol@iLogLevel#1#2{%
+ \expandafter\let\expandafter\reserved@a
+ \csname #2@\romannumeral#1\endcsname
+ \expandafter\let\csname #2\endcsname\reserved@a}
+\def\pcol@Log@iii#1#2#3{\message{\string#1{#2%
+ (\number\pcol@page:\number\pcol@currcol/\number\pcol@toppage)}}%
+ \pcol@ShowBox#3\message{end\string#1}}
+\def\pcol@Log@ii#1#2#3{\message{\string#1{#2%
+ (\number\pcol@page:\number\pcol@currcol/\number\pcol@toppage)}=\the\ht#3}}
+\def\pcol@Log@i#1#2#3{}
+\def\pcol@Logstart@ii#1{\message{S\string#1}}
+\def\pcol@Logend@ii#1{\message{E\string#1}}
+\def\pcol@Logstart@i#1{}
+\def\pcol@Logend@i#1{}
+\def\pcol@Logfn@ii#1{\message{\string#1}}
+\def\pcol@Logfn@i#1{}
+\pcol@LogLevel111
+
+\iffalse
+\newwrite\pcol@F@write
+\immediate\openout\pcol@F@write\jobname.fls
+\fi
+\def\pcol@F#1{\pcol@FF{#1}{}}
+\def\pcol@FF#1#2{\pcol@F@count
+ \immediate\write\pcol@F@write{#1(\number\pcol@page:\number\pcol@currcol/%
+ \number\pcol@toppage:\number\c@page)=\pcol@F@n #2}}
+\def\pcol@F@count{{\@tempcnta\z@
+ \def\@elt##1{\advance\@tempcnta\@ne}\@freelist
+ \xdef\pcol@F@n{\number\@tempcnta}}}
+\let\pcol@Fb\pcol@F@count
+\def\pcol@Fe#1{{\let\reserved@a\pcol@F@n \pcol@FF{#1}{<=\reserved@a}}}
+\let\pcol@F\@gobble
+\let\pcol@Fb\relax
+\let\pcol@Fe\@gobble
+
+%% \output Routine
+
+\def\pcol@ovf{%
+ \PackageError{paracol}{Too many unprocessed columns/floats}\@ehb}
+
+\def\pcol@output{\let\par\@@par \let\set@color\pcol@set@color
+ \global\pcol@mcid\z@
+ \pcol@Logstart{\pcol@output\number\outputpenalty
+ (\number\c@page:\number\pcol@currcol)}%
+ \ifnum\outputpenalty<-\@M
+ \pcol@specialoutput
+ \else\ifpcol@output
+ \pcol@makecol
+ \pcol@opcol
+ \pcol@startcolumn\@ne
+ \@whilesw\if@fcolmade\fi{\pcol@opcol \pcol@startcolumn\@ne}%
+ \else
+ \@twocolumnfalse \let\@combinefloats\pcol@@combinefloats
+ \@makecol
+ \@opcol
+ \@startcolumn
+ \@whilesw\if@fcolmade\fi{\@opcol \@startcolumn}%
+ \fi\fi
+ \global\maxdepth\@maxdepth
+ \ifnum\outputpenalty>-\@Miv
+ \ifdim\@colroom<1.5\baselineskip
+ \ifdim\@colroom<\textheight
+ \ifpcol@sptextstart
+ \global\vsize\@colroom
+ \else
+ \@latex@warning@no@line{Text page \thepage\space
+ contains only floats}%
+ \@emptycol
+ \fi
+ \else
+ \global\vsize\@colroom
+ \fi
+ \else
+ \global\vsize\@colroom
+ \fi
+ \else
+ \global\vsize\maxdimen
+ \fi
+ \pcol@Logend\pcol@output}
+
+%% Completing Column-Page
+
+\def\pcol@@makecol#1{\@makecol
+ \setbox\@outputbox\vbox to\@colht{\boxmaxdepth#1\unvbox\@outputbox}}
+\def\pcol@makecol{\let\pcol@textbottom\@textbottom
+ \ifdim\pcol@textfloatsep=\maxdimen\else
+ \def\@textbottom{\vskip\z@\@plus.0001fil\@minus.0001fil}\fi
+ \ifpcol@sptext \ifnum\pcol@currcol=\z@
+ \pcol@getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+ \setbox\@tempboxa\vbox{\unvcopy\@cclv}%
+ \@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
+ \ifdim\@tempdimb>\z@
+ \@tempdimb\ht\@cclv \advance\@tempdimb\dp\@cclv
+ \dimen@\ht\pcol@prespan \pcol@addflhd\@toplist\pcol@textfloatsep
+ \@cons\pcol@sptextlist{{\number\dimen@}{\number\@tempdimb}}%
+ \fi
+ \pcol@defcurrpage{\number\@tempcnta}\pcol@spanning\pcol@footins
+ {\pcol@sptextlist}{\pcol@mparbottom}%
+ \setbox\@cclv\vbox{\unvbox\pcol@prespan \pcol@shiftspanning\@cclv
+ \unvbox\@cclv}%
+ \fi\fi
+ \def\pcol@currfoot{\voidb@x}%
+ \ifpcol@scfnote \ifvoid\footins\else
+ \pcol@shrinkcolbyfn\@colht\footins\relax
+ \setbox\@cclv\vbox{\pcol@unvbox@cclv\footins}%
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@Log\pcol@makecol{save}\footins
+ \pcol@Fb
+ \pcol@savefootins\pcol@currfoot
+ \pcol@Fe{makecol(pagefn)}%
+ \else
+ \pcol@Log\pcol@makecol{discard}\footins
+ \setbox\@tempboxa\box\footins
+ \fi
+ \fi\fi
+ \pcol@Logstart\pcol@makecol
+ \ifvoid\footins\else \pcol@Log\@makecol{put}\footins \fi
+ \@makecol
+ \pcol@Logend\pcol@makecol
+ \let\@textbottom\pcol@textbottom}
+\def\pcol@combinefloats{%
+ \global\maxdepth\@maxdepth
+ \ifx\@toplist\@empty\else
+ \ifdim\pcol@textfloatsep=\maxdimen \@cflt \else \pcol@cflt \fi
+ \fi
+ \ifx\@botlist\@empty\else
+ \ifdim\pcol@textfloatsep=\maxdimen \@cflb
+ \else
+ \setbox\@outputbox\vbox{\unvbox\@outputbox
+ \vskip\z@\@plus.0001fil\@minus.0001fil}%
+ \@cflb
+ \setbox\@outputbox\vbox{\unvbox\@outputbox
+ \vskip\z@\@plus-.0001fil\@minus-.0001fil}%
+ \fi
+ \ifpcol@lastpage
+ \setbox\@outputbox\vbox{\box\@outputbox \vskip\textfloatsep}%
+ \fi
+ \fi}
+\def\pcol@cflt{%
+ \let\@elt\@comflelt
+ \setbox\@tempboxa\vbox{}%
+ \@toplist
+ \setbox\@outputbox\vbox{%
+ \boxmaxdepth\@maxdepth
+ \box\@tempboxa
+ \vskip-\floatsep
+ \ifdim\pcol@textfloatsep>5000\p@
+ \advance\pcol@textfloatsep-\@M\p@
+ \else
+ \topfigrule
+ \fi
+ \vskip\pcol@textfloatsep
+ \unvbox\@outputbox}%
+ \let\@elt\relax
+ \pcol@Fb
+ \xdef\@freelist{\@freelist\@toplist}%
+ \pcol@Fe{cflt}%
+ \global\let\@toplist\@empty}
+
+\def\pcol@opcol{%
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox to\@colht{%
+ \boxmaxdepth\@maxdepth
+ \pcol@clearcst@unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{opcol}%
+ \expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
+ \ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
+ \pcol@nextpage
+ \pcol@checkshipped
+ \if@tempswa \pcol@outputcolumns\z@ \fi
+ \ifnum\pcol@page>\pcol@toppage \pcol@startpage
+ \else \pcol@getcurrpage
+ \fi
+ \pcol@floatplacement}
+
+\def\pcol@setpageno{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \let\@elt\relax \edef\reserved@a{\pcol@pages\pcol@currpage}%
+ \global\let\pcol@pages\@empty \global\let\pcol@currpage\@empty
+ \let\@elt\pcol@setpnoelt \reserved@a
+ \endgroup}
+\def\pcol@setpnoelt#1#2#3#4#5{%
+ {\let\@elt\relax \xdef\pcol@pages{\pcol@pages\pcol@currpage}}%
+ \ifnum\@tempcnta>\z@ \gdef\pcol@currpage{\@elt{#1}#2#3{#4}{#5}}%
+ \else \pcol@defcurrpage{\number\c@page}{#2}{#3}{#4}{#5}%
+ \advance\c@page\@ne
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \fi
+ \advance\@tempcnta\m@ne}
+\def\pcol@defcurrpage#1#2#3#4#5{{%
+ \let\@elt\relax \xdef\pcol@currpage{\@elt{#1}#2#3{#4}{#5}}}}
+
+\def\pcol@nextpage{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \@tempswatrue
+ \let\@elt\pcol@nextpelt \pcol@pages
+ \global\advance\pcol@page\@ne
+ \endgroup}
+\def\pcol@nextpelt#1#2#3#4#5{%
+ \ifnum\@tempcnta<\z@
+ \ifvoid#2\@tempswafalse
+ \else\ifdim\dimen#2<\z@
+ \if@tempswa \global\advance\pcol@page\@ne \fi
+ \else \@tempswafalse
+ \fi\fi
+ \fi
+ \advance\@tempcnta\m@ne}
+
+\def\pcol@checkshipped{\@tempswatrue
+ \@tempcnta\z@ \@whilenum\@tempcnta<\pcol@ncol\do{%
+ \expandafter\ifx\csname pcol@shipped\number\@tempcnta\endcsname\@empty
+ \@tempswafalse \fi
+ \advance\@tempcnta\@ne}}
+
+\def\pcol@getcurrpage{\begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \let\@elt\pcol@getpelt \pcol@pages\pcol@currpage
+ \endgroup}
+\def\pcol@getpelt#1#2#3#4#5{%
+ \ifnum\@tempcnta=\z@
+ \pcol@getpinfo{#1}#2#3{#4}{#5}%
+ {\global\c@page}{\global\@colht}{\global\topskip}%
+ \fi
+ \advance\@tempcnta\m@ne}
+\def\pcol@getpinfo#1#2#3#4#5#6#7#8{\pcol@nospantrue
+ \gdef\pcol@spanning{#2}\gdef\pcol@footins{#3}\gdef\pcol@sptextlist{#4}%
+ \gdef\pcol@mparbottom{#5}%
+ #6#1\relax
+ \ifvoid#2\relax #7\textheight #8\pcol@topskip
+ \else #7\dimen#2\relax #8\skip#2\relax \pcol@nospanfalse
+ \fi}
+\def\pcol@getcurrpinfo{%
+ \edef\reserved@a{\expandafter\@cdr\pcol@currpage\@nil}%
+ \expandafter\pcol@getpinfo\reserved@a}
+
+\def\pcol@floatplacement{%
+ \global\@textfloatsheight\z@ \global\pcol@textfloatsep\maxdimen
+ \@floatplacement}
+
+%% Starting New Page
+
+\def\pcol@startpage{%
+ \global\let\pcol@firstprevdepth\relax
+ \global\pcol@toppage\pcol@page
+ \ifx\pcol@currpage\@empty\else
+ \pcol@getcurrpinfo{\global\c@page}\@tempdima\@tempskipa
+ \@cons\pcol@pages
+ {{\number\c@page}\pcol@spanning\pcol@currfoot
+ {\pcol@sptextlist}{\pcol@mparbottom}}%
+ \stepcounter{page}\ifpcol@paired\else \stepcounter{page}\fi
+ \fi
+ \global\@colht\textheight
+ \global\topskip\pcol@topskip
+ \@dblfloatplacement \let\f@depth\z@
+ \@tryfcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade\fi{%
+ \pcol@Fb
+ \@next\@currbox\@freelist{%
+ \global\setbox\@currbox\box\@outputbox}\pcol@ovf
+ \pcol@Fe{startpage(fcol)}%
+ \global\dimen\@currbox-\maxdimen
+ \global\skip\@currbox\pcol@topskip
+ \@cons\pcol@pages{{\number\c@page}\@currbox\voidb@x{}{}}%
+ \stepcounter{page}\ifpcol@paired\else \stepcounter{page}\fi
+ \global\advance\pcol@page\@ne \global\pcol@toppage\pcol@page
+ \@tryfcolumn\@dbldeferlist}%
+ \begingroup
+ \let\reserved@b\@dbldeferlist \let\reserved@c\@deferlist
+ \global\let\@dbldeferlist\@empty \global\let\@deferlist\@empty
+ \let\@elt\@sdblcolelt
+ \reserved@b
+ \let\@elt\relax \xdef\@dbldeferlist{\@dbldeferlist\@deferlist}%
+ \global\let\@deferlist\reserved@c
+ \endgroup
+ \ifx\@dbltoplist\@empty
+ \pcol@defcurrpage{\number\c@page}\voidb@x\voidb@x{}{}%
+ \else
+ \setbox\@tempboxa\vbox{}%
+ \begingroup
+ \let\@elt\@comdblflelt
+ \@dbltoplist
+ \let\@elt\relax
+ \pcol@Fb
+ \xdef\@freelist{\@freelist\@dbltoplist}%
+ \pcol@Fe{startpage(dbltop)}%
+ \global\let\@dbltoplist\@empty
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+ \unvbox\@tempboxa \vskip-\dblfloatsep \dblfigrule
+ \vskip\dbltextfloatsep}}\pcol@ovf
+ \pcol@Fe{startpage(spanning)}%
+ \global\dimen\@currbox\@colht
+ \global\skip\@currbox\pcol@topskip
+ \pcol@defcurrpage{\number\c@page}\@currbox\voidb@x{}{}%
+ \endgroup
+ \fi
+ \gdef\pcol@footins{\voidb@x}}
+
+%% Shipping Page Out
+
+\def\pcol@outputcolumns#1{\begingroup
+ \def\@elt{\pcol@outputelt#1}\@tempswatrue \pcol@outputflttrue
+ \let\reserved@b\pcol@pages \gdef\pcol@pages{}%
+ \reserved@b
+ \endgroup}
+\def\pcol@outputelt#1#2#3#4#5#6{%
+ \setbox\@outputbox\box\voidb@x
+ \pcol@getpinfo{#2}#3#4{#5}{#6}\c@page\@tempdima\@tempskipa
+ \ifdim\@tempdima<\z@
+ \ifpcol@outputflt
+ \def\pcol@bg@floatheight{\pcol@bg@textheight}%
+ \setbox\@outputbox\vbox to\textheight{%
+ \pcol@bg@paintbox{Ff}\unvbox\pcol@spanning}%
+ \pcol@Fb
+ \@cons\@freelist\pcol@spanning
+ \pcol@Fe{outputelt(spanning)}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \setbox\pcol@rightpage\vbox to\textheight{%
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \pcol@bg@paintbox{Ff}\vfil}%
+ \fi
+ \else
+ \@cons\pcol@pages{{#2}#3#4{#5}{#6}}%
+ \fi
+ \else\if@tempswa
+ \ifnum#1=\z@ \@tempswafalse \fi
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \pcol@Logstart{\pcol@outputelt{right}}%
+ \pcol@ioutputelt\pcol@ncolleft\pcol@ncol\pcol@rightpage
+ \pcol@Logend{\pcol@outputelt{right}}%
+ \fi
+ \pcol@Logstart{\pcol@outputelt{left}}%
+ \pcol@ioutputelt\z@\pcol@ncolleft\@outputbox
+ \pcol@Logend{\pcol@outputelt{left}}%
+ \global\pcol@firstpagefalse
+ \else
+ \pcol@outputfltfalse
+ \@cons\pcol@pages{{#2}#3#4{#5}{#6}}%
+ \fi\fi
+ \ifvoid\@outputbox\else
+ \global\advance\pcol@basepage\@ne \@outputpage
+ \fi}
+
+\def\pcol@ioutputelt#1#2#3{\setbox#3\vbox to\textheight{%
+ \ifpcol@paired\else\ifnum#1=\z@\else \advance\c@page\@ne \fi\fi
+ \ifvoid\pcol@footins\else
+ \def\pcol@bg@footnoteheight{\@elt{\ht\pcol@footins}\@elt{\dp\pcol@footins}}%
+ \pcol@bg@paintbox{Nn}%
+ \pcol@shrinkcolbyfn\@tempdima\pcol@footins\relax
+ \fi
+ \ifpcol@nospan\else
+ \def\pcol@bg@floatheight{%
+ \@elt{\ht\pcol@spanning}\@elt{\dp\pcol@spanning}}%
+ \@tempdimb\ht\pcol@spanning \advance\@tempdimb\dp\pcol@spanning
+ \ifnum#1=\z@
+ \ifpcol@firstpage\else \pcol@bg@paintbox{Ff}\fi
+ \pcol@Fb
+ \@cons\@freelist\pcol@spanning \unvbox\pcol@spanning
+ \pcol@Fe{ioutputelt(spanning)}%
+ \else\ifpcol@firstpage
+ \ht\pcol@rightpage\ht\pcol@spanning
+ \dp\pcol@rightpage\dp\pcol@spanning
+ \box\pcol@rightpage \nointerlineskip
+ \else
+ \pcol@bg@paintbox{Ff}\pcol@phantom\pcol@spanning \nointerlineskip
+ \fi\fi
+ \advance\topmargin\@tempdimb
+ \fi
+ \pcol@buildcolseprule\@tempdima#1#2\@maxdepth \unvbox\@tempboxa
+ \hb@xt@\textwidth{%
+ \let\pcol@@hfil\relax
+ \@tempcnta#1\relax \@whilenum\@tempcnta<#2\do{%
+ \pcol@swapcolumn\@tempcnta\@tempcntb#1#2\relax
+ \expandafter\@next\expandafter\@currbox
+ \csname pcol@shipped\number\@tempcntb\endcsname
+ \relax{\let\@currbox\voidb@x}%
+ \ifvoid\@currbox\else
+ \pcol@Fb
+ \@cons\@freelist\@currbox
+ \pcol@Fe{ioutputelt(page)}%
+ \fi
+ \expandafter\@tempdima
+ \csname pcol@columnwidth\number\@tempcntb \endcsname
+ \pcol@@hfil \hb@xt@\@tempdima{\box\@currbox\hss}%
+ \edef\pcol@@hfil{\noexpand\pcol@hfil{\pcol@colsepid}}%
+ \advance\@tempcnta\@ne}}%
+ \ifvoid\pcol@footins\else
+ \ifnum#1=\z@
+ \pcol@Log\pcol@outputelt{output}\pcol@footins
+ \pcol@putfootins\pcol@footins
+ \pcol@Fb
+ \@cons\@freelist\pcol@footins
+ \pcol@Fe{ioutputelt(footins)}%
+ \else
+ \vskip\skip\pcol@footins \nointerlineskip
+ \pcol@phantom\pcol@footins \vskip\z@
+ \fi
+ \fi
+ \boxmaxdepth\@maxdepth}}
+\def\pcol@phantom#1{{%
+ \setbox\@tempboxa\vbox{}\ht\@tempboxa\ht#1\dp\@tempboxa\dp#1\box\@tempboxa}}
+
+\def\pcol@buildcolseprule#1#2#3#4{%
+ \@tempdima#1\relax \dimen@#4\relax
+ \let\pcol@bg@from#2\relax \let\pcol@bg@to#3\relax
+ \setbox\pcol@tempboxa\vbox{}\setbox\@tempboxa\vbox{}%
+ \let\@elt\pcol@buildcselt@S \pcol@sptextlist
+ \@tempdimb\z@ \let\@elt\pcol@buildcselt \pcol@sptextlist
+ \let\@elt\relax \advance\@tempdima-\@tempdimb
+ \ifdim\@tempdima>\z@
+ \setbox\pcol@tempboxa\vbox{\unvbox\pcol@tempboxa
+ \hrule\@height\@tempdima\@width\columnseprule}%
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+ \let\@elt\relax
+ \edef\pcol@bg@columntop{\number\@tempdimb sp}%
+ \edef\pcol@bg@columnheight{%
+ \@elt{\number\@tempdima sp}\@elt{\number\dimen@ sp}}%
+ \pcol@bg@paintcolumns}%
+ \fi}
+\def\pcol@buildcselt@S#1#2{%
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+ \let\@elt\relax
+ \def\pcol@bg@spanningtop{\@elt{#1sp}}%
+ \advance\@tempdima-#1sp\relax \advance\@tempdima-#2sp\relax
+ \advance\dimen@\@tempdima
+ \edef\pcol@bg@spanningheight{\@elt{#2sp}%
+ \ifdim\@tempdima>\z@\else \@elt{\number\dimen@ sp}\fi}%
+ \pcol@bg@paintbox{S}}}
+\def\pcol@buildcselt#1#2{%
+ \@tempdimc#1sp \advance\@tempdimc-\@tempdimb
+ \setbox\pcol@tempboxa\vbox{\unvbox\pcol@tempboxa
+ \ifdim\@tempdimc>\z@ \hrule\@height\@tempdimc\@width\columnseprule \fi
+ \vskip#2sp}%
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa
+ \let\@elt\relax
+ \edef\pcol@bg@columntop{\number\@tempdimb sp}%
+ \edef\pcol@bg@columnheight{\@elt{\number\@tempdimc sp}}%
+ \ifdim\@tempdimc>\z@ \pcol@bg@paintcolumns \fi
+ \def\pcol@bg@spanningtop{\@elt{#1sp}}%
+ \advance\@tempdima-#1sp\relax \advance\@tempdima-#2sp\relax
+ \advance\dimen@\@tempdima
+ \edef\pcol@bg@spanningheight{\@elt{#2sp}%
+ \ifdim\@tempdima>\z@\else \@elt{\number\dimen@ sp}\fi}%
+ \pcol@bg@paintbox{s}}%
+ \@tempdimb#1sp \advance\@tempdimb#2sp\relax}
+
+\def\pcol@hfil#1{{%
+ \@tempdima\csname pcol@columnsep#1\endcsname\relax
+ \ifdim\columnseprule>\z@
+ \hskip.5\@tempdima\@plus1fil\relax
+ \hskip-.5\columnseprule
+ \@ifundefined{pcol@colseprulecolor#1}%
+ {\pcol@colseprulecolor}{\@nameuse{pcol@colseprulecolor#1}}%
+ \copy\pcol@tempboxa \hskip-.5\columnseprule
+ \hskip.5\@tempdima\@plus1fil\relax
+ \else \hskip\@tempdima\@plus1fil\relax
+ \fi}}
+
+\let\pcol@@outputpage\@outputpage
+\def\@outputpage{\begingroup
+ \@tempdima\topmargin \advance\@tempdima\headheight \advance\@tempdima\headsep
+ \ifpcol@output
+ \setbox\pcol@tempboxa\vtop{\vskip\@tempdima \global\pcol@bg@paintedfalse
+ \let\pcol@bg@from\z@ \let\pcol@bg@to\pcol@ncolleft
+ \pcol@bg@paintpage}%
+ \ifpcol@bg@painted \@tempswatrue \else \@tempswafalse \fi
+ \setbox\@tempboxa\vtop{\vskip\@tempdima \global\pcol@bg@paintedfalse
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \let\pcol@bg@from\pcol@ncolleft \let\pcol@bg@to\pcol@ncol
+ \pcol@bg@paintpage}%
+ \else
+ \def\reserved@a{\vskip\@tempdima \global\pcol@bg@paintedfalse
+ \ifpcol@havelastpage \ifx\set@color\relax\else
+ \pcol@bg@@paintpage \pcol@bg@@paintbox{Pp}%
+ \fi\fi}%
+ \setbox\pcol@tempboxa\vbox{%
+ \let\pcol@bg@preposttop\pcol@bg@preposttop@left
+ \let\pcol@bg@from\z@ \let\pcol@bg@to\pcol@ncolleft \reserved@a}%
+ \ifpcol@bg@painted \@tempswatrue \else \@tempswafalse \fi
+ \setbox\@tempboxa\vbox{\ifpcol@paired\else \advance\c@page\@ne \fi
+ \let\pcol@bg@preposttop\pcol@bg@preposttop@right
+ \let\pcol@bg@from\pcol@ncolleft \let\pcol@bg@to\pcol@ncol
+ \reserved@a}%
+ \ifvoid\pcol@rightpage\else
+ \pcol@Logstart{\@outputpage{rightset}}%
+ \setbox\pcol@rightpage\vbox to\textheight{\unvbox\pcol@rightpage \vfil}%
+ \pcol@Logend{\@outputpage{rightset}}%
+ \fi
+ \fi
+ \ht\pcol@tempboxa\z@ \dp\pcol@tempboxa\z@
+ \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \ifodd\c@page \pcol@swapcolumnfalse \fi
+ \ifnum\pcol@ncolleft<\pcol@ncol\else \pcol@swapcolumnfalse \fi
+ \ifpcol@output\else \ifpcol@havelastpage\else \pcol@swapcolumnfalse \fi\fi
+ \@tempcnta\c@page
+ \ifpcol@paired\else \advance\@tempcnta\@ne \pcol@swapcolumnfalse \fi
+ \ifpcol@swapcolumn \pcol@outputpage@r\c@page \pcol@outputpage@l\@tempcnta
+ \else \pcol@outputpage@l\c@page \pcol@outputpage@r\@tempcnta
+ \fi
+ \global\pcol@havelastpagefalse \gdef\pcol@bg@preposttop@left{0pt}%
+ \global\let\pcol@bg@preposttop@right\pcol@bg@preposttop@left
+ \global\let\pcol@mparbottom@out\pcol@mparbottom@zero
+ \endgroup}
+
+\def\pcol@outputpage@l#1{%
+ \pcol@Logstart{\@outputpage{left}}%
+ \global\c@page#1\relax
+ \let\@themargin\oddsidemargin
+ \if@twoside\ifodd\c@page\else \let\@themargin\evensidemargin \fi\fi
+ \if@tempswa \everyvbox{\pcol@outputpage@ev\pcol@tempboxa}\fi
+ \pcol@@outputpage
+ \pcol@Logend{\@outputpage{left}}}
+\def\pcol@outputpage@r#1{%
+ \begingroup
+ \ifvoid\pcol@rightpage\else
+ \global\c@page#1\relax
+ \let\@outputbox\pcol@rightpage
+ \pcol@Logstart{\@outputpage{right}}%
+ \let\@themargin\oddsidemargin
+ \if@twoside\ifodd\c@page\else \let\@themargin\evensidemargin \fi\fi
+ \ifpcol@bg@painted \everyvbox{\pcol@outputpage@ev\@tempboxa}\fi
+ \pcol@@outputpage
+ \pcol@Logend{\@outputpage{right}}%
+ \fi
+ \endgroup}
+\def\pcol@outputpage@ev#1{%
+ \edef\reserved@a{\meaning\yoko}\edef\reserved@b{\string\yoko}%
+ \ifx\reserved@a\reserved@b \yoko\fi
+ \moveright\@themargin\box#1\nointerlineskip \everyvbox{}%
+ \ifx\reserved@a\reserved@b \let\yoko\relax \fi}
+
+%% Starting New Column Page
+
+\def\pcol@startcolumn#1{%
+ \@tempdima\@colht \@tempdimb\z@
+ \ifvoid\pcol@footins\else
+ \pcol@shrinkcolbyfn\@colht\pcol@footins\@tempdimb
+ \fi
+ \global\@colroom\@colht
+ \@tryfcolumn\@deferlist
+ \if@fcolmade\else
+ \pcol@trynextcolumn
+ \ifpcol@scfnote \ifnum#1>\z@
+ \ifvoid\pcol@footins\else
+ \edef\pcol@currfoot{\pcol@footins}%
+ \pcol@getcurrfoot\copy
+ \pcol@Log\pcol@startcolumn{insert}\footins
+ \insert\footins{\unvbox\footins}%
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@Fb
+ \@cons\@freelist\pcol@footins
+ \pcol@Fe{startcolumn(pagefn)}%
+ \fi
+ \fi
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@deferredfootins\pcol@startcolumn \fi
+ \fi\fi
+ \fi
+ \advance\@tempdima-\@colht
+ \global\advance\@colroom\@tempdima
+ \global\advance\@colht\@tempdima
+ \pcol@savecolorstack}
+\def\pcol@trynextcolumn{\begingroup
+ \let\reserved@b\@deferlist
+ \global\let\@deferlist\@empty
+ \let\@elt\@scolelt
+ \reserved@b
+ \endgroup}
+
+%% Background Painting
+
+\let\pcol@bg@to\pcol@ncol
+\def\pcol@bg@@paintpage{%
+ \pcol@bg@paint@i{%
+ \pcol@bg@paint@ii{TBLR}{G}{C}\pcol@bg@paint@ii{tblr}{}{}}}
+\def\pcol@bg@@paintcolumns{\pcol@bg@paint@i{\pcol@bg@paint@ii{}{g}{c}}}
+\def\pcol@bg@@paintbox#1{\pcol@bg@paint@i{\pcol@bg@paint@ii{#1}{}{}}}
+
+\def\pcol@bg@paint@i#1{%
+ \setbox\@tempboxa\vtop{\vskip\z@
+ \global\pcol@bg@paintedfalse
+ \let\pcol@bg@leftmargin\pcol@lrmargin
+ \pagerim-\pagerim \advance\pcol@bg@to\m@ne
+ \offinterlineskip #1}%
+ \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@
+ \ifpcol@bg@painted \nointerlineskip \box\@tempboxa \nointerlineskip \fi}
+\def\pcol@bg@paint@ii#1#2#3{%
+ \pcol@bg@swappage\ifpcol@bg@swap\fi
+ \@tfor\reserved@b:=#1\do{\pcol@bg@paintregion\reserved@b\m@ne}%
+ \pcol@bg@swappage\ifpcol@swapcolumn\fi
+ \@tfor\reserved@b:=#2#3\do{%
+ \pcol@currcol\pcol@bg@from \@whilenum\pcol@currcol<\pcol@bg@to\do{%
+ \pcol@bg@paintregion\reserved@b\pcol@currcol
+ \advance\pcol@currcol\@ne}}%
+ \@tfor\reserved@b:=#3\do{\pcol@bg@paintregion\reserved@b\pcol@currcol}}
+\def\pcol@bg@swappage#1#2{%
+ \pcol@bg@leftmargin\oddsidemargin \pcol@bg@@swapfalse
+ \ifodd\c@page\else
+ \if@twoside \pcol@bg@leftmargin\evensidemargin \fi
+ #1% \ifpcol@{bg@swap,swapcolumn}
+ \pcol@bg@@swaptrue
+ \advance\pcol@bg@leftmargin\textwidth \advance\pcol@bg@leftmargin2in
+ \advance\pcol@bg@leftmargin-\paperwidth
+ \pcol@bg@leftmargin-\pcol@bg@leftmargin
+ #2% \fi
+ \fi}
+
+\def\pcol@bg@paintregion#1#2{%
+ \@ifundefined{pcol@bg@color@#1@\number#2}%
+ {\def\reserved@a{#1}}{\edef\reserved@a{#1@\number#2}}%
+ \@ifundefined{pcol@bg@color@\reserved@a}\relax
+ {\setbox\@tempboxa\vtop{\vskip\z@
+ \expandafter\expandafter\expandafter
+ \pcol@bg@paintregion@i\csname pcol@bg@@#1\endcsname}%
+ \global\pcol@bg@paintedtrue
+ \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@ \box\@tempboxa}}
+\def\pcol@bg@paintregion@i#1#2#3#4{%
+ \pcol@bg@calculate\@tempdima\z@{#1}%
+ \pcol@bg@calculate\@tempdimb\z@{#2}%
+ \pcol@bg@calculate\@tempdimc\@tempdima{#3}%
+ \pcol@bg@calculate\dimen@\@tempdimb{#4}%
+ \pcol@bg@addext\@tempdima{-}{l}\pcol@bg@addext\@tempdimc{}{r}%
+ \pcol@bg@addext\@tempdimb{-}{t}\pcol@bg@addext\dimen@{}{b}%
+ \vskip\@tempdimb
+ \ifpcol@bg@@swap
+ \advance\@tempdima-\@tempdimc \@tempdima-\@tempdima
+ \advance\@tempdimc-\textwidth \@tempdimc-\@tempdimc
+ \moveright\@tempdimc\hbox{%
+ \advance\dimen@-\@tempdimb
+ \edef\current@color{\@nameuse{pcol@bg@color@\reserved@a}}\pcol@set@color
+ \vrule\@width\@tempdima\@height\dimen@}%
+ \else
+ \moveright\@tempdima\hbox{%
+ \advance\@tempdimc-\@tempdima \advance\dimen@-\@tempdimb
+ \edef\current@color{\@nameuse{pcol@bg@color@\reserved@a}}\pcol@set@color
+ \vrule\@width\@tempdimc\@height\dimen@}%
+ \fi}
+
+\def\pcol@bg@calculate#1#2#3{\let\pcol@bg@dimen#1\relax
+ \let\@elt\pcol@bg@advance \pcol@bg@dimen#2\relax #3}
+\def\pcol@bg@negative#1{\let\@elt\pcol@bg@nadvance #1\relax
+ \let\@elt\pcol@bg@advance}
+\def\pcol@bg@advance#1{\advance\pcol@bg@dimen#1\relax}
+\def\pcol@bg@nadvance#1{\advance\pcol@bg@dimen-#1\relax}
+
+\def\pcol@bg@addext#1#2#3{%
+ \dimen@ii\@nameuse{pcol@bg@ext@#3@\reserved@a}\relax
+ \ifdim\dimen@ii<9000\p@\relax \advance#1#2\dimen@ii
+ \else
+ \pcol@bg@calculate#1\z@{\@nameuse{pcol@bg@ext@inf@#3}}%
+ \advance\dimen@ii-\@M\p@ \advance#1#2\dimen@ii
+ \fi}
+\def\pcol@bg@ext@inf@l{\pcol@bg@negative\pcol@bg@pageleft}
+\def\pcol@bg@ext@inf@r{\pcol@bg@negative\pcol@bg@pageleft
+ \pcol@bg@paperwidth}
+\def\pcol@bg@ext@inf@t{\pcol@bg@negative\pcol@bg@pagetop}
+\def\pcol@bg@ext@inf@b{\pcol@bg@negative\pcol@bg@pagetop
+ \pcol@bg@paperheight}
+
+\def\pcol@bg@paperwidth{\@elt\paperwidth \@elt{2\pagerim}}
+\def\pcol@bg@paperheight{\@elt\paperheight \@elt{2\pagerim}}
+\def\pcol@bg@pageleft{\@elt{1in}\@elt\pcol@bg@leftmargin \@elt\pagerim}
+\def\pcol@bg@pagetop{\@elt{1in}\@elt\topmargin \@elt\headheight \@elt\headsep
+ \@elt\pagerim}
+\def\pcol@bg@textheight{\@elt\textheight \@elt\@maxdepth}
+\def\pcol@bg@columnleft{%
+ \@tempcnta\pcol@bg@from \@whilenum\@tempcnta<\pcol@currcol\do{%
+ \@elt{\@nameuse{pcol@columnwidth\number\@tempcnta}}%
+ \@elt{\@nameuse{pcol@columnsep\number\@tempcnta}}%
+ \advance\@tempcnta\@ne}}
+\def\pcol@bg@columnright{\pcol@bg@columnleft \pcol@bg@columnwidth}
+\def\pcol@bg@columnwidth{\@elt{\@nameuse{pcol@columnwidth\number\pcol@currcol}}}
+\def\pcol@bg@columnsep{\@elt{\@nameuse{pcol@columnsep\number\pcol@currcol}}}
+\def\pcol@bg@preposttop@left{0pt}
+\let\pcol@bg@preposttop@right\pcol@bg@preposttop@left
+
+\def\pcol@bg@@c{%
+ {\pcol@bg@columnleft}%
+ {\@elt\pcol@bg@columntop}%
+ {\pcol@bg@columnwidth}%
+ {\pcol@bg@columnheight}}
+\def\pcol@bg@@C{%
+ {\pcol@bg@columnleft}%
+ {}%
+ {\pcol@bg@columnwidth}%
+ {\pcol@bg@textheight}}
+\def\pcol@bg@@g{%
+ {\pcol@bg@columnright}%
+ {\@elt\pcol@bg@columntop}%
+ {\pcol@bg@columnsep}%
+ {\pcol@bg@columnheight}}
+\def\pcol@bg@@G{%
+ {\pcol@bg@columnright}%
+ {}%
+ {\pcol@bg@columnsep}%
+ {\pcol@bg@textheight}}
+\def\pcol@bg@@s{%
+ {}%
+ {\pcol@bg@spanningtop}%
+ {\@elt\textwidth}%
+ {\pcol@bg@spanningheight}}
+\def\pcol@bg@@t{%
+ {\pcol@bg@negative\pcol@bg@pageleft}%
+ {\pcol@bg@negative\pcol@bg@pagetop}%
+ {\pcol@bg@paperwidth}%
+ {\pcol@bg@pagetop}}
+\def\pcol@bg@@b{%
+ {\pcol@bg@negative\pcol@bg@pageleft}%
+ {\pcol@bg@textheight}%
+ {\pcol@bg@paperwidth}%
+ {\pcol@bg@paperheight
+ \pcol@bg@negative{\pcol@bg@pagetop \pcol@bg@textheight}}}
+\def\pcol@bg@@l{%
+ {\pcol@bg@negative\pcol@bg@pageleft}%
+ {}%
+ {\pcol@bg@pageleft}%
+ {\pcol@bg@textheight}}
+\def\pcol@bg@@r{%
+ {\@elt\textwidth}%
+ {}%
+ {\pcol@bg@paperwidth
+ \pcol@bg@negative{\pcol@bg@pageleft \@elt\textwidth}}%
+ {\pcol@bg@textheight}}
+\def\pcol@bg@@f{%
+ {}%
+ {}%
+ {\@elt\textwidth}%
+ {\pcol@bg@floatheight}}
+\def\pcol@bg@@n{%
+ {}%
+ {\pcol@bg@textheight
+ \pcol@bg@negative{\pcol@bg@footnoteheight \@elt{\skip\footins}}}%
+ {\@elt\textwidth}%
+ {\pcol@bg@footnoteheight \@elt{\skip\footins}}}
+\def\pcol@bg@@p{%
+ {}%
+ {\@elt\pcol@bg@preposttop}%
+ {\@elt\textwidth}%
+ {\pcol@bg@textheight \pcol@bg@negative{\@elt\pcol@bg@preposttop}}}
+\let\pcol@bg@@S\pcol@bg@@s
+\let\pcol@bg@@T\pcol@bg@@t
+\let\pcol@bg@@B\pcol@bg@@b
+\let\pcol@bg@@L\pcol@bg@@l
+\let\pcol@bg@@R\pcol@bg@@r
+\let\pcol@bg@@F\pcol@bg@@f
+\let\pcol@bg@@N\pcol@bg@@n
+\let\pcol@bg@@P\pcol@bg@@p
+
+%% Special Output Routines: Dispatcher
+
+\def\pcol@op@start{-10010}
+\def\pcol@op@switch{-10011}
+\def\pcol@op@flush{-10012}
+\def\pcol@op@clear{-10013}
+\def\pcol@op@end{-10014}
+
+\def\pcol@specialoutput{%
+ \ifnum\outputpenalty=\pcol@op@start\relax
+ \let\reserved@a\pcol@output@start
+ \else\ifnum\outputpenalty=\pcol@op@switch\relax
+ \let\reserved@a\pcol@output@switch
+ \else\ifnum\outputpenalty=\pcol@op@flush\relax
+ \let\reserved@a\pcol@output@flush
+ \else\ifnum\outputpenalty=\pcol@op@clear\relax
+ \let\reserved@a\pcol@output@clear
+ \else\ifnum\outputpenalty=\pcol@op@end\relax
+ \let\reserved@a\pcol@output@end
+ \else \let\reserved@a\@specialoutput
+ \fi\fi\fi\fi\fi
+ \ifnum\outputpenalty=-\@Miv\relax
+ \ifvoid\footins\else \pcol@Log\dummy{dummy}\footins \fi
+ \fi
+ \ifx\reserved@a\@specialoutput\else
+ \global\setbox\@holdpg\vbox{\unvbox\@holdpg \unvbox\@cclv
+ \setbox\@tempboxa\lastbox \unskip}%
+ \outputpenalty-\@M
+ \fi
+ \reserved@a}
+
+%% Special Output Routines: Building First Page
+
+\def\pcol@output@start{%
+ \global\pcol@outputtrue
+ \global\pcol@page\z@ \global\pcol@toppage\z@ \global\pcol@basepage\z@
+ \global\let\pcol@pages\@empty
+ \global\let\@dbldeferlist\@deferlist \global\let\@deferlist\@empty
+ {\def\@elt##1{\global\dp##1\z@}\@dbldeferlist}%
+ \setbox\z@\box\pcol@topfnotes
+ \@tempdima\@colroom
+ \advance\@tempdima-\ht\@holdpg \advance\@tempdima-\dp\@holdpg
+ \ifvoid\footins\else
+ \advance\@tempdima-\skip\footins
+ \advance\@tempdima-\ht\footins \advance\@tempdima-\dp\footins
+ \advance\@tempdima-\belowfootnoteskip
+ \fi
+ \ifx\@botlist\@empty\else \advance\@tempdima-\textfloatsep \fi
+ \ifdim\@tempdima<1.5\baselineskip
+ \setbox\@cclv\box\@holdpg \@makecol
+ \pcol@outputfalse \@outputpage \pcol@outputtrue
+ \global\let\pcol@currpage\@empty \pcol@startpage
+ \global\topskip\pcol@topskip \global\pcol@firstpagefalse
+ \else
+ \pcol@makenormalcol
+ \@tempdima\ht\@outputbox \advance\@tempdima\dp\@outputbox
+ \global\advance\@colht-\@tempdima
+ \def\reserved@a{%
+ \ifdim\pcol@bg@preposttop=\@tempdima\else
+ \edef\pcol@bg@textheight{\@elt{\number\@tempdima sp}}%
+ \pcol@bg@paintbox{Pp}%
+ \fi}
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \global\setbox\pcol@rightpage\vbox{%
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \let\pcol@bg@preposttop\pcol@bg@preposttop@right
+ \reserved@a \unvbox\pcol@rightpage}%
+ \fi
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+ \let\pcol@bg@preposttop\pcol@bg@preposttop@left
+ \reserved@a \unvbox\@outputbox}}\pcol@ovf
+ \pcol@Fe{output@start(preenv)}%
+ \global\dimen\@currbox\@colht
+ \ifdim\@tempdima=\z@ \@tempskipa\topskip \else \@tempskipa\z@ \fi
+ \global\skip\@currbox\@tempskipa \global\topskip\@tempskipa
+ \def\pcol@do@mpbout@whole##1##2##3##4{%
+ \xdef\pcol@mparbottom@out{{##1}{##2}{##3}{##4}}}%
+ \def\pcol@do@mpbout@elem\@elt##1##2{\@elt{0}{\number\@mparbottom}}%
+ \pcol@do@mpbout
+ \pcol@bias@mpbout{-\@tempdima}%
+ \pcol@defcurrpage{\number\c@page}\@currbox\voidb@x{}{\pcol@mparbottom@out}%
+ \global\pcol@firstpagetrue
+ \fi
+ \global\@colroom\@colht \pcol@floatplacement
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+ \ifdim\topskip=\z@ \hrule\@height\z@\@width\z@ \fi}}\pcol@ovf
+ \pcol@Fe{output@start(col)}%
+ \pcol@setcurrcolnf
+ \global\count\@currbox\z@
+ \global\dimen\@currbox\@colroom
+ \expandafter\gdef\csname pcol@shipped\number\pcol@currcol\endcsname{}%
+ \pcol@ifccdefined
+ {\@next\@currbox\@freelist{\global\setbox\@currbox\vbox{%
+ \def\current@color{\pcol@ccuse{}}\let\aftergroup\@gobble
+ \pcol@set@color}}\pcol@ovf}%
+ {\def\@currbox{\voidb@x}}%
+ \pcol@ccxdef{\@currbox}%
+ \advance\pcol@currcol\@ne}%
+ \global\pcol@currcol\z@
+ \pcol@getcurrcol
+ \pcol@savecolorstack
+ \pcol@Fb
+ \@cons\@freelist\@currbox \unvbox\@currbox
+ \pcol@Fe{output@start(col)}%
+ \ifvoid\footins\else
+ \pcol@Log\pcol@output@start{insert}\footins
+ \insert\footins{\box\footins\penalty\interlinepenalty}%
+ \fi
+ \if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi}
+
+\def\pcol@makenormalcol{%
+ \ifpcol@mgfnote \setbox\@tempboxa\box\footins \fi
+ \begingroup
+ \ifx\@botlist\@empty
+ \ifvoid\footins \setbox\@outputbox\box\@holdpg
+ \else \pcol@combinefootins\@holdpg\footins
+ \fi
+ \pcol@Fb
+ \let\@elt\relax \xdef\@freelist{\@freelist\@midlist}%
+ \pcol@Fe{makenormalcol}%
+ \global\let\@midlist\@empty
+ \pcol@combinefloats
+ \else
+ \pcol@lastpagetrue
+ \setbox\@cclv\box\@holdpg \let\@textbottom\relax \vbadness\@M
+ \@makecol
+ \fi
+ \global\setbox\@outputbox\vbox{\unvbox\@outputbox}%
+ \endgroup
+ \ifpcol@mgfnote \setbox\footins\box\@tempboxa \fi}
+
+%% Special Output Routines: Column-Switching
+
+\def\pcol@output@switch{%
+ \ifpcol@sptext\ifnum\pcol@currcol=\z@
+ \ifvoid\pcol@prespan \dimen@\z@ \else \dimen@\ht\pcol@prespan \fi
+ \global\advance\@colroom\dimen@
+ \pcol@addflhd\@toplist\pcol@textfloatsep
+ \pcol@getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+ \@tempdimb\ht\@holdpg \advance\@tempdimb\dp\@holdpg
+ \@cons\pcol@sptextlist{{\number\dimen@}{\number\@tempdimb}}%
+ \pcol@defcurrpage{\number\@tempcnta}\pcol@spanning\pcol@footins
+ {\pcol@sptextlist}{\pcol@mparbottom}%
+ \pcol@shiftspanning\@holdpg
+ \setbox\@holdpg\vbox{\unvbox\pcol@prespan \unvbox\@holdpg}%
+ \fi\fi
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{
+ \pcol@clearcst@unvbox\@holdpg}}\pcol@ovf
+ \pcol@Fe{output@switch}%
+ \def\pcol@currfoot{\voidb@x}%
+ \ifvoid\footins\else
+ \ifpcol@scfnote
+ \ifnum\pcol@page=\pcol@toppage
+ \pcol@getcurrpinfo\@tempcnta\@tempdima\@tempskipa
+ \pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
+ \pcol@savefootins\pcol@footins
+ \pcol@Fe{output@switch(pagefn)}%
+ \pcol@defcurrpage{\number\@tempcnta}\pcol@spanning\pcol@footins
+ {\pcol@sptextlist}{\pcol@mparbottom}%
+ \else
+ \pcol@Log\pcol@output@switch{discard}\footins
+ \setbox\@tempboxa\box\footins
+ \fi
+ \else
+ \pcol@Log\pcol@output@switch{save}\footins
+ \pcol@Fb
+ \pcol@savefootins\pcol@currfoot
+ \pcol@Fe{output@switch(colfn)}%
+ \fi
+ \fi
+ \ifnum\pcol@currcol=\z@ \pcol@setpageno \fi
+ \pcol@setcurrcol
+ \global\count\@currbox\pcol@page
+ \global\dimen\@currbox\@colroom
+ \let\reserved@a\@nobreakfalse \let\reserved@b\@afterindentfalse
+ \ifpcol@sptext\ifnum\pcol@currcol=\z@
+ \if@nobreak \let\reserved@a\@nobreaktrue \fi
+ \if@afterindent \let\reserved@b\@afterindenttrue \fi
+ \@temptokena\everypar
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol \reserved@a \reserved@b \everypar\@temptokena
+ \pcol@setcurrcol
+ \advance\pcol@currcol\@ne}%
+ \global\pcol@sptextfalse
+ \fi\fi
+ \@tempswafalse \ifpcol@sync \@tempswatrue \fi \ifpcol@clear \@tempswatrue \fi
+ \if@tempswa \pcol@sync \fi
+ \@tempswatrue
+ \ifpcol@clear \ifpcol@sync\else \@tempswafalse \fi\fi
+ \if@tempswa \pcol@restartcolumn \fi
+ \global\pcol@syncfalse}
+
+\def\pcol@shiftspanning#1{%
+ \ifpcol@swapcolumn\ifodd\c@page\else
+ \setbox#1\vbox{\@tempdima\textwidth \advance\@tempdima-\columnwidth
+ \moveleft\@tempdima\box#1}
+ \fi\fi}
+
+\def\pcol@restartcolumn{%
+ \global\pcol@currcol\pcol@nextcol
+ \pcol@getcurrcol
+ \global\pcol@page\count\@currbox
+ \global\@colroom\dimen\@currbox
+ \pcol@Fb
+ \@cons\@freelist\@currbox
+ \pcol@Fe{restartcolumn(col)}%
+ \pcol@getcurrpage
+ \ifpcol@scfnote
+ \edef\pcol@currfoot{\pcol@footins}%
+ \ifnum\pcol@page=\pcol@toppage
+ \@tempdima\@colht \@tempdimb\z@
+ \pcol@putbackmvl
+ \if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+ \ifvoid\pcol@footins\else
+ \pcol@Fb
+ \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(pagefn)}%
+ \pcol@Log\pcol@restartcolumn{insert}\footins
+ \pcol@shrinkcolbyfn\@colht\footins\@tempdimb
+ \insert\footins{\unvbox\footins}%
+ \fi
+ \pcol@deferredfootins\pcol@restartcolumn
+ \@colht\@tempdima
+ \else
+ \ifvoid\pcol@footins\else
+ \pcol@getcurrfoot\copy
+ \pcol@Log\pcol@restartcolumn{insdmy}\footins
+ \insert\footins{\unvbox\footins}%
+ \fi
+ \pcol@putbackmvl
+ \if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+ \fi
+ \else
+ \pcol@putbackmvl
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \pcol@getcurrfoot\box \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{restartcolumn(colfn)}%
+ \pcol@Log\pcol@restartcolumn{insert}\footins
+ \insert\footins{\unvbox\footins}%
+ \fi
+ \if@nobreak \nobreak \else \addpenalty\interlinepenalty \fi
+ \fi}
+
+\def\pcol@getcurrcol{%
+ \expandafter\expandafter\expandafter\pcol@igetcurrcol
+ \csname pcol@col\number\pcol@currcol\endcsname
+ \expandafter\global\expandafter\columnwidth
+ \csname pcol@columnwidth\number\pcol@currcol\endcsname}
+\def\pcol@igetcurrcol#1#2#3#4#5#6#7#8#9{%
+ \def\@currbox{#1}\def\pcol@currfoot{#2}\global\pcol@prevdepth#3sp\relax
+ \gdef\@toplist{#4}\gdef\@midlist{#5}\gdef\@botlist{#6}\gdef\@deferlist{#7}%
+ \global\pcol@textfloatsep#8sp\pcol@iigetcurrcol#9}
+\def\pcol@iigetcurrcol#1#2#3#4#5#6#7#8{%
+ \global\@textfloatsheight#1sp\relax
+ \global\@topnum#2\relax \global\@toproom#3sp\relax
+ \global\@botnum#4\relax \global\@botroom#5sp\relax
+ \global\@colnum#6\relax
+ \global\@afterindentfalse \@nobreaktrue
+ \ifcase#7
+ \@nobreakfalse \or
+ \global\@afterindenttrue \else
+ \relax
+ \fi
+ \global\everypar{#8}}
+\def\pcol@getcurrfoot#1{%
+ \ifvoid\pcol@currfoot \global\setbox\footins\box\voidb@x
+ \else
+ \global\setbox\footins#1\pcol@currfoot
+ \global\count\footins\count\pcol@currfoot
+ \global\dimen\footins\dimen\pcol@currfoot
+ \global\skip\footins\skip\pcol@currfoot
+ \fi}
+\def\pcol@setcurrcol{{\let\@elt\relax
+ \@tempcnta\if@nobreak\if@afterindent\@ne\else\tw@\fi\else\z@\fi
+ \expandafter\xdef\csname pcol@col\number\pcol@currcol\endcsname{%
+ {\@currbox}{\pcol@currfoot}{\number\pcol@prevdepth}%
+ {\@toplist}{\@midlist}{\@botlist}{\@deferlist}{\number\pcol@textfloatsep}%
+ {{\number\@textfloatsheight}%
+ {\number\@topnum}{\number\@toproom}{\number\@botnum}{\number\@botroom}%
+ {\number\@colnum}{\number\@tempcnta}{\the\everypar}}}}}
+\def\pcol@setcurrcolnf{\def\pcol@currfoot{\voidb@x}\pcol@setcurrcol}
+
+\def\pcol@putbackmvl{%
+ \ifpcol@flush \pcol@sptextstartfalse \fi
+ \ifpcol@sync\else \pcol@sptextstartfalse \fi
+ \pcol@ifempty\@currbox
+ {\pcol@savecolorstack
+ \ifpcol@sptextstart \global\setbox\pcol@prespan\box\voidb@x \fi}%
+ {\global\setbox\pcol@colorstack@saved\box\voidb@x
+ \ifpcol@sptextstart
+ \global\setbox\pcol@prespan\vbox{%
+ \unvbox\@currbox \pcol@restorecolorstack}%
+ \global\advance\@colroom-\ht\pcol@prespan
+ \global\topskip\z@ \hrule\@height\z@\@width\z@
+ \else
+ \unvbox\@currbox \pcol@restorecolorstack
+ \fi}}
+
+%% Special Output Routines: Color Management
+
+\def\pcol@magicpenalty{12345}
+\def\pcol@ifempty#1#2#3{%
+ \setbox\@tempboxa\vbox{\penalty\pcol@magicpenalty
+ \unvcopy#1\xdef\@gtempa{\number\lastpenalty}}%
+ \ifnum\@gtempa=\pcol@magicpenalty\relax \def\reserved@a{#2}%
+ \else \def\reserved@a{#3}%
+ \fi
+ \reserved@a}
+
+\def\pcol@clearcst@unvbox#1{%
+ \pcol@ifempty#1\relax
+ {\pcol@restorecst\pcol@colorstack@saved \unvbox#1\pcol@clearcolorstack}}
+\def\pcol@clearcolorstack{%
+ \def\reserved@a##1{\reset@color}\def\reserved@b##1{\reset@color}%
+ \pcol@scancst\pcol@colorins}
+
+\def\pcol@restorecolorstack{\pcol@restorecst\pcol@colorins}
+\def\pcol@restorecst{%
+ \def\reserved@a##1{\unvbox##1}\def\reserved@b##1{\unvcopy##1}%
+ \pcol@scancst}
+
+\def\pcol@scancst#1{%
+ \@tempcnta#1\relax
+ \ifnum\@tempcnta=\pcol@colorins
+ \ifvoid\pcol@ccuse{@box}\else
+ \reserved@b{\pcol@ccuse{@box}}\fi
+ \fi
+ \ifvoid\@tempcnta\else
+ \setbox\@tempboxa\vbox{}\setbox\pcol@tempboxa\vbox{}\@tempcntb\z@
+ \def\reserved@b{}\let\@elt\relax \@tempswatrue \pcol@iscancst
+ \global\setbox\@tempcnta\box\@tempboxa \unvbox\pcol@tempboxa
+ \fi}
+\def\pcol@iscancst{%
+ \setbox\@tempcnta\vbox{%
+ \unvbox\@tempcnta \global\setbox\pcol@tempboxb\lastbox}%
+ \ifvoid\pcol@tempboxb \let\reserved@c\relax
+ \else
+ \let\reserved@c\pcol@iscancst
+ \ifdim\ht\pcol@tempboxb=\z@
+ \ifdim\wd\pcol@tempboxb=\z@ \advance\@tempcntb\@ne
+ \else \edef\reserved@b{\@elt{\number\wd\pcol@tempboxb}\reserved@b}%
+ \fi
+ \else\ifdim\dp\pcol@tempboxb=\z@
+ \ifdim\wd\pcol@tempboxb=\z@
+ \ifnum\@tempcntb>\z@ \advance\@tempcntb\m@ne
+ \else
+ \setbox\@tempboxa\vbox{\copy\pcol@tempboxb \unvbox\@tempboxa}%
+ \setbox\pcol@tempboxa\vbox{%
+ \reserved@a\pcol@tempboxb \unvbox\pcol@tempboxa}%
+ \fi
+ \else
+ \count@\wd\pcol@tempboxb \chardef\reserved@d\z@
+ \def\@elt##1{\ifnum##1=\count@ \chardef\reserved@d\@ne \fi}%
+ \reserved@b \let\@elt\relax
+ \ifnum\reserved@d=\z@
+ \setbox\@tempboxa\vbox{\copy\pcol@tempboxb \unvbox\@tempboxa}%
+ \setbox\pcol@tempboxa\vbox{%
+ \reserved@a\pcol@tempboxb \unvbox\pcol@tempboxa}%
+ \fi
+ \fi
+ \else\if@tempswa
+ \ifvoid\pcol@ccuse{@box}%
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol@ovf
+ \pcol@ccxdef{\@currbox}\reset@color
+ \fi
+ \global\setbox\pcol@ccuse{@box}\vbox{\unvbox\pcol@tempboxb}%
+ \@tempswafalse
+ \fi\fi\fi
+ \fi
+ \reserved@c}
+
+\def\pcol@savecolorstack{%
+ \ifvoid\pcol@colorins \@tempswafalse \else \@tempswatrue \fi
+ \ifvoid\pcol@ccuse{@box}%
+ \setbox\@tempboxa\box\voidb@x
+ \else
+ \setbox\@tempboxa\vbox{\unvcopy\pcol@ccuse{@box}}%
+ \ht\@tempboxa1sp \dp\@tempboxa\z@ \wd\@tempboxa\z@
+ \@tempswatrue
+ \fi
+ \if@tempswa
+ \global\setbox\pcol@colorstack@saved\vbox{%
+ \ifvoid\@tempboxa\else \box\@tempboxa \fi
+ \ifvoid\pcol@colorins\else \unvcopy\pcol@colorins \fi}
+ \else \global\setbox\pcol@colorstack@saved\box\voidb@x
+ \fi}
+
+\def\pcol@ccuse#1{\@nameuse{pcol@columncolor#1\number\pcol@currcol}}
+\def\pcol@ifccdefined#1#2{%
+ \expandafter\ifx\csname pcol@columncolor\number\pcol@currcol\endcsname\relax
+ #2\else#1\fi}
+\def\pcol@ccxdef#1{%
+ \expandafter\xdef
+ \csname pcol@columncolor@box\number\pcol@currcol\endcsname{#1}}
+
+%% Special Output Routines: Footnote Handling
+
+\def\pcol@savefootins#1{%
+ \@next#1\@freelist{%
+ \global\setbox#1\box\footins
+ \global\count#1\count\footins
+ \global\dimen#1\dimen\footins
+ \global\skip#1\skip\footins}{\def#1{\voidb@x}\pcol@ovf}}
+
+\def\pcol@shrinkcolbyfn#1#2#3{%
+ \ifx#3\relax\else #3-\skip#2\relax \fi
+ \advance#1-\ht#2\advance#1-\dp#2\advance#1-\skip#2\relax}
+\def\pcol@unvbox@cclv#1{%
+ \@tempdima\dp\@cclv \unvbox\@cclv
+ \vskip \ifdim\@tempdima>\@maxdepth -\@maxdepth \else -\@tempdima \fi
+ \vskip\skip#1\@tempdima\skip#1\vskip-\@tempdima}
+
+\def\pcol@deferredfootins#1{%
+ \ifdim\@tempdimb=\z@ \@tempdimb\@colht \advance\@tempdimb-\skip\footins
+ \else \@tempdimb\@colht
+ \fi
+ \ifvoid\pcol@topfnotes\else \ifdim\@tempdimb>\z@
+ \begingroup
+ \splitmaxdepth\@maxdepth \splittopskip\z@ \vbadness\@M
+ \setbox\@tempboxa\vsplit\pcol@topfnotes to\@tempdimb
+ \ifvoid\pcol@topfnotes\else
+ \global\setbox\pcol@topfnotes\vbox{\penalty\interlinepenalty
+ \unvbox\pcol@topfnotes}%
+ \fi
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%
+ \ifdim\ht\@tempboxa>\z@
+ \pcol@Log#1{add}\@tempboxa
+ \insert\footins{\unvbox\@tempboxa}%
+ \fi
+ \endgroup
+ \fi\fi}
+
+\def\pcol@combinefootins#1#2{%
+ \setbox\@outputbox\vbox{%
+ \boxmaxdepth\@maxdepth
+ \unvbox#1\relax
+ \pcol@putfootins#2\unskip
+ \ifdim\belowfootnoteskip=\z@\else \vskip\belowfootnoteskip \fi}}
+\def\pcol@putfootins#1{%
+ \vskip\skip#1\relax
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox#1\relax
+ \color@endgroup \vskip\z@}
+
+%% Special Output Routines: Marginal Notes
+
+\def\pcol@addmarginpar{%
+ \pcol@getcurrpage \@firstcolumntrue
+ \ifnum\pcol@currcol<\pcol@ncolleft
+ \let\reserved@a\z@ \let\reserved@b\pcol@ncolleft
+ \ifnum\pcol@mpthreshold@l>\pcol@currcol\else \@firstcolumnfalse \fi
+ \else
+ \let\reserved@a\pcol@ncolleft \let\reserved@b\pcol@ncol
+ \ifnum\pcol@mpthreshold@r>\pcol@currcol\else \@firstcolumnfalse \fi
+ \fi
+ \ifpcol@swapmarginpar
+ \ifodd\c@page\else
+ \if@firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+ \fi
+ \ifpcol@paired\else \ifnum\pcol@currcol<\pcol@ncolleft\else
+ \if@firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+ \fi\fi
+ \fi
+ \if@reversemargin
+ \if@firstcolumn \@firstcolumnfalse \else \@firstcolumntrue \fi
+ \fi
+ \pcol@swapcolumn\pcol@currcol\count@\reserved@a\reserved@b
+ \@tempdima\z@
+ \@tempcnta\reserved@a \@whilenum\@tempcnta<\count@\do{%
+ \pcol@swapcolumn\@tempcnta\@tempcntb\reserved@a\reserved@b
+ \advance\@tempdima\csname pcol@columnwidth\number\@tempcntb\endcsname\relax
+ \advance\@tempdima\csname pcol@columnsep\pcol@colsepid\endcsname\relax
+ \advance\@tempcnta\@ne}%
+ \if@firstcolumn \advance\marginparwidth\@tempdima
+ \else
+ \advance\marginparsep\textwidth \advance\marginparsep-\@tempdima
+ \advance\marginparsep-\columnwidth
+ \fi
+ \expandafter\@xnext\@currlist\@@\pcol@marbox\@gtempa
+ \if@firstcolumn\let\pcol@marbox\@currbox \fi
+ \@tempdima\@pageht \advance\@tempdima-\ht\pcol@marbox
+ \advance\@tempdima\dimen\@currbox
+ \@tempdimb\ht\pcol@marbox \advance\@tempdimb\dp\pcol@marbox
+ \advance\@tempdimb\marginparpush
+ \pcol@getmparbottom\@tempdima\@tempdimb
+ \begingroup
+ \@tempcnta\pcol@page \advance\@tempcnta-\pcol@basepage
+ \edef\reserved@a{\pcol@pages\pcol@currpage}%
+ \global\let\pcol@pages\@empty \global\let\pcol@currpage\@empty
+ \let\@elt\pcol@setmpbelt \reserved@a
+ \endgroup
+ \ifdim\dimen\@currbox=\z@\else
+ \ifdim\dimen\@currbox>\ht\pcol@marbox
+ \advance\@mparbottom-\dimen\pcol@marbox
+ \fi
+ \setbox\pcol@marbox\hbox{\lower\dimen\@currbox\box\pcol@marbox}%
+ \fi
+ \pcol@@addmarginpar}
+
+\def\pcol@getmparbottom#1#2{%
+ \global\@mparbottom\z@
+ \ifx\pcol@mparbottom\@empty
+ \begingroup
+ \@tempdimc#2\relax \advance\@tempdimc#1\relax \let\@elt\relax
+ \xdef\pcol@mpblist{\@elt{\number#1}{\number\@tempdimc}}%
+ \endgroup
+ \else
+ \expandafter\pcol@getmparbottom@i\pcol@mparbottom
+ \begingroup
+ \@tempdima#1\relax \@tempdimb#2\relax \@tempswafalse
+ \let\@elt\pcol@getmpbelt \global\let\pcol@mpblist\@empty \reserved@a
+ \if@tempswa\else
+ \ifdim\@tempdima<\@mparbottom \@tempdima\@mparbottom \fi
+ \advance\@tempdimb\@tempdima
+ \@cons\pcol@mpblist{{\number\@tempdima}{\number\@tempdimb}}%
+ \fi
+ \endgroup
+ \fi}
+\def\pcol@getmparbottom@i#1#2#3#4{%
+ \ifnum\pcol@currcol<\pcol@ncolleft
+ \if@firstcolumn \def\reserved@a{#1}\else\def\reserved@a{#2}\fi
+ \else
+ \if@firstcolumn \def\reserved@a{#3}\else\def\reserved@a{#4}\fi
+ \fi}
+\def\pcol@getmpbelt#1#2{%
+ \ifdim#1sp<\@tempdima
+ \global\@mparbottom#2sp\relax \@cons\pcol@mpblist{{#1}{#2}}%
+ \ifdim\@tempdima<#2sp\relax \@tempdima#2sp\relax \fi
+ \else
+ \@tempdimc\@tempdima \advance\@tempdimc\@tempdimb
+ \ifdim#1sp<\@tempdimc
+ \@tempdima#2sp\relax \global\@mparbottom#2sp\relax
+ \@cons\pcol@mpblist{{#1}{#2}}%
+ \else
+ \@cons\pcol@mpblist{{\number\@tempdima}{\number\@tempdimc}\@elt{#1}{#2}}%
+ \@tempswatrue
+ \def\pcol@getmpbelt##1##2{\@cons\pcol@mpblist{{##1}{##2}}}
+ \fi
+ \fi}
+
+\def\pcol@setmpbelt#1#2#3#4#5{%
+ {\let\@elt\relax \xdef\pcol@pages{\pcol@pages\pcol@currpage}}%
+ \ifnum\@tempcnta=\z@
+ \def\reserved@a{#5}%
+ \ifx\reserved@a\@empty \pcol@setmpbelt@i{}{}{}{}\else \pcol@setmpbelt@i#5\fi
+ \pcol@defcurrpage{#1}{#2}{#3}{#4}{\reserved@a}%
+ \else \gdef\pcol@currpage{\@elt{#1}#2#3{#4}{#5}}%
+ \fi
+ \advance\@tempcnta\m@ne}
+\def\pcol@setmpbelt@i#1#2#3#4{%
+ \ifnum\pcol@currcol<\pcol@ncolleft
+ \if@firstcolumn \def\reserved@a{{\pcol@mpblist}{#2}{#3}{#4}}%
+ \else \def\reserved@a{{#1}{\pcol@mpblist}{#3}{#4}}%
+ \fi
+ \else
+ \if@firstcolumn \def\reserved@a{{#1}{#2}{\pcol@mpblist}{#4}}%
+ \else \def\reserved@a{{#1}{#2}{#3}{\pcol@mpblist}}%
+ \fi
+ \fi}
+
+\gdef\pcol@mparbottom@zero{{\@elt{0}{0}}{\@elt{0}{0}}{\@elt{0}{0}}{\@elt{0}{0}}}
+\global\let\pcol@mparbottom@out\pcol@mparbottom@zero
+
+\def\pcol@do@mpbout{\expandafter\pcol@do@mpbout@i\pcol@mparbottom@out}
+\def\pcol@do@mpbout@i#1#2#3#4{\@tempcnta\@ne
+ \if@mparswitch \ifodd\c@page\else \@tempcnta\m@ne \fi\fi
+ \if@reversemargin \@tempcnta-\@tempcnta \fi
+ \ifnum\@tempcnta<\z@
+ \pcol@do@mpbout@whole{\pcol@do@mpbout@elem#1}{#2}{#3}{#4}%
+ \else
+ \pcol@do@mpbout@whole{#1}{\pcol@do@mpbout@elem#2}{#3}{#4}%
+ \fi}
+
+\def\pcol@bias@mpbout#1{\def\reserved@a{\pcol@bias@mpbout@i{#1}}%
+ \pcol@do@mpb@all\pcol@mparbottom@out}
+\def\pcol@bias@mpbout@i#1\@elt#2#3\@nil{%
+ \dimen@#2sp\relax \advance\dimen@#1\relax
+ \dimen@ii#3sp\relax \advance\dimen@ii#1\relax
+ \def\reserved@b{\@elt{\number\dimen@}{\number\dimen@ii}}}
+
+\def\pcol@getmparbottom@last#1{%
+ \ifx\pcol@mparbottom\@empty
+ \global\let\pcol@mparbottom@out\pcol@mparbottom@zero
+ \pcol@bias@mpbout{#1}%
+ \else
+ \def\reserved@a{\pcol@getmparbottom@last@i{#1}}%
+ \pcol@do@mpb@all\pcol@mparbottom
+ \fi}
+\def\pcol@getmparbottom@last@i#1#2\@nil{%
+ \edef\reserved@b{\@elt{\number#1}{\number#1}}%
+ \def\@elt##1##2{\def\reserved@b{\@elt{##1}{##2}}}%
+ #2\let\@elt\relax}
+
+\def\pcol@do@mpb@all#1{\expandafter\pcol@do@mpb@all@i#1}
+\def\pcol@do@mpb@all@i#1#2#3#4{\begingroup \let\@elt\relax
+ \gdef\pcol@mparbottom@out{}%
+ \pcol@do@mpb@all@ii#1\@nil\pcol@do@mpb@all@ii#2\@nil
+ \pcol@do@mpb@all@ii#3\@nil\pcol@do@mpb@all@ii#4\@nil
+ \endgroup}
+\def\pcol@do@mpb@all@ii#1\@nil{%
+ \reserved@a#1\@nil
+ \xdef\pcol@mparbottom@out{\pcol@mparbottom@out{\reserved@b}}}
+
+%% Special Output Routines: Synchronization
+
+\def\pcol@sync{%
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@flushcolumn
+ \pcol@outputcolumns\@ne
+ \pcol@getcurrpinfo{\global\c@page}{\global\@colht}{\global\topskip}%
+ \@tempdima-\maxdimen \@tempdimb-\maxdimen \pcol@colht-\maxdimen
+ \@pageht-\maxdimen \@tempdimc\maxdimen \@pagedp\maxdimen \@tempcntb\z@
+ \pcol@dfloatsfalse
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@measurecolumn
+ \@tempswatrue \global\pcol@flushfalse
+ \ifpcol@clear
+ \ifpcol@lastpage \@tempdimb\pcol@colht \else \@tempdimb\@pageht \fi
+ \ifpcol@sync \@tempswafalse \fi
+ \else
+ \ifdim\@tempdima<\z@ \@tempswafalse
+ \else\ifdim\@tempdimb<\z@ \@tempdimb\@tempdima
+ \else \advance\@tempdimb\@tempdima
+ \fi\fi
+ \fi
+ \ifpcol@scfnote\ifvoid\pcol@footins\else
+ \ifdim\@tempdimb<\z@ \@tempdimb\z@ \fi
+ \advance\@tempdimb\ht\pcol@footins \advance\@tempdimb\dp\pcol@footins
+ \advance\@tempdimb\skip\pcol@footins
+ \fi\fi
+ \dimen@\@tempdimb
+ \ifpcol@clear\else \ifdim\dimen@<\z@\else
+ \ifdim\@tempdimc=\maxdimen\else \ifdim\@tempdimc<\z@\else
+ \advance\dimen@-\@tempdimc
+ \fi\fi
+ \advance\dimen@\pcol@@ensurevspace
+ \ifdim\dimen@<\@tempdimb \dimen@\@tempdimb \fi
+ \fi\fi
+ \ifdim\dimen@>\@colht
+ \global\pcol@flushtrue \@tempswafalse \pcol@nextcol\@tempcntb
+ \fi
+ \ifdim\@tempdimb<\z@\else \if@tempswa
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do\pcol@synccolumn
+ \fi\fi}
+
+\def\pcol@flushcolumn{%
+ \pcol@getcurrcol
+ \ifnum\count\@currbox<\pcol@toppage
+ \ifpcol@lastpage \pcol@lastpagesavetrue \else \pcol@lastpagesavefalse \fi
+ \pcol@lastpagefalse
+ \pcol@page\count\@currbox
+ \setbox\@cclv\vbox{\unvbox\@currbox \vfil}%
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{flushcolumn(colfn)}%
+ \fi
+ \pcol@getcurrfoot\box
+ \pcol@getcurrpage
+ \ifvoid\pcol@footins
+ \ifdim\ht\@cclv>\@colht
+ \setbox\@cclv\vbox{\boxmaxdepth\@maxdepth \unvbox\@cclv \unskip}%
+ \fi
+ \else
+ \pcol@shrinkcolbyfn\@colht\pcol@footins\relax
+ \setbox\@cclv\vbox{\pcol@unvbox@cclv\pcol@footins}%
+ \fi
+ \pcol@Logstart{\pcol@flushcolumn(\number\c@page:\number\pcol@currcol)}
+ \ifdim\@toproom=\maxdimen
+ \setbox\@outputbox\pcol@makefcolpage \global\@toproom\z@
+ \else
+ \pcol@@makecol\@maxdepth
+ \fi
+ \pcol@Logend\pcol@flushcolumn
+ \global\setbox\@currbox\box\@outputbox
+ \expandafter\@cons\csname pcol@shipped\number\pcol@currcol\endcsname
+ \@currbox
+ \advance\pcol@page\@ne
+ \ifx\@deferlist\@empty\else
+ \@whilenum\pcol@page<\pcol@toppage\do{%
+ \pcol@getcurrpage
+ \ifvoid\pcol@footins\else
+ \pcol@shrinkcolbyfn\@colht\pcol@footins\relax
+ \fi
+ \@makefcolumn\@deferlist
+ \if@fcolmade
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
+ \pcol@ovf
+ \pcol@Fe{flushcolumn(fcol)}%
+ \expandafter\@cons
+ \csname pcol@shipped\number\pcol@currcol\endcsname\@currbox
+ \fi
+ \advance\pcol@page\@ne}%
+ \fi
+ \ifpcol@lastpagesave \pcol@lastpagetrue \fi
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\vbox{}}\pcol@ovf
+ \pcol@Fe{flushcolumn(col)}%
+ \pcol@getcurrpinfo\@tempcnta{\global\@colht}\@tempskipa
+ \@pageht\@colht
+ \ifvoid\pcol@footins\else \pcol@shrinkcolbyfn\@colht\pcol@footins\relax \fi
+ \global\@colroom\@colht \pcol@floatplacement
+ \ifx\@deferlist\@empty\else
+ \ifpcol@clear
+ \pcol@makefcolumn \global\@colroom\@colht
+ \else
+ \pcol@trynextcolumn
+ \fi\fi
+ \pcol@setcurrcolnf
+ \global\count\@currbox\pcol@toppage
+ \advance\@pageht-\@colht \advance\@pageht\@colroom
+ \global\dimen\@currbox\@pageht
+ \fi %\ifnum\count\@currbox<\pcol@toppage
+ \advance\pcol@currcol\@ne}
+
+\def\pcol@makefcolumn{%
+ \ifpcol@lastpage \@tempdimc\floatsep \else \@tempdimc\@fpsep \fi
+ \@tempdima\@colht \advance\@tempdima\@tempdimc \global\@colroom-\@tempdimc
+ \begingroup
+ \let\@elt\pcol@makefcolelt
+ \let\reserved@b\@deferlist
+ \global\let\@deferlist\@empty
+ \reserved@b
+ \endgroup
+ \ifx\@toplist\@empty\else
+ \@tempswatrue
+ \ifpcol@lastpage \ifx\@deferlist\@empty \ifdim\@colroom<\@fpmin
+ \@tempswafalse \global\@toproom\maxdimen
+ \fi\fi\fi
+ \if@tempswa \global\setbox\@currbox\vbox{\pcol@makefcolpage}\fi
+ \fi}
+\def\pcol@makefcolelt#1{%
+ \@tempdimb\ht#1{}\advance\@tempdimb\dp#1{}\advance\@tempdimb\@tempdimc
+ \ifdim\@tempdimb>\@tempdima \@cons\@deferlist#1\relax
+ \@tempdima-\maxdimen
+ \else \@cons\@toplist#1\relax
+ \advance\@tempdima-\@tempdimb \global\advance\@colroom\@tempdimb
+ \fi}
+\def\pcol@makefcolpage{\vbox to\@colht{%
+ \vskip\@fptop \vskip-\@fpsep
+ \def\@elt##1{\vskip\@fpsep\box##1}\@toplist \vskip\@fpbot}%
+ \pcol@Fb
+ \xdef\@freelist{\@freelist\@toplist}\global\let\@toplist\@empty
+ \pcol@Fe{makefcolpage}%
+}
+
+\def\pcol@measurecolumn{%
+ \pcol@getcurrcol
+ \@tempswafalse
+ \dimen@\z@ \pcol@addflhd\@toplist\pcol@textfloatsep
+ \global\skip\@currbox\dimen@
+ \advance\dimen@\ht\@currbox \advance\dimen@\dp\@currbox \dimen@ii\dimen@
+ \pcol@ifempty\@currbox
+ {\global\pcol@prevdepth\maxdimen \pcol@setcurrcol}%
+ {\@tempswatrue}%
+ \pcol@measureupdate\@tempdima\dimen@ii\@tempdimc\pcol@prevdepth
+ \ifvoid\pcol@currfoot \dimen@\z@
+ \else
+ \dimen@\ht\pcol@currfoot \advance\dimen@\dp\pcol@currfoot
+ \advance\dimen@\skip\pcol@currfoot
+ \@tempswatrue
+ \fi
+ \pcol@addflhd\@botlist\maxdimen
+ \ifdim\dimen@>\@tempdimb \@tempdimb\dimen@ \fi
+ \advance\dimen@\dimen@ii
+ \if@tempswa \ifdim\dimen@>\@pageht
+ \@pageht\dimen@ \@tempcntb\pcol@currcol
+ \fi\fi
+ \dimen@ii\pcol@prevdepth
+ \ifpcol@bfbottom
+ \ifvoid\pcol@currfoot\else \dimen@ii\dp\pcol@currfoot \fi
+ \ifx\@botlist\@empty\else \dimen@ii\z@ \advance\dimen@\textfloatsep \fi
+ \else
+ \ifx\@botlist\@empty\else \dimen@ii\z@ \advance\dimen@\textfloatsep \fi
+ \ifvoid\pcol@currfoot\else \dimen@ii\dp\pcol@currfoot \fi
+ \fi
+ \pcol@measureupdate\pcol@colht\dimen@\@pagedp\dimen@ii
+ \ifx\@deferlist\@empty\else \pcol@dfloatstrue \fi
+ \advance\pcol@currcol\@ne}
+\def\pcol@addflhd#1#2{%
+ \ifx#1\@empty\else
+ \@tempswatrue
+ \let\@elt\pcol@hdflelt
+ #1\advance\dimen@-\floatsep
+ \ifdim#2=\maxdimen \advance\dimen@\textfloatsep
+ \else
+ \advance\dimen@\pcol@textfloatsep
+ \ifdim\pcol@textfloatsep>5000\p@ \advance\dimen@-\@M\p@ \fi
+ \fi
+ \let\@elt\relax
+ \fi}
+\def\pcol@hdflelt#1{\advance\dimen@\ht#1\advance\dimen@\dp#1%
+ \advance\dimen@\floatsep}
+\def\pcol@measureupdate#1#2#3#4{\if@tempswa
+ \ifdim#1<#2\relax#1#2\relax#3#4\relax
+ \else\ifdim#1=#2\ifdim#3>#4\relax#3#4\fi\fi\fi\fi}
+
+\def\pcol@synccolumn{%
+ \pcol@getcurrcol
+ \ifpcol@clear
+ \global\pcol@prevdepth\@m\p@
+ \global\setbox\@currbox\vbox{\unvbox\@currbox
+ \ifdim\pcol@textfloatsep=\maxdimen \vfil
+ \else \vskip\z@\@plus1fil\@minus.0001fil
+ \fi}%
+ \else
+ \@tempdimb\@tempdima
+ \advance\@tempdimb-\skip\@currbox
+ \ifdim\@tempdimc=\maxdimen
+ \ifdim\pcol@textfloatsep=\maxdimen \begingroup
+ \ifx\@toplist\@empty
+ \textfloatsep\z@ \floatsep\z@ \let\topfigrule\relax
+ \fi
+ \pcol@Fb
+ \@next\pcol@float\@freelist{\global\setbox\pcol@float\vbox to\z@{%
+ \vskip-\floatsep \topfigrule \vskip\textfloatsep
+ \unvbox\@currbox \vss}}\pcol@ovf
+ \pcol@Fe{synccolumn(topfloat)}%
+ \@cons\@toplist\pcol@float
+ \advance\@tempdimb\textfloatsep \advance\@tempdimb-\floatsep
+ \advance\@tempdimb\@M\p@
+ \global\pcol@prevdepth\@m\p@
+ \global\pcol@textfloatsep\@tempdimb
+ \endgroup \fi
+ \else
+ \global\pcol@prevdepth\@tempdimc
+ \ifdim\pcol@textfloatsep=\maxdimen
+ \global\pcol@textfloatsep\textfloatsep \fi
+ \global\setbox\@currbox\vbox{%
+ \ifdim\@tempdimb<\topskip
+ \vbox to\topskip{\unvbox\@currbox \vskip\z@\@plus.0001fil}%
+ \vskip-\topskip \vskip\@tempdimb
+ \else
+ \vbox to\@tempdimb{\unvbox\@currbox \vskip\z@\@plus.0001fil}%
+ \fi}%
+ \fi
+ \fi
+ \global\@topnum\z@ \pcol@setcurrcol
+ \advance\pcol@currcol\@ne}
+
+%% Special Output Routines: Page Flushing
+
+\def\pcol@output@flush{%
+ \pcol@makeflushedpage\@colht
+ \pcol@Logstart\pcol@output@flush
+ \setbox\@outputbox\vbox to\textheight{\boxmaxdepth\@maxdepth
+ \unvbox\@outputbox}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \setbox\pcol@rightpage\vbox to\textheight{\boxmaxdepth\@maxdepth
+ \unvbox\pcol@rightpage}%
+ \fi
+ \pcol@Logend\pcol@output@flush
+ \@outputpage
+ \pcol@freshpage}
+
+\def\pcol@output@clear{%
+ \pcol@makeflushedpage\@colht
+ \pcol@Logstart\pcol@output@clear
+ \setbox\@outputbox\vbox to\textheight{\boxmaxdepth\@maxdepth
+ \unvbox\@outputbox}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \setbox\pcol@rightpage\vbox to\textheight{\boxmaxdepth\@maxdepth
+ \unvbox\pcol@rightpage}%
+ \fi
+ \pcol@Logend\pcol@output@clear
+ \@outputpage
+ \pcol@flushfloats
+ \begingroup
+ \setbox\pcol@rightpage\box\voidb@x
+ \@dblfloatplacement \let\f@depth\z@
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade\fi{%
+ \def\pcol@bg@floatheight{\pcol@bg@textheight}%
+ \setbox\@outputbox\vbox to\textheight{%
+ \pcol@bg@paintbox{Ff}\unvbox\@outputbox}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \setbox\pcol@rightpage\vbox to\textheight{\pcol@bg@paintbox{Ff}\vfil}%
+ \fi
+ \@outputpage
+ \@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \pcol@freshpage}
+
+\def\pcol@makeflushedpage#1{%
+ \pcol@cleartrue \pcol@output@switch \pcol@clearfalse
+ \pcol@getcurrpinfo{\global\c@page}{\global\@colht}\@tempskipa
+ \ifpcol@lastpage \@tempswafalse \else \@tempswatrue \fi
+ \ifdim\pcol@colht=-\maxdimen\else \@tempswatrue \fi
+ \ifvoid\pcol@footins\else \@tempswatrue \fi
+ \begingroup
+ \ifpcol@nospan
+ \global\setbox\@outputbox\box\voidb@x
+ \global\setbox\pcol@rightpage\box\voidb@x
+ \else
+ \ifpcol@dfloats \@tempswatrue \fi
+ \let\@elt\relax
+ \edef\pcol@bg@floatheight{%
+ \@elt{\number\ht\pcol@spanning sp}\@elt{\number\dp\pcol@spanning sp}}%
+ \def\reserved@a{%
+ \ifpcol@firstpage\else \if@tempswa \pcol@bg@paintbox{Ff}\fi\fi}%
+ \@tempdima\ht\pcol@spanning \advance\@tempdima\dp\pcol@spanning
+ \global\setbox\@outputbox\vbox{%
+ \reserved@a \unvbox\pcol@spanning
+ \ifpcol@firstpage\else \if@tempswa\else \unskip \fi\fi}%
+ \global\setbox\@outputbox\vbox{\box\@outputbox}%
+ \pcol@Fb
+ \@cons\@freelist\pcol@spanning
+ \pcol@Fe{makeflushedpage(spanning)}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \global\setbox\pcol@rightpage\vbox{%
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \reserved@a \unvbox\pcol@rightpage}%
+ \global\ht\pcol@rightpage\ht\@outputbox
+ \global\dp\pcol@rightpage\dp\@outputbox
+ \global\setbox\pcol@rightpage\vbox{\box\pcol@rightpage}%
+ \fi
+ \advance\topmargin\@tempdima
+ \fi
+ \global\pcol@firstpagefalse
+ \if@tempswa
+ \ifvoid\pcol@footins\else
+ \pcol@shrinkcolbyfn\@colht\pcol@footins\relax
+ \fi
+ \let\pcol@@hfil\relax \@pageht\@colht
+ \ifpcol@lastpage \ifpcol@dfloats
+ \ifdim\pcol@colht<\z@ \def\@textbottom{\vfil}\fi
+ \pcol@lastpagefalse
+ \fi\fi
+ \ifpcol@lastpage \ifdim#1<\@colht \@colht#1\fi\fi
+ \ifdim\@colht<\z@ \else
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \pcol@imakeflushedpage\pcol@ncolleft\pcol@ncol\pcol@rightpage
+ \fi
+ \pcol@imakeflushedpage\z@\pcol@ncolleft\@outputbox
+ \fi
+ \fi
+ \gdef\pcol@fnheight@lpage{0pt}%
+ \ifvoid\pcol@footins\else
+ \@tempswatrue \ifpcol@lastpage \ifpcol@mgfnote \@tempswafalse \fi\fi
+ \if@tempswa
+ \pcol@Log\pcol@makeflushedpage{output}\pcol@footins
+ \@tempdima\ht\pcol@footins \advance\@tempdima\dp\pcol@footins
+ \xdef\pcol@fnheight@lpage{\number\@tempdima sp}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \global\setbox\pcol@rightpage\vbox{\unvbox\pcol@rightpage
+ \vskip\skip\pcol@footins \nointerlineskip
+ \pcol@phantom\pcol@footins \vskip\z@}%
+ \fi
+ \global\setbox\@outputbox\vbox{%
+ \unvbox\@outputbox \pcol@putfootins\pcol@footins}%
+ \pcol@Fb
+ \@cons\@freelist\pcol@footins \gdef\pcol@footins{\voidb@x}%
+ \pcol@Fe{makeflushedpage(pagefn)}%
+ \ifdim\pcol@colht=-\maxdimen \global\pcol@colht\z@ \fi
+ \fi
+ \fi
+ \endgroup}
+
+\def\pcol@imakeflushedpage#1#2#3{\global\setbox#3\vbox{%
+ \ifpcol@paired\else\ifnum#1=\z@\else \advance\c@page\@ne \fi\fi
+ \ifvoid\pcol@footins\else \ifpcol@lastpage\else
+ \def\pcol@bg@footnoteheight{%
+ \@elt{\ht\pcol@footins}\@elt{\dp\pcol@footins}}%
+ \pcol@bg@paintbox{Nn}%
+ \fi\fi
+ \unvbox#3\nointerlineskip
+ \ifpcol@lastpage \pcol@buildcolseprule\@colht#1#2\z@
+ \else \pcol@buildcolseprule\@colht#1#2\@maxdepth
+ \fi
+ \unvbox\@tempboxa
+ \hb@xt@\textwidth{%
+ \@tempcntb#1\@whilenum\@tempcntb<#2\do{%
+ \pcol@swapcolumn\@tempcntb\pcol@currcol#1#2\relax
+ \pcol@getcurrcol
+ \setbox\@cclv\box\@currbox
+ \ifvoid\pcol@currfoot\else
+ \pcol@Fb
+ \@cons\@freelist\pcol@currfoot
+ \pcol@Fe{imakeflushedpage(colfn)}%
+ \fi
+ \pcol@getcurrfoot\box
+ \@tempswafalse
+ \begingroup
+ \ifdim\@toproom=\maxdimen
+ \let\topfigrule\relax \ifdim\@colht=\@pageht \@tempswatrue \fi
+ \fi
+ \if@tempswa
+ \pcol@Logstart{\pcol@makeflushedpage(1)}%
+ \setbox\@outputbox\pcol@makefcolpage
+ \pcol@Logend{\pcol@makeflushedpage(1)}%
+ \else
+ \pcol@Logstart{\pcol@makeflushedpage(2)}%
+ \ifpcol@lastpage \pcol@@makecol\z@ \else \pcol@@makecol\@maxdepth \fi
+ \pcol@Logend{\pcol@makeflushedpage(2)}%
+ \fi
+ \pcol@@hfil \hb@xt@\columnwidth{\box\@outputbox\hss}%
+ \endgroup
+ \edef\pcol@@hfil{\noexpand\pcol@hfil{\pcol@colsepid}}%
+ \pcol@setcurrcolnf
+ \advance\@tempcntb\@ne}}}}
+
+\def\pcol@flushfloats{%
+ \global\@colht\textheight
+ \@whilesw\if@fcolmade\fi{%
+ \global\@fcolmadefalse
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \pcol@iflushfloats\pcol@ncolleft\pcol@ncol\pcol@rightpage
+ \else
+ \setbox\pcol@rightpage\box\voidb@x
+ \fi
+ \pcol@iflushfloats\z@\pcol@ncolleft\@outputbox
+ \@outputpage}}
+\def\pcol@iflushfloats#1#2#3{\setbox#3\vbox{%
+ \ifpcol@paired\else\ifnum#1=\z@\else \advance\c@page\@ne \fi\fi
+ \pcol@buildcolseprule\@colht#1#2\@maxdepth \unvbox\@tempboxa
+ \hb@xt@\textwidth{%
+ \let\pcol@@hfil\relax
+ \if@fcolmade \@tempswatrue \else \@tempswafalse \fi
+ \@tempcntb#1\@whilenum\@tempcntb<#2\do{%
+ \pcol@swapcolumn\@tempcntb\pcol@currcol#1#2\relax
+ \pcol@getcurrcol
+ \@makefcolumn\@deferlist
+ \pcol@@hfil \hb@xt@\columnwidth{%
+ \if@fcolmade \box\@outputbox \else \vbox to\@colht{}\fi \hss}%
+ \ifx\@deferlist\@empty\else \@tempswatrue \fi
+ \edef\pcol@@hfil{\noexpand\pcol@hfil{\pcol@colsepid}}%
+ \pcol@setcurrcolnf
+ \advance\@tempcntb\@ne}%
+ \if@tempswa \global\@fcolmadetrue \else \global\@fcolmadefalse \fi}}}
+
+\def\pcol@freshpage{%
+ \global\pcol@page\z@ \global\pcol@toppage\z@ \global\pcol@basepage\z@
+ \global\let\pcol@pages\@empty \global\let\pcol@currpage\@empty
+ \pcol@startpage \pcol@colht\@colht
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@getcurrcol \pcol@page\z@ \@colroom\pcol@colht
+ \let\pcol@currboxsave\@currbox
+ \pcol@getcurrpage
+ \pcol@floatplacement
+ \pcol@startcolumn\z@
+ \@whilesw\if@fcolmade\fi{\pcol@opcol \pcol@startcolumn\z@}%
+ \let\@currbox\pcol@currboxsave
+ \global\setbox\@currbox\vbox{}%
+ \global\count\@currbox\pcol@page \global\dimen\@currbox\@colroom
+ \pcol@setcurrcolnf
+ \advance\pcol@currcol\@ne}%
+ \pcol@restartcolumn}
+
+%% Special Output Routines: Last Page
+
+\def\pcol@output@end{%
+ \pcol@Logstart\pcol@output@end
+ \pcol@makeflushedpage\pcol@colht
+ \@tempdima\pcol@colht \ifdim\pcol@colht<\z@ \@tempdima\z@ \fi
+ \advance\@tempdima-\ht\@outputbox
+ \pcol@getmparbottom@last\@tempdima
+ \pcol@bias@mpbout{-\@tempdima}
+ \def\pcol@do@mpbout@whole##1##2##3##4{\setbox\@tempboxa\hbox{##1##2##3##4}}%
+ \def\pcol@do@mpbout@elem\@elt##1##2{\global\@mparbottom##2sp}%
+ \pcol@do@mpbout
+ \@tempswafalse
+ \ifpcol@dfloats
+ \ifvoid\@outputbox\else \@outputpage \fi
+ \global\@fcolmadetrue \pcol@flushfloats
+ \global\pcol@outputfalse
+ \@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
+ \global\let\pcol@mparbottom@out\pcol@mparbottom@zero
+ \else
+ \global\pcol@outputfalse
+ \ifdim\pcol@colht=-\maxdimen
+ \ifx\pcol@firstprevdepth\relax
+ \@tempswatrue \@pagedp\@m\p@ \global\@mparbottom\z@
+ \global\let\pcol@mparbottom@out\pcol@mparbottom@zero
+ \ifpcol@nospan\else
+ \pcol@Fb
+ \@next\@currbox\@freelist{\global\setbox\@currbox\box\@outputbox}%
+ \pcol@ovf
+ \pcol@Fe{output@end(spanning)}%
+ \count\@currbox10\relax
+ {\let\@elt\relax \xdef\@dbldeferlist{\@elt\@currbox\@dbldeferlist}}%
+ \global\setbox\pcol@rightpage\box\voidb@x
+ \fi
+ \else \unvbox\@outputbox \@pagedp\pcol@firstprevdepth sp\relax
+ \fi
+ \else
+ \global\pcol@havelastpagetrue
+ \@tempdima\ht\@outputbox \advance\@tempdima\dp\@outputbox
+ \xdef\pcol@bg@preposttop@left{\number\@tempdima sp}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \global\let\pcol@bg@preposttop@right\pcol@bg@preposttop@left
+ \fi
+ \def\pcol@bg@textheight{\@elt{\ht\@outputbox}\@elt{\dp\@outputbox}}%
+ \def\reserved@a{%
+ \ifdim\pcol@fnheight@lpage>\z@
+ \def\pcol@bg@footnoteheight{\@elt\pcol@fnheight@lpage}%
+ \pcol@bg@paintbox{Nn}%
+ \fi}%
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \global\setbox\pcol@rightpage\vbox{%
+ \ifpcol@paired\else \advance\c@page\@ne \fi
+ \reserved@a \unvbox\pcol@rightpage}%
+ \fi
+ \topskip\z@ \vbox{\reserved@a \unvbox\@outputbox}%
+ \fi
+ \fi
+ \ifvoid\pcol@footins\else
+ \pcol@Log\pcol@output@end{insert}\pcol@footins
+ \pcol@Fb
+ \insert\footins{\unvbox\pcol@footins}\@cons\@freelist\pcol@footins
+ \pcol@Fe{output@end(pagefn)}%
+ \fi
+ \ifvoid\pcol@topfnotes\else \insert\footins{\unvbox\pcol@topfnotes}\fi
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@Fb
+ \pcol@getcurrcol \@cons\@freelist\@currbox
+ \ifvoid\pcol@ccuse{@box}\else
+ \@cons\@freelist{\pcol@ccuse{@box}}%
+ \pcol@ccxdef{\voidb@x}%
+ \fi
+ \pcol@Fe{output@end(col)}%
+ \advance\pcol@currcol\@ne}%
+ \pcol@currcol\z@ \pcol@restorecolorstack
+ \global\setbox\pcol@colorins\box\voidb@x
+ \pcol@currcol\pcol@lastcol\relax \pcol@getcurrcol
+ \global\pcol@prevdepth\@pagedp
+ \global\@colht\textheight
+ \global\@colroom\textheight
+ \global\let\@deferlist\@dbldeferlist \gdef\@dbldeferlist{}%
+ \pcol@floatplacement
+ \pcol@lastpagefalse
+ \if@tempswa
+ \@startcolumn \@whilesw\if@fcolmade\fi{\@opcol\@startcolumn}%
+ \fi
+ \pcol@Logend\pcol@output@end
+}
+
+%% Starting Environment
+
+\def\pcol@invokeoutput#1{\deadcycles\z@
+ \pcol@Logstart{\pcol@invokeoutput
+ {#1:\the\pcol@currcol/\the\pcol@nextcol%
+ \ifnum#1=-10011:\ifpcol@sync s\fi \ifpcol@clear c\fi\fi}}%
+ \penalty-\@Miv \global\pcol@prevdepth\prevdepth \vbox{}%
+ \penalty#1\relax \prevdepth\pcol@prevdepth
+ \linewidth\columnwidth \advance\linewidth-\pcol@lrmargin
+ \ifdim\pcol@lrmargin>\z@ \parshape\@ne\@totalleftmargin\linewidth \fi
+ \hsize\columnwidth
+ \pcol@Logend{\pcol@invokeoutput{#1}}}
+
+\def\paracol{\global\pcol@pairedtrue \@ifnextchar[%]
+ \pcol@yparacol\pcol@xparacol}
+\def\pcol@xparacol#1{\pcol@zparacol[#1]{#1}}
+\def\pcol@yparacol[#1]{%
+ \@ifstar{\global\pcol@pairedfalse \pcol@zparacol[#1]}%
+ {\pcol@zparacol[#1]}}
+\def\pcol@zparacol[#1]#2{\par
+ \ifinner \@parmoderr \fi
+ \if@twocolumn \PackageError{paracol}{%
+ Environment paracol cannot work with ordinary two-column
+ typesetting.}\@ehb\fi
+ \global\pcol@ncolleft#1\relax \global\pcol@ncol#2\relax
+ \ifnum\pcol@ncolleft>\pcol@ncol \global\pcol@ncolleft\pcol@ncol \fi
+ \ifnum\pcol@ncolleft<\pcol@ncol\else \global\pcol@pairedtrue \fi
+ \ifpcol@paired\else \pcol@swapcolumnfalse \fi
+ \if@newlist \if@inlabel\else
+ \if@nobreak \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}\addvspace{-\itemsep}%
+ \fi
+ \global\@newlistfalse
+ \fi\fi
+ \global\let\pcol@counters\cl@@ckpt
+ \let\@elt\pcol@remctrelt \pcol@gcounters
+ \let\@elt\pcol@thectrelt \pcol@counters
+ \begingroup
+ \let\@elt\pcol@loadctrelt \csname pcol@counters0\endcsname
+ \let\@elt\pcol@cmpctrelt \global\let\@gtempa\@empty \pcol@counters
+ \pcol@synccounter\@gtempa
+ \endgroup
+ \global\@twocolumntrue \col@number\@ne
+ \pcol@setcolumnwidth\z@\pcol@ncolleft
+ \pcol@columnratioleft\pcol@colwidthspecleft
+ \ifnum\pcol@ncolleft<\pcol@ncol
+ \pcol@setcolumnwidth\pcol@ncolleft\pcol@ncol
+ \pcol@columnratioright\pcol@colwidthspecright
+ \fi
+ \pcol@lrmargin\textwidth \advance\pcol@lrmargin-\linewidth
+ \global\pcol@topskip\topskip
+ \global\pcol@textfloatsep\maxdimen
+ \pcol@lastpagefalse \xdef\pcol@firstprevdepth{\number\prevdepth}%
+ \let\pcol@@combinefloats\@combinefloats \let\@combinefloats\pcol@combinefloats
+ \let\pcol@@addmarginpar\@addmarginpar \let\@addmarginpar\pcol@addmarginpar
+ \let\end@dblfloat\pcol@end@dblfloat
+ \global\let\pcol@set@color\set@color
+ \ifx\set@color\relax
+ \let\pcol@bg@paintpage\relax \let\pcol@bg@paintbox\@gobble
+ \let\pcol@bg@paintcolumns\relax
+ \else
+ \let\set@color\pcol@set@color@push
+ \pcol@innerfalse
+ \global\pcol@everyvbox{\pcol@dummytoken}%
+ \pcol@everyvbox\everyvbox
+ \everyvbox{\the\pcol@everyvbox \pcol@innertrue}
+ \let\everyvbox\pcol@everyvbox
+ \aftergroup\pcol@restoreeveryvbox
+ \let\pcol@bg@paintpage\pcol@bg@@paintpage
+ \let\pcol@bg@paintbox\pcol@bg@@paintbox
+ \let\pcol@bg@paintcolumns\pcol@bg@@paintcolumns
+ \fi
+ \gdef\pcol@colorstack@shadow{}%
+ \pcol@footnotebase\c@footnote \global\pcol@nfootnotes\z@
+ \let\footnote\pcol@footnote
+ \let\footnotemark\pcol@footnotemark
+ \let\footnotetext\pcol@footnotetext
+ \ifpcol@scfnote
+ \def\footnoterule{{\columnwidth\textwidth \pcol@footnoterule}}%
+ \fi
+ \let\@footnotetext\pcol@fntext
+ \let\pcol@@marginpar\marginpar \let\marginpar\pcol@marginpar
+ \let\@mn@@marginnote\pcol@marginnote
+ \let\pcol@@xympar\@xympar \let\@xympar\pcol@xympar
+ \def\pcol@twosided[#1]{\pcol@ignore\twosided}%
+ \def\swapcolumninevenpages{\pcol@ignore\swapcolumninevenpages}%
+ \def\noswapcolumninevenpages{\pcol@ignore\noswapcolumninevenpages}%
+ \def\footnotelayout#1{\pcol@ignore\footnotelayout}%
+ \def\multicolumnfootnotes{\pcol@ignore\multicolumnfootnotes}%
+ \def\singlecolumnfootnotes{\pcol@ignore\singlecolumnfootnotes}%
+ \def\mergedfootnotes{\pcol@ignore\mergedfootnotes}%
+ \let\@elt\pcol@defcomelt \pcol@localcommands
+ \def\column{\pcol@com@column}%
+ \@namedef{column*}{\@nameuse{pcol@com@column*}}%
+ \global\let\pcol@com@column\pcol@defcolumn
+ \global\@namedef{pcol@com@column*}{\pcol@defcolumn
+ \@ifnextchar[%]
+ \pcol@sptext\relax}%
+ \def\paracol##1{\PackageError{paracol}{%
+ Environment paracol cannot be nested.}\@eha}%
+ \output{\pcol@output}%
+ \let\@elt\relax
+ \pcol@invokeoutput\pcol@op@start
+ \pcol@nextcol\z@
+ \@ifnextchar[%]
+ \pcol@sptext{\@nameuse{pcol@colpream0}}}
+\let\pcol@paracol\paracol
+
+\def\thecolumn{\number\pcol@currcol}
+
+\def\pcol@ignore#1{\PackageWarning{paracol}{The command \string#1 is not
+ effective in paracol environment and thus ignored}}
+
+\def\pcol@localcommands{%
+ \@elt{switchcolumn}%
+ \@elt{endcolumn}\@elt{endcolumn*}%
+ \@elt{nthcolumn}\@elt{endnthcolumn}\@elt{nthcolumn*}\@elt{endnthcolumn*}%
+ \@elt{leftcolumn}\@elt{endleftcolumn}\@elt{leftcolumn*}\@elt{endleftcolumn*}%
+ \@elt{rightcolumn}\@elt{endrightcolumn}%
+ \@elt{rightcolumn*}\@elt{endrightcolumn*}%
+ \@elt{flushpage}\@elt{clearpage}\@elt{cleardoublepage}%
+ \@elt{synccounter}\@elt{syncallcounters}}
+\def\pcol@defcomelt#1{%
+ \expandafter\let\expandafter\reserved@a\csname pcol@com@#1\endcsname
+ \expandafter\let\csname #1\endcsname\reserved@a}
+
+\gdef\@dbldeferlist{}
+\def\pcol@end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \@cons\@dbldeferlist\@currbox
+ \fi
+ \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
+ \else
+ \end@float
+ \fi
+}
+%% Column Width Setting
+
+\def\columnratio#1{\global\let\pcol@colwidthspecleft\relax
+ \gdef\pcol@columnratioleft{#1}%
+ \@ifnextchar[%]
+ \pcol@icolumnratio{\gdef\pcol@columnratioright{#1}}}
+\def\pcol@icolumnratio[#1]{\gdef\pcol@columnratioright{#1}}
+\columnratio{}\relax
+
+\def\setcolumnwidth#1{\global\let\pcol@columnratioleft\relax
+ \gdef\pcol@colwidthspecleft{#1}%
+ \@ifnextchar[%]
+ \pcol@isetcolumnwidth{\gdef\pcol@colwidthspecright{#1}}}
+\def\pcol@isetcolumnwidth[#1]{\gdef\pcol@colwidthspecright{#1}}
+
+\def\pcol@setcolumnwidth{%
+ \ifx\pcol@columnratioleft\relax \let\reserved@a\pcol@setcolwidth@s
+ \else \let\reserved@a\pcol@setcolwidth@r
+ \fi
+ \reserved@a}
+
+\def\pcol@setcolwidth@r#1#2#3#4{%
+ \@tempcntb#2\advance\@tempcntb-#1\advance\@tempcntb\m@ne
+ \@tempdima-\columnsep \multiply\@tempdima\@tempcntb
+ \advance\@tempdima\textwidth \@tempdimb\@tempdima
+ \@tempcnta#1\relax\@tempcntb#2\advance\@tempcntb\m@ne
+ \@for\reserved@a:=#3\do{%
+ \ifnum\@tempcnta<\@tempcntb
+ \@tempdimc\reserved@a\@tempdima
+ \expandafter\xdef\csname pcol@columnwidth\number\@tempcnta\endcsname{%
+ \number\@tempdimc sp}%
+ \global\@namedef{pcol@columnsep\number\@tempcnta}{\columnsep}%
+ \advance\@tempdimb-\@tempdimc
+ \advance\@tempcnta\@ne
+ \fi}%
+ \@tempcntb#2\advance\@tempcntb-\@tempcnta
+ \divide\@tempdimb\@tempcntb
+ \@whilenum\@tempcnta<#2\do{%
+ \expandafter\xdef\csname pcol@columnwidth\number\@tempcnta\endcsname{%
+ \number\@tempdimb sp}%
+ \global\@namedef{pcol@columnsep\number\@tempcnta}{\columnsep}%
+ \advance\@tempcnta\@ne}%
+}
+
+\def\pcol@setcolwidth@s#1#2#3#4{\begingroup
+ \dimen@\z@ \dimen@ii\z@ \def\pcol@setcw@filunit{\@ne\p@}%
+ \let\pcol@setcw@c\pcol@setcw@accumwd \let\pcol@setcw@s\pcol@setcw@accumwd
+ \pcol@setcw@scan#1#2{#4}%
+ \advance\dimen@-\@tempdima \advance\dimen@ii-\@tempdimb
+ \pcol@setcw@calcfactors
+ \def\pcol@setcw@c{\pcol@setcw@set{width}}%
+ \def\pcol@setcw@s{\pcol@setcw@set{sep}}%
+ \let\pcol@setcw@filunit\dimen@ii
+ \pcol@setcw@scan#1#2{#4}%
+ \endgroup}
+\def\pcol@setcw@scan#1#2#3{\def\reserved@a{#3}%
+ \@tempcnta#1\relax \@whilenum\@tempcnta<#2\do{
+ \edef\reserved@a{\reserved@a,}\advance\@tempcnta\@ne}%
+ \@tempcnta#1\relax
+ \expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=\reserved@a
+ \do{%
+ \ifnum\@tempcnta<#2\relax
+ \expandafter\pcol@setcw@getspec\reserved@a//\@nil
+ \fi
+ \advance\@tempcnta\@ne}}
+\def\pcol@setcw@getspec#1/#2/#3\@nil{%
+ \pcol@setcw@getspec@i\fill{#1}\pcol@setcw@c
+ \pcol@setcw@getspec@i\columnsep{#2}\pcol@setcw@s}
+\def\pcol@setcw@getspec@i#1#2{%
+ \def\reserved@a{}%
+ \@tfor\reserved@b:=#2\do{\edef\reserved@a{\reserved@a\reserved@b}}
+ \ifx\reserved@a\@empty \let\reserved@a#1\fi
+ \let\@gtempa\relax
+ {\def\fill{1\p@\gdef\@gtempa{}}\@tempskipa\reserved@a}%
+ \ifx\@gtempa\relax \@tempskipa\reserved@a\relax
+ \else \expandafter\pcol@setcw@fill\reserved@a
+ \fi
+ \@tempdima\@tempskipa
+ \advance\@tempskipa0\p@\@plus\@m\p@\@minus\@m\p@\relax
+ \expandafter\pcol@extract@fil\the\@tempskipa\@nil}
+\def\pcol@setcw@fill#1\fill{\def\reserved@b{#1}%
+ \ifx\reserved@b\@empty \let\reserved@b\@ne \fi
+ \@tempskipa0\p@\@plus\reserved@b fil\relax}
+
+\def\pcol@setcw@accumwd{\advance\dimen@\@tempdima \advance\dimen@ii\@tempdimb}
+\def\pcol@setcw@set#1{%
+ \@tempdima\pcol@setcw@scale\@tempdima \advance\@tempdima\@tempdimb
+ \expandafter\xdef\csname pcol@column#1\number\@tempcnta\endcsname{%
+ \number\@tempdima sp}}
+
+\def\pcol@setcw@calcfactors{%
+ \ifdim\dimen@=\textwidth \def\pcol@setcw@scale{}\dimen@ii\z@
+ \else
+ \pcol@setcw@calcf\textwidth\dimen@\pcol@setcw@scale
+ \ifdim\dimen@<\textwidth \ifdim\dimen@ii>\z@
+ \def\pcol@setcw@scale{}%
+ \@tempdimc\textwidth \advance\@tempdimc-\dimen@
+ \pcol@setcw@calcf\@tempdimc\dimen@ii\reserved@a \dimen@ii\@tempdimb
+ \else \dimen@ii\z@ \fi
+ \else \dimen@ii\z@ \fi
+ \fi}
+\def\pcol@setcw@calcf#1#2#3{%
+ \@tempdimb#1\@tempdima#2\@tempcnta\z@
+ \ifdim\@tempdima=\z@ \@tempdima1sp\relax\fi
+ \@whiledim\@tempdimb<8192\p@\do{%
+ \multiply\@tempdimb\tw@ \advance\@tempcnta\@ne}%
+ \@tempdimc\@tempdima
+ \@whiledim\@tempdima=\@tempdimc\do{%
+ \divide\@tempdimc\tw@ \multiply\@tempdimc\tw@
+ \ifdim\@tempdima=\@tempdimc
+ \divide\@tempdima\tw@ \divide\@tempdimc\tw@ \advance\@tempcnta\@ne
+ \fi}
+ \advance\@tempdima-1sp\relax
+ \@whilenum\@tempdima>32768\do{\divide\@tempdima\tw@ \advance\@tempcnta\@ne}%
+ \advance\@tempdima1sp\relax
+ \divide\@tempdimb\@tempdima \@tempdimc\@tempdimb \@tempcntb\@tempcnta
+ \@whilenum\@tempcntb>\z@\do{\divide\@tempdimc\tw@ \advance\@tempcntb\m@ne}
+ \ifnum\@tempdimc>16383\relax
+ \PackageError{%
+ Scaling/filling factor for column/gap width is too large.}\@eha
+ \@tempdimb\@M\p@
+ \else
+ \@tempcntb\sixt@@n \advance\@tempcntb-\@tempcnta
+ \ifnum\@tempcntb<\z@
+ \@whilenum\@tempcntb<\z@\do{\divide\@tempdimb\tw@ \advance\@tempcntb\@ne}%
+ \else
+ \@whilenum\@tempcntb>\z@\do{%
+ \multiply\@tempdimb\tw@ \advance\@tempcntb\m@ne}%
+ \fi
+ \fi
+ \expandafter\pcol@extract@pt\the\@tempdimb#3}
+
+\@tempskipa 1\p@\@plus1fil\@minus1fil\relax
+\def\pcol@defkw1.0#1 #2 1.0#3 #4 1.0#5\@nil{%
+ \def\pcol@kw@pt{#1}\def\pcol@kw@plus{#2}\def\pcol@kw@fil{#3}%
+ \def\pcol@kw@minus{#4}}
+\expandafter\pcol@defkw\the\@tempskipa\@nil
+
+\edef\pcol@def@extract@fil{%
+ \def\noexpand\pcol@extract@fil
+ ##1\space\pcol@kw@plus\space##2\space\pcol@kw@minus##3\noexpand\@nil{%
+ \noexpand\pcol@extract@fil@i##2\noexpand\@nil}}
+\pcol@def@extract@fil
+\def\pcol@extract@fil@i#1.#2\@nil{\def\reserved@a{#1.#2}%
+ \afterassignment\pcol@extract@fil@ii\count@#2\@nil}
+\def\pcol@extract@fil@ii#1\@nil{\def\reserved@b{#1}%
+ \ifx\reserved@b\pcol@kw@pt \@tempdimb\z@
+ \else \expandafter\pcol@extract@fil@iii\reserved@a\@nil
+ \fi}
+\edef\pcol@def@extract@fil@iii{%
+ \def\noexpand\pcol@extract@fil@iii##1\pcol@kw@fil##2\noexpand\@nil{%
+ \@tempdimb\noexpand\pcol@setcw@filunit\relax \@tempdimb##1\@tempdimb}}
+\pcol@def@extract@fil@iii
+
+\edef\pcol@def@extract@pt{%
+ \def\noexpand\pcol@extract@pt##1\pcol@kw@pt##2{\def##2{##1}}}
+\pcol@def@extract@pt
+
+%% Counter Operations
+
+\def\globalcounter{\@ifstar\pcol@globalcounter@s\pcol@globalcounter}
+\def\pcol@globalcounter@s{\global\let\pcol@gcounters\cl@@ckpt}
+\def\pcol@globalcounter#1{{%
+ \@tempswafalse \def\reserved@a{#1}%
+ \def\@elt##1{\def\reserved@b{##1}%
+ \ifx\reserved@a\reserved@b \@tempswatrue \fi}%
+ \pcol@gcounters
+ \if@tempswa\else \@cons\pcol@gcounters{{#1}}\fi}}
+\gdef\pcol@gcounters{\@elt{page}}
+\def\localcounter#1{%
+ \expandafter\ifx\csname c@#1\endcsname\c@page\else
+ \pcol@removecounter\pcol@gcounters{#1}%
+ \fi}
+\def\pcol@remctrelt#1{%
+ \expandafter\let\expandafter\reserved@a\csname cl@#1\endcsname
+ \expandafter\let\csname pcol@cl@#1\endcsname\reserved@a
+ \expandafter\ifx\csname c@#1\endcsname\c@page\else
+ \@namedef{cl@#1}{\pcol@stepcounter{#1}}%
+ \fi
+ \pcol@removecounter\pcol@counters{#1}}
+\def\pcol@removecounter#1#2{%
+ \def\reserved@a{#2}\let\reserved@b#1\relax \global\let#1\@empty
+ {\def\@elt{\pcol@iremctrelt#1}\reserved@b}}
+\def\pcol@iremctrelt#1#2{%
+ \def\reserved@b{#2}%
+ \ifx\reserved@a\reserved@b\else \@cons#1{{#2}}\fi}
+
+\def\definethecounter#1#2#3{\@namedef{pcol@thectr@#1#2}{#3}}
+\def\pcol@thectrelt#1{%
+ \expandafter\let\expandafter\reserved@a\csname the#1\endcsname
+ \expandafter\let\csname pcol@thectr@#1\endcsname\reserved@a
+ \expandafter\let\expandafter\reserved@a\csname pcol@thectr@#10\endcsname
+ \ifx\reserved@a\relax\else
+ \expandafter\let\csname the#1\endcsname\reserved@a
+ \fi}
+
+\def\pcol@loadctrelt#1#2{\@namedef{pcol@ctr@#1}{#2}}
+\def\pcol@storecounters{\pcol@sscounters\pcol@storectrelt}
+\def\pcol@storectrelt#1{\@cons\@gtempa{{#1}{\@nameuse{pcol@ctr@#1}}}}
+\def\pcol@savecounters{\pcol@sscounters\pcol@savectrelt}
+\def\pcol@savectrelt#1{\@cons\@gtempa{{#1}{\number\csname c@#1\endcsname}}}
+\def\pcol@sscounters#1{\begingroup
+ \global\let\@gtempa\@empty
+ \let\@elt#1\relax \pcol@counters
+ \let\@elt\relax
+ \expandafter\xdef\csname pcol@counters\number\pcol@currcol\endcsname{%
+ \@gtempa}%
+ \endgroup}
+
+\def\pcol@cmpctrelt#1{\@tempswafalse \@tempcnta\@nameuse{c@#1}%
+ \expandafter\ifx\csname pcol@ctr@#1\endcsname\relax \@tempswatrue
+ \else\ifnum\@nameuse{pcol@ctr@#1}=\@tempcnta\else \@tempswatrue
+ \fi\fi
+ \if@tempswa \@cons\@gtempa{{#1}}\fi}
+
+\def\pcol@com@synccounter#1{\pcol@synccounter{\@elt{#1}}}
+\def\pcol@synccounter#1{{%
+ \let\@elt\relax \edef\reserved@a{#1}%
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \let\@elt\pcol@loadctrelt \@nameuse{pcol@counters\number\pcol@currcol}%
+ \let\@elt\pcol@syncctrelt \reserved@a
+ \pcol@storecounters
+ \advance\pcol@currcol\@ne}}}
+\def\pcol@syncctrelt#1{%
+ \expandafter\edef\csname pcol@ctr@#1\endcsname{\number\@nameuse{c@#1}}}
+
+\def\pcol@com@syncallcounters{{%
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \pcol@savecounters \advance\pcol@currcol\@ne}}}
+
+\def\pcol@setctrelt#1#2{%
+ \global\csname c@#1\endcsname#2\relax
+ \expandafter\ifx\csname pcol@thectr@#1\number\pcol@currcol\endcsname\relax
+ \expandafter\let\expandafter\reserved@a\csname pcol@thectr@#1\endcsname
+ \else
+ \expandafter\let\expandafter\reserved@a
+ \csname pcol@thectr@#1\number\pcol@currcol\endcsname
+ \fi
+ \expandafter\let\csname the#1\endcsname\reserved@a}
+
+\def\pcol@stepcounter#1{\begingroup
+ \pcol@currcol\z@ \@whilenum\pcol@currcol<\pcol@ncol\do{%
+ \let\@elt\pcol@stpldelt \@nameuse{pcol@counters\number\pcol@currcol}%
+ \let\@elt\pcol@stpclelt \@nameuse{pcol@cl@#1}%
+ \pcol@savecounters
+ \advance\pcol@currcol\@ne}%
+ \endgroup
+ \let\@elt\@stpelt \@nameuse{pcol@cl@#1}}
+\def\pcol@stpldelt#1#2{\csname c@#1\endcsname#2\relax}
+\def\pcol@stpclelt#1{\csname c@#1\endcsname\z@}
+
+%% Column-Switching Commands and Environments
+
+\def\pcol@par{\ifvmode\else \par \fi}
+
+\def\pcol@com@switchcolumn{\pcol@par
+ \pcol@defcolumn
+ \@tempcnta\pcol@currcol \advance\@tempcnta\@ne
+ \ifnum\@tempcnta<\pcol@ncol\else \@tempcnta\z@ \fi
+ \@ifnextchar[%]
+ \pcol@switchcolumn{\pcol@switchcolumn[\@tempcnta]}}
+\def\pcol@switchcolumn[#1]{%
+ \pcol@nextcol#1\relax
+ \@tempswafalse
+ \ifnum#1<\z@ \@tempswatrue \fi
+ \ifnum#1<\pcol@ncol\else \@tempswatrue \fi
+ \if@tempswa
+ \PackageError{paracol}{%
+ Column number \number#1 must be less than \number\pcol@ncol}\@eha
+ \pcol@nextcol\z@
+ \fi
+ \@ifstar\pcol@iswitchcolumn\pcol@switchcol}
+\def\pcol@iswitchcolumn{%
+ \global\pcol@synctrue
+ \@ifnextchar[%]
+ \pcol@sptext\pcol@switchcol}
+
+\long\def\pcol@sptext[#1]{%
+ \@tempcnta\pcol@nextcol
+ \global\pcol@synctrue \pcol@nextcol\z@
+ \global\pcol@sptextstarttrue
+ \pcol@switchcol
+ \global\pcol@sptextstartfalse \global\pcol@sptexttrue
+ \begingroup
+ \columnwidth\textwidth \hsize\columnwidth
+ \linewidth\columnwidth \advance\linewidth-\pcol@lrmargin
+ \ifdim\pcol@lrmargin>\z@ \parshape\@ne\@totalleftmargin\linewidth \fi
+ \col@number\@ne #1\pcol@par
+ \global\let\@svsechd\@svsechd \global\let\@svsec\@svsec
+ \expandafter\global\expandafter\everypar\expandafter{\the\everypar}%
+ \endgroup
+ \pcol@nextcol\@tempcnta \global\pcol@synctrue \pcol@switchcol}
+
+\def\pcol@switchcol{%
+ \pcol@savecounters
+ \ifpcol@sync
+ \@tempdima\pcol@ensurevspace\relax
+ \edef\pcol@@ensurevspace{\number\@tempdima sp\relax}%
+ \global\pcol@syncfalse \pcol@visitallcols\@@par \global\pcol@synctrue
+ \pcol@invokeoutput\pcol@op@switch
+ \@whilesw\ifpcol@flush\fi{%
+ \vfil \penalty-\@M
+ \global\pcol@syncfalse \pcol@visitallcols\newpage \global\pcol@synctrue
+ \pcol@invokeoutput\pcol@op@switch}%
+ \ensurevspace{\baselineskip}%
+ \else
+ \pcol@invokeoutput\pcol@op@switch
+ \fi
+ \let\@elt\pcol@setctrelt
+ \csname pcol@counters\number\pcol@currcol\endcsname
+ \let\@elt\pcol@aconlyelt \pcol@aconly \let\@elt\relax
+ \@nameuse{pcol@colpream\ifpcol@sptextstart-1\else\number\pcol@currcol\fi}}
+
+\def\pcol@visitallcols#1{\begingroup
+ \@tempcnta\z@ \@tempcntb\pcol@currcol
+ \@whilenum\@tempcnta<\pcol@ncol\do{%
+ \ifnum\@tempcnta=\@tempcntb\else
+ \pcol@nextcol\@tempcnta \pcol@invokeoutput\pcol@op@switch #1%
+ \fi
+ \advance\@tempcnta\@ne}%
+ \pcol@nextcol\@tempcntb \pcol@invokeoutput\pcol@op@switch
+ \endgroup}
+
+\def\pcol@defcolumn{%
+ \gdef\pcol@com@column{\pcol@switchenv{column}\relax}%
+ \global\@namedef{pcol@com@column*}{\pcol@switchenv{column*}*}}
+
+\def\pcol@com@nthcolumn#1{\pcol@switchenv{nthcolumn}[#1]\relax}
+\@namedef{pcol@com@nthcolumn*}#1{\pcol@switchenv{nthcolumn*}[#1]*}
+\def\pcol@com@leftcolumn{\pcol@switchenv{leftcolumn}[0]\relax}
+\@namedef{pcol@com@leftcolumn*}{\pcol@switchenv{leftcolumn*}[0]*}
+\def\pcol@com@rightcolumn{\pcol@switchenv{rightcolumn}[1]\relax}
+\@namedef{pcol@com@rightcolumn*}{\pcol@switchenv{rightcolumn*}[1]*}
+
+\def\pcol@switchenv#1{\let\reserved@a\switchcolumn
+ \def\switchcolumn{\PackageError{paracol}{%
+ Column switching commands and environments cannot be used in #1}\@eha}
+ \reserved@a}
+
+\def\pcol@com@endcolumn{\pcol@par
+ \expandafter\global\expandafter\everypar\expandafter{\the\everypar}}
+\expandafter\let\csname pcol@com@endcolumn*\endcsname\pcol@com@endcolumn
+\let\pcol@com@endnthcolumn\pcol@com@endcolumn
+\expandafter\let\csname pcol@com@endnthcolumn*\endcsname\pcol@com@endcolumn
+\let\pcol@com@endleftcolumn\pcol@com@endcolumn
+\expandafter\let\csname pcol@com@endleftcolumn*\endcsname\pcol@com@endcolumn
+\let\pcol@com@endrightcolumn\pcol@com@endcolumn
+\expandafter\let\csname pcol@com@endrightcolumn*\endcsname\pcol@com@endcolumn
+
+\def\definecolumnpreamble#1#2{\@tempcnta#1\relax
+ \expandafter\gdef\csname pcol@colpream\number\@tempcnta\endcsname{#2}}
+
+\def\ensurevspace#1{{\@tempdima#1\relax \gdef\pcol@ensurevspace{#1}}}
+\ensurevspace{\baselineskip}
+
+%% Disabling \addcontentsline
+
+\def\addcontentsonly#1#2{%
+ \@ifundefined{pcol@ac@def@#1}
+ {\PackageError{paracol}{Unknown contents type #1}\@eha}\relax
+ \@cons\pcol@aconly{{#1}{#2}}}
+\gdef\pcol@aconly{}
+
+\def\pcol@aconlyelt#1#2{%
+ \ifnum#2=\pcol@currcol \@nameuse{pcol@ac@def@#1}{enable}%
+ \else \@nameuse{pcol@ac@def@#1}{disable}%
+ \fi}
+\def\pcol@gobblethree#1#2#3{}
+\let\pcol@addcontentsline\addcontentsline
+
+\def\pcol@ac@def@toc#1{%
+ \expandafter\let\expandafter\@sect\csname pcol@ac@#1@toc\endcsname}
+\let\pcol@ac@enable@toc\@sect
+\def\pcol@ac@disable@toc#1#2#3#4#5#6[#7]#8{%
+ \let\addcontentsline\pcol@gobblethree
+ \pcol@ac@enable@toc{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
+ \let\addcontentsline\pcol@addcontentsline}
+
+\def\pcol@ac@def@lof#1{\@nameuse{pcol@ac@caption@#1}{lof}}
+\def\pcol@ac@def@lot#1{\@nameuse{pcol@ac@caption@#1}{lot}}
+\def\pcol@ac@caption@enable{\pcol@ac@caption@def\@tempswatrue}
+\def\pcol@ac@caption@disable{\pcol@ac@caption@def\@tempswafalse}
+\def\pcol@ac@caption@def#1#2{\let\@caption\pcol@ac@caption
+ \expandafter\let\csname pcol@ac@caption@if@#2\endcsname#1}
+\let\pcol@ac@caption@if@lof\@tempswatrue
+\let\pcol@ac@caption@if@lot\@tempswatrue
+\long\def\pcol@ac@caption#1[#2]#3{%
+ \@nameuse{pcol@ac@caption@if@\@nameuse{ext@#1}}%
+ \if@tempswa\else \let\addcontentsline\pcol@gobblethree \fi
+ \pcol@ac@caption@latex{#1}[{#2}]{#3}%
+ \let\addcontentsline\pcol@addcontentsline}
+\let\pcol@ac@caption@latex\@caption
+
+%% Page Flushing Commands
+
+\def\pcol@com@flushpage{\pcol@flushclear\voidb@x
+ \pcol@invokeoutput\pcol@op@flush}
+\def\pcol@com@clearpage{\pcol@flushclear\voidb@x
+ \pcol@invokeoutput\pcol@op@clear}
+\def\pcol@com@cleardoublepage{\pcol@com@clearpage
+ \if@twoside \ifodd\c@page\else \ifpcol@paired\else \pcol@com@flushpage
+ \fi\fi\fi}
+\def\pcol@flushclear#1{\pcol@par
+ \pcol@nextcol\pcol@currcol
+ \pcol@visitallcols\@@par
+ \pcol@cleartrue \global\pcol@synctrue
+ \ifpcol@lastpage \pcol@lastpagesavetrue \else \pcol@lastpagesavefalse \fi
+ \pcol@invokeoutput\pcol@op@switch \ifvoid#1\else \global\pcol@flushtrue \fi
+ \@whilesw\ifpcol@flush\fi{%
+ \pcol@lastpagefalse
+ \vfil \penalty-\@M \pcol@cleartrue \global\pcol@synctrue
+ \ifpcol@lastpagesave \pcol@lastpagetrue \fi
+ \pcol@invokeoutput\pcol@op@switch
+ \ifvoid#1\else \global\pcol@flushtrue \fi}%
+ \pcol@clearfalse}
+
+%% Commands for Footnotes
+
+\def\footnotelayout#1{\@ifundefined{pcol@fnlayout@#1}%
+ {\PackageError{paracol}{Unknown footnote layout specifier #1}}%
+ {\@nameuse{pcol@fnlayout@#1}}}
+\def\pcol@fnlayout@c{\global\pcol@scfnotefalse \global\pcol@mgfnotefalse
+ \localcounter{footnote}\nofncounteradjustment}
+\def\pcol@fnlayout@p{\global\pcol@scfnotetrue \global\pcol@mgfnotefalse
+ \globalcounter{footnote}\fncounteradjustment}
+\def\pcol@fnlayout@m{\pcol@fnlayout@p\global\pcol@mgfnotetrue}
+
+\let\multicolumnfootnotes\pcol@fnlayout@c
+\let\singlecolumnfootnotes\pcol@fnlayout@p
+\let\mergedfootnotes\pcol@fnlayout@m
+
+\def\pcol@fntext{%
+ \let\reserved@a\pcol@fntexttop
+ \ifpcol@scfnote \ifnum\pcol@page<\pcol@toppage
+ \let\reserved@a\pcol@fntextother
+ \fi\fi
+ \reserved@a}
+\long\def\pcol@fntexttop#1{%
+ \pcol@Logfn{\pcol@fntexttop{\@thefnmark}}%
+ \insert\footins{\pcol@fntextbody{#1}\penalty\interlinepenalty}}
+\long\def\pcol@fntextother#1{%
+ \global\setbox\pcol@topfnotes\vbox{\unvbox\pcol@topfnotes
+ \penalty\interlinepenalty\pcol@fntextbody{#1}}}
+\long\def\pcol@fntextbody#1{\setbox\@tempboxa\vbox{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \hsize \ifpcol@scfnote \textwidth \else \columnwidth \fi
+ \@parboxrestore
+ \protected@edef\@currentlabel{\p@footnote\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}%
+ \@tempdima\ht\@tempboxa \advance\@tempdima\dp\@tempboxa
+ \@tempdimb\textheight \advance\@tempdimb-\skip\footins
+ \ifdim\@tempdima>\@tempdimb
+ \setbox\@tempboxa\vbox to\@tempdimb{\unvbox\@tempboxa\vss}%
+ \PackageWarning{paracol}{Too tall footnote}%
+ \fi
+ \box\@tempboxa}
+
+\def\fncounteradjustment{\global\pcol@fncounteradjustmenttrue}
+\def\nofncounteradjustment{\global\pcol@fncounteradjustmentfalse}
+\nofncounteradjustment
+
+\let\pcol@footnoterule\footnoterule
+\let\pcol@@footnote\footnote
+\let\pcol@@footnotemark\footnotemark
+\let\pcol@@footnotetext\footnotetext
+\def\pcol@footnote{\@ifstar{\pcol@adjustfnctr\pcol@ifootnote}\pcol@ifootnote}
+\def\pcol@ifootnote{\global\advance\pcol@nfootnotes\@ne \pcol@@footnote}
+\def\pcol@footnotemark{\@ifstar
+ {\pcol@adjustfnctr{\pcol@ifootnotemark\relax}}%
+ \pcol@ifootnotemark}
+\def\pcol@ifootnotemark{\global\advance\pcol@nfootnotes\@ne
+ \pcol@@footnotemark}
+\def\pcol@adjustfnctr#1{\@ifnextchar[%]
+ {\pcol@iadjustfnctr{#1}}{\pcol@iadjustfnctr{#1}[+1]}}
+\def\pcol@iadjustfnctr#1[#2]{\pcol@calcfnctr#2\@nil
+ \global\c@footnote\@tempcnta \global\advance\c@footnote\m@ne#1}
+\def\pcol@calcfnctr#1#2\@nil{\@tempcnta\c@footnote
+ \def\reserved@a{#1}\def\reserved@b{+}%
+ \ifx\reserved@a\reserved@b \advance\@tempcnta#2\relax
+ \else \def\reserved@b{-}%
+ \ifx\reserved@a\reserved@b \advance\@tempcnta-#2\relax
+ \else \@tempcnta\pcol@footnotebase \advance\@tempcnta#1#2\relax
+ \fi\fi}
+\def\pcol@footnotetext{\@ifstar\pcol@ifootnotetext\pcol@@footnotetext}
+\def\pcol@ifootnotetext{\@ifnextchar[%]
+ \pcol@iifootnotetext{\stepcounter{footnote}\pcol@@footnotetext}}
+\def\pcol@iifootnotetext[#1]{\pcol@calcfnctr#1\@nil
+ \expandafter\pcol@@footnotetext\expandafter[\number\@tempcnta]}
+
+%% Commands for Marginal Notes
+
+\def\pcol@marginpar{\let\pcol@mparoffset\z@ \pcol@@marginpar}
+\long\def\pcol@marginnote[#1]#2[#3]{\endgroup
+ \pcol@mn@warning \global\let\pcol@mn@warning\relax
+ \def\pcol@mparoffset{#3}%
+ \pcol@@marginpar[\marginfont\raggedleftmarginnote#1]%
+ {\marginfont\raggedrightmarginnote#2}}
+\def\pcol@mn@warning{%
+ \PackageWarning{paracol}{\string\margninnote\space is emulated by
+ \string\marginpar.}}
+\def\pcol@xympar{%
+ \ifnum\@floatpenalty<\z@ \global\dimen\@marbox\pcol@mparoffset\relax \fi
+ \pcol@@xympar}
+
+%% Column Swapping
+
+\def\twosided{\@ifnextchar[%]
+ {\pcol@twosided}{\pcol@twosided[pcmb]}}
+\def\pcol@twosided[#1]{%
+ \global\@twosidefalse \global\pcol@swapcolumnfalse
+ \global\pcol@swapmarginparfalse \global\pcol@bg@swapfalse
+ \@tfor\reserved@a:=#1\do{%
+ \@ifundefined{pcol@twosided@\reserved@a}%
+ {\PackageError{paracol}{Unknown two-siding feature \reserved@a}}%
+ {\@nameuse{pcol@twosided@\reserved@a}}}}
+\def\pcol@twosided@p{\global\@twosidetrue}
+\def\pcol@twosided@c{\global\pcol@swapcolumntrue}
+\def\pcol@twosided@m{\global\pcol@swapmarginpartrue}
+\def\pcol@twosided@b{\global\pcol@bg@swaptrue}
+
+\def\swapcolumninevenpages{\global\pcol@swapcolumntrue}
+\def\noswapcolumninevenpages{\global\pcol@swapcolumnfalse}
+
+\def\pcol@swapcolumn#1#2#3#4{%
+ \edef\pcol@colsepid{\number#1}%
+ \ifpcol@swapcolumn
+ \ifodd\c@page\relax #2#1\relax
+ \else
+ #2#4\relax \advance#2-#1\relax \advance#2#3\relax \advance#2-\tw@
+ \edef\pcol@colsepid{\number#2}%
+ \advance#2\@ne
+ \fi
+ \else #2#1\relax
+ \fi}
+
+\def\marginparthreshold#1{\@tempcnta#1\relax
+ \xdef\pcol@mpthreshold@l{\number\@tempcnta}%
+ \@ifnextchar[%]
+ \pcol@marginparthreshold{\xdef\pcol@mpthreshold@r{\number\@tempcnta}}}
+\def\pcol@marginparthreshold[#1]{\@tempcnta#1\relax
+ \xdef\pcol@mpthreshold@r{\number\@tempcnta}}
+\marginparthreshold{1}
+
+%% Commands for Text Coloring
+
+\def\columncolor{\def\pcol@colorcommand{\string\columncolor}%
+ \@ifnextchar[%]
+ \pcol@xcolumncolor\pcol@ycolumncolor}
+\def\pcol@xcolumncolor[#1]#2{\pcol@columncolor{\color[#1]{#2}}}
+\def\pcol@ycolumncolor#1{\pcol@columncolor{\color{#1}}}
+\def\pcol@columncolor#1{\@ifnextchar[%]
+ {\pcol@icolumncolor{#1}}{\pcol@icolumncolor{#1}[\number\pcol@currcol]}}
+\def\normalcolumncolor{\def\pcol@colorcommand{\string\normalcolumncolor}%
+ \@ifnextchar[%]
+ {\pcol@icolumncolor\normalcolor}%
+ {\pcol@icolumncolor\normalcolor[\number\pcol@currcol]}}
+\def\pcol@icolumncolor#1[#2]{%
+ \@tempswafalse
+ \ifpcol@inner \@tempswatrue \fi
+ \ifinner \@tempswatrue \fi
+ \ifmmode \@tempswatrue \fi
+ \ifx\set@color\relax
+ \PackageWarning{paracol}{\pcol@colorcommand\space is not effective
+ without some coloring package}%
+ \else\if@tempswa
+ \PackageWarning{paracol}{\pcol@colorcommand\space is not effective
+ when not in outer par mode}%
+ \else
+ \begingroup
+ \let\@elt\relax
+ \ifx\pcol@paracol\paracol
+ \pcol@iicolumncolor{#1}{#2}%
+ \else\ifnum#2=\pcol@currcol
+ \def\@elt##1{\reset@color}\pcol@scancst@shadow
+ \pcol@iicolumncolor{#1}{#2}%
+ \def\@elt##1{\def\current@color{##1}\let\aftergroup\@gobble
+ \pcol@set@color}%
+ \pcol@scancst@shadow
+ \setbox\@tempboxa\vbox{\let\set@color\pcol@set@color
+ \let\aftergroup\@gobble #1}%
+ \ht\@tempboxa1sp \dp\@tempboxa1sp \wd\@tempboxa\z@\relax
+ \insert\pcol@colorins{\box\@tempboxa}%
+ \ifvmode\if@nobreak \nobreak \fi\fi
+ \else
+ \pcol@iicolumncolor{#1}{#2}%
+ \pcol@currcol#2\relax
+ \ifvoid\pcol@ccuse{@box}%
+ \@next\@currbox\@freelist{}\pcol@ovf
+ \pcol@ccxdef{\@currbox}%
+ \fi
+ \global\setbox\pcol@ccuse{@box}\vbox{\let\set@color\pcol@set@color
+ \let\aftergroup\@gobble #1}%
+ \fi\fi
+ \endgroup
+ \fi\fi
+ \ignorespaces}
+\def\pcol@iicolumncolor#1#2{{\let\set@color\relax #1%
+ \expandafter\xdef\csname pcol@columncolor#2\endcsname{\current@color}}}
+\def\pcol@scancst@shadow{%
+ \pcol@ifccdefined{\@elt{\pcol@ccuse{}}}\relax
+ \pcol@colorstack@shadow}
+
+\def\pcol@mcpushlimit{1000}
+\def\pcol@set@color@push{\pcol@set@color
+ \ifmmode\else\ifinner \pcol@innertrue \fi\fi
+ \ifpcol@inner\else
+ \ifmmode
+ \global\advance\pcol@mcid\@ne
+ \ifnum \pcol@mcid>\pcol@mcpushlimit\relax
+ \PackageError{paracol}{Too many coloring commands in math mode}\@ehb
+ \global\pcol@mdid\@ne
+ \fi
+ \@tempdima\pcol@mcid sp\relax
+ \expandafter\aftergroup
+ \csname pcol@reset@color@mpop@\number\pcol@mcid\endcsname
+ \expandafter\xdef
+ \csname pcol@reset@color@mpop@\number\pcol@mcid\endcsname
+ {\noexpand\pcol@reset@color@mpop{\number\pcol@mcid}}%
+ \else
+ \aftergroup\pcol@reset@color@pop \@tempdima\z@
+ \fi
+ \let\pcol@elt@save\@elt \let\@elt\relax
+ \edef\pcol@colorstack@shadow{\pcol@colorstack@shadow\@elt{\current@color}}%
+ \let\@elt\pcol@elt@save
+ \setbox\@tempboxa\vbox{\let\aftergroup\@gobble \pcol@set@color}%
+ \ht\@tempboxa1sp \dp\@tempboxa\z@ \wd\@tempboxa\@tempdima
+ \insert\pcol@colorins{\box\@tempboxa}\ifhmode \pcol@fcwhyphenate \fi
+ \ifvmode\if@nobreak \nobreak \fi\fi
+ \fi}
+
+\def\pcol@reset@color@pop{%
+ \ifpcol@output
+ \setbox\@tempboxa\vbox{\reset@color}%
+ \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa\z@
+ \insert\pcol@colorins{\box\@tempboxa}%
+ \ifvmode\if@nobreak \nobreak \fi\fi
+ \fi}
+\def\pcol@reset@color@mpop#1{%
+ \setbox\@tempboxa\vbox{\reset@color}%
+ \ht\@tempboxa\z@ \dp\@tempboxa\z@ \wd\@tempboxa#1sp\relax
+ \insert\pcol@colorins{\box\@tempboxa}%
+ \ifvmode\if@nobreak \nobreak \fi\fi
+}
+
+\def\coloredwordhyphenated{\def\pcol@fcwhyphenate{\hskip\z@}}
+\def\nocoloredwordhyphenated{\let\pcol@fcwhyphenate\relax}
+\coloredwordhyphenated
+
+%% Commands for Column-Separating Rule Color and Background Painting
+
+\def\colseprulecolor{\def\pcol@colorcommand{\string\colseprulecolor}%
+ \@ifnextchar[%]
+ \pcol@defcseprulecolor@x\pcol@defcseprulecolor@y}
+\def\pcol@defcseprulecolor@x[#1]#2{\pcol@defcseprulecolor{\color[#1]{#2}}}
+\def\pcol@defcseprulecolor@y#1{\pcol@defcseprulecolor{\color{#1}}}
+\def\pcol@defcseprulecolor#1{\@ifnextchar[%]
+ {\pcol@defcseprulecolor@i{#1}}{\pcol@defcseprulecolor@i{#1}[]}}
+\def\normalcolseprulecolor{%
+ \def\pcol@colorcommand{\string\normalcolseprulecolor}%
+ \@ifnextchar[%]
+ {\pcol@defcseprulecolor@i\normalcolor}%
+ {\pcol@defcseprulecolor@i\normalcolor[]}}
+\def\pcol@defcseprulecolor@i#1[#2]{%
+ \ifx\set@color\relax
+ \PackageWarning{paracol}{\pcol@colorcommand\space is not effective
+ without some coloring package}%
+ \else
+ {\let\set@color\relax #1}%
+ \global\@namedef{pcol@colseprulecolor#2}{#1}%
+ \fi}
+\gdef\pcol@colseprulecolor{\normalcolor}
+
+\def\backgroundcolor#1{\@tempswatrue
+ \let\pcol@backgroundcolor@e\pcol@backgroundcolor@w
+ \pcol@backgroundcolor#1\@nil}
+\def\nobackgroundcolor#1{\@tempswafalse
+ \let\pcol@backgroundcolor@e\pcol@backgroundcolor@z
+ \pcol@backgroundcolor#1\@nil}
+\def\pcol@backgroundcolor#1{%
+ \@ifundefined{pcol@bg@@#1}%
+ {\PackageError{paracol}%
+ {Invalid background coloring region identifier #1}%
+ \def\pcol@bg@region{xx}\pcol@backgroundcolor@e}%
+ {\def\pcol@bg@region{#1}%
+ \@ifnextchar[%]
+ \pcol@backgroundcolor@i \pcol@backgroundcolor@ii}}
+\def\pcol@backgroundcolor@i[#1]{%
+ \@ifundefined{pcol@bg@mayhavecol@\pcol@bg@region}%
+ {\PackageError{paracol}%
+ {Column number \number#1 is not effective for background coloring region
+ \pcol@bg@region}%
+ \def\pcol@bg@region{xx}\pcol@backgroundcolor@e}%
+ {\edef\pcol@bg@region{\pcol@bg@region @#1}%
+ \pcol@backgroundcolor@ii}}
+\def\pcol@backgroundcolor@ii{%
+ \if@tempswa
+ \ifx\set@color\relax
+ \PackageWarning{paracol}{\string\backgroundcolor\space is not effective
+ without some coloring package}%
+ \let\reserved@b\pcol@backgroundcolor@w
+ \else
+ \let\reserved@b\pcol@backgroundcolor@iii
+ \@cons\pcol@bg@defined{{\pcol@bg@region}}%
+ \fi
+ \else
+ \let\reserved@b\pcol@backgroundcolor@z
+ \fi
+ \reserved@b}
+\def\pcol@backgroundcolor@iii{%
+ \pcol@bg@defext{l}\z@ \pcol@bg@defext{r}\z@
+ \pcol@bg@defext{t}\z@ \pcol@bg@defext{b}\z@
+ \@ifnextchar(%)
+ \pcol@backgroundcolor@iv \pcol@backgroundcolor@x}
+\def\pcol@backgroundcolor@iv(#1,#2){%
+ \pcol@bg@defext{l}{#1}\pcol@bg@defext{r}{#1}%
+ \pcol@bg@defext{t}{#2}\pcol@bg@defext{b}{#2}%
+ \@ifnextchar(%)
+ \pcol@backgroundcolor@v \pcol@backgroundcolor@x}
+\def\pcol@backgroundcolor@v(#1,#2){%
+ \pcol@bg@defext{r}{#1}\pcol@bg@defext{b}{#2}%
+ \pcol@backgroundcolor@x}
+\def\pcol@backgroundcolor@x#1\@nil{\begingroup
+ \let\set@color\pcol@backgroundcolor@y \color}
+\def\pcol@backgroundcolor@y{%
+ \expandafter\xdef\csname pcol@bg@color@\pcol@bg@region\endcsname
+ {\current@color}%
+ \endgroup}
+\def\pcol@backgroundcolor@z#1\@nil{\pcol@backgroundcolor@wi[]{}}
+\def\pcol@backgroundcolor@w#1\@nil{\@ifnextchar[%]
+ \pcol@backgroundcolor@wi{\pcol@backgroundcolor@wi[]}}
+\def\pcol@backgroundcolor@wi[#1]#2{%
+ \expandafter\global\expandafter\let
+ \csname pcol@bg@color@\pcol@bg@region\endcsname\relax}
+
+\def\pcol@bg@mayhavecol@c{}
+\def\pcol@bg@mayhavecol@C{}
+\def\pcol@bg@mayhavecol@g{}
+\def\pcol@bg@mayhavecol@G{}
+
+\def\pcol@bg@defext#1#2{%
+ \@tempdima#2\relax
+ \expandafter\xdef\csname pcol@bg@ext@#1@\pcol@bg@region\endcsname{%
+ \number\@tempdima sp}}
+
+\def\resetbackgroundcolor{{%
+ \let\@elt\pcol@resetbackgroundcolor \pcol@bg@defined
+ \gdef\pcol@bgdefined{}}}
+\def\pcol@resetbackgroundcolor#1{%
+ \expandafter\global\expandafter\let\csname pcol@bg@color@#1\endcsname\relax}
+\gdef\pcol@bg@defined{}
+
+%% Closing Environment
+
+\def\endparacol{\pcol@par
+ \edef\pcol@lastcol{\number\pcol@currcol}%
+ \pcol@nextcol\z@ \pcol@switchcol
+ \pcol@lastpagetrue
+ \ifpcol@mgfnote \pcol@flushclear\voidb@x
+ \else \pcol@flushclear\pcol@topfnotes
+ \fi
+ \pcol@invokeoutput\pcol@op@end
+ \global\columnwidth\textwidth
+ \global\@twocolumnfalse
+ \global\topskip\pcol@topskip
+ \ifpcol@fncounteradjustment
+ \global\c@footnote\pcol@footnotebase
+ \global\advance\c@footnote\pcol@nfootnotes
+ \fi}
+
+\def\pcol@restoreeveryvbox{%
+ \expandafter\def\expandafter\reserved@a\expandafter{\the\pcol@everyvbox}%
+ \def\reserved@b{\pcol@dummytoken}%
+ \ifx\reserved@a\reserved@b\else \global\everyvbox\pcol@everyvbox \fi}
diff --git a/macros/latex/contrib/paracol/paracol-man.pdf b/macros/latex/contrib/paracol/paracol-man.pdf
index 514fdec6dd..d0f23d948d 100644
--- a/macros/latex/contrib/paracol/paracol-man.pdf
+++ b/macros/latex/contrib/paracol/paracol-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/paracol/paracol.dtx b/macros/latex/contrib/paracol/paracol.dtx
index 98de092916..369be33d63 100644
--- a/macros/latex/contrib/paracol/paracol.dtx
+++ b/macros/latex/contrib/paracol/paracol.dtx
@@ -3,8 +3,9 @@
%<man>%% LaTeX file 'paracol-man'.
%<*paracol|man>
%% Copyright (C) 2005-2018
-%% Hiroshi Nakashima <h.nakashima@DOMAIN; DOMAIN=media.kyoto-u.ac.jp>
-%% (Kyoto University)
+%% Hiroshi Nakashima (Kyoto University, deceased)
+%% Copyright (C) 2024
+%% Markus Kurtz
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
@@ -14,12 +15,15 @@
%<*dtx>
\ProvidesFile{paracol.dtx}
%</dtx>
-%<paracol>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%<paracol>\ProvidesPackage{paracol}
+%<*paracol>
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+\DeclareRelease{1.35}{2018-12-31}{paracol-2018-12-31.sty}
+\DeclareCurrentRelease{1.36}{2024-10-22}
+\ProvidesPackage{paracol}[2024/10/22 1.36 typeset columns in parallel]
+%</paracol>
%<man>\ProvidesFile{paracol-man.tex}
% \fi
-% \ProvidesFile{paracol.dtx}
-[2018/12/31 v1.35 ]
+% \ProvidesFile{paracol.dtx}[2024-10-22 1.36 docstrip source of paracol]
% \iffalse
%<*man>
\documentclass{ltxdoc}\normalmarginpar
@@ -28,7 +32,6 @@
\usepackage{newvbtm}
\DisableCrossrefs
\PageIndex
-\CodelineNumbered
\RecordChanges
%</man>
%<man>\OnlyDescription
@@ -48,6 +51,7 @@
%
%
%
+% \CodelineNumbered
% \makeatletter
%
% \newcount\ChangeCount \ChangeCount10000
@@ -80,7 +84,7 @@
% \setcounter{IndexColumns}{2}
%
% \def\bottomfraction{.9}
-% \def\cs#1{\hbox{\tt\char\escapechar#1}}
+% \def\cs#1{\texttt{\char\escapechar#1}}
% \def\Item{\vskip-\itemsep\vskip-\parsep\vskip0pt\nobreak\item}
%
% \def\nosv{\catcode`\|12\relax}
@@ -134,7 +138,7 @@
% \@tempa
% \global\advance\c@CodelineNo\@ne
% #1
-% \SpecialMainIndex{#2}\nobreak
+% \SpecialMainMacroIndex{#2}\nobreak
% \DoNotIndex{#2}
% \else
% \SpecialMainEnvIndex{#2}\nobreak
@@ -157,7 +161,7 @@
% \let\CodeIndex\CodeMainIndex
% \let\ArgedCodeIndex\ArgedCodeMainIndex
% \let\MathIndex\MathMainIndex
-% \let\SpecialIndex\SpecialMainIndex
+% \let\SpecialIndex\SpecialMainMacroIndex
% \MIDX}
% \def\MIDX#1{#1\endgroup}
% \def\Uidx{\begingroup
@@ -165,7 +169,7 @@
% \let\CodeIndex\CodeUsageIndex
% \let\ArgedCodeIndex\ArgedCodeUsageIndex
% \let\MathIndex\MathUsageIndex
-% \let\SpecialIndex\SpecialUsageIndex
+% \let\SpecialIndex\SpecialMacroIndex
% \UIDX}
% \def\UIDX#1{#1\endgroup}
%
@@ -246,29 +250,30 @@
%
% \long\def\Special@Index#1#2{\@bsphack
% \RemoveAtFromCS{#2}
-% \protected@edef\@tempa{\noexpand\special@index{\RAFCtempa
+% \protected@edef\@tempa{\RAFCtempa
% \actualchar \string\verb
-% \quotechar*\verbatimchar\string#2\verbatimchar #1}}\@tempa
+% \quotechar*\verbatimchar\string#2\verbatimchar}
+% \expandafter\special@index\expandafter{\@tempa#1}
% \@esphack}
% \def\SpecialIndex{\Special@Index{}}
-% \def\SpecialMainIndex{\Special@Index{\encapchar main}}
-% \def\SpecialUsageIndex{\Special@Index{\encapchar usage}}
+% \def\SpecialMainMacroIndex{\Special@Index{\encapchar main}}
+% \def\SpecialMacroIndex{\Special@Index{\encapchar usage}}
% \def\SpecialArrayIndex#1{\Special@Index{${\cdot}#1$}}
% \def\SpecialArrayMainIndex#1{\Special@Index{${\cdot}#1$\encapchar main}}
% \def\SpecialArrayUsageIndex#1{\Special@Index{${\cdot}#1$\encapchar usage}}
%
% \def\Macro{\begingroup \@sanitize \iMacro}
% \def\iMacro#1{\endgroup
-% \def\SpecialMainIndex##1{\SWiIndex{##1}{\encapchar main}}
+% \def\SpecialMainMacroIndex##1{\SWiIndex{##1}{\encapchar main}}
% \macro{#1}}
% \let\endMacro\endmacro
%
% \def\SpecialWeirdIndex{\@bsphack \begingroup \@sanitize \SWIndex{}}
% \def\SWIndex#1#2{\endgroup \SWiIndex{#2}{#1}}
% \def\SWiIndex#1#2{%
-% \protected@edef\@tempa{\noexpand\special@index{
-% #1\actualchar \string\verb
-% \quotechar*\verbatimchar#1\verbatimchar#2}}\@tempa
+% \protected@edef\@tempa{#1\actualchar \string\verb
+% \quotechar*\verbatimchar#1\verbatimchar}
+% \expandafter\special@index\expandafter{\@tempa#2}
% \@esphack}
%
% \let\RAFCempty\@empty
@@ -304,7 +309,7 @@
% \catcode`\@\active
% \gdef\!{\begingroup \catcode`\@\active \IndexedVerb}
% \gdef\IndexedVerb#1!{\def@{\TheAtMark \penalty\exhyphenpenalty}
-% \def~{\penalty\exhyphenpenalty}
+% \def~{\badbreak}
% \rm\texttt{\string#1}\let@\TheAtMark \def~{}
% \edef\RAFCTempa{\expandafter\RAFCgobble\string#1}
% \expandafter\SpecialIndex\csname\RAFCTempa\endcsname \endgroup}
@@ -562,6 +567,8 @@
% \def\\{\hfil\break\null\ignorespaces}
%
% \let\AB\allowbreak
+% \def\badbreak{\penalty50}
+% \let\BB\badbreak
%
% \hyphenation{col-umn col-umns}
%
@@ -668,9 +675,9 @@
% Yet Another Multi-Column Package to Typeset Columns in
% \textit{Parallel}}
%
-% \author{Hiroshi Nakashima\\(Kyoto University)}
-% \date{version \expandafter\@gobble\fileversion: \filedate}
-% \setbox0\vbox{\vskip\topskip\maketitle\vskip0pt}\unitlength\ht0\copy0
+% \author{Hiroshi Nakashima (Kyoto University, deceased)\\Markus Kurtz (\url{https://codeberg.org/mgkurtz/paracol})}
+% \date{version \fileversion: \filedate}
+% \setbox0\vbox{\vskip\topskip\maketitle}\unitlength\ht0\copy0
%
% \ifx\ONLYDESCRIPTION\undefined
% \tableofcontents
@@ -678,6 +685,8 @@
% \vbox to\unitlength{\unvbox0\vfil}
% \part{User's Manual}\label{part:man}
% \let\MidxSave\Midx \let\Midx\Uidx
+% \else
+% \addtocontents{toc}{\protect\label{toc}}
% \fi
%
% \begin{abstract}
@@ -686,7 +695,7 @@
% |\switchcolumn| and by internal environments |column|, |nthcolumn|,
% |leftcolumn| and |rightcolumn|.
% \ifx\ONLYDESCRIPTION\undefined\else
-% See p.\Tie\pageref{page:toc} for the table of contents of this manual.
+% See p.\Tie\pageref{toc} for the table of contents of this manual, see \href{https://mirrors.ctan.org/macros/latex/contrib/paracol/paracol.pdf}{paracol.pdf} for code documentation.
% \fi
% \end{abstract}
%
@@ -793,7 +802,7 @@
% well with them.
%
% \ifx\ONLYDESCRIPTION\undefined\else
-% \newpage\label{page:toc} \tableofcontents
+% \newpage\tableofcontents
% \fi
%
% \PrintIndex}
diff --git a/macros/latex/contrib/paracol/paracol.pdf b/macros/latex/contrib/paracol/paracol.pdf
index d7610852ea..d010128941 100644
--- a/macros/latex/contrib/paracol/paracol.pdf
+++ b/macros/latex/contrib/paracol/paracol.pdf
Binary files differ
diff --git a/macros/latex/contrib/paracol/probs.dtx b/macros/latex/contrib/paracol/probs.dtx
index 4d6ee18c7c..e28bedcd91 100644
--- a/macros/latex/contrib/paracol/probs.dtx
+++ b/macros/latex/contrib/paracol/probs.dtx
@@ -2,13 +2,13 @@
% \label{sec:problem}
% \changes{v1.2-7}{2013/05/11}
% {Add the section ``Known and Unknown Problems'' to summarize a few
-% typesetting issues and warn users of the possiblity of bugs.}
+% typesetting issues and warn users of the possibility of bugs.}
% \changes{v1.3-1}{2013/09/17}
% {Remove the problem description of the placement of page-crossing
% spanning texts because it has been solved.}
% \changes{v1.3-3}{2013/09/17}
% {Remove the problem description of the lack of column-separating rule
-% drawing because it has been implmented.}
+% drawing because it has been implemented.}
%
% Here a few problems you could face in the use of \textsf{paracol} are
% summarized.
@@ -161,7 +161,7 @@
%
% \item
% \changes{v1.3-2}{2013/09/17}
-% {Add comments about the limitaion of parallel-paging.}
+% {Add comments about the limitation of parallel-paging.}
% 
% As the author confessed in Section\Tie\ref{sec:ppts-paired}, right
% \parapag{}es cannot have \pwstuff{} but have blank spaces in the
@@ -170,7 +170,7 @@
%
% \item
% \changes{v1.3-3}{2013/09/17}
-% {Add comments about the imperfectnss of extention of backgrond
+% {Add comments about the imperfectness of extension of background
% painting regions.}
% \begin{Hfuzz}{1.5pt}
% As discussed in Section\Tie\ref{sec:bgpaint-me}, it is desirable that
diff --git a/macros/latex/contrib/paracol/pwfnote.dtx b/macros/latex/contrib/paracol/pwfnote.dtx
index 8fcf377159..f63cd76914 100644
--- a/macros/latex/contrib/paracol/pwfnote.dtx
+++ b/macros/latex/contrib/paracol/pwfnote.dtx
@@ -21,7 +21,7 @@
% Because of the non-merged typesetting, this footnote is put above the
% example.\par\Hrule\label{fn:preenv}}.
%
-% \footnotelayout{p}
+% \footnoteplacement{p}
% \begin{paracol}{2}
% \fnpar{First left-column}{\footnote{First left-column footnote.}}
% \fnpar{Second left-column}{\footnote{Second left-column footnote.}}
@@ -62,12 +62,12 @@
%
% Here we have an example with three \!\switchcolumn! commands in a page
% having six footnotes. Hereafter, footnotes are typeset with
-% \Uidx{\!\footnotelayout!}|{m}|\footnote{
+% \Uidx{\!\footnoteplacement!}|{m}|\footnote{
% 
% And thus this footnote is merged with those in the \env{paracol}
% environment.}.
%
-% \footnotelayout{m}
+% \footnoteplacement{m}
% \Hrule
% \begin{paracol}{2}
% \fnpar{First left-column}{\footnote{First left-column
@@ -152,7 +152,7 @@
% followed by a \cs{switchcolumn*}.}
% \addtocounter{footnote}{-1}
% \switchcolumn*
-% Third and synchroized left-column paragraph\Dotfill\\
+% Third and synchronized left-column paragraph\Dotfill\\
% \Dotfill with a footnote whose mark
% here\footnotemark[\arabic{footnote}]\Dotfill\\
% \Dotfill is given by \!\footnotemark!\texttt{[\ref{fn:3L3}]}\Dotfill in
@@ -343,7 +343,7 @@
% the counter letting it have $b+n$ where $n$ is the number of \!\footnote!
% and \!\footnotemark! in the environment, if the maintenance is ordered by
% the command \!\fncounteradjustment! which is automatically executed by
-% \!\footnotelayout! with the argument |p| or |m|.
+% \!\footnoteplacement! with the argument |p| or |m|.
%
%
%
@@ -570,7 +570,7 @@
% \cs{footnote}|*[+5]| because $n_r+m_r+1=2+2+1=5$ and thus
% $\ref{fn:8L5}=\ref{fn:8L4}+5$.\label{fn:8L5}} by
% \!\footnote!|*[+5]|\marg{text}\Dotfill\\
-% \Dotquad and here\footnote{Sixth left-column foootnote given by
+% \Dotquad and here\footnote{Sixth left-column footnote given by
% \cs{footnote}\marg{text}.\label{fn:8L6}} by
% \!\footnote!\marg{text}\Dotfill\\
% followed by a \!\switchcolumn!.
@@ -591,7 +591,7 @@
% \cs{footnote}|*[+3]| because $k_l+1=3$ and thus
% $\ref{fn:8R5}=\ref{fn:8R4}+3$.\label{fn:8R5}} by
% \!\footnote!|*[+3]|\marg{text}\Dotfill\\
-% \Dotquad and here\footnote{Sixth right-column foootnote given by
+% \Dotquad and here\footnote{Sixth right-column footnote given by
% \cs{footnote}\marg{text}.\label{fn:8R6}} by
% \!\footnote!\marg{text}\Dotfill.
% \end{paracol}
@@ -602,7 +602,7 @@
% because page break points go up and down by your modifications to the
% document. Therefore, it is recommended to put all footnotes by
% non-starred \!\footnote! until your document becomes perfect except for
-% footnote numbering and placement and then to adjust them by the techique
+% footnote numbering and placement and then to adjust them by the technique
% described in this section.
%
% \endinput
diff --git a/macros/latex/contrib/paracol/ref.dtx b/macros/latex/contrib/paracol/ref.dtx
index 4025a65d08..573e3777a1 100644
--- a/macros/latex/contrib/paracol/ref.dtx
+++ b/macros/latex/contrib/paracol/ref.dtx
@@ -1,4 +1,4 @@
-% \footnotelayout{m}
+% \footnoteplacement{m}
% \columnratio{}
% \section{Reference Manual}
% \label{sec:ref}
@@ -91,7 +91,7 @@
%
% \item
% Therefore, this \!\item! is shifted left a little bit to make
-% inter-column spece narrower.
+% inter-column space narrower.
% \end{paracol}
%
% \item
@@ -242,7 +242,7 @@
%
% \item
% In a page having one or more \sync{}ation points, stretch and shrink
-% factors of all vertical spaces, such as those surrounding sectionning
+% factors of all vertical spaces, such as those surrounding sectioning
% commands, are ignored. Therefore, even if you specify \!\flushbottom!,
% the page is typeset as if \!\raggedbottom! were specified.
%
@@ -393,7 +393,7 @@
% The command is to define the {\Uidx\colpream} \meta{pream} for the column
% \meta{col}, which is inserted at every \cswitch{} to the column. More
% specifically, the command let \!\switchcolumn! to \meta{col} act as if you
-% sepcify;
+% specify;
% 
% \begin{itemize}\item[]
% \!\switchcolumn! $\arg{pream\ for\ col}$
@@ -504,7 +504,7 @@
% \changes{v1.1}{2012/05/11}
% {Add description of \cs{columnratio}.}
% \changes{v1.3-2}{2013/09/17}
-% {Add descriptino of the optional argument of \cs{columnratio} for
+% {Add description of the optional argument of \cs{columnratio} for
% parallel-paging.}
% 
% The command defines the width of each column by the fraction $r_i$ to
@@ -582,7 +582,7 @@
% \item[\Midx{\!\setcolumnwidth!}\Arg{$s_0,s_1,\cdots,s_k$}
% {|[|$s'_0,s'_1,\cdots,s'_{k'}$|]|}]\mbox{}\par
% \changes{v1.3-2}{2013/09/17}
-% {Add descriptino of \cs{setcolumnwidth}.}
+% {Add description of \cs{setcolumnwidth}.}
% 
% The command defines the width of each column and that of each {\em gap}
% between two columns by the column/gap specification $s_i$ for the $i$-th
@@ -988,7 +988,18 @@
% ``Page-Wise Footnotes'' following new naming.}
%
% \begin{description}
-% \item[\Midx{\!\footnotelayout!}\marg{layout}]\mbox{}\par
+% \item[\Midx{\!\footnoteplacement!}\marg{layout}]\mbox{}
+% \Item[\Midx{\!\footnotelayout!}\marg{layout}\footnote{
+% While \cs{footnotelayout} is a nice name, it is recommended to use
+% \cs{footnoteplacement}, since a macro of the name \cs{footnotelayout}
+% is also used by the \textsf{footmisc} package. Hence our version of
+% \cs{footnotelayout} will not be available if \textsf{footmisc} is loaded as
+% well. Besides that, both \cs{footnotelayout} and \cs{footnoteplacement} are
+% the same. We will thus only refer to \cs{footnoteplacement} for the
+% remainder of this manual.
+% }]\mbox{}\par
+% \changes{v1.36-2}{2024/10/22}
+% {Rename \cs{footnotelayout} to \cs{footnoteplacement}.}
% The command specifies the \meta{layout}${}\in\{|c|,|p|,|m|\}$ of footnotes
% in \env{paracol} environments as follows.
% 
@@ -1031,7 +1042,7 @@
% \item
% Choosing the layout |p|age-wise or |m|erged makes \counter{footnote}
% counter global and \!\fncounteradjustment! shown below performed inside
-% \!\footnotelayout!. Choosing |c|olumn-wise let the command do the
+% \!\footnoteplacement!. Choosing |c|olumn-wise let the command do the
% operations oppositely, i.e., localizes \counter{footnote} and does
% \!\nofncounteradjustment!. Though these settings are usually appropriate
% for each footnote layout but you can override them by explicitly using
@@ -1050,13 +1061,13 @@
% are still available.}
% 
% In old versions of \Paracol, namely 1.2 and its minor revisions 1.2x,
-% footnote layout was controlled by a set of lengthy commands
+% footnote layout was controlled by a set of commands
% \Midx{\!\multicolumnfootnotes!} for |c|, \Midx{\!\singlecolumnfootnotes!}
% for |p|, and \Midx{\!\mergedfootnotes!} for |m|.
% Though they are still available and will be so forever for backward
-% compatibility, it is recommended to use \!\footnotelayout!\footnote{
+% compatibility, it is recommended to use \!\footnoteplacement!\footnote{
% 
-% Not only for type saving but also for being familiar with this command
+% Not only for the sake of it, but also for being familiar with this command
% which could have some advanced feature, for example to put gathered
% footnotes into a specific column, someday.}.
%
@@ -1093,10 +1104,10 @@
%
% \begin{itemize}
% \item
-% Though \!\footnotelayout! with |p|(age-wise) or |m|(erged) argument does
+% Though \!\footnoteplacement! with |p|(age-wise) or |m|(erged) argument does
% \!\fncounteradjustment! while that with |c|(olumn) does
% \!\nofncounteradjustment! inside of it, you can override these settings by
-% explicitly putting a counter adjustment command after \!\footnotelayout!.
+% explicitly putting a counter adjustment command after \!\footnoteplacement!.
%
% \item
% The effect of \!\fncounteradjustment! is shown in Section~\ref{sec:fnnp}.
diff --git a/macros/latex/contrib/pas-tableur/README b/macros/latex/contrib/pas-tableur/README
deleted file mode 100644
index 001719afbb..0000000000
--- a/macros/latex/contrib/pas-tableur/README
+++ /dev/null
@@ -1,37 +0,0 @@
-********* README file for pas-tableur ******************
-********************* ENGLISH *****************************
-
-This package uses TikZ to imitate spreadsheet.
-
-Licence
--------
-
-This program can be redistributed and/or modified under the terms
-of the LaTeX Project Public License Distributed from CTAN
-archives in directory macros/latex/base/lppl.txt.
-
-Documentation
--------------
-
-The documentation of the package is under the
-directory /doc/ in french language.
-
-Thanks to use pas-tableur.sty.
-
-********* Fichier README pour pas-tableur ******************
-********************** FRANCAIS *******************************
-
-Cette extension utilise TikZ pour imiter les feuilles de calculs sous tableur.
-
-Licence
--------
-
-L'extension peut être redistribuée et/ou modifiée sous les termes
-de la licence LaTeX Project Public (voir macros/latex/base/lppl.txt).
-
-Documentation
--------------
-
-La documentation de l'extension se trouve dans le répertoire /doc/.
-
-Merci d'utiliser pas-tableur.sty.
diff --git a/macros/latex/contrib/pas-tableur/README.txt b/macros/latex/contrib/pas-tableur/README.txt
new file mode 100644
index 0000000000..a5e7692b4e
--- /dev/null
+++ b/macros/latex/contrib/pas-tableur/README.txt
@@ -0,0 +1,40 @@
+************* README file for pas-tableur **********************
+********************* ENGLISH *****************************
+
+This package uses TikZ to imitate spreadsheets.
+
+Licence
+-------
+
+This program can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt.
+
+Documentation
+-------------
+
+The documentation of the package is in the ZIP file or under the
+directory /doc/ in french language.
+If you don't find it, go to the URL http://get-software.net/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+
+Thanks to use pas-tableur.sty.
+
+************* Fichier README pour pas-tableur **********************
+********************** FRANCAIS *******************************
+
+Cette extension utilise TikZ pour imiter des tableurs.
+
+Licence
+-------
+
+L'extension peut être redistribuée et/ou modifiée sous les termes
+de la licence LaTeX Project Public (voir macros/latex/base/lppl.txt).
+
+Documentation
+-------------
+
+La documentation de l'extension se trouve dans le fichier ZIP ou
+dans dans le répertoire /doc/.
+Si vous ne trouvez pas cette documentation, allez sur la page http://get-software.net/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+
+Merci d'utiliser pas-tableur.sty.
diff --git a/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf b/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
index 4482df5893..796f888472 100644
--- a/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+++ b/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
Binary files differ
diff --git a/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex b/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
index 89a961a1d7..ede47ac5a8 100644
--- a/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
+++ b/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
@@ -31,13 +31,15 @@
\begin{center}
\begin{tcolorbox}[head]
{\bfseries\LARGE Documentation \texttt{pas-tableur} }\\[3mm]
-{\large Version 2.05 -- \today}
+{\large Version 2.06 -- \today}
\end{tcolorbox}
{\large
\href{http://www.mathweb.fr/contact.html}{St\'ephane Pasquet}}
-{\small\emph{Thanks to Susumu Tanimura for his contribution th the improvement of this package}}
+{\small\emph{Thanks to \textbf{Susumu Tanimura} for his contribution to the improvement of this package}}
+
+{\small\emph{Thanks to \textbf{Emiel van Miltenburg} for his contribution to the improvement of this package with the \textbackslash multimultiSelect macro.}}
\end{center}
\begin{tcolorbox}[toc]
@@ -372,6 +374,33 @@ Voyons un exemple pour comprendre la syntaxe :
\end{tikzpicture}
\end{tcblisting}
+\subsection{\textbackslash multimultiSelec : pour visualiser l'\'etirement}
+
+\begin{tcblisting}{listing}
+\sffamily
+\begin{tikzpicture}
+\begin{scope}[shift={(0,0)}]
+\tableur*[7]{A/1cm, B/1cm}
+\celtxt[width=1cm,align=right]{A}{1}{1}
+\celtxt[width=1cm,align=right]{A}{2}{2}
+\celtxt[width=1cm,align=right]{A}{3}{3}
+\multimultiSelec{A-1}{A-3}{A-6}
+\end{scope}
+
+\node at (2,-2) {\Large $\Rightarrow$};
+
+\begin{scope}[shift={(4,0)}]
+\tableur*[7]{A/1cm, B/1cm}
+\celtxt[width=1cm,align=right]{A}{1}{1}
+\celtxt[width=1cm,align=right]{A}{2}{2}
+\celtxt[width=1cm,align=right]{A}{3}{3}
+\celtxt[width=1cm,align=right]{A}{4}{4}
+\celtxt[width=1cm,align=right]{A}{5}{5}
+\celtxt[width=1cm,align=right]{A}{6}{6}
+\end{scope}
+\end{tikzpicture}
+\end{tcblisting}
+
\subsection{Les couleurs par d\'efaut}
@@ -411,6 +440,8 @@ Voyons un exemple pour comprendre la syntaxe :
\hline
\texttt{\textbackslash multiSelec\{A-1\}\{C-2\}} & Simule la s\'election des cellules allant de A1 \`a C2.\\
\hline
+\texttt{\textbackslash multimultiSelec\{A-1\}\{A-3\}\{A-6\}} & Simule l'étirement des cellules allant de A1 \`a A3 jusqu'à A6.\\
+\hline
\texttt{\{\textbackslash helvbx A1\}} & Affiche : \helvbx{A1}.\\
\hline
\end{tabularx}
diff --git a/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty b/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
index a2de8687f2..84928cd92d 100644
--- a/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
+++ b/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
-% pas-tableur.sty v2.05 encodage : UTF8 %
+% pas-tableur.sty v2.06 encodage : UTF8 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -8,8 +8,8 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-\def\fileversion{2.04}
-\def\filedate{2023/04/16}
+\def\fileversion{2.06}
+\def\filedate{2024/09/14}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{pas-tableur}[%
\filedate\space v\fileversion\space
@@ -102,7 +102,14 @@
%
%==> Macro etoilee : \tableur*{A/<l1>,B/<l2>,...}. Tableur avec colonnes de largeurs differentes
%
-\newcommand{\tableur@star}[2][1]
+% Modifiée dans la version 2.06 sur la suggestion de Emiel van Miltenburg
+
+\newcommand{\tableur@star}[2][1]
+ {
+ \IfSubStr{#2}{,}{\tableur@star@columns[#1]{#2}}{\tableur@star@onecolumn[#1]{#2}}
+ }
+
+\newcommand{\tableur@star@columns}[2][1]
{%
\xdef\list@of@col{#2}%
% Placement de la premiere cellule en-tête
@@ -139,7 +146,39 @@
}%
}%
\fi%
- } % --> Fin de \tableur*
+ }
+
+\newcommand{\tableur@star@onecolumn}[2][1]
+ {%
+ % Placement de la premiere cellule en-tête
+ \StrBefore{#2}{/}[\first@name] % Récupère la partie avant "/"
+ \StrBehind{#2}{/}[\first@width] % Récupère la partie après "/"
+ \pastab@draw@cell{\first@width}{\first@name}{0}{}{\first@name}
+ % Placement des en-têtes de lignes
+ \pastab@draw@cell{\numline@width}{numline1}{2}{\first@name.south west}{1}
+ \ifnum#1>1%
+ \foreach \num@line [remember=\num@line as \lastnum (initially 1)] in {2,...,#1}
+ {%
+ \pastab@draw@cell{\numline@width}{numline\num@line}{3}{numline\lastnum.south east}{\num@line}%
+ }%
+ \fi%
+ % Trace de la grille
+ \foreach \name/\w in {#2}
+ {%
+ \pastableur@grid{\w}{\name}{1}{\name.south}%
+ }%
+ \ifnum#1>1%
+ \foreach\numline [remember=\numline as \lastnumline (initially 1)] in {2,...,#1}
+ {%
+ \foreach \name/\w in {#2}
+ {%
+ \pastableur@grid{\w}{\name}{\numline}{cell\name-\lastnumline.south}%
+ }%
+ }%
+ \fi%
+ }
+
+% --> Fin de \tableur*
%
%==> Macro non etoilee : \tableur{A,B,C,...} ou \tableur{A-C}
%
@@ -302,7 +341,6 @@
\newcommand*\multiSelec[2]
{%
\fill[blueSelec,opacity=0.5] ($(cell#1.north west)+(0.25pt,-0.25pt)$) rectangle ($(cell#2.south east)+(-0.25pt,0.25pt)$);%
- \draw[very thick] (cell#1.south west) rectangle (cell#1.north east);%
\fill[black] ($(cell#2.south east)+(-0.5pt,0.5pt)$) rectangle +(3pt,-3pt);%
%
%==> On colorie les en-têtes "colonnes"
@@ -328,10 +366,51 @@
\pastableur@colorcell{numline\i}{0}
\node[celhead,minimum width=\numline@width,minimum height=\line@height] at (numline\i) {\helvbx\i};%
}%
+ \draw[very thick] (cell#1.south west) rectangle (cell#1.north east);%
}% fin de \multiSelec
%
%
%
+
+%
+% Selection de plusieurs cellules : \multimultiSelec{A-1}{A-2}{A-3}
+% Proposition de Emiel van Miltenburg pour la version 2.06 le 2024/09/14
+%
+\newcommand*\multimultiSelec[3]
+{%
+ \fill[blueSelec,opacity=0.5] ($(cell#1.north west)+(0.25pt,-0.25pt)$) rectangle ($(cell#3.south east)+(-0.25pt,0.25pt)$);%
+
+ \fill[black] ($(cell#3.south east)+(-0.5pt,0.5pt)$) rectangle +(3pt,-3pt);%
+ %
+ %==> On colorie les en-têtes "colonnes"
+ %
+ \StrChar{#1}{1}[\str@start] % par exemple, "G"
+ \StrChar{#2}{1}[\str@end] % par exemple, "L"
+ \StrBetween{\col@names}{\str@start}{\str@end}[\str@col] % retourne par exemple "HIJK"
+ \edef\str@col{\str@start\str@col\str@end} % retourne alors "GHIJKL"
+ \StrLen{\str@col}[\nb@columns] % nombre d'en-têtes "colonnes" \`a colorier
+ \foreach \i in {1,...,\nb@columns}
+ {%
+ \StrChar{\str@col}{\i}[\name]%
+ \pastableur@colorcell{\name}{1}
+ \node at (\name) {\helvbx\name};%
+ }%
+ %
+ %==> On colorie les en-têtes "lignes"
+ %
+ \StrGobbleLeft{#1}{2}[\first@num]%
+ \StrGobbleLeft{#2}{2}[\second@num]%
+ \foreach \i in {\first@num,...,\second@num}
+ {%
+ \pastableur@colorcell{numline\i}{0}
+ \node[celhead,minimum width=\numline@width,minimum height=\line@height] at (numline\i) {\helvbx\i};%
+ }%
+ \draw[very thick] (cell#2.south west) rectangle (cell#1.north east);%
+}% fin de \multimultiSelec
+%
+%
+%
+
\newlength\pastableur@decal
\newcommand{\pastableur@colorcell}[2] % #1 : name, #2 : 0=en-tetes "lignes" / 1=en-tetes "colonnes"
{%
diff --git a/macros/latex/contrib/passopt/README.md b/macros/latex/contrib/passopt/README.md
index f8eb8f4c43..c9a409add2 100644
--- a/macros/latex/contrib/passopt/README.md
+++ b/macros/latex/contrib/passopt/README.md
@@ -1,5 +1,5 @@
# The `passopt` package
-Passing options to packages or classes (v1.01a)
+Passing options to packages or classes (v1.01c)
## Abstract
`passopt` allow reset the global options of a loaded macro package or document class, or to change the position of the pre-passed options in the list to the right.
diff --git a/macros/latex/contrib/passopt/passopt.pdf b/macros/latex/contrib/passopt/passopt.pdf
index ce6e437c65..c7524c4d00 100644
--- a/macros/latex/contrib/passopt/passopt.pdf
+++ b/macros/latex/contrib/passopt/passopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/passopt/passopt.sty b/macros/latex/contrib/passopt/passopt.sty
index d74c698d27..3fb7a40605 100644
--- a/macros/latex/contrib/passopt/passopt.sty
+++ b/macros/latex/contrib/passopt/passopt.sty
@@ -8,7 +8,7 @@
% The latest version of this license is in
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplPackage{passopt}{2024/07/17}{1.01a}
+\ProvidesExplPackage{passopt}{2024/10/22}{1.01c}
{Passing options to packages or classes}
\cs_generate_variant:Nn \tl_if_blank:nTF { v }
diff --git a/macros/latex/contrib/passopt/passopt.tex b/macros/latex/contrib/passopt/passopt.tex
index fb4473e356..ec63a4a990 100644
--- a/macros/latex/contrib/passopt/passopt.tex
+++ b/macros/latex/contrib/passopt/passopt.tex
@@ -1,13 +1,15 @@
+\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{setspace,hologo,changelog,enumitem}
+\usepackage{hologo,changelog,enumitem,codehigh}
\usepackage[margin = 1in,marginparwidth = 0.6in,footskip = 0.5in]{geometry}
\setcnltx
{
package = passopt,
- version = v1.01a,
- date = 2024/07/17,
+ version = v1.01c,
+ date = 2024/10/22,
authors = Qu Yi,
+ title = \passopt{} package,
info = Passing options to packages or classes,
email = toquyi@163.com,
url = https://github.com/texno3/passopt,
@@ -16,10 +18,7 @@
\pkg*{passopt} allow reset the global options of a loaded macro package or document class, or to change the position of the pre-passed options in the list to the right.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[2]{\meta{#1}\texttt{,}\meta{#2}}
@@ -39,22 +38,25 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
+\colorlet{link}{DeepPink}
\makeatother
\begin{document}
\section{Preface}
For a developer, there are some cases where packages and classes may load other packages or classes with options. However, other developers or users may wish to disable the enabled options or enable new ones. To enable new options, \hologo{LaTeXe} provides the \cs{PassOptionsToPackage} and \cs{PassOptionsToClass} commands to pass the options before the package or class is loaded, but the passed options are located on the \textcolor{red}{left} side of the final options list.
-\begin{sourcecode}
- \PassOptionsToPackage{opt1,opt2=A}{mypackage}
+\begin{codehigh}
+\PassOptionsToPackage{opt1,opt2=A}{mypackage}
- \documentclass{book}
- \usepackage[opt3]{mypackage}
+\documentclass{book}
+\usepackage[opt3]{mypackage}
- \begin{document}
-\end{sourcecode}
+\begin{document}
+\end{codehigh}
In the example above, the list of options that the \pkg*{mypackage} macro package ends up executing is \fbox{\code{opt1,opt2=A,opt3}}. If you wish to \textcolor{red}{disable} the pre-enabled options or place the newly enabled options to the \textcolor{red}{right} of the list (last executed), then you need to modify the code of the load command in the package or class file, but this is not recommended for public sharing. Therefore, this macro package provides commands to reset the options and change the order of the new options.
@@ -65,25 +67,25 @@ Four commands are provided to set the options to be passed later, all of which a
Passes options to the macro package, the location of the passed options is to the right of the options used when loading the macro package. If an asterisk parameter is used, only the passed options were ultimately retained.
\command{SetOptionsToClass}[\sarg\marg{options list}\marg{class}]
Similar to the previous command, but passing options for the document class.
- \begin{sourcecode}
- \RequirePackage{passopt}
- \SetOptionsToPackage{opt1,opt2=A}{mypackage}
+\begin{codehigh}
+\RequirePackage{passopt}
+\SetOptionsToPackage{opt1,opt2=A}{mypackage}
- \documentclass{book}
- \usepackage[opt3]{mypackage}
+\documentclass{book}
+\usepackage[opt3]{mypackage}
- \begin{document}
- \end{sourcecode}
+\begin{document}
+\end{codehigh}
In the example above, the list of options that the \pkg*{mypackage} macro package ends up executing is \fbox{\code{opt3,opt1,opt2=A}}. If the asterisk parameter is used, the list is \fbox{\code{opt1,opt2=A}}.
Note that since macro packages or document classes can only be loaded effectively once (using the \cs{usepackage} and \cs{RequirePackage} commands), only options passed before the first loading of a macro package or document class are effective, and it is recommended for users to use commands that pass options before \cs{documentclass}.
\command{ClearPackageOptions}[\marg{package}]
Clears the options that will be loaded into the macro package. The following commands has the same effect as \cs*{SetOptionsToPackage}\code{*}.
- \begin{sourcecode}
- \ClearPackageOptions{mypackage}
- \SetOptionsToPackage{opt1,opt2=A}{mypackage}
- \end{sourcecode}
+\begin{codehigh}
+\ClearPackageOptions{mypackage}
+\SetOptionsToPackage{opt1,opt2=A}{mypackage}
+\end{codehigh}
\command{ClearClassOptions}[\marg{class}]
Similar to the previous command, but passing options for the document class.
\end{commands}
@@ -99,5 +101,6 @@ Thanks Jonathan P. Spratte for the improvement suggestions.
\end{version}
\end{changelog}
\nocite{*}
+\AddToHook{cmd/printindex/before}{\clearpage}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
index 4c4251c47e..c877156327 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
@@ -1,11 +1,48 @@
# Changelog
-All notable changes to the `pdfmanagement-testphase` bundle since the
+All notable changes to the `pdfmanagement-testphase` bundle since the
first release 0.95a, 2021-02-23 will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
this project uses date-based 'snapshot' version identifiers.
+## [2024-10-27]
+
+### Changed
+ - \pdf_bdc:nn now creates by default inline dictionaries if the engine support this.
+
+## [2024-09-29]
+Version: 2024-09-29 v0.96m
+
+### Changed
+
+ - generic driver:
+ expand values of pdfauthor and similar to allow the use of commands
+
+### Fixed
+ - color-ltx.sty: adapted \color@endgroup to change in LaTeX format.
+
+## [2024-09-13]
+Version: 2024-09-02 v0.96l
+
+### Added
+ - ltdocinit.dtx: add \LogDocumentProperties
+ - l3pdfmeta: Support additions of external schemas like ZUGferd with
+ \pdfmeta_xmp_schema_new:nnn \pdfmeta_xmp_property_new:nnnnn
+
+### Fixed
+ - colorspace-patches-tmp-ltx.sty: fixes hook use, issue #78
+
+## [2024-09-02]
+Version: 2024-09-02 v0.96k
+
+### Added
+ - l3pdfmeta.dtx: add standard test `Catalog_no_OCProperties_AS`, (issue#77)
+
+### Fixed
+ - l3pdfmeta.dtx: remove Catalog_no_OCProperties from pdf/a-2b onwards (issue#77)
+
## [2024-08-17]
+Version: 2024-08-17 v0.96j
### Added
@@ -16,29 +53,29 @@ this project uses date-based 'snapshot' version identifiers.
- add xmp-resource for pdfaid:rev (tagging-project issue#375)
- empty color in \bookmarksetup https://github.com/ho-tex/bookmark/issues/11
- unneeded warning with bookmarks=false, https://github.com/latex3/hyperref/issues/352
-
+
## [2024-05-23]
Version: 2024-05-23, 0.96i
-### Fixed
+### Fixed
- l3pdfmeta: adapted wtpdf declaration uri to corrected version.
- colorlinks=false no longer resets pdfborder (issue #69)
- added support to omit CidSet with luatex
-
+
## [2024-04-09]
Version: 2024-04-09, 0.96h
### Fixed
- - structure destinations for boxed destinations
+ - structure destinations for boxed destinations
-### Changed
+### Changed
- use \pdf_object_ref:n instead of backend command as preparation of l3kernel changes
regarding object storing.
- support for structure destination if indexed objects are used
-
-### Added
+
+### Added
- force EmbeddedFiles name tree with standard A-4F
-
+
## [2024-03-26]
Version: 2024-03-26, 0.96g
@@ -48,7 +85,7 @@ Version: 2024-03-26, 0.96g
### Changed
- removed unneeded firstaids for fontspec, transparent and pdflscape
-
+
## [2024-03-01]
Version: 2024-03-01, 0.96f
@@ -71,35 +108,35 @@ Version: 2023-12-09, 0.96d
### Removed
- l3bitset is now provided by l3kernel.
-
+
### Added
- 2023-11-20: l3pdfmeta.dtx: support for PDF declarations in XMP metadata, issue #58
- hyperref-generic.dtx: option nested-links key to suppress nested links.
-
+
### Changed
- key family in hyperref-generic is now hyp and not hyp/setup
- do not use pdfuaid:rev with pdf/UA-1
-
+
## [2023-11-17]
Version: 2023-11-17, 0.96c
- remove dependency to ltxcmds in the hyperref driver
- correct a local/global assignment
- - remove l3ref-tmp.sty
+ - remove l3ref-tmp.sty
- l3pdffile.dtx: change mimetype of xml to application/xml
-
-
+
+
## [2023-11-05]
Version: 2023-11-05, 0.96b
-- switch to e-type
+- switch to e-type
- correct fontspec firstaid and spotcolor support
## [2023-10-09]
Version: 2023-10-09, 0.96a
### Changed
- - prepare for kernel switch to e-types
+ - prepare for kernel switch to e-types
- use properties instead of l3ref-tmp.sty if format is new enough
- improve xcolor firstaid patch
@@ -108,13 +145,13 @@ Version: 2023-08-29, 0.95z
### Changed
- a SOURCE_DATE_EPOCH setting is honored. This requires a l3backend version from XXXX
- - \pdfmeta_set_regression_data: not longer sets dates manually, but expects that if
+ - \pdfmeta_set_regression_data: not longer sets dates manually, but expects that if
SOURCE_DATE_EPOCH is honored that it is used.
-
+
## [2023-08-20]
Version: 2023-08-20, 0.95y
-### Added
+### Added
- l3pdftools: \pdf_bdc_shipout:ee which makes use of the new shipout keyword
of \special and \pdfliteral
- key for the (not yet released) standard pdf/UA-2
@@ -122,66 +159,66 @@ Version: 2023-08-20, 0.95y
### Fixed
- expansion behaviour of \pdf_bdc:nn
- faulty error command in \pdf_string_from_unicode:nnN
-
+
## Removed
- patches of the output routine. These are now provided by latex-lab
-
+
## [2023-03-09]
Version: 2023-03-09, 0.95x
### Fixed
- regression data producer in xmp
-
+
### Changed
- removed/reduced fontspec firstaid to avoid clash with new l3backend and with option parsing (issue #47)
-
+
## [2023-02-20]
### Added
- schema declaration for xmpMM:OriginalDocumentID added to xmp-Metadata.
## [2023-02-14]
-
+
### Added
- l3pdffile: \pdffile_embed_stream:nnN to embed a stream without creating a named
- object.
+ object.
-### Changed
- - l3pdffile: default mime type of tex-files changed to application/x-tex.
+### Changed
+ - l3pdffile: default mime type of tex-files changed to application/x-tex.
## [2023-02-07]
### Fixed
- pdf A4 uses pdfaid:rev not pdfaid:year.
- - pdfcreationdate and pdfmoddate key
-
+ - pdfcreationdate and pdfmoddate key
+
### Added
- firstaid support for luacolor (pdfmode)
-## [2022-11-03]
+## [2022-11-03]
-### Added
+### Added
- ltdocinit: expl3 functions to retrieve values from the document properties.
-
+
### Changed
- removed firstaid for transparent as the package is now compatible.
- - removed firstaid for pdflscape as the package is now compatible.
- - ltdocinit/firstaid: the output patches for header and footer
+ - removed firstaid for pdflscape as the package is now compatible.
+ - ltdocinit/firstaid: the output patches for header and footer
are no longer loaded by default but must be loaded with the testphase key.
- removed firstaid for beamer as no longer needed
- ltdocinit: removed definition for \DocumentMetadata, it is now provided by latex-lab
### Fixed
- faulty firstaid for doclicense
-
+
## [2022-09-26]
### Added
- - XMP-Metadata are now created by code in l3pdfmeta.
- More details can be found in l3pdfmeta.
-
-### Removed
- - The patch which allowed the use of hyperxmp has been removed as no longer needed.
-
+ - XMP-Metadata are now created by code in l3pdfmeta.
+ More details can be found in l3pdfmeta.
+
+### Removed
+ - The patch which allowed the use of hyperxmp has been removed as no longer needed.
+
### Changed
- XMP-Metadata are uncompressed (if supported by the engines).
- pdftitle allows to set the titles in various languages.
@@ -191,27 +228,27 @@ Version: 2023-03-09, 0.95x
### Changed
- internal cleanup
- prepare for change in l3backend object handling
-
+
### Fixed
- ensure that pdfproducer is set with hyperxmp
## [2022-07-08]
-### Fixed
+### Fixed
- link detection if french is active (issue #28)
- loop with \url if french is active
- remove pdfaid-rev is standard is less than A-4 (issue #33)
- quotes in messages are more consistent (PR #37)
-
-### Changed
+
+### Changed
- removed protection code for utf8 as they are now protected anyway (fixed #28 and loop)
-
+
## [2022-06-14]
-### Fixed
+### Fixed
- avoid errors with spot color models
- opacity of fontspec (issue #30)
### Added
- - firstaid support for spot colors for open type fonts
-
+ - firstaid support for spot colors for open type fonts
+
## [2022-05-11]
@@ -221,38 +258,38 @@ Version: 2023-03-09, 0.95x
- add requirement for Info dictionary
- load tagpdf-base if it exists to provide the
tagging commands.
-
+
### Fixed
- Support/firstaid for colorspace package
- Support for metadata with hyperxmp and xetex
-
-
+
+
## [2022-04-14]
### Fixed
- l3pdffield-radiobutton: handling of Opt array.
-
+
### Added
- - l3pdffield-radiobutton: inunison key.
+ - l3pdffield-radiobutton: inunison key.
## [2022-03-16]
### Added
- \pdfmeta_set_regression_data: for regression tests.
-
+
## [2022-02-16]
### Fixed
- transition for directions was wrong
-
+
### Added
- - preliminery support for new OR code
+ - preliminery support for new OR code
-## [2022-01-28]
+## [2022-01-28]
-### Changed
+### Changed
- adapted the color patch to the changes in (x)color.sty (mathcolor)
- documentation uses new doc version (so needs currently latex-dev to compile)
-
+
### Fixed
- xcolor patch failed with color names containing active chars (e.g. from french)
@@ -261,16 +298,16 @@ Version: 2023-03-09, 0.95x
## [2022-01-13]
### Changed
- the keys `firstaidoff` and `pdfmanagement` should now be set with the `debug` key.
- - `testphase` will now load files from the latex-lab bundle. This requires a current
- latex-dev: LaTeX2e <2022-06-01> pre-release-1.
- - new values for `testphase`: `phase-I` and `phase-II`.
+ - `testphase` will now load files from the latex-lab bundle. This requires a current
+ latex-dev: LaTeX2e <2022-06-01> pre-release-1.
+ - new values for `testphase`: `phase-I` and `phase-II`.
`phase-I` will loaded tagpdf and activate tagging and interword spaces, `phase-II will
- additionally activate paratagging. The value `tagpdf` for the `testphase`
- key has been deprecated. It will not error for some time and has been aliased to
- `phase-II`, but it is recommended to use the new values `phase-I` and `phase-II` instead.
+ additionally activate paratagging. The value `tagpdf` for the `testphase`
+ key has been deprecated. It will not error for some time and has been aliased to
+ `phase-II`, but it is recommended to use the new values `phase-I` and `phase-II` instead.
- renamed `\DeclareDocumentMetadata` to `\DocumentMetadata` (the older version is still provided)
to follow the development in latex-dev.
-
+
### Fixed
- adapted the file hooks to the changes in LaTeX
@@ -278,57 +315,57 @@ Version: 2023-03-09, 0.95x
### Removed
- - the `activate` key has been removed, its function is integrated in the testphase key.
+ - the `activate` key has been removed, its function is integrated in the testphase key.
-### Added
+### Added
- preliminary support for structure destination to prepare for binary changes in texlive 2022
-
+
## [2021-08-28]
### Changed
- colorscheme 'original' has been renamed to 'primary-colors'
- color key is overwritten to use l3color
### Added
- - preliminary support for standard A-2a and A-3a
+ - preliminary support for standard A-2a and A-3a
- output patches to firstaid to support interruption of links
and tagging of paragraphs with page splits.
## [2021-07-31]
-### Added
+### Added
- \IfPDFManagementActiveTF as copy of `\pdfmanagement_if_active:TF
- \PDFManagementAdd as copy of `\pdfmanagement_add:xxx`
- Support for name trees /AP and /JavaScript in Catalog/Names
- - Support to add user file names to /EmbeddedFiles (beside the existing
+ - Support to add user file names to /EmbeddedFiles (beside the existing
way with automatically generated names)
- - if xcolor is loaded the colors it predefines are now predefined also for l3color
+ - if xcolor is loaded the colors it predefines are now predefined also for l3color
-### Changed
+### Changed
- Implementation of the /EmbeddedFiles name tree, it is now more in line
with the other name trees.
- \Form no longer creates xform objects -- this affected spacing and produced
- empty pages. The xform objects are now only created if fields are used.
-
+ empty pages. The xform objects are now only created if fields are used.
+
## [2021-07-21]
### Added
- key `testphase` to \DeclareDocumentMetadata to load testphase packages like
tagpdf, ptagging and headings
- - key `activate` to \DeclareDocumentMetadata to activate e.g. tagging.
+ - key `activate` to \DeclareDocumentMetadata to activate e.g. tagging.
- key `debug` with para=show, log=XX or uncompress as values.
- l3pdfxform: support for dvips
-
-### Changed
+
+### Changed
- a LaTeX format/L3 layer that loads l3color is now required
-
+
### Fixed
- argument order in \hrefrun was wrong. filename should be the first argument.
- xcolor firstaid: svgnames could no longer be loaded due to changes in l3color.
-
+
## [2021-06-29]
### Fixed
- small bug in l3ref-tmp.sty
-
+
## [2021-06-14]
### Added
- l3pdffile: \pdffile_filespec:nnn to create a filespec dictionary
@@ -337,43 +374,43 @@ Version: 2023-03-09, 0.95x
- l3pdffield-pushbutton, a module for pushbuttons
- l3pdffield-choice, a module for choice fields
- l3pdffield-action, a module for reset/submit/import actions
- - l3pdffield: \pdffield_annot_ref_last:, needed for tagging in OBJR object.
+ - l3pdffield: \pdffield_annot_ref_last:, needed for tagging in OBJR object.
- \pdffile_filespec:nnn to create a filespec dictionary
- l3pdfmeta, ltdocinit: support for pdf A-2u and A-3u
- l3pdffield: tagging support for form fields
-
+
### Fixed
- - l3pdftools: utf8/URI didn't handle "?"
- - l3pdffield: encoding of value in l3pdffield-textfield
- - l3pdffield: encoding of value of TM and TU key
- - utf8/URI in l3pdftools didn't handle ?
+ - l3pdftools: utf8/URI didn't handle "?"
+ - l3pdffield: encoding of value in l3pdffield-textfield
+ - l3pdffield: encoding of value of TM and TU key
+ - utf8/URI in l3pdftools didn't handle ?
- option handling of pdflscape-ltx
- distiller failed due to empty /PAGES
- small bugs in the hyperref driver
### Changed
- - l3pdffield: handling of ECMAscript in /AA keys
+ - l3pdffield: handling of ECMAscript in /AA keys
- no longer force unicode in the generic hyperref driver as
- it is the default where sensible anyway and clashes with platex.
-
+ it is the default where sensible anyway and clashes with platex.
+
## [2021-05-14]
-### Fixed
+### Fixed
- xcolor patch for [ps] type used in pstricks
- value of citecolor wasn't expanded (errored with tcolorbox)
- \url, \href, \hrefurl, \hrefrun and \hrefpdf leaves now vmode
- - handling of pdfauthor, pdftitle and pdfsubject in hyperxmp patch
-
-### Changed
- - the module for formfield and checkboxes has been in part rewritten to
- better fit to the new module for textfield.
- Keys and documentation has been extended.
-
+ - handling of pdfauthor, pdftitle and pdfsubject in hyperxmp patch
+
+### Changed
+ - the module for formfield and checkboxes has been in part rewritten to
+ better fit to the new module for textfield.
+ Keys and documentation has been extended.
+
### Added
- generic command hooks have been added to \url, \href, \hrefurl,
\hrefrun and \hrefpdf. Their use require a latex 2021-06-01.
- - dictionaries widget/AA, widget/AP, widget/MK and widget/BS in l3pdfannot.
- - a module for textfields
-
+ - dictionaries widget/AA, widget/AP, widget/MK and widget/BS in l3pdfannot.
+ - a module for textfields
+
## [2021-03-17]
### Fixed
@@ -384,18 +421,18 @@ Version: 2023-03-09, 0.95x
- \pdf_name_from_unicode_e:n: use cvn operator with dvips
- \url: it has an optional argument through which protocol, formatting command and encoding
can be changed
-- \href can use the url arguments too.
+- \href can use the url arguments too.
- \hyper@linkfile (GoToR links) now uses a filespec dictionary. This improves the
- support for non-ascii files names.
+ support for non-ascii files names.
### Added
-- \hrefurl, \hrefrun, \hrefpdf for better support of non-ascii input and
- default options, see the hyperref-generic documentation.
+- \hrefurl, \hrefrun, \hrefpdf for better support of non-ascii input and
+ default options, see the hyperref-generic documentation.
## [2021-03-07]
### Added
-- \pdfannot_widget_box:nnnn
+- \pdfannot_widget_box:nnnn
- \pdfannot_dict_use:n
- module l3pdffield for form fields. Currently it only supports checkboxes.
@@ -405,10 +442,10 @@ Version: 2023-03-09, 0.95x
### Removed
- \pdfannot_box:nnnnn: Concept to mix manual specs and dictionaries is wrong.
This can lead to duplicate entries in the dictionaries.
-
+
### Fixed
- Wrong default setting of \g_@@_active_bool (issue #13)
-- l3pdffile: Wrong casing: FileSpec -> Filespec
+- l3pdffile: Wrong casing: FileSpec -> Filespec
- beamer linkbordercolor error (workaround in firstaid)
## [2021-02-23]
diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md
index 9ac57108e0..a95a384f80 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/README.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/README.md
@@ -1,6 +1,6 @@
# LaTeX PDF management testphase bundle
-Version: 0.96j, 2024-08-17
+Version: 0.96n, 2024-10-27
This package is used during a test phase to load the new PDF management code
of LaTeX.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
index 68272c9b16..1716e9f9b8 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
@@ -24,7 +24,7 @@
%% This file has the LPPL maintenance status "maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{color-ltx}[2024-08-17 v0.96j
+\ProvidesPackage{color-ltx}[2024-10-27 v0.96n
Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
@@ -186,7 +186,7 @@
\InputIfFileExists{mathcolor.ltx}{}{}
\def\color@setgroup{\begingroup\set@color}
\let\color@begingroup\begingroup
-\def\color@endgroup{\endgraf\endgroup}
+\def\color@endgroup{\endgraf\@endpefalse\endgroup}
\def\color@hbox{\hbox\bgroup\color@begingroup}
\def\color@vbox{\vbox\bgroup\color@begingroup}
\def\color@endbox{\color@endgroup\egroup}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
index eb3c8e4b86..599680b6c5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
@@ -19,7 +19,7 @@
%
% for those people who are interested.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-08-17}{0.96j}
+\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-10-27}{0.96n}
{temporary patches for the colorspace package to test pdfresource management ... UF}
@@ -72,7 +72,7 @@
\RemoveFromHook{begindocument}[colorspace]
-\hook_gput_code:nnn {enddocument} {pdf}
+\hook_gput_code:nnn {begindocument/end} {pdf}
{
\def\spc@elt#1#2
{
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
index f38e8d8811..efcbc6e934 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
@@ -82,7 +82,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -211,7 +211,7 @@
%
% \item |pdflang| is deprecated. Instead \cs{DocumentMetadata} should be used:
% \begin{verbatim}
-% \cs{DocumentMetadata}{lang=de-DE}
+% \DocumentMetadata{lang=de-DE}
% \end{verbatim}
%
% The value can be retrieved as |document/lang|.
@@ -456,22 +456,21 @@
% \end{hypkey}
%
% \subsection{Public interfaces}
-% The |colorlinks| and |ocgcolorlinks| and related keys are
-% using these booleans:
-% \begin{verbatim}
-% \l_hyp_annot_colorlink_bool,
-% \l_hyp_annot_colorurl_bool,
-% \l_hyp_annot_colorfile_bool,
-% \l_hyp_annot_colorrun_bool,
-% \l_hyp_annot_colormenu_bool,
-% \l_hyp_annot_ocgcolorlink_bool,
-% \l_hyp_annot_ocgcolorurl_bool,
-% \l_hyp_annot_ocgcolorfile_bool,
-% \l_hyp_annot_ocgcolorrun_bool,
-% \l_hyp_annot_ocgcolormenu_bool,
-% \end{verbatim}
-%
-% They are both inserting hook code in the |pdfannot/link/|\meta{type}|/begin|
+%
+% \begin{variable}
+% {\l_hyp_annot_colorlink_bool,
+% \l_hyp_annot_colorurl_bool,
+% \l_hyp_annot_colorfile_bool,
+% \l_hyp_annot_colorrun_bool,
+% \l_hyp_annot_colormenu_bool,
+% \l_hyp_annot_ocgcolorlink_bool,
+% \l_hyp_annot_ocgcolorurl_bool,
+% \l_hyp_annot_ocgcolorfile_bool,
+% \l_hyp_annot_ocgcolorrun_bool,
+% \l_hyp_annot_ocgcolormenu_bool
+% }
+% These boolean are used by the |colorlinks| and |ocgcolorlinks| and related keys.
+% These keys insert hook code in the |pdfannot/link/|\meta{type}|/begin|
% and |pdfannot/link/|\meta{type}|/end| hooks. \meta{type} is one of
% |GoTo|, |URI|, |GoToR|, |Named| or |Launch|.
%
@@ -484,6 +483,7 @@
%
% The border colors aren't saved in color names currently, but if the need
% would arise it would possible to change this.
+% \end{variable}
% \subsection{Changed behaviour}
% \begin{description}
% \item[colorlinks] |colorlinks| or |colorlinks=true| will as before disable the |pdfborder|
@@ -965,7 +965,7 @@
%<@@=hyp>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesFile{hgeneric-testphase.def}[2024-08-17 v0.96j %
+\ProvidesFile{hgeneric-testphase.def}[2024-10-27 v0.96n %
generic Hyperref driver for the LaTeX PDF management testphase bundle]
\RequirePackage{etoolbox} %why?
@@ -1467,7 +1467,7 @@
%\tl_set:cn {@#1}{#2}
\AddToDocumentProperties[hyperref]{#1}{#2}
}
-\cs_generate_variant:Nn \@@_store_metadata:nn {en,ne,ee}
+\cs_generate_variant:Nn \@@_store_metadata:nn {en,ne,ee,no,eo}
% \end{macrocode}
% \subsection{citecolor}
% cite is a link context. So we define a hook, and the keys in terms of this hook.
@@ -1588,6 +1588,7 @@
% \begin{variable}
% {
% \l_@@_tmpa_tl,
+% \l_@@_tmpb_tl,
% \l_@@_tmpa_seq,
% \l_@@_tmpa_int,
% \l_@@_tmpa_box,
@@ -1596,6 +1597,7 @@
% \begin{macrocode}
\box_new:N \l_@@_tmpa_box
\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpb_tl
\seq_new:N \l_@@_tmpa_seq
\int_new:N \l_@@_tmpa_int
\str_new:N \l_@@_tmpa_str
@@ -1858,7 +1860,7 @@
% replaced if some more generic PDF string command/module exists.
% All commands here use the \enquote{submodule} name \texttt{text}.
% At first a hook for user additions:
-% \begin{macro}{hyp/text/pdfstring}
+% \begin{macro}[no-user-doc]{hyp/text/pdfstring}
% \begin{macrocode}
\hook_new:n {hyp/text/pdfstring}
% \end{macrocode}
@@ -1949,6 +1951,7 @@
{
\@@_text_pdfstring:noN { #1 }{ \l_@@_text_enc_info_print_tl } #2
}
+\cs_generate_variant:Nn \@@_text_pdfstring_info:nN {eN,oN}
% \end{macrocode}
% \end{macro}
%
@@ -1992,7 +1995,7 @@
% The code has to define |\Hy@PutCatalog| as we can't yet
% change code in hyperref. The switch for draftmode has been removed.
%
-% \begin{macro}
+% \begin{macro}[no-user-doc]
% {
% \@@_PageLabels_gpush:,
% \Hy@PutCatalog,
@@ -2124,7 +2127,7 @@
% to create also a structured destination.
% We don't use the cmd hook, as we want the same hook for both start commands.
% We make the current dest name available so that the hook code can use it.
-% \begin{macro}
+% \begin{macro}[no-user-doc]
% {
% \hyper@anchor,
% \hyper@anchorstart,
@@ -3955,16 +3958,20 @@
% but we allow to set an empty value.
% If the value begin with an optional argument, we assume a multilanguage clist and
% use only the first value.
+% The values are expanded with \cs{text_expand:n}
% \begin{macrocode}
\regex_new:N\l_@@_optlang_regex
\regex_set:Nn\l_@@_optlang_regex {\A\[([A-Za-z\-]+)\](.*)}
+\cs_generate_variant:Nn\clist_item:nn{on}
\cs_new_protected:Npn \@@_setup_info_key:nn #1 #2
{
\keys_define:nn { hyp }
{
pdf#1 .code:n =
{
- \tl_if_blank:nTF {##1}
+ \tl_set:Ne\l_@@_tmpa_tl {\text_expand:n{##1}}
+ \@@_store_metadata:no {pdf#1}{\l_@@_tmpa_tl}
+ \tl_if_empty:NTF \l_@@_tmpa_tl
{
\str_case:nnF { #1 }
{
@@ -3984,45 +3991,44 @@
}
}
{
- \tl_set:Ne\l_@@_tmpa_tl {\clist_item:nn{##1}{1}}
+ \tl_set:Ne\l_@@_tmpb_tl {\clist_item:on{\l_@@_tmpa_tl}{1}}
\exp_args:NNV
- \regex_extract_once:NnN \l_@@_optlang_regex \l_@@_tmpa_tl\l_@@_tmpa_seq
+ \regex_extract_once:NnN \l_@@_optlang_regex \l_@@_tmpb_tl\l_@@_tmpa_seq
\seq_if_empty:NTF\l_@@_tmpa_seq
{
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ \@@_text_pdfstring_info:oN {\l_@@_tmpa_tl}\l_@@_tmpa_str
}
- {
- \exp_args:Ne
- \@@_text_pdfstring_info:nN {\seq_item:Nn \l_@@_tmpa_seq{3}}\l_@@_tmpa_str
+ {
+ \@@_text_pdfstring_info:eN {\seq_item:Nn \l_@@_tmpa_seq{3}}\l_@@_tmpa_str
}
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\pdfmanagement_add:nne {Info}{#2}{\l_@@_tmpa_str}
}
- }
- \@@_store_metadata:nn {pdf#1}{##1}
+ }
}
}
\keys_define:nn { hyp / info }
{
#2 .code:n =
{
+ \tl_set:Ne\l_@@_tmpa_tl {\text_expand:n{##1}}
+ \@@_store_metadata:eo {pdf\str_lowercase:n{#1}}{\l_@@_tmpa_tl}
\tl_if_blank:nTF {##1}
{
\pdfmanagement_remove:nn {Info}{#2}
}
{
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ \@@_text_pdfstring_info:oN {\l_@@_tmpa_tl}\l_@@_tmpa_str
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\pdfmanagement_add:nne {Info}{#2}{\l_@@_tmpa_str}
}
- }
- \exp_args:Ne \@@_store_metadata:nn {pdf\str_lowercase:n{#1}}{##1}
+ }
}
,unknown .code:n =
- {
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ {
+ \@@_text_pdfstring_info:eN {##1}\l_@@_tmpa_str
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\exp_args:Nno
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
index ab0f008a55..fc17ad821f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
index 8ab7e948ac..a5527beb90 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
%
@@ -56,32 +56,32 @@
% \begin{macrocode}
%<drivers>\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-testphase-dvipdfmx.def}{2024-08-17}{}
+ {l3backend-testphase-dvipdfmx.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-testphase-dvips.def}{2024-08-17}{}
+ {l3backend-testphase-dvips.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-testphase-dvisvgm.def}{2024-08-17}{}
+ {l3backend-testphase-dvisvgm.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-testphase-luatex.def}{2024-08-17}{}
+ {l3backend-testphase-luatex.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-testphase-pdftex.def}{2024-08-17}{}
+ {l3backend-testphase-pdftex.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)}
%</pdftex>
%<*xdvipdfmx>
- {l3backend-testphase-xetex.def}{2024-08-17}{}
+ {l3backend-testphase-xetex.def}{2024-10-27}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX}
%</xdvipdfmx>
% \end{macrocode}
% \subsection{Variants}
-% We need to generate temporarily a few e-types variants of kernel backend commands.
+% We need to generate temporarily a few e-types variants of kernel backend commands.
% These can be removed once the kernel provides them.
% \begin{macrocode}
%<@@=pdf>
@@ -101,13 +101,13 @@
% Starting with TeXlive 2023 the engines support a \texttt{shipout} keyword
% for \cs{pdfliteral} and \cs{special}. When used the argument is not expanded
% when the command is used but only when the page is shipped out. This allows for example
-% the tagging code to delay the page-wise numbering of MC-chunks until the page is
-% actually built. For now we test the engine support. The boolean is setup
+% the tagging code to delay the page-wise numbering of MC-chunks until the page is
+% actually built. For now we test the engine support. The boolean is setup
% in pdfmanagement-testphase.dtx.
% \begin{macrocode}
%<*drivers>
% \end{macrocode}
-%
+%
% The following commands provide the needed kernel backend support. This are basically
% copies of similar commands of l3backend-basics.
% \begin{macro}
@@ -115,7 +115,7 @@
% \__kernel_backend_shipout_literal:e
% }
% The one shared function for all backends is access to the basic
-% \tn{special} primitive.
+% \tn{special} primitive.
% \begin{macrocode}
\bool_if:NT \l__pdfmanagement_delayed_shipout_bool
{
@@ -124,7 +124,7 @@
%</drivers>
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macrocode}
%<*luatex|pdftex>
% \end{macrocode}
@@ -138,7 +138,7 @@
\cs_new_protected:Npn \__kernel_backend_shipout_literal_pdf:e #1
{
%<*luatex>
- \tex_pdfextension:D ~ literal ~ shipout ~
+ \tex_pdfextension:D ~ literal ~ shipout ~
%</luatex>
%<*pdftex>
\tex_pdfliteral:D ~ shipout ~
@@ -149,22 +149,22 @@
% \end{macro}
%
% \begin{macro}{\__kernel_backend_shipout_literal_page:e}
-% Page literals are pretty simple.
+% Page literals are pretty simple.
% \begin{macrocode}
\cs_new_protected:Npn \__kernel_backend_shipout_literal_page:e #1
{
%<*luatex>
- \tex_pdfextension:D ~ literal ~ shipout ~
+ \tex_pdfextension:D ~ literal ~ shipout ~
%</luatex>
%<*pdftex>
\tex_pdfliteral:D ~ shipout ~
%</pdftex>
page { #1 }
}
-%</luatex|pdftex>
+%</luatex|pdftex>
%<drivers> }
% \end{macrocode}
-% \end{macro}
+% \end{macro}
% \subsection{Crossreferences}
% Commands to get a reference for the absolute page counter.
@@ -190,7 +190,7 @@
% avoid that destinations names are optimized with xelatex/dvipdfmx
% see https://tug.org/pipermail/dvipdfmx/2019-May/000002.html
% \begin{macrocode}
-%<*dvipdfmx|xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
\__kernel_backend_literal:n { dvipdfmx:config~C~ 0x0010 }
%</dvipdfmx|xdvipdfmx>
% \end{macrocode}
@@ -745,7 +745,7 @@
}
\cs_new_protected:Npn \@@_backend_PageResources_gput:nnn #1 #2 #3
{
- % this is not used for output, but there is a test if the resource is empty
+ % this is not used for output, but there is a test if the resource is empty
\prop_gput:cne { \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/#1} }
{ \str_convert_pdfname:n {#2} }{ #3 }
%objects are not filled with \pdf_object_write as this is not additive!
@@ -802,33 +802,43 @@
% create the bdc/emc marker and store the properties.
% \cs{@@_backend_PageResources_gpush:n} outputs the /Properties and/or the other
% resources for the current page.
-% \begin{macrocode}
-% pdftex and luatex (and perhaps dvips ...) need to know if there are in a
+%
+% pdftex and luatex (and perhaps dvips ...) need to know if there are in a
% xform stream ...
+% \begin{macrocode}
%<*drivers>
\bool_new:N \l_@@_backend_xform_bool
%</drivers>
-%<*dvips>
+% \end{macrocode}
+%
% dvips is easy: create an object, and reference it in the bdc
% ghostscript will then automatically replace it by a name
-% and add the name to the /Properties dict
+% and add the name to the /Properties dict,
% special variant von accsupp
-% https://chat.stackexchange.com/transcript/message/50831812#50831812
+% \url{https://chat.stackexchange.com/transcript/message/50831812#50831812}
+% \begin{macrocode}
+%<*dvips>
%
\cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: dict_content
{
\@@_backend_pdfmark:n{/#1~<<#2>>~/BDC}
}
+% \end{macrocode}
+% There is not difference here between inline and property BDC, it is always
+% a property:
+% \begin{macrocode}
+\cs_set_eq:NN \@@_backend_bdc_contobj:nn \@@_backend_bdc:nn
+\cs_set_eq:NN \@@_backend_bdc_contstream:nn \@@_backend_bdc:nn
\bool_if:NT\l__pdfmanagement_delayed_shipout_bool
{
\cs_new_protected:Npn \@@_backend_bdc_shipout:ee #1 #2 % #1 eg. Span, #2: dict_content
- {
+ {
\__kernel_backend_shipout_literal:e
{ps: SDict ~ begin ~ mark /#1~<<#2>>~/BDC ~ pdfmark ~ end }
}
- }
-
+ }
+
\cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name
{
\@@_backend_pdfmark:e{/#1~\pdf_object_ref:n{#2}~/BDC}
@@ -853,11 +863,14 @@
%
\cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: dict_content
{}
+\cs_set_eq:NN \@@_backend_bdc_contobj:nn \@@_backend_bdc:nn
+\cs_set_eq:NN \@@_backend_bdc_contstream:nn \@@_backend_bdc:nn
+
\bool_if:NT\l__pdfmanagement_delayed_shipout_bool
- {
+ {
\cs_set_protected:Npn \@@_backend_shipout_bdc:ee #1 #2 % #1 eg. Span, #2: dict_content
- {}
- }
+ {}
+ }
\cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name
{}
\cs_set_protected:Npn \@@_backend_bdcobject:n #1 % #1 eg. Span,
@@ -869,7 +882,7 @@
\cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1 {}
%</dvisvgm>
-
+%
% xetex has to create the entries in the /Properties manually
% (like the other backends)
% use pdfbase special
@@ -941,11 +954,11 @@
}
\bool_if:NT\l__pdfmanagement_delayed_shipout_bool
- {
+ {
\cs_set_protected:Npn \@@_backend_bdc_shipout_contstream:ee #1 #2
{
\__kernel_backend_shipout_literal:e {pdf:code~ /#1~<<#2>>~BDC }
- }
+ }
\cs_set_eq:NN \@@_backend_bdc_shipout:ee \@@_backend_bdc_shipout_contstream:ee
}
\cs_set_protected:Npn \@@_backend_emc:
@@ -1032,24 +1045,21 @@
{
\__kernel_backend_literal_page:n { /#1~<<#2>>~BDC }
}
-
- \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2
- {
- \bool_if:NTF \g__pdfmanagement_active_bool
- {\cs_gset_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contobj:nn}
- {\cs_gset_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contstream:nn}
- \@@_backend_bdc:nn {#1}{#2}
- }
+
+% \end{macrocode}
+% \changes{v0.96n}{2024/10/23}{Use inline dictionaries in bdc always.}
+% \begin{macrocode}
+\cs_set_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contstream:nn
\bool_if:NT\l__pdfmanagement_delayed_shipout_bool
- {
+ {
\cs_set_protected:Npn \@@_backend_bdc_shipout_contstream:ee #1 #2
{
\__kernel_backend_shipout_literal_page:e { /#1~<<#2>>~BDC }
- }
+ }
\cs_set_eq:NN \@@_backend_bdc_shipout:ee \@@_backend_bdc_shipout_contstream:ee
}
-
+
\cs_set_protected:Npn \@@_backend_emc:
{
\__kernel_backend_literal_page:n { EMC }
@@ -1057,9 +1067,12 @@
\cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1 {}
%</luatex>
-%<*pdftex>
-% pdflatex is the most complicated as it has to go through the aux ...
+% \end{macrocode}
+% pdflatex is the most complicated if we want to use properties
+% as it has to go through the aux ...
% the push command is extended to take other resources too
+% \begin{macrocode}
+%<*pdftex>
\cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name
{
\int_gincr:N \g_@@_backend_name_int
@@ -1134,23 +1147,21 @@
{
\__kernel_backend_literal_page:n { /#1~<<#2>>~BDC }
}
+% \end{macrocode}
+% \changes{v0.96n}{2024/10/23}{Use inline dictionaries in bdc always.}
+% We use by default the direct BDC.
+% \begin{macrocode}
+\cs_set_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contstream:nn
-\cs_set_protected:Npn \@@_backend_bdc:nn #1 #2
- {
- \bool_if:NTF \g__pdfmanagement_active_bool
- {\cs_gset_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contobj:nn}
- {\cs_gset_eq:NN \@@_backend_bdc:nn \@@_backend_bdc_contstream:nn}
- \@@_backend_bdc:nn {#1}{#2}
- }
\bool_if:NT\l__pdfmanagement_delayed_shipout_bool
- {
+ {
\cs_set_protected:Npn \@@_backend_bdc_shipout_contstream:ee #1 #2
{
\__kernel_backend_shipout_literal_page:e { /#1~<<#2>>~BDC }
- }
+ }
\cs_set_eq:NN \@@_backend_bdc_shipout:ee \@@_backend_bdc_shipout_contstream:ee
}
-
+
\cs_set_protected:Npn \@@_backend_emc:
{
\__kernel_backend_literal_page:n { EMC }
@@ -1189,7 +1200,7 @@
%</pdftex>
% \end{macrocode}
% \end{macro}
-%
+%
% \subsection{\enquote{Catalog} \& subdirectories (pdfcatalog) }
% The backend command is already in the driver:
% \cs{@@_backend_catalog_gput:nn}
@@ -1561,7 +1572,7 @@
/ColorSpace~
\pdf_object_ref:n { @@/Page/Resources/ColorSpace }
>>
- }
+ }
\@@_backend:e {exobj ~<<#2>>}
}
}
@@ -1765,8 +1776,8 @@
% The needed code differ depending on if structure objects use standard or indexed object names.
% At the end we will probably always use indexed objects, but for now we offer
% both options.
-%
-% \begin{macro}{\l_pdf_current_structure_destination_tl}
+%
+% \begin{variable}[no-user-doc]{\l_pdf_current_structure_destination_tl}
%
% This command holds the name of the structure object to use in the following commands
% which creates a destination. The code which activates structure destinations
@@ -1774,7 +1785,7 @@
% will define it as
% \begin{verbatim}
% \tl_set:Nn \l_pdf_current_structure_destination_tl { __tag/struct/\g__tag_struct_stack_current_tl }
-% \end{verbatim}
+% \end{verbatim}
% or if indexed structure object names are used
% \begin{verbatim}
% \tl_set:Nn \l_pdf_current_structure_destination_tl { {__tag/struct}{\g__tag_struct_stack_current_tl} }
@@ -1784,7 +1795,7 @@
\tl_new:N \l_pdf_current_structure_destination_tl
%</drivers>
% \end{macrocode}
-% \end{macro}
+% \end{variable}
%
% We will define alternatives for three backend commands:
% \begin{verbatim}
@@ -1793,14 +1804,14 @@
% \__pdf_backend_link_begin_goto:nnw -> \__pdf_backend_link_begin_structure_goto:nnw
% \__pdf_backend_destination:nn -> \__pdf_backend_indexed_structure_destination:nn
% \__pdf_backend_destination:nnnn -> \__pdf_backend_indexed_structure_destination:nnnn
-% \__pdf_backend_link_begin_goto:nnw -> \__pdf_backend_indexed_link_begin_structure_goto:nnw
+% \__pdf_backend_link_begin_goto:nnw -> \__pdf_backend_indexed_link_begin_structure_goto:nnw
% \end{verbatim}
%
% Activating means mapping them onto the original commands. Be aware that not
% all engines and compilation routes support structure destinations, for them
% the command will be a no-op.
%
-% \begin{macro}{\pdf_activate_structure_destination:,\pdf_activate_indexed_structure_destination:}
+% \begin{macro}[no-user-doc]{\pdf_activate_structure_destination:,\pdf_activate_indexed_structure_destination:}
% \begin{macrocode}
%<*drivers>
\cs_new_protected:Npn \pdf_activate_structure_destination:
@@ -2108,7 +2119,7 @@
%</luatex>
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\@@_backend_indexed_structure_destination:nn,
% \@@_backend_indexed_structure_destination:nnnn}
% This are the indexed variants of the commands to create a destination
@@ -2148,7 +2159,7 @@
{
obj ~ @pdf.SDest.\exp_not:n{#1}
[
- \exp_after:wN \pdf_object_ref_indexed:nn \l_pdf_current_structure_destination_tl
+ \exp_after:wN \pdf_object_ref_indexed:nn \l_pdf_current_structure_destination_tl
\str_case:nnF {#2}
{
{ xyz } { /XYZ ~ @xpos ~ @ypos ~ null }
@@ -2162,7 +2173,7 @@
}
{ /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
]
- }
+ }
}
% \end{macrocode}
%
@@ -2204,7 +2215,7 @@
{
obj ~ @pdf.SDest.\exp_not:n{#2}
[
- \exp_after:wN \pdf_object_ref_indexed:nn \l_pdf_current_structure_destination_tl
+ \exp_after:wN \pdf_object_ref_indexed:nn \l_pdf_current_structure_destination_tl
/FitR ~
@pdf_ #2 _llx ~ @pdf_ #2 _lly ~
@xpos ~ @ypos
@@ -2223,7 +2234,7 @@
\exp_args:Ne \@@_backend_indexed_structure_destination_aux:nnnn
{ \dim_eval:n {#2} } {#1} {#3} {#4}
}
-%</xdvipdfmx|dvipdfmx>
+%</xdvipdfmx|dvipdfmx>
% \end{macrocode}
%
% Now pdftex. We only redefine for version 1.40 revision 24 or later.
@@ -2266,7 +2277,7 @@
{ fitr } { fitr }
}
{ xyz ~ zoom \fp_eval:n { #2 * 10 } }
- \scan_stop:
+ \scan_stop:
}
\cs_set_protected:Npn \@@_backend_indexed_structure_destination:nnnn #1#2#3#4
{
@@ -2326,7 +2337,7 @@
{ fitr } { fitr }
}
{ xyz ~ zoom \fp_eval:n { #2 * 10 } }
- \scan_stop:
+ \scan_stop:
}
\cs_set_protected:Npn \@@_backend_indexed_structure_destination:nnnn #1#2#3#4
{
@@ -2368,15 +2379,15 @@
\AddToHook{begindocument}{\pdfmanagement_add:nnn{Info}{Producer}{(pdfTeX+dvips)}}
\__kernel_backend_literal:e{!~<</DocumentUUID~(DocumentUUID)>>~setpagedevice}
\__kernel_backend_literal:e{!~<</InstanceUUID~(InstanceUUID)>>~setpagedevice}
- \str_if_exist:NTF\c_sys_timestamp_str
+ \str_if_exist:NTF\c_sys_timestamp_str
{
\pdfmanagement_add:nne{Info}{CreationDate}{(\c_sys_timestamp_str)}
- \pdfmanagement_add:nne{Info}{ModDate}{(\c_sys_timestamp_str)}
+ \pdfmanagement_add:nne{Info}{ModDate}{(\c_sys_timestamp_str)}
}
{
\pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')}
\pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')}
- }
+ }
%</dvips>
%<*dvipdfmx>
\pdfmanagement_add:nnn{Info}{Producer}{(dvipdfmx)}
@@ -2409,7 +2420,7 @@
]}
%</luatex>
%<*drivers>
- \str_if_exist:NF\c_sys_timestamp_str
+ \str_if_exist:NF\c_sys_timestamp_str
{
\pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')}
\pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')}
@@ -2463,14 +2474,14 @@
% \end{macrocode}
%
% \subsection{Suppressing deprecated PDF features}
-%
+%
% \texttt{/ProcSet}, \texttt{/CharSet} and the \texttt{/Info} dictionary
% are deprecated in PDF 2.0. For the pdf/A-4 standard they must be suppressed.
% Not every engine is able to do this, but for pdfTeX and luatex we define suitable
-% backend command. \texttt{/ProcSet} is suppressed automatically
-% for pdf version 2.0 starting with in texlive 2023.
+% backend command. \texttt{/ProcSet} is suppressed automatically
+% for pdf version 2.0 starting with in texlive 2023.
% \begin{macro}{\@@_backend_omit_charset:n}
-% The option to omit /Charset exists already for quite some time for the two
+% The option to omit /Charset exists already for quite some time for the two
% engines.
% \begin{macrocode}
%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm>
@@ -2480,19 +2491,19 @@
\cs_new_protected:Npn \@@_backend_omit_charset:n #1 %#1 number
{
\tex_pdfomitcharset:D = #1 \scan_stop:
- }
+ }
%</pdftex>
%<*luatex>
\cs_new_protected:Npn \@@_backend_omit_charset:n #1 %#1 number
{
\tex_pdfvariable:D omitcharset = #1 \scan_stop:
- }
+ }
%</luatex>
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\@@_backend_omit_info:n}
-% The option to suppress the info dictionary will be available in
+% The option to suppress the info dictionary will be available in
% texlive 2023.
% \begin{macrocode}
%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm>
@@ -2506,11 +2517,11 @@
\cs_new_protected:Npn \@@_backend_omit_info:n #1 %#1 number
{
\pdfomitinfodict = #1 \scan_stop:
- }
+ }
}
{
\cs_new_protected:Npn \@@_backend_omit_info:n #1 {}%#1 number
-
+
}
%</pdftex>
%<*luatex>
@@ -2522,16 +2533,16 @@
}
}
{
- \cs_new_protected:Npn \@@_backend_omit_info:n #1 {} %#1 number
- }
+ \cs_new_protected:Npn \@@_backend_omit_info:n #1 {} %#1 number
+ }
%</luatex>
% \end{macrocode}
% \end{macro}
-%
+%
% With luatex it is for some standards also necessary to suppress the CidSet
-% entry in the fonts (with xetex there seem to be no problem.
+% entry in the fonts (with xetex there seem to be no problem.
% \begin{macro}{\@@_backend_omit_cidset:n}
-% The option to omit /Charset exists already for quite some time for the two
+% The option to omit /Charset exists already for quite some time for the two
% engines.
% \begin{macrocode}
%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm|pdftex>
@@ -2541,11 +2552,11 @@
\cs_new_protected:Npn \@@_backend_omit_cidset:n #1 %#1 number
{
\tex_pdfvariable:D omitcidset = #1 \scan_stop:
- }
+ }
%</luatex>
% \end{macrocode}
% \end{macro}
-
+
%
% \subsection{lua code for lualatex}
% \begin{macrocode}
@@ -2671,5 +2682,5 @@ end
%</lua>
% \end{macrocode}
% \end{implementation}
-%
+%
% \PrintIndex
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
index f15724e4d4..85ddc460c5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
index 59268785a4..926ca522dd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -432,7 +432,7 @@
% \begin{macrocode}
%<@@=pdfannot>
%<*header>
-\ProvidesExplPackage{l3pdfannot}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdfannot}{2024-10-27}{0.96n}
{PDF-annotations}
\RequirePackage{l3pdfdict}
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
index 568726ab7d..b673972f79 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
index 2c297fb5c7..c4899de069 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -208,7 +208,7 @@
% \begin{macrocode}
%<@@=pdfdict>
%<*header>
-\ProvidesExplPackage{l3pdfdict}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdfdict}{2024-10-27}{0.96n}
{Tools for PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
index 37534467d5..151d954f99 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
index 7cda9b3102..254b066361 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
index 1981d6c95c..f6e2c84977 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
index 8514ce7200..47ae3c53ee 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
@@ -64,7 +64,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -380,7 +380,7 @@
% checked.
% User appearances should have two versions and follow the naming
% module/\meta{name}/Yes and module/\meta{name}/Off.
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_checkbox_default_appearances:,
% pdffield/checkbox/default/Yes,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
index 1b9850003e..4691370bfd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
index ceca7dd26f..d2fdf8969f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -152,6 +152,14 @@
% \end{syntax}
% This allows to set default keys for a choice field.
% \end{function}
+
+% \begin{function}{type}
+% \begin{syntax}
+% |type| = \texttt{combo}\verb+|+\texttt{combo-edit}\verb+|+\texttt{list}
+% \end{syntax}
+% This key is a choice key that allows to set the three types.
+% \end{function}
+
%
% \begin{function}{name,T}
% \begin{syntax}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
index f17a26c1b8..ae480bc36a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
index 3c71dc973e..0f404d0f91 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
@@ -55,7 +55,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -100,9 +100,9 @@
%^^A \group_end:%
% \bigskip
% \subsection{Commands}
-% \begin{function}{\pdffield_push:n}
+% \begin{function}{\pdffield_pushbutton:n}
% \begin{syntax}
-% \cs{pdffield_push:n}\Arg{key val list}
+% \cs{pdffield_pushbutton:n}\Arg{key val list}
% \end{syntax}
% This creates a pushbutton. Unlike radio buttons and checkboxes pushbuttons
% don't change their state and they don't store or represent a value.
@@ -422,7 +422,7 @@
% \subsection{Appearances}
% The default appearances are a rectangular frame with some text.
%
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_pushbutton_default_appearances:,
% pdffield/pushbutton/default-n,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
index f6a8c91e70..9c773ee0ff 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
index e26f875c37..046aa9d8ed 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
@@ -83,7 +83,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -610,7 +610,7 @@
% Every appearance should have two versions and follow the naming
% module/\meta{name}/Yes and module/\meta{name}/Off.
%
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_radio_default_appearances:,
% pdffield/radio/default/Yes,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
index dcbce59fbf..0d56f1ae05 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
index bdd1c28ffc..e1ee9c82db 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
index 1551733a91..726a1bc4d4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
index 27deb954c3..bb2a5b101f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
@@ -69,7 +69,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -972,7 +972,7 @@
%<*package>
%<@@=pdffield>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{l3pdffield-testphase}{2024-08-17}{0.96j}%
+\ProvidesExplPackage{l3pdffield-testphase}{2024-10-27}{0.96n}%
{form fields}
% \end{macrocode}
% \subsection{hyperref specific command}
@@ -2014,7 +2014,7 @@
% PV = pagevisible, PI = pageinvisible
% \begin{macro}
% {
-% AA/Fo,onfocus, AA/Bl,onblur, AA/D,onmousedown, AA/U,onmouseup,
+% AA/*,AA/Fo,onfocus, AA/Bl,onblur, AA/D,onmousedown, AA/U,onmouseup,
% AA/E,onenter, AA/X,onexit, AA/PO,pageopen, AA/PC,pageclose,
% AA/PV,pagevisible, AA/PI,pageinvisible
% }
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
index 395c405a56..d6d9d79eb4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
index 68287a9d5c..c5161917a1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -398,7 +398,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdffile}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdffile}{2024-10-27}{0.96n}
{embedding and referencing files in PDF---LaTeX PDF management testphase bundle}
\RequirePackage{l3pdftools} %temporarily!!
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
index ec0b0616e8..d37c5c8ac0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
index 2890995126..4aa1552a40 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -57,7 +57,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -632,7 +632,7 @@
%<@@=pdfmanagement>
%<*header>
%
-\ProvidesExplPackage{l3pdfmanagement}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdfmanagement}{2024-10-27}{0.96n}
{Management of core PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
index 8f126de615..dbb975b333 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
index a6d31a1e63..81cb004c53 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -190,6 +190,8 @@
% a test for at least the PDF-format will be added in future.
% \item[|Catalog_no_OCProperties|] don't add |/OCProperties| to the catalog
% {\em l3pdfmeta removes this entry at the end of the document}
+% \item[|Catalog_OCProperties_no_AS|]
+% do not use |/AS| optional content configuration dictionary.
% \item[|Catalog_EmbeddedFiles|] ensure that an |EmbeddedFiles| name tree is
% in the catalog. This is required for PDF/A-4f.
% \item[|annot_widget_no_AA|] (rule 6.6.2-1)
@@ -592,7 +594,8 @@
% \begin{syntax}
% \cs{pdfmeta_xmp_xmlns_new:nn}\Arg{prefix}\Arg{uri}
% \end{syntax}
-% With this command a xmlns name space can be added.
+% With this command a xmlns name space can be added. The \meta{uri}
+% argument is expanded, a hash can be input with |\c_hash_str|.
% \end{function}
%
% With the two following commands PDF declarations can be added to the XMP metadata
@@ -622,6 +625,38 @@
% If \cs{pdfmeta_xmp_add_declaration:nnnnn} is used twice with the same \meta{uri}
% argument the |claimData| are concatenated. There is no check if the |claimData| are identical.
% \end{function}
+%
+% The following two commands can be used to extend the schema declarations in
+% the XMP metadata. This is for example needed to implement a standard like ZUGferd/Factur X
+% for invoices. A schema declaration should be added only once but as this task
+% is probably not needed frequently only light guards are there to avoid duplicated entries.
+%
+% \begin{function}{\pdfmeta_xmp_schema_new:nnn}
+% \begin{syntax}
+% \cs{pdfmeta_xmp_schema_new:nnn}\Arg{text}\Arg{prefix}\Arg{uri}
+% \end{syntax}
+% \meta{text} is some string describing the schema, e.g. |PDF/A~Identification~Schema|,
+% \meta{prefix} is the unique prefix used by the schema. This prefix
+% must be declared first with |\pdfmeta_xmp_xmlns_new:nn|. If a schema with this prefix
+% has already been declared, it will currently be ignored with a warning.
+% The \meta{uri} is expanded, so a
+% hash can for example be given as |\c_hash_str|.
+% \end{function}
+
+% \begin{function}{\pdfmeta_xmp_property_new:nnnnn}
+% \begin{syntax}
+% \cs{pdfmeta_xmp_property_new:nnnnn}\Arg{schema prefix}\Arg{name}\Arg{type}\Arg{category}\Arg{description}
+% \end{syntax}
+% If the new property already exists in the schema
+% (as identified by the combination of \meta{schema prefix}
+% and \meta{name} the property is silently ignore.
+% \meta{schema prefix} is the prefix declared with the previous command.
+% schema, e.g. |PDF/A~Identification~Schema|,
+% \meta{name} is a short string that identifies the property, e.g. |xmpMM| or |year|. It must be
+% unique in the properties of a schema. \meta{type} is e.g. |URI| or |Integer| or |Text|,
+% \meta{category} is e.g. |internal| or |external|, \meta{description} is a free description string.
+% \end{function}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -631,7 +666,7 @@
% \begin{macrocode}
%<@@=pdfmeta>
%<*header>
-\ProvidesExplPackage{l3pdfmeta}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdfmeta}{2024-10-27}{0.96n}
{PDF-Standards---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
@@ -887,7 +922,10 @@
%
%===============
% Rule 6.1.13-1 CosDocument, isOptionalContentPresent == false
- ,Catalog_no_OCProperties =
+ ,Catalog_no_OCProperties =
+ % Rule 6.9-4 The AS key shall not appear in any optional content configuration dictionary.
+ % actually only starting with A-2 but doesn't harm here either
+ ,Catalog_OCProperties_no_AS=
%===============
% Rule 6.6.1-1: PDAction, S == "GoTo" || S == "GoToR" || S == "Thread"
% || S == "URI" || S == "Named" || S == "SubmitForm"
@@ -938,6 +976,11 @@
{ g_@@_standard_pdf/A-2B_prop }{max_pdf_version}{1.7}
\prop_gput:cnn
{ g_@@_standard_pdf/A-2B_prop }{omit_CID}{}
+% OCG layers are allowed (with restrictions)
+\prop_gremove:cn
+ { g_@@_standard_pdf/A-2B_prop }
+ { Catalog_no_OCProperties }
+
%A-2u ==============
\prop_new:c { g_@@_standard_pdf/A-2U_prop }
\prop_gset_eq:cc
@@ -1023,7 +1066,8 @@
{ g_@@_standard_pdf/A-4_prop }{conformance}
\prop_gremove:cn
{ g_@@_standard_pdf/A-4_prop }{max_pdf_version}
-
+\prop_gremove:cn
+ { g_@@_standard_pdf/A-4_prop }{Catalog_OCProperties_no_AS}
%A-4f ==============
\prop_new:c { g_@@_standard_pdf/A-4F_prop }
\prop_gset_eq:cc
@@ -1427,7 +1471,8 @@
% \end{macrocode}
% \subsection{Messages}
% \begin{macrocode}
-\msg_new:nnn{pdfmeta}{namespace-defined}{The~xmlns~namespace~`#1`~is~already~declared}
+\msg_new:nnn{pdfmeta}{xmp-defined}{The~XMP~#1~`#2`~is~already~declared}
+\msg_new:nnn{pdfmeta}{xmp-undefined}{The~XMP~#1~`#2`~is~undefined}
\msg_new:nnn{pdfmeta}{colorprofile-undefined}{The~colorprofile~`#1`~is~unknown}
% \end{macrocode}
% \subsection{Some helper commands}
@@ -1959,7 +2004,7 @@
\prop_new:N \g_@@_xmp_xmlns_prop
% \end{macrocode}
% \end{variable}
-% \begin{macro}{\@@_xmp_xmlns_new:nn,\@@_xmp_xmlns_new:ne}
+% \begin{macro}{\@@_xmp_xmlns_new:nn}
% \begin{macrocode}
\cs_new_protected:Npn \@@_xmp_xmlns_new:nn #1 #2
{
@@ -1969,7 +2014,6 @@
\@@_xmp_indent:n{4} xmlns:\exp_not:n{#1="#2"}
}
}
-\cs_generate_variant:Nn \@@_xmp_xmlns_new:nn {ne}
% \end{macrocode}
% \end{macro}
% Now we fill the data. The list is more or less the same as in hyperxmp
@@ -1980,7 +2024,7 @@
\@@_xmp_xmlns_new:nn {photoshop}{http://ns.adobe.com/photoshop/1.0/}
\@@_xmp_xmlns_new:nn {xmp} {http://ns.adobe.com/xap/1.0/}
\@@_xmp_xmlns_new:nn {xmpMM} {http://ns.adobe.com/xap/1.0/mm/}
-\@@_xmp_xmlns_new:ne {stEvt}
+\@@_xmp_xmlns_new:nn {stEvt}
{http://ns.adobe.com/xap/1.0/sType/ResourceEvent\c_hash_str}
\@@_xmp_xmlns_new:nn {pdfaid} {http://www.aiim.org/pdfa/ns/id/}
\@@_xmp_xmlns_new:nn {pdfuaid} {http://www.aiim.org/pdfua/ns/id/}
@@ -1989,13 +2033,13 @@
\@@_xmp_xmlns_new:nn {prism} {http://prismstandard.org/namespaces/basic/3.0/}
%\@@_xmp_xmlns_new:nn {jav} {http://www.niso.org/schemas/jav/1.0/}
%\@@_xmp_xmlns_new:nn {xmpTPg} {http://ns.adobe.com/xap/1.0/t/pg/}
-\@@_xmp_xmlns_new:ne {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str}
+\@@_xmp_xmlns_new:nn {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str}
\@@_xmp_xmlns_new:nn {Iptc4xmpCore}{http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/}
\@@_xmp_xmlns_new:nn {pdfaExtension}{http://www.aiim.org/pdfa/ns/extension/}
-\@@_xmp_xmlns_new:ne {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str}
% \end{macrocode}
% \subsection{Building the chunks: Extensions}
@@ -2022,42 +2066,61 @@
\cs_new_protected:Npn \@@_xmp_schema_new:nnn #1 #2 #3
%#1 name #2 prefix, #3 text
{
- \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 }
- \tl_new:c { g_@@_xmp_schema_#2_tl }
- \tl_new:c { g_@@_xmp_schema_#2_properties_tl }
- \tl_gput_right:cn { g_@@_xmp_schema_#2_tl }
+ \tl_if_exist:cTF { g_@@_xmp_schema_#2_tl }
{
- \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3}
- \@@_xmp_add_packet_open:nn {pdfaSchema}{property}
- \@@_xmp_add_packet_open:nn{rdf}{Seq}
- \tl_use:c { g_@@_xmp_schema_#2_properties_tl }
- \@@_xmp_add_packet_close:nn{rdf}{Seq}
- \@@_xmp_add_packet_close:nn {pdfaSchema}{property}
- \cs_if_exist_use:c {@@_xmp_schema_#2_additions:}
- \@@_xmp_add_packet_close:nn{rdf}{li}
+ \msg_warning:nnnn{pdfmeta}{xmp-defined}{schema}{#2}
}
+ {
+ \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 }
+ \tl_new:c { g_@@_xmp_schema_#2_tl }
+ \tl_new:c { g_@@_xmp_schema_#2_properties_tl }
+ \tl_gput_right:cn { g_@@_xmp_schema_#2_tl }
+ {
+ \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3}
+ \@@_xmp_add_packet_open:nn {pdfaSchema}{property}
+ \@@_xmp_add_packet_open:nn{rdf}{Seq}
+ \tl_use:c { g_@@_xmp_schema_#2_properties_tl }
+ \@@_xmp_add_packet_close:nn{rdf}{Seq}
+ \@@_xmp_add_packet_close:nn {pdfaSchema}{property}
+ \cs_if_exist_use:c {@@_xmp_schema_#2_additions:}
+ \@@_xmp_add_packet_close:nn{rdf}{li}
+ }
+ }
}
% \end{macrocode}
% \end{macro}
-
-% \begin{macro}{\@@_xmp_property_new:nnn}
+%
+%
+%
+% \begin{macro}{\@@_xmp_property_new:nnnnn}
% This adds a property to a schema.
% \begin{macrocode}
+\prop_new:N\g_@@_xmp_schema_property_prop
\cs_new_protected:Npn \@@_xmp_property_new:nnnnn #1 #2 #3 #4 #5 %
%#1 schema #2 name, #3 type, #4 category #5 description
{
- \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl }
+ \tl_if_exist:cTF { g_@@_xmp_schema_#1_properties_tl }
+ {
+ \prop_get:NeNF \g_@@_xmp_schema_property_prop {#1:#2}\l_@@_tmpa_tl
+ {
+ \prop_gput:Nee \g_@@_xmp_schema_property_prop {#1:#2}{#3}
+ \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl }
+ {
+ \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5}
+ \@@_xmp_add_packet_close:nn{rdf}{li}
+ }
+ }
+ }
{
- \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5}
- \@@_xmp_add_packet_close:nn{rdf}{li}
- }
+ \msg_warning:nnnn{pdfmeta}{xmp-undefined}{schema}{#1}
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2114,7 +2177,7 @@
% \item[pdfaid] properties part and conformance are declared by hyperxmp, but
% no here as already in http://www.aiim.org/pdfa/ns/id/. But we declare
% year so that it can be used also with older A-standards.
-% \begin{macro}{pdfaid~(schema)}
+% \begin{macro}[no-user-doc]{pdfaid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/A~Identification~Schema}
@@ -2136,7 +2199,7 @@
% \end{macro}
% \item[pdfuaid] here we need (?) to declare the property
% \enquote{part} and \enquote{rev}.
-% \begin{macro}{pdfuaid~(schema)}
+% \begin{macro}[no-user-doc]{pdfuaid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/UA~Universal~Accessibility~Schema}
@@ -2163,7 +2226,7 @@
%
% \item[pdfxid] we set this so that we
% can add the pdf/X version for pdf/X-4 and higher
-% \begin{macro}{pdfxid~(schema)}
+% \begin{macro}[no-user-doc]{pdfxid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/X~ID~Schema}
@@ -2179,7 +2242,7 @@
% \end{macro}
%\item[Prism]
-% \begin{macro}{prism~(schema)}
+% \begin{macro}[no-user-doc]{prism~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PRISM~Basic~Metadata}
@@ -2278,6 +2341,7 @@
% \end{macrocode}
% \end{macro}
% \item[iptc]
+% \begin{macro}[no-user-doc]{iptc (schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{IPTC~Core~Schema}
@@ -2325,6 +2389,7 @@
\@@_xmp_add_packet_close:nn{pdfaSchema}{valueType}
}
% \end{macrocode}
+% \end{macro}
% \item[jav]: currently ignored
%
% \item[declarations] The PDF Declarations mechanism allows creation and
@@ -2341,7 +2406,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_xmp_schema_enable_pdfd:
{
- \@@_xmp_xmlns_new:ne {pdfd}{http://pdfa.org/declarations/}
+ \@@_xmp_xmlns_new:nn {pdfd}{http://pdfa.org/declarations/}
\@@_xmp_schema_new:nnn
{PDF~Declarations~Schema}
{pdfd}
@@ -2411,8 +2476,8 @@
% \subsubsection{pdf}
% This builds pdf related the data with the (prefix \enquote{pdf}).
%
-% \begin{macro}{\@@_xmp_build_pdf:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_pdf:}
+% \begin{macro}[int]{
% Producer/pdfproducer,
% PDFversion}
% \begin{macrocode}
@@ -2440,8 +2505,8 @@
% \subsubsection{xmp}
% This builds the data with the (prefix \enquote{xmp}).
%
-% \begin{macro}{\@@_xmp_build_xmp:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_xmp:}
+% \begin{macro}[int]{
% CreatorTool/pdfcreator,
% BaseUrl/baseurl}
% \begin{macrocode}
@@ -2635,8 +2700,8 @@
%
% \subsection{Rest of dublin Core data}
%
-% \begin{macro}{\@@_xmp_build_dc:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_dc:}
+% \begin{macro}[int]{
% dc:creator/pdfauthor,
% dc:subject/pdfkeywords,
% dc:type/pdftype,
@@ -2815,8 +2880,8 @@
% \end{macro}
%
% \subsection{Prism}
-% \begin{macro}{\@@_xmp_build_prism:}
-% \begin{macro}
+% \begin{macro}[int]{\@@_xmp_build_prism:}
+% \begin{macro}[int]
% {
% complianceProfile,
% prism:subtitle/pdfsubtitle,
@@ -2961,11 +3026,22 @@
\cs_new_protected:Npn \pdfmeta_xmp_xmlns_new:nn #1 #2
{
\prop_if_in:NnTF \g_@@_xmp_xmlns_prop {#1}
- {\msg_warning:nnn{pdfmeta}{namespace-defined}{#1}}
+ {\msg_warning:nnnn{pdfmeta}{xmp-defined}{xmlns~namespace}{#1}}
{\@@_xmp_xmlns_new:nn {#1}{#2}}
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\pdfmeta_xmp_schema_new:nnn}
+% \begin{macrocode}
+\cs_set_eq:NN \pdfmeta_xmp_schema_new:nnn \@@_xmp_schema_new:nnn
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pdfmeta_xmp_property_new:nnnnn}
+% \begin{macrocode}
+\cs_set_eq:NN \pdfmeta_xmp_property_new:nnnnn \@@_xmp_property_new:nnnnn
+% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\pdfmeta_xmp_add_declaration:n,\pdfmeta_xmp_add_declaration:e}
% \begin{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
index 9a5de67174..81ae8bb9f1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf
new file mode 100644
index 0000000000..5d40c31cf9
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index e6d655c96e..ff65ed4700 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -120,26 +120,29 @@
% Entries to the /Properties dictionary in the page resources can
% be added with dvips only through side-effects: if a BDC-mark is created
% dvips/ghostscript will automatically create the necessary objects and names.
-% To get a sensible abstraction the code does the same for the other backends if the
+% To get a sensible abstraction the code does for some of the following
+% command the same for the other backends if the
% core management code has been activated. This means that the behaviour
% of the command is different then. The \cs{pdf_bdcobject:..} should only be used
% if the management is active.
-% \begin{function}[updated = 2020-07-03]
+%
+%
+% \begin{function}[updated = 2024-10-23]
% {
% \pdf_bdc:nn, \pdf_bdc:ee
% }
% \begin{syntax}
% \cs{pdf_bdc:nn} \Arg{tag} \Arg{dictionary content}
% \end{syntax}
-% This command adds a BDC marked content operator to the current page stream.
+% This command adds a BDC marked content operator to the current page stream.
% \meta{tag} is the tag of this operator (without the leading slash),
% \meta{dictionary content} is the content of the second argument.
-% If the PDF resource management is active an dictionary object with the
-% content is created and referenced with a name in the BDC operator.
-% Without the resource management the content is used directly. It then
-% depends on the backend how it is handled: with dvips a name is used
-% while the pdfmode engines and dvipdfmx write the content into the stream.
+% With the exception of the dvips backend,
+% the dictionary content is added inline in the stream. Such an inline BDC
+% is typically better for ActualText additions as some PDF reader ignore
+% entries given in properties.
% \end{function}
+%
% \begin{function}[added = 2023-08-18]
% {
% \pdf_bdc_shipout:ee
@@ -150,21 +153,21 @@
% This command adds a BDC marked content operator to the current page stream.
% \meta{tag} is the tag of this operator (without the leading slash),
% \meta{dictionary content} is the content of the second argument.
-%
-% Differently to \cs{pdf_bdc:ee} the arguments are not expanded when the
-% command is \emph{used}, but only at \emph{shipout}.
+%
+% Differently to \cs{pdf_bdc:ee} the arguments are not expanded when the
+% command is \emph{used}, but only at \emph{shipout}.
% This requires new engines which
% allow to use the keyword \texttt{shipout} with the primitive
-% \cs{special} and \cs{pdfliteral}. Also differently to \cs{pdf_bdc:ee}
+% \cs{special} and \cs{pdfliteral}. Also similar to \cs{pdf_bdc:ee}
% the content of \meta{dictionary content} is added inline in the stream
% with most engines (not on the dvips + ps2pdf route).
% This means that this command can also be used if such an inline dictionary is preferred.
-%
-% The command requires current engines and
+%
+% The command requires current engines and
% is not defined if an too old engine is detected!
-%
+%
% \end{function}
-%
+%
% \begin{function}[added = 2020-07-03]
% {
% \pdf_bdcobject:nn
@@ -235,7 +238,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdftools}{2024-10-27}{0.96n}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
@@ -434,6 +437,7 @@
%
% \subsubsection{BDC operator commands}
% \begin{macro}{\pdf_bdc:nn,\pdf_bdc:ee}
+% \begin{macro}{\pdf_bdc_property:nn}
% \begin{macro}{\pdf_bdc_shipout:ee}
% \begin{macro}{\pdf_bdcobject:nn}
% \begin{macro}{\pdf_bdcobject:n}
@@ -443,18 +447,20 @@
\cs_new_protected:Npn \pdf_bdc:nn #1 #2 { \@@_backend_bdc:nn { #1 }{ #2 } }
\cs_generate_variant:Nn \pdf_bdc:nn {ee}
-\cs_new_protected:Npn \pdf_bdc_shipout:ee #1 #2
- {
+\cs_new_protected:Npn \pdf_bdc_property:nn #1 #2
+ { \@@_backend_bdc_contobj:nn { #1 }{ #2 } }
+\cs_new_protected:Npn \pdf_bdc_shipout:ee #1 #2
+ {
\bool_if:NTF\l__pdfmanagement_delayed_shipout_bool
- {
- \@@_backend_bdc_shipout:ee { #1 }{ #2 }
+ {
+ \@@_backend_bdc_shipout:ee { #1 }{ #2 }
\cs_gset_eq:NN \pdf_bdc_shipout:ee \@@_backend_bdc_shipout:ee
}
{
- \msg_error:nn {pdfmanagement}{delayed-shipout}
+ \msg_error:nn {pdfmanagement}{delayed-shipout}
\cs_gset_eq:NN \pdf_bdc_shipout:ee \use_none:nn
- }
- }
+ }
+ }
\cs_new_protected:Npn \pdf_bdcobject:nn #1 #2 { \@@_backend_bdcobject:nn { #1 }{ #2 } }
\cs_new_protected:Npn \pdf_bdcobject:n #1 { \@@_backend_bdcobject:n { #1 } }
\cs_new_protected:Npn \pdf_bmc:n #1 { \@@_backend_bmc:n { #1 } }
@@ -466,6 +472,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
index 88abccd671..42c877f7e5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
index 4daa9d2b83..22b6d4bb08 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -132,7 +132,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*header>
-\ProvidesExplPackage{l3pdfxform}{2024-08-17}{0.96j}
+\ProvidesExplPackage{l3pdfxform}{2024-10-27}{0.96n}
{command to create xforms (beta)---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
index 2debc15494..c7a594d64b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
index 3d29afa58b..2bb0fcf215 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -197,11 +197,12 @@
% stream. The \meta{token list variable} is assigned locally.
% \end{function}
%
-% \begin{function}{\ShowDocumentProperties}
+% \begin{function}{\ShowDocumentProperties,\LogDocumentProperties}
% \begin{syntax}
-% \cs{ShowDocumentProperties}
+% \cs{ShowDocumentProperties}\\
+% \cs{LogDocumentProperties}
% \end{syntax}
-% This show the current content of the container.
+% This shows/logs the current content of the container.
% \end{function}
%
% \begin{thebibliography}{9}
@@ -220,7 +221,7 @@
% \begin{macrocode}
%<@@=pdfmanagement>
%<*header>
-\ProvidesExplPackage{ltdocinit}{2024-08-17}{0.96j}
+\ProvidesExplPackage{ltdocinit}{2024-10-27}{0.96n}
{Initialize document metadata}
%</header>
% \end{macrocode}
@@ -324,6 +325,13 @@
\prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn
}
}
+\NewDocumentCommand\LogDocumentProperties {}
+ {
+ \msg_log:nne {pdfmanagement}{show-properties}
+ {
+ \prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn
+ }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
index 7bfd5bb36b..f949362973 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
index 148d15ce95..11e11e72bc 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -63,7 +63,7 @@
% |debug={firstaidoff={name1,name2,...},...}|.
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{pdfmanagement-firstaid}{2024-08-17}{0.96j}
+\ProvidesExplPackage{pdfmanagement-firstaid}{2024-10-27}{0.96n}
{LaTeX PDF management testphase bundle / firstaid-patches}
%<@@=pdfmanagement>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
index 8c4d7d88cb..669ad51696 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
index af4520b433..0d8ffc6e4a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96j, released 2024-08-17}
+% \date{Version 0.96n, released 2024-10-27}
%
% \maketitle
% \begin{documentation}
@@ -394,7 +394,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*package>
-\ProvidesExplPackage{pdfmanagement-testphase}{2024-08-17}{0.96j}
+\ProvidesExplPackage{pdfmanagement-testphase}{2024-10-27}{0.96n}
{LaTeX PDF management testphase bundle}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{2020-10-01}{}{
@@ -422,7 +422,7 @@
% to allow to set it in the document.
% \begin{macrocode}
%<*header>
-\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-08-17}{0.96j}
+\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-10-27}{0.96n}
{PDF~management~code~(testphase)}
% \end{macrocode}
% We define a boolean for the new delayed shipout. This is temporary. At some
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
index f2dc6282db..ad50a08e70 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
index 5fce11f19d..bde07318fd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
@@ -1,6 +1,6 @@
%% LaTeX2e file `xcolor-patches-tmp-ltx.sty'
%%
-\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-08-17 v0.96j patch xcolor for l3color]
+\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-10-27 v0.96n patch xcolor for l3color]
\@ifundefined{color_set:nn}{\RequirePackage{l3color}}{}
\ExplSyntaxOn
diff --git a/macros/latex/contrib/pdfpages/pdfpages.dtx b/macros/latex/contrib/pdfpages/pdfpages.dtx
index 5b41ae68c4..8e25b5d99a 100644
--- a/macros/latex/contrib/pdfpages/pdfpages.dtx
+++ b/macros/latex/contrib/pdfpages/pdfpages.dtx
@@ -27,12 +27,12 @@
%<*dtx>
\makeatletter
%</dtx>
-\def\AM@fileversion{v0.6a}
+\def\AM@fileversion{v0.6c}
\def\AM@Git@Date@process$#1: #2 #3${\AM@Git@Date@process@i#2\END}
\def\AM@Git@Date@process@i#1-#2-#3\END{\def\AM@Git@Date{#1/#2/#3}}
\def\AM@Git@SHA@process$#1: #2${\def\AM@Git@SHA{#2}}
-\AM@Git@Date@process$Date: 2024-05-29 13:40:24 +0200 $
-\AM@Git@SHA@process$SHA-1: 8248eea896cba74c6d712bddc3e4ae8d4c403081 $
+\AM@Git@Date@process$Date: 2024-10-28 16:42:54 +0100 $
+\AM@Git@SHA@process$SHA-1: 0245196e5b1316cbcdc0ca6a1e8bc634dce1f74e $
%</!(example1,example2,example3,installer)>
%
%
@@ -84,7 +84,7 @@
%
% \GetFileInfo{pdfpages.dtx}
%
-% \CheckSum{5113}
+% \CheckSum{5128}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -374,6 +374,9 @@
% \item[pagecommand] Declares \LaTeX\ commands, which are executed
% on each sheet of paper.
% \df{pagecommand=\{\bslash thispagestyle\{empty\}\}}
+% \item[pagecommand*] Declares \LaTeX\ commands that are executed
+% on the very first page only.
+% \df{pagecommand*=\{\}}
% \item[turn] By default pages in landscape format are displayed
% in landscape orientation (if the \PDF\ viewer supports
% this). With \texttt{turn=false} this can be prohibited.
@@ -1267,6 +1270,7 @@
% \begin{macrocode}
\newcommand*{\AM@pagestemp}{1}
\newcommand*{\AM@pagecommand}{\thispagestyle{empty}}
+\newcommand*{\AM@pagecommandstar}{}
\newcommand*{\AM@lscape@rot}{0}
\newcommand*{\AM@threadname}{}\newcommand*{\AM@linkname}{}
\newcommand*{\AM@linkname@option}{}
@@ -2045,7 +2049,10 @@
\AM@toclof{\AM@page}%
\ifnum\AM@xnupi=\AM@xnup\relax
\ifnum\AM@ynupi=\AM@ynup\relax
- \begingroup\AM@pagecommand\endgroup
+ \begingroup
+ \ifAM@firstpage\AM@pagecommandstar\fi
+ \AM@pagecommand
+ \endgroup
\hskip\z@
\ifthenelse{\boolean{AM@turn}\AND\boolean{AM@landscape}}{%
\AM@setRotate
@@ -2639,6 +2646,7 @@
\equal{openright}{\AM@temp}\or
\equal{openrighteach}{\AM@temp}\or
\equal{pagecommand}{\AM@temp}\or
+ \equal{pagecommand*}{\AM@temp}\or
\equal{landscape}{\AM@temp}\or
\equal{turn}{\AM@temp}\or
\equal{column}{\AM@temp}\or
@@ -3219,6 +3227,7 @@
\define@key{pdfpages}{openright}[true]{\setboolean{AM@openright}{#1}}
\define@key{pdfpages}{openrighteach}[true]{\setboolean{AM@openrighteach}{#1}}
\define@key{pdfpages}{pagecommand}{\def\AM@pagecommand{#1}}
+\define@key{pdfpages}{pagecommand*}{\def\AM@pagecommandstar{#1}}
\define@key{pdfpages}{landscape}[true]{\setboolean{AM@landscape}{#1}}
\define@key{pdfpages}{turn}[true]{\setboolean{AM@turn}{#1}}
\define@key{pdfpages}{column}[true]{\setboolean{AM@column}{#1}}
@@ -3838,10 +3847,10 @@
% \begin{macrocode}
\def\AM@getpagecount{%
\expandafter\filename@parse\expandafter{\AM@currentdocname}%
- \edef\type@ext{%
- \noexpand\lowercase{%
- \noexpand\def\noexpand\type@ext{.\filename@ext}}}%
- \type@ext
+ \begingroup\edef\x{%
+ \lowercase{\endgroup
+ \def\noexpand\type@ext{\expandafter\scantokens\expandafter{\filename@ext\noexpand}}}}%
+ \x
\ifx\type@ext\AM@pdf@ext
\ifdefined\subfix
\let\AM@import@path\@empty
@@ -3859,7 +3868,7 @@
\def\AM@pagecount{1}%
\fi
}
-\def\AM@pdf@ext{.pdf}
+\def\AM@pdf@ext{pdf}
% \end{macrocode}
% |\XeTeXversion| has changed from time to time: 0.997, 0.997-dev,
% 0.998.1
@@ -4902,6 +4911,16 @@
% with |subfiles.sty|.
% \end{itemize}
%
+% \subsection*{2024/08/20 v0.6b}
+% \begin{itemize}
+% \item Make |\includepdf[pages=-]{\detokenize{file.pdf}}| work in xelatex.
+% \end{itemize}
+%
+% \subsection*{2024/10/28 v0.6c}
+% \begin{itemize}
+% \item Add option |pagecommand*|.
+% \end{itemize}
+%
% \Finale
%
% \iffalse
diff --git a/macros/latex/contrib/pdfpages/pdfpages.pdf b/macros/latex/contrib/pdfpages/pdfpages.pdf
index a5ea1485bc..e69bfda84a 100644
--- a/macros/latex/contrib/pdfpages/pdfpages.pdf
+++ b/macros/latex/contrib/pdfpages/pdfpages.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/CHANGELOG.md b/macros/latex/contrib/postnotes/CHANGELOG.md
index df5807e78e..016ab2ebbc 100644
--- a/macros/latex/contrib/postnotes/CHANGELOG.md
+++ b/macros/latex/contrib/postnotes/CHANGELOG.md
@@ -1,6 +1,15 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.2.8...HEAD)
+## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.3.0...HEAD)
+
+## [v0.3.0](https://github.com/gusbrs/postnotes/compare/v0.2.8...v0.3.0) (2024-10-15)
+
+### Added
+- Provide `multiple` option, with functionality akin the the same named option
+ from `footmisc`.
+- Provide (experimental) support for PDF tagging. For this, the required LaTeX
+ kernel version was bumped to 2024-06-01. Tagging support requires
+ `testphase=phase-III` (`phase-II` with `listenv=none`).
## [v0.2.8](https://github.com/gusbrs/postnotes/compare/v0.2.7...v0.2.8) (2023-12-12)
diff --git a/macros/latex/contrib/postnotes/postnotes-code.pdf b/macros/latex/contrib/postnotes/postnotes-code.pdf
index b21c5b36d3..5742cac6a2 100644
--- a/macros/latex/contrib/postnotes/postnotes-code.pdf
+++ b/macros/latex/contrib/postnotes/postnotes-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/postnotes-code.tex b/macros/latex/contrib/postnotes/postnotes-code.tex
index 6cc43c80af..8a217038f2 100644
--- a/macros/latex/contrib/postnotes/postnotes-code.tex
+++ b/macros/latex/contrib/postnotes/postnotes-code.tex
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/postnotes/postnotes-doc.pdf b/macros/latex/contrib/postnotes/postnotes-doc.pdf
index a7e5c5893c..952c0446d7 100644
--- a/macros/latex/contrib/postnotes/postnotes-doc.pdf
+++ b/macros/latex/contrib/postnotes/postnotes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/postnotes-doc.tex b/macros/latex/contrib/postnotes/postnotes-doc.tex
index 805b72d69e..30bbcc1cba 100644
--- a/macros/latex/contrib/postnotes/postnotes-doc.tex
+++ b/macros/latex/contrib/postnotes/postnotes-doc.tex
@@ -385,6 +385,16 @@ maketextmark = {#2#1.#3} ,
At the point \opt{maketextmark} gets typeset, the \cs{pnthepage} variable
contains the value of \cs{thepage} where its corresponding note was set.
+\DescribeMacro{multiple} %
+\DescribeMacro{multisep} %
+Just as for footnotes, when two or more \cs{postnote}s are called in imediate
+sequence, the marks typeset in superscript give impression of being one large
+number, instead of the sequence of smaller ones they were supposed to convey.
+Enabling the \opt{multiple} option makes \pkg{postnotes} typeset a separator
+between marks occurring in sequence. The separator can be configured with the
+\opt{multisep} option, which has a comma as initial value. \opt{multiple} is
+a boolean option, and has \texttt{false} as initial value.
+
\DescribeOption{pretextmark} %
\DescribeOption{posttextmark} %
\DescribeOption{postprintnote} %
@@ -1079,17 +1089,24 @@ provided by (in chronological order):
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-02-19: https://tex.stackexchange.com/q/675818#comment1678904_675818
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-01-28: https://chat.stackexchange.com/transcript/message/65071091#65071091 (discussion)
+ % 2024-10-09: https://chat.stackexchange.com/transcript/message/66415504#66415504 (discussion)
+ % 2024-10-10: https://chat.stackexchange.com/transcript/message/66421777#66421777 (discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
David Carlisle,
% 2022-03-28: https://chat.stackexchange.com/transcript/message/60754383#60754383
% 2022-04-08: https://tex.stackexchange.com/a/640035 (comments)
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-02-10: https://tex.stackexchange.com/a/674846
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-01-28: https://chat.stackexchange.com/transcript/message/65071091#65071091 (discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
Moritz Wemheuer,
% 2022-04-05: https://tex.stackexchange.com/q/597359#comment1594585_597389
Joseph Wright,
% 2023-02-10: https://chat.stackexchange.com/transcript/message/62955941#62955941 (and discussion)
% 2023-12-12: https://chat.stackexchange.com/transcript/message/64848034#64848034 (and discussion)
+ % 2024-10-15: https://chat.stackexchange.com/transcript/message/66444011#66444011 (discussion)
\username{SwitWu},
% 2023-11-29: https://github.com/gusbrs/postnotes/pull/4
% 2023-11-30: https://github.com/gusbrs/postnotes/pull/5
diff --git a/macros/latex/contrib/postnotes/postnotes.dtx b/macros/latex/contrib/postnotes/postnotes.dtx
index c01e6af7ef..46c677a646 100644
--- a/macros/latex/contrib/postnotes/postnotes.dtx
+++ b/macros/latex/contrib/postnotes/postnotes.dtx
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -132,12 +132,13 @@
% simplifies the relation with \pkg{hyperref} (\texttt{ltnews35},
% \texttt{hyperref-linktarget}): the provision of \cs{MakeLinkTarget} and the
% definition by the kernel of the starred version of \cs{ref}, which we can
-% use regardless of \pkg{hyperref} being loaded. Finally, since we followed
-% the move to \texttt{e}-type expansion, to play safe we require the
-% 2023-11-01 kernel or newer.
+% use regardless of \pkg{hyperref} being loaded. Also, since we followed the
+% move to \texttt{e}-type expansion, to play safe we require the 2023-11-01
+% kernel or newer. Finally, the tagging sockets and block code required for
+% tagging support need the 2024-06-01 kernel.
%
% \begin{macrocode}
-\def\postnotes@required@kernel{2023-11-01}
+\def\postnotes@required@kernel{2024-06-01}
\NeedsTeXFormat{LaTeX2e}[\postnotes@required@kernel]
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{\postnotes@required@kernel}
@@ -152,7 +153,7 @@
%
%
% \begin{macrocode}
-\ProvidesExplPackage {postnotes} {2023-12-12} {0.2.8}
+\ProvidesExplPackage {postnotes} {2024-10-15} {0.3.0}
{Endnotes for LaTeX}
% \end{macrocode}
%
@@ -541,6 +542,7 @@
maketextmark .value_required:n = true ,
maketextmark .initial:n = { #2 #1 . #3 } ,
}
+\cs_generate_variant:Nn \@@_make_mark:nnn { Vnn }
% \end{macrocode}
%
%
@@ -625,6 +627,159 @@
% \end{macrocode}
%
%
+% \subsection*{\opt{multiple}, \opt{multisep} options}
+%
+% As far as I can tell, the \opt{multiple} option has its origins in the
+% \pkg{footmisc} package, which offers this feature for footnotes. About this
+% option, \file{footmisc.dtx} observes:
+%
+% \begin{quote}
+% This (revised) code derives from a suggestion by Alexander Rozhenko (the
+% author of the \pkg{manyfoot} package): the intention is that
+% \pkg{footmisc} and \pkg{manyfoot} should be able to `interwork', in the
+% sense that each would recognize the other's footnote marks and behave
+% appropriately. The trick is that both \cs{footnote} and \cs{footnotemark}
+% insert a marker (a cancelling pair of kerns of \cs{multiplefootnotemarker}
+% (of opposite signs), which is detected in following \cs{footnote} or
+% \cs{footnotemark} commands.
+% \end{quote}
+%
+% About the same option, \file{manyfoot.dtx} notes:
+%
+% \begin{quote}
+% To support \opt{multiple} option from \pkg{footmisc} we add the
+% \cs{FN@mf@prepare} command from \pkg{footmisc} (suggested by Frank
+% Mittelbach).
+% \end{quote}
+%
+% Whatever the exact origin of this feature, the fact is that it has spread
+% throughout the ecosystem, using not only the same basic mechanism but,
+% typically, using \emph{the same variables}: \cs{multiplefootnotemarker} and
+% \cs{multfootsep}. With the intention, naturally, that different classes and
+% packages can ``interwork'' with regard to this feature. And this became a
+% sort of ``shared feature'' in the ecosystem (the list includes
+% \pkg{footmisc}, \texttt{KOMA-Script}, \pkg{eledmac}, \pkg{reledmac},
+% \cls{tufte}, \cls{memoir}, \pkg{parnotes}, \pkg{sidenotes}, and now also
+% \pkg{postnotes}, see discussion at
+% \url{https://chat.stackexchange.com/transcript/message/66421777#66421777}).
+% What is crucial for this interplay, however, is not quite the variables
+% themselves, but \emph{the value of the canceling pair of kerns}, stored in
+% \cs{multiplefootnotemarker}. The fact that the same variables are used by
+% most of the classes and packages which provide the feature speaks for
+% convenience, in that a change in one of them reflects in all participating
+% in the ``pool''.
+%
+% Convenient as it is, this shared use of the same variables can only work as
+% long as the community agrees in what these variables contain to some degree.
+% As far as \cs{multiplefootnotemarker} goes, I see no divergence, and
+% everybody uses the value of \texttt{3sp} for the canceling kerns from
+% \cs{FN@mf@prepare}. \file{latex-lab-footnotes.dtx} even documents this
+% value for this purpose in its list of ``use of kerns to mark h-mode
+% positions'' (see
+% \url{https://chat.stackexchange.com/transcript/message/66421893#66421893}).
+% Things are not as smooth with regard to \cs{multfootsep} though.
+% \pkg{footmisc} stores a plain comma in \cs{multfootsep} and applies
+% formatting around it in \cs{FN@mf@check} (hard-coded as
+% \cs{textsuperscript}). \texttt{KOMA-Script} also stores plain content in
+% \cs{multfootsep} and applies the formatting in the check function.
+% \cls{memoir}, however, stores the formatting directly \cs{multfootsep} and
+% applies no formatting later. Also, \file{latex-lab-footmisc.ltx}, in adding
+% PDF tagging support for \pkg{footmisc} stores the tagging code directly in
+% \cs{multfootsep}. I don't know if there are others, but these cases are
+% already relevant enough to spoil things. The problem is not that they
+% disagree on the value of \cs{multfootsep}, but on the function(s) this macro
+% is supposed to perform. That given, any other parties trying to partake in
+% this feature have to handle things differently depending on the value of
+% \cs{multfootsep}. All in all, \pkg{postnotes} takes the cautious stance of
+% using internal variables, instead of the shared ones, to implement the
+% \opt{multiple} option. The only thing that really needs to be common is the
+% value of the canceling kerns of \texttt{3sp} in \cs{@@_multiple_prepare:}.
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@@_multiple_prepare: \prg_do_nothing:
+\cs_new_eq:NN \@@_multiple_check: \prg_do_nothing:
+\cs_new_eq:NN \@@_multiple_store_lastkern: \prg_do_nothing:
+\tl_new:N \l_@@_multisep_tl
+\tl_const:Nn \c_postnotes_multi_notemarker_tl { 3sp }
+\dim_new:N \l_@@_multi_lastkern_dim
+\bool_new:N \l_@@_multi_stored_lastkern_bool
+\tl_new:N \l_@@_saved_spacefactor_multi_tl
+\keys_define:nn { postnotes/setup }
+ {
+ multiple .choice: ,
+ multiple / true .code:n =
+ {
+% \end{macrocode}
+% I'm using the definitions in \pkg{latex-lab-footmisc.ltx} as base, see
+% \texttt{texdoc latex-lab-footnotes}. For the formatting of the separator,
+% though, I take inspiration from \texttt{KOMA-Script} and use
+% \cs{@@_make_mark:nnn}, instead of hard-coding \cs{textsuperscript}.
+% \begin{macrocode}
+ \cs_set_protected:Npn \@@_multiple_prepare:
+ {
+ \kern -\c_postnotes_multi_notemarker_tl
+ \kern \c_postnotes_multi_notemarker_tl
+ \scan_stop:
+ }
+ \cs_set_protected:Npn \@@_multiple_check:
+ {
+ \dim_compare:nNnT
+ { \c_postnotes_multi_notemarker_tl } =
+ {
+ \bool_if:NTF \l_@@_multi_stored_lastkern_bool
+ { \l_@@_multi_lastkern_dim }
+ { \lastkern }
+ }
+ {
+ \tl_set:Ne \l_@@_saved_spacefactor_multi_tl
+ { \int_use:N \spacefactor }
+% \end{macrocode}
+% \pkg{latex-lab-footmisc.ltx} comments at this point ``shouldn't that be 2
+% unkerns?? (none would also be ok)'' and goes on to add a second \cs{unkern}.
+% If these calls are supposed to undo the \cs{kern}s in
+% \cs{@@_multiple_prepare:}, in our case we probably lost those at this point,
+% for the same reason we have to store \cs{lastkern} at the beginning of
+% \cs{posnote} (see below). So, we might as well go with ``none'', since
+% otherwise we might be removing from the list a kern we didn't intend to.
+% \begin{macrocode}
+ % \unkern
+ % \unkern
+ \tag_socket_use:n { postnotes/multsep/begin }
+ \@@_make_mark:Vnn \l_@@_multisep_tl { } { }
+ \tag_socket_use:n { postnotes/multsep/end }
+ \spacefactor \l_@@_saved_spacefactor_multi_tl
+ \scan_stop:
+ }
+ }
+% \end{macrocode}
+% \cs{postnote} does quite a lot of stuff before actually calling
+% \cs{@@_typeset_mark:eV} which results in \cs{lastkern} set by the previous
+% \cs{@@_multiple_prepare:} being lost (why?), so we need to store it earlier.
+% \begin{macrocode}
+ \cs_set_protected:Npn \@@_multiple_store_lastkern:
+ {
+ \dim_set_eq:NN \l_@@_multi_lastkern_dim \lastkern
+ \bool_set_true:N \l_@@_multi_stored_lastkern_bool
+ }
+ } ,
+ multiple / false .code:n =
+ {
+ \cs_set_eq:NN \@@_multiple_prepare: \prg_do_nothing:
+ \cs_set_eq:NN \@@_multiple_check: \prg_do_nothing:
+ \cs_set_eq:NN \@@_multiple_store_lastkern: \prg_do_nothing:
+ } ,
+ multiple / unknown .code:n =
+ { \msg_error:nnn { postnotes } { boolean-values-only } { multiple } } ,
+ multiple .default:n = true ,
+ multisep .tl_set:N = \l_@@_multisep_tl ,
+ multisep .initial:n = {,} ,
+ }
+\msg_new:nnnn { postnotes } { boolean-values-only }
+ { Key~'#1'~accepts~boolean~values~only. }
+ { The~key~'#1'~only~accepts~the~values~'true'~and~'false'. }
+% \end{macrocode}
+%
+%
% \subsection*{\opt{sort} option}
%
% \begin{macrocode}
@@ -766,7 +921,7 @@
% what is distinctive of the kernel's footnote apparatus, which allows it as
% much flexibility as one would like, is receiving an arbitrary number as
% argument and not stepping the counter. And as far as \cs{footnotemark} and
-% \cs{footnotetext}) are concerned, the main point of the optional argument is
+% \cs{footnotetext} are concerned, the main point of the optional argument is
% really to ``manually establish the relation'' between the two of them. So,
% if \emph{not stepping the counter} is what is needed to handle the general
% case, is it viable to do so? What would we loose in so doing?
@@ -903,6 +1058,7 @@
\cs_new_protected:Npn \@@_note:nn #1#2
{
\group_begin:
+ \@@_multiple_store_lastkern:
\keys_set:nn { postnotes/note } {#1}
\@@_inhibit_note:F
{
@@ -920,12 +1076,13 @@
\MakeLinkTarget* { postnote. \l_postnotes_note_id_tl .mark }
\@@_set_mark_page_label:e { \l_postnotes_note_id_tl }
\@@_set_user_labels:
- \bool_if:NF \l_@@_nomark_bool
+ \@@_store:nn { \l_postnotes_note_id_tl } {#2}
+ \bool_if:NTF \l_@@_nomark_bool
+ { \tag_socket_use:n { postnotes/mark/nomark } }
{
\@@_typeset_mark:eV
{ \l_postnotes_note_id_tl } \l_@@_mark_tl
}
- \@@_store:nn { \l_postnotes_note_id_tl } {#2}
}
\group_end:
}
@@ -1017,8 +1174,13 @@
\tl_set:Nn \l_@@_mark_tl { \thepostnote }
}
}
- \@@_typeset_mark_wrapper:n
- { \@@_make_mark:nnn { \l_@@_mark_tl } { } { } }
+ \group_begin:
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/begin } { noop }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/end } { noop }
+ \@@_typeset_mark_wrapper:nnn
+ { \@@_make_mark:Vnn \l_@@_mark_tl { } { } }
+ { } { }
+ \group_end:
}
\bool_if:NTF \l_@@_inhibit_note_bool
{ \prg_return_true: }
@@ -1031,19 +1193,20 @@
% \begin{macro}
% {
% \@@_typeset_mark:nn ,
-% \@@_typeset_mark_wrapper:n ,
+% \@@_typeset_mark_wrapper:nnn ,
% }
% Auxiliary functions for mark typesetting in \cs{@@_note:nn}.
-% \cs{@@_typeset_mark_wrapper:n} is based on the definition of
+% \cs{@@_typeset_mark_wrapper:nnn} is based on the definition of
% \cs{@footnotemark} in the kernel.
% \begin{syntax}
% \cs{@@_typeset_mark:nn} \Arg{note id} \Arg{mark}
-% \cs{@@_typeset_mark_wrapper:n} \Arg{mark}
+% \cs{@@_typeset_mark_wrapper:nnn}
+% \Arg{mark} \Arg{begin tagging} \Arg{end tagging}
% \end{syntax}
% \begin{macrocode}
\cs_new_protected:Npn \@@_typeset_mark:nn #1#2
{
- \@@_typeset_mark_wrapper:n
+ \@@_typeset_mark_wrapper:nnn
{
\bool_if:NTF \l_@@_hyperlink_bool
{
@@ -1053,18 +1216,25 @@
}
{ \@@_make_mark:nnn {#2} { } { } }
}
+ { \tag_socket_use:n { postnotes/mark/begin } }
+ { \tag_socket_use:n { postnotes/mark/end } }
}
\cs_generate_variant:Nn \@@_typeset_mark:nn { eV }
\tl_new:N \l_@@_saved_spacefactor_tl
-\cs_new_protected:Npn \@@_typeset_mark_wrapper:n #1
+\cs_new_protected:Npn \@@_typeset_mark_wrapper:nnn #1#2#3
{
\mode_leave_vertical:
\mode_if_horizontal:T
{
- \tl_set:Ne \l_@@_saved_spacefactor_tl { \the\spacefactor }
+ \tl_set:Ne \l_@@_saved_spacefactor_tl
+ { \int_use:N \spacefactor }
+ \@@_multiple_check:
\nobreak
}
- #1
+ #2 % begin tagging function
+ #1 % mark
+ #3 % end tagging function
+ \@@_multiple_prepare:
\mode_if_horizontal:T
{ \spacefactor \l_@@_saved_spacefactor_tl }
\scan_stop:
@@ -1081,7 +1251,7 @@
{
\tl_if_empty:NF \l_@@_note_label_tl
{ \exp_args:NV \label \l_@@_note_label_tl }
- \tl_if_empty:NF \l_@@_note_zlabel_tl
+ \tl_if_empty:NF \l_@@_note_zlabel_tl
{ \exp_args:NV \zlabel \l_@@_note_zlabel_tl }
}
% \end{macrocode}
@@ -1107,10 +1277,12 @@
% \cs{@@_note_ref:nn} \Arg{star bool} \Arg{label}
% \end{syntax}
% \begin{macrocode}
+\tl_new:N \l_@@_note_ref_label_tl
\cs_new_protected:Npn \@@_note_ref:nn #1#2
{
\group_begin:
- \@@_typeset_mark_wrapper:n
+ \tl_set:Nn \l_@@_note_ref_label_tl {#2}
+ \@@_typeset_mark_wrapper:nnn
{
\bool_lazy_and:nnTF
{ ! #1 }
@@ -1121,6 +1293,8 @@
}
{ \@@_make_mark:nnn { \ref*{#2} } { } { } }
}
+ { \tag_socket_use:n { postnotes/postnoteref/begin } }
+ { \tag_socket_use:n { postnotes/postnoteref/end } }
\group_end:
}
% \end{macrocode}
@@ -1404,6 +1578,7 @@
\bool_if:NTF \l_@@_print_as_list_bool
{ \exp_args:Ne \begin { \l_@@_print_env_tl } }
{ \group_begin: }
+ \tag_socket_use:n { postnotes/printlist/begin }
\l_@@_print_format_tl
}
\group_begin:
@@ -1424,6 +1599,7 @@
{ \l_@@_print_counter_tl }
\cs_set:Npe \@currentlabel
{ \p@postnote \l_@@_print_mark_tl }
+ \tag_socket_use:n { postnotes/printnote/begin }
\@@_text_mark_wrapper:n
{
\MakeLinkTarget*
@@ -1434,7 +1610,10 @@
{ \l_postnotes_print_note_id_tl }
\l_@@_print_mark_tl
}
+ \tag_socket_use:n { postnotes/printtext/begin }
\l_@@_print_content_tl
+ \tag_socket_use:n { postnotes/printtext/end }
+ \tag_socket_use:n { postnotes/printnote/end }
\l_@@_post_printnote_tl
\group_end:
% \end{macrocode}
@@ -1457,6 +1636,7 @@
}
\tl_if_eq:NnF \l_@@_print_type_next_tl { note }
{
+ \tag_socket_use:n { postnotes/printlist/end }
\bool_if:NTF \l_@@_print_as_list_bool
{ \exp_args:Ne \end { \l_@@_print_env_tl } }
{ \group_end: }
@@ -1524,14 +1704,23 @@
{
\bool_if:NTF \l_@@_print_as_list_bool
{
- \item [ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl ]
+ \item
+ [
+ \tag_socket_use:n { postnotes/printmark/begin }
+ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl
+ \tag_socket_use:n { postnotes/printmark/end }
+ ]
% \end{macrocode}
% Leave vertical mode to avoid ``perhaps a missing \cs{item}'' error for empty
% notes.
% \begin{macrocode}
\mode_leave_vertical:
}
- { \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl }
+ {
+ \tag_socket_use:n { postnotes/printmark/begin }
+ \l_@@_pre_textmark_tl #1 \l_@@_post_textmark_tl
+ \tag_socket_use:n { postnotes/printmark/end }
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2345,10 +2534,12 @@
% \cs{@@_note_zref:nn} \Arg{star bool} \Arg{label}
% \end{syntax}
% \begin{macrocode}
+ \tl_new:N \l_@@_note_zref_zlabel_tl
\cs_new_protected:Npn \@@_note_zref:nn #1#2
{
\group_begin:
- \@@_typeset_mark_wrapper:n
+ \tl_set:Nn \l_@@_note_zref_zlabel_tl {#2}
+ \@@_typeset_mark_wrapper:nnn
{
\bool_lazy_all:nTF
{
@@ -2363,6 +2554,8 @@
}
{ \@@_make_mark:nnn { \zref{#2} } { } { } }
}
+ { \tag_socket_use:n { postnotes/postnotezref/begin } }
+ { \tag_socket_use:n { postnotes/postnotezref/end } }
\group_end:
}
% \end{macrocode}
@@ -2578,6 +2771,663 @@
% \end{macrocode}
%
%
+% \subsection*{PDF Tagging (experimental)}
+%
+% Note: All of this mostly presumes
+% \texttt{\cs{DocumentMetadata}\{testphase=phase-III\}} and was tested with
+% it. For \opt{listenv=none}, I'd expect things to work with
+% \texttt{phase-II}, but this is only lightly tested.
+%
+% A first thing to consider in tagging endnotes is how we want to represent
+% them in the PDF structure. My first thought, for lack of another, was:
+% emulate footnotes. There's no relevant semantic difference at the structure
+% level between the two, and the tagging support for footnotes was done by the
+% pros. And one distinctive characteristic the the footnotes tagging is that
+% the footnote itself is placed in the structure as a child to the (parent)
+% \texttt{text} element which surrounds the footnote mark. However, for
+% endnotes this introduces a number of problems and complicates things. While
+% footnotes ``float around'' and have no real structure of their own, that is
+% not true for endnotes. Endnotes comprise a proper document section, and may
+% be printed in a list environment, etc. So when the tagging of footnotes
+% places the footnote structure element as a child element of the mark's
+% surrounding text, this is arguably for a lack of other options. Where else,
+% after all? Indeed, a typical \texttt{html} would render footnotes at the
+% end of the page, and not inline. True the normal \texttt{html} page is much
+% smaller than our typical PDF, but the point stands. We can have a hover
+% over call out for footnotes, but the same could be done for end notes,
+% regardless of the parent-child relation (as long as the required
+% cross-references are in place). On the other hand, for endnotes this is not
+% an issue: they have a natural place to be plugged into. Furthermore, making
+% an endnote a child of the text surrounding its mark leaves an empty
+% ``skeleton'' of the endnotes section: the heading, the list structure, etc.
+% Technically, we could clean that too, but clearly that's not the way to
+% go\dots{}.
+%
+% Finally, the parent-child relation is not required by \texttt{PDF} standards
+% for the relevant structure types. The \texttt{PDF} 2.0 standard
+% (ISO~32000-2:2020), says the following about \texttt{FENote}:
+%
+% \begin{quote}
+% Used to markup footnotes and endnotes. Footnotes and endnotes are content
+% that is not normally read as part of the enclosing content from which it
+% is referenced, but rather consulted at the reading person's discretion.
+% In order for text to be considered a footnote or endnote, there should be
+% a reference from the enclosing content to the footnote or endnote. Such
+% reference may be achieved by means of a Link structure element through a
+% structure destination in its link annotation (see ``Table 368 — General
+% inline level structure types''), or use of Ref in structure elements (see
+% ``Table 355 — Entries in a structure element dictionary'').
+% \end{quote}
+%
+% The \texttt{PDF} 1.7 standard (PDF~32000-1:2008), says the following about
+% \texttt{Note}:
+%
+% \begin{quote}
+% An item of explanatory text, such as a footnote or an endnote, that is
+% referred to from within the body of the document. It may have a label
+% (structure type Lbl; see ``List Elements'' in 14.8.4.3, ``Block-Level
+% Structure Elements'') as a child. The note may be included as a child of
+% the structure element in the body text that refers to it, or it may be
+% included elsewhere (such as in an endnotes section) and accessed by means
+% of a reference (structure type Reference).
+%
+% Tagged PDF does not prescribe the placement of footnotes in the page
+% content order. They may be either inline or at the end of the page, at
+% the discretion of the conforming writer.
+% \end{quote}
+%
+% So, the note \emph{may} be included as a child of the surrounding text, but
+% that's not required (PDF 2.0 does not even mention that). What is required
+% is the reference between the elements. All in all, let's not follow
+% footnotes in establishing the parent-child relation.
+%
+%
+% Another smaller but related issue is how to treat the list structure in
+% \cs{printpostnotes} when \opt{listenv} is used. The natural thing here
+% would be to use an \env{enumerate} type list (or, in PDF lingo, for the
+% \texttt{ListNumbering} attribute to be \texttt{Ordered}), where the mark is
+% used as the item's label (even if, technically, we use the list like a
+% \env{description} in that we feed the label of every \cs{item} and though
+% there is an implicit underlying counter, the list itself has no bearing upon
+% it). The problem here is that the PDF 2.0 standards determine that the
+% \texttt{FENote} structure element cannot be a child of a \texttt{LI} (list
+% item). However, at least in principle, we also would like to have the
+% \texttt{endnotelabel} element to be a child of the \texttt{endnote} element.
+% Thus, we have a conflict, the mc-chunk can only be used once, and can be
+% either the \texttt{Lbl} of the \texttt{LI}, or the \texttt{endnotelabel} for
+% the \texttt{endnote}. Currently, for the list case, I'm using an
+% \texttt{EndnotesList} class, which we define to have \texttt{ListNumbering}
+% as \texttt{Ordered}, with the mark as \texttt{Lbl} for \texttt{LI}, and
+% letting \texttt{endnote} be a child of \texttt{LBody}. In a way, the
+% possibility of exporting the tagged content to different formats makes me
+% think that this is the most appropriate for the this case. For the case of
+% \texttt{listenv=none}, the \texttt{endnote}s were made child of the
+% \texttt{Sect} in which they occur. The \texttt{endnotelabel} was then
+% included as part (child) of the \texttt{endnote}. In this, this treatment
+% emulates the one given for footnotes in the kernel. But, at the same time,
+% it is less than ideal for machine readability purposes, since whether the
+% \texttt{endnotelabel} is part of \texttt{endnote} or not depends on if there
+% is a list environment involved. Alas, I see no easy way around the PDF
+% standard restriction for the list case.
+%
+%
+% On the \LaTeX{} side of things, adding support for tagging entails two basic
+% tasks: i) applying the tagging markup at the appropriate places; ii)
+% generating references between the ``mark(s)'' and the ``text'' (plus
+% cross-reference commands to their respective targets).
+%
+% Regarding tagging references, we have three different cases: i) a regular
+% \cs{postnote}; ii) a \cs{postnoteref} to a note labeled from inside the
+% note; and iii) a \cs{postnoteref} to a note labeled with the \opt{label}
+% option.
+%
+% For regular \cs{postnote}s it is trivial to establish the reference using
+% the \texttt{label} / \texttt{ref} options of \pkg{tagpdf}.
+%
+% For \cs{postnoteref}s, however labeled, the connection \emph{must} be
+% established at \cs{postnoteref}, for the simple fact that any \cs{postnote}
+% can be referenced by arbitrarily many \cs{postnotref}s. So we need to be
+% able to retrieve the note ID from the ``text'' to which the reference refers
+% to at \cs{postnoteref}. However, at \cs{postnotref} the only information we
+% have is the \meta{label} but, since it is unique, we can establish a
+% connection through it.
+%
+% When the label is set from inside the note, it is actually set at
+% \cs{printposntones}, at which place we have access to
+% \cs{l_postnotes_print_note_id_tl} so we can use the \meta{label} to pass
+% that information around to \cs{postnoteref}. With a standard \cs{label} we
+% must set an additional \pkg{ltproperties} label, using the new
+% \texttt{label} hook, which \cs{postnoteref} can retrieve from its own
+% \meta{label} argument. For \cs{zlabel} this particular task is trivial,
+% since we can simply add a property to store the note ID with the label,
+% which \cs{postnotezref} can extract.
+%
+% When the label is set from the option, things are slightly more complicated,
+% because the label is set at \cs{postnote}, at which place we do not have
+% access to the note ID of the ``text''. What we do here is then store the
+% label with the note and restore it later at \cs{printpostnotes} as usual.
+% Then, at that point, we can set an auxiliary label which can be retrieved
+% from \cs{postnoteref} from its own \meta{label} argument, as we did for the
+% case of labels inside the note. Auxiliary labels are handled with
+% \pkg{ltproperties} labels.
+%
+%
+% Unconditionally define tagging support sockets.
+% \begin{macrocode}
+\socket_new:nn { tagsupport/postnotes/mark/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/mark/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/mark/nomark }{ 0 }
+\socket_new:nn { tagsupport/postnotes/multsep/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/multsep/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printlist/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printlist/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printnote/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printnote/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printmark/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printmark/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printtext/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/printtext/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnoteref/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnoteref/end }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnotezref/begin }{ 0 }
+\socket_new:nn { tagsupport/postnotes/postnotezref/end }{ 0 }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\bool_lazy_and:nnT
+ { \cs_if_exist_p:N \tag_if_active_p: }
+ { \tag_if_active_p: }
+ {
+% \end{macrocode}
+% FIXME Review or remove these settings if/when they are included upstream
+% (see \url{https://github.com/latex3/tagging-project/issues/728}).
+% \begin{macrocode}
+ \tagpdfsetup
+ {
+ role/new-tag = { tag=endnote, role=FENote } ,
+ role/new-tag = { tag=endnotemark, role=Lbl } ,
+ role/new-tag = { tag=endnotelabel, role=Lbl } ,
+ role/new-attribute =
+ { EndnoteType } { /O /FENote /NoteType /Endnote } ,
+ role/new-attribute =
+ { EndnotesList } { /O /List /ListNumbering /Ordered } ,
+ }
+% \end{macrocode}
+% \cs{postnote}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/begin } { default }
+ {
+ \tag_mc_end_push:
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ label = { postnotemark. \l_postnotes_note_id_tl } ,
+ ref = { postnote. \l_postnotes_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnotemark } \l_postnotes_note_id_tl
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/mark/nomark } { default }
+ {
+ \tag_struct_begin:n
+ {
+ tag = NonStruct ,
+ label = { postnotemark. \l_postnotes_note_id_tl } ,
+ ref = { postnote. \l_postnotes_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnotemark } \l_postnotes_note_id_tl
+ \tag_struct_end: % NonStruct
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/end } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/mark/nomark } { default }
+% \end{macrocode}
+% \opt{multiple}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/multsep/begin } { default }
+ {
+ \tag_mc_end_push:
+ \tag_mc_begin:n { artifact }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/multsep/end } { default }
+ {
+ \tag_mc_end:
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/multsep/end } { default }
+% \end{macrocode}
+% \cs{printpostnotes}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/printlist/begin } { default }
+ { \tag_tool:n { para/tagging=false } }
+ \socket_new_plug:nnn { tagsupport/postnotes/printlist/end } { default }
+ { }
+ \socket_assign_plug:nn { tagsupport/postnotes/printlist/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printlist/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printnote/begin } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n
+ {
+ tag = endnote ,
+ attribute-class = EndnoteType ,
+ label = { postnote. \l_postnotes_print_note_id_tl } ,
+% \end{macrocode}
+% CHECK Should we really add a back reference here? I couldn't find any hint
+% about this in the standards, but \pkg{latex-lab-footnotes} does it. No
+% harm, I guess.
+% \begin{macrocode}
+ ref = { postnotemark. \l_postnotes_print_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnote } \l_postnotes_print_note_id_tl
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printnote/end } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ { \tag_struct_end: } % endnote
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printnote/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printnote/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printmark/begin } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n { tag=endnotelabel }
+ \tag_mc_begin:n{ tag=Lbl }
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printmark/end } { default }
+ {
+ \bool_if:NF \l_@@_print_as_list_bool
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotelabel
+ }
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printmark/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printmark/end } { default }
+ \socket_new_plug:nnn { tagsupport/postnotes/printtext/begin } { default }
+ {
+ \bool_if:NTF \l_@@_print_as_list_bool
+ {
+ \tag_struct_begin:n
+ {
+ tag = endnote ,
+ attribute-class = EndnoteType ,
+ label = { postnote. \l_postnotes_print_note_id_tl } ,
+% \end{macrocode}
+% CHECK Ditto.
+% \begin{macrocode}
+ ref = { postnotemark. \l_postnotes_print_note_id_tl } ,
+ }
+ \@@_tagsup_store_sctructnum:nN
+ { postnote } \l_postnotes_print_note_id_tl
+ \tag_struct_begin:n { tag=text-unit }
+ \tag_struct_begin:n { tag=text }
+ \tag_tool:n { para/tagging=true }
+ \tag_mc_begin:n{}
+ }
+ {
+ \tag_struct_begin:n { tag=text-unit }
+ \tag_struct_begin:n { tag=text }
+ \tag_tool:n { para/tagging=true }
+ \tag_mc_begin:n{}
+ }
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/printtext/end } { default }
+ {
+ \bool_if:NTF \l_@@_print_as_list_bool
+ {
+ \tag_mc_end:
+ \tag_tool:n { para/tagging=false }
+ \tag_struct_end: % text
+ \tag_struct_end: % text-unit
+ \tag_struct_end: % endnote
+ }
+ {
+ \tag_mc_end:
+ \tag_tool:n { para/tagging=false }
+ \tag_struct_end: % text
+ \tag_struct_end: % text-unit
+ }
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/printtext/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/printtext/end } { default }
+% \end{macrocode}
+% Provide \pkg{xtemplate} based redefinitions of \env{postnoteslist} and
+% \pkg{postnoteslisthang}. This is needed because, as far as I can tell, it
+% is the only way to set \opt{tag} and \opt{attribute-class} for the list
+% struct without tampering with \pkg{latex-lab-testphase-block}'s internals.
+% \begin{macrocode}
+ \IfInstanceExistsT { blockenv } { list }
+ {
+ \DeclareInstance { blockenv } { postnoteslist } { display }
+ {
+ env-name = postnoteslist ,
+ tag-name = L ,
+ tag-class = EndnotesList ,
+ tagging-recipe = list ,
+ inner-level-counter = ,
+ level-increase = true ,
+ setup-code = ,
+ block-instance = list ,
+ inner-instance = postnoteslist ,
+ }
+ \DeclareInstanceCopy { blockenv }
+ { postnoteslisthang } { postnoteslist }
+ \EditInstance { blockenv } { postnoteslisthang }
+ { env-name = postnoteslisthang }
+ \DeclareInstance { list } { postnoteslist } { std }
+ { item-instance = postnoteslist }
+ \DeclareInstance { item } { postnoteslist } { std }
+ {
+ label-format = { \hspace { \labelsep } \normalfont ~ #1 } ,
+ label-align = left ,
+ }
+ \RenewDocumentEnvironment { postnoteslist } { }
+ {
+ \UseInstance { blockenv } { postnoteslist }
+ {
+ leftmargin = 0pt ,
+ label-width = 0pt ,
+ item-indent = .5\parindent ,
+ rightmargin = 0pt ,
+ parindent = \parindent ,
+ par-skip = \parskip ,
+ item-skip = 0pt ,
+ beginsep = .5\topsep ,
+ begin-par-skip = .5\partopsep ,
+ }
+ }
+ { \endblockenv }
+ \RenewDocumentEnvironment { postnoteslisthang } { }
+ {
+ \UseInstance { blockenv } { postnoteslisthang }
+ {
+ leftmargin = 1em ,
+ label-width = -\leftmargin ,
+ item-indent = -2\leftmargin ,
+ rightmargin = 0pt ,
+ parindent = \parindent ,
+ par-skip = \parskip ,
+ item-skip = 0pt ,
+ beginsep = .5\topsep ,
+ begin-par-skip = .5\partopsep ,
+ }
+ }
+ { \endblockenv }
+ }
+% \end{macrocode}
+% Setup for \cs{label} and \cs{zlabel} inside the note.
+% \begin{macrocode}
+ \bool_new:N \l_@@_inside_note_bool
+ \AddToHookWithArguments { label } [ postnotes/tagsup ]
+ {
+ \bool_if:NT \l_@@_inside_note_bool
+ {
+ \property_record:nn { postnote@label@innote. #1 }
+ { postnotes/tagsup@noteid }
+ }
+ }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ { \bool_set_true:N \l_@@_inside_note_bool }
+ \property_new:nnnn { postnotes/tagsup@noteid } { now } { 0 }
+ { \l_postnotes_print_note_id_tl }
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \zref@newprop { postnotes@tagsup@noteid } [ 0 ]
+ { \l_postnotes_print_note_id_tl }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ { \zref@localaddprop { main } { postnotes@tagsup@noteid } }
+ }
+% \end{macrocode}
+% Setup for \opt{label} and \opt{zlabel} options.
+% \begin{macrocode}
+ \AddToHook { postnotes/note/store } [ postnotes/tagsup ]
+ {
+ \tl_if_empty:NF \l_@@_note_label_tl
+ {
+ \prop_gput:cnV
+ { \@@_data_name:e { \l_postnotes_note_id_tl } }
+ { label } \l_@@_note_label_tl
+ }
+ }
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \AddToHook { postnotes/note/store } [ postnotes/tagsup ]
+ {
+ \tl_if_empty:NF \l_@@_note_zlabel_tl
+ {
+ \prop_gput:cnV
+ { \@@_data_name:e { \l_postnotes_note_id_tl } }
+ { zlabel } \l_@@_note_zlabel_tl
+ }
+ }
+ }
+ \AddToHook { postnotes/print/note/begin } [ postnotes/tagsup ]
+ {
+ \@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
+ { label } \l_@@_restore_tmp_tl
+ \tl_if_empty:NF \l_@@_restore_tmp_tl
+ {
+ \exp_args:Ne \property_record:nn
+ { postnote@label@option. \l_@@_restore_tmp_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
+ { zlabel } \l_@@_restore_tmp_tl
+ \tl_if_empty:NF \l_@@_restore_tmp_tl
+ {
+ \exp_args:Ne \property_record:nn
+ { postnote@zlabel@option. \l_@@_restore_tmp_tl }
+ { postnotes/tagsup@noteid }
+ }
+ }
+% \end{macrocode}
+% CHECK \pkg{latex-lab-footnotes} creates the footnote structure element
+% (\texttt{FENote} tag) and adds to it a \texttt{/Ref} entry pointing to the
+% structures of \emph{all} marks related to the note, and that includes
+% \cs{footref}s. I don't see anything stating something of the sort in the
+% standards, the backref of the original mark is already a stretch. I also
+% fail to see why this is needed, and how it could be used. But\dots{} I
+% trust Ulrike knows better than me.
+% \begin{macro}
+% {
+% \@@_tagsup_store_sctructnum:nN
+% \@@_tagsup_store_crossref:nN
+% }
+% \begin{syntax}
+% \cs{@@_tagsup_store_sctructnum:nN} \Arg{ref type} \Arg{ID number of note}
+% \cs{@@_tagsup_store_crossref:nN} \Arg{ref type} \Arg{ID number of note}
+% \end{syntax}
+% \meta{ref type} is either ``\texttt{postnote}'' or
+% ``\texttt{postnotemark}''.
+% \begin{macrocode}
+ \prop_new:N \g_@@_tagsup_structnums_prop
+ \cs_new_protected:Npn \@@_tagsup_store_sctructnum:nN #1#2
+ {
+ \prop_gput:Nee \g_@@_tagsup_structnums_prop
+ { #1 . #2 } { \tag_get:n { struct_num } }
+ }
+ \prop_new:N \g_@@_tagsup_crossrefs_prop
+ \cs_new_protected:Npn \@@_tagsup_store_crossref:nN #1#2
+ {
+ \prop_gput:Nee \g_@@_tagsup_crossrefs_prop
+ { \tag_get:n { struct_num } } { #1 . #2 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_tagsup_gput_ref:nn}
+% \begin{syntax}
+% \cs{@@_tagsup_gput_ref:nn} \Arg{structnum refering from}
+% ~~~~\Arg{structnum being referenced to}
+% \end{syntax}
+% See \cs{__fnote_gput_ref:nn}.
+% \begin{macrocode}
+ \cs_new_protected:Npn \@@_tagsup_gput_ref:nn #1#2
+ {
+ \tag_if_active:T
+ { \tag_struct_gput:ene {#1} {ref} { \tag_struct_object_ref:e {#2} } }
+ }
+% \end{macrocode}
+% \end{macro}
+% The actual inclusion of the reference has to be done at the end, since the
+% \opt{ref} option called by \cs{tag_struct_begin:n} does not check if the
+% variable to store the refs already exists, resulting in a clash if we add it
+% immediately and a \cs{posnoteref} is made before \cs{printposnotes}, and
+% also so that the ``main'' reference always comes first at the list.
+% \begin{macrocode}
+ \AddToHook { tagpdf/finish/before } [ postnotes/tagsup ]
+ {
+ \prop_map_inline:Nn \g_@@_tagsup_crossrefs_prop
+ {
+ \@@_tagsup_gput_ref:nn
+ { \prop_item:Nn \g_@@_tagsup_structnums_prop {#2} }
+ {#1}
+ }
+ }
+% \end{macrocode}
+% \cs{postnoteref}
+% \begin{macrocode}
+ \socket_new_plug:nnn { tagsupport/postnotes/postnoteref/begin } { default }
+ {
+ \tag_mc_end_push:
+ \property_if_recorded:eeTF
+ { postnote@label@innote. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \cs{label} inside the note.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ { postnote@label@innote. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnote. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnote } \l_@@_tmpa_tl
+ }
+ {
+ \property_if_recorded:eeTF
+ { postnote@label@option. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \opt{label} option.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ { postnote@label@option. \l_@@_note_ref_label_tl }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnotemark. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnotemark } \l_@@_tmpa_tl
+ }
+ { \tag_struct_begin:n { tag = endnotemark } }
+ }
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/postnoteref/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnoteref/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnoteref/end } { default }
+% \end{macrocode}
+% \cs{postnotezref}
+% \begin{macrocode}
+ \AddToHook { package/zref-user/after } [ postnotes/tagsup ]
+ {
+ \socket_new_plug:nnn { tagsupport/postnotes/postnotezref/begin } { default }
+ {
+ \tag_mc_end_push:
+ \zref@ifrefcontainsprop { \l_@@_note_zref_zlabel_tl }
+ { postnotes@tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \cs{zlabel} inside the note.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \zref@extract { \l_@@_note_zref_zlabel_tl }
+ { postnotes@tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnote. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnote } \l_@@_tmpa_tl
+ }
+ {
+ \property_if_recorded:eeTF
+ { postnote@zlabel@option. \l_@@_note_zref_zlabel_tl }
+ { postnotes/tagsup@noteid }
+ {
+% \end{macrocode}
+% Label coming from a \opt{zlabel} option.
+% \begin{macrocode}
+ \tl_set:Ne \l_@@_tmpa_tl
+ {
+ \property_ref:ee
+ {
+ postnote@zlabel@option.
+ \l_@@_note_zref_zlabel_tl
+ }
+ { postnotes/tagsup@noteid }
+ }
+ \tag_struct_begin:n
+ {
+ tag = endnotemark ,
+ ref = { postnotemark. \l_@@_tmpa_tl } ,
+ }
+ \@@_tagsup_store_crossref:nN
+ { postnotemark } \l_@@_tmpa_tl
+ }
+ { \tag_struct_begin:n { tag = endnotemark } }
+ }
+ \tag_mc_begin:n{}
+ }
+ \socket_new_plug:nnn { tagsupport/postnotes/postnotezref/end } { default }
+ {
+ \tag_mc_end:
+ \tag_struct_end: % endnotemark
+ \tag_mc_begin_pop:n{}
+ }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnotezref/begin } { default }
+ \socket_assign_plug:nn { tagsupport/postnotes/postnotezref/end } { default }
+ }
+ }
+% \end{macrocode}
+%
+%
% \section{Languages}
% \label{sec:languages}
%
@@ -2804,3 +3654,7 @@
% \PrintIndex
%
%
+
+% Local Variables:
+% jinx-local-words: "endnote endnotes"
+% End:
diff --git a/macros/latex/contrib/postnotes/postnotes.ins b/macros/latex/contrib/postnotes/postnotes.ins
index 8cac7bab06..ffa9341b1b 100644
--- a/macros/latex/contrib/postnotes/postnotes.ins
+++ b/macros/latex/contrib/postnotes/postnotes.ins
@@ -4,7 +4,7 @@
%
% This file is part of the LaTeX package "postnotes".
%
-% Copyright (C) 2022-2023 gusbrs
+% Copyright (C) 2022-2024 gusbrs
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
This file was generated from file(s) of the LaTeX package "postnotes".
-Copyright (C) 2022-2023 gusbrs
+Copyright (C) 2022-2024 gusbrs
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/ppt-slides/LICENSE.txt b/macros/latex/contrib/ppt-slides/LICENSE.txt
index 1f211e0287..8ddf303c63 100644
--- a/macros/latex/contrib/ppt-slides/LICENSE.txt
+++ b/macros/latex/contrib/ppt-slides/LICENSE.txt
@@ -1,6 +1,6 @@
(The MIT License)
-Copyright (c) 2021-2024 Yegor Bugayenko
+Copyright (c) 2022-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@ copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex
index a0e28fcdae..e0d394ffdb 100644
--- a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex
+++ b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex
@@ -1,6 +1,6 @@
% (The MIT License)
%
-% Copyright (c) 2022 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex
index 7736e886bd..42c476f675 100644
--- a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex
+++ b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex
@@ -1,6 +1,6 @@
% (The MIT License)
%
-% Copyright (c) 2022 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex
index 4974c08ef6..1919514dd4 100644
--- a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex
+++ b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex
@@ -1,6 +1,6 @@
% (The MIT License)
%
-% Copyright (c) 2022 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex
index 6a687c1aef..1e3a211c69 100644
--- a/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex
+++ b/macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex
@@ -1,6 +1,6 @@
% (The MIT License)
%
-% Copyright (c) 2022 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.dtx b/macros/latex/contrib/ppt-slides/ppt-slides.dtx
index 0509442173..5f6854a33b 100644
--- a/macros/latex/contrib/ppt-slides/ppt-slides.dtx
+++ b/macros/latex/contrib/ppt-slides/ppt-slides.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% (The MIT License)
%
-% Copyright (c) 2021-2024 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -15,7 +15,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{ppt-slides}
%<*package>
-[2024-05-02 0.3.3 Slide Decks a la Power Point]
+[2024/10/18 0.4.0 Slide Decks a la Power Point]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -506,12 +506,14 @@
% \end{macro}
% \begin{macro}{\pptChapter}
-% Then, we define the |\pptChapter| command:
+% \changes{0.4.0}{2024/10/18}{The \texttt{\char`\\pptChapterLabel} command introduced.}
+% Then, we define the |\pptChapter| and |\pptChapterLabel|commands:
% \begin{macrocode}
+\newcommand\pptChapterLabel{Chapter}
\newcommand\pptChapter[2][]{%
\crumbection[#1]{#2}%
\begin{pptMiddle}%
- {\large\ttfamily Chapter \#\the\value{section}:}%
+ {\large\ttfamily \pptChapterLabel{} \#\the\value{section}:}%
\newline%
\rotatebox{1}{\pptBanner[blue]{\LARGE#2}}%
\end{pptMiddle}%
diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.ins b/macros/latex/contrib/ppt-slides/ppt-slides.ins
index eb3965fa10..8ac530597b 100644
--- a/macros/latex/contrib/ppt-slides/ppt-slides.ins
+++ b/macros/latex/contrib/ppt-slides/ppt-slides.ins
@@ -1,6 +1,6 @@
%% (The MIT License)
%%
-%% Copyright (c) 2021-2024 Yegor Bugayenko
+%% Copyright (c) 2022-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%%
%% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
@@ -26,7 +26,7 @@
\preamble
(The MIT License)
-Copyright (c) 2021-2024 Yegor Bugayenko
+Copyright (c) 2022-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
@@ -40,7 +40,7 @@ copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.pdf b/macros/latex/contrib/ppt-slides/ppt-slides.pdf
index 39b45d9a9a..ea87608f49 100644
--- a/macros/latex/contrib/ppt-slides/ppt-slides.pdf
+++ b/macros/latex/contrib/ppt-slides/ppt-slides.pdf
Binary files differ
diff --git a/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex b/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex
index 10cf2a6f8d..d01b21fdbf 100644
--- a/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex
+++ b/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex
@@ -1,6 +1,6 @@
% (The MIT License)
%
-% Copyright (c) 2022 Yegor Bugayenko
+% Copyright (c) 2022-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -14,7 +14,7 @@
%
% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
diff --git a/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf b/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
index c684b9fff8..2cc561202d 100644
--- a/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex b/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
index f603c71f96..dea7c68cb9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
@@ -1,6 +1,10 @@
%%%
% Allumettes
%%%
+\def\filedateAllu{2024/08/04}%
+\def\fileversionAllu{0.1}%
+\message{-- \filedateAllu\space v\fileversionAllu}
+%
\setKVdefault[Allumettes]{Impression=false,Echelles=false}%
\defKV[Allumettes]{Echelle=\setKV[Allumettes]{Echelles}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex b/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
index 4113ae9a27..347c56f640 100644
--- a/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
@@ -1,6 +1,9 @@
%%%
% Arbre de calculs
%%%
+\def\filedateArbreC{2024/08/04}%
+\def\fileversionArbreC{0.1}%
+\message{-- \filedateArbreC\space v\fileversionArbreC}%
\newtoks\toklistearbre%
\newtoks\toklistearbrefractions%
\newtoks\toklistearbreexpressions%
diff --git a/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex b/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
index f724c16fda..26d5cb021a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
@@ -2,6 +2,9 @@
% ArbreChiffre
%%%
% https://tex.stackexchange.com/questions/112975/how-to-print-the-permutation-of-s-u-v-a-t-with-latex
+\def\filedateArbreCh{2024/08/04}%
+\def\fileversionArbreCh{0.1}%
+\message{-- \filedateArbreCh\space v\fileversionArbreCh}%
\def\recurse#1#2#3#4\endmarker{%
\dopermute{#1#3}#2#4\endmarker
diff --git a/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex b/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
index 5521dbb419..7f04a08323 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
@@ -1,6 +1,10 @@
%%%
% Assemblages solides
%%%
+\def\filedateAssemblageS{2024/08/04}%
+\def\fileversionAssemblageS{0.1}%
+\message{-- \filedateAssemblageS\space v\fileversionAssemblageS}%
+%
\setKVdefault[Assemblage]{Phi=30,Theta=20,Distance=50,Anglez=0,Anglex=0,Largeur=1.5,Profondeur=0.75,Hauteur=1,RayonBoule=1,RayonCone=1,RayonCylindre=1,HauteurPrisme=1,HauteurPyramideA=1,HauteurPyramideB=1,HauteurConeA=1,HauteurConeB=1,HauteurCylindre=1,Cotes=3,Trace=false,Type=Pyramides}%
\defKV[Assemblage]{Traces=\setKV[Assemblage]{Trace}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex b/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
index fbf80943d4..bb000dee6a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
@@ -1,6 +1,10 @@
%%%
% Automatismes
%%%
+\def\filedateAutomatismes{2024/08/04}%
+\def\fileversionAutomatismes{0.1}%
+\message{-- \filedateAutomatismes\space v\fileversionAutomatismes}%
+%
\NewDocumentCommand\ChoixAleaMixold{mmmm}{%
\ChoixAlea{1}{2}{\Autograine}%
\ifnum\Autograine=1\relax%
diff --git a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
index b75161ffcc..3e72a72575 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
@@ -1,4 +1,10 @@
-%%% Autonomie %%%
+%%%
+%Autonomie
+%%%
+\def\filedateAutonomie{2024/08/04}%
+\def\fileversionAutonomie{0.1}%
+\message{-- \filedateAutonomie\space v\fileversionAutonomie}%
+%
\setKVdefault[Autonomie]{AfficheMarge=false,TitreEnigme=Enigme,TitreAtoi=\`A toi,Enigme=false,TexteCorrection=\bfseries Correction,ARemplir=false,Deux=false,Landscape=false}%
\newcommand\Autonomie[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex b/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
index 8ee730bbfb..d56f096d7e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
@@ -1,6 +1,10 @@
%%%
% Barres de niveaux
%%%
+\def\filedateBarreNiveaux{2024/08/04}%
+\def\fileversionBarreNiveaux{0.1}%
+\message{-- \filedateBarreNiveaux\space v\fileversionBarreNiveaux}%
+%
\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=D\'efaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
\newlength{\barrewidth}
diff --git a/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
index 12b5077025..47537abe92 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
@@ -1,6 +1,9 @@
%%%
% Barres de calculs
%%%
+\def\filedateBarresCalculs{2024/08/04}%
+\def\fileversionBarresCalculs{0.1}%
+\message{-- \filedateBarresCalculs\space v\fileversionBarresCalculs}%
\setKVdefault[SuiteBarre]{Litteral=false,Perso=false,Decimaux=false}
\NewDocumentCommand\BarresCalculs{o m m}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCBillard.tex b/macros/latex/contrib/profcollege/latex/PfCBillard.tex
index 6faf803803..dc0082cef8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBillard.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBillard.tex
@@ -1,6 +1,10 @@
%%%
% Billard
%%%
+\def\filedateBillard{2024/08/28}%
+\def\fileversionBillard{0.1a}%
+\message{-- \filedateBillard\space v\fileversionBillard}%
+%
\newtoks\tokPfCMotBillard{}%
\def\UpdateTokBillard#1\nil{\addtotok\tokPfCMotBillard{"#1"}}%
@@ -227,11 +231,9 @@
}%
\def\MPBillardSolution#1#2#3{%
- % \mplibcodeinherit{enable}%
\mplibforcehmode
\xdef\PfCNomBillard{\useKV[ClesBillard]{Nom}}
\begin{mplibcode}[\PfCNomBillard]
-% Figure(0,0,\useKV[ClesBillard]{Longueur}+2cm,\useKV[ClesBillard]{Largeur}+3cm);
trace rec;
% Tracés
drawarrow Pt[1]--(Pt[1]+1.5cm*unitvector(Pt[2]-Pt[1])) withpen pencircle scaled 1.25;
@@ -253,14 +255,16 @@
else:
dotlabel.bot(TEX(substring(0,1) of #1),Pt[1]);
fi;
+ path segmenttest;
for k=2 upto BLong:
- if (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[1])<>(-1,-1):
+ segmenttest:=(9/10)[Pt[k-1],Pt[k]]--(11/10)[Pt[k-1],Pt[k]];
+ if segmenttest intersectiontimes cote[1]<>(-1,-1):
dotlabel.bot(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[2])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[2]<>(-1,-1):
dotlabel.rt(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[3])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[3]<>(-1,-1):
dotlabel.top(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[4])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[4]<>(-1,-1):
dotlabel.lft(TEX(substring(k-1,k) of #1),Pt[k]);
fi;
endfor;
@@ -270,5 +274,4 @@
label.top(TEX(substring(k-1,k) of #1),((xpart(Co),5mm)-center Reponse)+(k-1)*(7mm,0)+(2.5mm,0));
endfor;
\end{mplibcode}%
-% \mplibcodeinherit{disable}%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex b/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
index 25408ad5fe..c783f90d8e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
@@ -1,6 +1,10 @@
%%%
% Bon de sortie
%%%
+\def\filedateBonSortie{2024/08/04}%
+\def\fileversionBonSortie{0.1}%
+\message{-- \filedateBonSortie\space v\fileversionBonSortie}%
+%
\newcommand\BonSortieBandeau{%
Nom : \hfill Date : \hspace*{3cm}
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
index 08be71cd4f..8c897fa4de 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
@@ -1,9 +1,13 @@
%%%
% Bonbon
%%%
+\def\filedateBonbon{2024/08/04}%
+\def\fileversionBonbon{0.1}%
+\message{-- \filedateBonbon\space v\fileversionBonbon}%
+%
\setKVdefault[Bonbon]{CouleurUn=red,Bicolore=false,Echelle=1}%
\defKV[Bonbon]{CouleurDeux=\setKV[Bonbon]{Bicolore}}%
-
+%
\NewDocumentCommand\Bonbon{o}{%
\useKVdefault[Bonbon]%
\setKV[Bonbon]{#1}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCAN.tex b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
index f77aea497a..cb8dd56fd2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCAN.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
@@ -1,3 +1,10 @@
+%%%
+% CAN
+%
+\def\filedateCAN{2024/08/04}%
+\def\fileversionCAN{0.1}%
+\message{-- \filedateCAN\space v\fileversionCAN}%
+%
% Gestion de l'aléatoire (pour la CAN)
\newcommand\ChoixAlea[4][]{%
\ifx\bla#1\bla%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
index d2a189e29b..c97b32472f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
@@ -1,6 +1,9 @@
%%%
% Calculatrice
%%%
+\def\filedateCalculatrice{2024/08/04}%
+\def\fileversionCalculatrice{0.1}%
+\message{-- \filedateCalculatrice\space v\fileversionCalculatrice}%
%https://tex.stackexchange.com/questions/290321/mimicking-a-calculator-inputs-and-screen
\definecolor{lightorange}{rgb}{0.9,0.4,0}%
\definecolor{lightestorange}{rgb}{1,0.8,0.5}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
index d17a6c9f55..eb9b8b739d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
@@ -1,6 +1,10 @@
%%%
% Calculs Croises
%%%
+\def\filedateCalculsCroises{2024/08/04}%
+\def\fileversionCalculsCroises{0.1}%
+\message{-- \filedateCalculsCroises\space v\fileversionCalculsCroises}%
+%
\setKVdefault[CalculsCroises]{Largeur=20pt,Solution=false,Inverse=false,Creation=false,Graines=false,Vide=false,Couleur=LightGray,Negatifs=false,Aide=false,CouleurS=blue}
\defKV[CalculsCroises]{Graine=\setKV[CalculsCroises]{Graines}}%
\defKV[CalculsCroises]{ListeNombres=\setKV[CalculsCroises]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex
new file mode 100644
index 0000000000..df321d523a
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex
@@ -0,0 +1,147 @@
+%%%
+% Calculs détaillés
+%%%
+\def\filedateCDetailles{2024/08/24}%
+\def\fileversionCDetailles{0.1}%
+\message{-- \filedateCDetailles\space v\fileversionCDetailles}
+%
+\setKVdefault[CalculAuto]{Under=false,OverB=false,OverC=false,UnderB=false,UnderC=false,Cadre=false,Fluo=false,Evidence=false,Lettres={A,B,C,D,E},Couleur=Purple}
+
+\newcounter{PfCNbCalculs}
+\newcounter{PfCNbSousCalculs}
+\newcounter{PfCNbMarque}
+
+\NewDocumentCommand\PfCMarquePriorite{m}{%
+ \ifboolKV[CalculAuto]{OverB}{%
+ \Overbrace{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{OverC}{%
+ \Overcrochet{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{UnderC}{%
+ \Undercrochet{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{UnderB}{%
+ \Underbrace{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{Cadre}{%
+ \PfCFbox{CCalculAuto}{#1}
+ }{%
+ \ifboolKV[CalculAuto]{Fluo}{%
+ \Surligner[CCalculAuto]{#1}
+ }{%
+ \ifboolKV[CalculAuto]{Under}{%
+ \mathunderline{CCalculAuto}{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{Evidence}{%
+ \mathcolor{CCalculAuto}{#1}%
+ }{%
+ #1%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\CalculDetaille{om}{%
+ \useKVdefault[CalculAuto]%
+ \setKV[CalculAuto]{#1}%
+ \colorlet{CCalculAuto}{\useKV[CalculAuto]{Couleur}}%
+ \setcounter{PfCNbCalculs}{0}%
+ \setsepchar{§}\ignoreemptyitems%
+ \readlist*\ListeNombresCalculs{#2}%
+ \reademptyitems%
+ \xdef\PfCFooListeLettres{\useKV[CalculAuto]{Lettres}}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeLettres{\PfCFooListeLettres}%
+ \reademptyitems%
+ \xdef\PfCNbMaxLignesCalculs{0}%
+ \foreachitem\compteur\in\ListeNombresCalculs{%
+ \stepcounter{PfCNbCalculs}%
+ \itemtomacro\ListeNombresCalculs[\compteurcnt]\Titi%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeNombresCalculsDetails{\Titi}%
+ \reademptyitems%
+ \expandafter\xdef\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname{\ListeNombresCalculsDetailslen}%
+ \xdef\PfCNbMaxLignesCalculs{\fpeval{max(\PfCNbMaxLignesCalculs,\ListeNombresCalculsDetailslen)}}%
+ \setcounter{PfCNbSousCalculs}{0}%
+ \foreachitem\compteura\in\ListeNombresCalculsDetails{%
+ \stepcounter{PfCNbSousCalculs}%
+ \StrSubstitute{\compteura}{*}{\times}[\PfCCalculAutoUn]%
+ \StrSubstitute{\PfCCalculAutoUn}{:}{\div}[\PfCCalculAutoDeux]%
+ \StrCount{\PfCCalculAutoDeux}{<}[\NbInf]%
+ \ifnum\fpeval{\NbInf}=0\relax%
+ \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{1}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}A\endcsname{\PfCCalculAutoDeux}%
+ \else%
+ \xdef\PfCExpressionDepart{\PfCCalculAutoDeux}%
+ \setcounter{PfCNbMarque}{0}%
+ \foreach\xx in{1,...,\NbInf}{%
+ \StrBefore{\PfCExpressionDepart}{<}[\PfCDevant]%
+ \StrBetween{\PfCExpressionDepart}{<}{>}[\PfCAEncadrer]%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCDevant}%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{<\PfCAEncadrer}%
+ \StrBehind{\PfCExpressionDepart}{>}[\PfCExpressionDepartA]%
+ \xdef\PfCExpressionDepart{\PfCExpressionDepartA}%
+ }%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCExpressionDepart}%
+ \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{\thePfCNbMarque}%
+ \fi
+ }%
+ }%
+ %%%%%%%%%
+ \setcounter{PfCNbSousCalculs}{0}%
+ \[%
+ \begin{aligned}
+ \xintFor* ##2 in{\xintSeq{1}{\PfCNbMaxLignesCalculs}}\do{%
+ \stepcounter{PfCNbSousCalculs}%
+ \setcounter{PfCNbCalculs}{0}%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeNombresCalculslen}}\do{%
+ \stepcounter{PfCNbCalculs}%
+ \ifnum##2>\fpeval{\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname}\relax%
+ \uppercase{&}
+ \else
+ \ListeLettres[\thePfCNbCalculs]\uppercase{&}=\xdef\Tata{\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname}\setcounter{PfCNbMarque}{0}\xintFor*##3 in{\xintSeq{1}{\Tata}}\do{%
+ \stepcounter{PfCNbMarque}
+ \xdef\Toto{\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname}\StrChar{\Toto}{1}[\PfCATester]
+ \IfStrEq{\PfCATester}{<}{\StrBehind{\Toto}{<}[\PfCAEncadrer]\PfCMarquePriorite{\PfCAEncadrer}}{\Toto}
+ }
+ \fi\xintifForLast{&}{}
+ }\\
+ }
+ \end{aligned}
+ \]
+}%
+
+\def\Underbrace#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\underbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Undercrochet#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\underbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overbrace#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\overbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overcrochet#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\overbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\PfCFbox#1#2{%
+ \ifx#2\bla\bla\else\setlength{\fboxrule}{1pt}\fcolorbox{#1}{white}{$\displaystyle#2$}\fi%
+}%
+
+\NewDocumentCommand{\Surligner}{O{yellow}m}{%
+ \ifx#2\bla\bla\else
+ \ifmmode%
+ \colorbox{#1}{$\displaystyle#2$}%
+ \else%
+ \colorbox{#1}{#2}%
+ \fi%
+ \fi
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
index e3660cff1e..cc19c93e54 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
@@ -1,3 +1,10 @@
+%%%
+% Calculs fractions
+%
+\def\filedateCalculsFractions{2024/08/04}%
+\def\fileversionCalculsFractions{0.1}%
+\message{-- \filedateCalculsFractions\space v\fileversionCalculsFractions}%
+%
\setKVdefault[CalculsFractions]{Couleurs=false,Negatif=false,Seul=false}%
\defKV[CalculsFractions]{Couleur=\setKV[CalculsFractions]{Couleurs}\setKV[ClesSimplification]{Couleur=#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
index 929b1fb28e..dd2fe56db3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
@@ -1,6 +1,10 @@
%%%
% Calisson
%%%
+\def\filedateCalisson{2024/08/04}%
+\def\fileversionCalisson{0.1}%
+\message{-- \filedateCalisson\space v\fileversionCalisson}%
+%
\setKVdefault[Calisson]{Taille=3,Solution=false,Rayon=5cm,Couleur=red,CouleurTrace=black}%
\def\UpdatetoksCalissong#1\nil{\addtotok\tokcalissonlistetracesg{,"#1"}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
index 1e2075d91a..98bb4b8b3c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
@@ -1,6 +1,10 @@
%%%
% Cards
%%%
+\def\filedateCartesJeux{2024/08/04}%
+\def\fileversionCartesJeux{0.1}%
+\message{-- \filedateCartesJeux\space v\fileversionCartesJeux}%
+%
\setKVdefault[Cards]{Formats=false,Largeur=165,Hauteur=250,HauteurTheme=40,Marge=12,Landscape=false,Couleur=Cornsilk,CouleurAr=Cornsilk,Theme=Th\'eor\`eme\\de
Pythagore,ThemeSol=Solution,AfficheTheme=false,Trame=false,Jointes=false,TrameVisible=false,RayonArc=5pt,Titre=false,NomTitre=Jeu 1,Loop,JaiQuia=false,Eleve=false,BackgroundAv=false,BackgroundAr=false,%ImageAv=4813762.jpg,ImageAr=4813762.jpg,
AffichageSolution=true,SolutionSeule=false,%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex b/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
index ea9b30af03..90812c7e9e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
@@ -1,6 +1,10 @@
%%%
% Cartes Mentales
%%%
+\def\filedateCarteMentale{2024/08/04}%
+\def\fileversionCarteMentale{0.1}%
+\message{-- \filedateCarteMentale\space v\fileversionCarteMentale}%
+%
\setKVdefault[ClesMentales]{Nom={Bulle}, Largeur=5cm, Ancre={0,0},Pointilles=false,CTrace=black,CFond=white,Epaisseur=1pt,Rayon=1}%
\newenvironment{Mind}{\begin{tikzpicture}}{\end{tikzpicture}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
index e23001bbcc..4396dc6f87 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
@@ -1,7 +1,11 @@
%%%
% Cartographie
%%%
-\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
+\def\filedateCartographie{2024/08/04}%
+\def\fileversionCartographie{0.1}%
+\message{-- \filedateCartographie\space v\fileversionCartographie}%
+%
+\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2024/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
\defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}}
\defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}}
\defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCCheque.tex b/macros/latex/contrib/profcollege/latex/PfCCheque.tex
new file mode 100644
index 0000000000..531af4efc1
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCCheque.tex
@@ -0,0 +1,125 @@
+%%%
+% PfCCheque
+%%%
+\def\filedateCheque{2024/09/03}%
+\def\fileversionCheque{0.1}%
+\message{-- \filedateCheque\space v\fileversionCheque}%
+\newlength{\oldbaseline}
+\newlength{\PfCTailleCursive}
+
+\setKVdefault[Cheque]{Sigle=CMF,Banque=Crédit Mathématique de France,Date=\today,Lieu={},Lire=false,Destinataire=Institut Curie,Solution=false,Longueur=15,Taille=\normalsize,Ajust=0pt}
+
+%https://tex.stackexchange.com/questions/406015/defining-macro-gsetlength-as-global-setlength-reliable
+\makeatletter
+\gdef\gsetlength#1#2{%
+ \begingroup
+ \setlength\skip@{#2}% Local assignment to a scratch register.
+ \global#1=\skip@ % Global assignement to #1;
+ % \relax is not necessary because of the following \endgroup.
+ \endgroup % \skip@ is restored by end of group.
+}
+\makeatother
+
+\NewDocumentCommand{\Cheque}{om}{%
+ \useKVdefault[Cheque]%
+ \setKV[Cheque]{#1}%
+ \setbox1=\hbox{\useKV[Cheque]{Taille}\myfontCursive abcdefghijklmnopqrstuvwxyz}%
+ {\useKV[Cheque]{Taille}\myfontCursive\gsetlength{\oldbaseline}{\baselineskip}\normalsize}%
+ \setlength{\PfCTailleCursive}{0.5\ht1+\useKV[Cheque]{Ajust}}%
+ \BuildCheque{#2}%
+}%
+
+\NewDocumentCommand{\BuildCheque}{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ boolean Solution,Lire;
+ Solution=\useKV[Cheque]{Solution};
+ Lire=\useKV[Cheque]{Lire};
+ Longueur=\useKV[Cheque]{Longueur};
+ baselinecp=\fpeval{\oldbaseline};
+ %
+ pair A,B,C,D,M[],N[];
+ A=(0,0);
+ B-A=u*(Longueur,0);
+ C-B=u*(0,5);
+ D-C=A-B;
+ %
+ M1=1/3[D,A];
+ %
+ picture Payez;
+ Payez=image(
+ label.rt(TEX("Payez contre ce chèque"),M1);
+ );
+ %
+ M20=(xpart(M1),ypart(llcorner Payez));
+ M2-M20=(0,-baselinecp);
+ M3-M2=u*(0,-0.5);
+ M4-M3=M2-M1;
+ M5-M4=u*(0.4*Longueur,-0.25);
+ M6-M4=u*(0,-0.25)+u*(0.5,0);
+ M7-M6=u*(2,0);
+ %
+ A:=(xpart(M4),ypart(M6)-1u);
+ B:=A+C-D;
+ %
+ N1=1/2[M1,M2]+0.8*(B-A);
+ N2-N1=M2-M1;
+ N3-N2=0.18*(B-A);
+ N4-N3=N1-N2;
+ drawoptions(withcolor NavyBlue);
+ picture BaseLettre;
+ %%%%%%%%%%%%%%%%
+ fill polygone(A,B,C,D) withcolor 0.8[LightSteelBlue,white];
+ trace polygone(A,B,C,D);
+ draw Payez;
+ label.rt(TEX("{\sffamily \Huge \useKV[Cheque]{Sigle}}"),D+u*(0,-0.5));
+ label.rt(TEX("{\sffamily \useKV[Cheque]{Banque}}"),D+u*(0,-1));
+ trace (lrcorner Payez)--(0.75[(xpart(M1),ypart(lrcorner Payez)),(xpart(M1+B-A),ypart(lrcorner Payez))]);
+ label.rt(TEX("\tiny non endossable sauf au profit d'une banque ou d'un établissement assimilé."),M1+u*(0,-0.300));
+ trace 1/90[M2,M2+B-A]--(0.75[M2,M2+B-A]);
+ label.rt(TEX("À \useKV[Cheque]{Destinataire}"),M3);
+ trace 1/45[M3+u*(0,-0.2),M3+u*(0,-0.2)+B-A]--(0.75[M3+u*(0,-0.2),M3+u*(0,-0.2)+B-A]);
+ fill polygone(N1,N2,N3,N4) withcolor white;
+ trace polygone(N1,N2,N3,N4) withpen pencircle scaled 1.2 withcolor NavyBlue;
+ if Lire=false:
+ label.rt(TEX("\si{\EuRo}~#1"),iso(N1,N2));
+ else:
+ if Solution:
+ label.rt(TEX("\si{\EuRo}~\num{#1}"),iso(N1,N2));
+ fi;
+ fi;
+ label.rt(TEX("À~\hbox to"&decimal(Longueur/5)&"cm{\hrulefill}\quad Le~\hbox to"&decimal(Longueur/5)&"cm{\hrulefill}"),M5);
+ label.top(TEX("\Huge \si{\EuRo}uro"),iso(N4,N1)+u*(0,1));
+ label(TEX("\tiny « à régler exclusivement en euros »"),iso(N4,N1)+u*(-0.5,1));
+ label(TEX("\ChoixAlea{100000}{999999}{\numcheque}\numcheque"),iso(M6,M7));
+ trace cotationmil(M6,M7,2.5mm,25,TEX("\scriptsize chèque \no"));
+ %%
+% drawoptions(withcolor red);
+% draw (llcorner Payez)--(llcorner Payez+B-A);
+% draw M2--(M2+B-A);
+% drawoptions();
+ picture Sous;
+ Sous=image(%
+ label(TEX("\begin{minipage}{\fpeval{0.75*"&decimal(Longueur)&"}cm}
+ \hspace{"&decimal(abs(lrcorner Payez-llcorner Payez))&"pt}\myfontCursive\useKV[Cheque]{Taille}\Ecriture{#1}~euros
+ \end{minipage}"),(0,0));
+ );
+ pair PointBase,PointTest,Decalage;
+ PointBase=1/2[M20,M2+(u*0.75Longueur,0)];
+ PointTest=(0,0);%
+ if abs(llcorner Sous-ulcorner Sous)>baselinecp:
+ Decalage=(8pt,\fpeval{\PfCTailleCursive});
+ else:
+ Decalage=(8pt,2*\fpeval{\PfCTailleCursive});
+ fi;
+ if Lire:
+ draw Sous shifted (PointBase-PointTest+Decalage);
+ else:
+ if Solution:
+ draw Sous shifted (PointBase-PointTest+Decalage);
+ fi;
+ fi;
+ \end{mplibcode}
+ \fi%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCCible.tex b/macros/latex/contrib/profcollege/latex/PfCCible.tex
index d29fdccf9d..91e8f28e04 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCible.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCible.tex
@@ -1,6 +1,10 @@
%%%
% Cibles
%%%
+\def\filedateCible{2024/08/04}%
+\def\fileversionCible{0.1}%
+\message{-- \filedateCible\space v\fileversionCible}%
+%
\newtoks\toklisteciblea%
\def\UpdatetoksCibleA#1\nil{\addtotok\toklisteciblea{"#1",}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
index 336b10651d..c33f5242b3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
@@ -1,3 +1,10 @@
+%%%
+% Cible 4 opérations
+%%%
+\def\filedateCibleQOp{2024/08/04}%
+\def\fileversionCibleQOp{0.1}%
+\message{-- \filedateCibleQOp\space v\fileversionCibleQOp}%
+
\newcount\anpcqo\newcount\bnpcqo\newcount\cnpcqo%
\NewDocumentCommand\PfCCQODiviseurs{m}{%#1 : le nombre entier \`a tester
diff --git a/macros/latex/contrib/profcollege/latex/PfCColorilude.tex b/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
index 33a1ef2446..9c446f6b43 100644
--- a/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
@@ -1,4 +1,10 @@
-%%% Colorilude %%%
+%%%
+% Colorilude
+%%%
+\def\filedateColorilude{2024/08/04}%
+\def\fileversionColorilude{0.1}%
+\message{-- \filedateColorilude\space v\fileversionColorilude}%
+%
\setKVdefault[Colorilude]{Largeur=10,Lignes=10,Legende=false,Coef=0.6,Solution=false,CartonReponse=false,Resultats=false}
\newcommand\dispogpfc[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
index 1d5339b114..bbf219e431 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
@@ -1,6 +1,10 @@
%%%
% Le compte est bon
%%%
+\def\filedateCompteBon{2024/08/04}%
+\def\fileversionCompteBon{0.1}%
+\message{-- \filedateCompteBon\space v\fileversionCompteBon}%
+%
\setKVdefault[CompteBon]{NombreCalculs=5,NombrePlaques=4,Solution=false,Relatifs=false,Original=false,Graines=false,Plaques=6,CDot=false}
\defKV[CompteBon]{Graine=\setKV[CompteBon]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCConversion.tex b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
index e6ed80f012..86da03a078 100644
--- a/macros/latex/contrib/profcollege/latex/PfCConversion.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
@@ -1,3 +1,10 @@
+%%%
+% Conversion
+%%%
+\def\filedateConversion{2024/08/04}%
+\def\fileversionConversion{0.1}%
+\message{-- \filedateConversion\space v\fileversionConversion}%
+
\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Completes=false}%
\defKV[ClesConversion]{Complete=\setKV[ClesConversion]{Completes}}%
\defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCritere.tex b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
index 34c96a9b06..4818b941c7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCritere.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
@@ -1,6 +1,10 @@
%%%
% Criteres de divisibilite
%%%
+\def\filedateCritere{2024/08/04}%
+\def\fileversionCritere{0.1}%
+\message{-- \filedateCritere\space v\fileversionCritere}%
+%
\setKVdefault[Critere]{Div=2,Remarque=false,All=false,RemarqueAll=false}
\NewDocumentCommand\Critere{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex b/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
index bfa2e8c76a..1494c2adc6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
@@ -1,6 +1,10 @@
%%%
% Cryptarithmes
%%%
+\def\filedateCrypta{2024/08/04}%
+\def\fileversionCrypta{0.1}%
+\message{-- \filedateCrypta\space v\fileversionCrypta}%
+%
\setKVdefault[Crypta]{Solution=false,ListeLettres={A,B,C,D,E,F,G,H,I,J},Tableau=false}%
\defKV[Crypta]{Indices=\setKV[Crypta]{Tableau}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
index b2db7fd38b..861821ce82 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
@@ -1,6 +1,10 @@
%%%
% Décomposition décimale
%%
+\def\filedateDecDeci{2024/08/04}%
+\def\fileversionDecDeci{0.1}%
+\message{-- \filedateDecDeci\space v\fileversionDecDeci}%
+%
\setKVdefault[DecompDeci]{Parentheses,Colore=false,CouleurU=Blue,CouleurD=Red,CouleurC=Green,Fleches=false,Details=false,ResultatSeul=false,SansMul=false}
\newcounter{PfCNbDecDeci}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex b/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
index b045c64f63..1e627c2e3f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
@@ -1,7 +1,12 @@
%%%
% D\'ecomposition de fractions d\'ecimales
%%%
-\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm}
+\def\filedateDecompFracDeci{2024/08/13}%
+\def\fileversionDecompFracDeci{0.1a}%
+\message{-- \filedateDecompFracDeci\space v\fileversionDecompFracDeci}%
+%
+\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm,Vides=false}%
+\defKV[ClesFracDeci]{Vide=\setKV[ClesFracDeci]{Remediation}\setKV[ClesFracDeci]{Vides}}%
\newlength{\PfCLongueurP}%
\newcommand\FractionDecimale[2][]{%
@@ -26,7 +31,7 @@
\xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}%
\xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
\StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
- \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
+ \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}}%
}%
}%
}{%
@@ -38,20 +43,20 @@
\StrGobbleLeft{\FractionDeciNum}{\fpeval{\LongueurPartieEntiere}}[\DecompositionFracDeciComplete]%
% on affiche la partie décimale.
\xintFor* ##1 in {\xintSeq{1}{\fpeval{\LongueurFracDeciNum-\LongueurPartieEntiere}}}\do{%
- \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**##1}}}%
+ \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**##1}}}}%
}%
}%
}{%
\ensuremath{%
\xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
\StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
- \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}%
+ \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
}%
}%
}%
}{%
\ensuremath{%
- \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\num{\FractionDeciDeno}}%
+ \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\FractionDeciDeno}}}%
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
index bf1a28e333..a741919482 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
@@ -1,10 +1,19 @@
%%%
% Nombre Premier
%%%
-\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white}%
+\def\filedateDecompNbPremier{2024/09/01}%
+\def\fileversionDecompNbPremier{0.1a}%
+\message{-- \filedateDecompNbPremier\space v\fileversionDecompNbPremier}%
+%
+\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white,Poisson=false,Echelle=1cm,AngleArete=45,CouleurPoisson=white,Visible=false,Solution=false}%
\defKV[ClesNombrePremier]{Nombre=\ifboolKV[ClesNombrePremier]{ArbreDessine}{}{\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{}{\setKV[ClesNombrePremier]{Impose}}}}%
\defKV[ClesNombrePremier]{AllNombre=\setKV[ClesNombrePremier]{ImposeAll}}%
-\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}
+\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}%
+\defKV[ClesNombrePremier]{ElementsVisibles=\setKV[ClesNombrePremier]{Visible}\setKV[ClesNombrePremier]{Vide}}%
+\defKV[ClesNombrePremier]{CouleurSolution=\setKV[ClesNombrePremier]{Solution}}%
+
+\newtoks\tokNPElementsVisibles%
+\def\UpdatetoksElementAfficher#1\nil{\addtotok\tokNPElementsVisibles{#1,}}%
\newcommand\Decomposition[2][]{%
\useKVdefault[ClesNombrePremier]%
@@ -26,6 +35,136 @@
\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{\setKV[ClesNombrePremier]{Vide=true}\MPArbreDessine{#2}{\useKV[ClesNombrePremier]{Nombre}}}{}%
\ifboolKV[ClesNombrePremier]{Diviseurs}{\ListeDiviseur{#2}}{}%
\ifboolKV[ClesNombrePremier]{DiviseursT}{\ListeDiviseurT{#2}}{}%
+ \ifboolKV[ClesNombrePremier]{Poisson}{%
+ \tokNPElementsVisibles{}%
+ \PfCTousLesDiviseurs{#2}%
+ \ifboolKV[ClesNombrePremier]{Visible}{%
+ \xdef\foo{\useKV[ClesNombrePremier]{ElementsVisibles}}%
+ \readlist*\ListeElementsAAfficher{\foo}%
+ }{%
+ \xdef\foo{-1}\readlist*\ListeElementsAAfficher{\foo}%
+ }%
+ \foreachitem\compteur\in\ListeElementsAAfficher{\expandafter\UpdatetoksElementAfficher\compteur\nil}%
+ \MPFish{\PfCPileDiviseurs}{#2}{\the\tokNPElementsVisibles}%
+ }{}%
+}%
+
+\newcommand\PfCTousLesDiviseurs[1]{%
+ %#1 : le nombre entier \`a tester
+ \xdef\anpl{#1}%\relax%
+ \xdef\bnpl{2}%\relax%
+ \xdef\pilebl{2}%\relax%
+ \xdef\PfCPileDiviseurs{1}%
+ \loop
+ \ifnum\fpeval{\bnpl}<\fpeval{\anpl}\relax
+ \modulo{\fpeval{\anpl}}{\fpeval{\bnpl}}
+ \ifnum\remainder=0\relax
+ \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,\fpeval{\bnpl}}%
+ \fi
+ \xdef\bnpl{\fpeval{\bnpl+1}}%
+ \repeat
+ \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,#1}%
+}%%
+
+\def\MPFish#1#2#3{
+ \ifluatex
+ \mplibforcehmode%
+ \mplibnumbersystem{double}%
+ \begin{mplibcode}
+ Echelle=\useKV[ClesNombrePremier]{Echelle};
+ AngleArete=\useKV[ClesNombrePremier]{AngleArete};
+
+ boolean Vide,Visible,Solution;
+ Vide=\useKV[ClesNombrePremier]{Vide};
+ Visible=\useKV[ClesNombrePremier]{Visible};
+ Solution=\useKV[ClesNombrePremier]{Solution};
+
+ color CoulTete,CoulSol;
+ CoulTete=\useKV[ClesNombrePremier]{CouleurPoisson};
+ if Solution:
+ CoulSol=\useKV[ClesNombrePremier]{CouleurSolution};
+ fi;
+
+ numeric Diviseurs[];
+ vardef LectureDiviseurs(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ Diviseurs[n]=p_;
+ endfor;
+ enddef;
+
+ LectureDiviseurs(#1);
+ TotalDiviseurs:=n;
+
+ boolean RETOUR;
+ RETOUR=false;
+
+ vardef TestVisible(expr nrt)=
+ RETOUR:=false;
+ for p_=#3:
+ if p_=nrt:
+ RETOUR:=true;
+ fi;
+ endfor;
+ enddef;
+
+
+ pair Ah[],Ab[],O[],Ac;
+ O0=(0,0);
+ O[-1]=O0+Echelle*(0,1);
+ O[-2]=O0+Echelle*(0,-1);
+ fill (arccercle(O[-1],O[-2],O0)--cycle) withcolor CoulTete;
+ trace arccercle(O[-1],O[-2],O0)--cycle;
+ label.lft(TEX("\num{"&decimal(#2)&"}"),O0);
+ %
+ for k=1 upto (TotalDiviseurs div 2):
+ if k=1:Echelle:=Echelle/2;fi;
+ O[k]-O[k-1]=Echelle*(1,0);
+ if k=1:Echelle:=Echelle*2;fi;
+ Ah[k]-O[k]=Echelle*(cosd(AngleArete),sind(AngleArete));
+ Ab[k]-O[k]=Echelle*(cosd(AngleArete),-sind(AngleArete));
+ draw O[k-1]--O[k];
+ draw Ah[k]--O[k]--Ab[k];
+ if Vide=false:
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ else:
+ if Visible:
+ TestVisible(Diviseurs[k]);
+ if RETOUR:
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ else:
+ if Solution:
+ drawoptions(withcolor CoulSol);
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ drawoptions();
+ fi;
+ fi;
+ TestVisible(Diviseurs[TotalDiviseurs+1-k]);
+ if RETOUR:
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ else:
+ if Solution:
+ drawoptions(withcolor CoulSol);
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ drawoptions();
+ fi;
+ fi;
+ fi;
+ fi;
+ endfor;
+ if (TotalDiviseurs mod 2)<>0:
+ Ac-O[TotalDiviseurs div 2]=Echelle*(1,0);
+ draw Ac--O[TotalDiviseurs div 2];
+ if Vide=false:
+ label.rt(TEX("\num{"&decimal(Diviseurs[(TotalDiviseurs+1) div 2])&"}"),Ac);
+ fi;
+ fi;
+ \end{mplibcode}
+ \else
+ %
+ \fi
}%
\def\MPArbre#1{%
@@ -824,13 +963,13 @@
\begin{tabular}{c|c}%
1&\num{#1}\\
\xintFor* ##1 in {\xintSeq {1}{\fpeval{(\cnpT+1)/2}}}\do{%
- \DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\xintifboolexpr{\dnpT=\fpeval{#1/\dnpT}}{}{\num{\fpeval{#1/\dnpT}}}\\
+ \DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\xintifboolexpr{\dnpT==\fpeval{#1/\dnpT}}{\num{\fpeval{\dnpT}}}{\num{\fpeval{#1/\dnpT}}}\\
}
\end{tabular}%
\else%
\begin{tabular}{c|c}
1&\num{#1}
- \ifnum\cnpT>2\relax\\
+ \ifnum\cnpT>1\relax\\
\xintFor* ##1 in {\xintSeq {1}{\fpeval{\cnpT/2}}}\do{%
\DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\num{\fpeval{#1/\dnpT}}\\
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
index 6d850f8012..089b51658a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
@@ -1,6 +1,10 @@
%%%
% Defi Calculatrice
%%%
+\def\filedateDefiCalc{2024/08/04}%
+\def\fileversionDefiCalc{0.1}%
+\message{-- \filedateDefiCalc\space v\fileversionDefiCalc}%
+%
\setKVdefault[DefiCalculatrice]{NbCasesNoires=6,ListeTouches={!},Impression=false}%
\newtoks\toktexteecran{}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex b/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
index 340d598e2f..79ad1064eb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
@@ -1,7 +1,10 @@
%%%
% Defi Table
%%%
-
+\def\filedateDefiTables{2024/08/04}%
+\def\fileversionDefiTables{0.1}%
+\message{-- \filedateDefiTables\space v\fileversionDefiTables}%
+%
\setKVdefault[DefiTable]{Solution=false,Math=false,LargeurT=5mm,Graines=false,Creation=false,ValeurMin=1,ValeurMax=10,Restreint=false}
\defKV[DefiTable]{Graine=\setKV[DefiTable]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
index 85274cac81..092aa5e825 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
@@ -1,6 +1,10 @@
%%%
% Dessin Algo
%%%
+\def\filedateDessinAlgo{2024/08/04}%
+\def\fileversionDessinAlgo{0.1}%
+\message{-- \filedateDessinAlgo\space v\fileversionDessinAlgo}%
+%
\newtoks\tokDessinAlgo%
\def\UpdatetoksDA#1\nil{\addtotok\tokDessinAlgo{#1,}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
index 3bfacac68c..bd83bb6240 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
@@ -1,6 +1,10 @@
%%%
% Dessin Gradue
%%%
+\def\filedateDessinGradue{2024/08/04}%
+\def\fileversionDessinGradue{0.1}%
+\message{-- \filedateDessinGradue\space v\fileversionDessinGradue}%
+%
\setKVdefault[DessinGradue]{Lignes=10,Debut=-5,Fin=5,Pas=10,Solution=false,EcartVertical=1.5,LignesIdentiques,Longueur=10,Echelle=1,Droites=false,DemiDroites=false,OrigineVariable=false,Code=false}
\defKV[DessinGradue]{Traces=\setKV[DessinGradue]{Code}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
index 27922bdd03..bbb24cb99c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
@@ -1,6 +1,10 @@
%%%
% Lien : ratio
%%%
+\def\filedateDessinRatio{2024/08/04}%
+\def\fileversionDessinRatio{0.1}%
+\message{-- \filedateDessinRatio\space v\fileversionDessinRatio}%
+%
\setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15,ModeleCouleur=5}
\newcommand\MPTest[9][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex b/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
index cbed30414d..70180f2a31 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
@@ -1,6 +1,10 @@
%%%
% Radar
%%%
+\def\filedateRadar{2024/08/04}%
+\def\fileversionRadar{0.1}%
+\message{-- \filedateRadar\space v\fileversionRadar}%
+%
\setKVdefault[ClesRadar]{Rayon=3cm,Reference=20,MoyenneClasse=false,Disciplines=false,Pas=5}
\newtoks\toklisteradara%pour la moyenne de l'\'el\`eve
diff --git a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
index ad0dd8885d..b8a9dc57fc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
@@ -1,6 +1,9 @@
%%%
% Distributivit\'e
%%%
+\def\filedateDistributivite{2024/08/04}%
+\def\fileversionDistributivite{0.1}%
+\message{-- \filedateDistributivite\space v\fileversionDistributivite}%
% https://tex.stackexchange.com/questions/168972/draw-arrows-to-show-multiplication-pattern-distributive-property/169278?noredirect=1
\newcommand\Tikzmark[1]{%
\tikz[remember picture,baseline,inner sep=0pt]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDobble.tex b/macros/latex/contrib/profcollege/latex/PfCDobble.tex
index 2767a20c50..c00592b393 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDobble.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDobble.tex
@@ -1,8 +1,10 @@
%%%
% dobble
%%%
+\def\filedateDobble{2024/08/04}%
+\def\fileversionDobble{0.1}%
+\message{-- \filedateDobble\space v\fileversionDobble}%
% by Maxime Chupin
-
\NewDocumentCommand\dobble{m}{%
\directlua{
require('PfCdobble.lua')
diff --git a/macros/latex/contrib/profcollege/latex/PfCDomino.tex b/macros/latex/contrib/profcollege/latex/PfCDomino.tex
index 49cf667c16..338dc07bb7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDomino.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDomino.tex
@@ -1,6 +1,10 @@
%%%
% Domino
%%%
+\def\filedateDomino{2024/08/04}%
+\def\fileversionDomino{0.1}%
+\message{-- \filedateDomino\space v\fileversionDomino}%
+%
\newtcolorbox{MyDominoMini}[1][]{%
enhanced,
nobeforeafter,
diff --git a/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex b/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
index e395500a3c..ea6761035e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
@@ -1,3 +1,9 @@
+%%%
+% Ne compte pas
+%%%
+\def\filedateDontCount{2024/08/04}%
+\def\fileversionDontCount{0.1}%
+\message{-- \filedateDontCount\space v\fileversionDontCount}%
% D'après twitter : https://twitter.com/DavidKButlerUoA/status/1700612346258002030/photo/1
\setKVdefault[NCPP]{Largeur=5,Longueur=7,Unite=5mm,Rayon=1mm,Multiple=3,Couleur=black,Solution=false,Graines=false}%
\defKV[NCPP]{Graine=\setKV[NCPP]{Graines}\PfCGraineAlea{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex b/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
index f39b93ea46..372efa9784 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
@@ -1,7 +1,11 @@
%%%
% QCM
%%%
-\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false}%
+\def\filedateQCM{2024/08/04}%
+\def\fileversionQCM{0.1}%
+\message{-- \filedateQCM\space v\fileversionQCM}%
+%
+\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false,AllSeul=false}%
\newlength{\LargeurQCM}%
\newlength{\PfCLargeurQCM}%
\newcounter{QuestionQCM}%
@@ -34,6 +38,23 @@
\fi%
}%
+\NewDocumentCommand\PfCQCMSMultiChoixLabelSol{mm}{%
+ \xdef\PfCFooChoixLabel{\ListeQCM[#1,\fpeval{\NumeroReponse}]}%
+ \setsepchar{-}%
+ \readlist*\PfCSolListeReponses{\PfCFooChoixLabel}%
+ \xdef\RetiensSiSol{0}%
+ \xintFor* ##3 in{\xintSeq{1}{\PfCSolListeReponseslen}}\do{%
+ \ifnum#2=\PfCSolListeReponses[##3]\relax%
+ \xdef\RetiensSiSol{\fpeval{\RetiensSiSol+1}}%
+ \fi%
+ }%
+ \ifnum\RetiensSiSol>0\relax%
+ $\blacksquare$%
+ \else%
+ $\square$%
+ \fi%
+}%
+
\NewDocumentCommand\QCMSeul{om}{%
\useKVdefault[QCMSeul]%
\setKV[QCMSeul]{#1}%
@@ -173,6 +194,36 @@
\newcommand\QCM[2][]{%
\useKVdefault[ClesQCM]%
\setKV[ClesQCM]{#1}%
+ \ifboolKV[ClesQCM]{AllSeul}{%
+ \setKV[QCMSeul]{#1}
+ \setsepchar[*]{,*&}\ignoreemptyitems%
+ \readlist*\ListeQCM{#2}%
+ \reademptyitems%
+ \setcounter{QuestionQCM}{\fpeval{\useKV[ClesQCM]{Depart}-1}}%
+ \xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}%
+ \begin{enumerate}
+ \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+ \item\ListeQCM[##1,1]%
+ \ifboolKV[QCMSeul]{EnColonne}{\begin{multicols}{\useKV[QCMSeul]{Colonnes}}}{}%
+ \ifboolKV[QCMSeul]{LabelLettre}{
+ \begin{enumerate}[label=\Alph{*}/]
+ }{%
+ \begin{enumerate}[label=$\square$]
+ }%
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\NumeroReponse-2}}}\do{%
+ \xdef\Titi{##2}
+ \ifboolKV[QCMSeul]{Solution}{%
+ \item[\PfCQCMSMultiChoixLabelSol{##1}{##2}]%
+ }{%
+ \item%
+ }%
+ \ListeQCM[##1,\fpeval{##2+1}]
+ }%
+ \end{enumerate}
+ \ifboolKV[QCMSeul]{EnColonne}{\end{multicols}}{}%
+ }%
+ \end{enumerate}
+ }{%
\ifboolKV[ClesQCM]{Seul}{%
\QCMSeul[#1]{#2}%
}{%
@@ -248,6 +299,7 @@
}%
}%
}%
+}%
\NewDocumentCommand\PfCSolCellColor{mm}{%
\xdef\PfCFooSolColor{\ListeQCM[#1,\NumeroReponse]}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex b/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
index 11ae58b5b7..f80bc93866 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
@@ -1,6 +1,10 @@
%%%
% Ecriture des nombres en lettres
%%%
+\def\filedateEcrireLettres{2024/08/04}%
+\def\fileversionEcrireLettres{0.1}%
+\message{-- \filedateEcrireLettres\space v\fileversionEcrireLettres}%
+%
\setKVdefault[ClesEcriture]{Math=false,Majuscule=false,E=false,Tradition=false,Zero=false}%
\newcommand\EcriturePluriel[1]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
index c4503954b3..05e593623c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
@@ -1,6 +1,10 @@
%%%
% Ecritures d'unit\'es
%%%
+\def\filedateEcrireUnites{2024/08/04}%
+\def\fileversionEcrireUnites{0.1}%
+\message{-- \filedateEcrireUnites\space v\fileversionEcrireUnites}%
+%
\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,mmin=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false,Nombre,US=false,UK=false,CFA=false,CFP=false,CHF=false,Euro=false,Precision=2}%
\defKV[Unites]{Dots=\setKV[Unites]{Nombre=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
index fc1674d37f..58553f57f8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
@@ -1,11 +1,14 @@
%%%
% Engrenages
%%%
+\def\filedateEngrenages{2024/08/04}%
+\def\fileversionEngrenages{0.1}%
+\message{-- \filedateEngrenages\space v\fileversionEngrenages}%
+%
\newtoks\tokPfCEngrenages%
\def\UpdatetoksEngrenages#1/#2\nil{\addtotok\tokPfCEngrenages{#1,#2,}}%
\setKVdefault[Engrenages]{Couleur=LightSteelBlue,Unite=3mm,ListeCouleurs={?}}%
-%\defKV[Engrenages]{Couleur=\setKV[Engrenages]{ListeCouleurs=#1}}%
\NewDocumentCommand\Engrenages{o m}{%
\newtoks\toklistecouleur%
@@ -24,7 +27,6 @@
\xdef\ListeAvantCouleurs{\useKV[Engrenages]{ListeCouleurs}}%
\readlist*\ListeCouleur{\ListeAvantCouleurs}%
\foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
- %\setKV[Engrenages]{Couleurs=\ListeCouleur[1]}%
\BuildEngrenages{\PfCFooEngrenages}{\the\toklistecouleur}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex b/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
index 345f741656..1840d8b0e3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
@@ -1,6 +1,10 @@
%%%
% Enigme Aire
%%%
+\def\filedateEnigmeAire{2024/08/04}%
+\def\fileversionEnigmeAire{0.1}%
+\message{-- \filedateEnigmeAire\space v\fileversionEnigmeAire}%
+%
\setKVdefault[EnigmeAire]{Modele=A,Couleur=LightSteelBlue,Echelle=7mm,Etape=1,Solution=false,Graines=false}
\defKV[EnigmeAire]{Graine=\setKV[EnigmeAire]{Graines}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCEnquete.tex b/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
index 678b268c57..5dfc36587c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
@@ -1,6 +1,10 @@
%%%
% Enquête
%%%
+\def\filedateEnquete{2024/08/04}%
+\def\fileversionEnquete{0.1}%
+\message{-- \filedateEnquete\space v\fileversionEnquete}%
+%
\setKVdefault[ClesEnquete]{Perso=Qui ?,Objet=Quoi ?,Lieu=Où ?,Largeur=4.5cm}
\newcommand\Enquete[1][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex b/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
index 192e470e66..5374c485d2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
@@ -1,3 +1,10 @@
+%%%
+% Crible Eratostene
+%%%
+\def\filedateEratos{2024/08/04}%
+\def\fileversionEratos{0.1}%
+\message{-- \filedateEratos\space v\fileversionEratos}%
+%
\setKVdefault[ClesEra]{Premier=false,Nombre=1,CouleurP=Cornsilk!50,CouleurNP=Crimson!15,Colonnes=10,Lignes=10,Hauteur=24pt}%
\NewDocumentCommand\TestPremier{m}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
index 823f203623..bdcea30d9d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
@@ -1,3 +1,10 @@
+%%%
+% Factorisation
+%%%
+\def\filedateFactorisation{2024/08/04}%
+\def\fileversionFactorisation{0.1}%
+\message{-- \filedateFactorisation\space v\fileversionFactorisation}%
+%
\setKVdefault[Facto]{Aide=false,AideMul=false,Couleur=Crimson,NomExpression=A,Lettre=x,Details,Formel=false,VariableSup=false,ParenthesesFin=false,Finale=false,Type=0}
\defKV[Facto]{Litteral=\setKV[Facto]{Details=false}}
\defKV[Facto]{AutreVariable=\setKV[Facto]{VariableSup}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex b/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
index 511e47da2f..e2dfc25f13 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
@@ -1,6 +1,10 @@
%%%
% Fiche m\'emorisation active
%%%
+\def\filedateFicheMemo{2024/08/04}%
+\def\fileversionFicheMemo{0.1}%
+\message{-- \filedateFicheMemo\space v\fileversionFicheMemo}%
+%
\setKVdefault[ClesFicheMemo]{TexteReponses=Réponses,TexteQuestions=Questions,Solution=false,Largeur=\linewidth}
\newcommand\FicheMemo[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
index 5b95ddb02e..26777eaac0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
@@ -1,6 +1,10 @@
%%%
% Fonction Affine
%%%
+\def\filedateAffine{2024/08/04}%
+\def\fileversionAffine{0.1}%
+\message{-- \filedateAffine\space v\fileversionAffine}%
+%
\setKVdefault[ClesAffine]{Nom=f,Variable=x,CoefDir=a,OrdoOrig=b,Ligne=false,Image=false,Antecedent=false,Graphique=false,Retrouve=false,ProgCalcul=false,Unitex=1,Unitey=1,VoirCoef=false,ACoef=0,Redaction=false,Ecriture=false,Definition=false,Centre=false}%ACoefficient=false%: inutile ?
\newcommand\FonctionAffine[5][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex b/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
index dbfe8109d2..8fe1993016 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
@@ -1,6 +1,10 @@
%%%
% Fraction d'aire d'un carré
%%%
+\def\filedateFractionCarre{2024/08/04}%
+\def\fileversionFractionCarre{0.1}%
+\message{-- \filedateFractionCarre\space v\fileversionFractionCarre}%
+%
\setKVdefault[JeuAireCarre]{Couleur=LightSteelBlue,CouleurFond=Cornsilk,Perso=false,Graines=false,Parts=3,Longueur=4,NbPoints=2,Angle=0}%
\defKV[JeuAireCarre]{Graine=\setKV[JeuAireCarre]{Graines}\PfCGraineAlea{#1}}%
\defKV[JeuAireCarre]{ListeParts=\setKV[JeuAireCarre]{Perso}\xdef\PfCFooJeuAireCarre{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
index 52512fb83e..20d1d1e93a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
@@ -1,6 +1,10 @@
%%%
% Fraction Nombre
%%%
+\def\filedateFractionNombre{2024/08/04}%
+\def\fileversionFractionNombre{0.1}%
+\message{-- \filedateFractionNombre\space v\fileversionFractionNombre}%
+%
\newtoks\tokFractionNombrePerso%
\def\UpdatetoksFN#1\nil{\addtotok\tokFractionNombrePerso{"#1",}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFrise.tex b/macros/latex/contrib/profcollege/latex/PfCFrise.tex
index a07d2a931b..c56b2c6f4f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFrise.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFrise.tex
@@ -1,6 +1,10 @@
%%%
% Frise temporelle
%%%
+\def\filedateFrise{2024/08/04}%
+\def\fileversionFrise{0.1}%
+\message{-- \filedateFrise\space v\fileversionFrise}%
+%
\setKVdefault[ClesFrise]{Longueur=8cm,Fleches=false,Ecart=5mm,Sup=false}%
\newtoks\toklistefrise%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFubuki.tex b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
index 0ce7af2ffa..fd1f973bfd 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
@@ -1,3 +1,10 @@
+%%%
+% Fubuki
+%%%
+\def\filedateFubuki{2024/08/04}%
+\def\fileversionFubuki{0.1}%
+\message{-- \filedateFubuki\space v\fileversionFubuki}%
+%
\setKVdefault[Fubuki]{Largeur=20pt,Solution=false,Indice=false,Sommes=false,Couleur=LightSteelBlue,Perso=false,Vierge=false}%
\defKV[Fubuki]{Graine=\PfCGraineAlea{#1}}%
\defKV[Fubuki]{Indices=\setKV[Fubuki]{Indice}\xdef\PfCFooListeIndices{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex b/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
index 4603265e0e..300bdd43d0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
@@ -1,6 +1,10 @@
%%%
% Futoshiki
%%%
+\def\filedateFutoshiki{2024/08/04}%
+\def\fileversionFutoshiki{0.1}%
+\message{-- \filedateFutoshiki\space v\fileversionFutoshiki}%
+%
\setKVdefault[Futo]{Largeur=15pt,Solution=false,CouleurSolution=Black,CouleurCase=Cornsilk,StyleTexte={}}
\newlength\PfCFutoHeight
diff --git a/macros/latex/contrib/profcollege/latex/PfCGaram.tex b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
index 7e04378a93..fd5a97439c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGaram.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
@@ -1,17 +1,21 @@
%%%
% Garam
%%%
-\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false,CouleurSolution=Black}
+\def\filedateGaram{2024/08/04}%
+\def\fileversionGaram{0.1}%
+\message{-- \filedateGaram\space v\fileversionGaram}%
+%
+\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false}%
+\defKV[Garam]{CouleurSolution=\setKV[Garam]{Solution}\colorlet{PfCGaramCoulSol}{#1}}%
\newlength\PfCGaramHeight
\NewDocumentCommand\Garam{o m}{%
- \useKVdefault[Garam]
+ \useKVdefault[Garam]%
\setKV[Garam]{#1}%
\setlength{\PfCGaramHeight}{\useKV[Garam]{Largeur}+\tabcolsep}%
\reademptyitems%
\setsepchar[*]{§*,*/}%
\readlist*\PfCListeGaram{#2}%
- \colorlet{PfCGaramCoulSol}{\useKV[Garam]{CouleurSolution}}%
\begin{NiceTabular}{*{\useKV[Garam]{Taille}}{m{\useKV[Garam]{Largeur}}}}
\CodeBefore
\xintFor* ##1 in{\xintSeq{2}{\fpeval{\useKV[Garam]{Taille}}}}\do{%
@@ -26,7 +30,7 @@
\rule{0pt}{\PfCGaramHeight}\xintFor* ##2 in {\xintSeq{1}{\useKV[Garam]{Taille}}}\do{%
\xintifForFirst{}{&}\StrChar{\PfCListeGaram[##1,##2,1]}{1}[\PfCCaracGaram]%
\IfStrEq{\PfCCaracGaram}{*}{\Block[draw,fill=black]{1-1}{}}{%
- \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\color{PfCGaramCoulSol}\PfCListeGaram[##1,##2,1]}}%
+ \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\color{PfCGaramCoulSol}\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\PfCListeGaram[##1,##2,1]}}%
}%
}\\
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
index ad7e495f04..9bb83ad50d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
@@ -1,6 +1,10 @@
%%%
% Geometrie
%%%
+\def\filedateGeometrie{2024/08/04}%
+\def\fileversionGeometrie{0.1}%
+\message{-- \filedateGeometrie\space v\fileversionGeometrie}%
+%
\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments",Clip,Cadres=false,Epaisseur=1,Pointilles=false,Ombre=false,Couleur=black,Ecart=2,ModeleCouleur=5}%
\defKV[Geometrie]{Cadre=\setKV[Geometrie]{Cadres}\setKV[Geometrie]{Clip=false}}%
@@ -42,6 +46,9 @@
elseif \useKV[Geometrie]{TypeTrace}="Espace":
typetrace:="3D";
typerepre:="persp";
+ elseif \useKV[Geometrie]{TypeTrace}="Schema":
+ input PfCSketch;
+ sketchypaths;
fi;
xa:=xpart(Coinbg);
xb:=xpart(Coinhd);
@@ -120,6 +127,9 @@
elseif \useKV[Geometrie]{TypeTrace}="Espace":
typetrace:="3D";
typerepre:="persp";
+ elseif \useKV[Geometrie]{TypeTrace}="Schema":
+ input PfCSketch;
+ sketchypaths;
fi;}
]%
xa:=xpart(Coinbg);
diff --git a/macros/latex/contrib/profcollege/latex/PfCGrades.tex b/macros/latex/contrib/profcollege/latex/PfCGrades.tex
index 6155c43ca1..d86c6e4e42 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGrades.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGrades.tex
@@ -1,8 +1,12 @@
%%%
% Grades
%%%
-\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}
-\defKV[Grades]{Graine=\setKV[Grades]{Graines}}
+\def\filedateGrades{2024/08/04}%
+\def\fileversionGrades{0.1}%
+\message{-- \filedateGrades\space v\fileversionGrades}%
+%
+\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}%
+\defKV[Grades]{Graine=\setKV[Grades]{Graines}}%
\NewDocumentCommand\Grades{o}{%
\useKVdefault[Grades]%
diff --git a/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex b/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
index 81e667533a..9185b76892 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
@@ -1,6 +1,10 @@
%%%
% Grimuku
%%%
+\def\filedateGrimuku{2024/08/04}%
+\def\fileversionGrimuku{0.1}%
+\message{-- \filedateGrimuku\space v\fileversionGrimuku}%
+%
\setKVdefault[Grimuku]{TLargeur=7,Solution=false,Largeur=30pt,CouleurCase=0.7white}%
\defKV[Grimuku]{CouleurSolution=\setKV[Grimuku]{Solution}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex b/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
index f472e07844..65948f5949 100644
--- a/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
@@ -1,6 +1,10 @@
%%%
% Message caché
%%%
+\def\filedateHidden{2024/08/04}%
+\def\fileversionHidden{0.1}%
+\message{-- \filedateHidden\space v\fileversionHidden}%
+%
\setKVdefault[Hidden]{TLargeur=5,THauteur=3,Solution=false,Hauteur=70pt,Largeur=120pt,Jeu=false,Solution}
\defKV[Hidden]{Plateau=\setKV[Hidden]{Jeu}\setKV[Hidden]{Solution=false}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCHorloge.tex b/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
index 1133714ecd..01af381977 100644
--- a/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
@@ -1,7 +1,11 @@
%%%
% Horloges
%%%
-\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false}
+\def\filedateHorloge{2024/08/12}%
+\def\fileversionHorloge{0.1a}%
+\message{-- \filedateHorloge\space v\fileversionHorloge}%
+%
+\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false,Sombre=false}
\NewDocumentCommand\Horloge{ }{%On désactive les :
\begingroup
@@ -62,13 +66,19 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- boolean Secondes,Impression;
+ boolean Secondes,Impression,Sombre;
Secondes=\useKV[ClesHorloge]{Secondes};
Impression=\useKV[ClesHorloge]{Impression};
+ Sombre=\useKV[ClesHorloge]{Sombre};
if Impression:
+ if Sombre:
+ LightSteelBlue:=0.8*white;
+ Crimson:=black;
+ else:
LightSteelBlue:=0.9*white;
Crimson:=0.5*white;
fi;
+ fi;
u:=0.5u;
draw Afficheur(#1 div10,0);
draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -80,9 +90,21 @@
draw Afficheur(#3 div10,0) shifted(u*(6,0));
draw Afficheur(#3 mod10,0) shifted(u*(7,0));
fi;
+ if Sombre:
+ draw bbox currentpicture;
+ fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={boolean Secondes;Secondes=\useKV[ClesHorloge]{Secondes};}]
+ \begin{mpost}[mpsettings={boolean Secondes,Impression,Sombre;Secondes=\useKV[ClesHorloge]{Secondes};Impression=\useKV[ClesHorloge]{Impression};Sombre=\useKV[ClesHorloge]{Sombre};}]
+ if Impression:
+ if Sombre:
+ LightSteelBlue:=0.8*white;
+ Crimson:=black;
+ else:
+ LightSteelBlue:=0.9*white;
+ Crimson:=0.5*white;
+ fi;
+ fi;
u:=0.5u;
draw Afficheur(#1 div10,0);
draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -94,6 +116,9 @@
draw Afficheur(#3 div10,0) shifted(u*(6,0));
draw Afficheur(#3 mod10,0) shifted(u*(7,0));
fi;
+ if Sombre:
+ draw bbox currentpicture;
+ fi;
\end{mpost}
\fi
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCJeton.tex b/macros/latex/contrib/profcollege/latex/PfCJeton.tex
index e3012070f2..68523efce5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCJeton.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCJeton.tex
@@ -1,6 +1,10 @@
%%%
% Jeton
%%%
+\def\filedateJeton{2024/08/04}%
+\def\fileversionJeton{0.1}%
+\message{-- \filedateJeton\space v\fileversionJeton}%
+%
\setKVdefault[Jeton]{Diametre=5mm,Impression=false}%
\NewDocumentCommand\Jeton{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
index 6508e6cd1a..df2f709271 100644
--- a/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
@@ -1,3 +1,10 @@
+%%%
+% Jeu Rangement
+%%%
+\def\filedateJeuRangement{2024/08/04}%
+\def\fileversionJeuRangement{0.1}%
+\message{-- \filedateJeuRangement\space v\fileversionJeuRangement}%
+%
\setKVdefault[JeuRgt]{Creation=false,Deno=12,Graines=false,Largeur=15pt,Hauteur=20pt,Negatif=false,Decimaux=false,Solution=false,ValeurMin=2,ValeurMax=50,Exposants=false}
\defKV[JeuRgt]{Graine=\setKV[JeuRgt]{Graines}}%
\defKV[JeuRgt]{Exposant=\setKV[JeuRgt]{Exposants}\setKV[JeuRgt]{Deno=1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex b/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
index 944d295e8f..d608320b3e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
@@ -1,6 +1,10 @@
%%%
% Kakurasu
%%%
+\def\filedateKakurasu{2024/08/04}%
+\def\fileversionKakurasu{0.1}%
+\message{-- \filedateKakurasu\space v\fileversionKakurasu}%
+%
\setKVdefault[Kakurasu]{Solution=false,Longueur=6,Largeur=6,Echelle=8mm,Graines=false,Trace=false}
\defKV[Kakurasu]{Graine=\setKV[Kakurasu]{Graines}}
\defKV[Kakurasu]{Traces=\setKV[Kakurasu]{Trace}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
index adf0aba7d2..b480f44275 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
@@ -1,6 +1,10 @@
%%%
% Kakuro
%%%
+\def\filedateKakuro{2024/08/04}%
+\def\fileversionKakuro{0.1}%
+\message{-- \filedateKakuro\space v\fileversionKakuro}%
+%
\setKVdefault[Kakuro]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=2em,Aide=false,CouleurSolution=Black,Tailles=false}%,Taille=5
\defKV[Kakuro]{ListeNombres=\setKV[Kakuro]{Aide}}%
\defKV[Kakuro]{Taille=\setKV[Kakuro]{Tailles}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
index e28efc379f..21a16dbc78 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
@@ -1,6 +1,10 @@
%%%
% KenKen
%%%
+\def\filedateKenken{2024/08/04}%
+\def\fileversionKenken{0.1}%
+\message{-- \filedateKenken\space v\fileversionKenken}%
+%
\setKVdefault[ClesKK]{Solution=false,Taille=3,Largeur=2em,Aide=false}%
\defKV[ClesKK]{Nombre=\setKV[ClesKK]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex b/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
index 5922748104..f60cbce35e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
@@ -1,8 +1,12 @@
%%%
% Labyrinthe
%%%
-\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}
-
+\def\filedateLabyJeu{2024/08/04}%
+\def\fileversionLabyJeu{0.1}%
+\message{-- \filedateLabyJeu\space v\fileversionLabyJeu}%
+%
+\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}%
+%
\tikzset{FDirect/.style={-stealth}}
\tikzset{FIndirect/.style={stealth-}}
\tikzset{FBidirect/.style={stealth-stealth}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex b/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
index b610849ea5..769617eb90 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
@@ -1,6 +1,10 @@
%%%
% Labyrinthe Nombre
%%%
+\def\filedateLabyNombre{2024/08/04}%
+\def\fileversionLabyNombre{0.1}%
+\message{-- \filedateLabyNombre\space v\fileversionLabyNombre}%
+%
\setKVdefault[ClesLabyNb]{Multiple=5,XDepart=0,YDepart=0,Longueur=7,Largeur=4,Solution=false,Echelle=1,Angle=0,Couleur=red,Murs=false,Nom=Ex1,CouleurChemin=LightSteelBlue,DoubleOperation=false,Multiplication=false,Chemin=false,EntreeSortie=false,Entree="Nord",Sortie="Sud",SortieUnique=true,Graines=false,XArrivees=false,YArrivees=false,ArriveeX=5,ArriveeY=5}
\defKV[ClesLabyNb]{Graine=\setKV[ClesLabyNb]{Graines}}
\defKV[ClesLabyNb]{XArrivee=\setKV[ClesLabyNb]{XArrivees}\setKV[ClesLabyNb]{ArriveeX=#1}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCLego.tex b/macros/latex/contrib/profcollege/latex/PfCLego.tex
index 901eb0a54b..80bc5ddc1a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLego.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLego.tex
@@ -1,6 +1,10 @@
%%%
% Lego
%%%
+\def\filedateLego{2024/09/01}%
+\def\fileversionLego{0.1a}%
+\message{-- \filedateLego\space v\fileversionLego}%
+%
\setKVdefault[Lego]{Echelle=1,Couleur=LightSteelBlue,Unite=8,Diviseur=2,Perso=false,Plaque=false,Largeura=2,Largeurb=2,Unique=false}%
\defKV[Lego]{ListePerso=\setKV[Lego]{Perso}\xdef\PfCFooLegoListePerso{#1}}%
@@ -27,10 +31,14 @@
}{%
\xdef\PfCNbCouleurs{\fpeval{floor(\useKV[Lego]{Unite}/\useKV[Lego]{Diviseur})}}%
}%
- \ChoixCouleur{\PfCNbCouleurs}%
\ifboolKV[Lego]{Perso}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeAvantChoixCouleurs{\PfCFooLegoListePerso}%
+ \ChoixCouleur{\ListeAvantChoixCouleurslen}%
+ \reademptyitems%
\BuildBarreLego{\FooCouleur}{\PfCFooLegoListePerso}%
}{%
+ \ChoixCouleur{\PfCNbCouleurs}%
\BuildBarreLego{\FooCouleur}{}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMentalo.tex b/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
index 84176c0d1f..0c024facd2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
@@ -1,6 +1,10 @@
%%%
% Mentalo
%%%
+\def\filedateMentalo{2024/08/04}%
+\def\fileversionMentalo{0.1}%
+\message{-- \filedateMentalo\space v\fileversionMentalo}%
+%
\NewDocumentCommand\PfCNumold{m}{%
\xintifboolexpr{#1<0}{(\num{#1})}{\num{#1}}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex b/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
index 0813f66c44..4fea05dcbb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
@@ -1,6 +1,10 @@
%%%
% Midpoint
%%%
+\def\filedateMidpoint{2024/08/04}%
+\def\fileversionMidpoint{0.1}%
+\message{-- \filedateMidpoint\space v\fileversionMidpoint}%
+%
\setKVdefault[MidPoint]{Solution=false,Graines=false,Hard=false}
\defKV[MidPoint]{Graine=\setKV[MidPoint]{Graines}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
index a05ae0075b..e894a9ebc6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
@@ -1,6 +1,10 @@
%%%
% Modele en barre
%%%
+\def\filedateModeleBarre{2024/08/04}%
+\def\fileversionModeleBarre{0.1}%
+\message{-- \filedateModeleBarre\space v\fileversionModeleBarre}%
+%
\setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation={0},Homogene=false,Multiplicatif=false,MultiplicatifH=false,MultiplicatifB=false}%Separation pour conserver le lien avec les équations.
\defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}%
\defKV[ClesModeleBarre]{AccoladesH=\setKV[ClesModeleBarre]{MultiplicatifH}\setKV[ClesModeleBarre]{Multiplicatif}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMosaique.tex b/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
index 91936d597b..af964995ef 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
@@ -1,6 +1,10 @@
%%%
% Mosaique
%%%
+\def\filedateMosaique{2024/08/04}%
+\def\fileversionMosaique{0.1}%
+\message{-- \filedateMosaique\space v\fileversionMosaique}%
+%
\setKVdefault[ClesMosaique]{Largeur=2,Hauteur=2,Solution=false,Type=1,Label,Echelle=1cm}
\newcommand\DessineMosaique[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
index 0929b76197..088f417c35 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
@@ -1,6 +1,10 @@
%%%
% Mots Cod\'es
%%%
+\def\filedateMotsCodes{2024/08/04}%
+\def\fileversionMotsCodes{0.1}%
+\message{-- \filedateMotsCodes\space v\fileversionMotsCodes}%
+%
\setKVdefault[MotsCodes]{LargeurT=1cm,Colonnes=5,Largeur=3cm,Solution=false,Math=false}%
\newcommand\MotsCodes[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
index 4e6734dd7b..5310516799 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
@@ -1,6 +1,10 @@
%%%
% Mots croisés
%%%
+\def\filedateMotsCroises{2024/08/04}%
+\def\fileversionMotsCroises{0.1}%
+\message{-- \filedateMotsCroises\space v\fileversionMotsCroises}%
+%
\setKVdefault[ClesCroises]{Lignes=6,Colonnes=8,Solution=false,Croises=false,Couleur=gray,Largeur=1em}
\newcounter{PfCLettreHorizontal}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex b/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
index 1c42d433a6..c8ec37bc5d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
@@ -1,6 +1,10 @@
%%%
% Mots empilés
%%%
+\def\filedateMotsEmpiles{2024/08/04}%
+\def\fileversionMotsEmpiles{0.1}%
+\message{-- \filedateMotsEmpiles\space v\fileversionMotsEmpiles}%
+%
\setKVdefault[ClesMotEmpile]{Colonne=4,Solution=false,Couleur=black}
\newcounter{CompteurMotEmpile}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
index 27156c00b7..9942541873 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
@@ -1,6 +1,10 @@
%%%
% Mulart
%%%
+\def\filedateMulArt{2024/08/04}%
+\def\fileversionMulArt{0.1}%
+\message{-- \filedateMulArt\space v\fileversionMulArt}%
+%
\setKVdefault[TabMul]{Multiple=2,Cibles=false,Largeur=20pt,Couleurs=false,Graines=false,Operations=false,Enonce=false,SchemaEnonce=false}
\defKV[TabMul]{Couleur=\setKV[TabMul]{Couleurs}}
\defKV[TabMul]{Graine=\setKV[TabMul]{Graines}\PfCGraineAlea{#1}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulJal.tex b/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
index befce7a110..3f9ba37758 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
@@ -1,6 +1,10 @@
%%%
% Multiplication par jalousie
%%%
+\def\filedateMulJal{2024/08/04}%
+\def\fileversionMulJal{0.1}%
+\message{-- \filedateMulJal\space v\fileversionMulJal}%
+%
\setKVdefault[MulJal]{Solution=false,CouleurTab=gray!15}%
\defKV[MulJal]{CouleurSolution=\setKV[MulJal]{Solution}}%
%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
index bdb59526f0..8fdf37c5b3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
@@ -1,6 +1,10 @@
%%%
% Multiplication Japonaise
%%%
+\def\filedateMulJap{2024/08/04}%
+\def\fileversionMulJap{0.1}%
+\message{-- \filedateMulJap\space v\fileversionMulJap}%
+%
\setKVdefault[MulJap]{Couleur=Orange,Bloc=false,DessinSeul=false}
\defKV[MulJap]{CouleurBloc=\setKV[MulJap]{Bloc}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex b/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
index 7851f36ba7..aaf98ffe6a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
@@ -1,6 +1,10 @@
%%%
% Pièces de puzzle pour multiplication
%%%
+\def\filedateMulPiecesPuzzle{2024/08/04}%
+\def\fileversionMulPiecesPuzzle{0.1}%
+\message{-- \filedateMulPiecesPuzzle\space v\fileversionMulPiecesPuzzle}%
+%
%https://mirror.gutenberg-asso.fr/tex.loria.fr/prod-graph/metafun.pdf
\newtoks\toklistepuzzlea%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
index 428cd8d37c..df1903bc0e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
@@ -1,6 +1,10 @@
%%%
% Nombre Astral
%%%
+\def\filedateNombreAstral{2024/08/04}%
+\def\fileversionNombreAstral{0.1}%
+\message{-- \filedateNombreAstral\space v\fileversionNombreAstral}%
+%
\setKVdefault[NombreAstral]{Solution=false,Graines=false,Echelle=1,Couleur=LightSteelBlue,Horizontal=false}
\defKV[NombreAstral]{Graine=\setKV[NombreAstral]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex b/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
index 8adfbd5654..d63fd9c70f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
@@ -1,3 +1,10 @@
+%%%
+% Nonogramme
+%%%
+\def\filedateNonogramme{2024/08/04}%
+\def\fileversionNonogramme{0.1}%
+\message{-- \filedateNonogramme\space v\fileversionNonogramme}%
+%
\setKVdefault[Nono]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
\newtoks\toklistenonoa%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
index 4fe05bc4d0..265beb92f9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
@@ -1,6 +1,10 @@
%%%
% Fonction
%%%
+\def\filedateFonction{2024/08/04}%
+\def\fileversionFonction{0.1}%
+\message{-- \filedateFonction\space v\fileversionFonction}%
+%
\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false,Catmull=false,Splines=false,Lagrange=false,Epaisseur=1,Couleur=black,CouleurTrace=black,PointsCourbe=true,Codes=false,Origine={(0,0)},Vide=false}
\defKV[ClesFonction]{Traces=\setKV[ClesFonction]{Codes}}%
@@ -1249,6 +1253,17 @@ vardef Lagrange(expr valeur)(text t)=
%
RetiensCouleur(\useKV[TraceG]{CouleurTrace});
%
+ numeric styletrace[];
+ vardef RetiensStyle(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ styletrace[n]=p_;
+ endfor;
+ enddef;
+ %
+ RetiensStyle(\useKV[TraceG]{StyleTrace});
+ %
pair Origine,DecalageOrigine;
Origine=(xmin,ymin)+\useKV[TraceG]{Origine};
DecalageOrigine=\useKV[TraceG]{Origine};
@@ -1305,6 +1320,19 @@ vardef Lagrange(expr valeur)(text t)=
n:=0;
for p_=texto:
n:=n+1;
+ if unknown styletrace[n]:
+ drawoptions();
+ else:
+ if styletrace[n]=1:
+ drawoptions(dashed evenly);
+ elseif styletrace[n]=2:
+ drawoptions(dashed withdots);
+ elseif styletrace[n]=3:
+ drawoptions(dashed dashpattern(on6 off3 on1.5 off3));
+ else:
+ drawoptions();
+ fi;
+ fi;
draw courbe[n](borneinf[n],bornesup[n],100)(scantokens p_) withpen (pencircle scaled Epaisseur) withcolor if unknown colortrace[n]:black else: colortrace[n] fi;
endfor;
enddef;
@@ -1419,6 +1447,9 @@ vardef Lagrange(expr valeur)(text t)=
trace u*(xmin-grillex,k)--u*(xmax+grillex,k);
endfor;
drawoptions();
+ else:
+ grillex:=0;
+ grilley:=0;
fi;
if Graduations:
for k=gradx step gradx until (((xmax-xmin)-xpart(DecalageOrigine))*pasx):
@@ -1470,11 +1501,12 @@ vardef Lagrange(expr valeur)(text t)=
else:
DessineCourbes(#1);
NommeCourbes(#2);
- if Grille:
clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
+ if Grille:
+ %clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
draw polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley)) withcolor 0.75white;
else:
- clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
+ %clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
fi;
%
if Code:
diff --git a/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex b/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
index ee37a5b2f1..96019b3d83 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
@@ -1,6 +1,10 @@
%%%
% Number Hive
%%%
+\def\filedateNumberHive{2024/08/04}%
+\def\fileversionNumberHive{0.1}%
+\message{-- \filedateNumberHive\space v\fileversionNumberHive}%
+%
\setKVdefault[NumberHive]{Negatif=false,Produit=false,Niveau=8,Double=false,ListeCouleurs={Cornsilk,LightSteelBlue},CouleurCase=false,Jeton=false,Graines=false,Aide=false,UniteHexa=6mm}%
\defKV[NumberHive]{Cases=\setKV[NumberHive]{CouleurCase}}%
\defKV[NumberHive]{Jetons=\setKV[NumberHive]{Jeton}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
index a864165fba..b9560bb504 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
@@ -1,3 +1,10 @@
+%%%
+% Numerations anciennes
+%%%
+\def\filedateNumAnciennes{2024/08/04}%
+\def\fileversionNumAnciennes{0.1}%
+\message{-- \filedateNumAnciennes\space v\fileversionNumAnciennes}%
+%
\setKVdefault[NumerationAncienne]{Couleur=black}%
\NewDocumentCommand\Chinoise{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex b/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
index 347ca499bc..ca9f72976e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
@@ -1,11 +1,11 @@
%%%
% Op\'erations pos\'es à trou
%%%
-%% D'après https://tex.stackexchange.com/questions/277246/drawing-a-circle-around-the-numbers-in-xlop-package
-
-%\begin{document}%
+\def\filedateOpTrou{2024/08/04}%
+\def\fileversionOpTrou{0.1}%
+\message{-- \filedateOpTrou\space v\fileversionOpTrou}%
%
-%\end{document}
+%% D'après https://tex.stackexchange.com/questions/277246/drawing-a-circle-around-the-numbers-in-xlop-package
\newcommand\PfCchiffre[2]{\tikz[remember picture] \node[inner sep=0pt](#1){#2};}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
index 0bb41363ec..3929600a6e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
@@ -1,6 +1,10 @@
%%%
% Papiers
%%%
+\def\filedatePapiers{2024/08/04}%
+\def\fileversionPapiers{0.1}%
+\message{-- \filedatePapiers\space v\fileversionPapiers}%
+%
\setKVdefault[Papiers]{Cinq=true,Seyes=false,Echelle=8,Isometrique=false,IsometriquePointe=false,Millimetre=false,Triangle=false,Largeur=5,Hauteur=4,Couleur=black,Grille=-1,GrillePointe=-1,PageEntiere=false,ZoneTexte=false,Baseline=false,CodeAfter=false}%
\defKV[Papiers]{Traces=\setKV[Papiers]{CodeAfter}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex b/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
index 6628d3d505..904f272411 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
@@ -1,6 +1,10 @@
%%%
% Patrons de pavés droits et cubes
%%%
+\def\filedatePatronspaves{2024/08/04}%
+\def\fileversionPatronspaves{0.1}%
+\message{-- \filedatePatronspaves\space v\fileversionPatronspaves}%
+%
\setKVdefault[ClesPatron]{Cube,Arete=1cm,ListeCouleurs={white},Pave=false,Largeur=2cm,Hauteur=1.5cm,Profondeur=1cm,Codes=false,AColorier=false}%
%EcartColorier est en nombre de parts pour le cube, en mm pour le pavé.
\defKV[ClesPatron]{EcartColorier=\setKV[ClesPatron]{AColorier}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPattern.tex b/macros/latex/contrib/profcollege/latex/PfCPattern.tex
index 29fa45c08f..fb6f0bf9f3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPattern.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPattern.tex
@@ -1,6 +1,10 @@
%%%
% Visual Pattern
%%%
+\def\filedatePattern{2024/08/04}%
+\def\fileversionPattern{0.1}%
+\message{-- \filedatePattern\space v\fileversionPattern}%
+%
\setKVdefault[Pattern]{Type=1,Etape=3}
\NewDocumentCommand\VisualPattern{o}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPavage.tex b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
index 2d25df1b99..4dabb04411 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPavage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
@@ -1,6 +1,10 @@
%%%
% Pavage
%%%
+\def\filedatePavage{2024/08/04}%
+\def\fileversionPavage{0.1}%
+\message{-- \filedatePavage\space v\fileversionPavage}%
+%
\setKVdefault[Pavage]{%
Before=false,
Niveau=3,
diff --git a/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex b/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
index df380d48ee..503e2e1182 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
@@ -1,11 +1,16 @@
%%%
% PixelArt
%%%
+\def\filedatePixelArt{2024/08/04}%
+\def\fileversionPixelArt{0.1}%
+\message{-- \filedatePixelArt\space v\fileversionPixelArt}%
+%
\newtoks\toklistePANombre%
\def\UpdatetoksPANombre#1\nil{\addtotok\toklistePANombre{"#1",}}%
-\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false}%
+\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false,Deforme=false,Coefx=0.25,Coefy=0.25,Borne=false,Graines=false}%
\defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}}%
+\defKV[ClesPixelArt]{Graine=\setKV[ClesPixelArt]{Graines}}%
\NewDocumentCommand\PixelArt{o m}{%
\toklistePANombre{}%
@@ -34,11 +39,15 @@
\BuildPixelArtGeant{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}{\the\intquotient}{\the\remainder}%
}%
}{%
- \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ \ifboolKV[ClesPixelArt]{Deforme}{%
+ \BuildPixelArtDeforme{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ }{%
+ \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ }%
}%
}%
-\NewDocumentCommand\BuildPixelArt{m m m m}{%
+\NewDocumentCommand\BuildPixelArtDeforme{m m m m}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -48,6 +57,39 @@
hauteurd:=\useKV[ClesPixelArt]{HauteurD};
Unite:=\useKV[ClesPixelArt]{Unite};
+ %Deformation
+ Coefx=\useKV[ClesPixelArt]{Coefx};
+ Coefy=\useKV[ClesPixelArt]{Coefy};
+ boolean Borne,Graines;
+ Borne=\useKV[ClesPixelArt]{Borne};
+ Graines=\useKV[ClesPixelArt]{Graines};
+ if Graines:
+ randomseed:=\useKV[ClesPixelArt]{Graine};
+ fi;
+ %
+ pair M[][];
+ for l=1 upto hauteur+1:
+ for c=1 upto largeur+1:
+ if Borne:
+ if (l=1) or (l=hauteur+1):
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),0);
+ if (c=1) or (c=largeur+1):
+ M[l][c]:=Unite*(c,l);
+ fi;
+ else:
+ if (c=1) or (c=largeur+1):
+ M[l][c]=Unite*(c,l-1)+Unite*(0,uniformdeviate(Coefy));
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ fi;
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ %dotlabel("",M[l][c]);
+ endfor;
+ endfor;
+
boolean Solution,Nombres,Separations;
Solution:=\useKV[ClesPixelArt]{Solution};
Nombres:=\useKV[ClesPixelArt]{Nombres};
@@ -56,7 +98,7 @@
string BaseLettres;
BaseLettres=str #2;
numeric EchelleScale;
- EchelleScale=Unite/5mm;
+ EchelleScale=Unite/10mm;
color ColorEntier[],ColFond;
n:=0;
@@ -86,11 +128,107 @@
if Nombres:
for m=0 upto (length BaseLettres-1):
if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
- label(TEX(RetiensNombres[m+1]) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ label(TEX(RetiensNombres[m+1]) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
fi;
endfor;
else:
- label(TEX(substring(p,p+1) of p_) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ label(TEX(substring(p,p+1) of p_) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
+ fi;
+ if Solution:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ ColFond:=ColorEntier[m+1];
+ fi;
+ endfor;
+ if unknown ColFond: else: fill polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]) withcolor ColFond fi;
+ fi;
+ trace polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]);
+ fi;
+ endfor;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ Lecturecsv("#1");
+% if Separations:
+% drawoptions(withcolor Purple);
+% for k=hauteur step -hauteurd until 0:
+% draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+% endfor;
+% for k=0 step largeurd until largeur:
+% draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+% endfor;
+% drawoptions();
+% fi;
+ \end{mplibcode}
+\fi
+}%
+
+\NewDocumentCommand\BuildPixelArt{m m m m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ largeur:=\useKV[ClesPixelArt]{Largeur};
+ hauteur:=\useKV[ClesPixelArt]{Hauteur};
+ largeurd:=\useKV[ClesPixelArt]{LargeurD};
+ hauteurd:=\useKV[ClesPixelArt]{HauteurD};
+ Unite:=\useKV[ClesPixelArt]{Unite};
+
+ boolean Solution,Nombres,Separations;
+ Solution:=\useKV[ClesPixelArt]{Solution};
+ Nombres:=\useKV[ClesPixelArt]{Nombres};
+ Separations:=\useKV[ClesPixelArt]{Separations};
+
+ string BaseLettres;
+ BaseLettres=str #2;
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
+ color ColorEntier[],ColFond;
+ n:=0;
+ for p_=#3:
+ n:=n+1;
+ ColorEntier[n]:=p_;
+ endfor;
+
+ string RetiensNombres[];
+ if Nombres:
+ k:=0;
+ for p_=#4:
+ k:=k+1;
+ RetiensNombres[k]=p_;
+ endfor;
+ else:
+ m:=0;
+ for p_=0 upto n-1:
+ m:=m+1;
+ RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
+ endfor;
+ fi;
+
+ picture Etiquette[];
+ for k=1 upto n:
+ Etiquette[k]=image(
+ label(TEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+ );
+ endfor;
+
+ vardef Lecturecsv(expr nomfichier)=
+ for h=hauteur downto 1:
+ string p_;
+ p_=readfrom nomfichier;
+ l:=0;
+ for p=0 step 2 until 2*largeur-2:
+ l:=l+1;
+ if Solution=false:
+ if (substring(p,p+1) of p_)="-":
+ else:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
+ fi;
+ endfor;
+ fi;
fi;
if Solution:
for m=0 upto (length BaseLettres-1):
@@ -101,7 +239,6 @@
if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
fi;
trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
- fi;
endfor;
endfor;
closefrom nomfichier;
@@ -120,10 +257,12 @@
fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres};}]
+ \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres,Separations; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres}; Separations:=\useKV[ClesPixelArt]{Separations};}]
string BaseLettres;
BaseLettres=str #2;
-
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
color ColorEntier[],ColFond;
n:=0;
for p_=#3:
@@ -133,13 +272,26 @@
string RetiensNombres[];
if Nombres:
- n:=0;
+ k:=0;
for p_=#4:
- n:=n+1;
- RetiensNombres[n]=p_;
+ k:=k+1;
+ RetiensNombres[k]=p_;
+ endfor;
+ else:
+ m:=0;
+ for p_=0 upto n-1:
+ m:=m+1;
+ RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
endfor;
fi;
-
+
+ picture Etiquette[];
+ for k=1 upto n:
+ Etiquette[k]=image(
+ label(LATEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+ );
+ endfor;
+
vardef Lecturecsv(expr nomfichier)=
for h=hauteur downto 1:
string p_;
@@ -147,16 +299,15 @@
l:=0;
for p=0 step 2 until 2*largeur-2:
l:=l+1;
+ if Solution=false:
if (substring(p,p+1) of p_)="-":
else:
- if Nombres:
for m=0 upto (length BaseLettres-1):
if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
- label(LATEX(RetiensNombres[m+1]),((l-1)*Unite,(h-1)*Unite));
+ draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
fi;
endfor;
- else:
- label(LATEX(substring(p,p+1) of p_),((l-1)*Unite,(h-1)*Unite));
+ fi;
fi;
if Solution:
for m=0 upto (length BaseLettres-1):
@@ -167,21 +318,30 @@
if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
fi;
trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
- fi;
endfor;
endfor;
closefrom nomfichier;
enddef;
Lecturecsv("#1");
+ if Separations:
+ drawoptions(withcolor Purple);
+ for k=hauteur step -hauteurd until 0:
+ draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step largeurd until largeur:
+ draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+ endfor;
+ drawoptions();
+ fi;
\end{mpost}
\fi
-}
+}%
\NewDocumentCommand\BuildPixelArtGeant{m m m m m m}{%
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
largeur:=\useKV[ClesPixelArt]{Largeur};
hauteur:=\useKV[ClesPixelArt]{Hauteur};
largeurd:=\useKV[ClesPixelArt]{LargeurD};
@@ -253,5 +413,5 @@
Lecturecsv("#1");
\end{mplibcode}
- \fi
-} \ No newline at end of file
+ \fi%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex b/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
index 1f6f18b19b..03177d14dc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
@@ -1,6 +1,10 @@
%%%
% Application : pourcentage
%%%
+\def\filedatePourcentage{2024/08/04}%
+\def\fileversionPourcentage{0.1}%
+\message{-- \filedatePourcentage\space v\fileversionPourcentage}%
+%
\setKVdefault[ClesPourcentage]{Appliquer,Calculer=false,Augmenter=false,Reduire=false,Fractionnaire=false,Decimal,Formule=false,Concret=false,GrandeurA=Grandeur A,GrandeurB=Total,Largeur=1cm,MotReduction=diminution,AideTableau=false,ColorFill=white,CouleurTab=gray!15}
\defKV[ClesPourcentage]{Unite=\setKV[ClesPourcentage]{Concret}}
\newcommand\Pourcentage[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex b/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
index dc6a39b7a5..e3a5f04b62 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
@@ -1,6 +1,10 @@
%%%
% Probabilité et fréquence
%%%
+\def\filedateProbaFrequence{2024/08/04}%
+\def\fileversionProbaFrequence{0.1}%
+\message{-- \filedateProbaFrequence\space v\fileversionProbaFrequence}%
+%
\setKVdefault[PfCFrequence]{Couleur=false,Lancers=1,Legende=false}%
\defKV[PfCFrequence]{ListeCouleurs=\setKV[PfCFrequence]{Couleur}}%
\defKV[PfCFrequence]{Legendes=\setKV[PfCFrequence]{Legende}\setsepchar{,}\reademptyitems\readlist*\PfMListeLegendes{#1}\reademptyitems}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex b/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
index 7ed834a61e..73bafa9ba2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
@@ -1,7 +1,11 @@
%%%
% Proba
%%%
-\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline}
+\def\filedateProba{2024/08/15}%
+\def\fileversionProba{0.1a}%
+\message{-- \filedateProba\space v\fileversionProba}%
+%
+\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline,SansProba=false}
\def\Updatetoksproba#1/#2\nil{\addtotok\toklistepointproba{"#1","\footnotesize #2",}}
\def\Updatetoksprobapdf#1/#2\nil{\addtotok\toklistepointproba{"#1","\noexpand\footnotesize #2",}}
@@ -35,6 +39,8 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean SansProba;
+ SansProba=\useKV[ClesProba]{SansProba};
pair A,B,C[],D[];%les noeuds de l'arbre
%Figure(-10u,-10u,10u,10u);
A=u*(1,1);
@@ -58,8 +64,10 @@
fi;
marque_s:=marque_s*2;
labeloffset:=labeloffset*3;
+ if SansProba=false:
label.bot(btex 0 etex,A);
label.bot(btex 1 etex,B);
+ fi;
labeloffset:=labeloffset/3;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
@@ -93,7 +101,7 @@
toto(#2);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfCGeometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;boolean SansProba;SansProba=\useKV[ClesProba]{SansProba};}]
pair A,B,C[],D[];%les noeuds de l'arbre
Figure(-10u,-10u,10u,10u);
A=u*(1,1);
@@ -117,8 +125,10 @@
fi;
marque_s:=marque_s*2;
labeloffset:=labeloffset*3;
+ if SansProba=false:
label.bot(btex 0 etex,A);
label.bot(btex 1 etex,B);
+ fi;
labeloffset:=labeloffset/3;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
diff --git a/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex b/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
index f1bdc0307f..871f80d650 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
@@ -1,6 +1,10 @@
%%%%
% Prog de calculs "simples"
%%%%
+\def\filedateProgCalcul{2024/08/04}%
+\def\fileversionProgCalcul{0.1}%
+\message{-- \filedateProgCalcul\space v\fileversionProgCalcul}%
+%
\setKVdefault[ClesProg]{%
Ecart=2em,%
Direct,%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPropor.tex b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
index 1e6526f41b..1c8aba3324 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPropor.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
@@ -1,6 +1,10 @@
%%%
% Proportionnalit\'e
%%%
+\def\filedatePropor{2024/09/04}%
+\def\fileversionPropor{0.1a}%
+\message{-- \filedatePropor\space v\fileversionPropor}%
+%
\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15,Vertical=false,Simple=false,Condense=false}%
\tikzstyle{FlechePropor}=[-stealth]
@@ -201,49 +205,51 @@
\NewDocumentCommand\FlechePCG{mm}{%
\begin{tikzpicture}[remember picture,overlay,node distance=\getstrut\ht]%
- \node[inner sep=0pt] (MilieuH-#1) at ($(ProporG-#1)!0.25!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuH-#2) at ($(ProporG-#2)!0.25!(ProporD-#2)$) {};%
- \node[inner sep=0pt] (MilieuB-#1) at ($(ProporG-#1)!0.75!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuB-#2) at ($(ProporG-#2)!0.75!(ProporD-#2)$) {};%
+ \node[inner sep=0pt] (MilieuH-#1) at ($(ProporH-#1)!\PfCCoeffH!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuH-#2) at ($(ProporH-#2)!\PfCCoeffH!(ProporB-#2)$) {};%
+ \node[inner sep=0pt] (MilieuB-#1) at ($(ProporH-#1)!\PfCCoeffB!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuB-#2) at ($(ProporH-#2)!\PfCCoeffB!(ProporB-#2)$) {};%
\xintifboolexpr{#1<#2}{%
\coordinate[right of=MilieuH-#1] (aux1);%
- \coordinate[right of=MilieuH-#2] (aux2);%
- \coordinate[left of=MilieuB-#1] (aux3);%
+ \coordinate[left of=MilieuH-#2] (aux2);%
+ \coordinate[right of=MilieuB-#1] (aux3);%
\coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=30,in=-30,gray] (aux3) to (aux4);
+ \draw[FlechePropor,gray] (aux4) -- (aux1);
+ \draw[out=-30,in=30,gray] (aux2) to (aux4);
}{%
- \coordinate[right of=MilieuH-#1] (aux1);%
+ \coordinate[left of=MilieuH-#1] (aux1);%
\coordinate[right of=MilieuH-#2] (aux2);%
\coordinate[left of=MilieuB-#1] (aux3);%
- \coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=-30,in=30,gray] (aux3) to (aux4);
+ \coordinate[right of=MilieuB-#2] (aux4);%
+ \draw[FlechePropor,gray] (aux1) -- (aux4);
+ \draw[out=30,in=-30,gray] (aux3) to (aux1);
}%
\draw[gray] (aux2) -- (aux3);
- \draw[FlechePropor,gray] (aux4) -- (aux1);
\end{tikzpicture}%
}%
\NewDocumentCommand\FlechePCD{mm}{%
\begin{tikzpicture}[remember picture,overlay,node distance=\getstrut\ht]%
- \node[inner sep=0pt] (MilieuH-#1) at ($(ProporG-#1)!0.25!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuH-#2) at ($(ProporG-#2)!0.25!(ProporD-#2)$) {};%
- \node[inner sep=0pt] (MilieuB-#1) at ($(ProporG-#1)!0.75!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuB-#2) at ($(ProporG-#2)!0.75!(ProporD-#2)$) {};%
+ \node[inner sep=0pt] (MilieuH-#1) at ($(ProporH-#1)!\PfCCoeffH!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuH-#2) at ($(ProporH-#2)!\PfCCoeffH!(ProporB-#2)$) {};%
+ \node[inner sep=0pt] (MilieuB-#1) at ($(ProporH-#1)!\PfCCoeffB!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuB-#2) at ($(ProporH-#2)!\PfCCoeffB!(ProporB-#2)$) {};%
\xintifboolexpr{#1<#2}{%
\coordinate[right of=MilieuH-#1] (aux1);%
- \coordinate[right of=MilieuH-#2] (aux2);%
- \coordinate[left of=MilieuB-#1] (aux3);%
+ \coordinate[left of=MilieuH-#2] (aux2);%
+ \coordinate[right of=MilieuB-#1] (aux3);%
\coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=150,in=-150,gray] (aux1) to (aux2);
+ \draw[FlechePropor,gray] (aux3) -- (aux2);
+ \draw[out=-150,in=150,gray] (aux1) to (aux3);
}{%
- \coordinate[right of=MilieuH-#1] (aux1);%
+ \coordinate[left of=MilieuH-#1] (aux1);%
\coordinate[right of=MilieuH-#2] (aux2);%
\coordinate[left of=MilieuB-#1] (aux3);%
- \coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=-150,in=150,gray] (aux1) to (aux2);
+ \coordinate[right of=MilieuB-#2] (aux4);%
+ \draw[FlechePropor,gray] (aux2) -- (aux3);
+ \draw[out=-150,in=150,gray] (aux2) to (aux4);
}%
\draw[gray] (aux4) -- (aux1);
- \draw[FlechePropor,gray] (aux2) -- (aux3);
\end{tikzpicture}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex b/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
index ad9f1b0edb..fc74fea9c5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
@@ -1,6 +1,10 @@
%%%
% Ppt\'es des droites (6eme)
%%%
+\def\filedatePptesDroites{2024/08/04}%
+\def\fileversionPptesDroites{0.1}%
+\message{-- \filedatePptesDroites\space v\fileversionPptesDroites}%
+%
\setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false,FigureSeule=false}
\newcommand\Redaction[4][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex b/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
index 1d8a929939..d51387cd78 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
@@ -1,30 +1,40 @@
%%%
% Puissances 4
%%%
-\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2}%
+\def\filedatePquatre{2024/08/04}%
+\def\fileversionPquatre{0.1}%
+\message{-- \filedatePquatre\space v\fileversionPquatre}%
+%
+\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2,Correction=false}%
\defKV[ClesPQuatre]{Addition=\setKV[ClesPQuatre]{Multiplication=false}}%
\defKV[ClesPQuatre]{Relatif=\setKV[ClesPQuatre]{Entier=false}}%
\defKV[ClesPQuatre]{Puissance=\setKV[ClesPQuatre]{Exposant}}%
\defKV[ClesPQuatre]{Autre=\setKV[ClesPQuatre]{Nombre=false}\setKV[ClesPQuatre]{Libre}}%
\defKV[ClesPQuatre]{Consignes=\setKV[ClesPQuatre]{Texte}}%
+\defKV[ClesPQuatre]{Solution=\setKV[ClesPQuatre]{Correction}\setsepchar{,}\ignoreemptyitems\readlist*\PQuatreListeS{#1}\reademptyitems}%
+\defKV[ClesPQuatre]{Graine=\PfCGraineAlea{#1}}%
\newtoks\toklistePQuatreh%
\newtoks\toklistePQuatrev%
+\newtoks\toklistePQuatres%
\def\UpdatetoksPQuatreh#1\nil{\addtotok\toklistePQuatreh{"#1",}}%
\def\UpdatetoksPQuatrev#1\nil{\addtotok\toklistePQuatrev{"#1",}}%
+\def\UpdatetoksPQuatres#1\nil{\addtotok\toklistePQuatres{"#1",}}%
\NewDocumentCommand\PQuatre{o +m}{%
\useKVdefault[ClesPQuatre]%
\toklistePQuatreh{}%
\toklistePQuatrev{}%
+ \toklistePQuatres{}%
\setKV[ClesPQuatre]{#1}%
\ifboolKV[ClesPQuatre]{Nombre}{%
\ifboolKV[ClesPQuatre]{Exposant}{%
- \def\PQuatreListe{$10^{-10}$,$10^{-9}$,$10^{-8}$,$10^{-7}$,$10^{-6}$,$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{2}$,$10^{3}$,$10^{4}$,$10^{5}$,$10^{6}$,$10^{7}$,$10^{8}$,$10^{9}$,$10^{10}$}%
+ \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
\MelangeListe{\PQuatreListe}{7}%
- \readlist*\PQuatreListeH{\faa}%
+ \ignoreemptyitems\readlist*\PQuatreListeH{\faa}%
\MelangeListe{\PQuatreListe}{7}%
- \readlist*\PQuatreListeV{\faa}%
+ \ignoreemptyitems\readlist*\PQuatreListeV{\faa}%
+ \reademptyitems
\foreachitem\compteur\in\PQuatreListeH{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
\foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
}{%
@@ -39,7 +49,7 @@
\foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
}{%
% On choisit aléatoirement les listes de nombres de -10 à -2 union 2 à 10 en faisant deux listes : horizontale et verticale
- \def\PQuatreListe{$-10$,$-9$,$-8$,$-7$,$-6$,$-5$,$-4$,$-3$,$-2$,2,3,4,5,6,7,8,9,10}%
+ \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
\MelangeListe{\PQuatreListe}{7}%
\readlist*\PQuatreListeH{\faa}%
\MelangeListe{\PQuatreListe}{7}%
@@ -55,6 +65,10 @@
\setsepchar{,}%
\foreachitem\compteur\in\PQuatreListes[1]{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
\foreachitem\compteur\in\PQuatreListes[2]{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
+ % On crée éventuellement la liste des solutions
+ \ifboolKV[ClesPQuatre]{Correction}{%
+ \foreachitem\compteur\in\PQuatreListeS{\expandafter\UpdatetoksPQuatres\compteur\nil}%
+ }{}%
}%
% Une fois les listes construites, on dessine et on place les listes.
\PQuatreGrille{\the\toklistePQuatrev}{\the\toklistePQuatreh}%
@@ -69,10 +83,12 @@
PQEchelle=\useKV[ClesPQuatre]{Echelle};
color PQfond;
PQfond=\useKV[ClesPQuatre]{Couleur};
- boolean PQLibre,PQMultiplication,PQTexte;
+ boolean PQLibre,PQMultiplication,PQTexte,Correction,Exposant;
PQLibre:=\useKV[ClesPQuatre]{Libre};
PQMultiplication=\useKV[ClesPQuatre]{Multiplication};
PQTexte:=\useKV[ClesPQuatre]{Texte};
+ Correction=\useKV[ClesPQuatre]{Correction};
+ Exposant=\useKV[ClesPQuatre]{Exposant};
if PQTexte:
string PQConsignes;
@@ -111,6 +127,12 @@
if PQLibre:
if PQTexte:
label.llft(TEX("\begin{minipage}{"&decimal(PQLargeurUn)&"pt}"&PQConsignes&"\end{minipage}") scaled PQEchelle,A);
+ else:
+ if PQMultiplication:
+ label.llft(TEX("$\times$") scaled PQEchelle,A);
+ else:
+ label.llft(TEX("$+$") scaled PQEchelle,A);
+ fi;
fi;
else:
if PQMultiplication:
@@ -119,24 +141,72 @@
label.llft(TEX("$+$") scaled PQEchelle,A);
fi;
fi;
+ %
+ string Textev[];
+ string Texteh[];
labeloffset:=labeloffset/2;
vardef Vertical(text t)=
n:=0;
for p_=t:
+ if PQLibre:
label.lft(TEX(p_) scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ else:
+ if Exposant:
+ label.lft(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ else:
+ label.lft(TEX("\num{"&p_&"}") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ fi;
+ Textev[n]=p_;
+ fi;
n:=n+1;
endfor;
enddef;
vardef Horizontal(text t)=
n:=0;
for p_=t:
+ if PQLibre:
label.bot(TEX(p_) scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ else:
+ if Exposant:
+ label.bot(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ else:
+ label.bot(TEX("\num{"&p_&"}") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ fi;
+ Texteh[n]=p_;
+ fi;
n:=n+1;
endfor;
enddef;
labeloffset:=labeloffset*4;
Vertical(#1);
Horizontal(#2);
+ % on affiche la solution
+ vardef AfficheSolution(text t)=
+ n:=0;
+ for p_=t:
+ label(TEX(p_),M[n mod nclargeur][n div nchauteur]);
+ n:=n+1;
+ endfor;
+ enddef;
+ if Correction:
+ if PQLibre=false:
+ for k=0 upto (nclargeur-1):
+ for l=0 upto (nchauteur-1):
+ if Exposant:
+ label(TEX("\Large$10^{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}$"),M[k][l]);
+ else:
+ if PQMultiplication:
+ label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"*"&Textev[l]&"}}"),M[k][l]);
+ else:
+ label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}"),M[k][l]);
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ AfficheSolution(\the\toklistePQuatres);
+ fi;
+ fi;
\end{mplibcode}
\else%
\begin{mpost}[mpsettings={Largeur=\useKV[ClesPQuatre]{Largeur};Largeur=\useKV[ClesPQuatre]{Largeur};LargeurUn=\useKV[ClesPQuatre]{LargeurUn};Echelle=\useKV[ClesPQuatre]{Echelle};color fond;fond=\useKV[ClesPQuatre]{Couleur};boolean Libre,Multiplication,Texte;Libre:=\useKV[ClesPQuatre]{Libre};Multiplication=\useKV[ClesPQuatre]{Multiplication};Texte:=\useKV[ClesPQuatre]{Texte};if Texte:string Consignes;Consignes=\useKV[ClesPQuatre]{Consignes};fi;}]
diff --git a/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex b/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
index 7f00ac287e..865982ee35 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
@@ -1,6 +1,10 @@
%%%
% Puzzle Somme Pyramide
%%%
+\def\filedatePuzzleSommePyramide{2024/08/04}%
+\def\fileversionPuzzleSommePyramide{0.1}%
+\message{-- \filedatePuzzleSommePyramide\space v\fileversionPuzzleSommePyramide}%
+%
\setKVdefault[ClesPuzzleP]{Largeur=40pt,Etages=4,Graines=false,Solutions=false,Jeu,EnonceQuestion=false,NbLignes=7}
\defKV[ClesPuzzleP]{Graine=\setKV[ClesPuzzleP]{Graines}}%
\defKV[ClesPuzzleP]{Solution=\setKV[ClesPuzzleP]{Solutions}\setKV[ClesPuzzleP]{Jeu=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex b/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
index bfda696300..983a8b1eb9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
@@ -1,6 +1,10 @@
%%%
% PyraVoca
%%%
+\def\filedatePyraVoca{2024/08/04}%
+\def\fileversionPyraVoca{0.1}%
+\message{-- \filedatePyraVoca\space v\fileversionPyraVoca}%
+%
\newlength{\PfCPyraVocaHauteur}
\setKVdefault[PyraVoca]{Solution=false,Largeur=15pt}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex b/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
index fdd5c7b685..0b00e0e4ac 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
@@ -1,6 +1,10 @@
%%%
% Pyramide de calculs
%%%
+\def\filedatePyraCalc{2024/08/04}%
+\def\fileversionPyraCalc{0.1}%
+\message{-- \filedatePyraCalc\space v\fileversionPyraCalc}%
+%
\newcommand\DessinePyramideNombreMul[1]{%
\ifluatex
\mplibforcehmode
@@ -241,7 +245,7 @@
\fi
}%
-\setKVdefault[ClesPyramide]{Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
+\setKVdefault[ClesPyramide]{ToutesOperations=false,Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
\newtoks\toklistecaseP%
\def\UpdatetoksPyramide#1\nil{\addtotok\toklistecaseP{"#1",}}%
@@ -250,6 +254,9 @@
\NewDocumentCommand\PyramideNombre{o m}{%
\useKVdefault[ClesPyramide]%
\setKV[ClesPyramide]{#1}%
+ \ifboolKV[ClesPyramide]{ToutesOperations}{%
+ \PyramideOp[#1]{#2}%
+ }{%
\ifboolKV[ClesPyramide]{Multiplication}{%
\ifx\bla#2\bla%
\setKV[ClesPyramide]{Vide=true}%
@@ -278,4 +285,302 @@
}{Le nombre d'éléments dans la liste des propositions n'est pas compatible avec le nombre d'étages choisi.}%
\fi%
}%
+}%
+}%
+
+\setKVdefault[PyramideOp]{Rayon=5mm,Graines=false,Etages=5,Solution=false,Relatifs=false,Case=-1}
+\defKV[PyramideOp]{Graine=\setKV[PyramideOp]{Graines}}
+\defKV[PyramideOp]{CouleurSolution=\setKV[PyramideOp]{Solution}}
+
+\NewDocumentCommand\PyramideOp{om}{%
+ \useKVdefault[PyramideOp]%
+ \setKV[PyramideOp]{#1}%
+ \ifboolKV[PyramideOp]{Relatifs}{%
+ \BuildPyramideOpRelatifs{#2}%
+ }{%
+ \BuildPyramideOp{#2}%
+ }%
+}%
+
+\NewDocumentCommand\BuildPyramideOp{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ Etages=\useKV[PyramideOp]{Etages};
+ Rayon=\useKV[PyramideOp]{Rayon};
+ Case=\useKV[PyramideOp]{Case};
+
+ boolean Graines,Solution,Allume[][];
+
+ Graines=\useKV[PyramideOp]{Graines};
+ if Graines:
+ randomseed:=\useKV[PyramideOp]{Graine};
+ fi;
+
+ Solution=\useKV[PyramideOp]{Solution};
+ if Solution:
+ color CouleurSolution;
+ CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+ fi;
+
+ vardef ChoixOperation(expr Nba,Nbb)=
+ if (Nba<Nbb) or (Nba=Nbb):
+ if Nba*Nbb>200:
+ ChoixOp:=ceiling(uniformdeviate(1));
+ else:
+ ChoixOp:=ceiling(uniformdeviate(2));
+ fi;
+ else:
+ if (Nba mod Nbb)<>0:
+ if Nba*Nbb>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=3;
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(3));
+ fi;
+ else:
+ if Nba*Nbb>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=ceiling(2+uniformdeviate(2));
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(4));
+ fi;
+ fi;
+ fi;
+ enddef;
+
+ numeric Nb[][],ChoixOp[][];
+
+ pair M[][],N[][];
+
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ Allume[k][l]=false;
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ endfor;
+ endfor;
+
+ n:=0;
+
+ for p_=#1:
+ Nb[0][n]=p_;
+ if n=Case:
+ if n<Etages-1:
+ Allume[1][n]:=true;
+ else:
+ Allume[1][n-1]:=true;
+ fi;
+ else:
+ Allume[0][n]:=true;
+ fi;
+ n:=n+1;
+ endfor;
+
+ string Op[][];
+
+ % Détermination des opérations et des valeurs à indiquer.
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-2-k:
+ ChoixOperation(Nb[k][l],Nb[k][l+1]);
+ if ChoixOp=1:
+ Op[k][l]="$+$";
+ Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+ elseif ChoixOp=2:
+ Op[k][l]="$\times$";
+ Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+ elseif ChoixOp=3:
+ Op[k][l]="$\_$";
+ Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+ elseif ChoixOp=4:
+ Op[k][l]="$\div$";
+ Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+ fi;
+ endfor;
+ endfor;
+ %Affichage
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ if Allume[k][l]=false:
+ if Solution:
+ fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+ label(decimal(Nb[k][l]),M[k][l]);
+ fi;
+ else:
+ label(decimal(Nb[k][l]),M[k][l]);
+ fi;
+ trace cercles(M[k][l],Rayon);
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ fill cercles(N[k][l],2mm) withcolor 0.8white;
+ trace cercles(N[k][l],2mm);
+ label(TEX(Op[k][l]),N[k][l]);
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
+}
+
+\NewDocumentCommand\BuildPyramideOpRelatifs{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ Etages=\useKV[PyramideOp]{Etages};
+ Rayon=\useKV[PyramideOp]{Rayon};
+ Case=\useKV[PyramideOp]{Case};
+
+ boolean Graines,Solution,Allume[][];
+
+ Graines=\useKV[PyramideOp]{Graines};
+ if Graines:
+ randomseed:=\useKV[PyramideOp]{Graine};
+ fi;
+
+ Solution=\useKV[PyramideOp]{Solution};
+ if Solution:
+ color CouleurSolution;
+ CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+ fi;
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ vardef ChoixOperation(expr Nba,Nbb)=
+ if (Nba=Nbb):
+ if Nba*Nbb>200:
+ ChoixOp:=ceiling(uniformdeviate(1));
+ else:
+ ChoixOp:=ceiling(uniformdeviate(2));
+ fi;
+ elseif (Nba+Nbb=0):
+ if abs(Nba*Nbb)>200:
+ ChoixOp:=3;
+ else:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=2;
+ else:
+ ChoixOp:=3;
+ fi;
+ fi;
+ else:
+ if (abs(Nba) mod abs(Nbb))<>0:
+ if abs(Nba*Nbb)>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=3;
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(3));
+ fi;
+ else:
+ if abs(Nba*Nbb)>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=ceiling(2+uniformdeviate(2));
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(4));
+ fi;
+ fi;
+ fi;
+ enddef;
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ numeric Nb[][],ChoixOp[][];
+
+ pair M[][],N[][];
+
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ Allume[k][l]=false;
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ endfor;
+ endfor;
+
+ n:=0;
+
+ for p_=#1:
+ Nb[0][n]=p_;
+ if n=Case:
+ if n<Etages-1:
+ Allume[1][n]:=true;
+ else:
+ Allume[1][n-1]:=true;
+ fi;
+ else:
+ Allume[0][n]:=true;
+ fi;
+ n:=n+1;
+ endfor;
+
+ string Op[][];
+
+ % Détermination des opérations et des valeurs à indiquer.
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-2-k:
+ ChoixOperation(Nb[k][l],Nb[k][l+1]);
+ if ChoixOp=1:
+ Op[k][l]="$+$";
+ Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+ elseif ChoixOp=2:
+ Op[k][l]="$\times$";
+ Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+ elseif ChoixOp=3:
+ Op[k][l]="$\_$";
+ Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+ elseif ChoixOp=4:
+ Op[k][l]="$\div$";
+ Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+ fi;
+ endfor;
+ endfor;
+ %Affichage
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ if Allume[k][l]=false:
+ if Solution:
+ fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+ label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+ fi;
+ else:
+ label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+ fi;
+ trace cercles(M[k][l],Rayon);
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ fill cercles(N[k][l],2mm) withcolor 0.8white;
+ trace cercles(N[k][l],2mm);
+ label(TEX(Op[k][l]),N[k][l]);
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
index 5c922d98b0..f5c95d91e4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
@@ -1,6 +1,10 @@
%%%
% Le th\'eor\`eme de Pythagore
%%%
+\def\filedatePythagore{2024/08/04}%
+\def\fileversionPythagore{0.1}%
+\message{-- \filedatePythagore\space v\fileversionPythagore}%
+%
\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,Perso=false,AllPerso=false,SansMots=false,Decalage=5mm,ModeleCouleur=5}%
\defKV[ClesPythagore]{ValeurA=\setKV[ClesPythagore]{EnchaineA}}%
\defKV[ClesPythagore]{ValeurB=\setKV[ClesPythagore]{EnchaineB}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex b/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
index 8edee39f16..5bcf626ddc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
@@ -1,6 +1,10 @@
%%%
% Questions Flash
%%%
+\def\filedateQFlash{2024/08/04}%
+\def\fileversionQFlash{0.1}%
+\message{-- \filedateQFlash\space v\fileversionQFlash}%
+%
\tcbset{Expression/.style={colback=white,valign=center,left=0mm,right=0mm,top=1mm,bottom=1mm,colframe=white}}%
\tcbset{ExpressionSerie1/.style={colback=\useKV[ClesFlash]{Couleur1},left=0mm,right=0mm,top=1mm,bottom=1mm}}%
\tcbset{ExpressionSerie2/.style={colback=\useKV[ClesFlash]{Couleur2},left=0mm,right=0mm,top=1mm,bottom=1mm}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
index aaf9a67f20..8aee438e62 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
@@ -1,6 +1,10 @@
%%%
% R\'eponses \`a relier
%%%
+\def\filedateQRelier{2024/08/04}%
+\def\fileversionQRelier{0.1}%
+\message{-- \filedateQRelier\space v\fileversionQRelier}%
+%
\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black}%
\defKV[ClesRelie]{Graine=\PfCGraineAlea{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex b/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
index aa896d1185..119b5d0944 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
@@ -1,6 +1,10 @@
%%%
% Qui suis-je
%%%
+\def\filedateQsuisuisje{2024/08/04}%
+\def\fileversionQsuisuisje{0.1}%
+\message{-- \filedateQsuisuisje\space v\fileversionQsuisuisje}%
+%
\setKVdefault[Quisuisje]{Solution=false,Largeur=5mm,Colonnes=5,CodePerso=false,TexteA=Lettre,TexteB=R\'esultat du calcul}%
\newcommand\QuisuisjeEnonce{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRLE.tex b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
index a8f035a577..8fabde9116 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRLE.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
@@ -1,6 +1,10 @@
%%%
% Codage RLE
%%%
+\def\filedateRLE{2024/08/04}%
+\def\fileversionRLE{0.1}%
+\message{-- \filedateRLE\space v\fileversionRLE}%
+%
\setKVdefault[RLE]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
\newtoks\toklisterle
diff --git a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
index 1c48ab8efc..ca58c321fd 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
@@ -1,6 +1,10 @@
%%%
% Rangement des nombres
%%%
+\def\filedateRgtNb{2024/08/04}%
+\def\fileversionRgtNb{0.1}%
+\message{-- \filedateRgtNb\space v\fileversionRgtNb}%
+%
\setKVdefault[ClesRgt]{Croissant,Decroissant=false,Strict,Fraction=false,Details=false,Seul=false}%
\dtlexpandnewvalue%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRapido.tex b/macros/latex/contrib/profcollege/latex/PfCRapido.tex
index fa3a16bf7e..cb24c2b404 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRapido.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRapido.tex
@@ -1,6 +1,10 @@
%%%
% Rapido
%%%
+\def\filedateRapido{2024/08/04}%
+\def\fileversionRapido{0.1}%
+\message{-- \filedateRapido\space v\fileversionRapido}%
+%
%% D'après https://www.facebook.com/groups/994675223903586/user/100017057226847
%% et une programmation de Laurent Lassale-Carrere
\newcounter{PfCnexo}
diff --git a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
index c2a4d95954..1d204baf90 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
@@ -1,6 +1,10 @@
%%%
% Formules
%%%
+\def\filedateRapFormules{2024/08/04}%
+\def\fileversionRapFormules{0.1}%
+\message{-- \filedateRapFormules\space v\fileversionRapFormules}%
+%
\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white,EchelleEspace=70,Echelle=1cm}
\def\MPFigureCarreCode{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex b/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
index 371688f120..f99ced507f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
@@ -1,6 +1,10 @@
%%%
% Logos Recyclage
%%%
+\def\filedateRecyclage{2024/08/04}%
+\def\fileversionRecyclage{0.1}%
+\message{-- \filedateRecyclage\space v\fileversionRecyclage}%
+%
\setKVdefault[Recyclage]{Ticket,Papier=false,Verre=false,Bouteille=false,Carton=false,Couleurs}%
\defKV[Recyclage]{Couleur=\setKV[Recyclage]{Couleurs=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
index 23e7bd2775..d2dec50817 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
@@ -1,6 +1,10 @@
%%%
% Reperage
%%%
+\def\filedateReperage{2024/08/04}%
+\def\fileversionReperage{0.1}%
+\message{-- \filedateReperage\space v\fileversionReperage}%
+%
\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageUnites=true,MarquePrimaire=true,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,ValeurMiny=-4000,ValeurMaxy=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp",Niveaux=false,Decale=false,Tiret=false,Cadre=false,ModeleCouleur=5,EchelleCroix=1,CouleurCroix=black}
\defKV[ClesReperage]{Traces=\setKV[ClesReperage]{Code}}%
\defKV[ClesReperage]{Niveau=\setKV[ClesReperage]{Etages=#1}\setKV[ClesReperage]{Niveaux}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
index 390c1a9caa..47ed10c376 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
@@ -1,7 +1,11 @@
%%%
% Diff\'erentes représentations graphiques
%%%
-\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false}%
+\def\filedateRepGraph{2024/08/20}%
+\def\fileversionRepGraph{0.1a}%
+\message{-- \filedateRepGraph\space v\fileversionRepGraph}%
+%
+\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false,StyleTrace=0,Date=false}%
\defKV[TraceG]{Traces=\setKV[TraceG]{Code}}%
\defKV[TraceG]{LabelX=\setKV[TraceG]{LegendeX}}%
\defKV[TraceG]{LabelY=\setKV[TraceG]{LegendeY}}%
@@ -35,6 +39,8 @@
y.u=1cm/\useKV[TraceG]{Ystep};
grillex=\useKV[TraceG]{PasGrilleX};
grilley=\useKV[TraceG]{PasGrilleY};
+ pasgradx=\useKV[TraceG]{PasGradX};
+ pasgrady=\useKV[TraceG]{PasGradY};
pos=\useKV[TraceG]{LabelC};
marque_p:=str \useKV[TraceG]{Marque};
@@ -49,6 +55,9 @@
LegendeX:=\useKV[TraceG]{LegendeX};
LegendeY:=\useKV[TraceG]{LegendeY};
+ boolean Date;
+ Date=\useKV[TraceG]{Date};
+
boolean Relie;
Relie=\useKV[TraceG]{Relie};
@@ -73,12 +82,16 @@
fi;
if Graduations:
- for k=0 step grillex until (xmax-xmin):
+ for k=0 step pasgradx until (xmax-xmin):
trace ((0,-0.5mm)--(0,0.5mm)) shifted ((k*x.u,0) shifted Origine) withpen pencircle scaled1.25;
+ if Date:
+ label.bot(TEX(decimal(xmin+k)),(k*x.u,0) shifted Origine);
+ else:
label.bot(TEX("\num{"&decimal(xmin+k)&"}"),(k*x.u,0) shifted Origine);
+ fi;
endfor;
label.ulft(TEX("\num{"&decimal(ymin)&"}"),(0,0) shifted Origine);
- for k=grilley step grilley until (ymax-ymin):
+ for k=pasgrady step pasgrady until (ymax-ymin):
trace ((-0.5mm,0)--(0.5mm,0)) shifted ((0,k*y.u) shifted Origine) withpen pencircle scaled1.25;
label.lft(TEX("\num{"&decimal(ymin+k)&"}"),(0,k*y.u) shifted Origine);
endfor;
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
index 9ab7b24341..15f6919131 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
@@ -1,6 +1,10 @@
%%%
% Représenter un entier dans une base
%%%
+\def\filedateRepEntier{2024/08/04}%
+\def\fileversionRepEntier{0.1}%
+\message{-- \filedateRepEntier\space v\fileversionRepEntier}%
+%
\setKVdefault[ClesRBase]{Base=10,Echelle=1,Unite=false,Compact=false,Impression=false,ListeCouleurs={Tomato,LightSteelBlue,LightGreen,Cornsilk}}%
\newcommand\RepresenterEntier[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
index 6660693348..2beb3ee5ed 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
@@ -1,7 +1,11 @@
%%%
% Fractions
%%%
-\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
+\def\filedateRepFrac{2024/08/30}%
+\def\fileversionRepFrac{0.1a}%
+\message{-- \filedateRepFrac\space v\fileversionRepFrac}%
+%
+\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1,Aleatoire=false}
\def\MPFractionEprouvetteCode{%
Hauteur=\useKV[ClesFraction]{Longueur};
@@ -80,6 +84,7 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ % Pas d'aléa ici : l'eau ne peut pas être en lévitation :)
\MPFractionEprouvetteCode
trace eprouvette(#2,#1);
\end{mplibcode}
@@ -90,6 +95,107 @@
\fi
}
+\def\MPFractionRegulierCodeAlea{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Cotes=\useKV[ClesFraction]{Cotes};
+ color ColPolyReg;
+ ColPolyReg=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ pair O,A[],B[];
+ O=u*(0,0);
+ path cc,cd;
+ cc=cercles(O,Rayon);
+ for k=0 upto Cotes:
+ A[k]=pointarc(cc,k*(360/Cotes));
+ endfor;
+ cd=polygone(A0 for k=1 upto Cotes-1:,A[k] endfor);
+ path part[];
+ vardef FractionPolyReg(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=point(k*(Cotes/deno)) of cd;
+ dotlabel("",B[k]);
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=O--B[k] for l=1 upto Cotes-1:if (B[k]--B[k+1]) intersectiontimes (O--A[l])<>(-1,-1):--A[l] fi endfor --B[k+1]--cycle;%O--arccercle(B[k],B[k+1],O)--cycle;
+ endfor;
+ m=(nume div deno);
+ if (nume mod deno)=0:m:=m-1; fi;
+ picture RetourFraction;
+ RetourFraction=image(%
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(l*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(l*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(m*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(m*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ draw cd shifted(l*(2*Rayon+0.5cm,0));
+ for k=0 upto (deno-1):
+ draw segment(O,B[k]) shifted(l*(2*Rayon+0.5cm,0));
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ RetourFraction
+ enddef;
+}%
+
\def\MPFractionRegulierCode{%
Rayon=\useKV[ClesFraction]{Rayon};
Cotes=\useKV[ClesFraction]{Cotes};
@@ -168,7 +274,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionRegulierCodeAlea;
+ else:
\MPFractionRegulierCode
+ fi;
trace FractionPolyReg(#1,#2);
\end{mplibcode}
\else
@@ -178,6 +290,122 @@
\fi
}%
+\def\MPFractionTriangleCodeAlea{%
+ Longueur:=\useKV[ClesFraction]{Longueur};
+ nbparts:=\useKV[ClesFraction]{Parts};
+ color ColTriangle;
+ ColTriangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ nbtriangle=0;
+ %
+ vardef Ligne(expr longueur)=
+ for k=0 upto 2*(longueur-1):
+ nbtriangle:=nbtriangle+1;
+ if (k mod 2)=0:
+ M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ else:
+ M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ fi;
+ endfor;
+ enddef;
+ %
+ pair A,B,C;
+ A=u*(0.5,0.5);
+ B-A=(Longueur,0);
+ C=rotation(B,A,60);
+ %
+ path Tria,Trir,M[];
+ Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ %
+ for k=nbparts downto 1:
+ Ligne(k);
+ endfor;
+ %
+ picture FondTriangle;
+ FondTriangle=image(
+ for k=1 upto nbtriangle:
+ trace M[k];
+ endfor;
+ );
+ %
+ vardef FractionTriangle(expr nume,deno)=
+ m:=nume div deno;
+ if (nume mod deno)=0:
+ m:=m-1;
+ fi;
+ picture RetourFraction;
+ RetourFraction=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=1 upto nbtriangle:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(l*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(l*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=1 upto nbtriangle:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(m*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(m*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(m*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(m*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ trace FondTriangle shifted(l*(Longueur+1cm,0));
+ endfor;
+ );
+ RetourFraction
+enddef;
+}%
+
\def\MPFractionTriangleCode{%
Longueur:=\useKV[ClesFraction]{Longueur};
nbparts:=\useKV[ClesFraction]{Parts};
@@ -241,7 +469,7 @@
trace hachurage(polygone(A,B,C) shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
drawoptions(withpen pencircle scaled Epaisseur);
else:
- remplis polygone(A,B,C) withcolor ColRectangle;
+ remplis polygone(A,B,C) withcolor ColTriangle;
fi;
fi;
for k=1 upto nbparts:
@@ -260,7 +488,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- \MPFractionTriangleCode
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionTriangleCodeAlea;
+ else:
+ \MPFractionTriangleCode;
+ fi;
draw FractionTriangle(#1,#2);
\end{mplibcode}
\else
@@ -270,6 +504,117 @@
\fi
}%
+\def\MPFractionRectangleCodeAlea{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ Largeur=\useKV[ClesFraction]{Largeur};
+ color ColRectangle;
+ ColRectangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ Multiple=\useKV[ClesFraction]{Multiple};
+ %
+ pair A,B,C,D,M[],N[],R[],S[];
+ A=(0,0);
+ B-A=(Longueur,0);
+ C-B=(0,Largeur);
+ D-C=A-B;
+ vardef FractionRectangle(expr nume,deno)=
+ m=nume div deno;
+ if (nume mod deno)=0:
+ m:=m-1;
+ fi;
+ numeric parts;
+ parts=(deno div Multiple);
+ for k=0 upto parts:
+ M[k]=(k/parts)[A,B];
+ N[k]=(k/parts)[D,C];
+ endfor;
+ if Multiple>1:
+ for k=0 upto Multiple:
+ R[k]=(k/Multiple)[A,D];
+ S[k]=(k/Multiple)[B,C];
+ endfor;
+ fi;
+ picture FondRectangle;
+ FondRectangle=image(%
+ path case[];
+ for k=0 upto Multiple-1:
+ for l=0 step Multiple until (deno-1):
+ case[k*(deno div Multiple)+(l div Multiple)]=(unitsquare xscaled (Multiple*abs(A-B)/deno) yscaled (abs(D-A)/Multiple)) shifted (((l/deno)[A,B]-A)+((k/Multiple)[A,D]-A));
+ trace case[k*(deno div Multiple)+(l div Multiple)];
+ endfor;
+ endfor;
+ );
+ picture RetourRectangle;
+ RetourRectangle=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(l*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(l*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(l*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(l*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(m*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(m*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(m*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(m*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ for l=0 upto m:
+ trace FondRectangle shifted(l*(Longueur+1cm,0));
+ endfor;
+ );
+ RetourRectangle
+ enddef;
+}%
+
\def\MPFractionRectangleCode{%
Longueur=\useKV[ClesFraction]{Longueur};
Largeur=\useKV[ClesFraction]{Largeur};
@@ -378,7 +723,13 @@
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}
- \MPFractionRectangleCode
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionRectangleCodeAlea;
+ else:
+ \MPFractionRectangleCode;
+ fi;
trace FractionRectangle(#1,#2);
\end{mplibcode}
\else%
@@ -388,6 +739,101 @@
\fi%
}%
+\def\MPFractionDisqueCodeAlea{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ color ColDisque;
+ ColDisque=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Reponse:=\useKV[ClesFraction]{Reponse};
+ %
+ pair A,B[];
+ A=(0,0);
+ path cc,part[];
+ cc=cercles(A,Rayon);
+ vardef FractionDisque(expr nume,deno)=
+ for k=0 upto deno+1:
+ B[k]=pointarc(cc,(360/deno)*k);
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=A--arccercle(B[k],B[k+1],A)--cycle;
+ endfor;
+ m=(nume div deno);
+ if (nume mod deno)=0:m:=m-1; fi;
+ picture RetourFraction;
+ RetourFraction=image(%
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(l*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(l*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(m*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(m*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ draw cc shifted(l*(2*Rayon+1cm,0));
+ for k=0 upto (deno-1):
+ draw segment(A,B[k]) shifted(l*(2*Rayon+1cm,0));
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ RetourFraction
+ enddef;
+}%
+
\def\MPFractionDisqueCode{%
Rayon=\useKV[ClesFraction]{Rayon};
Epaisseur=\useKV[ClesFraction]{Epaisseur};
@@ -444,7 +890,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionDisqueCodeAlea;
+ else:
\MPFractionDisqueCode
+ fi;
trace FractionDisque(#1,#2);
\end{mplibcode}
\else
@@ -454,6 +906,115 @@
\fi
}
+\def\MPFractionSegmentCodeAlea{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ color ColSegment;
+ ColSegment=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ %
+ pair A,C,B[];
+ A=(0,0);
+ C-A=(Longueur,0);
+ %
+ path part[];
+ %
+ vardef FractionSegment(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=(k/deno)[A,C];
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=polygone(B[k]+u*(0,-0.15),B[k+1]+u*(0,-0.15),B[k+1]+u*(0,0.15),B[k]+u*(0,0.15));
+ endfor;
+ m=nume div deno;
+ picture RetourFraction;
+ RetourFraction=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ % Reponse
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(l*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(l*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(m*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ else:
+ draw (segment(B[k],B[k+1]) shifted(m*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ %fin Reponse
+ if Hachures:drawoptions(withpen pencircle scaled Epaisseur);fi;
+ % draw (segment(B[0],B[nume mod deno]) shifted(m*(Longueur+1cm,0)));
+ for l=0 upto m:
+ draw segment(A,C) shifted(l*(Longueur+1cm,0));
+ endfor;
+ marque_p:="tiretv";
+ for l=0 upto m-1:
+ for k=0 upto deno:
+ pointe(B[k] shifted(l*(Longueur+1cm,0)));
+ endfor;
+ endfor;
+ if (nume mod deno)<>0:
+ for k=0 upto deno:
+ pointe(B[k] shifted(m*(Longueur+1cm,0)));
+ endfor;
+ fi;
+ );
+ RetourFraction
+ enddef;
+}
+
\def\MPFractionSegmentCode{%
Longueur=\useKV[ClesFraction]{Longueur};
color ColSegment;
@@ -525,7 +1086,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionSegmentCodeAlea;
+ else:
\MPFractionSegmentCode
+ fi;
trace FractionSegment(#1,#2);
\end{mplibcode}
\else
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
index 0e6162aa76..9b1bcaa8b1 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
@@ -1,9 +1,15 @@
%%%
% Tableur
%%%
-\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt}%
+\def\filedateRepTab{2024/08/21}%
+\def\fileversionRepTab{0.1a}%
+\message{-- \filedateRepTab\space v\fileversionRepTab}%
+%
+\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt,Apres=false,ApresBandeau=false}%
%Idee de P. Nuns
\defKV[Tableur]{Couleur=\setKV[Tableur]{Selection}}%
+\defKV[Tableur]{CodeAfter=\setKV[Tableur]{Apres}}%
+\defKV[Tableur]{CodeAfterBandeau=\setKV[Tableur]{ApresBandeau}}%
%
%Bas\'e sur un code de Christian T\'ell\'ech\'ea.
@@ -20,6 +26,9 @@
\ifremain@lines#2\\\@nil{\addtot@b&\subst@eol#2\@nil}{\addtot@b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}==0 || \useKV[Tableur]{Colonne}==0}{}{%
\tikz\node at (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}}) {\tiny$\blacksquare$};%
}%
+ \ifboolKV[Tableur]{Apres}{%
+ \useKV[Tableur]{CodeAfter}%
+ }{}%
\end{NiceTabular}}}}%
\long\def\collectcp@body#1\end{\subst@eol#1\@nil\end}%
@@ -103,6 +112,10 @@
\ifboolKV[Tableur]{Bandeau}{%
\begin{NiceTabular}{p{\PfCTableurLargeur}p{10pt}p{50pt}p{\PfCLongInter}}%
\Block[draw,l]{}{\useKV[Tableur]{Cellule}}&\Block[draw]{}{\scriptsize$\blacktriangledown$}&\Block{}{$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$}&\Block[draw]{}{\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$}\\
+ \CodeAfter
+ \ifboolKV[Tableur]{ApresBandeau}{%
+ \useKV[Tableur]{CodeAfterBandeau}%
+ }{}%
\end{NiceTabular}%
\nopagebreak%
\\%
diff --git a/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex b/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
index 996e33c026..2ccc0748f6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
@@ -1,6 +1,10 @@
%%%
% Twitter
%%%
+\def\filedateReseaux{2024/08/04}%
+\def\fileversionReseaux{0.1}%
+\message{-- \filedateReseaux\space v\fileversionReseaux}%
+%
\setKVdefault[Twitter]{Largeur=0.95\linewidth,Auteur=Christophe,Date=\today,Url=ViveLaTeX,EchelleLogo=0.035,Logo=DrStrange,Publie=false}%
\NewDocumentEnvironment{Twitter}{o+b}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
index a5ce8ebf63..795a79e833 100644
--- a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
@@ -1,6 +1,10 @@
%%%
% Equations
%%%
+\def\filedateEquation{2024/08/04}%
+\def\fileversionEquation{0.1}%
+\message{-- \filedateEquation\space v\fileversionEquation}%
+%
\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,ModeleBarre=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false}
\newcommand\rightcomment[4]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
index 9fc7f3446d..26a78fcc2f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
@@ -1,6 +1,10 @@
%%%
% Ronde infernale
%%%
+\def\filedateRondeI{2024/08/04}%
+\def\fileversionRondeI{0.1}%
+\message{-- \filedateRondeI\space v\fileversionRondeI}%
+%
\newcommand\TestNombrePremier[1]{%
% #1 le nombre \`a tester
\newcount\anp\newcount\bnp\newcount\cnp%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRose.tex b/macros/latex/contrib/profcollege/latex/PfCRose.tex
index d6059cdd7e..3798a26f74 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRose.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRose.tex
@@ -1,6 +1,10 @@
%%%
% Rose
%%%
+\def\filedateRose{2024/08/04}%
+\def\fileversionRose{0.1}%
+\message{-- \filedateRose\space v\fileversionRose}%
+%
\setKVdefault[ClesRose]{Vide=false,Couleur=white,Produits=false,Solution=false,Rayon=2cm,Petales=7,Aide=false,FacteurMin=2,FacteurMax=10,ProduitVide=false,CaseVide=false,Polygone=false,Nom=Rose1,Creation=false,Addition=false,Melange=false,CDot=false}%
\defKV[ClesRose]{LesNombres=\setKV[ClesRose]{Creation}}%
\defKV[ClesRose]{LesProduits=\setKV[ClesRose]{Creation}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCScratch.tex b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
index 0315d8d3a8..778ee15174 100644
--- a/macros/latex/contrib/profcollege/latex/PfCScratch.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
@@ -1,6 +1,10 @@
%%%%
% Scratch
%%%%
+\def\filedateScratch{2024/08/04}%
+\def\fileversionScratch{0.1}%
+\message{-- \filedateScratch\space v\fileversionScratch}%
+%
\newlength{\longbarreheight}
\setlength{\longbarreheight}{2.1ex+3pt}
diff --git a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
index cd38bd90a2..e4352613d7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
@@ -1,10 +1,14 @@
%%%
% Serpent
%%%
+\def\filedateSerpent{2024/08/04}%
+\def\fileversionSerpent{0.1}%
+\message{-- \filedateSerpent\space v\fileversionSerpent}%
+%
\newtoks\tokListeSerpentPerso{}%
\def\UpdatetoksSerpent#1\nil{\addtotok\tokListeSerpentPerso{"#1"}}%
-\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false}
+\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false,Direct=false,Disque=false,Spirale=false}
\defKV[Serpent]{CouleurSolution=\setKV[Serpent]{Solution}}%
\defKV[Serpent]{Perso=\setKV[Serpent]{Creation}\xdef\PfCFooCheminSerpent{#1}}%+Liste des déplacements
\defKV[Serpent]{Graine=\setKV[Serpent]{Graines}}%
@@ -19,7 +23,14 @@
\BuildSerpent{\the\tokListeSerpentPerso}%
\reademptyitems%
}{%
- \BuildSerpent{}%
+ \ifboolKV[Serpent]{Direct}{%
+ \BuildSerpentDirect{}%
+ }{\ifboolKV[Serpent]{Spirale}{%
+ %\BuildSerpentSpirale{}%
+ }{%
+ \BuildSerpent{}%
+ }%
+ }%
}%
}%
@@ -29,10 +40,11 @@
\mplibnumbersystem{double}%
\begin{mplibcode}
%
- boolean Solution,Perso,Graines;
+ boolean Solution,Perso,Graines,Disque;
Solution=\useKV[Serpent]{Solution};
Perso=\useKV[Serpent]{Creation};
Graines=\useKV[Serpent]{Graines};
+ Disque=\useKV[Serpent]{Disque};
%
if Graines:
randomseed:=\useKV[Serpent]{Graine};
@@ -210,7 +222,11 @@
fi;
fi;
for k=1 upto LongueurChemin:
+ if Disque:
+ trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+ else:
trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+ fi;
endfor;
for k=1 upto LongueurChemin-1:
drawarrow (center (unitsquare scaled (2*PasQuad)) shifted N[k])--(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
@@ -363,4 +379,193 @@
\end{mplibcode}
\mplibnumbersystem{scaled}%
\fi
+}%
+
+\NewDocumentCommand\BuildSerpentDirect{m}{%
+ \ifluatex%
+ \mplibforcehmode%
+ \mplibnumbersystem{double}%
+ \begin{mplibcode}
+ %
+ boolean Solution,Graines,Disque;
+ Solution=\useKV[Serpent]{Solution};
+ Graines=\useKV[Serpent]{Graines};
+ Disque=\useKV[Serpent]{Disque};
+ %
+ if Graines:
+ randomseed:=\useKV[Serpent]{Graine};
+ fi;
+ %
+ color CoulSolution;
+ if Solution:
+ CoulSolution=\useKV[Serpent]{CouleurSolution};
+ fi;
+ %
+ numeric LongueurChemin,Depart;
+ LongueurChemin=\useKV[Serpent]{Cases};
+ ValeurMin=\useKV[Serpent]{ValeurMin};
+ ValeurMax=\useKV[Serpent]{ValeurMax};
+ CaseDepart=\useKV[Serpent]{Case};
+ Depart=ValeurMin+floor(uniformdeviate(ValeurMax-ValeurMin+1));
+ %
+ PasQuad=5mm;%\useKV[Serpent]{PasQuad};
+ %
+ pair N[];
+ N[1]:=4*PasQuad*(0,0);
+ for k=2 upto LongueurChemin:
+ N[k]=N[k-1]+4*PasQuad*(1,0);
+ endfor;
+ % Tracage
+ if CaseDepart=1:
+ label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1)));
+ else:
+ if Solution:
+ label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ fi;
+ for k=1 upto LongueurChemin:
+ if Disque:
+ trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+ else:
+ trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+ fi;
+ endfor;
+ %
+ path cheminfleche[];
+ path CheminFlecheBase;
+ CheminFlecheBase=(0,2*PasQuad){dir45}..(4*PasQuad,2*PasQuad);
+ for k=1 upto LongueurChemin-1:
+ cheminfleche[k]=CheminFlecheBase shifted (N[k]+(PasQuad,0));
+ %cheminfleche[k]=(center (unitsquare scaled (2*PasQuad)) shifted N[k]){dir45}..(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
+ drawarrow cheminfleche[k];
+ endfor;
+ %%drawoptions();
+ boolean PremierChiffre;
+ PremierChiffre=true;
+ %% Test Premier
+ vardef TestPremier(expr nombre)=
+ nbdiviseur:=0;
+ nbdiv:=0;
+ for k=2 upto nombre:
+ if (nombre mod k)=0:
+ nbdiviseur:=nbdiviseur+1;
+ if k<11:
+ nbdiv:=nbdiv+1;
+ Diviseur[nbdiv]:=k;
+ fi;
+ fi;
+ endfor;
+ if nbdiviseur>1:
+ PremierChiffre:=false;
+ else:
+ PremierChiffre:=true;
+ fi;
+ enddef;
+ % Les opérations
+ numeric Chiffre[];
+ pair St[];
+ Chiffre[1]=Depart;
+ %
+ vardef EcrireSomme(expr tt)=
+ Somme:=5+ceiling(uniformdeviate(10));
+ Chiffre[tt]=Chiffre[tt-1]+Somme;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$+"&decimal(Somme)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireProduit(expr tt)=
+ Multiple:=1+ceiling(uniformdeviate(8));
+ Chiffre[tt]=Chiffre[tt-1]*Multiple;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$\PfCSymbolTimes"&decimal(Multiple)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireDifferenceCent(expr tt)=
+ Difference:=ceiling(Chiffre[tt-1]-15+uniformdeviate(10));
+ Chiffre[tt]=Chiffre[tt-1]-Difference;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireDifference(expr tt)=
+ Difference:=if Chiffre[tt-1]<20:1+floor(uniformdeviate(Chiffre[tt-1]-1)) else: 5+ceiling(uniformdeviate(10)) fi;
+ Chiffre[tt]=Chiffre[tt-1]-Difference;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireQuotient(expr tt)=
+ choixdiv:=ceiling(nbdiv);
+ Quotient:=Diviseur[choixdiv];
+ Chiffre[tt]=Chiffre[tt-1] div Quotient;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$\PfCSymbolDiv"&decimal(Quotient)&"$"),St[tt]);
+ enddef;
+ %
+ for k=2 upto LongueurChemin:
+ if (Chiffre[k-1]=1) or (Chiffre[k-1]=0):
+ % On additionne ou on multiplie si c'est un
+ if Chiffre[k-1]=1:
+ alea:=ceiling(uniformdeviate(2));
+ if alea=1:
+ EcrireSomme(k);
+ else:
+ EcrireProduit(k);
+ fi;
+ else:
+ EcrireSomme(k);
+ fi;
+ else:
+ TestPremier(Chiffre[k-1]);
+ if PremierChiffre:
+ if Chiffre[k-1]>100:
+ EcrireDifferenceCent(k);
+ else:
+ alea:=ceiling(uniformdeviate(3));
+ if alea=1:
+ EcrireSomme(k);
+ elseif alea=2:
+ EcrireDifference(k);
+ elseif alea=3:
+ EcrireProduit(k);
+ fi;
+ fi;
+ if k=CaseDepart:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+ elseif Solution:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ else:
+ if Chiffre[k-1]>100:
+ alea:=ceiling(uniformdeviate(2));
+ if alea=1:
+ EcrireDifferenceCent(k);
+ else:
+ EcrireQuotient(k);
+ fi;
+ else:
+ alea:=ceiling(uniformdeviate(4));
+ if alea=1:
+ EcrireSomme(k);
+ elseif alea=2:
+ EcrireDifference(k);
+ elseif alea=3:
+ EcrireProduit(k);
+ elseif alea=4:
+ EcrireQuotient(k);
+ fi;
+ fi;
+ fi;
+ fi;
+ if k=CaseDepart:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+ else:
+ if Solution:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ fi;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}%
+ \fi
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCShikaku.tex b/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
index 04084cadca..8f6616ff3e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
@@ -1,6 +1,10 @@
%%%
% Shikaku
%%%
+\def\filedateShikaku{2024/08/04}%
+\def\fileversionShikaku{0.1}%
+\message{-- \filedateShikaku\space v\fileversionShikaku}%
+%
\newcounter{PfCShikakuNom}
\setcounter{PfCShikakuNom}{0}
diff --git a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
index 94429def36..9fb16f325d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
@@ -1,6 +1,10 @@
%%%
% Simplification
%%%
+\def\filedateSimpFraction{2024/08/13}%
+\def\fileversionSimpFraction{0.1a}%
+\message{-- \filedateSimpFraction\space v\fileversionSimpFraction}%
+%
\makeatletter%by christian Tellechea
% Calcul du PGCD de #1 et #2
\newcount\cnt@a\newcount\cnt@b\newcount\pgcd
@@ -160,7 +164,7 @@
\ifboolKV[ClesSimplification]{Debut}{%
\ensuremath{%
\whiledo{\PfCDivCom>1}{%
- \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+ \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
\xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
\xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
\DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -170,7 +174,7 @@
}{%
\ensuremath{%
\whiledo{\PfCDivCom>1}{%
- \frac{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+ \frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
\xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
\xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
\DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -180,7 +184,7 @@
}%
}%
-\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false}%
+\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false,ACompleter=false}%
\defKV[ClesSimplification]{Nombre=\setKV[ClesSimplification]{Impose}}%
\newcounter{NbFrac}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSolides.tex b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
index 037b80e50f..8ed8899a37 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSolides.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
@@ -1,6 +1,10 @@
%%%
% Solide et sections
%%%
+\def\filedateSolides{2024/08/20}%
+\def\fileversionSolides{0.1a}%
+\message{-- \filedateSolides\space v\fileversionSolides}%
+%
\setKVdefault[ClesSolides]{Nom=cube,Aretes,Sommets,Pointilles,Largeur=1.5,Hauteur=1,Profondeur=0.75,ListeSommets={A,B,C,D,E,F,G,H},Rho=1500,Phi=30,Theta=20,Distance=50,Code=false,Couleur=white,Anglex=0,Arete=1,RayonCone=1,HauteurCone=2,HauteurPrisme=2,SommetsPrisme=6,HauteurPyramide=2,SommetsPyramide=5,Reguliere=false,DecalageSommet={(0,0,0)},RayonCylindre=1,HauteurCylindre=2,RayonSphere=1,AutoLabel=true,Sections=false,CoefSection=0.3,Axes=false,PointsSection={M,N,O,P},RemplisSection=false,ObjetSection={0.5,E,H,0.25,F,G,G,B}}%
\defKV[ClesSolides]{Traces=\setKV[ClesSolides]{Code}}%
\defKV[ClesSolides]{Section=\setKV[ClesSolides]{Sections}}%
@@ -101,6 +105,7 @@
%Fc[101]:=1;Fc[102]:=2;Fc[103]:=6;Fc[104]:=5;
%endfor;
endfor;
+ DefinirSommets(#1);
DessineObjet;
% picture Depart;
% Depart=currentpicture;
@@ -108,6 +113,10 @@
% for k=1 upto 8:
% dotlabel.top(decimal(k),Projette(TS[k]));
% endfor;
+ u:=1cm;
+ if Code:
+ \useKV[ClesSolides]{Traces};
+ fi;
\end{mplibcode}
\mplibnumbersystem{scaled}
\fi
@@ -487,7 +496,6 @@
if Code:
\useKV[ClesSolides]{Traces};
fi;
-
\end{mplibcode}
\mplibnumbersystem{scaled}
\fi
@@ -729,7 +737,7 @@
% trace polygone(MSection1,MSection2,MSection3,MSection4);
color dcer,ccer;
% 1er cote -> ok
- DotLabel("",RetiensDefSection[4]);
+ %DotLabel("",RetiensDefSection[4]);
dcer:=Oeil-RetiensDefSection[4];
ccer:=Normal(RetiensDefSection[4],RetiensDefSection[2],RetiensDefSection[1]);
draw chemin(MSection1,MSection2) if (ProduitScalaire(dcer,ccer)<0):dashed evenly fi;
diff --git a/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex b/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
index df62edfbce..f0a1e12cc9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
@@ -1,6 +1,10 @@
%%%
% Somme des angles
%%%
+\def\filedateSommeAngles{2024/08/04}%
+\def\fileversionSommeAngles{0.1}%
+\message{-- \filedateSommeAngles\space v\fileversionSommeAngles}%
+%
\setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Rectangle=false,Figure=false,FigureSeule=false,Angle=0,Perso=false,Echelle=1cm}%
\def\MPFigureSommeAngle#1#2#3#4#5{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
index 9de4a7afdf..7afe0e55fb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
@@ -1,10 +1,21 @@
%%%
% Squaro
%%%
-\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false}
+\def\filedateSquarO{2024/08/04}%
+\def\fileversionSquarO{0.1}%
+\message{-- \filedateSquarO\space v\fileversionSquarO}%
+%
+\newtoks\tokPfCSquaro%
+\def\UpdatetoksSquaro#1\nil{\addtotok\tokPfCSquaro{#1,}}%
+
+\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false,Persos=false}
\defKV[Squaro]{Graine=\setKV[Squaro]{Graines}}%
+\defKV[Squaro]{Perso=\setKV[Squaro]{Persos}\setsepchar{,}\ignoreemptyitems\readlist*\ListeSquaroPerso{#1}\reademptyitems%
+ \foreachitem\compteur\in\ListeSquaroPerso{\expandafter\UpdatetoksSquaro\compteur\nil}%
+}%
\NewDocumentCommand\SquarO{o}{%
+ \tokPfCSquaro{}%
\useKVdefault[Squaro]%
\setKV[Squaro]{#1}%
\BuildSquaro%
@@ -14,9 +25,10 @@
numeric Longueur,Largeur;
Longueur=\useKV[Squaro]{Longueur};
Largeur=\useKV[Squaro]{Largeur};
- boolean Solution,Graines;
+ boolean Solution,Graines,Persos;
Solution=\useKV[Squaro]{Solution};
Graines=\useKV[Squaro]{Graines};
+ Persos=\useKV[Squaro]{Persos};
if Graines:
randomseed:=\useKV[Squaro]{Graine};
fi;
@@ -26,13 +38,35 @@
p:=0;
pair A[];%centre des carrés.
boolean Allume[][];
-}
+ %
+ if Persos:
+ n:=0;
+ for p_=\the\tokPfCSquaro:
+ n:=n+1;
+ ligne:=(n-1) div (Largeur+2);
+ colonne:=(n-1) mod (Longueur+1);
+ Allume[ligne][colonne]=if p_=1:true else:false fi;
+ endfor;
+ else:
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ m:=uniformdeviate(1);
+ if m<0.5:
+ Allume[k][l]=true;
+ else:
+ Allume[k][l]=false;
+ fi;
+ endfor;
+ endfor;
+ fi;
+}%
\NewDocumentCommand\BuildSquaro{}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
\BuildSquarobase
+ %
for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
@@ -40,21 +74,18 @@
trace (unitsquare scaled u) shifted A[p];
endfor;
endfor;
-
+ %
for k=0 upto Largeur:
for l=0 upto Longueur:
- m:=uniformdeviate(1);
- if m<0.5:
- Allume[k][l]=true;
+ if Allume[k][l]:
fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
else:
- Allume[k][l]=false;
fill cercles(u*(l,-k+1),1mm) withcolor white;
fi;
trace cercles(u*(l,-k+1),1mm);
endfor;
endfor;
-
+ %
for k=0 upto Largeur-1:
for l=0 upto Longueur-1:
Retiens:=0;
@@ -67,29 +98,28 @@
endfor;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={\BuildSquarobase}]
- for k=0 upto Longueur-1:
+ \begin{mpost}[mpsettings={\BuildSquarobase}]
+ %
+ %
+ for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
A[p]=u*(k,-l);
trace (unitsquare scaled u) shifted A[p];
- endfor;
- endfor;
-
- for k=0 upto Largeur:
- for l=0 upto Longueur:
- m:=uniformdeviate(1);
- if m<0.5:
- Allume[k][l]=true;
+ endfor;
+ endfor;
+ %
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ if Allume[k][l]:
fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
else:
- Allume[k][l]=false;
fill cercles(u*(l,-k+1),1mm) withcolor white;
fi;
trace cercles(u*(l,-k+1),1mm);
- endfor;
- endfor;
-
+ endfor;
+ endfor;
+ %
for k=0 upto Largeur-1:
for l=0 upto Longueur-1:
Retiens:=0;
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 98566be426..5d7b786d8e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -1,6 +1,10 @@
%%%
% Statistiques
%%%
+\def\filedateStat{2024/08/04}%
+\def\fileversionStat{0.1}%
+\message{-- \filedateStat\space v\fileversionStat}%
+%
\newcommand\NbDonnees{}%
\newcommand\SommeDonnees{}%
\newcommand\EffectifTotal{}%
@@ -18,7 +22,7 @@ Tableau=false,Stretch=1,Frequence=false,EffectifTotal=false,%
Etendue=false,Moyenne=false,SET=false,ValeurExacte=false,MoyenneA,Somme,Mediane=false,DetailsMediane=false,UneMediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,%
Largeur=1cm,Precision=2,PrecisionF=0,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,Classes=false,TableauVide=false,ECC=false,Coupure=10,CouleurTab=gray!15,Graphique=false,Batons=true,Centre=false,CentreVide=false,Crochets=false,%
% Pour les diags batons
-EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,Date=false,GrandNombrey=false,GrandNombrex=false,PasGrillex=1,PasGrilley=1,%
+EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,Date=false,GrandNombrey=false,GrandNombrex=false,PasGrillex=1,PasGrilley=1,%
% Pour les diags circulaires
Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,ListeHachures={60},LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,ACompleter=false,DebutAngle=0,%on utilisera également la clé CouleurDefaut
%Pour les représentations
@@ -466,7 +470,6 @@ ModeleCouleur=5%
unitex:=\useKV[ClesStat]{Unitex}*cm;
unitey:=\useKV[ClesStat]{Unitey}*cm;
xpartorigine:=\useKV[ClesStat]{Origine};
- AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
boolean Rotation,Lecture,LectureFine,AideLecture,DonneesSup,Reponses,Qualitatif,Tiret,LegendeVide,Retour,GrandNombrex,GrandNombrey,Date,Grille;
GrandNombrex=\useKV[ClesStat]{GrandNombrex};
GrandNombrey=\useKV[ClesStat]{GrandNombrey};
@@ -478,6 +481,11 @@ ModeleCouleur=5%
fi;
Date:=\useKV[ClesStat]{Date};
Rotation=\useKV[ClesStat]{AbscisseRotation};
+ if Rotation:
+ AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+ else:
+ AngleRotation=0;
+ fi;
Lecture:=\useKV[ClesStat]{Lecture};
LectureFine:=\useKV[ClesStat]{LectureFine};
AideLecture:=\useKV[ClesStat]{AideLecture};
diff --git a/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex b/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex
new file mode 100644
index 0000000000..f13fe2fad5
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex
@@ -0,0 +1,62 @@
+%%%
+% Tableau Double Entree
+%%%
+\def\filedateTDE{2024/08/15}%
+\def\fileversionTDE{0.1a}%
+\message{-- \filedateTDE\space v\fileversionTDE}%
+
+\setKVdefault[TDE]{Colonnes=5,Lignes=4,Legende={},LegendesH={B,C,D,Total},LegendesV={1,2,Total},Couleur=Cornsilk,Vide=false,Totaux,Questions=false,Stretch=1}%
+
+\NewDocumentCommand\TableauDoubleEntree{om}{%
+ \useKVdefault[TDE]%
+ \setKV[TDE]{#1}%
+ \xdef\PfCFooH{\useKV[TDE]{LegendesH}}%
+ \xdef\PfCFooV{\useKV[TDE]{LegendesV}}%
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeH{\PfCFooH}%
+ \readlist*\ListeV{\PfCFooV}%
+ \readlist*\ListeDonnees{#2}%
+ \ifboolKV[TDE]{Totaux}{}{%
+ % Vider les lignes du total
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{\ListeVlen-1}}}\do{%
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+ \modulo{\fpeval{##2+(##1-1)*(\ListeHlen-0)}}{\fpeval{\ListeHlen-0}}%
+ \ifnum\remainder=0\relax%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+ \else%
+ \ifnum\fpeval{##2+(##1-1)*(\ListeHlen-0)}=1\relax%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+ \else%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+ \fi%
+ \fi%
+ }%
+ }%
+ % On ajoute la dernière ligne qui est vide
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+ }%
+ % On relit la liste des données.
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeDonnees{\ListeDonneesSansTotauxAv}%
+ \reademptyitems%
+ }%
+ %
+ % Pour vider le tableau, on utilise la clé <Vide>.
+ % On choisit quelques éléments ^^ à écrire
+ \ifboolKV[TDE]{Questions}{%
+ %en réflexion (voir v5)
+ }{}%
+ %
+ \colorlet{PfCColorTDE}{\useKV[TDE]{Couleur}}%
+ \renewcommand{\arraystretch}{\useKV[TDE]{Stretch}}%
+ \begin{tabular}{|*{\fpeval{\ListeHlen+1}}{c|}}
+ \hline
+ \cellcolor{PfCColorTDE}\useKV[TDE]{Legende}\xintFor*##1 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\cellcolor{PfCColorTDE}\ListeH[##1]}\\
+ \hline
+ \xintFor* ##1 in{\xintSeq{1}{\ListeVlen}}\do{
+ \cellcolor{PfCColorTDE}\ListeV[##1]\xintFor*##2 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\ifboolKV[TDE]{Vide}{}{\ListeDonnees[\fpeval{(##2-0)+(##1-1)*(\ListeHlen-0)}]}}\\
+ \hline
+ }
+ \end{tabular}
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
index 75270180d3..933fcb80a2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
@@ -1,7 +1,11 @@
%%%
% Tableaux d'unit\'es
%%%
-\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false}%
+\def\filedateTableaux{2024/08/15}%
+\def\fileversionTableaux{0.1a}%
+\message{-- \filedateTableaux\space v\fileversionTableaux}%
+\message{`PfCTableauxUnites.tex' v\fileversionTableaux\space (\filedateTableaux)}
+\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false,DoubleEntree=false}%
\defKV[ClesTableaux]{ColonnesSup=\setKV[ClesTableaux]{Exterieur}}%
%
\newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}}% Top and Bottom strut
@@ -52,7 +56,10 @@
\xdef\PfCCoefConversion{10}%
}{}%
\PfCTableauIncline%
- }{%
+ }{%Fin Escalier
+ \ifboolKV[ClesTableaux]{DoubleEntree}{%
+ \TableauDoubleEntree[#1]{#2}%
+ }{}%
%
%%% Clé Octet
%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex b/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
index 3399cbecff..df109d964a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
@@ -1,6 +1,10 @@
%%%
% Tables Addition-Multiplication
%%%
+\def\filedateTableOp{2024/08/04}%
+\def\fileversionTableOp{0.1}%
+\message{-- \filedateTableOp\space v\fileversionTableOp}%
+%
\setKVdefault[Tables]{Addition=false,Soustraction=false,Multiplication,Seul=false,Debut=0,Fin=10,Couleur=white,Inverse=false}
% pour m\'emoire
diff --git a/macros/latex/contrib/profcollege/latex/PfCTectonic.tex b/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
index df859b0453..3026bf9be0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
@@ -1,6 +1,10 @@
%%%
% Tectonic
%%%
+\def\filedateTectonic{2024/08/04}%
+\def\fileversionTectonic{0.1}%
+\message{-- \filedateTectonic\space v\fileversionTectonic}%
+%
\setKVdefault[ClesTectonic]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=25pt,CouleurSolution=black,Tailles=false,Aide=false}%
\defKV[ClesTectonic]{Taille=\setKV[ClesTectonic]{Tailles}}%
\defKV[ClesTectonic]{ListeNombres=\setKV[ClesTectonic]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCThales.tex b/macros/latex/contrib/profcollege/latex/PfCThales.tex
index d4adb5be01..140bde3f23 100644
--- a/macros/latex/contrib/profcollege/latex/PfCThales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCThales.tex
@@ -1,6 +1,10 @@
%%%
% Thales
%%%
+\def\filedateThales{2024/08/04}%
+\def\fileversionThales{0.1}%
+\message{-- \filedateThales\space v\fileversionThales}%
+%
\newcount\ppcm%
\newcommand\PPCM[2]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex b/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
index 1c460e3693..2286b08332 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
@@ -1,8 +1,16 @@
%%%
% Ticket de caisse
%%%
+\def\filedateTicketCaisse{2024/08/04}%
+\def\fileversionTicketCaisse{0.1}%
+\message{-- \filedateTicketCaisse\space v\fileversionTicketCaisse}%
+%
\newcounter{PfCNbInsulte}%
+\newcounter{PfCChoixService}%
\setcounter{PfCNbInsulte}{0}%
+\setcounter{PfCChoixService}{0}%
+%
+\newlength\PfCTicketLarg
\NewDocumentCommand\PfCPrixInsulte{sm}{%
\setsepchar{,}\ignoreemptyitems%
@@ -67,15 +75,17 @@
}%
\makeatother
-\setKVdefault[TicketCaisse]{Largeur=222,Especes=50,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
+\setKVdefault[TicketCaisse]{Largeur=222pt,Especes=50,Simple=false,Taxes=false,SansRendu=false,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,SousTotal=false,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
\defKV[TicketCaisse]{Couleur=\colorlet{PfCTicketCouleurSolution}{#1}\setKV[TicketCaisse]{Solution}}
+\defKV[TicketCaisse]{Service=\setKV[TicketCaisse]{Taxes}}
-\NewDocumentCommand\TicketCaisse{om}{%
+\NewDocumentCommand\TicketCaisse{som}{%
\setcounter{PfCNbInsulte}{0}%
\useKVdefault[TicketCaisse]%
- \setKV[TicketCaisse]{#1}%
+ \setKV[TicketCaisse]{#2}%
+ \setlength{\PfCTicketLarg}{\useKV[TicketCaisse]{Largeur}}%
\setsepchar[*]{,*/}%
- \readlist*\ListeAchats{#2}%
+ \readlist*\ListeAchats{#3}%
% On fait trois listes pour les retenir
% Liste Quantités
\xdef\PfCFooQuantites{}%
@@ -122,9 +132,123 @@
\xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
\xdef\PfCTCTotal{\fpeval{\PfCTCTotal+\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
}%
-% Le coût total est \PfCTCTotal\\
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ % On décompose la clé
+ \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLetter]%
+ % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+ \IfStrEq{\MyLetter}{!}{%
+ \StrChar{\useKV[TicketCaisse]{Service}}{2}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{2}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{3}%
+ }{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{1}%
+ }%
+ }{%il faut regarder si c'est une étoile
+ \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{2}
+ }{%
+ \xdef\PfCTCValeurService{\useKV[TicketCaisse]{Service}}%
+ \setcounter{PfCChoixService}{0}
+ }%
+ }%
+ % On fait les calculs associés à la clé.
+ \xdef\PfCTCSousTotal{\PfCTCTotal}%
+ \xdef\PfCTCService{\fpeval{\PfCTCValeurService*\PfCTCSousTotal/100}}%
+ \xdef\PfCTCTotal{\fpeval{\PfCTCSousTotal+\PfCTCService}}%
+ }{}%
+ % Le coût total est \PfCTCTotal\\
+ \IfBooleanTF{#1}{%
+ \ttfamily
+ \begin{tabular}{|m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}|}%
+ \hline
+ &&&\\%
+ \multicolumn{4}{|c|}{\Large\bfseries\useKV[TicketCaisse]{Enseigne}}\\%
+ &&&\\%
+ \hline%
+ &&&\\%
+ \footnotesize\sc Description&\centering \footnotesize\sc Qte.&\centering\footnotesize\sc P.u.&\hfill\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}\\%
+ &&&\\%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
+ \ListeElements[##1]&%
+ \centering
+ \footnotesize%
+ \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+ \IfStrEq{\MyLetter}{!}{\PfCPrixInsulte*{\ListeQuantites[##1]}}{\xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{\num{\ListeQuantites[##1]}}}%
+ &
+ \hfill
+ \footnotesize
+ %Savoir si le nombre d'articles est affiché
+ \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+ % Si le nombre d'articles n'est pas affiché, il faut impérativement afficher le prix unitaire
+ \IfStrEq{\MyLetter}{!}{%
+ \PrixTicket{\ListePUnitaires[##1]}%
+ }{%
+ % On regarde si on affiche le prix unitaire
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+ % Si c'est un !, on affiche pas
+ % Sinon, on affiche
+ \IfStrEq{\MyLettera}{!}{%
+ \PfCPrixInsulte*{\PrixTicket{\ListePUnitaires[##1]}}%
+ }{%
+ \xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{%
+ \PrixTicket{\ListePUnitaires[##1]}%
+ }%
+ }%
+ }%
+ &\hfill
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLetter]%
+ % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+ \IfStrEq{\MyLetter}{!}{%
+ \StrChar{\ListeAchats[##1,3]}{2}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \PfCPrixInsulte*{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+ }{%
+ \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+ }%
+ }{%il faut regarder si c'est une étoile
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \PfCPrixInsulte{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+ }{%
+ \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+ }%
+ }%
+ \\
+ }%
+ &&&\\%
+ \hline%
+ &&&\\
+ % Partie Service
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ Total H.T.\uppercase{&}\uppercase{&}\uppercase{&}\hfill\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+ \\%
+ Service %
+ \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+ &&&\hfill
+ \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+ \\
+ &&&\\
+ \hline
+ &&&\\
+ }{}%
+ \ifboolKV[TicketCaisse]{Simple}{}{%
+ Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\hfill\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}\\%
+ \ifboolKV[TicketCaisse]{SansRendu}{}{%
+ Espèces&&&\hfill\PrixTicket{\useKV[TicketCaisse]{Especes}}\\%
+ Rendu&&&\hfill\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}\\%
+ }
+ &&&\\%
+ }%
+ \multicolumn{4}{|c|}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}\\%
+ \hline
+ \end{tabular}
+ }{%
{\ttfamily%
- \begin{NiceTabular}{m{107pt}m{29pt}m{36pt}m{50pt}}%
+ \begin{NiceTabular}{m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}}%
\CodeBefore
\tikz\node[opacity=0.2,yshift=-1.5cm] at ($(1-|1)!0.5!(1-|last)$) {\Large\bfseries\reflectbox{
\begin{tabular}{c}
@@ -148,7 +272,7 @@
\\%
\Cdots\\%
\\%
- \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix Net}\\%
+ \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}}\\%
\\%
\xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
\ListeElements[##1]&%
@@ -200,11 +324,28 @@
}%
\\%
\Cdots\\%
- Total&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
- Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
- Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+ % Partie Service
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ Total H.T.&&&\Block[r]{}{\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+ }\\%
+ Service %
+ \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+ &&&\Block[r]{}{%
+ \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+ }\\
+ \Cdots\\
+ \\
+ }{}%
+ \ifboolKV[TicketCaisse]{Simple}{}{%
+ Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
+ \ifboolKV[TicketCaisse]{SansRendu}{}{%
+ Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
+ Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+ }
\\%
- \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
+ }%
+ \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
\end{NiceTabular}
}%
+ }
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
index 461a42fb71..05a6524e98 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
@@ -1,6 +1,10 @@
%%%
% Tortue
%%%
+\def\filedateTortue{2024/08/04}%
+\def\fileversionTortue{0.1}%
+\message{-- \filedateTortue\space v\fileversionTortue}%
+%
\setKVdefault[Tortue]{%
Pas=0.2mm,%Déplacement,
Etapes=false,%Pour arrêter la construction à une étape particulière
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
index 38fe05ce60..0bd7a90da6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
@@ -1,6 +1,10 @@
%%%
% Trigonom\'etrie
%%%
+\def\filedateTrigo{2024/08/04}%
+\def\fileversionTrigo{0.1}%
+\message{-- \filedateTrigo\space v\fileversionTrigo}%
+%
\def\MPFigTrigo#1#2#3#4#5#6#7#8{%
\ifluatex
% \mplibcodeinherit{enable}
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrio.tex b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
index 560258ff59..06c0a77e3b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
@@ -1,3 +1,10 @@
+%%%
+%Trio
+%%%
+\def\filedateTrio{2024/08/04}%
+\def\fileversionTrio{0.1}%
+\message{-- \filedateTrio\space v\fileversionTrio}%
+%
\newlength\PfCTrioHauteur%
\newcounter{PfCTrioLettre}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTriominos.tex b/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
index efc6cd24b3..b2ece6c0d4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
@@ -1,6 +1,10 @@
%%%
% Triominos
%%%
+\def\filedateTriominos{2024/08/04}%
+\def\fileversionTriominos{0.1}%
+\message{-- \filedateTriominos\space v\fileversionTriominos}%
+%
\setKVdefault[ClesTriomino]{Longueur=5cm,Etages=3,Ecart=0.6,AffichagePiece=false,Hexagone=false,Recapitulatif=false,Colonnes=2}%
\defKV[ClesTriomino]{Piece=\setKV[ClesTriomino]{AffichagePiece=true}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex b/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
index 895f96136c..0d00e039c4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
@@ -1,6 +1,10 @@
%%%
% Urne et probabilités
%%%
+\def\filedateUrneProba{2024/08/04}%
+\def\fileversionUrneProba{0.1}%
+\message{-- \filedateUrneProba\space v\fileversionUrneProba}%
+%
\newtoks\tokUrneListeCouleurs%
\newtoks\tokUrneListeColonnes%
\newtoks\tokUrneListeNombres%
diff --git a/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex b/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
index 54a1a079cc..99024a4358 100644
--- a/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
@@ -1,6 +1,10 @@
%%%
% Visualisation Multiplication Décimaux
%%%
+\def\filedateVisuMulDeci{2024/08/04}%
+\def\fileversionVisuMulDeci{0.1}%
+\message{-- \filedateVisuMulDeci\space v\fileversionVisuMulDeci}%
+%
\setKVdefault[VisMulDec]{Couleur=Orange,CouleurUnite=DarkGreen,Dixiemes=false,Unite=2}%
\newtoks\toksvismuldec%
diff --git a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
index 9365b7e621..196358d9bf 100644
--- a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
@@ -1,6 +1,10 @@
%%%
% Vue Cubes
%%%
+\def\filedateVueCubes{2024/08/26}%
+\def\fileversionVueCubes{0.1a}%
+\message{-- \filedateVueCubes\space v\fileversionVueCubes}%
+%
\setKVdefault[VueCubes]{Solution=false,Hauteur=5,Profondeur=4,Largeur=3,Angle=60,Nom=Ex1,Trou=false,Echelle=0.25,CouleurCube=LightSteelBlue,CouleurFleche=LightGray,Face=false,Creation=false,Grilles=false,Seul=false,Perso=false,EclateX=0,EclateZ=0,EclateY=0}
\newtoks\toklisteVueCube%
@@ -30,9 +34,9 @@
\readlist*\PfCListeHauteursCubes{#2}%
\reademptyitems%
\foreachitem\compteur\in\PfCListeHauteursCubes{\expandafter\UpdatetoksVueCube\compteur\nil}%
- \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}%
+ \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}{\useKV[VueCubes]{Nom}}%
}{%
- \BuildVueCubes{\useKV[VueCubes]{Angle}}{}%
+ \BuildVueCubes{\useKV[VueCubes]{Angle}}{}{\useKV[VueCubes]{Nom}}%
}%
}%
}%
@@ -100,11 +104,13 @@
\fi
}
-\NewDocumentCommand\BuildVueCubes{m m}{%
+\NewDocumentCommand\BuildVueCubes{m m m}{%
\ifluatex
\mplibforcehmode
\xdef\PfCVueCubeNom{\useKV[VueCubes]{Nom}}%
\begin{mplibcode}[\PfCVueCubeNom]
+ string NomRetenu;
+ NomRetenu=str #3;
input PfCSolid;
intensite:=1.5;
@@ -176,6 +182,9 @@
endfor;
fi;
+ write decimal(TotalObj) to "PfCNombreCubes"&NomRetenu&".tex";%
+ write EOF to "PfCNombreCubes"&NomRetenu&".tex";%
+
% Pour la fleche
path Fleche;
color A[];
diff --git a/macros/latex/contrib/profcollege/latex/PfCYohaku.tex b/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
index c710834b93..942e66c111 100644
--- a/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
@@ -1,6 +1,10 @@
%%%
% Yohaku
%%%
+\def\filedateYohaku{2024/08/04}%
+\def\fileversionYohaku{0.1}%
+\message{-- \filedateYohaku\space v\fileversionYohaku}%
+%
\setKVdefault[Yohaku]{Taille=2,Largeur=1cm,Hauteur=1cm,Addition,Multiplication=false,Perso=false,Limite=50,Relatif=false,Negatif=false,Pair=false,Impair=false,Premier=false,Solution=false,Visible=false,Bordure=false,CouleurResultat=gray!15,Ligne=0,Colonne=0,PasL=0,PasC=0,CouleurZone=gray!25}%
\defKV[Yohaku]{Case=\setKV[Yohaku]{Visible}}%
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index a6b767a3bf..df794a8d86 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/07/03}%
+\def\filedate{2024/09/04}%
\let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-g}%
+\def\fileversion{0.99-A-j}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
@@ -340,6 +340,37 @@
\fi
}%
+\newlength{\PfCLongueurBarreHor}
+\setKVdefault[PfCLigneCompleter]{Ecart=20pt,Couleurs=false}%
+\defKV[PfCLigneCompleter]{Couleur=\setKV[PfCLigneCompleter]{Couleurs}}%
+
+\NewDocumentCommand\ListeACompleter{som}{%
+ \useKVdefault[PfCLigneCompleter]%
+ \setKV[PfCLigneCompleter]{#2}%
+ \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{PfCLC}{\useKV[PfCLigneCompleter]{Couleur}}}{}%
+ \setlength{\PfCLongueurBarreHor}{\useKV[PfCLigneCompleter]{Ecart}}%
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeTiti{#3}%
+ \foreachitem\compteur\in\ListeTiti{%
+ \itemtomacro\ListeTiti[\compteurcnt]\PfCCaractere%
+ \StrChar{\PfCCaractere}{1}[\RetiensElmt]%
+ \IfStrEq{\RetiensElmt}{!}{%
+ \IfBooleanTF{#1}{%
+ \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{saved}{.}\color{PfCLC}}{}\StrGobbleLeft{\PfCCaractere}{1}\ifboolKV[PfCLigneCompleter]{Couleurs}{\color{saved}}{}%
+ }{%
+ \hbox to \PfCLongueurBarreHor{\hrulefill}%
+ }
+ }{%
+ \ListeTiti[\compteurcnt]%
+ }%
+ \ifnum\compteurcnt=\ListeTitilen\relax%
+ .%
+ \else%
+ ,
+ \fi%
+ }%
+}%
+
%https://tex.stackexchange.com/questions/128991/frac-or-inference-rule-with-dotted-line
\newcommand\PfCfrac[2]{%
\ooalign{$\genfrac{}{}{0pt}{0}{#1}{#2}$\cr\PfCdotover\cr}%
@@ -825,6 +856,9 @@
\def\PfCSymbolTimes{\times}%
\def\PfCSymbolDiv{\div}%
+\input{PfCCheque}
+\input{PfCCalculsDetailles}
+\input{PfCTableauDoubleEntree}
\input{PfCUrneProba}
\input{PfCProbaFrequence}
\input{PfCVisualisationMulDeci}
@@ -975,8 +1009,5 @@
\input{PfCScratch}
\RequirePackage{PfCInfixRPN}
-%\makeatletter
-%\let\@nil\@empty
-%\makeatother
\input{PfCArbreCalcul} \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 7ec73e648c..dc007c3643 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -526,6 +526,8 @@ enddef;
vardef marque_para(expr dd,ee,pa)=
save im;
picture im;
+ string totem;
+ totem="//";
pair kk,ll,mn,mo;
kk=point(pa*length dd) of dd;
ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
@@ -534,7 +536,8 @@ vardef marque_para(expr dd,ee,pa)=
im=image(
drawarrow mo--kk;
drawarrow symetrie(mo,mn)--ll;
- label(btex // etex,mn);
+% label(btex $//$ etex,mn);
+ label(totem,mn);
);
im
enddef;
@@ -551,13 +554,14 @@ vardef marque_Para(text totem)(expr dd,ee,pa)=
drawarrow (mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm);
drawarrow symetrie((mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm),mn);
trace cercles(mn,3mm);
- for p_=totem:
- if p_="":
- label(btex // etex ,mn);
- else:
- label(btex ? etex,mn);
- fi;
- endfor;
+% for p_=totem:
+% if p_="":
+% label(btex $//$ etex ,mn);
+% else:
+% label(btex ? etex,mn);
+ label(totem,mn);
+% fi;
+% endfor;
);
im
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
index 6e2e7beb59..a2343b5312 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
@@ -2596,12 +2596,11 @@ vardef Demander(expr nbpas)=
picture Dem,texto;
if string nbpas:
texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
+ texto=ColleBoxNew("demander",nbpas,"et attendre");
fi;
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
Dem
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
index 9a3a650c38..c2311b1d33 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
@@ -2595,12 +2595,11 @@ vardef Demander(expr nbpas)=
picture Dem,texto;
if string nbpas:
texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
+ texto=ColleBoxNew("demander",nbpas,"et attendre");
fi;
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
Dem
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCSketch.mp b/macros/latex/contrib/profcollege/metapost/PfCSketch.mp
new file mode 100644
index 0000000000..6a634cfc4d
--- /dev/null
+++ b/macros/latex/contrib/profcollege/metapost/PfCSketch.mp
@@ -0,0 +1,195 @@
+%D'après https://tex.stackexchange.com/questions/39296/simulating-hand-drawn-lines
+
+let normaldraw = draw ;
+let normalfill = fill ;
+let normaldrawarrow = drawarrow ;
+let normaldbldrawarrow = drawdblarrow ;
+let normalarrowhead = normalarrowhead;
+
+path fullsquare;
+fullsquare := unitsquare shifted - center unitsquare ;
+
+%D The variable \type{sketch_amount} determines the amount of randomness in the
+%D drawing
+numeric sketch_amount; sketch_amount := 3;
+numeric old_sketch_amount;
+%D The macro \type{sketchdraw} randomized the path before drawing it. The
+%D \type{expr} ... \type{text} trick is copied from the definition of
+%D \type{drawarrow}
+
+def sketchdraw expr p =
+ do_sketchdraw(p if (path p): randomized sketch_amount fi)
+enddef;
+
+def do_sketchdraw(expr p) text t =
+ normaldraw p t ;
+enddef;
+
+%cp
+%%%%%%%%%%%%%%%%%%
+vardef sketcharrowhead expr p =
+ save q,e; path q; pair e;
+ e = point length p of p;
+ q = gobble(p shifted -e cutafter makepath(pencircle scaled 2ahlength))
+ cuttings;
+ ((q rotated .5ahangle & reverse q rotated -.5ahangle -- cycle) shifted e) randomized (sketch_amount/3)
+enddef;
+
+path _apth;
+def sketchdrawarrow expr p = _apth:=p randomized sketch_amount; _sketchfinarr enddef;
+def sketchdrawdblarrow expr p = _apth:=p; _sketchfindarr enddef;
+
+def _sketchfinarr text t =
+ old_sketch_amount:=sketch_amount;
+ sketch_amount:=0;
+ draw _apth t;
+ sketch_amount:=old_sketch_amount;
+ filldraw sketcharrowhead _apth t
+enddef;
+
+def _sketchfindarr text t =
+ old_sketch_amount:=sketch_amount;
+ sketch_amount:=0;
+ draw _apth t;
+ sketch_amount:=old_sketch_amount;
+ filldraw sketcharrowhead _apth withpen currentpen t;
+ filldraw sketcharrowhead reverse _apth withpen currentpen t
+enddef;
+%%%%%%%%%%%%%%%%%%
+
+%D The macro \type{sketchfill} randomizes the path before filling it.
+path _sketch_path_;
+
+def sketchfill expr p =
+ _sketch_path_ := p randomized sketch_amount;
+ do_sketchfill
+enddef ;
+
+def do_sketchfill text t =
+ normalfill _sketch_path_ t ;
+enddef ;
+
+%D The macro \type{sketchypaths} is modeled after \type{visualizepaths} from
+%D \filename{mp-tool}.
+
+def sketchypaths =
+ let draw = sketchdraw ;
+ let fill = sketchfill ;
+ %cp
+ let drawarrow = sketchdrawarrow ;
+ let drawdblarrow = sketchdrawdblarrow ;
+ let arrowhead = sketcharrowhead ;
+ %fin cp
+enddef ;
+
+%cp
+def normalpaths =
+ let draw = normaldraw ;
+ let fill = normalfill ;
+ let drawarrow = normaldrawarrow ;
+ let drawdblarrow = normaldrawdblarrow ;
+ let arrowhead = normalarrowhead;
+enddef ;
+ %fincp
+
+%By metafun
+vardef mfun_randomized_picture(expr p,s)(text rnd) =
+ save currentpicture ;
+ picture currentpicture ;
+ currentpicture := nullpicture ;
+ for i within p :
+ addto currentpicture
+ if stroked i :
+ doublepath pathpart i rnd s
+ dashed dashpart i
+ withpen penpart i
+ withcolor colorpart i
+ withprescript prescriptpart i
+ withpostscript postscriptpart i
+ elseif filled i :
+ contour pathpart i rnd s
+ withpen penpart i
+ withcolor colorpart i
+ withprescript prescriptpart i
+ withpostscript postscriptpart i
+ else :
+ also i
+ fi
+ ;
+ endfor ;
+ currentpicture
+enddef ;
+
+primarydef p randomized s = (
+ if path p :
+ for i=0 upto length(p)-1 :
+ ((point i of p) randomshifted s) .. controls
+ ((postcontrol i of p) randomshifted s) and
+ ((precontrol (i+1) of p) randomshifted s) ..
+ endfor
+ if cycle p :
+ cycle
+ else :
+ ((point length(p) of p) randomshifted s)
+ fi
+ elseif pair p :
+ p randomshifted s
+ elseif cmykcolor p :
+ if cmykcolor s :
+ ((uniformdeviate cyanpart s) * cyanpart p,
+ (uniformdeviate magentapart s) * magentapart p,
+ (uniformdeviate yellowpart s) * yellowpart p,
+ (uniformdeviate blackpart s) * blackpart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif rgbcolor p :
+ if rgbcolor s :
+ ((uniformdeviate redpart s) * redpart p,
+ (uniformdeviate greenpart s) * greenpart p,
+ (uniformdeviate bluepart s) * bluepart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif color p :
+ if color s :
+ ((uniformdeviate greypart s) * greypart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif string p :
+ (resolvedcolor(p)) randomized s
+ elseif picture p :
+ mfun_randomized_picture(p,s)(randomized)
+ else :
+ % p - s/2 + uniformdeviate s % would have been better but we want to be positive
+ p + uniformdeviate s
+ fi
+ )
+enddef ;
+
+primarydef p randomshifted s =
+ begingroup ;
+ save ss ; pair ss ;
+ ss := paired(s) ;
+ p shifted (-.5xpart ss + uniformdeviate xpart ss,-.5ypart ss + uniformdeviate ypart ss)
+ endgroup
+enddef ;
+
+def resolvedcolor(expr s) =
+ .5white
+enddef ;
+
+vardef paired primary d =
+ if pair d : d else : (d,d) fi
+enddef ;
+
+ extra_endfig := "picture retiens; retiens=currentpicture; draw (retiens randomized 1) withpen pencircle scaled 0.5 withcolor 0.25white;" & extra_endfig;
+
+endinput
diff --git a/macros/latex/contrib/proflycee/README.md b/macros/latex/contrib/proflycee/README.md
index 11502d6f77..539952e700 100644
--- a/macros/latex/contrib/proflycee/README.md
+++ b/macros/latex/contrib/proflycee/README.md
@@ -8,6 +8,8 @@ proflycee est un package qui pourra vous aider à utiliser LaTeX au quotidien.
----------------
-Author : Cédric Pierquet
-email : cpierquet@outlook.fr
-Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+Author : Cédric Pierquet
+email : cpierquet@outlook.fr
+Licences : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+ CC0 for cliparts (from openclipart)
+ CC BY-SA 3.0 (from Mark Wibrow helping code)
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index b4802be53e..d10f18c4ca 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
index c3e58a2813..e9dc581cd8 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee-Light.sty b/macros/latex/contrib/proflycee/tex/ProfLycee-Light.sty
new file mode 100644
index 0000000000..eb98631aed
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee-Light.sty
@@ -0,0 +1,389 @@
+% Author.............: C. Pierquet
+% licence............: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+% licence cliparts...: CC0 from openclipart
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ProfLycee-Light}[2024/10/24 1.00b Aide pour l'utilisation de LaTeX en lycee]
+%1.00b Changement du préfixage de certaines commandes + \logo calculatrice interdite
+%1.00a Refonte du fonctionnement
+
+%%=====Mathtools (la base)
+\RequirePackage{mathtools}
+
+%%=====Option(s)
+\newif\if@xcolor \@xcolorfalse
+\newif\if@build \@buildfalse
+\newif\if@loadamssymb \@loadamssymbtrue
+\newif\if@loadtikzbabel \@loadtikzbabeltrue
+\DeclareOption{xcolor}{\@xcolortrue}%
+\DeclareOption{build}{\@buildtrue}%
+\DeclareOption{nonamssymb}{\@loadamssymbfalse}%
+\DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}%
+\DeclareOption*{}
+\ProcessOptions\relax
+
+%%=====Packages utiles et indispensables
+\if@loadamssymb
+ \RequirePackage{amssymb}
+\fi
+\if@xcolor
+ \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
+\fi
+\RequirePackage{iftex}
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\usetikzlibrary{decorations,decorations.pathreplacing,decorations.markings,arrows,arrows.meta,shapes.geometric,decorations.pathmorphing}
+\if@loadtikzbabel
+ \usetikzlibrary{babel}
+\fi
+\RequirePackage{ifthen}
+\RequirePackage{xstring}
+\RequirePackage{xintexpr}
+\RequirePackage{xintbinhex}
+\RequirePackage{xinttools}
+\RequirePackage{randomlist}
+\RequirePackage{simplekv}
+\RequirePackage{listofitems}
+\RequirePackage{tkz-tab}
+\RequirePackage{tabularray}
+\RequirePackage{settobox}
+\RequirePackage{hologo}
+\RequirePackage{fancyvrb}
+\RequirePackage{nicefrac}
+\RequirePackage{siunitx}
+\sisetup{%
+ locale=FR,output-decimal-marker={,},%
+ mode=match,propagate-math-font=true,%
+ reset-math-version=false,reset-text-family=false,%
+ reset-text-series=false,reset-text-shape=false,%
+ text-family-to-math=true,text-series-to-math=true,%
+ group-minimum-digits=4%
+}%
+\RequirePackage{fontawesome5}
+\RequirePackage{tcolorbox}%
+\tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
+
+%%=====COULEUR PERSO
+\definecolor{CouleurVertForet}{HTML}{1F8B36} %ForestGreen
+
+%%=====COMMANDES DE BASES xint/siunitx
+\NewDocumentCommand\pflnum{ s D<>{} O{} m }{%version consolidée
+ %1 := version étoilée pour arrondi (normal) / - avant la fraction éventuelle
+ \IfEq{#2}{}%argument <> vide := entier/décimal -> checked
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \IfEq{#3}{}{\num{\xintfloateval{#4}}}{\num{\xintfloateval{round(#4,#3)}}}%
+ }%
+ {%
+ \num{\xintiieval{#4}}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{frac}%argument <frac> := fraction -> checked
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \pflnumfrac*[#3]{#4}%
+ }%
+ {%
+ \pflnumfrac[#3]{#4}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{rad}%argument <rad> := angle radian -> checked (juste le - devant...)
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \pflnumrad*[#3]{#4}%
+ }%
+ {%
+ \pflnumrad[#3]{#4}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{rac}%
+ {%
+ \pflnumsqrt[#3]{#4}%
+ }%
+ {}%
+}
+
+\DeclareDocumentCommand\pflnumsqrt{ O{} m }{% argument mandataire {calcul ou fraction}
+ \xdef\calculargument{\xintIrr{\xinteval{#2}}}%
+ \xintifboolexpr{\calculargument == 1}%
+ {%
+ \ensuremath{1}%
+ }%
+ {%
+ \IfEndWith{\calculargument}{/1}%
+ {%si c'est un entier !
+ \xdef\calculargument{\xintiieval{#2}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\calculargument)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\calculargument}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}%
+ }%
+ \xdef\ExtracReste{\xintiieval{\calculargument/(\ExtractRacID*\ExtractRacID)}}%
+ \ensuremath{\xintifboolexpr{\ExtractRacID == 1 && \ExtracReste == 1}%
+ {1}%
+ { \xintifboolexpr{\ExtractRacID == 1}{}{\num{\xintiieval{\ExtractRacID}}}%
+ \xintifboolexpr{\ExtracReste == 1}{}{\sqrt{\num{\ExtracReste}}} }%
+ }%
+ }%
+ {%on va mettre sous forme a\sqrt(d)/b := buggue avec des millièmes...
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \xdef\ExtractRacNNum{\xintiieval{\numerateur*\denominateur}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\ExtractRacNNum)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\ExtractRacNNum}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}
+ }%
+ \xdef\ExtractRacGCD{\xintiiGCD{\ExtractRacID}{\denominateur}}%
+ \xdef\RacNumSimpl{\xintiieval{\ExtractRacID/\ExtractRacGCD}}%simpl num
+ \xdef\RacDenomSimpl{\xintiieval{\denominateur/\ExtractRacGCD}}%
+ \xdef\RacRacSimpl{\xintiieval{\ExtractRacNNum/(\ExtractRacID*\ExtractRacID)}}%
+ \IfEq{#1}{}%fraction classique
+ {%
+ \ensuremath{\frac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
+ \IfEq{#1}{d}%dfraction
+ {%
+ \ensuremath{\dfrac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
+ \IfEq{#1}{n}%nfraction
+ {%
+ \ensuremath{\nicefrac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
+ }%
+}%
+}
+
+\NewDocumentCommand\pflnumfrac{ s O{} m }{%patch xinttotexfrac
+ %*=moins sur le numérateur
+ %2=argument.optionnel[d/t/dec=...]
+ %3=argument mandataire {calcul ou fraction}
+ \xdef\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B
+ \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
+ {%si oui := fraction
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \ifblank{#2}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{d}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\dfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{t}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\tfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{n}%
+ {%
+ {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfSubStr{#2}{dec}%on veut la forme décimale
+ {%
+ \IfSubStr{#2}{=}%si on rajoute une précision
+ {%
+ \StrBehind{#2}{=}[\precdecimal]%
+ \ensuremath{\num{\xintfloateval{round(#3,\precdecimal)}}}%
+ }%
+ {%
+ \ensuremath{\num{\xintfloateval{#3}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ }%
+ {%si non := entier
+ \num{\calculargument}%on affiche l'entier, avec le package siunitx
+ }%
+}
+
+\NewDocumentCommand\pflnumrad{ s O{} m }{%
+ %1 = options
+ %2 = angle sous la forme a*pi/b
+ \StrDel{#3}{pi}[\MPargument]%
+ \IfBeginWith{#3}{pi}%
+ {\StrSubstitute{#3}{pi}{1}[\MPargument]}%
+ {}%
+ \IfBeginWith{#3}{-pi}%
+ {\StrSubstitute{#3}{pi}{1}[\MPargument]}%
+ {}%
+ %on conserve les données initiales
+ \IfSubStr{\MPargument}{/}%on coupe numérateur/dénominateur
+ {\StrCut{\MPargument}{/}\MPnumerateurinit\MPdenominateurinit}%
+ {\xdef\MPnumerateurinit{\MPargument}\xdef\MPdenominateurinit{1}}%
+ %on affiche le début, avant simplification
+ \IfStrEq{#2}{d}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \displaystyle\IfBooleanT{#1}{-}\frac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{\IfBooleanTF{#1}{}{-}\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{t}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \IfBooleanT{#1}{-}\tfrac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \IfBooleanT{#1}{-}\frac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{n}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \nicefrac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+}
+
+%%=====LIBRAIRIES/BIBIOTHÈQUES
+\newcommand\useproflyclib[1]{%ajout d'une commande "librairie" pour charger des modules
+ \IfSubStr{#1}{most}{%
+ \input{proflycee-tools-analyse.tex}
+ \input{proflycee-tools-graphiques.tex}
+ \input{proflycee-tools-listings.tex}
+ \input{proflycee-tools-trigo.tex}
+ \input{proflycee-tools-probas.tex}
+ \input{proflycee-tools-stats.tex}
+ \input{proflycee-tools-arithm.tex}
+ \input{proflycee-tools-aleatoire.tex}
+ \input{proflycee-tools-suites.tex}
+ \input{proflycee-tools-cliparts.tex}
+ }%
+ {%
+ \IfSubStr{#1}{analyse}{\input{proflycee-tools-analyse.tex}}{}%
+ \IfSubStr{#1}{graphiques}{\input{proflycee-tools-graphiques.tex}}{}%
+ \IfSubStr{#1}{listings}{\input{proflycee-tools-listings.tex}}{}%
+ \IfSubStr{#1}{trigo}{\input{proflycee-tools-trigo.tex}}{}%
+ \IfSubStr{#1}{probas}{\input{proflycee-tools-probas.tex}}{}%
+ \IfSubStr{#1}{stats}{\input{proflycee-tools-stats.tex}}{}%
+ \IfSubStr{#1}{arithm}{\input{proflycee-tools-arithm.tex}}{}%
+ \IfSubStr{#1}{aleatoire}{\input{proflycee-tools-aleatoire.tex}}{}%
+ \IfSubStr{#1}{suites}{\input{proflycee-tools-suites.tex}}{}%
+ \IfSubStr{#1}{geom}{\input{proflycee-tools-geom.tex}}{}%
+ \IfSubStr{#1}{cliparts}{\input{proflycee-tools-cliparts.tex}}{}%
+ }%
+ \IfSubStr{#1}{piton}{\input{proflycee-tools-piton.tex}}{}%
+ \IfSubStr{#1}{espace}{\input{proflycee-tools-espace.tex}}{}%
+ \IfSubStr{#1}{ecritures}{\input{proflycee-tools-ecritures.tex}}{}%
+ \IfSubStr{#1}{complexes}{\input{proflycee-tools-complexes.tex}}{}%
+ \IfSubStr{#1}{recreat}{\input{proflycee-tools-recreat.tex}}{}%
+ \IfSubStr{#1}{competences}{\input{proflycee-tools-competences.tex}}{}%
+ \IfSubStr{#1}{exams}{\input{proflycee-tools-exams.tex}}{}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index e37ce44eeb..dbeb301429 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -1,9 +1,22 @@
-% Author : C. Pierquet
-% licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
+% Author...................: C. Pierquet
+% licence..................: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+% licence (part of code).. : CC BY-SA 3.0 (from Mark Wibrow)
+% licence cliparts.........: CC0 (from openclipart)
+% code
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2024/07/13 3.04d Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2024/10/30 3.10f Aide pour l'utilisation de LaTeX en lycee]
+% 3.10f Ajout de quelques commandes arithmétiques (test premier + décompo)
+% 3.10e Correction de noms de commandes + \logo calculatrice interdite
+% 3.10d Correction d'un nom de commande (doublon avec ProfMaquette)
+% 3.10c Ajout de clés/arguments pour les arbres de probas + paramètres stats + arbres de dénombrement(s)
+% 3.10b Ajout des empilements d'oranges + commandes sur les dates
+% 3.10a Bifurcation pfl / pfllight + pflnum consolidée
+% 3.05b Mise en standby des commandes liées à minted (attente de compatibilité complète avec tcblisting) + Clé [ValeursTan] pour les cercles trigo
+% 3.05a Conversions entre bases + vectorial clipart (de openclipart)
+% 3.04g Ajout de clés pour les arbres de probas
+% 3.04f Ajout de clés pour la coloration des nombres et Piton
+% 3.04e Commandes prix/angle/pourcent en lien avec siunitx
% 3.04d PitonInputFile et styles
% 3.04c Max et min pour des fonctions
% 3.04b Travail sur la loi binomiale + Ajout de clés pour les environnements graphiques
@@ -98,9 +111,11 @@
\newif\if@xcolor \@xcolorfalse
\newif\if@build \@buildfalse
\newif\if@loadamssymb \@loadamssymbtrue
+\newif\if@loadtikzbabel \@loadtikzbabeltrue
\DeclareOption{xcolor}{\@xcolortrue}%
\DeclareOption{build}{\@buildtrue}%
\DeclareOption{nonamssymb}{\@loadamssymbfalse}%
+\DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}%
\DeclareOption*{}
\ProcessOptions\relax
@@ -112,6 +127,10 @@
\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
\fi
\RequirePackage{tikz}
+\usetikzlibrary{calc,decorations,decorations.pathreplacing,decorations.markings,arrows,arrows.meta,shapes.geometric,decorations.pathmorphing}
+\if@loadtikzbabel
+ \usetikzlibrary{babel}
+\fi
\RequirePackage{tkz-tab}
\RequirePackage{pgf,pgffor}
\RequirePackage{ifthen}
@@ -138,15 +157,6 @@
group-minimum-digits=4%
}%
\RequirePackage{fontawesome5}
-%librairies tikz
-\usetikzlibrary{calc}
-\usetikzlibrary{decorations}
-\usetikzlibrary{decorations.pathreplacing}
-\usetikzlibrary{decorations.markings}
-\usetikzlibrary{arrows,arrows.meta}
-\usetikzlibrary{babel}
-\usetikzlibrary{shapes.geometric}
-\usetikzlibrary{decorations.pathmorphing}
%tcolorbox
\RequirePackage{tcolorbox}%
\tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
@@ -168,15 +178,15 @@
\input{proflycee-tools-espace.tex}
}%
{}%
- \IfSubStr{#1}{minted}%
- {%
- \if@build
- \RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build
- \fi
- \tcbuselibrary{minted} %on charge minted via la librairie tcbox
- \input{proflycee-tools-minted.tex}
- }%
- {}%
+ %\IfSubStr{#1}{minted}%
+ % {%
+ % \if@build
+ % \RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build
+ % \fi
+ % \tcbuselibrary{minted} %on charge minted via la librairie tcbox
+ % \input{proflycee-tools-minted.tex}
+ % }%
+ % {}%
\IfSubStr{#1}{pythontex}%
{%
\RequirePackage[gobble=auto]{pythontex}
@@ -195,14 +205,287 @@
}
%%------patch num et xint
-\NewDocumentCommand\pflnum{ s O{} m }{%
- \IfBooleanTF{#1}%
+\NewDocumentCommand\pflnum{ s D<>{} O{} m }{%version consolidée
+ %1 := version étoilée pour arrondi (normal) / - avant la fraction éventuelle
+ \IfEq{#2}{}%argument <> vide := entier/décimal -> checked
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \IfEq{#3}{}{\num{\xintfloateval{#4}}}{\num{\xintfloateval{round(#4,#3)}}}%
+ }%
+ {%
+ \num{\xintiieval{#4}}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{frac}%argument <frac> := fraction -> checked
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \pflnumfrac*[#3]{#4}%
+ }%
+ {%
+ \pflnumfrac[#3]{#4}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{rad}%argument <rad> := angle radian -> checked (juste le - devant...)
+ {%
+ \IfBooleanTF{#1}%
+ {%
+ \pflnumrad*[#3]{#4}%
+ }%
+ {%
+ \pflnumrad[#3]{#4}%
+ }%
+ }%
+ {}%
+ \IfEq{#2}{rac}%
+ {%
+ \pflnumsqrt[#3]{#4}%
+ }%
+ {}%
+}
+
+\DeclareDocumentCommand\pflnumsqrt{ O{} m }{% argument mandataire {calcul ou fraction}
+ \xdef\calculargument{\xintIrr{\xinteval{#2}}}%
+ \xintifboolexpr{\calculargument == 1}%
{%
- \IfEq{#2}{}{\num{\xintfloateval{#3}}}{\num{\xintfloateval{round(#3,#2)}}}%
+ \ensuremath{1}%
}%
{%
- \num{\xintiieval{#3}}%
+ \IfEndWith{\calculargument}{/1}%
+ {%si c'est un entier !
+ \xdef\calculargument{\xintiieval{#2}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\calculargument)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\calculargument}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}%
+ }%
+ \xdef\ExtracReste{\xintiieval{\calculargument/(\ExtractRacID*\ExtractRacID)}}%
+ \ensuremath{\xintifboolexpr{\ExtractRacID == 1 && \ExtracReste == 1}%
+ {1}%
+ { \xintifboolexpr{\ExtractRacID == 1}{}{\num{\xintiieval{\ExtractRacID}}}%
+ \xintifboolexpr{\ExtracReste == 1}{}{\sqrt{\num{\ExtracReste}}} }%
+ }%
+ }%
+ {%on va mettre sous forme a\sqrt(d)/b := buggue avec des millièmes...
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \xdef\ExtractRacNNum{\xintiieval{\numerateur*\denominateur}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\ExtractRacNNum)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\ExtractRacNNum}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}
+ }%
+ \xdef\ExtractRacGCD{\xintiiGCD{\ExtractRacID}{\denominateur}}%
+ \xdef\RacNumSimpl{\xintiieval{\ExtractRacID/\ExtractRacGCD}}%simpl num
+ \xdef\RacDenomSimpl{\xintiieval{\denominateur/\ExtractRacGCD}}%
+ \xdef\RacRacSimpl{\xintiieval{\ExtractRacNNum/(\ExtractRacID*\ExtractRacID)}}%
+ \IfEq{#1}{}%fraction classique
+ {%
+ \ensuremath{\frac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
+ \IfEq{#1}{d}%dfraction
+ {%
+ \ensuremath{\dfrac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
+ \IfEq{#1}{n}%nfraction
+ {%
+ \ensuremath{\nicefrac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\num{\RacRacSimpl}}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+ {}%
}%
+}%
+}
+
+\NewDocumentCommand\pflnumfrac{ s O{} m }{%patch xinttotexfrac
+ %*=moins sur le numérateur
+ %2=argument.optionnel[d/t/dec=...]
+ %3=argument mandataire {calcul ou fraction}
+ \xdef\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B
+ \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
+ {%si oui := fraction
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \ifblank{#2}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{d}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\dfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{t}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\tfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{n}%
+ {%
+ {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfSubStr{#2}{dec}%on veut la forme décimale
+ {%
+ \IfSubStr{#2}{=}%si on rajoute une précision
+ {%
+ \StrBehind{#2}{=}[\precdecimal]%
+ \ensuremath{\num{\xintfloateval{round(#3,\precdecimal)}}}%
+ }%
+ {%
+ \ensuremath{\num{\xintfloateval{#3}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ }%
+ {%si non := entier
+ \num{\calculargument}%on affiche l'entier, avec le package siunitx
+ }%
+}
+
+\NewDocumentCommand\pflnumrad{ s O{} m }{%
+ %1 = options
+ %2 = angle sous la forme a*pi/b
+ \StrDel{#3}{pi}[\MPargument]%
+ \IfBeginWith{#3}{pi}%
+ {\StrSubstitute{#3}{pi}{1}[\MPargument]}%
+ {}%
+ \IfBeginWith{#3}{-pi}%
+ {\StrSubstitute{#3}{pi}{1}[\MPargument]}%
+ {}%
+ %on conserve les données initiales
+ \IfSubStr{\MPargument}{/}%on coupe numérateur/dénominateur
+ {\StrCut{\MPargument}{/}\MPnumerateurinit\MPdenominateurinit}%
+ {\xdef\MPnumerateurinit{\MPargument}\xdef\MPdenominateurinit{1}}%
+ %on affiche le début, avant simplification
+ \IfStrEq{#2}{d}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \displaystyle\IfBooleanT{#1}{-}\frac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{\IfBooleanTF{#1}{}{-}\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{t}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \IfBooleanT{#1}{-}\tfrac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \IfBooleanT{#1}{-}\frac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{ \IfBooleanTF{#1}{\xinteval{abs(\MPnumerateurinit)}}{\MPnumerateurinit} }\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ \IfStrEq{#2}{n}%
+ {%
+ \ensuremath{%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \nicefrac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+ }%
+ }%
+ {}%
}
%%------Codes listings
@@ -233,5 +516,7 @@
\input{proflycee-tools-competences.tex}
%%------Examens
\input{proflycee-tools-exams.tex}
+%%------Cliparts
+\input{proflycee-tools-cliparts.tex}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf
new file mode 100644
index 0000000000..3ca7af1aac
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf
new file mode 100644
index 0000000000..83f7d91489
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf
new file mode 100644
index 0000000000..0e4712cece
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf
new file mode 100644
index 0000000000..238d76df4e
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf
new file mode 100644
index 0000000000..94f04537b2
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf
new file mode 100644
index 0000000000..e1b1a5fb46
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf
new file mode 100644
index 0000000000..424fc345ab
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf
new file mode 100644
index 0000000000..3246c38693
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf
new file mode 100644
index 0000000000..bc03661421
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf
new file mode 100644
index 0000000000..40f843b864
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf
new file mode 100644
index 0000000000..323710e097
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf
new file mode 100644
index 0000000000..b8e69cd524
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf
new file mode 100644
index 0000000000..0fed35ca1e
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf
new file mode 100644
index 0000000000..43cac49c38
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf
new file mode 100644
index 0000000000..9ba7602d26
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf
new file mode 100644
index 0000000000..70d0ca8d8b
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf
new file mode 100644
index 0000000000..ced83f9d17
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
index 1581688cb1..17f3a6dbaa 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
@@ -759,6 +759,7 @@
\defKV[FracPeriod]{Inconnue=\def\FracPerVar{#1}}
\setKVdefault[FracPeriod]{Enonce=true,d=true,Inconnue=x,Solution=false,Brut=true,Simple=false}
+\makeatletter
\NewDocumentCommand\FractionPeriode{ O{} m m }{%on verra pour la mise en forme après...
%clés
\restoreKV[FracPeriod]% revenir au valeurs par défaut
@@ -841,6 +842,7 @@
}%
{}%
}
+\makeatletter
%====tkz ligne convexité
\makeatletter
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
index a021fea937..63258375ca 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
@@ -3,8 +3,91 @@
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\RequirePackage{ifthen}
+\RequirePackage{etoolbox}
\RequirePackage{modulus}
+%%-----Nombres premiers (code venant de la documentation de xint :-))
+\NewDocumentCommand\pflboolestpremier{ m }{%
+ \ifnumodd{#1}%
+ {%
+ \ifnumless{#1}{8}%
+ {%
+ \ifnumequal{#1}{1}{0}{1}%
+ }%le cas 3,5,7 qui sont premiers
+ {%
+ \if\xintiloop[3+2]%
+ \ifnum#1<\numexpr\xintiloopindex*\xintiloopindex\relax%
+ \expandafter\xintbreakiloopanddo\expandafter1\expandafter.%
+ \fi%
+ \ifnum#1=\numexpr(#1/\xintiloopindex)*\xintiloopindex\relax%
+ \else
+ \repeat 00\expandafter0%
+ \else%
+ \expandafter1%
+ \fi%
+ }%
+ }%fin de la partie impaire
+ {%
+ \ifnumequal{#1}{2}{1}{0}%
+ }%partie paire
+}%
+
+\NewDocumentCommand\pflestpremier{ O{est premier} O{n'est pas premier} m }{%
+ \num{#3} \xintifboolexpr{\pflboolestpremier{#3} == 1}{#1}{#2}\relax%
+}%
+
+%%------Décomposition, adaptée de pfc
+\NewDocumentCommand\pfldecompnb{ s m }{%
+ \xdef\tmpcalc{\xinteval{#2}}%
+ \xdef\tmparg{}%
+ \newcount\pflanp\newcount\pflbnp\newcount\pflcnp%
+ \newcount\pflpileb\newcount\pflexposant%
+ \pflexposant=0\relax%
+ \pflanp=\tmpcalc\relax%
+ \pflbnp=2\relax%
+ \pflpileb=2\relax%
+ \ensuremath{%
+ \whiledo{\the\pflanp > 1}{%
+ \modulo{\the\pflanp}{\the\pflbnp}%
+ \ifnum\remainder=0\relax%
+ \pflcnp=\numexpr\pflanp/\pflbnp\relax%
+ \pflexposant=\numexpr\pflexposant+1\relax%
+ \pflanp=\pflcnp\relax%
+ \else%
+ \ifnum\pflexposant>0\relax%
+ \IfBooleanTF{#1}%
+ {%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}^{\the\pflexposant}\times}%
+ }%
+ {%
+ \ifnum\pflexposant=1\relax%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}\times}%
+ \else%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}^{\the\pflexposant}\times}%
+ \fi%
+ }%
+ \fi%
+ \pflbnp=\numexpr\pflbnp+1\relax%
+ \pflpileb=\pflbnp\relax%
+ \pflexposant=0\relax%
+ \fi%
+ }%
+ \IfBooleanTF{#1}%
+ {%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}^{\the\pflexposant}}%
+ }%
+ {%
+ \ifnum\pflexposant=1\relax%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}}%
+ \else%
+ \xdef\tmparg{\tmparg\num{\the\pflpileb}^{\the\pflexposant}}%
+ \fi%
+ }%
+ \tmparg\relax%
+ }%
+}
+
+
%%------ConversionsBases
%dec->bin avec blocs de 4 chiffres
\setKVdefault[CONVDECBIN]{%
@@ -526,11 +609,11 @@
Fleches=true
}
-\NewDocumentCommand\ArbreDiviseurs{ O{} m }{%
+\NewDocumentCommand\ArbreDiviseurs{ O{} D<>{} m }{%
\useKVdefault[arbrediviseurs]%
\setKV[arbrediviseurs]{#1}%
% test avec CPoulain ^^
- \xdef\tmpcalc{\xinteval{#2}}%
+ \xdef\tmpcalc{\xinteval{#3}}%
\xdef\tmparg{}%
\newcount\anp\newcount\bnp\newcount\cnp%
\newcount\pileb\newcount\exposant%
@@ -569,7 +652,7 @@
\ifboolKV[arbrediviseurs]{Fleches}%
{\tikzstyle{flechearbrediv} = [line width=\fpeval{\TmpEchelle*0.6}pt,->,>=latex]}%
{\tikzstyle{flechearbrediv} = [line width=\fpeval{\TmpEchelle*0.6}pt]}%
- \begin{tikzpicture}[scale=\TmpEchelle,every node/.style={scale=\TmpEchelle}]
+ \begin{tikzpicture}[scale=\TmpEchelle,every node/.style={scale=\TmpEchelle},#2]
% grille d'aide
% \draw[xstep=\TmpEspNiv,ystep=\TMpEspFeuille,thin,lightgray] (0,{(-\arbredivnbdiv+1)*\TMpEspFeuille}) grid ({\arbredivnbdivprem*\TmpEspNiv},0) ;
% dernier niveau OK
@@ -1287,8 +1370,6 @@
\StrChar{#1}{##1}[\tmpchar]%
\settowidth{\charwd}{\tmpchar}%
\setlength{\widestcharwd}{\maxof{\widestcharwd}{\charwd}}%
-
-
}%
}
@@ -1902,4 +1983,65 @@
}%
}
+%====CONVERSIONS ENTRE BASES
+\ExplSyntaxOn
+%commande interne (stockage ou non)
+\NewDocumentCommand\pflbasetobase{ m m m }{%
+ %1=init
+ %2=fin
+ %3=nb
+ \ifnum#2=10%
+ \int_from_base:nn {#3}{#1}%
+ \else%
+ \int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}%
+ \fi%
+}
+
+\NewDocumentCommand\tmpresconvbases{ m m m O{\tmpconvres} }{%
+ %1=init
+ %2=fin
+ %3=nb
+ \ifnum#2=10%
+ \xdef#4{\int_from_base:nn {#3}{#1}}%
+ \else%
+ \xdef#4{\int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}}%
+ \fi%
+}
+\ExplSyntaxOff
+
+%commande interne split adaptée de https://tex.stackexchange.com/questions/171007/split-a-character-string-n-by-n // unbonpetit // CC BY-SA 3.0
+\NewDocumentCommand\tmpStrSplit{ O{\,} m m O{\tmpsplitres} }{%
+ %1=espace / %2=nb caract / %3=chaîne / %4=macro de stockage
+ \xdef\splitstring{#3}\let\splitresult\empty%
+ \loop%
+ \StrLen\splitstring[\tempa]%
+ \StrSplit\splitstring{\number\numexpr\tempa-#2}\splitstring\tempb%
+ \xdef\splitresult{\unless\ifx\splitstring\empty#1\fi\tempb\splitresult}%
+ \unless\ifx\splitstring\empty%
+ \repeat%
+ \xdef#4{\splitresult}%
+}
+
+\NewDocumentCommand\ConversionEntreBases{ s O{\,} m m }{%
+ %calculs internes
+ \StrCut{#3}{->}{\tmpbaseinit}{\tmpbasefin}%
+ \tmpresconvbases{\tmpbaseinit}{\tmpbasefin}{#4}%\tmpconvres
+ %affichage
+ \ensuremath{%
+ \ifnum\tmpbaseinit=2%
+ \tmpStrSplit{4}{#4}%
+ {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbaseinit}}%
+ \else%
+ {#4}\IfBooleanT{#1}{_{\tmpbaseinit}}%
+ \fi%
+ =%
+ \ifnum\tmpbasefin=2%
+ \tmpStrSplit[#2]{4}{\tmpconvres}%
+ {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbasefin}}%
+ \else%
+ {\tmpconvres}\IfBooleanT{#1}{_{\tmpbasefin}}%
+ \fi%
+ }%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex
new file mode 100644
index 0000000000..4e85f74734
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex
@@ -0,0 +1,145 @@
+% proflycee-tools-cliparts.tex
+% Copyright 2024 Cédric Pierquet
+% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+% logos from CC0 opencliparts (users Firkin & Juhele & qubodup & TzeenieWheenie & jetxee)
+
+%====DIMENSIONS
+\newlength{\tmpcharacterheightinline}
+\newlength{\tmpcharacterdepthinline}
+
+%====MACRO PRINCIPALE
+\NewDocumentCommand\InsererClipart{ s O{} m }{%
+ \IfBooleanTF{#1}%
+ {%
+ \IfFileExists{pfl-#3.pdf}{\includegraphics[#2]{pfl-#3.pdf}}{}%
+ }%
+ {%
+ \settototalheight{\tmpcharacterheightinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}%
+ \settodepth{\tmpcharacterdepthinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}%
+ \IfFileExists{pfl-#3.pdf}{\raisebox{-\tmpcharacterdepthinline}{\includegraphics[height=\tmpcharacterheightinline]{pfl-#3.pdf}}}{}%
+ }%
+}
+
+%====ALIASES
+\NewDocumentCommand\pflimgcoupeb{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-cup}}%
+ {\InsererClipart{bronze-cup}}%
+}
+
+\NewDocumentCommand\pflimgmedb{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-medal}}%
+ {\InsererClipart{bronze-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedbp{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-medal-flat}}%
+ {\InsererClipart{bronze-medal-flat}}%
+}
+
+\NewDocumentCommand\pflimgverif{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{checked}}%
+ {\InsererClipart{checked}}%
+}
+
+\NewDocumentCommand\pflimgnonverif{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{crossed}}%
+ {\InsererClipart{crossed}}%
+}
+
+\NewDocumentCommand\pflimgcoupeo{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-cup}}%
+ {\InsererClipart{gold-cup}}%
+}
+
+\NewDocumentCommand\pflimgmedo{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-medal}}%
+ {\InsererClipart{gold-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedop{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-medal-flat}}%
+ {\InsererClipart{gold-medal-flat}}%
+}
+
+\NewDocumentCommand\pflimgsouris{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse}}%
+ {\InsererClipart{mouse}}%
+}
+
+\NewDocumentCommand\pflimgsourisg{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-left}}%
+ {\InsererClipart{mouse-left}}%
+}
+
+\NewDocumentCommand\pflimgsourisc{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-center}}%
+ {\InsererClipart{mouse-center}}%
+}
+
+\NewDocumentCommand\pflimgsourisd{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-right}}%
+ {\InsererClipart{mouse-right}}%
+}
+
+\NewDocumentCommand\pflimgko{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{notok}}%
+ {\InsererClipart{notok}}%
+}
+
+\NewDocumentCommand\pflimgok{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{ok}}%
+ {\InsererClipart{ok}}%
+}
+
+\NewDocumentCommand\pflimgcoupea{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-cup}}%
+ {\InsererClipart{silver-cup}}%
+}
+
+\NewDocumentCommand\pflimgmeda{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-medal}}%
+ {\InsererClipart{silver-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedap{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-medal-flat}}%
+ {\InsererClipart{silver-medal-flat}}%
+}
+
+%====NOCALC
+\newlength{\tmptotalheightcurrenttxt}
+\setlength{\tmptotalheightcurrenttxt}{1em}
+\newlength{\tmptotaldepthcurrenttxt}
+\setlength{\tmptotaldepthcurrenttxt}{0.1em}
+
+\NewDocumentCommand\pflnocalc{ s O{black} }{%
+ \settototalheight{\tmptotalheightcurrenttxt}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \settodepth{\tmptotaldepthcurrenttxt}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \IfBooleanTF{#1}{}{\hspace*{-0.05\tmptotalheightcurrenttxt}}%
+ \raisebox{-\tmptotaldepthcurrenttxt}{%
+ {\begin{tikzpicture}[line width={0.1\tmptotalheightcurrenttxt}]
+ \node[#2,inner sep=0pt,scale=0.8,outer sep=0pt] (TMPPP) at (0,0) {\faCalculator} ;
+ \draw[#2,line cap=round] (TMPPP.north east)--(TMPPP.south west) ;
+ \end{tikzpicture}}%
+ }%
+ \IfBooleanTF{#1}{}{\hspace*{-0.05\tmptotalheightcurrenttxt}}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
index 0a1555c4e9..7086b10b22 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
@@ -10,6 +10,38 @@
\RequirePackage{mleftright} %pour une meilleure gestion des espacements avec \left \right :-)
%\RequirePackage{mathrsfs}%pour \mathscr (à voir...)
+%===UNITÉS
+
+\NewDocumentCommand\pflprix{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\,\text{€}%
+ }%
+ {%
+ \num{#2}\,\text{€}%
+ }%
+}
+
+\NewDocumentCommand\pflangle{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\text{\textdegree}%
+ }%
+ {%
+ \num{#2}\text{\textdegree}%
+ }%
+}
+
+\NewDocumentCommand\pflpcent{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\,\%%
+ }%
+ {%
+ \num{#2}\,\%%
+ }%
+}
+
%===ENSEMBLES CLASSIQUES
\ifthenelse{\isundefined{\N}}%
{%
@@ -179,15 +211,71 @@
}
%====COORDONNEES, VECTEURS
-\NewDocumentCommand\CoordPtPl{ m m }{\ensuremath{\left(#1;#2\right)}}
-\NewDocumentCommand\CoordPtEsp{ m m m }{\ensuremath{\left(#1;#2;#3\right)}}
-\NewDocumentCommand\CoordVecPl{ m m }{\ensuremath{\begin{pmatrix} #1 \\ #2 \end{pmatrix}}}
-\NewDocumentCommand\CoordVecEsp{ m m m }{\ensuremath{\begin{pmatrix} #1 \\ #2 \\ #3 \end{pmatrix}}}
-\NewDocumentCommand\MatDeux{ m m m m }{\ensuremath{\begin{pmatrix} #1 & #2 \\ #3 & #4 \end{pmatrix}}}
+\RequirePackage{nicematrix}
+
+\NewDocumentCommand\CoordPtPl{ O{0} m m }{%
+ \IfEq{#1}{0}%si pas d'argument optionnel := array, sinon nicematrix avec cell-space-limits
+ {%
+ \ensuremath{\left(#2;#3\right)}%
+ }%
+ {%
+ \ensuremath{\begin{pNiceMatrix}[cell-space-limits=#1] #2 ; #3 \end{pNiceMatrix}}%
+ }%
+}
+\NewDocumentCommand\CoordPtEsp{ O{0} m m m }{%
+ \IfEq{#1}{0}%si pas d'argument optionnel := array, sinon nicematrix avec cell-space-limits
+ {%
+ \ensuremath{\left(#2;#3;#4\right)}%
+ }%
+ {%
+ \ensuremath{\begin{pNiceMatrix}[cell-space-limits=#1] #2 ; #3 ; #4 \end{pNiceMatrix}}%
+ }%
+}
+
+\NewDocumentCommand\CoordVecPl{ O{0} m m }{%
+ \IfEq{#1}{0}%si pas d'argument optionnel := array, sinon nicematrix avec cell-space-limits
+ {%
+ \ensuremath{\begin{pmatrix} #2 \\ #3 \end{pmatrix}}%
+ }%
+ {%
+ \ensuremath{\begin{pNiceMatrix}[cell-space-limits=#1] #2 \\ #3 \end{pNiceMatrix}}%
+ }%
+}
+
+\NewDocumentCommand\CoordVecEsp{ O{0} m m m }{%
+ \IfEq{#1}{0}%si pas d'argument optionnel := array, sinon nicematrix avec cell-space-limits
+ {%
+ \ensuremath{\begin{pmatrix} #2 \\ #3 \\ #4 \end{pmatrix}}%
+ }%
+ {%
+ \ensuremath{\begin{pNiceMatrix}[cell-space-limits=#1] #2 \\ #3 \\ #4 \end{pNiceMatrix}}%
+ }%
+}
+
+\NewDocumentCommand\MatDeux{ O{0} m m m m }{%
+ \IfEq{#1}{0}%si pas d'argument optionnel := array, sinon nicematrix avec cell-space-limits
+ {%
+ \ensuremath{\begin{pmatrix} #2 & #3 \\ #4 & #5 \end{pmatrix}}%
+ }%
+ {%
+ \ensuremath{\begin{pNiceMatrix}[cell-space-limits=#1] #2 & #3 \\ #4 & #5 \end{pNiceMatrix}}%
+ }%
+}
+
\NewDocumentCommand\Vecteur{ s m O{} }{%
\IfBooleanTF{#1}{\ensuremath{\vv*{#2}{#3}}}{\ensuremath{\vv{#2}}}%
}
+\NewDocumentCommand\EqParamDteEsp{ s O{t} m m m }{%
+ \IfBooleanTF{#1}%
+ {%
+ \ensuremath{\begin{cases}{#3}\\{#4}\\{#5}\end{cases}\text{ où }{#2}\in\R}%
+ }%
+ {%
+ \ensuremath{\begin{dcases}{#3}\\{#4}\\{#5}\end{dcases}\text{ où }{#2}\in\R}%
+ }%
+}
+
%====REPÈRES
\setKVdefault[ecrituresreperes]{%
Sep={;}
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
index af4aebf384..42b23be551 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
@@ -2,6 +2,7 @@
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+%3.05b En standy pour le moment...
%3.00g Modif mineure pour la marge gauche
%2.7.5 Argument optionnel pour les numéros de lignes + changement déclaration environnements
%2.7.3 Correction de la couleur des bordures
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
index 0cb6600617..52ef738955 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
@@ -2,6 +2,7 @@
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+%3.04f Ajout de clés pour la coloration des nombres et Piton
%3.04d PitonInputFile et styles, pour compatibilité pfm
%3.03c Thonny via piton + modification clé gobble ?
%3.01f PseudoCode via piton (?)
@@ -42,7 +43,7 @@
BarreTitre=true,%
Titre={{\scriptsize\faCode}~~Code Python},%
EspacementV=0.5\baselineskip,%
- CouleurNombres=orange
+ CouleurNombres={orange!75!black}
}
%==Style Moderne
@@ -160,7 +161,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
- \SetPitonStyle{ Number = \color{\CODPITcolnb} }
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=0.75em,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto,
{}%
@@ -227,7 +228,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
- \SetPitonStyle{ Number = \color{\CODPITcolnb} }
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=0.75em,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto,
{}%
@@ -477,12 +478,14 @@
\defKV[consolepyluatex]{%
Largeur=\def\ConsPyluaLarg{#1},
- Alignement=\def\ConsPyluaAlign{#1}
+ Alignement=\def\ConsPyluaAlign{#1},%
+ CouleurNombres=\def\CODPITcolnb{#1}
}
\setKVdefault[consolepyluatex]{%
Logo=true,%
Largeur=\linewidth,%
- Alignement=flush left
+ Alignement=flush left,%
+ CouleurNombres={orange!75!black}
}
\NewDocumentEnvironment{ConsolePiton}{ O{} D<>{} m }%
@@ -492,6 +495,7 @@
{
\restoreKV[consolepyluatex]% revenir au valeurs par défaut
\setKV[consolepyluatex]{#2}% lit les arguments optionnels
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\PitonOptions{width={\ConsPyluaLarg-5mm},break-lines,end-of-broken-line={\,},continuation-symbol={\;},#1}
%\PitonOptions{width={\ConsPyluaLarg-5mm},#1}
\PyLTVerbatimEnv
@@ -524,14 +528,16 @@
NomFichier=\def\thonnypitonfilename{#1},%
NomConsole=\def\thonnypitonshellname{#1},%
IntroConsole=\def\thonnypitonintroconsole{#1},%
- Gobble=\def\thonnypitongobble{#1}
+ Gobble=\def\thonnypitongobble{#1},%
+ CouleurNombres=\def\CODPITcolnb{#1}
}
\setKVdefault[pitonthonny]{%
NomFichier=script.py,%
NomConsole=console,%
IntroConsole={Python 3.11.6 /usr/bin/python},%
- Gobble={}
+ Gobble={},%
+ CouleurNombres={orange!75!black}
}
\NewPitonEnvironment{PitonThonnyEditor}{ D<>{} O{} m }%
@@ -539,6 +545,7 @@
\restoreKV[pitonthonny]%
\setKV[pitonthonny]{#1}%
\settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
\PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}%
%--gestion du gobble
\IfStrEqCase{\thonnypitongobble}{%
@@ -564,6 +571,7 @@
{\restoreKV[pitonthonny]%
\setKV[pitonthonny]{#1}%
\settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
\PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}%
\tcbset{tcbthonnypiton/.style={title=\vphantom{pf}\thonnypitonfilename\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}%
\tcolorbox[sharp corners=all,enhanced,size=small,width=#2,colframe=gray,colback=lightgray!5,tcbthonnypiton,fonttitle=\scriptsize\sffamily,coltitle=black,
@@ -579,6 +587,7 @@
\PyLTVerbatimEnv%
\tcbset{tcbthonnypitonconsole/.style={title=\vphantom{pf}\thonnypitonshellname\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}%
\noindent%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
%--gestion du gobble
\IfStrEqCase{\thonnypitongobble}{%
{auto}{\PitonOptions{auto-gobble}}%
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
index 92cff33772..c4c9461387 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
@@ -1,6 +1,7 @@
% proflycee-tools-probas.tex
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+% CC BY-SA 3.0 (from Mark Wibrow)
%%------LOISPROBAS
%calculs "simples"
@@ -245,7 +246,10 @@
StyleTrait=\def\PLAPtypetrait{#1},%
EpaisseurTrait=\def\PLAPeptrait{#1},%
PositionProbas=\def\PLAPposprob{#1},%
- CouleurFond=\def\PLAPcolback{#1}
+ CouleurFond=\def\PLAPcolback{#1},%
+ CouleurTraits=\def\PLAPcolarc{#1},%
+ CouleurProbas=\def\PLAPcolprobas{#1},%
+ CouleurNoeuds=\def\PLAPcolnoeuds{#1}
}
\setKVdefault[PLTIKZARBRE]{%
@@ -260,7 +264,10 @@
StyleTrait={},%
EpaisseurTrait=semithick,%
PositionProbas={},%
- CouleurFond=white
+ CouleurFond=white,%
+ CouleurTraits=black,%
+ CouleurProbas=black,%
+ CouleurNoeuds=black
}
\NewDocumentCommand\IntPlaceProbasArbre{ m m m m m }{%
@@ -278,21 +285,21 @@
}%
}
-\NewDocumentCommand\ArbreProbasTikz{ O{} m }{%1=options,2=libellés
+\NewDocumentCommand\ArbreProbasTikz{ O{} D<>{} m }{%1=options,2=libellés
\useKVdefault[PLTIKZARBRE]%
\setKV[PLTIKZARBRE]{#1}%
\setsepchar[.]{,./}%
- \readlist*\PLARBREDONNES{#2}%
- \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ \readlist*\PLARBREDONNES{#3}%
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite,#2]
%styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
+ \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds]
+ \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas]
\ifboolKV[PLTIKZARBRE]{InclineProbas}
{\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]}
{\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]}
\ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
%arbre2x2
\IfEq{\PLAPtype}{2x2}
{%
@@ -568,22 +575,22 @@
\end{tikzpicture}
}
-\NewDocumentEnvironment{EnvArbreProbasTikz}{ O{} m }%1=options,2=libellés
+\NewDocumentEnvironment{EnvArbreProbasTikz}{ O{} D<>{} m }%1=options,2=libellés
{
\useKVdefault[PLTIKZARBRE]
\setKV[PLTIKZARBRE]{#1}
\setsepchar[.]{,./}%
- \readlist*\PLARBREDONNES{#2}
- \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ \readlist*\PLARBREDONNES{#3}
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite,#2]
%styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
+ \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds]
+ \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas]
\ifboolKV[PLTIKZARBRE]{InclineProbas}
{\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]}
{\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]}
\ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
%arbre2x2
\IfEq{\PLAPtype}{2x2}
{%
@@ -1224,4 +1231,511 @@
}%
}
+%====ARBRES CHOIX
+\RequirePackage{commalists-tools}
+
+\tikzset{arbrechoixaretes/.style={semithick}}
+\tikzset{arbrechoixsommets/.style={circle,draw=none,inner sep=1pt}}
+\tikzset{arbrechoixresultats/.style={rectangle,draw,inner sep=1.5pt}}
+\tikzset{arbrechoixnotices/.style={inner sep=1pt,font=\small\ttfamily,midway,below=\fpeval{0.75*\LISTECHOIXinterfeuille}cm,}}
+\tikzset{arbrechoixdeconotices/.style={semithick,decoration={brace,mirror,raise=\fpeval{0.25*\LISTECHOIXechelle*\LISTECHOIXinterfeuille}cm,amplitude=\fpeval{0.5*\LISTECHOIXechelle*\LISTECHOIXinterfeuille}cm},decorate}}
+
+%https://tex.stackexchange.com/questions/73173/how-to-change-the-item-separator-in-tikz-foreach-command/174135#174135
+%Mark Wibrow := CC BY-SA 3.0
+\makeatletter
+\let\pgffor@dotsscanend@original=\pgffor@dotsscanend
+\def\PGFFOR@PARAMDELIM#1{%
+ \def\pgffor@emptyvalues{#1 \pgffor@stop#1}%
+ \def\pgffor@normal@list##1{%
+ \def\pgffor@values{##1#1 \pgffor@stop#1}%
+ \ifx\pgffor@values\pgffor@emptyvalues
+ \def\pgffor@values{\pgffor@stop#1}%
+ \fi%
+ \let\pgffor@body=\pgfutil@empty%
+ \global\pgffor@continuetrue%
+ \pgffor@collectbody}%
+ \def\pgffor@scanround(##1)##2#1{\def\pgffor@value{(##1)##2}\pgffor@scanned}%
+ \def\pgffor@scanone##1#1{\def\pgffor@value{##1}\pgffor@scanned}%
+ \def\pgffor@dotsscanend##1#1{\pgffor@dotsscanend@original##1,}%
+}
+
+\pgfkeys{/pgf/foreach/separator/.code=\PGFFOR@PARAMDELIM{#1}}
+\makeatother
+
+\defKV[arbrechoix]{%
+ EspaceNiveaux=\def\LISTECHOIXinterniv{#1},%
+ EspaceFeuilles=\def\LISTECHOIXinterfeuille{#1},%
+ Echelle=\def\LISTECHOIXechelle{#1},%
+ Repet=\def\LISTECHOIXrepet{#1},%
+ Notice=\def\LISTECHOIXnotice{#1},%
+ CouleursNiveaux=\def\LISTECHOIXcoulniv{#1},%
+ SepResultats=\def\LISTECHOIXsepres{#1}
+}
+
+\setKVdefault[arbrechoix]{%
+ EspaceNiveaux=2.25,%
+ EspaceFeuilles=0.5,%
+ Echelle=1,%
+ Repet={},%
+ Notice={},%
+ TraitsNotice=false,%
+ CouleursNiveaux=black,%
+ AffResultats=false,%
+ SepResultats={}
+}
+
+\NewDocumentCommand\ArbreChoix{ O{} D<>{} m }{%
+ \restoreKV[arbrechoix]%
+ \setKV[arbrechoix]{#1}%
+ \def\LISTECHOIX{#3}%
+ \IfEq{\LISTECHOIXrepet}{}%
+ {}%
+ {%
+ \foreach \i in {2,...,\LISTECHOIXrepet}{%
+ \xdef\LISTECHOIX{\LISTECHOIX,#3}%
+ }%
+ }%
+ %données utiles
+ \setsepchar[.]{,./}%
+ \readlist*\TRLISTECHOIX{\LISTECHOIX}%
+ %les couleurs...
+ \IfSubStr{\LISTECHOIXcoulniv}{,}%
+ {%
+ \setsepchar{,}%
+ \readlist*\TRLISTECHOIXCOUL{\LISTECHOIXcoulniv}%
+ }%
+ {%
+ \xdef\tmplistcouleurs{\LISTECHOIXcoulniv}%
+ \foreach \i in {2,...,\TRLISTECHOIXlen}{%
+ \xdef\tmplistcouleurs{\tmplistcouleurs,\LISTECHOIXcoulniv}%
+ }%
+ \setsepchar{,}%
+ \readlist*\TRLISTECHOIXCOUL{\tmplistcouleurs}%
+ }%
+ %la figure
+ \begin{tikzpicture}[scale=\LISTECHOIXechelle,transform shape,#2]
+ %création de la liste des étapes intermédiaires
+ \def\tmpnbchoix{1}
+ \def\tmpnbchoixniv{1}
+ \def\tmplistnbchoix{1}
+ \foreach \i in {1,...,\TRLISTECHOIXlen}{%
+ \itemtomacro\TRLISTECHOIX[\i]\tmptrlistchoix%
+ \setsepchar[.]{/}%
+ \readlist*\TRLISTECHOIXTMP{\tmptrlistchoix}%
+ \xdef\tmpnbchoix{\xinteval{\tmpnbchoix*\TRLISTECHOIXTMPlen}}%
+ \xdef\tmpnbchoixniv{\tmpnbchoixniv,\TRLISTECHOIXTMPlen}%nb choix par niveau
+ \xdef\tmplistnbchoix{\tmplistnbchoix,\tmpnbchoix}%nb choix petit à petit
+ }%
+ %données utiles tout le temps
+ \getvaluefromlist{\tmplistnbchoix}{-1}[\nbeltstotal]%
+ %découpage horizontal
+ \ifboolKV[arbrechoix]{TraitsNotice}%
+ {%
+ \foreach \i in {1,...,\TRLISTECHOIXlen}{%
+ \draw[semithick,lightgray!50,densely dashed] ({\i*\LISTECHOIXinterniv},0) --++ (0,{\nbeltstotal*\LISTECHOIXinterfeuille}) ;
+ }%
+ }%
+ {}%
+ %boucle décroissante (OK !!)
+ \foreach \TTT in {\TRLISTECHOIXlen,...,1}{%
+ %\xdef\invTTT{\xinteval{\TRLISTECHOIXlen-\TTT+1}}%
+ \getvaluefromlist{\tmplistnbchoix}{\numexpr\TTT+1\relax}[\nbelts]%
+ \xdef\espchoiceV{\xintfloateval{(\nbeltstotal)/\nbelts}}%
+ \xdef\offsetchoiceV{\xintfloateval{0.5*\LISTECHOIXinterfeuille*(\nbeltstotal-(\nbelts-1)*\espchoiceV)}}%
+ \getvaluefromlist{\tmplistnbchoix}{\TTT}[\nbeltsavant]%
+ \xdef\tmpmodchoix{\xintieval{\nbelts/\nbeltsavant}}%
+ \foreach \i in {1,...,\nbelts}{%
+ \xdef\tmpii{\xinteval{\xintiiRem{\xinteval{\i-1}}{\tmpmodchoix}+1}}%
+ \node[arbrechoixsommets,text={\TRLISTECHOIXCOUL[\TTT]}] (N-\TTT-\i) at ({(\TTT)*\LISTECHOIXinterniv},{\offsetchoiceV+(\nbelts-\i)*\LISTECHOIXinterfeuille*\espchoiceV}) {\TRLISTECHOIX[\TTT,\tmpii]} ;
+ }
+ \ifnum\TTT=\TRLISTECHOIXlen%
+ \coordinate (N-0-1) at ({0*\LISTECHOIXinterniv},{\offsetchoiceV+0.5*(\nbeltstotal-1)*\LISTECHOIXinterfeuille} );
+ \fi
+ }
+ %les flèches
+ \foreach \j in {1,...,\TRLISTECHOIXlen}{%
+ \getvaluefromlist{\tmplistnbchoix}{\j}[\nbnoeuds]%nb nœuds de départ
+ \getvaluefromlist{\tmpnbchoixniv}{\numexpr\j+1\relax}[\nbfleches]%nb flèche par nœud
+ \foreach \i in {1,...,\nbnoeuds}{%
+ \foreach \k in {1,...,\nbfleches}{%
+ \xdef\tmpk{\xinteval{(\i-1)*(\nbfleches)+\k}}
+ \draw[arbrechoixaretes,color={\TRLISTECHOIXCOUL[\j]}] (N-\the\numexpr\j-1\relax-\i) -- (N-\j-\tmpk) ;
+ }
+ }
+ }
+ %notice
+ \IfEq{\LISTECHOIXnotice}{}%
+ {}%
+ {%
+ \foreach \notice [count=\i] in \LISTECHOIXnotice
+ {%
+ \draw[arbrechoixdeconotices] ({(\i-1)*\LISTECHOIXinterniv},0) -- ({(\i)*\LISTECHOIXinterniv},0) node[arbrechoixnotices] {\notice} ;
+ }%
+ }%
+ %listerésultats
+ \ifboolKV[arbrechoix]{AffResultats}%
+ {%
+ \xdef\malistedecombis{}%
+ \ifnum\TRLISTECHOIXlen=2%
+ \itemtomacro\TRLISTECHOIX[1]\myfirsttmp%
+ \itemtomacro\TRLISTECHOIX[2]\mysecondtmp%
+ \foreach \i [separator=/] in \myfirsttmp {%
+ \foreach \j [separator=/] in \mysecondtmp {
+ \xdef\malistedecombis{\malistedecombis,\i\LISTECHOIXsepres\j}%
+ }%
+ }%
+ \fi
+ \ifnum\TRLISTECHOIXlen=3%
+ \itemtomacro\TRLISTECHOIX[1]\myfirsttmp%
+ \itemtomacro\TRLISTECHOIX[2]\mysecondtmp%
+ \itemtomacro\TRLISTECHOIX[3]\mythirdtmp%
+ \foreach \i [separator=/] in \myfirsttmp {%
+ \foreach \j [separator=/] in \mysecondtmp {
+ \foreach \k [separator=/] in \mythirdtmp {
+ \xdef\malistedecombis{\malistedecombis,\i\LISTECHOIXsepres\j\LISTECHOIXsepres\k}%
+ }%
+ }%
+ }%
+ \fi
+ \ifnum\TRLISTECHOIXlen=4%
+ \itemtomacro\TRLISTECHOIX[1]\myfirsttmp%
+ \itemtomacro\TRLISTECHOIX[2]\mysecondtmp%
+ \itemtomacro\TRLISTECHOIX[3]\mythirdtmp%
+ \itemtomacro\TRLISTECHOIX[4]\myfourthtmp%
+ \foreach \i [separator=/] in \myfirsttmp {%
+ \foreach \j [separator=/] in \mysecondtmp {
+ \foreach \k [separator=/] in \mythirdtmp {
+ \foreach \l [separator=/] in \myfourthtmp {
+ \xdef\malistedecombis{\malistedecombis,\i\LISTECHOIXsepres\j\LISTECHOIXsepres\k\LISTECHOIXsepres\l}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+ \ifnum\TRLISTECHOIXlen=5%
+ \itemtomacro\TRLISTECHOIX[1]\myfirsttmp%
+ \itemtomacro\TRLISTECHOIX[2]\mysecondtmp%
+ \itemtomacro\TRLISTECHOIX[3]\mythirdtmp%
+ \itemtomacro\TRLISTECHOIX[4]\myfourthtmp%
+ \itemtomacro\TRLISTECHOIX[5]\myfifthtmp%
+ \foreach \i [separator=/] in \myfirsttmp {%
+ \foreach \j [separator=/] in \mysecondtmp {
+ \foreach \k [separator=/] in \mythirdtmp {
+ \foreach \l [separator=/] in \myfourthtmp {
+ \foreach \m [separator=/] in \myfifthtmp {
+ \xdef\malistedecombis{\malistedecombis,\i\LISTECHOIXsepres\j\LISTECHOIXsepres\k\LISTECHOIXsepres\l\LISTECHOIXsepres\m}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \fi
+ \foreach \i in {1,...,\nbeltstotal}{%
+ \xdef\j{\xinteval{\i+1}}%
+ \draw (N-\TRLISTECHOIXlen-\i) node[arbrechoixresultats,right=\fpeval{0.5*\LISTECHOIXechelle*\LISTECHOIXinterniv}cm] {\getvaluefromlist*\malistedecombis{\j}} ;
+ }
+ }%
+ {}%
+ \end{tikzpicture}%
+}
+
+\NewDocumentCommand\IntNoeudArbreSansRemise{ m m m }{%
+ \node[arbrechoixsommets,text={\TRLISTECHOIXCOUL[#1]}] (T-#1-#2) at (N-#1-#2) {\TRLISTECHOIX[#3]} ;
+}
+\NewDocumentCommand\IntAreteArbreSansRemise{ m m }{%
+ \draw[arbrechoixaretes] (T-#1) -- (T-#2) ;
+}
+
+\NewDocumentCommand\ArbreChoixSansRemise{ O{} D<>{} m }{%
+ \restoreKV[arbrechoix]%
+ \setKV[arbrechoix]{#1}%
+ \def\LISTECHOIX{#3}%
+ %couleurs
+ \readlist*\TRLISTECHOIX{\LISTECHOIX}%
+ \IfSubStr{\LISTECHOIXcoulniv}{,}%
+ {%
+ \setsepchar{,}%
+ \readlist*\TRLISTECHOIXCOUL{\LISTECHOIXcoulniv}%
+ }%
+ {%
+ \xdef\tmplistcouleurs{\LISTECHOIXcoulniv}%
+ \foreach \i in {2,...,\TRLISTECHOIXlen}{%
+ \xdef\tmplistcouleurs{\tmplistcouleurs,\LISTECHOIXcoulniv}%
+ }%
+ \setsepchar{,}%
+ \readlist*\TRLISTECHOIXCOUL{\tmplistcouleurs}%
+ }%
+ %figure
+ \begin{tikzpicture}[scale=\LISTECHOIXechelle,transform shape,#2]
+ %création de la liste des étapes intermédiaires (OK)
+ \def\tmpnbchoixniv{\TRLISTECHOIXlen}%
+ \def\tmplistnbchoix{1,\TRLISTECHOIXlen}%
+ \def\tmplistnbchoixfact{\TRLISTECHOIXlen}%
+ \foreach \i in {1,...,\xinteval{\TRLISTECHOIXlen-1}}{%
+ \xdef\tmpnbchoix{\xinteval{\TRLISTECHOIXlen-\i}}%
+ \xdef\tmpnbchoixniv{\tmpnbchoixniv,\tmpnbchoix}%nb nœuds par niveau
+ \xdef\tmplistnbchoixfact{\xinteval{\tmplistnbchoixfact*(\TRLISTECHOIXlen-\i)}}%
+ \xdef\tmplistnbchoix{\tmplistnbchoix,\tmplistnbchoixfact}%nb choix petit à petit
+ }
+ %données utiles tout le temps
+ \getvaluefromlist{\tmplistnbchoix}{-1}[\nbeltstotal]%
+ \ifboolKV[arbrechoix]{TraitsNotice}%
+ %notice découpage
+ {%
+ \foreach \i in {1,...,\TRLISTECHOIXlen}{%
+ \draw[semithick,lightgray!50,densely dashed] ({\i*\LISTECHOIXinterniv},0) --++ (0,{\nbeltstotal*\LISTECHOIXinterfeuille}) ;
+ }%
+ }%
+ {}%
+ %boucle décroissante pour la création des nœuds
+ \foreach \TTT in {\TRLISTECHOIXlen,...,1}{%
+ \getvaluefromlist{\tmplistnbchoix}{\numexpr\TTT+1\relax}[\nbelts]%
+ \xdef\espchoiceV{\xintfloateval{(\nbeltstotal)/\nbelts}}%
+ \xdef\offsetchoiceV{\xintfloateval{0.5*\LISTECHOIXinterfeuille*(\nbeltstotal-(\nbelts-1)*\espchoiceV)}}%
+ \foreach \i in {1,...,\nbelts}{%
+ \coordinate (N-\TTT-\i) at ({(\TTT)*\LISTECHOIXinterniv},{\offsetchoiceV+(\nbelts-\i)*\LISTECHOIXinterfeuille*\espchoiceV});
+ }
+ \ifnum\TTT=\TRLISTECHOIXlen%
+ \coordinate (T-0-1) at ({0*\LISTECHOIXinterniv},{\offsetchoiceV+0.5*(\nbeltstotal-1)*\LISTECHOIXinterfeuille} );
+ \fi
+ }
+ %les sommets et les flèches ??
+ \ifnum\TRLISTECHOIXlen=4%
+ %N1
+ \IntNoeudArbreSansRemise{1}{1}{1}
+ \IntNoeudArbreSansRemise{1}{2}{2}
+ \IntNoeudArbreSansRemise{1}{3}{3}
+ \IntNoeudArbreSansRemise{1}{4}{4}
+ \IntAreteArbreSansRemise{0-1}{1-1}
+ \IntAreteArbreSansRemise{0-1}{1-2}
+ \IntAreteArbreSansRemise{0-1}{1-3}
+ \IntAreteArbreSansRemise{0-1}{1-4}
+ %N2
+ \IntNoeudArbreSansRemise{2}{1}{2}
+ \IntNoeudArbreSansRemise{2}{2}{3}
+ \IntNoeudArbreSansRemise{2}{3}{4}
+ \IntNoeudArbreSansRemise{2}{4}{1}
+ \IntNoeudArbreSansRemise{2}{5}{3}
+ \IntNoeudArbreSansRemise{2}{6}{4}
+ \IntNoeudArbreSansRemise{2}{7}{1}
+ \IntNoeudArbreSansRemise{2}{8}{2}
+ \IntNoeudArbreSansRemise{2}{9}{4}
+ \IntNoeudArbreSansRemise{2}{10}{1}
+ \IntNoeudArbreSansRemise{2}{11}{2}
+ \IntNoeudArbreSansRemise{2}{12}{3}
+ \IntAreteArbreSansRemise{1-1}{2-1}
+ \IntAreteArbreSansRemise{1-1}{2-2}
+ \IntAreteArbreSansRemise{1-1}{2-3}
+ \IntAreteArbreSansRemise{1-2}{2-4}
+ \IntAreteArbreSansRemise{1-2}{2-5}
+ \IntAreteArbreSansRemise{1-2}{2-6}
+ \IntAreteArbreSansRemise{1-3}{2-7}
+ \IntAreteArbreSansRemise{1-3}{2-8}
+ \IntAreteArbreSansRemise{1-3}{2-9}
+ \IntAreteArbreSansRemise{1-4}{2-10}
+ \IntAreteArbreSansRemise{1-4}{2-11}
+ \IntAreteArbreSansRemise{1-4}{2-12}
+ %N3
+ \IntNoeudArbreSansRemise{3}{1}{3}
+ \IntNoeudArbreSansRemise{3}{2}{4}
+ \IntNoeudArbreSansRemise{3}{3}{2}
+ \IntNoeudArbreSansRemise{3}{4}{4}
+ \IntNoeudArbreSansRemise{3}{5}{2}
+ \IntNoeudArbreSansRemise{3}{6}{3}
+ \IntNoeudArbreSansRemise{3}{7}{3}
+ \IntNoeudArbreSansRemise{3}{8}{4}
+ \IntNoeudArbreSansRemise{3}{9}{1}
+ \IntNoeudArbreSansRemise{3}{10}{4}
+ \IntNoeudArbreSansRemise{3}{11}{1}
+ \IntNoeudArbreSansRemise{3}{12}{3}
+ \IntNoeudArbreSansRemise{3}{13}{2}
+ \IntNoeudArbreSansRemise{3}{14}{4}
+ \IntNoeudArbreSansRemise{3}{15}{1}
+ \IntNoeudArbreSansRemise{3}{16}{4}
+ \IntNoeudArbreSansRemise{3}{17}{1}
+ \IntNoeudArbreSansRemise{3}{18}{2}
+ \IntNoeudArbreSansRemise{3}{19}{2}
+ \IntNoeudArbreSansRemise{3}{20}{3}
+ \IntNoeudArbreSansRemise{3}{21}{1}
+ \IntNoeudArbreSansRemise{3}{22}{3}
+ \IntNoeudArbreSansRemise{3}{23}{1}
+ \IntNoeudArbreSansRemise{3}{24}{2}
+ \IntAreteArbreSansRemise{2-1}{3-1}
+ \IntAreteArbreSansRemise{2-1}{3-2}
+ \IntAreteArbreSansRemise{2-2}{3-3}
+ \IntAreteArbreSansRemise{2-2}{3-4}
+ \IntAreteArbreSansRemise{2-3}{3-5}
+ \IntAreteArbreSansRemise{2-3}{3-6}
+ \IntAreteArbreSansRemise{2-4}{3-7}
+ \IntAreteArbreSansRemise{2-4}{3-8}
+ \IntAreteArbreSansRemise{2-5}{3-9}
+ \IntAreteArbreSansRemise{2-5}{3-10}
+ \IntAreteArbreSansRemise{2-6}{3-11}
+ \IntAreteArbreSansRemise{2-6}{3-12}
+ \IntAreteArbreSansRemise{2-7}{3-13}
+ \IntAreteArbreSansRemise{2-7}{3-14}
+ \IntAreteArbreSansRemise{2-8}{3-15}
+ \IntAreteArbreSansRemise{2-8}{3-16}
+ \IntAreteArbreSansRemise{2-9}{3-17}
+ \IntAreteArbreSansRemise{2-9}{3-18}
+ \IntAreteArbreSansRemise{2-10}{3-19}
+ \IntAreteArbreSansRemise{2-10}{3-20}
+ \IntAreteArbreSansRemise{2-11}{3-21}
+ \IntAreteArbreSansRemise{2-11}{3-22}
+ \IntAreteArbreSansRemise{2-12}{3-23}
+ \IntAreteArbreSansRemise{2-12}{3-24}
+ %N4
+ \IntNoeudArbreSansRemise{4}{1}{4}
+ \IntNoeudArbreSansRemise{4}{2}{3}
+ \IntNoeudArbreSansRemise{4}{3}{4}
+ \IntNoeudArbreSansRemise{4}{4}{2}
+ \IntNoeudArbreSansRemise{4}{5}{3}
+ \IntNoeudArbreSansRemise{4}{6}{2}
+ \IntNoeudArbreSansRemise{4}{7}{4}
+ \IntNoeudArbreSansRemise{4}{8}{3}
+ \IntNoeudArbreSansRemise{4}{9}{4}
+ \IntNoeudArbreSansRemise{4}{10}{1}
+ \IntNoeudArbreSansRemise{4}{11}{3}
+ \IntNoeudArbreSansRemise{4}{12}{1}
+ \IntNoeudArbreSansRemise{4}{13}{4}
+ \IntNoeudArbreSansRemise{4}{14}{2}
+ \IntNoeudArbreSansRemise{4}{15}{4}
+ \IntNoeudArbreSansRemise{4}{16}{1}
+ \IntNoeudArbreSansRemise{4}{17}{2}
+ \IntNoeudArbreSansRemise{4}{18}{1}
+ \IntNoeudArbreSansRemise{4}{19}{3}
+ \IntNoeudArbreSansRemise{4}{20}{2}
+ \IntNoeudArbreSansRemise{4}{21}{3}
+ \IntNoeudArbreSansRemise{4}{22}{1}
+ \IntNoeudArbreSansRemise{4}{23}{2}
+ \IntNoeudArbreSansRemise{4}{24}{1}
+ \IntAreteArbreSansRemise{3-1}{4-1}
+ \IntAreteArbreSansRemise{3-2}{4-2}
+ \IntAreteArbreSansRemise{3-3}{4-3}
+ \IntAreteArbreSansRemise{3-4}{4-4}
+ \IntAreteArbreSansRemise{3-5}{4-5}
+ \IntAreteArbreSansRemise{3-6}{4-6}
+ \IntAreteArbreSansRemise{3-7}{4-7}
+ \IntAreteArbreSansRemise{3-8}{4-8}
+ \IntAreteArbreSansRemise{3-9}{4-9}
+ \IntAreteArbreSansRemise{3-10}{4-10}
+ \IntAreteArbreSansRemise{3-11}{4-11}
+ \IntAreteArbreSansRemise{3-12}{4-12}
+ \IntAreteArbreSansRemise{3-13}{4-13}
+ \IntAreteArbreSansRemise{3-14}{4-14}
+ \IntAreteArbreSansRemise{3-15}{4-15}
+ \IntAreteArbreSansRemise{3-16}{4-16}
+ \IntAreteArbreSansRemise{3-17}{4-17}
+ \IntAreteArbreSansRemise{3-18}{4-18}
+ \IntAreteArbreSansRemise{3-19}{4-19}
+ \IntAreteArbreSansRemise{3-20}{4-20}
+ \IntAreteArbreSansRemise{3-21}{4-21}
+ \IntAreteArbreSansRemise{3-22}{4-22}
+ \IntAreteArbreSansRemise{3-23}{4-23}
+ \IntAreteArbreSansRemise{3-24}{4-24}
+ \fi
+ \ifnum\TRLISTECHOIXlen=3%
+ %N1
+ \IntNoeudArbreSansRemise{1}{1}{1}
+ \IntNoeudArbreSansRemise{1}{2}{2}
+ \IntNoeudArbreSansRemise{1}{3}{3}
+ \IntAreteArbreSansRemise{0-1}{1-1}
+ \IntAreteArbreSansRemise{0-1}{1-2}
+ \IntAreteArbreSansRemise{0-1}{1-3}
+ %N2
+ \IntNoeudArbreSansRemise{2}{1}{2}
+ \IntNoeudArbreSansRemise{2}{2}{3}
+ \IntNoeudArbreSansRemise{2}{3}{1}
+ \IntNoeudArbreSansRemise{2}{4}{3}
+ \IntNoeudArbreSansRemise{2}{5}{1}
+ \IntNoeudArbreSansRemise{2}{6}{2}
+ \IntAreteArbreSansRemise{1-1}{2-1}
+ \IntAreteArbreSansRemise{1-1}{2-2}
+ \IntAreteArbreSansRemise{1-2}{2-3}
+ \IntAreteArbreSansRemise{1-2}{2-4}
+ \IntAreteArbreSansRemise{1-3}{2-5}
+ \IntAreteArbreSansRemise{1-3}{2-6}
+ %N3
+ \IntNoeudArbreSansRemise{3}{1}{3}
+ \IntNoeudArbreSansRemise{3}{2}{2}
+ \IntNoeudArbreSansRemise{3}{3}{3}
+ \IntNoeudArbreSansRemise{3}{4}{1}
+ \IntNoeudArbreSansRemise{3}{5}{2}
+ \IntNoeudArbreSansRemise{3}{6}{1}
+ \IntAreteArbreSansRemise{2-1}{3-1}
+ \IntAreteArbreSansRemise{2-2}{3-2}
+ \IntAreteArbreSansRemise{2-3}{3-3}
+ \IntAreteArbreSansRemise{2-4}{3-4}
+ \IntAreteArbreSansRemise{2-5}{3-5}
+ \IntAreteArbreSansRemise{2-6}{3-6}
+ \fi
+ \ifnum\TRLISTECHOIXlen=2%
+ %N1
+ \IntNoeudArbreSansRemise{1}{1}{1}
+ \IntNoeudArbreSansRemise{1}{2}{2}
+ \IntAreteArbreSansRemise{0-1}{1-1}
+ \IntAreteArbreSansRemise{0-1}{1-2}
+ %N2
+ \IntNoeudArbreSansRemise{2}{1}{2}
+ \IntNoeudArbreSansRemise{2}{2}{1}
+ \IntAreteArbreSansRemise{1-1}{2-1}
+ \IntAreteArbreSansRemise{1-2}{2-2}
+ \fi
+ %notice
+ \IfEq{\LISTECHOIXnotice}{}%
+ {}%
+ {%
+ \foreach \notice [count=\i] in \LISTECHOIXnotice
+ {%
+ \draw[arbrechoixdeconotices] ({(\i-1)*\LISTECHOIXinterniv},0) -- ({(\i)*\LISTECHOIXinterniv},0) node[arbrechoixnotices] {\notice} ;
+ }
+ }%
+ %listerésultats
+ \ifboolKV[arbrechoix]{AffResultats}%
+ {%
+ \GeneratePermutations[\LISTECHOIXsepres]{#3}[\mylistofpermut]%on génère les permutations !
+ \foreach \i in {1,...,\nbeltstotal}{%
+ \draw (N-\TRLISTECHOIXlen-\i) node[arbrechoixresultats,right=\fpeval{0.5*\LISTECHOIXechelle*\LISTECHOIXinterniv}cm] {\getvaluefromlist*\mylistofpermut{\i}} ;
+ }
+ }%
+ {}%
+ \end{tikzpicture}%
+}
+
+\def\tmplistpermuttwo{{1,2},{2,1}}
+\def\tmplistpermutthree{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}}
+\def\tmplistpermutfour{{1,2,3,4},{1,2,4,3},{1,3,2,4},{1,3,4,2},{1,4,2,3},{1,4,3,2},{2,1,3,4},{2,1,4,3},{2,3,1,4},{2,3,4,1},{2,4,1,3},{2,4,3,1},{3,1,2,4},{3,1,4,2},{3,2,1,4},{3,2,4,1},{3,4,1,2},{3,4,2,1},{4,1,2,3},{4,1,3,2},{4,2,1,3},{4,2,3,1},{4,3,1,2},{4,3,2,1}}
+
+\NewDocumentCommand\GeneratePermutations{ O{-} m O{\mylistofpermut} }{%
+ \lenoflist{#2}[\resmylen]%
+ \ifnum\resmylen=2%
+ \xdef\tmplistindex{\tmplistpermuttwo}%
+ \fi%
+ \ifnum\resmylen=3%
+ \xdef\tmplistindex{\tmplistpermutthree}%
+ \fi%
+ \ifnum\resmylen=4%
+ \xdef\tmplistindex{\tmplistpermutfour}%
+ \fi%
+ \lenoflist{\tmplistindex}[\resmylenindex]%
+ \xdef\tmpstringperm{}%
+ \xdef#3{}%
+ \foreach \i in {1,...,\resmylenindex}{%
+ \getvaluefromlist{\tmplistindex}{\i}[\mytmplst]%
+ \lenoflist{\mytmplst}[\resmylentmptmp]%
+ \foreach \j [count=\iii] in \mytmplst {%
+ \ifnum\iii=1%
+ \xdef\tmpstringperm{\getvaluefromlist*{#2}{\j}}%
+ \else%
+ \xdef\tmpstringperm{\tmpstringperm#1\getvaluefromlist*{#2}{\j}}%
+ \fi%
+ }%
+ \ifnum\i=1%
+ \xdef#3{\tmpstringperm}%
+ \else%
+ \xdef#3{#3,\tmpstringperm}%
+ \fi%
+ }%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
index 7bdc44ed02..4187c3ba4d 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
@@ -610,4 +610,122 @@
\end{tikzpicture}
}
+%====PYRAMIDE D'ORANGES
+\usetikzlibrary{shadings}
+\usepackage{simplekv}
+
+\setKVdefault[PyrBalls]{%
+ Couleur=gray,%
+ Rotation=-5,%
+ Echelle=1
+}
+
+\NewDocumentCommand\EmpilementBalles{ O{} m }{%
+ \restoreKV[PyrBalls]%
+ \setKV[PyrBalls]{#1}%
+ \IfSubStr{#2}{-}%
+ {%
+ \StrCut{#2}{-}{\pyrballsdeb}{\pyrballsfin}%
+ \foreach \i in {\pyrballsdeb,...,\pyrballsfin}{%
+ \begin{tikzpicture}[scale=\fpeval{0.5*\useKV[PyrBalls]{Echelle}},rotate={\useKV[PyrBalls]{Rotation}},transform shape]
+ \foreach \x in {\numexpr\i-1\relax,...,0}{
+ \foreach \y in {\x,...,\numexpr\i-1\relax}{
+ %côté gauche
+ \shade[ball color={\useKV[PyrBalls]{Couleur}},shading angle=50] (0.6*\x,-\y+0.3*\x) circle[radius=0.55] ;
+ %côté 'droit'
+ \shade[ball color={\useKV[PyrBalls]{Couleur}},shading angle=0] (-0.6*\x,-\y+0.3*\x) circle[radius=0.55] ;
+ }
+ }
+ \end{tikzpicture}%
+ }%
+ }%
+ {%
+ \begin{tikzpicture}[scale={\useKV[PyrBalls]{Echelle}},rotate={\useKV[PyrBalls]{Rotation}},transform shape]
+ \foreach \x in {\numexpr#2-1\relax,...,0}{
+ \foreach \y in {\x,...,\numexpr#2-1\relax}{
+ %côté gauche
+ \shade[ball color={\useKV[PyrBalls]{Couleur}},shading angle=50] (0.6*\x,-\y+0.3*\x) circle[radius=0.55] ;
+ %côté 'droit'
+ \shade[ball color={\useKV[PyrBalls]{Couleur}},shading angle=0] (-0.6*\x,-\y+0.3*\x) circle[radius=0.55] ;
+ }
+ }
+ \end{tikzpicture}%
+ }%
+}
+
+%====DATES
+\IfPackageLoadedTF{datetime2}%
+ {}%
+ {%
+ \RequirePackage[fr-FR]{datetime2}
+ }%
+
+\RequirePackage{datetime2-calc}
+
+\newcount\tmpmyct
+
+\NewDocumentCommand\JourSelonDate{ s m }{%
+ \StrBehind[2]{#2}{/}[\tmptheyear]%
+ \StrBetween[1,2]{#2}{/}{/}[\tmpthemonth]%
+ \StrBefore[1]{#2}{/}[\tmptheday]%
+ \xdef\tmpdate{\tmptheyear-\tmpthemonth-\tmptheday}%
+ \DTMcomputedayofweekindex{\tmpdate}{\indexjdls}%
+ \IfStrEqCase{\indexjdls}{%
+ {0}{\IfBooleanTF{#1}{L}{l}undi}%
+ {1}{\IfBooleanTF{#1}{M}{m}ardi}%
+ {2}{\IfBooleanTF{#1}{M}{m}ercredi}%
+ {3}{\IfBooleanTF{#1}{J}{j}eudi}%
+ {4}{\IfBooleanTF{#1}{V}{v}endredi}%
+ {5}{\IfBooleanTF{#1}{S}{s}amedi}%
+ {6}{\IfBooleanTF{#1}{D}{d}imanche}%
+ }{}%
+}
+
+\NewDocumentCommand\DateComplete{ s m }{%
+ \IfBooleanTF{#1}%
+ {%
+ \JourSelonDate*{#2} %
+ }%
+ {
+ \JourSelonDate{#2} %
+ }%
+ \xdef\tmpdateinit{\tmptheyear-\tmpthemonth-\tmptheday}%
+ \DTMsavedate{datecplt}{\tmpdateinit}%
+ \DTMusedate{datecplt}{}%
+}
+
+\NewDocumentCommand\NbJoursEntreDates{ s m m O{\nbjoursentre} }{%
+ \StrBehind[2]{#2}{/}[\tmptheyear]%
+ \StrBetween[1,2]{#2}{/}{/}[\tmpthemonth]%
+ \StrBefore[1]{#2}{/}[\tmptheday]%
+ \xdef\tmpdateA{\tmptheyear-\tmpthemonth-\tmptheday}%
+ \StrBehind[2]{#3}{/}[\tmptheyear]%
+ \StrBetween[1,2]{#3}{/}{/}[\tmpthemonth]%
+ \StrBefore[1]{#3}{/}[\tmptheday]%
+ \xdef\tmpdateB{\tmptheyear-\tmpthemonth-\tmptheday}%
+ \DTMsavedate{dateinitiale}{\tmpdateA}%
+ \DTMsavedate{datefinale}{\tmpdateB}%
+ \DTMsaveddatediff{dateinitiale}{datefinale}{\tmpmyct}%
+ \xdef#4{\fpeval{abs(\tmpmyct)}}%
+ \IfBooleanT{#1}{#4}%
+}
+
+\NewDocumentCommand\AjoutJoursDate{ s m m }{%
+ \StrBehind[2]{#2}{/}[\tmptheyear]%
+ \StrBetween[1,2]{#2}{/}{/}[\tmpthemonth]%
+ \StrBefore[1]{#2}{/}[\tmptheday]%
+ \xdef\tmpdateinit{\tmptheyear-\tmpthemonth-\tmptheday}%
+ \DTMsavedate{dateinitiale}{\tmpdateinit}%
+ \DTMsaveddateoffsettojulianday{dateinitiale}{#3}\tmpmyct%
+ \DTMsavejulianday{datefinale}{\number\tmpmyct}%
+ \IfBooleanTF{#1}%
+ {%
+ \DTMfetchday{datefinale}/\DTMfetchmonth{datefinale}/\DTMfetchyear{datefinale}{}%
+ }%
+ {%
+ \DTMusedate{datefinale}{}%
+ }%
+}
+
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
index 89fe894503..3a622b183d 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
@@ -555,6 +555,7 @@
% \edef#3{\the\pgf@y}%
% }
+\makeatletter
\defKV[courbeECC]{%
Largeur=\def\ecc@larg@graph{#1},%
Hauteur=\def\ecc@haut@graph{#1},%
@@ -796,6 +797,7 @@
\end{tikzpicture}%
\CourbeECCStylesDefaut%
}
+\makeatother
%détermination 'simple' des paramètres
\NewDocumentCommand\MedianeQuartilesECC{ m m }{%
@@ -838,4 +840,103 @@
}%
}
+%====Paramètres statistiques (stockage/affichage, sans rédaction)
+\NewDocumentCommand\DeterminerParamStats{ s m O{\monmin} O{\monquartileun} O{\mamediane} O{\monquartiletrois} O{\monmax} }{%
+ %traitement de la liste, *=effectifs
+ \IfBooleanTF{#1}%
+ {%
+ \setsepchar[.]{,./}%
+ \readlist*\listeTdonneesregroup{#2}%
+ \def\TMPLST{}%
+ \foreach \i in {1,...,\listeTdonneesregrouplen}{%
+ \itemtomacro\listeTdonneesregroup[\i,1]\myelt%
+ \itemtomacro\listeTdonneesregroup[\i,2]\mynbelt%
+ \foreach \j in {1,...,\mynbelt}{%
+ \xintifboolexpr{ \i*\j == 1}%
+ {%
+ \xdef\TMPLST{\myelt}%
+ }%
+ {%
+ \xdef\TMPLST{\TMPLST,\myelt}%
+ }%
+ }%
+ }%
+ }%
+ {%
+ \xdef\TMPLST{#2}%
+ \sortasclist{\TMPLST}%
+ }%
+ \definemylist{\TMPLST}{\listeTdonneesregroup}%
+ \lenofdeflist{listeTdonneesregroup}[\nbdonnees]%
+ %médiane
+ \xintifboolexpr{ \xintiiRem{\nbdonnees}{2} == 0 }%
+ {%
+ \xdef\tmpranga{\xintfloateval{\nbdonnees/2}}%\tmpranga
+ \xdef\tmprangb{\xintfloateval{\nbdonnees/2+1}}%\tmprangb
+ \getvaluefromdeflist{listeTdonneesregroup}{\tmpranga}[\myvala]%
+ \getvaluefromdeflist{listeTdonneesregroup}{\tmprangb}[\myvalb]%
+ \xdef#5{\xintfloateval{(\myvala+\myvalb)/2}}%
+ }%
+ {%
+ \xdef\tmprang{\xintfloateval{(\nbdonnees+1)/2}}%
+ \getvaluefromdeflist{listeTdonneesregroup}{\tmprang}[#5]%
+ }%
+ %quartileun
+ \xdef\tmprangqa{\xintfloateval{ceil(0.25*\nbdonnees)}}%\tmpranga
+ \getvaluefromdeflist{listeTdonneesregroup}{\tmprangqa}[#4]%
+ %quartiletrois
+ \xdef\tmprangqc{\xintfloateval{ceil(0.75*\nbdonnees)}}%\tmpranga
+ \getvaluefromdeflist{listeTdonneesregroup}{\tmprangqc}[#6]%
+ %min/max
+ \minoflist{\TMPLST}[#3]%
+ \maxoflist{\TMPLST}[#7]%
+ %moyenne
+ \meanofdeflist{listeTdonneesregroup}[\mamoyenne]%
+ %écart-type
+ \xdef\monecarttype{0}%
+ \foreach \i in {1,...,\nbdonnees}{%
+ \getvaluefromdeflist{listeTdonneesregroup}{\i}[\myval]%
+ \xdef\monecarttype{\xintfloateval{\monecarttype+(\myval-\mamoyenne)^2}}%
+ }%
+ \xdef\monecarttype{\xintfloateval{sqrt(\monecarttype/\nbdonnees)}}%
+}
+
+\NewDocumentCommand\DeterminerMoyEctype{ s m O{\mamoyenne} O{\monecarttype} }{%
+ %traitement de la liste, *=effectifs
+ \IfBooleanTF{#1}%
+ {%
+ \setsepchar[.]{,./}%
+ \readlist*\listeTdonneesregroup{#2}%
+ \def\TMPLST{}%
+ \foreach \i in {1,...,\listeTdonneesregrouplen}{%
+ \itemtomacro\listeTdonneesregroup[\i,1]\myelt%
+ \itemtomacro\listeTdonneesregroup[\i,2]\mynbelt%
+ \foreach \j in {1,...,\mynbelt}{%
+ \xintifboolexpr{ \i*\j == 1}%
+ {%
+ \xdef\TMPLST{\myelt}%
+ }%
+ {%
+ \xdef\TMPLST{\TMPLST,\myelt}%
+ }%
+ }%
+ }%
+ }%
+ {%
+ \xdef\TMPLST{#2}%
+ \sortasclist{\TMPLST}%
+ }%
+ \definemylist{\TMPLST}{\listeTdonneesregroup}%
+ \lenofdeflist{listeTdonneesregroup}[\nbdonnees]%
+ %moyenne
+ \meanofdeflist{listeTdonneesregroup}[#3]%
+ %écart-type
+ \xdef#4{0}%
+ \foreach \i in {1,...,\nbdonnees}{%
+ \getvaluefromdeflist{listeTdonneesregroup}{\i}[\myval]%
+ \xdef#4{\xintfloateval{#4+(\myval-\mamoyenne)^2}}%
+ }%
+ \xdef#4{\xintfloateval{sqrt(#4/\nbdonnees)}}%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
index 6efa608f73..f47c9a33bf 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
@@ -35,7 +35,8 @@
Equationsin=false,%
cos=45,%
sin=30,%
- CouleurSol=blue
+ CouleurSol=blue,%
+ ValeursTan=false
}
\newcommand\CercleTrigo[1][]{%
@@ -43,6 +44,28 @@
\setKV[cercletrigo]{#1}
\tikzset{PLval/.style={inner sep=1pt,font=\PLcerclevaleurs,fill=\PLcerclefond}}
\tikzset{PLagl/.style={inner sep=1pt,font=\PLcercleangles,fill=\PLcerclefond}}
+ %tangente ?
+ \ifboolKV[cercletrigo]{ValeursTan}%
+ {%
+ \draw[\PLcerclethick,dotted,gray] (30:\PLcerclerayon)--({\PLcerclerayon},{sqrt(3)/3*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (45:\PLcerclerayon)--({\PLcerclerayon},{\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (60:\PLcerclerayon)--({\PLcerclerayon},{sqrt(3)*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-30:\PLcerclerayon)--({\PLcerclerayon},{-sqrt(3)/3*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon)--({\PLcerclerayon},{-\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-60:\PLcerclerayon)--({\PLcerclerayon},{-sqrt(3)*\PLcerclerayon}) ;
+ \draw[\PLcerclethick] ({\PLcerclerayon},{-1.8*\PLcerclerayon}) -- ({\PLcerclerayon},{1.8*\PLcerclerayon}) ;
+ \ifboolKV[cercletrigo]{AffValeurs}
+ {%
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$1$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-1$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{sqrt(3)*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$\sqrt{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-sqrt(3)*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-\sqrt{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{sqrt(3)/3*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$\tfrac{\sqrt{3}}{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-sqrt(3)/3*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-\tfrac{\sqrt{3}}{3}$} ;
+ }%
+ {}%
+ }%
+ {}%
%valeurs remarquables
\ifboolKV[cercletrigo]{AffAngles}
{%valeursdudessus
diff --git a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
deleted file mode 100644
index 655d73fe6e..0000000000
--- a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
new file mode 100644
index 0000000000..904e35b6ff
--- /dev/null
+++ b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index 9aa462bb76..63490dd7f3 100644
--- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
+++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
@@ -2,20 +2,33 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/05/02}%
+\def\filedate{2024/10/21}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.94}%
+\def\fileversion{0.99-i}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
\newif\if@Dyslexie \@Dyslexiefalse
+\newif\if@CAN \@CANfalse
+\newif\if@Revision \@Revisionfalse
+\newif\if@AssembleCorrections \@AssembleCorrectionsfalse
+\newif\if@Personnel \@Personnelfalse
\DeclareOption{Dyslexie}{\@Dyslexietrue}
+\DeclareOption{CAN}{\@CANtrue}
+\DeclareOption{Revision}{\@Revisiontrue}
+\DeclareOption{AssembleCorrections}{\@AssembleCorrectionstrue}
+\DeclareOption{Personnel}{\@Personneltrue}
\ProcessOptions\relax
+
+\if@AssembleCorrections
+ \AddToHook{env/document/end}[AC]{\PfMAffichageTousCorriges}%
+\fi
+
% packages nécessaires
\RequirePackage{verbatim}%
-
+\RequirePackage{xintexpr}
\RequirePackage{calc}%
\RequirePackage{xlop}%
@@ -34,31 +47,39 @@
\RequirePackage{modulus}%
\RequirePackage{ragged2e}%
-
+\RequirePackage{fontawesome5}
\makeatletter
\gdef\PfMFontSize{\@ptsize}
%\gdef\PfMFontSize{\f@size}
\makeatother
%définition des clés
\RequirePackage{simplekv}%
-\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,OlympiadesAPMEP=false,CorrigeInverse=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,VersSolution=false,AvecEntrainement=false,Small=false,Footnotesize=false,Scriptsize=false,AllDirect=false,AllPouce=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé
+\setKVdefault[Boulot]{PixelArt=false,AMC=false,IntroductionAMC=false,Graine=1,Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,OlympiadesAPMEP=false,LivreHeros=false,CorrigeInverse=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,EntrainementColonnes=false,Epaisseur=0pt,EEpaisseur=0pt,ESansSaut=false,VersSolution=false,AvecEntrainement=false,Small=false,Footnotesize=false,Scriptsize=false,AllDirect=false,AllPouce=false,Input=false}%
\defKV[Boulot]{Colonnes=\setKV[Boulot]{CorrectionColonnes}}%
-\setKVdefault[Cours]{Couleur=Crimson,Theme=Trace écrite,NomExercice=Exercice}%
+\defKV[Boulot]{EColonnes=\setKV[Boulot]{EntrainementColonnes}}%
+\setKVdefault[PixelArt]{Aleatoire=false,Landscape=false,CoupureTableau=false,Fichier={},Lettres={},Largeur={},Hauteur={},ListeCouleurs={},Solution=false,Theme=Essai,Arcenciel=false,LargeurTab=40pt}%
+\defKV[PixelArt]{CoupeTableau=\setKV[PixelArt]{CoupureTableau}}%
+%\defKV[PixelArt]{ListeNombres=\setKV[PixelArt]{Aleatoire}\setsepchar{,}\ignoreemptyitems\readlist*\ListePourLesItems{#1}\reademptyitems}
+\setKVdefault[AMC]{Date=\today,Classe={},Niveau={},Code=\jobname,NomExercice=Exercice,Theme=Numération,Calculatrice=false}%
+\setKVdefault[Cours]{Couleur=Crimson,Theme=Trace \'ecrite,NomExercice=Exercice}%
\setKVdefault[DM]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname}%
\setKVdefault[DS]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false,Sujet=A}%
-\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,}%
-\setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
-\setKVdefault[FdR]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
-\setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false}%
-\setKVdefault[Contrat]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[Beamer]{Theme=Les nombres d\'ecimaux,SousTheme={},Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,}%
+\setKVdefault[Fiche]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[PdT]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[FdR]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[Parcours]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false,Plan=false,Court=false}%
+\setKVdefault[Contrat]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[OlympiadesAPMEP]{Theme=Les nombres d\'ecimaux,Bandeau=false}%
\setKVdefault[ParcoursPerso]{Fichier={}}%
\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}%
\defKV[IE]{Sujet=\setKV[IE]{Sujets}}%
-\setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}%
-\setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lycée
+\setKVdefault[RecapBrevet]{Theme=Les nombres d\'ecimaux,Date=\today,Code={},NomExercice=Exercice}%
+\setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lyc\'ee
du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}%
\setKVdefault[CAN]{Date=\today,Niveau=6,Duree=9,CoefQ=0.4,CoefR=0.35,CoefJ=0.1}%
-\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false,PasEntrainement=false}%
+\setKVdefault[ClesExercices]{Open,NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,Grilles=false,Cinq=false,Huit=false,TitreSol=false,NonUtilise=false,Profile=false,AEntretenir=false,Fragile=false,AvecIndications=false,ACompleter=false,Aide=0,Score=0,EchelleSeyes=8,Ajout={},TitreCorrige=Corrigé de l'exercice,Interieur=false,NombreEleves=0,Categorie=0}%
+%\defKV[ClesExercices]{AMCReponses=\ifboolKV[Boulot]{AMC}{\setKV[ClesExercices]{Open=false}}{}}%
\defKV[ClesExercices]{TitreSolution=\setKV[ClesExercices]{TitreSol}}%
\defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}%
\defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}%
@@ -69,18 +90,28 @@
\defKV[ClesExercices]{Stop=\setKV[ClesExercices]{Stops}}%
\defKV[ClesExercices]{Lignes=\setKV[ClesExercices]{Ligne}}%
\defKV[ClesExercices]{Encart=\setKV[ClesExercices]{Cadres}}%
+\defKV[ClesExercices]{CinqCinq=\setKV[ClesExercices]{Grilles}\setKV[ClesExercices]{Cinq}}%
+\defKV[ClesExercices]{Seyes=\setKV[ClesExercices]{Grilles}\setKV[ClesExercices]{Huit}}%
\def\PfMTexteEncart{Indique ton travail ci-dessous.}%
-\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
+\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=gray!70}%,Csv=false}%
\setKVdefault[SchemaContrat]{Ecart=7mm,Rayon=2.5mm}%
-\setKVdefault[SchemaFdR]{Ecart=7mm,Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
+\setKVdefault[SchemaFdR]{Ecart=7mm,Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Hauteur=1cm,Couleur=gray!70}%,Csv=false}%
+% Commande pour retenir le nombre d'exercices par maquette.Utile seulement pour la clé AssembleCorrection
+\xdef\PfMRetiensLienExoMa{}%
+\xdef\PfMRetiensLienDefMa{}%
+% Commande pour passer des options à travers la clé Input. Elle remplace \input :)
+\NewDocumentCommand\Input{om}{%
+ \def\Relecture{\setKV[ClesExercices]{#1}}%
+ \input{#2}%
+ \def\Relecture{}%
+}%
% Sucres
\makeatletter%
\NewDocumentCommand\PfMDotfill{}{%
\leavevmode%
\cleaders\hb@xt@.44em{\hss\xleaders\hrule width0.33em\hss}\hfill%
\kern\z@}%
-
-%\makeatother%
+\makeatother%
%
\NewDocumentCommand\PfMpointilles{o}{%
\IfNoValueTF{#1}{\PfMDotfill}{\makebox[#1]{\PfMDotfill}}%
@@ -88,7 +119,15 @@
%
\NewDocumentCommand\PfMNbLignesRestantes{}{%
\edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}%
+ \edef\measurepagemax{\dimexpr\textheight\relax}%
+ % \edef\measurepage{\dimeval{\pagegoal-\pagetotal-\baselineskip}}%
\xdef\PfMResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
+ \xdef\PfMResteLignesMax{\fpeval{trunc((\the\measurepagemax)/(\baselineskip),0)}}%
+ \ifnum\PfMResteLignesMax<\PfMResteLignes\relax
+ \xdef\PfMResteLignes{\PfMResteLignesMax}
+ \fi
+ %\xdef\PfMResteLignes{\dimeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
+ %Il reste \PfMResteLignes{} lignes alors que le nombre maximal de lignes sur une page est \PfMResteLignesMax{}.
}%
\NewDocumentCommand\PfMLignesFinales{}{%
@@ -110,12 +149,14 @@
}%
}%
% Definition de longueurs
+\newlength\PfMLargeurTableauPixelArt%
\newlength\PfMLargeurSchemaParcours%
\newlength\PfMRayonSchemaParcours%
\newlength\PfMLargeurSchemaContrat%
\newlength\PfMRayonSchemaContrat%
\newlength\PfMLargeurSchemaFdR%
\newlength\PfMRayonSchemaFdR%
+\newlength\PfMHauteurSchemaFdR%
\newlength\PfMHauteurAppreciation%
\newlength\PfMHauteurRemarque%
\newlength\PfMLargeurQuestion%
@@ -123,41 +164,58 @@
\newlength\PfMLargeurJury%
\newlength\PfMEspaceAvantLignes%
\newlength\PfMEspaceApresLignes%
-\newlength\PfMLargeurComp
+\newlength\PfMLargeurComp%
\newlength\CRRHauteur%
\newlength\PfMEcartSupInterMots%
-\setlength{\CRRHauteur}{10cm}
+\newlength\PfMCoefcompetences%
+\def\PfMCoefCompetences{0.85}%
+\setlength{\CRRHauteur}{10cm}%
\setlength{\PfMHauteurAppreciation}{5cm}%
\setlength{\PfMHauteurRemarque}{5cm}%
-\setlength{\PfMEspaceAvantLignes}{1em}
-\setlength{\PfMEspaceApresLignes}{1em}
+\setlength{\PfMEspaceAvantLignes}{1em}%
+\setlength{\PfMEspaceApresLignes}{1em}%
\setlength{\PfMEcartSupInterMots}{1pt}%
+\setlength{\PfMCoefcompetences}{0.7\linewidth}%
% définition des compteurs
\newcounter{PfMMaquette}%Pour compter le nombres de "travaux"
\setcounter{PfMMaquette}{0}%
+\newcounter{PfMMaquetteSol}[PfMMaquette]%Pour compter le nombres de "travaux" dans les corrections
+\setcounter{PfMMaquetteSol}{0}%
\newcounter{PfMSection}%Pour le barème et ne pas faire obstruction à section
\setcounter{PfMSection}{0}%
\newcounter{PfMExo}[PfMMaquette]%Numéro des exercices
\setcounter{PfMExo}{0}%
-\newcounter{PfMExoSol}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+%\newcounter{PfMExoSolAlea}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+%\setcounter{PfMExoSolAlea}{0}%
+\newcounter{PfMExoSol}[PfMMaquette]%
\setcounter{PfMExoSol}{0}%
\newcounter{PfMExoEntrai}%Pour repérer les entrainements
\setcounter{PfMExoEntrai}{0}%
\newcounter{PfMCorrigeParcoursPerso}%affichage des solutions ou pas dans le cadre d'un parcours perso
\setcounter{PfMCorrigeParcoursPerso}{0}%
+\newcounter{PfMRetiensMapourPP}%Pour retenir le numéro de la maquette de référence pour les parcours perso
+\setcounter{PfMRetiensMapourPP}{0}%
\newcounter{PfMSOS}%Numéro des SOS dans les parcours fléchés
\setcounter{PfMSOS}{0}%
\newcounter{PfMAlea}%Pour repérer les valeurs aléatoires construites automatiquement
\setcounter{PfMAlea}{0}%
+%
+\newcounter{PfMNbListeReponsesAMC}%%Pour différencier les questions lors d'un exercice à plusieurs questions.
+\newcounter{PfMAMCOpen}%%Pour différencier les questions lors d'un exercice à plusieurs questions.
\newcounter{RetiensSol}%Pour l'affichage des solutions
\newcounter{RetiensRep}%Pour l'affichage des reponses.
\newcounter{RetiensInd}%Pour l'affichage des indices.
+\newcounter{RetiensIndic}%Pour l'affichage des indications.
+\newcounter{PfMRetiensQr}%Pour l'affichage des entrainements
\setcounter{RetiensSol}{0}%
\setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{0}%
+\setcounter{RetiensIndic}{0}%
+\setcounter{PfMRetiensQr}{0}%
\newcounter{PfMNbLogo}%Pour décaler les logos sur la ligne haute de tcolorbox
\setcounter{PfMNbLogo}{0}%
\newcount\Orientation%Pour le schéma des parcours
+\newcount\TotalParcoursTikz%Pour le total des exos à utiliser dans l'affichage des parcours tikz
\newcounter{PfMCNNumQ}%
\newcounter{Nbcolonnes}
@@ -166,6 +224,8 @@
\newif\ifPfMDeuxColonnes
\newif\ifPfMRectoVerso
+\newif\ifPfMRevision
+
\makeatletter
\if@twocolumn
\PfMDeuxColonnestrue
@@ -179,6 +239,11 @@
\else
\PfMRectoVersofalse
\fi
+\if@Revision
+ \PfMRevisiontrue
+\else
+ \PfMRevisionfalse
+\fi
\makeatother
% couleurs
@@ -228,6 +293,22 @@
\ifboolKV[Boulot]{CAN}{}{\end{tcolorbox}}%
}%
+\tcbset{%
+ indications/.style={
+ empty,
+ right=0pt,
+ left=0mm,
+ top=0pt,
+ bottom=0pt,
+ frame engine=path,
+ % colframe=Crimson!10,
+ frame hidden,
+ notitle,
+ sharp corners=west,
+ borderline west={3pt}{0pt}{black!50}
+ }
+}
+
%% Option french pour les mathématiques
% By CT
\NewDocumentCommand\TypoMathFrance{}{%
@@ -291,7 +372,7 @@
\NewDocumentCommand\RepartirEffectifTotal{mmm}{%
% #1 valeur de l'effectif total
% #2 nombre de valeurs à obtenir
- % #3 écart acceptable :) autour de la moyenen
+ % #3 écart acceptable :) autour de la moyenne
\xdef\PfCSLEffectifs{}%
\xdef\PfCValeurMoyenneTemp{\fpeval{floor(#1/#2)}}%
\xdef\PfCRetiensRETSomme{}%
@@ -383,8 +464,8 @@
\RenewDocumentCommand\VariableAlea{s m m}{%
\IfBooleanTF{#1}{%
\stepcounter{PfMAlea}%
- \expandafter\xdef\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{#3}}%
- \expandafter\xdef\csname #2\endcsname{\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{#3}}%
+ \expandafter\xdef\csname #2\endcsname{\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
}{%
\xdef#2{\fpeval{#3}}%
}%
@@ -405,13 +486,12 @@
\RenewDocumentCommand\ChoixAlea{s o m m m}{%
\IfBooleanTF{#1}{%
\stepcounter{PfMAlea}%
-% je sauvegarde la valeur \thePfMExo-\thePfMAlea
\IfNoValueTF{#2}{%
- \expandafter\xdef\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
- \expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
}{%
- \expandafter\xdef\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
- \expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
}%
}{%
\IfNoValueTF{#2}{%
@@ -453,7 +533,8 @@
\else%
\xdef\PfMMixFoo{#2}%
\setsepchar{,}\ignoreemptyitems%
- \readlist*\ListeValeursExclues{#4}%
+ \xdef\PfMMixFooEx{#4}%
+ \readlist*\ListeValeursExclues{\PfMMixFooEx}%
\xintFor* ##1 in{\xintSeq{\fpeval{#2+1}}{#3}}\do{%
\xdef\PfMMixFoo{\PfMMixFoo,##1}%
}%
@@ -468,8 +549,12 @@
\ignoreemptyitems%
\readlist*\ListeValeursRetenues{\PfMMixFoo}%
}%
- \MelangeListe{\PfMMixFoo}{#1}%
- \xdef#5{\faa}%
+ \ifnum\ListeValeursRetenueslen=1\relax%
+ \xdef#5{\PfMMixFoo}%
+ \else%
+ \MelangeListe{\PfMMixFoo}{#1}%
+ \xdef#5{\faa}%
+ \fi%
\fi%
}%
@@ -628,7 +713,8 @@
\xdef\PfCRetiensRetenues{}%
\xdef\PfMMixFoo{#2,#3}%
\setsepchar{,}\ignoreemptyitems%
- \readlist*\ListeValeursExclues{#4}%
+ \xdef\PfMMixFooExclues{#4}%
+ \readlist*\ListeValeursExclues{\PfMMixFooExclues}%
\xintFor* ##1 in{\xintSeq{\fpeval{#2+1}}{\fpeval{#3-1}}}\do{%
\xdef\PfCRetiensExclues{0}%
\xintFor* ##2 in{\xintSeq{1}{\ListeValeursExclueslen}}\do{%
@@ -766,21 +852,21 @@
\NewDocumentCommand\RestoreChoixAlea{m}{%
\stepcounter{PfMAlea}%
%Je restaure la valeur \thePfMExoSol-\thePfMAlea
- \expandafter\xdef\csname #1\endcsname{\csname valeur\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname #1\endcsname{\csname valeur\Roman{PfMMaquette}\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}%
}%
\NewDocumentCommand\ExporteListe{mm}{%
%#1 le nom de la liste
%#2 le contenu de la liste.
\stepcounter{PfMAlea}%
- \expandafter\xdef\csname Liste\Roman{PfMExo}\roman{PfMAlea}\endcsname{#2}%
- \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname Liste\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname{#2}%
+ \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMMaquette}\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
}%
\NewDocumentCommand\RestoreListe{m}{%
%#1 le nom de la liste à restaurer
\stepcounter{PfMAlea}%
- \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}%
+ \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMMaquette}\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}%
}%
%%
@@ -791,7 +877,8 @@
\setcounter{Melquestions}{0}%
\setsepchar{\item}\ignoreemptyitems%
\readlist*\ListeTest{#2}%
-% La liste des éléments retenus est \showitems*\ListeTest[]
+ \reademptyitems
+ % La liste des éléments retenus est \showitems*\ListeTest[]\par
\IfNoValueTF{#1}{%
\ChoixAleaMultiMix{\ListeTestlen}{1}{\ListeTestlen}{0}{\ListeShuffleA}%
\xdef\MelangeValeurTotale{\ListeTestlen}%
@@ -802,6 +889,8 @@
\ExporteListe{ListeShuffle}{\ListeShuffleA}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeNumQ{\ListeShuffleA}%
+ \reademptyitems
+ % L'ordre des questions est \ListeNumQ[]
\setcounter{Comptequestions}{1}%
\begin{enumerate}
\loop%
@@ -815,11 +904,15 @@
\NewDocumentEnvironment{Enumelangesol}{b}{%
\setcounter{Melquestions}{0}%
- \setsepchar{\item}%
+ \setsepchar{\item}\ignoreemptyitems%
\readlist*\ListeTest{#1}%
+ \reademptyitems
\RestoreListe{ListeShuffle}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeNumQ{\ListeShuffle}%
+ \reademptyitems
+% la liste des éléments retenus est \showitems*\ListeTest[]\par
+% L'ordre des questions est \ListeNumQ[]\par
\setcounter{Comptequestions}{1}%
\begin{enumerate}
\loop%
@@ -882,7 +975,7 @@
}
\def\buildtabcompetences{%
- \[\begin{tabular}{|p{0.70\linewidth}|*{3}{>{\centering\arraybackslash}p{0.05\linewidth}|}}
+ \[\begin{tabular}{|p{\PfMCoefcompetences}|*{3}{>{\centering\arraybackslash}p{0.05\linewidth}|}}
\cline{2-4}
\multicolumn{1}{c|}{}&\PfMCompNA&\PfMCompECA&\PfMCompA\\
\hline
@@ -892,7 +985,7 @@
}%
\def\Buildtabcompetences#1#2{%
- \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
+ \setlength{\PfMLargeurComp}{\fpeval{\PfMCoefCompetences-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
\[\begin{tabular}{|p{\PfMLargeurComp}|*{#1}{>{\centering\arraybackslash}p{0.05\linewidth}|}}%
\cline{2-\fpeval{1+#1}}%
\multicolumn{1}{c|}{}\xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
@@ -914,7 +1007,7 @@
\def\SolutionWrite{%
\setcounter{PfMAlea}{0}%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.sol"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{%
@@ -924,7 +1017,7 @@
\def\SolutionWritePP{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-PPEx\thePfMExo.sol" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-PPEx\thePfMExo.sol" %
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -934,7 +1027,7 @@
\def\ReponseWrite{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.rep" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.rep" %
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -944,7 +1037,7 @@
\def\IndiceWrite{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.cdp" %coup de pouce
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.cdp" %coup de pouce
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -953,7 +1046,7 @@
\def\endIndiceWrite{\immediate\closeout\verbatim@out\@esphack}
\makeatother
-\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}\PfMAffichageHideItemSolution}
+\def\SolutionNow{\textbf{\csname PfMTNomSol\Roman{PfMExo}\endcsname~--}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}\PfMAffichageHideItemSolution}%\setcounter{PfMExoSolAlea}{\thePfMExo}
\def\endSolutionNow{\par\goodbreak\PfMshowitems}
\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak\PfMAffichageHideItemSolution}
@@ -965,12 +1058,52 @@
\NewDocumentEnvironment{Solution}{}{}{}%
\NewDocumentEnvironment{Reponse}{}{}{}%
\NewDocumentEnvironment{Indice}{}{}{}%
+\NewDocumentEnvironment{PfMHide}{+b}{}{}%
+\NewDocumentEnvironment{PfMSeek}{+b}{#1}{}%
+
+\NewDocumentEnvironment{AideA}{+b}{%
+ \ifnum\fpeval{\useKV[ClesExercices]{Aide}}>0\relax%
+ \begin{PfMSeek}%
+ #1
+ \end{PfMSeek}%
+ \else%
+ \begin{PfMHide}%
+ #1
+ \end{PfMHide}
+ \fi%
+}{%
+}%
+\NewDocumentEnvironment{AideB}{+b}{%
+ \ifnum\fpeval{\useKV[ClesExercices]{Aide}}>1\relax%
+ \begin{PfMSeek}%
+ #1
+ \end{PfMSeek}
+ \else%
+ \begin{PfMHide}%
+ #1
+ \end{PfMHide}
+ \fi%
+}{%
+}%
+
+\NewDocumentEnvironment{Indications}{+b}{%
+ \ifnum\theRetiensIndic=1\relax%
+ \textbf{\PfMTexteDesIndications :}\par%
+ #1
+ \fi%
+}{%
+}%
+
+\makeatletter
\NewDocumentCommand\PfMChoixAffichageCorrection{}{%
+ \if@AssembleCorrections
+ \let\Solution\SolutionWrite\let\endSolution\endSolutionWrite
+ \fi
\ifboolKV[Boulot]{CorrigeAll}{%
- \let\Solution\SolutionWrite\let\endSolution\endSolutionWrite
- \let\Reponse\ReponseWrite\let\endReponse\endReponseWrite
- \let\Indice\IndiceWrite\let\endIndice\endIndiceWrite
+ \let\Solution\SolutionWrite\let\endSolution\endSolutionWrite
+ \let\Reponse\ReponseWrite\let\endReponse\endReponseWrite
+ \let\Indice\IndiceWrite\let\endIndice\endIndiceWrite
}{%
\ifboolKV[Boulot]{ParcoursPerso}{%
\let\Solution\SolutionWritePP\let\endSolution\endSolutionWritePP
@@ -1010,11 +1143,16 @@
}%
}%
}%
+\makeatother
+\makeatletter
\NewDocumentCommand\PfMChoixCorrection{}{%
\setcounter{RetiensSol}{0}%
\setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{0}%
+ \if@AssembleCorrections
+ \setcounter{RetiensSol}{1}%
+ \else
\ifboolKV[Boulot]{CorrigeFin}{%
% \ifboolKV[Boulot]{CorrigeAll}{%
% \setcounter{RetiensSol}{1}%
@@ -1031,6 +1169,7 @@
\setcounter{RetiensInd}{0}%
}{}%
}%
+ \fi
\ifboolKV[ClesExercices]{PasCorrige}{%
\setcounter{RetiensSol}{0}%
\setcounter{RetiensRep}{0}%
@@ -1049,25 +1188,43 @@
}%
}%
}%
+\makeatother
-\def\PfMTexteDuCorrige{Corrigé de l'exercice}
-\def\PfMTexteDeLEntrainement{Automatisme(s) lié(s) à l'exercice}
+\NewDocumentCommand\PfMChoixEntrainement{}{%
+ \setcounter{PfMRetiensQr}{0}%
+ \ifboolKV[ClesExercices]{AEntretenir}{\setcounter{PfMRetiensQr}{1}}{}%
+}%
+
+\NewDocumentCommand\PfMChoixAffichageEntrainement{}{%
+ \ifnum\thePfMRetiensQr=1\relax%
+ \let\Entrainement\EntrainementWrite\let\endEntrainement\endEntrainementWrite%
+ \else%
+ \let\Entrainement\comment\let\endEntrainement\endcomment
+ \fi%
+}%
+
+\def\PfMTexteDuCorrige{Corrigé de l'exercice}%
+\def\PfMTexteDeLEntrainement{Automatisme(s) lié(s) à l'exercice}%
+\def\PfMTexteDesIndications{Indications}%
\NewDocumentCommand\PfMAffichageCorrige{}{%
\ifboolKV[Boulot]{CAN}{%
\xintFor* ##1 in{\xintSeq{1}{\PfMCANTotalExo}}\do{%
\setcounter{PfMExoSol}{##1}%
\setcounter{PfMAlea}{0}%
- \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{TestCAN-##1}}:\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%page-\thePfMMaquette-##1
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{TestCAN-##1}}:\fi}~\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{}%
}%
}{%
\setcounter{PfMExoSol}{0}%
+ %\setcounter{PfMExoSolAlea}{0}%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \refstepcounter{PfMExoSol}%{##1}%
- \label{pagesol-\thePfMMaquette-\thePfMExoSol}
+ \refstepcounter{PfMExoSol}%
+ %\stepcounter{PfMExoSolAlea}%
+ \label{pagesol-\thePfMMaquette-\thePfMExoSol}%
\setcounter{PfMAlea}{0}%
- \IfFileExists{\jobname-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{%
- \IfFileExists{\jobname-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}%
+ \def\PfMTexteDuCorrige{\csname PfMTNomSol\Roman{PfMExoSol}\endcsname}%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.rep}\par\goodbreak}{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.cdp}\par\goodbreak}{}%
}%
}%
\PfMshowitems%
@@ -1075,33 +1232,78 @@
}%
}%
+% Tous les corrigés
+\NewDocumentCommand\PfMAffichageTousCorriges{}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeNombreExoMq{\PfMRetiensLienExoMa}%
+ \reademptyitems%
+ \xdef\Tototaltal{\thePfMMaquette}%
+ \xintFor* ##2 in{\xintSeq{1}{\Tototaltal}}\do{%
+ \refstepcounter{PfMMaquetteSol}%
+ \setcounter{PfMMaquette}{##2}%
+ \setcounter{PfMExoSol}{0}%
+ %\setcounter{PfMExoSolAlea}{0}%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \input{\jobname-DefiMq-\thePfMMaquette}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeNombreExoMq[##2]}}\do{%
+ \stepcounter{PfMExoSol}%
+ %\stepcounter{PfMExoSolAlea}%
+ \label{pagesol-\thePfMMaquetteSol-\thePfMExoSol}%
+ \setcounter{PfMAlea}{0}%
+ \IfFileExists{\jobname-Ma##2-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ma##2-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.rep}\par\goodbreak}{%
+ \IfFileExists{\jobname-Ma##2-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.cdp}\par\goodbreak}{}%
+ }%
+ }%
+ \PfMshowitems%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+}%
+
\NewDocumentEnvironment{Entrainement}{}{}{}%
\makeatletter
\def\EntrainementWrite{%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.qrc"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.qrc"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{%
\immediate\write\verbatim@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endEntrainementWrite{\immediate\closeout\verbatim@out\@esphack}%
-
-\let\Entrainement\EntrainementWrite\let\endEntrainement\endEntrainementWrite%
\makeatother
\NewDocumentCommand\PfMAffichageEntrainement{}{%
- \clearpage
+ \ifboolKV[Boulot]{ESansSaut}{\vfill}{%
+ \ifPfMDeuxColonnes
+ \newpage
+ \else
+ \ifPfMRectoVerso
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \fi
+ }%
\TikzAutomatismes
+ \setlength{\columnseprule}{\useKV[Boulot]{EEpaisseur}}%
+ \ifboolKV[Boulot]{EntrainementColonnes}{\begin{multicols}{\useKV[Boulot]{EColonnes}}}{}%
\setcounter{PfMExoEntrai}{0}%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
\refstepcounter{PfMExoEntrai}%
- \IfFileExists{\jobname-Ex##1.qrc}{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.qrc}{%
\begin{center}
- \label{pageentrai-\thePfMMaquette-\thePfMExoEntrai}%
- \textbf{\PfMTexteDeLEntrainement\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ex##1.qrc}\end{center}}{}%
+ \label{pageentrai-\thePfMMaquette-\thePfMExoEntrai}%
+ \textbf{\PfMTexteDeLEntrainement\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.qrc}\end{center}%
+ }{}%
}%
+ \ifboolKV[Boulot]{EntrainementColonnes}{\end{multicols}}{}%
}%
\NewDocumentCommand\TikzAutomatismes{}{%
@@ -1111,6 +1313,7 @@
\end{center}
\end{tcolorbox}%
}%
+
%%%%%%%% BAREME %%%%%%%%%%%
%% Bareme
\newlength{\brouillon}
@@ -1128,17 +1331,23 @@
\newcommand*\brm[1]{%
\ifboolKV[Boulot]{Fiche}{}{%
- \immediate\write\@auxout{%
- \string\opadd*{#1}%
- {total\the\c@PfMSection-\the\c@PfMExo}%
- {total\the\c@PfMSection-\the\c@PfMExo}%
- \string\opcopy{\thePfMExo}{TotalExo}%
+ \ifboolKV[Boulot]{FdR}{}{%
+ \ifboolKV[Boulot]{Contrat}{}{%
+ \ifboolKV[Boulot]{Parcours}{}{%
+ \immediate\write\@auxout{%
+ \string\opadd*{#1}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ \string\opcopy{\thePfMExo}{TotalExo}%
+ }%
+ \ifboolKV[ClesExercices]{BaremeDetaille}{%
+ \setlength{\brouillon}{\BaremeEspace@Marge-\linewidth+\textwidth}%
+ \makebox[0pt][r]{\footnotesize\FranPt{#1}\hspace*{\brouillon}}%
+ \ignorespaces%
+ }{}%
+ }%
+ }%
}%
- \ifboolKV[ClesExercices]{BaremeDetaille}{%
- \setlength{\brouillon}{\BaremeEspace@Marge-\linewidth+\textwidth}%
- \makebox[0pt][r]{\footnotesize\FranPt{#1}\hspace*{\brouillon}}%
- \ignorespaces%
- }{}%
}%
}%
@@ -1178,11 +1387,25 @@
\@ifundefined{Op@total#1}{recompilez}%
{%
\opunzero{total#1}% on ne sait jamais
- \opset{decimalsepsymbol={,}}
+ \opset{decimalsepsymbol={,}}%
\opprint{total#1}~%
- \opset{decimalsepsymbol={.}}
+ \opset{decimalsepsymbol={.}}%
+ \useKV[ClesExercices]{MotPoint}%
\opcmp{total#1}{2}%
- \ifopge \useKV[ClesExercices]{MotPoint}s\else \useKV[ClesExercices]{MotPoint}\fi
+ \ifopge s\fi%
+ }%
+}
+
+\newcommand\ScoreMaximal{%
+ \@ifundefined{Op@ScoreTotal\thePfMMaquette}{recompilez}%
+ {%
+ \opunzero{ScoreTotal\thePfMMaquette}% on ne sait jamais
+ \opset{decimalsepsymbol={,}}%
+ \opprint{ScoreTotal\thePfMMaquette}~%
+ \opset{decimalsepsymbol={.}}%
+ \useKV[ClesExercices]{MotPoint}%
+ \opcmp{ScoreTotal\thePfMMaquette}{2}%
+ \ifopge s\fi%
}%
}
@@ -1223,7 +1446,15 @@
\NewDocumentCommand{\PfMAffichageLogos}{}{%
\ifboolKV[ClesExercices]{Calculatrice}{}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\cancel{\faCalculator}};\stepcounter{PfMNbLogo}}%
\ifboolKV[ClesExercices]{Oral}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faBullhorn};\stepcounter{PfMNbLogo}}{}
- }%
+ %
+ \ifnum\fpeval{\useKV[ClesExercices]{NombreEleves}}=1\relax
+ \node[colLogo,fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faUser};\stepcounter{PfMNbLogo}
+ \else%
+ \ifnum\fpeval{\useKV[ClesExercices]{NombreEleves}}>1\relax
+ \node[colLogo,fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faUsers};\stepcounter{PfMNbLogo}%
+ \fi%
+ \fi%
+}
%
\NewDocumentCommand{\PfMAffichageCompetencesTravaillees}{}{%
\ifboolKV[ClesExercices]{AffichageCompetence}{%
@@ -1251,12 +1482,12 @@
\NewDocumentCommand{\PfMLienVersEntrainement}{}{%
\ifboolKV[Boulot]{AvecEntrainement}{%
- \ifboolKV[ClesExercices]{PasEntrainement}{}{%
+ \ifboolKV[ClesExercices]{AEntretenir}{%
\node[%
fill=tcbcolback,%
anchor=center,rotate=45%
] at ($(frame.north east)!0.75!(frame.south east)$){\hyperref[pageentrai-\thePfMMaquette-\thePfMExo]{\faDumbbell}};%
- }%
+ }{}%
}{}%
}%
@@ -1288,6 +1519,7 @@
colback=LightSteelBlue,
colbacklower=white,
frame hidden,
+ overlay=\useKV[ClesExercices]{Ajout}%
}%
}%
@@ -1300,6 +1532,7 @@
title=\ifboolKV[ClesExercices]{AffichageTitre}{\useKV[ClesExercices]{Titre}}{},%
coltitle=black,
frame hidden,
+ overlay=\useKV[ClesExercices]{Ajout}%
}
}
@@ -1307,7 +1540,6 @@
%%% Base des exercices DM
\tcbset{%
tikzdm/.style={%
- %lowerbox=ignored,
enhanced,
breakable,
colback=white,
@@ -1328,6 +1560,8 @@
},%
overlay unbroken and first={%
%
+ \useKV[ClesExercices]{Ajout}%
+ %
\PfMAffichageSource%
%
\ifboolKV[ClesExercices]{BaremeTotal}{%
@@ -1346,21 +1580,23 @@
}%
}%
-\NewDocumentEnvironment{exerciceDM}{so+b}{%
+\NewDocumentEnvironment{exerciceDM}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{%
@@ -1376,12 +1612,12 @@
label=page-\thePfMMaquette-\thePfMExo,%
]%
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}%
\PfMApresLesExercices%
}%
@@ -1508,24 +1744,25 @@
\immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}Contrat#1\endcsname{\csname \Roman{PfMMaquette}confiance#1\endcsname}}%
}%
-
-\NewDocumentEnvironment{exerciceContrat}{so+b}{%
+\NewDocumentEnvironment{exerciceContrat}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ContratTotalExo}}%
@@ -1546,18 +1783,17 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}
\PfMApresLesExercices%
}%
}%
}%
-
%%% Contrat %%%
\tcbset{%
usercontrat/.style={%
@@ -1606,7 +1842,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[Contrat]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%%
\PfMAffichageCompetencesTravaillees%
@@ -1627,6 +1865,7 @@
\setKV[SchemaFdR]{#1}%
\setlength{\PfMLargeurSchemaFdR}{\useKV[SchemaFdR]{Ecart}}%
\setlength{\PfMRayonSchemaFdR}{\useKV[SchemaFdR]{Rayon}}%
+ \setlength{\PfMHauteurSchemaFdR}{\useKV[SchemaFdR]{Hauteur}}%
\colorlet{PfMCouleurFdR}{\useKV[SchemaFdR]{Couleur}}%
\@ifundefined{Op@\Roman{PfMMaquette}-FdRTotalExo}{Recompilez pour obtenir la feuille de route.}%
{%
@@ -1774,7 +2013,7 @@
\begin{tikzpicture}
\coordinate (A-0) at (-\PfMLargeurSchemaFdR,0);
\coordinate (A-1) at (0,0);%
- \coordinate (B-1) at (0,1);%
+ \coordinate (B-1) at (0,\PfMHauteurSchemaFdR);%
\xintFor* ##1 in{\xintSeq{2}{\ListeRouteBasselen}}\do{%
\coordinate[xshift=\PfMLargeurSchemaFdR] (A-##1) at (A-\fpeval{##1-1});%
\coordinate[xshift=\PfMLargeurSchemaFdR] (B-##1) at (B-\fpeval{##1-1});%
@@ -1799,7 +2038,7 @@
\xdef\RetiensLeDepart{0}%
\xdef\RetiensLesReponses{0}%
\xdef\RetiensNonAffichees{0}%
- \xdef\RetiensEtage{0}
+ \xdef\RetiensEtage{0}%
\xintFor* ##1 in{\xintSeq{1}{\ListeRouteHautelen}}\do{%
\xintifboolexpr{\ListeRouteHaute[##1]==0}{%
\xdef\RetiensEtage{\fpeval{\RetiensEtage+1}}%
@@ -1814,7 +2053,7 @@
\xintifboolexpr{\fpeval{\RetiensLesReponses-1}==\RetiensNonAffichees}{%
% %
}{%
- \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{
+ \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{%
\xintifboolexpr{\ListeRouteHaute[##2]<0}{%
\draw (B-##2) to (B-\fpeval{##2+1});%
}{%
@@ -1863,24 +2102,28 @@
\fi
\immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}FdR#1\endcsname{\csname \Roman{PfMMaquette}route#1\endcsname}}%
}%
-
-\NewDocumentEnvironment{exerciceFdR}{so+b}{%
+
+\def\Relecture{}%
+
+\NewDocumentEnvironment{exerciceFdR}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \stepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-FdRTotalExo}}%
@@ -1914,12 +2157,12 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}
\PfMApresLesExercices%
}%
@@ -1945,7 +2188,7 @@
\string\opcopy{\thePfMExo}{TotalExo}%
}%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.can"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.can"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{\immediate\write\verbatim@out{\the\verbatim@line}}%
@@ -1955,7 +2198,7 @@
\NewDocumentCommand\Complement{+m}{%
\ifboolKV[Boulot]{CAN}{%
- \expandafter\xdef\csname CNReponse\endcsname{#1}%
+ \expandafter\xdef\csname CNReponse\endcsname{\noexpand #1}%
}{%
\begin{center}
#1%
@@ -1970,7 +2213,6 @@
\tcbset{%
usercan/.style={%
enhanced,
- % spread upwards=-1cm,colback=gray!5%
frame hidden,
colback=white,
middle=24pt,
@@ -2030,7 +2272,6 @@
\Large\sffamily Course aux nombres (Correction)
\end{center}
\hfill\useKV[CAN]{Niveau}%
- %\par{\tiny\useKV[CAN]{Code}}\hfill{\scriptsize\useKV[CAN]{Date}}%
\end{tcolorbox}%
}
%%% FdR %%%
@@ -2080,7 +2321,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[FdR]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos
%%
\PfMAffichageCompetencesTravaillees%
@@ -2112,19 +2355,33 @@
\reademptyitems%
\xdef\PfMFooTestA{\ListeExercicesPA[1]}%
\ifnum\ListeExercicesPAlen>1\relax%
- \xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
- \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
- }%
+ \xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
+ \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
+ }%
\fi%
- \ifboolKV[Parcours]{Vertical}{%
- \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
+ \ifboolKV[Parcours]{Plan}{%
+ \BuildParcoursPlan{\ParcoursTotalExo}{\PfMFooTestA}%
}{%
- \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
+ \ifboolKV[Parcours]{Vertical}{%
+ \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
+ }{%
+ \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
+ }%
}%
}%
}%
%\makeatother
+\NewDocumentCommand\BuildParcoursPlan{mm}{%
+ \setsepchar{,}%
+ \readlist*\ListeRetiens{#2}%
+ \begin{enumerate}
+ \foreachitem\compteur\in\ListeRetiens{%
+ \item[$\square$] Exercice \ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}%
+ }%
+ \end{enumerate}
+}%
+
\NewDocumentCommand\BuildParcoursTikzV{mm}{%
\setsepchar{,}%
\readlist*\ListeRetiens{#2}%
@@ -2155,8 +2412,13 @@
\begin{tikzpicture}[anchor=center,baseline=-1.25mm]
% On place les points
\Orientation=1\relax
+ \ifboolKV[Parcours]{Court}{%
+ \TotalParcoursTikz=\ListeRetienslen%
+ }{%
+ \TotalParcoursTikz=#1%
+ }%
\coordinate[anchor=base,baseline=-1.25mm] (A-1) at (0,0);%
- \xintFor* ##1 in{\xintSeq{2}{\fpeval{#1+1}}}\do{%
+ \xintFor* ##1 in{\xintSeq{2}{\fpeval{\the\TotalParcoursTikz+1}}}\do{%
\modulo{##1}{\useKV[SchemaParcours]{Colonnes}}%
\ifnum\remainder=0\relax%
\Orientation=\numexpr\Orientation*(-1)\relax%
@@ -2165,17 +2427,23 @@
\coordinate[xshift=\the\Orientation*\PfMLargeurSchemaParcours] (A-##1) at (A-\fpeval{##1-1});%
\fi%
}%
- \foreach\i in{2,...,#1}{%
- \draw[line width=1pt] (A-\fpeval{\i-1}) -- (A-\i);%
+ \foreach\i in{1,...,\the\TotalParcoursTikz}{%
+ \draw[line width=1pt] (A-\i) -- (A-\fpeval{\i+1});%
}%
- %
- \draw[line width=1pt,>=latex,->] (A-#1)--(A-\fpeval{#1+1});
- %
- \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
- \draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
- }%
- \foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+% %
+ \draw[line width=1pt,>=latex,->] (A-\the\TotalParcoursTikz)--(A-\fpeval{\the\TotalParcoursTikz+1});
+% %
+ \ifboolKV[Parcours]{Court}{%
+ \foreachitem\compteur\in\ListeRetiens{%
+ \draw[fill=PfMCouleurSP](A-\compteurcnt) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+ }%
+ }{%
+ \xintFor* ##1 in{\xintSeq{1}{\the\TotalParcoursTikz}}\do{%
+ \draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
+ }%
+ \foreachitem\compteur\in\ListeRetiens{%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+ }%
}%
\end{tikzpicture}%
}%
@@ -2195,7 +2463,7 @@
\stepcounter{PfMExo}%
\PfMChoixCorrection%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-PPEx\thePfMExo.tex" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-PPEx\thePfMExo.tex" %
\immediate\write\verbatim@out{\string\begin{exercice}}
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
@@ -2205,23 +2473,25 @@
\def\endexerciceParcoursPerso{\immediate\write\verbatim@out{\string\end{exercice}}\immediate\closeout\verbatim@out\@esphack}%
-\NewDocumentEnvironment{exerciceParcours}{so+b}{%
+\NewDocumentEnvironment{exerciceParcours}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ParcoursTotalExo}}%
@@ -2242,12 +2512,12 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}
\PfMApresLesExercices%
}%
@@ -2310,17 +2580,185 @@
}%
}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NewDocumentCommand\PfMScore{m}{%
+ \immediate\write\@auxout{%
+ \string\opadd*{#1}{ScoreTotal\thePfMMaquette}{ScoreTotal\thePfMMaquette}%
+ }%
+ \num{#1} pt\xintifboolexpr{#1>2 || #1==2}{s}{}%
+}%
+
+\def\PfMMPGrilleCode{%
+ PapierLargeur=floor(\mpdim{\linewidth}/(5mm));
+ color PapierCouleur;
+ PapierCouleur=0.8white;
+ %
+ vardef Papier(expr nb,score)=
+ path horizon,verticon;
+ horizon=(0,0)--(PapierLargeur*5mm,0);
+ verticon=(0,0)--(0,abs(nb)*5mm);
+ picture Papiers;
+ Papiers=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto PapierLargeur:
+ draw verticon shifted((k*5mm,0));
+ endfor;
+ for k=0 upto abs(nb):
+ draw horizon shifted((0,k*5mm));
+ endfor;
+ drawoptions();
+ if nb<0:
+ path cc,cd,ce;
+ cd=(unitsquare xscaled (3*5mm) yscaled (abs(nb)*5mm)) shifted(5mm*(PapierLargeur-3,0));
+ ce=(unitsquare scaled (2*5mm)) shifted(5mm*(PapierLargeur-2.5,1));
+ cc=(unitsquare xscaled (6*5mm) yscaled (2*5mm)) shifted(5mm*(PapierLargeur-10,1));
+ fill cd withcolor PapierCouleur;
+ fill ce withcolor white;
+ fill cc withcolor white;
+ %drawoptions(withpen pencircle scaled 1);
+ draw ce;
+ draw cc;
+ draw cd;
+ draw polygone((0,0),(PapierLargeur*5mm,0),5mm*(PapierLargeur,abs(nb)),5mm*(0,abs(nb)));
+ if score>0:
+ label.bot(TEX("\PfMScore{"&decimal(score)&"}"),5mm*(PapierLargeur-1.5,1));
+ fi;
+ fi;
+ );
+ Papiers
+ enddef;
+}%
+
+\def\PfMPapierCinqCinq#1#2{%
+ \begin{center}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \PfMMPGrilleCode
+ trace Papier(#1,#2);
+ \end{mplibcode}%
+ \else%
+ \begin{mpost}[mpsettings={\PfMMPGrilleCode}]
+ trace Papier(#1,#2);
+ \end{mpost}%
+ \fi%
+ \end{center}
+}%
+
+\def\PfMMPSeyesCode{%
+ u:=\useKV[ClesExercices]{EchelleSeyes}*1mm;
+ PapierLargeur=floor(\mpdim{\linewidth}/(u));
+ color PapierCouleur;
+ PapierCouleur=0.8white;%\useKV[Papiers]{Couleur};
+ vardef Seyes(expr nb,score)=
+ path horizon,verticon;
+ horizon=(0,0)--u*(PapierLargeur,0);
+ verticon=(0,0)--u*(0,abs(nb));
+ picture PapierSeyes;
+ PapierSeyes=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto (PapierLargeur):
+ draw verticon shifted((k*u,0));
+ endfor;
+ for k=0 step 0.25 until abs(nb):
+ draw horizon shifted((0,k*u)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 upto abs(nb):
+ draw horizon shifted((0,k*u)) withpen pencircle scaled 1.25;
+ endfor;
+ drawoptions();
+ if nb<0:
+ path cc,cd,ce;
+ cd=(unitsquare xscaled (2*u) yscaled (abs(nb)*u)) shifted(u*(PapierLargeur-2,0));
+ ce=(unitsquare scaled (1*u)) shifted(u*(PapierLargeur-1.5,1));
+ cc=(unitsquare xscaled (4*u) yscaled (1*u)) shifted(u*(PapierLargeur-7,1));
+ fill cd withcolor PapierCouleur;
+ fill ce withcolor white;
+ fill cc withcolor white;
+ draw cc;
+ draw cd;
+ draw ce;
+ draw polygone((0,0),(PapierLargeur*u,0),u*(PapierLargeur,abs(nb)),u*(0,abs(nb)));
+ if score>0:
+ label.bot(TEX("\PfMScore{"&decimal(score)&"}"),u*(PapierLargeur-1,1));
+ fi;
+ fi;
+ );
+ PapierSeyes
+ enddef;
+}%
+
+\def\PfMPapierSeyes#1#2{%
+ \begin{center}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \PfMMPSeyesCode
+ trace Seyes(#1,#2);
+ \end{mplibcode}%
+ \else%
+ \begin{mpost}[mpsettings={\PfMMPSeyesCode}]%
+ trace Seyes(#1,#2);
+ \end{mpost}
+ \fi%
+ \end{center}
+}%
+
+\NewDocumentCommand\PfMJusteAvantLaFinDesExercices{}{%
+ \ifboolKV[ClesExercices]{Interieur}{%
+ \ifboolKV[ClesExercices]{Ligne}{%
+ \vspace*{\PfMEspaceAvantLignes}\par%
+ \PfMSetStretch%
+ \PfMLignespointilles{\useKV[ClesExercices]{Lignes}}%
+ \par\vspace*{\PfMEspaceApresLignes}\par%
+ }{}%
+ \par%
+ \ifboolKV[ClesExercices]{Cadres}{%
+ \begin{PfMtcbEncart}%
+ %
+ \end{PfMtcbEncart}%
+ }{}%
+ \ifboolKV[ClesExercices]{Grilles}{%
+ \ifboolKV[ClesExercices]{Cinq}{%
+ \PfMPapierCinqCinq{\useKV[ClesExercices]{CinqCinq}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ \ifboolKV[ClesExercices]{Huit}{%
+ \PfMPapierSeyes{\useKV[ClesExercices]{Seyes}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ }{}%
+ }{}%
+}%
+
\NewDocumentCommand\PfMApresLesExercices{}{%
- \ifboolKV[ClesExercices]{Ligne}{%
- % \vspace{\PfMEspaceAvantLignes}
+ \ifboolKV[ClesExercices]{Interieur}{}{%
+ \ifboolKV[ClesExercices]{Ligne}{%
+ \vspace*{\PfMEspaceAvantLignes}%
\PfMSetStretch\PfMLignespointilles{\useKV[ClesExercices]{Lignes}}%
- \par\vspace*{\PfMEspaceApresLignes}\par%
- }{}%
- \par%
- \ifboolKV[ClesExercices]{Cadres}{%
+ \par\vspace*{\PfMEspaceApresLignes}\par%
+ }{}%
+ \par%
+ \ifboolKV[ClesExercices]{Cadres}{%
\begin{PfMtcbEncart}%
- %
+ %
\end{PfMtcbEncart}%
+ }{}%
+ \ifboolKV[ClesExercices]{Grilles}{%
+ \ifboolKV[ClesExercices]{Cinq}{%
+ \PfMPapierCinqCinq{\useKV[ClesExercices]{CinqCinq}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ \ifboolKV[ClesExercices]{Huit}{%
+ \PfMPapierSeyes{\useKV[ClesExercices]{Seyes}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ }{}
+ }%
+ \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ \ifboolKV[ClesExercices]{ACompleter}{%
+ \IfHookExistsTF{env/center/begin}{\RemoveFromHook{env/center/begin}[*]}{}%
+ \IfHookExistsTF{env/center/end}{\RemoveFromHook{env/center/end}[*]}{}%
+ \IfHookExistsTF{env/itemize/begin}{\RemoveFromHook{env/itemize/begin}[*]}{}%
+ \IfHookExistsTF{env/itemize/end}{\RemoveFromHook{env/itemize/end}[*]}{}%
+ \IfHookExistsTF{env/description/begin}{\RemoveFromHook{env/description/begin}[*]}{}%
+ \IfHookExistsTF{env/description/end}{\RemoveFromHook{env/description/end}[*]}{}%
}{}%
}%
@@ -2329,7 +2767,7 @@
\expandafter\xdef\csname PfMEcrireTitreSol\endcsname{\csname PfMTSol\Roman{PfMExoSol}\endcsname}%
\ifx\bla\PfMEcrireTitreSol\bla%
\else
- \PfMEcrireTitreSol%
+ ~:~\PfMEcrireTitreSol%
\fi%
}%
@@ -2342,6 +2780,10 @@
}%
}%
+\NewDocumentCommand\PfMChoixNomCorrection{}{%
+ \expandafter\xdef\csname PfMTNomSol\Roman{PfMExo}\endcsname{\useKV[ClesExercices]{TitreCorrige}}
+}%
+
\NewDocumentCommand\PfMChoixHideItemSolution{}{%
\ifboolKV[ClesExercices]{Profile}{%
% J'ai un élève à profil : Je dois me souvenir que la correction doit être profilée. Le compteur PfMExo vaut \thePfMExo
@@ -2361,71 +2803,122 @@
\fi%
}%
-\newbox\PfMBoxSauvegarde%
+\NewDocumentCommand\PfMAvantLesExercices{}{%
+ \ifboolKV[ClesExercices]{AvecIndications}{\setcounter{RetiensIndic}{1}}{}%
+ \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
+ \refstepcounter{PfMSection}%
+ \PfMChoixCorrection%
+ \PfMChoixEntrainement%
+ \refstepcounter{PfMExo}%
+ \PfMChoixNomCorrection%
+ \ifboolKV[ClesExercices]{ACompleter}{%
+ \let\oldenumerate\enumerate%
+ \let\oldendenumerate\endenumerate%
+ \let\enumerate\autoenumerate%
+ \let\endenumerate\endautoenumerate%
+ \AddToHook{env/center/begin}[Bcenter]{\let\item\olditem}%
+ \AddToHook{env/center/end}[Ecenter]{\let\item\litem}%
+ \AddToHook{env/description/begin}[Bdescription]{\let\item\olditem}%
+ \AddToHook{env/description/end}[Edescription]{\let\item\litem}%
+ \AddToHook{env/itemize/begin}[Bitemize]{\let\item\olditem}%
+ \AddToHook{env/itemize/end}[Eitemize]{\let\item\litem}%
+ }{}%
+}%
-\NewDocumentEnvironment{exerciceFiche}{so+b}{%
+\NewDocumentEnvironment{exerciceFiche}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
\colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
\colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
- \PfMChoixTitreSolution%
- \PfMChoixHideItemSolution%
- \begin{tcolorbox}[%
- tikzfiche,
- label is label,
- label=page-\thePfMMaquette-\thePfMExo
- ]
- \ifboolKV[Boulot]{Dys}{\raggedright}{}%
- %
- #3
+ \PfMChoixTitreSolution%
+ \PfMChoixHideItemSolution%
+ \begin{tcolorbox}[%
+ tikzfiche,
+ label is label,
+ label=page-\thePfMMaquette-\thePfMExo
+ ]
+ \ifboolKV[Boulot]{Dys}{\raggedright}{}%
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}%
- \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
\PfMApresLesExercices%
}%
}%
}%
+% \makeatletter
+\NewDocumentCommand\TikzOlympiadesAPMEP{m}{%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \setKV[OlympiadesAPMEP]{#1}%
+ \begin{tcolorbox}[colback=colLogo]
+ \begin{Dispo}*{\normalsize\logoapmep{\scale@logo}}
+ \Large\sffamily \useKV[OlympiadesAPMEP]{Theme}
+ \end{Dispo}
+ \end{tcolorbox}%
+}%
+
+\NewDocumentCommand\TikzOlympiadesAPMEPCor{m}{%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \setKV[OlympiadesAPMEP]{#1}%
+ \begin{tcolorbox}[colback=colLogo]
+ \begin{Dispo}*{\normalsize\logoapmep{\scale@logo}}
+ \Large\sffamily \useKV[OlympiadesAPMEP]{Theme}
+
+ (Correction)%
+ \end{Dispo}
+ \end{tcolorbox}%
+}%
+%\makeatother
+
\NewDocumentEnvironment{exerciceOlympiadesAPMEP}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
\colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
- \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
- \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
+% \refstepcounter{PfMSection}%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\PfMChoixHideItemSolution%
@@ -2438,29 +2931,32 @@
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \end{tcolorbox}%
- \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
- \PfMApresLesExercices%
- }
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
+ \end{tcolorbox}%
+ \PfMApresLesExercices%
+ }%
+ }%
}%
-\NewDocumentEnvironment{exerciceDS}{so+b}{%
+\NewDocumentEnvironment{exerciceDS}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{%
@@ -2476,12 +2972,12 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}%
\PfMApresLesExercices%
}%
@@ -2490,8 +2986,11 @@
\NewDocumentEnvironment{ExerciceRecapBrevet}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
@@ -2513,11 +3012,13 @@
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
}{%
+ \PfMJusteAvantLaFinDesExercices%
\end{tcolorbox}
\PfMApresLesExercices%
}%
\makeatother
+
%%% Recap Brevet
%%% Style Brevet
\tcbset{%
@@ -2575,6 +3076,7 @@
at (frame.north east)%
{\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};%
}{}%
+ \useKV[ClesExercices]{Ajout}%
}%
}%
}%
@@ -2608,6 +3110,8 @@
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[PdT]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
}
+ %%
+ \useKV[ClesExercices]{Ajout}%
%%
\PfMAffichageLogos%
%
@@ -2655,8 +3159,11 @@
\newenvironment{exercicePdT}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
\refstepcounter{PfMSection}%
\PfMChoixCorrection%
@@ -2704,6 +3211,17 @@
\end{tikzpicture}%
}%
+\NewDocumentCommand\CheminNeutre{m}{%
+ \setsepchar[*]{,*/}%
+ \readlist*\ListeCheminVrai{#1}%
+ \setsepchar{,}%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \foreachitem\compteur\in\ListeCheminVrai{%
+ \draw[cheminPdT] (\ListeCheminVrai[\compteurcnt,1]) to (\ListeCheminVrai[\compteurcnt,2]);%
+ }%
+ \end{tikzpicture}%
+}%
+
\NewDocumentCommand\CheminFaux{m}{%
\setsepchar[*]{,*/}%
\readlist*\ListeCheminVrai{#1}%
@@ -2785,8 +3303,11 @@
}%
\NewDocumentEnvironment{exerciceKholle}{o}{%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
@@ -2803,8 +3324,11 @@
\newenvironment{exerciceBase}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}
\refstepcounter{PfMExo}
\tcolorbox[%
@@ -2816,8 +3340,11 @@
\newenvironment{exerciceBaseHTML}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}
\refstepcounter{PfMExo}
\tcolorbox[%
@@ -3056,6 +3583,8 @@
anchor=west,
xshift=\kvtcb@leftlower,
] at (frame.north west){\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{~:~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{~:~}}\useKV[ClesExercices]{Titre}}{}};
+ %%
+ \useKV[ClesExercices]{Ajout}%
%%
\PfMAffichageLogos%
%
@@ -3080,17 +3609,30 @@
enhanced,
breakable,
colback=ColExoFiche,
- % colframe=PfMCadreFiche,
frame hidden,
overlay unbroken and first={%
- \draw[colLogo,line width=1pt] ([yshift=-10pt]frame.north west)--([yshift=-10pt]frame.north east);
+ \draw[colLogo,line width=1pt] ([yshift=-12pt]frame.north west)--([yshift=-12pt]frame.north east);
\node[%
name=A,
fill=ColExoFiche,
anchor=west,
xshift=\kvtcb@leftlower,
] at (frame.north west){\color{colLogo}\resizebox{1em}{!}{\carreEntoure{}}~\Large\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{.~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{.~}}\useKV[ClesExercices]{Titre}}{}};
- %%
+ \node[%
+ name=B,
+ fill=ColExoFiche,
+ anchor=east,
+ xshift=-\kvtcb@leftlower,
+ ] at (frame.north east){\color{colLogo}\Large\bfseries\sffamily\ifnum\fpeval{\useKV[ClesExercices]{Categorie}}=1\relax
+ Spécialistes%
+ \else
+ \ifnum\fpeval{\useKV[ClesExercices]{Categorie}}=2\relax
+ Non spécialistes
+ \fi
+ \fi};
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%
\PfMAffichageCompetencesTravaillees%
@@ -3149,7 +3691,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[Parcours]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%%
\PfMAffichageCompetencesTravaillees%
@@ -3189,7 +3733,7 @@
\end{tcolorbox}%
}%
-\newcommand\TikzDSCor[1]{%
+\NewDocumentCommand\TikzDSCor{m}{%
\ifPfMRectoVerso%
\cleardoublepage%
\else%
@@ -3230,6 +3774,8 @@
title=Exercice\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{},
overlay unbroken and first={%
%
+ \useKV[ClesExercices]{Ajout}%
+ %
\PfMAffichageSource%
%
\ifboolKV[ClesExercices]{BaremeTotal}{%
@@ -3274,7 +3820,7 @@
\clearpage
\begin{minipage}{0.6\linewidth}
\begin{tcolorbox}[userie]%
- \sffamily \useKV[IE]{Nom} \useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}
+ \sffamily \useKV[IE]{Nom} \useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{{\scriptsize(Sujet \useKV[IE]{Sujet})}}{}
\vspace{1em}
\par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[IE]{Date}}
\end{tcolorbox}%
@@ -3299,42 +3845,39 @@
\end{tcolorbox}%
}%
-\NewDocumentCommand\Recapitulatif{mm}{%
- \setKV[Boulot]{#1}%
- \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
- \ifboolKV[Boulot]{Dys}{%
- \begin{Maquette}[Fiche,Dys]{#2,Code=\normalsize\Prenom~\Nom}%
- }{%
- \begin{Maquette}[Fiche]{#2,Code=\normalsize\Prenom~\Nom}%
- }%
+\NewDocumentCommand\PfMRecapitulatif{mm}{%
+ \setKV[Boulot]{#1}%
+ \setcounter{PfMRetiensMapourPP}{\thePfMMaquette}%
+ \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
+ \ifboolKV[Boulot]{Dys}{%
+ \begin{Maquette}[Fiche,Dys]{#2,Code=\normalsize\Prenom~\Nom}%
+ }{%
+ \begin{Maquette}[Fiche]{#2,Code=\normalsize\Prenom~\Nom}%
+ }%
+ \readlist*\ListeExercices{\RecapListeExo}%
+ \ifnum\fpeval{\ListeExerciceslen}=1\relax{}
+ \setKVdefault[ClesExercices]{Numerote=false}
+ \input{\jobname-Ma\thePfMRetiensMapourPP-PPEx\ListeExercices[1].tex}%
+ \setKVdefault[ClesExercices]{Numerote}
+ \else
+ \foreach\i in{1,...,\ListeExerciceslen}{%
+ \input{\jobname-Ma\thePfMRetiensMapourPP-PPEx\ListeExercices[\i].tex}%
+ }
+ \fi
+ \ifnum\thePfMCorrigeParcoursPerso=1\relax%
+ % \RecapitulatifCorrection{#2}%
+ \clearpage
+ \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
\readlist*\ListeExercices{\RecapListeExo}%
\ifnum\fpeval{\ListeExerciceslen}=1\relax{}
- \setKVdefault[ClesExercices]{Numerote=false}
-% \begin{exercice}*
- \input{\jobname-PPEx\ListeExercices[1].tex}%
- % \end{exercice}%
- \setKVdefault[ClesExercices]{Numerote}
+ \textbf{Corrigé de l'exercice} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[1].sol}\par\goodbreak%
\else
\foreach\i in{1,...,\ListeExerciceslen}{%
- % \begin{exercice}
- \input{\jobname-PPEx\ListeExercices[\i].tex}%
- % \end{exercice}%
- }
- \fi
- \ifnum\thePfMCorrigeParcoursPerso=1\relax%
- % \RecapitulatifCorrection{#2}%
- \clearpage
- \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
- \readlist*\ListeExercices{\RecapListeExo}%
- \ifnum\fpeval{\ListeExerciceslen}=1\relax{}
- \textbf{Corrigé de l'exercice} : \input{\jobname-PPEx\ListeExercices[1].sol}\par\goodbreak%
- \else
- \foreach\i in{1,...,\ListeExerciceslen}{%
- \textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak%
- }%
- \fi%
+ \textbf{Corrigé de l'exercice \i} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[\i].sol}\par\goodbreak%
+ }%
\fi%
- \end{Maquette}%
+ \fi%
+ \end{Maquette}%
}%
}%
@@ -3344,7 +3887,7 @@
\TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
\readlist*\ListeExercices{\RecapListeExo}%
\foreach\i in{1,...,\ListeExerciceslen}{%
- \IfFileExists{\jobname-PPEx\ListeExercices[\i].sol}{\textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak}{}%
+ \IfFileExists{\jobname-PPEx\ListeExercices[\i].sol}{\textbf{Corrigé de l'exercice \i} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[\i].sol}\par\goodbreak}{}%
}%
}%
}%
@@ -3363,14 +3906,6 @@
}{%
\ifnum\thePfMMaquette=1\relax%
\else%
- %\ifnum\PfMFontSize=0\relax%
- % \fontsize{10}{\fpeval{1.2*10}}%
- %\else\ifnum\PfMFontSize=1\relax%
- % \fontsize{11}{\fpeval{1.2*11}}%
- % \else%
- % \fontsize{12}{\fpeval{1.2*12}}%
- % \fi%
- %\fi%
\fontsize{\fpeval{10+\PfMFontSize}}{\fpeval{1.2*(10+\PfMFontSize)}}%
\selectfont%
\renewcommand{\JustifyingParindent}{\parindent}
@@ -3395,9 +3930,17 @@
}%
%% Pour factoriser l'appel aux corrections dans l'environnement Maquette
+\makeatletter
\NewDocumentCommand\PfMPrepareCorrection{m}{%
\useKVdefault[Boulot]%
\setKV[Boulot]{#1}%
+ \if@CAN
+ \ifnum\thepage<5\relax
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{5-\thepage}}}\do{%
+ ~\clearpage%
+ }%
+ \fi%
+ \fi%
\if@Dyslexie%
\setKV[Boulot]{Dys}%
\fi%
@@ -3405,6 +3948,7 @@
\setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
\PfMChangerTailleCorrection%
}%
+\makeatother
\NewDocumentCommand\PfMAffichageCorrectionColonnes{}{%
\ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
@@ -3418,9 +3962,625 @@
\ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
}%
+% GameBook
+\tcbset{%
+ userlivreheros/.style={%
+ spread upwards=-1cm,colback=Ivory,colframe=black!25!Ivory%
+ }%
+}%
+
+\setKVdefault[LivreHeros]{Theme=Les nombres d\'ecimaux}
+
+\NewDocumentCommand\vaen{m}{\ref{#1}}%
+
+\NewDocumentCommand\TikzLivreHeros{}{%
+ \begin{tcolorbox}[userlivreheros]%
+ \begin{center}
+ \Large\sffamily \useKV[LivreHeros]{Theme}
+ \end{center}
+ \end{tcolorbox}%
+}%
+
+\tcbset{%
+ tikzLH/.style={%
+ before skip=1em,
+ enhanced,
+ coltitle=black,
+ colbacktitle=black!10!Ivory,
+ colframe=white,
+ colback=white,
+ attach boxed title to top center={yshift=-2mm},
+ label is label
+ }%
+}%
+
+\newcounter{PfMGameBook}[PfMMaquette]
+\setcounter{PfMGameBook}{0}
+
+\makeatletter
+\def\ExoGBWrite{%
+ \setcounter{PfMAlea}{0}%
+ \PfMChoixCorrection%
+ \stepcounter{PfMExo}%
+ \immediate\write\@auxout{%
+ \string\opcopy{\thePfMExo}{TotalExo}%
+ }%
+ \@bsphack%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.gb"%
+ \let\do\@makeother\dospecials%
+ \catcode`\^^M\active%
+ \def\verbatim@processline{\immediate\write\verbatim@out{\the\verbatim@line}}%
+ \verbatim@start}%
+\def\endExoGBWrite{\immediate\closeout\verbatim@out\@esphack}%
+\makeatother
+%%%%
+
+\NewDocumentEnvironment{exerciceBeamer}{so}{%
+ \setcounter{PfMAlea}{0}%
+ \setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
+ \useKVdefault[ClesExercices]%
+ \setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
+ \ifboolKV[ClesExercices]{NonUtilise}{%
+ % Mettre la correction hors-jeu
+ \setKV[ClesExercices]{PasCorrige}%
+ \PfMChoixCorrection%
+ \begin{PfMHide}
+ }{%
+ \IfBooleanTF{#1}{%
+ \setKV[ClesExercices]{Numerote=false}%
+ }{}%
+ \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
+ \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
+ \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
+ \PfMAvantLesExercices%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMChoixTitreSolution%
+ \PfMChoixHideItemSolution%
+ \begin{tcolorbox}[%
+ tikzbeamer,
+ label is label,
+ label=page-\thePfMMaquette-\thePfMExo
+ ]
+ \ifboolKV[Boulot]{Dys}{\raggedright}{}%
+ }%
+ }%
+ }{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
+ \end{tcolorbox}%
+ % \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ \PfMApresLesExercices%
+ }%
+ }%
+}%
+
+\makeatletter
+\tcbset{%
+ tikzbeamer/.style={%
+ before skip=0.5em,
+ enhanced,
+ breakable,
+ colback=white,%ColExoFiche,
+ frame hidden,
+ %colframe=PfMCadreFiche,
+ overlay unbroken and first={%
+ \node[%
+ name=A,
+ anchor=center,
+ xshift=8*\kvtcb@leftlower/10,
+ yshift=-10*\kvtcb@leftlower/9,
+ ] at (frame.north west){\thePfMExo};
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
+ \PfMAffichageSource%
+ }%
+ }%
+}%
+\makeatother
+
+%%%%%%%%%%%%%%%%% AMC
+
+\def\PfMTexteAMC{\scriptsize Pour chaque question, remplir avec un stylo {\em noir} la case associée à {\em l'unique} réponse correcte.\par En cas d'erreur, {\em ne redessiner pas} la case cochée par erreur, mettez simplement un coup de « blanc » dessus.}
+
+\newcommand\TikzAMC{%
+ \begin{tcolorbox}[%
+ colback=LightGray!10,
+ colframe=LightGray,
+ enhanced,%
+ overlay unbroken and first={%
+ \ifboolKV[AMC]{Calculatrice}{\node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice autorisée --};}{}%
+ }%
+ ]%
+ \sffamily \useKV[AMC]{Theme}
+ \vspace{1em}
+ \par\hfill{\scriptsize\useKV[AMC]{Date}}
+ \end{tcolorbox}%
+ \ifboolKV[Boulot]{IntroductionAMC}{\PfMTexteAMC}{}%
+ \par\bigskip%
+}%
+
+\newlength\PfMAMCBarreFraction
+\makeatletter
+
+
+\setKVdefault[ListeReponses]{Lettre=x,Unites=false}
+\defKV[ListeReponses]{Unite=\setKV[ListeReponses]{Unites}\DeclareSIUnit{\TempoAMC}{#1}}
+
+\NewDocumentCommand\ListeReponses{som}{%
+ \ifboolKV[Boulot]{AMC}{%
+ \useKVdefault[ListeReponses]%
+ \setKV[ListeReponses]{#2}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeAMCRep{#3}%
+ \reademptyitems%
+% \showitems\ListeAMCRep[]
+ \setcounter{PfMAMCOpen}{1}%
+ \stepcounter{PfMNbListeReponsesAMC}%
+ \par
+ \ifnum\fpeval{\ListeAMCReplen}=1\relax%
+ % On teste la présence de ! pour les fractions, de : pour l'écriture ax+b, de ! pour une écriture du style $a^p$ et de | pour les écritures scientifiques.
+ \StrCount{\ListeAMCRep[1]}{/}[\PfMAMCPresenceFraction]%
+ \StrCount{\ListeAMCRep[1]}{:}[\PfMAMCPresenceLitteral]%
+ \StrCount{\ListeAMCRep[1]}{!}[\PfMAMCPresencePuissances]%
+ \StrCount{\ListeAMCRep[1]}{|}[\PfMAMCPresencePuissancesDix]%
+ \ifnum\fpeval{\PfMAMCPresenceFraction+\PfMAMCPresenceLitteral+\PfMAMCPresencePuissances+\PfMAMCPresencePuissancesDix}=0\relax
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
+ \IfInteger{\ListeAMCRep[1]}{%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrLen{\fpeval{abs(\Toto)}}[\PfMLongueurCaseAMC]%
+ \IfBooleanTF{#1}{%
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }{%
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{minipage}\ifboolKV[ListeReponses]{Unites}{~~~\si[per-mode=symbol]{\TempoAMC}}{}%
+ }%
+ }{%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{.}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCAv]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCAp]%
+ \IfBooleanTF{#1}{%
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }{%
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign=false,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{minipage}\ifboolKV[ListeReponses]{Unites}{~~~\si[per-mode=symbol]{\TempoAMC}}{}%
+ }%
+ }%
+ \end{questionmultx}
+ \else
+ %Fraction
+ \ifnum\PfMAMCPresenceFraction=1\relax%
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{/}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCNum]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCDeno]%
+ \IfBooleanTF{#1}{%
+ \AMCnumericChoices{\TotoAv.\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCNum+\PfMLongueurCaseAMCDeno},decimals=\PfMLongueurCaseAMCDeno,sign,Tpoint={\raisebox{0.25\AMC@boxedheight}{\rule{\PfMAMCBarreFraction}{1pt}}},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }{%
+ \AMCnumericChoices{\TotoAv.\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCNum+\PfMLongueurCaseAMCDeno},decimals=\PfMLongueurCaseAMCDeno,sign=false,Tpoint={\raisebox{0.25\AMC@boxedheight}{\rule{\PfMAMCBarreFraction}{1pt}}},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }%
+ \end{questionmultx}
+ \fi
+ % Puissances
+ \ifnum\PfMAMCPresencePuissances=1\relax%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{!}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMant]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCPuis]%
+ \IfBooleanTF{#1}{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMant},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCPuis},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}$
+ }{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMant},sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCPuis},sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}$
+ }%
+ \fi
+ % PuissancesDix
+ \ifnum\PfMAMCPresencePuissancesDix=1\relax%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{|}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMant]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCPuis]%
+ \StrCut{\TotoAv}{.}{\TotoAva}{\TotoApa}%
+ \StrLen{\fpeval{abs(\TotoAva)}}[\PfMLongueurCaseAMCManta]%
+ \StrLen{\fpeval{abs(\TotoApa)}}[\PfMLongueurCaseAMCMantb]%
+ \IfBooleanTF{#1}{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCManta+\PfMLongueurCaseAMCMantb},Tpoint={,},decimals=\PfMLongueurCaseAMCMantb,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{questionmultx}
+ \end{minipage}\quad\times10^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\PfMLongueurCaseAMCPuis,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}
+ $
+ }{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCManta+\PfMLongueurCaseAMCMantb},Tpoint={,},decimals=\PfMLongueurCaseAMCMantb,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{questionmultx}
+ \end{minipage}\quad\times10^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\PfMLongueurCaseAMCPuis,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}
+ $
+ }%
+ \fi
+ % Litteral
+ \ifnum\PfMAMCPresenceLitteral=1
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{:}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMono]%
+ \StrLen{\fpeval{abs(\TotoAp)}}[\PfMLongueurCaseAMCConst]%
+ $
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \footnotesize%
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}%
+ \AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMono},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{questionmultx}%
+ \end{minipage}
+ \qquad\useKV[ListeReponses]{Lettre}\quad
+ \begin{minipage}{\PfMAMCBarreFraction}%
+ \stepcounter{PfMNbListeReponsesAMC}\footnotesize\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}%
+ \AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCConst},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{questionmultx}%
+ \end{minipage}
+ $
+ \fi
+ \fi
+ \else%
+ \begin{question}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
+ \ifPfMDeuxColonnes
+ \begin{reponses}%
+ \bonne{\ListeAMCRep[1]}%
+ \xintFor* ##1 in{\xintSeq{2}{\ListeAMCReplen}}\do{%
+ \mauvaise{\ListeAMCRep[##1]}%
+ }%
+ \end{reponses}%
+ \else
+ \begin{reponseshoriz}%
+ \bonne{\ListeAMCRep[1]}%
+ \xintFor* ##1 in{\xintSeq{2}{\ListeAMCReplen}}\do{%
+ \mauvaise{\ListeAMCRep[##1]}%
+ }%
+ \end{reponseshoriz}%
+ \fi
+ \end{question}
+ \fi
+ }{}%
+}%
+\makeatother
+
+\makeatletter
+\tcbset{%
+ tikzamc/.style={%
+ before skip=0em,
+ bottom=0pt,
+ enhanced,
+ breakable,
+ colback=white,
+ frame hidden,
+ overlay unbroken and first={%
+ \node[%
+ name=A,
+ fill=white,
+ anchor=west,
+ %xshift=\kvtcb@leftlower,
+ ] at (frame.north west){\bfseries\sffamily\useKV[AMC]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{~:~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{~:~}}\useKV[ClesExercices]{Titre}}{}};
+ %%
+ \useKV[ClesExercices]{Ajout}%
+% %%
+ }%
+ }%
+}%
+\makeatother
+
+\def\PfMScoreA{5}%
+\def\PfMScoreB{3}%
+\def\PfMScoreC{1}%
+\def\PfMScoreD{0.1}%
+
+\NewDocumentEnvironment{exerciceAmc}{o}{%
+ \setcounter{PfMNbLogo}{1}%
+ \setcounter{PfMAMCOpen}{0}%
+ \useKVdefault[ClesExercices]%
+ \setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
+ \PfMAvantLesExercices%
+ \begin{tcolorbox}[tikzamc]%
+ }{%
+ \ifnum\thePfMAMCOpen=0\relax
+ \PfMApresLesExercices
+ \par
+ \begin{question}{\Roman{PfMExo}}
+ \AMCOpen{lineup=true,lineuptext=~,dots=false,backgroundcol=gray!20}{\mauvaise[RR]{RR}\scoring{\PfMScoreD}\mauvaise[R]{R}\scoring{\PfMScoreC}\mauvaise[V]{V}\scoring{\PfMScoreB}\bonne[VV]{VV}\scoring{\PfMScoreA}}%gray!15
+ \end{question}%
+ \fi
+ \end{tcolorbox}%
+}%
+
+%%%%%%%%%%%%%%%%% Fin AMC
+
+%%% PixelArt
+\newtoks\ToksPXTheme%
+\newtoks\ToksPXNiveau%
+\def\UpdateToksPXNiveau#1\nil{\addtotok\ToksPXNiveau{#1}}%
+\def\UpdateToksPXTheme#1\nil{\addtotok\ToksPXTheme{#1}}%
+
+\NewDocumentCommand\PfMPXCount{}{%
+ \stepcounter{PfMLettresPixelArt}%
+ \xdef\PfMCountPX{\csname p\Alph{PfMLettresPixelArt}\endcsname}%
+ \PfMCountPX%
+}%
+
+\newcounter{PfMLettresPixelArt}
+
+\NewDocumentCommand\MPPixelArt{mm}{
+ \mplibforcehmode
+ \begin{mplibcode}
+ path carre[];
+
+ u:=0.5mm;
+
+ color ColorEntier[],ColFond;
+
+ vardef BlocAffichage=
+ for k=0 upto 34:
+ carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
+ endfor;
+ enddef;
+
+ vardef Affichage(expr decomp)=
+ save $;
+ picture $;
+ drawoptions(withpen pensquare scaled0.1);
+ $=image(%
+ for k=0 upto 34:
+ if (substring(k,k+1) of decomp)="1":
+ fill carre[k] withcolor ColFond;
+ fi;
+ endfor;
+ );
+ drawoptions();
+ $
+ enddef;
+
+ nblignes:=1;
+
+ decahoriz:=0;
+
+ vardef Test(expr cptk)(text cptnt)=
+ pair Decalage;
+ Decalage=u*(decahoriz,-8*(nblignes-1));
+ decahoriz:=decahoriz+6;
+ if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="e":draw Affichage("00000000000111010001111111000001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="j":draw Affichage("00010000000011000010000101001001100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="k":draw Affichage("10000100001001010100110001010010010") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="l":draw Affichage("01100001000010000100001000010001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="q":draw Affichage("00000000000110110011011110000100001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="v":draw Affichage("00000000001000110001100010111000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=":":draw Affichage("00000011000110000000011000110000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=";":draw Affichage("00000011000110000000011000010001000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000000000000000000000000000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(Decalage);
+% elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(Decalage);
+% elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(Decalage);
+ elseif substring(cptk,cptk+1) of cptnt="_":draw Affichage("00000000000000000000000000000000000") shifted(Decalage);
+% elseif substring(cptk,cptk+1) of cptnt="~":draw Affichage("01000010000111001000010000100001000") shifted(Decalage);
+ fi;
+enddef;
+
+vardef LCDSeul(text nt)=
+ decahoriz:=0;
+ ColFond:=black;
+ if length(nt)>0:
+ for k=0 upto length(nt)-1:
+ BlocAffichage;
+ Test(k,nt);
+ endfor;
+ fi;
+ enddef;
+
+ picture TestLCD;
+ TestLCD=image(
+ LCDSeul(#1);
+ );
+ bboxmargin:=3u;
+ maxlarg=abs(lrcorner bbox TestLCD - llcorner bbox TestLCD)/u;
+ maxhaut=abs(urcorner bbox TestLCD - lrcorner bbox TestLCD)/u;
+ for k=0 upto maxlarg-1:
+ for l=0 upto maxhaut-1:
+ draw (unitsquare scaled u) shifted(llcorner bbox TestLCD+u*(k,l)) withcolor 0.8white;
+ endfor;
+ endfor;
+ draw bbox TestLCD;
+
+ draw TestLCD;
+ picture Retiens;
+ Retiens=currentpicture;
+ currentpicture:=nullpicture;
+ draw Retiens scaled 2;
+ \end{mplibcode}
+}%
+
+\NewDocumentCommand\TikzPixelArt{}{%
+ \ToksPXNiveau{}%
+ \xdef\Titi{"Classe de \useKV[PixelArt]{Niveau}"}%
+ \expandafter\UpdateToksPXNiveau\Titi\nil%
+ \ToksPXTheme{}%
+ \xdef\Toto{"\useKV[PixelArt]{Theme}"}%
+ \expandafter\UpdateToksPXTheme\Toto\nil%
+ \xdef\ListeAvantCouleurs{\useKV[PixelArt]{ListeCouleurs}}%
+ \begin{center}
+ \MPPixelArt{\the\ToksPXTheme}{\ListeAvantCouleurs}%
+ \end{center}
+}%
+
+\newcounter{PfMPX}[PfMMaquette]
+\setcounter{PfMPX}{0}
+
+\NewDocumentCommand\PfMSolPixelArt{m}{%
+ \ifboolKV[Boulot]{PixelArt}{%
+ \stepcounter{PfMLettresPixelArt}%
+ \ifboolKV[PixelArt]{Aleatoire}{%
+ \hfill\textbf{Lettre~\ListePourLesItems[\fpeval{\thePfMLettresPixelArt+1}]}%
+ %Num Lettre = \thePfMLettresPixelArt
+ }{%
+ \hfill\textbf{Lettre~\Alph{PfMLettresPixelArt}}%
+ }%
+ \ifdef{\ListeSolAv}{%
+ \xdef\ListeSolAv{\ListeSolAv,#1}%
+ }{%
+ \xdef\ListeSolAv{#1}%
+ }%
+ }{}%
+}%
+
+\NewDocumentEnvironment{exercicePX}{o}{%
+ \setcounter{PfMAlea}{0}%
+ \setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}%
+ \useKVdefault[ClesExercices]%
+ \setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
+ \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
+ \refstepcounter{PfMExo}%
+}{}
+%%% Fin PixelArt
+
+\def\PfMLogoBeamer{}
+
%%%%%%%%%%%%%%% Debut Maquette %%%%%%%
% Environnement englobant le tout.
\makeatletter
+\newwrite\PfMfile@out%
+
+\IfClassLoadedTF{beamer}{%
+ %-> tex.stackexchange.com/questions/605282/beamer-custom-frame-environment-with-options
+ \NewDocumentEnvironment{Maquette}{om}{%
+ \ifcsname PfMGraineBeamer\endcsname%
+ \setKVdefault[Boulot]{Graine=\fpeval{\PfMGraineBeamer+\thePfMMaquette}}%
+ \else%
+ \def\PfMGraineBeamer{\fpeval{randint(1000)}}%
+ \fi%
+ \immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname PfMGraineBeamer\endcsname{\csname PfMGraineBeamer\endcsname}}%
+ %
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
+ % on remet à zéro le compteur des exercices
+ % \setcounter{PfMExo}{0}%
+ \setcounter{PfMSOS}{0}%
+ % nouvelles valeurs.
+ \stepcounter{PfMMaquette}%
+ \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}%
+ \useKVdefault[Boulot]%
+ \setKV[Boulot]{#1}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AtEndDocument{%
+ \PfMPrepareCorrection{#1}%
+ \begin{frame}
+ \frametitle{\useKV[Beamer]{Theme}\hfill\raisebox{-0.25\height}{%
+ \PfMLogoBeamer}~\phantom{t}}%
+ \PfMAffichageCorrige%
+ \end{frame}
+ }%
+ }{}%
+ \useKVdefault[Beamer]%
+ \setKV[Beamer]{#2}%
+ \let\exercice\exerciceBeamer\let\endexercice\endexerciceBeamer%
+ \begin{frame}[environment=Maquette,fragile]
+ \setcounter{PfMExo}{0}%
+ \PfCGraineAlea{\useKV[Boulot]{Graine}}%
+ \frametitle{\useKV[Beamer]{Theme}\hfill\raisebox{-0.25\height}{%
+ \PfMLogoBeamer}~\phantom{t}}%
+ }{%
+ \end{frame}
+ }%
+}{%
\NewDocumentEnvironment{Maquette}{om}{%
% on remet à zéro les compteurs de solutions : inutile ?
\setcounter{RetiensSol}{0}%
@@ -3431,43 +4591,75 @@
\setcounter{PfMSOS}{0}%
% nouvelles valeurs.
\stepcounter{PfMMaquette}%
- % options de boulot
- \IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}%
- %\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}%
- % \AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}%
+ \immediate\write\@auxout{%
+ \string\opcopy{0}{ScoreTotal\thePfMMaquette}
+ }%
+ %% \opadd*{#1}{ScoreTotal\thePfMMaquette}{ScoreTotal\thePfMMaquette}%
\useKVdefault[Boulot]%
\setKV[Boulot]{#1}%
- \ifboolKV[Boulot]{CorrigeSeul}{\setKV[Boulot]{CorrigeFin}}{}%
- \if@Dyslexie
- \setKV[Boulot]{Dys}
+ \if@AssembleCorrections
+ \immediate\openout\PfMfile@out \jobname-DefiMq-\thePfMMaquette.tex%
+ \immediate\write\PfMfile@out{\unexpanded{\useKVdefault[Boulot]}}%
+ \immediate\write\PfMfile@out{\unexpanded{\setKV[Boulot]{#1}}}%
+ \ifboolKV[Boulot]{Fiche}{\immediate\write\PfMfile@out{\TikzFicheCor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{DS}{\immediate\write\PfMfile@out{\TikzDSCor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{DM}{\immediate\write\PfMfile@out{\TikzDMCor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{IE}{\immediate\write\PfMfile@out{\TikzIECor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{FdR}{\immediate\write\PfMfile@out{\TikzFdRCor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{Contrat}{\immediate\write\PfMfile@out{\TikzContratCor{\unexpanded{#2}}}}{}%
+ \ifboolKV[Boulot]{Parcours}{\immediate\write\PfMfile@out{\TikzParcoursCor{\unexpanded{#2}}}}{}%
+ \immediate\closeout\PfMfile@out%
\fi
+ % options de boulot
+ \IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}%
+ \AddToHook{env/Maquette/after}[RetiensExo]{\xdef\PfMRetiensLienExoMa{\PfMRetiensLienExoMa,\thePfMExo}}
+ %--------------
+% \useKVdefault[Boulot]%
+% \setKV[Boulot]{#1}%
+ \ifboolKV[Boulot]{CorrigeSeul}{\setKV[Boulot]{CorrigeFin}}{}%
+ \if@Dyslexie%
+ \setKV[Boulot]{Dys}%
+ \fi%
\PfMBasculeDys%
- \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}%
+ \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}%
% Test
\IfHookExistsTF{env/exercice/begin}{\RemoveFromHook{env/exercice/begin}[*]}{}%
\IfHookExistsTF{env/Maquette/end}{\RemoveFromHook{env/Maquette/end}[*]}{}%
+ \ifboolKV[Boulot]{AMC}{%
+ \setcounter{PfMNbListeReponsesAMC}{0}%
+ \setKV[AMC]{#2}%
+ \let\exercice\exerciceAmc\let\endexercice\endexerciceAmc%
+ \TikzAMC%
+ }{%
\ifboolKV[Boulot]{OlympiadesAPMEP}{%
- \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
- \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{CAN}{%
+ \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
+ \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
+ \ifboolKV[OlympiadesAPMEP]{Bandeau}{%
+ \TikzOlympiadesAPMEP{#2}%
+ \bigskip
+ }{%
+ \xdef\PfMTitreAPMEP{\useKV[OlympiadesAPMEP]{Theme}}
+ \chapter{\PfMTitreAPMEP}
+ }
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzOlympiadesAPMEPCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{CAN}{%
\setKV[CAN]{#2}%
- %\ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}%
\setcounter{PfMCNNumQ}{0}%
\setlength{\PfMLargeurQuestion}{\useKV[CAN]{CoefQ}\linewidth}\setlength{\PfMLargeurReponse}{\useKV[CAN]{CoefR}\linewidth}\setlength{\PfMLargeurJury}{\useKV[CAN]{CoefJ}\linewidth}%
\let\exercice\ExoCANWrite\let\endexercice\endExoCANWrite%
\AddToHook{env/exercice/begin}{\setcounter{PfMAlea}{0}}%
\AddToHook{env/Maquette/end}{%
- \xdef\PfMAncienneGraine{\PfMChoisisGraineAlea{123456789}}
+ \xdef\PfMAncienneGraine{\PfMChoisisGraineAlea{123456789}}%
\xdef\PfMCANTotalExo{\thePfMExo}%
\setbox\PfMSauvegardeBox\vbox{%
- \PfMGraineAlea{\thePfMMaquette}
+ \PfMGraineAlea{\thePfMMaquette}%
\setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
@@ -3476,21 +4668,21 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
\renewcommand{\arraystretch}{1}%
- }
+ }%
\ifboolKV[Boulot]{CorrigeInverse}{%
- \PfMPrepareCorrection{#1}%
- \TikzCANCor{#2}%
- \PfMAffichageCorrectionColonnes%
- \clearpage
- \normalsize%
- \TikzCAN%
- \PfMGraineAlea{\thePfMMaquette}%
- \setcounter{PfMCNNumQ}{0}%
+ \PfMPrepareCorrection{#1}%
+ \TikzCANCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ \clearpage
+ \normalsize%
+ \TikzCAN%
+ \PfMGraineAlea{\thePfMMaquette}%
+ \setcounter{PfMCNNumQ}{0}%
\setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
@@ -3499,7 +4691,7 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
@@ -3508,7 +4700,7 @@
\PfMGraineAlea{\PfMAncienneGraine}%
\TikzCAN%
\setcounter{PfMCNNumQ}{0}%
- \setcounter{PfMExo}{0}%
+ \setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
\hhline{~---}%
@@ -3516,233 +4708,399 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
\renewcommand{\arraystretch}{1}%
- \ifboolKV[Boulot]{CorrigeFin}{\ifboolKV[Boulot]{CorrigeInverse}{}{\clearpage
- \PfMPrepareCorrection{#1}%
- \TikzCANCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }
- }{}
- }
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeInverse}{}{%
+ \clearpage
+ \PfMPrepareCorrection{#1}%
+ \TikzCANCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }%
}%
}{%
\ifboolKV[Boulot]{FdR}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[FdR]{#2}\TikzFdR%
- }
- \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFdRCor{#2}%
- \PfMAffichageCorrectionColonnes
+ % \input{PfMMaquetteFdR.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[FdR]{#2}\TikzFdR%
}%
- }{}%
- }{%
- \ifboolKV[Boulot]{Contrat}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Contrat]{#2}\TikzContrat%
- }
- \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
+ \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\PfMPrepareCorrection{#1}%
- \TikzContratCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{Cours}{%
- \setKV[Cours]{#2}%
- \TikzCours%
- \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFicheCor{#2}%
- \PfMAffichageCorrectionColonnes
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{RecapBrevet}{%
- \setKV[RecapBrevet]{#2}%
- \TikzRecapBrevet%
- \let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzRecapBrevetCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{ParcoursPerso}{%
- \setKV[ParcoursPerso]{#2}%
- \DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
- \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
- \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
- \setcounter{PfMExo}{0}%
- \AtEndDocument{%
- \Recapitulatif{#1}{#2}%
- }%
- }{%
- \ifboolKV[Boulot]{Parcours}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Parcours]{#2}\TikzParcours%
- }
- \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzParcoursCor{#2}
- \PfMAffichageCorrectionColonnes
- }%
+ \TikzFdRCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
}{}%
}{%
- \ifboolKV[Boulot]{PdT}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[PdT]{#2}\TikzPdT%
- }
- \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ \ifboolKV[Boulot]{Contrat}{%
+ % \input{PfMMaquetteContrat.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Contrat]{#2}\TikzContrat%
+ }%
+ \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
\ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzPdTCor{#2}%
- \PfMAffichageCorrectionColonnes%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzContratCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
}{%
- \ifboolKV[Boulot]{DM}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[DM]{#2}\TikzDM%
- }
- \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
+ \ifboolKV[Boulot]{Cours}{%
+ % \input{PfMMaquetteCours.tex}%
+ \setKV[Cours]{#2}%
+ \TikzCours%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
\ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzDMCor{#2}%
- \PfMAffichageCorrectionColonnes%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
}{%
- \ifboolKV[Boulot]{Fiche}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Fiche]{#2}%
- \TikzFiche%
+ \ifboolKV[Boulot]{RecapBrevet}{%
+ % \input{PfMMaquetteRecapBrevet.tex}%
+ \setKV[RecapBrevet]{#2}%
+ \TikzRecapBrevet%
+ \let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzRecapBrevetCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{ParcoursPerso}{%
+ % \input{PfMMaquetteParcoursPerso.tex}%
+ \setKV[ParcoursPerso]{#2}%
+ \DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
+ \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
+ \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
+ \setcounter{PfMExo}{0}%
+ \AtEndDocument{%
+ \PfMRecapitulatif{#1}{#2}%
}%
- \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{AvecEntrainement}{%
+ }{%
+ \ifboolKV[Boulot]{Parcours}{%
+ % \input{PfMMaquetteParcours.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Parcours]{#2}\TikzParcours%
+ }%
+ \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
\AddToHook{env/Maquette/end}[Haltere]{%
\PfMAffichageEntrainementColonnes%
}%
}{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \ifboolKV[Boulot]{CorrigeAll}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFicheCor{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- \TikzFicheCorRep{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- \TikzFicheCorInd{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- }%
- }{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \useKVdefault[Boulot]%
- \setKV[Boulot]{#1}%
- %%
- \if@Dyslexie
- \setKV[Boulot]{Dys}
- \fi
- \PfMBasculeDys%
- \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
- \TikzFicheCor{#2}%
- \PfMChangerTailleCorrection%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \PfMAffichageCorrige%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- }%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{DS}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[DS]{#2}\TikzDS%
- }%
- \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
- \ifboolKV[Boulot]{BaremeComplet}{%
- \begin{center}
- \TableauRecapitulatif
- \end{center}
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}
- \TikzDSCor{#2}%
+ \PfMPrepareCorrection{#1}%
+ \TikzParcoursCor{#2}%
\PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{IE}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[IE]{#2}\TikzIE%
- }
- \let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}
- \TikzIECor{#2}%
- \PfMAffichageCorrectionColonnes
}%
}{}%
}{%
- \ifboolKV[Boulot]{Kholle}{%
- \setKV[Kholle]{#2}%
- \TikzKholle%
- \let\exercice\exerciceKholle\let\endexercice\endexerciceKholle%
- \ifboolKV[Kholle]{CR}{}{%
+ \ifboolKV[Boulot]{PdT}{%
+ % \input{PfMMaquettePdT.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[PdT]{#2}\TikzPdT%
+ }%
+ \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzPdTCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{DM}{%
+ % \input{PfMMaquetteDM.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[DM]{#2}\TikzDM%
+ }%
+ \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
- \TikzKholleCor{#2}%
- \TikzKholleCor{#2}%
- \TikzKholleCor{#2}%
- \PfMAffichageCorrige%
+ \PfMPrepareCorrection{#1}%
+ \TikzDMCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
+ }{%
+ \ifboolKV[Boulot]{Fiche}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Fiche]{#2}%
+ \TikzFiche%
+ }%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorRep{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.rep}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorInd{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.cdp}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+% \useKVdefault[Boulot]%
+% \setKV[Boulot]{#1}%
+% %%
+% \if@Dyslexie
+% \setKV[Boulot]{Dys}%
+% \fi
+% \PfMBasculeDys%
+% \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \if@AssembleCorrections
+ \else
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ \fi%
+ }%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{DS}{%
+ % \input{PfMMaquetteDS.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[DS]{#2}\TikzDS%
+ }%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
+ \ifboolKV[Boulot]{BaremeComplet}{%
+ \begin{center}
+ \TableauRecapitulatif
+ \end{center}
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \if@AssembleCorrections
+ \else
+ \PfMPrepareCorrection{#1}%
+ \TikzDSCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ \fi%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{IE}{%
+ % \input{PfMMaquetteIE.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[IE]{#2}\TikzIE%
+ }%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzIECor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{Kholle}{%
+ % \input{PfMMaquetteKholle.tex}%
+ \setKV[Kholle]{#2}%
+ \TikzKholle%
+ \let\exercice\exerciceKholle\let\endexercice\endexerciceKholle%
+ \ifboolKV[Kholle]{CR}{}{%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzKholleCor{#2}%
+ \TikzKholleCor{#2}%
+ \TikzKholleCor{#2}%
+ \PfMAffichageCorrige%
+ }%
+ }{}%
+ }%
+ }{%
+ \ifboolKV[Boulot]{LivreHeros}{%
+ \setKV[LivreHeros]{#2}%
+ \TikzLivreHeros%
+ \let\exercice\ExoGBWrite\let\endexercice\endExoGBWrite%
+ \AddToHook{env/Maquette/end}{%
+ \xdef\PfMListeExoGB{}%
+ \xintFor* ##1 in{\xintSeq{2}{\thePfMExo}}\do{%
+ \xdef\PfMListeExoGB{\PfMListeExoGB,##1}%
+ }%
+ \MelangeListe{\PfMListeExoGB}{\fpeval{\thePfMExo-1}}%
+ \xdef\PfMFooMelange{1,\faa}%
+ \setsepchar{,}\ignoreemptyitems\readlist*\ListePerm{\PfMFooMelange}\reademptyitems%
+ \phantomsection{}
+ \addcontentsline{toc}{section}{\useKV[LivreHeros]{Theme}}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \itemtomacro\ListePerm[##1]\PfMPermute%
+ \begin{tcolorbox}[tikzLH,title=##1]%
+ \refstepcounter{PfMGameBook}%
+ \input{\jobname-Ma\thePfMMaquette-Ex\PfMPermute.gb}%
+ \end{tcolorbox}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{%
+ \ifboolKV[Boulot]{PixelArt}{%
+ \setcounter{PfMLettresPixelArt}{0}
+ \xdef\ListeSolAv{}%
+ \setKV[PixelArt]{#2}%
+ \setlength{\PfMLargeurTableauPixelArt}{\useKV[PixelArt]{LargeurTab}}%
+ \ifboolKV[PixelArt]{Aleatoire}{%
+ \setcounter{PfMLettresPixelArt}{1}%
+ \StrLen{\useKV[PixelArt]{Lettres}}[\PfMNbLettres]%
+ \ChoixSommet{\PfMNbLettres}{S}%
+ \xdef\ListePourLesItemsAv{\pA}%
+ \xintFor* ##1 in{\xintSeq{2}{\PfMNbLettres}}\do{%
+ \stepcounter{PfMLettresPixelArt}%
+ \xdef\ListePourLesItemsAv{\ListePourLesItemsAv,\csname p\Alph{PfMLettresPixelArt}\endcsname}%
+ }%
+ \setsepchar{,}\ignoreemptyitems\readlist*\ListePourLesItems{\ListePourLesItemsAv}\reademptyitems%
+ \setcounter{PfMLettresPixelArt}{-1}%
+ \setKVdefault[PfMPixelArt]{ListeNombres={\ListePourLesItemsAv}}%
+ }{}%
+ \TikzPixelArt%
+ \let\exercice\exercicePX\let\endexercice\endexercicePX%
+ \AddToHook{env/Maquette/end}{%
+ \StrLen{\useKV[PixelArt]{Lettres}}[\PfMNbLettres]
+ \setsepchar{,}\ignoreemptyitems
+ \readlist*\ListeSolPX{\ListeSolAv}%
+ \reademptyitems
+ \ifnum\fpeval{\ListeSolPXlen}=\fpeval{\PfMNbLettres}\relax
+ \xdef\PfMListeExoPX{}%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeSolPXlen}}\do{%
+ \xdef\PfMListeExoPX{\PfMListeExoPX,##1}%
+ }%
+ \MelangeListe{\PfMListeExoPX}{\ListeSolPXlen}%
+ \xdef\PfMFooMelange{\faa}%
+ \xdef\PfMListeCouleursAv{\useKV[PixelArt]{ListeCouleurs}}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListePerm{\PfMFooMelange}%
+ \readlist*\ListeCouleursPX{\PfMListeCouleursAv}%
+ \reademptyitems%
+% Le nombre de couleurs est \ListeCouleursPXlen.\\
+% Le nombre de lettres est \PfMNbLettres\\
+ \ifnum\fpeval{\ListeCouleursPXlen}=\fpeval{\PfMNbLettres}\relax
+ \ifboolKV[PixelArt]{CoupureTableau}{%
+ \begin{center}
+ \quotient{\ListeSolPXlen}{\useKV[PixelArt]{CoupeTableau}}%
+ \modulo{\ListeSolPXlen}{\useKV[PixelArt]{CoupeTableau}}%
+ \xintFor* ##1 in{\xintSeq{1}{\the\intquotient}}\do{%
+ \begin{tabular}{|*{\useKV[PixelArt]{CoupeTableau}}{>{\centering\arraybackslash}m{\PfMLargeurTableauPixelArt}|}}%
+ \hline%
+ \xintFor* ##2 in{\xintSeq{1}{\useKV[PixelArt]{CoupeTableau}}}\do{%
+ \itemtomacro\ListePerm[\fpeval{\useKV[PixelArt]{CoupeTableau}*(##1-1)+##2}]\PfMPermute%
+ \itemtomacro\ListeCouleursPX[\PfMPermute]\Toto%
+ \xdef\Titi{\Toto}%
+ \cellcolor{\Titi}\xintifForLast{}{&}%\Titi
+ }\\
+ \hline%
+ \xintFor* ##2 in{\xintSeq{1}{\useKV[PixelArt]{CoupeTableau}}}\do{%
+ \itemtomacro\ListePerm[\fpeval{\useKV[PixelArt]{CoupeTableau}*(##1-1)+##2}]\PfMPermute%
+ \itemtomacro\ListeSolPX[\PfMPermute]\Toto%
+ \Toto\xintifForLast{}{&}%\Toto
+ }\\
+ \hline
+ \end{tabular}\par%
+ }%
+ \ifnum\remainder>0\relax
+ \begin{tabular}{|*{\the\remainder}{>{\centering\arraybackslash}m{\PfMLargeurTableauPixelArt}|}}%
+ \hline
+ \xintFor* ##2 in{\xintSeq{1}{\the\remainder}}\do{%
+ \itemtomacro\ListePerm[\fpeval{\useKV[PixelArt]{CoupeTableau}*\the\intquotient+##2}]\PfMPermute%
+ \itemtomacro\ListeCouleursPX[\PfMPermute]\Toto%
+ \xdef\Titi{\Toto}%
+ \cellcolor{\Titi}\xintifForLast{}{&}%\Titi
+ }\\
+ \hline
+ \xintFor* ##2 in{\xintSeq{1}{\the\remainder}}\do{%
+ \itemtomacro\ListePerm[\fpeval{\useKV[PixelArt]{CoupeTableau}*\the\intquotient+##2}]\PfMPermute%
+ \itemtomacro\ListeSolPX[\PfMPermute]\Toto%
+ \Toto\xintifForLast{}{&}%\Toto
+ }\\
+ \hline
+ \end{tabular}
+ \fi
+ \end{center}
+ }{%
+ \begin{center}
+ \begin{tabular}{|*{\ListeSolPXlen}{>{\centering\arraybackslash}m{\PfMLargeurTableauPixelArt}|}}
+ \hline%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeSolPXlen}}\do{%
+ \itemtomacro\ListePerm[##1]\PfMPermute%
+ \itemtomacro\ListeCouleursPX[\PfMPermute]\Toto%
+ \xdef\Titi{\Toto}%
+ \cellcolor{\Titi}\xintifForLast{}{&}
+ }\\
+ \hline
+ \xintFor* ##1 in{\xintSeq{1}{\ListeSolPXlen}}\do{%
+ \itemtomacro\ListePerm[##1]\PfMPermute%
+ \itemtomacro\ListeSolPX[\PfMPermute]\Toto%
+ \Toto\xintifForLast{}{&}
+ }\\
+ \hline
+ \end{tabular}
+ \end{center}%
+ }
+ \begin{center}
+ \PfMPixelArt[#2]{\useKV[PixelArt]{Fichier}}%
+ \end{center}
+ \else
+ Le nombre de couleurs et le nombre de lettres ne correspondent pas.
+ \fi
+ \else
+ \ifnum\fpeval{\ListeSolPXlen}<\fpeval{\PfMNbLettres}\relax
+ Il manque des éléments de solutions.
+ \else
+ Il y a trop d'éléments de solutions.
+ \fi
+ \fi
+ }%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
}%
- }{}%
+ }%
}%
}%
}%
@@ -3753,9 +5111,6 @@
}%
}%
}%
-}%
-}%
-}%
}{}%
\makeatother
%D'après JCC
@@ -3770,7 +5125,7 @@
\def\empty@list{}
% Macro pour définir une nouvelle liste
-\newcommand\definelist[2]{\def#1{#2}}
+\newcommand\PfMdefinelist[2]{\def#1{#2}}
% Macro pour ajouter un élément en fin de liste
\newcommand\push[2]{%
@@ -3971,7 +5326,7 @@
}
\makeatother
\newcommand\initEnsemblede{%
- \definelist{\EnsembleDe}{%
+ \PfMdefinelist{\EnsembleDe}{%
{2,4,6,8,10,12},%
{1,3,5,7,9,11},%
{2,3,5,7,11,13},%
@@ -3987,11 +5342,11 @@
\newcommand\initpremiers{%
- \definelist{\listpremiers}{13,17,19,23,29,31,37,41,43,47}%
+ \PfMdefinelist{\listpremiers}{13,17,19,23,29,31,37,41,43,47}%
}
\newcommand\initPremiers{%
- \definelist{\listPremiers}{71,73,79,83,89,97,101,103,107,109,113,127,131,137,139}%
+ \PfMdefinelist{\listPremiers}{71,73,79,83,89,97,101,103,107,109,113,127,131,137,139}%
}
\newcommand\getpremier{%
@@ -4010,19 +5365,19 @@
}
\newcommand\initalpha{%
- \definelist{\alphas}{b,c,d,e,f}
+ \PfMdefinelist{\alphas}{b,c,d,e,f}
}
\newcommand\getalpha{%
\randomextract{\alphas}{\alphaA}%
}%
\newcommand\initsommet{%
- \definelist{\sommets}{A,B,C,D,E,F,G,H,I,J,K,L,M,% pas d'espace ?
+ \PfMdefinelist{\sommets}{A,B,C,D,E,F,G,H,I,J,K,L,M,% pas d'espace ?
N,O,P,Q,R,S,T,U,V,W,X,Y,Z}%
}
\newcommand\initsommetrep{%
- \definelist{\sommets}{A,B,C,D,E,F,G,H,I,J,K,L,M,% pas d'espace ?
+ \PfMdefinelist{\sommets}{A,B,C,D,E,F,G,H,I,J,K,L,M,% pas d'espace ?
N,P,Q,R,S,T,U,V,W,X,Y,Z}%
}
@@ -4105,7 +5460,7 @@
\randomextract{\sommets}{\pM}%
}
-\definelist{\quadruplets}{%
+\PfMdefinelist{\quadruplets}{%
{2{,}8,9{,}6,6,8},%10
{3{,}2,12{,}6,5,12},%13
{6{,}6,11{,}2,5,12},%13
@@ -4135,7 +5490,7 @@
{24{,}6,32{,}8,16{,}8,37{,}4}%41
}%
-\definelist{\Quadruplets}{%pour un fonctionnement avec \fpeval
+\PfMdefinelist{\Quadruplets}{%pour un fonctionnement avec \fpeval
{2.8,9.6,6,8},%10
{3.2,12.6,5,12},%13
{6.6,11.2,5,12},%13
@@ -4165,7 +5520,7 @@
{24.6,32.8,16.8,37.4}%41
}%
-\definelist{\tripletspytha}{{2{,}8,9{,}6,10},{6,8,10},%10
+\PfMdefinelist{\tripletspytha}{{2{,}8,9{,}6,10},{6,8,10},%10
{3{,}2,12{,}6,13},{5,12,13},%13
{6{,}6,11{,}2,13},{7{,}8,10{,}4,13},%13
{4{,}2,14{,}4,15},{9,12,15},%15
@@ -4182,12 +5537,12 @@
{24{,}6,32{,}8,41},{26{,}6,31{,}2,41}%41
}%
-\definelist{\tripletspythaentier}{%
+\PfMdefinelist{\tripletspythaentier}{%
{3,4,5},{5,12,13},{6,8,10},{7,24,25},{8,15,17},{9,12,15},{9,40,41},{10,24,26},{11,60,61},{12,16,20},{12,35,37},{13,84,85},{14,48,50},{15,20,25},{15,36,39},{16,30,34},{16,63,65},{18,24,30},{18,80,82},{20,21,29},{20,48,52},{21,28,35},{21,72,75},{24,32,40},{24,45,51},{24,70,74},{25,60,65},{27,36,45},{28,45,53},{28,96,100},{30,40,50},{30,72,78},{32,60,68},{33,44,55},{33,56,65},{35,84,91},{36,48,60},{36,77,85},{39,52,65},{39,80,89},{40,42,58},{40,75,85},{42,56,70},{45,60,75},{48,55,73},{48,64,80},{51,68,85},{54,72,90},{57,76,95},{60,63,87},{60,80,100},{65,72,97}}%%d'après villement.gerard.free.fr
\newcommand\initcarre{%
- \definelist{\carres}{4,9,16,25,36,49,64,81,100}%
+ \PfMdefinelist{\carres}{4,9,16,25,36,49,64,81,100}%
}
\newcommand\getcarre{%
\randomextract{\carres}{\carreA}
@@ -4195,7 +5550,7 @@
%2009-2018
% Source https://ec.europa.eu/eurostat/databrowser/view/ENV_AIR_GGE__custom_743354/default/table?lang=en
-\definelist{\GazSerreEu}{%
+\PfMdefinelist{\GazSerreEu}{%
{{la },Belgique,131038.46,123642.9},%
{{la },Bulgarie,58617.88,58595.07},%
{{le },Danemark,65734.85,51299.75},%
@@ -4219,7 +5574,7 @@
\extract{\GazSerrePays}{1}{\ConsoBPaysGS}%
}
- \definelist{\VehiculesINSEE}{%
+ \PfMdefinelist{\VehiculesINSEE}{%
{2012,13132,22264,8111,15242},%
{2013,12853,22712,8028,15020},%
{2014,12778,23134,8049,14905},%
@@ -4391,8 +5746,17 @@
\BaremeEspaceMarge{-82pt}
}
-\AddToHook{env/multicols/begin}{\setcounter{Nbcolonnes}{2}}%
-\AddToHook{env/multicols/after}{\setcounter{Nbcolonnes}{4}}%
+%\AddToHook{env/multicols/begin}{\setcounter{Nbcolonnes}{2}}%
+%\AddToHook{env/multicols/after}{\setcounter{Nbcolonnes}{4}}%
+
+\NewDocumentCommand\Cicontre{s}{%
+ \ifPfMDeuxColonnes
+ \IfBooleanTF{#1}{ci-dessous}{ci-dessus}%
+ \else
+ ci-contre%
+ \fi
+}%
+
\NewDocumentEnvironment{Dispo}{sm+b}{%
\ifPfMDeuxColonnes
\IfBooleanTF{#1}{%
@@ -4468,4 +5832,521 @@
}%
\fi%
\end{align*}
-}{}% \ No newline at end of file
+}{}%
+
+\def\RetiensEchelle{1cm}
+\def\ChoixNbQuestions{5}
+
+\NewDocumentCommand\QuestionBoulotold{}{%
+ \ifboolKV[Boulot]{CAN}{\setKV[ClesExercices]{NbQuestions=1}}{%
+ \ifboolKV[Boulot]{AMC}{\setKV[ClesExercices]{NbQuestions=1}}{%
+ \setKV[ClesExercices]{NbQuestions=\ChoixNbQuestions}%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\QuestionBoulot{O{\ChoixNbQuestions}}{%
+ \ifboolKV[Boulot]{CAN}{%
+ \setKV[ClesExercices]{NbQuestions=1}%
+ }{%
+ \setKV[ClesExercices]{NbQuestions=#1}%
+ }%
+}%
+\makeatletter
+\if@CAN
+ \AddToHook{env/document/before}{%
+ \ProvidesPackage{ProfMaquette}[Mode CAN (CP)]%
+ \RequirePackage{pgfmorepages}
+ \pgfmorepagesloadextralayouts
+ \pgfpagesuselayout{4 on 2, book format}[a4paper,landscape]
+ }
+\fi
+
+\if@Revision
+ \AddToHook{env/document/before}{%
+ \ProvidesPackage{ProfMaquette}[Mode Revision (CP)]%
+ \setcounter{Nbcolonnes}{2}%
+ \def\RetiensEchelle{0.5cm}
+ \RequirePackage{pgfmorepages}
+ \pgfmorepagesloadextralayouts
+ \pgfpagesuselayout{4 on 2, book format}[a4paper]
+ }
+\fi
+
+\if@Personnel
+ \input{PfMPerso.cfg}
+\fi
+\makeatother
+
+\IfClassLoadedTF{beamer}{}{%
+ % enumitem obligatoire ^^
+% mais pas compatible beamer
+\RequirePackage{enumitem}
+% d'après https://tex.stackexchange.com/questions/164613/adding-code-at-the-end-of-each-list-item
+\newif\iffirstlegal\firstlegalfalse% We need a toggle to track whether the item is first in the list or not
+
+\newlist{Test}{enumerate}{3}
+
+\def\PfMPar{\par}
+
+\NewDocumentCommand\litem{}{}
+
+\let\olditem\item% save the standard definition of \item in a macro, \olditem
+
+\setlist[Test,1]{%
+ leftmargin=*,
+ label=\arabic*.,
+ before={%
+ \setcounter{PfMProfondeur}{1}%
+ \setcounter{PfMNbLignesFinitem}{0}
+ \firstlegaltrue% set the toggle for first item in the list to true
+ \def\Primeitem{\iffirstlegal\olditem\stepcounter{PfMNbLignesFinitem}%
+ \firstlegalfalse
+ \else
+ \ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]}\else\ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]=1\relax\PfMPar\pointilles\fi\fi%
+ \olditem\stepcounter{PfMNbLignesFinitem}%
+ \fi
+ }% new, temporary defition of \item
+ \let\litem\Primeitem
+ \let\item\litem
+ },
+ after={%
+ \ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]>0\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]}\else\ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]=1\relax\PfMPar\pointilles\fi\fi%
+ % fill for final item in list
+ \let\litem\olditem% restore standard definition of \item
+ \let\item\olditem
+ \setcounter{PfMProfondeur}{0}%
+ }%
+}%
+
+\setlist[Test,2]{%
+ leftmargin=*,
+ label=(\alph*),
+ before={%
+ \setcounter{PfMProfondeur}{2}%
+ \setcounter{PfMNbLignesFinitemi}{0}
+ \firstlegaltrue%
+ \def\Seconditem{\iffirstlegal\olditem\stepcounter{PfMNbLignesFinitemi}\firstlegalfalse\else%
+ \ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]}\else\ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]=1\relax\PfMPar\pointilles\fi
+ \fi%
+ \olditem\stepcounter{PfMNbLignesFinitemi}
+ \fi
+ }% new, temporary defition of \item
+ \let\litem\Seconditem
+ \let\item\litem
+ },
+ after={%
+ \ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]}\else\ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]=1\relax\PfMPar\pointilles\fi
+ \fi%
+% % fill for final item in list
+ \let\litem\Primeitem%
+ \let\item\litem
+ \setcounter{PfMProfondeur}{1}%
+ }%
+}
+
+\newcounter{PfMNbLignesFinitem}
+\newcounter{PfMNbLignesFinitemi}
+\newcounter{PfMProfondeur}
+\setcounter{PfMProfondeur}{0}%
+
+\NewDocumentEnvironment{autoenumerate}{O{}m +b}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \ifnum\thePfMProfondeur=0\relax%
+ \readlist*\PfMListeDesAjoutsdeLignes{#2}%
+ \else%
+ \readlist*\PfMListeDesAjoutsdeLignesi{#2}%
+ \fi%
+ \begin{Test}[#1]%
+ #3
+ \end{Test}%
+}{}%
+}%
+
+%%%
+% PixelArt
+%%%
+\newtoks\toklistePfMPANombre%
+\newtoks\tokPfMPXNomCouleur%
+\def\UpdatetoksPfMPANombre#1\nil{\addtotok\toklistePfMPANombre{"#1",}}%
+\def\UpdatetoksPfMPXNomCouleur#1\nil{\addtotok\tokPfMPXNomCouleur{"#1",}}%
+
+\setKVdefault[PfMPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false,Deforme=false,Coefx=0.25,Coefy=0.25,Borne=false,Graines=false}%
+\defKV[PfMPixelArt]{ListeNombres=\setKV[PfMPixelArt]{Nombres}}%
+\defKV[PfMPixelArt]{Graine=\setKV[PfMPixelArt]{Graines}}%
+
+%"mario1.txt"
+
+\NewDocumentCommand\PfMPixelArt{o m}{%
+ \toklistePfMPANombre{}%
+ \tokPfMPXNomCouleur{}%
+ \useKVdefault[PfMPixelArt]%
+ \setKV[PfMPixelArt]{#1}%
+% \expandafter\UpdatetoksPfMPXNomFichier\useKV[PixelArt]{Fichier}\nil%
+% Le tok fichier est \the\tokPfMPXNomFichier
+ \xdef\ListeAvantCouleurs{\useKV[PfMPixelArt]{ListeCouleurs}}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListePACouleur{\ListeAvantCouleurs}%
+ \reademptyitems%
+ \foreachitem\compteur\in\ListePACouleur{\expandafter\UpdatetoksPfMPXNomCouleur\compteur\nil}%
+ \ifboolKV[PfMPixelArt]{Nombres}{%
+ \xdef\ListeAvantNombres{\useKV[PfMPixelArt]{ListeNombres}}%
+ \setsepchar{,}%
+ \readlist*\ListePANombre{\ListeAvantNombres}%
+ \foreachitem\compteur\in\ListePANombre{\expandafter\UpdatetoksPfMPANombre\compteur\nil}%
+ }{}
+ \ifboolKV[PfMPixelArt]{Geant}{%
+ % Découpe en hauteur : \fpeval{\useKV[PfMPixelArt]{Hauteur}/\useKV[PfMPixelArt]{HauteurD}}\\
+ % Découpe en largeur : \fpeval{\useKV[PfMPixelArt]{Largeur}/\useKV[PfMPixelArt]{LargeurD}-1}}\par
+ \ifboolKV[PfMPixelArt]{Complet}{%
+ \xintFor* ##1 in{\xintSeq{0}{\fpeval{\useKV[PfMPixelArt]{Hauteur}/\useKV[PfMPixelArt]{HauteurD}-1}}}\do{%
+ \xintFor* ##2 in{\xintSeq{0}{\fpeval{\useKV[PfMPixelArt]{Largeur}/\useKV[PfMPixelArt]{LargeurD}-1}}}\do{%
+ \fpeval{##1*\useKV[PfMPixelArt]{Hauteur}/\useKV[PfMPixelArt]{HauteurD}+##2} : \PfMBuildPixelArtGeant{#2}{\useKV[PfMPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePfMPANombre}{##1}{##2}\\%
+ }%
+ }%
+ }{%
+% \quotient{\fpeval{\useKV[PfMPixelArt]{Numero}-1}}{\fpeval{\useKV[PfMPixelArt]{Hauteur}/\useKV[PfMPixelArt]{HauteurD}}}%
+% \modulo{\fpeval{\useKV[PfMPixelArt]{Numero}-1}}{\fpeval{\useKV[PfMPixelArt]{Hauteur}/\useKV[PfMPixelArt]{HauteurD}}}%
+ \quotient{\fpeval{\useKV[PfMPixelArt]{Numero}-1}}{\fpeval{\useKV[PfMPixelArt]{Largeur}/\useKV[PfMPixelArt]{LargeurD}}}%
+ \modulo{\fpeval{\useKV[PfMPixelArt]{Numero}-1}}{\fpeval{\useKV[PfMPixelArt]{Largeur}/\useKV[PfMPixelArt]{LargeurD}}}%
+% quotient = \the\intquotient -- remainder = \the\remainder :\\
+ \PfMBuildPixelArtGeant{#2}{\useKV[PfMPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePfMPANombre}{\the\intquotient}{\the\remainder}%
+ }%
+ }{%
+ \ifboolKV[PfMPixelArt]{Deforme}{%
+ \PfMBuildPixelArtDeforme{#2}{\useKV[PfMPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePfMPANombre}%
+ }{%
+ % \PfMBuildPixelArt{#2}{\useKV[PfMPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePfMPANombre}%
+ \PfMBuildPixelArt{#2}{\useKV[PfMPixelArt]{Lettres}}{\the\tokPfMPXNomCouleur}{\the\toklistePfMPANombre}%%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\PfMBuildPixelArt{m m m m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+% largeur:=\useKV[PfMPixelArt]{Largeur};
+% hauteur:=\useKV[PfMPixelArt]{Hauteur};
+ largeurd:=\useKV[PfMPixelArt]{LargeurD};
+ hauteurd:=\useKV[PfMPixelArt]{HauteurD};
+ Unite:=\useKV[PfMPixelArt]{Unite};
+
+ boolean Solution,Nombres,Separations,RotationPixel;
+ Solution:=\useKV[PfMPixelArt]{Solution};
+ Nombres:=\useKV[PfMPixelArt]{Nombres};
+ Separations:=\useKV[PfMPixelArt]{Separations};
+ RotationPixel:=\useKV[PixelArt]{Landscape};
+
+ string BaseLettres;
+ BaseLettres=str #2;
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
+ color ColorEntier[],ColFond;
+ n:=0;
+ for p_=#3:
+ n:=n+1;
+ index:=0;
+ for k=0 upto (length p_-1):
+ if substring(k,k+1) of p_="!":
+ index:=k;
+ fi;
+ endfor;
+ if index>0:
+ color base;
+ base=scantokens(substring(0,index) of p_);
+ atte:=scantokens(substring(index+1,length p_) of p_);
+ ColorEntier[n]:=(atte/100)[white,base];
+ else:
+ ColorEntier[n]:=scantokens(p_);
+ fi;
+% ColorEntier[n]:=black;
+ endfor;
+
+ string RetiensNombres[];
+ if Nombres:
+ k:=0;
+ for p_=#4:
+ k:=k+1;
+ RetiensNombres[k]=p_;
+ endfor;
+ else:
+ m:=0;
+ for p_=0 upto n-1:
+ m:=m+1;
+ RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
+ endfor;
+ fi;
+
+ picture Etiquette[];
+ for k=1 upto n:
+ Etiquette[k]=image(
+ label(TEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+ );
+ endfor;
+
+ vardef Largeur(expr nomfichier)=
+ string p_;
+ p_=readfrom nomfichier;
+ largeur=(length p_+1) div 2;
+ closefrom nomfichier;
+ enddef;
+
+ vardef Hauteur(expr nomfichier)=
+ string p_;
+ hauteur=0;
+ p_=readfrom nomfichier;
+ forever: exitif p_=EOF;
+ hauteur:=hauteur+1;
+ p_:=readfrom nomfichier;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ vardef Lecturecsv(expr nomfichier)=
+ for h=hauteur downto 1:
+ string p_;
+ p_=readfrom nomfichier;
+ l:=0;
+ for p=0 step 2 until 2*largeur-2:
+ l:=l+1;
+ if Solution=false:
+ if (substring(p,p+1) of p_)="-":
+ else:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
+ fi;
+ endfor;
+ fi;
+ fi;
+ if Solution:
+ if (substring(p,p+1) of p_)="-":
+ else:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ ColFond:=ColorEntier[m+1];
+ fi;
+ endfor;
+ if unknown ColFond:
+ else:
+ fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond
+ fi;
+ fi;
+ fi;
+ trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
+ endfor;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ Largeur(#1);
+ Hauteur(#1);
+% label.top(TEX("Largeur = "&decimal(largeur)),(0,-1cm));
+% label.bot(TEX("Hauteur = "&decimal(hauteur)),(0,-1cm));
+ Lecturecsv(#1);
+ if Separations:
+ drawoptions(withcolor Purple);
+ for k=hauteur step -hauteurd until 0:
+ draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step largeurd until largeur:
+ draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+ endfor;
+ drawoptions();
+ fi;
+ if RotationPixel:
+ picture Retiens;
+ Retiens:=currentpicture;
+ currentpicture:=nullpicture;
+ draw Retiens rotatedabout(center Retiens,90);
+ fi;
+ \end{mplibcode}
+ \fi
+}%
+
+\NewDocumentCommand\PfMBuildPixelArtDeforme{m m m m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ largeur:=\useKV[PfMPixelArt]{Largeur};
+ hauteur:=\useKV[PfMPixelArt]{Hauteur};
+ largeurd:=\useKV[PfMPixelArt]{LargeurD};
+ hauteurd:=\useKV[PfMPixelArt]{HauteurD};
+ Unite:=\useKV[PfMPixelArt]{Unite};
+
+ %Deformation
+ Coefx=\useKV[PfMPixelArt]{Coefx};
+ Coefy=\useKV[PfMPixelArt]{Coefy};
+ boolean Borne,Graines;
+ Borne=\useKV[PfMPixelArt]{Borne};
+ Graines=\useKV[PfMPixelArt]{Graines};
+ if Graines:
+ randomseed:=\useKV[PfMPixelArt]{Graine};
+ fi;
+ %
+ pair M[][];
+ for l=1 upto hauteur+1:
+ for c=1 upto largeur+1:
+ if Borne:
+ if (l=1) or (l=hauteur+1):
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),0);
+ if (c=1) or (c=largeur+1):
+ M[l][c]:=Unite*(c,l);
+ fi;
+ else:
+ if (c=1) or (c=largeur+1):
+ M[l][c]=Unite*(c,l-1)+Unite*(0,uniformdeviate(Coefy));
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ fi;
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ %dotlabel("",M[l][c]);
+ endfor;
+ endfor;
+
+ boolean Solution,Nombres,Separations;
+ Solution:=\useKV[PfMPixelArt]{Solution};
+ Nombres:=\useKV[PfMPixelArt]{Nombres};
+ Separations:=\useKV[PfMPixelArt]{Separations};
+
+ string BaseLettres;
+ BaseLettres=str #2;
+ numeric EchelleScale;
+ EchelleScale=Unite/10mm;
+
+ color ColorEntier[],ColFond;
+ n:=0;
+ for p_=#3:
+ n:=n+1;
+ ColorEntier[n]:=p_;
+ endfor;
+
+ string RetiensNombres[];
+ if Nombres:
+ n:=0;
+ for p_=#4:
+ n:=n+1;
+ RetiensNombres[n]=p_;
+ endfor;
+ fi;
+
+ vardef Lecturecsv(expr nomfichier)=
+ for h=hauteur downto 1:
+ string p_;
+ p_=readfrom nomfichier;
+ l:=0;
+ for p=0 step 2 until 2*largeur-2:
+ l:=l+1;
+ if (substring(p,p+1) of p_)="-":
+ else:
+ if Nombres:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ label(TEX(RetiensNombres[m+1]) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
+ fi;
+ endfor;
+ else:
+ label(TEX(substring(p,p+1) of p_) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
+ fi;
+ if Solution:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ ColFond:=ColorEntier[m+1];
+ fi;
+ endfor;
+ if unknown ColFond: else: fill polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]) withcolor ColFond fi;
+ fi;
+ trace polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]);
+ fi;
+ endfor;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ Lecturecsv("#1");
+ \end{mplibcode}
+\fi
+}%
+
+\NewDocumentCommand\PfMBuildPixelArtGeant{m m m m m m}{%
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ largeur:=\useKV[PfMPixelArt]{Largeur};
+ hauteur:=\useKV[PfMPixelArt]{Hauteur};
+ largeurd:=\useKV[PfMPixelArt]{LargeurD};
+ hauteurd:=\useKV[PfMPixelArt]{HauteurD};
+
+ Unite:=\useKV[PfMPixelArt]{Unite};
+
+ boolean Solution,Nombres;
+ Solution:=\useKV[PfMPixelArt]{Solution};
+ Nombres:=\useKV[PfMPixelArt]{Nombres};
+
+ string BaseLettres;
+ BaseLettres=str #2;
+
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
+ color ColorEntier[],ColFond;
+ n:=0;
+ for p_=#3:
+ n:=n+1;
+ ColorEntier[n]:=p_;
+ endfor;
+
+ string RetiensNombres[];
+ if Nombres:
+ n:=0;
+ for p_=#4:
+ n:=n+1;
+ RetiensNombres[n]=p_;
+ endfor;
+ fi;
+
+ vardef Lecturecsv(expr nomfichier)=
+ % for h=hauteur-#5*hauteurd downto hauteur-(#5+1)*hauteurd:
+ for h=hauteur downto 1:
+ string p_;
+ p_=readfrom nomfichier;
+ l:=0;
+ if (h>hauteur-(#5+1)*hauteurd) and (h<hauteur-#5*hauteurd+1):
+ for p=2*#6*largeurd step 2 until 2*(#6+1)*largeurd-2:
+ l:=l+1;
+ if (substring(p,p+1) of p_)="-":
+ else:
+ if Nombres:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ label(TEX(RetiensNombres[m+1]) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ fi;
+ endfor;
+ else:
+ label(TEX(substring(p,p+1) of p_) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ fi;
+ if Solution:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ ColFond:=ColorEntier[m+1];
+ fi;
+ endfor;
+ if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
+ fi;
+ trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
+ fi;
+ endfor;
+ fi;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ Lecturecsv("#1");
+ \end{mplibcode}
+ \fi%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
index 3e23a4d227..3769f87f68 100644
--- a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
+++ b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
index 431958ee1f..d75019352d 100644
--- a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
+++ b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
@@ -4,8 +4,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.1.2}
-\def\TPdate{5 novembre 2023}
+\def\TPversion{0.1.4}
+\def\TPdate{10 septembre 2024}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
@@ -85,7 +85,7 @@
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\QuizzMillions,\QuizzPrendrePlace},%
+ morekeywords={\QuizzMillions,\QuizzPrendrePlace,\SetDefautPrendrePlace,\SetDefautMillions},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
morekeywords={Largeur,Marge,Hauteurs,Couleur,CouleurFond,CouleurLettre,CouleurTexte,Bonne,Mauvaise,Choix,CoulBonne,CoulChoix,CoulMauvaise,Affichage,EspacementV,OffsetV,Decorations,AffChoix,Jokers,AffJokers,CodeAvant,Offset,Theme,Type,Effet,PositionJokers,Points},%
@@ -205,6 +205,10 @@
\section{Historique}
+\verb|v0.1.4|~:~~~~Ajout d'une commande pour forcer, de manière globale, des paramètres par défaut.
+
+\verb|v0.1.3|~:~~~~Annulation du chargement de \textsf{tikz.babel}.
+
\verb|v0.1.2|~:~~~~Migration de \textsf{\textbackslash tikzstyle} à \textsf{\textbackslash tikzset}.
\verb|v0.1.1|~:~~~~Amélioration de la gestion des hauteurs + modification de la clé \Cle{CodeAvant}.
@@ -255,7 +259,7 @@ Il n'existe pas d'option pour le package, et \packagetex!xcolor! n'est pas charg
\item \packagetex!tikz.calc!
\item \packagetex!tikz.positioning! ;
\item \packagetex!tikz.shapes.geometric! ;
- \item \packagetex!tikz.babel! ;
+ %\item \packagetex!tikz.babel! ;
\item \packagetex!tikz.fadings!.
\end{itemize}
\end{itemize}
@@ -629,4 +633,26 @@ Les cinq arguments obligatoires correspondent à la question et aux réponses, s
{$\mathtt{f'(x)=\dfrac{1}{x}}$}
\end{DemoCode}
+\pagebreak
+
+\section{Modification globale des valeurs par défaut}
+
+\subsection{À la manière de \og Qui veut gagner des Millions ? \fg}
+
+La commande \motcletex!\SetDefautMillions! permet de modifier, de manière globale l'un ou plusieurs des paramètres par défaut.
+
+\begin{DemoCode}[listing only]
+%permet d'enlever les Jokers pour tous les environnements \QuizzMillions
+\SetDefautMillions{Jokers=false}
+\end{DemoCode}
+
+\subsection{À la manière de \og Tout le monde veut prendre sa place \fg}
+
+La commande \motcletex!\SetDefautPrendrePlace! permet de modifier, de manière globale l'un ou plusieurs des paramètres par défaut.
+
+\begin{DemoCode}[listing only]
+%permet d'enlever les effets pour tous les environnements \QuizzPrendrePlace
+\SetDefautPrendrePlace{Effet=false}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/quizztex/tex/quizztex.sty b/macros/latex/contrib/quizztex/tex/quizztex.sty
index ee18c46d0d..fc199309ae 100644
--- a/macros/latex/contrib/quizztex/tex/quizztex.sty
+++ b/macros/latex/contrib/quizztex/tex/quizztex.sty
@@ -4,7 +4,9 @@
% : 'Tout le monde veut prendre sa place' is a Tradematk from Air Productions.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{quizztex}[2023/11/05 0.1.2 Construire des quizz 'comme dans les jeux' ]
+\ProvidesPackage{quizztex}[2024/09/10 0.1.4 Construire des quizz 'comme dans les jeux' ]
+%0.1.4 Macro pour modifier les paramètres par défaut des clés
+%0.1.3 Annulation du chargement de tikz.babel
%0.1.2 Passage \tikzstyle vers \tikzset (merci à Sam C.)
%0.1.1 Amélioration de la gestion des réponses dans WWTBAM + Position des Jokers (cc P. Bideault ;-))
%0.1.0 Version initiale
@@ -18,7 +20,8 @@
\RequirePackage{calc}
\RequirePackage{varwidth}
%------Librairies
-\usetikzlibrary{calc,positioning,shapes.geometric,babel,fadings}
+\usetikzlibrary{calc,positioning,shapes.geometric,fadings}
+%\usetikzlibrary{babel}
%------Longueurs globales
\newlength{\HauteurQuest}
@@ -120,6 +123,8 @@
PositionJokers=centre
}
+\newcommand\SetDefautMillions[1]{\setKVdefault[wwtbam]{#1}}
+
\NewDocumentCommand\LettreChoixMillions{ m }{%
\textcolor{\CouleurLettreWWTBAM}{\large\sffamily\bfseries{\vphantom{Q}#1}\,:}%
}
@@ -565,6 +570,8 @@
EchellePoints=1
}
+\newcommand\SetDefautPlace[1]{\setKVdefault[TLMVPSP]{#1}}
+
\NewDocumentCommand\QuizzPrendrePlace{ O{} m m m m m }{%clés + questions + 4 réponses
\useKVdefault[TLMVPSP]%
\setKV[TLMVPSP]{#1}%
diff --git a/macros/latex/contrib/randintlist/README.md b/macros/latex/contrib/randintlist/README.md
new file mode 100644
index 0000000000..4cd0c34356
--- /dev/null
+++ b/macros/latex/contrib/randintlist/README.md
@@ -0,0 +1,6 @@
+This package (like luarandom, but without the obligation to use lualatex) provides some macros for creating random integer number lists between a and b.
+This list can have multiple numbers or not, and this list can be sorted or not.
+--------------------------------------------------------------------------------------------------------------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \ No newline at end of file
diff --git a/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf b/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf
new file mode 100644
index 0000000000..e3113d9bd3
--- /dev/null
+++ b/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/randintlist/doc/randintlist-doc.tex b/macros/latex/contrib/randintlist/doc/randintlist-doc.tex
new file mode 100644
index 0000000000..9042b601d8
--- /dev/null
+++ b/macros/latex/contrib/randintlist/doc/randintlist-doc.tex
@@ -0,0 +1,353 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{bera}
+\usepackage{inconsolata}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{randintlist}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [randintlist]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.2}
+\def\TPdate{24/10/2024}
+\usepackage{tcolorbox}
+\usepackage{pgffor}
+\tcbuselibrary{breakable,skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\randintlist,\getitemfromrandintlist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={min,max,nb,seed,sort,sep,repeat,exclude},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={\usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx,\readlist,\showitems,\xintFor,\xintSeq},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\randintlist,\getitemfromrandintlist,\ListeRandint,\ExtraireEltListeRandint},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={min,max,nb,seed,sort,sep,repeat,Min,Max,Nb,Graine,Sep,Tri,Repet,exclude,Exclure},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+
+\newtcbinputlisting\DemoCodeFile[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=lightgray!10!white,%
+ colbacklower=lightgray!5!white,%
+ colframe=lightgray!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,
+ basicstyle=\scriptsize\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},%
+ lastline=148
+ },%
+ breakable,
+ listing only,%
+ listing file={#1}
+}
+
+\NewDocumentCommand\ShowCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{c}
+ {\Huge \texttt{randintlist}}\\
+ \\
+ {\LARGE Creating random integer number lists,} \\
+ {\LARGE with multiple numbers or not,} \\
+ {\LARGE sorted or not.} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/randintlist}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+10 numbers, between 1 and 100, without repetition:
+
+\hfill\randintlist[min=1,max=100,nb=10]{\mylist}\textcolor{red}{\mylist}\hfill~
+
+The 5th value is:
+
+\hfill\textcolor{blue}{\getitemfromrandintlist{\mylist}{5}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+10 numbers, between 1 and 100, without multiples of 5:
+
+\hfill\randintlist[min=1,max=100,nb=10,exclude={5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100}]{\mylist}\textcolor{olive}{\mylist}\hfill~
+
+The 9th value is:
+
+\hfill\textcolor{purple}{\getitemfromrandintlist{\mylist}{9}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+15 numbers, between 1 and 20, with repetition:
+
+\hfill\randintlist[min=1,max=20,nb=15,repeat]{\mylist}\textcolor{red}{\mylist}\hfill~
+
+The last value is:
+
+\hfill\textcolor{blue}{\getitemfromrandintlist{\mylist}{-1}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+6 sorted numbers, between 1 and 51, without repetition:
+
+\hfill\randintlist[min=1,max=51,nb=6,sort=asc]{\mylist}ascending : \textcolor{red}{\mylist}\hfill~
+
+\hfill\randintlist[min=1,max=51,nb=6,sort=des,sep=>]{\mylist}descending : \textcolor{red}{\mylist}\hfill~
+\end{tcolorbox}
+
+\vfill~
+
+\hrule
+
+\medskip
+
+\emph{%
+ The \textsf{luarandom} package do the same things, but with the obligation to compile with \hologo{LuaLaTeX}.
+}
+
+\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Loading, useful packages}
+
+In order to load \texttt{randintlist}, simply use:
+
+\begin{DemoCode}{listing only}
+\usepackage{randintlist}
+\end{DemoCode}
+
+Loaded packages are \texttt{ifthen}, \texttt{simplekv}, \texttt{listofitems}, \texttt{randomlist}, \texttt{xintexpr} and \texttt{xstring}.
+
+\section{The Macros}
+
+\subsection{Global usage}
+
+Package \texttt{randintlist} supports the creation of random integer number lists where a number will appear only once or multiple times. Generated lists can te used with \texttt{listofitems}.
+
+\hfill\textbf{All engines \TeX\ are compatible with this package.}\hfill~
+
+\subsection{Generate the list}
+
+\begin{DemoCode}{listing only}
+%generate list
+\randintlist[keys]{\macro}
+\end{DemoCode}
+
+Available keys are:
+
+\begin{itemize}
+ \item \ShowCode{min}: minimum value (default \ShowCode{1});
+ \item \ShowCode{max}: maximum value (default \ShowCode{50});
+ \item \ShowCode{nb}: number of values (default \ShowCode{6});
+ \item \ShowCode{sep}: separator for the list (default \ShowCode{,});
+ \item \ShowCode{sort}: sorting options, within \ShowCode{no/asc/dec} (default \ShowCode{no});
+ \item \ShowCode{repeat}: boolean to authorize repeating values (default \ShowCode{false});
+ \item \ShowCode{exclude}: list of excluded values (default \ShowCode{empty});
+ \item \ShowCode{seed}: random seed value according to used packages (default \ShowCode{-}).
+\end{itemize}
+
+\begin{DemoCode}{}
+%default values
+\randintlist{\mylistA}\mylistA
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%10 between 1 and 50, with ascending
+\randintlist[sort=asc,min=1,max=50,nb=10]{\mylistB}\mylistB
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%15 between 1 and 50, with ascending and repetitions allowed
+\randintlist[sort=asc,min=1,max=50,nb=15,repeat]{\mylistC}\mylistC
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%15 between 1 and 50, without multiples of 5
+\randintlist[%
+ sort=asc,min=1,max=50,nb=15,repeat,%
+ exclude={5,10,15,20,25,30,35,40,45,50}]%
+ {\mylistC}\mylistC
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%list used with listofitems
+\randintlist{\mylistD}\mylistD\par
+\readlist*\mylistused{\mylistD}\showitems{\mylistused}\par
+\mylistused[1]; \mylistused[-1]
+\end{DemoCode}
+
+\subsection{Accessing elements}
+
+\begin{DemoCode}{listing only}
+%accessing item
+\getitemfromrandintlist[separator]{\macro}{index}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%with default keys
+\randintlist{\mylistE}raw list: \mylistE\par
+items list:\par
+\xintFor* #1 in {\xintSeq{1}{6}}\do{\getitemfromrandintlist{\mylistE}{#1}\par}
+first element: \getitemfromrandintlist{\mylistE}{1}
+\end{DemoCode}
+
+\subsection{Version française}
+
+Voilà les commandes en version française, la syntaxe et les clés ne seront pas explicitées.
+
+\begin{DemoCode}{listing only}
+%obtenir la liste
+\ListeRandint[Min=..,Max=..,Nb=..,Repet=..,Graine=..,Tri=..,Sep=..,Exclure=..]{\macro}
+
+%extraire un élément
+\ExtraireEltListeRandint[sep]{\macro}{position}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%liste
+\ListeRandint[Min=5,Max=15,Nb=7,Repet,Tri=croiss,Sep={/}]{\maliste}\maliste\\
+%élément
+\ExtraireEltListeRandint[/]{\maliste}{4}
+\end{DemoCode}
+
+\pagebreak
+
+\section{Example}
+
+The following example uses \TikZ, and comes from \texttt{luarandom}'s documentation.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}[scale=0.75]
+ \randintlist[min=1,max=100,nb=100]{\mylistsquare}
+ \draw[thin,gray] (0,0) grid (10,10) ;
+ \foreach \i in {1,...,100}{%
+ \xdef\tmpnumber{\getitemfromrandintlist{\mylistsquare}{\i}}%
+ \xdef\tmpnumberrow{\xinteval{\xintiiRem{\i-1}{10}}}%
+ \xdef\tmpnumbercol{\xinteval{\xintiiQuo{\i-1}{10}}}%
+ \draw ({0.5+\tmpnumbercol},{0.5+\tmpnumberrow}) node {\tmpnumber} ;
+ }%
+\end{tikzpicture}
+\end{DemoCode}
+
+\pagebreak
+
+\section{History}
+
+\texttt{0.1.2: Changing name of internal macro}
+
+\texttt{0.1.1: Possibility to exclude values}
+
+\texttt{0.1.0: Initial version}
+
+\section{The code}
+
+\DemoCodeFile{randintlist.sty}
+
+\end{document}
diff --git a/macros/latex/contrib/randintlist/tex/randintlist.sty b/macros/latex/contrib/randintlist/tex/randintlist.sty
new file mode 100644
index 0000000000..28fdb560e1
--- /dev/null
+++ b/macros/latex/contrib/randintlist/tex/randintlist.sty
@@ -0,0 +1,247 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{randintlist}[2024/10/24 0.1.2 Create a list of random numbers with or without multiple values]
+
+%------History
+% 0.1.2 Changing name of macro
+% 0.1.1 Possibility to exclude values
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{simplekv}
+\RequirePackage{listofitems}
+\RequirePackage{randomlist}
+\RequirePackage{xintexpr}
+\RequirePackage{xstring}
+\RequirePackage{ifthen}
+
+%-----Macros (latex3) for sorting and seed
+\ExplSyntaxOn
+\cs_new_eq:NN \randintseed \sys_gset_rand_seed:n
+\NewDocumentCommand\intascsortlist{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} > {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\NewDocumentCommand\intdessortlist{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} < {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\ExplSyntaxOff
+
+%----Internal macro (latex2) for testing if element is in list
+\newcommand\ifintvalueinlist[2]{\IfSubStr{,#2,}{,#1,}}
+
+\newcommand\boolvalueinlist[2]{\IfSubStr{,#2,}{,#1,}{\def\resisinlist{1}}{\def\resisinlist{0}}}
+
+\newcommand\testifintvalueinlist[4]{%
+ \IfSubStr{,#2,}{,#1,}{\xdef\RESTMPVALUE{1}}{\xdef\RESTMPVALUE{0}}%
+ \xintifboolexpr{ \RESTMPVALUE == 1}{#3}{#4}%
+}
+
+%----Macro for generating
+\defKV[randomlistintegers]{%
+ min=\def\TAEEmin{#1},%
+ max=\def\TAEEmax{#1},%
+ nb=\def\TAEEnb{#1},%
+ sep=\def\TAEEsep{#1},%
+ sort=\def\TAEEtri{#1},%
+ seed=\def\TAEEseed{#1},%
+ exclude=\def\TAEEexcluded{#1}
+}
+
+\setKVdefault[randomlistintegers]{%
+ min=1,%
+ max=50,%
+ nb=6,%
+ sep={,},%
+ sort=no,%
+ repeat=false,%
+ seed={-},%
+ exclude={}
+}
+
+\NewList{tmprandintlist}
+
+\NewDocumentCommand\randintlist{ O{} m }{%1=keys,2=listname
+ \useKVdefault[randomlistintegers]%
+ \setKV[randomlistintegers]{#1}%
+ \ifboolKV[randomlistintegers]{repeat}%repeat or not
+ {%repeat allowed
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \randintseed{\TAEEseed}%
+ }%
+ %list creation of first element
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{\tmpresrandint}%
+ %list creation of other elements
+ \xintFor* ##1 in {\xintSeq{2}{\TAEEnb}}%
+ \do{%
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{#2,\tmpresrandint}%
+ }%
+ }%
+ {%no repeating
+ %randomize numbers
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \RLsetrandomseed{\TAEEseed}%
+ }%
+ \ClearList{tmprandintlist}%clearing the list
+ \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
+ \do{%
+ \ifintvalueinlist{##1}{\TAEEexcluded}%
+ {}%
+ {%
+ \InsertRandomItem{tmprandintlist}{##1}%
+ }%
+ }%
+ %list creation (first then other)
+ \xdef#2{\tmprandintlist[0]}%
+ \xintFor* ##1 in {\xintSeq{1}{\TAEEnb-1}}%
+ \do{%
+ \xdef#2{#2,\tmprandintlist[##1]}%
+ }%
+ }%
+ %sorting
+ \IfStrEq{\TAEEtri}{asc}%if ascending
+ {\intascsortlist{#2}}%
+ {}%
+ \IfStrEq{\TAEEtri}{des}%if descending
+ {\intdessortlist{#2}}%
+ {}%
+ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%swipping separator if necessary
+}
+
+%-----Macro for extracting
+\NewDocumentCommand\getitemfromrandintlist{ O{,} m m }{%
+ \IfEq{#1}{/}%
+ {%
+ \setsepchar[.]{#1}%
+ }%
+ {%
+ \setsepchar{#1}%
+ }%
+ \readlist*\TMPLISTRANDINT{#2}%
+ \TMPLISTRANDINT[#3]%
+}
+
+%-----french version
+\defKV[randomlisteentiers]{%
+ Min=\def\TAEEmin{#1},%
+ Max=\def\TAEEmax{#1},%
+ Nb=\def\TAEEnb{#1},%
+ Sep=\def\TAEEsep{#1},%
+ Tri=\def\TAEEtri{#1},%
+ Graine=\def\TAEEseed{#1},%
+ Exclure=\def\TAEEexcluded{#1}
+}
+
+\setKVdefault[randomlisteentiers]{%
+ Min=1,%
+ Max=50,%
+ Nb=6,%
+ Sep={,},%
+ Tri=non,%
+ Repet=false,%
+ Graine={-},%
+ Exclure={}
+}
+
+\NewDocumentCommand\ListeRandint{ O{} m }{%1=keys,2=listname
+ \useKVdefault[randomlisteentiers]%
+ \setKV[randomlisteentiers]{#1}%
+ \ifboolKV[randomlisteentiers]{Repet}%repeat or not
+ {%repeat allowed
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \randintseed{\TAEEseed}%
+ }%
+ %list creation of first element
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{\tmpresrandint}%
+ %list creation of other elements
+ \xintFor* ##1 in {\xintSeq{2}{\TAEEnb}}%
+ \do{%
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{#2,\tmpresrandint}%
+ }%
+ }%
+ {%no repeating
+ %randomize numbers
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \RLsetrandomseed{\TAEEseed}%
+ }%
+ \ClearList{tmprandintlist}%clearing the list
+ \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
+ \do{%
+ \ifintvalueinlist{##1}{\TAEEexcluded}%
+ {}%
+ {%
+ \InsertRandomItem{tmprandintlist}{##1}%
+ }%
+ }%
+ %list creation (first then other)
+ \xdef#2{\tmprandintlist[0]}%
+ \xintFor* ##1 in {\xintSeq{1}{\TAEEnb-1}}%
+ \do{%
+ \xdef#2{#2,\tmprandintlist[##1]}%
+ }%
+ }%
+ %sorting
+ \IfStrEq{\TAEEtri}{croiss}%if ascending
+ {\intascsortlist{#2}}%
+ {}%
+ \IfStrEq{\TAEEtri}{decroiss}%if descending
+ {\intdessortlist{#2}}%
+ {}%
+ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%swipping separator if necessary
+}
+
+%-----Macro for extracting
+\NewDocumentCommand\ExtraireEltListeRandint{ O{,} m m }{%
+ \IfEq{#1}{/}%
+ {%
+ \setsepchar[.]{#1}%
+ }%
+ {%
+ \setsepchar{#1}%
+ }%
+ \readlist*\TMPLISTRANDINT{#2}%
+ \TMPLISTRANDINT[#3]%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/regulatory/README.md b/macros/latex/contrib/regulatory/README.md
index ec9a283dc9..55a5e0f4bf 100644
--- a/macros/latex/contrib/regulatory/README.md
+++ b/macros/latex/contrib/regulatory/README.md
@@ -1,4 +1,5 @@
# Regulatory
+![CTAN Version](https://img.shields.io/ctan/v/regulatory)
A LaTeX package which provides macro's for crafting regulatory documents.
diff --git a/macros/latex/contrib/regulatory/doc/example1-en.pdf b/macros/latex/contrib/regulatory/doc/example1-en.pdf
index 7bac5e0c9b..2c679dbcb1 100644
--- a/macros/latex/contrib/regulatory/doc/example1-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/example1-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example1-en.tex b/macros/latex/contrib/regulatory/doc/example1-en.tex
index eeb17acc99..ae903d7ef0 100644
--- a/macros/latex/contrib/regulatory/doc/example1-en.tex
+++ b/macros/latex/contrib/regulatory/doc/example1-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,english]{article}
\usepackage{babel}
\usepackage[alldefs]{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example1-nl.pdf b/macros/latex/contrib/regulatory/doc/example1-nl.pdf
index bc3f8b1d53..5bcb030bd8 100644
--- a/macros/latex/contrib/regulatory/doc/example1-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/example1-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example1-nl.tex b/macros/latex/contrib/regulatory/doc/example1-nl.tex
index df01669786..513c9bce6e 100644
--- a/macros/latex/contrib/regulatory/doc/example1-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/example1-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,dutch]{article}
\usepackage{babel}
\usepackage[alldefs]{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example2-en.pdf b/macros/latex/contrib/regulatory/doc/example2-en.pdf
index e7fdc77178..3362320b7f 100644
--- a/macros/latex/contrib/regulatory/doc/example2-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/example2-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example2-en.tex b/macros/latex/contrib/regulatory/doc/example2-en.tex
index f47f7d0d9e..c800c7672f 100644
--- a/macros/latex/contrib/regulatory/doc/example2-en.tex
+++ b/macros/latex/contrib/regulatory/doc/example2-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,english]{article}
\usepackage{babel}
\usepackage{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example2-nl.pdf b/macros/latex/contrib/regulatory/doc/example2-nl.pdf
index 6342318259..e2606186ca 100644
--- a/macros/latex/contrib/regulatory/doc/example2-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/example2-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example2-nl.tex b/macros/latex/contrib/regulatory/doc/example2-nl.tex
index 071cce4a00..6713495658 100644
--- a/macros/latex/contrib/regulatory/doc/example2-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/example2-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,dutch]{article}
\usepackage{babel}
\usepackage{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-en.pdf b/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
index ac592a4989..c65752a189 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-en.tex b/macros/latex/contrib/regulatory/doc/regulatory-en.tex
index 55d4290753..e497d27fd8 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-en.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[10pt,english]{ltxdoc}
%! suppress = InclusionLoop
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf b/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
index 9d4832ce44..d8ff64100b 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-nl.tex b/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
index f5c9f47259..c8048c9025 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[10pt,dutch]{ltxdoc}
%! suppress = InclusionLoop
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex b/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
index 50c6db1bee..0325d5aacf 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\usepackage{gitinfo-lua}
\usepackage{listings}
diff --git a/macros/latex/contrib/regulatory/doc/regulatory.tex b/macros/latex/contrib/regulatory/doc/regulatory.tex
index fbd5d35c3d..55bcbe8c6a 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\translation{%
\title{Package \package{regulatory}\thanks{This document corresponds to \textsf{regulatory}~\packageversion, written on \packagedate.}}
}{%
@@ -176,16 +176,14 @@ lualatex main
}{, voor onderdelen.}
\translation{%
For ``subparagraphs'', \cmd{\abalpnum} from the \package{fmtcount}\footnote{%
- The Dutch language definition is currently in progress within the \href{https://github.com/vincentb1/fmtcount/pull/51}{\package{fmtcount}} package.
- In the meantime, this package includes the correct configuration for it.%
- } package is used to enumerate multiple subparagraphs.
+ The Dutch language definition is now included into package \href{https://github.com/Xerdi/fmtcount}{\package{fmtcount}} itself.
+ Be sure to update the package if \texttt{fc-dutch.def} is missing} package is used to enumerate multiple subparagraphs.
Suppose \cmd{\alph} were used; in that case, \option{paras} (second level) would be limited to 26 subparagraphs.
With \cmd{\abalphnum}, for example, with a value of 125, the result is `\texttt{du}'.
}{%
Voor onderdelen wordt er gebruik gemaakt van \cmd{\abalpnum} uit pakket \package{fmtcount}\footnote{%
- De Nederlandse taal definitie is momenteel nog in behandeling bij pakket \href{https://github.com/vincentb1/fmtcount/pull/51}{\package{fmtcount}}.
- In de tussentijd levert dit pakket daarvoor de juist configuratie mee.%
- } om meerdere onderdelen te kunnen opsommen.
+ De Nederlandse taal definitie is nu inbegrepen in pakket \href{https://github.com/Xerdi/fmtcount}{\package{fmtcount}} zelf.
+ Zorg ervoor dat het pakket up to date is als \texttt{fc-dutch.def} mist.} om meerdere onderdelen te kunnen opsommen.
Stel er zou gebruik gemaakt worden van \cmd{\alph}, dan is \option{paras} beperkt tot 26 onderdelen.
Bij \cmd{\abalphnum} met b\ij{}voorbeeld een waarde van 125 is `\texttt{du}' de uitkomst.
}
diff --git a/macros/latex/contrib/regulatory/tex/fc-dutch.def b/macros/latex/contrib/regulatory/tex/fc-dutch.def
deleted file mode 100644
index ee86d49a48..0000000000
--- a/macros/latex/contrib/regulatory/tex/fc-dutch.def
+++ /dev/null
@@ -1,327 +0,0 @@
-%% fc-dutch.def
-%% Copyright 2024 E. Nijenhuis
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status ‘maintained’.
-%
-% The Current Maintainer of this work is E. Nijenhuis.
-%
-% This work consists of the files regulatory.tex,
-% regulatory-preamble.tex, regulatory-nl.tex, regulatory-en.tex,
-% example1.bib, example2.bib,
-% example1-nl.tex, example2-nl.tex,
-% example1-en.tex, example2-en.tex,
-% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
-\ProvidesFCLanguage{dutch}[2024/01/27]%
-\newcommand{\@ordinalMdutch}[2]{\edef#2{\number#1\relax.}}%
-\global\let\@ordinalMdutch\@ordinalMdutch
-\global\let\@ordinalFdutch\@ordinalMdutch
-\global\let\@ordinalNdutch\@ordinalMdutch
-\newcommand*\@@unitstringdutch[1]{%
- \ifcase#1%
- nul%
- \or een%
- \or twee%
- \or drie%
- \or vier%
- \or vijf%
- \or zes%
- \or zeven%
- \or acht%
- \or negen%
- \fi
-}%
-\global\let\@@unitstringdutch\@@unitstringdutch
-\global\let\@@unitstringdutch\@@unitstringdutch
-\newcommand*\@@tenstringdutch[1]{%
- \ifcase#1%
- \or tien%
- \or twintig%
- \or dertig%
- \or veertig%
- \or vijftig%
- \or zestig%
- \or zeventig%
- \or tachtig%
- \or negentig%
- \or honderd%
- \fi
-}%
-\global\let\@@tenstringdutch\@@tenstringdutch
-\newcommand*\@@teenstringdutch[1]{%
- \ifcase#1%
- tien%
- \or elf%
- \or twaalf%
- \or dertien%
- \or veertien%
- \or vijftien%
- \or zestien%
- \or zeventien%
- \or achttien%
- \or negentien%
- \fi
-}%
-\global\let\@@teenstringdutch\@@teenstringdutch
-\providecommand*{\honderd}{honderd}%
-\providecommand*{\duizend}{duizend}%
-\global\let\honderd\honderd
-\global\let\duizend\duizend
-\newcommand*\@@numberstringdutch[2]{%
- \ifnum#1>99999\relax
- \PackageError{fmtcount}{Out of range}%
- {This macro only works for values less than 100000}%
- \else
- \ifnum#1<0\relax
- \PackageError{fmtcount}{Negative numbers not permitted}%
- {This macro does not work for negative numbers, however
- you can try typing "minus" first, and then pass the modulus of
- this number}%
- \fi
- \fi
- \def#2{}%
- \@strctr=#1\relax \divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \appto#2{duizend}%
- \else
- \ifnum\@strctr=1\relax
- \eappto#2{\duizend}%
- \fi
- \fi
- \@strctr=#1\relax
- \@FCmodulo{\@strctr}{1000}%
- \divide\@strctr by 100\relax
- \ifnum\@strctr>1\relax
- \eappto#2{\@unitstring{\@strctr}honderd}%
- \else
- \ifnum\@strctr=1\relax
- \ifnum#1>1000\relax
- \appto#2{honderd}%
- \else
- \eappto#2{\honderd}%
- \fi
- \fi
- \fi
- \@strctr=#1\relax
- \@FCmodulo{\@strctr}{100}%
- \ifnum#1=0\relax
- \def#2{null}%
- \else
- \ifnum\@strctr=1\relax
- \appto#2{een}%
- \else
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \fi
- \fi
-}%
-\global\let\@@numberstringdutch\@@numberstringdutch
-\newcommand*{\@numberstringMdutch}[2]{%
- \let\@unitstring=\@@unitstringdutch%
- \let\@teenstring=\@@teenstringdutch%
- \let\@tenstring=\@@tenstringdutch%
- \def\@hundred{honderd}\def\@thousand{duizend}%
- \def\@andname{en}%
- \@@numberstringdutch{#1}{#2}%
-}%
-\global\let\@numberstringMdutch\@numberstringMdutch
-\global\let\@numberstringFdutch=\@numberstringMdutch
-\global\let\@numberstringNdutch=\@numberstringMdutch
-\newcommand*{\@NumberstringMdutch}[2]{%
- \@numberstringMdutch{#1}{\@@num@str}%
- \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
-}%
-\global\let\@NumberstringMdutch\@NumberstringMdutch
-\global\let\@NumberstringFdutch=\@NumberstringMdutch
-\global\let\@NumberstringNdutch=\@NumberstringMdutch
-\newcommand*\@@unitthstringdutch[1]{%
- \ifcase#1%
- nulde%
- \or eerste%
- \or tweede%
- \or derde%
- \or vierde%
- \or vijfde%
- \or zesde%
- \or zevende%
- \or achtste%
- \or negende%
- \fi
-}%
-\global\let\@@unitthstringdutch\@@unitthstringdutch
-\newcommand*\@@tenthstringdutch[1]{%
- \ifcase#1%
- \or tiende%
- \or twintigste%
- \or dertigste%
- \or veertigste%
- \or vijftigste%
- \or zestigste%
- \or zeventigste%
- \or tachtigste%
- \or negentigste%
- \fi
-}%
-\global\let\@@tenthstringdutch\@@tenthstringdutch
-\newcommand*\@@teenthstringdutch[1]{%
- \ifcase#1%
- tiende%
- \or elfde%
- \or twaalfde%
- \or dertiende%
- \or veertiende%
- \or vijftiende%
- \or zestiende%
- \or zeventiende%
- \or achttiende%
- \or negentiende%
- \fi
-}%
-\global\let\@@teenthstringdutch\@@teenthstringdutch
-\newcommand*\@@ordinalstringdutch[2]{%
- \@orgargctr=#1\relax
- \ifnum\@orgargctr>99999\relax
- \PackageError{fmtcount}{Out of range}%
- {This macro only works for values less than 100000}%
- \else
- \ifnum\@orgargctr<0\relax
- \PackageError{fmtcount}{Negative numbers not permitted}%
- {This macro does not work for negative numbers, however
- you can try typing "minus" first, and then pass the modulus of
- this number}%
- \fi
- \fi
- \def#2{}%
- \@strctr=\@orgargctr\divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \@tmpstrctr=\@orgargctr\@FCmodulo{\@tmpstrctr}{1000}%
- \ifnum\@tmpstrctr=0\relax
- \eappto#2{\@thousandth}%
- \else
- \appto#2{duizend}%
- \fi
- \else
- \ifnum\@strctr=1\relax
- \ifnum\@orgargctr=1000\relax
- \eappto#2{\@thousandth}%
- \else
- \eappto#2{\duizend}%
- \fi
- \fi
- \fi
- \@strctr=\@orgargctr%
- \@FCmodulo{\@strctr}{1000}%
- \divide\@strctr by 100\relax
- \ifnum\@strctr>1\relax
- \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
- \ifnum\@tmpstrctr=0\relax
- \ifnum\@strctr=1\relax
- \eappto#2{\@hundredth}%
- \else
- \eappto#2{\@unitstring{\@strctr}\@hundredth}%
- \fi
- \else
- \eappto#2{\@unitstring{\@strctr}honderd}%
- \fi
- \else
- \ifnum\@strctr=1\relax
- \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
- \ifnum\@tmpstrctr=0\relax
- \eappto#2{\@hundredth}%
- \else
- \ifnum\@orgargctr>1000\relax
- \appto#2{honderd}%
- \else
- \eappto#2{\honderd}%
- \fi
- \fi
- \fi
- \fi
- \@strctr=\@orgargctr%
- \@FCmodulo{\@strctr}{100}%
- \ifthenelse{\@strctr=0 \and \@orgargctr>0 }{}{%
- \@@numberunderhundredthdutch{\@strctr}{#2}%
- }%
-}%
-\global\let\@@ordinalstringdutch\@@ordinalstringdutch
-\newcommand*{\@ordinalstringMdutch}[2]{%
- \let\@unitthstring=\@@unitthstringdutch%
- \let\@teenthstring=\@@teenthstringdutch%
- \let\@tenthstring=\@@tenthstringdutch%
- \let\@unitstring=\@@unitstringdutch%
- \let\@teenstring=\@@teenstringdutch%
- \let\@tenstring=\@@tenstringdutch%
- \def\@thousandth{duizendste}%
- \def\@hundredth{honderdste}%
- \@@ordinalstringdutch{#1}{#2}%
-}%
-\global\let\@ordinalstringMdutch\@ordinalstringMdutch
-\global\let\@ordinalstringFdutch=\@ordinalstringMdutch
-\global\let\@ordinalstringNdutch=\@ordinalstringMdutch
-\newcommand*{\@OrdinalstringMdutch}[2]{%
- \@ordinalstringMdutch{#1}{\@@num@str}%
- \def\@andname{en}%
- \def\@hundred{Honderd}\def\@thousand{Duizend}%
- \def\@hundredth{Honderdste}\def\@thousandth{Duizendste}%
- \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
-}%
-\global\let\@OrdinalstringMdutch\@OrdinalstringMdutch
-\global\let\@OrdinalstringFdutch=\@OrdinalstringMdutch
-\global\let\@OrdinalstringNdutch=\@OrdinalstringMdutch
-\newcommand*{\@@numberunderhundreddutch}[2]{%
- \ifnum#1<10\relax
- \ifnum#1>0\relax
- \eappto#2{\@unitstring{#1}}%
- \fi
- \else
- \@tmpstrctr=#1\relax
- \@FCmodulo{\@tmpstrctr}{10}%
- \ifnum#1<20\relax
- \eappto#2{\@teenstring{\@tmpstrctr}}%
- \else
- \ifnum\@tmpstrctr=0\relax
- \else
- \eappto#2{\@unitstring{\@tmpstrctr}en}%
- \fi
- \@tmpstrctr=#1\relax
- \divide\@tmpstrctr by 10\relax
- \eappto#2{\@tenstring{\@tmpstrctr}}%
- \fi
- \fi
-}%
-\global\let\@@numberunderhundreddutch\@@numberunderhundreddutch
-\newcommand*{\@@numberunderhundredthdutch}[2]{%
- \ifnum#1<10\relax
- \eappto#2{\@unitthstring{#1}}%
- \else
- \@tmpstrctr=#1\relax
- \@FCmodulo{\@tmpstrctr}{10}%
- \ifnum#1<20\relax
- \eappto#2{\@teenthstring{\@tmpstrctr}}%
- \else
- \ifnum\@tmpstrctr=0\relax
- \else
- \eappto#2{\@unitstring{\@tmpstrctr}-en-}%
- \fi
- \@tmpstrctr=#1\relax
- \divide\@tmpstrctr by 10\relax
- \eappto#2{\@tenthstring{\@tmpstrctr}}%
- \fi
- \fi
-}%
-\global\let\@@numberunderhundredthdutch\@@numberunderhundredthdutch
-\iffalse Local variables: \fi
-\iffalse mode: docTeX \fi
-\iffalse End: \fi
-\endinput
-%%
-%% End of file `fc-dutch.def'.
diff --git a/macros/latex/contrib/regulatory/tex/regulatory.sty b/macros/latex/contrib/regulatory/tex/regulatory.sty
index 2e89a19a37..2755a8ac9b 100644
--- a/macros/latex/contrib/regulatory/tex/regulatory.sty
+++ b/macros/latex/contrib/regulatory/tex/regulatory.sty
@@ -19,9 +19,9 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{regulatory}[2024/01/27 0.0.3 Xerdi's Regulatory Package]
+\ProvidesPackage{regulatory}[2024/09/04 0.0.4 Xerdi's Regulatory Package]
\RequirePackage{pgfopts}
\RequirePackage{xifthen}
diff --git a/macros/latex/contrib/reptheorem/reptheorem.pdf b/macros/latex/contrib/reptheorem/reptheorem-doc.pdf
index cb574aa07c..9e6568af57 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.pdf
+++ b/macros/latex/contrib/reptheorem/reptheorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/reptheorem/reptheorem.dtx b/macros/latex/contrib/reptheorem/reptheorem.dtx
index b0f537af97..47a9492322 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.dtx
+++ b/macros/latex/contrib/reptheorem/reptheorem.dtx
@@ -3,7 +3,7 @@
% Copyright (c) 2024- Jesse Straat
%
% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% https://www.latex-project.org/lppl.txt
@@ -89,7 +89,7 @@ License: [LPPL1.3c](https://www.latex-project.org/lppl.txt)
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: reptheorem 2024-08-12 v1.1}
+\Msg{* Package: reptheorem 2024-10-07 v1.3}
\Msg{************************************************************************}
\keepsilent
@@ -100,7 +100,7 @@ License: [LPPL1.3c](https://www.latex-project.org/lppl.txt)
Copyright (c) 2024- Jesse Straat
This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
+conditions of the LaTeX Project Public License, either version 1.3c
of this license or (at your option) any later version.
The latest version of this license is in
https://www.latex-project.org/lppl.txt
@@ -199,7 +199,7 @@ colorlinks,
% \date{\filedate}
%
% \maketitle
-%
+%^^A
% \begin{abstract}
% \noindent When writing a large manuscript, it is sometimes
% beneficial to repeat a theorem (or lemma or \dots) at
@@ -211,21 +211,21 @@ colorlinks,
% of the |.aux| file, and also introduces its own file
% extension, |.thm|, to replicate theorems in other files.
% \end{abstract}
-%
+%^^A
% \tableofcontents
-%
-%\changes{v1.0}{2024-03-27}{First public release}
-%
-%
-%
+%^^A
+%\changes{v1.0}{2024/03/27}{First public release}
+%^^A
+%^^A
+%^^A
%\StopEventually{^^A
% \PrintChanges
% \PrintIndex
%}
-%
-%
-%
-%
+%^^A
+%^^A
+%^^A
+%^^A
% \section{Repeating theorems}
% Let's say we define a theorem as follows:
% \begin{verbatim}
@@ -257,24 +257,21 @@ colorlinks,
% difference is that we have saved the theorem for later use.\par
% The |makethm| environment takes two mandatory arguments
% and one optional one. The first mandatory argument is the
-% type of theorem environment, like |theorem|, |lemma|,
+% type of theorem environment as defined in \textsf{amsthm}, like |theorem|, |lemma|,
% |definition|, etc. The second is the theorem's label.
-% The label is mandatory because to replicate the theorem,
+% The label is mandatory since, to replicate the theorem,
% we need to have a ``name'' attached to it. |makethm|
% automatically attaches a |\label|, as well, so |\ref{thm:Yoneda}|
% becomes \ref{thm:Yoneda}. The optional argument is passed
% right to the optional argument of the theorem environment,
-% giving the name of a theorem\par
-%
+% giving the theorem a name.\par
+%^^A
% Now let's say we want to replicate the theorem later
% or earlier in the text. This may be done if, for example,
% the theorem is proven at a later point, or we want to
% ``tease'' the reader with a powerful theorem that will be
% proven later in the chapter. To do this, we use the
-% \DescribeMacro{\repthm} command, as follows.
-% \begin{verbatim}
-% \repthm{thm:Yoneda}
-% \end{verbatim}
+% \DescribeMacro{\repthm} |\repthm| command: |\repthm{thm:Yoneda}|.
% This outputs the theorem again.
% \repthm{thm:Yoneda}
% The label of this theorem is a |\ref|, and automatically
@@ -285,27 +282,30 @@ colorlinks,
% only displays if the theorem is undefined. For example,
% |\repthm{thm:foo}[bar]| returns
% \repthm{thm:foo}[bar]
-% If we do the same without providing an alt text, we get
+% \noindent If we do the same without providing an alt text, we get
% \repthm{thm:foo}
-% together with a warning.\par
+% \noindent together with a warning: ``Package \textsf{reptheorem}: Theorem |thm:foo|
+% not defined; rebuild your project. If the issue persists, create the theorem
+% using |\begin{makethm}| or consider adding alt text to |\repthm| using the optional
+% parameter.''\par
% Since we're using the |.aux| file, it is possible
% to replicate a theorem before it is stated. For example,
% \begin{verbatim}
% \repthm{thm:later}
-% \begin{makethm}{theorem}{thm:later}[Later]
+% \begin{makethm}{theorem}{thm:later}
% Alligator!
% \end{makethm}
% \end{verbatim}
% returns
% \repthm{thm:later}
-% \begin{makethm}{theorem}{thm:later}[Later]
+% \begin{makethm}{theorem}{thm:later}
% Alligator
% \end{makethm}
% Note that it is necessary to run a |.tex| file twice
% to replicate theorems ahead of time, similarly to
% how one has to run a file twice to make sure the
% references are correct.\par
-%
+%^^A
% \section{Replicating theorems between files}
% Let's say we have the following files for our project:
% \begin{verbatim}
@@ -328,7 +328,7 @@ colorlinks,
% In our example, if we also defined a |thm:baz| in |foo.tex|,
% loading |bar.thm| into |foo.tex| will not overwrite the local
% |thm:baz|.
-%
+%^^A
% \subsection{Replicating theorems to subfiles}
% Replicating theorems to different files is particularly
% useful when working in big documents with multiple subfiles.
@@ -346,15 +346,14 @@ colorlinks,
% |foo.tex| and |bar.tex|. This will allow us to
% use all theorems in the final |main.tex| in each of
% the subfiles.
-%
-%
-%
+%^^A
+%^^A
+%^^A
% \section{Source code}
% \begin{macrocode}
%<*package>
-\ProvidesPackage{reptheorem}[2024-08-12 v1.1 Reptheorem package]
+\ProvidesPackage{reptheorem}[2024-10-07 v1.3 Reptheorem package]
% \end{macrocode}
-%
% \begin{macro}{\theoremfile}
% Using |\theoremfile| will output all saved theorems into an output file.
% By default, if your \LaTeX file is |foo.tex|, the output file is |foo.thm|.
@@ -369,7 +368,6 @@ colorlinks,
}
% \end{macrocode}
% \end{macro}
-%
% \begin{macro}{\loadtheorems}
% If you have exported saved theorems to a file, you can load them
% into another file using the macro |\loadtheorems|.
@@ -385,9 +383,11 @@ colorlinks,
}
% \end{macrocode}
% \end{macro}
-%
% \begin{environment}{makethm}
-% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility}
+% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility.}
+% \changes{v1.2}{2024/09/21}{Environment end moved to fix vertical spacing.}
+% \changes{v1.2}{2024/09/22}{Theorem name is only saved if it exists.}
+% \changes{v1.2}{2024/09/22}{Renamed theorem output variable to be unique for each theorem.}
% On to defining the actual theorems to be saved.
% \begin{macrocode}
\NewDocumentEnvironment{makethm}{ m m o +b }
@@ -402,39 +402,44 @@ colorlinks,
}{
\begin{#1}\label{#2}
}
- #4
+ % \begin{theorem}
+ #4
+ \expandafter\gdef\csname thmtype@#2\endcsname{#1}%
+ \expandafter\long\expandafter\gdef\csname thm@#2\endcsname{#4}%
+ \IfValueT{#3}{% Only save theorem name if it exists
+ \expandafter\gdef\csname thmdesc@#2\endcsname{#3}%
+ }
+ % Saving parameters to aux file
+ \expandafter\long\expandafter\gdef\csname thmoutput@#2\endcsname{%
+ \string\expandafter\string\gdef\noexpand%
+ \csname thmtype@#2\string\endcsname{#1}%
+ ^^J%
+ \string\expandafter\string\long\string\expandafter%
+ \string\gdef\noexpand\csname thm@#2\string\endcsname{#4}%
+ \IfValueT{#3}{
+ ^^J%
+ \string\expandafter\string\gdef\noexpand%
+ \csname thmdesc@#2\string\endcsname{#3}%
+ }
+ }
+ \write\@auxout{\csname thmoutput@#2\endcsname}
+ \if\reptheorem@theoremfile\relax
+ % No file has been set
+ \else
+ % We have a theorem file
+ % Saving parameters to theorem file
+ \write\@thmlist{\csname thmoutput@#2\endcsname}
+ \fi
\end{#1}
- \expandafter\gdef\csname thmtype@#2\endcsname{#1}
- \expandafter\long\expandafter\gdef\csname thm@#2\endcsname{#4}%
- \expandafter\gdef\csname thmdesc@#2\endcsname{#3}%
- % Saving parameters to aux file
- \long\gdef\@thmoutput{%
- \string\expandafter\string\gdef\noexpand%
- \csname thmtype@#2\string\endcsname{#1}%
- ^^J%
- \string\expandafter\string\long\string\expandafter%
- \string\gdef\noexpand\csname thm@#2\string\endcsname{#4}%
- ^^J%
- \string\expandafter\string\gdef\noexpand%
- \csname thmdesc@#2\string\endcsname{#3}%
- }
- \write\@auxout{\@thmoutput}
- \if\reptheorem@theoremfile\relax
- % No file has been set
- \else
- % We have a theorem file
- % Saving parameters to theorem file
- \write\@thmlist{\@thmoutput}
- \fi
}{}
% \end{macrocode}
% \end{environment}
-%
% \begin{macro}{\repthm}
-% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility}
+% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility.}
+% \changes{v1.2}{2024/09/22}{Fixed bug where theorems got a name even if undefined.}
+% \changes{v1.3}{2024/10/07}{Added hyperref named destination compatibility by setting counter to very low value}
+% \changes{v1.3}{2024/10/07}{Changed thetheorem to csname to fix compatibility with theorem types not called ``theorem''.}
% To repeat a theorem, use the |\repthm| command.
-% The type of theorem is not saved, so it is necessary to
-% respecify it each time a theorem is repeated.
% \begin{macrocode}
\newcounter{old@counter}
\NewDocumentCommand{\repthm}{ m +o }{
@@ -450,23 +455,23 @@ colorlinks,
%
% Save theorem counter so we don't increase it
\setcounter{old@counter}{\value{\@@thmtype}}
- \def\thetheorem{\ref{#1}}
+ \setcounter{\@@thmtype}{-900}
+ \expandafter\def\csname the\@@thmtype\endcsname{\ref{#1}}
\let\@@theoremnotdefined\relax
%
\ifcsname thm@#1\endcsname% Check if theorem is even defined
% Theorem is defined
- \expandafter\edef\expandafter\@@thmdesc{\csname thmdesc@#1\endcsname}%
\expandafter\let\expandafter\@@thm\csname thm@#1\endcsname
% Output theorem
- \IfValueTF{\@@thmdesc}{% Check if theorem has name
- \begin{\@@thmtype}[\@@thmdesc]
+ \ifcsname thmdesc@#1\endcsname % Check if theorem has name
+ \begin{\@@thmtype}[\csname thmdesc@#1\endcsname]
\@@thm
\end{\@@thmtype}
- }{% No optionals
+ \else % No optionals
\begin{\@@thmtype}
\@@thm
\end{\@@thmtype}
- }
+ \fi
\else
% Theorem undefined
\IfValueTF{#2}{
@@ -490,8 +495,6 @@ colorlinks,
}
% \end{macrocode}
% \end{macro}
-
-
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/latex/contrib/reptheorem/reptheorem.ins b/macros/latex/contrib/reptheorem/reptheorem.ins
index be179b4d9a..a13a70f683 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.ins
+++ b/macros/latex/contrib/reptheorem/reptheorem.ins
@@ -9,7 +9,7 @@
%% Copyright (c) 2024- Jesse Straat
%%
%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
+%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
@@ -18,7 +18,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainer of this work is Jesse Sraat.
+%% The Current Maintainer of this work is Jesse Straat.
%%
%% This work consists of the main file reptheorem.dtx
%% and the derived files
@@ -27,7 +27,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: reptheorem 2024-08-12 v1.1}
+\Msg{* Package: reptheorem 2024-10-07 v1.3}
\Msg{************************************************************************}
\keepsilent
@@ -38,7 +38,7 @@
Copyright (c) 2024- Jesse Straat
This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
+conditions of the LaTeX Project Public License, either version 1.3c
of this license or (at your option) any later version.
The latest version of this license is in
https://www.latex-project.org/lppl.txt
@@ -47,7 +47,7 @@ version 2008 or later.
This work has the LPPL maintenance status `maintained'.
-The Current Maintainer of this work is Jesse Sraat.
+The Current Maintainer of this work is Jesse Straat.
This work consists of the main file reptheorem.dtx
and the derived files
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
index 891c9e8e97..fb39e43845 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
index 5423d5babe..f8b7415396 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
@@ -29,10 +29,15 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2022-06-01]
%<class>\ProvidesClass{rub-kunstgeschichte}
%<*class>
- [2024-05-26 v0.1.0 RUB KGI class]
+ [2024-10-30 v0.3.0 RUB Kunstgeschichte class]
%</class>
%<*driver>
\documentclass{ltxdoc}
+
+%^^A Load packages needed for the documentation
+\usepackage{dtxdescribe}
+\fvset{commandchars={|()}}
+
\EnableCrossrefs
\CodelineIndex
\RecordChanges
@@ -51,16 +56,21 @@
%
% \DoNotIndex{\newcommand,\newenvironment}
% \DoNotIndex{\begin,\end}
+% \DoNotIndex{\fi}
+% \DoNotIndex{\section,\subsection,\subsubsection}
+% \DoNotIndex{\title,\author,\tableofcontents}
+% \DoNotIndex{\LaTeX,\verb}
+% \DoNotIndex{\texorpdfstring}
+% \DoNotIndex{\@rubkgi@bibheading,\@rubkgi@bibheading@primary,\@rubkgi@bibheading@secondary}
+% \DoNotIndex{\@rubkgi@maketitle}
+% \DoNotIndex{\@rubkgi@titlepage@gradebox@width}
+% \DoNotIndex{\@author,\@date,\@title}
+% \DoNotIndex{\@rubkgi@titlepage@author@email,\@rubkgi@titlepage@author@matricnum,\@rubkgi@titlepage@author@semester,\@rubkgi@titlepage@seminar@semester,\@rubkgi@titlepage@seminar@lecturer,\@rubkgi@titlepage@seminar@name,\@rubkgi@titlepage@seminar@degree,\@rubkgi@titlepage@seminar@module,\@rubkgi@titlepage@seminar@creditpoints}
%
%^^A define helper commands for consistent typesetting in the documentation
-% \def\env{\texttt}
-% \def\opt{\texttt}
-% \def\cls{\textsf}
-% \def\pkg{\textsf}
-% \def\prg{\textsf}
% \DeclareDocumentCommand\email{m}{\href{mailto:#1}{\nolinkurl{#1}}}
%
-% \title{The \cls{\jobname} class^^A
+% \title{The \pkg{\jobname} class^^A
% \thanks{This document corresponds to \pkg{\jobname}~\fileversion,
% dated \filedate.}}
% \author{\copyright{} Joran Schneyer^^A
@@ -70,6 +80,7 @@
% \date{\filedate}
%
% \maketitle
+% \tableofcontents
%
% \section{Introduction}\label{sec:introduction}
%
@@ -84,9 +95,121 @@
%
% To use this class, simply specify it as the document class.^^A
% \footnote{You can also find a complete example usage of this class in \autoref{sec:example}.}
-% \begin{verbatim}
+% \begin{sourceverb}
% \documentclass{rub-kunstgeschichte}
-% \end{verbatim}
+% \end{sourceverb}
+%
+% \subsection{Caveats}
+% When using this class, some packages are loaded automatically with options (see also \autoref{sec:implementation:package-loading}).
+% That means that you can't reload the same package with different options without risking an option clash error.
+% The relevant packages offer other ways to change their options in the preamble:
+%
+% \DescribePackage{biblatex}
+% Customize citations and bibliography.
+%
+% \verb|\ExecuteBibliographyOptions|\oarg{entrytype}\marg{options} can be used to set most options,
+% but some can only be set at the time of loading the \pkg{biblatex} package.
+% Those can be set in the class options using the \optn{biblatex} key (see also \autoref{sec:usage:class-options}).
+%
+% \DescribePackage{hyperref}
+% Customize behavior of clickable elements and pdf meta-data.
+%
+% \verb|\hypersetup|\marg{options} should be used for nearly all options.
+% The few options that can only be given at load time of the package have to be passed along using the \optn{hyperref} class option (see also \autoref{sec:usage:class-options}).
+%
+% \DescribePackage{setspace}
+% Overwrite the 1.5 line-spacing setting.
+%
+% Either \verb|\singlespacing|,
+% \verb|\doublespacing|
+% or for custom spacing factors also
+% \verb|\setstretch|\marg{baselinestretch}.
+%
+% \DescribePackage{geometry}
+% Overwrite geometry options such as the page margin settings.
+%
+% \verb|\geometry|\marg{options}
+%
+% \subsection{Class options}\label{sec:usage:class-options}
+% You can pass several \meta{options} to the class by using
+% \begin{sourceverb}
+% \documentclass|oarg(options){rub-kunstgeschichte}
+% \end{sourceverb}
+% The \meta{options} are key/value pairs that sometimes defer to a default value when only the key is given.
+%
+% \DescribeOption{biblatex}
+% Pass along options to the \pkg{biblatex} package. They overwrite default options set by this class.
+%
+% \DescribeOption{hyperref}
+% Pass along options to the \pkg{biblatex} package. They do \textbf{not} overwrite default options set by this class as they are set after loading the package using the \verb|\hypersetup| command.
+% To overwrite them, use \verb|\hypersetup|\marg{options} in the preamble.
+%
+% \DescribeOption{parskip}
+% \DescribeDefault{\optn{true}}
+% Specify wether to load the \pkg{parskip} package to remove indentation at the start of paragraphs.
+%
+% \DescribeOption{noparskip}
+% \DescribeDefault{\optn{true}}
+% The complementary option to the \optn{parskip} option.
+%
+% If neither \optn{parksip} nor \optn{noparskip} are given, the \pkg{parskip} package is automatically loaded by default.
+%
+% \subsection{Macros}\label{sec:usage:macros}
+%
+% \DescribeMacro{\printbibliographies} \oarg{options}
+%
+% Prints the bibliography, divided into two subbibliographies.
+% One for primary sources and one for secondary literature, as suggested in section 3.7.1 of the guidelines on page 14.
+% It uses the keyword mechanism to distinguish primary sources i.e. in order for a bib entry to be sorted into the primary sources section, it needs the \texttt{source} keyword.
+% E.g. the bible would be considered a primary source:
+% \begin{sourceverb}
+% @inbook{bible,
+% author = {{The Bible}},
+% title = {The Holy Bible: King James Version},
+% |ldots
+% keywords = {source}
+% }
+% \end{sourceverb}
+% All other entries which don't have the \texttt{source} keyword will be sorted into the secondary literature section of the bibliography.
+%
+% You can customize the behavior of the macro using key-value \meta{options}. The option keys that are currently available are \optn{heading}, \optn{heading-primary} and \optn{heading-secondary} to overwrite the headings of the bibliography and the two subbibliographies respectively.
+%
+% \DescribeMacro{\maketitle} \oarg{titlepage-info}
+%
+% The native command \cs{maketitle} is redefined to create the title page according to the template in the guidelines.
+% The new title page needs more information than the standard one.
+% Besides the name of the author and title it needs more details about the author such as the matriculation number as well as information about the seminar the work is associated with.
+% The extra info can be passed as key-value pairs to the optional \meta{titlepage-info} argument of the redefined \cs{maketitle} macro
+% \DescribeMacro{\configureTitlepage}
+% or to the \cs{configureTitlepage} macro implemented for just this task.
+% The following custom keys are implemented:
+% \begin{description}
+% \ItemDescribeOption[titlepage]{email} The email of the author.
+% \ItemDescribeOption[titlepage]{matricnum} The matriculation number of the author.
+% \ItemDescribeOption[titlepage]{author-semester} The number of semesters the author has studied the subject.
+% \ItemDescribeOption[titlepage]{seminar-semester} The semester in which the seminar takes place in. E.g. \optn{Sommersemester 2024} or \optn{Wintersemester 2023/24}.
+% \ItemDescribeOption[titlepage]{seminar-lecturer} The name of the lecturer of the seminar.
+% \ItemDescribeOption[titlepage]{seminar-name} The name of the seminar itself.
+% \ItemDescribeOption[titlepage]{seminar-degree} The degree in which the author has taken the seminar in.
+% \ItemDescribeOption[titlepage]{seminar-module} The module in which the author has taken the seminar in.
+% \ItemDescribeOption[titlepage]{seminar-cp} The credit points the author will be rewarded with when completing the seminar.
+% \end{description}
+% Additionally you should set the normal \cs{author}, \cs{date} and \cs{title} info in the preamble.
+%
+% Note, that in contrast to e.g. the headers of the bibliography, the title page is not translated into the document language.
+% The guidleines specify that exactly this template should be used and to our understanding this means that it should always be written in german, regardless of the document language.
+%
+% \subsection{Translations}\label{sec:usage:translations}
+%
+% The class uses the \pkg{translations} package to allow multi-lingual strings. The default language is english. To tell it which language it should use, you can load a package like \pkg{babel} with the corresponding language as the package option in the preamble. E.g. for german using the new spelling rules
+% \begin{sourceverb}
+% \usepackage[ngerman]{babel}
+% \end{sourceverb}
+%
+% All pre-defined strings this class prints on the page of the document (such as the headings of the bibliographies when using \cs{printbibliographies}) are available in multiple languages.
+% So far this package only defines its strings for english and german, but you can define them for other languages too.\footnote{E.g. using the \cs{declaretranslation} command. For more info, refer to the documentation of the \pkg{translations} package: \url{https://ctan.org/pkg/translations}}
+%
+% The translation string definitions can be found in \autoref{sec:implementation:translations}.
%
% \StopEventually{}
%
@@ -99,8 +222,73 @@
%<*class>
% \fi
%
+% \subsection{Class options}\label{sec:implementation:class-options}
+% \iffalse
+%% Class options
+% \fi
+% The class options are defined as keyval options for great flexibility.
+% They toggle some of the class features or customize their behavior.
+%
+% \begin{option}{biblatex}
+% The \optn{biblatex} option stores its content in a macro until it is later passed along to the \pkg{biblatex} package after specifying the default options (see \autoref{sec:implementation:package-loading:bibliography}).
+% Therefore, options provided with this key overwrite the ones set per default by this class.
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ biblatex.store = \@rubkgi@biblatexOptions,
+ biblatex.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{hyperref}
+% The \optn{hyperref} option passes its content along immediately, to be used as options when the \pkg{hyperref} package is loaded.
+% This will \textbf{not} overwrite default options set by this class as they are set after loading the package using \verb|\hypersetup|\marg{options} (see also \autoref{sec:implementation:package-loading:others}).
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ hyperref.code = \PassOptionsToPackage{#1}{hyperref},
+ hyperref.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \paragraph{Paragraph indentation}
+% First we define a TeX switch which is later used (see \autoref{sec:implementation:package-loading}) to check wether to load the \pkg{parskip} package to remove the indentation at the start of paragraphs.
+% \iffalse
+%% TeX switch to decide wether to load the parskip package
+% \fi
+% \begin{macrocode}
+\newif\if@rubkgi@parskip
+% \end{macrocode}
+% By default we set the switch to true, so the parskip package is normally loaded when using this class.
+% \begin{macrocode}
+\@rubkgi@parskiptrue
+% \end{macrocode}
+% \begin{option}{parskip}
+% Then we declare the key so the switch can be turned on and off by the user in the class options.
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ parskip.if = @rubkgi@parskip,
+ parskip.usage = load,
+% \end{macrocode}
+% \end{option}
+% \begin{option}{noparskip}
+% Finally we define the complementary key for easier disabling of the parskip feature.
+% \begin{macrocode}
+ noparskip.ifnot = @rubkgi@parskip,
+ noparskip.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \paragraph{Process options}
+% After defining the class options it is necessary to process them too in order to actually make use of them.
+% \begin{macrocode}
+\ProcessKeyOptions[rubkgi]
+% \end{macrocode}
+%
% \subsection{Base class}\label{sec:implementation:base-class}
-% The \cls{\jobname} class is based on the \cls{article} class.
+% \DescribeClass{article}
+% The \pkg{\jobname} class is based on the \pkg{article} class.
% When loading the class we specify \texttt{12pt} as the base font size, as required by the guidelines.
% \iffalse
%% Load base class with 12pt base font size
@@ -111,9 +299,104 @@
%
% \subsection{Loading packages}\label{sec:implementation:package-loading}
%
-% \paragraph{Line spacing}
+% \subsubsection{Bibliography}\label{sec:implementation:package-loading:bibliography}
+%
+% \DescribePackage{biblatex}
+% \changes{v0.2.0}{2024-09-06}{Use biblatex with authortitle-dw style from biblatex-dw package.}^^A
+% \changes{v0.3.0}{2024-10-30}{Use arthistory-bonn biblatex style instead of authortitle-dw.}^^A
+% To support bibliography facilities out of the box, the \pkg{biblatex} package is loaded. To customize the behavior, a few options are passed to the package.
+% \iffalse
+%% biblatex options
+% \fi
+% \begin{macrocode}
+\PassOptionsToPackage{
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{backend}
+% Defines the backend program. To use all features of \pkg{biblatex}, the \prog{biber} backend must be used.
+% \begin{macrocode}
+ backend=biber,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{singletitle}
+% Prints the title of a cited work in short citations only if there is more than one work of the same author.
+% \begin{macrocode}
+ singletitle=true,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{autocite}
+% Defines the behavior of the \cs{autocite} command, which in this case will behave like the \cs{footcite} command and will print citations in the footnotes instead of directly in the text.
+% \begin{macrocode}
+ autocite=footnote,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{autopunct}
+% Controls whether the citation commands scan ahead for punctuation marks and move the citation after the punctuation.
+% \begin{macrocode}
+ autopunct=true
+}{biblatex}
+% \end{macrocode}
+%
+% \DescribePackage{biblatex-arthistory-bonn}
+% \iffalse
+%% biblatex-arthistory-bonn package
+% \fi
+% Further approximation of the suggested bibliography and citation styles in the guidelines is achieved by using the \pkg{biblatex-arthistory-bonn} package.
+% To use it, a few more options are passed to \pkg{biblatex}:
+% \begin{macrocode}
+\PassOptionsToPackage{
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{style}
+% The \optn{arthistory-bonn} style provided by the \pkg{biblatex-arthistory-bonn} package is suited to approximate the citation style suggested in the guidelines.
+% \begin{macrocode}
+ style=arthistory-bonn,
+% \end{macrocode}
+%
+% The following options of the \optn{arthistory-bonn} biblatex style are set to further implement the guidelines:
+%
+% \DescribeOption[biblatex]{firstcitefull}
+% Delivers a full citation for the first occurence of an entry.
+% \begin{macrocode}
+ firstcitefull=true,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{enddot}
+% Every bibliography entry will end with a dot.
+% \begin{macrocode}
+ enddot=true,
+% \end{macrocode}
+%
+% The next \optn{arthistory-bonn} option is not implementing any part of the guidelines but is still useful:
+%
+% \DescribeOption[biblatex]{namelinked}
+% Both name and year in a short citation will link to the respective bibliography entry.
+% \begin{macrocode}
+ namelinked=true
+}{biblatex}
+% \end{macrocode}
+%
+% After specifying the default options, we pass along the ones that might have been set in the class options.
+% \iffalse
+%% pass biblatex class options along
+% \fi
+% \begin{macrocode}
+\PassOptionsToPackage{\@rubkgi@biblatexOptions}{biblatex}
+% \end{macrocode}
+%
+% And finally the \pkg{biblatex} package is loaded.
+% \iffalse
+%% load biblatex
+% \fi
+% \begin{macrocode}
+\RequirePackage{biblatex}
+% \end{macrocode}
+%
+% \subsubsection{Document format}
+%
+% \DescribePackage{setspace}
% To achieve 1.5 times line spacing as required by the guidelines,
-% we simply load the package \pkg{setspace} with the \opt{onehalfspacing} option.
+% we simply load the package \pkg{setspace} with the \optn{onehalfspacing} option.
% \iffalse
%% Set 1.5 times line spacing
% \fi
@@ -121,7 +404,8 @@
\RequirePackage[onehalfspacing]{setspace}
% \end{macrocode}
%
-% \paragraph{Margins}
+% \DescribePackage{geometry}
+% Used to set page size and margins.
% The guidelines require 2cm top, left and bottom margins as well as a 4cm correction margin on the right side.
% Furthermore A4 paper is the standard page size here.
% \iffalse
@@ -134,22 +418,290 @@
]{geometry}
% \end{macrocode}
%
+% \DescribePackage{parskip}
+% \changes{v0.2.0}{2024-09-06}{Use parskip to avoid paragraph indentation}^^A
+% To avoid indentation at the start of paragraphs, the \pkg{parskip} package is loaded if the corresponding switch is set to true. See also \autoref{sec:implementation:class-options}.
% \iffalse
+%% Avoid paragraph indentation
+% \fi
+% \begin{macrocode}
+\if@rubkgi@parskip
+ \RequirePackage{parskip}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Other useful packages}\label{sec:implementation:package-loading:others}
+%
+% \DescribePackage{hyperref}
+% \changes{v0.2.0}{2024-09-06}{Use hyperref for clickable links and references.}^^A
+% Makes links and references clickable.
+% \iffalse
+%% Hyperref
+% \fi
+% \begin{macrocode}
+\RequirePackage{hyperref}
+% \end{macrocode}
+% By default, we configure it to not highlight clickable elements.
+% \begin{macrocode}
+\hypersetup{hidelinks}
+% \end{macrocode}
+%
+% \DescribePackage{translations}
+% Used internally by the class to create multilingual strings that react to the document language set e.g. by \pkg{babel}.
+% \iffalse
+%% Translations
+% \fi
+% \begin{macrocode}
+\RequirePackage{translations}
+% \end{macrocode}
+%
+% \iffalse
+%% Other
+% \fi
+%
+% \DescribePackage{tabularx}
+% To make fancy tables. Is used e.g. in the title page.
+% \begin{macrocode}
+\RequirePackage{tabularx} % For fancy tables. Is used in title page.
+% \end{macrocode}
+%
+% \DescribePackage{boxedminipage}
+% Used by title page.
+% \begin{macrocode}
+\RequirePackage{boxedminipage} % Used in title page.
+% \end{macrocode}
+%
+% \subsection{Macros}\label{sec:implementation:macros}
+% \iffalse
+%% Macros
+% \fi
+%
+% \begin{macro}{\printbibliographies}
+% \changes{v0.3.0}{2024-10-30}{was added}^^A
+% Prints the bibliography using the native \cs{printbibliography} macro, but divides it into sections for primary sources and secondary literature. The keyword \texttt{source} is used to sort entries into the primary sources section.
+%
+% We start by defining the macro with an optional argument that is passed to \cs{SetKeys} to allow customization using key-value pairs.
+% \begin{macrocode}
+\newcommand{\printbibliographies}[1][]{%
+ \SetKeys[rubkgi@printbibliographies]{#1}%
+% \end{macrocode}
+% We add an entry to the table of contents and insert the main bibliography heading.
+% \begin{macrocode}
+ \addcontentsline{toc}{section}{%
+ \texorpdfstring{\@rubkgi@bibheading}{bibliography}%
+ }%
+ \printbibheading[%
+ heading = bibliography,%
+ title = {\@rubkgi@bibheading}%
+ ]
+% \end{macrocode}
+% Then we print the subbibliographies.
+% \begin{macrocode}
+ \printbibliography[%
+ keyword = source,%
+ heading = subbibliography,%
+ title = {\@rubkgi@bibheading@primary}%
+ ]
+ \printbibliography[%
+ notkeyword = source,%
+ heading = subbibliography,%
+ title = {\@rubkgi@bibheading@secondary}%
+ ]
+}
+% \end{macrocode}
+% For greater flexibility we define the heading strings as internal macros that can be redefined by the user with key-value options and use the \pkg{translations} package for the default strings. See \autoref{sec:implementation:translations} for the implementation of the translations. We don't want heading strings to include paragraphs, this is why we use the starred variant of \cs{newcommand}.
+% \begin{macrocode}
+\newcommand*{\@rubkgi@bibheading}{
+ \GetTranslationWarn{Bibliography}
+}
+\newcommand*{\@rubkgi@bibheading@primary}{
+ \GetTranslationWarn{Primary Bibliography}
+}
+\newcommand*{\@rubkgi@bibheading@secondary}{
+ \GetTranslationWarn{Secondary Bibliography}
+}
+% \end{macrocode}
+% Finally, we declare the keys that the user can use to redefine the headings.
+% \begin{macrocode}
+\DeclareKeys[rubkgi@printbibliographies]
+{
+ heading .store = \@rubkgi@bibheading,
+ heading-primary .store = \@rubkgi@bibheading@primary,
+ heading-secondary .store = \@rubkgi@bibheading@secondary
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% \changes{v0.3.0}{2024-10-30}{Redefined for custom title page according to template in guidelines.}^^A
+% We redefine the \cs{maketitle} macro to print a custom title page.
+% We also add the ability to customize it using key-value pairs in the optional argument.
+% \begin{macrocode}
+\renewcommand{\maketitle}[1][]{%
+ \SetKeys[rubkgi@titlepage]{#1}%
+ \@rubkgi@maketitle%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@rubkgi@maketitle}
+% The custom title page is defined as a dedicated internal command.
+% \begin{macrocode}
+\newcommand{\@rubkgi@maketitle}{
+% \end{macrocode}
+% It uses the \env{titlepage} environment to dedicate a full page to the titel.
+% Inside, it uses groups, minipages and tabularx tables to arrange the fields to resemble the template of the guidelines.
+% \begin{macrocode}
+ \begin{titlepage}
+ % set page margins for the title page
+ \newgeometry{left=2.5cm,top=2.5cm,bottom=2cm,right=2.5cm}%
+ % define the width of the grade box
+ \def\@rubkgi@titlepage@gradebox@width{5.03cm}%
+ %
+ % create a group for the top part of the title page
+ {\raggedright%
+ % create a minipage for the top left part
+ \begin{minipage}[t]%
+ % calculate the width of the top left part
+ % based on the grade box width
+ {\dimexpr\textwidth%
+ -\@rubkgi@titlepage@gradebox@width%
+ -0.5cm\relax}%
+ \vspace{0pt}% somehow helps aligning at the top
+ \begin{tabularx}{\linewidth}{@{}lX}%
+ \multicolumn{2}{@{}l}{%
+ Ruhr-Universität Bochum%
+ }\\%
+ \multicolumn{2}{@{}l}{%
+ Fakultät für Geschichtswissenschaft%
+ }\\%
+ \multicolumn{2}{@{}l}{%
+ Kunstgeschichtliches Institut%
+ }\\%
+ \multicolumn{2}{@{}l}{%
+ \@rubkgi@titlepage@seminar@semester%
+ }\\%
+ Dozent:in: & \@rubkgi@titlepage@seminar@lecturer\\%
+ Seminartitel: & \@rubkgi@titlepage@seminar@name\\%
+ Studiengang: & \@rubkgi@titlepage@seminar@degree\\%
+ Modul: & \@rubkgi@titlepage@seminar@module\\%
+ Kreditpunkte: & \@rubkgi@titlepage@seminar@creditpoints\\%
+ \end{tabularx}%
+ \end{minipage}%
+ % align grade box on the right side by filling in the gap
+ \hfill%
+ % define the grade box as a boxedminipage
+ \begin{boxedminipage}[t][3.78cm][t]%
+ {\@rubkgi@titlepage@gradebox@width}%
+ % leave a little space and add the text inside
+ \vspace{1em}%
+ \hspace{1em}Note:%
+ \end{boxedminipage}%
+ }% top part ends here
+ %
+ \vfill% vertical space to fill
+ %
+ % create center part (title and author)
+ \begin{center}%
+ % add title relatively LARGE
+ {\LARGE \@title \par}%
+ \vskip 2em% add space between title and author
+ % add author slightly larger than normal text
+ {\large \@author \par}%
+ % end the center environment
+ % and switch back to normal paragraph text style
+ \end{center}\par%
+ %
+ \vfill% fill gap to put next part at bottom
+ %
+ % create bottom part
+ {\raggedright%
+ \begin{tabular}{@{}ll}%
+ Matrikelnr.: & \@rubkgi@titlepage@author@matricnum\\%
+ % Add email as a clickable link
+ Email: & \href{mailto:\@rubkgi@titlepage@author@email}%
+ {\@rubkgi@titlepage@author@email}\\%
+ Fachsemester: & \@rubkgi@titlepage@author@semester\\%
+ Abgabetermin: & \@date\\%
+ \end{tabular}
+ }%
+ \end{titlepage}%
+% \end{macrocode}
+% The guidelines specify that the titlepage counts towards the page numbers but should not display one. Therefore we set the page number counter to two after the title page.
+% \begin{macrocode}
+ \setcounter{page}{2}%
+% \end{macrocode}
+% We also reset the geometry to the one defined before the title page and then end the custom titlepage macro.
+% \begin{macrocode}
+ \restoregeometry%
+}
+% \end{macrocode}
+% The custom title page needs extra information which we want the user to be able to set via key-value pairs. We first define the key-value pairs and then set the defaults.
+% \begin{macrocode}
+\DeclareKeys[rubkgi@titlepage]
+{
+ email .store = \@rubkgi@titlepage@author@email,
+ matricnum .store = \@rubkgi@titlepage@author@matricnum,
+ author-semester .store = \@rubkgi@titlepage@author@semester,
+ seminar-semester .store = \@rubkgi@titlepage@seminar@semester,
+ seminar-lecturer .store = \@rubkgi@titlepage@seminar@lecturer,
+ seminar-name .store = \@rubkgi@titlepage@seminar@name,
+ seminar-degree .store = \@rubkgi@titlepage@seminar@degree,
+ seminar-module .store = \@rubkgi@titlepage@seminar@module,
+ seminar-cp .store = \@rubkgi@titlepage@seminar@creditpoints
+}
+\SetKeys[rubkgi@titlepage]
+{
+ email = {YOUR-EMAIL},
+ matricnum = {YOUR MATRICULATION NUMBER},
+ author-semester = {YOUR NUMBER OF SEMESTERS},
+ seminar-semester = {THE SEMESTER IN WHCIH THE SEMINAR IS HELD},
+ seminar-lecturer = {NAME OF SEMINAR LECTURER},
+ seminar-name = {NAME OF THE SEMINAR},
+ seminar-degree = {DEGREE SEMINAR IS TAKEN IN},
+ seminar-module = {MODULE SEMINAR IS TAKEN IN},
+ seminar-cp = {SEMINAR CP}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\configureTitlepage}
+% Lastly, we create a macro that can be used in the preamble to set the titlepage info keys.
+% \begin{macrocode}
+\newcommand{\configureTitlepage}[1]{%
+ \SetKeys[rubkgi@titlepage]{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Translations}\label{sec:implementation:translations}
+% \changes{v0.3.0}{2024-10-30}{Use translations package for multi-lingual support.}^^A
+%
+% The \pkg{translations} package offers an easy interface to create multilingual strings. We can define them all at once here, at the end of the class, since they are only used when the user commands are expanded in the document.
+%
+% \subsubsection*{Bibliography headings}
+%
+% The \pkg{translations} package already comes with translations for the main heading of the bibliography. Additionally, we provide the headings for the subbibliographies in english and german.
+% \begin{macrocode}
+\DeclareTranslation{english}{Primary Bibliography}{Primary sources}
+\DeclareTranslation{german}{Primary Bibliography}{Primärliteratur}
+\DeclareTranslation{english}{Secondary Bibliography}{Secondary literature}
+\DeclareTranslation{german}{Secondary Bibliography}{Sekundärliteratur}
+% \end{macrocode}
+%
+% \iffalse
+
%</class>
%<*example>
% \fi
+% \clearpage
%
% \section{Example}\label{sec:example}
%
% To further exemplify the use of this class,
-% we create an example .tex file.
-% The full \texttt{rub-kunstgeschichte-example.tex} and the corresponding \texttt{rub-kunstgeschichte-example.pdf} are available on GitHub.^^A
+% we create an example \filenm{.tex} file.
+% The full \filenm{rub-kunstgeschichte-example.tex} and the corresponding \PDF{} are available on GitHub.^^A
% \footnote{\url{https://github.com/rub-kgi/rub-kunstgeschichte-latex/releases}}
%
-% Let's examine the contents of this example .tex file step by step
-% to highlight features of this class that were used.
-%
-% First, the \cls{rub-kunstgeschichte} class is loaded
+% First, the \pkg{rub-kunstgeschichte} class is loaded
% \iffalse
%% Load the rub-kunstgeschichte class
% \fi
@@ -160,33 +712,169 @@
% \fi
%
-% and then the information needed to typeset a title is given:
+% followed by the information that is needed to typeset a normal title:
% \begin{macrocode}
\title{Example usage of the \textsf{rub-kunstgeschichte} class}
\author{Joran Schneyer}
% \end{macrocode}
+% For the custom title we need to set additional information, such as
+% \begin{macrocode}
+\configureTitlepage{
+ email = {joran.schneyer@ruhr-uni-bochum.de}
+}
+% \end{macrocode}
+% We leave the rest to their default values for now.
%
-% Naturally, we begin the document environment and typeset the title
+% For citations, the bibtex entries are usually written to a seperate \filenm{.bib} file.
+% For the sake of this example we keep everything in one \filenm{.tex} file and use the \env{filecontents} environment instead.
+% \iffalse
+
+%% bibliography file (usually you would put this in a seperate .bib file)
+% \fi
+% \begin{macrocode}
+\begin{filecontents}{rub-kunstgeschichte-example.bib}
+@article{exampleArticle,
+ author = {Maxi Mustermann},
+ title = {A very interesting article},
+ year = {2001},
+ journal = {Important example journal}
+}
+@book{exampleBook,
+ author = {John Smith},
+ title = {A long example book marked as primary literature},
+ year = {2024},
+ keywords = {source}
+}
+@inbook{bible,
+ author = {{The Bible}},
+ title = {The Holy Bible: King James Version},
+ booktitle = {The New Testament},
+ publisher = {Oxford University Press},
+ year = {1769},
+ location = {Oxford},
+ keywords = {source}
+}
+@online{exampleWebsite,
+ author = {{Example consortium}},
+ title = {The truth about example documents},
+ year = {2020},
+ note = {Internet forum article},
+ url = {https://example.com},
+ urldate = {2100-04-01}
+}
+@manual{biblatexDocs,
+ author = {Philip Kime and Moritz Wemheuer and Philipp Lehman},
+ title = {The biblatex Package},
+ subtitle = {Programmable Bibliographies and Citations},
+ year = {2024},
+ url = {https://ctan.org/pkg/biblatex},
+ urldate = {2024-06-25}
+}
+@online{biblatexCheatsheet,
+ title = {Biblatex Cheat Sheet},
+ author = {Clea F. Rees},
+ year = {2017},
+ url = {https://ctan.org/pkg/biblatex-cheatsheet},
+ urldate = {2024-06-25}
+}
+\end{filecontents}
+% \end{macrocode}
+% \iffalse
+
+% \fi
+% After that, we need to load the bibliography to use it with biblatex.
+% \begin{macrocode}
+\addbibresource{rub-kunstgeschichte-example.bib}
+% \end{macrocode}
+% \iffalse
+
+%% Load additional packages
+% \fi
+% To set our language to german (using the new spelling rules) we load \pkg{babel}.
+%
+% \begin{macrocode}
+\usepackage[ngerman]{babel} % Sets the language of the document
+% \end{macrocode}
+% \iffalse
+
+% \fi
+% Having finished the preamble, we begin the document, typeset the title and include a table of contents.
% \begin{macrocode}
\begin{document}
\maketitle
+ \tableofcontents
% \end{macrocode}
+% \iffalse
+
+% \fi
%
-% Next we need some text to show some features.
-% The text in the example itself will explain the features used.
+% Next we add different sections that explain common usage and some features of this class.
% \begin{macrocode}
- Here is some text.
- Note, how the typeset text has 12pt font size as specified
- and there is a 1.5 times line-spacing present.
+ \section{Introduction}
+ The \textsf{rub-kunstgeschichte} class aims to implement
+ the guidelines on scientific writing of the art history institute
+ ``KGI'' (\textit{Kunstgeschichtliches Institut})
+ at Ruhr University Bochum.
+
+ This example document showcases a typical use
+ of the \textsf{rub-kunstgeschichte} class.
+ Just by using the class, the page is already formatted
+ so that the typeset text has 12pt font size,
+ there is a 1.5 times line-spacing present
+ and the page size is A4 with 2cm margins at top, left and bottom,
+ as well as a 4cm margin on the right.
+
+ Also, paragraphs don't have an indentation
+ in the first line by default,
+ contrary to typical \LaTeX{} documents.
+ Furthermore the \texttt{hyperref} package
+ is automatically loaded to enable clickable
+ links and references.
+
+ Notably, the first page is a custom title page that aims to recreate the titlepage template of the guidelines in \LaTeX. Note, how the fields have descriptive default values in CAPS, so that you can easily see which information is still missing for the title page. As the documentation of this class states, you can either pass the corresponding key-value options into an optional argument of \verb|\maketitle|, or use the \verb|\configureTitlepage| macro in the preamble.\footnote{For a full list of titlepage options refer to the \texttt{rub-kunstgeschichte} class documentation.}
+
+ We use the \texttt{babel} package to set the language to german (even though this example document is actually written in english) to showcase how headings are automatically translated.
+
+ \section{How to cite sources}
+ This class automatically loads the \texttt{biblatex} package
+ for sophisticated bibliography and citations.
+ The class also sets some options by default
+ that make \texttt{biblatex} behave closer to the
+ suggested citation style in the guidelines of the institute.
+
+ You can cite sources using the \verb|\autocite| command,
+ which is configured by this class to use footnotes
+ \autocite{exampleArticle}.
+ Page numbers can be added in the optional argument
+ \autocite[394]{exampleBook}
+ and citation signals in a second one
+ that comes before the one for page numbers
+ \autocite[see][]{exampleWebsite}.
+ You can even cite multiple sources at once
+ using the \verb|\autocites| command
+ \autocites[111]{exampleBook}[see also][13]{exampleArticle}.
+
+ For more information refer to the documentation
+ of the \texttt{biblatex} package
+ \autocite{biblatexDocs}
+ or the biblatex cheatsheet
+ \autocite{biblatexCheatsheet}.
+
+ At the end of the document we can include a bibliography
+ containing all cited sources, divided into primary and secondary literature, with \verb|\printbibliographies|. Primary literature (also called a \textit{source}) is something like the bible\autocite{bible}, letters, treatises etc. We put the bibliography on a new page by using \verb|\clearpage| before printing it. Note, that since we used \verb|\usepackage[ngerman]{babel}| in the preamble, the headings of the bibliography are typed in german.
+
+ \clearpage
+ \printbibliographies
% \end{macrocode}
%
% Finally we end the document environment
% \begin{macrocode}
\end{document}
% \end{macrocode}
+% \clearpage
% \iffalse
%</example>
% \fi
%
-% \Finale \ No newline at end of file
+% \Finale
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
index 98614bb733..22fc8ba8d0 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
Binary files differ
diff --git a/macros/latex/contrib/scrhack/LICENSE.md b/macros/latex/contrib/scrhack/LICENSE.md
new file mode 100644
index 0000000000..1863f2f61a
--- /dev/null
+++ b/macros/latex/contrib/scrhack/LICENSE.md
@@ -0,0 +1,19 @@
+----------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, version 1.3c of the license. The latest
+version of this license is in http://www.latex-project.org/lppl.txt and
+version 1.3c or later is part of all distributions of LaTeX 2005/12/01
+or later. This work has the LPPL maintenance status “maintained”.
+The current maintainer and author of this work is Markus Kohm.
+
+----------------------------------------------------------------------------
+
+Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
+Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
+oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”.
+Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm.
+
+----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/scrhack/README.md b/macros/latex/contrib/scrhack/README.md
new file mode 100644
index 0000000000..b85195ab54
--- /dev/null
+++ b/macros/latex/contrib/scrhack/README.md
@@ -0,0 +1,207 @@
+# Package `scrhack`
+
+Copyright © 2008–2024 Markus Kohm
+
+Release: 2024-09-04 v3.42
+
+License: LPPL 1.3c
+
+KOMA presents the compatibility package to emulate the former
+[KOMA-Script](https://www.ctan.org/pkg/koma-script) package `scrhack` as part
+of the *third-party enhancements* project.
+
+------------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, version 1.3c of the license.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer and author of this work is Markus Kohm.
+
+------------------------------------------------------------------------------
+
+# Abstract
+
+For several years
+[KOMA-Script](https://www.sourceforge.net/project/koma-script) provided a
+package `scrhack`, that has been made not only to improve the compatibility of
+third-party packages with [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+classes, but also to generally improve third-party packages. The package
+consisted not only in the package file `scrhack.sty` but also in several so
+called hacks as separate files with extension `.hak`. In the course of
+splitting off former [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+packages from the [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+collection, it was decided to create independent packages from the individual
+hacks. These new independent packages then serve as replacements for the
+original packages they were intended to improve. In addition, to preserve the
+functionality of loading the enhancements only when the corresponding original
+package is loaded, a new `scrhack` was created to do just that.
+
+# Installation for Users
+
+If you are a user, you should wait until all the packages of the third-party
+enhancement project have been added to your preferred TeX distribution. Then
+you can use the package manager of your TeX distribution to install all the
+packages at once.
+
+Note: If you have installed a
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) before version 3.42,
+ you should also update
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) using the package
+ manager of your TeX distribution as soon as such an update is
+ availiabe. Otherwise it could happen, that the old integrated `scrhack`
+ of [KOMA-Script](https://www.ctan.org/pkg/koma-script) is used instead
+ of the new installed version. On the one hand, KOMA-Script 3.41 works
+ with both the integrated `scrhack` and the new standalone `scrhack`. On
+ the other hand, KOMA-Script from version 3.42 does not provide an
+ integrated `scrhack`. So installing the new standalone `scrhack` before
+ or at least with KOMA-Script version 3.42 is the best option.
+
+# Unpacking for Distributors
+
+Distributors should download [the distribution from
+CTAN](https://www.ctan.org/pkg/scrhack). This consists in:
+
+* `scrhack.dtx`
+* `scrhack-2023-07-07.dtx`
+* `README.md`
+* `LICENSE.md`
+* `scrhack.pdf`
+* `scrhack-2023-07-07.pdf`
+
+If distributors also want to distribute `scrhack.sty`,
+`scrhack-2023-07-07.sty`, `float.hak`, `floatrow.hak`, `hyperref.hak`,
+`listings.hak`, `lscape.hak`, `nomencl.hak`, `setspace.hak`, and
+`standardsectioning.hak` they can unpack these using:
+
+ tex scrhack.dtx
+ tex scrhack-2023-07-07.dtx
+
+Note, that you have to use `tex` not `latex`, `pdflatex`, `xelatex` or
+`lualatex`!
+
+Note also, that a legal distribution consists at least in:
+
+* `scrhack.dtx`
+* `scrhack-2023-07-07.dtx`
+* `README.md`
+
+The following files are optionally, but must not be distributed without the
+previous ones:
+
+* `LICENSE.md`
+* `scrhack.sty`
+* `scrhack.pdf`
+* `scrhack-2023-07-07.sty`
+* `scrhack-2023-07-07.pdf`
+* `float.hak`
+* `floatrow.hak`
+* `hyperref.hak`
+* `listings.hak`
+* `lscape.hak`
+* `nomencl.hak`
+* `setspace.hak`
+* `standardsectioning.hak`
+
+
+# Unpacking and Installation for Developers
+
+Developers who want the current developer version of the code to be installed
+for testing, should clone [the `third-party-enhancements`
+repository](https://github.com/komascript/third-party-enhancements), e.g.,
+using
+
+ git clone https://github.com/komascript/third-party-enhancements.git
+
+You can than either unpack and install all the third-party enhancements using:
+
+ l3build install --full
+
+from within the main directory of the cloned respository. For installation of
+`scrhack` only you could run the same command from within the
+`scrhack` subdirectory. For installation without the manual omit
+option `--full`, but this is not recommended for developers.
+
+Note: Installation of `scrhack` does make sense only if all other packages of
+ the third-party enhancement project are also installed. The new
+ `scrhack` does not work without these packages.
+
+Note: If you have already an installation of
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) before version 3.42
+ in the user's texmf tree (`TEXMFHOME`), kpathsearch will usually find
+ the old integrated version of `scrhack`. Therefore LaTeX also will use
+ that old integrated version of `scrhack`. To prioritize the new
+ standalone version of `scrhack`, you would either have to remove
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) from the user's
+ texmf tree or copy `scrhack.sty` to the working directory from within
+ you are running LaTeX. Instead of the
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) version before 3.42
+ you can, after removing that installation, also install a
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) version from 3.42,
+ e.g., [the current pre-release](https://komascript.de/current) or [the
+ developer version from
+ SourceForge](https://sourceforge.net/p/koma-script/code/HEAD/tree/trunk/).
+
+# How to get the Manual
+
+After installation you should get the user manual using:
+
+ texdoc scrhack
+
+See the manual of your TeX distribution for more information.
+
+Developers or distributors can also build the manual from the source using:
+
+ l3build doc
+
+# How to Contribute
+
+To become a contributor, e.g., do heavy testing. If you find an issue, please
+report it using [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues).
+
+You can also become a developer and, e.g., make new test files to the
+packages. See the [`l3build`](https://ctan.org/pkg/l3build) manual for more
+information about tests. If you've created a new test and think that it would
+be useful. Please either do a pull request or [add a new
+issue](https://github.com/komascript/third-party-enhancements/issues/new/choose)
+and include your test file.
+
+Another kind of contribution would be to contact an author of one of the
+third-party packages and convince her or him to integrate the code of the
+corresponding enhancement package from this project into her or his package.
+
+# How to Report Issues
+
+If you think you have found a bug (or another kind of issue) using
+`scrhack` you should use [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues). Please
+first search for similar issues already reported and maybe also already fixed
+and closed. Maybe the replies to such a similar report would help you too.
+
+If your issue is new, you should report it also using [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues). Please
+be kind, not only when writing the report but also when reading replies and
+commenting or answering. And please always add a minimal working example and
+usually the relevant parts of the `log`-file to your report. Please use the
+[markdown for
+code](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks)
+to add such files into the text of your report. The correct language
+identifier for LaTeX code would be `latex`. For `log`-files you won't need any
+language identifier. Usually you should not use attachments for code or
+`log`-files unless you've been asked to do so. And please note, reports should
+always be self-containing. External links often break and so the report become
+useles.
+
+# How to Say Thank You for my Work
+
+Hey, I'm doing this as a hobby. So no need to say thank you. But I'm a vain
+fop, so I'm certainly up for a quick thank you by email. On komascript.de you
+can find an [explanation of my wishes](https://komascript.de/wunschliste) if
+you want to give more. If you don't understand German, just click to links at
+that page.
diff --git a/macros/latex/contrib/koma-script/scrhack.dtx b/macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx
index a08943ed50..332c388e62 100644
--- a/macros/latex/contrib/koma-script/scrhack.dtx
+++ b/macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx
@@ -1,9 +1,15 @@
% \iffalse meta-comment
% ======================================================================
-% scrhack.dtx
-% Copyright (c) Markus Kohm, 2008-2023
+% scrhack-2023-07-07.dtx
+% Copyright © 2008–2023 Markus Kohm
%
-% This file is part of the LaTeX2e KOMA-Script bundle.
+% This work is a KOMA-Script spin-off. For the original sources of
+% KOMA-Script's `scrhack.sty' see file `scrhack.dtx' in the KOMA-Script
+% sources at <https://sourceforge.net/p/koma-script/code/>.
+%
+% Development is taking place as part of `scrhack' at
+% <https://github.com/komascript/third-party-enhancements>. New issues
+% should be reported there as well as known issues can be found.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
@@ -16,12 +22,13 @@
%
% The Current Maintainer and author of this work is Markus Kohm.
%
-% This work consists of all files listed in MANIFEST.md.
+% This work consists of the file `scrhack.dtx',
+% `scrhack-2023-07-07,dtx', and `README.md'.
%
-% To create `scrhack.sty' run `tex scrhack.dtx'. Using LaTeX instead
-% of TeX would generate the implementation documentation.
+% The recommended way to install `scrhack' is to use
+% the package manager of your TeX distribution.
% ======================================================================
-%%% From File: $Id: scrhack.dtx 4063 2023-06-28 08:28:26Z kohm $
+%
%<package&identify>%%% using: package,identify
%<package&option>%%% using: package,option
%<package&body>%%% using: package,body
@@ -30,11 +37,11 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2023-06-28 10:28:26 +0200 (Mi, 28. Jun 2023) $
+ \filedate$Date: 2023-06-28 10:28:26 +0200 (Mi, 28 Jun 2023) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
\filerevision$Revision: 4063 $
\endgroup
-\ProvidesFile{scrhack.dtx}[\filedate\space\filerevision\space
+\ProvidesFile{scrhack-2023-07-07.dtx}[\filedate\space\filerevision\space
%</dtx>
%<package&identify>\ProvidesPackage{scrhack}[%
%<hyperref&identify>\ProvidesFile{hyperref.hak}[%
@@ -46,12 +53,12 @@
%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
%<standardsections&identify>\ProvidesFile{standardsections.hak}[%
%<*dtx|identify>
-%!KOMAScriptVersion
+ 2024-04-17 v3.42
%<*dtx>
source of
%</dtx>
%<*dtx|package>
- package (hacking other packages)%
+ legacy version of package scrhack%
%</dtx|package>
%<*hack>
%<hack> scrhack part
@@ -69,61 +76,46 @@
%</dtx|identify>
%<*dtx>
\ifx\documentclass\undefined
- \input scrdocstrip.tex
- \@@input scrkernel-version.dtx
- \@@input scrstrip.inc
- \KOMAdefVariable{COPYRIGHTFROM}{2008}
- \generate{\usepreamble\defaultpreamble
- \file{scrhack.sty}{%
- \from{scrkernel-version.dtx}{package,scrhack}%
- \from{scrhack.dtx}{package,identify}%
- \from{scrkernel-basics.dtx}{load}%
- \from{scrhack.dtx}{package,option}%
- \from{scrhack.dtx}{package,body}%
- \from{scrlogo.dtx}{logo}%
+ \input docstrip.tex
+ \generate{%
+ \file{scrhack-2023-07-07.sty}{%
+ \from{scrhack-2023-07-07.dtx}{package,identify}%
+ \from{scrhack-2023-07-07.dtx}{package,option}%
+ \from{scrhack-2023-07-07.dtx}{package,body}%
}%
\file{hyperref.hak}{%
- \from{scrkernel-version.dtx}{file,hyperref.hak}%
- \from{scrhack.dtx}{hack,hyperref,identify}%
- \from{scrhack.dtx}{hack,hyperref,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,hyperref,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,hyperref,body}%
}%
\file{float.hak}{%
- \from{scrkernel-version.dtx}{file,float.hak}%
- \from{scrhack.dtx}{hack,float,identify}%
- \from{scrhack.dtx}{hack,float,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,float,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,float,body}%
}%
\file{floatrow.hak}{%
- \from{scrkernel-version.dtx}{file,floatrow.hak}%
- \from{scrhack.dtx}{hack,floatrow,identify}%
- \from{scrhack.dtx}{hack,floatrow,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,floatrow,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,floatrow,body}%
}%
\file{listings.hak}{%
- \from{scrkernel-version.dtx}{file,listings.hak}%
- \from{scrhack.dtx}{hack,listings,identify}%
- \from{scrhack.dtx}{hack,listings,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,listings,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,listings,body}%
}%
\file{setspace.hak}{%
- \from{scrkernel-version.dtx}{file,setspace.hak}%
- \from{scrhack.dtx}{hack,setspace,identify}%
- \from{scrhack.dtx}{hack,setspace,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,setspace,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,setspace,body}%
}%
\file{lscape.hak}{%
- \from{scrkernel-version.dtx}{file,lscape.hak}%
- \from{scrhack.dtx}{hack,lscape,identify}%
- \from{scrhack.dtx}{hack,lscape,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,lscape,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,lscape,body}%
}%
\file{nomencl.hak}{%
- \from{scrkernel-version.dtx}{file,nomencl.hak}%
- \from{scrhack.dtx}{hack,nomencl,identify}%
- \from{scrhack.dtx}{hack,nomencl,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,nomencl,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,nomencl,body}%
}%
\file{standardsections.hak}{%
- \from{scrkernel-version.dtx}{file,standardsections.hak}%
- \from{scrhack.dtx}{hack,standardsections,identify}%
- \from{scrhack.dtx}{hack,standardsections,body}%
+ \from{scrhack-2023-07-07.dtx}{hack,standardsections,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,standardsections,body}%
}%
}
- \@@input scrstrop.inc
\else
\let\endbatchfile\relax
\fi
@@ -132,7 +124,7 @@
\usepackage{babel}
\setcounter{StandardModuleDepth}{2}
\begin{document}
- \DocInput{scrhack.dtx}
+ \DocInput{scrhack-2023-07-07.dtx}
\end{document}
%</dtx>
%\fi
@@ -146,41 +138,54 @@
% \changes{v3.40}{2023/04/17}{guide names changed}
%
% \GetFileInfo{scrhack.dtx}
-% \title{Patching Third-Party Packages using
-% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrhack}}
+% \title{Legacy Version of Package \pkg*{scrhack}}
% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
-% \date{Revision \fileversion{} of \filedate}
+% \date{2023-07-15}
% \maketitle
-% \begin{abstract}
-% Some packages from other authors may have problems with \KOMAScript{}. In
-% my opinion some packages could be improved. With some packages this makes
-% only sense, if \KOMAScript{} was used. With some other packages the
-% package author has another opinion. Sometimes proposals was never
-% answered. Package \pkg*{scrhack} contains all those improvement proposals
-% for other packages. This means, \pkg*{scrhack} redefines macros of packages
-% from other authors! The redefinitions are only activated, if those
-% packages were loaded. Users may prevent \pkg*{scrhack} from redefining
-% macros of individual packages.
-% \end{abstract}
% \tableofcontents
%
% \section{User Manual}
%
-% You can find the user manuals of \pkg*{scrhack} in the \KOMAScript{} manual,
-% either the German \file{scrguide-de.pdf} or the English
-% \file{scrguide-en.pdf}.
+% You can find the user manual of the legacy version in
+% \href{file:scrhack.pdf}{the manual of \pkg*{scrhack}}.
%
% \MaybeStop{\PrintIndex}
%
-% \section{Implementation of \pkg*{scrhack}}
+% \section{Implementation of the Legacy Version of
+% \texorpdfstring{\pkg*{scrhack}}{scrhack}}
%
% \changes{v3.04b}{2009/08/05}{order of commands/macros and options changed}
%
-% \subsection{Optionen}
-%
-% The package uses \cs{KOMAoptions} of \pkg*{scrkbase}, which is loaded by
-% (virtual) \file{scrkbase.ins}.
+% \subsection{Options}
%
+% The package uses \cs{KOMAoptions} of \pkg*{scrkbase} and needs at least the
+% one of \KOMAScript{} v3.39:
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{scrkbase}[2022-11-11]
+\@ifpackagelater{scrkbase}{2023-07-14}{%
+ \PackageInfo{scrhack}{KOMA-Script >= 3.42 detected.\MessageBreak
+ In this case you should not use this legacy version of\MessageBreak
+ scrhack, but should be able to use the current version\MessageBreak
+ or even replace loading scrhack by loading really\MessageBreak
+ needed third-party patches, e.g., floatbytocbasic.\MessageBreak
+ But you are the boss ..}%
+}{%
+ \@ifpackagelater{scrkbase}{2022-11-11}{%
+ \PackageWarningNoLine{scrhack}{KOMA-Script < 3.42 detected.\MessageBreak
+ In this case the original scrhack of that version\MessageBreak
+ should also be installed and used instead of this\MessageBreak
+ legacy package}%
+ }{%
+ \PackageError{scrhack}{incompatible KOMA-Script < v3.39 detected}{%
+ This error is fatal!\MessageBreak
+ Loading of scrhack will be aborted!}%
+ \expandafter\let\csname ver@scrhack.sty\endcsname\undefined
+ \endinput
+ }%
+}
+%</package&option>
+% \end{macrocode}
% The options allow the selection of the used manipulations of other
% packages. But all these options are valid only until both \pkg*{scrhack} and
% the other package has been loaded. Later settings are invalid.
@@ -266,7 +271,7 @@
%</package&body>
% \end{macrocode}
%
-% \subsection{The \pkg*{hyperref} hack}
+% \subsection{The \texorpdfstring{\pkg*{hyperref}}{hyperref} hack}
%
% Package \pkg{hyperref} places the anchor of the star variant of a heading
% after the heading, but the anchor of the normal variant before the heading
@@ -317,7 +322,7 @@
\KOMAExecuteOptions[scrhack.sty]{hyperref=false}%
}{%
\AtEndOfPackage{%
- \KOMA@key[scrhack.sty]{hyperref}{%
+ \KOMA@key[scrhack.sty]{hyperref}[true]{%
\PackageWarning{scrhack}{option `hyperref=#1' ignored}%
\FamilyKeyStateProcessed
}%
@@ -446,7 +451,7 @@
% \end{macro}
%
%
-% \subsection{The \pkg*{floatrow} hack}
+% \subsection{The \texorpdfstring{\pkg*{floatrow}}{floatrow} hack}
%
% Package \pkg{floatrow} insists in using \cs{float@listhead} for the setting
% of the headings. This is not recommended any longer since \KOMAScript~2.95
@@ -585,7 +590,7 @@
% \end{command}
%
%
-% \subsection{The \pkg*{float} hack}
+% \subsection{The \texorpdfstring{\pkg*{float}}{float} hack}
%
% Package \pkg{float} insists in using \cs{float@listhead} for the setting
% of the headings. This is not recommended any longer since \KOMAScript~2.95
@@ -730,7 +735,7 @@
% \end{command}
%
%
-% \subsection{The \pkg*{listings} hack}
+% \subsection{The \texorpdfstring{\pkg*{listings}}{listings} hack}
%
% Package \pkg{listing} insists in using \cs{float@listhead} for the setting
% of the headings. This is not recommended any longer since \KOMAScript~2.95
@@ -739,14 +744,21 @@
% effort to do so, it very small and I do not understand, why package authors
% are not willing to use it. Because the benefit would be a lot.
%
-% This hack adds \pkg*{tocbasic} usage to \pkg{listings}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{listings}.
+% This hack adds \pkg*{tocbasic} usage to old versions of
+% \pkg{listings}. Nevertheless it is more complicated than adding
+% \pkg*{tocbasic} support into \pkg{listings}.
%
% \begin{option}{listings}
% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
% removed}
+% \changes{v3.42}{2024/04/17}{automatic deactivation for new \pkg{listings}}
+% Note: The deactivation of the hack for new version of \pkg{listings} cannot
+% be done comparing the \pkg{listings} version, because \pkg{listings} version
+% 1.10 uses \cs{AtEndOfPackage} for \cs{ProvidesPackage} and therefore the
+% version is not defined when the after package hook is executed. So we test
+% instead the \pkg{lstmisc} version.
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{listings}{@scrhack@listings}
@@ -754,11 +766,18 @@
%</package&option>
%<*package&body>
\AfterPackage*{listings}{%
- \KOMA@key[scrhack.sty]{listings}{%
- \PackageWarning{scrhack}{option `listings' ignored}%
+ \@ifpackagelater{lstmisc}{2024/02/15}{%
+ \PackageInfo{scrhack}{listings hack deactivated because of\MessageBreak
+ detection of listings version, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[scrhack.sty]{listings=false}%
+ }{%
+ \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
+ }%
+ \KOMA@key[scrhack.sty]{listings}[true]{%
+ \PackageWarning{scrhack}{option `listings=#1' ignored}%
\FamilyKeyStateProcessed
}%
- \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
}
%</package&body>
% \end{macrocode}
@@ -882,7 +901,7 @@
%
%
%
-% \subsection{The \pkg*{nomencl} hack}
+% \subsection{The \texorpdfstring{\pkg*{nomencl}}{nomencl} hack}
%
% With package \pkg{nomencl} and the \KOMAScript{} classes there is only a
% small disharmony between relating the ToC entry. Nevertheless the package
@@ -1073,7 +1092,7 @@
% \end{macro}
%
%
-% \subsection{The \pkg*{setspace} hack}
+% \subsection{The \texorpdfstring{\pkg*{setspace}}{setspace} hack}
%
% Package \pkg{setspace} internally uses \cs{@ptsize} in a way, that only
% works as long as \cs{@ptsize} is an integer. But because \KOMAScript{}
@@ -1246,7 +1265,7 @@
% \end{command}
%
%
-% \subsection{The \pkg*{lscape} hack}
+% \subsection{The \texorpdfstring{\pkg*{lscape}}{lscape} hack}
% \changes{v3.18a}{2015/07/07}{\pkg{lscape} hack added}
%
% The package does change \len{textheight} inside \env{landscape} to the prior
@@ -1390,9 +1409,6 @@
\@ifpackageloaded{sectsty}{%
\PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
}{}
-\@ifpackageloaded{sectsty}{%
- \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
-}{}
\scr@ifundefinedorrelax{chapter}{%
% \end{macrocode}
% It seems to be an article class, so we use the code from
@@ -1794,7 +1810,7 @@
Resetting \string\@ssect,\MessageBreak
because of loading standard classes sections hack%
}%
- \let\@sect\scr@latex@ssect
+ \let\@ssect\scr@latex@ssect
\fi
}
\scr@ifundefinedorrelax{scr@latex@xsect}{}{%
@@ -1803,7 +1819,7 @@
Resetting \string\@xsect,\MessageBreak
because of loading standard classes sections hack%
}%
- \let\@sect\scr@latex@sect
+ \let\@xsect\scr@latex@xsect
\fi
}
% \end{macrocode}
diff --git a/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf b/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf
new file mode 100644
index 0000000000..59ae934110
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf
Binary files differ
diff --git a/macros/latex/contrib/scrhack/scrhack.dtx b/macros/latex/contrib/scrhack/scrhack.dtx
new file mode 100644
index 0000000000..a14d7e2e94
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack.dtx
@@ -0,0 +1,991 @@
+% \iffalse meta-comment
+% ======================================================================
+% scrhack.dtx
+% Copyright © 2008–2024 Markus Kohm
+%
+% This work is a KOMA-Script spin-off. For the original sources of
+% KOMA-Script's `scrhack.sty' see file `scrhack.dtx' in the KOMA-Script
+% sources at <https://sourceforge.net/p/koma-script/code/>.
+%
+% Development is taking place as part of `scrhack' at
+% <https://github.com/komascript/third-party-enhancements>. New issues
+% should be reported there as well as known issues can be found.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.<3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of the file `scrhack.dtx',
+% `scrhack-2023-07-07,dtx', and `README.md'.
+%
+% The recommended way to install `scrhack' is to use
+% the package manager of your TeX distribution.
+% ======================================================================
+%
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{scrhack.dtx}
+%</dtx>
+%<package>\providecommand\DeclareRelease[3]{}
+%<package>\providecommand\DeclareCurrentRelease[2]{}
+%<package>\DeclareRelease{v3.41}{2023-07-07}{scrhack-2023-07-07.sty}
+%<package>\DeclareCurrentRelease{}{2023-07-15}
+%<*dtx|package>
+%<package>\ProvidesPackage{scrhack}
+ [2024-09-04 v3.42
+%<dtx> sources and unpack driver of
+ scrhack emulation package]
+%</dtx|package>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \generate{%
+ \file{scrhack.sty}{%
+ \from{scrhack.dtx}{package}%
+ }%
+ }%
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[ngerman,USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{csquotes}
+\usepackage[style=alphabetic]{biblatex}
+\begin{filecontents}[force]{\jobname.bib}
+@online{pkg:koma-script,
+ author={Markus Kohm},
+ version={3.41},
+ date={2023-07-07},
+ title={{\KOMAScript} --- A bundle of versatile classes and packages},
+ url={https://ctan.org/pkg/koma-script},
+ urldate={2023-07-14},
+ note={The \KOMAScript{} bundle provides replacements for the \pkg*{article},
+ \pkg*{report}, and \pkg*{book} classes with emphasis on typography and
+ versatility. There is also a letter class.},
+}
+@manual{pkg:koma-script:manual:de,
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={Die Anleitung},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-de.pdf},
+ urldate={2023-07-04},
+}
+@manual{pkg:koma-script:manual:en,
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={The Guide},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-en.pdf},
+ urldate={2023-07-14},
+}
+@article{latexnews35,
+ author={{The {\LaTeX} Project Team}},
+ shortauthor={TLT},
+ year={2022},
+ month={6},
+ title={Issue 35},
+ journal={{\LaTeX} News},
+ url={http://mirrors.ctan.org/macros/latex/base/ltnews35.pdf},
+ urldate={2023-07-14},
+}
+\end{filecontents}
+\addbibresource{\jobname.bib}
+\setcounter{StandardModuleDepth}{2}
+\providecommand*{\seclabel}[1]{\label{sec:#1}}
+\begin{document}
+ \nocite{pkg:koma-script}
+ \DocInput{scrhack.dtx}
+\end{document}
+%</dtx>
+%\fi
+%
+% \changes{v0.1}{2023/07/14}{start of \KOMAScript{} spin-off}
+%
+% \GetFileInfo{scrhack.dtx}
+% \title{Emulating Former \href{https://komascript.de/}{\KOMAScript} Package
+% \pkg*{scrhack}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \filedate{} \fileversion}
+% \maketitle
+% \begin{abstract}
+% For several years \href{https://komascript.de/}{\KOMAScript} provided a
+% package \pkg*{scrhack}, that has been made not only to improve the
+% compatibility of third-party packages with
+% \href{https://komascript.de/}{\KOMAScript} classes, but also to generally
+% improve third-party packages. The package consisted not only in the
+% package file \file{scrhack.sty} but also in several so called \emph{hacks}
+% as separate files with extension \file{.hak}. In the course of splitting
+% off former \href{https://komascript.de/}{\KOMAScript} packages from the
+% \href{https://komascript.de/}{\KOMAScript} collection, it was decided to
+% create independent packages from the individual hacks. These new
+% independent packages then serve as replacements for the original packages
+% they were intended to improve. In addition, to preserve the functionality
+% of loading the enhancements only when the corresponding original package
+% is loaded, a new \pkg*{scrhack} was created to do just that.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%\iffalse
+%<*doc>
+%\fi
+% \section{History}
+% \label{sec:history}
+Some packages from other authors do not work well with
+\href{https://komascript.de/}{\KOMAScript}. It is often very tedious for the
+author of \href{https://komascript.de/}{\KOMAScript} to convince the authors
+of these packages to make specific improvements. This also applies to packages
+whose development has been discontinued. That's why the \pkg*{scrhack} was
+created. This package alters the commands and definitions of other to work
+better with \href{https://komascript.de/}{\KOMAScript}. Some changes are also
+useful when using other classes.
+
+In the early days of \href{https://komascript.de/}{\KOMAScript}, users wanted
+to handle lists of floating environments created with the \pkg{float} package
+in the same way as the list of figures and list of tables created by
+\href{https://komascript.de/}{\KOMAScript} itself. At that time the author of
+\href{https://komascript.de/}{\KOMAScript} contacted the author of
+\pkg{float} to propose an interface to support such an enhancement. A
+somewhat modified form of that interface was implemented with the
+\cs{float@listhead} and \cs{float@addtolists} commands.
+
+Later it became apparent that these two commands were not flexible enough to
+fully support all of \href{https://komascript.de/}{\KOMAScript}'s
+capabilities. Unfortunately, the author of \pkg{float} had already ceased
+development by that point, so further changes to this package cannot be
+expected.
+
+Other package authors have also adopted these two commands, and it became
+apparent that the implementation in some packages, including \pkg{float},
+means that all these packages can only be loaded in a specific order, even
+though they are otherwise unrelated to each other.
+
+To overcome all these disadvantages and problems,
+\href{https://komascript.de/}{\KOMAScript} no longer officially supports this
+old interface. Instead, \href{https://komascript.de/}{\KOMAScript} warns if
+the old interface is used. At the same time, the \pkg{tocbasic} package has
+been designed and implemented as a central interface for managing of table of
+contents and similar content lists. This package provides many more
+advantages and features than the two old commands.
+
+Although the effort to use this package is very small, so far the authors of
+most of the packages that use the old interface have not made any adjustments.
+Therefore the \KOMAScript author designed a new
+package \pkg*{scrhack} as part of
+\href{https://komascript.de/}{\KOMAScript}. That package contained appropriate
+modifications of the packages
+\pkg{float}, \pkg{floatrow}, \pkg{listings}, and later on also for
+\pkg{nomencl} and some others not related to that interface. Merely loading
+\pkg*{scrhack} was sufficient to make these packages recognize not only the
+setting of the \href{https://komascript.de/}{\KOMAScript} option \opt{listof},
+but, e.g., also to react to the language switching features of the
+\pkg{babel} package. You can find more information
+about the features available by switching packages to \pkg{tocbasic} in
+\autocite{pkg:koma-script:manual:en} or \autocite{pkg:koma-script:manual:de}.
+
+With release of version 3.42 package \pkg*{scrhack} has been removed from
+\href{https://komascript.de/}{\KOMAScript}. The code of the former package has
+been split into several standalone packages, that can be loaded individually
+if needed. However, for compatibility and maybe for convenience there is also
+a new standalone package \pkg*{scrhack} almost compatible with the old
+one.
+
+\section{Using \texorpdfstring{\pkg*{scrhack}}{scrhack}}
+\seclabel{usage}
+
+It is recommended to load the \pkg*{scrhack} package using:
+\begin{verbatim}
+ \usepackage{scrhack}
+\end{verbatim}
+as early as possible. In particular, loading should be done before the
+affected packages. The package also provides several options, one for each
+hack. Usually the options are named identically to the package, that is
+patched by the hack. All these options are boolean options. You can switch
+such an option on assigning value \optvalue{true} or using it without
+value. You can switch off such an option assigning value
+\optvalue{false}. Switching off an option means to not automatically load the
+corresponding enhancement package after the package, that has to be
+patched. Therefore switching off an option results in not patching the
+corresponding package.
+
+\paragraph{Notes:}
+\begin{itemize}
+\item From version 3.42, you cannot use \cs{KOMAoptions} or \cs{KOMAoption}
+ any longer to change the options. Instead loading \pkg*{scrhack} again with
+ other options does not result in an option clash, but in a change of the
+ option settings.
+\item Switching off an option of an already loaded enhancement package is
+ ignored (with warning). It does not unload the enhancement package or switch
+ back to a not patched functionality.
+\item Switching on an option of a not yet loaded enhancement package would
+ result in loading the enhancement package.
+\item From version 3.42, you should no longer load package
+ \pkg*{scrhack}. Instead you can and should simply load the individual
+ enhancement package when you need it.
+\item If you need the old legacy version of \pkg*{scrhack} from
+ \href{https://komascript.de/}{\KOMAScript} 3.41 you can use:
+\begin{verbatim}
+ \usepackage{scrhack}[=2023-07-07]
+\end{verbatim}
+ or
+\begin{verbatim}
+ \usepackage{scrhack}[=v3.41]
+\end{verbatim}
+ However, this depends on internal packages of
+ \href{https://komascript.de/}{\KOMAScript}.
+\item The hacks of the legacy version have been frozen. So the
+ hacks may break with packages or \LaTeX{} versions released after
+ 2023-07-07. There is no support for such combinations!
+\item Loading the legacy version more than once with different option setting
+ still results in option clash errors.
+\end{itemize}
+
+\paragraph{Available options with \pkg*{scrhack}:}
+\begin{description}
+\item[\opt{float=\meta{boolean}}:]
+ \DescribeOption[noprint]{float=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{float} is loaded, load also package \pkg{floatbytocbasic}
+ to fix the issue explained in \autoref{sec:history}. This also provides the
+ full functionality of \pkg{tocbasic} to \pkg{float}.
+\item[\opt{floatrow=\meta{boolean}}:]
+ \DescribeOption[noprint]{floatrow=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{floatrow} is loaded, load also package
+ \pkg{floatbytocbasic} to fix the issue explained in
+ \autoref{sec:history}. This also provides the full functionality of
+ \pkg{tocbasic} to \pkg{floatrow}.
+\item[\opt{hyperref=\meta{boolean}}:]
+ \DescribeOption[noprint]{hyperref=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{hyperref} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{hyperref} without value or \opt{hyperref=true}
+ results in a warning. Using \opt{hyperref=false} results in an info only.
+\item[\opt{listings=\meta{boolean}}:]
+ \DescribeOption[noprint]{listings=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{listings} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{listings} without value or \opt{listings=true}
+ results in a warning. Using \opt{listings=false} results in an info only.
+\item[\opt{lscape=\meta{boolean}}:]
+ \DescribeOption[noprint]{lscape=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{lscape} is loaded, load also package
+ \pkg{lscapeenhanced} to fix an issue with detection of text height for
+ some packages like \pkg{scrlayer} and \pkg{showframe}.
+\item[\opt{nomencl=\meta{boolean}}:]
+ \DescribeOption[noprint]{nomencl=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{nomencl} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{nomencl} without value or \opt{nomencl=true}
+ results in a warning. Using \opt{nomencl=false} results in an info only.
+\item[\opt{setspace=\meta{boolean}}:]
+ \DescribeOption[noprint]{setspace=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{setspace} is loaded, load also package
+ \pkg{setspaceenhanced} with the same options plus options \opt{byselectfont}
+ and \opt{keepfontsize}.
+\item[\opt{standardsectioning=\meta{boolean}}:]
+ \DescribeOption[noprint]{standardsectioning=\meta{boolean}}%
+ \hfill initial: \optvalue{false}, default: \optvalue{true}\\
+ Load package \pkg{standardsectioning} to (re-)define the sectioning commands
+ using the code from the standard classes. If \pkg*{scrhack} is loaded
+ \emph{before} any class\footnote{This is detected heuristic by definition of
+ \cs{normalsize}. If \cs{normalsize} contains \cs{@latex@error} no class
+ has been loaded.} the definition is delayed until a class has been loaded.
+\end{description}
+
+\paragraph{Available options with the legacy version:}
+\begin{description}
+\item[\opt{float=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{float} is loaded, load \file{float.hak} to fix the issue
+ explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to \pkg{float}.
+\item[\opt{floatrow=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{floatrow} is loaded, load \file{floatrow.hak} to fix the
+ issue explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to \pkg{floatrow}.
+\item[\opt{hyperref=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ Versions of \pkg{hyperref} before 6.79h set the link anchors after the
+ heading of the starred versions of commands like \cs{part*}, \cs{chapter*},
+ etc. instead of before them. Since then, this problem has been resolved at
+ the suggestion of \KOMAScript's author. But because the change took more
+ than a year, a patch was added to \pkg*{scrhack}. Although this can also be
+ deactivated with \opt{hyperref=false}, you should instead use an up-to-date
+ \pkg{hyperref} release. In this case the legacy version of \pkg*{scrhack}
+ automatically deactivates this unnecessary patch.
+\item[\opt{listings=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{listings} is loaded, load \file{listings.hak} to fix the
+ issue explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to old versions of \pkg{listings}. With
+ newer versions, also the legacy version of \pkg*{scrhack} automatically
+ deactivates this unnecessary patch.
+\item[\opt{lscape=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ The \pkg{lscape} package defines a \env{landscape} environment to set the
+ page contents, but not the header or footer in landscape mode. Inside this
+ environment, \len{textheight}is set to the value of \len{textwidth}, but
+ \len{textwidth} is not set to the former value of \len{textheight}. This is
+ inconsistent. As far as I know, \len{textwidth} is left unchanged because
+ setting it to \len{textheight} could interfere with other packages or user
+ commands. But changing \len{textheight} also has this potential, and indeed
+ it breaks, for example, \pkg{showframe} and \pkg{scrlayer}. Thus it would be
+ best if \len{textheight} too remained unchanged. After package \pkg{lscape}
+ is loaded, the legacy version of \pkg*{scrhack} loads \file{lscape.hak},
+ that uses the \pkg{xpatch} package to modify the \env{landscape}
+ environment's start macro \cs{landscape} appropriately.
+
+ Incidentally, the \pkg{pdflscape} package also uses \pkg{lscape}, so this
+ option affects the functioning of this package too.
+\item[\opt{nomencl=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{nomencl} is loaded, load \file{nomencl.hak} to fix the
+ issue explained in \autoref{sec:history}. This is a little bit more
+ complicated, because the \pkg*{nomencl} author has also adapted his
+ package to support \pkg{tocbasic}. So additional versions checks are done.
+\item[\opt{setspace=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ Some packages assume that the class-internal macro \cs{@ptsize} both is
+ defined and expands to an integer. For compatibility,
+ \href{https://komascript.de/}{\KOMAScript} defines \cs{@ptsize} even if the
+ basic font size is something other than 10\,pt, 11\,pt, or 12\,pt.
+ \href{https://komascript.de/}{\KOMAScript} also allows non-integer font
+ sizes. So \cs{@ptsize} can, of course, also expand to a non-integer number.
+
+ One of the packages that cannot cope with a non-integer \cs{@ptsize} is
+ \pkg{setspace}. Additionally, the values set by this package are always
+ dependent on the basic font size, even if the setting is made in the context
+ of another font size. The legacy version of \pkg{scrhack} loads the hack
+ \file{setspace.hak} after package \pkg{setspace} to solves both problems by
+ redefining \cs{onehalfspacing} and \cs{doublespacing} to set the spacing
+ relative to the actual font size.
+
+ \textbf{Note:} if you use \pkg{setspace} with either the
+ \opt{onehalfspacing} or \opt{doublespacing} option, you must load
+ \pkg*{scrhack} first.
+\item[\opt{standardsections=\meta{boolean}}] \hfill
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Various packages assume that the sectioning commands are defined in a
+ specific way, corresponding to the definitions in the standard classes. But
+ for some classes this is not the case. For example, the
+ \href{https://komascript.de/}{\KOMAScript} classes use a completely
+ different implementation to provide many additional features. But this can
+ cause problems for packages that depend on the definition of the standard
+ classes. The legacy version of \pkg*{scrhack} offers the option to force
+ the sectioning commands \cs{part}, \cs{chapter}, \cs{section},
+ \cs{subsection}, \cs{subsubsection}, \cs{paragraph}, and \cs{subparagraph}
+ to be compatible with those in the standard classes. When \cs{chapter} is
+ defined, the definitions are based on those in \cls{book}. When \cs{chapter}
+ is undefined, the definitions of \cls{article} are used.
+
+ If you are using a \href{https://komascript.de/}{\KOMAScript} class, several
+ features of these classes are also deactivated as side effect. For example,
+ the commands to define or modify sectioning commands or option
+ \opt{headings} are no longer available, and commands like \cs{partformat}
+ have different defaults.
+
+ Because this hack has the potential to do more harm than good, it issues
+ several warnings. Also it is not activated simply by loading the legacy
+ version of \pkg*{scrhack} package. If you want to use it, you must explicitly
+ activate this option when you load the package. Late activation or
+ deactivation is not supported.
+
+ Since there are often less invasive solutions to fix the problem of package
+ incompatibilities, using this hack is not recommended. It is provided only
+ as a last resort for emergencies.
+\end{description}
+%
+% \iffalse
+%</doc>
+% \fi
+%
+% \MaybeStop{\printbibliography[heading=bibintoc]\PrintIndex}
+%
+% \iffalse
+%<*package>
+%<@@=scrhack>
+% \fi
+% \section{Implementation}
+%
+% Because \pkg*{scrhack} is not longer a
+% \href{https://komascript.de/}{\KOMAScript} package, it does not use the
+% \texttt{KOMA} family for options any longer. Instead it uses the new
+% \LaTeX{} kernel feature of key-value-options introduced in
+% \autocite{latexnews35}. So we need at least \LaTeX{} 2022-06-01:
+% \begin{macrocode}
+\ifnum 0=\ifcsname IfFormatAtLeastTF\endcsname
+ \IfFormatAtLeastTF{2022-06-01}{1}{0}%
+ \else
+ 0%
+ \fi\relax
+ \PackageError{scrhack}{LaTeX kernel too old}{%
+ The package needs at least LaTeX 2022-06-01.\MessageBreak
+ This error is fatal. Loading will be aborted.%
+ }%
+ \endinput
+\fi
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \subsection{Messages}
+%
+% We need some messages, that are not specific for only one use-case.
+% \begin{itemize}
+% \item If an option is ignored, because it cannot be handled after already
+% loading the enhancement package. \#1 is the name option, \#2 is the
+% enhancement package.
+% \end{itemize}
+% \begin{macrocode}
+\msg_new:nnn { scrhack } { option-too-late }
+ {
+ option~`#1'~after~loading~package~`#2'~ignored.
+ }
+% \end{macrocode}
+% \begin{itemize}
+% \item If an option is ignored, because it is deprecated.
+% \end{itemize}
+% \begin{macrocode}
+\msg_new:nnn { scrhack } { deprecated-option }
+ {
+ deprecated~option~`#1'~ignored.
+ }
+% \end{macrocode}
+%
+% \subsection{Emulating \file{float.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ float .code = \@@_switch_float:n { #1 },
+ float .default:n = true,
+ float .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_float:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{float=true}, if package \pkg{floatbytocbasic} already has been loaded
+% isn't a foul. So we just write an information to the \file{log}. But using
+% \opt{float=false}, if package \pkg{floatbytocbasic} already has been loaded
+% may be wrong. So we use a warning message. We also warn if a not allowed
+% value is used.
+% \begin{macrocode}
+\bool_new:N \@@_float_bool
+
+\cs_new:Nn \@@_switch_float:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { floatbytocbasic }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { float = true } { floatbytocbasic }
+ }
+ {
+ \bool_if:NF \@@_float_bool
+ {
+ \hook_gput_code:nnn { package/float/after } { scrhack }
+ {
+ \RequirePackage { floatbytocbasic }
+ }
+ \bool_gset_true:N \@@_float_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { floatbytocbasic }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { float=false } { floatbytocbasic }
+ }
+ {
+ \bool_if:NT \@@_float_bool
+ {
+ \hook_gremove_code:nn { package/float/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_float_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { float }
+ }
+ }
+\SetKeys{float=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{floatrow.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ floatrow .code = \@@_switch_floatrow:n { #1 },
+ floatrow .default:n = true,
+ floatrow .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_floatrow:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{floatrow=true}, if package \pkg{floatrowbytocbasic} already has been
+% loaded isn't a foul. So we just write an information to the \file{log}. But
+% using \opt{floatrow=false}, if package \pkg{floatrowbytocbasic} already has
+% been loaded may be wrong. So we use a warning message. We also warn if a not
+% allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_floatrow_bool
+
+\cs_new:Nn \@@_switch_floatrow:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { floatrowbytocbasic }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { floatrow = true } { floatrowbytocbasic }
+ }
+ {
+ \bool_if:NF \@@_floatrow_bool
+ {
+ \hook_gput_code:nnn { package/floatrow/after }
+ { scrhack }
+ {
+ \RequirePackage { floatrowbytocbasic }
+ }
+ \bool_gset_true:N \@@_floatrow_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { floatrowbytocbasic }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { floatrow=false } { floatrowbytocbasic }
+ }
+ {
+ \bool_if:NT \@@_floatrow_bool
+ {
+ \hook_gremove_code:nn { package/floatrow/after }
+ { scrhack }
+ }
+ \bool_gset_false:N \@s@_floatrow_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { floatrow }
+ }
+ }
+\SetKeys{floatrow=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{hyperref.hak}}
+%
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ hyperref .code = \@@_switch_hyperref:n { #1 },
+ hyperref .default:n = true,
+ hyperref .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_hyperref:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has been
+% needed for \pkg{hyperref} versions released before 2009-11-24, which would
+% not work with the \LaTeX{} kernel version needed by this version of
+% \pkg*{scrhack}. So emulating the hack does not make sense. Instead the
+% initial value of the option is changed to implicit \optvalue{false} and
+% switching it on explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_hyperref:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { hyperref=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { hyperref=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { hyperref }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{listings.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ listings .code = \@@_switch_listings:n { #1 },
+ listings .default:n = true,
+ listings .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_listings:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has
+% been needed for \pkg{listings} version released before 2024-02-15. So
+% instead of using any patch hacks, users should update \pkg{listings}. So
+% emulating the hack does not make sense. Instead the initial value of the
+% option is changed to implicit \optvalue{false} and switching it on
+% explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_listings:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { listings=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { listings=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { listings }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{lscape.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ lscape .code = \@@_switch_lscape:n { #1 },
+ lscape .default:n = true,
+ lscape .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_lscape:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{lscape=true}, if package \pkg{lscapeenhanced} already has been
+% loaded isn't a foul. So we just write an information to the \file{log}. But
+% using \opt{lscape=false}, if package \pkg{lscapeenhanced} already has
+% been loaded may be wrong. So we use a warning message. We also warn if a not
+% allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_lscape_bool
+
+\cs_new:Nn \@@_switch_lscape:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { lscapeenhanced }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { lscape = true } { lscapeenhanced }
+ }
+ {
+ \bool_if:NF \@@_lscape_bool
+ {
+ \hook_gput_code:nnn { package/lscape/after }
+ { scrhack }
+ {
+ \RequirePackage { lscapeenhanced }
+ }
+ \bool_gset_true:N \@@_lscape_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { lscapeenhanced }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { lscape=false } { lscapeenhanced }
+ }
+ {
+ \bool_if:NT \@@_lscape_bool
+ {
+ \hook_gremove_code:nn { package/lscape/after }
+ { scrhack }
+ }
+ \bool_gset_false:N \@s@_lscape_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { lscape }
+ }
+ }
+\SetKeys{lscape=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{nomencl.hak}}
+%
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ nomencl .code = \@@_switch_nomencl:n { #1 },
+ nomencl .default:n = true,
+ nomencl .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_nomencl:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has been
+% needed for \pkg{nomencl} versions released before 2019-01-23. So updating
+% the package would be the better \emph{hack}. So emulating the hack does not
+% make sense. Instead the initial value of the option is changed to implicit
+% \optvalue{false} and switching it on explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_nomencl:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { nomencl=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { nomencl=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { nomencl }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+%
+% \subsection{Emulating \file{setspace.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ setspace .code = \@@_switch_setspace:n { #1 },
+ setspace .default:n = true,
+ setspace .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_setspace:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{setspace=true}, if package \pkg{setspaceenhanced} already has been loaded
+% isn't a foul. So we just write an information to the \file{log}. But using
+% \opt{setspace=false}, if package \pkg{setspaceenhanced} already has been loaded
+% may be wrong. So we use a warning message. We also warn if a not allowed
+% value is used.
+% \begin{macrocode}
+\bool_new:N \@@_setspace_bool
+
+\cs_new:Nn \@@_switch_setspace:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { setspaceenhanced }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { setspace = true } { setspaceenhanced }
+ }
+ {
+ \bool_if:NF \@@_setspace_bool
+ {
+ \hook_gput_code:nnn { package/setspace/after } { scrhack }
+ {
+ \exp_last_unbraced:Ne \RequirePackage
+ {
+ [ \use:c { @raw@opt@setspace.sty },
+ byselectfont,
+ keepfontsize ]
+ }
+ { setspaceenhanced }
+ }
+ \bool_gset_true:N \@@_setspace_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { setspaceenhanced }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { setspace=false } { setspaceenhanced }
+ }
+ {
+ \bool_if:NT \@@_setspace_bool
+ {
+ \hook_gremove_code:nn { package/setspace/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_setspace_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { setspace }
+ }
+ }
+\SetKeys{setspace=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{standardsectioning.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ standardsections .code = \@@_switch_standardsectioning:n { #1 },
+ standardsections .default:n = true,
+ standardsections .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_standardsectioning:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{standardsectioning=true}, if package \pkg{standardsectioning}
+% already has been loaded isn't a foul. So we just write an information to the
+% \file{log}. But using \opt{standardsectioning=false}, if package
+% \pkg{standardsectioning} already has been loaded may be wrong. So
+% we use a warning message. We also warn if a not allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_standardsectioning_bool
+
+\cs_new:Nn \@@_switch_standardsectioning:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { standardsectioning }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { standardsectioning = true } { standardsectioning }
+ }
+ {
+ \bool_if:NF \@@_standardsectioning_bool
+ {
+ \str_set:Nx \l_tmpa_str { \cs_meaning:N \normalsize }
+ \str_if_in:NnTF
+ \l_tmpa_str
+ { \@latex@error }
+ {
+ \hook_gput_code:nnn { class/after } { scrhack }
+ {
+ \RequirePackage { standardsectioning }
+ \exp_args:Nnnx \hook_gput_code:nnn
+ { begindocument/before } { scrhack }
+ {
+ \exp_not:N \cs_gset:Npn
+ \exp_after:wN \exp_not:N
+ \cs:w ver@standardsectioning.sty \cs_end:
+ {
+ \cs:w ver@standardsectioning.sty \cs_end:
+ }
+ }
+ \cs_undefine:c { var@standardsectioning.sty }
+ }
+ \bool_gset_true:N \@@_standardsectioning_bool
+ }
+ {
+ \RequirePackage{ standardsectioning }
+ \bool_gset_false:N \@@_standardsectioning_bool
+ }
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { standardsectioning }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { standardsectioning=false } { standardsectioning }
+ }
+ {
+ \bool_if:NT \@@_standardsectioning_bool
+ {
+ \hook_gremove_code:nn { class/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_standardsectioning_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { standardsectioning }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+%
+%
+% \subsection{Processing the options}
+% Last but not least, we set the defaults and process the options.
+% \begin{macrocode}
+\ExplSyntaxOff
+\ProcessKeyOptions\relax
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+% \PrintChanges
+%
+% \endinput
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End:
diff --git a/macros/latex/contrib/scrhack/scrhack.pdf b/macros/latex/contrib/scrhack/scrhack.pdf
new file mode 100644
index 0000000000..7766207b57
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/CHANGELOG.md b/macros/latex/contrib/se2thesis/CHANGELOG.md
index 2d81b57f6f..956b208500 100644
--- a/macros/latex/contrib/se2thesis/CHANGELOG.md
+++ b/macros/latex/contrib/se2thesis/CHANGELOG.md
@@ -7,6 +7,35 @@ and this project adheres to
## [Unreleased]
+## [v4.4.0] – 2024–10–18
+
+### Added
+
+- `se2thesis` is now also available from
+ [`MonsterWriter`](https://www.monsterwriter.com),
+ a tool that aims for easy writing of academic works. We mention this in the
+ documentation and also link their website and a YouTube video that
+ demonstrates the usage of `se2thesis` within `MonsterWriter`.
+
+### Fixed
+
+- Increase the `marginparsep` slightly to avoid that two-digit counter values
+ run into the text block.
+
+## [v4.3.4] – 2024–09–19
+
+### Fixed
+
+- Align logo on the right side regardless of the logo size (#22), thanks to
+ @wolfoo2931
+
+## [v4.3.3] – 2024–09–18
+
+### Added
+
+- Load the `mismath` package before the `unicode-math` package, which is
+ recommended according to `mismath`'s documentation.
+
## [v4.3.2] – 2024–08–12
### Fixed
@@ -267,7 +296,10 @@ These changes might be breaking changes!
### Added
- First official release
-[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.3.2...HEAD
+[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.4.0...HEAD
+[v4.4.0]: https://github.com/se2p/se2thesis/compare/v4.4.0...v4.3.4
+[v4.3.4]: https://github.com/se2p/se2thesis/compare/v4.3.4...v4.3.3
+[v4.3.3]: https://github.com/se2p/se2thesis/compare/v4.3.3...v4.3.2
[v4.3.2]: https://github.com/se2p/se2thesis/compare/v4.3.2...v4.3.1
[v4.3.1]: https://github.com/se2p/se2thesis/compare/v4.3.1...v4.3.0
[v4.3.0]: https://github.com/se2p/se2thesis/compare/v4.3.0...v4.2.0
diff --git a/macros/latex/contrib/se2thesis/se2colors.dtx b/macros/latex/contrib/se2thesis/se2colors.dtx
index 7b0b5d81f7..0e0c0260b2 100644
--- a/macros/latex/contrib/se2thesis/se2colors.dtx
+++ b/macros/latex/contrib/se2thesis/se2colors.dtx
@@ -231,7 +231,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2colors} {2024-08-12} {4.3.2}
+\ProvidesExplPackage {se2colors} {2024-10-16} {4.4.0}
{A colour support package for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2fonts.dtx b/macros/latex/contrib/se2thesis/se2fonts.dtx
index 5ede585b75..610d871cf4 100644
--- a/macros/latex/contrib/se2thesis/se2fonts.dtx
+++ b/macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -151,7 +151,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2fonts} {2024-08-12} {4.3.2}
+\ProvidesExplPackage {se2fonts} {2024-10-16} {4.4.0}
{A font-selection support package for the se2thesis bundle}
% \end{macrocode}
%
@@ -214,6 +214,12 @@
%
% \subsection{Font loading}
%
+% Load the \pkg{mismath} package, which itself loads \pkg{mathtools} and
+% transitively \pkg{amsmath} \emph{before} \pkg{unicode-math}.
+% \begin{macrocode}
+\RequirePackage{mismath}
+% \end{macrocode}
+%
% Depending on the engine used by the user,
% we can use \pkg{fontspec} for loading fonts.
% \begin{macrocode}
diff --git a/macros/latex/contrib/se2thesis/se2packages.dtx b/macros/latex/contrib/se2thesis/se2packages.dtx
index 3ad8d99b0a..b009e1a304 100644
--- a/macros/latex/contrib/se2thesis/se2packages.dtx
+++ b/macros/latex/contrib/se2thesis/se2packages.dtx
@@ -472,7 +472,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2packages} {2024-08-12} {4.3.2}
+\ProvidesExplPackage {se2packages} {2024-10-16} {4.4.0}
{Supporting packages for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
index 4d224fe981..dd2413d458 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx
index 6d29f97482..4bd04fdcba 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.dtx
+++ b/macros/latex/contrib/se2thesis/se2thesis.dtx
@@ -144,6 +144,19 @@
% available from some time in autumn 2024. We will update this documentation
% accordingly, as soon as the new version is available.
%
+%\subsection{Availability in MonsterWriter}\label{sec:doc-intro-mosterwriter}
+%
+% Since October 2024, \pkg{se2thesis} is also part of \textsc{MonsterWriter},
+% a graphical tool that assists students to write academic papers. The
+% \textsc{MonsterWriter} GUI allows to focus on the content of a work and allows
+% to export it in various common publisher styles and formats.
+%
+% The \textsc{MonsterWriter} website
+% \href{https://www.monsterwriter.com}{monsterwriter.com} provides more details
+% on the tool, and a YouTube video
+% (\href{https://youtube.com/watch?v=BWOumwmh18g}{youtu.be/BWOumwmh18g})
+% demonstrates some of the features of their \pkg{se2thesis} integration.
+%
% \subsection{General Macros}\label{sec:doc-intro-macros}
%
% They all have in common one macro, \cs{IfFormatAtLeastTF};
@@ -654,7 +667,7 @@
%
% Identify the class and give the overall version number.
% \begin{macrocode}
-\ProvidesExplClass {se2thesis} {2024-08-12} {4.3.2}
+\ProvidesExplClass {se2thesis} {2024-10-16} {4.4.0}
{A thesis class for the Chair of Software Engineering II}
% \end{macrocode}
%
@@ -1039,11 +1052,11 @@
{
\areaset[current]{350pt}{567pt}
\setlength{\marginparsep}{8.5cm}
- \setlength{\marginparsep}{1em}
+ \setlength{\marginparsep}{1.5em}
}{
\areaset[current]{350pt}{567pt}
\setlength{\marginparsep}{7.4cm}
- \setlength{\marginparsep}{0.87em}
+ \setlength{\marginparsep}{1.5em}
}
% \end{macrocode}
%
@@ -1171,10 +1184,9 @@
\DeclareNewLayer[
mode=picture,
foreground,
- align=tr,
- hoffset=\oddsidemargin+1.5in+\textwidth,
+ hoffset=\paperwidth-\coverpagerightmargin-\box_wd:N \l_@@_logo_box,
voffset=\coverpagetopmargin+1.5in+\ht\strutbox,
- width=\textwidth - \box_wd:N \l_@@_logo_box,
+ width=\box_wd:N \l_@@_logo_box,
height=\box_ht:N \l_@@_logo_box,
contents={\putUL{\box_use:N \l_@@_logo_box}},
]{title.seii.logo}
@@ -1731,7 +1743,7 @@
% We provide the following English translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{English}{se2translations}[2024/08/12]
+\ProvideDictionaryFor{English}{se2translations}[2024/10/16]
\ProvideDictTranslation{abstract}{abstract}
\ProvideDictTranslation{Abstract}{Abstract}
\ProvideDictTranslation{acknowledgement}{acknowledgement}
@@ -1782,7 +1794,7 @@
% We provide the following German translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{German}{se2translations}[2024/08/12]
+\ProvideDictionaryFor{German}{se2translations}[2024/10/16]
\ProvideDictTranslation{abstract}{Zusammenfassung}
\ProvideDictTranslation{Abstract}{Zusammenfassung}
\ProvideDictTranslation{acknowledgement}{Danksagung}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf
index e37c07abf4..dd92d95e95 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/sidenotes/caesar_book.cls b/macros/latex/contrib/sidenotes/caesar_book.cls
index 685f736aef..c1f24a16ad 100644
--- a/macros/latex/contrib/sidenotes/caesar_book.cls
+++ b/macros/latex/contrib/sidenotes/caesar_book.cls
@@ -1,20 +1,13 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{caesar_book.cls}[2020/03/24 v1.00a Caesar book]
-% Load the amsmath and the mhchem package before loading microtype
-\RequirePackage{amsmath}% better math handling
-\RequirePackage[version=3]{mhchem}% chemical formulas
+\ProvidesFile{caesar_book.cls}[2024/09/12 v1.20 Caesar book]
\LoadClassWithOptions{book}% this is derived from the book class
\RequirePackage{sidenotes}% put annotations, tables and figures in the margin
-\captionsetup{font=footnotesize, skip=4pt}
-\RequirePackage[maxfloats=45]{morefloats}% a lot of marginals need more float 'memory'
+\captionsetup{font=footnotesize, skip=4pt} % use values matching the style
+\extrafloats{45}% a lot of marginals need more float 'memory'
\RequirePackage{marginfix}% automatically adjust the side-floats nicely
-\newcommand{\caesar@letterspace}[1]{#1}% allow LuaLaTeX, LaTeX letterspacing
\RequirePackage{microtype}% microtypography
-\@ifpackagelater{microtype}{2011/08/18}% xxx allow LaTeX and earlier microtype
-{\renewcommand{\caesar@letterspace}[1]{\textls{#1}}}%
-{\AtEndDocument{\ClassWarningNoLine{caesar_book}{Need newest microtype for letterspacing.}}}
%
-% Set page layout geometry -- default is science-book format
+% Set page layout geometry - default is science-book format
% this means a (portrait) paper size of 170mm x 240mm
%
\RequirePackage{geometry}
@@ -24,7 +17,9 @@
%
\renewcommand{\normalsize}{\fontsize{10pt}{13pt}\selectfont}%
\renewcommand{\footnotesize}{\fontsize{8pt}{10pt}\selectfont}%
-% fullwidth environment, text across textwidth+marginparsep+marginparwidth
+%
+% fullwidth environment, text across textwidth + marginparsep + marginparwidth
+%
\newlength{\overhang}
\setlength{\overhang}{\marginparwidth}
\addtolength{\overhang}{\marginparsep}
@@ -38,7 +33,9 @@
{\end{adjustwidth*}}%
{\end{adjustwidth}}%
}
+%
% set up the fonts
+%
\RequirePackage{ifluatex}
\ifluatex% in LuaLateX we use fontspec
\RequirePackage{fontspec}%
@@ -47,14 +44,15 @@
\setmainfont[Ligatures=TeX, Numbers=OldStyle]{Tex Gyre Pagella}% free Palatino clone
\setmonofont{Tex Gyre Cursor}% works okay with palatino
\setsansfont{Tex Gyre Heros}% work okay with palatino
- \mhchemoptions{textfontcommand=\addfontfeature{Numbers=Lining}} % use lining numbers for chemical formulas
\else% in LaTeX we load fonts differently
\IfFileExists{mathpazo.sty}{\RequirePackage[osf,sc]{mathpazo}}{}% palatino clone for math
\IfFileExists{helvet.sty}{\RequirePackage[scaled=0.90]{helvet}}{}% helvetica is sans serif font
\IfFileExists{beramono.sty}{\RequirePackage[scaled=0.85]{beramono}}{}% beramono is tt font
\RequirePackage[T1]{fontenc}% finally load fontenc
\fi
-% nice headings and TOC
+%
+% nice headings, TOC, page numbering ...
+%
\RequirePackage{titlesec,titletoc}% load the helper package
\setcounter{secnumdepth}{-1}% no numbering at all
\titleformat{\chapter}[display]{\relax\itshape\huge}{}{0pt}{\huge\rmfamily\itshape}[]% chapter format
@@ -75,7 +73,7 @@
\renewcommand{\headrulewidth}{0pt}% The running heads and feet do not have rules
\renewcommand{\footrulewidth}{0pt}
\fancyhf{}% set up the page numbering
-{\fancyfoot[LE,RO]{\thepage}}
+\fancyfoot[LE,RO]{\thepage}
\fancypagestyle{plain}{%
\fancyhf{}
}
@@ -87,14 +85,13 @@
\@savemarbox\@marbox{\marginparstyle#1}% marginparstyle is a prefix to the marginpar text now
\global\setbox\@currbox\copy\@marbox % the rest of the definition is taken from original LaTeX
\@xympar}
-\renewcommand*{\marginfont}{\marginparstyle}
+\@ifpackageloaded{marginnote}{\renewcommand*{\marginfont}{\marginparstyle}}{} % adjust marginnote font in the same way
% setup itemize and enumerate
\RequirePackage{enumitem}
\setlist[itemize]{leftmargin=*}
-%\renewcommand{\labelitemi}{}
-% compatibility with T-L
%
% titlepage
+%
\RequirePackage{ifthen}
\newcommand{\publisher}[1]{\gdef\caesar@publisher{#1}}
\gdef\caesar@thesis{}
@@ -106,7 +103,7 @@
% first count the number of lines in the title
\begin{fullwidth}
\raggedright%
- \setbox0\vbox{\noindent\fontsize{30}{38}\selectfont\caesar@letterspace{\MakeTextUppercase{\@title}}\par
+ \setbox0\vbox{\noindent\fontsize{30}{38}\selectfont\textls{\MakeTextUppercase{\@title}}\par
\count@\z@
\loop
\unskip\unpenalty\unskip\unpenalty\unskip
@@ -124,12 +121,12 @@
\sffamily%
%\begin{fullwidth}%
\vspace*{0em}% one line extra space
- \noindent\LARGE\caesar@letterspace{\MakeTextUppercase{\@author}}\par
+ \noindent\LARGE\textls{\MakeTextUppercase{\@author}}\par
\vfill%
- \noindent\fontsize{30}{38}\selectfont\textcolor{darkgray}{\caesar@letterspace{\MakeTextUppercase{\@title}}}\par
+ \noindent\fontsize{30}{38}\selectfont\textcolor{darkgray}{\textls{\MakeTextUppercase{\@title}}}\par
\vfill%
\vspace{\caesar@titlespace}%
- \noindent\Large\caesar@letterspace{\MakeTextUppercase{\caesar@publisher}}\par
+ \noindent\Large\textls{\MakeTextUppercase{\caesar@publisher}}\par
%\end{fullwidth}%
}%
\thispagestyle{empty}%
@@ -146,6 +143,9 @@
\section*{\caesar@thesis\@author}
%
}
+%
+% higher level macros go here
+%
\newcommand\newthought[1]{%
\addvspace{1.0\baselineskip plus 0.5ex minus 0.2ex}%
\noindent\textsc{#1}%
diff --git a/macros/latex/contrib/sidenotes/caesar_example.pdf b/macros/latex/contrib/sidenotes/caesar_example.pdf
index ddf07bf4e2..c49cb0a63d 100644
--- a/macros/latex/contrib/sidenotes/caesar_example.pdf
+++ b/macros/latex/contrib/sidenotes/caesar_example.pdf
Binary files differ
diff --git a/macros/latex/contrib/sidenotes/caesar_example.tex b/macros/latex/contrib/sidenotes/caesar_example.tex
index c0f11de77c..fd6fb8e484 100644
--- a/macros/latex/contrib/sidenotes/caesar_example.tex
+++ b/macros/latex/contrib/sidenotes/caesar_example.tex
@@ -10,24 +10,25 @@
%
\begin{filecontents}{\jobname.bib}
@book{Tufte2006,
- author = {Edward R. Tufte},
- title = {Beautiful Evidence},
- year = {2006},
- publisher = {Graphics Press, {LLC}},
- isbn = {0-9613921-7-7}
+ author = {Edward R. Tufte},
+ title = {Beautiful Evidence},
+ year = {2006},
+ publisher = {Graphics Press, {LLC}},
+ isbn = {0-9613921-7-7}
}
@book{Tufte1990,
- author = {Edward R. Tufte},
- title = {Envisioning Information},
- publisher = {Graphics Press},
- year = {1990},
- isbn = {0-9613921-1-8}
+ author = {Edward R. Tufte},
+ title = {Envisioning Information},
+ publisher = {Graphics Press},
+ year = {1990},
+ isbn = {0-9613921-1-8}
}
\end{filecontents}
% -- language: English --
%
+\usepackage{csquotes}
\usepackage[english]{babel}
% -- biblatex --
\usepackage[backend=biber,style=philosophy-classic]{biblatex} % xxx
diff --git a/macros/latex/contrib/sidenotes/sidenotes.dtx b/macros/latex/contrib/sidenotes/sidenotes.dtx
index 7c67ad4fd1..709a8a5e32 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.dtx
+++ b/macros/latex/contrib/sidenotes/sidenotes.dtx
@@ -2,7 +2,7 @@
%
% sidenotes.dtx
%
-% Copyright (C) 2011-2020 by Andy Thomas <andythomas(at)web.de>
+% Copyright (C) 2011-2024 by Andy Thomas <andythomas(at)web.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -11,17 +11,17 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% The author of this work is Andy Thomas
%
%<*driver>
-\ProvidesFile{sidenotes.dtx}[2016/04/21 v1.00 rich text in the margin for LaTeX]%
+\ProvidesFile{sidenotes.dtx}[2024/09/12 v1.20 Rich text in the margin for LaTeX]%
%</driver>
%<package>\RequirePackage{l3keys2e}%
-%<package>\ProvidesExplPackage{sidenotes}{2016/04/21}{1.00}{rich text in the margin for LaTeX}
-%<package>\RequirePackage{marginnote} % provides an offset option for the marginals instead of a float
-%<package>\RequirePackage{caption} % handles the captions (in the margin)
-%<package>\RequirePackage{xparse} % new LaTeX3 syntax to define macros and environments
+%<package>\ProvidesExplPackage{sidenotes}{2024/09/12}{1.20}{Rich text in the margin for LaTeX}
+%<package>\RequirePackage{marginnote} % Provides an offset option for the marginals instead of a float
+%<package>\RequirePackage{caption} % Handles the captions (in the margin)
+%<package>\RequirePackage{xparse} % New LaTeX3 syntax to define macros and environments
%<package>\RequirePackage[strict]{changepage} % Changepage package for symmetric twoside handling
%<*driver>
\documentclass{ltxdoc}
@@ -54,10 +54,10 @@
%
%
% \GetFileInfo{sidenotes.dtx}
-%
+%
%
% \title{The \textsf{sidenotes} package\thanks{This document
-% corresponds to \textsf{sidenotes}~\fileversion, dated \filedate.
+% corresponds to \textsf{sidenotes}~\fileversion, dated \filedate.
% Earlier versions by Oliver Schebaum.}}
% \author{Andy Thomas\\ \texttt{andythomas(at)web.de}}
%
@@ -74,9 +74,9 @@
% \changes{v1.00}{2016/04/21}{no changes, tag v1.0}
%
% \begin{abstract}
-% \noindent This package allows the typesetting of rich content in the margin.
+% \noindent This package allows the typesetting of rich content in the margin.
% It includes text, but also figures, captions, tables and citations,
-% which is common in science textbooks such as Feynman's
+% which is common in science textbooks such as Feynman's
% \textit{Lectures on Physics}.
% \end{abstract}
%
@@ -91,99 +91,99 @@
% \DescribeMacro{\sidenote}
% The macro is very similar to the footnote macro and tries to emulate
% its behavior. It just puts the notes in the margin instead of the bottom
-% of the page, therefore the name \emph{sidenote}. It has the same parameters
+% of the page, therefore the name \emph{sidenote}. It has the same parameters
% as footnote as well as an additional offset:
-% \verb+\sidenote[number][offset]{text}+. All the sidenotes are subsequently
-% numbered and float in the margin to avoid overlap.
+% \verb+\sidenote[number][offset]{text}+. All the sidenotes are subsequently
+% numbered and float in the margin to avoid overlap.
% The first, optional parameter will manually change the numbering to the given
-% value. The second offset parameter will fix the text at a certain position
-% in the margin. In particular, there is a difference between not providing an
+% value. The second offset parameter will fix the text at a certain position
+% in the margin. In particular, there is a difference between not providing an
% offset (floating text) and an offset of 0 (fix text at actual position).
%
-% \DescribeMacro{\sidenotemark}
-% Sidenote tries to mimic the footnote behavior and, consequently, provides the
-% same solutions. Sometimes, it is not possible to directly call a sidenote
-% macro, e.g.\ inside of a figure caption. Then, you can use
-% \verb+\sidenotemark[number]+ and \verb+\sidenotetext[number][offset]{text}+
-% macros. \verb+\sidenotemark+ puts a mark at the current position. Afterwards,
-% outside of the environment that causes the trouble,
+% \DescribeMacro{\sidenotemark}
+% Sidenote tries to mimic the footnote behavior and, consequently, provides the
+% same solutions. Sometimes, it is not possible to directly call a sidenote
+% macro, e.g.\ inside of a figure caption. Then, you can use
+% \verb+\sidenotemark[number]+ and \verb+\sidenotetext[number][offset]{text}+
+% macros. \verb+\sidenotemark+ puts a mark at the current position. Afterwards,
+% outside of the environment that causes the trouble,
% \DescribeMacro{\sidenotetext}
-% it is possible the call \verb+\sidenotetext[number][offset]{text}+ to provide
-% the text and typeset the sidenote. The optional parameters are similar to the
-% sidenote macro. The first, optional parameter will change the numbering and
+% it is possible the call \verb+\sidenotetext[number][offset]{text}+ to provide
+% the text and typeset the sidenote. The optional parameters are similar to the
+% sidenote macro. The first, optional parameter will change the numbering and
% the offset will change the position.
%
% \changes{v0.61}{2011/10/17}{documentation of sidetext}
%
%\DescribeMacro{\sidecaption}
-% The \verb+\sidecaption[entry][offset]{text}+ macro can be used if the caption
-% of a figure or table should be in the margin. The caption has to be adjacent
-% to the figure, so a float is not an option here. Therefore, the caption might
+% The \verb+\sidecaption[entry][offset]{text}+ macro can be used if the caption
+% of a figure or table should be in the margin. The caption has to be adjacent
+% to the figure, so a float is not an option here. Therefore, the caption might
% overlap with other marginals. Then, these marginals have to be adjusted with
% offset parameters. The formatting of the caption is done by the \emph{caption}
-% package by defining a \emph{sidecaption} style. Please refer to the
+% package by defining a \emph{sidecaption} style. Please refer to the
% documentation of the caption package for information on styles. The macro can
-% be starred, which is analog to the regular starred caption (no numbering, no
+% be starred, which is analog to the regular starred caption (no numbering, no
% tof entry): \verb+\sidecaption*[offset]{text}+.
%
% \DescribeEnv{marginfigure}
-% The marginfigure environment puts a figure and its caption in the margin.
-% Instead of \verb+\begin{figure}[htbp]+ use \verb+\begin{marginfigure}[offset]+.
-% Again, using an offset value switches the behavior from float to fixed
-% position. The marginfigure has its own caption style named \emph{marginfigure}.
+% The marginfigure environment puts a figure and its caption in the margin.
+% Instead of \verb+\begin{figure}[htbp]+ use \verb+\begin{marginfigure}[offset]+.
+% Again, using an offset value switches the behavior from float to fixed
+% position. The marginfigure has its own caption style named \emph{marginfigure}.
%
% \DescribeEnv{margintable}
-% The margintable environment works similar to marginfigure, but with table
-% environments. Use \verb+\begin{margintable}[offset]+ instead of
+% The margintable environment works similar to marginfigure, but with table
+% environments. Use \verb+\begin{margintable}[offset]+ instead of
% \verb+\begin{table}[htbp]+, its caption style is named \emph{margintable}.
%
% \DescribeEnv{figure*}
-% The \verb+figure*+ environment is used to position figures across the full
+% The \verb+figure*+ environment is used to position figures across the full
% page, i.e. the text width plus the margin. The algorithm has to distinguish
% between recto and verso (left and right) pages and might need up to three
% \LaTeX{} runs to provide the desired result. The corresponding caption style
-% is called \emph{widefigure}.
+% is called \emph{widefigure}.
% \DescribeEnv{table*}
-% The sister environment for tables is \verb+table*+. Use \emph{widetable} to
-% change its caption style.
+% The sister environment for tables is \verb+table*+. Use \emph{widetable} to
+% change its caption style.
%
% \section{Technical note}
%
-% When writing the package, we tried to provide a \emph{minimum} extension to
+% When writing the package, we tried to provide a \emph{minimum} extension to
% standard \LaTeX{} for typesetting rich content in the margin. This means,
% that there are no sensible default values for most things such as page
-% geometry, fonts and font sizes. However, the \emph{caesar\textunderscore
-% book}-class accompanies this package as an example implementation as well
-% as a template we use for our theses.
-%
-% In addition, we tried to keep compatibility with
-% packages the user might want to use later. However, the following packages
-% are needed by \emph{sidenotes} and might introduce side effects with other
+% geometry, fonts and font sizes. However, the \emph{caesar\textunderscore
+% book}-class accompanies this package as an example implementation as well
+% as a template we use for our theses.
+%
+% In addition, we tried to keep compatibility with
+% packages the user might want to use later. However, the following packages
+% are needed by \emph{sidenotes} and might introduce side effects with other
% packages.
%
% \section{Required packages}
-%
+%
% \changes{v0.52}{2011/10/06}{added a section that the package needs marginnote, caption and xifthen.}
% \changes{v0.90}{2012/06/02}{added a section that the package needs twoopt and changepage.}
-% \changes{v0.94}{2014/01/22}{start using xparse}
-% \changes{v0.97}{2014/06/05}{start using l3keys2e}
+% \changes{v0.94}{2014/01/22}{start using xparse}
+% \changes{v0.97}{2014/06/05}{start using l3keys2e}
%
% \begin{description}
% \item[marginnote]
-% supports an alternative to \verb+\marginpar+ and creates notes in the
-% margin. The notes are not floats and can be shifted up or down.
-% Technically, every time an offset is provided the package uses
+% supports an alternative to \verb+\marginpar+ and creates notes in the
+% margin. The notes are not floats and can be shifted up or down.
+% Technically, every time an offset is provided the package uses
% \verb+\marginnote+ and \verb+\marginpar+ otherwise.
% \item[caption]
-% allows to set figure and table captions in the margin and allows
-% easier formatting of these captions. Please refer to the
-% \emph{caption} manual for details on styles.
+% allows to set figure and table captions in the margin and allows
+% easier formatting of these captions. Please refer to the
+% \emph{caption} manual for details on styles.
% \item[xparse] is used to take advantage of the improved \LaTeX3 syntax.
% All macros and environments are defined using this package.
-% \item[l3keys2e] provides a key/value mechanism
-% \item[changepage] is used to correctly shift figure* and table*. It has
-% to use the option [strict] to work properly. This might lead to an
-% option clash, if the same package is loaded without this option.
+% \item[l3keys2e] provides a key/value mechanism
+% \item[changepage] is used to correctly shift figure* and table*. It has
+% to use the option [strict] to work properly. This might lead to an
+% option clash, if the same package is loaded without this option.
% \end{description}%
%
% \section{Implementation}
@@ -192,39 +192,41 @@
%<*package>
% \fi
%
-% Process the package options: onside
+% Process the package options: onside
%
% \begin{macrocode}
-\ExplSyntaxOn
+\ExplSyntaxOn
%
\keys_define:nn { sidenotes }
{
- oneside .bool_set:N = \sidenotes_oneside
+ oneside .bool_set:N = \sidenotes_oneside
}
\ProcessKeysOptions { sidenotes }
% \end{macrocode}
%
% \changes{v0.91}{2012/06/03}{sidenotetextstyle is not needed any more}
-% \changes{v0.94}{2014/01/22}{change sidenote counter behavior}
+% \changes{v0.94}{2014/01/22}{change sidenote counter behavior}
%
% We need a counter similar to the footnote counter.
%
% \begin{macrocode}
-\newcounter{sidenote} % make a counter
-\setcounter{sidenote}{1} % init the counter
+\newcounter{sidenote} % make a counter
+\setcounter{sidenote}{1} % init the counter
% \end{macrocode}
-%
-% \noindent The \LaTeX3 parts concerning the optional arguments should not
-% distinguish between an empty bracket pair and no optional
-% argument. This is required to keep macros with two leading
+%
+% \noindent The \LaTeX3 parts concerning the optional arguments should not
+% distinguish between an empty bracket pair and no optional
+% argument. This is required to keep macros with two leading
% optional arguments.
%
+% \changes{v1.20}{2024/09/12}{Allow long arguments.}
+%
% \begin{macrocode}
-\DeclareExpandableDocumentCommand{\IfNoValueOrEmptyTF}{ m m m }
+\DeclareExpandableDocumentCommand{\IfNoValueOrEmptyTF}{ m +m +m }
{
\IfNoValueTF{#1}
- {#2}
- {\tl_if_empty:nTF {#1} {#2} {#3}}
+ {#2}
+ {\tl_if_empty:nTF {#1} {#2} {#3}}
}
% \end{macrocode}
%
@@ -237,28 +239,28 @@
% \begin{macrocode}
\NewDocumentCommand \@sidenotes@thesidenotemark { m }
{
- \leavevmode
- \ifhmode
+ \leavevmode
+ \ifhmode
\edef \@x@sf {\the \spacefactor }
- \nobreak
- \fi
- \hbox {\@textsuperscript {\normalfont #1 }}
- \ifhmode
- \spacefactor \@x@sf
- \fi
+ \nobreak
+ \fi
+ \hbox {\@textsuperscript {\normalfont #1 }}
+ \ifhmode
+ \spacefactor \@x@sf
+ \fi
\relax
}
%
\NewDocumentCommand \@sidenotes@multisign { } {3sp}
%
-\NewDocumentCommand \@sidenotes@multimarker { }
+\NewDocumentCommand \@sidenotes@multimarker { }
{
\kern-\@sidenotes@multisign
- \kern\@sidenotes@multisign\relax
+ \kern\@sidenotes@multisign\relax
}
%
-\NewDocumentCommand \@sidenotes@multichecker { }
-{
+\NewDocumentCommand \@sidenotes@multichecker { }
+{
\dim_compare:nNnTF \lastkern = \@sidenotes@multisign
{\@sidenotes@thesidenotemark{,}}
{}
@@ -269,33 +271,35 @@
% \changes{v0.97}{2014/05/27}{introduce an internal macro to place the marginal text}
%
% \noindent Introduce an internal macro to place the marginal text. Use
-% margin note in case an offset is given and marginpar otherwise.
+% margin note in case an offset is given and marginpar otherwise.
+%
+% \changes{v1.20}{2024/09/12}{Allow long arguments.}
%
% \begin{macrocode}
-\NewDocumentCommand \@sidenotes@placemarginal { m m }
-{
+\NewDocumentCommand \@sidenotes@placemarginal { +m +m }
+{
\IfNoValueOrEmptyTF{#1}
- {\marginpar{#2}}
- {\marginnote{#2}[#1]}
+ {\marginpar{#2}}
+ {\marginnote{#2}[#1]}
}
%
% \end{macrocode}
%
% \begin{macro}{\sidenote}
-%
-% Introduce the \verb+\sidenote+ macro with two optional
+%
+% Introduce the \verb+\sidenote+ macro with two optional
% arguments to set the number and the offset.
%
% \changes{v0.53}{2011/10/07}{bugfix, now optional number and offset possible}
% \changes{v0.80}{2011/11/10}{unstar the newcommand.}
-% \changes{v0.81}{2011/11/29}{added a comma between subsequent sidenotes}
-% \changes{v0.90}{2012/06/02}{add optional offset for sidenote}
+% \changes{v0.81}{2011/11/29}{added a comma between subsequent sidenotes}
+% \changes{v0.90}{2012/06/02}{add optional offset for sidenote}
% \changes{v0.93}{2012/04/17}{removed mandatory whitespace, new ifnextchar takes care of that}
% \changes{v0.94}{2014/01/11}{use xparse syntax}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenote { o o +m }
-{
+\NewDocumentCommand \sidenote { o o +m }
+{
\sidenotemark[#1]
\sidenotetext[#1][#2]{#3}
\@sidenotes@multimarker
@@ -311,8 +315,8 @@
% \changes{v0.96}{2014/02/14}{increase the sidenote counter in sidenotetext now}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenotemark { o }
-{
+\NewDocumentCommand \sidenotemark { o }
+{
\@sidenotes@multichecker
\IfNoValueOrEmptyTF{#1}
{\@sidenotes@thesidenotemark{\thesidenote}}
@@ -324,7 +328,7 @@
%
% \begin{macro}{\sidenotetext}
%
-% Sidenotetext is supposed to work similarly to footnotetext. The additional,
+% Sidenotetext is supposed to work similarly to footnotetext. The additional,
% optional argument sets the offset.
%
% \changes{v0.80}{2011/11/10}{unstar the newcommand.}
@@ -333,10 +337,10 @@
% \changes{v0.94}{2014/01/11}{use xparse syntax, change counter behavior}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenotetext { o o +m }
-{
+\NewDocumentCommand \sidenotetext { o o +m }
+{
\IfNoValueOrEmptyTF{#1}
- {
+ {
\@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}
\refstepcounter{sidenote}
}
@@ -348,18 +352,18 @@
% \begin{macro}{\sidecaption}
%
% \changes{v0.91}{2012/06/03}{sidecaption* accompanies sidecaption}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% Sidecaption puts the caption in the margin. It never floats with the other
+% Sidecaption puts the caption in the margin. It never floats with the other
% text in the margin, since it has to be next to the figure.
% Sidecaption* works similarly to sidecaption, but without an entry.
%
% \begin{macrocode}
\DeclareCaptionStyle{sidecaption}{font=footnotesize}
-\NewDocumentCommand \sidecaption {s o o m}
-{
+\NewDocumentCommand \sidecaption {s o o m}
+{
\captionsetup{style=sidecaption}
- \IfBooleanTF{#1}
+ \IfBooleanTF{#1}
{ % starred
\IfNoValueOrEmptyTF{#2}
{\marginnote{\caption*{#4}}}
@@ -381,15 +385,15 @@
%
% \changes{v0.3}{2011/09/29}{define the sidefigure enviroment without the environ package}
% \changes{v0.90}{2012/06/02}{the optional offset parameter is back, renamed environment from sidefigure to marginfigure}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% The marginfigure environment is similar to the figure environment. But the
+% The marginfigure environment is similar to the figure environment. But the
% figure is put in the margin.
%
% \begin{macrocode}
\newsavebox{\@sidenotes@marginfigurebox}
\DeclareCaptionStyle{marginfigure}{font=footnotesize}
-\NewDocumentEnvironment{marginfigure} { o }
+\NewDocumentEnvironment{marginfigure} { o }
{
\begin{lrbox}{\@sidenotes@marginfigurebox}
\begin{minipage}{\marginparwidth}
@@ -407,9 +411,9 @@
%
% \changes{v0.4}{2011/09/30}{define the sidetable enviroment without the environ package}
% \changes{v0.90}{2012/06/02}{the optional offset parameter is back, renamed environment from sidetable to margintable}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% The margintable is similar to the table environment. But the table
+% The margintable is similar to the table environment. But the table
% is put in the margin.
%
% \begin{macrocode}
@@ -433,11 +437,12 @@
%
% \changes{v0.85}{2011/06/01}{added the figure* environment}
% \changes{v0.97}{2014/05/27}{use adjustwidth in figure* environment}
+% \changes{v1.10}{2020/04/05}{address issue with figures across the full width}
%
-% The figure* environment provides a figure environment for figures that
+% The figure* environment provides a figure environment for figures that
% span across the full page (text plus margin width).
%
-% \begin{macrocode}
+% \begin{macrocode}
\AtBeginDocument{%
\newlength{\@sidenotes@extrawidth}
\setlength{\@sidenotes@extrawidth}{\marginparwidth}
@@ -468,9 +473,11 @@
{
\begin{figure}[#1]
\begin{autoadjustwidth}{}{-\@sidenotes@extrawidth}
+ \begin{minipage}{\linewidth}
\captionsetup{style=widefigure}
}
{
+ \end{minipage}
\end{autoadjustwidth}
\end{figure}
}
@@ -481,19 +488,22 @@
%
% \changes{v0.85}{2011/06/01}{added the table* environment}
% \changes{v0.97}{2014/05/27}{use adjustwidth in table* environment}
+% \changes{v1.10}{2020/04/05}{address issue with tables across the full width}
%
-% The table* environment provides a table environment for figures across
+% The table* environment provides a table environment for figures across
% text and margin width.
%
-% \begin{macrocode}
+% \begin{macrocode}
\DeclareCaptionStyle{widetable}{font=footnotesize}
\RenewDocumentEnvironment{table*}{ O{htbp} }
{
\begin{table}[#1]
\begin{autoadjustwidth}{}{-\@sidenotes@extrawidth}
+ \begin{minipage}{\linewidth}
\captionsetup{style=widetable}
}
{
+ \end{minipage}
\end{autoadjustwidth}
\end{table}
}
diff --git a/macros/latex/contrib/sidenotes/sidenotes.ins b/macros/latex/contrib/sidenotes/sidenotes.ins
index d6b5ebd8a8..7a21aa0515 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.ins
+++ b/macros/latex/contrib/sidenotes/sidenotes.ins
@@ -8,7 +8,7 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
-%%
+%%
%% The author of this work is Andy Thomas
%%
@@ -21,7 +21,7 @@
IMPORTANT NOTE:
-This is a generated file and you are not allowed to distribute it
+This is a generated file and you are not allowed to distribute it
without the source of the work. See below about more informations
about the files the work consists of.
diff --git a/macros/latex/contrib/sidenotes/sidenotes.pdf b/macros/latex/contrib/sidenotes/sidenotes.pdf
index 31e4fb443e..e0363aa442 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.pdf
+++ b/macros/latex/contrib/sidenotes/sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
index 530ec3542d..916164bc45 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
index 9793f8c7e1..e6abbcb3a7 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
@@ -23,8 +23,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{14/11/2023}
+\def\TPversion{0.1.3}
+\def\TPdate{28/09/2024}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -135,7 +135,7 @@ Les packages utiles, et chargés sont :
\begin{itemize}
\item \MontreCode{tikz} (avec \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
- \item \MontreCode{calc}, \MontreCode{fontawesome5} ;
+ \item \MontreCode{calc}, \MontreCode{fontawesome5}, \MontreCode{forest} (avec \MontreCode{edges}) ;
\item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
\item \MontreCode{settobox}, \MontreCode{tabularray} ;
\item \MontreCode{tcolorbox} (avec \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
@@ -147,6 +147,8 @@ Les packages utiles, et chargés sont :
\begin{quote}
\begin{verbatim}
+0.1.2 : Arborescence type explorateur
+0.1.2 : Visionneuse 'like' de scripts
0.1.1 : Ajout des commandes en [fr]
0.1.0 : Version initiale
\end{verbatim}
@@ -320,13 +322,18 @@ Pour créer une \og fausse\fg{} visionneuse, les environnements sont :
\begin{VisionnIMG}[clés]{options tcbox}
....
\end{VisionnIMG}
+
+%----Visionneuse de script python
+\begin{VisionnPY}[clés]{options tcbox}
+ ....
+\end{VisionnPY}
\end{verbatim}
\end{quote}
Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
\begin{itemize}
- \item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+ \item \MontreCode{Titre} := titre de la visionneuse par défaut ;
\item \MontreCode{Align} := alignement horizontal (paragraphe) de la visionneuse (\MontreCode{center} par défaut) ;
\item \MontreCode{AlignH} := alignement horizontal (du contenu) de la visionneuse (\MontreCode{center} par défaut) ;
\item \MontreCode{Largeur} := largeur de la visionneuse (\MontreCode{\textbackslash linewidth} par défaut) ;
@@ -362,4 +369,125 @@ L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options sp
\end{VisionnIMG}
\end{tcblisting}
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%avec un environnement de présentation de codes si nécessaire
+\begin{VisionnPY}[Largeur=12cm]{}
+\begin{lstlisting}%
+ [
+ language=python,basicstyle=\ttfamily\small,
+ keywordstyle=\color{green!50!black},tabsize=4,
+ keywordstyle={[2]\color{magenta}},
+ numbers=left,numbersep=3mm,xleftmargin=5mm,
+ aboveskip=0pt,belowskip=0pt,
+ numberstyle=\footnotesize\ttfamily\color{gray}
+ ]
+nterms = int(input("Entrez un nombre: "))
+
+n1 = 0
+n2 = 1
+
+print("\n la suite Fibonacci est : ")
+print(n1, ",", n2, end=", ")
+
+for i in range(2, nterms):
+ suivant = n1 + n2
+ print(suivant, end=", ")
+
+n1 = n2
+n2 = suivant
+\end{lstlisting}
+\end{VisionnPY}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Arborescence de dossiers/fichiers}
+
+Le package \MontreCode{forest}, et sa librairie \MontreCode{edges}, permet de présenter des arbres, à la manière d'une arborescence de fichiers.
+
+\begin{quote}
+\begin{verbatim}
+\begin{ArborDossiers}[clés]{options forest}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ...
+ ]
+ ...
+ ]
+\end{ArborDossiers}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Police} := police des labels ;
+ \item \MontreCode{CoulIcoD} := couleur des icones \textsf{dossier} (\MontreCode{gray} par défaut) ;
+ \item \MontreCode{CoulIcoF} := couleur des icones \textsf{fichier} (\MontreCode{gray} par défaut) ;
+ \item \MontreCode{AffIcoD} := booléen pour afficher les icones \textsf{dossier} ;
+ \item \MontreCode{AffIcoF} := booléen pour afficher les icones \textsf{fichier} ;
+ \item \MontreCode{EspaceV} := espace vertical entre les items (\MontreCode{0.15em} par défaut) ;
+ \item \MontreCode{IcoD} := icone par défaut \textsf{dossier} ;
+ \item \MontreCode{IcoF} := icone par défaut \textsf{fichier}.
+\end{itemize}
+
+\medskip
+
+Les \textsf{dossiers} sont à déclarer sous la forme \MontreCode{<nom\_dossier>,ADdos}.
+
+Les \textsf{fichiers} sont à déclarer sous la forme \MontreCode{<nom\_fichier>,ADfic}.
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer en langage \textsf{forest}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ArborDossiers}{}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ArborDossiers}%
+ [Police=\sffamily,CoulIcoD=yellow!50!pink,AffIcoF,CoulIcoF=teal,EspaceV=0.5em]%
+ {}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
+Les styles sont définis de manière globale, et ils peuvent être redéfinis si besoin.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\tikzset{ADtrait/.style={thick,->,densely dashed,red,>=latex}}
+\begin{ArborDossiers}%
+ [Police=\sffamily,CoulIcoD=yellow!50!pink,AffIcoF,CoulIcoF=teal,EspaceV=0.5em]%
+ {l sep=2em}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
index 6550a4c0d5..e350684ab6 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
index 229d363700..ab3e44596f 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
@@ -23,8 +23,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{14/11/2023}
+\def\TPversion{0.1.3}
+\def\TPdate{28/09/2024}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -122,7 +122,7 @@ Global styles are mostly fixed, but some customizations are possible.
\subsection{Loading}
-To load the package, simply use :
+To load the package, simply use:
\begin{quote}
\begin{verbatim}
@@ -130,13 +130,13 @@ To load the package, simply use :
\end{verbatim}
\end{quote}
-The package loads the packages :
+The package loads the packages:
\begin{itemize}
- \item \MontreCode{tikz} (with \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
- \item \MontreCode{calc}, \MontreCode{fontawesome5} ;
- \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
- \item \MontreCode{settobox}, \MontreCode{tabularray} ;
+ \item \MontreCode{tikz} (with \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor};
+ \item \MontreCode{calc}, \MontreCode{fontawesome5};
+ \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring};
+ \item \MontreCode{settobox}, \MontreCode{tabularray};
\item \MontreCode{tcolorbox} (with \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
\end{itemize}
@@ -146,8 +146,10 @@ The package loads the packages :
\begin{quote}
\begin{verbatim}
-0.1.1 : French version of the commands
-0.1.0 : Initial version
+0.1.3: Fofders/Files like in explorer
+0.1.2: Script editor viewer 'like'
+0.1.1: French version of the commands
+0.1.0: Initial version
\end{verbatim}
\end{quote}
@@ -157,7 +159,7 @@ The package loads the packages :
\subsection{Context menu}
-I order to create a context menu, the command is :
+I order to create a context menu, the command is:
\begin{quote}
\begin{verbatim}
@@ -166,35 +168,35 @@ I order to create a context menu, the command is :
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{ColBack} := background color ;
- \item \MontreCode{ColHL} : = highlight color ;
- \item \MontreCode{Rounded} := boolean for rounded corners (\MontreCode{true} by default) ;
- \item \MontreCode{Font} := font for the items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} by default) ;
- \item \MontreCode{ColItems} := color(s) for the items (\MontreCode{black} by default) ;
- \item \MontreCode{MarginV} := vertical margin of the lines (\MontreCode{6pt} by default) ;
- \item \MontreCode{MarginH} := horizontal margin of the lines (\MontreCode{12pt} by default) ;
- \item \MontreCode{Arrow} := character for the arrow (\MontreCode{\textbackslash faCaretRight} by default) ;
- \item \MontreCode{ListSeps} := list for the possible sep lines (empty or for all the levels !) ;
- \item \MontreCode{ListIcons} := list for the possible icons (empty or for all the levels/items !) ;
- \item \MontreCode{ListOffsets} := list for the possible vertical offset of levels (from 2, \ldots !) (empty or for all the sub-levels !) ;
- \item \MontreCode{Icons} := boolean for icons (\MontreCode{false} by default) ;
- \item \MontreCode{Bar} := boolean for small vertical bar with icons (\MontreCode{true} by default) ;
- \item \MontreCode{Space} := horizontal space between levels (\MontreCode{-0.125} by default).
+ \item \MontreCode{ColBack}: background color;
+ \item \MontreCode{ColHL}: = highlight color;
+ \item \MontreCode{Rounded}: boolean for rounded corners (\MontreCode{true} by default);
+ \item \MontreCode{Font}: font for the items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} by default);
+ \item \MontreCode{ColItems}: color(s) for the items (\MontreCode{black} by default);
+ \item \MontreCode{MarginV}: vertical margin of the lines (\MontreCode{6pt} by default);
+ \item \MontreCode{MarginH}: horizontal margin of the lines (\MontreCode{12pt} by default);
+ \item \MontreCode{Arrow}: character for the arrow (\MontreCode{\textbackslash faCaretRight} by default);
+ \item \MontreCode{ListSeps}: list for the possible sep lines (empty or for all the levels !);
+ \item \MontreCode{ListIcons}: list for the possible icons (empty or for all the levels/items !);
+ \item \MontreCode{ListOffsets}: list for the possible vertical offset of levels (from 2, \ldots !) (empty or for all the sub-levels !);
+ \item \MontreCode{Icons}: boolean for icons (\MontreCode{false} by default);
+ \item \MontreCode{Bar}: boolean for small vertical bar with icons (\MontreCode{true} by default);
+ \item \MontreCode{Space}: horizontal space between levels (\MontreCode{-0.125} by default).
\end{itemize}
\medskip
-The mandatory argument, between \MontreCode{\{...\}}, is given as :
+The mandatory argument, between \MontreCode{\{...\}}, is given as:
\smallskip
\hfill\MontreCode{item1A,item1B,... § item2A,itemp2B,... § ...}\hfill~
\begin{itemize}
- \item if an item ends with \MontreCode{(*)}, this is the beginning of the next level (\underline{only one} by level !) ;
+ \item if an item ends with \MontreCode{(*)}, this is the beginning of the next level (\underline{only one} by level !);
\item if an item ends with \MontreCode{(>)} (\underline{before} optional \MontreCode{(*)}), an arrow is written at the end of the line.
\end{itemize}
@@ -202,11 +204,11 @@ A correct usage of the syntax is necessary for the code !
\vspace{5mm}
-A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreCode{ListSeps} keys, which are \textit{sensitive} :
+A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreCode{ListSeps} keys, which are \textit{sensitive}:
\begin{itemize}
- \item \MontreCode{ListIcons} must have the same number of elements than the number of levels/items (with possible empty items) ;
- \item \MontreCode{ListSeps} must have the same number of elements than the number of levels (with possible empty items) ;
+ \item \MontreCode{ListIcons} must have the same number of elements than the number of levels/items (with possible empty items);
+ \item \MontreCode{ListSeps} must have the same number of elements than the number of levels (with possible empty items);
\item \MontreCode{ListOffsets} must have the same number of elements than the numbers of sub-levels (with 0 si no offset !).
\end{itemize}
@@ -237,7 +239,7 @@ A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreC
\subsection{Terminal}
-In order to create a terminal (Win/UNiX/Mac), environments are :
+In order to create a terminal (Win/UNiX/Mac), environments are:
\begin{quote}
\begin{verbatim}
@@ -258,12 +260,12 @@ In order to create a terminal (Win/UNiX/Mac), environments are :
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{Title} := title of the terminal (\MontreCode{Terminal Win/UNiX/Mac} by default) ;
- \item \MontreCode{Align} := horizontal alignment of the box (\MontreCode{center} by default) ;
- \item \MontreCode{Width} := width of the box (\MontreCode{\textbackslash linewidth} by default).
+ \item \MontreCode{Title}: title of the terminal (\MontreCode{Terminal Win/UNiX/Mac} by default);
+ \item \MontreCode{Align}: horizontal alignment of the box (\MontreCode{center} by default);
+ \item \MontreCode{Width}: width of the box (\MontreCode{\textbackslash linewidth} by default).
\end{itemize}
\medskip
@@ -275,14 +277,14 @@ The mandatory argument, between \MontreCode{\{...\}}, are options to give to the
Microsoft Windows [version 10.0.22000.493]
(c) Microsoft Corporation. Tous droits réservés.
C:\Users\test>ping ctan.org
-Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
+Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données:
+Réponse de 5.35.249.60: octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=37 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=39 ms TTL=51
Statistiques Ping pour 5.35.249.60:
-Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
-Durée approximative des boucles en millisecondes :
+Paquets: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
+Durée approximative des boucles en millisecondes:
Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
\end{TermWin}
\end{tcblisting}
@@ -305,7 +307,7 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data.
\subsection{Viewers}
-In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environments are :
+In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environments are:
\begin{quote}
\begin{verbatim}
@@ -318,17 +320,22 @@ In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environme
\begin{IMGViewer}[keys]{tcbox options}
....
\end{IMGViewer}
+
+%----Script editor like
+\begin{PYViewer}[keys]{tcbox options}
+ ....
+\end{PYViewer}
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{Title} := title of the terminal (\MontreCode{Terminal Windows} by default) ;
- \item \MontreCode{Align} := horizontal alignment of the box (\MontreCode{center} by default) ;
- \item \MontreCode{Width} := width of the box (\MontreCode{\textbackslash linewidth} by default) ;
- \item \MontreCode{Halign} := horizontal alignment fot the content (\MontreCode{left} by default) ;
- \item \MontreCode{Icons} := boolean for the icons (\MontreCode{true} by default).
+ \item \MontreCode{Title}: title of the viewer;
+ \item \MontreCode{Align}: horizontal alignment of the box (\MontreCode{center} by default);
+ \item \MontreCode{Width}: width of the box (\MontreCode{\textbackslash linewidth} by default);
+ \item \MontreCode{Halign}: horizontal alignment fot the content (\MontreCode{left} by default);
+ \item \MontreCode{Icons}: boolean for the icons (\MontreCode{true} by default).
\end{itemize}
\medskip
@@ -360,4 +367,125 @@ The mandatory argument, between \MontreCode{\{...\}}, are options to give to the
\end{IMGViewer}
\end{tcblisting}
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%with listings, or piton, for example
+\begin{PYViewer}[width=12cm]{}
+\begin{lstlisting}%
+ [
+ language=python,basicstyle=\ttfamily\small,
+ keywordstyle=\color{green!50!black},tabsize=4,
+ keywordstyle={[2]\color{magenta}},
+ numbers=left,numbersep=3mm,xleftmargin=5mm,
+ aboveskip=0pt,belowskip=0pt,
+ numberstyle=\footnotesize\ttfamily\color{gray}
+ ]
+nterms = int(input("Entrez un nombre: "))
+
+n1 = 0
+n2 = 1
+
+print("\n la suite Fibonacci est: ")
+print(n1, ",", n2, end=", ")
+
+for i in range(2, nterms):
+ suivant = n1 + n2
+ print(suivant, end=", ")
+
+n1 = n2
+n2 = suivant
+\end{lstlisting}
+\end{PYViewer}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Folders/files as in explrer}
+
+The \MontreCode{forest} package, with his library \MontreCode{edges}, can present foldertrees.
+
+\begin{quote}
+\begin{verbatim}
+\begin{ForestDirTree}[keys]{forest options}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ...
+ ]
+ ...
+ ]
+\end{ForestDirTree}
+\end{verbatim}
+\end{quote}
+
+Available \textsf{keys}, betweeen \MontreCode{[...]}, are:
+
+\begin{itemize}
+ \item \MontreCode{font}: font of texts;
+ \item \MontreCode{coliconfolder}: \MontreCode{gray} by default;
+ \item \MontreCode{coliconfile}: \MontreCode{gray} by default;
+ \item \MontreCode{iconfolders}: boolean for folder icons;
+ \item \MontreCode{iconfiles}: boolean for file icons;
+ \item \MontreCode{vsep}: vertical space between items (\MontreCode{0.15em} by default);
+ \item \MontreCode{iconfolder}: icon for folder;
+ \item \MontreCode{iconfile}: icone for file.
+\end{itemize}
+
+\medskip
+
+\textsf{Folders} need to be given within \MontreCode{<folder\_name>,FTdir}.
+
+\textsf{Files} need to be given within \MontreCode{<file\_name>,FTfile}.
+
+\medskip
+
+Mandatory argument, between \MontreCode{\{...\}}, corresponds to \textsf{forest} specific commands.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ForestDirTree}{}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ForestDirTree}%
+ [font=\sffamily,coliconfolder=yellow!50!pink,iconfiles,coliconfile=teal,vsep=0.5em]%
+ {}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
+Styles are global, but can be locally defined.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\tikzset{FTedge/.style={thick,->,densely dashed,red,>=latex}}
+\begin{ForestDirTree}%
+ [font=\sffamily,coliconfolder=yellow!50!pink,iconfiles,coliconfile=teal,vsep=0.5em]%
+ {l sep=2em}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
index 01da065abb..ee8a15a8eb 100644
--- a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
+++ b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
@@ -2,7 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sim-os-menus}[2023/11/14 0.1.1 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en of fr commands)]
+\ProvidesPackage{sim-os-menus}[2024/09/28 0.1.3 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en or fr commands)]
+% 0.1.3 DirTree avec forest
+% 0.1.2 Ajout d'une visionneuse type python
% 0.1.1 French version of the commands
% 0.1.0 Initial version
@@ -794,4 +796,180 @@
\endtcolorbox%
}
+%====PYVIEWER (OK) 0.1.2
+\tcbset{StylePYViewer/.style={%
+ enhanced,boxrule=1pt,arc=3pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=3pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+
+\setKVdefault[PYVisionn]{Titre={Éditeur Python},Align={center},Largeur={\linewidth},AlignH={flush left},Icones=true}
+
+\NewDocumentCommand\PYVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYVisionn]{Titre} && \faPython \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYVisionn]{Titre} & \faFile*[regular]~~\faIcon[regular]
+ {file-code}~~\faSave&\faPlay~~\faStop&\faBug&& \faPython \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnPY}{ O{} m }
+{%
+ \restoreKV[PYVisionn]%
+ \setKV[PYVisionn]{#1}%
+ \tcolorbox[StylePYViewer,{\useKV[PYVisionn]{Align}},title={\ifboolKV[PYVisionn]{Icones}{\PYVIewerTitre}{\PYVIewerTitre*}},width={\useKV[PYVisionn]{Largeur}},halign={\useKV[PYVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+\setKVdefault[PYViewer]{title={Python editor},align={center},width={\linewidth},halign={flush left},icons=true}
+
+\NewDocumentCommand\PYVIewerTitle{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYViewer]{title} && \faPython \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYViewer]{title} & \faFile*[regular]~~\faIcon[regular]
+ {file-code}~~\faSave&\faPlay~~\faStop&\faBug&& \faPython \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{PYViewer}{ O{} m }
+{%
+ \restoreKV[PYViewer]%
+ \setKV[PYViewer]{#1}%
+ \tcolorbox[StylePYViewer,{\useKV[PYViewer]{align}},title={\ifboolKV[PYViewer]{icons}{\PYVIewerTitle}{\PYVIewerTitle*}},width={\useKV[PYViewer]{width}},halign={\useKV[PYViewer]{halign}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+%====FOLDERTREEE (forest)
+\RequirePackage{forest}
+\useforestlibrary{edges}
+
+%\def\foldertreecolor{yellow!50!pink}
+%\def\filefoldertreecolor{gray}
+
+\NewDocumentCommand\dirforest{ s O{\foldertreecolor} }{%
+ \IfBooleanTF{#1}{}{\scalebox{0.85}[0.85]{\color{#2}\foldertreeiconfolder}\hspace{0.25em}}%
+}
+
+\NewDocumentCommand\fileforest{ s O{\filefoldertreecolor} }{%
+ \IfBooleanTF{#1}{}{\scalebox{0.85}[0.85]{\color{#2}\foldertreeiconfile}\hspace{0.25em}}%
+}
+
+\tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}
+\tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}
+\tikzset{FTedge/.style={semithick,darkgray}}
+
+\defKV[forestdirtree]{%
+ font=\def\forestditreefont{#1},%
+ coliconfolder=\def\foldertreecolor{#1},%
+ iconfolder=\def\foldertreeiconfolder{#1},%
+ coliconfile=\def\filefoldertreecolor{#1},%
+ vsep=\def\filefoldertreevsep{#1},%
+ iconfile=\def\foldertreeiconfile{#1}
+}
+
+\setKVdefault[forestdirtree]{%
+ font=\footnotesize\ttfamily,%
+ coliconfolder=gray,%
+ coliconfile=gray,%
+ iconfolders=true,%
+ iconfiles=false,%
+ vsep=0.15em,%
+ iconfolder={\faFolderOpen},%
+ iconfile={\faIcon*[regular]{file}}
+}
+
+\NewDocumentEnvironment{ForestDirTree}{ O{} m +b }
+{
+ \restoreKV[forestdirtree]%
+ \setKV[forestdirtree]{#1}%
+ \ifboolKV[forestdirtree]{iconfolders}%
+ {%
+ \tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}%
+ }%
+ {%
+ \tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest*}}%
+ }%
+ \ifboolKV[forestdirtree]{iconfiles}%
+ {%
+ \tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}%
+ }%
+ {%
+ \tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest*}}%
+ }%
+ \forest
+ for tree={s sep=\filefoldertreevsep,folder,grow'=0,folder indent=0.5em,fit=band,font=\forestditreefont,edge={FTedge},#2}
+ #3
+}%
+{%
+ \endforest%
+}
+
+\tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}
+\tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}
+\tikzset{ADtrait/.style={semithick,darkgray}}
+
+\defKV[forestarbor]{%
+ Police=\def\forestditreefont{#1},%
+ CoulIcoD=\def\foldertreecolor{#1},%
+ CoulIcoF=\def\filefoldertreecolor{#1},%
+ EspaceV=\def\filefoldertreevsep{#1},%
+ IcoD=\def\foldertreeiconfolder{#1},%
+ IcoF=\def\foldertreeiconfile{#1}
+}
+
+\setKVdefault[forestarbor]{%
+ Police=\footnotesize\ttfamily,%
+ CoulIcoD=gray,%
+ CoulIcoF=gray,%
+ AffIcoD=true,%
+ AffIcoF=false,%
+ EspaceV=0.15em,%
+ IcoD={\faFolderOpen},%
+ IcoF={\faIcon*[regular]{file}}
+}
+
+\NewDocumentEnvironment{ArborDossiers}{ O{} m +b }
+{
+ \restoreKV[forestarbor]%
+ \setKV[forestarbor]{#1}%
+ \ifboolKV[forestarbor]{AffIcoD}%
+ {%
+ \tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}%
+ }%
+ {%
+ \tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest*}}%
+ }%
+ \ifboolKV[forestarbor]{AffIcoF}%
+ {%
+ \tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}%
+ }%
+ {%
+ \tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest*}}%
+ }%
+ \forest
+ for tree={s sep=\filefoldertreevsep,folder,grow'=0,folder indent=0.5em,fit=band,font=\forestditreefont,edge={ADtrait},#2}
+ #3
+}%
+{%
+ \endforest%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index e5e9b95b0d..bfc2c8dbd0 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,23 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.3.22] - 2024-09-30
+
+### Fixed
+- Automatically set `unit-font-command` with `beamer` only when the user has
+ not manually adjusted (see issue
+ [\#748](https://github.com/josephwright/siunitx/issues/748))
+
+## [v3.3.21] - 2024-08-20
+
+### Fixed
+- Conversion of negative angles to arc notation (see issue
+ [\#743](https://github.com/josephwright/siunitx/issues/743))
+- Rounding of angles in arc mode (see issue
+ [\#744](https://github.com/josephwright/siunitx/issues/744))
+- Polar form of negative real values (see issue
+ [\#745](https://github.com/josephwright/siunitx/issues/745))
+
## [v3.3.20] - 2024-08-01
### Fixed
@@ -2126,7 +2143,9 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.20...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.22...HEAD
+[v3.3.22]: https://github.com/josephwright/siunitx/compare/v3.3.21...v3.3.22
+[v3.3.21]: https://github.com/josephwright/siunitx/compare/v3.3.20...v3.3.21
[v3.3.20]: https://github.com/josephwright/siunitx/compare/v3.3.19...v3.3.20
[v3.3.19]: https://github.com/josephwright/siunitx/compare/v3.3.18...v3.3.19
[v3.3.18]: https://github.com/josephwright/siunitx/compare/v3.3.17...v3.3.18
diff --git a/macros/latex/contrib/siunitx/siunitx-angle.dtx b/macros/latex/contrib/siunitx/siunitx-angle.dtx
index ac933f4636..91d67690f0 100644
--- a/macros/latex/contrib/siunitx/siunitx-angle.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-angle.dtx
@@ -303,18 +303,23 @@
}
}
\cs_generate_variant:Nn \siunitx_angle:nnn { eee , xxx }
+% \end{macrocode}
+% Here, the need for absolute values is to handle conversion of negative
+% values: the result should be exactly one sign in the integer part.
+% \begin{macrocode}
\cs_new_protected:Npn \@@_arc_convert:n #1
{
\siunitx_angle:eee
{ \fp_eval:n { trunc(#1,0) } }
- { \fp_eval:n { trunc((#1 - trunc(#1,0)) * 60,0) } }
+ { \fp_eval:n { abs(trunc((#1 - trunc(#1,0)) * 60,0)) } }
{
\fp_eval:n
{
- (
- (#1 - trunc(#1,0)) * 60
- - trunc((#1 - trunc(#1,0)) * 60,0)
- )
+ abs
+ (
+ (#1 - trunc(#1,0)) * 60
+ - trunc((#1 - trunc(#1,0)) * 60,0)
+ )
* 60
}
}
@@ -325,6 +330,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{variable}{\c_@@_parts_tl}
+% For mappings.
+% \begin{macrocode}
+\clist_const:Nn \c_@@_parts_tl { degrees , minutes , seconds }
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}{\l_@@_degrees_tl, \l_@@_minutes_tl, \l_@@_seconds_tl}
% Space for formatting parsed numbers.
% \begin{macrocode}
@@ -341,7 +353,14 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_suppress_exp_uncert:, \@@_suppress_comp_sign:}
+% \begin{variable}{\l_@@_signed_bool}
+% To check that only one sign is seen in arc mode.
+% \begin{macrocode}
+\tl_new:N \l_@@_signed_bool
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_suppress_exp_uncert:, \@@_suppress_comp:}
% Pre-compilation of keys to suppress uncertainties and exponents,
% and
% \begin{macrocode}
@@ -358,60 +377,45 @@
{ \exp_not:V \l_@@_tmp_tl }
\keys_precompile:nnN
{ siunitx }
- { input-comparators = , input-signs = }
+ { input-comparators = }
\l_@@_tmp_tl
-\cs_set_protected:Npx \@@_suppress_comp_sign:
+\cs_set_protected:Npx \@@_suppress_comp:
{ \exp_not:V \l_@@_tmp_tl }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_arc_sign:nnn}
% \begin{macro}{\@@_arc_sign:nn}
+% \begin{macro}{\@@_arc_sign_auxi:, \@@_arc_sign_auxii:}
% \begin{macro}{\@@_extract_sign:nnnnnnnn}
% \begin{macro}[EXP]{\@@_sign:nnnnnnn}
% To get the sign in the right place whilst dealing with zero filling
% means doing some shuffling. That means doing processing of each number
-% manually.
+% manually. For degrees, auto-conversion can give |-0|, which needs to be
+% picked up early to set the sign.
% \begin{macrocode}
\cs_new_protected:Npn \@@_arc_sign:nnn #1#2#3
{
\group_begin:
\@@_suppress_exp_uncert:
\tl_clear:N \l_@@_sign_tl
- \@@_arc_sign:nn {#1} { degrees }
+ \bool_set_false:N \l_@@_signed_bool
+ \str_if_eq:nnTF {#1} { -0 }
+ {
+ \@@_arc_sign:nn { } { degrees }
+ \@@_suppress_comp:
+ \tl_set:Nn \l_@@_sign_tl { - }
+ \bool_set_true:N \l_@@_signed_bool
+ }
+ { \@@_arc_sign:nn {#1} { degrees } }
\@@_arc_sign:nn {#2} { minutes }
\@@_arc_sign:nn {#3} { seconds }
\tl_if_empty:NF \l_@@_sign_tl
{
- \clist_map_inline:nn { degrees , minutes , seconds }
- {
- \tl_if_empty:cF { l_@@_ ##1 _tl }
- {
- \tl_set:cx { l_@@_ ##1 _tl }
- {
- { }
- { \exp_not:V \l_@@_sign_tl }
- \exp_after:wN \exp_after:wN \exp_after:wN
- \@@_sign:nnnnnnn
- \cs:w l_@@_ ##1 _tl \cs_end:
- }
- \clist_map_break:
- }
- }
- }
- \clist_map_inline:nn { degrees , minutes , seconds }
- {
- \tl_if_empty:cF { l_@@_ ##1 _tl }
- {
- \siunitx_number_process:cc
- { l_@@_ ##1 _tl } { l_@@_ ##1 _tl }
- \tl_set:cx { l_@@_ ##1 _tl }
- {
- \siunitx_number_output:cN
- { l_@@_ ##1 _tl } \q_nil
- }
- }
+ \clist_map_function:NN \c_@@_parts_tl
+ \@@_arc_sign_auxi:n
}
+ \clist_map_function:NN \c_@@_parts_tl \@@_arc_sign_auxii:n
\@@_arc_print:VVV
\l_@@_degrees_tl
\l_@@_minutes_tl
@@ -432,6 +436,40 @@
{
\siunitx_number_parse:nN {#1} \l_@@_tmp_tl
\exp_after:wN \@@_extract_sign:nnnnnnnn \l_@@_tmp_tl {#2}
+ \bool_set_true:N \l_@@_signed_bool
+ }
+ }
+\cs_new_protected:Npn \@@_arc_sign_auxi:n #1
+ {
+ \tl_if_empty:cF { l_@@_ #1 _tl }
+ {
+ \tl_set:cx { l_@@_ #1 _tl }
+ {
+ { }
+ { \exp_not:V \l_@@_sign_tl }
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \@@_sign:nnnnnnn
+ \cs:w l_@@_ #1 _tl \cs_end:
+ }
+ \clist_map_break:
+ }
+ }
+\cs_new_protected:Npn \@@_arc_sign_auxii:n #1
+ {
+ \tl_if_empty:cF { l_@@_ #1 _tl }
+ {
+ \bool_lazy_and:nnF
+ { \l_@@_force_arc_bool }
+ { ! \str_if_eq_p:nn {#1} { seconds } }
+ {
+ \siunitx_number_process:cc
+ { l_@@_ #1 _tl } { l_@@_ #1 _tl }
+ }
+ \tl_set:cx { l_@@_ #1 _tl }
+ {
+ \siunitx_number_output:cN
+ { l_@@_ #1 _tl } \q_nil
+ }
}
}
\cs_new_protected:Npn \@@_extract_sign:nnnnnnnn #1#2#3#4#5#6#7#8
@@ -439,10 +477,12 @@
\tl_if_blank:nTF {#2}
{ \tl_set_eq:cN { l_@@_ #8 _tl } \l_@@_tmp_tl }
{
+ \bool_if:NTF \l_@@_signed_bool
+ { \msg_error:nnn { siunitx } { arc-multi-sign } }
+ { \tl_set:Nn \l_@@_sign_tl {#2} }
\tl_set:cn { l_@@_ #8 _tl }
{ {#1} { } {#3} {#4} {#5} {#6} {#7} }
- \tl_set:Nn \l_@@_sign_tl {#2}
- \@@_suppress_comp_sign:
+ \@@_suppress_comp:
}
}
\cs_new:Npn \@@_sign:nnnnnnn #1#2#3#4#5#6#7
@@ -452,6 +492,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{variable}{\l_@@_marker_box, \l_@@_unit_box}
% For \enquote{astronomy style} angles.
@@ -602,6 +643,15 @@
% \end{macro}
%
% \begin{macrocode}
+\msg_new:nnnn { siunitx } { arc-multi-sign }
+ { Multiple~signs~given~for~arc~angle! }
+ {
+ An~angle~given~as~an~arc~should~have~at~most~one~sign:~
+ only~the~first~sign~will~be~used.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\keys_set:nn { siunitx }
{
angle-mode = input ,
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 95f55e6cac..cc2cd36afd 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-complex.dtx b/macros/latex/contrib/siunitx/siunitx-complex.dtx
index 2ff86391c2..200fd15f15 100644
--- a/macros/latex/contrib/siunitx/siunitx-complex.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-complex.dtx
@@ -1143,11 +1143,12 @@
% \begin{macro}[EXP]{\@@_convert_polar_auxiii:nnw}
% \begin{macro}[EXP]{\@@_convert_polar_auxiv:nnw}
% \begin{macro}[EXP]{\@@_convert_polar_auxv:nnw}
-% \begin{macro}[EXP]{\@@_convert_polar_auxvi:nnn}
+% \begin{macro}[EXP]{\@@_convert_polar_auxvi:nnn, \@@_convert_polar_auxvi:enn}
+% \begin{macro}[EXP]{\@@_convert_polar_auxvii:nnn}
% \begin{macro}[EXP]
-% {\@@_convert_polar_auxvii:nnn, \@@_convert_polar_auxvii:eee}
+% {\@@_convert_polar_auxviii:nnn, \@@_convert_polar_auxviii:eee}
% \begin{macro}[EXP]
-% {\@@_convert_polar_auxviii:nn, \@@_convert_polar_auxviii:ee}
+% {\@@_convert_polar_auxix:nn, \@@_convert_polar_auxix:ee}
% A simplified parser for complex numbers which works by expansion,
% then converts to polar form.
% \begin{macrocode}
@@ -1160,10 +1161,10 @@
\bool_lazy_or:nnTF
{ \str_if_eq_p:nn {#2} { i } }
{ \str_if_eq_p:nn {#2#3} { +i } }
- { \@@_convert_polar_auxvi:nnn { } { 1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { 1 } {#1} }
{
\str_if_eq:nnTF {#2#3} { -i }
- { \@@_convert_polar_auxvi:nnn { } { -1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { -1 } {#1} }
{ \@@_convert_polar_auxiii:nnw {#1} {#2} #3 + + \q_stop }
}
}
@@ -1173,7 +1174,7 @@
{ \@@_convert_polar_auxiv:nnw {#1} {#2} #3 - - \q_stop }
{
\str_if_eq:nnTF {#4} { i }
- { \@@_convert_polar_auxvi:nnn {#2#3} { 1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn {#2#3} { 1 } {#1} }
{ \@@_convert_polar_auxv:nnw {#2#3} {#1} #4 i \q_nil i \q_stop }
}
}
@@ -1183,35 +1184,48 @@
{ \@@_convert_polar_auxv:nnw { } {#1} #2#3 i \q_nil i \q_stop }
{
\str_if_eq:nnTF {#4} { i }
- { \@@_convert_polar_auxvi:nnn { } { -1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { -1 } {#1} }
{ \@@_convert_polar_auxv:nnw {#2#3} {#1} -#4 i \q_nil i \q_stop }
}
}
+% \end{macrocode}
+% Negative real values are special-cased here for efficiency.
+% \begin{macrocode}
\cs_new:Npn \@@_convert_polar_auxv:nnw #1#2#3 i #4 i #5 \q_stop
{
\quark_if_nil:nTF {#4}
- { { #3 \tl_if_blank:nF {#2} { e#2 } } { 0 } }
- { \@@_convert_polar_auxvi:nnn {#1} {#3} {#2} }
+ {
+ \tl_if_head_eq_meaning:nNTF {#3} -
+ { \@@_convert_polar_auxvi:enn { \use_none:n #3 } { 180 } }
+ { \@@_convert_polar_auxvi:nnn {#3} { 0 } }
+ {#2}
+ }
+ { \@@_convert_polar_auxvii:nnn {#1} {#3} {#2} }
}
\cs_new:Npn \@@_convert_polar_auxvi:nnn #1#2#3
{
- \@@_convert_polar_auxvii:eee
+ { #1 \tl_if_blank:nF {#3} { e#3 } } {#2}
+ }
+\cs_generate_variant:Nn \@@_convert_polar_auxvi:nnn { e }
+\cs_new:Npn \@@_convert_polar_auxvii:nnn #1#2#3
+ {
+ \@@_convert_polar_auxviii:eee
{ \tl_if_blank:nTF {#1} { 0 } {#1} }
{ \tl_if_blank:nTF {#2} { 0 } {#2} }
{ \tl_if_blank:nF {#3} { e#3 } }
}
-\cs_new:Npn \@@_convert_polar_auxvii:nnn #1#2#3
+\cs_new:Npn \@@_convert_polar_auxviii:nnn #1#2#3
{
- \@@_format_polar_auxviii:ee
+ \@@_format_polar_auxix:ee
{ \fp_eval:n { sqrt ( (#1#3)^2 + (#2#3)^2 ) } }
{
\fp_eval:n
{ atan \bool_if:NT \l_@@_polar_degree_bool { d } (#2 , #1) }
}
}
-\cs_generate_variant:Nn \@@_convert_polar_auxvii:nnn { eee }
-\cs_new:Npn \@@_format_polar_auxviii:nn #1#2 { {#1} {#2} }
-\cs_generate_variant:Nn \@@_format_polar_auxviii:nn { ee }
+\cs_generate_variant:Nn \@@_convert_polar_auxviii:nnn { eee }
+\cs_new:Npn \@@_format_polar_auxix:nn #1#2 { {#1} {#2} }
+\cs_generate_variant:Nn \@@_format_polar_auxix:nn { ee }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1222,6 +1236,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Messages}
%
diff --git a/macros/latex/contrib/siunitx/siunitx-compound.dtx b/macros/latex/contrib/siunitx/siunitx-compound.dtx
index ec5a680516..6bca9a8417 100644
--- a/macros/latex/contrib/siunitx/siunitx-compound.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-compound.dtx
@@ -871,7 +871,6 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_print:N}
% \begin{macro}{\@@_print:nnN, \@@_print:nVN, \@@_print:enN, \@@_print:eeN}
diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx
index 4a7e2eb705..0cc2245559 100644
--- a/macros/latex/contrib/siunitx/siunitx-number.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-number.dtx
@@ -4757,6 +4757,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Miscellaneous tools}
%
diff --git a/macros/latex/contrib/siunitx/siunitx-table.dtx b/macros/latex/contrib/siunitx/siunitx-table.dtx
index 03fe45441e..4dd14ff826 100644
--- a/macros/latex/contrib/siunitx/siunitx-table.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-table.dtx
@@ -297,13 +297,10 @@
% Collecting a tabular cell means doing a token-by-token collection.
% In previous versions of \pkg{siunitx} that was done along with picking
% out the numerical part, but the code flow ends up very tricky. Here,
-% therefore, we just collect up the unchanged tokens first. The definition of
-% \cs{cr} is used to allow collection of any tokens
-% inserted after the main content when dealing with the last cell of a row:
-% the \enquote{group} around it is needed to avoid issues with the underlying
-% |\halign|. (The approach is based on that in \pkg{collcell}.) Whilst the
-% group formed by a cell will normally tidy up |\cr|, we add an extra one as
-% the collected material could be a tabular in itself. We use an auxiliary to
+% therefore, we just collect up the unchanged tokens first. Whilst each
+% cell forms a group, as we require definitions to say local
+% to the collections code, an additional group is required.
+% We use an auxiliary to
% fish out the |\ignorespaces| from the template: that has to go to avoid
% issues with the peek-ahead code (everything before the |#| needs to be
% read \emph{before} the Appendix~D trick gets applied). Some packages
@@ -314,13 +311,6 @@
{
\group_begin:
\tl_clear:N \l_@@_collect_tl
- \if_false: { \fi:
- \cs_set_protected:Npn \cr
- {
- \@@_collect_loop:
- \tex_cr:D
- }
- \if_false: } \fi:
\@@_collect_begin:w
}
\cs_new_protected:Npn \@@_collect_begin:w #1 \ignorespaces
@@ -365,9 +355,9 @@
{
\unskip { \@@_collect_loop: }
\textonly@unskip { \@@_collect_loop: }
- \end { \tabularnewline \end }
+ \end { \@@_collect_pre_cr: \tabularnewline \end }
\relax { \@@_collect_relax:N #1 }
- \tabularnewline { \tabularnewline }
+ \tabularnewline { \@@_collect_pre_cr: \tabularnewline }
\siunitx_cell_end: { \siunitx_cell_end: }
}
{ \@@_collect_token_aux:N #1 }
@@ -394,9 +384,9 @@
\@maybe@unskip { \@@_collect_loop: }
\tab@setcr { \@@_collect_loop: }
\unskip { \@@_collect_loop: }
- \end { \tabularnewline \end }
+ \end { \@@_collect_pre_cr: \tabularnewline \end }
\relax { \@@_collect_relax:N #1 }
- \tabularnewline { \tabularnewline }
+ \tabularnewline { \@@_collect_pre_cr: \tabularnewline }
\siunitx_cell_end: { \siunitx_cell_end: }
}
{ \@@_collect_token_aux:N #1 }
@@ -425,6 +415,30 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\@@_collect_pre_cr:}
+% The definition of \cs{cr} is used to allow collection of any tokens
+% from the \tn{halign} template after |#| when we are in the last cell of
+% the row. (The approach is based on that in \pkg{collcell}.) Note that
+% \TeX{} inserts these tokens when it sees the \tn{cr} primitive, so
+% there is no expansion to consider. Whilst in most cases the group formed
+% by each cell will tidy up, nested tabulars (for example in a header row)
+% will break if \tn{cr} is redefined too widely. Thus we use a targetted
+% approach: only apply when needed, and use the additional group inside the
+% cell to keep control.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_collect_pre_cr:
+ {
+ \if_false: { \fi:
+ \cs_set_protected:Npn \cr
+ {
+ \@@_collect_loop:
+ \tex_cr:D
+ }
+ \if_false: } \fi:
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Separating collected material}
%
% The input needs to be divided into numerical tokens and those which appear
diff --git a/macros/latex/contrib/siunitx/siunitx-unit.dtx b/macros/latex/contrib/siunitx/siunitx-unit.dtx
index 7faf5740da..6c440b8fd6 100644
--- a/macros/latex/contrib/siunitx/siunitx-unit.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-unit.dtx
@@ -2997,7 +2997,10 @@
\str_if_eq:eeT
{ \exp_not:o { \familydefault } }
{ \exp_not:n { \sfdefault } }
- { \keys_set:nn { siunitx } { unit-font-command = \mathsf } }
+ {
+ \tl_if_eq:VnT \l_siunitx_unit_font_tl { \mathrm }
+ { \keys_set:nn { siunitx } { unit-font-command = \mathsf } }
+ }
}
{ }
}
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index 054d525a88..11bce0caf9 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -124,7 +124,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2024-08-01} {3.3.20}
+\ProvidesExplPackage {siunitx} {2024-09-30} {3.3.22}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index 93a003d7f5..4dd0e88018 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx.tex b/macros/latex/contrib/siunitx/siunitx.tex
index 3c0231e5b4..90189978b1 100644
--- a/macros/latex/contrib/siunitx/siunitx.tex
+++ b/macros/latex/contrib/siunitx/siunitx.tex
@@ -1911,7 +1911,7 @@ by the \opt{bracket-ambiguous-numbers} switch. This option only applies to pure
numbers: when formatting quantities, the need for brackets also depends on the
placement of units, so is controlled by \opt{separate-uncertainty-units}.
\begin{LaTeXdemo}
- \sisetup{separate-uncertainty}
+ \sisetup{uncertainty-mode = separate}
\num{1.2(3)e4} \\
\num[bracket-ambiguous-numbers = false]{1.2(3)e4}
\end{LaTeXdemo}
@@ -2760,7 +2760,7 @@ a single unit symbol. Alternative options are \opt{repeat} (print the unit for
each part of the number) and \opt{single} (print only one unit symbol:
mathematically incorrect).
\begin{LaTeXdemo}
- \sisetup{separate-uncertainty}
+ \sisetup{uncertainty-mode = separate}
\qty{12.3(4)}{\kilo\gram} \\
\qty[separate-uncertainty-units = bracket]{12.3(4)}{\kilo\gram} \\
\qty[separate-uncertainty-units = repeat]{12.3(4)}{\kilo\gram} \\
@@ -2887,7 +2887,7 @@ given in Table~\ref{tab:S:format}.
S[table-format = 2.2]
S[table-format = 2.2, table-number-alignment = right]
S[table-format = 2.2(1)]
- S[table-format = 2.2(1), separate-uncertainty]
+ S[table-format = 2.2(1), uncertainty-mode = separate]
S[table-format = +2.2]
S[table-format = 2.2e1]
@{}}
@@ -2970,7 +2970,7 @@ comparator with the \opt{table-align-comparator} option
\caption{The \opt{table-align-uncertainty} option.%
\label{tab:align:uncert}}
\sisetup{
- separate-uncertainty,
+ uncertainty-mode = separate,
table-format = 1.3(1),
}
\begin{tabular}{@{}SS[table-align-uncertainty = false]@{}}
diff --git a/macros/latex/contrib/sjtutex/sjtutex.dtx b/macros/latex/contrib/sjtutex/sjtutex.dtx
index bcf46b7fbe..095a940c0f 100644
--- a/macros/latex/contrib/sjtutex/sjtutex.dtx
+++ b/macros/latex/contrib/sjtutex/sjtutex.dtx
@@ -216,7 +216,7 @@
Please update your TeX distribution}{}}
%</class>
%<*!(driver|install)>
-%<+!driver>\GetIdInfo$Id: sjtutex.dtx 78f11bc 2024-06-29 23:01:32 +0800 Alexara Wu <alexarawu@outlook.com> $
+%<+!driver>\GetIdInfo$Id: sjtutex.dtx ce44827 2024-10-21 00:12:31 +0800 Alexara Wu <alexarawu@outlook.com> $
%<class&thesis> {Thesis document class for Shanghai Jiao Tong University (SJTUTeX)}
%<class&thesis>\ProvidesExplClass{sjtuthesis}
%<class&report> {Report document class for Shanghai Jiao Tong University (SJTUTeX)}
@@ -335,7 +335,7 @@
%<font&cjk&founder&zh>\ProvidesExplFile{sjtu-cjk-font-founder-zh.def}
%<font&cjk&founder&ja> {Founder CJK fonts definition for Japanese (SJTUTeX)}
%<font&cjk&founder&ja>\ProvidesExplFile{sjtu-cjk-font-founder-ja.def}
-%<!driver> {\ExplFileDate}{2.1.3}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{2.1.4}{\ExplFileDescription}
%</!(driver|install)>
%
%<*driver>
@@ -343,7 +343,7 @@
\documentclass{ctxdoc}
\newcommand{\sjtutex}{SJTU\TeX}
\expandafter\def\csname ver@\jobname.dtx\endcsname
- {2024/06/29 v2.1.3 SJTUTeX}
+ {2024/10/21 v2.1.4 SJTUTeX}
\usepackage{float}
\usepackage{multirow}
\usepackage{longtable}
@@ -4869,10 +4869,11 @@
% 汉字分散对齐的表格列说明符。
% \begin{macrocode}
\newcolumntype { \SJTU@CT@D } [ 1 ]
- { >{ \begin { SJTU@CJK@FTS } {#1} } c <{ \end { SJTU@CJK@FTS } } }
+ { > { \begin { SJTU@CJK@FTS } {#1} } c < { \end { SJTU@CJK@FTS } } }
% \end{macrocode}
%
% \changes{v2.1}{2023/11/30}{标题页信息栏改用表格实现。}
+% \changes{v2.1.4}{2024/08/14}{标题页信息栏允许手动换行。}
% \begin{macro}[int]{\@@_title_page_info_i:nnn,\@@_title_page_info_i:nxx,
% \@@_title_page_info_ii:n}
% 信息输出。
@@ -4886,7 +4887,12 @@
{
\exp_not:o { \cs:w c_@@_name_ ##1 _ #1 _tl \cs_end: }
&
- \exp_not:o { \cs:w l_@@_info_ ##1 _ #1 _tl \cs_end: }
+ \exp_not:N \hbox:n
+ {
+ \exp_not:N \tabular [ t ] { @{} l @{} }
+ \exp_not:o { \cs:w l_@@_info_ ##1 _ #1 _tl \cs_end: }
+ \exp_not:N \endtabular
+ }
}
}
\group_begin:
@@ -4951,7 +4957,7 @@
{
\exp_not:N \SJTU@CT@D { 5 em }
@ { \exp_not:V \c_@@_name_info_sep_zh_tl }
- >{ \exp_not:N \normalfont } l
+ > { \exp_not:N \setbaselineskip { 22.5 bp } \exp_not:N \normalfont } l
}
{
author,
@@ -5015,7 +5021,7 @@
%<en> r @ { \exp_not:V \c_@@_name_info_sep_en_tl }
%<de> r @ { \exp_not:V \c_@@_name_info_sep_de_tl }
%<ja> r @ { \exp_not:V \c_@@_name_info_sep_ja_tl }
- >{ \exp_not:N \normalfont } l
+ > { \exp_not:N \setbaselineskip { 22.5 bp } \exp_not:N \normalfont } l
}
{ author, \l_@@_info_supervisors_clist }
} ,
diff --git a/macros/latex/contrib/sjtutex/sjtutex.pdf b/macros/latex/contrib/sjtutex/sjtutex.pdf
index a5994fd3be..44ed7415c7 100644
--- a/macros/latex/contrib/sjtutex/sjtutex.pdf
+++ b/macros/latex/contrib/sjtutex/sjtutex.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/README.md b/macros/latex/contrib/spbmark/README.md
index 9fe0dc2c5c..ed53b50d7e 100644
--- a/macros/latex/contrib/spbmark/README.md
+++ b/macros/latex/contrib/spbmark/README.md
@@ -1,5 +1,5 @@
# The `spbmark` package
-Customize superscripts and subscripts (v1.46n)
+Customize superscripts and subscripts (v1.46t)
## Abstract
`spbmark` provides three commands `\super`, `\sub` and `\supersub` to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index c0f3a42077..e0b1d38ce1 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index 4046c8bf9c..ada39cfc91 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse}
-\ProvidesExplPackage{spbmark}{2024/07/14}{1.46n}
+\ProvidesExplPackage{spbmark}{2024/10/31}{1.46t}
{Customize superscripts and subscripts}
\cs_generate_variant:Nn \box_set_ht:Nn { cv }
@@ -233,7 +233,7 @@
\cs_generate_variant:Nn \spb_box_super_move_up_ii:n { V }
\cs_generate_variant:Nn \spb_box_sub_move_down_ii:n { V }
\providecommand{\hbox_overlap_center:n}[1]
- { \hbox_to_zero:n { \hss #1\hss } }
+ {\hbox_to_zero:n { \hss #1\hss }}
\cs_new:Npn \spb_hbox_overlap_vmove_ii:n #1
{
\use:c { hbox_overlap_#1:n }
@@ -333,40 +333,68 @@
\tl_set:Nn \maxwd { \dim_max:VV \superwd \subwd }
\tl_set:Nn \l__spb_box_super_wd_i_tl { \box_wd:N \g__super_i_inner_box }
\tl_set:Nn \l__spb_box_sub_wd_i_tl { \box_wd:N \g__sub_i_inner_box }
-\cs_new:Npn \spb_math_print_store_i:nn #1#2
+\providecommand{\NewHookWithArguments}[2]{}
+\providecommand{\UseHookWithArguments}[4]{}
+\NewHookWithArguments{spb/super/before}{2}
+\NewHookWithArguments{spb/super/after}{2}
+\NewHookWithArguments{spb/sub/before}{2}
+\NewHookWithArguments{spb/sub/after}{2}
+\NewHookWithArguments{spb/super*/before}{2}
+\NewHookWithArguments{spb/super*/after}{2}
+\NewHookWithArguments{spb/sub*/before}{2}
+\NewHookWithArguments{spb/sub*/after}{2}
+\NewHookWithArguments{cmd+/super/after}{2}
+\NewHookWithArguments{cmd+/sub/after}{2}
+\cs_new:Npn \spb_math_print_store_i:nnnn #1#2#3#4
{
\hbox_gset:cn { g__#1_i_inner_box }
{
- \ensuremath
- {
- \use:c { spb@math@#1@core }
- { \tl_use:c { l__spb_#1_cmd_i_tl }{#2} }
+ #3{
+ \UseHookWithArguments{spb/#1/before}{2}{#1}{#2}
+ \use:c {#4} { \tl_use:c { l__spb_#1_cmd_i_tl }{#2} }
+ \UseHookWithArguments{spb/#1/after}{2}{#1}{#2}
}
}
\dim_gset:Nv \rlastwd { l__spb_box_#1_wd_i_tl }
}
+\cs_new:Npn \spb_math_print_store_i:nn #1#2
+ {
+ \spb_math_print_store_i:nnnn
+ {#1} {#2} { \ensuremath } { spb@math@#1@core }
+ }
\cs_new:Npn \spb_text_print_store_i:nn #1#2
{
- \hbox_gset:cn { g__#1_i_inner_box }
+ \spb_math_print_store_i:nnnn
+ {#1} {#2} { \use:n } { spb@text#1script@core }
+ }
+\cs_new:Npn \spb_math_print_store_ii:nnnnn #1#2#3#4#5
+ {
+ \hbox_gset:Nn \g__super_ii_box
{
- \use:c { spb@text#1script@core }
- { \tl_use:c { l__spb_#1_cmd_i_tl }{#2} }
+ #3{
+ \UseHookWithArguments{spb/super*/before}{2}{super}{#1}
+ #4{\l__spb_super_cmd_ii_tl{#1}}
+ \UseHookWithArguments{spb/super*/after}{2}{super}{#1}
+ }
+ }
+ \hbox_gset:Nn \g__sub_ii_box
+ {
+ #3{
+ \UseHookWithArguments{spb/sub*/before}{2}{sub}{#2}
+ #5{\l__spb_sub_cmd_ii_tl{#2}}
+ \UseHookWithArguments{spb/sub*/after}{2}{sub}{#2}
+ }
}
- \dim_gset:Nv \rlastwd { l__spb_box_#1_wd_i_tl }
}
\cs_new:Npn \spb_math_print_store_ii:nn #1#2
{
- \hbox_gset:Nn \g__super_ii_box
- { \ensuremath{\spb@math@super@core{\l__spb_super_cmd_ii_tl{#1}}} }
- \hbox_gset:Nn \g__sub_ii_box
- { \ensuremath{\spb@math@sub@core{\l__spb_sub_cmd_ii_tl{#2}}} }
+ \spb_math_print_store_ii:nnnnn {#1} {#2}
+ { \ensuremath } { \spb@math@super@core } { \spb@math@sub@core }
}
\cs_new:Npn \spb_text_print_store_ii:nn #1#2
{
- \hbox_gset:Nn \g__super_ii_box
- { \spb@textsuperscript@core{\l__spb_super_cmd_ii_tl{#1}} }
- \hbox_gset:Nn \g__sub_ii_box
- { \spb@textsubscript@core{\l__spb_sub_cmd_ii_tl{#2}} }
+ \spb_math_print_store_ii:nnnnn {#1} {#2}
+ { \use:n } { \spb@textsuperscript@core } { \spb@textsubscript@core }
}
\cs_set_eq:NN \spbifmath \use_ii:nn
\cs_new:Npn \spb@ifmathtrue { \cs_set_eq:NN \spbifmath \use_i:nn }
@@ -470,6 +498,7 @@
\exp_last_unbraced:Nx
\group_end:
{
+ \UseHookWithArguments{cmd+/#1/after}{2}{#1}{##4}
\exp_args:Nv \str_if_eq:nnT
{ l__spb_#1_thiswd_mode_tl } { auto }
{ \spb_clear_thiswd:n {#1} }
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index d452fd0904..026e2b157c 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -1,15 +1,17 @@
+\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[load-preamble+]{cnltx-doc}
-\usepackage{siunitx,setspace,hologo,changelog,enumitem}
+\usepackage{siunitx,hologo,changelog,enumitem,codehigh}
\usepackage[spbmark]{altsubsup}
\usepackage[margin = 1in,marginparwidth = 0.6in,footskip = 0.5in]{geometry}
\usepackage[noto]{newtxmath}
\setcnltx
{
package = spbmark,
- version = v1.46n,
- date = 2024/07/14,
+ version = v1.46t,
+ date = 2024/10/31,
authors = Qu Yi,
+ title = \spbmark{} package,
info = Customize superscripts and subscripts,
email = toquyi@163.com,
url = https://github.com/texno3/spbmark,
@@ -18,10 +20,7 @@
\pkg*{spbmark} provides three commands \cs{super}, \cs{sub} and \cs{supersub} to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
},
color-scheme = blue,
- listings-options = {numbers = none,gobble = 2,lineskip = 1pt},
- pre-output = {\parindent = 0em\setstretch{1.3}},
- before-skip = \smallskipamount,
- after-skip = \smallskipamount
+ title-format = \LARGE
}
\makeatletter
\newcommand{\splitmeta}[2]{\meta{#1}\texttt{,}\meta{#2}}
@@ -41,9 +40,12 @@
\newnote{\newtag}[1]{\textcolor{red}{#1}}
\renewcommand{\emph}[1]{\textcolor{red}{#1}}
\renewcommand{\cnltx@write@lastname}{}
+\renewcommand{\cnltxpackagenameformat}[1]{\textcolor{cnltx}{\textsf{#1}}}
\setlist{nosep,topsep = \smallskipamount}
\setlist[description,1]{leftmargin = \parindent}
\setlist[itemize,1]{leftmargin = *}
+\SetCodeHighStyle[default]{2}{cs}
+\colorlet{link}{DeepPink}
\makeatother
\begin{document}
@@ -58,27 +60,27 @@ The following macro package options will redefine the script commands of the \La
The \code{\^{}} and \code{\_{}} tokens in the math mode are equivalent to the \cs{super} and \cs{sub} commands. The command \cs{defspbstyle} can be used to define the style \code{mathsp*} and \code{mathsb*} to change the format of the math superscripts and subscripts.
\keychoice{foot}{true,\fbox{false}}
The format of the footnote mark match the superscripts global move and format settings. \cs{defspbstyle} can be used to define the superscripts style \code{fnmark} to change the format of the footnote mark.
- \begin{example}[code-only]
- \defspbstyle{textsp}{vmove=-1pt,cmd=\bfseries}
- \defspbstyle{mathsb}{hmove=0.5em}
- \defspbstyle{fnmark}{cmd=\small\color{red}}
- \end{example}
+\begin{codehigh}
+\defspbstyle{textsp}{vmove=-1pt,cmd=\bfseries}
+\defspbstyle{mathsb}{hmove=0.5em}
+\defspbstyle{fnmark}{cmd=\small\color{red}}
+\end{codehigh}
\keychoice{both}{true,\fbox{false}}
The values of \option{text} and \option{math} two options are \code{true} or \code{false} at the same time.
\keychoice{all}{true,\fbox{false}}
The values of \option{text}, \option{math} and \option{foot} three options are \code{true} or \code{false} at the same time.
- \begin{example}[code-only]
- \usepackage[both]{spbmark}
- \usepackage[text,foot=true]{spbmark}
- \spbset{all=false,math}
- \end{example}
+\begin{codehigh}
+\usepackage[both]{spbmark}
+\usepackage[text,foot=true]{spbmark}
+\spbset{all=false,math}
+\end{codehigh}
\keychoice{spcore}{\fbox{trad},none}\newtag{New\\v1.46k}%
Kernel command case for text and math modes superscripts. If \code{none} is selected, support for the superscripts kernel command is removed, and the \option{cmd} and \option{vmove} options need to be set to control the size and offset of the superscripts.
- \begin{example}[code-only]
- \usepackage[spcore=none]{spbmark}
- \usepackage{graphicx}
- \spbset{spcmd=\scalebox{0.6},spvmove=5pt}
- \end{example}
+\begin{codehigh}
+\usepackage[spcore=none]{spbmark}
+\usepackage{graphicx}
+\spbset{spcmd=\scalebox{0.6},spvmove=5pt}
+\end{codehigh}
\keychoice{sbcore}{\fbox{trad},none}\newtag{New\\v1.46k}%
Option for subscripts kernel command case, similar to the \option{spcore} option.
\end{options}
@@ -101,13 +103,13 @@ There are currently three commands to print superscripts and subscripts. Their f
Save the width of the previous marker and provide center alignment.
\command{rlastwd}
Save the width of the previous marker and provide right alignment. Actually this is the width of the next marker.
- \begin{example}
- 1A\super{bcd}\sub{e}B \\
- 2A\super{bcd}\sub[hmove=-\llastwd]{e}B \\
- 3A\sub{e}\super{bcd}[hmove=-\llastwd]B \\
- 4A\super{bcd}\sub[hmove=-\clastwd]{e}B \\
- 5A\super{bcd}\sub[hmove=-\rlastwd]{e}B
- \end{example}
+\begin{demohigh}
+1A\super{bcd}\sub{e}B \\
+2A\super{bcd}\sub[hmove=-\llastwd]{e}B \\
+3A\sub{e}\super{bcd}[hmove=-\llastwd]B \\
+4A\super{bcd}\sub[hmove=-\clastwd]{e}B \\
+5A\super{bcd}\sub[hmove=-\rlastwd]{e}B
+\end{demohigh}
\command{supersub}[\sarg\oarg{kv list}\marg{super cont}\marg{sub cont}\oarg{kv list}]
This is a command that outputs both superscript and subscript at the same time. You can also use the shorter command \cs{spb} instead of it. The two \meta{kv list} are equivalent.
\command{superwd}
@@ -118,42 +120,42 @@ There are currently three commands to print superscripts and subscripts. Their f
Save the maximum width of superscript and subscript in the previous super-subscript command. That is, it is the larger of the \cs{superwd} and \cs{subwd} commands.
If horizontally move is negative and its absolute value is \emph{less} than the maximum width of the marker, then the marker overlaps the subsequent text. To avoid this use the command with the \emph{asterisk} parameter or adjust the horizontal distance with the marker length commands.
- \begin{example}
- \spbset{spvmove=5pt,vsep=1.8ex,spcmd=\color{blue}}
- 1A\super[hmove=-8pt]{super}B \\
- 2A\supersub[hmove=-8pt]{examsuper}{sub}B \\
- 3A\super*[hmove=-8pt]{super}B \\
- 4A\supersub*[hmove=-8pt]{examsuper}{sub}B \\
- 5A\super[hmove=-8pt]{super}\hspace{\dimexpr(\llastwd-8pt)}B \\
- 6A\supersub[hmove=-8pt]{examsuper}{sub}\hspace{\dimexpr(\maxwd-8pt)}B
- \end{example}
+\begin{demohigh}
+\spbset{spvmove=5pt,vsep=1.8ex,spcmd=\color{blue}}
+1A\super[hmove=-8pt]{super}B \\
+2A\supersub[hmove=-8pt]{examsuper}{sub}B \\
+3A\super*[hmove=-8pt]{super}B \\
+4A\supersub*[hmove=-8pt]{examsuper}{sub}B \\
+5A\super[hmove=-8pt]{super}\hspace{\dimexpr(\llastwd-8pt)}B \\
+6A\supersub[hmove=-8pt]{examsuper}{sub}\hspace{\dimexpr(\maxwd-8pt)}B
+\end{demohigh}
\command{defspbstyle}[\marg{style name}\marg{kv list}]
Defines the style of the superscripts or subscripts used for the \option{style} option.
\command{spbifmath}[\marg{math code}\marg{text code}]
In some cases, \code{math} or \code{text} output modes require different code for format or move. This command can be used when using the \code{match} option or changing the output mode locally, whitch should be used in the move or format options. It can switch the corresponding code according to different output modes.
\command{spbshortkv}[\marg{short opt}\marg{key value}]
Converts any existing key-value pair to a shorthand option. The value of key \code{\#1} indicates that the shorthand option needs to be assigned a value.
- \begin{example}
- \spbshortkv{x}{sphmove=#1}
- \defspbstyle{fancy}{sbcmd=\color{blue},mode=math}
- \spbshortkv{mysb}{style=fancy}
- 1A\super[x=2pt]{b} \\
- 2A\sub{b}[mysb]
- \end{example}
+\begin{demohigh}
+\spbshortkv{x}{sphmove=#1}
+\defspbstyle{fancy}{sbcmd=\color{blue},mode=math}
+\spbshortkv{mysb}{style=fancy}
+1A\super[x=2pt]{b} \\
+2A\sub{b}[mysb]
+\end{demohigh}
\end{commands}
The options common to \meta{kv list} of the three commands are as follows. They can also be used in \meta {key-value list} of the \cs{spbset} command. In this situation, in addition to \option{style} and \option{mode}, they will be set according to the type of the previous most recent command.
\begin{options}
\keyval{vmove}{fixed length}\Default{0pt}
- Vertical move of superscript or subscript. Represents the extra vertical distance \option{vsep} between superscript and subscript in super-subscript command. The vertical movement starts at the marker horizontal baseline position.
+ Vertical move of superscripts or subscripts. Represents the extra vertical distance \option{vsep} between superscript and subscript in super-subscript command. The vertical movement starts at the marker horizontal baseline position.
\keyval{hmove}{fixed length}\Default{0pt}
- Horizontal move of superscript or subscript. Represents the \emph{common} move of superscript and subscript in super-subscript command. The starting point for horizontal movement is to the left of the marker. Moved values can be expressed mathematically:
- \begin{example}
- 1A\super{b}[vmove=0.4ex+4pt/2,hmove=2pt*3-11.5pt] \\
- 2A\supersub[vsep={3pt,6pt-2bp}]{examsuper}{sub}
- \end{example}
+ Horizontal move of superscripts or subscripts. Represents the \emph{common} move of superscript and subscript in super-subscript command. The starting point for horizontal movement is to the left of the marker. Moved values can be expressed mathematically:
+\begin{demohigh}
+1A\super{b}[vmove=0.4ex+4pt/2,hmove=2pt*3-11.5pt] \\
+2A\supersub[vsep={3pt,6pt-2bp}]{examsuper}{sub}
+\end{demohigh}
\keyval{cmd}{format cmds}
- The format commands of superscript or subscript. The last command can take a parameter, which accepts superscript or subscript. Represents the format of superscript and subscript in the superscript and subscript commands.
+ The format commands of superscripts or subscripts. The last command can take a parameter, which accepts superscript or subscript. Represents the format \option{spbcmd} of superscript and subscript in super-subscript command.
\keyval{cmd+}{format cmds}
Add code to the previous option \option{cmd}.
\keyval{height}{fixed length}
@@ -163,22 +165,22 @@ The options common to \meta{kv list} of the three commands are as follows. They
\keyval{style}{style name}
Use the \meta{style name} defined by the \cs{defspbstyle} command to make it work global or local.
\keychoice{mode}{text,math,\fbox{match}}
- The mode of superscript or subscript output can be \code{text} or \code{math} mode. The \code{match} option automatically matches output modes according to the current mode.
+ The mode of superscripts or subscripts output can be \code{text} or \code{math} mode. The \code{match} option automatically matches output modes according to the current mode.
\keychoice{thiswd}{auto,\fbox{keep}}
Sets how the length of the this marker is handled after this command is used. If it is \code{keep}, the width of the previous marker remains the same. If it is \code{auto}, if the next token is a marker command and the upper or lower position is the \textcolor{red}{opposite} of the this command, the width of the this marker is maintained, otherwise the width automatically returns to \textcolor{red}{zero}.
- \begin{example}
- \spbset{sbhmove=-\llastwd,sbthiswd=auto,sbcmd=\color{red}}
- 1A\super{bcd}\sub[thiswd=keep]{e}Some texts\sub{e} \\
- 3A\super{bcd}\sub{e}Some texts\sub{e} \\
- 3A\sub{bcd}[thiswd=keep]\sub{e}Some texts\sub{e} \\
- 4A\sub{bcd}\sub{e}Some texts\sub{e}
- \end{example}
+\begin{demohigh}
+\spbset{sbhmove=-\llastwd,sbthiswd=auto,sbcmd=\color{red}}
+1A\super{bcd}\sub[thiswd=keep]{e}Some texts\sub{e} \\
+2A\super{bcd}\sub{e}Some texts\sub{e} \\
+3A\sub{bcd}[thiswd=keep]\sub{e}Some texts\sub{e} \\
+4A\sub{bcd}\sub{e}Some texts\sub{e}
+\end{demohigh}
\keyval{regex}{regular expression}
- After using the superscript or subscript command, this option is used to determine whether the \textcolor{red}{following} tokens match the \meta{regular expression}. If it does \textcolor{red}{not}, the width of the this marker returns to zero.
- \begin{example}[code-only]
- \newcommand{\mysp}[2][]{\super[regex=\c{mysb},#1]{#2}}
- \newcommand{\mysb}[2][]{\sub[regex=\c{mysp},#1]{#2}}
- \end{example}
+ After using a superscript or subscript command, this option is used to determine whether the \textcolor{red}{following} tokens match the \meta{regular expression}. If it does \textcolor{red}{not}, the width of the this marker returns to zero.
+\begin{codehigh}
+\newcommand{\mysp}[2][]{\super[regex=\c{mysb},#1]{#2}}
+\newcommand{\mysb}[2][]{\sub[regex=\c{mysp},#1]{#2}}
+\end{codehigh}
\end{options}
\section{Global control interface}
@@ -251,41 +253,67 @@ The following list of keys control the format of superscripts \emph{and} subscri
The alignment of superscripts and subscripts, which contains \code{l}, \code{c}, and \code{r} parameter respectively for left, center, and right alignment.
\end{options}
+\section{Marker hooks}
+\begin{commands}\setlength{\itemsep}{0pt}
+ \command{AddToHookWithArguments}[\Marg{spb/super/before}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/super/after}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/sub/before}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/sub/after}\oarg{label}\marg{code}]\newtag{New\\v1.46r}%
+ \pkg*{spbmark} provides hooks to markers of \cs{super} and \cs{sub} with arguments in front and back positions, this feature requires support in the \hologo{LaTeX} kernel after \textbf{2023/06/01}. Argument \code{\#1} in the \meta{code} represents \code{super} or \code{sub}, and argument \code{\#2} represents the marker content itself.
+\begin{demohigh}
+\AddToHookWithArguments{spb/super/before}{\spbifmath{(#1-#2)}{[#1-#2]}}
+$\super{a}$\super{b}
+\RemoveFromHook{spb/super/before}
+\end{demohigh}
+\end{commands}
+\begin{commands}\setlength{\itemsep}{0pt}
+ \command{AddToHookWithArguments}[\Marg{spb/super*/before}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/super*/after}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/sub*/before}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{spb/sub*/after}\oarg{label}\marg{code}]
+ Hook name with an asterisk indicates that this is the hook for the marker in the \cs{supersub} command.
+\end{commands}
+\begin{commands}\setlength{\itemsep}{0pt}
+ \command{AddToHookWithArguments}[\Marg{cmd+/super/after}\oarg{label}\marg{code}]\nonl
+ \command{AddToHookWithArguments}[\Marg{cmd+/sub/after}\oarg{label}\marg{code}]
+ The above hooks are located in the marker horizontal boxes, and these two hooks are located at the end of the group outside of the \cs{super} and \cs{sub} commands. Due to the addition of the peek command at the end of marker commands, using such as \code{cmd/super/after} hook directly would result in a peek error.
+\end{commands}
+
\section{Examples of use}
Here is a list of the three commands, please pay attention to the usage of optional parameter. Note when the horizontal move is negative, the starting point is at the right end of the mark.
-\begin{example}
- \defspbstyle{fancy}{cmd=\color{purple}}
- \spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
- 1A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
- 2$A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
- 3A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
- 4A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB \\
- 5A\super{c\super{d}}B
-\end{example}
+\begin{demohigh}
+\defspbstyle{fancy}{cmd=\color{purple}}
+\spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
+1A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
+2$A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
+3A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
+4A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB \\
+5A\super{c\super{d}}B
+\end{demohigh}
\subsection{siunitx}
It can also be used with the \pkg*{siunitx} package to output superscripts and subscripts in the unit:
-\begin{example}
- \spbset{spcmd=\spbifmath{}{\color{purple}}}
- \sisetup{text-superscript-command=\super}
- 1-\qty[mode=text]{10}{A^2} \\
- 2-\unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
- 3-\qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{blue}]{b}{c}} \\
- 4-\spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
-\end{example}
+\begin{demohigh}
+\spbset{spcmd=\spbifmath{}{\color{purple}}}
+\sisetup{text-superscript-command=\super}
+1-\qty[mode=text]{10}{A^2} \\
+2-\unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
+3-\qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{blue}]{b}{c}} \\
+4-\spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
+\end{demohigh}
\subsection{realscripts}
If the OpenType text font you are using does not have optical sizes, the superscripts and subscripts may not appear correctly. Loading the \pkg*{realscripts} package before the \pkg*{spbmark} package fixes this behavior.
-\begin{example}[code-only]
- \usepackage{realscripts,spbmark}
-\end{example}
+\begin{codehigh}
+\usepackage{realscripts,spbmark}
+\end{codehigh}
\subsection{altsubsup}
The \pkg*{altsubsup} package allows to write alternate superscripts and subscripts in math mode with \code{\^{}}\oarg{mark} and \code{\_{}}\oarg{mark} dimensions. When the package is loaded using the \code{spbmark} option, the superscripts and subscripts mechanism of \pkg*{spbmark} is used, you can use \cs{defspbstyle} to define its superscripts style \code{altsup} and subscripts style \code{altsub}.
-\begin{example}
- \defspbstyle{altsup}{sphmove=-\llastwd,spthiswd=auto,spvmove=1pt}
- $A_[bcd]^[e]B$
-\end{example}
+\begin{demohigh}
+\defspbstyle{altsup}{sphmove=-\llastwd,spthiswd=auto,spvmove=1pt}
+$A_[bcd]^[e]B$
+\end{demohigh}
\subsection{footnote}
\pkg*{spbmark} also patches the footer markers for standard document class and \cls*{KOMA-Script}. You can format the footer markers by redefining the \cs{fnmarkfont} command. Note that extra horizontal move does not work with footnote markers.
@@ -314,6 +342,7 @@ At present, the vertical and horizontal move are effective for the unit commands
\begin{version}[v = 1.46k,date = 2024/06/21]
\item Add options \option{spcore} and \option{sbcore}: Set kernel commands for superscripts and subscripts of text and math modes.
\end{version}
+ \shortversion{v = 1.46r,date = 2024/10/29,changes = Give hooks to markers with parameters at the front and back positions.}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg
deleted file mode 100644
index 3185ca52c8..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg
deleted file mode 100644
index 01bae15339..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg
deleted file mode 100644
index fe2b4f1314..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..bdf7b5f7cc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..554c38560e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-3.ogg
new file mode 100644
index 0000000000..9308e9a233
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
deleted file mode 100644
index cc969b31f7..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
+++ /dev/null
@@ -1,6 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-1.0.0.0.0.ogg
-1.0.0.0.0-1.ogg
-1.0.0.0.0-2.ogg
-1.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg
deleted file mode 100644
index ff6db0d091..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.ogg
new file mode 100644
index 0000000000..691673df68
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg
deleted file mode 100644
index 67712c1745..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
deleted file mode 100644
index f8f68b313b..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg
deleted file mode 100644
index 9478bdebbb..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
deleted file mode 100644
index 38ff0aca21..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
+++ /dev/null
@@ -1,6 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-2.0.0.0.0.ogg
-2.0.0.0.0-1.ogg
-2.0.0.0.0-2.ogg
-2.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg
deleted file mode 100644
index 44d415fd31..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..f8fae21be9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..96b69ea840
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-3.ogg
new file mode 100644
index 0000000000..d60e2ba905
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.m3u
new file mode 100644
index 0000000000..4e0571eaa2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.ogg
new file mode 100644
index 0000000000..082616bf2a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.1.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..64bd32b812
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..8bb76a508f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.m3u
new file mode 100644
index 0000000000..0370690176
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.ogg
new file mode 100644
index 0000000000..11b2820e6a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.2.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..f794c8140b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.m3u
new file mode 100644
index 0000000000..ceb59c6b81
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.ogg
new file mode 100644
index 0000000000..ba3fe7b0a4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.3.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.ogg
new file mode 100644
index 0000000000..b0a6e2ca49
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
deleted file mode 100644
index d500956316..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
deleted file mode 100644
index affd24989c..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
deleted file mode 100644
index 7126037f5d..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-3.0.0.0.0.ogg
-3.0.0.0.0-1.ogg
-3.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
deleted file mode 100644
index d7147b5cd6..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..ed62c6df89
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..b629b82737
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.m3u
new file mode 100644
index 0000000000..73b21c3803
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.ogg
new file mode 100644
index 0000000000..139ac4c813
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.1.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.m3u
new file mode 100644
index 0000000000..de244a6f12
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.ogg
new file mode 100644
index 0000000000..8f23d38a21
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..4d98d6bed4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.m3u
new file mode 100644
index 0000000000..31f63c2d02
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.ogg
new file mode 100644
index 0000000000..65b3a7c55f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.ogg
new file mode 100644
index 0000000000..255ac0c187
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.m3u
new file mode 100644
index 0000000000..8bdc1fe834
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.ogg
new file mode 100644
index 0000000000..afc1630048
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.2.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.ogg
new file mode 100644
index 0000000000..0e3e4ffd83
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
deleted file mode 100644
index c5307858c7..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
deleted file mode 100644
index ef40bd9734..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
deleted file mode 100644
index 3eebda66de..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-4.0.0.0.0.ogg
-4.0.0.0.0-1.ogg
-4.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
deleted file mode 100644
index 95da73a4f1..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
deleted file mode 100644
index ed93b0f718..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
+++ /dev/null
@@ -1,8 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-5.0.0.0.0.ogg
-5.1.0.0.0.ogg
-5.1.0.0.0-1.ogg
-5.2.0.0.0.ogg
-5.2.0.0.0-1.ogg
-5.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
deleted file mode 100644
index ba529eb4c3..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
deleted file mode 100644
index e987134adf..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
deleted file mode 100644
index 69e1f4059e..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
+++ /dev/null
@@ -1,4 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-5.1.0.0.0.ogg
-5.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
deleted file mode 100644
index 8eab7ae3fb..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
deleted file mode 100644
index dfa846e2fc..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
deleted file mode 100644
index 1404701800..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
deleted file mode 100644
index e5106355e4..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-5.2.0.0.0.ogg
-5.2.0.0.0-1.ogg
-5.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
deleted file mode 100644
index 7e2bb4d502..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/author.ogg b/macros/latex/contrib/spelatex/Example/example-spel/author.ogg
index ee14dcc502..5b95a41b0f 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/author.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/author.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/date.ogg b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
index 2c8670eb1a..36001fa7ed 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/star-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/star-1.ogg
new file mode 100644
index 0000000000..df7ef8d50e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/title.ogg b/macros/latex/contrib/spelatex/Example/example-spel/title.ogg
index f728d6671a..695ba7b4b5 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/title.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/title.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.pdf b/macros/latex/contrib/spelatex/Example/example.pdf
index 81ace4e4e3..cf3f1d79db 100644
--- a/macros/latex/contrib/spelatex/Example/example.pdf
+++ b/macros/latex/contrib/spelatex/Example/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.tex b/macros/latex/contrib/spelatex/Example/example.tex
index e7a5e8dc69..481d6eb811 100644
--- a/macros/latex/contrib/spelatex/Example/example.tex
+++ b/macros/latex/contrib/spelatex/Example/example.tex
@@ -1,9 +1,12 @@
-\documentclass{article}
+\documentclass{report}
-\usepackage[dutch,english]{babel} % load babel before spel to avoid
+\usepackage[dutch,english]{babel} % load babel before spelatex to avoid
% option clash!
\selectlanguage{english}
-\usepackage[format=ogg]{spelatex}
+\usepackage[format=ogg,
+ server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example
+ ]
+ {spelatex}
\newrobustcmd\CTAN{CTAN}
\spelmacad{CTAN}{see-tan}
@@ -12,7 +15,7 @@
\title{\spelatex{} Example}
\author{Walter Daems and Paul Levrie}
-\date{2011/04/12}
+\date{2024/09/09}
\setlength\parindent{0em}
\setlength\parskip{1ex}
@@ -20,33 +23,34 @@
\maketitle
-\section{Introduction}
+\chapter{Introduction}
-\begin{spelchunk}
- This file is just a simple showcase of the features of \spelatex.
+\<<<{
+ This file is just a simple showcase of the features of \spelatex{}.
Below, you'll find examples of:
-\end{spelchunk}
+}
\begin{itemize}
\spelitem{a simple equation}
\spelitem{a more complex equation}
\end{itemize}
+\chapter{Examples}
\section{A simple equation}
\label{eqn:simple}
-\begin{spelchunk}
+\<<<{
Consider the following simple definition of a polynomial function and
check its spoken version by clicking on it.
-\end{spelchunk}
-\begin{spelchunk}[arealink]
+}
+\<<<[arealink]{
\begin{equation}
- f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+ f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 25
\end{equation}
-\end{spelchunk}
-\begin{spelchunk}
+}
+\<<<{
This seems a simple equation, however, it is not so straightforward
for an automated reader, to read it correctly.
-\end{spelchunk}
+}
\section{A more complex equation}
\newcommand\xx[2]{\ensuremath{#1_{#2}}}
@@ -66,6 +70,14 @@
\]
\end{spelchunk}
+\section{Remark}
+\<<<{
+Instead of the \texttt{\textbackslash{}<<<} macro, one can also use the
+spelchunk environment. We did this in the next sections.
+}
+
+\chapter{More advanced topics}
+
\selectlanguage{dutch}
\section{Een andere taal}
\begin{spelchunk}
@@ -80,6 +92,7 @@ voorleesstem de geselecteerde taal zal volgen.
\end{spelchunk}
\selectlanguage{english}
+
\section{And some extras}
\subsection{Citations}
\begin{spelchunk}
@@ -93,6 +106,8 @@ equation. For a more complex equation, we refer the user to
section~\ref{eqn:complex}.
\end{spelchunk}
+\selectlanguage{dutch}
+
\bibliographystyle{alpha}
\begin{thebibliography}{99}
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..d45b7eb367
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg
new file mode 100644
index 0000000000..182ba31765
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
index a6c2dc392a..336bff8202 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
@@ -1,31 +1,30 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.0.0.0.0.ogg
-1.1.0.0.0.ogg
-1.1.0.0.0-1.ogg
-1.1.0.0.0-2.ogg
-1.1.0.0.0-3.ogg
-1.2.0.0.0.ogg
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg
-1.3.0.0.0.ogg
-1.3.0.0.0-1.ogg
-1.3.0.0.0-2.ogg
-1.3.0.0.0-3.ogg
-1.3.0.0.0-4.ogg
-1.3.0.0.0-5.ogg
-1.3.0.0.0-6.ogg
-1.3.0.0.0-7.ogg
-1.3.0.0.0-8.ogg
-1.3.0.0.0-9.ogg
-1.3.0.0.0-10.ogg
-1.3.0.0.0-11.ogg
-1.3.0.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
index f41ff41400..0e9f2bbbc1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
index ea54ff261a..706d7fec65 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
index 316f66fd5f..f451a0ddd4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
index 28092584ed..fd7fb39aaf 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
index 4ebe5bab70..17ed4772e7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.1.0.0.0.ogg
-1.1.0.0.0-1.ogg
-1.1.0.0.0-2.ogg
-1.1.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
index 131dd33d49..f3bea76ba8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
index db1dae06a9..66182bc053 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
@@ -1,13 +1,13 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.0.0.0.ogg
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
index 6985d8f27b..e5a44e2a10 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
index 714b76e75e..67b45b1f3a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
index a451b698c9..c3aa2bfcc9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
index 5ab8e79931..3c4db3afde 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
index b0e1e17f30..422edaa872 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
index bdc044b04e..70ea994628 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
index aa34ddaadd..cefdd66a35 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
index a622038409..e475a09b0b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
index 2e596a4e9b..175b98e5a7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
index fd0cb0f042..97f143fa0e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg
index ca6e7b0840..b6111fb289 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
index ad74166429..fdae5dffb4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
index d30536104f..4828bd3601 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
index 8755692ae2..46124694f5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
index fd861c6630..316674ba27 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
index c19ca3750d..e845fbfbb0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg
deleted file mode 100644
index 896cfe1e9f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
index b2ceb636ed..727787fc27 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
index 2878767463..eb32419d97 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
index e5b76465e9..b31204ccb8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
index 6b9483b142..f164ff68d7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
index 6432746abe..f4db61078c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
index fd282fc22e..221f06335e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
index 11e45178a3..8c33f3cc8c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
index 5df4676bff..13b95ad07c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
index d673720186..e7cfe5aa3b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
@@ -1,15 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.3.0.0.0.ogg
-1.3.0.0.0-1.ogg
-1.3.0.0.0-2.ogg
-1.3.0.0.0-3.ogg
-1.3.0.0.0-4.ogg
-1.3.0.0.0-5.ogg
-1.3.0.0.0-6.ogg
-1.3.0.0.0-7.ogg
-1.3.0.0.0-8.ogg
-1.3.0.0.0-9.ogg
-1.3.0.0.0-10.ogg
-1.3.0.0.0-11.ogg
-1.3.0.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
index 41874f58e9..d8e5232ee7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
index 9c053963b6..1487f62e77 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
@@ -1,59 +1,50 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.0.0.0.0.ogg
-2.1.0.0.0.ogg
-2.1.0.0.0-1.ogg
-2.1.0.0.0-2.ogg
-2.1.0.0.0-3.ogg
-2.1.0.0.0-4.ogg
-2.1.0.0.0-5.ogg
-2.1.0.0.0-6.ogg
-footnote-1.ogg
-2.2.0.0.0.ogg
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg
-2.3.0.0.0.ogg
-2.3.0.0.0-1.ogg
-2.3.0.0.0-2.ogg
-2.3.0.0.0-3.ogg
-2.3.0.0.0-4.ogg
-2.4.0.0.0.ogg
-2.4.0.0.0-1.ogg
-2.4.0.0.0-2.ogg
-2.4.0.0.0-3.ogg
-2.4.0.0.0-4.ogg
-2.4.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
index b25506f74b..42e59bfb0f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
index 0351cb3d19..3d4b783af4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
index 711dc66367..4232b87d17 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
index c8926c15ab..27d544deda 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
index 62f31b27b8..de6067aa99 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
index 7d21a4318b..8e9e7b7661 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
index 8f73c2c7ca..129d9995f6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
index 639be865ec..a090328aba 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
@@ -1,10 +1,10 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.1.0.0.0.ogg
-2.1.0.0.0-1.ogg
-2.1.0.0.0-2.ogg
-2.1.0.0.0-3.ogg
-2.1.0.0.0-4.ogg
-2.1.0.0.0-5.ogg
-2.1.0.0.0-6.ogg
-footnote-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
index 7360d8018a..413326a439 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
index 6fba59dcf3..8cc006355c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
@@ -1,39 +1,31 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.0.0.0.ogg
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
index 15e3c2f0c9..72cab138a3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
index 6bf77572b9..4627fc6c64 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
new file mode 100644
index 0000000000..b8e671c6c0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
new file mode 100644
index 0000000000..e106557fc2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
index fde009a238..c5965215e7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
index 0c47ef1f1c..d51010f671 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
index ede30fbdfe..3730a263a0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
new file mode 100644
index 0000000000..f6d2ec2a3d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
new file mode 100644
index 0000000000..2d9a8aa09c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
new file mode 100644
index 0000000000..9c6aec08fd
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
new file mode 100644
index 0000000000..882271a2f9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
new file mode 100644
index 0000000000..cc92ea30b4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
index 98183521d8..d13d4ba944 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
@@ -1,7 +1,15 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
index d62c585ba2..2f01d71313 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
index a8a29d2801..c8fa8ecb58 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg
deleted file mode 100644
index 437bbfb2fa..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg
deleted file mode 100644
index 9770b89c6e..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg
deleted file mode 100644
index 3f7983f7c5..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
index 472d803099..4467facf76 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
index 375c547c08..6c30d096f0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
deleted file mode 100644
index cc8c361025..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
deleted file mode 100644
index 72e05ea116..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
deleted file mode 100644
index 9a79083394..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
deleted file mode 100644
index f154852d0e..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
deleted file mode 100644
index 511d94185c..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg
deleted file mode 100644
index 69f1ac6701..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
index 319b497479..d68adc7228 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
@@ -1,16 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
index 74ae517fa6..77491c5c87 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
index 95cc730494..6fd74fd9f5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
index 85b092fa09..95ffb0b988 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
new file mode 100644
index 0000000000..c53eb02721
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
new file mode 100644
index 0000000000..958b38fe48
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
new file mode 100644
index 0000000000..ca7c035dc6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
new file mode 100644
index 0000000000..e7f7528a6c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
index db806b06e6..cc10b81b71 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
@@ -1,5 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
index a1832ce2db..166f912ed9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
index 6bba254cb3..77e5806347 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
index be39c9b098..cef6b409c5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
index 19449c3761..ca8effdb4d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
deleted file mode 100644
index c83f2d5cae..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
deleted file mode 100644
index 550e0e4712..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
deleted file mode 100644
index a725418127..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
index 5d6b37fe95..c27985f67b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
@@ -1,9 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
index ee37616991..7bc27273c8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
deleted file mode 100644
index f557268e9a..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
deleted file mode 100644
index 949ad1f84f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
deleted file mode 100644
index 1a186d15de..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
deleted file mode 100644
index d2195a26cc..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
deleted file mode 100644
index cb6ebd1183..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
deleted file mode 100644
index 8ae2cccab1..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
deleted file mode 100644
index c93a3c6d6c..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
deleted file mode 100644
index ae39555217..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
+++ /dev/null
@@ -1,6 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
deleted file mode 100644
index 8c82713973..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
index 6772bbf466..920c695ba0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
index 45d4885ae7..1401ff6b3a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
index 9d5ab0c4fe..8498731ff6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
index 1b0411966c..a86febc081 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
index 8652268b66..e86420bb63 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.3.0.0.0.ogg
-2.3.0.0.0-1.ogg
-2.3.0.0.0-2.ogg
-2.3.0.0.0-3.ogg
-2.3.0.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
index 955a986c87..d7a7c6c2ef 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
index 3a95f7e72a..608c52f217 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
index d137101e04..4b9904619f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
index b5feb6b9ce..d9300bed1f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
index a585c2e035..d97a96d7de 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
deleted file mode 100644
index 59f9b5a3c6..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
index ee754a4627..ab915e0fa1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
@@ -1,8 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.4.0.0.0.ogg
-2.4.0.0.0-1.ogg
-2.4.0.0.0-2.ogg
-2.4.0.0.0-3.ogg
-2.4.0.0.0-4.ogg
-2.4.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
index 32673df314..76eccdcbab 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
index 8f2c49d9e4..5af0ee212b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
@@ -1,26 +1,27 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.0.0.0.0.ogg
-3.1.0.0.0.ogg
-3.1.0.0.0-1.ogg
-3.1.0.0.0-2.ogg
-3.1.0.0.0-3.ogg
-3.2.0.0.0.ogg
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg
-3.3.0.0.0.ogg
-3.3.0.0.0-1.ogg
-3.4.0.0.0.ogg
-3.4.0.0.0-1.ogg
-3.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
index 3f7aa5376b..cd6dfb8aa6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
index 8de21e60da..ead0073e85 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
index 181c6ce4df..f0baab0387 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
index 374e4a19ed..0c218c7956 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
index 841095e90f..82dc86d9fb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.1.0.0.0.ogg
-3.1.0.0.0-1.ogg
-3.1.0.0.0-2.ogg
-3.1.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
index 402087171e..04128436ec 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
index 925bdb7d03..d4e62a851b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
@@ -1,16 +1,16 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.0.0.0.ogg
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
index 889afb6f22..ed14085b24 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
index d47169eb17..455c142159 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
index 4fdf603598..292deb50b5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
index 226d8aaa40..e151c0003f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
index 9765dbb2c6..60b2302847 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
index 44ba2dd04a..701953fdc4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
index 4dca129e2c..df234b6cf6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
index cf767af99b..eef0104839 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
index 02fd558b14..2df0bf7591 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
index 83c9a9a5f4..7304ff0d7b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
index ed2d91628d..49f1d3f79f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
index 0d64440011..6f7e715754 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
index 0c554f69ba..f44a0c1836 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg
index 7f0754c7bb..85e7c5a0bb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
index f748017144..b72666c7b5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
index afff242cea..776f1af67b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
index bcee2491e1..8ee26f5c14 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
index 6fc1783bde..7245ad8b24 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.3.0.0.0.ogg
-3.3.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
index f144a1d1a6..8df0e55586 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
index caba787f5d..1a5e199543 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
index 7785c186eb..0c1243bb5e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg
new file mode 100644
index 0000000000..e569e88aef
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
index 6839de2f60..0d0461c9a9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
@@ -1,5 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.4.0.0.0.ogg
-3.4.0.0.0-1.ogg
-3.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
index 6da364e1f3..1ae561c259 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
index 9d5aff05d5..674bd4d86f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
@@ -1,53 +1,60 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.0.0.0.0.ogg
-4.1.0.0.0.ogg
-4.1.0.0.0-1.ogg
-4.1.0.0.0-2.ogg
-4.1.0.0.0-3.ogg
-4.1.0.0.0-4.ogg
-4.1.0.0.0-5.ogg
-4.1.0.0.0-6.ogg
-4.1.0.0.0-7.ogg
-4.1.0.0.0-8.ogg
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg
-4.2.0.0.0.ogg
-4.2.0.0.0-1.ogg
-4.2.0.0.0-2.ogg
-4.2.0.0.0-3.ogg
-4.2.0.0.0-4.ogg
-4.2.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
index e05874d6ba..b82a4e7657 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
index 58dc04068d..31709b06ad 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
index a1483cea12..61b116002e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
index 44ca72ba64..88a25bbd2c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
index 39a304fb03..2332f1a599 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
index 67fa7fce21..968947c0ad 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
index 8fd82f60d0..b4bac46044 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
index 159cc44e6a..b4816612ce 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
deleted file mode 100644
index d70d6468e8..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
index 3a01c842f0..be57b8a2a8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
@@ -1,46 +1,53 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.0.0.0.ogg
-4.1.0.0.0-1.ogg
-4.1.0.0.0-2.ogg
-4.1.0.0.0-3.ogg
-4.1.0.0.0-4.ogg
-4.1.0.0.0-5.ogg
-4.1.0.0.0-6.ogg
-4.1.0.0.0-7.ogg
-4.1.0.0.0-8.ogg
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
index 0ead8d7bca..f9347bf645 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
index 6d37123ff3..75fd27a313 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
index 8720221612..346cefc755 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
index e526fea8ca..bd35578d86 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
index f05f6410f6..1e21840750 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
index c456177811..8b980c2b5f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
index a68cbb7f86..8cd3740b03 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
index 34c7209ae5..7275f04af9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
index d20e2c57c3..5f7ea29e9e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
index a00d94f72f..b9158f1120 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
index 24fe12ce0a..964b14ba39 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
index ce7eb24a73..e53855cc90 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
index e303e96f8e..a3a7d04859 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
index d20e2c57c3..bce718d515 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
index bdbb7e4f6e..6978c38510 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
index d20e2c57c3..a97ed48530 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
index 6a3684a7b3..1e3af2b0b3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
index 2f2d924197..fb31f97706 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
index 6052ee961a..4af0644be6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
index 362145b403..70429b98f6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
deleted file mode 100644
index 9d0007377d..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
deleted file mode 100644
index e6633a1efc..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
index e9a7ce2db1..f0c36d4b42 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
@@ -1,7 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
index e7b7866591..9d0bc74d80 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
index 1949056128..478384d011 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
index 247c35c3a4..7a6086466d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
index 7f3d1fb857..6a3529d7b4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
index 3f1990e971..6bde7ecac7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
index 46999ff035..13d65b54fa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
index 2e17823934..88bb3fdec7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
index a3f5673c63..2ca79c1e65 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
index e4469c62f8..1922af0680 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
index 2a89c9e2af..6f8e11e826 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
index da6ed1a16f..aaa486a798 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
deleted file mode 100644
index 575d63530a..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
index 1b21289bb0..de9a5bcd55 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
@@ -1,8 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
index e417d4427f..bb8d2cc00c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
index cc6324a68b..125b5c53e8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
index d913b6722b..4d1fde8824 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
index 8049b4c6f2..350142b864 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
index 4b2aa15351..e6d664a609 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
index 59d35f8864..c2f7a7e536 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
index 5023aa141e..504976ee66 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
new file mode 100644
index 0000000000..15a8ddc408
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
new file mode 100644
index 0000000000..0a735638bc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
new file mode 100644
index 0000000000..dd47711216
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
new file mode 100644
index 0000000000..f1c6c8ca2e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg
new file mode 100644
index 0000000000..eff48bb977
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u
new file mode 100644
index 0000000000..e544ce0103
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
new file mode 100644
index 0000000000..5f1b606454
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg
new file mode 100644
index 0000000000..ef7d732922
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg
new file mode 100644
index 0000000000..99cebd916c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg
new file mode 100644
index 0000000000..b50f037cae
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg
new file mode 100644
index 0000000000..25ec7e76b7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.m3u
new file mode 100644
index 0000000000..73f34c1e9f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg
new file mode 100644
index 0000000000..96c708c72d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.9.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
index e9f6dc1fb0..73cc5b59c6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
index 29f8601a16..1fa7831611 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
index d38401e89e..8078f24cfa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
index 0f703d3092..4455b8cb75 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg
index 6b05a09f2e..bd24a4636a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
index dc99929f4a..a8548a72e8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.2.0.0.0.ogg
-4.2.0.0.0-1.ogg
-4.2.0.0.0-2.ogg
-4.2.0.0.0-3.ogg
-4.2.0.0.0-4.ogg
-4.2.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
index 4a86da2c86..0ec2c29039 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg
index c039789ca4..03570f7e73 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
index 270a6f6c2b..0019e5b083 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-5.0.0.0.0.ogg
-5.0.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
index 9d384db35b..c891f23df7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
index b959950db4..6f092a091d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
index 1e0e8f0664..e8f3f9b5f5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
@@ -1,48 +1,51 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.0.0.0.0.ogg
-6.0.0.0.0-1.ogg
-6.1.0.0.0.ogg
-6.1.0.0.0-1.ogg
-6.2.0.0.0.ogg
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg
-6.3.0.0.0.ogg
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg
-6.4.0.0.0.ogg
-6.4.0.0.0-1.ogg
-6.4.0.0.0-2.ogg
-6.5.0.0.0.ogg
-6.5.0.0.0-1.ogg
-6.5.0.0.0-2.ogg
-6.6.0.0.0.ogg
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg
-6.7.0.0.0.ogg
-6.7.0.0.0-1.ogg
-6.7.0.0.0-2.ogg
-6.7.0.0.0-3.ogg
-6.7.0.0.0-4.ogg
-6.7.0.0.0-5.ogg
-6.7.0.0.0-6.ogg
-6.7.0.0.0-7.ogg
-6.7.0.0.0-8.ogg
-6.7.0.0.0-9.ogg
-6.7.0.0.0-10.ogg
-6.7.0.0.0-11.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
index f1b641261b..96f80a9962 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
index ac16291da1..92e07a5dfb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
index 523f40cae3..079a63c2ab 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.1.0.0.0.ogg
-6.1.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
index 8f149312f2..a73f932c22 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
index e204a3185c..0b1e1cf03c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
@@ -1,7 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.0.0.0.ogg
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
index 122a2dbbcf..022a1f0cd3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
index 464d55991a..54745ef221 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg
new file mode 100644
index 0000000000..dac080258c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg
new file mode 100644
index 0000000000..7b28b18fbc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
index a5741a63f1..cddec3f22a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
@@ -1,4 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
index dcdb3dc3f2..54558cb1cb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
index b3f0b35ec6..73c59128a1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
index 47a9259f45..2f98a47e39 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
index 0d189cb732..2fa6032d60 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
index 5f1ab83f22..f8150e99d5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
@@ -1,14 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.0.0.0.ogg
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
index c5129d96af..d483dc8b2b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
index f8f68b313b..3d0122e582 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
index 03c58738cd..dbf894e332 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
index 13dc05e262..91bab22ffa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
index 260158312f..a3c0080fc8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
index 8a43e52e34..332127bc9f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
index 5de30a7757..1ae11d045f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
index 1e35aaed0f..80ca5d1cf7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
index bcb48dda01..5e9ed01abe 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
index 9b1d6ab7d7..afc81c03ad 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
index 9932c5cbfc..e940e2e5c1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
index d2a70dbf20..8d4b1bf38a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
index a1f79c1f83..96a97fcb58 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
index c4fd845f5b..0a57cf270b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
index b7c47100a5..24fc7d472a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
index 90bf30c41f..4952fbab25 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
index 201f087a7e..091f440baf 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
index ef2790eb3c..b93568e7ca 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.4.0.0.0.ogg
-6.4.0.0.0-1.ogg
-6.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
index 68e58600eb..d2c8d7513b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
index 1c1eff8793..108e435cd4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg
index b5254ef6c2..3fc189611e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
index 92cb21e03c..e3cdf57ec0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.5.0.0.0.ogg
-6.5.0.0.0-1.ogg
-6.5.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
index 53d769aac7..e3c9f5a04c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
index a3e705a5a5..089d4134ec 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
@@ -1,9 +1,10 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.0.0.0.ogg
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
index 700b8c7e9a..e04160260a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
index abd95d02ff..8cca82dfe2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
index 5200b6e405..b468bee3c7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
index 194c9db5ce..ac062ee44b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
index e45e6c3453..1c7be9ab2e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
index 5c098338e6..24537d4a2f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
index 5eae47cfde..d3443b1947 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
new file mode 100644
index 0000000000..f68396cb8d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
index fbb664ca1e..2a760f5e51 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
@@ -1,4 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
index a36c28ebe7..42551160d1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
index d500956316..64bd32b812 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
index a34acee074..f8bd5d17dc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg
index 7a635a44b2..092d7a7624 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
index affd24989c..8bb76a508f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
index 9fe42a9abd..75529b3052 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
index 91a5eb0453..928559c1d0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
index 0268496ef5..2b1f795b1a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
index c4bc4dfd11..6958b58411 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
index 2bb5feffa5..92fc80f04f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
index 9e0a398575..d06639baaa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
index e1185b7cd4..7a8f238d32 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
index 81788dd3a9..7f9d1ac9c2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
@@ -1,14 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.7.0.0.0.ogg
-6.7.0.0.0-1.ogg
-6.7.0.0.0-2.ogg
-6.7.0.0.0-3.ogg
-6.7.0.0.0-4.ogg
-6.7.0.0.0-5.ogg
-6.7.0.0.0-6.ogg
-6.7.0.0.0-7.ogg
-6.7.0.0.0-8.ogg
-6.7.0.0.0-9.ogg
-6.7.0.0.0-10.ogg
-6.7.0.0.0-11.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
index 1af6116cd1..532084f887 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
index c289bcfa04..0beb02fa7a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
index 59c209eb26..4425640911 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
@@ -1,27 +1,30 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.0.0.0.0.ogg
-7.0.0.0.0-1.ogg
-7.1.0.0.0.ogg
-7.2.0.0.0.ogg
-7.3.0.0.0.ogg
-7.4.0.0.0.ogg
-7.5.0.0.0.ogg
-7.6.0.0.0.ogg
-7.7.0.0.0.ogg
-7.8.0.0.0.ogg
-7.8.1.0.0.ogg
-7.8.2.0.0.ogg
-7.8.3.0.0.ogg
-7.8.4.0.0.ogg
-7.8.5.0.0.ogg
-7.8.6.0.0.ogg
-7.9.0.0.0.ogg
-7.9.1.0.0.ogg
-7.9.2.0.0.ogg
-7.10.0.0.0.ogg
-7.10.1.0.0.ogg
-7.10.2.0.0.ogg
-7.10.3.0.0.ogg
-7.10.4.0.0.ogg
-7.11.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
index 2208a529c9..b0c653b30e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
index aad8452193..1a17426618 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.1.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
index 4ea4028b7b..4e3e49b55b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
index 4e2e99f016..0aa3114809 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
@@ -1,7 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.0.0.0.ogg
-7.10.1.0.0.ogg
-7.10.2.0.0.ogg
-7.10.3.0.0.ogg
-7.10.4.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
index 07be005182..bb1bba267b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
index 9118733d86..8cc8424aa3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.1.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
index 68f3689b55..62fab6bdd4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
index 6eecefd465..a30eafa4af 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
index f368c080f1..4903f7e47a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
deleted file mode 100644
index 3adc9502ac..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.10.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
deleted file mode 100644
index ffd90a79f0..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
deleted file mode 100644
index 552f4fbbec..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.10.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
deleted file mode 100644
index c7c7756494..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
index d1c41b06d6..c0edf30e52 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
@@ -1,3 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.11.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
index 8a4aa575b6..84e30f93d7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u
new file mode 100644
index 0000000000..981c8da8b3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
new file mode 100644
index 0000000000..86c37621f0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u
new file mode 100644
index 0000000000..7a77c23c1b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
new file mode 100644
index 0000000000..e0d0008291
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u
new file mode 100644
index 0000000000..a8b4b0f8f4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
new file mode 100644
index 0000000000..e3eef3c84e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u
new file mode 100644
index 0000000000..1b26925fec
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
new file mode 100644
index 0000000000..d328d479d6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.m3u
new file mode 100644
index 0000000000..0a1332a90a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg
new file mode 100644
index 0000000000..9bc2cfb4b2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u
new file mode 100644
index 0000000000..f94fed909c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg
new file mode 100644
index 0000000000..417cc73fa4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
index 65dc14045a..7e1163118f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.2.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
index d009f03745..d5974f86d0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
index 88d216c122..1958cfe612 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.3.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
index ec71da1483..660750ccbf 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
index 5ab8d891ca..83042a92e3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.4.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
index 909cf56536..c7c577c859 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
index db3199ecb2..22ebb4cdf2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.5.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
index 501e4d6f3e..f11ff63cdb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
index 2b73a9329d..eb6918c140 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.6.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
index c6d001f03d..747031c250 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
index ad44439ec3..0f6cb103a6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.7.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
index 89ec80a5d8..988c5970e2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
index 7c9bda47ee..c7288f1045 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
@@ -1,9 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.8.0.0.0.ogg
-7.8.1.0.0.ogg
-7.8.2.0.0.ogg
-7.8.3.0.0.ogg
-7.8.4.0.0.ogg
-7.8.5.0.0.ogg
-7.8.6.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
index 804b7f66b6..1e11fb87e0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
deleted file mode 100644
index 7e19147683..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
deleted file mode 100644
index 9dc083b378..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
deleted file mode 100644
index e3b31c66bb..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
deleted file mode 100644
index 706084cd9b..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
deleted file mode 100644
index a88f6b83c0..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
deleted file mode 100644
index 427ff5ee22..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
deleted file mode 100644
index 35f43920c7..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
deleted file mode 100644
index 09f9e2aa42..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
deleted file mode 100644
index a47d61bdd1..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
deleted file mode 100644
index 2b206fe380..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
deleted file mode 100644
index fe1f3bdb65..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
deleted file mode 100644
index f38ca7926f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
index 92e3c5d6e3..597db7e0da 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
@@ -1,5 +1,10 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.0.0.0.ogg
-7.9.1.0.0.ogg
-7.9.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
index 9650ec9582..147e09b562 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
index 5e2efd9c5f..2f6053e031 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.1.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
index 527ae5ae02..f501a93222 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
index 9f4c5730bb..d0ce528ae0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
index ddf594575d..b1b95c40ee 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u
new file mode 100644
index 0000000000..a10e789e16
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
new file mode 100644
index 0000000000..6209cf14c8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u
new file mode 100644
index 0000000000..3dbe7e2ef6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
new file mode 100644
index 0000000000..51417e19ee
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u
new file mode 100644
index 0000000000..47416c2485
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
new file mode 100644
index 0000000000..10f84c527d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u
new file mode 100644
index 0000000000..25592e95da
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
new file mode 100644
index 0000000000..bde3479999
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.m3u
new file mode 100644
index 0000000000..8c97882fe1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg
new file mode 100644
index 0000000000..ecca4721b9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.7.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
index a9f226ac10..d3d8e6643e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg
index a33e942cd2..43582a8207 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg
index 06f2d25095..3c26247b6a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg
deleted file mode 100644
index f270038b25..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
index a708edd941..2e5f2ce8bc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
index 1c90a0e4b4..1d3c492348 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg
new file mode 100644
index 0000000000..11e575b526
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
index 83fe2049a4..ac5b71e655 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-8.0.0.0.0.ogg
-8.0.0.0.0-1.ogg
-8.0.0.0.0-2.ogg
-8.0.0.0.0-3.ogg
-8.0.0.0.0-star-1.ogg
-8.0.0.0.0-star-2.ogg
-8.0.0.0.0-star-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg
index 24dbfc82f7..f4c96d5d7d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/author.ogg b/macros/latex/contrib/spelatex/spelatex-spel/author.ogg
index 10bf7e2413..34bec9232f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/author.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/author.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/date.ogg b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
index 4bf1df7b7c..6ae2a6fd24 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
index 33da761ca9..578bd9e634 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
index 1b1c68a106..cfea7a5f06 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/title.ogg b/macros/latex/contrib/spelatex/spelatex-spel/title.ogg
index 01842fdaa6..d60d403786 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/title.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/title.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex.dtx b/macros/latex/contrib/spelatex/spelatex.dtx
index bdedc84d70..68962e505b 100644
--- a/macros/latex/contrib/spelatex/spelatex.dtx
+++ b/macros/latex/contrib/spelatex/spelatex.dtx
@@ -20,7 +20,6 @@
% This work consists of the files spelatex.dtx, spelatex.ins,
% and any derivative file, generated from the dtx file using
% the ins driver file.
-%
% \fi
%
% \iffalse
@@ -33,17 +32,21 @@
\ProvidesFile{spelatex.dtx}
%</driver>
%<*package>
- [2024/06/21 v0.91 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)]
+ [2024/10/23 v0.93 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)]
%</package>
-\def\fileversion{0.91}
-\def\filedate{2024/06/21}
+\def\fileversion{0.93}
+\def\filedate{2024/10/23}
%<*driver>
\documentclass[10pt]{ltxdoc}
\usepackage{makeidx}
\usepackage{alltt}
\usepackage[english]{babel}
-\usepackage[extramath]{spelatex}
+\usepackage[extramath,
+ server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex
+ ]{spelatex}
+\usepackage[overload]{empheq}
\usepackage{amsmath}
+\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{tikz}
\IfFileExists{tocbibind.sty}{\usepackage{tocbibind}}{}
@@ -83,6 +86,11 @@
% - avoided big active link areas\\
% - sketched bigger picture, leading to
% the three project phases.}
+% \changes{v0.92}{2024/09/09}{. Second overhaul:\\
+% - dumped orgmode export idea (too small of an audience)\\
+% - introduced markers for non-area-links\\
+% - implemented audio on server\\
+% - implemented <\kern-0.5ex<\kern-0.5ex<-macro as a shorthand}
%
% \GetFileInfo{spelatex.dtx}
%
@@ -111,41 +119,49 @@
% \maketitle
% \fvset{gobble=2}
%
+% \section*{Disclaimer}
+% \<<<{
+% Note that this is an experimental package. Its interface may change
+% considerably over subsequent versions (until v1.0).
+% }
+%
% \section{Preface}
%
% \subsection{Background}
%
-% \begin{spelchunk}
+% \<<<{
% At our institute, the University of Antwerp in Belgium, the number
% of students with reading and/or writing disorders (or at least
% aware of these disorders) is increasing. Approximately 5\% of the
-% students are registered with such a disorder. Probably there's an
-% additional number of people opting not to register their disorder.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% students are registered with such a disorder and the number is rising
+% steadily over the past 10 years. Probably this number is an
+% underestimation as a number of people opt not to register their
+% disorder.
+% }
+
+% \<<<{
% A large portion of the study materials we offer to students is
% still written material. The authors believe that this will keep on
% being so, even given the multimedia and AI options that have
% become mainstream. Let's not go into this debate for now.\\
% However, written course texts cannot be but suboptimal for
% students with reading disorders.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% For small texts, reading them out loud and recording them using a
% voice recorder to create an aid for our target group, is still
-% feasible. We have taken that route at our institute for exam
+% feasible. We have taken that in the past for exam
% assignments. However, for bigger texts (like course syllabi) this
-% is beyond the time a teacher can afford spending on this small a
+% is beyond the time a professor can afford spending on this small a
% group of students. Yes, economic laws also govern teaching!
-% \end{spelchunk}
+% }
%
% \subsection{State of the art}
%
% \subsubsection{In general}
%
-% \begin{spelchunk}
+% \<<<{
% Therefore, reverting to readily available text-to-speech software
% is an obvious choice. Nowadays, special software exists that
% provides the functionality of reading out loud the contents of
@@ -158,40 +174,40 @@
% loaded with non-trivial mathematics, the standard text-to-speech
% packages fail to meet our expectations. In addition, they cannot
% read a sensible textual description of figures or tables.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The issue with reading mathematics will be solved in the future,
% by enforcing mathematical equations to follow a specific standard
% that can be parsed and converted, not only into a visual
% representation, but also into proper text. MathML will be one of
% the candidates for that format.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The issue with figures and tables can be solved by using the tag
% infrastructure of PDF. The format provides a system of tags that
% allow you to provide extra information about the content of a
% document, in much the same way as you can specify an 'alt' key for
% an image in HTML. This tag could contain a proper textual
% description of the figure or the table.
-% \end{spelchunk}
+% }
%
% \subsubsection{For \LaTeX}
%
-% \begin{spelchunk}
-% Currently, the \LaTeX project is investing in enabling \LaTeX{} to
+% \<<<{
+% Currently, the \LaTeX{} project is investing in enabling \LaTeX{} to
% partially automate the tagging of PDFs with the \texttt{tagpdf}
% package~\cite{TAGPDF}, such that the user only has to do a minimal
% job (adding tags for figures and tables). The goal is to maximize
% the accessibility of \LaTeX-produced documents.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% So all is well? Not quite. Though I'm confident that with enough
-% time the community will solve the issue completely, there are
+% \<<<{
+% So all is well? Not quite. Though we are confident that --- with enough
+% time --- the community will solve the issue completely, there are
% still some gaps:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{The tagpdf package is still not a part of the mainstream
% \LaTeX{}-kernel.}
@@ -202,13 +218,13 @@
%
% \subsection{This package}
%
-% \begin{spelchunk}
+% \<<<{
% This package aims to overcome these problems in the meantime and
% also to contribute to the longterm goal: making perfectly tagged
% PDFs that are read by any PDF-reader.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In the \emph{first phase} of this package (i.e. the version you are
% looking at right now), this package reads your \LaTeX{} source,
% converts the text and the formulas to audio files and equips your
@@ -217,58 +233,49 @@
% The audio files are external files that should be packaged with
% your PDF to allow a reader to use the document with the available
% audio.
-% How does it read the formulas? It parses your \LaTeX{} constructs and
+% You have the choice to use local files or files that are made available on a
+% server (as holds for this text; the audio files are on the CTAN servers).\\
+% How does \spelatex{} read the formulas? It parses your \LaTeX{} constructs and
% makes the best of it. This will probably be the part that might
% survive up until the very last phase of this package.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In a \emph{second phase} of this package, the audio files will be embedded
% into the PDF. Currently, there are not enough PDF readers that
% support this feature. Therefore, we decided to keep using the
% external audio files for now.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In a \emph{third phase}, the audio files \emph{may be} abandoned
% alltogether, fully switching to tags. And we do think that this
% should be the end goal. The reasons why we say
% \emph{'may be'}, are:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{The voices of the current PDF-readers are still not of the
% same quality as the ones available online. And quality does matter.}
% \spelitem{The better voices may require cloud access, and probably
-% will not be free, therefore (me) paying for them at document creation
-% time, makes more sense to me than having my students pay
+% will not be free, therefore (us) paying for them at document creation
+% time, makes more sense to us than having our students pay
% for these voices whenever they read the document.}
% \spelitem{The industry standard Adobe reader is not easily available
% on open-source operating systems (like UNIX/BSD/Linux-derived
% platforms). You might consider using emulation using
% wine~\cite{WINE}, but in that case you can forget about audio. Free
% access to software is something we consider to be a must-have,
-% rather than a nice-to-have. In addition, Walter feels miserable when
-% he's forced to use anything else than GNU/Linux, because then he
-% keeps moaning that his productivity is ruined.}
+% rather than a nice-to-have.}
% \end{itemize}
%
-% \begin{spelchunk}
-% Admittedly, in this first phase, using the \spelatex{} package
-% causes a significant overhead in writing your text. Therefore we
-% also provide you the \spelbox{} extension for the Org-mode
-% \cite{ORGMODE} of \GNU{} Emacs \cite{EMACS}. To satisfy your
-% curiosity: \spelbox{} stands for ``Speech-Enabled \LaTeX{} By
-% Org-mode eXport''.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% \<<<{
% Will \spelatex{} become obsolete in the future?
% Undoubtedly so. But for the time being, it answers our desire to
% provide our students with good audio support when studying their
% engineering courses. That is now, not only in five years time.
-% \end{spelchunk}
+% }
-% \begin{spelchunk}
+% \<<<{
% We hope that you enjoy
% using our software, or that --- if you are not pleased with it ---
% it triggers you to give us feedback or to come up with a better
@@ -278,32 +285,34 @@
% One of her suggestions (not to use big hyperlink-areas) was almost
% instantly implemented and has been adopted as the standard way of
% linking.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% You are free to use our software but kindly ask you to provide a
% mention ``The audio materials of this text have been prepared with
-% \spelatex{}/\spelbox{}'' in the section treating copyrights,
-% bibliographic data or any other spot that is suited. We'd also
-% welcome a short mail of yours telling that you make use of the
-% package. The pleasure of receiving such an e-mail makes our day.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% \spelatex{}'' in the section treating copyrights,
+% bibliographic data or any other spot of your text that is
+% suited. We'd also welcome a short mail of yours telling that you
+% make use of the package. The pleasure of receiving such an e-mail
+% makes our day.
+% }
+%
+% \<<<{
% You are free to modify this \LaTeX-package, keeping a reference to
% our original package intact, provided that your package is subject
% to the LPPL license, as is \spelatex{}. However, contributing to our
-% package might be a better way to go, in order to bundle the efforts
+% package or to the \LaTeX{} project in general, might be a better
+% way to go, in order to bundle the efforts
% for a better speech-enabled \LaTeX{}.
-% \end{spelchunk}
-%
+% }
+% \clearpage
% \section{Introduction}
%
% \subsection{Target audience}
-% \begin{spelchunk}
+% \<<<{
% \spelatex{} is primarily intended for persons with a reading
% disorder. This may be:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{persons suffering dyslexia}
% \spelitem{visually impaired persons}
@@ -318,177 +327,154 @@
% \end{itemize}
% \end{itemize}
%
-% \begin{spelchunk}
+% \<<<{
% But also people who want to multitask, e.g., gardening while
% listening to a technical book, can benefit from
% \spelatex{}.\footnote{Note that multitasking is not reserved for persons
% without visual impairment. Also visually impaired persons can
% benefit from listening to an audiobook while doing other
-% things.} Personally, we often use \spelatex{} to proofread texts as we
-% hear language errors more easily than we spot them while reading.
-% \end{spelchunk}
+% things.}\\ We often use \spelatex{} to proofread the texts we've
+% written ourselves as we hear language errors more easily than we
+% spot them while reading.
+% }
%
% \subsection{The magic under the hood}
%
-% \subsubsection{The \spelbox{}-ecosystem}
-%
-% \begin{spelchunk}
-% The \spelatex{}-package is one of the parts of the \spelbox{}
-% ecosystem. It consists of three components:
-% \end{spelchunk}
-% \begin{itemize}
-% \spelitem{An Org-mode exporter called \texttt{ox-spel} \cite{OXSPELATEX}}
-% \spelitem{This \LaTeX{}-package \spelatex{} \cite{SPEL}}
-% \spelitem{A script embeded in the Perl module \texttt{SpeL::Wizard} \cite{SPELWIZARD}}
-% \end{itemize}
-%
% \subsubsection{The overall picture}
%
+% \<<<{
+% \spelatex{} equips the PDF that is generated by \LaTeX{}
+% with hyperlinks to audio files that contain the spoken
+% equivalent of the original text, equations, figures and tables.
+% }
+% \spelmacpp{figref}[1]{Fig.~\ref{#1}}
+% \newcommand\figref[1]{Fig.~\ref{#1}}
% \begin{spelchunk}
-% \spelatex{} equips the PDF that is generated by \LaTeX{}
-% with hyperlinks to audio files that contain the spoken
-% equivalent of the original text, equations, figures and tables
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% Let's look at this in detail in Fig.~\ref{fig:setup}.
-% For now, ignore the two top boxes, and let's assume you are
-% composing the file |text.tex| as your document. We will return
-% to the two top boxes later.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% Let's start by considering the flow depicted in
+% Fig.~\ref{fig:setup} at the top of the diagram. \figref{fig:setup}
% By loading the |spel.sty| package in your source
-% document, \LaTeX{} will produce a PDF file that references audio
+% document (|text.tex|), \LaTeX{} will produce a PDF file that references audio
% files that will be generated later (see below). In
% addition, it generates text chunks (i.e. small portions of
% your text) in separate files (|.tex|) and a spel index file
% (|.spelidx|) referencing them in sequence.
% \end{spelchunk}
%
-% \begin{spelchunk}
+% \<<<{
% Together with the |.aux|-file (needed by \spelatex{} for labels and
% citations), these are the inputs to the \spelatex-engine (|spel-wizard.pl|)
% that parses the text chunks, writes a full text version of them as
% spel files (with extension |.spel|) and
-% controls the text-to-speech engine to generate audio files of
+% controls the text-to-speech engine to generate audio versions of
% them.\footnote{In the figure, Ogg Vorbis has been chosen as
% format, but this can be any audio format.}
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% To avoid excessive text to speech conversion (i.e. an expensive step)
-% the \spelatex{} engine derives a finger print of them and compares it
+% the \spelatex{} engine derives an MD5 fingerprint of them and compares it
% to previously generated fingerprints for the chunk. If the
-% finger print has changed, the audio file is overwritten (or
+% fingerprint has changed, the audio file is overwritten (or
% created the first time), otherwise it is left untouched.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% As a cherry on top, the \spelatex-engine also creates a playlist,
+% \<<<{
+% As a cherry on top, the \spelatex-engine also creates a top-level playlist,
% such that you may use the audio files for a \POD{}cast-like
% listening experience.\\
% Something that has not been indicated on the figure, is that for
% reading out loud entire (sub)sections, the PDF-file also references
% m3u playlists that gather all chunks belonging to the (sub)section.
-% \end{spelchunk}
+% }
%
-% \begin{figure}[p]
+% \begin{figure}
% \begin{spelchunk}
% \begin{center}
% \begin{tikzpicture}
-% [scale=0.8,>=latex,
-% doc/.style={rectangle,fill=black!10,align=center,minimum
-% width=2cm,minimum height=2cm},
-% tool/.style={rectangle,draw,align=center}]
-% \node [doc] (utext) at (0,9) {text.org\\\footnotesize(unprepped
-% source)};
-% \node [tool] (instrument) at (0,6) {Org-mode exporter\\\footnotesize(\spelbox)};
-% \node [doc] (text) at (0,3) {text.tex\\\footnotesize(prepped source)};
-% \draw[->] (utext) -- (instrument);
-% \draw[->] (instrument) -- (text);
-% \node [doc] (R) at (-3,0) {spel.sty\\\footnotesize(package)};
-% \node [tool] (latex) at (0,0) {\LaTeX\\\footnotesize(compiler)};
-% \node [doc] (pdf) at (0,-3) {text.pdf\\\footnotesize(PDF with\\\footnotesize hyperlinks)};
-% \node [doc] (spelidx) at (6,-3) {text.spelidx\\\footnotesize(index file)};
-% \node [doc] (aux) at (9,-3) {text.aux\\\footnotesize(auxiliary file)};
-% \node [doc] (files) at (3,-3) {*.tex\\\footnotesize(text chunks)};
-% \draw[->] (text) -- (latex);
-% \draw[->,dotted] (text) -- (R);
-% \draw[->,dotted] (spelidx) -- (files);
-% \draw[->] (R) -- (latex);
-% \draw[->] (latex) -- (pdf);
-% \draw[->] (latex) edge[out=0,in=90] (spelidx);
-% \draw[->] (latex) edge[out=10,in=90] (aux);
-% \draw[->] (latex) edge[out=-10,in=90] (files);
-% \node [tool] (engine) at (6,-6) {\spelpl{}\\
-% \footnotesize(\spelatex{} engine)};
-% \node [tool] (t2s) at (1.5,-6) {text-to-speech\\engine};
-% \draw[->] (files) -- (engine);
-% \draw[->] (spelidx) -- (engine);
-% \draw[->] (aux) -- (engine);
-% \node[doc] (ogg) at (0,-9) {*.ogg\\\footnotesize(audio files)};
-% \node[doc] (spel) at (3,-9) {*.spel\\\footnotesize(spel files)};
-% \node[doc] (m3u) at (6,-9) {text.m3u\\\footnotesize(playlist)};
-% \node[doc] (md5) at (9,-9) {*.md5\\\footnotesize(fingerprints)};
-% \draw[->] (engine) -- (spel);
-% \draw[->] (engine) -- (m3u);
-% \draw[<->] (engine) -- (md5);
-% \draw[->,dotted] (pdf) edge[out=-115,in=115] (ogg);
-% \draw[->,dotted] (m3u) edge[out=-125,in=-55] (ogg);
-% \draw[->,dashed] (engine) -- (t2s);
-% \draw[->] (spel) -- (t2s);
-% \draw[->] (t2s) -- (ogg);
+% [scale=0.8,>=latex,
+% doc/.style={rectangle,fill=black!10,align=center,minimum
+% width=2cm,minimum height=2cm},
+% tool/.style={rectangle,draw,align=center}]
+% \node [doc] (text) at (0,3) {text.tex\\\footnotesize(source file)};
+% \node [doc] (R) at (-3,0) {spel.sty\\\footnotesize(package)};
+% \node [tool] (latex) at (0,0) {\LaTeX\\\footnotesize(compiler)};
+% \node [doc] (pdf) at (0,-3) {text.pdf\\\footnotesize(PDF with\\\footnotesize hyperlinks)};
+% \node [doc] (spelidx) at (6,-3) {text.spelidx\\\footnotesize(index file)};
+% \node [doc] (aux) at (9,-3) {text.aux\\\footnotesize(auxiliary file)};
+% \node [doc] (files) at (3,-3) {*.tex\\\footnotesize(text chunks)};
+% \draw[->] (text) -- (latex);
+% \draw[->,dotted] (text) -- (R);
+% \draw[->,dotted] (spelidx) -- (files);
+% \draw[->] (R) -- (latex);
+% \draw[->] (latex) -- (pdf);
+% \draw[->] (latex) edge[out=0,in=90] (spelidx);
+% \draw[->] (latex) edge[out=10,in=90] (aux);
+% \draw[->] (latex) edge[out=-10,in=90] (files);
+% \node [tool] (engine) at (6,-6) {\spelpl{}\\
+% \footnotesize(\spelatex{} engine)};
+% \node [tool] (t2s) at (1.5,-6) {text-to-speech\\engine};
+% \draw[->] (files) -- (engine);
+% \draw[->] (spelidx) -- (engine);
+% \draw[->] (aux) -- (engine);
+% \node[doc] (ogg) at (0,-9) {*.ogg\\\footnotesize(audio files)};
+% \node[doc] (spel) at (3,-9) {*.spel\\\footnotesize(spel files)};
+% \node[doc] (m3u) at (6,-9) {text.m3u\\\footnotesize(playlist)};
+% \node[doc] (md5) at (9,-9) {*.md5\\\footnotesize(fingerprints)};
+% \draw[->] (engine) -- (spel);
+% \draw[->] (engine) -- (m3u);
+% \draw[<->] (engine) -- (md5);
+% \draw[->,dotted] (pdf) edge[out=-115,in=115] (ogg);
+% \draw[->,dotted] (m3u) edge[out=-125,in=-55] (ogg);
+% \draw[->,dashed] (engine) -- (t2s);
+% \draw[->] (spel) -- (t2s);
+% \draw[->] (t2s) -- (ogg);
% \end{tikzpicture}
-% \end{center}
-% \end{spelchunk}
-% \begin{spelchunkad}
-% The easiest flow is to start from the top box, which represents
-% an org file that describes your text. We call this the
-% unprepped source. Read the Orgmode
-% documentation on \LaTeX{} and \spelatex{}-exporting to get to know
-% the format. The Orgmode \spelatex{} exporter, creates a fully
-% equiped \LaTeX{} file of your text. We call this the prepped source. You can
-% also start by composing this file yourself.
-% If you prepped source file uses the \spelatex{} style file, than
-% your compiler will generate a PDF file with hyperlinks, a
-% dot aawks-file and a dot spellindex-file together with a directory full of
-% dot tex files containing the text chunks to be processed by the
-% \spelpl-engine. This is a perl script that converts the chunks into
-% plain text readable spel files. The script is called spel dash
-% wizard dot pl. It also creates a playlist and audio files using a
-% text-to-speech engine. In this case, these are
-% Ogg-Vorbis files. To avoid having to call the text-to-speech
-% engine too frequently (which may incur costs), MD5-fingerprints
-% are used such that chunks that have been generated before and
-% are unchanged, can be reused. The end result is a PDF file that
-% references the audio files.
-% \end{spelchunkad}
-% \caption{Basic tool setup of \spelbox{} of which the \spelatex{} package
-% is an integral part; filled boxes indicate files,
-% outlined boxes indicate tools; solid lines indicates use or
-% creation of files, dotted lines indicate references, dashed lines
-% indicate a control relationship.}
-% \label{fig:setup}
+% \end{center}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% If you load the \spelatex{} style file in your source file (at the
+% top of the figure) and prepare your source file according to the
+% instructions in this manual, than
+% your compiler will generate a PDF file with hyperlinks, a
+% dot aawks-file and a dot spellindex-file together with a directory full of
+% dot tex files containing the text chunks to be processed by the
+% \spelpl-engine. This is a perl script that converts the chunks into
+% plain text readable spel files. The script is called spel dash
+% wizard dot pl. It also creates a playlist and audio files using a
+% text-to-speech engine. In this case, these are
+% Ogg-Vorbis files. To avoid having to call the text-to-speech
+% engine too frequently (which may incur costs), MD5 fingerprints
+% are used such that chunks that have been generated before and
+% are unchanged, can be reused. The end result is a PDF file that
+% references the audio files.
+% \end{spelchunkad}
+% \spelcaption{Basic tool setup of the \spelatex{} package; filled boxes indicate
+% files, outlined boxes indicate tools; solid lines indicates use or
+% creation of files, dotted lines indicate references, dashed lines
+% indicate a control relationship.}
+% \label{fig:setup}
% \end{figure}
%
-% \begin{spelchunk}
+% \<<<{
% You might wonder: where are the links? Well, there are three
% variants:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{\emph{area links}, which are almost exclusively
% used for equations, tables or figures. These links make an entire
% rectangle active, linking to the corresponding audio file.}
% \spelitem{\emph{group links}, indicated by small right-pointing
-% triangles next to section headers. These cause all blocks in the
-% section to be read one by one.}
-% \spelitem{\emph{hidden links}, wich are, as the name suggests,
-% hidden to avoid visual disturbance of the text; every
-% paragraph, footnote and list is activated by a link on the
-% whitespace before the first line of the chunk. Try it! Once you
+% triangles next to section headers (on the far right). These cause all
+% blocks in the section to be read one by one.\\
+% In case you specify the
+% package option \texttt{markervisibility=none} these triangles will become
+% invisible. However, the clickable areay still exists. Try!}
+% \spelitem{\emph{chunk links}, before every
+% paragraph, footnote or list, a small triangle indicates a clickable link.\\
+% If you activate the package option \texttt{markervisibility=onlygroups}, they will
+% become invisible, but still clickable. Try it! Once you
% are aware that these regions are active, you'll find them
-% easily. In addition, not using the full paragraph as an active
+% easily. Not using the full paragraph as an active
% region, allows existing hyperlinks (like for citations, references
% or URLs) to still function.}
% \end{itemize}
@@ -504,30 +490,36 @@
% \spelmacad{thanks}{the thanks macro}
% \spelmacad{item}{the item macro}
% \spelmacad{spelitem}{the spelitem macro}
-% \begin{spelchunk}
+% \<<<{
% Generating the text chunks to be read out loud requires us to use
% special \LaTeX-macros. For all pieces of text that are within
% an existing macro (e.g. |\title|, |\author|, |\section|,
-% |\caption|, |\footnote|, |\thanks|), these macros have been
+% |\footnote|, |\thanks|), these macros have been
% redefined by the \spelatex{}-package to
% execute the magic without any further hassle.\\
% We call these \LaTeX-fragments \emph{implicit spelchunks}.%
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% However, not all \LaTeX-constructs can be dealt with in an
% automatic way. This is true for any |\item| you put inside a list.
% You need to replace that with a |\spelitem| that takes the text
% that follows as a first explicit argument, i.e. |\item blabla|
% should be replaced by |\spelitem{blabla}|.
+% The same holds for any |\caption|. Too many packages (like
+% subcaption/subfigure) redefine captions, so I chose to stay out of
+% their way. Therefore every |\caption| must be replaced by a
+% |\spelcaption|.
+% }
+% \<<<{
% We call these \LaTeX-fragments \emph{defunct implicit
% spelchunks}. They should have been implicit, but we could not get
% that to work without problems. Therefore you need to mark them
% explicitly as |\spelitem| constructs.
-% \end{spelchunk}
+% }
%
% \subsubsection{Explicit spelchunks}
-% \begin{spelchunk}
+% \<<<{
% One would hope that displaymath environments are also implicit
% spelchunks. However, overriding environments in \LaTeX{} is a tricky
% business. In view of this, the \spelatex{} package keeps away from
@@ -540,12 +532,12 @@
% will have to provide a text description for tables and figures
% manually, using a subsequence |spelchunkad|
% environment (the suffix ad stands for \emph{audio description}).
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% To keep the terminology clear, we label them as automatic
-% and manual spelchunks respectively:
-% \end{spelchunk}
+% and manual explicit spelchunks respectively:
+% }
% \begin{itemize}
% \spelitem{automatic: \texttt{equation}, \texttt{eqnarray},
% \texttt{gather}, \texttt{align}, \texttt{alignat}, \ldots}
@@ -553,25 +545,26 @@
% \texttt{tikzpicture}, \ldots}
% \end{itemize}
%
-% \begin{spelchunk}
+% \<<<{
% The similarity between both categories is that you both embed them
% in a |spelchunk| environment, but that you provide the manual
% textual description using a |spelchunkad| environment right after
-% the chunk: in this way, the |spelchunkad| environment provides an
+% the chunk for the manual ones: in this way, the |spelchunkad| environment provides an
% alternative text for the chunk. Note that this way of working also
-% enables you to provide an overriding text for an equation, if you
-% think that \spelpl{} is doing a bad job. You do me a favor if
-% you submit this subpar behavior as a bug report to me!
-% \end{spelchunk}
+% enables you to provide an overriding text for an automatic spelchunk,
+% e.g., an equation, if you
+% think that \spelpl{} is doing a bad job. You do us a favor if
+% you submit this subpar behavior as a bug report to us!
+% }
%
-% \begin{spelchunk}
+% \<<<{
% It is worthwile to make good descriptions for a figure or a
% table. It's here that you can create true added value to your
% manuscript, even for readers without impairment!
-% \end{spelchunk}
+% }
%
% \subsubsection{Paragraphs}
-% \begin{spelchunk}
+% \<<<{
% However, there is the elephant in the room that we did not yet
% talk about, the paragraph. Indeed, it is desirable to split plain
% text according to the paragraphs in the document. Alas, paragraphs
@@ -581,63 +574,40 @@
% explicit spelchunks and need to be embedded
% in |spelchunk| environments. This environment will cause its
% contents to be hyperlinked to a separate piece of audio.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Encasing all your paragraphs with |spelchunk| environments
% manually is a pain. There is a reason why in \LaTeX{}
% paragraphs can be created by a double newline: convenience.
% The |spelchunk|-environment encasing ruins this totally!
-% \end{spelchunk}
-%
-% \subsubsection{Emacs Orgmode to the rescue!}
-% \begin{spelchunk}
-% However, we provide an exporter for the Org-mode \cite{ORGMODE} of
-% Emacs \cite{EMACS}, such
-% that you can prepare your manuscript in Org-mode and not worry
-% about all these exlicit tricks with |spelchunk| and |spelitem|
-% constructs.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% This brings us to the two top boxes in the diagram of
-% Fig.~\ref{fig:setup}. If you prepare your manuscript in Org-mode,
-% and use the Org-mode exporter, you don't have to worry about explicit
-% spelchunks, or defunct implicit spelchunks. Therefore, we encourage
-% you to use Emacs as your editor. The learning
-% curve is steep, but the rewards regarding ease-of-use are huge.
-% In that way, you can focus on providing textual descriptions for
-% the non textual portions of your manuscript, e.g. giving a good
-% description of a graph.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% Note that this very document has been prepared manually to make it
-% independent of Org-mode. It also shows that if you don't
-% want to use Emacs and Org-mode, you will suffer some considerable
-% pain in equipping your manuscript with an overload of |spelchunk|
-% environments. We have only one advice: don't use the \spelatex{}
-% outside \spelbox{}. Outside a proper boxed confinement,
-% spells easily become curses\ldots
-% \end{spelchunk}
+% }
+% \spelmacad{<<<}{the shorthand macro}
+% \<<<{
+% To ease the pain and in order to avoid the visual intrusiveness of the
+% spelchunk environments, you can also use the \texttt{\textbackslash{}<<<\{\}} command to
+% encase your paragraphs. In some cases the \texttt{\textbackslash{}<<<\{\}}
+% command will not work, e.g., if there is a |Verbatim| environment
+% inside. In that case you must use the |spelchunk| environment directly.
+% }
%
% \subsection{Extra math commands}
%
-% \begin{spelchunk}
+% \<<<{
% Some of the ways to specify mathematical expressions in \LaTeX{} is
% very liberal, what makes converting them to text quite
% difficult. Therefore, we also provide some
% extra constructs that make life easier for both parties: you as a
% user and \spelpl{} as a parser.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% An example of this are sets. We provide two commands to define a
% set. As we want these commands to blend in with general \LaTeX{},
% we did not equip them with a prefix |spel|. Therefore, we made
% activating them conditional to specifying the package option
% |extramath|.
-% \end{spelchunk}
+% }
% \begin{description}
% \spelitem[\texttt{\textbackslash{}setenum}]{a command to define a set
% that consists of comma or semicolon separated elements}
@@ -648,14 +618,11 @@
%
% \subsection{Added value}
%
-% \begin{spelchunk}
+% \<<<{
% Why would it make sense to use \spelatex? We think there are many
% selling points. We can mention a few:
-% \end{spelchunk}
+% }
% \begin{description}
-% \spelitem[Minimal overhead]{
-% Preparing a \LaTeX{} manuscript for use with \spelatex{} requires a
-% minimal amount of work, if you are using Org-mode in Emacs.}
% \spelitem[Free for the content provider]{
% If you are using a freeware text-to-speech engine (like for
% example festival \cite{FESTIVAL} or balabolka \cite{BALABOLKA})
@@ -664,8 +631,9 @@
% the effort of preparing your manuscript. There are no license
% costs involved.\\
% You could also consider to use an online paying text-to-speech
-% service. As an example, We incorporated a connection to Amazon's
-% Polly \cite{AWSPOLLY}.\\
+% service. As an example, we incorporated a connection to Amazon's
+% Polly \cite{AWSPOLLY}. We admit, it's not free, but it doesn't
+% cost an arm and a leg either.\\
% In addition, if your user has a better-quality (maybe
% commercial) text-to-speech system, he/she can reconvert the text
% files him-/herself, equiping your document with a voice they
@@ -675,72 +643,71 @@
% \spelitem[Free for your audience]{
% In addition, the user of your audio-enabled document doesn't
% need to buy a license for text-to-speech software. Only a PDF-viewer
-% and standard audio-player program are required.}
+% and a standard audio-player program are required.}
% \spelitem[Math capable]{
-% Try some of the equations in this manuscript. We are quite
-% confident you'll be convinced fairly soon.}
+% Try some of the equations in this manuscript in
+% section~\ref{sec:demo}. We are quite confident you'll be
+% convinced fairly soon.}
% \end{description}
%
% \section{Installation}
%
% \subsection{The \spelatex{} package}
-% \begin{spelchunk}
+% \<<<{
% If you are a package manager then you'll know how to
% prepare an installation package for \spelatex.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% If you are a normal user then you have two options. First,
-% check if there is a package that your favorite \LaTeX{}
-% distributor has prepared for you. Most of the major distributions
-% (like e.g. \TexLive{} or \MikTeX{}) do so.\\
-% Second, grab the TDS package
-% from \CTAN{} \cite{CTAN} (spel.TDS.zip) and unzip it somewhere in your
-% own TDS tree, regenerate your filename database and off you go.
-% In any case, make sure that \LaTeX{} finds the file |spel.sty|.
-% \end{spelchunk}
+% \<<<{
+% If you are a normal user, check if there is a package that your
+% favorite \LaTeX{} distributor has prepared for you. Most of the
+% major distributions (like e.g. \TexLive{} or \MikTeX{}) do so.\\
+% The fallback option is to grab the |spelatex.sty| file from CTAN
+% and put it in our \TeX{} search path.
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The \spelatex{} package uses a number of auxiliary packages, fetch them
% from \CTAN{} \cite{CTAN} if your \TeX{} distributor does not provide
-% them. The ones used are: |expl3|, |hyperref|, |ifthen|,
-% |fancyvrb|, |newfile|, |rotating|, |babel|, |kvoptions|.
-% \end{spelchunk}
+% them. The ones used are: |expl3|, |hyperref|, |xcolor|, |ifthen|, |verbatim|,
+% |fancyvrb|, |newfile|, |rotating|, |babel|, |kvoptions| and |xkeyval|.
+% }
%
% \subsection{The \spelpl{} speech generator}
%
% \subsubsection{The script}
-% \begin{spelchunk}
+% \<<<{
% You can install the wizard assuming you have a working Perl
% interpreter installed. Assuming you're on \GNU/Linux or MAC, you
% should be able to find an installation package using the package
% manager for your distribution. If you are on MS-Windows, look for
% Strawberry perl or ActiveState perl.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The only thing to do is to install the |SpeL::Wizard|
% module. You can do this with the perl pacakge manager for your
% interpreter.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Open a terminal or command window, and then enter on the
% command line (the dollar represents your prompt):
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% On \GNU/Linux and MAC: |$ cpanm SpeL::Wizard|\\
-% On Strawberry perl: |$ cpan SpeL::Wizard|\\
-% On ActiveState perl: |$ ppm install SpeL-Wizard|
-% \end{spelchunk}
+% For Strawberry perl: |$ cpan SpeL::Wizard|\\
+% For ActiveState perl: |$ ppm install SpeL-Wizard|
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The script \spelpl{} will be installed on your system. Make sure
% it is on your search path.
-% \end{spelchunk}
+% }
%
% \subsubsection{The configuration file}
+%
% \begin{spelchunk}
% Finally, you need to provide \spelpl{} with an appropriate
% config-file, named |tts.conf| that sets up the text-to-speech conversion.
@@ -773,12 +740,12 @@
% \end{Verbatim}
% \end{spelchunk}
%
-% \begin{spelchunk}
+% \<<<{
% The tts configuration parameter defines the speech engine to use.
% The languagetags section defines how the babel languages are mapped to
% internationalization codes (also known as locales).
% The voices section specifies what voice to use for a specific language.
-% \end{spelchunk}
+% }
%
% \begin{spelchunk}
% An environment variable can specify where your config file is
@@ -789,12 +756,12 @@
% \end{spelchunk}
% \begin{spelchunk}
% If that variable is not set, the script will look in a subdirectory
-% |.spel_wizard| of your home-folder (or |%userprofile%| in
+% |.spel_wizard| of your home-folder (or |%userprofile%| on
% MS-Windows), or it will take the default that came with the
% |SpeL::Wizard| module.
% \end{spelchunk}
%
-% \begin{spelchunk}
+% \<<<{
% Be aware that you need to install your text-to-speech tool yourself
% according to the documentation provided by the tool provider.
% In addition, make sure it the executable is in your search path. In
@@ -802,79 +769,78 @@
% will need to get an account on their cloud platform and setup
% credentials and whatever is needed to get going. Providing
% assistance for this is beyond the aim of this manual.
-% \end{spelchunk}
+% }
%
% \subsection{The PDF viewer}
%
-% \begin{spelchunk}
-% You need to make sure you have a PDF-viewer that supports links
-% containing 'run' tags. E.g., xpdf \cite{XPDF} does not, evince
-% \cite{EVINCE} complains about security risks, but okular
-% \cite{OKULAR} and Adobe Reader \cite{ADOBEREADER} do. So does
-% PDF-XChange Viewer \cite{PDFXCHANGE}.
-% \end{spelchunk}
+% \<<<{
+% You need to make sure you have a PDF-viewer that supports file links
+% E.g., xpdf \cite{XPDF} does not, but evince \cite{EVINCE}, okular
+% \cite{OKULAR} and Adobe Reader \cite{ADOBEREADER} do.
+% }
%
% \subsection{The media player}
-% \begin{spelchunk}
+% \<<<{
% When clicking a \spelatex-enabled item in your PDF-file, your media
% player is started to play the |.ogg| or |.m3u|-file. On GNU/Linux
% most media players work fine (SoX, totem, vlc, \ldots).
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% On windows, we recommend using vlc. It works out of the box.
-% When usign the stock Windows Media Player, you will need to add
+% When using the stock Windows Media Player, you will need to add
% every folder that contains a PDF you'd like to have read, to your
% Media Player library. Search the internet to find instructions on
% that and be prepared: in line with Microsoft's standard practice it
% is well hidden in the interface.
-% \end{spelchunk}
+% }
+%
+% \<<<{
+% If you gave the |server| option to the \spelatex{} package, then your
+% favorite webbrowser will be started to download and play the file.
+% If you move it out of your way, you can avoid that it jumps in front of
+% your text every time again.
+% }
%
% \section{Usage}
%
% \subsection{Preparing your document source}
% \begin{spelchunk}
% Using the \spelatex{} package is very simple. Just load the package's
-% style file using an appropriate |\usepackage{spel}|.
+% style file using an appropriate |\usepackage{spelatex}|.
% \end{spelchunk}
%
-% \begin{spelchunk}
-% In case you are not using Org-mode, there are $5$ things to do:
-% \end{spelchunk}
+% \<<<{
+% There are $5$ things to do:
+% }
% \begin{enumerate}
-% \spelitem{Treat the defunct implicit spelchunks}
-% \spelitem{Treat the explicit spelchunks}
-% \spelitem{Manually provide text to read when needed}
+% \spelitem{Treat the defunct implicit spelchunks.}
+% \spelitem{Treat the explicit spelchunks.}
+% \spelitem{Manually provide text to read when needed.}
% \spelitem{Provide audiodescriptions or preprocessing instructions
-% for your typesetting macros}
+% for your typesetting macros.}
% \spelitem{Provide audiodescriptions or preprocessing instructions
-% for your typesetting environments}
+% for your typesetting environments.}
% \end{enumerate}
%
-% \begin{spelchunk}
-% Steps 1 and 2 can be done automatically for you by using Org-mode in
-% Emacs and using the proper |spel| exporter.
-% Steps 3, 4 and 5 are up to you. In this section, we assume you are
-% executing all 5 steps manually and therefore, we will explain all
-% required macros.
-% \end{spelchunk}
+% We will now explain all required macros.
%
% \subsubsection{Treat the implicit spelchunks}
-% \begin{spelchunk}
+% \<<<{
% The texts of chapter, (sub)section titles, a.s.o. will be formatted
% automatically such that they are hyperlinked to the appropriate
% audio file. Therefore, this step was not mentioned above. It is done
% automatically for you by using the \spelatex{} package.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% You only need to cover your \emph{defunct implicit spelchunks}:\\
% \DescribeMacro{\spelitem}
% Use this macro instead of the \texttt{\textbackslash{}item} macro to make
% sure your list environments are converted to speech chunks
% appropriately.
-% \end{spelchunk}
+% }
%
% \begin{spelchunk}
% Example:
@@ -897,35 +863,36 @@
% \spelitem[orange]{an orange round fruit}
% \end{description}
% \end{Verbatim}
-% Note that the spel exporter in Org-mode takes care of all this
-% boilerplate work.
% \end{spelchunk}
%
% \subsubsection{Treat the explicit spelchunks}
-%
-% \begin{spelchunk}
+% \label{sec:explicitspelchunks}
+% \<<<{
% \DescribeEnv{spelchunk}
% Use this environment to embed the chunks of text in that you want
% to generate audio for. In case the content is an equation, a
% figure or a table, we recommend specifying |arealink| as the
% optional argument to the |spelchunk| environment. It makes the
% entire equation an active hyperlink.
-% \end{spelchunk}
+% Note that you cannot specify an |arealink| when the area to be covered is
+% vertical-mode object. In common language: put your |arealink| |spelchunk|
+% environments inside a |center| environment and not the other way around.
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
-% generates internal package problems)}
-% \end{spelchunk}
+% {\footnotesize (note: the example below is not \spelatex{}-enabled
+% in this manual because it generates internal package problems)}
+% }
% \begin{Verbatim}
% \begin{spelchunk}
-% An orderinary paragraph must be embedded in this environment.
+% An ordinary paragraph must be embedded in this environment.
% The same holds for equations! However, then we recommend using
% the |arealink| option, as that makes the full area of the
% equation clickable and avoids an empty white line before the
% equation.
% \end{spelchunk}
-% \begin{spelchunk}[arealink]
+% \begin{spelchunk[arealink]
% \begin{align}
% E &= m c^2\\
% e^{j\pi} &= -1
@@ -952,12 +919,12 @@
%
% \begin{spelchunk}
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% {\footnotesize (note: the example below is again not \spelatex{}-enabled because it
% generates internal package problems)}
% \end{spelchunk}
% \begin{Verbatim}
% \begin{spelchunk}
-% An orderinary paragraph must be embedded in this environment.
+% An ordinary paragraph must be embedded in this environment.
% \end{spelchunk}
% \begin{spelchunkad}
% Do not forget to embed ordinary paragraphs in this environment.
@@ -975,7 +942,7 @@
%
% \begin{spelchunk}
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% {\footnotesize (note: the example below is for a third time not \spelatex{}-enabled because it
% generates internal package problems)}
% \end{spelchunk}
% \begin{Verbatim}
@@ -989,6 +956,39 @@
% \end{spelchunkad}
% \end{Verbatim}
%
+% \subsubsection{Use the shorthand \texttt{\textbackslash <<<}-macro}
+%
+% \<<<{
+% \DescribeMacro{\<<<}
+% This macro takes the text to be read-out loud as an
+% argument. It is a shorthand for the |spelchunk|
+% environment. Options you would have given to the |spelchunk|
+% environment can be given as an optional argument to this macro.
+% }
+%
+% \<<<{
+% Retaking the example of section~\ref{sec:explicitspelchunks},
+% using the shorthand, we obtain:\\
+% {\footnotesize (note: the example below is once again not \spelatex{}-enabled
+% in this manual because it generates internal package problems)}
+% }
+% \begin{Verbatim}
+% \<<<{
+% An ordinary paragraph must be embedded in this macro.
+% The same holds for equations! However, then we recommend using
+% the |arealink| option, as that makes the full area of the
+% equation clickable and avoids an empty white line before the
+% equation.
+% }
+% \<<<[arealink]{
+% \begin{align}
+% E &= m c^2\\
+% e^{j\pi} &= -1
+% \end{align}
+% }
+% \end{Verbatim}
+%
+%
% \subsubsection{Provide descriptions for typesetting macros}
%
% \DescribeMacro{\spelmacad}
@@ -1071,6 +1071,54 @@
% \end{Verbatim}
% \end{spelchunk}
%
+% \subsubsection{Inline descriptions}
+% \DescribeMacro{\spelinlad}
+% \<<<{
+% Sometimes a spel chunk contains a subblock that cannot be treated by the
+% wizard. E.g., een tikzpicture that is included in an align environment.
+% Nesting spelchunks is unfortunately not possible.
+% In that case, one can use the |\spelinlad| macro. This takes two arguments,
+% the first being the part that needs to end up in your written manuscript,
+% the second argument is the audio description.}
+%
+% \<<<{The following equation illustrates its use:}
+% \begin{Verbatim}
+% \begin{spelchunk}[arealink]
+% \begin{align}
+% \phi &= \arctan \frac{\sqrt{1-\zeta^2}}{\zeta}\\
+% &~~\spelinlad{
+% \begin{tikzpicture}
+% \draw[->] (-0.5,1) -- (-0.5,-0.5);
+% \draw(0,0) -- node[below] {$\zeta$} (2,0)
+% -- node[right] {$\sqrt{1-\zeta^2}$} (2,1)
+% -- node[above left] {$1$} cycle;
+% \draw (0:0.5) arc (0:28:0.5);
+% \end{tikzpicture}
+% }{\text{Given the trigonometric relations in the triangle,
+% we can deduce}}\\
+% &= \arccos \zeta
+% \end{align}
+% \end{spelchunk}
+% \end{Verbatim}
+%
+% \<<<{When you run this code through \LaTeX{} you obtain:}
+% \begin{spelchunk}[arealink]
+% \begin{align}
+% \phi &= \arctan \frac{\sqrt{1-\zeta^2}}{\zeta}\\
+% &~~\spelinlad{
+% \begin{tikzpicture}
+% \draw[->] (-0.5,1) -- (-0.5,-0.5);
+% \draw(0,0) -- node[below] {$\zeta$} (2,0)
+% -- node[right] {$\sqrt{1-\zeta^2}$} (2,1)
+% -- node[above left] {$1$} cycle;
+% \draw (0:0.5) arc (0:28:0.5);
+% \end{tikzpicture}
+% }{\text{Given the trigonometric relations in the triangle,
+% we can deduce}}\\
+% &= \arccos \zeta
+% \end{align}
+% \end{spelchunk}
+%
% \subsubsection{Using the i18n features of \spelpl when describing
% your macros and environments}
% \begin{spelchunk}
@@ -1127,13 +1175,13 @@
%
% \DescribeMacro{\setdesc}
% \begin{spelchunk}
-% This macro typesets an enumeration set and makes sure \spelpl{}
+% This macro typesets a definition set and makes sure \spelpl{}
% can read it properly.
% \end{spelchunk}
% \begin{spelchunk}
% \begin{Verbatim}
% \begin{equation}
-% P = \setdesc{ n \in N \mid n \text{~is prime} }
+% P = \setdesc{ n \in \mathbb{N} \mid n \text{~is prime} }
% \end{equation}
% \end{Verbatim}
% \end{spelchunk}
@@ -1179,12 +1227,15 @@
% \end{spelchunk}
%
% \begin{VerbatimOut}[gobble=4]{Example/example.tex}
-% \documentclass{article}
+% \documentclass{report}
%
-% \usepackage[dutch,english]{babel} % load babel before spel to avoid
+% \usepackage[dutch,english]{babel} % load babel before spelatex to avoid
% % option clash!
% \selectlanguage{english}
-% \usepackage[format=ogg]{spelatex}
+% \usepackage[format=ogg,
+% server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example
+% ]
+% {spelatex}
%
% \newrobustcmd\CTAN{CTAN}
% \spelmacad{CTAN}{see-tan}
@@ -1193,7 +1244,7 @@
%
% \title{\spelatex{} Example}
% \author{Walter Daems and Paul Levrie}
-% \date{2011/04/12}
+% \date{2024/09/09}
% \setlength\parindent{0em}
% \setlength\parskip{1ex}
%
@@ -1201,33 +1252,34 @@
%
% \maketitle
%
-% \section{Introduction}
+% \chapter{Introduction}
%
-% \begin{spelchunk}
-% This file is just a simple showcase of the features of \spelatex.
+% \<<<{
+% This file is just a simple showcase of the features of \spelatex{}.
% Below, you'll find examples of:
-% \end{spelchunk}
+% }
%
% \begin{itemize}
% \spelitem{a simple equation}
% \spelitem{a more complex equation}
% \end{itemize}
%
+% \chapter{Examples}
% \section{A simple equation}
% \label{eqn:simple}
-% \begin{spelchunk}
+% \<<<{
% Consider the following simple definition of a polynomial function and
% check its spoken version by clicking on it.
-% \end{spelchunk}
-% \begin{spelchunk}[arealink]
+% }
+% \<<<[arealink]{
% \begin{equation}
-% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 25
% \end{equation}
-% \end{spelchunk}
-% \begin{spelchunk}
+% }
+% \<<<{
% This seems a simple equation, however, it is not so straightforward
% for an automated reader, to read it correctly.
-% \end{spelchunk}
+% }
%
% \section{A more complex equation}
% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
@@ -1246,6 +1298,14 @@
% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \]
% \end{spelchunk}
+
+% \section{Remark}
+% \<<<{
+% Instead of the \texttt{\textbackslash{}<<<} macro, one can also use the
+% spelchunk environment. We did this in the next sections.
+% }
+%
+% \chapter{More advanced topics}
%
% \selectlanguage{dutch}
% \section{Een andere taal}
@@ -1259,8 +1319,9 @@
% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \]
% \end{spelchunk}
-
+%
% \selectlanguage{english}
+%
% \section{And some extras}
% \subsection{Citations}
% \begin{spelchunk}
@@ -1274,6 +1335,8 @@
% section~\ref{eqn:complex}.
% \end{spelchunk}
%
+% \selectlanguage{dutch}
+%
% \bibliographystyle{alpha}
%
% \begin{thebibliography}{99}
@@ -1292,10 +1355,11 @@
%
% \end{document}
% \end{VerbatimOut}
+% \footnotesize
% \VerbatimInput[frame=lines,numbers=left,gobble=0]{Example/example.tex}
-%
+% \normalsize
% \section{Demo}
-%
+% \label{sec:demo}
% \newcommand\rd[1]{\ensuremath{\mathrm{d}#1}}
% \spelmacad{rd}[1]{d of #1}
% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
@@ -1322,13 +1386,14 @@
%
%
% \subsection{Fractions}
-% \subsubsection{A fraction only containg numbers}
-% \begin{spelchunk}[arealink]
-% \begin{align}
+% \subsubsection{A fraction only containing numbers}
+% \<<<{You will probably have seen more complex numbers in your life.}
+% \begin{spelalign}
% x &= - \frac{1}{2} \\
% y &= - \sqrt{\frac{\pi}{2}}
-% \end{align}
-% \end{spelchunk}
+% \end{spelalign}%
+%
+% \<<<{Or should I say real numbers?}
%
% \subsubsection{A fraction with a little more under the hood}
% \begin{spelchunk}[arealink]
@@ -1369,14 +1434,14 @@
% \begin{spelchunk}
% Euler's identity:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% e^{j \pi} + 1 = 0
% \end{equation}
% \end{spelchunk}
%
% \subsubsection{A rather well-known definite integral}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% \int_{-\infty}^\infty e^{-x^2}\,\rd{x} = \sqrt{\pi}
% \end{equation}
@@ -1391,7 +1456,7 @@
% \begin{spelchunk}[arealink]
% \begin{align}
% P &= \setenum{ 2, 3, 5, 7, 11, 13, \ldots }\\
-% P &= \setdesc{ n \in N \mid n \text{~is prime}}
+% P &= \setdesc{ n \in \mathbb{N} \mid n \text{~is prime}}
% \end{align}
% \end{spelchunk}
%
@@ -1429,43 +1494,44 @@
% \end{spelchunk}
% \begin{figure}[h]
% \setlength{\unitlength}{4mm}
-% \begin{spelchunk}
% \begin{center}
+% \begin{spelchunk}[arealink]
% \begin{picture}(24,2)
% \put(0,0.8){$x[n]$}
% \put(2,1){\vector(1,0){3}}
% \put(5,0){\framebox(5,2){$H(z)$}}
% \put(10,1){\vector(1,0){3}}
-% \put(13,0){\framebox(5,2){$G(z) \ast F(z)$}}
+% \put(13,0){\framebox(5,2){$G(z) \cdot F(z)$}}
% \put(18,1){\vector(1,0){3}}
% \put(22,0.8){$y[n]$}
% \end{picture}
+% \end{spelchunk}
% \end{center}
-% \end{spelchunk}
% \begin{spelchunkad}
% The discrete-time input signal x is fed through a filter H of
% z. The intermediate output signal of the filter H of z is fed into
-% another filter whose transfer function is the convolution of G of
-% z and F of z. This resuspel in the discrete-time output signal y.
+% another filter whose transfer function is the product of G of
+% z and F of z. This results in the discrete-time output signal y.
% \end{spelchunkad}
-% \caption{A block diagram of the filter system}
+% \spelcaption{A block diagram of the filter system}
% \label{fig:blockdiagram}
% \end{figure}
%
% \subsubsection{Tables}
-% \begin{spelchunk}
-% \begin{center}
+% \<<<{Tables can also be equiped with a sensible description:}
+% \begin{center}
+% \begin{spelchunk}[arealink]
% \begin{tabular}{lcc}
% Food & Sweet & Bitter \\
% \hline
-% apple & $\bullet$ & \\
+% apples & $\bullet$ & \\
% unsweetened coffee & & $\bullet$\\
% cake & $\bullet$ & \\
% chocolate & $\bullet$ & $\bullet$ \\
% \hline
% \end{tabular}
-% \end{center}
-% \end{spelchunk}
+% \end{spelchunk}
+% \end{center}
% \begin{spelchunkad}
% This table indicates the sweetness and bitterness for several food
% products.
@@ -1481,50 +1547,46 @@
% to $\tan \alpha = -\frac{t}{2}$, the equation of the reflected
% ray is given by
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \end{equation}
% \end{spelchunk}
-%
% \begin{spelchunk}
% The $x$-coordinate of the point of intersection of the reflected ray
% with a fixed line $y=u$ satisfies:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% u-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \label{eqn:refray}
% \end{equation}
% \end{spelchunk}
-%
% \begin{spelchunk}
% We calculate the minimal value of this $x$ for varying $t$, by
% differentiating (\ref{eqn:refray}) with respect to $t$ and assuming
% that $\frac{\rd{x}}{\rd{t}}=0$:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% \frac{t}{2} = -\frac{4(4+t^2)}{(4-t^2)^2} (x-t) -
% \frac{4t}{4-t^2} \cdot (-1) \ \ \ \Leftrightarrow \ \ \ x=
% 3\frac{t}{2}-\frac{t^3}{8}
% \]
% \end{spelchunk}
-%
% \begin{spelchunk}
% Inserting in the equation containing $u$ gives us the relation
% between $t$ and $u$:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% u = 9- 3 \frac{t^2}{4}
% \]
% \end{spelchunk}
-%
-% \begin{spelchunk}
+%% \begin{spelchunk}
% This leads to a system of parametric equations for the caustic:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% \left\{\begin{array}{l}
% x = 3\frac{t}{2}-\frac{t^3}{8} \\[0.3cm]
@@ -1537,7 +1599,6 @@
% \end{array} \right.
% \]
% \end{spelchunk}
-%
% \begin{spelchunk}
% It is now easy to eliminate the parameter $t$. As you can see, $t
% = \frac{6 x}{y}$. Inserting into the equation for $y$ gives us the
@@ -1581,28 +1642,18 @@
% \begin{macrocode}
\RequirePackage{expl3}
\RequirePackage{hyperref}
+\AtBeginDocument{
+ \hypersetup{colorlinks=false,hidelinks=true}
+}
\RequirePackage{xcolor}
\RequirePackage{ifthen}
+\RequirePackage{verbatim}
\RequirePackage{fancyvrb}
\RequirePackage{newfile}
\RequirePackage{rotating}
\RequirePackage{babel}
-\hypersetup{backref=true,
- breaklinks=true,
- colorlinks=true,
- citecolor=black,
- filecolor=black,
- hyperindex=true,
- linkcolor=black,
- pageanchor=true,
- pagebackref=true,
- pagecolor=black,
- pdfpagemode=UseOutlines,
- bookmarksopen=true,
- urlcolor=black}
\RequirePackage{kvoptions}
\RequirePackage{xkeyval}
-\RequirePackage{marginnote}
% \end{macrocode}
%
% \subsection{Options}
@@ -1613,9 +1664,10 @@
prefix=spel@
}
\DeclareStringOption[ogg]{format}
+\DeclareStringOption[local]{server}
+\DeclareStringOption[full]{markervisibility}
\DeclareBoolOption[false]{disabled}
\DeclareBoolOption[false]{extramath}
-\DeclareBoolOption[false]{propermath}
\ProcessKeyvalOptions*
% \end{macrocode}
%
@@ -1627,12 +1679,6 @@
\DeclareRobustCommand{\spelatex}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1ex\LaTeX}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\spelbox}
-% This is the official \spelbox{} logo.
-% \begin{macrocode}
-\DeclareRobustCommand{\spelbox}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1exLbo\raisebox{-0.2ex}{x}}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\spelpl}
% This is the official \spelpl{} logo.
% \begin{macrocode}
@@ -1674,6 +1720,12 @@
\addtostream{spelidx}{format|\spel@format}
\addtostream{spelidx}{audiodir|\audiodir}
\addtostream{spelidx}{chunkdir|\chunkdir}
+\addtostream{spelidx}{server|\spel@server}
+\ExplSyntaxOn
+\newcommand\linksdir{
+ \str_if_eq:VnTF{\spel@server}{local}{./\audiodir}{\spel@server/\audiodir}
+}
+\ExplSyntaxOff
% \end{macrocode}
%
% To ease writing to the speech index stream, we define a |\spelidxwrite|
@@ -1684,7 +1736,7 @@
% \begin{macrocode}
\ifspel@disabled\newcommand{\spel@idxwrite}[2]{}\else
\newcommand{\spel@idxwrite}[2]{%
- \typeout{spel: Generating #1 - #2}%
+ \typeout{SpeLaTeX: Generating #1 - #2}%
\addtostream{spelidx}{#1|#2}%
}
\fi
@@ -1774,7 +1826,29 @@
\AddBabelHook{informspel}{write}{\spel@idxwrite{language}{\languagename}}
\EnableBabelHook{informspel}
% \end{macrocode}
-%
+%
+% \subsection{Setting up the visibility}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+\definecolor{faintgray}{rgb}{0.9,0.9,0.9}
+\str_if_eq:VnTF{\spel@markervisibility}{none}{
+ \colorlet{spel@color@right}{white}
+ \colorlet{spel@color@left}{white}
+}{}
+\str_if_eq:VnTF{\spel@markervisibility}{onlygroups}{
+ \colorlet{spel@color@right}{black!25}
+ \colorlet{spel@color@left}{white}
+}{}
+\str_if_eq:VnTF{\spel@markervisibility}{full}{
+ \colorlet{spel@color@right}{black!25}
+ \colorlet{spel@color@left}{black!25}
+}{}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+%
+%
% \subsection{Generating speech chunks --- implicitly}
% \subsubsection{Auxiliary macros}
% We define a macro to generate wrappers for single-line text elements.
@@ -1789,9 +1863,7 @@
\expandafter\let\csname spel@@#1\expandafter\endcsname\csname #1\endcsname
\expandafter\gdef\csname #1\endcsname##1{%
\spel@chunkwrite{#1}{##1}
- \csname spel@@#1\endcsname{\href{run:\audiodir/#1.\spel@format}{##1}}
- }
- \expandafter\AtBeginDocument{
+ \csname spel@@#1\endcsname{\href{\linksdir/#1.\spel@format}{##1}}
\spel@idxwrite{#1}{#1}
}
}
@@ -1806,10 +1878,13 @@
% Using this macro, we can easily take care of all title-like
% elements, using:
% \begin{macrocode}
+\spel@idxwrite{language}{\languagename}
\spel@registerelement{title}
\spel@registerelement{date}
\spel@registerelement{author}
% \end{macrocode}
+% We registered the initial language in advance, to make sure the
+% wizard knows what language to use for these elements.
%
% \subsubsection{Table of contents}
% \begin{macrocode}
@@ -1846,7 +1921,7 @@
\let\spel@@part\@part
\def\@part[#1]#2{%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
- \spel@@part[#1]{\href{run:\audiodir/\spel@@optpart.\spel@format}{#2}}%
+ \spel@@part[#1]{\href{\linksdir/\spel@@optpart.\spel@format}{#2}}%
\spel@idxwrite{part \thepart}{\spel@@optpart}%
\spel@chunkwrite{\spel@@optpart}{#2}%
}
@@ -1863,7 +1938,7 @@
\stepcounter{spel@spart}%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@spart{%
- \href{run:\audiodir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}%
+ \href{\linksdir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}%
\spel@idxwrite{part}{\spel@@optpart star-\thespel@spart}%
\spel@chunkwrite{\spel@@optpart star-\thespel@spart}{#1}%
}
@@ -1875,13 +1950,21 @@
% This is a simple wrapper around the regular |\@chapter| macro.
% It is defined conditionally on the existence of the |\chapter| macro.
% \begin{macrocode}
+\newif\ifspel@inschapter
+\spel@inschapterfalse
\ifspel@disabled\else
+\ifx\thechapter\@undefined\else%
+\renewcommand\thechapter{%
+\ifspel@inschapter star-\thespel@schapter\else\@arabic\c@chapter\fi%
+}
+\fi
\ifx\chapter\@undefined\else
\let\spel@@chapter\@chapter
\def\@chapter[#1]#2{%
+ \spel@inschapterfalse%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@chapter[#1]{%
- \href{run:\audiodir/\spel@@optpart\thechapter.\spel@format}{#2}}%
+ \href{\linksdir/\spel@@optpart\thechapter.\spel@format}{#2}}%
\spel@idxwrite{chapter \thechapter}{\spel@@optpart\thechapter}%
\spel@chunkwrite{\spel@@optpart\thechapter}{#2}%
}
@@ -1895,13 +1978,14 @@
% It is defined condionally on the existence of the |\schapter| macro.
% \begin{macrocode}
\ifspel@disabled\else
-\ifx\schapter\@undefined\else
+\ifx\chapter\@undefined\else
\let\spel@@schapter\@schapter
\def\@schapter#1{%
+ \spel@inschaptertrue%
\stepcounter{spel@schapter}%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@schapter{%
- \href{run:\audiodir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}%
+ \href{\linksdir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}%
\spel@idxwrite{chapter}{\spel@@optpart star-\thespel@schapter}%
\spel@chunkwrite{\spel@@optpart star-\thespel@schapter}{#1}%
}
@@ -1922,9 +2006,10 @@
\fi%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph.m3u}{\textcolor{black!25}{$\triangleright$}}}%
- \def\spel@@label{\ifnum #2>\c@secnumdepth\else#1 \csname the#1\endcsname\fi}
+ \href{\linksdir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill%
+ \href{\linksdir/\spel@@optpart\thesubparagraph.m3u}
+ {\textcolor{spel@color@right}{$\triangleright$}}}%
+ \def\spel@@label{\ifnum #2>\c@secnumdepth paragraph\else#1 \csname the#1\endcsname\fi}
\spel@idxwrite{\spel@@label}{\spel@@optpart\thesubparagraph}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph}{#8}%
}
@@ -1941,7 +2026,7 @@
\stepcounter{spel@ssect}%
%\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@ssect{#1}{#2}{#3}{#4}{%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}%
{#5}}%
\spel@idxwrite{section}{\spel@@optpart\thesubparagraph-star-\thespel@ssect}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-star-\thespel@ssect}{#5}%
@@ -1963,7 +2048,8 @@
\stepcounter{spel@footnote}%
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@@fntext{%
- \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/footnote-\thespel@footnote.\spel@format}{\usebox\spel@mptbox}#1}%
+ \hspace*{-\spel@mptboxwidth}%
+ \href{\linksdir/footnote-\thespel@footnote.\spel@format}{\usebox\spel@mptbox}#1}%
\spel@idxwrite{footnote}{footnote-\thespel@footnote}%
\spel@chunkwrite{footnote-\thespel@footnote}{#1}%
}
@@ -2004,7 +2090,7 @@
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1}%
- \item \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#1}
+ \item \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#1}
% \end{macrocode}
% \end{macro}
%
@@ -2017,26 +2103,108 @@
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1 . #2}%
-\item[#1] \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#2}
+\item[#1] \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#2}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption}
-% This is a redefinition of the |\caption| macro such that it
-% becomes alive.
+% \begin{macro}{\spelcaption}
+% This is a wrapper for the |\caption| macro, such that it is
+% \spelatex{} enabled.
% \begin{macrocode}
-\ifspel@disabled\else
-\let\spel@@caption\caption
-\renewcommand\caption[2][]{%
- \stepcounter{spel@chunk}%
- \spel@idxwrite{caption}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
- \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#2}%
- \spel@@caption[#1]{\protect\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}}
-}
+\ifspel@disabled
+ \newcommand\spelcaption[2][]{\caption[#1]{#2}}
+\else
+ \newcommand\spelcaption[2][]{%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{caption}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#2}%
+ \caption[#1]{%
+ \protect\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}
+ {#2}}
+ }
\fi
% \end{macrocode}
% \end{macro}
-%
+%
+% \subsubsection{Math environments}
+%
+% \begin{environment}{spelwrapenvironment}
+% This are all variants of a wrapper around a math environment
+% such that it is \spelatex{} enabled with an arealink.
+% \begin{macrocode}
+\newcommand\spelwrapenvironment@b[1]{
+ \NewDocumentEnvironment{spel#1}{+b}{
+ \<<<[arealink]{%
+ \begin{#1}
+ ##1
+ \end{#1}%
+ }\hspace*{-0.75ex}%
+ }{}%
+}
+\newcommand\spelwrapenvironment@ob[1]{
+ \NewDocumentEnvironment{spel#1}{O{}+b}{
+ \<<<[arealink]{
+ \begin{#1}[##1]
+ ##2
+ \end{#1}
+ }\hspace*{-0.75ex}%
+ }{}
+}
+\newcommand\spelwrapenvironment@mb[1]{
+ \NewDocumentEnvironment{spel#1}{m+b}{
+ \<<<[arealink]{
+ \begin{#1}{##1}
+ ##2
+ \end{#1}
+ }\hspace*{-0.75ex}%
+ }{}
+}
+\newcommand\spelwrapenvironment@mob[1]{
+ \NewDocumentEnvironment{spel#1}{mO{}+b}{
+ \<<<[arealink]{
+ \begin{#1}{##1}[##2]
+ ##3
+ \end{#1}
+ }\hspace*{-0.75ex}%
+ }{}
+}
+\newcommand\spelwrapenvironment@omb[1]{
+ \NewDocumentEnvironment{spel#1}{O{}m+b}{
+ \<<<[arealink]{
+ \begin{#1}[##1]{##2}
+ ##3
+ \end{#1}
+ }\hspace*{-0.75ex}%
+ }{}
+}
+% \end{macrocode}
+% \end{environment}
+% Depending on the loading of amsmath, empheq and its overload option,
+% we perform appropriate wrappings:
+% \begin{macrocode}
+\AtBeginDocument{
+ \@ifpackageloaded{amsmath}{
+ \message{SpeLaTeX: detected amsmath package}
+ \spelmacpp{ensuremath}[1]{#1}
+ \@ifpackageloaded{empheq}{
+ \message{SpeLaTeX: detected package empheq}
+ \spelwrapenvironment@omb{empheq}}{}
+ \@ifpackagewith{empheq}{overload}{
+ \message{..........with overload option}
+ \spelwrapenvironment@ob{gather}
+ \spelwrapenvironment@ob{align}
+ \spelwrapenvironment@mob{alignat}
+ }
+ {
+ \message{..........without overload option}
+ \spelwrapenvironment@b{gather}
+ \spelwrapenvironment@b{align}
+ \spelwrapenvironment@mb{alignat}
+ }
+ }
+ {}
+}
+% \end{macrocode}
%
% \subsection{Generating speech chunks --- explicitly}
%
@@ -2046,10 +2214,14 @@
% \begin{macrocode}
\newlength\spel@mptboxwidth
\newsavebox\spel@mptbox
-\savebox\spel@mptbox{\textcolor{black!25}{$\qquad$}}
+\savebox\spel@mptbox{%
+ \textcolor{spel@color@left}{\quad\strut\tiny\raisebox{0.4ex}{$\triangleright$}\,}%
+}
\newif\ifspel@chunkarealink
\define@key{spelchunk}{arealink}[]{\spel@chunkarealinktrue}
-\ifspel@disabled\def\spelchunk{}\else
+\ifspel@disabled
+ \def\spelchunk{\@ifnextchar[{\spelchunk@optdisabled}{spelchunk@intdisabled}}%
+\else
\def\spelchunk{%
\catcode`\^^M=\active%
\stepcounter{spel@chunk}%
@@ -2061,10 +2233,13 @@
\end{VerbatimOut}%
\catcode`\^^M=5\relax%
\ifspel@chunkarealink%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}
+ {\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
\else%
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
- \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \hspace*{-\spel@mptboxwidth}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}
+ {\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
\fi%
\spel@chunkarealinkfalse%
}%
@@ -2079,6 +2254,7 @@
% |spelchunk| envronment.
% \begin{macrocode}
\def\spelchunk@opt[#1]{\setkeys{spelchunk}{#1}\spelchunk@int}
+\def\spelchunk@optdisabled[#1]{\setkeys{spelchunk}{#1}\spelchunk@intdisabled}
% \end{macrocode}
% \end{macro}
%
@@ -2089,9 +2265,52 @@
\def\spelchunk@int{%
\VerbatimEnvironment
\begin{VerbatimOut}{\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk.tex}}
+\def\spelchunk@intdisabled{}
% \end{macrocode}
% \end{macro}
%
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelchunkatom}{O{}m}{%
+ \ifspel@disabled #2\else%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{chunk}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \setkeys{spelchunk}{#1}%
+ \scantokens{%
+ \makeatletter%
+ \begin{spelverbatimwrite}{\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk.tex}
+ #2
+ \end{spelverbatimwrite}
+ \makeatother
+ }%
+ \ifspel@chunkarealink%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}
+ {\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
+ \else%
+ \settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
+ \hspace*{-\spel@mptboxwidth}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}
+ {\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \fi%
+ \spel@chunkarealinkfalse%
+ \fi%
+}
+
+\def\spelverbatimwrite#1{%
+ \@bsphack
+ \openoutputfile{#1}{chunk}%
+ \def\verbatim@processline{\addtostream{chunk}{\the\verbatim@line}}%
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \verbatim@start}%
+\def\endspelverbatimwrite{
+ \closeoutputstream{chunk}%
+ \@esphack%
+}
+\def\<<<{\spelchunkatom}
+\ExplSyntaxOff
+% \end{macrocode}
+%
% \subsubsection{Explicit spelchunks}
%
% \begin{environment}{spelchunkad}
@@ -2117,6 +2336,7 @@
% \subsection{Helping the wizard to read our chunks}
%
% \subsubsection{Listing macros that are to be preprocessed}
+% \begin{macro}{\spelmacpp}
% Some \LaTeX{} or \TeX commands are only for layout purposes and are
% totally not content related. They do not contribute to what must be
% read. On the contrary, they make it hard for the \spelpl{} parser to
@@ -2130,7 +2350,15 @@
% oriented, it makes sense to provide a macro that registers them as
% pure type-setting macros and use that macro to cover the examples
% mentioned above.
-% \begin{macro}{\spelmacpp}
+% The command takes four arguments of wich the two middle ones are optional:
+% \begin{enumerate}
+% \item The name of the macro without leading backslash
+% \item The number of arguments of the macro (omit if no arguments, because this is the default value)
+% \item The value of the optional first argument (if any, otherwise omit)
+% \item The replacement text, using parameter references \#1,
+% \#2, a.s.o. as stamps for where the arguments need to be
+% inserted.
+% \end{enumerate}
% \begin{macrocode}
\ExplSyntaxOn
\NewDocumentCommand{\spelmacpp}{moom}
@@ -2159,10 +2387,14 @@
\spelmacpp{scriptsize}{}
\spelmacpp{tiny}{}
\spelmacpp{minuscule}{}
-\spelmacpp{textsf}[1]{keep}
-\spelmacpp{textit}[1]{keep}
-\spelmacpp{texttt}[1]{keep}
-\spelmacpp{textbf}[1]{keep}
+\spelmacpp{textsf}[1]{#1}
+\spelmacpp{textit}[1]{#1}
+\spelmacpp{texttt}[1]{#1}
+\spelmacpp{textbf}[1]{#1}
+\spelmacpp{mathbb}[1]{#1}
+\spelmacpp{mathcal}[1]{#1}
+\spelmacpp{url}[1]{#1}
+\spelmacpp{phantom}[1]{}
\spelmacpp{quad}{}
\spelmacpp{qquad}{}
\spelmacpp{displaystyle}{}
@@ -2175,10 +2407,11 @@
% And let's register a macro for which only the contents is to be
% preserved:
% \begin{macrocode}
-\spelmacpp{fbox}[1]{keep}
+\spelmacpp{fbox}[1]{#1}
% \end{macrocode}
%
% \subsubsection{Listing environments that are to be ignored}
+% \begin{macro}{\spelenvpp}
% Some \LaTeX{} or \TeX environments are only for layout purposes and are
% totally not content related. They do not contribute to what must be
% read. On the contrary, they make it hard for the \spelpl{} parser to
@@ -2191,7 +2424,19 @@
% oriented, it makes sense to provide a macro that registers them as
% pure type-setting macros and use that macro to cover the examples
% mentioned above.
-% \begin{macro}{\spelenvpp}
+%
+% The command takes four arguments of wich the two middle ones are optional:
+% \begin{enumerate}
+% \item The name of the environment
+% \item The number of arguments of the environments (omit if no
+% arguments, because this is the default value)
+% \item The value of the optional first argument (if any, otherwise omit)
+% \item The replacement text, using parameter references \#1,
+% \#2, a.s.o. as stamps for where the arguments need to be
+% inserted. The highest parameter number (one higher than the number
+% of arguments) is for the body of the environment.
+% \end{enumerate}
+%
% \begin{macrocode}
\ExplSyntaxOn
\NewDocumentCommand{\spelenvpp}{moom}
@@ -2204,7 +2449,7 @@
%
% Now let's register some standard macros that are to be ignored:
% \begin{macrocode}
-\spelenvpp{center}{keep}
+\spelenvpp{center}{#1}
% \end{macrocode}
%
% \subsubsection{Audio descriptions for typesetting macros}
@@ -2240,20 +2485,22 @@
% ignored:
% \begin{macrocode}
\spelmacad{spelatex}{spee-lay-tech}
-\spelmacad{spelbox}{spel-box}
\spelmacad{spelpl}{spel wizzard dot pl}
\spelmacad{LaTeX}{lay-tech}
+\spelmacad{LuaLaTeX}{lua lay-tech}
\spelmacad{TeX}{tech}
-\spelmacad{textsf}[1]{#1}
-\spelmacad{texttt}[1]{#1}
-\spelmacad{textit}[1]{#1}
-\spelmacad{emph}[1]{#1}
-\spelmacad{underline}[1]{#1}
+\spelmacpp{textsf}[1]{#1}
+\spelmacpp{texttt}[1]{#1}
+\spelmacpp{textit}[1]{#1}
+\spelmacpp{mathit}[1]{\string\text{#1}}
+\spelmacpp{emph}[1]{#1}
+\spelmacpp{underline}[1]{#1}
\spelmacad{mbox}[1]{#1}
\spelmacad{text}[1]{#1}
-\spelmacad{nobreakspace}{#1}
-\spelmacad{textasciitilde}[1]{ }
+\spelmacpp{nobreakspace}{#1}
+\spelmacpp{textasciitilde}[1]{ }
\spelmacad{textbackslash}{backslash}
+\spelmacad{textsuperscript}[1]{#1}
\spelmacad{footnote}[1]{}
\spelmacad{pm}{@{i18n(plusminus)}}
\spelmacad{ldots}{...}
@@ -2294,6 +2541,20 @@
\spelenvad{center}{}{}
% \end{macrocode}
%
+% \subsubsection{Inline descriptions for nesting}
+% \begin{macro}{\spelinlad}
+% This macro incorporates the first argument in the text file, but
+% sends the replacement using a macro preprocessing instruction to the
+% wizard.
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelinlad}{mm}{#1}
+\spelmacpp{spelinlad}[2]{#2}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsection{Extra math commands}
%
% The commands are only loaded if the package option |extramath| is
@@ -2322,6 +2583,16 @@
% Note that these two macro's are identical! However, the fact that
% they have a different name is of great value to \spelpl{}.
%
+% \begin{macro}{\unitof}
+% This macro typeets its argument between square brackets, meaning
+% 'the unit of'. The corresponding audiodescription takes care of
+% proper reading out loud this construct.
+% \begin{macrocode}
+\DeclareRobustCommand{\unitof}[1]{\left[#1\right]}
+\spelmacad{unitof}[1]{@{i18n(Unitof,#1)}}
+% \end{macrocode}
+% \end{macro}
+%
% The conditional loading ends here:
% \begin{macrocode}
\fi
@@ -2335,7 +2606,7 @@
%
% \section{TODO}
% \begin{spelchunk}[arealink]
-% As long as there are things on my todo list, We have a reason to
+% As long as there are things on our todo list, we have a reason to
% live.
% \end{spelchunk}
% \begin{itemize}
@@ -2374,22 +2645,6 @@
% \newblock \url{https://www.winehq.org}
% \newblock online, accessed in June 2024.
%
-% \bibitem{ORGMODE}
-% Org Mode --- your life in plain text.
-% \newblock \url{https://orgmode.org/}.
-% \newblock online, accessed in May 2024.
-%
-% \bibitem{EMACS}
-% The Emacs An extensible, customizable, free text editor --- and
-% more.
-% \newblock \url{https://www.gnu.org/software/emacs/}.
-% \newblock online, accessed in May 2024.
-%
-% \bibitem{OXSPELATEX}
-% Org Mode SpeLaTeX Exporter --- SpeLaTeX made easy.
-% \newblock \url{https://www.melpa.org/#/ox-spelatex}
-% \newblock (not yet online)
-%
% \bibitem{SPEL}
% SpeL --- Speech-enabled \LaTeX.
% \newblock \url{https://ctan.org/pkg/spel}
@@ -2445,11 +2700,6 @@
% \newblock \url{https://okular.kde.org}.
% \newblock online, accessed in May 2024.
%
-% \bibitem{PDFXCHANGE}
-% PDF XChange Viewer, a PDF reader from Tracker Software.
-% \newblock \url{https://www.pdf-xchange.com/}
-% \newblock online, accessed in May 2024.
-%
% \end{thebibliography}
%
% \Finale
diff --git a/macros/latex/contrib/spelatex/spelatex.pdf b/macros/latex/contrib/spelatex/spelatex.pdf
index d68cae1950..957c6dd72f 100644
--- a/macros/latex/contrib/spelatex/spelatex.pdf
+++ b/macros/latex/contrib/spelatex/spelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/sshrc-insight/README.md b/macros/latex/contrib/sshrc-insight/README.md
new file mode 100644
index 0000000000..bf5a05e0a5
--- /dev/null
+++ b/macros/latex/contrib/sshrc-insight/README.md
@@ -0,0 +1,61 @@
+# sshrc-insight: A LaTeX class for SSHRC Insight Grant proposals
+
+## Overview
+
+The `sshrc-insight` LaTeX class facilitates the preparation of funding
+proposals for the Insight Grants program of Canada's Social Sciences
+and Humanities Research Council (SSHRC). It has the following key
+features:
+
+* Formats the proposal according to the SSHRC's specifications.
+
+* Allows parts of the proposal to be compiled into separate PDFs to
+attach to the appropriate places in the online application form.
+
+* Alternatively, allows the proposal to be compiled into a single PDF
+in order to facilitate the writing and pre-submission reviewing
+process.
+
+* Ensures that citation numbering remains consistent regardless
+whether the proposal is compiled as separate PDFs or a single PDF.
+
+* Provides character counts for long-answer form fields.
+
+* Supports preparation of proposals in either English or French.
+
+* Compatible with `pdflatex`, `xelatex`, and `lualatex`.
+
+## Building and installing
+
+To build the class, run the file `sshrc-insight.ins` through `latex`
+or `pdflatex` and then copy the resulting `.cls` file into a directory
+searched by LaTeX.
+
+To generate the documentation, run the file `sshrc-insight.dtx`
+through `pdflatex`.
+
+The `.tex` files built along with the class are the template proposal.
+Copy them to a separate directory and edit them as desired.
+generate the proposal as a single PDF, run the file `proposal.tex`
+though `pdflatex` (or `xelatex` or `lualatex`) and `biber` until all
+the references are resolved. To generate separate PDFs for the
+various parts of the proposal, use the same procedure on the other
+`.tex` files. Note that `proposal.tex` must be compiled before the
+other files that use citation commands.
+
+## Development
+
+`sshrc-insight` was written and is maintained by [Tristan
+Miller](https://logological.org/).
+
+For now, the source code is hosted on GitHub at
+[https://github.com/logological/sshrc-insight](https://github.com/logological/sshrc-insight).
+There you will also find an issue tracker for reporting bugs and
+feature requests.
+
+## Licence
+
+The `sshrc-insight` class is distributed under the conditions of the
+[LaTeX Project Public
+License](https://www.latex-project.org/lppl.txt), either version 1.3c
+of this license or (at your option) any later version.
diff --git a/macros/latex/contrib/sshrc-insight/insight_proposal.pdf b/macros/latex/contrib/sshrc-insight/insight_proposal.pdf
new file mode 100644
index 0000000000..b0d3412e3f
--- /dev/null
+++ b/macros/latex/contrib/sshrc-insight/insight_proposal.pdf
Binary files differ
diff --git a/macros/latex/contrib/sshrc-insight/sshrc-insight.dtx b/macros/latex/contrib/sshrc-insight/sshrc-insight.dtx
new file mode 100644
index 0000000000..b3d786e59c
--- /dev/null
+++ b/macros/latex/contrib/sshrc-insight/sshrc-insight.dtx
@@ -0,0 +1,1139 @@
+% \iffalse meta-comment
+%
+% Copyright 2024 Tristan Miller
+% -----------------------------------
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{sshrc-insight.dtx}
+%</driver>
+%<*class>
+%% Copyright 2024 Tristan Miller
+%% Copyright 2021 Steven B. Segletes
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%</class>
+%<class>\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+%<class>\DeclareRelease{2024}{}{sshrc-insight.cls}
+%<class>\DeclareRelease{v2024}{}{sshrc-insight.cls}
+%<class>\DeclareCurrentRelease{v2024.1.0}{2024-10-21}
+%<class>\ProvidesClass{sshrc-insight}
+%<*class>
+[2024-10-21 v2024.1.0 Class for SSHRC Insight Grant proposals]
+%</class>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\DisableCrossrefs
+\CodelineIndex
+\RecordChanges
+\addtolength\marginparwidth{5ex}
+\addtolength\oddsidemargin{6ex}
+\addtolength\evensidemargin{6ex}
+\usepackage[T1]{fontenc}
+\usepackage{hologo}
+\begin{document}
+\DocInput{sshrc-insight.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{219}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \GetFileInfo{sshrc-insight.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \title{\textsf{sshrc-insight}: A \LaTeX\ class for\\ SSHRC Insight
+% Grant proposals\thanks{This document corresponds to
+% \textsf{sshrc-insight}~\fileversion, dated \filedate. See
+% §\ref{sec:version} for an explanation of the versioning scheme.}}
+%
+% \author{Tristan Miller\\
+% Department of Computer Science\\
+% University of Manitoba\\
+% \texttt{Tristan.Miller@umanitoba.ca}}
+%
+% \maketitle
+% \tableofcontents
+% \newpage
+%
+% \section{Introduction}\label{sec:introduction}
+%
+% This document describes the usage of \textsf{sshrc-insight}, a
+% \LaTeX\ class and template that facilitate the preparation of
+% funding proposals for the Insight
+% Grants\footnote{\url{https://www.sshrc-crsh.gc.ca/funding-financement/programs-programmes/insight_grants-subventions_savoir-eng.aspx}}
+% program of Canada's Social Sciences and Humanities Research Council
+% (SSHRC). SSHRC requires these proposals to be submitted through an
+% online application form that consists of various short- and
+% long-answer fields, as well as file submission fields where the
+% applicant must attach various PDF documents structured and formatted
+% according to certain specifications. \textsf{sshrc-insight} allows
+% you to compose the long-answer fields and PDF documents with \LaTeX,
+% \hologo{XeLaTeX}, or \hologo{LuaLaTeX}, with the following principal
+% benefits:
+%
+% \begin{itemize}
+% \item Formats the PDF documents according to the SSHRC's
+% specifications.
+%
+% \item Allows parts of the proposal to be compiled into separate PDFs
+% to attach to the appropriate places in the online application
+% form.
+%
+% \item Alternatively, allows the proposal to be compiled into a
+% single PDF in order to facilitate the writing and pre-submission
+% reviewing process.
+%
+% \item Ensures that citation numbering remains consistent regardless
+% whether the proposal is compiled as separate PDFs or a single PDF.
+%
+% \item Provides character counts for long-answer form fields.
+%
+% \item Supports preparation of proposals in either English or French.
+% \end{itemize}
+%
+% The current version of \textsf{sshrc-insight} structures and formats
+% proposals according to SSHRC's 2024 call. It is expected that
+% future versions of the class will support the structure and format
+% of future calls, while maintaining backward compatibility.
+%
+% \section{Usage}
+%
+% SSHRC provides instructions for structuring and formatting the PDF
+% documents to attach to the online application form. Since form and
+% content cannot be entirely separated, the best way of starting a new
+% proposal is to make a copy of the template proposal distributed with
+% this class and then adapt it to your project. This template
+% includes the following files:
+%
+% \begin{itemize}
+% \item \texttt{budget\_justification.tex}
+% \item \texttt{career\_interruptions.tex}
+% \item \texttt{detailed\_description.tex}
+% \item \texttt{exclusion\_of\_potential\_reviewers.tex}
+% \item \texttt{expected\_outcomes.tex}
+% \item \texttt{knowledge\_mobilization\_plan.tex}
+% \item \texttt{list\_of\_references.tex}
+% \item \texttt{multi-interdisciplinary\_evaluation.tex}
+% \item \texttt{previous\_critiques.tex}
+% \item \texttt{research\_contributions.tex}
+% \item \texttt{research-creation\_support\_material.tex}
+% \item \texttt{research\_team.tex}
+% \item \texttt{summary.tex}
+% \item \texttt{insight\_proposal.tex}
+% \item \texttt{insight\_proposal.bib}
+% \end{itemize}
+%
+% The \texttt{insight\_proposal.tex} file is the \emph{main document}.
+% Compile this file to get a complete draft of your proposal (minus
+% the short-answer fields from the online application form) in a
+% single PDF, including a table of contents. This makes it convenient
+% for you (and anyone helping you review your proposal before
+% submission) to read all the long-form proposal text.
+%
+% The complete proposal is generated from the other \texttt{.tex}
+% files---the \emph{subfiles}---which are the individual documents and
+% long-answer form fields to be attached to or copied into the online
+% application form. They can be compiled separately for when you want
+% to work on one part of the proposal at a time, or for when you are
+% ready to attach the individual PDFs to the online application form.
+%
+% The file \texttt{insight\_proposal.bib} is a sample bibliography
+% demonstrating \textsf{sshrc-insight}'s features for marking
+% publications according to the application instructions---see
+% §\ref{sec:bibliographic} for further details.
+%
+% The following two subsections describe the structure of the main
+% document and subfiles, as well as the various macros and
+% environments provided by \textsf{sshrc-insight}.
+%
+% \subsection{Main document}
+%
+% \subsubsection{Preamble}\label{sec:mainpreamble}
+%
+% Your main proposal document should begin with the following line:
+% \begin{quote}\verb|\documentclass{sshrc-insight}[=2024]|\end{quote}
+% The optional argument, \texttt{=2024}, indicates that the class
+% should use the specifications from SSHRC's 2024 call for proposals.
+% At present, the only supported specification year is 2024, though
+% future versions of this class may support specifications for future
+% years' calls. The class will use the most recent supported
+% specification in the event that you omit the optional argument;
+% however, this is not recommended because if you later upgrade
+% \textsf{sshrc-insight} to a version that supports a later
+% specification year, re-compiling your old proposal may result in
+% compilation errors, or incorrect or unexpected formatting.
+%
+% The \verb|sshrc-insight| class is based on the default \LaTeX\
+% \verb|article| class, so (with a few modifications and exceptions
+% documented below) all of the macros and environments from the latter
+% are available for you to use.
+%
+% The class automatically sets the page size and margins mandated by
+% the official application instructions. If compiling with
+% \hologo{XeLaTeX} or \hologo{LuaLaTeX}, the class sets the font to
+% Times New Roman, which you are expected to have installed on your
+% system. If compiling with \hologo{pdfLaTeX}, the class uses the
+% free Times clone provided by the \textsf{newtxtext} and
+% \textsf{newtxmath} packages. (Although this is not strictly in
+% accordance with the application instructions, this is unlikely to
+% cause any problems with the funding agency, since the font metrics
+% are virtually identical to the proprietary Times New Roman.)
+%
+% Following \cs{documentclass} you can include whatever \LaTeX\
+% packages and macros you wish; these will apply to both the main
+% document and the subfiles. The template proposal includes some
+% sensible defaults that set the document language and the behaviour
+% and appearance of hyperlinks, section headings, and lists, though
+% you are free to remove or adjust these to taste. (In particular,
+% you may wish to use the \textsf{titlesec} package to further reduce
+% the size of and spacing around section headings.) The template also
+% sets up the bibliographic referencing and citation system to use
+% \textsf{biblatex} and Biber, for which \textsf{sshrc-insight} has
+% built-in support. (See §\ref{sec:bibliographic} for further
+% details.)
+%
+% You should then provide the proposal metadata using the \cs{title}
+% macro, and optionally also the \cs{author} and \cs{date} macros,
+% which behave as they do in the \verb|article| class.
+%
+% \subsubsection{Document body}
+%
+% As in the \verb|article| class, the main body of the document must
+% be placed in the \verb|document| environment.
+%
+% \DescribeMacro{\maketitle}\DescribeMacro{\tableofcontents}
+% These are generally the first macros that should be called in the
+% main body of the document. As with the standard \verb|article|
+% class, they typeset the title and table of contents.
+%
+% \DescribeMacro{\subfile}
+% This macro is used to include the subfiles in the main document; it
+% takes the subfile's filename (optionally excluding the \texttt{.tex}
+% extension) as its sole argument. Each subfile corresponds to a
+% long-answer field that must be filled in the online application
+% form, or a document that must be attached as a PDF to the online
+% application form. The template proposal includes a list of
+% \cs{subfile} commands (as well as the corresponding template files)
+% for fields and documents that are required by most or all proposals;
+% you should comment out or remove any entries that do not apply to
+% your proposal.
+%
+% You may also wish to include among the \cs{subfile} commands further
+% information or documents that you will be submitting in the
+% application form. For externally generated PDFs, such as a STRAC
+% attestation form, you may wish to do this via the \textsf{pdfpages}
+% package's \cs{includepdf} command. Here is an example of how you
+% can do this and have the file appear in the table of contents:
+% \begin{quote}
+% \begin{verbatim}
+% \includepdf[
+% pages=-,
+% addtotoc={1,section,1,STRAC Attestation,STRAC}
+% ]{attestation}
+% \end{verbatim}
+% \end{quote}
+%
+% \subsection{Subfiles}
+%
+% \subsubsection{Preamble}
+%
+% Each subfile must start with the following line:
+% \begin{quote}\cs{documentclass}\oarg{filename}\verb|{subfiles}|\end{quote}
+% Here \meta{filename} must be the filename (\emph{without} the
+% \texttt{.tex} extension) of the main document.
+%
+% The preamble of the subfiles should normally be empty; if you need
+% to import any packages or define any macros, this should be done
+% instead in the preamble of the main document.
+%
+% \subsubsection{Document body}
+%
+% \DescribeMacro{\subfiletitle}
+% In subfiles, this macro should be used in place of the standard
+% \cs{maketitle} macro. It takes as its sole argument the title of
+% the subfile. It prints this title, in a relatively compact format,
+% at the top of the first page of the subfile, and also adds the title
+% to the table of contents of the main document. If using the
+% \textsf{hyperref} package, the title will also appear in the PDF
+% metadata when the subfile is compiled as a separate file. As
+% described in §\ref{sec:localization}, English titles that exactly
+% match those specified in the official application instructions will
+% be automatically localized into French when the document language is
+% set to \verb|french|.
+%
+% \DescribeMacro{\subfilesection}\DescribeMacro{\subfilesubsection}
+% These two macros can be used to print an unnumbered (sub)section
+% heading in a subfile. They function identically to the
+% \verb|article| class's \cs{section*} and \cs{subsection*} except
+% that the arguments are automatically localized, as they are with
+% \cs{subfiletitle}.
+%
+% \DescribeMacro{\countchars} This macro can be used for writing
+% long-answer form data, such as the proposal summary and the response
+% to previous critiques. Its principal benefit is that, in addition
+% to printing the answer text, it outputs its total character count,
+% thereby helping you keep your text within the length limit specified
+% in the application form. The macro takes one mandatory argument,
+% which is the text of the answer, and one optional argument, which is
+% the field's length limit in characters:
+% \begin{quote}\cs{countchars}\oarg{length}\marg{text}\end{quote}
+% If the length limit is not specified, it defaults to 3800, which is
+% the limit for all long-answer fields in the 2024 application form.
+%
+% Note that the PDF output of \cs{countchars} is not intended to be
+% used as-is in your final application. Rather, you should copy and
+% paste its text argument directly from the \LaTeX\ source code into
+% the online application form. For this reason, please ensure that
+% you write the argument as plain text rather than as \LaTeX\ markup.
+%
+% \subsection{Bibliographic references and research contributions}\label{sec:bibliographic}
+%
+% It is recommended to use \textsf{biblatex} and Biber for your
+% bibliographic references and citations, and the template proposal
+% assumes that this is how you have things set up. Put all your
+% \textsf{biblatex} configuration, and all your \cs{addbibresource}
+% macros, in your main document. You can then use the usual
+% \textsf{biblatex} commands for citing references and printing
+% bibliographies in the subfiles. The
+% \texttt{list\_of\_references.tex} file of the template proposal
+% gives an example of how to print a master bibliography for citations
+% across the various subfiles, and the
+% \texttt{research\_contributions.tex} file shows how to print
+% self-contained bibliographies for one's own research contributions,
+% broken down according to the categories specified in the application
+% instructions.
+%
+% \subsubsection{Citation numbering}
+%
+% When using \textsf{biblatex} as described above,
+% \textsf{sshrc-insight} ensures that the numbering of the citations
+% is consistent regardless whether you compile the main proposal file
+% or the individual subfiles. It does this by having the subfiles
+% read in the main document's Biber-generated \texttt{.bbl} file when
+% the subfiles are compiled individually. For this reason, it is
+% important that, whenever you add, change, or remove citations and
+% references, you (re)compile the main document \emph{before} you
+% (re)compile the subfiles. It also means that, despite log messages
+% to the contrary, you never need to run Biber on the subfiles.
+%
+% \subsubsection{Hyperlinks}
+%
+% When \textsf{biblatex} is used in conjunction with
+% \textsf{hyperref}, it hyperlinks each citation to the corresponding
+% entry in the list of references. While this works well when
+% compiling the main document into a single PDF, when compiling the
+% subfiles individually, there is no list of references to link to
+% (since the list of references is itself one of the subfiles). For
+% this reason, \textsf{sshrc-insight} automatically disables
+% \textsf{biblatex}'s hyperlinks when compiling the subfiles
+% individually.
+%
+% \subsubsection{Marking student authors}
+%
+% The official application instructions for the ``Research
+% Contributions'' document indicate that student authors should be
+% identified with a plus sign. \textsf{sshrc-insight} takes care of
+% this when printing bibliographic references by means of a
+% \textsf{biblatex} data annotation, \texttt{student}. To use this
+% feature, simply add a \hologo{BibTeX} field in the following format
+% to any entry with a student author:
+% \begin{quote}
+% \texttt{author+an = \{}\meta{n}\texttt{=student} $\big [$
+% \texttt{;}\meta{n}\texttt{=student} $\big ]$ \dots\ \texttt{\},}
+% \end{quote}
+% where each \meta{n} is the position of a student in the author list.
+% For example, the \hologo{BibTeX} entry
+% \begin{quote}
+% \begin{verbatim}
+% @article{art1,
+% author = {Ferenc Farkas and Lili Lakatos and Fruzsina Fekete},
+% author+an = {1=student;3=student},
+% title = {A new approach to underwater basket-weaving},
+% journal = {Journal of Underwater Basket-weaving},
+% pages = {107--113},
+% year = 2024,
+% }\end{verbatim}
+% \end{quote}
+% will be formatted in the reference lists as follows (modulo whatever
+% bibliography styles you may have applied):
+% \begin{quote}
+% Ferenc Farkas\textsuperscript{+}, Lili Lakatos, and Fruzsina
+% Fekete\textsuperscript{+}. ``A new approach to underwater
+% basket-weaving''. In: \emph{Journal of Underwater Basket-weaving}
+% (2024), pp.\,107--113.
+% \end{quote}
+% Note that student authors will be marked not just in the reference
+% lists but also in the citations: a citation to the entry above might
+% appear as ``(Farkas\textsuperscript{+} et al., 2024)''.
+%
+% \DescribeMacro{\sshrcstudent}
+% Outside bibliographies, the \cs{sshrcstudent} macro can be used for
+% the same effect; it simply outputs a superscripted plus sign.
+%
+% \subsubsection{Marking SSHRC-supported research contributions}
+%
+% The official application instructions for the ``Research
+% Contributions'' document indicate that research contributions
+% resulting from previous SSHRC support should be identified with an
+% asterisk in the left margin. \textsf{sshrc-insight} takes care of
+% this when printing bibliographic references by means of a
+% \textsf{biblatex} keyword, \texttt{sshrc}. To use this feature,
+% simply add the following \hologo{BibTeX} field to any entry that
+% resulted from previous SSHRC support:
+% \begin{quote}
+% \texttt{keywords = \{sshrc\},}
+% \end{quote}
+% (If the entry already contains a \texttt{keywords} field, you can
+% simply add \texttt{sshrc} to its list of values, which are normally
+% separated with commas.) For example, the \hologo{BibTeX} entry
+% \begin{quote}
+% \begin{verbatim}
+% @article{art2,
+% author = {Lili Lakatos},
+% title = {An old approach to underwater basket-weaving},
+% journal = {Journal of Underwater Basket-weaving},
+% pages = {21--35},
+% year = 2021,
+% keywords = {sshrc},
+% }\end{verbatim}
+% \end{quote}
+% will be formatted in the reference lists as follows (modulo whatever
+% bibliography styles you may have applied):
+% \begin{quote}
+% \makebox[0pt][r]{\textasteriskcentered~}Lili Lakatos. ``An old
+% approach to underwater basket-weaving''. In: \emph{Journal of
+% Underwater Basket-weaving} (2021), pp.\,21--35.
+% \end{quote}
+%
+% \DescribeMacro{\sshrcsupported}
+% Outside bibliographies, the \cs{sshrcsupported} macro can be used
+% for the same effect; it simply outputs an asterisk in the left
+% margin.
+%
+% \subsection{Localization}\label{sec:localization}
+%
+% \textsf{sshrc-insight} supports preparation of proposals in either
+% English or French. Although the document and section titles used by
+% the template proposal are in English, setting the document language
+% to \texttt{french} (via the \textsf{babel} or \textsf{polyglossia}
+% packages) will automatically substitute these with the French
+% equivalents in the PDF output.
+%
+% \section{Class development}
+%
+% \subsection{Source repository and bug tracker}
+%
+% For now, the class's source code is hosted on GitHub at
+% \url{https://github.com/logological/sshrc-insight}. There you will
+% also find an issue tracker for reporting bugs and feature requests.
+%
+% \subsection{Versioning scheme}\label{sec:version}
+%
+% Each release of the \textsf{sshrc-insight} class carries a version
+% number in the format \textit{year.\allowbreak maj.\allowbreak
+% min}. Here \textit{year} is the latest year of SSHRC's call for
+% proposals whose application specifications are implemented by the
+% class, and \textit{maj} and \textit{min} represent, respectively,
+% major and minor revisions to the class (including any ancillary
+% files, such as the template proposal and documentation). A major
+% revision is one that includes potentially breaking changes or
+% significant new features; minor revisions are for all other changes.
+% As documented in §\ref{sec:mainpreamble}, the class provides a
+% mechanism that preserves compatibility with earlier versions of the
+% application specifications.
+%
+% \subsection{Version history}
+%
+% \begin{description}
+% \item[v2024.1.0 (2024-10-21)] Added support for marking research
+% contributions according to the official application instructions.
+% \item[v2024.0.1 (2024-10-17)] Refactored files for CTAN.
+% \item[v2024.0.0 (2024-10-16)] Initial release.
+% \end{description}
+%
+% \section{Disclaimer}
+%
+% The \textsf{sshrc-insight} class is distributed in the hope that it
+% will be useful, but WITHOUT ANY WARRANTY; without even the implied
+% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+% PURPOSE. (See the \LaTeX\ Project Public License for further
+% details.) In particular, users should understand that the
+% \textsf{sshrc-insight} proposal template is wholly unofficial, and
+% its author(s) accept no responsibility for any omissions, errors, or
+% discrepancies with respect to the requirements set forth in the
+% official SSHRC application form, application instructions, and
+% associated documentation. If you produce a proposal with this
+% template, then you alone are responsible for ensuring that it
+% matches all the official requirements before submitting it to the
+% funding body.
+%
+% \appendix
+%
+% \section{Implementation}
+%
+% \StopEventually{}
+%
+% \subsection*{Basic setup}
+%
+% Import the \textsf{article} class and define some conditionals for
+% detecting the typesetting engine.
+%
+%\iffalse
+%<*class>
+%\fi
+% \begin{macrocode}
+\LoadClass[12pt,letterpaper]{article}
+
+%% Conditionals for detecting the typesetting engine
+\RequirePackage{ifxetex,ifluatex}
+\newif\ifxetexorluatex
+\ifxetex
+ \xetexorluatextrue
+\else
+ \ifluatex
+ \xetexorluatextrue
+ \else
+ \xetexorluatexfalse
+ \fi
+\fi
+
+% \end{macrocode}
+%
+% The \textsf{subfiles} package is what allows a proposal to be compiled
+% either into a single PDF or into separate files for each part. It
+% takes care of most of the work, though later on we need to apply our
+% own extensions.
+%
+% \begin{macrocode}
+\RequirePackage{subfiles}
+% \end{macrocode}
+%
+% \subsection*{Font setup}
+%
+% If compiling with \hologo{LuaLaTeX} or \hologo{XeLaTeX}, configure
+% \textsf{fontspec} to use Times New Roman, which is the font
+% specified in the official application instructions. If compiling
+% with \hologo{pdfLaTeX}, use the Times clone provided by
+% \textsf{newtxtext} and \textsf{newtxmath}.
+%
+% \begin{macrocode}
+\ifxetexorluatex
+\RequirePackage{fontspec}
+\defaultfontfeatures{Mapping=tex-text}
+\setromanfont{Times New Roman}
+\else
+\RequirePackage[T1]{fontenc} % T1 font encoding
+\RequirePackage{newtxtext} % Use Times for main text
+\RequirePackage{newtxmath} % Use Times for math
+\fi
+% \end{macrocode}
+%
+% \subsection*{Basic page layout, titles, and headings}
+%
+% Set the page size and margins and disable page numbers.
+%
+% \begin{macrocode}
+\RequirePackage[letterpaper,
+ left=0.75in,
+ top=0.75in,
+ bottom=0.75in,
+ right=0.75in,
+ ]{geometry}
+\RequirePackage{nopageno} % No page numbers
+% \end{macrocode}
+%
+% Compactly format the titles for the individual parts of the
+% proposal, and add them as unnumbered entries to the main document's
+% table of contents.
+%
+% \begin{macrocode}
+%% Compact title for subfiles
+\RequirePackage[normalem]{ulem}
+\NewDocumentCommand{\subfiletitle}
+ {m}
+ {%
+ \newpage
+ \ifSubfilesClassLoaded{
+ \@ifpackageloaded{hyperref}
+ {\hypersetup{pdftitle=\GetTranslation{#1}}}
+ {}
+ }
+ {\phantomsection\addcontentsline{toc}{section}{\GetTranslation{#1}}}
+ \begingroup
+ \centering\bfseries\MakeUppercase{\uline{\GetTranslation{#1}}}
+ \par
+ \vskip 1.5em%
+ \endgroup
+ \par\@afterindentfalse\@afterheading
+ }
+
+%% Suppress section numbers in table of contents
+\addtocontents{toc}{\protect\renewcommand{\protect\numberline}[1]{}}
+
+%% Localized (sub)section headings
+\NewDocumentCommand{\subfilesection}
+ {m}
+ {\section*{\GetTranslation{#1}}}
+\NewDocumentCommand{\subfilesubsection}
+ {m}
+ {\subsection*{\GetTranslation{#1}}}
+% \end{macrocode}
+%
+% Provide a mechanism for counting the number of characters in the
+% long-answer form fields so that we know when we've reached the
+% character limit specified in the official application instructions.
+%
+% \begin{macrocode}
+%% Count characters, adapted from code by Steven B. Segletes at
+%% https://tex.stackexchange.com/a/587567/22603
+\RequirePackage{tokcycle}[2021-03-10]
+\RequirePackage{xcolor}
+\newcounter{wordcount}
+\newcounter{lettercount}
+\newcounter{wordlimit}
+\newif\ifinword
+%% USER PARAMETERS
+\newif\ifrunningcount
+\newif\ifsummarycount
+\def\limitcolor{red}
+\setcounter{wordlimit}{0}
+%%%
+%% \tc@defx is like \def, but expands the replacement text once prior
+%% to assignment
+\newcommand\addtomacro[2]{\tc@defx#1{#1#2}}
+\newcommand\changecolor[1]
+ {\tctestifx{.#1}{}{\addcytoks{\color{#1}{}}%
+ \tc@defx\currentcolor{#1}}}
+\newcommand\dumpword{%
+ \addcytoks[1]{\accumword}%
+ \ifinword\stepcounter{wordcount}\stepcounter{lettercount}
+ \ifrunningcount\addcytoks[x]{$^{\thewordcount,\thelettercount}$}\fi
+ \ifnum\thewordcount=\value{wordlimit}\relax%
+ \changecolor{\limitcolor}\fi
+ \fi%
+ \inwordfalse
+ \def\accumword{}}
+\newcommand\addletter[1]{%
+ \stepcounter{lettercount}%
+ \tctestifcatnx A#1{\inwordtrue}{\dumpword}%
+ \addtomacro\accumword{#1}}
+\xtokcycleenvironment\countem
+ {\addletter{##1}}
+ {\dumpword\groupedcytoks{\processtoks{##1}%
+ \dumpword\expandafter}\expandafter
+ \changecolor\expandafter{\currentcolor}}
+ {\dumpword\addcytoks{##1}}
+ {\dumpword\addcytoks{##1}}
+ {\stripgroupingtrue\def\accumword{}\def\currentcolor{.}
+ \setcounter{wordcount}{0}\setcounter{lettercount}{0}}
+ {\dumpword\ifsummarycount\tcafterenv{%
+ \par(Wordcount=\thewordcount, Lettercount=\thelettercount)}\fi}
+
+\def\characterlimit{3800}
+\newcommand{\countchars}[2][\characterlimit]
+ {\countem #2\endcountem\par\hfill
+ \GetTranslation{Character count:}
+ \thelettercount\ \GetTranslation{of} #1
+ }
+% \end{macrocode}
+%
+% A command for marking SSHRC-supported contributions (outside of
+% bibliographies) with an asterisk in the left margin:
+%
+% \begin{macrocode}
+\reversemarginpar
+\NewDocumentCommand{\sshrcsupported}
+ {}
+ {%
+ \leavevmode%
+ \marginparsep=0pt%
+ \marginpar{\raggedleft\mbox{\textasteriskcentered~}}%
+ }
+% \end{macrocode}
+%
+% \subsection*{Bibliography}
+%
+% A command for marking student authors in the bibliography (or
+% elsewhere):
+%
+% \begin{macrocode}
+\NewDocumentCommand{\sshrcstudent}
+ {}
+ {\textsuperscript{+}}
+% \end{macrocode}
+%
+% If \textsf{biblatex} is used, we provide some convenient features.
+%
+% \begin{macrocode}
+\AtBeginDocument{
+ \@ifpackageloaded{biblatex}
+ {
+% \end{macrocode}
+%
+% To enforce consistency in the labelling/numbering of citations when
+% the proposal is compiled into a single PDFs vs.\ multiple PDFs, use
+% \textsf{biblatex-readbbl} to force subfiles to use the \texttt{bbl}
+% file generated for the main file.
+%
+% \begin{macrocode}
+ \ifSubfilesClassLoaded
+ {
+ % Force subfiles to read the main file's bibliography
+ \RequirePackage[bblfile=\preamble@file]{biblatex-readbbl}
+ }
+ {}
+% \end{macrocode}
+%
+% Provide a mechanism to mark student authors with a plus, per the
+% official application instructions.
+%
+% \begin{macrocode}
+ \renewcommand*{\mkbibnamefamily}[1]{%
+ \ifitemannotation{student}
+ {#1\sshrcstudent}
+ {#1}%
+ }
+% \end{macrocode}
+%
+% Provide a mechanism to mark previous SSHRC-supported contributions
+% with an asterisk in the left margin, per the official application
+% instructions.
+%
+% \begin{macrocode}
+ \renewbibmacro*{begentry}
+ {%
+ \ifkeyword{sshrc}
+ {\makebox[0pt][r]{\textasteriskcentered~}}
+ {}%
+ }
+ }
+ {}
+}
+% \end{macrocode}
+%
+% When \textsf{biblatex} is used with \textsf{hyperref}, it hyperlinks
+% each citation to the corresponding entry in the list of references.
+% This is fine when compiling the proposal into a single PDF, but when
+% compiling the proposal parts individually, there is no list of
+% references to link to. So when compiling the subfiles individually,
+% we disable the hyperlinks.
+%
+% \begin{macrocode}
+%% Disable citation hyperlinks in subfiles
+\ifSubfilesClassLoaded{
+ \PassOptionsToPackage{hyperref=false}{biblatex}
+}{}
+% \end{macrocode}
+%
+% \subsection*{Localizations}
+%
+% Provide French versions of the document titles and section headings
+% specified in the application instructions, as well as a few other
+% user-visible strings emitted by \textsf{sshrc-insight}.
+%
+% \begin{macrocode}
+%% Localizations
+\RequirePackage{translations}
+\DeclareTranslation{french}{1. Relevant research contributions over the last six years}{1. Contributions pertinentes à la recherche faites au cours des six dernières années}
+\DeclareTranslation{french}{2. Other research contributions}{2. Autres contributions à la recherche}
+\DeclareTranslation{french}{3. Most significant career research contributions}{3. Plus importantes contributions à la recherche faites au cours d'une carrière}
+\DeclareTranslation{french}{4. Contributions to training}{4. Contributions à la formation}
+\DeclareTranslation{french}{Budget Justification}{Justification du budget}
+\DeclareTranslation{french}{Career Interruptions and Special Circumstances}{Interruptions de carrière et circonstances spéciales}
+\DeclareTranslation{french}{Context}{Contexte}
+\DeclareTranslation{french}{Creative outputs}{Réalisations artistiques}
+\DeclareTranslation{french}{Description of previous and ongoing research results}{Description des résultats de recherche les plus récents ou en cours}
+\DeclareTranslation{french}{Description of proposed student training strategies}{Description des stratégies proposées de formation des étudiants}
+\DeclareTranslation{french}{Description of the research team}{Description de l'équipe de recherche}
+\DeclareTranslation{french}{Detailed Description}{Description détaillée}
+\DeclareTranslation{french}{Exclusion of Potential Reviewers}{Exclusion d'évaluateurs éventuels}
+\DeclareTranslation{french}{Expected Outcomes}{Résultats escomptés}
+\DeclareTranslation{french}{Forthcoming contributions}{Contributions à venir}
+\DeclareTranslation{french}{Knowledge Mobilization Plan}{Plan de mobilisation des connaissances}
+\DeclareTranslation{french}{List of References}{Liste des références}
+\DeclareTranslation{french}{Methodology}{Méthodologie}
+\DeclareTranslation{french}{Nonrefereed contributions}{Contributions non soumises à des comités de lecture}
+\DeclareTranslation{french}{Objectives}{Objectifs}
+\DeclareTranslation{french}{Other refereed contributions}{Autres contributions soumises à des comités de lecture}
+\DeclareTranslation{french}{Previous Critiques}{Réponse à des critiques précédentes}
+\DeclareTranslation{french}{Refereed contributions}{Publications soumises à des comités de lecture}
+\DeclareTranslation{french}{Request for Multi/Interdisciplinary Evaluation}{Demande d'évaluation interdisciplinaire ou multidisciplinaire}
+\DeclareTranslation{french}{Research Contributions}{Contributions à la recherche}
+\DeclareTranslation{french}{Research Team, Student Training, Previous Output}{Équipe de recherche, résultats les plus récents et formation des étudiants}
+\DeclareTranslation{french}{Research-creation Support Material}{Documents d'appui liés à la recherche-création}
+\DeclareTranslation{french}{Summary of Proposal}{Résumé de la proposition}
+\DeclareTranslation{french}{Character count:}{Nombre de caractères:}
+\DeclareTranslation{french}{of}{sur}
+% \end{macrocode}
+%\iffalse
+%</class>
+%<*budgetjustification>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Budget Justification}
+
+%% Enter document text here.
+
+\end{document}
+%</budgetjustification>
+%<*careerinterruptions>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Career Interruptions and Special Circumstances}
+
+%% Enter document text here.
+
+\end{document}
+%</careerinterruptions>
+%<*detaileddescription>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Detailed Description}
+
+\subfilesection{Objectives}
+
+%% Enter section text here.
+
+\subfilesection{Context}
+
+%% Enter section text here.
+
+\subfilesection{Methodology}
+
+%% Enter section text here.
+
+\end{document}
+%</detaileddescription>
+%<*exclusionofpotentialreviewers>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Exclusion of Potential Reviewers}
+
+%% Enter document text here.
+
+\end{document}
+%</exclusionofpotentialreviewers>
+%<*expectedoutcomes>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Expected Outcomes}
+
+%% Enter form text in the command argument below.
+\countchars{}
+
+\end{document}
+%</expectedoutcomes>
+%<*knowledgemobilizationplan>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+
+\subfiletitle{Knowledge Mobilization Plan}
+
+%% Enter document text here.
+
+\end{document}
+%</knowledgemobilizationplan>
+%<*listofreferences>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{List of References}
+
+\begin{sloppypar}
+\printbibliography[heading=none]
+\end{sloppypar}
+
+\end{document}
+%</listofreferences>
+%<*multi-interdisciplinaryevaluation>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Request for Multi/Interdisciplinary Evaluation}
+
+%% Enter document text here.
+
+\end{document}
+%</multi-interdisciplinaryevaluation>
+%<*previouscritiques>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Previous Critiques}
+
+%% Enter form text in the command argument below.
+\countchars{}
+
+\end{document}
+%</previouscritiques>
+%<*insightproposal>
+\documentclass{sshrc-insight}[=2024]
+
+%% This is the main file for a skeleton SSHRC Insight Grant proposal
+%% using the sshrc-insight class. Compile this file to get a complete
+%% draft of your proposal (minus the short-answer fields from the
+%% online application form) in a single PDF, including a table of
+%% contents. This makes it convenient for you (and anyone helping you
+%% review your proposal before submission) to read all the long-form
+%% proposal text.
+%%
+%% The complete proposal is generated from the other tex files in this
+%% directory, which are the individual documents and long-answer form
+%% fields to be attached to or copied into the online application form.
+%% They can be compiled separately for when you want to work on one
+%% part of the proposal at a time, or for when you are ready to attach
+%% the individual PDFs to the online application form.
+
+%% Use one of the following two commands to set the hyphenation
+%% patterns, document and section headings, bibliography strings,
+%% etc. to Canadian English or French.
+\usepackage[canadian]{babel}
+%% \usepackage[french]{babel}
+
+%% It is recommended to use biblatex + biber for your references; the
+%% skeleton proposal assumes that this is how you have things set up.
+%% (It may be possible to use bibunits + bibtex instead but this has
+%% not been tested.) Modify the following lines to configure
+%% biblatex's citation and reference styles to your taste and to
+%% specify the bibliography file(s) you want to use.
+\usepackage{csquotes}
+\usepackage[style=authoryear]{biblatex}
+\addbibresource{insight_proposal.bib}
+
+%% The following (optional) block of commands enables hyperlinks and
+%% PDF metadata, and ensures URLs are set in Times (New Roman). Remove
+%% or tweak if desired.
+\usepackage[pdfusetitle]{hyperref}
+\hypersetup{%
+ colorlinks=true,
+ breaklinks=true,
+ urlcolor=black,
+ linkcolor=black,
+ citecolor=black,
+ linktoc=all,
+}
+\urlstyle{rm}
+
+%% The following (optional) block of commands tightens up the layout to
+%% save space. Remove or tweak if desired.
+\usepackage{microtype}
+\usepackage[inline]{enumitem}
+\setlist{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}
+\usepackage[compact]{titlesec}
+
+%% Enter the title and author(s) of your proposal here.
+\title{My SSHRC Insight proposal}
+\author{My name}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+%% Remove or comment out any of the following sections that don't apply
+%% to your proposal.
+\subfile{previous_critiques}
+\subfile{multi-interdisciplinary_evaluation}
+\subfile{summary}
+\subfile{detailed_description}
+\subfile{knowledge_mobilization_plan}
+\subfile{list_of_references}
+\subfile{research-creation_support_material}
+\subfile{research_team}
+\subfile{budget_justification}
+\subfile{expected_outcomes}
+\subfile{exclusion_of_potential_reviewers}
+\subfile{research_contributions}
+\subfile{career_interruptions}
+
+%% If you wish, you could include further documents you will be
+%% attaching to the final submission. For externally generated PDFs,
+%% you should add \usepackage{pdfpages} to the document preamble. Here
+%% is an example of how you might include your STRAC attestation (from
+%% a file named attestation.pdf) and add it to the table of contents:
+%%
+%% \includepdf[
+%% pages=-,
+%% addtotoc={1,section,1,STRAC Attestation,STRAC}
+%% ]{attestation}
+
+\end{document}
+%</insightproposal>
+%<*researchcontributions>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Research Contributions}
+
+\subfilesection{1. Relevant research contributions over the last six years}
+
+%% Delete any of the subsections below that do not apply to your
+%% research contributions.
+
+\subfilesubsection{Refereed contributions}
+
+\begin{refcontext}[sorting=ydnt]
+\begin{refsection}{}
+ \nocite{% Add citation keys to your "refereed contributions" here.
+ }
+\begin{sloppypar}
+ \printbibliography[heading=none]
+\end{sloppypar}
+\end{refsection}{}
+\end{refcontext}
+
+\subfilesubsection{Other refereed contributions}
+
+\begin{refcontext}[sorting=ydnt]
+\begin{refsection}{}
+ \nocite{% Add citation keys to your "other refereed contributions" here.
+ }
+\begin{sloppypar}
+ \printbibliography[heading=none]
+\end{sloppypar}
+\end{refsection}{}
+\end{refcontext}
+
+\subfilesubsection{Nonrefereed contributions}
+
+\begin{refcontext}[sorting=ydnt]
+\begin{refsection}{}
+ \nocite{% Add citation keys to your "nonrefereed contributions" here.
+ }
+\begin{sloppypar}
+ \printbibliography[heading=none]
+\end{sloppypar}
+\end{refsection}{}
+\end{refcontext}
+
+\subfilesubsection{Forthcoming contributions}
+
+\begin{refcontext}[sorting=ydnt]
+\begin{refsection}{}
+ \nocite{% Add citation keys to your "forthcoming contributions" here.
+ }
+\begin{sloppypar}
+ \printbibliography[heading=none]
+\end{sloppypar}
+\end{refsection}{}
+\end{refcontext}
+
+\subfilesubsection{Creative outputs}
+
+\begin{refcontext}[sorting=ydnt]
+\begin{refsection}{}
+ \nocite{% Add citation keys to your "creative outputs" here.
+ }
+\begin{sloppypar}
+ \printbibliography[heading=none]
+\end{sloppypar}
+\end{refsection}{}
+\end{refcontext}
+
+\subfilesection{2. Other research contributions}
+
+%% Enter section text here.
+
+\subfilesection{3. Most significant career research contributions}
+
+%% Enter section text here.
+
+\subfilesection{4. Contributions to training}
+
+%% Enter section text here.
+
+\end{document}
+%</researchcontributions>
+%<*research-creationsupportmaterial>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Research-creation Support Material}
+
+%% Enter document text here.
+
+\end{document}
+%</research-creationsupportmaterial>
+%<*researchteam>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Research Team, Student Training, Previous Output}
+
+\subfilesection{Description of the research team}
+
+%% Enter section text here.
+
+\subfilesection{Description of previous and ongoing research results}
+
+%% Enter section text here.
+
+\subfilesection{Description of proposed student training strategies}
+
+%% Enter section text here.
+
+\end{document}
+%</researchteam>
+%<*summary>
+\documentclass[insight_proposal]{subfiles}
+\begin{document}
+\subfiletitle{Summary of Proposal}
+
+%% Enter form text in the command argument below.
+\countchars{}
+
+\end{document}
+%</summary>
+%<*insightproposalbib>
+@article{art1,
+ author = {Ferenc Farkas and Lili Lakatos and Fruzsina Fekete},
+ author+an = {1=student;3=student},
+ title = {A new approach to underwater basket-weaving},
+ journal = {Journal of Underwater Basket-weaving},
+ pages = {107--113},
+ year = 2024,
+}
+
+@article{art2,
+ author = {Lili Lakatos},
+ title = {An old approach to underwater basket-weaving},
+ journal = {Journal of Underwater Basket-weaving},
+ pages = {21--35},
+ year = 2021,
+ keywords = {sshrc},
+}
+%</insightproposalbib>
+% \fi
+% \Finale
diff --git a/macros/latex/contrib/sshrc-insight/sshrc-insight.ins b/macros/latex/contrib/sshrc-insight/sshrc-insight.ins
new file mode 100644
index 0000000000..6808aef14f
--- /dev/null
+++ b/macros/latex/contrib/sshrc-insight/sshrc-insight.ins
@@ -0,0 +1,74 @@
+%%
+%% Copyright 2024 Tristan Miller
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/sshrc-insight}
+
+\preamble
+
+This is a generated file.
+
+\endpreamble
+
+\generate{\file{sshrc-insight.cls}{\from{sshrc-insight.dtx}{class}}}
+\generate{\file{budget_justification.tex}{\from{sshrc-insight.dtx}{budgetjustification}}}
+\generate{\file{career_interruptions.tex}{\from{sshrc-insight.dtx}{careerinterruptions}}}
+\generate{\file{detailed_description.tex}{\from{sshrc-insight.dtx}{detaileddescription}}}
+\generate{\file{exclusion_of_potential_reviewers.tex}{\from{sshrc-insight.dtx}{exclusionofpotentialreviewers}}}
+\generate{\file{expected_outcomes.tex}{\from{sshrc-insight.dtx}{expectedoutcomes}}}
+\generate{\file{knowledge_mobilization_plan.tex}{\from{sshrc-insight.dtx}{knowledgemobilizationplan}}}
+\generate{\file{list_of_references.tex}{\from{sshrc-insight.dtx}{listofreferences}}}
+\generate{\file{multi-interdisciplinary_evaluation.tex}{\from{sshrc-insight.dtx}{multi-interdisciplinaryevaluation}}}
+\generate{\file{previous_critiques.tex}{\from{sshrc-insight.dtx}{previouscritiques}}}
+\generate{\file{insight_proposal.tex}{\from{sshrc-insight.dtx}{insightproposal}}}
+\generate{\file{insight_proposal.bib}{\from{sshrc-insight.dtx}{insightproposalbib}}}
+\generate{\file{research_contributions.tex}{\from{sshrc-insight.dtx}{researchcontributions}}}
+\generate{\file{research-creation_support_material.tex}{\from{sshrc-insight.dtx}{research-creationsupportmaterial}}}
+\generate{\file{research_team.tex}{\from{sshrc-insight.dtx}{researchteam}}}
+\generate{\file{summary.tex}{\from{sshrc-insight.dtx}{summary}}}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space sshrc-insight.cls}
+\Msg{*}
+\Msg{* The following files constitute a template proposal; you}
+\Msg{* should copy them to a separate directory and edit them}
+\Msg{* as desired.}
+\Msg{*}
+\Msg{* \space\space budget_justification.tex}
+\Msg{* \space\space career_interruptions.tex}
+\Msg{* \space\space detailed_description.tex}
+\Msg{* \space\space exclusion_of_potential_reviewers.tex}
+\Msg{* \space\space expected_outcomes.tex}
+\Msg{* \space\space knowledge_mobilization_plan.tex}
+\Msg{* \space\space list_of_references.tex}
+\Msg{* \space\space multi-interdisciplinary_evaluation.tex}
+\Msg{* \space\space previous_critiques.tex}
+\Msg{* \space\space research_contributions.tex}
+\Msg{* \space\space research-creation_support_material.tex}
+\Msg{* \space\space research_team.tex}
+\Msg{* \space\space summary.tex}
+\Msg{* \space\space insight_proposal.tex}
+\Msg{* \space\space insight_proposal.bib}
+\Msg{*}
+\Msg{* To produce the documentation run the file sshrc-insight.dtx}
+\Msg{* through pdflatex.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/sshrc-insight/sshrc-insight.pdf b/macros/latex/contrib/sshrc-insight/sshrc-insight.pdf
new file mode 100644
index 0000000000..795d8a2075
--- /dev/null
+++ b/macros/latex/contrib/sshrc-insight/sshrc-insight.pdf
Binary files differ
diff --git a/macros/latex/contrib/suanpan-l3/README.md b/macros/latex/contrib/suanpan-l3/README.md
new file mode 100644
index 0000000000..6a1df4e510
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/README.md
@@ -0,0 +1,58 @@
+The traditional Chinese 7-bids suanpan(abacus) package based on l3draw
+=======
+
+The `suanpan-l3` package is a traditional Chinese 7-bids abacus drawing package that utilizes l3draw and TikZ and is developed with Expl3. It can effectively manage both upper and lower bids, while also considering bottom bid, top bid, and hanging bid.
+
+The `suanpan-l3` package offers a unique environment for drawing abacuses, denoted as `suanpan`. Within this environment, 8 specialized macros are available for the creation of abacuses. The `\rod` macro is used to lay out a single rod, while the `\rod*` macro draws a counting point on this rod's beam. The `\rods` macro is capable of laying out a set of rods. The `\bid` macro colors the specified bid. The `\bids` macro colors all inner bids that are near the beam, while the `\bids*` macro colors all outer bids that are far from the beam. The `\rodmark` mark the rod on beam. Lastly, the `\mkfame` macro is used to lay out the frame of an abacus.
+
+At the same time, the `suanpan-l3` package offers customization options for abacus, including line width, draw color, fill color, bid space, rod space, etc. These can be configured through package options, `suanpan` environment options, or `\suanpanset` macro.
+
+For further details and examples, please refer to the manual(in Chinese/English).
+
+Contributing
+------------
+
+1. gitee repository:
+ (1). repository: [suanpan](https://gitee.com/nwafu_nan/suan-pan)
+ (2). Issues and PR: [issue](https://gitee.com/nwafu_nan/suan-pan/issues) or [pull request](https://gitee.com/nwafu_nan/suan-pan/pulls).
+
+基于l3draw的中国传统7珠算盘LaTeX排版宏包
+=======
+
+`suanpan-l3`是一个基于l3draw和TikZ绘图宏包,用Expl3开发的中国传统7珠圆珠算盘排版宏包,它能够实现普通上珠、下珠和使用底珠、顶珠和悬珠的算盘排版。
+
+`suanpan-l3`宏包提供了唯一的一个`suanpan`排版环境用于绘制需要排版的算盘,在该环境中使用专用命令`\rod`排版一个档位,`\rod*`命令排版带计位点的档位,`\rods`命令排版一组档位,`\bid`命令为指定的算珠进行着色,`\bids`命令为指定档位的内珠进行着色,`\bids*`命令为指定的档位的外珠进行着色,`\rodmark`命令用于为档位横梁添加标记,`\mkframe`命令排版算盘边框。
+
+同时,`suanpan-l3`宏包还为算盘排版提供线宽、颜色、间距等**外观**设置选项,可以通过宏包选项、环境选项对其进行设置,也可以通过`\suanpanset`命令实现外观属性设置。
+
+可以通过阅读宏包手册以了解该宏包更多的使用细节和使用样例。
+
+## 参与贡献
+---------------------
+
+1. gitee仓库:
+ (1). 仓库地址: [suanpan](https://gitee.com/nwafu_nan/suan-pan)
+ (2). Issues and PR: [issue](https://gitee.com/nwafu_nan/suan-pan/issues) or [pull request](https://gitee.com/nwafu_nan/suan-pan/pulls).
+
+Copyright and Licence
+---------------------
+
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
+ ----------------------------------------------------------------------
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either
+ version 1.3c of this license or (at your option) any later
+ version. This version of this license is in
+ http://www.latex-project.org/lppl/lppl-1-3c.txt
+ and the latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of
+ LaTeX version 2005/12/01 or later.
+
+ This work has the LPPL maintenance status "maintained".
+
+ The Current Maintainer of this work is Nan Geng.
+
+ This package consists of suanpan-l3.sty, suanpan-l3.tex and README.md(this file),
+ and the derived files suanpan-l3.pdf with build.sh.
diff --git a/macros/latex/contrib/suanpan-l3/build.sh b/macros/latex/contrib/suanpan-l3/build.sh
new file mode 100755
index 0000000000..6747532dcd
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/build.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+xelatex suanpan-l3.tex &&\
+makeindex -s gind.ist -o suanpan-l3.ind suanpan-l3.idx &&\
+makeindex -s gglo.ist -o suanpan-l3.gls suanpan-l3.glo &&\
+xelatex suanpan-l3.tex &&\
+xelatex suanpan-l3.tex &&\
+xelatex suanpan-l3.tex
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf b/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf
new file mode 100644
index 0000000000..8bba2d3887
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.sty b/macros/latex/contrib/suanpan-l3/suanpan-l3.sty
new file mode 100644
index 0000000000..b712d0063e
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.sty
@@ -0,0 +1,1412 @@
+%%% ----------------------------------------------------------------------------
+%%% suanpan: draw suanpan(abacus) with LaTeX3
+%%% Author : Nan Geng <nangeng@nwafu.edu.cn>
+%%% Repository: https://gitee.com/nwafu_nan/suan-span
+%%% License : The LaTeX Project Public License 1.3c
+%%% ----------------------------------------------------------------------------
+
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\RequirePackage{expl3}
+% \ProvidesExplPackage{suanpan}{2024-08-20}{v1.0.0} % 初稿
+% \ProvidesExplPackage{suanpan}{2024-08-28}{v1.1.0} % 优化(统一尺寸计算,添加空白占位)
+% \ProvidesExplPackage{suanpan-l3}{2024-08-30}{v1.1.1} % 更名为suanpan-l3
+% \ProvidesExplPackage{suanpan-l3}{2024-08-31}{v1.1.2} % 添加empty不绘制空档选项
+% \ProvidesExplPackage{suanpan-l3}{2024-09-01}{v1.1.3} % 添加bid批处理及绘制颜色选项
+% % 将算珠与档杆绘制改为TikZ
+% \ProvidesExplPackage{suanpan-l3}{2024-09-04}{v1.2.0} % 添加\lab横梁文字标记命令
+% \ProvidesExplPackage{suanpan-l3}{2024-09-05}{v1.2.1} % 将草稿模式所有算珠改为圆冒
+% % 直线并取消所有高光特效
+% \ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.2} % 为珠高、珠宽、档杆宽度和
+% % 边框宽度添加设置选项
+% \ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.3} % 将算珠高光改为ball类型,
+% % 并添加高光位置(角度)选项。
+\ProvidesExplPackage{suanpan-l3}{2024-10-13}{v1.2.4} % 删除tikz宏包库加载补丁
+ {draw suanpan(abacus) with LaTeX3}
+
+\RequirePackage{l3keys2e}
+\RequirePackage{xparse}
+\RequirePackage{l3draw}
+
+\RequirePackage {tikz}
+% 添加tikz宏包的库
+\usetikzlibrary{shadings}
+
+\cs_new:Npn \__suanpan_error:n { \msg_error:nn { suanpan(abacus) } }
+
+% 盒子容器总高度计算函数
+\cs_new_nopar:Npn \__suanpan_coffin_ht_plus_dp:N #1
+ {
+ \coffin_ht:N #1 + \coffin_dp:N #1
+ }
+
+% =============颜色处理函数=============
+% 填充色辅助函数
+\cs_new_nopar:Nn \__suanpan_aux_color_boxfill:
+ { }
+
+% 颜色命名函数
+% #1 颜色名称
+% #2 颜色表达式
+\cs_set_nopar:Npn \__suanpan_color_select:nn #1#2
+ {
+ \colorlet { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \__suanpan_color_select:nn {nx}
+
+% 颜色命名函数
+% #1 颜色名称
+% #2 颜色空间
+% #3 颜色分量值
+\cs_set_nopar:Npn \__suanpan_color_select:nnn #1#2#3
+ {
+ \definecolor { #1 } { #2 } { #3 }
+ }
+\cs_generate_variant:Nn \__suanpan_color_select:nnn {nnx}
+
+% 定义变量
+% 算盘基础尺寸
+\dim_new:N \l__suanpan_bid_h_dim
+\dim_new:N \l__suanpan_bid_d_dim
+\dim_new:N \l__suanpan_rod_d_dim
+\dim_new:N \l__suanpan_frame_b_dim
+\dim_new:N \l__suanpan_bid_sep_dim
+\dim_new:N \l__suanpan_rod_sep_dim
+
+% 算盘基础尺寸初值(参考 QBT1747-1993 算盘标准)
+\dim_set:Nn \l__suanpan_bid_h_dim { 12mm }
+\dim_set:Nn \l__suanpan_bid_d_dim { 23mm }
+\dim_set:Nn \l__suanpan_rod_d_dim { 7mm }
+\dim_set:Nn \l__suanpan_frame_b_dim { 13mm }
+\dim_set:Nn \l__suanpan_bid_sep_dim { 1.8pt }
+\dim_set:Nn \l__suanpan_rod_sep_dim { 3.0pt }
+
+% 半长度
+\dim_new:N \l__suanpan_bid_h_half_dim
+\dim_new:N \l__suanpan_bid_d_half_dim
+\dim_new:N \l__suanpan_rod_d_half_dim
+\dim_new:N \l__suanpan_frame_b_half_dim
+
+% 上珠偏移
+\dim_new:N \l__suanpan_bid_upper_offset_dim
+% 下珠偏移
+\dim_new:N \l__suanpan_bid_lower_offset_dim
+% 上档杆长度
+\dim_new:N \l__suanpan_rod_upper_h_dim
+% 下档杆长度
+\dim_new:N \l__suanpan_rod_lower_h_dim
+% 上档杆偏移
+\dim_new:N \l__suanpan_rod_upper_offset_dim
+% 下档杆偏移
+\dim_new:N \l__suanpan_rod_lower_offset_dim
+% 上档杆位置
+\dim_new:N \l__suanpan_rod_upper_dim
+% 下档杆位置
+\dim_new:N \l__suanpan_rod_lower_dim
+% 上边框内线偏移
+\dim_new:N \l__suanpan_frame_upper_inner_offset_dim
+% 下边框内线偏移
+\dim_new:N \l__suanpan_frame_lower_inner_offset_dim
+% 上边框外线偏移
+\dim_new:N \l__suanpan_frame_upper_outer_offset_dim
+% 下边框外线偏移
+\dim_new:N \l__suanpan_frame_lower_outer_offset_dim
+% 算珠上边缘
+\dim_new:N \l__suanpan_bid_upper_dim
+% 算珠下边缘
+\dim_new:N \l__suanpan_bid_lower_dim
+% 算珠绘制高度
+\dim_new:N \l__suanpan_bid_draw_h_dim
+% 算珠绘制半高度
+\dim_new:N \l__suanpan_bid_draw_h_half_dim
+% 算珠圆角半径
+\dim_new:N \l__suanpan_bid_arc_dim
+% 横梁计位点半径
+\dim_new:N \l__suanpan_frame_unit_r_dim
+% 边框外线半宽度
+\dim_new:N \l__suanpan_frame_outer_half_dim
+% 档杆总成宽度
+\dim_new:N \l__suanpan_support_d_dim
+% 档杆总成半宽度
+\dim_new:N \l__suanpan_support_d_half_dim
+% 档杆总成组装垂直偏移
+\dim_new:N \l__suanpan_support_y_offset_dim
+
+% 上边框内线位置
+\dim_new:N \l__suanpan_frame_inner_upper_dim
+% 下边框内线位置
+\dim_new:N \l__suanpan_frame_inner_lower_dim
+
+% 边框内线高度
+\dim_new:N \l__suanpan_frame_inner_h_dim
+% 边框外线高度
+\dim_new:N \l__suanpan_frame_outer_h_dim
+
+\dim_new:N \l__suanpan_frame_inner_linewidth_dim
+\dim_new:N \l__suanpan_frame_outer_linewidth_dim
+\dim_new:N \l__suanpan_rod_linewidth_dim
+\dim_new:N \l__suanpan_bid_linewidth_dim
+
+% 状态变量
+\bool_new:N \l__suanpan_support_frame_bool
+\bool_set_true:N \l__suanpan_support_frame_bool
+\bool_new:N \l__suanpan_support_unit_bool
+\bool_set_false:N \l__suanpan_support_unit_bool
+\bool_new:N \l__suanpan_draft_bool
+\bool_new:N \l__suanpan_empty_rod_bool
+
+% 容器(盒子)
+\coffin_new:N \l__suanpan_inner_bid_coffin
+\coffin_new:N \l__suanpan_outer_bid_coffin
+\coffin_new:N \l__suanpan_float_bid_coffin
+\coffin_new:N \l__suanpan_support_coffin
+\coffin_new:N \l_tmpc_coffin
+\coffin_new:N \l_tmpd_coffin
+
+% 凭据表(Token)
+\tl_new:N \l__suanpan_bid_draw_color_tl
+\tl_new:N \l__suanpan_bid_fill_color_tl
+\tl_new:N \l__suanpan_scale_tl
+\tl_new:N \l__suanpan_mark_font_tl
+\tl_new:N \l__suanpan_bid_spot_angle_tl
+
+% 档位最大值
+\int_new:N \l__suanpan_rod_max_int
+\int_zero:N \l__suanpan_rod_max_int
+
+% 档位算珠位置列表
+\clist_new:N \l__suanpan_bids_pos_clist
+
+% 档位数字与算珠位置对照属性表常量(内珠和外珠)
+% {x, y}==>x: 算珠位置(1-11, 1-7---下珠,8-10---上珠,11---悬珠)
+% y: 算珠类型(0---外珠,1---内珠)
+\prop_const_from_keyval:Nn \l__suanpan_rods_val_prop
+ {
+ 0 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {9, 0}, {10, 0}},
+ 1 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {9, 0}, {10, 0}},
+ 2 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 3 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 4 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 5 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {8, 1}, {10, 0}},
+ 6 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {10, 0}},
+ 7 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 8 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 9 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 10 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 11 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {9 , 1}},
+ 12 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 13 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 14 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 15 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 16 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {11, 1}},
+ 17 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 18 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 19 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 20 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}}
+ }
+
+% 尺寸计算函数
+\cs_new:Nn \__suanpan_dim_calc:
+ {
+ % 基础尺寸半长度
+ \dim_set:Nn \l__suanpan_bid_h_half_dim { \l__suanpan_bid_h_dim / 2 }
+ \dim_set:Nn \l__suanpan_bid_d_half_dim { \l__suanpan_bid_d_dim / 2 }
+ \dim_set:Nn \l__suanpan_rod_d_half_dim { \l__suanpan_rod_d_dim / 2 }
+ \dim_set:Nn \l__suanpan_frame_b_half_dim { \l__suanpan_frame_b_dim / 2 }
+ % 上珠偏移(8号算珠)
+ \dim_set:Nn \l__suanpan_bid_upper_offset_dim
+ { \l__suanpan_frame_b_half_dim + \l__suanpan_bid_h_half_dim }
+ % 下珠偏移(1号算珠)
+ \dim_set:Nn \l__suanpan_bid_lower_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_bid_h_dim * 7 +
+ \l__suanpan_bid_h_half_dim }
+ % 上档杆长度
+ \dim_set:Nn \l__suanpan_rod_upper_h_dim { \l__suanpan_bid_h_dim * 3 }
+ % 下档杆长度
+ \dim_set:Nn \l__suanpan_rod_lower_h_dim { \l__suanpan_bid_h_dim * 7 }
+ % 上档杆偏移
+ \dim_set:Nn \l__suanpan_rod_upper_offset_dim { \l__suanpan_frame_b_half_dim }
+ % 下档杆偏移
+ \dim_set:Nn \l__suanpan_rod_lower_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_rod_lower_h_dim }
+ % 上档杆位置
+ \dim_set:Nn \l__suanpan_rod_upper_dim
+ { \l__suanpan_rod_upper_offset_dim + \l__suanpan_rod_upper_h_dim }
+ % 下档杆位置
+ \dim_set:Nn \l__suanpan_rod_lower_dim { -\l__suanpan_frame_b_half_dim }
+
+ % 上边框内线偏移
+ \dim_set:Nn \l__suanpan_frame_upper_inner_offset_dim
+ { \l__suanpan_frame_b_half_dim + \l__suanpan_rod_upper_h_dim }
+ % 下边框内线偏移
+ \dim_set:Nn \l__suanpan_frame_lower_inner_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_rod_lower_h_dim }
+ % 上边框外线偏移
+ \dim_set:Nn \l__suanpan_frame_upper_outer_offset_dim
+ { \l__suanpan_frame_b_dim + \l__suanpan_frame_b_half_dim +
+ \l__suanpan_rod_upper_h_dim }
+ % 下边框外线偏移
+ \dim_set:Nn \l__suanpan_frame_lower_outer_offset_dim
+ { -\l__suanpan_frame_b_dim - \l__suanpan_frame_b_half_dim -
+ \l__suanpan_rod_lower_h_dim }
+
+ % 算珠上边缘
+ \dim_set:Nn \l__suanpan_bid_upper_dim
+ { \l__suanpan_bid_h_half_dim - \l__suanpan_bid_sep_dim / 2 }
+ % 算珠上边缘
+ \dim_set:Nn \l__suanpan_bid_lower_dim
+ { -\l__suanpan_bid_h_half_dim + \l__suanpan_bid_sep_dim / 2 }
+ % 算珠绘制高度
+ \dim_set:Nn \l__suanpan_bid_draw_h_dim
+ { \l__suanpan_bid_upper_dim - \l__suanpan_bid_lower_dim }
+ % 算珠绘制半高度
+ \dim_set:Nn \l__suanpan_bid_draw_h_half_dim
+ { \l__suanpan_bid_draw_h_dim / 2 }
+ % 算珠圆角半径
+ \dim_set:Nn \l__suanpan_bid_arc_dim
+ { \l__suanpan_bid_draw_h_half_dim - 1pt}
+
+ % 横梁计位点半径
+ \dim_set:Nn \l__suanpan_frame_unit_r_dim { \l__suanpan_frame_b_dim / 4 }
+
+ % 边框外线半宽度
+ \dim_set:Nn \l__suanpan_frame_outer_half_dim
+ { \l__suanpan_frame_outer_linewidth_dim / 2 }
+
+ % 档杆总成宽度
+ \dim_set:Nn \l__suanpan_support_d_dim
+ { \l__suanpan_bid_d_dim + \l__suanpan_rod_sep_dim }
+ % 档杆总成半宽度
+ \dim_set:Nn \l__suanpan_support_d_half_dim
+ { \l__suanpan_bid_d_half_dim + \l__suanpan_rod_sep_dim / 2 }
+
+ % 档杆总成组装垂直偏移
+ \dim_set:Nn \l__suanpan_support_y_offset_dim
+ { ( \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim ) / 2 -
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_half_dim
+ }
+
+ % 上边框内线位置
+ \dim_set:Nn \l__suanpan_frame_inner_upper_dim
+ { \l__suanpan_frame_upper_inner_offset_dim +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ % 下边框内线位置
+ \dim_set:Nn \l__suanpan_frame_inner_lower_dim
+ { \l__suanpan_frame_lower_inner_offset_dim -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+
+ % 边框内线高度
+ \dim_set:Nn \l__suanpan_frame_inner_h_dim
+ { \l__suanpan_rod_upper_h_dim +
+ \l__suanpan_rod_lower_h_dim +
+ \l__suanpan_frame_b_dim }
+ % 边框外线高度
+ \dim_set:Nn \l__suanpan_frame_outer_h_dim
+ { \l__suanpan_rod_upper_h_dim +
+ \l__suanpan_rod_lower_h_dim +
+ \l__suanpan_frame_b_dim * 3 }
+ }
+
+% 选项处理
+% ============宏包选项=================
+\keys_define:nn { suanpan }
+ {
+ % 草稿模式
+ draft .choice:,
+ draft / true .code:n = {%
+ \bool_set_true:N \l__suanpan_draft_bool
+ \bool_set_false:N \l__suanpan_empty_rod_bool
+ },
+ draft / false .code:n = {%
+ \bool_set_false:N \l__suanpan_draft_bool
+ \bool_set_true:N \l__suanpan_empty_rod_bool
+ },
+ draft .default:n = true,
+ draft .initial:n = false,
+
+ % 是否绘制档的数值为0的空档算珠
+ empty .choice:,
+ empty / true .code:n = { \bool_set_true:N \l__suanpan_empty_rod_bool },
+ empty / false .code:n = { \bool_set_false:N \l__suanpan_empty_rod_bool },
+ empty .default:n = true,
+ empty .initial:n = true,
+
+ unknown .code:n = { \msg_error:nn { suanpan } { unknown-option } }
+ }
+
+% key_value选项设计
+\keys_define:nn { suanpan }
+ {
+ % 绘图线宽
+ linewd .code:n = { % 算盘边框内线线宽
+ \dim_set:Nn \l__suanpan_frame_inner_linewidth_dim {#1}
+ % 算盘边框外线线宽
+ \dim_set:Nn \l__suanpan_frame_outer_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 7.0 }
+ }
+ }
+ % 档杆线宽
+ \dim_set:Nn \l__suanpan_rod_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 0.2 }
+ }
+ }
+ % 算珠线宽
+ \dim_set:Nn \l__suanpan_bid_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 0.2 }
+ }
+ }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ linewd .initial:n = 2.0pt,
+
+ % 算珠高度
+ bidh .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_h_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidh .initial:n = 12mm,
+
+ % 算珠直径
+ bidd .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_d_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidd .initial:n = 23mm,
+
+ % 档杆直径(应小于算珠直径bidd)
+ rodd .code:n = {%
+ \dim_set:Nn \l__suanpan_rod_d_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ rodd .initial:n = 7mm,
+
+ % 边框宽度
+ framew .code:n = {%
+ \dim_set:Nn \l__suanpan_frame_b_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ framew .initial:n = 13mm,
+
+ % 档间间距
+ rodsep .code:n = {%
+ \dim_set:Nn \l__suanpan_rod_sep_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ rodsep .initial:n = 3.0pt,
+
+ % 算珠间距
+ bidsep .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_sep_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidsep .initial:n = 0.0pt,
+
+ % 缩放参数
+ scale .tl_set:N = \l__suanpan_scale_tl,
+ scale .initial:n = 1.0,
+
+ % 边框绘图颜色
+ framedraw .code:n = { \__suanpan_color_select:nn { framecolor } {#1} },
+ framedraw .initial:n = black,
+ framedraw* .code:n = { \__suanpan_color_select:nnn { framecolor } #1 },
+
+ % 档杆绘图颜色
+ roddraw .code:n = { \__suanpan_color_select:nn { roddrawcolor } {#1} },
+ roddraw .initial:n = black,
+ roddraw* .code:n = { \__suanpan_color_select:nnn { roddrawcolor } #1 },
+ % 档杆填充颜色
+ rodfill .code:n = { \__suanpan_color_select:nn { rodfillcolor } {#1} },
+ rodfill .initial:n = black!20,
+ rodfill* .code:n = { \__suanpan_color_select:nnn { rodfillcolor } #1 },
+
+ % 外珠绘图颜色
+ outerdraw .code:n = { \__suanpan_color_select:nn { outerdrawcolor } {#1} },
+ outerdraw .initial:n = black,
+ outerdraw* .code:n = { \__suanpan_color_select:nnn { outerdrawcolor } #1 },
+ % 外珠填充颜色
+ outerfill .code:n = { \__suanpan_color_select:nn { outerfillcolor } {#1} },
+ outerfill .initial:n = black!40,
+ outerfill* .code:n = { \__suanpan_color_select:nnn { outerfillcolor } #1 },
+
+ % 内珠绘图颜色
+ innerdraw .code:n = { \__suanpan_color_select:nn { innerdrawcolor } {#1} },
+ innerdraw .initial:n = black,
+ innerdraw* .code:n = { \__suanpan_color_select:nnn { innerdrawcolor } #1 },
+ % 内珠填充颜色
+ innerfill .code:n = { \__suanpan_color_select:nn { innerfillcolor } {#1} },
+ innerfill .initial:n = black,
+ innerfill* .code:n = { \__suanpan_color_select:nnn { innerfillcolor } #1 },
+ innerfill .initial:n = black,
+
+ % 横梁标记字符格式
+ font .tl_set:N = \l__suanpan_mark_font_tl,
+ font .initial:n = \bfseries\Large,
+
+ % 算珠高光点位置(角度)
+ bidspot .tl_set:N = \l__suanpan_bid_spot_angle_tl,
+ bidspot .initial:n = 0,
+
+ unknown .code:n = { \msg_error:nn { suanpan } { unknown-option } }
+ }
+
+% 出错输出信息
+\msg_new:nnn { suanpan } { unknown-option }
+ { package~ option~ "\l_keys_key_tl"~ is~ unknown. }
+
+% 选项默认值
+\keys_set:nn { suanpan }
+ {
+ linewd = 2.0pt,
+ rodsep = 3.0pt,
+ bidsep = 1.8pt,
+ scale = 1.0,
+ empty = true,
+ }
+
+% 将文档类选项传给suanpan
+\ProcessKeysOptions { suanpan }
+
+% 构建内珠(靠近横梁,参与计数)容器(盒子)
+\cs_new:Nn \__suanpan_inner_bid_construct:
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style = {% 内珠高光填充样式
+ shading = ball,
+ ball~color = innerfillcolor,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {% 内珠草稿模式绘制样式
+ draw = innerfillcolor,
+ line~cap = round,% 圆角线冒
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_inner_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0);
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[bid]
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建外珠(远离横梁,不参与计数)容器(盒子)
+\cs_new:Nn \__suanpan_outer_bid_construct:
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style ={
+ shading = ball,
+ ball~color = outerfillcolor,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {
+ draw = outerfillcolor,
+ line~cap = round,
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_outer_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0 );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[bid]%
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建浮珠容器(盒子)
+% 浮珠指可以在算盘中任意布置的算珠
+% #1 绘制颜色
+% #2 填充颜色
+\cs_new:Npn \__suanpan_float_bid_construct:nn #1#2
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style~args = { #1/#2 }{
+ draw = #1,
+ shading = ball,
+ ball~color = #2,
+ shading~angle = 0,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {
+ line~cap = round,
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_float_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draw=#2, draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0 );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[bid=#1/#2]
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建档杆容器(盒子)
+\cs_new:Nn \__suanpan_support_construct:
+ {
+ % TikZ绘图样式
+ \tikzset{%
+ rod/.style = {% 档杆
+ inner~color = rodfillcolor!30,
+ outer~color = rodfillcolor,
+ draw = roddrawcolor,
+ line~width = \l__suanpan_rod_linewidth_dim,
+ },
+ beam/.style = {% 横梁
+ bottom~color = framecolor!60,
+ top~color = framecolor!60,
+ middle~color = framecolor!5,
+ },
+ frame/.style = {% 上下梁
+ bottom~color = framecolor!95,
+ top~color = framecolor!95,
+ middle~color = framecolor!15,
+ },
+ rodline/.style = {% 档杆边线
+ draw = roddrawcolor,
+ line~width = \l__suanpan_rod_linewidth_dim,
+ },
+ frameinner/.style = {% 内边框线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ frameouter/.style = {% 外边框线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_outer_linewidth_dim,
+ },
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_support_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ % 绘制下杆
+ \draw[rodline]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_dim );
+ % 绘制上杆
+ \draw[rodline]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_dim );
+
+ % 绘制横梁
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim );
+
+ % 绘制上梁下边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim );
+ % 绘制上梁上边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2)
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2);
+
+ % 绘制下梁上边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim );
+ % 绘制下梁下边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 );
+
+ % 绘制计位点(黑色圆点)
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \fill[%
+ fill=black,
+ ] (0pt, 0pt) circle
+ [radius = \l__suanpan_frame_unit_r_dim];
+ }
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ % 绘制下杆
+ \shadedraw[rod]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_dim );
+ % 绘制上杆
+ \shadedraw[rod]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_dim );
+
+ % 绘制横梁
+ \shade[beam]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ rectangle
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim );
+
+ % 绘制上梁下边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim );
+ % 绘制上梁上边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2)
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2);
+
+ % 绘制下梁上边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim );
+ % 绘制下梁下边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 );
+
+ % 绘制计位点(黑色圆点)
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \shade[%
+ shading = ball,
+ ball~color = black,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
+ ] (0pt, 0pt) circle
+ [radius = \l__suanpan_frame_unit_r_dim];
+ }
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 绘制算珠
+% #1: 算珠位置编号
+% o o o o o o o | o o o
+% 1 2 3 4 5 6 7 8 9 10
+% | o
+% 11
+% 其中,11是悬珠位置
+% #2: 算珠类型
+% 0——外珠,1——内珠,2——浮珠
+\cs_new:Npn \__suanpan_bid_layout:nn #1#2
+ {
+ % 算珠垂直偏移
+ \int_compare:nNnTF { #1 } > { 7 }
+ {
+ \int_compare:nNnTF { #1 } < { 11 }
+ {
+ % 上珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_bid_upper_offset_dim +
+ \l__suanpan_bid_h_dim * (#1 - 8) }
+ }{
+ % 悬珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_frame_b_half_dim +
+ \l__suanpan_bid_h_dim * 2 }
+ }
+ }{
+ % 下珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_bid_lower_offset_dim +
+ \l__suanpan_bid_h_dim * (#1 - 1) }
+ }
+
+ % 绘图算珠
+ \draw_scope_begin:
+ \draw_transform_yshift:n { \l_tmpb_dim }
+ \int_case:nnF { #2 }
+ {
+ { 0 } { \draw_coffin_use:Nnn \l__suanpan_outer_bid_coffin { hc } { vc } }
+ { 1 } { \draw_coffin_use:Nnn \l__suanpan_inner_bid_coffin { hc } { vc } }
+ { 2 } { \draw_coffin_use:Nnn \l__suanpan_float_bid_coffin { hc } { vc } }
+ }{ \msg_error:nnn { suanpan } { bid-type-error } {#2} }
+ \draw_scope_end:
+ }
+
+\msg_new:nnn { suanpan } { bid-type-error }
+ { #1~ bid~ type~ is~ unknown. }
+
+% 函数变体
+\cs_generate_variant:Nn \__suanpan_bid_layout:nn {xx}
+
+% 组装一个档位
+% #1: 档位编号(基于1,从左向右计数)
+% #2: 档位数字
+\cs_new:Npn \__suanpan_assemble_rod:nn #1#2
+ {
+ \tl_set:Nn \l_tmpb_tl { #2 }
+ % 绘制
+ \draw_scope_begin:
+ % 水平方向偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * (#1 - 1) }
+
+ % 档杆
+ \draw_coffin_use:Nnnn \l__suanpan_support_coffin
+ { hc } { vc } { 0pt, -\l__suanpan_support_y_offset_dim }
+
+ % 算珠
+ \int_compare:nNnTF { #2 } = { 0 }
+ {
+ % 判断0值空档算珠是否需要绘制
+ \bool_if:NT \l__suanpan_empty_rod_bool
+ {
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #2 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ \__suanpan_bid_layout:xx { \clist_item:Nn \l_tmpa_clist { 1 } }
+ { \clist_item:Nn \l_tmpa_clist { 2 } }
+ }
+ }
+ }{
+ % 不是0值空档算珠,需要绘制
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #2 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ \__suanpan_bid_layout:xx { \clist_item:Nn \l_tmpa_clist { 1 } }
+ { \clist_item:Nn \l_tmpa_clist { 2 } }
+ }
+ }
+ \draw_scope_end:
+ }
+
+% 指定一个档位上浮珠的颜色
+% #1: 档位编号(从左向右)
+% #2: 算珠位置([1, 11])
+\cs_new:Npn \__suanpan_float_bid:nn #1#2
+ {
+ \draw_scope_begin:
+ % 水平偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * ( #1 - 1 ) }
+
+ % 覆盖绘制
+ \__suanpan_bid_layout:xx { #2 }{ 2 }
+ \draw_scope_end:
+ }
+
+% 为一个档位添加计数标记
+% #1: 档位编号(基于1,从左向右)
+% #2: 标记内容
+\cs_new:Npn \__suanpan_rod_mark:nn #1#2
+ {
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ \begin{tikzpicture}
+ \node at ( 0, 0 ) [font=\l__suanpan_mark_font_tl] { #2 };
+ \end{tikzpicture}
+ }
+
+ \draw_scope_begin:
+ % 水平偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * ( #1 - 1 ) }
+ \draw_coffin_use:Nnn \l_tmpa_coffin { hc } { vc }
+ \draw_scope_end:
+ }
+
+% 绘制边框
+% #1 第一档编号(左)
+% #2 最后一档编号(右)
+\cs_new:Npn \__suanpan_frame_layout:nn #1#2
+ {
+ % TikZ绘制样式
+ \tikzset{%
+ hframe/.style = {% 上下梁
+ bottom~color = framecolor!95,
+ top~color = framecolor!95,
+ middle~color = framecolor!15,
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ vframe/.style = {% 左右梁
+ left~color = framecolor!95,
+ right~color = framecolor!95,
+ middle~color = framecolor!15,
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ mframe/.style = {% 横梁
+ top~color = framecolor!60,
+ bottom~color = framecolor!60,
+ middle~color = framecolor!5,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ frameline/.style = {% 梁连线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ framefill/.style = {% 外框填充
+ draw = framecolor,
+ fill = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ arcline/.style = {% 转角线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ rounded~corners = \l__suanpan_frame_inner_linewidth_dim / 2,
+ },
+ }
+
+ % 总宽度
+ \dim_set:Nn \l_tmpa_dim {
+ \fp_to_dim:n {
+ \fp_eval:n { \l__suanpan_support_d_dim * ( #2 - #1 + 1.0) }
+ }
+ }
+ % 减半档宽度
+ \dim_set:Nn \l_tmpb_dim {
+ \fp_to_dim:n {
+ \fp_eval:n { \l__suanpan_support_d_dim * ( #2 - #1 ) +
+ \l__suanpan_support_d_half_dim}
+ }
+ }
+
+ \group_begin:
+ % 上下边框基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[framefill]
+ ( 0pt, 0pt ) --
+ ++( \l_tmpa_dim, 0) --
+ ++( \l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ ++( -\l_tmpa_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ cycle;
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[hframe]
+ ( 0pt, 0pt ) --
+ ++( \l_tmpa_dim, 0) --
+ ++( \l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ ++( -\l_tmpa_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ cycle;
+ \end{tikzpicture}
+ }
+ }
+
+ % 左右边框基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpb_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[framefill]
+ ( 0, 0 ) --
+ ++( 0, \l__suanpan_frame_inner_h_dim) --
+ ++( -\l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( 0, -\l__suanpan_frame_outer_h_dim ) --
+ cycle;
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, \l__suanpan_frame_inner_h_dim )
+ ++( 0, \l__suanpan_frame_b_dim )
+ ++( 0, \l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, -\l__suanpan_frame_b_half_dim );
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, -\l__suanpan_frame_b_dim )
+ ++( 0, -\l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, \l__suanpan_frame_b_half_dim );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[vframe]
+ ( 0, 0 ) --
+ ++( 0, \l__suanpan_frame_inner_h_dim) --
+ ++( -\l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( 0, -\l__suanpan_frame_outer_h_dim ) --
+ cycle;
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, \l__suanpan_frame_inner_h_dim )
+ ++( 0, \l__suanpan_frame_b_dim )
+ ++( 0, \l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, -\l__suanpan_frame_b_half_dim );
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, -\l__suanpan_frame_b_dim )
+ ++( 0, -\l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, \l__suanpan_frame_b_half_dim );
+ \end{tikzpicture}
+ }
+ }
+
+ % 横梁接头基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpc_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \fill[fill=white,
+ line~width=\l__suanpan_frame_inner_linewidth_dim]
+ ( 0pt, 0pt ) --++( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ cycle;
+ \draw[frameline]%
+ ( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_inner_linewidth_dim, 0);
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shade[mframe]
+ ( 0pt, 0pt ) --++( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ cycle;
+ \draw[frameline]%
+ ( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_inner_linewidth_dim, 0);
+ \end{tikzpicture}
+ }
+ }
+
+ % 布置上边框
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_upper_dim -
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpa_coffin { l } { b }
+ { -\l__suanpan_frame_b_dim, 0pt }
+ \draw_scope_end:
+
+ % 布置下边框
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpa_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpa_dim - \l__suanpan_support_d_half_dim +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_lower_dim +
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpa_coffin { l } { b }
+ { \l__suanpan_frame_b_dim, 0pt }
+ \draw_scope_end:
+
+ % 布置左边框
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_b_dim -
+ \l__suanpan_frame_inner_linewidth_dim * 1.5 }
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_lower_dim -
+ \l__suanpan_frame_inner_linewidth_dim }
+
+ \draw_coffin_use:Nnnn \l_tmpb_coffin { l } { b }
+ { 0pt, -\l__suanpan_frame_b_dim }
+ \draw_scope_end:
+
+ % 布置右边框
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpb_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpb_dim +
+ \l__suanpan_frame_b_dim +
+ \l__suanpan_frame_inner_linewidth_dim * 1.5}% -
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_upper_dim +
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpb_coffin { l } { b }
+ { 0pt, \l__suanpan_frame_b_dim }
+ \draw_scope_end:
+
+ % 布置左横梁接头
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_b_dim / 3 -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { -\l__suanpan_frame_b_dim / 2 -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_coffin_use:Nnnn \l_tmpc_coffin { l } { b } { 0pt, 0pt }
+ \draw_scope_end:
+
+ % 布置右横梁接头
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpc_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpb_dim +
+ \l__suanpan_frame_b_dim / 3 +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { \l__suanpan_frame_b_dim / 2 +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_coffin_use:Nnnn \l_tmpc_coffin { l } { b } { 0pt, 0pt }
+ \draw_scope_end:
+ \group_end:
+ }
+
+% 算盘排版用户接口
+% 算盘排版环境
+% #1 suanpan环境选项
+% #2 suanpan环境内容(!b参数)
+\NewDocumentEnvironment{ suanpan }{ o !b }
+ {
+ \group_begin:
+ % 设置选项
+ \IfNoValueF{ #1 }
+ {
+ \keys_set:nn { suanpan }{ #1 }
+ }
+
+ % 构造基础容器(盒子)
+ \__suanpan_inner_bid_construct:
+ \__suanpan_outer_bid_construct:
+ \__suanpan_support_construct:
+
+ % 删除#2(!b)参数取得的环境内容中的空白
+ \str_set:Nn \l_tmpa_str { #2 }
+ \str_remove_all:Nn \l_tmpa_str {~}
+ % 将str还原为tl
+ \tl_set_rescan:Nno \l_tmpa_tl {}{ \l_tmpa_str }
+
+ % 在容器(盒子)中用#2(!b)参数取得的按环境内容实现绘制
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ \draw_begin:
+ \l_tmpa_tl
+ \draw_end:
+ }
+
+ \hcoffin_set:Nn \l_tmpb_coffin
+ {
+ % 将原图缩小50%
+ \coffin_scale:Nnn \l_tmpa_coffin { 0.50 } { 0.50 }
+ \coffin_typeset:Nnnnn \l_tmpa_coffin{ l }{ b }{ 0pt }{ 0pt }
+ }
+ }{
+ % 按用户指定比例缩放
+ \coffin_scale:Nnn \l_tmpb_coffin
+ { \l__suanpan_scale_tl } { \l__suanpan_scale_tl }
+
+ % 设置基字符盒子(排版深度)
+ \hbox_set:Nn \l_tmpa_box { x }
+ % 盒子深度
+ \dim_set:Nn \l_tmpa_dim { \box_dp:N \l_tmpa_box}
+
+ % 输出算盘容器(盒子)
+ \coffin_typeset:Nnnnn \l_tmpb_coffin{ l }{ b }{ 0pt }{ -\l_tmpa_dim }
+ \int_zero:N \l__suanpan_rod_max_int
+ \group_end:
+ }
+
+% 排版算盘一个档位,包括档杆和算珠
+% #1 星号命令,绘制计位点(黑色圆点)
+% #2 档位编号(基于1,从左向右计数)
+% #3 本档数字(0-20,10-15需用到顶珠和底珠,16-20需要用到悬珠)
+\NewDocumentCommand{ \rod }{ s m m }
+ {
+ % 记录原状态变量
+ \bool_set_eq:NN \l_tmpa_bool \l__suanpan_support_unit_bool
+ % 星号命令,用于在横梁绘制计位点
+ \IfBooleanTF{#1}
+ {
+ \bool_set_true:N \l__suanpan_support_unit_bool
+ }{
+ \bool_set_false:N \l__suanpan_support_unit_bool
+ }
+
+ % 如状态发生改变,则重新绘制档杆单元
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \bool_if:NF \l__suanpan_support_unit_bool
+ {
+ \__suanpan_support_construct:
+ }
+ }{
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \__suanpan_support_construct:
+ }
+ }
+
+ % 组装一个档位
+ \__suanpan_assemble_rod:nn { #2 }{ #3 }
+
+ % 统计档位总数
+ \int_set:Nn \l__suanpan_rod_max_int
+ { \int_max:nn { \l__suanpan_rod_max_int }{ #2 } }
+ }
+
+% 排版算盘多个档位,包括档杆和算珠
+% #1 本档数字(0-20,10-15需用到顶珠和底珠,16-20需要用到悬珠)
+% 各数字之间需要用逗号分隔。
+\NewDocumentCommand{ \rods }{ m }
+ {
+ % 构造档位数字列表
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ % 初始化档位计数器
+ \int_set:Nn \l_tmpa_int { 0 }
+
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 档位计数器自增1
+ \int_incr:N \l_tmpa_int
+
+ % 组装当前档位
+ \__suanpan_assemble_rod:nn {\l_tmpa_int }{ ##1 }
+ }
+
+ % 记录档位总数
+ \int_set:Nn \l__suanpan_rod_max_int
+ { \int_max:nn { \l__suanpan_rod_max_int }{ \l_tmpa_int } }
+ }
+
+% 指定某档上某个算珠的颜色
+% #1 档位(基于1,从左向右计数)
+% #2 算珠位置列表(1--11,11为悬珠位置)
+% #3 算珠填充颜色
+% #4 算珠绘制颜色(默认为内珠绘制颜色)
+\NewDocumentCommand{ \bid }{ m m m O{innerdrawcolor} }
+ {
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { #4 }{ #3 }
+
+ % 构造算珠位置列表
+ \clist_set:Nn \l_tmpa_clist { #2 }
+
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 绘制浮珠
+ \__suanpan_float_bid:nn { #1 }{ ##1 }
+ }
+ }
+
+% 指定某档上所有内珠或外珠的颜色
+% #1 星号命令,选择内珠或外珠
+% #2 档位(基于1,从左向右计数)
+% #3 该档数字
+% #4 算珠填充颜色(绘图颜色采用原内/外珠绘制颜色)
+\NewDocumentCommand{ \bids }{ s m m m }
+ {
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #3 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ % 星号命令,用于选择外珠着色
+ \IfBooleanTF{#1}
+ {
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { outerdrawcolor }{ #4 }
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ % 选择外珠
+ \int_compare:nNnT { \clist_item:Nn \l_tmpa_clist { 2 } } = { 0 }
+ {
+ \__suanpan_float_bid:nn { #2 }{ \clist_item:Nn \l_tmpa_clist { 1 } }
+ }
+ }
+ }{
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { innerdrawcolor }{ #4 }
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ % 选择内珠
+ \int_compare:nNnT { \clist_item:Nn \l_tmpa_clist { 2 } } = { 1 }
+ {
+ \__suanpan_float_bid:nn { #2 }{ \clist_item:Nn \l_tmpa_clist { 1 } }
+ }
+ }
+ }
+ }
+
+% 左右边框
+\NewDocumentCommand{ \mkframe }{ }
+ {
+ \__suanpan_frame_layout:nn { 1 }{ \l__suanpan_rod_max_int }
+ }
+
+% 为各档添加计位标记
+% #1 起始档位(基于1,从左向右计数)
+% #2 标记列表
+\NewDocumentCommand{ \rodmark }{ O{1} m }
+ {
+ % 标记列表
+ \clist_set:Nn \l_tmpa_clist { #2 }
+
+ % 计数器
+ \int_set:Nn \l_tmpa_int { #1 }
+
+ % 遍历列表
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 输出标记
+ \__suanpan_rod_mark:nn { \l_tmpa_int }{ ##1 }
+
+ % 调整计数器
+ \int_incr:N \l_tmpa_int
+
+ % 超出最大档位
+ \int_compare:nNnT { \l_tmpa_int } > { \l__suanpan_rod_max_int }
+ {
+ \clist_map_break:
+ }
+ }
+ }
+
+% 选项设置用户接口
+\NewDocumentCommand{ \suanpanset } { m }
+ {
+ \IfNoValueF { #1}
+ {
+ \keys_set:nn { suanpan } { #1 }
+ }
+ }
+
+\endinput
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.tex b/macros/latex/contrib/suanpan-l3/suanpan-l3.tex
new file mode 100644
index 0000000000..5a121f8868
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.tex
@@ -0,0 +1,1530 @@
+\documentclass[full]{l3doc}
+\usepackage[scheme=chinese]{ctex}
+\usepackage{geometry}
+\usepackage{fancyvrb-ex}
+\usepackage{ninecolors}
+\usepackage{suanpan-l3}
+
+\IndexPrologue
+ {
+ % \section*{索引}
+ % \markboth{索引}{索引}
+ % \addcontentsline{toc}{section}{索引}
+ % 斜体数字说明了对应索引内容出现的页码,
+ % 带有下划线的数据给出了索引内容的定义,
+ % 其它的数字给出了索引内容引用的位置。
+ \section*{Index}
+ \markboth{Index}{Index}
+ \addcontentsline{toc}{section}{Index}
+ The~italic~numbers~denote~the~pages~where~the~
+ corresponding~entry~is~described,~
+ numbers~underlined~point~to~the~definition,~
+ all~others~indicate~the~places~where~it~is~used.
+ }
+
+\newcommand\tikzmark[1]{\tikz \coordinate[overlay, remember picture] (#1);}
+
+\geometry{
+ left=4.5cm,
+ right=2cm,
+ top=2cm,
+ bottom=2cm,
+}
+\hypersetup {
+ CJKbookmarks,
+ bookmarksopen,
+ bookmarksopenlevel=3,
+ pdfstartview=FitH,
+ pdfinfo = {
+ Title = 中国传统7珠圆珠算盘排版宏包 ,
+ Subject = A LaTeX3 package ,
+ Author = 耿楠
+ }
+}
+
+\DoNotIndex{\begin, \end}
+\setlength{\parskip}{\medskipamount}
+\DeclareDocumentEnvironment { noteen } { +b } {
+ \par\textbf{\textsf{NOTE:~}}#1\par
+} {}
+\DeclareDocumentEnvironment { notezh } { +b } {
+ \par\textbf{\textsf{注意:~}}#1\par
+} {}
+
+\AtEndDocument{
+ \newgeometry{
+ left=2cm,
+ right=2cm,
+ top=2cm,
+ bottom=2cm
+ }
+ \PrintChanges
+ \PrintIndex
+}
+
+\ExplSyntaxOn
+\dim_new:N \l__my_syntax_dim
+\box_new:N \g__my_syntax_box
+\NewDocumentEnvironment { Syntax } { s }
+ {
+ \dim_set:Nn \l__my_syntax_dim
+ { \textwidth }
+ \hbox_gset:Nw \g__my_syntax_box
+ \small \ttfamily
+ \begin{minipage}[t]{\l__my_syntax_dim}
+ \raggedright\obeyspaces\obeylines
+ }
+ {
+ \end{minipage}
+ \hbox_gset_end:
+ \IfValueF { #1 } { \smallskip }
+ \box_use_drop:N \g__my_syntax_box
+ \smallskip
+ }
+
+\DeclareDocumentEnvironment { Description } { o +b } {
+ \hbox_set:Nn \l_tmpa_box { #1 }
+ \dim_set:Nn \l_tmpa_dim { \box_wd:N \l_tmpa_box }
+ \begin{itemize}[labelwidth=\l_tmpa_dim, align=left]
+ #2
+ \end{itemize}
+} { }
+
+\keys_define:nn { suanpan/doc } {
+ opt .tl_set:N = \l_opt_tl,
+ desc .tl_set:N = \l_desc_tl,
+ init .tl_set:N = \l_init_tl,
+ init .initial:n = init-none,
+}
+
+\box_new:N \l__option_box
+\NewDocumentEnvironment { option } { m +b } {
+ \keys_set:nn { suanpan/doc } { #1 }
+ \hbox_set:Nw \l__option_box
+ \small \ttfamily
+ \begin{minipage}[t]{\textwidth}
+ \obeyspaces\obeylines
+ \textcolor{red}{
+ \l_opt_tl
+ \exp_args:Nx\SpecialOptionIndex{\l_opt_tl}
+ }
+ {~}\l_desc_tl
+ \hfill(
+ \tl_if_eq:NnTF \l_init_tl { init-none } { no~value }
+ { init: ~\texttt{\l_init_tl} }
+ )
+ \end{minipage}
+ \hbox_gset_end:
+ \box_use_drop:N \l__option_box
+ #2
+ \medskip
+} { }
+
+\DeclareDocumentCommand \opt { O{} m }
+ { \__codedoc_cmd:no {#1} { #2 } }
+\ExplSyntaxOff
+
+\def\vers{\texttt{v1.2.4} }
+
+\changes{v1.0.0}{2024/08/20}{first version.}
+\changes{v1.2.4}{2024/10/13}{remove tikz patch.}
+
+\begin{document}
+\title{
+ \pkg{suanpan-l3}---算盘(Abacus)排版宏包
+ \rlap{\makebox[4cm][r]{
+ \normalsize $\Longrightarrow$ \color{red}
+ \protect\hyperlink{en}{English Version}
+ \protect\hypertarget{zh}{}
+ }}
+}
+\author{\textit{耿楠} \texttt{<nangeng@nwafu.edu.cn>}}
+\date{\the\year 年\the\month 月\the\day 日\qquad \vers
+\thanks{\url{https://gitee.com/nwafu_nan/suan-pan}}
+}
+
+\maketitle
+
+\begin{abstract}
+ \pkg{suanpan-l3}是一个基于\pkg{l3draw}和\pkg{TikZ}绘图宏包,用\pkg{Expl3}%
+ 开发的中国传统7珠圆珠算盘排版宏包,它能够实现使用普通上珠、下珠
+ 和底珠、顶珠及悬珠的算盘排版。该宏包提供了唯一的一个
+ \env{suanpan}算盘排版环境及仅在该环境中使用的 \tn{rod}、
+ \tn{rods}、\tn{bid}、\tn{bids}、\tn{rodmark}和\tn{mkframe}档杆、算珠
+ 着色、横梁标记和边框排版命令。同时,该宏包还提供了\tn{suanpanset}%
+ 命令用于对算盘外观进行设置。
+ \begin{center}
+ \begin{suanpan}[framedraw = brown2, scale = 0.45, bidsep=1.5pt,
+ roddraw = brown3, rodfill = brown4]
+ % 各档位数字列表
+ \rods{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
+ % 定位点
+ \rod*{4}{3}
+ \rod*{18}{17}
+ % 使用顶珠
+ \bid{12}{9}{azure5}
+ \bid{13}{9}{azure5}
+ \bid{14}{9}{azure5}
+ \bid{15}{9}{azure5}
+ \bid{16}{9}{azure5}
+ % 使用悬珠
+ \bid{17}{11}{red5}
+ \bid{18}{11}{red5}
+ \bid{19}{11}{red5}
+ \bid{20}{11}{red5}
+ \bid{21}{11}{red5}
+ % 使用底珠
+ \bid{11}{3}{olive5}
+ \bid{16}{3}{olive5}
+ \bid{21}{3}{olive5}
+ \rodmark{21,20,19,{},17,16,15,14,13,12,11,10,9,8,7,6,5,{},3,2,1}
+ \mkframe
+ \end{suanpan}
+ \end{center}
+\end{abstract}
+
+{\small
+\tableofcontents
+}
+\newpage
+
+\begin{documentation}
+
+\section{引言}
+
+\pkg{suanpan-l3}宏包是一个基于\pkg{l3draw}和\pkg{TikZ}绘图宏包,
+用\pkg{Expl3}开发的中国传统7珠圆珠算盘排版宏包,它利用\pkg{l3draw}%
+宏包,通过\env{l3coffin}容器的平移变换,将使用\pkg{TikZ}宏包绘制的
+算珠、档杆、边框等基本图元组装成算盘,从而实现算盘的排版。
+
+由于圆珠是通过圆角矩形实现的,因此当算珠数量较多时,绘制耗时较长,
+其编译速度较慢。
+
+\section{用户接口}
+
+\subsection{\env{suanpan}算盘排版环境}
+
+\begin{function}{suanpan}
+ \begin{syntax}
+ \tn{begin}|{suanpan}|\oarg{外观选项}
+ .....
+ \tn{end}|{suanpan}|
+ \end{syntax}
+\end{function}
+
+ 按可选项设置的\oarg{外观选项}实现算盘排版。
+
+ 在\env{suanpan}环境中,可以通过专用命令\tn{rod}%
+ (排版算盘的一个档位),\tn{rods}(排版一组档位),
+ \tn{bid}(指定算珠颜色),\tn{bids}(指定内/外珠颜色),
+ \tn{rodmark}(为档位添加标记),\tn{mkframe}(排版边框)
+ 按需实现算盘排版。
+
+ 在\oarg{外观选项}中可以通过key-value的方式设置线宽、颜色、
+ 缩放比例等外观属性。
+
+ 通过\oarg{外观选项}设置的外观参数仅对\env{suanpan}环境局部有效。
+
+ \begin{notezh}
+ \env{suanpan}环境中\textsf{不可以出现空行}。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ % 为便排版,进行缩放
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{0}
+ \rod{2}{3}
+ \rod{3}{0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\env{suanpan}环境中的专用命令}
+
+\changes{v1.1.3}{2024/09/04}{add highlight to rod(s) and beam}
+\subsubsection{\tn{rod}单一档位排版命令}
+
+\begin{function}{\rod}
+ \begin{syntax}
+ \cs{rod} \marg{档位编号} \marg{档位数字}
+ \end{syntax}
+\end{function}
+
+ 用于排版\marg{档位编号}(基于1,从左向右进行编号)参数指定的算盘
+ 档位,本档的计数值由\marg{档位数字}参数指定。
+
+ \marg{档位数字}支持[0, 20]内的数字,其中[0, 9]内的
+ 数字采用常规4个下珠结合1个上珠的方法进行表示,[10, 15]
+ 内的数字则需要额外使用\enquote{底珠}和\enquote{顶珠}进行表示,
+ [16, 20]内的数字则需要再额外使用\enquote{悬珠}进行表示。
+
+ 宏包还为\tn{rod}命令同时提供了\tn{rod*}星号命令用于排版在
+ 横梁上带有计位点(圆点)的档位。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{1} % 常规档位
+ \rod{2}{6}
+ \rod*{3}{10} % 计位点,使用底珠
+ \rod{4}{12} % 使用顶珠
+ \rod{5}{18} % 使用悬珠
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rods}一组档位排版命令}
+
+\begin{function}{\rods}
+ \begin{syntax}
+ \cs{rods} \marg{数字列表}
+ \end{syntax}
+\end{function}
+
+ 用于排版在\marg{数字列表}中用逗号分隔的一组数字指定的档位,
+ 各档位编号基于1,从左向右进行自动编号。
+
+ \marg{数字列表}中的各档位数字支持[0, 20]内的数字,其中[0, 9]内的
+ 数字采用常规4个下珠结合1个上珠的方法进行表示,[10, 15]
+ 内的数字则需要额外使用\enquote{底珠}和\enquote{顶珠}进行表示,
+ [16, 20]内的数字则需要再额外使用\enquote{悬珠}进行表示。
+
+ \begin{notezh}
+ 宏包并没有为\tn{rods}命令提供在横梁排版计位点的档位的
+ 操作。如果需要,则可以使用\tn{rod*}命令对指定档位进行覆盖绘制。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \rod*{3}{12}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.0.1}{2024/08/26}{rename \tn{bidclr} to \tn{bid}.}
+\changes{v1.1.3}{2024/09/01}{add draw color option to \tn{bid},
+ change \texttt{pos} to clist and
+ set default bid draw color to \texttt{innerdrawcolor}.}
+\changes{v1.1.3}{2024/09/04}{add highlight to bid(s)}
+
+\subsubsection{\tn{bid}算珠着色命令}
+
+\begin{function}{\bid}
+ \begin{syntax}
+ \cs{bid} \marg{档位编号}\marg{位置列表}\marg{填充颜色}\oarg{绘制颜色}
+ \end{syntax}
+\end{function}
+
+ 用于将\marg{档位编号}指定的档位中,用逗号分隔的\marg{位置列表}中
+ 指定的所有算珠的填充色设置为\marg{填充颜色}指定的颜色,将其绘制
+ 颜色设置为可选项\oarg{绘制颜色}(默认为内珠绘制颜色)。
+
+ 一个档位中的\marg{算珠位置}自下向上,按\enquote{$1, 2, \cdots, 11$}%
+ 的顺序进行编号。其中下珠占\enquote{$1, 2, \cdots, 7$}的位置,上珠占
+ \enquote{$8, 9, 10$}的位置,悬珠占\enquote{$11$}的位置。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.0}{2024/08/28}{adde \tn{bids} macro.}
+\changes{v1.1.3}{2024/09/01}{change \tn{bids} macro inner bids draw color to
+ \texttt{innerdrawcolor} and outter bids draw
+ color to \texttt{outerdrawcolor}.}
+
+\subsubsection{\tn{bids}内珠或外珠着色命令}
+
+\begin{function}{\bids}
+ \begin{syntax}
+ \cs{bids} \marg{档位编号}\marg{档位数字}\marg{填充颜色}
+ \end{syntax}
+\end{function}
+
+ 用于将\marg{档位编号}指定的档位中,所有\marg{档位数字}的内珠
+ 设置为\marg{填充颜色}指定的颜色。同时,该命令还将
+ 算珠绘制颜色设置内珠绘制颜色(\texttt{innerdrawcolor})。
+
+ 宏包还为\tn{bids}命令同时提供了\tn{bids*}星号命令用于设置该档
+ 所有外珠的颜色。此时,算珠绘制颜色设置外珠绘制颜色
+ (\texttt{outerdrawcolor})。
+
+ \begin{notezh}
+ 该命令只能选择内珠或外珠进行着色,不能同时选择内珠和外珠。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bids{3}{7}{teal4}
+ \bids*{5}{8}{azure5}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.0}{2024/09/04}{add \tn{rodmark} macro for marking rod(s) on beams.}
+
+\subsubsection{\tn{rodmark}横梁标记命令}
+
+\begin{function}{\rodmark}
+ \begin{syntax}
+ \cs{rodmark} \oarg{起始档位}\marg{标记列表}
+ \end{syntax}
+\end{function}
+
+ 用于从\oarg{起始档位}可选项指定的档位开始,用\marg{标记列表}%
+ 中逗号分隔的标记在算盘横梁上为各档位添加标记。
+
+ \begin{notezh}
+ 如果\marg{标记列表}中的标记数量超出从\oarg{起始档位}开始的
+ 档位数,多余的标记将被忽略。在\marg{标记列表}中,可以用一
+ 对``\{\}''分组符号表示空白标记。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,{},2,1,0,-1,-2}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark[2]{千,百,十,个}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.3}{2024/09/04}{highlight all frame and remove arguments of \tn{lrframe},
+ at the same time change \tn{lrframe} to \tn{mkframe}.}
+
+\subsubsection{\tn{mkframe}边框排版命令}
+
+\begin{function}{\mkframe}
+ \begin{syntax}
+ \cs{mkframe}
+ \end{syntax}
+\end{function}
+
+ 用于排版算盘的边框。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\tn{suanpanset}选项设置命令}
+
+\begin{function}{\suanpanset}
+ \begin{syntax}
+ \cs{suanpanset} \marg{外观选项}
+ \end{syntax}
+\end{function}
+
+ 通过\marg{外观选项}的key-value选项设置算盘的算珠、边框等元素的
+ 绘制颜色、填充颜色、线条宽度;各档位之间的间距、算珠之间的间距;
+ 算盘整体的缩放比例等外观属性。
+
+ 通过\cs{suanpan}\marg{外观选项}设置的外观属性对后续所有算盘排版
+ 操作有效。
+
+ % \begin{notezh}
+ % 由于\pkg{suanpan-l3}宏包涉及大量绘图操作,因此建议尽量减少在每个
+ % \env{suanpan}排版环境的可选项中使用\oarg{外观选项}设置,以
+ % 节约编译时间。如需要更改算盘外观,可以在引用宏包时,通过为宏包
+ % 添加选项实现,也可以执行\tn{suanpanset}命令进行必要的
+ % 全局设置或在一定范围内进行统一设置。
+ % \end{notezh}
+
+\section{宏包选项}
+
+在\pkg{suanpan-l3}宏包中,算盘颜色、线条宽度、档位及算珠间距等
+算盘外观属性可以在引入宏包时通过\oarg{宏包选项}进行设置,
+也可以在\env{suanpan}环境的\oarg{外观选项}中进行局部设置,
+还可以通过\cs{suanpanset}命令进行全局或局部设置。
+
+强烈建议在引用宏包时通过\oarg{宏包选项}为一个文档统一全局设置
+算盘外观属性,以节约编译时间。应避免频繁\env{suanpan}环境中使用
+\oarg{宏包选项}或使用\cs{suanpanset}命令设置算盘外观属性。
+
+\pkg{suanpan-l3}宏包选项是一个英文逗号分隔的选项列表,其
+选项是\marg{key}|=|\marg{value}形式。部分选项的\marg{value}可以省略。
+对于同一选项,后续设置会覆盖以前设置。
+
+\pkg{suanpan-l3}宏包采用\LaTeX3风格的键值设置,支持不同类型以及多种层次的
+选项设定。键值列表中,``|=|''左右的空格不影响设置。但需注意,参数列表中%
+\textsf{不可以出现空行}。
+
+布尔型的参数\marg{选项}|=true|中的``|=true|''可以省略。
+
+\changes{v1.2.1}{2024/09/05}{change bid(s) figure to a single
+ round cap line in draft and remove
+ all highlight of bid(s), rod(s) and
+ frame.}
+
+\subsection{草稿模式}
+
+\begin{option}{ opt = draft, desc = {= \meta{草稿模式}}, init=false }
+ 设置草稿模式。
+\end{option}
+
+ \oarg{draft}选项会将算珠用圆角线冒直线实现绘制,取消所有高光效果,
+ 从而加快编译速度。同时,\oarg{draft}选项还会将空档算珠绘制选项\oarg{empty}%
+ 设置为\texttt{false},也就是不绘制空档上的算珠。
+
+ \begin{notezh}
+ 在草稿模式下算盘排版会与期望的排版结果有出入。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ % \usepackage[draft]{suanpan}
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[draft]
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.2}{2024/08/31}{add empty option to remove bids on empty rod.}
+
+\subsection{是否绘制空档算珠}
+
+\begin{option}{ opt = empty, desc = {= \meta{空档}}, init=true }
+ 设置是否绘制空档算珠。
+\end{option}
+
+ \oarg{empty}选项用于选择是否绘制空档上的算珠,如果不绘制,
+ 在一定程度上可以加快编译速度。
+
+ \begin{notezh}
+ 如有需要,可以使用\tn{bid}或\tn{bids*}命令为空档绘制算珠。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[empty = false]
+ \rods{0, 6, 12, 18, 0}
+ \bids*{5}{0}{gray6}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{线宽}
+
+\begin{option}{ opt = linewd, desc = {= \meta{线宽}}, init=2pt }
+ 设置算盘绘制中的线宽。
+\end{option}
+
+ \oarg{linewd}选项用于设置算盘边框内线线宽,同时会将
+ 边框外线设置为linewd的7.00倍,将档杆和算珠线宽
+ 设置为linewd的0.2倍。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, linewd = 3pt}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.2}{2024/09/07}{add bidh, bidd, rodd and framew options
+ to set the base size of suanpan.}
+
+\subsection{算珠高度}
+
+\begin{option}{ opt = bidh, desc = {= \meta{算珠高度}}, init=12mm }
+ 设置算珠高度。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidh = 18mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{算珠直径}
+
+\begin{option}{ opt = bidd, desc = {= \meta{算珠直径}}, init=23mm }
+ 设置算珠直径。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidd = 36mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档杆直径}
+
+\begin{option}{ opt = rodd, desc = {= \meta{档杆直径}}, init=7mm }
+ 设置档杆直径。
+\end{option}
+
+\begin{noteen}
+ 档杆直径rodd应该小于算珠直径bidd。
+\end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodd = 3mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{边框宽度}
+
+\begin{option}{ opt = framew, desc = {= \meta{边框宽度}}, init=13mm }
+ 设置边框宽度。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framew = 7mm}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档位间距}
+
+\begin{option}{ opt = rodsep, desc = {= \meta{档位间距}}, init=3.0pt }
+ 设置算盘各档间的间距。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodsep = 15pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 修改档位间距会改变算盘排版的宽度。
+ \end{notezh}
+
+\subsection{算珠间距}
+
+\begin{option}{ opt = bidsep, desc = {= \meta{算珠间距}}, init=1.8pt }
+ 设置算珠间的间距。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidsep = 4pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 修改算珠间距不会改变算盘的尺寸,但算珠高度会发生变化。
+ 另外,过小的算珠高度会造成算珠圆角的畸变。
+ \end{notezh}
+
+\subsection{缩放比例}
+
+\begin{option}{ opt = scale, desc = {= \meta{缩放比例}}, init=1.0 }
+ 设置算盘输出结果的整体缩放比例。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 1.20}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{边框颜色}
+
+\begin{option}{ opt = framedraw, desc = {= \meta{边框颜色}}, init=black }
+ 设置算盘边框颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framedraw = brown3}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 边框颜色包括内外边框和横梁颜色。
+ \end{notezh}
+
+\subsection{档杆绘制颜色}
+
+\begin{option}{ opt = roddraw, desc = {= \meta{档杆绘制颜色}}, init=black }
+ 设置档杆绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, roddraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档杆填充颜色}
+
+\begin{option}{ opt = rodfill, desc = {= \meta{档杆填充颜色}}, init=white }
+ 设置档杆填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodfill = brown6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{外珠绘制颜色}
+
+\begin{option}{ opt = outerdraw, desc = {= \meta{外珠绘制颜色}}, init=black }
+ 设置档杆上外珠\footnote{外珠是指离梁不记数的算珠。}绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{外珠填充颜色}
+
+\begin{option}{ opt = outerfill, desc = {= \meta{外珠填充颜色}}, init=black!40 }
+ 设置外珠填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerfill = yellow6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{内珠绘制颜色}
+
+\begin{option}{ opt = innerdraw, desc = {= \meta{内珠绘制颜色}}, init=black }
+ 设置档杆上内珠\footnote{内珠是指靠梁记数的算珠。}绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{内珠填充颜色}
+
+\begin{option}{ opt = innerfill, desc = {= \meta{内珠填充颜色}}, init=black}
+ 设置内珠填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerfill = red5}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.2}{2024/09/07}{add font option
+ to set the font of mark.}
+\subsection{标记字体}
+
+\begin{option}{ opt = font, desc = {= \meta{标记字体}}, init=\tn{bfseries}\tn{Large} }
+ 设置标记字体。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65,
+ font=\rmfamily\Huge}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,3,2,1,0,-1}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.3}{2024/09/10}{change bid's highlight to shading=ball
+ and add bidspot option to set the angle
+ of shading.}
+
+\subsection{高光位置(角度)}
+
+\begin{option}{ opt = bidspot, desc = {= \meta{高光位置}}, init=0 }
+ 设置算珠高光点的位置,用角度表示,逆时针为正。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.45\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidspot = 180}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\bigskip
+
+\changes{v1.1.1}{2024/08/30}{add English documentation.}
+
+\title{
+ \pkg{suanpan-l3} package for traditional Chinese 7-bids suanpan(abacus)
+ \rlap{\makebox[4cm][r]{
+ \normalsize $\Longrightarrow$ \color{red}
+ \protect\hyperlink{zh}{中文版本}
+ \protect\hypertarget{en}{}
+ }}
+}
+\author{Nan Geng \texttt{<nangeng@nwafu.edu.cn>}}
+\date{\today\qquad \vers}
+
+\maketitle
+
+\section{Introduction}
+
+\pkg{suanpan-l3} is a traditional Chinese 7-bids suanpan drawing package
+utilizes \pkg{l3draw} and \pkg{TikZ} and is developed with \pkg{Expl3}.
+It can effectively manage both upper and lower bids, while also considering
+bottom bid, top bid, and hanging bid.
+
+This package offers a unique environment for drawing suanpan,
+denoted as \env{suanpan}. Within this environment, 8 specialized macros
+are available for the creation of suanpan. The \tn{rod} macro is used
+to lay out a single rod, while the \tn{rod*} macro draws a counting point
+on this rod’s beam. The \tn{rods} macro is capable of laying out a set of rods.
+The \tn{bid} macro colors the specified bid. The \tn{bids} macro colors
+all inner bids that are near the beam, while the \tn{bids*} macro colors
+all outer bids that are far from the beam. The \tn{rodmark} macro mark all rods
+on beam. Lastly, the \tn{mkframe} macro
+is used to lay out the left and right frames of an abacus.
+
+At the same time, the package offers customization options for suanpan,
+including line width, draw color, fill color, bid space, rod space, etc.
+These can be configured through package options, \env{suanpan} environment
+options, or the \tn{suanpanset} macro.
+
+\begin{center}
+ \begin{suanpan}[framedraw = brown2, scale = 0.45, bidsep=1.5pt,
+ roddraw = brown3, rodfill = brown4]
+ % rod's val list
+ \rods{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
+ % counting point
+ \rod*{4}{3}
+ \rod*{18}{17}
+ % top bid
+ \bid{12}{9}{azure5}
+ \bid{13}{9}{azure5}
+ \bid{14}{9}{azure5}
+ \bid{15}{9}{azure5}
+ \bid{16}{9}{azure5}
+ % hanging bid
+ \bid{17}{11}{red5}
+ \bid{18}{11}{red5}
+ \bid{19}{11}{red5}
+ \bid{20}{11}{red5}
+ \bid{21}{11}{red5}
+ % bottom bid
+ \bid{11}{3}{olive5}
+ \bid{16}{3}{olive5}
+ \bid{21}{3}{olive5}
+ \rodmark{21,20,19,{},17,16,15,14,13,12,11,10,9,8,7,6,5,{},3,2,1}
+ \mkframe
+ \end{suanpan}
+\end{center}
+
+\section{Interface}
+
+\subsection{\env{suanpan} environment}
+
+\begin{function}{suanpan}
+ \begin{syntax}
+ \tn{begin}|{suanpan}|\oarg{options}
+ .....
+ \tn{end}|{suanpan}|
+ \end{syntax}
+\end{function}
+
+ Typesetting 7-bids Chinese suanpan with \oarg{options}.
+
+ Within the \env{suanpan} environment, \tn{rod}, \tn{rod*}, \tn{rods}, \tn{bid},
+ \tn{bids}, \tn{bids*}, \tn{rodmark} and \tn{mkframe} 8 specialized macros
+ are available for the creation of suanpan.
+
+ \oarg{options} is a key-value list for line width, draw color, fill color,
+ bid space, rod space, etc.
+
+ \oarg{options} is environment's local setting.
+
+ \begin{noteen}
+ You should remove all blank line in \env{suanpan} environment.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{0}
+ \rod{2}{3}
+ \rod{3}{0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\env{suanpan}'s specialized macros}
+
+\subsubsection{\tn{rod}---single rod}
+
+\begin{function}{\rod}
+ \begin{syntax}
+ \cs{rod} \marg{num} \marg{val}
+ \end{syntax}
+\end{function}
+
+ The \tn{rod} macro is used to lay out a single rod.
+
+ The \marg{num} argument numbers the rods from left to right.
+ The \marg{val} is the number to be represented on the rod from
+ 0 to 20. For number within [0, 9], it is represented using 4 lower deck
+ bids and 1 upper deck bid. Numbers within [10, 15] are represented additionally
+ using bottom bid and top bid. For numbers within [16, 20], hanging bid is also
+ required for representation.
+
+ The starred version \tn{rod*} will draw a counting point on this rod's beam.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{1} % normal rod
+ \rod{2}{6}
+ \rod*{3}{10} % counting point and
+ % bottom bid
+ \rod{4}{12} % top bid
+ \rod{5}{18} % hanging bid
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rods}---a set of rods}
+
+\begin{function}{\rods}
+ \begin{syntax}
+ \cs{rods} \marg{val list}
+ \end{syntax}
+\end{function}
+
+ The \tn{rods} macro is used to lay out a set of rods.
+
+ The \marg{val list} is a value list of each rod seperated by commas.
+ Each rod number is automatically numbered from left to right.
+
+ Each value in \marg{val list} is the number to be represented on the rod from
+ 0 to 20. For number within [0, 9], it is represented using 4 lower deck
+ bids and 1 upper deck bid. Numbers within [10, 15] are represented additionally
+ using bottom bid and top bid. For numbers within [16, 20], hanging bid is also
+ required for representation.
+
+ \begin{noteen}
+ The starred version \tn{rods*} for counting point is not provided.
+ Use the \tn{rod*} macro to overlay the specified rod for drawing.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \rod*{3}{12}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{bid}---color bid}
+
+\begin{function}{\bid}
+ \begin{syntax}
+ \cs{bid} \marg{num}\marg{pos list}\marg{fill color}\oarg{draw color}
+ \end{syntax}
+\end{function}
+
+ The \tn{bid} macro fills the specified bid.
+
+ The \marg{num} is the same as for \tn{rod}; the \marg{fill color} argument
+ defines the fill color and the comma-seperated \marg{pos list} argument tells
+ which bid has to be colored in \marg{num} rod. The \oarg{draw color} option
+ gives the draw color(default is inner bid draw color) .
+
+ The \marg{pos} in a rod is numbered from the bottom up in the order
+ $1, 2, \cdots, 11$. The lower deck bids occupies position
+ $1, 2, \cdots, 7$, the upper deck bids occupies position $8, 9, 10$,
+ and the hanging bead occupies position $11$ between $9$ and $10$ .
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{bids}---color inner/outer bids}
+
+\begin{function}{\bids}
+ \begin{syntax}
+ \cs{bids} \marg{num}\marg{val}\marg{color}
+ \end{syntax}
+\end{function}
+
+ The \tn{bids} macro fills all inner bids that are near the beam.
+
+ \marg{num} and \marg{color} are the same as for \tn{bid};
+ the \marg{val} argument is the same as for \tn{rod}.
+
+ The \marg{color} is fill color for inner bids. it also set
+ \texttt{innercolor} to be used for inner bids drawing color.
+
+ The starred version \tn{bids*} is used to color outer bids of \marg{num} rod.
+ it also set \texttt{outercolor} to be used for inner bids drawing color.
+
+ \begin{noteen}
+ This macro can only select the inner bids or the outer bids for coloring,
+ you can't select both the inner and outer bids at the same time.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bids{3}{7}{teal4}
+ \bids*{5}{8}{azure5}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rodmark} rod(s) marking on beam}
+
+\begin{function}{\rodmark}
+ \begin{syntax}
+ \cs{rodmark} \oarg{st}\marg{maker list}
+ \end{syntax}
+\end{function}
+
+ The \tn{rodmark} macro marks the rod(s) on the beam.
+
+ The \oarg{st} argument is the start rod and \marg{marker list}
+ is the marker list.
+
+ \begin{noteen}
+ If the number of \marg{marker List} exceeds the number of
+ rods from \oarg{st}, the excess markers will be ignored.
+ In the \marg{marker list}, it is possible to use a pair of
+ ``\{\}'' grouping to indicate blank marker.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,{},2,1,0,-1,-2}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark[2]{Q,C,X,I}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{mkframe}---layout frame}
+
+\begin{function}{\mkframe}
+ \begin{syntax}
+ \cs{mkframe}
+ \end{syntax}
+\end{function}
+
+ The \tn{mkframe} macro is used to lay out the frames of
+ a suanpan.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\tn{suanpanset}}
+
+\begin{function}{\suanpanset}
+ \begin{syntax}
+ \cs{suanpanset} \marg{options}
+ \end{syntax}
+\end{function}
+
+ The \tn{suanpanset} macro offers customization options for suanpan,
+ including line width, draw color, fill color, bid space, rod space, etc.
+
+ The \marg{options} is a key-value list.
+
+ The \marg{options} seted by the \cs{suanpanset} are valid for
+ all subsequent \env{suanpan} environments.
+
+\section{options}
+
+The \pkg{suanpan-l3} package offers customization options for abacus,
+including line width, draw color, fill color, bid space, rod space, etc.
+These can be configured through package \oarg{options}, \env{suanpan}
+environment \oarg{options}, or the \tn{suanpanset} macro.
+
+It is strongly recommended that suanpan options be set globally
+for a document uniformly via \oarg{options} of packages to save compilation time.
+Frequent use of \oarg{options} in \env{suanpan} environments or
+use of the \tn{suanpanset} command to set suanpan options should be avoided.
+
+The \oarg{options} is a comma-seperated list of options in the form
+\marg{key}|=|\marg{value}. The \marg{value} can be omitted for some options.
+For the same option, subsequent settings will override the previous one.
+
+The \pkg{suanpan-l3} package uses \LaTeX3 style key settings,
+supporting different types and levels of options. In the key list,
+spaces around ``='' do not affect the settings.
+However, it is important to note that blank lines are not allowed in the list.
+
+The ``|=true|'' in the \marg{option}|=true| for Boolean types can be omitted.
+
+\subsection{draft}
+
+\begin{option}{ opt = draft, desc = {= \meta{draft}}, init=false }
+ Draft mode.
+\end{option}
+
+ The \oarg{draft} option speeds up compilation by drawing
+ bids using round cap line, at same time it will remove all
+ highlight of bid(s), rod(s) and frame.
+
+ At the same time \oarg{draft} option will set the \oarg{empty} option
+ to \texttt{false} to remove all bids on empty rod.
+
+ \begin{noteen}
+ Suanpan layout in draft mode may differ from the desired layout.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ % \usepackage[draft]{suanpan}
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[draft]
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{empty}
+
+\begin{option}{ opt = empty, desc = {= \meta{empty}}, init=true }
+ Remove bids on empty rod or not.
+\end{option}
+
+ The \oarg{empty} option will remove all bids on empty rod.
+
+ \begin{noteen}
+ If necessary, you can use the \tn{bid} or \tn{bids*} macro to
+ draw bid(s) for the empty rod.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[empty=false]
+ \rods{0, 6, 12, 18, 0}
+ \bids*{5}{0}{gray6}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{line width}
+
+\begin{option}{ opt = linewd, desc = {= \meta{linewd}}, init=2pt }
+ Drawing line width.
+\end{option}
+
+ The \oarg{linewd} is used to set the line width of the frame inner,
+ and will also set the line width the frame outer to 7.00 times linewd,
+ and the rod and bid line widths to 1.00 times linewd.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, linewd = 3pt}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{bid height}
+
+\begin{option}{ opt = bidh, desc = {= \meta{bidh}}, init=12mm }
+ The height of bid.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidh = 18mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{bid diameter}
+
+\begin{option}{ opt = bidd, desc = {= \meta{bidd}}, init=23mm }
+ The diameter of bid.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidd = 36mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod diameter}
+
+\begin{option}{ opt = rodd, desc = {= \meta{rodd}}, init=7mm }
+ The diameter of rod.
+\end{option}
+
+\begin{noteen}
+ The rodd should be smaller than the bidd.
+\end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodd = 3mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{frame width}
+
+\begin{option}{ opt = framew, desc = {= \meta{framew}}, init=13mm }
+ The width of frame.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framew = 7mm}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod spacing}
+
+\begin{option}{ opt = rodsep, desc = {= \meta{rodsep}}, init=3.0pt }
+ The spacing between suanpan rods.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodsep = 15pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ The \oarg{rodsep} will change the width of the suanpan.
+ \end{noteen}
+
+\subsection{bid spacing}
+
+\begin{option}{ opt = bidsep, desc = {= \meta{bidsep}}, init=1.8pt }
+ The spacing between suanpan bids.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidsep = 4pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ The \oarg{bidsep} does not change the size of the suanpan.
+ But the height of each bid will be changed.
+ In addition, too small an bid height will cause distortion
+ of the rounded corners of the bid.
+ \end{noteen}
+
+\subsection{scale}
+
+\begin{option}{ opt = scale, desc = {= \meta{scale}}, init=1.0 }
+ Scaling factor of whole suanpan.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 1.20}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{frame color}
+
+\begin{option}{ opt = framedraw, desc = {= \meta{framedraw}}, init=black }
+ Frame drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framedraw = brown3}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ Frame colors include inner and outer of frame and beam colors.
+ \end{noteen}
+
+\subsection{rod drawing color}
+
+\begin{option}{ opt = roddraw, desc = {= \meta{roddraw}}, init=black }
+ Rod drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, roddraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod filling color}
+
+\begin{option}{ opt = rodfill, desc = {= \meta{rodfill}}, init=white }
+ Rod filling color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodfill = brown6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{outer bids drawing color}
+
+\begin{option}{ opt = outerdraw, desc = {= \meta{outerdraw}}, init=black }
+ The outer bids\footnote{The outer bid is that is not counted away from the beam.}drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{outer bids filling color}
+
+\begin{option}{ opt = outerfill, desc = {= \meta{outerfill}}, init=black!40 }
+ The outer bids filling color。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerfill = yellow6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{inner bids drawing color}
+
+\begin{option}{ opt = innerdraw, desc = {= \meta{innerdraw}}, init=black }
+ The inner bids\footnote{The inner bid is that is counted near to the beam.}drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{inner bids filling color}
+
+\begin{option}{ opt = innerfill, desc = {= \meta{innerfill}}, init=black}
+ The inner bids filling color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerfill = red5}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{mark font}
+
+\begin{option}{ opt = font, desc = {= \meta{font}}, init=\tn{bfseries}\tn{Large} }
+ The font of mark(s).
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65,
+ font=\rmfamily\Huge}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,3,2,1,0,-1}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{highlight pos/angle}
+
+\begin{option}{ opt = bidspot, desc = {= \meta{bidspot}}, init=0 }
+ The bid's highlight angle.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.45\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidspot = 180}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\end{documentation}
+
+\end{document}
diff --git a/macros/latex/contrib/tableof/README.md b/macros/latex/contrib/tableof/README.md
index fa5ea8d72b..2f0b93dd0a 100644
--- a/macros/latex/contrib/tableof/README.md
+++ b/macros/latex/contrib/tableof/README.md
@@ -2,9 +2,9 @@ tableof
=======
- Package: tableof (Tables of tagged contents)
-- Version: 1.4c (2021/07/05)
+- Version: 1.4d (2024/09/17)
- License: LPPL 1.3c
-- Copyright (C) 2012, 2013, 2015, 2018, 2021 Jean-Francois Burnol <jfbu at free dot fr>
+- Copyright (C) 2012, 2013, 2015, 2018, 2021, 2024 Jean-Francois Burnol <jfbu at free dot fr>
Provides `\toftagstart{}`, `\toftagstop{}`, `\toftagthis{}`, `\tofuntagthis{}`
to tag chapters, sections or any other sectioning units destined to end up in
@@ -31,6 +31,10 @@ usable only once, contrarily to the `\tableof{}` et al. package macros.
Change History
==============
+* v1.4d (2024/09/17) reestablishes compatibility with `hyperref`,
+ which got broken at the latter `v7.01c` release. The package now
+ requires LaTeX 2020-10-01. Thanks to Ekkart Kleinod for report.
+
* v1.4c (2021/07/05) additional efforts for `biblatex` compatibility.
Allow style file extraction via `etex`, reword the abstract. Use utf8
source encoding.
diff --git a/macros/latex/contrib/tableof/tableof.dtx b/macros/latex/contrib/tableof/tableof.dtx
index bd7a435cef..bd952ec2a3 100644
--- a/macros/latex/contrib/tableof/tableof.dtx
+++ b/macros/latex/contrib/tableof/tableof.dtx
@@ -1,14 +1,14 @@
% -*- coding: utf-8; -*-
%<*none>
-{\def\doctimestamp {Time-stamp: <05-07-2021 14:42:11 CEST>}%
+{\def\doctimestamp {Time-stamp: <17-09-2024 10:15:25 CEST>}%
\def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}%
\xdef\tofdtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }}%
%</none>
%%
%% Package: tableof
-%% Version: 1.4c (2021/07/05)
+%% Version: 1.4d (2024/09/17)
%% License: LPPL 1.3c
-%% Copyright (C) 2012, 2013, 2015, 2018, 2021 Jean-Francois Burnol <jfbu at free dot fr>
+%% Copyright (C) 2012, 2013, 2015, 2018, 2021, 2024 Jean-Francois Burnol <jfbu at free dot fr>
%%
% See README.md for installation instructions
%
@@ -22,8 +22,8 @@
% The Author of this Work is: Jean-Francois Burnol <jfbu at free dot fr>
%<*none>
\def\pkgname {tableof}
-\def\pkgdate {2021/07/05}
-\def\pkgversion {v1.4c}
+\def\pkgdate {2024/09/17}
+\def\pkgversion {v1.4d}
\def\pkgdescription {Tables of tagged contents (JFB)}
\begingroup
\input docstrip.tex
@@ -237,11 +237,85 @@ A,B,C
% \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark}
%
\makeatother
-\documentclass[a4paper,fontsize=11pt,abstract]{scrdoc}
+\documentclass[a4paper,fontsize=11pt,abstract]{scrartcl}
+\makeatletter
+%%% START OF CUSTOM doc.sty LOADING (May 21, 2022 in xint.dtx)
+%%% (August 26, 2022 in etoc.dtx, comments trimmed)
+%%% (September 17, 2024 here, some unneeded stuff removed,
+%%% I do not have time to do the syntax coloring as in etoc.pdf,
+%%% and in particular there is here no reason to use doc=v2)
+
+
+% At 1.4d I wanted to use doc v3, but hypdoc is causing too much trouble.
+% - a warning in the log about hyperref already loaded,
+% - an overwrite of my hidelinks option,
+% - an impact on placement of codeline numbers in implementation part.
+\usepackage{doc}[=v2]
+% As explained above I was formerly using scrdoc hence ltxdoc indirectly.
+% Let's emulate here the little I appear to need from ltxdoc.cls and
+% srcdoc.cls.
+%
+\AtBeginDocument{\MakeShortVerb{\|}}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}{<-> ssub * cmtt/m/n}{}
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font 48} % '60
+\DeclareFontShape{OMS}{cmtt}{m}{n}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OT1}{cmss}{m}{it}{<->ssub*cmss/m/sl}{}
+\CodelineNumbered
+% \EnableCrossrefs % but this will be hacked
+% \setcounter{StandardModuleDepth}{1} % we don't use this mechanism currently
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+% Here I am loading doc=v2 but formerly I was using ltxdoc via scrdoc
+% which I dropped at release 1.4l (2022-05-29) and without much
+% thinking I had kept this.
+\DeclareRobustCommand\cs[1]{\texttt{\bslash#1}}
+% As I may have the * active, or macro names with _ or ^, I should
+% add \detokenize. But see below for a redefinition anyhow.
+%
+% More urgent is that I am also using hyperref and this definition gives wrong
+% bookmarks if \cs is used in section titles. As I had very very few usags of
+% \cs in the whole of xint.dtx, it took me a while to realize the problem
+% here. Turns out that doc=v3 by default loads hypdoc which includes this
+% configuration for hyperref compatibility:
+\AtBeginDocument{%
+\pdfstringdefDisableCommands{\def\cs#1{\textbackslash\detokenize{#1}}}%
+}%
+% As I have not loaded hyperref yet I must delay it to AtBeginDocument.
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+% \@addtoreset{CodelineNo}{part}% No need for this here
+% \def\partname{File}% \partname is "fixed" somewhere further down anyhow
+% No need for this, anyhow I don't build the indices
+% \gdef\codeline@wrindex#1{\if@filesw
+% \begingroup
+% \let\protect\noexpand
+% \immediate\write\@indexfile
+% {\string\indexentry{#1}%
+% {\filesep\number\c@CodelineNo}}%
+% \endgroup\fi}
+% \let\filesep\@empty
+
+% There is very little we seem to need from the scrdoc extras: page geometry
+% is set by geometry package and a4paper option from xint.tex file. So it
+% seems I only need the hologo loading:
+\usepackage{hologo}
+%\DeclareRobustCommand*{\eTeX}{\hologo{eTeX}}%
+%\DeclareRobustCommand*{\LuaTeX}{\hologo{LuaTeX}}%
+%
+\makeatother
+%%% end of ltxdoc+srcdoc emulation from June 2022 xint.dtx,
+%%% copied over almost verbatim to etoc.dtx on 2022/08/26,
+%%% and copied and trimmed for tableof.dtx 2024/09/17.
+
\pagestyle{headings}
\usepackage[T1]{fontenc}
\usepackage[hscale=0.66,vscale=0.76]{geometry}
-
+\usepackage{centeredline}
\usepackage{txfonts}
\DeclareFontFamily{T1}{txtt}{}
\DeclareFontShape{T1}{txtt}{m}{n}{ %medium
@@ -314,6 +388,15 @@ pdfkeywords={LaTeX, table of contents},%
pdfstartview=FitH,%
pdfpagemode=UseOutlines}
+
+% Finally 1.4d uses doc=v2
+% % Attention que hypdoc fait
+% % Package hyperref Info: Option `colorlinks' set `true' on input line 75.
+% % Package hyperref Info: Option `plainpages' set `false' on input line 75.
+% % Package hyperref Info: Option `bookmarksopen' set `true' on input line 75.
+% % Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 75.
+% \AtBeginDocument{\hypersetup{hidelinks}}% fix de l'effet de hypdoc
+
\usepackage{bookmark}
\DeclareRobustCommand\csa[1]{{\ttfamily\char`\\#1}}
@@ -356,7 +439,7 @@ pdfpagemode=UseOutlines}
Package version: \pkgversion\ (\pkgdate)\\
Documentation generated from tableof.dtx
with timestamp \tofdtxtimestamp\\
- \textcopyright 2012, 2013, 2015, 2018, 2021 Jean-François Burnol
+ \textcopyright 2012, 2013, 2015, 2018, 2021, 2024 Jean-François Burnol
<jfbu (at) free (dot) fr>
\end{center}
@@ -554,10 +637,6 @@ Please consider: this command should \emph{not} be used when the
\section{Compatibility with other packages}
-\tableof checks if |hyperref| is loaded as |hyperref| modifies the format of the
-lines in the |.toc| file (and this must be taken into account). This check is
-done at the \csa{begin}|{document}| so the order of loading is not important.
-
\tableof requires the document |.toc| file to use the |\contentsline| macro
(possibly patched by other packages). It is thus incompatible with the
|beamer| class. However, if |beamer| is used in an article mode, i.e., with
@@ -585,6 +664,10 @@ tables of contents, apart from
\hangafter1 }
\makeatother
+|2024/09/17 v1.4d: |reestablish compatibility with |hyperref|,
+which got broken at the latter |v7.01c| release. The package now
+requires \LaTeX{} |2020-10-01|. Thanks to Ekkart Kleinod for report.
+
|2021/07/05 v1.4c: |ensure the added scope-limiting group for |\tableof{}|
and alike macros encompasses all contents of the |.toc| file even in presence
of packages hacking into these contents (in particular |biblatex|).
@@ -696,7 +779,7 @@ document uses standard |\tableofcontents| or like commands.
%</none>
%<*package>
% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{atveryend}
\DeclareOption*{\PackageWarning{tableof}{Option `\CurrentOption' is unknown.}}
\ProcessOptions\relax
@@ -738,7 +821,8 @@ document uses standard |\tableofcontents| or like commands.
% macro is used to typeset the TOC, it is now the one bearing the
% responsability for creating the scope-limiting group.
% \begin{macrocode}
-\AtBeginDocument{\IfFileExists{\jobname.toc}
+\AtBeginDocument{%
+ \IfFileExists{\jobname.toc}
{{\endlinechar\m@ne
\makeatletter
\newread\tof@tf
@@ -746,7 +830,9 @@ document uses standard |\tableofcontents| or like commands.
\tof@toctoks{\tof@begingroup}%
\tof@readtoc
\global\tof@toctoks=\expandafter{\the\tof@toctoks\tof@endgroup}%
- \closein\tof@tf}}{}}
+ \closein\tof@tf}}
+ {}%
+}
% \end{macrocode}
% The trick is that |\@ifundefined| chooses the undefined branch if the
% meaning is |\relax|. Thus it is possible for \tableof to define and use
@@ -771,26 +857,39 @@ document uses standard |\tableofcontents| or like commands.
% |1.4c| replaces |{}| (last argument of |\@ifundefined|) by |\relax|. No
% strong reason. We and \etoc use |\endlinechar-1| anyhow.
% \begin{macrocode}
-\AtBeginDocument{
+\AtBeginDocument{%
\addtocontents{toc}{\string\@ifundefined{tof@begin}%
{\global\let\string\tof@begin\relax
\global\let\string\tof@finish\string\@empty
\global\let\string\tof@starttags\string\@gobble
\global\let\string\tof@stoptags\string\@gobble
\global\let\string\tof@tagthis\string\@gobble
- \global\let\string\tof@untagthis\string\@gobble}\relax}
- \addtocontents{toc}{\string\tof@begin}
+ \global\let\string\tof@untagthis\string\@gobble}\relax}%
+ \addtocontents{toc}{\string\tof@begin}%
+}
% \end{macrocode}
-% \LaTeX\ of 2020 or 2021 always has |\contentsline| with four arguments.
+% \textbf{Now obsolete hyperref-related remark (see next paragraph)}:
+% {\itshape\LaTeX\ of 2020 or 2021 always has |\contentsline| with four arguments.
% So an update should be done here to always gobble four, else in absence
% of |hyperref| some |{}| are left. Does not seem to matter a lot except
% if all is executed in math mode... thanks to \etoc for example.
-% No urgency here, only mentioning for the record.
+% No urgency here, only mentioning for the record.}
+%
+% |hyperref| stopped defining its |\hyper@last| at its |7.01c| release in fall
+% of 2023, but \tableof tested for it, if |hyperref| was found to be present,
+% in case a document previously not using |hyperref| started using it on
+% second compilation, hence with a wrong |.toc| file format (in earlier
+% years). As \tableof was doing
+% \centeredline{|\ifx\hyper@last\@undefined\tof@toctoks{}\fi|} it now
+% unconditionally emptied |\tof@toctoks| in presence of |hyperref|. This is
+% the same problem which impacted \etoc and got fixed at its |1.2c| release
+% but unfortunately \tableof was not updated then. Belatedly fixed at |1.4d|
+% of |2024/09/17|.
+%
+% Formerly this was a short macro, but it doesn't look like a problem
+% to simply alias it to the long |\@gobblefour|.
% \begin{macrocode}
- \@ifpackageloaded{hyperref}
- {\def\tof@gobblethree@orfour#1#2#3#4{}%
- \ifx\hyper@last\@undefined\tof@toctoks{}\fi}
- {\def\tof@gobblethree@orfour#1#2#3{}}}
+\let\tof@gobblethree@orfour\@gobblefour
% \end{macrocode}
% |1.4b| (belatedly) fixes issue with |\tof@finish| getting lost due
% to a final |\clearpage| before |\end{document}|. Indeed, formerly
@@ -999,24 +1098,6 @@ document uses standard |\tableofcontents| or like commands.
\endinput
% \end{macrocode}
% \MakePercentComment
-\CharacterTable
- {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
- Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
- Digits \0\1\2\3\4\5\6\7\8\9
- Exclamation \! Double quote \" Hash (number) \#
- Dollar \$ Percent \% Ampersand \&
- Acute accent \' Left paren \( Right paren \)
- Asterisk \* Plus \+ Comma \,
- Minus \- Point \. Solidus \/
- Colon \: Semicolon \; Less than \<
- Equals \= Greater than \> Question mark \?
- Commercial at \@ Left bracket \[ Backslash \\
- Right bracket \] Circumflex \^ Underscore \_
- Grave accent \` Left brace \{ Vertical bar \|
- Right brace \} Tilde \~}
-
-\CheckSum{559}
-
\Finale
%%
%% End of file `tableof.dtx'.
diff --git a/macros/latex/contrib/tableof/tableof.pdf b/macros/latex/contrib/tableof/tableof.pdf
index f04fc964a0..1c2d6ae655 100644
--- a/macros/latex/contrib/tableof/tableof.pdf
+++ b/macros/latex/contrib/tableof/tableof.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md
index edcdc6b5e6..992f30d43d 100644
--- a/macros/latex/contrib/tagpdf/README.md
+++ b/macros/latex/contrib/tagpdf/README.md
@@ -1,6 +1,6 @@
#tagpdf — A package to create tagged pdf
-Packageversion: 0.99d
-Packagedate: 2024/08/02
+Packageversion: 0.99g
+Packagedate: 2024/10/27
Author: Ulrike Fischer, LaTeX Project Team
## License
diff --git a/macros/latex/contrib/tagpdf/ex-AF-file.pdf b/macros/latex/contrib/tagpdf/ex-AF-file.pdf
index 9ba962e1e3..76dc573775 100644
--- a/macros/latex/contrib/tagpdf/ex-AF-file.pdf
+++ b/macros/latex/contrib/tagpdf/ex-AF-file.pdf
@@ -1,11 +1,11 @@
%PDF-2.0
%
22 0 obj
-<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20240802125547+02'00') /Size 151 /CheckSum (D4716966C44F441B4E4C1D2DD929683B) >> /Length 151 >>
+<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20241027223455+01'00') /Size 151 /CheckSum (B5205D91E2A02C84B9BAA9C16AD1CF1C) >> /Length 151 >>
stream
%% LaTeX2e file `example-input-file.tex'
%% generated by the `filecontents' environment
-%% from source `ex-AF-file' on 2024/08/02.
+%% from source `ex-AF-file' on 2024/10/27.
%%
Additional info!
@@ -15,7 +15,7 @@ endobj
<< /Type /Filespec /AFRelationship /Unspecified /F (example-input-file.tex) /UF <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /EF<</F 22 0 R/UF 22 0 R>> >>
endobj
25 0 obj
-<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240802) >> /Length 19 >>
+<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20241027) >> /Length 19 >>
stream
Bär with teh shirt
endstream
@@ -24,7 +24,7 @@ endobj
<< /Type /Filespec /AFRelationship /Supplement /F (tag-AFfile1.txt) /UF <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /EF<</F 25 0 R/UF 25 0 R>> >>
endobj
28 0 obj
-<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240802) >> /Length 4 >>
+<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20241027) >> /Length 4 >>
stream
Duck
endstream
@@ -33,7 +33,7 @@ endobj
<< /Type /Filespec /AFRelationship /Supplement /F (tag-AFfile2.txt) /UF <FEFF007400610067002D0041004600660069006C00650032002E007400780074> /EF<</F 28 0 R/UF 28 0 R>> >>
endobj
31 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11382 >>
+<< /Type /Metadata /Subtype /XML /Length 11713 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -88,6 +88,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -242,17 +248,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:56:09+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:35:14+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-AF-file.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:56:09+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:56:09+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:56:09+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:35:14+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:35:14+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:35:14+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:38d5a844-2217-4081-87cc-b2129dc357a6</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:3ff2b426-7c06-4861-8f14-4e8e04ac9b4c</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:b9c8533e-5926-4169-80c5-4f19662d574b</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -347,7 +353,7 @@ endobj
<< /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >>
endobj
19 0 obj
-<< /Type /Namespace /NS (data:,BBA64916-90D9-A0B9-F592-8E68FD20F532) >>
+<< /Type /Namespace /NS (data:,B984A37A-6119-D29A-79BA-2F544DD34796) >>
endobj
8 0 obj
[ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ]
@@ -449,59 +455,59 @@ endobj
<< /Type /Catalog /Pages 36 0 R /MarkInfo 37 0 R/Lang (de-DE)/Metadata 31 0 R/StructTreeRoot 5 0 R >>
endobj
46 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125609+02'00')/ModDate (D:20240802125609+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223514+01'00')/ModDate (D:20241027223514+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 47
0000000002 65535 f
-0000013544 00000 n
+0000013875 00000 n
0000000003 00000 f
0000000004 00000 f
0000000010 00000 f
-0000016362 00000 n
-0000013627 00000 n
-0000013838 00000 n
-0000015792 00000 n
-0000014417 00000 n
+0000016693 00000 n
+0000013958 00000 n
+0000014169 00000 n
+0000016123 00000 n
+0000014748 00000 n
0000000012 00000 f
-0000014485 00000 n
+0000014816 00000 n
0000000014 00000 f
-0000014555 00000 n
+0000014886 00000 n
0000000020 00000 f
-0000015318 00000 n
-0000014636 00000 n
-0000015596 00000 n
-0000015425 00000 n
-0000015703 00000 n
+0000015649 00000 n
+0000014967 00000 n
+0000015927 00000 n
+0000015756 00000 n
+0000016034 00000 n
0000000000 00000 f
-0000015853 00000 n
+0000016184 00000 n
0000000020 00000 n
0000000382 00000 n
-0000015966 00000 n
+0000016297 00000 n
0000000603 00000 n
0000000758 00000 n
-0000016098 00000 n
+0000016429 00000 n
0000000943 00000 n
0000001083 00000 n
-0000016230 00000 n
+0000016561 00000 n
0000001268 00000 n
-0000013481 00000 n
-0000013346 00000 n
-0000012740 00000 n
-0000020115 00000 n
-0000020469 00000 n
-0000013591 00000 n
-0000013684 00000 n
-0000013801 00000 n
-0000016482 00000 n
-0000018931 00000 n
-0000016668 00000 n
-0000019152 00000 n
-0000020269 00000 n
-0000020531 00000 n
-0000020649 00000 n
+0000013812 00000 n
+0000013677 00000 n
+0000013071 00000 n
+0000020446 00000 n
+0000020800 00000 n
+0000013922 00000 n
+0000014015 00000 n
+0000014132 00000 n
+0000016813 00000 n
+0000019262 00000 n
+0000016999 00000 n
+0000019483 00000 n
+0000020600 00000 n
+0000020862 00000 n
+0000020980 00000 n
trailer
-<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <E2F9D94DBDFC11D2EE5801BA51FD5C99> <E2F9D94DBDFC11D2EE5801BA51FD5C99> ] >>
+<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <913D8F5840CCF3ABCB73EC03D2084997> <913D8F5840CCF3ABCB73EC03D2084997> ] >>
startxref
-20872
+21203
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
index f64d4e66bf..e0cb9ec4fd 100644
--- a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
+++ b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/ex-attribute.pdf b/macros/latex/contrib/tagpdf/ex-attribute.pdf
index feda9e252a..4ff4f1b87d 100644
--- a/macros/latex/contrib/tagpdf/ex-attribute.pdf
+++ b/macros/latex/contrib/tagpdf/ex-attribute.pdf
@@ -7,7 +7,7 @@ endobj
<< <</O /Layout /Borderstyle /Dotted >> >>
endobj
21 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11384 >>
+<< /Type /Metadata /Subtype /XML /Length 11715 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -62,6 +62,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -216,17 +222,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:57:08+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:36:03+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-attribute.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:57:08+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:57:08+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:57:08+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:36:03+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:36:03+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:36:03+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:7a9cf910-1c19-429a-8f24-339c62d8a57f</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:b262e437-7e89-4c42-8e29-bedae4c498b6</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:eb6f1c74-38b0-4da0-8890-bd15f425cf65</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -450,51 +456,51 @@ endobj
<< /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de_DE)/Metadata 21 0 R/StructTreeRoot 5 0 R >>
endobj
38 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240802125708+02'00')/ModDate (D:20240802125708+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20241027223603+01'00')/ModDate (D:20241027223603+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 39
0000000002 65535 f
-0000012845 00000 n
+0000013176 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014965 00000 n
-0000012928 00000 n
-0000013247 00000 n
+0000015296 00000 n
+0000013259 00000 n
+0000013578 00000 n
0000000000 00000 f
-0000013953 00000 n
-0000014038 00000 n
-0000014130 00000 n
-0000014214 00000 n
-0000014304 00000 n
+0000014284 00000 n
+0000014369 00000 n
+0000014461 00000 n
+0000014545 00000 n
+0000014635 00000 n
0000000020 00000 n
0000000071 00000 n
-0000014433 00000 n
-0000014573 00000 n
-0000014657 00000 n
-0000014747 00000 n
-0000014856 00000 n
+0000014764 00000 n
+0000014904 00000 n
+0000014988 00000 n
+0000015078 00000 n
+0000015187 00000 n
0000000132 00000 n
-0000012758 00000 n
-0000012616 00000 n
-0000011606 00000 n
-0000017305 00000 n
-0000017659 00000 n
-0000012892 00000 n
-0000012992 00000 n
-0000013210 00000 n
-0000013826 00000 n
-0000015083 00000 n
-0000016261 00000 n
-0000015160 00000 n
-0000015234 00000 n
-0000016497 00000 n
-0000017459 00000 n
-0000017721 00000 n
-0000017839 00000 n
+0000013089 00000 n
+0000012947 00000 n
+0000011937 00000 n
+0000017636 00000 n
+0000017990 00000 n
+0000013223 00000 n
+0000013323 00000 n
+0000013541 00000 n
+0000014157 00000 n
+0000015414 00000 n
+0000016592 00000 n
+0000015491 00000 n
+0000015565 00000 n
+0000016828 00000 n
+0000017790 00000 n
+0000018052 00000 n
+0000018170 00000 n
trailer
-<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <2033D8BFB67E1F1EDFB190E1DEC10A2C> <2033D8BFB67E1F1EDFB190E1DEC10A2C> ] >>
+<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <36576E9D2D1E9F3A4955814A51D0B45A> <36576E9D2D1E9F3A4955814A51D0B45A> ] >>
startxref
-18076
+18407
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
index 637338d16f..626ef81ffc 100644
--- a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
+++ b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
@@ -30,7 +30,7 @@ endobj
<< /ExtGState 1 0 R /Font << /F15 15 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
19 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11390 >>
+<< /Type /Metadata /Subtype /XML /Length 11721 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -85,6 +85,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -239,17 +245,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:57:37+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:36:28+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-formula-problem.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:57:37+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:57:37+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:57:37+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:36:28+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:36:28+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:36:28+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:8eb2ce1d-b2ec-440a-8bc2-73733eb3eeb0</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:8fbc3896-5f57-401a-81d8-1fdb02abac8a</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:e5a9c002-c48f-4b02-8deb-4c97d9905cec</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>2</prism:pageCount>
</rdf:Description>
@@ -425,46 +431,46 @@ endobj
<< /Type /Catalog /Pages 16 0 R /MarkInfo 23 0 R/Lang (de-DE)/Metadata 19 0 R/StructTreeRoot 5 0 R >>
endobj
33 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125737+02'00')/ModDate (D:20240802125737+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223628+01'00')/ModDate (D:20241027223628+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 34
0000000002 65535 f
-0000012816 00000 n
+0000013147 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014379 00000 n
-0000012899 00000 n
-0000013137 00000 n
+0000014710 00000 n
+0000013230 00000 n
+0000013468 00000 n
0000000000 00000 f
-0000013716 00000 n
-0000013823 00000 n
-0000013929 00000 n
+0000014047 00000 n
+0000014154 00000 n
+0000014260 00000 n
0000000637 00000 n
0000000502 00000 n
0000000020 00000 n
-0000018463 00000 n
-0000018817 00000 n
-0000014041 00000 n
-0000014147 00000 n
+0000018794 00000 n
+0000019148 00000 n
+0000014372 00000 n
+0000014478 00000 n
0000000724 00000 n
-0000012729 00000 n
-0000012594 00000 n
-0000012204 00000 n
-0000012863 00000 n
-0000012969 00000 n
-0000013100 00000 n
-0000014480 00000 n
-0000017236 00000 n
-0000014681 00000 n
-0000014757 00000 n
-0000017472 00000 n
-0000018617 00000 n
-0000018886 00000 n
-0000019004 00000 n
+0000013060 00000 n
+0000012925 00000 n
+0000012535 00000 n
+0000013194 00000 n
+0000013300 00000 n
+0000013431 00000 n
+0000014811 00000 n
+0000017567 00000 n
+0000015012 00000 n
+0000015088 00000 n
+0000017803 00000 n
+0000018948 00000 n
+0000019217 00000 n
+0000019335 00000 n
trailer
-<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <84EDE341B761805B059537E407E8C0CD> <84EDE341B761805B059537E407E8C0CD> ] >>
+<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <E8E46712CBF433CAE23978E436BFCC76> <E8E46712CBF433CAE23978E436BFCC76> ] >>
startxref
-19227
+19558
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-list.pdf b/macros/latex/contrib/tagpdf/ex-list.pdf
index 381477d829..a577247275 100644
--- a/macros/latex/contrib/tagpdf/ex-list.pdf
+++ b/macros/latex/contrib/tagpdf/ex-list.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
48 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11376 >>
+<< /Type /Metadata /Subtype /XML /Length 11707 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:58:08+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:36:54+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-list.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:58:08+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:58:08+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:58:08+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:36:54+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:36:54+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:36:54+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:4c749825-1de7-414c-879f-29e4d0bef66e</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:0803684d-fad7-4d08-8dc2-c5108f24d889</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:5dbd46c1-55e1-44e2-8203-75ae3977078e</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -654,85 +660,85 @@ endobj
<< /Type /Catalog /Pages 54 0 R /MarkInfo 55 0 R/Lang (en)/Metadata 48 0 R/StructTreeRoot 5 0 R >>
endobj
72 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125808+02'00')/ModDate (D:20240802125808+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223654+01'00')/ModDate (D:20241027223654+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 73
0000000002 65535 f
-0000013509 00000 n
+0000013840 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000019047 00000 n
-0000013592 00000 n
-0000014431 00000 n
+0000019378 00000 n
+0000013923 00000 n
+0000014762 00000 n
0000000000 00000 f
-0000015228 00000 n
-0000015329 00000 n
-0000015405 00000 n
-0000015481 00000 n
-0000015568 00000 n
-0000015675 00000 n
-0000015765 00000 n
-0000015875 00000 n
-0000015959 00000 n
-0000016047 00000 n
-0000016170 00000 n
-0000016260 00000 n
-0000016370 00000 n
-0000016454 00000 n
-0000016542 00000 n
-0000016665 00000 n
-0000016752 00000 n
-0000016863 00000 n
-0000016953 00000 n
-0000017063 00000 n
-0000017147 00000 n
-0000017235 00000 n
-0000017358 00000 n
-0000017448 00000 n
-0000017558 00000 n
-0000017642 00000 n
-0000017730 00000 n
-0000017853 00000 n
-0000017940 00000 n
-0000018055 00000 n
-0000018145 00000 n
-0000018255 00000 n
-0000018339 00000 n
-0000018427 00000 n
-0000018550 00000 n
-0000018640 00000 n
-0000018751 00000 n
-0000018835 00000 n
-0000018923 00000 n
+0000015559 00000 n
+0000015660 00000 n
+0000015736 00000 n
+0000015812 00000 n
+0000015899 00000 n
+0000016006 00000 n
+0000016096 00000 n
+0000016206 00000 n
+0000016290 00000 n
+0000016378 00000 n
+0000016501 00000 n
+0000016591 00000 n
+0000016701 00000 n
+0000016785 00000 n
+0000016873 00000 n
+0000016996 00000 n
+0000017083 00000 n
+0000017194 00000 n
+0000017284 00000 n
+0000017394 00000 n
+0000017478 00000 n
+0000017566 00000 n
+0000017689 00000 n
+0000017779 00000 n
+0000017889 00000 n
+0000017973 00000 n
+0000018061 00000 n
+0000018184 00000 n
+0000018271 00000 n
+0000018386 00000 n
+0000018476 00000 n
+0000018586 00000 n
+0000018670 00000 n
+0000018758 00000 n
+0000018881 00000 n
+0000018971 00000 n
+0000019082 00000 n
+0000019166 00000 n
+0000019254 00000 n
0000000020 00000 n
-0000013410 00000 n
-0000013268 00000 n
-0000011486 00000 n
-0000029174 00000 n
-0000022222 00000 n
-0000029528 00000 n
-0000013556 00000 n
-0000013712 00000 n
-0000014394 00000 n
-0000015023 00000 n
-0000019165 00000 n
-0000021124 00000 n
-0000019297 00000 n
-0000019371 00000 n
-0000021358 00000 n
-0000022373 00000 n
-0000022570 00000 n
-0000027709 00000 n
-0000022906 00000 n
-0000023029 00000 n
-0000027945 00000 n
-0000029328 00000 n
-0000029590 00000 n
-0000029705 00000 n
+0000013741 00000 n
+0000013599 00000 n
+0000011817 00000 n
+0000029505 00000 n
+0000022553 00000 n
+0000029859 00000 n
+0000013887 00000 n
+0000014043 00000 n
+0000014725 00000 n
+0000015354 00000 n
+0000019496 00000 n
+0000021455 00000 n
+0000019628 00000 n
+0000019702 00000 n
+0000021689 00000 n
+0000022704 00000 n
+0000022901 00000 n
+0000028040 00000 n
+0000023237 00000 n
+0000023360 00000 n
+0000028276 00000 n
+0000029659 00000 n
+0000029921 00000 n
+0000030036 00000 n
trailer
-<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <0EE2DD31789AD5C7E80F8407D72CF075> <0EE2DD31789AD5C7E80F8407D72CF075> ] >>
+<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <9FE5893F47078D523BBE8D61D50ED061> <9FE5893F47078D523BBE8D61D50ED061> ] >>
startxref
-29928
+30259
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
index 6d60e10736..8d41c002bd 100644
--- a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
+++ b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
@@ -34,7 +34,7 @@ endobj
<< /ExtGState 1 0 R /Font << /F15 13 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
15 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11401 >>
+<< /Type /Metadata /Subtype /XML /Length 11732 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -89,6 +89,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -243,17 +249,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:58:35+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:37:16+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-mc-manual-para-split-obsolete.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:58:35+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:58:35+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:58:35+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:37:16+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:37:16+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:37:16+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:c33d64b4-96ec-4e48-8f27-0b3edc831547</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:075c36f4-757d-4e0f-8258-3c0a3e372d69</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:46f4a0dd-bede-45aa-8ac4-70841977b423</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>2</prism:pageCount>
</rdf:Description>
@@ -413,12 +419,12 @@ endobj
<< /Type /Catalog /Pages 14 0 R /Lang (de)/Metadata 15 0 R >>
endobj
25 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125835+02'00')/ModDate (D:20240802125835+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223716+01'00')/ModDate (D:20241027223716+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 26
0000000002 65535 f
-0000016851 00000 n
+0000017182 00000 n
0000000003 00000 f
0000000004 00000 f
0000000005 00000 f
@@ -427,24 +433,24 @@ xref
0000000008 00000 f
0000000000 00000 f
0000002976 00000 n
-0000016645 00000 n
+0000016976 00000 n
0000003094 00000 n
0000000020 00000 n
-0000023472 00000 n
-0000023826 00000 n
+0000023803 00000 n
+0000024157 00000 n
0000003181 00000 n
-0000016764 00000 n
-0000014672 00000 n
-0000016898 00000 n
-0000022021 00000 n
-0000017205 00000 n
-0000017280 00000 n
-0000022257 00000 n
-0000023626 00000 n
-0000023894 00000 n
-0000023972 00000 n
+0000017095 00000 n
+0000015003 00000 n
+0000017229 00000 n
+0000022352 00000 n
+0000017536 00000 n
+0000017611 00000 n
+0000022588 00000 n
+0000023957 00000 n
+0000024225 00000 n
+0000024303 00000 n
trailer
-<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <1A7EFBAD198841A82D20467F858B3B6C> <1A7EFBAD198841A82D20467F858B3B6C> ] >>
+<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <021868C517E246E72695F327A79C7F3F> <021868C517E246E72695F327A79C7F3F> ] >>
startxref
-24195
+24526
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
index 09a8d8aca0..5c2df8897b 100644
--- a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
+++ b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
14 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11382 >>
+<< /Type /Metadata /Subtype /XML /Length 11713 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:59:01+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:37:38+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-softhyphen.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:59:01+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:59:01+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:59:01+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:37:38+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:37:38+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:37:38+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:aa82e685-4098-469d-861c-3c45dfc700c7</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:994c7ab3-d509-4a5b-88b5-92bca5031c75</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:c020fac8-bd8b-4093-88a3-079e4416672a</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -393,43 +399,43 @@ endobj
<< /Type /Catalog /Pages 19 0 R /MarkInfo 20 0 R/Lang (de)/Metadata 14 0 R/StructTreeRoot 5 0 R >>
endobj
30 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125901+02'00')/ModDate (D:20240802125901+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223738+01'00')/ModDate (D:20241027223738+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 31
0000000002 65535 f
-0000012360 00000 n
+0000012691 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000013738 00000 n
-0000012443 00000 n
-0000012661 00000 n
+0000014069 00000 n
+0000012774 00000 n
+0000012992 00000 n
0000000000 00000 f
-0000013253 00000 n
-0000013346 00000 n
-0000013432 00000 n
-0000013542 00000 n
-0000013628 00000 n
+0000013584 00000 n
+0000013677 00000 n
+0000013763 00000 n
+0000013873 00000 n
+0000013959 00000 n
0000000020 00000 n
-0000012273 00000 n
-0000012138 00000 n
-0000011492 00000 n
-0000017687 00000 n
-0000018051 00000 n
-0000012407 00000 n
-0000012493 00000 n
-0000012624 00000 n
-0000013839 00000 n
-0000016487 00000 n
-0000013993 00000 n
-0000014167 00000 n
-0000016727 00000 n
-0000017846 00000 n
-0000018113 00000 n
-0000018228 00000 n
+0000012604 00000 n
+0000012469 00000 n
+0000011823 00000 n
+0000018018 00000 n
+0000018382 00000 n
+0000012738 00000 n
+0000012824 00000 n
+0000012955 00000 n
+0000014170 00000 n
+0000016818 00000 n
+0000014324 00000 n
+0000014498 00000 n
+0000017058 00000 n
+0000018177 00000 n
+0000018444 00000 n
+0000018559 00000 n
trailer
-<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <EECF5F575625EC21F0BEE870E572FEB1> <EECF5F575625EC21F0BEE870E572FEB1> ] >>
+<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <2884F9E61D000E3EB4AD37FF6613925D> <2884F9E61D000E3EB4AD37FF6613925D> ] >>
startxref
-18451
+18782
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
index 35e1d0609a..3766768619 100644
--- a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
+++ b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
@@ -1,7 +1,7 @@
%PDF-1.5
%
10 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11391 >>
+<< /Type /Metadata /Subtype /XML /Length 11722 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:59:25+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:37:59+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-spaceglyph-listings.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:59:25+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:59:25+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:59:25+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:37:59+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:37:59+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:37:59+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:acdc2435-bf29-4e54-8d09-1c9b6dc32038</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:c59181fc-bb69-430b-8f90-90206d3ba579</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:75cddc90-a6a9-482a-8325-37e09bb2ef3c</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -354,39 +360,39 @@ endobj
<< /Type /Catalog /Pages 15 0 R /MarkInfo 16 0 R/Lang (de)/Metadata 10 0 R/StructTreeRoot 5 0 R >>
endobj
26 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125925+02'00')/ModDate (D:20240802125925+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223759+01'00')/ModDate (D:20241027223759+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 27
0000000002 65535 f
-0000012007 00000 n
+0000012338 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000012886 00000 n
-0000012090 00000 n
-0000012233 00000 n
+0000013217 00000 n
+0000012421 00000 n
+0000012564 00000 n
0000000000 00000 f
-0000012812 00000 n
+0000013143 00000 n
0000000020 00000 n
-0000011920 00000 n
-0000011785 00000 n
-0000011501 00000 n
-0000015069 00000 n
-0000015423 00000 n
-0000012054 00000 n
-0000012125 00000 n
-0000012196 00000 n
-0000012987 00000 n
-0000014053 00000 n
-0000013042 00000 n
-0000013117 00000 n
-0000014289 00000 n
-0000015223 00000 n
-0000015485 00000 n
-0000015600 00000 n
+0000012251 00000 n
+0000012116 00000 n
+0000011832 00000 n
+0000015400 00000 n
+0000015754 00000 n
+0000012385 00000 n
+0000012456 00000 n
+0000012527 00000 n
+0000013318 00000 n
+0000014384 00000 n
+0000013373 00000 n
+0000013448 00000 n
+0000014620 00000 n
+0000015554 00000 n
+0000015816 00000 n
+0000015931 00000 n
trailer
-<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <EC0A5DEABF5EE1A293FAD60891A0BF63> <EC0A5DEABF5EE1A293FAD60891A0BF63> ] >>
+<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <F17259B217182DBF90C1A855FBD46F7D> <F17259B217182DBF90C1A855FBD46F7D> ] >>
startxref
-15823
+16154
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
index 73ce1c0602..03e8187342 100644
--- a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
+++ b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
20 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11390 >>
+<< /Type /Metadata /Subtype /XML /Length 11721 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T12:59:50+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:38:20+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-structure-obsolete.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T12:59:50+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T12:59:50+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T12:59:50+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:38:20+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:38:20+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:38:20+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:bf5e4a2b-cfa9-4fc5-878c-8f9d2ee95445</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:2ccba557-e5ae-4703-80db-28b73a88c1cd</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:2f0d3560-6ba5-4289-8a7d-631646751146</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -526,56 +532,56 @@ endobj
<< /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de)/Metadata 20 0 R/StructTreeRoot 5 0 R >>
endobj
43 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802125950+02'00')/ModDate (D:20240802125950+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223820+01'00')/ModDate (D:20241027223820+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 44
0000000002 65535 f
-0000012794 00000 n
+0000013125 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014930 00000 n
-0000012877 00000 n
-0000013226 00000 n
+0000015261 00000 n
+0000013208 00000 n
+0000013557 00000 n
0000000000 00000 f
-0000013818 00000 n
-0000013903 00000 n
-0000014001 00000 n
-0000014109 00000 n
-0000014217 00000 n
-0000014306 00000 n
-0000014396 00000 n
-0000014506 00000 n
-0000014618 00000 n
-0000014708 00000 n
-0000014818 00000 n
+0000014149 00000 n
+0000014234 00000 n
+0000014332 00000 n
+0000014440 00000 n
+0000014548 00000 n
+0000014637 00000 n
+0000014727 00000 n
+0000014837 00000 n
+0000014949 00000 n
+0000015039 00000 n
+0000015149 00000 n
0000000020 00000 n
-0000012695 00000 n
-0000012560 00000 n
-0000011500 00000 n
-0000023013 00000 n
-0000019779 00000 n
-0000023361 00000 n
-0000012841 00000 n
-0000012955 00000 n
-0000013189 00000 n
-0000015031 00000 n
-0000018510 00000 n
-0000015280 00000 n
-0000015355 00000 n
-0000018746 00000 n
-0000019933 00000 n
-0000020133 00000 n
-0000021901 00000 n
-0000020270 00000 n
-0000020346 00000 n
-0000022135 00000 n
-0000023164 00000 n
-0000023423 00000 n
-0000023538 00000 n
+0000013026 00000 n
+0000012891 00000 n
+0000011831 00000 n
+0000023344 00000 n
+0000020110 00000 n
+0000023692 00000 n
+0000013172 00000 n
+0000013286 00000 n
+0000013520 00000 n
+0000015362 00000 n
+0000018841 00000 n
+0000015611 00000 n
+0000015686 00000 n
+0000019077 00000 n
+0000020264 00000 n
+0000020464 00000 n
+0000022232 00000 n
+0000020601 00000 n
+0000020677 00000 n
+0000022466 00000 n
+0000023495 00000 n
+0000023754 00000 n
+0000023869 00000 n
trailer
-<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <AE5400E970AB8EBE6C04A229EBA70E89> <AE5400E970AB8EBE6C04A229EBA70E89> ] >>
+<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <7BB4C9B60D10544DA8B57870368C28A1> <7BB4C9B60D10544DA8B57870368C28A1> ] >>
startxref
-23761
+24092
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
index 7147cd1e91..b523c18609 100644
--- a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
+++ b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
@@ -1,7 +1,7 @@
%PDF-2.0
%
26 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11387 >>
+<< /Type /Metadata /Subtype /XML /Length 11718 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-08-02T13:00:16+02:00</rdf:li>
+ <rdf:li>2024-10-27T22:38:43+01:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-tagpdf-template.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-08-02T13:00:16+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-08-02T13:00:16+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-08-02T13:00:16+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-10-27T22:38:43+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-10-27T22:38:43+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-10-27T22:38:43+01:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:f320abfc-f6ab-4d12-8719-d176f4d947cf</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:3b4409f1-f3e5-4c01-86c4-a0bcea68ea38</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:56e7d257-35a4-49ae-8577-3c691372d233</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -307,7 +313,7 @@ endobj
<< /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >>
endobj
19 0 obj
-<< /Type /Namespace /NS (data:,25352333-84F8-941A-42AB-414B46468294) >>
+<< /Type /Namespace /NS (data:,8E4C8AF-E27-DA88-5F3F-9A62E664EE8) >>
endobj
8 0 obj
[ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ]
@@ -399,55 +405,55 @@ endobj
<< /Type /Catalog /Pages 31 0 R /MarkInfo 32 0 R/Lang (en)/Metadata 26 0 R/StructTreeRoot 5 0 R >>
endobj
42 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240802130016+02'00')/ModDate (D:20240802130016+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20241027223843+01'00')/ModDate (D:20241027223843+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 43
0000000002 65535 f
-0000011929 00000 n
+0000012260 00000 n
0000000003 00000 f
0000000004 00000 f
0000000010 00000 f
-0000014805 00000 n
-0000012012 00000 n
-0000012222 00000 n
-0000014240 00000 n
-0000012865 00000 n
+0000015133 00000 n
+0000012343 00000 n
+0000012553 00000 n
+0000014568 00000 n
+0000013196 00000 n
0000000012 00000 f
-0000012933 00000 n
+0000013264 00000 n
0000000014 00000 f
-0000013003 00000 n
+0000013334 00000 n
0000000020 00000 f
-0000013766 00000 n
-0000013084 00000 n
-0000014044 00000 n
-0000013873 00000 n
-0000014151 00000 n
+0000014097 00000 n
+0000013415 00000 n
+0000014375 00000 n
+0000014204 00000 n
+0000014482 00000 n
0000000000 00000 f
-0000014301 00000 n
-0000014398 00000 n
-0000014485 00000 n
-0000014572 00000 n
-0000014671 00000 n
+0000014629 00000 n
+0000014726 00000 n
+0000014813 00000 n
+0000014900 00000 n
+0000014999 00000 n
0000000020 00000 n
-0000011866 00000 n
-0000011731 00000 n
-0000011497 00000 n
-0000017426 00000 n
-0000017780 00000 n
-0000011976 00000 n
-0000012053 00000 n
-0000012185 00000 n
-0000012801 00000 n
-0000014942 00000 n
-0000016383 00000 n
-0000015029 00000 n
-0000016604 00000 n
-0000017580 00000 n
-0000017842 00000 n
-0000017957 00000 n
+0000012197 00000 n
+0000012062 00000 n
+0000011828 00000 n
+0000017754 00000 n
+0000018108 00000 n
+0000012307 00000 n
+0000012384 00000 n
+0000012516 00000 n
+0000013132 00000 n
+0000015270 00000 n
+0000016711 00000 n
+0000015357 00000 n
+0000016932 00000 n
+0000017908 00000 n
+0000018170 00000 n
+0000018285 00000 n
trailer
-<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <42D962292B4982520E998D32C837DE43> <42D962292B4982520E998D32C837DE43> ] >>
+<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <2B6006DEEF35DD1A3F3AC9CAA0916125> <2B6006DEEF35DD1A3F3AC9CAA0916125> ] >>
startxref
-18180
+18508
%%EOF
diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
index 0ed233e2e0..5a957d64e3 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2024-08-02} {0.99d}
+\ProvidesExplFile {tagpdf-luatex.def} {2024-10-27} {0.99g}
{tagpdf~driver~for~luatex}
% \end{macrocode}
% \section{Loading the lua}
@@ -85,6 +85,7 @@
% \@@_seq_new:N,
% \@@_prop_gput:Nnn,
% \@@_seq_gput_right:Nn,
+% \@@_seq_gput_left:Nn,
% \@@_seq_item:cn,
% \@@_prop_item:cn,
% \@@_seq_show:N,
@@ -114,7 +115,7 @@
\cs_set_protected:Npn \@@_prop_gput:Nnn #1 #2 #3
{
\prop_gput:Nnn #1 { #2 } { #3 }
- \lua_now:e { ltx.@@.tables.\cs_to_str:N#1 ["#2"] = "#3" }
+ \lua_now:e { ltx.@@.tables.\cs_to_str:N#1 ["#2"] = "\lua_escape:n{#3}" }
}
@@ -123,9 +124,18 @@
\seq_gput_right:Nn #1 { #2 }
\lua_now:e { table.insert(ltx.@@.tables.\cs_to_str:N#1, "#2") }
}
-
+% \end{macrocode}
+%
+% this inserts on the right of the lua table, but as the lua table is not used for kids
+% this is ignored for now.
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_seq_gput_left:Nn #1 #2
+ {
+ \seq_gput_left:Nn #1 { #2 }
+ \lua_now:e { table.insert(ltx.@@.tables.\cs_to_str:N#1, "#2") }
+ }
+
%Hm not quite sure about the naming
-
\cs_set:Npn \@@_seq_item:cn #1 #2
{
\lua_now:e { tex.print(ltx.@@.tables.#1[#2]) }
@@ -164,8 +174,8 @@
local ProvidesLuaModule = {
name = "tagpdf",
- version = "0.99d", --TAGVERSION
- date = "2024-08-02", --TAGDATE
+ version = "0.99g", --TAGVERSION
+ date = "2024-10-27", --TAGDATE
description = "tagpdf lua code",
license = "The LATEX Project Public License 1.3c"
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
index 3cbe3b141b..cb81541ad1 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \section{Commands}
@@ -331,11 +331,12 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-checks-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to checks, conditionals, debugging and messages}
%</header>
% \end{macrocode}
% \section{Messages}
+%
% \subsection{Messages related to mc-chunks}
% \begin{macro}{mc-nested}
% This message is issue is a mc is opened before the previous has been closed.
@@ -454,6 +455,18 @@
{ closing~structure~#1~tagged~\use:e{\prop_item:cn{g_@@_struct_#1_prop}{S}} }
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{struct-Ref-unknown}
+% This message is issued at the end, when the Ref keys are updated.
+% TODO: in debug mode it should report more info about the structure.
+% \begin{macrocode}
+\msg_new:nnn { tag } {struct-Ref-unknown}
+ {
+ #1~has~no~related~structure.\\
+ /Ref~not~updated.
+ }
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{tree-struct-still-open}
% Message issued at the end if there are beside Root other
% open structures on the stack.
@@ -752,7 +765,7 @@
\cs_new_protected:Npn \@@_check_struct_used:n #1 %#1 label
{
\prop_get:cnNT
- {g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop}
+ {g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop}
{P}
\l_@@_tmpa_tl
{
@@ -773,7 +786,7 @@
\msg_error:nnn { tag } {role-missing} {#1}
}
{
- \prop_get:NnNTF \g_@@_role_tags_NS_prop {#2} \l_tmpa_tl
+ \prop_get:NnNTF \g_@@_role_tags_NS_prop {#2} \l_@@_tmpa_tl
{
\int_compare:nNnT {\l_@@_loglevel_int} > { 0 }
{
@@ -795,7 +808,7 @@
\msg_error:nnn { tag } {role-missing} {#1}
}
{
- \prop_get:cnNTF { g_@@_role_NS_#3_prop } {#2} \l_tmpa_tl
+ \prop_get:cnNTF { g_@@_role_NS_#3_prop } {#2} \l_@@_tmpa_tl
{
\int_compare:nNnT {\l_@@_loglevel_int} > { 0 }
{
@@ -928,7 +941,7 @@
\l_@@_tmpa_tl
}
{
- \seq_clear:N \l_tmpa_seq
+ \seq_clear:N \l_@@_tmpa_seq
\int_step_inline:nnnn
{1}
{1}
@@ -940,7 +953,7 @@
{
\int_compare:nT
{
- \@@_property_ref:enn
+ \property_ref:enn
{mcid-####1}
{tagabspage}
{-1}
@@ -948,17 +961,17 @@
##1
}
{
- \seq_gput_right:Ne \l_tmpa_seq
+ \seq_gput_right:Ne \l_@@_tmpa_seq
{
Page##1-####1-
- \@@_property_ref:enn
+ \property_ref:enn
{mcid-####1}
{tagmcid}
{-1}
}
}
}
- \seq_show:N \l_tmpa_seq
+ \seq_show:N \l_@@_tmpa_seq
}
}
% \end{macrocode}
@@ -1124,24 +1137,24 @@
}
}
% \end{macrocode}
-% This tracks tag stop and start.
-% The tag-stop message should go before the int is increased.
-% The tag-start message after the int is decreased.
+% This tracks tag suspend and resume.
+% The tag-suspend message should go before the int is increased.
+% The tag-resume message after the int is decreased.
% \begin{macrocode}
-\msg_new:nnn { tag / debug } {tag-stop}
+\msg_new:nnn { tag / debug } {tag-suspend}
{
\int_if_zero:nTF
{#1}
- {Tagging~stopped}
- {Tagging~(not)~stopped~(already~inactive)}\\
+ {Tagging~suspended}
+ {Tagging~(not)~suspended~(already~inactive)}\\
level:~#1~==>~\int_eval:n{#1+1}\tl_if_empty:nF{#2}{,~label:~#2}~[\msg_line_context:]
}
-\msg_new:nnn { tag / debug } {tag-start}
+\msg_new:nnn { tag / debug } {tag-resume}
{
\int_if_zero:nTF
{#1}
- {Tagging~restarted}
- {Tagging~(not)~restarted}\\
+ {Tagging~resumed}
+ {Tagging~(not)~resumed}\\
level:~\int_eval:n{#1+1}~==>~#1\tl_if_empty:nF{#2}{,~label:~#2}~[\msg_line_context:]
}
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
index 76e839d0d5..9da9be69b0 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.tex b/macros/latex/contrib/tagpdf/tagpdf-code.tex
index b483b96974..df05b99a30 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.tex
@@ -28,9 +28,18 @@
% The next line is needed so that \GetFileInfo will be able to pick up
% version data.
+\usepackage{iftex}
+%until l3doc is corrected
+\ifluatex
+\usepackage[TU]{fontenc}
+\ttfamily
+ \DeclareFontShape{TU}{lmtt}{m}{it}
+ {<-> \UnicodeFontFile{lmmonoslant10-regular}{}}{}
+\fi
\usepackage{longtable}
\usepackage{tagpdf}
-\makeatletter
+
+\input{tagpdf-docelements}
%\def\@setupverbvisiblespace{}
%\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
% \bgroup
@@ -38,13 +47,12 @@
% \verbatim@font\@noligs
% \language\l@nohyphenation
% \@ifstar\@verb\@verb}
-\makeatother
\begin{document}
\GetFileInfo{tagpdf.sty}
\title{%
- \pkg{tagpdf} -- A package to experiment with pdf tagging%
+ \pkg{tagpdf} -- \LaTeX{} kernel code for PDF tagging%
\thanks{This file describes \fileversion,
last revised \filedate.}%
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
index 6417b44c40..9d4045e52d 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% This files contains a various data files which are read in
@@ -61,7 +61,7 @@
% latex-lab has also a namespace module, which takes precedence!
% \begin{macrocode}
%<*ns-latex>
-%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-10-27} {0.99g}
%% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
title, Title, pdf2,
part, Title, pdf2,
@@ -93,7 +93,7 @@ text, P, pdf2,
% It is bound to change
% \begin{macrocode}
%<*ns-latex-book>
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-10-27} {0.99g}
%% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
chapter, H1,pdf2,
section, H2,pdf2,
@@ -107,7 +107,7 @@ subparagraph, H6,pdf2,
% \section{The pdf namespace data}
% \begin{macrocode}
%<*ns-pdf>
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-10-27} {0.99g}
%% {pdf} {http://iso.org/pdf/ssn}{}
StructTreeRoot,StructTreeRoot,pdf,D,
Document,Document,pdf,D,
@@ -175,7 +175,7 @@ Strong,Span,pdf,I,
% \section{The pdf 2.0 namespace data}
% \begin{macrocode}
%<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-10-27} {0.99g}
%% {pdf2} {http://iso.org/pdf2/ssn}{}
StructTreeRoot,StructTreeRoot,pdf2,D,
Document,Document,pdf2,D,
@@ -232,7 +232,7 @@ Strong,Strong,pdf2,I,
% \section{The mathml namespace data}
% \begin{macrocode}
%<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-10-27} {0.99g}
% {mathml}{http://www.w3.org/1998/Math/MathML}{}
abs,abs,mathml,
and,and,mathml,
@@ -467,7 +467,7 @@ xor,xor,mathml,
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-10-27} {0.99g}
,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC
Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅
@@ -522,7 +522,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-08-02} {0.99d}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-10-27} {0.99g}
,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC
Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅
diff --git a/macros/latex/contrib/tagpdf/tagpdf-docelements.tex b/macros/latex/contrib/tagpdf/tagpdf-docelements.tex
new file mode 100644
index 0000000000..c388889aa1
--- /dev/null
+++ b/macros/latex/contrib/tagpdf/tagpdf-docelements.tex
@@ -0,0 +1,2 @@
+\ProvideDocElement[printtype=\textit{struct key},idxtype=key,idxgroup=Structure keys]{Structkeydecl}{structkeydecl}
+\ProvideDocElement[printtype=\textit{setup key},idxtype=key,idxgroup=Setup keys]{Setupkeydecl}{setupkeydecl}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
index ff036b5523..aef94ed20d 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \end{documentation}
@@ -55,11 +55,11 @@
% \begin{macrocode}
%<@@=tag>
%<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-10-27} {0.99g}
{part of tagpdf - code related to marking chunks - generic mode}
%</generic>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-debug-generic} {2024-10-27} {0.99g}
{part of tagpdf - debugging code related to marking chunks - generic mode}
%</debug>
% \end{macrocode}
@@ -573,14 +573,14 @@
% \end{macrocode}
% revert the attribute:
% \begin{macrocode}
- \@@_property_gset:nnnn {tagmcid } { now }
+ \property_gset:nnnn {tagmcid } { now }
{0} { \int_use:N \g_@@_MCID_tmp_bypage_int }
\cs_new_protected:Npn \@@_mc_bdc_mcid:nn #1 #2
{
\int_gincr:N \c@g_@@_MCID_abs_int
\tl_set:Ne \l_@@_mc_ref_abspage_tl
{
- \@@_property_ref:enn %3 args
+ \property_ref:enn %3 args
{
mcid-\int_use:N \c@g_@@_MCID_abs_int
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
index 3c2e91605e..7e794c2166 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{implementation}
% The code is split into three parts: code shared by all engines,
@@ -86,11 +86,11 @@
% \begin{macrocode}
%<@@=tag>
%<*luamode>
-\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-10-27} {0.99g}
{tagpdf - mc code only for the luamode }
%</luamode>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-lua} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-debug-lua} {2024-10-27} {0.99g}
{part of tagpdf - debugging code related to marking chunks - lua mode}
%</debug>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
index 5bfe0658d1..0ba0b26bfb 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -181,7 +181,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-10-27} {0.99g}
{part of tagpdf - code related to marking chunks -
code shared by generic and luamode }
%</header>
@@ -328,7 +328,7 @@
{
\@@_check_if_active_struct:T
{
- \tl_set:Ne \l_@@_tmpa_tl { \@@_property_ref:nnn{tagpdf-#1}{tagmcabs}{} }
+ \tl_set:Ne \l_@@_tmpa_tl { \property_ref:nnn{tagpdf-#1}{tagmcabs}{} }
\tl_if_empty:NTF\l_@@_tmpa_tl
{
\msg_warning:nnn {tag} {mc-label-unknown} {#1}
@@ -365,12 +365,12 @@
\tag_mc_end_push:
\tag_mc_begin:n {artifact=#1}
\group_begin:
- \tag_stop:n{artifact-group}
+ \tag_suspend:n{artifact-group}
}
\cs_set_protected:Npn \tag_mc_artifact_group_end:
{
- \tag_start:n{artifact-group}
+ \tag_resume:n{artifact-group}
\group_end:
\tag_mc_end:
\tag_mc_begin_pop:n{}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
index fb5f1b77c9..ae93943491 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \begin{function}
@@ -98,7 +98,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-roles-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to roles and structure names}
%</header>
% \end{macrocode}
@@ -1301,12 +1301,12 @@
tag-namespace=user,
role-namespace=, %so that we can test for it.
#1
- }{@@/tag-role}\l_tmpa_tl
- \tl_if_empty:NF \l_tmpa_tl
+ }{@@/tag-role}\l_@@_tmpa_tl
+ \tl_if_empty:NF \l_@@_tmpa_tl
{
- \exp_args:NNno \seq_set_split:Nnn \l_tmpa_seq { / } {\l_tmpa_tl/}
- \tl_set:Ne \l_@@_role_tag_tmpa_tl { \seq_item:Nn \l_tmpa_seq {1} }
- \tl_set:Ne \l_@@_role_role_tmpa_tl { \seq_item:Nn \l_tmpa_seq {2} }
+ \exp_args:NNno \seq_set_split:Nnn \l_@@_tmpa_seq { / } {\l_@@_tmpa_tl/}
+ \tl_set:Ne \l_@@_role_tag_tmpa_tl { \seq_item:Nn \l_@@_tmpa_seq {1} }
+ \tl_set:Ne \l_@@_role_role_tmpa_tl { \seq_item:Nn \l_@@_tmpa_seq {2} }
}
\tl_if_empty:NT \l_@@_role_role_namespace_tmpa_tl
{
diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
index 5c8e007084..51b7fb5eb4 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \begin{function}{activate/space (setup-key),interwordspace (deprecated)}
@@ -66,7 +66,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-space-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to real space chars}
%</header>
% \end{macrocode}
@@ -78,6 +78,7 @@
% \begin{macro}{activate/spaces (setup-key),interwordspace (deprecated),show-spaces (deprecated)}
% \begin{macrocode}
%<*package>
+\bool_new:N\l_@@_showspaces_bool
\keys_define:nn { @@ / setup }
{
activate/spaces .choice:,
diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
index 6da5e48b18..e4405ad92f 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
@@ -27,6 +27,7 @@
\usepackage{array,booktabs,caption}
\hypersetup{pdfauthor=Ulrike Fischer,
pdftitle=tagpdf-tree module (tagpdf)}
+\input{tagpdf-docelements}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
@@ -46,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -120,10 +121,22 @@
% the third the value. Currently the only keyword is \texttt{ref} which updates
% the Ref key (an array)
% \end{function}
+%
+% \begin{function}{\tag_struct_gput_ref:nnn}
+% \begin{syntax}
+% \cs{tag_struct_gput_ref:nnn}\Arg{structure number}\Arg{keyword}\Arg{value}
+% \end{syntax}
+% This is an user interface to add a Ref key to an
+% existing structure. The target structure doesn't have to exist yet
+% but can be addressed by label, destname or even num.
+% \meta{keyword} is currently either \texttt{label}, \texttt{dest}
+% or \texttt{num}. The value is then either a label name, the name of a destination
+% or a structure number.
+% \end{function}
%
% \section{Public keys}
% \subsection{Keys for the structure commands}
-% \begin{function}{tag (struct-key)}
+% \begin{structkeydecl}{tag}
% This is required. The value of the key is normally one of the
% standard types listed in the main tagpdf documentation.
% It is possible to setup new tags/types.
@@ -132,15 +145,15 @@
% Currently the names spaces |pdf|, |pdf2|, |mathml| and |user| are defined.
% This allows to use a different name space than
% the one connected by default to the tag. But normally this should not be needed.
-% \end{function}
-% \begin{function}{stash (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{stash}
% Normally a new structure inserts itself as a kid
% into the currently active structure. This key prohibits this.
% The structure is nevertheless from now on
% \enquote{the current active structure}
% and parent for following marked content and structures.
-% \end{function}
-% \begin{function}{label (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{label}
% This key sets a label by which
% one can refer to the structure. It is e.g.
% used by \cs{tag_struct_use:n} (where a real label is actually not
@@ -149,55 +162,63 @@
% Internally the label name will start with \texttt{tagpdfstruct-} and it stores
% the two attributes |tagstruct| (the structure number) and |tagstructobj| (the
% object reference).
-% \end{function}
-% \begin{function}{parent (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{parent}
% By default a structure is added as kid to the currently active structure.
% With the parent key one can choose another parent. The value is a structure number which
% must refer to an already existing, previously created structure. Such a structure
% number can for example be have been stored with \cs{tag_get:n}, but one can also use
% a label on the parent structure and then use
% \cs{property_ref:nn}|{tagpdfstruct-label}{tagstruct}| to retrieve it.
-% \end{function}
-% \begin{function}{title (struct-key),title-o (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{firstkey}
+% If this key is used the structure is added at the left of the kids of
+% the parent structure (if the structure is not stashed).
+% This means that it will be the first kid of the structure
+% (unless some later structure uses the key too).
+% \end{structkeydecl}
+% \begin{structkeydecl}{title,title-o}
% This keys allows to set the dictionary entry
% \texttt{/Title} in the structure object.
% The value is handled as verbatim string and hex encoded.
% Commands are not expanded. |title-o| will expand the value once.
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{alt (struct-key)}
+% \begin{structkeydecl}{alt}
% This key inserts an \texttt{/Alt} value in the dictionary of structure object.
% The value is handled as verbatim string and hex encoded.
% The value will be expanded first once. If it is empty, nothing will happen.
-% \end{function}
-% \begin{function}{actualtext (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{actualtext}
% This key inserts an \texttt{/ActualText} value in the dictionary of structure object.
% The value is handled as verbatim string and hex encoded.
% The value will be expanded first once. If it is empty, nothing will happen.
-% \end{function}
-% \begin{function}{lang (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{lang}
% This key allows to set the language for a structure element. The value should be a bcp-identifier,
% e.g. |de-De|.
-% \end{function}
-% \begin{function}{ref (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{ref}
% This key allows to add references to other structure elements,
% it adds the |/Ref| array to the structure.
% The value should be a comma separated list of structure labels
% set with the |label| key. e.g. |ref={label1,label2}|.
-% \end{function}
-% \begin{function}{E (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{E}
% This key sets the |/E| key, the expanded form of an
% abbreviation or an acronym
% (I couldn't think of a better name, so I sticked to E).
-% \end{function}
-% \begin{function}{AF (struct-key),AFref (struct-key),
-% AFinline (struct-key),AFinline-o (struct-key),texsource,mathml}
+% \end{structkeydecl}
+% \begin{structkeydecl}{AF,AFref,
+% AFinline,AFinline-o,texsource,mathml}
+% These keys handle associated files in the structure element.
+%
% \begin{syntax}
% AF = \meta{object name}\\
% AFref = \meta{object reference}\\
% AF-inline = \meta{text content}\\
% \end{syntax}
-% These keys allows to reference an associated file in the structure element.
+%
% The value \meta{object name} should be the name of an object pointing
% to the \texttt{/Filespec} dictionary as expected by
% |\pdf_object_ref:n| from a current \texttt{l3kernel}.
@@ -209,15 +230,16 @@
% Future versions will perhaps extend this to more mime types, but it is
% still a research task to find out what is really needed.
%
-% |texsource| is a special variant of |AF-inline-o| which embeds the file
-% as |.tex| source with the |/AFrelationship| key set to |/Source|. It also sets the |/Desc| key
-% to a (currently) fix text.
+% |texsource| is a special variant of |AF-inline-o| which embeds the content
+% as |.tex| source with the |/AFrelationship| key set to |/Source|.
+% It also sets the |/Desc| key to a (currently) fix text.
%
-% |mathml| is a special variant of |AF-inline-o| which embeds the file
+% |mathml| is a special variant of |AF-inline-o| which embeds the content
% as |.xml| file with the |/AFrelationship| key set to |/Supplement|.
% It also sets the |/Desc| key to a (currently) fix text.
%
-% The argument of |AF| is an object name referring an embedded file as declared for example with
+% The argument of |AF| is an object name referring an embedded file as declared
+% for example with
% \cs{pdf_object_new:n} or with the l3pdffile module. |AF| expands its argument
% (this allows e.g. to use some variable for automatic numbering)
% and can be used more than once, to associate more than one file.
@@ -231,9 +253,9 @@
% does not check if the reference is valid!}
%
% The inline keys can be used only once per structure. Additional calls are ignored.
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{attribute (struct-key)}
+% \begin{structkeydecl}{attribute}
% This key takes as argument a comma list of attribute names
% (use braces to protect the commas from the external key-val parser)
% and allows to add one or more attribute dictionary entries in
@@ -243,16 +265,17 @@
% \end{verbatim}
% Attribute names and their content must be declared first in \cs{tagpdfsetup}.
%
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{attribute-class (struct-key)}
+% \begin{structkeydecl}{attribute-class}
% This key takes as argument a comma list of attribute class names
% (use braces to protect the commas from the external key-val parser)
% and allows to add one or more attribute classes to the structure object.
%
% Attribute class names and their content
% must be declared first in \cs{tagpdfsetup}.
-% \end{function}
+% \end{structkeydecl}
+%
% \subsection{Setup keys}
% \begin{function}{role/new-attribute (setup-key), newattribute (deprecated)}
% \begin{syntax}
@@ -272,20 +295,20 @@
% \end{verbatim}
%
% \end{function}
-% \begin{function}{root-AF (setup-key)}
+% \begin{setupkeydecl}{root-AF}
% \begin{syntax}
% root-AF = \meta{object name}
% \end{syntax}
% This key can be used in the setup command \cs{tagpdfsetup} and allows
% to add associated files to the root structure. Like |AF| it can be used more than
% once to add more than one file.
-% \end{function}
+% \end{setupkeydecl}
% \end{documentation}
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-struct-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to storing structure}
%</header>
% \end{macrocode}
@@ -442,12 +465,16 @@
\tl_new:N \l_@@_struct_roletag_NS_tl
% \end{macrocode}
% \end{variable}
-% \begin{variable}{\l_@@_struct_key_label_tl}
-% This will hold the label value.
+% \begin{variable}{\g_@@_struct_label_num_prop}
+% This will hold for every structure label the associated
+% structure number. The prop will allow to
+% fill the /Ref key directly at the first compilation if the ref
+% key is used.
% \begin{macrocode}
-\tl_new:N \l_@@_struct_key_label_tl
+\prop_new_linked:N \g_@@_struct_label_num_prop
% \end{macrocode}
% \end{variable}
+
% \begin{variable}{\l_@@_struct_elem_stash_bool}
% This will keep track of the stash status
% \begin{macrocode}
@@ -455,6 +482,15 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\l_@@_struct_addkid_tl}
+% This decides if a structure kid is added at the left or right of the parent.
+% The default is \texttt{right}.
+% \begin{macrocode}
+\tl_new:N \l_@@_struct_addkid_tl
+\tl_set:Nn \l_@@_struct_addkid_tl {right}
+% \end{macrocode}
+% \end{variable}
+
% \subsection{Variables used by tagging code of basic elements}
%
% \begin{variable}{\g_@@_struct_dest_num_prop}
@@ -473,6 +509,7 @@
% This variable contains structures whose Ref key should be updated
% at the end to point to structured related with this destination.
% As this is probably need in other places too, it is not only a toc-variable.
+% TODO: remove after 11/2024 release.
% \begin{macrocode}
\prop_new_linked:N \g_@@_struct_ref_by_dest_prop
% \end{macrocode}
@@ -696,16 +733,17 @@
/Type \c_space_tl /MCR \c_space_tl
/Pg
\c_space_tl
- \pdf_pageobject_ref:n { \@@_property_ref:enn{mcid-#1}{tagabspage}{1} }
- /MCID \c_space_tl \@@_property_ref:enn{mcid-#1}{tagmcid}{1}
+ \pdf_pageobject_ref:n { \property_ref:enn{mcid-#1}{tagabspage}{1} }
+ /MCID \c_space_tl \property_ref:enn{mcid-#1}{tagmcid}{1}
>>
}
%</package>
% \end{macrocode}
% \begin{macrocode}
%<*package|debug>
-%<package>\cs_new_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum%
-%<debug>\cs_set_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum%
+%<package>\cs_new_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2
+%<debug>\cs_set_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2
+%#1 structure num, #2 MCID absnum%
{
\@@_seq_gput_right:ce
{ g_@@_struct_kids_#1_seq }
@@ -733,8 +771,9 @@
% This commands adds a structure as kid. We only need to record the object
% reference in the sequence.
% \begin{macrocode}
-%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2 %#1 num of parent struct, #2 kid struct
-%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2 %#1 num of parent struct, #2 kid struct
+%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2
+%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2
+%%#1 num of parent struct, #2 kid struct
{
\@@_seq_gput_right:ce
{ g_@@_struct_kids_#1_seq }
@@ -747,10 +786,35 @@
%<debug> Struct~#2
%<debug> }
}
-
%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_right:nn {ee}
% \end{macrocode}
% \end{macro}
+% \begin{macro}
+% {
+% \@@_struct_kid_struct_gput_left:nn,\@@_struct_kid_struct_gput_left:ee
+% }
+% This commands adds a structure as kid one the left, so as first
+% kid. We only need to record the object reference in the sequence.
+% \begin{macrocode}
+%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_left:nn #1 #2
+%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_left:nn #1 #2
+%%#1 num of parent struct, #2 kid struct
+ {
+ \@@_seq_gput_left:ce
+ { g_@@_struct_kids_#1_seq }
+ {
+ \pdf_object_ref_indexed:nn { @@/struct }{ #2 }
+ }
+%<debug> \seq_gput_left:cn
+%<debug> { g_@@_struct_debug_kids_#1_seq }
+%<debug> {
+%<debug> Struct~#2
+%<debug> }
+ }
+%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_left:nn {ee}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}
% {\@@_struct_kid_OBJR_gput_right:nnn,\@@_struct_kid_OBJR_gput_right:eee}
% At last the command to add an OBJR object. This has to write an object first.
@@ -759,10 +823,11 @@
% object reference
%
% \begin{macrocode}
-%<package>\cs_new_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3 %#1 num of parent struct,
-%<package> %#2 obj reference
-%<package> %#3 page object reference
+%<package>\cs_new_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3
+%<package>
+%<package>
%<debug>\cs_set_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3
+%%#1 num of parent struct,#2 obj reference,#3 page object reference
{
\pdf_object_unnamed_write:nn
{ dict }
@@ -907,34 +972,47 @@
\tl_clear:N #2
\prop_map_inline:cn { g_@@_struct_#1_prop }
{
- \tl_put_right:Ne #2
- {
% \end{macrocode}
% Some keys needs the option to format the value, e.g. add brackets for an
% array, we also need the option to ignore some entries in the properties.
-% \begin{macrocode}
- \cs_if_exist_use:cTF {@@_struct_format_##1:nn}
- {{##1}{##2}}
- {\c_space_tl/##1~##2}
+% \begin{macrocode}
+ \cs_if_exist_use:cTF {@@_struct_format_##1:nnN}
+ {
+ {##1}{##2}#2
}
- }
+ {
+ \tl_put_right:Ne #2 { \c_space_tl/##1~##2 }
+ }
+ }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_struct_format_rolemap:nn,\@@_struct_format_parentrole:nn}
+% \begin{macro}{\@@_struct_format_rolemap:nnN,\@@_struct_format_parentrole:nnN}
% This two entries should not end in the PDF.
% \begin{macrocode}
-\cs_new:Nn\@@_struct_format_rolemap:nn{}
-\cs_new:Nn\@@_struct_format_parentrole:nn{}
+\cs_new:Nn\@@_struct_format_rolemap:nnN{}
+\cs_new:Nn\@@_struct_format_parentrole:nnN{}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\@@_struct_format_Ref:nn}
-% Ref is an array, we store only the content to be able to extend it
-% so the formatting command adds the brackets:
+% \begin{macro}{\@@_struct_format_Ref:nnN}
+% Ref is an array, we store values as a clist of commands that must
+% be executed here, the formatting has to add also brackets.
+%
% \begin{macrocode}
-\cs_new:Nn\__tag_struct_format_Ref:nn{\c_space_tl/#1~[#2]}
+\cs_new_protected:Nn\@@_struct_format_Ref:nnN
+ {
+ \tl_put_right:Nn #3 { ~/#1~[ } %]
+ \clist_map_inline:nn{ #2 }
+ {
+ ##1 #3
+ }
+ \tl_put_right:Nn #3
+ { %[
+ \c_space_tl]
+ }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_struct_write_obj:n}
@@ -953,7 +1031,8 @@
% \begin{macrocode}
\prop_get:cnNF { g_@@_struct_#1_prop } {P}\l_@@_tmpb_tl
{
- \prop_gput:cne { g_@@_struct_#1_prop } {P}{\pdf_object_ref_indexed:nn { @@/struct }{1}}
+ \prop_gput:cne { g_@@_struct_#1_prop } {P}
+ {\pdf_object_ref_indexed:nn { @@/struct }{1}}
\prop_gput:cne { g_@@_struct_#1_prop } {S}{/Artifact}
\seq_if_empty:cF {g_@@_struct_kids_#1_seq}
{
@@ -1005,8 +1084,9 @@
% \tag_struct_end:
% \end{verbatim}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_struct_insert_annot:nn #1 #2 %#1 object reference to the annotation/xform
- %#2 structparent number
+\cs_new_protected:Npn \@@_struct_insert_annot:nn #1 #2
+ %#1 object reference to the annotation/xform
+ %#2 structparent number
{
\bool_if:NT \g_@@_active_struct_bool
{
@@ -1028,7 +1108,8 @@
#1 %
}
{
- \pdf_pageobject_ref:n { \@@_property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} }
+ \pdf_pageobject_ref:n
+ { \property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} }
}
% add the parent obj number to the parent tree:
\exp_args:Nne
@@ -1037,7 +1118,8 @@
#2
}
{
- \pdf_object_ref_indexed:nn { @@/struct }{ \l_@@_struct_stack_parent_tmpa_tl }
+ \pdf_object_ref_indexed:nn
+ { @@/struct }{ \l_@@_struct_stack_parent_tmpa_tl }
}
% increase the int:
\int_gincr:N \c@g_@@_parenttree_obj_int
@@ -1112,7 +1194,8 @@
\socket_new:nn { tag/struct/tag }{1}
\socket_new_plug:nnn { tag/struct/tag }{ latex-tags }
{
- \seq_set_split:Nne \l_@@_tmpa_seq { / } {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}}
+ \seq_set_split:Nne \l_@@_tmpa_seq { / }
+ {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}}
\tl_gset:Ne \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} }
\tl_gset:Ne \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} }
\@@_check_structure_tag:N \g_@@_struct_tag_tl
@@ -1120,10 +1203,12 @@
\socket_new_plug:nnn { tag/struct/tag }{ pdf-tags }
{
- \seq_set_split:Nne \l_@@_tmpa_seq { / } {#1/\prop_item:Ne\g_@@_role_tags_NS_prop{#1}}
+ \seq_set_split:Nne \l_@@_tmpa_seq { / }
+ {#1/\prop_item:Ne\g_@@_role_tags_NS_prop{#1}}
\tl_gset:Ne \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} }
\tl_gset:Ne \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} }
- \@@_role_get:VVNN \g_@@_struct_tag_tl\g_@@_struct_tag_NS_tl\l_@@_tmpa_tl\l_@@_tmpb_tl
+ \@@_role_get:VVNN
+ \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl \l_@@_tmpa_tl \l_@@_tmpb_tl
\tl_gset:Ne \g_@@_struct_tag_tl {\l_@@_tmpa_tl}
\tl_gset:Ne \g_@@_struct_tag_NS_tl{\l_@@_tmpb_tl}
\@@_check_structure_tag:N \g_@@_struct_tag_tl
@@ -1131,24 +1216,32 @@
\socket_assign_plug:nn { tag/struct/tag } {latex-tags}
% \end{macrocode}
-% \begin{macro}
+% \begin{structkeydecl}
% {
-% label (struct-key),
-% stash (struct-key),
-% parent (struct-key),
-% tag (struct-key),
-% title (struct-key),
-% title-o (struct-key),
-% alt (struct-key),
-% actualtext (struct-key),
-% lang (struct-key),
-% ref (struct-key),
-% E (struct-key)
+% label,
+% stash,
+% parent,
+% firstkid,
+% tag,
+% title,
+% title-o,
+% alt,
+% actualtext,
+% lang,
+% ref,
+% E
% }
% \begin{macrocode}
\keys_define:nn { @@ / struct }
{
- label .tl_set:N = \l_@@_struct_key_label_tl,
+ label .code:n =
+ {
+ \prop_gput:Nee\g_@@_struct_label_num_prop
+ {#1}{\int_use:N \c@g_@@_struct_abs_int}
+ \@@_property_record:eV
+ {tagpdfstruct-#1}
+ \c_@@_property_struct_clist
+ },
stash .bool_set:N = \l_@@_struct_elem_stash_bool,
parent .code:n =
{
@@ -1166,7 +1259,8 @@
{ parent~key~ignored }
}
},
- parent .default:n = {-1},
+ parent .default:n = {-1},
+ firstkid .code:n = { \tl_set:Nn \l_@@_struct_addkid_tl {left} },
tag .code:n = % S property
{
\socket_use:nn { tag/struct/tag }{#1}
@@ -1233,19 +1327,77 @@
{ Lang }
{ (#1) }
},
+ }
% \end{macrocode}
-% Ref is an array, the brackets are added through the formatting command.
+% \end{structkeydecl}
+% Ref is rather special as it values are often
+% known only at the end of the document.
+% It therefore stores it values as
+% clist of commands which are executed at the end of the document,
+% when the structure elements are written.
+% \begin{macro}{\@@_struct_Ref_obj:nN,\@@_struct_Ref_label:nN,
+% \@@_struct_Ref_dest:nN,\@@_struct_Ref_num:nN}
+% this commands are helper commands that are stored as clist
+% in the Ref key of a structure. They are executed when the structure
+% elements are written in \cs{@@_struct_write_obj}. They are used
+% in \cs{@@_struct_format_Ref}. They allow to add a Ref by object reference,
+% label, destname and structure number
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_struct_Ref_obj:nN #1 #2 %#1 a object reference
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl#1
+ }
+ }
+
+\cs_new_protected:Npn \@@_struct_Ref_label:nN #1 #2 %#1 a label
+ {
+ \prop_get:NnNTF \g_@@_struct_label_num_prop {#1} \l_@@_tmpb_tl
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ \l_@@_tmpb_tl }
+ }
+ }
+ {
+ \msg_warning:nnn {tag}{struct-Ref-unknown}{Label~'#1'}
+ }
+ }
+\cs_new_protected:Npn \@@_struct_Ref_dest:nN #1 #2 %#1 a dest name
+ {
+ \prop_get:NnNTF \g_@@_struct_dest_num_prop {#1} \l_@@_tmpb_tl
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ \l_@@_tmpb_tl }
+ }
+ }
+ {
+ \msg_warning:nnn {tag}{struct-Ref-unknown}{Destination~'#1'}
+ }
+ }
+\cs_new_protected:Npn \@@_struct_Ref_num:nN #1 #2 %#1 a structure number
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ #1 }
+ }
+ }
+
+% \end{macrocode}
+% \end{macro}
+% \begin{structkeydecl}{ref,E,}
% \begin{macrocode}
+\keys_define:nn { @@ / struct }
+ {
ref .code:n = % ref property
{
- \tl_clear:N\l_@@_tmpa_tl
\clist_map_inline:on {#1}
{
- \tl_put_right:Ne \l_@@_tmpa_tl
- {~\@@_property_ref:en{tagpdfstruct-##1}{tagstructobj} }
+ \tag_struct_gput:nne
+ {\int_use:N \c@g_@@_struct_abs_int}{ref_label}{ ##1 }
}
- \@@_struct_gput_data_ref:ee
- { \int_use:N \c@g_@@_struct_abs_int } {\l_@@_tmpa_tl}
},
E .code:n = % E property
{
@@ -1261,9 +1413,9 @@
},
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{AF (struct-key), AFref (struct-key),
-% AFinline (struct-key),AFinline-o (struct-key)}
+% \end{structkeydecl}
+%
+% \begin{structkeydecl}{AF, AFref,AFinline,AFinline-o,texsource,mathml}
% keys for the AF keys (associated files). They use commands from l3pdffile!
% The stream variants use txt as extension to get the mimetype.
% TODO: check if this should be configurable. For math we will perhaps need another
@@ -1314,7 +1466,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2 % #1 struct num #2 object reference
+\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2
+% #1 struct num #2 object reference
{
\tl_if_exist:cTF
{
@@ -1340,7 +1493,8 @@
{
\pdf_object_if_exist:eTF {#1}
{
- \@@_struct_add_AF:ee { \int_use:N \c@g_@@_struct_abs_int }{\pdf_object_ref:e {#1}}
+ \@@_struct_add_AF:ee
+ { \int_use:N \c@g_@@_struct_abs_int }{\pdf_object_ref:e {#1}}
\@@_struct_prop_gput:nne
{ \int_use:N \c@g_@@_struct_abs_int }
{ AF }
@@ -1397,8 +1551,8 @@
}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{root-AF (setup-key)}
+% \end{structkeydecl}
+% \begin{setupkeydecl}{root-AF}
% The root structure can take AF keys too, so we provide a key for it.
% This key is used with |\tagpdfsetup|, not in a structure!
% \begin{macrocode}
@@ -1425,7 +1579,7 @@
},
}
% \end{macrocode}
-% \end{macro}
+% \end{setupkeydecl}
% \section{User commands}
% We allow to set a language by default
% \begin{macro}{\l_@@_struct_lang_tl}
@@ -1481,13 +1635,6 @@
\g_@@_struct_tag_tl
\g_@@_struct_tag_NS_tl
\@@_check_structure_has_tag:n { \int_use:N \c@g_@@_struct_abs_int }
- \tl_if_empty:NF
- \l_@@_struct_key_label_tl
- {
- \@@_property_record:eV
- {tagpdfstruct-\l_@@_struct_key_label_tl}
- \c_@@_property_struct_clist
- }
% \end{macrocode}
% The structure number of the parent is either taken from the stack or
% has been set with the parent key.
@@ -1613,7 +1760,7 @@
%record this structure as kid:
%\tl_show:N \g_@@_struct_stack_current_tl
%\tl_show:N \l_@@_struct_stack_parent_tmpa_tl
- \@@_struct_kid_struct_gput_right:ee
+ \use:c { @@_struct_kid_struct_gput_ \l_@@_struct_addkid_tl :ee }
{ \l_@@_struct_stack_parent_tmpa_tl }
{ \g_@@_struct_stack_current_tl }
%\prop_show:c { g_@@_struct_\g_@@_struct_stack_current_tl _prop }
@@ -1706,16 +1853,16 @@
\@@_check_if_active_struct:T
{
\prop_if_exist:cTF
- { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } %
+ { g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } %
{
\@@_check_struct_used:n {#1}
%add the label structure as kid to the current structure (can be the root)
\@@_struct_kid_struct_gput_right:ee
{ \g_@@_struct_stack_current_tl }
- { \@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1} }
+ { \property_ref:enn{tagpdfstruct-#1}{tagstruct}{1} }
%add the current structure to the labeled one as parents
\@@_prop_gput:cne
- { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
+ { g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
{ P }
{
\pdf_object_ref_indexed:nn { @@/struct } { \g_@@_struct_stack_current_tl }
@@ -1724,7 +1871,7 @@
% debug code
% \begin{macrocode}
%<debug> \prop_gput:cne
-%<debug> { g_@@_struct_debug_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
+%<debug> { g_@@_struct_debug_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
%<debug> { P }
%<debug> {
%<debug> parent~structure:~\g_@@_struct_stack_current_tl\c_space_tl=~
@@ -1736,7 +1883,7 @@
% the global tl-vars:
% \begin{macrocode}
\@@_struct_get_parentrole:eNN
- {\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}}
+ {\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}}
\l_@@_tmpa_tl
\l_@@_tmpb_tl
\@@_check_parent_child:VVVVN
@@ -1853,6 +2000,7 @@
\pdf_object_ref_indexed:nn {@@/struct}{ #1 }
}
\cs_generate_variant:Nn \tag_struct_object_ref:n {e}
+%</package>
% \end{macrocode}
%
% \end{macro}
@@ -1864,10 +2012,18 @@
% adjusted to the key in question.
% The first argument is the number of the structure,
% the second a keyword referring to a function,
-% the third the value. Currently the only keyword is \texttt{ref} which updates
-% the Ref key (an array)
-% \begin{macrocode}
-\cs_new_protected:Npn \tag_struct_gput:nnn #1 #2 #3
+% the third the value. Currently the existing keywords are all related
+% to the \texttt{Ref} key (an array).
+% The keyword \texttt{ref} takes as value an explicit object reference to
+% a structure. The keyword \texttt{ref_label} expects as value a label name (from
+% a label set in a \cs{tagstructbegin} command). The keyword \texttt{ref_dest}
+% expects a destination name set with \cs{MakeLinkTarget}. It then will refer to
+% the structure in which this \cs{MakeLinkTarget} was used. At last
+% the keyword \texttt{ref_num} expects a structure number.
+% \begin{macrocode}
+%<base>\cs_new_protected:Npn \tag_struct_gput:nnn #1 #2 #3{}
+%<*package>
+\cs_set_protected:Npn \tag_struct_gput:nnn #1 #2 #3
{
\cs_if_exist_use:cF {@@_struct_gput_data_#2:nn}
{ %warning??
@@ -1880,22 +2036,47 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_struct_gput_data_ref:nn}
+% \begin{macro}{\@@_struct_gput_data_ref_aux:nnn}
% \begin{macrocode}
%<*package>
-\cs_new_protected:Npn \@@_struct_gput_data_ref:nn #1 #2
- % #1 receiving struct num, #2 list of object ref
+\cs_new_protected:Npn \@@_struct_gput_data_ref_aux:nnn #1 #2 #3
+ % #1 receiving struct num, #2 key word #3 value
{
- \prop_get:cnN
- { g_@@_struct_#1_prop }
- {Ref}
- \l_@@_get_tmpc_tl
- \@@_struct_prop_gput:nne
- { #1 }
- { Ref }
- { \quark_if_no_value:NF\l_@@_get_tmpc_tl { \l_@@_get_tmpc_tl\c_space_tl }#2 }
+ \prop_get:cnNTF
+ { g_@@_struct_#1_prop }
+ {Ref}
+ \l_@@_get_tmpc_tl
+ {
+ \tl_put_right:No \l_@@_get_tmpc_tl
+ {\cs:w @@_struct_Ref_#2:nN \cs_end: {#3},}
+ }
+ {
+ \tl_set:No \l_@@_get_tmpc_tl
+ {\cs:w @@_struct_Ref_#2:nN \cs_end: {#3},}
+ }
+ \@@_struct_prop_gput:nno
+ { #1 }
+ { Ref }
+ { \l_@@_get_tmpc_tl }
}
-\cs_generate_variant:Nn \@@_struct_gput_data_ref:nn {ee}
+\cs_new_protected:Npn \@@_struct_gput_data_ref:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{obj}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_label:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{label}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_dest:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{dest}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_num:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{num}{#2}
+ }
+
+\cs_generate_variant:Nn \@@_struct_gput_data_ref:nn {ee,no}
% \end{macrocode}
% \end{macro}
% \begin{macro}
@@ -1937,7 +2118,7 @@
% \section{Attributes and attribute classes}
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-attr-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to attributes and attribute classes}
%</header>
% \end{macrocode}
@@ -2012,7 +2193,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{attribute-class (struct-key)}
+% \begin{structkeydecl}{attribute-class}
% attribute-class has to store the used attribute names so that
% they can be added to the ClassMap later.
% \begin{macrocode}
@@ -2054,8 +2235,8 @@
}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{attribute (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{attribute}
% \begin{macrocode}
\keys_define:nn { @@ / struct }
{
@@ -2112,5 +2293,5 @@
}
%</package>
% \end{macrocode}
-% \end{macro}
+% \end{structkeydecl}
% \end{implementation}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
index f7ae6de996..36032d1799 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-tree-code} {2024-10-27} {0.99g}
{part of tagpdf - code related to writing trees and dictionaries to the pdf}
%</header>
% \end{macrocode}
@@ -118,7 +118,7 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{viewer/startpage (setup-key)}
+% \begin{macro}{viewer/startstructure (setup-key)}
% We also need an option to setup the start structure. So we setup a key
% which sets the variable to the current structure. This still requires
% hyperref to do most of the job, this should perhaps be changed.
@@ -367,11 +367,11 @@
{
%mcid####1
\int_compare:nT
- {\@@_property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page
+ {\property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page
{% yes
\prop_put:Nee
\l_@@_tmpa_prop
- {\@@_property_ref:enn{mcid-####1}{tagmcid}{-1}}
+ {\property_ref:enn{mcid-####1}{tagmcid}{-1}}
{\prop_item:Nn \g_@@_mc_parenttree_prop {####1}}
}
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
index a4014b62e3..86cd4aced0 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
@@ -33,7 +33,8 @@
%</driver>
% \fi
% \title{^^A
-% The \pkg{tagpdf-user} module\\ Code related to \LaTeX2e user commands and document commands ^^A
+% The \pkg{tagpdf-user} module\\
+% Code related to \LaTeX2e user commands and document commands ^^A
% \\ Part of the tagpdf package
% }
%
@@ -46,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.99d, released 2024-08-02}
+% \date{Version 0.99g, released 2024-10-27}
% \maketitle
% \begin{documentation}
% \section{Setup commands}
@@ -265,41 +266,53 @@
% \begin{syntax}
% \cs{tag_socket_use:n} \Arg{socket name}\\
% \cs{tag_socket_use:nn} \Arg{socket name} \Arg{socket argument}\\
+% \cs{tag_socket_use:nn} \Arg{socket name} \Arg{socket argument} \Arg{socket argument}\\
+% \cs{tag_socket_use_expandable:n} \Arg{socket name}\\
% \cs{UseTaggingSocket} \Arg{socket name} \\
% \cs{UseTaggingSocket} \Arg{socket name} \Arg{socket argument}\\
+% \cs{UseTaggingSocket} \Arg{socket name} \Arg{socket argument}\Arg{socket argument}\\
% \end{syntax}
% \end{function}
-
-% The next \LaTeX{} (2024-06-01) will use special sockets for the tagging.
%
-% These sockets will use names starting
-% with \texttt{tagsupport/}. Usually, these sockets have exactly two
-% plugs defined: \texttt{noop} (when no tagging is requested or
-% tagging is not wanted for some reason) and
-% a second plug that enables the tagging. There
-% may be more, e.g., tagging with special debugging, etc., but right
-% now it is usually just on or off.
-%
% Given that we sometimes have to suspend tagging, it would be fairly
% inefficient to put different plugs into these sockets whenever that
% happens. We therefore offer \cs{UseTaggingSocket} which is like
-% \cs{UseSocket} except that the socket name is specified without
-% \texttt{tagsupport/}, i.e.,
+% \cs{UseSocket} except that is expects a socket starting with
+% \texttt{tagsupport/} but the socket name is specified without
+% this prefix, i.e.,
% \begin{quote}
% \verb=\UseTaggingSocket{foo}= $\to$
% \verb=\UseSocket{tagsupport/foo}=
-% \end{quote}
-% Beside being slightly shorter, the big advantage is that this way
-% we can change \cs{UseTaggingSocket} to do nothing by switching a boolean
-% instead of changing the plugs of the tagging support sockets back and forth.
+% \end{quote}.
+%
+% Beside being slightly shorter, the big advantage is that this way
+% we can change \cs{UseTaggingSocket} to do nothing by switching a boolean
+% instead of changing the plugs of the tagging support sockets back and forth.
%
-% It is possible to use the tagging support sockets with
-% \cs{UseSocket} directly, but in this case the socket remains active
-% if e.g. \cs{SuspendTagging} is in force. There may be reasons for doing
-% that but in general we expect to always use \cs{UseTaggingSocket}.
+% Usually, these sockets have (beside the default plug defined for every socket)
+% one additional plug defined and directly assigned. This plug is used when
+% tagging is active.
+% There may be more plugs, e.g., tagging with special debugging or special behaviour
+% depending on the class or PDF version etc., but right now it is usually just on or off.
%
-% The L3 programming layer versions \cs{tag_socket_use:n} and
-% \cs{tag_socket_use:nn} are slightly more efficient than
+% When tagging is suspended they all have the same predefined behaviour:
+% The sockets with zero arguments do nothing. The sockets with one argument
+% gobble their argument. The sockets with two arguments
+% will drop their first argument and pass the second unchanged.
+%
+% It is possible to use the tagging support sockets with
+% \cs{UseSocket} directly, but in this case the socket remains active
+% if e.g. \cs{SuspendTagging} is in force. There may be reasons for doing
+% that but in general we expect to always use \cs{UseTaggingSocket}.
+%
+% For special cases like in some \cs{halign} contexts we need a fully expandable
+% version of the commend. For these cases, \cs{UseExpandableTaggingSocket} can be
+% used. To allow being expandable, it does not output any debugging information
+% if \cs{DebugSocketsOn} is in effect and therefore should be avoided whenever possible.
+%
+% The L3 programming layer versions \cs{tag_socket_use_expandable:n}, \cs{tag_socket_use:n}, and
+% \cs{tag_socket_use:nn}, \cs{tag_socket_use:nnn}
+% are slightly more efficient than
% \cs{UseTaggingSocket} because they do not have to determine how
% many arguments the socket takes when disabling it.
% \end{documentation}
@@ -309,7 +322,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-user} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-user} {2024-10-27} {0.99g}
{tagpdf - user commands}
%</header>
% \end{macrocode}
@@ -408,21 +421,29 @@
% \section{Socket support}
% Until we can be sure that the kernel defines the commands we provide them before
% redefining them:
+% The expandable version will only work correctly after the 2024-11-01 release.
% \begin{macrocode}
%<*base>
\providecommand\tag_socket_use:n[1]{}
\providecommand\tag_socket_use:nn[2]{}
+\providecommand\tag_socket_use:nnn[3]{}
+\providecommand\tag_socket_use_expandable:n[1]{}
+\providecommand\socket_use_expandable:nw [1] {
+ \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w }
+}
\providecommand\UseTaggingSocket[1]{}
+\providecommand\UseExpandableTaggingSocket[1]{}
%</base>
% \end{macrocode}
%
-% \begin{macro}{\tag_socket_use:n,\tag_socket_use:nn,\UseTaggingSocket}
+% \begin{macro}{\tag_socket_use:n,\tag_socket_use:nn,\tag_socket_use:nnn,\UseTaggingSocket,
+% \tag_socket_use_expandable:n,\UseExpandableTaggingSocket}
% \begin{macrocode}
%<*package>
-\cs_set_protected:Npn \tag_socket_use:n #1
+\cs_set_protected:Npn \tag_socket_use:n #1
{
\bool_if:NT \l_@@_active_socket_bool
- { \UseSocket {tagsupport/#1} }
+ { \socket_use:n {tagsupport/#1} }
}
% \end{macrocode}
%
@@ -430,22 +451,58 @@
\cs_set_protected:Npn \tag_socket_use:nn #1#2
{
\bool_if:NT \l_@@_active_socket_bool
- { \UseSocket {tagsupport/#1} {#2} }
+ { \socket_use:nn {tagsupport/#1} {#2} }
}
% \end{macrocode}
%
% \begin{macrocode}
+\cs_set_protected:Npn \tag_socket_use:nnn #1#2#3
+ {
+ \bool_if:NT \l_@@_active_socket_bool
+ { \socket_use:nnn {tagsupport/#1} {#2} {#3} }
+ }
+% \end{macrocode}
+% \begin{macrocode}
+\cs_set:Npn \tag_socket_use_expandable:n #1
+ {
+ \bool_if:NT \l_@@_active_socket_bool
+ { \socket_use_expandable:n {tagsupport/#1} }
+ }
+% \end{macrocode}
+% \begin{macrocode}
\cs_set_protected:Npn \UseTaggingSocket #1
{
\bool_if:NTF \l_@@_active_socket_bool
- { \UseSocket{tagsupport/#1} }
+ { \socket_use:nw {tagsupport/#1} }
+ {
+ \int_case:nnF
+ { \int_use:c { c__socket_tagsupport/#1_args_int } }
+ {
+ 0 \prg_do_nothing:
+ 1 \use_none:n
+ 2 \use_ii:nn
+% \end{macrocode}
+% We do not expect tagging sockets with more than one or two
+% arguments, so for now we only provide those.
+% \begin{macrocode}
+ }
+ \ERRORusetaggingsocket
+ }
+ }
+% \end{macrocode}
+
+% \begin{macrocode}
+\cs_set:Npn \UseExpandableTaggingSocket #1
+ {
+ \bool_if:NTF \l_@@_active_socket_bool
+ { \socket_use_expandable:nw {tagsupport/#1} }
{
\int_case:nnF
{ \int_use:c { c__socket_tagsupport/#1_args_int } }
{
0 \prg_do_nothing:
1 \use_none:n
- 2 \use_none:nn
+ 2 \use_ii:nn
% \end{macrocode}
% We do not expect tagging sockets with more than one or two
% arguments, so for now we only provide those.
@@ -866,9 +923,9 @@
{\tagmcbegin{tag=Lbl}}
{#1}
}
- \tag_stop:n{hangfrom}
+ \tag_suspend:n{hangfrom}
\hangindent \wd\@tempboxa\noindent
- \tag_start:n{hangfrom}
+ \tag_resume:n{hangfrom}
\tagmcbegin{}\box\@tempboxa\tagmcend\tagstructend\tagmcbegin{}
}
}
@@ -976,83 +1033,88 @@
% at some time) and a more sophisticated one that must
% be used if the block code is used.
% It is possible that we will need more variants, so
-% we setup a socket so that the code can be easily switched.
+% we setup a socket so that the code can be easily switched.
+% This code should move into lttagging, so we add a test for
+% the transition.
% \begin{macrocode}
-\socket_new:nn {tagsupport/para/begin}{0}
-\socket_new:nn {tagsupport/para/end}{0}
-
-\socket_new_plug:nnn{tagsupport/para/begin}{plain}
+\str_if_exist:cF { l__socket_tagsupport/para/begin_plug_str }
{
- \bool_if:NT \l_@@_para_bool
+ \socket_new:nn {tagsupport/para/begin}{0}
+ \socket_new:nn {tagsupport/para/end}{0}
+
+ \socket_new_plug:nnn{tagsupport/para/begin}{plain}
{
- \bool_if:NF \l_@@_para_flattened_bool
- {
- \@@_gincr_para_main_begin_int:
- \tag_struct_begin:n
+ \bool_if:NT \l_@@_para_bool
+ {
+ \bool_if:NF \l_@@_para_flattened_bool
{
- tag=\l_@@_para_main_tag_tl,
+ \@@_gincr_para_main_begin_int:
+ \tag_struct_begin:n
+ {
+ tag=\l_@@_para_main_tag_tl,
+ }
+ \@@_para_main_store_struct:
}
- \@@_para_main_store_struct:
- }
- \@@_gincr_para_begin_int:
- \tag_struct_begin:n {tag=\l_@@_para_tag_tl}
- \@@_check_para_begin_show:nn {green}{}
- \tag_mc_begin:n {}
- }
- }
-\socket_new_plug:nnn{tagsupport/para/begin}{block}
- {
- \bool_if:NT \l_@@_para_bool
+ \@@_gincr_para_begin_int:
+ \tag_struct_begin:n {tag=\l_@@_para_tag_tl}
+ \@@_check_para_begin_show:nn {green}{}
+ \tag_mc_begin:n {}
+ }
+ }
+ \socket_new_plug:nnn{tagsupport/para/begin}{block}
{
- \legacy_if:nF { @inlabel }
+ \bool_if:NT \l_@@_para_bool
{
- \@@_check_typeout_v:n
- {==>~ @endpe = \legacy_if:nTF { @endpe }{true}{false} \on@line }
- \legacy_if:nF { @endpe }
- {
- \bool_if:NF \l_@@_para_flattened_bool
- {
- \@@_gincr_para_main_begin_int:
- \tag_struct_begin:n
- {
- tag=\l_@@_para_main_tag_tl,
- attribute-class=\l_@@_para_main_attr_class_tl,
- }
- \@@_para_main_store_struct:
+ \legacy_if:nF { @inlabel }
+ {
+ \@@_check_typeout_v:n
+ {==>~ @endpe = \legacy_if:nTF { @endpe }{true}{false} \on@line }
+ \legacy_if:nF { @endpe }
+ {
+ \bool_if:NF \l_@@_para_flattened_bool
+ {
+ \@@_gincr_para_main_begin_int:
+ \tag_struct_begin:n
+ {
+ tag=\l_@@_para_main_tag_tl,
+ attribute-class=\l_@@_para_main_attr_class_tl,
+ }
+ \@@_para_main_store_struct:
+ }
}
- }
- \@@_gincr_para_begin_int:
- \@@_check_typeout_v:n {==>~increment~ P \on@line }
- \tag_struct_begin:n
- {
- tag=\l_@@_para_tag_tl
- ,attribute-class=\l_@@_para_attr_class_tl
- }
- \@@_check_para_begin_show:nn {green}{\PARALABEL}
- \tag_mc_begin:n {}
- }
- }
- }
+ \@@_gincr_para_begin_int:
+ \@@_check_typeout_v:n {==>~increment~ P \on@line }
+ \tag_struct_begin:n
+ {
+ tag=\l_@@_para_tag_tl
+ ,attribute-class=\l_@@_para_attr_class_tl
+ }
+ \@@_check_para_begin_show:nn {green}{\PARALABEL}
+ \tag_mc_begin:n {}
+ }
+ }
+ }
% \end{macrocode}
% there was no real difference between the original and
% in the block variant, only a debug message. We therefore
% define only a plain variant.
% \begin{macrocode}
-\socket_new_plug:nnn{tagsupport/para/end}{plain}
- {
- \bool_if:NT \l_@@_para_bool
+ \socket_new_plug:nnn{tagsupport/para/end}{plain}
{
- \@@_gincr_para_end_int:
- \@@_check_typeout_v:n {==>~increment~ /P \on@line }
- \tag_mc_end:
- \@@_check_para_end_show:nn {red}{}
- \tag_struct_end:
- \bool_if:NF \l_@@_para_flattened_bool
- {
- \@@_gincr_para_main_end_int:
- \tag_struct_end:
- }
- }
+ \bool_if:NT \l_@@_para_bool
+ {
+ \@@_gincr_para_end_int:
+ \@@_check_typeout_v:n {==>~increment~ /P \on@line }
+ \tag_mc_end:
+ \@@_check_para_end_show:nn {red}{}
+ \tag_struct_end:
+ \bool_if:NF \l_@@_para_flattened_bool
+ {
+ \@@_gincr_para_main_end_int:
+ \tag_struct_end:
+ }
+ }
+ }
}
% \end{macrocode}
% By default we assign the plain plug:
@@ -1166,7 +1228,7 @@
% \tagpdfparaOff
% }
% This two command switch para mode on and off. |\tagpdfsetup| could be used
-% too but is longer. An alternative is |\tag_tool:n{para=false}|
+% too but is longer. An alternative is |\tag_tool:n{para/tagging=false}|
% \begin{macrocode}
%<base>\newcommand\tagpdfparaOn {}
%<base>\newcommand\tagpdfparaOff{}
@@ -1246,11 +1308,11 @@
\bool_gset_false:N \g_@@_in_mc_bool
}
\tag_mc_begin:n {artifact}
- \tag_stop:n{headfoot}
+ \tag_suspend:n{headfoot}
}
\cs_new_protected:Npn \@@_exclude_headfoot_end:
{
- \tag_start:n{headfoot}
+ \tag_resume:n{headfoot}
\tag_mc_end:
\bool_if:NTF \g_@@_mode_lua_bool
{
@@ -1277,12 +1339,12 @@
}
\tag_struct_begin:n{tag=Artifact,attribute-class=@@/attr/#1}
\tag_mc_begin:n {artifact=#1}
- \tag_stop:n{headfoot}
+ \tag_suspend:n{headfoot}
}
\cs_new_protected:Npn \@@_exclude_struct_headfoot_end:
{
- \tag_start:n{headfoot}
+ \tag_resume:n{headfoot}
\tag_mc_end:
\tag_struct_end:
\bool_if:NTF \g_@@_mode_lua_bool
diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx
index b1d008a6e6..eed54ca191 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf.dtx
@@ -21,68 +21,128 @@
% https://github.com/latex3/tagpdf
%
% for those people who are interested.
-%
+%<*driver>
+\DocumentMetadata{}
+\documentclass{l3doc}
+\usepackage{array,booktabs,caption}
+\hypersetup{pdfauthor=Ulrike Fischer,
+ pdftitle=tagpdf (main module)}
+\input{tagpdf-docelements}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
% \fi
+% \title{^^A
+% The \pkg{tagpdf} main module
+% \\ Part of the tagpdf package
+% }
+%
+% \author{^^A
+% Ulrike Fischer\thanks
+% {^^A
+% E-mail:
+% \href{mailto:fischer@troubleshooting-tex.de}
+% {fischer@troubleshooting-tex.de}^^A
+% }^^A
+% }
+%
+% \date{Version 0.99g, released 2024-10-27}
+% \maketitle%
+%
% \begin{documentation}
-% \begin{function}{
-% \tag_stop:, \tag_start:,
-% \tagstop, \tagstart }
+% \begin{function}{\tag_suspend:n, \tag_resume:n,\tag_stop:n, \tag_start:n }%
+% \begin{syntax}
+% \cs{tag_suspend:n}\Arg{label}\\
+% \cs{tag_resume:n}\Arg{label}\\
+% \cs{tag_stop:n}\Arg{label} (\emph{deprecated})\\
+% \cs{tag_start:n}\Arg{label} (\emph{deprecated})
+% \end{syntax}
% We need commands to stop tagging in some places.
% They switches three local booleans and also stop the counting
-% of paragraphs. If they are nested an inner \cs{tag_start:} will not
-% restart tagging.
+% of paragraphs. If they are nested an inner \cs{tag_resume:n} will not
+% restart tagging.
+% \meta{label} is only used in debugging messages to allow to follow the nesting
+% and to identify which code is disabling the tagging.
+% The label is not expanded so can be a single token, e.g. |\caption|.
+% |\tag_suspend:n| and |\tag_resume:n| are the l3-layer variants of
+% |\SuspendTagging| and |\ResumeTagging| and will be provided by the kernel
+% in the next release.
% \end{function}
-%
-% \begin{function}{\tag_stop:n, \tag_start:n }%
-% \begin{syntax}
-% \cs{tag_stop:n}\Arg{label}
-% \cs{tag_start:n}\Arg{label}\\
-% \end{syntax}
-% The commands with argument allow to give a label. This is only used
-% in debugging messages to allow to follow the nesting.
+%
+% \begin{function}{
+% \tag_stop:, \tag_start:,
+% \tagstop, \tagstart }
+% \emph{deprecated} These are variants of the above commands
+% without the debuging level. They are now deprecated and it
+% is recommended to use the kernel command
+% |\SuspendTagging|, |\ResumeTagging|, |\tag_suspend:n| and |\tag_resume:n|
+% instead.
% \end{function}
%
-% \begin{function}{activate/spaces (setup-key)}
+%
+% \begin{setupkeydecl}{activate/spaces}
% |activate/spaces| activates the additional parsing needed for
% interword spaces. It replaces the deprecated key |interwordspace|.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{activate/mc (setup-key),
-% activate/tree (setup-key),
-% activate/struct (setup-key),
-% activate/all (setup-key),
+% \begin{setupkeydecl}{activate/mc,
% activate-mc (deprecated),
+% }
+% A key to to activate the marked content code. It should be used
+% only in special cases, e.g. for debugging.
+% \end{setupkeydecl}
+%
+% \begin{setupkeydecl}{
+% activate/tree,
% activate-tree (deprecated),
+% }
+% This key activates the code that finalize the
+% various trees. It should be used
+% only in special cases, e.g. for debugging.
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{
+% activate/struct,
% activate-struct (deprecated),
+% }
+% This key activates the code for structures.
+% It should be used
+% only in special cases, e.g. for debugging.
+% \end{setupkeydecl}
+%
+% \begin{setupkeydecl}{
+% activate/all,
% activate-all (deprecated),
% }
-% Keys to activate the various tagging steps.
-% \end{function}
-%\begin{function}{activate/struct-dest (setup-key),no-struct-dest (deprecated)}
+% This is a meta key for the three previous keys
+% and is normally what should be used to activate tagging.
+% \end{setupkeydecl}
+%
+%\begin{setupkeydecl}{activate/struct-dest,no-struct-dest (deprecated)}
% The key allows to suppress the creation of structure destinations
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{debug/log (setup-key)}
+% \begin{setupkeydecl}{debug/log}
% The |debug/log| key takes currently the values |none|, |v|, |vv|, |vvv|, |all|.
% More details are in \texttt{tagpdf-checks}.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{activate/tagunmarked (setup-key), tagunmarked (deprecated) }
+% \begin{setupkeydecl}{activate/tagunmarked, tagunmarked (deprecated) }
% This key allows to set if (in luamode) unmarked text should be
% marked up as artifact. The initial value is true.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{activate/softhyphen (setup-key)}
+% \begin{setupkeydecl}{activate/softhyphen}
% This key allows to activates automatic handling of hyphens inserted
% by hyphenation. It only is used in luamode and replaces hyphens
% by U+00AD if the font supports this.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{page/tabsorder (setup-key), tabsorder (deprecated)}
+% \begin{setupkeydecl}{page/tabsorder, tabsorder (deprecated)}
% This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default)
% or |none|. Currently this is set more or less globally. More finer control can be
% added if needed.
-% \end{function}
+% \end{setupkeydecl}
%
% \begin{function}{tagstruct,tagstructobj,tagabspage,tagmcabs,tagmcid}
% These are attributes used by the label/ref system.
@@ -93,8 +153,8 @@
% \begin{macrocode}
%<@@=tag>
%<*package>
-\ProvidesExplPackage {tagpdf} {2024-08-02} {0.99d}
- { A package to experiment with pdf tagging }
+\ProvidesExplPackage {tagpdf} {2024-10-27} {0.99g}
+ { LaTeX kernel code for PDF tagging }
\bool_if:nF
{
@@ -119,7 +179,7 @@
% \end{macrocode}
%<*debug>
% \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-debug} {2024-10-27} {0.99g}
{ debug code for tagpdf }
\@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
% \end{macrocode}
@@ -142,7 +202,7 @@
% we define a base package with dummy functions
% \begin{macrocode}
%<*base>
-\ProvidesExplPackage {tagpdf-base} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdf-base} {2024-10-27} {0.99g}
{part of tagpdf - provide base, no-op versions of the user commands }
%</base>
% \end{macrocode}
@@ -191,34 +251,31 @@
}
%</base>
% \end{macrocode}
-% \subsection{Indexed objects}
-% 2024-04-11: Temporary code! Can be removed after the next expl3 release!
+% \subsection{Patches related to Ref improvement}
+% 2024-09-09: Temporary code. Can be removed when the latex-lab-footnote
+% and latex-lab-toc code have been adapted to the better Ref handling.
% \begin{macrocode}
-\cs_if_free:NT \pdf_object_new_indexed:nn
- {
- \cs_generate_variant:Nn \pdf_object_new:n {e}
- \cs_generate_variant:Nn \pdf_object_write:nnn {enn}
- \cs_new_protected:Npn \pdf_object_new_indexed:nn #1 #2
- {
- \pdf_object_new:e {#1/\int_eval:n{#2}}
- }
- \cs_new_protected:Npn \pdf_object_write_indexed:nnnn #1 #2 #3 #4
- {
- \pdf_object_write:enn {#1/\int_eval:n{#2}}{#3}{#4}
- }
- \cs_generate_variant:Nn \pdf_object_write_indexed:nnnn {nnne}
- \cs_new:Npn\pdf_object_ref_indexed:nn #1 #2
- {
- \pdf_object_ref:e {#1/\int_eval:n{#2}}
- }
- \cs_new:Npn \__kernel_pdf_object_id_indexed:nn #1 #2
- {
- \int_use:c
- { c__pdf_object_ #1/\int_eval:n{#2} _int }
- }
- }
-
+%<*package>
+\AddToHook{package/latex-lab-testphase-new-or-2/after}
+ {
+ \cs_set_protected:Npn \__fnote_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2
+ {
+ \tag_struct_gput:nnn {#1}{ref_num}{#2}
+ }
+ }
+\AddToHook{package/latex-lab-testphase-toc/after}
+ {
+ \cs_set_protected:Npn \g_@@_struct_ref_by_dest:
+ {
+ \prop_map_inline:Nn\g_@@_struct_ref_by_dest_prop
+ {
+ \tag_struct_gput:nnn {##1}{ref_dest}{##2}
+ }
+ }
+ }
+%</package>
% \end{macrocode}
+%
% \subsection{a LastPage label}
% See also issue \#2 in Accessible-xref
% \begin{macro}{\@@_lastpagelabel:}
@@ -251,6 +308,7 @@
% {
% \l_@@_tmpa_tl,
% \l_@@_tmpb_tl,
+% \l_@@_Ref_tmpa_tl,
% \l_@@_get_tmpc_tl,
% \l_@@_get_parent_tmpa_tl
% \l_@@_get_parent_tmpb_tl
@@ -267,6 +325,7 @@
% \begin{macrocode}
\tl_new:N \l_@@_tmpa_tl
\tl_new:N \l_@@_tmpb_tl
+\tl_new:N \l_@@_Ref_tmpa_tl
\tl_new:N \l_@@_get_tmpc_tl
\tl_new:N \l_@@_get_parent_tmpa_tl
\tl_new:N \l_@@_get_parent_tmpb_tl
@@ -382,24 +441,10 @@
% \end{macrocode}
%
% \section{Label and Reference commands}
-% To ease transition to properties we setup internal definition. They can be replaced
-% by the property definitions once that is released.
-% %** do it!
-% \begin{macro}{\@@_property_new:nnnn,\@@_property_gset:nnnn,\@@_property_ref:nnn}
-% At first a command to define new properties
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_new:nnnn \property_new:nnnn
-% \end{macrocode}
-% For the non-shipout code we need also the option to reset property
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_gset:nnnn \property_gset:nnnn
-% \end{macrocode}
-% The command to reference while giving a local default.
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_ref:nnn \property_ref:nnn
- \cs_new_eq:NN \@@_property_ref:nn \property_ref:nn
-% \end{macrocode}
-% The command to record
+% The code uses mostly the kernel properties but need a few local variants.
+% \begin{macro}{\@@_property_record:nn}
+% The command to record a property while preserving the spaces similar to the standard
+% \cs{label}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_property_record:nn #1#2
{
@@ -411,8 +456,8 @@
% \end{macrocode}
% And a few variants
% \begin{macrocode}
-\cs_generate_variant:Nn \@@_property_ref:nnn {enn}
-\cs_generate_variant:Nn \@@_property_ref:nn {en}
+\cs_generate_variant:Nn \property_ref:nnn {enn}
+\cs_generate_variant:Nn \property_ref:nn {en}
\cs_generate_variant:Nn \@@_property_record:nn {en,eV}
% \end{macrocode}
% \end{macro}
@@ -423,7 +468,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_property_ref_lastpage:nn #1 #2
{
- \@@_property_ref:nnn {@tag@LastPage}{#1}{#2}
+ \property_ref:nnn {@tag@LastPage}{#1}{#2}
}
% \end{macrocode}
%\end{macro}
@@ -440,21 +485,21 @@
% With mc-chunks we store the absolute page number |tagabspage|,
% the absolute id |tagmcabc|, and the id on the page |tagmcid|.
% \begin{macrocode}
-\@@_property_new:nnnn
+\property_new:nnnn
{ tagstruct } { now }
- {0} { \int_use:N \c@g_@@_struct_abs_int }
-\@@_property_new:nnnn { tagstructobj } { now } {}
+ {1} { \int_use:N \c@g_@@_struct_abs_int }
+\property_new:nnnn { tagstructobj } { now } {}
{
\pdf_object_ref_indexed:nn { @@/struct } { \c@g_@@_struct_abs_int }
}
-\@@_property_new:nnnn
+\property_new:nnnn
{ tagabspage } { shipout }
{0} { \int_use:N \g_shipout_readonly_int }
-\@@_property_new:nnnn { tagmcabs } { now }
+\property_new:nnnn { tagmcabs } { now }
{0} { \int_use:N \c@g_@@_MCID_abs_int }
\flag_new:n { @@/mcid }
-\@@_property_new:nnnn {tagmcid } { shipout }
+\property_new:nnnn {tagmcid } { shipout }
{0} { \flag_height:n { @@/mcid } }
% \end{macrocode}
@@ -482,6 +527,7 @@
\cs_set_eq:NN \@@_seq_new:N \seq_new:N
\cs_set_eq:NN \@@_prop_gput:Nnn \prop_gput:Nnn
\cs_set_eq:NN \@@_seq_gput_right:Nn \seq_gput_right:Nn
+\cs_set_eq:NN \@@_seq_gput_left:Nn \seq_gput_left:Nn
\cs_set_eq:NN \@@_seq_item:cn \seq_item:cn
\cs_set_eq:NN \@@_prop_item:cn \prop_item:cn
\cs_set_eq:NN \@@_seq_show:N \seq_show:N
@@ -489,6 +535,7 @@
% cnx temporary needed for latex-lab-graphic code
\cs_generate_variant:Nn \@@_prop_gput:Nnn { Nen , Nee, Nne , cnn, cen, cne, cno, cnx}
\cs_generate_variant:Nn \@@_seq_gput_right:Nn { Ne , No, cn, ce }
+\cs_generate_variant:Nn \@@_seq_gput_left:Nn { ce }
\cs_generate_variant:Nn \@@_prop_new:N { c }
\cs_generate_variant:Nn \@@_seq_new:N { c }
\cs_generate_variant:Nn \@@_seq_show:N { c }
@@ -500,6 +547,7 @@
% \section{General tagging commands}
%
% \begin{macro}{
+% \tag_suspend:n,\tag_resume:n,
% \tag_stop:,\tag_start:,
% \tag_stop:n,\tag_start:n}
% We need commands to stop tagging in some places.
@@ -508,7 +556,8 @@
% counter. Tagging only is only restarted at the outer level,
% if the current level is 1.
% The commands with argument allow to give a label. This is only used
-% in debugging messages to allow to follow the nesting.
+% in debugging messages to allow to follow the nesting. The label is
+% not expand so can e.g. be a single command token.
%
% \begin{variable}{\l_@@_tag_stop_int}
% When stop/start pairs are nested we do not want the inner
@@ -525,7 +574,7 @@
% \begin{macrocode}
\cs_set_protected:Npn \tag_stop:
{
-%<debug> \msg_note:nne {tag / debug }{tag-stop}{ \int_use:N \l_@@_tag_stop_int }
+%<debug> \msg_note:nne {tag / debug }{tag-suspend}{ \int_use:N \l_@@_tag_stop_int }
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
@@ -542,22 +591,24 @@
\bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
}
-%<debug> \msg_note:nne {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }
+%<debug> \msg_note:nne {tag / debug }{tag-resume}{ \int_use:N \l_@@_tag_stop_int }
}
\cs_set_eq:NN\tagstop\tag_stop:
\cs_set_eq:NN\tagstart\tag_start:
% \end{macrocode}
% \begin{macrocode}
-\cs_set_protected:Npn \tag_stop:n #1
+\cs_set_protected:Npn \tag_suspend:n #1
{
-%<debug> \msg_note:nnee {tag / debug }{tag-stop}{ \int_use:N \l_@@_tag_stop_int }{#1}
+%<debug> \msg_note:nnee {tag / debug }{tag-suspend}
+%<debug> { \int_use:N \l_@@_tag_stop_int }{\exp_not:n{#1}}
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
\bool_set_false:N \l_@@_active_socket_bool
\@@_stop_para_ints:
}
-\cs_set_protected:Npn \tag_start:n #1
+\cs_set_eq:NN \tag_stop:n \tag_suspend:n
+\cs_set_protected:Npn \tag_resume:n #1
{
\int_if_zero:nF { \l_@@_tag_stop_int } { \int_decr:N \l_@@_tag_stop_int }
\int_if_zero:nT { \l_@@_tag_stop_int }
@@ -566,9 +617,11 @@
\bool_set_true:N \l_@@_active_mc_bool
\bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
- }
-%<debug> \msg_note:nnee {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }{#1}
+ }
+%<debug> \msg_note:nnee {tag / debug }{tag-resume}
+%<debug> { \int_use:N \l_@@_tag_stop_int }{\exp_not:n{#1}}
}
+\cs_set_eq:NN \tag_start:n \tag_resume:n
%</package|debug>
%<*base>
\cs_new_protected:Npn \tag_stop:{}
@@ -577,6 +630,11 @@
\cs_new_protected:Npn \tagstart{}
\cs_new_protected:Npn \tag_stop:n #1 {}
\cs_new_protected:Npn \tag_start:n #1 {}
+% \end{macrocode}
+% Until the commands are provided by the kernel we provide them here too
+% \begin{macrocode}
+\cs_set_eq:NN \tag_suspend:n \tag_stop:n
+\cs_set_eq:NN \tag_resume:n \tag_start:n
%</base>
% \end{macrocode}
% \end{macro}
@@ -586,13 +644,13 @@
%
% TODO: the log-levels must be sorted
%
-% \begin{macro}
+% \begin{setupkeydecl}
% {
-% activate/mc (setup-key),
-% activate/tree (setup-key),
-% activate/struct (setup-key),
-% activate/all (setup-key),
-% activate/struct-dest (setup-key),
+% activate/mc,
+% activate/tree,
+% activate/struct,
+% activate/all,
+% activate/struct-dest,
% }
% Keys to (globally) activate tagging.
% |activate/spaces| activates the additional parsing needed for
@@ -620,14 +678,14 @@
activate-all .default:n = true,
no-struct-dest .bool_gset_inverse:N = \g_@@_active_struct_dest_bool,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{debug/show (setup-key)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{debug/show}
% Subkeys/values are defined in various other places.
% \begin{macrocode}
debug/show .choice:,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{debug/log (setup-key), debug/uncompress (setup-key), log (deprecated), uncompress (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{debug/log, debug/uncompress, log (deprecated), uncompress (deprecated)}
% The |log| takes currently the values |none|, |v|, |vv|, |vvv|, |all|.
% The description of the log levels is in tagpdf-checks.
% \begin{macrocode}
@@ -648,8 +706,8 @@
log .meta:n = {debug/log={#1}},
uncompress .code:n = { \pdf_uncompress: },
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{activate/tagunmarked (setup-key),tagunmarked (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{activate/tagunmarked,tagunmarked (deprecated)}
% This key allows to set if (in luamode) unmarked text should be
% marked up as artifact. The initial value is true.
% \begin{macrocode}
@@ -660,15 +718,15 @@
% \begin{macrocode}
tagunmarked .bool_gset:N = \g_@@_tagunmarked_bool,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{activate/softhyphen (setup-key)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{activate/softhyphen}
% This key activates (in luamode) the handling of soft hyphens.
% \begin{macrocode}
activate/softhyphen .bool_gset:N = \g_@@_softhyphen_bool,
activate/softhyphen .initial:n = true,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{page/tabsorder (setup-key),tabsorder (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{page/tabsorder,tabsorder (deprecated)}
% This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default)
% or |none|. Currently this is set more or less globally. More finer control can be
% added if needed.
@@ -689,7 +747,7 @@
tabsorder .meta:n = {page/tabsorder={#1}},
}
% \end{macrocode}
-% \end{macro}
+% \end{setupkeydecl}
% \section{loading of engine/more dependent code}
% \begin{macrocode}
\sys_if_engine_luatex:T
diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf
index f7c6ea02a3..ec39e603a2 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex
index 10d36d09a0..e49d605b58 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf.tex
@@ -16,8 +16,8 @@
}
\DebugBlocksOff
\makeatletter
-\def\UlrikeFischer@package@version{0.99d}
-\def\UlrikeFischer@package@date{2024-08-02}
+\def\UlrikeFischer@package@version{0.99g}
+\def\UlrikeFischer@package@date{2024-10-27}
\makeatother
\documentclass[bibliography=totoc,a4paper]{article}
@@ -99,7 +99,7 @@ in the \pkg{latex-lab} bundle for the Tagged PDF project (i.e., loaded by that c
The package is developed and improved in parallel with the code in the \pkg{latex-lab}
bundle (part of the core \LaTeX{} distribution), the \pkg{pdfmanagement-testphase}
-package (the \LaTeX{} PDF management bundle) and the L3 programming layer (part of of the \LaTeX{} format).
+package (the \LaTeX{} PDF management bundle) and the L3 programming layer (part of the \LaTeX{} format).
That means you must ensure that all these components are up-to-date and in
sync which each other.
@@ -1031,7 +1031,7 @@ The key-val list understands the following keys:
marked but not stored in the kid-key of the current structure.
\item[\PrintKeyName{label}] This key sets a label by which you can call
- the marked content later in another structure (if it has been stashed
+ the marked content \emph{later} in another structure (if it has been stashed
with the previous key). Internally the label name will start with
\texttt{tagpdf-}.
@@ -1175,10 +1175,10 @@ This (expandable) command returns the values of some variables. Currently, the w
\item \verb+struct_counter+: This returns a number and works also if
only \pkg{tagpdf-base} has been loaded. It gives back the state of
- the absolute structure counter and so number of the last structure
+ the absolute structure counter and so the number of the last structure
that has been created. This can be used to detect if in a piece of
code there are structure commands. Be aware that this is a \LaTeX{}
- counter and so reset in some places.
+ counter and so is reset in some places.
\item \verb+mc_counter+: This returns a number and works also if only
\pkg{tagpdf-base} has been loaded. It gives back the state of the
@@ -1699,22 +1699,27 @@ The key-val list understands the following keys:
content and structures.
\item[\PrintKeyName{label}] This key sets a label by which one can
- refer to the structure. It is e.g. used by
- \cs{tag\_struct\_use:n} (where a real label is actually not needed
- as you can only use structures already defined), and by the |ref|
- key (which can refer to future structures). Internally the label
- name will start with \texttt{tagpdfstruct-} and it stores the two
+ refer to the structure. Currently the key writes a property whose
+ name starts with \texttt{tagpdfstruct-} to the aux-file with the two
attributes \texttt{tagstruct} (the structure number) and
- \texttt{tagstructobj} (the object reference).
+ \texttt{tagstructobj} (the object reference) but also stores the
+ name and the structure number into a prop for use in the current compilation.
+ The label is e.g. used by \cs{tag\_struct\_use:n} and by the |ref|
+ key (which can refer to future structures).
\item[\PrintKeyName{parent}] With the parent key one can choose another
parent. The value is a structure number which must refer to an
already existing, previously created structure. Such a structure
number can have been stored previously with \cs{tag\_get:n}, but one
can also use a label on the parent structure and then use
- \cs{ref\_value:nn}\verb+{tagpdfstruct-label}{tagstruct}+ to retrieve
+ \cs{property\_ref:nn}\verb+{tagpdfstruct-label}{tagstruct}+ to retrieve
it.
+ \item[\PrintKeyName{firstkid}] If this key is used the structure is
+ added at the left of the kids of the parent structure (if the structure is not stashed). This means that it will be the first kid of the structure (unless some
+ later structure uses the key too). This can be needed e.g. for a caption as
+ the PDF reference requires it to be the first or last kid of its structure.
+
\item[\PrintKeyName{alt}] This key inserts an \texttt{/Alt} value in the
dictionary of structure object, see section~\ref{sec:alt}. The value
is handled as verbatim string and hex encoded. The value will be
@@ -1852,7 +1857,9 @@ The key-val list understands the following keys:
structure. The value should be a comma separated list of
structure labels set with the |label| key.
e.g. |ref={label1,label2}|. It can be used more than once in the
- key/value argument and combines the references.
+ key/value argument and combines the references. See below
+ in section~\ref{sec:Refkey} for an extended discussion about the |/Ref|
+ array.
\item[\PrintKeyName{E}] This key sets the |/E| key, the expanded
form of an abbreviation or an acronym (I couldn't think of a
@@ -1877,6 +1884,25 @@ These commands insert a structure previously stashed away as kid into the
currently active structure. A structure should be used only once, if the
structure already has a parent you will get a warning.
+\subsubsection{Updating the \texttt{Ref} key in structures}\label{sec:Refkey}
+
+Structures that cross reference other structures, e.g. citation commands, table of
+content entries, footnote require often a \texttt{Ref} key. \texttt{Ref}
+can be added with the |ref| key of \cs{tagstructbegin} described above
+but as it is a task that often has to be done automatically in code
+there exist also a command that allows to extend the \texttt{Ref} key (and perhaps in future also other keys) later.
+This command allows to add the value, the target structure of the \texttt{Ref} key,
+with four methods: directly as object reference, through a label name set with the |label| key, through a destination name if a \cs{MakeLinkTarget} has been used in
+the target structure---this also works if hyperref has not been loaded---and through
+the structure number, which has been stored e.g. in a label.
+
+\begin{docCommands}
+ {
+ {doc name=tag_struct_gput:nnn,doc parameter=\marg{structurenumber}\marg{keyword}\marg{value}},
+ }\end{docCommands}
+
+The allowed \meta{keywords} are \texttt{ref}, \texttt{ref\_label} \texttt{ref\_dest}
+and \texttt{ref\_num}.
\subsubsection{Root structure}
@@ -2038,36 +2064,49 @@ or the output routine is called.
\begin{docCommands}
{
- {doc name=tag_stop:},
- {doc name=tag_start:},
- {doc name=tagstop},
- {doc name=tagstart},
- {doc name=tag_stop:n,doc parameter=\marg{label}},
- {doc name=tag_start:n,doc parameter=\marg{label}}
+ {doc name=tag_suspend:n,doc parameter=\marg{label}},
+ {doc name=tag_resume:n,doc parameter=\marg{label}}
}
\end{docCommands}
-This commands stop and start tagging in the current group by switching
+These commands suspend and resume tagging in the current group by switching
\emph{local} booleans. They also stop the increasing of the counters which
keep track of paragraphs if the correct wrapper commands are used.
Restarting tagging is normally only needed if groups can't be used and then
-must be done with care: |\tagstart| should normally only restart tagging if
+must be done with care: |\tag_resume:n| should normally only restart tagging if
the corresponding stop command actually stopped tagging. This is implement
through a local counter which keeps track of the level.
-The \meta{label} can be used to identify the command in debugging message.
+The \meta{label} can be used to identify the command in debugging message. The label is not expanded and so can for example be a single command token.
+
+The commands are the L3-layer versions of |\SuspendTagging| and |\ResumeTagging|
+and will be available in the kernel with the 2024 november release.
\begin{taglstlisting}
-\tag_stop:n{outer}
+\tag_suspend:n{\outercommand}
...
- \tag_stop:n{inner}
+ \tag_suspend:n{\innercommand}
...
- \tag_start:n{inner}
+ \tag_resume:n{\innercommand}
...
-\tag_start:n{outer}
+\tag_resume:n{\outercommand}
\end{taglstlisting}
+\begin{docCommands}
+ {
+ {doc name=tag_stop:},
+ {doc name=tag_start:},
+ {doc name=tagstop},
+ {doc name=tagstart},
+ {doc name=tag_stop:n,doc parameter=\marg{label}},
+ {doc name=tag_start:n,doc parameter=\marg{label}}
+ }
+\end{docCommands}
+
+These commands are now deprecated in favor or |\tag_suspend:n| and |\tag_resume:n|
+but are still provided for some time.
+
\subsection{Lazy and automatic tagging}\label{sec:lazy}
@@ -3029,7 +3068,11 @@ cases building the structure should now need only two or three
compilations. The new code requires a current pdfmanagement-testphase and
is then used automatically if the new engines are detected.
-\subsection{}
+\subsection{Changes in version 0.99f}
+
+Deprecated |\tag_start:|, |\tag_stop:|, |\tag_stop:n| and
+|\tag_start:n| in favor of |\tag_suspend:n| and |\tag_resume:n|.
+
\printbibliography[heading=bibintoc]
diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
index 6ae5840b11..463790565c 100644
--- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
@@ -1,5 +1,5 @@
%\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2024-08-02} {0.99d}
+\ProvidesExplPackage {tagpdfdocu-patches} {2024-10-27} {0.99g}
{patches/commands for the tagpdf documentation}
\RequirePackage{etoolbox,xpatch}
diff --git a/macros/latex/contrib/tcolorbox/CHANGES.md b/macros/latex/contrib/tcolorbox/CHANGES.md
index a0287ad4b2..bd48493c90 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES.md
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -22,6 +22,34 @@ and this project adheres to
+## [6.4.1] - 2024-10-22
+
+### Changed
+- Updated `zref-clever` support so that `label type` can also work with `label is label` (issue #295)
+- Documentation: change mention of `tikz` to `tikzfill.image` in skins description (issue #293)
+- `tcolorbox-tutorial-poster.tex`: Using `breakafterinrun` to break long sequences of dashes (issue #294)
+
+
+
+## [6.4.0] - 2024-09-27
+
+### Added
+- Libary `documentation`:
+ - `\refPkg` for referring packages on CTAN (issue #290)
+
+### Changed
+- Precautions for tikz options with square brackets (issue #284)
+- Usage warnings added for deprecated options `before example`, `after example`, and `graphical environment` (issue #284)
+- Documenation for TikZ Picture Option Keys adapted (issue #285)
+- Label `tcolorbox` added to LaTeX hooks (issue #287)
+- Libary `minted`: Minted option `envname` now supported by package `minted` directly (issue #2)
+
+### Fixed
+- Libary `minted`: `minted Warning: Macro \minted@def@optcl is deprecated with minted v3` (issue #2)
+- `tcolorbox-tutorial-poster.tex`: minted v3 seems to need escaped comma `\,` instead of `,` inside `breakafter`
+
+
+
## [6.3.0] - 2024-07-10
### Added
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
index e90e2bec18..d3f6affd07 100644
--- a/macros/latex/contrib/tcolorbox/README.md
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+# The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
> Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index cade134ab2..2ac98f28cd 100644
--- a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbbreakable.code.tex: Code for breakable colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{pdfcol}
\pdfcolInitStack{tcb@breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index a550de9fff..676c69caf0 100644
--- a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbdocumentation.code.tex: Code for LaTeX documentations
%%
%% -------------------------------------------------------------------------------------------
@@ -17,13 +17,13 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{listings,skins,external,raster}
\ifdefined\printindex\else%
\RequirePackage{makeidx}[2000/03/29]%
- \AddToHook{begindocument/before}{%
+ \AddToHook{begindocument/before}[tcolorbox]{%
\@ifpackageloaded{imakeidx}{%
\tcb@warning{`imakeidx' package should be loaded before `documentation' library}%
}{}}%
@@ -66,7 +66,7 @@
\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\def\meta@font@select{\rmfamily\itshape}
-\AtEndPreamble{%
+\AtEndPreamble[tcolorbox]{%
\@ifpackageloaded{doc}{%
}{% code taken from doc.sty
\ifx\l@nohyphenation\undefined
@@ -228,7 +228,7 @@
value=value,values=Values}},
}
-\AtBeginDocument{%
+\AtBeginDocument[tcolorbox]{%
\csname tcb@doc@index@\idx@format\endcsname%
\hypersetup{
citecolor=\kvtcb@colhyper,
@@ -922,7 +922,16 @@
\def\refKey{\tcb@ref@doc{key}}
\def\refPathOperation{\tcb@ref@doc{path}}
-\AtBeginDocument{%
+\NewDocumentCommand \refPkg { O{#2} m } {%
+ \href{https://ctan.org/pkg/#1}%
+ {%
+ \refAux{#2}%
+ \kvtcb@doc@format@page{{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char213}%
+ \,CTAN}%
+ }%
+}
+
+\AtBeginDocument[tcolorbox]{%
\ifHy@colorlinks
\def\refAux#1{\textcolor{\kvtcb@colhyper}{\tcb@scantokens{#1}}}%
\def\refAuxcs#1{\textcolor{\kvtcb@colhyper}{\tcb@cs{#1}}}%
@@ -1065,8 +1074,6 @@
% deprecated
\tcbset{
- before example/.store in=\kvtcb@beforeexample,
- after example/.store in=\kvtcb@afterexample,
- before example=\par\smallskip,
- after example=,
+ before example/.code = {\tcb@warning@deprecatedkey{v3.50 (2015/03/16)}},
+ after example/.code = {\tcb@warning@deprecatedkey{v3.50 (2015/03/16)}},
}
diff --git a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index 060f1bb9a0..b69f6089a2 100644
--- a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbexternal.code.tex: Code for externalization
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index e133063705..c042bfad40 100644
--- a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbfitting.code.tex: Code for fit boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\newdimen\tcbfitdim
\newdimen\tcb@lowerfitdim
diff --git a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index 6a60587177..79534fff84 100644
--- a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
diff --git a/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index 9a869f870f..c189baab3d 100644
--- a/macros/latex/contrib/tcolorbox/tcblistings.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcblistings.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{listings}[2007/02/22]
diff --git a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
index f3ffb31b90..6fc6f597cb 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index 0fb3fd8d22..69c651081d 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{listings}
diff --git a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index 49059a0863..1d6d55e60d 100644
--- a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbmagazine.code.tex: Code for box sets and magazine styles
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index d21bc11036..3380129f48 100644
--- a/macros/latex/contrib/tcolorbox/tcbminted.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbminted.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,12 +18,14 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{minted}[2021/12/24]
% to be removed, if integrated into the minted package (#281)
-\minted@def@optcl{envname}{-P envname}{#1}
+\IfPackageAtLeastTF{minted}{2024/08/25}{}{%
+ \minted@def@optcl{envname}{-P envname}{#1}%
+}
\tcbuselibrary{listings@core}
diff --git a/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index 3fcec6b22c..eaf2a7e8e9 100644
--- a/macros/latex/contrib/tcolorbox/tcbposter.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbposter.code.tex: Code for posters
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{breakable,magazine,skins,fitting}
diff --git a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
index a5bdabc874..55d595ce94 100644
--- a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbprocessing.code.tex: Code for conditional processing
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\ExplSyntaxOn
diff --git a/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index e3645497e9..9955d76a3e 100644
--- a/macros/latex/contrib/tcolorbox/tcbraster.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\newcounter{tcbrastercolumn}
\newcounter{tcbrasterrow}
diff --git a/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 5e3faed9dd..3917f90b9d 100644
--- a/macros/latex/contrib/tcolorbox/tcbskins.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbskins.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{tikzfill.image}
diff --git a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index 6a54fca567..58d1519396 100644
--- a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index cfbc1ba796..0d71f06470 100644
--- a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbtheorems.code.tex: Code for theorems in colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{amsmath}
diff --git a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index 51a4c9d6d0..8fbef36136 100644
--- a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbvignette.code.tex: Code for ornamental frames
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index 5223be23ea..f35617ba69 100644
--- a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcbxparse.code.tex: Code for xparse features
%%
%% -------------------------------------------------------------------------------------------
@@ -18,6 +18,6 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.1}
\RequirePackage{xparse}[2013/12/31]
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index 1e380d5559..7c44895ef9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
index cb8586e6ec..f05c43b331 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
index 2d332523c2..37defc93c6 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
index 6f878d2f1d..ecf620f622 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index f81aee0783..3fd463512d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
index 7c6c769d1d..ab70955520 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%%
%% This work consists of all files listed in README
%%
-% arara: pdflatex: { shell: yes }
-% arara: pdflatex: { shell: yes }
+% arara: pdflatex
+% arara: pdflatex
\documentclass[12pt]{article}
\usepackage[a3paper,landscape]{geometry}
@@ -1373,7 +1373,7 @@ Our poster is finished now. Just go to the next page to see the final result.
\tcbinputlisting{standard jigsaw,size=minimal,toprule=0.5mm,bottomrule=0.5mm,boxsep=2mm,
colback=white,opacityback=0.75,listing only,
enforce breakable,tcb@poster@boxheight,before skip=-\interlineskip,height fixed for=all,
- minted options={tabsize=2,fontsize=\small,breaklines,breakafter={,]-}},
+ minted options={tabsize=2,fontsize=\small,breaklines,breakafter={\,\]-},breakafterinrun},
listing file=tcolorbox-example-poster.tex}%
}
\end{tcbposter}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
index 00dc2198b2..288354d6b5 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{breakable}
\end{dispListing}
-This also loads the package |pdfcol|.
+This also loads the package \refPkg{pdfcol}.
\subsection{Technical Overview}
The library \mylib{breakable} supports the automatic breaking of a |tcolorbox|.
@@ -114,7 +114,7 @@ parameters. The differences are:
color changing commands, your color may not survive the break to the next box.
See the documentation for \refKey{/tcb/use color stack} for more information.
\item\tcbdocmarginnote{\tcbdocnew{2014-10-30}}
- The |perpage| option of the |footmisc| package is deliberately deactivated
+ The |perpage| option of the \refPkg{footmisc} package is deliberately deactivated
inside a breakable box since all footnotes are placed at the end
of the box (possibly far away from the reference point).
\item\tcbdocmarginnote{\tcbdocnew{2016-02-15}}
@@ -127,7 +127,7 @@ parameters. The differences are:
Lua\TeX\ version 0.95 changes the behavior of the basic |\vsplit| (a bug?!)
resulting in badly broken boxes. Thanks to Jeremy Engel,
the \mylib{breakable} library contains a patch for this which
- also loads the the |ifluatex| package.
+ also loads the the \refPkg{ifluatex} package.
\end{itemize}
@@ -315,7 +315,7 @@ The |break at| option can be used to insert better break points by hand.
color changing commands, your color may not survive the break to the next box.
For some engines, there is support for additional color stacks which
allow colors to survive breaks. Such an color stack can be activated
- by \refKey{/tcb/use color stack} with help of the |pdfcol| package.
+ by \refKey{/tcb/use color stack} with help of the \refPkg{pdfcol} package.
This can be done globally or per box.
\begin{marker}
Note that activating \refKey{/tcb/use color stack} inserts a color command with a \emph{whatsit}
@@ -326,9 +326,9 @@ The |break at| option can be used to insert better break points by hand.
\begin{itemize}
\item pdf\TeX: color stacks supported.
\item Lua\TeX: color stacks supported, but you should consider loading the
- |luacolor| package \emph{instead} which avoids the spacing problem.
+ \refPkg{luacolor} package \emph{instead} which avoids the spacing problem.
\item Xe\TeX: color stacks not supported (yet?). From hearsay,
- with the |fontspec| package, you may use |\addfontfeatures{Color=mycolor}|
+ with the \refPkg{fontspec} package, you may use |\addfontfeatures{Color=mycolor}|
to add a font color which survives the break.
\end{itemize}
If |pdfcol| cannot initialize an additional color stack for the used engine,
@@ -682,7 +682,7 @@ code which \emph{may} have to be adapted.
\begin{tcolorbox}[enhanced jigsaw,size=small,breakable,colback=yellow!10!white,
colframe=red!50!white,break at=3cm,height fixed for=all]
Unbreakable |tcolorbox|es can be used without special care inside a
-|multicols| environment from the |multicol| package \cite{mittelbach:multicol}.
+|multicols| environment from the \refPkg{multicol} package \cite{mittelbach:multicol}.
Since version 3.10, a breakable |tcolorbox| detects, if it is used inside
a |multicols| environment. But choosing break points for a breakable box
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
index c41134a6c8..34d6769fa4 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
@@ -465,7 +465,7 @@ done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
\end{dispExample}
-The next example uses |\lstinline| from the |listings| package to
+The next example uses |\lstinline| from the \refPkg{listings} package to
typeset the verbatim content.
\begin{dispExample}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 62f3fa3c01..6c4ffb27b1 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -2640,7 +2640,7 @@ Lower part.
\begin{docTcbKey}{varwidth upper}{\colOpt{=\meta{length}}}{style, default \refKey{/tcb/width}}
This style places the upper part content into a |varwidth| environment.
- This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+ This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
The resulting box has a maximal width of \meta{length}.
This option is only senseful for a \refCom{tcbox}.
\begin{exdispExample*}{varwidth_upper}{sbs,lefthand ratio=0.6}
@@ -3268,7 +3268,7 @@ text after
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
Sets the keys |before| and |after| to values which are
- recommended, if the package |parskip| \emph{is} used and there is no better
+ recommended, if the package \refPkg{parskip} \emph{is} used and there is no better
idea for |before| and |after|. This is similar to:
\begin{dispListing}
\tcbset{parskip/.style={before={\par\pagebreak[0]\parindent=0pt},
@@ -3281,7 +3281,7 @@ text after
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
Sets the keys |before| and |after| to values which are
- recommended, if the package |parskip| is \emph{not} used and there is no better
+ recommended, if the package \refPkg{parskip} is \emph{not} used and there is no better
idea for |before| and |after|. This is similar to:
\begin{dispListing}
\tcbset{noparskip/.style={before={\par\pagebreak[0]\smallskip\parindent=0pt},
@@ -3293,13 +3293,13 @@ text after
This options is considered to be superseded by
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
- Tries to detect the usage of the package |parskip| and sets
+ Tries to detect the usage of the package \refPkg{parskip} and sets
the keys |before| and |after| accordingly. Actually, the following is done:
\begin{itemize}
\item If the length of |\parskip| is greater than |0pt| at the beginning of the document,
- \refKey{/tcb/parskip} is executed. Here, the usage of package |parskip| is \emph{assumed}.
+ \refKey{/tcb/parskip} is executed. Here, the usage of package \refPkg{parskip} is \emph{assumed}.
\item Otherwise, if the length of |\parskip| is not greater than |0pt| at the beginning of the document,
- \refKey{/tcb/noparskip} is executed. Here, the absence of package |parskip| is \emph{assumed}.
+ \refKey{/tcb/noparskip} is executed. Here, the absence of package \refPkg{parskip} is \emph{assumed}.
\end{itemize}
\end{docTcbKey}
@@ -4315,7 +4315,7 @@ related operations which do not produce visible text.
\item Labels are ensured to reference the correct page number.
\item The \meta{code} is executed only once even during fitting operations for
title and box content.
-\item In combination with the |hyperref| package, the hyper anchor is set
+\item In combination with the \refPkg{hyperref} package, the hyper anchor is set
to the upper left corner of the |tcolorbox|, i.\,e.\ links inside the pdf document
will jump to the box pleasantly.
\item Since the \meta{code} is executed inside a \TeX\ group, only global
@@ -4343,8 +4343,8 @@ Note that this option is not getting reset by \refKey{/tcb/reset}.
\begin{docTcbKey}[][doc new=2023-02-08]{label is zlabel}{}{no value, initially unset}
Sets |\zlabel| as labelling for |tcolorbox| (global or per box).
When \refKey{/tcb/label} and friends are used, the underlying labeling macro is |\zlabel|.
-This needs the |zref| package \cite{oberdiek:zref} or packages building upon |zref| to be loaded.
-References can be made by |\zref|. If the |zref-clever| package \cite{barros:zref-clever} is loaded,
+This needs the \refPkg{zref} package \cite{oberdiek:zref} or packages building upon \refPkg{zref} to be loaded.
+References can be made by |\zref|. If the \refPkg{zref-clever} package \cite{barros:zref-clever} is loaded,
|\zcref|, |\zcpageref|, and similar macros can be applied.
Note that this option is not getting reset by \refKey{/tcb/reset}.
\end{docTcbKey}
@@ -4362,7 +4362,7 @@ from page \pageref{sec:numberedboxes}, e.\,g.\ \refKey{/tcb/new/auto counter}.
\begin{docTcbKey}[][doc new=2014-11-28]{phantomlabel}{=\meta{marker}}{no default, initially unset}
Equivalent to \refKey{/tcb/label} for an \emph{unnumbered} box.
-A |\phantomsection| from the package |hyperref| \cite{rahtz:hyperref} is used to set a correct
+A |\phantomsection| from the package \refPkg{hyperref} \cite{rahtz:hyperref} is used to set a correct
hyperlink target.
This is not needed and should typically not be used for a numbered box.
\end{docTcbKey}
@@ -4385,20 +4385,21 @@ from page \pageref{sec:numberedboxes}.
\end{docTcbKey}
-\begin{docTcbKey}[][doc updated=2023-02-09]{label type}{=\meta{type}}{no default, initially unset}
+\begin{docTcbKey}[][doc updated=2024-10-22]{label type}{=\meta{type}}{no default, initially unset}
This option has a different meaning based upon the chosen labeling mechanism.
\begin{itemize}
\item If \refKey{/tcb/label is label} is active:\par
- The option key \refKey{/tcb/label type} can be used only in conjunction with the |cleveref| package
- \cite{cubitt:2018a} which has to be loaded separately.
+ The option key \refKey{/tcb/label type} can be used in conjunction with the \refPkg{cleveref} package
+ \cite{cubitt:2018a} or the \refPkg{zref-clever} package \cite{barros:zref-clever}
+ which have to be loaded separately.
\meta{type} has to be a cross-reference type \emph{known} to |cleveref|
like |theorem|, |algorithm|, |result|, etc. References made with |cleveref|
- will use this type. Note that using |label type| will result in compilation
- errors, if |cleveref| is not loaded.
- For an example, see \Vref{theo:meanvaluetheorem}.
+ will use this type. For an example, see \Vref{theo:meanvaluetheorem}.
+ Recent versions of \refPkg{zref-clever} also work with \refKey{/tcb/label is label}
+ and \refKey{/tcb/label type} can be used as described below for \refKey{/tcb/label is zlabel}.
\item If \refKey{/tcb/label is zlabel} is active:\par
- The option key \refKey{/tcb/label type} can be used only in conjunction with the |zref-clever| package
- \cite{barros:zref-clever}
+ The option key \refKey{/tcb/label type} can be used only in conjunction with the
+ \refPkg{zref-clever} package \cite{barros:zref-clever}
which has to be loaded separately.
\meta{type} has to be a cross-reference type \emph{known} to |zref-clever|.
This \meta{type} is bound to an automatic |tcolorbox| counter which has to be set up using
@@ -4419,9 +4420,9 @@ Removes a \refKey{/tcb/label type}, if set before.
\clearpage
\begin{docTcbKey}[][doc new and updated={2016-06-22}{2023-02-08}]{nameref}{=\meta{text}}{no default, initially unset}
-If the |nameref| package is loaded, the given \meta{text} is used for
+If the \refPkg{nameref} package is loaded, the given \meta{text} is used for
corresponding |\nameref| macros.
-If the |zref-titleref| package is loaded, the given \meta{text} is used to
+If the \refPkg{zref-titleref} package is loaded, the given \meta{text} is used to
set the reference text for |\ztitleref|.
Typically, the \meta{text} will be chosen
to be identical or nearly identical to the one for \refKey{/tcb/title}.
@@ -4454,7 +4455,7 @@ The most likely use case is to set a \emph{short title} for the
\clearpage
\begin{docTcbKey}[][doc new=2017-02-03]{hypertarget}{=\meta{marker}}{no default, initially unset}
-A |\hypertarget| from the package |hyperref| \cite{rahtz:hyperref} is used to
+A |\hypertarget| from the package \refPkg{hyperref} \cite{rahtz:hyperref} is used to
create an internal link of an anchor \meta{marker}.
This \meta{marker} can be referenced by |\hyperlink| or
\refKey{/tcb/hyperlink}.
@@ -4473,7 +4474,7 @@ Click me to jump to Box B.
\begin{docTcbKey}[][doc new=2017-02-10]{bookmark}{=\meta{text}}{no default, initially unset}
- Sets a PDF bookmark with the given \meta{text}, if the package |bookmark| \cite{oberdiek:bookmark}
+ Sets a PDF bookmark with the given \meta{text}, if the package \refPkg{bookmark} \cite{oberdiek:bookmark}
is loaded. This bookmark is set with an automated destination (the current box)
and is set one level below the current bookmark level.
\begin{dispExample*}{sbs,lefthand ratio=0.7}
@@ -4490,7 +4491,7 @@ to see the bookmark.
\begin{docTcbKey}[][doc new=2017-02-10]{bookmark*}{=\marg{options}\marg{text}}{no default, initially unset}
Identical to \refKey{/tcb/bookmark}, but additional \meta{options}
- from the package |bookmark| \cite{oberdiek:bookmark} can be given.
+ from the package \refPkg{bookmark} \cite{oberdiek:bookmark} can be given.
\begin{dispExample*}{sbs,lefthand ratio=0.7}
% \usepackage{bookmark}%
\begin{tcolorbox}[colback=red!10,colframe=red!50!black,
@@ -4692,7 +4693,7 @@ It is precise only, if \refKey{/tcb/check odd page} was set.
See \Fullref{sec:external} for the \mylib{external} library of |tcolorbox|.
\end{marker}
-If the \emph{externalization} library of the \texttt{tikz} package is used,
+If the \emph{externalization} library of the \refPkg{tikz} package is used,
a |tcolorbox| could trigger the externalization process which will arise
a compilation error.
@@ -4734,7 +4735,7 @@ inside the current \TeX\ group and is not affected by \refKey{/tcb/reset}.
it may be used inside the option list of a |tcolorbox| to set the
externalization \meta{file name} for the first |tikzpicture| which is discovered
\emph{inside} the box content.
- The package |tikz| \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
+ The package \refPkg{tikz} \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
Additionally, |\usetikzlibrary{external}| has to be used.
\end{docTcbKey}
@@ -4742,7 +4743,7 @@ inside the current \TeX\ group and is not affected by \refKey{/tcb/reset}.
Convenience option which calls |/tikz/external/remake next|. Typically,
it may be used inside the option list of a |tcolorbox| to force the remake
of the first |tikzpicture| which is discovered \emph{inside} the box content.
- The package |tikz| \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
+ The package \refPkg{tikz} \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
Additionally, |\usetikzlibrary{external}| has to be used.
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index 45282f3c46..939c5d4dbe 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -5,9 +5,9 @@
\tcbset{external/prefix=external/documentation_}%
This library has the single purpose to support \LaTeX\ package documentations
like this one. Actually, the visual nature follows the approach from
-Till Tantau's |pgf| \cite{tantau:tikz_and_pgf} documentation.
+Till Tantau's \refPkg{pgf} \cite{tantau:tikz_and_pgf} documentation.
Typically, this library is assumed to be used in conjunction with the
-class |ltxdoc| or alike.
+class \refPkg{ltxdoc} or alike.
Denis Bitouz\'e, Muzimuzhi, and many others provided very valuable input for this library.
The library is loaded by a package option or inside the preamble by:
@@ -19,17 +19,17 @@ the library \mylib{skins}, see \Vref{sec:skins},
the library \mylib{raster}, see \Vref{sec:raster},
the library \mylib{listings}, see \Vref{sec:listings},
and a bunch of packages, namely
-|makeidx|, |marginnote|, |refcount|, and |hyperref|.
-The packages |pifont| and |marvosym| should be installed for some symbols, but
+\refPkg{makeidx}, \refPkg{marginnote}, \refPkg{refcount}, and \refPkg{hyperref}.
+The packages \refPkg{pifont} and \refPkg{marvosym} should be installed for some symbols, but
need not to be loaded.
\begin{marker}
-The package |makeidx| is loaded only, if \docAuxCommand*{printindex} is
-\emph{not} already defined. Therefore, one can include an alternative to |makeidx| like
-|imakeidx| \emph{before} the library |documentation| is used.
+The package \refPkg{makeidx} is loaded only, if \docAuxCommand*{printindex} is
+\emph{not} already defined. Therefore, one can include an alternative to \refPkg{makeidx} like
+\refPkg{imakeidx} \emph{before} the library |documentation| is used.
\end{marker}
\begin{marker}
-The package |marginnote| is loaded only, if \docAuxCommand*{marginnote} is
+The package \refPkg{marginnote} is loaded only, if \docAuxCommand*{marginnote} is
\emph{not} already defined.
\end{marker}
\begin{marker}
@@ -47,7 +47,7 @@ For UTF-8 support load (ignore this when using Xe\LaTeX):
\tcbuselibrary{listingsutf8,documentation}
\end{dispListing}
-For |minted| \cite{poore:minted} support, load:
+For \refPkg{minted} \cite{poore:minted} support, load:
\begin{dispListing}
\tcbuselibrary{documentation,minted}
\tcbset{listing engine=minted}
@@ -704,6 +704,21 @@ Some pages back, one can see \refAuxcs{fooaux} as an example.
\end{docCommand}
+\begin{docCommand}[doc new=2024-09-18]{refPkg}{\oarg{ctanname}\marg{name}}
+ References a package \meta{name} on \href{https://ctan.org}{CTAN} with
+ hyperlink \mbox{|https://ctan.org/pkg/|\meta{name}}.
+ Using the option \meta{ctanname} creates the hyperlink
+ \mbox{|https://ctan.org/pkg/|\meta{ctanname}}.
+\begin{dispExample}
+Hyperlinks are created with help of the \refPkg{hyperref} package.\par
+The package \refPkg[frankenstein]{dialogue} is part of the
+\refPkg{frankenstein} bundle of packages.
+\end{dispExample}
+\end{docCommand}
+
+
+\clearpage
+
\begin{docCommand}{colDef}{\marg{text}}
Sets \meta{text} with the command color, see \refKey{/tcb/color command}.
\begin{dispExample}
@@ -718,8 +733,6 @@ This is my \colOpt{text}.
\end{dispExample}
\end{docCommand}
-\clearpage
-
\begin{docCommand}[doc new=2019-09-18]{colFade}{\marg{text}}
Sets \meta{text} with the fade color, see \refKey{/tcb/color fade}.
\begin{dispExample}
@@ -730,7 +743,7 @@ This is my \colFade{text}.
\begin{docCommand}[doc new=2014-09-19]{tcbdocmarginnote}{\oarg{options}\marg{text}}
Creates a |tcolorbox| note with the given \meta{text} inside the margin using
- the |marginnote| package. The style of the |tcolorbox| is predefined and can be
+ the \refPkg{marginnote} package. The style of the |tcolorbox| is predefined and can be
altered by \refKey{/tcb/doc marginnote} and the given \meta{options}.
\begin{dispExample}
Some text\tcbdocmarginnote{Note A}
@@ -1313,7 +1326,7 @@ keys to insert code before (or after) the description texts.
\end{docTcbKey}
\begin{docTcbKey}{documentation listing options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |style=tcbdocumentation|}
- Sets the options from the package |listings| \cite{hoffmann:listings}.
+ Sets the options from the package \refPkg{listings} \cite{hoffmann:listings}.
They are used inside \refEnv{dispExample} and \refEnv{dispListing} to typeset
the listings. Note that this is not identical to the key
\refKey{/tcb/listing options} which is used for \enquote{normal} listings.\\
@@ -1323,14 +1336,14 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}{documentation listing style}{=\meta{listing style}}{no default, initially |tcbdocumentation|}
Abbreviation for |documentation listing options={style=...}|.
This key sets a \meta{style}
- for the |listings| package, see \cite{hoffmann:listings}.
+ for the \refPkg{listings} package, see \cite{hoffmann:listings}.
Note that this is not identical to the key
\refKey{/tcb/listing style} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=listings| only.
\end{docTcbKey}
\begin{docTcbKey}{documentation minted options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |tabsize=2,fontsize=\textbackslash small|}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing, if used.
Note that this is not identical to the key
\refKey{/tcb/minted options} which is used for \enquote{normal} listings.\\
@@ -1339,7 +1352,7 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}{documentation minted style}{=\meta{key list}}{no default, initially unset}
Sets a \meta{style} known to |Pygments| \cite{pygments:web} for
- the package |minted| \cite{poore:minted}, if used.
+ the package \refPkg{minted} \cite{poore:minted}, if used.
Note that this is not identical to the key
\refKey{/tcb/minted style} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=minted| only.
@@ -1347,7 +1360,7 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}[][doc new=2017-04-24]{documentation minted language}{=\meta{programming language}}{no default, initially |latex|}
Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}
- for the package |minted| \cite{poore:minted}, if used.
+ for the package \refPkg{minted} \cite{poore:minted}, if used.
Note that this is not identical to the key
\refKey{/tcb/minted language} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=minted| only.
@@ -1383,7 +1396,7 @@ Sets \meta{macro} as formatter for page references like the
reference to \refEnv{tcolorbox}.
The default setting puts the page reference in a |\textsuperscript|.
It may be changed to |\fakesuperscript| to cope with superiors problems
-in combination with the |realscripts| package or just otherwise for user customization.
+in combination with the \refPkg{realscripts} package or just otherwise for user customization.
\end{docTcbKeys}
@@ -1420,11 +1433,11 @@ in combination with the |realscripts| package or just otherwise for user customi
\item\docValue{pgfchapter}: The index is formatted like in the |pgf| documentation (as a chapter).
\item\docValue{pgf}: Alias for |pgfsection|.
\item\docValue{doc}: The index is assumed to be formatted by |doc| or |ltxdoc|. The usage of |makeindex|
- with |-s gind.ist| is assumed. The package |hypdoc| has to be loaded
+ with |-s gind.ist| is assumed. The package \refPkg{hypdoc} has to be loaded
\emph{before} |tcolorbox|. Only a limited set of customizations will
work! This option cannot be unset when used!
\item\docValue{off}: The index is not formatted by |tcolorbox|. Use this, if
- the index is formatted by other package like |imakeidx|.
+ the index is formatted by other package like \refPkg{imakeidx}.
\end{itemize}
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
index 62c982c2d3..d60af1c986 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
@@ -16,7 +16,7 @@ The whole procedure saves compilation time, if such a snippet is costly to
compile but needs to compile just once or very seldom.
There are very good alternatives to this library. One should consider
-the |standalone| package or the \tikzname\ externalization library instead.
+the \refPkg{standalone} package or the \tikzname\ externalization library instead.
The \mylib{external} library is something in between and can be seen as
poor man variant of the \tikzname\ externalization library.
@@ -619,14 +619,14 @@ or
name points to another subdirectory than |external|, this has to be
adapted.
-\item\textbf{I use the |minted| package and I get a cache directory for
+\item\textbf{I use the \refPkg{minted} package and I get a cache directory for
every externalized snippet.}\\
To avoid this problem, there are several ways.
\begin{itemize}
\item If you do not need |minted| inside the snippet code, you may use
|\usepackage{minted}| \emph{after} \refCom{tcbEXTERNALIZE}
or use \refCom{tcbifexternal} to switch |minted| off for the external code.
- If |minted| is already included by another package, add the following to
+ If \refPkg{minted} is already included by another package, add the following to
your preamble:
\begin{dispListing}
\tcbset{external/PassOptionsToPackage={draft}{minted}}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
index 909f7f4ac0..dfce46b546 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
@@ -16,7 +16,7 @@ See \Vref{sec:skins} for the documentation of all other options of the \mylib{sk
\begin{marker}
Up to version 5.1.1 (2022/06/24) of |tcolorbox|, \tikzname\ image and picture fill extensions
were documented here. These extensions are now separate \tikzname\ libraries
-and part of the |tikzfill| package where they are documented now.
+and part of the \refPkg{tikzfill} package where they are documented now.
\end{marker}
@@ -107,7 +107,7 @@ The following auxiliary macro is defined by the \mylib{skins} library.
\begin{docCommand}[doc new and updated={2016-02-03}{2023-02-28}]{tcbhypernode}{\marg{macro}\marg{node}}
% Sets the east-to-west dimension of the given \meta{node}
% to the \TeX\ \meta{register}.
- Applies a hyperlink creating \meta{macro} from the package |hyperref| \cite{rahtz:hyperref}
+ Applies a hyperlink creating \meta{macro} from the package \refPkg{hyperref} \cite{rahtz:hyperref}
to an existing |tikz| \meta{node}. \refCom{tcbhypernode} can only
be used inside a |tikzpicture| environment.
The last argument of the \meta{macro} is to be omitted and should stand
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
index fe441d4821..a85091895e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
@@ -132,7 +132,7 @@ specify a file system \meta{directory} where the image files are located.
\end{dispListing}
\smallskip
\begin{marker}
-The |\graphicspath| macro from the |graphics| package is superior to this option.
+The |\graphicspath| macro from the \refPkg{graphics} package is superior to this option.
\refKey{/tcb/graphics directory} may be used especially for
\refCom{tcbincludepdf}.
\end{marker}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
index b068d58eaf..8d0c7459b2 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
@@ -173,7 +173,7 @@ need to be set inside the preamble.
\end{marker}
\begin{newTcbKey}[][doc updated=2014-12-01]{crefname}{=\marg{singular}\marg{plural}}{no default, initially unset}
- This option key can be used only in conjunction with the |cleveref| package
+ This option key can be used only in conjunction with the \refPkg{cleveref} package
\cite{cubitt:2018a} which has to be loaded separately.
It creates a cross-reference type for the new |tcolorbox|'es, where the
lowercase \meta{singular} and \meta{plural} forms of the cross-reference are given.
@@ -183,7 +183,7 @@ need to be set inside the preamble.
\begin{newTcbKey}[][doc updated=2014-12-01]{Crefname}{=\marg{singular}\marg{plural}}{no default, initially unset}
- This option key can be used only in conjunction with the |cleveref| package
+ This option key can be used only in conjunction with the \refPkg{cleveref} package
\cite{cubitt:2018a} which has to be loaded separately.
It creates a cross-reference type for the new |tcolorbox|'es, where the
uppercase \meta{singular} and \meta{plural} forms of the cross-reference are given.
@@ -224,7 +224,7 @@ Feasible values for \meta{name} are:
\item\docValue{figures}: blend into the standard |figure| environment.
\item\docValue{tables}: blend into the standard |table| environment.
\item\docValue{listings}: blend into the standard |lstlisting| environment
- of the package |listings| \cite{hoffmann:listings}.
+ of the package \refPkg{listings} \cite{hoffmann:listings}.
\begin{marker}
Note that |blend into=listings| can only be used in the document content
or, preferably, inside a |\AtBeginDocument| clause! Using it without
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
index 0d76c0afbb..f7b5d4cf7d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
@@ -81,7 +81,7 @@ The following keys are used inside |\tcbuselibrary| respectively
|\usepackage| without the key tree path |/tcb/library/|.
\begin{docTcbKey}[library]{skins}{}{\mylib{skins}}
- Loads the package |tikz| \cite{tantau:tikz_and_pgf} and provides additional
+ Loads the package \refPkg[tikzfill]{tikzfill.image} and provides additional
styles (skins) for the appearance of the colored boxes; see
Section~\ref{sec:skins} from page~\pageref{sec:skins}.
\end{docTcbKey}
@@ -98,13 +98,13 @@ The following keys are used inside |\tcbuselibrary| respectively
\end{docTcbKey}
\begin{docTcbKey}[library]{listings}{}{\mylib{listings}}
- Loads the package |listings| \cite{hoffmann:listings} and provides additional
+ Loads the package \refPkg{listings} \cite{hoffmann:listings} and provides additional
macros for typesetting listings which are described in Section~\ref{sec:listings}
from page~\pageref{sec:listings}.
\end{docTcbKey}
\begin{docTcbKey}[library]{listingsutf8}{}{\mylib{listingsutf8}}
- Loads the packages |listings| \cite{hoffmann:listings} and
+ Loads the packages \refPkg{listings} \cite{hoffmann:listings} and
|listingsutf8| \cite{oberdiek:listingsutf8} for UTF-8 support.
This is a variant of the library \mylib{listings}
and is described in Section \ref{sec:listings}
@@ -112,7 +112,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\end{docTcbKey}
\begin{docTcbKey}[library]{minted}{}{\mylib{minted}}
- Loads the package |minted| \cite{poore:minted} to
+ Loads the package \refPkg{minted} \cite{poore:minted} to
typeset listings with the |Pygments| \cite{pygments:web} tool,
also see \Vref{sec:listings}.
\end{docTcbKey}
@@ -151,7 +151,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\clearpage
\begin{docTcbKey}[library]{xparse}{}{\mylib{xparse}}
- Loads the package |xparse| and is considered a legacy library kept for compatibility;
+ Loads the package \refPkg{xparse} and is considered a legacy library kept for compatibility;
see Section~\ref{sec:xparse} from page~\pageref{sec:xparse}.
\end{docTcbKey}
@@ -178,7 +178,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\begin{docTcbKey}[library]{most}{}{style, no value}
Loads all libraries except \mylib{minted}, \mylib{documentation}, and \mylib{xparse}.
Use this shortcut, if you want to use all features of |tcolorbox|
- with exception of using the |minted| package and using
+ with exception of using the \refPkg{minted} package and using
the specialized \mylib{documentation} library.
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
index c6e56dcdfa..59fbe4390e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
@@ -27,12 +27,12 @@ the settings of a previous loaded library. A library is never loaded twice.
\subsubsection{Loading \mylib{listings}}
-This library uses the package |listings| \cite{hoffmann:listings} to typeset
+This library uses the package \refPkg{listings} \cite{hoffmann:listings} to typeset
listings. It is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{listings}
\end{dispListing}
-This also loads the package |listings| \cite{hoffmann:listings}.
+This also loads the package \refPkg{listings} \cite{hoffmann:listings}.
The \refKey{/tcb/listing engine} is set to |listings| by the library.
To reactivate this setting, if overwritten by other libraries, use
@@ -47,15 +47,15 @@ Therefore, loading this library is automatically replaced by loading
\mylib{listings} only, if pdf\LaTeX\ is \emph{not} used.
\end{marker}
To extend |listings| for UTF-8 encoded sources, you can use the support from
-the package |listingsutf8| \cite{oberdiek:listingsutf8} by loading the library
+the package \refPkg{listingsutf8} \cite{oberdiek:listingsutf8} by loading the library
variant \mylib{listingsutf8}.
\begin{dispListing}
\tcbuselibrary{listingsutf8}
\tcbset{listing utf8=latin1}% optional; `latin1' is the default.
\end{dispListing}
This also loads the library \mylib{listings}
-and the packages |listings| \cite{hoffmann:listings}
-and |listingsutf8| \cite{oberdiek:listingsutf8}.
+and the packages \refPkg{listings} \cite{hoffmann:listings}
+and \refPkg{listingsutf8} \cite{oberdiek:listingsutf8}.
The \refKey{/tcb/listing engine} is set to |listings| by the library.
To reactivate this setting, if overwritten by other libraries, use
@@ -66,19 +66,27 @@ To reactivate this setting, if overwritten by other libraries, use
\clearpage
\subsubsection{Loading \mylib{minted}}
-This library uses the package |minted| \cite{poore:minted} to typeset
+This library uses the package \refPkg{minted} \cite{poore:minted} to typeset
listings. It is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{minted}
\end{dispListing}
-This also loads the package |minted| \cite{poore:minted}.
+This also loads the package \refPkg{minted} \cite{poore:minted}.
\begin{marker}
-The |minted| package uses the external tool |Pygments| \cite{pygments:web}
+To use the legacy version v2.9 of \refPkg{minted}, write
+\begin{dispListing}
+\usepackage{minted2}
+\end{dispListing}
+\emph{before} loading the library!
+\end{marker}
+
+\begin{marker}
+The \refPkg{minted} package uses the external tool |Pygments| \cite{pygments:web}
to apply syntax highlighting. It has to be installed and set up, before the
library can be used, see \cite{poore:minted} and \cite{pygments:web}.
The \refEnv{tcolorbox} library \mylib{minted} does not work, if the package
-|minted| \cite{poore:minted} does not work.
+\refPkg{minted} \cite{poore:minted} does not work.
\end{marker}
The \refKey{/tcb/listing engine} is set to |minted| by the library.
@@ -340,7 +348,7 @@ This is my
\clearpage
\begin{marker}
-With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
+With date of 2018-05-12, the \refPkg{xparse} \cite{latexproject:xparse} package
changed the argument collection process (now part of the \LaTeX\ kernel).
Spaces are ignored which leads to a serious change for listing environments
ending with an optional argument like \verb+O{}+.
@@ -471,7 +479,7 @@ Note that the following code uses \verb+!O{}+ now.
\subsection{Option Keys of the \mylib{listings} Library}\label{sec:speclistingkeys}
\begin{docTcbKey}{listing options}{=\meta{key list}}{no default, initially |style=tcblatex|}
- Sets the options from the package |listings| \cite{hoffmann:listings}
+ Sets the options from the package \refPkg{listings} \cite{hoffmann:listings}
which are used during typesetting of the listing.
For \LaTeX\ listings, there is a predefined |listings| style named |tcblatex|
which can be used.
@@ -487,7 +495,7 @@ and in compiled form. Additionally, we use line numbers here.
\begin{docTcbKey}{no listing options}{}{no value, initially unset}
Abbreviation for |listing options={}|.
- This removes all options for the |listings| package.
+ This removes all options for the \refPkg{listings} package.
This includes the \refEnv{tcblisting} standard style |tcblatex| and the encoding presets.
Use this option, if you want to set the |listings| options outside of \refEnv{tcblisting}, e.\,g.\ globally in
the preamble.
@@ -501,7 +509,7 @@ All \textit{listings} options removed.
\begin{docTcbKey}{listing style}{=\meta{style}}{no default, initially |tcblatex|}
Abbreviation for |listing options={style=...}|. This key sets a \meta{style}
- for the |listings| package, see \cite{hoffmann:listings}.
+ for the \refPkg{listings} package, see \cite{hoffmann:listings}.
For \LaTeX, there is a predefined style named |tcblatex|.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,
@@ -515,14 +523,14 @@ Here, we use the predefined style.
\begin{docTcbKey}{listing inputencoding}{=\meta{encoding}}{no default, initially \texttt{\cs inputencodingname}}
Sets the input encoding value for the predefined listing style |tcblatex|
and |tcbdocumentation| from the library \mylib{documentation}.
- The initial value is derived from the package |inputenc| if used.
+ The initial value is derived from the package \refPkg{inputenc} if used.
\end{docTcbKey}
\begin{docTcbKey}{listing remove caption}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
-If set to |true|, some part of the caption building code of the |listings| package
-is silenced to prevent some unwanted interaction with the |hyperref| package resulting
+If set to |true|, some part of the caption building code of the \refPkg{listings} package
+is silenced to prevent some unwanted interaction with the \refPkg{hyperref} package resulting
in additional vertical space.
-If set to |false|, the |listings| package code is kept unchanged.
+If set to |false|, the \refPkg{listings} package code is kept unchanged.
Note that listings outside \refEnv{tcblisting} and
\refCom{tcbinputlisting} are always processed normally.
Typically, a user is not expected to use this key at all.
@@ -530,7 +538,7 @@ Typically, a user is not expected to use this key at all.
\begin{docTcbKey}{every listing line}{=\meta{text}}{no default, initially unset/empty}
Inserts some \meta{text} to the begin of every line of a listing.
-Note that this a hack of the |listings| package code. This may become unusable
+Note that this a hack of the \refPkg{listings} package code. This may become unusable
or superfluous in the future.
\begin{dispExample}
\newtcblisting{commandshell}{colback=black,colupper=white,colframe=yellow!75!black,
@@ -584,14 +592,14 @@ all options from \Vref{sec:speclistingkeys} are applicable.
\begin{docTcbKey}{listing utf8}{=\meta{one-byte-encoding}}{style, no default, initially |latin1|}
Abbreviation for using \refKey{/tcb/listing inputencoding}
- together with UTF-8 support from the package |listingsutf8| \cite{oberdiek:listingsutf8}.
+ together with UTF-8 support from the package \refPkg{listingsutf8} \cite{oberdiek:listingsutf8}.
This option is available only for the library variant \mylib{listingsutf8}.
The \meta{one-byte-encoding} is one of
the applicable encodings from \cite{oberdiek:listingsutf8}, e.\,g.\ |latin1|
which is the default.\par
Be aware that this means restriction to this specific \meta{one-byte-encoding}:
e.\,g.\ |latin1| comprises umlauts and other accented characters, but not
- the Euro sign. If you want to use the |listings| package \emph{and} \flqq real\frqq\
+ the Euro sign. If you want to use the \refPkg{listings} package \emph{and} \flqq real\frqq\
UTF-8 source code, then do \emph{not} use \mylib{listingsutf8} but \mylib{listings}
with
\refKey{/tcb/listing inputencoding}|=utf8|
@@ -623,7 +631,7 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\begin{docTcbKey}[][doc updated={2021-12-15}]{minted options}{=\meta{key list}}{no default, initially
\linebreak see \refKey{/tcb/default minted options}}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing.
Also see \refKey{/tcb/minted options app} and \refKey{/tcb/minted options pre}.
\begin{dispExample}
@@ -652,7 +660,7 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\clearpage
\begin{docTcbKey}[][doc new={2021-12-15}]{default minted options}{=\meta{key list}}{no default, initially
|tabsize=2,fontsize=\textbackslash small,|\linebreak|breaklines,autogobble|}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing, if
\refKey{/tcb/minted options} are \emph{not} used. The intended use is
inside the preamble to change the default behavior.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
index 085d789a36..be79860d6b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
@@ -9,7 +9,7 @@ with |tcolorbox|es.
A \refEnv{tcbposter} is a |tikzpicture| where |tcolorbox|es can be
placed in a column oriented manner using \refCom{posterbox} commands.
-This base concept is more or less copied from the great |baposter| package.
+This base concept is more or less copied from the great \refPkg{baposter} package.
The \mylib{raster} library, see \Fullref{sec:raster}, can produce
similar looking results and may be more appropriate
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 7bc44882c8..b73d8b3285 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -36,6 +36,9 @@
\tcbuselibrary{most,documentation}
\tcbifexternal{}{%
+ \IfFileExists{minted2.sty}{\RequirePackage{minted2}}{}%
+ % Avoid https://github.com/gpoore/minted/issues/414
+ % and spurious errors where minted v3 complains about .tcbtemp files
\tcbuselibrary{minted}%
\tcbset{listing engine=listings,initialize@reset={listing engine=listings}}%
}
@@ -204,7 +207,7 @@
docCounter,docLength,
meta,marg,
oarg,
- refCom,refEnv,refKey,
+ refCom,refEnv,refKey,refPathOperation,refAux,refAuxcs,refPkg,
sarg,
tcbmakedocSubKey,tcbdocmarginnote,tcbdocnew,tcbdocupdated,
% skins
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
index bbf946c9fc..108e0245d7 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{skins}
\end{dispListing}
-This also loads the package |tikzfill.image|.
+This also loads the package \refPkg[tikzfill]{tikzfill.image}.
In the following, general settings and options of the library are
documented.
@@ -1012,7 +1012,7 @@ The text is centered by default
\begin{docTcbKey}{varwidth boxed title}{\colOpt{=\meta{length}}}{initially unset}
The title text content is captured with a |varwidth| environment with a width of \meta{length}.
-This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
By default, the resulting boxed title is somewhat smaller than the main box.
\begin{exdispExample*}{varwidth_boxed_title}{sbs,lefthand ratio=0.66}
% \usepackage{varwidth}
@@ -1035,7 +1035,7 @@ By default, the resulting boxed title is somewhat smaller than the main box.
\begin{docTcbKey}{varwidth boxed title*}{\colOpt{=\meta{length}}}{initially unset}
The title text content is captured with a |varwidth| environment with a width of main box width plus \meta{length}.
-This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
By default, the resulting boxed title is somewhat smaller than the main box.
\begin{exdispExample*}{varwidth_boxed_title_star}{sbs,lefthand ratio=0.66}
% \usepackage{varwidth}
@@ -2285,9 +2285,6 @@ Such shadows can be added directly to the frame path using \refKey{/tcb/frame st
\clearpage
\subsection{\tikzname\ Picture Option Keys}\label{subsec:tikzpicture}
-The skin \refSkin{standard} does not support these options,
-but most other skins, e.\,g.\ \refSkin{enhanced}.
-
\begin{docTcbKey}{tikz}{=\meta{tikz option list}}{no default, initially empty}
Adds the given \meta{tikz option list} to the main |tikzpicture| environment
@@ -2721,12 +2718,12 @@ Finishes are intended for special effects like highlights or glosses or text ove
\clearpage
\subsection{Hyper Option Keys}\label{subsec:hyper}
-All options of this section need the package |hyperref| \cite{rahtz:hyperref}
+All options of this section need the package \refPkg{hyperref} \cite{rahtz:hyperref}
to be loaded separately. All these options are implemented as
\refKey{/tcb/finish} and can be disabled by \refKey{/tcb/no finish}.
\begin{marker}
-If the package |hyperref| \cite{rahtz:hyperref} is not loaded or if
+If the package \refPkg{hyperref} \cite{rahtz:hyperref} is not loaded or if
the \refSkin{standard} skin is used, all hyper option are silently ignored.
\end{marker}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
index f1a7be1ff4..fdb5564454 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{theorems}
\end{dispListing}
-This also loads the package |amsmath|.
+This also loads the package \refPkg{amsmath}.
Denis Bitouz\'e, Muzimuzhi, and many others provided very valuable input for this library.
@@ -195,7 +195,7 @@ To switch off the \texttt{nameref} feature permanently, add
\end{dispExample}
\clearpage
-\refCom{tcbhighmath} can be used in symbiosis with the |empheq| package
+\refCom{tcbhighmath} can be used in symbiosis with the \refPkg{empheq} package
which allows to specify own boxing commands to mark multiline formulas.
\begin{dispExample}
@@ -900,8 +900,8 @@ New colored mathematical environments are easily created using
\clearpage
\begin{docTcbKey}{theorem style}{=\meta{name}}{no default, initially |standard|}
Applies a predefined style \meta{name} to the theorem environment. Some of
-the feasible \meta{name} values resemble style names from the packages |theorem|
-and |ntheorem| to give convenient access to known patterns.
+the feasible \meta{name} values resemble style names from the packages \refPkg{theorem}
+and \refPkg{ntheorem} to give convenient access to known patterns.
\begin{marker}
The styles alter \refKey{/tcb/separator sign}, \refKey{/tcb/description delimiters},
\refKey{/tcb/terminator sign}, and more. Therefore, one should apply such
@@ -1018,7 +1018,7 @@ identically colored.
All following environments are numbered with a common counter, but this
can be changed easily. Here, the counter output is supplemented by
the subsection number.
-Further, the |cleveref| package \cite{cubitt:2018a} is used for clever
+Further, the \refPkg{cleveref} package \cite{cubitt:2018a} is used for clever
references.
\inputpreamblelisting{G}
@@ -1208,8 +1208,8 @@ Let's try a more conservative approach:
Instead of creating theorem environments with the methods described before,
environments from other packages can be boxed with a |tcolorbox|.
-Environments may be created e.g. by methods from the |theorem| package or
-the |amsthm| package. \refCom{tcolorboxenvironment} can be used to put a box
+Environments may be created e.g. by methods from the \refPkg{theorem} package or
+the \refPkg{amsthm} package. \refCom{tcolorboxenvironment} can be used to put a box
around these environments.
\inputpreamblelisting{K}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
index 280d91bd56..cbe8dbaba6 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
@@ -7,14 +7,14 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{xparse}
\end{dispListing}
-This loads the package |xparse| \cite{latexproject:xparse}.
+This loads the package \refPkg{xparse} \cite{latexproject:xparse}.
Note that up to version 5.0.2 this library contained code which
-needed the |xparse| package. Since nowadays this package has become
+needed the \refPkg{xparse} package. Since nowadays this package has become
basically a part of the \LaTeX\ kernel, the code of the library was
migrated to other parts of the |tcolorbox| package. So, the remaining
library is nearly a stub which only loads |xparse|.
Instead of including the |xparse| library, it is recommended to include the
-|xparse| package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
+\refPkg{xparse} package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
essentially everything needed). The library is kept for compatibility.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index 3054aff591..a961290073 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index 23f0d51569..6815ef0159 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%% This work consists of all files listed in README
%%
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesPackage{tcolorbox}[2024/07/10 version 6.3.0 text color boxes]
-\def\tcb@version{6.3.0}
+\ProvidesPackage{tcolorbox}[2024/10/22 version 6.4.1 text color boxes]
+\def\tcb@version{6.4.1}
%\RequirePackage{pgf}[2008/01/15]
\RequirePackage{tikz}[2023/01/15]
@@ -73,7 +73,9 @@
\def\tcb@info#1{\PackageInfo{tcolorbox}{#1}}
\def\tcb@warning#1{\PackageWarning{tcolorbox}{#1}}
\def\tcb@error#1#2{\PackageError{tcolorbox}{#1}{#2}}
-
+\def\tcb@warning@deprecatedkey#1{%
+ \tcb@warning{`\pgfkeyscurrentkey' key is deprecated hence ignored since #1.}%
+}
% key management
\pgfkeys{/tcb/.is family}
@@ -563,7 +565,6 @@
toggle left and right/evenpage/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@evenpage\tcbset{check odd page}},
toggle left and right/forced/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@forced},
toggle left and right/.default=evenpage,
- graphical environment/.style=,% deprecated
%
frame engine/.is choice,
frame engine/standard/.style={frame code=\tcb@drawframe@standard},
@@ -932,6 +933,11 @@
}
+\bool_new:N \g__tcobox_cleveref_loaded_bool
+\AddToHook{package/cleveref/after}
+ { \bool_gset_true:N \g__tcobox_cleveref_loaded_bool }
+
+
\cs_new:Npn \__tcobox_label_label:n #1
{
\quark_if_nil:NTF \l__tcobox_kv_labeltype_tl
@@ -939,16 +945,12 @@
\label{#1}
}
{
- \exp_last_unbraced:NNV \label[\l__tcobox_kv_labeltype_tl]{#1}
- }
- }
-
-
-\cs_new_protected:Npn \__tcobox_zcsetup_reftype:n #1
- {
- \cs_if_exist:NT \zcsetup
- {
- \zcsetup { reftype={#1} }
+ \group_begin:
+ \exp_args:NV \__tcobox_zcsetup_reftype:n \l__tcobox_kv_labeltype_tl
+ \bool_if:NTF \g__tcobox_cleveref_loaded_bool
+ { \exp_last_unbraced:NNV \label[\l__tcobox_kv_labeltype_tl]{#1} }
+ { \label{#1} }
+ \group_end:
}
}
@@ -968,6 +970,15 @@
}
+\cs_new_protected:Npn \__tcobox_zcsetup_reftype:n #1
+ {
+ \cs_if_exist:NT \zcsetup
+ {
+ \zcsetup { reftype={#1} }
+ }
+ }
+
+
\tcbset
{
label /.style = { phantom={\__tcobox_label:n{#1}} },
@@ -1103,7 +1114,7 @@
% counter for float
-\AtBeginDocument{%
+\AtBeginDocument[tcolorbox]{%
\@ifundefined{c@float@type}%
{\edef\ftype@tcbfloat{\ifx\c@figure\@undefined 1\else 4\fi}}%
{\edef\ftype@tcbfloat{\the\c@float@type}%
@@ -1594,7 +1605,7 @@
\fi%
}{%
\csxdef{tcb@ehg@current@\tcb@ehgid}{#1}%
- \begingroup\edef\x{\endgroup\noexpand\AtEndDocument{\noexpand\tcb@saveehg{\tcb@ehgid}}}\x%
+ \begingroup\edef\x{\endgroup\noexpand\AtEndDocument[tcolorbox]{\noexpand\tcb@saveehg{\tcb@ehgid}}}\x%
}%
}
@@ -2035,6 +2046,8 @@
\ExplSyntaxOn
+\exp_args_generate:n {nNo}
+
\NewSocket{tagsupport/tcb/drawing/begin}{0}
\NewSocket{tagsupport/tcb/drawing/end}{0}
\NewSocketPlug{tagsupport/tcb/drawing/begin}{suspend}
@@ -2047,7 +2060,7 @@
\NewDocumentEnvironment{ tcb@drawing }{ }
{
\use:c{ tcb@before@\tcb@split@state }
- \exp_last_unbraced:NnNo \begin{tikzpicture}[\tcb@tikz@option@hook]
+ \exp_args:NnNo \begin{tikzpicture}[\tcb@tikz@option@hook]
\UseTaggingSocket{tcb/drawing/begin}
\SuspendTagging{tcb/drawing}
\tcb@tikz@begin@hook
@@ -2557,28 +2570,36 @@
\__tcobox_new_TotalTCBox:w \ProvideDocumentCommand
}
+\NewDocumentCommand \tcolorboxenvironment { m +m }
+ {
+ \hook_gput_code:nnn{ env/#1/before }{ tcolorbox }
+ {
+ \begin{tcolorbox}
+ [{
+ savedelimiter = {#1},
+ #2,
+ wrap@environment,
+ code = \def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}
+ }]
+ }
+ \hook_gput_code:nnn{ env/#1/after }{ tcolorbox }
+ {
+ \tcb@end@tcolorboxenvironment
+ }
+ }
-\ExplSyntaxOff
-
-
-\newcommand{\tcolorboxenvironment}[2]{%
- \AddToHook{env/#1/before}{%
- \begin{tcolorbox}[{savedelimiter={#1},#2,wrap@environment,%
- code={\def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}}}]%
- }%
- \AddToHook{env/#1/after}{%
- \tcb@end@tcolorboxenvironment%
- }%
-}
+\DeclareTotalTCBox{ \tcboxverb }{ O{} v }{ verbatim,#1 }{ #2 }
-\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
+\DeclareTotalTColorBox{ \tcbsidebyside }{ +O{} +m +m }
+ {
+ code = \long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3},
+ #1,
+ sidebyside,
+ sidebyside@switch,
+ sidebyside@adapt@process
+ }{ \tcb@sbs@content }
-\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
- code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
- #1,%
- sidebyside,%
- sidebyside@switch,sidebyside@adapt@process%
-}{\tcb@sbs@content}
+\ExplSyntaxOff
\def\tcb@addcontentsline#1#2{%
@@ -2919,3 +2940,8 @@
\ProcessOptions*
\begingroup\edef\x{\endgroup\noexpand\tcbuselibrary{\tcb@optionlist}}\x
+
+% deprecated
+\tcbset{
+ graphical environment/.code = {\tcb@warning@deprecatedkey{v6.3.0 (2024/07/10)}},
+}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index c60eb4acfa..9c5f8e6b11 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.1 (2024/10/22)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -63,8 +63,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{6.3.0}%
-\def\datum{2024/07/10}%
+\def\version{6.4.1}%
+\def\datum{2024/10/22}%
\makeindex
\hypersetup{
diff --git a/macros/latex/contrib/temporal-logic/README.md b/macros/latex/contrib/temporal-logic/README.md
new file mode 100644
index 0000000000..e0daf84e95
--- /dev/null
+++ b/macros/latex/contrib/temporal-logic/README.md
@@ -0,0 +1,29 @@
+# Latex package for Temporal Logic Operators
+
+## Overview
+
+The package defines functions for rendering the temporal operators defined in
+the **Linear Temporal Logic** (_LTL_), **Metric Temporal Logic** (_MTL_), **Metric First-order
+Temporal Logic** (_MFOTL_), and **Counting Metric First-order Temporal Binding Logic** (_CMFTBL_). The package
+defines various functions with variants in order to include or omit optional
+parameters to the operators like the optional interval.
+
+## Build the package
+
+If you want to generate the necessary `.sty` file and the documentation for this
+package you can do this with the following steps:
+
+1. Generate `.sty` file from `.ins` file with the command:
+ `latex temporal-logic.ins`
+2. Generate documentation with the command:
+ `latexmk -pdf temporal-logic.dtx`
+
+## Copyright and License
+
+Copyright (C) 2024 Dominik Schmid and Till Schallau
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License, either version 1.3c of this license or (at your option)
+any later version. The latest version of this license is in
+http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all
+distributions of LaTeX version 2005/12/01 or later.
diff --git a/macros/latex/contrib/temporal-logic/temporal-logic-doc.pdf b/macros/latex/contrib/temporal-logic/temporal-logic-doc.pdf
new file mode 100644
index 0000000000..2fbb8c8e40
--- /dev/null
+++ b/macros/latex/contrib/temporal-logic/temporal-logic-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/temporal-logic/temporal-logic.dtx b/macros/latex/contrib/temporal-logic/temporal-logic.dtx
new file mode 100644
index 0000000000..f056652117
--- /dev/null
+++ b/macros/latex/contrib/temporal-logic/temporal-logic.dtx
@@ -0,0 +1,593 @@
+% \iffalse meta-comment
+%
+% File: cmftbl.dtx
+%
+% Copyright (C) 2024 Dominik Schmid and Till Schallau
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The current maintainer of this work is Dominik Schmid
+% <dominik.schmid@tu-dortmund.de>.
+%
+% This work consists of the files temporal-logic.dtx and temporal-logic.ins
+% and the derived file temporal-logic.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{l3doc}
+\usepackage{temporal-logic}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{temporal-logic}
+% \author{Dominik Schmid and Till Schallau}
+% \date{Version 1.0}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \begin{abstract}
+% The \emph{temporal-logic} package defines functions for rendering temporal
+% operators defined in \emph{Linear Temporal Logic} (LTL)\footnote{Pnueli, A.
+% (1977). The temporal logic of programs. In: 18th Annual Symposium on
+% Foundations of Computer Science (SFCS 1977). IEEE.
+% \url{https://doi.org/10.1109/SFCS.1977.32}.}, \emph{Metric
+% Temporal Logic} (MTL)\footnote{Alur, R., Henzinger, T. A. (1993). Real-time
+% logics: Complexity and expressiveness. In: Proceedings of the Fifth Annual
+% Symposium on Logic in Computer Science (LICS 1990). Elsevier.
+% \url{https://doi.org/10.1006/inco.1993.1025}.}, \emph{Metric
+% First-order Temporal Logic} (MFOTL)\footnote{Basin, David, Klaedtke, Felix,
+% Müller, Samuel, and Zălinescu, Eugen. (2015). Monitoring Metric First-order
+% Temporal Properties. In: Journal of the ACM (J. ACM). Association for
+% Computing Machinery. \url{https://doi.org/10.1145/2699444}.}, and the
+% \emph{Counting Metric First-order Temporal Binding Logic}
+% (CMFTBL)\footnote{Schallau, T., Naujokat, S., Kullmann, F., Howar, F.
+% (2024). Tree-Based Scenario Classification. In: NASA Formal Methods (NFM
+% 2024). Lecture Notes in Computer Science, vol 14627. Springer, Cham.
+% \url{https://doi.org/10.1007/978-3-031-60698-4\_15}.}. The package defines
+% various functions with variants in order to include or omit optional
+% parameters of the operators like the optional interval.
+% \end{abstract}
+%
+% \clearpage
+% \tableofcontents
+% \clearpage
+%
+% \section{Introduction}
+% \subsection{Counting Metric First-order Temporal Logic}
+% \emph{Counting Metric First-order Temporal Logic} (CMFTBL) argues about
+% finite traces of states. It is an extension of \emph{Metric First-order
+% Temporal Logic} (MFOTL), which itself is based on \emph{Metric Temporal
+% Logic} (MTL) and ultimately on \emph{Linear Temporal Logic} (LTL). All these
+% logics extend the base with further operators and features.
+%
+% \subsection{Basic usage}
+% This package defines the symbols used in Temporal logics as
+% \emph{MathOperators}. Therefore, the symbols, as well as the commands, have
+% to be used in math mode. To use normal text in the parameters \cs{mathrm}
+% or \cs{text} may be used to switch back to text mode.
+%
+% The symbols come in two variants. A standalone version for mentioning logic
+% symbols in text without additional formula spacing is described in
+% Sect.~\ref{sec:standalone_symbols} and a formula version, also providing
+% additional parameters, is described in Sect.~\ref{sec:future_ltl} --
+% Sect.~\ref{sec:cmftbl_extension}. The formula version should always be
+% preferred over the standalone symbols in formulas as they provide
+% additional spaces and explicitly enforce the correct usage of superscript
+% and subscript via mandatory parameters. The naming scheme of the operators
+% is chosen such that each command reflects the name of the temporal operator
+% prefixed with a ``c'' for \textit{\underline{C}MFTBL}. Standalone symbols, as described
+% in Sect.~\ref{sec:standalone_symbols}, are prefixed with ``csymb''. Those
+% prefixes are necessary to prevent name clashes with built-in \LaTeX commands.
+%
+% \subsection{Manual structure}
+% This manual is structured as follows. First, the symbols for \emph{Future
+% LTL} and \emph{Past LTL} are introducted in Sect.~\ref{sec:future_ltl} and
+% Sect.~\ref{sec:past_ltl}. The additional intervals from \emph{MTL} are
+% described in Sect.~\ref{sec:mtl_extension}. The operators introduced
+% in \emph{MFOTL} and \emph{CMFTBL} are described in
+% Sect.~\ref{sec:mfotl_extension} and Sect.~\ref{sec:cmftbl_extension}.
+% Section~\ref{sec:usage} shows the usage of the symbols in formulas.
+% Section~\ref{sec:standalone_symbols} closes the
+% command definitions with the standalone symbols for usage in text.
+% Finally, Sect.~\ref{sec:operator_scaling} demonstrates the automatic scaling
+% of the operators.
+%
+% \subsection{Dependencies}
+% The package loads the following dependencies:
+% \begin{itemize}
+% \item \emph{expl3} For \LaTeX 3 support.
+% \item \emph{xparse} For parsing the mandatory and optional arguments.
+% \item \emph{amsmath} For symbol definitions.
+% \item \emph{tikz} For rendering of symbols.
+% \end{itemize}
+%
+% \clearpage
+% \section{Symbol definitions}
+% \subsection{Future LTL symbols}
+% \label{sec:future_ltl}
+% \emph{Future LTL}, or simply \emph{LTL}, defines operators to argue about
+% the future. This includes the following operators.
+% \begin{function}{
+% \ceventually,
+% \cglobally,
+% \cnext,
+% \cuntil}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{ceventually} & $\ceventually$\\
+% \cs{cglobally} & $\cglobally$\\
+% \cs{cnext} & $\cnext$\\
+% \cs{cuntil} & $\cuntil$\\
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \noindent The semantics of the operators are commonly defined as follows:
+% \begin{itemize}
+% \item $\ceventually \phi$ expresses that $\phi$ must hold at least once in
+% the future.
+% \item $\cglobally \phi$ expresses that $\phi$ must hold from now for the
+% entire trace.
+% \item $\cnext \phi$ expresses that $\phi$ must hold at the next state.
+% \item $\phi \cuntil \psi$ expresses that $\phi$ must hold until $\psi$
+% holds.
+% \end{itemize}
+%
+% \subsection{Past LTL symbols}
+% \label{sec:past_ltl}
+% \emph{Past LTL} defines operators analogous to \emph{Future LTL} to argue
+% about the past. The symbols are identical but are filled solid black.
+% \begin{function}{ ,
+% \conce,
+% \chistorically,
+% \cprevious,
+% \csince}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{conce} & $\conce$\\
+% \cs{chistorically} & $\chistorically$\\
+% \cs{cprevious} & $\cprevious$\\
+% \cs{csince} & $\csince$\\
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \noindent The semantics of the operators are commonly defined as follows:
+% \begin{itemize}
+% \item $\conce \phi$ expresses that $\phi$ must have held at least once
+% in the past.
+% \item $\chistorically \phi$ expresses that $\phi$ must have held until
+% now for the entire past trace.
+% \item $\cprevious \phi$ expresses that $\phi$ must have held at the previous
+% state.
+% \item $\phi \csince \psi$ expresses that $\phi$ must have held since $\psi$
+% has held.
+% \end{itemize}
+%
+% \clearpage
+% \subsection{MTL extension}
+% \label{sec:mtl_extension}
+% The \emph{Future LTL} and \emph{Past LTL} operators may be extended with an
+% optional interval to form \emph{MTL}.
+% \begin{function}{
+% \ceventually,
+% \conce,
+% \cglobally,
+% \chistorically,
+% \cnext,
+% \cprevious,
+% \cuntil,
+% \csince}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{ceventually}\oarg{Interval} & $\ceventually[[0,1]]$\\
+% \cs{conce}\oarg{Interval} & $\conce[[0,1]]$\\
+% \cs{cglobally}\oarg{Interval} & $\cglobally[[0,1]]$\\
+% \cs{chistorically}\oarg{Interval} & $\chistorically[[0,1]]$\\
+% \cs{cnext}\oarg{Interval} & $\cnext[[0,1]]$\\
+% \cs{cprevious}\oarg{Interval} & $\cprevious[[0,1]]$\\
+% \cs{cuntil}\oarg{Interval} & $\cuntil[[0,1]]$\\
+% \cs{csince}\oarg{Interval} & $\csince[[0,1]]$\\
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \noindent The semantics of the intervals are commonly defined as follows:
+% The trace is only evaluated in the given interval. An empty interval is
+% considered to be $[0, \infty)$ for future and $(\infty, 0]$ for past
+% operators. The first component of the interval always indicates the earlier
+% state for both future and past operators.
+%
+% \subsection{MFOTL extension}
+% \label{sec:mfotl_extension}
+% \emph{MFOTL} introduces the first-order quantifiers $\exists$ and $\forall$.
+% This package does not provide additional symbols, as the built-in ones
+% already contained in \LaTeX~may be used.
+%
+% \begin{function}{
+% \exists,
+% \forall}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{exists} & $\exists$\\
+% \cs{forall} & $\forall$\\
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \clearpage
+% \subsection{CMFTBL extension}
+% \label{sec:cmftbl_extension}
+% \emph{CMFTBL} extends \emph{MFOTL} by the operators \emph{minPrevalence},
+% \emph{maxPrevalence}, their past forms, and the \emph{bind} operator.
+%
+% \begin{function}{
+% \cminprevalence,
+% \cpastminprevalence,
+% \cmaxprevalence,
+% \cpastmaxprevalence,
+% \cbind}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{cminprevalence}\marg{Percentage}\oarg{Interval} &
+% $\cminprevalence{0.8}[[0,1]]$\\
+% \cs{cpastminprevalence}\marg{Percentage}\oarg{Interval} &
+% $\cpastminprevalence{0.8}[[0,1]]$\\
+% \cs{cmaxprevalence}\marg{Percentage}\oarg{Interval} &
+% $\cmaxprevalence{0.8}[[0,1]]$\\
+% \cs{cpastmaxprevalence}\marg{Percentage}\oarg{Interval} &
+% $\cpastmaxprevalence{0.8}[[0,1]]$\\
+% \cs{cbind}\marg{Valuation}\marg{Variable} &
+% $\cbind{v.id}{i}$\\
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \noindent The semantics of the operators are defined as follows. Let $p$ be a
+% fraction of states in the interval $[0,1]$:
+% \begin{itemize}
+% \item $\cminprevalence{p}[I] \phi$ expresses that $\phi$ must hold in at
+% least fraction $p$ of the future states in the interval $I$.
+% \item $\cpastminprevalence{p}[I] \phi$ expresses that $\phi$ must have held
+% in at least fraction $p$ of the past states in the interval $I$.
+% \item $\cmaxprevalence{p}[I] \phi$ expresses that $\phi$ must hold in at
+% most fraction $p$ of the future states in the interval $I$.
+% \item $\cpastmaxprevalence{p}[I] \phi$ expresses that $\phi$ must have held
+% in at most fraction $p$ of the past states in the interval $I$.
+% \item $\cbind{v.id}{i}$ saves the valuation $v.id$ to the variable $i$ for
+% later use in a nested formula, where $v$ already has a new value.
+% \end{itemize}
+%
+% \emph{minPrevalence} and \emph{maxPrevalence} take the desired precentage as
+% another mandatory parameter. These operators may only be defined on finite
+% traces since they argue about numbers of states. \emph{bind} has no optional
+% interval but two mandatory arguments: the value to bind and the target
+% variable.
+%
+% \section{Usage in formulas}
+% \label{sec:usage}
+% The commands may be directly used in math mode to create composite formulas.
+% For the unary formulas, the term $\phi$ should directly follow the symbol:
+% \begin{syntax}
+% \begin{tabular}{ll}
+% \cs{ceventually}\cs{phi} & $\ceventually \phi$\\
+% \cs{cglobally}[[0,1]]\cs{phi} & $\cglobally[[0,1]] \phi$
+% \end{tabular}
+% \end{syntax}
+%
+% \noindent The binary symbols \emph{until} and \emph{since} should be used
+% with two formulas $\phi$ and $\psi$ directly before and after the symbol:
+% \begin{syntax}
+% \begin{tabular}{ll}
+% \cs{phi}\cs{cuntil}\cs{psi} & $\phi \cuntil \psi$\\
+% \cs{phi}\cs{csince}[[0,1]]\cs{psi} & $\phi \csince[[0,1]] \psi$
+% \end{tabular}
+% \end{syntax}
+%
+% \noindent
+% The new \emph{CMFTBL} operators my be used as the unary ones:
+% \begin{syntax}
+% \begin{tabular}{ll}
+% \cs{cminprevalence}\{0.8\}\cs{phi} &
+% $\cminprevalence{0.8} \phi$\\
+% \cs{cmaxprevalence}\{0.8\}[[0,1]]\cs{phi} &
+% $\cmaxprevalence{0.8}[[0,1]] \phi$\\
+% \cs{cbind}\{v.id\}\{i\}\cs{phi} &
+% $\cbind{v.id}{i} \phi$
+% \end{tabular}
+% \end{syntax}
+%
+% \section{Standalone symbols}
+% \label{sec:standalone_symbols}
+% The package defines all symbols as a standalone version as
+% \emph{MathOperators} without additional spacing around for the usage in text.
+%
+% \begin{function}{
+% \csymbeventually,
+% \csymbonce,
+% \csymbglobally,
+% \csymbhistorically,
+% \csymbnext,
+% \csymbprevious,
+% \csymbuntil,
+% \csymbsince,
+% \csymbminprevalence,
+% \csymbpastminprevalence,
+% \csymbmaxprevalence,
+% \csymbpastmaxprevalence,
+% \csymbbind}
+% \begin{syntax}
+% \begin{tabular}{lc}
+% \cs{csymbeventually} & $\csymbeventually$\\
+% \cs{csymbonce} & $\csymbonce$\\
+% \cs{csymbglobally} & $\csymbglobally$\\
+% \cs{csymbhistorically} & $\csymbhistorically$\\
+% \cs{csymbnext} & $\csymbnext$\\
+% \cs{csymbprevious} & $\csymbprevious$\\
+% \cs{csymbuntil} & $\csymbuntil$\\
+% \cs{csymbsince} & $\csymbsince$\\
+% \cs{csymbminprevalence} & $\csymbminprevalence$\\
+% \cs{csymbpastminprevalence} & $\csymbpastminprevalence$\\
+% \cs{csymbmaxprevalence} & $\csymbmaxprevalence$\\
+% \cs{csymbpastmaxprevalence} & $\csymbpastmaxprevalence$\\
+% \cs{csymbbind} & $\csymbbind$
+% \end{tabular}
+% \end{syntax}
+% \end{function}
+%
+% \section{Operator scaling}
+% \label{sec:operator_scaling}
+% The operators scale automatically with the current text size:\\[\baselineskip]
+%
+% \begin{tabular}{ll}
+% \Huge\cs{Huge} & \Huge$\ceventually[[0,1]] \phi$\\
+% \huge\cs{huge} & \huge$\ceventually[[0,1]] \phi$\\
+% \LARGE\cs{LARGE} & \LARGE$\ceventually[[0,1]] \phi$\\
+% \Large\cs{Large} & \Large$\ceventually[[0,1]] \phi$\\
+% \large\cs{large} & \large$\ceventually[[0,1]] \phi$\\
+% \normalsize\cs{normalsize} & \normalsize$\ceventually[[0,1]] \phi$\\
+% \small\cs{small} & \small$\ceventually[[0,1]] \phi$\\
+% \footnotesize\cs{footnotesize} & \footnotesize$\ceventually[[0,1]] \phi$\\
+% \scriptsize\cs{scriptsize} & \scriptsize$\ceventually[[0,1]] \phi$\\
+% \tiny\cs{tiny} & \tiny$\ceventually[[0,1]] \phi$
+% \end{tabular}
+%
+% \normalsize
+% \clearpage
+%
+% \section{License}
+% \begin{center}
+% Copyright (C) 2024\\
+% Dominik Schmid and Till Schallau\\[\baselineskip]
+%
+% This work may be distributed and/or modified under the conditions of the\\ % \LaTeX~Project Public License, either version 1.3c of this license\\
+% or (at your option) any later version.\\[\baselineskip]
+%
+% The latest version of this license is in
+% \url{http://www.latex-project.org/lppl.txt}\\
+% and version 1.3c or later is part of all distributions of
+% \LaTeX~version 2005/12/01 or later.\\[\baselineskip]
+%
+% This work has the LPPL maintenance status ''maintained''.\\[\baselineskip]
+%
+% The current maintainer of this work is\\
+% Dominik Schmid <\href{mailto:dominik.schmid@tu-dortmund.de}
+% {dominik.schmid@tu-dortmund.de>}.\\[\baselineskip]
+%
+% This work consists of the files temporal-logic.dtx, temporal-logic.ins,\\
+% and the derived file temporal-logic.sty.
+% \end{center}
+% \section{Sourcecode}
+% \label{sec:sourcecode}
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+% <*package>
+% <@@=cmftbl>
+
+\RequirePackage{amsmath}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{tikz}
+
+\ProvidesExplPackage {temporal-logic} { 2024-10-17 } { v1.0 }{
+ Symbols for Temporal Logics
+}
+
+\cs_new:Nn \__@@_op_sup_sub:Nnn {
+ \ensuremath {
+ #1
+ \tl_if_empty:nF { #2 } { \c_math_superscript_token { \,#2 } }
+ \tl_if_empty:nF { #3 } { \c_math_subscript_token { \,#3 } }
+ \,
+ }
+}
+\cs_generate_variant:Nn \__@@_op_sup_sub:Nnn { cnn }
+
+\cs_new:Nn \__@@_op_sup:Nn { \__@@_op_sup_sub:Nnn { #1 } { #2 } {} }
+\cs_generate_variant:Nn \__@@_op_sup:Nn { cn }
+
+\cs_new:Nn \__@@_op_sub:Nn { \__@@_op_sup_sub:Nnn { #1 } { } { #2 } }
+\cs_generate_variant:Nn \__@@_op_sub:Nn { cn }
+
+\cs_new:Nn \__@@_op:N { \__@@_op_sup_sub:Nnn { #1 } { } { } }
+\cs_generate_variant:Nn \__@@_op:N { c }
+
+\dim_new:N \__@@_fht_dim
+\cs_new:Nn \__@@_ex: { \dim_use:N \__@@_fht_dim }
+
+\cs_new:Nn \__@@_render_op:n {
+ \dim_set:Nn \__@@_fht_dim {\fontcharht\font`X}
+ \tikz[execute~at~end~picture={
+ \useasboundingbox (0, 0) rectangle (\__@@_ex:, \__@@_ex:);
+ }]{
+ \group_begin:
+ \cs_set_eq:NN \EX \__@@_ex:
+ #1
+ \group_end:
+ }
+}
+
+\DeclareMathOperator { \csymbeventually } {
+ \__@@_render_op:n {
+ \draw
+ (.5*\EX, 0) --
+ (.2*\EX, .5*\EX) --
+ (.5*\EX, \EX) --
+ (.8*\EX, .5*\EX) --
+ cycle;
+ }
+}
+\DeclareMathOperator { \csymbonce } {
+ \__@@_render_op:n {
+ \draw[fill]
+ (.5*\EX, 0) --
+ (.2*\EX, .5*\EX) --
+ (.5*\EX, \EX) --
+ (.8*\EX, .5*\EX) --
+ cycle;
+}
+}
+\DeclareMathOperator { \csymbglobally } {
+ \__@@_render_op:n {
+ \draw
+ (.15*\EX, .15*\EX)
+ rectangle
+ (.85*\EX, .85*\EX);
+ }
+}
+\DeclareMathOperator { \csymbhistorically } {
+ \__@@_render_op:n {
+ \draw[fill]
+ (.15*\EX, .15*\EX)
+ rectangle
+ (.85*\EX, .85*\EX);
+ }
+}
+\DeclareMathOperator { \csymbnext } {
+ \__@@_render_op:n {
+ \draw
+ (.5*\EX, .5*\EX)
+ circle
+ (.4*\EX);
+ }
+}
+\DeclareMathOperator { \csymbprevious } {
+ \__@@_render_op:n {
+ \draw[fill]
+ (.5*\EX, .5*\EX)
+ circle
+ (.4*\EX);
+ }
+}
+\DeclareMathOperator { \csymbuntil } {
+ \ensuremath\mathcal{U}
+}
+\DeclareMathOperator { \csymbsince } {
+ \ensuremath\mathcal{S}
+}
+\DeclareMathOperator { \csymbminprevalence } {
+ \__@@_render_op:n {
+ \draw
+ (.1*\EX, .9*\EX) --
+ (.9*\EX, .9*\EX) --
+ (.5*\EX, .1*\EX) --
+ cycle;
+ }
+}
+\DeclareMathOperator { \csymbpastminprevalence } {
+ \__@@_render_op:n {
+ \draw[fill]
+ (.1*\EX, .9*\EX) --
+ (.9*\EX, .9*\EX) --
+ (.5*\EX, .1*\EX) --
+ cycle;
+ }
+}
+\DeclareMathOperator { \csymbmaxprevalence } {
+ \__@@_render_op:n {
+ \draw
+ (.1*\EX, .1*\EX) --
+ (.9*\EX, .1*\EX) --
+ (.5*\EX, .9*\EX) --
+ cycle;
+}
+ }
+\DeclareMathOperator { \csymbpastmaxprevalence } {
+ \__@@_render_op:n {
+ \draw[fill]
+ (.1*\EX, .1*\EX) --
+ (.9*\EX, .1*\EX) --
+ (.5*\EX, .9*\EX) --
+ cycle;
+ }
+}
+\DeclareMathOperator { \csymbbind } {
+ \__@@_render_op:n {
+ \draw (.5*\EX, \EX) -- (.5*\EX, 0);
+ \draw
+ (.2*\EX, .3*\EX) ..
+ controls (.4*\EX, .2*\EX) ..
+ (.5*\EX, 0) ..
+ controls (.6*\EX, .2*\EX) ..
+ (.8*\EX, .3*\EX);
+ }
+}
+
+\ProvideDocumentCommand { \ceventually } { O{} } {
+ \__@@_op_sub:cn { csymbeventually } { #1 }
+}
+\ProvideDocumentCommand { \conce } { O{} } {
+ \__@@_op_sub:cn { csymbonce } { #1 }
+}
+\ProvideDocumentCommand { \cglobally } { O{} } {
+ \__@@_op_sub:cn { csymbglobally } { #1 }
+}
+\ProvideDocumentCommand { \chistorically } { O{} } {
+ \__@@_op_sub:cn { csymbhistorically } { #1 }
+}
+\ProvideDocumentCommand { \cnext } { O{} } {
+ \__@@_op_sub:cn { csymbnext } { #1 }
+}
+\ProvideDocumentCommand { \cprevious } { O{} } {
+ \__@@_op_sub:cn { csymbprevious } { #1 }
+}
+\ProvideDocumentCommand { \cuntil } { O{} } {
+ \__@@_op_sub:Nn { \;\csymbuntil } { #1 }
+}
+\ProvideDocumentCommand { \csince } { O{} } {
+ \__@@_op_sub:Nn { \;\csymbsince } { #1 }
+}
+\ProvideDocumentCommand { \cminprevalence } { m O{} } {
+ \__@@_op_sup_sub:cnn { csymbminprevalence } { #1 } { #2 }
+}
+\ProvideDocumentCommand { \cpastminprevalence } { m O{} } {
+ \__@@_op_sup_sub:cnn { csymbpastminprevalence } { #1 } { #2 }
+}
+\ProvideDocumentCommand { \cmaxprevalence } { m O{} } {
+ \__@@_op_sup_sub:cnn { csymbmaxprevalence } { #1 } { #2 }
+}
+\ProvideDocumentCommand { \cpastmaxprevalence } { m O{} } {
+ \__@@_op_sup_sub:cnn { csymbpastmaxprevalence } { #1 } { #2 }
+}
+\ProvideDocumentCommand { \cbind } { m m } {
+ \__@@_op_sup_sub:cnn { csymbbind } { #1 } { #2 }
+}
+% </package>
+% \end{macrocode}
+% \end{implementation} \ No newline at end of file
diff --git a/macros/latex/contrib/temporal-logic/temporal-logic.ins b/macros/latex/contrib/temporal-logic/temporal-logic.ins
new file mode 100644
index 0000000000..64d7c23175
--- /dev/null
+++ b/macros/latex/contrib/temporal-logic/temporal-logic.ins
@@ -0,0 +1,52 @@
+\iffalse meta-comment
+
+File: temporal-logic.ins
+
+Copyright (C) 2024 Dominik Schmid and Till Schallau
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The current maintainer of this work is Dominik Schmid<dominik.schmid@tu-dortmund.de>.
+
+This work consists of the files temporal-logic.dtx, temporal-logic.ins,
+and the derived file temporal-logic.sty.
+
+\fi
+
+\input l3docstrip.tex
+
+\askforoverwritefalse
+
+\preamble
+Copyright (C) 2024 Dominik Schmid and Till Schallau
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The current maintainer of this work is Dominik Schmid<dominik.schmid@tu-dortmund.de>.
+
+This work consists of the files temporal-logic.dtx, temporal-logic.ins,
+and the derived file temporal-logic.sty.
+\endpreamble
+
+\postamble
+\endpostamble
+
+\generate{\file{temporal-logic.sty} {\from{temporal-logic.dtx} {package}}}
+
+\endbatchfile
diff --git a/macros/latex/contrib/to-be-determined/DEPENDS.txt b/macros/latex/contrib/to-be-determined/DEPENDS.txt
index 65d662e55e..e0f8ac912e 100644
--- a/macros/latex/contrib/to-be-determined/DEPENDS.txt
+++ b/macros/latex/contrib/to-be-determined/DEPENDS.txt
@@ -1,2 +1,17 @@
+hard soul
hard xcolor
-hard soul \ No newline at end of file
+soft docshots
+soft environ
+soft etoolbox
+soft href-ul
+soft hypdoc
+soft l3build
+soft libertine
+soft mathtools
+soft microtype
+soft pdfcrop
+soft pgf
+soft pgfopts
+soft scheme-basic
+soft tools
+soft xetex
diff --git a/macros/latex/contrib/to-be-determined/LICENSE.txt b/macros/latex/contrib/to-be-determined/LICENSE.txt
index bd949ffdab..1f211e0287 100644
--- a/macros/latex/contrib/to-be-determined/LICENSE.txt
+++ b/macros/latex/contrib/to-be-determined/LICENSE.txt
@@ -1,6 +1,6 @@
(The MIT License)
-Copyright (c) 2021-2022 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
diff --git a/macros/latex/contrib/to-be-determined/README.md b/macros/latex/contrib/to-be-determined/README.md
index 74578626d3..24ba9bca1a 100644
--- a/macros/latex/contrib/to-be-determined/README.md
+++ b/macros/latex/contrib/to-be-determined/README.md
@@ -1,14 +1,18 @@
+# The `\tbd` LaTeX Command (to be determined)
+
[![make](https://github.com/yegor256/to-be-determined/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/to-be-determined/actions/workflows/l3build.yml)
[![CTAN](https://img.shields.io/ctan/v/to-be-determined)](https://ctan.org/pkg/to-be-determined)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/to-be-determined/blob/master/LICENSE.txt)
This LaTeX package helps you highlight pieces of your code that needs
-further work (TBD stands for "to be determined").
-The package uses [`xcolor`](https://ctan.org/pkg/minted)
+further work (TBD stands for "to be determined").
+The package uses [`xcolor`](https://ctan.org/pkg/xcolor),
+[`mathtools`](https://ctan.org/pkg/mathtools),
and [`soul`](https://ctan.org/pkg/soul) packages.
-First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
-from [CTAN](https://ctan.org/pkg/to-be-determined)
+First,
+[install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+from [CTAN](https://ctan.org/pkg/to-be-determined)
and then use in the preamble:
```tex
@@ -19,10 +23,13 @@ The budget is \tbd{99.00 USD}.
\end{document}
```
-Otherwise, you can download [`to-be-determined.sty`](https://raw.githubusercontent.com/yegor256/to-be-determined/gh-pages/to-be-determined/to-be-determined.sty) and add to your project.
+Otherwise, you can download [`to-be-determined.sty`][sty]
+and add to your project.
If you want to contribute yourself, make a fork, then create a branch,
then run `l3build ctan` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
Otherwise, make your changes and then run `l3build ctan` again. If the build is
still clean, submit a pull request.
+
+[sty]: https://raw.githubusercontent.com/yegor256/to-be-determined/gh-pages/to-be-determined/to-be-determined.sty
diff --git a/macros/latex/contrib/to-be-determined/to-be-determined.dtx b/macros/latex/contrib/to-be-determined/to-be-determined.dtx
index 9cb2074d9b..91183abd3f 100644
--- a/macros/latex/contrib/to-be-determined/to-be-determined.dtx
+++ b/macros/latex/contrib/to-be-determined/to-be-determined.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% (The MIT License)
%
-% Copyright (c) 2021-2022 Yegor Bugayenko
+% Copyright (c) 2021-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{to-be-determined}
%<*package>
-[31.10.20220 0.3.0 Highlighting places requiring future work]
+[2024/10/11 0.3.2 Highlighting places requiring future work]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -81,24 +81,26 @@
% \section{Introduction}
%
% This package helps you highlight places in your articles
-% and make sure it looks nice. Install it from CTAN and then
+% and make sure the hightlighting looks nice. Install it from CTAN and then
% use like this:
+% \docshotPrerequisite{../local/to-be-determined.sty}
% \begin{docshot}
% \documentclass{article}
% \pagestyle{empty}
% \usepackage{to-be-determined}
% \begin{document}
-% The budget is \tbd{99.00 USD}.
+% The budget is \tbd{99.00 USD}.\par
+% In math too: $a \tbd{?} b$.
% \end{document}
% \end{docshot}
% \section{Package Options}
% \DescribeMacro{hide}
-% If you want to hide the content of what's inside |\tbd|,
-% use |hide| option of the package. They will all be replaced with
-% \tbd{TBD} placeholders.
+% If you want to hide the content of what's inside the |\tbd| command,
+% use the |hide| option of the package. They all will be replaced with
+% the \tbd{TBD} placeholders.
% \DescribeMacro{off}
% If you want them to disappear entirely, use the |off| package option.
@@ -121,22 +123,32 @@
\ProcessOptionsX\relax
% \end{macrocode}
-% Then, we include a few packages:
+% Then, we include \href{https://ctan.org/pkg/xcolor}{xcolor} to use colors:
% \begin{macrocode}
\RequirePackage{xcolor}
+% \end{macrocode}
+
+% Then, we include \href{https://ctan.org/pkg/mathtools}{mathtools} to enable our commands in math mode:
+% \begin{macrocode}
+\RequirePackage{mathtools}
+% \end{macrocode}
+
+% Then, we include \href{https://ctan.org/pkg/soul}{soul} to use highlights:
+% \begin{macrocode}
\RequirePackage{soul}
% \end{macrocode}
% \begin{macro}{\tbd}
+% \changes{v0.3.1}{2024/10/11}{Now, it works in math mode too.}
% Finally, we define the |\tbd| command:
% \begin{macrocode}
\makeatletter\newcommand\tbd[1]{{%
\iftbd@off\else%
\sethlcolor{yellow}%
\iftbd@hide%
- \hl{TBD}%
+ \text{\hl{TBD}}%
\else%
- \hl{#1}%
+ \text{\hl{#1}}%
\fi%
\fi%
}}\makeatother
diff --git a/macros/latex/contrib/to-be-determined/to-be-determined.ins b/macros/latex/contrib/to-be-determined/to-be-determined.ins
index a922989b50..db2662409e 100644
--- a/macros/latex/contrib/to-be-determined/to-be-determined.ins
+++ b/macros/latex/contrib/to-be-determined/to-be-determined.ins
@@ -1,6 +1,6 @@
%% (The MIT License)
%%
-%% Copyright (c) 2021-2022 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@
\preamble
(The MIT License)
-Copyright (c) 2021-2022 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
diff --git a/macros/latex/contrib/to-be-determined/to-be-determined.pdf b/macros/latex/contrib/to-be-determined/to-be-determined.pdf
index f330b28d2a..ea87f0f19f 100644
--- a/macros/latex/contrib/to-be-determined/to-be-determined.pdf
+++ b/macros/latex/contrib/to-be-determined/to-be-determined.pdf
Binary files differ
diff --git a/macros/latex/contrib/tugboat/NEWS b/macros/latex/contrib/tugboat/NEWS
index 2d5c0f52fa..773c540090 100644
--- a/macros/latex/contrib/tugboat/NEWS
+++ b/macros/latex/contrib/tugboat/NEWS
@@ -1,11 +1,31 @@
-$Id: NEWS 560 2024-04-15 17:16:18Z karl $
+$Id: NEWS 609 2024-10-29 21:17:26Z karl $
This file records noteworthy changes. This file is public domain.
-----------------
-2.32 (2023-04-15):
+2.34 (2024-10-29):
ltugboat.cls:
-- don't print leading http://.
-- increase natural space, stretch, shrink after run-in heads; before,
+- keep the new forced space on toc lines within tagging-aware code,
+ so it doesn't disappear.
+- elide spurious space for nonumber subsubsections.
+(Thanks to Ulrike Fischer for reports and fixes.)
+
+-----------------
+2.33 (2024-10-26):
+ltugboat.cls:
+- use \hfil instead of \hss in toc, to avoid silently overfull entries.
+- make \WEB, \Xe, \cents, others more tag-friendly.
+- new abbreviation \HTTPS.
+
+tugboat.bst:
+- new entry type @webpage.
+- new editor field nojournalcomma.
+- howpublished not omitted when doi or url is present.
+
+-----------------
+2.32 (2024-04-15):
+ltugboat.cls:
+- don't print leading http://, like with https://.
+ - increase natural space, stretch, shrink after run-in heads; before,
\frenchspacing was unintentionally in effect.
- decrease \floatsep and \textfloatsep to go along with reduced
\abovecaption skip; increase topnumber, bottomnumber, totalnumber,
diff --git a/macros/latex/contrib/tugboat/ltubguid.pdf b/macros/latex/contrib/tugboat/ltubguid.pdf
index 68ceecfb08..d6c8a9ad01 100644
--- a/macros/latex/contrib/tugboat/ltubguid.pdf
+++ b/macros/latex/contrib/tugboat/ltubguid.pdf
Binary files differ
diff --git a/macros/latex/contrib/tugboat/tugboat-code.pdf b/macros/latex/contrib/tugboat/tugboat-code.pdf
index 2f928019ca..713a397a0f 100644
--- a/macros/latex/contrib/tugboat/tugboat-code.pdf
+++ b/macros/latex/contrib/tugboat/tugboat-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/tugboat/tugboat.bst b/macros/latex/contrib/tugboat/tugboat.bst
index ce1a5c3476..940fb8bc92 100644
--- a/macros/latex/contrib/tugboat/tugboat.bst
+++ b/macros/latex/contrib/tugboat/tugboat.bst
@@ -1,9 +1,10 @@
-%%% $Id: tugboat.bst 557 2024-03-31 15:56:24Z karl $
+%%% $Id: tugboat.bst 593 2024-10-07 18:02:33Z karl $
%%% TUGboat changes are public domain.
%%%
%%% Modified for TUGboat from abbrvurl.bst:
-%%% New entry types: @ctan (see ctanbib);
-%%% @online and @software (aliases for @misc).
+%%% New entry types: @ctan (see ctanbib package);
+%%% @online and @software (aliases for @misc);
+%%% @webpage (see definition below).
%%% For @misc, the editor field is accepted along with author.
%%% For @misc, the organization field is output.
%%% New field bookauthor for @incollection and @inproceedings.
@@ -18,9 +19,9 @@
%%% Set urlintro="" and onlinestring="" to omit labels from output.
%%% Use \url instead of \href, so we don't require hyperref.
%%% Always use https://doi.org/ for the doi url; omit "doi:" from output.
-%%% If doi or howpublished is present, omit url, since in practice
-%%% they are usually all the same thing. Should check if
-%%% howpublished is in fact a url, but we currently don't.
+%%% If doi is present, omit url, since in practice they are usually
+%%% the same thing. Should also omit if howpublished is the same
+%%% value, but we currently don't.
%%% Truncate long author lists in format.names (max.names, trunc.num);
%%% omit "and" from author lists, per Oren P.
%%% Use \emph instead of \em so we get automatic italic corrections.
@@ -28,6 +29,7 @@
%%% "journaltie" - ~ instead of space after journal name.
%%% "monthtie" - ~ instead of space after month name.
%%% "newpage" - force page break after entry.
+%%% "nojournalcomma" - if set, omit comma after journal name.
%%% "nowarning" - if set, omit empty field warnings from output.check.
%%% "pagesnodashify" - if set, don't convert - to -- in pages field.
%%% "prebibitem" - material output before \bibitem, with newline appended
@@ -91,6 +93,7 @@ ENTRY
journaltie % tub
monthtie % tub
newpage % tub
+ nojournalcomma % tub
nowarning % tub
pagesnodashify % tub
prebibitem % tub
@@ -197,8 +200,9 @@ FUNCTION {output.nonnull.original}
journal missing$
or
{ ", " * } % not a journal, normal comma+space separator
- { journal "TUGboat" = journal "\TUB" = or
- { skip$ } % TUGboat, no comma
+ { journal "TUGboat" = journal "\TUB" = or
+ nojournalcomma empty$ not or
+ { skip$ } % TUGboat or no comma requested
{ "," * } % not TUGboat, want comma
if$
journaltie empty$
@@ -816,7 +820,11 @@ FUNCTION {format.vol.num.pages}
'skip$
{ "(" number * ")" * *
volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
+ { nowarning empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
'skip$
if$
}
@@ -1009,19 +1017,24 @@ FUNCTION {make.href}
if$
}
-% If inlinelinks is true, then format.url should be a no-op, since it's
-% (a) redundant, and (b) could end up as a link-within-a-link.
-% Likewise if the url is empty.
-% Likewise if doi or howpublished is present, on the assumption that
-% url most likely redundantly specifies the same info as those fields; this
-% seems to be what people do in practice.
+% This function, format.url, should do nothing if
+% - inlinelinks is true, since then it's (a) redundant, and (b) could
+% end up as a link-within-a-link.
+% - if the url is empty.
+% - if the doi field is present, on the assumption that it most
+% likely redundantly specifies the same info; this seems to be what
+% people do in practice, unfortunately.
+%
+% If we find this case again in the future, we'll implement it.
+% For tb141lang-dh, howpublished is intentionally and reasonably
+% separate from url.
+% - if the howpublished field contains the same value as the url field;
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
doi empty$ not or
- howpublished empty$ not or
{ "" }
{ hrefform #1 =
- { % special case -- add HyperTeX specials
+ { % #1 means add HyperTeX, which we never do
urlintro "\url{" url * "}" * url make.href.hypertex * }
{ urlintro "\url{" * url * "}" * }
if$
diff --git a/macros/latex/contrib/tugboat/tugboat.dtx b/macros/latex/contrib/tugboat/tugboat.dtx
index ea24059825..9fa06ff0d5 100644
--- a/macros/latex/contrib/tugboat/tugboat.dtx
+++ b/macros/latex/contrib/tugboat/tugboat.dtx
@@ -1,5 +1,5 @@
% \iffalse (this is a meta-comment (so they say))
-% $Id: tugboat.dtx 560 2024-04-15 17:16:18Z karl $
+% $Id: tugboat.dtx 609 2024-10-29 21:17:26Z karl $
% tugboat.dtx - main source for LaTeX TUGboat classes.
%
% Copyright 1994-2024 TeX Users Group.
@@ -28,7 +28,7 @@
%<ltugboatsty>\ProvidesPackage{ltugboat}
%<ltugprocsty>\ProvidesPackage{ltugproc}
%<ltugcomn> \ProvidesPackage{ltugcomn}
- [2024-04-15 v2.32
+ [2024-10-29 v2.34
%<ltugboatcls> TUGboat journal class%
%<ltugproccls> TUG conference proceedings class%
%<ltugboatsty|ltugprocsty> TUG compatibility package%
@@ -757,6 +757,7 @@
\def\Hawaii{Hawai`i}
\def\HTML{\acro{HTML}}
\def\HTTP{\acro{HTTP}}
+\def\HTTPS{\acro{HTTPS}}
\def\iOS{i\acro{OS}}
\def\IDE{\acro{IDE}}
\def\IEEE{\acro{IEEE}}
@@ -929,7 +930,7 @@
\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\@}
\def\XML{\acro{XML}}
\def\XMP{\acro{XMP}}
-\def\WEB{\texttt{WEB}\@}
+\def\WEB{\texorpdfstring{\texttt{WEB}\@}{WEB}}
\def\WEAVE{\texttt{WEAVE}\@}
\def\WYSIWYG{\acro{WYSIWYG}}
\def\YAML{\acro{YAML}}
@@ -958,19 +959,32 @@
\def\tubhideheight#1{\setbox0=\hbox{#1}\ht0=0pt \dp0=0pt \box0 }
\def\XekernbeforeE{-.125em}
\def\XekernafterE{-.1667em}
-\DeclareRobustCommand{\Xe}{\leavevmode
+% From Max, mail of 13sep24:
+% hyperref is trying to expand \Xe to get a string for
+% the embedded PDF table of contents, but \Xe is unsafe in an
+% expansion-only context [even when defined with \DeclareRobustCommand,
+% for reasons unknown].
+% An easy way to fix this is to replace \DeclareRobustCommand with
+% \NewDocumentCommand, which defines the macro as ``\protected'' instead
+% as ``\protect''ed.
+\NewDocumentCommand\tub@Xe{}{\leavevmode
\tubhideheight{\hbox{X%
\setbox0=\hbox{\TeX}\setbox1=\hbox{E}%
\ifdim \fontdimen1\font>0pt
- % XeTeX logo needs tinkering when slanted/italic font.
+ % XeTeX logo needs tinkering when slanted/italic font,
+ % so make kerns changeable
\def\XekernbeforeE{-.11em}%
\def\XekernafterE{-.16em}%
\dp1=-.17ex
\fi
\lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}%
\kern\XekernafterE}}}
-\def\XeTeX{\Xe\TeX}
-\def\XeLaTeX{\Xe{\kern.11em \LaTeX}}
+% [But then,] For hyperref to be able to see the \texorpdfstring, it
+% needs to be inside of a non-protected macro, but we still want the
+% graphics commands to be protected, so we need to make a wrapper command:
+\newcommand\Xe{\texorpdfstring{\tub@Xe}{Xe}}
+\def\XeTeX{\texorpdfstring{\Xe\TeX}{XeTeX}}
+\def\XeLaTeX{\texorpdfstring{\Xe{\kern.11em \LaTeX}}{XeLaTeX}}
%
\def\XHTML{\acro{XHTML}}
\def\XSL{\acro{XSL}}
@@ -1265,8 +1279,13 @@
\leavevmode\kern0.5em
\raise\p@\vbox{\baselineskip6\p@\vskip7\p@\hbox{.}\hbox{.}\hbox{.}}
}
+% \bull doesn't work with tagging; requires ActualText using, e.g.,
+% accsup, but the ActualText is ignored since it's just a rule.
+% (Lots of our other commands also are not properly tagged.)
+% https://github.com/latex3/tagging-project/pull/535
\def\bull{\vrule \@height 1ex \@width .8ex \@depth -.2ex }
-\def\cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
+\DeclareRobustCommand{\cents}{\textcent}
+\def\tubcentsold{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
\def\careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
/\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
\def\Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}}
@@ -1298,7 +1317,7 @@
% But it feels like that is too intrusive a change, even though in
% practice we always prefer tt slanted.
\DeclareRobustCommand{\cs}[1]{\texorpdfstring
- {{\tt \char`\\#1}}%
+ {{\tt \char`\\#1}\@}%
{\textbackslash #1}%
}
%
@@ -1339,7 +1358,7 @@
% \cs{tbhurl}\tubbraced{foo} produces \texttt{http://foo}.
\AtBeginDocument{%
\ifx\hyper@normalise\undefined
- \ifx\url\undefined % make sure \url is defined
+ \ifx\url\undefined % define our own simplistic non-hyperref \url
\def\url{\begingroup % might as well catch common special chars
\catcode`\#=12 \catcode`\$=12 \catcode`\%=12 \catcode`\^=12
\catcode`\&=12 \catcode`\_=12 \catcode`\~=12
@@ -2118,16 +2137,16 @@
% Both `types' of author fall through here to set up the author name
% and to initialise author-related things. \cs{EDITORno*} commands
% allow the editor to record that there's good reason for an
-% \emph{address} or \emph{netaddress} not to be there (the
-% \emph{personalURL} and \emph{ORCID} are optional anyway).
+% \emph{address} or \emph{netaddress} not to be there, but nowadays, we
+% consider all address information optional.
% \begin{macrocode}
\def\TB@author#1{%
\expandafter\def\csname theauthor\number\authornumber\endcsname
{\ignorespaces#1\unskip}%
- \expandafter\def\csname theaddress\number\authornumber\endcsname
- {\TBWarningNL{Address for #1\space missing}\@gobble}%
- \expandafter\def\csname thenetaddress\number\authornumber\endcsname
- {\TBWarningNL{Net address for #1\space missing}\@gobble}%
+% \expandafter\def\csname theaddress\number\authornumber\endcsname
+% {\TBWarningNL{Address for #1\space missing}\@gobble}%
+% \expandafter\def\csname thenetaddress\number\authornumber\endcsname
+% {\TBWarningNL{Net address for #1\space missing}\@gobble}%
\expandafter\let\csname thePersonalURL\number\authornumber\endcsname
\@gobble
\expandafter\let\csname theORCID\number\authornumber\endcsname
@@ -2587,8 +2606,8 @@
\ifdim \wd0 < 5\p@ % omit if author is null
\else
% \end{macrocode}
-% Since we have \(\mathtt{\cs{BelowTitleSkip}} + \mathtt{4pt} =
-% \mathtt{\cs{baselineskip}}\), we skip by |4pt| here. However, an
+% Since we have \(\hbox{\cs{BelowTitleSkip}} + \mathtt{4pt} =
+% \hbox{\cs{baselineskip}}\), we skip by |4pt| here. However, an
% all-text first column still comes out underfull, maybe because of the
% top rule? Thus \cs{BelowTitleSkip} is given a little stretch and shrink.
% \begin{macrocode}
@@ -2739,7 +2758,7 @@
{\tubruninglue}
{\tubruninsecfmt}}}
%
- \def\subsubsection{\TB@nolimelabel\TB@startsection{
+ \def\subsubsection{\TB@nolimelabel\TB@startsection{%
{subsubsection}%
3%
\parindent
@@ -2816,7 +2835,10 @@
% \end{macrocode}
%
% \begin{macrocode}
-% |#1| is both the section number and title; |#2| is the page number.
+% |#1| is both the section number and title, as in
+% |{\numberline {1}Introduction}|.
+% |#2| is the page number.
+%
% Per Ulrike, the hook calls are for tagging, introduced with the
% June 2023 \LaTeX.
% qqq need to also do subsections like tb137carlisle to avoid hyphenation
@@ -2831,23 +2853,31 @@
\hyphenpenalty=10000
\TBtocsectionfont
\leavevmode
- \advance\leftskip\@tempdima
+ \advance\leftskip by \@tempdima % space between section number and text
\hskip-\leftskip
- \ifx\UseHookWithArguments\undefined\else
+ %
+ \ifx\UseHookWithArguments\undefined\else % hook before number and text
\UseHookWithArguments{contentsline/text/before}{4}
{\toclevel@part}{#1}{#2}{\@contentsline@destination}%
\fi
+ %
% don't worry if this cs is not defined, hence the \csname.
- \csname contentsline@text@1@format\endcsname{#1}% number and title
- \ifx\UseHookWithArguments\undefined\else
+ % If it doesn't exist, we just typeset #1 as text.
+ \csname contentsline@text@1@format\endcsname
+ {#1% number and title
+ \unskip % avoid extra space just in case
+ \csname pdffakespace\endcsname % fake space if pdftex
+ ~% ensure at least a word space between text and page number
+ }
+ %
+ \ifx\UseHookWithArguments\undefined\else % hook after number and text
\UseHookWithArguments{contentsline/text/after}{4}
{\toclevel@part}{#1}{#2}{\@contentsline@destination}%
\fi
- \nobreak
- \hfil
+ \nobreak\hfil
\nobreak
% page number
- \hb@xt@\@pnumwidth{\hss
+ \hb@xt@\@pnumwidth{\hfil
\ifx\UseHookWithArguments\undefined\else
\UseHookWithArguments{contentsline/page/before}{4}
{\toclevel@part}{#1}{#2}{\@contentsline@destination}%
@@ -3781,8 +3811,8 @@
\else \global\@firstcolumntrue
\global\brokenpenalty100
\setbox\@outputbox\vbox{\hb@xt@\textwidth{\hb@xt@\columnwidth
- {\box\@leftcolumn \hss}\hfil \vrule \@width\columnseprule\hfil
- \hb@xt@\columnwidth{\box\@outputbox \hss}}}\@combinedblfloats
+ {\box\@leftcolumn \hfil}\hfil \vrule \@width\columnseprule\hfil
+ \hb@xt@\columnwidth{\box\@outputbox \hfil}}}\@combinedblfloats
\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup
\fi}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-bw-admonitions.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-bw-admonitions.css.cls.sty
new file mode 100644
index 0000000000..ab94402799
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-bw-admonitions.css.cls.sty
@@ -0,0 +1,46 @@
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+
+\NewExpandableDocumentCommand{\tutodoc@build@title@color}{m}{%
+ white%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@upper@color}{m}{%
+ \tdocdarkcolor[40]{Gray}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@back@color}{m}{%
+ \tdoclightcolor[10]{Gray}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@frame@color}{m}{%
+ Gray!75!black!45%
+}
+
+\colorlet{tutodoc@admonition@shadow@color}{Gray!15}
+
+
+\ExplSyntaxOn
+
+%%%
+% We use two ''prop'' variables to factorize the code just after.
+%%%
+\prop_new:N \g__tutodoc_focus_color_prop
+\prop_new:N \g__tutodoc_focus_icon_prop
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_color_prop {
+ note = DarkGray,
+ tip = DarkGray,
+ imp = DarkGray,
+ caut = DarkGray,
+ warn = DarkGray,
+}
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_icon_prop {
+ note = \faInfoCircle,
+ tip = \faLightbulb,
+ imp = \faHighlighter,
+ caut = \faBiohazard,
+ warn = \faSkullCrossbones,
+}
+
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-bw-listing.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-bw-listing.css.cls.sty
new file mode 100644
index 0000000000..cb370a4953
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-bw-listing.css.cls.sty
@@ -0,0 +1,30 @@
+% :: INLINE LATEX MACRO :: %
+
+\newcommand{\tutodoc@latex@style}{friendly_grayscale}
+
+\colorlet{tutodoc@latex@back@color}{gray!5}
+\colorlet{tutodoc@latex@text@color}{black}
+
+
+% :: THE TCOLORBOX LISTING STYLE :: %
+
+\colorlet{tutodoc@latex@frame@color}{darkgray}
+
+\newcommand{\tutodoc@latex@left@len}{1mm}
+\newcommand{\tutodoc@latex@right@len}{1mm}
+\newcommand{\tutodoc@latex@top@len}{1mm}
+\newcommand{\tutodoc@latex@bottom@len}{1mm}
+
+\newcommand{\tutodoc@latex@arc@len}{.75mm}
+
+\newcommand{\tutodoc@latex@left@rule@len}{1pt}
+\newcommand{\tutodoc@latex@right@rule@len}{1pt}
+\newcommand{\tutodoc@latex@top@rule@len}{1pt}
+\newcommand{\tutodoc@latex@bottom@rule@len}{1pt}
+
+\colorlet{tutodoc@latex@shadow@color}{black!30}
+\newcommand{\tutodoc@latex@shadow@xshift@len}{.75mm}
+\newcommand{\tutodoc@latex@shadow@yshift@len}{-.75mm}
+\newcommand{\tutodoc@latex@shadow@offset@len}{0mm}
+
+\colorlet{tutodoc@latex@segment@color}{gray}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-bw-main.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-bw-main.css.cls.sty
new file mode 100644
index 0000000000..af55d326a5
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-bw-main.css.cls.sty
@@ -0,0 +1,3 @@
+% -- LINKS -- %
+
+\definecolor{tutodoc@link@color}{named}{DimGray}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-bw-showcase.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-bw-showcase.css.cls.sty
new file mode 100644
index 0000000000..a04b2719f5
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-bw-showcase.css.cls.sty
@@ -0,0 +1,21 @@
+% -- SHOWCASE -- %
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@rule@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@stripe@color}{}{%
+ darkgray%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@text@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@rule@color}{m}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@back@color}{m}{%
+ gray!10%
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-bw-version-n-change.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-bw-version-n-change.css.cls.sty
new file mode 100644
index 0000000000..fb32c4d116
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-bw-version-n-change.css.cls.sty
@@ -0,0 +1,5 @@
+% -- VERSION & CHANGES -- %
+
+\NewExpandableDocumentCommand{\tutodoc@changes@when@color}{}{%
+ gray%
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-color-admonitions.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-color-admonitions.css.cls.sty
new file mode 100644
index 0000000000..1ce4b721d7
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-color-admonitions.css.cls.sty
@@ -0,0 +1,50 @@
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+
+\NewExpandableDocumentCommand{\tutodoc@build@title@color}{m}{%
+ white%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@upper@color}{m}{%
+ \tdocdarkcolor{#1}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@lower@color}{m}{%
+ \tdocdarkcolor{#1}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@back@color}{m}{%
+ \tdoclightcolor{#1}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@frame@color}{m}{%
+ #1!75!black!45%
+}
+
+\colorlet{tutodoc@admonition@shadow@color}{black!30}
+
+
+\ExplSyntaxOn
+
+%%%
+% We use two ''prop'' variables to factorize the code just after.
+%%%
+\prop_new:N \g__tutodoc_focus_color_prop
+\prop_new:N \g__tutodoc_focus_icon_prop
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_color_prop {
+ note = cyan,
+ tip = ForestGreen,
+ imp = orange,
+ caut = violet,
+ warn = red,
+}
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_icon_prop {
+ note = \faInfoCircle,
+ tip = \faLightbulb,
+ imp = \faHighlighter,
+ caut = \faBiohazard,
+ warn = \faSkullCrossbones,
+}
+
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-color-listing.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-color-listing.css.cls.sty
new file mode 100644
index 0000000000..1d62d2eb92
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-color-listing.css.cls.sty
@@ -0,0 +1,30 @@
+% :: INLINE LATEX MACRO :: %
+
+\newcommand{\tutodoc@latex@style}{pastie}
+
+\colorlet{tutodoc@latex@back@color}{yellow!4}
+\colorlet{tutodoc@latex@text@color}{black}
+
+
+% :: THE TCOLORBOX LISTING STYLE :: %
+
+\colorlet{tutodoc@latex@frame@color}{darkgray}
+
+\newcommand{\tutodoc@latex@left@len}{1mm}
+\newcommand{\tutodoc@latex@right@len}{1mm}
+\newcommand{\tutodoc@latex@top@len}{1mm}
+\newcommand{\tutodoc@latex@bottom@len}{1mm}
+
+\newcommand{\tutodoc@latex@arc@len}{.75mm}
+
+\newcommand{\tutodoc@latex@left@rule@len}{1pt}
+\newcommand{\tutodoc@latex@right@rule@len}{1pt}
+\newcommand{\tutodoc@latex@top@rule@len}{1pt}
+\newcommand{\tutodoc@latex@bottom@rule@len}{1pt}
+
+\colorlet{tutodoc@latex@shadow@color}{black!30}
+\newcommand{\tutodoc@latex@shadow@xshift@len}{.75mm}
+\newcommand{\tutodoc@latex@shadow@yshift@len}{-.75mm}
+\newcommand{\tutodoc@latex@shadow@offset@len}{0mm}
+
+\colorlet{tutodoc@latex@segment@color}{gray}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-color-main.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-color-main.css.cls.sty
new file mode 100644
index 0000000000..51e3632918
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-color-main.css.cls.sty
@@ -0,0 +1,3 @@
+% -- LINKS -- %
+
+\colorlet{tutodoc@link@color}{NavyBlue!85!white}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-color-showcase.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-color-showcase.css.cls.sty
new file mode 100644
index 0000000000..0f62dc6a08
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-color-showcase.css.cls.sty
@@ -0,0 +1,21 @@
+% -- SHOWCASE -- %
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@rule@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@stripe@color}{}{%
+ cyan%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@text@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@rule@color}{m}{%
+ \tdocdarkcolor{#1}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@back@color}{m}{%
+ \tdoclightcolor{#1}%
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-color-version-n-change.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-color-version-n-change.css.cls.sty
new file mode 100644
index 0000000000..998e5ad08b
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-color-version-n-change.css.cls.sty
@@ -0,0 +1,5 @@
+% -- VERSION & CHANGES -- %
+
+\NewExpandableDocumentCommand{\tutodoc@changes@when@color}{}{%
+ \tdoclightcolor[60]{DarkBlue}%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-dark-admonitions.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-dark-admonitions.css.cls.sty
new file mode 100644
index 0000000000..5716737a1a
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-dark-admonitions.css.cls.sty
@@ -0,0 +1,50 @@
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+
+\NewExpandableDocumentCommand{\tutodoc@build@title@color}{m}{%
+ \tdocdarkcolor[95]{white}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@upper@color}{m}{%
+ \tdocdarkcolor[95]{white}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@lower@color}{m}{%
+ \tdocdarkcolor[95]{white}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@back@color}{m}{%
+ #1!75!black!65%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@build@frame@color}{m}{%
+ \tdocdarkcolor[65]{#1}%
+}
+
+\colorlet{tutodoc@admonition@shadow@color}{black!68}
+
+
+\ExplSyntaxOn
+
+%%%
+% We use two ''prop'' variables to factorize the code just after.
+%%%
+\prop_new:N \g__tutodoc_focus_color_prop
+\prop_new:N \g__tutodoc_focus_icon_prop
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_color_prop {
+ note = cyan,
+ tip = ForestGreen,
+ imp = orange,
+ caut = violet,
+ warn = red,
+}
+
+\prop_set_from_keyval:Nn \g__tutodoc_focus_icon_prop {
+ note = \faInfoCircle,
+ tip = \faLightbulb,
+ imp = \faHighlighter,
+ caut = \faBiohazard,
+ warn = \faSkullCrossbones,
+}
+
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-dark-listing.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-dark-listing.css.cls.sty
new file mode 100644
index 0000000000..d285e06253
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-dark-listing.css.cls.sty
@@ -0,0 +1,30 @@
+% :: INLINE LATEX MACRO :: %
+
+\newcommand{\tutodoc@latex@style}{github-dark}
+
+\colorlet{tutodoc@latex@back@color}{\tdocdarkcolor[30]{white}}
+\colorlet{tutodoc@latex@text@color}{\tdocdarkcolor[80]{white}}
+
+
+% :: THE TCOLORBOX LISTING STYLE :: %
+
+\colorlet{tutodoc@latex@frame@color}{darkgray}
+
+\newcommand{\tutodoc@latex@left@len}{1mm}
+\newcommand{\tutodoc@latex@right@len}{1mm}
+\newcommand{\tutodoc@latex@top@len}{1mm}
+\newcommand{\tutodoc@latex@bottom@len}{1mm}
+
+\newcommand{\tutodoc@latex@arc@len}{.75mm}
+
+\newcommand{\tutodoc@latex@left@rule@len}{1pt}
+\newcommand{\tutodoc@latex@right@rule@len}{1pt}
+\newcommand{\tutodoc@latex@top@rule@len}{1pt}
+\newcommand{\tutodoc@latex@bottom@rule@len}{1pt}
+
+\colorlet{tutodoc@latex@shadow@color}{black!30}
+\newcommand{\tutodoc@latex@shadow@xshift@len}{.75mm}
+\newcommand{\tutodoc@latex@shadow@yshift@len}{-.75mm}
+\newcommand{\tutodoc@latex@shadow@offset@len}{0mm}
+
+\colorlet{tutodoc@latex@segment@color}{gray}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-dark-main.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-dark-main.css.cls.sty
new file mode 100644
index 0000000000..ebb8a9a97b
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-dark-main.css.cls.sty
@@ -0,0 +1,9 @@
+% -- SPECIFIC TEXT AND PAGE COLORS -- %
+
+\pagecolor{black}
+\color{\tdocdarkcolor[80]{white}}
+
+
+% -- LINKS -- %
+
+\definecolor{tutodoc@link@color}{HTML}{9591A6}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-dark-showcase.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-dark-showcase.css.cls.sty
new file mode 100644
index 0000000000..63c89b33c0
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-dark-showcase.css.cls.sty
@@ -0,0 +1,21 @@
+% -- SHOWCASE -- %
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@rule@color}{}{%
+ white%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@stripe@color}{}{%
+ white%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@text@color}{}{%
+ white%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@rule@color}{m}{%
+ \tdocdarkcolor[80]{#1}%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@back@color}{m}{%
+ \tdocdarkcolor[30]{#1}%
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-dark-version-n-change.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-dark-version-n-change.css.cls.sty
new file mode 100644
index 0000000000..501e579578
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-dark-version-n-change.css.cls.sty
@@ -0,0 +1,5 @@
+% -- VERSION & CHANGES -- %
+
+\NewExpandableDocumentCommand{\tutodoc@changes@when@color}{}{%
+ \tdoclightcolor[60]{cyan}%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-draft-admonitions.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-draft-admonitions.css.cls.sty
new file mode 100644
index 0000000000..e0e006b048
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-draft-admonitions.css.cls.sty
@@ -0,0 +1,18 @@
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+
+\ExplSyntaxOn
+
+%%%
+% We use a ''seq'' variable to factorize the code just after.
+%%%
+\seq_new:N \g__tutodoc_focus_color_seq
+
+\seq_set_from_clist:Nn \g__tutodoc_focus_color_seq {
+ note,
+ tip,
+ imp,
+ caut,
+ warn,
+}
+
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-draft-listing.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-draft-listing.css.cls.sty
new file mode 100644
index 0000000000..f4e86a62a2
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-draft-listing.css.cls.sty
@@ -0,0 +1,31 @@
+% :: INLINE LATEX MACRO :: %
+
+\renewcommand{\tutodoc@latex@lexer}{text}
+\newcommand{\tutodoc@latex@style}{default}
+
+\colorlet{tutodoc@latex@back@color}{white}
+\colorlet{tutodoc@latex@text@color}{black}
+
+
+% :: THE TCOLORBOX LISTING STYLE :: %
+
+\colorlet{tutodoc@latex@frame@color}{darkgray}
+
+\newcommand{\tutodoc@latex@left@len}{1mm}
+\newcommand{\tutodoc@latex@right@len}{1mm}
+\newcommand{\tutodoc@latex@top@len}{1mm}
+\newcommand{\tutodoc@latex@bottom@len}{1mm}
+
+\newcommand{\tutodoc@latex@arc@len}{0pt}
+
+\newcommand{\tutodoc@latex@left@rule@len}{1pt}
+\newcommand{\tutodoc@latex@right@rule@len}{0pt}
+\newcommand{\tutodoc@latex@top@rule@len}{0pt}
+\newcommand{\tutodoc@latex@bottom@rule@len}{0pt}
+
+\colorlet{tutodoc@latex@shadow@color}{black}
+\newcommand{\tutodoc@latex@shadow@xshift@len}{0mm}
+\newcommand{\tutodoc@latex@shadow@yshift@len}{0mm}
+\newcommand{\tutodoc@latex@shadow@offset@len}{0mm}
+
+\colorlet{tutodoc@latex@segment@color}{black}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-draft-main.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-draft-main.css.cls.sty
new file mode 100644
index 0000000000..fc1194a3db
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-draft-main.css.cls.sty
@@ -0,0 +1,3 @@
+% -- LINKS -- %
+
+\definecolor{tutodoc@link@color}{named}{black}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-draft-showcase.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-draft-showcase.css.cls.sty
new file mode 100644
index 0000000000..0e1c042616
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-draft-showcase.css.cls.sty
@@ -0,0 +1,21 @@
+% -- SHOWCASE -- %
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@rule@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@stripe@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@text@color}{}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@rule@color}{m}{%
+ black%
+}
+
+\NewExpandableDocumentCommand{\tutodoc@showcase@build@back@color}{m}{%
+ white%
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-draft-version-n-change.css.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-draft-version-n-change.css.cls.sty
new file mode 100644
index 0000000000..a503714978
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-draft-version-n-change.css.cls.sty
@@ -0,0 +1,5 @@
+% -- VERSION & CHANGES -- %
+
+\NewExpandableDocumentCommand{\tutodoc@changes@when@color}{}{%
+ black%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty
deleted file mode 100644
index 339f10240c..0000000000
--- a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty
+++ /dev/null
@@ -1,17 +0,0 @@
-\NewDocumentCommand{\tutodoc@trans@date}{mmm}{#1-#2-#3}
-\NewDocumentCommand{\tutodoc@trans@in@EN}{m}{#1 ~ in ~ english}
-\NewDocumentCommand{\tutodoc@trans@this@gives}{m}{This ~ gives ~ #1}
-\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Start ~ of ~ the ~ real ~ output}
-\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{End ~ of ~ the ~ real ~ output}
-\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Example}
-\NewDocumentCommand{\tutodoc@trans@rmk@title}{}{Remark}
-\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
-\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Tip}
-\NewDocumentCommand{\tutodoc@trans@important@title}{}{Important}
-\NewDocumentCommand{\tutodoc@trans@caution@title}{}{Caution}
-\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Warning}
-\NewDocumentCommand{\tutodoc@trans@chges@pb}{}{Problem}
-\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Break}
-\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Fix}
-\NewDocumentCommand{\tutodoc@trans@chges@new}{}{New}
-\NewDocumentCommand{\tutodoc@trans@chges@update}{}{Update} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty
deleted file mode 100644
index c639e1e9e0..0000000000
--- a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty
+++ /dev/null
@@ -1,17 +0,0 @@
-\NewDocumentCommand{\tutodoc@trans@date}{mmm}{#3/#2/#1}
-\NewDocumentCommand{\tutodoc@trans@in@EN}{m}{#1 ~ en ~ anglais}
-\NewDocumentCommand{\tutodoc@trans@this@gives}{m}{Ceci ~ donne ~ #1}
-\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Début ~ du ~ rendu ~ réel}
-\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{Fin ~ du ~ rendu ~ réel}
-\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Exemple}
-\NewDocumentCommand{\tutodoc@trans@rmk@title}{}{Remarque}
-\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
-\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Astuce}
-\NewDocumentCommand{\tutodoc@trans@important@title}{}{Important}
-\NewDocumentCommand{\tutodoc@trans@caution@title}{}{Caution}
-\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Danger}
-\NewDocumentCommand{\tutodoc@trans@chges@pb}{}{Problème}
-\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Bifurcation}
-\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Réparation}
-\NewDocumentCommand{\tutodoc@trans@chges@new}{}{Nouveau}
-\NewDocumentCommand{\tutodoc@trans@chges@update}{}{Mise ~ à ~ jour} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-en.cfg.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-en.cfg.cls.sty
new file mode 100644
index 0000000000..f13e20adac
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-en.cfg.cls.sty
@@ -0,0 +1,18 @@
+\NewDocumentCommand{\tutodoc@trans@date}{mmm}{#1-#2-#3}
+\NewDocumentCommand{\tutodoc@trans@in@EN}{m}{#1 in English}
+\NewDocumentCommand{\tutodoc@trans@this@gives}{m}{This gives #1}
+\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Start of the real output}
+\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{End of the real output}
+\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Example}
+\NewDocumentCommand{\tutodoc@trans@rem@title}{}{Remark}
+\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
+\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Tip}
+\NewDocumentCommand{\tutodoc@trans@imp@title}{}{Important}
+\NewDocumentCommand{\tutodoc@trans@caut@title}{}{Caution}
+\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Warning}
+\NewDocumentCommand{\tutodoc@trans@chges@tech}{}{Technical information}
+\NewDocumentCommand{\tutodoc@trans@chges@prob}{}{Problem}
+\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Break}
+\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Fix}
+\NewDocumentCommand{\tutodoc@trans@chges@new}{}{New}
+\NewDocumentCommand{\tutodoc@trans@chges@update}{}{Update} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-es.cfg.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-es.cfg.cls.sty
new file mode 100644
index 0000000000..d1c5c7d09a
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-es.cfg.cls.sty
@@ -0,0 +1,18 @@
+\NewDocumentCommand{\tutodoc@trans@date}{mmm}{#1/#2/#3}
+\NewDocumentCommand{\tutodoc@trans@in@EN}{m}{#1 en inglés}
+\NewDocumentCommand{\tutodoc@trans@this@gives}{m}{Esto da #1}
+\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Inicio de la representación real}
+\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{Fin de la representación real}
+\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Ejemplo}
+\NewDocumentCommand{\tutodoc@trans@rem@title}{}{Observación}
+\NewDocumentCommand{\tutodoc@trans@note@title}{}{Nota}
+\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Astucia}
+\NewDocumentCommand{\tutodoc@trans@imp@title}{}{Importante}
+\NewDocumentCommand{\tutodoc@trans@caut@title}{}{Recomendación}
+\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Advertencia}
+\NewDocumentCommand{\tutodoc@trans@chges@tech}{}{Información técnica}
+\NewDocumentCommand{\tutodoc@trans@chges@prob}{}{Problema}
+\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Bifurcación}
+\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Reparación}
+\NewDocumentCommand{\tutodoc@trans@chges@new}{}{Nuevo}
+\NewDocumentCommand{\tutodoc@trans@chges@update}{}{Actualización} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-fr.cfg.cls.sty b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-fr.cfg.cls.sty
new file mode 100644
index 0000000000..21bb1de116
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-main-locale-fr.cfg.cls.sty
@@ -0,0 +1,18 @@
+\NewDocumentCommand{\tutodoc@trans@date}{mmm}{#3/#2/#1}
+\NewDocumentCommand{\tutodoc@trans@in@EN}{m}{#1 en anglais}
+\NewDocumentCommand{\tutodoc@trans@this@gives}{m}{Ceci donne #1}
+\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Début du rendu réel}
+\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{Fin du rendu réel}
+\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Exemple}
+\NewDocumentCommand{\tutodoc@trans@rem@title}{}{Remarque}
+\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
+\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Astuce}
+\NewDocumentCommand{\tutodoc@trans@imp@title}{}{Important}
+\NewDocumentCommand{\tutodoc@trans@caut@title}{}{Mise en garde}
+\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Avertissement}
+\NewDocumentCommand{\tutodoc@trans@chges@tech}{}{Information technique}
+\NewDocumentCommand{\tutodoc@trans@chges@prob}{}{Problème}
+\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Bifurcation}
+\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Réparation}
+\NewDocumentCommand{\tutodoc@trans@chges@new}{}{Nouveau}
+\NewDocumentCommand{\tutodoc@trans@chges@update}{}{Mise à jour} \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc.cls b/macros/latex/contrib/tutodoc/code/tutodoc.cls
new file mode 100644
index 0000000000..fad3c185fe
--- /dev/null
+++ b/macros/latex/contrib/tutodoc/code/tutodoc.cls
@@ -0,0 +1,1429 @@
+% ********************************************************* %
+% ** This is file `tutodoc.cls' generated automatically. ** %
+% ** ** %
+% ** Copyright (C) 2023-2024 by Christophe, BAL ** %
+% ** ** %
+% ** This file may be distributed and/or modified under ** %
+% ** the conditions of the GNU 3 License. ** %
+% ********************************************************* %
+
+\ProvidesExplClass
+ {tutodoc}
+ {2024-10-30} % Creation: 2023-11-29
+ {1.6.2}
+ {This package proposes tools for writing "human friendly" documentations of LaTeX packages.}
+
+
+% =================== %
+% == PACKAGES USED == %
+% =================== %
+
+% ------------- %
+% -- OPTIONS -- %
+% ------------- %
+
+\ExplSyntaxOn
+
+\tl_new:N \l__tutodoc_other_cls_options_tl
+
+\newcommand{ \tutodoc@theme } { color }
+
+\keys_define:nn { tutodoc / main / class / options } {
+ theme .choices:nn = {
+ bw,
+ color,
+ dark,
+ draft
+ } {
+ \renewcommand{ \tutodoc@theme } {
+ \tl_use:N \l_keys_choice_tl
+ }
+ },
+ unknown .code:n = {
+ \tl_set:Nn \l__tutodoc_other_cls_options_tl { #1 }
+ }
+}
+
+\ProcessKeyOptions[tutodoc / main / class / options]
+
+\exp_last_unbraced:NNV \LoadClass[ \l__tutodoc_other_cls_options_tl ]%
+ { article }%
+ [ 2022-06-01 ]
+
+\ExplSyntaxOff
+
+
+% ------------- %
+% -- IMPORTS -- %
+% ------------- %
+
+\RequirePackage[svgnames]%
+ {xcolor}%
+ [2023/11/15]
+
+\RequirePackage[
+ top = 2.5cm,
+ bottom = 2.5cm,
+ left = 2.5cm,
+ right = 2.5cm,
+ marginparwidth = 2cm,
+ marginparsep = 2mm,
+ heightrounded
+]{geometry}%
+ [2020-01-02]
+
+\RequirePackage[raggedright]%
+ {titlesec}%
+ [2023/10/27]
+
+\RequirePackage{tocbasic}
+
+\RequirePackage{xcolor}%
+ [2022/06/12]
+
+\RequirePackage{hyperref}% To load after titlesec!
+ [2023-02-07]
+
+
+% We delegate the management of quoting to the ''csquotes'' package,
+% which takes care of the locale settings.
+\RequirePackage{csquotes}%
+ [2022-09-14]
+
+
+\RequirePackage{fontawesome5}%
+ [2022-05-02]
+
+\RequirePackage{keytheorems}%
+ [2024/09/19]
+
+\RequirePackage[svgnames]%
+ {xcolor}%
+ [2023/11/15]
+
+\RequirePackage{tcolorbox}%
+ [2024/07/10]
+
+\tcbuselibrary{breakable,
+ skins}
+
+
+\RequirePackage{clrstrip}%
+ [2021-08-28]
+
+
+\RequirePackage[highlightmode = immediate]%
+ {minted}%
+ [2024/09/22]
+
+\RequirePackage{tcolorbox}%
+ [2024/07/10]
+
+\tcbuselibrary{minted,
+ breakable,
+ skins}
+
+
+\RequirePackage{fontawesome5}%
+ [2022-05-02]
+
+\RequirePackage{marginnote}%
+ [2018/08/09]
+
+
+% =============== %
+% == MAIN CODE == %
+% =============== %
+
+% --------------------------- %
+% -- COLOR TRANSFORMATIONS -- %
+% --------------------------- %
+
+%%%
+% prototype::
+% #1 : (black-rate)
+% the amount of color relative to black.
+% #2 : (color)
+% one color following the ''xcolor'' format.
+%
+% :return: a "darker" version of the color ''#1''.
+%%%
+\NewExpandableDocumentCommand{\tdocdarkcolor}{O{50}m}{#2!#1!black}
+
+
+%%%
+% prototype::
+% #1 : (transparency)
+% the transparency rate.
+% #2 : (color)
+% one color following the ''xcolor'' format.
+%
+% :return: a "transparent" version of the color `#1`.
+%%%
+\NewExpandableDocumentCommand{\tdoclightcolor}{O{5}m}{#2!#1}
+
+
+% ----------- %
+% -- ICONS -- %
+% ----------- %
+
+%%%
+% prototype::
+% #1 : (aws-icon)
+% one material that expects to be an icon command from the
+% ''fontawsome5'' \pack.
+%
+% :return: the icon followed by a small insecable space.
+%%%
+\NewDocumentCommand{\tdocicon}{m}{%
+ #1\kern.45em%
+}
+
+
+% --------------------- %
+% -- LOCALE SETTINGS -- %
+% --------------------- %
+
+\ExplSyntaxOn
+
+\msg_set:nnnn { tutodoc ~ (main) }
+ { main : unsupported-lang }
+ {
+ unsupported ~ language ~ << ~ #1 ~ >>. %
+ ~ %
+ We ~ will ~ use ~ << ~ en ~ >>.
+ }
+ { \msg_see_documentation_text:n { tutodoc } }
+
+
+\newcommand{\tutodoc@colon}{:}
+
+\AtBeginDocument{
+% We must take care of colons and spacing.
+ \@ifpackageloaded{babel}{
+ \iflanguage{french}{
+ \renewcommand{\tutodoc@colon}{\babelshorthand{:}}
+ }{}
+ }{}
+
+ \newcommand{\tdoclang}{\BCPdata{language}}
+
+% If the lang is not supported, we emit a warning and just turn
+% to the english language.
+ \makeatletter
+
+ \InputIfFileExists{tutodoc-main-locale-\tdoclang.cfg.cls.sty}{}{
+ \input{tutodoc-main-locale-en.cfg.cls.sty}
+
+ \msg_critical:nnx { tutodoc ~ (main) }
+ { main : unsupported-lang }
+ { \tdoclang }
+ }
+
+ \makeatother
+}
+
+\ExplSyntaxOff
+
+
+% ---------------------- %
+% -- GENERAL SETTINGS -- %
+% ---------------------- %
+
+\setlength{\parindent}{0cm}
+
+
+% --------------- %
+% -- TOC & Co. -- %
+% --------------- %
+
+\ifcsundef{chapter}%
+ {}%
+ {\renewcommand{\thechapter}{\Alph{chapter}.}}
+
+\renewcommand{\thesection}{\Roman{section}.}
+\renewcommand{\thesubsection}{\arabic{subsection}.}
+\renewcommand{\thesubsubsection}{\roman{subsubsection}.}
+
+\titleformat{\paragraph}[hang]%
+ {\normalfont\normalsize\bfseries}%
+ {\theparagraph}{1em}%
+ {}
+
+\titlespacing*{\paragraph}%
+ {0pt}%
+ {3.25ex plus 1ex minus .2ex}%
+ {0.5em}
+
+% Source
+% * https://tex.stackexchange.com/a/558025/6880
+\DeclareTOCStyleEntries[
+ raggedentrytext,
+ linefill = \hfill,
+ indent = 0pt,
+ dynindent,
+ numwidth = 0pt,
+ numsep = 1ex,
+ dynnumwidth
+]{tocline}{
+ chapter,
+ section,
+ subsection,
+ subsubsection,
+ paragraph,
+ subparagraph
+}
+
+\DeclareTOCStyleEntry[indentfollows = chapter]{tocline}{section}
+
+
+% ------------------- %
+% -- LINKS AND CO. -- %
+% ------------------- %
+
+\input{tutodoc-\tutodoc@theme-main.css.cls.sty}
+
+\hypersetup{
+ colorlinks,
+ citecolor = tutodoc@link@color,
+ filecolor = tutodoc@link@color,
+ linkcolor = tutodoc@link@color,
+ urlcolor = tutodoc@link@color
+}
+
+
+% ------------- %
+% -- QUOTING -- %
+% ------------- %
+
+%%%
+% prototype::
+% #1 : (text)
+% a text to quote.
+%
+% For example, ''\tdocquote{Something}'' prints **"Something"**.
+%%%
+\NewDocumentCommand{\tdocquote}{m}{%
+ \enquote{\emph{#1}}%
+}
+
+
+% ------------------------------ %
+% -- EXPLAINING ENGLISH NAMES -- %
+% ------------------------------ %
+
+%%%
+% prototype::
+% #1 : (EN-text)
+% an english text that will be explained in another \lang.
+%
+% :extra: this macro has a star version.
+%
+% For example, if the language chosen is ''french'', we have
+% the following outputs.
+%
+% 1) ''\tdocinEN{Something}'' prints
+% **"Something" en anglais**.
+%
+% 2) ''\tdocinEN*{Something}'' just prints
+% **"Something"**.
+%
+% 3) ''\tdocinEN*{Something} et \tdocinEN{Another thing}''
+% gives
+% **"Something" et "Another thing" en anglais**.
+%%%
+\NewDocumentCommand{\tdocinEN}{s m}{%
+ \IfBooleanTF{#1}{% No star used.
+ \tdocquote{#2}%
+ }{% Star used.
+ \tutodoc@trans@in@EN{\tdocquote{#2}}%
+ }%
+}
+
+
+% ----------------------------------- %
+% -- SOBER HIGHLIGHTING OF CONTENT -- %
+% ----------------------------------- %
+
+% :::::::::::::::::::::: %
+% :: EXAMPLE & REMARK :: %
+% :::::::::::::::::::::: %
+
+\ExplSyntaxOn
+
+%%%
+% We use a ''seq'' variable to factorize the code just after.
+%%%
+\seq_new:N \g__tutodoc_focus_std_seq
+\seq_set_from_clist:Nn \g__tutodoc_focus_std_seq {
+ exa,
+ rem
+}
+
+
+%%%
+% prototype::
+% :action: looping over ''\g__tutodoc_focus_std_seq'' to build new
+% numbered theorems sharing the same section level counter.
+% To achieve that, we use the ''\newkeytheorem'' macro from
+% the ''keytheorems'' \pack.
+%%%
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \str_if_eq:nnTF { #1 } { exa } {
+ \newkeytheorem{tdoc#1}[
+ name = \use:c { tutodoc@trans@#1@title },
+ within = section,
+ ]
+ } {
+ \newkeytheorem{tdoc#1}[
+ name = \use:c { tutodoc@trans@#1@title },
+ numberlike = tdocexa,
+ ]
+ }
+
+ \cs_set:cpn { the tdoc #1 } { \thesection\arabic{tdoc#1} }
+}
+
+\ExplSyntaxOff
+
+
+% -------------------------------------- %
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+% -------------------------------------- %
+
+\input{tutodoc-\tutodoc@theme-admonitions.css.cls.sty}
+
+
+%%%
+% note::
+% We provide two ways to define admonitions.
+%
+% 1) ''\g__tutodoc_focus_color_prop'' and ''g__tutodoc_focus_icon_prop''
+% are for iconised and colored frames.
+%
+% 1) ''\g__tutodoc_focus_color_seq'' is to use a dedicated basic theorem
+% (this should be only useful for the draft theme).
+%
+% warning::
+% The variables should be defined inside the themes!
+%%%
+\ifcsundef{g__tutodoc_focus_color_seq}{
+%%%
+% source::
+% + https://tex.stackexchange.com/a/727022/6880
+% + https://tex.stackexchange.com/a/682332/6880
+% + https://tex.stackexchange.com/a/623232/6880
+%%%
+ \tcbset{
+ tutodoc-focus-color-style/.style = {
+% General.
+ use color stack, % Must be before breakable!
+ breakable,
+ enhanced,
+% Colors.
+ coltitle = \tutodoc@build@title@color{#1},
+ colupper = \tutodoc@build@upper@color{#1},
+ colback = \tutodoc@build@back@color{#1},
+ colframe = \tutodoc@build@frame@color{#1},
+% We want to use the same color for the footnotes in the frame.
+ before upper = {\let\default@color\current@color},
+% Padding.
+ left = 3pt,
+ right = 3pt,
+% Frame.
+ shadow = {.75mm}{-.75mm}{0mm}{tutodoc@admonition@shadow@color},
+ }
+ }
+}{}
+
+\ExplSyntaxOn
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+%%%
+% prototype::
+% :action: ''key/value'' iteration over ''\g__tutodoc_focus_color_prop''
+% to build new colorful unumbered theorems. To achieve that,
+% we use a ''tcolorbox'' style given to the ''\newkeytheorem''
+% macro from the ''keytheorems'' \pack, and icons from the
+% ''fontawesome5'' \pack.
+%%%
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \newkeytheorem{tdoc#1}[
+ numbered = false,
+% tcolorbox-no-titlebar can be used.
+ tcolorbox = {tutodoc-focus-color-style=#2},
+ name = {
+ \tdocicon{ \prop_item:Nn \g__tutodoc_focus_icon_prop { #1 } }
+ \use:c { tutodoc@trans@#1@title }
+ }
+ ]
+ }
+} {
+%%%
+% prototype::
+% :action: looping over ''\g__tutodoc_focus_color_seq'' to build new
+% numbered theorems sharing the same section level counter.
+% To achieve that, we use the ''\newkeytheorem'' macro from
+% the ''keytheorems'' \pack.
+%%%
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \newkeytheorem{tdoc#1}[
+ name = \use:c { tutodoc@trans@#1@title },
+ numberlike = tdocexa,
+% We could have used
+% \AddToHook{env/tdoc#1/before}{\small}
+% and
+% \AddToHook{env/tdoc#1/after}{\normalsize}.
+ preheadhook = \small,
+ postfoothook = \normalsize
+ ]
+ }
+}
+
+\ExplSyntaxOff
+
+
+% ---------------------------------------------- %
+% -- NAMES OF PACKAGES, MACROS & ENVIRONMENTS -- %
+% ---------------------------------------------- %
+
+%%%
+% prototype::
+% #1 : (cls-name)
+% the name of a class
+%
+% :action: ''\tdoccls{myclass}'' prints verb::''myclass''.
+%%%
+\NewDocumentCommand{\tdoccls}{m}{%
+ \texttt{#1}%
+}
+
+
+%%%
+% prototype::
+% #1 : (pck-name)
+% the name of a package
+%
+% :action:''\tdocpack{mypack}'' prints verb::''mypack''.
+%%%
+\NewDocumentCommand{\tdocpack}{m}{%
+ \texttt{#1}%
+}
+
+
+%%%
+% prototype::
+% #1 : (cmd-name)
+% the name of a macro
+%
+% :action: ''\tdocmacro{mymacro}'' prints verb::''\mymacro''.
+%%%
+\NewDocumentCommand{\tdocmacro}{m}{%
+ \texttt{\textbackslash{}#1}%
+}
+
+
+%%%
+% prototype::
+% #1 : (env-options)
+% hard typed options with the good delimiters
+% #2 : (env-name)
+% the name of an environment
+%
+% :extra: this macro has a star version.
+%
+% Here are the four kind of outputs.
+%
+% 1) ''\tdocenv{myenv}'' prints
+% verb::''\begin{myenv} ... \end{myenv}''.
+%
+% 2) ''\tdocenv[{<opt1>[mando2]}]{myenv}'' prints
+% verb::''\begin{myenv}<opt1>[mando2] ... \end{myenv}''.
+%
+% 3) ''\tdocenv*{myenv}'' prints
+% verb::''myenv''.
+%
+% 4) ''\tdocenv*[{<opt1>[mando2]}]{myenv}'' prints
+% verb::''myenv''.
+%%%
+%
+% Cleaner code from https://tex.stackexchange.com/a/703379/6880 .
+\NewDocumentCommand{\tdocenv}{s O{} m}{%
+ \IfBooleanTF{#1}{%
+ \texttt{#3}%
+ }{%
+ \texttt{\string\begin\string{#3\string}#2 %
+ \!\!...\@\!\!\! %
+ \string\end\string{#3\string}}%
+ }%
+}
+
+
+% ------------------------- %
+% -- EXPLAINING PREFIXES -- %
+% ------------------------- %
+
+\ExplSyntaxOn
+
+% :::::::::::::: %
+% :: MESSAGES :: %
+% :::::::::::::: %
+
+\msg_set:nnnn { tutodoc ~ (macroenv) }
+ { macroenv : prefix-why-bad-format }
+ { Bad ~ format, ~ something ~ like ~ ''pre.fix'' ~ expected. }
+ { You ~ must ~ use ~ one ~ single ~ point. }
+
+
+% :::::::::::::::::::: %
+% :: PREFIX FROM... :: %
+% :::::::::::::::::::: %
+
+\seq_new:N \l__tutodoc_prewhy_parts_seq
+\int_new:N \l__tutodoc_prewhy_nbparts_int
+\tl_new:N \l__tutodoc_pretext_tl
+\tl_new:N \l__tutodoc_posttext_tl
+
+%%%
+% prototype::
+% #1 : (pre.fix)
+% a prefix and a suffix separated by one colon.
+%
+% :action: ''\tdocprewhy{pre.fix}'' prints verb::''pre''.fix.
+%%%
+\NewDocumentCommand{\tdocprewhy}{m}{%
+% Do we have 2 parts?
+ \seq_set_split:Nnn \l__tutodoc_prewhy_parts_seq { . } { #1 }
+
+ \int_set:Nn \l__tutodoc_prewhy_nbparts_int
+ {\int_eval:n {\seq_count:N \l__tutodoc_prewhy_parts_seq}}
+
+ \if_int_compare:w \l__tutodoc_prewhy_nbparts_int = 2
+ \else:
+ \msg_error:nn { tutodoc ~ (macroenv) }
+ { macroenv : prefix-why-bad-format }
+ \fi:
+
+% Let's go.
+ \seq_pop:NN \l__tutodoc_prewhy_parts_seq \l__tutodoc_pretext_tl
+ \seq_pop:NN \l__tutodoc_prewhy_parts_seq \l__tutodoc_posttext_tl
+
+ \textbf{
+ \tdocpre{\tl_use:N \l__tutodoc_pretext_tl}
+ \kern.5pt
+ \textperiodcentered
+ \kern.5pt
+ {\tl_use:N \l__tutodoc_posttext_tl}
+ }
+}
+
+\ExplSyntaxOff
+
+
+% ::::::::::::::::::::: %
+% :: JUST ONE PREFIX :: %
+% ::::::::::::::::::::: %
+
+%%%
+% prototype::
+% #1 : (pre)
+% just a prefix
+%
+% :action: ''\tdocpre{pre}'' only prints verb::''pre''.
+% This can be useful in a case like
+% ''\tdocpre{pre} comes from \tdocprewhy{pre}{fix}''
+% which prints:
+% verb::''pre'' comes from verb::''pre''-fix.
+%%%
+\NewDocumentCommand{\tdocpre}{m}{%
+ \texttt{#1}%
+}
+
+
+% ------------------------ %
+% -- GENERAL FORMATTING -- %
+% ------------------------ %
+
+\input{tutodoc-\tutodoc@theme-showcase.css.cls.sty}
+
+
+% :::::::::::::::::::::::: %
+% :: TEXT INSIDE A RULE :: %
+% :::::::::::::::::::::::: %
+
+\ExplSyntaxOn
+
+\box_new:N \l__tutodoc_content_box
+\dim_new:N \l__tutodoc_content_dim
+
+
+%%%
+% prototype::
+% #1 : (color)
+% the color for the rule and the text
+% #2 : (text)
+% the text surrounded by two horizontal rules
+%
+% :action: this macro adds two horizontal lines on either side of the text.
+% The final output is centered.
+%
+% note::
+% The code used comes from
+% cf::''this post ;
+% https://tex.stackexchange.com/a/604708/6880''.
+%%%
+
+\NewDocumentCommand{\tdocruler}{ O{\tutodoc@showcase@rule@color} m }{
+ \par
+ {
+ \centering
+ \scriptsize
+ \itshape
+ \bfseries
+ \color{#1}
+
+ \hbox_set:Nn \l__tutodoc_content_box { \,\, #2 \,\, }
+ \dim_set:Nn \l__tutodoc_content_dim {
+ .35 \linewidth - .5 \box_wd:N \l__tutodoc_content_box
+ }
+
+ \rule[.75pt] { \dim_use:N \l__tutodoc_content_dim }
+ { 2.5pt }
+ \box_use:N \l__tutodoc_content_box
+ \rule[.75pt] { \dim_use:N \l__tutodoc_content_dim }
+ { 2.5pt }
+ \par
+ }
+}
+
+\ExplSyntaxOff
+
+
+% ::::::::::::::::::::::::::: %
+% :: INTERNAL ENVIRONMENTS :: %
+% ::::::::::::::::::::::::::: %
+
+%%%
+% prototype::
+% #1 : (up-text)
+% the descriptive text before the real output
+% #2 : (down-text)
+% the descriptive text after the real output
+% #3 : (color)
+% one color following the ''xcolor'' format.
+% This color is used to set the one for the decorated texts printed
+% corresponding to the two first arguments.
+% #4 : (text color)
+% color of the content
+% #5 : (rule color builder)
+% the macro used to build the color from the user's rule color
+%
+% :action: this environment just adds its content processed by \latex
+% between centered materials produced by the macro ''\tdocruler''
+% such as to stress the start and the end of the content.
+%%%
+\NewDocumentEnvironment{tutodoc@showcase@basic}{m m m m m}{
+ \tdocruler[#5{#3}]{#1}%
+ \nopagebreak\medskip\nopagebreak\color{#4}%
+}{
+ \nopagebreak\medskip\nopagebreak
+ \tdocruler[#5{#3}]{#2}
+}
+
+
+%%%
+% prototype::
+% #1 : (up-text)
+% :see: env.tutodoc@showcase@basic
+% #2 : (down-text)
+% :see: env.tutodoc@showcase@basic
+% #3 : (stripe color)
+% :see: env.tutodoc@showcase@basic
+% #4 : (text color)
+% :see: env.tutodoc@showcase@basic
+% #5 : (rule color builder)
+% :see: env.tutodoc@showcase@basic
+% #6 : (back color builder)
+% :see: env.tutodoc@showcase@basic
+%
+% :action: this environment adds a page-width colored stripe in the
+% background of the environment content processed by \latex.
+% This stripe is preceded and followed by centered materials
+% produced by the macro ''\tdocruler'' such as to stress the
+% start and the end of the content.
+%%%
+
+\NewDocumentEnvironment{tutodoc@showcase@colorstrip}{m m m m m m}{
+ \begin{colorstrip}{#6{#3}}
+ \begin{tutodoc@showcase@basic}{#1}{#2}{#3}{#4}{#5}
+}{
+ \end{tutodoc@showcase@basic}
+ \end{colorstrip}
+}
+
+
+\ExplSyntaxOn
+
+% ::::::::::::::::::::::: %
+% :: SETTING SOME KEYS :: %
+% ::::::::::::::::::::::: %
+
+\tl_new:N \l_tutodoc_showcase_before_tl
+\tl_new:N \l_tutodoc_showcase_after_tl
+\tl_new:N \l_tutodoc_showcase_stripe_color_tl
+\tl_new:N \l_tutodoc_showcase_text_color_tl
+\bool_new:N \l_tutodoc_showcase_nostripe_bool
+
+
+%%%
+% We define the key-val options that will be exposed by the \env
+% ''tdocshowcase''.
+%%%
+\keys_define:nn { tutodoc / showcase } {
+% Colors.
+ colstripe .tl_set:N = \l_tutodoc_showcase_stripe_color_tl,
+ colstripe .initial:n = \tutodoc@showcase@stripe@color,
+ coltext .tl_set:N = \l_tutodoc_showcase_text_color_tl,
+ coltext .initial:n = \tutodoc@showcase@text@color,
+% Stripe?
+ nostripe .bool_set:N = \l_tutodoc_showcase_nostripe_bool,
+ nostripe .initial:n = false,
+% Texts.
+ before .tl_set:N = \l_tutodoc_showcase_before_tl,
+ before .initial:n = \tutodoc@trans@latex@show@start,
+ after .tl_set:N = \l_tutodoc_showcase_after_tl,
+ after .initial:n = \tutodoc@trans@latex@show@end,
+}
+
+
+% :::::::::::::::::::::::::::::: %
+% :: SHOWCASE FROM TYPED CODE :: %
+% :::::::::::::::::::::::::::::: %
+
+% prototype::
+% #1 : (key-val options)
+% the key-value options (see above).
+%
+% :action: this \env formats \latex code, given as an argument,
+% by framing it with texts decorated by ''\tdocruler'',
+% in order to clearly identify a rendering used as an
+% example.
+% It is also possible to have a coloured strip of the width
+% of the page in the background of the content.
+%
+% :see: env.tutodoc@showcase@basic ,
+% env.tutodoc@showcase@colorstrip
+%%%
+\NewDocumentEnvironment{tdocshowcase}{ O{} }{
+ \group_begin:
+ \keys_set:nn { tutodoc / showcase } { #1 }
+
+ \bool_if:NTF \l_tutodoc_showcase_nostripe_bool {
+ \begin{tutodoc@showcase@basic}
+ { \tl_use:N \l_tutodoc_showcase_before_tl }
+ { \tl_use:N \l_tutodoc_showcase_after_tl }
+ { \tl_use:N \l_tutodoc_showcase_stripe_color_tl }
+ { \tl_use:N \l_tutodoc_showcase_text_color_tl }
+ { \tutodoc@showcase@build@rule@color }
+ }{
+ \begin{tutodoc@showcase@colorstrip}
+ { \tl_use:N \l_tutodoc_showcase_before_tl }
+ { \tl_use:N \l_tutodoc_showcase_after_tl }
+ { \tl_use:N \l_tutodoc_showcase_stripe_color_tl }
+ { \tl_use:N \l_tutodoc_showcase_text_color_tl }
+ { \tutodoc@showcase@build@rule@color }
+ { \tutodoc@showcase@build@back@color }
+ }
+}{
+ \bool_if:NTF \l_tutodoc_showcase_nostripe_bool {
+ \end{tutodoc@showcase@basic}
+ }{
+ \end{tutodoc@showcase@colorstrip}
+ }
+ \group_end:
+}
+
+
+% :::::::::::::::::::::::: %
+% :: SHOWCASE FROM FILE :: %
+% :::::::::::::::::::::::: %
+
+\tl_new:N \l__tutodoc_showcase_options_tl
+
+
+%%%
+% prototype::
+% #1 : (key-val options)
+% :see: env.tdocshowcase
+% #2 : (file path)
+% the path of a file
+%%%
+\NewDocumentCommand{\tdocshowcaseinput}{ O{} m }{
+ \group_begin:
+ \keys_set_known:nnN { tutodoc / showcase }
+ { #1 }
+ \l__tutodoc_showcase_options_tl
+
+ \exp_last_unbraced:NNV \tdocshowcase [\l__tutodoc_showcase_options_tl]
+ \input{#2}
+ \endtdocshowcase
+ \group_end:
+}
+
+\ExplSyntaxOff
+
+
+% -------------------- %
+% -- LATEX EXAMPLES -- %
+% -------------------- %
+
+% :::::::::::::::::::::::::::::::::::::::::::::: %
+% :: STYLES OF THE LISTING ENV. AND THE MACRO :: %
+% :::::::::::::::::::::::::::::::::::::::::::::: %
+
+\newcommand{\tutodoc@latex@lexer}{latex}
+
+\input{tutodoc-\tutodoc@theme-listing.css.cls.sty}
+
+
+% :::::::::::::::::::::::: %
+% :: INLINE LATEX MACRO :: %
+% :::::::::::::::::::::::: %
+
+%%%
+% See the \doc of the macro ''\newmintinline'' from the package ''minted''
+% to have \infos about the macro ''tdocinlatex''.
+%%%
+\newmintinline[tdocinlatex]{\tutodoc@latex@lexer}{%
+ bgcolor = tutodoc@latex@back@color,%
+ style/.expand once = \tutodoc@latex@style % <-- This needs minted3!
+}
+
+
+% ::::::::::::::::::::::::::::::::::: %
+% :: TCOLORBOX LISTING ENVIRONMENT :: %
+% ::::::::::::::::::::::::::::::::::: %
+
+\ExplSyntaxOn
+
+%%%
+% prototype::
+% #1 : (tdoclatex-style)
+% a style of formatting for a \latex listing and its output.
+%
+% :see: macro.tdoclatex ,
+% macro.tdoclatexinput
+%
+% In the following easy-to-understand macro, we use one fictive ''tcolorbox''
+% style such as to indicate an unknown ''tutodoc'' style to the user.
+% For example, this can give one message similar to the following one.
+%
+% term::
+% Package pgfkeys Error: I do not know the key '/tcb/tdoclatex bad option
+% "MISTYPED-STYLE"' and I am going to ignore it. Perhaps you misspelled it.
+%
+% See the pgfkeys package documentation for explanation.
+%%%
+\NewExpandableDocumentCommand{\tutodoc@latex@listing@format@option}{ m }{
+ \str_case:nnF { #1 } {
+ { sbs } { listing ~ side ~ text }
+ { code } { listing ~ only }
+ { std } { listing ~ and ~ text }
+ } { tdoclatex ~ bad ~ option ~ "#1" }
+}
+
+\ExplSyntaxOff
+
+%%
+% source::
+% + https://tex.stackexchange.com/a/604821/6880
+% + https://tex.stackexchange.com/a/327983/6880
+%%
+\tcbset{
+ tutodoc-latex-listing-style/.style = {
+% General.
+ minted language/.expand once = \tutodoc@latex@lexer,
+ minted style/.expand once = \tutodoc@latex@style,
+ breakable,
+ enhanced,
+% Colors.
+ colframe = tutodoc@latex@frame@color,
+ colback = tutodoc@latex@back@color,
+ colupper = tutodoc@latex@text@color,
+ collower = tutodoc@latex@text@color,
+% Padding.
+ left = \tutodoc@latex@left@len,
+ right = \tutodoc@latex@right@len,
+ bottom = \tutodoc@latex@bottom@len,
+ top = \tutodoc@latex@top@len,
+% Frame.
+ shadow = {\tutodoc@latex@shadow@xshift@len}%
+ {\tutodoc@latex@shadow@yshift@len}%
+ {\tutodoc@latex@shadow@offset@len}%
+ {tutodoc@latex@shadow@color},
+ arc = \tutodoc@latex@arc@len,
+ leftrule = \tutodoc@latex@left@rule@len,
+ rightrule = \tutodoc@latex@right@rule@len,
+ bottomrule = \tutodoc@latex@bottom@rule@len,
+ toprule = \tutodoc@latex@top@rule@len,
+% Separating line.
+ segmentation style = {
+ tutodoc@latex@segment@color,
+ dash pattern = {on 5pt off 2.5pt},
+ line width = .75pt
+ },
+ #1
+ },
+}
+
+
+%%%
+% prototype::
+% #1 : (tdoclatex-style)
+% the style to be used (code only, code and output side by side,
+% or the standard style corresponding to the code followed by
+% its output)
+% @ #1 in [code, sbs, std]
+%
+% note::
+% See the \doc of the macro ''\newtcblisting'' from the package
+% ''tcolorbox'' to have \infos about the environment ''tdoclatex''.
+%%%
+\newtcblisting{tdoclatex}[1][std]{%
+ tutodoc-latex-listing-style = \tutodoc@latex@listing@format@option{#1}
+}
+
+
+% :::::::::::::::::::::::::::::::::::::: %
+% :: TCOLORBOX IMPORTED LISTING MACRO :: %
+% :::::::::::::::::::::::::::::::::::::: %
+
+%%%
+% prototype::
+% #1 : (tdoclatex-style)
+% :see: ''\newtcblisting{tdoclatex}''
+% #2 : (file path)
+% the path of the file to input and format.
+%
+% note::
+% See the \doc of the macro ''\newtcbinputlisting'' from the package
+% ''tcolorbox'' to have more \infos about the macro ''\tdoclatexinput''.
+%%%
+\newtcbinputlisting{\tdoclatexinput}[2][std]{
+ listing file = {#2},
+ tutodoc-latex-listing-style = \tutodoc@latex@listing@format@option{#1}
+}
+
+
+% -------------------------- %
+% -- LATEX REAL USE CASES -- %
+% -------------------------- %
+
+\ExplSyntaxOn
+
+% ::::::::::::::::::::: %
+% :: SETTING THE KEY :: %
+% ::::::::::::::::::::: %
+
+\tl_new:N \l_tutodoc_listing_explain_tl
+
+%%%
+% prototype::
+% :see: macro.tdoclatexshow
+%
+% We add a key-val option specific to ''\tdoclatexshow'', the other ones
+% will be sent to ''\tdocshowcaseinput''.
+%%%
+\keys_define:nn { tutodoc / listing / latexshow } {
+ explain .tl_set:N = \l_tutodoc_listing_explain_tl,
+ explain .initial:n = { \tutodoc@trans@this@gives \tutodoc@colon },
+}
+
+
+% ::::::::::::::::::::: %
+% :: LATEXSHOW MACRO :: %
+% ::::::::::::::::::::: %
+
+\tl_new:N \l__tutodoc_showcase_options_passed_tl
+
+
+%%%
+% prototype::
+% #1 : (key-val options)
+% the key-value options supported by the ''tdocshowcase'' \env,
+% plus one allowing you to change the description of a line
+% printed between the code and its highlighted output.
+% #2 : (file path)
+% the path of a file
+%
+% :see: env.tdocshowcase ,
+% macro.tdoclatexinput
+%%%
+\NewDocumentCommand{\tdoclatexshow}{O{} m}{
+ \group_begin:
+ \keys_set_known:nnN { tutodoc / listing / latexshow }
+ { #1 }
+ \l__tutodoc_showcase_options_passed_tl
+
+ \tdoclatexinput[code]{#2}
+
+ \tl_use:N \l_tutodoc_listing_explain_tl
+
+% Source: https://tex.stackexchange.com/a/696700/6880
+ \exp_last_unbraced:NNV \tdocshowcaseinput [\l__tutodoc_showcase_options_passed_tl] {#2}
+ \group_end:
+}
+
+\ExplSyntaxOff
+
+
+% -- CHANGES - WHEN? --%
+
+\ExplSyntaxOn
+
+% :::::::::::::: %
+% :: MESSAGES :: %
+% :::::::::::::: %
+
+\msg_set:nnnn { tutodoc ~ (version-n-change) }
+ { version-n-change : date-bad-format }
+ { Bad ~ format ~ for ~ a ~ date. }
+ { Use ~ YYYY-MM-DD. }
+
+
+% ::::::::::::::::: %
+% :: MARGIN NOTE :: %
+% ::::::::::::::::: %
+
+\reversemarginpar{}
+
+%%%
+% prototype::
+% #1 : (color)
+% the color of the margin note
+% #2 : (up-text)
+% the first material (a version number or nothing)
+% #3 : (down-text)
+% the second material (a date or nothing)
+% #4 : (spacing)
+% the last negative vertical spacing for the 2nd rule
+% #5 : (vertical offset)
+% algebraic distance to move vertically the material
+%
+% :action: this macro factorizes the printing of the changes
+% in the left margin.
+%
+% :see: \__tutodoc_translate_date:n
+%%%
+\NewDocumentCommand{\tutodoc@new@change@margin}{m m m m m}{
+ \marginnote{
+ \color{#1}
+ \scriptsize
+ \normalfont
+ \centering
+
+ \vspace{0pt}
+ \rule{1.65cm}{.95pt}
+ \vspace{-2.9pt}
+
+ \IfBlankTF{#2}{}{
+ \par
+ #2\vphantom{Mp}
+ \par
+ }
+
+ \IfBlankTF{#3}{}{
+ \IfBlankTF{#2}{}{
+ \vspace{1pt}
+ }
+
+ \par
+ \__tutodoc_translate_date:n { #3 }
+ \vphantom{Mp}
+ \par
+ }
+
+ \vspace{#4}
+ \rule{1.65cm}{.95pt}
+ }[#5]
+}
+
+
+%%%
+% prototype::
+% :action: this function checks if we have something like
+% ''YYYY-MM-DD'' and then it calls the function
+% ''\__tutodoc_translate_date_process:w'' to finish
+% the job.
+%
+% :see: \__tutodoc_translate_date_process:w
+%%%
+\cs_new:Nn \__tutodoc_translate_date:n {
+ \regex_match:nnTF { \A \d{1,4} \- \d{2} \- \d{2} \Z } { #1 }{
+ \__tutodoc_translate_date_process:w #1 \q_stop
+ }{
+ \msg_error:nn { tutodoc ~ (version-n-change) }
+ { version-n-change : date-bad-format }
+ }
+}
+
+
+%%%
+% prototype::
+% :action: this function extracts year, month and day in something
+% like ''YYYY-MM-DD'' and then it calls ''\tutodoc@trans@date''
+% to use the format expected for a "localised" date.
+%%%
+\cs_new:Npn \__tutodoc_translate_date_process:w #1 - #2 - #3 \q_stop {
+ \tutodoc@trans@date{#1}{#2}{#3}
+}
+
+\ExplSyntaxOff
+
+
+% :::::::::::::::::::::: %
+% :: VERSION AND DATE :: %
+% :::::::::::::::::::::: %
+
+\input{tutodoc-\tutodoc@theme-version-n-change.css.cls.sty}
+
+\newlength{\tutodoc@version@vertical@sep@len}
+\setlength{\tutodoc@version@vertical@sep@len}{-4.25pt}
+
+\newlength{\tutodoc@version@vertical@offset@len}
+\setlength{\tutodoc@version@vertical@offset@len}{-.345cm}
+
+
+%%%
+% prototype::
+% #1 : (color)
+% the color of the margin note
+% #2 : (version)
+% a version number
+% #3 : (date)
+% a date ''YYYY-MM-DD''
+% #4 : (vertical offset)
+% algebraic distance to move vertically the material
+%
+% :action: this macro prints a margin note showing a version number
+% below a date, and the optional argument is used to colorize
+% all this text.
+%
+% warning::
+% The date must use an english formatting like ''2021-07-14''. This allows
+% to parse the date such as to display it following the standard convention
+% of the language chosen when loading the package.
+%%%
+\NewDocumentCommand{\tdocversion}{ O{\tutodoc@changes@when@color} m O{} D<>{\tutodoc@version@vertical@offset@len} }{
+ \tutodoc@new@change@margin%
+ {#1} % Color
+ {#2} % Version
+ {#3} % Date
+ {\tutodoc@version@vertical@sep@len} % Last negative vertical spacing
+ {#4} % Vertical offset
+}
+
+
+% :::::::::: %
+% :: DATE :: %
+% :::::::::: %
+
+\newlength{\tutodoc@date@vertical@sep@len}
+\setlength{\tutodoc@date@vertical@sep@len}{-5.35pt}
+
+\newlength{\tutodoc@date@vertical@offset@len}
+\setlength{\tutodoc@date@vertical@offset@len}{-.345cm}
+
+%%%
+% prototype::
+% #1 : (color)
+% the color of the margin note
+% #2 : (date)
+% a date ''YYYY-MM-DD''
+% #3 : (vertical offset)
+% algebraic distance to move vertically the material
+%
+% :action: this macro is similar to ''\tdocversion'' except that it just
+% prints a date.
+%%%
+\NewDocumentCommand{\tdocdate}{ O{\tutodoc@changes@when@color} m D<>{\tutodoc@date@vertical@offset@len} }{
+ \tutodoc@new@change@margin%
+ {#1} % Color
+ {} % Version
+ {#2} % Date
+ {\tutodoc@date@vertical@sep@len} % Last negative spacing
+ {#3} % Vertical offset
+}
+
+
+% --------------------- %
+% -- CHANGES - WHAT? -- %
+% --------------------- %
+
+\ExplSyntaxOn
+
+% :::::::::::::: %
+% :: MESSAGES :: %
+% :::::::::::::: %
+
+\msg_set:nnnn { tutodoc ~ (version-n-change) }
+ { version-n-change : topic-missing-title }
+ { Missing ~ title. }
+ { One ~ single ~ title ~ must ~ be ~ indicated. }
+
+
+% ::::::::::::::::::: %
+% :: GENERIC TOPIC :: %
+% ::::::::::::::::::: %
+
+\tl_new:N \l_tutodoc_topic_when_color_tl
+\tl_new:N \l_tutodoc_topic_date_tl
+\tl_new:N \l_tutodoc_topic_version_tl
+
+\keys_define:nn { tutodoc / version-n-change / topic / options } {
+% Colors.
+ col .tl_set:N = \l_tutodoc_topic_when_color_tl,
+ col .initial:n = \tutodoc@changes@when@color,
+% Date.
+ date .tl_set:N = \l_tutodoc_topic_date_tl,
+ date .initial:n = \c_empty_tl,
+% Version.
+ version .tl_set:N = \l_tutodoc_topic_version_tl,
+ version .initial:n = \c_empty_tl,
+}
+
+
+\tl_new:N \l__tutodoc_topic_all_user_options_tl
+
+
+\newlength{\tutodoc@topic@vertical@offset@len}
+\setlength{\tutodoc@topic@vertical@offset@len}{-.745cm}
+
+
+%%%
+% prototype::
+% #1 : (title)
+% a title that will be followed by a colon.
+% #2 : (aws-icon)
+% one material that expects to be an icon command from the
+% ''fontawsome5'' \pack
+% #3 : (key-val options)
+% see above
+%
+% :action: this environment prints some \infos about specific changes
+% achieved in a new version (no special formatting is applied).
+% Key-val options allow to add a date \andor a \nbver with
+% a specific color if needed.
+%%%
+\NewDocumentEnvironment{tdoctopic}{ m D<>{} O{} }{
+ \IfBlankT{#1}{
+ \msg_fatal:nn { tutodoc ~ (version-n-change) }
+ { version-n-change : topic-missing-title }
+ }
+
+ \keys_set:nn { tutodoc / version-n-change / topic / options } { #3 }
+
+ \tl_clear:N \l__tutodoc_topic_all_user_options_tl
+ \tl_set_eq:NN \l__tutodoc_topic_all_user_options_tl \l_tutodoc_topic_version_tl
+ \tl_put_right:Nn \l__tutodoc_topic_all_user_options_tl { \l_tutodoc_topic_date_tl }
+
+ \paragraph{%
+ \IfBlankF{#2}{\tdocicon{#2}}
+ \textsc{#1.}
+ \exp_args:Ne \IfBlankF{\l__tutodoc_topic_all_user_options_tl}{
+% A date and/or a version.
+ \exp_args:NNee \tutodoc@new@change@margin%
+ {\l_tutodoc_topic_when_color_tl}
+ {\l_tutodoc_topic_version_tl}
+ {\l_tutodoc_topic_date_tl}
+ {\tutodoc@version@vertical@sep@len}
+ {\tutodoc@topic@vertical@offset@len}
+ }
+ }
+
+ \begin{itemize}
+}{
+ \end{itemize}
+}
+
+
+% :::::::::::::::::::::: %
+% :: CLASSICAL TOPICS :: %
+% :::::::::::::::::::::: %
+
+%%%
+% We use a ''prop'' variable to factorize the code just after.
+%%%
+\prop_new:N \g__tutodoc_topic_change_prop
+\prop_set_from_keyval:Nn \g__tutodoc_topic_change_prop {
+ break = \faCodeBranch,
+ fix = \faWrench,
+ new = \faGem,
+ prob = \faFire*,
+ tech = \faFlask,
+ update = \reflectbox{\faHistory},
+}
+
+
+%%%
+% prototype::
+% :see: env.tdoctopic
+%
+% :action: ''key/value'' iteration over ''\g__tutodoc_topic_change_prop''
+% to build topic-like \envs using the \env ''tdoctopic''
+% (the title used is translated into the good language).
+%%%
+\prop_map_inline:Nn \g__tutodoc_topic_change_prop {
+ \NewDocumentEnvironment{ tdoc#1 } { O{} } {
+ \begin{tdoctopic}{ \use:c { tutodoc@trans@chges@#1 } } < #2 > [##1]
+ }{
+ \end{tdoctopic}
+ }
+}
+
+
+%%%
+% prototype::
+% #1 : (short-desc)
+% a short text expected to indicate the very first version of a project.
+%
+% :action: the short text printed will be preceded by a pretty anchor icon.
+%%%
+\NewDocumentCommand{ \tdocstartproj }{ m } {
+ \tdocicon{\faAnchor}#1
+}
+
+\ExplSyntaxOff
+
+
+% ----------------- %
+% -- DECORATIONS -- %
+% ----------------- %
+
+% Source
+% + https://tex.stackexchange.com/a/130529/6880
+% (for the leaders trick)
+% + https://tex.stackexchange.com/a/269887/6880
+% (for the \hrule width)
+% + https://tex.stackexchange.com/a/729710/6880
+% (centering the \hrule)
+
+\newlength{\tutodoc@vertical@space@deco@len}
+\setlength{\tutodoc@vertical@space@deco@len}{\dimeval{2\medskipamount+1.25pt}}
+
+%%%
+% prototype::
+% :action: this macro draws a centered horizontal rule with a height
+% of qty::''0.75 pt'', and a width equal to half of the current
+% text width, and extra vertical spaces are added above and
+% below the rule.
+%
+% :see: len.tutodoc@vertical@space@deco@len
+%%%
+\NewDocumentCommand{\tdocsep}{}{
+ \par
+ \cleaders
+ \vbox to \tutodoc@vertical@space@deco@len{
+ \vfill\centerline{\vrule width 0.5\hsize height 0.75pt}\vfill
+ }\vskip\tutodoc@vertical@space@deco@len
+}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc.sty b/macros/latex/contrib/tutodoc/code/tutodoc.sty
deleted file mode 100644
index 5e0ea7a0fb..0000000000
--- a/macros/latex/contrib/tutodoc/code/tutodoc.sty
+++ /dev/null
@@ -1,1063 +0,0 @@
-% ------------------------------------------------------- %
-% - This is file `tutodoc.sty' generated automatically. - %
-% - - %
-% - Copyright (C) 2023-2024 by Christophe BAL - %
-% - - %
-% - This file may be distributed and/or modified under - %
-% - the conditions of the GNU 3 License. - %
-% ------------------------------------------------------- %
-
-\ProvidesExplPackage
- {tutodoc}
- {2024-01-06} % Creation: 2023-11-29
- {1.1.0}
- {This package proposes tools for writing "human friendly" documentations of LaTeX packages.}
-
-\RequirePackage[
- top = 2.5cm,
- bottom = 2.5cm,
- left = 2.5cm,
- right = 2.5cm,
- marginparwidth = 2cm,
- marginparsep = 2mm,
- heightrounded
-]{geometry}[2020-01-02]
-
-\RequirePackage[raggedright]{titlesec}[2021/07/05]
-\RequirePackage{tocbasic}
-
-\RequirePackage{xcolor}[2022/06/12]
-\RequirePackage{hyperref}[2023-02-07]
-
-
-% We delegate the management of quoting to the `csquotes' package,
-% which takes care of the linguistic parameters.
-\RequirePackage{csquotes}[2022-09-14]
-
-
-\RequirePackage{amsthm}[2017/09]
-
-
-\RequirePackage{clrstrip}[2021-08-28]
-
-
-\RequirePackage{tcolorbox}[2023/06/19]
-\tcbuselibrary{minted, breakable, skins}
-
-
-\RequirePackage{marginnote}[2023-09-07]
-
-
-% -- LOCALE LANG -- %
-
-\ExplSyntaxOn
-
-% :: SOME MESSAGES :: %
-
-\msg_set:nnnn { tdoc } { package-option-lang-unknown }
- { Unknown ~ language. }
- { See ~ the ~ documentation ~ for ~ the ~ supported ~ languages. }
-
-
-% :: SETTING SOME KEYS :: %
-
-\str_new:N \l_tdoc_opt_lang_str
-
-%%%
-% We define the key-val options that will be exposed by the package.
-%%%
-\keys_define:nn { tdoc } {
- lang .choices:nn =
- { french, english }
- {
- \tl_set:Nn \l_tdoc_opt_lang_str
- { \tl_use:N \l_keys_choice_tl }
- },
- lang .initial:n = english,
- lang / unknown .code:n =
- \msg_error:nnxxx { tdoc } { package-option-lang-unknown }
- { lang } % Name of choice key
- { french, english } % Valid choices
- { \exp_not:n {#1} } % Invalid choice given
-}
-
-\ProcessKeyOptions[tdoc]
-
-\ExplSyntaxOff
-
-
-% -- LOCALE SETTINGS -- %
-
-\NewDocumentCommand{\tutodoc@colon}{}{:}
-
-% We must take care of the colons, babel and spacing.
-\@ifpackageloaded{babel}{
- \iflanguage{french}{
- \RenewDocumentCommand{\tutodoc@colon}{}{\babelshorthand{:}}
- }{}
-}{}
-
-\ExplSyntaxOn
-
-\input{tutodoc-locale-main-\l_tdoc_opt_lang_str.cfg.sty}
-
-\ExplSyntaxOff
-
-
-% -- GENERAL SETTINGS -- %
-
-\setlength{\parindent}{0cm}
-
-
-% -- LINKS -- %
-
-\hypersetup{
- colorlinks,
- citecolor = orange!75!black,
- filecolor = orange!75!black,
- linkcolor = orange!75!black,
- urlcolor = orange!75!black
-}
-
-
-% -- TOC & Co. -- %
-
-\ifcsundef{chapter}%
- {}%
- {\renewcommand\thechapter{\Alph{chapter}.}}
-
-\renewcommand\thesection{\Roman{section}.}
-\renewcommand\thesubsection{\arabic{subsection}.}
-\renewcommand\thesubsubsection{\roman{subsubsection}.}
-
-\titleformat{\paragraph}[hang]%
- {\normalfont\normalsize\bfseries}%
- {\theparagraph}{1em}%
- {}
-
-\titlespacing*{\paragraph}%
- {0pt}%
- {3.25ex plus 1ex minus .2ex}%
- {0.5em}
-
-% Source
-% * https://tex.stackexchange.com/a/558025/6880
-\DeclareTOCStyleEntries[
- raggedentrytext,
- linefill = \hfill,
- indent = 0pt,
- dynindent,
- numwidth = 0pt,
- numsep = 1ex,
- dynnumwidth
-]{tocline}{
- chapter,
- section,
- subsection,
- subsubsection,
- paragraph,
- subparagraph
-}
-
-\DeclareTOCStyleEntry[indentfollows = chapter]{tocline}{section}
-
-
-% -- QUOTING -- %
-
-%%%
-% prototype::
-% #1 : a text to quote.
-%
-% For example, ''\tdocquote{Something}'' prints something like **"Something"**.
-%%%
-\NewDocumentCommand{\tdocquote}{m}{%
- \enquote{\emph{#1}}%
-}
-
-
-% -- EXPLAINING ENGLISH NAMES -- %
-
-%%%
-% prototype::
-% #1 : an english text to explain in another language.
-%
-% :extra: this macro has a star version.
-%
-% For example, if the language chosen is ''french'', we have
-% the following outputs.
-%
-% 1) ''\tdocinEN{Something}'' prints
-% **"Something" en anglais**.
-%
-% 2) ''\tdocinEN*{Something}'' just prints
-% **"Something"**.
-% This can be useful in a case like
-% ''\tdocinEN*{Something} et \tdocinEN{Another thing}''
-% which gives
-% **"Something" et "Another thing" en anglais**.
-%%%
-\NewDocumentCommand{\tdocinEN}{s m}{%
- \tdocquote{#2}%
- \IfBooleanF{#1}{% No star used.
- \ \tutodoc@trans@in@EN{}%
- }%
-}
-
-
-% -- FOCUS ON SOME CONTENT -- %
-
-% :: EXAMPLE - HIDDEN VERSIONS :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem'' from the package ''amsthm''
-% to have \infos about the environment ''@@tdocexa@nb''.
-%%%
-\newtheorem{@@tdocexa@nb}{\tutodoc@trans@exa@title}%
- [subsubsection]
-
-%%%
-% We redefine the counter associated to the environment ''@@tdocexa@nb''
-% to obtain only one single arabic number.
-%%%
-\renewcommand{\the@@tdocexa@nb}{\arabic{@@tdocexa@nb}}
-
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''@@tdocexa@no@nb''.
-%%%
-\newtheorem*{@@tdocexa@no@nb}{\tutodoc@trans@exa@title}
-
-
-% :: EXAMPLE - PUBLIC VERSION :: %
-
-\ExplSyntaxOn
-
-\msg_set:nnnn { tdoc } { env-tdocexa-unknown-option }
- { Unknown ~ rafters ~ option. }
- { See ~ the ~ documentation ~ for ~ the ~ supported ~ options. }
-
-\NewDocumentEnvironment{tdocexa}{D<>{nb} O{}}{
- \str_case:nnF { #1 } {
- { nb } {
- \begin{@@tdocexa@nb}[#2]
- }
- { nonb } {
- \begin{@@tdocexa@no@nb}[#2]
- }
- }{
- \msg_error:nn { tdoc } { env-tdocexa-unknown-option }
- }
-}{
- \str_case:nnF { #1 } {
- { nb } {
- \end{@@tdocexa@nb}
- }
- { nonb } {
- \end{@@tdocexa@no@nb}
- }
- }{}
-}
-
-\ExplSyntaxOff
-
-
-% :: REMARK :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocrem''.
-%%%
-\newtheorem*{tdocrem}{\tutodoc@trans@rmk@title}
-
-
-% :: IMPORTANT :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocimportant''.
-%%%
-\newtheorem*{tdocimportant}{\tutodoc@trans@important@title}
-
-
-% :: NOTE :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocnote''.
-%%%
-\newtheorem*{tdocnote}{\tutodoc@trans@note@title}
-
-
-% :: TIP :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdoctip''.
-%%%
-\newtheorem*{tdoctip}{\tutodoc@trans@tip@title}
-
-
-% :: CUATION :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdoccaution''.
-%%%
-\newtheorem*{tdoccaution}{\tutodoc@trans@caution@title}
-
-
-% :: WARNING :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocwarn''.
-%%%
-\newtheorem*{tdocwarn}{\tutodoc@trans@warn@title}
-
-
-% -- NAMES OF PACKAGES, MACROS & ENVIRONMENTS -- %
-
-%%%
-% prototype::
-% #1 : the name of a class
-%
-% :action: ''\tdoccls{myclass}'' prints verb::''myclass''.
-%%%
-\NewDocumentCommand{\tdoccls}{m}{%
- \texttt{#1}%
-}
-
-
-%%%
-% prototype::
-% #1 : the name of a package
-%
-% :action:''\tdocpack{mypack}'' prints verb::''mypack''.
-%%%
-\NewDocumentCommand{\tdocpack}{m}{%
- \texttt{#1}%
-}
-
-
-%%%
-% prototype::
-% #1 : the name of a macro
-%
-% :action: ''\tdocmacro{mymacro}'' prints verb::''\mymacro''.
-%%%
-\NewDocumentCommand{\tdocmacro}{m}{%
- \texttt{\textbackslash{}#1}%
-}
-
-
-%%%
-% prototype::
-% #1 : hard typed options with the good delimiters
-% #2 : the name of an environment
-%
-% :action: ''\tdocenv{myenv}'' prints verb::''\begin{myenv} ... \end{myenv}''
-% or something like verb::''\begin{myenv}<opt1> ... \end{myenv}'',
-% the spaces being secable.
-%%%
-%
-% Cleaner code from https://tex.stackexchange.com/a/703379/6880 .
-\NewDocumentCommand{\tdocenv}{O{}m}{%
- \texttt{\string\begin\string{#2\string}#1 %
- \!\!...\@\!\!\! %
- \string\end\string{#2\string}}%
-}
-
-
-% -- EXPLAINING PREFIXES -- %
-
-\ExplSyntaxOn
-
-% :: MESSAGES :: %
-
-\msg_set:nnnn { bdoc } { prefixwhy-bad-format }
-{ Bad ~ format, ~ something ~ like ~ ''pre.fix'' ~ expected. }
-{ You ~ must ~ use ~ one ~ single ~ point. }
-
-
-% :: PREFIX FROM... :: %
-
-%%%
-% prototype::
-% #1 : a prefix and a suffix separated by one colon.
-%
-% :action: ''\tdocprewhy{pre.fix}'' prints verb::''pre''.fix.
-%%%
-\NewDocumentCommand{\tdocprewhy}{m}{%
-% Do we have 2 parts?
- \seq_set_split:Nnn \l_tmpa_seq { . } { #1 }
-
- \int_set:Nn \l_tmpa_int
- {\int_eval:n {\seq_count:N \l_tmpa_seq}}
-
- \if_int_compare:w \l_tmpa_int = 2
- \else:
- \msg_error:nn { bdoc } { prefixwhy-bad-format }
- \fi:
-
-% Let's go.
- \seq_pop:NN \l_tmpa_seq \l_tmpa_tl
- \seq_pop:NN \l_tmpa_seq \l_tmpb_tl
-
- \textbf{\tdocpre{\tl_use:N \l_tmpa_tl}\kern.5pt\textperiodcentered\kern.5pt{\tl_use:N \l_tmpb_tl}}
-}
-
-\ExplSyntaxOff
-
-
-% :: JUST ONE PREFIX :: %
-
-%%%
-% prototype::
-% #1 : just a prefix
-%
-% :action: ''\tdocpre{pre}'' only prints verb::''pre''.
-% This can be useful in a case like
-% ''\tdocpre{pre} comes from \tdocprewhy{pre}{fix}''
-% which prints:
-% verb::''pre'' comes from verb::''pre''-fix.
-%%%
-\NewDocumentCommand{\tdocpre}{m}{%
- \texttt{#1}%
-}
-
-
-% -- GENERAL FORMATTING -- %
-
-% :: TEXT INSIDE A RULE :: %
-
-\ExplSyntaxOn
-
-%%%
-% prototype::
-% #1 : a text
-% #2 : a color
-%
-% :action: this macro adds two horizontal lines on either side of the text.
-% The final output is centered.
-%
-% note::
-% The code used comes from
-% cf::''this post ;
-% https://tex.stackexchange.com/a/604708/6880''.
-%%%
-\NewDocumentCommand{\tdocruler}{m m}{
- \par
- {
- \centering
- \scriptsize
- \itshape
- \bfseries
- \color{#2}
-
- \hbox_set:Nn \l_tmpa_box { \,\, #1 \,\, }
- \dim_set:Nn \l_tmpa_dim {
- .35 \linewidth - .5 \box_wd:N \l_tmpa_box
- }
-
- \rule[.75pt] { \dim_use:N \l_tmpa_dim }
- { 2.5pt }
- \box_use:N \l_tmpa_box
- \rule[.75pt] { \dim_use:N \l_tmpa_dim }
- { 2.5pt }
- \par
- }
-}
-
-\ExplSyntaxOff
-
-
-% :: COLOR TRANSFORMATIONS :: %
-
-%%%
-% prototype::
-% #1 : one color following the ''xcolor'' format.
-%
-% :return: a "darker" version of the color ''#1''.
-%%%
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{%
- #1!50!black%
-}
-
-
-%%%
-% prototype::
-% #1 : one color following the ''xcolor'' format.
-%
-% :return: a "transparent" version of the color `#1`.
-%%%
-\NewExpandableDocumentCommand{\tdoclightcolor}{m}{%
- #1!5%
-}
-
-
-% :: INTERNAL ENVIRONMENTS :: %
-
-%%%
-% prototype::
-% #1 : the text before the real output
-% #2 : the text after the real output
-% #3 : one color following the ''xcolor'' format.
-% This color is used to set the one for the decorated texts printed
-% corresponding to the two first arguments.
-%
-% :action: this environment just adds its content processed by \latex
-% between centered materials produced by the macro ''\tdocruler''
-% such as to stress the start and the end of the content.
-%%%
-\NewDocumentEnvironment{tdoc@showcase@basic}{m m m}{
- \tdocruler{#1}{\tdocdarkcolor{#3}}
- \nopagebreak\medskip\nopagebreak
-}{
- \nopagebreak\medskip\nopagebreak
- \tdocruler{#2}{\tdocdarkcolor{#3}}
-}
-
-
-%%%
-% prototype::
-% #1 : the text before the real output
-% #2 : the text after the real output
-% #3 : the color following the ''xcolor'' format.
-% This color is used to set the ones of the stripe and the decorated
-% texts printed (see the two first arguments).
-%
-% :action: this environment adds a page-width colored stripe in the
-% background of the environment content processed by \latex.
-% This stripe is preceded and followed by centered materials
-% produced by the macro ''\tdocruler'' such as to stress the
-% start and the end of the content.
-%%%
-
-\NewDocumentEnvironment{tdoc@showcase@colorstrip}{m m m}{
- \begin{colorstrip}{\tdoclightcolor{#3}}
- \begin{tdoc@showcase@basic}{#1}{#2}{#3}
-}{
- \end{tdoc@showcase@basic}
- \end{colorstrip}
-}
-
-
-\ExplSyntaxOn
-
-% :: SETTING SOME KEYS :: %
-
-\tl_new:N \l_tdoc_showcase_before_tl
-\tl_new:N \l_tdoc_showcase_after_tl
-\tl_new:N \l_tdoc_showcase_color_tl
-\bool_new:N \l_tdoc_showcase_nostripe_bool
-
-
-%%%
-% prototype::
-% :see: env.tdocshowcase
-%
-% We define the key-val options that will be exposed by the \env
-% ''tdocshowcase''.
-%%%
-\keys_define:nn { tdoc/showcase } {
-% Texts.
- before .tl_set:N = \l_tdoc_showcase_before_tl,
- before .initial:n = \tutodoc@trans@latex@show@start,
- after .tl_set:N = \l_tdoc_showcase_after_tl,
- after .initial:n = \tutodoc@trans@latex@show@end,
-% Decorations.
- color .tl_set:N = \l_tdoc_showcase_color_tl,
- color .initial:n = cyan,
- nostripe .bool_set:N = \l_tdoc_showcase_nostripe_bool,
- nostripe .initial:n = false,
-}
-
-
-% :: SHOWCASE FROM TYPED CODE :: %
-
-% prototype::
-% #1 : the key-value options.
-%
-% :action: this \env formats \latex code, given as an argument,
-% by framing it with texts decorated by ''\tdocruler'',
-% in order to clearly identify a rendering used as an
-% example.
-% It is also possible to have a coloured strip of the width
-% of the page in the background of the content.
-%
-% :see: env.tdoc@showcase@basic ,
-% env.tdoc@showcase@colorstrip
-%%%
-\NewDocumentEnvironment{tdocshowcase}{ O{} }{
- \group_begin:
- \keys_set:nn { tdoc/showcase } { #1 }
-
- \bool_if:NTF \l_tdoc_showcase_nostripe_bool {
- \begin{tdoc@showcase@basic}%
- { \tl_use:N \l_tdoc_showcase_before_tl }%
- { \tl_use:N \l_tdoc_showcase_after_tl }%
- { \tl_use:N \l_tdoc_showcase_color_tl }
- }{
- \begin{tdoc@showcase@colorstrip}%
- { \tl_use:N \l_tdoc_showcase_before_tl }%
- { \tl_use:N \l_tdoc_showcase_after_tl }%
- { \tl_use:N \l_tdoc_showcase_color_tl }
- }
-}{
- \bool_if:NTF \l_tdoc_showcase_nostripe_bool {
- \end{tdoc@showcase@basic}
- }{
- \end{tdoc@showcase@colorstrip}
- }
- \group_end:
-}
-
-
-% :: SHOWCASE FROM FILE :: %
-
-%%%
-% prototype::
-% #1 : the key-value options supported by the ''tdocshowcase'' \env.
-% #2 : the path of a file
-%
-% :see: env.tdocshowcase
-%%%
-\NewDocumentCommand{\tdocshowcaseinput}{O{} m}{
- \group_begin:
- \keys_set_known:nnN { tdoc/latexshow } { #1 } \l_tmpa_tl
-
- \exp_last_unbraced:NNV \tdocshowcase [\l_tmpa_tl]
- \input{#2}
- \endtdocshowcase
- \group_end:
-}
-
-\ExplSyntaxOff
-
-
-% -- LATEX EXAMPLES -- %
-
-% :: INLINE SHORT LATEX CODE :: %
-
-%%%
-% See the \doc of the macro ''\newmintinline'' from the package ''minted''
-% to have \infos about the macro ''tdocinlatex''.
-%%%
-\newmintinline[tdocinlatex]{latex}{bgcolor = yellow!4}
-
-
-% :: SHORTCUTS FOR TCOLORBOX LISTING FORMATING :: %
-
-\ExplSyntaxOn
-
-%%%
-% In the following easy-to-understand macro, we use one fictive ''tcolorbox''
-% style such as to indicate an unknown ''tdoc'' style to the user.
-% For example, this can give one message similar to the following one.
-%
-% term::
-% Package pgfkeys Error: I do not know the key '/tcb/tdoclatex bad option
-% "NOT-A-STYLE"' and I am going to ignore it. Perhaps you misspelled it.
-%
-% See the pgfkeys package documentation for explanation.
-%%%
-\NewExpandableDocumentCommand{\tutodoc@latex@listing@formating}{ m }{
- \str_case:nnF { #1 } {
- { sbs } { listing ~ side ~ text }
- { code } { listing ~ only }
- { std } { listing ~ and ~ text }
- } { tdoclatex ~ bad ~ option ~ "#1" }
-}
-
-\ExplSyntaxOff
-
-
-% :: THE TCOLORBOX LISTING STYLE :: %
-
-%%%
-% note::
-% The settings used come from the following sources.
-% * https://tex.stackexchange.com/a/604821/6880
-% * https://tex.stackexchange.com/a/327983/6880
-%%%
-\tcbset{
- tdoclatex_tcbstyle/.style = {
- minted language = latex,
- breakable,
-% Code and output
- colback = yellow!5,
-% Frame
- colframe = darkgray,
- shadow = {.75mm}{-.75mm}{0mm}{black!30},
- arc = .75mm,
- left = 1mm, right = 1mm,
- bottom = 1mm, top = 1mm,
-% We can use ''sharp corners'' to obtain an "old school" style.
-%
-% Separating line
- enhanced,
- segmentation style = {
- gray,
- dash pattern = {on 5pt off 2.5pt},
- line width = 1.25pt
- },
- #1
- },
-}
-
-
-% :: TCOLORBOX LISTING ENVIRONMENT :: %
-
-%%%
-% prototype::
-% #1 : the style to be used (code only, code and output side by side,
-% or the standard style corresponding to the code followed by
-% its output)
-% @ #1 in [code, sbs, std]
-%
-% note::
-% See the \doc of the macro ''\newtcblisting'' from the package
-% ''tcolorbox'' to have \infos about the environment ''tdoclatex''.
-%%%
-\newtcblisting{tdoclatex}[1][std]{%
- tdoclatex_tcbstyle = \tutodoc@latex@listing@formating{#1}
-}
-
-
-% :: TCOLORBOX IMPORTED LISTING MACRO :: %
-
-%%%
-% prototype::
-% #1 : :see: \newtcblisting{tdoclatex}.
-% #2 : the path of the file to input and format.
-%
-% note::
-% See the \doc of the macro ''\newtcbinputlisting'' from the package
-% ''tcolorbox'' to have more \infos about the macro ''\tdoclatexinput''.
-%%%
-\newtcbinputlisting{\tdoclatexinput}[2][std]{
- listing file = {#2},
- tdoclatex_tcbstyle = \tutodoc@latex@listing@formating{#1}
-}
-
-
-% -- LATEX REAL USE CASES -- %
-
-\ExplSyntaxOn
-
-% :: SETTING SOME KEYS :: %
-
-\tl_new:N \l_tdoc_listing_explain_tl
-
-%%%
-% prototype::
-% :see: macro.tdoclatexshow
-%
-% We define the key-val options that will be exposed by ''\tdoclatexshow''.
-%%%
-\keys_define:nn { tdoc/latexshow } {
- explain .tl_set:N = \l_tdoc_listing_explain_tl,
- explain .initial:n = { \tutodoc@trans@this@gives \tutodoc@colon },
-}
-
-
-% :: LATEXSHOW MACRO :: %
-
-%%%
-% prototype::
-% #1 : the key-value options supported by the ''tdocshowcase'' \env,
-% plus one allowing you to change the description of a line
-% printed between the code and its focused output.
-% #2 : the path of a file
-%
-% :see: env.tdocshowcase ,
-% macro.tdoclatexinput
-%%%
-\NewDocumentCommand{\tdoclatexshow}{O{} m}{
- \group_begin:
- \keys_set_known:nnN { tdoc/latexshow } { #1 } \l_tmpa_tl
-
- \tdoclatexinput[code]{#2}
-
- \tl_use:N \l_tdoc_listing_explain_tl
-
-% Source: https://tex.stackexchange.com/a/696700/6880
- \exp_last_unbraced:NNV \tdocshowcaseinput [\l_tmpa_tl] {#2}
- \group_end:
-}
-
-\ExplSyntaxOff
-
-
-% -- CHANGES - WHEN? --%
-
-\ExplSyntaxOn
-
-% :: MESSAGES :: %
-
-\msg_set:nnnn { tdoc } { date-bad-format }
- { Bad ~ format ~ for ~ a ~ date. }
- { Use ~ YYYY-MM-DD. }
-
-
-% :: MARGIN NOTE :: %
-
-\reversemarginpar{}
-
-%%%
-% prototype::
-% #1 : the color of the margin note
-% #2 : the first material (a date or nothing)
-% #3 : the second material (a version number or nothing)
-% #4 : the last negative vertical spacing for the 2nd rule
-%
-% :action: this macro factorizes the printing of the changes
-% in the left margin.
-%
-% :see: \__tdoc_translate_date:n
-%%%
-\NewDocumentCommand{\tutodoc@new@change@margin}{m m m m}{
- \marginnote{
- \color{#1}
- \scriptsize
- \centering
-
- \vspace{0pt}
- \rule{1.65cm}{.95pt}
- \vspace{-2.9pt}
-
- \IfBlankTF{#2}{}{
- \par
- \__tdoc_translate_date:n { #2 }
- \par
- }
-
- \vspace{1pt}
-
- \par
- #3
- \par
-
- \vspace{#4}
- \rule{1.65cm}{.95pt}
- }[-.345cm]
-}
-
-
-%%%
-% prototype::
-% :action: this function checks if we have something like
-% ''YYYY-MM-DD'' and then it calls the function
-% ''\__tdoc_translate_date_process:w'' to finish
-% the job.
-%
-% :see: \__tdoc_translate_date_process:w
-%%%
-\cs_new:Nn \__tdoc_translate_date:n {
- \regex_match:nnTF { \A \d{1,4} \- \d{2} \- \d{2} \Z } { #1 }{
- \__tdoc_translate_date_process:w #1 \q_stop
- }{
- \msg_error:nn { tdoc } { date-bad-format }
- }
-}
-
-
-%%%
-% prototype::
-% :action: this function extracts year, month and day in something
-% like ''YYYY-MM-DD'' and then it calls ''\tutodoc@trans@date''
-% to use the format expected for a "localised" date.
-%%%
-\cs_new:Npn \__tdoc_translate_date_process:w #1 - #2 - #3 \q_stop {
- \tutodoc@trans@date{#1}
- {#2}
- {#3}
-}
-
-
-% :: VERSION AND DATE :: %
-
-%%%
-% prototype::
-% #1 : the color of the margin note
-% #2 : a version number
-% #3 : a date ''YYYY-MM-DD''
-%
-% :action: this macro prints a margin note showing a version number
-% below a date, and the optional argument is used to colorize
-% all this text.
-%
-% warning::
-% The date must use an english formatting like ''2021-07-14''. This allows
-% to parse the date such as to display it following the standard convention
-% of the language chosen when loading the package.
-%%%
-\NewDocumentCommand{\tdocversion}{O{blue} m O{}}{
- \tutodoc@new@change@margin{#1} % Color
- {#3} % Date
- {#2} % Version
- {-4.25pt} % Last negative vertical spacing
-}
-
-
-% :: DATE :: %
-
-%%%
-% prototype::
-% #1 : the color of the margin note
-% #2 : a date ''YYYY-MM-DD''
-%
-% :action: this macro is similar to ''\tdocversion'' except that it just
-% prints a date.
-%%%
-\NewDocumentCommand{\tdocdate}{O{blue} m}{
- \tutodoc@new@change@margin{#1} % Color
- {#2} % Date
- {} % Version
- {-5.35pt} % Last negative spacing
-}
-
-
-% -- CHANGES - WHAT?
-
-% :: MESSAGES :: %
-
-\msg_set:nnnn { tdoc } { changes-topic-missing-title }
- { Missing ~ title. }
- { One ~ single ~ title ~ must ~ be ~ indicated. }
-
-
-% :: CHANGES - TOPIC :: %
-
-%%%
-% prototype::
-% #1 : a title that will be followed by a colon.
-%
-% :action: this environment prints some ¨infos about specific changes
-% achieved in a new version (no special formatting is applied).
-%%%
-\NewDocumentEnvironment{tdoctopic}{ m }{
- \IfBlankT{#1}{
- \msg_fatal:nn { tdoc } { changes-topic-missing-title }
- }
-
- \textbf{
- \textsc{#1.}
- }
-
- \begin{itemize}
-}{
- \end{itemize}
-}
-
-
-% :: CHANGES - NEW THINGS :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "New"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocnew}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@new}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - UPDATE :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Update"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocupdate}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@update}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - BREAK :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Break"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocbreak}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@break}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - PROBLEM :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Problem"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocprob}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@pb}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - FIX :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Fix"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocfix}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@fix}
-}{
- \end{tdoctopic}
-}
-
-\ExplSyntaxOff
-
-
-% -- DECORATIONS -- %
-
-% Source for \addvspace{\medskipamount} instead of \medskip.
-% * https://tex.stackexchange.com/a/705938/6880
-
-%%%
-% prototype::
-% :action: this macro draws a centered horizontal rule with a height
-% of qty::''0.75 pt'', and a width equal to half of the current
-% text width.
-% Extra vertical spaces are added above and below the rule.
-%%%
-\NewDocumentCommand{\tdocsep}{}{
- \par\addvspace{\medskipamount}
- \hfill\rule{0.5\textwidth}{0.75pt}\hfill\null
- \medskip
- \smallskip
-}
-
-
-%%%
-% prototype::
-% :action: this macro adds a tiny vertical spacing.
-%%%
-\NewDocumentCommand{\tdocxspace}{}{
- \vspace{0.25em}
-}
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf b/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
index 6124b97c99..e4bed6a6c1 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex b/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
index f6449b959c..c35343b020 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
@@ -1,191 +1,374 @@
-
-% -------------------- %
-% -- RESOURCES USED -- %
-% -------------------- %
+% ==================== %
+% == RESOURCES USED == %
+% ==================== %
-\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
-Bla, bla, bla...
+\begin{filecontents*}[overwrite]{gallery-showcase-bw.tex}
+\documentclass[10pt, a4paper, theme = bw]{tutodoc}
-\begin{tdocexa}
- Ble, ble, ble...
-\end{tdocexa}
+\newcommand\thisstyle{bw}
-\begin{tdocexa}[Wonderful]
- Bli, bli, bli...
-\end{tdocexa}
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ In the flow of text, it's always useful to be able to include examples and comments that complement the main content.
+}
-\begin{tdocexa}<nonb>
- Blo, blo, blo...
-\end{tdocexa}
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Depending on the context of use, it is sometimes necessary to highlight content by indicating its degree of importance.
+}
-\begin{tdocexa}<nonb>[Superb]
- Blu, blu, blu...
-\end{tdocexa}
-\end{filecontents*}
+\newcommand\myhighlightedtext{
+ What to say\,%
+ \footnote{
+ Let's not forget the footnotes...
+ }?
+ I don't know, but in any case, it seems like a nice idea to show what can be achieved with one layout or another. No ?
+}
-\begin{filecontents*}[overwrite]{examples-focus-exa-leavevmode.tex}
-\begin{tdocexa}
- \leavevmode
+\begin{document}
- \begin{enumerate}
- \item Point 1.
+{\Huge\bfseries The theme \texttt{"\thisstyle"}}
- \item Point 2.
- \end{enumerate}
-\end{tdocexa}
-\end{filecontents*}
+\section{Highlighting, versioning and dating}
+\ExplSyntaxOn
-\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
-\begin{tdocrem}
- Just one remark...
-\end{tdocrem}
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
-\begin{tdocrem}[Mini title]
- Useful?
-\end{tdocrem}
-\end{filecontents*}
+ \myexrmktext
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
-\begin{tdoctip}
- A tip.
-\end{tdoctip}
+ \myexrmktext
+}
-\begin{tdoctip}[Mini title]
- Useful?
-\end{tdoctip}
-\end{filecontents*}
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+ \myadmotext
-\begin{filecontents*}[overwrite]{examples-focus-note.tex}
-\begin{tdocnote}
- Something useful to tell you...
-\end{tdocnote}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{tdocnote}[Mini title]
- Useful?
-\end{tdocnote}
-\end{filecontents*}
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+ \myadmotext
-\begin{filecontents*}[overwrite]{examples-focus-important.tex}
-\begin{tdocimportant}
- Important and harmless.
-\end{tdocimportant}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{tdocimportant}[Mini title]
- Useful?
-\end{tdocimportant}
-\end{filecontents*}
+ \myadmotext
+ }
+}
+\ExplSyntaxOff
-\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
-\begin{tdoccaution}
- Caution, caution...
-\end{tdoccaution}
+\section{\LaTeX\ codes}
-\begin{tdoccaution}[Mini title]
- Useful?
-\end{tdoccaution}
-\end{filecontents*}
+It is essential to be able to demonstrate use cases in \LaTeX.
+\begin{tdoclatex}
+It's nice to see some formatted \LaTeX\ code : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
-\begin{filecontents*}[overwrite]{examples-focus-warn.tex}
-\begin{tdocwarn}
- Avoid the dangers...
-\end{tdocwarn}
-\begin{tdocwarn}[Mini title]
- Useful?
-\end{tdocwarn}
+There's also a less intrusive side-by-side mode. Nice! No ?
+
+\begin{tdoclatex}[sbs]
+It's nice to see some formatted \LaTeX\ code:
+$E = m c^2$ or $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-color.tex}
+\documentclass[10pt, a4paper, theme = color]{tutodoc}
-\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
-\begin{tdocshowcase}
- \bfseries A bit of code \LaTeX.
+\newcommand\thisstyle{color}
- \bigskip
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ In the flow of text, it's always useful to be able to include examples and comments that complement the main content.
+}
- \emph{\large End of the awful demo.}
-\end{tdocshowcase}
-\end{filecontents*}
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Depending on the context of use, it is sometimes necessary to highlight content by indicating its degree of importance.
+}
+\newcommand\myhighlightedtext{
+ What to say\,%
+ \footnote{
+ Let's not forget the footnotes...
+ }?
+ I don't know, but in any case, it seems like a nice idea to show what can be achieved with one layout or another. No ?
+}
-\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
-\begin{tdocshowcase}[before = My beginning,
- after = My end,
- color = red]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\begin{document}
+
+{\Huge\bfseries The theme \texttt{"\thisstyle"}}
-\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
-\begin{tdocshowcase}
- \string[This works...]
-\end{tdocshowcase}
-\end{filecontents*}
+\section{Highlighting, versioning and dating}
+\ExplSyntaxOn
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
-\begin{tdocshowcase}[nostripe]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+ \myexrmktext
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
-\begin{tdocshowcase}[nostripe,
- before = My beginning,
- after = My end,
- color = green]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+ \myexrmktext
+}
-\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
-Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
-\end{filecontents*}
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{\LaTeX\ codes}
+
+It is essential to be able to demonstrate use cases in \LaTeX.
+
+\begin{tdoclatex}
+It's nice to see some formatted \LaTeX\ code : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+
+There's also a less intrusive side-by-side mode. Nice! No ?
-\begin{filecontents*}[overwrite]{examples-listing-ABC.tex}
\begin{tdoclatex}[sbs]
- $A = B + C$
+It's nice to see some formatted \LaTeX\ code:
+$E = m c^2$ or $\pi \neq \frac{3}{14}$.
\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-dark.tex}
+\documentclass[10pt, a4paper, theme = dark]{tutodoc}
-\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
-\begin{tdoclatex}[std]
- [Strange... Or not!]
+\newcommand\thisstyle{dark}
+
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ In the flow of text, it's always useful to be able to include examples and comments that complement the main content.
+}
+
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Depending on the context of use, it is sometimes necessary to highlight content by indicating its degree of importance.
+}
+
+\newcommand\myhighlightedtext{
+ What to say\,%
+ \footnote{
+ Let's not forget the footnotes...
+ }?
+ I don't know, but in any case, it seems like a nice idea to show what can be achieved with one layout or another. No ?
+}
+
+
+\begin{document}
+
+{\Huge\bfseries The theme \texttt{"\thisstyle"}}
+
+\section{Highlighting, versioning and dating}
+
+\ExplSyntaxOn
+
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+
+ \myexrmktext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myexrmktext
+}
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{\LaTeX\ codes}
+
+It is essential to be able to demonstrate use cases in \LaTeX.
+
+\begin{tdoclatex}
+It's nice to see some formatted \LaTeX\ code : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
\end{tdoclatex}
+
+
+There's also a less intrusive side-by-side mode. Nice! No ?
+
+\begin{tdoclatex}[sbs]
+It's nice to see some formatted \LaTeX\ code:
+$E = m c^2$ or $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-draft.tex}
+\documentclass[10pt, a4paper, theme = draft]{tutodoc}
+
+\newcommand\thisstyle{draft}
+
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ In the flow of text, it's always useful to be able to include examples and comments that complement the main content.
+}
+
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Depending on the context of use, it is sometimes necessary to highlight content by indicating its degree of importance.
+}
+
+\newcommand\myhighlightedtext{
+ What to say\,%
+ \footnote{
+ Let's not forget the footnotes...
+ }?
+ I don't know, but in any case, it seems like a nice idea to show what can be achieved with one layout or another. No ?
+}
+
+
+\begin{document}
+
+{\Huge\bfseries The theme \texttt{"\thisstyle"}}
+
+\section{Highlighting, versioning and dating}
+
+\ExplSyntaxOn
+
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+
+ \myexrmktext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myexrmktext
+}
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{\LaTeX\ codes}
+
+It is essential to be able to demonstrate use cases in \LaTeX.
-\begin{filecontents*}[overwrite]{examples-listing-strange-bis.tex}
\begin{tdoclatex}
- \string[Strange... Or not!]
+It's nice to see some formatted \LaTeX\ code : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
\end{tdoclatex}
-\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
-% Just one demo.
-$x y z = 1$
-\end{filecontents*}
+There's also a less intrusive side-by-side mode. Nice! No ?
+\begin{tdoclatex}[sbs]
+It's nice to see some formatted \LaTeX\ code:
+$E = m c^2$ or $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+\end{document}
-\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
-\tdoclatexshow[explain = What comes next is colourful...,
- before = Rendering below.,
- after = Finished rendering.,
- color = orange]
- {examples-listing-xyz.tex}
\end{filecontents*}
@@ -210,6 +393,31 @@ Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice-icon.tex}
+\begin{tdoctopic}{To hide}<\faEyeSlash>
+% An icon from fontawesome5.
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice.tex}
+\begin{tdoctopic}{End of icons}
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
+\begin{tdocupdate}
+ \item Info 1...
+ \item Info 2...
+\end{tdocupdate}
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
\tdocversion[red]{10.2.0-beta}[2023-12-01]
@@ -226,19 +434,63 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
-\begin{tdocnew}
+\begin{filecontents*}[overwrite]{examples-version-n-change-side-effect.tex}
+\tdocversion[red]{1.2.3}[2024-10-29]%
+\paragraph{Before it's problematic.}
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+
+
+\paragraph{After it's misplaced}%
+\tdocversion[red]{1.2.3}[2024-10-29]
+
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+
+
+\paragraph{No miracle solution.\tdocversion[red]{1.2.3}[2024-10-29]}
+
+Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
+
+
+\paragraph{Manual problem management.\tdocversion{1.2.3}[2024-10-29]<-.7cm>}
+
+Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-first.tex}
+\tdocstartproj{1st version of the project.}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-tech.tex}
+\begin{tdoctech}
\item Info 1...
\item Info 2...
-\end{tdocnew}
+\end{tdoctech}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
-\begin{tdocupdate}
+\begin{filecontents*}[overwrite]{examples-version-n-change-what-n-when.tex}
+\begin{tdoctech}[col = red,
+ date = 2024-10-29]
+ \item Info 1...
+ \item Info 2...
+\end{tdoctech}
+
+\begin{tdocupdate}[col = ForestGreen,
+ version = 1.2.3]
\item Info 1...
\item Info 2...
\end{tdocupdate}
+
+\begin{tdoctopic}{To hide}<\faEyeSlash>%
+ [version = 4.5.6, date = 2025-11-30]
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
\end{filecontents*}
@@ -258,6 +510,14 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
+\begin{tdocnew}
+ \item Info 1...
+ \item Info 2...
+\end{tdocnew}
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
\begin{tdocfix}
\item Info 1...
@@ -266,41 +526,259 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-unclassifiable.tex}
-\begin{tdoctopic}{Unclassifiable}
-% This is where the point needs to be put.
- \item Info 1...
- \item Info 2...
-\end{tdoctopic}
+\begin{filecontents*}[overwrite]{examples-admonitions-exa-leavevmode.tex}
+\begin{tdocexa}
+ \leavevmode
+ \begin{enumerate}
+ \item Point 1.
+
+ \item Point 2.
+ \end{enumerate}
+\end{tdocexa}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-important.tex}
+\begin{tdocimp}
+ Important and harmless.
+\end{tdocimp}
+
+\begin{tdocimp}[Mini title]
+ Useful?
+\end{tdocimp}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-note.tex}
+\begin{tdocnote}
+ Something useful to tell you...
+\end{tdocnote}
+
+\begin{tdocnote}[Mini title]
+ Useful?
+\end{tdocnote}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-caution.tex}
+\begin{tdoccaut}
+ Caution, caution...
+\end{tdoccaut}
+
+\begin{tdoccaut}[Mini title]
+ Useful?
+\end{tdoccaut}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-tip.tex}
+\begin{tdoctip}
+ A tip.
+\end{tdoctip}
+
+\begin{tdoctip}[Mini title]
+ Useful?
+\end{tdoctip}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-warn.tex}
+\begin{tdocwarn}
+ Avoid the dangers...
+\end{tdocwarn}
+
+\begin{tdocwarn}[Mini title]
+ Useful?
+\end{tdocwarn}
\end{filecontents*}
-% ------------------------ %
-% -- SOURCE FOR THE DOC -- %
-% ------------------------ %
+\begin{filecontents*}[overwrite]{examples-admonitions-exa.tex}
+\begin{tdocexa}
+ An example...
+\end{tdocexa}
+
+\begin{tdocexa}[Mini title]
+ Useful?
+\end{tdocexa}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-leavevmode-items.tex}
+\begin{tdoctip}[Little elegant]
+ \begin{enumerate}
+ \item Point 1.
+ \item Point 2.
+ \end{enumerate}
+\end{tdoctip}
+VERSUS.
+\begin{tdoctip}[More elegant]
+ \begin{enumerate}[wide]
+ \item Point 1.
+ \item Point 2.
+ \end{enumerate}
+\end{tdoctip}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-rmk.tex}
+\begin{tdocrem}
+ Just one remark...
+\end{tdocrem}
+
+\begin{tdocrem}
+ Another?
+\end{tdocrem}
+
+\begin{tdocrem}[Mini title]
+ Useful?
+\end{tdocrem}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
+\tdoclatexshow[explain = What comes next is colorful...,
+ before = Rendering below.,
+ after = Finished rendering.,
+ colstripe = orange,
+ coltext = blue!70!black]
+ {examples-listing-xyz.tex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-ABC.tex}
+\begin{tdoclatex}[sbs]
+ $A = B + C$
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
+% Just one demo.
+$x y z = 1$
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
+\begin{tdoclatex}[std]
+ [Strange... Or not!]
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-strange-bis.tex}
+\begin{tdoclatex}
+ \string[Strange... Or not!]
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
+\begin{tdocshowcase}[before = My beginning,
+ after = My end,
+ colstripe = red,
+ coltext = orange!75!black]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
+\begin{tdocshowcase}
+ \string[This works...]
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
+\begin{tdocshowcase}[nostripe,
+ before = My beginning,
+ after = My end,
+ colstripe = green,
+ coltext = purple]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
+Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
+\begin{tdocshowcase}
+ \bfseries A bit of code \LaTeX.
+
+ \bigskip
+
+ \emph{\large End of the awful demo.}
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
+\begin{tdocshowcase}[nostripe]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
-\documentclass[10pt, a4paper]{article}
+% ======================== %
+% == SOURCE FOR THE DOC == %
+% ======================== %
+\documentclass[10pt, a4paper]{tutodoc}
+
+% Community tools
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel, varioref}
\usepackage{enumitem}
-
-\usepackage{tabularray}
\usepackage{fmtcount}
+\usepackage{multicol}
+
+\usepackage{pdfpages}
+
\setlength{\parindent}{0em}
-% Package documented.
-\usepackage[lang = english]{tutodoc}
+% Some useful commands.
+\newcommand\thisproj{\tdoccls{tutodoc}}
+\newcommand\thisrepo{\url{https://github.com/bc-tools/for-latex/tree/tutodoc}}
+\newcommand\thismonorepo{\url{https://github.com/bc-tools/for-latex}}
+
+\NewDocumentCommand{\trademark}{m}{\texttt{#1}}
+
+\newcommand\ctan{\href{https://ctan.org/}{\trademark{CTAN}}}
+\newcommand\git{\trademark{git}}
+\newcommand\pdf{\trademark{PDF}}
+
+% --------------- %
+% -- IMPORTANT -- %
+% --------------- %
+%
+% See the French version of this file for the text to be used
+% for languages other than English.
+
+
+% --------------- %
+% -- IMPORTANT -- %
+% --------------- %
+%
+% See the French version of this file for the text to be used
+% for languages other than English.
+
+
+% == FORDOC == %
% Source.
% * https://tex.stackexchange.com/a/604698/6880
-\NewDocumentCommand{ \tdocdocbasicinput }{ m }{%
+\NewDocumentCommand{ \tdocbasicinputDOC }{ m }{%
Consider the following code.
\tdoclatexinput[code]{#1}
@@ -311,10 +789,12 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
+% == FORDOC == %
+
% Source.
% * https://tex.stackexchange.com/a/604698/6880
-\NewDocumentCommand{ \tdocdocextraruler }{ m }{%
+\NewDocumentCommand{ \tdocextrarulerDOC }{ m }{%
\par
{
\centering
@@ -329,47 +809,145 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
}
-\NewDocumentEnvironment{ tdoc-doc-showcase }
+\NewDocumentEnvironment{ tdocshowcaseDOC }
{ O{ Start of the rendering in this doc. }
O{ End of rendering in this doc. } }{
- \tdocdocextraruler{#1}
+ \tdocextrarulerDOC{#1}
\nopagebreak\smallskip\nopagebreak
}{
\nopagebreak\smallskip\nopagebreak
- \tdocdocextraruler{#2}
+ \tdocextrarulerDOC{#2}
}
+% == FORDOC == %
+
+\NewDocumentCommand{\mailsubject}{m}% <-- Translate me!
+ {subject \tdocquote{\texttt{tutodoc - CONTRIB - #1}}}
+
+% Source: https://tex.stackexchange.com/a/424061/6880
+
+\newcommand{\FTdirO}{}
+\def\FTdirO(#1,#2,#3){%
+ \FTfile(#1,{\color{blue!40!black}\faFolderOpen\hspace{-.35pt}}{\hspace{0.2em}#3})
+ (tmp.west)++(0.8em,-0.4em)node(#2){}
+ (tmp.west)++(1.5em,0)
+ ++(0,-1.3em)
+}
+
+\newcommand{\FTdirC}{}
+\def\FTdirC(#1,#2,#3){%
+ \FTfile(#1,{\color{blue!40!black}\faFolder\hspace{.75pt}}{\hspace{0.2em}#3})
+ (tmp.west)++(0.8em,-0.4em)node(#2){}
+ (tmp.west)++(1.5em,0)
+ ++(0,-1.3em)
+}
+
+\newcommand{\FTfile}{}
+\def\FTfile(#1,#2){%
+ node(tmp){}
+ (#1|-tmp)++(0.6em,0)
+ node(tmp)[anchor=west,black]{\tt #2}
+ (#1)|-(tmp.west)
+ ++(0,-1.2em)
+}
+
+\newcommand{\FTroot}{}
+\def\FTroot{tmp.west}
+
+\newcommand\contribtranslatedirtree{
+ \begin{tikzpicture}%
+ \draw[color=black, thick]
+% en : parent = \FTroot
+% normal dir: (parentID, currentID, label)
+% file : (parentID, label)
+ \FTdirO(\FTroot,root,translate){
+ \FTdirC(root,changes,changes){
+ }
+ \FTdirO(root,en,en) {
+ \FTdirC(en,api,api) {
+ }
+ \FTdirC(en,doc,doc) {
+ }
+ }
+ \FTdirC(root,fr,fr){
+ }
+ \FTdirC(root,status,status){
+ \FTdirO(status,en,en) {
+ \FTfile(en,api.yaml)
+ \FTfile(en,manual.yaml)
+ }
+ \FTdirC(status,fr,fr){
+ }
+ }
+ \FTfile(root,README.md)
+ \FTfile(root,LICENSE.txt)
+ };
+ \end{tikzpicture}
+}
+
\begin{document}
-\title{Le package \texttt{tutodoc} - Documentation de type tutoriel}
-\author{Christophe BAL}
-\date{\ordinalnum{1} Jan. 2024 - Version 1.1.0}
+
+\title{The \texttt{tutodoc} class - Tutorial-style documentation}
+\author{Christophe, BAL}
+\date{Oct 30, 2024 - Version 1.6.2}
\maketitle
\begin{abstract}
-The \tdocpack{tutodoc} package
-\footnote{
- The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
-}
-is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style
-\footnote{
- The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
-},
-and with a sober rendering for reading on screen.
+ The \thisproj{} class\,%
+ \footnote{
+ The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
+ }
+ is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style\,%
+ \footnote{
+ The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
+ }
+ using a sober rendering for reading on screen.
+ \smallskip
-\begin{tdocnote}
- This package imposes a formatting style. In the not-too-distant future, \tdocpack{tutodoc} will probably be split into a class and a package.
-\end{tdocnote}
+ \noindent
+ \emph{\textbf{Remark :} this documentation is also available in French.}
\end{abstract}
+\medskip
+
+\begin{center}
+\small
+\begin{minipage}{.9\textwidth}
+\begin{tdocnote}[Last changes]
+\small
+
+\begin{tdocnew}
+ \item The macros \tdocmacro{tdocdate} and \tdocmacro{tdocversion} has a new final optional argument \tdocinlatex{<voffset>} to choose a specific vertical offset.
+
+ \item Better environments to indicate the changes made.
+ \begin{enumerate}
+ \item The new optional keys \tdocinlatex{col}\,, \tdocinlatex{date} and \tdocinlatex{version} allow to date and version a change of a specific topic.
+
+ \item Use of \tdocmacro{paragraph} for the title.
+ \end{enumerate}
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Version and changes: the font of the margin notes will always have a normal shape.
+
+ \item Ornament: use of a \tdocinlatex{\cleaders} to avoid orphean rules at the bottom of a page.
+\end{tdocupdate}
+\end{tdocnote}
+\end{minipage}
+\end{center}
+
\newpage
\tableofcontents
\newpage
+
+
\section{General formatting imposed}
\subsection{Page geometry}
@@ -446,30 +1024,49 @@ The \tdocpack{hyperref} package is imported behind the scenes with the settings
\begin{tdoclatex}[code]
+\newcommand{\tdoclinkcolor}{NavyBlue!85!white}
+
\hypersetup{
colorlinks,
- citecolor = orange!75!black,
- filecolor = orange!75!black,
- linkcolor = orange!75!black,
- urlcolor = orange!75!black
+ citecolor = \tdoclinkcolor,
+ filecolor = \tdoclinkcolor,
+ linkcolor = \tdoclinkcolor,
+ urlcolor = \tdoclinkcolor
}
\end{tdoclatex}
-\section{Select language when loading package}
+\section{What language is used by the \thisproj\ class?}
-By default, \tdocpack{tutodoc} is set for English, but it is possible to change the language: for example, a French documentation will use \tdocinlatex|\usepackage[lang = french]{tutodoc}| .
-For the moment, we only have the following two choices.
+This documentation loads the \tdocpack{babel} package via \tdocinlatex|\usepackage[english]{babel}|\,.
+As a result, the \thisproj\ class identifies \tdocinlatex|en| as the main language used by \tdocpack{babel}.%.
+\footnote{
+ Technically, we use \tdocinlatex|\BCPdata{language}| which returns a language in short format.
+}
+As this language is included in the list of languages taken into account, see below, the \thisproj\ class will produce the expected effects.
-\begin{enumerate}
- \item \tdocinlatex|english| is the default value.
+\begin{multicols}{3}
+ \begin{itemize}
+ \item \tdocinlatex|en| : English.
+ \item \tdocinlatex|es| : Spanish.
+ \item \tdocinlatex|fr| : French.
+ \end{itemize}
+\end{multicols}
+
- \item \tdocinlatex|french|
-\end{enumerate}
+
+\begin{tdoccaut}
+ If the choice of main language is not made in the preamble, the mechanism used will fail with unintended side effects (see warning that follows).
+\end{tdoccaut}
+
+
+\begin{tdocwarn}
+ When a language is not supported by \thisproj, a warning message is issued, and English is selected as the language for \thisproj.
+\end{tdocwarn}
\begin{tdocnote}
- Language names are those suggested by the \tdocpack{babel} package.
+ The mechanism used should be compatible with the \tdocpack{polyglossia} package.
\end{tdocnote}
@@ -487,143 +1084,246 @@ The macro \tdocmacro{tdocinEN} and its starred version are based on \tdocmacro{t
\begin{tdocnote}
- As the text \tdocquote{in English} is translated into the language indicated when \tdocpack{tutodoc} is imported, the macro \tdocmacro{tdocinEN} and its starred version become useful for non-English speakers.
+ As the text \tdocquote{in English} is translated into the language detected by \thisproj, the macro \tdocmacro{tdocinEN} and its starred version become useful for non-English speakers.
\end{tdocnote}
+\section{Choose your theme}
+
+To modify the general layout, there is the \thisproj\ class option \tdocinlatex{theme = <choice>} where \tdocinlatex{<choice>} can take the following values.
+
+\begin{itemize}
+ \item \tdocinlatex|bw| :
+ this is a black-and-white theme with some shades of gray.
+
+ \item \tdocinlatex|color| :
+ this theme is colored, \emph{it's the default value}.
+
+ \item \tdocinlatex|dark| :
+ this theme is dark, ideal for resting the eyes.
+
+ \item \tdocinlatex|draft|:
+ this theme is just right for a printout to look for content errors that aren't necessarily easy to spot in front of a screen.
+\end{itemize}
+
+
+\begin{tdocnote}
+ At the end of this document, after the change history, you'll find a gallery of use cases for these different themes : go to appendix page \pageref{tutodoc-theme-gallery}.
+\end{tdocnote}
+
+
+% ----------------------------- %
+% -- AT END DOCUMENT - START -- %
+% ----------------------------- %
+
+% The following AT-END-DOCUMENT lines of codes have been generated
+% automatically. Don't judge their relative beauty...
+
+\AtEndDocument{
+
+% An annex page for a pretty doc.
+\newpage
+
+% Source.
+% + https://tex.stackexchange.com/a/8547/6880
+\bgroup
+ \titleformat{\section}[block]{\Huge\bfseries\filcenter}{}{1em}{}
+ \phantomsection\section*{Appendix -- Theme gallery}%
+ \label{tutodoc-theme-gallery}
+ \addcontentsline{toc}{section}{Appendix -- Theme gallery}%
+\egroup
+
+\bigskip
+
+\begin{tdocnote}
+ Each example is exactly a two pages long \pdf\ and has been inserted directly into this document (so don't be surprised by the page numbers).
+\end{tdocnote}
+
+\newpage
+
+% Let's build the PDFs.
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-bw}
+
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-color}
+
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-dark}
+
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-draft}
+
+% The gallery starts here...
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-bw}
+
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-color}
+
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-dark}
+
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-draft}
+
+}
+
+% --------------------------- %
+% -- AT END DOCUMENT - END -- %
+% --------------------------- %
+
\section{Highlighting content}
\begin{tdocnote}
The environments presented in this section
\footnote{
- The formatting comes from the \tdocpack{amsthm} package.
+ The formatting comes from the \tdocpack{keytheorems} package.
}
add a short title indicating the type of information provided.
- This short text will always be translated into the language indicated when the \tdocpack{tutodoc} package is loaded.
+ This short text will always be translated into the language detected by the \thisproj\ class.
\end{tdocnote}
-% ------------------ %
+\subsection{Content in the reading flow}
-\subsection{Examples}
+% ------------------ %
-Numbered or unnumbered examples can be indicated using the \tdocenv{tdocexa} environment, which offers two optional arguments.
-\begin{enumerate}
- \item The \ordinalnum{1} argument between brackets \tdocinlatex#<...># can take the values \tdocinlatex#nb# to number, which is the default setting, and \tdocinlatex#nonb# to not number.
+\begin{tdocimp}
+ All the environments presented in this section share the same counter, which will be reset to zero as soon as a section with a level at least equal to a \tdocinlatex|\section| is opened.
+\end{tdocimp}
- \item The \ordinalnum{2} argument in square brackets \tdocinlatex#[...]# is used to add a mini-title..
-\end{enumerate}
+% ------------------ %
-Here are some possible uses.
-
-\tdoclatexinput[sbs]{examples-focus-exa.tex}
+\subsubsection{Examples}
-% ------------------ %
+Numbered examples, if required, are indicated via \tdocenv{tdocexa}, which offers an optional argument for adding a mini-title.
+Here are two possible uses.
+\tdoclatexinput[sbs]{examples-admonitions-exa.tex}
-\begin{tdocimportant}
- The numbering of the examples is reset to zero as soon as a section with a level at least equal to a \tdocinlatex|\subsubsection| is opened.
-\end{tdocimportant}
% ------------------ %
\begin{tdoctip}
- It can sometimes be useful to return to the line at the start of the content. Here's how to do it (this trick remains valid for the environments presented in the following sub-sections). Note in passing that the numbering follows that of the previous example as desired.
-
- \tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
+ It can sometimes be useful to return to the line at the start of the content. The code below shows how to proceed (this trick also applies to the \verb#tdocrem# environment presented next). Note in passing that the numbering follows that of the previous example as desired.
\end{tdoctip}
+\tdoclatexinput[sbs]{examples-admonitions-exa-leavevmode.tex}
+
-\subsection{Some remarks}
-Everything happens via the \tdocenv{tdocrem} environment, as in the following example.
+% \subsection{Content in the reading flow}
-\tdoclatexinput[sbs]{examples-focus-rmk.tex}
+\subsubsection{Some remarks}
+Everything happens via \tdocenv{tdocrem}, which works identically to the \tdocenv*{tdocexa} environment, as shown in the following example.
-\subsection{A tip}
+\tdoclatexinput[sbs]{examples-admonitions-rmk.tex}
-The \tdocenv{tdoctip} environment is used to give tips. Here's how to use it.
-\tdoclatexinput[sbs]{examples-focus-tip.tex}
+\subsection{Flashy content}
+\label{tutodoc-admonitions}
-\subsection{Informative note}
+\begin{tdocnote}
+ The formatting proposed here is the default one, but others are possible by changing the theme: see the gallery of use cases in the appendix page \pageref{tutodoc-theme-gallery}.
+ As for the icons, they are obtained via the \tdocpack{fontawesome5} package, and the \tdocmacro{tdocicon} macro manages the spacing in relation to the text.
+ \footnote{
+ For example,
+ \tdocinlatex|\fbox{tdocicon{faBed}{Fatigued}}|
+ produces
+ \fbox{\tdocicon{\faBed}{Fatigued}}\,.
+ }
+\end{tdocnote}
-The \tdocenv{tdocnote} environment is used to highlight useful information. Here's how to use it.
-\tdoclatexinput[sbs]{examples-focus-note.tex}
+\subsubsection{A tip}
+The \tdocenv*{tdoctip} environment is used to give tips. Here's how to use it.
-\subsection{Something important}
+\tdoclatexinput[sbs]{examples-admonitions-tip.tex}
-The \tdocenv{tdocimportant} environment is used to indicate something important but harmless.
-\tdoclatexinput[sbs]{examples-focus-important.tex}
+\smallskip
-\subsection{Caution about a delicate point}
-The \tdocenv{tdoccaution} environment is used to indicate a delicate point to the user. Here's how to use it.
+\begin{tdoctip}
+ Sometimes, highlighted content can be reduced to a list. In this case, the formatting can be improved as follows where we use the \tdocinlatex{wide} option from the \tdocpack{enumitem} package.
-\tdoclatexinput[sbs]{examples-focus-caution.tex}
+ \tdoclatexinput[sbs]{examples-admonitions-leavevmode-items.tex}
+\end{tdoctip}
-\subsection{Warning of danger}
-The \tdocenv{tdocwarn} environment is used to warn the user of a trap to avoid. Here's how to use it.
+\foreach \sectitle/\desc/\filename in {
+ {Informative note}/%<-- Translate me!
+ {The \tdocenv*{tdocnote} environment is used to highlight useful information. Here's how to use it.}/%<-- Translate me!
+ note,
+ %
+ {Something important}/%<-- Translate me!
+ {The \tdocenv*{tdocimp} environment is used to indicate something important but harmless.}/%<-- Translate me!
+ important,
+ %
+ {Caution about a delicate point}/%<-- Translate me!
+ {The \tdocenv*{tdoccaut} environment is used to indicate a delicate point to the user. Here's how to use it.}/% <-- Translate me!
+ caution,
+ %
+ {Warning of danger}/%<-- Translate me!
+ {The \tdocenv*{tdocwarn} environment is used to warn the user of a trap to avoid. Here's how to use it.}/%<-- Translate me!
+ warn%
+} {
+ \subsubsection{\sectitle}
+
+ \desc
+
+ \tdoclatexinput[sbs]{examples-admonitions-\filename.tex}
-\tdoclatexinput[sbs]{examples-focus-warn.tex}
+}
-\newpage
\section{Specify packages, classes, macros or environments}
Here's what you can type semantically.
\begin{tdoclatex}[sbs]
-\tdoccls{myclass} is for...
-
-\tdocpack{mypackage} is for...
-
-\tdocmacro{onemacro} is for...
-
-\tdocenv{env} produces...
-
-We also have :
-
-\tdocenv[{[opt1]<opt2>}]{env}
+\tdoccls{myclass} is for... \\
+\tdocpack{mypackage} is for... \\
+\tdocmacro{onemacro} is for... \\
+\tdocenv{env} produces... \\
+\tdocenv[{[opt1]<opt2>}]{env} \\
+Just \tdocenv*{env}... \\
+Finally \tdocenv*[{[opt1]<opt2>}]{env}...
\end{tdoclatex}
\begin{tdocrem}
- The advantage of the previous macros over the use of \tdocmacro{tdocinlatex}, see the section \ref{tdoc-listing-inline} page \pageref{tdoc-listing-inline}, is the absence of colouring.
- Furthermore, the \tdocmacro{tdocenv} macro simply asks you to type the name of the environment
- \footnote{
- In addition, \tdocinlatex{\tdocenv{monenv}} produces \tdocenv{monenv} with spaces to allow line breaks if necessary.
- }
- with any options by typing the correct delimiters
- \footnote{
- Remember that almost anything is possible from now on.
- }
- by hand.
+ Unlike \tdocmacro{tdocinlatex}, \tdocmacro{tdocenv} and \tdocmacro{tdocenv*} macros don't color the text they produce.
+ In addition, \tdocinlatex{\tdocenv{monenv}} produces \tdocenv{monenv} with spaces to allow line breaks if required.
\end{tdocrem}
\begin{tdocwarn}
- The optional argument to the \tdocmacro{tdocenv} macro is copied and pasted during rendering. This can sometimes require the use of protective braces, as in the previous example.
+ The optional argument of the \tdocmacro{tdocenv} macro is copied and pasted
+ \footnote{
+ Remember that almost anything is possible from now on.
+ }
+ when rendering. This may sometimes require the use of protective braces, as in the example above.
\end{tdocwarn}
-% -------------------- %
-
\section{Origin of a prefix or suffix}
@@ -631,10 +1331,8 @@ To explain the names chosen, there is nothing like indicating and explaining the
\begin{tdoclatex}[sbs]
-\tdocpre{sup} relates to...
-
-\tdocprewhy{sup.erbe} means...
-
+\tdocpre{sup} relates to... \\
+\tdocprewhy{sup.erbe} means... \\
\emph{\tdocprewhy{sup.er} for...}
\end{tdoclatex}
@@ -644,69 +1342,75 @@ To explain the names chosen, there is nothing like indicating and explaining the
\end{tdocrem}
-\section{A real-life rendering} \label{tdoc-showcase}
+\section{A real-life rendering}
+\label{tutodoc-showcase}
It is sometimes useful to render code directly in the documentation. This type of rendering must be dissociable from the explanatory text.
-% ------------------ %
-
-\subsection{With a coloured stripe}
+\subsection{With a colored stripe}
\begin{tdocexa} [With default text]
- It can be useful to show a real rendering directly in a document
+ It can be useful to show a real rendering directly in a document.
\footnote{
Typically when making a demo.
- }.
+ }
This is done via \tdocenv{tdocshowcase} as follows.
\tdoclatexinput[code]{examples-showcase-default.tex}
- The result is the following rendering
+
+ The result is the following rendering.
\footnote{
Behind the scenes, the strip is created effortlessly using the \tdocpack{clrstrip} package.
- }.
+ }
+\end{tdocexa}
- \medskip
+\input{examples-showcase-default.tex}
- \input{examples-showcase-default.tex}
-\end{tdocexa}
+\smallskip
+
\begin{tdocrem}
- See the section \ref{tdoc-latexshow} on page \pageref{tdoc-latexshow} to easily obtain code followed by its actual rendering as in the previous example.
+ See the section \ref{tutodoc-latexshow} on page \pageref{tutodoc-latexshow} to easily obtain code followed by its actual rendering as in the previous example.
\end{tdocrem}
\begin{tdocnote}
- The explanatory texts adapt to the language chosen when \tdocpack{tutodoc} is loaded.
+ The explanatory texts adapt to the language detected by \thisproj.
\end{tdocnote}
% ------------------ %
-\begin{tdocexa}[Change the default colour and/or text]
+\begin{tdocexa}[Change the colors and/or the texts]
\leavevmode
\tdoclatexinput[code]{examples-showcase-customized.tex}
+
This will produce the following.
\medskip
\input{examples-showcase-customized.tex}
+
\end{tdocexa}
\begin{tdocnote}
- You will have noticed that we don't obtain a pure red: behind the scenes, the expandable macros \tdocmacro{tdocbackcolor} and \tdocmacro{tdocdarkcolor} are used to create the background and title colours respectively from the ones proposed in \tdocenv{tdocshowcase}.
- These macros have a single argument, the chosen colour, and accept the following codes.
+ In the previous example, the text uses the proposed darkened orange. On the other hand, red is used as a base to obtain the colors used for the strip: the transformations used depend on the theme chosen.%
+ \footnote{
+ For example, the themes \tdocinlatex{bw} and \tdocinlatex{draft} ignore the key \tdocinlatex{colstripe}!
+ }
+ %
+ You should also be aware that behind the scenes, the macro \tdocmacro{tdocruler} is used.
- \begin{tdoclatex}[code]
-\NewExpandableDocumentCommand{\tdocbackcolor}{m}{#1!5}
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{#1!50!black}
+ \begin{tdoclatex}[std]
+ \tdocruler[red]{A decorated pseudo-title}
\end{tdoclatex}
\end{tdocnote}
@@ -719,24 +1423,16 @@ It is sometimes useful to render code directly in the documentation. This type o
\tdoclatexinput[code]{examples-showcase-hook.tex}
- This will produce the following.
-
- \medskip
- \input{examples-showcase-hook.tex}
+ This will produce the following.
\end{tdocwarn}
-\begin{tdocnote}
- Behind the scenes, the \tdocmacro{tdocruler} macro is used.
+\input{examples-showcase-hook.tex}
- \begin{tdoclatex}[std]
- \tdocruler{Un pseudo-titre décoré}{red}
- \end{tdoclatex}
-\end{tdocnote}
-\subsection{Without a colour strip}
+\subsection{Without a coloured strip}
The rendering of \tdocenv{tdocshowcase} with a coloured strip may not be suitable, or sometimes may not be acceptable despite the work done by \tdocpack{clrstrip}.
It is possible not to use a coloured strip, as we will see straight away.
@@ -748,27 +1444,31 @@ It is possible not to use a coloured strip, as we will see straight away.
\tdoclatexinput[code]{examples-showcase-no-clrstrip.tex}
+
This will produce the following.
\medskip
\input{examples-showcase-no-clrstrip.tex}
+
\end{tdocexa}
% ------------------ %
-\begin{tdocexa}[Change the default colour and/or text]
+\begin{tdocexa}[Change the colors and/or the texts]
\leavevmode
\tdoclatexinput[code]{examples-showcase-no-clrstrip-customized.tex}
- This will produce the following.
+
+ This will produce the following horror.
\medskip
\input{examples-showcase-no-clrstrip-customized.tex}
+
\end{tdocexa}
@@ -777,46 +1477,54 @@ It is possible not to use a coloured strip, as we will see straight away.
To obtain renderings by importing the code from an external file, instead of typing it, simply use the \tdocmacro{tdocshowcaseinput} macro whose option uses the syntax of that of \tdocenv{tdocshowcase} and the mandatory argument corresponds to the path of the file.
-\begin{tdocexa}<nonb>
+\begin{tdocexa}
The following was obtained via \tdocinlatex+\tdocshowcaseinput{external.tex}+.
\medskip
\tdocshowcaseinput{examples-showcase-external.tex}
+
\medskip
- As for \tdocinlatex+\tdocshowcaseinput[color = orange]{external.tex}+\,, this will produce the colour change shown below.
+ As for \tdocinlatex+\tdocshowcaseinput[colstripe = red, coltext = orange!75!black]{external.tex}+\,, this will produce the color change shown below.
\medskip
- \tdocshowcaseinput[color = orange]{examples-showcase-external.tex}
+ \tdocshowcaseinput[colstripe = red, coltext = orange!75!black]{examples-showcase-external.tex}
+
\end{tdocexa}
-\newpage
\section{Use cases in \LaTeX}
-Documenting a package or a class is done efficiently using use cases showing both the code and the corresponding result.
+Documenting a package or class is best done through use cases showing both the code and the corresponding result.
+\footnote{
+ Code is formatted using the \tdocpack{minted} package.
+}
-% ------------------ %
+%\begin{tdoccaut}
+% Version 3 of \tdocpack{minted} cannot be used at the moment, as it contains bugs: see \url{https://github.com/gpoore/minted/issues/401}. We therefore force the use of version 2 of minted.
+%
+%\end{tdoccaut}
-\subsection{\tdocquote{Inline} codes} \label{tdoc-listing-inline}
+\subsection{\tdocquote{Inline} codes}
+\label{tutodoc-listing-inline}
The \tdocmacro{tdocinlatex} macro
\footnote{
The name of the macro \tdocmacro{tdocinlatex} comes from \tdocquote{\tdocprewhy{in.line} \LaTeX}.
}
-can be used to type inline code in a similar way to \tdocmacro{verb}.
+can be used to type inline code in a similar way to \tdocmacro{verb} or like a standard macro (see brace management in the last case below).
Here are some examples.
\begin{tdoclatex}[sbs]
- 1: \tdocinlatex|$a^b = c$|
-
- 2: \tdocinlatex+\tdocinlatex|$a^b = c$|+
+ 1: \tdocinlatex|$a^b = c$| \\
+ 2: \tdocinlatex+\tdocinlatex|$a^b = c$|+ \\
+ 3: \tdocinlatex{\tdocinlatex{$a^b = c$}}
\end{tdoclatex}
@@ -824,7 +1532,7 @@ Here are some examples.
The \tdocmacro{tdocinlatex} macro can be used in a footnote: see below.
\footnote{
\tdocinlatex+$minted = TOP$+ has been typed \tdocinlatex|\tdocinlatex+$minted = TOP$+| in this footnote...
- }.
+ }
In addition, a background color is deliberately used to subtly highlight the codes \tdocinlatex#\LaTeX#\,.
\end{tdocnote}
@@ -836,7 +1544,8 @@ Here are some examples.
\begin{tdocexa}[Side by side]
Using \tdocenv[{[sbs]}]{tdoclatex}, we can display a code and its rendering side by side.
- \tdocdocbasicinput{examples-listing-ABC.tex}
+ \tdocbasicinputDOC{examples-listing-ABC.tex}
+
\end{tdocexa}
@@ -844,10 +1553,10 @@ Here are some examples.
\begin{tdocexa}[Following]
- \tdocenv{tdoclatex} produces the following result, which corresponds to the default option \tdocinlatex#std#
+ \tdocenv{tdoclatex} produces the following result, which corresponds to the default option \tdocinlatex#std#\,.
\footnote{
\tdocinlatex{std} refers to the \tdocquote{standard} behaviour of \tdocpack{tcolorbox} in relation to the \tdocpack{minted} library.
- }.
+ }
\begin{tdoclatex}
$A = B + C$
@@ -872,12 +1581,14 @@ Here are some examples.
\begin{tdocwarn}
With default formatting, if the code begins with an opening bracket, the default option must be explicitly indicated.
- \tdocdocbasicinput{examples-listing-strange.tex}
-
+ \tdocbasicinputDOC{examples-listing-strange.tex}
+
+
\smallskip
-
+
Another method is to use the \tdocmacro{string} primitive.
- \tdocdocbasicinput{examples-listing-strange-bis.tex}
+ \tdocbasicinputDOC{examples-listing-strange-bis.tex}
+
\end{tdocwarn}
@@ -887,9 +1598,10 @@ For the following codes, consider a file with the relative path \verb+examples-l
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\medskip
-The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file and offers the same options as the \tdocenv{tdoclatex} environment.
+The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file and offers the same options as the \tdocenv*{tdoclatex} environment.
% ------------------ %
@@ -900,11 +1612,13 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following layout.
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -916,11 +1630,13 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following formatting where the default option is \tdocinlatex#std#.
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -932,33 +1648,36 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following layout.
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdocexa}
% ------------------ %
-\newpage
-\subsection{Imported codes put into practice} \label{tdoc-latexshow}
+\subsection{Imported codes put into practice}
+\label{tutodoc-latexshow}
\begin{tdocexa}[Showcase]
The following comes from \tdocinlatex+\tdoclatexshow{examples-listing-xyz.tex}+.
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\tdoclatexshow{examples-listing-xyz.tex}
- \end{tdoc-doc-showcase}
+
+ \end{tdocshowcaseDOC}
\end{tdocexa}
\begin{tdocnote}
- The default texts take into account the language chosen when loading the package \tdocpack{tutodoc}.
+ The default texts take into account the language detected by \thisproj.
\end{tdocnote}
@@ -970,9 +1689,10 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\tdoclatexshow[explain = Here is the actual rendering.]{examples-listing-xyz.tex}
- \end{tdoc-doc-showcase}
+
+ \end{tdocshowcaseDOC}
\end{tdocexa}
@@ -980,34 +1700,35 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdocexa}[The options available]
- In addition to the explanatory text, it is also possible to use all the options of \tdocenv{tdocshowcase}, see \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
+ In addition to the explanatory text, it is also possible to use all the options of \tdocenv*{tdocshowcase} environment, see \ref{tutodoc-showcase} page \pageref{tutodoc-showcase}.
Here is an example to illustrate this.
\medskip
\tdoclatexinput[code]{examples-listing-latexshow-options.tex}
+
\medskip
This will produce the following.
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\input{examples-listing-latexshow-options.tex}
- \end{tdoc-doc-showcase}
+
+ \end{tdocshowcaseDOC}
\end{tdocexa}
\section{Indicate changes}
-To make it easier to monitor a package, it is essential to provide a history indicating the changes made when a new version is published.
+To make it easier to monitor a project, it is essential to provide a history indicating the changes made when a new version is published.
-% ------------------ %
-
\subsection{When?}
+\label{tutodoc-changes-when}
You can either date something, or version it, in which case the version number can be dated.
@@ -1019,6 +1740,7 @@ You can either date something, or version it, in which case the version number c
The \tdocmacro{tdocdate} macro is used to indicate a date in the margin, as in the following example.
\tdoclatexshow{examples-version-n-change-dating.tex}
+
\end{tdocexa}
@@ -1029,159 +1751,490 @@ You can either date something, or version it, in which case the version number c
Associating a version number with a new feature is done using the \tdocmacro{tdocversion} macro, with the colour and date being optional arguments.
\tdoclatexshow{examples-version-n-change-versioning.tex}
-\end{tdocexa}
+\end{tdocexa}
-\begin{tdocimportant}
- \leavevmode
- \begin{enumerate}
+\begin{tdocimp}
+ \begin{enumerate}[wide]
\item The \tdocmacro{tdocdate} and \tdocmacro{tdocversion} macros require two compilations.
- \item The final rendering of the dates takes into account the language specified when loading the package \tdocpack{tutodoc}: for example, if French is selected, the dates will be displayed in the format \texttt{DD/MM/YYYY}.
+ \item The final rendering of the dates takes into account the language detected by \thisproj{}: for example, if French is selected, the dates will be displayed in the format \texttt{DD/MM/YYYY}.
\end{enumerate}
-\end{tdocimportant}
+\end{tdocimp}
-\begin{tdocwarn}
- Only the use of the digital format \tdocinlatex+YYYY-MM-DD+ is verified.
+\begin{tdoccaut}
+ Only the use of the digital format \tdocinlatex+YYYY-MM-DD+ is verified,
\footnote{
Technically, checking the validity of a date using \LaTeX3 presents no difficulty.
- },
+ }
and this is a choice! Why? Quite simply because dating and versioning explanations should be done semi-automatically to avoid any human bugs.
+\end{tdoccaut}
+
+
+\begin{tdocwarn}
+ Behind the scenes, most of the work is done by the \tdocmacro{marginnote} macro in the eponymous package.
+ The \tdocmacro{tdocdate} and \tdocmacro{tdocversion} macros therefore suffer from the same side effects as in the following example.
+ However, these problems can be solved using an optional argument \tdocinlatex{<vertical-displacement>}, as at the end of the following example. It's ugly, but functional.
+
+ \tdoclatexshow[nostripe, colstripe=red]{examples-version-n-change-side-effect.tex}
+
\end{tdocwarn}
\subsection{What's new?}
-\tdocpack{tutodoc} offers different environments to indicate quickly and clearly what has been done
+\thisproj\ offers the macro \tdocmacro{tdocstartproj} and different environments to indicate quickly and clearly what has been done during the latest changes.%
\footnote{
The user doesn't need all the technical details.
}
-during the latest changes.
-\begin{tdocexa}[For new features]
- \leavevmode
+\begin{tdocnote}
+ For icons, see the note at the beginning of the section \ref{tutodoc-admonitions} page \pageref{tutodoc-admonitions}.
+\end{tdocnote}
- \tdoclatexinput[sbs]{examples-version-n-change-new.tex}
-\end{tdocexa}
+\foreach \exatitle/\filename in {
+ {Just for the very first version}/%<-- Translate me!
+ first,
+ {For new features}/% <-- Translate me!
+ new,
+ {For updates}/% <-- Translate me!
+ update,
+ {For breaks}/% <-- Translate me!
+ break,
+ {For problems}/% <-- Translate me!
+ pb,
+ {For fixes}/% <-- Translate me!
+ fix,
+ {Technical information}/% <-- Translate me!
+ tech,
+ {Selectable themes with an icon}/% <-- Translate me!
+ user-choice-icon,
+ {Selectable themes without icons}/%<-- Translate me!
+ user-choice%
+} {
+ \begin{tdocexa}[\exatitle]
+ \leavevmode
-% ------------------ %
+ \tdoclatexinput[sbs]{examples-version-n-change-\filename.tex}
+ \end{tdocexa}
+}
+
+
+\subsection{The what and the when}
+
+The optional keys \tdocinlatex{col}\,, \tdocinlatex{date} and \tdocinlatex{version} allow to date and version a change of a particular type.%
+\footnote{
+ The warning at the end of the section \ref{tutodoc-changes-when} gives the technique used behind the scene, while showing the need to offer specialized keys.
+}
+Here are some examples of use.
+
+\tdoclatexshow{examples-version-n-change-what-n-when.tex}
-\begin{tdocexa}[For updates]
- \leavevmode
- \tdoclatexinput[sbs]{examples-version-n-change-update.tex}
-\end{tdocexa}
+
+\section{Ornament}
+
+Let's finish this documentation with a small formatting tool that is very useful.
+
+
+\begin{tdoclatex}[sbs]
+Bla, bla, bla...
+
+\tdocsep % Practical for demarcation.
+
+This works with enumerations.
+
+\begin{itemize}
+ \item Underline.
+\end{itemize}
+
+\tdocsep % Uniform behaviour.
+
+Ble, ble, ble...
+\end{tdoclatex}
+
+
+\section{Contribute}
+
+\begin{tdocnote}
+ \textbf{You don't need to be a coder to take part in translations}, including those that are useful for the running of \thisproj.
+\end{tdocnote}
+
+
+%\section{Contribute}
+
+\subsection{Complete the translations}
+
+\begin{tdocnote}
+ The author of \thisproj\ manages the French and English versions of the translations.
+\end{tdocnote}
+
+
+\begin{tdoccaut}
+ Although we're going to explain how to translate the documentation, it doesn't seem relevant to do so, as English should suffice these days.%
+ \footnote{
+ The existence of a French version is simply a consequence of the native language of the author of \thisproj.
+ }
+\end{tdoccaut}
+
+
+\begin{figure}[ht]
+ \centering
+ \contribtranslatedirtree\
+ \caption{Simplified view of the translation folder}
+ \label{tutodoc-contrib-translate-dir}
+\end{figure}
+
+
+The translations are roughly organized as in figure \ref{tutodoc-contrib-translate-dir} where only the folders important for the translations have been \tdocquote{opened}\,.%}.
+\footnote{
+ This was the organization on October 5, 2024, but it's still relevant today.
+}
+\textbf{A little further down, the section \ref{tutodoc-contrib-translate} explains how to add new translations}.
+
+
+\subsubsection{The \texttt{fr} and \texttt{en} folders}
+
+These two folders, managed by the author of \thisproj, have the same organization; they contain files that are easy to translate even if you're not a coder.
+
+
+\subsubsection{The \texttt{changes} folder}
+
+This folder is a communication tool where important changes are indicated without dwelling on minor modifications specific to one or more translations.
+
+
+\subsubsection{The \texttt{status} folder}
+
+This folder is used to keep track of translations from the project's point of view. Everything is done via well-commented \verb#YAML# files, readable by a non-coder.
+
+
+\subsubsection{The \texttt{README.md} and \texttt{LICENSE.txt} files}
+
+The \texttt{LICENSE.txt} file is aptly named, while the \texttt{README.md} file takes up in English the important points of what is said in this section about new translations.
+
+
+\subsubsection{New translations}
+\label{tutodoc-contrib-translate}
+
+\begin{tdocimp}
+ The \verb#api# folder contains translations relating to the functionalities of \thisproj.
+ Here you'll find \verb#TXT# files for editing with a text or code editor, but not with a word processor.
+ The content of these files uses commented lines in English to explain what \thisproj\ will do; these lines begin with \verb#//#\,. Here's an extract from such a file, where translations are made after each \,$=$\ sign, without touching the preceding, as this initial piece is used internally by the \thisproj code.
+
+ \tdocsep
+ \vspace{-10pt}
+ \begin{verbatim}
+ // #1: year in format YYYY like 2023.
+ // #2: month in format MM like 04.
+ // #3: day in format DD like 29.
+ date = #1-#2-#3
+
+ // #1: the idea is to produce one text like
+ // "this word means #1 in English".
+ in_EN = #1 in english\end{verbatim}
+\end{tdocimp}
+
+
+\begin{tdocnote}
+ The \verb#doc# folder is reserved for documentation. It contains files of type \verb#TEX# that can be compiled directly for real-time validation of translations.
+\end{tdocnote}
+
+
+\begin{tdocwarn}
+ Only start from one of the \verb#fr# and \verb#en# folders, as these are the responsibility of the \thisproj\ author.
+\end{tdocwarn}
+
+
+\medskip
+
+
+\emph{\textbf{Let's say you want to add support for Italian from files written in English.}}%
+\footnote{
+ As mentioned above, there is no real need for the \texttt{doc} documentation folder.
+}
+
+
+\paragraph{Method 1 : \git.}
+
+\begin{enumerate}
+ \item Obtain the entire project folder via \thisrepo\,.
+ Do not use the \verb#main# branch, which is used to freeze the latest stable versions of projects in the single \thismonorepo\ repository,.
+
+ \item In the \verb#tutodoc/contrib/translate# folder, create a \verb#it# copy of the \verb#en# folder, with the short name of the language documented in
+ \href{https://en.wikipedia.org/wiki/IETF_language_tag#List_of_common_primary_language_subtags}%
+ {the page \tdocquote{IIETF language tag}}
+ from \texttt{Wikipedia}.
+
+ \item Once the translation is complete in the \verb#it# folder, you'll need to communicate it via \thisrepo\ using a classic \verb#git push#\,.
+\end{enumerate}
+
+
+\paragraph{Method 2 : communicate by e-mail.}
+
+\begin{enumerate}
+ \item By e-mail with the \mailsubject{en FOR italian}, request a version of the English translations (note the use of the English name for the new language).
+ Be sure to respect the subject of the e-mail, as the author of \thisproj\ automates the pre-processing of this type of e-mail.
+
+ \item You will receive a folder named \verb#italian# containing the English version of the latest translations.
+ This folder will be the place for your contribution.
+
+ \item Once the translation is complete, you will need to compress your \verb#italian# file in \verb#zip# or \verb#rar# format before sending it by e-mail with the \mailsubject{italian}\,.
+\end{enumerate}
+
+
+%\section{Contribute}
+
+\subsection{Improving the source code}
+
+\begin{tdocimp}
+ If you want to participate in \thisproj\, you'll need to use the \LaTeX3 programming paradigm.
+\end{tdocimp}
+
+
+Participation as a coder is made via the \thisrepo\ repository corresponding to the \verb#tutodoc# development branch.
+Do not use the \verb#main# branch, which is used to freeze the latest stable versions of projects in the single \thismonorepo\ repository.
+
+
+\section{History}
+
+\small
+
+\begin{tdocnew}[version = 1.6.2, date = 2024-10-30]
+ \item The macros \tdocmacro{tdocdate} and \tdocmacro{tdocversion} has a new final optional argument \tdocinlatex{<voffset>} to choose a specific vertical offset.
+
+ \item Better environments to indicate the changes made.
+ \begin{enumerate}
+ \item The new optional keys \tdocinlatex{col}\,, \tdocinlatex{date} and \tdocinlatex{version} allow to date and version a change of a specific topic.
+
+ \item Use of \tdocmacro{paragraph} for the title.
+ \end{enumerate}
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Version and changes: the font of the margin notes will always have a normal shape.
+
+ \item Ornament: use of a \tdocinlatex{\cleaders} to avoid orphean rules at the bottom of a page.
+\end{tdocupdate}
+
+\tdocsep
% ------------------ %
-\begin{tdocexa}[For breaks]
- \leavevmode
+\begin{tdoctech}[version = 1.6.1, date = 2024-10-28]
+ \item The naming rules of \ctan\ need the use of \trademark{CSS} files named \verb+tutodoc-*.css.cls.sty+\,.
+\end{tdoctech}
- \tdoclatexinput[sbs]{examples-version-n-change-break.tex}
-\end{tdocexa}
+\tdocsep
% ------------------ %
-\begin{tdocexa}[For problems]
- \leavevmode
+\begin{tdocbreak}[version = 1.6.0, date = 2024-10-27]
+ \item The \tdocenv*{showcase} environment and its descendants: the \tdocinlatex{color} key has been renamed \tdocinlatex{colstripe}.
+
+ \item The macro \tdocmacro{tdoclinkcolor} has been renamed \tdocinlatex{tutodoc@link@color} for internal use.
+\end{tdocbreak}
- \tdoclatexinput[sbs]{examples-version-n-change-pb.tex}
-\end{tdocexa}
+
+\begin{tdocnew}
+ \item The \tdocinlatex{theme} class option allows you to choose different formatting themes.
+
+ \item Change log: addition of the \tdocenv*{tdoctech} environment for technical information.
+
+ \item The \tdocenv*{showcase} environment and its descendants: the \tdocinlatex{coltext} key can also be used to change the text color.
+
+ \item The new functionalities have been documented.
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Change log: the \tdocenv*{tdocupdate} environment uses the icon
+ \raisebox{0pt}[0pt][0pt]{\fbox{\reflectbox{\faHistory}}}
+ instead of
+ \raisebox{0pt}[0pt][0pt]{\fbox{\faMagic}}\,.
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item The Spanish translations were not included in the previous version! Don't laugh too hard...
+\end{tdocfix}
+
+\tdocsep
% ------------------ %
-\newpage
-\begin{tdocexa}[For fixes]
- \leavevmode
+\begin{tdoctech}[version = 1.5.0, date = 2024-10-19]
+ \item Version 3 of \tdocpack{minted} is taken into account.
+\end{tdoctech}
- \tdoclatexinput[sbs]{examples-version-n-change-fix.tex}
-\end{tdocexa}
+
+\begin{tdocbreak}
+ \item The \thisproj\ class replaces the now-defunct \thisproj\ package (for the moment, the young class offers no specific options).
+
+ \item The \tdocmacro{tdocruler} macro is now used via \tdocinlatex{\tdocruler[<color>]{<text>}} (remember that the old syntax was \tdocinlatex{\tdocruler{<text>}{<color>}}).
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item The class is usable in Spanish.
+
+ \item The documentation contains a new section explaining how to contribute.
+\end{tdocnew}
+
+
+\begin{tdocfix}
+ \item The \tdocmacro{tdocdate} macro did not handle date format and formatting.
+
+ \item Colored frames did not color text after a page break.
+\end{tdocfix}
+
+\tdocsep
% ------------------ %
-\begin{tdocexa}[Chosen topics]
- \leavevmode
+\begin{tdocbreak}[version = 1.4.0, date = 2024-09-28]
+ \item The \tdocenv*{tdoccaution} environment has been renamed \tdocenv*{tdoccaut} for simplified input.
- \tdoclatexinput[sbs]{examples-version-n-change-unclassifiable.tex}
-\end{tdocexa}
+ \item Content highlighting: examples and remarks, indicated via the \tdocenv*{tdocexa} and \tdocenv*{tdocrem} environments, are always numbered using a common counter.
+ \item The unused macro \tdocmacro{tdocxspace} has been deleted.
+\end{tdocbreak}
-\section{Ornaments}
-Let's finish this documentation with a few small formatting tools that can be very useful.
+\begin{tdocnew}
+ \item Change log: the \tdocmacro{tdocstartproj} macro is used to manage the case of the first public version.
+ \item Code factorization: the \tdocmacro{tdocicon} macro is responsible for adding icons in front of text.
+\end{tdocnew}
-\begin{tdoclatex}[sbs]
-Bla, bla, bla...
-\tdocsep % Practical for demarcation.
+\begin{tdocupdate}
+ \item Colors: the \tdocmacro{tdocdarkcolor} and \tdocmacro{tdoclightcolor} macros offer an optional argument.
+ \begin{enumerate}
+ \item \tdocmacro{tdocdarkcolor}: the amount of color in relation to black can be optionally defined.
-This works with enumerations.
+ \item \tdocmacro{tdoclightcolor}: the transparency rate can be optionally defined.
+ \end{enumerate}
-\begin{itemize}
- \item Underline.
+ \item Content highlighting: reduced space around content in colored frames.
- \item Something else useful.
-\end{itemize}
+ \item Versioning: better vertical spacing thanks to \tdocmacro{vphantom}.
+\end{tdocupdate}
-\tdocsep % Uniform behaviour.
+\tdocsep
-Ble, ble, ble...
-Bli, bli, bli...
+% ------------------ %
-\tdocxspace % Subtle space
- % but useful.
-Blo, blo, blo...
+\begin{tdocnew}[version = 1.3.1, date = 2024-09-26]
+ \item Star version of \tdocmacro{tdocenv} to display only the environment name.
+\end{tdocnew}
-Blu, blu, blu...
+\tdocsep
-\end{tdoclatex}
-\newpage
-\section{History}
-\tdocversion{1.1.0}[2024-01-06]
+% ------------------ %
+
+
+\begin{tdoctech}[version = 1.3.0, date = 2024-09-25]
+ \item Version 3 of \tdocpack{minted} cannot be used for the moment as it contains bugs: see \url{https://github.com/gpoore/minted/issues/401}. We therefore force temporarily the use of version 2 of \tdocpack{minted}.
+\end{tdoctech}
+
+
+\begin{tdocbreak}
+ \item The \tdocenv*{tdocimportant} environment has been renamed \tdocenv*{tdocimp} for simplified input.
+\end{tdocbreak}
+
\begin{tdocnew}
- \item Change log : two new environments.
+ \item Change log: proposed environments use icons.
+
+
+ \item Content highlighting: colored frames with icons are proposed for the following environments.
+ \bgroup
+ \setlength\multicolsep{5pt}
+ \begin{multicols}{3}
+ \begin{enumerate}[topsep=0pt]
+ \item \tdocenv*{tdoccaution}
+ \item \tdocenv*{tdocimp}
+ \item \tdocenv*{tdocnote}
+ \item \tdocenv*{tdoctip}
+ \item \tdocenv*{tdocwarn}
+ \end{enumerate}
+ \end{multicols}
+ \egroup
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\begin{tdocupdate}[version = 1.2.0-a, date = 2024-08-23]
+ \item \tdocmacro{tdocversion}
+ \begin{enumerate}
+ \item The version number is above the date.
+
+ \item The spacing is better managed when the date is absent.
+ \end{enumerate}
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item Content highlighting: the French translations of \tdocinEN*{caution} and \tdocinEN*{danger} were incorrect.
+\end{tdocfix}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\begin{tdocnew}[version = 1.1.0, date = 2024-01-06]
+ \item Change log: two new environments.
\begin{enumerate}
\item \tdocenv{tdocbreak} for breaking changes which are not backward compatible.
\item \tdocenv{tdocprob} for identified problems.
\end{enumerate}
- \item \tdocmacro{tdocinlatex}: a light yellow is used as the background color.
+ \item \tdocmacro{tdocinlatex}: a light yellow is used as the background color.
\end{tdocnew}
\tdocsep
-\tdocversion{1.0.1}[2023-12-08]
-\begin{tdocfix}
- \item \tdocmacro{tdocenv}: spacing is now correct, even if the \tdocpack{babel} package is not loaded with the French language.
+% ------------------ %
+
- \item \tdocenv[{[nostripe]}]{tdocshowcase}: page breaks around \tdocquote{framing} lines should be rare from now on.
+\begin{tdocfix}[version = 1.0.1, date = 2023-12-08]
+ \item \tdocmacro{tdocenv}: spacing is now correct, even if the \tdocpack{babel} package is not loaded with the French language.
+
+ \item \tdocenv[{[nostripe]}]{tdocshowcase} : page breaks around \tdocquote{framing} lines should be rare from now on.
\end{tdocfix}
\tdocsep
-\tdocversion{1.0.0}[2023-11-29]
-First public version of the project.
+% ------------------ %
+
+
+\tdocversion{1.0.0}[2023-11-29]
+\tdocstartproj{First public version of the project.}
\end{document}
- \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
index a8691e1e8d..30838b5bba 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
index ae9f99c300..d566fe93ea 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
@@ -1,191 +1,386 @@
+% ==================== %
+% == RESOURCES USED == %
+% ==================== %
-% -------------------- %
-% -- RESOURCES USED -- %
-% -------------------- %
+\begin{filecontents*}[overwrite]{gallery-showcase-bw.tex}
+\documentclass[10pt, a4paper, theme = bw]{tutodoc}
-\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
-Bla, bla, bla...
+% -- FORDOC -- %
-\begin{tdocexa}
- Ble, ble, ble...
-\end{tdocexa}
+\newcommand\thisstyle{bw}
-\begin{tdocexa}[Magnifique]
- Bli, bli, bli...
-\end{tdocexa}
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ Dans le flot du texte, il est toujours utile de pouvoir indiquer des exemples et des remarques qui viennent compléter le contenu principal.
+}
-\begin{tdocexa}<nonb>
- Blo, blo, blo...
-\end{tdocexa}
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Suivant le contexte d'utilisation, il est parfois nécessaire de pouvoir mettre en avant des contenus en indiquant leur degré d'importance.
+}
-\begin{tdocexa}<nonb>[Superbe]
- Blu, blu, blu...
-\end{tdocexa}
-\end{filecontents*}
+\newcommand\myhighlightedtext{
+ Que dire\,%
+ \footnote{
+ N'oublions pas les notes de bas de page...
+ }?
+ Je ne sais pas, mais en tout cas, il semble sympathique de montrer ce que peut donner telle mise en forme, ou telle autre. Non ?
+}
-\begin{filecontents*}[overwrite]{examples-focus-exa-leavevmode.tex}
-\begin{tdocexa}
- \leavevmode
+\begin{document}
- \begin{enumerate}
- \item Point 1.
+{\Huge\bfseries Le thème \texttt{"\thisstyle"}}
- \item Point 2.
- \end{enumerate}
-\end{tdocexa}
-\end{filecontents*}
+\section{Mettre en avant, versionner et dater}
+\ExplSyntaxOn
-\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
-\begin{tdocrem}
- Juste une remarque...
-\end{tdocrem}
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
-\begin{tdocrem}[Mini titre]
- Utile ?
-\end{tdocrem}
-\end{filecontents*}
+ \myexrmktext
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
-\begin{tdoctip}
- Une astuce.
-\end{tdoctip}
+ \myexrmktext
+}
-\begin{tdoctip}[Mini titre]
- Utile ?
-\end{tdoctip}
-\end{filecontents*}
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+ \myadmotext
-\begin{filecontents*}[overwrite]{examples-focus-note.tex}
-\begin{tdocnote}
- Un truc utile à vous dire...
-\end{tdocnote}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{tdocnote}[Mini titre]
- Utile ?
-\end{tdocnote}
-\end{filecontents*}
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+ \myadmotext
-\begin{filecontents*}[overwrite]{examples-focus-important.tex}
-\begin{tdocimportant}
- Un truc important sans danger.
-\end{tdocimportant}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
-\begin{tdocimportant}[Mini titre]
- Utile ?
-\end{tdocimportant}
-\end{filecontents*}
+ \myadmotext
+ }
+}
+\ExplSyntaxOff
-\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
-\begin{tdoccaution}
- Prudence, prudence...
-\end{tdoccaution}
+\section{Des codes \LaTeX}
-\begin{tdoccaution}[Mini titre]
- Utile ?
-\end{tdoccaution}
-\end{filecontents*}
+Il est indispensable de pouvoir montrer des cas d'utilisation en \LaTeX.
+\begin{tdoclatex}
+Voir du code \LaTeX\ mis en forme, c'est sympa : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
-\begin{filecontents*}[overwrite]{examples-focus-warn.tex}
-\begin{tdocwarn}
- Evitez les dangers...
-\end{tdocwarn}
-\begin{tdocwarn}[Mini titre]
- Utile ?
-\end{tdocwarn}
+On dispose aussi d'un mode côte-à-côte moins envahissant. Sympa ! Non ?
+
+\begin{tdoclatex}[sbs]
+Voir du code \LaTeX\ mis en forme,
+c'est sympa : $E = m c^2$ ou
+$\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-color.tex}
+\documentclass[10pt, a4paper, theme = color]{tutodoc}
-\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
-\begin{tdocshowcase}
- \bfseries Un peu de code \LaTeX.
+% -- FORDOC -- %
- \bigskip
+\newcommand\thisstyle{color}
- \emph{\large Fin de l'affreuse démo.}
-\end{tdocshowcase}
-\end{filecontents*}
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ Dans le flot du texte, il est toujours utile de pouvoir indiquer des exemples et des remarques qui viennent compléter le contenu principal.
+}
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Suivant le contexte d'utilisation, il est parfois nécessaire de pouvoir mettre en avant des contenus en indiquant leur degré d'importance.
+}
-\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
-\begin{tdocshowcase}[before = Mon début,
- after = Ma fin à moi,
- color = red]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\newcommand\myhighlightedtext{
+ Que dire\,%
+ \footnote{
+ N'oublions pas les notes de bas de page...
+ }?
+ Je ne sais pas, mais en tout cas, il semble sympathique de montrer ce que peut donner telle mise en forme, ou telle autre. Non ?
+}
-\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
-\begin{tdocshowcase}
- \string[Cela fonctionne...]
-\end{tdocshowcase}
-\end{filecontents*}
+\begin{document}
+{\Huge\bfseries Le thème \texttt{"\thisstyle"}}
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
-\begin{tdocshowcase}[nostripe]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\section{Mettre en avant, versionner et dater}
+\ExplSyntaxOn
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
-\begin{tdocshowcase}[nostripe,
- before = Mon début,
- after = Ma fin à moi,
- color = green]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+ \myexrmktext
-\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
-Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
-\end{filecontents*}
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+ \myexrmktext
+}
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{Des codes \LaTeX}
+
+Il est indispensable de pouvoir montrer des cas d'utilisation en \LaTeX.
+
+\begin{tdoclatex}
+Voir du code \LaTeX\ mis en forme, c'est sympa : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+
+On dispose aussi d'un mode côte-à-côte moins envahissant. Sympa ! Non ?
-\begin{filecontents*}[overwrite]{examples-listing-ABC.tex}
\begin{tdoclatex}[sbs]
- $A = B + C$
+Voir du code \LaTeX\ mis en forme,
+c'est sympa : $E = m c^2$ ou
+$\pi \neq \frac{3}{14}$.
\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-dark.tex}
+\documentclass[10pt, a4paper, theme = dark]{tutodoc}
-\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
-\begin{tdoclatex}[std]
- [Étrange... Ou pas !]
+% -- FORDOC -- %
+
+\newcommand\thisstyle{dark}
+
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ Dans le flot du texte, il est toujours utile de pouvoir indiquer des exemples et des remarques qui viennent compléter le contenu principal.
+}
+
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Suivant le contexte d'utilisation, il est parfois nécessaire de pouvoir mettre en avant des contenus en indiquant leur degré d'importance.
+}
+
+\newcommand\myhighlightedtext{
+ Que dire\,%
+ \footnote{
+ N'oublions pas les notes de bas de page...
+ }?
+ Je ne sais pas, mais en tout cas, il semble sympathique de montrer ce que peut donner telle mise en forme, ou telle autre. Non ?
+}
+
+
+\begin{document}
+
+{\Huge\bfseries Le thème \texttt{"\thisstyle"}}
+
+\section{Mettre en avant, versionner et dater}
+
+\ExplSyntaxOn
+
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+
+ \myexrmktext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myexrmktext
+}
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{Des codes \LaTeX}
+
+Il est indispensable de pouvoir montrer des cas d'utilisation en \LaTeX.
+
+\begin{tdoclatex}
+Voir du code \LaTeX\ mis en forme, c'est sympa : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+
+On dispose aussi d'un mode côte-à-côte moins envahissant. Sympa ! Non ?
+
+\begin{tdoclatex}[sbs]
+Voir du code \LaTeX\ mis en forme,
+c'est sympa : $E = m c^2$ ou
+$\pi \neq \frac{3}{14}$.
\end{tdoclatex}
+
+\end{document}
+
\end{filecontents*}
+\begin{filecontents*}[overwrite]{gallery-showcase-draft.tex}
+\documentclass[10pt, a4paper, theme = draft]{tutodoc}
+
+% -- FORDOC -- %
+
+\newcommand\thisstyle{draft}
+
+\newcommand\myexrmktext{
+ \tdocdate{2024-10-23}
+ Dans le flot du texte, il est toujours utile de pouvoir indiquer des exemples et des remarques qui viennent compléter le contenu principal.
+}
+
+\newcommand\myadmotext{
+ \tdocversion{1.6.0}[2024-10-23]
+ Suivant le contexte d'utilisation, il est parfois nécessaire de pouvoir mettre en avant des contenus en indiquant leur degré d'importance.
+}
+
+\newcommand\myhighlightedtext{
+ Que dire\,%
+ \footnote{
+ N'oublions pas les notes de bas de page...
+ }?
+ Je ne sais pas, mais en tout cas, il semble sympathique de montrer ce que peut donner telle mise en forme, ou telle autre. Non ?
+}
+
+
+\begin{document}
+
+{\Huge\bfseries Le thème \texttt{"\thisstyle"}}
+
+\section{Mettre en avant, versionner et dater}
+
+\ExplSyntaxOn
+
+\seq_map_inline:Nn \g__tutodoc_focus_std_seq {
+ \subsection*{tdoc#1}
+
+ \myexrmktext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myexrmktext
+}
+
+\ifcsundef{g__tutodoc_focus_color_seq}{
+ \prop_map_inline:Nn \g__tutodoc_focus_color_prop {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+} {
+ \seq_map_inline:Nn \g__tutodoc_focus_color_seq {
+ \subsection*{tdoc#1}
+
+ \myadmotext
+
+ \begin{tdoc#1}
+ \myhighlightedtext
+ \end{tdoc#1}
+
+ \myadmotext
+ }
+}
+
+\ExplSyntaxOff
+
+\section{Des codes \LaTeX}
+
+Il est indispensable de pouvoir montrer des cas d'utilisation en \LaTeX.
-\begin{filecontents*}[overwrite]{examples-listing-strange-bis.tex}
\begin{tdoclatex}
- \string[Étrange... Ou pas !]
+Voir du code \LaTeX\ mis en forme, c'est sympa : $E = m c^2$ ou $\pi \neq \frac{3}{14}$.
\end{tdoclatex}
-\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
-% Juste une démo.
-$x y z = 1$
-\end{filecontents*}
+On dispose aussi d'un mode côte-à-côte moins envahissant. Sympa ! Non ?
+\begin{tdoclatex}[sbs]
+Voir du code \LaTeX\ mis en forme,
+c'est sympa : $E = m c^2$ ou
+$\pi \neq \frac{3}{14}$.
+\end{tdoclatex}
+
+\end{document}
-\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
-\tdoclatexshow[explain = Ce qui vient est coloré...,
- before = Rendu ci-après.,
- after = Rendu fini.,
- color = orange]
- {examples-listing-xyz.tex}
\end{filecontents*}
@@ -210,6 +405,31 @@ Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice-icon.tex}
+\begin{tdoctopic}{À cacher}<\faEyeSlash>
+% Une icône venant de fontawesome5.
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice.tex}
+\begin{tdoctopic}{La fin des icônes}
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
+\begin{tdocupdate}
+ \item Info 1...
+ \item Info 2...
+\end{tdocupdate}
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
\tdocversion[red]{10.2.0-beta}[2023-12-01]
@@ -226,19 +446,63 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
-\begin{tdocnew}
+\begin{filecontents*}[overwrite]{examples-version-n-change-side-effect.tex}
+\tdocversion[red]{1.2.3}[2024-10-29]%
+\paragraph{Avant c'est problématique.}
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+
+
+\paragraph{Après c'est mal placé.}%
+\tdocversion[red]{1.2.3}[2024-10-29]
+
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+
+
+\paragraph{Pas de solution miracle.\tdocversion[red]{1.2.3}[2024-10-29]}
+
+Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli,
+bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
+
+
+\paragraph{Gestion manuelle du problème.\tdocversion{1.2.3}[2024-10-29]<-.745cm>}
+
+Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-first.tex}
+\tdocstartproj{Première version du projet.}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-tech.tex}
+\begin{tdoctech}
\item Info 1...
\item Info 2...
-\end{tdocnew}
+\end{tdoctech}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
-\begin{tdocupdate}
+\begin{filecontents*}[overwrite]{examples-version-n-change-what-n-when.tex}
+\begin{tdoctech}[col = red,
+ date = 2024-10-29]
+ \item Info 1...
+ \item Info 2...
+\end{tdoctech}
+
+\begin{tdocupdate}[col = ForestGreen,
+ version = 1.2.3]
\item Info 1...
\item Info 2...
\end{tdocupdate}
+
+\begin{tdoctopic}{À cacher}<\faEyeSlash>%
+ [version = 4.5.6, date = 2025-11-30]
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
\end{filecontents*}
@@ -258,6 +522,14 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
+\begin{tdocnew}
+ \item Info 1...
+ \item Info 2...
+\end{tdocnew}
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
\begin{tdocfix}
\item Info 1...
@@ -266,37 +538,235 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-unclassifiable.tex}
-\begin{tdoctopic}{Inclassable}
-% Ici le point s'impose.
- \item Info 1...
- \item Info 2...
-\end{tdoctopic}
+\begin{filecontents*}[overwrite]{examples-admonitions-exa-leavevmode.tex}
+\begin{tdocexa}
+ \leavevmode
+ \begin{enumerate}
+ \item Point 1.
+
+ \item Point 2.
+ \end{enumerate}
+\end{tdocexa}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-important.tex}
+\begin{tdocimp}
+ Un truc important sans danger.
+\end{tdocimp}
+
+\begin{tdocimp}[Mini titre]
+ Utile ?
+\end{tdocimp}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-note.tex}
+\begin{tdocnote}
+ Un truc utile à vous dire...
+\end{tdocnote}
+
+\begin{tdocnote}[Mini titre]
+ Utile ?
+\end{tdocnote}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-caution.tex}
+\begin{tdoccaut}
+ Prudence, prudence...
+\end{tdoccaut}
+
+\begin{tdoccaut}[Mini titre]
+ Utile ?
+\end{tdoccaut}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-tip.tex}
+\begin{tdoctip}
+ Une astuce.
+\end{tdoctip}
+
+\begin{tdoctip}[Mini titre]
+ Utile ?
+\end{tdoctip}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-warn.tex}
+\begin{tdocwarn}
+ Evitez les dangers...
+\end{tdocwarn}
+
+\begin{tdocwarn}[Mini titre]
+ Utile ?
+\end{tdocwarn}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-exa.tex}
+\begin{tdocexa}
+ Un exemple...
+\end{tdocexa}
+
+\begin{tdocexa}[Mini titre]
+ Utile ?
+\end{tdocexa}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-admonitions-leavevmode-items.tex}
+\begin{tdoctip}[Peu élégant]
+ \begin{enumerate}
+ \item Point 1.
+ \item Point 2.
+ \end{enumerate}
+\end{tdoctip}
+VERSUS.
+\begin{tdoctip}[Plus élégant]
+ \begin{enumerate}[wide]
+ \item Point 1.
+ \item Point 2.
+ \end{enumerate}
+\end{tdoctip}
\end{filecontents*}
-% ------------------------ %
-% -- SOURCE FOR THE DOC -- %
-% ------------------------ %
+\begin{filecontents*}[overwrite]{examples-admonitions-rmk.tex}
+\begin{tdocrem}
+ Juste une remarque...
+\end{tdocrem}
+
+\begin{tdocrem}[Mini titre]
+ Utile ?
+\end{tdocrem}
+\end{filecontents*}
-\documentclass[10pt, a4paper]{article}
+\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
+\tdoclatexshow[explain = Ce qui vient est coloré...,
+ before = Rendu ci-après.,
+ after = Rendu fini.,
+ colstripe = orange,
+ coltext = blue!70!black]
+ {examples-listing-xyz.tex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-ABC.tex}
+\begin{tdoclatex}[sbs]
+ $A = B + C$
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
+% Juste une démo.
+$x y z = 1$
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
+\begin{tdoclatex}[std]
+ [Étrange... Ou pas !]
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-listing-strange-bis.tex}
+\begin{tdoclatex}
+ \string[Étrange... Ou pas !]
+\end{tdoclatex}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
+\begin{tdocshowcase}[before = Mon début,
+ after = Ma fin à moi,
+ colstripe = red,
+ coltext = orange!75!black]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
+\begin{tdocshowcase}
+ \string[Cela fonctionne...]
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
+\begin{tdocshowcase}[nostripe,
+ before = Mon début,
+ after = Ma fin à moi,
+ colstripe = green,
+ coltext = purple]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
+Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
+\begin{tdocshowcase}
+ \bfseries Un peu de code \LaTeX.
+
+ \bigskip
+
+ \emph{\large Fin de l'affreuse démo.}
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
+\begin{tdocshowcase}[nostripe]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
+\end{filecontents*}
+
+
+% ======================== %
+% == SOURCE FOR THE DOC == %
+% ======================== %
+
+\documentclass[10pt, a4paper]{tutodoc}
+
+% Community tools
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\usepackage[french]{babel, varioref}
-
\usepackage{enumitem}
+
+\usepackage[french]{babel, varioref}
\frenchsetup{StandardItemLabels=true}
-% Package documented.
-\usepackage[lang = french]{tutodoc}
+\usepackage{multicol}
+
+\usepackage{pdfpages}
+
+% Some useful commands.
+\newcommand\thisproj{\tdoccls{tutodoc}}
+\newcommand\thisrepo{\url{https://github.com/bc-tools/for-latex/tree/tutodoc}}
+\newcommand\thismonorepo{\url{https://github.com/bc-tools/for-latex}}
+
+\NewDocumentCommand{\trademark}{m}{\texttt{#1}}
+
+\newcommand\ctan{\href{https://ctan.org/}{\trademark{CTAN}}}
+\newcommand\git{\trademark{git}}
+\newcommand\pdf{\trademark{PDF}}
% Source.
% * https://tex.stackexchange.com/a/604698/6880
-\NewDocumentCommand{ \tdocdocbasicinput }{ m }{%
+\NewDocumentCommand{ \tdocbasicinputDOC }{ m }{%
Considérons le code suivant.
\tdoclatexinput[code]{#1}
@@ -310,7 +780,7 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
% Source.
% * https://tex.stackexchange.com/a/604698/6880
-\NewDocumentCommand{ \tdocdocextraruler }{ m }{%
+\NewDocumentCommand{ \tdocextrarulerDOC }{ m }{%
\par
{
\centering
@@ -325,68 +795,166 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
}
-\NewDocumentEnvironment{ tdoc-doc-showcase }
+\NewDocumentEnvironment{ tdocshowcaseDOC }
{ O{ Début du rendu dans cette doc. }
O{ Fin du rendu dans cette doc. } }{
- \tdocdocextraruler{#1}
+ \tdocextrarulerDOC{#1}
\nopagebreak\smallskip\nopagebreak
}{
\nopagebreak\smallskip\nopagebreak
- \tdocdocextraruler{#2}
+ \tdocextrarulerDOC{#2}
}
+\NewDocumentCommand{\mailsubject}{m}% <-- Translate me!
+ {sujet \tdocquote{\texttt{tutodoc - CONTRIB - #1}}}
+
+% Source: https://tex.stackexchange.com/a/424061/6880
+
+\newcommand{\FTdirO}{}
+\def\FTdirO(#1,#2,#3){%
+ \FTfile(#1,{\color{blue!40!black}\faFolderOpen\hspace{-.35pt}}{\hspace{0.2em}#3})
+ (tmp.west)++(0.8em,-0.4em)node(#2){}
+ (tmp.west)++(1.5em,0)
+ ++(0,-1.3em)
+}
+
+\newcommand{\FTdirC}{}
+\def\FTdirC(#1,#2,#3){%
+ \FTfile(#1,{\color{blue!40!black}\faFolder\hspace{.75pt}}{\hspace{0.2em}#3})
+ (tmp.west)++(0.8em,-0.4em)node(#2){}
+ (tmp.west)++(1.5em,0)
+ ++(0,-1.3em)
+}
+
+\newcommand{\FTfile}{}
+\def\FTfile(#1,#2){%
+ node(tmp){}
+ (#1|-tmp)++(0.6em,0)
+ node(tmp)[anchor=west,black]{\tt #2}
+ (#1)|-(tmp.west)
+ ++(0,-1.2em)
+}
+
+\newcommand{\FTroot}{}
+\def\FTroot{tmp.west}
+
+\newcommand\contribtranslatedirtree{
+ \begin{tikzpicture}%
+ \draw[color=black, thick]
+% en : parent = \FTroot
+% normal dir: (parentID, currentID, label)
+% file : (parentID, label)
+ \FTdirO(\FTroot,root,translate){
+ \FTdirC(root,changes,changes){
+ }
+ \FTdirO(root,en,en) {
+ \FTdirC(en,api,api) {
+ }
+ \FTdirC(en,doc,doc) {
+ }
+ }
+ \FTdirC(root,fr,fr){
+ }
+ \FTdirC(root,status,status){
+ \FTdirO(status,en,en) {
+ \FTfile(en,api.yaml)
+ \FTfile(en,manual.yaml)
+ }
+ \FTdirC(status,fr,fr){
+ }
+ }
+ \FTfile(root,README.md)
+ \FTfile(root,LICENSE.txt)
+ };
+ \end{tikzpicture}
+}
+
\begin{document}
-\title{Le package \texttt{tutodoc} - Documentation de type tutoriel}
-\author{Christophe BAL}
-\date{1\ier{} Janv. 2024 - Version 1.1.0}
+
+\title{La classe \texttt{tutodoc} - Documentation de type tutoriel}
+\author{Christophe, BAL}
+\date{30 oct. 2024 - Version 1.6.2}
\maketitle
+
\begin{abstract}
-Le package \tdocpack{tutodoc}
-\footnote{
- Le nom vient de \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}} se traduit en \tdocquote{documentation de type tutoriel}.
-}
-est utilisé par son auteur pour produire de façon sémantique des documentations de packages et de classes \LaTeX\ dans un style de type tutoriel
-\footnote{
- L'idée est de produire un fichier \texttt{PDF} efficace à parcourir pour des besoins ponctuels. C'est généralement ce que l'on attend d'une documentation liée au codage.
-},
-et avec un rendu sobre pour une lecture sur écran.
+ La classe \thisproj{}\,%
+ \footnote{
+ Le nom vient de \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}} qui se traduit en \tdocquote{documentation de type tutoriel}.
+ }
+ est utilisée par son auteur pour produire de façon sémantique des documentations de packages et de classes \LaTeX\ dans un style de type tutoriel\,%
+ \footnote{
+ L'idée est de produire un fichier \texttt{PDF} efficace à parcourir pour des besoins ponctuels. C'est généralement ce que l'on attend d'une documentation liée au codage.
+ }
+ via un rendu sobre pour une lecture sur écran.
+ \smallskip
-\begin{tdocnote}
- Ce package impose un style de mise en forme.
- Dans un avenir plus ou moins proche, \tdocpack{tutodoc} sera sûrement éclaté en une classe et un package.
-\end{tdocnote}
+ \noindent
+ \emph{\textbf{Remarque :} cette documentation est aussi disponible en anglais.}
+
+ \tdocsep
+
+ {\small\itshape
+ \vspace{-5pt}
+ \begin{center}
+ \textbf{Abstract.}
+ \end{center}
+
+ The \thisproj{} class\,%
+ \footnote{
+ The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
+ }
+ is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style\,%
+ \footnote{
+ The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
+ }
+ using a sober rendering for reading on screen.
+
+ \smallskip
+
+ \noindent
+ \emph{\textbf{Remark :} this documentation is also available in French.}
+ }
+\end{abstract}
-\tdocsep
+\medskip
-{\small\itshape
-\textbf{Abstract.}
-The \tdocpack{tutodoc} package
-\footnote{
- The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
-}
-is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style
-\footnote{
- The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
-},
-and with a sober rendering for reading on screen.
+\begin{center}
+\small
+\begin{minipage}{.9\textwidth}
+\begin{tdocnote}[Derniers changements]
+\begin{tdocnew}
+ \item Les macros \tdocmacro{tdocdate} et \tdocmacro{tdocversion} ont un nouvel argument final facultatif \tdocinlatex{<voffset>} pour choisir un décalage vertical spécifique.
+ \item De meilleurs environnements pour indiquer les modifications apportées.
+ \begin{enumerate}
+ \item Les nouvelles clés facultatives \tdocinlatex{col}\,, \tdocinlatex{date} et \tdocinlatex{version} permettent d'indiquer la date et la version d'une modification apportée à un sujet spécifique.
-\begin{tdocnote}
- This package imposes a formatting style. In the not-too-distant future, \tdocpack{tutodoc} will probably be split into a class and a package.
+ \item Utilisation de \tdocmacro{paragraph} pour le titre.
+ \end{enumerate}
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Changements : la police des notes de marge aura toujours une forme normale.
+
+ \item Ornement : utilisation d'un \tdocinlatex{\cleaders} pour éviter les lignes orphelines en bas de page.
+\end{tdocupdate}
\end{tdocnote}
-}
-\end{abstract}
+\end{minipage}
+\end{center}
\newpage
\tableofcontents
\newpage
+
+
\section{Mises en forme générales imposées}
\subsection{Géométrie de la page}
@@ -463,30 +1031,49 @@ Le package \tdocpack{hyperref} est importé en coulisse avec les réglages ci-de
\begin{tdoclatex}[code]
+\newcommand{\tdoclinkcolor}{NavyBlue!85!white}
+
\hypersetup{
colorlinks,
- citecolor = orange!75!black,
- filecolor = orange!75!black,
- linkcolor = orange!75!black,
- urlcolor = orange!75!black
+ citecolor = \tdoclinkcolor,
+ filecolor = \tdoclinkcolor,
+ linkcolor = \tdoclinkcolor,
+ urlcolor = \tdoclinkcolor
}
\end{tdoclatex}
-\section{Choisir la langue au chargement du package}
+\section{Quelle langue est utilisée par la classe \thisproj\ ?}
-La présente documentation utilise le français via \tdocinlatex|\usepackage[lang = french]{tutodoc}| .
-Pour le moment, on a juste les deux choix suivants.
+Cette documentation charge le package \tdocpack{babel} via \tdocinlatex|\usepackage[french]{babel}|\,.
+Dès lors, la classe \thisproj\ repère \tdocinlatex|fr| comme langue principale utilisée par \tdocpack{babel}.%
+\footnote{
+ Techniquement, on utilise \tdocinlatex|\BCPdata{language}| qui renvoie une langue au format court.
+}
+Comme cette langue fait partie de la liste des langues prises en compte, voir ci-dessous, la classe \thisproj\ produira les effets attendus.
-\begin{enumerate}
- \item \tdocinlatex|english| est la valeur par défaut.
+\begin{multicols}{3}
+ \begin{itemize}
+ \item \tdocinlatex|en| : anglais.
+ \item \tdocinlatex|es| : espagnol.
+ \item \tdocinlatex|fr| : français.
+ \end{itemize}
+\end{multicols}
+
- \item \tdocinlatex|french| est pour \tdocinEN{français}.
-\end{enumerate}
+
+\begin{tdoccaut}
+ Si le choix de la langue principale n'est pas faite dans le préambule, le mécanisme employé échouera avec des effets de bord non voulus (voir l'avertissement qui suit).
+\end{tdoccaut}
+
+
+\begin{tdocwarn}
+ Lorsqu'une langue n'est pas prise en compte par \thisproj, un message d'avertissement est émis, et l'anglais est alors choisi comme langue vis-à-vis de \thisproj.
+\end{tdocwarn}
\begin{tdocnote}
- Les noms des langues sont ceux proposés par le package \tdocpack{babel}.
+ Le mécanisme utilisé devrait être compatible avec le package \tdocpack{polyglossia}.
\end{tdocnote}
@@ -504,142 +1091,240 @@ La macro \tdocmacro{tdocinEN} et sa version étoilée s'appuient sur \tdocmacro{
\begin{tdocnote}
- Le texte \tdocquote{en anglais} est traduit dans la langue indiquée lors de l'importation de \tdocpack{tutodoc}.
+ Le texte \tdocquote{en anglais} est traduit dans la langue détectée par \thisproj.
\end{tdocnote}
-\section{Mettre en avant du contenu}
+\section{Choisir son thème}
+
+Pour modifier la mise en forme générale, la classe \thisproj\ propose l'option \tdocinlatex{theme = <choix>} où \tdocinlatex{<choix>} peut prendre les valeurs suivantes.
+
+\begin{itemize}
+ \item \tdocinlatex|bw| :
+ ce thème est de type noir-et-blanc avec certaines nuances de gris.
+
+ \item \tdocinlatex|color| :
+ ce thème est coloré, \emph{c'est la valeur par défaut}.
+
+ \item \tdocinlatex|dark| :
+ ce thème est sombre, idéal pour se reposer les yeux.
+
+ \item \tdocinlatex|draft| :
+ ce thème est juste pour une impression papier à la recherche d'erreurs de contenu pas forcément simples à débusquer devant son écran.
+\end{itemize}
+
\begin{tdocnote}
- Les environnements présentés dans cette section
- \footnote{
- La mise en forme provient du package \tdocpack{amsthm}.
- }
- ajoutent un court titre indiquant le type d'informations fournies.
- Ce court texte sera toujours traduit dans la langue indiquée lors du chargement du package \tdocpack{tutodoc}.
+ A la fin de ce document, après l'historique des changements, vous trouverez une galerie de cas d'utilisation de ces différents thèmes : se rendre à l'annexe page \pageref{tutodoc-theme-gallery}.
\end{tdocnote}
-% ------------------ %
+% ----------------------------- %
+% -- AT END DOCUMENT - START -- %
+% ----------------------------- %
+% The following AT-END-DOCUMENT lines of codes have been generated
+% automatically. Don't judge their relative beauty...
-\subsection{Des exemples}
+\AtEndDocument{
-Des exemples numérotés, ou non, s'indiquent via l'environnement \tdocenv{tdocexa} qui propose deux arguments optionnels.
+% An annex page for a pretty doc.
+\newpage
-\begin{enumerate}
- \item Le 1\ier{} argument entre chevrons \tdocinlatex#<...># peut prendre au choix les valeurs \tdocinlatex#nb# pour numéroter, réglage par défaut, et \tdocinlatex#nonb# pour ne pas numéroter.
+% Source.
+% + https://tex.stackexchange.com/a/8547/6880
+\bgroup
+ \titleformat{\section}[block]{\Huge\bfseries\filcenter}{}{1em}{}
+ \phantomsection\section*{Annexe -- Galerie des thèmes}%
+ \label{tutodoc-theme-gallery}
+ \addcontentsline{toc}{section}{Annexe -- Galerie des thèmes}%
+\egroup
- \item Le 2\ieme{} argument entre crochets \tdocinlatex#[...]# sert à ajouter un mini-titre.
-\end{enumerate}
+\bigskip
+\begin{tdocnote}
+ Chaque exemple est un \pdf\ de deux pages exactement qui a été directement inséré dans ce document (ne soyez donc pas surpris par les numéros de page).
+\end{tdocnote}
-Voici différents emplois possibles.
+\newpage
-\tdoclatexinput[sbs]{examples-focus-exa.tex}
+% Let's build the PDFs.
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-bw}
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-color}
-% ------------------ %
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-dark}
+\immediate\write18{SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -shell-escape -pdflatex gallery-showcase-draft}
-\begin{tdocimportant}
- La numérotation des exemples est remise à zéro dès qu'une section de niveau au moins égale à une \tdocinlatex|\subsubsection| est ouverte.
-\end{tdocimportant}
+% The gallery starts here...
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-bw}
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-color}
-% ------------------ %
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-dark}
+\includepdf[
+ pages=1-2,
+ fitpaper=true
+]{gallery-showcase-draft}
+
+}
+
+% --------------------------- %
+% -- AT END DOCUMENT - END -- %
+% --------------------------- %
+
+\section{Mettre en avant du contenu}
+
+\begin{tdocnote}
+ Les environnements présentés dans cette section
+ \footnote{
+ La mise en forme provient du package \tdocpack{keytheorems}.
+ }
+ ajoutent un court titre indiquant le type d'informations fournies.
+ Ce court texte sera toujours traduit dans la langue repérée par la classe \thisproj.
+\end{tdocnote}
-\begin{tdoctip}
- Il peut parfois être utile de revenir à la ligne dès le début du contenu. Voici comment faire (ce tour de passe-passe reste valable pour les environnements présentés dans les sous-sections suivantes). Noter au passage que la numérotation suit celle de l'exemple précédent comme souhaité.
- \tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
-\end{tdoctip}
+\subsection{Du contenu dans le flot de la lecture}
-\subsection{Des remarques}
+\begin{tdocimp}
+ Tous les environnements présentés dans cette section partagent le même compteur qui sera remis à zéro dès qu'une section de niveau au moins égale à une \tdocinlatex|\section| sera ouverte.
+\end{tdocimp}
-Tout se passe via l'environnement \tdocenv{tdocrem} comme dans l'exemple suivant.
-\tdoclatexinput[sbs]{examples-focus-rmk.tex}
+\subsubsection{Des exemples}
-\subsection{Une astuce}
+Des exemples numérotés, si besoin, s'indiquent via \tdocenv{tdocexa} qui propose un argument optionnel pour ajouter un mini-titre.
+Voici deux usages possibles.
-L'environnement \tdocenv{tdoctip} sert à donner des astuces. Voici comment l'employer.
+\tdoclatexinput[sbs]{examples-admonitions-exa.tex}
-\tdoclatexinput[sbs]{examples-focus-tip.tex}
-\subsection{Note informative}
+\begin{tdoctip}
+ Il peut parfois être utile de revenir à la ligne dès le début du contenu. Le code suivant montre comment faire (ce tour de passe-passe reste valable pour l'environnement \verb#tdocrem# présenté juste après). Noter au passage que la numérotation suit celle de l'exemple précédent comme souhaité.
+\end{tdoctip}
+
+\tdoclatexinput[sbs]{examples-admonitions-exa-leavevmode.tex}
-L'environnement \tdocenv{tdocnote} sert à mettre en avant des informations utiles. Voici comment l'utiliser.
-\tdoclatexinput[sbs]{examples-focus-note.tex}
+%\subsection{Du contenu dans le flot de la lecture}
-\subsection{Un truc important}
+\subsubsection{Des remarques}
-L'environnement \tdocenv{tdocimportant} permet d'indiquer quelque chose d'important mais sans danger.
+Tout se passe via \tdocenv{tdocrem} avec un fonctionnement identique à l'environnement \tdocenv*{tdocexa} comme le montre l'exemple suivant.
-\tdoclatexinput[sbs]{examples-focus-important.tex}
+\tdoclatexinput[sbs]{examples-admonitions-rmk.tex}
-\subsection{Avertir d'un point très délicat}
-L'environnement \tdocenv{tdoccaution} sert à indiquer un point délicat à l'utilisateur. Voici comment l'employer.
-\tdoclatexinput[sbs]{examples-focus-caution.tex}
+\subsection{Du contenu tape-à-l'oeil}
+\label{tutodoc-admonitions}
+\begin{tdocnote}
+ La mise en forme proposée ici est celle par défaut, mais d'autres sont possible en changeant de thème : voir la galerie de cas d'utilisation dans l'annexe page \pageref{tutodoc-theme-gallery}.
+ Quant aux icônes, elles sont obtenues via le package \tdocpack{fontawesome5}, et la macro \tdocmacro{tdocicon} gère l'espacement vis-à-vis du texte.
+ \footnote{
+ Par exemple,
+ \tdocinlatex|\fbox{\tdocicon{\faBed}{Fatigué}}|
+ produit\,
+ \fbox{\tdocicon{\faBed}{Fatigué}}\,.
+ }
+\end{tdocnote}
-\subsection{Avertir d'un danger}
-L'environnement \tdocenv{tdocwarn} sert à avertir l'utilisateur d'un piège à éviter. Voici comment l'employer.
-\tdoclatexinput[sbs]{examples-focus-warn.tex}
+\subsubsection{Une astuce}
+L'environnement \tdocenv*{tdoctip} sert à donner des astuces. Voici comment l'employer.
-\section{Indiquer des packages, des classes, des macros ou des environnements}
+\tdoclatexinput[sbs]{examples-admonitions-tip.tex}
-Voici ce qu'il est possible de taper de façon sémantique.
-\begin{tdoclatex}[sbs]
-\tdoccls{maclasse} sert à...
+\smallskip
-\tdocpack{monpackage} est pour...
-\tdocmacro{unemacro} permet de...
+\begin{tdoctip}
+ Quelque fois, un contenu mis en avant peut se réduire à une liste. Dans ce cas, la mise en forme peut être améliorée comme suit où nous utilisons l'option \tdocinlatex{wide} du package \tdocpack{enumitem}.
+
+ \tdoclatexinput[sbs]{examples-admonitions-leavevmode-items.tex}
+
+\end{tdoctip}
+
+
+\foreach \sectitle/\desc/\filename in {
+ {Note informative}/% <-- Translate me!
+ {L'environnement \tdocenv*{tdocnote} sert à mettre en avant des informations utiles. Voici comment l'utiliser.}/% <-- Translate me!
+ note,
+ %
+ {Un truc important}/% <-- Translate me!
+ {L'environnement \tdocenv*{tdocimp} permet d'indiquer quelque chose d'important mais sans danger.}/% <-- Translate me!
+ important,
+ %
+ {Avertir d'un point très délicat}/% <-- Translate me!
+ {L'environnement \tdocenv*{tdoccaut} sert à indiquer un point délicat à l'utilisateur. Voici comment l'employer.}/%<-- Translate me!
+ caution,
+ %
+ {Avertir d'un danger}/% <-- Translate me!
+ {L'environnement \tdocenv*{tdocwarn} sert à avertir l'utilisateur d'un piège à éviter. Voici comment l'employer.}/% <-- Translate me!
+ warn%
+} {
+ \subsubsection{\sectitle}
+
+ \desc
+
+ \tdoclatexinput[sbs]{examples-admonitions-\filename.tex}
+
+}
+
-\tdocenv{env} produit...
+\section{Indiquer des packages, des classes, des macros ou des environnements}
-On a aussi :
+Voici ce qu'il est possible de taper de façon sémantique.
-\tdocenv[{[opt1]<opt2>}]{env}
+
+\begin{tdoclatex}[sbs]
+\tdoccls{maclasse} sert à... \\
+\tdocpack{monpackage} est pour... \\
+\tdocmacro{unemacro} permet de... \\
+\tdocenv{env} produit... \\
+\tdocenv[{[opt1]<opt2>}]{env} \\
+Juste \tdocenv*{env}... \\
+Enfin \tdocenv*[{[opt1]<opt2>}]{env}...
\end{tdoclatex}
\begin{tdocrem}
- L'intérêt des macros précédentes vis à vis de l'usage de \tdocmacro{tdocinlatex}, voir la section \ref{tdoc-listing-inline} page \pageref{tdoc-listing-inline}, est l'absence de coloration.
- De plus, la macro \tdocmacro{tdocenv} demande juste de taper le nom de l'environnement
- \footnote{
- De plus, \tdocinlatex{\tdocenv{monenv}} produit \tdocenv{monenv} avec des espaces afin d'autoriser des retours à la ligne si besoin.
- }
- avec des éventuelles options en tapant les bons délimiteurs
- \footnote{
- Se souvenir que tout est possible ou presque dorénavant.
- }
- à la main.
+ Contrairement à \tdocmacro{tdocinlatex}, les macros \tdocmacro{tdocenv} et \tdocmacro{tdocenv*} ne colorent pas le texte produit.
+ De plus, \tdocinlatex{\tdocenv{monenv}} produit \tdocenv{monenv} avec des espaces afin d'autoriser des retours à la ligne si besoin.
\end{tdocrem}
\begin{tdocwarn}
- L'argument optionnel de la macro \tdocmacro{tdocenv} est copié-collé lors du rendu. Ceci peut donc parfois nécessiter d'utiliser des accolades protectrices comme dans l'exemple précédent.
+ L'argument optionnel de la macro \tdocmacro{tdocenv} est copié-collé
+ \footnote{
+ Se souvenir que tout est possible ou presque dorénavant.
+ }
+ lors du rendu. Ceci peut donc parfois nécessiter d'utiliser des accolades protectrices comme dans l'exemple ci-dessus.
\end{tdocwarn}
-% -------------------- %
-
\section{Origine d'un préfixe ou d'un suffixe}
@@ -647,10 +1332,8 @@ Pour expliquer les noms retenus, rien de tel que d'indiquer et expliciter les co
\begin{tdoclatex}[sbs]
-\tdocpre{sup} est relatif à...
-
-\tdocprewhy{sup.erbe} signifie...
-
+\tdocpre{sup} est relatif à... \\
+\tdocprewhy{sup.erbe} signifie... \\
\emph{\tdocprewhy{sup.er} pour...}
\end{tdoclatex}
@@ -660,96 +1343,87 @@ Pour expliquer les noms retenus, rien de tel que d'indiquer et expliciter les co
\end{tdocrem}
-\section{Un rendu en situation réelle} \label{tdoc-showcase}
+\section{Un rendu en situation réelle}
+\label{tutodoc-showcase}
Il est parfois utile d'obtenir directement le rendu d'un code dans la documentation. Ceci nécessite que ce type de rendu soit dissociable du texte donnant des explications.
-% ------------------ %
-
\subsection{Avec une bande colorée}
\begin{tdocexa}[Avec les textes par défaut]
- Il peut être utile de montrer un rendu réel directement dans un document
+ Il peut être utile de montrer un rendu réel directement dans un document.
\footnote{
Typiquement lorsque l'on fait une démo.
- }.
+ }
Ceci se tape via \tdocenv{tdocshowcase} comme suit.
\tdoclatexinput[code]{examples-showcase-default.tex}
- On obtient alors le rendu suivant
+
+ On obtient alors le rendu suivant.
\footnote{
En coulisse, la bande est créée sans effort grâce au package \tdocpack{clrstrip}.
- }.
+ }
\medskip
\input{examples-showcase-default.tex}
+
\end{tdocexa}
\begin{tdocrem}
- Voir la section \ref{tdoc-latexshow} page \pageref{tdoc-latexshow} pour obtenir facilement un code suivi de son rendu réel comme dans l'exemple précédent.
+ Voir la section \ref{tutodoc-latexshow} page \pageref{tutodoc-latexshow} pour obtenir facilement un code suivi de son rendu réel comme dans l'exemple précédent.
\end{tdocrem}
\begin{tdocnote}
- Les textes explicatifs s'adaptent à la langue choisie lors du chargement de \tdocpack{tutodoc}.
+ Les textes explicatifs s'adaptent à la langue détectée par \thisproj.
\end{tdocnote}
-% ------------------ %
-
-
-\begin{tdocexa}[Changer la couleur et/ou les textes par défaut]
+\begin{tdocexa}[Changer les couleurs et/ou les textes par défaut]
\leavevmode
\tdoclatexinput[code]{examples-showcase-customized.tex}
+
Ceci produira ce qui suit.
\medskip
\input{examples-showcase-customized.tex}
+
\end{tdocexa}
\begin{tdocnote}
- Vous avez sûrement noté que l'on n'obtient pas un rouge pur : en coulisse les macros développables \tdocmacro{tdocbackcolor} et \tdocmacro{tdocdarkcolor} sont utilisées pour créer celles du fond et des titres respectivement à partir de la couleur proposée à \tdocenv{tdocshowcase}.
- Ces macros à un seul argument, la couleur choisie, admettent les codes suivants.
+ Dans l'exemple précédent, le texte utilise bien l'orange assombri proposé. Par contre, le rouge sert de base pour obtenir les couleurs utilisées pour la bande : les transformations utilisées dépendent du thème choisi.%
+ \footnote{
+ Par exemple, les thèmes \tdocinlatex{bw} et \tdocinlatex{draft} ne tiennent pas compte de la clé \tdocinlatex{colstripe} !
+ }
+ %
+ Il faut également savoir qu'en coulisse, la macro \tdocmacro{tdocruler} est employée.
- \begin{tdoclatex}[code]
-\NewExpandableDocumentCommand{\tdocbackcolor}{m}{#1!5}
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{#1!50!black}
+ \begin{tdoclatex}[std]
+ \tdocruler[red]{Un pseudo-titre décoré}
\end{tdoclatex}
\end{tdocnote}
-% ------------------ %
-
-
\begin{tdocwarn}
Avec les réglages par défaut, si le code \LaTeX\ à mettre en forme commence par un crochet ouvrant, il faudra user de \tdocmacro{string} comme dans l'exemple suivant.
\tdoclatexinput[code]{examples-showcase-hook.tex}
- Ceci produira ce qui suit.
- \medskip
-
- \input{examples-showcase-hook.tex}
+ Ceci produira ce qui suit.
\end{tdocwarn}
+\input{examples-showcase-hook.tex}
-\begin{tdocnote}
- Il faut savoir qu'en coulisse la macro \tdocmacro{tdocruler} est utilisée.
-
- \begin{tdoclatex}[std]
- \tdocruler{Un pseudo-titre décoré}{red}
- \end{tdoclatex}
-\end{tdocnote}
\subsection{Sans bande colorée}
@@ -764,27 +1438,28 @@ Il est possible de ne pas utiliser une bande colorée comme nous allons le voir
\tdoclatexinput[code]{examples-showcase-no-clrstrip.tex}
+
Ceci produira ce qui suit.
\medskip
\input{examples-showcase-no-clrstrip.tex}
-\end{tdocexa}
-
-% ------------------ %
+\end{tdocexa}
-\begin{tdocexa}[Changer la couleur et/ou les textes par défaut]
+\begin{tdocexa}[Changer les couleurs et/ou les textes par défaut]
\leavevmode
\tdoclatexinput[code]{examples-showcase-no-clrstrip-customized.tex}
- Ceci produira ce qui suit.
+
+ Ceci produira l'horreur suivante.
\medskip
\input{examples-showcase-no-clrstrip-customized.tex}
+
\end{tdocexa}
@@ -793,77 +1468,82 @@ Il est possible de ne pas utiliser une bande colorée comme nous allons le voir
Pour obtenir des rendus en important le code depuis un fichier externe, au lieu de le taper, il suffit d'employer la macro \tdocmacro{tdocshowcaseinput} dont l'option reprend la syntaxe de celle de \tdocenv{tdocshowcase} et l'argument obligatoire correspond au chemin du fichier.
-\begin{tdocexa}<nonb>
+\begin{tdocexa}
Ce qui suit a été obtenu via \tdocinlatex+\tdocshowcaseinput{external.tex}+.
\medskip
\tdocshowcaseinput{examples-showcase-external.tex}
+
\medskip
- Quant à \tdocinlatex+\tdocshowcaseinput[color = orange]{external.tex}+\,, ceci produira le changement de couleur observable ci-après.
+ Quant à \tdocinlatex+\tdocshowcaseinput[colstripe = red, coltext = orange!75!black]{external.tex}+\,, ceci produira le changement de couleur observable ci-après.
\medskip
- \tdocshowcaseinput[color = orange]{examples-showcase-external.tex}
+ \tdocshowcaseinput[colstripe = red, coltext = orange!75!black]{examples-showcase-external.tex}
+
\end{tdocexa}
\section{Cas d'utilisation en \LaTeX}
-Documenter un package ou une classe se fait efficacement via des cas d'utilisation montrant à la fois du code et le résultat correspondant.
+Documenter un package ou une classe se fait efficacement via des cas d'utilisation montrant à la fois du code et le résultat correspondant.%
+\footnote{
+ La mise en forme des codes se fait via le package \tdocpack{minted}.
+}
+
+%\begin{tdoccaut}
+% La version 3 de \tdocpack{minted} ne peut pas être prise en compte pour le moment car elle comporte des bugs : voir \url{https://github.com/gpoore/minted/issues/401}. On force donc l'usage de la version 2 de \tdocpack{minted}.
+%\end{tdoccaut}
-% ------------------ %
-\subsection{Codes \tdocquote{en ligne}} \label{tdoc-listing-inline}
+\subsection{Codes \tdocquote{en ligne}}
+\label{tutodoc-listing-inline}
La macro \tdocmacro{tdocinlatex}
\footnote{
Le nom de la macro \tdocmacro{tdocinlatex} vient de \tdocquote{\tdocprewhy{in.line} \LaTeX} soit \tdocinEN{\LaTeX\ en ligne}.
}
-permet de taper du code en ligne via un usage similaire à \tdocmacro{verb}.
+permet de taper du code en ligne via un usage similaire à \tdocmacro{verb} ou bien comme une macro standard (voir la gestion des accolades dans le dernier cas ci-dessous).
Voici des exemples d'utilisation.
\begin{tdoclatex}[sbs]
- 1: \tdocinlatex|$a^b = c$|
-
- 2: \tdocinlatex+\tdocinlatex|$a^b = c$|+
+ 1: \tdocinlatex|$a^b = c$| \\
+ 2: \tdocinlatex+\tdocinlatex|$a^b = c$|+ \\
+ 3: \tdocinlatex{\tdocinlatex{$a^b = c$}}
\end{tdoclatex}
\begin{tdocnote}
- La macro \tdocmacro{tdocinlatex} est utilisable dans une note de pied de page : voir plus bas
+ La macro \tdocmacro{tdocinlatex} est utilisable dans une note de pied de page : voir ci-dessous.
\footnote{
\tdocinlatex+$minted = TOP$+ a été tapé \tdocinlatex|\tdocinlatex+$minted = TOP$+| dans cette note de bas de page..
- }.
+ }
De plus, une couleur de fond est volontairement utilisée pour subtilement faire ressortir les codes \tdocinlatex#\LaTeX#\,.
\end{tdocnote}
-% ------------------ %
-
\subsection{Codes tapés directement}
\begin{tdocexa}[Face à face]
Via \tdocenv[{[sbs]}]{tdoclatex}, on affichera un code et son rendu côte à côte.
Indiquons que \tdocinlatex#sbs# est pour \tdocquote{\tdocprewhy{s.ide} \tdocprewhy{b.y} \tdocprewhy{s.ide}} soit \tdocinEN{côte à côte}.
- \tdocdocbasicinput{examples-listing-ABC.tex}
-\end{tdocexa}
+ \tdocbasicinputDOC{examples-listing-ABC.tex}
-
-% ------------------ %
+\end{tdocexa}
\begin{tdocexa}[À la suite]
- \tdocenv{tdoclatex} produit le résultat suivant qui correspond à l'option par défaut \tdocinlatex#std#
+ \tdocenv{tdoclatex} produit le résultat suivant qui correspond à l'option par défaut \tdocinlatex#std#\,.
\footnote{
\tdocinlatex{std} fait référence au comportement \tdocquote{standard} de \tdocpack{tcolorbox} vis à vis de la librairie \tdocpack{minted}.
- }.
+ }
\begin{tdoclatex}
$A = B + C$
@@ -871,9 +1551,6 @@ Voici des exemples d'utilisation.
\end{tdocexa}
-% ------------------ %
-
-
\begin{tdocexa}[Juste le code]
Via \tdocenv[{[code]}]{tdoclatex}, on aura juste le code comme ci-après.
@@ -883,17 +1560,16 @@ Voici des exemples d'utilisation.
\end{tdocexa}
-% ------------------ %
-
-
\begin{tdocwarn}
Avec la mise en forme par défaut, si le code commence par un crochet ouvrant, il faudra indiquer explicitement l'option par défaut.
- \tdocdocbasicinput{examples-listing-strange.tex}
-
+ \tdocbasicinputDOC{examples-listing-strange.tex}
+
+
\smallskip
-
+
Une autre méthode consiste à utiliser la primitive \tdocmacro{string}.
- \tdocdocbasicinput{examples-listing-strange-bis.tex}
+ \tdocbasicinputDOC{examples-listing-strange-bis.tex}
+
\end{tdocwarn}
@@ -901,14 +1577,15 @@ Voici des exemples d'utilisation.
Pour les codes suivants, on considère un fichier de chemin relatif \verb+examples-listing-xyz.tex+, et ayant le contenu suivant.
+
\tdoclatexinput[code]{examples-listing-xyz.tex}
-\medskip
-La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'un fichier et propose les mêmes options que l'environnement \tdocenv{tdoclatex}.
+\medskip
-% ------------------ %
+
+La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'un fichier et propose les mêmes options que l'environnement \tdocenv*{tdoclatex}.
\begin{tdocexa}[Face à face]
@@ -916,15 +1593,14 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante.
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
-\end{tdocexa}
-
-% ------------------ %
+\end{tdocexa}
\begin{tdocexa}[À la suite]
@@ -932,15 +1608,14 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante où l'option employée par défaut est \tdocinlatex#std#.
\tdoclatexinput{examples-listing-xyz.tex}
-\end{tdocexa}
-
-% ------------------ %
+\end{tdocexa}
\begin{tdocexa}[Juste le code]
@@ -948,257 +1623,584 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante.
\tdoclatexinput[code]{examples-listing-xyz.tex}
-\end{tdocexa}
+\end{tdocexa}
-% ------------------ %
-\subsection{Codes importés et mis en situation} \label{tdoc-latexshow}
+\subsection{Codes importés et mis en situation}
+\label{tutodoc-latexshow}
-\begin{tdocexa}[Showcase]
+\begin{tdocexa}[Mise en situation]
Ce qui suit s'obtient via \tdocinlatex+\tdoclatexshow{examples-listing-xyz.tex}+.
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\tdoclatexshow{examples-listing-xyz.tex}
- \end{tdoc-doc-showcase}
+
+ \end{tdocshowcaseDOC}
\end{tdocexa}
\begin{tdocnote}
- Les textes par défaut tiennent compte de la langue choisie lors du chargement du package \tdocpack{tutodoc}.
+ Les textes par défaut tiennent compte de la langue détectée par \thisproj.
\end{tdocnote}
-% ------------------ %
-
-
\begin{tdocexa}[Changer le texte explicatif]
Via la clé \tdocinlatex|explain|, on peut utiliser un texte personnalisé. Ainsi, \tdocinlatex|\tdoclatexshow[explain = Voici le rendu réel.]{examples-listing-xyz.tex}| produira ce qui suit.
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\tdoclatexshow[explain = Voici le rendu réel.]{examples-listing-xyz.tex}
- \end{tdoc-doc-showcase}
-\end{tdocexa}
-
-% ------------------ %
+ \end{tdocshowcaseDOC}
+\end{tdocexa}
\begin{tdocexa}[Les options disponibles]
- En plus du texte explicatif, il est aussi possible d'utiliser toutes les options de \tdocenv{tdocshowcase}, voir \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
+ En plus du texte explicatif, il est aussi possible d'utiliser toutes les options de l'environnement \tdocenv*{tdocshowcase}, voir \ref{tutodoc-showcase} page \pageref{tutodoc-showcase}.
Voici un exemple illustrant ceci.
\medskip
\tdoclatexinput[code]{examples-listing-latexshow-options.tex}
+
\medskip
Ceci va produire ce qui suit.
\medskip
- \begin{tdoc-doc-showcase}
+ \begin{tdocshowcaseDOC}
\input{examples-listing-latexshow-options.tex}
- \end{tdoc-doc-showcase}
+
+ \end{tdocshowcaseDOC}
\end{tdocexa}
\section{Indiquer les changements}
-Afin de faciliter le suivi d'un package, il est indispensable de fournir un historique indiquant les changements effectués lors de la publication d'une nouvelle version.
+Afin de faciliter le suivi d'un projet, il est indispensable de fournir un historique indiquant les changements effectués lors de la publication d'une nouvelle version.
-% ------------------ %
-
\subsection{À quel moment ?}
+\label{tutodoc-changes-when}
On peut au choix dater quelque chose, ou bien le versionner, dans ce second cas le numéro de version pourra éventuellement être daté.
-% ------------------ %
-
-
\begin{tdocexa}[Dater des nouveautés]
La macro \tdocmacro{tdocdate} permet d'indiquer une date dans la marge comme dans l'exemple suivant.
\tdoclatexshow{examples-version-n-change-dating.tex}
-\end{tdocexa}
-
-% ------------------ %
+\end{tdocexa}
\begin{tdocexa}[Versionner des nouveautés en les datant événtuellement]
Associer un numéro de version à une nouveauté se fait via la macro \tdocmacro{tdocversion}, la couleur et la date étant des arguments optionnels.
\tdoclatexshow{examples-version-n-change-versioning.tex}
-\end{tdocexa}
+\end{tdocexa}
-\begin{tdocimportant}
- \leavevmode
- \begin{enumerate}
+\begin{tdocimp}
+ \begin{enumerate}[wide]
\item Les macros \tdocmacro{tdocdate} et \tdocmacro{tdocversion} nécessitent deux compilations.
- \item Comme la langue indiquée pour cette documentation est le français, la date dans le rendu final est au format \texttt{JJ/MM/AAAA} alors que dans le code celle-ci devra toujours être saisie au format anglais \texttt{AAAA-MM-JJ}.
+ \item Comme la langue détectée pour cette documentation est le français, la date dans le rendu final est au format \texttt{JJ/MM/AAAA} alors que dans le code celle-ci devra toujours être saisie au format anglais \texttt{AAAA-MM-JJ}.
\end{enumerate}
-\end{tdocimportant}
+\end{tdocimp}
-\begin{tdocwarn}
- Seul l'emploi du format numérique \tdocinlatex+YYYY-MM-DD+ est vérifié
+\begin{tdoccaut}
+ Seul l'emploi du format numérique \tdocinlatex+YYYY-MM-DD+ est vérifié,
\footnote{
Techniquement, vérifier la validité d'une date, via \LaTeX3, ne présente pas de difficulté.
- },
+ }
et ceci est un choix ! Pourquoi cela ? Tout simplement car dater et versionner des explications devrait se faire de façon semi-automatisée afin d'éviter tout bug humain.
% \footnote{
-% L'auteur de \tdocpack{tutodoc} est entrain de mettre en place un ensemble d'outils permettant une telle semi-automatisation.
+% L'auteur de \thispack{} est entrain de mettre en place un ensemble d'outils permettant une telle semi-automatisation.
% }.
+\end{tdoccaut}
+
+
+\begin{tdocwarn}
+ En coulisse, le gros du travail est fait par la macro \tdocmacro{\marginnote} du package éponyme.
+ Les macros \tdocmacro{tdocdate} et \tdocmacro{tdocversion} souffrent donc des même effets de bord comme dans l'exemple suivant.
+ On peut tout de même régler ces problèmes via un argument optionnel \tdocinlatex{<déplacement-vertical>} comme à la fin de l'exemple ci-après. C'est moche, mais fonctionnel.
+
+ \tdoclatexshow[nostripe, colstripe=red]{examples-version-n-change-side-effect.tex}
+
\end{tdocwarn}
\subsection{Quoi de neuf ?}
-\tdocpack{tutodoc} propose différents environnements pour indiquer rapidement et clairement ce qui a été fait
+\thisproj\ propose la macro \tdocmacro{tdocstartproj} et différents environnements pour indiquer rapidement et clairement ce qui a été fait lors des derniers changements.%
\footnote{
L'utilisateur n'a pas besoin de tous les détails techniques.
}
-lors des derniers changements.
-\begin{tdocexa}[Pour les nouveautés]
- \leavevmode
+\begin{tdocnote}
+ Concernant les icônes, voir la note au début de la section \ref{tutodoc-admonitions} page \pageref{tutodoc-admonitions}.
+\end{tdocnote}
- \tdoclatexinput[sbs]{examples-version-n-change-new.tex}
-\end{tdocexa}
+\foreach \exatitle/\filename in {
+ {Juste pour la toute première version}/%<-- Translate me!
+ first,
+ {Pour les nouveautés}/% <-- Translate me!
+ new,
+ {Pour les mises à jour}/% <-- Translate me!
+ update,
+ {Pour les bifurcations}/% <-- Translate me!
+ break,
+ {Pour les problèmes}/% <-- Translate me!
+ pb,
+ {Pour les réparations}/% <-- Translate me!
+ fix,
+ {Informations techniques}/% <-- Translate me!
+ tech,
+ %
+ {Thématiques aux choix avec une icône}/%<-- Translate me!
+ user-choice-icon,
+ {Thématiques aux choix sans icône}/% <-- Translate me!
+ user-choice%
+} {
+ \begin{tdocexa}[\exatitle]
+ \leavevmode
-% ------------------ %
+ \tdoclatexinput[sbs]{examples-version-n-change-\filename.tex}
+ \end{tdocexa}
+}
-\begin{tdocexa}[Pour les mises à jour]
- \leavevmode
- \tdoclatexinput[sbs]{examples-version-n-change-update.tex}
-\end{tdocexa}
+\subsection{Le quoi et le quand}
+
+Les clés optionnelles \tdocinlatex{col}\,, \tdocinlatex{date} et \tdocinlatex{version} permettent de dater et versionner un changement d'un type particulier.%
+\footnote{
+ L'avertissement à la fin de la section \ref{tutodoc-changes-when} donne la technique utilisée en coulisse, tout en montrant la nécessité de proposer des clés spécialisées.
+}
+Voici des exemples d'utilisation.
+
+\tdoclatexshow{examples-version-n-change-what-n-when.tex}
+
+
+
+\section{Décoration}
+
+Finissons cette documentation avec un petit outil de mise en forme qui rend de grands services.
+
+
+\begin{tdoclatex}[sbs]
+Bla, bla, bla...
+
+\tdocsep % Pratique pour délimiter.
+
+Ceci fonctionne avec des énumérations.
+
+\begin{itemize}
+ \item Point souligné.
+\end{itemize}
+
+\tdocsep % Un comportement uniforme.
+
+Ble, ble, ble...
+\end{tdoclatex}
+
+
+\section{Contribuer}
+
+\begin{tdocnote}
+ \textbf{Nul besoin d'être un codeur pour participer aux traductions}, y compris pour celles utiles au fonctionnement de \thisproj.
+\end{tdocnote}
+
+
+%\section{Contribuer}
+
+\subsection{Compléter les traductions}
+
+\begin{tdocnote}
+ L'auteur de \thisproj\ gère les versions françaises et anglaises des traductions.
+\end{tdocnote}
+
+
+\begin{tdoccaut}
+ Même si nous allons expliquer comment traduire les documentations, il semble peu pertinent de le faire, car l'anglais devrait suffire de nos jours.%
+ \footnote{
+ L'existence d'une version française est une simple conséquence de la langue maternelle de l'auteur de \thisproj.
+ }
+\end{tdoccaut}
+
+\begin{figure}[ht]
+ \centering
+ \contribtranslatedirtree\
+ \caption{Vue simplifiée du dossier des traductions}
+ \label{tutodoc-contrib-translate-dir}
+\end{figure}
+
+
+Les traductions sont organisées grosso-modo comme dans la figure \ref{tutodoc-contrib-translate-dir} où seuls les dossiers importants pour les traductions ont été \tdocquote{ouverts}\,.%
+\footnote{
+ Cette organisation était celle du 5 octobre 2024, mais elle reste d'actualité.
+}
+\textbf{Un peu plus bas, la section \ref{tutodoc-contrib-translate} donne les démarches à suivre pour ajouter de nouvelles traductions.}
+
+
+\subsubsection{Les dossiers \texttt{fr} et \texttt{en}}
+
+Ces deux dossiers, gérés par l'auteur de \thisproj, ont la même organisation ; ils contiennent des fichiers faciles à traduire même si l'on n'est pas un codeur.
+
+
+\subsubsection{Le dossier \texttt{changes}}
+
+Ce dossier est un outil de communication où sont indiqués les changements importants sans s'attarder sur les modifications mineures propres à une ou plusieurs traductions.
+
+
+
+\subsubsection{Le dossier \texttt{status}}
+
+Ce dossier permet de savoir où en sont les traductions du point de vue du projet. Tout se passe via des fichiers \verb#YAML# bien commentés, et lisibles par un non codeur.
+
+
+
+\subsubsection{Les fichiers \texttt{README.md} et \texttt{LICENSE.txt}}
+
+Le fichier \texttt{LICENSE.txt} est bien nommé, tandis que le fichier \texttt{README.md} reprend en anglais les points importants de ce qui est dit dans cette section sur les nouvelles traductions.
+
+
+
+\subsubsection{De nouvelles traductions}
+\label{tutodoc-contrib-translate}
+
+\begin{tdocimp}
+ Le dossier \verb#api# contient les traductions relatives aux fonctionnalités de \thisproj.
+ Vous y trouverez des fichiers de type \verb#TXT# à modifier via un éditeur de texte, ou de code, mais non via un traitement de texte.
+ Les contenus de ces fichiers utilisent des lignes commentées en anglais pour expliquer ce que fera \thisproj\ ; ces lignes commencent par \verb#//#\,. Voici un extrait de ce type de fichier où \textbf{les traductions se font après chaque signe \,$=$\, sans toucher à ce qui se trouve avant}, car ce morceau initial est utilisé en interne par le code de \thisproj..
+
+ \tdocsep
+ \vspace{-10pt}
+ \begin{verbatim}
+ // #1: year in format YYYY like 2023.
+ // #2: month in format MM like 04.
+ // #3: day in format DD like 29.
+ date = #1-#2-#3
+
+ // #1: the idea is to produce one text like
+ // "this word means #1 in English".
+ in_EN = #1 in english\end{verbatim}
+\end{tdocimp}
+
+
+\begin{tdocnote}
+ Le dossier \verb#doc# est réservé aux documentations. Il contient des fichiers de type \verb#TEX# compilables directement pour une validation en temps réel des traductions faites.
+\end{tdocnote}
+
+
+\begin{tdocwarn}
+ Ne partir que de l'un des dossiers \verb#fr# et \verb#en#, car ceux-ci sont de la responsabilité de l'auteur de \thisproj.
+\end{tdocwarn}
+
+
+\medskip
+
+
+\emph{\textbf{Imaginons que vous souhaitiez ajouter le support de l'italien en partant de fichiers rédigés en anglais.}}%
+\footnote{
+ Comme indiqué plus haut, il n'y a pas de besoin réel du côté du dossier \texttt{doc} de la documentation.
+}
+
+
+\paragraph{Méthode 1 : \git.}
+
+\begin{enumerate}
+ \item Obtenir tout le dossier du projet via \thisrepo\,.
+ Ne pas passer via la branche \verb#main# qui sert à figer les dernières versions stables des projets du dépôt unique \thismonorepo\,.
+
+ \item Dans le dossier \verb#tutodoc/contrib/translate#, créer une copie \verb#it# du dossier \verb#en#\,, le nom court de la langue étant documenté dans
+ \href{https://en.wikipedia.org/wiki/IETF_language_tag#List_of_common_primary_language_subtags}%
+ {la page \tdocquote{IIETF language tag}}
+ de \texttt{Wikipédia}.
+
+ \item Une fois la traduction achevée dans le dossier \verb#it# , il faudra la communiquer via \thisrepo\ en usant d'un classique \verb#git push#\,.
+\end{enumerate}
+
+
+\paragraph{Méthode 2 : communiquer par courriels.}
+
+\begin{enumerate}
+ \item Via un courriel de \mailsubject{en FOR italian}\,, demander une version des traductions anglaises (noter l'emploi du nom anglais de la nouvelle langue).
+ Bien respecter le sujet du courriel, car l'auteur de \thisproj\ automatise le pré-traitement de ce type de courriels.
+
+ \item Vous recevrez un dossier nommé \verb#italian# contenant la version anglaise des dernières traductions.
+ Ce dossier sera le lieu de votre contribution.
+
+ \item Une fois la traduction achevée, il faudra compresser votre dossier \verb#italian# au format \verb#zip# ou \verb#rar# avant de l'envoyer par courriel avec le \mailsubject{italian}\,.
+\end{enumerate}
+
+
+%\section{Contribuer}
+
+\subsection{Améliorer le code source}
+
+\begin{tdocimp}
+ Si vous souhaitez participer à \thisproj\,, il faudra privilégier le paradigme de programmation \LaTeX3.
+\end{tdocimp}
+
+
+La participation en tant que codeuse, ou codeur, se fait via le dépôt \thisrepo\ correspondant à la branche de développement \verb#tutodoc#.
+Ne pas passer via la branche \verb#main# qui sert à figer les dernières versions stables des projets du dépôt unique \thismonorepo\,.
+
+
+\section{Historique}
+
+\small
+
+\begin{tdocnew}[version = 1.6.2, date = 2024-10-30]
+ \item Les macros \tdocmacro{tdocdate} et \tdocmacro{tdocversion} ont un nouvel argument final facultatif \tdocinlatex{<voffset>} pour choisir un décalage vertical spécifique.
+
+ \item De meilleurs environnements pour indiquer les modifications apportées.
+ \begin{enumerate}
+ \item Les nouvelles clés facultatives \tdocinlatex{col}\,, \tdocinlatex{date} et \tdocinlatex{version} permettent d'indiquer la date et la version d'une modification apportée à un sujet spécifique.
+
+ \item Utilisation de \tdocmacro{paragraph} pour le titre.
+ \end{enumerate}
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Changements : la police des notes de marge aura toujours une forme normale.
+
+ \item Ornement : utilisation d'un \tdocinlatex{\cleaders} pour éviter les lignes orphelines en bas de page.
+\end{tdocupdate}
+
+\tdocsep
% ------------------ %
-\begin{tdocexa}[Pour les bifurcations]
- \leavevmode
+\begin{tdoctech}[version = 1.6.1, date = 2024-10-28]
+ \item Les règles de nommage de \ctan\ nécessitent l'usage de noms du type \verb+tutodoc-*.css.cls.sty+ pour les fichiers à-la \trademark{CSS}.
+\end{tdoctech}
- \tdoclatexinput[sbs]{examples-version-n-change-break.tex}
-\end{tdocexa}
+\tdocsep
% ------------------ %
-\begin{tdocexa}[Pour les problèmes]
- \leavevmode
+\begin{tdocbreak}[version = 1.6.0, date = 2024-10-27]
+ \item L'environnement \tdocenv*{showcase} et ses descendants : la clé \tdocinlatex{color} a été renommée \tdocinlatex{colstripe}.
- \tdoclatexinput[sbs]{examples-version-n-change-pb.tex}
-\end{tdocexa}
+ \item La macro \tdocmacro{tdoclinkcolor} devient la couleur \tdocinlatex{tutodoc@link@color} destinée à un usage interne.
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item L'option de classe \tdocinlatex{theme} permet de choisir différents thèmes de mise en forme.
+
+ \item Journal des modifications : ajout de l'environnement \tdocenv*{tdoctech} pour les informations techniques.
+
+ \item L'environnement \tdocenv*{showcase} et ses descendants : la clé \tdocinlatex{coltext} permet de changer aussi la couleur du texte.
+
+ \item Les nouvelles fonctionnalités ont été documentées.
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Journal des modifications : l'environnement \tdocenv*{tdocupdate} utilise l'icône
+ \raisebox{0pt}[0pt][0pt]{\fbox{\reflectbox{\faHistory}}}
+ au lieu de
+ \raisebox{0pt}[0pt][0pt]{\fbox{\faMagic}}\,.
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item Les traductions espagnoles n'avaient pas été livrées dans la précédente version ! Ne pas rire trop fort...
+\end{tdocfix}
+
+\tdocsep
% ------------------ %
-\begin{tdocexa}[Pour les réparations]
- \leavevmode
+\begin{tdoctech}[version = 1.5.0, date = 2024-10-19]
+ \item La version 3 de \tdocpack{minted} est prise en compte.
+\end{tdoctech}
- \tdoclatexinput[sbs]{examples-version-n-change-fix.tex}
-\end{tdocexa}
+\begin{tdocbreak}
+ \item La classe \thisproj\ remplace le défunt package \thisproj\ (pour le moment, la toute jeune classe ne propose aucune option spécifique).
+
+ \item La macro \tdocmacro{tdocruler} s'emploie dorénavant via \tdocinlatex{\tdocruler[<color>]{<text>}} (avant il fallait utiliser \tdocinlatex{\tdocruler{<text>}{<color>}}).
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item La classe est utilisable en langue espagnole.
+
+ \item La documentation contient une nouvelle section expliquant comment contribuer.
+\end{tdocnew}
+
+
+\begin{tdocfix}
+ \item La macro \tdocmacro{tdocdate} ne gérait pas le format et la mise en forme de la date.
+
+ \item Les cadres colorés ne coloraient pas le texte après un saut de page.
+\end{tdocfix}
+
+\tdocsep
% ------------------ %
-\begin{tdocexa}[Thématiques aux choix]
- \leavevmode
+\begin{tdocbreak}[version = 1.4.0, date = 2024-09-28]
+ \item L'environnement \tdocenv*{tdoccaution} a été renommé \tdocenv*{tdoccaut} pour une saisie simplifiée.
- \tdoclatexinput[sbs]{examples-version-n-change-unclassifiable.tex}
-\end{tdocexa}
+ \item Mise en avant de contenus : les exemples et remarques, indiqués via les environnements \tdocenv*{tdocexa} et \tdocenv*{tdocrem}, sont toujours numérotés via un compteur commun.
+ \item La macro inutilisée \tdocmacro{tdocxspace} a été supprimée.
+\end{tdocbreak}
-\newpage
-\section{Décorations}
-Finissons cette documentation avec de petites outils de mise en forme pouvant rendre de grands services.
+\begin{tdocnew}
+ \item Journal des changements : la macro \tdocmacro{tdocstartproj} permet de gérer le cas de la première version publique.
+ \item Factorisation du code : la macro \tdocmacro{tdocicon} est en charge de l'ajout d'icônes devant du texte.
+\end{tdocnew}
-\begin{tdoclatex}[sbs]
-Bla, bla, bla...
-\tdocsep % Pratique pour délimiter.
+\begin{tdocupdate}
+ \item Couleurs : les macros \tdocmacro{tdocdarkcolor} et \tdocmacro{tdoclightcolor} proposent un argument facultatif.
+ \begin{enumerate}
+ \item \tdocmacro{tdocdarkcolor} : la quantité de couleur par rapport au noir peut être définie de manière facultative.
-Ceci fonctionne avec des énumérations.
+ \item \tdocmacro{tdoclightcolor} : le taux de transparence peut être défini de manière facultative.
+ \end{enumerate}
-\begin{itemize}
- \item Point souligné.
+ \item Mise en avant de contenus : réduction de l'espace autour du contenu dans les cadres colorés.
- \item Autre chose utile.
-\end{itemize}
+ \item Gestion des versions: un meilleur espacement vertical via \tdocmacro{vphantom}.
+\end{tdocupdate}
-\tdocsep % Un comportement uniforme.
+\tdocsep
-Ble, ble, ble...
-Bli, bli, bli...
+% ------------------ %
-\tdocxspace % Espace subtile
- % mais utile.
-Blo, blo, blo...
+\begin{tdocnew}[version = 1.3.1, date = 2024-09-26]
+ \item Version étoilée de \tdocmacro{tdocenv} pour n'avoir que le nom de l'environnement.
+\end{tdocnew}
-Blu, blu, blu...
+\tdocsep
+
+
+% ------------------ %
+
+
+\begin{tdoctech}[version = 1.3.0, date = 2024-09-25]
+ \item La version 3 de \tdocpack{minted} ne peut pas être prise en compte pour le moment car elle comporte des bugs : voir \url{https://github.com/gpoore/minted/issues/401}. On force donc temporairement l'usage de la version 2 de \tdocpack{minted}.
+\end{tdoctech}
-\end{tdoclatex}
-\newpage
-\section{Historique}
-\tdocversion{1.1.0}[2024-01-06]
+\begin{tdocbreak}
+ \item L'environnement \tdocenv*{tdocimportant} a été renommé \tdocenv*{tdocimp} pour une saisie simplifiée.
+\end{tdocbreak}
+
\begin{tdocnew}
- \item Journal des changements : deux nouveaux environnements.
+ \item Journal des changements : les environnements proposés utilisent des icônes.
+
+
+ \item Mise en avant de contenus : des cadres colorés avec des icônes sont proposés pour les environnements suivants.
+ \bgroup
+ \setlength\multicolsep{5pt}
+ \begin{multicols}{3}
+ \begin{enumerate}
+ \item \tdocenv*{tdoccaution}
+ \item \tdocenv*{tdocimp}
+ \item \tdocenv*{tdocnote}
+ \item \tdocenv*{tdoctip}
+ \item \tdocenv*{tdocwarn}
+ \end{enumerate}
+ \end{multicols}
+ \egroup
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\begin{tdocupdate}[version = 1.2.0-a, date = 2024-08-23]
+ \item \tdocmacro{tdocversion}
+ \begin{enumerate}
+ \item Le numéro de version est au-dessus de la date.
+
+ \item L'espacement est mieux géré lorsque la date est absente.
+ \end{enumerate}
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item Mise en avant de contenus : les traductions françaises de \tdocinEN*{caution} et \tdocinEN*{danger} étaient erronées.
+\end{tdocfix}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\begin{tdocnew}[version = 1.1.0, date = 2024-01-06]
+ \item Journal des changements : deux nouveaux environnements.
\begin{enumerate}
\item \tdocenv{tdocbreak} pour les \tdocquote{bifurcations}\,, soit les modifications non rétrocompatibles.
\item \tdocenv{tdocprob} pour les problèmes repérés.
\end{enumerate}
- \item \tdocmacro{tdocinlatex}: un jaune léger est utilisé comme couleur de fond.
+ \item \tdocmacro{tdocinlatex}: un jaune léger est utilisé comme couleur de fond.
\end{tdocnew}
\tdocsep
-\tdocversion{1.0.1}[2023-12-08]
-\begin{tdocfix}
- \item \tdocmacro{tdocenv}: l'espacement est maintenant correct, même si le paquet \tdocpack{babel} n'est pas chargé avec la langue française.
+% ------------------ %
- \item \tdocenv[{[nostripe]}]{tdocshowcase}: les sauts de page autour des lignes \tdocquote{cadrantes} devraient être rares dorénavant.
+
+\begin{tdocfix}[version = 1.0.1, date = 2023-12-08]
+ \item \tdocmacro{tdocenv}: l'espacement est maintenant correct, même si le paquet \tdocpack{babel} n'est pas chargé avec la langue française.
+
+ \item \tdocenv[{[nostripe]}]{tdocshowcase}: les sauts de page autour des lignes \tdocquote{cadrantes} devraient être rares dorénavant.
\end{tdocfix}
\tdocsep
-\tdocversion{1.0.0}[2023-11-29]
-Première version publique du projet.
+% ------------------ %
+
+
+\tdocversion{1.0.0}[2023-11-29]
+\tdocstartproj{Première version publique du projet.}
\end{document}
diff --git a/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf b/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
index 16e6629f51..e837b22226 100644
--- a/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
+++ b/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
index 12a454ac52..02683a2be0 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
index 9f65c9a371..289fe585c8 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
index acddbf252f..6ba894ce8f 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
@@ -35,11 +35,11 @@
%<le>\ProvidesClass{uantwerpenletter}
%<ex>\ProvidesClass{uantwerpenexam}
%<bmr>\ProvidesPackage{beamerthemeuantwerpen}
-%<cls|ct|bmt|pt|rp|le|ex|bmr> [2024/06/04 v4.7 .dtx skeleton file]
+%<cls|ct|bmt|pt|rp|le|ex|bmr> [2024/08/27 v4.8 .dtx skeleton file]
%<*driver>
\documentclass[a4paper]{ltxdoc}
-\def\fileversion{4.7}
-\def\filedate{2024/06/24}%
+\def\fileversion{4.8}
+\def\filedate{2024/08/27}%
\usepackage{makeidx}
\usepackage{alltt}
\usepackage{longtable}
@@ -127,7 +127,8 @@
% multiple degree programs for exams and course texts, corrected
% disclaimers, replaced 'basic usage' in documentation by heavily
% commented examples}
-% \changes{v4.7}{2024/06/13}{\@ Minor bugfixes}
+% \changes{v4.7}{2024/06/13}{\@ Minor bugfixes on the request of the library}
+% \changes{v4.8}{2024/08/27}{\@ Minor bugfixes on the request of the Antwerp Doctoral School}
%
% \DoNotIndex{\newcommand,\newenvironment,\begin,\bfseries,\draw,\clip,\else,\fi,\if,\fill,\filldraw,\ifthenelse,\ifx,\textwidth,\node,\\,\@empty,\@tempdima,\@tempdimb,\@tempswatrue,\{,\},\ ,\bf,\BODY,\break,\Alph,\and,\define@key,\color,\dx,\dy,\g,\gdef,\hbox,\tiny,\scriptsize,\footnotesize,\small,\normalsize,\large,\Large,\LARGE,\huge,\Huge,\l,\LaTeX,\let,\p@,\relax,\renewcommand,\Requirepackage,\textbf,\textsf,\texttt,\textbackslash,\vspace,\hspace,\hfill,\hskip,\vskip,\hline,\vrule,\typeout,\usebox,\end,\paperheight,\paperwidth,\par,\NewDocumentCommand,\seq}
% \setlength{\parindent}{0em}
@@ -1210,7 +1211,7 @@
\jurymember{prof. dr. M. Byr}{IMEC, Nederland}
%% specify your degree (manually) and where and when you obtain your degree
-\degree{doctor in de toegepaste ingenieurswetenschappen}
+\degree{doctor in de Toegepaste Ingenieurswetenschappen}
\defenselocation{Antwerpen}
\defensedate{2024}
@@ -1364,8 +1365,8 @@
\jurymember{prof. dr. M. Byr}{IMEC, The Netherlands}
%% specify your degree (manually) and where and when you obtain your degree
-\degree{doctor in applied engineering}
-\defenselocation{Antwerpen}
+\degree{doctor in Applied Engineering}
+\defenselocation{Antwerp}
\defensedate{2024}
%% specify a fancy photo for your titlepage (if you don't want a dull one)
@@ -2808,8 +2809,8 @@ juryname = Jury
jurymembersname = Members
jurychairname = Chair
bmthesisname = Thesis to obtain the degree of
-pthesisnamei = Thesis submitted in fulfilment of the requirements for the degree of
-pthesisnameii = at the University of Antwerp
+pthesisnamei = Thesis submitted for the degree of
+pthesisnameii = at the University of Antwerp to be defended by
weightname = Weight
%</endata>
% \end{macrocode}
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
index be9b782f96..f5982a2a2c 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
index 23e7289e70..a6593228c5 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
index 3227bee08f..3de882ad2f 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
index d29ccbeab3..014dce28cb 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
index 99668c6958..b44e6b8707 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
index 9645cf2ee1..543028638d 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
index c3610d3734..a10239ae2c 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/README.md b/macros/latex/contrib/ucph-revy/README.md
index 3b0e47a0a4..d2b6baed04 100644
--- a/macros/latex/contrib/ucph-revy/README.md
+++ b/macros/latex/contrib/ucph-revy/README.md
@@ -1,6 +1,6 @@
Package ucph-revy
=================
-v1.0.1
+v1.0.2
A class for typesetting scripts, containing both lyrics and prose, in
the style used by the student revues (revy) at the Faculties of
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
index 5b9426a4f3..1080060964 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
index 8f252d20ff..d040dacefe 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
index 3d09e9a2be..784e1235ca 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
index 68c51ca12d..d2baff1111 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy.dtx b/macros/latex/contrib/ucph-revy/ucph-revy.dtx
index 79a9a1aa0b..9fdb39549e 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy.dtx
+++ b/macros/latex/contrib/ucph-revy/ucph-revy.dtx
@@ -20,7 +20,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<class>\ProvidesClass{ucph-revy}
%<*class>
- [2024/02/07 v1.0.1 Fix occational divide by 0]
+ [2024/09/24 v1.0.2 A class for making musical manuscripts]
%</class>
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -372,7 +372,7 @@
% betyder bliver gennemgået i sektion \ref{thumbindex}.
% \end{danish}
% \begin{english}
-% \cn\ inherits from the \texttt{article}\DescribeMacro{article}
+% \cn\ inherits from the \texttt{article}\DescribeMacro{article}\
% class, and accepts all its options. It sets \texttt{a4paper} and
% \texttt{11pt} by default, if not given any contrary options.
%
@@ -470,13 +470,14 @@
% \end{implementation}
%
% \begin{danish}
+% \changes{v1.0.2}{2024/09/24}{Skift fontenc til OT1}
% I eksemplet inkluderer vi fire pakker. De er ikke strengt
% nødvendige for at få \cn\ til at fungere, men de kommer næsten med
% sikkerhed til at gøre dit liv lettere.
%
% \medskip\noindent\begin{tabulary}{\textwidth}{lL}
% \verb|\usepackage[utf8]{inputenc}| & \\
-% \verb|\usepackage[T1]{fontenc}| &
+% \verb|\usepackage[OT1]{fontenc}| &
% Gør \LaTeX's håndtering af danske bogstaver mere moderne. \\
% \verb|\usepackage[danish]{babel}| &
% Fortæller \LaTeX\ en masse ting om dansk, bl.a. hvordan
@@ -490,13 +491,14 @@
% \end{tabulary}
% \end{danish}
% \begin{english}
+% \changes{v1.0.2}{2024/09/24}{Change fontenc to OT1}
% In the example, we've included three packages that aren't strictly
% necessary for \cn\ to function, but will probably make your life
% easier.
%
% \medskip\noindent\begin{tabulary}{\textwidth}{lL}
% \verb|\usepackage[utf8]{inputenc}| & \\
-% \verb|\usepackage[T1]{fontenc}| &
+% \verb|\usepackage[OT1]{fontenc}| &
% Modernize \LaTeX's handling of (particularly special)
% characters.\\
% \verb|\usepackage{hyperref}| &
@@ -700,23 +702,24 @@
% \begin{danish}
% For at sammenligningen kan fungere, er vi afhængige af, at
% tekstrepræsentationen ikke skifter undervejs. Det kan ske, hvis
-% \verb|.tex|--filen kalder \textsf{fontenc}, og titlerne
-% indeholder specialtegn. Den simple og effektive\footnote{Læs:
-% det er et hack, som ikke har givet mig problemer \emph{endnu}.}
-% løsning er bare at kalde \textsf{fontenc} selv, så der ikke er
-% plads til misforståelser.
+% \verb|.tex|--filen kalder
+% \DescribeMacro{fontenc}\textsf{fontenc}, og titlerne indeholder
+% specialtegn. Den simple og effektive\footnote{Læs: det er et
+% hack, som ikke har givet mig problemer \emph{endnu}.} løsning
+% er bare at kalde \textsf{fontenc} selv, så der ikke er plads til
+% misforståelser.
% \end{danish}
% \begin{english}
% For this comparing of titles to work, we depend of the text
% representation not changing between the \verb|\title|
% declaration and the time when the thumb index routine runs. It
-% might, though, if \textsf{fontenc} is called. To quickly knock
-% that problem on the head,\footnote{In a way that hasn't come
-% back to bite \emph{me} yet.} we'll just call \textsf{fontenc}
-% ourselves.
+% might, though, if \DescribeMacro{fontenc}\textsf{fontenc} is
+% called. To quickly knock that problem on the head,\footnote{In a
+% way that hasn't come back to bite \emph{me} yet.} we'll just
+% call \textsf{fontenc} ourselves.
% \end{english}
% \begin{macrocode}
- \RequirePackage[T1]{fontenc}
+ \RequirePackage[OT1]{fontenc}
% \end{macrocode}
%
% \begin{danish}
@@ -2927,22 +2930,51 @@
}{}
% \end{macrocode}
% \end{implementation}
+%
+% \begin{danish}
+% \subsection{Assorterede emner}
+% \subsubsection{\SaTyR}
+% \end{danish}
+% \begin{english}
+% \subsection{Miscellenia}
+% \subsubsection{\SaTyR}
+% \end{english}
+% \begin{macro}{\SaTyR}
+% \begin{danish}
+% \changes{v1.0.2}{2024/09/24}{SaTyR-makro}
+% Man skriver \SaTyR{}Revy ved at elske alle dyr, og derefter
+% skrive
+% \end{danish}
+% \begin{english}
+% \changes{v1.0.2}{2024/09/24}{SaTyR-macro}
+% \SaTyR{}Revy, which is produced by the students at the Faculty
+% of Science at the University of Copenhagen, is properly written
+% by saying
+% \end{english}
+% \begin{verbatim}
+%\SaTyR{}Revy
+% \end{verbatim}
+% \begin{implementation}
+% \begin{macrocode}
+\newcommand{\SaTyR}{S\hspace*{-.2ex}\raisebox{-.15em}{A}\hspace*{-.5ex}TyR}
+% \end{macrocode}
+% \end{implementation}
+% \end{macro}
% \iffalse
%<*driver>
\jump
%</driver>
% \fi
-%
% \begin{implementation}
-% \begin{danish}
-% \subsection{\texttt{.aux}--filen}
+% \begin{danish}
+% \subsubsection{\texttt{.aux}--filen}
% Til fremtidigt brug sørger vi for, at vores metadata også bliver
% skrevet ud til \texttt{.aux}--filen, når dokumentet er færdigt.
%
% Det er også her, vi sætter en \texttt{label} på den sidste side.
% \end{danish}
% \begin{english}
-% \subsection{The \texttt{.aux} file}
+% \subsubsection{The \texttt{.aux} file}
% For futue use, we will also ensure that our metadata is written
% to the \texttt{.aux} file at the end of the document.
%
@@ -2986,11 +3018,13 @@
% \end{implementation}
% \begin{danish}
% \section{Komplet eksempel}
+% \changes{v1.0.2}{2024/09/24}{Tilpasninger i eksempelfil}
% \label{fullex}
% \VerbatimInput{Eksempel.tex}
% \end{danish}
% \begin{english}
% \section{Complete example}
+% \changes{v1.0.2}{2024/09/24}{Minor adjustments in example file}
% \label{fullex}
% \VerbatimInput{Example.tex}
% \end{english}
@@ -3001,7 +3035,7 @@
\documentclass{ucph-revy}
\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
+\usepackage[OT1]{fontenc}
\usepackage[danish]{babel}
\usepackage{hyperref}
%<*driver>
@@ -3011,6 +3045,7 @@
\urlstyle{sf}
\version{1.0}
+%% følgende definitioner kan godt fjernes, hvis der ikke er brug for dem:
\revyname{FysikRevy\texttrademark}
\revyyear{2019}
\status{eksempel}
@@ -3033,6 +3068,7 @@
\role{I} Vred instruktør
\role{A9}[A--ni] Anine
\end{roles}
+%% props-miljøet kan fjernes, hvis der ikke er brug for det
\begin{props}
\prop{Hedegaard--hår}[Person, der skaffer]
\prop{Didgeridoo}[Anine]
@@ -3139,7 +3175,7 @@
\documentclass{ucph-revy}
\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
+\usepackage[OT1]{fontenc}
\usepackage{hyperref}
%<*driver>
\land
@@ -3148,6 +3184,7 @@
\urlstyle{sf}
\version{1.0}
+%% The settings below may be omitted if their inclusion is undesired
\revyname{The Meaning of Liff}
\revyyear{3001}
\title{Example}
@@ -3185,6 +3222,7 @@
\role{CC}[Eric] Crucified Criminal
\role{B}[Graham] Brian
\end{roles}
+%% The props environment may be omitted if found to be superfluous
\propname{Props:}
\begin{props}
\prop{Large sign}
diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md
index 7dd77cc156..dfd4ce77f6 100644
--- a/macros/latex/contrib/ufrgscca/README.md
+++ b/macros/latex/contrib/ufrgscca/README.md
@@ -107,7 +107,10 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 2.10 (this)
+* Version 2.11 (this)
+ - some minor forms' text adjustments (ufrgscca-forms).
+
+* Version 2.10
- added a package option, noxtrbookmarks, to package ufrgscca-forms (see manual).
* Version 2.9
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
index 94ed35734f..5139102c4b 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
Binary files differ
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
index 73c7bb0171..84cc51abfe 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
index e5f9a55f54..588aeacca4 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-abnt}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA ABNT layout}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-abnt} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ abnt~layout}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
index a6d20f0349..5f875574be 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
index 06214fc369..7f26ca9990 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
index a0ba2b2727..704165b85a 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-coord}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA coord commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-coord} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
index 325724f4f7..f5dac40227 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-core}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA core commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-core} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~core~commands/data}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
index f77c6ad666..0f94df1ca7 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
index 6ad4cadcf5..a0ad4abfbb 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-cover}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA cover commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-cover} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ cover~pages}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
index 43b6ac7492..b8e4a992b8 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-curr}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA curricula commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-curr} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ curricula~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
index 29cca50279..990fb04e05 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-forms}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA forms commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-forms} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ forms~commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
index d56cfae929..ff160c5145 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -470,7 +470,7 @@ Nome do(a) Aluno(a) --- Email\\
\item[$\Box$ a.1)] dispensando correções do texto.
\item[$\Box$ a.2)] sendo necessário correções, conforme anotações anexas.
\end{enumerate}
- \item[$\Box$ b)] Necessita ser revisto/re-escrito,\footnotemark[3] e:
+ \item[$\Box$ b)] Necessita ser revisto/re-escrito, estando em exame\footnotemark[3]\hspace{-0.1em}, e:
\begin{enumerate}
\item[$\Box$ b.1)] basta a revisão final do texto pelo orientador.
\item[$\Box$ b.2)] revisarei o trabalho depois de corrigido.
@@ -481,7 +481,7 @@ Nome do(a) Aluno(a) --- Email\\
Outras considerações, parecer (se necessário): \BlankLines{5}
\footnotetext[2]{Use a escala: \begin{enumerate*}\item[0.]Péssimo \item[3.]Deficitário \item[6.]Bom \item[8.]Muito Bom \item[10.]Excelente \end{enumerate*}}%
- \footnotetext[3]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}%
+ \footnotetext[3]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} receberá conceito final C ou D, conforme revisão final do texto.}%
}
%%%
@@ -805,7 +805,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora
$\Box$ & Índice & & & \\
\end{tabular}
\end{enumerate}
- \item[$\Box$ b)] Necessita ser revisto/re-escrito,\footnotemark[2] e:
+ \item[$\Box$ b)] Necessita ser revisto/re-escrito, estando em exame\footnotemark[2]\hspace{-0.1em}, e:
\begin{itemize}
\item[$\Box$ b.1)] basta a revisão final do texto pelo orientador.
\item[$\Box$ b.2)] revisarei o trabalho depois de corrigido.
@@ -815,7 +815,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora
\end{enumerate}
}
}
- \footnotetext[2]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}
+ \footnotetext[2]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} receberá conceito final C ou D, conforme revisão final do texto.}
}
%%%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
index 16add4b385..6df6b4281c 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-lists}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA auxiliary lists commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-lists} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20} ,
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17} ,
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
index d136068d07..9bdf02617d 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-ppc}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA PPC commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-ppc} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
index 82985d9a95..1acb6ad7a1 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
index 569a7f7634..763bfd78fd 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
index 4515dc3b06..3e22565237 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.10} {2024/04/20}
+%% This is version {2.11} {2024/10/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplClass
{ufrgscca}
- {2024/04/20}
- {2.10}
+ {2024/10/17}
+ {2.11}
{UFRGS/CCA class}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/04/20},
- version .code:n = {2.10} ,
+ date .code:n = {2024/10/17},
+ version .code:n = {2.11} ,
description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/unbtex/README.md b/macros/latex/contrib/unbtex/README.md
index 0d0f2325fa..f723051c4a 100644
--- a/macros/latex/contrib/unbtex/README.md
+++ b/macros/latex/contrib/unbtex/README.md
@@ -1,6 +1,6 @@
# UnBTeX: A class for bachelor, master, and doctoral thesis at the
# University of Brasilia (UnB), Brazil.
-# Version 1.5.2 2024/07/04
+# Version 1.5.3 2024/10/07
Copyright (C) 2021-2024 by Henrique C. Ferreira <hcferreira@unb.br>
@@ -25,7 +25,6 @@ Here is a history of changes:
1.1 (2022-05-23):
. Changed \codigocutter to \numerocutter
. The argument of \preambulo command now admits a more general text
- . updated example
1.1.1 (2022-05-30):
. Changed abntex2 commands \orientador and \coorientador to do the
same as \orient and \coorient
@@ -84,37 +83,60 @@ Here is a history of changes:
1.4.2 (2023-12-15):
. Cross-references to the appendix and annex using the cref command
have been corrected
- . The lists of abbreviations and acronyms, as well as the list of symbols,
- have been enhanced, and page numbering has been removed
- . The example chapters have been reorganized
+ . The lists of abbreviations and acronyms, as well as the list of
+ symbols, have been enhanced, and page numbering has been removed
+ . The chapters of the example document have been reorganized
1.4.3 (2023-12-22):
- . Keywords in English have been included on the copyright page if the
- document is written in this language
+ . Keywords in English have been included on the copyright page if
+ the document is written in this language
. Examples of long tables and rotated tables have been included
1.4.4 (2024-01-05):
- . The pdfpages package has been used to include pages from PDF documents
- . The sans-serif font Helvetica (helvet package) has been replaced by the
- TeX Gyre Heros font (tgheros package)
+ . The pdfpages package has been used to include pages from PDF
+ documents
+ . The sans-serif font Helvetica (helvet package) has been replaced
+ by the TeX Gyre Heros font (tgheros package)
1.5 (2024-02-02):
- . ABNT style with a numeric citation scheme for bibliographic references
- has been included
- . Added an option to the UnBTeX class for selecting the citation style
- (author-year or numeric)
- . Added an option to the UnBTeX class for selecting the main language of
- the text (Brazilian Portuguese or English)
- . The font size of the title is automatically adjusted according to its
- length (and number of lines)
- . Reorganization of the class source code and improvements in the comments
+ . ABNT style with a numeric citation scheme for bibliographic
+ references has been included
+ . Added an option to the UnBTeX class for selecting the citation
+ style (author-year or numeric)
+ . Added an option to the UnBTeX class for selecting the main language
+ of the text (Brazilian Portuguese or English)
+ . The font size of the title is automatically adjusted according to
+ its length (and number of lines)
+ . Reorganization of the class source code and improvements in the
+ comments
. The template text has been revised and improved
1.5.1 (2024-03-02):
. The approval sheet (folha de aprovação) has been changed
- . The bottom margin size has been corrected to be consistently adhered to
+ . The bottom margin size has been corrected to be consistently
+ adhered to
1.5.2 (2024-07-04):
- . The length of the footnote separator line has been corrected according
- to ABNT standards
- . The left margin indentation of the citacao environment has been corrected
+ . The length of the footnote separator line has been corrected
according to ABNT standards
- . The left margin indentation of the references can be adjusted by the user
+ . The left margin indentation of the citacao environment has been
+ corrected according to ABNT standards
+ . The left margin indentation of the references can be adjusted by
+ the user
+ 1.5.3 (2024-10-07):
+ . A back cover has been added to the template
+ . Language options for the Babel package are now declared directly
+ in the UnBTeX class file
+ . Included the DOI (Digital Object Identifier) field in bibliography
+ entries
+ . An environment for including charts (quadros) has been created,
+ and the list of charts has been added.
+ . Included list of algorithms and list of codes
+ . The packages algpseudocode and algorithm have been replaced by
+ the algorithm2e package for including pseudocode
+ . The internal cross-referencing for tables created with the longtable
+ package has been corrected
+ . An option has been added to the UnBTeX class to select the numbering
+ style for figures, tables, etc., either by chapter or for the entire
+ document.
+ . The options article and twocolumn of the Memoir class have been
+ configured for use.
+ . The example document has been updated and reorganized
## Overleaf
@@ -128,7 +150,7 @@ of the LaTeX Project Public License, either version 1.3 of this license
or (at your option) any later version. The latest version of this
license is in:
-http://www.latex-project.org/lppl.txt
+https://www.latex-project.org/lppl.txt
and version 1.3 or later is part of all distributions of LaTeX version
2005/12/01 or later. \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example.pdf b/macros/latex/contrib/unbtex/unbtex-example.pdf
index 0b6493ed0b..611aa6c9b7 100644
--- a/macros/latex/contrib/unbtex/unbtex-example.pdf
+++ b/macros/latex/contrib/unbtex/unbtex-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/unbtex/unbtex-example.tex b/macros/latex/contrib/unbtex/unbtex-example.tex
index 33872900a5..2f8c2f7e10 100644
--- a/macros/latex/contrib/unbtex/unbtex-example.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example.tex
@@ -1,7 +1,7 @@
%%
%% UnBTeX: A class for bachelor, master, and doctoral thesis at the
%% University of Brasilia (UnB), Brazil
-%% Version 1.5.2 2024/07/04
+%% Version 1.5.3 2024/10/07
%% Copyright (C) 2021-2024 by Henrique C. Ferreira <hcferreira@unb.br>
%%
%% This class file may be distributed and/or modified under the conditions
@@ -9,7 +9,7 @@
%% or (at your option) any later version. The latest version of this
%% license is in:
%%
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
@@ -20,7 +20,8 @@
\documentclass[
% -- Opção da classe memoir -- https://www.ctan.org/pkg/memoir
- oneside, % Caso queira imprimir em frente e verso, use twoside
+ oneside, % Para imprimir somente na frente da folha
+ %twoside, % Para imprimir na frente e no verso da folha
% -- Opção da classe abntex2 -- https://www.ctan.org/pkg/abntex2
sumario=tradicional, % Remova esta opção para sumário padrão ABNT
% -- Selecione o idioma no qual o trabalho será escrito
@@ -29,22 +30,17 @@
% -- Selecione o estilo das referências bibliográficas
bib=alf, % Bibliografia nas normas da ABNT, estilo autor-data
%bib=num, % Bibliografia nas normas da ABNT, estilo numérico
- % -- Opções de idiomas para pacotes utilizados -- Não alterar
- english, % Para hifenização de palavras em inglês
- brazil % Para hifenização de palavras em português
+ % -- Selecione o estilo de numeração de figuras, tabelas, etc.
+ numb=chap, % Numeração por capítulo
+ %numb=abnt, % Numeração para o documento inteiro
]{unbtex}
% ---
% Pacotes básicos (Adicione outros pacotes necessários para o seu trabalho)
% ---
-\usepackage{longtable} % Pacote para tabelas que ocupam mais de uma página
-\usepackage{rotating} % Pacote para girar tabelas (e outros objetos)
-% ---
-
-% ---
-% Compila o índice
-% ---
-\makeindex
+\usepackage{lscape} % Pacote para rotacionar tabelas (e outros objetos)
+%\usepackage{pdflscape} % Pacote para rotacionar objetos e também a página do arquivo pdf
+\usepackage{afterpage} % Evita quebra de página quando inserir uma tabela (ou outro objeto) rotacionada
% ---
% ---
@@ -100,7 +96,7 @@
% ---
% ---
-% Informações do trabalho
+% Informações do curso
% ---
\tipotrabalho{Trabalho de Conclusão de Curso} % Dissertação de Mestrado; Tese de Doutorado (em português, mesmo que o trabalho seja em inglês)
%\tipotrabalho{Tese de Doutorado}
@@ -129,8 +125,8 @@
% Local e data da defesa
% ---
\local{Brasília}
-\dia{4}
-\mes{julho}
+\dia{7}
+\mes{outubro}
\ano{2024}
% ---
@@ -163,21 +159,21 @@ Este documento exemplifica a elaboração de trabalho acadêmico (trabalho de co
% Resumo em inglês
% ---
\begin{Abstract}
-This is the english abstract.
+This document demonstrates the preparation of academic works (such as final papers, dissertations, and theses) using the UnB\TeX\ class, an extension of the \abnTeX\ class developed for the University of Brasília (UnB). In addition to introducing basic \LaTeX\ commands for the inclusion of equations, tables, and figures, the document shows how to utilize packages integrated with the UnB\TeX\ class to generate bibliographic references, lists of symbols, and formatted boxes for theorems and algorithms, among other essential or useful elements for academic writing. The goal is to simplify the use of the UnB\TeX\ class, enabling even users with minimal \LaTeX\ experience to produce visually high-quality academic documents.
\end{Abstract}
% ---
% ---
-% Palavras-chave (pelo menos três devem ser informadas)
+% Palavras-chave (defina no mínimo 3 e no máximo 5)
% ---
-\pchavei{Palavra chave 1}
-\kwordi{Keyword 1}
-\pchaveii{Palavra chave 2}
-\kwordii{Keyword 2}
-\pchaveiii{Palavra chave 3}
-\kwordiii{Keyword 3}
-\pchaveiv{Palavra chave 4} % Deixe vazio se não tiver
-\kwordiv{Keyword 4} % Deixe vazio se não tiver
+\pchavei{palavra-chave 1}
+\kwordi{keyword 1}
+\pchaveii{palavra-chave 2}
+\kwordii{keyword 2}
+\pchaveiii{palavra-chave 3}
+\kwordiii{keyword 3}
+\pchaveiv{palavra-chave 4} % Deixe vazio se não tiver
+\kwordiv{keyword 4} % Deixe vazio se não tiver
\pchavev{} % Deixe vazio se não tiver
\kwordv{} % Deixe vazio se não tiver
% ---
@@ -252,7 +248,7 @@ Dedicatória do segundo autor.
\pretextual
% ------------------------------------------------------------------------
-% Insere capa
+% Insere capa e contracapa
\imprimircapa
% Insere folha de rosto
@@ -274,36 +270,34 @@ Dedicatória do segundo autor.
\imprimirepigrafe
% Insere resumos
-\IfStrEq*{\idioma}{brazil}
-{\imprimirresumo
-\imprimirabstract}
-{\imprimirabstract
-\imprimirresumo}
+\imprimirresumos
-% Insere lista de ilustrações
-\pdfbookmark[0]{\listfigurename}{lof}
-\listoffigures*
-\cleardoublepage
+% Insere lista de figuras
+\imprimirlistadefiguras
+
+% Insere lista de quadros
+%\imprimirlistadequadros
% Insere lista de tabelas
-\pdfbookmark[0]{\listtablename}{lot}
-\listoftables*
-\cleardoublepage
+\imprimirlistadetabelas
+
+% Insere lista de algoritmos
+%\imprimirlistadealgoritmos
+
+% Insere lista de códigos
+%\imprimirlistadecodigos
-% Insere as listas de abreviaturas e siglas e de símbolos
-\PRIVATEbookmarkthis{\listadesiglasname}
-\printnomenclature
-\cleardoublepage
+% Insere a lista de abreviaturas e siglas e a lista de símbolos
+\imprimirlistadesiglasesimbolos
% Insere o sumário
-\pdfbookmark[0]{\contentsname}{toc}
-\tableofcontents*
-\cleardoublepage
+\imprimirsumario
% ------------------------------------------------------------------------
% ELEMENTOS TEXTUAIS
% ------------------------------------------------------------------------
-\textual
+\textualsimples % Cabeçalho com número da página e linha horizontal
+%\textual % Cabeçalho com número da página, título do capítulo/seção e linha horizontal
% ------------------------------------------------------------------------
% Imprime uma página para agrupar um conjunto de capítulos (parte)
@@ -350,6 +344,8 @@ Dedicatória do segundo autor.
\include{unbtex-example/apendice-b}
+\include{unbtex-example/apendice-c}
+
\end{apendicesenv}
% ---
@@ -363,8 +359,6 @@ Dedicatória do segundo autor.
\include{unbtex-example/anexo-a}
-\include{unbtex-example/anexo-b}
-
\end{anexosenv}
% ---
diff --git a/macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex b/macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex
index 9314036b29..d04826a7b7 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex
@@ -1,104 +1,22 @@
% ----------------------------------------------------------
-\chapter{Tabelas longas e rotacionadas}\label{anx:tabs}
+\chapter{Paleta de cores da UnB}\label{anx:coresunb}
% ----------------------------------------------------------
-\begin{longtable}{L{2.5cm}C{2.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}}
-% Cabeçalho no início da tabela
-\caption{Tabela longa}
-\label{tab:dscf} \\
-\toprule
-\multirow{3}{*}{\bfseries Variable} &
-\multirow{3}{*}{\parbox{2.5cm}{\centering\bfseries Proportions in Sample (\%)}} &
-\multicolumn{6}{c}{\bfseries Proportions by Subtype (\%)} \\
-\cmidrule(lr){3-8}
-& &
-\multicolumn{2}{c}{\bfseries Graduated} & \multicolumn{2}{C{3cm}}{\bfseries Academically Excluded} &
-\multicolumn{2}{c}{\bfseries Censored} \\
-\midrule
-\endfirsthead
-% Cabeçalho da continuação da tabela no topo da página seguinte
-\caption[]{Tabela longa (continuação)} \\ \toprule
-\multirow{3}{*}{\bfseries Variable} &
-\multirow{3}{*}{\parbox{2.5cm}{\centering\bfseries Proportions in Sample (\%)}} &
-\multicolumn{6}{c}{\bfseries Proportions by Subtypes (\%)} \\
-\cmidrule(lr){3-8}
-& &
-\multicolumn{2}{c}{\bfseries Graduated} & \multicolumn{2}{C{3cm}}{\bfseries Academically Excluded} &
-\multicolumn{2}{c}{\bfseries Censored} \\
-\midrule
-\endhead
-\bottomrule
-\endlastfoot
-\bfseries Total & 100.0 & 50.1 & (45.8) & 7.5 & (14.9) & 42.4 & (39.3) \\
-\addlinespace
-\bfseries Gender \\
-Male & 52.4 & 49.6 & (44.3) & 8.7 & (17.3) & 41.7 & (38.5) \\
-Female & 47.6 & 50.7 & (48.0) & 6.2 & (11.5) & 43.1 & (40.5) \\
-\addlinespace
-\bfseries Race \\
-White & 40.3 & 59.8 & (58.7) & 3.0 & (4.6) & 37.2 & (36.7) \\
-Black & 32.4 & 38.7 & (32.5) & 13.1 & (26.3) & 48.2 & (41.2) \\
-Coloured & 13.0 & 49.8 & (44.5) & 7.4 & (16.1) & 42.8 & (39.5) \\
-Indian/Asian & 14.3 & 48.9 & (44.6) & 7.9 & (13.3) & 43.3 & (42.1) \\
-\addlinespace
-\bfseries Financial Aid \\
-Ineligible for Financial Aid & 82.3 & 52.1 & (48.7) & 5.5 & (10.6) & 42.4 & (40.7) \\
-Eligible for Financial Aid & 17.7 & 40.7 & (35.2) & 17.2 & (30.3) & 42.1 & (34.5) \\
-\addlinespace
-\bfseries Programme \\
-Mainstream & 76.9 & 55.4 & (51.3) & 5.7 & (10.8) & 38.9 & (37.9) \\
-Academic Development & 23.1 & 32.5 & (27.1) & 13.7 & (28.7) & 53.8 & (44.2) \\
-\addlinespace
-\bfseries English Home Language \\
-Yes & 69.3 & 55.1 & (52.8) & 4.9 & (8.6) & 39.9 & (38.6) \\
-No & 30.7 & 38.8 & (32.8) & 13.4 & (26.6) & 47.8 & (40.6) \\
-\addlinespace
-\bfseries School Quintile \\
-1 & 0.8 & 34.6 & (26.1) & 30.8 & (42.6) & 34.6 & (31.3) \\
-2 & 1.6 & 30.2 & (28.1) & 16.0 & (35.1) & 53.8 & (36.8) \\
-3 & 5.0 & 32.0 & (27.7) & 17.5 & (35.3) & 50.5 & (37.0) \\
-4 & 4.1 & 37.7 & (29.5) & 17.7 & (32.0) & 44.5 & (38.5) \\
-5 & 45.4 & 52.0 & (49.2) & 6.9 & (12.0) & 41.1 & (38.9) \\
-Independent & 43.1 & 52.5 & (50.4) & 5.3 & (8.6) & 42.2 & (41.0) \\
-\addlinespace
-{\bfseries Province} \\
-Western Cape & 40.0 & 55.1 & (51.3) &5.9 & (11.6) &39.0 & (37.0) \\
-Non-Western Cape & 59.9 & 46.8 & (41.9) & 8.6 & (17.2) & 44.6 & (41.0) \\
-\addlinespace
-{\bfseries Year of First Registration} \\
-{2006} & 11.6 & 87.8 & (79.9) & 11.3 & (18.9) & 0.9 & (1.2) \\
-{2007} & 11.9 & 88.2 & (79.4) & 10.1 & (19.2) & 1.7 & (1.4) \\
-{2008} & 12.6 & 87.1 & (76.7) & 10.3 & (20.3) & 2.6 & (3.0) \\
-{2009} & 11.9 & 80.9 & (64.9) & 9.7 & (24.9) & 9.4 & (10.2) \\
-{2010} & 11.1 & 62.6 & (57.5) & 6.4 & (12.7) & 31.1 & (29.8) \\
-{2011} & 11.7 & 15.8 & (15.3) & 7.2 & (12.8) & 77.0 & (71.9) \\
-{2012} & 14.1 & 0.0 & (0.0) & 5.4 & (7.5) & 94.6 & (92.5) \\
-{2013} & 15.1 & 0.0 & (0.0) & 1.7 & (3.0) & 98.3 & (97.0) \\
-\end{longtable}
+A paleta de cores da UnB, disponível na \cpageref{marcaunb.1} a seguir, foi extraída do \emph{manual de identidade visual}\footnote{Disponível em \url{http://marca.unb.br}} da Universidade.
-\begin{sidewaystable}
-\begin{center}%
-\small
-\caption{Tabela rotacionada}\label{tab:rot}
-\setlength\tabcolsep{3pt} % controla o espaço entre colunas
-\begin{tabular}{@{}L{1.1cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}@{}} % @{} elimina o espaço nas bordas laterais
-\toprule
-Sv,ieq & 000436xa & 000594xa & 001715xa & 001932ya & 006040ya & 006263xa & 007162ya & 007257ya & IT0605ya & IT0790xa & emiliaeo-retro & emilians-retro \\ \midrule
-0.4 & 2.447 & 2.177 & 2.304 & 4.921 & 4.298 & 2.121 & 3.928 & 3.478 & 3.462 & 1.751 & 0.875 & 0.525 \\
-0.8 & 4.894 & 4.354 & 4.609 & 9.843 & 8.597 & 4.241 & 7.857 & 6.957 & 6.924 & 3.502 & 1.750 & 1.049 \\
-1.2 & 7.341 & 6.530 & 6.913 & 14.764 & 12.895 & 6.362 & 11.785 & 10.435 & 10.386 & 5.252 & 2.625 & 1.574 \\
-1.6 & 9.789 & 8.707 & 9.218 & 19.686 & 17.194 & 8.482 & 15.713 & 13.914 & 13.848 & 7.003 & 3.500 & 2.099 \\
-2 & 12.236 & 10.884 & 11.522 & 24.607 & 21.492 & 10.603 & 19.642 & 17.392 & 17.310 & 8.754 & 4.375 & 2.624 \\
-2.4 & 14.683 & 13.061 & 13.827 & 29.529 & 25.791 & 12.723 & 23.570 & 20.871 & 20.772 & 10.505 & 5.250 & 3.148 \\
-2.8 & 17.130 & 15.237 & 16.131 & 34.450 & 30.089 & 14.844 & 27.498 & 24.349 & 24.234 & 12.256 & 6.125 & 3.673 \\
-3.2 & 19.577 & 17.414 & 18.435 & 39.372 & 34.388 & 16.965 & 31.427 & 27.828 & 27.697 & 14.006 & 7.000 & 4.198 \\
-3.6 & 22.024 & 19.591 & 20.740 & 44.293 & 38.686 & 19.085 & 35.355 & 31.306 & 31.159 & 15.757 & 7.875 & 4.723 \\
-4 & 24.471 & 21.768 & 23.044 & 49.215 & 42.984 & 21.206 & 39.283 & 34.784 & 34.621 & 17.508 & 8.750 & 5.247 \\
-4.4 & 26.919 & 23.945 & 25.349 & 54.136 & 47.283 & 23.326 & 43.212 & 38.263 & 38.083 & 19.259 & 9.625 & 5.772 \\
-4.8 & 29.366 & 26.121 & 27.653 & 59.058 & 51.581 & 25.447 & 47.140 & 41.741 & 41.545 & 21.009 & 10.500 & 6.297 \\
-5.2 & 31.813 & 28.298 & 29.957 & 63.979 & 55.880 & 27.567 & 51.068 & 45.220 & 45.007 & 22.760 & 11.375 & 6.821 \\
-5.6 & 34.260 & 30.475 & 32.262 & 68.900 & 60.178 & 29.688 & 54.996 & 48.698 & 48.469 & 24.511 & 12.250 & 7.346 \\
-6 & 36.707 & 32.652 & 34.566 & 73.822 & 64.477 & 31.809 & 58.925 & 52.177 & 51.931 & 26.262 & 13.125 & 7.871 \\ \bottomrule
-\end{tabular}
-\end{center}%
-\end{sidewaystable} \ No newline at end of file
+Note que, de acordo com a ABNT, a principal diferença entre anexo e apêndice é que os apêndices são textos criados pelo próprio autor para complementar sua argumentação, enquanto os anexos são documentos criados por terceiros, e usados pelo autor.
+
+\cleardoublepage
+
+\newcounter{includepdfpage} % para referenciar no texto páginas pdf incluídas
+
+\includepdf[
+ pages=-, % intervalo das páginas do arquivo pdf que serão incluídas
+ scale=1, % controla o tamanho da página inserida
+ pagecommand={\thispagestyle{plain} % imprime o número da página
+ \refstepcounter{includepdfpage} % conta a página incluída
+ \label{marcaunb.\theincludepdfpage} % marcaunb.n, n número da página
+ },
+ ]{unbtex-example/figuras/coresunb}
+
+\cleardoublepage \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex b/macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex
deleted file mode 100644
index d482ac0000..0000000000
--- a/macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex
+++ /dev/null
@@ -1,23 +0,0 @@
-% ----------------------------------------------------------
-\chapter{Paleta de cores UnB}\label{anx:coresunb}
-% ----------------------------------------------------------
-
-A \cpageref{marcaunb.1} foi extraída do \emph{manual de identidade visual}\footnote{Disponível em \url{http://marca.unb.br}} da UnB.
-
-\cleardoublepage
-
-\newcounter{includepdfpage} % para referenciar no texto páginas pdf incluídas
-\makepagestyle{simple}
-\makeevenhead{simple}{\footnotesize\thepage}{}{}
-\makeoddhead{simple}{}{}{\footnotesize\thepage}
-
-\includepdf[
- pages=-, % intervalo das páginas do arquivo pdf que serão incluídas
- scale=1, % controla o tamanho da página inserida
- pagecommand={\thispagestyle{simple} % imprime o número da página
- \refstepcounter{includepdfpage} % conta a página incluída
- \label{marcaunb.\theincludepdfpage} % marcaunb.n, n número da página
- },
- ]{unbtex-example/figuras/coresunb}
-
-\cleardoublepage \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex b/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex
index fd624444c0..c8de89cea3 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex
@@ -17,19 +17,38 @@ Considere, por exemplo, a entrada para referência do tipo manual (\texttt{@manu
author = {Peter Wilson and Lars Madsen},
organization = {The Herries Press},
title = {The Memoir Class for Configurable Typesetting -- User Guide},
- url = {http://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf},
- urldate = {2024-01-25},
- year = {2024}},
+ url = {https://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf},
+ year = {2024}}
\end{verbatim}
Utilizando-se o comando \verb|\cite{memoir}| no arquivo \texttt{tex} correspondente a este parágrafo do \cref{apd:cit}, o resultado gerado é \cite{memoir}. Para o comando \verb|\citeonline{memoir}|, o resultado gerado é \citeonline{memoir}. Note que se o estilo de citação utilizado for o numérico, os comandos \verb|\cite| e \verb|\citeonline| geram o mesmo resultado, conforme mencionado na \cref{sec:referencias}.
Os comandos \verb|\citeauthoronline| e \verb|\citeyear|, tanto no estilo autor-ano como no estilo numérico, apresentam separadamente no texto o nome dos autores e o ano da publicação. Por exemplo, podemos escrever:
-\begin{mdframed}[style=plainSty] % verde
+\begin{mdframed}[style=plainSty,innertopmargin=8pt] % verde
Em \citeyear{memoir}, os autores \citeauthoronline{memoir} publicaram o manual da versão v3.8.2 do pacote \textsf{memoir}.
\end{mdframed}
-No arquivo \texttt{bib}, cada entrada de referência bibliográfica possuiu campos cujo preenchimento pode ser obrigatório ou opcional, a depender de seu tipo. No campo \texttt{author}, caso haja mais de um autor, seus nomes devem ser separados por \texttt{and}. Campos como \texttt{address}, \texttt{publisher} e \texttt{year} não preenchidos, podem gerar na lista de referências, respectivamente, as expressões abreviadas [\emph{S.l.}], [\emph{S.n.}] e [\emph{S.d.}] para indicar que são indeterminados. Recomenda-se o uso de programas gratuitos, como o JabRef\footnote{Disponível em: \url{https://www.jabref.org/}}, para auxiliar o preenchimento e gerenciamento de arquivos \texttt{bib}.
+No arquivo \texttt{bib}, cada entrada de referência bibliográfica possuiu campos cujo preenchimento pode ser obrigatório ou opcional, a depender de seu tipo. No campo \texttt{author}, caso haja mais de um autor, seus nomes devem ser separados por \texttt{and}. Campos como \texttt{address}, \texttt{publisher} e \texttt{year} não preenchidos, podem gerar na lista de referências, respectivamente, as expressões abreviadas [\emph{s.l.}], [\emph{s.n.}] e [\emph{s.d.}] para indicar que são indeterminados. Recomenda-se o uso de programas gratuitos, como o JabRef\footnote{Disponível em: \url{https://www.jabref.org/}}, para auxiliar o preenchimento e gerenciamento de arquivos \texttt{bib}.
-No arquivo \texttt{referencias.bib}, além da entrada para referência do tipo manual (como no exemplo dado), há também entradas para referências do tipo artigo de periódico \cite{greenwade93}, artigo de conferência \cite{martin1997}, livro \cite{schaum1956}, capítulo de livro \cite{bates2010}, monografia \cite{morgado1990}, dissertação de mestrado \cite{macedo2005}, tese de doutorado \cite{guizzardi2005}, relatório técnico \cite{KrueBansBierDaziRash20}, dentre outras. Muitos outros exemplos podem ser encontrados em \cite{abntex2cite}. \ No newline at end of file
+No arquivo \texttt{referencias.bib}, além da entrada para referência do tipo manual (como no exemplo dado), há também entradas para referências do tipo artigo de periódico \cite{greenwade93}, artigo de conferência \cite{martin1997}, livro \cite{schaum1956}, capítulo de livro \cite{bates2010}, monografia \cite{morgado1990}, dissertação de mestrado \cite{macedo2005}, tese de doutorado \cite{guizzardi2005}, relatório técnico \cite{KrueBansBierDaziRash20}, dentre outras. Muitos outros exemplos podem ser encontrados em \cite{abntex2cite}.
+
+Note que de acordo com as normas da ABNT, é obrigatório informar data para cada referência bibliográfica. Caso a data não seja identificada na referência, deve-se informar uma data aproximada entre colchetes, conforme situações ilustradas a seguir:
+
+\begin{alineas}
+ \item um ano ou outro: [2007 ou 2008]
+ \item data provável: [2008?]
+ \item data certa não indicada no item: [2008]
+ \item use intervalos menores de 20 anos: [entre 1999 e 2008]
+ \item data aproximada: [ca. 2000]
+ \item década certa: [200-]
+ \item década provável: [200-?]
+ \item século certo: [20--]
+ \item século provável: [20--?]
+\end{alineas}
+
+Em \citeonline{Metodista}, por exemplo, o ano provável é indicado por \citeyear{Metodista}. No arquivo \texttt{bib}, a entrada correspondente a esta referência tem o campo \texttt{year} declarado como
+\begin{verbatim}
+ year = {$\lbrack$2015?$\rbrack$}
+\end{verbatim}
+Para não ocorrer erro na compilação do documento, deve-se utilizar os comandos \verb|$\lbrack$| e \verb|$\rbrack$| para os colchetes ``['' e ``]'', respectivamente. \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex b/macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex
index 1c86f09671..f357e74832 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex
@@ -1,12 +1,115 @@
% ----------------------------------------------------------
-\chapter{Códigos de programação}\label{apd:cdg}
+\chapter{Tabelas longas e rotacionadas}\label{apd:tabs}
% ----------------------------------------------------------
-\section{Projeto do Controlador com Realimentação de Estados}
-\lstinputlisting[language=Matlab,caption={Código de Matlab},label={cod:matlab}]{unbtex-example/codigos/controle.m}
+A \cref{tab:dscf} é um exemplo de tabela longa, que ocupa mais de uma página, construída com o ambiente \texttt{longtable} do pacote com mesmo nome (para mais informações sobre o pacote, consulte seu manual\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/required/tools/longtable.pdf}}). Para quadros longos, utilize o ambiente \texttt{longquadro}, disponibilizado na classe UnB\TeX.
-\section{Exemplo de teste em Malha Fechada com Rampa}
-\lstinputlisting[language=Python,caption={Código de Python},label={cod:python}]{unbtex-example/codigos/controleSmithPredictor.py}
+A \cref{tab:rot} foi construída com o ambiente \texttt{landscape} do pacote \textsf{lscape}. Para rotacionar, além da tabela, também a página do arquivo \texttt{pdf}, utilize o pacote \textsf{pdflscape}\footnote{Disponível em \url{http://mirrors.ctan.org/macros/latex/contrib/pdflscape/pdflscape.pdf}}. De forma análoga, os pacotes mencionados para rotacionar tabelas, podem rotacionar figuras.
-\section{Redução modal}
-\lstinputlisting[language=Julia,caption={Código de Julia},label={cod:julia}]{unbtex-example/codigos/ModalReduction.jl} \ No newline at end of file
+\begin{longtable}{L{2.5cm}C{2.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}}
+%\begin{longquadro}{L{2.5cm}C{2.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}C{1cm}C{1.5cm}}
+% Cabeçalho no início da tabela
+\caption{Tabela longa}
+\label{tab:dscf} \\
+\toprule
+\multirow{3}{*}{\bfseries Variable} &
+\multirow{3}{*}{\parbox{2.5cm}{\centering\bfseries Proportions in Sample (\%)}} &
+\multicolumn{6}{c}{\bfseries Proportions by Subtype (\%)} \\
+\cmidrule(lr){3-8}
+& &
+\multicolumn{2}{c}{\bfseries Graduated} & \multicolumn{2}{C{3cm}}{\bfseries Academically Excluded} &
+\multicolumn{2}{c}{\bfseries Censored} \\
+\midrule
+\endfirsthead
+% Cabeçalho da continuação da tabela no topo da página seguinte
+\caption[]{Tabela longa (continuação)} \\ \toprule
+\multirow{3}{*}{\bfseries Variable} &
+\multirow{3}{*}{\parbox{2.5cm}{\centering\bfseries Proportions in Sample (\%)}} &
+\multicolumn{6}{c}{\bfseries Proportions by Subtypes (\%)} \\
+\cmidrule(lr){3-8}
+& &
+\multicolumn{2}{c}{\bfseries Graduated} & \multicolumn{2}{C{3cm}}{\bfseries Academically Excluded} &
+\multicolumn{2}{c}{\bfseries Censored} \\
+\midrule
+\endhead
+\hline
+\multicolumn{8}{r}{(Continua)}\\
+\endfoot
+\bottomrule
+\endlastfoot
+\bfseries Total & 100.0 & 50.1 & (45.8) & 7.5 & (14.9) & 42.4 & (39.3) \\
+\addlinespace
+\bfseries Gender \\
+Male & 52.4 & 49.6 & (44.3) & 8.7 & (17.3) & 41.7 & (38.5) \\
+Female & 47.6 & 50.7 & (48.0) & 6.2 & (11.5) & 43.1 & (40.5) \\
+\addlinespace
+\bfseries Race \\
+White & 40.3 & 59.8 & (58.7) & 3.0 & (4.6) & 37.2 & (36.7) \\
+Black & 32.4 & 38.7 & (32.5) & 13.1 & (26.3) & 48.2 & (41.2) \\
+Coloured & 13.0 & 49.8 & (44.5) & 7.4 & (16.1) & 42.8 & (39.5) \\
+Indian/Asian & 14.3 & 48.9 & (44.6) & 7.9 & (13.3) & 43.3 & (42.1) \\
+\addlinespace
+\bfseries Financial Aid \\
+Ineligible for Financial Aid & 82.3 & 52.1 & (48.7) & 5.5 & (10.6) & 42.4 & (40.7) \\
+Eligible for Financial Aid & 17.7 & 40.7 & (35.2) & 17.2 & (30.3) & 42.1 & (34.5) \\
+\addlinespace
+\bfseries Programme \\
+Mainstream & 76.9 & 55.4 & (51.3) & 5.7 & (10.8) & 38.9 & (37.9) \\
+Academic Development & 23.1 & 32.5 & (27.1) & 13.7 & (28.7) & 53.8 & (44.2) \\
+\addlinespace
+\bfseries English Home Language \\
+Yes & 69.3 & 55.1 & (52.8) & 4.9 & (8.6) & 39.9 & (38.6) \\
+No & 30.7 & 38.8 & (32.8) & 13.4 & (26.6) & 47.8 & (40.6) \\
+\addlinespace
+\bfseries School Quintile \\
+1 & 0.8 & 34.6 & (26.1) & 30.8 & (42.6) & 34.6 & (31.3) \\
+2 & 1.6 & 30.2 & (28.1) & 16.0 & (35.1) & 53.8 & (36.8) \\
+3 & 5.0 & 32.0 & (27.7) & 17.5 & (35.3) & 50.5 & (37.0) \\
+4 & 4.1 & 37.7 & (29.5) & 17.7 & (32.0) & 44.5 & (38.5) \\
+5 & 45.4 & 52.0 & (49.2) & 6.9 & (12.0) & 41.1 & (38.9) \\
+Independent & 43.1 & 52.5 & (50.4) & 5.3 & (8.6) & 42.2 & (41.0) \\
+\addlinespace
+{\bfseries Province} \\
+Western Cape & 40.0 & 55.1 & (51.3) &5.9 & (11.6) &39.0 & (37.0) \\
+Non-Western Cape & 59.9 & 46.8 & (41.9) & 8.6 & (17.2) & 44.6 & (41.0) \\
+\addlinespace
+{\bfseries Year of First Registration} \\
+{2006} & 11.6 & 87.8 & (79.9) & 11.3 & (18.9) & 0.9 & (1.2) \\
+{2007} & 11.9 & 88.2 & (79.4) & 10.1 & (19.2) & 1.7 & (1.4) \\
+{2008} & 12.6 & 87.1 & (76.7) & 10.3 & (20.3) & 2.6 & (3.0) \\
+{2009} & 11.9 & 80.9 & (64.9) & 9.7 & (24.9) & 9.4 & (10.2) \\
+{2010} & 11.1 & 62.6 & (57.5) & 6.4 & (12.7) & 31.1 & (29.8) \\
+{2011} & 11.7 & 15.8 & (15.3) & 7.2 & (12.8) & 77.0 & (71.9) \\
+{2012} & 14.1 & 0.0 & (0.0) & 5.4 & (7.5) & 94.6 & (92.5) \\
+{2013} & 15.1 & 0.0 & (0.0) & 1.7 & (3.0) & 98.3 & (97.0) \\
+%\end{longquadro}
+\end{longtable}
+
+\afterpage{ % Evita quebra de página ao inserir tabela rotacionada
+\begin{landscape} % Rotaciona a tabela
+\begin{table}%
+\centering\small
+\caption{Tabela rotacionada}\label{tab:rot}
+\setlength\tabcolsep{3pt} % define o espaçamento entre colunas
+\begin{tabular}{@{}L{1.1cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}L{1.6cm}@{}} % @{} elimina o espaço nas bordas laterais
+\toprule
+Sv,ieq & 000436xa & 000594xa & 001715xa & 001932ya & 006040ya & 006263xa & 007162ya & 007257ya & IT0605ya & IT0790xa & emiliaeo-retro & emilians-retro \\ \midrule
+0.4 & 2.447 & 2.177 & 2.304 & 4.921 & 4.298 & 2.121 & 3.928 & 3.478 & 3.462 & 1.751 & 0.875 & 0.525 \\
+0.8 & 4.894 & 4.354 & 4.609 & 9.843 & 8.597 & 4.241 & 7.857 & 6.957 & 6.924 & 3.502 & 1.750 & 1.049 \\
+1.2 & 7.341 & 6.530 & 6.913 & 14.764 & 12.895 & 6.362 & 11.785 & 10.435 & 10.386 & 5.252 & 2.625 & 1.574 \\
+1.6 & 9.789 & 8.707 & 9.218 & 19.686 & 17.194 & 8.482 & 15.713 & 13.914 & 13.848 & 7.003 & 3.500 & 2.099 \\
+2 & 12.236 & 10.884 & 11.522 & 24.607 & 21.492 & 10.603 & 19.642 & 17.392 & 17.310 & 8.754 & 4.375 & 2.624 \\
+2.4 & 14.683 & 13.061 & 13.827 & 29.529 & 25.791 & 12.723 & 23.570 & 20.871 & 20.772 & 10.505 & 5.250 & 3.148 \\
+2.8 & 17.130 & 15.237 & 16.131 & 34.450 & 30.089 & 14.844 & 27.498 & 24.349 & 24.234 & 12.256 & 6.125 & 3.673 \\
+3.2 & 19.577 & 17.414 & 18.435 & 39.372 & 34.388 & 16.965 & 31.427 & 27.828 & 27.697 & 14.006 & 7.000 & 4.198 \\
+3.6 & 22.024 & 19.591 & 20.740 & 44.293 & 38.686 & 19.085 & 35.355 & 31.306 & 31.159 & 15.757 & 7.875 & 4.723 \\
+4 & 24.471 & 21.768 & 23.044 & 49.215 & 42.984 & 21.206 & 39.283 & 34.784 & 34.621 & 17.508 & 8.750 & 5.247 \\
+4.4 & 26.919 & 23.945 & 25.349 & 54.136 & 47.283 & 23.326 & 43.212 & 38.263 & 38.083 & 19.259 & 9.625 & 5.772 \\
+4.8 & 29.366 & 26.121 & 27.653 & 59.058 & 51.581 & 25.447 & 47.140 & 41.741 & 41.545 & 21.009 & 10.500 & 6.297 \\
+5.2 & 31.813 & 28.298 & 29.957 & 63.979 & 55.880 & 27.567 & 51.068 & 45.220 & 45.007 & 22.760 & 11.375 & 6.821 \\
+5.6 & 34.260 & 30.475 & 32.262 & 68.900 & 60.178 & 29.688 & 54.996 & 48.698 & 48.469 & 24.511 & 12.250 & 7.346 \\
+6 & 36.707 & 32.652 & 34.566 & 73.822 & 64.477 & 31.809 & 58.925 & 52.177 & 51.931 & 26.262 & 13.125 & 7.871 \\ \bottomrule
+\end{tabular}
+\end{table}%
+\end{landscape}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/apendice-c.tex b/macros/latex/contrib/unbtex/unbtex-example/apendice-c.tex
new file mode 100644
index 0000000000..125f46d8cf
--- /dev/null
+++ b/macros/latex/contrib/unbtex/unbtex-example/apendice-c.tex
@@ -0,0 +1,12 @@
+% ----------------------------------------------------------
+\chapter{Códigos de programação}\label{apd:cdg}
+% ----------------------------------------------------------
+
+\section{Projeto do controlador por realimentação de estados}
+\lstinputlisting[language=Matlab,caption={Código de Matlab},label={cod:matlab}]{unbtex-example/codigos/controle.m}
+
+\section{Exemplo de teste em malha fechada com entrada rampa}
+\lstinputlisting[language=Python,caption={Código de Python},label={cod:python}]{unbtex-example/codigos/controleSmithPredictor.py}
+
+\section{Redução modal}
+\lstinputlisting[language=Julia,caption={Código de Julia},label={cod:julia}]{unbtex-example/codigos/ModalReduction.jl} \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex
index cb4ca3a6d5..2955b00ed7 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex
@@ -16,11 +16,8 @@ A classe UnB\TeX\ também contempla atualizações mais recentes das normas NBR
Este documento deve ser utilizado como complemento do manual do \abnTeX\ \cite{abntex2classe} e da classe \textsf{memoir} \cite{memoir}. Mais referências sobre o \LaTeX\ e sobre o \abnTeX\ podem ser obtidas em \url{https://github.com/abntex/abntex2/wiki/Referencias}.
-%\begin{mdframed}[style=defnSty] % azul
-\begin{mdframed}[style=plainSty] % verde
-
+%\begin{mdframed}[style=defnSty,innertopmargin=8pt] % azul
+\begin{mdframed}[style=plainSty,innertopmargin=8pt] % verde
{\center \textsc{Texto motivador} \par}
-
\noindent Esperamos que o UnB\TeX\ aprimore a qualidade do trabalho que você produzirá, de modo que o principal esforço seja concentrado no principal: na contribuição científica.
-
\end{mdframed} \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex
index 1eb8ccc3b2..739fb3986c 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex
@@ -3,14 +3,14 @@
\label{cap:exemplos}
% ----------------------------------------------------------
-Este capítulo ilustra o uso de comandos do \LaTeX, do \abnTeX\ e do UnB\TeX.
+Este capítulo ilustra o uso de comandos do \LaTeX, do \abnTeX\ e do UnB\TeX\ para elaboração de trabalhos acadêmicos.
% ---
\section{Expressões matemáticas}
\label{sec:mat}
% ---
-Para que as expressões matemáticas fiquem na mesma linha do texto, como em $ \lim_{x \to \infty} \exp(-x) = 0 $, escreva-as entre \$ e \$.
+Escreva expressões matemáticas entre \$ e \$, como em $\lim_{x \to \infty}\exp(-x) = 0$, para que fiquem na mesma linha do texto.
Colchetes podem ser usados para indicar o início de uma expressão matemática não numerada:
\[
@@ -22,14 +22,14 @@ Colchetes podem ser usados para indicar o início de uma expressão matemática
O ambiente \texttt{equation} pode ser usado para escrever expressões matemáticas numeradas, como a seguinte:
\begin{equation}
- \forall x \in X, \quad \exists \: y \leq \epsilon.
+ \forall x \in \mathcal{X}, \quad \exists \: y \leq \epsilon.
\end{equation}
Se a equação fizer parte do parágrafo, não deixe no arquivo \texttt{tex} uma linha em branco entre o texto e o ambiente da equação. A linha em branco é entendida como começo de um novo parágrafo, que é iniciado com recuo e maior espaçamento.
Muitos cientistas gostam de usar \LaTeX\ porque essa ferramenta possibilita escrever facilmente equações como:
\begin{equation}
-p+\frac{1}{2}{\rho}v^2+{\rho}gh = \text{constante},
+p+\frac{1}{2}{\rho}v^2+{\rho}gh = \mathrm{constante},
\label{eq:bernoulli}
\end{equation}
em que $p$ é a pressão, $v$ é a velocidade e $h$ é a elevação, ou seja, a ``altura do tubo''. A \cref{eq:bernoulli} pode ser deduzida a partir do \textit{Teorema Trabalho-Energia}.
@@ -41,10 +41,8 @@ em que $p$ é a pressão, $v$ é a velocidade e $h$ é a elevação, ou seja, a
A seguir são apresentados mais alguns exemplos de equações feitas com o \LaTeX:
-\newcommand{\vt}[1]{\mathbf{#1}}
-
\begin{equation}\label{eq:R_f_usual}
-\vt{R}_r(t) = \vt{R}_{\chi}(t) \triangleq
+\mathbf{R}_r(t) = \mathbf{R}_{\chi}(t) \triangleq
\begin{bmatrix}
\cos \chi_0 (t) & -\sin \chi_0 (t) & 0
\\
@@ -55,11 +53,11 @@ A seguir são apresentados mais alguns exemplos de equações feitas com o \LaTe
\end{equation}
\begin{equation}
-\vt{L}_{ij} =
+\mathbf{L}_{ij} =
\begin{cases}
--a_{ij}, & \text{se } j \neq i \text{ e } j \in \mathcal{N}_i, \\
-\sum_{k \in \mathcal{N}_i} a_{ik}, & \text{se } j = i, \\
-0, & \text{caso contrário},
+-a_{ij}, & \textrm{se } j \neq i \textrm{ e } j \in \mathcal{N}_i, \\
+\sum_{k \in \mathcal{N}_i} a_{ik}, & \textrm{se } j = i, \\
+0, & \textrm{caso contrário},
\end{cases}
\end{equation}
@@ -83,11 +81,28 @@ u_{li}(t) &= - \textrm{sign}(s_{li}(t))\eta. \label{eq:u_xbi}
\end{align}
\end{subequations}
+Exemplos de fontes tipográficas específicas para uso em expressões matemáticas são apresentadas na \cref{tab:ftmath}.
+
+\begin{table}[htb]
+\centering
+\caption{Fontes matemáticas}
+\label{tab:ftmath}
+\begin{tabular}{llll}
+\toprule
+Exemplo & Comando & Exemplo & Comando \\ \cmidrule(lr){1-2} \cmidrule(lr){3-4}
+$\mathcal{RQSZ}$ & \verb|\mathcal{RQSZ}| & $\mathbfcal{RQSZ}$ & \verb|\mathbfcal{RQSZ}| \\
+$\mathscr{RQSZ}$ & \verb|\mathscr{RQSZ}| & $\mathbfscr{RQSZ}$ & \verb|\mathbfscr{RQSZ}| \\
+$\mathfrak{RQSZ}$ & \verb|\mathfrak{RQSZ}| & $\mathbffrak{RQSZ}$ & \verb|\mathbffrak{RQSZ}| \\
+$\mathbb{RQSZ}$ & \verb|\mathbb{RQSZ}| & $\mathbfbb{RQSZ}$ & \verb|\mathbfbb{RQSZ}| \\ \bottomrule
+\end{tabular}
+\fonte{Elaborada pelo autor}
+\end{table}
+
% ---
-\section{Listas}
+\section{Lista de abreviaturas e siglas e lista de símbolos}
% ---
-As listas de figuras e de tabelas numeradas, inseridas após o \emph{Abstract}, são geradas automaticamente. Incluídas após a lista de tabelas, a lista de abreviaturas e siglas e a lista de símbolos são geradas pelo pacote \textsf{nomencl} e têm seus itens definidos conforme descrição a seguir.
+A lista de abreviaturas e siglas e a lista de símbolos são elementos pré-textuais não obrigatórios de trabalhos acadêmicos. Incluídas por meio do comando \verb|\printnomenclature| no arquivo \texttt{tex} principal do trabalho, estas listas são geradas pelo pacote \textsf{nomencl}, e têm seus itens definidos conforme descrição a seguir.
Para definir um item a ser exibido na lista de abreviaturas e siglas, próximo do texto onde a sigla ou abreviatura aparece, utilize o comando \verb|\nomenclature|. Por exemplo, para definir a sigla UnB no \cref{cap:intr}, próximo dela foi utilizado o seguinte comando:
\begin{verbatim}
@@ -104,7 +119,7 @@ O argumento \texttt{[A]} do comando \verb|\nomenclature[A]| indica que o item pe
Os nomes dos grupos de símbolos (símbolos romanos, símbolos gregos, sobrescritos e subscritos), assim como as letras que os designam, podem ser alterados e novos grupos podem ser criados. Para isso, veja no arquivo da classe UnB\TeX\ (\texttt{unbtex.cls}) como o comando \verb|\nomgroup| do pacote \textsf{nomencl} é redefinido.
-É importante mencionar que enquanto no Overleaf, o pacote \textsf{nomencl} não necessite de nenhuma compilação adicional, em outros editores \LaTeX\ pode ser necessário compilar o documento usando, além do \texttt{pdfLaTeX}, o \texttt{Makeindex}. No TeXstudio, por exemplo, o \texttt{Makeindex} deve ser previamente configurado como a seguir:\footnote{Para mais informações: \url{https://tex.stackexchange.com/questions/27824/using-package-nomencl}}:
+É importante mencionar que no Overleaf, para compilar um documento com lista de abreviaturas e siglas ou lista de símbolos não é necessária nenhuma ação adicional. Em outros editores \LaTeX\ pode ser necessário compilar o documento usando usando o \texttt{pdfLaTeX}, seguido pelo \texttt{Makeindex} e pelo \texttt{pdfLaTeX} novamente. O \texttt{Makeindex} deve ser previamente configurado. No TeXstudio, por exemplo, o \texttt{Makeindex} deve ser receber a seguinte configuração\footnote{Para mais informações: \url{https://tex.stackexchange.com/questions/27824/using-package-nomencl}}:
\begin{verbatim}
makeindex %.nlo -s nomencl.ist -o %.nls -t %.nlg
\end{verbatim}
@@ -117,7 +132,7 @@ A formatação das referências bibliográficas conforme as regras da ABNT é um
A classe UnB\TeX\ aproveita o pacote \textsf{abntex2cite}, mas com arquivos de estilo (extensão \texttt{bst}) modificados para contemplar atualizações mais recentes das normas NBR 6023 \cite{NBR6023:2018} e NBR 10520 \cite{NBR10520:2023}. Além das opções para citações nos estilos autor-ano e numérico, na classe UnB\TeX\ foram adicionados arquivos de estilo customizados para citações em textos escritos em inglês.
-Para cada referência a ser citada em arquivos de texto (extensão \texttt{tex}), é preciso criar uma entrada no arquivo de referências (extensão \texttt{bib}). Informações sobre como criar entradas em arquivos \texttt{bib} para diferentes tipos de referências (artigos em periódicos, artigos em anais de eventos, livros, capítulos de livros, etc.) e como utilizá-las, podem ser obtidas nos manuais \citeonline{abntex2cite}\footnote{Disponível em: \url{http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite.pdf}} e \citeonline{abntex2cite-alf}\footnote{Disponível em: \url{http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf}}. No \cref{apd:cit} há um exemplo de como criar e utilizar entradas para referências bibliográficas.
+Para cada referência a ser citada em arquivos de texto (extensão \texttt{tex}), é preciso criar uma entrada no arquivo de referências (extensão \texttt{bib}). Informações sobre como criar entradas em arquivos \texttt{bib} para diferentes tipos de referências (artigos em periódicos, artigos em anais de eventos, livros, capítulos de livros, etc.) e como utilizá-las, podem ser obtidas nos manuais \citeonline{abntex2cite}\footnote{Disponível em: \url{https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite.pdf}} e \citeonline{abntex2cite-alf}\footnote{Disponível em: \url{https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf}}. No \cref{apd:cit} há um exemplo de como criar e utilizar entradas para referências bibliográficas.
Embora as normas da ABNT permitam citações utilizando o estilo numérico, é recomendado o uso do estilo autor-data em trabalhos acadêmicos. A razão é que a leitura por parte do avaliador fica mais simples. Basta ver o nome e o ano para se lembrar rapidamente da referência, sem precisar recorrer frequentemente à lista de referências, que fica no final do texto, tornando a leitura mais agradável.
@@ -132,7 +147,7 @@ O pacote \textsf{biblatex}, com a opção \texttt{style=abnt}, também pode ser
Normalmente não há problemas em usar caracteres acentuados em arquivos bibliográficos (\texttt{bib}). Porém, como as regras da ABNT fazem uso frequente da conversão para letras maiúsculas, é preciso observar o modo como se escreve os nomes dos autores. Na \cref{tab:acentos} você encontra alguns exemplos das conversões mais importantes. Preste atenção especial para `ç' e `í' que devem estar envoltos em chaves. A regra geral é, nos arquivos \texttt{bib}, sempre fazer a acentuação de acordo com a \cref{tab:acentos}, especialmente nas palavras que têm suas letras convertidas para maiúsculas.
\begin{table}[htb]
-\begin{center}
+\centering
\caption{Tabela de conversão de acentuação}
\label{tab:acentos}
\begin{tabular}{llllllll} \toprule
@@ -144,7 +159,7 @@ Normalmente não há problemas em usar caracteres acentuados em arquivos bibliog
\'u & & & & \verb|\'u| & & & \\
{\c c} & & & & \multicolumn{2}{l}{\Verb{{\c c}}} & & \\ \bottomrule
\end{tabular}
-\end{center}
+\fonte{Adaptada de \citeonline{abntex2cite}}
\end{table}
% ---
@@ -159,8 +174,8 @@ As citações diretas, no texto, com mais de três linhas, devem ser destacadas
Use o ambiente assim:
\begin{verbatim}
\begin{citacao}
-As citações diretas, no texto, com mais de três linhas [...] deve-se observar
-apenas o recuo \cite[seção 5.3]{NBR10520:2002}.
+As citações diretas, no texto, com mais de três linhas [...] deve-se observar apenas o
+recuo \cite[seção 5.3]{NBR10520:2002}.
\end{citacao}
\end{verbatim}
@@ -185,15 +200,14 @@ Ao nomear a \cref{sec:mat} e a \cref{eq:bernoulli}, apresentamos um exemplo de r
O código usado para produzir o texto desta seção é:
\begin{verbatim}
-Ao nomear a \cref{sec:mat} e a \cref{eq:bernoulli}, apresentamos um
-exemplo de remissão interna, que também pode ser feita quando indicamos
-o \cref{cap:exemplos}, intitulado \emph{\nameref{cap:exemplos}}. O
-número do capítulo indicado é \ref{cap:exemplos}, que se inicia à
-\cpageref{cap:exemplos}\footnote{O número da página de uma remissão
-pode ser obtida também assim: \pageref{cap:exemplos}.}.
+Ao nomear a \cref{sec:mat} e a \cref{eq:bernoulli}, apresentamos um exemplo de remissão
+interna, que também pode ser feita quando indicamos o \cref{cap:exemplos}, intitulado
+\emph{\nameref{cap:exemplos}}. O número do capítulo indicado é \ref{cap:exemplos}, que se
+inicia à \cpageref{cap:exemplos}\footnote{O número da página de uma remissão pode ser
+obtida também assim: \pageref{cap:exemplos}.}.
\end{verbatim}
-As remissões internas neste documento foram feitas utilizando-se o pacote \textsf{cleveref}. Mais opções de uso (e de comandos) podem ser encontradas em seu manual\footnote{Disponível em \url{http://mirrors.ctan.org/macros/latex/contrib/cleveref/cleveref.pdf}}.
+As remissões internas neste documento foram feitas utilizando-se o pacote \textsf{cleveref}. Mais opções de uso (e de comandos) podem ser encontradas em seu manual\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/contrib/cleveref/cleveref.pdf}}.
% ---
\section{Enumerações: alíneas e subalíneas}
@@ -248,9 +262,7 @@ As notas de rodapé são detalhadas pela NBR 14724:2011 na seção 5.2.1\footnot
\label{sec:hifenizacao}
% ---
-O idioma principal do texto é definido no início do arquivo \texttt{tex} principal, como uma opção da classe UnB\TeX. Para português-brasileiro, utilize a opção \texttt{idioma=brazil} e para inglês, utilize a opção \texttt{idioma=english}. A opção de idioma define se nome das listas (de figuras, de tabelas, de abreviaturas e siglas, de símbolos), do sumário e das referências será em português ou inglês. Define também o idioma do rótulo das tabelas, figuras, equações, capítulos, seções, apêndices, anexos, etc.
-
-As últimas opções da classe UnB\TeX, \texttt{english} e \texttt{brazil}, referem-se a idiomas para hifenização e para uso em outros pacotes e, assim, não devem ser alteradas. Mesmo que o idioma principal do texto seja português, é possível incluir textos para serem hifenizados em inglês, como no exemplo a seguir\footnote{Extraído de: \url{http://en.wikibooks.org/wiki/LaTeX/Internationalization}}:
+O idioma principal do texto é definido no início do arquivo \texttt{tex} principal, como uma opção da classe UnB\TeX. Para português-brasileiro, utilize a opção \texttt{idioma=brazil} e para inglês, utilize a opção \texttt{idioma=english}. A opção de idioma define se nome das listas (de figuras, de tabelas, de abreviaturas e siglas, de símbolos), do sumário e das referências será em português ou inglês. Define também o idioma do rótulo das tabelas, figuras, equações, capítulos, seções, apêndices, anexos, etc. Mesmo que o idioma principal do texto seja português, é possível incluir textos para serem hifenizados em inglês, como no exemplo a seguir\footnote{Extraído de: \url{https://en.wikibooks.org/wiki/LaTeX/Internationalization}}:
\begin{otherlanguage*}{english}
\textit{Text in English language. This environment switches all language-related definitions, like the language specific names for figures, tables etc. to the other language. The starred version of this environment typesets the main text according to the rules of the other language, but keeps the language specific string for ancillary things like figures, in the main language of the document. The environment hyphenrules switches only the hyphenation patterns used; it can also be used to disallow hyphenation by using the language name `nohyphenation'.}
@@ -297,10 +309,10 @@ Para incluir documentos haver necessariamente quebra de páginas, utilize o coma
\input{documento-a-ser-incluido} % sem a extensão .tex
\end{verbatim}
-Também é possível incluir no documento, páginas de arquivos \texttt{pdf}. No \cref{anx:coresunb}, por exemplo, foi incluída uma página do manual de identidade visual da UnB. Para tanto, utilizou-se o comando \verb|\includepdf| do pacote \textsf{pdfpages}.
+Também é possível incluir no documento, páginas de arquivos \texttt{pdf}. No \cref{anx:coresunb}, por exemplo, foi incluída uma página do manual de identidade visual da UnB. Para tanto, utilizou-se o comando \verb|\includepdf| do pacote \textsf{pdfpages}. Para mais informações sobre o pacote, consulte seu manual\footnote{Disponível em: \url{http://mirrors.ctan.org/macros/latex/contrib/pdfpages/pdfpages.pdf}}.
% ---
\section{Consulte o manual da classe \abnTeX}
% ---
-Consulte o manual da classe \textsf{abntex2} \cite{abntex2classe}\footnote{Disponível em: \url{http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2.pdf}} para uma referência completa dos comandos e ambientes disponíveis. Além disso, o manual possui informações adicionais sobre as normas ABNT observadas pelo \abnTeX\ e considerações sobre eventuais requisitos específicos não atendidos. \ No newline at end of file
+Consulte o manual da classe \textsf{abntex2} \cite{abntex2classe}\footnote{Disponível em: \url{https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2.pdf}} para uma referência completa dos comandos e ambientes disponíveis. Além disso, o manual possui informações adicionais sobre as normas ABNT observadas pelo \abnTeX\ e considerações sobre eventuais requisitos específicos não atendidos. \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex
index 676cedb21c..082de889f9 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex
@@ -2,15 +2,17 @@
\chapter{Tabelas e figuras}
% ----------------------------------------------------------
+Tabelas e figuras (além de equações, códigos, algoritmos, definições, teoremas, etc.) são elementos comumente presentes em trabalhos acadêmicos. Na classe UnB\TeX, além de distinta e consecutiva, a numeração destes elementos pode ser feita por capítulo ou para o documento inteiro. No início do arquivo \texttt{tex} principal do trabalho, use a opção \texttt{numb=chap} para que a numeração destes elementos seja por capítulo ou use a opção \texttt{numb=abnt} para que a numeração seja para o documento inteiro. Note que este documento utiliza a numeração por capítulo, embora as normas da ABNT indiquem o uso da numeração consecutiva para o documento inteiro.
+
% ---
\section{Tabelas}
% ---
-As \cref{tab:nivel,tab:fluxo,tab:ibge} são exemplos de tabelas construída em
-\LaTeX. Observe que a \cref{tab:ibge} utiliza o padrão do \citeonline{ibge1993} para documentos técnicos e acadêmicos.
+As \cref{tab:nivel,tab:fluxo,tab:ibge} são exemplos de tabelas construídas com \LaTeX. Observe que a \cref{tab:ibge} utiliza o padrão do \citeonline{ibge1993}, indicada pela ABNT para documentos técnicos e acadêmicos. Neste padrão, o texto da legenda, incluído na parte superior com o comando \verb|\caption|, e os demais textos (fonte, nota e anotações), incluídos na parte inferior com os comandos \verb|\fonte| e \verb|\nota|, têm a mesma largura da tabela.
\begin{table}[htb]
-\begin{center}%
+%\begin{quadro}[htb]
+\centering
\small
\caption[Níveis de investigação]{Níveis de investigação}
\label{tab:nivel}
@@ -21,13 +23,15 @@ As \cref{tab:nivel,tab:fluxo,tab:ibge} são exemplos de tabelas construída em
Nível do objeto & Paradigmas do metanível e evidências do nível inferior & Ciência & Teorias e modelos \\ \hline
Nível inferior & Modelos e métodos do nível do objeto e problemas do nível inferior & Prática & Solução de problemas \\
\end{tabular}}
-\fonte{\citeonline{van86}}
-\end{center}%
+\fonte{\citeonline{gigch86}}
+%\end{quadro}
\end{table}
-\begin{table}[htb]
+%\afterpage{ % Evita quebra de página ao inserir tabela rotacionada
+%\begin{landscape} % Rotaciona a tabela
+\begin{table}
\small
-\begin{center}%
+\centering
\caption{Componentes curriculares do segundo nível}
\label{tab:fluxo}
{\renewcommand{\arraystretch}{1.3} % espaçamento entre as linhas da tabela
@@ -48,8 +52,10 @@ CIC0090 & Estruturas de Dados & 30 & 30 & 0 & 0 & 60 & CIC0004 \\ \hline%
\multicolumn{6}{|l|}{Componentes optativos ou eletivos} & 60 & \multicolumn{1}{r}{} \\ \cline{1-7}%
\multicolumn{6}{|l|}{Total de horas do 2º Nível} & 420 & \multicolumn{1}{r}{} \\ \cline{1-7}%
\end{tabular}}
-\end{center}%
+\fonte{Elaborada pelo autor}
\end{table}
+%\end{landscape}
+%}
\begin{table}[htb]
\IBGEtab{%
@@ -64,44 +70,49 @@ CIC0090 & Estruturas de Dados & 30 & 30 & 0 & 0 & 60 & CIC0004 \\ \hline%
Laura Vicuña & 05/04/1891 & 3111.111.111-11 \\ \bottomrule
\end{tabular}%
}{%
- \fonte{Produzido pelos autores.}%
- \nota{Esta é uma nota, que diz que os dados são baseados na regressão linear.}%
- \nota[Anotações]{Uma anotação adicional, que pode ser seguida de várias outras.}%
+ \fonte{Elaborada pelo autor}%
+ \nota{Esta é uma nota, que diz que os dados são baseados na regressão linear}%
+ \nota[Anotações]{Uma anotação adicional, que pode ser seguida de várias outras}%
}
\end{table}
-Para alterar a cor de linhas e de células de tabelas, o pacote \textsf{colortbl} foi utilizado. Para mesclar linhas e colunas, como na \cref{tab:fluxo}, utilize o pacote \textsf{multirow}. O pacote \textsf{longtable} pode ser usado para construir tabelas que ocupam mais de uma página e o pacote \textsf{rotating} pode ser usado para rotacionar tabelas. No \cref{anx:tabs} há exemplos de tabelas que os utilizam. Embora poderosos para construir tabelas, os pacotes \textsf{tabularray} e \textsf{nicematrix} não foram utilizados neste documento devido ao elevado tempo necessário para processamento no Overleaf. Muitos outros exemplos de tabelas feitas com \LaTeX\ podem ser facilmente encontrados na internet.
+Para alterar a cor de linhas e de células de tabelas, o pacote \textsf{colortbl} foi utilizado. Para mesclar linhas e colunas, como na \cref{tab:fluxo}, foi utilizado o pacote \textsf{multirow}. O pacote \textsf{longtable} pode ser usado para construir tabelas que ocupam mais de uma página e o pacote \textsf{rotating} pode ser usado para rotacionar tabelas. No \cref{apd:tabs} há exemplos de tabelas que os utilizam. Embora poderosos para construir tabelas, os pacotes \textsf{tabularray} e \textsf{nicematrix} não foram utilizados neste documento devido ao elevado tempo necessário para processamento no Overleaf. Muitos outros exemplos de tabelas feitas com \LaTeX\ podem ser facilmente encontrados na internet.
+
+Se possível, construa tabelas sem linhas verticais entre as colunas. Nas \cref{tab:nivel,tab:ibge} não há linhas verticais e as linhas horizontais são menos frequentes e feitas com os comandos \verb|\toprule|, \verb|\midrule| e \verb|\bottomrule| do pacote \textsf{booktabs}. Na \cref{tab:fluxo} foram utilizadas linhas verticais e as linhas horizontais foram feitas com o comando \verb|\hline|, separando quase todas as linhas. O comando \verb|\arraystretch| permitiu aumentar o espaçamento entre linhas.
+
+As normas da ABNT, além de tabelas, preveem inclusão de quadros. Enquanto tabelas sintetizam dados numéricos, quadros sintetizam informações textuais. Por exemplo, a \cref{tab:nivel} poderia ser considerada um quadro. Para construir um quadro, utilize o ambiente \texttt{quadro} (ao invés do ambiente \texttt{table}), disponível na classe UnB\TeX. Além da lista de tabelas, elemento pré-textual inserido por meio do comando \verb|\listoftables| no arquivo \texttt{tex} principal, também é possível incluir a lista de quadros com o comando \verb|\listofquadros|.
% ---
\section{Figuras}
% ---
-Se a figura que for incluída se tratar de um diagrama, um gráfico ou uma ilustração que você mesmo produza, priorize o uso de imagens vetoriais no formato \texttt{pdf}, como no caso da \cref{fig:grafico}. Assim, o tamanho do arquivo do trabalho será menor e as imagens terão uma apresentação melhor, uma vez que imagens vetoriais são escaláveis para qualquer dimensão.
+Se a figura a ser incluída no documento se tratar de um diagrama, um gráfico ou uma ilustração que você mesmo produza, priorize o uso de imagens vetoriais no formato \texttt{pdf}, como no caso da \cref{fig:blockdiag1}. Assim, o tamanho do arquivo será menor e as imagens terão uma apresentação melhor, uma vez que imagens vetoriais são escaláveis para qualquer dimensão. Para manter a coerência no uso de software livre (já que você está usando \LaTeX), teste a ferramenta \textsf{InkScape} (\url{https://inkscape.org/}). Ela é uma excelente opção de código-livre para produzir ilustrações vetoriais, similar ao CorelDraw ou ao Adobe Illustrator.
\begin{figure}[htb]
\centering
- \caption{Resposta em frequência de malha aberta}
- \label{fig:grafico}
- \includegraphics[scale=1]{bodediagram.pdf}
+ \caption{Sistema em malha fechada, com realimentação da saída}
+ \label{fig:blockdiag1}
+ \includegraphics[scale=1]{blockdiagram.pdf}
+ \fonte{Elaborada pelo autor}
\end{figure}
-Para manter a coerência no uso de software livre (já que você está usando \LaTeX), teste a ferramenta \textsf{InkScape} (\url{http://inkscape.org/}). Ela é uma excelente opção de código-livre para produzir ilustrações vetoriais, similar ao CorelDraw ou ao Adobe Illustrator.
+Caso não seja possível utilizar arquivos de imagens como \texttt{pdf}, utilize qualquer outro formato, como \texttt{jpeg}, \texttt{gif} e \texttt{bmp}. Estes formatos requerem maior tempo de processamento, mas você pode tentar aprimorar seus conteúdos com o software livre \textsf{Gimp} (\url{https://www.gimp.org/}), uma alternativa livre ao Adobe Photoshop.
-De todo modo, caso não seja possível utilizar arquivos de imagens como \texttt{pdf}, utilize qualquer outro formato, como \texttt{jpeg}, \texttt{gif} e \texttt{bmp}. Estes formatos requerem maior tempo de processamento, mas você pode tentar aprimorar seus conteúdos com o software livre \textsf{Gimp} (\url{http://www.gimp.org/}), uma alternativa livre ao Adobe Photoshop. A \cref{fig:logolatex} mostra como é fácil inserir uma figura com legenda e referência à fonte utilizando um arquivo no formato \texttt{png}.
+Também é possível criar figuras, diagramas e gráficos utilizando comandos de pacotes disponíveis para o \LaTeX, como \textsf{TikZ}. Entretanto, tais pacotes requerem elevado tempo de processamento no Overleaf e, por isso, não foram utilizados neste documento.
+
+Note que, de acordo com as normas da ABNT, a legenda (\texttt{caption}) das figuras e tabelas deve aparecer na parte superior. Na parte inferior deve ser informada a fonte e podem ser incluídas notas. Caso queira que a numeração e título da figura apareça na parte inferior, dentro do ambiente \texttt{figure} utilize o comando \verb|\caption| após o comando \verb|\includegraphics|. Observe também que, diferentemente da \cref{fig:blockdiag1}, a \cref{fig:blockdiag2} tem numeração e nota com a mesma largura da figura, conforme recomendado pela ABNT. A lista de todas as figuras pode ser incluída como elemento pré-textual do trabalho por meio do comando \verb|\listoffigures| no arquivo \texttt{tex} principal.
\begin{figure}[htb]
- \begin{center}
- \caption{Logo \LaTeX} \label{fig:logolatex}
- \includegraphics[width=0.5\linewidth]{1280px-LaTeX-logo.png}
- \captionsetup{aboveskip=0pt,belowskip=2pt}
- \fonte{Wikimedia Commons \cite{wikimedia-latex}}
- \end{center}
+\sbox0{\includegraphics[scale=1]{blockdiagram.pdf}}
+\centering\configurecaptions
+\begin{minipage}{\wd0}
+ \caption{Digrama de blocos de sistema de controle em malha fechada}
+ \label{fig:blockdiag2}
+ \usebox0
+ \nota{Elaborada pelo autor}
+\end{minipage}
\end{figure}
-Também é possível criar figuras, diagramas e gráficos utilizando comandos de pacotes disponíveis para o \LaTeX, como \textsf{TikZ}. Entretanto, tais pacotes requerem elevado tempo de processamento no Overleaf e, por isso, não foram utilizados neste documento.
-
-Note que, de acordo com as normas da ABNT, numeração e título das figuras e tabelas devem aparecer na parte superior. Na parte inferior deve ser informada a fonte.
-
% ---
\subsection{Figuras em \emph{minipages}}
% ---
@@ -116,6 +127,7 @@ Note que, de acordo com as normas da ABNT, numeração e título das figuras e t
\caption{Imagem da minipage}
\label{fig:minipage_circuito}
\includegraphics[scale=1]{circuito.pdf}
+ \fonte{Elaborada pelo autor}
\end{minipage}
\hfill
\begin{minipage}[t]{0.52\textwidth}
@@ -123,6 +135,7 @@ Note que, de acordo com as normas da ABNT, numeração e título das figuras e t
\caption{Gráfico da minipage}
\label{fig:minipage_grafico}
\includegraphics[scale=1.2]{diodocurva.pdf}
+ \fonte{Elaborada pelo autor}
\end{minipage}
\end{figure}
@@ -135,10 +148,11 @@ O pacote \textsf{subfig} foi utilizado para inserir as \cref{fig:subfigura_circu
\centering
\caption{Figura com subfiguras}
\label{fig:subfiguras}
- \subfloat[Primeira subfigura]{\label{fig:subfigura_circuito} \centering
- \includegraphics[scale=1]{circuito.pdf}}
- \subfloat[Segunda subfigura]{\label{fig:subfigura_grafico} \hspace{0.4em}
+ \subfloat[Primeira subfigura]{\label{fig:subfigura_circuito}
+ \centering \includegraphics[scale=1]{circuito.pdf}} \hfill
+ \subfloat[Segunda subfigura]{\label{fig:subfigura_grafico}
\centering \includegraphics[scale=1.2]{diodocurva.pdf}}
+ \fonte{Elaborada pelo autor}
\end{figure}
% utiliza o pacote subcaption
@@ -167,12 +181,12 @@ Caso queira utilizar as mesmas fontes tipográficas do texto para escrever dentr
\begin{figure}[htb]
\centering
- \caption{Uso do pacote \textsf{psfrag}}
- \subfloat[Arquivo \texttt{blockdiagram.pdf}]{\label{fig:psfrag1} \centering
- \includegraphics[scale=1]{blockdiagram.pdf}} \\
+ \caption{Uso do pacote \textsf{psfrag}}\label{fig:psgrag}
+ \subfloat[Arquivo \texttt{blockdiagram.pdf}]{\label{fig:psfrag1}
+ \centering \includegraphics[scale=1]{blockdiagram.pdf}} \\
\subfloat[Arquivo \texttt{blockdiagram.eps}]{\label{fig:psfrag2}
\centering \includegraphics[scale=1]{blockdiagram.eps}}
- \label{fig:psgrag}
+ \fonte{Elaborada pelo autor}
\end{figure}
Crie no Overleaf um novo projeto que tenha o conteúdo do \cref{cod:tex} dentro de um arquivo \texttt{tex} nomeado, por exemplo, como \texttt{blockdiagram.tex}. No menu do Overleaf, altere o compilador de \texttt{pdfLaTeX} para \texttt{LaTeX} e defina o arquivo \texttt{blockdiagram.tex} como principal. Coloque o arquivo \texttt{blockdiagram.eps} dentro do projeto e compile. A saída gerada, corresponde à \cref{fig:psfrag1}, deve ser salva como \texttt{blockdiagram.pdf}. Este arquivo poderá ser carregado no projeto do texto do trabalho (TCC, dissertação ou tese) que você estiver escrevendo com o UnB\TeX\ (que usa o \texttt{pdfLaTeX} como compilador). Observe na \cref{fig:psfrag2} que o ``\texttt{g}'' é substituído por ``$G(s)$'' na \cref{fig:psfrag1}. Para tal, o \cref{cod:tex} utiliza o seguinte comando do pacote \textsf{psfrag}:
@@ -180,8 +194,8 @@ Crie no Overleaf um novo projeto que tenha o conteúdo do \cref{cod:tex} dentro
\psfrag{g}[c][c]{\footnotesize $G(s)$}
\end{verbatim}
-\lstinputlisting[numbers=none,float,caption={\texttt{blockdiagram.tex}},label={cod:tex}]{unbtex-example/codigos/blockdiagram.tex}
+\lstinputlisting[numbers=none,caption={\texttt{blockdiagram.tex}},label={cod:tex}]{unbtex-example/codigos/blockdiagram.tex}
-O pacote \textsf{psfrag} funciona apenas com o compilador \texttt{LaTeX}, o que torna a criação de um novo projeto no Overleaf uma boa solução. Este projeto poderá ser aproveitado para gerar outras figuras do documento principal. Para mais informações sobre o pacote, consulte seu manual\footnote{Disponível em \url{http://mirrors.ctan.org/macros/latex/contrib/psfrag/pfgguide.pdf}}.
+O pacote \textsf{psfrag} funciona apenas com o compilador \texttt{LaTeX}, o que torna a criação de um novo projeto no Overleaf uma boa solução. Este projeto poderá ser aproveitado para gerar outras figuras do documento principal. Para mais informações sobre o pacote, consulte seu manual\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/contrib/psfrag/pfgguide.pdf}}.
Evite o uso de figuras no formato \texttt{eps} no documento principal. Documentos que usam a classe UnB\TeX\ precisam ser compilados pelo \texttt{pdfLaTeX}, que inicialmente converte os arquivos \texttt{eps} para o formato \texttt{pdf}, exigindo maior tempo de processamento. O projeto auxiliar (\cref{cod:tex}) usa a classe \texttt{article} e admite compilador \texttt{LaTeX}, que não necessita de etapas adicionais para processar códigos que chamam arquivos \texttt{eps}. \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex
index 71c5eaf5c6..db12917a52 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex
@@ -2,14 +2,24 @@
\chapter{Ambientes do UnB\TeX}
% ----------------------------------------------------------
-A classe UnB\TeX\ disponibiliza alguns ``ambientes'', ou seja, caixas de texto com formatação especial para certos tipos de elementos, que podem ser automaticamente numerados (por exemplo, \cref{thm:WYSIWYG}, \cref{exc:in}, \cref{alg:NNMPC}, etc.). Esses ambientes foram adaptados a partir do modelo de \citeonline{Castro2019}.
+A classe UnB\TeX\ disponibiliza alguns ``ambientes'', ou seja, caixas de texto com formatação especial para certos tipos de elementos, que podem ser automaticamente numerados (por exemplo, \cref{def:WYSIWYG}, \cref{thm:WYSIWYG}, \cref{alg:ex}, etc.).
\section{Estilo teorema}
-\begin{definition}
+Criados com auxílio do pacote \textsf{mdframed}\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/contrib/mdframed/mdframed.pdf}} e inspirados no modelo de \citeonline{Castro2019}, estão disponíveis os ambientes: \texttt{theorem}, \texttt{lemma}, \texttt{proposition}, \texttt{corollary}, \texttt{definition}, \texttt{as\-sumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{property}, \texttt{example}, \texttt{exercise}, \texttt{problem}, \texttt{remark}, \texttt{proof} e \texttt{solution}. Alguns exemplos de uso são apresentados a seguir.
+
+\begin{definition}\label{def:WYSIWYG}
O WYSIWYG (ou ``What You See Is What You Get - O que você vê é o formato final'') é um tipo de editor HTML que permite editar sua página da Web em uma visualização simplificada e sem código de aparência semelhante à do layout da página real.
\end{definition}
+\begin{theorem}[Teorema LaTeX-WYSIWYG]\label{thm:WYSIWYG}
+ Todo físico prefere usar código \LaTeX\ puro que qualquer editor WYSIWYG.
+\end{theorem}
+
+\begin{proof}
+ Físicos gostam de equações bonitas. Editores What-You-See-Is-What-You-Get não são apropriados para fazer equações bonitas\footnote{É certo que há editores WYSIWYG baseados em \LaTeX, mas eles não nos dão o mesmo nível de controle.}. Logo, se algum físico preferisse usar um editor WYSIWYG no lugar de \LaTeX, não seria muito inteligente. Como todo físico é inteligente, o teorema está demonstrado \textit{ad absurdum}.
+\end{proof}
+
\begin{proposition}\label{prop:WYSIWYG}
\LaTeX\ produz equações mais bonitas que qualquer editor WYSIWYG.
\end{proposition}
@@ -18,21 +28,13 @@ O WYSIWYG (ou ``What You See Is What You Get - O que você vê é o formato fina
Teste.
\end{lemma}
-\begin{remark}
- \LaTeX\ produz equações mais bonitas que qualquer editor WYSIWYG.
-\end{remark}
-
-\begin{theorem}[Teorema LaTeX-WYSIWYG]\label{thm:WYSIWYG}
- Todo físico prefere usar código \LaTeX\ puro que qualquer editor WYSIWYG.
-\end{theorem}
-
\begin{corollary}
Teste.
\end{corollary}
-\begin{proof}
- Físicos gostam de equações bonitas. Editores What-You-See-Is-What-You-Get não são apropriados para fazer equações bonitas\footnote{É certo que há editores WYSIWYG baseados em \LaTeX, mas eles não nos dão o mesmo nível de controle.}. Logo, se algum físico preferisse usar um editor WYSIWYG no lugar de \LaTeX, não seria muito inteligente. Como todo físico é inteligente, o teorema está demonstrado \textit{ad absurdum}.
-\end{proof}
+\begin{remark}
+ \LaTeX\ produz equações mais bonitas que qualquer editor WYSIWYG.
+\end{remark}
\begin{exercise}\label{exc:in}
Explique como Isaac Newton usaria cada um dos pacotes seguintes, se vivesse no tempo presente:
@@ -44,53 +46,42 @@ O WYSIWYG (ou ``What You See Is What You Get - O que você vê é o formato fina
\end{enumerate}
\end{exercise}
-\begin{example}\label{exp:ae}
- Einstein usaria um editor WYSIWYG ou \LaTeX? \\
- Einstein era físico. Portanto, usando o teorema LaTeX-WYSIWYG, concluímos que ele usaria \LaTeX.
-\end{example}
+%\begin{example}\label{exp:ae}
+% Einstein usaria um editor WYSIWYG ou \LaTeX? \\
+% Einstein era físico. Portanto, usando o teorema LaTeX-WYSIWYG, concluímos que ele usaria \LaTeX.
+%\end{example}
-\section{Algoritmo}
+\section{Pseudocódigos}
-O \cref{alg:NNMPC} é um exemplo de pseudo-código.
+O \cref{alg:ex} é um exemplo de pseudocódigo, inserido com auxílio do pacote \textsf{algorithm2e}. Mais opções de uso (e de comandos) podem ser encontradas em seu manual\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/contrib/algorithm2e/doc/algorithm2e.pdf}}.
\begin{algorithm}[htb]
-%\linespread{1.0}\selectfont % espaçamento entre as linhas do algoritmo
-\caption{Pseudocódigo de MPC baseado em redes neurais para consenso}
-\label{alg:NNMPC}
-\begin{algorithmic}[1] %\opção para numerar as linhas [1]
-%\Procedure{Roy}{$a,b$} \Comment{This is a test}
- \State Inicialização do sistema em $x(0), \theta(0)$
- \State $J = V(e(0),\theta(0))$
- \State $K^{ab}_0 = 0$ $\forall (a,b)$
- \State $dataset \gets [K_0,J]$
- \For{$k = 1:k_{max}$} \Comment{Laço de simulação}
- \State $(W,Y) \gets train(dataset)$
- \State $\tilde{J} = Y\sigma(Wz)$ $\forall K^{ab}_k\pm \delta_K$
- \State $K_k^{\ast} = arg \min_{K_k}(\tilde{J})$
- \State $u(k) = \left( L(\theta(k)) \otimes K_k^{\ast} \right) x(k)$
- \State $\hat{x}(k) = x(k)$; $\hat{\theta}(k) = \theta(k)$
- \For{$t = k+1:k+h+1$} \Comment{Laço de predição}
- \State $\hat{\theta}(t) = randMarkov(\hat{\theta}(t-1),\Pi)$
- \State $p = \hat{\theta}(t)$
- \State $\hat{u}(t) = \left( L(p) \otimes K_k^{\ast} \right) \hat{x}(t)$
- \State $\hat{x}(t+1) = F_{p}(\hat{x}(t))$
- \State $x_0(t) = mean(\hat{x}(t))$
- \State $\hat{e}(t) = F_{p}(\hat{x}(t)) - \boldsymbol{1_N} f_{p0}(x(t)) $
- \State $\hat{V}_{t} = \hat{e}^T(t)P_{p}\hat{e}(t)$
- \EndFor
- \State $\hat{J} = \sum_{t = k+1}^{k+h+1} \hat{V}_{t}$
- \State $dataset \gets [K^{\ast}_k,\hat{J}]$
- \State $x(k+1) = F_{p}(x(k))$
- \EndFor
-%\EndProcedure
-\end{algorithmic}
+\caption{Exemplo de pseudocódigo}\label{alg:ex}
+\KwData{$n \geq 0$}
+\KwResult{$y = x^n$}
+$y \gets 1$\;
+$X \gets x$\;
+$N \gets n$\;
+%\While{$N \neq 0$}{
+\While(\tcc*[f]{Isso é um comentário}){$N \neq 0$}{
+ \eIf{$N$ for par}{
+ $X \gets X \times X$\;
+ $N \gets \frac{N}{2}$ \tcc*[r]{Isso é outro comentário}
+ }{\If{$N$ for impar}{
+ $y \gets y \times X$\;
+ $N \gets N - 1$\;
+ }
+ }
+}
\end{algorithm}
-\section{Programa}
+A lista com todos os algoritmos é um elemento pré-textual não obrigatório de trabalhos acadêmicos e pode ser gerada e incluída utilizando-se o comando \verb|\listofalgorithms| no arquivo \texttt{tex} principal.
+
+\section{Códigos-fonte}
-O \cref{cod:exemplo} é um exemplo de programa. Para mais exemplos, confira o \cref{apd:cdg}.
+O \cref{cod:exemplo} é um exemplo de código-fonte, inserido com auxílio do pacote \textsf{listings}. Para mais exemplos e comandos, confira o \cref{apd:cdg} e o manual do pacote\footnote{Disponível em \url{https://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf}}. A lista com todos os códigos-fonte é um elemento pré-textual não obrigatório de trabalhos acadêmicos e pode ser gerada e incluída utilizando-se o comando \verb|\lstlistoflistings| no arquivo \texttt{tex} principal.
-\begin{lstlisting}[caption={Exemplo de programa},label={cod:exemplo}]
+\begin{lstlisting}[float=htb,caption={Exemplo de código-fonte},label={cod:exemplo}]
/**
* MSO: ativa o servo cujo eixo eh descrito
* por drive_axis; informacoes de controle
diff --git a/macros/latex/contrib/unbtex/unbtex-example/codigos/blockdiagram.tex b/macros/latex/contrib/unbtex/unbtex-example/codigos/blockdiagram.tex
index 5205f3e20d..fdcced02af 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/codigos/blockdiagram.tex
+++ b/macros/latex/contrib/unbtex/unbtex-example/codigos/blockdiagram.tex
@@ -2,6 +2,7 @@
\usepackage{stickstootext}
\usepackage[stickstoo,vvarbb]{newtxmath}
+\usepackage[cal=stixplain,scr=stixtwofancy,frak=stixtwo,bb=stix]{mathalfa}
\usepackage[scale=0.90]{tgheros}
\usepackage[scale=1]{inconsolata}
\usepackage{pst-pdf}
diff --git a/macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m b/macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m
index 0c67f89df8..90df7ccc93 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m
+++ b/macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m
@@ -1,9 +1,7 @@
-% Controle com realimentação de estados
+% Controle por realimentação de estados
pC = (0.6)*ones(1,5);
pC(4) = 0.5 + 0.4*1i;
pC(5) = 0.5 - 0.4*1i;
-
-%Seguindo controle digital...
n = 4;
m = 1;
@@ -11,7 +9,5 @@ Ahat = [A, B; zeros(1,n), 0];
Bhat = [zeros(n,1); eye(m)];
Khat = acker(Ahat, Bhat, pC);
K = (Khat + [zeros(m, n), eye(m)])/([A - eye(n), B; H*A, H*B]);
-
-% Ganhos para utilizar na realimentação
Ki = K(5);
Kp = K(1:4); \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py b/macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
index ebcea45cf4..fb56d1d343 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
+++ b/macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
@@ -19,7 +19,7 @@ t = numpy.array(range(0, n_t)) * Ts
# time = linspace(0,10,n_t)
# instantiate the plant that will be used, it should be a subclass of Plant
-plant = PlantOPC(opc,'[CLP_AB]position','[CLP_AB]speed',init_pos)
+plant = PlantOPC(opc, '[CLP_AB]position', '[CLP_AB]speed', init_pos)
model = Model(n, A, B, C, D, Ak, Bk, Ck, Q, R, Kp, Ki, epsilon, Ts, plant)
start = time.clock()
@@ -40,11 +40,11 @@ plt.plot(t, y_topo[0:n_t], label='ref topo (in)')
plt.legend(loc=4)
plt.xlabel('time (s)')
plt.ylabel('position (m)')
-plt.title('Position of cart - close loop')
+plt.title('Position of cart - closed loop')
plt.grid(True)
# plt.show()
-plt.savefig("resultados/closed_loop_trajetoria_rafael.png", format='png', dpi=200)
-File = open('resultados/trajetoria_rafael.npz','wb')
+plt.savefig("resultados/closed_loop.png", format='png', dpi=200)
+File = open('resultados/trajetoria.npz', 'wb')
numpy.savez(File, t=t, y_topo=y_topo, y_fundo=y_fundo, y_out=y_out, pC=pC, Ki=Ki, Kp=Kp)
File.close()
diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png b/macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png
deleted file mode 100644
index ee8e5109a7..0000000000
--- a/macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf
deleted file mode 100644
index c1410d377d..0000000000
--- a/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdf
deleted file mode 100644
index 57a7fd2881..0000000000
--- a/macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/unbtex/unbtex-example/referencias.bib b/macros/latex/contrib/unbtex/unbtex-example/referencias.bib
index 699d20461f..0213a42828 100644
--- a/macros/latex/contrib/unbtex/unbtex-example/referencias.bib
+++ b/macros/latex/contrib/unbtex/unbtex-example/referencias.bib
@@ -11,7 +11,7 @@
number = {3},
pages = {342--351}}
-@article{van86,
+@article{gigch86,
author = {John P. van Gigch and Leo L. Pipino},
journal = {Future Computing Systems},
number = {1},
@@ -24,7 +24,8 @@
address = {Rio de Janeiro},
author = {IBGE},
edition = {3},
- url = {http://biblioteca.ibge.gov.br/visualizacao/livros/liv23907.pdf},
+ url = {https://biblioteca.ibge.gov.br/visualizacao/livros/liv23907.pdf},
+ urlaccessdate = {24 jan. 2019},
publisher = {Centro de Documenta{\c c}\~ao e Dissemina{\c c}\~ao de Informa{\c c}ões. Funda{\c c}\~ao Instituto Brasileiro de Geografia e Estat{\'i}stica},
title = {Normas de apresenta{\c c}\~ao tabular},
year = {1993}}
@@ -47,7 +48,7 @@
pages = {2347-2360},
publisher = {CRC Press},
title = {Information},
- url = {http://pages.gseis.ucla.edu/faculty/bates/articles/information.html},
+ url = {https://pages.gseis.ucla.edu/faculty/bates/articles/information.html},
volume = {3},
year = {2010}}
@@ -69,33 +70,40 @@
author = {Lauro C{\'e}sar Araujo},
organization = {Equipe abnTeX2},
title = {O pacote abntex2cite: Estilos bibliogr{\'a}ficos compat{\'i}veis com a ABNT NBR 6023},
- url = {http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite.pdf},
- year = {2018},
- bdsk-Url-1 = {http://www.abntex.net.br/}}
+ url = {https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite.pdf},
+ year = {2018}}
@manual{abntex2cite-alf,
annote = {Este documento {\'e} derivado do \cite{abnt-bibtex-alf-doc}},
author = {Lauro C{\'e}sar Araujo},
organization = {Equipe abnTeX2},
title = {O pacote abntex2cite: t{\'o}picos espec{\'i}ficos da ABNT NBR 10520:2002 e o estilo bibliogr{\'a}fico alfab{\'e}tico (sistema autor-data)},
- url = {http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf},
- year = {2018},
- bdsk-Url-1 = {http://www.abntex.net.br/}}
+ url = {https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf},
+ year = {2018}}
@manual{abntex2classe,
author = {Lauro C\'esar Araujo},
organization = {Equipe abnTeX2},
title = {A classe abntex2: Documentos t\'ecnicos e cient\'ificos brasileiros compat\'iveis com as normas ABNT},
- url = {http://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2.pdf},
- year = {2018},
- bdsk-Url-1 = {http://www.abntex.net.br/}}
+ url = {https://mirrors.ctan.org/macros/latex/contrib/abntex2/doc/abntex2.pdf},
+ year = {2018}}
+
+@manual{metodista,
+ address = {S\~ao Bernardo do Campo},
+ organization = {Universidade Metodista de S\~ao Paulo},
+ org-short = {Metodista},
+ title = {Biblioteca Dr. Jalmar Bowden},
+ subtitle = {Manual de refer\^encia},
+ url = {http://portal.metodista.br/biblioteca/servicos/manual-de-referencias},
+ urlaccessdate = {5 set. 2024},
+ year = {$\lbrack$2015?$\rbrack$}}
@manual{memoir,
address = {Normandy Park, WA},
author = {Peter Wilson and Lars Madsen},
organization = {The Herries Press},
title = {The Memoir Class for Configurable Typesetting -- User Guide},
- url = {http://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf},
+ url = {https://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf},
year = {2024}}
@manual{NBR10520:2002,
@@ -154,13 +162,6 @@
url = {https://www.overleaf.com/latex/templates/modelo-de-livro-para-editora-unb/trznrgjcsyfg},
year = {2019}}
-@misc{wikimedia-latex,
- author = {{Wikimedia Commons}},
- title = {File: {\normalfont LaTeX logo.svg}},
- year = {2008},
- url = {https://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg},
- urlaccessdate={24 jan. 2019}}
-
@monography{morgado1990,
address = {S\~ao Paulo},
author = {M. L. C. Morgado},
@@ -176,7 +177,6 @@
author = {Giancarlo Guizzardi},
school = {Centre for Telematics and Information Technology, University of Twente},
title = {Ontological Foundations for Structural Conceptual Models},
- url = {http://www.loa.istc.cnr.it/Guizzardi/SELMAS-CR.pdf},
year = {2005}}
@TechReport{KrueBansBierDaziRash20,
@@ -185,5 +185,5 @@
institution = {Transport and Mobility Laboratory, Ecole Polytechnique F\'ed\'erale de Lausanne},
year = {2020},
type = {Technical Report},
- number = {arXiv:1905.00419},
- address = {Lausanne, Switzerland}} \ No newline at end of file
+ doi = {10.48550/arXiv.1905.00419},
+ address = {Lausanne, Switzerland}}
diff --git a/macros/latex/contrib/unbtex/unbtex.cls b/macros/latex/contrib/unbtex/unbtex.cls
index 332fdce505..75535a7a14 100644
--- a/macros/latex/contrib/unbtex/unbtex.cls
+++ b/macros/latex/contrib/unbtex/unbtex.cls
@@ -1,7 +1,7 @@
%%
%% UnBTeX: A class for bachelor, master, and doctoral thesis at the
%% University of Brasilia (UnB), Brazil
-%% Version 1.5.2 2024/07/04
+%% Version 1.5.3 2024/10/07
%% Copyright (C) 2021-2024 by Henrique C. Ferreira <hcferreira@unb.br>
%%
%% This class file may be distributed and/or modified under the conditions
@@ -9,7 +9,7 @@
%% or (at your option) any later version. The latest version of this
%% license is in:
%%
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
@@ -21,7 +21,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{unbtex}[2024/07/04 v1.5.2 Modelo da Universidade de Brasília baseado em abnTeX2]
+\ProvidesClass{unbtex}[2024/10/07 v1.5.3 Modelo da Universidade de Brasília baseado em abnTeX2]
% ------------------------------------------------------------------------
% Opções para a classe
@@ -44,13 +44,22 @@
% ---
% ---
+% Opção para definição de estilo de numeração de figuras, tabelas, etc
+% ---
+\def\numb{chap} % Numeração por capítulo, por default
+\DeclareOption{numb=chap}{\def\numb{chap}}
+\DeclareOption{numb=abnt}{\def\numb{abnt}}
+% ---
+
+% ---
% Repassa demais opções à classe abntex2
% ---
\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{abntex2}
}
+\PassOptionsToPackage{english,brazil}{babel}
\ProcessOptions\relax
-\LoadClass[12pt,a4paper,onecolumn,openright]{abntex2}
+\LoadClass[12pt,a4paper]{abntex2}
% ---
% ------------------------------------------------------------------------
@@ -60,7 +69,7 @@
% ---
% Pacotes matemáticos
% ---
-\RequirePackage{mathtools} % Melhoria nas equaões
+\RequirePackage{mathtools} % Melhoria nas equações
\RequirePackage{amsthm} % Para configuração de ambientes do tipo teorema
% ---
@@ -69,18 +78,12 @@
% ---
\RequirePackage{stickstootext} % Fonte principal (Stix2)
\RequirePackage[stickstoo,vvarbb]{newtxmath} % Fonte matemática (Stix2)
+\RequirePackage[cal=stixplain,scr=stixtwofancy,frak=stixtwo,bb=stix]{mathalfa}
\RequirePackage[scale=0.90]{tgheros} % Fonte sans serif (TeX Gyre Heros)
\RequirePackage[scale=1]{inconsolata} % Fonte monoespaçada
% ---
% ---
-% Pacotes para figuras
-% ---
-\RequirePackage[captionskip=8pt]{subfig} % Permite fazer subfiguras
-%\RequirePackage[skip=8pt]{subcaption} % Permite fazer subfiguras
-% ---
-
-% ---
% Cores verde e azul UnB
% http://www.marca.unb.br/arquivosdigitais/files/guia_pratico/guia_pratico.pdf
% ---
@@ -88,7 +91,6 @@
\RequirePackage[dvipsnames]{xcolor}
\definecolor{verdeunb}{cmyk}{1,0,1,0.2}
\definecolor{azulunb}{cmyk}{1,0.65,0,0.35}
-
% Cores nos títulos
\renewcommand{\tocheadstart}{}
\renewcommand{\ABNTEXchapterfont}{\bfseries\color{verdeunb}\sffamily}
@@ -96,8 +98,65 @@
% ---
% ---
-% Configurações para tabelas
+% Configurações para a opção article
+% ---
+\ifthenelse{\equal{\ABNTEXistwocolumn}{true}}{
+\renewcommand{\ABNTEXisarticle}{true}}{}
+\ifthenelse{\equal{\ABNTEXisarticle}{true}}{
+\chapterstyle{article}
+\numberwithin{section}{chapter}
+\renewcommand{\chaptitlefont}{\bfseries\sffamily\Large\color{verdeunb}}
+\setsecheadstyle{\large\bfseries\sffamily\color{verdeunb}}
+\setsubsecheadstyle{\normalfont\bfseries\sffamily}
+\renewcommand{\chapternamenum}[1]{\ifanappendix \chaptitlefont\appendixname\space#1\else #1\fi}
+\renewcommand{\afterchapternum}{\ifanappendix\space\hspace{-20pt}\enspace\textendash\enspace\fi}
+\setlength\absleftindent{0cm}
+\setlength\absrightindent{0cm}
+\renewcommand{\abstracttextfont}{\normalfont\normalsize}
+\ifthenelse{\equal{\ABNTEXistwocolumn}{false}}{
+\setlength{\parindent}{2.3em} % Tamanho da indentação da primeira linha do parágrafo
+\setlength{\parskip}{.1\baselineskip plus .05\baselineskip} % Espaço entre parágrafos
+\setlrmarginsandblock{2cm}{2cm}{*}
+\setulmarginsandblock{2.5cm}{2cm}{*}
+\checkandfixthelayout[nearest]}{
+\input{mem11.clo} % Tamanho da fonte
+\SingleSpacing
+\setlength{\parindent}{1.8em}
+\AtBeginEnvironment{thebibliography}{\linespread{0.8}\selectfont}
+\setlength{\columnsep}{7.5mm}
+\def\@mathmargin{0pt}
+\setlrmarginsandblock{1.5cm}{1.5cm}{*}
+\setulmarginsandblock{2.5cm}{2cm}{*}
+\checkandfixthelayout[nearest]}
+\ifthenelse{\boolean{ABNTEXsumario-tradicional}}{}{
+\renewcommand{\tocpartapendices}{\addtocontents{toc}{
+\cftsetindents{chapter}{\cftlastnumwidth}{2em}}\cftinserthook{toc}{A}}
+\renewcommand{\tocpartanexos}{\addtocontents{toc}{
+\cftsetindents{chapter}{\cftlastnumwidth}{2em}}
+\cftinserthook{toc}{A}}}}{ % Opção article não utilizada
+\setlrmarginsandblock{3cm}{2cm}{*} % Margens esquerda e direita
+\setulmarginsandblock{3cm}{2cm}{*} % Margens superior e inferior
+\checkandfixthelayout[nearest]
+\setlength{\parindent}{2.3em} % Tamanho da indentação da primeira linha do parágrafo
+\setlength{\parskip}{.1\baselineskip plus .05\baselineskip} % Espaço entre parágrafos
+}
+\renewcommand{\maketitlehookb}{\vskip -1.5\topsep\vskip -1.5\partopsep}
+\pretitle{\begin{center}\color{verdeunb}\LARGE\sffamily\bfseries}
+\posttitle{\par\end{center}\vskip 0.5em}
+\renewcommand{\and}{\unskip, }
+% ---
+
+% ---
+% Pacotes para figuras
+% ---
+\RequirePackage[captionskip=8pt]{subfig} % Permite fazer subfiguras
+%\RequirePackage[skip=8pt]{subcaption} % Permite fazer subfiguras
+% ---
+
+% ---
+% Configurações para tabelas e quadros
% ---
+\RequirePackage{longtable}% Para tabelas longas
\RequirePackage{multirow} % Para combinar linhas nas tabelas
\RequirePackage{colortbl} % Permite alterar cores de linhas e células das tabelas
\arrayrulecolor{verdeunb} % Define a cor das linhas das tabelas
@@ -107,6 +166,105 @@
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
+
+% Criacao dos ambientes flutuantes para quadros
+\newfloat[chapter]{quadro}{loq}{\Quadroname}
+\newlistof{listofquadros}{loq}{\listquadroname}
+\newlistentry{quadro}{loq}{0}
+\renewcommand{\cftquadroname}{\Quadroname\space}
+\IfStrEq{\numb}{chap}
+{\cftsetindents{quadro}{0em}{2.3em}}{\cftsetindents{quadro}{0em}{1.8em}}
+\renewcommand{\thequadro}{\thechapter.\arabic{quadro}}
+\def\QT@c@ption#1[#2]#3{%
+ \LT@makecaption#1\fnum@quadro{#3}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\let\\\space
+ \addcontentsline{\ext@quadro}{quadro}{\protect\numberline{\thequadro}{#2}}}%
+ \fi}
+\newenvironment{longquadro}
+{\let\LT@c@ption\QT@c@ption\let\c@table\c@quadro\crefalias{table}{quadro}
+\renewcommand{\theHtable}{quadro\thechapter.\arabic{quadro}}\longtable}
+{\endlongtable}
+% ---
+
+% ---
+% Pacotes para algoritmos
+% ---
+\IfStrEq{\idioma}{brazil}
+{\usepackage[algochapter,linesnumbered,boxed,portuguese,onelanguage]{algorithm2e}
+\SetAlgorithmName{Algoritmo}{algoritmo}{Lista de algoritmos}}
+{\usepackage[algochapter,linesnumbered,boxed,english,onelanguage]{algorithm2e}
+\SetAlgorithmName{Algorithm}{algorithm}{List of algorithms}}
+\SetAlgoCaptionSeparator{\ABNTEXcaptiondelim}
+\renewcommand{\AlCapFnt}{\normalfont\small}
+\renewcommand{\AlCapNameFnt}{\small}
+\renewcommand{\@algocf@capt@boxed}{above}
+\DontPrintSemicolon
+\setlength{\algomargin}{1.8em}
+\xpatchcmd\algocf@makecaption{\hbox}{\hskip\algomargin\hbox}{}{\fail}
+\SetAlgoInsideSkip{smallskip}
+\renewcommand*\listofalgorithms{\listoftoc[\listalgorithmcfname]{loa}}
+\newcommand*{\noaddvspace}{\renewcommand*{\addvspace}[1]{}}
+\addtocontents{loa}{\protect\noaddvspace}
+% ---
+
+% ---
+% Pacote para códigos de programação
+% ---
+\RequirePackage{listings}
+% Julia (Linguagem não reconhecida automaticamente pelo pacote listings)
+\lstdefinelanguage{Julia}%
+ {morekeywords={abstract,break,case,catch,const,continue,do,else,elseif,%
+ end,export,false,for,function,immutable,import,importall,if,in,%
+ macro,module,otherwise,quote,return,switch,true,try,type,typealias,%
+ using,while},%
+ sensitive=true,%
+ alsoother={\$},%
+ morecomment=[l]\#,%
+ morecomment=[n]{\#=}{=\#},%
+ morestring=[s]{"}{"},%
+ morestring=[m]{'}{'},%
+}[keywords,comments,strings]%
+% Configurações gerais
+\definecolor{mygreen}{RGB}{28,172,0} % Color values Red, Green, Blue
+\definecolor{mylilas}{RGB}{170,55,241}
+\lstset{%
+ basicstyle=\linespread{1.08}\ttfamily\footnotesize,
+ numbers=left,%
+ numberstyle={\tiny \color{black}}, % Size of the numbers
+ numbersep=9pt, % This defines how far the numbers are from the text
+ backgroundcolor=\color{gray!10},
+ tabsize=2,
+ frame=single,
+ rulecolor=\color{black!30},
+ captionpos=t,
+ belowcaptionskip=10pt,
+ escapeinside={\%*}{*)},
+ breaklines=true,%
+ breakatwhitespace=true,
+ framextopmargin=2pt,
+ framexbottommargin=2pt,
+ keywordstyle=\color{blue},%
+ morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
+ identifierstyle=\color{black},%
+ stringstyle=\color{mylilas},
+ commentstyle=\color{mygreen},%
+ extendedchars=true,
+ inputencoding=utf8,
+ showstringspaces=false,% Without this there will be a symbol in the places where there is a space
+ literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1 {ç}{{\c{c}}}1 {â}{{\^a}}1 {õ}{{\~o}}1 {ú}{{\'u}}1 {ó}{{\'o}}1 {í}{{\'i}}1 {Í}{{\'I}}1
+}
+% Configura lista de códigos
+\AtBeginDocument{%
+\renewcommand\lstlistoflistings{\bgroup
+ \let\contentsname\lstlistlistingname
+ \IfStrEq{\numb}{chap}
+ {\def\l@lstlisting##1##2{\@dottedtocline{1}{0em}{2.3em}{\lstlistingname~##1}{##2}}}
+ {\def\l@lstlisting##1##2{\@dottedtocline{1}{0em}{1.8em}{\lstlistingname~##1}{##2}}}
+ \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
+ \tableofcontents \egroup}
+}
% ---
% ---
@@ -115,18 +273,19 @@
\RequirePackage{indentfirst} % Indenta o primeiro parágrafo de cada seção.
\RequirePackage{microtype} % Para melhorias de justificação
\RequirePackage{icomma} % Configura casas decimais separadas por vírgula
-\setlength{\parindent}{3em} % Tamanho da indentação da primeira linha do parágrafo
\frenchspacing % Retira espaço extra entre as frases (após o ponto final)
-\setlength{\parskip}{3pt plus 1pt minus 1pt} % Espaço entre parágrafos
\pdfminorversion=7 % Configuração da versão do arquivo pdf produzido
-% Configurações das margens e cabeçalho
-\AtBeginDocument{
-\setlrmarginsandblock{3cm}{2cm}{*} % Margens esquerda e direita
-\setulmarginsandblock{3cm}{2cm}{*} % Margens superior e inferior
-\checkandfixthelayout[nearest] % Implementa as margens
-\pagestyle{myheadings} % Cabeçalho com linha e numeração da página
-}
+% Configurações dos cabeçalhos
+\makepagestyle{simple} % Cabeçalho com número de pagina e linha horizontal
+\makeevenhead{simple}{\footnotesize\thepage}{}{}
+\makeoddhead{simple}{}{}{\footnotesize\thepage}
+\makeheadrule{simple}{\textwidth}{\normalrulethickness}
+\makepagestyle{plain} % Cabeçalho com número de pagina e sem linha horizontal
+\makeevenhead{plain}{\footnotesize\thepage}{}{}
+\makeoddhead{plain}{}{}{\footnotesize\thepage}
+\newcommand{\textualsimples}{\ifthenelse{\equal{\ABNTEXisarticle}{true}}
+{\pagestyle{plain}}{\pagestyle{simple}\aliaspagestyle{chapter}{abntchapfirst}}}
% Espaçamento para notas de rodapé
\setlength{\skip\footins}{20pt plus 2pt minus 2pt} % Espaço entre o texto e as notas de rodapé
@@ -139,33 +298,47 @@
\setlength{\intextsep}{14pt plus 2pt minus 2pt} % Espaçamento entre texto e floats no meio da página
% Ajusta espaçamento nos ambientes itemize, enumerate, description e alineas
-\setlist[itemize]{topsep=0pt,itemsep=0pt,leftmargin=\parindent}
-\setlist[enumerate]{topsep=0pt,itemsep=0pt,leftmargin=\parindent}
-\setlist[description]{topsep=0pt,itemsep=0pt,leftmargin=\parindent}
-\setlist[alineas,1]{label={\alph*)},topsep=0pt,itemsep=0pt,leftmargin=\parindent}%
+\setlist[itemize,enumerate,description]{topsep=1pt,itemsep=0pt,parsep=1pt,partopsep=1pt,leftmargin=\parindent}
+\setlist[alineas,1]{label={\alph*)},topsep=1pt,itemsep=0pt,parsep=1pt,partopsep=1pt,leftmargin=\parindent}
-% Numeração por capítulo das figuras e tabelas
+% Numeração de figuras, tabelas, etc. por capítulo ou para o documento inteiro
+\AtBeginDocument{% Numeração por capítulo
+\IfStrEq{\numb}{chap}{
\renewcommand{\thefigure}{\thechapter.\arabic{figure}}\numberwithin{figure}{chapter}
\renewcommand{\thetable}{\thechapter.\arabic{table}}\numberwithin{table}{chapter}
-
+\renewcommand{\theequation}{\thechapter.\arabic{equation}}\numberwithin{equation}{chapter}
+}{% Numeração para o documento inteiro (padrão ABNT)
+\counterwithout{equation}{chapter}
+\counterwithout{quadro}{chapter}
+\counterwithout{lstlisting}{chapter}
+\counterwithout{algocf}{chapter}
+\counterwithout{theorem}{chapter}
+\counterwithout{lemma}{chapter}
+\counterwithout{proposition}{chapter}
+\counterwithout{corollary}{chapter}
+\counterwithout{definition}{chapter}
+\counterwithout{assumption}{chapter}
+\counterwithout{axiom}{chapter}
+\counterwithout{conjecture}{chapter}
+\counterwithout{property}{chapter}
+\counterwithout{example}{chapter}
+\counterwithout{exercise}{chapter}
+\counterwithout{problem}{chapter}
+\counterwithout{remark}{chapter}
+}}
% Modifica o tamanho da fonte e espaçamento entre linhas no ambiente verbatim
\RequirePackage{fvextra}
\renewenvironment{verbatim}{\VerbatimEnvironment
- \begin{Verbatim}[fontsize=\small,baselinestretch=1.1]%
+ \begin{Verbatim}[fontsize=\footnotesize,baselinestretch=1.08]%
}{%
\end{Verbatim}
}%
-\fvset{listparameters=\setlength{\topsep}{6pt}\setlength{\partopsep}{0pt}}
+\fvset{listparameters=\setlength{\topsep}{4pt}\setlength{\partopsep}{0pt}}
% ---
% ---
% Configurações do Sumário
% ---
-\settocdepth{subsection}
-\setlength{\cftbeforechapterskip}{5pt plus 1pt minus 1pt}
-\setlength{\cftbeforepartskip}{10pt plus 2pt minus 2pt}
-
-% Corrige fontes tipográficas dos anexos e apêndices no sumário
\ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{
\renewcommand{\cftpartfont}{\bfseries\sffamily}
\renewcommand{\cftpartpagefont}{\bfseries\sffamily}
@@ -176,6 +349,9 @@
\renewcommand{\cftchapterfont}{\bfseries\sffamily}
\renewcommand{\cftpartpagefont}{\bfseries\sffamily}
\renewcommand{\cftchapterpagefont}{\bfseries\sffamily}
+\settocdepth{subsection}
+\setlength{\cftbeforechapterskip}{5pt plus 1pt minus 1pt}
+\setlength{\cftbeforepartskip}{10pt plus 2pt minus 2pt}
}
% Corrige warning do pacote hyperref para sumário ABNT
\renewcommand{\PRIVATEapendiceconfig}[2]{%
@@ -187,9 +363,25 @@
\renewcommand{\appendixtocname}{#2}
}
\renewcommand{\appendixpagename}{#2}
- \switchchapname{#1}
+ \ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}
+ {\switchchapname{\MakeTextUppercase{#1}}}{\switchchapname{#1}}
\renewcommand*{\cftappendixname}{#1 \space}
}
+% Apendices - comando
+\renewcommand{\apendices}{%
+ \PRIVATEapendiceconfig{\apendicename}{\apendicesname}
+ \appendix
+}
+% Apendices - ambiente
+\renewenvironment{apendicesenv}{%
+ \PRIVATEapendiceconfig{\apendicename}{\apendicesname}
+ \crefalias{chapter}{appendix} % Adicionado
+ \begin{appendix}
+}{
+ \end{appendix}
+ \setboolean{abntex@apendiceousecao}{false}
+ \bookmarksetup{startatroot}
+}
% Corrige nome dos anexos nas referências cruzadas
\renewcommand{\anexos}{%
\cftinserthook{toc}{AAA}
@@ -202,7 +394,8 @@
\cftinserthook{toc}{AAA}
%\PRIVATEapendiceconfig{\anexoname}{\anexosname}
\PRIVATEapendiceconfig{\Anexoname}{\Anexosname}
- \crefalias{appendix}{annex}
+ %\crefalias{appendix}{annex}
+ \crefalias{chapter}{annex}%
\begin{appendix}
\renewcommand\theHchapter{anexochapback.\arabic{chapter}}
}{%
@@ -216,8 +409,7 @@
% Configurações das legendas
% ---
% Legenda das figuras/tabelas na parte superior, tamanho da fonte e espaçamento
-\captionsetup{figureposition=t,font={small},skip=10pt}
-
+\captionsetup{font=small,belowskip=2pt}
% Espaçamento vertical do comando \legend
\renewcommand{\legend}[1]{%
\M@gettitle{#1}%
@@ -234,8 +426,7 @@
\@makecaption{}{\ABNTEXfontereduzida #1}\par
\endgroup
}
-% Espaçamento vertical do comando \fonte
-% Também define o espaçamento do comando \nota
+% Espaçamento vertical do comando \fonte (e de \nota)
\renewcommand{\fonte}[2][\fontename]{%
\M@gettitle{#2}%
\memlegendinfo{#2}%
@@ -262,69 +453,7 @@
colorlinks=true,
allcolors=azulunb,
linktocpage,
- bookmarksdepth=4
-}
-% ---
-
-% ---
-% Pacotes para inserir algoritmos
-% ---
-\RequirePackage[chapter]{algorithm}
-\RequirePackage{algpseudocode}
-% Fix anchor names for algorithm lines
-\newcounter{Halgorithmic}
-\AtBeginEnvironment{algorithmic}{\stepcounter{Halgorithmic}}
-\ExpandArgs{c}\renewcommand{theHALG@line}{\arabic{Halgorithmic}.\arabic{ALG@line}}
-% ---
-
-% ---
-% Pacote para inserir códigos de programação
-% ---
-\RequirePackage{listings}
-
-% Julia (Linguagem não reconhecida automaticamente pelo pacote listings)
-\lstdefinelanguage{Julia}%
- {morekeywords={abstract,break,case,catch,const,continue,do,else,elseif,%
- end,export,false,for,function,immutable,import,importall,if,in,%
- macro,module,otherwise,quote,return,switch,true,try,type,typealias,%
- using,while},%
- sensitive=true,%
- alsoother={\$},%
- morecomment=[l]\#,%
- morecomment=[n]{\#=}{=\#},%
- morestring=[s]{"}{"},%
- morestring=[m]{'}{'},%
-}[keywords,comments,strings]%
-
-\definecolor{mygreen}{RGB}{28,172,0} % Color values Red, Green, Blue
-\definecolor{mylilas}{RGB}{170,55,241}
-
-\lstset{%
- basicstyle=\linespread{1.1}\ttfamily\footnotesize,
- numbers=left,%
- numberstyle={\scriptsize \color{black}}, % Size of the numbers
- numbersep=9pt, % This defines how far the numbers are from the text
- backgroundcolor=\color{gray!10},
- tabsize=2,
- frame=single,
- rulecolor=\color{black!30},
- %title=\lstname,
- captionpos=t,
- belowcaptionskip=10pt,
- escapeinside={\%*}{*)},
- breaklines=true,%
- breakatwhitespace=true,
- framextopmargin=2pt,
- framexbottommargin=2pt,
- keywordstyle=\color{blue},%
- morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
- identifierstyle=\color{black},%
- stringstyle=\color{mylilas},
- commentstyle=\color{mygreen},%
- extendedchars=true,
- inputencoding=utf8,
- showstringspaces=false,% Without this there will be a symbol in the places where there is a space
- literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1 {ç}{{\c{c}}}1 {â}{{\^a}}1 {õ}{{\~o}}1 {ú}{{\'u}}1 {ó}{{\'o}}1 {í}{{\'i}}1 {Í}{{\'I}}1
+ bookmarksdepth=4,
}
% ---
@@ -332,13 +461,27 @@
% Pacote para remissões internas
% ---
\IfStrEq{\idioma}{brazil}
-{\RequirePackage[nameinlink,noabbrev,brazilian]{cleveref}}{\RequirePackage[nameinlink,noabbrev,english]{cleveref}}
+{\RequirePackage[nameinlink,noabbrev,brazilian]{cleveref}}
+{\RequirePackage[nameinlink,noabbrev,english]{cleveref}}
\crefname{annex}{\anexoname}{\anexosname}
\Crefname{annex}{\Anexoname}{\Anexosname}
\crefname{listing}{\codigoname}{\codigosname}
\Crefname{listing}{\Codigoname}{\Codigosname}
\crefname{subsection}{\subsectionname}{\subsectionsname}
\Crefname{subsection}{\Subsectionname}{\Subsectionsname}
+\crefname{quadro}{\quadroname}{\quadrosname}
+\Crefname{quadro}{\Quadroname}{\Quadrosname}
+\newcommand\cref@smugglelabel{\let\cref@currentlabel\cref@gcurrentlabel@temp}
+\newcommand\cref@updatelabeldata[1]{%
+ \cref@constructprefix{#1}{\cref@result}%
+ \@ifundefined{cref@#1@alias}%
+ {\def\@tempa{#1}}%
+ {\def\@tempa{\csname cref@#1@alias\endcsname}}%
+ \protected@xdef\cref@gcurrentlabel@temp{%
+ [\@tempa][\arabic{#1}][\cref@result]%
+ \csname p@#1\endcsname\csname the#1\endcsname}%
+ \aftergroup\cref@smugglelabel}
+\AddToHook{label}{\cref@updatelabeldata{\@currentcounter}}
% ---
% ---
@@ -347,14 +490,14 @@
\RequirePackage{mdframed}
\theoremstyle{definition}
-\mdfdefinestyle{plainSty}{hidealllines=true,backgroundcolor=verdeunb!10}
+\mdfdefinestyle{plainSty}{hidealllines=true,backgroundcolor=verdeunb!10,innertopmargin=0pt}
\newmdtheoremenv[style=plainSty]{theorem}{\thname}[chapter] % Teorema
\newmdtheoremenv[style=plainSty]{lemma}{\lmname}[chapter] % Lema
\newmdtheoremenv[style=plainSty]{proposition}{\prname}[chapter] % Proposição
\newmdtheoremenv[style=plainSty]{corollary}{\crname}[chapter] % Corolário
\theoremstyle{definition}
-\mdfdefinestyle{defnSty}{hidealllines=true,backgroundcolor=azulunb!10}
+\mdfdefinestyle{defnSty}{hidealllines=true,backgroundcolor=azulunb!10,innertopmargin=0pt}
\newmdtheoremenv[style=defnSty]{definition}{\dfname}[chapter] % Definição
\newmdtheoremenv[style=defnSty]{assumption}{\aptname}[chapter] % Hipótese
\newmdtheoremenv[style=defnSty]{axiom}{\axname}[chapter] % Axioma
@@ -367,22 +510,24 @@
\theoremstyle{remark}
\let\proof\relax
\let\endproof\relax
-\newmdtheoremenv[linecolor=azulunb,linewidth=1pt,hidealllines=false]{remark}{\rmname}[chapter] % Observação
+\newmdtheoremenv[linecolor=azulunb,linewidth=1pt,hidealllines=false,innertopmargin=4pt]{remark}{\rmname}[chapter] % Observação
\newtheoremstyle{myproof}{\topsep}{\topsep}{}{}{\bfseries}{}{ }{\thmname{#1} \thmnote{#3}}
\theoremstyle{myproof}
\let\proof\relax
\let\endproof\relax
-\newmdtheoremenv[linecolor=verdeunb,linewidth=1pt,hidealllines=false]{proof}{\proofname.} % Prova
+\newmdtheoremenv[linecolor=verdeunb,linewidth=1pt,hidealllines=false,innertopmargin=0pt]{proof}{\proofname.} % Prova
\AtEndEnvironment{proof}{\hfill$\square$}
-\newmdtheoremenv[linecolor=azulunb,linewidth=1pt,hidealllines=false]{solution}{\sltname.} % Solução
+\newmdtheoremenv[linecolor=azulunb,linewidth=1pt,hidealllines=false,innertopmargin=0pt]{solution}{\sltname.} % Solução
% ---
% ---
% Referências bibliográficas
% ---
% Lista na bibliografia o número das páginas em que cada referência é citada
-\RequirePackage[hyperpageref]{backref}
+\IfStrEq{\idioma}{brazil}
+{\RequirePackage[hyperpageref,brazilian]{backref}}
+{\RequirePackage[hyperpageref,english]{backref}}
\AtBeginDocument{
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{\ifcase#1\nocitation\or\citedp~#2.\else\citedpp~#2.\fi}
@@ -395,13 +540,13 @@
% Gera as referências bibliográficas de acordo com as normas da ABNT
\newcommand{\bibhang}[1]{\setlength{\bibindent}{#1}}
\IfStrEq{\bibsty}{alf}{% Estilo autor-data
-\RequirePackage[alf,abnt-etal-list=0,abnt-etal-cite=3,abnt-emphasize=bf,bibjustif]{abntex2cite}
+\RequirePackage[alf,abnt-etal-list=0,abnt-etal-cite=3,abnt-emphasize=bf,abnt-missing-year=sd,bibjustif]{abntex2cite}
\renewcommand{\@biblabel}[1]{}%
\IfStrEq{\idioma}{brazil} % Seleciona o arquivo de estilo de citação
{\bibliographystyle{unbtexcite/unbtex-alf-pt}}{\bibliographystyle{unbtexcite/unbtex-alf-en}}
}{%
\IfStrEq{\bibsty}{num}{% Estilo numérico
-\RequirePackage[num,abnt-etal-list=0,abnt-emphasize=bf,bibjustif]{abntex2cite}
+\RequirePackage[num,abnt-etal-list=0,abnt-emphasize=bf,abnt-missing-year=sd,bibjustif]{abntex2cite}
\RequirePackage{cite} % Para ordenar, comprimir e colocar entre colchetes os números nas citações
\renewcommand{\@biblabel}[1]%
{%
@@ -438,7 +583,7 @@
\renewcommand\nomgroup[1]{%
\IfStrEqCase{#1}{%
{A}{\vspace{-38pt}\nomenclheader{}} % Lista de abreviaturas e siglas
- {B}{\cleardoublepage % Quebra de página
+ {B}{\PRIVATEclearpageifneeded % Quebra de página
\pretextualchapter{\hspace{-\leftmargin}\listadesimbolosname} % Lista de símbolos
\vspace{-10pt}\nomenclheader{\nomBname}} % Símbolos romanos
{C}{\nomenclheader{\nomCname}} % Símbolos gregos
@@ -467,18 +612,24 @@
% ---
% Ajusta a indentação das listas de figuras e de tabelas
% ---
-%\RequirePackage{tocbasic} % Já carregado pelo pacote nomencl
+\RequirePackage{tocbasic} % Já carregado pelo pacote nomencl
\DeclareTOCStyleEntry[
indent=0pt,
entrynumberformat=\entrynumberwithprefix{\figurename},
dynnumwidth,
]{tocline}{figure}
-
\DeclareTOCStyleEntry[
indent=0pt,
entrynumberformat=\entrynumberwithprefix{\tablename},
dynnumwidth,
]{tocline}{table}
+\DeclareTOCStyleEntry[
+ level:=figure,
+ numwidth:=figure,
+ indent=0pt,
+ entrynumberformat=\entrynumberwithprefix{\algorithmname},
+ dynnumwidth,
+]{tocline}{algocf}
\newcommand\entrynumberwithprefix[2]{#1~#2\thinspace\hfill}
% ---
@@ -493,31 +644,27 @@
}
\renewenvironment*{citacao}[1][default]{%
\begin{adjustwidth}{\ABNTEXcitacaorecuo}{0mm}%
- \ABNTEXfontereduzida%
+ \ABNTEXfontereduzida\vspace{4pt}
\begin{SingleSpace}%
\ifthenelse{\not\equal{#1}{default}}{\itshape\selectlanguage{#1}}{}%
}{%
- \end{SingleSpace}%
- \end{adjustwidth}}
+ \end{SingleSpace}\vspace{4pt}%
+ \end{adjustwidth}
+}
% ---
% ---
% Define o texto dos rótulos de acordo com o idioma principal selecionado
% ---
-\AtBeginDocument{
-\IfStrEq{\idioma}{brazil}{
-\selectlanguage{brazil}
-\renewcommand{\listfigurename}{Lista de figuras}
-\renewcommand{\bibname}{Referências}
-\renewcommand{\apendicename}{Apêndice}
-\renewcommand{\anexoname}{anexo}\renewcommand{\anexosname}{anexos}
\newcommand{\Anexoname}{Anexo}\newcommand{\Anexosname}{Anexos}
\newcommand{\subsectionname}{subseção}\newcommand{\subsectionsname}{subseções}
\newcommand{\Subsectionname}{Subseção}\newcommand{\Subsectionsname}{Subseções}
-\renewcommand{\lstlistingname}{Código}
\newcommand{\codigoname}{código}\newcommand{\codigosname}{códigos}
\newcommand{\Codigoname}{Código}\newcommand{\Codigosname}{Códigos}
-\renewcommand{\ALG@name}{Algoritmo}
+\newcommand{\algorithmname}{Algoritmo}
+\newcommand{\listquadroname}{Lista de quadros}
+\newcommand{\quadroname}{quadro}\newcommand{\quadrosname}{quadros}
+\newcommand{\Quadroname}{Quadro}\newcommand{\Quadrosname}{Quadros}
\newcommand{\thname}{Teorema}
\newcommand{\lmname}{Lema}
\newcommand{\prname}{Proposição}
@@ -532,47 +679,62 @@
\newcommand{\prbname}{Problema}
\newcommand{\sltname}{Solução}
\newcommand{\rmname}{Observação}
-\renewcommand{\proofname}{Demonstração}
\newcommand{\nocitation}{Nenhuma citação no texto.}
\newcommand{\citedp}{Citado na p.}
\newcommand{\citedpp}{Citado nas pp.}
\newcommand{\nomBname}{Símbolos romanos}
\newcommand{\nomCname}{Símbolos gregos}
-}{
-\selectlanguage{english}
+\addto\captionsbrazil{
+\renewcommand{\listfigurename}{Lista de figuras}
+\renewcommand{\apendicename}{Apêndice}
+\renewcommand{\anexoname}{anexo}\renewcommand{\anexosname}{anexos}
+\renewcommand{\lstlistingname}{Código}
+\renewcommand{\lstlistlistingname}{Lista de códigos}
+\renewcommand{\proofname}{Demonstração}
+}
+\addto\captionsenglish{
+\renewcommand{\bibname}{References}
\renewcommand{\listfigurename}{List of figures}
\renewcommand{\listtablename}{List of tables}
-\renewcommand{\bibname}{References}
-\renewcommand{\apendicename}{Appendix}\renewcommand{\apendicesname}{Appendices}
+\renewcommand{\apendicename}{Appendix}
+\renewcommand{\apendicesname}{Appendices}
\renewcommand{\anexoname}{annex}\renewcommand{\anexosname}{annexes}
-\newcommand{\Anexoname}{Annex}\newcommand{\Anexosname}{Annexes}
-\newcommand{\subsectionname}{subsection}\newcommand{\subsectionsname}{subsections}
-\newcommand{\Subsectionname}{Subsection}\newcommand{\Subsectionsname}{Subsections}
+\renewcommand{\Anexoname}{Annex}\renewcommand{\Anexosname}{Annexes}
+\renewcommand{\subsectionname}{subsection}\renewcommand{\subsectionsname}{subsections}
+\renewcommand{\Subsectionname}{Subsection}\renewcommand{\Subsectionsname}{Subsections}
\renewcommand{\lstlistingname}{Code}
-\newcommand{\codigoname}{code}\newcommand{\codigosname}{codes}
-\newcommand{\Codigoname}{Code}\newcommand{\Codigosname}{Codes}
-\renewcommand{\ALG@name}{Algorithm}
-\newcommand{\thname}{Theorem}
-\newcommand{\lmname}{Lemma}
-\newcommand{\prname}{Proposition}
-\newcommand{\crname}{Corollary}
-\newcommand{\aptname}{Assumption}
-\newcommand{\dfname}{Definition}
-\newcommand{\axname}{Axiom}
-\newcommand{\cjcname}{Conjecture}
-\newcommand{\prpname}{Property}
-\newcommand{\expname}{Example}
-\newcommand{\excname}{Exercise}
-\newcommand{\prbname}{Problem}
-\newcommand{\sltname}{Solution}
-\newcommand{\rmname}{Remark}
+\renewcommand{\lstlistlistingname}{List of codes}
+\renewcommand{\codigoname}{code}\renewcommand{\codigosname}{codes}
+\renewcommand{\Codigoname}{Code}\renewcommand{\Codigosname}{Codes}
+\renewcommand{\algorithmname}{Algorithm}
+\renewcommand{\listquadroname}{List of charts}
+\renewcommand{\quadroname}{chart}\renewcommand{\quadrosname}{charts}
+\renewcommand{\Quadroname}{Chart}\renewcommand{\Quadrosname}{Charts}
+\renewcommand{\thname}{Theorem}
+\renewcommand{\lmname}{Lemma}
+\renewcommand{\prname}{Proposition}
+\renewcommand{\crname}{Corollary}
+\renewcommand{\aptname}{Assumption}
+\renewcommand{\dfname}{Definition}
+\renewcommand{\axname}{Axiom}
+\renewcommand{\cjcname}{Conjecture}
+\renewcommand{\prpname}{Property}
+\renewcommand{\expname}{Example}
+\renewcommand{\excname}{Exercise}
+\renewcommand{\prbname}{Problem}
+\renewcommand{\sltname}{Solution}
+\renewcommand{\rmname}{Remark}
\renewcommand{\proofname}{Proof}
-\newcommand{\nocitation}{No citations.}
-\newcommand{\citedp}{Cit. on p.}
-\newcommand{\citedpp}{Cit. on pp.}
-\newcommand{\nomBname}{Roman letters}
-\newcommand{\nomCname}{Greek letters}
-}}
+\renewcommand{\nocitation}{No citations.}
+\renewcommand{\citedp}{Cit. on p.}
+\renewcommand{\citedpp}{Cit. on pp.}
+\renewcommand{\nomBname}{Roman letters}
+\renewcommand{\nomCname}{Greek letters}
+}
+\AtBeginDocument{
+\IfStrEq{\idioma}{brazil}
+{\selectlanguage{brazil}}{\selectlanguage{english}}
+}
% ---
% ------------------------------------------------------------------------
@@ -630,16 +792,16 @@
% ---
% ---
-% Imprime capa
+% Imprime capa e contracapa
% ---
+\RequirePackage{pdfpages}
+% Imprime capa
\renewcommand{\imprimircapa}{%
\hypersetup{pageanchor=false}
-\setlrmargins{*}{*}{1} % Margens laterais iguais para a capa
-\setulmarginsandblock{3cm}{2cm}{*}
-\checkandfixthelayout[fixed]
+\begin{adjustwidth}{0cm}{1cm}
\begin{capa}%
- \center
- \AddToShipoutPicture*{\BackgroundPic}
+ \begin{center}
+ \AddToShipoutPictureBG*{\includegraphics[height=\paperheight]{unbtexcover/capa.pdf}}
\vspace*{7.5cm}
{\LARGE\sffamily\bfseries\instituicaoi \\ \instituicaoii \\
\abntex@ifnotempty{\instituicaoiii}{\instituicaoiii}\par}
@@ -654,33 +816,34 @@
{\Large\autorinome\ \autorisobrenome \\
\abntex@ifnotempty{\autoriinome}{\autoriinome\ \autoriisobrenome}\par}
\vfill\vfill
- \begin{center}
\color{white}{\sffamily\large\MakeUppercase \imprimirtipotrabalho \\[2pt]
\MakeUppercase\imprimircurso \\
% Define o espaçamento vertical entre o nome do curso e o local (Brasília)
\autotitle[1]{\MakeUppercase\imprimircurso}
\ifdefined\decvspace \vspace{2pt} \else \vspace{20pt} \fi
\imprimirlocal \\ \imprimirano\par}
- \end{center}
+ \end{center}
\end{capa}
% Reestabelece as margens
-\setlrmarginsandblock{3cm}{2cm}{*}
-\setulmarginsandblock{3cm}{2cm}{*}
-\checkandfixthelayout[nearest]
+\end{adjustwidth}
\cleardoublepage
\hypersetup{pageanchor=true}
+\AtEndDocument{\imprimircontracapa}
}
-
-% Figura de fundo da capa
-\RequirePackage{pdfpages} % Também funciona com o pacote eso-pic
-\newcommand\BackgroundPic{%
- \put(0,0){%
- \parbox[b][\paperheight]{\paperwidth}{%
- \vfill
- \centering \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{capa_fundo.pdf}%
- \vfill
- }
- }
+% Imprime contracapa
+\newcommand{\imprimircontracapa}{%
+\cleardoublepage
+\pagestyle{empty}
+\if@twoside
+\addtocounter{page}{-2}
+\ifoddpage\else\ \fi
+\else
+\addtocounter{page}{-1}
+\fi
+\hypersetup{pageanchor=false}
+\newpage
+\includepdf[height=\paperheight]{unbtexcover/contracapa.pdf}
+\hypersetup{pageanchor=true}
}
% ---
@@ -692,7 +855,6 @@
{\LARGE\sffamily\bfseries \instituicaoi \\ \instituicaoii \\
\abntex@ifnotempty{\instituicaoiii}{\instituicaoiii}\par}
\vfill\vfill
-
\begin{center}
% Define o tamanho da fonte do título
\ifthenelse{\equal{\imprimirtituloestrangeiro}{}}
@@ -700,11 +862,9 @@
{\autotitle[4]{\bfseries\imprimirtituloestrangeiro}{\color{verdeunb}\titleformat\bfseries \imprimirtituloestrangeiro\par}}
\end{center}
\vfill
-
{\Large\autorinome\ \autorisobrenome \\
\abntex@ifnotempty{\autoriinome}{\autoriinome\ \autoriisobrenome}\par}
\vfill
-
\abntex@ifnotempty{\imprimirpreambulo}{%
\begin{flushright}
\begin{minipage}{.5\textwidth}
@@ -714,13 +874,10 @@
\end{otherlanguage*}}
\end{minipage}%
\end{flushright}
-}%
-\vfill
-
-{\large \orientname: \orienttitulo\ \orientnome\ \orientsobrenome \\
-\abntex@ifnotempty{\coorientnome}{\coorientname: \coorienttitulo\ \coorientnome\ \coorientsobrenome}\par}
+\vfill}%
+{\abntex@ifnotempty{\orientnome}{\large \orientname: \orienttitulo\ \orientnome\ \orientsobrenome \\
+\abntex@ifnotempty{\coorientnome}{\coorientname: \coorienttitulo\ \coorientnome\ \coorientsobrenome}\par}}
\vfill
-
{\sffamily\large\abntex@ifnotempty{\imprimirpublicacao}{\imprimirpublicacao \\ \vfill} \imprimirlocal \\ \imprimirano\par}
\end{center}
}
@@ -753,7 +910,7 @@
\\ \cutter
\hspace*{2em}\noindent\begin{otherlanguage*}{brazil}\imprimirtipotrabalho\ (\imprimircurso)\ \texttt{-{}-} \instituicaoi, \imprimirano.\end{otherlanguage*} \\ \cutter
\\ \cutter
-\hspace*{2em}\noindent\IfStrEq{\idioma}{brazil}{1. \pchaveinome. 2. \pchaveiinome. 3. \pchaveiiinome. \ifthenelse{\equal{\pchaveivnome}{}}{}{4. \pchaveivnome. \ifthenelse{\equal{\pchavevnome}{}}{}{5. \pchavevnome.}}}{1. \kwordinome. 2. \kwordiinome. 3. \kwordiiinome. \ifthenelse{\equal{\kwordivnome}{}}{}{4. \kwordivnome. \ifthenelse{\equal{\kwordvnome}{}}{}{5. \kwordvnome.}}}%
+\hspace*{2em}\noindent\IfStrEq{\idioma}{brazil}{1. \expandafter\MakeUppercase\pchaveinome. 2. \expandafter\MakeUppercase\pchaveiinome. 3. \expandafter\MakeUppercase\pchaveiiinome. \ifthenelse{\equal{\pchaveivnome}{}}{}{4. \expandafter\MakeUppercase\pchaveivnome. \ifthenelse{\equal{\pchavevnome}{}}{}{5. \expandafter\MakeUppercase\pchavevnome.~}}}{1. \expandafter\MakeUppercase\kwordinome. 2. \expandafter\MakeUppercase\kwordiinome. 3. \expandafter\MakeUppercase\kwordiiinome. \ifthenelse{\equal{\kwordivnome}{}}{}{4. \expandafter\MakeUppercase\kwordivnome. \ifthenelse{\equal{\kwordvnome}{}}{}{5. \expandafter\MakeUppercase\kwordvnome.~}}}%
\begin{otherlanguage*}{brazil}{\ifthenelse{\equal{\autoriinome}{}}{\ifthenelse{\equal{\coorientnome}{}}{I. \orientsobrenome, \orientnome, orient. II. Título.}{I. \orientsobrenome, \orientnome, orient. II. \coorientsobrenome, \coorientnome, coorient. III. Título.}}{\ifthenelse{\equal{\coorientnome}{}}{I. \autoriisobrenome, \autoriinome. II. \orientsobrenome, \orientnome, orient. III. Título.}{I. \autoriisobrenome, \autoriinome. II. \orientsobrenome, \orientnome, orient. III. \coorientsobrenome, \coorientnome, coorient. IV. Título.}}}\end{otherlanguage*}
\IfInteger{\imprimircutter}{\end{tabular}}{}
\end{minipage}}
@@ -781,11 +938,9 @@
{\color{verdeunb}\titleformat\bfseries \StrDel{\imprimirtitulo}{\\}\par}
\end{center}
\vfill
-
{\large\autorinome\ \autorisobrenome \\[2pt]
\abntex@ifnotempty{\autoriinome}{\autoriinome\ \autoriisobrenome}\par}
\vfill
-
\abntex@ifnotempty{\imprimirpreambulo}{%
\begin{flushright}
\begin{minipage}{.5\textwidth}
@@ -797,7 +952,6 @@
\end{flushright}
}%
\vspace{24pt}
-
\raggedright{Trabalho aprovado. \imprimirlocal, \imprimirdia\ de \imprimirmes\ de \imprimirano:}
{%
\assinatura{\textbf{\membrodabancainome} \\ \membrodabancaifuncaonome}
@@ -808,6 +962,7 @@
}
\end{center}
\end{folhadeaprovacao}
+\cleardoublepage
}
% ---
@@ -817,27 +972,25 @@
% ---
\newenvsc{DedicatoriaAutorI}[store-env=dedicatoriaautori]
\newenvsc{DedicatoriaAutorII}[store-env=dedicatoriaautorii]
+
\newcommand{\imprimirdedicatoria}{
\begin{dedicatoria}
\centering
\vspace*{\fill}
-
% Primeiro autor
-{\itshape\getstored{dedicatoriaautori}}
-
+{\itshape\getstored{dedicatoriaautori}}\par
\ifthenelse{\equal{\autoriinome}{}}{}{
-\vspace{1cm}
+\vspace{\baselineskip}
\autorinome\ \autorisobrenome \par
\vspace*{\fill}
-
% Segundo autor
-{\itshape\getstored{dedicatoriaautorii}}
-
-\vspace{1cm}
+{\itshape\getstored{dedicatoriaautorii}}\par
+\vspace{\baselineskip}
\autoriinome\ \autoriisobrenome
}
\vspace*{\fill}
\end{dedicatoria}
+\cleardoublepage
}
% ---
@@ -846,32 +999,28 @@
% ---
\newenvsc{AgradecimentosAutorI}[store-env=agradecimentosautori]
\newenvsc{AgradecimentosAutorII}[store-env=agradecimentosautorii]
-\newcommand{\idiomaagradecimentos}[1]{\def\acklang{#1}}
+\newcommand{\idiomaagradecimentos}[1]{\def\acklang{#1}}
\newcommand{\imprimiragradecimentos}{
% Define o título da seção de agradecimentos
\IfStrEq{\acklang}{brazil}{
\renewcommand{\agradecimentosname}{Agradecimentos}
}{% Caso os agradecimentos sejam escritos em inglês
\renewcommand{\agradecimentosname}{Acknowledgements}}
-
\begin{agradecimentos}
-
% Primeiro autor
-\getstored{agradecimentosautori}
-
+\getstored{agradecimentosautori}\par
+\vspace{\baselineskip}
\ifthenelse{\equal{\autoriinome}{}}{}{
-\vspace{1cm}
-\hfill \autorinome\ \autorisobrenome
-\vspace{1cm}
-
+\hfill \autorinome\ \autorisobrenome \par
+\vspace{2\baselineskip}
% Segundo autor
-\getstored{agradecimentosautorii}
-
-\vspace{1cm}
+\getstored{agradecimentosautorii}\par
+\vspace{\baselineskip}
\hfill \autoriinome\ \autoriisobrenome
}
\end{agradecimentos}
+\cleardoublepage
}
% ---
@@ -881,44 +1030,122 @@
\newenvsc{Epigrafe}[store-env=epigrafe]
\newcommand{\imprimirepigrafe}{
\begin{epigrafe}
-\getstored{epigrafe}
+\getstored{epigrafe}\par
\end{epigrafe}
+\cleardoublepage
}
% ---
% ---
-% Imprime resumo (em português)
+% Imprime resumo e abstract
% ---
+% Resumo
\newenvsc{Resumo}[store-env=resumo]
\newcommand{\imprimirresumo}{
-\newpage
\setlength{\absparsep}{\parsep}
\begin{resumo}[Resumo]\vspace{\baselineskip}
\begin{otherlanguage*}{brazil}
-\getstored{resumo}
-\vspace{\onelineskip}
-
-{\sffamily\bfseries Palavras-chave:} \pchaveinome. \pchaveiinome. \pchaveiiinome. \ifthenelse{\equal{\pchaveivnome}{}}{}{\pchaveivnome. \ifthenelse{\equal{\pchavevnome}{}}{}{\pchavevnome.}}
+\getstored{resumo}\par
+\vspace{\baselineskip}
+{\sffamily\bfseries Palavras-chave:} \pchaveinome; \pchaveiinome; \pchaveiiinome\ifthenelse{\equal{\pchaveivnome}{}}{.}{;~\pchaveivnome\ifthenelse{\equal{\pchavevnome}{}}{.}{;~\pchavevnome.}}
\end{otherlanguage*}
+\vspace{\baselineskip}
\end{resumo}
+\PRIVATEclearpageifneeded
}
-% ---
-
-% ---
-% Imprime resumo (em inglês)
-% ---
+% Abstract
\newenvsc{Abstract}[store-env=abstract]
\newcommand{\imprimirabstract}{
-\newpage
\setlength{\absparsep}{\parsep}
\begin{resumo}[Abstract]\vspace{\baselineskip}
\begin{otherlanguage*}{english}
-\getstored{abstract}
-\vspace{\onelineskip}
-
-{\sffamily\bfseries Keywords:} \kwordinome. \kwordiinome. \kwordiiinome. \ifthenelse{\equal{\kwordivnome}{}}{}{\kwordivnome. \ifthenelse{\equal{\kwordvnome}{}}{}{\kwordvnome.}}
+\getstored{abstract}\par
+\vspace{\baselineskip}
+{\sffamily\bfseries Keywords:} \kwordinome; \kwordiinome; \kwordiiinome\ifthenelse{\equal{\kwordivnome}{}}{.}{;~\kwordivnome\ifthenelse{\equal{\kwordvnome}{}}{.}{;~\kwordvnome.}}
\end{otherlanguage*}
\end{resumo}
+\vspace{\baselineskip}
+\PRIVATEclearpageifneeded
+}
+% Insere resumo e abstract
+\newcommand{\imprimirresumos}{
+\IfStrEq*{\idioma}{brazil}
+{\imprimirresumo
+\imprimirabstract}
+{\imprimirabstract
+\imprimirresumo}
+}
+% ---
+
+% ---
+% Imprime lista de figuras
+% ---
+\newcommand{\imprimirlistadefiguras}{
+\pdfbookmark[0]{\listfigurename}{lof}
+\listoffigures*
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime lista de quadros
+% ---
+\newcommand{\imprimirlistadequadros}{
+\pdfbookmark[0]{\listquadroname}{loq}
+\listofquadros*
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime lista de tabelas
+% ---
+\newcommand{\imprimirlistadetabelas}{
+\pdfbookmark[0]{\listtablename}{lot}
+\listoftables*
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime lista de algoritmos
+% ---
+\newcommand{\imprimirlistadealgoritmos}{
+\pdfbookmark[0]{\listalgorithmcfname}{loa}
+\listofalgorithms
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime lista de códigos
+% ---
+\newcommand{\imprimirlistadecodigos}{
+\pdfbookmark[0]{\lstlistlistingname}{lol}
+\begin{KeepFromToc} % Não inclui a lista de códigos no sumário
+\lstlistoflistings
+\end{KeepFromToc}
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime lista de abreviaturas e siglas e lista de símbolos
+% ---
+\newcommand{\imprimirlistadesiglasesimbolos}{
+\PRIVATEbookmarkthis{\listadesiglasname}
+\printnomenclature
+\PRIVATEclearpageifneeded
+}
+% ---
+
+% ---
+% Imprime sumário
+% ---
+\newcommand{\imprimirsumario}{
+\pdfbookmark[0]{\contentsname}{toc}
+\tableofcontents*
+\PRIVATEclearpageifneeded
}
% ---
@@ -950,4 +1177,40 @@
\fi
\newcommand{\titleformat}{\testfontsize}
}
+% ---
+
+% ---
+% Configuracoes para definir idioma principal do documento
+% ---
+\def\HyLang@DeclareLang#1#2#3{%
+ \expandafter\HyLang@addto
+ \csname extras#1\expandafter\endcsname
+ \csname HyLang@#2\endcsname
+ \begingroup
+ \edef\x{\endgroup
+ #3%
+ }%
+ \x
+ \@namedef{HyLang@#1@done}{}%
+ \begingroup
+ \edef\x##1##2{%
+ \noexpand\ifx##2\relax
+ \errmessage{No definitions for language #2' found!}%
+ \noexpand\fi
+ \endgroup
+ \noexpand\define@key{Hyp}{#1}[]{%
+ \noexpand\@ifundefined{HyLang@#1@done}{%
+ \noexpand\HyLang@addto{\noexpand##1}{\noexpand##2}%
+ #3%
+ \noexpand\@namedef{HyLang@#1@done}{}%
+ }{}%
+ }%
+ }%
+ \expandafter\x\csname extras#1\expandafter\endcsname
+ \csname HyLang@#2\endcsname
+}
+\HyLang@DeclareLang{english}{english}{}
+\HyLang@DeclareLang{brazil}{portuges}{}
+\HyLang@DeclareLang{brazilian}{portuges}{}
+\HyLang@DeclareLang{portuguese}{portuges}{}
% --- \ No newline at end of file
diff --git a/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst b/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst
index 8020e2e98d..3c4fa457be 100644
--- a/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst
+++ b/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst
@@ -6,13 +6,13 @@
%% https://github.com/abntex/abntex2/issues/97
%%
%% abntex2-alf.bst, v-1.9.7 laurocesar
-%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/
+%% Copyright 2012-2018 by abnTeX2 group at https://www.abntex.net.br/
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3 of this license or (at
%% your option) any later version.
%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
%%
@@ -20,7 +20,7 @@
%%
%% The Current Maintainer of this work is the abnTeX2 team, led by Lauro
%% César Araujo. Further information are available on
-%% http://www.abntex.net.br/
+%% https://www.abntex.net.br/
%%
ENTRY
@@ -33,7 +33,7 @@ ENTRY
isbn issn journal key month note marginnote number organization
org-short pages pagename
publisher reprinted-from reprinted-text school
- series subtitle section title type url urlaccessdate
+ series subtitle section title type doi url urlaccessdate
volume year year-presented
abnt-and-type
abnt-doi abnt-dont-use-etal
@@ -249,7 +249,7 @@ FUNCTION {bbl.edby} { "edited by" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
-FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
+FUNCTION {bbl.doi.url} {"https://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
@@ -261,14 +261,14 @@ if$}
FUNCTION {bbl.master} { "Master of Science" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
-{""} %{"[s.d.]"} %#1
-{""} %#0
+ {"[\emph{n.d.}]"} %#1
+ {""}
if$}
FUNCTION {bbl.monography} { "Monography" }
FUNCTION {bbl.mthesis} { "Dissertation" }
-FUNCTION {bbl.no.address} {""}%{"[S.l.]"}
-FUNCTION {bbl.no.address.no.publisher} {""}%{"[S.l.: s.n.]"}
-FUNCTION {bbl.no.publisher} {""}%{"[s.n.]"}
+FUNCTION {bbl.no.address} {"[\emph{S.l.}]"}
+FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.}: \emph{s.n.}]"}
+FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "of" }
@@ -399,6 +399,7 @@ FUNCTION {write.entry.verbatim2}
}
FUNCTION {write.entry.verbatim3}
{
+ "doi" doi write.field.verbatim
"url" url write.field.verbatim
"urlaccessdate" urlaccessdate write.field.verbatim
"volume" volume write.field.verbatim
@@ -610,6 +611,13 @@ FUNCTION {format.issn}
if$
}
+FUNCTION {format.doi}
+{ doi "doi" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {new.block duplicate$ "DOI \href{https://dx.doi.org/" swap$ * "}{" * swap$ * "}" *}
+ if$
+}
+
FUNCTION {format.note}
{ note empty$
{ "" }
@@ -899,7 +907,7 @@ FUNCTION {format.journal.pages}
}
FUNCTION {get.url.type}
-{s #1 #5 substring$ "http:" = {http.url}
+{s #1 #5 substring$ "https:" = {http.url}
{s #1 #6 substring$ "https:" = {http.url}
{s #1 #5 substring$ "file:" = {file.url}
{s #1 #4 substring$ "ftp:" = {ftp.url}
@@ -1087,8 +1095,8 @@ FUNCTION {format.type}
FUNCTION {format.year}
{year empty$
{ "campo year vazio ou faltando em " cite$ *
- abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$
- abnt.missing.year {", " } {""} if$ bbl.missing.year *}
+ abnt.missing.year {" (reference with [n.d.] no data)" *} 'skip$ if$ warning$
+ abnt.missing.year {" " } {""} if$ bbl.missing.year *}
{year n.dashify "year" bibinfo.check}
if$
}
@@ -1106,8 +1114,7 @@ FUNCTION {format.field.address}
{bbl.no.address.no.publisher}
{address empty$
%if an url is present we don't give a missing address "[s.l.]" notice
- %{url empty$ {bbl.no.address ": "} {"" ""} if$} % remove : após [s.l.] em book
- {url empty$ {bbl.no.address " "} {"" ""} if$}
+ {url empty$ {bbl.no.address ": "} {"" ""} if$}
{address ": "}
if$
t empty$
@@ -1645,6 +1652,7 @@ FUNCTION {article}
non.iso.date
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1668,6 +1676,7 @@ FUNCTION {book}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1687,6 +1696,7 @@ FUNCTION {booklet}
format.volume.number.series output new.sentence
format.note output
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1712,6 +1722,7 @@ FUNCTION {inbook}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1732,6 +1743,7 @@ FUNCTION {incollection}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1751,6 +1763,7 @@ FUNCTION {inproceedings}
format.isbn output
format.issn output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1774,6 +1787,7 @@ FUNCTION {journalpart}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1793,6 +1807,7 @@ FUNCTION {manual}
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1814,6 +1829,7 @@ FUNCTION {misc}
format.howpublished output new.block
format.volume.number.series output new.sentence
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
empty.misc.check
@@ -1878,6 +1894,7 @@ FUNCTION {thesis}
abnt.thesis.year #0 = abnt.thesis.year #2 = or
{format.date "year" output.check new.sentence} 'skip$ if$
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1912,6 +1929,7 @@ FUNCTION {proceedings}
format.isbn output
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1927,6 +1945,7 @@ FUNCTION {unpublished}
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
+ format.doi output new.block
format.url
fin.entry
}
@@ -2039,7 +2058,7 @@ FUNCTION {set.default.abnt.variables}
#0 'abnt.full.initials :=
#0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style
#1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
- #0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]"
+ #0 'abnt.missing.year := %#0 "void"; #1 "[n.d.]"
#0 'repeated.author :=
#0 'abnt.repeated.author.omit :=
#0 'abnt.repeated.title.omit :=
@@ -2130,7 +2149,7 @@ FUNCTION {begin.bib}
'skip$ if$
"\abntbstabout{" abnt.bst.revision * "}" * write$ newline$
% Ajusta o espaçamento entre linhas nas referências bibliográficas
-"\setlength{\baselineskip}{1.2\baselineskip}" write$ newline$
+"\setlength{\baselineskip}{1.25\baselineskip}" write$ newline$
"\setlength{\itemsep}{0pt}" write$ newline$
}
EXECUTE {begin.bib}
@@ -2143,7 +2162,7 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
FUNCTION {apresentacao}
{ "+---------------------------------------------------------+"
- "| http://www.abntex.net.br/ |"
+ "| https://www.abntex.net.br/ |"
"| Em caso de dúvidas ou problemas com este estilo procure |"
abnt.alf
{"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *}
diff --git a/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-pt.bst b/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-pt.bst
index aa2e3d645f..0dc6c38a22 100644
--- a/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-pt.bst
+++ b/macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-pt.bst
@@ -4,13 +4,13 @@
%% scheme for documents written in Portuguese.
%%
%% abntex2-alf.bst, v-1.9.7 laurocesar
-%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/
+%% Copyright 2012-2018 by abnTeX2 group at https://www.abntex.net.br/
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3 of this license or (at
%% your option) any later version.
%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
%%
@@ -18,7 +18,7 @@
%%
%% The Current Maintainer of this work is the abnTeX2 team, led by Lauro
%% César Araujo. Further information are available on
-%% http://www.abntex.net.br/
+%% https://www.abntex.net.br/
%%
ENTRY
@@ -31,7 +31,7 @@ ENTRY
isbn issn journal key month note marginnote number organization
org-short pages pagename
publisher reprinted-from reprinted-text school
- series subtitle section title type url urlaccessdate
+ series subtitle section title type doi url urlaccessdate
volume year year-presented
abnt-and-type
abnt-doi abnt-dont-use-etal
@@ -247,7 +247,7 @@ FUNCTION {bbl.edby} { "editado por" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
-FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
+FUNCTION {bbl.doi.url} {"https://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
@@ -265,7 +265,7 @@ FUNCTION {bbl.missing.year}
FUNCTION {bbl.monography} { "Monografia" }
FUNCTION {bbl.mthesis} { "Disserta\c{c}\~{a}o" }
FUNCTION {bbl.no.address} {"[\emph{S.l.}]"}
-FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.: s.n.}]"}
+FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.}: \emph{s.n.}]"}
FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
@@ -397,6 +397,7 @@ FUNCTION {write.entry.verbatim2}
}
FUNCTION {write.entry.verbatim3}
{
+ "doi" doi write.field.verbatim
"url" url write.field.verbatim
"urlaccessdate" urlaccessdate write.field.verbatim
"volume" volume write.field.verbatim
@@ -608,6 +609,13 @@ FUNCTION {format.issn}
if$
}
+FUNCTION {format.doi}
+{ doi "doi" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {new.block duplicate$ "DOI \href{https://dx.doi.org/" swap$ * "}{" * swap$ * "}" *}
+ if$
+}
+
FUNCTION {format.note}
{ note empty$
{ "" }
@@ -897,7 +905,7 @@ FUNCTION {format.journal.pages}
}
FUNCTION {get.url.type}
-{s #1 #5 substring$ "http:" = {http.url}
+{s #1 #5 substring$ "https:" = {http.url}
{s #1 #6 substring$ "https:" = {http.url}
{s #1 #5 substring$ "file:" = {file.url}
{s #1 #4 substring$ "ftp:" = {ftp.url}
@@ -1085,8 +1093,8 @@ FUNCTION {format.type}
FUNCTION {format.year}
{year empty$
{ "campo year vazio ou faltando em " cite$ *
- abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$
- abnt.missing.year {", " } {""} if$ bbl.missing.year *}
+ abnt.missing.year {" (referencia com [s.d.] sem data)" *} 'skip$ if$ warning$
+ abnt.missing.year {" " } {""} if$ bbl.missing.year *}
{year n.dashify "year" bibinfo.check}
if$
}
@@ -1641,6 +1649,7 @@ FUNCTION {article}
non.iso.date
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1664,6 +1673,7 @@ FUNCTION {book}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1683,6 +1693,7 @@ FUNCTION {booklet}
format.volume.number.series output new.sentence
format.note output
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1708,6 +1719,7 @@ FUNCTION {inbook}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1728,6 +1740,7 @@ FUNCTION {incollection}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1747,6 +1760,7 @@ FUNCTION {inproceedings}
format.isbn output
format.issn output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1770,6 +1784,7 @@ FUNCTION {journalpart}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1789,6 +1804,7 @@ FUNCTION {manual}
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1810,6 +1826,7 @@ FUNCTION {misc}
format.howpublished output new.block
format.volume.number.series output new.sentence
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
empty.misc.check
@@ -1874,6 +1891,7 @@ FUNCTION {thesis}
abnt.thesis.year #0 = abnt.thesis.year #2 = or
{format.date "year" output.check new.sentence} 'skip$ if$
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1908,6 +1926,7 @@ FUNCTION {proceedings}
format.isbn output
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1923,6 +1942,7 @@ FUNCTION {unpublished}
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
+ format.doi output new.block
format.url
fin.entry
}
@@ -2126,7 +2146,7 @@ FUNCTION {begin.bib}
'skip$ if$
"\abntbstabout{" abnt.bst.revision * "}" * write$ newline$
% Ajusta o espaçamento entre linhas nas referências bibliográficas
-"\setlength{\baselineskip}{1.2\baselineskip}" write$ newline$
+"\setlength{\baselineskip}{1.25\baselineskip}" write$ newline$
"\setlength{\itemsep}{0pt}" write$ newline$
}
EXECUTE {begin.bib}
@@ -2139,7 +2159,7 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
FUNCTION {apresentacao}
{ "+---------------------------------------------------------+"
- "| http://www.abntex.net.br/ |"
+ "| https://www.abntex.net.br/ |"
"| Em caso de dúvidas ou problemas com este estilo procure |"
abnt.alf
{"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *}
diff --git a/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-en.bst b/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-en.bst
index 214bf6dc40..570f8f93b3 100644
--- a/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-en.bst
+++ b/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-en.bst
@@ -6,13 +6,13 @@
%% https://github.com/abntex/abntex2/issues/97
%%
%% abntex2-num.bst, v-1.9.7 laurocesar
-%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/
+%% Copyright 2012-2018 by abnTeX2 group at https://www.abntex.net.br/
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3 of this license or (at
%% your option) any later version.
%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
%%
@@ -20,7 +20,7 @@
%%
%% The Current Maintainer of this work is the abnTeX2 team, led by Lauro
%% César Araujo. Further information are available on
-%% http://www.abntex.net.br/
+%% https://www.abntex.net.br/
%%
ENTRY
@@ -33,7 +33,7 @@ ENTRY
isbn issn journal key month note marginnote number organization
org-short pages pagename
publisher reprinted-from reprinted-text school
- series subtitle section title type url urlaccessdate
+ series subtitle section title type doi url urlaccessdate
volume year year-presented
abnt-and-type
abnt-doi abnt-dont-use-etal
@@ -249,7 +249,7 @@ FUNCTION {bbl.edby} { "edited by" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
-FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
+FUNCTION {bbl.doi.url} {"https://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
@@ -261,14 +261,14 @@ if$}
FUNCTION {bbl.master} { "Master of Science" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
- {""} %{"[s.d.]"} %#1
+ {"[\emph{n.d.}]"} %#1
{""} %#0
if$}
FUNCTION {bbl.monography} { "Monography" }
FUNCTION {bbl.mthesis} { "Dissertation" }
-FUNCTION {bbl.no.address} {""}%{"[S.l.]"}
-FUNCTION {bbl.no.address.no.publisher} {""}%{"[S.l.: s.n.]"}
-FUNCTION {bbl.no.publisher} {""}%{"[s.n.]"}
+FUNCTION {bbl.no.address} {"[\emph{S.l.}]"}
+FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.}: \emph{s.n.}]"}
+FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "of" }
@@ -399,6 +399,7 @@ FUNCTION {write.entry.verbatim2}
}
FUNCTION {write.entry.verbatim3}
{
+ "doi" doi write.field.verbatim
"url" url write.field.verbatim
"urlaccessdate" urlaccessdate write.field.verbatim
"volume" volume write.field.verbatim
@@ -610,6 +611,13 @@ FUNCTION {format.issn}
if$
}
+FUNCTION {format.doi}
+{ doi "doi" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {new.block duplicate$ "DOI \href{https://dx.doi.org/" swap$ * "}{" * swap$ * "}" *}
+ if$
+}
+
FUNCTION {format.note}
{ note empty$
{ "" }
@@ -899,7 +907,7 @@ FUNCTION {format.journal.pages}
}
FUNCTION {get.url.type}
-{s #1 #5 substring$ "http:" = {http.url}
+{s #1 #5 substring$ "https:" = {http.url}
{s #1 #6 substring$ "https:" = {http.url}
{s #1 #5 substring$ "file:" = {file.url}
{s #1 #4 substring$ "ftp:" = {ftp.url}
@@ -1086,8 +1094,8 @@ FUNCTION {format.type}
FUNCTION {format.year}
{year empty$
{ "campo year vazio ou faltando em " cite$ *
- abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$
- abnt.missing.year {", " } {""} if$ bbl.missing.year *}
+ abnt.missing.year {" (reference with [n.d.] no data)" *} 'skip$ if$ warning$
+ abnt.missing.year {" " } {""} if$ bbl.missing.year *}
{year n.dashify "year" bibinfo.check}
if$
}
@@ -1637,6 +1645,7 @@ FUNCTION {article}
non.iso.date
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1660,6 +1669,7 @@ FUNCTION {book}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1679,6 +1689,7 @@ FUNCTION {booklet}
format.volume.number.series output new.sentence
format.note output
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1704,6 +1715,7 @@ FUNCTION {inbook}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1724,6 +1736,7 @@ FUNCTION {incollection}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1743,6 +1756,7 @@ FUNCTION {inproceedings}
format.isbn output
format.issn output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1766,6 +1780,7 @@ FUNCTION {journalpart}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1785,6 +1800,7 @@ FUNCTION {manual}
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1806,6 +1822,7 @@ FUNCTION {misc}
format.howpublished output new.block
format.volume.number.series output new.sentence
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
empty.misc.check
@@ -1870,6 +1887,7 @@ FUNCTION {thesis}
abnt.thesis.year #0 = abnt.thesis.year #2 = or
{format.date "year" output.check new.sentence} 'skip$ if$
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1904,6 +1922,7 @@ FUNCTION {proceedings}
format.isbn output
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1919,6 +1938,7 @@ FUNCTION {unpublished}
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
+ format.doi output new.block
format.url
fin.entry
}
@@ -2031,7 +2051,7 @@ FUNCTION {set.default.abnt.variables}
#0 'abnt.full.initials :=
#0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style
#1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
- #0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]"
+ #0 'abnt.missing.year := %#0 "void"; #1 "[n.d.]"
#0 'repeated.author :=
#0 'abnt.repeated.author.omit :=
#0 'abnt.repeated.title.omit :=
@@ -2122,7 +2142,7 @@ FUNCTION {begin.bib}
'skip$ if$
"\abntbstabout{" abnt.bst.revision * "}" * write$ newline$
% Ajusta o espaçamento entre linhas nas referências bibliográficas
-"\setlength{\baselineskip}{1.2\baselineskip}" write$ newline$
+"\setlength{\baselineskip}{1.25\baselineskip}" write$ newline$
"\setlength{\itemsep}{0pt}" write$ newline$
}
EXECUTE {begin.bib}
@@ -2135,7 +2155,7 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
FUNCTION {apresentacao}
{ "+---------------------------------------------------------+"
- "| http://www.abntex.net.br/ |"
+ "| https://www.abntex.net.br/ |"
"| Em caso de dúvidas ou problemas com este estilo procure |"
abnt.alf
{"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *}
diff --git a/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-pt.bst b/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-pt.bst
index 6a5eb58034..5319a126c0 100644
--- a/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-pt.bst
+++ b/macros/latex/contrib/unbtex/unbtexcite/unbtex-num-pt.bst
@@ -4,13 +4,13 @@
%% scheme for documents written in Portuguese.
%%
%% abntex2-num.bst, v-1.9.7 laurocesar
-%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/
+%% Copyright 2012-2018 by abnTeX2 group at https://www.abntex.net.br/
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3 of this license or (at
%% your option) any later version.
%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
%%
@@ -18,7 +18,7 @@
%%
%% The Current Maintainer of this work is the abnTeX2 team, led by Lauro
%% César Araujo. Further information are available on
-%% http://www.abntex.net.br/
+%% https://www.abntex.net.br/
%%
ENTRY
@@ -31,7 +31,7 @@ ENTRY
isbn issn journal key month note marginnote number organization
org-short pages pagename
publisher reprinted-from reprinted-text school
- series subtitle section title type url urlaccessdate
+ series subtitle section title type doi url urlaccessdate
volume year year-presented
abnt-and-type
abnt-doi abnt-dont-use-etal
@@ -247,7 +247,7 @@ FUNCTION {bbl.edby} { "editado por" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
-FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
+FUNCTION {bbl.doi.url} {"https://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
@@ -259,14 +259,14 @@ if$}
FUNCTION {bbl.master} { "Mestrado" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
- {"[s.d.]"} %#1
+ {"[\emph{s.d.}]"} %#1
{""} %#0
if$}
FUNCTION {bbl.monography} { "Monografia" }
FUNCTION {bbl.mthesis} { "Disserta\c{c}\~{a}o" }
-FUNCTION {bbl.no.address} {"[S.l.]"}
-FUNCTION {bbl.no.address.no.publisher} {"[S.l.: s.n.]"}
-FUNCTION {bbl.no.publisher} {"[s.n.]"}
+FUNCTION {bbl.no.address} {"[\emph{S.l.}]"}
+FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.}: \emph{s.n.}]"}
+FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "de" }
@@ -397,6 +397,7 @@ FUNCTION {write.entry.verbatim2}
}
FUNCTION {write.entry.verbatim3}
{
+ "doi" doi write.field.verbatim
"url" url write.field.verbatim
"urlaccessdate" urlaccessdate write.field.verbatim
"volume" volume write.field.verbatim
@@ -608,6 +609,13 @@ FUNCTION {format.issn}
if$
}
+FUNCTION {format.doi}
+{ doi "doi" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {new.block duplicate$ "DOI \href{https://dx.doi.org/" swap$ * "}{" * swap$ * "}" *}
+ if$
+}
+
FUNCTION {format.note}
{ note empty$
{ "" }
@@ -897,7 +905,7 @@ FUNCTION {format.journal.pages}
}
FUNCTION {get.url.type}
-{s #1 #5 substring$ "http:" = {http.url}
+{s #1 #5 substring$ "https:" = {http.url}
{s #1 #6 substring$ "https:" = {http.url}
{s #1 #5 substring$ "file:" = {file.url}
{s #1 #4 substring$ "ftp:" = {ftp.url}
@@ -1084,8 +1092,8 @@ FUNCTION {format.type}
FUNCTION {format.year}
{year empty$
{ "campo year vazio ou faltando em " cite$ *
- abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$
- abnt.missing.year {", " } {""} if$ bbl.missing.year *}
+ abnt.missing.year {" (referencia com [s.d.] sem data)" *} 'skip$ if$ warning$
+ abnt.missing.year {" " } {""} if$ bbl.missing.year *}
{year n.dashify "year" bibinfo.check}
if$
}
@@ -1635,6 +1643,7 @@ FUNCTION {article}
non.iso.date
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1658,6 +1667,7 @@ FUNCTION {book}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1677,6 +1687,7 @@ FUNCTION {booklet}
format.volume.number.series output new.sentence
format.note output
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1702,6 +1713,7 @@ FUNCTION {inbook}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1722,6 +1734,7 @@ FUNCTION {incollection}
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1741,6 +1754,7 @@ FUNCTION {inproceedings}
format.isbn output
format.issn output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1764,6 +1778,7 @@ FUNCTION {journalpart}
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1783,6 +1798,7 @@ FUNCTION {manual}
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output new.sentence
+ format.doi output new.block
format.url
fin.entry
}
@@ -1804,6 +1820,7 @@ FUNCTION {misc}
format.howpublished output new.block
format.volume.number.series output new.sentence
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
empty.misc.check
@@ -1868,6 +1885,7 @@ FUNCTION {thesis}
abnt.thesis.year #0 = abnt.thesis.year #2 = or
{format.date "year" output.check new.sentence} 'skip$ if$
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1902,6 +1920,7 @@ FUNCTION {proceedings}
format.isbn output
format.issn output new.block
format.note output new.block
+ format.doi output new.block
format.url
fin.entry
}
@@ -1917,6 +1936,7 @@ FUNCTION {unpublished}
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
+ format.doi output new.block
format.url
fin.entry
}
@@ -2120,7 +2140,7 @@ FUNCTION {begin.bib}
'skip$ if$
"\abntbstabout{" abnt.bst.revision * "}" * write$ newline$
% Ajusta o espaçamento entre linhas nas referências bibliográficas
-"\setlength{\baselineskip}{1.2\baselineskip}" write$ newline$
+"\setlength{\baselineskip}{1.25\baselineskip}" write$ newline$
"\setlength{\itemsep}{0pt}" write$ newline$
}
EXECUTE {begin.bib}
@@ -2133,7 +2153,7 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
FUNCTION {apresentacao}
{ "+---------------------------------------------------------+"
- "| http://www.abntex.net.br/ |"
+ "| https://www.abntex.net.br/ |"
"| Em caso de dúvidas ou problemas com este estilo procure |"
abnt.alf
{"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *}
diff --git a/macros/latex/contrib/unbtex/unbtexcover/capa.pdf b/macros/latex/contrib/unbtex/unbtexcover/capa.pdf
new file mode 100644
index 0000000000..8f4a3abf23
--- /dev/null
+++ b/macros/latex/contrib/unbtex/unbtexcover/capa.pdf
@@ -0,0 +1,54 @@
+%PDF-1.7 % %
+1 0 obj
+<</Type/Catalog/Pages 2 0 R/OCProperties<</D<</Name(DefaultOC)/Order[7 0 R]/ON[7 0 R]/OFF[]/RBGroups[]>>/OCGs[7 0 R]>>/Extensions<</ADBE<</BaseVersion/1.7/ExtensionLevel 3>>>>/Names 8 0 R/AcroForm 9 0 R/Metadata 10 0 R>>
+endobj
+2 0 obj
+<</Type/Pages/Kids[4 0 R]/Count 1/DefaultValue(GykqNSk/dAoeHHo8NSh6dBQfDnpobnRsdGo=)>>
+endobj
+3 0 obj
+<</Producer(Aspose.PDF for .NET 24.6.0)/Creator(Aspose Pty Ltd.)/ModDate(D:20240828033854+00'00')>>
+endobj
+4 0 obj
+<</Type/Page/Parent 2 0 R/Contents 5 0 R/MediaBox[0 0 595.0001 841]/TrimBox[0 0 595.0001 841]/CropBox[0 0 595.0001 841]/Resources<</ProcSet[/PDF]/ExtGState<</GS6 6 0 R>>/Properties<</Pr7 7 0 R>>>>>>
+endobj
+5 0 obj
+<</Filter[/FlateDecode]/Length 559>>stream
+xڕMn1#|*{K@H! l%;3YٴU^LuJ/,?=.rĚ) Շz=Z3&3ˡm{9\N|(K٪ֳ*:Zbݭd&3d.\ eW+V$ki9iKrw-:[FYC1\5
+Ep y TTF@!TRw)95bٮ8#e9^|>L10sca4bn8*Oܸ%IښD!M,=MKR&noqB>p{uO{U4@BZT$F^;rd좢#ÉiF15hZg)Ma|4 WblF6S0CJ1Rźbu>F7t^p]3 #.J x' 0;gpHO]WLgp SWgp܃Rͺcm2bfp0]na,7i񀶹i ݊~7W+
+endstream
+endobj
+6 0 obj
+<</Type/ExtGState/RI/RelativeColorimetric>>
+endobj
+7 0 obj
+<</Type/OCG/Name<FEFF00430061006D00610064006100200031>>>
+endobj
+8 0 obj
+<<>>
+endobj
+9 0 obj
+<</Fields[]>>
+endobj
+10 0 obj
+<</Length 0>>stream
+
+endstream
+endobj
+xref
+0 11
+0000000000 65535 f
+0000000023 00000 n
+0000000260 00000 n
+0000000363 00000 n
+0000000479 00000 n
+0000000694 00000 n
+0000001325 00000 n
+0000001385 00000 n
+0000001458 00000 n
+0000001479 00000 n
+0000001509 00000 n
+trailer
+<</Root 1 0 R/Info 3 0 R/ID[<D7A7AAB3F21341C630D8B19B8BE0160F><38342D31412D34442D34442D31372D45>]/Size 11>>
+startxref
+1559
+%%EOF
diff --git a/macros/latex/contrib/unbtex/unbtexcover/contracapa.pdf b/macros/latex/contrib/unbtex/unbtexcover/contracapa.pdf
new file mode 100644
index 0000000000..3c6bce18e0
--- /dev/null
+++ b/macros/latex/contrib/unbtex/unbtexcover/contracapa.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/README b/macros/latex/contrib/univie-ling/README
index c73460f0b4..ff3aa6b5a9 100644
--- a/macros/latex/contrib/univie-ling/README
+++ b/macros/latex/contrib/univie-ling/README
@@ -97,14 +97,41 @@ also have a look at the example files.
== CHANGES ==
+V. 2.9 (2024-09-28):
+ - univie-ling-wlg:
+ * Fix pagination with \frontmatter articles.
+ * Improve parts in TOC.
+ * Clear double page before parts.
+ - univie-ling.bbx:
+ * Add option "annotations" which, if true, will print out
+ the annotation field (useful for annotated bibliographies).
+ * Add manual.
+
+V. 2.8 (2024-09-20):
+ - univie-ling-thesis:
+ * Add class option titlepage.
+ * Adapt title page to recent design. This entails a change
+ of sans serif font from Arial to Source Sans Pro.
+ * Use TeX Gyre Pagella rather than Palatino with fonts=otf.
+ - univie-ling-wlg:
+ * Fix pagination issue with titlepage=specialprint.
+ * part pages are now empty (no pagination and heading).
+ - univie-ling-handout:
+ - univie-ling-expose:
+ - univie-ling-paper:
+ - univie-ling-poster:
+ - univie-ling-thesis:
+ - univie-ling-wlg:
+ * Add basic support for thebibliography environment.
+ * Update documentation on bibliography beyond biblatex.
+
V. 2.7 (2024-07-23):
- univie-ling-wlg: Use proper spacing with covington's
reflist environment.
- - univie-ling-poster: add smallmargins option.
- - univie-ling-thesis: fix running headers in twoside mode.
- univie-ling-handout:
- univie-ling-expose:
- univie-ling-paper:
+ - univie-ling-poster:
- univie-ling-thesis:
- univie-ling-wlg:
* Fix empty argument check in \weblink.
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
index 985dc19f98..78f5ac4645 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
@@ -38,7 +38,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.bbx}[2024/07/23 v.2.7 biblatex bibliography style]
+\ProvidesFile{univie-ling.bbx}[2024/09/28 v.2.9 biblatex bibliography style]
% Load base style (authoryear-comp)
\RequireBibliographyStyle{authoryear-comp}
@@ -75,9 +75,14 @@
% Option "issueeditor": Output journal issue editor (false by default)
\newtoggle{issueeditor}
-\DeclareBibliographyOption{issueeditor}[false]{%
+\DeclareBibliographyOption{issueeditor}[true]{%
\settoggle{issueeditor}{#1}}
+% Option "annotations": Output annotations (false by default)
+\newtoggle{annotations}
+\DeclareBibliographyOption{annotations}[true]{%
+ \settoggle{annotations}{#1}}
+
%
% NAME formatting (general)
%
@@ -518,6 +523,23 @@
\usebibmacro{date}%
\newunit}
+% Vertical separation for annotations
+\newlength\annotsep
+\setlength\annotsep{3pt}
+\newcommand*{\annotationdelim}{\adddot\par\setunit{}\nobreak}
+\AtEndOfPackage{%
+ \iftoggle{annotations}
+ {\setlength\bibparsep{\annotsep}}
+ {}%
+}
+
+\renewbibmacro*{annotation}{%
+ \iffieldundef{annotation}
+ {\printfile[annotation]{
+ \bibannotationprefix\thefield{entrykey}.tex}}%
+ {\printfield{annotation}}%
+}
+
\renewbibmacro*{labeltitle}{%
\iffieldundef{label}
{\iffieldundef{shorttitle}
@@ -620,6 +642,9 @@
% no pp. prefix
\DeclareFieldFormat{pages}{#1}
+% Add delimiter
+\DeclareFieldFormat{annotation}{\annotationdelim #1}
+
\DeclareFieldFormat{doi}{%
\ifhyperref
{\href{https://doi.org/#1}{\nolinkurl{https://doi.org/#1}}}
@@ -664,6 +689,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{book}{%
@@ -714,6 +742,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyAlias{collection}{book}
@@ -771,6 +802,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inbook}{%
@@ -829,6 +863,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{thesis}{%
@@ -864,6 +901,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{unpublished}{%
@@ -895,6 +935,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{periodical}{%
@@ -924,6 +967,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\endinput
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
index 7600056940..9cf6707ff6 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
@@ -36,7 +36,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.cbx}[2024/07/23 v.2.7 biblatex citation style]
+\ProvidesFile{univie-ling.cbx}[2024/09/28 v.2.9 biblatex citation style]
\RequireCitationStyle{authoryear-comp}
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
index 8652b32a5b..3c59d7fd22 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
index a8ac59e821..509f36d7bb 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
index 48b41cac87..cdfb07eedf 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
index 608e203154..bf1c1f9880 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
index 5ac9aba1d1..4f94bbe283 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
index 49efca45fa..c31d116e01 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
index f2260ffeb4..f360e7c012 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
index b16ccfe334..5bf3cd252d 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
index 9673abfdb0..359b3b6f72 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
index 0d550fa286..1ce56a0d18 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
index 8a1d9155c6..b1e35c6bf2 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
index f811c049e4..182538d779 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf
new file mode 100644
index 0000000000..e5dabdf587
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex
new file mode 100644
index 0000000000..42e2311377
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex
@@ -0,0 +1,238 @@
+% !TeX spellcheck = en_US
+\documentclass[english]{article}
+
+\usepackage[osf]{libertine}
+\usepackage[scaled=0.7]{beramono}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\usepackage[hyphens]{url}
+\usepackage{csquotes}
+\usepackage[pdfusetitle,
+ bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
+ breaklinks=false,pdfborder={0 0 0},backref=false,colorlinks=false]
+ {hyperref}
+
+% Tweak the TOC (make it more compact)
+\usepackage{tocloft}
+\setlength{\cftaftertoctitleskip}{6pt}
+\setlength{\cftbeforesecskip}{0pt}
+\setlength{\cftbeforesubsecskip}{0pt}
+\renewcommand{\cfttoctitlefont}{\normalsize\bfseries}
+\renewcommand{\cftsecfont}{\small\bfseries}
+\renewcommand{\cftsecpagefont}{\small\bfseries}
+\renewcommand{\cftsubsecfont}{\small}
+\renewcommand{\cftsubsecpagefont}{\small}
+
+% markup
+\newcommand*\jmacro[1]{\textbf{\texttt{#1}}}
+\newcommand*\jcsmacro[1]{\jmacro{\textbackslash{#1}}}
+\newcommand*\joption[1]{\textbf{\texttt{#1}}}
+\newcommand*\jfmacro[1]{\texttt{#1}}
+\newcommand*\jfcsmacro[1]{\jfmacro{\textbackslash{#1}}}
+
+% macros
+\newcommand*\uvlt{\textsf{univie-ling biblatex}}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
+
+% improve layout
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+\widowpenalty = 10000
+\vfuzz \hfuzz
+\raggedbottom
+
+% Conditional pagebreak
+\def\condbreak#1{%
+ \vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
+
+\usepackage{microtype}
+
+\usepackage{babel}
+
+\usepackage{listings}
+\lstset{language={[LaTeX]TeX},
+ basicstyle={\small\ttfamily},
+ frame=single}
+
+\setcounter{tocdepth}{2}
+
+\begin{document}
+
+\title{The \uvlt\ styles}
+
+\author{\texorpdfstring{Jrgen Spitzmller%
+\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
+
+\date{Version 2.9, 2024/09/28}
+
+\maketitle
+
+\begin{abstract}
+\noindent The \uvlt\ styles provide citation and bibliography styles that conform to the style guide of the Linguistic Department
+of Vienna University which itself follows the \emph{Unified Style Sheet for Linguistic Papers}.
+This manual documents the style.
+\end{abstract}
+
+\tableofcontents
+
+\section{Aims and scope}
+
+The \uvlt\ styles include a \textsf{biblatex} bibliography style (\texttt{univie-ling.bbx}) and a citation style
+(\texttt{univie-ling.cbx}) that implement the citation conventions common in Viennese (Applied) Linguistics.
+The styles draw on the \emph{Unified Style Sheet for Linguistic Papers}.%
+\footnote{See \url{https://www.linguisticsociety.org/sites/default/files/style-sheet_0.pdf}.}
+
+\section{Requirements of \uvlt}\label{sec:req-jslp}
+
+The following class and packages are required and loaded by \uvlt:
+\begin{itemize}
+ \setlength\itemsep{0pt}
+ \item \textsf{biblatex}: Contemporary bibliography support.
+ \item \textsf{biber}: Bibliography processor for biblatex.
+\end{itemize}
+
+\section{Use}\label{use}
+
+There is not much to say here. The styles are used as any other \textsf{biblatex} styles: You load them via the
+\joption{style} option of biblatex (\joption{style=univie-ling} in this case), pass additional options here as well
+and use the citation and bibliography commands documented in the \textsf{biblatex} manual \cite{bibltx}.
+
+\section{Style-specific Options}\label{options}
+
+On top of the options provided by the \textsf{biblatex} package itself (see \cite{bibltx}), the \uvlt\ styles provide
+a couple of specific options:
+\begin{description}
+ \setlength\itemsep{0pt}
+ \item{\joption{annotations=true|false}}: if \joption{true}, the contents of the \texttt{annotation} or \texttt{annot} field
+ of your Bib\TeX\ entry are output (in a separate indented paragraph that follows the entry). Use this to generate annotated
+ bibliographies. The options is \joption{false} by default.
+
+ Annotations might also be stored in separate files as documented in \cite[sec.~3.14.8]{bibltx}.
+ \item{\joption{issueeditor=true|false}}: if \joption{true}, editors of journal special issues are output.
+ The options is \joption{false} by default.
+\end{description}
+
+\section{Release History}
+
+\begin{description}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item Add option \joption{annotations} which, if \joption{true},
+ will print out the \texttt{annotation} field
+ (useful for annotated bibliographies).
+ \item Add this manual.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \item 2024/07/23 (v.\,2.7)
+ \item 2024/06/27 (v.\,2.6)
+ \item 2024/05/09 (v.\,2.5)
+ \item 2023/03/31 (v.\,2.4)
+ \item 2023/01/26 (v.\,2.3)
+ \item 2022/12/06 (v.\,2.2)
+ \item 2022/10/21 (v.\,2.1)
+ \item 2022/10/02 (v.\,2.0)
+ \item 2022/09/08 (v.\,1.20)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2022/06/18 (v.\,1.19)
+ \begin{itemize}
+ \item properly re-define a macro in the citations style.
+ \end{itemize}
+ \item 2022/05/11 (v.\,1.18)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2022/02/05 (v.\,1.17)
+ \begin{itemize}
+ \item Draw on authoryear-comp rather than uncompressed
+ version (in line with major journal's interpretation
+ of the unified style sheet)
+ \end{itemize}
+ \item 2021/11/03 (v.\,1.16)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2021/10/19 (v.\,1.15)
+ \begin{itemize}
+ \item Output url date only if url is given (not with DOI).
+ \item Fix emphasizing of journal title.
+ \end{itemize}
+ \item 2021/09/01 (v.\,1.14)
+ \begin{itemize}
+ \item Sentence-case journal issue title and online title.
+ \item Emphasize journal subtitle.
+ \end{itemize}
+ \item 2020/11/11 (v.\,1.13)
+ \begin{itemize}
+ \item Fix whitespace issue in thematic issue string.
+ \end{itemize}
+ \item 2020/06/25 (v.\,1.12)
+ \begin{itemize}
+ \item only output origyear if it differs from year.
+ \end{itemize}
+ \item 2020/05/05 (v.\,1.11)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2019/05/01 (v.\,1.10)
+ \begin{itemize}
+ \item only print origyear (not full origdate) in label.
+ \item fix title capitalization in inbook, mvbook and mvcollection types.
+ \end{itemize}
+ \item 2019/01/21 (v.\,1.9)
+ \begin{itemize}
+ \item correct fix of duplicate editorstrg parentheses.
+ \end{itemize}
+ \item 2019/01/15 (v.\,1.8)
+ \begin{itemize}
+ \item fix another whitespace issue.
+ \item fix duplicate editorstrg parentheses.
+ \end{itemize}
+ \item 2018/11/07 (v.\,1.7)
+ \begin{itemize}
+ \item fix some whitespace issues.
+ \end{itemize}
+ \item 2018/11/04 (v.\,1.6)
+ \begin{itemize}
+ \item univie-ling.bbx: fix bookauthor with inbook type.
+ \end{itemize}
+ \item 2018/09/03 (v.\,1.5)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2018/03/02 (v.\,1.4)
+ \begin{itemize}
+ \item Fix journal dates (if month and day is given).
+ \end{itemize}
+ \item 2018/03/02 (v.\,1.3)
+ \begin{itemize}
+ \item Fix whitespace issue in \texttt{@inproceedings} entry.
+ \item Specify date output details (era, uncertain etc.).
+ \end{itemize}
+ \item 2018/02/13 (v.\,1.2)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2018/02/11 (v.\,1.1)
+ \begin{itemize}
+ \item Fixed location list output wrt the Unfied Style Sheet.
+ \item Link DOIs to preferred resolver (thanks, Katrin Leinweber!)
+ \end{itemize}
+ \item 2018/02/08 (v.\,1.0)
+ \begin{itemize}
+ \item Initial release on CTAN.
+ \end{itemize}
+\end{description}
+
+\begin{thebibliography}{1}
+
+\bibitem{bibltx} Lehman, Philipp (with Audrey Boruvka, Philip Kime and Joseph Wright):
+\emph{The biblatex Package. Programmable Bibliographies and Citations}. March 3, 2016.
+\url{http://www.ctan.org/pkg/biblatex}.
+
+\end{thebibliography}
+
+\end{document}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
index 7efd2c2f36..2ab3d7bf0d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
index c3d1c66805..0322456eae 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -336,13 +336,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -370,6 +388,15 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
\item 2024/07/23 (v.\,2.7)
\begin{itemize}
\item Fix spacing after \jfcsmacro{weblink}.
@@ -474,6 +501,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
index a253d4003e..dfce2b438a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
index bdd72da44e..52bca62e0f 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -373,13 +373,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\subsection{Heading}
@@ -415,6 +433,11 @@ Templates are provided as well:
\section{Release History}
\begin{description}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
\item 2024/07/23 (v.\,2.7)
\begin{itemize}
\item Fix spacing after \jfcsmacro{weblink}.
@@ -467,6 +490,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
index e04efcd52f..c3db12b025 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
index d6f5293a89..1bb8ca3cb5 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -376,13 +376,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -411,6 +429,15 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
\item 2024/07/23 (v.\,2.7)
\begin{itemize}
\item Fix spacing after \jfcsmacro{weblink}.
@@ -520,6 +547,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
index 06d64c7638..a5648d9518 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
index 1985658b78..f95f7a3e8a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
@@ -65,7 +65,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
index b77ad97265..e5c13243f9 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
index 2feb157bce..ea85ab9bca 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -107,7 +107,7 @@ The following packages are required for specific features and loaded by default.
\begin{itemize}
\setlength\itemsep{0pt}
\item \textsf{mathptmx}: Default serif font (\emph{Palatino}).
- \item \textsf{urw-arial} or \textsf{helvet}: Default sans serif font (\emph{Arial} or \emph{Helvetica}).
+ \item \textsf{sourcesanspro}: Default sans serif font (\emph{Source Sans Pro}).
\item \textsf{sourcecodepro}: Default monospaced font (\emph{Source Code Pro}).
\item \textsf{biblatex}: Contemporary bibliography support.
\item \textsf{caption}: Caption layout adjustments.
@@ -129,24 +129,18 @@ The following packages are required for optional features (not used by default):
\section{Fonts}\label{fonts}
-The class uses, by default, PostScript (a.\,k.\,a. Type\,1) fonts and thus requires classic (PDF)LaTeX. Optionally, however, you can also use OpenType fonts via the \textsf{fontspec}
-package and the XeTeX or LuaTeX engine instead. In order to do this, use the class option \joption{fonts=otf} (see sec.~\ref{coptions} for details).
+The class uses, by default, PostScript (a.\,k.\,a. Type\,1) fonts and thus requires classic (PDF)LaTeX. Optionally, however, you can also use OpenType fonts via the \textsf{fontspec} package and the XeTeX or LuaTeX engine instead. In order to do this, use the class option \joption{fonts=otf} (see sec.~\ref{coptions} for details).
-In both cases, the class uses by default \emph{Palatino} as a serif font, \emph{Arial} (or, alternatively, \emph{Helvetica}) as a sans serif font, and \emph{Source Code Pro}
-as a monospaced (typewriter) font. Note that \emph{Arial} (PostScript) font support is not
-included in most \LaTeX\ distributions by default, due to license reasons. You can install it easily via the \textsf{getnonfreefonts} script.\footnote{\url{https://www.tug.org/fonts/getnonfreefonts}
-<25.\,01.\,2017>.}
-If \emph{Arial} is not installed, however, \emph{Helvetica} (which is part of the \LaTeX\ core packages) is used as a fallback. This is usually a suitable alternative, since \emph{Arial} and
-\emph{Helvetica} only differ in subtle details. If you use \joption{fonts=otf}, you just have to make sure that you have the fonts \emph{Arial}, \emph{Palatino}
-and \emph{Source Code Pro} installed on your operating system (with exactly these names, i.\,e., fonts named \emph{Arial Unicode MS} or \emph{Linotype Palatino} will not be recognized!).
+In both cases, the class uses by default \emph{Palatino} as a serif font (or the clone \emph{TeX Gyre Pagella} with OpenType, for that matter),
+\emph{Source Sans Pro} as a sans serif font, and \emph{Source Code Pro} as a monospaced (typewriter) font.
-As to font selection: \emph{Arial} is used in the official title page template\footnote{See \url{https://ssc-philkultur.univie.ac.at/en/degree-programmes/doctoral-programme/doctoral-thesis/}.}, so I used that (with the mentioned fallback, \emph{Helvetica}).
+As to font selection: \emph{Source Sans Pro} is used in the official title page template which is nowadays auto-generated by the theses server,
+so I used that.
A serif font recommendation is not given. The corporate design manual of the university suggests \emph{Source Serif Pro}, but this font is
-too heavy for a thesis (and we cannot use the suggested sans, \emph{Source Sans Pro}, anyway). A somewhat standard for academic papers
-and theses is \emph{Times New Roman}, but I think this runs too small for the text block size we have (as the name suggests, this font
-has been developed for the small columns of newspapers), and it is also pretty overused. The selected font, \emph{Palatino}, in contrast,
-suits well to wider text lines, it is well supported in \LaTeX, and it fits with \emph{Helvetica}. The monospaced font, \emph{Source Code Pro},
-is a good companion to this pair.
+too heavy for a thesis. A somewhat standard for academic papers and theses is \emph{Times New Roman}, but I think this runs too small for
+the text block size we have (as the name suggests, this font has been developed for the small columns of newspapers), and it is also pretty overused.
+The selected font, \emph{Palatino}, in contrast, suits well to wider text lines, it is well supported in \LaTeX, and it fits with \emph{Source Sans Pro}.
+The monospaced font, \emph{Source Code Pro}, is a good companion to this pair.
If you (or your instructor) prefer(s) \emph{Times New Roman} over \emph{Palatino} nonetheless, write to your preamble
\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
@@ -190,7 +184,8 @@ The class provides the following option to set the font handling:
\setlength\itemsep{0pt}
\item{\joption{fonts=ps|otf|none}}: if \joption{ps} is selected, PostScript fonts are used (this is the default and
the correct choice if you use LaTeX or PDFLaTeX); if \joption{otf} is selected, OpenType fonts are used, the class
- loads the \textsf{fontspec} package, sets \emph{Palatino} as main font and \emph{Arial} as sans serif font (this is
+ loads the \textsf{fontspec} package, sets \emph{Palatino} as main font, \emph{Source Sans Pro} as sans serif font,
+ and \emph{Source Code Pro} as monospaced font (this is
the correct choice if you use XeTeX or LuaTeX; make sure you have the respective fonts installed on your system);
if \joption{none} is selected, finally, the class will not load any font package at all, and neither
\textsf{fontenc} (this choice is useful if you want to control the font handling completely yourself).
@@ -239,6 +234,14 @@ option (e.\,g., \joption{all=false,microtype=true} will switch off all packages
The option \joption{draftmark=true|false|firstpage} allows you to mark your document as a draft, which is indicated by a watermark (including the current date). This might be useful when sharing preliminary versions with your supervisor.
With \joption{draftmark=true}, this mark is printed on top of each page. With \joption{draftmark=firstpage}, the draft mark appears on the title page only.
+
+\subsection{Title page}\label{titlepage}
+
+As of 2024, MA and PhD theses must be submitted to the \textsf{u:space} platform without a title page (the title page will then be generated by the platform from the data
+you fill in there).
+
+Use the option \joption{titlepage=false} to suppress the title page for this purpose. The pagination will remain the same as with titlepage (i.\,e., the document starts at page 2).
+
\subsection{Further options}
\begin{description}
@@ -378,13 +381,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using \textsf{biblatex}}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -433,6 +454,19 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add class option \joption{titlepage=true|false} (see sec.~\ref{titlepage}).
+ \item Adapt title page to recent design. This entails a change of sans serif font
+ from Arial to Source Sans Pro.
+ \item Use \emph{TeX Gyre Pagella} rather than \emph{Palatino} with \joption{fonts=otf}.
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
\item 2024/07/23 (v.\,2.7)
\begin{itemize}
\item Fix spacing after \jfcsmacro{weblink}.
@@ -555,6 +589,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
index f2a5a48dc2..794ff256b0 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
index 6ca75cc0ed..379ff0485d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -259,13 +259,33 @@ Please refer to the \textsf{covington} manual \cite{covington} for details.
\section{Bibliography}\label{bibliography}
-If the class option \joption{biblatex=true} is set, the \uvlt\ class loads a bibliography style which matches journal style sheet. These conventions draw on the
-\emph{Unified Style Sheet for Linguistics} of the LSA (\emph{Linguistic Society of America}).
-In order to conform to this style, the \uvlt\ class uses the \textsf{biblatex} package with the \textsf{univie-ling} style that is included in the \textsf{univie-ling} bundle.
+If the class option \joption{biblatex=true} is set, the \uvlt\ class loads a bibliography style which matches journal style sheet.
+These conventions draw on the \emph{Unified Style Sheet for Linguistics} of the LSA (\emph{Linguistic Society of America}).
+In order to conform to this style, the \uvlt\ class uses the \textsf{biblatex} package with the \textsf{univie-ling}
+style that is included in the \textsf{univie-ling} bundle.
-If, for some reason, you do not want to use \textsf{biblatex} and prefer to have a manually constituted bibliography\footnote{A reason might be that you transform
-a paper submitted in a an office file format to \LaTeX.}, use the \texttt{reflist} environment
-and separate each entry by a blank line. Since this environment is provided by \textsf{covington}, the \joption{covington} options must not be \joption{false}.
+Since there is no Bib\TeX\ style file available that completely matches the journal's style guide, you cannot use
+classic Bib\TeX\ for a paper in the WLG.
+
+It is also possible, however, (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex}. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
+
+Finally, if you prefer to have a completely manually constituted bibliography with manually inserted citations%
+\footnote{A reason might be that you transform a paper submitted in a an office file format to \LaTeX. In this case,
+\texttt{reflist} is often more convenient than \texttt{bibliography}.},
+use the \texttt{reflist} environment and separate each entry by a blank line (see \cite[sec.~9]{covington}).
+Since this environment is provided by \textsf{covington}, the \joption{covington} options must not be \joption{false}.
\section{\LyX\ layouts and templates}
@@ -278,6 +298,19 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\raggedright
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item Fix pagination with \jfcsmacro{frontmatter} articles.
+ \item Improve parts in TOC.
+ \item Clear double page before parts.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \item Fix pagination issue with \joption{titlepage=specialprint}.
+ \item Part pages are now empty (no pagination and heading).
+ \end{itemize}
\item 2024/07/23 (v.\,2.7)
\begin{itemize}
\item Use proper spacing with \textsf{covington}'s \texttt{reflist} environment.
@@ -354,9 +387,12 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\begin{thebibliography}{1}
- \bibitem{covington} Covington, Michael A. and Spitzmller, Jrgen:
+\bibitem{covington} Covington, Michael A. and Spitzmller, Jrgen:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+ \emph{Natural Sciences Citations and References}. September 13, 2010.
+ \url{http://www.ctan.org/pkg/natbib}.
\end{thebibliography}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
index 394cddb692..e9e852d10a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.tex b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
index f88f1fcea4..2ba95602f5 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
@@ -42,7 +42,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.7, 2024/07/23}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -100,7 +100,7 @@ The bundle also includes a \textsf{biblatex} bibliography style (\texttt{univie-
(\texttt{univie-ling.cbx}) that implement the citation conventions common in Viennese (Applied) Linguistics.
The style draws on the \emph{Unified Style Sheet for Linguistic Papers}.%
\footnote{See \url{https://www.linguisticsociety.org/sites/default/files/style-sheet_0.pdf}.}
-Documentation is included in the documentation of the classes above.
+\mlink{univie-ling-bbx.pdf}
\section{Release History}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
index f7ff0916f4..495172ee0d 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
@@ -33,7 +33,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-expose}[2024/07/23 v.2.7 Univie Linguistic Exposes (JSp)]
+\ProvidesPackage{univie-ling-expose}[2024/09/28 v.2.9 Univie Linguistic Exposes (JSp)]
%% ============================================================
@@ -687,7 +687,22 @@
% End of @uve@apa condition
\fi
-% End of @uve@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
%% =============================================================
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
index 73c5a325da..d81cd6a27a 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
@@ -35,7 +35,7 @@
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesClass{univie-ling-handout}[2024/07/23 v.2.7 Univie Ling handout class (JSp)]
+\ProvidesClass{univie-ling-handout}[2024/09/28 v.2.9 Univie Ling handout class (JSp)]
%% ============================================================
%% CLASS OPTIONS
@@ -867,7 +867,22 @@
\DeclarePrintbibliographyDefaults{title=\uvh@bibheading}
-% End of @uvh@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
% Smaller
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
index eda1430345..5169001198 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
@@ -32,7 +32,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-paper}[2024/07/23 v.2.7 Univie Linguistic Papers (JSp)]
+\ProvidesPackage{univie-ling-paper}[2024/09/28 v.2.9 Univie Linguistic Papers (JSp)]
%% ============================================================
@@ -845,7 +845,22 @@ This includes all drawings, sketches, graphics and internet sources.}
% End of @uvp@apa condition
\fi
-% End of @uvp@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
%% =============================================================
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
index 87f5092d4c..780e98bc83 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
@@ -34,7 +34,7 @@
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesClass{univie-ling-poster}[2024/07/23 v.2.7 Univie Ling poster class (JSp)]
+\ProvidesClass{univie-ling-poster}[2024/09/28 v.2.9 Univie Ling poster class (JSp)]
%% ============================================================
%% CLASS OPTIONS
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
index 91d34276a0..82dae78b03 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
@@ -33,7 +33,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-thesis}[2024/07/23 v.2.7 Univie Linguistic Theses (JSp)]
+\ProvidesPackage{univie-ling-thesis}[2024/09/28 v.2.9 Univie Linguistic Theses (JSp)]
%% ============================================================
@@ -55,6 +55,7 @@
\newif\if@uvt@psfonts\@uvt@psfontstrue
\newif\if@uvt@refsp\@uvt@refsptrue
\newif\if@uvt@usefontenc\@uvt@usefontenctrue
+\newif\if@uvt@titlepage\@uvt@titlepagetrue
\def\uvt@fontenc{T1}
% Define keys and values
@@ -155,6 +156,10 @@
{ \@uvt@draftmarktrue
\@uvt@draftmarkfptrue
},
+ % titlepage=<true|false>
+ % Output titlepage
+ titlepage.legacy_if_set:n = @uvt@titlepage,
+ titlepage.usage:n = preamble,
% no val equals to true
draftmark .default:n = {true},
% fonts=<ps|otf|none>
@@ -241,33 +246,36 @@ This includes all drawings, sketches, graphics and internet sources.}
%% FONTS AND EMPHASIZING:
%% ============================================================
+\def\uvt@titlesans{\sffamily}
+
\if@uvt@psfonts
\RequirePackage[T1]{fontenc}
\if@uvt@usefontenc
\RequirePackage[\uvt@fontenc]{fontenc}
\fi
-
- % Palatino
+ % Serif: Palatino
\RequirePackage[osf]{mathpazo}
-
- % Arial or Helvetica
- \IfFileExists{uarial.sty}{%
- \RequirePackage{uarial}
- }{%
- \RequirePackage{helvet}
- }
-
- % Source Code Pro (Courier)
+ % Sans: Source Sans Pro Light
+ \RequirePackage[semibold]{sourcesanspro}
+ % Mono: Source Code Pro
\RequirePackage[scale=.93]{sourcecodepro}
+ % Lighter Sans for title page
+ \def\uvt@titlesans{\def\mdseries@sf{l}\sffamily}
\fi
\if@uvt@otffonts
\RequirePackage{fontspec}
- \setmainfont{Palatino}
- \setsansfont{Arial}
- \setmonofont{SourceCodePro}
+ \setmainfont{TeX Gyre Pagella}
+ % Sans: Source Sans Pro Light
+ \RequirePackage[semibold]{sourcesanspro}
+ % Mono: Source Code Pro
+ \RequirePackage[scale=.93]{sourcecodepro}
+ % Lighter Sans for title page
+ \def\uvt@titlesans{\sourcesansprolight}
\fi
+
+
% Hyperlinks
\RequirePackage{url}
\newcommand{\urlprefix}{}
@@ -299,14 +307,14 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\slash{/\penalty\exhyphenpenalty\hskip\z@skip}
% Font settings
-\newkomafont{thesistype}{\fontsize{24}{26pt}\bfseries\sffamily}
-\setkomafont{title}{\fontsize{18}{20pt}\sffamily}
-\setkomafont{author}{\fontsize{18}{20pt}\large\sffamily}
-\setkomafont{date}{\normalfont\fontsize{11}{13pt}\mdseries\sffamily}
-\newkomafont{degree}{\fontsize{12}{14pt}\sffamily}
-\newkomafont{baende}{\normalfont\fontsize{12}{14pt}\mdseries\sffamily}
-\newkomafont{tpcaption}{\fontsize{11}{13pt}\sffamily}
-\newkomafont{codes}{\fontsize{10}{12pt}\sffamily}
+\newkomafont{thesistype}{\fontsize{24}{26pt}\bfseries\uvt@titlesans}
+\setkomafont{title}{\fontsize{18}{20pt}\uvt@titlesans}
+\setkomafont{author}{\fontsize{18}{20pt}\large\uvt@titlesans}
+\setkomafont{date}{\normalfont\fontsize{11}{13pt}\mdseries\uvt@titlesans}
+\newkomafont{degree}{\fontsize{12}{14pt}\uvt@titlesans}
+\newkomafont{baende}{\normalfont\fontsize{12}{14pt}\mdseries\uvt@titlesans}
+\newkomafont{tpcaption}{\fontsize{11}{13pt}\uvt@titlesans}
+\newkomafont{codes}{\fontsize{10}{12pt}\uvt@titlesans}
%% ============================================================
@@ -384,35 +392,35 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\thesistype@bachelor{Bachelorarbeit}
\def\thesistype@bachelor@en{Bachelor's Thesis}
\def\dirtype@bachelor{Studienrichtung}
-\def\dirtype@bachelor@en{degree programme}
+\def\dirtype@bachelor@en{Degree programme}
\def\degree@bachelor{Bachelor of Arts (BA)}
\def\degree@bachelor@f{\degree@bachelor}
% master
\def\thesistype@master{Masterarbeit}
\def\thesistype@master@en{Master's Thesis}
\def\dirtype@master{Studienrichtung}
-\def\dirtype@master@en{degree programme}
+\def\dirtype@master@en{Degree programme}
\def\degree@master{Master of Arts (MA)}
\def\degree@master@f{\degree@master}
% magister
\def\thesistype@magister{Magisterarbeit}
\def\thesistype@magister@en{Magister Thesis}
\def\dirtype@magister{Studienrichtung}
-\def\dirtype@magister@en{degree programme}
+\def\dirtype@magister@en{Degree programme}
\def\degree@magister{Magister der Philosophie (Mag.\,Phil.)}
\def\degree@magister@f{Magistra der Philosophie (Mag.\,Phil.)}
% diplom
\def\thesistype@diplom{Diplomarbeit}
\def\thesistype@diplom@en{Diploma Thesis}
\def\dirtype@diplom{Studienrichtung}
-\def\dirtype@diplom@en{degree programme}
+\def\dirtype@diplom@en{Degree programme}
\def\degree@diplom{Magister der Philosophie (Mag.\,Phil.)}
\def\degree@diplom@f{Magistra der Philosophie (Mag.\,Phil.)}
% diss
\def\thesistype@diss{Dissertation}
\def\thesistype@diss@en{Doctoral Thesis}
\def\dirtype@diss{Dissertationsgebiet}
-\def\dirtype@diss@en{field of study}
+\def\dirtype@diss@en{Field of study}
\def\degree@diss{Doktor der Philosophie (Dr.\,phil.)}
\def\degree@diss@f{Doktorin der Philosophie (Dr.\,phil.)}
@@ -474,7 +482,10 @@ This includes all drawings, sketches, graphics and internet sources.}
% We need graphicx for the logo
\RequirePackage{graphicx}
+\def\uvt@titlesep{\,|\,}
+
\renewcommand*\maketitle[1][1]{%
+ \if@uvt@titlepage
\newgeometry{top=2cm,bottom=2.5cm,left=2.5cm,right=2cm}
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\else
@@ -527,27 +538,27 @@ This includes all drawings, sketches, graphics and internet sources.}
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\begin{flushright}
- \includegraphics[width=6cm]{univielogo-sw}
+ \includegraphics[width=6cm]{univielogo}
\end{flushright}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{thesistype}\MakeUppercase{\@thesistype\,/\,\hskip\z@skip\mbox{\@thesistype@en}}\par}
+ {\usekomafont{thesistype}\MakeUppercase{\@thesistype\uvt@titlesep\hskip\z@skip\mbox{\@thesistype@en}}\par}
\end{center}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{tpcaption}Titel der \@thesistype\,/\,Title of the \@thesistype@en\par}
+ {\usekomafont{tpcaption}Titel\uvt@titlesep Title\par}
{\ifx\@title\@empty\else
- \usekomafont{title}{\enquote{\@title%
- \ifx\@subtitle\@empty\else\linebreak\@subtitle\fi}\par}%
+ \usekomafont{title}{\@title%
+ \ifx\@subtitle\@empty\else\linebreak\@subtitle\fi\par}%
\fi
}%
{\ifx\@volume\@empty\else%
- \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ B\"anden\,/\,volume \@volume\ of \@volumes\ volumes}%
+ \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ B\"anden\uvt@titlesep volume \@volume\ of \@volumes\ volumes}%
\fi%
}%
\vskip 2em
{%
- {\usekomafont{tpcaption}verfasst von\,/\,submitted by\par}
+ {\usekomafont{tpcaption}verfasst von\,\uvt@titlesep\uvt@titlesep submitted by\par}
\usekomafont{author}{%
\lineskip 0.75em%
\begin{tabular}[t]{c}
@@ -556,21 +567,21 @@ This includes all drawings, sketches, graphics and internet sources.}
}%
}%
\vskip 2em
- {\usekomafont{tpcaption}angestrebter akademischer Grad\,/\,in partial fulfilment of the requirements for the degree of\par}
+ {\usekomafont{tpcaption}angestrebter akademischer Grad\uvt@titlesep in partial fulfilment of the requirements for the degree of\par}
\usekomafont{degree}{\@degree}
\end{center}\par
\vfill
- {\usekomafont{date}{Wien, \the\year\,/\,Vienna, \the\year\par}}%
+ {\usekomafont{date}{Wien, \the\year\uvt@titlesep Vienna, \the\year\par}}%
\vskip 2em
\usekomafont{codes}{%
\begin{tabular}[t]{@{}>{\raggedright}p{0.4\columnwidth}>{\raggedright}p{0.1\columnwidth}>{\raggedright}p{0.4\columnwidth}}
- Studienkennzahl lt. Studienblatt/\newline degree programme code as it appears on the student record sheet: & & \@studienkennzahl\tabularnewline
+ Studienkennzahl lt. Studienblatt\uvt@titlesep Degree programme code as it appears on the student record sheet: & & \@studienkennzahl\tabularnewline
\noalign{\vskip6pt}
- \@dirtype\ lt. Studienblatt\slash\newline \@dirtype@en\ as it appears on the student record sheet: & & \@studienrichtung\tabularnewline
+ \@dirtype\ lt. Studienblatt\uvt@titlesep\@dirtype@en\ as it appears on the student record sheet: & & \@studienrichtung\tabularnewline
\noalign{\vskip6pt}
- Betreut von\,/\,Supervisor: & & \@supervisor\tabularnewline%
+ Betreut von\uvt@titlesep Supervisor: & & \@supervisor\tabularnewline%
\noalign{\vskip6pt}
- \ifx\@cosupervisor\@empty\else Mitbetreut von\,/\,Co-Supervisor: & & \@cosupervisor\fi
+ \ifx\@cosupervisor\@empty\else Mitbetreut von\uvt@titlesep Co-Supervisor: & & \@cosupervisor\fi
\end{tabular}\par
}
\par
@@ -591,7 +602,10 @@ This includes all drawings, sketches, graphics and internet sources.}
\cleardoubleemptypage
\fi
\ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
- \end{titlepage}
+ \end{titlepage}
+ \else% \if@uvt@titlepage
+ \setcounter{page}{2}%
+ \fi
\setcounter{footnote}{0}%
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\let\thanks\relax
@@ -822,6 +836,21 @@ This includes all drawings, sketches, graphics and internet sources.}
% End of @uvt@apa condition
\fi
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
% End of @uvt@biblatex condition
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
index 00deb089cc..7c32f39b47 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
@@ -34,7 +34,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-wlg}[2024/07/23 v.2.7 Univie WLG journal layout (JSp)]
+\ProvidesPackage{univie-ling-wlg}[2024/09/28 v.2.9 Univie WLG journal layout (JSp)]
%% ============================================================
@@ -431,10 +431,15 @@
\if@wlg@specialprint\else
\RequirePackage{etoc}
\etocstandardlines
+ \etocsetstyle{part}
+ {}
+ {\vspace{12pt}\normalsize\bfseries\rmfamily}
+ {\etocnumber. \etocname{}\par\vspace{10pt}}
+ {}
\etocsetstyle{chapter}
{}
{\normalsize\mdseries\rmfamily}
- {\etocname{}\dotfill\etocpage\par\vspace{12pt}}
+ {\etocname{}\dotfill\etocpage\par\vspace{10pt}}
{}
\setcounter{tocdepth}{0}
\fi
@@ -461,8 +466,7 @@
\newcommand*\frontmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@wlg@mainmatterfalse\@wlg@frontmattertrue\pagenumbering{roman}%
- \edef\computelastpage{%
- \romannumeral\numexpr\getpagerefnumber{LastFrontPage}-1\relax}%
+ \def\computelastpage{\pageref{TotPages}}%
\edef\startpageref{%
\romannumeral\thestartpage\relax}%
}
@@ -595,6 +599,9 @@
\fi
\if@wlg@titlepage
\@maketitlepage[#1]%
+ \if@wlg@mainmatter
+ \pagenumbering{arabic}
+ \fi
\fi
\if@wlg@startpageset\else
\setcounter{page}{\thestartpage}
@@ -633,6 +640,7 @@
\thispagestyle{\titlepagestyle}\@thanks
\endgroup
\setcounter{footnote}{0}%
+ \setcounter{page}{\thestartpage}%
\global\let\@cauthor\@empty
\global\let\@thanks\@empty
\gdef\@ccauthor{\translate{corrauthor}}
@@ -672,7 +680,7 @@
\newcommand{\@maketitlepage}[1][1]{%
\if@wlg@titlepageneeded
\begin{titlepage}
- \pagenumbering{alph}
+ \pagenumbering{roman}
\thispagestyle{empty}%
\setcounter{page}{%
#1%
@@ -876,7 +884,9 @@
\end{flushright}%
\par
\vskip 2em
- \pagenumbering{arabic}
+ \if@wlg@mainmatter
+ \pagenumbering{arabic}
+ \fi
}%
% Rewrite \include for local LastPage counter
@@ -986,6 +996,9 @@
% (serifs)
\setkomafont{sectioning}{\normalfont\normalcolor\bfseries}
+% empty part pages
+\AddToHook{cmd/scr@startpart/before}{\cleardoublepage\thispagestyle{empty}}
+
% Abstract
\renewenvironment{abstract}{%
\addsec*{\hspace*{2.4em}Abstract}
@@ -1085,8 +1098,13 @@
\AtBeginDocument{%
\@ifundefined{bibhang}{}{%
\setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
\renewcommand{\bibfont}{\small}%
}%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
}
%% =============================================================
diff --git a/macros/latex/contrib/updatemarks/doc/updatemarks.pdf b/macros/latex/contrib/updatemarks/doc/updatemarks.pdf
index 7c2e6e949b..424af0e3f0 100644
--- a/macros/latex/contrib/updatemarks/doc/updatemarks.pdf
+++ b/macros/latex/contrib/updatemarks/doc/updatemarks.pdf
Binary files differ
diff --git a/macros/latex/contrib/updatemarks/doc/updatemarks.tex b/macros/latex/contrib/updatemarks/doc/updatemarks.tex
index a462711ab9..faeedb3b08 100644
--- a/macros/latex/contrib/updatemarks/doc/updatemarks.tex
+++ b/macros/latex/contrib/updatemarks/doc/updatemarks.tex
@@ -4,7 +4,7 @@
\title{Update marks in box\thanks{Issues: \url{https://github.com/Sophanatprime/updatemarks/issues}}}
\author{WenJian Chern\thanks{Email: longaster@163.com}}
-\date{\today\qquad v0.2e}
+\date{\today\qquad v0.2f}
\begin{document}
@@ -216,8 +216,7 @@ they are the automatical updating list.
\verb|\ExtractMarks| * \marg{text} \marg{cmd}
\verb|\ExtractMarks| * \oarg{number list} \marg{text} \marg{cmd}
\end{syntax}
-It collect all marks to \tn[no-index]{cmd}, you can use \tn[no-index] to reinsert
-these marks.
+It collect all marks to \meta{cmd}, you can use \meta{cmd} to reinsert these marks.
\texttt{insertmark} hook would not be used as it's already been used.
\end{function}
diff --git a/macros/latex/contrib/updatemarks/tex/updatemarks.sty b/macros/latex/contrib/updatemarks/tex/updatemarks.sty
index 244ce20b5f..4c55fb2481 100644
--- a/macros/latex/contrib/updatemarks/tex/updatemarks.sty
+++ b/macros/latex/contrib/updatemarks/tex/updatemarks.sty
@@ -13,11 +13,11 @@
%
% The Current Maintainer of this work is Wenjian Chern.
%
-% This work consists of the files updatemarks.sty and updatemarks.tex
+% This work consists of the files updatemarks.sty, updatemarks.tex and updatemarks-nums.sty
%
\NeedsTeXFormat{LaTeX2e}
\@ifundefined{NewDocumentCommand}{\RequirePackage{xparse}}{}
-\ProvidesExplPackage{updatemarks}{2024/02/19}{0.2e}{extract and update marks from box}
+\ProvidesExplPackage{updatemarks}{2024/10/07}{0.2f}{extract and update marks from box}
\RequirePackage{etoolbox}
\RequirePackage{updatemarks-nums}
@@ -451,8 +451,17 @@
{ \color@endgroup\egroup\extractmarks@of{tcolorbox}{\unvcopy\@tempboxa} }
{ } { \ERROR }
\let\endtcb@savebox=\endtcb@lrbox
- \patchcmd \tcb@drawing@env@end { \csname }
- { \updatemarks@of{tcolorbox}\csname } { } { \ERROR }
+ \ifdefined\tcb@drawing@env@end
+ \patchcmd \tcb@drawing@env@end { \csname }
+ { \updatemarks@of{tcolorbox}\csname } { } { \ERROR }
+ \else
+ \ifcsname environment~tcb@drawing~end~aux~ \endcsname
+ \tl_set:Nv \l_tmpa_tl { environment~tcb@drawing~end~aux~ }
+ \tl_if_in:NnF \l_tmpa_tl { \use:c } { \ERROR }
+ \tl_replace_once:Nnn \l_tmpa_tl { \use:c } { \updatemarks@of{tcolorbox}\use:c }
+ \exp_args:Nno \cs_set_nopar:cpn { environment~tcb@drawing~end~aux~ } \l_tmpa_tl
+ \else \ERROR \fi
+ \fi
% breakable library
\ifdefined \tcb@vsplit@upper
\apptocmd \tcb@vsplit@upper { \extractsplitmarks@of{tcolorbox} } { } { \ERROR }
diff --git a/macros/latex/contrib/useclass/README.md b/macros/latex/contrib/useclass/README.md
index d3bd24274d..58dbbd6554 100644
--- a/macros/latex/contrib/useclass/README.md
+++ b/macros/latex/contrib/useclass/README.md
@@ -1,3 +1,8 @@
+[![Latest Document](https://img.shields.io/github/v/release/huangyxi/useclass?label=Docs)](https://github.com/huangyxi/useclass/releases/latest/download/useclass.pdf)
+[![GitHub Release](https://img.shields.io/github/v/release/huangyxi/useclass?label=Release)](https://github.com/huangyxi/useclass/releases/latest)
+[![CTAN](https://img.shields.io/ctan/v/useclass?label=CTAN)](https://www.ctan.org/pkg/useclass)
+
+
# The `useclass.sty` Package: Load Classes as Packages
## Introduction
diff --git a/macros/latex/contrib/useclass/useclass.dtx b/macros/latex/contrib/useclass/useclass.dtx
index 37016e738b..d4eb1744d1 100644
--- a/macros/latex/contrib/useclass/useclass.dtx
+++ b/macros/latex/contrib/useclass/useclass.dtx
@@ -62,17 +62,19 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesExplPackage{useclass}
-%<package> {2024-03-06}{1.0}{Use Classes as Packages} %
+%<package> {2024-10-03}{1.1}{Use Classes as Packages} %
%<*driver>
\documentclass{article}
\usepackage{useclass}
\useclass*[full]{l3doc}
+\RecordChanges
\usepackage{mdframed}
\providecommand{\name}{\jobname}
\providecommand{\pkgname}{\pkg{\name}}
\begin{document}
\DocInput{\jobname.dtx}
+ \PrintChanges
\PrintIndex
\end{document}
%</driver>
@@ -81,7 +83,7 @@
% \title{The \pkgname.sty Package: Load Classes as Packages}
% \author
% {
-% Huang Yuxi
+% Huang Yuxi^^A
% \thanks{
% \textit{Huang} is his surname.
% }
@@ -91,7 +93,7 @@
% {useclass@hyxi.dev}^^A
% >
% }
-% \date{2024-03-06 \quad Version 1.0}
+% \date{2024-10-03 \quad Version 1.1}
%
%
% \maketitle
@@ -106,6 +108,8 @@
%
% \tableofcontents
%
+% \changes{v1.0}{2024-03-05}{Initial release.}
+%
% \begin{documentation}
%
% \section{Introduction}
@@ -159,7 +163,8 @@
% \begin{verbatim}
% % \iffalse
% \documentclass{article}
-% \usepackage{l3doc}
+% \usepackage{useclass}
+% \useclass*[full]{l3doc}
% \begin{document}
% \DocInput{\jobname.dtx}
% \end{document}
@@ -438,6 +443,7 @@
%
% \subsection{Classes Configuration}
% \begin{variable}{\c_@@_classes_prop}
+% \changes{v1.1}{2024-10-03}{Support \cls{ctex} classes.}
% Configuration for classes to restore after loading.
% The defined property is NOT nested, where values in the prop are token lists but not properties or sequences.
% \begin{macrocode}
@@ -459,6 +465,7 @@
list,
l@section,
l@subsection,
+ @maketitle,
},
},
}
@@ -470,4 +477,3 @@
% \end{macrocode}
%
% \end{implementation}
-% \PrintIndex
diff --git a/macros/latex/contrib/useclass/useclass.pdf b/macros/latex/contrib/useclass/useclass.pdf
index 2623e72d2b..e373f709ea 100644
--- a/macros/latex/contrib/useclass/useclass.pdf
+++ b/macros/latex/contrib/useclass/useclass.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifycommand/README.txt b/macros/latex/contrib/verifycommand/README.txt
index 4ee9666691..bd4b792268 100644
--- a/macros/latex/contrib/verifycommand/README.txt
+++ b/macros/latex/contrib/verifycommand/README.txt
@@ -1,5 +1,5 @@
-LaTeX verifycommand package v1.00 README.txt
+LaTeX verifycommand package v1.10 README.txt
Files included are:
diff --git a/macros/latex/contrib/verifycommand/verifycommand.dtx b/macros/latex/contrib/verifycommand/verifycommand.dtx
index 4e1a1ae6d6..eb01d05e33 100644
--- a/macros/latex/contrib/verifycommand/verifycommand.dtx
+++ b/macros/latex/contrib/verifycommand/verifycommand.dtx
@@ -17,7 +17,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{verifycommand}
-%<package> [2024/01/11 v1.00 Verify definitions have not changed.]
+%<package> [2024/09/03 v1.10 Verify definitions have not changed.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -77,7 +77,7 @@
\usepackage{microtype}
-
+\usepackage{nowidow}
\usepackage[svgnames]{xcolor}
@@ -233,6 +233,7 @@
\usepackage{\mypackagename}
+%\usepackage[disable]{\mypackagename}
@@ -301,6 +302,7 @@ pageanchor=true,
%
% \changes{v1.00}{2024/01/11}{\ 2024/01/11 Initial version.}
+% \changes{v1.10}{2024/09/03}{\ 2024/09/03}
% \GetFileInfo{\mypackagename.sty}
@@ -353,11 +355,17 @@ pageanchor=true,
%
% To improve reliability,
% the \pkg{verifycommand} package provides a way to verify that
-% macros or environments have not changed.
-% This allows a package author to check before patching a definition.
+% macros or environments have not changed since the patches were
+% last designed.
+% This may be checked before applying the patch.
% If a definition is not as expected, a warning is issued.
% At the end of the compile, a list of all changed definitions is displayed.
%
+% Conditionals are provided, allowing multiple versions of a definition
+% to be tested and patched, warning if no known version is found.
+% Conditionals also allow the package to verify that several macros
+% are unchanged before taking a single common action.
+%
% \vfill
%
% \footnotesize
@@ -448,12 +456,51 @@ pageanchor=true,
% expected values.
%
%
-% \clearpage
+% \section{Warnings}
+%
+% \changes{v1.10}{2024/09/03}{Docs: Added Warnings section.}
+%
+% The document \textit{\LaTeX\ for authors} (\cmds{texdoc usrguide}
+% recommends the use of \LaTeX\ hooks where possible (\cmds{texdoc lthooks}).
+%
+% Commands created with \cs{NewDocumentCommand} and related may
+% \watchout[kernel changes]
+% change their definitions when the inner workings of
+% \cs{NewDocumentCommand} are optimized.
+% When this occurs, any checksums for these commands will
+% change, even though the associated patches probably will continue to work.
+% If you use \pkg{verifycommand} for these commands, expect the
+% checksums to need updates at some point in the future.
+%
+% Use \cs{NewCommandCopy} and \cs{NewEnvironmentCopy} to copy commands
+% for reuse. These work with all kinds of commmand definitions.
+% See \cmds{texdoc usrguide} for details.
+%
+% Use \cs{ShowCommand} or \cs{ShowEnvironment} to see an existing definition,
+% which again works with all forms of commands.
+%
%
% \section{How to use \pkg{verifycommand}}
%
+%
% \subsection{The user interface}
%
+% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.}
+%
+% In the following, \oarg{yourpackagename} is the package doing the
+% testing and patching,
+% and \oarg{theirpackagename} is the package which defines
+% the original macro.
+% Using these optional package names make it easier to find where
+% to make changes if needed.
+%
+% If there is only one optional argument,
+% \watchout[optional arguments]
+% it is used as \oarg{yourpackagename},
+% to identify where to find the \cs{VerifyCommand} checksum entry.
+% The second optional argument identifies what is being patched,
+% in case it has been changed.
+%
% \needspace{2\baselineskip}
% \DescribeMacro{\VerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename}
% \marg{\cs{macroname}} \marg{\MDfive\ checksum}
@@ -464,13 +511,54 @@ pageanchor=true,
% \fqquad \marg{begin \MDfive\ checksum} \marg{end \MDfive\ checksum}
%
% Use one of these macros just before patching a macro or environment,
-% as seen below.
+% as seen below. A test is performed to see if the definition
+% is as expected before applying a patch.
%
% Note that there is one checksum for \cs{VerifyCommand}, but there
-% are two checksums for \cs{VerifyEnvironment}: once for the begin section
+% are two checksums for an environment: once for the begin section
% and one for the end section.
%
-% If there is only one optional argument, it is used as your package name.
+% It may be necessary to test for each of several possible versions of
+% a definition, then patch accordingly. The following test and apply a
+% true or false clause, without issuing a warning.
+%
+% \needspace{2\baselineskip}
+% \DescribeMacro{\IfVerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\cs{macroname}} \\
+% \fqquad \marg{\MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% \needspace{3\baselineskip}
+% \DescribeMacro{\IfVerifyEnvironmentBegin} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\env{envname}} \\
+% \fqquad \marg{begin \MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% \needspace{3\baselineskip}
+% \DescribeMacro{\IfVerifyEnvironmentEnd} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\env{envname}} \\
+% \fqquad \marg{end \MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% Tests may be done as a group, either to try several versions of the same
+% definition, or to verify several definitions and act if any of them fail:
+%
+% \DescribeMacro{\TestVerifyCommands} Starts a group of tests.
+%
+% \DescribeMacro{\IfVerifyCommandPassed} \marg{true} \marg{false}
+% \quad Act if any of a group passed.
+% May be used to try to patch multiple versions of a command.
+%
+% \DescribeMacro{\IfVerifyCommandFailed} \marg{true} \marg{false}
+% \quad Act if any of a group failed.
+% May be used to verify several definitions are unchanged.
+%
+% A warning may be also issued:
+%
+% \DescribeMacro{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
+% \quad Used to issue a warning that the macro has changed.
+%
+% See \cref{sec:conditionals} for examples of conditional tests.
%
%
% \subsection{Placing the macros}
@@ -483,70 +571,86 @@ pageanchor=true,
%
% \begin{sourceverb}
% \VerifyCommand{\LaTeX}{}
-% <patch \LaTeX here>
+% (patch \LaTeX here)
%
% \VerifyCommand[mypackage]{\textcolor}{}
-% <patch \textcolor here>
+% (patch \textcolor here)
%
% \VerifyCommand[mypackage][graphics]{\rotatebox}{}
-% <patch \rotatebox here>
+% (patch \rotatebox here)
%
% \VerifyEnvironment{tabbing}{}{}
-% <patch tabbing here>
+% (patch tabbing here)
% \end{sourceverb}
%
%
% \subsection{Finding the checksums of the current definitions}
+% \changes{v1.10}{2024/06/25}{Docs: ``Finding checksums'' reorganized.}
%
-% In the above examples, testing \cs{LaTeX} would print a warning showing
-% the correct \MDfive\ checksum.
-% Testing \cs{textcolor} would do the same, but as a \cs{PackageWarning} from \pkg{mypackage}.
-% Testing \cs{rotatebox} would also mention the package being tested, \pkg{graphics}.
-% Testing \env{tabbing} issues a separate warning for the begin and end sections.
-%
-%
+% The warnings are issued and the correct checksums are given.
+% The type of warning depends on the usage:
+% \begin{itemize}
+% \item Verifying \cs{LaTeX} would print a warning showing
+% the correct \MDfive\ checksum.
% \begin{sourceverb}
-% Warning: Something may fail. A definition has changed:
+% Warning: A definition has changed:
% \LaTeX
-% FAAAC6146C9A80F46A1F029B67923851
+% (FAAAC6146C9A80F46A1F029B67923851)
% on input line 464.
-
-% Package mypackage Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \cs{textcolor} would do the same,
+% but as a \cs{PackageWarning} from \pkg{mypackage},
+% which is the package doing the testing.
+% \begin{sourceverb}
+% Package mypackage Warning: A definition has changed:
% (mypackage) \textcolor
-% (mypackage) E1E2B5A908AA1BCDDF6BEA038596A381
+% (mypackage) (E1E2B5A908AA1BCDDF6BEA038596A381)
% (mypackage) on input line 465.
-
-% Package mypackage Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \cs{rotatebox} would also issue a warning from \pkg{mypackage},
+% but also mention the package being tested, \pkg{graphics}.
+% \begin{sourceverb}
+% Package mypackage Warning: A definition has changed:
% (mypackage) graphics: \rotatebox
-% (mypackage) 2472999B02C97AC847128AF24C55D150
+% (mypackage) (2472999B02C97AC847128AF24C55D150)
% (mypackage) on input line 466.
-%
-% Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \env{tabbing} issues a separate warning
+% for the begin and end sections.
+% \begin{sourceverb}
+% Warning: A definition has changed:
% tabbing
-% 1AD73B4527AD30969CF3219F2FB1306B
+% (1AD73B4527AD30969CF3219F2FB1306B)
% on input line 518.
%
-% Warning: Something may fail. A definition has changed:
+% Warning: A definition has changed:
% (end)tabbing
-% E8326AC43EE0A6E922A20F2A798BD177
+% (E8326AC43EE0A6E922A20F2A798BD177)
% on input line 518.
% \end{sourceverb}
+% \end{itemize}
+%
%
-% And at the end of the compile, a summary is given:
+% At the end of the compile, a summary is given:
%
% \begin{sourceverb}
% --------------------------------
-% WARNING: Something may fail.
-% Definition changed: \LaTeX
-% Definition changed: FAAAC6146C9A80F46A1F029B67923851
-% Definition changed: \textcolor
-% Definition changed: E1E2B5A908AA1BCDDF6BEA038596A381
-% Definition changed: graphics: \rotatebox
-% Definition changed: 2472999B02C97AC847128AF24C55D150
-% Definition changed: tabbing
-% Definition changed: 1AD73B4527AD30969CF3219F2FB1306B
-% Definition changed: (end)tabbing
-% Definition changed: E8326AC43EE0A6E922A20F2A798BD177
+% Package verifycommand Warning: Definitions have changed.
+% Patches for the following macros may need to be updated.
+% See the previous warnings for line numbers.
+%
+% Syntax: Patching pkg -> Defining pkg: Macro (checksum)
+% -----
+% (verifycommand) \LaTeX
+% (FAAAC6146C9A80F46A1F029B67923851)
+% (verifycommand) mypackage -> \textcolor
+% (E1E2B5A908AA1BCDDF6BEA038596A381)
+% (verifycommand) mypackage -> graphics: \rotatebox
+% (2472999B02C97AC847128AF24C55D150)
+% (verifycommand) tabbing
+% (1AD73B4527AD30969CF3219F2FB1306B)
+% (verifycommand) (end)tabbing
+% (E8326AC43EE0A6E922A20F2A798BD177)
% --------------------------------
% \end{sourceverb}
%
@@ -558,24 +662,24 @@ pageanchor=true,
%
% \begin{sourceverb}
% \VerifyCommand{\LaTeX}{FAAAC6146C9A80F46A1F029B67923851}
-% <patch \LaTeX here>
+% (patch \LaTeX here)
%
% \VerifyCommand[mypackage]{\textcolor}
% {E1E2B5A908AA1BCDDF6BEA038596A381}
-% <patch \textcolor here>
+% (patch \textcolor here)
%
% \VerifyCommand[mypackage][graphics]{\rotatebox}
% {2472999B02C97AC847128AF24C55D150}
-% <patch \rotatebox here>
+% (patch \rotatebox here)
%
% \VerifyEnvironment{tabbing}
% {1AD73B4527AD30969CF3219F2FB1306B}% beginning code
% {E8326AC43EE0A6E922A20F2A798BD177}% endind code
-% <patch tabbing here>
+% (patch tabbing here)
% \end{sourceverb}
%
%
-% \subsection{When a definition is changed}
+% \subsection{When a definition has changed}
%
% When something being verified changes at a later time, the resulting
% warning will let the user know that the patches may not work
@@ -584,14 +688,97 @@ pageanchor=true,
% this warning will be issued before the patch is even attempted.
%
% When testing many packages in bulk, a utility such as \cmds{grep}
-% can report the changed definitions.
-% Search the log file for ``Definition changed:''.
+% can report which macros have changed.
+% Search the log file for ``\texttt{(verifycommand)}''.
+%
+%
+% \subsection{Testing for changed macros}
+% \label{sec:conditionals}
+%
+% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.}
+%
+% To test to see if a macro or environment has changed, use
+% \cs{IfVerifyCommand}, \cs{IfVerifyEnvironmentBegin},
+% or \cs{IfVerifyEnvironmentEnd}.
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{123}{True}{False}
+% \end{sourceverb}
+% Result: \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{}{True}{False}
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}
+% {FAAAC6146C9A80F46A1F029B67923851}
+% {True}{False}
+% \end{sourceverb}
+% Result:
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}
+% {FAAAC6146C9A80F46A1F029B67923851}
+% {True}{False}
+% (Assuming \cs{LaTeX} has not actually changed since
+% this manual was generated.)
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing}
+% {E8326AC43EE0A6E922A20F2A798BD177}
+% {True}{False}
+% \end{sourceverb}
+% Result:
+% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing}
+% {E8326AC43EE0A6E922A20F2A798BD177}
+% {True}{False}
+%
+% If the \pkg{verifycommand} package is disabled, these tests
+% will always return true.
+%
+% These tests do not issue warnings if the test fails, so they may
+% be used to test against several possible definitions, chosing the
+% appropriate patch depending on which match is found.
+%
+% To try to patch multiple versions of the same command,
+% and issue a warning if no match is found:
+%
+% \begin{sourceverb}
+% \TestVerifyCommands
+%
+% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro}
+% {12312312312312312321312312312312}
+% {(Patch an older version of the macro.)}
+%
+% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro}
+% {45645645645645645645645645645645}
+% {(Patch a newer version of the macro.)}
+%
+% \IfVerifyCommandPassed
+% {}% One of the patches worked.
+% {\VERCMDWarning{mypackage}{theirpackage}{\theirmacro}}
+% \end{sourceverb}
+%
+% To verify several commands have not changed:
+%
+% \begin{sourceverb}
+% \TestVerifyCommands
+%
+% \VerifyCommand[mypackage][theirpackage]{\firstmacro}
+% {78978978978978978978978978978978}
+% \VerifyCommand[mypackage][theirpackage]{\secondmacro}
+% {27272727272727272727277272727272}
+% \VerifyCommand[mypackage][theirpackage]{\thirdmacro}
+% {84838483848384838483848384838483}
+%
+% \IfVerifyCommandFailed
+% {Something is not correct. (Warnings have been issued above.)}
+% {}% All are fine.
+% \end{sourceverb}
%
%
% \subsection{Disabling the package}
%
% \pkg{verifycommand} relies on knowing the internal structure of
-% various kinds of definitions. It is possible that these may change some day,
+% various kinds of definitions. It is possible that these may change,
% causing endless warnings for that kind of definition.
% Should that happen, it will be necessary to disable the \pkg{verifycommand}
% package until it can be updated.
@@ -601,15 +788,22 @@ pageanchor=true,
% \usepackage[disable]{verifycommand}
% \end{sourceverb}
%
+% Package warnings will stop,
+% and the conditional tests will always return true.
+%
+% If the package is disabled, the boolean \bool{VERCMDenable}
+% will be |false|. This may be used to help decide which patches
+% to apply as a default.
%
%
% ^^A To trigger the checksums to be copied into the exmaples:
+% \typeout{(verifycommand): The following warnings that definitions have changed}
+% \typeout{are expected, and are for demonstration purposes:}
% \VerifyCommand{\LaTeX}{}
% \VerifyCommand[mypackage]{\textcolor}{}
% \VerifyCommand[mypackage][graphics]{\rotatebox}{}
% \VerifyEnvironment{tabbing}{}{}
%
-%
% \clearpage
%
% ^^A \StopEventually{\PrintChanges\PrintIndex}
@@ -638,7 +832,7 @@ pageanchor=true,
% \PrintChanges
% \phantomsection
% \label{sec:changesend}
-%
+% \clearpage
%
% ^^A The instructions for the Index of Objects:
% \IndexPrologue{
@@ -719,7 +913,7 @@ pageanchor=true,
%
% \typeout{--------------------------------}
% \typeout{The following warning that}
-% \typeout{something may fail is an}
+% \typeout{definitions have changed is an}
% \typeout{example of the output of this}
% \typeout{package, and is not evidence of}
% \typeout{a problem with the verifycommand}
@@ -747,16 +941,16 @@ pageanchor=true,
%
% Package option to disable all functions.
%
-% \DescribeBoolean{VERCMD@enable} Is the package enabled?
+% \DescribeBoolean{VERCMDenable} Is the package enabled?
% \begin{macrocode}
-\newbool{VERCMD@enable}
-\booltrue{VERCMD@enable}
+\newbool{VERCMDenable}
+\booltrue{VERCMDenable}
% \end{macrocode}
%
% \DescribeOption{disable} Turn off all functions.
% \begin{macrocode}
\DeclareOption{disable}{%
- \boolfalse{VERCMD@enable}%
+ \boolfalse{VERCMDenable}%
\typeout{----}%
\typeout{Package verifycommand: Turned off by option 'disable'.}%
\typeout{----}%
@@ -788,6 +982,8 @@ pageanchor=true,
%
% The \MDfive\ hash is used for \env{lateximage} filenames for \SVG\ math.
%
+% The default definition if no MD5 function is found.
+% This will be changed below if an MD5 function is available.
% \begin{macrocode}
\newcommand{\VERCMD@mdfivesum}[1]{%
\PackageError{verifycommand}
@@ -855,27 +1051,78 @@ pageanchor=true,
% \end{macrocode}
% \end{macro}
+% \DescribeBoolean{VERCMD@this@ltxcmd} True if this command is
+% defined by \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+\newbool{VERCMD@this@ltxcmd}
+\boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+
+% \DescribeBoolean{VERCMD@failed@ltxcmd} True if any command that failed
+% was defined by \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+\newbool{VERCMD@failed@ltxcmd}
+\boolfalse{VERCMD@failed@ltxcmd}
+% \end{macrocode}
+
% \begin{macro}{\VERCMD@addchanged} \marg{\MDfive sum} \marg{text} \qquad Add to the list of changed definitions.
+% \changes{v1.10}{2024/08/25}{Revised summary message.}
+% \changes{v1.10}{2024/08/28}{Added `\texttt{*}' if \cs{NewDocumentCommand} or related is used.}
% \begin{macrocode}
\newcommand*{\VERCMD@addchanged}[2]{%
+% \end{macrocode}
+% Newline control for pretty print.
+% \begin{macrocode}
\ifdefempty{\VERCMD@whatchanged}%
{}%
{\apptocmd{\VERCMD@whatchanged}{^^J}{}{}}%
- \apptocmd{\VERCMD@whatchanged}{Definition changed: #2^^J}{}{}%
- \apptocmd{\VERCMD@whatchanged}{Definition changed: \space\space\space#1}{}{}%
+% \end{macrocode}
+% ID the message as from \pkg{verifycommand}, add the text,
+% add the checksum.
+% \begin{macrocode}
+ \apptocmd{\VERCMD@whatchanged}{%
+ (verifycommand)\space\space#2^^J%
+ \space\space\space\space\space\space\space\space\space\space%
+ \space\space\space\space\space\space\space\space\space(#1)%
+ }{}{}%
+% \end{macrocode}
+% Optionally add a |*| after the checksum if the command was
+% defined with \cs{NewCommand} or related.
+% \begin{macrocode}
+ \ifbool{VERCMD@this@ltxcmd}{%
+ \apptocmd{\VERCMD@whatchanged}{ *}{}{}%
+ \booltrue{VERCMD@failed@ltxcmd}%
+ }{}%
+ \boolfalse{VERCMD@this@ltxcmd}%
}
% \end{macrocode}
% \end{macro}
% When the compile is finished, print the accumulated list of changed definitions.
+% \changes{v1.10}{2024/08/25}{Revised summary message.}
+% ^^A *date
% \begin{macrocode}
-\AfterEndDocument{
+\AtEndDocument{
\ifdefempty{\VERCMD@whatchanged}{}{%
\typeout{--------------------------------}%
- \typeout{WARNING: Something may fail.}%
- \typeout{\VERCMD@whatchanged}%
- \typeout{--------------------------------}%
+ \typeout{Package verifycommand Warning: Definitions have changed.}%
+ \typeout{Patches for the following macros may need to be updated.}%
+ \typeout{See the previous warnings for line numbers.}%
+ \typeout{}%
+ \typeout{Syntax:\space\space Patching pkg -> Defining pkg: Macro (checksum)}%
+ \typeout{-----}%
+ \typeout{\VERCMD@whatchanged}
+ \typeout{-----}%
+ \typeout{Look for updates to these packages.}
+%
+ \ifbool{VERCMD@failed@ltxcmd}{
+ \typeout{Any of the above marked with a * may be due to changes in LaTeX internals,}
+ \typeout{the most recently known of which was 2023/12/01.}
+ \typeout{If so, look for updates for the LaTeX sytem as well.}
+ }{}
+%
+ \typeout{--------------------------------}
}
}
% \end{macrocode}
@@ -895,29 +1142,33 @@ pageanchor=true,
% \end{macro}
-% \begin{macro}{\VERCMD@Warning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
+% \begin{macro}{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
%
% If no package names, print a general warning.
% If package names are given, print a \cs{PackageWarning}.
+% Either way, also add to the summary report.
+% \changes{v1.10}{2024/08/25}{Revised warning message.}
% \begin{macrocode}
-\newcommand*{\VERCMD@Warning}[3]{%
+\newcommand*{\VERCMDWarning}[3]{%
\ifblank{#1}%
{%
\VERCMD@ProgWarning{%
- Something may fail. A definition has changed:\MessageBreak
+ A definition has changed:\MessageBreak
\ifblank{#2}{}{#2: }\string#3\MessageBreak
- \VERCMD@temp\MessageBreak
- }
- \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\string#3}%
+ (\VERCMD@temp)\MessageBreak
+ }%
+ \expandafter\VERCMD@addchanged%
+ \expandafter{\VERCMD@temp}{\string#3}%
}%
{%
\PackageWarning{#1}{%
- Something may fail. A definition has changed:\MessageBreak%
+ A definition has changed:\MessageBreak%
\ifblank{#2}{}{#2: }%
\string#3\MessageBreak%
- \VERCMD@temp\MessageBreak%
+ (\VERCMD@temp)\MessageBreak%
}%
- \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\ifblank{#2}{}{#2: }\string#3}%
+ \expandafter\VERCMD@addchanged%
+ \expandafter{\VERCMD@temp}{#1 -> \ifblank{#2}{}{#2: }\string#3}%
}%
}
% \end{macrocode}
@@ -929,19 +1180,78 @@ pageanchor=true,
% \end{macrocode}
%
%
+%
% \subsection{User interface}
%
-% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
+%
+% \DescribeBoolean{VERCMD@passed} True if any test passed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newbool{VERCMD@passed}
+% \end{macrocode}
+%
+% \DescribeBoolean{VERCMD@failed} True if any test failed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newbool{VERCMD@failed}
+% \end{macrocode}
+%
+% \begin{macro}{\TestVerifyCommands}
+% Starts a new set of \cs{VerifyCommand} tests,
+% after which the booleans will tell if any passed and if any failed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\TestVerifyCommands}
+{
+ \boolfalse{VERCMD@passed}
+ \boolfalse{VERCMD@failed}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommandPassed} \marg{true} \marg{false}
+% If any of the \cs{VerifyCommand} tests passed, do the |true| clause.
+% If none of them passed, do the |false| clause.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\IfVerifyCommandPassed}
+ {%
+ \ifbool{VERCMD@passed}%
+ {\let\VERCMD@tempa\@firstoftwo}%
+ {\let\VERCMD@tempa\@secondoftwo}%
+ \VERCMD@tempa%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommandFailed} \marg{true} \marg{false}
+% If any of the \cs{VerifyCommand} tests failed, do the |true| clause.
+% If none of them failed, do the |false| clause.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\IfVerifyCommandFailed}
+ {%
+ \ifbool{VERCMD@failed}%
+ {\let\VERCMD@tempa\@firstoftwo}%
+ {\let\VERCMD@tempa\@secondoftwo}%
+ \VERCMD@tempa%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
% \marg{\cs{commandname}} \marg{\MDfive\ checksum}
+% \marg{true} \marg{false}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
%
% Test for various kinds of definitions, and convert them to \MDfive\ checksums.
% \begin{macrocode}
-\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{%
+\NewDocumentCommand{\IfVerifyCommand}{O{} O{} m m}{%
% \end{macrocode}
%
% Only if the package is enabled:
% \begin{macrocode}
- \ifbool{VERCMD@enable}{%
+ \ifbool{VERCMDenable}{%
% \end{macrocode}
%
% Default to an un-detected definition type:
@@ -949,11 +1259,18 @@ pageanchor=true,
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
-% For \cs{NewDocumentCommand}, the macro name is ``|\name code|'' with a space in the middle.
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
+% For \cs{NewDocumentCommand}, the macro name is ``|\name code|''
+% with a space in the middle.
% \begin{macrocode}
% % NewDocumentCommand:
\ifcsdef{\cs_to_str:N #3~code}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive%
\csname \cs_to_str:N #3~code\endcsname%
}%
@@ -972,7 +1289,8 @@ pageanchor=true,
{%
% \end{macrocode}
%
-% For \cs{DeclareRobustCommand}, the macro name is ``|\name |'' with a trailing space.
+% For \cs{DeclareRobustCommand}, the macro name is ``|\name |''
+% with a trailing space.
% \begin{macrocode}
% % DeclareRobustCommand:
\ifcsdef{\cs_to_str:N #3~}%
@@ -983,19 +1301,24 @@ pageanchor=true,
{%
% \end{macrocode}
%
-% For \cs{newcommand} with an option, the macro name is ``|\\name|'', with two backslashes.
+% For \cs{newcommand} with an option, the macro name is ``|\\name|'',
+% with two backslashes.
% \begin{macrocode}
% % newcommand w/ option:
\ifcsdef{\VERCMD@backslash\cs_to_str:N #3}%
{%
\expandafter\VERCMD@mdfive%
- \csname \VERCMD@backslash\cs_to_str:N #3\endcsname%
+ \csname %
+ \VERCMD@backslash%
+ \cs_to_str:N #3%
+ \endcsname%
}%
% \end{macrocode}
%
% For \cs{newcommand}, the macro name is ``|\name|''.
%
-% If none match, the default unknown definition warning is show in place of the checksum.
+% If none match, the default unknown definition warning is shown
+% in place of the checksum.
% \begin{macrocode}
{%
% % newcommand:
@@ -1008,33 +1331,65 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% If the checksum matches the expected value, do the following
+% |true| clause, else do the following |false| clause.
+% Also track the true and false tests for \cs{IfVerifyCommandPassed}
+% and \cs{IfVerifyCommandFailed}.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
\ifdefstring{\VERCMD@temp}{#4}%
- {}%
{%
- \VERCMD@Warning{#1}{#2}{#3}%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
+ {%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
}% if package enabled
- {}% if package not enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage}
-% \marg{\cs{commandname}}
-% \marg{begin \MDfive\ checksum}
-% \marg{end \MDfive\ checksum}
+% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}} \marg{\MDfive\ checksum}
%
-% Test both the begin and end section of the environment.
+% Test for various kinds of definitions, and convert them to \MDfive\ checksums.
% \begin{macrocode}
-\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{%
+\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{%
+ \ifblank{#1}{% #1 blank
+ \IfVerifyCommand{#3}{#4}{}{\VERCMDWarning{}{}{#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyCommand[#1]{#3}{#4}{}{\VERCMDWarning{#1}{}{#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyCommand[#1][#2]{#3}{#4}{}{\VERCMDWarning{#1}{#2}{#3}}%
+ }% #2 given
+ }% #1 given
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\IfVerifyEnvironmentBegin}
+% \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{begin \MDfive\ checksum}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
+%
+% Test the begin section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\IfVerifyEnvironmentBegin}{O{} O{} m m}{%
% \end{macrocode}
%
% Only if the package is enabled:
% \begin{macrocode}
- \ifbool{VERCMD@enable}{%
+ \ifbool{VERCMDenable}{%
% \end{macrocode}
%
% Default to an un-detected definition type:
@@ -1042,11 +1397,17 @@ pageanchor=true,
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
% For \cs{NewDocumentEnvironment}, the macro name is ``|\environment name code|'' with internal spaces.
% \begin{macrocode}
% % NewDocumentEnvironment:
\ifcsdef{environment~#3~code}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive%
\csname environment~#3~code\endcsname%
}%
@@ -1075,26 +1436,62 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% Do the first or second next argument depending on a match:
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
\ifdefstring{\VERCMD@temp}{#4}%
- {}%
{%
- \VERCMD@Warning{#1}{#2}{#3}%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
+ {%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
% \end{macrocode}
%
-% Reset the default to an un-detected definition type:
+% \begin{macrocode}
+ }% if package enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\IfVerifyEnvironmentEnd}
+% \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{end \MDfive\ checksum}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
+%
+% Test the end section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\IfVerifyEnvironmentEnd}{O{} O{} m m}{%
+% \end{macrocode}
+%
+% Only if the package is enabled:
+% \begin{macrocode}
+ \ifbool{VERCMDenable}{%
+% \end{macrocode}
+%
+% Default to an un-detected definition type:
% \begin{macrocode}
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
% For \cs{NewDocumentEnvironment}, the ending macro name
% is ``|\environment name end aux |'', with spaces and a trailing space.
% \begin{macrocode}
% % end DocumentEnvironment:
\ifcsdef{environment~#3~end~aux~}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive
\csname environment~#3~end~aux~\endcsname%
}%
@@ -1113,24 +1510,134 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% Do the first or second next argument depending on a match:
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
- \ifdefstring{\VERCMD@temp}{#5}%
- {}%
+ \ifdefstring{\VERCMD@temp}{#4}%
+ {%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
{%
- \VERCMD@Warning{#1}{#2}{(end)#3}%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
}% if package enabled
- {}% if package not enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{begin \MDfive\ checksum}
+% \marg{end \MDfive\ checksum}
+%
+% Test both the begin and end section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{%
+% begin:
+ \ifblank{#1}{% #1 blank
+ \IfVerifyEnvironmentBegin{#3}{#4}%
+ {}%
+ {\VERCMDWarning{}{}{#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyEnvironmentBegin[#1]{#3}{#4}%
+ {}%
+ {\VERCMDWarning{#1}{}{#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyEnvironmentBegin[#1][#2]{#3}{#4}%
+ {}%
+ {\VERCMDWarning{#1}{#2}{#3}}%
+ }% #2 given
+ }% #1 given
+% end:
+ \ifblank{#1}{% #1 blank
+ \IfVerifyEnvironmentEnd{#3}{#5}%
+ {}%
+ {\VERCMDWarning{}{}{(end)#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyEnvironmentEnd[#1]{#3}{#5}%
+ {}%
+ {\VERCMDWarning{#1}{}{(end)#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyEnvironmentEnd[#1][#2]{#3}{#5}%
+ {}%
+ {\VERCMDWarning{#1}{#2}{(end)#3}}%
+ }% #2 given
+ }% #1 given
}
% \end{macrocode}
% \end{macro}
%
+%
% \begin{macrocode}
\ExplSyntaxOff
% \end{macrocode}
%
%
+% \subsection{Verify infrastructure}
+%
+% \changes{v1.10}{2024/08/28}{Tests low-level \cs{NewDocumentCommand} code.}
+%
+% The low-level infrastructure for \cs{NewDocumentCommand} and related
+% may change on occasion, causing a change in the resulting code and
+% a verification error for such code.
+% The following is done while generating the documentation
+% for the \pkg{verifycommand} package,
+% and verifies the definitions of the underlying
+% infrastructure and issues a warning if any has changed.
+%
+% In the source for the following, \filenm{ltxcmd.dtx} uses |@@| which is
+% replaced by |__cmd|.
+%
+% (Testing silently occurs here, without adding text to the documentation.)
+%
+% \ExplSyntaxOn
+%
+% \TestVerifyCommands
+%
+% ^^A *checksums
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code:Nnn}
+% {0911983C176452DDE1F471783F875529}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_optimized:Nnn}
+% {CC1FE1C2D4782317D9E9EB391AD7FFE4}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_aux:Nnn}
+% {6675F7AC09F310F6AB963DAA0860BD37}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_expandable:Nnn}
+% {8EDCF2A369B6F9CE43280D9118F01383}
+
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_env_internal:nnnn}
+% {7F026120EACC68911B492D09A4B0F537}
+%
+% \ExplSyntaxOff
+%
+% \IfVerifyCommandFailed
+% {
+% \AfterEndDocument{
+% \PackageWarningNoLine{verifycommand}{%
+% The internals for LaTeX \string\NewCommand\MessageBreak%
+% and related have changed.\MessageBreak%
+% Update the checksums in verifycommand.dtx\MessageBreak
+% at `*checksums', and research when the\MessageBreak
+% internals changed and update the date\MessageBreak
+% in verifycommand.dtx at `*date'%
+% }%
+% }
+% }
+% {}
+%
%
% \clearpage
%
diff --git a/macros/latex/contrib/verifycommand/verifycommand.pdf b/macros/latex/contrib/verifycommand/verifycommand.pdf
index b58e11c6c2..19accc8682 100644
--- a/macros/latex/contrib/verifycommand/verifycommand.pdf
+++ b/macros/latex/contrib/verifycommand/verifycommand.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf
new file mode 100644
index 0000000000..0d8a71a39a
--- /dev/null
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex
new file mode 100644
index 0000000000..acb246e07c
--- /dev/null
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex
@@ -0,0 +1,26 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,11pt]{article}
+\usepackage{WriteOnGrid}
+\usepackage{lipsum}
+\usepackage{frcursive}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{PleinePageCinqCinq}[FormatPapier=A4,NumLignes,MargeG=0.7,MargeH=2.3]
+%entête
+\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill \LaTeX}
+%titre
+\LignePapierCinqCinq[Echelle=1.25,Ligne=2,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 1}}
+%cadre de notes
+\CadreNoteCinqCinq{3}
+%ligne pour un petit titre
+\LignePapierCinqCinq[Echelle=1.25,Ligne=8,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
+%%paragraphe lipsum avec une échelle de 1.15 := calcul de l'interligne
+\ParagraphePapierCinqCinq[Ligne=10,Echelle=1.15,Espacement=\fpeval{10/1.15}]{\cursive\lipsum[1][1-7]}
+\end{PleinePageCinqCinq}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
index 7bcc35aa1b..7a2a6c5b98 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
index 070c88b7cd..3608df559c 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
@@ -45,8 +45,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.1.6}
-\def\TPdate{12/04/2024}
+\def\TPversion{0.1.7}
+\def\TPdate{01/09/2024}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
@@ -525,6 +525,8 @@ To sum up, they create full paper grid (by preference for \texttt{\textbf{a4pape
\part*{History}
+\verb|v0.1.7|~:~~~~New feature for french paper \textsf{PleinePageCinqCinq}
+
\verb|v0.1.6|~:~~~~Possibility to automatically determine L\&C based on the remaining space.
\verb|v0.1.4|~:~~~~New \texttt{[keys]} + enhancements for paragraphs, for french version (for the moment\dots)
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
index 517ce5911d..76850d725d 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
index 1da2b2b0bc..fb63ea4422 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
@@ -48,8 +48,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.1.6}
-\def\TPdate{12 avril 2024}
+\def\TPversion{0.1.7}
+\def\TPdate{01 septembre 2024}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
@@ -763,6 +763,13 @@ Les commandes et environnements sont suffixées différemment, mais le reste est
\end{PleinePageSeyes}
\end{PresentationCode}
+{\small\faBomb} Pour les pages complètes 5x5, il est possible d'utiliser les clés \Cle{MargeG} et \Cle{MargeH} qui valent \Cle{auto} par défaut (adaptées au format du papier), mais elles peuvent être définies manuellement, avec les \textbf{contraintes} suivantes (pour un affichage correct sur les lignes, pour le moment\ldots) :
+
+\begin{itemize}
+ \item \Cle{MargeG} doit valoir $0.2$ ou $0.7$ ou $1.2$ ou $1.7$ etc
+ \item \Cle{MargeH} doit valoir $0.3$ ou $0.8$ ou $1.3$ ou $1.8$ etc
+\end{itemize}
+
\subsection{Exemples}
Les exemples des pages suivantes ont été obtenus de la même manière que celui de la pleine page Seyes, il \textit{suffit} d'adapter les commandes et environnements avec le bon suffixe.
@@ -770,7 +777,7 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\begin{PresentationCode}{listing only}
\pagestyle{empty}
-\begin{PleinePageCinqCinq}[NumLignes]
+\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
@@ -807,7 +814,11 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\pagestyle{empty}
-\begin{PleinePageCinqCinq}[NumLignes]
+\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
+ %marges pour illustrer
+ \draw[thick,teal,<->,>=latex] ([shift={(-2.7,1.5)}]CinqCinqOrigine) --++ (2.7,0) node[midway,below,font=\small\ttfamily] {MargeG} ;
+ \draw[thick,orange,<->,>=latex] ([shift={(-0.5,0)}]CinqCinqOrigine) --++ (0,2.3) node[midway,right,font=\small\ttfamily] {MargeH} ;
+ %back to normal
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
@@ -842,6 +853,8 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\section{Historique}
+\verb|v0.1.7|~:~~~~Option pour régler la marge pour les \textsf{PleinePageCinqCinq}
+
\verb|v0.1.6|~:~~~~Possibilité de déterminer automatiquement L\&C en fonction de la place restante.
\verb|v0.1.5|~:~~~~Possibilité de spécifier la réglure pour les quadrillages de type \textsf{Seyes} + meilleure gestion des paragraphes.
diff --git a/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
index e2673d3c58..3d462b8a33 100644
--- a/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
+++ b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
@@ -2,7 +2,8 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{WriteOnGrid}[2024/04/12 v0.1.6 package to write on grid lines]
+\ProvidesPackage{WriteOnGrid}[2024/09/01 v0.1.7 package to write on grid lines]
+% 0.1.7 Option pour régler la marge pour les PleinePageCinqCinq
% 0.1.6 Commande pour calculer le nombre de lignes à insérer en fin de page / options Auto
% 0.1.5 Choix de la réglure pour le seyes (en pretest) + amélioration de la gestion des paragraphes
% 0.1.4 Suppression des options de xcolor (définition manuelle des couleurs)
@@ -564,16 +565,21 @@
}
%------page entière 5x5
+%les marges doivent valoir MargeH=0.2+k*0.5 et MargeV=0.3+k'*0.5
\defKV[CxCFull]{%
Couleur=\xdef\CCFullCoul{#1},%
CouleurMarge=\xdef\CCFullCoulM{#1},%
- FormatPapier=\xdef\CCFullFormatPap{#1}
+ FormatPapier=\xdef\CCFullFormatPap{#1},%
+ MargeG=\xdef\CCFullMargeG{#1},%
+ MargeH=\xdef\CCFullMargeH{#1}
}
\setKVdefault[CxCFull]{%
Couleur=lightgray!50,%
CouleurMarge=gray,%
NumLignes=false,%
- FormatPapier=A4
+ FormatPapier=A4,%
+ MargeG=auto,%
+ MargeH=auto
}
\NewDocumentEnvironment{PleinePageCinqCinq}{ O{} }%semble OK ^^
@@ -581,13 +587,49 @@
\useKVdefault[CxCFull]%
\setKV[CxCFull]{#1}%
\IfEq{\CCFullFormatPap}{A4}%
- {\xdef\CCFullHautPap{29.7}\xdef\CCFullLargPap{21}\xdef\CCFullMargeG{1.7}\xdef\CCFullMargeH{1.3}}%
+ {%
+ \xdef\CCFullHautPap{29.7}\xdef\CCFullLargPap{21}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.7}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{1.3}%
+ }%
+ {}%
+ }%
{}%
\IfEq{\CCFullFormatPap}{A5}%
- {\xdef\CCFullHautPap{21}\xdef\CCFullLargPap{14.8}\xdef\CCFullMargeG{1.2}\xdef\CCFullMargeH{0.8}}%
+ {%
+ \xdef\CCFullHautPap{21}\xdef\CCFullLargPap{14.8}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.2}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{0.8}%
+ }%
+ {}%
+ }%
{}%
\IfSubStr{\CCFullFormatPap}{x}%
- {\StrCut{\CCFullFormatPap}{x}{\CCFullLargPap}{\CCFullHautPap}\xdef\CCFullMargeG{1.7}\xdef\CCFullMargeH{1.3}}%
+ {%
+ \StrCut{\CCFullFormatPap}{x}{\CCFullLargPap}{\CCFullHautPap}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.7}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{1.3}%
+ }%
+ {}%
+ }%
{}%
%calcul du nombre de lignes /colonnes ?
\xdef\CCFullNbLign{\fpeval{round(\CCFullHautPap/(0.5),0)}}%
diff --git a/macros/latex/contrib/xcolor/ChangeLog b/macros/latex/contrib/xcolor/ChangeLog
index a85977fdd0..b366cd0e4b 100644
--- a/macros/latex/contrib/xcolor/ChangeLog
+++ b/macros/latex/contrib/xcolor/ChangeLog
@@ -3,6 +3,15 @@ https://github.com/latex3/xcolor/issues
History
=======
+2024/09/29 v3.02
+* remove definitions of color groups as they are already in the kernel.
+
+2024/09/17
+* unknown model error handled (issue #1)
+
+2024/03/13
+* Add \relax after \ProcessKeyOptions to improve error context lines
+
2023/11/15 v3.01
* only warn and not error if obsolete option usenames is used, issue #31
diff --git a/macros/latex/contrib/xcolor/README.md b/macros/latex/contrib/xcolor/README.md
index 2e89dafed9..66f53b32c7 100644
--- a/macros/latex/contrib/xcolor/README.md
+++ b/macros/latex/contrib/xcolor/README.md
@@ -1,6 +1,6 @@
## Package `xcolor` by Dr. Uwe Kern
-Version 2023-11-15 v3.01
+Version 2024-09-29 v3.02
Maintained by the LaTeX Project https://github.com/latex3/xcolor/issues
@@ -14,7 +14,7 @@ separation, and color wheel calculations.
## Copyright (C)
- 2003-2021 Dr. Uwe Kern
-- 2021-2023 The LaTeX Project
+- 2021-2024 The LaTeX Project
## License
LaTeX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/xcolor/xcolor.dtx b/macros/latex/contrib/xcolor/xcolor.dtx
index 5af5459682..5a8dd1ee08 100644
--- a/macros/latex/contrib/xcolor/xcolor.dtx
+++ b/macros/latex/contrib/xcolor/xcolor.dtx
@@ -2,7 +2,7 @@
%%
%% ----------------------------------------------------------------
%% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de>
-%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues
+%% 2021-2024 LaTeX Project https://github.com/latex3/xcolor/issues
%% ----------------------------------------------------------------
%%
%<*package>
@@ -18,8 +18,8 @@
%%
%</package>
%<*extract|driver|test1|test2|test3|test4>
-\def\XCfileversion{v3.01}%
-\def\XCfiledate{2023/11/15}%
+\def\XCfileversion{v3.02}%
+\def\XCfiledate{2024/09/29}%
%</extract|driver|test1|test2|test3|test4>
%
% This file may be distributed and/or modified under the
@@ -320,7 +320,7 @@
% There are proprietary models (like \Index{Pantone} or \Index{HKS}) that provide finite sets of colors (often called \emph{\Index{spot color}s}), where the user has to choose from without caring about parametrisations; on the other hand, there are parameter-driven models like \Model{gray}, \Model{rgb}, and \Model{cmyk}, that aim to represent large finite or even (theoretically) infinite sets of colors, built on very small subsets of base colors and rules, how to construct other colors from these base colors.
% For example, a large range of colors can be constructed by linear combinations of the base colors \Color{red}, \Color{green}, and \Color{blue}.
% On the other hand, usually \Index{spot color}s can only be \emph{approximated} by parameter values in models like \Model{cmyk} or \Model{rgb}; the original colors are being physically mixed even dependent on the targeted kind of paper.
-% Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducable by any parameter-driven color model on standard ink or laser printers.
+% Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducible by any parameter-driven color model on standard ink or laser printers.
%
%
%
@@ -501,7 +501,7 @@
%
% Example: assuming that |a.tex| is a complete \LaTeX{} document, a command like
% `|latex \def\xcolorcmd{\colorlet{black}{red}}\input{a}|'
-% at the console generates a file |a.dvi| with all occurences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself.
+% at the console generates a file |a.dvi| with all occurrences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself.
% (The exact spelling of the console command might vary across operating systems and \TeX{} distributions.)
%
%
@@ -2486,7 +2486,7 @@
% \subsection{Color conversion and complements}\label{sec.cnv}
%
% We collect here the specific conversion formulas between the supported color models.
-% Table \vref{tab.cnv} gives an overwiew of how each conversion pair is handled.
+% Table \vref{tab.cnv} gives an overview of how each conversion pair is handled.
% In general, \Index{PostScript} (as described in \cite{plrm}) is used as a basis for most of the calculations, since it supports the color models \Model{rgb}, \Model{cmyk}, \Model{hsb}, and \Model{gray} natively.
% Furthermore, \People{Alvy Ray}{Smith}'s paper \cite{smith} is cited in \cite{plrm} as reference for \Model{hsb}-related formulas.
%
@@ -4119,7 +4119,7 @@
{
,usenames .code =
{\PackageWarning{xcolor}{Package option `usenames' is obsolete and ignored}}
- ,usename .usage = preamble
+ ,usenames .usage = preamble
,hyperref .code =
{\PackageWarning{xcolor}{Package option `hyperref' is obsolete and ignored}}
,hyperref .usage = preamble
@@ -4153,9 +4153,14 @@
% \end{macrocode}
%
% After the options are processed, load the appropriate driver file.
-% If a site wants a default driver (e.g., \Option{dvips}) it just needs to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file.
+% If a site wants a default driver (e.g., \Option{dvips}) it just needs
+% to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file.
+%
+% Note |\relax| added here to ensure that |\ProcessKeyOptions| not the following
+% |\edef| shows in error context lines for unknown options.
+% \changes{3.02}{2024-03-13}{Added \cs{relax}}
% \begin{macrocode}
-\ProcessKeyOptions
+\ProcessKeyOptions\relax
% \end{macrocode}
%
% \begin{macro}{\XC@@drv}
@@ -4269,7 +4274,7 @@
%
% \begin{macro}{\xglobal}
% \begin{macro}{\xglobal@test}
-% If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal@true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitely global.
+% If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal@true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitly global.
% |\foo| is responsible for resetting |\xglobal@false| in order to avoid side effects.
% To include |\foo| in the magic list, simply say |\XC@append\xglobal@list{\foo}|.
% If |\foo| is not in the list, |\xglobal\foo| will behave like |\global\foo|, thus |\xglobal\let| will be like |\global\let| etc.
@@ -4356,7 +4361,7 @@
%
% \begin{macro}{\XC@replace}
% \marg{cmd}\marg{search}\marg{replace}\\
-% Replace all occurences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}.
+% Replace all occurrences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}.
% The replacement is recursive, so don't put the search pattern into the replacement text!
% Note that this macro is incapable of seeing `into' braces.
% The code and its explanation is taken from \People{Donald}{Arseneau}'s \Package{url} package \cite{url}, with only minor changes and renamings applied.
@@ -4976,9 +4981,10 @@
% Retrieve model position |\XC@@pos|, model |\@@mod|, and target model |\@@Mod| from multiple definitions (up to~8), separated by `|/|'.
% \begin{macrocode}
\def\XC@getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
- {\XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}%
+ {\def\XC@dflt@@mod{#1}%
+ \XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}%
\XC@getm@d3{#4}\XC@getm@d4{#5}\XC@getm@d5{#6}\XC@getm@d6{#7}%
- \XC@getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}%
+ \XC@getm@d7{#8}\def\XC@@pos{0}\let\@@mod\XC@dflt@@mod\@gobble\@nnil}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -4990,7 +4996,10 @@
% \begin{macrocode}
\def\XC@g@tm@d#1#2:#3:#4\XC@@
{\@ifxempty{#3}{\let\@@Mod\XC@mod@ignore\XC@getm@d0{#2}}%
- {\def\@@Mod{#2}\XC@getm@d0{#3}}}%
+ {\def\@@Mod{#2}%
+ \def\XC@tgt@mod##1{#2}%
+ \def\XC@dflt@@mod{#3}%
+ \XC@getm@d0{#3}}}%
% \end{macrocode}
% \end{macro}
%
@@ -6182,11 +6191,13 @@
%
%
% \subsubsection{Extra groups}
-% Turning on extra groups in the standard \LaTeX\ commands, so that color commands are scoped corectly.
%
-% Like |\normalcolor|, the following five commands are defined in the kernel, with empty definitions (|\relax|).
+% Like |\normalcolor|, the following five commands are defined in the kernel.
% This means that they can be used to make macros in packages `color safe'.
-% The commands will not have any effect unless a user also uses a color package, when the `active definitions' here will take effect and keep color commands correctly scoped.
+% The extra groups have been made permanent in the \LaTeX{} kernel 2021 so
+% they are no longer redefined here.
+% The |\color@setgroup| will not have any effect unless a user also uses
+% a color package, when the `active definition' here will take effect.
%
% \begin{macro}{\color@setgroup}
% This is to be used in contexts (e.g., `lrbox') where text is to be saved and used after some other, unknown, text that may contain color commands.
@@ -6200,38 +6211,23 @@
% This is to be used at the start of contexts that may contain color commands, but where it is not necessary to save the current color.
% Examples of this are in the box commands of \File{ltboxes.dtx} where user-supplied text is saved internally in a box between |\color@begingroup|, |\color@endgroup|, but the box is used before any other color commands could intervene.
% A matching |\color@endgroup| should be used at the end of the text.
-% \begin{macrocode}
-\let\color@begingroup\begingroup
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@endgroup}
% To be used to close the `group' started by one of the above two commands.
% The |\endgraf| in its definition is required in the case of groups of text in vertical `par' mode, but doesn't do any harm in horizontal `LR' contexts.
-% \begin{macrocode}
-\def\color@endgroup{\endgraf\endgroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@hbox}
% To be used to open a `colored hbox'
-% \begin{macrocode}
-\def\color@hbox{\hbox\bgroup\color@begingroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@vbox}
% To be used to open a `colored hbox'
-% \begin{macrocode}
-\def\color@vbox{\vbox\bgroup\color@begingroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@endbox}
% To be used to close a `colored (h/v)box'
-% \begin{macrocode}
-\def\color@endbox{\color@endgroup\egroup}
-% \end{macrocode}
% \end{macro}
%
%
@@ -6458,7 +6454,7 @@
%
% \begin{macro}{\XC@cnv@gray}
% \Meta{gray}|,|
-% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23}
+% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23}w
% \begin{macrocode}
\def\XC@cnv@gray#1,%
{\XC@ifxcase\tm
diff --git a/macros/latex/contrib/xcolor/xcolor.pdf b/macros/latex/contrib/xcolor/xcolor.pdf
index c9ab96b507..1988dfce2e 100644
--- a/macros/latex/contrib/xcolor/xcolor.pdf
+++ b/macros/latex/contrib/xcolor/xcolor.pdf
Binary files differ
diff --git a/macros/latex/contrib/xcolor/xcolor2.pdf b/macros/latex/contrib/xcolor/xcolor2.pdf
index 07d228343c..ae9d34157a 100644
--- a/macros/latex/contrib/xcolor/xcolor2.pdf
+++ b/macros/latex/contrib/xcolor/xcolor2.pdf
Binary files differ
diff --git a/macros/latex/contrib/xltabular/Changes b/macros/latex/contrib/xltabular/Changes
index 4863998012..7dc4c39726 100644
--- a/macros/latex/contrib/xltabular/Changes
+++ b/macros/latex/contrib/xltabular/Changes
@@ -1,3 +1,4 @@
+2.0g 2024/10/28 - prevent problematic behavior of longtable at page breaks
2.0e 2020/11/04 - insert a \par at the beginning of xltabular
2.0c 2020/03/20 - restore of original longtable more robust
2.0a 2018/12/16 - better hyperref support; example files
diff --git a/macros/latex/contrib/xltabular/xltabular-doc.pdf b/macros/latex/contrib/xltabular/xltabular-doc.pdf
index 31763a2549..395af9e19d 100644
--- a/macros/latex/contrib/xltabular/xltabular-doc.pdf
+++ b/macros/latex/contrib/xltabular/xltabular-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xltabular/xltabular-doc.tex b/macros/latex/contrib/xltabular/xltabular-doc.tex
index 2ad9695797..f78ffc8e2c 100644
--- a/macros/latex/contrib/xltabular/xltabular-doc.tex
+++ b/macros/latex/contrib/xltabular/xltabular-doc.tex
@@ -1,4 +1,4 @@
-%% $Id: xltabular-doc.tex 598 2017-09-30 19:52:25Z herbert $
+%% $Id: xltabular-doc.tex 635 2017-10-24 18:22:59Z herbert $
%
\listfiles\setcounter{errorcontextlines}{100}
\documentclass[paper=a4,fontsize=11pt,DIV=13,parskip=half-,
@@ -35,6 +35,9 @@
%\nolig{oe}{o|e}
\usepackage{xltabular}
+
+%\specialLTpagebreak
+
\usepackage{fancyvrb}
\usepackage{blindtext}
\usepackage{dtk-logos} % for Wikipedia W
@@ -317,10 +320,122 @@ Klassen-Optionen\\
\end{xltabular}
+\section{Pagebreaks}
+
+\texttt{xltabular} is based on \texttt{longtable} which itself has sometimes a problem with the pagebreak.
+It may be possible, that you'll get a break between a section header and the following \texttt{longtable}/\texttt{xltabular}.
+Here is an example with \texttt{xltabular}:
+
+\section{Title above the tabular}
+
+\begin{xltabular}{\linewidth}{@{} >{\ttfamily}l >{\RaggedRight}X @{}}
+\caption{File endings (only for a demonstration \ldots)}\\
+\hline
+.ext & Beschreibung\\\hline
+\endfirsthead
+\multicolumn{2}{@{}l}{\ldots\ \small Fortsetzung}\\\hline
+.ext & Beschreibung\\\hline
+\endhead
+\hline
+\multicolumn{2}{r@{}}{\small Fortsetzung\ldots}\\
+\endfoot
+\hline
+\endlastfoot
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+% aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+% bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+% bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+\end{xltabular}
+
+
+Package \texttt{xltabular} defines two macros which can be used to modify the behaviour of
+\texttt{longtable}/ \texttt{xltabular} for pagebreaks.
+
+\begin{verbatim}
+\newcommand*\normalLTpagebreak{...}
+\newcommand*\specialLTpagebreak{...}
+\end{verbatim}
+
+With \verb|\specialLTpagebreak| one can get another beaviour which prevents such unwanted pagebreak.
+With \verb|\normalLTpagebreak| you can set it back to the default behaviour. Here comes an example
+with the special behaviour by using \verb|\specialLTpagebreak|: \specialLTpagebreak
+
+
+
+\section{Title above the tabular}
+
+\begin{xltabular}{\linewidth}{@{} >{\ttfamily}l >{\RaggedRight}X @{}}
+\caption{File endings (only for a demonstration \ldots)}\\
+\hline
+.ext & Beschreibung\\\hline
+\endfirsthead
+\multicolumn{2}{@{}l}{\ldots\ \small Fortsetzung}\\\hline
+.ext & Beschreibung\\\hline
+\endhead
+\hline
+\multicolumn{2}{r@{}}{\small Fortsetzung\ldots}\\
+\endfoot
+\hline
+\endlastfoot
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+ aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+ bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+ bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+% cfg & (config) Konfigurationsdatei\\
+% clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+% Klassen-Optionen\\
+% aux & (auxiliary) Hilfsdatei, enthält Querverweise usw. \\
+% bbl & (bibliography) Hilfsdatei, enthält die Einträge für die Literatur\\
+% bib & (bibtex) enthält die Literaturdaten\\
+ blg & (bibliography log) enthält die Ausgaben eines Bib\TeX-Laufs\\
+ cfg & (config) Konfigurationsdatei\\
+ clo & (class options) Definitionen für die Dokumentenklasse und die entsprechenden
+ Klassen-Optionen\\
+\end{xltabular}
+
+
+
+\pagebreak
\nocite{*}
\printbibliography
\end{document}
-
diff --git a/macros/latex/contrib/xltabular/xltabular.sty b/macros/latex/contrib/xltabular/xltabular.sty
index 6752047c5e..6a6fc8b764 100644
--- a/macros/latex/contrib/xltabular/xltabular.sty
+++ b/macros/latex/contrib/xltabular/xltabular.sty
@@ -3,11 +3,12 @@
%% License from CTAN archives in directory macros/latex/base/lppl.txt.
%% Either version 1.3 or, at your option, any later version.
%%
-% Copyright 2018-2020 Herbert Voss <hvoss@tug.org>
+% Copyright 2018-2024 Herbert Voss <hvoss@tug.org>
% Rolf Niepraschk <Rolf.Niepraschk@gmx.de>
%%
-\ProvidesPackage{xltabular}[2020/11/04 v0.2e `xltabular' package (hv,RN)]
+\ProvidesPackage{xltabular}[2024/10/28 v2.0g `xltabular' package (hv,RN)]
\RequirePackage{tabularx}
+\RequirePackage{etoolbox}
\let\XLT@i@tabularx=\tabularx
\let\XLT@i@endtabularx=\endtabularx
\let\XLT@i@TX@endtabularx=\TX@endtabularx
@@ -15,9 +16,16 @@
\RequirePackage{ltablex}
\keepXColumns% xltabular behaves like tabularx
%
+\newif\ifXLT@normalPB \XLT@normalPBtrue
+\newcommand*\normalLTpagebreak{\global\XLT@normalPBtrue}
+\newcommand*\specialLTpagebreak{\global\XLT@normalPBfalse}
+%
\let\XLT@ii@tabularx=\tabularx
\let\XLT@ii@TX@endtabularx=\TX@endtabularx
\let\XLT@longtable=\longtable
+% prevents problematic behavior of longtable at page breaks (\XLT@normalPBfalse)
+\patchcmd{\LT@start}{\vfil \break}{\ifXLT@normalPB \vfil \break \fi}{}{}
+\patchcmd{\LT@start}{\penalty \z@}{\ifXLT@normalPB \penalty \z@ \fi}{}{}
\let\XLT@LT@start=\LT@start
\let\XLT@LT@array=\LT@array
\@ifundefined{scr@LT@array}{%
@@ -32,7 +40,7 @@
{\let\TX@endtabularx=\XLT@i@TX@endtabularx\XLT@i@tabularx}
{\XLT@i@endtabularx}
%
-% define a new tabularx like the one from "ltablex"
+% define a new tabularx like the one from "ltablex"
%
\newenvironment{xltabular}[1][x]%
{%
@@ -76,7 +84,7 @@
\hyper@makecurrent{\LTcaptype}%
\global\let\Hy@LT@currentHref\@currentHref
\fi
- % continue with the original definition of \LT@caption
+ % continue with the original definition of \LT@caption
\@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n
}
@@ -113,10 +121,10 @@
\fi
\def\LT@array{%
% make the call of \refstepcounter inside of \XLT@LT@array ineffective
- \renewcommand*\refstepcounter[2][]{%
+% \renewcommand*\refstepcounter[2][]{%
% make next calls effective again
- \let\refstepcounter=\XLT@refstepcounter
- }%
+% \let\refstepcounter=\XLT@refstepcounter
+% }%
\XLT@LT@array
}%
}
diff --git a/macros/latex/contrib/xreview/README b/macros/latex/contrib/xreview/README
new file mode 100644
index 0000000000..a8ead075a5
--- /dev/null
+++ b/macros/latex/contrib/xreview/README
@@ -0,0 +1,54 @@
++-----------------------------------------------------------------------+
+| |
+| _______ _______ _________ _______ |
+| |\ /|( ____ )( ____ \|\ /|\__ __/( ____ \|\ /| |
+| ( \ / )| ( )|| ( \/| ) ( | ) ( | ( \/| ) ( | |
+| \ (_) / | (____)|| (__ | | | | | | | (__ | | _ | | |
+| ) _ ( | __)| __) ( ( ) ) | | | __) | |( )| | |
+| / ( ) \ | (\ ( | ( \ \_/ / | | | ( | || || | |
+| ( / \ )| ) \ \__| (____/\ \ / ___) (___| (____/\| () () | |
+| |/ \||/ \__/(_______/ \_/ \_______/(_______/(_______) |
+| |
+| |
+| Reviewing LaTeX document made easy |
+| |
+| by Lorenzo Peri - lp586@cam.ac.uk |
+| |
++-----------------------------------------------------------------------+
+
+DESCRIPTION
+===========
+
+This package provides a simple way to review LaTeX documents. It allows to higlight and/or hide changes to a document, and to add comments to the text. This will help you to keep track of the changes you make to a document, and to easily spot the changes made by others, while always having the option of toggling a clean version of the document.
+
+This package also offers a way to include comments in the text, which can be toggled on and off. This is useful for adding notes to the text, or for leaving comments to other authors.
+
+AUTHOR
+======
+
+The package is maintained by Lorenzo Peri (https://github.com/LorenzoPeri17). The repository is available at https://github.com/LorenzoPeri17/xreview-latex.
+
+LICENSE
+=======
+
+MIT License
+
+Copyright (c) 2024 Lorenzo Peri
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/xreview/xreview.pdf b/macros/latex/contrib/xreview/xreview.pdf
new file mode 100644
index 0000000000..27374c984d
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.pdf
Binary files differ
diff --git a/macros/latex/contrib/xreview/xreview.sty b/macros/latex/contrib/xreview/xreview.sty
new file mode 100644
index 0000000000..a6d2501eed
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.sty
@@ -0,0 +1,135 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xreview}[2024/08/29 Reviewing LaTeX documents made easy]
+
+\RequirePackage{xcolor}
+\RequirePackage[normalem]{ulem}
+\RequirePackage{etoolbox}
+\RequirePackage{environ}
+\RequirePackage{letltxmacro}
+\RequirePackage{todonotes}
+\RequirePackage{soul}
+\RequirePackage{pifont}
+\RequirePackage{xparse}
+\RequirePackage{amsmath}
+
+%%%% Equation numbering
+\newcounter{removedeqcounter}
+\setcounter{removedeqcounter}{0}
+
+%%%% Comment numbering
+\newcounter{commentcounter}
+\setcounter{commentcounter}{0}
+
+%%%% Define colours and prefixes
+\newcommand{\addedcolor}{blue}
+\newcommand{\removedcolor}{red}
+\newcommand{\removedeqprefix}{R}
+\newcommand{\commentcolor}{yellow}
+\newcommand{\resolvedcommentcolor}{green}
+\newcommand{\commentprefix}{C}
+
+%%%% Necessary for comments to work in twocolumn-type documents
+\setlength{\marginparwidth}{2cm}
+
+%%%% Reviewing commands
+\newtoggle{annotated}
+\toggletrue{annotated} % Show changes by default
+
+\newcommand{\showchanges}{\toggletrue{annotated}}
+\newcommand{\showclean}{\togglefalse{annotated}}
+
+\newtoggle{commented}
+\toggletrue{commented} % Show comments by default
+
+\newcommand{\showcomments}{\toggletrue{commented}}
+\newcommand{\hidecomments}{\togglefalse{commented}}
+
+%%%% Text coloring and hiding
+\newcommand{\colortext}[2]{{\leavevmode\color{#1}{#2}}}
+\newcommand{\safesout}[1]{\ifmmode\text{\sout{\ensuremath{#1}}}\else\sout{#1}\fi}
+\newcommand{\hidefromclean}[1]{\iftoggle{annotated}{#1}{}}
+
+\newcommand{\added}[1]{\iftoggle{annotated}{\colortext{\addedcolor}{#1}}{{#1}}}
+
+\newcommand{\removed}[1]{\hidefromclean{%
+\begingroup%
+\let\oldcite\cite%
+\renewcommand{\cite}[1]{\mbox{\oldcite{##1}}}%
+\colortext{\removedcolor}{\safesout{#1}}%
+\endgroup}}
+
+\newcommand{\changed}[2]{\removed{#1}\iftoggle{annotated}{ }{}\added{#2}}
+
+%%%% Equation coloring and hiding
+\NewEnviron{remequation}{\hidefromclean{%
+\addtocounter{equation}{-1}%
+\refstepcounter{removedeqcounter}%
+\renewcommand{\theequation}{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}%
+\let\oldnonumber\nonumber%
+\renewcommand{\nonumber}{\addtocounter{equation}{1}\addtocounter{removedeqcounter}{-1}\oldnonumber}%
+\renewcommand{\notag}{\nonumber}%
+\begin{equation}%
+\color{\removedcolor}%
+\safesout{\BODY}%
+\end{equation}}}
+
+\NewEnviron{remequation*}{\hidefromclean{%
+\begin{equation*}%
+\color{\removedcolor}%
+\safesout{\BODY}%
+\end{equation*}}}
+
+\NewEnviron{addequation}{%
+\begin{equation}%
+\added{\BODY}%
+\end{equation}}
+
+\NewEnviron{addequation*}{%
+\begin{equation*}%
+\added{\BODY}%
+\end{equation*}}
+
+\newcommand{\removedeqline}[1]{\hidefromclean{%
+\let\oldnonumber\nonumber%
+\renewcommand{\nonumber}{\global\tag@false\addtocounter{removedeqcounter}{-1}}%
+\renewcommand{\notag}{\nonumber}%
+\makeatletter%
+\newcommand{\remlabel}{%
+\refstepcounter{removedeqcounter}%
+\global\tag@true%
+\oldnonumber%
+\gdef\df@tag{\maketag@@@{\textcolor{\removedcolor}{(\removedeqprefix\arabic{removedeqcounter})}}\def\@currentlabel{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}}}
+\makeatother
+\remlabel%
+\color{\removedcolor}%
+\makeatletter\let\default@color\current@color\makeatother%
+\safesout{#1}%
+}}
+
+\newcommand{\addedeqline}[1]{%
+\iftoggle{annotated}{\color{\addedcolor}{#1}}%
+{{#1}}%
+}
+
+\newcommand{\remaligntab}{\hidefromclean{&}}
+\newcommand{\remnewline}{\hidefromclean{\\}}
+
+%%%% Commenting
+\DeclareRobustCommand{\resolvedhl}[1]{{\sethlcolor{green}\hl{#1}}}
+
+\newcommand{\comment}[3][]{%
+\stepcounter{commentcounter}%
+\ifboolexpr{togl{annotated} and togl{commented}}{%
+\hl{#2}\todo[prepend, color=\commentcolor ,caption=\textbf{\commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}%
+{#2}}
+
+\newcommand{\resolvedcomment}[3][]{%
+\stepcounter{commentcounter}%
+\ifboolexpr{togl{annotated} and togl{commented}}{%
+\resolvedhl{#2}\todo[prepend, color=\resolvedcommentcolor ,caption=\textbf{\ding{52} \commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}%
+{#2}}
+
+\NewDocumentCommand{\authoredcomments}{O{} O{} m}{%
+ \expandafter\newcommand\csname #3comment\endcsname{\comment[author=#3, #1]}%
+ \expandafter\newcommand\csname resolved#3comment\endcsname{\resolvedcomment[author=#3, #2]}%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/xreview/xreview.tex b/macros/latex/contrib/xreview/xreview.tex
new file mode 100644
index 0000000000..31664b2869
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.tex
@@ -0,0 +1,591 @@
+\documentclass[a4paper]{ltxdoc}
+\usepackage{amsmath}
+\usepackage{hyperref}
+\usepackage{parskip}
+\usepackage{bold-extra}
+\usepackage{cite}
+\usepackage{filecontents}
+
+
+\usepackage{xreview}
+
+\newcommand{\writecommand}[1]{\texttt{\textbf{{\textbackslash#1}}}}
+\newcommand{\writeenv}[1]{\texttt{\textbf{{#1}}}}
+\newcommand{\writearg}[1]{\{#1\}}
+
+\begin{filecontents}{bibliography.bib}
+ @book{texbook,
+ author = {Donald E. Knuth},
+ year = {1986},
+ title = {The {\TeX} Book},
+ publisher = {Addison-Wesley Professional}
+}
+@book{latex2e,
+ author = {Leslie Lamport},
+ year = {1994},
+ title = {{\LaTeX}: a Document Preparation System},
+ publisher = {Addison Wesley},
+ address = {Massachusetts},
+ edition = {2}
+}
+\end{filecontents}
+
+\title{\textbf{xreview}: \\ \Large{Reviewing
+\LaTeX~documents made easy}}
+
+\author{Lorenzo Peri\\\textcolor{blue}{\href{mailto:lp586@cam.ac.uk}{lp586@cam.ac.uk}}}
+\date{\today, v-1.0}
+
+\hypersetup{
+ pdftitle={xreview},
+ pdfauthor={Lorenzo Peri},
+ urlcolor=cyan,
+}
+
+\changes{v1.0}{2024/08/27}{First version}
+
+\showchanges
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+ \textit{xreview} is an attempt to make the painful process of reviewing a \LaTeX~document easy, or, at least, \textit{a little} less painful.
+\end{abstract}
+
+\tableofcontents
+
+\section{Getting Started}
+
+Have you ever had to make modifications to a manuscript while needing to keep track of the changes? Have you ever been asked by a journal to provide a revised version highlighting the changes \textit{and} a clean version? Is your brain utterly incapable of reasoning about a sentence while it's wrapped in dashes and distracting colors?
+Now you can \texttt{\textbf{{$\backslash$usepackage}}\{xreview\}} to make your life \textit{a little} less miserable.
+
+\subsection{The basics}
+
+\textit{xreview} allows you to quickly show and hide changes to a document.
+This is achieved providing two commands:
+\begin{itemize}
+ \item \writecommand{showchanges} to annotate the changes;
+ \item \writecommand{showclean} to compile a clean document.
+\end{itemize}
+
+Changes can be annotated mostly using the commands:
+\begin{itemize}
+ \item \writecommand{removed} for \removed{removed sections}
+ \item \writecommand{added} for \added{added sections}
+ \item \writecommand{changed} for sections that have been \changed{changed}{modified}
+\end{itemize}
+
+Sounds great, right? Here is a simple example of the package in use!
+
+\begin{center}
+\begin{minipage}[t]{0.3\linewidth}
+\textbf{\LaTeX Code}
+
+\writecommand{textit} \writearg{xreview} is a \writecommand{removed} \writearg{fantastic} package to help \writecommand{added} \writearg{\writecommand{LaTex}} authors review their manuscripts to respond to the \writecommand{changed}\writearg{annoying} \writearg{valuable} modifications suggested by referees.
+
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.3\linewidth}
+\writecommand{showchanges}
+\showchanges
+
+\textit{xreview} is a \removed{fantastic} package to help \added{\LaTeX} authors review their manuscripts to respond to the \changed{annoying}{valuable} modifications suggested by referees.
+
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.3\linewidth}
+\writecommand{showclean}
+\showclean
+
+\textit{xreview} is a \removed{fantastic} package to help \added{\LaTeX} authors review their manuscripts to respond to the \changed{annoying}{valuable} modifications suggested by referees.
+\end{minipage}
+\end{center}
+\showchanges
+
+If you look at the source code of this document, you will see that you can toggle \writecommand{showchanges} and \writecommand{showclean} to only show/hide changes in a certain section!
+
+\subsection{Dealing with equations}
+
+The author of this package is a \changed{nerd}{physicist}, so they know full well the pain of needing to review mathematical papers with equations.
+Therefore, \textit{xcite} has first class support for math mode and the more common math environments.
+
+\subsubsection{Inline math}
+
+Inline math (defined within \$ symbols) can be safely used within \writecommand{removed}, \writecommand{added}, and \writecommand{changed}. For example \removed{$\tau$ is superior to $\pi$} is a statement that \textit{should} be \writecommand{removed}.
+
+\subsubsection{\writeenv{remequation} and \writeenv{remequation*} environments}
+
+Dealing with annotating equations is weird and generally quite annoying.
+\textit{xcite} attempts to smooth the process as much as possible by providing the \writeenv{remequation} and \writeenv{remequation*} environments.
+Those markup an equation as if it was \writecommand{removed} while also dealing with numbering correctly, so that \textbf{equation numbering will not change between the annotated and clean versions}.
+
+To simply mark an equation that must be removed, \writeenv{remequation*} can be used as such.
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ while this is removed.\newline
+ \writecommand{begin}\writearg{remequation*}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{remequation*}\newline
+ See?
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}\addtocounter{equation}{-1}
+ while this is removed.
+ \begin{remequation*}
+ a+b = d
+ \end{remequation*}
+ See?
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}\addtocounter{equation}{-1}
+ while this is removed.
+ \begin{remequation*}
+ a+b = d
+ \end{remequation*}
+ See?
+
+\end{minipage}
+\end{center}
+\showchanges
+
+Sometimes, however, it is useful to be able to reference an equation that is marked to be removed. This may happen because either some text referenced it, or to carry out a discussion around it (i.e. why it was removed).
+To facilitate this, \textit{xreview} provides the \writeenv{remequation} environment, which \textbf{introduces a separate numbering scheme for removed equations}.
+The prefix for this separate numbering is normally a capital `R'. However, this can be customized to one's preference (see Section~\ref{sec:custom}).
+Here's an example
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ while this is removed and labelled\newline
+ \writecommand{begin}\writearg{remequation}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{remequation}\newline
+ without altering the normal equation numbering.\newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad b+c = d\newline
+ \writecommand{end}\writearg{equation}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is removed and labelled
+ \begin{remequation}
+ a+b = d
+ \label{eq:remeq_example}
+ \end{remequation}\addtocounter{removedeqcounter}{-1}
+ without altering the normal equation numbering.
+ \begin{equation}
+ b+c = d
+ \end{equation}\addtocounter{equation}{-2}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is removed and labelled
+ \begin{remequation}
+ a+b = d
+ \end{remequation}
+ without altering the normal equation numbering.
+ \begin{equation}
+ b+c = d
+ \end{equation}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+The \writeenv{remequation} environment is compatible with the standard \writecommand{ref} or \writecommand{eqref} commands. For example, I can now reference equation \ref{eq:remeq_example} from the example.
+
+Similarly, \textit{xreview} provides \writeenv{addequation} and \writeenv{addequation*} to mark an equation as added. \textbf{Added equations follow the same numbering as regular equations, and they are indistinguishable in the clean version}. Here is an example:
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ and this is colored.\newline
+ \writecommand{begin}\writearg{addequation}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{addequation}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ and this is colored.
+ \begin{addequation}
+ a+b = d
+ \end{addequation}\addtocounter{equation}{-2}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is colored.
+ \begin{addequation}
+ a+b = d
+ \end{addequation}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+Should one wish to, \writeenv{remequation*} may be replicated with \writeenv{remequation} by using the \writecommand{nonumber} or \writecommand{notag} commands hiding the tag and not incrementing the removed equation counter. The same goes for \writeenv{addequation}.
+
+\subsubsection{\writecommand{removedeqline} and \texttt{align}-like environments}
+
+Sometimes, some \textit{tragical} times, one must edit one equation defined within a series of equations (i.e. in an \texttt{align} environment).
+While \writecommand{removed}, \writecommand{added}, and \writecommand{changed} work just fine to modify the text, the equation ordering may be compromised.
+
+Even within \textit{xreview} this is \textit{slightly} awkward and generally not recommended. However, we do provide functionality to do so in the most ergonomic way possible. This is achieved by providing the commands:
+\begin{itemize}
+ \item \writecommand{removedeqline} that turns an \writeenv{equation} line into a \writeenv{remequation};
+ \item \writecommand{addedeqline} that typesets the line as if it was \writecommand{added};
+ \item \writecommand{remaligntab} and \writecommand{remnewline} to help with alignment and typesetting of the clean version.
+\end{itemize}
+
+The simplest example reads:
+
+\begin{center}
+ \begin{minipage}[t]{0.34\linewidth}
+ \textbf{\LaTeX Code}
+
+
+ \writecommand{begin}\writearg{align}
+
+ \& a+b = c \textbackslash\textbackslash
+
+ \writecommand{remaligntab} \writecommand{removedeqline}\writearg{a+b=d} \writecommand{remnewline}
+
+ \& \writecommand{addedeqline}\writearg{b+c=d}\newline
+ \writecommand{end}\writearg{align}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ \begin{align}
+ a+b =c \\
+ \removedeqline{a+c=d} \remnewline
+ \addedeqline{b+c = d}
+ \end{align}\addtocounter{equation}{-2}\addtocounter{removedeqcounter}{-1}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ \begin{align}
+ a+b =c \\
+ \removedeqline{a+c=d} \remnewline
+ \addedeqline{b+c = d}
+ \end{align}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+The only caveat is that \textbf{\& be replaced with \writecommand{remaligntab} and \textbackslash\textbackslash be replaced with \writecommand{remnewline} on \writecommand{removedeqline} lines}.
+However, problems arise if the alignment tab \& is desired \textit{inside} \writecommand{removedeqline} or \writecommand{addedeqline}. In this case, we run into trouble because commands cannot easily cross an alignment point. Thus, we must write \textbf{two} commands:
+\begin{itemize}
+ \item \writecommand{remnewline}\writearg{\textit{before tab}} \writecommand{remaligntab} \writecommand{removed}\writearg{\textit{after tab}};
+ \item \writecommand{addedeqline}\writearg{\textit{before tab}} \& \writecommand{added}\writearg{\textit{after tab}}
+\end{itemize}
+
+
+\begin{center}
+ \begin{minipage}[t]{0.34\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{align}
+
+ a+b \&= c \textbackslash\textbackslash
+
+ \writecommand{removedeqline}\writearg{a+b} \writecommand{remaligntab} \writecommand{removed}\writearg{=d} \writecommand{remnewline}
+
+ \writecommand{addedeqline}\writearg{a+b} \& \writecommand{added}\writearg{=2d}\newline
+ \writecommand{end}\writearg{align}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ \begin{align}
+ a+b &=c \\
+ \removedeqline{c} \remaligntab \removed{=d} \remnewline
+ \addedeqline{c} & \added{= 2d}
+ \end{align}\addtocounter{equation}{-2}\addtocounter{removedeqcounter}{-1}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ \begin{align}
+ a+b &=c \\
+ \removedeqline{c} \remaligntab \removed{=d} \remnewline
+ \addedeqline{c} & \added{= 2d}
+ \end{align}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+If it is desired to hide the \writecommand{removedeqline} tag, the commands \writecommand{nonumber} or \writecommand{notag} can be used \textbf{inside the \writecommand{removedeqline} command}.
+
+\subsection{Comments}
+
+Comments are a great way to communicate with various authors, to carry out a discussion directly on a shared document or to share ideas and questions together with the compiled manuscript.
+
+\textit{xreview} allows for the possibility to insert comments that out of the box work in one- or two-column documents.
+
+\subsubsection{The \writecommand{comment} command}
+
+Simple comments can be attached to a snippet of text and \textbf{are hidden on the clean version}.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+\writecommand{textit}\writearg{xreview} is \writecommand{comment}\writearg{the greatest \writecommand{TeX} package ever written!}\writearg{Have you heard of \writecommand{textit}\writearg{amsmath}?}
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+\textit{xreview} is \comment{the greatest \TeX~package ever written!}{Have you heard of \textit{amsmath}?}
+\end{quote}
+
+\writecommand{showclean}
+\showclean
+
+\begin{quote}
+\textit{xreview} is \comment{the greatest \TeX~package ever written!}{Have you heard of \textit{amsmath}?}
+\end{quote} \addtocounter{commentcounter}{-1}
+
+\showchanges
+
+\textbf{Every comment is numbered} for ease of reference, with a customizable prefix (a capital `C' by default, see Section~\ref{sec:custom}).
+
+Sometimes, it is desirable to share only the changes and hide the comments. For this scenario, \textit{xreview} provides a separate toggle:
+\begin{itemize}
+ \item \writecommand{showcomments} to show comments on the annotated document;
+ \item \writecommand{hidecomments} to hide comments \textbf{even if \writecommand{showchanges} is set}.
+\end{itemize}
+
+\writecommand{comment} takes as optional argument everything accepted by \writecommand{todo} in the \href{https://ctan.org/pkg/todonotes?lang=en}{todonotes package}. This can be used, for example, to override the default color.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This is a \writecommand{comment}[backgroundcolor=red]\writearg{red comment!}\writearg{It looks angry.}
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+This is a \comment[backgroundcolor=red]{red comment!}{It looks angry.}
+\end{quote}
+
+
+\subsubsection{\writecommand{resolvedcomment}: a useful pattern}
+
+Sometimes comments tend to stick around for \textit{a while}. However, this has the downside of hiding which have been resolved and which are still outstanding.
+To avoid this anti-pattern, \textit{xreview} offers the command \writecommand{resolvedcomment} to mark a comment as resolved!
+Changing \writecommand{comment} to \writecommand{resolvedcomment} will make outstanding matters stand out atop a sea of calming satisfying green.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This is \writecommand{resolvedcomment}\writearg{easy}\writearg{Understood!} while this is \writecommand{comment}\writearg{hard}\writearg{Still unclear...}.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+This is \resolvedcomment{easy}{Understood!} while this is \comment{hard}{Still unclear...}.
+\end{quote}
+
+\subsubsection{\writecommand{authoredcomments}: another useful pattern}
+
+It is most times helpful to know who wrote a comment. This is made easy by the \writecommand{authoredcomments} command. This is used as such
+
+\begin{quote}
+ \writecommand{authoredcomments}[Optional: mods to \writecommand{comment}][Optional: mods to \writecommand{resolvedcomment}]{Authorname}
+\end{quote}
+\noindent
+and creates two commands \writecommand{Authornamecomment} and \writecommand{resolvedAuthornamecomment} which will mark the author and can easily be distinguished.
+Here is an example:
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ \writecommand{authoredcomments}[color=cyan]\writearg{Lorenzo}\newline
+ \writecommand{authoredcomments}[color=orange]\writearg{Alice}\newline
+
+ This is \writecommand{Alicecomment}\writearg{great}\writearg{Written by Alice.} while this \writecommand{Lorenzocomment}\writearg{less so}\writearg{Written by Lorenzo}.
+
+ This is an \writecommand{resolvedLorenzocomment}\writearg{old modification}\writearg{Found appropriate citation.} we discussed.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+ \authoredcomments[color=cyan]{Lorenzo}
+ \authoredcomments[color=orange]{Alice}
+This is \Alicecomment{great}{Written by Alice.} while this \Lorenzocomment{less so}{Written by Lorenzo}.
+
+This is an \resolvedLorenzocomment{old modification}{Found appropriate citation.} we discussed.
+\end{quote}
+
+\section{Caveats, tips, and tricks}
+
+\textit{xreview} tries to smooth away all the rough edges of trying to dynamically(-ish) change \LaTeX. However, here are some common pitfalls and caveats that are worth pointing out.
+
+\subsection{Dealing with \writecommand{sout}}
+
+Certain commands in \LaTeX are more feisty than others. Among those, \writecommand{sout} must take the crown for the most useful command that does not like to cooperate with others. In particular, it does not like commands like \writecommand{cite}.
+\textit{xreview} tries to deal with this for you, so we can simply write \changed{\LaTeX \cite{latex2e} replaces \TeX \cite{texbook}}{\LaTeX \cite{latex2e} is a set of macros built atop \TeX \cite{texbook}}.
+
+However, if you recently added a \writecommand{removed} or \writecommand{changed} section and all of a sudden the document does not compile, try wrapping any \textit{suspicious} command in an \writecommand{mbox} (i.e. \writecommand{command}\writearg{\dots} $\rightarrow$ \writecommand{mbox}\{\writecommand{command}\writearg{\dots}\}) and see if this fixes it!
+
+\subsection{Being aware of whitespace}
+
+\textit{xreview} tries its best to ensure both the annotated and clean documents look fantastic. However, is is easy to introduce too much (or too little) whitespace to make either one look sloppy. The biggest culprit is usually having wrapped whitespace at either end of \writecommand{removed} (i.e. \writecommand{removed}\writearg{ \textit{words} }) or having whitespace at the end of \writecommand{removed} or a line.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This will merge\writecommand{removed}\writearg{ separate }words.
+ \writecommand{removed} \writearg{This is removed.}\textvisiblespace This sentence is far from the previous.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+ This will merge\removed{ separate }words.
+ \removed{This is removed.} This sentence is far from the previous.
+\end{quote}
+
+\writecommand{showclean}
+\showclean
+
+\begin{quote}
+ This will merge\removed{ separate }words.
+ \removed{This is removed.} This sentence is far from the previous.
+\end{quote}
+
+\showchanges
+
+This problem is exacerbated when dealing with equations or when a paragraph break is desired in one version but not the other. In that case the command \writecommand{hidefromclean} may be of great help.
+
+\subsection{Comments are not wide enough}
+
+Comment width is optimized to look nice in two-colum documents. If you are writing a single-column manuscript (or would just prefer them to go a little closer to the page margin), you can use
+\begin{quote}
+ \writecommand{setlength}\writearg{\writecommand{marginparwidth}}\writearg{\textit{desired width}}
+\end{quote}
+in the preamble \underline{\textbf{after}} \writecommand{usepackage}\writearg{xcite}.
+
+The default with is \texttt{2 cm}.
+
+\section{Customization}
+\label{sec:custom}
+
+Most aesthetical aspects of \textit{xreview} are customizable. To do so, simply insert this line in the document preamble
+\begin{quote}
+ \writecommand{renewcommand}\{\writecommand{thecommand}\}\writearg{new options}
+\end{quote}
+
+The commands available to be redefined are:
+\begin{itemize}
+ \item \writecommand{addedcolor} [default: \textcolor{blue}{blue}]: the color of \writecommand{added} sections;
+ \item \writecommand{removedcolor} [default: \textcolor{red}{red}]: the color of \writecommand{removed} sections;
+ \item \writecommand{commentcolor} [default: \textcolor{yellow}{yellow}]: the background color of \writecommand{comment};
+ \item \writecommand{resolvedcommentcolor} [default: \textcolor{green}{green}]: the background color of \writecommand{resolvedcomment};
+ \item \writecommand{removedeqprefix} [default: R]: the prefix for the tag of removed equations;
+ \item \writecommand{commentprefix} [default: C]: the prefix comment captions.
+\end{itemize}
+
+
+\bibliographystyle{unsrt}
+\bibliography{bibliography.bib}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/zref-clever/CHANGELOG.md b/macros/latex/contrib/zref-clever/CHANGELOG.md
index 3cf6c73b25..9b2d8e2c2c 100644
--- a/macros/latex/contrib/zref-clever/CHANGELOG.md
+++ b/macros/latex/contrib/zref-clever/CHANGELOG.md
@@ -1,6 +1,21 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.4.5...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.4.7...HEAD)
+
+## [v0.4.7](https://github.com/gusbrs/zref-clever/compare/v0.4.6...v0.4.7) (2024-09-30)
+
+### Changed
+- Inhibit missing name warning if `noname` option is in use.
+
+## [v0.4.6](https://github.com/gusbrs/zref-clever/compare/v0.4.5...v0.4.6) (2024-08-23)
+
+### Fixed
+- Fix sorting of appendix references.
+
+### Changed
+- The `counterresetters` option now receives a full comma separated list of
+ counters as value, instead of working by incrementally adding values to the
+ list.
## [v0.4.5](https://github.com/gusbrs/zref-clever/compare/v0.4.4...v0.4.5) (2024-05-20)
diff --git a/macros/latex/contrib/zref-clever/zref-clever-code.pdf b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
index 09b441eeb1..a3885ad3d6 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-code.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever-doc.pdf b/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
index 5594a06fb3..78cc9f7d60 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever-doc.tex b/macros/latex/contrib/zref-clever/zref-clever-doc.tex
index e088c49915..b91cceb551 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-doc.tex
+++ b/macros/latex/contrib/zref-clever/zref-clever-doc.tex
@@ -245,20 +245,23 @@ where it lies.
But the plethora of existing features, packages and document classes which, in
one way or another, extends this basic functionality is a clear indication of
-a demand for more automation. Just to name the most popular: \pkg{cleveref},
-\pkg{hyperref}, \pkg{titleref}, \pkg{nameref}, \pkg{varioref}, \pkg{fancyref},
+a demand for more automation. Just to name the some of the most popular:
+\pkg{cleveref}, \pkg{nameref}, \pkg{titleref}, \pkg{varioref}, \pkg{fancyref},
and the kernel's \cs{labelformat}.
-However, the standard cross-referencing system stores two, and only two,
-properties with the label: the printed representation of the counter last
-incremented with \cs{refstepcounter} and the page. Of course, out of the
-mentioned desire to automate more, the need arose to store more information
-about the label to support this: the title or caption of the referenced
-object; its counter or, even better, its ``type'', that is, whether it is a
-section, chapter, figure, etc.; its hyperlink anchor, and so on. Thus those
-two property ``fields'' of the standard label became quite a disputed real
-state. And the packages in this area of functionality were bound to step on
-each other's toes as a result.
+However, the standard cross-referencing system traditionally stored two, and
+only two, properties with the label: the printed representation of the counter
+last incremented with \cs{refstepcounter} and the page.\footnote{Nowadays, it
+ stores 5, so that \pkg{hyperref} and \pkg{nameref} no longer need to
+ redefine \cs{label}.} Of course, out of the mentioned desire to automate
+more, the need arose to store more information about the label to support
+this: the title or caption of the referenced object; its counter or, even
+better, its ``type'', that is, whether it is a section, chapter, figure, etc.;
+its hyperlink anchor, and so on. Thus those two property ``fields'' of the
+standard label became quite a disputed real state. And the packages in this
+area of functionality, or which somehow depended on extending the
+cross-referencing mechanism, were bound to step on each other's toes as a
+result.
Out of this conundrum, Heiko Oberdiek eventually developed \pkg{zref}, which
implements an extensible referencing system, making the labels store a
@@ -890,30 +893,31 @@ know the counter associated with a particular label but also information on
any counter whose stepping may trigger its resetting, or its ``enclosing
counters''. This information is not easily retrievable from the counter
itself but is (normally) stored with the counter that does the resetting. The
-\opt{counterresetters} option adds counter names, received as a comma
-separated list, to the list of counters \pkg{zref-clever} uses to search for
-``enclosing counters'' of the counter for which a label is being set.
-Unfortunately, not every counter gets reset through the standard machinery for
-this, including some \LaTeX{} kernel ones (e.g. the \texttt{enumerate}
-environment counters). For those, there is really no way to retrieve this
-information directly, so we have to just tell \pkg{zref-clever} about them.
-And that's what the \opt{counterresetby} option is made for. It receives a
-comma separated list of \texttt{key=value} pairs, in which \texttt{key} is the
-counter, and \texttt{value} is its ``enclosing counter'', that is, the counter
-whose stepping results in its resetting. This is not really an ``option'' in
-the sense of ``user choice'', it is more of a way to inform \pkg{zref-clever}
-of something it cannot know or automatically find in general. One cannot
-place arbitrary information there, or \pkg{zref-clever} can be thoroughly
-confused. The setting must correspond to the actual resetting behavior of the
-involved counters. \opt{counterresetby} has precedence over the search done
-in the \opt{counterresetters} list. The default value of
-\opt{counterresetters} includes the counters for sectioning commands of the
-standard classes which, in most cases, should be the relevant ones for
-cross-referencing purposes. The default value of \opt{counterresetby}
-includes the \texttt{enumerate} environment counters. So, hopefully, you
-don't need to ever bother with either of these options. But, if you do, they
-are here. Use them with caution though. Since these options only affect how
-labels are set, they are not available in \cs{zcref}.
+\opt{counterresetters} option receives a full comma separated list of counter
+names, which \pkg{zref-clever} uses to search for ``enclosing counters'' of
+the counter for which a label is being set. The order matters (see code
+documentation for details), and you should also take care to start from the
+initial value set by the package. Unfortunately, not every counter gets reset
+through the standard machinery for this, including some \LaTeX{} kernel ones
+(e.g. the \texttt{enumerate} environment counters). For those, there is
+really no way to retrieve this information directly, so we have to just tell
+\pkg{zref-clever} about them. And that's what the \opt{counterresetby} option
+is made for. It receives a comma separated list of \texttt{key=value} pairs,
+in which \texttt{key} is the counter, and \texttt{value} is its ``enclosing
+counter'', that is, the counter whose stepping results in its resetting. This
+is not really an ``option'' in the sense of ``user choice'', it is more of a
+way to inform \pkg{zref-clever} of something it cannot know or automatically
+find in general. One cannot place arbitrary information there, or
+\pkg{zref-clever} can be thoroughly confused. The setting must correspond to
+the actual resetting behavior of the involved counters. \opt{counterresetby}
+has precedence over the search done in the \opt{counterresetters} list. The
+default value of \opt{counterresetters} includes the counters for sectioning
+commands of the standard classes which, in most cases, should be the relevant
+ones for cross-referencing purposes. The default value of
+\opt{counterresetby} includes the \texttt{enumerate} environment counters.
+So, hopefully, you don't need to ever bother with either of these options.
+But, if you do, they are here. Use them with caution though. Since these
+options only affect how labels are set, they are not available in \cs{zcref}.
\DescribeOption{\raisebox{.4em}{\dbend}\ currentcounter} %
\LaTeX{}'s \cs{refstepcounter} sets two variables which potentially affect the
@@ -2242,12 +2246,12 @@ A figure.
\section{Limitations}
\zlabel{sec:limitations}
-Being based on \pkg{zref} entails one quite sizable advantage for
+Being based on \pkg{zref} entails one significant advantage for
\pkg{zref-clever}: the extensible referencing system of the former allows
\pkg{zref-clever} to store and retrieve the information it needs to work
-without having to redefine some core \LaTeX{} commands. This alone makes for
-reduced compatibility problems and less load order issues than the average
-package in this functionality area. On the other hand, being based on
+without having to redefine some core \LaTeX{} commands. Which leads to less
+compatibility problems and load order issues than some traditional
+cross-reference related packages. On the other hand, being based on
\pkg{zref} also does impair the supported scope of \pkg{zref-clever}. Not
because of any particular limitation of either, but because any class or
package which implements some special handling for reference labels
@@ -2328,6 +2332,13 @@ handling. These are just the ones for which some special treatment was
required. Of course, this effort is bound to be incomplete (see
\zcref{sec:limitations}).
+Note that settings performed by the compatibility modules require special care
+if they are to be changed by users. Since the modules depend on what has been
+loaded or not in the document, the settings are done at
+\texttt{begindocument}. Hence, to override a setting performed by a
+compatibility module, the user must ensure their change comes after that,
+e.g.\ by adding their setting to the \texttt{begindocument} hook.
+
The purpose of outlining to some extend what the compatibility modules do is
twofold. First, some of them require usage adjustments for label setting,
which must be somehow conveyed in this documentation. Second, the kind and
@@ -2347,18 +2358,21 @@ for numbering and \cs{appendixname} for chapter's names. In sum, we'd like to
refer to the appendix sectioning commands as ``appendices'' rather than
``chapters'' or ``sections''. Since the sectioning commands are the same as
before \cs{appendix}, and so are their underlying counters, we must configure
-the counter type of the sectioning counters to \texttt{appendix}. And this is
-what this compatibility module does, and it uses a \pkg{ltcmdhooks} hook on
-\cs{appendix} for the purpose. Hence, this module applies to any document
+the counter type of the sectioning counters to \texttt{appendix}. Also, the
+sorting of appendix labels relative to those in the rest of the document
+requires attention, which is done by setting the main sectioning level counter
+as being reset by an internal counter with the \opt{counterresetby} option.
+And this is what this compatibility module does, using a \pkg{ltcmdhooks} hook
+on \cs{appendix} for the purpose. Hence, this module applies to any document
class or package which provides that command.
\DescribeOption{appendices} %
This module implements support for the \env{appendices} and
\env{subappendices} environments provided by the \pkg{appendix} package, and
also by \cls{memoir}. The task is the same as for the \texttt{appendix}
-module: set proper counter types for the sectioning counters. This module
-employs environment hooks to \env{appendices} and \env{subappendices} and a
-command hook to \cs{appendix} for the purpose.
+module: set proper counter types for the sectioning counters and ensuring
+proper sorting of labels. This module employs environment hooks to
+\env{appendices} and \env{subappendices}.
\DescribeOption{memoir} %
This compatibility module provides support for some of \cls{memoir}'s
@@ -2641,6 +2655,7 @@ were generously provided by (in chronological order):
% 2023-11-09: https://github.com/gusbrs/zref-clever/issues/20
% 2024-01-20: https://github.com/gusbrs/zref-clever/pull/25
% 2024-05-04: https://github.com/gusbrs/zref-clever/pull/27
+ % 2024-07-19: https://github.com/gusbrs/zref-clever/pull/32
and Lars Madsen.
% 2023-07-24: https://chat.stackexchange.com/transcript/message/64039717#64039717
% and following discussion.
diff --git a/macros/latex/contrib/zref-clever/zref-clever.dtx b/macros/latex/contrib/zref-clever/zref-clever.dtx
index 9c1d73a5a2..2a35b27d48 100644
--- a/macros/latex/contrib/zref-clever/zref-clever.dtx
+++ b/macros/latex/contrib/zref-clever/zref-clever.dtx
@@ -171,7 +171,7 @@
%
% Identify the package.
% \begin{macrocode}
-\ProvidesExplPackage {zref-clever} {2024-05-20} {0.4.5}
+\ProvidesExplPackage {zref-clever} {2024-09-30} {0.4.7}
{Clever LaTeX cross-references based on zref}
% \end{macrocode}
%
@@ -374,19 +374,34 @@
% there is no possible verification mechanism for this.
%
%
-% \begin{macro}[EXP]{\@@_get_enclosing_counters_value:n}
-% Recursively generate a \emph{sequence} of ``enclosing counters'' values,
-% for a given \meta{counter} and leave it in the input stream. This
-% function must be expandable, since it gets called from \cs{zref@newprop}
-% and is the one responsible for generating the desired information when
-% the label is being set. Note that the order in which we are getting this
-% information is reversed, since we are navigating the counter reset chain
-% bottom-up. But it is very hard to do otherwise here where we need
-% expandable functions, and easy to handle at the reading side.
+% \begin{macro}[EXP]
+% {
+% \@@_get_enclosing_counters:n ,
+% \@@_get_enclosing_counters_value:n ,
+% }
+% Recursively generate a \emph{sequence} of ``enclosing counters'' and
+% values, for a given \meta{counter} and leave it in the input stream.
+% These functions must be expandable, since they get called from
+% \cs{zref@newprop} and are the ones responsible for generating the desired
+% information when the label is being set. Note that the order in which we
+% are getting this information is reversed, since we are navigating the
+% counter reset chain bottom-up. But it is very hard to do otherwise here
+% where we need expandable functions, and easy to handle at the reading
+% side.
% \begin{syntax}
+% \cs{@@_get_enclosing_counters:n} \Arg{counter}
% \cs{@@_get_enclosing_counters_value:n} \Arg{counter}
% \end{syntax}
% \begin{macrocode}
+\cs_new:Npn \@@_get_enclosing_counters:n #1
+ {
+ \cs_if_exist:cT { c@ \@@_counter_reset_by:n {#1} }
+ {
+ { \@@_counter_reset_by:n {#1} }
+ \@@_get_enclosing_counters:e
+ { \@@_counter_reset_by:n {#1} }
+ }
+ }
\cs_new:Npn \@@_get_enclosing_counters_value:n #1
{
\cs_if_exist:cT { c@ \@@_counter_reset_by:n {#1} }
@@ -406,16 +421,18 @@
% Gregorio}, aka `egreg' at
% \url{https://tex.stackexchange.com/q/611370/#comment1529282_611385}).
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_get_enclosing_counters:n { e }
\cs_generate_variant:Nn \@@_get_enclosing_counters_value:n { e }
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}[EXP]{\@@_counter_reset_by:n}
-% Auxiliary function for \cs{@@_get_enclosing_counters_value:n}, and useful
-% on its own standing. It is broken in parts to be able to use the
-% expandable mapping functions. \cs{@@_counter_reset_by:n} leaves in the
-% stream the ``enclosing counter'' which resets \meta{counter}.
+% Auxiliary function for \cs{@@_get_enclosing_counters:n} and
+% \cs{@@_get_enclosing_counters_value:n}, and useful on its own standing.
+% It is broken in parts to be able to use the expandable mapping functions.
+% \cs{@@_counter_reset_by:n} leaves in the stream the ``enclosing counter''
+% which resets \meta{counter}.
% \begin{syntax}
% \cs{@@_counter_reset_by:n} \Arg{counter}
% \end{syntax}
@@ -461,6 +478,14 @@
\zref@addprop \ZREF@mainlist { zc@enclval }
% \end{macrocode}
%
+% The \texttt{zc@enclcnt} property is provided for the purpose of easing the
+% debugging of counter reset chains, thus it is not added \texttt{main}
+% property list by default.
+% \begin{macrocode}
+\zref@newprop { zc@enclcnt }
+ { \@@_get_enclosing_counters:e \l_@@_current_counter_tl }
+% \end{macrocode}
+%
%
% Another piece of information we need is the page numbering format being used
% by \cs{thepage}, so that we know when we can (or not) group a set of page
@@ -3883,37 +3908,70 @@
%
% \cs{l_@@_counter_resetters_seq} is used by \cs{@@_counter_reset_by:n} to
% populate the \texttt{zc@enclval} property, and stores the list of counters
-% which are potential ``enclosing counters'' for other counters. This option
-% is constructed such that users can only \emph{add} items to the variable.
-% There would be little gain and some risk in allowing removal, and the syntax
-% of the option would become unnecessarily more complicated. Besides, users
-% can already override, for any particular counter, the search done from the
-% set in \cs{l_@@_counter_resetters_seq} with the \opt{counterresetby} option.
+% which are potential ``enclosing counters'' for other counters.
+%
+% Note that, as far as \LaTeX{} is concerned, a given counter can be reset by
+% \emph{any number of counters}. \cs{counterwithin} just adds a new
+% ``within-counter'' for ``counter'' without removing any other existing ones.
+% However, the data structure of \pkg{zref-clever} can only account for
+% \emph{one} enclosing counter. In a way, this is hard to circumvent, because
+% the underlying counter reset behavior works ``top-down'', but when looking
+% to a label built from a given counter we need to infer the enclosing
+% counters ``bottom-up''. As a result, the reset chain we find is path
+% dependent or, more formally, what \cs{@@_counter_reset_by:n} returns depends
+% on the order in which it searches the list of
+% \cs{l_@@_counter_resetters_seq}, since it stops on the first match. This
+% representation mismatch should not be a problem in most cases. But one
+% should be aware of the limits it imposes.
+%
+% Consider the following case: the \cls{book} class sets, by default
+% \texttt{figure} and \texttt{table} counters to be reset every
+% \texttt{chapter}, \texttt{section} is also reset every \texttt{chapter}, of
+% course. Suppose now we say
+% \cs{counterwithin}\texttt{\{figure\}\{section\}}. Technically,
+% \texttt{figure} is being reset every \texttt{section} and every
+% \texttt{chapter}, but since \texttt{section} is also reset every
+% \texttt{chapter}, the original ``\texttt{chapter} resets \texttt{figure}''
+% behavior is now redundant. Innocuous, but is still there. Now, suppose we
+% want to find which counter is resetting \texttt{figure} using
+% \cs{@@_counter_reset_by:n}. If \texttt{chapter} comes before
+% \texttt{section} in \cs{l_@@_counter_resetters_seq}, \texttt{chapter} will
+% be returned, and that's not what we want. That's the reason
+% \opt{counterresetters} initial value goes bottom-up in the sectioning level,
+% since we'd expect the nesting of the reset chain to \emph{typically} work
+% top-down.
+%
+% If, despite all this, unexpected results still ensue, users can take care to
+% ``clean'' redundant resetting settings with \cs{counterwithout}. Besides,
+% users can already override, for any particular counter, the search done from
+% the set in \cs{l_@@_counter_resetters_seq} with the \opt{counterresetby}
+% option.
+%
+% For the above reasons, since order matters, the \opt{counterresetters}
+% option can only be set by the full list of counters. In other words, users
+% wanting to change this should take the initial value as their starting base.
+%
+% The \texttt{zc@enclcnt} \pkg{zref} property, not included by default in the
+% \texttt{main} property list, is provided for the purpose of easing the
+% debugging of counter reset chains. So, by adding
+% \cs{zref@addprop}\texttt{\{main\}\{zc@enclcnt\}} you can inspect what the
+% values in the \texttt{zc@enclval} property correspond to.
%
% \begin{macrocode}
\seq_new:N \l_@@_counter_resetters_seq
\keys_define:nn { zref-clever/label }
{
counterresetters .code:n =
- {
- \clist_map_inline:nn {#1}
- {
- \seq_if_in:NnF \l_@@_counter_resetters_seq {##1}
- {
- \seq_put_right:Nn
- \l_@@_counter_resetters_seq {##1}
- }
- }
- } ,
+ { \seq_set_from_clist:Nn \l_@@_counter_resetters_seq {#1} } ,
counterresetters .initial:n =
{
- part ,
- chapter ,
- section ,
- subsection ,
- subsubsection ,
- paragraph ,
subparagraph ,
+ paragraph ,
+ subsubsection ,
+ subsection ,
+ section ,
+ chapter ,
+ part ,
},
counterresetters .value_required:n = true ,
}
@@ -7195,251 +7253,269 @@
%
% \begin{macro}{\@@_type_name_setup:}
% Auxiliary function to \cs{@@_typeset_refs_last_of_type:}. It is
-% responsible for setting the type name variable \cs{l_@@_type_name_tl} and
-% \cs{l_@@_name_in_link_bool}. If a type name can't be found,
-% \cs{l_@@_type_name_tl} is cleared. The function takes no arguments, but
-% is expected to be called in \cs{@@_typeset_refs_last_of_type:} right
-% before \cs{@@_get_ref_first:}, which is the main consumer of the variables
-% it sets, though not the only one (and hence this cannot be moved into
-% \cs{@@_get_ref_first:} itself). It also expects a number of relevant
-% variables to have been appropriately set, and which it uses, prominently
-% \cs{l_@@_type_first_label_type_tl}, but also the queue itself in
-% \cs{l_@@_typeset_queue_curr_tl}, which should be ``ready except for the
-% first label'', and the type counter \cs{l_@@_type_count_int}.
+% responsible for setting the type name variable \cs{l_@@_type_name_tl},
+% \cs{l_@@_name_in_link_bool}, and \cs{l_@@_type_name_missing_bool}. If a
+% type name can't be found, \cs{l_@@_type_name_tl} is cleared. The function
+% takes no arguments, but is expected to be called in
+% \cs{@@_typeset_refs_last_of_type:} right before \cs{@@_get_ref_first:},
+% which is the main consumer of the variables it sets, though not the only
+% one (and hence this cannot be moved into \cs{@@_get_ref_first:} itself).
+% It also expects a number of relevant variables to have been appropriately
+% set, and which it uses, prominently \cs{l_@@_type_first_label_type_tl},
+% but also the queue itself in \cs{l_@@_typeset_queue_curr_tl}, which should
+% be ``ready except for the first label'', and the type counter
+% \cs{l_@@_type_count_int}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_type_name_setup:
{
- \zref@ifrefundefined { \l_@@_type_first_label_tl }
+ \bool_if:nTF
+ { \l_@@_typeset_ref_bool && ! \l_@@_typeset_name_bool }
{
+ % `typeset=ref' / `noname' option
+ % Probably redundant, since in this case the type name is not being
+ % typeset. But, for completeness sake:
\tl_clear:N \l_@@_type_name_tl
+ \bool_set_false:N \l_@@_name_in_link_bool
\bool_set_true:N \l_@@_type_name_missing_bool
}
{
- \tl_if_eq:NnTF
- \l_@@_type_first_label_type_tl { zc@missingtype }
+ \zref@ifrefundefined { \l_@@_type_first_label_tl }
{
\tl_clear:N \l_@@_type_name_tl
\bool_set_true:N \l_@@_type_name_missing_bool
}
{
- % Determine whether we should use capitalization, abbreviation,
- % and plural.
- \bool_lazy_or:nnTF
- { \l_@@_cap_bool }
- {
- \l_@@_capfirst_bool &&
- \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
- }
- { \tl_set:Nn \l_@@_name_format_tl {Name} }
- { \tl_set:Nn \l_@@_name_format_tl {name} }
- % If the queue is empty, we have a singular, otherwise, plural.
- \tl_if_empty:NTF \l_@@_typeset_queue_curr_tl
- { \tl_put_right:Nn \l_@@_name_format_tl { -sg } }
- { \tl_put_right:Nn \l_@@_name_format_tl { -pl } }
- \bool_lazy_and:nnTF
- { \l_@@_abbrev_bool }
+ \tl_if_eq:NnTF
+ \l_@@_type_first_label_type_tl { zc@missingtype }
{
- ! \int_compare_p:nNn
- { \l_@@_type_count_int } = { 0 } ||
- ! \l_@@_noabbrev_first_bool
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
}
{
- \tl_set:NV \l_@@_name_format_fallback_tl
- \l_@@_name_format_tl
- \tl_put_right:Nn \l_@@_name_format_tl { -ab }
- }
- { \tl_clear:N \l_@@_name_format_fallback_tl }
-
- % Handle number and gender nudges.
- \bool_if:NT \l_@@_nudge_enabled_bool
- {
- \bool_if:NTF \l_@@_nudge_singular_bool
+ % Determine whether we should use capitalization,
+ % abbreviation, and plural.
+ \bool_lazy_or:nnTF
+ { \l_@@_cap_bool }
{
- \tl_if_empty:NF \l_@@_typeset_queue_curr_tl
- {
- \msg_warning:nne { zref-clever }
- { nudge-plural-when-sg }
- { \l_@@_type_first_label_type_tl }
- }
+ \l_@@_capfirst_bool &&
+ \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
}
+ { \tl_set:Nn \l_@@_name_format_tl {Name} }
+ { \tl_set:Nn \l_@@_name_format_tl {name} }
+ % If the queue is empty, we have a singular, otherwise,
+ % plural.
+ \tl_if_empty:NTF \l_@@_typeset_queue_curr_tl
+ { \tl_put_right:Nn \l_@@_name_format_tl { -sg } }
+ { \tl_put_right:Nn \l_@@_name_format_tl { -pl } }
+ \bool_lazy_and:nnTF
+ { \l_@@_abbrev_bool }
{
- \bool_lazy_all:nT
- {
- { \l_@@_nudge_comptosing_bool }
- { \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl }
- {
- \int_compare_p:nNn
- { \l_@@_label_count_int } > { 0 }
- }
- }
- {
- \msg_warning:nne { zref-clever }
- { nudge-comptosing }
- { \l_@@_type_first_label_type_tl }
- }
+ ! \int_compare_p:nNn
+ { \l_@@_type_count_int } = { 0 } ||
+ ! \l_@@_noabbrev_first_bool
}
- \bool_lazy_and:nnT
- { \l_@@_nudge_gender_bool }
- { ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
{
- \@@_get_rf_opt_seq:neeN { gender }
- { \l_@@_type_first_label_type_tl }
- { \l_@@_ref_language_tl }
- \l_@@_type_name_gender_seq
- \seq_if_in:NVF
- \l_@@_type_name_gender_seq
- \l_@@_ref_gender_tl
+ \tl_set:NV \l_@@_name_format_fallback_tl
+ \l_@@_name_format_tl
+ \tl_put_right:Nn \l_@@_name_format_tl { -ab }
+ }
+ { \tl_clear:N \l_@@_name_format_fallback_tl }
+
+ % Handle number and gender nudges.
+ % Note that these nudges get disabled for `typeset=ref' /
+ % `noname' option, but in this case they are not really
+ % meaningful anyway.
+ \bool_if:NT \l_@@_nudge_enabled_bool
+ {
+ \bool_if:NTF \l_@@_nudge_singular_bool
{
- \seq_if_empty:NTF \l_@@_type_name_gender_seq
+ \tl_if_empty:NF \l_@@_typeset_queue_curr_tl
{
- \msg_warning:nneee { zref-clever }
- { nudge-gender-not-declared-for-type }
- { \l_@@_ref_gender_tl }
+ \msg_warning:nne { zref-clever }
+ { nudge-plural-when-sg }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_ref_language_tl }
+ }
+ }
+ {
+ \bool_lazy_all:nT
+ {
+ { \l_@@_nudge_comptosing_bool }
+ { \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl }
+ {
+ \int_compare_p:nNn
+ { \l_@@_label_count_int } > { 0 }
+ }
}
{
- \msg_warning:nneeee { zref-clever }
- { nudge-gender-mismatch }
+ \msg_warning:nne { zref-clever }
+ { nudge-comptosing }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_ref_gender_tl }
+ }
+ }
+ \bool_lazy_and:nnT
+ { \l_@@_nudge_gender_bool }
+ { ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
+ {
+ \@@_get_rf_opt_seq:neeN { gender }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_type_name_gender_seq
+ \seq_if_in:NVF
+ \l_@@_type_name_gender_seq
+ \l_@@_ref_gender_tl
+ {
+ \seq_if_empty:NTF \l_@@_type_name_gender_seq
{
- \seq_use:Nn
- \l_@@_type_name_gender_seq { ,~ }
+ \msg_warning:nneee { zref-clever }
+ { nudge-gender-not-declared-for-type }
+ { \l_@@_ref_gender_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_language_tl }
+ }
+ {
+ \msg_warning:nneeee { zref-clever }
+ { nudge-gender-mismatch }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_gender_tl }
+ {
+ \seq_use:Nn
+ \l_@@_type_name_gender_seq { ,~ }
+ }
+ { \l_@@_ref_language_tl }
}
- { \l_@@_ref_language_tl }
}
}
}
- }
- \tl_if_empty:NTF \l_@@_name_format_fallback_tl
- {
- \@@_opt_tl_get:cNF
- {
- \@@_opt_varname_type:een
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
- { tl }
- }
- \l_@@_type_name_tl
+ \tl_if_empty:NTF \l_@@_name_format_fallback_tl
{
- \tl_if_empty:NF \l_@@_ref_decl_case_tl
- {
- \tl_put_left:Nn \l_@@_name_format_tl { - }
- \tl_put_left:NV \l_@@_name_format_tl
- \l_@@_ref_decl_case_tl
- }
\@@_opt_tl_get:cNF
{
- \@@_opt_varname_lang_type:eeen
- { \l_@@_ref_language_tl }
+ \@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
{ \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_clear:N \l_@@_type_name_tl
- \bool_set_true:N \l_@@_type_name_missing_bool
- \msg_warning:nnee { zref-clever } { missing-name }
- { \l_@@_name_format_tl }
- { \l_@@_type_first_label_type_tl }
+ \tl_if_empty:NF \l_@@_ref_decl_case_tl
+ {
+ \tl_put_left:Nn \l_@@_name_format_tl { - }
+ \tl_put_left:NV \l_@@_name_format_tl
+ \l_@@_ref_decl_case_tl
+ }
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_tl }
+ { tl }
+ }
+ \l_@@_type_name_tl
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
+ \msg_warning:nnee { zref-clever } { missing-name }
+ { \l_@@_name_format_tl }
+ { \l_@@_type_first_label_type_tl }
+ }
}
}
- }
- {
- \@@_opt_tl_get:cNF
- {
- \@@_opt_varname_type:een
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
- { tl }
- }
- \l_@@_type_name_tl
{
\@@_opt_tl_get:cNF
{
\@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_fallback_tl }
+ { \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_if_empty:NF \l_@@_ref_decl_case_tl
- {
- \tl_put_left:Nn
- \l_@@_name_format_tl { - }
- \tl_put_left:NV \l_@@_name_format_tl
- \l_@@_ref_decl_case_tl
- \tl_put_left:Nn
- \l_@@_name_format_fallback_tl { - }
- \tl_put_left:NV
- \l_@@_name_format_fallback_tl
- \l_@@_ref_decl_case_tl
- }
\@@_opt_tl_get:cNF
{
- \@@_opt_varname_lang_type:eeen
- { \l_@@_ref_language_tl }
+ \@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
+ { \l_@@_name_format_fallback_tl }
{ tl }
}
\l_@@_type_name_tl
{
+ \tl_if_empty:NF \l_@@_ref_decl_case_tl
+ {
+ \tl_put_left:Nn
+ \l_@@_name_format_tl { - }
+ \tl_put_left:NV \l_@@_name_format_tl
+ \l_@@_ref_decl_case_tl
+ \tl_put_left:Nn
+ \l_@@_name_format_fallback_tl { - }
+ \tl_put_left:NV
+ \l_@@_name_format_fallback_tl
+ \l_@@_ref_decl_case_tl
+ }
\@@_opt_tl_get:cNF
{
\@@_opt_varname_lang_type:eeen
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_fallback_tl }
+ { \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_clear:N \l_@@_type_name_tl
- \bool_set_true:N
- \l_@@_type_name_missing_bool
- \msg_warning:nnee { zref-clever }
- { missing-name }
- { \l_@@_name_format_tl }
- { \l_@@_type_first_label_type_tl }
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_fallback_tl }
+ { tl }
+ }
+ \l_@@_type_name_tl
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N
+ \l_@@_type_name_missing_bool
+ \msg_warning:nnee { zref-clever }
+ { missing-name }
+ { \l_@@_name_format_tl }
+ { \l_@@_type_first_label_type_tl }
+ }
}
}
}
}
}
}
- }
- % Signal whether the type name is to be included in the hyperlink or not.
- \bool_lazy_any:nTF
- {
- { ! \l_@@_hyperlink_bool }
- { \l_@@_link_star_bool }
- { \tl_if_empty_p:N \l_@@_type_name_tl }
- { \str_if_eq_p:Vn \l_@@_nameinlink_str { false } }
- }
- { \bool_set_false:N \l_@@_name_in_link_bool }
- {
+ % Signal whether the type name is to be included in the hyperlink or
+ % not.
\bool_lazy_any:nTF
{
- { \str_if_eq_p:Vn \l_@@_nameinlink_str { true } }
- {
- \str_if_eq_p:Vn \l_@@_nameinlink_str { tsingle } &&
- \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl
- }
- {
- \str_if_eq_p:Vn \l_@@_nameinlink_str { single } &&
- \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl &&
- \l_@@_typeset_last_bool &&
- \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
- }
+ { ! \l_@@_hyperlink_bool }
+ { \l_@@_link_star_bool }
+ { \tl_if_empty_p:N \l_@@_type_name_tl }
+ { \str_if_eq_p:Vn \l_@@_nameinlink_str { false } }
}
- { \bool_set_true:N \l_@@_name_in_link_bool }
{ \bool_set_false:N \l_@@_name_in_link_bool }
+ {
+ \bool_lazy_any:nTF
+ {
+ { \str_if_eq_p:Vn \l_@@_nameinlink_str { true } }
+ {
+ \str_if_eq_p:Vn \l_@@_nameinlink_str { tsingle } &&
+ \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl
+ }
+ {
+ \str_if_eq_p:Vn \l_@@_nameinlink_str { single } &&
+ \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl &&
+ \l_@@_typeset_last_bool &&
+ \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
+ }
+ }
+ { \bool_set_true:N \l_@@_name_in_link_bool }
+ { \bool_set_false:N \l_@@_name_in_link_bool }
+ }
}
}
% \end{macrocode}
@@ -7754,11 +7830,45 @@
% appendix to ``end'', but in this case, of course, we can hook into the
% environment instead.
%
+% For the record, \url{https://tex.stackexchange.com/a/724742} is of
+% interest.
+%
% \begin{macrocode}
\@@_compat_module:nn { appendix }
{
+ \newcounter { zc@appendix }
+ \cs_if_exist:cTF { chapter }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+% \end{macrocode}
+% In case someone did something like
+% \texttt{\textbackslash{}counterwithin\{chapter\}\{part\}}. Harmless
+% otherwise.
+% \begin{macrocode}
+ zc@appendix = \@@_counter_reset_by:n { chapter } ,
+ chapter = zc@appendix ,
+ } ,
+ }
+ }
+ {
+ \cs_if_exist:cT { section }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@appendix = \@@_counter_reset_by:n { section } ,
+ section = zc@appendix ,
+ } ,
+ }
+ }
+ }
\AddToHook { cmd / appendix / before }
{
+ \setcounter { zc@appendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7797,26 +7907,28 @@
{
\@@_if_package_loaded:nT { appendix }
{
- \newcounter { zc@appendix }
- \newcounter { zc@save@appendix }
- \setcounter { zc@appendix } { 0 }
- \setcounter { zc@save@appendix } { 0 }
- \cs_if_exist:cTF { chapter }
- {
- \@@_zcsetup:n
- { counterresetby = { chapter = zc@appendix } }
- }
- {
- \cs_if_exist:cT { section }
- {
- \@@_zcsetup:n
- { counterresetby = { section = zc@appendix } }
- }
- }
\AddToHook { env / appendices / begin }
{
- \stepcounter { zc@save@appendix }
- \setcounter { zc@appendix } { \value { zc@save@appendix } }
+% \end{macrocode}
+% Technically, the \env{appendices} environment can be called multiple times.
+% By default, successive calls keep track of numbering and start where the
+% previous one left off. Which means just setting the \texttt{zc@appendix}
+% counter to 1 is enough for things to work, since the distinction between the
+% calls and the sorting of their respective references will depend on the
+% underlying sectioning. \pkg{appendix}'s documentation however, provides a
+% way to restart from A at each call (by redefining \cs{restoreapp} to do
+% nothing). In this case, the references inside different calls to
+% \env{appendices} get to be identical in every way, including printed form,
+% counter value, enclosing counters, etc., despite being different. We could
+% keep track of different calls to \env{appendices} by having the
+% \texttt{zc@appendix} counter be ``stepped'' at each call. Doing so would
+% mean though that \cs{zcref} would distingish things which are typeset
+% identically, granting some arguably weird results. True, the user
+% \emph{can} change the printed form for each \env{appendices} call,
+% e.g. redefining \cs{thechapter}, but in this case, they are responsible for
+% keeping track of this.
+% \begin{macrocode}
+ \setcounter { zc@appendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7832,13 +7944,36 @@
}
\AddToHook { env / appendices / end }
{ \setcounter { zc@appendix } { 0 } }
- \AddToHook { cmd / appendix / before }
+ \newcounter { zc@subappendix }
+ \cs_if_exist:cTF { chapter }
{
- \stepcounter { zc@save@appendix }
- \setcounter { zc@appendix } { \value { zc@save@appendix } }
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@subappendix = \@@_counter_reset_by:n { section } ,
+ section = zc@subappendix ,
+ } ,
+ }
+ }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@subappendix = \@@_counter_reset_by:n { subsection } ,
+ subsection = zc@subappendix ,
+ } ,
+ }
}
\AddToHook { env / subappendices / begin }
{
+% \end{macrocode}
+% The \env{subappendices} environment, on the other hand, appears not to
+% support multiple calls inside the same chapter/section (the counter is reset
+% by default). Either way, the same reasoning applies.
+% \begin{macrocode}
+ \setcounter { zc@subappendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7851,6 +7986,8 @@
} ,
}
}
+ \AddToHook { env / subappendices / end }
+ { \setcounter { zc@subappendix } { 0 } }
\msg_info:nnn { zref-clever } { compat-package } { appendix }
}
}
@@ -7977,10 +8114,13 @@
}
% \end{macrocode}
% \pkg{amsmath} does use \cs{refstepcounter} for the \texttt{equation} counter
-% throughout and does set \cs{@currentcounter} for \cs{tag}s. But we still
-% have to manually reset \opt{currentcounter} to default because, since we had
-% to manually set \opt{currentcounter} to \texttt{parentequation} in
-% \env{subequations}, we also have to manually set it to \env{equation} in
+% throughout and supposedly sets \cs{@currentcounter} for \cs{tag}s (I'm not
+% sure if it works in all environments, though. Once I tried to remove the
+% explicit \opt{currentcounter} setting and several labels to \cs{tag}s ended
+% up with type \texttt{section}. But I didn't investigate this further). But
+% we still have to manually reset \opt{currentcounter} to default because,
+% since we had to manually set \opt{currentcounter} to \texttt{parentequation}
+% in \env{subequations}, we also have to manually set it to \env{equation} in
% environments which may be used within it. The \env{xxalignat} environment
% is not included, because it is ``starred'' by default (i.e.\ unnumbered),
% and does not display or accepts labels or tags anyway. The \env{-ed}
@@ -8041,6 +8181,18 @@
% doing special handling inside \cs{zcref}, but the feature is very cool, so
% it's worth it.
%
+% Note that this support comes at a little cost. \opt{showonlyrefs} works by
+% setting a special \cs{MT@newlabel} for each label referenced with
+% \cs{eqref}. Now, \cs{eqref} is a specialized reference command, only used
+% to refer to equations, so it sets \cs{MT@newlabel} unconditionally on the
+% first run. \cs{zcref}, on the other hand, is a general purpose reference
+% command, used to reference labels of any type. But we wouldn't want to set
+% \cs{MT@newlabel} indiscriminately for all referenced labels in the document,
+% so we need to test for its type. Alas, the label must exist before its type
+% can be tested, thus we cannot set \cs{MT@newlabel} on the first run, only on
+% the second. In sum, since \cs{eqref} requires 3 runs to work, \cs{zcref}
+% needs 4.
+%
% \begin{macrocode}
\bool_new:N \l_@@_mathtools_loaded_bool
\@@_compat_module:nn { mathtools }
diff --git a/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex b/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex
new file mode 100644
index 0000000000..628b56a51a
--- /dev/null
+++ b/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex
@@ -0,0 +1,95 @@
+% !TeX Program=lualatex
+%
+% Demo file for the LaTeX-ZUGFeRD project
+% This file corresponds to version 0.9 (2024-10-23)
+%
+% Copyright (C) 2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+\DocumentMetadata{
+ pdfstandard=a-3b,
+ lang=de,
+}
+\documentclass[parskip=half-,german]{scrartcl}
+
+\usepackage[
+ format=xrechnung3.0% 3.0 is the default anyway, but you can select the format to avoid automatic changes.
+]{zugferd-invoice}
+
+\setkomavar{invoice}{2024:1337}
+\setkomavar{date}{2024-01-04}
+\setkomavar{title}{Rechnung}
+
+\newkomafont{invoicetotal}{\bfseries}
+
+\SetZUGFeRDData{
+% document-type = commercial-invoice, % commented as this setting matches the initial value
+ id=komavar,
+% date=auto, % commented as this setting matches the initial value
+% delivery-date = auto, % commented as this setting matches the initial value
+ subject=komavar,
+ fromaddress=komavar,
+% tax/category=S, % commented as this setting matches the initial value
+% tax/rate=19, % commented as this setting matches the initial value
+ unit=hour,
+ seller/name = {peiTeX (Marei Peischl)},
+ seller/postcode = {20253},
+ seller/city ={Hamburg},
+ seller/country = DE,
+ seller/address = {Address 1},
+ seller/vatid = {DE123456789},
+ seller/contact= {Marei\\+4900000000\\marei@peitex.de},
+ seller/email = {kontakt@peitex.de},
+ buyer/reference = {buyer-reference}, %oder Leitweg-ID
+ buyer/name = {Käufer Name},
+ buyer/postcode = {20253},
+ buyer/city ={Hamburg},
+ buyer/country = DE,
+ buyer/address = {Address 1\\Address 2},
+ buyer/vatid = {DE123456789},
+ buyer/email = {invoice@example.org},
+ currency=€,
+ payment-terms={Zahlbar innerhalb von 14 Tagen},% either this one or the due-date below is required
+ due-date={20240118},
+ payment-means / type = 58, % SEPA Übereisung,
+ payment-means / iban = DE68430609671013251700,
+ payment-means / account-holder = Marei Peischl,
+ payment-means / bic =GENODEM1GLS
+}
+
+
+
+\begin{document}
+
+
+\begin{letter}{Firma\\Vorname Nachname\\Rechnungsadresse\\PLZ Ort}
+
+\opening{Guten Tag,}
+
+hiermit stelle ich Ihnen meine Arbeit im Rahmen des Projektes XX in Rechnung. Die Leistung wurde im Januar 2024 erbracht.
+
+\AddInvoiceItem{3}{Weiterentwicklung/funktionale Erweiterung}{90}
+\AddInvoiceItem[7]{3}{Support}{90}
+\AddInvoiceItem{2}{Support an Feiertagen/Wochenende}{180}
+
+\PrintInvoiceTabular
+
+Ich bitte Sie oben genannte Betrag binnen 30 Tagen auf unten genanntes Konto zu überweisen.
+
+%Falls gewünscht
+\closing{Happy \TeX{}ing}
+
+
+\end{letter}
+
+\end{document}
diff --git a/macros/latex/contrib/zugferd/DEPENDS.txt b/macros/latex/contrib/zugferd/DEPENDS.txt
new file mode 100644
index 0000000000..9156e86f4c
--- /dev/null
+++ b/macros/latex/contrib/zugferd/DEPENDS.txt
@@ -0,0 +1,7 @@
+# Proudly generated by the Island of TeX's DEPendency Printer https://gitlab.com/islandoftex/texmf/depp
+soft babel# only zugferd-invoice.sty
+soft booktabs# only zugferd-invoice.sty
+soft koma-script# only zugferd-invoice.sty
+soft ragged2e# only zugferd-invoice.sty
+siunitx
+soft xltabular# only zugferd-invoice.sty
diff --git a/macros/latex/contrib/zugferd/INSTALL.md b/macros/latex/contrib/zugferd/INSTALL.md
new file mode 100644
index 0000000000..b47cac24bf
--- /dev/null
+++ b/macros/latex/contrib/zugferd/INSTALL.md
@@ -0,0 +1,31 @@
+# Installation
+
+## Recommended setup
+As this package is now released via CTAN, it's hightly recommended to use the TeX Live Manager for installation.
+
+## Minimal portable TeX Live via DEPP
+
+Additionally for it's possible to use the Island of TeX's DEPP project to create a minimal portable TeX Live installation only including the dependencies for this kind of documents.
+This repository includes a DEPENDS.txt for this purpose.
+
+Please be aware that the soft dependencies are those required to typeset the demo file.
+
+## Local user level installation using l3build
+
+This package is not yet released to CTAN, but it provides an \pkg{l3build} installation script and demo files.
+Details on usage can be found in the [l3build documentation](http://texdoc.net/serve/l3build)/0).
+
+To get started one can run
+```
+l3build doc
+```
+
+within the repositories root directory.
+This will build the Demo project as well as the current status of the documentation within the subdirectory `build/doc`.
+
+To Install the package within you `$TEXMFHOME` there is also the `install` action
+```
+l3build install
+```
+
+This will install the `zugferd.sty` as well as the `zugferd-invoice.sty` and afterwards the TeX compiler will be able to find and use them.
diff --git a/macros/latex/contrib/zugferd/README.md b/macros/latex/contrib/zugferd/README.md
new file mode 100644
index 0000000000..0467545c75
--- /dev/null
+++ b/macros/latex/contrib/zugferd/README.md
@@ -0,0 +1,31 @@
+# ZUGFeRD - Create ZUGFeRD and other kinds of E-invoices using LaTeX
+
+Copyright (C) 2023–2024 by Marei Peischl (peiTeX) <marei@peitex.de>
+
+zugferd version 0.9 (2024-10-23)
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+## Abstract
+
+This package provides an interface to make your LaTeX-based invoicing compatible to e-invoicing standards, such as they exist in the EU.
+
+The package includes a demo implementation, which can be used by template developers to create their own company specific variant. The included example file shows how to use it. This package is built so it also creates the XML file which will be directly attached to the PDF.
+
+There also exist interfaces to attach an XML file generated differently. Please have a look at the documentation.
+
+This package does not provide any validation. Please be aware of you have to use valid input data for a valid ZUGFeRD output. The documentation suggests some options.
+
+## Version History
+
+ * 0.9 (2024-10-23)
+ - Improve validation in testing of the development status.
+ - Add support for BillingSpecifiedPeriod
+ - Add additional user interfaces to simplify development for templates
+ * 0.8a (2024-09-17) Patch to switch to the newly public interface of l3pdfmeta
+ * 0.8 (2024-09-11) First version on CTAN
diff --git a/macros/latex/contrib/zugferd/zugferd-invoice.sty b/macros/latex/contrib/zugferd/zugferd-invoice.sty
new file mode 100644
index 0000000000..138d6236ac
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd-invoice.sty
@@ -0,0 +1,197 @@
+%
+% Copyright (C) 2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+\ProvidesExplPackage{zugferd-invoice}{2024-10-23}{0.9}{Invoice wrapper example package for the factur-x to create ZUGFerD invoices}
+
+\keys_define:nn {zugferd/invoice}{
+ default-vat .tl_set:N = \defaultVAT,
+ default-vat .initial:n = 19,
+ format .code:n = \PassOptionsToPackage{format=#1}{zugferd},
+ format .initial:n = xrechnung3.0,
+}
+
+\ProcessKeyOptions[zugferd/invoice]
+
+\msg_new:nnnn {ptxcd/zugferd} {not-for-production} {
+ This~package~is~intented~to~be~an~example~for~a~possible~implementation~to~use~the~zugferd~package~for~invoicing.\\
+ As~this~integrates~a~lot~with~the~visual~structure~of~your~invoice~this~should~not~be~used~directly~but~may~be~an~example~for~your~own~package.
+}{See~zugferd~documentation~for~instructions~concerning~the~interfaces~used~in~this~file.}
+\msg_warning:nn {ptxcd/zugferd} {not-for-production}
+
+\RequirePackage{scrletter}
+\RequirePackage{ragged2e}
+\RequirePackage{zugferd}
+\RequirePackage{babel}
+
+% e.g. use comma as output decimal marker if german
+\addto\extrasgerman{\sisetup{locale=DE}}
+\addto\extrasngerman{\sisetup{locale=DE}}% for backwards compatibility
+
+\RequirePackage{xltabular}
+\RequirePackage{booktabs}
+
+\newcounter{invoiceitem}
+\seq_new:N \g__ptxcd_VAT_rates_seq
+
+% InitVAT accepts 2 Arguments
+% Percentage + Tax Type Code the latter one is set to S as a default
+\NewDocumentCommand{\InitVAT}{mO{S}}{
+ \seq_gput_right:Nn \g__ptxcd_VAT_rates_seq {#1}
+ \fp_new:c {g__ptxcd_invoice_sum_vat#1_fp}
+ \fp_new:c {g__ptxcd_invoice_base_vat#1_fp}
+ \cs_new:cn {__ptxcd_invoice_type_code#1:} {#2}
+}
+
+%Initialize VAT rates for (5),7,(16) and 19 % VAT
+%\InitVAT{16}
+\InitVAT{19}
+%\InitVAT{5}
+\InitVAT{7}
+
+% Tax initialisation with a different Code than S in this example Syntax would be
+% \InitVAT{0}[AE]
+
+
+\newcommand*{\SetDefaultVAT}[1]{\def\defaultVAT{#1}}
+
+
+\seq_new:N \l__ptxcd_invoice_items_seq
+
+% Auxiliary macro to allow setting the Invoice items at a different position as they are printed later
+\NewDocumentCommand{\AddInvoiceItem}{D<>{}O{\defaultVAT}mmm}{
+ \seq_put_right:Nn \l__ptxcd_invoice_items_seq {
+ {#2}{#3}{#4}{#5}{#1}
+ }
+}
+
+\newcolumntype{P}{r<{\PrintTableCurrency}}
+
+\fp_new:N \g__ptxcd_invoice_sum_fp
+\fp_new:N \g__ptxcd_invoice_total_fp
+\fp_new:N \g__ptxcd_tax_total_fp
+\fp_new:N \g__ptxcd_invoice_item_fp
+\fp_new:N \g__ptxcd_invoice_item_vat_fp
+\fp_new:N \g__ptxcd_invoice_sum_vat_fp
+
+\newcommand*{\PrintInvoiceTabular}{
+\bool_gset_true:N \g_ptxcd_first_run_bool
+ \begin{ZUGFeRD}
+ \sisetup{round-precision=2,round-mode=places,round-pad=false,table-number-alignment=right,minimum-decimal-digits=2,mode=text}
+ \begin{xltabular}{\linewidth}{@{}rS[round-precision=1,table-format=2.1]>{\RaggedRight}XPP@{}}
+ \toprule[\lightrulewidth]
+ \noalign{\global\let\PrintTableCurrency\relax}%
+ \small\emph{Pos.}&\small\emph{Std.}&\small\emph{Beschreibung}&\small\emph{Einzelpreis}&\small\emph{Gesamtpreis}\\\midrule[\heavyrulewidth]
+ \noalign{\global\let\PrintTableCurrency\TableCurrency}%
+ \endhead
+ \bottomrule[\lightrulewidth]\multicolumn{5}{@{}p{\textwidth}@{}}{\strut\hspace*{\fill}\footnotesize Fortsetzung auf der nächsten Seite}\endfoot
+ \bottomrule\endlastfoot
+% Only write xml for the first run of the tabular.
+ \fp_compare:nNnF {\g__ptxcd_invoice_sum_fp} = {\c_zero_dim} {
+ \fp_gzero:N \g__ptxcd_invoice_sum_fp
+ \zugferd_disable_XML_interfaces:
+ }
+ \seq_map_inline:Nn \g__ptxcd_VAT_rates_seq {
+ \fp_gzero:c {g__ptxcd_invoice_sum_vat##1_fp}
+ \fp_gzero:c {g__ptxcd_invoice_base_vat##1_fp}
+ }
+ \fp_gzero:N \g__ptxcd_invoice_sum_fp
+ \seq_map_inline:Nn \l__ptxcd_invoice_items_seq {
+ \PrintInvoiceItem##1
+ }
+ \tabularnewline
+ \noalign{\skip_vertical:n {-\ht\strutbox-\dp\strutbox}}%offset for extra empty row of mapping
+ \midrule[\heavyrulewidth]
+ \PrintInvoiceTotal
+ \end{xltabular}
+ \end{ZUGFeRD}
+}
+
+\newcommand*{\PrintInvoiceTotal}{
+ \zugferd_startInvoiceSums:
+ \fp_gset:Nn \g__ptxcd_invoice_total_fp { \g__ptxcd_invoice_sum_fp}
+ \fp_gzero:N \g__ptxcd_tax_total_fp
+ \PrintInvoiceSum{netto}{\fp_use:N \g__ptxcd_invoice_sum_fp}
+ \seq_map_inline:Nn \g__ptxcd_VAT_rates_seq {
+ \fp_compare:nNnF {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}} = {0} {
+ \zugferd_write_TaxEntry:nnnn {\use:c {__ptxcd_invoice_type_code##1:}} {##1} {\fp_use:c {g__ptxcd_invoice_base_vat##1_fp}} {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ \fp_gadd:Nn \g__ptxcd_tax_total_fp {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ \PrintVatSum[{\fp_use:c {g__ptxcd_invoice_base_vat##1_fp}}]{##1 }{\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ }
+ }
+ \PrintInvoiceSum{brutto}{\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }}
+ % TODO add support for allowance, chargeTotal, and prepaid
+ \zugferd_write_Summation:nnnnnnnn
+ {\fp_use:N \g__ptxcd_invoice_sum_fp}% LineTotalAmount
+ {0} %ChargeTotalAmount
+ {0} %AllowanceTotalAmount
+ {\fp_use:N \g__ptxcd_invoice_sum_fp} %TaxBasisTotalAmount
+ {\fp_use:N \g__ptxcd_tax_total_fp} %TaxTotalAmount
+ {\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }} %GrandTotalAmount
+ {0} % TotalPrepaidAmount
+ {\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }} %DuePayableAmount = GrandTotalAmount - TotalPrepaidAmount
+ \zugferd_stopInvoiceSums:
+}
+
+%Ausgabe der einzelnen Rechnungspositionen
+\newcommand*{\PrintInvoiceItem}[5]{%
+ \stepcounter{invoiceitem}%
+ \theinvoiceitem%Positionsnummer
+ \fp_gset:Nn \g__ptxcd_invoice_item_vat_fp {#2 * (#1/100) * #4}
+ \fp_gset:Nn \g__ptxcd_invoice_item_fp {#2 * #4}
+ \fp_gadd:cn {g__ptxcd_invoice_base_vat#1_fp} {\g__ptxcd_invoice_item_fp}
+ \fp_gadd:cn {g__ptxcd_invoice_sum_vat#1_fp} {\g__ptxcd_invoice_item_vat_fp}
+ \fp_gadd:Nn \g__ptxcd_invoice_sum_fp {\g__ptxcd_invoice_item_fp}
+
+ % optionen position nummer name einzel-preis anzahl gesamtpreis
+ \zugferd_write_Item:ennnnnn {tax/rate=#1, tax/category=\use:c {__ptxcd_invoice_type_code#1:},#5} {\theinvoiceitem} {} {#3} {#4} {#2} {\fp_use:N \g__ptxcd_invoice_item_fp}
+
+ &#2% Anzahl
+ &#3\space(\printVAT{#1}~MwSt.)% Beschreibung mit Angabe der MwSt, in Klammern
+ &\num{#4}%\num[round-mode=places,output-decimal-marker={,},round-pad = false]{#4}\tl_show:n {#4}%Einzelpreis
+ &\exp_args:Nx \num{\fp_use:N \g__ptxcd_invoice_item_fp}
+ \tabularnewline
+}
+
+
+
+\newcommand*{\PrintInvoiceSum}[2]{
+ \PrintSum{\csname invoicesum#1name\endcsname}{#2}
+}
+
+\newcommand*{\PrintVatSum}[3][]{
+ \PrintSum{\invoicesumvatname[#1]{#2}}{#3}
+}
+
+\newcommand*{\invoicesumvatname}[2][]{MwSt.~\printVAT{#2}\tl_if_empty:nF {#1} {\space(\num[round-precision=2]{#1}\TableCurrency)}}
+\renewcommand*{\theinvoiceitem}{\int_compare:nNnT {\value{invoiceitem}}<{10}{0}\arabic{invoiceitem}}
+
+\newcommand*{\PrintSum}[2]{
+ &&\multicolumn{1}{r}{#1\invoicesumseparator}&\multicolumn{1}{l}{}&\exp_args:Nx \num {#2}\tabularnewline
+}
+
+\ExplSyntaxOff
+
+\newcommand*{\invoicesumnettoname}{Summe (Netto)}
+\newcommand*{\invoicesumbruttoname}{Summe (Brutto)}
+\newcommand*{\invoicesumseparator}{:\space}
+
+\newcommand*{\TableCurrency}{\,€}
+\newcommand*{\printVAT}[1]{\num[round-mode=none]{#1}\,\%}
+
+\newcommand*{\PrintPositionenVAT}[5]{%
+ \stepcounter{invoiceitem}%
+ \theinvoiceitem&#1&#2\space(\printVAT{#3})&#4&#5\tabularnewline
+}
+
+\endinput
diff --git a/macros/latex/contrib/zugferd/zugferd.dtx b/macros/latex/contrib/zugferd/zugferd.dtx
new file mode 100644
index 0000000000..17141c0ce4
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.dtx
@@ -0,0 +1,2382 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021–2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% \fi
+% \iffalse
+%<*driver>
+\ProvidesFile{zugferd.dtx}[2024-10-23 v0.9 ZUGFerd Invoice and Faktur-X]
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+%<package>\ProvidesExplPackage{zugferd}{2024-10-23}{0.9}{Create ZUGFerd invoices using LaTeX}
+%<*driver>
+\DocumentMetadata{pdfstandard=a-3b,lang=en}
+\documentclass[lm-default=false,cs-break-nohyphen]{l3doc}
+\usepackage{zugferd}[2024-10-23]
+\EnableCrossrefs
+%\CodelineIndex
+\RecordChanges
+\usepackage{biblatex}
+
+\usepackage{shellesc}
+\ifnum\ShellEscapeStatus=1\relax\else
+ \PassOptionsToPackage{draft}{minted}
+\fi
+\usepackage[highlightmode=immediate]{minted}
+\newcounter{codelist}
+\newenvironment{examplecode}{%
+ \VerbatimEnvironment%
+ \fvset{gobble=0}%
+ \begin{VerbatimOut}[tabsize=3,gobble=1]{minted.doc.out}%
+}{%
+ \end{VerbatimOut}%
+ \inputminted[autogobble, escapeinside=||]{latex}{minted.doc.out}%
+}
+\usepackage{accsupp}
+\setminted{breaksymbol={\BeginAccSupp{method=escape,ActualText={}}\tiny\ensuremath{\hookrightarrow}\EndAccSupp{}},breaklines}
+
+\ExplSyntaxOn
+\makeatletter
+\tl_new:N \l__ptxtools_doc_values_tl
+\newcommand*{\codefamily}{\MacroFont}
+\DeclareTextFontCommand{\codefont}{\codefamily}
+\providecommand{\option}[1]{\codefont{#1}}
+
+\cs_new:Npn \__ptxctools_parse_key_option:w #1 #2 #3 #4 = #5 \q_stop {
+ \begingroup
+ \let\PrintDescribeOption\PrintDescribeKeyOption
+ \tl_set:Nn \l__ptxtools_doc_values_tl {\small\IfBooleanTF{#3}{\textsf{#5}}{\textsf{(\codefont{#5})}}}
+ \noindent\DescribeOption{#4}\hfill
+ \small
+ \tl_if_blank:nTF {#2} {\meta{\textrm{initially~unset}}} {
+ \IfBooleanTF{#1}
+ {#2}
+ {(default:~\codefont{#2})}
+ }\strut\par
+ \endgroup
+}
+
+\newcommand*{\PrintDescribeKeyOption}[1]{
+ {\MacroFont #1=}\rlap{\hskip\marginparsep\l__ptxtools_doc_values_tl}
+}
+
+\bool_new:N \l_ptxtools_last_was_describe_bool
+
+\NewDocumentCommand{\DescribeKeyOption}{smms}{
+ \bool_if:NTF \l_ptxtools_last_was_describe_bool {
+ \vskip -\lastskip
+ }{
+ \par
+ \dim_compare:nNnF {\parskip} > {\c_zero_dim} {\medskip}
+ }
+ \__ptxctools_parse_key_option:w #1 {#3} #4 #2 \q_stop
+
+ \bool_set_true:N \l_ptxtools_last_was_describe_bool
+ \AddToHookNext{para/begin}{
+ \bool_set_false:N \l_ptxtools_last_was_describe_bool
+ \OmitIndent
+ }
+ \smallskip
+}
+
+\newenvironment{valuelist}{
+ \list{}{
+ \labelwidth0pt
+ \itemindent0pt
+ \leftmargin0pt
+ \let\makelabel\valuelistlabel
+ }
+}{
+ \endlist
+}
+\newcommand*\valuelistlabel[1]{
+ \llap{
+ \normalfont\codefamily\color_select:n {black!60}
+ \begin{tabular}[t]{@{}r@{}}
+ \clist_use:nn {#1} {\\}
+ \end{tabular}
+ }
+}
+
+\newcommand*{\accessTaxExemptionReason}[1]{
+ \keys_set:nn {zugferd / tax } {category=#1}
+ Exemption~reason:~\tl_if_empty:NTF \l__zugferd_tax_exemption_reason_tl {\meta{empty}} {\l__zugferd_tax_exemption_reason_tl};~
+ Exemption~reason~code:~\tl_if_empty:NTF \l__zugferd_tax_exemption_code_tl {\meta{empty}} {\l__zugferd_tax_exemption_code_tl}
+}
+% to support small layout adjustments for the texdoc version
+\newcommand*{\IfOnlyDocumentation}[1]{
+ \bool_if_exist:NT \g__codedoc_typeset_implementation_bool {
+ \bool_if:NF \g__codedoc_typeset_implementation_bool {#1}
+ }
+}
+%add a subtitle
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large \@subtitle \par}%
+ \vskip 1em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\newcommand{\subtitle}[1]{\def\@subtitle{#1}}
+\subtitle{}
+\makeatother
+\ExplSyntaxOff
+
+\usepackage{underscore-ltx}
+
+\begin{filecontents}{zugferd.bib}
+@online{x-rechnung,
+ url={https://xeinkauf.de/dokumente/},
+ urldate={2024-08-20}
+}
+@online{spec-xrechnung,
+ url={https://xeinkauf.de/app/uploads/2024/07/302-XRechnung-2024-06-20.pdf},
+ author={{Koodinierungsstelle für IT-Standards}},
+ title={Spezifikation Standard XRechnung},
+ subtitle={CIUS und Extension},
+ edition={Version XRechnung 3.0.2},
+ date={2024-06-20},
+ urldate={2024-08-20},
+ langid={german}
+}
+@online{mustang-project,
+ title={Mustangproject},
+ url={https://github.com/ZUGFeRD/mustangproject},
+ urldate={2024-08-20}
+}
+@online{country-codes,
+ title={ECE/TRADE/201},
+ subtitle={ISO COUNTRY CODE for Representation of Names of Countries},
+ url={https://unece.org/trade/documents/iso-country-code-representation-names-countries},
+ urldate={2024-08-20},
+}
+@online{unit-codes,
+ title={Rec 20 – Codes for Units of Measure Used in International Trade},
+ url={https://unece.org/sites/default/files/2023-10/rec20_Rev17e-2021.xlsx},
+ urldate={2024-08-20},
+ note={Link directly to xlsx. \cite[see][for all revisions]{cl-recommendations}.}
+}
+@online{cl-recommendations,
+ author={United Nations Economic Commission for Europe (UNECE)},
+ title={Code List Recommendations},
+ url={https://unece.org/trade/uncefact/cl-recommendations},
+ urldate={2024-08-20}
+}
+@online{VAT-exemption-codes,
+ title={VAT exemption reason code list},
+ url={https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:vatex_1},
+ urldate={2024-08-20}
+}
+@online{zugferd-download,
+ title={ZUGFeRD 2.2},
+ subtitle={Download page},
+ url={https://ferd-net.de/standards/zugferd-2.2/zugferd-2.2.html},
+ urldate={2024-09-02},
+}
+@manual{scrletter,
+ title = {The scrletter package},
+ subtitle = {Letter extension to KOMA-Script classes},
+ author = {Kohm, Markus},
+ url = {https://komascript.de/},
+ urldate = {2024-09-03},
+ documentation = {ctan://macros/latex/contrib/koma-script/doc/scrguide-en.pdf},
+ date = {2023-07-07},
+ version = {3.41},
+}
+@online{leitweg-id,
+ title={Xeinkauf FAQ},
+ subtitle={Leitweg ID},
+ author={{Koordinierungsstelle für IT Standards (KoSIT)}},
+ url={https://xeinkauf.de/faq/xrechnung#leitweg-id},
+ urldate={2024-09-04}
+}
+\end{filecontents}
+\addbibresource{zugferd.bib}
+\nocite{cl-recommendations}
+
+\usepackage{xspace}
+\newcommand*{\XML}{XML\xspace}
+\newcommand*{\XMLfile}{\XML file}
+
+\begin{document}
+\EnableDocumentation\DisableImplementation
+\DocInput{zugferd.dtx}
+\DisableDocumentation\EnableImplementation
+\DocInputAgain
+\PrintChanges
+\printbibliography
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{v0.8}{2024-09-11}{First CTAN version}
+%
+% \GetFileInfo{zugferd.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% \begin{documentation}
+% \title{The \pkg{zugferd} package\thanks{This document
+% corresponds to \textsf{zugferd}~\fileversion, dated \filedate.}}
+% \subtitle{Creating electronic and hybrid invoices using \LaTeX}
+% \author{Marei Peischl \\ \texttt{marei@peitex.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Invoicing is getting more and more automated.
+% Starting with public sector, within Germany there already is a requirement to stick to the Faktur-X Standard.
+% First Invoices based on this implementation here have been created back in 2021.
+% And this is now the trial to create a more universal and public package to support the current Version of ZUGFeRD and therefore also X-Rechung and Faktur-X.
+%
+% \indent The fundamental idea of this package was to use the calculation within \LaTeX{} as well. So it also creates the \XMLfile for the attachment on the fly.
+% To match typical setups there is a wrapper package which usually would also hold the personal Invoicing layout configuration.
+% \end{abstract}
+%
+% \IfOnlyDocumentation{\vfill}
+% \section*{Sponsors \& Supporters}
+% Most of this package has been created within my free time and for my personal use. At start, it was not a paid project at all.
+% Since it is addressing business users it would be great if we could keep this actively maintained.
+% If you are able to support this either financially for the maintenance effort, a custom extension, I'd love to hear from you.
+%
+% Tthis project was financially supported by:
+% \begin{itemize}
+% \item Pengutronix e.K., \url{https://pengutronix.de}\newline
+% Special thanks to them, as they also sponsored the minimal portable \TeX{} Live setup.
+% \item Frederik Schwan (\href{https://schwan.it}{\nolinkurl{Schwan.IT}})
+% \end{itemize}
+%
+% \IfOnlyDocumentation{\clearpage}
+%
+% \tableofcontents
+%
+% \IfOnlyDocumentation{\clearpage}
+%
+% \section{Quick start}
+% This package is still in development and does not provide any validation.
+% To ensure your invoice is created correctly you should also validate the output files.
+% There are tools like the \citeauthor{mustang-project} \cite{mustang-project} providing an easy-to-use interface for the validation.
+% In the appendix I will add some notes on my setup and how I use it within pipelines.
+%
+% The Bundle provides an example file called \file{DEMO-rechnung-zugferd.tex}.
+% This includes a basic setup for a valid X-Rechnung currently matching Version 3.0.1 of the standard.
+% Details on the requirements can be found in the documentation at \cite{x-rechnung}.
+%
+% \subsection{Disclaimer concerning the \pkg{zugferd-invoice} Package}
+% The included package \pkg{zugferd-invoice} is an example project which might match your own invoicing structure.
+% It holds all the layout information which is static across all the invoices.
+% This package is an example implementation and should not be used in production.
+% It is published as a part of the documentation.
+%
+% The idea is to create your own version of this package to use your own layout and internally load the \pkg {zugferd} package that way.
+% Of course, it's possible to use a copy of this package within your personal setup.
+% But the syntax used in the DEMO file may change, so you have to ensure yourself to be compatible with updates.
+%
+% The interfaces for \pkg{zugferd} will hopefully stay the same.
+% At least changes will be announced and build compatible during a deprecation period.
+%
+% \end{documentation}
+% \iffalse
+% \begin{macrocode}
+%<*package>
+%<@@=zugferd>
+% \end{macrocode}
+% Workaround to replace module name without having a visible <@@=zugferd> in the documentation
+%</package>
+% \fi
+% \ExplSyntaxOn
+% \tl_gset:Nn \g__codedoc_module_name_tl {zugferd}
+% \ExplSyntaxOff
+% \iffalse
+%<*!package>
+% \fi
+% \begin{documentation}
+\ExplSyntaxOn
+\tl_gset:Nn \g__codedoc_module_name_tl {zugferd}
+\ExplSyntaxOff
+% \end{documentation}
+% \iffalse
+%</!package>
+%<*package>
+% \fi
+% \begin{implementation}
+% \section{Implementation}
+% \begin{variable}{\l_@@_tmp_tl,\g_@@_format_str,\g_@@_businessProcessId_str,\g_@@_writeTradeContact_bool,\g_@@_writePaymentMeans_bool,\g_@@_conformance_level_str}
+% \begin{macrocode}
+\tl_new:N \l_@@_tmp_tl
+\str_new:N \g_@@_format_str
+\str_new:N \g_@@_businessProcessId_str
+\bool_new:N \g_@@_writeTradeContact_bool
+\bool_new:N \g_@@_writePaymentMeans_bool
+\str_new:N \g_@@_conformance_level_str
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{documentation}
+% \section{Package Options}\label{sec:package-options}
+% The package supports a few fundamental settings.
+% These have to be set when the package is loaded as they are used internally to setup the scheme or activate the \XML mechanism.
+%
+% \DescribeKeyOption{format=xrechnung/xrechnung3.0/xrechnung2.3/basic}{xrechunng}
+% \option{format} selects the scheme to be used for the zugferd invoice.
+% Currently xrechnung3.0, xrechnung2.3 and the basic scheme are supported.
+%
+% The value \option{xrechnung} is set as an alias to |xrechnung3.0| and will always use the latest version supported by \pkg{zugferd}.
+%
+% \DescribeKeyOption{zugferd=\meta{boolean}}{true}*
+% This option can be used to deactivate the \XML embedding.
+% It would also disable the the \option{write-xml} option.
+% This can be used to create a package which can use the same structure to also create invoices without \XML attachment.
+% It can also be used with older \LaTeX{} releases than this package requires.
+% There will be a warning, but the visible part should be okay.
+%
+% \DescribeKeyOption{write-xml=\meta{boolean}}{true}*
+% Disable the \XML output.
+% This can be used if you want to create the \XML attachment with different software than this package.
+%
+% In that case you can either rename your file to \meta{\cs[no-index]{jobname}\_zugferd.xml} or also adjust the \option{xml-file} option.
+%
+% \DescribeKeyOption{xml-file=\meta{filename}}{\cs[no-index]{jobname}_zugferd.xml}*
+% Adjust the file name of the created or loaded \XMLfile.
+%
+% The option \option{xrechnung} is only used internally to set the global parameters for all |xrechnung| variants.
+%
+% \DescribeKeyOption{auto-exemption=\meta{boolean}}{true}
+% \pkg{zugferd} tries to automatically add an exemption-reason for the most common VAT categories.
+% In case a more specific reason is required this setting can be disabled and everything should be configured manually.
+% See \autoref{sec:tax-category} for more explanation of this feature and the categories this applies to.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{format,xrechnung,write-xml,zugferd,xml-file,auto-exemption}
+% \changes{v0.7}{2024-09-10}{Added auto-exemption option}
+% \begin{macrocode}
+\char_set_catcode_other:N \#%
+\keys_define:nn {zugferd} {
+ xrechnung .code:n = {
+ \bool_gset_true:N \g_@@_writeTradeContact_bool
+ \bool_gset_true:N \g_@@_writePaymentMeans_bool
+ \str_gset:Nn \g_@@_conformance_level_str {XRECHNUNG}
+ },
+ format .choice:,
+ format / xrechnung3.0 .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
+ }
+ \str_gset:Nx \g_@@_businessProcessId_str {
+ urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
+ }
+ \keys_set:nn {zugferd}{xrechnung}
+ },
+ format / xrechnung2.3 .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.3
+ }
+ \keys_set:nn {zugferd}{xrechnung}
+ },
+ format / basic .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic
+ }
+ \bool_gset_false:N \g_@@_writeTradeContact_bool
+ \bool_gset_false:N \g_@@_writePaymentMeans_bool
+ \str_gset:Nn \g_@@_conformance_level_str {BASIC}
+ },
+ format / xrechnung .meta:n = { format = xrechnung3.0 },
+ format .initial:n = xrechnung,
+ format .usage:n = load,
+ write-xml .bool_gset:N = \g_@@_write_xml_bool,
+ write-xml .initial:n = true,
+ write-xml .usage:n = load,
+ zugferd .bool_gset:N = \g_@@_active_bool,
+ zugferd .initial:n = true,
+ zugferd .default:n = true,
+ zugferd .usage:n = load,
+ ZUGFerD .meta:n = {zugferd = #1},
+ xml-file .tl_gset:N = \g_@@_xml_file_tl,
+ xml-file .initial:n = \jobname _zugferd.xml,
+ xml-file .usage:n = load,
+ auto-exemption .bool_gset:N = \g_@@_auto_exemption_bool,
+ auto-exemption .initial:n = true,
+ auto-exemption .default:n = true,
+ auto-exemption .usage:n =load,
+}
+\char_set_catcode_parameter:N \#%
+
+\ProcessKeyOptions[zugferd]
+% \end{macrocode}
+% \end{optionenv}
+% \subsection{Preparation to write the \file{.xml} file}
+% \begin{variable}{\_@@_xml_writer_iow}
+% \begin{macrocode}
+\iow_new:N \_@@_xml_writer_iow
+% \end{macrocode}
+% \end{variable}
+% To adjust the metadata it is necessary to use the \pkg{pdfmanagement-testphase} by \citeauthor{pdfmanagement-testphase}.
+% She had prepared some experiment files for the PDF attachment in the experiments of the repository.
+% We use these to embed the \XML file.
+%
+% This part prepares the XMP metadata according to the required scheme.
+% \changes{v0.8a}{2024-09-17}{Use the new public interface for l3pdfmeta.}
+% \begin{macrocode}
+\bool_if:NT \g_@@_active_bool {
+ \cs_if_exist:NF \pdfmeta_xmp_xmlns_new:nn {
+ \msg_new:nnnn {zugferd} {PDFmanagement-not-active} {
+ The~\LaTeX~PDF~management~is~not~active.\\
+ Activate~it~using~\string\DocumentMetadata.
+ } {
+ See~ZUGFeRD~or~PDFmanagement~documentation~for~more~information.
+ }
+ \msg_error:nn{zugferd} {PDFmanagement-not-active}
+ }
+ %% based on experiments for l3pdfmeta by Ulrike Fischer
+ \pdfmeta_xmp_xmlns_new:nn {fx}{
+ urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0\c_hash_str
+ }
+
+ \pdfmeta_xmp_schema_new:nnn
+ {Factur-X~PDFA~Extension~Schema}
+ {fx}
+ {urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0\c_hash_str}
+
+ \pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {DocumentFileName}
+ {Text}
+ {external}
+ {name~of~the~embedded~XML~invoice~file}
+
+ \pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {DocumentType}
+ {Text}
+ {external}
+ {INVOICE}
+
+ \pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {Version}
+ {Text}
+ {external}
+ {The~actual~version~of~the~factur-x~schema}
+
+ \pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {ConformanceLevel}
+ {Text}
+ {external}
+ {The~conformance~level~of~the~factur-x~data}
+
+ \exp_args:Ne \pdfmeta_xmp_add:n {
+ % fix INVOICE
+ <fx:DocumentType>INVOICE</fx:DocumentType>\iow_newline:
+ % fix factur-x.xml
+ <fx:DocumentFileName>factur-x.xml</fx:DocumentFileName>\iow_newline:
+ % fix schema version
+ <fx:Version>1.0</fx:Version>\iow_newline:
+ % zulässige Werte MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED, XRECHNUNG
+ <fx:ConformanceLevel>\g_@@_conformance_level_str</fx:ConformanceLevel>%
+ \iow_newline:
+ %
+ }
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \section{User Commands}
+% The end user is only asked to set or access the data to be used by \pkg{zugferd}.
+%
+% \begin{syntax}
+% \cs[no-index]{SetZUGFeRDData}*\marg{key value list}
+% \end{syntax}
+% \DescribeMacro{\SetZUGFeRDData}
+% \DescribeMacro[noindex]{\SetZugferdData}
+% The two modes of \cs[no-index]{SetZUGFeRDData} control if the argument is expanded before the fields are set.
+% Depending on the source of the data this might be necessary.
+% Fields which are involved in the calculation will be expanded anyway, but the text fields will not, to support special characters.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\SetZUGFeRDData}
+% \begin{macrocode}
+\NewDocumentCommand{\SetZUGFeRDData}{sm}{
+ \IfBooleanTF{#1}
+ {\keys_set:ne}
+ {\keys_set:nn}
+ {zugferd} {#2}
+}
+\let\SetZugferdData\SetZUGFeRDData
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+%
+% \DescribeMacro{\InsertZUGFeRDData}
+% \DescribeMacro[noindex]{\InsertZugferdData}
+% \begin{syntax}
+% \cs[no-index]{InsertZugferdData}\oarg{special mode option}\marg{data-selection}
+% \end{syntax}
+% ZUGFerd uses the same data as the \XMLfile inside the PDF.
+% To simplify the reuse of data this command is designed to simplify the access to data fields, for example:
+%
+% \begin{examplecode}
+% \InsertZUGFeRDData{id}
+% {\InsertZUGFeRDData[set-today]{date}\today}
+% \InsertZUGFeRDData[AddressData]{seller}
+% \end{examplecode}
+% As special modes the command currently supports the following:
+%
+% By default \pkg{zugferd} tries to find the variable holding the data itself.
+% First a token list is tried, afterwards a string.
+% Global variables are prefered over local ones.
+%
+% As the variable names may container underscores and the option usually prefers dashes, dashes are converted to underscores for the detection.
+%
+% \DescribeOption{AddressData} Allows |seller| or |buyer| for the data selection.
+% Will print the address, to be used in letters.
+%
+% \DescribeOption{set-today}
+% For dates there also exists the variant which will not print the variable but parse the variable to be used as \cs{today}.
+% Using this the date format can be controlled easier using the language setting of the document.
+% Here you should take care to use it within a group to restore the real value of \cs[no-index]{today} afterwards.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\InsertZUGFeRDData,\InsertZugferdData}
+% To simplify the usage in letters we also add fields to be able to use the zugferd data within \LaTeX{} output.
+% Country is still missing.
+% \begin{macrocode}
+\NewDocumentCommand{\InsertZUGFeRDData}{om}{
+ \str_case:nnF {#1} {
+% \end{macrocode}
+% \begin{macrocode}
+ {AddressData} {
+ \clist_map_inline:nn {name, lineone, linetwo} {
+ \prop_if_in:cnT {g_@@_#2_AddressData_prop } {##1} {
+ \prop_item:cn {g_@@_#2_AddressData_prop } {##1}\\
+ }
+ }
+ \prop_item:cn {g_@@_#2_AddressData_prop } {postcode}
+ \space
+ \prop_item:cn {g_@@_#2_AddressData_prop } {city}
+ }
+% \end{macrocode}
+% \begin{macrocode}
+ {set-today} {
+ \_@@_set_today:v {g_@@_#2_tl}
+ }
+ } {
+% \end{macrocode}
+% Try to find the variable automatially.
+% \begin{itemize}
+% \item replace dashes by underscores
+% \item try if a tokenlist or a string
+% \item prefer global over local
+% \item take the first existing variable and break the loop
+% \end{itemize}
+% \begin{macrocode}
+ \str_set:Ne \l_tmpa_str {#2}
+ \str_replace_all:Nnn \l_tmpa_str {-} {_}
+ \str_replace_all:Nnn \l_tmpa_str {/} {_}
+ \bool_set_true:N \g_tmpa_bool
+ \clist_map_inline:nn {tl, str} {
+ \clist_map_inline:nn {g, l} {
+ \use:c {##1 _if_exist:cT} {####1_@@_ \l_tmpa_str _##1}
+ {
+ \use:c {####1_@@_ \l_tmpa_str _##1}
+ \bool_gset_false:N \g_tmpa_bool
+ }
+ \bool_if:NF \g_tmpa_bool {\clist_map_break:}
+ }
+ \bool_if:NF \g_tmpa_bool {\clist_map_break:}
+ }
+ }
+}
+\providecommand{\InsertZugferdData}{\InsertZUGFeRDData}
+\providecommand{\insertZugferdData}{\InsertZUGFeRDData}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_set_today:c}
+% Auxiliary function to use a date variable within the current group to be used as \cs[no-index]{today}.
+% \begin{macrocode}
+\cs_new:Nn \_@@_set_today:n {
+ \_@@_set_today_aux:w #1 \q_stop
+}
+\cs_generate_variant:Nn \_@@_set_today:n {v}
+\cs_new:Npn \_@@_set_today_aux:w #1 #2 #3 #4 #5 #6 #7 #8 \q_stop{
+ \int_set:Nn \year {#1#2#3#4}
+ \int_set:Nn \month {#5#6}
+ \int_set:Nn \day {#7#8}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+% \section{Commands for template authors}
+%
+% \DescribeEnv{ZUGFeRD}
+% To simplify the structure of the wrapper package, \pkg{zugferd} provides an environment for the \XML mechanism and does the attachment to the PDF file (of course only, if enabled, see \autoref{sec:package-options}).
+% This provides the public interface bundling some steps together to reduce maintenance effort for any template maintainer using this package.
+% It also avoids the use of internal commands.
+%
+% This environment opens the \XML file using \cs{startWritingZUGFeRDxml} and afterwards writes the \XML header including the File and Scheme information, the |ExchangedDocumentContext| and information of the |ExchangedDocument|.
+% Notes will also be written within this step.
+% Afterwards the environment should include all the mechanisms to write the invoice positions as well as summation.
+%
+% At the end of the environment the footer is inserted, before the output stream is closed using \cs{stopWritingZUGFeRDxml}. Which also attaches the \XMLfile to the PDF.
+%
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\NewDocumentEnvironment{ZUGFeRD}{o}{
+ \IfNoValueF{#1}{
+ \SetZUGFeRDData{#1}
+ }
+ \zugferd_enable_XML_interfaces:
+ \startWritingZUGFeRDxml
+ \zugferd_write_Header:
+ \ignorespaces
+}{
+ \zugferd_enable_XML_interfaces:
+ \zugferd_write_Footer:
+ \stopWritingZUGFeRDxml
+ \zugferd_disable_XML_interfaces:
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeMacro{\startWritingZUGFeRDxml}
+% \cs[no-index]{startWritingZUGFeRDxml} is opening the output stream for the \XMLfile.
+% It also adjusts the indentation.
+% If \option{write-xml} is false, this option only opens a group to achieve the same structure in both modes.
+%
+% \DescribeMacro{\stopWritingZUGFeRDxml}
+% Here the output stream is closed and the \XMLfile is attached.
+% In case \option{write-xml} is not active, the attachment will be made if that's not deactivated separately using \option{zugferd}.
+% It also ends the group started by \cs[no-index]{startWritingZUGFeRDxml}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\newcommand*{\startWritingZUGFeRDxml}{
+ \begingroup
+ \bool_if:NTF \g_@@_write_xml_bool {
+ \char_set_active_eq:nN {13} \_@@_xml_newline_indent:
+ \iow_open:Nn \_@@_xml_writer_iow {\g_@@_xml_file_tl}
+ }{
+ \msg_info:nn {zugferd} {no-xml-write}
+ }
+}
+\msg_new:nnn {zugferd} {no-xml-write} {
+ The~option~write-xml=false~was~set.\\
+ Writing~of~XML~file~is~deactivated.
+}
+% \end{macrocode}
+% The PDF attachment is done after the writing stream is closed.
+% \begin{macrocode}
+%% The metadata elements are taken by Ulrike Fischer's faktur-x experiments
+%% https://github.com/latex3/pdfresources/tree/main/experiments/factur-x-bills
+\newcommand*{\stopWritingZUGFeRDxml}{%
+ \bool_if:NT \g_@@_write_xml_bool
+ {\iow_close:N \_@@_xml_writer_iow}%
+ \endgroup
+ \bool_if:NT \g_@@_active_bool {
+ \group_begin:
+ \pdfdict_put:nnn {l_pdffile/Filespec} {AFRelationship}{/Alternative}
+ %or /Source in some cases
+ \pdfdict_put:nnn {l_pdffile/Filespec} {Desc}{(Factur-X/ZUGFeRD-Rechnung)}
+ \pdffile_embed_file:nnn {\g_@@_xml_file_tl}{factur-x.xml}
+ {zugferd/rechnung}
+ \group_end:
+ \pdfmanagement_add:nnx
+ {Catalog/Names}
+ {EmbeddedFiles}
+ {\pdf_object_ref:n{zugferd/rechnung}}
+ % steht in der docu ist aber pdf 2.0 ....
+ \pdfmanagement_add:nnx{Catalog}{AF}{\pdf_object_ref:n{zugferd/rechnung}}
+ }
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Interfaces to write the \XML contents}
+% \changes{v0.6}{2024-09-05}{Provide public interfaces and first version of the documentation.}
+% \label{sec:xml-interfaces}
+% In case you are using |write-xml=true| (which is the default) You need to ensure to call the \XML writing functions in the correct order.
+% For example after setting the global invoice data, like it's done in the example file.
+% The minimal example below would create a valid XML.
+% The interface commands are described afterwards.
+%
+% \begin{examplecode}
+% \begin{ZUGFeRD}
+% \zugferd_write_Item:nnnnnn {1} {} {Plushie~\TeX\ lion} {31.98} {2} {63.78}
+% \zugferd_startInvoiceSums:
+% \zugferd_write_TaxEntry:nnnn {S} {19} {63.78} {12.12}
+% \zugferd_write_Summation:nnnnnnnn {63.78} {0} {0} {63.78} {12.12} {75.90} {0} {75.90}
+% \zugferd_stopInvoiceSums:
+% \end{ZUGFeRD}
+% \end{examplecode}
+%
+% \DescribeMacro{\zugferd_write_Item:nnnnnn}
+% This command is the interface to write invoice items to the \XMLfile.
+% If the \XML interface is enabled this is a reference to the internal command \cs{_@@_insert_TradeLineItem:nnnnnn}.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_Item:nnnnn}
+% \marg{LineID}\marg{optional: item id (\enquote{SellerAssignedID})}\marg{item name}
+% \marg{NetPriceProductTradePrice}
+% \marg{BilledQuantity}
+% \marg{LineTotalAmount}
+% \end{syntax}
+% Within the product name macros are disabled using \cs[no-index]{zugferd_disable_macros:}, see \autoref{sec:disable_macros}.
+%
+% This command is using the local values of tax information as well as the unit code.
+% If you want to overwrite them, adjust them locally using the corresponding options, e.g.:
+% \begin{examplecode}
+% \group_begin:
+% \keys_set:nn {zugferd/item}{tax/rate=19, tax/category=S}
+% \zugferd_write_Item:nnnnnn {1} {} {Plushie \TeX\ lion} {31.98} {2} {63.78}
+% % Code using the data for visual representation
+% \group_end:
+% \end{examplecode}
+% This will set the tax rate to 19\,\% unregarding the global setting.
+%
+% This structure might look a bit overcomplicated as one might think the options could also be set as an additional argument.
+% This works as long as the Code for the visual part of the invoice is not referencing the internal data.
+% In case you don't do this it's also possible to use the following variant:
+%
+% \DescribeMacro{\zugferd_write_Item:nnnnnnn}
+% \DescribeMacro{\zugferd_write_Item:ennnnnn}
+% This is grouping the command and adding an argument in front to add additional options.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_Item:nnnnn}
+% \marg{additional local options}
+% \marg{LineID}\marg{optional: item id (\enquote{SellerAssignedID})}\marg{item name}
+% \marg{NetPriceProductTradePrice}
+% \marg{BilledQuantity}
+% \marg{LineTotalAmount}
+% \end{syntax}
+% The example above could then be replaced by
+% \begin{examplecode}
+% \zugferd_write_Item:nnnnnnn {tax/rate=19,tax/category=S} {1} {Plushie-01} {Plushie \TeX\ lion} {31.98} {2} {63.78}
+% % visual representation now may not refer to the data
+% \end{examplecode}
+%
+% \DescribeMacro{\zugferd_startInvoiceSums:}
+% \DescribeMacro{\zugferd_stopInvoiceSums:}
+% There is some global data which is placed in the \XMLfile after the invoice items have been placed.
+% Typically, in \LaTeX{} this block is started after the items have been printed and will enclose the summation block.
+%
+% The starting includes the so called \enquote{ApplicableHeaderTradeAgreement} which contains the address data of both trade parties, see \autoref{sec:TradeParties}
+% And this will also print the \enquote{SpecifiedTradeSettlementPaymentMeans}, see \autoref{sec:PaymentMeans}.
+%
+% \DescribeMacro{\zugferd_write_TaxEntry:nnnn}
+% This command is writing the sum over a tax rate. This command has to be used once per rate applied to the items.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_TaxEntry:nnnn} \marg{tax category code} \marg{tax rate in \%} \marg{basis amount the tax applies to} \marg{tax amount}
+% \end{syntax}
+% The tax amount could of course be calculated internally.
+% In the example package this is done automatically, but the interface needs to support manual input as a lot of use cases for \LaTeX{} invoicing use it only to create the output file.
+%
+% \DescribeMacro{\zugferd_write_Summation:nnnnnnnn}\par
+% \noindent The total values are all collected with a single macro.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_Summation:nnnnnnnn}
+% \marg{LineTotalAmount}\marg{ChargeTotalAmount}\marg{AllowanceTotalAmount}
+% \marg{TaxBasisTotalAmount}\marg{TaxTotalAmount}
+% \marg{GrandTotalAmount}\marg{TotalPrepaidAmount}\marg{DuePayableAmount}
+% \end{syntax}
+% This commnd is also writing the payment terms to the \XMLfile.
+% Please be aware that it's in general not possible to calculate the tax values in here, as there might be multiple tax rates applied.
+% This is only taking the sums over all tax entries.
+%
+% In case you are using some specials like category \enquote{E} the exemption reason will also be written at that point.
+% For that it is referencing the current value of the setting.
+%
+% \subsection{Commands to temporary disable/re-enable the \XML writing interfaces}
+% \DescribeMacro{\zugferd_enable_XML_interfaces:}
+% \DescribeMacro{\zugferd_disable_XML_interfaces:}
+% \par\bigskip
+% As there are a lot of usecases where code is processed multiple times, it's necessary to provide an interface to temporary disable the \XML writing mechanism.
+% A lot of these situations appear within table structures whereas a local adjustment would not be helpful.
+% Therefore these adjustments have to be done globally.
+%
+% The example package \pkg{zugferd-invoice} provides an example for this to ensure the \XML data is not written multiple times.
+% The \env{ZUGFeRD} environment has been constructed that way, that it would automatically enable the interface when it begins and also when it ends, to write the data. So you should ensure this environment is only processed once or use the lower level interfaces directly.
+% \end{documentation}
+% \begin{implementation}
+% Provide public interfaces and the ZUGFeRD environment.
+% \begin{function}{\zugferd_enable_XML_interfaces:,\zugferd_disable_XML_interfaces:}
+% \begin{macrocode}
+\cs_new:Nn \zugferd_enable_XML_interfaces: {
+ \bool_if:NT \g_@@_write_xml_bool {
+ \cs_gset:Nn \zugferd_write_Header: {
+ \_@@_insert_Header:
+ \_@@_insert_FrontMatter:
+ }
+ \cs_gset:Nn \zugferd_write_Footer: {
+ \_@@_insert_Footer:
+ }
+ \cs_gset_eq:NN \zugferd_write_Item:nnnnnn
+ \_@@_insert_TradeLineItem:nnnnnn
+ \cs_gset:Nn \zugferd_startInvoiceSums: {
+ \_@@_ApplicableHeaderTradeAgreement:
+ \_@@_ApplicableHeaderTradeSettlement_start:
+ \_@@_SpecifiedTradeSettlementPaymentMeans:
+ }
+ \cs_gset:Nn \zugferd_stopInvoiceSums: {
+ \_@@_ApplicableHeaderTradeSettlement_stop:
+ }
+ \cs_gset_eq:NN \zugferd_write_TaxEntry:nnnn \_@@_ApplicableTradeTax:nnnn
+ \cs_gset:Nn \zugferd_write_Summation:nnnnnnnn {
+ \_@@_SpecifiedTradePaymentTerms:
+ \_@@_SpecifiedTradeSettlementHeaderMonetarySummation:nnnnnnnn
+ {##1} {##2} {##3} {##4} {##5} {##6} {##7} {##8}
+ }
+ }
+}
+\cs_new:Nn \zugferd_disable_XML_interfaces: {
+ \cs_gset_eq:NN \zugferd_write_Header: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_Footer: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_Item:nnnnnn \use_none:nnnnnn
+ \cs_gset_eq:NN \zugferd_startInvoiceSums: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_stopInvoiceSums: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_TaxEntry:nnnn \use_none:nnnn
+ \cs_gset_eq:NN \zugferd_write_Summation:nnnnnnnn \use_none:nnnnnnnn
+}
+\bool_if:NTF \g_@@_write_xml_bool {
+ \zugferd_enable_XML_interfaces:
+}{
+ \zugferd_disable_XML_interfaces:
+}
+% \end{macrocode}
+% \end{function}
+% \changes{v0.9}{2024-10-23}{Add interface using an argument for the keyval options locally per item}
+% \begin{function}{\_@@_write_Item:nnnnnnn}
+% \begin{macrocode}
+\cs_new:Nn \zugferd_write_Item:nnnnnnn {
+ \group_begin:
+ \keys_set:nn {zugferd/item} {#1}
+ \zugferd_write_Item:nnnnnn {#2} {#3} {#4} {#5} {#6} {#7}
+ \group_end:
+}
+\cs_generate_variant:Nn \zugferd_write_Item:nnnnnnn {ennnnnn}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_write_xml:n,\_@@_define_xml_writer:Nn,\_@@_define_xml_content:Nn}
+% These commands are used to toggle the writing of the \XMLfile. This corresponds to the option \option{write-xml}.
+% \begin{macrocode}
+\bool_if:NTF \g_@@_write_xml_bool {
+ \cs_new:Nn \_@@_write_xml:n {
+ \iow_now:Ne \_@@_xml_writer_iow {\_@@_xml_auto_indent: #1}
+ }
+ \cs_new_eq:NN \_@@_define_xml_writer:Nn \cs_new:Nn
+ \cs_new_eq:NN \_@@_define_xml_content:Nn \cs_new:Nn
+} {
+ \cs_set_eq:NN \_@@_write_xml:n \use_none:n
+ \cs_set:Nn \_@@_define_xml_writer:Nn {\cs_new:Nn #1 {}}
+ \cs_set:Nn \_@@_define_xml_content:Nn {\cs_new:Nn #1 {}}
+}
+
+\cs_generate_variant:Nn \_@@_write_xml:n {e}
+% \end{macrocode}
+% \end{function}
+% \subsection{Number rounding}
+% As \pkg{siunitx} is implementing this, we use it instead of building our own mechanism.
+% \begin{macrocode}
+\RequirePackage{siunitx}
+% \end{macrocode}
+% \begin{function}{\_@@_number_format:nNn,\_@@_number_format:nNe}
+% \begin{macrocode}
+\cs_new:Nn \_@@_number_format:nNn {
+ \sisetup{
+ parse-numbers=true,
+ round-mode=places,
+ round-precision=#1,
+ round-pad = false,
+ group-digits=false,
+ minimum-decimal-digits=#1,
+ output-decimal-marker=.
+ }
+ \siunitx_number_format:nN {#3} #2
+}
+\cs_generate_variant:Nn \_@@_number_format:nNn {nNe}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_write_rounded:nnnn,\_@@_write_rounded:nnn}
+% \begin{macrocode}
+\cs_new:Nn \_@@_write_rounded:nnnn {
+ \_@@_number_format:nNe {#1} \l_@@_tmp_tl {#4}
+ \_@@_write_xml:e {<ram:#2#3>\l_@@_tmp_tl</ram:#2>}
+}
+\cs_new:Nn \_@@_write_rounded:nnn {
+ \_@@_write_rounded:nnnn {#1} {#2} {} {#3}
+}
+% \end{macrocode}
+% \end{function}
+% \subsection{XML indentation}
+% The indentation of the \XML does not really matter.
+% For debugging, it's a lot simpler to have it included and this also helped to maintain the structure of the code during development, so I decided to keep it.
+% The indentation is created using s bunch of auxiliary commands and variables which are defined here.
+% \begin{variable}{\g_@@_indent_int}
+% \begin{macrocode}
+\int_new:N \g_@@_indent_int
+% \end{macrocode}
+% \end{variable}
+% \begin{function}{\_@@_indent:,\_@@_xml_auto_indent:,\_@@_xml_newline_indent: }
+% \begin{macrocode}
+\cs_new:Nn \_@@_indent: {
+ \space\space
+}
+\cs_new:Nn \_@@_indent:n {
+ \prg_replicate:nn {#1} {\_@@_indent:}
+}
+\cs_new:Nn \_@@_xml_auto_indent: {
+ \_@@_indent:n {\g_@@_indent_int}
+}
+% \end{macrocode}
+% \end{function}
+% The idea was to redefine the \cs[no-index]{newlinechar} to automatically indent the following line.
+% \begin{macrocode}
+\cs_new:Nn \_@@_xml_newline_indent: {
+ \iow_newline: \_@@_xml_auto_indent:
+}
+% \end{macrocode}
+% \end{implementation}
+% Setting up the catcodes to simplify the \XML indentation.
+% \iffalse
+% \begin{macrocode}
+\cctab_new:N \g_@@_xml_cctab
+\begingroup%
+\endlinechar=13%
+\char_set_catcode:nn {13}{13}%
+\cctab_gsave_current:N \g_@@_xml_cctab%
+\endgroup
+% \end{macrocode}
+% \fi
+% \begin{documentation}
+% \subsection{Escaping macros inside \XML data}
+% \label{sec:disable_macros}
+% \DescribeMacro{\zugferd_disable_macros:}
+% Since we allow the use of \LaTeX{} code in some fields there has to be a mechanism to disable macros inside the \XML output.
+% The mechanism is created similar to the one by \pkg{hyperref}, and we also use some definitions from there to use those as a starting point.
+% To have a detailed list of the redefinition, please have a look at the implementation of this command.
+%
+% There exists a hook to extend or overwrite these definitions |zugferd/disable-macros|.
+% You can add own redefinitions using this. For example if you want to overwrite the setting mapping a \cs[no-index]{newline} to a new line char instead of space, you could add the following to your setup:
+% \begin{examplecode}
+% \hook_gput_code:nnn {zugferd/disable-macros}
+% {newline-to-LF}
+% {\def\newline{\iow_newline:}}
+% \end{examplecode}
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\zugferd_disable_macros:}
+% The definition was mostly taken from \pkg{hyperref} \cite{hyperref}.
+% Most likely not all of these are required, but it's probably easier to take this as a reasonable choice instead of creating an own collection.
+% \iffalse
+% \begin{macrocode}
+%% modified list taken from hyperref.sty v7.01i
+%% Copyright
+%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek
+%% 2001-2015 Heiko Oberdiek
+%% 2016-2019 Oberdiek Package Support Group
+%% 2019-2024 LaTeX Project
+%% modifications have been made to support the mechanism if hyperref is not loaded
+% \end{macrocode}
+% \fi
+% \begin{macrocode}
+\cs_new:Nn \zugferd_disable_macros: {
+ \let\{\textbraceleft
+ \let\}\textbraceright
+ \let\\\textbackslash
+ \let\#\textnumbersign
+ \let\$\textdollar
+% \end{macrocode}
+% This only is a part of the list.
+% There is no real use of printing the whole list, it's inside \file{zugferd.sty} anyway.
+% \comment
+% \begin{macrocode}
+ \let\%\textpercent
+ \let\&\textampersand
+ \let\_\textunderscore
+ \let\P\textparagraph
+ \let\ldots\textellipsis
+ \let\dots\textellipsis
+ \def\\{\space}%
+ \def\newline{\space}%
+ \def\TeX{TeX}%
+ \def\LaTeX{La\TeX}%
+ \def\LaTeXe{\LaTeX2e}%
+ \def\eTeX{e-\TeX}%
+ \def\SliTeX{Sli\TeX}%
+ \def\MF{Metafont}%
+ \def\MP{Metapost}%
+ \let\fontencoding\@gobble
+ \let\fontfamily\@gobble
+ \let\fontseries\@gobble
+ \let\fontshape\@gobble
+ \let\fontsize\@gobbletwo
+ \let\selectfont\@empty
+ \let\usefont\@gobblefour
+ \let\emph\@firstofone
+ \let\textnormal\@firstofone
+ \let\textrm\@firstofone
+ \let\textsf\@firstofone
+ \let\texttt\@firstofone
+ \let\textbf\@firstofone
+ \let\textmd\@firstofone
+ \let\textit\@firstofone
+ \let\textsc\@firstofone
+ \let\textsl\@firstofone
+ \let\textup\@firstofone
+ \let\normalfont\@empty
+ \let\rmfamily\@empty
+ \let\sffamily\@empty
+ \let\ttfamily\@empty
+ \let\bfseries\@empty
+ \let\mdseries\@empty
+ \let\itshape\@empty
+ \let\scshape\@empty
+ \let\slshape\@empty
+ \let\upshape\@empty
+ \let\em\@empty
+ \let\rm\@empty
+ \let\Huge\@empty
+ \let\LARGE\@empty
+ \let\Large\@empty
+ \let\footnotesize\@empty
+ \let\huge\@empty
+ \let\large\@empty
+ \let\normalsize\@empty
+ \let\scriptsize\@empty
+ \let\small\@empty
+ \let\tiny\@empty
+ \let\mathversion\@gobble
+ \let\phantom\@gobble
+ \let\vphantom\@gobble
+ \let\hphantom\@gobble
+ \let\ding\HyPsd@ding
+ \let\Cube\HyPsd@DieFace
+ \def\begin##1{\csname##1\endcsname}%
+ \def\end##1{\csname end##1\endcsname}%
+ \def\textcolor##1##{\@secondoftwo}%
+ \def\TextOrMath{\ifmmode\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}%
+ \let\foreignlanguage\@secondoftwo
+ \let\textlatin\@firstofone
+ \let\cyr\relax
+ \let\glqq\textglqq
+ \let\grqq\textgrqq
+ \let\glq\textglq
+ \let\grq\textgrq
+ \let\flqq\textflqq
+ \let\frqq\textfrqq
+ \let\flq\textflq
+ \let\frq\textfrq
+ \let\if@mid@expandable\@firstoftwo
+ \let\hspace\@gobble
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \let\@mkboth\@gobbletwo
+ \let\leavevmode\@empty
+ \let\mbox\@empty
+ \def\halign{\@gobble}%
+ \let\Hy@SectionAnchorHref\@gobble
+ \let\ref\@gobble
+ \let\href\@gobble
+ \let\pageref\@gobble
+ \let\nameref\@gobble
+ \let\autoref\@gobble
+ \let\ignorespaces\relax
+ \let\ensuremath\@firstofone
+ \def\ {\space\relax}% space
+ \exp_args:NV \cs_set_nopar:cpn \c_space_tl {\space}
+ \let\nobreakspace\space
+ \hook_use:n {zugferd/disable-macros}
+% \end{macrocode}
+% \endcomment
+% \begin{macrocode}
+}
+% \end{macrocode}
+% To provide a possibility to extend or overwrite the macro list a hook is added.
+% \begin{macrocode}
+\hook_new:n {zugferd/disable-macros}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+% \section{Adding data to the XML}
+% All data which does not directly depend on amounts or specific items is provided using a key-value interface.
+% For some fields there is the option to define a global preset but locally overwrite it for a specific item.
+% This only applies to data fields used by the writing interfaces described in \autoref{sec:xml-interfaces}.
+%
+% This package is using the UN/CEFACT Cross Industry Invoice Syntax for the data.
+% Currently it is not planned to implement the UBL syntax as well, but generally this would be possible.
+%
+% Please be aware that the \pkg{zugferd} package does currently not handle any replacements concerning the content.
+% Therefore it might be necessary to escape special characters, like |&| to |&amp;|.
+% This also applies to |<|, |>|, |"| and |'|.
+% It's technically possible to do this either via active characters or string replacements.
+% But since it's adjusting the content this feature would never be enabled by default.
+% The corresponding issue can be found at \url{https://github.com/TeXhackse/LaTeX-ZUGFeRD/issues/9}.
+%
+% In most cases this functionality will be used to change the tax setting or unit for a single item.
+% \autoref{sec:xml-interfaces} also provided an example for this.
+%
+% This section will now take all data which can be set using \cs{SetZUGFeRDData}.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{variable}{\g_@@_notes_seq,\g_@@_id_tl,\g_@@_date_tl,\g_@@_subject_tl,\g_@@_fromaddress_tl,\g_@@_DocumentTypeCode_tl}
+% \begin{macrocode}
+\seq_new:N \g_@@_notes_seq
+\tl_new:N \g_@@_id_tl
+\tl_new:N \g_@@_date_tl
+\tl_new:N \g_@@_delivery_date_tl
+\tl_new:N \g_@@_subject_tl
+\tl_new:N \g_@@_fromaddress_tl
+\tl_new:N \g_@@_DocumentTypeCode_tl
+\tl_new:N \l_@@_currency_tl
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{General Invoicing Data}
+% Some of the general data currently supports only one value, which is alreay selected by default.
+% The interface already exists and may be extended later.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\keys_define:nn { zugferd } {
+%TODO define others
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption{document-type=commercial-invoice}{commercial-invoice}
+% Select the document type. The only supported value currently is |commercial-invoice|. This will select the corresponding type code, which is 380.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{id, document-type}
+% \begin{macrocode}
+ document-type .choice:,
+ document-type / commercial-invoice .code:n =
+ \tl_gset:Nn \g_@@_DocumentTypeCode_tl {380},
+ document-type .initial:n = commercial-invoice,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Invoice number/document ID}
+% \DescribeKeyOption*{id=komavar/\meta{document ID/invoice number}}{}
+% This has to be set. Leaving it empty will lead to an invalid \XMLfile.
+%
+% The value |komavar| would reference the data provided the KOMA-Script letter variabe |invoice|. In case you don't use \pkg{scrletter} you should not use this setting.
+% More information can be found in the documentation \cite{scrletter}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ id .choice:,
+ id / komavar .code:n = \tl_gset:Nf \g_@@_id_tl {\scr@invoice@var},
+ id / unknown .code:n = \tl_gset:Nn \g_@@_id_tl {#1},
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Currency}
+% \DescribeKeyOption{currency=EUR/USD/CHF/€}{EUR}
+% Currently \pkg{zugferd} only supports one currency for an invoice. This might be extended later.
+% The currency is pre-configured to use Euro.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ currency .choices:nn = {EUR, USD, CHF} {
+ \tl_set_eq:NN \l_@@_currency_tl \l_keys_choice_tl
+ },
+ currency / € .meta:n = {currency = EUR},
+ currency / unknown .code:n = {
+ \exp_args:Nnnx \keys_if_choice_exist:nnnTF {zugferd} {unit} {
+ \str_uppercase:f {#1}
+ }
+ {\keys_set:nx { zugferd } {unit= {\str_uppercase:f {#1}}}}
+ {
+ \msg_warning:nnn { zugferd } {unknown-value} {currency} {#1}
+ \tl_set:Ne \l_@@_currency_tl {\str_uppercase:f {#1}}
+ }
+ },
+ currency .initial:n = EUR,
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Dates}
+% \label{sec:dates}
+% \DescribeKeyOption{date=auto/\meta{date formatted as YYYYMMDD}}{auto}
+% \DescribeKeyOption{delivery-date=auto/\meta{date formatted as YYYYMMDD}}{auto}
+% \DescribeKeyOption*{due-date=\meta{date formatted as YYYYMMDD}}{}*
+% Currently there are three kinds of dates implemented.
+% The XML-Standard requires them to use the structure \meta{YYYYMMDD}.
+% For the day this document was compiled this would be: \enquote{\InsertZUGFeRDData{date}} (\today).
+%
+% Instead of providing a date value directly it's also possible to use \cs[no-index]{today}.
+% This is done using the \value{auto} which is the default setting for \option{date} and \option{delivery-date}.
+% Please be aware, that this would change if you rebuild the document later. So you might want to use an actual value here.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{date,delivery-date}
+% \begin{macrocode}
+ date .choice:,
+ date / auto .code:n = \tl_gset:Ne \g_@@_date_tl {
+ \the\year
+ \int_compare:nNnT {\month} < {10} {0} \the\month
+ \int_compare:nNnT {\day} < {10} {0}\the\day
+ },
+ date / unknown .code:n = \tl_gset:Nn \g_@@_date_tl {#1},
+ date .initial:n = auto,
+ delivery-date .choice:,
+ delivery-date / auto .code:n = \tl_gset:Ne \g_@@_delivery_date_tl {
+ \the\year
+ \int_compare:nNnT {\month} < {10} {0} \the\month
+ \int_compare:nNnT {\day} < {10} {0}\the\day
+ },
+ delivery-date / unknown .code:n = {
+ \tl_gset:Nn \g_@@_delivery_date_tl {#1}
+ },
+ delivery-date .initial:n = auto,
+ due-date .tl_gset:N = \g_@@_due_date_tl,
+ due-date .initial:n =,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Payment terms}
+% \DescribeKeyOption{payment-terms=\meta{string}}{}
+% One option to set payment terms is the \option{due-date} mentioned before.
+% If this is not set or the setting is more complex one can use \option{payment-terms} to add more information.
+%
+% This setting is a string. In case there is expansion required this has to be done before.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{payment-terms}
+% \begin{macrocode}
+ payment-terms .str_gset:N = \g_@@_payment_terms_str,
+ payment-terms .initial:n =,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Notes: Adding additional information}
+% \DescribeKeyOption{subject=komavar/\meta{Tokenlist}}{}
+% \DescribeKeyOption{fromaddress=komavar/\meta{Tokenlist}}{}
+% \DescribeKeyOption{add-note=\meta{Tokenlist}}{}*
+% The ZUGFeRD example files\cite{zugferd-download} use all visible data to add them to the \XML as a note.
+% \option{subject} and \option{fromaddress} are used to support this.
+% The data should not be too relevant but \pkg{zugferd} want's to support adding additional data to the \XML using the note element.
+% So these fields can be left out but in case they are not empty, they will also be written to the \XML.
+%
+% The \value{komavar} corresponds to the mechanism provided by \pkg{scrletter}.
+% It accesses the variable expands it to be used directly.
+% If you don't use this package, you can ignore this setting or add content manually.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{subject,fromaddress,add-note}
+% \begin{macrocode}
+ subject .choice:,
+ subject / komavar .code:n = {
+ \tl_gset:Nf \g_@@_subject_tl {\scr@subject@var}
+ },
+ subject / unknown .code:n = \tl_gset:Nn \g_@@_subject_tl {#1},
+ fromaddress .choice:,
+ fromaddress / komavar .code:n = \tl_gset:Nf \g_@@_fromaddress_tl
+ {\scr@fromaddress@var},
+ fromaddress / unknown .code:n = \tl_gset:Nn \g_@@_fromaddress_tl {#1},
+ add-note .code:n = \seq_gput_right:Nn \g_@@_notes_seq {#1},
+}
+\msg_new:nnnn {zugferd} {unknown-value} {
+ You~selected~a~#1~which~was~not~predefined.\\
+ I~will~directly~use~your~selection~'#1=#2'.
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation.
+}
+% \end{macrocode}
+% \end{optionenv}
+% Macro to write notes
+% \begin{macrocode}
+\cs_new:Nn \_@@_note_if_not_empty:N {%
+ \tl_if_empty:NF #1 {%
+ \_@@_write_note:n {#1}%
+ }%
+}%
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Trade parties}
+% \label{sec:TradeParties}
+% The \XML scheme knows 6 different Trade Parties:
+% \begin{itemize}
+% \item Seller
+% \item Buyer
+% \item Payee
+% \item ShipTo
+% \item SellerTaxRepresentative
+% \end{itemize}
+%
+% \noindent Currently \pkg{zugferd} supports only Buyer, Seller and ShipTo, but can be easily extended to support the others as well.
+% The data for each party follows the same structure, except the \enquote{BuyerReference} which is described later in this section.
+%
+% Some of the data is optional for specific parties.
+% As this also depends on the selected scheme and version we will not list the details.
+% All fields for a trade party can be set using the \enquote{group} named by the party.
+% For example setting all the seller data is done in the following listing:
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/name = {peiTeX (Marei Peischl)},
+% seller/email = {invoicing@peitex.de},
+% seller/vatid = {DE123456789},
+% seller/contact= {Marei\\+4900000000\\marei@peitex.de},
+% seller/address = {Address Line 1\\Address Line 2},
+% seller/postcode = {20253},
+% seller/city ={Hamburg},
+% seller/country = {DE},
+% }
+% \end{examplecode}
+% \noindent All this data is saved within a property list, which is internally called \cs[no-index]{g_@@_\meta{seller/buyer/shipto}_prop}.
+% By default this property list is empty.
+% The users themselves have to ensure to add the required data.
+%
+% The outer braces are not required, if the data does not container an equal sign or a comma.
+% In case the final data is unknown, it's recommended to use them anyway.
+%
+% \DescribeKeyOption*{\meta{party}/name=\meta{name}}{}*
+% \DescribeKeyOption*{\meta{party}/email=\meta{email address}}{}*
+% \DescribeKeyOption*{\meta{party}/vatid=\meta{VAT ID}}{}*
+%
+% \DescribeKeyOption*{\meta{party}/address=\meta{address}}{}*
+% As shown in the example \option{address} can use two lines separted by |\\|.
+% It's possble to set all fields for all trade contacts, but e.\,g. for the |shipto|-party email and vatid will not be used in the \XML.
+%
+% Alternatively it's also possible to use \option{\meta{party}/lineone} and \option{\meta{party/linetwo}} separately.
+% This may be helpful if you use a custom input format. In any way you should ensure that all macros used within the data either are expandable or disabled using \cs[no-index]{zugferd_disable_macros:}.
+%
+% \DescribeKeyOption*{\meta{party}/postcode=\meta{postal code}}{}*
+% \DescribeKeyOption*{\meta{party}/city=\meta{city}}{}*
+% \DescribeKeyOption*{\meta{party}/country=\meta{country code}}{}*
+% The two letter country codes allowed here can be found in \cite{country-codes}.
+%
+% % \DescribeKeyOption*{\meta{party}/contact=\meta{Combined contact data}}{}*
+% The contact person can either be set using the combined structure similar to \option{\meta{party}/address}.
+% It either consists of 3 or 4 entries, depending on if a department should be used or not.
+%
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/contact = {
+% |\meta{contact-name}|\\
+% |\meta{contact-phone}|\\
+% |\meta{contact-email}|
+% },
+% seller/contact = {
+% |\meta{contact-name}|\\
+% |\meta{contact-department}|\\
+% |\meta{contact-phone}|\\
+% |\meta{contact-email}|
+% }
+% }
+% \end{examplecode}
+% \noindent As for \option{seller/address} it's also possible to set the keys directly:
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/contact-name= {|\meta{contact-name}|},
+% seller/contact-department = {|\meta{contact-department}|},
+% seller/cotact-phone ={|\meta{contact-phone}|},
+% seller/contact-email= {|\meta{contact-email}|}
+% }
+% \end{examplecode}
+% \end{documentation}
+% \begin{implementation}
+% ApplicableHeaderTradeAgreement
+%
+% Contains information on seller and buyer trade party:
+% \begin{itemize}
+% \item BuyerReference
+% \item SellerTradeParty
+% \item BuyerTradeParty
+% \end{itemize}
+%
+% \begin{optionenv}{\meta{party}/address}
+% \begin{variable}{\g_@@_seller_AddressData_prop,\g_@@_buyer_AddressData_prop,\g_@@_shipto_AddressData_prop}
+% Seller and Buyer are specified the same way.
+% \begin{macrocode}
+\clist_map_inline:nn {seller,buyer,shipto} {
+ \prop_new:c {g_@@_#1_AddressData_prop}
+ \keys_define:nn {zugferd / #1} {
+ address .code:n = {
+ \seq_set_split:Nnn \l_tmpa_seq {\\} {##1}
+ %TODO error if more than 2 lines or only 1
+ \keys_set:nx {zugferd / #1} {
+ lineone=\seq_item:Nn \l_tmpa_seq {1},
+ linetwo=\seq_item:Nn \l_tmpa_seq {2}
+ }
+ },
+ contact .code:n = {
+ \seq_set_split:Nnn \l_tmpa_seq {\\} {##1}
+ \int_compare:nNnTF {\seq_count:N \l_tmpa_seq} > {3} {
+ \keys_set:ne {zugferd/#1} {
+ contact-name = \seq_item:Nn \l_tmpa_seq {1},
+ contact-department = \seq_item:Nn \l_tmpa_seq {2},
+ contact-phone = \seq_item:Nn \l_tmpa_seq {3},
+ contact-email= \seq_item:Nn \l_tmpa_seq {4}
+ }
+ }{
+ \keys_set:ne {zugferd/#1} {
+ contact-name = \seq_item:Nn \l_tmpa_seq {1},
+ contact-phone = \seq_item:Nn \l_tmpa_seq {2},
+ contact-email= \seq_item:Nn \l_tmpa_seq {3}
+ }
+ }
+ },
+ unknown .code:n = \tl_if_blank:nF {##1} {
+ \prop_gput:cVe {g_@@_#1_AddressData_prop}
+ \l_keys_key_tl {\tl_trim_spaces:n {##1}}
+ }
+ }
+}
+% \end{macrocode}
+% \end{variable}
+% \end{optionenv}
+% \begin{function}{\_@@_PostalTradeAddress:N,\_@@_DefinedTradeContact:N}
+% Wrappers to map the property list items to the writing macro.
+% \begin{macrocode}
+\cs_new:Nn \_@@_PostalTradeAddress_short:N {
+ \exp_args:Ne \tl_if_blank:nF {\prop_item:Nn #1 {name}}
+ {<ram:Name>\prop_item:Nn #1 {name}</ram:Name>\iow_newline:\_@@_xml_auto_indent:}
+ \_@@_PostalTradeAddress:eeeee
+ {\prop_item:Nn #1 {postcode}}
+ {\prop_item:Nn #1 {lineone}}
+ {\prop_item:Nn #1 {linetwo}}
+ {\prop_item:Nn #1 {city}}
+ {\prop_item:Nn #1 {country}}
+}
+\cs_new:Nn \_@@_PostalTradeAddress:N {%
+ \_@@_PostalTradeAddress:eeeeeee
+ {\prop_item:Nn #1 {postcode}}
+ {\prop_item:Nn #1 {lineone}}
+ {\prop_item:Nn #1 {linetwo}}
+ {\prop_item:Nn #1 {city}}
+ {\prop_item:Nn #1 {country}}
+ {\prop_item:Nn #1 {email}}
+ {\prop_item:Nn #1 {vatid}}
+}%
+\cs_new:Nn \_@@_DefinedTradeContact:N {%
+ \_@@_DefinedTradeContact:eeee
+ {\prop_item:Nn #1 {contact-name}}
+ {\prop_item:Nn #1 {contact-department}}
+ {\prop_item:Nn #1 {contact-phone}}
+ {\prop_item:Nn #1 {contact-email}}
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{macrocode}
+\cctab_begin:N \g_@@_xml_cctab%
+% \end{macrocode}
+% \iffalse
+% \_@@_PostalTradeAddress:nnnnnnn Name/Firma PLZ Zeile1 Zeile2 Ort Ländercode Email UID
+% \fi
+% \begin{macrocode}
+\_@@_define_xml_content:Nn \_@@_PostalTradeAddress:nnnnn {%
+ <ram:PostalTradeAddress>
+ \_@@_indent: <ram:PostcodeCode>#1</ram:PostcodeCode>
+ \tl_if_blank:nF {#2} {%
+ \_@@_indent: <ram:LineOne>#2</ram:LineOne>
+ }%
+ \tl_if_blank:nF {#3} {%
+ \_@@_indent: <ram:LineTwo>#3</ram:LineTwo>
+ }%
+ \_@@_indent: <ram:CityName>#4</ram:CityName>
+ \_@@_indent: <ram:CountryID>#5</ram:CountryID>
+ </ram:PostalTradeAddress>%
+}
+\_@@_define_xml_content:Nn \_@@_PostalTradeAddress:nnnnnnn {%
+ \_@@_PostalTradeAddress:nnnnn {#1} {#2} {#3} {#4} {#5}
+ \tl_if_empty:nF {#6} {%
+ <ram:URIUniversalCommunication>
+ \_@@_indent: <ram:URIID~schemeID="EM">#6</ram:URIID>
+ </ram:URIUniversalCommunication>%
+ }%
+ % TODO add support local tax id: schemaID="FC"
+ \tl_if_empty:nF {#7} {
+ <ram:SpecifiedTaxRegistration>
+ \_@@_indent: <ram:ID~schemeID="VA">#7</ram:ID>
+ </ram:SpecifiedTaxRegistration>%
+ }%
+}%
+%
+% Contact data phone/email to a specific contact person
+\_@@_define_xml_content:Nn \_@@_DefinedTradeContact:nnnn {%
+ % Do not print if name is empty
+ \tl_if_blank:nT {#1} {\use_none:nnn} %
+ \bool_if:NT \g_@@_writeTradeContact_bool {%
+ <ram:DefinedTradeContact>
+ \_@@_indent: <ram:PersonName>#1</ram:PersonName>
+ \tl_if_blank:nF {#2} {%
+ \_@@_indent: <ram:DepartmentName>#2</ram:DepartmentName>
+ }%
+ \tl_if_blank:nF {#3} {%
+ \_@@_indent: <ram:TelephoneUniversalCommunication>
+ \_@@_indent:n {2} <ram:CompleteNumber>#3</ram:CompleteNumber>
+ \_@@_indent: </ram:TelephoneUniversalCommunication>
+ }%
+ \tl_if_blank:nF {#4} {%
+ \_@@_indent: <ram:EmailURIUniversalCommunication>
+ \_@@_indent:n {2} <ram:URIID>#4</ram:URIID>
+ \_@@_indent: </ram:EmailURIUniversalCommunication>
+ }%
+ </ram:DefinedTradeContact>%
+ }%
+}%
+%
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeAgreement: {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeAgreement>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:BuyerReference>\g_@@_buyer_reference_tl</ram:BuyerReference>
+ <ram:SellerTradeParty>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:Name>\prop_item:Nn \g_@@_seller_AddressData_prop {name}</ram:Name>
+ \_@@_DefinedTradeContact:N \g_@@_seller_AddressData_prop%
+ \_@@_PostalTradeAddress:N \g_@@_seller_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ </ram:SellerTradeParty>
+ <ram:BuyerTradeParty>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:Name>\prop_item:Nn \g_@@_buyer_AddressData_prop {name}</ram:Name>
+ \_@@_DefinedTradeContact:N \g_@@_buyer_AddressData_prop%
+ \_@@_PostalTradeAddress:N \g_@@_buyer_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:BuyerTradeParty>}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeAgreement>}%
+ \_@@_ApplicableHeaderTradeDelivery:V \g_@@_delivery_date_tl%
+}%
+%
+%
+% delivery date
+\_@@_define_xml_content:Nn \_@@_ApplicableHeaderTradeDelivery:n {%
+ \bool_lazy_and:nnF {\prop_if_empty_p:N \g_@@_shipto_AddressData_prop}%
+ {\tl_if_blank_p:n {#1}}%
+ {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeDelivery>}%
+ \prop_if_empty:NF \g_@@_shipto_AddressData_prop {%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:n {<ram:ShipToTradeParty>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \_@@_PostalTradeAddress_short:N \g_@@_shipto_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ShipToTradeParty>}%
+ \int_gdecr:N \g_@@_indent_int%
+ }%
+ \tl_if_blank:nF {#1} {%
+ \_@@_write_xml:n {%
+ \_@@_indent: <ram:ActualDeliverySupplyChainEvent>
+ \_@@_indent:n {2} <ram:OccurrenceDateTime>
+ \_@@_indent:n {3}<udt:DateTimeString~format="102">#1</udt:DateTimeString>
+ \_@@_indent:n {2} </ram:OccurrenceDateTime>
+ \_@@_indent: </ram:ActualDeliverySupplyChainEvent>%
+ }%
+ }%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeDelivery>}%
+ }%
+}%
+%
+\cctab_end:
+\cs_generate_variant:Nn \_@@_DefinedTradeContact:nnnn {eeee}
+\cs_generate_variant:Nn \_@@_PostalTradeAddress:nnnnn {eeeee}%
+\cs_generate_variant:Nn \_@@_PostalTradeAddress:nnnnnnn {eeeeeee}
+\cs_generate_variant:Nn \_@@_ApplicableHeaderTradeDelivery:n {V}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Buyer Reference}
+% \DescribeKeyOption*{buyer/reference=komavar/\meta{Reference}}{}
+% The reference field only exists for the |buyer| trade party.
+% Depending on the process it's required to use some unique identifier referring to the |buyer|.
+% Within Germany these numbers are called \enquote{Leitweg-ID}\cite{leitweg-id}.
+%
+% In any way the |buyer| may choose what is used here. Also may be some PO number or similar reference.
+%
+% As defined for other variables the \option{reference} can also use the \value{komavar} value to refer to the value of komavar |yourref|\cite{scrletter}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{buyer/reference}
+% \begin{macrocode}
+\tl_new:N \g_@@_buyer_reference_tl
+\keys_define:nn {zugferd/buyer} {
+ reference .choice:,
+ reference / komavar .code:n = {
+ \tl_gset:Nf \g_@@_buyer_reference_tl {\scr@yourref@var}
+ },
+ reference / unknown .code:n = {
+ \tl_gset:Nn \g_@@_buyer_reference_tl {#1}
+ }
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Payment Means}
+% \label{sec:PaymentMeans}
+% The payment means are selected by numeric codes.
+% Currently we support:
+% \begin{itemize}
+% \UseName{exp_args:Nnnc} \UseName{exp_args:co} {clist_map_inline:nn} {zugferd@paymentMeans@english} {\item #1}
+% \end{itemize}
+% Others may be added in the future but it's not planned to include a full list.
+%
+% The codes will automatically add the corresponding string inside the \enquote{Information} field.
+% The initial version only included German strings, but currently they are also included in English.
+% It's possible to overwrite them using the same structure:
+%
+% \begin{examplecode}
+% \setupZUGFeRDStrings{payment-means}{
+% 10 = Bargeld,
+% 58 = Zahlung per SEPA Überweisung.,
+% }
+% \end{examplecode}
+% The language selection is done using at hook executed at |\begin{document}| and will try to use the document's language.
+% If this is not defined English will be used.
+%
+% Internally the commands are predefined as a key-value list like the argument in the example above.
+% They macros are called \cs[no-index]{zugferd@paymentMeans@\meta{languagename}}.
+% Currently \pkg{zugferd} defines these for |english| and |german| (also |ngerman| as an compatibility alias).
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{payment-means}
+% \begin{macrocode}
+\ExplSyntaxOff
+\providecommand*{\zugferd@paymentMeans@german}{
+ 1 = Keine Zahlungsart definiert,
+ 10 = Bargeld,
+ 30 = Überweisung,
+ 42 = Zahlung an Bankkonto,
+ 48 = Kartenzahlung,
+ 49 = Lastschriftverfahren,
+ 57 = Dauerauftrag,
+ 58 = Zahlung per SEPA Überweisung.,
+ 59 = SEPA Lastschrift,
+ 97 = Ausgleich zwischen Partnern
+}
+\def\zugferd@paymentMeans@ngerman{\zugferd@paymentMeans@german}
+\providecommand*{\zugferd@paymentMeans@english}{
+ 1 = Instrument not defined,
+ 10 = In cash,
+ 30 = Credit Transfer,
+ 31 = Debit Transfer,
+ 42 = Payment to bank account,
+ 48 = Bank card,
+ 49 = Direct Debit,
+ 57 = Standing agreement,
+ 58 = SEPA credit transfer,
+ 59 = SEPA direct debit,
+ 97 = Clearing between partners
+}
+\ExplSyntaxOn
+\tl_new:N \g_@@_payment_means_tl
+\keys_define:nn {zugferd} {
+ payment-means / type .choices:nn = {1,10,30,42,48,49,57,58,59,97} {
+ \tl_gset_eq:NN \g_@@_payment_means_tl \l_keys_choice_tl
+ },
+ payment-means / unknown .code:n = {
+ \msg_warning:nnn { zugferd } {unknown-value} {payment-means} {#1}
+ \tl_gset:Nn \g_@@_payment_means_tl {\int_eval:n {#1}}
+ }
+}
+
+\clist_map_inline:nn {iban,account-holder,bic} {
+ \keys_define:nn {zugferd/payment-means} {
+ #1 .tl_gset:c = {g_@@_payment_#1_tl}
+ }
+}
+
+\prop_new:c {g_@@_payment-means_names_prop}
+\newcommand*{\setupZUGFeRDStrings}[2]{
+ \prop_gset_from_keyval:cn {g_@@_#1_names_prop} {
+ #2
+ }
+}
+
+\hook_gput_code:nnn {begindocument/end}{zugferd/payment-means}{
+ \prop_if_empty:cT {g_@@_payment-means_names_prop} {
+ \exp_args:Nne \setupZUGFeRDStrings{payment-means}{
+ \use:c {zugferd@paymentMeans@
+ \cs_if_exist:cTF {zugferd@paymentMeans@\languagename} {\languagename} {english}
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Variables which may be changed per invoice item}
+% Some settings may have the same value for all invoice items.
+% These are defined to take some preset but are set locally.
+% So it's possible to adjust them for a single invoice item if necessary.
+% An example is shown in \autoref{sec:xml-interfaces}.
+% \subsubsection{Units}
+% \DescribeKeyOption*{unit=hour/day/one/piece/\meta{unit code}}{}
+% The Faktur-X standard requires the unit to be selected.
+% These are called \enquote{/UN/CEFACT Common Codes} and can be found withtin \cite{unit-codes}.
+%
+% Currently \pkg{zugferd} supports |hour| (|HUR|), |day| (|DAY|), |one| (C62) and |piece| (H87).
+% For these the corresponding codes have been implemented within the package.
+% Other units can be selected using the codes listed in \cite{unit-codes}.
+%
+% This option is not case sensitive
+% The value is automatically converted to uppercase.
+% If the selected option is different from the predefined ones, there will be a warning, as \pkg{zugferd} does not know if the selection is valid or not.
+% \begin{NOTE}
+% additional source: http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec20/rec20_Rev9e_2014.xls
+% \end{NOTE}
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{unit}
+% \begin{macrocode}
+\keys_define:nn { zugferd } {
+ unit .choices:nn = {HUR,DAY,C62,H87} {
+ \tl_set_eq:NN \l_@@_unit_code_tl \l_keys_choice_tl
+ },
+ unit / hour .meta:n = {unit=HUR},
+ unit / day .meta:n = {unit=DAY},
+ unit / one .meta:n= {unit= C62},
+ unit / piece .meta:n = {unit=H87},
+% \end{macrocode}
+% If unknown, the value is converted to uppercase and we use the selection directly.
+% There is a warning in that case
+% \begin{macrocode}
+ unit / unknown .code:n = {
+ \tl_set:Nx \l_tmpa_tl {\str_uppercase:f {#1}}
+ \exp_args:NnnV \keys_if_choice_exist:nnnTF {zugferd} {unit}
+ \l_tmpa_tl
+ {
+ \keys_set:ne { zugferd } {unit= {\l_tmpa_tl}}
+ } {
+ \msg_warning:nnn { zugferd } {unknown-unit} {#1}
+ \tl_set_eq:NN \l_@@_unit_code_tl \l_tmpa_tl
+ }
+ },
+ unit .usage:n = general,
+}
+
+\msg_new:nnnn {zugferd} {unknown-unit} {
+ You~selected~a~unit~which~was~not~predefined.\\
+ I~~will~directly~use~your~selection~'unit=#1'~as~Common~Code.
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation\\
+ and~the~/UN/CEFACT~Common~Code~list.
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Tax category and rate}
+% \label{sec:tax-category}
+% \DescribeKeyOption{tax/category=\meta{category code/alias}}{standard}*
+% The Tax data requires a category code. For details have a look at the Specification \cite[e.\,g. at][]{spec-xrechnung}.
+% \pkg{zugferd} implements all of those, but the user has to take care to select the correct one for each invoice item.
+% The example file includes 2 different VAT values using the same category.
+%
+% The labels have been chosen to simplify the usage. It's also possible to enter the codes directly.
+% This option is not case sensitive.
+% \begin{valuelist}
+% \item[standard] Standard rate and reduced rate item, |category=S|
+% \item[zero] Zero rated sale, |category=Z|
+% \item[exempt] Exempted from VAT. This requires a reason via \option{exemption-reason},|category=E|
+% \item[reverse-charge] Reverse Charge, |category=AE|
+% \item[intra-community\\\textnormal{or} EEA] Intra-Community Supply, |category=K|
+% \item[export] Free export item, tax not charged, |category=G|
+% \item[O] Services outside scope of tax
+% \item[canary-islands] Canary Islands general indirect tax, |category=L|
+% \item[ceuta\\\textnormal{or} melilla] Ceuta and Melilla, |category=M|
+% \end{valuelist}
+%
+% \end{documentation}
+% \begin{implementation}
+% \optionenv{category, exemption-reason,rate}
+% \begin{macrocode}
+\msg_new:nnnn {zugferd} {unknown-tax-category} {
+ You~selected~an~unknown~tax~category.\\
+ I~~will~directly~use~your~selection~'category=#1'~as~Code.\\
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation\\
+ and~the~corresponding~code~list.
+}
+\msg_new:nnnn {zugferd} {no-auto-exemption} {
+ You~selected~tax/category=#1~together~with~the~auto-exemption~option.\\
+ I~don't~have~any~pre-configured~exemption~setting~for~category=#1.\\
+ Please~make~sure~you~add~a~valid~setting~yourself.
+} {
+ For~more~information~see~the~zugferd~documentation.
+}
+\keys_define:nn { zugferd / tax } {
+ category .choices:nn = {S,Z,E,AE,K,G,O,L,M} {
+ \tl_set_eq:NN \l_@@_tax_category_code_tl \l_keys_choice_tl
+ \bool_if:NT \g_@@_auto_exemption_bool {
+ \keys_if_choice_exist:nnnTF {zugferd/tax} {exemption-reason-auto} {#1} {
+ \keys_set:nn {zugferd/tax} {exemption-reason-auto=#1}
+ } {
+ \msg_warning:nnn { zugferd } {no-auto-exemption} {#1}
+ }
+ }
+ },
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption*{tax/exemption-reason=\meta{Text}}{}*
+% \DescribeKeyOption*{tax/exemption-reason-code=\meta{exemption reason code}}{}*
+% Add Reasons for a tax exempt, as required by |category=E,K,AE,G,O|.
+% This can either be added using a text (|exemption-reason|) or a predefined code (|exemption-reason-code|).
+% The codes are listed at \cite{VAT-exemption-codes}.
+%
+% In most common cases \pkg{zugferd} tries to automatically match them if the package option \option{auto-exemption} is enabled, which is the default.
+% In that case the following settings would apply:
+%
+% \begin{valuelist}
+% \item[S] \accessTaxExemptionReason{S}
+% \item[Z] Not configured.
+% \item[E] Not configured, as there are too many options.
+% \item[AE] \accessTaxExemptionReason{AE}
+% \item[K] \accessTaxExemptionReason{K}
+% \item[G] \accessTaxExemptionReason{G}
+% \item[O] \accessTaxExemptionReason{O}
+% \end{valuelist}
+%
+% In case there is no pre-configured selection \pkg{zugferd} will create a warning to remind the user to add a selection themselves.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ exemption-reason .tl_set:N = \l_@@_tax_exemption_reason_tl,
+ exemption-reason .initial:V = \c_empty_tl,
+ exemption-reason .usage:n = general,
+ exemption-reason-code .tl_set:N = \l_@@_tax_exemption_code_tl,
+ exemption-reason-code .initial:V = \c_empty_tl,
+ exemption-reason .usage:n = general,
+% \end{macrocode}
+% \changes{v0.7}{2024-09-10}{Added exemption-reason-auto key for pre-configured exemption-reasons.}
+% \begin{macrocode}
+ exemption-reason-auto .choice:,
+ exemption-reason-auto / S .code:n = {
+ \keys_set:nn {zugferd/tax} {exemption-reason=,exemption-reason-code=}
+ },
+ exemption-reason-auto / K .code:n = {
+ \keys_set:nn {zugferd/tax} {
+ exemption-reason= Intra-Community~Supply,
+ exemption-reason-code={vatex-eu-ic}
+ }
+ },
+ exemption-reason-auto / AE .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=Reverse~Charge,
+ exemption-reason-code={vatex-eu-ae}
+ }
+ },
+ exemption-reason-auto / G .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=Export~outside~the~EU,
+ exemption-reason-code={vatex-eu-g}
+ }
+ },
+ exemption-reason-auto / O .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=No~subject~to~VAT,
+ exemption-reason-code={vatex-eu-o}
+ }
+ },
+ standard .meta:n = {category=S},
+ zero .meta:n = {category=Z},
+ exempt .meta:n = {category=E},
+ reverse-charge .meta:n = {category=AE},
+ intra-community .meta:n = {category=K},
+ EEA .meta:n = {category=K},
+ export .meta:n = {category=G},
+ canary-islands .meta:n = {category=L},
+ ceuta .meta:n = {category=M},
+ melilla .meta:n = {category=M},
+ category / unknown .code:n = {
+ \exp_args:Nnnx \keys_if_choice_exist:nnnTF {zugferd} {category}
+ {\str_uppercase:f {#1}}
+ {
+ \keys_set:nx { zugferd } {category= {\str_uppercase:f {#1}}}
+ } {
+ \msg_warning:nnn { zugferd } {unknown-tax-category} {#1}
+ }
+ },
+ category .initial:n = S,
+ category .usage:n = general,
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption{tax/rate=\meta{floating point}}{19}*
+% The value given will be used for tax calculation.
+% By default it's configured to |19| to match the German standard VAT rate.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ rate .fp_set:N = \l_@@_tax_rate_fp,
+ rate .initial:n = 19,
+ rate .usage:n = general
+}%
+\keys_define:nn {zugferd/item} {
+ tax .choice:,
+ tax / unknown .code:n = \keys_set:ne {zugferd/tax} { \l_keys_key_str = \exp_not:V \l_keys_value_tl},
+ unknown .code:n = \keys_set:ne {zugferd} { \l_keys_key_str = \exp_not:V \l_keys_value_tl}
+}
+% \end{macrocode}
+% \endoptionenv
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption*{item/start-date=\meta{date formatted as YYYYMMDD}}{}*
+% \DescribeKeyOption*{item/end-date=\meta{date formatted as YYYYMMDD}}{}*
+% With version 0.00 support for |BillingSpecifiedPeriod| was added.
+% This supports setting |start-date| and |end-date| per item.
+% As this is optional, there is no default.
+% The element will be printed if both dates are set, as setting a single one will enforce the element to be invalid.
+% This element should be set as all the other dates (see \autoref{sec:dates}).
+% \end{documentation}
+% \begin{implementation}
+% \optionenv{start-date,end-date}
+% \begin{macrocode}
+\keys_define:nn { zugferd / item } {
+ start-date .tl_gset:N = \l_@@_start_date_tl,
+ start-date .initial:n =,
+ end-date .tl_gset:N = \l_@@_end_date_tl,
+ end-date .initial:n =,
+}%
+% \end{macrocode}
+% \endoptionenv
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_write_inline:nn {
+ \tl_if_blank:nF {#2} {
+ <#1>#2</#1>
+ }
+}
+\cs_generate_variant:Nn \_@@_write_inline:nn {ne}
+\_@@_define_xml_writer:Nn \_@@_write_inline_i:nn {
+ \_@@_indent: \_@@_write_inline:nn {#1} {#2}
+}
+\cctab_begin:N \g_@@_xml_cctab%
+%
+\_@@_define_xml_writer:Nn \_@@_write_note:n {%
+ \begingroup%
+ \let\\\iow_newline:%
+ \_@@_write_xml:e {%
+ <ram:IncludedNote>
+ \_@@_indent: <ram:Content>
+ #1
+ \_@@_indent: </ram:Content>
+ </ram:IncludedNote>%
+ }%
+ \endgroup%
+}%
+%
+%
+\begingroup%
+\char_set_catcode_other:N \#%
+\char_set_catcode:nn {32}{10}%
+\_@@_define_xml_writer:Nn \_@@_insert_Header: {%
+ \_@@_write_xml:e {%
+ <?xml version='1.0' encoding='UTF-8' ?>
+ <rsm:CrossIndustryInvoice %
+ xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" %
+ xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" %
+ xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" %
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" %
+ xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:n {<rsm:ExchangedDocumentContext>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \str_if_empty:NF \g_@@_businessProcessId_str {%
+ <ram:BusinessProcessSpecifiedDocumentContextParameter>
+ \_@@_indent: <ram:ID>\g_@@_businessProcessId_str</ram:ID>
+ </ram:BusinessProcessSpecifiedDocumentContextParameter>
+ }%
+ <ram:GuidelineSpecifiedDocumentContextParameter>
+ \_@@_indent: <ram:ID>\g_@@_format_str</ram:ID>
+ </ram:GuidelineSpecifiedDocumentContextParameter>%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:ExchangedDocumentContext>}%
+}%
+\endgroup%
+\_@@_define_xml_writer:Nn \_@@_insert_FrontMatter: {%
+ \_@@_write_xml:n {<rsm:ExchangedDocument>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:ID>\g_@@_id_tl</ram:ID>
+ <ram:TypeCode>\g_@@_DocumentTypeCode_tl</ram:TypeCode>
+ <ram:IssueDateTime>
+ % space required!
+ \_@@_indent:<udt:DateTimeString~format="102">\g_@@_date_tl</udt:DateTimeString>
+ </ram:IssueDateTime>%
+ }%
+ \_@@_note_if_not_empty:N \g_@@_subject_tl%
+ \_@@_note_if_not_empty:N \g_@@_fromaddress_tl%
+ \seq_map_inline:Nn \g_@@_notes_seq {%
+ \_@@_write_note:n {##1}%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ </rsm:ExchangedDocument>
+ <rsm:SupplyChainTradeTransaction>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+}%
+%
+% footer
+\_@@_define_xml_writer:Nn \_@@_insert_Footer: {%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:SupplyChainTradeTransaction>}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:CrossIndustryInvoice>}%
+}%
+\cctab_end:
+% \end{macrocode}
+%
+% \subsection{Invoice Items}
+% Each item consists of 5 parts:
+% \begin{itemize}
+% \item AssociatedDocumentLineDocument
+% \item SpecifiedTradeProduct
+% \item SpecifiedLineTradeAgreement
+% \item SpecifiedLineTradeDelivery
+% \item SpecifiedLineTradeSettlement
+% \end{itemize}
+% These are implemented as separate commands to be more flexible.
+% The wrapper command is called \cs[no-index]{@@_insert_TradeLineItem:nnnnnn} and is created to be used in your own invoicing package-
+% \begin{macrocode}
+\cctab_begin:N \g_@@_xml_cctab%
+% \end{macrocode}
+% \begin{function}{\_@@_AssociatedDocumentLineDocument:n}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_AssociatedDocumentLineDocument:n {%
+ <ram:AssociatedDocumentLineDocument>
+ \_@@_indent: <ram:LineID>#1</ram:LineID>
+ </ram:AssociatedDocumentLineDocument>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedTradeProduct:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeProduct:nn {%
+ <ram:SpecifiedTradeProduct>
+ \tl_if_empty:nF {#1} {%
+ \_@@_indent: <ram:SellerAssignedID>#1</ram:SellerAssignedID>
+ }%
+ \_@@_indent: <ram:Name>#2</ram:Name>
+ </ram:SpecifiedTradeProduct>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_ProductTradePrice:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_ProductTradePrice:nn {%
+ <ram:\str_uppercase:n #1PriceProductTradePrice>
+ \_@@_indent: <ram:ChargeAmount>#2</ram:ChargeAmount>
+ </ram:\str_uppercase:n #1PriceProductTradePrice>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedLineTradeAgreement:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedLineTradeAgreement:nn {%
+ <ram:SpecifiedLineTradeAgreement>
+ \_@@_indent:<ram:GrossPriceProductTradePrice>
+ \_@@_indent:n {2} <ram:ChargeAmount>#1</ram:ChargeAmount>
+ \_@@_indent:</ram:GrossPriceProductTradePrice>
+ \_@@_indent:<ram:NetPriceProductTradePrice>
+ \_@@_indent:n {2} <ram:ChargeAmount>#2</ram:ChargeAmount>
+ \_@@_indent:</ram:NetPriceProductTradePrice>
+ </ram:SpecifiedLineTradeAgreement>
+}%
+% \end{macrocode}
+% \end{function}
+%%%\subsubsection{SpecifiedLineTradeDelivery}%:nn <unit code > <number>
+% \begin{function}{\_@@_SpecifiedLineTradeDelivery:nn}
+% \begin{macrocode}
+\_@@_define_xml_content:Nn \_@@_SpecifiedLineTradeDelivery:nn {%
+ <ram:SpecifiedLineTradeDelivery>
+ % SPACE!
+ \_@@_indent: <ram:BilledQuantity~unitCode="#1">#2</ram:BilledQuantity>
+ </ram:SpecifiedLineTradeDelivery>
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedLineTradeSettlement:nnn,\_@@_SpecifiedLineTradeSettlement:Vnn}
+% \changes{v0.9}{2024-10-23}{Split SpecifiedLineTradeSettlement to be more flexible and add support for BillingSpecifiedPeriod}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_write_SpecifiedLineTradeSettlement:nnn {%
+ \_@@_write_xml:n {<ram:SpecifiedLineTradeSettlement>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {\_@@_Line_ApplicableTradeTax:nn {#1} {#2}}%
+ \_@@_write_xml:e {\_@@_BillingSpecifiedPeriod:VV \l_@@_start_date_tl \l_@@_end_date_tl}%
+ \_@@_write_xml:e {\_@@_SpecifiedTradeSettlementLineMonetarySummation:n {#3}}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedLineTradeSettlement>}%
+}%
+\cs_generate_variant:Nn \_@@_write_SpecifiedLineTradeSettlement:nnn {Vnn}%
+\_@@_define_xml_content:Nn \_@@_Line_ApplicableTradeTax:nn {%
+ <ram:ApplicableTradeTax>
+ %BT-151
+ \_@@_indent: <ram:TypeCode>VAT</ram:TypeCode>
+ %BT-151
+ \_@@_indent: <ram:CategoryCode>#1</ram:CategoryCode>
+ %BT-152
+ \_@@_indent: <ram:RateApplicablePercent>#2</ram:RateApplicablePercent>
+ </ram:ApplicableTradeTax>
+}%
+\_@@_define_xml_content:Nn \_@@_BillingSpecifiedPeriod:nn {%
+ \bool_lazy_or:nnF {\tl_if_blank_p:n {#1}} {\tl_if_blank_p:n {#2}} {%
+ <ram:BillingSpecifiedPeriod>
+ %<!-- BT-134 -->
+ \_@@_indent:<ram:StartDateTime>
+ \_@@_indent:n {2} <udt:DateTimeString~format="102">#1</udt:DateTimeString>
+ \_@@_indent:</ram:StartDateTime>
+ %<!-- BT-135 -->
+ \_@@_indent:<ram:EndDateTime>
+ \_@@_indent:n {2} <udt:DateTimeString~format="102">#2</udt:DateTimeString>
+ \_@@_indent:</ram:EndDateTime>
+ </ram:BillingSpecifiedPeriod>
+ }%
+}%
+\_@@_define_xml_content:Nn \_@@_SpecifiedTradeSettlementLineMonetarySummation:n {%
+ <ram:SpecifiedTradeSettlementLineMonetarySummation>
+ % BT-131
+ \_@@_indent: <ram:LineTotalAmount>#1</ram:LineTotalAmount>
+ </ram:SpecifiedTradeSettlementLineMonetarySummation>
+}
+
+% \end{macrocode}
+% \begin{macrocode}
+\cctab_end:
+\cs_generate_variant:Nn \_@@_SpecifiedLineTradeSettlement:nnn {Vnn}
+\cs_generate_variant:Nn \_@@_BillingSpecifiedPeriod:nn {VV}
+% \end{macrocode}
+% \end{function}
+% The exemption reason was placed wrong with the pre-CTAN release.
+% This was fixed in August 2024.
+% The old macro will be kept for a bit longer but will be removed soon.
+% Please update your own implementations accordingly.
+% \changes{v0.4}{2024-08-22}{Deprecate old syntax and add public interfaces.}
+% \begin{macrocode}
+\cs_new:Nn \_@@_SpecifiedLineTradeSettlement:nnnn {
+ \msg_warning:nnnn {zugferd} {macro-deprecated}
+ { \_@@_SpecifiedLineTradeSettlement:nnnn }
+ { \_@@_SpecifiedLineTradeSettlement:nnn }
+ \_@@_SpecifiedLineTradeSettlement:nnn {#2} {#3} {#4}
+}
+\cs_generate_variant:Nn \_@@_SpecifiedLineTradeSettlement:nnnn {VVnn}
+% \end{macrocode}
+% \end{implementation}
+% \begin{implementation}
+% \begin{function}{ \_@@_insert_TradeLineItem:nnnnnn,\@@_write_TradeLineItem:nnnnnn}
+% Writing an invoice item using the helper commands defined before, to the \XMLfile.
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_insert_TradeLineItem:nnnnnn {
+ \_@@_write_xml:n {<ram:IncludedSupplyChainTradeLineItem>}
+ \int_gincr:N \g_@@_indent_int
+ \_@@_write_xml:e {\_@@_AssociatedDocumentLineDocument:n {#1}}%
+
+ \begingroup
+ \zugferd_disable_macros:
+ \_@@_write_xml:e {\_@@_SpecifiedTradeProduct:nn {#2} {#3}}
+ \endgroup
+
+ \_@@_write_xml:n {<ram:SpecifiedLineTradeAgreement>}
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {\_@@_ProductTradePrice:nn {net} {#4}}
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedLineTradeAgreement>}
+ \_@@_write_xml:e {%
+ \_@@_SpecifiedLineTradeDelivery:nn { \l_@@_unit_code_tl } {#5}
+ }%
+ \_@@_write_SpecifiedLineTradeSettlement:Vnn \l_@@_tax_category_code_tl %
+ { \fp_use:N \l_@@_tax_rate_fp} {#6}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:IncludedSupplyChainTradeLineItem>}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{implementation}
+% ApplicableHeaderTradeSettlement
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementHeaderMonetarySummation:nnnnnnnn {%
+ \_@@_write_xml:n {<ram:SpecifiedTradeSettlementHeaderMonetarySummation>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_rounded:nnn {2} {LineTotalAmount} {#1}
+ \_@@_write_rounded:nnn {2} {ChargeTotalAmount} {#2}
+ \_@@_write_rounded:nnn {2} {AllowanceTotalAmount} {#3}
+ \_@@_write_rounded:nnn {2} {TaxBasisTotalAmount} {#4}
+ \_@@_write_rounded:nnnn {2} {TaxTotalAmount} {~currencyID="\l_@@_currency_tl "} {#5}
+ \_@@_write_rounded:nnn {2} {GrandTotalAmount} {#6}
+ \_@@_write_rounded:nnn {2} {TotalPrepaidAmount} {#7}
+ \_@@_write_rounded:nnn {2} {DuePayableAmount} {#8}
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradeSettlementHeaderMonetarySummation>}%
+}%
+% ApplicableTradeTax CategoryCode Rate BaseAmount Result
+\_@@_define_xml_writer:Nn \_@@_ApplicableTradeTax:nnnn {%
+ \_@@_write_xml:n {<ram:ApplicableTradeTax>}
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_rounded:nnn {2} {CalculatedAmount} {#4}%BT117
+ \_@@_write_xml:n {<ram:TypeCode>VAT</ram:TypeCode>}%BT118
+ \tl_if_blank:VF \l_@@_tax_exemption_reason_tl {%BT-120
+ \_@@_write_xml:e {<ram:ExemptionReason>
+ \l_@@_tax_exemption_reason_tl
+ </ram:ExemptionReason>}
+ }
+ {{\_@@_write_rounded:nnn {2} {BasisAmount} {#3}}}%BT-116
+ \_@@_write_xml:e {<ram:CategoryCode>#1</ram:CategoryCode>}%BT-118
+ \tl_if_blank:VF \l_@@_tax_exemption_code_tl {%BT121
+ \_@@_write_xml:e {<ram:ExemptionReasonCode>
+ \l_@@_tax_exemption_code_tl
+ </ram:ExemptionReasonCode>}
+ }
+ \_@@_write_xml:n {<ram:RateApplicablePercent>#2</ram:RateApplicablePercent>}%BT-119
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableTradeTax>}
+}%
+%
+\cctab_begin:N \g_@@_xml_cctab%
+% ApplicableHeaderTradeSettlement
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement:nnnnnnnn {%
+
+}%
+% \end{macrocode}
+% ApplicableHeaderTradeSettlement needs to be splitted to be used in separate parts of the tabular.
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement_start: {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeSettlement>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {<ram:InvoiceCurrencyCode>\l_@@_currency_tl</ram:InvoiceCurrencyCode>}%
+}%
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement_stop: {%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeSettlement>}%
+}%
+% \end{macrocode}
+% SpecifiedTradePaymentTerms
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradePaymentTerms:nn {%
+ \_@@_write_xml:n {<ram:SpecifiedTradePaymentTerms>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \tl_if_blank:nF {#1} {%
+ <ram:Description>#1</ram:Description>%
+ }%
+ \tl_if_blank:nF {#2} {%
+ <ram:DueDateDateTime>
+ \_@@_indent: <udt:DateTimeString~format="102">#2</udt:DateTimeString>
+ </ram:DueDateDateTime>%
+ }%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradePaymentTerms>}%
+}%
+%
+%
+% sums
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementPaymentMeans:nnn {%
+ \bool_if:NT \g_@@_writePaymentMeans_bool {%
+ \_@@_write_xml:n {<ram:SpecifiedTradeSettlementPaymentMeans>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:TypeCode>\g_@@_payment_means_tl</ram:TypeCode>
+ \_@@_write_inline:ne {ram:Information} {\prop_item:cV {g_@@_payment-means_names_prop} \g_@@_payment_means_tl}%
+ \tl_if_blank:nF {#1#2} {%
+ <ram:PayeePartyCreditorFinancialAccount>
+ \_@@_write_inline_i:nn {ram:IBANID} {#2}
+ \_@@_write_inline_i:nn {ram:AccountName} {#1}
+ </ram:PayeePartyCreditorFinancialAccount>
+ }%
+ \tl_if_blank:nF {#3} {%
+ <ram:PayeeSpecifiedCreditorFinancialInstitution>
+ \_@@_write_inline_i:nn {ram:BICID} {#3}
+ </ram:PayeeSpecifiedCreditorFinancialInstitution>%
+ }%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradeSettlementPaymentMeans>}%
+ }%
+}%
+\cctab_end:
+\cs_generate_variant:Nn \_@@_SpecifiedTradePaymentTerms:nn {VV}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradePaymentTerms: {
+ \_@@_SpecifiedTradePaymentTerms:VV \g_@@_payment_terms_str \g_@@_due_date_tl
+}
+% \end{macrocode}
+% \begin{function}{\_@@_SpecifiedTradeSettlementPaymentMeans:}
+% \begin{macrocode}
+\cs_generate_variant:Nn \_@@_SpecifiedTradeSettlementPaymentMeans:nnn {vvv}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementPaymentMeans: {
+ \tl_if_blank:VF \g_@@_payment_means_tl {
+ \_@@_SpecifiedTradeSettlementPaymentMeans:vvv
+ {g_@@_payment_account-holder_tl} {g_@@_payment_iban_tl} {g_@@_payment_bic_tl}
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{implementation}
+% \begin{macrocode}
+\msg_new:nnn {zugferd} {macro-deprecated} {
+ The~function~#1~is~deprecated.\\
+ It~was~replaced~by~#2.\\
+ Please~adjust~your~mechanism~to~use~the~new~version.
+}
+% \end{macrocode}
+% \end{implementation}
+% \iffalse
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \fi
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/zugferd/zugferd.ins b/macros/latex/contrib/zugferd/zugferd.ins
new file mode 100644
index 0000000000..207227702a
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.ins
@@ -0,0 +1,19 @@
+\input docstrip
+
+\preamble
+
+Copyright (C) 2023--2024 by Marei Peischl (peiTeX) <marei@peitex.de>
+
+\endpreamble
+
+\askforoverwritefalse
+
+\usedir{tex/latex/zugferd}
+
+\generate{
+ \file{zugferd.sty}{
+ \from{zugferd.dtx}{package}
+ }
+}
+
+\endbatchfile
diff --git a/macros/latex/contrib/zugferd/zugferd.pdf b/macros/latex/contrib/zugferd/zugferd.pdf
new file mode 100644
index 0000000000..23595edc75
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.pdf
Binary files differ